:root{--page:#ffffff;--surface:#ffffff;--surface-raised:#ffffff;--surface-sunken:#f9fafb;--surface-muted:#f3f4f6;--surface-track:#e5e7eb;--surface-track-strong:#d1d5db;--surface-hover:#f9fafb;--surface-hover-strong:#f3f4f6;--text-strong:#111827;--text-body:#374151;--text-secondary:#4b5563;--text-muted:#6b7280;--text-faint:#9ca3af;--text-faintest:#d1d5db;--border-faint:#f3f4f6;--border-subtle:#e5e7eb;--border-default:#d1d5db;--border-hover:#9ca3af;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-strong:#1d4ed8;--accent-text:#2563eb;--accent-soft:#dbeafe;--accent-softer:#eff6ff;--accent-line:#bfdbfe;--success:#16a34a;--success-hover:#15803d;--success-strong:#15803d;--success-text:#16a34a;--success-soft:#dcfce7;--success-softer:#f0fdf4;--success-line:#bbf7d0;--danger:#dc2626;--danger-hover:#b91c1c;--danger-strong:#b91c1c;--danger-text:#dc2626;--danger-soft:#fee2e2;--danger-softer:#fef2f2;--danger-line:#fecaca;--warning:#d97706;--warning-hover:#b45309;--warning-strong:#b45309;--warning-text:#d97706;--warning-soft:#fef3c7;--warning-softer:#fffbeb;--warning-line:#fde68a;--note:#9333ea;--note-hover:#7e22ce;--note-strong:#7e22ce;--note-text:#9333ea;--note-soft:#f3e8ff;--note-softer:#faf5ff;--note-line:#e9d5ff;--radius-control:0.25rem;--radius-card:0.75rem;--shadow-card:0 10px 15px -3px rgb(0 0 0/0.1),0 4px 6px -4px rgb(0 0 0/0.1);--shadow-card-hover:0 20px 25px -5px rgb(0 0 0/0.1),0 8px 10px -6px rgb(0 0 0/0.1);--shadow-popover:0 20px 25px -5px rgb(0 0 0/0.12),0 8px 10px -6px rgb(0 0 0/0.1);--scrim:rgb(0 0 0/0.5);--inverse:#111827}.dark{--page:#111827;--surface:#1f2937;--surface-raised:#374151;--surface-sunken:#111827;--surface-muted:#374151;--surface-track:#374151;--surface-track-strong:#4b5563;--surface-hover:#374151;--surface-hover-strong:#4b5563;--text-strong:#ffffff;--text-body:#d1d5db;--text-secondary:#9ca3af;--text-muted:#9ca3af;--text-faint:#6b7280;--text-faintest:#4b5563;--border-faint:#374151;--border-subtle:#374151;--border-default:#4b5563;--border-hover:#6b7280;--accent:#3b82f6;--accent-hover:#2563eb;--accent-strong:#60a5fa;--accent-text:#60a5fa;--accent-soft:#1e3a8a4d;--accent-softer:#1e3a8a33;--accent-line:#1e40af;--success:#22c55e;--success-hover:#16a34a;--success-strong:#4ade80;--success-text:#4ade80;--success-soft:#14532d4d;--success-softer:#14532d33;--success-line:#166534;--danger:#ef4444;--danger-hover:#dc2626;--danger-strong:#f87171;--danger-text:#f87171;--danger-soft:#7f1d1d4d;--danger-softer:#7f1d1d33;--danger-line:#991b1b;--warning:#f59e0b;--warning-hover:#d97706;--warning-strong:#fbbf24;--warning-text:#fbbf24;--warning-soft:#78350f4d;--warning-softer:#78350f33;--warning-line:#92400e;--note:#a855f7;--note-hover:#9333ea;--note-strong:#c084fc;--note-text:#c084fc;--note-soft:#581c874d;--note-softer:#581c8733;--note-line:#6b21a8;--shadow-card:0 10px 15px -3px rgb(0 0 0/0.3),0 4px 6px -4px rgb(0 0 0/0.3);--shadow-card-hover:0 20px 25px -5px rgb(0 0 0/0.4),0 8px 10px -6px rgb(0 0 0/0.4);--shadow-popover:0 20px 25px -5px rgb(0 0 0/0.5),0 8px 10px -6px rgb(0 0 0/0.4);--scrim:rgb(0 0 0/0.65);--inverse:#374151}body{background:var(--page);color:var(--text-body);font-family:Arial,Helvetica,sans-serif;height:100vh;overflow:hidden;line-height:1.6}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.pb-safe{padding-bottom:env(safe-area-inset-bottom,0)}body.preview-open{--preview-open:1}@media print{body.preview-open *{display:none!important}}.smooth-zoom-map .leaflet-map-pane,.smooth-zoom-map .leaflet-marker-pane,.smooth-zoom-map .leaflet-overlay-pane,.smooth-zoom-map .leaflet-tile-pane{will-change:transform;backface-visibility:hidden}.smooth-zoom-map:not(.ga-preview) .leaflet-image-layer{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.smooth-zoom-map.ga-preview .leaflet-image-layer{image-rendering:auto}.smooth-zoom-map .leaflet-marker-icon{transition:opacity .15s ease-out}.smooth-zoom-map.leaflet-pan-anim .leaflet-map-pane{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-container.ga-page-scrolls,.leaflet-container.ga-page-scrolls.leaflet-touch-drag,.leaflet-container.ga-page-scrolls.leaflet-touch-drag.leaflet-touch-zoom,.leaflet-container.ga-page-scrolls.leaflet-touch-zoom{touch-action:pan-y}.ga-shape-draggable{cursor:move}.leaflet-container path.leaflet-interactive:focus:not(:focus-visible){outline:none}