.app-menu-button,.app-menu-close { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; min-width:44px; min-height:44px; box-sizing:border-box; padding:0; border:1px solid #b7ccdb; border-radius:6px; color:#174c6c; background:#f7fafc; font:28px/1 Arial,sans-serif; cursor:pointer; touch-action:manipulation; }
html.app-nav-document { overscroll-behavior-x:none; }
.app-menu-button { position:fixed; top:max(12px,env(safe-area-inset-top,0px)); left:max(12px,env(safe-area-inset-left,0px)); z-index:100; box-shadow:0 2px 8px #12344c18; }
.app-menu-button:hover,.app-menu-close:hover { background:#e6eef4; }
.app-menu-button:focus-visible,.app-menu-close:focus-visible { outline:3px solid #2682af; outline-offset:3px; }
body.app-nav-ready :is(#fixedPageNav,#counterWrap) { max-width:calc(100% - 80px); }
body.app-nav-ready :is(.fixed-page-nav,.quiz-floating) > .nav-row { min-width:0; max-width:100%; flex-wrap:wrap; }
body.app-nav-ready[data-subject-theme] #subjectTopHomeBtn { top:var(--app-nav-home-top,78px) !important; max-width:calc(100% - 40px); }
body.app-nav-ready[data-subject-theme] #homeScreen .hero { padding-top:calc(var(--app-nav-home-top,78px) + 58px) !important; }
body.app-nav-root .brand-inner { padding-left:72px; }
body.app-nav-book .book-header { position:sticky; top:0; z-index:90; }
body.app-nav-book .book-header .header-inner { gap:8px; }
body.app-nav-book .book-header .brand { gap:4px 8px; }
#appMenuCorner { position:fixed; top:env(safe-area-inset-top,0px); left:env(safe-area-inset-left,0px); width:36px; height:64px; pointer-events:none; visibility:hidden; }
.app-menu-dialog { position:fixed; inset:0 auto 0 0; margin:0; width:min(340px,calc(100vw - 36px)); max-width:calc(100vw - 36px); height:100%; height:100dvh; max-height:100%; max-height:100dvh; box-sizing:border-box; padding:0; border:0; border-right:1px solid #cfdae3; border-radius:0; color:#102033; background:#fff; overflow-y:auto; overscroll-behavior:contain; box-shadow:8px 0 32px #0003; }
.app-menu-dialog::backdrop { background:#0009; }
.app-menu-heading { position:sticky; top:0; z-index:1; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px max(16px,env(safe-area-inset-left,0px)); border-bottom:1px solid #d5e0e7; background:inherit; }
.app-menu-heading h2 { margin:0; font-size:18px; line-height:1.5; font-family:inherit; color:inherit; }
.app-menu-links { display:grid; gap:0; padding:8px 16px calc(20px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px)); }
.app-menu-links a { display:flex; align-items:center; min-height:48px; padding:10px 8px; box-sizing:border-box; border-bottom:1px solid #e6edf2; border-radius:0; color:inherit; text-decoration:none; font:600 15px/1.6 -apple-system,BlinkMacSystemFont,"Yu Gothic",Meiryo,sans-serif; overflow-wrap:anywhere; }
.app-menu-links a:hover,.app-menu-links a:focus-visible { background:#edf4f8; }
.app-menu-links a:focus-visible { outline:2px solid #2682af; outline-offset:0; }
.app-menu-subheading { margin:16px 8px 4px; font-size:12px; line-height:1.5; color:#617786; }
html[data-color-mode="dark"] :is(.app-menu-button,.app-menu-close) { background:#242424; color:#fafafa; border-color:#505050; box-shadow:none; }
html[data-color-mode="dark"] .app-menu-dialog { background:#161616; color:#fafafa; border-color:#505050; }
html[data-color-mode="dark"] .app-menu-heading { border-color:#505050; }
html[data-color-mode="dark"] .app-menu-links a { border-color:#3a3a3a; }
html[data-color-mode="dark"] .app-menu-links a:is(:hover,:focus-visible) { background:#303030; }
html[data-color-mode="dark"] .app-menu-subheading { color:#ccc; }
@media(max-width:1024px) {
  body.app-nav-touch #appMenuButton { display:none; top:env(safe-area-inset-top,0px); left:env(safe-area-inset-left,0px); width:44px; height:44px; min-width:44px; min-height:44px; border:0; background:transparent; box-shadow:none; font-size:20px; }
  body.app-nav-touch.app-menu-revealed #appMenuButton { display:inline-flex; }
  body.app-nav-touch :is(#fixedPageNav,#counterWrap) { max-width:calc(100% - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)); }
  body.app-nav-touch.app-nav-root .brand-inner { padding-left:max(20px,env(safe-area-inset-left,0px)); }
  body.app-nav-book:not(.app-nav-touch) .book-header { padding-left:max(72px,env(safe-area-inset-left,0px)); }
}
@media(max-width:360px) {
  body.app-nav-ready.fixed-page-nav-open .screen.active > :is(.hero,.topbar) { padding-top:calc(122px + env(safe-area-inset-top,0px)) !important; }
  body.app-nav-ready .quiz-header { padding-top:calc(146px + env(safe-area-inset-top,0px)) !important; }
  body.app-nav-ready.page-nav-modal-open .modal.show { padding-top:calc(130px + env(safe-area-inset-top,0px)); }
  body.app-nav-book .book-header .brand strong { font-size:15px; }
  body.app-nav-book .book-header .header-inner { gap:4px; }
}
