@import 'maplibre-gl/dist/maplibre-gl.css'; :root { --bg: #0f172a; --panel: #ffffff; --muted: #475569; --line: #cbd5e1; } * { box-sizing: border-box; } body { margin: 0; font-family: 'Inter', 'Avenir Next', 'Segoe UI', sans-serif; color: #0f172a; background: radial-gradient(circle at top, #1d4ed8 0%, #1e293b 45%, #020617 100%); } .app-shell { min-height: 100vh; padding: 1rem; } .app-shell, section { background: color-mix(in srgb, var(--panel) 92%, transparent); } .workspace-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; } section { border: 1px solid var(--line); border-radius: 10px; padding: 0.9rem; } h1, h2 { margin-top: 0; } input, textarea, button, select { width: 100%; padding: 0.5rem; margin-top: 0.4rem; font: inherit; border: 1px solid #94a3b8; border-radius: 6px; } button { cursor: pointer; } .demo-actions { margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid var(--line); } ul { padding-left: 1.1rem; margin-top: 0.6rem; } .error { color: #7f1d1d; background: #fee2e2; padding: 0.6rem; border-radius: 8px; } .muted { color: var(--muted); } .eyebrow { margin: 0 0 0.2rem; color: var(--muted); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; } .panel-header { display: flex; gap: 0.75rem; align-items: flex-start; justify-content: space-between; } .panel-header button { width: auto; min-width: 9rem; } .form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0.75rem; } .checkbox-row { display: flex; gap: 0.5rem; align-items: center; } .checkbox-row input { width: auto; margin: 0; } .summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(90px, 1fr)); gap: 0.65rem; margin-top: 0.75rem; } .summary-grid > div { border: 1px solid var(--line); border-radius: 8px; padding: 0.6rem; } .metric { display: block; font-size: 1.4rem; font-weight: 800; } .compact-list { padding-left: 1rem; color: var(--muted); font-size: 0.9rem; } .map-container { width: 100%; height: 460px; border: 1px solid #94a3b8; border-radius: 8px; } .map-controls { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0.75rem; align-items: end; margin-bottom: 0.75rem; } .map-status { color: var(--muted); font-size: 0.95rem; } .feature-inspector { margin-top: 0.75rem; border-top: 1px solid var(--line); padding-top: 0.75rem; }