/* ===== 自适应缩放（手机铺满等比放大 / 电脑居中） =====
   · 手机（视口 < 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}
/* 推荐位：有背景图时 —— 层序：图片 → 压暗层 → 文字
   ★关键：只提升「文字类」元素。绝不能用 `> *:not(.ft-shade)`，
     否则 .ft-deco / .ft-dot 会从绝对定位变成流式占位块（5~7rem 高），
     把 h4 / p 挤压缩到 0 高度，再被 line-clamp + overflow:hidden 裁掉 —— 文字直接消失。 */
.ft-item.has-bg{background-clip:padding-box;isolation:isolate}
/* 压暗层：保证白字在任何底图上都清晰，深浅后台可调（--ftScrim 0~1） */
.ft-item.has-bg .ft-shade{position:absolute;inset:0;border-radius:inherit;
  pointer-events:none;z-index:0;
  background:linear-gradient(180deg,rgba(0,0,0,.58),rgba(0,0,0,.32) 48%,rgba(0,0,0,.64));
  opacity:var(--ftScrim,.9)}
/* 文字在最上层 */
.ft-item.has-bg > .ft-badge,
.ft-item.has-bg > h4,
.ft-item.has-bg > p{position:relative;z-index:2;flex:0 0 auto}
.ft-item.has-bg h4,
.ft-item.has-bg p{color:#fff;text-shadow:none}
html.txtsh .ft-item.has-bg h4,
html.txtsh .ft-item.has-bg p{text-shadow:0 1px 4px rgba(0,0,0,.72),0 0 2px rgba(0,0,0,.55)}
.ft-item.has-bg .ft-badge{background:rgba(255,255,255,.24);backdrop-filter:blur(0.4rem);
  -webkit-backdrop-filter:blur(0.4rem);border:1px solid rgba(255,255,255,.35)}
/* 装饰保持在绝对定位，压暗层之上、文字之下 */
.ft-item.has-bg .ft-deco{z-index:1;opacity:.26}
.ft-item.has-bg .ft-dot{z-index:1;background:rgba(255,255,255,.5)}
/* 无背景图时兜底（正常情况下 shade 不渲染） */
.ft-shade{position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;
  background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.30))}

/* 推荐位尺寸固定：单列模式每卡 = --ftIH（默认 7.6rem）
   ★用固定 height 而非 min-height，背景图的 cover 才有确定尺寸可依，
     换任何比例的图片都自动缩放铺满、超出裁切，不会拉伸变形 */
.ft-item{position:relative;display:flex;flex-direction:column;justify-content:center;
  text-decoration:none;color:#fff;overflow:hidden;
  height:var(--ftIH);max-height:var(--ftIH);min-height:0;
  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:var(--ftH);max-height:var(--ftH);min-height:0}
.ft.ft-grid .ft-item{height:auto;max-height:none;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;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ft-item p{font-size:1.05rem;opacity:.78;margin-top:0.3rem;line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* 推荐位装饰虚影（星/山等）：默认隐藏，后台「显示推荐位装饰虚影」开启才出 */
.ft-deco,.ft-dot{display:none}
html.ft-deco-on .ft-deco,html.ft-deco-on .ft-dot{display:block}
.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}
}

/* ===== 热门内容（页面最底部横向卡片） ===== */
.hot{display:flex;gap:0.5rem;overflow-x:auto;padding:0.1rem 0 0.4rem;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;margin-bottom:0.4rem}
.hot::-webkit-scrollbar{display:none}
/* 热门内容：一屏张数 --hotPer（默认 3），封面高宽比 --hotRatio（默认 43%）
   张数越多 + 比例越小 = 整个板块越矮越小；变量由 PHP 输出，缺则用 3 / 43% */
.hot-card{flex:0 0 calc((100% - (var(--hotPer,3) - 1) * 0.5rem) / var(--hotPer,3));
  min-width:0;scroll-snap-align:start;
  display:flex;flex-direction:column;text-decoration:none;color:var(--txt);
  background:var(--card);backdrop-filter:var(--bl);-webkit-backdrop-filter:var(--bl);
  border:1px solid var(--ln);border-radius:1rem;overflow:hidden;box-shadow:var(--sh),var(--hl);
  transition:transform .18s cubic-bezier(.2,.9,.3,1.2)}
.hot-card:active{transform:scale(.96)}
.hot-card.off{opacity:.55;cursor:default}
.hot-img{display:block;width:100%;padding-top:var(--hotRatio,43%);position:relative;
  overflow:hidden;background:#eef1f7;flex:none}
.hot-img img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;display:block}

html[data-theme="dark"] .hot-img{background:rgba(255,255,255,.06)}
.hot-t{display:block;padding:0.35rem 0.4rem 0;font-size:0.85rem;font-weight:700;line-height:1.25;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hot-s{display:block;padding:0.1rem 0.4rem 0.4rem;font-size:0.72rem;color:var(--txt3);line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 区块标题 */
.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}
}
