:root{font-family:"Segoe UI",Arial,sans-serif;color:#2d382e;background:#eeeae0;font-synthesis:none;--surface:rgba(252,250,244,.94);--border:#dedfd3;--green:#465d48;--muted:#72786c;--shadow:0 7px 34px #3a423412}*{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,canvas:focus-visible{outline:3px solid #be744c;outline-offset:4px}button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}a{color:inherit}button{border:0}button[hidden],[hidden]{display:none!important}#map{position:fixed;inset:0;background:radial-gradient(ellipse at 56% 37%,#faf8ef 0,#e6e6d9 73%,#d3d9c9 100%)}#scene{display:block;width:100%;height:100%;touch-action:none;outline-offset:-4px;cursor:grab}#scene:active{cursor:grabbing}.topbar{position:fixed;top:25px;left:30px;right:30px;display:flex;align-items:center;gap:20px;pointer-events:none}.topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-family:Georgia,"Times New Roman",serif;font-size:25px;letter-spacing:-.7px;line-height:1.12}.brand>svg{width:43px;height:43px}.brand-sub{display:block;font-family:"Segoe UI",sans-serif;font-size:9px;font-weight:600;letter-spacing:2px;color:#7d8274;margin-top:7px}.prototype{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12px;background:var(--surface);border:1px solid #ffffff80;padding:10px 14px;border-radius:30px;color:#687361}.prototype>span{width:6px;height:6px;border-radius:50%;background:#8e9a6a}.round-button{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow)}.intro-panel{position:fixed;top:128px;left:30px;width:282px;padding:26px 25px 19px;background:var(--surface);border:1px solid #ffffffa0;border-radius:4px 4px 24px 4px;box-shadow:var(--shadow);backdrop-filter:blur(15px)}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:650;color:#829174}.intro-panel h1{font-family:Georgia,"Times New Roman",serif;font-size:30px;line-height:1.18;font-weight:400;letter-spacing:-.8px;margin:15px 0}.intro-copy{font-size:12px;line-height:1.75;color:#747b6d;margin:0 0 21px}.facts{font-size:10px;color:#717968;display:grid;gap:5px}.facts b{font-weight:600;color:#465841}.panel-rule{height:1px;background:var(--border);margin:20px 0}.places-title{font-size:9px;letter-spacing:1.6px;font-weight:650;color:#8b927f;margin-bottom:8px}#places{display:flex;flex-direction:column;gap:3px}.place{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:10px 0;background:transparent;font-size:12px}.place:hover{color:#a35d3d}.place-icon{display:grid;place-items:center;width:29px;height:29px;background:#e9eddf;border-radius:50%;font-family:Georgia,serif;font-size:15px;color:#718263}.place svg{width:16px;height:16px}.place .arrow{margin-left:auto;color:#b1b5a5;font-size:17px}.small-note{font-size:10px;color:#8b927f;line-height:1.6;margin:17px 0 0;display:flex;align-items:center;gap:6px}.mini-dot{width:5px;height:5px;background:#9bab7d;border-radius:50%;flex-shrink:0}.map-tools{position:fixed;right:30px;top:112px;display:flex;flex-direction:column;gap:12px}.tool-button{background:var(--surface);width:42px;height:42px;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);border-radius:6px;font-size:23px}.tool-button:hover,.round-button:hover{background:#fffdf7}.zoom-buttons{border-radius:7px;overflow:hidden;box-shadow:var(--shadow)}.zoom-buttons .tool-button{border-radius:0;box-shadow:none}.zoom-buttons .tool-button+button{border-top:1px solid var(--border)}.bottom-bar{position:fixed;bottom:66px;left:50%;transform:translateX(-50%);display:flex;gap:13px;align-items:center;background:var(--surface);border:1px solid #fff9;border-radius:12px;padding:6px 12px 6px 6px;box-shadow:var(--shadow);white-space:nowrap}.view-switch{display:flex;gap:3px}.view-switch button{display:flex;align-items:center;gap:7px;font-size:11px;background:transparent;padding:11px 13px;border-radius:7px;color:#777f6e}.view-switch button svg{width:17px;height:17px}.view-switch button.active{background:#4c634b;color:#fafaf1}.view-options{display:flex;gap:14px;padding-left:11px;border-left:1px solid var(--border)}.text-button{font-size:10px;color:#6d7664;padding:5px 0;background:transparent}.text-button[aria-pressed=true]{color:#aa6145}.text-button span{font-size:17px;vertical-align:-1px;margin-right:3px}.control-hint{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);font-size:10px;color:#8d9583;display:flex;gap:7px;align-items:center;white-space:nowrap;pointer-events:none}.control-hint svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.3}footer{position:fixed;left:30px;right:30px;bottom:17px;display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#8b9481;pointer-events:none}footer a,footer button{pointer-events:auto}footer a{text-decoration:none}footer a:hover{text-decoration:underline}footer button{background:transparent;color:#67775c;padding:0 0 0 10px;font-size:9px;text-decoration:underline;text-underline-offset:3px}.scale{display:flex;flex-direction:column;gap:4px;font-size:9px;text-align:center}.scale i{height:5px;border:1px solid #7f8e72;border-top:0;width:60px}.selection-panel{position:fixed;left:30px;bottom:75px;background:var(--surface);box-shadow:var(--shadow);border:1px solid #fff9;border-radius:4px 20px 4px 4px;padding:23px;width:282px;backdrop-filter:blur(15px)}.selection-panel h2{font:400 23px/1.2 Georgia,serif;margin:12px 0 5px;letter-spacing:-.5px}.selection-panel>p{font-size:11px;color:#808875;line-height:1.6;margin:7px 0}.close-selection{position:absolute;right:10px;top:8px;font-size:24px;background:transparent;color:#8c9582}.selection-facts{display:flex;gap:22px;margin:18px 0}.selection-facts>span{font-size:9px;color:#929a85}.selection-facts strong{display:block;font-size:17px;font-weight:400;color:#4c6042;margin-top:5px}.selection-panel>a{font-size:10px;text-decoration:none;display:flex;justify-content:space-between;color:#687d56;border-top:1px solid var(--border);padding-top:13px;margin-top:14px}.selection-panel .small-note{font-size:9px}#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.map-label{position:absolute;transform:translate(-50%,-100%);padding:5px 8px;border-radius:4px;background:#fcfaf0e8;border:1px solid #ffffffa0;font-size:9px;color:#536447;box-shadow:0 3px 10px #2d3c2720;white-space:nowrap;transition:opacity .15s}.map-label:after{content:"";position:absolute;bottom:-4px;left:calc(50% - 3px);width:6px;height:6px;background:#fcfaf0;transform:rotate(45deg)}.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:#edeede;font-size:12px;color:#7b866c;z-index:10;transition:opacity .6s}.loading-mark{font:26px Georgia,serif;background:#faf9ef;padding:23px;border-radius:24px 5px;color:#718263;animation:breathe 1.8s infinite}@keyframes breathe{50%{transform:translateY(-5px);opacity:.6}}.error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:30px;max-width:400px;background:#fffaf0;border-radius:15px;z-index:20;font-size:13px}.error h2{font:25px Georgia,serif}.error button{background:#4c634b;color:white;padding:10px 14px;border-radius:6px}dialog{max-width:520px;width:calc(100% - 36px);padding:38px;border:1px solid #fff;border-radius:7px 25px;background:#faf9f2;color:#3e4d37;box-shadow:0 20px 120px #26342040}dialog::backdrop{background:#3e4b3b70;backdrop-filter:blur(6px)}dialog h2{font:400 31px/1.2 Georgia,serif;letter-spacing:-.6px;margin:14px 0 20px}dialog p,dialog dd{font-size:12px;line-height:1.8;color:#737d68}dialog dt{font-size:11px;font-weight:600;margin-top:20px}dialog dd{margin:5px 0 0}dialog a{font-size:11px;color:#566c47}dialog .accuracy-note{padding:16px;background:#eef0e5;border-radius:5px;margin:22px 0}dialog .accuracy-note b{font-size:11px}dialog .accuracy-note p{margin:8px 0 0}.dialog-close{position:absolute;right:15px;top:13px;font-size:26px;background:transparent;color:#8a947d}.sheet-heading{display:none}.display-panel,.display-quality{display:contents}
@media(min-width:1500px){.intro-panel{left:45px;top:145px;width:300px;padding:30px}.topbar{left:45px;right:45px}.intro-panel h1{font-size:33px}.intro-copy{font-size:13px}.selection-panel{left:45px}.place{font-size:13px}}
@media(max-height:760px) and (min-width:701px){.intro-panel{top:105px;padding:20px;width:263px}.intro-panel h1{font-size:26px;margin:12px 0}.intro-copy{margin-bottom:13px}.panel-rule{margin:14px 0}.place{padding:7px 0}.small-note{margin-top:12px}.selection-panel{bottom:65px}.intro-panel:has(~.selection-panel:not([hidden])){display:none}}
@media(max-width:950px){.control-hint{bottom:35px;font-size:9px}.control-hint span{max-width:260px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}footer{font-size:8px}.bottom-bar{bottom:69px}.view-options{gap:9px}.text-button{font-size:9px}}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.prototype>#prototype-text{width:auto;height:auto;border-radius:0;background:none}.intro-panel{max-height:calc(100vh - 210px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#bfc7b2 transparent}.life-controls{border-top:1px solid var(--border);margin-top:13px;padding-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:5px}.life-controls button{display:flex;gap:6px;align-items:center;background:transparent;padding:7px 0;font-size:10px;text-align:left;color:#6e7e62}.life-controls #dispatch{grid-column:1/-1;justify-content:space-between;background:#eee8da;border-radius:5px;padding:9px 11px;color:#94634a}.life-dot{width:6px;height:6px;border-radius:50%;background:#b1b7a3}.life-controls button[aria-pressed=true] .life-dot{background:#6c8d52;box-shadow:0 0 0 3px #78944c15}.life-controls #sound{justify-content:flex-end;font-size:9px}.life-controls #sound[aria-pressed=true]{color:#a26240}.fly-button{display:flex;align-items:center;gap:6px;background:#e8ecdf;color:#5c7351;border-radius:6px;padding:10px 11px;font-size:10px;white-space:nowrap}.fly-button svg{width:17px;height:17px}.fly-button[aria-pressed=true]{background:#4c634b;color:#fff9e7}.bottom-bar{gap:8px}.view-options{gap:12px}.flying #map{background:linear-gradient(#cbdadd,#e4ead8 74%)}.flying .scale{visibility:hidden}.flying .intro-panel{display:none}.flying .intro-panel.open{display:block}.flying .control-hint{background:#f8f8edda;padding:7px 11px;border-radius:6px;color:#657659;bottom:25px}.flying .control-hint span{max-width:none}.flying #scene{cursor:crosshair}.flying #scene:active{cursor:grabbing}#flight-pad{position:fixed;left:20px;right:20px;bottom:185px;justify-content:space-between;pointer-events:none}.flight-move{display:grid;grid-template-columns:44px 44px 44px;grid-template-rows:44px 44px;gap:4px}.flight-move button:nth-child(1){grid-column:2}.flight-move button:nth-child(2){grid-column:1;grid-row:2}.flight-move button:nth-child(3){grid-column:2;grid-row:2}.flight-move button:nth-child(4){grid-column:3;grid-row:2}.flight-height{display:flex;flex-direction:column;gap:5px}.flight-move button,.flight-height button{width:44px;height:44px;background:#f5f5e9de;box-shadow:0 2px 10px #29351e19;border-radius:7px;font-size:20px;pointer-events:auto;touch-action:none;color:#60764e}.flight-move button:active,.flight-height button:active{background:#8a9b72;color:white}

@media(min-width:701px){#flight-pad{display:none}.intro-panel .place{padding:6px 0}.intro-panel .small-note{font-size:9px}.intro-panel .intro-copy{margin-bottom:13px}}
@media(max-height:760px) and (min-width:701px){.intro-panel{max-height:calc(100vh - 172px)}.intro-panel .intro-copy{display:none}.intro-panel h1{font-size:25px;margin:11px 0}.intro-panel .panel-rule{margin:12px 0}.intro-panel .place{padding:4px 0}.intro-panel .place-icon{width:26px;height:26px}.life-controls{margin-top:9px;padding-top:6px}.life-controls #dispatch{padding:7px 10px}}




.time-controls{position:fixed;right:88px;bottom:126px;width:268px;display:flex;flex-direction:column-reverse;background:var(--surface);border:1px solid #ffffffa0;border-radius:11px;box-shadow:var(--shadow);color:#4a5d42;z-index:20}
.night-time .brand{color:#e6e8df;text-shadow:0 1px 8px #0a172c55}.night-time .brand-sub{color:#aebcc9}.night-time footer,.night-time footer button{color:#afbecb}.night-time .scale i{border-color:#afbecb}.night-time:not(.flying) .control-hint{color:#a5b5c4}
.time-toggle{display:flex;align-items:center;width:100%;min-height:44px;gap:9px;background:transparent;padding:7px 11px;text-align:left;border-radius:11px}.cycle-icon{font-size:20px;color:#b4894c;line-height:1}.time-heading{display:grid;gap:2px;flex:1;min-width:0}.time-heading>span{font-size:9px;color:#879076}.time-heading strong{font-weight:500;font-size:12px;white-space:nowrap}.time-separator{color:#a8ad99}.cycle-mode{font-size:8px;padding:4px 6px;background:#e3e9d6;border-radius:5px;color:#607548}.time-chevron{font-size:13px;color:#91997d}.time-toggle[aria-expanded=true] .time-chevron{transform:rotate(180deg)}
.time-panel{padding:1px 14px 12px}.time-panel label{font-size:10px;color:#7b856c;display:block;margin-bottom:3px}.time-panel input{display:block;width:100%;accent-color:#8b9e58;cursor:ew-resize;height:20px;margin:3px 0 0}.time-ticks{display:flex;justify-content:space-between;font-size:8px;color:#91987e;margin-bottom:12px}.time-actions{display:flex;gap:6px}.time-actions button{flex:1;background:#eeeddf;border:1px solid transparent;border-radius:5px;padding:8px 4px;font-size:10px;color:#6b795a}.time-actions button[aria-pressed=true]{background:#536e49;color:#fffbea}.time-actions button:hover{border-color:#a7b596}.time-panel p{font-size:9px;line-height:1.5;color:#92967f;margin:9px 0 0}.time-panel p.sun-times{font-size:8px;margin-top:4px;color:#a09575}
.time-panel{max-height:min(300px,calc(100dvh - 215px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;border-bottom:1px solid var(--border);padding-top:10px}
@media(max-width:950px) and (min-width:701px){.time-controls{width:240px;right:87px}}


.time-heading small{font-size:9px;font-weight:400;color:#8a927b;white-space:nowrap}.cycle-tabs{display:flex;gap:4px;padding:4px;background:#e9ecdd;border-radius:6px;margin:2px 0 12px}.cycle-tabs button{flex:1;border-radius:4px;background:transparent;font-size:10px;padding:6px;color:#7a866b}.cycle-tabs button[aria-selected=true]{background:#faf8ed;color:#536a43;box-shadow:0 1px 4px #344b3114}.season-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 10px}.season-heading strong{font:400 22px Georgia,serif;letter-spacing:-.4px}.season-heading span{font-size:10px;color:#92987f}.season-presets{display:flex;gap:4px;margin:0 0 10px}.season-presets button{flex:1;background:#eae9dc;border:1px solid transparent;border-radius:5px;padding:7px 2px;font-size:9px;color:#78846b}.season-presets button[aria-pressed=true]{background:#d9e2c7;border-color:#b7c7a0;color:#4d683e}body[data-season=autumn] #year-slider{accent-color:#ba8252}body[data-season=winter] #year-slider{accent-color:#8aabb8}body[data-season=spring] #year-slider{accent-color:#9ab06b}body[data-season=summer] #year-slider{accent-color:#b7a45b}

.time-heading strong,.time-heading small{overflow:hidden;text-overflow:ellipsis}.cycle-mode,.time-chevron{flex-shrink:0}

body[data-style="painted"] #map{background:radial-gradient(ellipse at 56% 37%,#f6f1df,#e0e6cf 75%,#cfd9c3)}
body[data-style="painted"]{--green:#446341;--surface:rgba(250,247,234,.96);--border:#d9ddc6}
body[data-style="painted"] .view-switch button.active{background:#496a45}
body[data-style="painted"] .loading{background:#e8ead6}
body[data-style="painted"].flying #map{background:linear-gradient(#b7d1da,#e0e8ce 74%)}
@media(max-width:950px){.topbar{gap:10px}.prototype{font-size:10px;padding:8px 11px}}


.scope-description{margin:10px 0 0!important;font-size:10px!important;line-height:1.5}.scope-place[aria-pressed=true]{background:#71865c1b}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.economy-toggle{position:fixed;left:30px;top:89px;z-index:5;display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--surface);border:1px solid #bcc8aa;border-radius:9px;box-shadow:var(--shadow);font-size:11px;color:#526b45;white-space:nowrap}.economy-toggle .eco-icon{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.economy-track{width:25px;height:14px;border-radius:10px;background:#c4cbbb;padding:2px;flex-shrink:0}.economy-track i{display:block;width:10px;height:10px;border-radius:50%;background:#fffdf3;transform:translateX(0);transition:transform .15s}.economy-toggle[aria-checked=true]{border-color:#71915d;background:#e8efdf;color:#3d5e30}.economy-toggle[aria-checked=true] .economy-track{background:#6d8b56}.economy-toggle[aria-checked=true] .economy-track i{transform:translateX(11px)}.economy-toggle:disabled{cursor:progress;opacity:.7}.night-time .economy-toggle{color:#d4dfc6;border-color:#77866b}.night-time .economy-toggle[aria-checked=true]{background:#344634;color:#e1ecd6}.flying .economy-toggle{left:179px;top:93px}
@media(min-width:1500px){.economy-toggle{left:45px;top:101px}}



@media(prefers-reduced-motion:reduce){.economy-track i{transition:none}}


/* Mobile map: one compact header, two primary actions, one sheet at a time. */
@media(max-width:700px),(max-height:500px) and (max-width:1000px){
  :root{--ui-left:max(12px,env(safe-area-inset-left));--ui-right:max(12px,env(safe-area-inset-right));--ui-top:max(12px,env(safe-area-inset-top));--dock-bottom:calc(25px + env(safe-area-inset-bottom));--sheet-bottom:calc(25px + env(safe-area-inset-bottom))}
  body{overscroll-behavior:none}
  .topbar{top:var(--ui-top);left:var(--ui-left);right:var(--ui-right);gap:12px;z-index:10}
  .brand{font-size:21px;gap:8px;letter-spacing:-.5px;min-height:44px}
  .brand>svg{width:34px;height:34px;flex-shrink:0}
  .brand-sub{font-size:6px;letter-spacing:1.5px;margin-top:5px}
  .prototype{display:none}
  .round-button{margin-left:auto;width:44px;height:44px;flex-shrink:0}
  .round-button svg{width:21px;height:21px}
  .time-controls,.flying .time-controls{top:auto;bottom:var(--sheet-bottom);left:var(--ui-left);right:var(--ui-right);width:auto;max-height:none;overflow:visible;border-radius:12px;z-index:20}
  .time-toggle{min-height:44px;padding:7px 10px;gap:9px}
  .cycle-icon{font-size:20px}
  .time-heading{gap:2px}
  .time-heading>span{font-size:9px}
  .time-heading strong{font-size:12px}
  .time-heading small{font-size:10px}
  .cycle-mode{font-size:8px;padding:4px 6px}
  .time-chevron{font-size:15px;margin-left:2px}
  .time-panel{max-height:min(260px,calc(100dvh - 225px - env(safe-area-inset-bottom)));padding:8px 12px}
  .cycle-tabs{margin:0 0 6px;padding:3px}
  .cycle-tabs button{min-height:30px;padding:4px;font-size:11px}
  .time-panel label{font-size:11px}
  .time-panel input{height:32px;touch-action:pan-y}
  .time-ticks{font-size:9px;margin-bottom:6px}
  .time-actions button{min-height:36px;font-size:11px;padding:6px}
  .time-panel p{font-size:10px;line-height:1.4;margin-top:8px}
  .time-panel p.sun-times{font-size:10px}
  #cycle-description,#year-description,#year-settings>.sun-times{display:none}
  .season-heading{display:none}
  .season-presets{gap:5px;margin-bottom:6px}
  .season-presets button{min-height:34px;font-size:11px;padding:5px 2px}
  .intro-panel,.flying .intro-panel,.selection-panel,.display-panel{position:fixed;top:auto;left:var(--ui-left);right:var(--ui-right);bottom:var(--sheet-bottom);width:auto;max-height:calc(100dvh - 175px - env(safe-area-inset-top) - env(safe-area-inset-bottom));margin:0;padding:18px;background:var(--surface);border:1px solid #ffffffb0;border-radius:18px;box-shadow:0 6px 30px #263d2a25;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;z-index:22;backdrop-filter:none}
  .intro-panel,.flying .intro-panel,.display-panel{display:none!important}
  .sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-7px -7px 9px 0}
  .sheet-heading h2{font:400 24px/1.2 Georgia,serif;letter-spacing:-.5px;margin:0}
  .sheet-close{width:44px;height:44px;border-radius:50%;background:#e9ecdf;color:#65765a;font-size:27px;flex-shrink:0}
  .intro-panel>.eyebrow,.intro-panel>h1,.intro-panel>.intro-copy{display:none}
  .facts{display:flex;flex-wrap:wrap;gap:5px 15px;font-size:11px}
  .scope-description{font-size:11px!important;margin-top:7px!important}
  .panel-rule{margin:15px 0 12px}
  .places-title{font-size:10px;margin-bottom:9px}
  #places{gap:3px}
  .intro-panel .place{min-height:46px;padding:7px 6px;font-size:13px;gap:10px;border-radius:8px}
  .place-icon{width:31px;height:31px;flex-shrink:0}
  .place-icon svg{width:18px;height:18px}
  .scope-place[aria-pressed=true]{background:#71865c20}
  .life-controls{margin-top:13px;padding-top:10px;gap:5px 10px}
  .life-controls button{min-height:44px;font-size:12px}
  .life-controls #sound{font-size:11px}
  .life-controls #dispatch{min-height:44px;padding:10px 12px}
  .intro-panel .small-note{font-size:11px;margin-top:9px}
  .display-panel .sheet-heading{margin-bottom:0}
  .bottom-bar,.flying .bottom-bar{position:static;transform:none;display:grid;grid-template-columns:1fr;gap:10px;width:100%;max-width:none;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;white-space:normal}
  .view-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;background:#e9ecdf;border-radius:11px}
  .view-switch button{min-height:44px;justify-content:center;gap:6px;padding:9px 4px;border-radius:8px;font-size:11px}
  .view-switch button svg{width:18px;height:18px;flex-shrink:0}
  .fly-button{min-height:46px;justify-content:center;gap:8px;font-size:13px;border-radius:9px}
  .fly-button svg{width:19px;height:19px}
  .view-options{display:grid;grid-template-columns:1fr 1fr;border:0;padding:0;gap:6px}
  .text-button{min-height:44px;padding:9px 5px;background:#eeeedf;border-radius:8px;font-size:12px}
  .text-button[aria-pressed=true]{background:#dce6cf;color:#45613a}
  .display-quality{display:block;border-top:1px solid var(--border);padding-top:13px}
  .economy-toggle,.flying .economy-toggle{position:static;width:100%;min-height:46px;padding:10px 12px;font-size:12px;gap:9px;border-radius:9px;box-shadow:none;white-space:normal;text-align:left}
  .economy-toggle .eco-icon{display:block;width:18px;height:18px;flex-shrink:0}
  .economy-track{margin-left:auto;width:31px;height:18px;padding:3px}
  .economy-track i{width:12px;height:12px}
  .economy-toggle[aria-checked=true] .economy-track i{transform:translateX(13px)}
  .night-time .economy-toggle{color:#526b45;border-color:#bcc8aa}
  .night-time .economy-toggle[aria-checked=true]{color:#3d5e30;background:#e8efdf}
  .map-tools{top:48%;right:var(--ui-right);gap:9px;transform:translateY(-50%);z-index:5}
  .tool-button{width:44px;height:44px;font-size:25px;border-radius:10px}
  .zoom-buttons{border-radius:10px}
  body:has(.selection-panel:not([hidden])) .map-tools,body:has(#time-toggle[aria-expanded=true]) .map-tools{visibility:hidden}
  body:has(.selection-panel:not([hidden])) .time-controls{visibility:hidden}
  .selection-panel{padding:20px}
  .selection-panel h2{font-size:25px;padding-right:25px;margin-top:14px}
  .close-selection{top:8px;right:8px;width:44px;height:44px;border-radius:50%;background:#e9ecdf}
  .selection-panel p{font-size:12px}
  .selection-panel .small-note{font-size:11px}
  .selection-facts>span{font-size:11px}
  .selection-panel>a{font-size:12px;min-height:44px;align-items:center}
  .control-hint,.flying .control-hint{display:none}
  footer,.flying footer{left:var(--ui-left);right:var(--ui-right);bottom:calc(6px + env(safe-area-inset-bottom));font-size:8px;line-height:1.2;z-index:2}
  footer .scale{display:none}
  footer>span:last-child{width:100%;text-align:right}
  footer button{font-size:8px;padding-left:8px}
  .map-label{font-size:9px;padding:5px 7px}
  dialog{max-height:calc(100dvh - 32px);padding:25px;overscroll-behavior:contain}
  dialog h2{font-size:27px}
  .dialog-close{width:44px;height:44px;top:6px;right:6px}
  .flying #flight-pad{display:flex;left:var(--ui-left);right:var(--ui-right);bottom:calc(107px + env(safe-area-inset-bottom));z-index:10}
  .flying .time-controls{bottom:calc(210px + env(safe-area-inset-bottom))}
  .flying .time-panel{max-height:min(280px,calc(100dvh - 310px - env(safe-area-inset-bottom)))}
  .flying .map-tools{display:flex}
  .flight-move{grid-template-columns:44px 44px 44px;grid-template-rows:44px 44px;gap:5px}
  .flight-move button,.flight-height button{width:44px;height:44px;border-radius:10px}
}
@media(max-width:360px){
  .brand{font-size:19px}.brand>svg{width:30px;height:30px}.brand-sub{letter-spacing:1px}
  .intro-panel,.display-panel{padding:15px}.sheet-heading h2{font-size:22px}
}
@media(max-height:500px) and (max-width:1000px){
  .time-controls,.flying .time-controls{right:auto;bottom:var(--dock-bottom);width:260px;max-height:none}
  .time-panel{max-height:min(250px,calc(100dvh - 140px - env(safe-area-inset-bottom)))}
  .intro-panel,.flying .intro-panel,.selection-panel,.display-panel{left:auto;width:min(360px,calc(100% - 24px));max-height:calc(100dvh - 110px - env(safe-area-inset-bottom))}
  .time-controls:has(#time-toggle[aria-expanded=true]){z-index:25}
  .time-panel{padding-bottom:10px}
  .flying #flight-pad{left:18px;right:18px;bottom:30px;width:calc(100% - 380px)}
  .flying .time-controls{left:auto;right:var(--ui-right);bottom:var(--sheet-bottom);width:min(310px,calc(100% - var(--ui-left) - var(--ui-right)))}
  .flying .time-panel{max-height:calc(100dvh - 200px - env(safe-area-inset-bottom))}
}
@media(max-width:620px) and (max-height:500px){
  .time-controls{bottom:var(--sheet-bottom);right:var(--ui-right);width:auto}
  .time-panel{max-height:calc(100dvh - 210px - env(safe-area-inset-bottom))}
}

#places-toggle[aria-pressed=true]{background:#e4ebd9;color:#436640}
#places-toggle[aria-pressed=false]{color:#7a8471}
#economy-toggle[aria-checked=true]{background:#e4ebd9;color:#436640}
#economy-toggle[aria-checked=false]{color:#7a8471}
#economy-toggle:disabled{cursor:progress;opacity:.65}

.life-controls button:disabled{opacity:.45;cursor:not-allowed}

/* The same minimal controls on desktop and mobile. */
.topbar>.round-button{margin-left:auto}
.time-panel{padding:8px 12px}
.time-panel input{height:32px}
.cycle-tabs{margin:0 0 6px;padding:3px}
.cycle-tabs button{min-height:30px;padding:4px;font-size:11px}
.time-ticks{font-size:9px;margin-bottom:6px}
.time-actions button{min-height:36px;padding:6px;font-size:11px}
.season-heading,#cycle-description,#year-description,#year-settings>.sun-times{display:none}
.season-presets{margin-bottom:6px}
.season-presets button{min-height:34px;padding:5px 2px;font-size:11px}
body:has(#time-toggle[aria-expanded=true]) .map-tools{visibility:hidden}
@media(min-width:701px) and (min-height:501px),(min-width:1001px){
  .time-controls{right:30px;bottom:42px}
}
