:root{--ink:#15313a;--muted:#64777c;--navy:#102d38;--green:#157c70;--mint:#83d6b9;--paper:#eef3f0;--white:#fff;--line:#d9e2de;--amber:#b27120;--red:#9e443a;--blue:#2785a2;--shadow:0 18px 55px rgba(21,49,58,.08)}
*{box-sizing:border-box}
html{background:var(--paper)}
body{margin:0;color:var(--ink);background:radial-gradient(circle at 82% -5%,#d0ebe0 0,transparent 30rem),var(--paper);font:14px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select{font:inherit;color:inherit}
button,select{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #67b9ad;outline-offset:2px}
.topbar{height:72px;padding:0 clamp(18px,4vw,56px);display:flex;align-items:center;gap:24px;color:#fff;background:var(--navy)}
.brand{display:flex;align-items:center;gap:9px;color:#fff;text-decoration:none;letter-spacing:.08em}
.brand span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;color:var(--navy);background:var(--mint);font-size:19px;font-weight:800}
.title{display:flex;flex-direction:column;padding-left:24px;border-left:1px solid #48616a}.title small{color:#9db1b5;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.topbar nav{display:flex;gap:18px;margin-left:auto}.topbar nav a{color:#c9d8d9;text-decoration:none;font-size:12px}.topbar nav a:hover{color:#fff}
main{max-width:1680px;margin:auto;padding:clamp(24px,4vw,58px)}
.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:34px;margin-bottom:32px}.hero>div:first-child{max-width:780px}.eyebrow{margin:0 0 8px;color:var(--green);font-size:10px;font-weight:800;letter-spacing:.18em}.hero h1{max-width:720px;margin:0 0 13px;font-size:clamp(34px,5vw,68px);line-height:1.02;letter-spacing:-.045em}.hero p:not(.eyebrow){max-width:700px;margin:0;color:var(--muted);font-size:16px}
.provider-status{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;max-width:460px}.status-chip{padding:7px 10px;border:1px solid #acd1c4;border-radius:999px;background:#edf9f3;color:#226052;font-size:10px;font-weight:700}.status-chip.pending{border-color:var(--line);background:#fff;color:var(--muted)}.status-chip.warn{border-color:#e4c28f;background:#fff6e6;color:#835315}.status-chip.error{border-color:#ddb1aa;background:#fff0ee;color:#8a332c}
.layout{display:grid;grid-template-columns:310px minmax(0,1fr);align-items:start;gap:20px}.panel{border:1px solid var(--line);border-radius:16px;background:rgba(255,255,255,.96);box-shadow:var(--shadow)}.planner{position:sticky;top:18px;padding:23px}.panel-title,.map-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.panel-title h2,.map-heading h2{margin:0;font-size:20px;line-height:1.2;letter-spacing:-.02em}.step{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#eaf4ef;color:var(--green);font-size:10px;font-weight:800}
label{display:block;margin:14px 0 5px;font-size:11px;font-weight:700}input,select{width:100%;min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}input:hover,select:hover{border-color:#a4bdb5}fieldset{margin:15px 0;padding:8px 11px 13px;border:1px solid var(--line);border-radius:10px}legend{padding:0 5px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}fieldset label{margin:3px 0 0;color:var(--muted);font-size:9px}.coordinate-row,.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.check{display:flex;align-items:center;gap:9px;min-height:62px;margin-top:14px;padding:9px;border:1px solid var(--line);border-radius:8px}.check input{width:auto}.check span{display:flex;flex-direction:column}.check small{color:var(--muted);font-weight:400}.primary{display:flex;justify-content:space-between;width:100%;margin-top:18px;padding:12px 14px;border:1px solid var(--green);border-radius:9px;background:var(--green);color:#fff;font-weight:750}.primary:hover{background:#0d685e}.primary:disabled{opacity:.55;cursor:wait}.coordinate-note{margin:12px 0 0;color:var(--muted);font-size:10px}
.planner-details{margin-top:16px;padding:11px;border:1px solid var(--line);border-radius:10px}.planner-details summary{cursor:pointer;font-size:11px;font-weight:800}.planner-details .check{min-height:auto;margin-top:9px}.planner-details .check small{line-height:1.3}
.map-column{min-width:0}.map-panel{overflow:hidden;padding:18px}.map-heading{align-items:center;margin:1px 2px 15px}.map-controls{display:flex;gap:5px}.map-controls select{width:auto;height:34px;padding:0 28px 0 9px;font-size:10px}.map-controls button{height:34px;min-width:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff}.map-controls button:hover{border-color:var(--green);background:#eff8f4}.map{position:relative;height:clamp(420px,56vw,680px);max-height:680px;overflow:hidden;border-radius:11px;background-color:#dfe8e3;background-image:linear-gradient(#cfdbd5 1px,transparent 1px),linear-gradient(90deg,#cfdbd5 1px,transparent 1px);background-size:32px 32px;cursor:grab;touch-action:none}.map.dragging{cursor:grabbing}.maplibre-map,.tile-layer,.route-overlay{position:absolute;inset:0;width:100%;height:100%}.maplibre-map{z-index:1;background:#dfe8e3}.maplibre-map .maplibregl-canvas{outline:none}.tile-layer img{position:absolute;width:256px;height:256px;max-width:none;user-select:none;-webkit-user-drag:none}.route-overlay{z-index:2;pointer-events:none}.route-casing{fill:none;stroke:#fff;stroke-width:9;stroke-linecap:round;stroke-linejoin:round;opacity:.92}.route-line{fill:none;stroke:#16796d;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.route-shadow{fill:none;stroke:#183c47;stroke-width:13;stroke-linecap:round;stroke-linejoin:round;opacity:.22}.marker-label{font:700 10px Inter,system-ui,sans-serif;fill:#16323a;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}.map-placeholder{position:absolute;z-index:1;inset:0;display:grid;place-content:center;text-align:center;color:#61746e;pointer-events:none}.map.has-vector .map-placeholder,.map.has-route .map-placeholder{display:none}.legend,.attribution,.tile-status{position:absolute;z-index:3;border-radius:6px;background:rgba(16,45,56,.88);color:#fff;font-size:9px;backdrop-filter:blur(4px)}.legend{left:10px;bottom:10px;display:flex;gap:12px;padding:7px 9px}.legend span{display:flex;align-items:center;gap:4px}.legend i{display:inline-block}.route-key{width:14px;height:3px;background:#67e0c5}.weather-key{width:7px;height:7px;border-radius:50%;background:#4b9fc1;border:1px solid #fff}.stop-key{width:7px;height:7px;transform:rotate(45deg);background:#edb45b;border:1px solid #fff}.attribution{right:10px;bottom:10px;max-width:48%;padding:5px 7px;text-align:right}.tile-status{top:10px;right:10px;padding:5px 7px}
.diagnostics{margin-top:18px;padding:18px 21px;box-shadow:none}.diagnostics .panel-title{align-items:center}.diagnostics button{padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:#fff}.diagnostic-grid{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.notice{margin:18px 0 0;padding:13px 16px;border:1px solid #dfb3aa;border-radius:10px;background:#fff2ef;color:#803a33}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0}.metric{padding:16px;border:1px solid var(--line);border-radius:12px;background:#fff}.metric strong{display:block;font-size:24px;line-height:1.15;letter-spacing:-.035em}.metric span{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.warnings{display:grid;gap:7px;margin:0 0 18px}.warning{padding:10px 13px;border-left:3px solid var(--amber);border-radius:5px;background:#fff8eb;color:#6f501f;font-size:11px}.details-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.detail-card{padding:21px;min-width:0}.weather-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:16px 0}.weather-overview div{padding:10px;border-radius:8px;background:#f1f6f3}.weather-overview strong{display:block;font-size:18px}.weather-overview span{color:var(--muted);font-size:9px}.weather-scope{color:var(--muted);font-size:10px}.sample-list{max-height:380px;overflow:auto;margin-top:14px}.sample{display:grid;grid-template-columns:62px 1fr auto;gap:9px;padding:9px 2px;border-top:1px solid #e8eeeb;font-size:11px}.sample time{color:var(--muted);font-variant-numeric:tabular-nums}.sample b{display:block}.sample small{color:var(--muted)}.sample .temperature{font-weight:800}.sample.unavailable .temperature{color:var(--red)}.maneuvers{max-height:520px;overflow:auto;margin:16px 0 0;padding:0;counter-reset:maneuver;list-style:none}.maneuvers li{position:relative;padding:10px 74px 10px 34px;border-top:1px solid #e8eeeb;counter-increment:maneuver;font-size:12px}.maneuvers li::before{content:counter(maneuver);position:absolute;left:2px;top:10px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#e8f3ee;color:var(--green);font-size:9px;font-weight:800}.maneuver-meta{position:absolute;right:2px;top:10px;color:var(--muted);font-size:9px;text-align:right}.scope{margin-top:18px;padding:18px 21px;box-shadow:none}.scope h3{margin:0 0 5px;font-size:13px}.scope p{margin:0;color:var(--muted);font-size:11px}
.trip-details{margin:0 0 18px;padding:21px}.detail-toggle{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.detail-toggle button{padding:7px 10px;border:0;background:#fff;font-size:10px}.detail-toggle button+button{border-left:1px solid var(--line)}.detail-toggle button.active{background:var(--green);color:#fff}.stop-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:10px;margin-top:16px}.stop-card{padding:14px;border:1px solid var(--line);border-radius:11px;background:#fbfdfc}.stop-card.needs-review{border-color:#e3be85;background:#fffaf0}.stop-heading,.stop-heading>div{display:flex;align-items:center;gap:8px}.stop-heading{justify-content:space-between}.stop-heading>div>div{font-size:12px;font-weight:800}.stop-number{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#dff1e9;color:var(--green);font-size:10px;font-weight:800}.stop-kind{padding:4px 6px;border-radius:999px;background:#edf2f0;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase}.stop-quick{margin:9px 0 0;color:var(--muted);font-size:10px}.stop-facts{display:grid;grid-template-columns:1fr 1.3fr;gap:3px 9px;margin:12px 0 0;padding-top:9px;border-top:1px solid var(--line);font-size:9px}.stop-facts dt{color:var(--muted)}.stop-facts dd{margin:0;text-align:right;font-weight:700}.stop-facilities,.stop-schedule,.simulated-note{margin:8px 0 0;font-size:9px}.simulated-note{color:var(--amber)}
footer{display:flex;justify-content:space-between;max-width:1680px;margin:auto;padding:20px clamp(24px,4vw,58px) 34px;color:#71847f;font-size:10px}
[hidden]{display:none!important}
@media(max-width:1050px){.layout{grid-template-columns:270px minmax(0,1fr)}.details-grid{grid-template-columns:1fr}.summary-cards{grid-template-columns:repeat(2,1fr)}.map{height:520px}}
@media(max-width:760px){.topbar{height:auto;min-height:64px;padding:12px 16px}.title{display:none}.topbar nav a:first-child{display:none}main{padding:25px 13px}.hero{display:block}.hero h1{font-size:40px}.provider-status{justify-content:flex-start;margin-top:20px}.layout{grid-template-columns:1fr}.planner{position:static}.map-panel{padding:12px}.map{height:430px}.map-heading{align-items:flex-start;gap:8px}.map-controls{flex-wrap:wrap;justify-content:flex-end}.map-controls select{width:100%}.map-controls button{font-size:11px}.summary-cards{grid-template-columns:1fr 1fr}.details-grid{grid-template-columns:1fr}.legend{max-width:58%;flex-wrap:wrap;gap:5px 9px}.attribution{max-width:40%}.trip-details .panel-title{display:block}.detail-toggle{width:max-content;margin-top:10px}footer{display:block}footer span{display:block}}
.address-field{position:relative}.address-suggestions{position:absolute;z-index:20;left:0;right:0;max-height:240px;overflow:auto;border:1px solid #b8ccc4;border-radius:9px;background:#fff;box-shadow:0 12px 30px rgba(16,45,56,.18)}.address-suggestions button{display:block;width:100%;padding:10px 12px;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;font-size:12px}.address-suggestions button:hover,.address-suggestions button:focus{background:#eaf5f0}.address-suggestions button:last-child{border-bottom:0}.address-suggestions .suggestion-note{padding:10px 12px;color:var(--muted);font-size:11px}.coordinate-fallback{margin-top:13px}.coordinate-fallback>summary{cursor:pointer;color:var(--green);font-size:11px;font-weight:750}.coordinate-fallback fieldset{margin-bottom:7px}
.presentation-mode .layout{grid-template-columns:1fr}.presentation-mode .provider-status{display:none}.presentation-mode .hero{margin-bottom:22px}.presentation-mode .hero h1{max-width:920px}.presentation-overview{margin-bottom:18px;padding:20px 22px;background:linear-gradient(115deg,#ffffff,#e8f4ef)}.live-badge{padding:5px 10px;border-radius:999px;background:#dfe9e5;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.presentation-overview .live-badge:not(:empty){background:#d9f3e8;color:#12604f}.presentation-roles,.presentation-devices{display:flex;flex-wrap:wrap;gap:8px;margin-top:13px}.presentation-role,.presentation-device{display:flex;align-items:center;gap:7px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff}.presentation-role span,.presentation-device span{color:var(--muted);font-size:10px}.presentation-role small{padding:2px 6px;border-radius:999px;background:#ece5fa;color:#5a398d;font-size:8px;font-weight:800}.presentation-role.driver{border-color:#72bea6;background:#effaf6}.presentation-device.online{border-color:#94cbb9}.presentation-devices{padding-top:12px;border-top:1px solid var(--line)}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.presentation-actions{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:16px 0}.presentation-actions label{flex:1;min-width:220px;margin:0}.presentation-actions button{min-height:42px;padding:9px 14px;border:1px solid #a5c5b8;border-radius:10px;cursor:pointer}.presentation-actions [aria-pressed=true]{background:#146854;color:white}.presentation-vehicles{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.presentation-vehicle{background:#fff;border:1px solid #b4ccc0;border-radius:12px;padding:10px 14px;text-align:left;cursor:pointer}.presentation-vehicle strong,.presentation-vehicle span{display:block}.presentation-vehicle span{font-size:12px;color:#48615b}.drive-vehicle-marker{width:36px;height:36px;cursor:pointer}.drive-vehicle-marker svg{width:36px;height:36px;filter:drop-shadow(0 2px 2px #0007)}.drive-vehicle-marker .vehicle-name{position:absolute;left:36px;top:8px;padding:3px 7px;background:#fff;border:1px solid #a7bbbf;border-radius:7px;white-space:nowrap;font-weight:700;font-size:12px;color:#123e37}.drive-vehicle-marker:focus{outline:3px solid #123e37;border-radius:50%}
