:root{--slate-950:#020617;--slate-900:#0f172a;--slate-800:#1e293b;--slate-700:#334155;--slate-600:#475569;--slate-500:#64748b;--slate-400:#94a3b8;--slate-300:#cbd5e1;--slate-200:#e2e8f0;--gray-50:#f8f9fa;--gray-100:#f1f3f4;--gray-200:#eceff1;--gray-300:#e3e7ea;--gray-500:#9aa0a6;--gray-700:#5f6368;--gray-800:#3c4043;--gray-900:#202124;--blue-700:#1d4ed8;--blue-600:#2563eb;--blue-500:#3b82f6;--blue-400:#60a5fa;--green-600:#059669;--green-700:#047857;--red-500:#ef4444;--red-600:#dc2626;--amber-500:#f59e0b;--bg-base:#fff;--bg-surface:var(--gray-100);--bg-elevated:#fff;--bg-hover:var(--gray-300);--bg-overlay:#ffffffe6;--border-subtle:var(--gray-200);--border:var(--gray-300);--border-focus:#1a73e8;--text-primary:var(--gray-900);--text-secondary:var(--gray-800);--text-muted:var(--gray-700);--text-dim:var(--gray-500);--accent:#1a73e8;--accent-hover:#1765cc;--accent-light:#1a73e8;--success:#188038;--success-hover:#137333;--danger:#d93025;--danger-hover:#b3261e;--warning:var(--amber-500);--shadow-sm:0 1px 2px #3c404326;--shadow-md:0 2px 8px #3c404333;--shadow-lg:0 8px 24px #3c404340}[data-theme=dark]{--bg-base:var(--slate-900);--bg-surface:var(--slate-800);--bg-elevated:var(--slate-700);--bg-hover:var(--slate-700);--bg-overlay:#0f172ad9;--border-subtle:#26334a;--border:var(--slate-700);--border-focus:var(--blue-500);--text-primary:var(--slate-200);--text-secondary:var(--slate-300);--text-muted:var(--slate-400);--text-dim:var(--slate-500);--accent:var(--blue-600);--accent-hover:var(--blue-700);--accent-light:var(--blue-500);--success:var(--green-600);--success-hover:var(--green-700);--danger:var(--red-500);--danger-hover:var(--red-600);--warning:var(--amber-500);--shadow-sm:0 1px 2px #00000059;--shadow-md:0 4px 12px #0006;--shadow-lg:0 12px 32px #00000080}:root{--cone-regular:#f97316;--cone-pointer:#84cc16;--cone-start:#22c55e;--cone-finish:#fff;--worker:#7c3aed;--note:#0ea5e9;--measure:#f472b6;--driving-line:#60a5fa;--staging:#6495ed;--hazard:#e53e3e;--worker-zone:#ff6b6b;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, "Cascadia Mono", "Segoe UI Mono", monospace;--text-xs:11px;--text-sm:12px;--text-md:13px;--text-base:14px;--text-lg:16px;--text-xl:20px;--text-2xl:24px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:3px;--radius-md:6px;--radius-lg:10px;--radius-full:999px;--z-map-ui:10;--z-selection:50;--z-menu:80;--z-dialog:100;--z-toast:120;--z-landing:200;--focus-ring:0 0 0 2px var(--bg-base), 0 0 0 4px var(--border-focus)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-ui);background:var(--bg-base);color:var(--text-primary)}:focus-visible{box-shadow:var(--focus-ring);outline:none}.multi-selected{filter:drop-shadow(0 0 4px #1a73e8e6);outline:2px solid var(--accent-light);outline-offset:2px}.selection-box{border:2px dashed var(--accent-light);z-index:var(--z-selection);pointer-events:none;background:#1a73e81a;position:fixed}.ghost-marker{opacity:.4;pointer-events:none;animation:1s ease-in-out infinite ghost-fade}@keyframes ghost-fade{0%,to{opacity:.4}50%{opacity:.2}}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right{z-index:1}.toast-stack.svelte-zemmny{bottom:var(--space-6);align-items:center;gap:var(--space-2);z-index:var(--z-toast);flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast.svelte-zemmny{align-items:center;gap:var(--space-3);max-width:420px;padding:var(--space-2) var(--space-3);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);border-left-width:3px;animation:.18s ease-out svelte-zemmny-toast-in;display:flex}.toast.error.svelte-zemmny{border-left-color:var(--danger)}.toast.success.svelte-zemmny{border-left-color:var(--success)}.toast.info.svelte-zemmny{border-left-color:var(--accent-light)}.message.svelte-zemmny{font-size:var(--text-md);color:var(--text-primary);line-height:1.4}.dismiss.svelte-zemmny{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px;display:inline-flex}.dismiss.svelte-zemmny:hover{color:var(--text-primary)}@keyframes svelte-zemmny-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
