@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/archivo-vietnamese-400-normal-BF4g3tCF.woff2)format("woff2"),url(/assets/archivo-vietnamese-400-normal-FGOLYM1a.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/archivo-latin-ext-400-normal-B5tPZzqW.woff2)format("woff2"),url(/assets/archivo-latin-ext-400-normal-DrmqtLj6.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/archivo-latin-400-normal-C81ewxNO.woff2)format("woff2"),url(/assets/archivo-latin-400-normal-Bl602Mgc.woff)format("woff");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}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-vietnamese-600-normal-anCjMumA.woff2)format("woff2"),url(/assets/archivo-vietnamese-600-normal-C8xBVdfP.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-latin-ext-600-normal-Dm61iqcg.woff2)format("woff2"),url(/assets/archivo-latin-ext-600-normal-D7uErJuz.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/archivo-latin-600-normal-3BBy0ZsW.woff2)format("woff2"),url(/assets/archivo-latin-600-normal-DwYieO8P.woff)format("woff");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}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-vietnamese-700-normal-nuAQAQa7.woff2)format("woff2"),url(/assets/archivo-vietnamese-700-normal-Bz2vkKqq.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-latin-ext-700-normal-DD_nkw6b.woff2)format("woff2"),url(/assets/archivo-latin-ext-700-normal-CgyfnKjw.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/archivo-latin-700-normal-D9cHMWGj.woff2)format("woff2"),url(/assets/archivo-latin-700-normal-lT5TFe7H.woff)format("woff");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}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/archivo-vietnamese-800-normal-DHDgv4cm.woff2)format("woff2"),url(/assets/archivo-vietnamese-800-normal-BKe5Z8rz.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/archivo-latin-ext-800-normal-BC6piDwP.woff2)format("woff2"),url(/assets/archivo-latin-ext-800-normal-B9NTbsU1.woff)format("woff");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:Archivo;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/archivo-latin-800-normal-cB6v3kRN.woff2)format("woff2"),url(/assets/archivo-latin-800-normal-DZa_k145.woff)format("woff");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: ;--lightningcss-dark:initial;color-scheme:dark;--brand-red:#d6191e;--coral:#ff6b60;--charcoal:#24272b;--paper:#f2f3f4;--status-normal:#f2f3f4;--status-attention:#ff6b60;--status-breached:#d6191e;--status-inactive:#3a3d42;--font-sans:"Archivo", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--type-display:800 40px/1.05 var(--font-sans);--type-page-title:800 30px/1.14 var(--font-sans);--type-screen-title:800 20px/1.25 var(--font-sans);--type-card-title:800 15px/1.3 var(--font-sans);--type-control:700 15px/1.2 var(--font-sans);--type-body:400 14px/1.65 var(--font-sans);--type-body-strong:600 14px/1.6 var(--font-sans);--type-caption:500 12px/1.5 var(--font-sans);--type-micro:700 11px/1.35 var(--font-sans);--type-eyebrow:800 10.5px/1.3 var(--font-sans);--type-figure:800 34px/1 var(--font-sans);--type-figure-lg:800 44px/1 var(--font-sans);--type-figure-sm:700 17px/1.1 var(--font-sans);--type-clock:800 56px/1 var(--font-sans);--type-field-title:800 22px/1.2 var(--font-sans);--type-field-label:800 12px/1.3 var(--font-sans);--type-field-control:700 18px/1.2 var(--font-sans);--type-field-body:500 14px/1.5 var(--font-sans);--type-field-hin:500 13px/1.45 var(--font-sans);--tracking-display:-.024em;--tracking-page-title:-.018em;--tracking-figure:-.02em;--tracking-eyebrow:.16em;--tracking-section-label:.2em;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:72px;--space-1:var(--s1);--space-2:var(--s2);--space-3:var(--s3);--space-4:var(--s4);--space-5:var(--s5);--space-6:var(--s6);--space-7:var(--s7);--radius-card:10px;--radius-control:8px;--radius-badge:999px;--row-h:44px;--tap:48px;--tap-field:64px}:root,[data-theme=dark]{--page:#121417;--shell:#1e2124;--surface:#24272b;--surface-2:#2b2e33;--hairline:#33363b;--hairline-strong:#43464c;--edge:#42464d;--control-edge:#6d727c;--heading:#fff;--body:#eceef0;--dim:#b4b7bc;--faint:#92969c;--notice:#2f2327;--track:#2e3136;--alert-n1:#6582e3;--alert-n3:#00a6fb;--alert-n4:#e09f3e;--alert-n5:#e55b32;--alert-n6:#a870e9;--alert-n7:#b4795f;--alert-n8:#f15bb5;--alert-n9:#8d99ae;--red-text:#ff4d4f}[data-theme=light]{--page:#e3e6e9;--shell:#fff;--surface:#f4f5f6;--surface-2:#eceef0;--hairline:#d8dadd;--hairline-strong:#b9bcc0;--edge:#c8cbd0;--control-edge:#888d94;--heading:#1a1c1f;--body:#2c2f33;--dim:#55585d;--faint:#63666b;--notice:#fdeceb;--track:#dfe1e4;--status-normal:#24272b;--status-attention:#c1121f;--coral:#c1121f;--red-text:#cc1219;--alert-n1:#4e6fdf;--alert-n3:#007dbd;--alert-n4:#a26b1a;--alert-n5:#d4451b;--alert-n6:#9554e4;--alert-n7:#a5674d;--alert-n8:#e0138e;--alert-n9:#687792}.bucket-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(230px,1fr));display:grid}.bucket{background:var(--surface);border:1px solid var(--edge);border-top:3px solid var(--coral);border-radius:var(--radius-control);padding:var(--space-4) var(--space-5)}.bucket:first-child{border-top-color:var(--brand-red)}.bucket:last-child{border-top-color:var(--status-inactive)}.bucket-label{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--faint);display:block}.bucket-value{font:var(--type-display);color:var(--heading);margin:2px 0 var(--space-3);font-size:28px;display:block}.bucket-note{font:var(--type-body);color:var(--dim)}.chart-svg{width:100%;height:auto;display:block}.grid-line{stroke:var(--hairline);stroke-width:1px}.axis-text{fill:var(--faint);font-size:10px;font-family:var(--font-sans)}.ta-end{text-anchor:end}.ta-mid{text-anchor:middle}.legend{gap:var(--space-5);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.legend-item{font:var(--type-caption);color:var(--dim);align-items:center;gap:6px;display:inline-flex}.legend-swatch{border-radius:3px;width:10px;height:10px;display:inline-block}select:focus,input:focus{outline:2px solid var(--brand-red);outline-offset:1px}.slider-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.slider-head{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.slider-label{font:var(--type-body);color:var(--heading);font-weight:700}.slider-value{font:var(--type-control);color:var(--red-text);font-size:14px}.slider input[type=range]{width:100%;margin:var(--space-2) 0;accent-color:var(--brand-red)}.slider-basis{font:var(--type-caption);color:var(--faint)}.back{margin-bottom:var(--space-4)}.login-page{min-height:100vh;padding:var(--space-6);place-items:center;display:grid}.login-card{background:var(--shell);border:1px solid var(--edge);border-radius:var(--radius-card);width:100%;max-width:380px;padding:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.login-card h1{font:var(--type-screen-title);color:var(--heading);margin-top:var(--space-2)}.field{flex-direction:column;gap:5px;display:flex}.field span{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--faint)}.error-text{font:var(--type-body);color:var(--red-text)}.mode-switch{border:1px solid var(--control-edge);border-radius:var(--radius-control);margin:var(--s3) 0 var(--s2);display:flex;overflow:hidden}.mode-switch button{font:var(--type-caption);padding:var(--s2) var(--s3);color:var(--dim);cursor:pointer;border:0;border-right:1px solid var(--control-edge);background:0 0;flex:1;font-weight:700}.mode-switch button:last-child{border-right:0}.mode-switch button:hover{color:var(--heading)}.mode-switch button[aria-pressed=true]{background:var(--heading);color:var(--page)}.mode-switch button:focus-visible{outline:2px solid var(--brand-red);outline-offset:-2px}.field .hint{font:var(--type-caption);color:var(--faint)}.meter-fill{background:var(--status-normal);height:100%;transition:width .3s}.meter.attention .meter-fill{background:var(--status-attention)}.meter.breached .meter-fill{background:var(--status-breached)}.metro-stop .marker{border-radius:2px;width:4px;height:10px;position:absolute;top:0;left:50%;transform:translate(-50%)}.fleet-map{width:100%;min-width:640px;height:auto}.tilemap.theme-dark .tilemap-tile{filter:invert()hue-rotate(180deg)saturate(.55)brightness(.9)contrast(.95)}.tilemap.theme-light .tilemap-tile{filter:saturate(.85)brightness(1.02)}.rake-swatch{vertical-align:baseline;border:1px solid #00000040;border-radius:2px;width:9px;height:9px;margin-right:7px;display:inline-block}.map-legend{gap:var(--space-3) var(--space-5);margin-top:var(--space-4);font:var(--type-caption);color:var(--dim);flex-wrap:wrap;display:flex}.legend-rake{align-items:center;display:inline-flex}.screen{display:block}.pill{font:var(--type-caption);background:var(--brand-red);color:#fff;border-radius:var(--radius-badge);padding:1px 8px}.auth-screen{min-height:100dvh;padding:var(--space-6);background:var(--page);place-items:center;display:grid}.auth-card{background:var(--shell);border:1px solid var(--edge);border-radius:var(--radius-card);width:100%;max-width:420px;padding:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.auth-card h1{font:var(--type-screen-title);color:var(--heading)}.auth-card label{font:var(--type-caption);color:var(--faint)}.auth-card input{width:100%;min-height:46px;padding:0 var(--space-4);border-radius:var(--radius-control);border:1px solid var(--control-edge);background:var(--surface);color:var(--body);font:var(--type-control)}.auth-card button[type=submit]{border-radius:var(--radius-control);border:1px solid var(--brand-red);background:var(--brand-red);color:#fff;min-height:48px;font:var(--type-control);cursor:pointer}.foot-actions{gap:var(--space-2);display:flex}.foot-actions .btn-quiet{flex:1}.alert-bell{align-items:center;gap:var(--space-3);margin:0 var(--space-4) var(--space-5);padding:var(--space-3) var(--space-4);border:1px solid var(--edge);border-radius:var(--radius-control);color:var(--dim);font:var(--type-caption);font-weight:700;text-decoration:none;display:flex}.alert-bell:hover,.alert-bell.active{border-color:var(--brand-red);color:var(--heading)}.bell-count{text-align:center;border-radius:var(--radius-badge);background:var(--status-attention);min-width:22px;color:var(--charcoal);margin-left:auto;padding:1px 7px;font-weight:800}.bell-count.urgent{background:var(--brand-red);color:#fff}.alert-row{gap:var(--space-4);padding:var(--space-4) 0;border-bottom:1px solid var(--hairline);grid-template-columns:4px 1fr auto;align-items:start;display:grid}.alert-row:last-child{border-bottom:none}.alert-bar{background:var(--faint);border-radius:2px;align-self:stretch}.alert-row.urgent .alert-bar{background:var(--brand-red)}.alert-row.attention .alert-bar{background:var(--status-attention)}.alert-title{font:var(--type-card-title);color:var(--heading)}.alert-detail{font:var(--type-body);color:var(--dim);max-width:76ch;margin-top:2px}.alert-meta{font:var(--type-caption);color:var(--faint);margin-top:var(--space-2)}.alert-side{text-align:right;white-space:nowrap}.alert-bell .bell-icon{flex:none}body{font:var(--type-body);color:var(--body);background:var(--page);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;text-wrap:pretty}button,input,select{font-family:var(--font-sans)}:focus-visible{outline:2px solid var(--brand-red);outline-offset:2px}.num,.figure,.mono,.stat-value,.metro-age,.meter-clock,.data-table .ta-right,.data .num{font-variant-numeric:tabular-nums}.shell-layout{grid-template-columns:244px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--shell);border-right:1px solid var(--edge);padding:var(--s5) var(--s4) var(--s4);gap:var(--s6);flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow-y:auto}.brand{padding-left:var(--s2)}.eyebrow{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--coral)}.brand-name{font:var(--type-screen-title);color:var(--heading);margin-top:var(--s1);letter-spacing:-.01em}.nav-group{margin-bottom:var(--s5)}.nav-group:last-child{margin-bottom:0}.nav-tier{font:var(--type-eyebrow);letter-spacing:var(--tracking-section-label);text-transform:uppercase;color:var(--faint);padding-left:var(--s2);margin-bottom:var(--s2)}.nav-link{padding:7px var(--s2);font:var(--type-body-strong);color:var(--dim);border-left:2px solid #0000;border-radius:6px;margin-left:-2px;text-decoration:none;display:block}.nav-link:hover{color:var(--heading);background:var(--surface)}.nav-link.active{color:var(--heading);background:var(--surface);border-left-color:var(--brand-red);font-weight:700}.sidebar-foot{border-top:1px solid var(--hairline);padding:var(--s4) var(--s2) 0;margin-top:auto}.user-email{font:var(--type-body-strong);color:var(--body);margin:var(--s2) 0 1px;word-break:break-word}.user-roles{font:var(--type-micro);color:var(--faint);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--s3)}.content{padding:var(--s7) var(--s6) var(--s6);width:100%;max-width:1240px;margin-inline:auto}.app-footer{justify-content:space-between;gap:var(--s4);border-top:1px solid var(--hairline);margin-top:var(--s8);padding-top:var(--s4);font:var(--type-caption);color:var(--faint);flex-wrap:wrap;display:flex}.view-header,.screen-head{margin-bottom:var(--s6);padding-bottom:var(--s5);border-bottom:1px solid var(--hairline)}.view-header h1,.screen-head h1{font:var(--type-page-title);letter-spacing:var(--tracking-page-title);color:var(--heading);margin-top:var(--s2);max-width:24ch}.standfirst{font:var(--type-body);color:var(--dim);margin-top:var(--s3);max-width:68ch}.card,.panel{background:var(--shell);border:1px solid var(--edge);border-radius:var(--radius-card);padding:var(--s5) var(--s5) var(--s4);margin-bottom:var(--s5)}.card-title,.panel h2{font:var(--type-card-title);color:var(--heading);align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.card-sub,.body-text{font:var(--type-body);color:var(--dim);margin-top:var(--s2);max-width:74ch}.card>*+*,.panel>*+*{margin-top:var(--s4)}.provenance{font:var(--type-caption);color:var(--faint);border-top:1px solid var(--hairline);padding-top:var(--s3);margin-top:var(--s5);gap:var(--s2);flex-wrap:wrap;align-items:baseline;display:flex}.provenance-label{text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);font:var(--type-eyebrow);color:var(--dim);flex-shrink:0}.stat-row-wrap{margin-bottom:var(--s5)}.stat-row{background:var(--shell);border:1px solid var(--edge);border-radius:var(--radius-card);grid-template-columns:repeat(auto-fit,minmax(210px,1fr));display:grid;overflow:hidden}.stat{padding:var(--s4) var(--s5) var(--s5);border-left:1px solid var(--edge);flex-direction:column;display:flex;position:relative}.stat:first-child{border-left:0}.stat:before{content:"";background:var(--status-inactive);height:3px;position:absolute;top:0;left:0;right:0}.stat-normal:before{background:var(--hairline-strong)}.stat-attention:before{background:var(--status-attention)}.stat-breached:before{background:var(--status-breached)}.stat-inactive:before{background:var(--status-inactive)}.stat-label{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--faint);min-height:2.4em}.stat-value{font:var(--type-figure);letter-spacing:var(--tracking-figure);color:var(--heading);margin-top:var(--s2)}.stat-unit{letter-spacing:.02em;color:var(--dim);margin-left:3px;font-size:.5em;font-weight:700}.stat-detail{font:var(--type-caption);color:var(--dim);margin-top:var(--s2);max-width:26ch}.stat-status{font:var(--type-micro);text-transform:uppercase;letter-spacing:.12em;padding-top:var(--s2);min-height:calc(2 * 1.35em + var(--s2));border-top:1px solid var(--hairline);color:var(--faint);margin-top:auto}.stat-attention .stat-status{color:var(--status-attention)}.stat-breached .stat-status{color:var(--red-text)}.note{border:1px solid var(--edge);border-left:3px solid var(--hairline-strong);border-radius:var(--radius-control);padding:var(--s4) var(--s4);font:var(--type-body);color:var(--body);margin-top:var(--s4);max-width:82ch}.note-info{border-left-color:var(--faint)}.note-assumption{border-left-color:var(--coral)}.note-warning{border-left-color:var(--brand-red);background:var(--notice)}.note-title{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--heading);margin-bottom:var(--s2);display:block}.note-assumption .note-title{color:var(--coral)}.note-warning .note-title{color:var(--red-text)}.note-text{font:var(--type-body);color:var(--dim);max-width:78ch}.auth-error,.field-error{border:1px solid var(--edge);border-left:3px solid var(--brand-red);background:var(--notice);border-radius:var(--radius-control);padding:var(--s4) var(--s4);font:var(--type-body);color:var(--body);margin-bottom:var(--s5);max-width:88ch}.auth-ok{border:1px solid var(--edge);border-left:3px solid var(--coral);border-radius:var(--radius-control);padding:var(--s4);font:var(--type-body);color:var(--body);margin-bottom:var(--s5)}.caveat-label{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--red-text);margin-bottom:var(--s2);display:block}.table-scroll{margin-inline:calc(-1 * var(--s5));padding-inline:var(--s5);overflow-x:auto}.data-table,.data{border-collapse:collapse;width:100%;font:var(--type-body)}.data-table th,.data th{text-align:left;font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--faint);white-space:nowrap;padding:var(--s3) var(--s4) var(--s3) 0;border-bottom:1px solid var(--hairline-strong);background:var(--shell);position:sticky;top:0}.data-table td,.data td{padding:0 var(--s4) 0 0;height:var(--row-h);border-bottom:1px solid var(--hairline);color:var(--body);white-space:nowrap;vertical-align:middle}.data-table th:last-child,.data-table td:last-child{padding-right:0}.data-table tbody tr td:first-child,.data tbody tr td:first-child{font:var(--type-body-strong);color:var(--heading)}.data-table tr:last-child td,.data tr:last-child td{border-bottom:0}.data-table tr.clickable{cursor:pointer}.data-table tr.clickable:hover td{background:var(--surface)}.data-table tr.clickable:hover td:last-child{color:var(--coral)}.ta-right,.data .num{text-align:right}.col-figures-start{box-shadow:inset 1px 0 0 var(--hairline);padding-left:var(--s4)!important}.mono,.data .mono{font-family:var(--font-mono);color:var(--dim);font-size:12.5px}.working-table{border-collapse:collapse;width:100%;font:var(--type-body);color:var(--body)}.working-table td{padding:var(--s3) 0}.working-table .rule-top td{border-top:1px solid var(--hairline)}.working-table .strong td{color:var(--heading);font-weight:800}.empty{border:1px dashed var(--hairline-strong);border-radius:var(--radius-control);padding:var(--s6) var(--s5);text-align:center;margin:var(--s3) 0}.empty-title{font:var(--type-card-title);color:var(--heading)}.empty-body{font:var(--type-body);color:var(--dim);margin-top:var(--s2)}.empty-body-strong{color:var(--body)}.chip{border-radius:var(--radius-badge);border:1px solid var(--control-edge);font:var(--type-micro);color:var(--dim);white-space:nowrap;background:0 0;align-items:center;gap:5px;padding:4px 10px;display:inline-flex}.chip-group{gap:var(--s2);flex-wrap:wrap;display:flex}.chip-own{color:var(--heading);border-color:var(--control-edge)}.chip-railway{color:var(--red-text);border-color:var(--red-text)}.chip-partner{color:var(--coral);border-color:var(--coral)}.chip-unknown{color:var(--faint);border-style:dashed}.tag-partial{font:var(--type-eyebrow);letter-spacing:.1em;text-transform:uppercase;color:var(--coral);border:1px solid var(--coral);border-radius:var(--radius-badge);padding:2px 7px}.text-attention{color:var(--status-attention);font-weight:700}.text-breached{color:var(--red-text);font-weight:700}.text-faint{color:var(--faint)}.metro{flex-direction:column;display:flex}.metro-row{gap:0 var(--s5);padding:var(--s5) 0;border-top:1px solid var(--hairline);grid-template-columns:152px 1fr;display:grid}.metro-row:first-child{padding-top:var(--s2);border-top:0}.metro-head{gap:var(--s1);flex-direction:column;display:flex}.metro-rake{font:var(--type-figure-sm);letter-spacing:-.01em;color:var(--heading);font-variant-numeric:tabular-nums}.metro-status{font:var(--type-micro);text-transform:uppercase;letter-spacing:.1em;color:var(--dim)}.metro-status-attention{color:var(--status-attention)}.metro-status-breached{color:var(--red-text)}.metro-age{font:var(--type-caption);color:var(--faint);margin-top:var(--s1)}.metro-age.stale{color:var(--status-attention);border:1px solid var(--status-attention);border-radius:var(--radius-badge);white-space:nowrap;align-self:flex-start;padding:2px 8px;font-size:11px;font-weight:700}.metro-body{min-width:0}.metro-line{height:62px;margin:0 var(--s5);position:relative}.metro-track{background:var(--hairline-strong);border-radius:1px;height:2px;position:absolute;top:34px;left:0;right:0}.metro-progress{background:var(--brand-red);border-radius:2px;height:4px;position:absolute;top:33px;left:0}.metro-line.sketch .metro-track{border-top:2px dashed var(--hairline-strong);background:0 0;height:0}.metro-line.sketch .metro-progress,.metro-line.no-position .metro-progress{display:none}.metro-line.no-position .metro-track{background:var(--hairline)}.metro-stop{position:absolute;top:0;transform:translate(-50%)}.metro-stop .dot{background:var(--hairline-strong);border-radius:0;width:1px;height:8px;margin:31px auto 0;display:block}.metro-stop.end .dot{background:var(--shell);border:2px solid var(--dim);border-radius:50%;width:9px;height:9px;margin-top:30px}.metro-stop.here .dot{background:var(--brand-red);border:0;border-radius:50%;width:7px;height:7px;margin-top:32px}.metro-stop .tag{font:var(--type-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);white-space:nowrap;position:absolute;top:44px;left:50%;transform:translate(-50%)}.metro-stop.end .tag{color:var(--dim)}.metro-marker{flex-direction:column;align-items:center;display:flex;position:absolute;top:0;left:0;transform:translate(-50%)}.metro-marker-code{font:var(--type-micro);letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--brand-red);white-space:nowrap;border-radius:3px;padding:4px 8px}.metro-marker-attention .metro-marker-code{background:var(--status-attention);color:var(--charcoal)}.metro-marker-stem{background:var(--brand-red);width:2px;height:12px}.metro-marker-attention .metro-marker-stem{background:var(--status-attention)}.metro-marker-stale .metro-marker-code{color:var(--faint);background:0 0;border:1px dashed;padding:3px 7px}.metro-marker-stale .metro-marker-stem{border-left:2px dashed var(--faint);background:0 0;width:0}.strip-key{gap:var(--s2) var(--s4);margin:var(--s3) 0 var(--s4);padding:var(--s3);border:1px solid var(--hairline);border-radius:6px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.strip-key>div{align-items:start;gap:var(--s2);grid-template-columns:auto 1fr;display:grid}.strip-key dt{align-items:center;min-height:20px;display:flex}.strip-key dd{font:var(--type-caption);color:var(--faint);margin:0}.strip-key dd strong{color:var(--heading)}.key-fois{font:var(--type-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--status-attention);white-space:nowrap}.key-lozenge{font:var(--type-micro);letter-spacing:.06em;text-transform:uppercase;color:#fff;background:var(--brand-red);white-space:nowrap;border-radius:3px;padding:4px 8px}.key-lozenge.stale{color:var(--faint);background:0 0;border:1px dashed;padding:3px 7px}.key-plain{font:var(--type-caption);color:var(--faint);white-space:nowrap}.key-ticks{background-image:repeating-linear-gradient(to right, var(--hairline-strong) 0 1px, transparent 1px 11px);width:54px;height:8px;display:block}.metro-unplaced{font:var(--type-micro);text-transform:uppercase;letter-spacing:.1em;color:var(--status-attention);border:1px dashed var(--status-attention);border-radius:var(--radius-badge);background:var(--shell);white-space:nowrap;padding:4px 12px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.metro-foot{justify-content:space-between;gap:var(--s4);font:var(--type-caption);color:var(--dim);padding:0 var(--s5);margin-top:var(--s2);flex-wrap:wrap;display:flex}.metro-foot .metro-route{color:var(--faint)}.metro-foot .metro-eta{color:var(--body);font-weight:600}.metro-caveat{font:var(--type-body);color:var(--body);border-left:3px solid var(--coral);background:var(--notice);border-radius:var(--radius-control);padding:var(--s3) var(--s4);margin:var(--s3) var(--s5) 0;max-width:76ch}.metro-caveat strong{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--coral);margin-bottom:var(--s1);display:block}@media (width<=900px){.metro-row{gap:var(--s3);grid-template-columns:1fr}.metro-head{align-items:baseline;gap:var(--s3);flex-flow:wrap}}.tilemap{border-radius:var(--radius-control);border:1px solid var(--hairline-strong);cursor:grab;touch-action:none;background:#0e1012;width:100%;position:relative;overflow:hidden}.tilemap:active{cursor:grabbing}.tilemap-tile{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(.4)brightness(.58)contrast(1.06);position:absolute}.tilemap-overlay{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.tilemap-credit{font:var(--type-caption);color:var(--dim);background:#17191cc7;border-radius:4px;padding:3px 7px;text-decoration:none;position:absolute;bottom:6px;right:8px}.tilemap-controls{top:var(--s3);right:var(--s3);border:1px solid var(--hairline-strong);border-radius:6px;flex-direction:column;gap:1px;display:flex;position:absolute;overflow:hidden}.tilemap-controls button{min-width:40px;min-height:40px;color:var(--heading);font:var(--type-control);cursor:pointer;border:0;border-bottom:1px solid var(--hairline);background:#17191ceb}.tilemap-controls button:last-child{font:var(--type-micro);text-transform:uppercase;letter-spacing:.1em;border-bottom:0}.tilemap-controls button:hover:not(:disabled){background:var(--brand-red)}.tilemap-controls button:disabled{opacity:.4;cursor:not-allowed}.tilemap-legend{left:var(--s3);top:var(--s3);border:1px solid var(--hairline-strong);padding:var(--s3);background:#17191ceb;border-radius:6px;max-width:260px;position:absolute}.tilemap-legend-title{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--faint)}.tilemap-legend-row{align-items:center;gap:var(--s2);font:var(--type-caption);color:var(--body);margin-top:var(--s2);display:flex}.legend-dot{background:var(--brand-red);border-radius:50%;flex-shrink:0;width:9px;height:9px}.legend-dash{border-top:2px dashed var(--status-attention);flex-shrink:0;width:14px;height:0}.map-label{font-family:var(--font-sans);fill:var(--heading);font-size:17px;font-weight:800}.map-label.sub{font-size:13px;font-weight:600}.map-label.halo{stroke:var(--shell);stroke-width:3.5px;paint-order:stroke}.chart{margin-top:var(--s4)}.bar-rows{flex-direction:column;display:flex}.bar-row{align-items:center;gap:var(--s4);border-bottom:1px solid var(--hairline);grid-template-columns:82px 1fr 76px;height:40px;display:grid}.bar-row:last-child{border-bottom:0}.bar-name{font:var(--type-body-strong);color:var(--heading);font-variant-numeric:tabular-nums}.bar-track{background:var(--track);border-radius:2px;height:14px;position:relative}.bar-fill{background:var(--brand-red);border-radius:2px;position:absolute;inset:0 auto 0 0}.bar-fill.excluded{background:repeating-linear-gradient(135deg, var(--status-inactive) 0 4px, var(--track) 4px 8px);border:1px solid var(--hairline-strong)}.bar-target{background:var(--paper);width:2px;position:absolute;top:-4px;bottom:-4px}.bar-value{font:var(--type-body-strong);color:var(--body);text-align:right;font-variant-numeric:tabular-nums}.bar-axis{gap:var(--s4);font:var(--type-caption);color:var(--faint);margin-top:var(--s2);grid-template-columns:82px 1fr 76px;display:grid}.bar-axis-scale{justify-content:space-between;display:flex}.filter-bar{gap:var(--s2);margin-bottom:var(--s5);padding-bottom:var(--s4);border-bottom:1px solid var(--hairline);flex-wrap:wrap;align-items:center;display:flex}.filter-bar .chip{cursor:pointer;min-height:34px}.filter-bar .chip[aria-pressed=true]{background:var(--surface);color:var(--heading);border-color:var(--control-edge);box-shadow:inset 0 -2px 0 var(--brand-red);font-weight:800}.filter-label{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--faint);margin-right:var(--s2)}.field-inline{gap:var(--s1);flex-direction:column;display:flex}.field-inline span{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--faint)}select,textarea,input:not([type]),input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=search],input[type=url],input[type=date],input[type=time],input[type=datetime-local],input[type=month]{background:var(--surface);border:1px solid var(--control-edge);color:var(--body);border-radius:var(--radius-control);padding:9px var(--s3);font:var(--type-body)}.btn-primary{background:var(--brand-red);color:#fff;border-radius:var(--radius-control);padding:12px var(--s5);font:var(--type-control);cursor:pointer;border:0}.btn-primary:disabled{opacity:.55;cursor:default}.btn-quiet{border:1px solid var(--control-edge);color:var(--dim);border-radius:var(--radius-control);padding:7px var(--s3);font:var(--type-caption);cursor:pointer;background:0 0;font-weight:700}.btn-quiet:hover{color:var(--heading);border-color:var(--faint)}.link-button{font:var(--type-caption);color:var(--coral);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.link-button:hover{color:var(--red-text)}@media (width<=900px){.shell-layout{grid-template-columns:1fr}.sidebar{z-index:10;height:auto;padding:var(--s3) var(--s4);gap:var(--s3);border-right:0;border-bottom:1px solid var(--edge);position:sticky;top:0}.sidebar nav{gap:var(--s5);display:flex;overflow-x:auto}.nav-group{align-items:center;gap:var(--s3);margin-bottom:0;display:flex}.nav-tier{white-space:nowrap;margin-bottom:0;padding-left:0}.nav-link{white-space:nowrap;border-bottom:2px solid #0000;border-left:0;border-radius:0}.nav-link.active{border-bottom-color:var(--brand-red);background:0 0}.sidebar-foot{align-items:baseline;gap:var(--s3);border-top:0;margin-top:0;padding:0;display:flex}.sidebar-foot .nav-tier{display:none}.user-email,.user-roles{margin:0}.content{padding:var(--s5) var(--s4)}}.field-shell{background:var(--page);color:var(--body);flex-direction:column;display:flex}.field-top{z-index:10;background:var(--shell);border-bottom:1px solid var(--hairline);padding:var(--s4) var(--s4) var(--s3);position:sticky;top:0}.field-top .eyebrow{color:var(--faint)}.field-top h1{font:var(--type-field-title);color:var(--heading);letter-spacing:-.01em;margin-top:var(--s1)}.hin,.field-top .hin{font:var(--type-field-hin);color:var(--dim)}.field-chips{gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;display:flex}.field-chips .chip{min-height:32px;font-size:11.5px}.chip.offline{border-color:var(--status-attention);color:var(--status-attention)}.chip.queued{border-color:var(--red-text);color:var(--red-text);font-weight:800}.field-body{padding:var(--s5) var(--s4) var(--s7);gap:var(--s6);flex-direction:column;flex:1;width:100%;max-width:480px;margin:0 auto;display:flex}.field-section>.label,.field-label{font:var(--type-field-label);letter-spacing:var(--tracking-section-label);text-transform:uppercase;color:var(--faint);margin-bottom:var(--s3);padding-bottom:var(--s2);border-bottom:1px solid var(--hairline);display:block}.field-label .hin{text-transform:none;letter-spacing:0}.tile-grid{gap:var(--s2);grid-template-columns:repeat(auto-fill,minmax(96px,1fr));display:grid}.tile-grid-2{grid-template-columns:1fr 1fr}.tile-grid-3{grid-template-columns:repeat(3,1fr)}.tile{min-height:var(--tap-field);border-radius:var(--radius-control);border:1px solid var(--control-edge);background:var(--surface);color:var(--body);padding:var(--s3);text-align:left;cursor:pointer;font:var(--type-field-control);font-variant-numeric:tabular-nums;flex-direction:column;justify-content:center;gap:2px;display:flex}.tile .sub{font:var(--type-caption);color:var(--faint);font-weight:600}.tile[aria-pressed=true]{border-color:var(--brand-red);background:var(--surface-2);color:var(--heading);box-shadow:inset 3px 0 0 var(--brand-red)}.tile[aria-pressed=true]:after{content:"✓";position:absolute}.tile[aria-pressed=true]{position:relative}.tile[aria-pressed=true]:after{color:var(--red-text);font-size:12px;font-weight:800;top:6px;right:8px}.tile:disabled{opacity:.42;cursor:not-allowed;border-style:dashed}.meter{border-radius:var(--radius-card);border:1px solid var(--hairline-strong);background:var(--surface);padding:var(--s4);border-top:3px solid var(--hairline-strong)}.meter.attention{border-top-color:var(--status-attention)}.meter.breached{border-top-color:var(--status-breached);background:var(--notice)}.meter-head{justify-content:space-between;align-items:flex-start;gap:var(--s3);display:flex}.meter-title{font:var(--type-field-label);letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.meter-title .hin{text-transform:none;letter-spacing:0;margin-top:2px;display:block}.meter-state{font:var(--type-micro);text-transform:uppercase;letter-spacing:.12em;color:var(--dim);border-radius:var(--radius-badge);white-space:nowrap;border:1px solid;padding:4px 10px}.meter.attention .meter-state{color:var(--status-attention)}.meter.breached .meter-state{color:var(--red-text);font-weight:800}.meter-clock{font:var(--type-clock);letter-spacing:var(--tracking-display);color:var(--heading);margin-top:var(--s3);display:block}.meter.attention .meter-clock{color:var(--status-attention)}.meter.breached .meter-clock{color:var(--status-breached)}.meter-clock-unit{font:var(--type-field-label);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-left:var(--s2)}.meter-track{margin:var(--s3) 0 var(--s3);grid-template-columns:repeat(5,1fr);gap:3px;display:grid}.meter-seg{background:var(--track);border:1px solid var(--hairline);border-radius:2px;height:14px}.meter-seg.spent{background:var(--status-normal);border-color:var(--status-normal)}.meter.attention .meter-seg.spent{background:var(--status-attention);border-color:var(--status-attention)}.meter.breached .meter-seg.spent{background:repeating-linear-gradient(135deg, var(--status-breached) 0 5px, #8c1114 5px 10px);border-color:var(--status-breached)}.meter-seg.part{background:linear-gradient(to right, currentColor 50%, var(--track) 50%)}.meter-scale{font:var(--type-caption);color:var(--faint);justify-content:space-between;display:flex}.meter-note{font:var(--type-field-body);color:var(--body);margin-top:var(--s3)}.meter-note strong{color:var(--heading)}.meter-cost{font:var(--type-caption);color:var(--dim);margin-top:var(--s2);padding-top:var(--s2);border-top:1px solid var(--hairline)}.steps{gap:var(--s2);flex-direction:column;display:flex}.step{align-items:center;gap:var(--s3);border-radius:var(--radius-control);border:1px solid var(--control-edge);background:var(--surface);min-height:72px;color:var(--body);padding:var(--s3) var(--s4);cursor:pointer;text-align:left;grid-template-columns:36px 1fr auto;display:grid}.step .n{border:1px solid var(--hairline-strong);width:36px;height:36px;font:var(--type-field-control);color:var(--faint);border-radius:6px;place-items:center;display:grid}.step .en{font:var(--type-field-control);color:var(--heading);display:block}.step .hin{margin-top:2px;display:block}.step .time{font:var(--type-figure-sm);color:var(--faint);font-variant-numeric:tabular-nums;text-align:right}.step .time-label{font:var(--type-eyebrow);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-top:2px;display:block}.step.done{border-color:var(--brand-red);box-shadow:inset 3px 0 0 var(--brand-red)}.step.done .n{background:var(--brand-red);border-color:var(--brand-red);color:#fff}.step.done .time{color:var(--heading)}.step.next{border-style:dashed;border-color:var(--coral)}.step.next .n{border-color:var(--coral);color:var(--coral);border-style:dashed}.step:not(.done):not(.next){border-style:dashed}.step:disabled{opacity:.42;cursor:not-allowed}.btn-field{border-radius:var(--radius-control);border:1px solid var(--control-edge);background:var(--surface);width:100%;min-height:56px;color:var(--body);font:var(--type-field-control);cursor:pointer}.btn-field.primary{background:var(--brand-red);border-color:var(--brand-red);color:#fff}.btn-field.primary .hin{color:#ffffffd9}.btn-field:disabled{opacity:.5;cursor:not-allowed}.field-hint{font:var(--type-caption);color:var(--faint);text-align:center}.queue-item{text-align:left;border-radius:var(--radius-control);border:1px solid var(--control-edge);background:var(--surface);width:100%;padding:var(--s3) var(--s4);gap:var(--s1);cursor:pointer;color:var(--body);min-height:var(--tap-field);flex-direction:column;display:flex}.queue-item .row-1{justify-content:space-between;gap:var(--s3);align-items:baseline;display:flex}.queue-item .rake{font:var(--type-figure-sm);color:var(--heading);font-variant-numeric:tabular-nums}.queue-item .meta{font:var(--type-caption);color:var(--dim)}.queue-item .meta-time{font:var(--type-caption);color:var(--faint);font-variant-numeric:tabular-nums}.queue-item .event{font:var(--type-body-strong);color:var(--body)}.queue-item .miss{font:var(--type-micro);color:var(--status-attention);text-transform:uppercase;letter-spacing:.08em;border:1px dashed var(--status-attention);border-radius:var(--radius-control);padding:6px var(--s2);margin-top:var(--s2)}.queue-item.blocked{opacity:.72;cursor:not-allowed;border-style:dashed}.queue-item.verified{cursor:default;box-shadow:inset 3px 0 0 var(--hairline-strong)}.queue-item.verified .rake{color:var(--body)}.queue-count{font:var(--type-figure-sm);color:var(--heading);font-variant-numeric:tabular-nums}.correction{gap:var(--s3);flex-direction:column;display:flex}.correction-row{gap:var(--s3);border-top:1px solid var(--hairline);padding-top:var(--s3);grid-template-columns:1fr 1fr;display:grid}.correction-label{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--faint)}.correction-was{font:var(--type-figure-sm);color:var(--faint);text-decoration:line-through}.correction-now{font:var(--type-figure-sm);color:var(--heading)}.correction input,.correction textarea{width:100%;min-height:48px;font:var(--type-field-control)}.correction textarea{min-height:84px;font:var(--type-field-body)}.audit{gap:var(--s2);flex-direction:column;display:flex}.audit-line{gap:var(--s3);font:var(--type-caption);color:var(--dim);border-left:1px solid var(--hairline);padding-left:var(--s3);grid-template-columns:84px 1fr;display:grid}.audit-line span:first-child{color:var(--faint);font-variant-numeric:tabular-nums}.toast{left:50%;bottom:var(--s5);background:var(--charcoal);border:1px solid var(--brand-red);color:var(--heading);border-radius:var(--radius-control);padding:var(--s3) var(--s5);font:var(--type-field-body);z-index:50;max-width:90vw;font-weight:700;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0006}.tilemap{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.tilemap svg text,.tilemap .map-label,.tilemap .map-sub{pointer-events:none;-webkit-user-select:none;user-select:none}.map-sub{font-family:var(--font-sans);fill:var(--heading);font-size:13px;font-weight:600;line-height:1.5}.map-sub.halo{stroke:var(--shell);stroke-width:3.5px;paint-order:stroke}.map-alarm-text{letter-spacing:.04em;font-weight:800}@keyframes alarm-pulse{0%{opacity:.15;r:11}50%{opacity:.95;r:18}to{opacity:.15;r:11}}.alarm-pulse{animation:1.6s ease-in-out infinite alarm-pulse}@keyframes alarm-dot{0%,to{opacity:.25}50%{opacity:1}}.alarm-dot{background:var(--brand-red);border-radius:50%;width:.6em;height:.6em;margin-right:.5em;animation:1.6s ease-in-out infinite alarm-dot;display:inline-block}.legend-alarm{margin-left:var(--s1);border-radius:var(--radius-badge);border:1px solid var(--red-text);color:var(--red-text);font:var(--type-micro);padding:1px 6px;animation:1.6s ease-in-out infinite alarm-dot}@media (prefers-reduced-motion:reduce){.alarm-pulse{opacity:.9;animation:none}.alarm-dot,.legend-alarm{opacity:1;animation:none}}.auth-warn{border:1px solid var(--edge);border-left:3px solid var(--coral);background:var(--notice);border-radius:var(--radius-card);padding:var(--s3) var(--s4);font:var(--type-body);color:var(--body);margin-bottom:var(--s4)}.metro-row{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0}.metro-row:focus-visible{outline:2px solid var(--brand-red);outline-offset:2px}.rake-modal-backdrop{padding:var(--s4);z-index:50;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.rake-modal{background:var(--shell);border:1px solid var(--edge);border-radius:var(--radius-card);width:100%;max-width:560px;max-height:86vh;padding:var(--s5);overflow-y:auto}.rake-modal-head{align-items:baseline;gap:var(--s3);margin-bottom:var(--s3);display:flex}.rake-modal-head h3{font:var(--type-card-title);color:var(--heading);margin:0}.rake-modal-close{border:1px solid var(--control-edge);border-radius:var(--radius-control);color:var(--body);font:var(--type-caption);padding:var(--s1) var(--s2);cursor:pointer;background:0 0;margin-left:auto}.station-list{margin:var(--s3) 0 0;padding:0;list-style:none}.station-list-head{margin:var(--s3) 0 0 4px;padding:0 0 var(--s1) var(--s3);font:var(--type-caption);color:var(--faint);text-transform:lowercase;border-left:2px solid #0000;display:flex}.station-list-head+.station-list{margin-top:0}.station-list li{align-items:baseline;gap:var(--s2);padding:var(--s1) 0 var(--s1) var(--s3);font:var(--type-caption);color:var(--faint);border-left:2px solid var(--hairline);margin-left:4px;display:flex}.station-list li.key{color:var(--heading);font:var(--type-body-strong)}.station-list li.here{border-left-color:currentColor}.station-list .st-code{min-width:4.5em}.station-list .st-dist,.station-list-head .st-dist{align-items:baseline;gap:var(--s2);margin-left:auto;display:flex}.station-list .st-gap,.station-list-head .st-gap{text-align:right;min-width:3.4em;color:var(--faint);opacity:.8;font-variant-numeric:tabular-nums}.station-list .st-km,.station-list-head .st-km{text-align:right;font-variant-numeric:tabular-nums;min-width:5.4em}.station-list .st-role{color:var(--faint);font-weight:500}@media (width>=901px){.shell-layout{grid-template-columns:244px minmax(0,1fr)}}.content{min-width:0}@media (width>=901px){.shell-layout.nav-hidden{grid-template-columns:0 minmax(0,1fr)}}.shell-layout.nav-hidden .sidebar{border-right:0;padding-inline:0;overflow:hidden}.shell-layout.nav-hidden .sidebar>*{display:none}.nav-toggle{justify-content:center;align-items:center;gap:var(--s2);min-width:34px;height:34px;padding:0 var(--s2);border:1px solid var(--control-edge);border-radius:var(--radius-control);background:var(--surface);color:var(--dim);font:var(--type-micro);cursor:pointer;display:inline-flex}.nav-toggle:hover{color:var(--heading);border-color:var(--faint)}.nav-toggle:focus-visible{outline:2px solid var(--brand-red);outline-offset:2px}.nav-toggle.floating{top:var(--s3);left:var(--s3);z-index:40;background:var(--shell);position:fixed}@media (width<=900px){.nav-toggle{display:none}.shell-layout,.shell-layout.nav-hidden{grid-template-columns:1fr}.shell-layout.nav-hidden .sidebar>*{display:revert}}.brand{justify-content:space-between;align-items:flex-start;gap:var(--s2);display:flex}.brand-mark{min-width:0}.brand .nav-toggle{flex-shrink:0}.brand-logo{box-sizing:content-box;object-fit:contain;width:auto;max-width:100%;height:32px;margin-bottom:var(--s3);background:#fff;border-radius:5px;padding:5px 7px;display:block}.metro{gap:var(--s4)}.metro-row{border:1px solid var(--edge);border-radius:var(--radius-card);background:var(--shell);padding:var(--s4) var(--s5)}.metro-row:first-child{padding-top:var(--s4)}.metro-row:hover{border-color:var(--hairline-strong)}.metro-caveat{margin:var(--s3) 0 0;max-width:none}.metro-body>.metro-caveat:first-of-type{margin-top:var(--s4)}.metro-line{margin:0}.metro-foot{padding:0}.note,.auth-error,.field-error,.auth-ok,.auth-warn,.note-text{max-width:none}.note,.auth-error,.field-error,.auth-ok,.auth-warn,.stat-row-wrap,.card,.panel,.chart,.filter-bar,.table-scroll{margin-bottom:var(--s5)}.note+.note,.auth-error+.auth-error,.auth-warn+.auth-warn,.auth-error+.auth-warn,.auth-warn+.auth-error{margin-top:0}.card>.note:last-child,.panel>.note:last-child,.card>.auth-error:last-child,.panel>.auth-error:last-child{margin-bottom:0}.table-scroll .data,.table-scroll .data-table{min-width:max-content}.alert-cat{border-radius:var(--radius-badge);margin-right:var(--s2);font:var(--type-micro);text-transform:uppercase;letter-spacing:.08em;vertical-align:1px;white-space:nowrap;border:1px solid;padding:1px 8px;display:inline-block}.alert-legend{gap:var(--s2) var(--s5);margin-top:var(--s2);margin-bottom:var(--s3);font:var(--type-caption);color:var(--dim);flex-wrap:wrap;display:flex}.alert-legend-item{align-items:center;gap:var(--s2);display:inline-flex}.alert-swatch{border:1px solid #00000040;border-radius:3px;flex-shrink:0;width:10px;height:10px}.legend-title{font:var(--type-eyebrow);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--faint);margin-top:var(--s5)}.metro-unplaced{background:var(--shell);box-shadow:0 0 0 4px var(--shell);top:0}.update-bar{left:50%;bottom:var(--s4);z-index:60;padding:var(--s3) var(--s5);border:1px solid var(--brand-red);border-radius:var(--radius-badge);background:var(--brand-red);color:#fff;font:var(--type-control);cursor:pointer;position:fixed;transform:translate(-50%);box-shadow:0 8px 28px #0006}.standfirst,.card-sub,.body-text,.alert-detail,.metro-caveat{max-width:none}@media (width>=900px){.field-shell{background:0 0}.field-top{padding:0 0 var(--s5);margin-bottom:var(--s6);background:0 0;position:static}.field-top h1{font:var(--type-page-title);letter-spacing:var(--tracking-page-title)}.field-body{gap:var(--s5);grid-template-columns:minmax(0,300px) minmax(0,1fr);align-items:start;max-width:none;padding:0;display:grid}.field-body>.rake-index{top:var(--s5);border:1px solid var(--edge);border-radius:var(--radius-card);background:var(--shell);padding:var(--s4);grid-area:1/1/span 8;position:sticky}.field-body>.rake-index .tile-grid{grid-template-columns:1fr}.field-body>:not(.rake-index){grid-column:2}.field-body>.field-section .tile-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.steps{gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.step{grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-content:start}.step .time{text-align:left;grid-column:1/-1}.btn-field{min-height:52px}.meter-clock{font:var(--type-clock)}}.review-grid{display:block}.review-form>.panel{margin-bottom:var(--s5)}.src-bar{margin-top:var(--s3);gap:3px;display:flex}.src-bar>span{border-radius:2px;flex:1;height:6px}.src-key{gap:var(--s1) var(--s3);margin-top:var(--s2);font:var(--type-micro);color:var(--dim);flex-wrap:wrap;display:flex}.review-pair{gap:var(--s3);grid-template-columns:1fr 1fr;display:grid}.review-pair input,.review-form textarea{width:100%;min-height:var(--tap);padding:var(--s3);border:1px solid var(--control-edge);border-radius:var(--radius-control);background:var(--surface);color:var(--body);font:var(--type-control)}.review-form textarea{min-height:84px;font:var(--type-body);resize:vertical}.review-pair input.edited{border-color:var(--brand-red)}.review-head{align-items:flex-start;gap:var(--s4);display:flex}.review-head h2{margin:0}.review-actions{align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.review-actions .btn-primary{flex:1;width:auto;min-width:220px}.review-actions .field-hint{text-align:left;flex-basis:100%}@media (width>=900px){.review-grid{gap:var(--s5);grid-template-columns:minmax(0,380px) minmax(0,1fr);align-items:start;display:grid}.review-queue{top:var(--s5);position:sticky}.review-form{gap:var(--s5);grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start;display:grid}.review-form>.panel{margin-bottom:0}}.data-table tr.clickable:focus-visible{outline:2px solid var(--brand-red);outline-offset:-2px}[data-theme=light] .bell-count{color:var(--paper)}.live-freshness{align-items:center;gap:var(--s2);font:var(--type-caption);color:var(--faint);margin-top:var(--s2);flex-wrap:wrap;display:flex}.live-freshness .link-button{margin-left:var(--s2)}.live-dot{background:var(--coral);border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:2.4s ease-in-out infinite alarm-dot}@media (prefers-reduced-motion:reduce){.live-dot{opacity:1;animation:none}}.skeleton{gap:var(--s5);flex-direction:column;display:flex}.sk-head{gap:var(--s3);padding-bottom:var(--s5);border-bottom:1px solid var(--hairline);flex-direction:column;display:flex}.sk-panel{gap:var(--s3);background:var(--shell);border:1px solid var(--edge);border-radius:var(--radius-card);padding:var(--s5) var(--s5) var(--s4);flex-direction:column;display:flex}.sk-table{gap:var(--s3);margin-top:var(--s2);flex-direction:column;display:flex}.sk-row{gap:var(--s5);align-items:center;display:flex}.sk-bar{background:var(--surface-2);border-radius:3px;display:block;position:relative;overflow:hidden}.sk-bar:after{content:"";background:linear-gradient(90deg, transparent, var(--hairline-strong), transparent);animation:1.6s ease-in-out infinite sk-sheen;position:absolute;inset:0;transform:translate(-100%)}@keyframes sk-sheen{to{transform:translate(100%)}}.skeleton-boot{justify-content:center;align-items:center;min-height:60vh}.sk-boot-mark{gap:var(--s3);flex-direction:column;align-items:center;display:flex}@media (prefers-reduced-motion:reduce){.sk-bar:after{opacity:0;animation:none}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.date-row{gap:var(--s3);flex-wrap:wrap;display:flex}.date-row input{min-width:0;min-height:48px;padding:0 var(--s3);font:var(--type-body);color:var(--body);background:var(--shell);border:1px solid var(--control-edge);border-radius:var(--radius-card);flex:160px}.date-row input:focus-visible{outline:2px solid var(--coral);outline-offset:1px}.photo-drop{justify-content:center;align-items:center;gap:var(--s2);min-height:56px;padding:var(--s3) var(--s4);text-align:center;font:var(--type-body);color:var(--body);background:var(--shell);border:1px dashed var(--hairline);border-radius:var(--radius-card);cursor:pointer;overflow-wrap:anywhere;display:flex}.photo-drop:focus-within{outline:2px solid var(--coral);outline-offset:1px;border-style:solid}.photo-drop input[type=file]{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.exif-list{margin:var(--s2) 0 0;padding-left:var(--s4);font:var(--type-caption);color:var(--body)}.exif-list li+li{margin-top:var(--s1)}.tilemap-credit,.tilemap-controls,.tilemap-legend{--heading:#fff;--body:#eceef0;--dim:#b4b7bc;--faint:#92969c;--hairline:#33363b;--hairline-strong:#43464c}.chart{overflow-x:auto}.metro-stop .dot{background:var(--heading)}.key-ticks{background-image:repeating-linear-gradient(to right, var(--heading) 0 1px, transparent 1px 11px)}button.legend-rake,.legend-all{border-radius:var(--radius-control);padding:3px var(--s2);font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000}button.legend-rake:hover,.legend-all:hover{border-color:var(--hairline)}button.legend-rake.on,.legend-all.on{border-color:var(--faint);background:var(--surface)}button.legend-rake:focus-visible,.legend-all:focus-visible{outline:2px solid var(--brand-red);outline-offset:1px}.legend-all{font:var(--type-caption);color:var(--dim)}.legend-service{margin-left:var(--s2);border:1px solid var(--faint);font:var(--type-micro);letter-spacing:.06em;color:var(--dim);border-radius:3px;padding:1px 5px}.service-offer{margin-top:var(--s3)}.btn-quiet.is-disabled,.btn-quiet:disabled{opacity:.45;cursor:not-allowed}.service-actions{gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;display:flex}.service-note{min-width:0;min-height:34px;padding:0 var(--s3);font:var(--type-caption);color:var(--body);background:var(--shell);border:1px solid var(--hairline);border-radius:var(--radius-control);flex:220px}.tab-row{gap:var(--s2);margin:var(--s5) 0 var(--s4);border-bottom:1px solid var(--hairline);flex-wrap:wrap;display:flex}.tab-row .tab{padding:var(--s3) var(--s4);font:var(--type-control);color:var(--dim);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px}.tab-row .tab:hover{color:var(--heading)}.tab-row .tab.on{color:var(--heading);border-bottom-color:var(--brand-red)}.tab-row .tab:focus-visible{outline:2px solid var(--brand-red);outline-offset:-2px}.pill{background:var(--surface-2);border:1px solid var(--edge);font:var(--type-micro);letter-spacing:.04em;white-space:nowrap;color:var(--body);border-radius:3px;padding:2px 8px;display:inline-block}.pill.status-live{color:var(--status-attention);border-color:var(--status-attention)}.pill.status-built{color:var(--body)}.pill.status-not_built{color:var(--faint)}.pill.status-blocked{color:var(--red-text);border-color:var(--red-text)}.setting-list{flex-direction:column;display:flex}.setting{gap:var(--s4);padding:var(--s4) 0;border-bottom:1px solid var(--hairline);grid-template-columns:minmax(0,1fr) minmax(280px,auto);align-items:center;display:grid}.setting:last-child{border-bottom:0}.setting-what{flex-direction:column;gap:2px;min-width:0;display:flex}.setting-what span{font:var(--type-caption)}.setting-control{gap:var(--s2);flex-direction:column;align-items:flex-start;display:flex}.setting-meta{font:var(--type-micro);color:var(--faint)}.inline-fields{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.inline-fields input[type=time],.inline-fields .num-field,.contact-fields input,.entry-row input,.entry-row select{min-height:38px;padding:0 var(--s3);font:var(--type-body);color:var(--body);background:var(--shell);border:1px solid var(--hairline);border-radius:var(--radius-control)}.num-field{width:90px}.station-field{min-width:190px}.unit{font:var(--type-caption);color:var(--dim)}.inline-fields input:focus-visible,.contact-fields input:focus-visible,.entry-row input:focus-visible,.entry-row select:focus-visible{outline:2px solid var(--brand-red);outline-offset:1px}table.routing th.rot{font:var(--type-micro);text-align:center;vertical-align:bottom;white-space:normal;width:88px;padding-bottom:var(--s2);color:var(--body);line-height:1.25}table.routing th:first-child{text-align:left}table.routing td:first-child{padding-right:var(--s5);line-height:1.5}table.routing td:first-child .pill{margin-top:3px}table.routing td.tick{text-align:center}table.routing input[type=checkbox]{cursor:pointer;width:18px;height:18px}.card-list{gap:var(--s4);grid-template-columns:repeat(auto-fit,minmax(340px,1fr));display:grid}.contact-card{border:1px solid var(--hairline);border-radius:var(--radius-card);padding:var(--s4);background:var(--shell)}.contact-card.missing{border-left:3px solid var(--status-attention)}.contact-head{margin-bottom:var(--s3);flex-direction:column;gap:2px;display:flex}.contact-head span{font:var(--type-caption)}.contact-fields{gap:var(--s3);flex-wrap:wrap;align-items:flex-end;display:flex}.contact-fields label{flex-direction:column;flex:140px;gap:3px;min-width:0;display:flex}.contact-fields label span{font:var(--type-micro);color:var(--dim)}.entry-row{background:var(--surface)}.entry-row input,.entry-row select{width:100%}.reauth-backdrop{z-index:100;padding:var(--s4);background:#0000009e;place-items:center;display:grid;position:fixed;inset:0}.reauth-box{background:var(--shell);border:1px solid var(--edge);border-radius:var(--radius-card);width:min(420px,100%);padding:var(--s5)}.reauth-box h2{margin:0 0 var(--s3)}.reauth-field{margin:var(--s4) 0 var(--s3);display:block}.reauth-field span{font:var(--type-caption);color:var(--dim);margin-bottom:var(--s2);display:block}.reauth-field input{width:100%}.reauth-actions{gap:var(--s3);margin-top:var(--s4);justify-content:flex-end;display:flex}.filter-row{gap:var(--s2);margin:var(--s4) 0;flex-wrap:wrap;display:flex}.pill.op-insert{color:var(--status-attention);border-color:var(--status-attention)}.pill.op-update{color:var(--body)}.pill.op-delete{color:var(--red-text);border-color:var(--red-text)}.audit-diff{margin-top:var(--s3);padding:var(--s3);background:var(--surface);border-radius:var(--radius-badge);font:var(--type-caption)}.audit-field{gap:var(--s2);flex-wrap:wrap;align-items:baseline;padding:2px 0;display:flex}.audit-name{min-width:12ch;color:var(--faint)}.audit-was{color:var(--faint);font-family:var(--font-mono);text-decoration:line-through}.audit-arrow{color:var(--faint)}.audit-now{color:var(--body);font-family:var(--font-mono)}.nowrap,.row-actions{white-space:nowrap}.btn-quiet.danger{color:var(--red-text);border-color:var(--red-text)}.row-confirm{white-space:normal;gap:var(--s2);min-width:240px;display:grid}.row-confirm .note-text{margin:0}.code-field{text-transform:uppercase;width:8ch}.digest{margin:var(--s3) 0 0;gap:var(--s3);display:grid}.digest-section{border-left:2px solid var(--hairline);padding-left:var(--s3)}.digest-section h4{font:var(--type-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--faint);margin:0 0 2px}.digest-section p{font:var(--type-body);margin:0}.digest-list{padding-left:var(--s4);font:var(--type-body);margin:0}.digest-list li{margin:2px 0}.digest-asof{font:var(--type-caption);color:var(--faint);margin-top:var(--s2)}table.people th.rot{font:var(--type-micro);text-align:center;vertical-align:bottom;white-space:normal;width:84px;padding-bottom:var(--s2);color:var(--body);line-height:1.25}table.people td.tick{text-align:center}table.people input[type=checkbox]{cursor:pointer;width:18px;height:18px}.dept-count{font:var(--type-micro);color:var(--faint);margin-top:2px;display:block}.inactive-row td{opacity:.55}.inactive-row .pill{margin-left:var(--s2);opacity:1}.sub-field{width:100%;margin-top:3px;display:block}.inline-check{align-items:center;gap:var(--s2);font:var(--type-caption);display:flex}.inline-check input{width:16px;height:16px}.login-card input{font-size:17px}@media (pointer:coarse){input,select,textarea{font-size:16px}}.login-card .link-button{min-height:44px;padding:var(--s2) var(--s3)}.mode-switch button{min-height:44px}.date-row input{font-size:17px}.field-shell .link-button{min-height:44px;padding:var(--s2) var(--s3);display:inline-block}.free-time{container-type:inline-size}.free-time .meter-note{min-height:3em}@container (width<250px){.free-time .meter-note{min-height:4.5em}}.step .time{min-width:4.6ch}.field-top .field-chips{flex-wrap:nowrap;overflow-x:auto}.field-top .field-chips .chip:focus-visible{outline-offset:-2px}.field-bar{gap:var(--s2);flex-direction:column;display:flex}html.field-screen .sidebar,html.field-screen .nav-toggle.floating{display:none}html.field-screen .shell-layout,html.field-screen .shell-layout.nav-hidden{grid-template-columns:minmax(0,1fr)}.field-menu{gap:var(--s2);margin-top:var(--s2);flex-wrap:wrap;display:flex}.field-menu .chip{min-height:var(--tap);padding:0 var(--s4);align-items:center;font-size:15px;text-decoration:none;display:inline-flex}.field-menu .chip.active{border-color:var(--brand-red);color:var(--heading)}.field-top.menu-open{position:static}html.field-screen.field-menu-open{scroll-padding-top:0}@media (width<=899px){.field-top{padding-top:var(--s3)}.field-top .field-chips{margin-top:0}}.steps .step{row-gap:var(--s1)}.steps .step .step-state{font:var(--type-caption);text-transform:none;letter-spacing:0;white-space:nowrap;text-overflow:ellipsis;grid-column:1/-1;margin-top:0;overflow:hidden}@media (width>=900px){.steps .step .step-state{white-space:normal;min-height:3em}}.steps .step .step-state.open{color:var(--faint)}.steps .step .step-state.now{color:var(--red-text)}.steps .step .step-state.phone{color:var(--status-attention)}.steps .step .step-state.recorded{color:var(--dim)}@media (width>=900px){.field-top{padding-bottom:var(--s3);margin-bottom:var(--s4)}}@media (width<=900px){html.field-screen{scroll-padding-top:var(--field-top-h,0px)}.field-bar{z-index:20;padding:var(--s3) var(--s6) calc(var(--s3) + env(safe-area-inset-bottom));background:var(--shell);border-top:1px solid var(--hairline);align-items:center;position:fixed;bottom:0;left:0;right:0}.field-bar>*{width:100%;max-width:calc(480px - 2 * var(--s4))}html.field-bar-on{scroll-padding-bottom:var(--field-bar-h,0px)}html.field-bar-on .content{padding-bottom:calc(var(--s5) + var(--field-bar-h,0px))}html.field-bar-on .toast,html.field-bar-on .update-bar{bottom:calc(var(--field-bar-h,0px) + var(--s3))}}.upload-tab-body>.screen{gap:inherit;padding:0}.upload-tab-body .screen-head{display:none}.upload-tab-body>.screen>.panel:first-of-type{margin-top:var(--s3)}.screen.live-stale>:not(.screen-head){opacity:.55;transition:opacity .2s}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100vh}body{font:var(--type-body);color:var(--body);background:var(--page);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}
