:root{
  --ink:#0e1526; --ink2:#1c2740; --paper:#f4f2ec; --card:#ffffff;
  --gold:#b8862e; --gold-2:#d9b25f; --line:#e3dfd4;
  --c-expert:#274b8f; --c-leader:#b8862e; --c-staff:#0f7a5f;
  --serif:"Noto Serif SC","Songti SC",serif; --sans:"Noto Sans SC","PingFang SC",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);min-height:100vh}
.bg-grid{position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(rgba(14,21,38,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(14,21,38,.045) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(ellipse 90% 60% at 50% 0%,#000 30%,transparent 75%);
}
main{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:0 22px 80px}

/* masthead */
.masthead{position:relative;z-index:1;background:var(--ink);color:#f0ead8;border-bottom:3px solid var(--gold)}
.masthead-inner{max-width:1180px;margin:0 auto;padding:26px 22px 22px;display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap}
.brandline{display:flex;gap:14px;align-items:center}
.seal{width:52px;height:52px;background:var(--gold);color:var(--ink);font-family:var(--serif);font-weight:900;font-size:30px;display:grid;place-items:center;border-radius:6px;box-shadow:0 0 0 3px rgba(184,134,46,.28)}
.brand-name{font-family:var(--serif);font-size:22px;font-weight:900;letter-spacing:.06em}
.brand-sub{font-size:11px;letter-spacing:.28em;opacity:.62;margin-top:4px}
.masthead-meta{display:flex;gap:12px;align-items:center;font-size:13px;color:#cfc7ad;flex-wrap:wrap}
.masthead-meta i{width:4px;height:4px;border-radius:50%;background:var(--gold)}

/* formula */
.formula-bar{display:flex;align-items:center;gap:10px;margin:26px 0 18px;flex-wrap:wrap}
.f-chip{display:flex;align-items:baseline;gap:8px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--c);padding:8px 14px;border-radius:8px}
.f-chip b{font-size:14px}.f-chip span{font-size:12px;color:#7a7462}
.f-op{font-weight:700;color:#9a937d}
.f-note{margin-left:auto;font-size:12px;color:#7a7462}
.f-note code{background:#ece7d9;padding:1px 6px;border-radius:4px;font-size:11px}

/* KPI */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;position:relative;overflow:hidden}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--kc,#888)}
.kpi .k-label{font-size:12px;color:#7a7462;margin-bottom:6px}
.kpi .k-value{font-family:var(--serif);font-size:20px;font-weight:900;line-height:1.25}
.kpi .k-sub{font-size:12px;color:#958e78;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi.hero{grid-column:span 1;background:linear-gradient(135deg,#fff 0%,#faf6ea 100%);border-color:var(--gold-2)}
.kpi.hero .k-value{color:var(--gold);font-size:22px}

/* console */
.console{background:var(--ink2);color:#e9e3d2;border-radius:14px;padding:22px;margin-bottom:22px;box-shadow:0 14px 40px -18px rgba(14,21,38,.5)}
.console-head h2{font-family:var(--serif);font-size:19px;font-weight:900;letter-spacing:.04em}
.console-head p{font-size:12.5px;color:#a89f85;margin-top:6px;max-width:760px;line-height:1.6}
.console-body{display:grid;grid-template-columns:1fr 240px;gap:18px;margin-top:16px}
.model-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.model-card{background:rgba(255,255,255,.055);border:1px solid rgba(233,227,210,.14);border-radius:10px;padding:12px 13px;cursor:pointer;transition:border-color .15s,background .15s,transform .15s;position:relative}
.model-card:hover{transform:translateY(-2px);border-color:rgba(217,178,95,.5)}
.model-card.active{background:rgba(184,134,46,.16);border-color:var(--gold)}
.model-card.active::after{content:"✓";position:absolute;top:8px;right:10px;color:var(--gold-2);font-weight:700}
.model-card .m-name{font-size:13.5px;font-weight:700;color:#f0ead8}
.model-card .m-key{font-size:10px;letter-spacing:.14em;color:#8d8567;text-transform:uppercase;margin-top:2px}
.model-card .m-desc{font-size:11.5px;color:#b6ad93;margin-top:7px;line-height:1.55}
.console-side{display:flex;flex-direction:column;gap:10px;border-left:1px solid rgba(233,227,210,.12);padding-left:18px}
.seed-label{font-size:12px;color:#a89f85}.seed-label span{opacity:.6;margin-left:4px}
.seed-row{display:flex;gap:8px}
.seed-row input{flex:1;background:rgba(255,255,255,.08);border:1px solid rgba(233,227,210,.2);color:#f0ead8;border-radius:8px;padding:9px 11px;font-size:14px;font-family:var(--sans);outline:none}
.seed-row input:focus{border-color:var(--gold)}
.btn-primary{background:var(--gold);color:var(--ink);border:none;border-radius:8px;padding:12px 16px;font-size:14.5px;font-weight:700;cursor:pointer;font-family:var(--sans);letter-spacing:.05em;transition:filter .15s,transform .1s}
.btn-primary:hover{filter:brightness(1.08)}
.btn-primary:active{transform:scale(.98)}
.btn-primary:disabled{opacity:.55;cursor:wait}
.btn-ghost{background:transparent;color:#cfc7ad;border:1px solid rgba(233,227,210,.25);border-radius:8px;padding:9px 12px;font-size:12.5px;cursor:pointer;font-family:var(--sans)}
.btn-ghost:hover{border-color:var(--gold);color:#f0ead8}
.btn-ghost.wide{padding:11px}
.console-note{font-size:11.5px;color:#8d8567;line-height:1.6;min-height:34px}

/* compare strip */
.compare-strip{display:flex;gap:14px;align-items:center;background:#fdf8ea;border:1px solid var(--gold-2);border-radius:10px;padding:11px 16px;margin-bottom:16px;font-size:12.5px;color:#6b5c33;flex-wrap:wrap}
.cs-item b{font-weight:700}

/* board */
.board{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:26px}
.board-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line);gap:12px;flex-wrap:wrap}
.board-head h2{font-family:var(--serif);font-size:18px;font-weight:900}
.board-tools input{border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:13px;width:230px;font-family:var(--sans);outline:none;background:#fbfaf6}
.board-tools input:focus{border-color:var(--gold)}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;min-width:860px}
thead th{font-size:11.5px;letter-spacing:.08em;color:#7a7462;text-align:left;padding:11px 14px;border-bottom:1.5px solid var(--line);background:#fbfaf6;white-space:nowrap}
thead th em{font-style:normal;opacity:.6;margin-left:4px;font-size:10px}
th.sortable{cursor:pointer;user-select:none}
th.sortable:hover{color:var(--gold)}
th.sortable.asc::after{content:" ↑";color:var(--gold)}
th.sortable.desc::after{content:" ↓";color:var(--gold)}
tbody tr{border-bottom:1px solid #efebdf;transition:background .12s}
tbody tr:hover{background:#faf7ee}
tbody tr.top1{background:linear-gradient(90deg,#fdf6e3,#fff)}
tbody tr.top2{background:linear-gradient(90deg,#f6f8fb,#fff)}
tbody tr.top3{background:linear-gradient(90deg,#faf3ef,#fff)}
td{padding:11px 14px;font-size:13px;vertical-align:middle}
.c-rank{width:46px}
.rank-badge{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;font-weight:700;font-size:13px;background:#f0ede2;color:#6b6552}
.top1 .rank-badge{background:var(--gold);color:#fff}
.top2 .rank-badge{background:#9aa7bd;color:#fff}
.top3 .rank-badge{background:#b9886a;color:#fff}
.work-cell{display:flex;gap:11px;align-items:center;min-width:220px}
.work-cell img{width:52px;height:40px;object-fit:cover;border-radius:6px;border:1px solid var(--line);flex:none}
.work-cell .w-no{font-size:10.5px;color:#a39b82;letter-spacing:.06em}
.work-cell .w-title{font-weight:600;font-size:13.5px;line-height:1.35}
.work-cell .w-unit{font-size:11px;color:#958e78;margin-top:2px}
.c-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.score-main{font-weight:700;font-size:13.5px}
.score-sub{display:block;font-size:11px;color:#958e78;margin-top:1px}
.final-cell{font-family:var(--serif);font-weight:900;font-size:17px;color:var(--ink)}
.delta{display:inline-block;font-size:10.5px;font-weight:700;border-radius:5px;padding:1px 5px;margin-left:6px;vertical-align:2px}
.delta.up{background:#e3f2ea;color:#0f7a5f}.delta.down{background:#fbe7e4;color:#b3402f}.delta.same{background:#efebdf;color:#958e78}

/* stacked bar */
.c-bar{width:240px}
.stack{display:flex;height:16px;border-radius:5px;overflow:hidden;background:#f0ede2}
.stack span{display:block;height:100%}
.stack .s-e{background:var(--c-expert)}.stack .s-l{background:var(--c-leader)}.stack .s-s{background:var(--c-staff)}
.stack-legend{display:flex;gap:9px;font-size:10px;color:#958e78;margin-top:4px}
.stack-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:3px;vertical-align:-1px}

/* leader panel */
.leader-panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:26px}
.lp-head h2{font-family:var(--serif);font-size:18px;font-weight:900}
.lp-head h2 span{font-size:11px;color:var(--gold);font-family:var(--sans);font-weight:700;letter-spacing:.06em;margin-left:8px;vertical-align:2px}
.lp-head p{font-size:12px;color:#958e78;margin-top:5px}
.lp-legend{display:flex;gap:14px;margin:13px 0;font-size:11px;color:#7a7462}
.lg::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.lg-hot::before{background:var(--gold)}.lg-mid::before{background:#d9b25f}.lg-cold::before{background:#e8dcc0}.lg-zero::before{background:#f0ede2}
.lp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px}
.lp-cell{border:1px solid var(--line);border-radius:8px;padding:7px 8px;text-align:center;transition:transform .12s}
.lp-cell:hover{transform:scale(1.06)}
.lp-cell .lp-no{font-size:10px;color:#a39b82}
.lp-cell .lp-v{font-family:var(--serif);font-weight:900;font-size:17px;line-height:1.2}
.lp-cell.hot{background:#fdf3dc;border-color:var(--gold-2)}.lp-cell.hot .lp-v{color:var(--gold)}
.lp-cell.mid{background:#faf6ea}.lp-cell.mid .lp-v{color:#8a6d2f}
.lp-cell.cold{background:#faf8f1}.lp-cell.cold .lp-v{color:#a89f85}
.lp-cell.zero{opacity:.55}.lp-cell.zero .lp-v{color:#c9c2ae}

footer{font-size:11.5px;color:#958e78;line-height:1.8;border-top:1px solid var(--line);padding-top:18px}

@media (max-width:900px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  .console-body{grid-template-columns:1fr}
  .console-side{border-left:none;border-top:1px solid rgba(233,227,210,.12);padding-left:0;padding-top:16px}
  .f-note{margin-left:0;width:100%}
}

@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important}}
body.busy{overflow:hidden}

.fixed-note{background:rgba(184,134,46,.14);border:1px dashed rgba(217,178,95,.5);border-radius:8px;padding:11px 13px;font-size:12px;color:#cfc7ad;line-height:1.7}
.fixed-note b{color:var(--gold-2);font-size:15px}
