:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f4f5f2;--surface:#fff;--text:#1b1f1d;--muted:#56605b;--border:#c9cfca;--link:#0b5c4a;--focus:#b35c00;--site:#14493c;--site-text:#fff;--admin:#7a1f2b;--admin-text:#fff;--admin-strip:#f6dfe2;--admin-strip-text:#4c0f18;--primary:#14493c;--primary-text:#fff;--error-bg:#fbe9e7;--error-text:#7a1410;--error-border:#c0392b;--info-bg:#e6f0fa;--info-text:#123a63;--info-border:#2f6fb0;--ok:#1e8a4c;--off:#8a8f8c;--dry:#eef1ec;--wet:#d5e6f7;--storm:#e3d8f3;--snow:#e9f3f6;--fog:#e4e4e0;--gap:1rem;--radius:.5rem}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#121514;--surface:#1c211f;--text:#e8ece9;--muted:#a5b0aa;--border:#3a4440;--link:#7fd6bd;--focus:#ffb454;--site:#0e332a;--admin:#5c1620;--admin-strip:#3a1217;--admin-strip-text:#f6dfe2;--primary:#2f8f76;--primary-text:#06110e;--error-bg:#3a1614;--error-text:#ffd0cb;--error-border:#e06a5e;--info-bg:#14283d;--info-text:#cfe3f8;--info-border:#5b9bd8;--dry:#262c29;--wet:#1d3247;--storm:#33284a;--snow:#25373c;--fog:#32332f}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:1rem;line-height:1.5}a{color:var(--link)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}h1{margin:0 0 .5rem;font-size:1.9rem;line-height:1.2}h2{margin:0 0 .5rem;font-size:1.2rem}h3{margin:0 0 .25rem;font-size:1.05rem}p{margin:0 0 .5rem}.skip-link{background:var(--surface);color:var(--text);border-radius:var(--radius);z-index:10;padding:.5rem .75rem;position:absolute;top:-4rem;left:.5rem}.skip-link:focus{top:.5rem}.shell{flex-direction:column;min-height:100vh;display:flex}.header-site{background:var(--site);color:var(--site-text)}.header-admin{background:var(--admin);color:var(--admin-text)}.header-inner{flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;max-width:68rem;min-height:3.6rem;margin:0 auto;padding:.6rem 1rem;display:flex}.header a{color:inherit}.header :focus-visible{outline-color:#fff}.brand{letter-spacing:.01em;font-size:1.25rem;font-weight:700;text-decoration:none}.header-admin .brand{text-transform:uppercase;letter-spacing:.06em}.nav{gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.nav a{border-radius:var(--radius);padding:.35rem .6rem;text-decoration:none;display:block}.nav a:hover{text-decoration:underline}.nav a[aria-current=page]{background:#ffffff2e;font-weight:600}.account{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem .75rem;min-height:2.4rem;margin-left:auto;font-size:.95rem;display:flex}.account-problem{text-align:right;flex-basis:100%}.admin-strip{background:var(--admin-strip);color:var(--admin-strip-text);font-size:.9rem}.admin-strip p{max-width:68rem;margin:0 auto;padding:.35rem 1rem}.main{flex:1;width:100%;max-width:68rem;margin:0 auto;padding:1.5rem 1rem 3rem}.lead{max-width:48rem;color:var(--muted);margin-bottom:1.5rem;font-size:1.05rem}.muted{color:var(--muted)}.cards{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(min(100%,15rem),1fr));margin:0 0 1.5rem;padding:0;list-style:none;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;min-height:11rem;padding:1rem}.days{gap:var(--gap);margin:0;padding:0;list-style:none;display:grid}.day{min-height:0}.main>.card{margin-bottom:1.5rem}.page-placeholder{min-height:60vh}.big{font-size:1.5rem;font-weight:600;line-height:1.25}.clock-time{font-variant-numeric:tabular-nums;margin-bottom:.25rem;font-size:2.6rem;font-weight:700;line-height:1.1}.clock-real{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.dot{border-radius:50%;width:.7rem;height:.7rem;margin-right:.5rem;display:inline-block}.dot-on{background:var(--ok)}.dot-off{background:var(--off)}.badge{border:1px solid var(--border);vertical-align:middle;border-radius:1rem;padding:.05rem .5rem;font-size:.8rem;font-weight:600;display:inline-block}h3 .badge{margin-left:.5rem}.badge-edited{border-color:var(--admin);background:var(--admin);color:var(--admin-text)}.status{color:var(--muted)}.notice{border-left:4px solid;border-radius:.25rem;margin:.75rem 0;padding:.6rem .8rem}.notice>:last-child{margin-bottom:0}.notice ul{margin:.25rem 0 .5rem;padding-left:1.25rem}.notice-error{background:var(--error-bg);color:var(--error-text);border-color:var(--error-border)}.notice-info{background:var(--info-bg);color:var(--info-text);border-color:var(--info-border)}.button{font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-height:2.4rem;color:var(--text);cursor:pointer;padding:.5rem .9rem;font-weight:600;line-height:1.2;text-decoration:none;display:inline-block}.button:hover:not(:disabled){border-color:var(--text)}.button:disabled{opacity:.55;cursor:not-allowed}.button-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.button-small{min-height:2rem;padding:.3rem .7rem;font-size:.9rem}.button-on-header{color:inherit;background:0 0;border-color:#ffffffb3}.button-on-header:hover:not(:disabled){background:#ffffff1f;border-color:#fff}.button-admin{background:var(--admin);border-color:var(--admin);color:var(--admin-text);text-transform:uppercase;letter-spacing:.05em}.admin-entry{border-top:2px solid var(--admin);margin-top:1rem;padding-top:.75rem}.hours-scroll{border-radius:.25rem;margin-top:.5rem;overflow-x:auto}.hours{grid-template-columns:repeat(24,minmax(2.5rem,1fr));gap:2px;min-width:62rem;margin:0;padding:0 0 .25rem;list-style:none;display:grid}.hour{background:var(--dry);text-align:center;border-radius:.2rem;flex-direction:column;align-items:center;gap:.1rem;min-width:0;padding:.3rem .1rem;font-size:.75rem;line-height:1.2;display:flex}.hour-time{color:var(--muted);font-variant-numeric:tabular-nums}.hour-kind{align-items:center;min-height:1.8rem;font-size:.68rem;display:flex}.hour-temp{font-size:.9rem;font-weight:600}.hour-Fog{background:var(--fog)}.hour-Drizzle,.hour-Rain,.hour-HeavyRain{background:var(--wet)}.hour-Thunderstorm{background:var(--storm)}.hour-Sleet,.hour-LightSnow,.hour-HeavySnow{background:var(--snow)}fieldset{border:1px solid var(--border);border-radius:var(--radius);min-width:0;margin:.75rem 0;padding:.6rem .8rem .8rem}legend{padding:0 .3rem;font-weight:600}.spell{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));align-items:end;gap:.5rem .75rem;margin:0 0 .6rem;display:grid}.spell legend{font-size:.9rem}.pair{gap:0 var(--gap);grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr));display:grid}.pair fieldset{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));align-items:end;gap:.5rem .75rem;display:grid}.field{flex-direction:column;gap:.2rem;min-width:0;display:flex}.field label{font-size:.9rem}.field-check{flex-direction:row;align-items:center;gap:.5rem;min-height:2.4rem}input[type=number],input[type=text],textarea,select{font:inherit;border:1px solid var(--border);background:var(--bg);width:100%;min-height:2.4rem;color:var(--text);border-radius:.3rem;padding:.35rem .5rem}input[type=checkbox]{width:1.2rem;height:1.2rem;accent-color:var(--primary);flex:none}input[aria-invalid=true]{border-color:var(--error-border);border-width:2px}.override-form{gap:.6rem;max-width:30rem;margin-top:.75rem;display:grid}.actions{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.5rem;display:flex}.holding{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:100vh;padding:1.5rem 1rem;display:flex}.moment{vertical-align:top;flex-direction:column;display:inline-flex}p.moment{display:flex}.moment small{color:var(--muted);font-size:.8rem}.alerts,.gantries{gap:.75rem;margin:.5rem 0 1rem;padding:0;list-style:none;display:grid}.alert-item{border:1px solid var(--border);border-left:6px solid var(--error-border);border-radius:var(--radius);background:var(--surface);padding:.75rem 1rem}.alert-cleared{border-left-color:var(--off)}.gantry{min-height:0}.gantry h4{overflow-wrap:anywhere;margin:0;font-size:1rem}.gantry-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem;margin-bottom:.5rem;display:flex}.badge-auto{border-color:var(--info-border);background:var(--info-bg);color:var(--info-text)}.lane-controls{grid-template-columns:repeat(auto-fit,minmax(min(100%,9rem),1fr));align-items:end;gap:.5rem .75rem;display:grid}.field-all{border-left:2px solid var(--border);padding-left:.75rem}.table-scroll{margin:.5rem 0;overflow-x:auto}.table{border-collapse:collapse;background:var(--surface);font-variant-numeric:tabular-nums;width:100%}.table th,.table td{border:1px solid var(--border);text-align:left;vertical-align:top;white-space:nowrap;padding:.4rem .6rem}.signal-row{background:#4a4f4d;border-radius:.35rem;flex-wrap:wrap;gap:.3rem;padding:.3rem;display:inline-flex}.signal-tile{background:#0b0b0b;border-radius:.2rem;width:3.5rem;height:3.5rem;padding:.45rem;display:block;position:relative}.signal-tile svg{width:100%;height:100%;display:block}.mark-speed text{font-family:inherit;font-size:15px;font-weight:700}.lamp{border-radius:50%;width:.42rem;height:.42rem;position:absolute}.lamp-tl{top:.12rem;left:.12rem}.lamp-tr{top:.12rem;right:.12rem}.lamp-bl{bottom:.12rem;left:.12rem}.lamp-br{bottom:.12rem;right:.12rem}.lanterns-red .lamp{background:#ff2a1f;box-shadow:0 0 .3rem #ff2a1f}.lanterns-amber .lamp{background:#ffb000;box-shadow:0 0 .3rem #ffb000}.lanterns-red .lamp-tl,.lanterns-red .lamp-bl,.lanterns-amber .lamp-tl,.lanterns-amber .lamp-tr{opacity:var(--lantern-first,1)}.lanterns-red .lamp-tr,.lanterns-red .lamp-br,.lanterns-amber .lamp-bl,.lanterns-amber .lamp-br{opacity:var(--lantern-second,1)}@keyframes lanterns{0%,49.99%{--lantern-first:1;--lantern-second:.1}50%,to{--lantern-first:.1;--lantern-second:1}}@media (prefers-reduced-motion:no-preference){.motorway{animation:1s linear infinite lanterns}.skip-link{transition:top .1s}}.map-layout{gap:var(--gap);align-items:start;display:grid}@media (width>=62rem){.map-layout{grid-template-columns:minmax(0,3fr) minmax(18rem,2fr)}.map-picked-panel{position:sticky;top:1rem}}.motorway-map svg{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;height:auto;display:block}.map-key{margin:.5rem 0 0}.map-road{fill:none;stroke:#4a5257;stroke-linejoin:round}.map-slip-road{fill:none;stroke:var(--link);stroke-width:5px;stroke-linecap:round}.map-slip .map-label{fill:var(--link);font-size:12px;font-weight:700}.map-slip .map-lane rect{stroke:var(--link);stroke-width:2px}.map-lane-line{fill:none;stroke:#fff;stroke-width:.12px;stroke-dasharray:.9 1.2}.map-shoulder-line{fill:none;stroke:#fff;stroke-width:.16px}.map-gantry-bar{stroke:#c9cfca;stroke-width:.35px}.motorway-map svg{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.map-controls{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.map-detail .map-slip-road{stroke-width:4.2px;stroke:#4a5257}.map-detail .map-lane rect{stroke-width:.12px}.map-detail .map-picked .map-lane rect{stroke-width:.3px}.map-detail .map-lane text{font-size:1.15px}.map-detail .map-label,.map-detail .map-alert text{font-size:1.5px}.map-detail .map-alert-pin{stroke-width:.15px}.map-detail .map-alert.map-picked .map-alert-ring{stroke-width:.25px}.map-message rect{fill:#16191b;stroke:var(--border);stroke-width:.12px}.map-message text{fill:#ffc533;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:1.15px;font-weight:700}.map-picked .map-message rect{stroke:var(--focus);stroke-width:.3px}.map-carriageway{fill:var(--text);font-size:15px;font-weight:700}.map-junction text{fill:var(--text);font-size:13px;font-weight:700}.map-junction line{stroke:var(--muted);stroke-width:1px;stroke-dasharray:2 4}.map-gantry,.map-alert{cursor:pointer}.map-gantry:focus,.map-alert:focus{outline:none}.map-gantry:focus-visible .map-lane rect,.map-gantry:focus-visible .map-message rect,.map-alert:focus-visible .map-alert-pin{stroke:var(--focus)}.map-gantry:focus-visible .map-label{text-decoration:underline}.map-leader{stroke:var(--border);stroke-width:1px}.map-label{fill:var(--text);font-size:10px}.map-picked .map-label{font-weight:700;text-decoration:underline}.map-lane rect{fill:#16191b;stroke:var(--border);stroke-width:1px}.map-picked .map-lane rect{stroke:var(--focus);stroke-width:2px}.map-lane text{fill:#fff;pointer-events:none;font-size:8.5px;font-weight:700}.map-lane-off rect{fill:var(--surface);stroke:var(--muted)}.map-north line{stroke:var(--muted);stroke-width:1.5px}.map-north circle{fill:var(--muted)}.map-north text{fill:var(--muted);font-size:10px;font-weight:700}.map-lane-speed text{fill:#ffc533}.map-lane-closed rect{fill:#c81e14}.map-alert-pin{fill:#c81e14;stroke:#fff;stroke-width:1.5px}.map-alert-ring{fill:#c81e14;fill-opacity:.25}.map-alert.map-picked .map-alert-ring{fill-opacity:.5;stroke:var(--focus);stroke-width:2px}.map-alert text{fill:#fff;pointer-events:none;font-size:10px;font-weight:700}@media (prefers-reduced-motion:no-preference){.map-alert-ring{animation:1.2s ease-in-out infinite alternate map-alert}}@keyframes map-alert{0%{fill-opacity:.1}to{fill-opacity:.45}}.vms-panel{color:#ffc533;letter-spacing:.04em;background:#16191b;border-radius:.25rem;flex-direction:column;justify-content:center;align-items:center;min-width:8.5rem;min-height:3rem;padding:.35rem .6rem;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.8rem;font-weight:700;line-height:1.25;display:inline-flex}.map-lane-message text{fill:#ffc533}.world-admin section{margin-bottom:1.5rem}.world-admin h3{margin-top:1rem}.table-narrow{width:auto;min-width:min(100%,18rem)}.facts{gap:.4rem;margin:.75rem 0;display:grid}.facts>div{grid-template-columns:minmax(8rem,12rem) 1fr;gap:.25rem .75rem;display:grid}.facts dt{color:var(--muted)}.facts dd{overflow-wrap:anywhere;margin:0}@media (width<=30rem){.facts>div{grid-template-columns:1fr}}.stack-form{gap:.6rem;max-width:40rem;margin-top:.5rem;display:grid}textarea{resize:vertical}.confirm{margin-top:0}.button-danger{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.badge-inline{margin-left:.5rem}.news-list{gap:.75rem;margin:.75rem 0 1rem;padding:0;list-style:none;display:grid}.news-item{min-height:0}.news-item h3{overflow-wrap:anywhere;margin-top:0}.news-body{white-space:pre-wrap;overflow-wrap:anywhere}.map-sign rect{stroke-dasharray:3 2}.map-detail .map-sign rect{stroke-dasharray:.4 .3}
