:root{--rail: #050f34;--rail-hi: #24365b;--rail-ink: #bdc6dc;--rail-dim: #8e9cbd;--rail-line: #1c2a52;--primary: #01195a;--primary-ink: #ffffff;--accent: #902923;--bg: #f4f6fa;--panel: #ffffff;--panel-2: #f8f9fc;--ink: #17243c;--muted: #5f6b80;--faint: #8792a6;--line: #e4e8f0;--line-2: #eef1f6;--soft: #edf2fd;--soft-ink: #1f3f86;--link: #315da0;--focus: #2a78d6;--shadow: 0 1px 2px rgba(23, 36, 60, .05), 0 1px 1px rgba(23, 36, 60, .03);--shadow-pop: 0 12px 32px rgba(5, 15, 52, .16), 0 2px 6px rgba(5, 15, 52, .08);--scrim: rgba(5, 15, 52, .34);--s1: #2a78d6;--s2: #eb6834;--s3: #1baf7a;--s4: #eda100;--s5: #e87ba4;--s6: #008300;--s7: #4a3aa7;--s8: #e34948;--q100: #cde2fb;--q150: #b7d3f6;--q200: #9ec5f4;--q250: #86b6ef;--q300: #6da7ec;--q400: #3987e5;--q450: #2a78d6;--q500: #256abf;--q550: #1c5cab;--q600: #184f95;--q700: #0d366b;--good: #0ca30c;--warning: #fab219;--serious: #ec835a;--critical: #d03b3b;--good-ink: #006300;--bad-ink: #b42323;--warn-ink: #84520e;--good-soft: #e8f6e8;--bad-soft: #fbeceb;--warn-soft: #fff4dc;--grid: #edf0f5;--axis: #c9d0dc;--track: #eef1f6;--muted-mark: #c6cedb;--font-head: "Poppins", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-body: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--r-sm: 8px;--r: 12px;--r-lg: 16px;--rail-w: 232px;--top-h: 60px;--ease: cubic-bezier(.2, 0, 0, 1);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--rail: #040a1f;--rail-hi: #1b2a52;--rail-ink: #b9c3da;--rail-dim: #7f8db0;--rail-line: #141f40;--primary: #3b6fe0;--primary-ink: #ffffff;--accent: #d8665f;--bg: #070d22;--panel: #101a35;--panel-2: #0c1530;--ink: #e8edf7;--muted: #a6b1c7;--faint: #7d89a3;--line: #22305a;--line-2: #1a2649;--soft: #18264f;--soft-ink: #b9cdff;--link: #8fb3ff;--focus: #6aa3ff;--shadow: 0 1px 2px rgba(0, 0, 0, .3);--shadow-pop: 0 16px 40px rgba(0, 0, 0, .5), 0 2px 8px rgba(0, 0, 0, .35);--scrim: rgba(0, 3, 12, .6);--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #008300;--s7: #9085e9;--s8: #e66767;--q100: #12254d;--q150: #15305f;--q200: #1a3c74;--q250: #1e4a8c;--q300: #2459a6;--q400: #2f6cc4;--q450: #3987e5;--q500: #5598e7;--q550: #6da7ec;--q600: #86b6ef;--q700: #b7d3f6;--good-ink: #46c246;--bad-ink: #ff8f87;--warn-ink: #f3c25a;--good-soft: #10331f;--bad-soft: #3a1a22;--warn-soft: #362a10;--grid: #1b2747;--axis: #33416a;--track: #1b2747;--muted-mark: #3a4870;color-scheme:dark}}:root[data-theme=dark]{--rail: #040a1f;--rail-hi: #1b2a52;--rail-ink: #b9c3da;--rail-dim: #7f8db0;--rail-line: #141f40;--primary: #3b6fe0;--primary-ink: #ffffff;--accent: #d8665f;--bg: #070d22;--panel: #101a35;--panel-2: #0c1530;--ink: #e8edf7;--muted: #a6b1c7;--faint: #7d89a3;--line: #22305a;--line-2: #1a2649;--soft: #18264f;--soft-ink: #b9cdff;--link: #8fb3ff;--focus: #6aa3ff;--shadow: 0 1px 2px rgba(0, 0, 0, .3);--shadow-pop: 0 16px 40px rgba(0, 0, 0, .5), 0 2px 8px rgba(0, 0, 0, .35);--scrim: rgba(0, 3, 12, .6);--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #008300;--s7: #9085e9;--s8: #e66767;--q100: #12254d;--q150: #15305f;--q200: #1a3c74;--q250: #1e4a8c;--q300: #2459a6;--q400: #2f6cc4;--q450: #3987e5;--q500: #5598e7;--q550: #6da7ec;--q600: #86b6ef;--q700: #b7d3f6;--good-ink: #46c246;--bad-ink: #ff8f87;--warn-ink: #f3c25a;--good-soft: #10331f;--bad-soft: #3a1a22;--warn-soft: #362a10;--grid: #1b2747;--axis: #33416a;--track: #1b2747;--muted-mark: #3a4870;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}#root{min-height:100dvh}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}h1,h2,h3,h4{font-family:var(--font-head);font-weight:600;letter-spacing:-.01em;margin:0;text-wrap:balance}h1{font-size:26px;line-height:1.25}h2{font-size:16px;line-height:1.35}h3{font-size:14px;line-height:1.4}p{margin:0}.muted{color:var(--muted)}.faint{color:var(--faint)}.num{font-variant-numeric:tabular-nums}.mono{font-family:var(--font-mono);font-size:12px}.nowrap{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.shell{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);min-height:100dvh;background:linear-gradient(to right,var(--rail) var(--rail-w),var(--bg) var(--rail-w))}.rail{position:sticky;top:0;height:100dvh;overflow-y:auto;background:radial-gradient(120% 60% at 0% 0%,rgba(49,93,160,.28),transparent 60%),var(--rail);color:var(--rail-ink);display:flex;flex-direction:column;padding:18px 14px 14px;gap:18px;border-right:1px solid var(--rail-line)}.rail-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 6px}.rail-brand img{height:34px;width:auto;display:block}.rail-brand .product{font-family:var(--font-head);font-weight:600;color:#fff;font-size:13px;line-height:1.15;letter-spacing:.01em}.rail-brand .product span{display:block;color:var(--rail-dim);font-weight:500;font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-top:2px}.rail-section{display:grid;gap:2px}.rail-label{font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--rail-dim);padding:0 10px 6px}.rail-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:var(--rail-ink);font-size:13.5px;font-weight:500;border:0;background:none;text-align:left;width:100%;transition:background .15s var(--ease),color .15s var(--ease)}.rail-item:hover{background:#ffffff0f;color:#fff;text-decoration:none}.rail-item[aria-current=page]{background:var(--rail-hi);color:#fff;box-shadow:inset 0 0 0 1px #ffffff0f}.rail-item svg{flex:none;opacity:.9}.rail-item .rail-tag{margin-left:auto;font-size:10.5px;color:var(--rail-dim)}.rail-foot{margin-top:auto;display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--rail-line)}.rail-view{display:grid;gap:4px;padding:0 8px}.rail-view label{font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--rail-dim)}.rail-view select{width:100%;height:32px;border-radius:8px;border:1px solid var(--rail-line);background:#ffffff0a;color:#fff;padding:0 8px;font-size:12.5px}.rail-view select option{color:#17243c}.rail-person{display:flex;align-items:center;gap:10px;padding:6px 8px}.rail-person .who{min-width:0}.rail-person .who b{display:block;color:#fff;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-person .who span{display:block;color:var(--rail-dim);font-size:11.5px}.avatar{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#e6ecfb;color:#01195a;font-weight:700;font-size:12px;font-family:var(--font-head)}.workspace{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;height:var(--top-h);display:flex;align-items:center;gap:10px;padding:0 24px;background:color-mix(in srgb,var(--panel) 86%,transparent);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}.topbar .grow{flex:1;min-width:0}.menu-btn{display:none}.content{padding:24px 24px 64px;max-width:1560px;width:100%;margin:0 auto;display:grid;gap:18px}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 20px}.page-head .lead{display:grid;gap:4px;min-width:0}.page-head .sub{color:var(--muted);font-size:13.5px}.page-actions{display:flex;flex-wrap:wrap;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-weight:600;font-size:13px;white-space:nowrap;transition:background .15s var(--ease),border-color .15s var(--ease)}.btn:hover{background:var(--panel-2);border-color:var(--axis);text-decoration:none}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn.primary:hover{filter:brightness(1.12)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--soft)}.btn.sm{height:30px;padding:0 10px;font-size:12.5px;border-radius:8px}.btn.icon{width:36px;padding:0}.btn.icon.sm{width:30px}.btn .count{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#fff;font-size:11px;display:inline-grid;place-items:center}.pickbtn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--panel);font-size:13px;font-weight:600;max-width:100%;min-width:0}.pickbtn:hover{border-color:var(--axis)}.pickbtn .lbl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pickbtn .dim{color:var(--muted);font-weight:500}.pickbtn svg{flex:none;color:var(--muted)}.seg{display:inline-flex;padding:3px;gap:2px;border-radius:10px;background:var(--panel-2);border:1px solid var(--line);max-width:100%;overflow-x:auto;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}.seg button{border:0;background:transparent;padding:5px 11px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--muted);flex:none;white-space:nowrap}@media (max-width: 520px){.seg button{padding:5px 8px}}.seg button[aria-pressed=true]{background:var(--panel);color:var(--ink);box-shadow:var(--shadow)}.seg button:hover:not([aria-pressed=true]){color:var(--ink)}.field{display:grid;gap:6px}.field label,.field .label{font-size:12.5px;font-weight:600;color:var(--muted)}.input,select.input{height:38px;border-radius:10px;border:1px solid var(--line);background:var(--panel);padding:0 12px;width:100%;min-width:0}.input:focus{outline:2px solid var(--focus);outline-offset:0;border-color:transparent}.search{position:relative;display:flex;align-items:center;min-width:0}.search svg{position:absolute;left:11px;color:var(--faint);pointer-events:none}.search .input{padding-left:34px;height:36px}.check{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:13px}.check:hover{background:var(--panel-2)}.check input{width:16px;height:16px;accent-color:var(--primary);margin:0;flex:none}.check .n{margin-left:auto;color:var(--faint);font-size:12px;font-variant-numeric:tabular-nums}.toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;font-weight:500}.toggle input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:34px;height:20px;border-radius:10px;background:var(--axis);position:relative;transition:background .15s var(--ease);margin:0;flex:none}.toggle input:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s var(--ease);box-shadow:0 1px 2px #0003}.toggle input:checked{background:var(--primary)}.toggle input:checked:after{transform:translate(14px)}.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap}.pill.sample{background:var(--warn-soft);color:var(--warn-ink)}.pill.soft{background:var(--soft);color:var(--soft-ink)}.pill.good{background:var(--good-soft);color:var(--good-ink)}.pill.bad{background:var(--bad-soft);color:var(--bad-ink)}.pill.warn{background:var(--warn-soft);color:var(--warn-ink)}.pill.plain{background:var(--panel-2);color:var(--muted);border:1px solid var(--line)}.tag{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:6px;font-size:11.5px;font-weight:600;background:var(--bad-soft);color:var(--bad-ink);white-space:nowrap}.tag.warn{background:var(--warn-soft);color:var(--warn-ink)}.tag.soft{background:var(--soft);color:var(--soft-ink)}.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 6px 0 10px;border-radius:14px;background:var(--soft);color:var(--soft-ink);font-size:12.5px;font-weight:600;border:0;max-width:100%}.chip span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip .x{display:grid;place-items:center;width:18px;height:18px;border-radius:9px}.chip:hover .x{background:#01195a1f}.grid{display:grid;gap:18px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g-21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.g-12{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.span2{grid-column:span 2}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);min-width:0;display:flex;flex-direction:column}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 6px;flex-wrap:wrap}.card-head .t{display:grid;gap:2px;min-width:0}.card-head .t p{color:var(--muted);font-size:12.5px}.card-body{padding:10px 18px 18px;min-width:0;flex:1}.card-body.flush{padding:6px 0 0}.card-foot{padding:10px 18px 14px;border-top:1px solid var(--line-2);color:var(--muted);font-size:12.5px;display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;align-items:center}.note{font-size:12.5px;color:var(--muted)}.note b{color:var(--ink);font-weight:600}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.kpis.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px 12px;box-shadow:var(--shadow);display:grid;gap:6px;min-width:0;position:relative}.kpi .k-label{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);font-weight:500}.kpi .k-row{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;min-height:40px}.kpi .k-value{font-family:var(--font-head);font-weight:600;font-size:28px;line-height:1.05;letter-spacing:-.02em;white-space:nowrap}.kpi .k-value small{font-size:14px;font-weight:500;color:var(--muted);margin-left:3px;letter-spacing:0}.kpi .k-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted);min-height:20px}.delta{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:600;white-space:nowrap}.delta.up{color:var(--good-ink)}.delta.down{color:var(--bad-ink)}.delta.flat{color:var(--muted)}.kpi.hero{grid-column:span 2;grid-row:span 2;align-content:space-between;background:linear-gradient(140deg,#01195a,#0b2a78 60%,#183f97);color:#fff;border-color:transparent;padding:18px 20px 16px}.kpi.hero .k-row{align-items:flex-end}.kpi.hero .k-label,.kpi.hero .k-foot{color:#ffffffc7}.kpi.hero .k-value{font-size:52px}.kpi.hero .delta.up{color:#9df29d}.kpi.hero .delta.down{color:#ffb4ae}.kpi.hero .delta.flat{color:#ffffffb3}.chart{position:relative;width:100%}.chart svg{display:block;overflow:visible}.chart text{fill:var(--muted);font-size:11.5px;font-family:var(--font-body)}.chart .tick-label{font-variant-numeric:tabular-nums}.chart .label-strong{fill:var(--ink);font-weight:600}.chart .grid-line{stroke:var(--grid);stroke-width:1}.chart .axis-line{stroke:var(--axis);stroke-width:1}.viz-tip{position:absolute;pointer-events:none;z-index:5;min-width:120px;max-width:260px;padding:8px 10px;border-radius:10px;background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow-pop);font-size:12px;color:var(--ink);transform:translate(-50%,calc(-100% - 10px));white-space:normal}.viz-tip .tt-title{font-weight:600;color:var(--muted);font-size:11.5px;margin-bottom:4px}.viz-tip .tt-row{display:flex;align-items:center;gap:8px}.viz-tip .tt-row b{font-size:13px;font-variant-numeric:tabular-nums}.viz-tip .tt-key{width:12px;height:3px;border-radius:2px;flex:none}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.legend i.line{height:3px;width:14px;border-radius:2px}.barlist{display:grid;gap:2px}.barrow{display:grid;grid-template-columns:minmax(90px,34%) minmax(0,1fr) auto;align-items:center;gap:10px;padding:5px 6px;border-radius:8px;border:0;background:none;text-align:left;width:100%}.barrow.clickable:hover{background:var(--panel-2)}.barrow .bl{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.barrow .bt{height:10px;background:var(--track);border-radius:0 5px 5px 0;position:relative;overflow:hidden}.barrow .bf{position:absolute;inset:0 auto 0 0;background:var(--s1);border-radius:0 4px 4px 0;transition:width .3s var(--ease)}.barrow .bf.dim{background:var(--muted-mark)}.barrow .bv{font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600;min-width:48px;text-align:right}.barrow .bv small{color:var(--faint);font-weight:500;margin-left:4px}.barlist.stacked .barrow{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"l v" "b b";row-gap:5px;padding:6px}.barlist.stacked .bl{grid-area:l;white-space:normal}.barlist.stacked .bt{grid-area:b}.barlist.stacked .bv{grid-area:v}.stack{display:flex;height:12px;border-radius:6px;overflow:hidden;gap:2px;background:transparent}.stack i{display:block;height:100%;min-width:0}.stackrow{display:grid;grid-template-columns:minmax(110px,30%) minmax(0,1fr) 76px;align-items:center;gap:10px;padding:5px 4px}.stackrow .sl{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stackrow .sv{font-size:12.5px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.meter{display:flex;align-items:center;gap:8px;min-width:90px}.meter .mt{flex:1;height:6px;border-radius:3px;background:var(--track);overflow:hidden}.meter .mf{height:100%;border-radius:3px;background:var(--s1)}.meter span{font-variant-numeric:tabular-nums;font-size:12.5px;min-width:38px;text-align:right}.heat{width:100%;border-collapse:separate;border-spacing:2px;font-size:12px}.heat th{font-weight:600;color:var(--muted);text-align:left;padding:4px 6px;white-space:nowrap}.heat th.col{text-align:center;font-weight:500}.heat td{height:30px;text-align:center;border-radius:6px;font-variant-numeric:tabular-nums;font-weight:600;min-width:42px}.map-wrap{position:relative;border-radius:12px;overflow:hidden;background:var(--panel-2);border:1px solid var(--line-2);touch-action:none}.map-wrap svg{display:block;width:100%;height:auto;cursor:grab}.map-wrap svg:active{cursor:grabbing}.map-region{stroke:var(--panel);stroke-width:.8;vector-effect:non-scaling-stroke;transition:fill .2s var(--ease)}.map-region.empty{fill:var(--line-2)}.map-lake{fill:var(--panel)}.map-tools{position:absolute;right:10px;top:10px;display:grid;gap:6px}.map-tools .btn{background:var(--panel);box-shadow:var(--shadow)}.map-legend{position:absolute;left:10px;bottom:10px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--panel) 92%,transparent);border:1px solid var(--line);font-size:11.5px;color:var(--muted);display:grid;gap:6px;max-width:calc(100% - 20px)}.map-legend .ramp{display:flex;height:8px;width:160px;max-width:100%;border-radius:4px;overflow:hidden}.map-legend .ramp i{flex:1}.map-legend .ends{display:flex;justify-content:space-between}.map-legend .dots{display:flex;flex-wrap:wrap;gap:4px 12px}.map-legend .dots span{display:inline-flex;align-items:center;gap:5px}.map-legend .dots i{width:9px;height:9px;border-radius:50%;display:inline-block;border:1.5px solid var(--panel);box-shadow:0 0 0 1px var(--line)}.table-wrap{overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}table.dt{width:100%;border-collapse:collapse;font-size:13px}.dt th{position:sticky;top:0;z-index:1;background:var(--panel);text-align:left;font-size:11.5px;font-weight:600;letter-spacing:.02em;color:var(--muted);padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.dt th.r,.dt td.r{text-align:right}.dt th.c,.dt td.c{text-align:center}.dt th button{border:0;background:none;padding:0;font:inherit;color:inherit;display:inline-flex;align-items:center;gap:4px}.dt th button:hover{color:var(--ink)}.dt td{padding:9px 12px;border-bottom:1px solid var(--line-2);vertical-align:middle;font-variant-numeric:tabular-nums}.dt tbody tr{transition:background .12s var(--ease)}.dt tbody tr.clickable{cursor:pointer}.dt tbody tr.clickable:hover{background:var(--panel-2)}.dt tr.group td{background:var(--panel-2);font-weight:600;font-size:12.5px;color:var(--ink);padding:8px 12px}.dt tr.group td .muted{font-weight:500}.dt tr.zero td{color:var(--faint)}.dt .cell-main{display:grid;min-width:150px}.dt .cell-main b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.dt .cell-main span{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.dt .cell-main.wrap b,.dt .cell-main.wrap span{white-space:normal;max-width:220px}.dt .rank{color:var(--faint);font-size:12px;width:28px}.dt tfoot td{font-weight:600;border-top:1px solid var(--line);border-bottom:0;background:var(--panel-2)}.table-more{display:flex;justify-content:center;padding:12px}.pop{position:absolute;z-index:60;min-width:240px;max-width:min(380px,calc(100vw - 24px));background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-pop);padding:8px;display:grid;gap:2px}.pop .pop-title{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:8px 10px 4px}.pop .opt{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;border:0;background:none;text-align:left;width:100%;font-size:13px}.pop .opt:hover{background:var(--panel-2)}.pop .opt[aria-checked=true]{font-weight:600}.pop .opt .tick{width:16px;flex:none;color:var(--primary)}.pop .sep{height:1px;background:var(--line);margin:6px 4px}.pop .pop-foot{display:grid;gap:8px;padding:8px 10px 6px}.pop-scroll{max-height:min(420px,60dvh);overflow-y:auto}.pop-anchor{position:relative;display:inline-flex;min-width:0;max-width:100%}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:70;animation:fade .16s var(--ease)}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100vw);z-index:80;background:var(--panel);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;animation:slide .2s var(--ease);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.drawer.wide{width:min(720px,100vw)}.drawer-head{display:flex;align-items:flex-start;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--line)}.drawer-head .t{flex:1;min-width:0;display:grid;gap:4px}.drawer-head h2{font-size:18px}.drawer-body{overflow-y:auto;padding:16px 20px 28px;display:grid;gap:18px;align-content:start}.drawer-foot{border-top:1px solid var(--line);padding:12px 20px;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}@keyframes slide{0%{transform:translate(24px);opacity:.6}to{transform:none;opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.fact{background:var(--panel-2);border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;display:grid;gap:2px;min-width:0}.fact span{font-size:11.5px;color:var(--muted)}.fact b{font-size:14px;font-weight:600;overflow-wrap:anywhere}.qa{display:grid;gap:0;border:1px solid var(--line-2);border-radius:12px;overflow:hidden}.qa-sec{padding:9px 14px;background:var(--panel-2);font-size:12px;font-weight:600;color:var(--muted);letter-spacing:.02em;border-bottom:1px solid var(--line-2)}.qa-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px;padding:9px 14px;border-bottom:1px solid var(--line-2);font-size:13px}.qa-row:last-child{border-bottom:0}.qa-row .q{color:var(--muted)}.qa-row .a{font-weight:600;overflow-wrap:anywhere}.qa-row .a table{border-collapse:collapse;font-weight:500;font-size:12.5px}.qa-row .a td{padding:2px 10px 2px 0}.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.photo{aspect-ratio:4 / 3;border-radius:10px;overflow:hidden;background:var(--panel-2);border:1px solid var(--line-2);display:grid;place-items:center;position:relative;max-width:100%;padding:0;color:var(--muted)}.photo img{width:100%;height:100%;object-fit:cover;display:block}.photo .ph{display:grid;place-items:center;gap:4px;text-align:center;padding:8px;font-size:11px;color:var(--faint)}.photo .cap{position:absolute;left:0;right:0;bottom:0;padding:14px 8px 6px;font-size:11px;color:#fff;background:linear-gradient(transparent,#050f34c7);text-align:left}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.photo-card{display:grid;gap:6px;background:none;border:0;padding:0;text-align:left;min-width:0}.photo-card .meta{display:grid;gap:1px;font-size:12px;min-width:0}.photo-card .meta b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-card .meta span{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:90;background:#17243c;color:#fff;padding:10px 16px;border-radius:12px;font-size:13px;font-weight:500;box-shadow:var(--shadow-pop);animation:fade .16s var(--ease);max-width:calc(100vw - 32px)}.empty{display:grid;place-items:center;text-align:center;gap:8px;padding:36px 16px;color:var(--muted)}.empty svg{color:var(--faint)}.empty b{color:var(--ink);font-size:14px}.loading-veil{opacity:.55;transition:opacity .2s var(--ease);pointer-events:none}.banner{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--panel);font-size:13px;flex-wrap:wrap}.banner.sample{background:var(--warn-soft);border-color:transparent;color:var(--warn-ink)}.banner.sample b{color:inherit}.banner .grow{flex:1;min-width:200px}.login{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);min-height:100dvh}.login-brand{background:radial-gradient(100% 70% at 10% 0%,rgba(49,93,160,.4),transparent 60%),#050f34;color:#c9d2e8;padding:56px;display:flex;flex-direction:column;justify-content:space-between;gap:32px}.login-brand img{width:200px;height:auto}.login-brand h1{color:#fff;font-size:34px;line-height:1.15;max-width:14ch}.login-brand p{max-width:44ch;font-size:15px}.login-form{display:grid;place-items:center;padding:32px 20px;background:var(--bg)}.login-card{width:min(400px,100%);display:grid;gap:16px}.login-card .err{color:var(--bad-ink);background:var(--bad-soft);border-radius:10px;padding:10px 12px;font-size:13px}.center-page{min-height:100dvh;display:grid;place-items:center;padding:24px 16px}.center-card{width:min(460px,100%);display:grid;gap:14px;text-align:left;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--shadow)}.qx{display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:18px;align-items:start}.qlist{position:sticky;top:calc(var(--top-h) + 16px);max-height:calc(100dvh - var(--top-h) - 32px);overflow-y:auto}.qitem{display:grid;gap:1px;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:9px;font-size:13px}.qitem:hover{background:var(--panel-2)}.qitem[aria-current=true]{background:var(--soft);color:var(--soft-ink)}.qitem span{font-size:11.5px;color:var(--faint)}.qsec{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:12px 10px 4px}@media (max-width: 1180px){.g3{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.g-21,.g-12{grid-template-columns:minmax(0,1fr)}.span2{grid-column:auto}}@media (max-width: 1020px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis.c3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 900px){.shell{grid-template-columns:minmax(0,1fr);background:var(--bg)}.rail{position:fixed;inset:0 auto 0 0;width:min(288px,86vw);z-index:85;transform:translate(-102%);transition:transform .2s var(--ease);padding-top:calc(18px + env(safe-area-inset-top,0px))}.rail.open{transform:none;box-shadow:var(--shadow-pop)}.menu-btn{display:inline-flex}.topbar{padding:0 16px}.content{padding:18px 16px 56px}.qx{grid-template-columns:minmax(0,1fr)}.qlist{position:static;max-height:320px}.login{grid-template-columns:minmax(0,1fr)}.login-brand{padding:32px 24px}.login-brand h1{font-size:26px}}@media (max-width: 720px){.topbar{gap:6px;padding:0 10px}.topbar .grow{display:none}.topbar>.pop-anchor{flex:1 1 0;min-width:0}.topbar .pickbtn{width:100%;padding:0 9px;gap:6px}.topbar .pickbtn>svg:last-child{display:none}.g2,.g3{grid-template-columns:minmax(0,1fr)}.kpis,.kpis.c3{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi{padding:12px}.kpi.hero{grid-row:auto}.kpi .k-value{font-size:22px}.kpi.hero{grid-column:1 / -1}.kpi.hero .k-value{font-size:32px}h1{font-size:22px}.hide-sm{display:none!important}.barrow{grid-template-columns:minmax(80px,38%) minmax(0,1fr) auto}.qa-row{grid-template-columns:minmax(0,1fr);gap:2px}.drawer-head,.drawer-body{padding-left:16px;padding-right:16px}}@media (max-width: 380px){.kpis,.kpis.c3{grid-template-columns:minmax(0,1fr)}}@media print{.rail,.topbar,.page-actions,.no-print{display:none!important}.shell{display:block}.content{padding:0;max-width:none}body{background:#fff}.card,.kpi{box-shadow:none;break-inside:avoid}}.fresh{white-space:nowrap}.fresh-btn{border:0;background:transparent;color:var(--muted);width:22px;height:22px;margin-left:2px;border-radius:6px;display:inline-grid;place-items:center;vertical-align:-5px;cursor:pointer}.fresh-btn:hover:not(:disabled){color:var(--ink);background:var(--line-2)}.fresh-btn:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.fresh-btn:disabled{cursor:default}.fresh-btn:disabled svg{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.fresh-btn:disabled svg{animation:none}}@media print{.fresh-btn{display:none}}
