:root{--ink:#102a2a;--muted:#617171;--teal:#0f766e;--teal2:#14b8a6;--soft:#ecfdf5;--line:#dbe7e5;--paper:#fbfdfc;--warn:#f59e0b;--danger:#ef4444;--shadow:0 16px 45px rgba(15,67,63,.11)}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(180deg,#f6fbfa 0,#fff 48%);color:var(--ink)}button,select{font:inherit}.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1240px)/2));border-bottom:1px solid var(--line);background:rgba(255,255,255,.9);backdrop-filter:blur(12px);position:sticky;top:0;z-index:1000}.brand{display:flex;gap:10px;align-items:center}.brand-dot{width:13px;height:13px;border-radius:50%;background:var(--teal2);box-shadow:0 0 0 6px rgba(20,184,166,.13)}.badge,.status{font-size:12px;padding:5px 9px;border-radius:999px;background:#e8f7f4;color:#0d6962}.ghost,.secondary,.primary{border-radius:11px;padding:11px 16px;border:1px solid var(--line);cursor:pointer;font-weight:700}.ghost,.secondary{background:white;color:var(--ink)}.primary{background:var(--teal);color:white;border-color:var(--teal);box-shadow:0 9px 24px rgba(15,118,110,.2)}main{max-width:1240px;margin:auto;padding:48px 24px 70px}.hero{display:grid;grid-template-columns:1.6fr .8fr;gap:32px;align-items:center;margin-bottom:34px}.eyebrow{font-size:12px;letter-spacing:.13em;color:var(--teal);font-weight:800}.hero h1{font-size:clamp(42px,6vw,76px);line-height:.98;margin:12px 0 20px;letter-spacing:-.055em}.hero h1 span{color:var(--teal)}.lead{font-size:20px;line-height:1.55;color:#4f6160;max-width:760px}.hero-actions{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}.hero select{background:white;border:1px solid var(--line);border-radius:11px;padding:11px 14px;color:var(--ink)}.microcopy{color:#788786;font-size:12px}.hero-card{background:linear-gradient(145deg,#0d5f59,#112c2b);color:white;padding:26px;border-radius:22px;box-shadow:var(--shadow)}.privacy-icon{font-size:32px;color:#5eead4}.hero-card p{color:#c8dfdc;line-height:1.55}.flow{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.flow span{font-size:12px;background:rgba(255,255,255,.11);padding:7px 9px;border-radius:8px}.workspace{display:grid;grid-template-columns:1.45fr .75fr;gap:22px}.map-panel,.card{background:white;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.map-panel{overflow:hidden}.panel-head{padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.panel-head h2,.card h3,.how h2{margin:0}.panel-head p{margin:5px 0 0;color:var(--muted);font-size:13px}.legend{display:flex;gap:12px;font-size:12px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:5px}.dot{width:9px;height:9px;border-radius:50%;display:inline-block}.calm{background:#14b8a6}.mid{background:#f59e0b}.loud{background:#ef4444}#map{height:560px;width:100%}.map-note{font-size:12px;color:var(--muted);padding:12px 18px;border-top:1px solid var(--line)}.side-panel{display:flex;flex-direction:column;gap:22px}.card{padding:20px}.card-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.status.idle{background:#f1f5f4;color:#5f6e6d}.status.live{background:#dcfce7;color:#166534}.status.error{background:#fee2e2;color:#991b1b}.status.demo{background:#fff7ed;color:#9a3412}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.metric-grid>div{padding:12px;background:#f7faf9;border-radius:12px;min-height:85px}.metric-grid span,.metric-grid small{display:block;color:var(--muted);font-size:11px}.metric-grid strong{display:inline-block;font-size:23px;margin-top:8px}.metric-grid small{margin-top:2px}.meter{height:9px;background:#edf3f2;border-radius:20px;overflow:hidden;margin-top:14px}.meter div{height:100%;width:0;background:linear-gradient(90deg,#14b8a6,#f59e0b,#ef4444);transition:width .4s ease}.analysis-details{font-size:13px;color:var(--muted);line-height:1.5}.secondary:disabled{opacity:.45;cursor:not-allowed}.route-cards{display:flex;flex-direction:column;gap:9px}.route-card{border:1px solid var(--line);border-radius:13px;padding:12px 13px;cursor:pointer;transition:.15s}.route-card:hover,.route-card.active{border-color:#5eead4;background:#f0fdfa}.route-row{display:flex;justify-content:space-between;align-items:center}.route-name{font-weight:800;text-transform:capitalize}.route-meta{font-size:12px;color:var(--muted);margin-top:4px}.route-index{font-weight:800}.explain{margin-top:12px;border-radius:12px;background:#f5fbfa;padding:12px;font-size:13px;line-height:1.5;color:#405553}.impact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}.impact-grid article{border:1px solid var(--line);background:white;border-radius:15px;padding:16px}.impact-grid strong{display:block;font-size:28px}.impact-grid span{font-size:12px;color:var(--muted)}.how{margin-top:50px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-top:20px}.steps article{border-top:2px solid #bfe9e4;padding-top:14px}.steps article>span{font-size:12px;color:var(--teal);font-weight:800}.steps h3{margin:8px 0}.steps p{color:var(--muted);font-size:13px;line-height:1.5}footer{max-width:1240px;margin:auto;padding:0 24px 42px;color:#6a7b79;font-size:12px}.toast{position:fixed;right:22px;bottom:22px;background:#102a2a;color:white;padding:12px 16px;border-radius:11px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s;z-index:1500}.toast.show{opacity:1;transform:translateY(0)}.leaflet-popup-content{font-family:Inter,system-ui,sans-serif}.popup-title{font-weight:800;margin-bottom:4px}.popup-meta{font-size:12px;color:#5d6d6c}.source-pill{display:inline-block;margin-top:7px;font-size:10px;font-weight:800;padding:4px 7px;border-radius:999px;background:#eef6f4}.source-pill.live{background:#dcfce7;color:#166534}@media(max-width:950px){.hero,.workspace{grid-template-columns:1fr}.hero-card{display:none}.impact-grid,.steps{grid-template-columns:1fr 1fr}#map{height:470px}}@media(max-width:580px){main{padding:30px 14px 50px}.topbar{padding:0 14px}.badge{display:none}.hero h1{font-size:44px}.lead{font-size:17px}.hero-actions>*{width:100%}.panel-head{align-items:flex-start;flex-direction:column}.legend{flex-wrap:wrap}#map{height:430px}.metric-grid,.impact-grid,.steps{grid-template-columns:1fr}.card{padding:16px}}
