:root{color-scheme:light dark;--aqua: #14b8a6;--aqua-deep: #0f766e;--ink: #0f2a33;--ink-soft: #3d5a63;--surface: rgba(255, 255, 255, .78);--surface-strong: #ffffff;--line: rgba(15, 42, 51, .12);--bg0: #e7f7f5;--bg1: #d9eefc;--bg2: #f7fbfc;--shadow: 0 10px 40px rgba(15, 42, 51, .08);--live: #0d9488;--warn: #c2410c;--muted: #64748b;--done: #0369a1;--error: #b91c1c;--radius: 18px;--font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}@media(prefers-color-scheme:dark){:root{--ink: #e8f4f7;--ink-soft: #b7c9d0;--surface: rgba(12, 28, 34, .78);--surface-strong: #102229;--line: rgba(232, 244, 247, .12);--bg0: #071318;--bg1: #0c2430;--bg2: #102a35;--shadow: 0 12px 40px rgba(0, 0, 0, .35);--live: #2dd4bf;--warn: #fb923c;--muted: #94a3b8;--done: #7dd3fc;--error: #fca5a5}}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,rgba(45,212,191,.22),transparent 55%),radial-gradient(900px 500px at 90% 0%,rgba(59,130,246,.16),transparent 50%),linear-gradient(165deg,var(--bg0),var(--bg1) 45%,var(--bg2))}button{font:inherit;color:inherit}.app-shell{position:relative;height:100dvh;width:100%;overflow:hidden}.brand-row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.brand{font-size:1.35rem;font-weight:700;letter-spacing:-.03em;margin:0}.brand span{color:var(--aqua)}.map-overlay,.state-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.map-overlay{position:absolute;z-index:5}.map-overlay-top{top:max(.85rem,env(safe-area-inset-top));left:max(.85rem,env(safe-area-inset-left));max-width:min(88vw,24rem);padding:.85rem 1rem;display:flex;flex-direction:column;gap:.5rem}.weather-blips{display:flex;flex-wrap:wrap;gap:.4rem}.weather-blip{display:inline-flex;align-items:center;gap:.3rem;padding:.35rem .65rem;border-radius:999px;font-size:.82rem;font-weight:600;background:#ffffff24;border:1px solid var(--line);white-space:nowrap}@media(prefers-color-scheme:light){.weather-blip{background:#ffffff8c}}.map-overlay-bottom{position:absolute;left:max(.85rem,env(safe-area-inset-left));right:max(.85rem,env(safe-area-inset-right));bottom:max(.85rem,env(safe-area-inset-bottom));z-index:5;display:flex;align-items:flex-end;gap:.6rem}.hero h1{margin:0;font-size:clamp(1.35rem,3.5vw,1.75rem);line-height:1.25;letter-spacing:-.02em}.hero h1 strong{font-weight:750}.hero .secondary{margin:.4rem 0 0;color:var(--ink-soft);font-size:.98rem}.status-pill{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .7rem;border-radius:999px;font-size:.9rem;font-weight:600;width:fit-content;border:1px solid var(--line);background:var(--surface-strong)}.status-pill .dot{width:.55rem;height:.55rem;border-radius:50%;background:currentColor}.status-pill[data-tone=live]{color:var(--live)}.status-pill[data-tone=warn]{color:var(--warn)}.status-pill[data-tone=muted]{color:var(--muted)}.status-pill[data-tone=done]{color:var(--done)}.status-pill[data-tone=error]{color:var(--error)}.status-detail{margin:.35rem 0 0;color:var(--ink-soft);font-size:.92rem}.metrics-dock{flex:1 1 auto;min-width:0;padding:.7rem .85rem .75rem;display:flex;flex-direction:column;gap:.5rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.metrics-row{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.metrics-row::-webkit-scrollbar{display:none}@media(min-width:720px){.metrics-row{overflow-x:visible;flex-wrap:wrap}}.metric-chip{flex:0 0 auto;min-width:4.4rem;padding:.4rem .6rem;border-radius:12px;background:var(--surface-strong);border:1px solid var(--line);white-space:nowrap}.metric-chip .label{display:block;font-size:.68rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.15rem}.metric-chip .value{font-size:.95rem;font-weight:700;letter-spacing:-.01em}.metrics-meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.metrics-meta .status-detail{margin:0;font-size:.8rem}.legend{display:flex;align-items:center;gap:.4rem;font-size:.76rem;color:var(--ink-soft);flex-shrink:0}.legend-bar{width:3.5rem;height:.4rem;border-radius:999px;background:linear-gradient(90deg,#2dd4bf,#3b82f6,#6366f1 66%,#ec4899)}.map-panel{position:absolute;inset:0;overflow:hidden}.map-host,.map-fallback{position:absolute;inset:0}.map-host{width:100%;height:100%}.map-fallback{display:grid;place-items:center;padding:1.25rem;text-align:center;background:linear-gradient(180deg,rgba(20,184,166,.08),transparent),var(--surface-strong)}.map-fallback h2{margin:0 0 .4rem;font-size:1.15rem}.map-fallback p{margin:.25rem 0;color:var(--ink-soft);max-width:28rem}.map-fallback .coords{font-family:var(--mono);font-size:.85rem;margin-top:.75rem}.route-canvas{width:min(100%,420px);height:auto;border-radius:12px;border:1px solid var(--line);background:#0f2a330a}@media(prefers-color-scheme:dark){.route-canvas{background:#e8f4f70a}}.recenter-btn{flex:0 0 auto;min-height:44px;min-width:44px;padding:.65rem .95rem;border-radius:999px;border:1px solid var(--line);background:var(--surface-strong);box-shadow:var(--shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);cursor:pointer;font-weight:600}.recenter-btn:hover{border-color:var(--aqua)}.recenter-btn:focus-visible{outline:2px solid var(--aqua);outline-offset:2px}.center-state{min-height:100vh;display:grid;place-items:center;padding:1.5rem;text-align:center}.center-state .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.75rem 1.5rem;max-width:28rem}.center-state h1{margin:0 0 .5rem;font-size:1.5rem}.center-state p{margin:0;color:var(--ink-soft);line-height:1.45}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
