:root{--paper:#f4f6f5;--sheet:#fff;--ink:#15222b;--muted:#56646d;--faint:#8a979e;--rule:#d3dbde;--tint:#e9eeef;--accent:#0b6584;--accent-ink:#fff;--accent-tint:#dcecf1;--s1:#2a78d6;--s2:#eb6834;--u1:#cde2fb;--u2:#9ec5f4;--u3:#6da7ec;--u4:#3987e5;--u5:#1c5cab;--good:#2f7d3a;--warn:#9a6400;--crit:#c8372f;--good-bg:#e3f1e5;--warn-bg:#fbf0d9;--crit-bg:#fbe3e1;--road:#c7cfd2;--hatch:#9aa6ab;--f-display:"Barlow Condensed", "Arial Narrow", sans-serif;--f-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0f1518;--sheet:#151d21;--ink:#e4eaec;--muted:#9aa8ae;--faint:#6f7d83;--rule:#2b373c;--tint:#1b2529;--accent:#4fb0cf;--accent-ink:#0b1417;--accent-tint:#183340;--s1:#3987e5;--s2:#d95926;--u1:#1d3550;--u2:#184f95;--u3:#2a78d6;--u4:#5598e7;--u5:#9ec5f4;--good:#5cbf6a;--warn:#e0a63a;--crit:#ef6b62;--good-bg:#16301b;--warn-bg:#33270f;--crit-bg:#3a1a18;--road:#33414a;--hatch:#56656c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#0f1518;--sheet:#151d21;--ink:#e4eaec;--muted:#9aa8ae;--faint:#6f7d83;--rule:#2b373c;--tint:#1b2529;--accent:#4fb0cf;--accent-ink:#0b1417;--accent-tint:#183340;--s1:#3987e5;--s2:#d95926;--u1:#1d3550;--u2:#184f95;--u3:#2a78d6;--u4:#5598e7;--u5:#9ec5f4;--good:#5cbf6a;--warn:#e0a63a;--crit:#ef6b62;--good-bg:#16301b;--warn-bg:#33270f;--crit-bg:#3a1a18;--road:#33414a;--hatch:#56656c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font:14px/1.5 var(--f-body);margin:0}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;font-weight:600;line-height:1.1}h1{font-size:34px}h2{font-size:26px}h3{font-size:18px}p{margin:0}a{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:var(--f-mono);font-size:.92em}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.note{color:var(--muted);font-size:12.5px}.eyebrow{font:500 11px/1 var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spacer{flex:1}.btn{border:1px solid var(--rule);background:var(--sheet);cursor:pointer;color:var(--ink);border-radius:5px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{background:var(--tint)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.08)}.btn.danger{color:var(--crit)}.btn.ghost{background:0 0;border-color:#0000}.btn:disabled{opacity:.5;cursor:default}.field{flex-direction:column;gap:3px;min-width:0;display:flex}.field>span{font:500 11px/1.2 var(--f-mono);letter-spacing:.03em;color:var(--muted)}.field input,.field select,.field textarea,.input{border:1px solid var(--rule);background:var(--paper);border-radius:4px;width:100%;min-width:0;padding:6px 8px}.field input:focus,.field select:focus,.input:focus{outline:2px solid var(--accent);outline-offset:-1px}.field .unit{font:11px var(--f-mono);color:var(--faint)}.grid2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.grid3{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.grid4{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.pill{font:500 11px/1 var(--f-mono);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 7px;display:inline-flex}.pill i{font-style:normal;font-weight:700}.pill.ok{background:var(--good-bg);color:var(--good)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.fail{background:var(--crit-bg);color:var(--crit)}.pill.info{background:var(--tint);color:var(--muted)}.shell{grid-template-rows:auto minmax(0,1fr);grid-template-columns:232px minmax(0,1fr);height:100%;display:grid}.topbar{border-bottom:1px solid var(--rule);background:var(--sheet);grid-column:1/-1;align-items:center;gap:14px;padding:10px 18px;display:flex}.brand{font:700 20px/1 var(--f-display);letter-spacing:.02em;color:var(--ink);letter-spacing:.06em;align-items:center;gap:8px;text-decoration:none;display:flex}.crumb{color:var(--muted);font-size:13px}.side{border-right:1px solid var(--rule);background:var(--sheet);flex-direction:column;gap:2px;padding:14px 10px;display:flex;overflow-y:auto}.step{color:var(--ink);border-radius:5px;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;text-decoration:none;display:grid}.step:hover{background:var(--tint)}.step.active{background:var(--accent-tint)}.step .n{font:500 11px var(--f-mono);color:var(--muted);border:1px solid var(--rule);border-radius:50%;place-items:center;width:22px;height:22px;display:grid}.step.active .n{border-color:var(--accent);color:var(--accent)}.step .t{font-size:13.5px;font-weight:500}.step .s{font:11px var(--f-mono);color:var(--muted);grid-column:2/4;margin-top:-4px}.side .foot{color:var(--muted);margin-top:auto;padding:10px;font-size:12px}.main{min-width:0;overflow:auto}.page{flex-direction:column;gap:16px;max-width:1400px;padding:22px 26px 60px;display:flex}.pagehead{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.pagehead .lead{color:var(--muted);max-width:70ch;margin-top:4px}@media (width<=860px){.shell{grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:1fr}.side{border-right:0;border-bottom:1px solid var(--rule);flex-direction:row;padding:6px;overflow-x:auto}.step{white-space:nowrap;grid-template-columns:22px auto}.step .s,.side .foot{display:none}.page{padding:16px}.grid3,.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}.panel{background:var(--sheet);border:1px solid var(--rule);border-radius:6px;min-width:0;padding:16px}.panel.flush{padding:0;overflow:hidden}.kpis{background:var(--rule);border:1px solid var(--rule);border-radius:6px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;display:grid;overflow:hidden}.kpi{background:var(--sheet);padding:12px 14px}.kpi b{font:600 28px/1.1 var(--f-display);font-variant-numeric:tabular-nums;display:block}.kpi span{color:var(--muted);font-size:12.5px}.kpi.fail b{color:var(--crit)}.kpi.warn b{color:var(--warn)}.tablewrap{max-height:calc(100vh - 230px);overflow:auto}table.data{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}table.data th,table.data td{border-bottom:1px solid var(--rule);text-align:left;white-space:nowrap;padding:6px 9px}table.data th{font:500 10.5px/1.25 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:var(--sheet);z-index:1;vertical-align:bottom;white-space:normal;position:sticky;top:0}table.data td.n,table.data th.n{text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:12px}table.data tbody tr{cursor:pointer}table.data tbody tr:hover td{background:var(--tint)}table.data tbody tr.sel td{background:var(--accent-tint)}.bar{background:var(--tint);vertical-align:middle;border-radius:2px;width:54px;height:7px;margin-right:6px;display:inline-block;position:relative;overflow:hidden}.bar>i{border-radius:2px;position:absolute;inset:0 auto 0 0}.drawer-bg{z-index:20;background:#0a141947;position:fixed;inset:0}.drawer{background:var(--sheet);border-left:1px solid var(--rule);z-index:21;flex-direction:column;width:min(620px,100%);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 30px #0000001f}.drawer header{border-bottom:1px solid var(--rule);align-items:center;gap:10px;padding:14px 18px;display:flex}.drawer .body{flex-direction:column;gap:18px;padding:16px 18px 40px;display:flex;overflow-y:auto}.group{flex-direction:column;gap:10px;display:flex}.group>h4{font:600 12px/1 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--rule);margin:0;padding-bottom:6px}.trail{border:1px solid var(--rule);border-radius:6px;overflow:hidden}.trail .r{border-bottom:1px solid var(--rule);grid-template-columns:130px minmax(0,1fr) auto;align-items:baseline;gap:10px;padding:7px 10px;display:grid}.trail .r:last-child{border-bottom:0}.trail .k{color:var(--muted);font-size:12.5px}.trail .f{font:11.5px/1.45 var(--f-mono);color:var(--faint);overflow-wrap:anywhere}.trail .v{font:500 13px var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--rule);font:12px var(--f-mono);background:var(--paper);border-radius:999px;align-items:center;gap:4px;padding:2px 4px 2px 9px;display:inline-flex}.chip button{cursor:pointer;color:var(--muted);background:0 0;border:0;padding:0 4px;font-size:14px;line-height:1}.chart{width:100%;min-width:860px;display:block}.chart text{fill:var(--muted);font:11px var(--f-mono)}.chart .lab{fill:var(--ink);font:500 11.5px var(--f-body)}.chart .grid{stroke:var(--rule);stroke-width:1px}.chart .road{fill:var(--road)}.chart .seg{stroke:var(--sheet);stroke-width:1px;cursor:pointer}.chart .seg:hover,.chart .seg.sel{stroke:var(--ink);stroke-width:2px}.chart .u1{fill:var(--u1)}.chart .u2{fill:var(--u2)}.chart .u3{fill:var(--u3)}.chart .u4{fill:var(--u4)}.chart .u5{fill:var(--u5)}.chart .u6{fill:var(--crit)}.chart .cul{fill:var(--ink);cursor:pointer}.chart .cul.bad{fill:var(--crit)}.chart .cultxt{fill:var(--ink);font:500 10.5px var(--f-mono)}.chart .lineL{fill:none;stroke:var(--s1);stroke-width:2px}.chart .lineR{fill:none;stroke:var(--s2);stroke-width:2px}.chart .stem{stroke:var(--muted);stroke-width:2px}.chart .il{fill:var(--sheet);stroke:var(--ink);stroke-width:2px}.chart .rl{fill:var(--ink)}.chart .xh{stroke:var(--muted);stroke-dasharray:3 3}.chart .limit{stroke:var(--crit);stroke-width:1.5px;stroke-dasharray:5 4}.chart .pt{fill:var(--ink);stroke:var(--sheet);stroke-width:2px}.chart.small{min-width:0}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:12px;display:flex}.sw{vertical-align:-1px;border-radius:2px;width:14px;height:10px;margin-right:5px;display:inline-block}.ln{vertical-align:3px;width:16px;height:2px;margin-right:5px;display:inline-block}.scrollx{overflow-x:auto}.tip{pointer-events:none;z-index:50;background:var(--ink);color:var(--paper);font:12px/1.45 var(--f-mono);border-radius:4px;max-width:300px;padding:8px 10px;position:fixed;box-shadow:0 4px 14px #0000002e}.issue{border-bottom:1px solid var(--rule);grid-template-columns:74px minmax(0,1fr) auto;align-items:start;gap:12px;padding:10px 14px;display:grid}.issue:last-child{border-bottom:0}.issue b{font-size:13.5px;font-weight:600}.issue p{color:var(--muted);font-size:13px}.home{flex-direction:column;gap:22px;max-width:1040px;margin:0 auto;padding:36px 20px 60px;display:flex}.cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.card{background:var(--sheet);border:1px solid var(--rule);color:var(--ink);border-radius:6px;flex-direction:column;gap:8px;padding:16px;text-decoration:none;display:flex}.card:hover{border-color:var(--accent)}.card .meta{font:12px var(--f-mono);color:var(--muted)}.flow{background:var(--rule);border:1px solid var(--rule);border-radius:6px;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.flow div{background:var(--sheet);flex-direction:column;gap:4px;padding:12px;display:flex}.flow b{font:600 15px var(--f-display);letter-spacing:.02em}.flow span{color:var(--muted);font-size:12.5px}@media (width<=860px){.flow{grid-template-columns:repeat(2,minmax(0,1fr))}}.report{color:#000;background:#fff;padding:24px;font-size:11px}.report table{border-collapse:collapse;width:100%}.report th,.report td{text-align:center;font-variant-numeric:tabular-nums;border:1px solid #555;padding:3px 4px}.report th{background:#eee;font-weight:600}.report .hdr{grid-template-columns:160px 1fr;gap:2px 10px;margin:10px 0 14px;display:grid}.report .title{text-align:center;font-size:13px;font-weight:700}@media print{.topbar,.side,.noprint{display:none!important}.shell{display:block}.main{overflow:visible}.page{max-width:none;padding:0}.report{padding:0}.report+.report{page-break-before:always}@page{size:A3 landscape;margin:10mm}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
