/* ===========================================================
   NodeHarbor — visual system v2
   深绿品牌色 + 奶油底 + 分层卡片。仅样式，不改结构与交互。
   =========================================================== */

:root{
  --bg:#f5f7fb;
  --bg-soft:#fbfcff;
  --surface:#ffffff;
  --surface-2:#f8faff;

  --ink:#0a1526;
  --ink-2:#15304e;
  --text:#22344c;
  --text-soft:#5b6b81;
  --muted:#8291a6;

  --line:#e4e9f2;
  --line-strong:#d7e0ee;

  --brand:#1d4ed8;
  --brand-2:#3b82f6;
  --brand-deep:#0a1526;

  --lime:#7dd3fc;
  --lime-soft:#dbeafe;

  --danger:#ad4830;
  --danger-bg:#fdeee7;
  --warn:#7d5a22;
  --warn-bg:#fdf4e4;

  --r-sm:10px;
  --r:14px;
  --r-lg:20px;
  --r-xl:26px;
  --r-pill:999px;

  --sh-1:0 1px 2px rgba(10,21,38,.05), 0 8px 22px -16px rgba(10,21,38,.22);
  --sh-2:0 2px 6px rgba(10,21,38,.06), 0 26px 48px -30px rgba(10,21,38,.34);
  --sh-3:0 30px 90px -34px rgba(10,44,33,.5);

  --t:.18s cubic-bezier(.4,.2,.2,1);

  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI Variable Display","Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei UI","Microsoft YaHei",sans-serif;
  font-synthesis:none;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(1100px 520px at 8% -8%, #e8effb 0%, rgba(234,243,228,0) 62%),
    radial-gradient(900px 480px at 100% 0%, #edf3fd 0%, rgba(238,244,234,0) 58%),
    var(--bg);
  font-size:14px;
  line-height:1.6;
}

button,input,select,textarea{font:inherit;color:inherit}
button,a,input,select,textarea{outline-offset:3px}
button{cursor:pointer;border:0;background:none}
button:disabled{cursor:not-allowed;opacity:.45}
a{color:var(--brand);text-decoration:none;border-bottom:1px solid rgba(37,99,235,.22);transition:color var(--t),border-color var(--t)}
a:hover{color:var(--brand-2);border-bottom-color:var(--brand-2)}
:focus-visible{outline:2px solid var(--brand-2);outline-offset:2px;border-radius:6px}
::selection{background:var(--lime);color:#0b2b4c}

p{line-height:1.85;margin:0 0 10px}
p:last-child{margin-bottom:0}

/* ---------- 布局骨架 ---------- */

.shell{
  display:grid;
  grid-template-columns:248px 1fr;
  min-height:100vh;
}

.sidebar{
  position:sticky;
  top:0;
  height:100vh;
  display:flex;
  flex-direction:column;
  gap:22px;
  padding:26px 18px 20px;
  background:
    radial-gradient(120% 60% at 100% 0%, rgba(125,211,252,.10) 0%, rgba(125,211,252,0) 62%),
    linear-gradient(180deg,#0a1424 0%,#101f38 52%,#080f1c 100%);
  color:rgba(255,255,255,.74);
  box-shadow:inset -1px 0 0 rgba(255,255,255,.06);
}

.brand{
  display:flex;
  align-items:center;
  gap:11px;
  font-size:17px;
  font-weight:650;
  letter-spacing:.2px;
  color:#fff;
}

.mark{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:linear-gradient(160deg,#bfe8ff,#59c3f8);
  color:#07203c;
  font-size:22px;
  font-weight:800;
  line-height:1;
  box-shadow:0 8px 20px -10px rgba(125,211,252,.85), inset 0 1px 0 rgba(255,255,255,.6);
}

.sidebar .smallcap{
  color:rgba(255,255,255,.36);
  font-size:9.5px;
  letter-spacing:1.9px;
  font-weight:650;
  margin-top:-8px;
}

.smallcap{
  font-size:10px;
  letter-spacing:1.6px;
  color:var(--muted);
  font-weight:650;
  text-transform:uppercase;
}

.nav{display:grid;gap:4px;margin-top:4px}

.nav button{
  display:flex;
  align-items:center;
  gap:11px;
  padding:11px 13px;
  border-radius:12px;
  color:rgba(255,255,255,.64);
  font-size:13.5px;
  text-align:left;
  transition:background var(--t),color var(--t),box-shadow var(--t);
}

.nav button span{font-size:14px;opacity:.7;width:16px;text-align:center}

.nav button:hover{background:rgba(255,255,255,.06);color:#fff}
.nav button.active{
  background:linear-gradient(90deg,rgba(125,211,252,.18),rgba(125,211,252,.03));
  color:#d7ecff;
  font-weight:600;
  box-shadow:inset 0 0 0 1px rgba(125,211,252,.2);
}
.nav button.active span{opacity:1;color:var(--lime)}

.sidebottom{
  margin-top:auto;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.09);
  font-size:11.5px;
  line-height:1.9;
  color:rgba(255,255,255,.44);
}
.sidebottom .smallcap{color:rgba(255,255,255,.3);font-size:9.5px;letter-spacing:1.7px}

.dot{
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#67c9ff;
  margin-right:7px;
  vertical-align:1px;
  box-shadow:0 0 0 3px rgba(103,201,255,.16);
}

.workspace{min-width:0;display:flex;flex-direction:column}

/* ---------- 顶栏 ---------- */

.topbar{
  position:sticky;
  top:0;
  z-index:20;
  height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:0 34px;
  background:rgba(245,247,243,.78);
  backdrop-filter:blur(16px) saturate(1.5);
  -webkit-backdrop-filter:blur(16px) saturate(1.5);
  border-bottom:1px solid var(--line);
}

.crumb{font-size:12.5px;color:var(--muted);font-weight:500;letter-spacing:.2px}

.account{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--text-soft)}

.avatar{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:linear-gradient(160deg,#e6efff,#c9e0f7);
  color:#0d4a8c;
  font-size:12.5px;
  font-weight:700;
  box-shadow:inset 0 0 0 1px rgba(13,89,65,.12);
}

/* ---------- 主体 ---------- */

main{
  width:100%;
  max-width:1280px;
  margin:0 auto;
  padding:34px 40px 44px;
  flex:1;
  display:flex;
  flex-direction:column;
}

main > *{flex-shrink:0}

#app > main:only-child{
  display:grid;
  place-items:center;
  min-height:70vh;
  color:var(--muted);
  font-size:13px;
  letter-spacing:1px;
}

.heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:22px;
  margin-bottom:26px;
}

.heading .smallcap{
  display:block;
  color:var(--brand);
  font-size:10px;
  letter-spacing:2.1px;
  margin-bottom:8px;
}

.heading h1{
  font-size:29px;
  font-weight:600;
  line-height:1.3;
  letter-spacing:-.2px;
  color:var(--ink);
  margin:0;
}

.heading .muted{
  margin-top:9px;
  font-size:13.5px;
  color:var(--text-soft);
  max-width:660px;
  line-height:1.8;
}

h2{font-size:17px;font-weight:600;color:var(--ink);margin:0 0 8px;letter-spacing:-.1px}
h3{font-size:15px;font-weight:600;color:var(--ink);margin:0 0 6px}

.muted{color:var(--text-soft);font-size:13px;line-height:1.85}

/* ---------- 按钮 ---------- */

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:0 18px;
  border-radius:12px;
  font-size:13px;
  font-weight:600;
  letter-spacing:.1px;
  color:#fff;
  background:linear-gradient(180deg,#2563eb,#1a44b8);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 10px 22px -14px rgba(37,99,235,.95);
  transition:transform var(--t),box-shadow var(--t),filter var(--t),background var(--t),color var(--t);
  white-space:nowrap;
}

.btn:hover{filter:brightness(1.07);transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 14px 26px -14px rgba(37,99,235,.95)}
.btn:active{transform:translateY(0) scale(.995);filter:brightness(.98)}

.btn.secondary{
  background:#fff;
  color:#1d3f6b;
  font-weight:600;
  box-shadow:inset 0 0 0 1px var(--line-strong), 0 1px 2px rgba(10,21,38,.04);
}
.btn.secondary:hover{background:#fbfdff;box-shadow:inset 0 0 0 1px #bccee2, 0 8px 20px -16px rgba(10,21,38,.4);filter:none}

.btn.quiet{
  min-height:34px;
  padding:0 10px;
  border-radius:10px;
  background:transparent;
  color:var(--brand);
  font-weight:600;
  box-shadow:none;
}
.btn.quiet:hover{background:rgba(37,99,235,.08);filter:none;transform:none;box-shadow:none}

.btn.danger{
  background:var(--danger-bg);
  color:var(--danger);
  box-shadow:inset 0 0 0 1px rgba(173,72,48,.18);
}
.btn.danger:hover{background:#fce4da;filter:none}

.full{width:100%}

/* ---------- hero ---------- */

.hero{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  min-height:244px;
  padding:38px 40px;
  border-radius:var(--r-xl);
  color:#fff;
  background:
    radial-gradient(72% 118% at 86% -4%, rgba(37,99,235,.46) 0%, rgba(37,99,235,0) 62%),
    radial-gradient(58% 110% at 0% 104%, rgba(29,78,216,.38) 0%, rgba(29,78,216,0) 62%),
    linear-gradient(135deg,#081626 0%,#0d2038 56%,#06101f 100%);
  box-shadow:0 34px 64px -40px rgba(8,41,30,.85), inset 0 1px 0 rgba(255,255,255,.07);
}

.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
  background-size:38px 38px;
  mask-image:radial-gradient(130% 110% at 76% -8%, #000 0%, transparent 68%);
  -webkit-mask-image:radial-gradient(130% 110% at 76% -8%, #000 0%, transparent 68%);
  pointer-events:none;
}

.hero > div:first-child{position:relative;z-index:1}

.hero .smallcap{color:var(--lime);letter-spacing:2.4px;font-size:9.5px}

.hero h2{
  margin:16px 0 12px;
  font-size:34px;
  line-height:1.3;
  font-weight:600;
  letter-spacing:-.3px;
  color:#fff;
  max-width:600px;
}

.hero .muted{
  color:rgba(255,255,255,.72);
  font-size:14px;
  line-height:1.9;
  max-width:470px;
}

.hero .pill{
  margin-top:20px;
  background:rgba(255,255,255,.95);
  color:#0c3f76;
  border:0;
  font-weight:600;
  box-shadow:0 10px 24px -14px rgba(0,0,0,.8);
}

.hero-art{
  position:relative;
  min-width:262px;
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:1;
}

.orb{
  position:absolute;
  width:220px;
  height:220px;
  border:1px solid rgba(125,211,252,.32);
  border-radius:50%;
  transform:rotate(-24deg);
}
.orb.two{width:136px;height:220px;border-color:rgba(125,211,252,.2)}
.orb.three{width:220px;height:84px;border-color:rgba(125,211,252,.16)}

.hero-art .core{
  position:relative;
  z-index:1;
  font-size:46px;
  color:var(--lime);
  text-shadow:0 0 34px rgba(125,211,252,.65);
  animation:breathe 5.5s ease-in-out infinite;
}

.node-label{
  position:absolute;
  right:2px;
  bottom:6px;
  font-size:9px;
  letter-spacing:2px;
  color:rgba(125,211,252,.68);
}

@keyframes breathe{
  0%,100%{opacity:.82;transform:scale(1)}
  50%{opacity:1;transform:scale(1.06)}
}

.pill{
  display:inline-block;
  padding:5px 11px;
  border-radius:var(--r-pill);
  background:#e8f1ff;
  color:#1d4ea8;
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.1px;
  white-space:nowrap;
}

/* ---------- 统计卡 ---------- */

.stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin:24px 0 34px;
}

.stat{
  padding:22px 24px 20px;
  border-radius:var(--r-lg);
  background:linear-gradient(180deg,#fff, #fdfeff);
  border:1px solid var(--line);
  box-shadow:var(--sh-1);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
}

.stat:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:#dbe6f3}

.stat-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-size:12px;
  font-weight:500;
  color:var(--text-soft);
  letter-spacing:.2px;
}
.stat-label span{opacity:.4;font-size:12px}

.stat strong{
  display:block;
  margin:12px 0 6px;
  font-size:30px;
  font-weight:600;
  line-height:1.1;
  letter-spacing:-.6px;
  color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.stat strong small{font-size:13px;font-weight:500;color:var(--muted);letter-spacing:0;margin-left:1px}

.stat small{font-size:11.5px;color:var(--muted)}

/* ---------- 分区标题与面板 ---------- */

.section-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:28px 0 14px;
}
.section-heading h2{margin:0}
.split .section-heading:first-child,
section > .section-heading:first-child{margin-top:0}

.panel{
  background:linear-gradient(180deg,#fff,#fdfeff);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:26px;
  box-shadow:var(--sh-1);
}

.empty{padding:28px 20px;text-align:center}

.empty-icon{
  width:48px;
  height:48px;
  margin:0 auto 12px;
  display:grid;
  place-items:center;
  border-radius:50%;
  font-size:19px;
  color:var(--brand);
  background:radial-gradient(circle at 50% 35%, #eef4ff, #f8faff);
  box-shadow:inset 0 0 0 1px rgba(37,99,235,.1);
}

.empty h3{margin-bottom:8px;font-size:16px}
.empty .muted{max-width:420px;margin:0 auto 16px}

/* panel 之后紧跟的说明段落，别贴死 */
.panel + p,.download-grid + p,.guide-grid + p{margin-top:16px}

/* 供 subscriptions 空态使用（无 panel 包裹时） */
.panel .empty{border-radius:var(--r-sm)}

/* ---------- 套餐卡 ---------- */

.plan-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
}

.plan{
  position:relative;
  display:flex;
  flex-direction:column;
  padding:26px 24px 24px;
  border-radius:var(--r-lg);
  border:1px solid var(--line);
  background:linear-gradient(180deg,#fff,#fdfeff);
  box-shadow:var(--sh-1);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
}

.plan:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:#dae5f2}

.plan .smallcap{color:var(--muted);font-size:10px;letter-spacing:1.6px}

.plan h2{
  margin:8px 0 0;
  font-size:18px;
  letter-spacing:-.1px;
}

.price{
  margin:16px 0 6px;
  font-size:34px;
  font-weight:600;
  letter-spacing:-1.2px;
  line-height:1.1;
  color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.price span{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:0}

.plan ul{
  list-style:none;
  margin:18px 0 22px;
  padding:0;
  border-top:1px solid var(--line);
}

.plan li{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 0;
  font-size:13px;
  color:var(--text-soft);
}
.plan li + li{border-top:1px solid rgba(10,21,38,.05)}
.plan li b{color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums}

.plan .btn{margin-top:auto}

.ribbon{
  position:absolute;
  right:16px;
  top:20px;
  padding:5px 9px;
  border-radius:var(--r-pill);
  background:#e2efff;
  color:#1e56a8;
  font-size:10.5px;
  font-weight:600;
  letter-spacing:.3px;
}

/* 推荐套餐：深色卡，做视觉焦点 */

.plan.featured{
  border-color:transparent;
  color:#fff;
  background:
    radial-gradient(110% 110% at 100% 0%, #1d4ed8 0%, rgba(29,78,216,0) 56%),
    linear-gradient(180deg,#0c1e37,#0a1729);
  box-shadow:0 28px 54px -32px rgba(8,20,38,.9), inset 0 1px 0 rgba(255,255,255,.08);
}
.plan.featured:hover{box-shadow:0 34px 60px -30px rgba(8,20,38,.95), inset 0 1px 0 rgba(255,255,255,.1)}

.plan.featured .smallcap{color:rgba(125,211,252,.85)}
.plan.featured h2{color:#fff}
.plan.featured .price{color:#fff}
.plan.featured .price span{color:rgba(255,255,255,.55)}
.plan.featured .muted{color:rgba(255,255,255,.62)}
.plan.featured ul{border-top-color:rgba(255,255,255,.13)}
.plan.featured li{color:rgba(255,255,255,.78)}
.plan.featured li + li{border-top-color:rgba(255,255,255,.08)}
.plan.featured li b{color:#fff}
.plan.featured .ribbon{background:rgba(125,211,252,.16);color:#c6e8ff;box-shadow:inset 0 0 0 1px rgba(125,211,252,.28)}

.plan.featured .btn{
  background:#fff;
  color:#0b2b4c;
  font-weight:700;
  box-shadow:0 18px 32px -20px rgba(6,20,38,.95), inset 0 1px 0 rgba(255,255,255,.9);
}
.plan.featured .btn:hover{background:#f2f8ff;filter:none}

/* ---------- 提示条 ---------- */

.note{
  margin:0 0 20px;
  padding:13px 16px;
  border-radius:var(--r);
  background:#f1f6ff;
  border:1px solid #e2eaf7;
  box-shadow:inset 3px 0 0 #c3dcfa;
  color:#55677d;
  font-size:12.5px;
  line-height:1.85;
}

.warning{
  background:var(--warn-bg);
  border-color:#f0e0c0;
  box-shadow:inset 3px 0 0 #e4bf7f;
  color:var(--warn);
}

.hero + .note, .heading + .note{margin-top:0}

/* ---------- 双栏 / 步骤 ---------- */

.split{display:grid;grid-template-columns:1.65fr 1fr;gap:22px}

.steps{display:flex;gap:13px;padding:13px 0}
.steps + .steps{border-top:1px solid var(--line)}
.steps:first-of-type{padding-top:2px}

.steps .number{
  flex-shrink:0;
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid #d6e7fa;
  background:#f5faff;
  color:var(--brand);
  font-size:11px;
  font-weight:600;
}

.steps b{font-size:13.5px;font-weight:600;color:var(--ink);display:block}
.steps p{margin:4px 0 0;font-size:12.5px;color:var(--muted);line-height:1.7}

/* ---------- 订阅 ---------- */

/* 订阅：一条一张卡，外层 panel 让位 */

.panel:has(.subscription){
  background:none;
  border:0;
  padding:0;
  box-shadow:none;
  container-type:inline-size;
}

.subscription{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) 292px;
  gap:10px 28px;
  align-items:center;
  padding:24px 24px 22px;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  background:linear-gradient(180deg,#fff,#fdfeff);
  box-shadow:var(--sh-1);
  transition:box-shadow var(--t),border-color var(--t),transform var(--t);
}

.subscription::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:3px;
  background:linear-gradient(90deg,var(--brand-2),#67b8f5 55%,rgba(125,211,252,0));
  -webkit-mask-image:linear-gradient(90deg,#000 42%,rgba(0,0,0,.35) 78%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 42%,rgba(0,0,0,.35) 78%,transparent 100%);
  opacity:.9;
}

.subscription:hover{box-shadow:var(--sh-2);border-color:#dbe6f4}
.subscription + .subscription{margin-top:14px}

.subscription h3{font-size:17px;letter-spacing:-.1px;margin:0 0 3px}
.subscription .muted{font-size:12.5px;line-height:1.9}

.sub-main{display:flex;flex-direction:column;gap:13px;min-width:0}
.sub-main > .row > div{min-width:0}

.quota{display:flex;flex-direction:column;gap:7px}
.quota .row.muted{font-size:12px}
.quota .progress{margin:0;height:9px}

.sub-meta{
  display:flex;
  flex-wrap:wrap;
  gap:4px 22px;
  font-size:12px;
  line-height:1.75;
  color:var(--muted);
}
.sub-meta span{white-space:nowrap}

.sub-side{
  display:flex;
  flex-direction:column;
  gap:12px;
  justify-content:center;
  min-width:0;
  padding-left:26px;
  border-left:1px solid var(--line);
}

.sub-side .note{
  margin:0;
  padding:10px 12px;
  font-size:12px;
  line-height:1.75;
  background:#f3f7ff;
}

.sub-side .actions{
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  margin-top:0;
}
.sub-side .actions .btn{width:100%}

.sub-main .actions{margin-top:2px}

/* 窄容器（概览双栏里的那一列）直接单栏排 */
.split .subscription{grid-template-columns:1fr;gap:14px}
.split .sub-side{
  padding:16px 0 0;
  border-left:0;
  border-top:1px solid var(--line);
}
.split .sub-side .actions{flex-direction:row;flex-wrap:wrap}
.split .sub-side .actions .btn{width:auto;flex:1 1 auto}

@container (max-width:800px){
  .subscription{grid-template-columns:1fr;gap:14px}
  .subscription .sub-side{
    padding:16px 0 0;
    border-left:0;
    border-top:1px solid var(--line);
  }
  .subscription .sub-side .actions{flex-direction:row;flex-wrap:wrap}
  .subscription .sub-side .actions .btn{width:auto;flex:1 1 auto}
}

.row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.row.muted{font-size:12px;color:var(--muted)}

.progress{
  display:block;
  width:100%;
  height:8px;
  border:0;
  border-radius:var(--r-pill);
  background:#edf2fb;
  overflow:hidden;
  appearance:none;
  -webkit-appearance:none;
}
.progress::-webkit-progress-bar{background:#edf2fb;border-radius:var(--r-pill)}
.progress::-webkit-progress-value{background:linear-gradient(90deg,#3b82f6,#6fb8f2);border-radius:var(--r-pill)}
.progress::-moz-progress-bar{background:linear-gradient(90deg,#3b82f6,#6fb8f2);border-radius:var(--r-pill)}

.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:4px}

/* ---------- 表格 ---------- */

.tablewrap{overflow:auto}

table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  font-size:13px;
  text-align:left;
}

th{
  padding:0 14px 12px;
  border-bottom:1px solid var(--line-strong);
  color:var(--muted);
  font-size:11px;
  font-weight:600;
  letter-spacing:.7px;
  white-space:nowrap;
}
th:first-child{padding-left:0}
th:last-child{padding-right:0}

td{
  padding:15px 14px;
  border-bottom:1px solid var(--line);
  color:var(--text);
  white-space:nowrap;
  vertical-align:middle;
}
td:first-child{padding-left:0}
td:last-child{padding-right:0}
th:last-child,td:last-child{text-align:right}
td .muted{font-size:11.5px;color:var(--muted)}

tbody tr{transition:background var(--t)}
tbody tr:hover td{background:rgba(238,243,253,.65)}
tbody tr:last-child td{border-bottom:0}

.badge{
  display:inline-block;
  padding:5px 11px;
  border-radius:var(--r-pill);
  background:#e6efff;
  color:#1e4f9c;
  font-size:11.5px;
  font-weight:600;
  letter-spacing:.1px;
  white-space:nowrap;
  box-shadow:inset 0 0 0 1px rgba(30,79,156,.1);
}

.badge.bad{
  background:var(--danger-bg);
  color:var(--danger);
  box-shadow:inset 0 0 0 1px rgba(173,72,48,.14);
}

/* ---------- 表单 ---------- */

label{
  display:grid;
  gap:7px;
  margin:16px 0;
  font-size:12.5px;
  font-weight:500;
  color:var(--text-soft);
}

input,select,textarea{
  width:100%;
  min-width:0;
  padding:11px 13px;
  border-radius:12px;
  border:1px solid var(--line-strong);
  background:#fff;
  color:var(--text);
  font-size:13.5px;
  transition:border-color var(--t),box-shadow var(--t),background var(--t);
}

input::placeholder,textarea::placeholder{color:#a9b6c6}

input:focus,select:focus,textarea:focus{
  outline:none;
  border-color:var(--brand-2);
  box-shadow:0 0 0 4px rgba(59,130,246,.13);
}

select{
  appearance:none;
  -webkit-appearance:none;
  padding-right:34px;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%238291a6' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 13px center;
}

textarea{line-height:1.75;resize:vertical;overflow-wrap:anywhere}

.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.formgrid .wide{grid-column:1/-1}

.intro{max-width:650px}

.footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-top:auto;
  padding-top:28px;
  border-top:1px solid var(--line);
  color:#97a4b4;
  font-size:11px;
  letter-spacing:.4px;
}

main > :not(.footer) + .footer{margin-top:auto}
main > .footer{margin-top:auto}

/* ---------- 人工客服条 ---------- */

.support-bar{
  position:relative;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:16px 22px;
  margin:0 0 20px;
  padding:16px 20px 16px 22px;
  border-radius:var(--r-lg);
  border:1px solid #d9e6fb;
  background:linear-gradient(112deg,#f4f9ff 0%,#fdfeff 52%,#eef5ff 100%);
  box-shadow:var(--sh-1);
}

.support-bar::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:4px;
  background:linear-gradient(180deg,var(--brand-2),#a8dcff);
}

.support-copy{display:flex;align-items:center;gap:13px;min-width:0}

.support-badge{
  flex-shrink:0;
  padding:6px 11px;
  border-radius:var(--r-pill);
  background:linear-gradient(180deg,#2563eb,#1a44b8);
  color:#fff;
  font-size:11px;
  font-weight:600;
  letter-spacing:.6px;
  box-shadow:0 8px 18px -12px rgba(37,99,235,.9), inset 0 1px 0 rgba(255,255,255,.22);
}

.support-copy-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.support-copy-text b{font-size:13.5px;font-weight:600;color:var(--ink)}
.support-copy-text .muted{font-size:12px}

.support-contacts{display:flex;gap:10px;flex-wrap:wrap}

.contact{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:9px 13px;
  border-radius:12px;
  background:#fff;
  box-shadow:inset 0 0 0 1px var(--line-strong), 0 1px 2px rgba(10,21,38,.04);
  transition:box-shadow var(--t),transform var(--t),background var(--t);
}
.contact:hover{
  background:#fbfdff;
  box-shadow:inset 0 0 0 1px var(--brand-2), 0 10px 22px -18px rgba(10,21,38,.5);
  transform:translateY(-1px);
}
.contact:active{transform:translateY(0)}
.contact:focus-visible{
  outline:none;
  box-shadow:inset 0 0 0 1px var(--brand-2), 0 0 0 3px rgba(59,130,246,.18);
}

.contact-label{font-size:11px;font-weight:600;letter-spacing:.4px;color:var(--muted)}
.contact b{
  font-size:13.5px;
  font-weight:600;
  color:var(--ink);
  letter-spacing:.2px;
  font-variant-numeric:tabular-nums;
}
.contact-hint{
  padding:2px 7px;
  border-radius:var(--r-pill);
  background:#e8f1ff;
  color:var(--brand);
  font-size:10.5px;
  font-weight:600;
}

@media(max-width:900px){
  .support-bar{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    padding:15px 18px 15px 20px;
  }
  .support-contacts{width:100%}
  .contact{flex:1 1 150px;justify-content:space-between}
}

/* ---------- 下载 / 教程 ---------- */

.download-grid,.guide-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.download-card h3{margin:10px 0 6px;overflow-wrap:anywhere}
.download-card .pill{margin-bottom:2px}
.download-card .btn{margin-top:14px}
.download-card details{margin:14px 0 0;font-size:11.5px;color:var(--muted)}
.download-card code{
  display:block;
  margin-top:8px;
  padding:10px 12px;
  border-radius:var(--r-sm);
  background:var(--surface-2);
  border:1px solid var(--line);
  overflow-wrap:anywhere;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:11px;
  color:var(--text-soft);
}

.guide-text{
  white-space:pre-line;
  font-size:13px;
  line-height:2;
  color:var(--text-soft);
  margin:10px 0 0;
}

summary{cursor:pointer;color:var(--brand);font-weight:600;font-size:12px}
summary::marker{color:var(--brand-2)}

/* ---------- 通用四步 / 三系统安装 ---------- */

.common-flow{
  padding:18px 20px;
  border-radius:var(--r-lg);
  border:1px solid #dbe6f7;
  background:linear-gradient(120deg,#f4f9ff,#fdfeff 58%,#eef5ff);
  box-shadow:var(--sh-1);
  margin-bottom:24px;
}

.common-head{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}
.common-head b{font-size:15px;font-weight:600;color:var(--ink)}
.common-head .muted{font-size:12.5px}

.common-steps{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.common-steps li{
  display:flex;
  gap:9px;
  align-items:flex-start;
  padding:12px 13px;
  border-radius:var(--r);
  border:1px solid var(--line);
  background:#fff;
}
.common-steps li > span{
  flex:0 0 auto;
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:7px;
  background:linear-gradient(180deg,#2563eb,#1a44b8);
  color:#fff;
  font-size:11px;
  font-weight:700;
}
.common-steps b{display:block;font-size:12.5px;font-weight:600;color:var(--ink)}
.common-steps small{display:block;margin-top:3px;font-size:11px;line-height:1.6;color:var(--muted)}

.install-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:22px;
}
.install-card{
  padding:16px 18px;
  border-radius:var(--r);
  border:1px solid var(--line);
  background:linear-gradient(180deg,#ffffff,#fbfdff);
  box-shadow:var(--sh-1);
}
.install-card b{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:5px}
.install-card p{margin:0;font-size:12px;line-height:1.8;color:var(--text-soft)}

@media(max-width:1000px){
  .common-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .install-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .common-steps{grid-template-columns:1fr}
  .common-flow{padding:16px}
}

/* ---------- 教程分页：设备列表 / 单设备 ---------- */

.device-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-bottom:26px;
}

.device-card{
  display:flex;
  flex-direction:column;
  padding:0;
  overflow:hidden;
  text-align:left;
  border-radius:var(--r-lg);
  border:1px solid var(--line);
  background:linear-gradient(180deg,#ffffff,#fdfeff);
  box-shadow:var(--sh-1);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
}
.device-card:hover{
  transform:translateY(-2px);
  box-shadow:var(--sh-2);
  border-color:#d8e6f7;
}

.device-thumb{
  display:block;
  width:100%;
  height:auto;
  border-bottom:1px solid var(--line);
  background:#f2f8ff;
}

.device-body{display:flex;flex-direction:column;gap:3px;padding:14px 16px 6px}
.device-body b{font-size:15px;font-weight:600;color:var(--ink)}
.device-body small{font-size:12px;color:var(--text-soft);line-height:1.6}
.device-body em{font-style:normal;font-size:11px;color:var(--muted)}

.device-arrow{
  padding:10px 16px 15px;
  font-size:12.5px;
  font-weight:600;
  color:var(--brand);
}

/* 单设备页 */

.guide-back{
  align-self:flex-start;
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:34px;
  margin-bottom:14px;
  padding:0 12px;
  border-radius:10px;
  border:1px solid var(--line-strong);
  background:#fff;
  font-size:12.5px;
  font-weight:600;
  color:var(--text-soft);
  transition:border-color var(--t),color var(--t),background var(--t);
}
.guide-back:hover{border-color:var(--brand-2);color:var(--brand);background:#fbfdff}

.guide-hero{
  margin:0 0 18px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.guide-hero img{
  display:block;
  height:190px;
  width:auto;
  max-width:100%;
  border-radius:var(--r-lg);
  border:1px solid var(--line);
}

.guide-detail .guide-card{padding:24px 26px}
.guide-detail .guide-steps{padding:0}
.guide-detail .guide-card-head{padding:0 0 4px}
.guide-detail .step-shot{width:300px}
.guide-detail .shot figcaption{max-width:660px}
.guide-detail .guide-note{margin:0 0 10px}
.guide-detail .note-block .guide-note{margin:0}
.guide-detail .guide-shots{padding:18px 0 0}
.guide-detail .support-bar{margin-top:20px}
.guide-detail .guide-help{display:none}

.device-switch{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.device-chip{
  padding:9px 15px;
  border-radius:10px;
  border:1px solid var(--line-strong);
  background:#fff;
  font-size:12.5px;
  font-weight:500;
  color:var(--text);
  transition:border-color var(--t),color var(--t),background var(--t),transform var(--t);
}
.device-chip:hover{border-color:var(--brand-2);color:var(--brand);background:#fbfdff;transform:translateY(-1px)}

@media(max-width:1000px){
  .device-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .guide-detail .step-shot{width:200px}
}

@media(max-width:700px){
  .device-grid{grid-template-columns:1fr}
  .guide-detail .guide-card{padding:20px 18px}
  .guide-detail .step-shot{width:100%;max-width:260px}
  .guide-hero img{height:150px}
}

/* ---------- 教程卡（示意图 + 分步） ---------- */

.guide-card{
  display:flex;
  flex-direction:column;
  padding:0;
  overflow:hidden;
}

.guide-thumb{
  margin:0;
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#f2f8ff,#f8fbff);
  overflow:hidden;
}
.guide-thumb img{display:block;width:100%;height:auto}

.guide-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:18px 24px 0;
}
.guide-card-head h2{font-size:17px;margin:0}

.guide-steps{
  list-style:none;
  margin:14px 0 0;
  padding:0 24px 20px;
  display:flex;
  flex-direction:column;
  gap:11px;
}

.guide-steps li{display:flex;align-items:flex-start;gap:12px}

.step-body{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:9px 12px;
  flex:1 1 auto;
  min-width:0;
}
.step-body > p{margin:0;flex:1 1 100%;min-width:0}

.step-shot{
  flex:0 0 auto;
  width:180px;
  margin:0;
}
.step-shot.wide{width:100%}
.step-shot.wide img{max-width:820px}
.step-shot a{display:inline-block;max-width:100%;vertical-align:top;border-bottom:0;position:relative}
.step-shot a::after{
  content:"⤢";
  position:absolute;
  top:6px;
  right:6px;
  width:20px;
  height:20px;
  display:grid;
  place-items:center;
  border-radius:6px;
  background:rgba(9,22,42,.55);
  color:#e6f0ff;
  font-size:12px;
  line-height:1;
}

.step-subs{
  list-style:none;
  margin:2px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:4px;
  flex:1 1 100%;
}
.step-subs li{
  position:relative;
  padding-left:14px;
  font-size:12.5px;
  line-height:1.75;
  color:var(--text-soft);
}
.step-subs li::before{
  content:"";
  position:absolute;
  left:2px;
  top:9px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--brand-2);
  opacity:.7;
}
.step-shot img{
  display:block;
  width:100%;
  height:auto;
  border-radius:10px;
  border:1px solid var(--line-strong);
  background:#0f141d;
}

.note-block{display:flex;flex-direction:column;gap:8px}
.note-block .guide-note{margin:0 24px 0}
.note-block .step-shot{width:180px;margin:0 24px 12px}

@media(max-width:700px){
  .step-shot{width:100%;max-width:240px}
  .note-block .step-shot{width:100%;max-width:240px;margin:0 18px 12px}
}

.step-num{
  flex:0 0 auto;
  min-width:27px;
  height:27px;
  padding:0 6px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:linear-gradient(180deg,#eaf2ff,#e1ecff);
  color:var(--brand);
  font-size:11px;
  font-weight:700;
  letter-spacing:.3px;
  font-variant-numeric:tabular-nums;
  box-shadow:inset 0 0 0 1px rgba(37,99,235,.12);
}

.guide-steps p{margin:0;font-size:13px;line-height:1.85;color:var(--text-soft)}

.guide-note{
  margin:0 24px 10px;
  padding:10px 12px;
  border-radius:var(--r-sm);
  background:var(--surface-2);
  border:1px solid var(--line);
  font-size:12px;
  line-height:1.8;
  color:var(--muted);
}
.guide-note:last-of-type{margin-bottom:20px}

/* 教程页：第一次来的三步 */

.start-flow{
  list-style:none;
  margin:0 0 16px;
  padding:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}

.start-flow li{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:13px 15px;
  border-radius:var(--r);
  border:1px solid var(--line);
  background:linear-gradient(180deg,#ffffff,#fafcff);
  box-shadow:var(--sh-1);
}

.start-flow span{
  flex:0 0 auto;
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:7px;
  background:linear-gradient(180deg,#2563eb,#1a44b8);
  color:#fff;
  font-size:11px;
  font-weight:700;
  box-shadow:0 6px 14px -10px rgba(37,99,235,.95);
}

.start-flow b{display:block;font-size:12.5px;font-weight:600;color:var(--ink)}
.start-flow small{display:block;margin-top:3px;font-size:11px;line-height:1.65;color:var(--muted)}

@media(max-width:900px){
  .start-flow{grid-template-columns:1fr}
}

/* 名词对照 */

.glossary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:0 0 18px;
}

.term{
  margin:0;
  padding:12px 14px;
  border-radius:var(--r);
  border:1px solid var(--line);
  background:linear-gradient(180deg,#ffffff,#fafcff);
}
.term dt{font-size:12.5px;font-weight:600;color:var(--ink);margin-bottom:3px}
.term dd{margin:0;font-size:11.5px;line-height:1.7;color:var(--text-soft)}

@media(max-width:1120px){
  .glossary{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
  .glossary{grid-template-columns:1fr}
}

@media(max-width:900px){
  .guide-card-head{padding:16px 18px 0}
  .guide-steps{padding:0 18px 18px}
  .guide-note{margin:0 18px 18px}
}

/* 真截图 + 说明（Windows 卡内） */

.guide-shots{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:2px 24px 22px;
}

.shot{
  margin:0;
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:12px;
  border-radius:var(--r);
  border:1px solid var(--line);
  background:var(--surface-2);
}

.shot-link{
  display:block;
  flex:0 0 auto;
  line-height:0;
  border-radius:8px;
}

.shot img{
  display:block;
  width:150px;
  height:auto;
  border-radius:8px;
  border:1px solid var(--line-strong);
  background:#fff;
}

.shot figcaption{
  font-size:12px;
  line-height:1.85;
  color:var(--text-soft);
  min-width:0;
}

.shot figcaption b{
  display:block;
  margin-bottom:3px;
  font-size:13px;
  font-weight:600;
  color:var(--ink);
}

.shot-wide{flex-direction:column;gap:10px}
.shot-wide .shot-link{width:100%}
.shot-wide img{width:100%}

.shot-tip{
  display:block;
  margin-top:8px;
  padding-top:7px;
  border-top:1px dashed var(--line-strong);
  font-size:11.5px;
  color:var(--muted);
}

.guide-grid{align-items:start}
.guide-help{align-self:stretch}

@media(max-width:700px){
  .guide-shots{padding:2px 18px 18px}
  .shot{flex-direction:column;gap:10px;padding:10px}
  .shot img{width:100%;max-width:210px}
  .shot-wide .shot-link{width:100%;overflow-x:auto;padding-bottom:2px}
  .shot-wide img{width:640px;max-width:none}
}

/* 教程末尾的客服卡：补齐网格并再给一次联系入口 */

.guide-help{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:16px;
  background:
    radial-gradient(120% 120% at 100% 0%, #e9f2ff 0%, rgba(233,242,255,0) 62%),
    linear-gradient(180deg,#fbfdff,#f3f9ff);
}

.guide-help-top{display:flex;gap:14px;align-items:flex-start}

.guide-help-icon{
  flex:0 0 auto;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(180deg,#2563eb,#1a44b8);
  color:#fff;
  font-size:19px;
  line-height:1;
  box-shadow:0 12px 22px -16px rgba(37,99,235,.95), inset 0 1px 0 rgba(255,255,255,.22);
}

.guide-help h2{margin:0 0 6px;font-size:17px}
.guide-help .muted{margin:0;font-size:12.5px;line-height:1.8}
.guide-help .actions{margin-top:auto;padding-top:2px}
.guide-help .contact{flex:1 1 168px;justify-content:space-between}

.guide-help-list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.guide-help-list li{
  position:relative;
  padding-left:16px;
  font-size:12.5px;
  line-height:1.75;
  color:var(--text-soft);
}
.guide-help-list li::before{
  content:"";
  position:absolute;
  left:2px;
  top:9px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--brand-2);
  opacity:.75;
}


@media(max-width:900px){
  .guide-help{padding:20px 18px}
}

/* ---------- 弹窗 / 提示 ---------- */

dialog{
  width:480px;
  max-width:calc(100vw - 28px);
  padding:30px;
  border:0;
  border-radius:var(--r-xl);
  background:#fff;
  color:var(--text);
  box-shadow:var(--sh-3);
}

dialog::backdrop{background:rgba(10,32,25,.44);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}

dialog h2{font-size:22px;letter-spacing:-.2px;line-height:1.35}
dialog h2:has(+ .note){
  font-size:30px;
  font-weight:600;
  letter-spacing:-.8px;
  margin:14px 0 10px;
  font-variant-numeric:tabular-nums;
  color:var(--ink);
}
dialog .muted{font-size:13px;margin:6px 0 4px}
dialog .row{align-items:flex-start}
dialog .btn{min-height:46px}
dialog form label:first-child{margin-top:10px}

dialog .close{
  width:32px;
  height:32px;
  flex-shrink:0;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:transparent;
  color:#7e8ea3;
  font-size:22px;
  line-height:1;
  transition:background var(--t),color var(--t);
}
dialog .close:hover{background:rgba(10,21,38,.06);color:var(--ink)}
dialog .close:focus-visible{
  outline:none;
  background:transparent;
  box-shadow:0 0 0 2px rgba(59,130,246,.3);
}

.dialog-actions{display:flex;gap:10px;margin-top:22px}

.toastshow{
  position:fixed;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);
  z-index:80;
  max-width:min(90vw,560px);
  padding:13px 20px;
  border-radius:var(--r-pill);
  background:rgba(9,22,42,.96);
  color:#eef7ff;
  font-size:13px;
  letter-spacing:.1px;
  box-shadow:0 24px 60px -24px rgba(8,20,38,.9), inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(8px);
  animation:toast-in .22s cubic-bezier(.2,.8,.3,1);
}

@keyframes toast-in{
  from{opacity:0;transform:translate(-50%,10px)}
  to{opacity:1;transform:translate(-50%,0)}
}

.checkline{display:flex;align-items:flex-start;gap:8px}
.checkline input{width:auto;margin-top:4px}

.error{color:var(--danger);font-size:12.5px;line-height:1.7}

.linkfield{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:11.5px;
  letter-spacing:.1px;
  color:var(--text-soft);
  background:var(--surface-2);
  overflow-wrap:anywhere;
}

.mobilebrand{display:none}

/* ---------- 滚动条 ---------- */

*{scrollbar-width:thin;scrollbar-color:#cfdae7 transparent}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#d5dde8;border-radius:99px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:#bccbdb;background-clip:padding-box}

/* ---------- 响应式 ---------- */

@media(min-width:1560px){
  main{max-width:1360px;padding-top:42px}
}

@media(max-width:1120px){
  .shell{grid-template-columns:214px 1fr}
  .sidebar{padding:22px 14px 18px;gap:18px}
  .brand{font-size:16px}
  .mark{width:34px;height:34px;border-radius:11px;font-size:20px}
  main{padding:28px 26px 48px}
  .topbar{padding:0 26px}
  .heading h1{font-size:27px}
  .hero{padding:34px 30px;min-height:230px}
  .hero h2{font-size:32px}
  .hero-art{min-width:200px}
  .orb{width:170px;height:170px}
  .orb.two{width:108px;height:170px}
  .orb.three{width:170px;height:68px}
  .plan{padding:22px 18px}
  .plan-grid{gap:14px}
  .split{grid-template-columns:1fr}
}

@media(max-width:900px){
  .shell{display:block}
  .sidebar{
    position:relative;
    top:auto;
    height:auto;
    width:100%;
    gap:14px;
    padding:16px 16px 14px;
    border-radius:0;
  }
  .sidebar .smallcap,.sidebottom{display:none}
  .nav{
    display:flex;
    gap:6px;
    margin:2px -2px 0;
    padding:2px;
    overflow-x:auto;
    scrollbar-width:none;
  }
  .nav::-webkit-scrollbar{display:none}
  .nav button{
    white-space:nowrap;
    padding:9px 12px;
    font-size:12.5px;
    border-radius:10px;
    flex:0 0 auto;
  }
  .nav button span{width:auto}
  .topbar{height:56px;padding:0 16px}
  .account .email{display:none}
  main{padding:22px 16px 44px}
  .heading{flex-wrap:wrap;align-items:flex-start;gap:14px}
  .heading h1{font-size:25px}
  .heading .btn{min-height:38px}
  .hero{flex-direction:column;align-items:flex-start;min-height:0;padding:28px 24px}
  .hero h2{font-size:28px;margin:14px 0 10px}
  .hero .muted{font-size:13px}
  .hero-art{display:none}
  .stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
  .stat{padding:15px 14px}
  .stat strong{font-size:22px;margin:9px 0 4px}
  .stat small{font-size:10.5px}
  .stat-label{font-size:11px}
  .plan-grid{grid-template-columns:1fr}
  .plan{padding:22px 20px}
  .download-grid,.guide-grid{grid-template-columns:1fr}
  .formgrid{grid-template-columns:1fr}
  .formgrid .wide{grid-column:auto}
  .footer{flex-direction:column;align-items:flex-start;gap:6px;line-height:1.8}
  th,td{padding:13px 10px}
  dialog{padding:24px}
}

@media(max-width:600px){
  .stats{grid-template-columns:1fr}
  .stat{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px}
  .stat-label{grid-column:1/-1;margin-bottom:4px}
  .stat strong{margin:0}
  .stat small{grid-column:2;text-align:right;align-self:end}
  .heading h1{font-size:23px}
  .hero h2{font-size:24px}
  .price{font-size:30px}
  .topbar{gap:8px}
  .topbar .btn{padding:0 13px;min-height:36px;font-size:12px}
  .actions .btn{flex:1 1 auto;min-height:42px}
}

@media(max-width:600px){
  .topbar .crumb{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .account>.muted{display:none}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}

/* 收款码付款面板 */
.paygrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:14px 0}
.paycard{margin:0;text-align:center}
.paycard img{width:100%;max-width:220px;border-radius:12px;border:1px solid var(--line);background:#fff;padding:6px}
.paycard figcaption{margin-top:6px;font-size:13px;color:#5c6673}
@media (max-width:640px){.paygrid{grid-template-columns:1fr}}