:root{--bg:#f4f5f7;--card:#fff;--text:#1b1b1f;--muted:#6b7280;--border:#d8dbe0;--accent:#2f6fed;--brand-blue:#005daa;--brand-ink:#2b3038;--error:#c0392b;--st-go-bg:#bbf7d0;--st-go-fg:#14532d;--st-bad-bg:#fecaca;--st-bad-fg:#7f1d1d;--st-warn-bg:#fed7aa;--st-warn-fg:#7c2d12;--st-hdo-bg:#e9d5ff;--st-hdo-fg:#6b21a8;--st-gone-bg:#eceef1;--st-gone-fg:#6b7280;--st-late:#dc2626;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1b1c1f;--card:#26272b;--text:#ececf0;--muted:#9aa0aa;--border:#3a3c42;--accent:#6d9bff;--brand-blue:#5c9fd6;--brand-ink:#ececf0;--error:#ff8a7a;--st-go-bg:#14532d;--st-go-fg:#bbf7d0;--st-bad-bg:#7f1d1d;--st-bad-fg:#fecaca;--st-warn-bg:#7c2d12;--st-warn-fg:#fed7aa;--st-hdo-bg:#5b21b6;--st-hdo-fg:#ede9fe;--st-gone-bg:#2b2e33;--st-gone-fg:#9aa0aa;--st-late:#ef4444}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.centered{place-items:center;min-height:100vh;padding:1rem;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.9rem;min-width:18rem;max-width:24rem;padding:1.5rem;display:flex}.card h1{margin:0 0 .25rem;font-size:1.4rem}.login-brand{flex-direction:column;align-items:center;gap:.4rem;display:flex}.login-brand h1{margin:0}.login-brand .brand-mark{width:52px;height:52px}.card h2{margin:0;font-size:1.1rem}label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}input,select{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:.55rem .6rem;font-size:1rem}.card.wide{max-width:34rem}.card h2{margin:.4rem 0 0}.row{flex-wrap:wrap;gap:.75rem;display:flex}.row>label{flex:1;min-width:8rem}.check{color:var(--text);flex-direction:row;align-items:center;gap:.5rem}.check input{width:auto}.actions{gap:.6rem;margin-top:.4rem;display:flex}button.ghost{color:var(--accent);border:1px solid var(--border);background:0 0}button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.55rem .9rem;font-size:.95rem}button:disabled{opacity:.6;cursor:default}.topbar{border-bottom:1px solid var(--border);background:var(--card);align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.topbar .spacer{flex:1}.topbar strong,.topbar .account-trigger{white-space:nowrap;flex-shrink:0}.brand{flex-shrink:0;align-items:center;gap:.5rem;display:inline-flex}.brand-mark{background:url(/favicon.svg) 50%/contain no-repeat;flex-shrink:0;width:22px;height:22px}.brand strong,.login-brand h1{color:var(--brand-ink)}.brand-accent{color:var(--brand-blue)}@media (prefers-color-scheme:dark){.brand-mark{background-image:url(/reserveradar-mark-white.svg)}}@media (width<=360px){.topbar{gap:.5rem;padding-left:.75rem;padding-right:.75rem}}.account{position:relative}.account-trigger{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.25rem;padding:.25rem .35rem;font-size:.9rem;display:inline-flex}.account-trigger:hover{background:var(--bg)}.account-trigger .chevron{transition:transform .15s}.account-trigger .chevron.open{transform:rotate(180deg)}.account-menu{background:var(--card);border:1px solid var(--border);z-index:20;border-radius:8px;min-width:9rem;padding:.25rem;position:absolute;top:calc(100% + .35rem);right:0;box-shadow:0 6px 20px #00000024}.account-menu button{text-align:left;width:100%;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:.5rem .6rem;font-size:.9rem;display:block}.account-menu button:hover{background:var(--bg)}.nav{align-items:center;gap:.75rem;font-size:.9rem;display:flex}.nav a{color:var(--accent);text-decoration:none}.nav .active{color:var(--text);font-weight:600}.nav .icon-link{align-items:center;display:inline-flex}.nav a.icon-link:hover{opacity:.75}.nav .icon-link.active{color:var(--muted)}.nav .icon-link svg{display:block}.topbar-actions{flex-shrink:0;align-items:center;gap:.6rem;display:inline-flex}.topbar-sep{background:var(--border);width:1px;height:18px}.app{flex-direction:column;height:100dvh;display:flex}.content{box-sizing:border-box;flex-direction:column;flex:1;gap:1rem;width:100%;max-width:60rem;min-height:0;margin:0 auto;padding:1.5rem 1rem;display:flex;overflow-y:auto}.muted{color:var(--muted)}.wide-content{max-width:72rem;overflow:hidden}.toolbar{flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;display:flex}.tb-group{flex-wrap:wrap;gap:.25rem .75rem;display:flex}.tb-group+.tb-group{margin-left:auto}.toolbar .chunk{white-space:nowrap}@media (width<=560px){.toolbar{row-gap:.5rem}.tb-group{flex:1 0 100%;justify-content:space-between}.tb-group+.tb-group{margin-left:0}}.clock-chip{border:1px solid var(--border);background:var(--card);color:var(--muted);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:.3rem;padding:.1rem .55rem;display:inline-flex}.clock-chip svg{transform-origin:50%;animation:1s clock-tick}@keyframes clock-tick{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.clock-chip svg{animation:none}}.table-scroll{border:1px solid var(--border);border-radius:8px;flex:1;min-height:0;overflow:auto}table.pairings{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}table.pairings th{text-align:left;background:var(--card);color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:.4rem .6rem;position:sticky;top:0}table.pairings td{white-space:nowrap;border-bottom:1px solid var(--border);padding:.3rem .6rem}table.pairings tbody tr{background:var(--card);color:var(--text)}.pairings tr.row-header{background:var(--bg);color:var(--muted);font-weight:600}.pairings tr.row-cross_fleet_dh{color:var(--muted)}.pairings tr.row-ontime_window{background:var(--st-go-bg);color:var(--st-go-fg)}.pairings tr.row-rap_fdp,.pairings tr.row-rest_30_168{background:var(--st-bad-bg);color:var(--st-bad-fg)}.pairings tr.row-training{background:var(--st-warn-bg);color:var(--st-warn-fg)}.pairings tr.row-hdo{background:var(--st-hdo-bg);color:var(--st-hdo-fg)}.pairings tr.row-lco_passed,.pairings tr.row-post_departure,.pairings tr.row-departure_passed,.pairings tr.row-show_passed{background:var(--st-gone-bg);color:var(--st-gone-fg)}.pairings tr.row-late{box-shadow:inset 4px 0 0 0 var(--st-late)}@media (prefers-color-scheme:dark){.pairings tr.row-header{background:#1f2125}}.error{color:var(--error);margin:0}button.link{color:var(--accent);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.sc-banner{border:1px solid var(--border);border-radius:.5rem;align-items:flex-start;gap:.75rem;padding:.5rem .75rem;font-size:.9rem;line-height:1.35;display:flex}.sc-banner-text{flex:1}.sc-banner-long_lead{background:#d9a44124;border-color:#d9a441}.sc-banner-ended{border-color:var(--error);background:#c0392b24}@media (prefers-color-scheme:dark){.sc-banner-ended{background:#ff8a7a29}}.sc-banner-dismiss{color:inherit;opacity:.6;cursor:pointer;background:0 0;border:none;flex:none;padding:0 .15rem;font-size:1.1rem;line-height:1}.sc-banner-dismiss:hover{opacity:1}.pairings tr.row-clickable{cursor:pointer}.pairings tr.row-selected,.pairings tr.row-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.popover-overlay{z-index:40;position:fixed;inset:0}.row-popover{z-index:41;background:var(--card);width:20rem;max-width:calc(100vw - 2rem);color:var(--text);border:1px solid var(--border);border-radius:.5rem;padding:.75rem;font-size:.85rem;position:fixed;box-shadow:0 8px 24px #0000002e}.row-popover-title{justify-content:space-between;align-items:center;margin-bottom:.35rem;font-weight:600;display:flex}.row-popover-close{color:inherit;opacity:.6;cursor:pointer;background:0 0;border:none;padding:0 .15rem;font-size:1.1rem;line-height:1}.row-popover-close:hover{opacity:1}.row-popover-why{margin:0 0 .5rem;line-height:1.4}.row-popover-facts{border-top:1px solid var(--border);grid-template-columns:auto 1fr;gap:.15rem .6rem;margin:0;padding-top:.4rem;display:grid}.row-popover-facts dt{color:var(--muted)}.row-popover-facts dd{font-variant-numeric:tabular-nums;margin:0}.pairings th.badge-col{width:1px}.pairings td.badge-cell{padding:.2rem .4rem}.row-badges{gap:3px;display:inline-flex}.row-badge{letter-spacing:.02em;color:#fff;white-space:nowrap;border-radius:4px;align-items:center;padding:0 4px;font-size:.62rem;font-weight:700;line-height:1.5;display:inline-flex}.badge-dh{background:#6b7280}.badge-dh.badge-xf{color:#6b7280;background:0 0;box-shadow:inset 0 0 0 1px #6b7280}.badge-rr{background:#6b21a8}.badge-anf{background:#1a1a1a}.badge-fdp,.badge-rest{background:#c2410c}@media (prefers-color-scheme:dark){.badge-dh{background:#767b85}.badge-dh.badge-xf{color:#9aa0aa;box-shadow:inset 0 0 0 1px #9aa0aa}.badge-rr{background:#8b3fce}.badge-anf{background:#000;box-shadow:inset 0 0 0 1px #4a4a52}.badge-fdp,.badge-rest{background:#ea580c}}.legend-modal{z-index:41;background:var(--card);width:28rem;max-width:calc(100vw - 2rem);max-height:calc(100vh - 4rem);color:var(--text);border:1px solid var(--border);border-radius:.6rem;padding:1rem 1.1rem;position:fixed;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 12px 32px #00000047}.legend-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:1.05rem;display:flex}.legend-section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:.9rem 0 .4rem;font-size:.75rem;font-weight:700}.legend-list{flex-direction:column;gap:.5rem;margin:0;display:flex}.legend-row{grid-template-columns:2.2rem 1fr;align-items:start;gap:.6rem;font-size:.85rem;display:grid}.legend-row dt{font-weight:600}.legend-row dd{color:var(--muted);margin:0;line-height:1.35}.legend-swatch{border:1px solid var(--border);border-radius:4px;width:1.6rem;height:1.15rem}.legend-swatch.tone-assignable{background:var(--card)}.legend-swatch.tone-go{background:var(--st-go-bg)}.legend-swatch.tone-bad{background:var(--st-bad-bg)}.legend-swatch.tone-warn{background:var(--st-warn-bg)}.legend-swatch.tone-hdo{background:var(--st-hdo-bg)}.legend-swatch.tone-gone{background:var(--st-gone-bg)}.legend-swatch.tone-late{background:var(--card);box-shadow:inset 4px 0 0 0 var(--st-late)}
