@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,700&display=swap");:root{--bg:#fbf9f5;--bg-deep:#f1ece4;--ink:#1d1f1a;--muted:#5f5c52;--accent:#0f7b6c;--accent-soft:#cfe9e2;--sun:#f1a24b;--sun-soft:#ffe1b2;--rose:#d07c6f;--line:#ded8cd;--panel:#fff;--panel-strong:#12110f;--shadow:0 18px 46px -30px rgba(30,24,18,.35);--map-low:#f2d3a8;--map-mid:#d0816d;--map-high:#0b6a5f;--map-line:rgba(0,0,0,.16);--map-selected:#12110f}[data-theme=dark]{--bg:#0e1110;--bg-deep:#161a17;--ink:#f2efe7;--muted:#b8b4a8;--accent:#2db29e;--accent-soft:#20443d;--sun:#f2b460;--sun-soft:#3b2a12;--rose:#c67a6d;--line:#2b2f2a;--panel:#171b16;--panel-strong:#0b0d0c;--shadow:0 18px 46px -30px rgba(0,0,0,.7);--map-low:#3b2a12;--map-mid:#8f5f52;--map-high:#2db29e;--map-line:hsla(0,0%,100%,.2);--map-selected:#f2efe7}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Space Grotesk,sans-serif;min-height:100vh}h1,h2,h3{font-family:Fraunces,Space Grotesk,serif;margin:0 0 .6rem}p{margin:0;line-height:1.6;color:var(--muted)}button{font-family:inherit}.ambient{position:fixed;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.02),rgba(0,0,0,.02)),repeating-linear-gradient(90deg,rgba(0,0,0,.02),rgba(0,0,0,.02) 1px,transparent 0,transparent 120px),repeating-linear-gradient(0deg,rgba(0,0,0,.02),rgba(0,0,0,.02) 1px,transparent 0,transparent 120px);pointer-events:none;z-index:0}[data-theme=dark] .ambient{background:linear-gradient(0deg,hsla(0,0%,100%,.03),hsla(0,0%,100%,.03)),repeating-linear-gradient(90deg,hsla(0,0%,100%,.04),hsla(0,0%,100%,.04) 1px,transparent 0,transparent 120px),repeating-linear-gradient(0deg,hsla(0,0%,100%,.04),hsla(0,0%,100%,.04) 1px,transparent 0,transparent 120px)}.page{position:relative;z-index:1;max-width:1280px;margin:0 auto;padding:28px 28px 60px;display:flex;flex-direction:column;gap:28px}.topbar{gap:20px;flex-wrap:wrap;justify-content:space-between}.brand,.topbar{display:flex;align-items:center}.brand{gap:14px}.brand-mark{background:var(--ink);color:#fff8f0;font-weight:700;padding:10px 12px;border-radius:14px;letter-spacing:1px}[data-theme=dark] .brand-mark{background:#f2efe7;color:#0e1110}.brand-text{display:flex;flex-direction:column;gap:4px}.brand-title{font-weight:600;letter-spacing:.4px}.brand-sub{font-size:.88rem;color:var(--muted)}.nav{display:flex;gap:10px;flex-wrap:wrap}.nav-chip{border:1px solid var(--line);background:transparent;border-radius:999px;padding:8px 14px;font-size:.85rem;color:var(--muted);cursor:pointer}.nav-chip.is-active{background:var(--ink);color:#fffaf0;border-color:var(--ink)}[data-theme=dark] .nav-chip.is-active{background:#f2efe7;color:#0e1110;border-color:#f2efe7}.top-actions{display:flex;gap:10px;align-items:center}.theme-toggle{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:6px 10px;display:inline-flex;align-items:center;gap:8px;cursor:pointer}.theme-label{font-size:.78rem;color:var(--muted)}.theme-indicator{width:34px;height:18px;border-radius:999px;background:var(--bg-deep);position:relative;border:1px solid var(--line)}.theme-dot{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--ink);transition:transform .25s ease}[data-theme=dark] .theme-dot{transform:translateX(16px)}.cta,.ghost{border-radius:10px;padding:10px 16px;border:1px solid var(--line);background:var(--panel);cursor:pointer}.cta{background:var(--accent);color:#f9fffd;border-color:transparent;box-shadow:0 12px 28px -16px rgba(15,123,108,.6)}.hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);grid-gap:24px;gap:24px;align-items:stretch}.hero-copy h1{font-size:clamp(2.1rem,3vw,3rem)}.kicker{text-transform:uppercase;letter-spacing:2px;font-size:.72rem;color:var(--accent);margin-bottom:10px}.sub{font-size:1.05rem;max-width:520px}.hero-metrics{margin-top:24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:16px;gap:16px}.metric{background:var(--panel);border-radius:16px;padding:16px;box-shadow:var(--shadow)}.metric-label{font-size:.82rem;color:var(--muted)}.metric-value{font-size:2rem;font-weight:700}.metric-caption{font-size:.8rem;color:var(--muted)}.hero-card{background:var(--panel-strong);color:#f7f1e7;border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow)}.card-header{display:flex;justify-content:space-between;align-items:center;font-size:.9rem}.pulse{background:rgba(244,163,64,.25);color:#ffe8c5;padding:4px 10px;border-radius:999px;font-size:.72rem;letter-spacing:1px}.card-body{display:grid;grid-gap:10px;gap:10px}.stat-row{display:flex;justify-content:space-between;font-size:.92rem}.progress{height:8px;background:hsla(0,0%,100%,.12);border-radius:999px;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,var(--sun),var(--accent))}.card-footer{font-size:.75rem;color:hsla(0,0%,100%,.6)}.workspace{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.75fr);grid-gap:24px;gap:24px}.map-shell{background:var(--panel);border-radius:24px;padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:16px}.map-header{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.map-header p{font-size:.88rem}.map-controls{display:flex;gap:8px;flex-wrap:wrap}.map-toolbar{display:flex;justify-content:flex-end}.select-field{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;color:var(--muted)}.select-field select{border-radius:10px;border:1px solid var(--line);background:var(--panel);padding:6px 10px;font-family:inherit;color:var(--ink)}.status-legend{align-items:center;font-size:.72rem}.cell-selector,.status-legend{display:flex;gap:8px;flex-wrap:wrap}.cell-pill{border-radius:999px;border:1px solid var(--line);background:var(--panel);padding:4px 10px;font-size:.75rem;color:var(--muted);cursor:pointer}.cell-pill.is-active{background:var(--ink);color:#fffaf0;border-color:var(--ink)}[data-theme=dark] .cell-pill.is-active{background:#f2efe7;color:#0e1110;border-color:#f2efe7}.status-chip{padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--panel);letter-spacing:.6px}.status-chip.ok{border-color:rgba(15,123,108,.5);color:#0f7b6c}.status-chip.empty{border-color:rgba(244,163,64,.6);color:#9b5d15}.status-chip.sus{border-color:hsla(8,51%,63%,.6);color:#8f3d32}.status-chip.fail{border-color:hsla(8,51%,63%,.9);color:#6c2b23;background:hsla(8,51%,63%,.12)}.status-chip.na{border-color:rgba(90,100,96,.4);color:#5a6460;background:rgba(90,100,96,.08)}.filter{background:var(--panel);border-radius:999px;padding:6px 12px;border:1px solid var(--line);font-size:.78rem;cursor:pointer}.filter.is-active{background:var(--ink);color:#fffaf0;border-color:var(--ink)}[data-theme=dark] .filter.is-active{background:#f2efe7;color:#0e1110;border-color:#f2efe7}.filter:disabled{opacity:.45;cursor:not-allowed}.map-canvas{position:relative;height:440px;border-radius:18px;background:linear-gradient(120deg,rgba(15,123,108,.12),rgba(244,163,64,.14)),repeating-linear-gradient(0deg,rgba(0,0,0,.06),rgba(0,0,0,.06) 1px,transparent 0,transparent 24px),repeating-linear-gradient(90deg,rgba(0,0,0,.06),rgba(0,0,0,.06) 1px,transparent 0,transparent 24px);overflow:hidden}.maplibre{position:absolute;inset:0;z-index:0}.maplibregl-control-container{font-family:Space Grotesk,sans-serif}.maplibregl-ctrl-bottom-right{margin:0 8px 8px 0}[data-theme=dark] .map-canvas{background:linear-gradient(120deg,rgba(45,178,158,.2),rgba(242,180,96,.2)),repeating-linear-gradient(0deg,hsla(0,0%,100%,.08),hsla(0,0%,100%,.08) 1px,transparent 0,transparent 24px),repeating-linear-gradient(90deg,hsla(0,0%,100%,.08),hsla(0,0%,100%,.08) 1px,transparent 0,transparent 24px)}.map-overlay{position:absolute;inset:0;padding:16px;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none;z-index:1}.map-empty{margin-left:auto;margin-right:0;background:rgba(17,17,14,.85);color:#fff6e7;padding:8px 12px;border-radius:999px;font-size:.78rem}[data-theme=dark] .map-empty{background:rgba(10,12,11,.9);color:#f2efe7}.legend{display:flex;align-items:center;gap:8px;background:hsla(0,0%,100%,.9);padding:6px 12px;border-radius:999px;font-size:.75rem}[data-theme=dark] .legend{background:rgba(23,27,22,.82)}.legend-bar{width:120px;height:8px;border-radius:999px;background:linear-gradient(90deg,var(--map-low),var(--map-mid),var(--map-high))}.cell-card{background:rgba(17,17,14,.92);color:#fff6e7;padding:14px;border-radius:14px;max-width:220px;display:grid;grid-gap:6px;gap:6px}[data-theme=dark] .cell-card{background:rgba(9,11,10,.9);color:#f2efe7}.cell-title{font-size:.85rem;text-transform:uppercase;letter-spacing:1px}.cell-score{font-size:1.4rem;font-weight:700}.cell-tags{display:flex;gap:6px;flex-wrap:wrap}.tag{font-size:.7rem;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:1px}.tag.ok{background:rgba(15,123,108,.3);color:#c8f0e7}.tag.empty{background:rgba(244,163,64,.3);color:#ffe1b2}.tag.sus{background:hsla(8,51%,63%,.25);color:#ffd6d0}.tag.warn{background:hsla(8,51%,63%,.35);color:#ffd6d0}.cell-note{font-size:.75rem;color:hsla(0,0%,100%,.72)}.map-footer{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--muted);gap:12px;flex-wrap:wrap}.time-badge{padding:6px 10px;border-radius:999px;background:var(--accent-soft);color:var(--ink)}.side-panel{display:flex;flex-direction:column;gap:16px}.panel-card{background:var(--panel);border-radius:18px;padding:16px;box-shadow:var(--shadow);display:grid;grid-gap:10px;gap:10px}.panel-legend{display:grid;grid-gap:8px;gap:8px}.panel-legend-title{font-size:.78rem;color:var(--muted)}.panel-legend-note{font-size:.74rem;color:var(--muted);line-height:1.4}.panel-legend-list{display:flex;flex-wrap:wrap;gap:6px}.legend-pill{font-size:.7rem;padding:3px 8px;border-radius:999px;border:1px solid var(--line);background:var(--panel);letter-spacing:.5px}.legend-pill.ok{border-color:rgba(15,123,108,.5);color:#0f7b6c}.legend-pill.empty{border-color:rgba(244,163,64,.6);color:#9b5d15}.legend-pill.sus{border-color:hsla(8,51%,63%,.6);color:#8f3d32}.legend-pill.fail{border-color:hsla(8,51%,63%,.9);color:#6c2b23;background:hsla(8,51%,63%,.12)}.legend-pill.na{border-color:rgba(90,100,96,.4);color:#5a6460;background:rgba(90,100,96,.08)}.panel-row{display:flex;justify-content:space-between;font-size:.9rem}.panel-note{line-height:1.45}.panel-note,.panel-subtitle{font-size:.78rem;color:var(--muted)}.panel-subtitle{text-transform:uppercase;letter-spacing:1px;margin-top:6px}.detail-summary{display:flex;flex-wrap:wrap;gap:6px 10px;font-size:.75rem;color:var(--muted)}.detail-list{list-style:none;padding:0;margin:8px 0 0;display:grid;grid-gap:6px;gap:6px}.detail-list li{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.78rem}.detail-name{color:var(--ink);font-weight:500}.detail-status{padding:2px 8px;border-radius:999px;border:1px solid var(--line);font-size:.7rem;letter-spacing:.5px}.detail-status.status-OK{border-color:rgba(15,123,108,.5);color:#0f7b6c}.detail-status.status-EMPTY_OK{border-color:rgba(244,163,64,.6);color:#9b5d15}.detail-status.status-EMPTY_SUS{border-color:hsla(8,51%,63%,.6);color:#8f3d32}.detail-status.status-FAIL{border-color:hsla(8,51%,63%,.9);color:#6c2b23}.detail-status.status-N_A{border-color:rgba(90,100,96,.4);color:#5a6460}.divider{height:1px;background:var(--line)}.sparkline{height:120px;border-radius:14px;background:var(--panel);border:1px solid var(--line);overflow:hidden}.sparkline svg{width:100%;height:100%;display:block}.sparkline-empty{height:120px;border-radius:14px;background:var(--panel);border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;font-size:.78rem;color:var(--muted)}.panel-card.highlight{background:#fff2de;border:1px solid rgba(244,163,64,.4)}[data-theme=dark] .panel-card.highlight{background:#1f231c;border-color:rgba(242,180,96,.3)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:18px;gap:18px}.grid-card{background:var(--panel);border-radius:18px;padding:16px;box-shadow:var(--shadow);display:grid;grid-gap:12px;gap:12px}.rank-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:10px;gap:10px}.rank-list li{display:flex;justify-content:space-between;font-size:.92rem}.matrix{grid-gap:8px}.matrix,.matrix-row{display:grid;gap:8px}.matrix-row{grid-template-columns:1fr repeat(3,minmax(40px,1fr));grid-gap:8px;align-items:center;font-size:.85rem}.chip{padding:6px 8px;border-radius:999px;text-align:center;font-size:.75rem;font-weight:600}.chip.good{background:rgba(15,123,108,.18);color:#0f7b6c}.chip.mid{background:rgba(244,163,64,.2);color:#9b5d15}.chip.low{background:hsla(8,51%,63%,.2);color:#8f3d32}.matrix-legend{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;font-size:.75rem;color:var(--muted);text-align:center}.gap-item{display:flex;justify-content:space-between;font-size:.9rem}@media (max-width:1100px){.hero,.workspace{grid-template-columns:1fr}.map-canvas{height:380px}}@media (max-width:720px){.map-overlay,.topbar{flex-direction:column;align-items:flex-start}.map-overlay{gap:12px}.map-footer{flex-direction:column;align-items:flex-start}}