:root{--ink:#21342b;--muted:#6f7e74;--cream:#f5f2e9;--paper:#fffdf7;--line:#dfe4d9;--green:#355d45;--gold:#c98e3c;--high:#3d7657;--mid:#d6a94a;--low:#c77962}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,sans-serif}.topbar{height:78px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,4vw,64px)}h1,h2,h3,p{margin:0}.eyebrow,.kicker{font-size:10px;letter-spacing:.16em;font-weight:700;color:var(--gold)}h1{font:600 22px/1.1 Georgia,serif}.status{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.dot{width:8px;height:8px;background:#719d75;border-radius:50%}.shell{max-width:1440px;margin:auto;padding:36px clamp(18px,4vw,64px)}.intro{display:flex;justify-content:space-between;gap:28px;margin-bottom:26px}.intro h2{font:500 clamp(26px,3vw,40px)/1.1 Georgia,serif;max-width:650px;margin:6px 0 10px}.lede{color:var(--muted);max-width:620px}.actions{display:flex;align-items:end;gap:8px}.button{background:transparent;border:1px solid #a7b4a8;color:var(--ink);border-radius:5px;padding:10px 14px;cursor:pointer;font-weight:650}.button:hover{border-color:var(--green);background:#edf1e9}.button.primary{background:var(--green);border-color:var(--green);color:white}.button.small{padding:7px 12px;font-size:12px}.workspace{display:grid;grid-template-columns:220px minmax(0,1fr) 280px;gap:12px;min-height:610px}.panel{background:var(--paper);border:1px solid var(--line);padding:20px}.controls label,.legend-title{display:block;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:8px}.controls select{width:100%;font:inherit;color:var(--ink);background:white;border:1px solid #bfcabc;border-radius:4px;padding:10px;margin-bottom:24px}.legend{display:grid;grid-template-columns:16px 1fr;gap:8px 7px;align-items:center;font-size:12px;color:var(--muted)}.swatch{width:13px;height:13px;border-radius:2px}.swatch.high{background:var(--high)}.swatch.mid{background:var(--mid)}.swatch.low{background:var(--low)}.divider{height:1px;background:var(--line);margin:24px 0 14px}.mini-stat{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;padding:6px 0}.mini-stat strong{color:var(--ink)}.hint{font-size:12px;color:var(--muted);margin-top:18px}.login-box{border-top:1px solid var(--line);margin-top:28px;padding-top:16px;font-size:12px}.login-box p{color:var(--muted);margin:4px 0 10px}.login-box span{display:block;color:var(--green);margin-top:8px;font-size:11px}.dossier{overflow:auto}.dossier-empty{text-align:center;color:var(--muted);padding-top:120px}.pin{font-size:34px;color:var(--gold);display:block;margin-bottom:12px}.dossier h3{font:600 22px Georgia,serif;color:var(--ink);margin-bottom:6px}.dossier-content h3{font:600 21px Georgia,serif;margin:2px 0 12px}.tag{display:inline-block;background:#edf1e9;color:var(--green);font-size:11px;font-weight:700;padding:4px 7px;border-radius:3px;margin-bottom:14px}.score{font:600 42px Georgia,serif;color:var(--green);line-height:1}.score-label{font-size:11px;color:var(--muted);margin:3px 0 18px}.dossier dl{margin:0;display:grid;grid-template-columns:1fr auto;gap:8px;border-top:1px solid var(--line);padding-top:13px}.dossier dt{color:var(--muted)}.dossier dd{margin:0;font-weight:650}.note{font-size:12px;color:var(--muted);margin-top:18px}.caveat{display:flex;gap:14px;background:#eee9d9;border:1px solid #e1d7b9;padding:13px 16px;margin-top:14px;font-size:12px;color:#6b624e}.caveat strong{color:#81662f;white-space:nowrap}footer{text-align:center;color:var(--muted);font-size:11px;padding:18px}.leaflet-container{font:12px/1.3 inherit;background:#dfe7dc}.cell-label{background:var(--paper);border:0;box-shadow:0 1px 5px #21342b33;padding:3px 6px;border-radius:3px;color:var(--ink);font-weight:700}.leaflet-tooltip.cell-label:before{display:none}@media(max-width:1000px){.workspace{grid-template-columns:210px minmax(0,1fr);}.dossier{grid-column:1/-1;min-height:220px}.dossier-empty{padding-top:20px}.dossier-content{max-width:500px}.map{min-height:520px}}@media(max-width:650px){.topbar{height:auto;padding:16px 18px}.status{display:none}.intro{display:block}.actions{margin-top:16px}.workspace{display:flex;flex-direction:column}.controls{order:2}.dossier{order:3}.workspace #map{height:480px;min-height:480px}}
 .analysis-status{margin-top:18px;padding:8px 10px;border-radius:4px;background:#f1efe6;color:#6f644e;font-size:11px;font-weight:700}.analysis-status.complete{background:#e7f1e8;color:var(--green)}.analysis-status.partial{background:#fff3d9;color:#82672e}.analysis-status.unavailable{background:#f6e7e1;color:#9a5743}.live-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.live-grid div{background:#f5f6ef;border:1px solid var(--line);padding:8px}.live-grid span{display:block;color:var(--muted);font-size:10px}.live-grid strong{display:block;margin-top:2px}.source-note{font-size:11px;color:var(--muted);margin-top:12px}.caveat-list{padding-left:16px;color:var(--muted);font-size:11px;margin:10px 0 0}.caveat-list li{margin:4px 0}.hover-probability{width:250px;background:#fffdf7f2;border:1px solid #cad4c8;border-radius:7px;box-shadow:0 6px 22px #21342b2b;padding:12px 13px;color:var(--ink);backdrop-filter:blur(7px)}.hover-probability .hover-kicker{display:block;font-size:9px;letter-spacing:.14em;color:var(--gold);font-weight:800;margin-bottom:3px}.hover-probability>strong{display:block;font-size:12px}.hover-probability small{display:block;color:var(--muted);font-size:9px;margin-top:7px}.hover-probability ol{list-style:none;padding:0;margin:8px 0 0}.hover-probability li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:5px 0 0;margin-top:5px;font-size:11px}.hover-probability li span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hover-probability i{font-family:Georgia,serif}.hover-probability b{color:var(--green)}@media(max-width:650px){.hover-probability{width:205px}.hover-probability li:nth-child(3){display:none}}
