:root{--page: #f8fafc;--surface: #ffffff;--surface-alt: #f1f5f9;--surface-sunken: #e8edf3;--border: #e1e0d9;--border-strong: #c3c2b7;--ink: #0b0b0b;--ink-secondary: #52514e;--ink-muted: #898781;--accent: #2a78d6;--accent-dark: #1c5cab;--accent-wash: #eff6ff;--seq-100: #cde2fb;--seq-250: #86b6ef;--seq-400: #3987e5;--seq-450: #2a78d6;--seq-550: #1c5cab;--seq-700: #0d366b;--div-negative: #2a78d6;--div-positive: #e34948;--div-mid: #f0efec;--status-good: #0ca30c;--status-warning: #fab219;--status-serious: #ec835a;--status-critical: #d03b3b;--status-good-text: #006300;--grid: #e1e0d9;--axis: #c3c2b7;--track: #e8edf3;--radius: 8px;--radius-lg: 12px;--mark-radius: 4px;--font: system-ui, -apple-system, "Segoe UI", sans-serif;--mono: ui-monospace, "SF Mono", Menlo, monospace}@media(prefers-color-scheme:dark){:root:where(:not([data-theme=light])){color-scheme:dark;--page: #0d0d0d;--surface: #1e293b;--surface-alt: #334155;--surface-sunken: #172033;--border: #2c2c2a;--border-strong: #383835;--ink: #ffffff;--ink-secondary: #c3c2b7;--ink-muted: #898781;--accent: #3987e5;--accent-dark: #2a78d6;--accent-wash: #1e3a5f;--seq-100: #0d366b;--seq-250: #184f95;--seq-400: #2a78d6;--seq-450: #3987e5;--seq-550: #5598e7;--seq-700: #9ec5f4;--div-negative: #3987e5;--div-positive: #e66767;--div-mid: #383835;--status-good-text: #0ca30c;--grid: #2c2c2a;--axis: #383835;--track: #172033}}:root[data-theme=dark]{color-scheme:dark;--page: #0d0d0d;--surface: #1e293b;--surface-alt: #334155;--surface-sunken: #172033;--border: #2c2c2a;--border-strong: #383835;--ink: #ffffff;--ink-secondary: #c3c2b7;--ink-muted: #898781;--accent: #3987e5;--accent-dark: #2a78d6;--accent-wash: #1e3a5f;--seq-100: #0d366b;--seq-250: #184f95;--seq-400: #2a78d6;--seq-450: #3987e5;--seq-550: #5598e7;--seq-700: #9ec5f4;--div-negative: #3987e5;--div-positive: #e66767;--div-mid: #383835;--status-good-text: #0ca30c;--grid: #2c2c2a;--axis: #383835;--track: #172033}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--page);color:var(--ink);font-size:15px;line-height:1.5}.shell{display:grid;grid-template-columns:236px 1fr;min-height:100%}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:static!important;height:auto!important;border-right:none!important;border-bottom:1px solid var(--border)}.sidebar__nav{display:flex;flex-wrap:wrap;gap:4px}}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:18px 14px;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar__brand{font-weight:700;font-size:15px;margin-bottom:2px}.sidebar__sub{font-size:12px;color:var(--ink-muted);margin-bottom:20px}.sidebar__group{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);font-weight:700;margin:18px 0 6px 8px}.sidebar__link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:var(--radius);color:var(--ink-secondary);text-decoration:none;font-size:14px;font-weight:500}.sidebar__link:hover{background:var(--surface-alt)}.sidebar__link--active{background:var(--accent-wash);color:var(--accent-dark);font-weight:650}.main{padding:24px 28px 64px;max-width:1360px;width:100%}.page-head{margin-bottom:20px}.page-title{font-size:24px;font-weight:700;margin:0 0 4px;letter-spacing:-.01em}.page-sub{color:var(--ink-secondary);margin:0;max-width:76ch}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;margin-bottom:16px}.panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.panel__title{font-size:16px;font-weight:650;margin:0 0 2px}.panel__note{font-size:13px;color:var(--ink-secondary);margin:0;max-width:72ch}.grid{display:grid;gap:16px}.grid--2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.grid--3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.grid--4{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px}.tile__label{font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted);margin:0 0 8px}.tile__value{font-size:30px;font-weight:700;line-height:1.05;letter-spacing:-.02em;margin:0;color:var(--ink)}.tile__unit{font-size:15px;font-weight:600;color:var(--ink-secondary);margin-left:3px}.tile__meta{font-size:13px;color:var(--ink-secondary);margin:6px 0 0}.hero{font-size:46px;font-weight:700;line-height:1;letter-spacing:-.03em}.chart{display:flex;flex-direction:column;gap:2px}.hbar{display:grid;grid-template-columns:minmax(96px,168px) 1fr auto;align-items:center;gap:12px;padding:5px 0;border:none;background:none;width:100%;text-align:left;font:inherit;color:inherit;cursor:default}.hbar__label{font-size:13px;color:var(--ink-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbar__track{position:relative;height:14px;background:var(--track);border-radius:var(--mark-radius)}.hbar__mark{position:absolute;inset:0 auto 0 0;border-radius:0 var(--mark-radius) var(--mark-radius) 0;background:var(--seq-450);min-width:3px}.hbar__target{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink-muted);border-radius:1px}.hbar__value{font-size:13px;font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums;min-width:68px;text-align:right}.hbar:hover .hbar__mark{filter:brightness(.92)}.dbar{display:grid;grid-template-columns:minmax(96px,168px) 1fr auto;align-items:center;gap:12px;padding:5px 0}.dbar__track{position:relative;height:14px;background:var(--div-mid);border-radius:var(--mark-radius)}.dbar__zero{position:absolute;top:-4px;bottom:-4px;left:50%;width:1px;background:var(--axis)}.dbar__mark{position:absolute;top:0;bottom:0;min-width:3px}.dbar__mark--negative{background:var(--div-negative);border-radius:var(--mark-radius) 0 0 var(--mark-radius)}.dbar__mark--positive{background:var(--div-positive);border-radius:0 var(--mark-radius) var(--mark-radius) 0}.cols{display:flex;align-items:flex-end;gap:2px;height:148px;padding-top:8px;border-bottom:1px solid var(--axis)}.col{flex:1;min-width:10px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;position:relative}.col__mark{width:100%;background:var(--seq-450);border-radius:var(--mark-radius) var(--mark-radius) 0 0;min-height:2px}.col:hover .col__mark{filter:brightness(.92)}.col__label{font-size:11px;color:var(--ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;padding-top:10px;border-top:1px solid var(--grid)}.legend__item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-secondary)}.legend__swatch{width:11px;height:11px;border-radius:3px;flex-shrink:0}.tooltip{position:relative}.tooltip__content{position:absolute;z-index:40;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--ink);color:var(--surface);padding:7px 10px;border-radius:6px;font-size:12px;white-space:nowrap;pointer-events:none;opacity:0;box-shadow:0 4px 12px #0000002e}.tooltip:hover .tooltip__content,.tooltip:focus-visible .tooltip__content{opacity:1}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);position:sticky;top:0}.table td{padding:10px 14px;border-bottom:1px solid var(--grid);vertical-align:top}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--surface-alt)}.table--numeric td:not(:first-child),.table--numeric th:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.btn{min-height:38px;padding:8px 14px;border-radius:var(--radius);border:1px solid transparent;font:inherit;font-weight:600;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover:not(:disabled){background:var(--accent-dark)}.btn--secondary{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.btn--secondary:hover:not(:disabled){background:var(--surface-alt)}.btn--ghost{background:transparent;color:var(--accent)}.btn--danger{background:var(--status-critical);color:#fff}.btn--sm{min-height:30px;padding:4px 10px;font-size:13px}.field{margin-bottom:14px}.field__label{display:block;font-size:13px;font-weight:600;color:var(--ink-secondary);margin-bottom:5px}.input,.select,.textarea{width:100%;min-height:38px;padding:8px 11px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--ink);font:inherit;font-size:14px}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.textarea{min-height:84px;resize:vertical}.field__error{color:var(--status-critical);font-size:13px;margin-top:5px}.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:16px;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.filters .field{margin-bottom:0;min-width:160px}.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:650;white-space:nowrap;background:var(--surface-alt);color:var(--ink-secondary);border:1px solid var(--border)}.chip__icon{font-size:11px;line-height:1}.chip--good{background:color-mix(in srgb,var(--status-good) 12%,var(--surface));color:var(--status-good-text);border-color:color-mix(in srgb,var(--status-good) 40%,var(--surface))}.chip--warning{background:color-mix(in srgb,var(--status-warning) 18%,var(--surface));color:#7a4e00;border-color:color-mix(in srgb,var(--status-warning) 50%,var(--surface))}.chip--serious{background:color-mix(in srgb,var(--status-serious) 16%,var(--surface));color:#8a3a12;border-color:color-mix(in srgb,var(--status-serious) 45%,var(--surface))}.chip--critical{background:color-mix(in srgb,var(--status-critical) 12%,var(--surface));color:var(--status-critical);border-color:color-mix(in srgb,var(--status-critical) 40%,var(--surface))}.chip--accent{background:var(--accent-wash);color:var(--accent-dark);border-color:color-mix(in srgb,var(--accent) 35%,var(--surface))}@media(prefers-color-scheme:dark){:root:where(:not([data-theme=light])) .chip--warning{color:#fbd279}:root:where(:not([data-theme=light])) .chip--serious{color:#f3b394}}:root[data-theme=dark] .chip--warning{color:#fbd279}:root[data-theme=dark] .chip--serious{color:#f3b394}.callout{border-radius:var(--radius);padding:12px 14px;margin-bottom:14px;font-size:14px;border:1px solid;border-left-width:3px;background:var(--surface)}.callout__title{font-weight:650;display:block;margin-bottom:2px}.callout--info{border-color:var(--border);border-left-color:var(--accent)}.callout--good{border-color:var(--border);border-left-color:var(--status-good)}.callout--warning{border-color:var(--border);border-left-color:var(--status-warning)}.callout--critical{border-color:var(--border);border-left-color:var(--status-critical)}.row{display:flex;align-items:center;gap:10px}.row--between{justify-content:space-between}.row--wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:10px}.muted{color:var(--ink-secondary);font-size:13px}.faint{color:var(--ink-muted);font-size:12px}.strong{font-weight:650}.mono{font-family:var(--mono);font-size:13px}.num{font-variant-numeric:tabular-nums}.center{text-align:center}.divider{height:1px;background:var(--border);margin:16px 0}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.center-screen{min-height:100vh;display:grid;place-items:center;padding:24px}.scroll-y{max-height:520px;overflow-y:auto}details.note{margin-top:12px}details.note summary{cursor:pointer;font-size:13px;color:var(--ink-muted)}details.note>*:not(summary){margin-top:8px;font-size:13px;color:var(--ink-secondary)}.ref{font-size:11px;font-weight:700;color:var(--accent);background:var(--accent-wash);padding:1px 6px;border-radius:4px;white-space:nowrap}
