/* Compact municipal atlas: the map remains the main surface. */
:root{--rail:0px;--paper:rgba(255,255,255,.94)}
.map-wash,body.night .map-wash{background:none}
.sidebar,body.night .sidebar{top:116px;left:20px;bottom:auto;width:76px;padding:6px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 24px #15355412}
.brand{position:fixed;top:20px;left:20px;width:300px;height:76px;min-height:0;display:flex;align-items:flex-start;justify-content:center;padding:12px 16px;background:white;border:1px solid #1b3d7115;border-radius:14px;box-shadow:0 5px 24px #15355410}
.brand .city-logo{width:78px;height:47px}.brand small,.rail-rule,.rail-motto{display:none}
.nav-item{width:100%;min-height:59px;align-items:center;justify-content:center;gap:5px;padding:9px 2px;color:var(--muted);font:500 10px Outfit,sans-serif;border-radius:10px;text-align:center}
.nav-item svg{width:21px;height:21px}.nav-item:hover{background:#1b3d7109}
.nav-item.active{background:#1b3d71;color:white}.nav-item.active:before{display:none}.nav-item.active svg{color:#ff91c1}
.rail-help{display:block;align-self:center;margin:6px 0 0;padding:10px 3px;width:100%;border-top:1px solid var(--line);font-size:15px;color:var(--muted)}.rail-help span{font-size:10px;margin-left:4px}
.masthead{left:128px;top:37px;max-width:175px;z-index:6;color:#1b3d71}
.masthead .coordinates,.masthead p,.masthead .intro-rule{display:none}
.masthead h1,body.focused .masthead h1{font:650 23px/1.12 Outfit,sans-serif;letter-spacing:-.65px;margin:0 0 6px;white-space:nowrap}
.masthead h1 br{display:none}.masthead h1 span:before{content:' '}.masthead h1 span,body.night .masthead h1 span{color:#1b3d71}
.masthead h2,body.focused .masthead h2,body.night .masthead h2{font:400 11px/1.3 Outfit,sans-serif;color:#536e92}
.top-motto,.city-facts,.navigation-hint{display:none}
.regional-mark{display:block;top:33px;right:82px;padding:8px 12px;border:0;background:var(--paper);border-radius:9px;z-index:3}.regional-mark b{display:none}.regional-mark small{margin:0;font-size:12px}
.top-tools{top:30px;right:20px;z-index:3}.top-tools>span{display:none}.top-tools button,body.night .top-tools button{width:44px;height:44px;border:1px solid var(--line);border-radius:11px;background:var(--paper);color:var(--ink);padding:12px}
.panel{border-radius:14px;box-shadow:0 5px 24px #15355412}
.places,.drawer{top:92px;right:20px;left:auto;bottom:auto;width:312px;max-height:calc(100dvh - 218px);overflow:auto;overscroll-behavior:contain}
.places{padding:20px 20px 0}.drawer{padding:26px}.place{padding:11px 0;gap:12px}.place img{width:62px;height:58px;border-radius:6px}.place strong{font-size:14px}.place small{font-size:11px}.places>.section-title{font-size:14px;padding-bottom:12px}
.section-title button,.close-drawer{min-width:36px;min-height:36px}.close-drawer{right:10px;top:9px}
.map-tools{right:20px;bottom:145px;width:44px;padding:3px;border-radius:12px;transition:right .2s}.map-tools button{height:38px;font-size:23px}
body:has(.places:not([hidden])) .map-tools,body:has(.drawer:not([hidden])) .map-tools{right:348px}
.time-panel{left:50%;right:auto;bottom:28px;transform:translateX(-50%);width:460px;height:74px;padding:12px 16px;gap:14px;border:1px solid var(--line);border-radius:16px;background:var(--paper)}
.time-title{display:none}.timeline{display:grid;grid-template-columns:80px minmax(0,1fr);column-gap:14px;align-items:center;padding:0}
.time-value{position:static;grid-column:1;grid-row:1 / span 2;transform:none;padding:0;background:none;box-shadow:none;text-align:left;align-items:flex-start;white-space:nowrap}
.time-value output{font:600 22px/1.1 Outfit,sans-serif;font-variant-numeric:tabular-nums}.time-value #time-mood{font-size:9px;line-height:1.3;margin-top:4px}.time-value #sun-symbol{display:none}
.timeline input{grid-column:2;grid-row:1;margin:5px 0 0;height:6px}.timeline input::-webkit-slider-thumb{width:16px;height:16px}.timeline input::-moz-range-thumb{width:12px;height:12px}
.time-ticks{grid-column:2;grid-row:2;height:22px;margin-top:5px}.time-ticks button{font-size:9px;padding:7px 0 3px}.time-ticks button:before,.time-ticks small{display:none}
.play-btn{width:40px;height:40px;border-radius:11px;margin:0;padding:0;font-size:16px}
.map-label,.map-label.defense,.map-label.old{font:550 11px/1.2 Outfit,sans-serif;letter-spacing:0;padding:10px 12px 10px 31px;border-radius:20px;box-shadow:0 3px 12px #15355415}
.map-label small{display:none}.map-label>svg{width:15px;height:19px;top:7px;left:10px}.map-label:after{bottom:-17px;height:17px;width:1px}.map-label:before{bottom:-23px;left:calc(50% - 4px);width:5px;height:5px;border-width:2px}
.map-label.river{font:italic 16px Outfit,sans-serif;letter-spacing:1.3px;padding:0}
.locator{display:block;right:20px;bottom:30px;width:135px;height:87px}.locator-caption{display:none}.locator #minimap-home,.locator canvas{display:block;width:83px;height:72px}.locator #minimap-home{left:0;top:0}.locator .scale{left:6px;bottom:0;gap:3px}.scale i{width:70px}.scale b{font-size:9px}#north{right:0;bottom:7px;padding:7px;min-width:38px}
footer{left:20px;right:20px;bottom:6px;font-size:8px;gap:12px}#stats{max-width:300px}
#building-info{top:116px;left:112px;width:260px;max-height:calc(100dvh - 222px);overflow:auto}
body.night .nav-item:hover{background:#ffffff12}body.night .nav-item.active{background:#2a5288}body.night .time-panel{border-top-color:var(--line)}body.night .map-label{background:#1b3d71ee}
@media(max-width:900px){.locator{display:none}.time-panel{left:calc(50% + 32px);width:430px}.regional-mark{display:none}}
@media(max-width:700px){
 .sidebar,body.night .sidebar{left:12px;right:12px;top:auto;bottom:14px;width:auto;height:64px;display:flex;flex-direction:row;align-items:center;justify-content:space-around;padding:4px;border-radius:16px}
 .brand{top:12px;left:12px;width:243px;height:66px;padding:10px 12px;display:flex;border-radius:12px}.brand .city-logo{width:66px;height:40px}
 .masthead{left:102px;top:26px;max-width:150px}.masthead h1,body.focused .masthead h1{font-size:20px;margin:0 0 5px}.masthead h2,body.focused .masthead h2{font-size:10px}
 .nav-item{width:calc((100% - 40px)/5);min-height:54px;padding:6px 1px;gap:4px;font-size:9px}.nav-item svg{width:20px;height:20px}
 .rail-help{position:static;display:block;width:36px;height:44px;min-width:36px;margin:0;padding:0;border:0;border-left:1px solid var(--line);background:none;color:var(--ink);font-size:18px}.rail-help span{display:none}
 .top-tools{top:22px;right:12px}.top-tools button{width:42px;height:42px}
 .time-panel{left:12px;right:12px;bottom:91px;transform:none;width:auto;height:65px;padding:10px 13px;gap:12px;border-radius:14px}.timeline{grid-template-columns:71px minmax(0,1fr);column-gap:10px}.time-value output{font-size:20px}.time-value #time-mood{font-size:8px}.time-ticks button{font-size:8px}.time-ticks [data-hour="0"]{display:block}.play-btn{width:35px;height:38px;font-size:15px}
 .places,.drawer{left:12px;right:12px;top:91px;bottom:auto;width:auto;max-height:calc(100dvh - 260px);padding:18px 18px 0}.drawer{padding:23px}.places>.section-title{padding-bottom:7px}.place{padding:9px 0}.place img{height:46px;width:55px}.place strong{font-size:13px}.place small{font-size:10px}.all-places{padding:12px 0}
 .map-tools{right:12px;bottom:172px;width:42px}.map-tools button{height:36px}
 .map-label,.map-label.defense,.map-label.old{font-size:10px;padding:9px 10px 9px 27px}.map-label>svg{width:13px;height:17px;left:9px;top:6px}.map-label.river{font-size:14px;padding:0}
 #building-info{left:12px;top:91px;width:min(280px,calc(100% - 76px));max-height:calc(100dvh - 262px)}
 footer{left:14px;right:14px;bottom:2px;font-size:7px}#stats{display:none}footer>span:last-child{margin-left:auto}
}
@media(max-height:540px) and (min-width:701px){.sidebar{top:106px}.nav-item{min-height:44px;padding:5px 2px;gap:2px}.rail-help{margin-top:1px;padding:6px 0}.places,.drawer{top:88px;max-height:calc(100dvh - 180px)}.time-panel{bottom:22px}}
@media(prefers-reduced-motion:reduce){.map-tools{transition:none}}
