:root{
  --bg:#f5f7fb;
  --surface:#fff;
  --ink:#171a24;
  --ink-2:#4b5163;
  --dim:#8a90a2;
  --line:#eceef5;
  --soft:#f7f8fc;
  --accent:#7c5cff;
  --accent-2:#6a4af0;
  --on-accent:#fff;
  --accent-soft:#f1ecff;
  --ok:#14b87a;
  --ok-soft:#e8f8f1;
  --warn:#c47b00;
  --warn-soft:#fff6e5;
  --danger:#d23b33;
  --danger-soft:#fdecea;
  --shadow:0 16px 40px rgba(15,23,42,.06);
  --ring:oklab(0 0 0 / .04) 0 0 0 1px;
  --r:28px;
  --r2:22px;
  --r3:16px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.65 "PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-9999px;top:0;z-index:60;background:#fff;padding:10px 14px}
.skip:focus{left:0}

/* ---- header ---- */
.site-head{
  max-width:1120px;margin:0 auto;
  padding:22px 24px 0;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand .mark{width:36px;height:36px;border-radius:50%;display:block;flex:none}
.brand .name{display:flex;flex-direction:column;line-height:1.15}
.brand b{font-size:15px;letter-spacing:.04em}
.brand small{font-size:10px;letter-spacing:.16em;color:var(--dim);font-weight:650}
.head-pills{display:flex;gap:18px;color:var(--dim);font-size:13px}
.head-pills span{display:inline-flex;align-items:center;gap:6px}
.head-pills i{width:7px;height:7px;border-radius:50%;background:var(--accent);opacity:.55;flex:none}
@media (max-width:800px){.head-pills{display:none}.site-head{padding:16px 16px 0}}

/* ---- hero ---- */
.hero{text-align:center;padding:42px 20px 28px}
.kicker{
  margin:0 0 14px;font-size:12px;letter-spacing:.22em;color:var(--dim);font-weight:650;
}
.hero h1{margin:0 0 12px;font-size:40px;line-height:1.2;font-weight:700;letter-spacing:.3px}
.hero .sub{margin:0;color:var(--ink-2);font-size:15px}
.hero .sub b{font-weight:500;color:var(--dim)}
@media (max-width:640px){.hero{padding:28px 16px 18px}.hero h1{font-size:28px}}

/* ---- 3 feature cards ---- */
.feats{
  max-width:1120px;margin:0 auto 28px;padding:0 24px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
}
.feat{
  background:#fff;border-radius:22px;padding:22px 22px 20px;
  box-shadow:var(--ring),0 8px 24px rgba(15,23,42,.03);
  min-height:168px;
}
.feat .n{
  width:28px;height:28px;border-radius:50%;background:var(--ink);color:#fff;
  display:grid;place-items:center;font-size:13px;font-weight:700;margin-bottom:16px;
}
.feat .lab{font-size:11px;letter-spacing:.18em;color:var(--dim);font-weight:650;margin:0 0 8px}
.feat h2{margin:0 0 8px;font-size:18px;font-weight:700}
.feat p{margin:0;color:var(--ink-2);font-size:13.5px;line-height:1.65}
@media (max-width:860px){.feats{grid-template-columns:1fr;padding:0 16px;gap:12px}.feat{min-height:0}}

/* ---- window ---- */
.win-wrap{max-width:1120px;margin:0 auto;padding:0 24px 40px}
.win{
  background:#fff;border-radius:var(--r);
  box-shadow:var(--ring),var(--shadow);
  overflow:hidden;
}
.win-bar{
  display:flex;align-items:center;gap:10px;
  padding:14px 20px;border-bottom:1px solid var(--line);
}
.dots{display:flex;gap:6px}
.dots i{width:10px;height:10px;border-radius:50%}
.dots .r{background:#ff5f57}
.dots .y{background:#febc2e}
.dots .g{background:#28c840}
.win-title{font-size:13.5px;color:var(--ink-2);font-weight:600}
.live{margin-left:auto;display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:#0f8f62;background:#eefaf4;border-radius:999px;padding:5px 10px}
.live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok)}
.win-tabs{
  display:flex;gap:4px;padding:0 16px;
  border-bottom:1px solid var(--line);
  overflow-x:auto;scrollbar-width:none;
}
.win-tabs::-webkit-scrollbar{display:none}
.win-tabs button,.win-tabs a{
  appearance:none;border:0;background:none;color:var(--dim);
  font:inherit;font-size:14.5px;padding:14px 16px;cursor:pointer;
  border-bottom:2px solid transparent;white-space:nowrap;
  text-decoration:none;min-height:auto;border-radius:0;font-weight:500;
}
.win-tabs button[aria-selected="true"],.win-tabs a.on{color:var(--accent);font-weight:650;border-bottom-color:var(--accent)}
.win-body{padding:32px 40px 40px}
@media (max-width:800px){
  .win-wrap{padding:0 12px 32px}
  .win-body{padding:20px 16px 28px}
}

.pane[hidden]{display:none}
.pane h3{margin:0 0 6px;font-size:22px;font-weight:700}
.lede{margin:0 0 22px;color:var(--ink-2);font-size:14.5px}

/* ---- stepper ---- */
.steps-row{
  display:flex;align-items:center;justify-content:center;
  gap:0;margin:8px 0 32px;padding:0 8px;
}
.steps-row .st{
  display:flex;flex-direction:column;align-items:center;gap:8px;min-width:72px;
}
.steps-row .st i{
  width:28px;height:28px;border-radius:50%;display:grid;place-items:center;
  font-size:13px;font-weight:700;background:var(--soft);color:var(--dim);
}
.steps-row .st.on i,.steps-row .st.done i{background:var(--accent);color:#fff}
.steps-row .st span{font-size:12.5px;color:var(--dim)}
.steps-row .st.on span{color:var(--ink);font-weight:650}
.steps-row .line{flex:1;height:2px;background:var(--line);margin:0 8px 20px;max-width:80px}
.steps-row .line.on{background:var(--accent)}
@media (max-width:520px){
  .steps-row .st span{font-size:11px}
  .steps-row .line{max-width:28px;margin:0 4px 20px}
}

/* ---- form ---- */
.field{margin:0 0 16px}
label.fl{display:block;font-size:13.5px;color:var(--ink-2);margin:0 0 8px;font-weight:600}
input.tf,textarea.tf,select.tf{
  width:100%;min-height:52px;padding:0 18px;
  border:0;border-radius:999px;background:var(--soft);color:var(--ink);
  font:inherit;font-size:16px;
}
textarea.tf{min-height:96px;padding:14px 18px;border-radius:18px;resize:vertical}
textarea.tf.session{min-height:220px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.45}
.okbox{background:var(--ok-soft);color:#0d6b48;border-radius:16px;padding:14px 16px;margin:0 0 16px;font-size:14px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.filters button{appearance:none;border:0;background:var(--soft);color:var(--ink-2);border-radius:999px;padding:8px 14px;font:inherit;font-size:13px;cursor:pointer}
.filters button.on{background:var(--accent-soft);color:var(--accent);font-weight:650}
.query-list{display:grid;gap:10px;margin-top:16px}
.query-item{background:var(--soft);border-radius:16px;padding:14px 16px}
.query-item .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;word-break:break-all}
select.tf{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--dim) 50%),linear-gradient(135deg,var(--dim) 50%,transparent 50%);background-position:calc(100% - 20px) 22px,calc(100% - 14px) 22px;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
input.tf:focus,textarea.tf:focus,select.tf:focus{outline:2px solid var(--accent);outline-offset:2px;background:#fff}
.hint{margin:8px 0 0;color:var(--dim);font-size:13px}
.check{display:flex;gap:10px;align-items:flex-start;margin:4px 0 16px;font-size:14px;color:var(--ink-2)}
.check input{margin-top:4px;flex:none;width:16px;height:16px}

.btn{
  appearance:none;border:0;display:inline-flex;align-items:center;justify-content:center;
  min-height:52px;padding:0 22px;border-radius:999px;cursor:pointer;
  font:inherit;font-size:15.5px;font-weight:650;text-decoration:none;
  background:var(--soft);color:var(--ink);transition:.15s;
}
.btn:hover{filter:brightness(.97)}
.btn.p{background:var(--accent);color:#fff;width:100%}
.btn.p:hover{background:var(--accent-2)}
.btn.p:disabled{opacity:.55;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--ink-2)}
.row-btns{display:flex;gap:10px;margin-top:8px;align-items:center}
.row-btns .btn.p{width:auto;flex:1}
.row-btns .btn:not(.p){flex:0 0 auto}

.err{color:var(--danger);font-size:14px;margin:0 0 12px}
.err[hidden]{display:none}

/* ---- plans ---- */
.plan-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:0 0 20px}
@media (max-width:640px){.plan-grid{grid-template-columns:1fr}}
.plan-group{grid-column:1/-1;margin:8px 0 0;font-size:11px;letter-spacing:.16em;color:var(--dim);font-weight:700}
.plan{
  text-align:left;background:var(--soft);border:2px solid transparent;border-radius:18px;
  padding:16px 18px;cursor:pointer;color:inherit;font:inherit;width:100%;
}
.plan:hover{background:#eef0f7}
.plan.on{border-color:var(--accent);background:var(--accent-soft)}
.plan-name{font-weight:700;display:block}
.plan-meta{color:var(--dim);font-size:13px}
.plan-price{display:block;margin-top:8px;font-weight:700;font-variant-numeric:tabular-nums}
.plan.ask .plan-price{font-weight:500;color:var(--dim)}

/* ---- confirm ---- */
.facts{border-radius:18px;background:var(--soft);overflow:hidden;margin:0 0 18px}
.facts>div{display:flex;gap:12px;padding:12px 16px;border-top:1px solid #fff;font-size:15px}
.facts>div:first-child{border-top:0}
.facts .k{flex:0 0 72px;color:var(--dim);margin:0}
.facts .v{margin:0;flex:1}
.facts b{font-weight:700}

/* ---- tutorial pills ---- */
.guide-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.guide-list li{
  background:var(--soft);border-radius:999px;padding:14px 18px 14px 16px;
  display:flex;gap:12px;align-items:flex-start;font-size:14.5px;color:var(--ink-2);
}
.guide-list i{
  flex:none;width:24px;height:24px;border-radius:50%;background:#fff;color:var(--ink);
  display:grid;place-items:center;font-size:12.5px;font-weight:700;margin-top:1px;
}
.note-soft{margin:18px 0 0;padding:14px 16px;border-radius:16px;background:var(--accent-soft);color:var(--ink-2);font-size:13.5px}

/* ---- batch ---- */
.batch-row{
  background:var(--soft);border-radius:20px;padding:16px;margin:0 0 12px;
}
.batch-row .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;color:var(--dim)}
.add-row{background:none;border:0;color:var(--accent);font:inherit;font-weight:650;cursor:pointer;padding:8px 0}

/* ---- query duo ---- */
.duo{
  max-width:1120px;margin:0 auto;padding:0 24px 48px;
  display:grid;grid-template-columns:1fr 1fr;gap:18px;
}
.duo .card{
  background:#fff;border-radius:22px;padding:24px;
  box-shadow:var(--ring),0 8px 24px rgba(15,23,42,.03);
}
.duo h3{margin:0 0 6px;font-size:18px}
.duo p{margin:0 0 16px;color:var(--ink-2);font-size:14px}
.duo .btn.p{width:auto;padding:0 28px}
@media (max-width:800px){.duo{grid-template-columns:1fr;padding:0 12px 36px}}

/* ---- footer ---- */
.site-foot{
  text-align:center;color:var(--dim);font-size:13px;padding:8px 16px 40px;
}
.site-foot a{color:var(--dim);text-decoration:none;margin:0 8px}
.site-foot a:hover{color:var(--accent)}

/* ---- qr / code ---- */
.qr{text-align:center}
.qr img{width:min(260px,70vw);border-radius:16px;background:#fff}
.qr .cap{margin:12px 0 4px;font-size:15px}
.qr .tip{margin:0;color:var(--dim);font-size:13px}
.code{position:relative;margin:12px 0;background:var(--soft);border-radius:16px;overflow:hidden}
.code pre{margin:0;padding:16px 18px;white-space:pre-wrap;word-break:break-all;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13.5px}
.code .copy{position:absolute;top:8px;right:8px;min-height:36px;padding:0 14px;font-size:13px}

/* ---- pills / admin leftovers ---- */
.pill{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;font-size:12.5px;font-weight:650}
.pill.pending{background:var(--warn-soft);color:var(--warn)}
.pill.paid,.pill.doing{background:var(--accent-soft);color:var(--accent)}
.pill.done{background:var(--ok-soft);color:#0f8f62}
.pill.closed{background:var(--soft);color:var(--dim)}
.pill.unused{background:var(--ok-soft);color:#0f8f62}
.pill.sold{background:var(--accent-soft);color:var(--accent)}
.pill.used{background:var(--soft);color:var(--dim)}
.pill.void,.pill.dead{background:var(--danger-soft);color:var(--danger)}
.pill.idle{background:var(--ok-soft);color:#0f8f62}
.pill.inuse{background:var(--accent-soft);color:var(--accent)}
.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.admin-tabs button{
  border:0;background:var(--soft);color:var(--ink-2);font:inherit;font-weight:650;
  min-height:40px;padding:0 16px;border-radius:999px;cursor:pointer
}
.admin-tabs button.on{background:var(--ink);color:#fff}
.wrap.wide{max-width:1240px}
.admin-table td{vertical-align:middle}
.admin-table .amt-line{display:flex;align-items:center;gap:4px;margin-top:4px;color:var(--ink-2);font-size:13px}
.admin-table .amt{width:76px;min-height:34px;padding:0 10px}
.admin-acts{display:flex;flex-wrap:nowrap;gap:6px;align-items:center}
.admin-table .admin-acts .btn{
  min-height:34px;padding:0 12px;font-size:13px;font-weight:650;
  white-space:nowrap;width:auto;flex:none
}
.admin-table .admin-acts .btn.p{width:auto}
.admin-table td.ops{white-space:nowrap;width:1%}
.stats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.stats span{background:#fff;border-radius:12px;padding:8px 12px;font-size:13px;box-shadow:var(--ring)}
.gen-out{width:100%;min-height:120px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.big-no{font:700 22px/1.3 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em}
.topbar{max-width:1120px;margin:0 auto;padding:18px 24px 0;display:flex;align-items:center;justify-content:space-between}
.topbar .in,.brandrow{display:flex;align-items:center;gap:10px;width:100%}
.topbar .status{margin-left:auto;font-size:13px;color:var(--dim)}
.topbar .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);margin-right:6px}
.wrap{max-width:760px;margin:0 auto;padding:24px 16px 48px}
header.pg h1{margin:0 0 8px;font-size:28px}
header.pg .sub,.header .sub{color:var(--ink-2)}
.card{background:#fff;border-radius:var(--r2);padding:22px;margin:0 0 14px;box-shadow:var(--ring)}
.admin-bar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.admin-table{width:100%;min-width:1040px;border-collapse:collapse;font-size:14px}
.admin-table .pill{white-space:nowrap}
.admin-table th{text-align:left;font-size:12px;color:var(--dim);padding:8px 6px;border-bottom:1px solid var(--line)}
.admin-table td{padding:10px 6px;border-bottom:1px solid var(--line);vertical-align:top}
.admin-table .mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
.ov{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}
.ov .card{padding:14px 16px;margin:0}
.ov b{display:block;font-size:28px;line-height:1.1;margin-top:6px}
.bars{display:flex;align-items:flex-end;gap:8px;height:96px}
.bars div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}
.bars i{display:block;width:100%;max-width:28px;background:var(--ink);border-radius:6px 6px 0 0;min-height:2px}
.bars span{font-size:11px;color:var(--dim)}
.checks{display:flex;flex-wrap:wrap;gap:10px 14px;margin:8px 0 0}
.checks label{display:flex;align-items:center;gap:6px;font-size:14px}
@media(max-width:800px){.ov{grid-template-columns:1fr 1fr}}
nav.nav{display:none}

#toast{
  position:fixed;left:50%;bottom:28px;transform:translate(-50%,12px);
  background:var(--ink);color:#fff;padding:11px 18px;border-radius:999px;
  opacity:0;pointer-events:none;transition:.2s;z-index:70;font-size:14.5px;
}
#toast.on{opacity:1;transform:translate(-50%,0)}
#copy-box{
  position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(15,23,42,.35);
}
#copy-box[hidden]{display:none}
#copy-box .card{width:min(440px,100%);margin:0}
#copy-box textarea{width:100%;font-family:ui-monospace,Consolas,monospace;resize:vertical}
.sheet{display:none}

/* ---- public stage. Admin pages do not use body.stage. ---- */
@font-face{
  font-family:Orbitron;font-style:normal;font-weight:500 900;font-display:swap;
  src:url("/fonts/orbitron.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122;
}
@font-face{
  font-family:"Share Tech Mono";font-style:normal;font-weight:400;font-display:swap;
  src:url("/fonts/share-tech-mono.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122;
}
body.stage{
  --a1:#f472b6;--a2:#c084fc;--a3:#22d3ee;--hi:#7b3ff5;
  --glow:123,63,245;--glow2:244,114,182;--grid:123,63,245;--grid2:34,211,238;
  --bg:#08070f;--surface:#0e0c1a;--surface2:#13101f;--border:#2a1f4a;
  --text:#ede9fe;--muted:#9d7fe8;--dim:#9d7fe8;
  --btn:linear-gradient(135deg,#7b3ff5,#c084fc,#f472b6);
  --ink:#ede9fe;--ink-2:#c4b5fd;--soft:#13101f;--danger:#f87171;--ok:#34d399;
  --line2:#2a1f4a;
  --display:Orbitron,"Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
  --mono:"Share Tech Mono",ui-monospace,monospace;
  margin:0;min-height:100vh;color:var(--text);
  font-family:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background-color:var(--bg);
  background-image:
    repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.08) 2px,rgba(0,0,0,.08) 4px),
    linear-gradient(rgba(var(--grid),.09) 1px,transparent 1px),
    linear-gradient(90deg,rgba(var(--grid2),.045) 1px,transparent 1px),
    radial-gradient(circle at 14% 12%,rgba(var(--glow),.22),transparent 32%),
    radial-gradient(circle at 86% 88%,rgba(var(--glow2),.16),transparent 28%);
  background-size:auto,34px 34px,34px 34px,auto,auto;
}
body.stage::before,body.stage::after{
  content:"";position:fixed;z-index:0;width:460px;height:460px;border-radius:50%;
  pointer-events:none;filter:blur(14px);mix-blend-mode:screen;
}
body.stage::before{
  top:-150px;left:-150px;
  background:radial-gradient(circle,rgba(var(--glow),.34),transparent 66%);
  animation:corner-glow 5.2s ease-in-out infinite;transform-origin:38% 38%;
}
body.stage::after{
  right:-150px;bottom:-150px;
  background:radial-gradient(circle,rgba(var(--glow2),.26),transparent 66%);
  animation:corner-glow 6.4s ease-in-out infinite reverse;transform-origin:62% 62%;
}
@keyframes corner-glow{
  0%,100%{opacity:.34;transform:scale(.88)}
  50%{opacity:1;transform:scale(1.16)}
}
body.stage[data-theme="claude"]{
  --a1:#facc6b;--a2:#f59e5b;--a3:#2dd4bf;--hi:#d97732;
  --glow:245,158,91;--glow2:45,212,191;--grid:217,119,50;--grid2:45,212,191;
  --bg:#100d0a;--surface:#18110c;--surface2:#21170f;--border:#4a3323;
  --text:#fff7ed;--muted:#c79364;--dim:#c79364;--ink:#fff7ed;--ink-2:#f6d7b0;--soft:#21170f;
  --btn:linear-gradient(135deg,#d97732,#f59e5b,#facc6b);
}
body.stage[data-theme="grok"]{
  --a1:#acb2de;--a2:#6572c8;--a3:#a17dce;--hi:#6975ad;
  --glow:101,114,200;--glow2:161,125,206;--grid:101,114,200;--grid2:161,125,206;
  --bg:#07080d;--surface:#10121a;--surface2:#1b1e2b;--border:#30354a;
  --text:#f1f2f7;--muted:#8d92a5;--dim:#8d92a5;--ink:#f1f2f7;--ink-2:#d4d7e4;--soft:#1b1e2b;
  --btn:linear-gradient(112deg,#6572c8 0%,#7c74cf 43%,#a17dce 100%);
}
body.stage a{color:var(--a2)}
.stage-main{position:relative;z-index:1;max-width:680px;margin:0 auto;padding:48px 16px 20px;text-align:center}
.sysrow{display:flex;justify-content:center;align-items:center;gap:10px;margin-bottom:16px}
.sysbadge,.langbtn{
  display:inline-flex;align-items:center;gap:8px;
  border:1px solid var(--a2);background:var(--surface2);color:var(--a2);
  border-radius:0;padding:6px 16px;font-family:var(--display);font-size:10px;letter-spacing:.18em;font-weight:500;
  clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);
  box-shadow:inset 0 0 12px rgba(var(--glow),.08);
}
.langbtn{
  appearance:none;cursor:pointer;min-height:0;padding:6px 14px;letter-spacing:.14em;
  border-color:var(--hi);color:var(--ink-2);background:transparent;
  clip-path:polygon(6px 0,100% 0,calc(100% - 6px) 100%,0 100%);
}
.sysbadge svg{width:14px;height:14px;display:block}
.stage-title{
  margin:0;font-family:var(--display);font-size:34px;font-weight:900;letter-spacing:.06em;line-height:1.15;
  text-transform:uppercase;
  background:linear-gradient(135deg,var(--a2) 0%,var(--a1) 50%,var(--a3) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;
  -webkit-text-stroke:.25px rgba(255,255,255,.1);
  filter:drop-shadow(0 -1px 0 rgba(255,255,255,.16)) drop-shadow(1px 1px 0 rgba(65,70,67,.66)) drop-shadow(1px 2px 0 rgba(24,27,25,.58)) drop-shadow(1px 4px 4px rgba(0,0,0,.24)) drop-shadow(0 0 10px rgba(var(--glow),.14));
}
.stage-sub{margin:12px 0 18px;color:var(--muted);font-family:var(--mono);font-size:13px;letter-spacing:.05em;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}
.stage-sub span{display:inline-flex;align-items:center;gap:6px}
.stage-sub svg{width:14px;height:14px;color:var(--a3)}
.stage-sub span:nth-child(2) svg{color:var(--a1)}
.stage-sub span:nth-child(3) svg{color:var(--a2)}
.prod-nav{
  display:grid;grid-template-columns:repeat(4,1fr);gap:6px;
  max-width:620px;margin:0 auto 16px;padding:4px;
  border:1px solid var(--border);background:rgba(8,7,15,.34);
}
.prod-nav button{
  position:relative;
  appearance:none;border:0;border-radius:0;background:transparent;color:var(--muted);
  min-height:38px;padding:8px 4px;cursor:pointer;
  font-family:var(--display);font-size:10px;font-weight:700;letter-spacing:.08em;
  display:flex;align-items:center;justify-content:center;gap:5px;
  transition:.15s;
}
.prod-nav button svg{width:16px;height:16px;flex:none;opacity:.86}
.prod-nav button::before,.prod-nav button::after{
  content:"";position:absolute;width:6px;height:6px;border-color:rgba(var(--glow),.86);border-style:solid;
  opacity:0;pointer-events:none;
}
.prod-nav button::before{top:3px;left:3px;border-width:1px 0 0 1px}
.prod-nav button::after{right:3px;bottom:3px;border-width:0 1px 1px 0}
.prod-nav button.on,
.prod-nav a.navlink.on,.prod-nav span.navlink.on{
  color:var(--a2);
  background:linear-gradient(135deg,rgba(var(--glow),.1),rgba(var(--glow2),.09));
  box-shadow:inset 0 0 0 1px rgba(var(--glow),.16);
  text-shadow:0 0 12px rgba(var(--glow),.55);
}
.prod-nav button.on::before,.prod-nav button.on::after{opacity:.9;filter:drop-shadow(0 0 3px rgba(var(--glow),.42))}
.prod-nav button.on svg{opacity:1;filter:drop-shadow(0 0 5px rgba(var(--glow2),.45))}
.prod-nav a.navlink,.prod-nav span.navlink{
  display:flex;align-items:center;justify-content:center;min-height:38px;
  color:var(--muted);text-decoration:none;font-family:var(--display);font-size:10px;font-weight:700;letter-spacing:.08em;
}
.panel{
  position:relative;text-align:left;overflow:hidden;
  background:var(--surface);border:1px solid var(--border);border-radius:0;
  padding:28px;
  clip-path:polygon(0 12px,12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px));
}
.scan{
  position:absolute;left:0;right:0;height:2px;top:0;pointer-events:none;z-index:1;
  background:linear-gradient(90deg,transparent,var(--a2),var(--a1),transparent);
  transform-origin:center;animation:card-scan 4s linear infinite;
}
@keyframes card-scan{
  0%,100%{opacity:.3;transform:scaleX(.3)}
  50%{opacity:1;transform:scaleX(1)}
}
.panel::before,.panel::after{
  content:"";position:absolute;width:24px;height:24px;pointer-events:none;z-index:2;
  border-color:var(--a2);border-style:solid;
}
.panel::before{top:8px;left:8px;border-width:2px 0 0 2px;box-shadow:-4px -4px 12px rgba(var(--glow),.3)}
.panel::after{right:8px;bottom:8px;border-width:0 2px 2px 0;box-shadow:4px 4px 12px rgba(var(--glow),.3)}
.corner{position:absolute;width:8px;height:8px;background:var(--a2);opacity:.6;pointer-events:none;z-index:2}
.corner.tl{top:4px;left:4px}
.corner.br{right:4px;bottom:4px}
.gpt-mode{
  position:relative;z-index:1;
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  margin:-12px 0 22px;
}
.gpt-mode button{
  min-height:38px;padding:0 12px;
  font-family:var(--display);font-size:12px;font-weight:700;letter-spacing:.14em;
  color:var(--ink-2);
  background:rgba(var(--glow),.08);
  border:1px solid rgba(var(--glow2),.45);
  clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);
}
.gpt-mode button.on{
  color:#fff;border-color:transparent;
  background:linear-gradient(90deg,rgb(var(--glow)),rgb(var(--glow2)));
  box-shadow:0 8px 22px rgba(var(--glow),.28);
}
.stock-bar{
  position:relative;z-index:1;
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;
  margin:0 0 30px;padding:10px 12px;
  background:linear-gradient(135deg,rgba(var(--glow),.08),rgba(var(--glow2),.04)),#08070f94;
  border:1px solid rgba(var(--glow2),.22);
  box-shadow:inset 0 0 0 1px rgba(var(--glow),.04);
}
.stock-head{display:inline-flex;align-items:center;gap:7px;min-height:24px;padding-right:10px;border-right:1px solid rgba(var(--glow2),.18);color:var(--a3)}
.stock-head svg{width:16px;height:16px;color:var(--a3);filter:drop-shadow(0 0 5px rgba(var(--glow2),.35))}
.stock-head b{font-family:var(--display);font-size:10px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--a3)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;flex:1}
.chips span{
  --sc:34,211,238;
  display:inline-flex;align-items:center;gap:6px;min-height:24px;
  border:1px solid rgba(var(--sc),.34);border-radius:0;
  padding:4px 9px;font-family:var(--display);font-size:10px;font-weight:700;letter-spacing:.08em;
  color:rgb(var(--sc));text-transform:uppercase;
  background:linear-gradient(rgba(var(--sc),.13),rgba(var(--sc),.05));
  clip-path:polygon(4px 0,100% 0,calc(100% - 4px) 100%,0 100%);
}
.chips span .dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 7px currentColor;flex:none}
.chips span em{font-style:normal;color:var(--ink-2)}
.chips span .sep{width:1px;height:11px;background:currentColor;opacity:.32;flex:none}
.chips span .lv{color:rgb(var(--sc));font-weight:700}
.chips span.stock-high{--sc:34,211,238}
.chips span.stock-low{--sc:244,114,182}
.chips span.stock-none{--sc:248,113,113}
.chips span.stock-soon{--sc:157,127,232;color:var(--muted)}
.chips span.stock-high .dot{animation:stock-pulse 2s ease infinite}
.chips span.on{box-shadow:0 0 0 1px currentColor,0 0 14px currentColor}
@keyframes stock-pulse{0%,100%{opacity:1}50%{opacity:.35}}
body.stage .steps-row{position:relative;margin:6px 0 20px;justify-content:space-between}
body.stage .steps-row::before{
  content:"";position:absolute;top:16px;left:20px;right:20px;height:1px;
  background:repeating-linear-gradient(90deg,var(--border) 0 6px,transparent 6px 10px);
}
body.stage .steps-row .line{display:none}
body.stage .steps-row .st{min-width:0;flex:1;gap:6px;position:relative;z-index:1}
body.stage .steps-row .st i{
  width:32px;height:32px;border-radius:0;font-family:var(--display);font-size:12px;font-weight:500;
  background:var(--surface2);border:1px solid var(--border);color:var(--muted);
  clip-path:polygon(4px 0,100% 0,calc(100% - 4px) 100%,0 100%);
}
body.stage .steps-row .st.on i,body.stage .steps-row .st.done i{
  background:color-mix(in srgb,var(--a2) 18%,transparent);border-color:var(--a2);color:var(--a2);
  box-shadow:0 0 12px var(--a2),0 0 28px rgba(var(--glow),.35);
}
body.stage .steps-row .st span,body.stage .steps-row .st.on span{
  font-family:var(--display);font-size:10px;letter-spacing:.08em;font-weight:500;color:var(--muted);
}
body.stage .steps-row .st.on span{color:var(--a2)}
body.stage .steps-row .line.on{border-top-color:var(--a2)}
.stage-sub em{font-style:normal}
body.stage .pane h3{font-size:15px;font-weight:650;color:var(--ink-2)}
body.stage .lede{color:var(--dim);font-size:13px}
body.stage label.fl{font-family:var(--mono);font-size:12px;letter-spacing:.06em;font-weight:400;color:var(--muted)}
body.stage label.fl::before{content:"▸ ";color:var(--a3)}
body.stage .key-box{position:relative}
body.stage .key-box .cdk-count{
  position:absolute;right:14px;top:50%;transform:translateY(-50%);float:none;
  font-family:var(--mono);font-size:12px;color:var(--muted);pointer-events:none;
}
body.stage input.tf,body.stage textarea.tf,body.stage select.tf{
  background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:0;min-height:46px;
  font-family:var(--mono);font-size:14px;
}
body.stage .key-box input.tf{padding-right:78px}
body.stage textarea.tf{border-radius:0}
body.stage input.tf:focus,body.stage textarea.tf:focus{outline:1px solid var(--hi);background:var(--bg)}
body.stage .btn{border-radius:0;background:var(--surface2);color:var(--text);border:1px solid var(--border);font-family:var(--display)}
body.stage .btn.p{
  width:100%;min-height:48px;border:0;color:#fff;font-weight:700;font-size:12px;letter-spacing:.16em;
  background:var(--btn);
  clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);
  box-shadow:none;
  filter:drop-shadow(0 4px 16px rgba(var(--glow),.45));
}
body.stage .row-btns .btn.p{width:auto;flex:1}
body.stage .btn.ghost{background:transparent}
body.stage .okbox{background:color-mix(in srgb,var(--ok) 12%,var(--bg));color:var(--ok);border-radius:0;border:1px solid color-mix(in srgb,var(--ok) 35%,transparent)}
body.stage .facts{background:var(--bg);border:1px solid var(--border);border-radius:0}
body.stage .facts>div{border-top-color:var(--border)}
body.stage .check{color:var(--ink-2)}
body.stage .err{color:var(--danger)}
body.stage .hint{color:var(--dim)}
body.stage .query-item,.soon,.guide-list li,.batch-row,.note-soft{
  background:var(--bg);border:1px solid var(--border);border-radius:0;color:var(--ink-2);
}
body.stage .filters button{background:var(--bg);color:var(--ink-2);border:1px solid var(--border);border-radius:0;font-family:var(--display);letter-spacing:.06em}
body.stage .filters button.on{color:#041016;background:var(--a3);border-color:var(--a3)}
body.stage .code{background:var(--bg);border:1px solid var(--border);border-radius:0}
body.stage #sess-box{position:relative;z-index:1}
.stage-foot{position:relative;z-index:1;text-align:center;color:var(--muted);font-family:var(--mono);font-size:11px;letter-spacing:.12em;padding:22px 12px 40px}
.stage-foot a{color:var(--a2);margin:0 8px;text-decoration:none}
body.stage #sess-box{position:relative;z-index:1}
.cdk-count{float:right;color:var(--dim);font-size:12px;font-weight:500}
@media (max-width:640px){
  .stage-title{font-size:22px;letter-spacing:.04em}
  .stage-main{padding-top:28px}
  .panel{padding:16px 12px 14px}
  .prod-nav{gap:4px;padding:3px}
  .prod-nav button{font-size:9px;letter-spacing:.04em;padding:8px 2px}
}
body.stage .pill.pending{background:#2a220c;color:#f0c36a}
body.stage .pill.paid,body.stage .pill.doing,body.stage .pill.sold,body.stage .pill.inuse{background:#1c1430;color:var(--a1)}
body.stage .pill.done,body.stage .pill.unused,body.stage .pill.idle{background:#10241c;color:var(--ok)}
body.stage .pill.closed,body.stage .pill.used{background:#161222;color:var(--dim)}

/* ============================================================
   视觉增强 & 可读性修复（2026-09-24 追加，叠加覆盖，不改上方结构）
   ============================================================ */
[hidden]{display:none !important}
body.stage{color-scheme:dark}

/* 主按钮渐变整体调深 → 白字对比度达标（原约 2.6:1），并更有质感 */
body.stage{--btn:linear-gradient(135deg,#6d28d9,#8b2fd6,#c026a3)}
body.stage[data-theme="claude"]{--btn:linear-gradient(135deg,#b45309,#c2610c,#9a3412)}
body.stage[data-theme="grok"]{--btn:linear-gradient(135deg,#4f46c5,#6d28d9,#7c3aed)}
body.stage .btn.p{
  color:#fff;font-size:13.5px;font-weight:800;letter-spacing:.14em;
  text-shadow:0 1px 4px rgba(0,0,0,.45);
  transition:transform .12s ease, filter .12s ease;
}
body.stage .btn.p:hover{transform:translateY(-1px);filter:drop-shadow(0 8px 26px rgba(var(--glow),.6)) brightness(1.07)}
body.stage .btn.p:active{transform:translateY(0);filter:drop-shadow(0 3px 12px rgba(var(--glow),.5))}
body.stage .btn.p:focus-visible{outline:2px solid #fff;outline-offset:-4px}
body.stage .btn:not(.p):hover{border-color:var(--a2);color:var(--a2)}

/* 焦点框：不再被 clip-path 裁掉 */
body.stage :focus-visible{outline:2px solid var(--a3);outline-offset:2px}
body.stage .filters button:focus-visible,body.stage .prod-nav button:focus-visible{outline-offset:-3px}

/* 教程步骤编号：原来白底+近白字（1.19:1，看不见）→ 深底霓虹字 */
body.stage .guide-list i{background:var(--surface2);color:var(--a2);border:1px solid var(--a2);box-shadow:0 0 8px rgba(var(--glow),.35)}

/* toast：原来浅底白字，暗色下看不见 */
body.stage #toast{background:var(--surface2);color:var(--text);border:1px solid var(--a2);box-shadow:0 0 22px rgba(var(--glow),.45)}

/* 确认页邮箱等长值不被裁断 */
.facts .v{min-width:0;overflow-wrap:anywhere}
.query-item .mono,.query-item p{overflow-wrap:anywhere}

/* 标题流光 + HUD 底线，更炫 */
.stage-title{background-size:220% auto;animation:title-shimmer 7s linear infinite}
@keyframes title-shimmer{to{background-position:220% center}}

/* 产品导航：悬停高亮 + 选中项更亮 */
.prod-nav button{transition:.15s}
.prod-nav button:hover:not(.on){color:var(--a2);background:rgba(var(--glow),.07)}
.prod-nav button.on{background:linear-gradient(135deg,rgba(var(--glow),.16),rgba(var(--glow2),.12))}

/* 库存/套餐芯片：悬停微亮 */
.chips span{transition:.15s}
.plan{transition:.15s}
body.stage .plan:hover{border-color:var(--a2);box-shadow:0 0 0 1px var(--a2),0 6px 18px rgba(var(--glow),.25)}

/* 输入框聚焦：霓虹描边 + 轻微内发光 */
body.stage input.tf:focus,body.stage textarea.tf:focus{
  outline:none;border-color:var(--a3);
  box-shadow:0 0 0 1px var(--a3),0 0 16px rgba(var(--glow2),.28) inset;
}

/* 客服二维码卡片（订单页/帮助页用） */
body.stage .qr img{border:1px solid var(--border);box-shadow:0 0 22px rgba(var(--glow),.3);padding:8px}
body.stage .qr .cap{color:var(--ink-2)}

/* 手机端：中文最小 12px 一带，输入框 16px 防 iOS 聚焦放大 */
@media (max-width:640px){
  .prod-nav button{font-size:11px !important;letter-spacing:.02em}
  body.stage .steps-row .st span,body.stage .steps-row .st.on span{font-size:11px}
  .chips span{font-size:11px}
  .stock-head b{font-size:11px}
  .stage-foot{font-size:12px}
  .stage-sub{font-size:12px}
  body.stage input.tf,body.stage textarea.tf,body.stage select.tf{font-size:16px}
}

/* 尊重「减少动态效果」系统偏好 */
@media (prefers-reduced-motion:reduce){
  .scan,.stage-title,body.stage::before,body.stage::after,
  .chips span.stock-high .dot{animation:none !important}
  body.stage .btn.p{transition:none}
}
