@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--board:#f6f5f2;--paper:#15120f;--surface:#fff;--red:#ff5a36;--green:#37c871;--amber:#ffc53d;--red-ink:#c4371a;--green-ink:#137a3c;--amber-ink:#8a5a00;--on-signal:#15120f;--shadow:0 1px 2px #15120f0f, 0 4px 16px #15120f0f;--panel:var(--surface);--panel-2:color-mix(in srgb, var(--paper) 4%, var(--surface));--rule:color-mix(in srgb, var(--paper) 11%, var(--surface));--rule-strong:color-mix(in srgb, var(--paper) 34%, var(--board));--muted:color-mix(in srgb, var(--paper) 66%, var(--surface));--track:color-mix(in srgb, var(--paper) 28%, var(--surface));--red-wash:color-mix(in srgb, var(--red) 14%, var(--board));--amber-wash:color-mix(in srgb, var(--amber) 12%, var(--board));--green-wash:color-mix(in srgb, var(--green) 12%, var(--board));--font-display:"Inter Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "Cascadia Mono", "SF Mono", Menlo, Consolas, monospace;--fs-xs:.75rem;--fs-sm:.875rem;--fs-md:1rem;--fs-lg:1.25rem;--fs-xl:1.75rem;--fs-2xl:clamp(1.9rem, 5.5vw, 3.4rem);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--radius:3px;--focus:0 0 0 2px var(--board), 0 0 0 4px var(--amber);--dur:.16s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-body);color:var(--paper);background:var(--board);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box}html,body{background:var(--board);min-height:100%;margin:0;overflow-x:hidden}body{min-width:320px}h1,h2,h3,p{margin:0}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--amber);outline-offset:2px}code{font-family:var(--font-mono);font-size:.92em}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{:root{--board:#fff;--panel:#fff;--panel-2:#fff}html,body{color:var(--paper);background:#fff}*,:before,:after{transition:none!important;animation:none!important}}.app{background-image:linear-gradient(color-mix(in srgb, var(--paper) 4%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--paper) 4%, transparent) 1px, transparent 1px);background-position:-1px -1px;background-size:32px 32px;flex-direction:column;min-height:100vh;display:flex}.skip-link{left:var(--s4);z-index:20;padding:var(--s2) var(--s3);background:var(--amber);color:var(--on-signal);border-radius:var(--radius);font-weight:700;position:absolute;top:-100px}.skip-link:focus{top:var(--s2)}.topbar{align-items:center;gap:var(--s4);padding:var(--s3) var(--s4);border-bottom:2px solid var(--rule-strong);background:var(--board);z-index:5;flex-wrap:wrap;display:flex;position:sticky;top:0}.topbar__brand{align-items:center;gap:var(--s2);margin-right:auto;display:flex}.topbar__lamp{background:var(--red);width:10px;height:10px;box-shadow:0 0 0 3px var(--red-wash);border-radius:50%}.topbar__name{font-family:var(--font-display);font-weight:700;font-size:var(--fs-md);letter-spacing:.16em;text-transform:uppercase}.topbar__meta{gap:var(--s4);font-family:var(--font-mono);font-size:var(--fs-sm);min-width:0;margin:0;display:flex}.topbar__meta>div{gap:var(--s1);min-width:0;display:flex}.topbar__meta dt{color:var(--muted)}.topbar__meta dt:after{content:":"}.topbar__meta dd{text-overflow:ellipsis;white-space:nowrap;max-width:22ch;margin:0;overflow:hidden}.main{width:100%;max-width:1280px;padding:var(--s4);gap:var(--s4);flex-direction:column;flex:1;margin:0 auto;display:flex}.footer{padding:var(--s4);text-align:center;color:var(--muted);font-size:var(--fs-xs)}.btn{min-height:40px;padding:var(--s2) var(--s4);border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--panel-2);color:var(--paper);font-weight:600;font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur), border-color var(--dur);flex-direction:column;justify-content:center;align-items:center;gap:2px;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--paper)}.btn:focus-visible{box-shadow:var(--focus);outline:none}.btn:disabled{cursor:not-allowed;opacity:.5}.btn--primary{background:var(--green);border-color:var(--green);color:var(--on-signal)}.btn--primary:hover:not(:disabled){background:color-mix(in srgb, var(--green) 85%, var(--paper));border-color:var(--board)}.btn--lg{min-height:96px;padding:var(--s4) var(--s5);font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:.02em}.btn__sub{font-family:var(--font-body);font-size:var(--fs-xs);font-weight:500}.btn[aria-pressed=true]{border-color:var(--amber)}.panel{background:var(--panel);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s4);gap:var(--s4);flex-direction:column;min-width:0;display:flex}.panel__head{align-items:baseline;gap:var(--s2) var(--s4);flex-wrap:wrap;display:flex}.panel__title{font-family:var(--font-display);font-size:var(--fs-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}.panel__title--lg{font-size:var(--fs-lg);letter-spacing:.04em;text-transform:none;color:var(--paper);min-width:0;max-width:100%}.panel__title--lg:focus{outline:none}.panel__title--lg:focus-visible{outline:2px solid var(--amber)}.panel__sub{color:var(--muted);font-size:var(--fs-sm);font-family:var(--font-mono)}.truncate{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.split{gap:var(--s4);grid-template-columns:minmax(0,1fr);display:grid}.split__col{gap:var(--s4);flex-direction:column;min-width:0;display:flex}@media (width>=960px){.split{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:start}}.legend{gap:var(--s1) var(--s3);font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;margin:0 0 0 auto;padding:0;list-style:none;display:flex}.legend li{align-items:center;gap:var(--s1);display:inline-flex}.legend__dot{border:2.5px solid var(--green);border-radius:50%;width:10px;height:10px}.legend__dot--queue{border-color:var(--amber)}.legend__dot--down{border-color:var(--red);background:var(--red)}.legend__dot--train{background:var(--paper);border:0;width:7px;height:7px}.alert{border:1px solid var(--red);background:var(--red-wash);border-radius:var(--radius);padding:var(--s3) var(--s4);font-size:var(--fs-sm);border-left-width:6px}.alert--block{gap:var(--s3);flex-direction:column;display:flex}.alert__title{font-family:var(--font-display);font-size:var(--fs-md);color:var(--paper)}.alert__kept{color:var(--muted)}.table-scroll{max-width:100%;overflow-x:auto}.errors,.subway__table table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.errors th,.errors td,.subway__table th,.subway__table td{text-align:left;padding:var(--s1) var(--s2);border-bottom:1px solid var(--rule);vertical-align:top}.errors thead th,.subway__table thead th{color:var(--muted);font-weight:600;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.08em}.errors code{color:var(--red-ink)}.errors td:nth-child(3) code{color:var(--amber-ink)}.errors__hint{color:var(--muted);display:block}.callout{gap:var(--s2);padding:var(--s3);border:1px dashed var(--amber);border-radius:var(--radius);background:var(--amber-wash);flex-direction:column;display:flex}.empty{gap:var(--s5);padding:var(--s7) 0 var(--s6);flex-direction:column;max-width:860px;display:flex}.empty__title{font-family:var(--font-display);font-size:var(--fs-2xl);letter-spacing:-.01em;font-weight:700;line-height:1.05}.empty__accent{color:var(--red-ink);display:block}.empty__lede{max-width:60ch;color:var(--muted);font-size:var(--fs-md)}.empty__actions{gap:var(--s4);grid-template-columns:minmax(0,1fr);display:grid}@media (width>=640px){.empty__actions{grid-template-columns:repeat(2,minmax(0,1fr))}}.dropzone{min-height:96px;padding:var(--s4);border:2px dashed var(--rule-strong);border-radius:var(--radius);cursor:pointer;transition:border-color var(--dur), background var(--dur);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.dropzone:hover,.dropzone.is-over{border-color:var(--amber);background:var(--amber-wash)}.dropzone:focus-visible{box-shadow:var(--focus);outline:none}.dropzone__title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:700}.empty__steps{gap:var(--s2) var(--s5);color:var(--muted);font-size:var(--fs-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.empty__steps span{width:22px;height:22px;margin-right:var(--s1);border:1.5px solid var(--rule-strong);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--paper);border-radius:50%;place-items:center;display:inline-grid}.dropveil{inset:var(--s3);z-index:30;border:3px dashed var(--amber);border-radius:var(--radius);background:color-mix(in srgb, var(--board) 88%, transparent);pointer-events:none;font-family:var(--font-display);font-size:var(--fs-xl);text-align:center;padding:var(--s4);place-items:center;display:grid;position:fixed}.subway{gap:var(--s3);flex-direction:column;min-width:0;display:flex}.subway__scroll{border:1px solid var(--rule);border-radius:var(--radius);background:var(--board);overscroll-behavior-x:contain;max-width:100%;overflow:auto}.subway__scroll:focus{outline:none}.subway__svg{width:100%;min-width:560px;height:auto;max-height:72vh;font-family:var(--font-display);display:block}.glyph{color:var(--paper);pointer-events:none}.station--down .glyph{color:var(--red-ink)}.station__badge{fill:var(--red);stroke:var(--surface);stroke-width:2px}.track{fill:none;stroke:var(--track);stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.track--blocked{stroke:var(--red);stroke-dasharray:2 8}.track__prob{fill:var(--muted);font-size:11px;font-family:var(--font-mono)}.terminal rect{fill:var(--board);stroke:var(--track);stroke-width:2px}.terminal text{fill:var(--paper);letter-spacing:.12em;font-size:11px;font-weight:700}.train{fill:var(--paper)}.car{fill:var(--amber-ink);stroke:var(--board);stroke-width:1.2px}.car__more{fill:var(--amber-ink);font-size:11px;font-family:var(--font-mono);font-weight:700}.station__hit{cursor:pointer;outline:none}.station__dot{fill:var(--surface);stroke:var(--green);stroke-width:3.5px;filter:drop-shadow(0 1px 2px #15120f1f);transition:fill var(--dur), stroke var(--dur)}.station__focus{fill:none;stroke:#0000;stroke-width:3px}.station__hit:focus-visible .station__focus{stroke:var(--amber)}.station__armed{fill:none;stroke:#0000;stroke-width:1.5px;stroke-dasharray:3 3}.station--armed .station__armed{stroke:var(--paper)}.station__hit:hover .station__dot{fill:var(--panel-2)}.station__name{fill:var(--paper);font-size:13px;font-weight:600}.station__status{fill:var(--green-ink);font-size:11px;font-weight:700;font-family:var(--font-mono);letter-spacing:.06em}.station--queue .station__dot{stroke:var(--amber)}.station--queue .station__status{fill:var(--amber-ink)}.station--down .station__dot{fill:var(--red-wash);stroke:var(--red)}.station--down .station__hit:hover .station__dot{fill:var(--red-wash)}.station__x{stroke:var(--surface);stroke-width:2px;stroke-linecap:round}.station--down .station__status,.station--down .station__name{fill:var(--red-ink)}.subway__table summary{cursor:pointer;color:var(--muted);font-size:var(--fs-sm);width:max-content;max-width:100%}.subway__table summary:focus-visible{outline:2px solid var(--amber)}.subway__table table{margin-top:var(--s2)}.num{font-family:var(--font-mono);text-align:right!important}.status--down{color:var(--red-ink);font-weight:700}.status--queue{color:var(--amber-ink);font-weight:700}.status--ok{color:var(--green-ink)}.replay{align-items:center;gap:var(--s2) var(--s3);grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"play clock track speed""legend legend legend legend";display:grid}.replay__play{gap:var(--s2);flex-direction:row;grid-area:play;min-width:96px}.replay__play svg{fill:currentColor}.replay__clock{font-family:var(--font-mono);font-size:var(--fs-lg);font-variant-numeric:tabular-nums;min-width:6.5ch;color:var(--amber-ink);grid-area:clock}.replay__track{grid-area:track;min-width:0;height:40px;position:relative}.replay__window{background:repeating-linear-gradient(-45deg, var(--red) 0 4px, var(--red-wash) 4px 8px);border-radius:2px;height:12px;position:absolute;top:10px}.replay__clear{background:var(--green);width:2px;height:20px;position:absolute;top:6px}.replay__range{width:100%;height:32px;accent-color:var(--amber);cursor:pointer;background:0 0;margin:0;position:absolute;inset:0 0 auto}.replay__range:focus-visible{outline:2px solid var(--amber);outline-offset:0}.replay__ticks{height:12px;font-family:var(--font-mono);color:var(--muted);font-size:10px;position:absolute;bottom:0;left:0;right:0}.replay__ticks span{position:absolute;transform:translate(-50%)}.replay__ticks span:first-child{transform:none}.replay__speed{align-items:center;gap:var(--s2);font-size:var(--fs-sm);color:var(--muted);grid-area:speed;display:flex}.replay__legend{font-size:var(--fs-sm);color:var(--muted);grid-area:legend}.swatch{vertical-align:baseline;border-radius:2px;width:14px;height:10px;display:inline-block}.swatch--down{background:var(--red)}.swatch--clear{background:var(--green);width:3px}.swatch--window{border:2px solid var(--amber)}@media (width<=640px){.replay{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"play clock""track track""speed speed""legend legend"}}select,input[type=number]{min-height:40px;padding:var(--s2) var(--s3);border:1px solid var(--rule-strong);border-radius:var(--radius);background:var(--board);color:var(--paper);width:100%;min-width:0}select:focus-visible,input[type=number]:focus-visible{border-color:var(--amber);box-shadow:var(--focus);outline:none}.field{gap:var(--s1);flex-direction:column;min-width:0;display:flex}.field label{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}.field--error input{border-color:var(--red)}.field__error{font-size:var(--fs-xs);color:var(--red-ink)}.lever{gap:var(--s4);flex-direction:column;display:flex}.lever__fields{gap:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.field--wide{grid-column:1/-1}@media (width>=520px){.lever__fields{grid-template-columns:repeat(4,minmax(0,1fr))}}.lever__summary{font-size:var(--fs-sm);color:var(--muted)}.lever__summary strong{color:var(--paper)}.lever__actions{align-items:stretch;gap:var(--s3);flex-wrap:wrap;display:flex}.lever__pull{align-items:center;gap:var(--s3);min-height:72px;padding:var(--s2) var(--s5) var(--s2) var(--s3);border:2px solid var(--red);border-radius:var(--radius);background:var(--red-wash);color:var(--paper);font-family:var(--font-display);font-size:var(--fs-lg);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background var(--dur);font-weight:700;display:flex}.lever__pull:disabled{cursor:not-allowed;border-color:var(--rule-strong);color:var(--muted);background:0 0}.lever__art{flex:none;width:52px;height:52px}.lever__base{fill:var(--panel-2);stroke:var(--rule-strong)}.lever__arm{fill:var(--paper);transform-origin:32px 50px;transition:transform .28s cubic-bezier(.3,1.6,.5,1);transform:rotate(-28deg)}.lever__arm circle{fill:var(--red-ink)}.lever__pull:active:not(:disabled) .lever__arm,.lever--pulled .lever__arm{transform:rotate(28deg)}.lever__pull:disabled .lever__arm circle{fill:var(--muted)}.lever__secondary{gap:var(--s2);flex-direction:column;flex:180px;display:flex}.lever__secondary .btn{flex-direction:row}.arrivals{gap:var(--s2);flex-direction:column;margin:0;display:flex}.arrivals__head{align-items:baseline;gap:var(--s1) var(--s3);flex-wrap:wrap;display:flex}.arrivals__total{font-family:var(--font-mono);font-size:var(--fs-sm)}.arrivals__total strong{font-size:var(--fs-lg);color:var(--paper)}.arrivals__source{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);overflow-wrap:anywhere;margin-left:auto}.arrivals__svg{width:100%;height:auto;display:block}.arrivals__axis{stroke:var(--rule-strong)}.bar rect{fill:var(--track)}.bar--down rect{fill:var(--amber-ink)}.bar--missing rect{fill:none}.bar__peak{fill:var(--paper);font-family:var(--font-mono);font-size:11px;font-weight:700}.bar__hour{fill:var(--muted);font-family:var(--font-mono);font-size:10px}.arrivals__notes{font-size:var(--fs-sm);color:var(--muted);margin:0;padding:0;list-style:none}.note--warn{color:var(--amber-ink)}.arrivals__empty{color:var(--amber-ink);font-size:var(--fs-sm)}.data-actions{gap:var(--s2);flex-wrap:wrap;display:flex}.meters{gap:var(--s4);flex-direction:column;display:flex}.meters__empty{color:var(--muted);font-size:var(--fs-sm)}.meters__grid{gap:var(--s3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.meter{gap:var(--s1);padding:var(--s3);border:1px solid var(--rule);border-radius:var(--radius);background:var(--board);flex-direction:column;min-width:0;display:flex}.meter dt{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.meter dd{min-width:0;margin:0}.meter--breach.is-hot{border-color:var(--red)}.meter--cost{border-color:color-mix(in srgb, var(--amber) 50%, var(--board))}.meter__plain{font-family:var(--font-mono);font-size:var(--fs-xl);font-variant-numeric:tabular-nums;line-height:1.2}.board{gap:2px;max-width:100%;display:inline-flex;overflow:hidden}.board__cell{background:color-mix(in srgb, var(--paper) 7%, var(--board));min-width:1.05em;font-family:var(--font-mono);font-size:var(--fs-xl);font-variant-numeric:tabular-nums;background-image:linear-gradient(to bottom, transparent calc(50% - .5px), var(--board) calc(50% - .5px), var(--board) calc(50% + .5px), transparent calc(50% + .5px));border-radius:2px;place-items:center;padding:2px 1px;font-weight:700;line-height:1.1;display:inline-grid}.board--red .board__cell{color:var(--red-ink)}.board--amber .board__cell{color:var(--amber-ink)}@media (width<=420px){.board__cell{font-size:var(--fs-lg);min-width:.95em}}.meters__formula{font-size:var(--fs-sm);color:var(--muted);padding:var(--s2) var(--s3);border-left:3px solid var(--amber);background:var(--amber-wash)}.meters__formula strong{color:var(--amber-ink);font-family:var(--font-mono)}.meters__formula-label{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--paper);font-weight:700;display:block}.meters__sub{font-family:var(--font-display);font-size:var(--fs-md);font-weight:700}.meters__hint{font-family:var(--font-body);font-size:var(--fs-xs);color:var(--muted);margin-left:var(--s1);font-weight:400}.targets{gap:var(--s2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.target{align-items:center;gap:0 var(--s3);padding:var(--s2) var(--s3);border:1px solid var(--rule);border-radius:var(--radius);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"badge name share""badge counts counts";display:grid}.target__badge{padding:2px var(--s2);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;color:var(--on-signal);background:var(--green);text-align:center;border-radius:2px;grid-area:badge;min-width:7ch;font-weight:700}.target--breach{border-color:color-mix(in srgb, var(--red) 55%, var(--board))}.target--breach .target__badge{background:var(--red)}.target__name{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm);grid-area:name;overflow:hidden}.target__id{font-family:var(--font-mono);color:var(--muted)}.target__share{font-family:var(--font-mono);font-size:var(--fs-sm);grid-area:share;font-weight:700}.target__of{color:var(--muted);font-weight:400}.target__counts{font-size:var(--fs-xs);color:var(--muted);grid-area:counts}.mc{gap:var(--s2);padding-top:var(--s3);border-top:1px solid var(--rule);font-size:var(--fs-sm);flex-direction:column;display:flex}.mc--error p:first-of-type{color:var(--red-ink)}.mc__bar{background:var(--panel-2);border-radius:3px;height:6px;overflow:hidden}.mc__bar span{background:var(--amber);height:100%;transition:width var(--dur) linear;display:block}.mc__bar .is-indeterminate{animation:1.1s ease-in-out infinite alternate mc-slide;width:30%!important}@keyframes mc-slide{0%{transform:translate(-100%)}to{transform:translate(330%)}}.mc__grid{gap:var(--s2) var(--s4);grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin:0;display:grid}.mc__grid dt{font-size:var(--fs-xs);color:var(--muted)}.mc__grid dd{font-family:var(--font-mono);font-size:var(--fs-md);margin:0;font-weight:700}.mc__targets{color:var(--muted)}.mc__targets strong{color:var(--paper);font-family:var(--font-mono)}@media print{.app{background:var(--paper)}.topbar,.skip-link,.footer,.lever,.replay,.data-actions,.dropveil,.empty__actions{display:none!important}.panel,.meter,.subway__scroll{background:var(--paper);border-color:color-mix(in srgb, var(--board) 30%, var(--paper))}.subway__svg,.station__name,.terminal text{fill:var(--board)}.track{stroke:var(--board)}.train{display:none}.station__dot{fill:var(--paper)}.board__cell{background:var(--paper);border:1px solid var(--board);background-image:none}.board--red .board__cell,.board--amber .board__cell{color:var(--on-signal)}}.districts__head{justify-content:space-between;align-items:baseline;gap:var(--s2);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.districts__head h3{font-size:var(--fs-md);margin:0;font-weight:650}.districts__head h3 span{color:var(--muted);margin-left:4px;font-weight:500}.districts__head p{color:var(--muted);font-size:var(--fs-sm);margin:0}.districts__grid{gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(210px,1fr));align-items:start;display:grid}.district{background:var(--surface);border:1px solid var(--rule);padding:var(--s3);box-shadow:var(--shadow);gap:var(--s2);transition:border-color var(--dur), box-shadow var(--dur);border-radius:12px;display:grid}.district--down{border-color:var(--red);box-shadow:0 0 0 3px var(--red-wash)}.district--queue{border-color:var(--amber)}.district.is-open{grid-column:1/-1}.district__head{all:unset;cursor:pointer;align-items:center;gap:var(--s2);border-radius:8px;display:flex}.district__head:focus-visible{outline:2px solid var(--amber-ink);outline-offset:3px}.district__icon{background:var(--panel-2);width:30px;height:30px;color:var(--paper);border-radius:8px;place-items:center;display:grid}.district__title{flex:1;font-weight:650}.district__count{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--muted);background:var(--panel-2);border-radius:999px;padding:1px 8px}.district__cells{flex-wrap:wrap;gap:3px;display:flex}.cell{background:var(--green-wash);width:20px;height:20px;color:var(--paper);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--green) 45%, transparent);border-radius:5px;place-items:center;display:grid}.cell--queue{background:var(--amber-wash);box-shadow:inset 0 0 0 1px var(--amber)}.cell--down{background:var(--red);color:var(--surface);box-shadow:none}.cell--armed{outline:2px solid var(--paper);outline-offset:1px}.district__meta{font-size:var(--fs-xs);color:var(--muted);margin:0}.district__state{font-weight:650}.district__state--ok{color:var(--green-ink)}.district__state--queue{color:var(--amber-ink)}.district__state--down{color:var(--red-ink)}.district__list{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:4px;max-height:320px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.district__tool{align-items:center;gap:var(--s2);border:1px solid var(--rule);background:var(--surface);width:100%;color:var(--paper);font:inherit;font-size:var(--fs-sm);cursor:pointer;text-align:left;border-radius:8px;padding:6px 8px;display:flex}.district__tool:hover{border-color:var(--red)}.district__tool:focus-visible{outline:2px solid var(--amber-ink);outline-offset:1px}.district__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.tool-icon{flex:none}.drill{gap:var(--s4);display:grid}.drill__stage,.drill__side{gap:var(--s4);align-content:start;min-width:0;display:grid}.stage-tabs{background:var(--panel-2);border:1px solid var(--rule);border-radius:12px;justify-self:start;gap:4px;padding:4px;display:inline-flex}.stage-tab{color:var(--muted);font:inherit;font-weight:600;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:8px 14px;position:relative}.stage-tab[aria-selected=true]{background:var(--surface);color:var(--paper);box-shadow:var(--shadow)}.stage-tab:disabled{opacity:.45;cursor:not-allowed}.stage-tab:focus-visible{outline:2px solid var(--amber-ink);outline-offset:2px}.stage-tab__dot{background:var(--red);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-left:8px;display:inline-block}.stage-tab--ready .stage-tab__dot{animation:1.4s ease-out infinite sfd-ping}@keyframes sfd-ping{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--red) 55%, transparent)}to{box-shadow:0 0 0 10px #0000}}.panel{box-shadow:var(--shadow)}[hidden]{display:none!important}@media (width>=1100px){.drill{grid-template-columns:minmax(0,1fr) clamp(340px,24vw,400px);align-items:start}.drill__stage{grid-auto-rows:max-content}.panel--map .subway__svg{max-height:46vh}.footer{padding-block:var(--s2)}}.main:has(.drill){max-width:none;padding-inline:clamp(12px,1.5vw,28px)}.panel--meters .meters__grid{gap:var(--s2);grid-template-columns:repeat(2,minmax(0,1fr))}.panel--meters .meter{padding:var(--s2) var(--s3)}.panel--meters .board__cell,.panel--meters .meter__plain{font-size:var(--fs-lg)}.panel--meters .board__cell{min-width:.85em}.stage-tab__count{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--muted);margin-left:8px}.districts__grid{gap:var(--s2);grid-template-columns:repeat(auto-fit,minmax(158px,1fr))}.district{padding:var(--s2) var(--s3);gap:6px}.district__icon{width:26px;height:26px}.cell{border-radius:4px;width:17px;height:17px}.cell--more{background:var(--panel-2);width:auto;box-shadow:none;color:var(--muted);font:600 10px/17px var(--font-mono);padding:0 5px}@media (width>=1100px){.panel--map .subway__svg{max-height:34vh}}.drill__side .lever{gap:var(--s3)}.drill__side .lever__fields{gap:var(--s2)}.drill__side .lever__fields label{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.drill__side .lever__pull{min-height:56px}.drill__side .lever__secondary{flex-flow:wrap}.drill__side .lever__secondary .btn{flex:140px}.panel--meters .board__cell--pad{display:none}.panel--meters .board__cell{font-size:1.15rem}.district__meta{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (width>=1100px) and (height<=820px){.panel--map .subway__svg{max-height:25vh}.drill__side .panel,.drill__stage .panel{padding:var(--s3)}.districts__head p{display:none}.main:has(.drill){padding-block:var(--s2)}}.drill__side .targets{gap:4px}.drill__side .target{align-items:center;gap:var(--s2);grid-template-columns:auto minmax(0,1fr) auto;padding:6px 8px;display:grid}.drill__side .target__counts{display:none}.drill__side .target__name{white-space:nowrap;text-overflow:ellipsis;font-size:var(--fs-sm);overflow:hidden}.drill__side .target__badge{padding:2px 6px;font-size:10px}.drill__side .meters__formula{font-size:var(--fs-xs);padding:var(--s2) var(--s3)}.drill__side .meters{gap:var(--s3)}.builder__tool input[type=checkbox]{appearance:auto;-webkit-appearance:checkbox;width:16px;height:16px;min-height:0;box-shadow:none;accent-color:var(--green-ink);background:0 0;border:0;flex:none;margin:2px 0 0;padding:0}.builder__tools{column-gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}@media (width>=1100px){.main:has(.empty){max-width:none;padding-inline:clamp(16px,3vw,48px)}.empty{grid-template-columns:minmax(380px,.75fr) minmax(0,1.25fr);align-items:start;column-gap:clamp(32px,4vw,72px);display:grid}.empty>:not(.builder){grid-column:1}.empty>.builder{grid-area:1/2/span 6;margin-top:0}.main:has(.empty) .empty{max-width:none;padding-top:var(--s6)}}.builder__tool .tool-icon{color:var(--paper);margin-top:2px}.sfdr-root{--sfdr-board:#fff;--sfdr-paper:#15120f;--sfdr-red:#ff5a36;--sfdr-green:#37c871;--sfdr-amber:#ffc53d;--sfdr-red-ink:#c4371a;--sfdr-green-ink:#137a3c;--sfdr-amber-ink:#8a5a00;--sfdr-muted:color-mix(in srgb, var(--sfdr-paper) 66%, var(--sfdr-board));--sfdr-panel:color-mix(in srgb, var(--sfdr-paper) 3%, var(--sfdr-board));--sfdr-line:color-mix(in srgb, var(--sfdr-paper) 12%, var(--sfdr-board));--sfdr-mono:ui-monospace, "Cascadia Mono", Consolas, "SFMono-Regular", monospace;--sfdr-sans:"Inter Variable", system-ui, "Segoe UI", Roboto, sans-serif;--sfdr-s1:4px;--sfdr-s2:8px;--sfdr-s3:12px;--sfdr-s4:16px;--sfdr-s5:24px;--sfdr-radius:6px;--sfdr-text-sm:.8125rem;--sfdr-text-md:.9375rem;--sfdr-text-lg:1.25rem;color:var(--sfdr-paper);background:var(--sfdr-board);font-family:var(--sfdr-sans);font-size:var(--sfdr-text-md);padding:var(--sfdr-s4);border:1px solid var(--sfdr-line);border-radius:var(--sfdr-radius);text-align:left;line-height:1.45}.sfdr-root h2,.sfdr-root h3,.sfdr-root h4{color:var(--sfdr-paper);margin:0 0 var(--sfdr-s2);line-height:1.25}.sfdr-root h2{font-size:var(--sfdr-text-lg)}.sfdr-root h3{font-size:var(--sfdr-text-sm);text-transform:uppercase;letter-spacing:.08em;margin-top:var(--sfdr-s4)}.sfdr-root h4{font-size:var(--sfdr-text-md)}.sfdr-root p{margin:0 0 var(--sfdr-s2)}.sfdr-muted{color:var(--sfdr-muted);font-size:var(--sfdr-text-sm)}.sfdr-mono{font-family:var(--sfdr-mono);font-variant-numeric:tabular-nums}.sfdr-empty p{color:var(--sfdr-muted)}.sfdr-actions{align-items:center;gap:var(--sfdr-s2);margin-bottom:var(--sfdr-s3);flex-wrap:wrap;display:flex}.sfdr-btn{font:inherit;font-size:var(--sfdr-text-sm);min-height:36px;padding:var(--sfdr-s2) var(--sfdr-s3);border-radius:var(--sfdr-radius);border:1px solid var(--sfdr-paper);background:var(--sfdr-paper);color:var(--sfdr-board);cursor:pointer;font-weight:600}.sfdr-btn:hover{background:color-mix(in srgb, var(--sfdr-paper) 85%, var(--sfdr-amber))}.sfdr-btn--ghost{color:var(--sfdr-paper);background:0 0}.sfdr-btn--ghost:hover{background:var(--sfdr-panel)}.sfdr-btn[aria-pressed=true]{border-color:var(--sfdr-amber-ink);color:var(--sfdr-amber-ink)}.sfdr-btn:disabled{cursor:not-allowed;opacity:.55}.sfdr-root :is(button,input,select,textarea,summary,pre,a):focus-visible{outline:3px solid var(--sfdr-amber);outline-offset:2px}.sfdr-status{color:var(--sfdr-green-ink);font-size:var(--sfdr-text-sm);flex:200px;min-height:1.2em;margin:0}.sfdr-error{color:var(--sfdr-red-ink);border-left:3px solid var(--sfdr-red);padding-left:var(--sfdr-s2)}.sfdr-warnline{color:var(--sfdr-amber-ink);font-size:var(--sfdr-text-sm)}.sfdr-manual{gap:var(--sfdr-s1);margin-bottom:var(--sfdr-s3);display:grid}.sfdr-root textarea,.sfdr-root input,.sfdr-root select{font:inherit;font-size:var(--sfdr-text-sm);color:var(--sfdr-paper);background:var(--sfdr-panel);border:1px solid var(--sfdr-line);border-radius:var(--sfdr-radius);padding:var(--sfdr-s2);box-sizing:border-box;width:100%;min-width:0}.sfdr-root textarea{font-family:var(--sfdr-mono);resize:vertical}.sfdr-sheet{max-width:900px}.sfdr-head{border-bottom:2px solid var(--sfdr-red);padding-bottom:var(--sfdr-s2);margin-bottom:var(--sfdr-s3)}.sfdr-kicker{font-size:var(--sfdr-text-sm);color:var(--sfdr-red-ink);text-transform:uppercase;letter-spacing:.1em;font-weight:700}.sfdr-head h2{overflow-wrap:anywhere}.sfdr-meta{color:var(--sfdr-muted);font-size:var(--sfdr-text-sm);overflow-wrap:anywhere}.sfdr-kpis{gap:var(--sfdr-s2);margin:0 0 var(--sfdr-s2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.sfdr-kpi{background:var(--sfdr-panel);border:1px solid var(--sfdr-line);border-top:3px solid var(--sfdr-paper);border-radius:var(--sfdr-radius);padding:var(--sfdr-s2) var(--sfdr-s3);min-width:0}.sfdr-kpi--bad{border-top-color:var(--sfdr-red-ink)}.sfdr-kpi--warn{border-top-color:var(--sfdr-amber-ink)}.sfdr-kpi dt{font-size:var(--sfdr-text-sm);color:var(--sfdr-muted)}.sfdr-kpi dd{font-family:var(--sfdr-mono);font-variant-numeric:tabular-nums;font-size:var(--sfdr-text-lg);overflow-wrap:anywhere;margin:0;font-weight:700}.sfdr-kpi--bad dd{color:var(--sfdr-red-ink)}.sfdr-kpi--warn dd{color:var(--sfdr-amber-ink)}.sfdr-assume{font-size:var(--sfdr-text-sm);color:var(--sfdr-amber-ink);font-family:var(--sfdr-mono);overflow-wrap:anywhere}.sfdr-cols{gap:var(--sfdr-s5);grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);display:grid}.sfdr-timeline{font-size:var(--sfdr-text-sm);margin:0;padding:0;list-style:none}.sfdr-tl{gap:var(--sfdr-s2);padding:2px 0 2px var(--sfdr-s2);border-left:3px solid var(--sfdr-line);overflow-wrap:anywhere;grid-template-columns:6.5ch 1fr;display:grid}.sfdr-tl--bad{border-left-color:var(--sfdr-red-ink)}.sfdr-tl--warn{border-left-color:var(--sfdr-amber-ink)}.sfdr-tl--ok{border-left-color:var(--sfdr-green-ink)}.sfdr-bars{margin:var(--sfdr-s3) 0 0}.sfdr-bars svg{width:100%;height:48px;display:block}.sfdr-bars__bar{fill:var(--sfdr-amber)}.sfdr-bars__outage{fill:color-mix(in srgb, var(--sfdr-red) 22%, transparent)}.sfdr-bars figcaption{justify-content:space-between;gap:var(--sfdr-s2);color:var(--sfdr-muted);font-size:.75rem;display:flex}.sfdr-table{border-collapse:collapse;width:100%;font-size:var(--sfdr-text-sm)}.sfdr-table caption{text-align:left;color:var(--sfdr-muted);padding-bottom:var(--sfdr-s1);caption-side:top}.sfdr-table th,.sfdr-table td{padding:var(--sfdr-s1) var(--sfdr-s2);border-bottom:1px solid var(--sfdr-line);text-align:left;vertical-align:top}.sfdr-table thead th{color:var(--sfdr-muted);font-weight:600}.sfdr-table tbody th{width:55%;max-width:0;font-weight:500}.sfdr-num{font-family:var(--sfdr-mono);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right!important}.sfdr-clip{overflow-wrap:anywhere;display:inline}.sfdr-badge{letter-spacing:.06em;padding:1px var(--sfdr-s2);color:var(--sfdr-board);white-space:nowrap;-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:3px;font-size:.75rem;font-weight:700;display:inline-block}.sfdr-badge--bad{background:var(--sfdr-red)}.sfdr-badge--ok{background:var(--sfdr-green)}.sfdr-assumptions{font-size:var(--sfdr-text-sm);overflow-wrap:anywhere;margin:0;padding-left:1.2em}.sfdr-foot{margin-top:var(--sfdr-s3);padding-top:var(--sfdr-s2);border-top:1px solid var(--sfdr-line);color:var(--sfdr-muted);font-size:.75rem}.sfdr-runbook{margin-top:var(--sfdr-s4)}.sfdr-pre{font-family:var(--sfdr-mono);font-size:var(--sfdr-text-sm);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--sfdr-panel);border:1px solid var(--sfdr-line);border-radius:var(--sfdr-radius);padding:var(--sfdr-s3);margin:0 0 var(--sfdr-s3);max-height:24rem;overflow:auto}.sfdr-model{margin-top:var(--sfdr-s3);padding-top:var(--sfdr-s3);border-top:1px dashed var(--sfdr-line);gap:var(--sfdr-s3);display:grid}.sfdr-model__head{justify-content:space-between;align-items:center;gap:var(--sfdr-s2);flex-wrap:wrap;display:flex}.sfdr-seg{gap:var(--sfdr-s1);display:flex}.sfdr-field{gap:var(--sfdr-s1);min-width:0;display:grid}.sfdr-field label{font-size:var(--sfdr-text-sm);font-weight:600}.sfdr-field-row{gap:var(--sfdr-s3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.sfdr-consent{border:1px solid var(--sfdr-amber);border-radius:var(--sfdr-radius);padding:var(--sfdr-s3);font-size:var(--sfdr-text-sm)}.sfdr-consent summary{cursor:pointer;margin-bottom:var(--sfdr-s2)}.sfdr-check{align-items:flex-start;gap:var(--sfdr-s2);font-weight:600;display:flex}.sfdr-check input{width:auto;margin-top:3px}@media (width<=720px){.sfdr-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sfdr-cols,.sfdr-field-row{grid-template-columns:minmax(0,1fr);gap:0}}@page{size:A4;margin:10mm}@media print{body :not(:has(.sfdr-sheet)):not(.sfdr-sheet):not(.sfdr-sheet *){display:none!important}:is(html,body,body :has(.sfdr-sheet)){box-shadow:none!important;background:#fff!important;border:0!important;width:auto!important;max-width:none!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;display:block!important;position:static!important;overflow:visible!important;transform:none!important}.sfdr-no-print{display:none!important}.sfdr-root,.sfdr-sheet{--sfdr-paper:#16110f;--sfdr-muted:#3d3532;--sfdr-panel:#fff;--sfdr-line:#b9b1a8;color:#16110f;border:0;max-width:none;padding:0;font-size:9pt;line-height:1.3;background:#fff!important}.sfdr-sheet *{transition:none!important;animation:none!important}.sfdr-root h2{font-size:14pt}.sfdr-root h3{margin-top:8pt;margin-bottom:3pt;font-size:8.5pt}.sfdr-kpi dd{font-size:12pt;color:#16110f!important}.sfdr-kpi{padding:3pt 6pt}.sfdr-kicker{color:#16110f}.sfdr-head{border-bottom-color:#16110f}.sfdr-assume{color:#16110f;font-weight:600}.sfdr-table,.sfdr-timeline,.sfdr-assumptions{font-size:8.5pt}.sfdr-table th,.sfdr-table td{padding:1.5pt 4pt}.sfdr-bars svg{height:28pt}.sfdr-bars__bar{fill:#16110f}.sfdr-bars__outage{fill:#ffd9cf;-webkit-print-color-adjust:exact;print-color-adjust:exact}.sfdr-kpis{grid-template-columns:repeat(4,minmax(0,1fr))!important}.sfdr-cols{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)!important;gap:12pt!important}.sfdr-tl,.sfdr-kpi,.sfdr-table tr{break-inside:avoid}.sfdr-sheet{break-after:avoid;page-break-after:avoid}}@supports not selector(:has(*)){@media print{body *{visibility:hidden}.sfdr-sheet,.sfdr-sheet *{visibility:visible}.sfdr-sheet{width:100%;position:absolute;top:0;left:0}}}.builder{text-align:left;margin-top:24px}.builder__lede{opacity:.85;margin:0 0 16px}.builder__grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.builder__tools{border:1px solid var(--rule);border-radius:8px;gap:6px;margin:16px 0;padding:10px 12px;display:grid}.builder__tools legend{padding:0 6px;font-weight:600}.builder__tool{cursor:pointer;align-items:flex-start;gap:8px;font-size:14px;display:flex}.builder__tool input{accent-color:var(--green-ink);margin-top:3px}.builder__count{margin:8px 0 12px}.builder__actions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.builder details{margin-top:8px}.builder summary{cursor:pointer;padding:6px 0;font-weight:600}.builder summary:focus-visible{outline:2px solid var(--amber-ink);outline-offset:2px}.builder textarea{background:var(--panel-2);width:100%;color:var(--paper);border:1px solid var(--rule);border-radius:6px;margin:6px 0;padding:10px;font:12px/1.45 ui-monospace,Consolas,monospace}.builder__guide ol{padding-left:20px;line-height:1.6}.connectors{margin-top:16px}.connectors__msg{margin:8px 0 0;font-size:13px}.connectors__loads{margin:6px 0 0;padding-left:18px;font-size:13px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:root{--ink:#15120f;--ink-hover:#2c2620;--line:#e4e1dc;--line-strong:#cfcac2;--field-h:40px;--r-sm:8px;--r-md:10px;--r-lg:14px;--ring:0 0 0 3px color-mix(in srgb, var(--ink) 14%, transparent);--radius:var(--r-lg);--rule:var(--line)}body{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}.topbar{background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);box-shadow:none;padding-block:10px}.topbar__name{letter-spacing:.08em;font-size:15px}.topbar__meta dt,.topbar__meta dd{font-size:12px}.btn,.sfdr-btn{min-height:var(--field-h);border-radius:var(--r-md);font:600 14px/1.2 var(--font-body);letter-spacing:0;text-transform:none;white-space:nowrap;background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:0 16px;transition:background-color .12s,border-color .12s,box-shadow .12s,transform 60ms;display:inline-flex;box-shadow:0 1px 1px #15120f0a}.btn:hover:not(:disabled),.sfdr-btn:hover:not(:disabled){background:var(--panel-2);border-color:var(--ink)}.btn:active:not(:disabled),.sfdr-btn:active:not(:disabled){transform:translateY(1px)}.btn:focus-visible,.sfdr-btn:focus-visible{box-shadow:var(--ring);border-color:var(--ink);outline:none}.btn:disabled,.sfdr-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn--ghost{background:var(--surface)}.btn--primary,.sfdr-btn:not(.sfdr-btn--ghost){background:var(--ink);color:#fff;border-color:var(--ink)}.btn--primary:hover:not(:disabled),.sfdr-btn:not(.sfdr-btn--ghost):hover:not(:disabled){background:var(--ink-hover);border-color:var(--ink-hover)}.btn--lg{border-radius:var(--r-lg);white-space:normal;flex-direction:column;gap:2px;min-height:64px;padding:10px 24px;font-size:17px}.btn__sub{opacity:.72;letter-spacing:0;font-size:12.5px;font-weight:500}.dropzone{border-radius:var(--r-lg);border:1.5px dashed var(--line-strong);background:var(--surface);min-height:64px;color:var(--ink);transition:border-color .12s,background-color .12s}.dropzone:hover,.dropzone:focus-visible,.dropzone.is-over{border-color:var(--ink);background:var(--panel-2);outline:none}.dropzone__title{font-size:17px;font-weight:600}.dropzone__sub{color:var(--muted);font-size:12.5px}input[type=number],input[type=text],select,textarea{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--r-sm);font:500 15px/1.3 var(--font-body);box-shadow:none}input[type=number],input[type=text],select{min-height:var(--field-h);padding:0 12px}input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb, var(--ink) 45%, var(--line-strong))}input:focus-visible,select:focus-visible,textarea:focus-visible,input[type=number]:focus-visible{border-color:var(--ink);box-shadow:var(--ring);outline:none}.field label,.builder .field label{font:600 12.5px/1.3 var(--font-body);letter-spacing:0;text-transform:none;color:var(--muted);margin-bottom:6px}.panel{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:0 1px 2px #15120f0a,0 8px 24px #15120f0a}.panel__title,.meters__sub{font:650 12px/1.3 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.panel__title--lg{font:700 20px/1.25 var(--font-display);letter-spacing:-.01em;text-transform:none;color:var(--ink)}.empty__title{letter-spacing:-.035em;text-wrap:balance;font-size:clamp(2.4rem,3.6vw,3.6rem);line-height:1.04}.empty__lede{color:var(--muted);text-wrap:pretty;max-width:52ch;font-size:17px;line-height:1.6}.empty__actions{grid-template-columns:1fr 1fr;gap:12px;display:grid}.empty__steps span{border-color:var(--line-strong)}@media (width>=1100px){.empty{padding-top:var(--s6)}.empty>.builder{margin-top:0}}.builder{padding:24px}.builder__lede{color:var(--muted);opacity:1;font-size:15px}.builder__grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr);align-items:end}.builder__grid .field label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.builder__tools{border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-2);row-gap:10px;padding:14px 16px}.builder__tools legend{font:650 13px/1 var(--font-body);padding:0 6px}.builder__tool{color:var(--muted);align-items:flex-start;gap:10px;font-size:13.5px;line-height:1.4}.builder__tool strong{color:var(--ink);font-weight:600}.builder__count{color:var(--muted);font-size:15px}.builder__count strong{color:var(--ink)}.builder__actions{gap:10px}.builder details{border-top:1px solid var(--line);padding-top:4px}.builder summary{padding:10px 0;font-size:14px;font-weight:600;list-style-position:inside}.stage-tabs{background:color-mix(in srgb, var(--ink) 5%, var(--board));border:1px solid var(--line)}.stage-tab{font-size:14px}.lever__pull{border-radius:var(--r-lg);background:var(--red);color:#fff;min-height:56px;box-shadow:0 1px 0 #00000014, 0 6px 18px color-mix(in srgb, var(--red) 35%, transparent);font:750 17px/1 var(--font-display);letter-spacing:.04em;border:0}.lever__pull:hover:not(:disabled){background:color-mix(in srgb, var(--red) 88%, #000)}.lever__pull:focus-visible{box-shadow:0 0 0 3px var(--surface), 0 0 0 6px var(--red);outline:none}.lever--pulled .lever__pull{background:var(--ink);box-shadow:0 6px 18px #15120f2e}.lever__label{color:inherit}.lever__base{fill:#ffffffd9}.drill__side .lever__actions{grid-template-columns:1fr;gap:8px;display:grid}.drill__side .lever__pull{justify-content:center;width:100%}.drill__side .lever__secondary{grid-template-columns:1fr 1fr;gap:8px;display:grid}.drill__side .lever__secondary .btn{white-space:nowrap;padding:0 10px;font-size:13px}.lever__summary{font-size:13px}.meter{background:var(--surface);border-color:var(--line);border-radius:var(--r-md)}.meter dt{letter-spacing:.04em;font-size:11px}.board__cell{background:color-mix(in srgb, var(--ink) 5%, var(--surface));background-image:none;border-radius:4px}.meters__formula{border-radius:var(--r-md)}.target{border-radius:var(--r-md);border-color:var(--line);background:var(--surface)}.target__badge{border-radius:6px}.replay__play{min-height:var(--field-h);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-weight:600}.replay__play:hover{border-color:var(--ink)}.replay__clock{color:var(--ink)}.sfdr-report{border-radius:var(--r-lg)}.mini{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);margin:8px 0 0;padding:20px 20px 16px;box-shadow:0 8px 24px #15120f0d}.mini__svg{width:100%;height:auto;display:block}.mini__track{stroke:color-mix(in srgb, var(--ink) 18%, var(--surface));stroke-width:6px;stroke-linecap:round}.mini__dot{fill:var(--surface);stroke:var(--green);stroke-width:3px}.mini__stop--down .mini__dot{fill:var(--red-wash);stroke:var(--red)}.mini__stop--down .glyph{color:var(--red-ink)}.mini__pulse{fill:none;stroke:var(--red);stroke-width:2px;transform-box:fill-box;transform-origin:50%;animation:1.8s ease-out infinite mini-pulse}.mini__car{fill:var(--amber);stroke:var(--surface);stroke-width:1.5px;animation:1.6s ease-in-out infinite mini-bob}.mini__label{font:600 11px var(--font-body);fill:var(--muted)}.mini__stop--down .mini__label{fill:var(--red-ink);letter-spacing:.06em;font-weight:750}.mini__caption{color:var(--muted);margin-top:10px;font-size:13.5px;line-height:1.5}.mini__caption strong{color:var(--ink)}@keyframes mini-pulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}@keyframes mini-bob{50%{transform:translate(-3px)}}@media (prefers-reduced-motion:reduce){.mini__pulse,.mini__car{animation:none}}.station--district .station__dot{stroke-width:3px;stroke-dasharray:5 3;fill:color-mix(in srgb, var(--ink) 4%, var(--surface))}.station--district.station--ok .station__dot{stroke:color-mix(in srgb, var(--green) 85%, var(--ink))}.station--district .station__name{font-weight:700}.overview{gap:var(--s3);display:grid}@media (width>=1100px){.overview{grid-template-columns:minmax(0,1fr) clamp(260px,22vw,340px);align-items:start}.overview .subway__svg{max-height:50vh}}.districts__head{margin-bottom:var(--s2);flex-direction:column;align-items:flex-start;gap:2px}.districts__grid{flex-direction:column;gap:6px;display:flex}.district{border-radius:var(--r-md);box-shadow:none;gap:0;padding:0;overflow:hidden}.district.is-open{box-shadow:0 6px 18px #15120f12}.district__head{border-radius:0;gap:10px;padding:10px 12px}.district__head:hover{background:var(--panel-2)}.district__title{font-size:14px}.district__chev{color:var(--muted);flex:none;transition:transform .15s}.district.is-open .district__chev{transform:rotate(180deg)}.district__meta{margin-top:-4px;padding:0 12px 10px 48px}.district__tool{padding:6px 8px}.track--line{stroke-width:5px;opacity:.85}.station--district.station--ok .station__dot{stroke:var(--line,var(--green));stroke-dasharray:none;stroke-width:4px}.station--district .station__dot{r:23px}.station--district .glyph{color:var(--line,var(--ink))}.district{border-left:4px solid var(--line,var(--line-strong))}.district__icon{color:var(--line,var(--ink));background:color-mix(in srgb, var(--line,var(--ink)) 10%, var(--surface))}.overview .station__name{font-size:15px}.overview .station__status{font-size:12px}.overview .station--district .station__name{font-size:16px}.overview .track__prob{font-size:13px}@media (width>=1100px){.overview .subway__svg{max-height:56vh}}.topbar{z-index:20;position:sticky;top:0}@media (width>=1100px){.drill__side{position:sticky;top:72px}}.tiles{padding:4px 12px 12px}.tiles__grid{grid-template-columns:repeat(auto-fill,minmax(30px,1fr));gap:4px;display:grid}.tile{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--green) 40%, var(--line));background:var(--green-wash);color:var(--ink);cursor:pointer;border-radius:7px;place-items:center;padding:0;transition:transform 80ms,box-shadow .12s;display:grid}.tile:hover,.tile:focus-visible{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--line,var(--ink));outline:none;transform:translateY(-1px)}.tile--queue{background:var(--amber-wash);border-color:var(--amber)}.tile--down{background:var(--red);border-color:var(--red);color:#fff}.tile--armed{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--ink)}.tiles__caption{min-height:2.6em;color:var(--muted);margin:8px 0 0;font-size:12.5px;line-height:1.35}.tiles__caption strong{color:var(--ink)}.metro{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);position:relative;overflow:hidden}.metro__svg{touch-action:pan-y;-webkit-user-select:none;user-select:none;width:100%;height:auto;max-height:78vh;display:block}.metro.is-zoomed .metro__svg{cursor:grab;touch-action:none}.metro.is-zoomed .metro__svg:active{cursor:grabbing}.metro__bg{fill:var(--surface)}.metro__tools{justify-content:flex-end;align-items:center;gap:6px;padding:10px 12px 0;display:flex}.metro__btn{border:1px solid var(--line-strong);background:var(--surface);width:32px;height:32px;color:var(--ink);font:600 16px/1 var(--font-body);cursor:pointer;border-radius:8px;box-shadow:0 1px 2px #15120f14}.metro__btn--text{width:auto;padding:0 10px;font-size:13px}.metro__btn:hover:not(:disabled){border-color:var(--ink)}.metro__btn:disabled{opacity:.4;cursor:default}.metro__btn:focus-visible{box-shadow:var(--ring);outline:none}.metro__hint{color:var(--muted);background:color-mix(in srgb, var(--surface) 85%, transparent);border-radius:6px;margin-right:auto;padding:2px 6px;font-size:12px}.core__casing{fill:none;stroke:var(--surface);stroke-width:13px;stroke-linejoin:round;stroke-linecap:round}.core__track{fill:none;stroke:color-mix(in srgb, var(--ink) 38%, var(--surface));stroke-width:6px;stroke-linejoin:round;stroke-linecap:round;transition:stroke .2s}.core__track--main{stroke:var(--ink);stroke-width:8px}.core__track.is-blocked{stroke:var(--red);stroke-dasharray:2 9}.core__prob{font:600 13px var(--font-mono);fill:var(--muted)}.core__entry rect{fill:var(--surface);stroke:var(--ink);stroke-width:2px}.core__entry text{font:800 11px var(--font-body);letter-spacing:.1em;fill:var(--ink);text-anchor:middle}.ix{cursor:pointer;outline:none}.ix__ring{fill:var(--surface);stroke:var(--ink);stroke-width:4px;transition:fill .2s,stroke .2s}.ix .glyph{color:var(--ink)}.ix:hover .ix__ring,.ix:focus-visible .ix__ring{fill:var(--panel-2)}.ix:focus-visible .ix__ring{stroke-width:6px}.ix.is-armed .ix__ring{stroke-dasharray:4 3}.ix--queue .ix__ring{stroke:var(--amber);fill:var(--amber-wash)}.ix--down .ix__ring{stroke:var(--red);fill:var(--red-wash)}.ix--down .glyph{color:var(--red-ink)}.ix__pulse{fill:none;stroke:var(--red);stroke-width:3px;transform-box:fill-box;transform-origin:50%;animation:1.6s ease-out infinite mini-pulse}.ix__name{font:650 15px var(--font-body);fill:var(--ink);text-anchor:middle;paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}.ix--down .ix__name{fill:var(--red-ink)}.ix__badge rect{fill:var(--amber)}.ix__badge text{font:800 10.5px var(--font-mono);fill:var(--ink);text-anchor:middle}.mline{transition:opacity .25s}.mline.is-dim{opacity:.32}.mline__casing{fill:none;stroke:var(--surface);stroke-width:12px;stroke-linecap:round;stroke-linejoin:round}.mline__track{fill:none;stroke:var(--c);stroke-width:6px;stroke-linecap:round;stroke-linejoin:round}.mline__flow{fill:none;stroke:color-mix(in srgb, #fff 70%, var(--c));stroke-width:2px;stroke-dasharray:2 14;stroke-linecap:round;pointer-events:none;animation:1.6s linear infinite metro-flow}.mline.is-dim .mline__flow{display:none}.mline__join{fill:var(--surface);stroke:var(--c);stroke-width:3px}.mline__name{cursor:pointer;outline:none}.mline__name rect{fill:var(--c);transition:filter .15s}.mline__name text{font:700 15px var(--font-body);fill:#fff}.mline__name:hover rect,.mline__name:focus-visible rect{filter:brightness(1.12)}.mline__name:focus-visible rect,.mline.is-open .mline__name rect{stroke:var(--ink);stroke-width:2px}.tick{cursor:pointer}.tick__hit{fill:#0000}.tick__mark{stroke:var(--c);stroke-width:3px;stroke-linecap:round}.tick__dot{stroke:var(--surface);stroke-width:2px}.tick--queue .tick__dot{fill:var(--amber)}.tick--down .tick__dot{fill:var(--red)}.tick:hover .tick__mark,.tick.is-armed .tick__mark{stroke:var(--ink);stroke-width:4px}.tick__label{font:500 12.5px var(--font-body);fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:3px}.tick--down .tick__label{fill:var(--red-ink);font-weight:700}.mtrain{fill:var(--ink);stroke:var(--surface);stroke-width:1.5px}.hovercard{pointer-events:none}.hovercard>rect:first-child{fill:var(--surface);stroke:var(--line-strong);filter:drop-shadow(0 4px 10px #15120f24)}.hovercard__name{font:650 12.5px var(--font-body);fill:var(--ink)}.hovercard__meta{font:500 11px var(--font-body);fill:var(--muted)}@keyframes metro-flow{to{stroke-dashoffset:-32px}}@media (prefers-reduced-motion:reduce){.mline__flow,.ix__pulse{animation:none}}@media (width>=1100px){.overview{grid-template-columns:minmax(0,1fr) clamp(250px,19vw,320px)}}:root{--water:#2b8cf0;--water-soft:#b5d7fa}.water path,path.water{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.water--flow path,path.water--flow{stroke:var(--water);stroke-width:var(--w);opacity:.55;stroke-dasharray:10 12;animation:.9s linear infinite water-run}.water--pool path,path.water--pool{stroke:var(--amber);stroke-width:calc(var(--w) + 4px);opacity:.85;stroke-dasharray:4 6;animation:2.4s linear infinite water-run}.water--dry path,path.water--dry{display:none}.water.is-still path,path.water.is-still{animation:none}.core__track.is-dry{stroke:color-mix(in srgb, var(--ink) 16%, var(--surface));stroke-dasharray:1 10}.mline.is-dim .water path{opacity:.25}.mline.is-open .water path{opacity:.8}.pool__fill{fill:color-mix(in srgb, var(--amber) 35%, transparent);transition:r .4s}.pool__ring{fill:none;stroke:var(--red);stroke-width:2.5px;transform-box:fill-box;transform-origin:50%;animation:1.8s ease-out infinite pool-ripple}.pool__ring--2{animation-delay:.9s}.pool.is-still .pool__ring{opacity:.6;animation:none}.tick__ripple{fill:none;stroke:var(--red);stroke-width:2px;transform-box:fill-box;transform-origin:50%;animation:1.6s ease-out infinite pool-ripple}.ix__state{font:800 11.5px var(--font-mono);text-anchor:middle;letter-spacing:.04em;paint-order:stroke;stroke:var(--surface);stroke-width:4px}.ix__state--down{fill:var(--red-ink)}.ix__state--queue{fill:var(--amber-ink)}@keyframes water-run{to{stroke-dashoffset:-44px}}@keyframes pool-ripple{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(2.2)}}@media (prefers-reduced-motion:reduce){.water path,path.water,.pool__ring,.tick__ripple{animation:none}}.overview--solo{grid-template-columns:1fr!important}.mline--cut .mline__track{stroke:color-mix(in srgb, var(--ink) 22%, var(--surface));stroke-dasharray:2 10}.mline--cut .mline__name rect{fill:color-mix(in srgb, var(--c) 35%, #9a948c)}.mline--cut .tick__mark{stroke:color-mix(in srgb, var(--ink) 25%, var(--surface))}.mline--cut .mline__join{stroke:color-mix(in srgb, var(--ink) 30%, var(--surface))}.tick.is-dry .tick__mark{stroke:color-mix(in srgb, var(--ink) 25%, var(--surface));stroke-width:2px}.impact rect{stroke:var(--surface);stroke-width:2px}.impact text{font:800 11px var(--font-mono);letter-spacing:.05em;fill:#fff}.impact--cut rect{fill:var(--red)}.impact--partial rect{fill:var(--amber)}.impact--partial text{fill:var(--ink)}.impact--down rect{fill:var(--red-ink)}.district--cut{border-color:var(--red);background:color-mix(in srgb, var(--red) 4%, var(--surface))}.district--partial{border-color:var(--amber)}.district__state--cut{color:var(--red-ink)}.district__state--partial{color:var(--amber-ink)}.districts__alert{border-radius:var(--r-sm);background:var(--red-wash);color:var(--red-ink);margin:6px 0 0;padding:8px 10px;font-size:13px;line-height:1.4}.districts__alert strong{color:var(--red-ink)}
