/* ===== 自适应缩放（手机铺满等比放大 / 电脑居中） =====
   · 手机（视口 < 600px）：1rem 随视口宽度线性变化，页面 100% 铺满屏幕，
     屏幕越宽整体等比放大，不留白边；上限 22px 防止个别超大屏失控。
   · 电脑 / 平板（视口 ≥ 600px）：固定为设计尺寸，内容居中显示。
   后台「设置 → 手机端全局缩放」可在此基础上再放大或缩小。
   ===== */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  font-size:clamp(10px, 3.4375vw, 22px);   /* 3.4375vw = 3.125vw × 1.1 基准放大 */
}
@media (min-width:600px){
  html{font-size:10px}
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
:root{
  --r:1rem;
  --txt:#171a21;
  --txt2:rgba(23,26,33,.60);
  --txt3:rgba(23,26,33,.42);
  --card:rgba(255,255,255,.60);
  --card2:rgba(255,255,255,.46);
  --bd:rgba(255,255,255,.88);
  --ln:rgba(255,255,255,.68);
  --bd2:rgba(23,26,33,.14);
  --hl:inset 0 1px 0 rgba(255,255,255,.95);
  --sh:0 0.3rem 0.8rem rgba(90,100,150,.09);
  --shs:0 0.2rem 0.4rem rgba(90,100,150,.06);
  --bl:blur(1.1rem) saturate(155%);
  --iz:1.3;   /* 图标整体缩放倍率（后台「设置 → 图标大小」可调） */
  --qz:0.85;  /* 快捷按钮图标专用倍率（后台「设置 → 快捷按钮图标大小」可调） */
}
html[data-theme="dark"]{
  --txt:rgba(255,255,255,.94);--txt2:rgba(255,255,255,.58);--txt3:rgba(255,255,255,.40);
  --card:linear-gradient(150deg,rgba(255,255,255,.12),rgba(255,255,255,.035));
  --card2:linear-gradient(150deg,rgba(255,255,255,.085),rgba(255,255,255,.028));
  --bd:rgba(255,255,255,.14);--ln:rgba(255,255,255,.07);--bd2:rgba(255,255,255,.28);
  --hl:inset 0 1px 0 rgba(255,255,255,.36);
  --sh:0 0.3rem 0.8rem rgba(0,0,0,.20);--shs:0 0.2rem 0.4rem rgba(0,0,0,.13);
  --bl:blur(1.2rem) saturate(160%);
}
body{
  font:400 1.15rem/1.35 -apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC",sans-serif;
  color:var(--txt);min-height:100vh;
  display:flex;justify-content:center;padding:0 0 2rem;overflow-x:hidden;
  background:linear-gradient(140deg,#e8eeff 0%,#f0ecff 38%,#e6fbfb 70%,#fdf0f6 100%);
}
html[data-theme="dark"] body{background:#0a0d16}

.bg{position:fixed;inset:0;z-index:0;overflow:hidden}
.bg i{position:absolute;border-radius:50%;filter:blur(4.4rem);opacity:.38;animation:fl 28s ease-in-out infinite}
.bg i:nth-child(1){width:21rem;height:21rem;background:#93b4ff;top:-5rem;left:-5rem}
.bg i:nth-child(2){width:19rem;height:19rem;background:#c9a8ff;top:19rem;right:-6rem;animation-delay:-7s}
.bg i:nth-child(3){width:20rem;height:20rem;background:#8ee6e0;bottom:-5rem;left:-3.5rem;animation-delay:-14s}
html[data-theme="dark"] .bg i{opacity:.32;filter:blur(4.8rem)}
html[data-theme="dark"] .bg i:nth-child(1){background:#3b82f6}
html[data-theme="dark"] .bg i:nth-child(2){background:#a855f7}
html[data-theme="dark"] .bg i:nth-child(3){background:#22d3ee}
@keyframes fl{0%,100%{transform:translate(0,0)}50%{transform:translate(1.4rem,-1.8rem)}}

.app{position:relative;z-index:1;width:100%;max-width:100%;padding:0 0.6rem}
@media (min-width:600px){.app{max-width:32rem;padding:0 0.7rem}}

.glass{position:relative;background:var(--card);backdrop-filter:var(--bl);-webkit-backdrop-filter:var(--bl);
  border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh),var(--hl)}
html[data-theme="dark"] .glass{background:var(--card)}

/* 顶栏 */
.nav{display:flex;align-items:center;justify-content:space-between;padding:0.7rem 0.2rem 0.5rem}
.brand{display:flex;align-items:center;gap:0.4rem;font-size:1.2rem;font-weight:700}
.brand svg{width:calc(1.2rem * var(--iz));height:calc(1.2rem * var(--iz))}
.tbtn{width:2.1rem;height:2.1rem;border-radius:50%;border:1px solid var(--bd);background:var(--card2);
  backdrop-filter:var(--bl);-webkit-backdrop-filter:var(--bl);display:grid;place-items:center;
  cursor:pointer;box-shadow:var(--shs),var(--hl);color:var(--txt)}
.tbtn svg{width:1rem;height:1rem}

/* 通知条 */
.notice{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 0.7rem;border-radius:0.8rem;margin-bottom:0.4rem;
  background:var(--card2);backdrop-filter:var(--bl);-webkit-backdrop-filter:var(--bl);
  border:1px solid var(--ln);box-shadow:var(--shs),var(--hl)}
.bell{width:1.4rem;height:1.4rem;flex:none;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(145deg,#fbbf24,#f97316)}
.bell svg{width:0.7rem;height:0.7rem;color:#fff}
.notice p{font-size:0.95rem;color:var(--txt2);flex:1;line-height:1.3}
.dot{width:0.4rem;height:0.4rem;border-radius:50%;background:#22c55e;box-shadow:0 0 0.5rem #22c55e;flex:none}
.more{font-size:0.9rem;color:var(--txt3);flex:none}

/* ===== 广告轮播（功能区） ===== */
.bn{position:relative;margin-bottom:0.6rem;border-radius:1.2rem;overflow:hidden;
  background:var(--card2);border:1px solid var(--ln);box-shadow:var(--sh),var(--hl);
  touch-action:pan-y;cursor:grab}
.bn:active{cursor:grabbing}
.bn-track{display:flex;transition:transform .45s cubic-bezier(.25,.85,.35,1);will-change:transform}
.bn-track.drag{transition:none}
.bn-slide{flex:0 0 100%;display:block;text-decoration:none;position:relative;-webkit-user-drag:none}
.bn-slide img{display:block;width:100%;height:11.2rem;object-fit:cover;pointer-events:none;user-select:none}
.bn-cap{position:absolute;left:0;right:0;bottom:0;padding:1.2rem 0.9rem 0.6rem;
  background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.55));
  color:#fff;font-size:1rem;font-weight:600;letter-spacing:.0.2rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bn-cap em{font-style:normal;opacity:.72;font-weight:500;margin-left:0.4rem}

/* 指示条 */
/* 垂直轮播（轮播图 ② 用）：上下滑动切换 */
.bn.vert .bn-track{flex-direction:column;height:100%}
.bn.vert .bn-slide{flex:0 0 auto;width:100%}
.bn.vert .bn-slide img{pointer-events:none;user-select:none}
/* 分页点竖排在右侧中间 */
.bn.vert .bn-dots{right:0.6rem;bottom:auto;top:50%;transform:translateY(-50%);flex-direction:column;gap:0.35rem}
.bn.vert .bn-dots i{width:0.4rem;height:0.4rem}
.bn.vert .bn-dots i.on{width:0.4rem;height:1.2rem}

.bn-dots{position:absolute;right:0.8rem;bottom:0.6rem;display:flex;gap:0.3rem;z-index:2}
.bn-dots i{width:0.4rem;height:0.4rem;border-radius:50%;background:rgba(255,255,255,.5);cursor:pointer;
  transition:all .3s cubic-bezier(.3,1,.4,1);box-shadow:0 1px 0.2rem rgba(0,0,0,.25)}
.bn-dots i.on{width:1.2rem;border-radius:99.9rem;background:#fff}

/* ===== 推荐位 =====
   默认：单列全宽（每张卡撑满屏幕宽，视觉最大，后台可切回「左一右二」） */
.ft{display:grid;grid-template-columns:1fr;gap:0.6rem;margin-bottom:0.6rem}
.ft-item{position:relative;display:flex;flex-direction:column;justify-content:center;
  text-decoration:none;color:#fff;overflow:hidden;min-height:7.6rem;
  border-radius:1.2rem;padding:1.1rem 1.2rem;box-shadow:var(--shs);
  transition:transform .2s cubic-bezier(.2,.9,.3,1.2);-webkit-user-drag:none}
.ft-item:active{transform:scale(.975)}

/* 可选：左一右二 */
.ft.ft-grid{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:0.5rem;height:11.8rem}
.ft.ft-grid .ft-item{min-height:0;justify-content:flex-start;padding:1rem 1.1rem}
.ft.ft-grid .ft-item:nth-child(1){grid-row:1 / span 2}

.ft-badge{display:inline-block;align-self:flex-start;padding:1px 0.6rem;border-radius:99.9rem;
  font-size:0.9rem;font-weight:700;
  background:rgba(255,255,255,.26);backdrop-filter:blur(0.4rem);margin-bottom:0.5rem;letter-spacing:.0.3rem}
.ft-item h4{font-size:1.6rem;font-weight:800;line-height:1.25;letter-spacing:-.0.2rem}
.ft-item p{font-size:1.05rem;opacity:.78;margin-top:0.3rem;line-height:1.3}
.ft-deco{position:absolute;right:1rem;bottom:50%;transform:translateY(50%);
  width:5.6rem;height:5.6rem;opacity:.24;pointer-events:none}
.ft-deco svg{width:100%;height:100%}
.ft-dot{position:absolute;right:1.6rem;top:1.4rem;width:0.9rem;height:0.9rem;border-radius:50%;
  background:rgba(255,255,255,.55);pointer-events:none}

/* 左一右二时装饰回到右下 */
.ft.ft-grid .ft-deco{right:-0.6rem;bottom:-0.8rem;transform:none;width:5.2rem;height:5.2rem}
.ft.ft-grid .ft-item:nth-child(1) .ft-deco{width:7.2rem;height:7.2rem;right:-1rem;bottom:-1.4rem}
.ft.ft-grid .ft-item h4{font-size:1.45rem;line-height:1.2}
.ft.ft-grid .ft-item p{font-size:1rem;margin-top:0.35rem}
.ft.ft-grid .ft-badge{font-size:0.85rem;margin-bottom:0.5rem}
/* 左侧大卡：副标题底部留白，避免和装饰重叠 */
.ft.ft-grid .ft-item:nth-child(1) p{padding-right:3.2rem}
/* 右侧小卡：装饰缩小一点，别压文字 */
.ft.ft-grid .ft-item:nth-child(2) .ft-deco,
.ft.ft-grid .ft-item:nth-child(3) .ft-deco{width:4.4rem;height:4.4rem;right:-0.4rem;bottom:-0.6rem;opacity:.2}

/* ===== 快捷按钮（推荐位下方圆形图标一排） ===== */
.qbtns{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:0.4rem;
  padding:0.9rem 0.5rem;margin-bottom:0.6rem;text-align:center;border-radius:1.2rem;
  background:var(--card);backdrop-filter:var(--bl);-webkit-backdrop-filter:var(--bl);
  border:1px solid var(--ln);box-shadow:var(--sh),var(--hl)}
.qbtn{display:flex;flex-direction:column;align-items:center;gap:0.4rem;
  text-decoration:none;color:var(--txt);-webkit-tap-highlight-color:transparent;
  transition:transform .18s cubic-bezier(.2,.9,.3,1.2)}
.qbtn:active{transform:scale(.93)}
.qbtn.off{opacity:.45;cursor:default}
.q-ico{width:calc(2.9rem * var(--iz) * var(--qz));height:calc(2.9rem * var(--iz) * var(--qz));border-radius:50%;
  display:grid;place-items:center;color:#fff;flex:none;aspect-ratio:1/1;
  background:linear-gradient(150deg,#60a5fa,#8b5cf6);
  box-shadow:0 0.35rem 0.9rem rgba(90,100,150,.20),inset 0 1px 0 rgba(255,255,255,.45);
  transition:transform .18s,box-shadow .18s}
.qbtn:active .q-ico{transform:scale(.92)}
.q-ico svg{width:calc(1.45rem * var(--iz) * var(--qz));height:calc(1.45rem * var(--iz) * var(--qz));display:block}
.q-ico.img{background:rgba(255,255,255,.55);overflow:hidden;
  box-shadow:0 0.25rem 0.7rem rgba(90,100,150,.14),inset 0 0 0 1px rgba(255,255,255,.6)}
html[data-theme="dark"] .q-ico.img{background:rgba(255,255,255,.10)}
.q-ico.img img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}
.q-txt{font-size:0.95rem;font-weight:600;line-height:1.2;color:var(--txt2);
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 按钮多时可横向滚动，不挤压 */
@media (max-width:360px){
  .qbtns{grid-auto-flow:row;grid-template-columns:repeat(5,1fr);grid-auto-columns:auto}
}

/* 区块标题 */
.sec{display:flex;align-items:center;justify-content:space-between;padding:0.6rem 0.3rem 0.3rem;
  font-size:1rem;font-weight:700;color:var(--txt2)}
.sec em{font-style:normal;font-size:0.85rem;color:var(--txt3);font-weight:500}

/* 可折叠区块 */
.sec.fold{width:100%;font:inherit;text-align:left;background:none;border:none;cursor:pointer;
  -webkit-tap-highlight-color:transparent}
.sec.fold::-moz-focus-inner{border:0}
.fold-ico{width:1.1rem;height:1.1rem;flex:none;color:var(--txt3);
  transition:transform .3s cubic-bezier(.3,1,.4,1)}
.sec.fold[aria-expanded="true"] .fold-ico{transform:rotate(180deg)}
.fold-box{overflow:hidden;height:0;opacity:0;
  transition:height .36s cubic-bezier(.3,1,.4,1), opacity .26s ease}
.fold-box.open{opacity:1}

/* 功能网格：一排两个，格内 图标左 + 文字右 */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-bottom:0.4rem}
.cell{display:flex;align-items:center;gap:0.6rem;padding:0.6rem 0.7rem;border-radius:0.9rem;
  background:var(--card2);backdrop-filter:var(--bl);-webkit-backdrop-filter:var(--bl);
  border:1px solid var(--ln);box-shadow:var(--shs),var(--hl);cursor:pointer;transition:transform .2s}
.cell:hover{transform:translateY(-1px)}
.grid .ico{width:calc(2rem * var(--iz));height:calc(2rem * var(--iz));margin:0;flex:none;border-radius:0.6rem;display:grid;place-items:center;color:#fff;aspect-ratio:1/1;
  background:linear-gradient(150deg,#3b82f6,#6366f1);
  box-shadow:0 0.2rem 0.5rem rgba(59,130,246,.26),inset 0 1px 0 rgba(255,255,255,.5)}
.grid .ico svg{width:calc(1.1rem * var(--iz));height:calc(1.1rem * var(--iz));display:block}
.grid .cell:nth-child(2) .ico{background:linear-gradient(150deg,#06b6d4,#3b82f6);box-shadow:0 0.2rem 0.5rem rgba(6,182,212,.24),inset 0 1px 0 rgba(255,255,255,.5)}
.grid .cell:nth-child(3) .ico{background:linear-gradient(150deg,#f59e0b,#ef4444);box-shadow:0 0.2rem 0.5rem rgba(239,68,68,.24),inset 0 1px 0 rgba(255,255,255,.5)}
.grid .cell:nth-child(4) .ico{background:linear-gradient(150deg,#10b981,#0891b2);box-shadow:0 0.2rem 0.5rem rgba(16,185,129,.24),inset 0 1px 0 rgba(255,255,255,.5)}
.grid .cell:nth-child(5) .ico{background:linear-gradient(150deg,#a855f7,#ec4899);box-shadow:0 0.2rem 0.5rem rgba(168,85,247,.26),inset 0 1px 0 rgba(255,255,255,.5)}
.grid .cell:nth-child(6) .ico{background:linear-gradient(150deg,#64748b,#334155);box-shadow:0 0.2rem 0.5rem rgba(71,85,105,.28),inset 0 1px 0 rgba(255,255,255,.3)}
.txt{flex:1;min-width:0}
.txt h3{font-size:1.05rem;font-weight:650;line-height:1.25}
.txt p{font-size:0.85rem;color:var(--txt3);margin-top:1px;line-height:1.3}
.tag{display:inline-block;margin-top:0.3rem;padding:1px 0.5rem;border-radius:99.9rem;font-size:0.8rem;font-weight:700;color:#fff;
  background:linear-gradient(135deg,#22c55e,#16a34a)}
.tag.g{background:linear-gradient(135deg,#94a3b8,#64748b)}

/* 分组列表 */
.group{border-radius:var(--r);overflow:hidden;margin-bottom:0.4rem;background:var(--card2);
  backdrop-filter:var(--bl);-webkit-backdrop-filter:var(--bl);
  border:1px solid var(--ln);box-shadow:var(--sh),var(--hl)}
.row{display:flex;align-items:center;gap:0.7rem;padding:0.6rem 0.8rem;cursor:pointer;position:relative;transition:background .16s}
.row+.row::before{content:"";position:absolute;top:0;left:0.8rem;right:0.8rem;height:1px;background:var(--ln)}
.row:active{background:rgba(255,255,255,.55)}
html[data-theme="dark"] .row:active{background:rgba(255,255,255,.07)}
.row .ico{width:calc(1.7rem * var(--iz));height:calc(1.7rem * var(--iz));margin:0 0.1rem 0 0;flex:none;border-radius:0.5rem;display:grid;place-items:center;color:#fff;aspect-ratio:1/1;
  background:linear-gradient(150deg,#60a5fa,#8b5cf6);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 1px 0.4rem rgba(99,102,241,.20)}
.row .ico svg{width:calc(0.9rem * var(--iz));height:calc(0.9rem * var(--iz));display:block}
.t{flex:1;min-width:0}
.t b{display:block;font-size:1.1rem;font-weight:600}
.t small{display:block;font-size:0.9rem;color:var(--txt3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.go{width:1.4rem;height:1.4rem;flex:none;border-radius:0.4rem;border:1px solid var(--bd2);
  display:grid;place-items:center;color:var(--txt3);transition:background .16s}
.row:hover .go{background:rgba(255,255,255,.6)}
html[data-theme="dark"] .row:hover .go{background:rgba(255,255,255,.07)}
.go svg{width:0.66rem;height:0.66rem;display:block}

.badge{flex:none;font-size:0.8rem;font-weight:700;padding:1px 0.4rem;border-radius:0.4rem;color:#fff}
.b-dev{background:linear-gradient(135deg,#3b82f6,#2563eb)}
.b-rel{background:linear-gradient(135deg,#22c55e,#15803d)}
.b-w{background:linear-gradient(135deg,#ef4444,#dc2626)}
.ver{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:0.85rem;color:var(--txt2);flex:none}

/* 找到我们 */
.find{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-bottom:0.4rem}
.find .cell{padding:0.6rem 0.7rem;gap:0.55rem}
.find .ico{width:calc(1.8rem * var(--iz));height:calc(1.8rem * var(--iz));border-radius:50%;flex:none;
  display:grid;place-items:center;color:#fff;aspect-ratio:1/1;
  box-shadow:0 0.2rem 0.5rem rgba(90,100,150,.20),inset 0 1px 0 rgba(255,255,255,.42)}
/* 图标底色由 PHP 按「图标类型」注入品牌色（不按位置死分配），这里只管通用样式 */
.find .ico svg{width:calc(1.05rem * var(--iz));height:calc(1.05rem * var(--iz));display:block;
  flex:none;max-width:100%;max-height:100%}

/* 页脚 */
.foot{text-align:center;font-size:0.85rem;color:var(--txt3);line-height:1.6;padding:0.5rem 0.8rem 0}
.foot a{color:var(--txt2);text-decoration:none}
.foot .c{opacity:.6;margin-top:0.2rem}

.toast{position:fixed;left:50%;bottom:2.4rem;transform:translate(-50%,1rem);z-index:99;
  padding:0.5rem 1.1rem;border-radius:99.9rem;font-size:1rem;font-weight:600;color:#fff;
  background:rgba(28,30,38,.72);backdrop-filter:blur(1.2rem) saturate(155%);-webkit-backdrop-filter:blur(1.2rem) saturate(155%);
  border:1px solid rgba(255,255,255,.18);box-shadow:0 0.6rem 1.6rem rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.24);
  opacity:0;pointer-events:none;transition:all .28s cubic-bezier(.2,1.2,.3,1)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ===== 无 JS 降级：仍跟随系统深色 =====
   仅当 html 还没被脚本写入 data-theme 时匹配；
   JS 一旦设置属性（无论 light/dark），此规则自动失效，不会打架。 */
@media (prefers-color-scheme: dark){
  html:not([data-theme]){
    --txt:rgba(255,255,255,.94);--txt2:rgba(255,255,255,.58);--txt3:rgba(255,255,255,.40);
    --card:linear-gradient(150deg,rgba(255,255,255,.12),rgba(255,255,255,.035));
    --card2:linear-gradient(150deg,rgba(255,255,255,.085),rgba(255,255,255,.028));
    --bd:rgba(255,255,255,.14);--ln:rgba(255,255,255,.07);--bd2:rgba(255,255,255,.28);
    --hl:inset 0 1px 0 rgba(255,255,255,.36);
    --sh:0 0.3rem 0.8rem rgba(0,0,0,.20);--shs:0 0.2rem 0.4rem rgba(0,0,0,.13);
    --bl:blur(1.2rem) saturate(160%);
  }
  html:not([data-theme]) body{background:#0a0d16}
  html:not([data-theme]) .bg i{opacity:.32;filter:blur(4.8rem)}
  html:not([data-theme]) .bg i:nth-child(1){background:#3b82f6}
  html:not([data-theme]) .bg i:nth-child(2){background:#a855f7}
  html:not([data-theme]) .bg i:nth-child(3){background:#22d3ee}
}
