:root{
  --canvas:#f3f6fb;--canvas-glow:#e7edff;--paper:#ffffff;--paper-raised:#fbfcff;--ink:#10233e;--muted:#68788f;--line:#dce4ef;
  --accent:#315eef;--accent-strong:#173eb8;--accent-soft:#e9efff;--accent-faint:#f4f7ff;--green:#087a55;--green-soft:#e7f7ef;
  --orange:#a64a0a;--orange-soft:#fff1e4;--danger:#b42318;--danger-soft:#ffefef;--shadow:0 10px 30px rgba(22,48,93,.07);--radius:18px;
  --display:"Microsoft YaHei","PingFang SC",Arial,sans-serif;--data:"Bahnschrift","DIN Alternate","Microsoft YaHei",Arial,sans-serif;
}
[data-theme="editorial"]{
  --canvas:#f6f2ec;--canvas-glow:#f0e3d5;--paper:#fffdf9;--paper-raised:#fff9f2;--ink:#2b2520;--muted:#796e65;--line:#e6dcd2;
  --accent:#a24d31;--accent-strong:#78311e;--accent-soft:#fae9df;--accent-faint:#fff5ee;--green:#38735f;--green-soft:#e9f3ed;
  --orange:#a85c12;--orange-soft:#fff0dc;--shadow:0 10px 28px rgba(75,48,29,.08);--radius:12px;
}
[data-theme="night"]{
  --canvas:#07111e;--canvas-glow:#0d2940;--paper:#0d1a2b;--paper-raised:#102239;--ink:#edf8ff;--muted:#a8bbcd;--line:#1d3954;
  --accent:#39d5f5;--accent-strong:#b9f4ff;--accent-soft:#103c55;--accent-faint:#0c2a42;--green:#65e6b2;--green-soft:#113d38;
  --orange:#ffc06d;--orange-soft:#43331e;--danger:#ff9d98;--danger-soft:#44252d;--shadow:0 16px 42px rgba(0,0,0,.30);--radius:14px;
}
*{box-sizing:border-box}
[data-theme="night"] body{background-color:var(--canvas);background-image:linear-gradient(rgba(57,213,245,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(57,213,245,.035) 1px,transparent 1px),radial-gradient(circle at 78% 0%,rgba(19,83,117,.30),transparent 28%);background-size:32px 32px,32px 32px,auto}
[data-theme="night"] .dashboard-shell{position:relative}
[data-theme="night"] .page-header{border-bottom-color:rgba(109,210,240,.20)}
[data-theme="night"] .page-header::after{box-shadow:0 0 18px rgba(57,213,245,.75)}
[data-theme="night"] .data-meta{background:rgba(10,26,44,.78);box-shadow:inset 0 1px 0 rgba(185,244,255,.08)}
[data-theme="night"] .filters{background:rgba(9,25,42,.88);box-shadow:inset 0 1px 0 rgba(185,244,255,.06),var(--shadow)}
[data-theme="night"] .panel,[data-theme="night"] .field-group,[data-theme="night"] .metric-card{background:linear-gradient(145deg,rgba(17,36,59,.98),rgba(10,25,43,.98));box-shadow:inset 0 1px 0 rgba(185,244,255,.05),0 10px 28px rgba(0,0,0,.16)}
[data-theme="night"] .metric-card::before{background:linear-gradient(90deg,transparent,var(--accent),transparent);box-shadow:0 0 16px rgba(57,213,245,.58)}
[data-theme="night"] .metric-card:hover{box-shadow:inset 0 1px 0 rgba(185,244,255,.16),0 15px 30px rgba(0,0,0,.22)}
[data-theme="night"] .view-tabs{background:rgba(13,30,50,.88)}
[data-theme="night"] .view-tabs button.is-active{color:#06111e;background:var(--accent);box-shadow:0 0 18px rgba(57,213,245,.30)}
body{margin:0;min-width:320px;background:radial-gradient(circle at 88% -12%,var(--canvas-glow),transparent 32%),var(--canvas);color:var(--ink);font-family:var(--display);font-size:14px;line-height:1.5;letter-spacing:.005em}
button,select{font:inherit}button{touch-action:manipulation}.dashboard-shell{max-width:1480px;margin:0 auto;padding:32px 30px 48px}
.page-header{position:relative;display:flex;justify-content:space-between;gap:28px;align-items:flex-start;padding:0 0 26px;margin-bottom:0;border-bottom:1px solid var(--line)}
.page-header::after{content:"";position:absolute;left:0;bottom:-1px;width:104px;height:3px;background:var(--accent);border-radius:99px}.eyebrow,.section-kicker{margin:0 0 8px;color:var(--accent);font-weight:800;font-size:12px;letter-spacing:.12em}.page-header h1{font-size:34px;line-height:1.18;letter-spacing:-.04em;margin:0 0 8px}.page-header p:not(.eyebrow){color:var(--muted);margin:0;font-size:14px}.data-meta{margin:0;display:grid;grid-template-columns:repeat(3,max-content);gap:0;text-align:right;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--paper) 88%,transparent);overflow:hidden}.data-meta div{display:grid;gap:2px;padding:9px 12px;border-left:1px solid var(--line)}.data-meta div:first-child{border-left:0}.data-meta dt{font-size:11px;color:var(--muted)}.data-meta dd{margin:0;font-family:var(--data);font-weight:700;font-size:12px;font-variant-numeric:tabular-nums}
.view-tabs{display:flex;gap:4px;width:max-content;max-width:100%;padding:4px;margin:20px 0 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper-raised)}.view-tabs button{border:0;background:transparent;padding:9px 15px;border-radius:8px;cursor:pointer;color:var(--muted);font-weight:800;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.view-tabs button:hover{color:var(--ink);background:var(--accent-faint)}.view-tabs button.is-active{background:var(--accent);color:#fff;box-shadow:0 4px 10px color-mix(in srgb,var(--accent) 32%,transparent)}
.filters{display:grid;grid-template-columns:1.15fr 1fr 1fr 1fr;gap:10px;margin-bottom:18px;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:color-mix(in srgb,var(--paper) 92%,transparent);box-shadow:var(--shadow)}.filter-field{display:grid;gap:6px;min-width:0;padding:5px 7px;border-radius:10px}.filter-field:focus-within{background:var(--accent-faint)}.filter-field label,.filter-field .filter-label{font-size:12px;color:var(--muted);font-weight:800}.filter-field select{width:100%;min-height:42px;padding:7px 30px 7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);outline:none;transition:border-color .18s ease,box-shadow .18s ease}.filter-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.filter-field select[multiple]{height:56px;padding:5px 8px;background:var(--paper)}.filter-field select[multiple] option{padding:2px 4px;border-radius:4px}.filter-field select[multiple]:empty::before{content:"暂无可筛选项"}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.metric-card{position:relative;isolation:isolate;min-height:126px;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:grid;align-content:space-between;box-shadow:0 5px 16px rgba(22,48,93,.035);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.metric-card::before{content:"";position:absolute;z-index:-1;inset:0 0 auto;height:3px;background:var(--accent);opacity:.92}.metric-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--accent) 38%,var(--line))}.metric-card .metric-label{color:var(--muted);font-size:13px;font-weight:700}.metric-card .metric-value{font-family:var(--data);font-size:29px;font-weight:800;line-height:1.1;letter-spacing:-.045em;font-variant-numeric:tabular-nums}.metric-card .metric-note{font-size:12px;color:var(--muted)}.metric-card.warning{border-color:color-mix(in srgb,var(--orange) 45%,var(--line));background:color-mix(in srgb,var(--orange-soft) 38%,var(--paper))}.metric-card.warning::before{background:var(--orange)}.metric-card.warning .metric-value{font-family:var(--display);font-size:17px;color:var(--orange);letter-spacing:0}
.two-column{display:grid;grid-template-columns:1.42fr 1fr;gap:16px;margin-bottom:2px}.panel,.field-group{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:0 5px 18px rgba(22,48,93,.035)}.panel h2{font-size:20px;letter-spacing:-.025em;margin:0}.panel-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:14px}.status-pill{font-size:12px;padding:5px 8px;border-radius:999px;font-weight:800;white-space:nowrap}.status-pill.neutral{background:var(--accent-soft);color:var(--accent-strong)}.status-pill.ok{background:var(--green-soft);color:var(--green)}.status-pill.warn{background:var(--orange-soft);color:var(--orange)}.status-pill.bad{background:var(--danger-soft);color:var(--danger)}.rule-list{padding-left:20px;color:var(--muted);line-height:1.85;margin:4px 0 14px}.text-button{background:transparent;border:0;color:var(--accent);font-weight:800;cursor:pointer;padding:5px 0;text-decoration:underline;text-underline-offset:3px}.text-button:hover{color:var(--accent-strong)}
.trend-controls{display:flex;gap:6px;flex-wrap:wrap}.trend-controls button{font:inherit;padding:7px 10px;border:1px solid var(--line);background:var(--paper-raised);border-radius:7px;cursor:pointer;color:var(--muted);font-weight:700;transition:all .16s ease}.trend-controls button:hover,.trend-controls button.is-active{border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.trend-bars{height:230px;display:flex;gap:12px;align-items:end;padding:24px 5px 0;border-bottom:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 45px,color-mix(in srgb,var(--line) 65%,transparent) 46px);border-radius:10px 10px 0 0}.trend-item{height:100%;flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:7px;min-width:44px}.trend-bar{width:100%;max-width:48px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 52%,#fff),var(--accent));border-radius:9px 9px 2px 2px;min-height:4px;box-shadow:0 5px 12px color-mix(in srgb,var(--accent) 18%,transparent);transition:opacity .18s ease}.trend-item:hover .trend-bar{opacity:.75}.trend-value{font-family:var(--data);font-size:11px;font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}.trend-date{font-size:11px;color:var(--muted)}
.ranking-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ranking-grid .panel{position:relative;overflow:hidden}.ranking-grid .panel::after{content:"";position:absolute;width:76px;height:76px;right:-30px;top:-30px;border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);border-radius:50%}.ranking-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;padding:10px 0;border-top:1px solid var(--line)}.ranking-row:first-of-type{border-top:0}.rank-num{width:24px;height:24px;display:grid;place-items:center;border-radius:7px;background:var(--accent-soft);color:var(--accent-strong);font-family:var(--data);font-weight:800}.ranking-row button{border:0;background:none;text-align:left;color:var(--ink);font:inherit;font-weight:800;cursor:pointer;padding:4px 0}.ranking-row button:hover{color:var(--accent)}.ranking-value{font-family:var(--data);font-weight:800;font-variant-numeric:tabular-nums}
.summary-table,.detail-table{width:100%;border-collapse:collapse}.summary-table th,.summary-table td,.detail-table th,.detail-table td{padding:10px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap}.summary-table th,.detail-table th{font-size:12px;color:var(--muted);font-weight:800;background:var(--paper-raised)}.summary-table tr:hover td,.detail-table tbody tr:hover td{background:var(--accent-faint)}.summary-table tr:last-child td,.detail-table tr:last-child td{border-bottom:0}.member-link{border:0;background:none;padding:0;color:var(--accent);font:inherit;font-weight:800;cursor:pointer}.operations-groups{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-group{min-width:0;padding:16px}.field-group h3{font-size:18px;letter-spacing:-.02em;margin:0 0 10px}.field-group p{margin:0;color:var(--muted);line-height:1.75;font-size:12px}.panel-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}.compact-table{border-collapse:collapse;min-width:760px;width:100%;font-size:12px}.compact-table th,.compact-table td{padding:9px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;vertical-align:top}.compact-table th{color:var(--muted);font-weight:800;background:var(--paper-raised)}.compact-table tr:hover td{background:var(--accent-faint)}.compact-table tr:last-child td{border-bottom:0}.detail-table-wrap{overflow:auto}.content-main{display:grid;gap:3px}.content-main strong{font-size:13px}.content-main span{color:var(--muted);font-size:12px}.expand-button{border:1px solid var(--line);background:var(--paper-raised);border-radius:7px;padding:6px 8px;cursor:pointer;color:var(--accent);font-weight:800}.expand-button:hover{border-color:var(--accent)}.release-row td{background:var(--paper-raised);color:var(--muted);font-size:12px}.quality-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quality-item{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--paper-raised)}.quality-item p{margin:0 0 6px;color:var(--muted);font-size:12px}.quality-item strong{font-family:var(--data);font-size:22px;font-variant-numeric:tabular-nums}.empty{color:var(--muted);padding:24px;text-align:center}.muted{color:var(--muted);font-size:12px}.status-text{font-size:12px;font-weight:800}.status-text.ok{color:var(--green)}.status-text.warn{color:var(--orange)}.status-text.bad{color:var(--danger)}
button:focus-visible,select:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 32%,transparent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(max-width:1020px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.two-column{grid-template-columns:1fr}.operations-groups{grid-template-columns:1fr}.data-meta{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.dashboard-shell{padding:20px 16px 34px}.page-header{display:block}.page-header h1{font-size:28px}.data-meta{margin-top:18px;text-align:left;grid-template-columns:repeat(3,1fr)}.data-meta div{padding:8px}.filters{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ranking-grid{grid-template-columns:1fr}.summary-table,.detail-table{font-size:12px}.panel{padding:15px}.trend-bars{gap:7px}.trend-item{min-width:28px}.trend-date{font-size:10px}}
@media(max-width:480px){.filters,.metric-grid,.operations-groups{grid-template-columns:1fr}.data-meta{grid-template-columns:1fr 1fr}.view-tabs{width:100%}.view-tabs button{flex:1;padding:10px 8px}.metric-card{min-height:112px}.metric-card .metric-value{font-size:25px}}

/* Multi-select controls: compact by default, explicit choices on demand. */
.multi-filter{position:relative}.multi-select{position:relative}.multi-select summary{position:relative;display:flex;align-items:center;min-height:42px;padding:8px 34px 8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);font-weight:700;cursor:pointer;list-style:none;user-select:none}.multi-select summary::-webkit-details-marker{display:none}.multi-select summary::after{content:"";position:absolute;right:13px;width:7px;height:7px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-3px);transition:transform .18s ease}.multi-select[open] summary{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.multi-select[open] summary::after{transform:rotate(225deg) translate(-1px,-1px)}.multi-select-menu{position:absolute;z-index:12;top:calc(100% + 7px);left:0;right:0;max-height:232px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--paper-raised);box-shadow:var(--shadow)}.filter-choice{display:flex;align-items:center;gap:8px;min-height:34px;padding:5px 7px;border-radius:6px;cursor:pointer}.filter-choice:hover{background:var(--accent-faint)}.filter-choice input{width:15px;height:15px;accent-color:var(--accent)}.filter-empty{margin:0;padding:8px;color:var(--muted);font-size:12px}

/* Signal chart and ranking rails. */
.trend-chart-shell{height:236px;padding:0 2px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent-faint) 65%,transparent),transparent);overflow:hidden}.trend-chart{display:block;width:100%;height:100%;overflow:visible}.chart-gridline{stroke:var(--line);stroke-width:1;stroke-dasharray:3 5;opacity:.72}.trend-area{fill:var(--accent);fill-opacity:.11}.trend-line{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--accent) 55%,transparent))}.trend-point circle{fill:var(--paper);stroke:var(--accent);stroke-width:3}.trend-point text{font-family:var(--data);font-size:11px;font-weight:800;fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:4px;stroke-linejoin:round}.trend-point .chart-date{font-family:var(--display);font-size:10px;font-weight:600;fill:var(--muted);stroke:none}.ranking-row{grid-template-columns:34px minmax(0,1fr) auto}.rank-num{width:26px;height:24px;border-radius:6px;font-size:11px}.ranking-person{display:grid;gap:4px;min-width:0}.ranking-row button{padding:0}.ranking-track{display:block;height:3px;border-radius:99px;background:var(--line);overflow:hidden}.ranking-track i{display:block;height:100%;border-radius:inherit;background:var(--accent);box-shadow:0 0 7px color-mix(in srgb,var(--accent) 52%,transparent)}.ranking-count{font-family:var(--data);font-size:10px;letter-spacing:.08em;color:var(--accent);font-weight:800}

/* Night: a restrained operations-radar treatment, without changing data semantics. */
[data-theme="night"] body{background-color:var(--canvas);background-image:linear-gradient(rgba(57,213,245,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(57,213,245,.035) 1px,transparent 1px),radial-gradient(circle at 78% 0%,rgba(19,83,117,.30),transparent 28%);background-size:32px 32px,32px 32px,auto}[data-theme="night"] .dashboard-shell{position:relative}[data-theme="night"] .page-header{border-bottom-color:rgba(109,210,240,.20)}[data-theme="night"] .page-header::after{box-shadow:0 0 18px rgba(57,213,245,.75)}[data-theme="night"] .data-meta{background:rgba(10,26,44,.78);box-shadow:inset 0 1px 0 rgba(185,244,255,.08)}[data-theme="night"] .filters{background:rgba(9,25,42,.88);box-shadow:inset 0 1px 0 rgba(185,244,255,.06),var(--shadow)}[data-theme="night"] .panel,[data-theme="night"] .field-group,[data-theme="night"] .metric-card{background:linear-gradient(145deg,rgba(17,36,59,.98),rgba(10,25,43,.98));box-shadow:inset 0 1px 0 rgba(185,244,255,.05),0 10px 28px rgba(0,0,0,.16)}[data-theme="night"] .metric-card::before{background:linear-gradient(90deg,transparent,var(--accent),transparent);box-shadow:0 0 16px rgba(57,213,245,.58)}[data-theme="night"] .metric-card:hover{box-shadow:inset 0 1px 0 rgba(185,244,255,.16),0 15px 30px rgba(0,0,0,.22)}[data-theme="night"] .view-tabs{background:rgba(13,30,50,.88)}[data-theme="night"] .view-tabs button.is-active{color:#06111e;background:var(--accent);box-shadow:0 0 18px rgba(57,213,245,.30)}
