@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#e8f0f2;background:#91afbd;font-synthesis:none;color-scheme:dark;--panel:rgba(16,30,37,.92);--line:rgba(220,237,242,.13);--mint:#a6f3d1}
*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--mint);outline-offset:4px}button{border:0}button:disabled{opacity:.5;cursor:wait}#world{position:fixed;inset:0;outline:none;touch-action:none}#world canvas{display:block;width:100%;height:100%}.panel{background:var(--panel);border:1px solid var(--line);box-shadow:0 8px 35px #0b202526;backdrop-filter:blur(16px);border-radius:12px}.masthead{position:fixed;top:24px;left:24px;display:flex;align-items:center;gap:15px;padding:15px 19px;max-width:calc(100% - 270px)}.city-mark{font-family:Manrope,sans-serif;font-size:18px;letter-spacing:-1px;font-weight:800;background:var(--mint);color:#15242b;border-radius:7px;padding:12px 8px}.masthead h1{font-family:Manrope,sans-serif;font-size:19px;line-height:1.5;letter-spacing:-.55px;margin:0;font-weight:800}.masthead h1 span{font-weight:400;color:#adbdc4}.masthead p{color:#a7b9c2;font-size:12px;line-height:1.5;margin:2px 0 0}.edition{font-size:10px;letter-spacing:1.5px;writing-mode:vertical-rl;opacity:.5;margin-left:7px}.mode-switch{position:fixed;right:24px;top:24px;padding:5px;display:flex;gap:3px}.mode-switch button{background:transparent;padding:13px 17px;border-radius:8px;font-size:14px;font-weight:600;white-space:nowrap}.mode-switch button.active{background:var(--mint);color:#152d27}.mode-switch button:not(.active):hover{background:#ffffff12}.locations{position:fixed;left:24px;top:140px;padding:19px 0 5px;width:276px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:#99b0bd}.locations>.eyebrow{padding:0 19px 12px}.locations button{width:100%;text-align:left;display:flex;align-items:center;gap:12px;background:none;padding:16px 19px;border-top:1px solid var(--line);transition:background .2s}.locations button>span{color:#78919f;font-size:11px;font-family:monospace}.locations button>div{font-weight:500;font-size:14px;line-height:1.6;flex:1}.locations button small{display:block;font-size:11px;font-weight:400;color:#95aab6}.locations button b{font-weight:400;color:#78919f}.locations button:hover,.locations button.selected{background:rgba(166,243,209,.075)}.locations button.selected b,.locations button.selected>span{color:var(--mint)}.scene-tools{position:fixed;right:24px;top:96px;display:flex;padding:5px;gap:2px}.scene-tools button{background:none;border-radius:6px;width:40px;height:40px;font-size:21px}.scene-tools button:hover{background:#ffffff15}.map-panel{position:fixed;right:24px;bottom:62px;width:240px;padding:14px}.map-title,.map-footer{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#b3c3cb}.map-title{font-size:12px;color:#e4edef}.map-title span:last-child{color:var(--mint);font-size:11px}.map-panel canvas{width:100%;height:auto;display:block;margin:10px 0}.map-footer{font-size:10px;color:#879ea9}.map-footer span:last-child{font-size:9px;letter-spacing:1px}.navigation-hint{position:fixed;bottom:62px;left:24px;display:flex;gap:12px;align-items:center;padding:10px 16px;max-width:calc(100vw - 310px)}.hint-icon{font-size:22px;color:var(--mint)}.navigation-hint p{font-size:12px;line-height:1.6;color:#c0cdd3;margin:0}.credits{position:fixed;bottom:20px;left:24px;right:24px;font-size:11px;color:#20373e;text-shadow:0 1px 8px #ffffffa8;display:flex;gap:8px;flex-wrap:wrap}.credits button{background:none;font-size:inherit;padding:0;color:inherit;text-decoration:underline;text-underline-offset:3px}.credits span{opacity:.5}#crosshair{position:fixed;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:white;box-shadow:0 0 0 2px #1235;pointer-events:none}#walk-start{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;background:var(--panel);border:1px solid var(--line);padding:24px;border-radius:15px;max-width:calc(100% - 40px)}.primary{background:var(--mint);color:#152d27;font-weight:700;border-radius:8px;padding:14px 28px;font-size:16px}#walk-start p{font-size:12px;color:#a8bbc5;line-height:1.7;white-space:nowrap}.touch-controls{position:fixed;left:24px;bottom:84px;text-align:center;touch-action:none}.touch-controls button{width:48px;height:48px;background:var(--panel);border:1px solid var(--line);border-radius:8px;font-size:22px;margin:2px}.touch-controls button:active{background:var(--mint);color:#15242b}#loading{position:fixed;inset:0;background:#15242b;z-index:10;display:flex;align-items:center;justify-content:center;flex-direction:column;transition:opacity .45s}#loading.done{opacity:0;pointer-events:none}.load-mark{font-family:Manrope,sans-serif;font-size:40px;font-weight:800;color:var(--mint);letter-spacing:-3px}#loading h2{font-family:Manrope,sans-serif;font-size:24px;font-weight:500;margin:28px 0 7px}#loading p{color:#9cabb5;font-size:14px;padding:0 20px;text-align:center;line-height:1.7}.load-bar{width:180px;height:2px;background:#ffffff20;margin-top:23px;overflow:hidden}.load-bar i{display:block;width:60%;height:100%;background:var(--mint);animation:loading 1.4s ease-in-out infinite}@keyframes loading{from{transform:translateX(-110%)}to{transform:translateX(180%)}}dialog{background:#142830;color:#dfe9ed;border:1px solid #40555d;border-radius:18px;padding:35px;max-width:540px;width:calc(100% - 32px);max-height:85dvh;box-shadow:0 20px 100px #0006}dialog::backdrop{background:#071c2766;backdrop-filter:blur(7px)}dialog h2{font-family:Manrope,sans-serif;font-size:34px;line-height:1.18;letter-spacing:-1.1px;margin:15px 0 22px}dialog p{font-size:15px;color:#b6c7cf;line-height:1.8}dialog dt{font-size:14px;font-weight:700;margin-top:20px}dialog dd{margin:5px 0 0;color:#a8bdc8;font-size:14px;line-height:1.8}.close{position:absolute;top:17px;right:20px;background:transparent;font-size:27px;color:#94a9b5}.source-links{display:flex;gap:20px;flex-wrap:wrap}.source-links a{color:var(--mint);font-size:13px}.small{font-size:12px!important;color:#839ba9!important}[hidden]{display:none!important}body.walking .locations{opacity:.7;transition:opacity .3s}body.walking .locations:hover{opacity:1}
@media(max-width:850px){.masthead{max-width:calc(100% - 230px)}.masthead p{max-width:250px}.locations{width:230px}.locations button{padding:12px 14px;gap:10px}.locations button small{display:none}.locations>.eyebrow{padding-left:14px}.map-panel{width:200px}.navigation-hint{max-width:calc(100% - 260px)}}
@media(max-width:600px){.masthead{top:12px;left:12px;right:12px;max-width:none;padding:11px 13px;gap:11px}.masthead h1{font-size:17px}.masthead p{font-size:11px;max-width:none}.city-mark{font-size:16px;padding:10px 7px}.edition{display:none}.mode-switch{top:105px;left:12px;right:auto}.mode-switch button{font-size:13px;padding:10px 13px}.scene-tools{top:105px;right:12px}.scene-tools button{width:35px;height:35px}.locations{left:12px;right:12px;top:auto;bottom:64px;width:auto;padding:0;display:flex;overflow-x:auto;scrollbar-width:none;border-radius:9px}.locations>.eyebrow{display:none}.locations button{width:auto;flex:1;min-width:95px;display:block;text-align:center;padding:12px 8px;border-top:0;border-right:1px solid var(--line)}.locations button>span,.locations button b{display:none}.locations button>div{font-size:11px;line-height:1.5}.locations button small{display:none}.map-panel{bottom:70px;right:12px;width:145px;padding:9px}.map-title{font-size:10px}.map-title span:first-child{max-width:90px}.map-footer{font-size:9px}.map-footer span:last-child{display:none}.navigation-hint{bottom:auto;top:168px;left:12px;right:12px;max-width:none;padding:6px 10px;width:fit-content;max-width:calc(100% - 24px)}.navigation-hint p{font-size:11px}.hint-icon{font-size:17px}.credits{bottom:12px;left:12px;right:12px;font-size:9px;gap:4px;line-height:1.6}.credits span:nth-of-type(2),.credits button{display:none}.touch-controls{left:12px;bottom:70px}#walk-start{width:280px;padding:20px}#walk-start p{white-space:normal}.primary{font-size:14px;padding:13px 18px}body.walking .locations{opacity:1}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Keep instructions legible over changing streets and lighting. */
.masthead p,.locations button small,.navigation-hint p,.map-title{font-size:14px}
.locations{top:150px}.locations button small{font-size:12px}.map-footer{font-size:12px}
.credits{background:rgba(16,30,37,.85);color:#b7c8d0;text-shadow:none;right:auto;max-width:calc(100% - 48px);border-radius:6px;padding:6px 9px;font-size:12px}
@media(max-width:850px){.masthead p{font-size:12px}.locations button small{display:none}.navigation-hint p{font-size:13px}.map-title{font-size:12px}}
@media(max-width:600px){.locations{top:auto}.locations button>div{font-size:12px}.masthead p{font-size:12px}.navigation-hint p{font-size:12px}.map-title{font-size:12px}.map-footer{font-size:11px}.credits{max-width:calc(100% - 24px);font-size:10px}.map-title span:first-child{max-width:90px}}
.transit-route{border-top:1px solid var(--line);margin-top:16px;padding-top:14px;min-width:0}
.transit-route h4{margin:0;font-size:15px;color:#e5eef1}
.transit-route label{display:block;color:#bdcdd5;font-size:12px;margin:12px 0 6px}
.transit-route select{display:block;width:100%;max-width:100%;background:#142c36;border:1px solid #536d7a;border-radius:6px;color:#e0ecf1;font:inherit;font-size:12px;padding:9px 7px}
.transit-route canvas{display:block;width:100%;height:auto;margin-top:12px;border-radius:8px;border:1px solid var(--line)}
.transit-route #transit-route-endpoints{white-space:pre-line;color:#dbe6eb;font-size:13px;overflow-wrap:anywhere}
.transit-route #transit-route-status{color:#bed9e5}
.transit-route button{margin-top:10px;padding:10px 12px;min-height:40px;border-radius:6px;background:#ffffff12;color:#d6e9f1;font-size:13px}
.transit-route a{display:inline-block;margin-top:8px;color:#a6f3d1;font-size:12px}
/* Live vehicle labels are a map overlay; panels remain above them. */
#transit-markers,#indego-markers{position:fixed;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.panel,.credits,.touch-controls,#walk-start{z-index:3}#crosshair{z-index:4}#loading{z-index:10}
.transit-marker{position:absolute;left:0;top:0;pointer-events:auto;display:flex;align-items:center;gap:4px;background:#10212a;color:var(--vehicle-color);border:1.5px solid var(--vehicle-color);border-radius:7px;padding:4px 7px;min-height:28px;font-size:12px;font-weight:700;line-height:1.1;box-shadow:0 3px 12px #0007;white-space:nowrap;will-change:transform}
.transit-marker::after{content:'';position:absolute;width:1px;height:7px;background:var(--vehicle-color);left:50%;top:100%}
.transit-marker:hover,.transit-marker.selected{background:var(--vehicle-color);color:#10212a;outline:2px solid #fff;outline-offset:2px}
.transit-marker.stale{opacity:.55}.vehicle-direction{display:inline-block;font-size:13px;line-height:16px;width:12px;text-align:center;opacity:.8}
.marker-icon{display:inline-flex;align-items:center;flex:none;width:18px;height:18px}.marker-icon svg{display:block;width:100%;height:100%}
.indego-charge-count{margin-left:3px;padding-left:6px;border-left:1px solid currentColor;font-variant-numeric:tabular-nums}.indego-dock-count{font-weight:500}.indego-bike-count,.indego-dock-count{font-variant-numeric:tabular-nums}
.live-layers{position:fixed;right:24px;top:166px;width:300px;padding:15px;max-height:calc(100dvh - 430px);overflow:auto}
.transit-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.transit-heading h2{margin:0;font-size:16px;font-weight:700;display:flex;align-items:center;gap:9px}.live-dot{width:7px;height:7px;background:#92a8b4;border-radius:50%}
[data-health=live] .live-dot{background:var(--mint);box-shadow:0 0 9px #a6f3d166}[data-health=warning] .live-dot{background:#ffbd77}
#transit-toggle{padding:5px 11px;border-radius:20px;background:#a6f3d122;color:var(--mint);font-size:14px}#transit-toggle[aria-pressed=false]{color:#afbdc5;background:#ffffff12}
.transit-filters{display:flex;gap:5px;margin-top:13px}.transit-filters button{display:flex;align-items:center;gap:5px;background:#ffffff09;border:1px solid var(--line);border-radius:6px;padding:7px 6px;font-size:14px;flex:1;justify-content:center}.transit-filters button[aria-pressed=false]{opacity:.4}.transit-filters b{font-weight:500;color:#c6d6de}.transit-filters i{display:block;width:6px;height:6px;border-radius:50%;flex-shrink:0}.bus-key{background:#7bc8ff}.trolley-key{background:#8cf0bb}.rail-key{background:#ffbd77}
.transit-panel p{margin:9px 0 0;font-size:12px;line-height:1.5;color:#9db1bd}.transit-panel .transit-note{font-size:12px;color:#acbdc6}.transit-panel #transit-status{font-size:14px;color:#d3e0e6}[data-health=warning] #transit-status{color:#ffcb98}
#transit-detail{position:relative;border-top:1px solid var(--line);margin-top:13px;padding-top:13px}#transit-detail h3{margin:0 22px 0 0;font-size:16px}#transit-detail #transit-destination{font-size:14px;color:#d3e0e6}#transit-close{position:absolute;top:7px;right:-4px;font-size:22px;background:none;padding:0 5px;color:#b3c6d1}#transit-focus{margin-top:11px;background:#a6f3d119;color:var(--mint);font-size:14px;padding:8px 11px;border-radius:6px}
@media(max-height:740px) and (min-width:601px){.live-layers{max-height:calc(100dvh - 340px);width:280px}.map-panel{width:170px;padding:9px}.map-footer{display:none}}
@media(max-width:850px) and (min-width:601px){.live-layers{width:280px}}
@media(max-width:600px){.live-layers{top:222px;right:12px;left:12px;width:auto;padding:10px 12px;max-height:calc(100dvh - 448px)}.transit-heading h2{font-size:14px}.transit-filters{margin-top:8px}.transit-filters button{padding:5px 8px;flex:0 1 auto}.transit-coverage{display:none}.transit-panel .transit-note{font-size:12px;margin-top:6px}.transit-panel #transit-status{font-size:12px;margin-top:5px}.transit-marker{font-size:12px;padding:3px 5px;min-height:28px}.map-panel{bottom:70px;width:140px}.navigation-hint{max-width:calc(100% - 24px)}}
@media(max-height:620px){.live-layers{top:156px;max-height:calc(100dvh - 220px)}.transit-panel .transit-note{display:none}.map-panel{display:none}.navigation-hint{display:none}}
.transit-panel,.indego-panel{position:relative}.indego-panel{border-top:1px solid var(--line);padding-top:14px;margin-top:15px}
#indego-toggle{padding:5px 11px;border-radius:20px;background:#ebdf7c22;color:#ebdf7c;font-size:14px}#indego-toggle[aria-pressed=false]{color:#afbdc5;background:#ffffff12}
.indego-panel p{font-size:12px;line-height:1.5;color:#9db1bd;margin:9px 0 0}.indego-panel #indego-summary{font-size:14px;color:#d3e0e6}.indego-panel[data-health=live] .live-dot{background:#ebdf7c;box-shadow:none}
.indego-marker{border-radius:14px;font-weight:600}.indego-marker:hover{background:#ebdf7c}
#indego-threshold-control{margin-top:12px}#indego-threshold-control label{display:block;font-size:13px;color:#d3e0e6}.indego-threshold-input{display:flex;align-items:center;gap:9px;margin-top:6px;font-size:13px;color:#acbdc6}#indego-charge-threshold{width:86px;min-height:44px;padding:8px;border:1px solid #ffffff25;border-radius:6px;background:#102129;color:#e4edf2;font:inherit;font-size:16px}#indego-charge-threshold:focus-visible{outline:2px solid var(--mint);outline-offset:3px}#indego-charge-threshold:invalid{border-color:#ffc38b}
#indego-detail{position:relative;border-top:1px solid var(--line);margin-top:13px;padding-top:13px}#indego-title{margin:0 22px 0 0;font-size:16px}#indego-close{position:absolute;top:7px;right:-4px;font-size:22px;background:none;padding:0 5px;color:#b3c6d1}#indego-focus{margin-top:11px;background:#ebdf7c19;color:#ebdf7c;font-size:14px;padding:8px 11px;border-radius:6px}
.indego-inventory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 8px;margin:13px 0 0}.indego-inventory dt{font-size:12px;color:#acbdc6}.indego-inventory dd{margin:3px 0 0;font-size:23px;color:#ebdf7c;font-weight:600}
@media(max-width:600px){.live-layers{max-height:calc(100dvh - 490px)}.indego-panel{margin-top:10px;padding-top:10px}.indego-panel p{margin-top:5px}}
@media(max-height:620px){.live-layers{max-height:calc(100dvh - 220px)}}
/* One layer drawer shares space with the live feeds. */
#atlas-markers{position:fixed;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.data-panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-family:Manrope,sans-serif}.data-panel-heading strong{font-size:18px}.data-panel-heading button{background:none;font-size:23px;width:32px;height:28px;color:#c2d3dc}
.data-tabs{display:flex;align-items:center;gap:5px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}.data-tabs button{padding:8px 10px;border-radius:6px;background:transparent;font-size:12px;white-space:nowrap}.data-tabs button[aria-pressed=true]{background:#a6f3d120;color:var(--mint)}.data-tabs a{font-size:11px;color:#b3c5cf;margin-left:auto;white-space:nowrap}
.atlas-meta{font-size:11px!important;line-height:1.55;color:#9eb4c0;margin:8px 0}.atlas-layer{width:100%;display:flex;gap:9px;align-items:center;text-align:left;background:#ffffff05;border:1px solid var(--line);border-radius:8px;padding:10px 8px;margin:6px 0}.atlas-layer[aria-pressed=true]{background:color-mix(in srgb,var(--layer-color) 12%,transparent);border-color:var(--layer-color)}.layer-icon{color:var(--layer-color);font-size:18px;width:24px;text-align:center;flex-shrink:0}.layer-body{flex:1;min-width:0}.layer-body strong{display:block;font-size:13px;font-weight:500}.layer-body small{display:block;font-size:10px;color:#9fb5c0;margin-top:3px;line-height:1.4}.layer-count{font-size:12px;color:#9fb5c0}.atlas-layer[aria-pressed=true] .layer-count{color:var(--layer-color)}
.atlas-actions{display:flex;gap:8px;align-items:center;justify-content:space-between}.atlas-actions button{background:none;color:#b8d4df;font-size:11px;text-decoration:underline;white-space:nowrap;padding:8px 0}.atlas-search-label{display:block;font-size:12px;margin:14px 0 8px;color:#c7d9e1}#atlas-search{width:100%;background:#0d2029;border:1px solid #536875;border-radius:7px;color:#edf5f8;font:inherit;font-size:13px;padding:10px}#atlas-search::placeholder{color:#819cab}
#atlas-results{max-height:180px;overflow:auto}.atlas-result{width:100%;display:block;text-align:left;border-bottom:1px solid var(--line);padding:10px 2px;background:none}.atlas-result span{display:block;font-size:12px;color:#d6e6ee}.atlas-result small{display:block;font-size:10px;color:#8ba8b9;margin-top:3px}.atlas-result:hover{background:#ffffff09}.atlas-empty{font-size:12px;color:#a7bdc9}#atlas-more{font-size:12px;background:#ffffff0b;padding:8px 12px;border-radius:5px;margin-top:8px}
.atlas-marker{position:absolute;top:0;left:0;pointer-events:auto;border-radius:6px;background:#122730;color:var(--layer-color);border:1.5px solid var(--layer-color);font-weight:700;font-size:13px;min-width:28px;min-height:28px;box-shadow:0 3px 8px #0005;will-change:transform}.atlas-marker::after{content:'';position:absolute;left:50%;top:100%;height:5px;width:1px;background:var(--layer-color)}.atlas-marker:hover,.atlas-marker.selected{background:var(--layer-color);color:#142830;outline:2px solid #fff;outline-offset:2px}
#atlas-detail{border-top:2px solid var(--layer-color);padding:14px 0;margin-top:10px;position:relative}#atlas-kind{color:var(--layer-color);font-size:11px;margin:0 20px 5px 0}#atlas-title{font-size:17px;line-height:1.4;margin:0 16px 12px 0}#atlas-close{position:absolute;right:-4px;top:5px;background:none;font-size:24px;color:#b7cbd6}#atlas-facts{margin:0}#atlas-facts dt{font-size:10px;color:#8ba9ba;margin-top:8px}#atlas-facts dd{font-size:12px;line-height:1.6;margin:2px 0 0;color:#d4e3eb}#atlas-focus{background:#a6f3d118;color:var(--mint);border-radius:6px;padding:9px 11px;font-size:12px;margin:14px 0 8px}#atlas-notice,#atlas-source-date{font-size:11px;line-height:1.6;color:#99b2bf}#atlas-source,#atlas-feature-link{font-size:11px;color:var(--mint);display:block;margin-top:7px}
#bike-legend{display:flex;flex-wrap:wrap;gap:7px 12px;margin:12px 0}#bike-legend span{font-size:10px;color:#c3d7e1;display:flex;align-items:center;gap:5px}#bike-legend span::before{content:'';width:14px;border-top:3px solid var(--key)}#bike-legend .dashed::before{border-top-style:dashed}
#city-panel{width:320px;max-height:calc(100dvh - 460px)}#city-panel:has(#city-panel-body[hidden]){max-height:none;padding-bottom:6px}
@media(max-width:850px) and (min-width:601px){#city-panel{width:285px}.layer-body small{display:none}.data-tabs a{font-size:10px}}
@media(max-height:740px) and (min-width:601px){#city-panel{max-height:calc(100dvh - 400px);width:290px}}
@media(max-width:600px){#city-panel{width:auto;max-height:calc(100dvh - 505px)}.layer-body small{display:none}.atlas-layer{padding:7px 8px;margin:4px 0}.data-tabs{padding-bottom:8px;margin-bottom:7px}.data-panel-heading{margin-bottom:4px}.data-panel-heading strong{font-size:15px}.data-tabs a{font-size:12px}.layer-body strong{font-size:12px}.atlas-search-label{margin-top:9px}#atlas-results{max-height:125px}}
@media(max-height:620px){#city-panel{max-height:calc(100dvh - 220px)}}

.atlas-legend{display:flex;flex-wrap:wrap;gap:7px 12px;margin:10px 3px 14px}.atlas-legend strong{font-size:10px;color:#b3cbd7;flex-basis:100%;font-weight:500}.atlas-legend span{font-size:10px;color:#b3cbd7;display:flex;align-items:center;gap:5px}.atlas-legend span::before{content:'';width:8px;height:8px;background:var(--key);border-radius:50%}

/* Live aircraft use overhead positions, independent of their reported altitude. */
#aircraft-markers{position:fixed;inset:0;pointer-events:none;z-index:2;overflow:hidden}.historic-view #aircraft-markers{display:none!important}
.aircraft-marker{pointer-events:auto;gap:6px;border-color:#d4bcff90}.aircraft-marker::after{display:none}.aircraft-marker .marker-icon{transform-origin:50% 50%}
.aircraft-panel{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.aircraft-panel h2{font-size:16px;margin:0}.aircraft-panel p{font-size:12px;line-height:1.6;color:#b5c8d3}.aircraft-panel a{color:#d4bcff}.aircraft-panel[data-health=live] .live-dot{background:#d4bcff}.aircraft-panel[data-health=warning] .live-dot{background:#ffbd87}.aircraft-panel[data-health=off] .live-dot{background:#73858e}
#aircraft-toggle,#aircraft-focus{min-height:44px;padding:8px 12px;border-radius:6px;background:#d4bcff14;color:#d4bcff;font-size:13px}#aircraft-toggle[aria-pressed=true]{background:#d4bcff2b}#aircraft-focus:disabled{opacity:.65;cursor:default}#aircraft-status{margin:6px 0 12px}#aircraft-summary{color:#d8c8f4}
#aircraft-overview{width:100%;height:auto;display:block;border:1px solid #ffffff15;border-radius:8px;cursor:pointer}#aircraft-detail{position:relative;padding:14px 0;border-block:1px solid var(--line);margin-top:14px}#aircraft-title{font-size:20px;color:#e1d3ff;margin:0}#aircraft-identity{overflow-wrap:anywhere;margin:5px 0 12px}.aircraft-facts{display:grid;grid-template-columns:1fr 1fr;gap:14px 8px;margin:0}.aircraft-facts dt{font-size:11px;color:#a9becb}.aircraft-facts dd{margin:4px 0 0;font-size:16px;font-variant-numeric:tabular-nums}.aircraft-list-heading{font-size:13px;margin:17px 0 8px}#aircraft-list{max-height:210px;overflow-y:auto;overscroll-behavior:contain;display:grid;gap:5px}.aircraft-row{min-height:44px;text-align:left;border:1px solid #ffffff12;border-radius:6px;background:#ffffff05;padding:8px 10px;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.aircraft-row:hover,.aircraft-row[aria-pressed=true]{border-color:#d4bcff;background:#d4bcff17}.aircraft-note{font-size:11px!important}
#aircraft-close{display:none}#city-panel[data-detail=""] #aircraft-detail{display:none}#city-panel[data-detail="transit"] #aircraft-panel,#city-panel[data-detail="indego"] #aircraft-panel{display:none}
#city-panel[data-detail="aircraft"] #atlas-view>:not(#live-group),#city-panel[data-detail="aircraft"] #live-group>summary,#city-panel[data-detail="aircraft"] #transit-panel,#city-panel[data-detail="aircraft"] #indego-panel,#city-panel[data-detail="aircraft"] #aircraft-panel>.transit-heading{display:none}
#city-panel[data-detail="aircraft"] #live-group{padding:0;border:0;background:none}#city-panel[data-detail="aircraft"] #aircraft-panel{border:0;margin:0;padding:0}

/* The historic scan is a separate dated view, preserving today's layer choices. */
.map-years{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}.map-years>strong{font-size:12px;color:#c6d9e1}.map-year-buttons{display:flex;gap:6px;margin-top:8px}.map-year-buttons button{flex:1;padding:9px 7px;font-size:12px;border:1px solid var(--line);border-radius:7px;background:#ffffff06}.map-year-buttons button[aria-pressed=true]{background:#e6cf9320;color:#e6cf93;border-color:#c6b581}.map-years details{font-size:10px;line-height:1.5;color:#9eb4c0}.map-years summary{cursor:pointer}.map-years details a{color:#d7c798}.map-years details p{margin:7px 0}#map-year-error{font-size:11px;line-height:1.5;color:#ffbf87}#map-year-error:empty{display:none}
#historic-banner{position:fixed;top:94px;left:50%;transform:translateX(-50%);padding:12px 16px;text-align:center;max-width:calc(100% - 48px)}#historic-banner strong{display:block;font-size:15px;color:#e6cf93}#historic-banner span{display:block;font-size:11px;color:#b6c7cc;margin:5px 0}#historic-banner button{font-size:12px;background:none;color:#e6cf93;text-decoration:underline;padding:3px}
.historic-view #transit-markers,.historic-view #indego-markers,.historic-view #atlas-markers,.historic-view .map-panel{display:none!important}.historic-view .scene-tools #light{visibility:hidden}
@media(max-width:850px){#historic-banner{top:auto;bottom:20px;left:12px;transform:none;max-width:calc(100% - 24px);padding:10px 12px}.historic-view .navigation-hint,.historic-view .credits{display:none}}
@media(max-width:600px){#historic-banner{bottom:14px;right:12px}.historic-view .locations{display:none}.map-years{padding-bottom:8px;margin-bottom:8px}.map-years .atlas-meta{font-size:10px!important}}

#historic-banner>a{display:block;color:#b6c7cc;font-size:10px;margin:6px 0}.historic-view .credits{display:none}

.expansion-place{display:block;width:100%;text-align:left;border:1px solid #a6f3d14d;background:#a6f3d10c;border-radius:8px;padding:11px;margin:5px 0 14px}.expansion-place strong{font-size:13px;font-weight:600;color:var(--mint)}.expansion-place span{display:block;font-size:12px;color:#9eb4c0;margin-top:5px}.expansion-place.selected{border-color:var(--mint);background:#a6f3d125}

.transit-marker.bus-near{background:#10212acc;font-size:12px;padding:3px 6px;border-radius:4px;min-height:24px}.transit-marker.bus-near::after{height:4px}
.data-tabs{flex-wrap:wrap}.data-tabs button{font-size:14px;padding:8px}.data-tabs a{font-size:12px}
.building-intro{font-size:14px;line-height:1.55;color:#d5e5ed;margin:0 0 14px}.building-label{display:block;font-size:14px;color:#d2e1e9;margin:12px 0 7px}
#building-search,#building-account{width:100%;min-width:0;font:inherit;font-size:14px;color:#e4edf2;background:#10252f;border:1px solid #5a7381;border-radius:7px;padding:10px}#building-account{white-space:normal}
.building-note{font-size:12px;line-height:1.6;color:#a8bfcd;margin:10px 0}.building-warning{color:#f4c293;font-size:14px;line-height:1.5}
.building-result{display:block;width:100%;text-align:left;background:#ffffff08;border-bottom:1px solid var(--line);padding:10px;font-size:14px}
#building-detail{border-top:2px solid #ffd98a;position:relative;margin-top:14px;padding-top:15px}#building-title{font-size:18px;line-height:1.4;margin:0 20px 14px 0}#building-close{position:absolute;right:-3px;top:8px;background:none;font-size:24px;color:#c6d5dd}
.building-links{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}.building-links a,.building-links button,#building-retry,.building-section>a{font-size:14px;color:#ffd98a;background:none;line-height:1.5;text-align:left}.building-links button,#building-retry{border:1px solid #ffd98a44;padding:7px;border-radius:6px}
.building-facts{margin:15px 0;display:grid;gap:10px}.building-facts dt{font-size:12px;color:#a0b9c8}.building-facts dd{font-size:14px;line-height:1.5;margin:3px 0 0;overflow-wrap:anywhere}
.building-section{border-top:1px solid #bfd5e126;padding:14px 0}.building-section summary{font-size:14px;color:#e0edf3;cursor:pointer;line-height:1.5;font-weight:600}.building-record{padding:12px 0;border-bottom:1px solid #bfd5e114}.building-record strong{font-size:14px;font-weight:500;line-height:1.5;display:block}.building-record p{font-size:12px;color:#a8bfcd;line-height:1.6;margin:6px 0}.building-record a{display:block;color:#a6f3d1;font-size:14px;line-height:1.6;margin:8px 0;overflow-wrap:anywhere}.building-more{background:#ffffff0b;padding:9px 12px;font-size:14px;margin:12px 0;border-radius:6px}
#city-panel:has(#buildings-view:not([hidden])){max-height:calc(100dvh - 205px);width:370px}
body:has(#buildings-view:not([hidden])) .map-panel,#city-panel:has(#buildings-view:not([hidden])) .map-years{display:none}
@media(max-width:850px) and (min-width:601px){#city-panel:has(#buildings-view:not([hidden])){width:330px}}
@media(max-width:600px){#city-panel:has(#buildings-view:not([hidden])){width:auto;max-height:calc(100dvh - 330px)}.data-tabs a{margin-left:0}.data-tabs{gap:4px}.data-tabs button{padding:7px 9px}.building-links{gap:12px}}

/* Avoid re-blurring the moving WebGL scene behind every panel on touch devices. */
.touch-rendering .panel{background:#15262f;backdrop-filter:none;-webkit-backdrop-filter:none}
.touch-rendering dialog::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none}
/* Camera navigation extends the existing map controls without covering the scene. */
#world canvas{cursor:grab;outline:none}#world canvas:active{cursor:grabbing}.walking #world canvas{cursor:crosshair}
#controls-help{background:#ffffff12;border:1px solid var(--line);border-radius:6px;font-size:13px;padding:7px 10px;white-space:nowrap;color:var(--mint)}
#north-up{color:var(--mint);background:transparent;border:1px solid var(--line);border-radius:5px;padding:5px 7px;font-size:12px;white-space:nowrap}
.navigation-hint{gap:10px}.navigation-hint p{max-width:480px}.masthead{max-width:calc(100% - 270px)}
#navigation-help{max-width:610px}#navigation-help h2{font-size:30px}.control-guide dd{font-size:14px}.control-guide strong{color:#e6f3ec}
.trackpad-setting{display:flex;align-items:flex-start;gap:12px;padding:16px 0;margin-top:20px;border-top:1px solid var(--line);font-size:14px;line-height:1.6}.trackpad-setting input{margin-top:6px;accent-color:var(--mint);width:18px;height:18px;flex:none}.trackpad-setting small{display:block;color:#a8bdc8;font-size:13px;line-height:1.6}
@media(max-width:850px) and (min-width:601px){.masthead{max-width:calc(100% - 230px)}.masthead h1{font-size:16px}.mode-switch button{padding:13px 12px}.masthead .city-mark{display:none}.edition{display:none}}
@media(max-width:600px){.masthead{max-width:none}.mode-switch button{padding:10px 10px}.navigation-hint{width:calc(100% - 24px);max-width:none;align-items:center}.navigation-hint p{font-size:12px;line-height:1.5}.hint-icon{display:none}#controls-help{margin-left:auto;font-size:12px;padding:8px}.live-layers{top:237px}#city-panel{max-height:calc(100dvh - 520px)}.touch-controls button{width:42px;height:42px}.touch-controls{bottom:70px}#navigation-help{padding:26px 22px}.control-guide dd{font-size:14px}}
@media(max-width:380px){.mode-switch button{font-size:12px;padding:10px 7px}.scene-tools button{width:30px}.navigation-hint p{font-size:11px}.live-layers{top:243px}}

/* A map-first shell: a compact command bar and one optional inspector. */
:root{--edge:16px;--sheet-height:52dvh}
#world canvas{touch-action:none}
.command-bar{position:fixed;z-index:5;left:max(var(--edge),env(safe-area-inset-left));top:max(var(--edge),env(safe-area-inset-top));display:flex;align-items:center;padding:4px 5px 4px 16px;gap:10px;background:#15262f;backdrop-filter:none}
.command-bar h1{font-family:Manrope,sans-serif;font-size:16px;letter-spacing:-.4px;margin:0 8px 0 0;font-weight:700}
.command-bar button{height:44px;border-radius:8px;padding:0 16px;background:transparent;font-size:14px}
.command-bar #more-toggle{font-size:24px;width:44px;padding:0}
#more-panel{position:fixed;z-index:6;left:max(var(--edge),env(safe-area-inset-left));top:calc(max(var(--edge),env(safe-area-inset-top)) + 64px);width:300px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 100px - env(safe-area-inset-bottom));overflow:auto;padding:8px;background:#15262f;backdrop-filter:none;overscroll-behavior:contain}
#more-panel>button,#more-panel>a{display:flex;align-items:center;justify-content:space-between;text-decoration:none;width:100%;min-height:44px;padding:10px 12px;background:transparent;text-align:left;border-radius:6px;font-size:14px;color:#e4edf2}
#more-panel>button:hover,#more-panel>a:hover{background:#ffffff0d}#more-panel button[aria-pressed=true]{background:#a6f3d119;color:var(--mint)}#more-panel>button span{color:#9eb3bd;font-size:12px}
#more-panel .map-years{margin:6px 0;padding:12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}#more-panel summary{cursor:pointer;font-size:14px;line-height:1.6}#more-panel p{font-size:12px;line-height:1.6;color:#b7c8d0}
#view-tools{border-top:1px solid var(--line);padding:8px 4px}.camera-buttons{display:flex;gap:4px;margin:4px 0}.camera-buttons button{flex:1;min-height:44px;background:#ffffff0c;border-radius:6px;font-size:13px}
.map-navigation{position:fixed;z-index:4;right:max(var(--edge),env(safe-area-inset-right));bottom:calc(48px + env(safe-area-inset-bottom));display:flex;flex-direction:column;background:#15262f;backdrop-filter:none;overflow:hidden;padding:3px}
.map-navigation button,.map-navigation #north-up{width:44px;height:44px;background:transparent;border:0;border-radius:6px;font-size:23px;color:#e4edf2;padding:0}
.map-navigation #north-up{font-size:14px;color:var(--mint);border-bottom:1px solid var(--line);border-radius:0}.map-navigation button:hover{background:#ffffff0e}
.map-navigation #map-controls-help{font-size:19px;border-top:1px solid var(--line);border-radius:0}
body.drawer-open .map-navigation{right:402px}
#map-data-toggle{display:flex;position:fixed;z-index:5;left:max(var(--edge),env(safe-area-inset-left));bottom:calc(48px + env(safe-area-inset-bottom));min-height:44px;padding:0 14px;align-items:center;gap:16px;font-size:14px;font-weight:600;background:#15262f;backdrop-filter:none}#map-data-toggle span{font-size:20px;color:var(--mint)}
#city-panel,#city-panel:has(#buildings-view:not([hidden])){position:fixed;z-index:5;top:var(--edge);right:var(--edge);bottom:var(--edge);left:auto;width:370px;max-width:calc(100vw - 32px);max-height:none;padding:0;display:flex;flex-direction:column;overflow:hidden;background:#15262f;backdrop-filter:none}
.drawer-heading{display:flex;align-items:center;gap:4px;padding:10px 10px 10px 18px;border-bottom:1px solid var(--line);flex:none}.drawer-heading h2{font-size:16px;line-height:1.4;margin:0;flex:1;font-weight:600;outline:none}
.drawer-heading button{flex:none;min-width:44px;min-height:44px;background:none;border-radius:6px;color:#c7d7df}.drawer-heading #drawer-close{font-size:26px}.drawer-heading #drawer-back{font-size:22px}.drawer-heading #drawer-expand{display:none;font-size:13px}
#city-panel-body{padding:14px 18px 24px;overflow:auto;min-height:0;overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-y}
#city-panel .data-tabs{position:sticky;top:-14px;padding:8px 0 12px;background:#15262f;z-index:1;gap:5px;flex-wrap:nowrap}.data-tabs button{min-height:44px;flex:1;font-size:14px}.layer-body strong{font-size:14px}.layer-body small{display:block;font-size:12px}.atlas-layer{min-height:54px;padding:10px}.atlas-meta{font-size:12px!important}.atlas-search-label,.building-label{font-size:14px}#atlas-search,#building-search,#building-account{font-size:16px;min-height:44px}#atlas-results{max-height:none;overflow:visible}.atlas-result{min-height:48px}.atlas-result span{font-size:14px}.atlas-result small{font-size:12px}#atlas-more,.atlas-actions button{min-height:44px;font-size:13px}
#city-panel:not([data-detail=""]) .data-tabs{display:none}
#city-panel[data-detail=""] #atlas-detail,#city-panel[data-detail=""] #building-detail,#city-panel[data-detail=""] #transit-detail,#city-panel[data-detail=""] #indego-detail{display:none}
#city-panel[data-detail="atlas"] #atlas-view>:not(#atlas-detail),#city-panel[data-detail="buildings"] #buildings-view>:not(#building-detail){display:none}
#city-panel[data-detail="indego"] #transit-panel,#city-panel[data-detail="transit"] #indego-panel{display:none}
#city-panel[data-detail="indego"] #indego-panel>.transit-heading,#city-panel[data-detail="indego"] #indego-controls,#city-panel[data-detail="indego"] #indego-status,#city-panel[data-detail="transit"] #transit-panel>.transit-heading,#city-panel[data-detail="transit"] #transit-controls,#city-panel[data-detail="transit"] #transit-status{display:none}
#city-panel:not([data-detail=""]) #atlas-detail,#city-panel:not([data-detail=""]) #building-detail,#city-panel:not([data-detail=""]) #transit-detail,#city-panel:not([data-detail=""]) #indego-detail,#city-panel[data-detail="indego"] #indego-panel{border-top:0;margin-top:0;padding-top:0}
#atlas-close,#building-close,#transit-close,#indego-close{display:none}
#transit-toggle,#indego-toggle,#transit-focus,#indego-focus,.building-links button,#building-retry,.map-year-buttons button{min-height:44px}
#atlas-facts dt{font-size:12px}#atlas-facts dd{font-size:14px}#atlas-focus,#atlas-source,#atlas-feature-link{font-size:14px;min-height:44px;line-height:1.6}#atlas-title,#building-title{font-size:20px}
#location-map{right:82px;bottom:48px;width:190px;z-index:3;background:#15262f;backdrop-filter:none}body.drawer-open #location-map{display:none!important}body:has(#buildings-view:not([hidden])) #location-map{display:block}
#hint.navigation-hint{position:fixed;z-index:4;left:16px;right:auto;top:auto;bottom:54px;max-width:min(470px,calc(100vw - 96px));width:auto;gap:12px;padding:10px 8px 10px 14px;background:#15262f;backdrop-filter:none}#hint p{font-size:13px;line-height:1.6}#hint-dismiss{min-width:44px;min-height:44px;font-size:22px;background:transparent}body.drawer-open #hint{display:none}
.credits{z-index:3;left:max(12px,env(safe-area-inset-left));right:auto;bottom:calc(10px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px);padding:3px 6px;background:#15262fe8;font-size:11px;border-radius:4px}.credits #about-link{display:block;min-height:24px;font-size:11px;text-decoration:none}
#historic-banner{z-index:4;top:82px;bottom:auto;left:16px;right:auto;transform:none;max-width:calc(100vw - 32px);padding:10px 12px;text-align:left;background:#15262f;backdrop-filter:none}#historic-banner strong{display:inline;font-size:14px;margin-right:12px}#historic-banner button{min-height:32px;font-size:14px}#historic-banner>a{font-size:11px;margin:4px 0 0}.historic-view .credits{display:none}
@media(max-width:700px){
 :root{--edge:12px}
 .command-bar{padding:0;gap:0}.command-bar h1{display:none}.command-bar button{padding:0}
 #more-panel{top:calc(max(var(--edge),env(safe-area-inset-top)) + 56px)}
 #map-data-toggle{display:flex}body.drawer-open #map-data-toggle,.street-active #map-data-toggle,.street-placing #map-data-toggle{display:none}
 .drawer-heading #drawer-close{font-size:14px;padding:0 10px}
 #city-panel,#city-panel:has(#buildings-view:not([hidden])){left:0;right:0;top:auto;bottom:0;width:100%;max-width:none;height:var(--sheet-height);max-height:calc(100dvh - 84px - env(safe-area-inset-top));border-radius:18px 18px 0 0;border-bottom:0}
 #city-panel.expanded,#city-panel.expanded:has(#buildings-view:not([hidden])){height:calc(100dvh - 84px - env(safe-area-inset-top))}
 #city-panel-body{padding-bottom:calc(24px + env(safe-area-inset-bottom))}.drawer-heading #drawer-expand{display:block}
 body.drawer-open .map-navigation{right:12px;bottom:calc(var(--sheet-height) + 12px);flex-direction:row}
 body.drawer-open:has(#city-panel.expanded) .map-navigation{display:none}
 #hint.navigation-hint{left:12px;bottom:calc(104px + env(safe-area-inset-bottom));max-width:calc(100vw - 86px)}
 #location-map{right:76px;bottom:54px;width:150px}
 .transit-filters button{min-height:44px}.transit-heading h2{font-size:16px}.indego-panel p,.transit-panel p{font-size:13px}
}
@media(max-width:360px){.command-bar{max-width:calc(100vw - 24px)}.command-bar h1{font-size:14px;margin-right:2px}.command-bar button{padding:0 8px}#city-panel-body{padding-left:14px;padding-right:14px}}

.photo-facade-list{margin:.75rem 0;padding:.65rem .75rem;border:1px solid #ffffff1c;border-radius:.6rem;font-size:.875rem}.photo-facade-list summary{cursor:pointer}.photo-facade-list .building-links{display:grid;gap:.4rem}.photo-facade-list button{text-align:left}.photo-facade-list p{line-height:1.5}#city-panel[data-detail="buildings"] .photo-facade-list{display:none}

/* Incident records share the existing inspector; no persistent extra map panel. */
#incident-markers{position:fixed;inset:0;pointer-events:none;z-index:2;overflow:hidden}.historic-view #incident-markers{display:none!important}
.incident-marker{position:absolute;left:0;top:0;pointer-events:auto;min-width:36px;min-height:36px;padding:6px 9px;border-radius:18px;background:#15262f;color:var(--incident-color);border:2px solid var(--incident-color);font-size:13px;font-weight:700;box-shadow:0 2px 5px #0005;will-change:transform}.incident-marker:hover,.incident-marker:focus-visible{background:var(--incident-color);color:#15262f;outline:2px solid white}
#city-panel .data-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px}.data-tabs button{padding:8px 3px;font-size:14px;min-width:0}
.incident-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.incident-heading h3{font-size:18px;margin:4px 0}.incident-heading button{min-height:44px;min-width:70px;border-radius:7px;background:#a6f3d11c;color:var(--mint);font-size:14px}.incident-heading button[aria-pressed=true]{background:var(--mint);color:#15262f}
.incident-label{display:block;font-size:14px;line-height:1.5;margin:14px 0 5px}#incidents-view select,#incidents-view input{display:block;width:100%;min-width:0;min-height:44px;border:1px solid #ffffff25;border-radius:6px;background:#102129;color:#e4edf2;font:inherit;font-size:16px;padding:8px;margin-top:5px;box-sizing:border-box;color-scheme:dark}
.incident-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.incident-date-grid label{font-size:14px;min-width:0}.incident-date-grid input{padding:7px 3px!important;font-size:14px!important}
.incident-presets{display:flex;gap:4px;margin-top:5px}.incident-presets button{flex:1;background:#ffffff0a;min-height:36px;border-radius:5px;font-size:13px}
.incident-note{font-size:13px;line-height:1.6;color:#b7c8d0;margin:10px 0;overflow-wrap:anywhere}.incident-action{min-height:44px;padding:8px 12px;border-radius:6px;background:#ffffff0e;color:#d8e8ec;font-size:14px}.incident-action:disabled{opacity:.55}
.incident-result{display:block;width:100%;padding:12px 0;border-bottom:1px solid var(--line);background:none;text-align:left;min-height:52px}.incident-result strong{display:block;font-size:14px;line-height:1.5;font-weight:500;overflow-wrap:anywhere}.incident-result span{display:block;font-size:12px;color:#a8bec8;line-height:1.5;margin-top:3px}.incident-result:hover{background:#ffffff08}
.incident-section{border:1px solid var(--line);padding:10px;border-radius:7px;margin:12px 0}.incident-section summary{cursor:pointer;font-size:14px;line-height:1.5}.incident-section a,[data-field="incident-detail-source"]{font-size:14px;line-height:1.6;color:var(--mint)}
.incident-facts{margin:14px 0;display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,1.5fr);gap:8px 12px}.incident-facts dt{font-size:13px;color:#9eb3bd}.incident-facts dd{margin:0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.incident-narrative{font-size:16px;line-height:1.6;white-space:pre-wrap}
[data-field="incident-title"]{font-size:20px;line-height:1.4;margin:8px 0 16px}[data-field="incident-detail-body"]>p{font-size:14px;line-height:1.6}.incident-section .incident-facts+.incident-facts{border-top:1px solid var(--line);padding-top:12px}
[data-field="incident-legend"]::before{content:'';display:block;height:8px;margin-bottom:6px;border-radius:4px;background:linear-gradient(to right,#15262f,var(--incident-color))}
#city-panel[data-detail=""] [data-field="incident-detail"]{display:none}#city-panel[data-detail="incidents"] .incident-layer-view>:not([data-field="incident-detail"]){display:none}
@media(pointer:coarse){.incident-marker{min-width:42px;min-height:42px}}

.data-layer-group{margin:8px 0 14px;border:1px solid #405269;border-radius:10px;padding:12px;background:#172638}.data-layer-group>summary{cursor:pointer;font-size:16px;font-weight:650;min-height:32px}.data-layer-group>summary span{display:block;font-weight:400;font-size:13px;color:#b9c9da;margin:5px 0 0 18px}.data-layer-group .atlas-layer{width:100%}.data-layer-group .atlas-meta{line-height:1.5}.data-layer-group #parking-retry,.data-layer-group #food-retry{padding:10px 14px}
#atlas-record-scope{width:100%;background:#0d2029;border:1px solid #536875;border-radius:7px;color:#edf5f8;font:inherit;font-size:16px;min-height:44px;padding:10px}

.parking-tickets{width:100%;text-align:left;padding:12px 0;font-size:14px;background:transparent;color:var(--mint)}

/* One layer picker, with selected records and per-layer filters in the same inspector. */
.layers-intro{font-size:14px;line-height:1.5;color:#b7c8d0;margin:2px 0 14px}
#city-panel[data-detail=""] #incidents-view{display:none}
#city-panel[data-detail="incidents"] #atlas-view>:not(#incidents-view),#city-panel[data-detail="incident-layer"] #atlas-view>:not(#incidents-view){display:none}
#city-panel[data-detail="incident-layer"] [data-field="incident-detail"]{display:none}
#city-panel[data-detail="transit"] #atlas-view>:not(#live-group),#city-panel[data-detail="indego"] #atlas-view>:not(#live-group){display:none}
#city-panel[data-detail="transit"] #live-group>summary,#city-panel[data-detail="indego"] #live-group>summary{display:none}
#city-panel[data-detail="transit"] #live-group,#city-panel[data-detail="indego"] #live-group{padding:0;border:0;background:none}
.incident-layer-row{border-bottom:1px solid var(--line);padding-bottom:6px;margin-bottom:6px}.incident-layer-row:last-child{border-bottom:0;margin-bottom:0}
.incident-layer-row .atlas-layer{margin:0}.incident-layer-settings{display:block;margin-left:auto;background:none;color:#b9c9da;min-height:44px;font-size:13px;padding:8px 10px}
.incident-layer-settings:hover{color:var(--mint)}#live-group .transit-heading h2{font-size:16px}#live-group .transit-heading{flex-wrap:wrap}

.incident-layer-row .layer-icon{width:36px;font-size:14px}

/* Street-level entry adds one person control; placement and walking UI are temporary. */
#walk-person{color:#ffd27a;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}#walk-person:active{cursor:grabbing}.map-navigation #walk-person{color:#ffd27a}#walk-person svg{width:23px;height:30px;vertical-align:middle}#walk-person[aria-pressed=true]{background:#ffd27a25}
#walk-drop-surface{position:fixed;inset:0;z-index:6;touch-action:none;cursor:crosshair;outline:none}.street-placing .map-navigation{z-index:7}
#walk-ghost{position:fixed;left:0;top:0;width:30px;height:40px;z-index:9;pointer-events:none;will-change:transform;color:#ffd27a;filter:drop-shadow(0 2px 3px #0009)}#walk-ghost svg{width:30px;height:40px;position:absolute;bottom:8px;left:-15px}#walk-ghost.invalid{color:#d7e0e4;opacity:.6}
#walk-banner{position:fixed;z-index:8;top:82px;left:16px;display:flex;align-items:center;gap:18px;max-width:min(550px,calc(100vw - 32px));padding:12px 14px;background:#15262f;backdrop-filter:none}#walk-banner strong{font-size:14px}#walk-banner strong span{font-size:11px;font-weight:400;color:#adc0c9;margin-left:7px}#walk-message{font-size:12px;line-height:1.5;color:#c6d7df;margin:5px 0 0}#walk-exit{flex:none;min-height:44px;padding:8px 12px;background:#ffffff0d;border-radius:6px;color:#ffd27a;font-size:13px}
#walk-pad{position:fixed;left:16px;bottom:calc(48px + env(safe-area-inset-bottom));z-index:7;display:grid;grid-template-columns:repeat(3,46px);gap:4px;padding:6px;background:#15262f;backdrop-filter:none;touch-action:none;user-select:none}#walk-pad button{width:46px;height:46px;background:#ffffff0b;border-radius:6px;font-size:23px;touch-action:none}#walk-pad button:active{background:#ffd27a35;color:#ffd27a}#walk-pad button:first-child{grid-column:2;grid-row:1}#walk-pad button:not(:first-child){grid-row:2}
.street-active .map-navigation,.street-active #hint,.street-active #view-tools,.street-active #view-tools-toggle,.historic-view #walk-person{display:none!important}.street-active #more-panel{z-index:10}.street-active #world canvas{cursor:grab}.street-active #world canvas:active{cursor:grabbing}
#walk-drop-surface[hidden],#walk-ghost[hidden],#walk-banner[hidden],#walk-pad[hidden]{display:none!important}
@media(max-width:700px){#walk-banner{left:12px;top:78px;max-width:calc(100vw - 24px);gap:10px;padding:10px 12px}#walk-pad{left:12px}.street-placing .map-navigation{flex-direction:row}}

/* Symbols follow the data's shape; labels are reserved for nearby places. */
.layer-swatch{position:relative;font-size:0!important}.layer-swatch::before{content:"";display:block;background:var(--layer-color);width:14px;height:14px;border-radius:50%}.layer-swatch.line::before{height:4px;width:22px;border-radius:2px;transform:rotate(-24deg)}.layer-swatch.area::before{border-radius:2px;border:1px solid var(--layer-color);background:color-mix(in srgb,var(--layer-color) 25%,transparent)}.layer-swatch.value::before{width:17px;height:17px;border:2px solid #ffffff55}
.atlas-reading-note{font-size:11px;line-height:1.6;color:#b2c5ce;margin:8px 0 2px}.atlas-legend:has(.atlas-reading-note){margin-top:-3px}.atlas-legend>strong{font-size:11px}
.atlas-marker{width:auto!important;min-width:28px;max-width:205px;padding:5px 8px!important;min-height:28px;font-size:11px!important;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:5px!important;background:#142631e8!important;border:1px solid var(--layer-color)!important;color:#f1f7f7!important;box-shadow:0 1px 3px #0006!important}.atlas-marker.atlas-value{border-radius:50px!important;font-variant-numeric:tabular-nums;color:var(--layer-color)!important;font-weight:700}.atlas-marker.atlas-area-label{background:#142631c9!important;border-color:#ffffff30!important;font-size:12px!important}.atlas-marker.selected{outline:2px solid #fff;outline-offset:2px}
#atlas-overlap{border-top:1px solid var(--line);margin-top:12px;padding-top:5px}#atlas-overlap[hidden]{display:none}

.incident-marker.incident-count{min-width:0!important;min-height:0!important;height:18px;line-height:14px;border-radius:3px;padding:2px 4px;background:#142631d9;color:#fff;border:0;border-left:2px solid var(--incident-color);font-size:11px;font-variant-numeric:tabular-nums;box-shadow:none}.incident-count-key{display:flex;gap:4px;margin:8px 0}.incident-count-key span{position:relative;isolation:isolate;flex:1;padding:5px 0;text-align:center;color:#fff;font-size:10px;border:1px solid #ffffff22;border-radius:3px}.incident-count-key span::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--incident-color);opacity:var(--count-opacity)}

#map-legend{position:fixed;z-index:4;left:var(--edge);bottom:calc(48px + env(safe-area-inset-bottom));width:270px;max-width:calc(100vw - 90px);background:#15262feb;backdrop-filter:none;overflow:hidden}#map-legend[hidden]{display:none}#map-legend>summary{padding:10px 12px;cursor:pointer;font-size:12px;min-height:36px;line-height:1.4;color:#edf7f3}#map-legend-body{max-height:240px;overflow:auto;overscroll-behavior:contain;padding:0 12px 8px}#map-legend-body section{padding:8px 0;border-top:1px solid var(--line)}#map-legend-body strong{font-size:12px}.map-key-items{display:flex;flex-wrap:wrap;gap:7px 10px;margin:8px 0}.map-key-item{font-size:10px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.map-key-item::before{content:"";width:14px;height:5px;border-radius:1px;background:var(--key);opacity:var(--key-opacity,1)}.map-key-item.dashed::before{background:repeating-linear-gradient(90deg,var(--key) 0 3px,transparent 3px 5px)}.map-key-note{font-size:10px;line-height:1.55;color:#aebfc8;margin:4px 0}.atlas-legend>span.dashed::before{background:repeating-linear-gradient(90deg,var(--key) 0 3px,transparent 3px 5px)}
.street-active #map-legend{left:auto;right:16px;width:210px}.street-placing #map-legend,.historic-view #map-legend{display:none!important}
@media(max-width:700px){body.drawer-open #map-legend{display:none}#map-legend{left:12px;bottom:calc(104px + env(safe-area-inset-bottom));width:230px}#map-legend-body{max-height:190px}.street-active #map-legend{right:12px;bottom:calc(48px + env(safe-area-inset-bottom));width:190px;max-width:calc(100vw - 195px)}#map-legend>summary{font-size:11px}}

.photo-facade-entry{width:100%}.photo-facade-entry .building-note{font-size:11px;line-height:1.5;margin:6px 0 14px}.photo-credit{display:block}.photo-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* Recent AIS vessel reports share the live transport inspector. */
#maritime-markers{position:fixed;inset:0;pointer-events:none;z-index:2;overflow:hidden}.historic-view #maritime-markers{display:none!important}
.maritime-marker{pointer-events:auto;gap:6px;border-color:#7fdfec90}.maritime-marker::after{display:none}.maritime-marker .marker-icon{transform-origin:50% 50%}
.maritime-panel{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.maritime-panel h2{font-size:16px;margin:0}.maritime-panel p{font-size:12px;line-height:1.6;color:#b5c8d3}.maritime-panel a{color:#7fdfec}.maritime-panel[data-health=live] .live-dot{background:#7fdfec}.maritime-panel[data-health=warning] .live-dot{background:#ffbd87}.maritime-panel[data-health=off] .live-dot{background:#73858e}
#maritime-toggle,#maritime-focus{min-height:44px;padding:8px 12px;border-radius:6px;background:#7fdfec14;color:#7fdfec;font-size:13px}#maritime-toggle[aria-pressed=true]{background:#7fdfec2b}#maritime-focus:disabled{opacity:.65;cursor:default}#maritime-status{margin:6px 0 12px}#maritime-summary{color:#b6f3fa}
#maritime-overview{width:100%;height:auto;display:block;border:1px solid #ffffff15;border-radius:8px;cursor:pointer}#maritime-detail{position:relative;padding:14px 0;border-block:1px solid var(--line);margin-top:14px}#maritime-title{font-size:20px;color:#b6f3fa;margin:0}#maritime-identity{overflow-wrap:anywhere;margin:5px 0 12px}.maritime-facts{display:grid;grid-template-columns:1fr 1fr;gap:14px 8px;margin:0}.maritime-facts dt{font-size:11px;color:#a9becb}.maritime-facts dd{margin:4px 0 0;font-size:16px;font-variant-numeric:tabular-nums}.maritime-list-heading{font-size:13px;margin:17px 0 8px}#maritime-list{max-height:210px;overflow-y:auto;overscroll-behavior:contain;display:grid;gap:5px}.maritime-row{min-height:44px;text-align:left;border:1px solid #ffffff12;border-radius:6px;background:#ffffff05;padding:8px 10px;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.maritime-row:hover,.maritime-row[aria-pressed=true]{border-color:#7fdfec;background:#7fdfec17}.maritime-note{font-size:11px!important}
#maritime-close{display:none}#city-panel[data-detail=""] #maritime-detail{display:none}#city-panel[data-detail="transit"] #maritime-panel,#city-panel[data-detail="indego"] #maritime-panel{display:none}
#city-panel[data-detail="aircraft"] #maritime-panel,#city-panel[data-detail="maritime"] #aircraft-panel{display:none}

#city-panel[data-detail="maritime"] #atlas-view>:not(#live-group),#city-panel[data-detail="maritime"] #live-group>summary,#city-panel[data-detail="maritime"] #transit-panel,#city-panel[data-detail="maritime"] #indego-panel,#city-panel[data-detail="maritime"] #maritime-panel>.transit-heading{display:none}
#city-panel[data-detail="maritime"] #live-group{padding:0;border:0;background:none}#city-panel[data-detail="maritime"] #maritime-panel{border:0;margin:0;padding:0}
.health-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0}.health-controls label{display:flex;align-items:center;gap:7px;font-size:12px}.health-controls input{width:64px;min-height:40px;border:1px solid var(--line);border-radius:5px;background:#10222c;color:#eef7f7;padding:6px;font:inherit}.health-controls button,#health-detail>button:not(.atlas-result){min-height:40px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:#ffffff0b;color:#d5e2e8;font-size:12px}#health-load{background:#ff795e20;border-color:#ff795e66;color:#ffb6a6}.health-controls button:disabled{opacity:.6;cursor:wait}
#health-detail{margin-top:16px;border-top:1px solid var(--line);padding-top:14px;overflow-wrap:anywhere}#health-detail[hidden]{display:none}#health-detail h4{font-size:15px;margin:0 0 8px}#health-detail>a{display:block;margin-top:10px;font-size:12px}#health-detail .atlas-result{width:100%;margin:7px 0}.health-facility{font-size:12px;line-height:1.5;color:#dce9ef}.health-headline{font-size:13px;font-weight:600;color:#ffb6a6}.health-report{border-top:1px solid var(--line);padding:8px 0}.health-report>summary{cursor:pointer;min-height:36px;padding:8px 0;font-size:12px;line-height:1.5}.health-report>a{font-size:12px}.health-findings{list-style:none;padding:0;margin:4px 0 12px}.health-findings li{font-size:12px;line-height:1.65;margin:9px 0;padding-left:10px;border-left:2px solid #ff795e80;color:#d5e2e8}
#health-detail .health-candidate-action{color:var(--mint);font-size:12px;margin-top:7px}
#food-profile-detail{border-bottom:1px solid var(--line);margin:0 0 18px;padding:0 0 16px;font-size:16px;line-height:1.6;overflow-wrap:anywhere}#food-profile-detail[hidden]{display:none}#food-profile-detail p{margin:9px 0}.food-profile-eyebrow{color:var(--mint);font-size:12px}.food-profile-cuisine{font-size:16px;color:#e2edf2}.food-profile-links{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.food-profile-links a{padding:8px 10px;border:1px solid #a6f3d144;border-radius:6px;background:#a6f3d10c;color:var(--mint);font-size:14px;min-height:40px;display:flex;align-items:center}#food-profile-detail h4{font-size:14px;margin:15px 0 3px}.food-profile-hours{white-space:pre-line}.food-profile-menu{margin-top:14px;border-top:1px solid var(--line);padding-top:9px}.food-profile-menu summary,.food-profile-evidence summary,.food-pilot-list>summary{cursor:pointer;min-height:40px;padding:8px 0;font-size:14px}.food-profile-menu ul{list-style:none;padding:0;margin:8px 0}.food-profile-menu li{display:grid;grid-template-columns:1fr auto;gap:0 12px;padding:9px 0;border-bottom:1px solid #ffffff0d}.food-menu-price{font-variant-numeric:tabular-nums;white-space:nowrap;color:#dceae1}.food-profile-menu small{grid-column:1/-1;color:#a8bcc9;font-size:12px}.food-profile-note{font-size:12px;color:#a8bcc9}.food-profile-evidence{font-size:12px;color:#a8bcc9}.food-profile-evidence>a{display:block;margin:8px 0}.food-pilot-list{border-top:1px solid var(--line);margin-top:12px}.food-pilot-list>.atlas-result{width:100%}

/* The data launcher remains available after closing the desktop inspector. */
body.drawer-open #map-data-toggle,.street-active #map-data-toggle,.street-placing #map-data-toggle{display:none}
@media(min-width:701px){#map-data-toggle{left:auto;right:76px}body:not(.drawer-open) #hint.navigation-hint{max-width:calc(100vw - 260px)}}

#road-group>label{display:block;font-size:14px;margin:12px 0 6px}#road-range,#road-refresh{min-height:44px;padding:8px 12px;font-size:14px;max-width:100%;border:1px solid var(--line);border-radius:6px;background:#152a35;color:var(--text)}#road-group .atlas-meta{font-size:14px;line-height:1.5}#road-group a{color:#f7b85c}
#restaurant-detail{border-bottom:1px solid var(--line);margin:0 0 18px;padding:0 0 16px;font-size:16px;line-height:1.6;overflow-wrap:anywhere}#restaurant-detail[hidden]{display:none}#restaurant-detail h4{margin:18px 0 4px}#restaurant-detail p{margin:8px 0}#restaurant-detail>a,#restaurant-detail details>a{display:block;padding:6px 0;min-height:36px}#restaurant-detail .food-profile-menu li p{grid-column:1/-1;font-size:14px;color:#b7c9d2}#restaurant-detail .food-profile-menu button{margin:10px 0;padding:10px 14px}
.food-pilot-list>div>.atlas-result{width:100%}

/* Location is requested only by the arrow; the blue dot stays a constant size. */
#locate-me svg{width:23px;height:23px;vertical-align:middle}.map-navigation #locate-me[data-state=active]{color:#64b0ff;background:#248aff20}.map-navigation #locate-me[data-state=locating]{color:#64b0ff}
#location-status{position:fixed;z-index:5;left:max(12px,env(safe-area-inset-left));bottom:calc(108px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;width:min(330px,calc(100vw - 96px));padding:10px 10px 10px 14px;background:#15262f}
#location-status[hidden]{display:none}#location-message{margin:0;font-size:14px;line-height:1.45;color:#e4edf2}#location-stop{flex:none;width:44px;height:44px;font-size:24px;padding:0}body.drawer-open #location-status{bottom:auto;top:82px}.street-active #location-status{top:170px;bottom:auto}

#restaurant-feedback{border-top:1px solid #ffffff26;margin-top:20px;padding-top:18px}
#restaurant-feedback summary{cursor:pointer;color:#a5ead5;font-weight:600;padding:8px 0}
#restaurant-feedback form{display:grid;gap:14px;margin-top:12px}
#restaurant-feedback label{display:grid;gap:6px;font-size:14px;color:#c1d4dc}
#restaurant-feedback input,#restaurant-feedback textarea,#restaurant-feedback select{box-sizing:border-box;width:100%;min-width:0;font:inherit;color:#e4edf1;background:#152933;border:1px solid #50626b;border-radius:7px;padding:10px}
#restaurant-feedback button{justify-self:start;padding:10px 18px}
#restaurant-feedback p{margin:0;font-size:14px;line-height:1.5}

/* Quiet density annotations share the existing bounded atlas marker pool. */
.atlas-marker.atlas-count{border-radius:50%!important;min-width:30px;min-height:30px;padding:5px!important;font-size:14px!important;color:var(--layer-color)!important;background:#142631ef!important;font-variant-numeric:tabular-nums}
.layer-body .layer-view-status{font-size:14px;color:var(--layer-color);line-height:1.4;margin-top:5px}
.atlas-point-hint{font-size:14px;line-height:1.4;color:#b2c5ce;margin:8px 0}
.atlas-nearest{min-height:44px;padding:8px 12px;font-size:14px;color:#e6f4f5;background:#243b46;border:1px solid #597581;border-radius:6px}
@media(pointer:coarse){.atlas-marker.atlas-count{min-width:44px;min-height:44px}}
