
/* Shared navigation: no sidebars or reserved side gutters. */
:root{--night:#081725;--jade:#94c8b6;--warm:#e7ca92;--nav-line:#9dbaaf26}
body{margin:0;background:var(--night);color:#e6e9e6}
.workspace{margin:0!important;min-height:100dvh}
.global-header{position:sticky;top:0;z-index:40;min-height:76px;padding:10px max(24px,calc((100vw - 1440px)/2));display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--nav-line);background:#0a1c2af5;backdrop-filter:blur(16px)}
.global-brand{display:flex;align-items:center;gap:10px;flex:none;color:var(--warm);font:23px var(--serif);letter-spacing:3px}
.global-brand .academy-icon{width:30px;height:30px}
.brand-subtitle{display:block;font:9px/1.8 sans-serif;letter-spacing:4px;color:#acbfbf}
.primary-navigation{display:flex;align-items:center;gap:6px;margin-left:auto}
.primary-navigation a,.nav-button,.settings-trigger{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:9px 13px;border:1px solid transparent;border-radius:8px;font-size:13px;white-space:nowrap;background:transparent;color:#bdcecf;cursor:pointer}
.primary-navigation a:hover,.nav-button:hover,.settings-trigger:hover{color:var(--warm);background:#d8be8620}
.primary-navigation .active{border-color:#e0c38a55;color:var(--warm);background:#d8be8610}
.primary-navigation .academy-icon{width:18px;height:18px}
.nav-button{border-color:#d8be8644;color:var(--warm)}
.settings-trigger{width:44px;padding:10px;color:var(--warm);border-color:#9dbaaf33}
#breadcrumb{font-size:12px;color:#a2b8bd;white-space:nowrap}
main{width:100%;max-width:1200px;margin:0 auto;padding:34px 32px 44px}
body[data-view="map"] main{max-width:1504px}
footer{max-width:1440px;padding:24px 32px;line-height:1.8}
.academy-icon{width:24px;height:24px;display:inline-block;vertical-align:middle;flex-shrink:0;color:var(--warm)}
.academy-intro{margin:0 0 26px;gap:16px}
.academy-intro h1{font:500 32px/1.55 var(--serif);letter-spacing:3px}
.academy-intro .eyebrow{font-size:10px;letter-spacing:3px}
.academy-intro p{font-size:14px}
.universe-link{font-size:12px;color:var(--jade);white-space:nowrap;padding:10px}
.garden-map{border:1px solid #d8be8640;border-radius:14px;background:#0b202d;overflow:hidden;box-shadow:0 18px 70px #0003}
.garden-map-caption{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid #d8be8620}
.garden-map-caption h2{font:500 19px var(--serif);color:var(--warm);letter-spacing:2px;margin:0}
#mapScaleStatus{font-size:12px;color:var(--jade);font-variant-numeric:tabular-nums}
.map-stage{position:relative}
.map-viewport{position:relative;width:100%;aspect-ratio:1672/941;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b3a17455 #0b1c29;touch-action:pan-x pan-y;isolation:isolate}
.map-canvas{width:100%;position:relative;line-height:0;user-select:none}
.map-canvas>img{display:block;width:100%;height:auto;pointer-events:none;user-select:none}
.map-viewport.is-zoomed{cursor:grab}
.map-viewport.is-dragging,.map-viewport.is-dragging a{cursor:grabbing}
.garden-door{position:absolute;display:block;border:1px solid transparent;border-radius:8px;line-height:1.6;touch-action:pan-x pan-y}

.map-tools{position:absolute;bottom:16px;right:16px;display:flex;align-items:center;gap:6px;padding:7px;background:#081b2be8;border:1px solid #d8be8650;border-radius:12px;box-shadow:0 5px 24px #0005;z-index:5}
.map-tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:72px;height:60px;min-width:44px;min-height:44px;padding:6px;background:#142d3b;border:1px solid #aec5bc33;border-radius:7px;color:var(--warm);font-size:12px}
.map-tool .academy-icon{width:21px;height:21px}
.map-tool:hover:enabled{background:#254a4c;border-color:#cdb37b}
.map-tool:disabled{opacity:.36}
.garden-instructions{margin:0;padding:12px 20px;font-size:12px;line-height:1.8;color:#b5c8cc}
.study-summary{display:flex;justify-content:center;align-items:center;gap:0;margin:22px 0 0;border-block:1px solid var(--nav-line)}
.study-summary a{display:flex;align-items:center;justify-content:center;gap:12px;flex:1;min-height:76px;padding:15px 20px;color:#adbfca;font-size:13px}
.study-summary a:hover{background:#9dbaaf0c}.study-summary a+a{border-left:1px solid var(--nav-line)}
.study-summary strong{color:var(--warm);font-weight:500;margin-left:12px}
.local-storage-note{font-size:12px;text-align:center;color:#91a9b6;margin:16px 0 0}
.page-head{align-items:center;gap:18px;margin:0 0 28px}
.page-head .heading-copy{flex:1;min-width:0}
.page-head h1{line-height:1.5;margin:4px 0;font-size:29px}
.route-symbol{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:52px;height:52px;border:1px solid #ddc18a45;border-radius:12px;background:#16373d;color:var(--warm)}
.route-symbol .academy-icon{width:27px;height:27px}
.return-garden{white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}
#gardenNavigation{width:min(800px,calc(100vw - 32px));max-height:min(85dvh,900px);padding:26px;border:1px solid #d8be8666;border-radius:16px;background:#102634;color:#e6e9e6;overflow:auto;overscroll-behavior:contain}
#gardenNavigation::backdrop{background:#010a13c9;backdrop-filter:blur(7px)}
.dialog-heading{display:flex;align-items:center;gap:14px;margin-bottom:20px}
.dialog-heading h2{font:25px var(--serif);color:var(--warm);margin:0}
.dialog-heading form{margin:0 0 0 auto}
.dialog-close{display:grid;place-items:center;width:44px;height:44px;border:1px solid #9dbaaf44;border-radius:8px;background:#0b1e2b;color:var(--warm)}
.dialog-search,.directory-search{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.dialog-search label,.directory-search label{display:flex;align-items:center}
.dialog-search input,.directory-search input{flex:1;min-width:0;border:1px solid #a5c6b54d;border-radius:8px;padding:12px 14px;background:#091b29;color:#e6e9e6;font-size:16px;height:48px}
#gardenResultStatus{margin:12px 0;font-size:12px;color:var(--jade)}
.directory-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.route-entry{display:flex;align-items:center;gap:14px;min-height:92px;padding:15px;border:1px solid #9dbaaf24;border-radius:10px;background:#122d3a}
.route-entry:hover{background:#193d43;border-color:#e7ca9280}
.route-entry strong{display:block;font:19px var(--serif);color:var(--warm)}
.route-entry small{display:block;font-size:12px;line-height:1.7;color:#b3c6cb;margin-top:5px}
.route-arrow{margin-left:auto;color:var(--jade)}
.route-symbol{width:44px;height:44px;border-radius:9px}
.route-symbol .academy-icon{width:24px;height:24px}
.directory-search{margin:0 0 24px}.directory-search p{flex-basis:100%;margin:0}
.navigation-empty{padding:24px;color:#bdcdd1;grid-column:1/-1}
.top-filters{margin:20px 0;border:1px solid #9dbaaf33;border-radius:10px;background:#0e2734}
.top-filters summary{display:flex;align-items:center;gap:10px;min-height:50px;padding:12px 18px;color:var(--warm);cursor:pointer}
.top-filters summary:after{content:'＋';margin-left:auto}
.top-filters[open] summary:after{content:'－'}
.top-filters .exam-filters{padding:0 18px 18px;margin:0}
.development{padding:38px;max-width:860px;margin:20px auto}
.development h2{font:25px/1.6 var(--serif);color:var(--warm)}
.development p{font-size:16px;line-height:2;color:#bfced0}
.development-badge{display:inline-block;padding:4px 12px;border:1px solid #93c4b34d;border-radius:18px;color:var(--jade);font-size:12px}
.mobile-tabs{display:none}
.sr-only{position:absolute!important;clip:rect(0,0,0,0);clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
a,button,input,textarea,select,summary,[tabindex]{scroll-margin-top:100px}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible,.map-viewport:focus-visible{outline:2px solid var(--warm);outline-offset:3px}
button,.button{min-height:44px}
@media(max-width:1100px){
 .global-header{gap:14px;padding:10px 20px}.primary-navigation a,.nav-button{padding:9px 10px}.primary-navigation a .academy-icon{display:none}#breadcrumb{display:none}
}
@media(max-width:760px){
 .global-header{min-height:64px;padding:9px 16px;gap:10px}.global-brand{font-size:20px}.global-brand .academy-icon{width:27px;height:27px}.brand-subtitle{font-size:8px;letter-spacing:3px}
 .primary-navigation{display:none}#breadcrumb{display:block;margin-left:auto;font-size:11px;max-width:115px;overflow:hidden;text-overflow:ellipsis}.settings-trigger{border:0;padding:10px}
 main{padding:24px 16px 30px}.academy-intro{display:block;margin-bottom:20px}.academy-intro h1{font-size:25px;letter-spacing:2px}.academy-intro .eyebrow{font-size:8px;letter-spacing:2px}.academy-intro p{font-size:13px;max-width:none}.universe-link{display:inline-block;padding:8px 0 0;font-size:11px}
 .garden-map{border-radius:11px}.garden-map-caption{padding:12px 14px}.garden-map-caption h2{font-size:17px}#mapScaleStatus{font-size:11px}
 .map-tools{position:static;justify-content:center;gap:5px;padding:9px 7px;border:0;border-top:1px solid #d8be8625;border-radius:0;box-shadow:none}
 .map-tool{width:56px;height:56px;gap:3px;font-size:11px}.map-tool .academy-icon{width:20px;height:20px}
 .garden-instructions{font-size:11px;padding:10px 13px}
 .study-summary{margin-top:20px;align-items:stretch}.study-summary a{gap:8px;flex-direction:column;padding:13px 6px;min-height:100px;font-size:11px;text-align:center}.study-summary strong{display:block;margin:3px 0 0;font-size:15px}.study-summary .academy-icon{width:21px;height:21px}.local-storage-note{font-size:11px;line-height:1.8}
 .page-head{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}.page-head h1{font-size:24px;letter-spacing:1px}.page-head .eyebrow{font-size:8px;letter-spacing:2px}.page-head p{font-size:13px}.return-garden{margin-left:0;font-size:12px}
 .directory-grid{grid-template-columns:1fr}.route-entry{padding:14px;min-height:88px}.route-entry strong{font-size:19px}
 #gardenNavigation{padding:20px 16px;max-height:85dvh}.dialog-heading h2{font-size:22px}.dialog-search{gap:9px}
 .mobile-tabs{position:fixed;bottom:0;left:0;right:0;z-index:45;display:flex;justify-content:space-around;align-items:stretch;padding:5px 8px calc(5px + env(safe-area-inset-bottom));border-top:1px solid #b8cabb3d;background:#0a1c2af7;backdrop-filter:blur(16px)}
 .mobile-tabs a,.mobile-tabs button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;flex:1;min-width:44px;min-height:54px;padding:4px;background:transparent;border:1px solid transparent;border-radius:8px;color:#aabdc5;font-size:10px}
 .mobile-tabs .academy-icon{width:22px;height:22px;color:inherit}.mobile-tabs .active{color:var(--warm);background:#d8be8612;border-color:#d8be8625}
 .workspace{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
 footer{padding:20px 16px;font-size:11px;gap:8px}footer small{font-size:11px}
 #toast{bottom:calc(90px + env(safe-area-inset-bottom));max-width:90vw;text-align:center}
 .development{padding:24px}.development h2{font-size:23px}
 a,button,input,textarea,select,summary,[tabindex]{scroll-margin-top:80px;scroll-margin-bottom:90px}
}

.map-viewport{overscroll-behavior:auto}.map-viewport.is-zoomed{overscroll-behavior:contain}

.map-tool span{white-space:nowrap}

.primary-navigation a,.mobile-tabs a{margin:0}.primary-navigation a.active,.mobile-tabs a.active{box-shadow:none}

/* Retained header and map toolbar sizing. */
.map-tools{gap:6px}
.overview-entry{display:inline-flex;flex-shrink:0}
.overview-entry .academy-icon{width:18px;height:18px}
@media(max-width:1100px){.global-header{gap:12px}}
@media(max-width:760px){
 #breadcrumb{display:none}
 .global-header{gap:10px}
 .overview-entry{display:inline-flex;margin-left:auto;padding:8px 10px;gap:6px;font-size:12px;min-height:44px}
 .overview-entry .academy-icon{width:17px;height:17px}
 .map-tools{gap:8px}
 .map-tool{width:64px;height:56px}
}
