@font-face{font-family:Inter;src:url('inter.ttf') format('truetype');font-display:swap}@font-face{font-family:Montserrat;src:url('montserrat.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--ink:#172726;--mint:#00d5bd;--pink:#ff3b58;--cream:#fff8bc;--muted:#5c716d;--line:#dce8e3}
body{background:#f3f7f5;color:var(--ink);font-family:Inter,system-ui,sans-serif}button,input,select{font-family:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ff3b58;outline-offset:3px}header{background:var(--mint);color:var(--ink);padding:14px 32px;border-top:5px solid var(--pink);min-height:98px;gap:24px}header .brand{display:flex;align-items:center;gap:22px;text-decoration:none;color:inherit}header img{width:112px;height:76px;object-fit:contain}header p{color:#234e46;font-size:13px;margin-top:4px}header b{font-family:Montserrat,sans-serif;font-size:16px;font-weight:800}.header-links{display:flex;gap:16px;align-items:center}.header-links a{color:var(--ink);font-size:13px;font-weight:600;text-decoration:none}.header-links a:hover{text-decoration:underline}.badge{border:1px solid #128b7c;background:#ffffff65;font-size:12px;font-weight:700;padding:10px 15px}.intro{padding:26px 32px 24px;display:flex;gap:25px;justify-content:space-between;align-items:center;max-width:1700px;margin:auto}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.16em;color:#496d63;text-transform:uppercase}.intro h1{font:800 clamp(24px,2.4vw,36px)/1.15 Montserrat,system-ui,sans-serif;margin:10px 0}.intro p{font-size:13px;color:var(--muted);margin:0;max-width:570px}.stats{display:flex;gap:12px;flex-shrink:0}.stat{background:white;padding:15px 20px;min-width:135px;border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 18px #163a2b04}.stat b{display:block;font:800 28px Montserrat,sans-serif;letter-spacing:-1px}.stat span{font-size:11px;color:#516960;display:flex;align-items:center;gap:5px;margin-top:4px}.stat:first-child{border-top:3px solid #16825b}.stat:last-child{border-top:3px solid #c57910}.stat .dot{width:7px;height:7px;margin:0}main{height:calc(100dvh - 280px);min-height:650px;max-height:1100px;max-width:1636px;margin:0 32px 25px;grid-template-columns:360px 1fr;background:white;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 12px 45px #1b4f3410}aside{padding:22px;border-right:1px solid var(--line)}aside>h1{font:800 19px Montserrat,sans-serif;margin:0 0 4px}aside>p:not(.notice){font-size:12px;color:var(--muted);margin-top:6px}label{font-size:11px;color:#426054;margin-top:14px}input,select{border:1px solid #dbe5df;border-radius:10px;background:#f8fbf9;color:var(--ink);font-size:13px;padding:11px}input[type=search]{background:white;border:1px solid #a9c5b9;padding:13px 12px}select:hover{border-color:#81aa99}button{background:#e5f7f0;color:#234e41;font-size:12px;font-weight:600;padding:10px 12px;border:1px solid #cde7db;border-radius:9px}button:hover{background:#d0f3e6}.legend{font-size:10px;margin:15px 0;gap:12px}.notice{font-size:11px;background:#fffbdf;border:1px solid #ece0a3;border-radius:10px;padding:11px;color:#665b31}.notice b{font-weight:700}h2{font-size:12px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:14px;transition:border-color .15s,box-shadow .15s}.card:hover{background:#f7fffb;border-color:#35b59a;box-shadow:0 3px 13px #234e4110}.card strong{font-family:Montserrat,sans-serif;font-size:12px;font-weight:700;line-height:1.6;margin:7px 0}.card small{color:#60766d;font-size:11px;line-height:1.7}.card .tag{font-size:10px;color:#126640;background:#e4f5ed;border-radius:6px;padding:4px 7px;display:inline-block}.card .tag.impl{color:#855600;background:#fff1d5}.card .notice{font-weight:400;margin-bottom:0}footer{font-size:10px;color:#60766d}a{color:#127860}.mapbar{top:18px;right:18px;box-shadow:0 3px 15px #153b261f;gap:8px}.mapbar button{background:white;padding:12px 15px;box-shadow:0 2px 5px #00000008}#share{background:var(--ink);color:white;border-color:var(--ink)}#share:hover{background:#2d4a42}.map-caption{position:absolute;bottom:28px;left:14px;z-index:450;border:1px solid #d6e5db;background:#fffffff0;padding:9px 12px;border-radius:9px;font-size:10px;max-width:260px;box-shadow:0 3px 15px #153b2610}.map-caption b{display:block;font-size:11px;margin-bottom:3px}.speed-pin{font-family:Inter,sans-serif;border-width:3px;box-shadow:0 3px 9px #123d3433;font-size:12px}.leaflet-popup-content-wrapper{border-radius:15px;box-shadow:0 8px 35px #163b2b30}.leaflet-popup-content{font:12px/1.7 Inter,sans-serif}.leaflet-popup-content b{font-family:Montserrat,sans-serif}.leaflet-control-zoom{border:0!important;box-shadow:0 3px 15px #153b2620!important;border-radius:10px!important;overflow:hidden}.leaflet-control-zoom a{color:#234e41!important}.view-switch{display:none}.page-footer{margin:0 32px 24px;display:flex;justify-content:space-between;color:#60766d;font-size:10px;line-height:1.8;gap:20px}.page-footer a{font-weight:600}#fallback{border:1px solid var(--line);box-shadow:0 5px 20px #163a2b20}
@media(min-width:1700px){main{margin-left:auto;margin-right:auto}}
@media(max-width:1050px){.intro{align-items:flex-start}.stats .stat{min-width:105px;padding:13px}.intro p{max-width:430px}main{grid-template-columns:325px 1fr;margin-left:20px;margin-right:20px}.intro{padding:24px 20px}.header-links>a{display:none}}
@media(max-width:760px){header{padding:10px 16px;min-height:84px}header img{width:90px;height:62px}header .brand{gap:12px}header b{font-size:12px}header p{font-size:10px}.header-links .badge{font-size:10px;padding:8px}.intro{padding:23px 18px 18px;display:block}.intro h1{font-size:27px;max-width:400px}.intro p{font-size:12px}.stats{margin-top:18px;gap:10px}.stats .stat{flex:1;padding:12px 15px}.stat b{font-size:25px}.view-switch{display:flex;margin:0 18px 14px;padding:4px;background:#e3ede7;border-radius:12px;gap:4px}.view-switch button{flex:1;border:0;color:#536d61;background:transparent;padding:11px}.view-switch button[aria-pressed=true]{background:white;color:#172726;box-shadow:0 2px 6px #173d2910}main{margin:0 12px 20px;display:flex;height:auto;min-height:0;max-height:none;border-radius:15px}.map-wrap{height:58dvh;min-height:390px}.mapbar{top:12px;right:12px;gap:5px}.mapbar button{padding:10px;font-size:11px}.map-caption{bottom:26px;font-size:9px;max-width:230px}aside{border:0;padding:20px}#results{max-height:none;overflow:visible}body[data-view=map] aside{display:none}body[data-view=list] .map-wrap{display:none}body[data-view=list] aside{display:block}.page-footer{margin:0 20px 20px;display:block}.page-footer span{display:block;margin-top:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
