/* OakGenius R&D Hub 新品研发工作台 · Brand Visual V1.0（Freya 10-26 选定：干净、简洁、有品质）
   Warm textured paper, Georgia serif titles in deep blue, tiny tracked labels, paper ribbons in red / deep blue / ice blue.
   Georgia + system Chinese fonts: nothing to load, works in mainland China. */
:root{
  --navy:#173965;--red:#173965;--sky:#BBD4E9;--sun:#BBD4E9;/* Freya 10-26：黄→品牌浅蓝，红→品牌深蓝 */--paper:#F0EDE3;--slate:#5B7090;
  --bg:#FFFFFF;--card:#FFFFFF;--soft:#F1F5F9;--warm:#F7F8FA;--ink:#0F1111;--muted:#5F6B7A;--line:#E3E6EA;--line2:#CDD3DA;/* Freya 10-27：主底色白色 */
  --accent:#173965;--accent-ink:#FFFFFF;--hl:#E6EFF8;--hl-ink:#173965;
  --ok:#2F7A4F;--ok-bg:#E5F0E7;--warn:#946A0A;--warn-bg:#F8EFD3;--bad:#B3322A;--bad-bg:#F7E3DF;
  --rail:#F3F5F8;--rail-ink:#173965;--shadow:0 1px 1px rgba(15,17,17,.04),0 8px 24px rgba(15,17,17,.06);
  --f-display:Georgia,"Times New Roman","Songti SC",serif;
  --f-body:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --f-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --r:18px;--r-s:10px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#131A26;--card:#1A2333;--soft:#1E2B40;--warm:#182131;--ink:#ECE8DE;--muted:#A3ADBD;--line:#2A3650;--line2:#384664;--slate:#9FB3CF;
  --accent:#BBD4E9;--accent-ink:#0F1724;--hl:#1C2A3E;--hl-ink:#BBD4E9;--red:#2F5E99;
  --ok:#7FD0A0;--ok-bg:#163526;--warn:#F0CE6A;--warn-bg:#3A3112;--bad:#F2968E;--bad-bg:#3D1D1B;
  --rail:#101622;--rail-ink:#ECE8DE;--shadow:0 1px 2px rgba(0,0,0,.3),0 12px 32px rgba(0,0,0,.28);color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#131A26;--card:#1A2333;--soft:#1E2B40;--warm:#182131;--ink:#ECE8DE;--muted:#A3ADBD;--line:#2A3650;--line2:#384664;--slate:#9FB3CF;
  --accent:#BBD4E9;--accent-ink:#0F1724;--hl:#1C2A3E;--hl-ink:#BBD4E9;--red:#2F5E99;
  --ok:#7FD0A0;--ok-bg:#163526;--warn:#F0CE6A;--warn-bg:#3A3112;--bad:#F2968E;--bad-bg:#3D1D1B;
  --rail:#101622;--rail-ink:#ECE8DE;--shadow:0 1px 2px rgba(0,0,0,.3),0 12px 32px rgba(0,0,0,.28);color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.6 var(--f-body);color:var(--ink);background:var(--bg)}
a{color:var(--accent)}
:focus-visible{outline:2px solid var(--red);outline-offset:2px;border-radius:6px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- 顶栏（亚马逊式）：品牌＋全局搜索＋想法篮＋账号；第二行横向菜单 ---------- */
header#top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--card);border-bottom:1px solid var(--line);color:var(--ink)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:21;background:var(--card)}
.hbar{display:flex;align-items:center;gap:16px;padding-block:10px;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:4px;color:var(--navy);text-decoration:none;flex:none}
.brand .wm{font:400 20px/1 var(--f-display);letter-spacing:.07em;color:var(--navy)}
.brand .tg{font:600 9px/1 var(--f-body);letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.brand .tg .zh{letter-spacing:.12em;font-size:9.5px}
.gsearch{flex:1;min-width:0;max-width:760px;display:flex;align-items:stretch;border:2px solid var(--navy);border-radius:10px;overflow:hidden;background:var(--card)}
.gsearch select{all:unset;flex:none;padding:0 10px;background:var(--warm);border-right:1px solid var(--line);font-size:13px;color:var(--ink);cursor:pointer}
.gsearch input{flex:1;min-width:0;border:0;border-radius:0;padding:10px 12px;font-size:15px;background:transparent;outline:none;box-shadow:none}
.gsearch button{flex:none;border:0;border-radius:0;background:var(--sun);color:var(--navy);width:48px;display:grid;place-items:center;padding:0;min-height:0}
.gsearch button svg{width:20px;height:20px}
.gsearch:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--sun) 55%,transparent)}
.hcart{position:relative;display:flex;align-items:flex-end;gap:6px;color:var(--navy);text-decoration:none;flex:none;padding:4px 6px;border-radius:8px}
.hcart svg{width:30px;height:30px}
.hc-n{position:absolute;left:21px;top:-2px;transform:translateX(-50%);min-width:20px;height:20px;padding:0 5px;box-sizing:border-box;border-radius:999px;background:var(--red);color:#fff;font:700 12px/20px var(--f-body);text-align:center}
.hc-n.pop{animation:pop .35s ease}
@keyframes pop{40%{transform:translateX(-50%) scale(1.35)}}
.hc-t{font-weight:600;font-size:13.5px;padding-bottom:3px}
.hcart:hover,.hcart.on{background:var(--warm)}
#menuBtn{background:none;border:0;color:var(--navy);font-size:22px;padding:4px 6px;cursor:pointer;display:none;min-height:0}
.qnew{display:none}
details.dd{position:relative}
details.dd>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:4px;white-space:nowrap}
details.dd>summary::-webkit-details-marker{display:none}
details.dd>summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:4px;opacity:.6}
.ddp{position:absolute;top:calc(100% + 6px);left:0;z-index:30;min-width:200px;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:6px}
.ddp.right{left:auto;right:0}
.ddp a{padding:8px 12px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:14px;white-space:nowrap}
.ddp a:hover,.ddp a.on{background:var(--warm)}
.ddp a.on{box-shadow:inset 3px 0 0 var(--red)}
.acct>summary{font-size:14px;font-weight:600;color:var(--navy);padding:6px 8px;border-radius:8px}
.acct>summary:hover{background:var(--warm)}
nav#nav{display:flex;align-items:center;gap:2px;flex-wrap:wrap;padding-block:4px 6px;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px));background:var(--bg);border-top:1px solid var(--line)}
nav#nav>a,nav#nav>details>summary{padding:7px 8px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:14px}
nav#nav .zh{color:var(--muted);font-size:12px}
nav#nav>a:hover,nav#nav>details>summary:hover{background:var(--card)}
nav#nav>a.on,nav#nav>details.on>summary{background:var(--card);box-shadow:inset 0 -2px 0 var(--red);font-weight:600}
nav#nav>a.cta{background:var(--red);color:#fff;font-weight:600;border-radius:999px;padding:7px 14px;margin-right:4px}
nav#nav>a.cta .zh{color:#fff;opacity:.85}
nav#nav>a.cta:hover{background:#0F2A4D}
nav#nav .sep{width:1px;height:20px;background:var(--line2);margin:0 4px}
@media (max-width:900px){
  .hbar{flex-wrap:wrap;gap:10px;padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}
  #menuBtn{display:block}
  .gsearch{order:5;flex-basis:100%;max-width:none}
  .hcart{margin-left:auto}
  .hc-t,.acct{display:none}
  nav#nav{display:none;flex-direction:column;align-items:stretch;max-height:70vh;overflow-y:auto}
  nav#nav.open{display:flex}
  nav#nav .sep{display:none}
  nav#nav>a.cta{align-self:flex-start}
  .ddp{position:static;box-shadow:none;border:0;padding-left:12px}
}

/* ---------- workspace ---------- */
main{max-width:1160px;margin:0 auto;padding-block:24px 64px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:981px){main{padding-left:max(32px,env(safe-area-inset-left,0px));padding-right:max(32px,env(safe-area-inset-right,0px))}}
h1{font:700 28px/1.2 var(--f-display);margin:2px 0 6px;color:var(--ink);text-wrap:balance}
h1 .zh{font-size:.62em}
h2{font:700 19px/1.3 var(--f-display);margin:28px 0 10px;text-wrap:balance}
h3{font:700 15.5px/1.35 var(--f-display);margin:14px 0 6px}
.eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.eyebrow .zh{text-transform:none;letter-spacing:0}
.lead{color:var(--muted);max-width:68ch;margin:0 0 18px}
.zh{color:var(--muted);font-size:.88em;font-weight:400}
.muted{color:var(--muted);font-size:13px}
.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:18px}
.page-head>div{min-width:0}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin:12px 0}
.card.flat{background:var(--warm)}
.card.raised{box-shadow:var(--shadow);border-color:transparent}
a.card{display:block;text-decoration:none;color:inherit}
a.card:hover{border-color:var(--line2)}
.card.hl,a.card.hl{background:var(--hl);border-color:transparent;color:var(--ink)}
.card.hl .zh{color:var(--hl-ink)}
details.card>summary{cursor:pointer;font-weight:600}
.grid{display:grid;gap:14px}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.grid.three{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.grid>*{min-width:0}
.grid>.card{margin:0}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.row>*{flex:1 1 160px;min-width:0}

/* forms */
label{display:block;font-size:13px;color:var(--muted);margin:10px 0 4px;font-weight:500}
input,select,textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--line2);border-radius:12px;background:var(--card);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--sky) 55%,transparent)}
textarea{min-height:90px;resize:vertical}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--navy)}
button,.btn{font:600 14.5px/1.2 var(--f-body);padding:10px 16px;border-radius:999px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;justify-content:center}
button .zh,.btn .zh{color:inherit;opacity:.78;font-weight:400}
button:hover,.btn:hover{filter:brightness(1.08)}
button.ghost,.btn.ghost{background:transparent;color:var(--accent);border-color:var(--line2)}
button.ghost:hover,.btn.ghost:hover{background:var(--soft);filter:none}
button.red,.btn.red{background:var(--red);border-color:var(--red);color:#fff}
button.sun,.btn.sun{background:var(--sun);border-color:var(--sun);color:#173965}
button.big,.btn.big{padding:13px 22px;font-size:16px}
button:disabled{opacity:.45;cursor:default;filter:none}
.btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}

/* tables (reference pages) */
.tbl{width:100%;overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{border-bottom:1px solid var(--line);padding:9px 8px;text-align:left;vertical-align:top}
th{font-size:12px;color:var(--muted);font-weight:600;background:var(--warm)}
tr:last-child td{border-bottom:0}
@media (max-width:640px){table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}table.stack tr:first-child{display:none}table.stack tr{border-bottom:1px solid var(--line);padding:10px 0}table.stack td{border:0;padding:2px 0}}

/* pills */
.tag{display:inline-flex;align-items:center;gap:3px;font-size:12px;line-height:1.5;padding:1px 9px;border-radius:999px;background:var(--warm);border:1px solid var(--line);margin:2px 3px 2px 0;color:var(--ink)}
.tag .zh{color:inherit;opacity:.75}
.tag.ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}
.tag.bad{background:var(--bad-bg);color:var(--bad);border-color:transparent}
.tag.gold{background:var(--warn-bg);color:var(--warn);border-color:transparent}
.tag.info{background:var(--soft);color:var(--accent);border-color:transparent}
.chips{margin-top:6px;display:flex;flex-wrap:wrap}
.tag.lib{text-decoration:none}
.tag.lib::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c,#999);margin-right:3px}
.tag.lib.el{--c:#7A8B5E}.tag.lib.ar{--c:#9B6BB5}.tag.lib.ta,.tag.lib.mf,.tag.lib.fi{--c:#4C86C6}.tag.lib.vi{--c:#D98A3A}
.tag.lib.ex,.tag.lib.nd{--c:#3E9B6E}.tag.lib.pr{--c:#B39A2E}
.tag.lib.add{cursor:pointer}.tag.lib.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.tag .rm{text-decoration:none;color:var(--bad);margin-left:4px;font-weight:700}

/* kpi tiles (kept for reference pages) */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px}
.kpi .l{font-size:12px;color:var(--muted)}
.big{font:700 26px/1.2 var(--f-display);font-variant-numeric:tabular-nums}
.cards{display:flex;flex-wrap:wrap;gap:10px}.card.kpi{flex:1 1 120px;text-align:center;margin:0}.card.kpi .n{font:700 26px/1.2 var(--f-display)}

/* segmented tabs */
.tabs{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;background:var(--card);border:1px solid var(--line);border-radius:999px;margin:6px 0 14px}
.tabs button,.tabs .btn{background:transparent;color:var(--ink);border-color:transparent;padding:7px 14px;font-weight:500;font-size:14px}
.tabs button.on,.tabs .btn.on{background:var(--navy);color:#fff}
.tabs button:hover{filter:none;background:var(--soft)}.tabs button.on:hover{background:var(--navy)}

#toast{position:fixed;right:max(16px,env(safe-area-inset-right,0px));top:calc(env(safe-area-inset-top,0px) + 76px);z-index:60;display:flex;gap:12px;align-items:flex-start;width:min(380px,calc(100vw - 32px));box-sizing:border-box;background:var(--card);color:var(--ink);border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:14px;padding:12px 12px 12px 14px;box-shadow:0 18px 44px rgba(23,57,101,.22);font-size:14px;animation:tin .22s ease-out}
#toast[hidden]{display:none}#toast.ok{border-left-color:var(--ok)}#toast.err{border-left-color:var(--bad)}
#toast .tic{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--ok-bg);color:var(--ok)}
#toast.err .tic{background:var(--bad-bg);color:var(--bad)}#toast.info .tic{background:var(--hl);color:var(--navy)}
#toast .tic svg{width:16px;height:16px}
#toast .tbody{flex:1;min-width:0}#toast .tmsg{font-weight:600;line-height:1.35}#toast .tsub{color:var(--muted);font-size:13px;margin-top:2px}
#toast .tacts{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
#toast .tx{all:unset;cursor:pointer;flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:6px;color:var(--muted);font-size:18px}#toast .tx:hover{background:var(--soft)}
#toast.small{padding:9px 10px 9px 12px;width:auto;max-width:min(380px,calc(100vw - 32px))}
@keyframes tin{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){#toast{animation:none}}
@media (max-width:699px){#toast{top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 76px);right:16px}}
.files{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.files img{width:72px;height:72px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.why{padding-left:18px;margin:6px 0}.why li{margin:3px 0}
.login{max-width:400px;margin:12vh auto}
.pw{font-family:var(--f-mono);background:var(--warm);padding:6px 10px;border-radius:8px;display:inline-block}
.scale{display:flex;gap:4px;flex-wrap:wrap}
.scale button{min-width:38px;padding:7px 0;background:transparent;color:var(--ink);border-color:var(--line2);border-radius:10px}
.scale button.on{background:var(--navy);color:#fff}
.dims{display:grid;gap:5px;min-width:0}
.dim{display:grid;grid-template-columns:minmax(110px,1.4fr) 1fr 30px;gap:8px;align-items:center;font-size:12.5px}
.bar{height:8px;background:var(--soft);border-radius:999px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--navy);border-radius:999px}
:root[data-theme="dark"] .bar i{background:var(--sky)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .bar i{background:var(--sky)}}
ul.brief{padding-left:18px;margin:4px 0}ul.brief li{margin:6px 0}
.spark{color:var(--accent)}
.bars rect{fill:var(--accent)}.bars text{font-size:12px;fill:var(--muted)}
ul.items{margin:6px 0;padding-left:18px}ul.items li{margin:4px 0}
.card.sticky{position:sticky;top:0;z-index:2}
ol.guide li{margin:10px 0}

/* ---------- development: stepper ---------- */
.stepper{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:8px 0 4px;counter-reset:s}
.stepper .st{position:relative;text-align:center;font-size:12px;color:var(--muted);padding-top:38px;min-width:0}
.stepper .st::before{content:"";position:absolute;top:15px;left:-50%;width:100%;height:3px;background:var(--line)}
.stepper .st:first-child::before{display:none}
.stepper .st.done::before,.stepper .st.cur::before{background:var(--navy)}
.stepper .dot{position:absolute;top:0;left:50%;transform:translateX(-50%);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--card);border:2px solid var(--line2);font:700 14px/1 var(--f-display);color:var(--muted);z-index:1}
.stepper .st.done .dot{background:var(--navy);border-color:var(--navy);color:#fff}
.stepper .st.cur .dot{border-color:var(--red);color:var(--red);box-shadow:0 0 0 4px color-mix(in srgb,var(--red) 18%,transparent)}
.stepper .st.cur{color:var(--ink);font-weight:600}
.stepper .st b{display:block;font-weight:inherit;line-height:1.3}
@media (max-width:640px){.stepper .st span.lbl{display:none}.stepper .st.cur span.lbl{display:block;position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap}}
:root[data-theme="dark"] .stepper .st.done .dot{background:var(--sky);border-color:var(--sky);color:#0F1724}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .stepper .st.done .dot{background:var(--sky);border-color:var(--sky);color:#0F1724}}

/* ---------- development: board ---------- */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x proximity}
.lane{background:var(--warm);border:1px solid var(--line);border-radius:var(--r);padding:10px;min-height:180px;scroll-snap-align:start;display:flex;flex-direction:column;gap:8px}
.lane h3{margin:2px 4px 4px;display:flex;align-items:center;gap:8px;font-size:14px}
.lane h3 .n{margin-left:auto;font:600 12px/1 var(--f-body);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px 8px;color:var(--muted)}
.lane h3 .num{width:22px;height:22px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:12px;flex:none}
:root[data-theme="dark"] .lane h3 .num{background:var(--sky);color:#0F1724}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .lane h3 .num{background:var(--sky);color:#0F1724}}
.lane .empty{color:var(--muted);font-size:12.5px;padding:10px 6px;text-align:center;border:1px dashed var(--line2);border-radius:12px}
a.pcard{display:block;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;text-decoration:none;color:var(--ink);box-shadow:0 1px 0 rgba(0,0,0,.02)}
a.pcard:hover{border-color:var(--navy)}
.pcard .code{font:600 12px/1 var(--f-mono);color:var(--muted)}
.pcard .nm{font:700 15px/1.3 var(--f-display);margin:5px 0 6px}
.pcard .meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.meter{display:inline-flex;gap:3px}
.meter i{width:9px;height:9px;border-radius:50%;background:var(--line2)}
.meter i.ok{background:var(--ok)}.meter i.bad{background:var(--bad)}
.swatch{width:100%;height:6px;border-radius:999px;margin-bottom:8px;background:linear-gradient(90deg,var(--sky),var(--paper))}

/* ---------- development: idea builder ---------- */
.builder{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
@media (max-width:1080px){.builder{grid-template-columns:minmax(0,1fr)}}
.builder>*{min-width:0}
.cats{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;scrollbar-width:thin}
.cat{flex:none;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:118px;padding:10px 14px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;text-align:left;font-weight:600}
.cat .zh{font-size:12px}
.cat .cnt{font:600 12px/1 var(--f-body);color:var(--muted);margin-top:4px}
.cat:hover{border-color:var(--navy);filter:none}
.cat.on{background:var(--navy);border-color:var(--navy);color:#fff}
.cat.on .zh,.cat.on .cnt{color:#fff;opacity:.85}
.cat .pick{display:inline-block;min-width:18px;padding:0 5px;border-radius:999px;background:var(--sun);color:#173965;font-size:12px;text-align:center;margin-left:4px}
.picker{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.picker .hint{font-size:13px;color:var(--muted);margin:0 0 10px}
.fam{margin:10px 0 2px}
.fam>summary{cursor:pointer;font:600 13px/1.4 var(--f-body);color:var(--muted);padding:4px 0;list-style:none}
.fam>summary::-webkit-details-marker{display:none}
.fam>summary::before{content:"›";display:inline-block;width:14px;transition:transform .15s}
.fam[open]>summary::before{transform:rotate(90deg)}
.pills{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.pill{font:500 14px/1.25 var(--f-body);padding:8px 13px;border-radius:999px;border:1px solid var(--line2);background:var(--card);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.pill .zh{font-size:12.5px}
.pill:hover{border-color:var(--navy);filter:none;background:var(--soft)}
.pill.on{background:var(--navy);border-color:var(--navy);color:#fff}
.pill.on .zh{color:#fff;opacity:.8}
.pill.on::before{content:"✓";font-weight:700;color:var(--sun)}
.pill .sw{width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.15);flex:none}
.tray{position:sticky;top:20px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow)}
.tray h3{margin-top:0}
.tray .sel{display:flex;flex-wrap:wrap;gap:6px;min-height:34px}
.tray .sel .none{color:var(--muted);font-size:13px}
.selchip{display:inline-flex;align-items:center;gap:4px;font-size:13px;padding:5px 6px 5px 11px;border-radius:999px;background:var(--soft);color:var(--ink)}
.selchip button{all:unset;cursor:pointer;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:13px;color:var(--muted)}
.selchip button:hover{background:var(--line)}
.seg{display:inline-flex;gap:4px;padding:3px;border:1px solid var(--line2);border-radius:999px;background:var(--warm)}
.seg button{background:transparent;border:0;color:var(--ink);padding:6px 12px;font-weight:500;font-size:13.5px}
.seg button.on{background:var(--navy);color:#fff}
.seg button:hover{filter:none}
@media (max-width:1080px){.tray{position:static}}

/* result: concept + recipe */
.concept{border-radius:22px;padding:24px;background:linear-gradient(135deg,var(--navy) 0%,#24508a 100%);color:#fff;position:relative;overflow:hidden}
.concept::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:var(--sun);opacity:.16}
.concept .eyebrow{color:var(--sun)}
.concept h2{font-size:30px;margin:6px 0 4px;color:#fff}
.concept p{margin:4px 0;max-width:60ch}
.concept .zh{color:#fff;opacity:.75}
.concept .facts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.concept .facts span{background:rgba(255,255,255,.14);border-radius:999px;padding:5px 12px;font-size:13px}
.concept input.nm{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);color:#fff;font:700 22px/1.2 var(--f-display);margin-top:6px}
.ing{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.ing:last-child{border-bottom:0}
.ing .ic{width:38px;height:38px;border-radius:12px;background:var(--soft);display:grid;place-items:center;font:700 13px/1 var(--f-display);color:var(--accent)}
.ing .nm{font-weight:600}
.ing .sub{font-size:12.5px;color:var(--muted)}
.ing .amt{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.ing .amt small{display:block;font-weight:400;color:var(--muted);font-size:12px}
.ring{display:flex;align-items:center;gap:14px}
.ring svg{width:84px;height:84px;flex:none}
.ring .lbl{font-size:13px;color:var(--muted)}
.ring circle.bg{stroke:var(--line)}.ring circle.fg{stroke:var(--navy)}
.ring text{fill:var(--ink);font:700 22px var(--f-display)}
:root[data-theme="dark"] .ring circle.fg{stroke:var(--sky)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .ring circle.fg{stroke:var(--sky)}}
ul.pros,ul.cons{list-style:none;padding:0;margin:6px 0}
ul.pros li,ul.cons li{padding:6px 0 6px 26px;position:relative;border-bottom:1px dashed var(--line)}
ul.pros li:last-child,ul.cons li:last-child{border-bottom:0}
ul.pros li::before{content:"✓";position:absolute;left:4px;color:var(--ok);font-weight:700}
ul.cons li::before{content:"!";position:absolute;left:7px;color:var(--warn);font-weight:800}
.aibox{border:1px dashed var(--line2);border-radius:14px;padding:12px 14px;background:var(--warm);white-space:pre-wrap;font-size:14px}
.badge-ai{display:inline-block;font:700 12px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;background:var(--hl);color:var(--hl-ink);padding:4px 7px;border-radius:6px;margin-left:6px;vertical-align:middle}
.colorrow{display:flex;align-items:flex-start;gap:12px;padding:8px 0}
.colorrow .sw{width:34px;height:34px;border-radius:50%;flex:none;border:1px solid rgba(0,0,0,.1)}
.verify{display:inline-block;font-size:12px;font-weight:600;color:var(--warn);background:var(--warn-bg);border-radius:6px;padding:1px 6px;margin-left:4px}

/* gate panel */
.check{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line)}
.check:last-child{border-bottom:0}
.check .mk{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;flex:none;font-weight:800;font-size:13px}
.check .mk.ok{background:var(--ok-bg);color:var(--ok)}.check .mk.bad{background:var(--bad-bg);color:var(--bad)}.check .mk.na{background:var(--warm);color:var(--muted);border:1px dashed var(--line2)}
.decide{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
@media (max-width:560px){.decide{grid-template-columns:repeat(2,minmax(0,1fr))}}
.decide button{flex-direction:column;border-radius:14px;padding:12px 8px;gap:2px;background:var(--card);color:var(--ink);border-color:var(--line2)}
.decide button.on{outline:3px solid color-mix(in srgb,var(--sky) 80%,transparent)}
.decide button.go{background:var(--navy);color:#fff;border-color:var(--navy)}
.decide button.drop{color:var(--bad)}
.timeline{list-style:none;padding:0;margin:0}
.timeline li{position:relative;padding:0 0 14px 22px;border-left:2px solid var(--line);margin-left:6px}
.timeline li::before{content:"";position:absolute;left:-7px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--card);border:2px solid var(--navy)}
.timeline li:last-child{border-left-color:transparent}
.empty-state{text-align:center;padding:36px 18px;color:var(--muted)}
.empty-state svg{width:64px;height:64px;color:var(--sky);margin-bottom:6px}
.empty-state h3{color:var(--ink)}
.stat{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 14px}
.stat>div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 14px;min-width:110px}
.stat b{display:block;font:700 22px/1.2 var(--f-display);font-variant-numeric:tabular-nums}
.stat span{font-size:12px;color:var(--muted)}
.filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
:where(svg[aria-hidden]){width:1.25em;height:1.25em;flex:none;vertical-align:-.25em}
.card.hl>svg{width:30px;height:30px;color:var(--navy)}
@media (max-width:980px){
  .page-head .btn.big{padding:10px 16px;font-size:15px}
  .tabs{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none}
  .tabs button{flex:none;white-space:nowrap}
  .tabs .btn{flex:none;white-space:nowrap}
}
@media (max-width:600px){#demobar>span:first-child{display:none}}
.snap{display:grid;grid-template-columns:1.2fr 1fr;gap:10px;margin-bottom:8px}
.snapbtn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:64px;padding:12px 16px;border-radius:16px;border:1.5px dashed var(--line2);background:var(--warm);color:var(--ink);font-weight:600;cursor:pointer;text-align:center;margin:0}
.snapbtn svg{width:24px;height:24px}
.snapbtn.main{background:var(--navy);border:0;color:#fff;font-size:17px}
.snapbtn:hover{filter:brightness(1.04)}
.shots{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.shot{position:relative;width:96px;height:96px;border-radius:12px;overflow:hidden;background:var(--soft);display:grid;place-items:center}
.shot img{width:100%;height:100%;object-fit:cover}
.shot .st{position:absolute;left:0;right:0;bottom:0;padding:3px 6px;background:rgba(23,57,101,.82);color:#fff;font-size:12px;text-align:center}
.shot .st .zh{color:#fff;opacity:.85}
@media (max-width:600px){.snap{grid-template-columns:1fr}}
.snapbtn.main .zh{color:#fff;opacity:.85}
@media (max-width:600px){.tabs[role=tablist]{display:grid;grid-template-columns:1fr 1fr;width:100%;border-radius:16px}.tabs[role=tablist] button{white-space:normal;border-radius:12px}}

/* ================= Brand Visual layer: 干净、简洁、有品质 ================= */
body{background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35  0 0 0 0 .28  0 0 0 0 .16  0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:220px}
body.authed main{position:relative}
body.authed main::before{content:"";position:absolute;top:0;right:0;width:180px;height:190px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 420'%3E%3Cdefs%3E%3Cfilter id='s' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeDropShadow dx='-6' dy='10' stdDeviation='9' flood-color='%233a2a10' flood-opacity='.22'/%3E%3C/filter%3E%3ClinearGradient id='r' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23d4442f'/%3E%3Cstop offset='1' stop-color='%23a92a21'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%231d4475'/%3E%3Cstop offset='1' stop-color='%23132f55'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg filter='url(%23s)'%3E%3Cpath d='M420 150 C370 230 330 330 300 430 L430 430 Z' fill='%23BBD4E9'/%3E%3Cpath d='M396 -10 C380 170 320 320 200 440 L250 440 C352 330 412 180 422 -10 Z' fill='url(%23b)'/%3E%3Cpath d='M178 -10 C262 52 318 150 246 318 C292 160 236 70 152 -10 Z' fill='url(%23r)'/%3E%3C/g%3E%3C/svg%3E") no-repeat right top/contain;pointer-events:none;z-index:0;opacity:.95}
main>*{position:relative;z-index:1}
@media (max-width:980px){body.authed main::before{width:96px;height:104px;opacity:.9}}
main>.page-head:first-child{padding-right:150px}
@media (max-width:980px){main>.page-head:first-child{padding-right:64px}}
.concept label{color:var(--muted)}
.concept .facts,.concept p{position:relative;z-index:1}
a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}
h1{font:400 36px/1.12 var(--f-display);letter-spacing:-.005em;color:var(--navy);margin:6px 0 8px}
h1 .zh{font:400 15px/1.4 var(--f-body);letter-spacing:.14em;color:var(--muted);display:inline-block;margin-left:8px;vertical-align:.35em}
h2{font:400 23px/1.25 var(--f-display);color:var(--navy);margin:34px 0 12px}
h2 .zh,h3 .zh{font-family:var(--f-body);letter-spacing:.06em}
h3{font:600 15px/1.35 var(--f-body);margin:14px 0 6px;color:var(--ink)}
.card h3,.tray h3,.picker h3{font:400 18px/1.3 var(--f-display);color:var(--navy)}
:root[data-theme="dark"] h1,:root[data-theme="dark"] h2,:root[data-theme="dark"] .card h3{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) h1,:root:not([data-theme="light"]) h2,:root:not([data-theme="light"]) .card h3{color:var(--ink)}}
.eyebrow{font-size:12px;letter-spacing:.24em;font-weight:600;color:var(--muted)}
.eyebrow .zh{letter-spacing:.12em}
.lead{font-size:15px;line-height:1.7;max-width:62ch}
.lead .zh{display:block;margin-top:2px;letter-spacing:.04em}
@media (max-width:640px){h1{font-size:30px}h1 .zh{display:block;margin:4px 0 0}}
.card{background:var(--card);border-color:var(--line);border-radius:var(--r);padding:20px}
.card.hl,a.card.hl{background:var(--card);border:1px solid var(--line);box-shadow:inset 3px 0 0 var(--sun)}
.card.hl .zh{color:var(--muted)}
button,.btn{font-weight:500;letter-spacing:.01em;padding:10px 18px}
button.red,.btn.red{box-shadow:0 6px 16px color-mix(in srgb,var(--red) 22%,transparent)}
button.big,.btn.big{padding:13px 24px;font-family:var(--f-body);font-weight:500;font-size:16px;line-height:1.2}
input,select,textarea{background:var(--card);border-color:var(--line2);border-radius:10px}
.tabs{background:transparent;border-color:var(--line2)}
.tabs button,.tabs .btn{color:var(--muted)}
.tabs button.on,.tabs .btn.on{color:#fff}
.tag{background:transparent;border-color:var(--line2)}
.stat>div{background:var(--card)}
.stat b{font:400 28px/1.15 var(--f-display);color:var(--navy)}
:root[data-theme="dark"] .stat b{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .stat b{color:var(--ink)}}
/* board */
.lane{background:transparent;border:0;border-top:1px solid var(--line2);border-radius:0;padding:12px 2px}
.lane h3{font:400 16px/1.3 var(--f-display);color:var(--navy)}
.lane h3 .zh{font-size:12px}
.lane h3 .num{background:transparent;border:1px solid var(--navy);color:var(--navy);font:400 12px/1 var(--f-display)}
a.pcard{border-radius:14px;padding:14px;box-shadow:0 1px 1px rgba(70,52,20,.04)}
a.pcard:hover{border-color:var(--line2);box-shadow:var(--shadow)}
.pcard .nm{font:400 17px/1.25 var(--f-display);color:var(--navy)}
/* stepper */
.stepper .dot{font:400 15px/1 var(--f-display)}
.stepper .st::before{height:1px;top:16px}
/* builder */
.cat{border-radius:12px;background:var(--card)}
.cat>span:first-child{font:400 16px/1.2 var(--f-display)}
.cat.on{background:var(--navy)}
.picker{padding:20px}
.pill{background:var(--card);border-color:var(--line2);font-weight:400}
.pill.on::before{color:var(--sky)}
.tray{border-radius:var(--r)}
.selchip{background:var(--warm);border:1px solid var(--line)}
.seg{background:transparent}
/* concept: paper card with ribbon, serif name */
.concept{background:var(--card);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow)}
.concept::after{right:-10px;top:-20px;width:150px;height:170px;border-radius:0;opacity:1;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 420'%3E%3Cdefs%3E%3Cfilter id='s' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeDropShadow dx='-6' dy='10' stdDeviation='9' flood-color='%233a2a10' flood-opacity='.22'/%3E%3C/filter%3E%3ClinearGradient id='r' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%23d4442f'/%3E%3Cstop offset='1' stop-color='%23a92a21'/%3E%3C/linearGradient%3E%3ClinearGradient id='b' x1='0' x2='1'%3E%3Cstop offset='0' stop-color='%231d4475'/%3E%3Cstop offset='1' stop-color='%23132f55'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg filter='url(%23s)'%3E%3Cpath d='M420 150 C370 230 330 330 300 430 L430 430 Z' fill='%23BBD4E9'/%3E%3Cpath d='M396 -10 C380 170 320 320 200 440 L250 440 C352 330 412 180 422 -10 Z' fill='url(%23b)'/%3E%3Cpath d='M178 -10 C262 52 318 150 246 318 C292 160 236 70 152 -10 Z' fill='url(%23r)'/%3E%3C/g%3E%3C/svg%3E") no-repeat right top/contain}
.concept .eyebrow{color:var(--red)}
.concept h2,.concept input.nm{color:var(--navy)}
.concept .zh{color:var(--muted);opacity:1}
.concept input.nm{background:transparent;border:0;border-bottom:1px solid var(--line2);border-radius:0;padding:6px 0;font:400 30px/1.2 var(--f-display);max-width:calc(100% - 110px)}
.concept input.nm:focus{box-shadow:none;border-bottom-color:var(--navy)}
.concept .facts span{background:transparent;border:1px solid var(--line2);color:var(--ink)}
:root[data-theme="dark"] .concept h2,:root[data-theme="dark"] .concept input.nm{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .concept h2,:root:not([data-theme="light"]) .concept input.nm{color:var(--ink)}}
.ing .ic{background:var(--warm);border:1px solid var(--line);font-family:var(--f-display);font-weight:400}
.ring text{font:400 24px var(--f-display)}
.snapbtn.main{box-shadow:0 8px 20px color-mix(in srgb,var(--navy) 22%,transparent)}
.decide button{border-radius:12px}
.empty-state svg{color:var(--line2)}
/* cost fit 成本约束 */
.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.roles button{flex-direction:column;align-items:flex-start;gap:1px;background:var(--card);color:var(--ink);border:1px solid var(--line2);border-radius:12px;padding:8px 10px;text-align:left}
.roles button b{font:400 15px/1.2 var(--f-display);color:var(--navy)}
.roles button small{font-size:12px;color:var(--muted)}
.roles button.on{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy);background:var(--warm)}
.roles button:hover{filter:none;border-color:var(--navy)}
.card.fit{margin-top:14px}
.fithead{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin-bottom:10px}
.fithead h3{margin:0}
.vcols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vcols.one{grid-template-columns:minmax(0,1fr)}
@media (max-width:640px){.vcols{grid-template-columns:minmax(0,1fr)}}
.vcol{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--warm)}
.vcol.cur{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.vnum{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:6px 0 8px}
.vnum b{font:400 30px/1.1 var(--f-display);color:var(--navy)}
.vnum span{font-size:12.5px;color:var(--muted)}
.fitbar{position:relative;height:8px;border-radius:999px;background:var(--line);margin:4px 0 8px}
.fitbar i{display:block;height:100%;border-radius:999px}
.fitbar i.ok{background:var(--ok)}.fitbar i.bad{background:var(--bad)}
.fitbar .capmk{position:absolute;top:-4px;width:2px;height:16px;background:var(--navy)}
.match{margin-top:8px;font-size:13px;color:var(--muted)}
.match b{font:400 22px/1 var(--f-display);color:var(--navy);margin-right:4px}
.chg{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 12px;align-items:start;padding:10px 0;border-bottom:1px dashed var(--line)}
.chg:last-of-type{border-bottom:0}
.chg .fl{font-size:13px;color:var(--ink);margin-top:3px}
.chg .cs{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ok);white-space:nowrap}
@media (max-width:520px){.chg{grid-template-columns:minmax(0,1fr) auto}.chg .ck{grid-column:1/-1}}
.warnline{background:var(--bad-bg);color:var(--bad);border-radius:10px;padding:8px 12px;font-size:13.5px}
:root[data-theme="dark"] .vnum b,:root[data-theme="dark"] .match b,:root[data-theme="dark"] .roles button b{color:var(--ink)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .vnum b,:root:not([data-theme="light"]) .match b,:root:not([data-theme="light"]) .roles button b{color:var(--ink)}}
@media (max-width:640px){.concept input.nm{max-width:100%;font-size:26px}.concept::after{width:90px;height:100px}.concept .eyebrow{padding-right:70px}}

/* ---------- Sensory lab 感官评价 (2026-10-26) ---------- */
a.scard{flex:1 1 260px;text-decoration:none;color:inherit;margin:0}
a.scard h3{margin:4px 0 6px}
.goals{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.goal{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;background:var(--card);color:var(--ink);border:1px solid var(--line2);border-radius:var(--r-s);padding:14px;font-weight:400;line-height:1.35}
.goal b{font-weight:600}.goal.on{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy);background:var(--soft)}
.goal:hover{filter:none;background:var(--soft)}
.srow{display:grid;grid-template-columns:28px minmax(0,2fr) minmax(0,1fr) minmax(0,.8fr) auto auto;gap:8px;align-items:center;margin:8px 0}
.srow input{margin:0}.srow .check{margin:0;white-space:nowrap;font-size:13px}
.skey{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--warm);border:1px solid var(--line2);font:600 13px/1 var(--f-display);color:var(--navy)}
button.sm{padding:4px 10px}
@media (max-width:640px){.srow{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr)}.srow>input:first-of-type{grid-column:2/4}.srow .check{grid-column:2/4}}
.code{font-family:var(--f-mono);letter-spacing:.08em}
table.serve td.code{font-size:17px;font-weight:600;color:var(--navy)}
.tag.code{font-family:var(--f-mono)}
.seats{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:10px}
.seat{display:grid;place-items:center;height:64px;border-radius:var(--r-s);background:var(--card);border:1px solid var(--line2);font:400 26px/1 var(--f-display);color:var(--navy);text-decoration:none}
.seat:hover{border-color:var(--navy)}
.ballot-head{text-align:center;margin:4px 0 14px}
.cupcode{font:400 54px/1.1 var(--f-display);letter-spacing:.12em;color:var(--navy);margin:6px 0 0}
.secsteps{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:10px}
.secsteps span{font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.secsteps span.done{background:var(--soft);color:var(--navy);border-color:transparent}
.secsteps span.cur{background:var(--navy);color:#fff;border-color:var(--navy)}.secsteps span.cur .zh{color:inherit;opacity:.8}
.q{padding:14px 0;border-top:1px solid var(--line)}.q:first-of-type{border-top:0}
.q>label{font-weight:600;font-size:15px;color:var(--ink);margin:0 0 8px}
p.sm{font-size:13px;margin:-4px 0 8px}
.words{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}
.words.sm{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}
.word{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:var(--card);color:var(--ink);border:1px solid var(--line2);border-radius:var(--r-s);padding:10px 12px;font-weight:400;line-height:1.25;min-height:54px;justify-content:center}
.word b{font-weight:600;font-size:14px}.word span{font-size:13px;color:var(--muted)}
.word small{font-size:12px;color:var(--muted);margin-top:2px}
.word:hover{filter:none;border-color:var(--navy)}
.word.on,.word.note.lv0,.word.note.lv1,.word.note.lv2{background:var(--navy);border-color:var(--navy);color:#fff}
.word.on span,.word.on small,.word.note.lv0 span,.word.note.lv1 span,.word.note.lv2 span,.word.note small{color:#fff;opacity:.85}
.word.note.lv0{background:color-mix(in srgb,var(--navy) 45%,var(--card));border-color:color-mix(in srgb,var(--navy) 45%,var(--card))}
.word.note.lv1{background:color-mix(in srgb,var(--navy) 72%,var(--card))}
.hues{grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}
.hue{display:flex;align-items:center;gap:8px;background:var(--card);color:var(--ink);border:1px solid var(--line2);border-radius:var(--r-s);padding:8px 10px;font-weight:400;font-size:13px;justify-content:flex-start;line-height:1.2}
.hue i{width:22px;height:22px;border-radius:50%;flex:none;border:1px solid rgba(0,0,0,.12)}
.hue.on{border-color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy)}.hue:hover{filter:none}
details.fam{border:1px solid var(--line);border-radius:var(--r-s);padding:8px 12px;margin:6px 0;background:var(--warm)}
details.fam summary{cursor:pointer;font-weight:600;font-size:14px}
details.fam .words{margin-top:8px}
.tag.on{background:var(--navy);color:#fff;border-color:var(--navy)}.tag.on .zh{color:inherit}
.tri{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:6px 0 18px}
.tricup{height:110px;border-radius:var(--r);background:var(--card);color:var(--navy);border:1px solid var(--line2);font:400 30px/1 var(--f-display);letter-spacing:.1em}
.tricup.on{background:var(--navy);color:#fff;border-color:var(--navy)}.tricup:hover{filter:none;border-color:var(--navy)}
/* 风味轮廓点图 */
.profile h3{margin:20px 0 4px;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-family:var(--f-body)}
.profile h3 .zh{letter-spacing:.08em}
.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend .mk{position:static;transform:none}
.legend .zone{position:static;display:inline-block;width:22px;height:10px}
.dp{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,2fr) minmax(0,.9fr);gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--line)}
.dl{font-size:14px;line-height:1.35}.dl .muted{font-size:12px}
.dt{position:relative;height:22px;border-radius:999px;background:linear-gradient(90deg,var(--warm),var(--soft))}
.dt::before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--line2)}
.mk{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);border:2px solid var(--card);box-shadow:0 0 0 1px rgba(0,0,0,.12);display:inline-block}
.mk.m0{background:var(--navy)}.mk.m1{background:#6E9BC7}.mk.m2{background:var(--red)}.mk.m3{background:#C9A227}.mk.m4{background:#5E8C61}.mk.m5{background:#8E6BB5}
.zone{position:absolute;top:2px;bottom:2px;border-radius:999px;background:color-mix(in srgb,var(--ok) 22%,transparent);border:1px solid color-mix(in srgb,var(--ok) 45%,transparent)}
.df{display:flex;flex-wrap:wrap;gap:2px}
.scaleax{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin:6px 0 0;padding-left:calc((100% - 24px) * 1.3 / 4.2 + 12px);padding-right:calc((100% - 24px) * .9 / 4.2 + 12px)}
@media (max-width:640px){.dp{grid-template-columns:minmax(0,1fr);gap:6px}.scaleax{padding:0}}
.kpis.fitk{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.jarrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:4px 12px;align-items:center;margin:8px 0}
.jarrow>.muted{grid-column:1/3;font-size:12px}
.jarbar{display:flex;height:12px;border-radius:999px;overflow:hidden;background:var(--warm)}
.jarbar i{display:block;height:100%}.jarbar .lo{background:#6E9BC7}.jarbar .ok{background:var(--ok)}.jarbar .hi{background:var(--bad)}
.dt{height:28px}.dt .mk.m0{top:28%}.dt .mk.m1{top:50%}.dt .mk.m2{top:72%}.dt .mk.m3{top:39%}.dt .mk.m4{top:61%}.dt .mk.m5{top:50%}
.dt .mk{width:12px;height:12px}

/* ---------- 新想法：点单式布局（Freya 10-26，参照亚马逊/点单应用）----------
   宽屏三栏：分类 | 标签 | 已选＋结果；中等宽度两栏：分类横排在标签上方 | 已选＋结果；窄屏单栏＋底部“已选”栏和抽屉 */
body.wide main{max-width:none}
.bhead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:12px}
.bhead h1{margin:0}
.bhead .tabs{margin:0}
.shop{display:grid;gap:14px;grid-template-columns:168px minmax(0,1fr) minmax(340px,44%);grid-template-areas:"cats items cart";height:calc(100dvh - 150px);min-height:480px}
.scats{grid-area:cats}.sitems{grid-area:items}.scart{grid-area:cart}
.shop.reverse{grid-template-columns:minmax(0,1fr) minmax(340px,48%);grid-template-areas:"items cart"}
.shop.reverse .scats{display:none}
.shop>*{min-width:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.scats{display:flex;flex-direction:column;gap:4px;background:var(--rail);border-radius:var(--r);padding:8px}
.scat{all:unset;box-sizing:border-box;position:relative;display:flex;flex-direction:column;gap:1px;padding:11px 12px;border-radius:12px;cursor:pointer;color:var(--ink)}
.scat .en{font:600 14px/1.2 var(--f-body)}
.scat .zh{font-size:12px;color:var(--muted)}
.scat:hover{background:var(--card)}
.scat.on{background:var(--card);box-shadow:inset 3px 0 0 var(--red),var(--shadow)}
.scat.on .en{color:var(--navy)}
.scat .pick{position:absolute;top:9px;right:9px;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--red);color:#fff;font:700 12px/20px var(--f-body);text-align:center;box-sizing:border-box}
.scat:focus-visible{outline:2px solid var(--navy)}
.sitems{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:0 16px 16px}
.ssearch{position:sticky;top:0;z-index:2;background:var(--card);padding:14px 0 10px;border-bottom:1px solid var(--line);margin-bottom:6px}
.ssearch input{font-size:15px}
.ssearch .hint{margin:8px 0 0;font-size:13px;color:var(--muted)}
.ssearch .hint b{color:var(--ink)}
.fjump{display:flex;gap:6px;overflow-x:auto;margin-top:8px;padding-bottom:2px;scrollbar-width:none}
.fjump button{flex:none;all:unset;cursor:pointer;font-size:12.5px;padding:4px 10px;border-radius:999px;background:var(--warm);border:1px solid var(--line);color:var(--ink);white-space:nowrap}
.fjump button:hover{border-color:var(--navy)}
.sfam{padding:10px 0 4px}
.sfam h4{margin:0 0 8px;font:600 13px/1.3 var(--f-body);color:var(--muted)}
.sfam h4 span{font-weight:400;opacity:.8;margin-left:4px}
.sitems .pill.on{background:var(--navy);border-color:var(--navy);color:#fff}
.sitems .pill.on .zh{color:#fff;opacity:.85}
.sitems .pill.on::before{content:"✓ "}
.scart{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:0 16px 16px}
.scart #tray{display:contents}
.picks{position:sticky;top:0;z-index:3;background:var(--card);padding:14px 0 10px;box-shadow:0 8px 10px -10px rgba(0,0,0,.18)}
.picks .sel{max-height:28vh;overflow-y:auto}
.carthead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 0 8px}
.carthead h3{margin:0}
.carthead .cnt{display:inline-block;min-width:22px;padding:0 7px;border-radius:999px;background:var(--red);color:#fff;font:700 12px/22px var(--f-body);text-align:center;vertical-align:2px;margin-left:4px}
.cact{display:flex;align-items:center;gap:12px}
button.sm{padding:6px 12px;font-size:13px;min-height:0}
button.link{all:unset;cursor:pointer;font-size:13px;color:var(--slate);text-decoration:underline}
.scart .sel{display:flex;flex-direction:column;gap:8px;min-height:40px;padding:10px;border-radius:12px;background:var(--warm);border:1px dashed var(--line2)}
.scart .sel .none{color:var(--muted);font-size:13px}
.selg{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.selk{font-size:12px;color:var(--muted);min-width:32px}
.sel.bump{animation:bump .35s ease}
@keyframes bump{40%{background:var(--hl)}}
details.sets{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:0 12px}
details.sets>summary{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;padding:11px 0;cursor:pointer;font-weight:600;list-style:none}
details.sets>summary::-webkit-details-marker{display:none}
details.sets>summary .sum{font-weight:400;color:var(--muted);font-size:13px}
details.sets[open]{padding-bottom:12px}
.scart #res>h2:first-child{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.scart #res .grid.two{grid-template-columns:minmax(0,1fr)}
.scart #res .concept{padding:20px}
.cartbar{display:none}
/* 中等宽度（含 claude.ai 侧边预览）：两栏，分类横排在标签上方 */
@media (max-width:1279px){
  .shop{grid-template-columns:minmax(0,1fr) minmax(300px,46%);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"cats cart" "items cart"}
  .scats{flex-direction:row;overflow-x:auto;overflow-y:hidden;padding:6px;scrollbar-width:none}
  .scat{flex:none;padding:8px 12px}
  .scat.on{box-shadow:inset 0 -3px 0 var(--red),var(--shadow)}
  .scat .pick{position:static;align-self:flex-start;margin-top:2px}
}
/* 窄屏：单栏，底部固定“已选”栏，点开抽屉看已选 */
@media (max-width:699px){
  .shop,.shop.reverse{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"cats" "items" "cart";height:auto;min-height:0}
  .shop>*{overflow:visible}
  .scats{position:sticky;top:calc(env(safe-area-inset-top,0px) + 60px);z-index:5;overflow-x:auto}
  .ssearch{position:static}
  .picks{position:static;box-shadow:none}
  .scart{scroll-margin-top:70px}
  .cartbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;gap:10px;align-items:center;padding:10px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:var(--card);border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(0,0,0,.08)}
  .cb-sum{all:unset;flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
  .cb-n{flex:none;min-width:26px;height:26px;border-radius:999px;background:var(--red);color:#fff;font:700 13px/26px var(--f-body);text-align:center}
  body.wide main{padding-bottom:90px}
}
.carthead h3{white-space:nowrap}
.carthead .link{white-space:nowrap}

/* ---------- 列表页（亚马逊式）---------- */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:var(--muted);margin-bottom:6px}
.crumbs a{color:var(--slate);text-decoration:none}
.crumbs a:hover{text-decoration:underline}
.crumbs .cs{opacity:.6}
.lhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.lhead h1{margin:0}
.lpage{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}
.lpage>*{min-width:0}
.lfacets{position:sticky;top:120px;display:flex;flex-direction:column;gap:16px}
.lfacets input[type=search]{font-size:14px}
.fgrp h4{margin:0 0 6px;font:700 13px/1.3 var(--f-body);color:var(--ink)}
.fopt{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13.5px;cursor:pointer;margin:0}
.fopt input{width:16px;height:16px;margin:0;accent-color:var(--navy);flex:none}
.fopt span{flex:1;min-width:0}
.fopt em{font-style:normal;color:var(--muted);font-size:12px}
.lbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:12px}
.lcount{font-size:14px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.achips{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}
.achip{all:unset;cursor:pointer;font-size:12.5px;padding:3px 10px;border-radius:999px;background:var(--soft);color:var(--navy)}
.achip:hover{background:var(--line)}
.lsort{display:flex;align-items:center;gap:6px;font-size:13px;margin:0;font-weight:400}
.lsort select{width:auto;padding:6px 10px;font-size:13px}
.lrows{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.lrow{display:flex;align-items:center;gap:14px;padding:14px 16px;border-top:1px solid var(--line)}
.lrow:first-child{border-top:0}
.lrow:hover{background:var(--warm)}
.lthumb{flex:none;width:52px;height:52px;border-radius:10px;background:var(--soft);display:grid;place-items:center;color:var(--navy);font:600 14px/1 var(--f-body);overflow:hidden}
.lthumb svg{width:24px;height:24px}
.lthumb.cupthumb{background:var(--soft);align-items:end}.lthumb.cupthumb svg{width:40px;height:50px}
.lthumb .sw{width:100%;height:100%;border-radius:0}
.lbody{flex:1;min-width:0}
.ltitle{font:600 15.5px/1.35 var(--f-body);color:var(--navy);text-decoration:none}
.ltitle:hover{text-decoration:underline;color:var(--red)}
.lmeta{font-size:13px;color:var(--muted);margin-top:3px}
.lmeta .tag{vertical-align:1px}
.lact{flex:none;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 10px;align-items:center;max-width:250px}
button.add,.btn.add{background:var(--sun);color:var(--navy);border:1px solid color-mix(in srgb,var(--sun) 70%,#000);font-weight:600}
button.add:hover,.btn.add:hover{filter:brightness(.96)}
@media (max-width:900px){.lpage{grid-template-columns:minmax(0,1fr)}.lfacets{position:static;flex-direction:row;flex-wrap:wrap;gap:12px}.fgrp{min-width:150px}.lrow{flex-wrap:wrap}.lact{width:100%;justify-content:flex-end}}
body.wide main::before{display:none}
/* 部门树 + 标签卡片 */
.scats .dtitle{font:700 12px/1 var(--f-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:8px 12px 6px}
.scats .dtitle .zh{text-transform:none}
.sfams{display:flex;flex-direction:column;gap:1px;margin:2px 0 8px 10px;padding-left:8px;border-left:2px solid var(--line2)}
.sfm{all:unset;box-sizing:border-box;cursor:pointer;display:flex;justify-content:space-between;gap:6px;padding:6px 8px;border-radius:8px;font-size:13px;color:var(--ink)}
.sfm .zh{font-size:12px}
.sfm em{font-style:normal;font-size:12px;color:var(--muted);white-space:nowrap}
.sfm em b{color:var(--red)}
.sfm:hover{background:var(--card)}
.sfm.on{background:var(--card);font-weight:700;color:var(--navy);box-shadow:inset 2px 0 0 var(--red)}
.sbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}
.sbar .crumbs{margin:0;color:var(--ink);font-weight:600}
.sright{display:flex;align-items:center;gap:10px;font-size:13px}
.sright select{width:auto;padding:5px 8px;font-size:13px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;padding-top:6px}
.tile{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card);transition:border-color .15s,box-shadow .15s}
.tile:hover{border-color:var(--line2);box-shadow:var(--shadow)}
.tile.on{border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.tthumb{width:36px;height:36px;border-radius:8px;background:var(--soft);display:grid;place-items:center;font:600 12px/1 var(--f-body);color:var(--navy);overflow:hidden}
.tthumb .sw{width:100%;height:100%;border-radius:0;margin:0}
.tname{flex:1;font:600 14px/1.3 var(--f-body);color:var(--ink)}
.tname .zh{display:block;font-weight:400;font-size:12.5px;color:var(--muted);margin-top:2px}
.tname .tmeta{display:block;font-weight:400;font-size:12px;color:var(--slate);margin-top:4px}
.tile button{width:100%;padding:7px 10px;font-size:13px;min-height:0}
@media (max-width:1279px){
  .scats{flex-wrap:wrap}
  .scats .dtitle{display:none}
  .sfams{order:99;flex-basis:100%;flex-direction:row;flex-wrap:wrap;margin:4px 0 0;padding:6px 0 0;border-left:0;border-top:1px solid var(--line2);gap:4px}
  .sfm{padding:5px 10px;border-radius:999px;background:var(--card);border:1px solid var(--line)}
  .sfm.on{background:var(--navy);color:#fff;box-shadow:none}
  .sfm.on .zh,.sfm.on em{color:#fff}
  .scats{overflow:visible}
  .tiles{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
}
.gsearch select{all:revert;flex:none;border:0;border-right:1px solid var(--line);border-radius:0;background:var(--warm);padding:0 8px;font:13px var(--f-body);color:var(--ink);width:auto;max-width:120px;cursor:pointer}
nav#nav>a,nav#nav>details>summary{padding:6px 7px;font-size:13.5px}
nav#nav .zh{font-size:12px}
@media (min-width:1025px){nav#nav{padding-left:max(14px,env(safe-area-inset-left,0px));padding-right:max(14px,env(safe-area-inset-right,0px))}}
/* 标签卡片：紧凑横排，按钮小 */
.tiles{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.tile{flex-direction:row;align-items:center;gap:10px;padding:10px}
.tthumb{flex:none}
.tname{min-width:0}
.tile button{width:auto;flex:none;padding:5px 12px;font-size:12.5px;border-radius:999px}
.tile button.add{background:var(--card);color:var(--navy);border:1.5px solid var(--navy)}
.tile button.add:hover{background:var(--navy);color:#fff}
.tile button.ghost{background:var(--navy);color:#fff;border:1.5px solid var(--navy)}
.tile button .zh{color:inherit;opacity:.85}
@media (max-width:1279px){.tiles{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}

body.authed main::before{display:none}
main>.page-head:first-child{padding-right:0}
.lprice{flex:none;display:flex;flex-direction:column;align-items:flex-end;min-width:70px}
.lprice b{font:700 18px/1.1 var(--f-body);color:var(--ink)}
.lprice span{font-size:12px;color:var(--muted)}
/* 抽屉 */
.dwrap{position:fixed;inset:0;z-index:50}
.dshade{position:absolute;inset:0;background:rgba(20,25,35,.35);animation:fadein .15s}
.drawer{position:absolute;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--card);box-shadow:-12px 0 32px rgba(0,0,0,.18);display:flex;flex-direction:column;animation:slidein .2s ease}
.dhead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 20px;padding-top:calc(16px + env(safe-area-inset-top,0px));border-bottom:1px solid var(--line)}
.dhead h3{margin:0;font:400 19px/1.3 var(--f-display);color:var(--navy)}
.dbody{flex:1;overflow-y:auto;padding:16px 20px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
.dbody h4{margin:16px 0 6px;font:700 13px/1.3 var(--f-body)}
@keyframes slidein{from{transform:translateX(30px);opacity:0}}
@keyframes fadein{from{opacity:0}}
.hhelp{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--slate);text-decoration:none;padding:6px 8px;border-radius:8px;flex:none}
.hhelp svg{width:17px;height:17px}
.hhelp:hover,.hhelp.on{background:var(--warm)}
@media (max-width:900px){.hhelp span{display:none}}
/* 产品详情页：右侧固定决定框 */
.pd{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
.pdmain{min-width:0}
.pdside{position:sticky;top:120px}
.pdbox{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);box-shadow:var(--shadow);padding:18px}
.pdbox h3{font:400 19px/1.3 var(--f-display);color:var(--navy);margin:0 0 8px}
details.gchk{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0;margin:8px 0 12px}
details.gchk>summary{cursor:pointer;font-size:14px}
.pdbox .decide{grid-template-columns:1fr 1fr}
@media (max-width:1100px){.pd{grid-template-columns:minmax(0,1fr)}.pdside{position:static;order:-1}}
/* 关口检查的圆标不受感官图点位样式影响 */
.check .mk{position:static;transform:none;top:auto;width:24px;height:24px;border:0;box-shadow:none}
.check .mk.na{border:1px dashed var(--line2)}
/* 分页标签：亚马逊式下划线，不再是胶囊 */
.tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:0;padding:0;background:transparent;border:0;border-bottom:1px solid var(--line2);border-radius:0;margin:10px 0 16px;scrollbar-width:none}
.tabs button,.tabs .btn{flex:none;white-space:nowrap;background:transparent!important;color:var(--muted);border:0;border-radius:0;padding:10px 14px;font-size:14px;font-weight:500;box-shadow:none}
.tabs button.on,.tabs .btn.on{color:var(--navy)!important;font-weight:700;box-shadow:inset 0 -3px 0 var(--red)}
.tabs button:hover,.tabs .btn:hover{color:var(--ink);background:transparent}
.tabs .zh{color:inherit;opacity:.8}
.bhead .tabs{border-bottom:0}
.stat{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.stat>div{min-width:0}
details.more{margin:22px 0;border:1px solid var(--line);border-radius:12px;background:var(--card);padding:0 16px}
details.more>summary{cursor:pointer;padding:14px 0;font-weight:600;color:var(--navy)}
details.more[open]{padding-bottom:16px}
.stat{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.stat b{font-size:24px}
.shop{height:calc(100dvh - 240px);min-height:460px}
.shop,.scart,#res{scroll-margin-top:130px}
@media (max-width:900px){.shop,.scart,#res{scroll-margin-top:120px}}
@media (max-width:699px){
  .scats{position:static}
  .scat{padding:6px 10px}
  .scat .zh{display:none}
  .scat .pick{display:inline-block;margin:0 0 0 4px}
  .scat{flex-direction:row;align-items:center}
  .sfams{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .sfm{flex:none}
}
@media (max-width:699px){.scat .zh{display:inline;margin-left:3px;font-size:12px}}
/* 三栏各自滚动：滚动条一直可见（Mac 默认会隐藏，Freya 10-26 看不到） */
.shop>*{scrollbar-width:auto;scrollbar-color:auto}
.shop>*::-webkit-scrollbar{width:10px;height:10px}
.shop>*::-webkit-scrollbar-track{background:transparent}
.shop>*::-webkit-scrollbar-thumb{background:var(--line2);border-radius:999px;border:2px solid var(--card)}
.shop>*::-webkit-scrollbar-thumb:hover{background:var(--slate)}
.scats::-webkit-scrollbar-thumb{border-color:var(--rail)}

/* 想法库汇总表 */
.isum{padding:0;margin:0 0 16px;overflow-x:auto}
.isum table{width:100%;border-collapse:collapse}
.isum th,.isum td{padding:8px 12px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.isum .num{text-align:right;font-variant-numeric:tabular-nums}
.isum tr:last-child td{border-bottom:0}

/* 小图标 */
.tthumb svg{width:20px;height:20px;color:var(--navy)}
.tile.on .tthumb{background:var(--sky)}
.scat .sic{display:grid;place-items:center;width:22px;height:22px;margin-bottom:3px;color:var(--navy)}
.scat .sic svg{width:20px;height:20px}

/* 分类悬停弹出层（亚马逊式） */
.shop{position:relative}
.fly{position:absolute;z-index:30;width:min(560px,calc(100% - 200px));max-height:100%;overflow-y:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 18px 48px rgba(23,57,101,.18);padding:14px 16px}
.flyh{font:600 15px/1.3 var(--f-body);color:var(--navy);margin-bottom:10px}
.flyg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.flyg button{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:8px 10px;border-radius:10px;font-size:14px;color:var(--ink)}
.flyg button:hover,.flyg button:focus-visible{background:var(--hl)}
.flyg em{font-style:normal;font-size:12px;color:var(--muted)}.flyg em b{color:var(--navy)}
.flyx{grid-column:1/-1;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scat.hov:not(.on){background:var(--card)}

/* 想法库：四个维度的统计卡（点一行就筛选） */
.dims{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
@media (max-width:1100px){.dims{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.dims{grid-template-columns:1fr}}
.dcard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 12px 8px;min-width:0}
.dcard h4{margin:0 0 6px;font:600 13px/1.3 var(--f-body);color:var(--navy)}
.drow{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'l n' 'b b';gap:3px 8px;align-items:center;width:100%;padding:5px 6px;border-radius:8px;font-size:12.5px;color:var(--ink)}
.drow:hover{background:var(--hl)}
.drow.on{background:var(--hl);box-shadow:inset 2px 0 0 var(--navy);font-weight:600}
.drow.zero{color:var(--muted)}
.drow .dl{grid-area:l;min-width:0}.drow .dbar{grid-area:b}.drow b{grid-area:n}
.dbar{height:6px;border-radius:99px;background:var(--soft);overflow:hidden}.dbar i{display:block;height:100%;background:var(--navy);border-radius:99px}
.drow b{font-variant-numeric:tabular-nums;min-width:1.5em;text-align:right}
.tline{list-style:none;margin:10px 0;padding:0 0 0 14px;border-left:2px solid var(--sky)}
.tline li{display:grid;grid-template-columns:86px 1fr;gap:10px;padding:8px 0;position:relative}
.tline li::before{content:"";position:absolute;left:-20px;top:13px;width:10px;height:10px;border-radius:50%;background:var(--navy);border:2px solid var(--card)}
.tline time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.flyg button>span:first-child{min-width:0}
.btn.sm,a.btn.sm{padding:5px 12px;font-size:13px;min-height:0}
#toast[hidden]{display:none!important}

/* 统计明细：一行按钮，点开一张 */
.dims2{margin:0 0 16px}
.dtabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.dtab{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:9px 12px;background:var(--card);border:1px solid var(--line);border-radius:12px;min-width:0}
.dtab:hover{border-color:var(--line2)}
.dtab.on{border-color:var(--navy);box-shadow:inset 0 -2px 0 var(--navy)}
.dtt{font:600 13px/1.3 var(--f-body);color:var(--navy)}
.dact{font-style:normal;display:inline-block;min-width:16px;padding:0 5px;border-radius:99px;background:var(--navy);color:#fff;font-size:12px;text-align:center}
.dtp{grid-column:1;font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dtp b{color:var(--ink)}
.dchev{grid-row:1/3;grid-column:2;align-self:center;color:var(--muted);transition:transform .15s}
.dtab.on .dchev{transform:rotate(180deg)}
.dpanel{margin-top:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 10px;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:2px 16px}
.dhint{grid-column:1/-1;margin:4px 6px 2px;font-size:12px}

/* 团队复盘 */
.gf{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 16px}@media (max-width:800px){.gf{grid-template-columns:1fr}}
.gfk h3{display:flex;align-items:center;gap:8px;margin:0 0 8px}.gfk h3 svg{width:20px;height:20px}
.gfk.ok{box-shadow:inset 4px 0 0 var(--ok)}.gfk.bad{box-shadow:inset 4px 0 0 var(--bad)}
.gfk ul{margin:0;padding-left:18px;display:grid;gap:6px}
table.num td,table.num th{white-space:nowrap}table.num tr.sep td{border-top:2px solid var(--line2)}
.funnel{display:grid;gap:10px;padding:6px 0}
.fn{display:grid;grid-template-columns:220px minmax(0,1fr);gap:4px 12px;align-items:center}
.fnl{font-weight:600;font-size:14px}.fnb{position:relative;height:22px;background:var(--soft);border-radius:6px;overflow:hidden}
.fnb i{display:block;height:100%;background:var(--navy);border-radius:6px}.fnb span{position:absolute;left:8px;top:2px;font:700 12px/18px var(--f-body);color:#fff;mix-blend-mode:difference}
.fnm{grid-column:2;font-size:12.5px;color:var(--muted)}
@media (max-width:640px){.fn{grid-template-columns:1fr}.fnm{grid-column:1}}
.gfk details.mini summary{cursor:pointer;color:var(--navy);font-weight:600;font-size:13px;margin-top:8px}.gfk details.mini ul{margin-top:6px}
/* 手机：数字卡三列、更紧凑，页面短一点 */
@media (max-width:640px){.stat{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.stat>div{padding:8px 10px;border-radius:10px}.stat b{font-size:19px}.stat span{font-size:12px;line-height:1.3;display:block}.stat span .zh{display:block}}
/* 可点的数字卡：像按钮，悬停有反馈，当前筛选高亮 */
.stat>.sbtn{all:unset;box-sizing:border-box;position:relative;display:block;cursor:pointer;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 28px 10px 14px;min-width:0;color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}
.stat>.sbtn:hover{border-color:var(--navy);box-shadow:0 4px 14px rgba(23,57,101,.12);transform:translateY(-1px)}
.stat>.sbtn:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.stat>.sbtn.on{background:var(--hl);border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy)}
.stat .sgo{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-style:normal;font-size:20px;color:var(--muted)}
.stat>.sbtn:hover .sgo,.stat>.sbtn.on .sgo{color:var(--navy)}
.gfk a.gfa{color:inherit;text-decoration:none;display:block;border-radius:6px;margin:-2px -6px;padding:2px 6px}
.gfk a.gfa:hover{background:var(--hl)}.gfk a.gfa .sgo{color:var(--navy);font-weight:700}
@media (max-width:640px){.stat>.sbtn{padding:8px 22px 8px 10px;border-radius:10px}.stat .sgo{right:8px;font-size:16px}}

/* 看板页：标题一行，推荐是小按钮 */
.bhd{align-items:center}.bhd h1{margin:0}
.pkchip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--navy);font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap}
.pkchip:hover{border-color:var(--navy);background:var(--hl)}.pkchip svg{width:16px;height:16px}

/* 今日推荐弹窗 */
#pickpop{position:fixed;inset:0;z-index:60;background:rgba(15,32,56,.45);display:grid;place-items:center;padding:16px;animation:ppf .18s ease-out}
@keyframes ppf{from{opacity:0}to{opacity:1}}
.ppbox{position:relative;width:min(480px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:var(--card);border-radius:18px;padding:26px 24px 20px;box-shadow:0 24px 60px rgba(15,32,56,.3);animation:ppu .22s ease-out}
@keyframes ppu{from{transform:translateY(12px)}to{transform:none}}
.ppbox h2{margin:8px 0 2px}.ppic{width:44px;height:44px;border-radius:50%;background:var(--hl);display:grid;place-items:center;color:var(--navy)}.ppic svg{width:24px;height:24px}
.ppx{all:unset;position:absolute;right:14px;top:10px;font-size:24px;line-height:1;color:var(--muted);cursor:pointer;padding:4px 8px;border-radius:8px}.ppx:hover{background:var(--soft)}
.pplist{list-style:none;padding:0;margin:14px 0 8px;display:grid;gap:10px}.pplist li{border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.pplist .muted{font-size:13px;margin-top:3px}

/* 亚马逊式侧边菜单 */
nav#nav>.allbtn{all:unset;cursor:pointer;padding:6px 10px;border-radius:8px;font-weight:700;font-size:13.5px;color:var(--ink);margin-right:4px}
nav#nav>.allbtn:hover{background:var(--card);box-shadow:inset 0 0 0 1px var(--navy)}
#sidemenu{position:fixed;inset:0;z-index:70;background:rgba(15,32,56,0);transition:background .2s}
#sidemenu.open{background:rgba(15,32,56,.55)}
.smpanel{position:absolute;left:0;top:0;bottom:0;width:min(365px,86vw);background:var(--card);display:flex;flex-direction:column;transform:translateX(-100%);transition:transform .2s ease-out;box-shadow:8px 0 30px rgba(15,32,56,.25);padding-left:env(safe-area-inset-left,0px)}
#sidemenu.open .smpanel{transform:none}
.smhead{display:flex;align-items:center;gap:12px;background:var(--navy);color:#fff;padding:calc(16px + env(safe-area-inset-top,0px)) 22px 16px;font-size:18px}.smhead .zh{color:#fff;opacity:.8}.smhead svg{width:28px;height:28px}
.smtrack{position:relative;flex:1;overflow:hidden}
.smpage{position:absolute;inset:0;overflow-y:auto;transition:transform .2s ease-out;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}
.smpage[data-page]{transform:translateX(100%)}#sidemenu.sub .smpage:not([data-page]){transform:translateX(-100%)}#sidemenu.sub .smpage[data-page]{transform:none}
.smsec{padding:10px 0;border-bottom:1px solid var(--line)}.smsec:last-child{border-bottom:0}
.smsec h3{margin:8px 22px 6px;font:700 16px/1.3 var(--f-body);color:var(--ink)}.smsec h3 .zh{font-weight:500}
.smrow{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:6px;width:100%;padding:11px 22px 11px 34px;font-size:14.5px;color:var(--ink);cursor:pointer;text-decoration:none}
.smrow .zh{color:var(--muted);font-size:12.5px}.smrow i{margin-left:auto;font-style:normal;font-size:20px;color:var(--muted)}
.smrow:hover,.smrow:focus-visible{background:var(--soft)}.smrow.on{font-weight:700;box-shadow:inset 3px 0 0 var(--navy)}
.smback{all:unset;cursor:pointer;display:block;padding:14px 22px;font-weight:700;color:var(--navy);border-bottom:1px solid var(--line)}.smback:hover{background:var(--soft)}
.smx{all:unset;position:absolute;left:calc(min(365px,86vw) + 10px);top:calc(12px + env(safe-area-inset-top,0px));width:40px;height:40px;display:grid;place-items:center;color:#fff;font-size:30px;cursor:pointer;border-radius:8px;opacity:0;transition:opacity .2s}
#sidemenu.open .smx{opacity:1}.smx:focus-visible{outline:2px solid #fff}
@media (max-width:420px){.smx{left:auto;right:6px}}
/* 看板：大屏六个阶段一屏看全 */
@media (min-width:1200px){.board{grid-auto-flow:row;grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible}}
.acct summary .hi{font-weight:400;color:var(--muted);font-size:12.5px}.acct summary .hi .zh{font-size:12px}

/* 学亚马逊菜单的字体和颜色：白底、近黑文字、分组标题大而粗、标题和条目左对齐、悬停浅灰 */
#sidemenu{--sm-ink:#111;--sm-sub:#565959;--sm-bg:#fff;--sm-hover:#EAEDED;--sm-line:#D5D9D9}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) #sidemenu{--sm-ink:#F2F2F2;--sm-sub:#B8BDBD;--sm-bg:#1B2533;--sm-hover:#2A3647;--sm-line:#334155}}
:root[data-theme="dark"] #sidemenu{--sm-ink:#F2F2F2;--sm-sub:#B8BDBD;--sm-bg:#1B2533;--sm-hover:#2A3647;--sm-line:#334155}
.smpanel{background:var(--sm-bg);font-family:var(--f-body)}
.smhead{gap:10px;font-size:19px;font-weight:700;padding-left:36px}.smhead b{font-weight:700}.smhead .zh{font-size:13px;font-weight:400}
.smsec{padding:14px 0 10px;border-bottom:1px solid var(--sm-line)}
.smsec h3{margin:6px 36px 8px;font:700 18px/1.3 var(--f-body);color:var(--sm-ink);letter-spacing:0}.smsec h3 .zh{font-size:13px;font-weight:400;color:var(--sm-sub)}
.smrow{padding:13px 24px 13px 36px;font-size:15px;color:var(--sm-ink)}.smrow .zh{color:var(--sm-sub);font-size:12.5px}
.smrow:hover,.smrow:focus-visible{background:var(--sm-hover)}.smrow i{color:var(--sm-sub)}.smrow:hover i{color:var(--sm-ink)}
.smrow.on{box-shadow:inset 4px 0 0 var(--navy)}
.smback{padding:16px 36px;color:var(--sm-ink);border-bottom:1px solid var(--sm-line)}.smback:hover{background:var(--sm-hover)}
.acct summary{display:flex;flex-direction:column;line-height:1.15;align-items:flex-start}.acct summary .hi{font-size:12px;color:var(--muted);font-weight:400}.acct summary b{font-size:14px}

/* 语言按钮 */
.langbtn{all:unset;cursor:pointer;font-size:13px;font-weight:600;color:var(--navy);padding:6px 10px;border:1px solid var(--line);border-radius:999px}.langbtn:hover{border-color:var(--navy);background:var(--hl)}
/* 单语：剩下的 .zh 小字在英文界面里隐藏 */
body.lang-en .zh{display:none!important}
body.lang-zh .zh{color:inherit;font-size:inherit;margin:0}
/* 页脚：亚马逊式 */
#foot{margin-top:56px;background:var(--navy);color:#E9EEF5}
.ftop{all:unset;box-sizing:border-box;display:block;width:100%;text-align:center;padding:14px;background:#24497A;color:#fff;font-size:13px;cursor:pointer}.ftop:hover{background:#2C5689}
.fcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px;max-width:960px;margin:0 auto;padding:34px max(16px,env(safe-area-inset-left,0px)) 28px max(16px,env(safe-area-inset-right,0px))}
.fcols h4{margin:0 0 10px;color:#fff;font:700 15px/1.3 var(--f-body)}
.fcols a,.fcols .link{display:block;color:#C9D5E6;text-decoration:none;font-size:14px;padding:4px 0;background:none;border:0;text-align:left;cursor:pointer}.fcols a:hover,.fcols .link:hover{color:#fff;text-decoration:underline}
.fbot{display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:center;align-items:center;border-top:1px solid rgba(255,255,255,.15);padding:18px 16px calc(80px + env(safe-area-inset-bottom,0px));font-size:12.5px;color:#C9D5E6}
.fbot .wm{font-family:var(--f-display);letter-spacing:.12em;color:#fff;font-size:15px}
ol.steps{list-style:none;padding:8px 20px}ol.steps li{padding:10px 0;border-bottom:1px solid var(--line)}ol.steps li:last-child{border-bottom:0}ol.steps p{margin:4px 0 0}

/* 正式 LOGO（Freya 10-27 给的 OG-LOGO-V1）：纸色底用 06 暖白底蓝色版，深色底用 03 反白版 */
:root{--logo:url('img/og-logo-blue.png')}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--logo:url('img/og-logo-white.png')}}
:root[data-theme="dark"]{--logo:url('img/og-logo-white.png')}
.logo{display:block;width:126px;height:36px;background:var(--logo) left center/contain no-repeat}
.logo.w{background-image:url('img/og-logo-white.png');width:112px;height:32px}
.logo.big{width:224px;height:64px;margin:0 0 6px}
.brand .tg{padding-left:2px}
@media (max-width:640px){.brand .logo{width:104px;height:30px}}
#view{min-height:calc(100vh - 300px)}

/* ===== 10-27 Freya：主底色白色，更简洁清晰；每页一点小视觉（色边＋图标＋衬线标题） ===== */
:root{--a1:var(--navy);--a2:#7FA8CF;--a3:var(--slate);--a4:var(--ok)}
:root[data-theme="dark"]{--a1:var(--sky);--a2:#6C93BC;--a3:var(--slate)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--a1:var(--sky);--a2:#6C93BC;--a3:var(--slate)}}
body{background-image:none}
body.authed main::before{display:none}
main>.page-head:first-child{padding-right:0}
/* 页标题前的小图标徽章 */
h1 .hico{display:inline-grid;place-items:center;width:1.15em;height:1.15em;border-radius:10px;background:var(--soft);color:var(--a1);vertical-align:-.12em;margin-right:.35em}
h1 .hico svg{width:.66em;height:.66em}
/* 数字卡：左侧色边，轮换四色 */
.stat>div,.stat>.sbtn{box-shadow:inset 3px 0 0 var(--ac,var(--a1))}
.stat>.sbtn:hover{box-shadow:inset 3px 0 0 var(--ac,var(--a1)),0 4px 14px rgba(23,57,101,.12)}
.stat>*:nth-child(4n+2){--ac:var(--a2)}.stat>*:nth-child(4n+3){--ac:var(--a3)}.stat>*:nth-child(4n+4){--ac:var(--a4)}
.stat>.sbtn.on{box-shadow:inset 3px 0 0 var(--ac,var(--a1)),inset 0 0 0 1px var(--navy)}
/* 看板阶段：顶部色条 */
.lane{border-top:3px solid var(--ac,var(--a1));border-radius:0}
.lane:nth-child(6n+2){--ac:var(--a2)}.lane:nth-child(6n+3){--ac:var(--a3)}.lane:nth-child(6n+4){--ac:var(--a4)}.lane:nth-child(6n+5){--ac:var(--a2)}.lane:nth-child(6n+6){--ac:var(--a1)}
.lane h3 .num{border-color:var(--ac,var(--a1));color:var(--ac,var(--a1))}
/* 卡片里的小节标题：前面一道短色条 */
.card>h2:first-child,.card>h3:first-child,details.card>summary h2,details.card>summary h3{display:flex;align-items:center;gap:8px}
.card:not(.gfk)>h2:first-child::before,.card:not(.gfk)>h3:first-child::before{content:"";width:4px;height:1em;border-radius:2px;background:var(--a1);flex:none}
/* 白底上卡片更轻：细边，悬停才有阴影 */
.card{box-shadow:none}
a.card:hover{box-shadow:0 4px 14px rgba(15,17,17,.08)}

/* ===== 10-27 Freya：亚马逊式顶部三条（深蓝主栏＋蓝色菜单栏＋浅色子栏），下方白底 ===== */
header#top{background:#0F2A4D;border-bottom:0;color:#fff}
body::before{background:#0F2A4D}
.brand .tg{color:#BBD4E9}
.hbar .gsearch{border:0;border-radius:8px}
.hbar .gsearch select{background:#E8EDF3;color:#0F1111;border-right:1px solid #CDD3DA}
.hbar .gsearch input{background:#fff;color:#0F1111}
.hbar .gsearch:focus-within{box-shadow:0 0 0 3px #BBD4E9}
.hbar .hcart,.hbar .acct>summary,#menuBtn{color:#fff}
.hbar .hcart:hover,.hbar .hcart.on,.hbar .acct>summary:hover{background:transparent;box-shadow:inset 0 0 0 1px #fff}
.hbar .acct .hi{color:#D6E2EE}
.hbar .hc-n{background:#BBD4E9;color:#0F2A4D}
.hbar .langbtn{color:#fff;border-color:rgba(255,255,255,.35)}.hbar .langbtn:hover{background:transparent;border-color:#fff}
header#top nav#nav{background:#173965;border-top:0}
nav#nav>a,nav#nav>details>summary,nav#nav>.allbtn{color:#fff}
nav#nav>a:hover,nav#nav>.allbtn:hover{background:transparent;box-shadow:inset 0 0 0 1px #fff}
nav#nav>a.on{background:transparent;box-shadow:inset 0 -2px 0 #BBD4E9;font-weight:700}
nav#nav>a.cta{background:#fff;color:#173965}nav#nav>a.cta:hover{background:#E8EDF3}
nav#nav .sep{background:rgba(255,255,255,.3)}
@media (max-width:860px){header#top nav#nav{background:#173965}}
.subbar{display:flex;align-items:center;gap:4px;overflow-x:auto;white-space:nowrap;background:var(--warm);color:var(--ink);border-bottom:1px solid var(--line);padding-block:6px;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px));font-size:13.5px;scrollbar-width:none}
.subbar b{margin-right:10px;font-weight:700}
.subbar a{color:var(--ink);text-decoration:none;padding:4px 10px;border-radius:6px}
.subbar a:hover{box-shadow:inset 0 0 0 1px var(--line2)}
.subbar a.on{font-weight:700;box-shadow:inset 0 -2px 0 var(--navy);border-radius:0}
@media (max-width:640px){.subbar{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}}
/* ===== 10-27 Freya：页面像亚马逊一样占满宽度、从左边开始，不再居中留白 ===== */
main{max-width:none;margin:0;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px));padding-top:16px}
@media (min-width:981px){main{padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}}
@media (max-width:640px){main{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}}
main p.lead,main .page-head p{max-width:75ch}
/* 灰色子栏已经显示“大类 › 页面”，只有两级、不带链接的面包屑就不再重复 */
body.authed #view>.crumbs:not(:has(a)){display:none}
/* ===== 10-27 团队建议：标签按树状大类上色（原材料、风味、口感、视觉、工艺、场景） ===== */
:root{--t-ing:#5E7F2E;--t-fla:#8455A8;--t-mou:#2F6FB3;--t-vis:#C26A1B;--t-pro:#8C7A1E;--t-occ:#23806C}
:root[data-theme="dark"]{--t-ing:#A9C77A;--t-fla:#C6A3E0;--t-mou:#8CB8EA;--t-vis:#F0AE6C;--t-pro:#D8C66A;--t-occ:#7FD0BC}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--t-ing:#A9C77A;--t-fla:#C6A3E0;--t-mou:#8CB8EA;--t-vis:#F0AE6C;--t-pro:#D8C66A;--t-occ:#7FD0BC}}
.tag.lib.t-ing{--c:var(--t-ing)}.tag.lib.t-fla{--c:var(--t-fla)}.tag.lib.t-mou{--c:var(--t-mou)}.tag.lib.t-vis{--c:var(--t-vis)}.tag.lib.t-pro{--c:var(--t-pro)}.tag.lib.t-occ{--c:var(--t-occ)}
.tag.lib[class*=" t-"]{background:color-mix(in srgb,var(--c) 11%,transparent);border-color:color-mix(in srgb,var(--c) 35%,transparent);color:color-mix(in srgb,var(--c) 70%,var(--ink))}
.tag.lib.on[class*=" t-"]{background:var(--c);color:#fff;border-color:var(--c)}
.schips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.schips .tag{font-size:12px;padding:1px 7px}
.tlegend{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tlegend .tag{font-size:12px}
.scats .dtitle[class*="tt-"]{display:flex;align-items:center;gap:6px;margin-top:6px}
.scats .dtitle[class*="tt-"]::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c)}
.dtitle.tt-ing{--c:var(--t-ing)}.dtitle.tt-fla{--c:var(--t-fla)}.dtitle.tt-mou{--c:var(--t-mou)}.dtitle.tt-vis{--c:var(--t-vis)}.dtitle.tt-pro{--c:var(--t-pro)}.dtitle.tt-occ{--c:var(--t-occ)}
/* 一级导航里的阶段序号 */
nav#nav>a .sn{display:inline-grid;place-items:center;width:18px;height:18px;border:1px solid rgba(255,255,255,.55);border-radius:50%;font-size:12px;font-weight:600;margin-right:5px;vertical-align:1px}
nav#nav>a.on .sn{background:#BBD4E9;color:#0F2A4D;border-color:#BBD4E9}
/* ===== 树状标签库 ===== */
.tdot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--c,#999);flex:none}
.tdot.t-ing,.tt1.t-ing,.tnode.t-ing{--c:var(--t-ing)}.tdot.t-fla,.tt1.t-fla,.tnode.t-fla{--c:var(--t-fla)}.tdot.t-mou,.tt1.t-mou,.tnode.t-mou{--c:var(--t-mou)}
.tdot.t-vis,.tt1.t-vis,.tnode.t-vis{--c:var(--t-vis)}.tdot.t-pro,.tt1.t-pro,.tnode.t-pro{--c:var(--t-pro)}.tdot.t-occ,.tt1.t-occ,.tnode.t-occ{--c:var(--t-occ)}
.tlhead{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;margin-bottom:14px}
.tlhead input{max-width:360px;flex:1 1 240px}
.tpage{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:860px){.tpage{grid-template-columns:minmax(0,1fr)}}
.ttree{display:flex;flex-direction:column;gap:2px;background:var(--rail);border-radius:var(--r);padding:8px;position:sticky;top:12px}
.ttree a{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:14px}
.ttree a em{margin-left:auto;font-style:normal;color:var(--muted);font-size:12px}
.ttree a:hover{background:var(--card)}
.ttree a.on{background:var(--card);font-weight:700;box-shadow:inset 3px 0 0 var(--c,var(--navy))}
.ttree .tt2s{display:flex;flex-direction:column;margin:0 0 6px 18px;border-left:1px solid var(--line2)}
.ttree .tt2{font-size:13px;padding:5px 10px}
@media (max-width:860px){.ttree{position:static;flex-direction:row;flex-wrap:wrap}.ttree .tt2s{flex-direction:row;flex-wrap:wrap;margin:0;border:0;width:100%}}
.tmain{min-width:0}.tmain .crumbs{display:flex;margin-bottom:10px}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.tnode{border:1px solid var(--line);border-radius:12px;padding:12px 14px;box-shadow:inset 4px 0 0 var(--c)}
.tnode .tnh{display:flex;align-items:center;gap:8px;font:400 18px/1.3 var(--f-display);color:var(--navy);text-decoration:none}
.tnode .tnh em,.tnode li em{margin-left:auto;font-style:normal;color:var(--muted);font-size:12px;font-family:var(--f-body)}
.tnode ul{list-style:none;margin:6px 0 0;padding:0 0 0 14px;border-left:1px solid var(--line2);display:grid;gap:2px}
.tnode li{display:flex;gap:8px;font-size:13.5px}.tnode li a{color:var(--ink);text-decoration:none}.tnode li a:hover{text-decoration:underline}
.tnode .tmid{font-size:12px;font-weight:700;color:var(--muted);margin:8px 0 0;letter-spacing:.04em}
.pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:14px}.pager .btn{min-width:36px;padding:6px 10px}
.blegend{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:10px}

/* ===== 2026-10-27 新品总览、阶段页、饮品页、行业产品动向、上传下载（学参考图的用户视角；视觉学 Trace One：干净整洁又可爱） ===== */
:root{--s1:#EEE8FA;--s1i:#6A4FB0;--s2:#FBEFDF;--s2i:#A4651B;--s3:#EDE6F7;--s3i:#7650B0;--s4:#E3F0F7;--s4i:#2C6F94;--s5:#FBE7EC;--s5i:#B0405E;--s6:#E4F2E8;--s6i:#2F7A4F;--s7:#EEF0F3;--s7i:#4F5B6B;
  --mint:#E7F6EF;--mint-ink:#1F7A55;--chip:#F6F7F9;--late:#B3322A}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--s1:#2B2540;--s1i:#C7B6F2;--s2:#3A2D1B;--s2i:#F0C27F;--s3:#2E2640;--s3i:#C9B1F0;--s4:#1D3140;--s4i:#9CCDEB;--s5:#3D2229;--s5i:#F2A5B8;--s6:#1D3626;--s6i:#8FD3A8;--s7:#262D38;--s7i:#B7C1CF;--mint:#183428;--mint-ink:#8FD3A8;--chip:#1E2B40;--late:#F2968E}}
:root[data-theme="dark"]{--s1:#2B2540;--s1i:#C7B6F2;--s2:#3A2D1B;--s2i:#F0C27F;--s3:#2E2640;--s3i:#C9B1F0;--s4:#1D3140;--s4i:#9CCDEB;--s5:#3D2229;--s5i:#F2A5B8;--s6:#1D3626;--s6i:#8FD3A8;--s7:#262D38;--s7i:#B7C1CF;--mint:#183428;--mint-ink:#8FD3A8;--chip:#1E2B40;--late:#F2968E}
.sm{font-size:12.5px}.muted.sm{font-size:12.5px}
button.primary,.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff;border-radius:12px}
button.sm,.btn.sm{padding:6px 12px;font-size:13px}
svg.rot{transform:rotate(180deg)}
.flash{animation:flash 1.6s ease}
@keyframes flash{0%,40%{box-shadow:0 0 0 4px color-mix(in srgb,var(--sky) 80%,transparent)}100%{box-shadow:none}}
/* 阶段标签 */
.spill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:3px 10px;border-radius:8px;white-space:nowrap}
.spill i{width:8px;height:8px;border-radius:50%;border:1.6px solid currentColor}
.sp1{background:var(--s1);color:var(--s1i)}.sp2{background:var(--s2);color:var(--s2i)}.sp3{background:var(--s3);color:var(--s3i)}.sp4{background:var(--s4);color:var(--s4i)}.sp5{background:var(--s5);color:var(--s5i)}.sp6{background:var(--s6);color:var(--s6i)}.sp7{background:var(--s7);color:var(--s7i)}
.vchip{display:inline-block;font:600 12px/1.6 var(--f-mono);padding:0 6px;border:1px solid var(--line2);border-radius:5px;color:var(--muted);margin-left:4px}
.vchip.ok{border-color:transparent;background:var(--ok-bg);color:var(--ok)}.vchip.warn{border-color:transparent;background:var(--warn-bg);color:var(--warn)}
.av{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;font:600 12px/1 var(--f-body);color:#3A3F4A;flex:none;vertical-align:middle;border:2px solid var(--card)}
.av.big{width:36px;height:36px;font-size:15px}
.who{display:inline-flex;align-items:center;gap:6px}
/* 研发进程条 */
.stepper7{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin:10px 0 2px}
.s7{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;color:var(--muted);text-align:center;min-width:0}
.s7::before{content:"";position:absolute;top:14px;left:calc(-50% + 16px);right:calc(50% + 16px);height:1.5px;background:var(--line)}
.s7:first-child::before{display:none}
.s7 .d{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font:600 12px/1 var(--f-body);background:var(--chip);color:var(--muted);border:1px solid var(--line);position:relative;z-index:1}
.s7.done .d{background:var(--mint);color:var(--mint-ink);border-color:transparent}.s7.done::before,.s7.cur::before{background:var(--mint-ink);opacity:.45}
.s7.cur .d{background:#2E4B3F;color:#fff;border-color:#2E4B3F;box-shadow:0 0 0 4px var(--mint)}
.s7.cur .l{color:var(--ink);font-weight:700}
.s7 .l{line-height:1.25;overflow-wrap:anywhere}
.stepper7.sm{margin:6px 0}.stepper7.sm .d{width:16px;height:16px;font-size:8px}.stepper7.sm .s7::before{top:8px;left:calc(-50% + 9px);right:calc(50% + 9px)}.stepper7.sm .s7.cur .d{box-shadow:0 0 0 2px var(--mint)}
/* 工作台布局：左侧栏＋主区 */
.ws{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start}
.wsrail{position:sticky;top:150px;display:flex;flex-direction:column;gap:2px;padding:6px 0;border-right:1px solid var(--line);padding-right:14px;min-height:60vh}
.wsh{font-size:12px;color:var(--muted);margin:14px 10px 6px;letter-spacing:.04em}
.wsh:first-child{margin-top:4px}
.wsi{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;color:var(--ink);font-size:14.5px;cursor:pointer;text-decoration:none}
.wsi svg{width:18px;height:18px;color:var(--muted);flex:none}
.wsi span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wsi em{font-style:normal;font-size:12.5px;color:var(--muted)}
.wsi:hover{background:var(--chip)}.wsi.on{background:var(--chip);font-weight:700}.wsi.on svg{color:var(--ink)}
.wsi:focus-visible{outline:2px solid var(--navy)}
.wsdot{width:9px;height:9px;border-radius:3px;flex:none}
.wsfoot{margin-top:auto;padding-top:20px}
.wsmain{min-width:0}
.ovhead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}
.ovhead h1{font-size:32px;margin:4px 0}
.eyebrow{font:600 12px/1.4 var(--f-body);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.ovact{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.avs{display:inline-flex}.avs .av{margin-left:-7px}.avs .av:first-child{margin-left:0}
/* 数字卡：每张都是按钮 */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:14px;margin:6px 0 14px}
.kpi,.kcard{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px 18px;cursor:pointer;text-decoration:none;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.kpi:hover,.kcard:hover{border-color:var(--line2);box-shadow:var(--shadow)}
.kpi:focus-visible,.kcard:focus-visible{outline:2px solid var(--navy)}
.kt{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--ink)}
.kt span svg{width:18px;height:18px;color:var(--muted)}
.kpi b{font:500 34px/1.1 var(--f-body);letter-spacing:-.01em}
.ks{font-size:12.5px;color:var(--muted)}
.kpi .ks .gup{font-weight:600}
/* 各阶段数量条 */
.pipe{display:flex;gap:4px;margin:0 0 14px;min-height:44px}
.pseg{border:0;font:inherit;text-align:left;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;gap:0;padding:6px 10px;border-radius:10px;cursor:pointer;min-width:0;overflow:hidden}
.pseg b{font-size:15px}.pseg span{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pseg:hover{filter:brightness(.97)}.pseg:focus-visible{outline:2px solid var(--navy)}
/* 本周焦点 */
.focus{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;background:color-mix(in srgb,var(--warn-bg) 45%,var(--card));border:1px solid color-mix(in srgb,var(--warn) 18%,var(--line));border-radius:12px;padding:12px 16px;margin-bottom:14px;font-size:14px}
.focus .fl{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--warn)}.focus .fl svg{width:16px;height:16px}
.focus .fsep{color:var(--line2)}.focus .ft{flex:1 1 260px;min-width:0;color:var(--ink)}.focus .ft input{padding:6px 10px}
.focus .fr{margin-left:auto;text-decoration:none;font-weight:600}
/* 等你处理 */
.todo{border:1px solid var(--line);border-radius:14px;padding:6px 6px 8px;margin-bottom:16px;background:var(--card)}
.todoh{display:flex;gap:8px;align-items:center;padding:8px 10px 4px}
.todoi{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--ink);font-size:14px}
.todoi:hover{background:var(--chip)}.todoi i{margin-left:auto;font-style:normal;color:var(--muted)}
.tic{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--hl);color:var(--navy);flex:none}.tic svg{width:16px;height:16px}
.todo .link{margin:4px 10px}
/* 页签和视图切换 */
.ovtabs{display:flex;align-items:flex-end;gap:22px;border-bottom:1px solid var(--line);margin:8px 0 14px;flex-wrap:wrap}
.ovtabs>button{all:unset;cursor:pointer;padding:10px 0;font-size:15px;color:var(--muted);border-bottom:2.5px solid transparent;margin-bottom:-1px}
.ovtabs>button.on{color:var(--ink);font-weight:700;border-color:#2E4B3F}
.ovtabs>button em{font-style:normal;font-size:12px;background:var(--chip);border-radius:6px;padding:1px 6px;margin-left:4px;color:var(--muted)}
.ovtabs>button:focus-visible{outline:2px solid var(--navy)}
.vsw{margin-left:auto;display:inline-flex;background:var(--chip);border-radius:10px;padding:3px;margin-bottom:8px}
.vsw button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;font-size:13px;color:var(--muted)}
.vsw button svg{width:15px;height:15px}.vsw button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.ovfilters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.fsel{display:inline-flex;align-items:center;gap:6px;margin:0;border:1px solid var(--line2);border-radius:10px;padding:0 4px 0 10px;background:var(--card);color:var(--muted)}
.fsel svg{width:15px;height:15px}.fsel select{border:0;padding:8px 6px;width:auto;background:transparent;box-shadow:none}
.fsearch{display:flex;align-items:center;gap:6px;margin:0 0 0 auto;border:1px solid var(--line2);border-radius:10px;padding:0 10px;flex:0 1 280px;background:var(--card)}
.fsearch svg{width:15px;height:15px;color:var(--muted)}.fsearch input{border:0;padding:8px 2px;box-shadow:none}
/* 表格 */
.ovtbl{border:1px solid var(--line);border-radius:14px;overflow-x:auto;background:var(--card)}
.ovtbl table{width:100%;border-collapse:collapse;font-size:14px}
.ovtbl th{text-align:left;font-weight:500;color:var(--muted);font-size:13px;padding:12px 14px;background:var(--warm);border-bottom:1px solid var(--line);white-space:nowrap}
.ovtbl td{padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:middle}
.ovtbl tbody tr:last-child td{border-bottom:0}
.ovtbl tr[data-open]{cursor:pointer}.ovtbl tr[data-open]:hover td{background:color-mix(in srgb,var(--chip) 70%,transparent)}
.ovtbl tr.chg td{background:color-mix(in srgb,var(--warn-bg) 60%,transparent)}
.ovtbl tr.tot td{font-weight:600;background:var(--warm)}
.dn{display:flex;align-items:center;gap:12px;min-width:220px}.dn .nm{font-weight:700;color:var(--ink);text-decoration:none;font-size:15px}.dn .nm:hover{text-decoration:underline}
.cthumb{display:grid;place-items:center;width:52px;height:56px;border-radius:10px;background:var(--warm);overflow:hidden;flex:none}
.cthumb img{width:100%;height:100%;object-fit:cover}
.nxt{font-size:13.5px}.nxt.warn{color:#B7621B}.nxt.ok{color:var(--ok)}
.late{color:var(--late);font-weight:600}
.cmini{display:inline-flex;align-items:center;gap:6px}.cmini em{font-style:normal;font-size:12.5px;font-weight:600}
.cbar{position:relative;display:inline-block;width:64px;height:6px;border-radius:3px;background:var(--line)}
.cbar i{position:absolute;inset:0 auto 0 0;border-radius:3px;background:var(--ok)}.cmini.over .cbar i{background:var(--bad)}.cmini.over em{color:var(--bad)}
.cbar b{position:absolute;top:-3px;width:2px;height:12px;background:var(--ink);opacity:.5}
/* 卡片视图 */
.dcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:14px}
.dcard{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column}
.dcard:hover{box-shadow:var(--shadow)}
.dcpic{display:grid;place-items:center;height:150px;background:color-mix(in srgb,var(--band) 12%,var(--warm))}
.dcpic img{width:100%;height:100%;object-fit:cover}
.dcb{padding:12px 14px 14px;display:flex;flex-direction:column;gap:4px}
.dct{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.dcn{font:700 16px/1.3 var(--f-display);color:var(--ink);text-decoration:none}
.dcm{display:flex;align-items:center;gap:6px;justify-content:space-between;font-size:13px}
/* 看板视图 */
.board7{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px}
.lane7{background:var(--warm);border-radius:14px;padding:10px;min-width:0}
.lane7 h3{display:flex;align-items:center;justify-content:space-between;margin:0 0 8px;font:inherit}.lane7 h3 em{font-style:normal;color:var(--muted);font-size:12.5px}
.bcard{display:flex;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px;margin-bottom:8px;cursor:pointer;font-size:13px}
.bcard a{font-weight:700;color:var(--ink);text-decoration:none}.bcard .cthumb{width:40px;height:44px}
/* 右侧摘要面板 */
.sp h2{margin:6px 0}.sppic{display:grid;place-items:center;height:190px;border-radius:14px;background:color-mix(in srgb,var(--band) 12%,var(--warm));margin-bottom:12px}
.sppic img{max-height:100%;border-radius:12px}
.spt{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.props{display:grid;grid-template-columns:auto 1fr;gap:10px 14px;margin:14px 0;font-size:14px}
.props dt{color:var(--muted)}.props dd{margin:0;text-align:right;display:flex;justify-content:flex-end;align-items:center;gap:6px;flex-wrap:wrap}
.spnext,.spblock{border-radius:12px;padding:10px 12px;margin:8px 0;font-size:14px}
.spnext{background:var(--hl)}.spblock{background:var(--bad-bg);color:var(--bad)}.spblock ul{margin:4px 0 0;padding-left:18px}
/* 阶段列表 */
.lthumb.cup{background:var(--warm);border-radius:10px;width:56px;height:60px;display:grid;place-items:center;overflow:hidden}
.inspark{display:inline-block;width:90px;vertical-align:middle;margin-left:8px}
.lact2{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lact{display:flex;flex-direction:column;gap:6px;align-items:stretch}
/* 饮品页 */
.back{display:inline-block;color:var(--muted);text-decoration:none;font-size:13.5px;margin:4px 0 14px}.back:hover{color:var(--ink)}
.phead{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:14px}
.pthumb{display:grid;place-items:center;width:84px;height:88px;border-radius:12px;background:var(--warm);overflow:hidden;flex:none}.pthumb img{width:100%;height:100%;object-fit:cover}
.ptitle{flex:1 1 300px;min-width:0}.pmeta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px}
.ptitle h1{font-size:30px;margin:4px 0 2px;cursor:text}.psub{color:var(--muted);font-size:14.5px}
.pact{display:flex;gap:8px;flex-wrap:wrap}
.pstick{position:sticky;top:118px;z-index:5;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 18px;margin-bottom:12px;box-shadow:0 4px 14px rgba(15,17,17,.04)}
.pph{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px}
.pnow{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;border-top:1px dashed var(--line);margin-top:8px;padding-top:8px}
.pn1 b{margin-right:4px}.pn1.ok{color:var(--ok)}.pblk{color:#B7621B}.pconf{color:var(--ok);font-weight:600;margin-left:auto}
.ptabs7{display:flex;gap:4px 22px;border-bottom:1px solid var(--line);margin:4px 0 16px;overflow-x:auto}
.ptabs7 a{display:inline-flex;align-items:center;gap:7px;padding:11px 0;color:var(--muted);text-decoration:none;font-size:14.5px;border-bottom:2.5px solid transparent;margin-bottom:-1px;white-space:nowrap}
.ptabs7 a svg{width:16px;height:16px}.ptabs7 a.on{color:var(--ink);font-weight:700;border-color:#2E4B3F}
.pgrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}
.pmain{min-width:0}.pside{display:flex;flex-direction:column;gap:14px;position:sticky;top:250px}
.psec{background:var(--card);border:1px solid var(--line);border-radius:16px;margin-bottom:14px;overflow:hidden}
.psh{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.psh h3{display:flex;align-items:center;gap:8px;margin:0;font-size:16px}.psh h3 svg{width:17px;height:17px;color:var(--muted)}
.psb{padding:16px 18px}.psb>:first-child{margin-top:0}
.brief{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:8px 18px;margin:14px 0 8px;font-size:14.5px}.brief dt{color:var(--muted)}.brief dd{margin:0}
.bform label{margin-top:8px}
.cvis{background:color-mix(in srgb,var(--band) 10%,var(--warm));border-radius:16px;padding:16px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}
.cvl{font:600 12px/1.4 var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pside .props{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin:0}
.gatebox{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow)}
.gatebox h3{margin:2px 0 8px}
.lchk label{display:flex;gap:8px;align-items:flex-start;color:var(--ink);font-size:13.5px;margin:6px 0;cursor:pointer}.lchk label.ok span{color:var(--ok)}
.filesbox{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}.filesbox .psh{padding:12px 16px}
.flist{list-style:none;margin:0;padding:8px 16px}.flist li{padding:6px 0;border-bottom:1px solid var(--line)}.flist li:last-child{border:0}
.filesbox>p,.fup{padding:0 16px 14px}.fup{display:flex;gap:8px;align-items:center}.fup select{padding:6px 8px;font-size:13px}.fup label{margin:0}
.decide.two{grid-template-columns:1fr 1fr}
/* 原料行 */
.ingt{display:flex;flex-direction:column}
.ingr{display:grid;grid-template-columns:18px minmax(0,1.4fr) minmax(0,1fr) auto auto 70px;gap:4px 10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.ingr:has(input){grid-template-columns:18px minmax(0,1.4fr) minmax(0,1fr) 80px 22px auto 70px}
.ingr.chg{background:color-mix(in srgb,var(--warn-bg) 60%,transparent)}
.ingdot{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);font:700 8px/1 var(--f-body);vertical-align:middle;flex:none}
.ingdot.big{width:34px;height:34px;font-size:12px}
.ingn{text-align:left;font-weight:600;color:var(--ink)}
.amtv,.costv{text-align:right;white-space:nowrap}.costv{color:var(--muted)}
.shr{height:6px;border-radius:3px;background:var(--line);overflow:hidden}.shr i{display:block;height:100%}
.amt{padding:5px 8px;text-align:right}.amt.chg{border-color:var(--warn);background:var(--warn-bg)}
.costline{margin:10px 0;padding:10px 12px;border-radius:10px;font-size:14px}.costline.ok{background:var(--ok-bg);color:var(--ok)}.costline.over{background:var(--bad-bg);color:var(--bad)}
.vbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.vtab{all:unset;cursor:pointer;font:600 13px/1 var(--f-mono);padding:7px 10px;border-radius:8px;border:1px solid var(--line2);color:var(--muted)}
.vtab.on{border-color:var(--navy);color:var(--navy);background:var(--hl)}.vtab.conf{color:var(--ok)}.vtab:focus-visible{outline:2px solid var(--navy)}
.vact{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.note{padding:10px 12px;border-radius:10px;font-size:13.5px;margin:8px 0}.note.ok{background:var(--ok-bg);color:var(--ok)}.note.warn{background:var(--warn-bg);color:var(--warn)}
.vform{border:1px dashed var(--line2);border-radius:14px;padding:12px 14px;margin:12px 0;background:var(--warm)}.vform h4{margin:0 0 4px}.vform .grow{flex:3 1 260px}
.specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:4px 10px;align-items:end}.specs label{margin:4px 0}.specs button{height:40px}
.sop summary{cursor:pointer;color:var(--muted);font-size:13.5px;margin:8px 0}
.samples{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:10px}
.sample{border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:4px;font-size:13.5px}
.confirmq{display:inline-flex;gap:6px;align-items:center;font-size:13px}
.cmp{border:1px solid var(--line);border-radius:14px;padding:12px;margin-top:12px}.cmph{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.cmph label{display:inline;margin:0}
/* 成本图 */
.ctiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-bottom:14px}
.ctiles div{background:var(--warm);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column}.ctiles b{font-size:18px}.ctiles span{font-size:12px;color:var(--muted)}
.ctiles .ok{background:var(--ok-bg)}.ctiles .ok b{color:var(--ok)}.ctiles .bad{background:var(--bad-bg)}.ctiles .bad b{color:var(--bad)}
.sbar{position:relative;display:flex;height:26px;border-radius:8px;overflow:visible;background:var(--line);margin:22px 0 8px}
.sbar span{height:100%;min-width:2px}.sbar span:first-child{border-radius:8px 0 0 8px}
.sbmark{position:absolute;top:-8px;bottom:-8px;width:2px;background:var(--ink)}.sbmark b{position:absolute;top:-18px;left:4px;font:600 12px/1 var(--f-body);white-space:nowrap}
.slegend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--muted)}.slegend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.vbars{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:6px}
.vb{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;min-width:0}
.vbc{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}.vbc span{width:min(70%,34px);border-radius:6px 6px 2px 2px}
.vbt{font-size:12px;color:var(--muted)}.vbl{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.hbars{display:flex;flex-direction:column;gap:6px}
.hb{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,2fr) 36px;gap:10px;align-items:center;font-size:13.5px;color:var(--ink);text-decoration:none}
.hbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbc{height:10px;background:var(--line);border-radius:5px;overflow:hidden}.hbc i{display:block;height:100%;border-radius:5px}.hbv{text-align:right;color:var(--muted)}
a.hb:hover .hbl{text-decoration:underline}
.spark{display:block}
/* 包装和供应商 */
.bcups{display:flex;gap:16px;flex-wrap:wrap}.bcups figure{margin:0;text-align:center}.bcups figcaption{font-size:12.5px;color:var(--muted)}.bcups figcaption i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px}
.supl{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px}
.supc{border:1px solid var(--line);border-radius:14px;padding:12px 14px}.supt{display:flex;justify-content:space-between;gap:8px;align-items:center}.supt a{color:var(--ink);text-decoration:none}
.docs{display:flex;gap:12px;font-size:13px;margin:6px 0}.okt{color:var(--ok)}.not{color:var(--bad)}
.sform .chk{display:flex;align-items:center;gap:6px;color:var(--ink)}
.wuh{display:flex;gap:12px;align-items:center}
/* 行业产品动向 */
.gup{color:var(--ok);font-weight:600;font-size:12px}.gdn{color:var(--bad);font-size:12px}.gflat{color:var(--muted);font-size:12px}
.kwleg{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--muted);margin-bottom:10px}.kwleg i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}
.eltiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.elt{display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);border-radius:12px;padding:10px;text-decoration:none;color:var(--ink);background:color-mix(in srgb,var(--c) 7%,var(--card))}
.elsw{width:26px;height:26px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}
.lcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px}
.lcard{display:flex;gap:10px;border:1px solid var(--line);border-radius:12px;padding:10px}.lcpic{flex:none;width:72px;display:grid;place-items:center}.lct{font-weight:600;font-size:14px}.lcd{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:4px}
.hotleg{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}
.hotg{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:14px}
.hotc{display:flex;gap:12px;border:1px solid var(--line);border-radius:16px;padding:12px;background:var(--card)}
.hotpic{position:relative;flex:none;width:90px;height:100px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 14%,var(--warm))}
.hotsw{width:48px;height:48px;border-radius:50%}.hotn{position:absolute;top:6px;left:8px;font:700 12px/1 var(--f-body);color:var(--muted)}
.hotb{min-width:0}.hotb h3{margin:6px 0 2px}
/* 上传下载 */
.upg{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:14px}
.upc{display:flex;gap:14px;border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--card)}.upc h3{margin:0 0 2px}.upc p{margin:0 0 10px}
.upi{flex:none;width:42px;height:42px;border-radius:12px;background:var(--hl);color:var(--navy);display:grid;place-items:center}.upi svg{width:22px;height:22px}
.upc .row label{margin:0}
.dlbar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px}.dlbar label{margin:0}.dlbar input{width:auto}
.dlg{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:10px}
.dli{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--card)}
.cupsvg{max-width:100%;height:auto;display:block}
.ingdot+.sm{margin-right:6px}
/* 窄屏 */
@media (max-width:1100px){.pgrid{grid-template-columns:minmax(0,1fr)}.pside{position:static;order:-1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}}
@media (max-width:900px){.ws{grid-template-columns:minmax(0,1fr)}.wsrail{position:static;flex-direction:row;flex-wrap:wrap;border-right:0;border-bottom:1px solid var(--line);padding:0 0 10px;min-height:0;gap:4px}
  .wsh,.wsfoot{display:none}.wsi{padding:6px 10px;background:var(--chip);font-size:13.5px}.wsi span{white-space:nowrap}
  .pstick{position:static}.fsearch{margin-left:0;flex:1 1 100%}}
@media (max-width:640px){.ovhead h1,.ptitle h1{font-size:25px}.kpi b{font-size:28px}.pipe .pseg span{display:none}.s7 .l{font-size:12px}
  .ingr,.ingr:has(input){grid-template-columns:18px minmax(0,1fr) auto auto;}.ingr>.muted.sm,.ingr .shr{display:none}
  .ovtbl table{font-size:13px}.ovtabs{gap:14px}.vsw{margin-left:0}.hb{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 30px}}

.files video.fvid{width:220px;max-width:100%;border-radius:10px;background:#000;display:block}
@media (max-width:640px){.kpis{grid-template-columns:1fr 1fr;gap:10px}.kpi,.kcard{padding:12px 14px}.kpi .ks{display:none}}
/* Freya 10-27：导航栏不标数字，栏目间拉开，不挤在一起 */
nav#nav{gap:4px 6px;padding-block:6px 8px}
nav#nav>a{padding:8px 14px;font-size:15px;letter-spacing:.01em}
nav#nav>.allbtn{padding:8px 14px;font-size:15px;margin-right:6px}
nav#nav .sep{margin:0 8px}
.subbar{gap:6px}.subbar b{margin-right:16px}.subbar a{padding:6px 14px}
@media (max-width:1280px){nav#nav>a{padding:8px 10px;font-size:14.5px}}
nav#nav>a.navio{margin-left:auto;display:inline-flex;align-items:center;gap:6px}nav#nav>a.navio svg{width:16px;height:16px}
@media (max-width:820px){nav#nav>a.navio{margin-left:0}}
/* Freya 10-27：导航栏按窗口宽度均匀分布，不挤在左边 */
@media (min-width:821px){nav#nav{justify-content:space-between;flex-wrap:nowrap}nav#nav>a.navio{margin-left:0}nav#nav>a{white-space:nowrap}}
@media (min-width:821px) and (max-width:1180px){nav#nav>a,nav#nav>.allbtn{padding:8px 6px;font-size:13.5px}nav#nav .sep{margin:0 2px}}
nav#nav>.allbtn{white-space:nowrap;flex-shrink:0}
@media (min-width:821px) and (max-width:1180px){nav#nav>a,nav#nav>.allbtn{padding:8px 4px;font-size:13px}nav#nav .sep{display:none}nav#nav>a.navio svg{display:none}}
nav#nav>a{display:inline-flex;align-items:center;gap:7px}
nav#nav .nic{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;background:rgba(187,212,233,.16);color:#BBD4E9;flex:none}
nav#nav .nic svg{width:14px;height:14px}
nav#nav>a.on .nic{background:#BBD4E9;color:#173965}
nav#nav>a:hover .nic{background:rgba(187,212,233,.3)}
nav#nav>a.navio svg{display:block}
@media (min-width:821px) and (max-width:1320px){nav#nav .nic{display:none}}
@media (max-width:820px){nav#nav .nic{background:var(--soft,#F3F5F8);color:#173965}}

/* ===== Freya 10-27 04:09：配色学 Airtable，黑白，不用蓝色；字体换成 Inter（接近 Airtable 的 Haas Grotesk，放自己服务器，中国也能加载） ===== */
@font-face{font-family:"Inter var";src:url('fonts/inter-var.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--navy:#111111;--red:#111111;--accent:#111111;--accent-ink:#FFFFFF;--hl:#F2F2F2;--hl-ink:#111111;--sky:#E6E6E6;--sun:#E6E6E6;--slate:#555555;
  --ink:#111111;--muted:#666666;--line:#E5E5E5;--line2:#CFCFCF;--soft:#F5F5F5;--warm:#FAFAFA;--rail:#FAFAFA;--rail-ink:#111111;
  --f-display:"Inter var",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --f-body:"Inter var",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--navy:#F5F5F5;--red:#F5F5F5;--accent:#F5F5F5;--accent-ink:#111111;--hl:#222222;--hl-ink:#F5F5F5;--sky:#333333;--sun:#333333;--slate:#BBBBBB;
  --bg:#111111;--card:#181818;--soft:#1F1F1F;--warm:#161616;--ink:#F2F2F2;--muted:#A0A0A0;--line:#2C2C2C;--line2:#3A3A3A;--rail:#141414;--rail-ink:#F2F2F2}}
:root[data-theme="dark"]{--navy:#F5F5F5;--red:#F5F5F5;--accent:#F5F5F5;--accent-ink:#111111;--hl:#222222;--hl-ink:#F5F5F5;--sky:#333333;--sun:#333333;--slate:#BBBBBB;
  --bg:#111111;--card:#181818;--soft:#1F1F1F;--warm:#161616;--ink:#F2F2F2;--muted:#A0A0A0;--line:#2C2C2C;--line2:#3A3A3A;--rail:#141414;--rail-ink:#F2F2F2}
body{font-family:var(--f-body);font-feature-settings:"cv11","ss01";letter-spacing:-.005em}
h1,h2,h3,.ovhead h1,.ptitle h1{font-family:var(--f-display);font-weight:650;letter-spacing:-.02em;color:var(--ink)}
h1{font-weight:700}
a{color:var(--ink)}
:focus-visible{outline-color:var(--ink)}
/* 顶栏：白底黑字，细分隔线（Airtable） */
header#top{background:var(--card);color:var(--ink);border-bottom:1px solid var(--line)}
header#top .logo.w{filter:brightness(0)}
:root[data-theme="dark"] header#top .logo.w{filter:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) header#top .logo.w{filter:none}}
.brand .tg{color:var(--muted)}
.hbar .gsearch{border:1px solid var(--line2);border-radius:10px;background:var(--card)}
.hbar .gsearch select{background:var(--soft);color:var(--ink);border-right:1px solid var(--line)}
.hbar .gsearch input{background:var(--card);color:var(--ink)}
.hbar .gsearch button{background:var(--ink);color:var(--card)}
.hbar .gsearch:focus-within{box-shadow:0 0 0 3px var(--hl)}
.hbar .hcart,.hbar .acct>summary,#menuBtn{color:var(--ink)}
.hbar .hcart:hover,.hbar .hcart.on,.hbar .acct>summary:hover{background:var(--soft);box-shadow:none}
.hbar .acct .hi{color:var(--muted)}
.hbar .hc-n{background:var(--ink);color:var(--card)}
.hbar .langbtn{color:var(--ink);border-color:var(--line2)}.hbar .langbtn:hover{background:var(--soft);border-color:var(--ink)}
header#top nav#nav{background:var(--card);border-top:1px solid var(--line)}
nav#nav>a,nav#nav>details>summary,nav#nav>.allbtn{color:var(--ink)}
nav#nav>a:hover,nav#nav>.allbtn:hover{background:var(--soft);box-shadow:none}
nav#nav>a.on{background:transparent;box-shadow:inset 0 -2px 0 var(--ink);border-radius:0;font-weight:650}
nav#nav .sep{background:var(--line2)}
nav#nav .nic{background:var(--soft);color:var(--ink)}
nav#nav>a.on .nic{background:var(--ink);color:var(--card)}
nav#nav>a:hover .nic{background:var(--line)}
@media (max-width:860px){header#top nav#nav{background:var(--card)}}
.subbar{background:var(--warm)}
.subbar a.on{box-shadow:inset 0 -2px 0 var(--ink)}
/* 按钮：主按钮黑底白字，次按钮白底细框 */
button,.btn{font-family:var(--f-body)}
.ghost,button.ghost,.btn.ghost{background:var(--card);color:var(--ink);border:1px solid var(--line2)}
.ghost:hover,button.ghost:hover{border-color:var(--ink)}
.link,button.link{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
/* 选中态、进度条、卡片 */
.vtab.on{border-color:var(--ink);color:var(--ink);background:var(--soft)}
.s7.cur .d{background:var(--ink);border-color:var(--ink);box-shadow:0 0 0 4px var(--soft)}
.ovtabs>button.on,.ptabs7 a.on{border-color:var(--ink)}
.tic,.upi{background:var(--soft);color:var(--ink)}
.spnext{background:var(--soft)}
.kpi,.kcard,.psec,.dcard,.hotc,.upc,.todo,.ovtbl,.pstick,.gatebox,.filesbox,.pside .props{border-radius:12px;box-shadow:none}
.kpi:hover,.kcard:hover,.dcard:hover{box-shadow:0 2px 10px rgba(0,0,0,.06);border-color:var(--line2)}
.focus{background:var(--warm);border-color:var(--line)}
.focus .fl{color:var(--ink)}
.eyebrow{color:var(--muted)}
#demobar{background:#111!important;color:#fff}
#demobar select{background:#fff!important;color:#111!important;border-color:#fff!important}
/* 照 Freya 发的 Airtable 截图：顶部导航只有文字、字号大一点、间距宽；彩色细线图标放在下拉/侧边菜单和页面条目里；按钮黑框圆角 */
nav#nav .nic{display:none}
nav#nav>a{font-size:15.5px;font-weight:500;padding:12px 10px}
nav#nav>a.on{font-weight:600}
nav#nav>a.navio svg{width:17px;height:17px;display:block}
.ghost,button.ghost,.btn.ghost{border:1.5px solid var(--ink);border-radius:12px;font-weight:500}
button.primary,.btn.primary{border-radius:12px}
.eyebrow{display:flex;align-items:center;gap:14px;font-weight:500;letter-spacing:.06em}
.eyebrow::after{content:"";flex:1;max-width:320px;height:1px;background:var(--line2)}
/* 彩色细线图标（Airtable 下拉菜单那样）：每类一个颜色 */
:root{--c1:#C2185B;--c2:#7B4FD6;--c3:#E0575B;--c4:#1E8A7A;--c5:#E89B1C;--c6:#2F80ED;--c7:#5E8E3E}
.smrow svg,.kt span svg,.tic svg,.upi svg,.psh h3 svg,.ptabs7 a svg,.wsi svg{stroke-width:1.6}
.kpi:nth-child(1) .kt span{color:var(--c2)}.kpi:nth-child(2) .kt span{color:var(--c1)}.kpi:nth-child(3) .kt span{color:var(--c4)}.kpi:nth-child(4) .kt span{color:var(--c5)}
.todoi:nth-child(3n+2) .tic{color:var(--c1)}.todoi:nth-child(3n+3) .tic{color:var(--c4)}.todoi:nth-child(3n+4) .tic{color:var(--c2)}
.upc:nth-child(7n+1) .upi{color:var(--c3)}.upc:nth-child(7n+2) .upi{color:var(--c2)}.upc:nth-child(7n+3) .upi{color:var(--c1)}.upc:nth-child(7n+4) .upi{color:var(--c4)}.upc:nth-child(7n+5) .upi{color:var(--c5)}.upc:nth-child(7n+6) .upi{color:var(--c6)}.upc:nth-child(7n+7) .upi{color:var(--c7)}
.tic,.upi{background:transparent;border:1px solid var(--line)}
.ptabs7 a:nth-child(1) svg{color:var(--c5)}.ptabs7 a:nth-child(2) svg{color:var(--c2)}.ptabs7 a:nth-child(3) svg{color:var(--c1)}.ptabs7 a:nth-child(4) svg{color:var(--c4)}.ptabs7 a:nth-child(5) svg{color:var(--c3)}.ptabs7 a:nth-child(6) svg{color:var(--c6)}.ptabs7 a:nth-child(7) svg{color:var(--c7)}
.wsi:nth-of-type(1) svg{color:var(--c2)}.wsi:nth-of-type(2) svg{color:var(--c4)}.wsi:nth-of-type(3) svg{color:var(--c1)}.wsi:nth-of-type(4) svg{color:var(--c5)}
.psh h3 svg{color:var(--c2)}
/* 栏目头图（学 Airtable 博客头图） */
.shero{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);border-radius:16px;overflow:hidden;margin:0 0 22px;min-height:260px;background:#1B1D22;color:#fff}
.shl{padding:34px 36px;display:flex;flex-direction:column;gap:10px;min-width:0}
.shl h2{font:700 clamp(28px,3.2vw,44px)/1.08 var(--f-display);letter-spacing:-.025em;margin:0;color:#fff}
.shl p{margin:0 0 8px;font-size:16px;line-height:1.5;color:#E6E6E6;max-width:58ch}
.shk{font:500 12px/1 var(--f-body);letter-spacing:.12em;text-transform:uppercase;color:#BDBDBD;margin-top:auto}
.shl h2+p+.shk{margin-top:14px}
.shq{display:flex;flex-wrap:wrap;gap:10px}
.shq a{color:#fff;text-decoration:none;border:1.5px solid #fff;border-radius:12px;padding:10px 18px;font-weight:500;font-size:14.5px}
.shq a:hover{background:#fff;color:#111}
.shero .shr{position:relative;background:var(--p);color:#111;min-height:220px;overflow:hidden}
.shc{position:absolute;display:grid;place-items:center;border-radius:50%}
.shc svg{width:46%;height:46%;stroke-width:1.8;color:#111}
.shc.a{width:110px;height:110px;left:8%;top:10%}
.shc.b{width:150px;height:150px;right:-18px;top:50%;transform:translateY(-50%)}
.shc.c{width:96px;height:96px;left:-26px;bottom:8%}
.sha{position:absolute;inset:0;width:100%;height:100%;color:rgba(255,255,255,.55)}
@media (max-width:760px){.shero{grid-template-columns:1fr}.shero .shr{min-height:150px}.shl{padding:24px 20px}.shc.a{width:80px;height:80px}.shc.b{width:110px;height:110px}.shc.c{width:70px;height:70px}}
/* 每个栏目的细微差异：栏目色用在小标签线、二级导航下划线和页面图标 */
body[data-sec="trends"]{--sec:#2E7D6B}body[data-sec="s1"]{--sec:#B8862B}body[data-sec="s2"]{--sec:#7B4FA0}body[data-sec="s3"]{--sec:#B04A6E}body[data-sec="s4"]{--sec:#3F7A4F}
body[data-sec="s5"]{--sec:#A86A3E}body[data-sec="s6"]{--sec:#555555}body[data-sec="s7"]{--sec:#6E7A2E}body[data-sec="tags"]{--sec:#A0674A}body[data-sec="files"]{--sec:#6B6B78}body[data-sec="board"],body[data-sec="my"]{--sec:#8A6A2E}
.subbar a.on{box-shadow:inset 0 -2px 0 var(--sec,var(--ink))}
.eyebrow::after{background:var(--sec,var(--line2));opacity:.6}
.pico{color:var(--sec,var(--ink))}

/* ===== 栏目头图 v2（Airtable 逐页学习 10-27：框架统一，每个栏目版式和颜色都不同） ===== */
.shero{display:none}
.hx{margin:0 0 26px;color:var(--ink,#111)}
.hxchip{display:inline-block;border:1px solid var(--line,#ddd);border-radius:6px;padding:4px 10px;font-size:12.5px;color:#444;background:#fff}
.hx h2{font:400 clamp(30px,3.4vw,48px)/1.1 var(--f-display);letter-spacing:-.02em;margin:14px 0 10px;text-wrap:balance;color:inherit}
.hx h2.bold{font-weight:700;letter-spacing:-.03em}
.hx p{margin:0 0 18px;font-size:16px;line-height:1.55;color:#555;max-width:60ch}
.hxq{display:flex;flex-wrap:wrap;gap:10px}
.hxq a{border:1.5px solid #111;border-radius:8px;padding:10px 18px;font-weight:500;font-size:14.5px;color:#111;text-decoration:none;background:#fff;transition:background .15s}
.hxq a:hover{background:#f2f2f2}.hxq a.hq1{background:#111;color:#fff}.hxq a.hq1:hover{background:#333}
/* 居中＋图案色带（平台页 / 应用搭建页） */
.hx-center{border-left:1px solid var(--line,#e5e5e5);border-right:1px solid var(--line,#e5e5e5)}
.hx-center .hxin{text-align:center;padding:30px 20px 26px;display:flex;flex-direction:column;align-items:center;border-bottom:1px solid var(--line,#e5e5e5)}
.hx-center .hxin p{margin-inline:auto}.hx-center .hxq{justify-content:center}
.hxband{height:170px;display:grid;place-items:center;position:relative;overflow:hidden}
.pat-checker{background:conic-gradient(var(--a) 25%,var(--b) 0 50%,var(--a) 0 75%,var(--b) 0) 0 0/44px 44px}
.pat-stripes{background:repeating-linear-gradient(0deg,var(--a) 0 22px,var(--b) 22px 44px)}
.hxcard{background:#fff;border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.18);padding:14px 18px;min-width:min(300px,80%);display:flex;flex-direction:column;gap:10px}
.hxct{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600}.hxct svg{width:18px;height:18px}
.hxbars{width:100%;height:60px}.hxbars rect{fill:#B8357F}.hxbars rect:last-child{fill:#7A1F5C}
.hxchips{display:flex;flex-wrap:wrap;gap:6px}.hxchips i{font-style:normal;font-size:12.5px;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,var(--k) 22%,#fff);color:#222;border:1px solid color-mix(in srgb,var(--k) 50%,#fff)}
/* 彩色格子（智能体页） */
.hx-cells{border:1px solid var(--line,#e5e5e5);border-radius:4px}
.hxl{padding:28px 30px 22px}
.hxgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));border-top:1px solid var(--line,#e5e5e5)}
.hxcell{display:flex;flex-direction:column;gap:10px;padding:0 0 18px;color:#111;text-decoration:none;border-right:1px solid var(--line,#e5e5e5);background:#FAFAF8;transition:background .15s}
.hxcell:last-child{border-right:0}.hxcell:hover{background:#F1F1EE}
.hxsw{height:92px;display:grid;place-items:center}.hxsw svg{width:34px;height:34px;color:#111;stroke-width:1.5}
.hxcell:first-child .hxsw svg{color:#fff}
.hxcell b{padding:0 18px;font-weight:500;font-size:16px}.hxmore{padding:0 18px;font-size:13px;color:#555}
.hxcell:hover .hxmore{color:#111}
/* 左右分栏＋指标块（报表页） */
.hx-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border:1px solid var(--line,#e5e5e5);border-top:4px solid var(--a)}
.hxviz{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:22px;border-left:1px solid var(--line,#e5e5e5);background:#FAFAF8;align-content:center}
.hxkpi{border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid rgba(0,0,0,.06)}
.hxkpi.wide{grid-column:1/-1}.hxkpi>svg:first-child{width:22px;height:22px;stroke-width:1.6}.hxkpi svg+svg{width:100%;height:40px}
/* 深色横幅＋彩色标签（AI Plays） */
.hxbn{color:#fff;border-radius:4px;padding:34px 34px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;align-items:center}
.hxbn h2{color:#fff;margin-bottom:0}.hxbn p{color:#E8E2F0;margin:0}.hxbn .hxchip{background:transparent;color:#fff;border-color:#ffffff66}
.hxpills{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.hxpills a{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;background:var(--k);color:#222;text-decoration:none;font-size:14.5px;transition:filter .15s}
.hxpills a:hover{filter:brightness(.95)}.hxpills svg{width:17px;height:17px}
/* 粗体标题＋几何条纹（更新页） */
.hx-bars{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:20px;align-items:center}
.hx-bars .hxl{padding:10px 0}.hxart{width:100%;height:230px;border-radius:4px;display:block}
/* 粗体大标题＋分类方块（模板页） */
.hx-tiles h2{font-size:clamp(36px,4.4vw,60px);margin-top:4px}
.hxtiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.hxtile{display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 10px;border-radius:16px;background:#F3F3F1;color:#111;text-decoration:none;font-weight:500;font-size:14.5px;text-align:center;transition:background .15s,transform .15s}
.hxtile:hover{background:#EAEAE6;transform:translateY(-2px)}.hxtile svg{width:34px;height:34px;stroke-width:1.7}
/* 深色快速开始＋插画（博客页） */
.hx-dark{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);background:#1B1D22;color:#fff;border-radius:4px;overflow:hidden}
.hx-dark h2{color:#fff}.hx-dark p{color:#DADADA}.hx-dark .hxchip{background:transparent;color:#fff;border-color:#ffffff55}
.hxk{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#BDBDBD;margin:4px 0 10px}
.hx-dark .hxq a{background:transparent;color:#fff;border-color:#fff}.hx-dark .hxq a:hover{background:#fff;color:#111}
.hxill{position:relative;min-height:240px;overflow:hidden}.hxill>svg{position:absolute;inset:0;width:100%;height:100%}
.hxill span{position:absolute;border-radius:50%;display:grid;place-items:center}.hxill span svg{width:44%;height:44%;color:#111;stroke-width:1.7}
.hxill .o1{width:110px;height:110px;left:10%;top:9%}.hxill .o2{width:160px;height:160px;right:-20px;top:50%;transform:translateY(-50%)}.hxill .o3{width:96px;height:96px;left:-20px;bottom:8%}
/* 总览页变色条（首页大面板动画） */
.hxcy{display:flex;align-items:center;gap:16px;margin:4px 0 18px;padding:16px 22px;border-radius:16px;color:#111;text-decoration:none;transition:background-color .8s ease,color .8s ease;min-height:62px}
.hxcy.dk{color:#fff}.hxcyn{font-size:12px;letter-spacing:.1em;text-transform:uppercase;border:1px solid currentColor;border-radius:6px;padding:3px 8px;white-space:nowrap;opacity:.8}
.hxcyt{flex:1;font-size:clamp(17px,1.6vw,22px);font-weight:400;background:#fff;color:#111;border-radius:10px;padding:10px 16px;box-shadow:0 4px 14px rgba(0,0,0,.08);min-width:0}
.hxcyt i{font-style:normal;display:inline-block;opacity:0;animation:hxw .45s ease forwards}
@keyframes hxw{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.hxcya{width:34px;height:34px;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;flex:none}
.hxcy.dk .hxcya{background:#fff;color:#111}
@media (prefers-reduced-motion:reduce){.hxcy{transition:none}.hxcyt i{animation:none;opacity:1}}
@media (max-width:760px){.hx-split,.hx-bars,.hx-dark,.hxbn{grid-template-columns:1fr}.hxviz{border-left:0;border-top:1px solid var(--line,#e5e5e5)}.hxl{padding:22px 18px}.hxbn{padding:24px 20px}.hxart{height:150px}.hxill{min-height:160px}.hxcell{border-right:0;border-bottom:1px solid var(--line,#e5e5e5)}.hxcyn{display:none}.hxband{height:140px}}
/* 去掉页脚“回到顶部”的蓝色（不要蓝色） */
.ftop{background:#2B2B2B!important;color:#fff!important}.ftop:hover{background:#3A3A3A!important}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .hxchip{background:transparent;color:#ddd}:root:not([data-theme="light"]) .hxq a{background:transparent;color:#eee;border-color:#eee}:root:not([data-theme="light"]) .hxq a.hq1{background:#eee;color:#111}:root:not([data-theme="light"]) .hx p{color:#bbb}:root:not([data-theme="light"]) .hxcell,:root:not([data-theme="light"]) .hxviz{background:#1E1E1E;color:#eee}:root:not([data-theme="light"]) .hxtile{background:#222;color:#eee}:root:not([data-theme="light"]) .hxkpi{background:#2a2a2a}}
@media (max-width:760px){.hxgrid{grid-template-columns:1fr 1fr}.hxsw{height:64px}.hxcell{border-right:1px solid var(--line,#e5e5e5)}.hxcell:nth-child(2n){border-right:0}
.hxq{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start!important;padding-bottom:4px;max-width:100%;scrollbar-width:none}.hxq a{white-space:nowrap;padding:8px 14px}.hx-center .hxin{align-items:stretch}.hx h2{font-size:28px}}

/* 顶部淡蓝色公告条（Freya 10-27，参照 Airtable 顶部条） */
:root{--ann-bg:#EEF4FE;--ann-ink:#1F2328;--ann-link:#1D4ED8}
:root[data-theme="dark"]{--ann-bg:#16233A;--ann-ink:#E6ECF5;--ann-link:#93B4FF}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--ann-bg:#16233A;--ann-ink:#E6ECF5;--ann-link:#93B4FF}}
.annbar{display:flex;align-items:center;justify-content:center;gap:12px;background:var(--ann-bg);color:var(--ann-ink);font-size:14px;line-height:1.4;padding:9px max(44px,env(safe-area-inset-right,0px)) 9px max(16px,env(safe-area-inset-left,0px));position:relative;text-align:center}
.annbar a{color:var(--ann-link);font-weight:600;text-decoration:none;margin-left:4px;white-space:nowrap}
.annbar a:hover{text-decoration:underline}
.annx{position:absolute;right:max(10px,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);background:none;border:0;color:var(--ann-ink);opacity:.55;font-size:18px;cursor:pointer;padding:4px 8px;border-radius:6px}
.annx:hover{opacity:1;background:rgba(0,0,0,.06)}
@media (max-width:640px){.annbar{font-size:13px;justify-content:flex-start;text-align:left}}

/* ===== 立项评审（Freya 10-27）：每个维度一页，Airtable 黑白＋每个维度一个柔和色 ===== */
.approve{max-width:1320px;margin:0 auto}
.aphead{display:flex;gap:18px;align-items:flex-start;margin:6px 0 18px}
.aphead .ptitle{flex:1;min-width:0}.aphead h1{font-size:34px;letter-spacing:-.02em;margin:2px 0 4px;text-wrap:balance}
.aphead .pmeta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.aphead .pmeta svg{width:13px;height:13px;vertical-align:-2px}
.apsteps{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--card)}
.apsteps li{display:flex;flex-direction:column;gap:3px;padding:14px 14px 12px;border-right:1px solid var(--line);position:relative;min-width:0}
.apsteps li:last-child{border-right:0}
.apsteps .aps-d{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--chip);color:var(--muted);font-weight:700;margin-bottom:4px}
.apsteps .aps-d svg{width:16px;height:16px}
.apsteps b{font-size:14px}.apsteps .aps-w{font-size:12px;color:var(--muted)}
.apsteps li.done .aps-d{background:#111;color:#fff}
.apsteps li.cur{background:#FFF8E6}.apsteps li.cur .aps-d{background:#F5B400;color:#111}
.apsteps li.cur::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:#F5B400}
.apnow{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-radius:12px;background:var(--chip);margin-bottom:16px;font-size:15px}
.apnow svg{width:18px;height:18px;flex:none;margin-top:2px}
.apnow.me{background:#FFF1D6;box-shadow:inset 3px 0 0 #F5B400}
.apgrid2{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
.apmain{min-width:0}
.apside{position:sticky;top:calc(env(safe-area-inset-top,0px) + 120px);display:flex;flex-direction:column;gap:14px}
.apcard{border:1px solid var(--line);border-radius:16px;padding:16px;background:var(--card)}
.apcard h3{display:flex;align-items:center;gap:8px;font-size:15px;margin:0 0 10px}.apcard h3 svg{width:16px;height:16px}.apcard h3 em{margin-left:auto;font-style:normal;font-weight:400;font-size:12px}
.aps-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.apbig{font-size:44px;font-weight:700;letter-spacing:-.03em;line-height:1}.apbig em{font-size:16px;font-style:normal;color:var(--muted);font-weight:500;margin-left:2px}
.apsug{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.apradar{width:100%;height:auto;display:block;margin:6px 0 0}
.aprd-l{font-size:12px;font-weight:600;font-family:var(--f-body)}
.aprd-k{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:2px 0 6px}
.aprd-k i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:5px;vertical-align:middle}
.aprd-k i.dash{background:repeating-linear-gradient(90deg,#9AA0A6 0 4px,transparent 4px 7px)}
.apred{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.apred li{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.35}
.apred .mk,.apbrief .mk,.apconds .mk{position:static;transform:none;border:0;box-shadow:none;width:22px;height:22px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--chip);color:var(--muted)}
.apred li.ok .mk,.apbrief .ok .mk,.apconds li.ok .mk{background:#DDF3E4;color:#166534}
.apred li.bad .mk,.apbrief .miss .mk{background:#FDE2E1;color:#B42318}
.appanel{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.appanel li{display:flex;align-items:center;gap:10px}.appanel li>span:nth-child(2){flex:1;min-width:0}
.okt{color:#166534}.warnt{color:#B45309}.badt{color:#B42318}
.apev{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.apev p{margin:4px 0 0;font-size:13.5px}
/* 九个问题卡片 */
.apgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.apdc{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;position:relative;transition:transform .15s,box-shadow .15s,border-color .15s}
.apdc:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.07);border-color:var(--dc)}
.apdc.on{border-color:var(--dc);box-shadow:inset 0 0 0 1px var(--dc)}
.apdc-i{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--dbg);color:var(--dc)}.apdc-i svg{width:20px;height:20px}
.apdc-q{font-size:17px;font-weight:650;line-height:1.25;letter-spacing:-.01em;text-wrap:balance}
.apdc-n{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.apdc-b,.aps-bar{display:flex;align-items:center;gap:10px}
.apdc-b .bar,.aps-bar .bar,.apsb-p .bar{flex:1;height:6px;border-radius:4px;background:var(--chip);overflow:hidden;display:block}
.apdc-b .bar i,.aps-bar .bar i{display:block;height:100%;background:var(--dc);border-radius:4px}
.apdc-b b{font-size:14px;min-width:24px;text-align:right}
.apdc-f{display:flex;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--muted);margin-top:auto}.apdc-f b{color:var(--ink)}.apdc-f svg{width:13px;height:13px;vertical-align:-2px}
.apsp{font-style:normal;color:#B45309;font-weight:600}
/* 维度页 */
.apdim,.apsubmit,.apsign{border:1px solid var(--line);border-radius:20px;padding:24px;background:var(--card)}
.apsubmit,.apsign{margin-bottom:18px}
.apd-h{display:flex;gap:16px;align-items:flex-start;margin-bottom:18px}
.apd-h h2{font-size:28px;letter-spacing:-.02em;margin:2px 0 4px;line-height:1.15;text-wrap:balance}.apd-h p{margin:0;max-width:62ch}
.apd-i{width:52px;height:52px;flex:none;border-radius:16px;display:grid;place-items:center;background:var(--dbg);color:var(--dc)}.apd-i svg{width:26px;height:26px}
.apd-sum{display:flex;gap:20px;align-items:center;padding:16px 18px;border-radius:16px;background:var(--dbg);margin-bottom:18px}
.apring .apr-n{font-size:26px;font-weight:700;fill:var(--ink);font-family:var(--f-body)}
.apd-t{margin-bottom:6px}.apd-s{font-size:16px;margin-bottom:4px}
.apsubs{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-direction:column}
.apsubs li{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(140px,1fr);gap:4px 18px;padding:14px 0;border-bottom:1px solid var(--line)}
.apsubs li:last-child{border-bottom:0}
.aps-q{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.aps-q b{font-size:15px;font-weight:600}
.aps-why{grid-column:1/-1;font-size:13.5px;color:var(--muted)}
.apsubs li.judge .aps-bar .bar{background:repeating-linear-gradient(90deg,var(--line) 0 6px,transparent 6px 10px)}
.apsubs li.judge .aps-bar b{color:var(--muted)}
.aps-bar b{font-size:14px;min-width:26px;text-align:right}
.apanch{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:20px}
.apanch>div{display:flex;gap:10px;align-items:flex-start;padding:12px;border-radius:12px;border:1px dashed var(--line);font-size:13.5px}
.apa-n,.apsc{width:26px;height:26px;flex:none;border-radius:8px;display:grid;place-items:center;font-weight:700;font-size:13px}
.s1{--sc:#B42318;--sb:#FDE2E1}.s2{--sc:#B45309;--sb:#FDEFD8}.s3{--sc:#555;--sb:#EEEEEC}.s4{--sc:#15803D;--sb:#DFF3E5}.s5{--sc:#0F5132;--sb:#C9EBD5}
.apa-n,.apsc{background:var(--sb);color:var(--sc)}
.apmine{padding:18px;border-radius:16px;background:var(--chip);margin-bottom:18px}
.apmine h3{margin:0 0 12px;font-size:16px;display:flex;gap:8px;align-items:center}
.apscale{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}
.apscale button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;font:inherit}
.apscale button b{font-size:20px}.apscale button span{font-size:12px;color:var(--muted)}
.apscale button:hover:not(:disabled){border-color:var(--sc)}
.apscale button.on{background:var(--sb);border-color:var(--sc);color:var(--sc);box-shadow:inset 0 0 0 1px var(--sc)}.apscale button.on span{color:var(--sc)}
.apscale button:disabled{opacity:.55;cursor:default}
.apmine textarea{width:100%}.apmine label em{font-style:normal;margin-left:6px}
.aprevs{margin-bottom:18px}.aprevs h3{font-size:16px;margin:0 0 10px}.aprevs h3 em{font-style:normal;font-weight:400;font-size:13px}
.aprv{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.aprv .muted{flex:1;min-width:0}
.aphide{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:13.5px;padding:12px 14px;border-radius:12px;background:var(--chip)}.aphide svg{width:16px;height:16px}
.apth{border-top:1px solid var(--line);padding-top:16px;margin-bottom:12px}.apth h3{display:flex;gap:8px;align-items:center;font-size:16px;margin:0 0 10px}.apth h3 svg{width:16px;height:16px}
.apposts{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:12px}
.apposts li{display:flex;gap:10px}.apposts p{margin:2px 0 0}
.apat{color:#7C3AED;font-weight:600}
.apout{padding:10px 12px;border-radius:12px;background:#E9F6EE;font-size:14px;margin-bottom:10px}.apout svg{width:14px;height:14px;vertical-align:-2px}
.apform textarea{width:100%}
.apfrow{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center;margin-top:8px}
.apmention{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted)}
.chip{display:inline-flex;gap:6px;align-items:center;padding:5px 10px;border:1px solid var(--line);border-radius:999px;font-size:13px;cursor:pointer;background:var(--card)}
.chip input{margin:0}.chip:has(input:checked){border-color:#111;background:#111;color:#fff}
.apnav{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px;margin-top:8px;font-size:14px}
.apnav a{color:var(--ink);font-weight:600;text-decoration:none}.apnav a:hover{text-decoration:underline}
/* 提交、签字、跟进 */
.apbrief{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-bottom:8px}
.apbrief>div{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;padding:10px 12px;border-radius:12px;border:1px solid var(--line)}
.apbrief>div span:last-child{grid-column:2;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.apbrief .miss{border-color:#F7C8C5;background:#FFF6F5}
.apsubf{margin-top:16px;display:flex;flex-direction:column;gap:12px}.appick{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.apdecs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.apdecc{display:flex;flex-direction:column;gap:4px;padding:14px;border-radius:14px;border:1px solid var(--line);cursor:pointer;position:relative}
.apdecc input{position:absolute;opacity:0}.apdecc b{font-size:16px}
.apdecc:has(input:checked){border-color:#111;box-shadow:inset 0 0 0 1px #111;background:var(--chip)}
.apdecc:has(input:disabled){opacity:.45;cursor:not-allowed}
.apdecc.ok b{color:#166534}.apdecc.gold b{color:#B45309}.apdecc.bad b{color:#B42318}
.apdecc em{position:absolute;top:10px;right:10px;font-style:normal}
.apcrow{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:8px;margin:6px 0}
.apfollow{border-radius:20px;padding:22px;margin-bottom:18px;border:1px solid var(--line);background:var(--card)}
.apfollow.ok{background:#F1FAF4;border-color:#BFE3CB}.apfollow.gold{background:#FFF8EA;border-color:#F3D9A4}.apfollow.bad{background:#FFF5F4;border-color:#F4C6C2}
.apf-h{display:flex;gap:16px;align-items:flex-start}.apf-h p{margin:6px 0 0}
.apf-d{font-size:22px;font-weight:700;letter-spacing:-.02em;padding:8px 14px;border-radius:12px;background:var(--card);border:1px solid var(--line);white-space:nowrap}
.apconds{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:10px}
.apconds li{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:12px;background:var(--card);border:1px solid var(--line)}.apconds li>div{flex:1;min-width:0}
.apcdone{display:flex;gap:6px}.apcdone input{min-width:0;width:180px}
.apsbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:12px 16px;border-radius:14px;border:1px solid var(--line);margin-bottom:16px;background:var(--card)}
.apsb-p{display:flex;gap:10px;align-items:center;flex:1;min-width:220px}.apsb-p .bar i{display:block;height:100%;background:#111;border-radius:4px}
.apagenda{border:1px solid #F3D9A4;background:#FFF8EA;border-radius:16px;padding:14px 16px;margin-bottom:14px}.apagenda h3{display:flex;gap:8px;align-items:center;margin:0 0 8px;font-size:15px}.apagenda h3 svg{width:16px;height:16px}
.apagenda a{display:flex;gap:10px;align-items:center;padding:8px 0;color:var(--ink);text-decoration:none;border-top:1px solid #F3E2BD}.apagenda a:first-of-type{border-top:0}
.apdot{width:10px;height:10px;border-radius:50%;flex:none}
.apsec{margin-top:16px;border:1px solid var(--line);border-radius:14px;padding:12px 16px}.apsec summary{cursor:pointer;font-weight:600;display:flex;gap:8px;align-items:center}.apsec summary svg{width:16px;height:16px}
.aphow{margin:10px 0}
.apgate .apg-s{font-size:13.5px;margin:4px 0 8px}.apgate .btn{width:100%;justify-content:center;margin-top:10px}
@media (max-width:1000px){.apgrid2{grid-template-columns:1fr}.apside{position:static}.apsteps{grid-template-columns:repeat(3,1fr)}.apsteps li:nth-child(3){border-right:0}.apsteps li:nth-child(-n+3){border-bottom:1px solid var(--line)}}
@media (max-width:640px){.aphead{flex-wrap:wrap}.aphead h1{font-size:26px}.apsteps{grid-template-columns:repeat(2,1fr)}.apsteps li{border-right:0;border-bottom:1px solid var(--line)}.apsteps li:nth-child(odd){border-right:1px solid var(--line)}
  .apdim,.apsubmit,.apsign{padding:16px}.apd-h h2{font-size:22px}.apsubs li{grid-template-columns:1fr}.apanch{grid-template-columns:1fr}.apdecs{grid-template-columns:1fr 1fr}.apcrow{grid-template-columns:1fr}.apscale button span{display:none}.apd-sum{flex-wrap:wrap}}
:root[data-theme="dark"] .apsteps li.cur,:root[data-theme="dark"] .apnow.me{background:#3A2F12}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .apsteps li.cur,:root:not([data-theme="light"]) .apnow.me{background:#3A2F12}}

/* 门店试售页（10-27 重做：看板，不是表单） */
.sthead,.pghead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:8px 0 18px}.sthead h1,.pghead h1{font-size:36px;letter-spacing:-.02em;margin:2px 0 4px}.sthead p,.pghead p{margin:0;max-width:64ch}
.stkpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:22px}
.stkpi{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--card);position:relative;overflow:hidden}
.stkpi::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--kc)}
.stki{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--kc);background:color-mix(in srgb,var(--kc) 12%,transparent)}.stki svg{width:18px;height:18px}
.stkpi b{font-size:30px;letter-spacing:-.02em;line-height:1.1}.stkpi>span:last-child{font-size:13px;color:var(--muted)}
.sth2{font-size:22px;letter-spacing:-.01em;margin:26px 0 12px}
.stgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.stcard{border:1px solid var(--line);border-radius:18px;padding:18px;background:var(--card);display:flex;flex-direction:column;gap:14px}
.stcard header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.stcard h3{margin:0 0 2px;font-size:17px}
.stm{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stk{display:flex;align-items:baseline;gap:6px;margin-bottom:4px}.stk b{font-size:24px;letter-spacing:-.02em}.stk span{font-size:12px;color:var(--muted)}
.stfb{display:flex;flex-direction:column;gap:6px;border-top:1px solid var(--line);padding-top:12px}.stfb span{font-size:13.5px}.stfb em{font-style:normal;color:var(--muted);font-size:12px}
.stnotes{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.stnote{padding:14px;border-radius:16px;background:var(--nb);display:flex;flex-direction:column;gap:6px}.stnote p{margin:0;font-size:15px}
.stn-t{display:inline-flex;gap:6px;align-items:center;font-size:12px;font-weight:700;color:var(--nc);text-transform:uppercase;letter-spacing:.05em}.stn-t svg{width:14px;height:14px}
.stform{border:1px solid var(--line);border-radius:20px;padding:20px;background:var(--card);margin-bottom:18px;box-shadow:0 10px 30px rgba(0,0,0,.05)}
.stf-h{display:flex;justify-content:space-between;align-items:center}.stf-h h2{display:flex;gap:8px;align-items:center;font-size:20px;margin:0 0 14px}.stf-h svg{width:20px;height:20px}
.stf-g{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.stf-c{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:14px;background:var(--chip)}.stf-c.wide{grid-column:span 2}
.stf-c span,.stf-n span{display:flex;gap:6px;align-items:center;font-size:12.5px;font-weight:600;color:var(--muted)}.stf-c svg,.stf-n svg{width:14px;height:14px}
.stf-c input{border:0;background:var(--card);border-radius:10px}
.stf-n{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stf-n label{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:14px;background:var(--nb)}.stf-n span{color:var(--nc)}.stf-n textarea{border:0;border-radius:10px;background:var(--card)}
.stf-f{display:flex;gap:12px;align-items:center;justify-content:flex-end;margin-top:14px}.stf-f .muted{margin-right:auto}
.empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:40px;border:1px dashed var(--line);border-radius:18px;color:var(--muted)}.empty svg{width:36px;height:36px}
@media (max-width:900px){.stkpis{grid-template-columns:repeat(2,1fr)}.stf-g{grid-template-columns:1fr 1fr}.stf-n{grid-template-columns:1fr}}
@media (max-width:640px){.sthead h1,.pghead h1{font-size:28px}.stm{grid-template-columns:1fr}.stf-c.wide{grid-column:span 2}}
.stcard svg.stsp{width:100%!important;height:46px!important;display:block}.stk{flex-wrap:wrap}.stk b{white-space:nowrap}.stn-n{font-style:normal;font-size:13px;color:var(--nc);font-weight:700}

/* 阶段页：七步旅程条＋这一步做什么（10-27 重做） */
.sjour{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin:4px 0 14px}
.sj{display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:14px;text-decoration:none;opacity:.6;transition:opacity .15s,transform .15s;border:1px solid transparent}
.sj:hover{opacity:1;transform:translateY(-1px)}.sj.on{opacity:1;border-color:currentColor;box-shadow:0 6px 18px rgba(0,0,0,.06)}.sj.past{opacity:.8}
.sj-i svg{width:18px;height:18px}.sj b{font-size:24px;letter-spacing:-.02em;color:var(--ink)}.sj span:last-child{font-size:12.5px;font-weight:600}
.sgate{display:flex;gap:14px;align-items:center;padding:16px 18px;border-radius:16px;margin-bottom:14px}
.sgate p{margin:2px 0 0;color:var(--ink);font-size:15px}.sg-i{width:40px;height:40px;border-radius:12px;background:var(--card);display:grid;place-items:center;flex:none}.sg-i svg{width:20px;height:20px}
.sgate>div{flex:1;min-width:0}.sg-g{font-weight:700;font-size:13.5px;padding:8px 12px;border-radius:999px;background:var(--card);white-space:nowrap}
.srow .lthumb.cup{width:84px;height:84px;border-radius:18px;display:grid;place-items:center}
@media (max-width:900px){.sjour{grid-template-columns:repeat(4,1fr)}.sgate{flex-wrap:wrap}}
@media (max-width:520px){.sjour{grid-template-columns:repeat(3,1fr)}.srow .lthumb.cup{width:64px;height:64px}}
.srow .lthumb.cup svg{width:64px!important;height:64px!important}

/* 感官评价首页（10-27 重做） */
.sn2{display:grid;grid-template-columns:1fr 1.2fr;gap:16px;margin-bottom:8px}
.snjoin{background:#111;color:#fff;border-radius:22px;padding:26px;display:flex;flex-direction:column;gap:8px}
.snjoin .eyebrow{color:#bbb}.snjoin h2{font-size:28px;margin:0;color:#fff}.snjoin p{color:#ccc;margin:0 0 8px;max-width:44ch}
.snj-row{display:flex;gap:10px;margin-top:auto}.snj-row input{flex:1;min-width:0;font-size:20px;letter-spacing:.08em;font-family:var(--f-mono);background:#1E1E1E;border:1px solid #333;color:#fff;border-radius:14px;padding:12px 14px}
.snj-row button{background:#fff;color:#111;border-radius:14px;white-space:nowrap}.snj-row button svg{width:16px;height:16px}
.snhost{position:relative;border-radius:22px;padding:26px;background:linear-gradient(135deg,#F3EEFF 0%,#E6F6F2 100%);display:flex;flex-direction:column;gap:8px;overflow:hidden}
.snhost h2{font-size:28px;margin:0}.snhost .btn{align-self:flex-start;margin-top:6px}
.snh-steps{margin:4px 0 6px;padding-left:20px;display:flex;flex-direction:column;gap:4px;max-width:46ch;font-size:14.5px}
.snh-art{position:absolute;right:22px;top:20px;display:flex;gap:10px}
.snh-cup{display:flex;flex-direction:column;align-items:center;gap:2px}.snh-cup svg{width:38px;height:50px}.snh-cup b{font-family:var(--f-mono);font-size:13px}
.snh-cup.c0{color:#7C3AED}.snh-cup.c1{color:#0F766E}.snh-cup.c2{color:#C2410C}
.sngrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-bottom:16px}
.sncard{display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:18px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s}
.sncard:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.07);border-color:var(--mc)}
.snc-h{display:flex;gap:10px;align-items:center}.snc-h .eyebrow{flex:1;min-width:0}.snc-h .eyebrow::after{display:none}
.snc-i{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--mb);color:var(--mc)}.snc-i svg{width:18px;height:18px}
.sncard h3{margin:0;font-size:18px}
.snc-cups{display:flex;gap:8px;flex-wrap:wrap}.snc-cup{display:inline-flex;gap:6px;align-items:center;padding:5px 10px;border-radius:10px;background:var(--mb);color:var(--mc);font-family:var(--f-mono);font-size:13px}.snc-cup em{font-style:normal;font-family:var(--f-body);font-size:12px}
.snc-p{display:flex;flex-direction:column;gap:6px}.snc-p .bar{height:6px;border-radius:4px;background:var(--chip);overflow:hidden;display:block}.snc-p .bar i{display:block;height:100%;background:var(--mc)}
@media (max-width:900px){.sn2{grid-template-columns:1fr}.snh-art{position:static;margin-bottom:6px}}

/* 下载记录（10-27 重做） */
.dlbar2{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--card);margin-bottom:18px}
.dlbar2 .eyebrow::after{display:none}.dlbar2 label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.dlbar2 input{padding:6px 8px}
.dlq{display:flex;gap:6px;flex-wrap:wrap;margin-right:auto}
.chipb{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}.chipb.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.dlsec{margin-bottom:18px}.dlsec h2{font-size:15px;display:flex;gap:8px;align-items:center;margin:0 0 10px}.dlsec h2::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--mc)}
.dlgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.dlt{display:flex;gap:12px;align-items:flex-start;padding:16px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;transition:transform .15s,box-shadow .15s,border-color .15s}
.dlt:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.06);border-color:var(--mc)}
.dlt-i{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--mb);color:var(--mc)}.dlt-i svg{width:19px;height:19px}
.dlt-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.dlt-f{align-self:flex-start;margin-top:6px;display:inline-flex;gap:4px;align-items:center;font-size:12px;font-weight:600;color:var(--mc);padding:4px 8px;border-radius:8px;background:var(--mb)}.dlt-f svg{width:13px;height:13px}

/* 消费者试喝（10-27 重做） */
.cthow{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:6px 0 20px}
.cth{position:relative;padding:18px;border-radius:18px;background:var(--s5);display:flex;flex-direction:column;gap:6px}
.cth b{font-size:15.5px}.cth p{margin:0}
.cth-n{position:absolute;right:16px;top:12px;font-size:34px;font-weight:700;color:var(--s5i);opacity:.35}
.cth-i{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--card);color:var(--s5i);flex:none}.cth-i svg{width:18px;height:18px}
.ctcard summary{display:flex;gap:12px;align-items:center;cursor:pointer}
.ctempty{display:flex;gap:28px;align-items:center;padding:28px;border:1px dashed var(--line);border-radius:20px}
.ctempty h3{margin:0 0 6px}.ctempty p{margin:0 0 12px;max-width:52ch}
.ctscale{display:flex;align-items:flex-end;gap:5px;height:70px;flex:none}.ctscale i{width:12px;border-radius:4px 4px 2px 2px;background:var(--chip)}.ctscale i.hi{background:var(--s5i)}
@media (max-width:800px){.cthow{grid-template-columns:1fr}.ctempty{flex-direction:column;align-items:flex-start}}

/* 七个关口评审的导航（每个关口一页，10-27） */
.apgates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:14px 0 4px}
.apg{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-decoration:none;min-width:0;position:relative;transition:border-color .15s,transform .15s}
a.apg:hover{border-color:var(--ink);transform:translateY(-1px)}
.apg-n{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--chip);color:var(--muted)}
.apg-t{font-size:12.5px;font-weight:600;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apg-s{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.apg.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.apg.on .apg-n{background:var(--ink);color:var(--bg)}
.apg.dec-go .apg-n,.apg.dec-conditional .apg-n{background:#1F7A55;color:#fff}.apg.dec-revise .apg-n,.apg.dec-hold .apg-n{background:#B7791F;color:#fff}.apg.dec-drop .apg-n{background:#B3322A;color:#fff}
.apg.off{opacity:.45;border-style:dashed}
@media (max-width:900px){.apgates{grid-template-columns:repeat(7,minmax(92px,1fr));overflow-x:auto;padding-bottom:4px}}
.appartn{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 4px}.appartn .chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px 5px 5px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:13.5px}

/* ---------- 今日市场要点：新闻卡片，不是列表 ---------- */
.bfhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}.bfhead h1{margin:2px 0 4px}
.bfday{display:flex;gap:8px}
.bfhl{font:400 22px/1.35 var(--f-display);padding:18px 22px;border-left:4px solid var(--ink);background:var(--warm);border-radius:var(--r-s);margin-bottom:18px}
.bfadv{background:var(--ink);color:var(--bg);border-radius:var(--r);padding:20px 24px;margin-bottom:20px}
.bfadv h2{display:flex;align-items:center;gap:8px;font-size:16px;margin:0 0 10px}.bfadv h2 svg{width:20px;height:20px}
.bfadv ol{margin:0;padding:0;list-style:none;counter-reset:a;display:grid;gap:10px}
.bfadv li{counter-increment:a;display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start}
.bfadv li::before{content:counter(a);width:26px;height:26px;border-radius:50%;border:1.5px solid currentColor;display:grid;place-items:center;font-size:13px;font-weight:700}
.bfjump{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:24px}
.bfjump a{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none;background:var(--card);transition:transform .15s,box-shadow .15s,border-color .15s}
.bfjump a:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--ink)}
.bfjump a svg{width:18px;height:18px;flex:none}.bfjump a span{flex:1;font-size:14px;line-height:1.25}.bfjump a b{font-size:20px}
.bfjump a.off{opacity:.45}
.bfsec{margin-bottom:28px;scroll-margin-top:150px}.bfsec h2{display:flex;align-items:center;gap:8px;font-size:18px;margin:0 0 12px}.bfsec h2 svg{width:20px;height:20px}
.bfgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.bfc{display:flex;flex-direction:column;gap:8px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--card);min-width:0;transition:transform .15s,box-shadow .15s}
.bfc:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.bfc p{margin:0;font-size:14.5px;line-height:1.55;flex:1}
.bfc-top{display:flex;gap:6px;flex-wrap:wrap}
.bfchip{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:2px 9px;border-radius:999px;background:var(--soft);color:var(--ink)}.bfchip svg{width:12px;height:12px}
.bfchip.k{background:transparent;border:1px solid var(--line2);color:var(--muted)}
.bfc-br{display:flex;align-items:center;gap:8px}.bfav{width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-size:13px;font-weight:700;flex:none}
.bfsrc{font-size:13px;color:var(--ink);font-weight:600;text-decoration:none;align-self:flex-start;border-bottom:1px solid var(--line2)}.bfsrc:hover{border-color:var(--ink)}
.bfnone{padding:18px;border:1px dashed var(--line2);border-radius:12px;color:var(--muted);text-align:center}
.bfsplit{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media (max-width:800px){.bfsplit{grid-template-columns:1fr}}
.bfpx,.bfmv{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.bfpx li{display:flex;gap:10px;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:10px}
.bfar{font-size:12px}.bfar.up{color:var(--bad)}.bfar.dn{color:var(--ok)}
.bfmv li{display:grid;grid-template-columns:minmax(0,1.3fr) 1fr auto;gap:12px;align-items:center;padding:10px 14px;border:1px solid var(--line);border-radius:10px}
.bfmv li div:first-child{display:flex;flex-direction:column;line-height:1.3}.bfmv .muted{font-size:12.5px}
.bfbar{height:8px;border-radius:99px;background:var(--soft);overflow:hidden}.bfbar i{display:block;height:100%;background:var(--ink);border-radius:99px}
.bfsc{font-variant-numeric:tabular-nums}
.bfadv h2{color:inherit}

/* ---------- 团队复盘：人物卡、来源条、阶段漏斗 ---------- */
.tmsec{margin:28px 0}.tmsec h2{display:flex;align-items:center;gap:8px;font-size:18px;margin:0 0 12px}.tmsec h2 svg{width:20px;height:20px}
.tmppl{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}
.tmp{border:1px solid var(--line);border-radius:16px;padding:18px;background:var(--card);display:flex;flex-direction:column;gap:14px;transition:box-shadow .15s,transform .15s}.tmp:hover{box-shadow:var(--shadow);transform:translateY(-2px)}
.tmp-h{display:flex;gap:10px;align-items:center}.tmp-h>div{flex:1;display:flex;flex-direction:column;line-height:1.3;min-width:0}.tmp-h .muted{font-size:12.5px}.tmp-h .bfav{width:38px;height:38px;font-size:16px}
.tmrings{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.tmring{--v:0;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.tmring b{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:14px;background:radial-gradient(closest-side,var(--card) 76%,transparent 78%),conic-gradient(var(--ink) calc(var(--v)*1%),var(--soft) 0)}
.tmring span{font-size:12px;color:var(--muted);line-height:1.25}
.tmfoot{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px}.tmfoot b{color:var(--ink)}
.tmbars{display:grid;gap:6px}.tmsub{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-top:10px}
.tmbar{display:grid;grid-template-columns:minmax(0,1.2fr) 1.4fr auto;gap:12px;align-items:center;padding:8px 10px;border-radius:10px;color:var(--ink);text-decoration:none}a.tmbar[href]:hover{background:var(--warm)}
.tmbn{font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tmbv{font-size:13px;white-space:nowrap}
.tmtrack{position:relative;height:10px;border-radius:99px;background:var(--soft);overflow:hidden}.tmtrack i{position:absolute;inset:0 auto 0 0;background:var(--ink);border-radius:99px;transition:width .6s}
.tmtrack.big{height:26px;border-radius:8px}.tmtrack.big i{border-radius:8px}.tmtrack.big em{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-style:normal;font-weight:700;font-size:13px;color:var(--bg);mix-blend-mode:difference}
.tmnote{font-size:12.5px;margin:8px 0 0}
.tmfun{display:grid;gap:8px}.tmst{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none;transition:border-color .15s}.tmst:hover{border-color:var(--ink)}
.tmst-h{display:flex;align-items:center;gap:8px}.tmst-h b{flex:1;font-size:14px}.tmst-h .muted{font-size:12.5px}
.tmn{width:22px;height:22px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-size:12px;font-weight:700}
.tmdec{display:flex;gap:6px;flex-wrap:wrap}.tmd{font-size:12px;padding:1px 8px;border-radius:99px;background:var(--soft)}.tmd.go{background:var(--ok-bg);color:var(--ok)}.tmd.drop{background:var(--bad-bg);color:var(--bad)}.tmd.rev{background:var(--warn-bg);color:var(--warn)}.tmd.now{border:1px solid var(--line2);background:transparent}

/* ---------- 系统页：状态卡、任务按钮、时间线、品牌卡 ---------- */
.admrun{display:flex;gap:18px;align-items:center;padding:22px 24px;border-radius:var(--r);background:var(--ink);color:var(--bg);margin:8px 0 14px}
.admrun h2{margin:4px 0 8px;font-size:22px;color:inherit}.admrun .eyebrow{color:inherit;opacity:.7}
.admpulse{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(127,208,160,.18);flex:none}.admpulse i{width:14px;height:14px;border-radius:50%;background:#7FD0A0;animation:admp 1.8s infinite}
.admrun.bad .admpulse{background:rgba(242,150,142,.2)}.admrun.bad .admpulse i{background:#F2968E}
@keyframes admp{0%{box-shadow:0 0 0 0 rgba(127,208,160,.6)}70%{box-shadow:0 0 0 14px rgba(127,208,160,0)}100%{box-shadow:0 0 0 0 rgba(127,208,160,0)}}
.admks{display:flex;gap:8px;flex-wrap:wrap}.admk{font-size:12.5px;padding:2px 10px;border-radius:99px;border:1px solid currentColor;opacity:.85}
.admjobs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.admjob{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);transition:transform .15s,box-shadow .15s,border-color .15s}
.admjob:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--ink)}.admjob:focus-visible{outline:2px solid var(--ink)}.admjob svg{width:22px;height:22px;margin-bottom:6px}.admjob span{font-size:13px;color:var(--muted)}
.admtl{list-style:none;margin:0;padding:0 0 0 8px;border-left:2px solid var(--line)}
.admtl li{position:relative;padding:6px 0 12px 18px;display:flex;flex-direction:column;gap:6px}.admtl li>i{position:absolute;left:-7px;top:11px;width:12px;height:12px;border-radius:50%;background:var(--ok);border:2px solid var(--bg)}
.admtl li.bad>i{background:var(--bad)}.admtl li.run>i{background:var(--warn)}.admtl .admk{border-color:var(--line2);color:var(--muted)}
.admbr{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin:8px 0 16px}
.admb{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--card);display:flex;flex-direction:column;gap:10px;transition:opacity .2s}.admb.off{opacity:.55}
.admb-h{display:flex;align-items:center;gap:10px}.admb-h b{flex:1}
.admkw{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}.admkw input{font-size:13.5px;padding:7px 10px}
.sw{position:relative;width:40px;height:22px;flex:none;cursor:pointer}.sw input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.sw span{position:absolute;inset:0;border-radius:99px;background:var(--line2);transition:background .2s}.sw span::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:var(--card);transition:transform .2s}
.sw input:checked+span{background:var(--ink)}.sw input:checked+span::after{transform:translateX(18px)}.sw input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}
.admadd{display:grid;grid-template-columns:auto 1fr 1fr 1fr auto;gap:10px;align-items:center;padding:14px;border:1.5px dashed var(--line2);border-radius:14px}
.admadd-t{display:flex;align-items:center;gap:6px;white-space:nowrap}.admadd-t svg{width:18px;height:18px}
@media (max-width:800px){.admadd{grid-template-columns:1fr}}

/* ---------- 新品页·测试：门店每天一张小卡、试喝和复盘用数字卡 ---------- */
.ptdays{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:14px}
.ptday{display:flex;flex-direction:column;gap:2px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.ptday.bad{border-color:var(--bad)}
.ptday .ptd{font-size:12px;color:var(--muted);font-weight:600}.ptday>b{font-size:24px;line-height:1.1}.ptday .muted{font-size:12.5px}.ptday .tag{align-self:flex-start;margin-top:4px}
.ptday q,.ptm q{font-size:12.5px;color:var(--ink);margin-top:6px;quotes:"“" "”";line-height:1.4}
.ptm{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin-bottom:12px;display:flex;flex-direction:column;gap:10px}
.ptm-h{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.ptm-h .muted{font-size:12.5px}
.ptm-k{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px}.ptm-k div{display:flex;flex-direction:column;padding:8px 10px;border-radius:10px;background:var(--warm)}
.ptm-k b{font-size:20px;line-height:1.2}.ptm-k span{font-size:12px;color:var(--muted)}

/* ---------- 手机导航：一级菜单不再藏起来，改成横向滑动条；子菜单同样；侧边菜单按组收起 ---------- */
.smtog{all:unset;box-sizing:border-box;width:100%;display:flex;justify-content:space-between;align-items:center;cursor:pointer;font:inherit}
.smtog i{font-style:normal;font-size:12px;color:var(--muted);display:none;transition:transform .2s}
@media (max-width:900px){
  header#top nav#nav{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;overflow-x:auto;max-height:none;scrollbar-width:none;padding-block:4px;padding-left:max(8px,env(safe-area-inset-left,0px));padding-right:max(8px,env(safe-area-inset-right,0px));-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent)}
  header#top nav#nav::-webkit-scrollbar,.subbar::-webkit-scrollbar{display:none}
  header#top nav#nav>a{flex:none;white-space:nowrap;font-size:14px;padding:8px 10px}
  header#top nav#nav>.allbtn,header#top nav#nav .sep{display:none}
  .subbar{-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent);padding-right:40px}
  .subbar b{display:none}.subbar a{flex:none}
  .smtog i{display:inline}
  .smsec:not(.open) .smbody{display:none}
  .smsec.open .smtog i{transform:rotate(180deg)}
}

/* 手机：顶部“功能导航”按钮带文字；搜索范围只显示筛选图标（Freya 10-27：两个“全部”混淆） */
.gsc{display:flex;align-items:stretch;position:relative;flex:none}.gscic{display:none}
#menuBtn .mbt{display:none}
@media (max-width:900px){
  #menuBtn{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:700;padding:6px 12px 6px 8px;border:1.5px solid var(--ink);border-radius:999px;color:var(--ink)}
  #menuBtn .mbi{font-size:18px;line-height:1}#menuBtn .mbt{display:inline}
  .hbar .brand .tg{display:none}
}
/* 电脑也一样（Freya 10-27：“这里是不是有点重复”） */
.gsc{width:46px;background:var(--warm);border-right:1px solid var(--line)}
.gscic{display:block;width:20px;height:20px;margin:auto;color:var(--ink);pointer-events:none}
.gsc select{position:absolute;inset:0;opacity:0;width:100%;padding:0;border:0;cursor:pointer}
button.primary,.btn.primary{background:var(--ink);border-color:var(--ink);color:var(--bg)}button.primary .zh,.btn.primary .zh{color:inherit}

/* ---------- 账号与安全 ---------- */
.secgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;align-items:start}
.secgrid h3,.tmsec h2{display:flex;align-items:center;gap:8px}.secgrid h3 svg{width:18px;height:18px}
.secnote{background:var(--warn-bg);color:var(--warn);padding:8px 12px;border-radius:10px}
.pwrules{list-style:none;padding:0;margin:6px 0 10px;display:flex;gap:8px;flex-wrap:wrap}.pwrules li{font-size:12.5px;padding:2px 10px;border-radius:99px;background:var(--soft);color:var(--muted)}
.pwrules li::before{content:"○ "}.pwrules li.ok{background:var(--ok-bg);color:var(--ok)}.pwrules li.ok::before{content:"✓ "}
.secdev{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:8px}.secdev li{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px}.secdev .muted{flex-basis:100%;font-size:12.5px}
.sectiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:12px}.sectiles div{display:flex;flex-direction:column;padding:12px 14px;border:1px solid var(--line);border-radius:12px}
.sectiles b{font-size:24px}.sectiles span{font-size:12.5px;color:var(--muted)}.sectiles .warn{border-color:var(--warn);background:var(--warn-bg)}
.seclock{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--warn);border-radius:10px;margin-bottom:8px}.seclock svg{width:16px;height:16px}.seclock .muted{flex:1}

/* 周报 */
.rplist{display:grid;gap:12px;margin-top:16px}
.rpcard{display:flex;align-items:center;gap:20px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:var(--card,var(--bg));color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s}
.rpcard:hover{border-color:var(--ink);box-shadow:0 6px 18px rgba(0,0,0,.06);transform:translateY(-1px)}
.rpcard.new{border-color:var(--ink)}
.rpwk{flex:none;width:72px;height:72px;border-radius:12px;background:var(--soft);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.rpwk b{font-size:28px;line-height:1;color:var(--ink);letter-spacing:0}
.rpcard.new .rpwk{background:var(--ink);color:var(--bg)}.rpcard.new .rpwk b{color:var(--bg)}
.rpbody{flex:1;min-width:0;display:grid;gap:6px}.rpbody h3{margin:0;font-size:17px}
.rpcols{display:flex;flex-wrap:wrap;gap:6px}.rpcols span{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--soft)}
.rpgo{flex:none;font-weight:600}
@media (max-width:600px){.rpcard{gap:12px;padding:14px}.rpwk{width:56px;height:56px}.rpwk b{font-size:22px}.rpgo{display:none}}
.rpbody>.tag{justify-self:start}

.fresh{display:flex;align-items:center;gap:8px;margin:4px 0 12px;font-size:13px;color:var(--muted)}.fresh svg{width:16px;height:16px}.fresh .link{margin-left:auto}
#mktbox details{margin-top:10px}
/* 今日行业产品动向：新品动向卡，六个问题 */
.nd-toc{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.nd-toc a{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-size:13px;background:var(--card)}
.nd-toc a:hover{border-color:var(--line2)}
.nd-toc .tag{margin:0}
.nd-qkey{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:13px;color:var(--muted);margin:6px 0 4px}
.nd-qkey b{color:var(--ink)}
.qn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--ink);color:var(--bg);font:600 12px/1 var(--f-body);margin-right:6px;flex:none}
.card.nd{padding:22px;scroll-margin-top:110px}
.card.nd h2{margin:6px 0 2px;font-size:22px;text-wrap:balance}
.nd-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.nd-top .tag{margin:0}
.ndg{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:0 28px;margin-top:8px}
.ndq{border-top:1px solid var(--line);padding:14px 0 6px;min-width:0}
.ndq h3{display:flex;align-items:center;font-size:14px;margin:0 0 8px}
.ndq p{margin:6px 0}
.nd-drinks,.nd-list,.nd-rev{list-style:none;padding:0;margin:6px 0}
.nd-drinks li{padding:5px 0;border-bottom:1px dashed var(--line);font-size:14px}
.nd-drinks li:last-child{border-bottom:0}
.nd-drinks a{text-decoration:none}
.nd-list li{padding:4px 0;font-size:14px}
.nd-rev li{padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.nd-rev li:last-child{border-bottom:0}
.nd-el{display:flex;flex-wrap:wrap}
.nd-hooks{display:grid;gap:6px;margin:8px 0}
.hk{display:grid;grid-template-columns:minmax(0,9em) 1fr 2em;align-items:center;gap:8px;font-size:13px}
.hk i{display:block;height:8px;border-radius:999px;background:var(--accent);min-width:6px}
.hk b{text-align:right;font-weight:600}
.nd-big{font-size:14px}
.nd-big b{font:600 28px/1 var(--f-body);margin-right:4px}
.lkbar{display:flex;height:22px;border-radius:999px;overflow:hidden;margin:8px 0;gap:2px}
.lk{display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;min-width:22px}
.lk.pos{background:var(--ok-bg);color:var(--ok)}.lk.mixed{background:var(--warn-bg);color:var(--warn)}.lk.neg{background:var(--bad-bg);color:var(--bad)}
.nd-solo h3{margin:6px 0}
@media (min-width:821px) and (max-width:1440px){nav#nav>a,nav#nav>.allbtn{padding:8px 6px;font-size:13px}nav#nav{overflow-x:auto}}
.nd-toc .tag{white-space:nowrap}
/* 导航栏背景（Freya 10-27“导航栏有一点不清晰…加一点背景色”；参考 Trace One 主色深蓝绿，当前栏目薄荷绿线） */
header#top nav#nav{background:#003349;border-top:0}
header#top nav#nav>a,header#top nav#nav>.allbtn,header#top nav#nav>details>summary{color:#E6F0F3}
header#top nav#nav>a:hover,header#top nav#nav>.allbtn:hover{background:rgba(255,255,255,.08);color:#fff}
header#top nav#nav>a.on{color:#fff;font-weight:650;box-shadow:inset 0 -3px 0 #48D597;background:transparent}
header#top nav#nav .sep{background:rgba(255,255,255,.22)}
@media (max-width:860px){header#top nav#nav{background:#003349}}
@media (max-width:820px){header#top nav#nav>a.on{box-shadow:inset 0 -3px 0 #48D597}}
/* 产品热点元素推荐（10-27 重做）：产品图条＋五行回答 */
.hgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr));gap:16px}
.hcard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;background:var(--card);overflow:hidden;min-width:0}
.hpics{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line)}
.hpic{position:relative;display:grid;place-items:center;height:150px;background:var(--warm);overflow:hidden;text-decoration:none;max-width:100%}
.hpic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hpic .hpb{position:absolute;left:6px;bottom:6px;font-size:12px;font-weight:600;padding:1px 7px;border-radius:999px;background:rgba(255,255,255,.92);color:#0F1111}
.hbody{padding:14px 16px 16px;min-width:0}
.hmeta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.hmeta .tag{margin:0}
.hnum{font:600 13px/1 var(--f-mono);color:var(--muted)}
.hcard h3{font-size:20px;margin:8px 0 2px}
.hcard .plus{color:var(--muted);font-weight:400}
.hdl2{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:8px 12px;margin:12px 0 0;font-size:14px}
.hdl2 dt{color:var(--muted);font-size:12.5px;padding-top:2px}
.hdl2 dd{margin:0;min-width:0}
.hdl{list-style:none;padding:0;margin:0}
.hdl li{padding:2px 0}
.hdl a{text-decoration:none}
@media (max-width:520px){.hdl2{grid-template-columns:minmax(0,1fr)}.hdl2 dt{padding-top:6px}}
/* 行业动向三级栏目和地区筛选（10-28） */
.dimbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 18px;padding:0 0 12px;border-bottom:1px solid var(--line)}
.dimbar .dimk{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-right:6px}
.dimbar a{padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:13.5px;color:inherit;text-decoration:none;background:var(--card)}
.dimbar a:hover{border-color:#003349}
.dimbar a.on{background:#003349;border-color:#003349;color:#fff}
.regbar{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 16px}
.regbar a{padding:4px 10px;border-radius:8px;font-size:13px;color:var(--muted);text-decoration:none}
.regbar a.on{background:#E8F7EF;color:#0F1111;font-weight:600;box-shadow:inset 0 -2px 0 #48D597}
.moodl{list-style:none;padding:0;margin:0}
.moodl li{display:grid;grid-template-columns:minmax(0,10em) minmax(0,1fr) auto;gap:12px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.moodbar{position:relative;height:10px;background:#F2F4F6;border-radius:5px}
.moodbar::after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:#9AA5B1}
.moodbar i{position:absolute;top:0;bottom:0;border-radius:5px}
.moodbar i.pos{background:#48D597}.moodbar i.neg{background:#E07A6B}
@media (max-width:520px){.moodl li{grid-template-columns:1fr;gap:4px}}
.admcat{border-top:1px solid var(--line)}.admcat>summary{cursor:pointer;list-style:none;padding:10px 0;margin:0}.admcat>summary::-webkit-details-marker{display:none}
.admcat>summary::before{content:'▸';display:inline-block;width:14px;transition:transform .15s}.admcat[open]>summary::before{transform:rotate(90deg)}
.dimarch{margin-top:14px;border-top:1px solid var(--line)}.dimarch>summary{cursor:pointer;padding:12px 0;color:var(--muted);font-weight:600}

.bpgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}@media(max-width:480px){.bpgrid{grid-template-columns:1fr}}
.bpc{display:flex;flex-direction:column;gap:10px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--card);min-width:0}
.bpc-h{display:flex;gap:10px;align-items:center}.bpd{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0;font-size:13px}.bpd dt{color:var(--muted);font-weight:600;white-space:nowrap}.bpd dd{margin:0;min-width:0}
.bpw{font-size:13px;border-top:1px solid var(--line);padding-top:8px}.bpw p{margin:2px 0 8px}.bpf{display:flex;flex-direction:column;gap:6px;margin-top:auto;font-size:13px}
.bps summary{cursor:pointer;color:var(--muted)}.bps ul{margin:6px 0 0;padding-left:16px}.bps li{margin:3px 0;overflow-wrap:anywhere}
.regbar a em{font-style:normal;color:var(--muted);font-size:12px;margin-left:2px}
/* 竞品名册：行业动向每个页面顶部 */
.dimbar .rdd{position:relative;margin-left:auto}
.rbtn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);font:inherit;font-size:13.5px;color:inherit;cursor:pointer}
.rbtn:hover,.rbtn[aria-expanded="true"]{border-color:#003349}
.rbtn em{font-style:normal;font-size:12px;color:var(--muted)}
.rpanel{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:min(980px,calc(100vw - 48px));max-height:70vh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.12);padding:16px 20px}
.rpanel[hidden]{display:none}
.rph{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}
.rcols{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px 24px}
.rcol{display:flex;flex-direction:column;min-width:0}
.rcol .rgk{font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--muted);margin-bottom:4px}
.rchip{display:flex;justify-content:space-between;align-items:baseline;gap:8px;width:100%;padding:4px 6px;margin:0 -6px;border:0;border-radius:6px;background:none;font:inherit;font-size:13.5px;color:inherit;text-align:left;cursor:pointer}
.rchip:hover{background:var(--chip,#f3f3f3)}
.rchip em{font-style:normal;font-size:12px;color:var(--muted)}
.rchip.r0{color:var(--muted)}
.rchip.on{font-weight:600}
.rcol .r0d summary{cursor:pointer;font-size:12px;color:var(--muted);padding:4px 0;list-style:none}
.rlist{margin:0 0 20px;padding:14px 16px;border:1px solid var(--line);border-radius:12px}
.rlist[hidden]{display:none}
.rlist .rclr{margin-left:auto;background:none;border:0;cursor:pointer}
.rlist .rlh{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;margin-bottom:10px}
@media (max-width:640px){.dimbar .rdd{margin-left:0}.rpanel{left:0;right:auto;width:calc(100vw - 32px)}}
.dimbar:has(.rdd){position:relative;z-index:15}

/* 10-29 自查整改：列表页统计改成一行计数标签，去掉重复的“按…”下拉行（出处：Airtable 产品界面 P02 工具栏、P08 分组计数） */
#lsum .dims2{display:none}
#lsum .stat{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;grid-template-columns:none}
#lsum .stat>*{display:inline-flex;align-items:baseline;gap:6px;padding:5px 12px;min-height:0;border:1px solid var(--line);border-radius:999px;background:var(--card);box-shadow:none;font-size:13px}
#lsum .stat>* b{font-size:13px;font-weight:600}
#lsum .stat>* span{font-size:13px;color:var(--muted)}
#lsum .stat>*::before,#lsum .stat>*::after{display:none}
#lsum .stat .sgo{display:none}
#lsum .stat .sbtn.on{border-color:#003349;background:#003349;color:#fff}
#lsum .stat .sbtn.on span{color:#fff}
.sinfo{font-size:13px;color:var(--muted);cursor:help}
#lsum .stat .sbtn.on b{color:#fff}
/* 10-29 总览：标题一行、阶段计数一行小标签（出处 Airtable P01/P04） */
.ovhead h1{margin:0;font-size:26px}
.ovhead{align-items:center;margin-bottom:12px}
.pipe2{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}
.pseg2{display:inline-flex;align-items:baseline;gap:6px;padding:4px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:13px;cursor:pointer;color:inherit}
.pseg2 b{font-weight:600}
.pseg2.on{background:#003349;border-color:#003349;color:#fff}
.ovfilters .fsearch{flex:1 1 160px;min-width:150px}
.foldmore{display:flex;justify-content:center;padding:10px 0;grid-column:1/-1}
tr.foldmore{display:table-row} tr.foldmore td{text-align:center;padding:10px}
#view [hidden]{display:none!important}
/* 10-29 自查 #8：进度面板不再吸顶遮内容（Airtable P06 记录页只有标题行，不叠浮层） */ .pstick{position:static}
td.nowrap{white-space:nowrap}
/* 10-29 走查 B2：立项页工具栏（照 Airtable P01/P02：一条细工具栏，关口用下拉，步骤一行） */
.aptool{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:8px 0;margin:6px 0 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.apgsel select{font-size:13.5px;padding:6px 28px 6px 10px;min-height:34px}
.apgsel .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.apsteps.inline{display:flex;flex-wrap:wrap;gap:4px 14px;border:0;border-radius:0;background:none;margin:0;overflow:visible;grid-template-columns:none}
.apsteps.inline li{flex-direction:row;align-items:center;gap:6px;padding:0;border:0;background:none;font-size:13px;color:var(--muted)}
.apsteps.inline li::after{display:none}
.apsteps.inline .aps-d{width:20px;height:20px;margin:0;font-size:12px}
.apsteps.inline b{font-size:13px;font-weight:500}
.apsteps.inline li.cur{background:none;color:var(--ink)}.apsteps.inline li.cur b{font-weight:700}
.apsteps.inline li.cur .aps-d{background:var(--navy);color:#fff}
.apnowt.me b{color:var(--navy)}
@media (max-width:1000px){.apsteps.inline li{border:0!important}}
/* 走查 B6/B7（出处 P06 记录面板：状态字段、单选标签、行内错误） */
.ferr{color:var(--bad);font-size:13px;margin:4px 0 0}
#rvf .fl{font-size:13px;font-weight:600;margin:4px 0}
.pnow a.tag.todo{text-decoration:none;font-weight:600}
.pnow a.tag.todo:hover{filter:brightness(.97)}
.reccount{color:var(--muted);font-size:13px;margin:2px 0 12px}
/* 走查 B11：数字卡片改成记录字段（出处 P06 记录面板字段列表） */
.rfields{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:4px 0 14px;font-size:14px}
.rfields dt{color:var(--muted);font-size:13px}
.rfields dd{margin:0}
/* 走查 B11：列表页的计数是左栏视图（出处 P01 Airtable 视图栏：名称在左、数量在右） */
#lsum.lviews .stat{display:flex;flex-direction:column;gap:2px;margin:0}
#lsum.lviews .stat>div,#lsum.lviews .stat>.sbtn{display:flex;flex-direction:row-reverse;justify-content:space-between;align-items:center;gap:8px;min-width:0;width:100%;box-sizing:border-box;background:transparent;border:0;border-radius:6px;padding:6px 8px;color:var(--ink);text-align:left;box-shadow:none;transform:none;min-height:32px}
#lsum.lviews .stat b{font:600 13px/1.3 inherit;font-family:inherit;color:var(--muted);display:inline}
#lsum.lviews .stat span{font-size:14px;color:var(--ink)}
#lsum.lviews .stat .sgo{display:none}
#lsum.lviews .stat>.sbtn:hover{background:var(--warm)}
#lsum.lviews .stat>.sbtn.on{background:color-mix(in srgb,var(--sky) 30%,transparent);color:var(--ink)}
#lsum.lviews .stat>.sbtn.on span{font-weight:600}
.fbadge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--sky) 35%,transparent);color:var(--navy);font-size:12.5px;font-weight:600;margin-right:4px}
/* 走查 B9：试做表单分 3 组，实测旁边显示目标，必填就地提示（出处 P06 记录面板字段分组） */
fieldset.fgroup{border:0;border-top:1px solid var(--line);margin:0;padding:14px 0 6px}
fieldset.fgroup:first-of-type{border-top:0;padding-top:0}
fieldset.fgroup legend{font-weight:700;font-size:15px;padding:0 0 6px}
.ftgt{font-size:12.5px;color:var(--muted);margin:3px 0 0;min-height:0}
.ftgt:empty{display:none}
.req{color:var(--bad)}
.flab{display:block;margin-top:8px}
details.fmore{margin-top:10px}
details.fmore summary{cursor:pointer;font-size:13.5px;color:var(--navy)}
/* 走查 B14：场次页工具栏（出处 P02 工具栏：状态、编号、复制、更多菜单 …） */
.ptool{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 0 12px;border-bottom:1px solid var(--line);margin-bottom:12px;font-size:14px}
.ptool .grow{flex:1}
details.omenu{position:relative}
details.omenu>summary{list-style:none;cursor:pointer;min-width:32px;justify-content:center}
details.omenu>summary::-webkit-details-marker{display:none}
.omenu-p{position:absolute;right:0;top:calc(100% + 4px);background:var(--card);border:1px solid var(--line2);border-radius:8px;box-shadow:0 6px 20px rgba(23,57,101,.14);padding:6px;min-width:150px;z-index:30}
.omenu-p button{display:block;width:100%;text-align:left;padding:8px 10px;color:var(--bad)}
/* 走查 B15：答卷聚焦面板 */
body.focus #top{display:none!important}
body.focus #view{max-width:860px;margin:0 auto}
.focusbar{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--bg,#fff);padding:10px 0;border-bottom:1px solid var(--line);margin-bottom:12px}
/* 走查 B19：选标签页三栏跟着页面滚，不套滚动；右栏“已选＋保存”吸顶（出处 P07 侧栏随页面） */
@media (min-width:700px){
  .shop,.shop.reverse{height:auto;min-height:0;align-items:start}
  .shop>*{overflow:visible}
  .scats{position:sticky;top:72px;align-self:start;z-index:4}
  .scart .picks{top:64px}
}
@media (min-width:700px) and (max-width:1279px){ .scats{overflow-x:auto} }
.ing .ingdot{flex:none}
/* 走查 C1：文件按钮 */
.vh{position:absolute!important;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0)}
label.filebtn{position:relative;display:inline-flex;width:auto;margin:4px 8px 4px 0;cursor:pointer}
.fcount{vertical-align:middle}
/* 走查 C3：卡片标题上方不留空（出处 P02 Airtable 行密度） */
#view .card>:first-child,#view .psec>:first-child,#view .ctempty>:first-child{margin-top:0}
#view .card{padding-top:16px}
/* 走查 C5：“加入”类按钮用描边样式，不像不可点（出处 P02 工具栏按钮） */
#view button.add,#view .btn.add{background:var(--card);color:var(--navy);border:1.5px solid var(--navy);font-weight:600}
#view button.add:hover,#view .btn.add:hover{background:var(--navy);color:#fff;filter:none}
/* 走查 C4：手机点击区至少 32px；每个按钮有悬停反馈（出处 P02） */
@media (max-width:700px){
  #view button:not(.word):not(.hue),#view .btn,#view select,#view input:not([type=checkbox]):not([type=radio]):not(.vh),#view .seg button,#nav a{min-height:32px}
  #view a.link,#view button.link{display:inline-flex;align-items:center;min-height:32px}
}
#view button:not(:disabled):hover,#view .btn:hover{filter:brightness(.96)}
#view button.ghost:hover,#view .btn.ghost:hover{background:var(--warm);filter:none}
#view button.link:hover,#view a.link:hover{text-decoration:underline;filter:none}
/* 走查 B17：问卷导入（出处 P11 Airtable CSV import：左字段对应、右预览、底部计数＋取消＋导入） */
.ctmap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.ctm-l .ctm-r{display:grid;grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr);gap:8px;align-items:center;padding:4px 0;font-size:13.5px}
.ctm-p .ctm-c{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:6px 0}
.ctm-c dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px 10px;margin:4px 0 0;font-size:12.5px}
.ctm-c dt{color:var(--muted);font-size:12px}.ctm-c dd{margin:0}
.ctm-f{grid-column:1/-1;display:flex;align-items:center;gap:8px;border-top:1px solid var(--line);padding-top:10px}
.ctm-f .grow{flex:1}
.ctmap .fl{font-weight:600;font-size:13px;margin-bottom:4px}
@media (max-width:700px){.ctmap{grid-template-columns:minmax(0,1fr)}.ctm-c dl{grid-template-columns:repeat(2,minmax(0,1fr))}}
#lsum.lviews .stat>.sbtn.on,#lsum.lviews .stat>.sbtn.on *{color:var(--ink)}
#lsum.lviews .stat>.sbtn.on b{color:var(--muted)}
#ct .psh{padding:0 0 8px;margin:0}
fieldset.fgroup legend{float:left;width:100%;padding:0 0 8px}
fieldset.fgroup legend+*{clear:both}
.row>div{align-self:start}
body.focus #view{width:100%;flex:1 1 auto;box-sizing:border-box}body.focus #foot{display:none}
.pnow{margin-top:6px;padding-top:6px;align-items:center}.pnow a.tag.todo{padding:1px 8px;line-height:1.5}.phead{margin-bottom:10px}.ptabs7{margin:2px 0 12px}

/* 中国团队账号不能导出：导出按钮全部隐藏（Freya 10-29） */
body.noexp #ovexp, body.noexp #stexp, body.noexp #pdl, body.noexp #hexp, body.noexp #trexp, body.noexp #supexp { display: none !important; }

/* 报告的英文版 / 中文版选择（Freya 10-30）：两个并排小按钮，出处同 SR1：Airtable 胶囊一排、当前项填深色 */
.rplang { display: inline-flex; border: 1px solid var(--line, #d9dde3); overflow: hidden; align-self: center; flex: none; border-radius: 999px; }
.rplang a { padding: 6px 12px; font-size: 13px; color: inherit; text-decoration: none; min-height: 32px; display: inline-flex; align-items: center; }
.rplang a + a { border-left: 1px solid var(--line, #d9dde3); }
.rplang a.on { background: var(--ink); color: var(--bg); }
.rplang a:hover:not(.on) { background: #f2f4f7; }
/* 报告逐页查看（演示版；WT18 版本胶囊同一套） */
.rview { max-width: 980px; margin: 0 auto; }
.rvbar { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 14px; padding: 10px 0; background: var(--bg, #fff); border-bottom: 1px solid var(--line, #d9dde3); margin-bottom: 16px; }
.rvbar b { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rvpage { display: block; width: 100%; height: auto; margin: 0 0 14px; border: 1px solid var(--line, #d9dde3); border-radius: 6px; background: #fff; }

.pwwrap{position:relative;display:block}.pwwrap input{padding-right:46px}
.pweye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:38px;height:38px;min-height:0;padding:0;display:grid;place-items:center;background:transparent;border:0;border-radius:8px;color:var(--muted);cursor:pointer}
.pweye:hover{background:var(--soft);color:var(--ink);filter:none}.pweye svg{width:20px;height:20px}
/* 新店拓展（Freya 10-30；设计登记表 WT23–WT25） */
.xcard>div{min-width:0}.xaddr{font-size:13px;line-height:1.35;margin:2px 0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.xgs{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.xg{font-size:12px;line-height:1.5;padding:1px 8px;border-radius:999px;background:var(--soft);color:var(--muted);white-space:nowrap}
.xg.ok{background:var(--ok-bg);color:var(--ok)}.xg.warn{background:var(--warn-bg);color:var(--warn)}.xg.bad{background:var(--bad-bg);color:var(--bad)}
.xveto{border-left:4px solid var(--ok)}.xveto.warn{border-left-color:var(--warn)}.xveto.bad{border-left-color:var(--bad);background:color-mix(in srgb,var(--bad-bg) 50%,var(--card))}
.xveto ul{margin:6px 0 0;padding-left:4px;list-style:none;color:var(--bad)}.xveto p{margin:6px 0 0}
.xraw{display:grid;grid-template-columns:minmax(120px,max-content) 1fr;gap:6px 14px;margin:10px 0 0;font-size:13.5px}.xraw dt{color:var(--muted)}.xraw dd{margin:0;overflow-wrap:anywhere}
.xscores{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px 16px}.xsc textarea{min-height:0;margin-top:6px;font-size:13.5px}
.xhead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.xhead h3{margin:0}
.xbig{font:400 34px/1 var(--f-display);color:var(--navy)}
.xchecks{list-style:none;padding:0;margin:8px 0}.xchecks li{padding:6px 0;border-bottom:1px dashed var(--line)}.xchecks li:last-child{border-bottom:0}.xchecks li.ok{color:var(--ok)}.xchecks li.bad{color:var(--bad)}
.xck{display:inline-flex;align-items:center;gap:6px;margin:6px 14px 0 0;color:var(--ink)}
td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.xcount{max-width:620px}.xmode{margin:14px 0 4px}
.xblock{border:1px solid var(--line);border-radius:14px;padding:12px;margin:14px 0;background:var(--warm)}.xbt{font-size:13px;color:var(--muted);margin-bottom:10px}
.xtaps{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.xtap{flex-direction:column;gap:2px;min-height:96px;border-radius:16px;background:var(--card);color:var(--ink);border:1px solid var(--line2);font-weight:500;touch-action:manipulation;user-select:none}
.xtap b{font:400 34px/1 var(--f-display);color:var(--navy)}.xtap span{font-size:13px;color:var(--muted);text-align:center}
.xtap:active{background:var(--hl);filter:none}
.xgrade{border:1px solid var(--line);border-radius:12px;padding:8px 12px 12px;margin:14px 0 0}.xgrade legend{font-size:13px;color:var(--muted);padding:0 4px}
@media (max-width:640px){.xsteps{display:none}.xraw{grid-template-columns:1fr}.xraw dd{margin-bottom:6px}}
.xdlg{border:0;border-radius:var(--r);padding:22px;width:min(460px,calc(100vw - 32px));background:var(--card);color:var(--ink);box-shadow:0 24px 60px rgba(15,17,17,.25)}
.xdlg::backdrop{background:rgba(15,17,17,.35)}.xdlg h3{margin-top:0}
