/* 货盘决策 · 数据工作台 v4 —— 低饱和暖白（真源:design/web-demo-pages-final.pen）。
   效率第一（D24）：侧栏常驻+飞书式折叠树 · 首屏=决策收件箱 · 聚合数字全量下钻。
   明细表分六种呈现标准（A画廊/B人物/C看板/D日历/E网格/F行动卡）。只读演示，编辑归飞书。 */
:root{
  --bg:#F6F5F2; --side:#FCFBF9; --panel:#FFFFFF; --sunken:#EFEEEA; --hover:#F1F0EC;
  --line:#E7E5E0; --line-2:#DDDAD4;
  --t1:#33312D; --t2:#6B675F; --t3:#97928A;
  --accent:#5C749E; --accent-deep:#47587A; --accent-soft:#EBEEF3; --accent-line:#C4CEDD;
  --good:#6E8F7E; --warn:#A68A5E; --crit:#B06A75; --info:#5C749E;
  --good-bg:#EBF0EC; --warn-bg:#F3EEE2; --crit-bg:#F4EAEC;
  --chart2:#93A8C4; --chart3:#9AB5A9; --chart-dim:#D8D5CE;
  --r:10px; --side-w:224px;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --mono:"JetBrains Mono","SF Mono","Cascadia Code","Consolas",ui-monospace,monospace;
}
@font-face{font-family:'JetBrains Mono';src:url('/vendor/jbmono-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('/vendor/jbmono-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('/vendor/jbmono-600.woff2') format('woff2');font-weight:600;font-display:swap}
*{box-sizing:border-box;margin:0;padding:0}
html{color-scheme:light}
html,body{height:100%}
body{background:var(--bg);color:var(--t1);font-family:var(--sans);font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-thumb{background:#D8D5CE;border-radius:6px;border:3px solid var(--bg)}::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-corner{background:transparent}

/* ---------- 左侧常驻导航（含飞书式折叠树） ---------- */
.nav{position:fixed;inset:0 auto 0 0;width:var(--side-w);background:var(--side);border-right:1px solid var(--line);
  display:flex;flex-direction:column;padding:14px 10px 12px;z-index:100;overflow-y:auto}
.nav .brand{display:flex;align-items:center;gap:9px;padding:0 6px 12px}
.nav .brand .logo{width:28px;height:28px;border-radius:8px;background:var(--accent);display:grid;place-items:center;flex:0 0 auto}
.nav .brand .logo svg{width:15px;height:15px}
.nav .brand b{font-size:15px;font-weight:600;letter-spacing:.2px}
.nav .brand .v{font-size:10px;color:var(--t3);font-family:var(--mono);background:var(--sunken);border-radius:999px;padding:1px 7px}
.s-lbl{font-size:10.5px;letter-spacing:2px;color:var(--t3);font-weight:600;padding:12px 10px 4px}
.s-item{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:8px;cursor:pointer;color:var(--t2);font-size:13px;margin-top:1px}
.s-item svg{width:15px;height:15px;color:var(--t3);flex:0 0 auto}
.s-item:hover{background:var(--hover);color:var(--t1)}
.s-item.on{background:rgba(51,49,45,.06);color:var(--t1);font-weight:600}
.s-item.on svg{color:var(--accent)}
.s-item .bd{margin-left:auto;font-family:var(--mono);font-size:10px;font-weight:600;border-radius:999px;padding:1px 7px}
.bd.r{background:var(--crit-bg);color:var(--crit)}.bd.w{background:var(--warn-bg);color:var(--warn)}
/* 树：分组行 + 表行 */
.g-row{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 20px;cursor:pointer;color:var(--t2);font-size:12px;border-radius:7px}
.g-row:hover{background:var(--hover);color:var(--t1)}
.g-row .cv{width:11px;flex:0 0 auto;color:var(--t3);font-size:9px;transition:transform .14s}
.g-row.open{color:var(--t1);font-weight:500}
.g-row .c{margin-left:auto;font-family:var(--mono);font-size:10.5px;color:var(--t3)}
.t-row{display:flex;align-items:center;gap:7px;padding:4px 10px 4px 38px;cursor:pointer;color:var(--t2);font-size:12px;border-radius:7px;margin-top:1px}
.t-row:hover{background:var(--hover);color:var(--t1)}
.t-row.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.t-row .c{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--t3)}
.t-row.on .c{color:var(--accent)}
.nav .sp{flex:1;min-height:16px}
.nav .foot{border-top:1px solid var(--line);padding:10px 8px 0;display:flex;flex-direction:column;gap:7px}
.nav .foot .lb{font-size:10.5px;letter-spacing:2px;color:var(--t3);font-weight:600}
.nav .foot .row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.src-b{display:inline-block;font-size:10px;font-weight:600;border-radius:999px;padding:1px 8px;line-height:1.6;white-space:nowrap}
.src-b.ok{background:var(--good-bg);color:var(--good)}
.src-b.rpa{border:1px solid var(--warn);color:var(--warn);background:transparent}
.nav .foot .tip{font-size:10.5px;color:var(--t3);line-height:1.55}
.nav .foot .demo{font-size:10.5px;color:var(--warn);display:flex;align-items:center;gap:5px}
.nav .foot .demo::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--warn);flex:0 0 auto}

.main{margin-left:var(--side-w);padding:20px 24px 60px;max-width:1420px}
.head{display:flex;align-items:flex-end;gap:14px;margin-bottom:16px}
.head h1{font-size:19px;font-weight:600;letter-spacing:.2px}
.head .sub{color:var(--t2);font-size:12.5px;margin-top:4px}
.head .bc{color:var(--t3);font-size:12px;font-family:var(--mono)}.head .bc b{color:var(--accent);font-weight:400}
.head .spacer{flex:1}

/* ---------- 首屏 banner + 磁贴 ---------- */
.banner{border-radius:var(--r);padding:22px 24px;position:relative;overflow:hidden;
  background:radial-gradient(560px 300px at 88% -40%,rgba(120,140,180,.35),transparent 70%),linear-gradient(100deg,#55688C 0%,#47587A 55%,#3E4C69 100%)}
.banner h1{font-size:21px;font-weight:600;letter-spacing:.3px;color:#fff}
.banner .sub{color:#C9D2E2;font-size:12.5px;margin-top:8px}
.tiles8{display:grid;grid-template-columns:repeat(8,1fr);gap:8px;padding:14px 30px 2px}
.t8{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;padding:6px 0;border-radius:10px}
.t8:hover{background:var(--hover)}
.t8 .c{width:46px;height:46px;border-radius:50%;background:var(--accent-soft);display:grid;place-items:center;transition:.15s}
.t8:hover .c{background:#DFE5EE}
.t8 svg{width:19px;height:19px;color:var(--accent)}
.t8 .l{font-size:11.5px;color:var(--t2)}
@media(max-width:1180px){.tiles8{grid-template-columns:repeat(4,1fr)}}

/* ---------- KPI 卡（可下钻） ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.kpi{background:var(--panel);border-radius:var(--r);padding:14px 17px;position:relative;border:1px solid var(--line)}
.kpi.go{cursor:pointer}
.kpi.go:hover{border-color:var(--accent-line)}
.kpi.go::after{content:"›";position:absolute;top:12px;right:14px;color:var(--t3);opacity:0;transition:.12s}
.kpi.go:hover::after{opacity:1;color:var(--accent)}
.kpi .k-l{color:var(--t3);font-size:12px;display:flex;align-items:center;gap:5px}
.kpi .k-v{font-family:var(--mono);font-size:26px;font-weight:700;letter-spacing:-.8px;margin-top:7px;line-height:1}
.kpi .k-s{color:var(--t3);font-size:11px;margin-top:7px}
.kpi.risk .k-v{color:var(--crit)}.kpi.warn .k-v{color:var(--warn)}

/* ---------- 收件箱（首屏主角） ---------- */
.g-in{display:grid;grid-template-columns:1fr 336px;gap:14px;align-items:start}
@media(max-width:1180px){.g-in{grid-template-columns:1fr}}
.cardp{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.cardp .ch{display:flex;align-items:center;gap:9px;padding:13px 16px 11px}
.cardp .ch h3{font-size:14.5px;font-weight:600}
.cardp .ch .hint{color:var(--t3);font-size:11.5px}
.cardp .ch .spacer{flex:1}
.cardp .ch .lnk{color:var(--accent);font-size:11.5px;cursor:pointer}
.pillh{display:inline-block;font-size:11px;font-weight:600;border-radius:999px;padding:1px 8px}
.pillh.r{background:var(--crit-bg);color:var(--crit)}.pillh.w{background:var(--warn-bg);color:var(--warn)}.pillh.n{background:var(--sunken);color:var(--t2)}
.irow{display:flex;gap:12px;align-items:center;padding:10px 16px 10px 13px;border-top:1px solid var(--line);cursor:pointer}
.irow:hover{background:var(--hover)}
.irow .sev{width:3px;align-self:stretch;border-radius:2px;background:var(--crit);flex:0 0 auto}
.irow.w .sev{background:var(--warn)}
.irow .thumb{margin:0}
.irow .mid{flex:1;min-width:0}
.irow .r1{display:flex;align-items:center;gap:8px}
.irow .nm2{font-size:13px;font-weight:600;color:var(--t1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.irow .why{font-size:11.5px;color:var(--t3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.irow .act{font-size:11.5px;color:var(--accent);margin-top:2px}
.irow .rt{text-align:right;flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.irow .imp{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--crit)}
.irow.w .imp{color:var(--warn)}
.ifoot{padding:9px 16px 11px;border-top:1px solid var(--line);color:var(--t3);font-size:11.5px}
.arow{display:flex;gap:9px;align-items:center;padding:9px 16px;border-top:1px solid var(--line);cursor:pointer}
.arow:hover{background:var(--hover)}
.arow .dot{width:6px;height:6px;border-radius:50%;background:var(--crit);flex:0 0 auto}
.arow.w .dot{background:var(--warn)}
.arow .tx{flex:1;min-width:0;font-size:11.5px;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arow .go{color:var(--accent);font-size:10.5px}
.rcol{display:flex;flex-direction:column;gap:14px}

/* ---------- 通用区块/图卡 ---------- */
.section{margin-top:22px}
.section-h{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.section-h h2{font-size:13.5px;font-weight:600}
.section-h .hint{color:var(--t3);font-size:11.5px}
.section-h .spacer{flex:1}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.g-a{display:grid;grid-template-columns:2fr 1fr;gap:14px}
@media(max-width:1120px){.g2,.g3,.g-a{grid-template-columns:1fr 1fr}}
.chartcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px}
.chartcard .ct{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;gap:8px}
.chartcard .ct h3{font-size:12.5px;font-weight:600}
.chartcard .ct .ct-r{display:flex;align-items:center;gap:8px}
.chartcard .ct .src{color:var(--t3);font-size:11px;cursor:pointer}.chartcard .ct .src:hover{color:var(--accent)}
.chart{width:100%;height:230px}.chart.sm{height:190px}.chart.xs{height:150px}

/* ---------- 工具条 / 视图切换 ---------- */
.tbar{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.search{display:flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line-2);border-radius:7px;padding:6px 11px;min-width:230px}
.search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.search svg{width:14px;height:14px;color:var(--t3)}
.search input{border:0;outline:0;background:transparent;font-family:var(--sans);font-size:13px;color:var(--t1);width:100%}
.tbar .info{color:var(--t3);font-size:12px;font-family:var(--mono)}
.tbar .spacer{flex:1}
.tbar .btn{font-size:12px;color:var(--t2);border:1px solid var(--line-2);background:var(--panel);border-radius:7px;padding:6px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.tbar .btn:hover{border-color:var(--accent);color:var(--accent)}
.vtab{display:inline-flex;border:1px solid var(--line-2);border-radius:7px;overflow:hidden}
.vtab span{padding:6px 12px;font-size:11.5px;cursor:pointer;color:var(--t3);background:var(--panel)}
.vtab span.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.tnote{background:var(--warn-bg);color:var(--warn);font-size:11.5px;border-radius:7px;padding:6px 12px;margin-bottom:10px;display:inline-block}

/* ---------- E 网格 ---------- */
.gridwrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:auto;max-height:calc(100vh - 250px)}
table.dt{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}
table.dt th{position:sticky;top:0;z-index:2;background:var(--sunken);color:var(--t2);font-weight:600;font-size:11px;text-align:left;
  padding:0 12px;height:34px;white-space:nowrap;border-bottom:1px solid var(--line-2);cursor:pointer;user-select:none}
table.dt th:hover{color:var(--t1)}
table.dt th.newc{color:var(--warn)}
table.dt th .ar{color:var(--accent);margin-left:4px;font-size:9px}
table.dt th.rownum,table.dt td.rownum{position:sticky;left:0;z-index:1;background:var(--sunken);color:var(--t3);font-family:var(--mono);font-size:11px;text-align:right;width:46px;min-width:46px;padding:0 10px}
table.dt td.rownum{background:var(--panel)}
table.dt td{padding:0 12px;height:32px;border-bottom:1px solid var(--line);white-space:nowrap;color:var(--t1);max-width:340px;overflow:hidden;text-overflow:ellipsis}
table.dt tr:hover td{background:var(--hover)}table.dt tr:hover td.rownum{background:var(--hover)}
table.dt td.n{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums}
.pill{display:inline-block;font-size:11px;padding:1px 8px;border-radius:5px;background:var(--sunken);color:var(--t2);line-height:1.5}
.pill.g{color:var(--good);background:var(--good-bg)}
.pill.w{color:var(--warn);background:var(--warn-bg)}
.pill.c{color:var(--crit);background:var(--crit-bg)}
.pill.a{color:var(--accent);background:var(--accent-soft)}
.saved{position:fixed;bottom:22px;right:26px;background:#33312D;color:#fff;font-size:12px;padding:8px 15px;border-radius:8px;opacity:0;transform:translateY(8px);transition:.2s;z-index:200;max-width:420px}
.saved.on{opacity:1;transform:translateY(0)}

/* ---------- A 画廊卡 ---------- */
.gcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:12px}
.gcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;cursor:pointer;transition:.12s}
.gcard:hover{border-color:var(--accent-line);box-shadow:0 4px 14px rgba(92,116,158,.10)}
.gcard .gimg{height:110px;position:relative;display:grid;place-items:center}
.gcard .gimg .gth{width:64px;height:64px;border-radius:12px;display:grid;place-items:center}
.gcard .gimg .gth svg{width:30px;height:30px}
.gcard .gtag{position:absolute;top:10px;left:10px}
.gcard .gbody{padding:10px 13px 12px;display:flex;flex-direction:column;gap:6px}
.gcard .gnm{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gcard .gmeta{display:flex;gap:8px;align-items:center;color:var(--t3);font-size:10.5px}
.gcard .gmeta .k{font-family:var(--mono)}
.gbar{display:flex;flex-direction:column;gap:4px}
.gbar .r{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--t3)}
.gbar .r .v{margin-left:auto;font-family:var(--mono);font-size:11.5px;font-weight:600}
.gbar .track{height:6px;border-radius:3px;background:var(--sunken);overflow:hidden}
.gbar .fill{height:6px;border-radius:3px}
.gfoot{display:flex;align-items:center;font-size:11.5px;color:var(--t2)}
.gfoot .r{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--t3)}

/* ---------- B 人物/资源卡 ---------- */
.pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.pcard{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:12px}
.pcard .top{display:flex;align-items:center;gap:12px}
.pcard .av{width:52px;height:52px;border-radius:999px;display:grid;place-items:center;font-size:19px;font-weight:600;flex:0 0 auto}
.pcard .nm{font-size:15px;font-weight:600}
.pcard .meta{display:flex;gap:6px;align-items:center;margin-top:3px}
.pcard .meta .k{font-family:var(--mono);font-size:10.5px;color:var(--t3)}
.pcard .tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.pcard .tags .lb{font-size:11px;color:var(--t3)}
.ptag{font-size:11px;background:var(--sunken);color:var(--t2);border-radius:999px;padding:2px 9px}
.pstats{display:flex;border-top:1px solid var(--line);padding-top:11px}
.pstats .st1{flex:1}
.pstats .v{font-family:var(--mono);font-size:16px;font-weight:700}
.pstats .l{font-size:10.5px;color:var(--t3);margin-top:3px}

/* ---------- C 看板 ---------- */
.chips{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.chip{font-size:11.5px;padding:5px 11px;border-radius:7px;background:var(--panel);border:1px solid var(--line-2);color:var(--t2);cursor:pointer;white-space:nowrap}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip.on{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line);font-weight:600}
.kb{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}
@media(max-width:1120px){.kb{grid-template-columns:1fr}}
.kbcol{background:var(--sunken);border-radius:var(--r);padding:10px 10px 12px;display:flex;flex-direction:column;gap:9px}
.kbh{display:flex;align-items:center;gap:7px;padding:0 2px;font-size:12.5px;font-weight:600}
.kbh .dot{width:8px;height:8px;border-radius:50%}
.kbh .c{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--t3);font-weight:400}
.kbcard{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:10px 11px 11px;display:flex;flex-direction:column;gap:6px}
.kbcard .r1{display:flex;align-items:center;gap:8px}
.kbcard .th2{width:26px;height:26px;border-radius:6px;display:grid;place-items:center;flex:0 0 auto}
.kbcard .th2 svg{width:13px;height:13px}
.kbcard .nm{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.kbcard .r2{display:flex;align-items:center;gap:8px;font-size:10.5px;color:var(--t3)}
.kbcard .sell{font-size:11px;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- D 日历 ---------- */
.calbar{display:flex;align-items:center;gap:8px}
.calbar b{font-size:13px;font-weight:600}
.calbtn{width:26px;height:26px;border-radius:6px;background:var(--panel);border:1px solid var(--line-2);display:grid;place-items:center;cursor:pointer;color:var(--t3)}
.calbtn:hover{border-color:var(--accent);color:var(--accent)}
.cal{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.calhead{display:grid;grid-template-columns:repeat(7,1fr)}
.calhead div{padding:8px 0;text-align:center;font-size:10.5px;color:var(--t3);background:var(--sunken);border-right:1px solid var(--line)}
.calhead div:last-child{border-right:0}
.calgrid{display:grid;grid-template-columns:repeat(7,1fr)}
.calcell{min-height:86px;border-top:1px solid var(--line);border-right:1px solid var(--line);padding:5px 6px;display:flex;flex-direction:column;gap:4px}
.calcell:nth-child(7n){border-right:0}
.calcell .d{font-family:var(--mono);font-size:10.5px;color:var(--t3)}
.calcell.dim .d{color:var(--line-2)}
.ev{border-radius:6px;padding:4px 7px;font-size:10px;line-height:1.45;cursor:pointer;border-left:2px solid var(--accent);background:var(--accent-soft)}
.ev b{display:block;font-size:10.5px;font-weight:600;color:var(--accent-deep);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev span{color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.ev.w{border-left-color:var(--warn);background:var(--warn-bg)}
.ev.w b{color:var(--warn)}

/* ---------- F 行动清单卡 ---------- */
.alist{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.acard{display:flex;gap:12px;align-items:center;padding:11px 16px 11px 13px;border-top:1px solid var(--line);cursor:pointer}
.acard:first-child{border-top:0}
.acard:hover{background:var(--hover)}
.acard .sev{width:3px;align-self:stretch;border-radius:2px;background:var(--crit);flex:0 0 auto}
.acard.w .sev{background:var(--warn)}.acard.n .sev{background:var(--line-2)}
.acard .mid{flex:1;min-width:0}
.acard .r1{display:flex;align-items:center;gap:8px}
.acard .nm{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acard .why{font-size:11.5px;color:var(--t3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acard .act{font-size:11.5px;color:var(--accent);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acard .rt{text-align:right;flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.acard .imp{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--crit)}
.acard.w .imp{color:var(--warn)}.acard.n .imp{color:var(--t2)}

/* ---------- 单款360 / 杂项 ---------- */
.hero{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.hero .big{font-size:17px;font-weight:600}
.hero .meta{color:var(--t2);font-size:12px;margin-top:5px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.hero .pick{margin-left:auto;position:relative}
.pick .search{min-width:250px}
.pick .drop{position:absolute;top:40px;right:0;width:290px;max-height:300px;overflow:auto;background:var(--panel);border:1px solid var(--line-2);border-radius:8px;box-shadow:0 12px 30px rgba(51,49,45,.14);z-index:30;display:none}
.pick .drop.on{display:block}
.pick .po{padding:8px 12px;cursor:pointer;font-size:12.5px;display:flex;gap:8px;align-items:center}.pick .po:hover{background:var(--hover)}
.pick .po .k{font-family:var(--mono);font-size:10.5px;color:var(--t3);margin-left:auto}
.tag{font-size:11px;padding:1px 7px;border-radius:5px;background:var(--sunken);color:var(--t2)}
.st{display:inline-flex;align-items:center;gap:5px;font-size:12px}.st::before{content:"";width:6px;height:6px;border-radius:50%}
.st.ok{color:var(--good)}.st.ok::before{background:var(--good)}.st.warn{color:var(--warn)}.st.warn::before{background:var(--warn)}.st.crit{color:var(--crit)}.st.crit::before{background:var(--crit)}
.srcnote{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--t3);cursor:pointer}
.srcnote::before{content:"";width:6px;height:6px;background:var(--info)}
.srcnote:hover{color:var(--accent)}
.note{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:var(--r);padding:11px 15px;color:var(--t2);font-size:12px;margin-top:14px}
.muted{color:var(--t2)}.faint{color:var(--t3)}.k{font-family:var(--mono);font-size:11px;color:var(--t3)}
.loading{padding:70px;text-align:center;color:var(--t3);font-size:13px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;cursor:pointer;transition:.12s}
.tile:hover{border-color:var(--accent-line)}
.tile .tn{font-size:13.5px;font-weight:600}
.tile .tc{color:var(--t3);font-size:11.5px;font-family:var(--mono);margin-top:8px}
.d-lbl{font-size:10.5px;letter-spacing:1px;color:var(--t3);font-weight:600}
.thumb{width:30px;height:30px;border-radius:7px;flex:0 0 auto;background:var(--sunken);display:inline-block;vertical-align:middle}
.thumb.lg{width:64px;height:64px;border-radius:10px}
td .thumb{margin:-2px 6px -2px 0;width:24px;height:24px;border-radius:5px}
.nm{display:flex;align-items:center;gap:4px}
.boot-err{margin:22vh auto 0;max-width:520px;background:var(--panel);border:1px solid var(--line-2);border-radius:12px;padding:26px 30px;color:var(--t2);font-size:13.5px;line-height:2}
.boot-err b{color:var(--t1)}
