/* One mobile surface, independent of desktop layout and input focus. */
.mobile-only,.terrain-icon{display:none}
@media(max-width:700px), (max-width:1000px) and (pointer:coarse){
 body{--glass:rgba(17,39,57,.57);--rim:rgba(225,244,255,.42);--ink:#f3f8ff;--soft:#d1dfec;--mobile-height:100dvh;--mobile-bottom:0px;--dock-height:310px;margin:0;padding:0;overflow:hidden;background:#071b2c;color:var(--ink);color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
 button,input,select,summary{font:inherit;-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button:focus-visible,summary:focus-visible{outline:3px solid #b7d8ff;outline-offset:3px}.mobile-only{display:block}[hidden]{display:none!important}
 .workspace,.session-active .workspace{position:fixed;inset:0;display:block;width:100%;height:100%;min-height:0;overflow:hidden}
 .map-stage,.session-active .map-stage{position:absolute;inset:0;display:block;width:100%;height:100%;min-height:0;margin:0;overflow:hidden;z-index:0}
 .map-stage #map,.map-stage #globe{position:absolute;inset:0;height:100%;border-radius:0}
 .topbar,.session-active .topbar{position:fixed;inset:calc(12px + env(safe-area-inset-top)) 14px auto;z-index:900;height:54px;min-height:54px;margin:0;padding:8px 10px 8px 12px;display:flex;flex-wrap:nowrap;gap:8px;border:1px solid var(--rim);border-radius:28px;background:var(--glass);box-shadow:inset 0 1px 1px #ffffff63,inset 0 -1px 1px #00122650,0 8px 28px #00132126;backdrop-filter:blur(22px) saturate(155%);-webkit-backdrop-filter:blur(22px) saturate(155%)}
 .brand{font-size:20px;font-weight:650;letter-spacing:-.4px;gap:9px}.brand-symbol{width:32px;height:32px;border-radius:11px;font-size:24px}.brand small,.mode-nav,.sidebar-toggle{display:none!important}
 #mobileMenu{position:relative;margin-left:auto}#mobileMenu>summary{list-style:none;display:grid;place-items:center;min-width:48px;height:38px;border:1px solid #e7f5ff38;border-radius:22px;background:#d6efff14;color:var(--ink);font-size:14px;cursor:pointer;padding:0 12px}#mobileMenu>summary::-webkit-details-marker{display:none}
 #mobileMenu>div{position:absolute;right:0;top:48px;width:220px;padding:7px;border-radius:24px;border:1px solid var(--rim);background:#15334bea;box-shadow:0 12px 40px #0005}#mobileMenu button{display:block;text-align:left;width:100%;min-height:46px;padding:10px 14px;border:0;border-radius:16px;background:transparent;color:var(--ink);font-size:15px}#mobileMenu button:hover{background:#fff1}
 .sidebar,.session-active .sidebar,.sidebar-collapsed .sidebar{position:fixed;inset:auto 12px calc(12px + env(safe-area-inset-bottom) + var(--mobile-bottom));width:auto;height:auto;min-height:0;max-height:min(58svh,calc(var(--mobile-height) - 92px));margin:0;padding:20px;display:block;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-gutter:auto;z-index:650;border:1px solid var(--rim);border-radius:30px;background:var(--glass);color:var(--ink);box-shadow:inset 0 1px 1px #ffffff70,inset 0 -1px 1px #00203980,0 16px 44px #00132635;backdrop-filter:blur(26px) saturate(155%);-webkit-backdrop-filter:blur(26px) saturate(155%);transform:none;visibility:visible;opacity:1;pointer-events:auto}
 .session-active .sidebar{max-height:min(49svh,calc(var(--mobile-height) - 82px));padding:18px 20px 12px}
 .sidebar p,.sidebar .fine,.sidebar .eyebrow,.sidebar label{color:var(--soft)}.sidebar h2{font-size:24px;line-height:1.2;letter-spacing:-.5px}.sidebar input:not([type]),.sidebar input[type=search],.sidebar select{min-height:48px;width:100%;font-size:16px;padding:12px 15px;border:1px solid #eff8ff42;border-radius:18px;background:#0c263747;color:var(--ink);box-shadow:inset 0 1px 2px #00132935}.sidebar input::placeholder{color:#c3d2df}.sidebar select option{background:#17354c;color:#fff}
 .sidebar .primary{width:100%;max-width:none;min-height:50px;padding:12px 18px;border:1px solid #c4e0ff70;border-radius:23px;background:linear-gradient(165deg,#5799ff,#2871e2);color:#fff;font-size:17px;font-weight:600;box-shadow:inset 0 1px 1px #fff6,0 5px 20px #1266df25}.sidebar .secondary{min-height:44px;border-radius:16px;background:#c9e6ff12;color:var(--ink);border-color:#c7e5ff35}.sidebar-footer{font-size:12px;color:var(--soft)}
 .region-tabs{border:1px solid #e5f4ff32;border-radius:18px;background:#badaff0b}.region-tabs button{min-height:44px;font-size:14px}.region-tabs button.active{background:#dbedff27;color:#fff}.filter-heading{margin-top:18px}.filter-heading h2{font-size:20px}.sidebar #filters .categories{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.category{min-height:44px;border-radius:14px;font-size:14px;background:#c6e6ff0c;border-color:#d6ecff24}.category.active{background:#a9cdff20;border-color:#a9cdff66}.category i{flex-shrink:0}.category b{font-weight:500}.selection-button,.adaptive-switch{background:#d0e9ff0c;color:var(--ink);border-color:#e1f2ff30;border-radius:17px}.selection-button{min-height:46px}.check-row{min-height:40px;font-size:14px}.place-row{min-height:48px}.place-row>span{min-width:0;overflow-wrap:anywhere}.mode-description{font-size:14px}.setup-grid{gap:10px}
 #questionPanel{position:relative}.session-active #questionPanel{display:flex;flex-direction:column;gap:0}.question-meta,#questionCategory,.session-active #sessionProgress,.session-active #questionHelp,.session-active .sidebar-footer{display:none!important}
 .session-active .question-heading{display:flex;gap:12px;align-items:center;margin:0 45px 16px 0;order:1}.session-active .question-heading>div{min-width:0}.session-active #questionNumber{display:grid;place-items:center;flex-shrink:0;min-width:40px;min-height:40px;padding:7px;font-size:18px;line-height:1;font-weight:650;border:1px solid #fff6;border-radius:13px;background:#c9e7ff1c;box-shadow:inset 0 1px #ffffff35}.session-active #questionTitle{font-size:21px;line-height:1.16;font-weight:600;letter-spacing:-.45px;margin:0;overflow-wrap:anywhere}
 #mobileQuestionCount{position:absolute;right:0;top:12px;font-size:13px;color:var(--soft)}
 .session-active #answerForm{display:flex;flex-direction:column;align-items:stretch;order:3;gap:10px;margin:0}.session-active #answerForm label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.session-active #answerForm input{min-width:0;width:100%;min-height:50px;margin:0;border-radius:23px;font-size:17px}.session-active #submitAnswer{min-height:50px;width:100%;max-width:none;margin:0;font-size:17px}
 .session-active #locateControls{order:3}.session-active #locateStatus{font-size:14px;line-height:1.4;margin:0 0 12px}.session-active #confirmLocation{width:100%;margin:0}.session-active #feedback{order:4;margin:10px 0;scroll-margin:12px;font-size:15px;border-radius:18px;overflow-wrap:anywhere}.session-active #feedback .explain{font-size:14px}.session-active #feedback .attempt-note{font-size:12px}.session-active #nextQuestion,.session-active #examActions{order:5;margin-top:10px}.session-active .question-actions{order:6;display:flex;justify-content:space-between;margin:8px 0 0;gap:8px}.session-active .question-actions button{min-height:42px;padding:9px 13px;border-radius:20px;color:var(--ink);background:#d0eaff0c;border:1px solid #e1f4ff28;font-size:14px}.session-active #hint{order:7;margin-top:8px;border-radius:16px;font-size:14px;background:#132f4770;color:var(--ink)}
 #mobileMore{order:8;margin-top:4px}#mobileMore>summary{min-height:40px;display:flex;align-items:center;font-size:13px;color:var(--soft);cursor:pointer;list-style:none}#mobileMore>summary::-webkit-details-marker{display:none}#mobileMore>div{padding-top:8px;border-top:1px solid #fff2}#mobileMore #questionNav{display:flex;flex-wrap:wrap;gap:6px}#mobileMore #questionNav button{min-height:40px;min-width:40px}#mobileMore #finishSession{min-height:44px}#droneStart{order:9;margin:8px 0 0;border-radius:18px;min-height:44px;font-size:14px;background:#c6e4ff15;border:1px solid #d3edff32;box-shadow:none}
 .map-caption,.map-bottom,.map-buttons,#mobileMapSize,#globeHome,#globeOrbit,.map-options:not([open]){display:none!important}
 #mobileMapSwitch{position:absolute;top:calc(80px + env(safe-area-inset-top));right:14px;z-index:610;display:flex;padding:4px;border:1px solid var(--rim);border-radius:25px;background:var(--glass);box-shadow:inset 0 1px #fff4,0 5px 20px #00132620;backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%)}#mobileMapSwitch button{height:38px;min-width:62px;padding:8px 13px;border:0;border-radius:21px;background:none;color:#e5f2ff;font-size:14px}#mobileMapSwitch button[aria-pressed=true]{background:#e0f1ff2c;box-shadow:inset 0 1px #fff6;color:#fff}
 .globe-tools,.session-active .globe-tools{right:14px;bottom:calc(var(--dock-height) + 30px);display:flex;flex-direction:column;gap:2px;padding:4px;border:1px solid var(--rim);border-radius:24px;background:var(--glass);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.globe-tools button{min-height:40px;min-width:40px;padding:8px}.session-active #globeTilt{font-size:12px;max-width:70px}.session-active #globeTilt:after{content:none}
 .leaflet-control-zoom{margin-right:14px!important;margin-bottom:calc(var(--dock-height) + 30px)!important;border-radius:22px!important;border:1px solid var(--rim)!important;box-shadow:inset 0 1px #fff5!important;overflow:hidden;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.leaflet-control-zoom a{width:42px!important;height:42px!important;line-height:42px!important;background:var(--glass)!important;color:#fff!important;border-color:#ffffff25!important}.leaflet-control-attribution{font-size:9px!important;max-width:100%;background:#0a263690!important;color:#deecf7!important}.leaflet-control-attribution a{color:#deecf7!important}
 .satellite-notice,.globe-status{position:absolute;left:14px;right:78px;bottom:calc(var(--dock-height) + 30px);max-width:none;padding:8px 12px;border:1px solid #d4efff38;border-radius:16px;background:#123148bf;color:#e7f4ff;font-size:12px;line-height:1.35;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
 .map-stage:has(.map-options[open]){z-index:1200}.map-options[open],.session-active .map-options[open],.sidebar-collapsed .map-options[open]{position:fixed;inset:auto 10px calc(10px + env(safe-area-inset-bottom));width:auto;max-width:none;padding:0;border-radius:28px;z-index:1250;border:1px solid var(--rim);background:#17354be8!important;color:var(--ink)!important;box-shadow:inset 0 1px #fff5,0 15px 50px #00182c60;backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px)}.map-options[open]>summary{display:none}.map-options[open] .map-settings{max-height:78dvh;overflow:auto;overscroll-behavior:contain;padding:0 16px 18px}.map-picker-heading{position:sticky;top:0;z-index:2;background:#19374e!important;padding:12px 0}.map-picker-heading h2,.map-picker-heading button{color:var(--ink)!important}.map-picker-heading button{min-height:44px;min-width:44px}.map-options .map-card{border-radius:17px;background:#d8edff0e;color:var(--ink)!important;overflow:hidden}.map-options .map-card strong{font-size:14px}.map-options .map-card small,.map-options .map-description,.map-options .fine{color:var(--soft)!important}.map-options .map-card[aria-pressed=true]{border-color:#96c7ff;background:#bfdcff20}.map-options .favorite-button{min-height:44px;background:#d5eaff16;color:var(--ink)}.map-options select{font-size:16px;background:#17354b;color:var(--ink)}.map-options .layer-toggles label{min-height:44px}
 .detail{position:absolute;bottom:calc(var(--dock-height) + 25px);left:14px;right:14px;width:auto;max-width:none;max-height:28svh;border-radius:22px;background:#183b50de;color:var(--ink)}.detail h2,.detail p,.detail small{color:var(--ink)}
 .session-active .journey-toast{display:none!important}.question-arrival{animation:none!important}.drone-active .sidebar{visibility:hidden;pointer-events:none}.drone-active #mobileMapSwitch{display:none}.drone-active .globe-tools{bottom:140px}.drone-panel{bottom:20px}
 #mobileFold{min-height:42px;min-width:42px;border:1px solid #e1f4ff38;border-radius:21px;background:#e1f1ff15;color:#fff;font-size:14px;padding:8px 12px}.mobile-sheet-folded:not(.session-active) .sidebar{display:none}.mobile-sheet-folded{--dock-height:0px}
 @media(min-width:560px) and (max-height:550px){.topbar,.session-active .topbar{height:46px;min-height:46px;top:6px}.sidebar,.session-active .sidebar{max-height:calc(var(--mobile-height) - 66px);left:40%;padding:14px}.session-active .question-heading{margin-bottom:10px}.session-active #questionTitle{font-size:18px}#mobileMapSwitch{top:64px;left:12px;right:auto}}
 @media(prefers-reduced-transparency:reduce){body{--glass:#18364b}.sidebar,.topbar,#mobileMapSwitch,.map-options[open]{backdrop-filter:none;-webkit-backdrop-filter:none}}
 @media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
}

@media(max-width:700px), (max-width:1000px) and (pointer:coarse){#mobileFilters{margin:12px 0;border:1px solid #e4f3ff30;border-radius:18px;background:#d5eaff0a}#mobileFilters>summary{padding:13px 14px;min-height:46px;font-size:15px;cursor:pointer}#mobileFilters>div{padding:0 12px 12px}#mobileFilters .filter-heading h2{font-size:18px}.sidebar #practiceSelection{margin-top:4px}.map-options .map-card[data-map-style=globe]{grid-column:auto}.session-active #answerForm:has(input:disabled){display:none}.sidebar .search-label{font-size:14px}}

@media(max-width:700px), (max-width:1000px) and (pointer:coarse){.session-active.mobile-locate #questionHelp{display:block!important;order:2;font-size:13px;line-height:1.4;margin:0 0 12px;color:#d1dfec}.session-active.mobile-locate #locateStatus{font-size:13px}}

@media(max-width:700px), (max-width:1000px) and (pointer:coarse){.map-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.map-card img{height:auto;aspect-ratio:1.6;object-fit:cover}.map-card small{min-height:28px}.map-picker-heading{margin:0 0 12px;min-height:64px}.map-options[open] .map-settings{scroll-padding-top:76px}}

@media(max-width:700px), (max-width:1000px) and (pointer:coarse){.map-options .map-card[data-map-style=globe]{display:block;grid-column:auto;padding:3px 3px 6px}.map-options .map-card[data-map-style=globe] img{width:100%;height:auto;aspect-ratio:1.6}.map-options .map-card[data-map-style=globe] strong{font-size:14px;margin:6px 2px 0}.map-options .map-card[data-map-style=globe] small{margin:3px 2px 0}}

/* v17: one aligned 3D viewport; keep the v16 glass surfaces. */
@media(max-width:700px), (max-width:1000px) and (pointer:coarse){
 .map-stage #globe{top:calc(76px + env(safe-area-inset-top));bottom:auto;height:var(--globe-height,60dvh);min-height:180px}
 .globe-tools,.session-active .globe-tools{width:48px;max-width:48px;box-sizing:border-box;align-items:center;right:14px;bottom:auto;top:calc(136px + env(safe-area-inset-top));padding:2px;gap:0}
 .globe-tools button,.globe-tools #globeTilt,.session-active #globeTilt{width:44px;min-width:44px;max-width:44px;min-height:44px;height:44px;padding:0;font-size:24px;flex-shrink:0}
 .terrain-label{display:none}.terrain-icon{display:block;width:24px;height:24px;margin:auto}
 #droneStart:disabled{display:none!important}
 .session-active .sidebar{max-height:min(46svh,calc(var(--mobile-height) - 82px));padding:16px 18px 10px}
 #mobileMore>summary{min-height:32px}
 .globe-pin{max-width:180px;font-size:13px;gap:6px}.globe-pin b{font-size:14px}
 .session-active.drone-active .map-stage{height:100%;min-height:0}
 .drone-active .map-stage #globe{height:calc(var(--mobile-height) - 76px);top:76px}
 .drone-active .globe-tools{display:none}
 .mobile-keyboard .globe-tools{display:none}
 .globe-status{top:calc(136px + env(safe-area-inset-top));bottom:auto;right:78px;max-height:72px;overflow:hidden}
 #mobileMenu>div{max-height:calc(var(--mobile-height) - 100px);overflow:auto}
 dialog{position:fixed;top:calc(var(--mobile-top,0px) + 16px);bottom:auto;margin:0 auto;max-height:calc(var(--mobile-height) - 32px);max-width:calc(100vw - 24px);color:var(--ink);background:#15334bf5;border:1px solid var(--rim);border-radius:24px}dialog input{font-size:16px}dialog p,dialog label{color:var(--soft)}
 @media(min-width:560px) and (max-height:550px){.map-stage #globe{top:60px;height:calc(var(--mobile-height) - 60px);width:56%}.globe-tools,.session-active .globe-tools{display:none}.session-active .sidebar{max-height:calc(var(--mobile-height) - 66px)}}
}

@media(max-width:559px) and (max-height:550px){
 .sidebar,.session-active .sidebar{max-height:calc(var(--mobile-height) - 82px)}
 .globe-tools,.session-active .globe-tools{display:none}
}

@media(max-width:700px), (max-width:1000px) and (pointer:coarse){body:not(.session-active) .sidebar{max-height:min(44svh,calc(var(--mobile-height) - 180px))}#mobileFold{font-size:13px;max-width:145px}}
