:root{--ink:#2d3034;--brand:#6b3453;--muted:#756f70;--paper:#fbf5ea;--line:#d7c8c1;--coral:#e96e4f}
*{box-sizing:border-box}html,body{margin:0;width:100%;min-width:0;font-family:Arial,sans-serif;background:var(--paper);color:var(--ink);font-size:13px}button,select{font:inherit;color:inherit}button,summary,select{cursor:pointer}button,select{border:1px solid var(--line);border-radius:9px;background:#fffdf9;padding:9px 11px;min-height:38px;max-width:100%}button:hover{background:#ead9d0}button:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible,#map:focus-visible{outline:3px solid var(--brand);outline-offset:2px}button:disabled,select:disabled{cursor:wait;opacity:.5}[hidden]{display:none!important}.demo-heading{padding:15px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fffdf9;border-bottom:1px solid var(--line)}h1{font:23px/1.1 Georgia,serif;margin:4px 0 0}.demo-kicker{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);font-weight:bold}.free-label{font-size:11px;color:var(--brand);background:#ead9d0;padding:7px 10px;border-radius:20px;white-space:nowrap}.demo-controls{position:relative;z-index:600;display:flex;align-items:end;gap:10px;padding:12px 16px;background:#fffdf9;flex-wrap:wrap}.demo-controls>label{display:grid;gap:5px;font-size:10px;font-weight:bold;color:var(--muted)}.demo-controls select{font-size:12px;font-weight:normal;color:var(--ink)}.demo-controls details{position:relative;flex:1;min-width:170px}.demo-controls summary{padding:10px 12px;background:#f5eee8;border:1px solid var(--line);border-radius:10px;min-height:38px;white-space:nowrap;font-size:12px;color:var(--brand);font-weight:bold}.demo-controls summary span{font-weight:normal}.demo-controls fieldset{position:absolute;right:0;top:40px;width:290px;max-width:calc(100vw - 32px);max-height:340px;overflow:auto;margin:0;padding:14px;background:#fffdf9;border:1px solid var(--line);box-shadow:0 8px 24px #3b22322b;border-radius:12px}.demo-controls legend{position:absolute;clip-path:inset(50%);height:1px;width:1px;overflow:hidden}.layer-option{display:flex;align-items:start;gap:8px;padding:7px 0;font-size:12px}.layer-option input{accent-color:var(--brand);margin:2px 0 0}.layer-option span{flex:1}.layer-option small{color:var(--muted);font-size:10px}.layer-option:has(input:disabled){color:var(--muted)}.map-stage{height:470px;position:relative;isolation:isolate;background:#eee9df}#map{height:100%;width:100%;background:#eee9df}.map-status{position:absolute;z-index:450;top:12px;left:50%;transform:translateX(-50%);max-width:70%;padding:7px 12px;border-radius:16px;background:#fffdf9e8;color:#44303b;font-size:11px;box-shadow:0 2px 10px #0001;text-align:center;pointer-events:none}.map-error{position:absolute;z-index:700;top:50%;left:50%;transform:translate(-50%,-50%);width:min(320px,90%);padding:24px;border-radius:18px;background:#fffdf9;box-shadow:0 6px 30px #0002;line-height:1.5}.map-error b{font-size:18px}.map-error button{background:var(--brand);color:white}.map-legend{position:absolute;z-index:440;bottom:24px;left:12px;background:#fffdf9ed;border-radius:12px;padding:10px 12px;max-width:190px;pointer-events:none;font-size:10px}.map-legend strong{display:block;margin-bottom:5px}.legend-item{display:flex;align-items:center;gap:7px;margin:3px 0}.legend-item i{width:9px;height:9px;border-radius:2px;display:inline-block}.leaflet-popup-content-wrapper{border-radius:16px;background:#fffdf9}.leaflet-popup-content{font:12px/1.5 Arial,sans-serif;max-width:280px}.demo-popup h2{font:20px/1.1 Georgia,serif;margin:7px 0 12px}.demo-popup .popup-kind{font-size:10px;color:var(--brand);font-weight:bold;text-transform:uppercase;letter-spacing:.04em}.demo-popup dl{margin:0}.demo-popup dl div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #d7c8c170;padding:5px 0}.demo-popup dt{color:var(--muted)}.demo-popup dd{margin:0;text-align:right}.demo-popup a{color:var(--brand);display:inline-block;margin-top:12px}.demo-popup .popup-note{font-size:10px;color:var(--muted);line-height:1.5;margin:9px 0 0}.transit-marker{background:#fff;border:2px solid #fff;border-radius:50%;font:bold 10px Arial;text-align:center;line-height:19px;box-shadow:0 1px 4px #0004;color:white}.noscript{padding:18px;color:var(--brand)}
@media(max-width:680px){.demo-heading{padding:12px}h1{font-size:21px}.demo-controls{gap:7px;padding:10px 12px;display:grid;grid-template-columns:1fr 1fr}.demo-controls>label{min-width:0}.demo-controls select{width:100%;padding:8px;font-size:11px}.demo-controls details{min-width:0}.demo-controls summary{font-size:10px;padding:10px 8px;white-space:normal}.demo-controls fieldset{right:0;width:260px}.demo-controls #reset-map{grid-column:1/-1;min-height:30px;padding:5px;font-size:11px}.map-stage{height:390px}.map-status{top:8px;max-width:72%;font-size:10px;padding:6px 8px}.map-legend{font-size:9px;padding:8px;bottom:25px;left:8px}.leaflet-popup-content{max-width:235px}}

/* Brandbook 2.2: typography, controls and surfaces; map layer colours are data. */
html,body{font-family:var(--font-brand);font-synthesis:none;font-size:14px;line-height:20px}
button,select{min-height:44px;font-size:16px;line-height:20px;border-radius:14px 24px 14px 14px}
button:focus-visible,summary:focus-visible,select:focus-visible,input:focus-visible,#map:focus-visible{outline:3px solid var(--ink);outline-offset:4px;box-shadow:0 0 0 4px #fffdf9}
.demo-heading{padding:24px;gap:16px;flex-wrap:wrap}h1{font:600 24px/30px var(--font-brand);margin:8px 0 0}
.demo-kicker,.free-label{font-size:14px;line-height:20px}.demo-kicker{font-weight:600;letter-spacing:.04em}.free-label{padding:8px 12px;white-space:normal}
.demo-controls{padding:16px;gap:16px}.demo-controls>label{font-size:14px;line-height:20px;font-weight:500;max-width:100%}.demo-controls select{font-size:16px;font-weight:400}
.demo-controls summary{font-size:16px;line-height:20px;font-weight:600;min-height:44px;padding:12px;border-radius:14px 24px 14px 14px;white-space:normal;background:#fffdf9}
.demo-controls fieldset{top:100%;margin-top:8px;width:320px;border-radius:20px 44px 20px 20px}.layer-option{font-size:14px;line-height:20px;min-height:44px;align-items:center;padding:8px 0}.layer-option small{font-size:14px}.layer-option input{flex:none;width:18px;height:18px;margin:0}
.map-status{font-size:14px;line-height:20px;background:#fffdf9;color:var(--ink)}.map-legend{font-size:14px;line-height:20px;max-width:210px;background:#fffdf9;border-radius:14px 24px 14px 14px}.legend-item{margin:4px 0}.legend-item i{flex:none;width:12px;height:12px}
.leaflet-container{font-family:var(--font-brand)}.leaflet-popup-content-wrapper{border-radius:20px 44px 20px 20px}.leaflet-popup-content{font:14px/20px var(--font-brand)}.demo-popup h2{font:600 24px/30px var(--font-brand)}.demo-popup .popup-kind,.demo-popup .popup-note{font-size:14px;line-height:20px}.demo-popup dd{font-variant-numeric:tabular-nums lining-nums;font-weight:500}.demo-popup a{min-height:44px;padding:12px 0}
.leaflet-touch .leaflet-bar a,.leaflet-bar a{width:44px;height:44px;line-height:44px}.leaflet-container a.leaflet-popup-close-button{width:44px;height:44px;font-size:24px;line-height:44px;color:var(--brand)}.transit-marker{font-family:var(--font-brand)}
@media(max-width:680px){.demo-heading{padding:16px}.demo-controls{gap:16px;padding:16px;grid-template-columns:minmax(0,1fr)}.demo-controls select{padding:10px;font-size:16px}.demo-controls summary{font-size:16px;padding:12px}.demo-controls #reset-map{min-height:44px;font-size:16px;padding:12px}.demo-controls fieldset{width:100%;max-width:100%;left:0;right:auto}.map-stage{height:460px}.map-status{font-size:14px;max-width:calc(100% - 80px);left:auto;right:8px;transform:none}.map-legend{font-size:14px;padding:8px;max-width:190px}.leaflet-popup-content{max-width:calc(100vw - 76px)}}
@media(prefers-reduced-motion:reduce){.leaflet-fade-anim .leaflet-popup,.leaflet-zoom-animated{transition:none}}

/* Keep long source-backed cards inside the map after increasing type size. */
.leaflet-popup-content{margin:24px 24px 16px 20px}.leaflet-popup-scrolled{border:0;padding-right:12px}.map-stage:has(.leaflet-popup) :is(.map-status,.map-legend){visibility:hidden}

/* The demo ends at the map; the former address panel gives space to geography. */
.map-stage{height:640px}
.map-tile-warning{position:absolute;z-index:460;top:56px;right:16px;max-width:280px;margin:0;padding:12px 16px;background:#fffdf9;color:var(--ink);border:1px solid var(--line);border-radius:14px 24px 14px 14px;font-size:14px;line-height:20px}
@media(max-width:680px){.map-stage{height:580px}.map-tile-warning{top:88px;right:8px;max-width:calc(100% - 72px)}}
.map-legend{max-height:45%;overflow-y:auto;pointer-events:auto;font-size:11px;line-height:15px;max-width:240px}
.map-legend .legend-item{margin:3px 0}
