@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{--ink:#102936;--muted:#687c86;--paper:#fff;--line:#dde5e9;--cyan:#007b8c;--pale:#edf6f7;--amber:#d88822;--blue:#3169bb}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#eef2f4;font:16px/1.5 'DM Sans',Arial,sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:white;border-radius:5px;font-size:14px;padding:9px 12px}button:hover{border-color:#85a5b4;background:#f4f8fa}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #008fa8;outline-offset:2px}a{color:var(--cyan)}header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#102936;color:white;border-bottom:1px solid #29404c}.brand{display:flex;gap:13px;align-items:center;color:white;text-decoration:none;font-weight:700;font-size:20px;letter-spacing:.06em;line-height:1.2}.monogram{color:#67dbe4;font-size:38px;font-weight:500;letter-spacing:-.12em;margin-right:10px}.subbrand{display:block;font:11px/1.8 'IBM Plex Mono',monospace;letter-spacing:.12em}.version{font:14px 'IBM Plex Mono',monospace;border:1px solid #59737f;padding:5px 7px;align-self:flex-start;margin-left:3px}.header-context{font:12px 'IBM Plex Mono',monospace;color:#b3c5cc;letter-spacing:.05em}.header-context span{margin:0 10px;color:#56707e}.head-actions{display:flex;gap:8px}.head-actions button{background:transparent;border-color:#49616d;color:#e9f2f5}.head-actions .primary{color:#102936;background:#70d8df;border-color:#70d8df}main{display:grid;grid-template-columns:276px minmax(300px,1fr) 370px;height:calc(100dvh - 76px)}.rail{background:white;display:flex;flex-direction:column;border-right:1px solid var(--line);min-height:0;padding:23px 18px 0;z-index:2}.rail-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.rail-title button{border:0;padding:0 6px;font-size:24px}.eyebrow{font:12px 'IBM Plex Mono',monospace;letter-spacing:.1em;color:var(--muted)}nav{display:grid;gap:5px}nav button{border:0;text-align:left;display:flex;gap:12px;align-items:center;padding:11px;font-weight:600}nav button span{font:12px 'IBM Plex Mono',monospace;color:#92a1aa}nav button b{font-size:12px;margin-left:auto}nav button.active{background:var(--ink);color:white}nav button.active span{color:#77d6df}.rail-divider{height:1px;background:var(--line);margin:22px 0}.search{display:flex;align-items:center;border:1px solid #cbd8df;border-radius:5px;padding:0 8px}.search input{min-width:0;width:100%;border:0;padding:11px 2px;font-size:14px;outline:none;background:none}.search span{font-size:25px;color:#718894}.result-heading{display:flex;justify-content:space-between;font:11px 'IBM Plex Mono',monospace;color:#697c87;padding:20px 0 10px}#results{overflow:auto;flex:1;margin:0 -18px}#results button{display:block;width:100%;border:0;border-radius:0;text-align:left;padding:13px 18px;border-top:1px solid #eef2f4;background:none}#results button:hover,#results button.selected{background:#eef6f7}#results b{display:block;font-size:14px;font-weight:600}#results small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.rail-bottom{font:10px/1.5 'IBM Plex Mono',monospace;padding:14px 0;border-top:1px solid var(--line);color:var(--muted)}.rail-bottom>span:last-child{display:block;padding-left:12px}.status-dot{width:5px;height:5px;border-radius:50%;background:var(--cyan);display:inline-block;margin-right:7px}.map-region{position:relative;min-width:0;background:#e4ebee}#map{position:absolute;inset:0}.map-top{position:absolute;top:19px;left:20px;right:20px;display:flex;justify-content:space-between;pointer-events:none}.map-top>*{pointer-events:auto;box-shadow:0 4px 15px #173e5020}.presets{display:flex;background:white;border-radius:5px;padding:3px}.presets button{border:0;padding:7px 12px}.presets button.active{background:var(--ink);color:white}#map-status{position:absolute;top:76px;left:20px;background:white;border-radius:5px;padding:8px 12px;font-size:13px;box-shadow:0 3px 10px #0001}.map-footer{position:absolute;bottom:25px;left:20px;right:20px;display:flex;justify-content:space-between;pointer-events:none;font:10px 'IBM Plex Mono',monospace;color:#405d6c;text-shadow:0 1px 3px white}.legend{position:absolute;bottom:60px;left:20px;max-width:300px;background:white;padding:15px 17px;border-radius:5px;box-shadow:0 4px 18px #142b3720;font-size:12px}.legend:empty{display:none}.legend h4{font-size:13px;margin:0 0 9px}.dossier{background:#fff;overflow:auto;border-left:1px solid var(--line);z-index:2}.dossier-head{display:flex;justify-content:space-between;align-items:center;padding:23px 24px 15px}.dossier-head button{border:0;font-size:22px;padding:0}#detail{padding:0 24px 28px}h1,h2,h3,p{margin-top:0}h1{font-size:31px;line-height:1.13;letter-spacing:-.04em;margin:12px 0}h2{font-size:25px;letter-spacing:-.025em}h3{font-size:16px;margin:24px 0 12px}.detail-kicker{font:12px 'IBM Plex Mono',monospace;color:var(--cyan);text-transform:uppercase}.intro-copy{color:#536b77;font-size:14px;line-height:1.65}.chip{display:inline-block;border:1px solid #d4e3e8;border-radius:3px;padding:3px 6px;font-size:11px;margin:2px 3px 2px 0;color:#4b6977}.metric-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line);margin:20px 0}.metric{padding:14px 11px;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.metric b{display:block;font:24px/1.2 'IBM Plex Mono',monospace;letter-spacing:-.05em}.metric span{display:block;font-size:12px;margin-top:6px;color:#58717e}.metric small{font-size:10px;color:#78909b}.note{font-size:12px;color:#71838d;line-height:1.6}.notice{font-size:13px;padding:12px;background:#edf6f7;border-left:3px solid #008593;line-height:1.6}.detail-image{width:100%;height:160px;object-fit:cover;border-radius:4px}.detail-link{display:block;font-size:13px;margin-top:15px}.swatch{width:9px;height:9px;display:inline-block;background:var(--cyan);margin-right:6px;border-radius:50%}.bar{height:6px;background:#edf2f5;border-radius:3px;overflow:hidden}.bar i{display:block;height:100%;background:#168d9b}.bar-label{display:flex;justify-content:space-between;font-size:12px;margin:10px 0 4px}.dossier-tabs{display:flex;border-bottom:1px solid var(--line);margin:20px -24px;padding:0 24px;gap:14px}.dossier-tabs button{border:0;border-radius:0;padding:9px 0;font-size:13px}.dossier-tabs button.active{border-bottom:2px solid var(--cyan);color:var(--cyan)}#mode-controls{font-size:13px;padding-top:13px}#mode-controls label{display:block;margin:6px 0}#mode-controls select{font-size:13px;width:100%;padding:8px;border:1px solid #cbd8df;border-radius:4px;background:white;color:var(--ink)}.maplibregl-popup-content{font:13px 'DM Sans',sans-serif;padding:12px;color:var(--ink)}.maplibregl-ctrl-top-right{top:72px;right:12px}dialog{border:0;border-radius:10px;width:min(820px,94vw);max-height:88dvh;padding:36px;color:var(--ink);box-shadow:0 30px 100px #04192366}dialog::backdrop{background:#0f283aaa;backdrop-filter:blur(3px)}.modal-close{position:absolute;right:16px;top:16px;border:0;font-size:22px}#modal-content p{color:#4f6876;font-size:15px}#modal-content a{word-break:break-word}#modal-content table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px 8px}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:12px 20px;background:var(--ink);color:white;z-index:20;border-radius:5px;font-size:14px}body.hide-dossier main{grid-template-columns:276px 1fr}body.hide-dossier .dossier{display:none}.coverage{font-size:12px;color:#6c808d;border-top:1px solid var(--line);padding-top:14px;margin-top:20px}.row-value{font-family:'IBM Plex Mono',monospace}.ramp{height:8px;border-radius:2px;background:linear-gradient(90deg,#b6dee0,#58b6c2,#1781a0,#305b9c,#463474);margin:10px 0 5px}.legend-range{display:flex;justify-content:space-between;font:11px 'IBM Plex Mono',monospace}.layer-toggle{display:flex!important;gap:8px;align-items:center}.data-row{border-bottom:1px solid var(--line);padding:12px 0}.data-row b{font-size:14px}.data-row .value{font:23px 'IBM Plex Mono',monospace;margin:6px 0}.data-row p{font-size:12px;margin:4px 0;color:#647d88}.profile-card{padding:16px;background:#102936;color:white;margin:18px 0}.profile-card .eyebrow{color:#7bd6df}.profile-card h3{margin:8px 0 10px;font-size:20px}.profile-card p{font-size:14px;line-height:1.7;margin:0;color:#d7e4e9}footer{font-size:12px}.mobile-layers{display:none}@media(min-width:1600px){main{grid-template-columns:300px 1fr 420px}#detail{padding-left:28px;padding-right:28px}}@media(max-width:1150px){main{grid-template-columns:240px 1fr 320px}.header-context{display:none}.rail{padding-left:14px;padding-right:14px}#results{margin-left:-14px;margin-right:-14px}#detail{padding-left:20px;padding-right:20px}.dossier-head{padding-left:20px;padding-right:20px}.presets button{padding:7px 8px}}@media(max-width:900px){main{grid-template-columns:220px 1fr}.dossier{position:absolute;right:12px;top:145px;bottom:44px;width:330px;border:1px solid var(--line);box-shadow:0 10px 50px #12334433;border-radius:8px}.map-top{right:12px;left:12px}.head-actions button{font-size:12px}.brand{font-size:17px}.subbrand{font-size:9px}.legend{max-width:220px}.dossier-head{padding-top:16px}h1{font-size:28px}}@media(max-width:640px){header{height:65px;padding:0 13px}.monogram{font-size:30px;margin:0}.brand{gap:7px;font-size:15px}.version,.head-actions #export-button{display:none}.subbrand{font-size:8px}.head-actions button{font-size:11px;padding:7px}main{height:calc(100dvh - 65px);grid-template-columns:1fr;grid-template-rows:150px 1fr}.rail{padding:8px 12px;border-right:0;border-bottom:1px solid var(--line);display:block}.rail-title,.rail-divider,.rail-bottom,.result-heading,#results{display:none}nav{display:flex;gap:2px}nav button{flex:1;font-size:11px;padding:7px;display:block;text-align:center}nav button span,nav button b{display:none}.search{margin-top:7px}.search input{padding:5px;font-size:13px}#mode-controls{padding-top:5px;display:flex;gap:8px}#mode-controls select{padding:4px;font-size:11px}#mode-controls label{font-size:11px;margin:0}.dossier{top:auto;bottom:0;right:0;left:0;width:100%;max-height:45dvh;border-radius:12px 12px 0 0}.dossier-head{padding:13px 20px 4px}#detail{padding-bottom:24px}.map-top{top:10px}.presets button{font-size:12px;padding:6px 8px}.legend{bottom:38px;left:10px;padding:10px;font-size:11px;max-width:210px}.map-footer{font-size:9px;left:10px}.map-footer span:last-child{display:none}body.hide-dossier main{grid-template-columns:1fr}.maplibregl-ctrl-top-right{top:50px;right:4px}.head-actions{gap:0}h1{font-size:26px}.metric-grid{margin:14px 0}}
.near-row{display:block;width:100%;text-align:left;border-width:0 0 1px;border-radius:0;padding:10px 0}.near-row b{display:block;font-size:14px}.near-row span{display:block;font-size:12px;color:var(--muted);margin-top:3px}.station-hero,.rent-hero{margin:22px 0;padding:17px 0 17px 17px;border-left:4px solid var(--amber);background:#f3f7f9}.station-hero>b,.rent-hero>b{display:block;font:40px/1.2 'IBM Plex Mono',monospace;letter-spacing:-.06em}.station-hero>span,.rent-hero>span{display:block;font-size:14px;margin-top:7px}.station-hero>small,.rent-hero>small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.compact-table{font-size:12px;width:100%;border-collapse:collapse}.compact-table th,.compact-table td{padding:8px 3px}.compact-table td:not(:first-child){font-family:'IBM Plex Mono',monospace}.download-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:24px 0}.download-grid a{display:block;padding:20px;background:#edf5f7;border:1px solid #cadde5;border-radius:5px;text-decoration:none}.download-grid span{display:block;font-size:13px;color:var(--muted);margin-top:8px}.geo-scope{padding-bottom:2px}.geo-scope p{margin:8px 0}#compare-pin{font-size:13px;width:100%;border-color:#94bbc4;color:#00788c}@media(max-width:640px){.download-grid{grid-template-columns:1fr}}

/* Final presentation adjustments */
.intro-copy,.profile-card p{font-size:16px}.rail-title{margin-bottom:9px}.rail{padding-top:16px}nav button{padding-top:9px;padding-bottom:9px}.rail-divider{margin:15px 0}.result-heading{padding-top:14px}.rail-bottom{padding:9px 0}@media(max-width:640px){.rail{padding-top:8px}#mode-controls>.note{display:none}nav button{padding:7px 4px}.intro-copy,.profile-card p{font-size:15px}}
