/* Final mobile layout layer; desktop styles remain intact. */
.mobile-navigation{display:none}
@media (max-width:1400px), (max-width:1400px) and (pointer:coarse){
html{width:100%;max-width:100%;-webkit-text-size-adjust:100%;scroll-padding-top:76px}body{min-width:0;width:100%;margin:0}*,*::before,*::after{box-sizing:border-box}input,select,textarea{font-size:16px!important}button,a,input,textarea,select{touch-action:manipulation}button,.button{min-height:44px}textarea{font-family:inherit}img,video,audio{max-width:100%}video{height:auto}input,textarea,select{min-width:0}
body.auth-active .auth-shell{width:100%;min-height:100dvh;height:auto;padding:24px 16px calc(24px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center}body.auth-active.register-mode .auth-shell{align-items:flex-start}body.auth-active .auth-panel-track{width:100%;min-width:0;height:auto;overflow:visible;padding:0;display:block}body.auth-active .auth-panel{width:100%;max-width:450px;min-width:0;max-height:none;height:auto;margin:0 auto;padding:26px 22px;border-radius:22px;transform:none}body.auth-active .auth-mobile-mark{margin-bottom:26px}body.auth-active #authTitle{font-size:27px;line-height:1.22}body.auth-active #authHint{font-size:14px;line-height:1.6}body.auth-active #authForm{gap:16px}body.auth-active #authForm input{width:100%;min-height:48px;padding:12px 14px;border-radius:12px}body.auth-active .register-name-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}body.auth-active #telegramSignupFields .telegram-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}body.auth-active .telegram-code-row button{padding:10px 14px;min-height:48px}body.auth-active #authSubmit{min-height:50px;border-radius:12px;font-size:16px}body.auth-active .auth-switch{flex-wrap:wrap;justify-content:center;gap:3px}body.auth-active #forgotPassword{min-height:44px}body.auth-active .device-note{font-size:11px;line-height:1.6}
body.app-active .topbar{position:sticky;top:0;z-index:60;display:grid;grid-template-columns:44px minmax(0,1fr) auto;min-height:64px;gap:8px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top));background:var(--paper);border-bottom:1px solid var(--line)}body.app-active .topbar>.quiz-menu-toggle{grid-column:1;grid-row:1;width:44px;height:44px;flex-basis:44px}body.app-active .topbar-brand{grid-column:2;grid-row:1;max-width:100%;font-size:15px}body.app-active .topbar-right{grid-column:3;grid-row:1;gap:5px;flex-wrap:nowrap}body.app-active .topbar .site-fullscreen-button,body.app-active .topbar .global-size-controls{display:none}body.app-active .topbar .theme-toggle{width:44px;min-width:44px;height:44px;overflow:hidden}body.app-active .top-user{display:none}body.app-active #notificationToggle{width:44px;height:44px;padding:5px}body.app-active .sidebar{width:min(310px,88vw);padding-top:max(22px,env(safe-area-inset-top))}body.app-active .sidebar .nav-item{min-height:48px;justify-content:flex-start;padding:10px 13px;gap:12px;font-size:14px}body.app-active .sidebar .side-bottom{padding-top:20px}body.app-active .sidebar .offline-card{display:none}.sidebar-contact-link{min-height:48px;width:100%;text-align:left}body.app-active .main-column{min-width:0;padding-bottom:calc(78px + env(safe-area-inset-bottom))}body.app-active #pageContent{min-width:0;padding:22px 16px 24px}.mobile-navigation{position:fixed;inset:auto 0 0;z-index:85;display:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:6px 10px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--paper);box-shadow:0 -4px 24px #142b4710}body.app-active:not(.quiz-page):not(.quiz-focus-mode) .mobile-navigation{display:grid}.mobile-navigation button{display:grid;place-content:center;gap:4px;min-height:52px;border:0;border-radius:12px;background:transparent;color:var(--muted);font:600 11px 'DM Sans',sans-serif}.mobile-navigation button span{font-size:21px;line-height:1}.mobile-navigation button.active{background:var(--mint);color:var(--green)}body[data-theme=dark] .mobile-navigation button.active{background:#243d60;color:#a5c9ff}body.sidebar-open{overflow:hidden}.notification-panel{position:fixed!important;inset:calc(72px + env(safe-area-inset-top)) 12px auto!important;width:auto!important;max-height:70dvh!important}
.section-header h1,.greeting-row h1{font-size:27px;line-height:1.25}.section-header p{font-size:14px;line-height:1.65}.greeting-row,.section-header,.card-head{min-width:0;gap:12px;flex-wrap:wrap}.content-grid,.metric-grid,.course-grid,.bank-grid,.hierarchy-grid{min-width:0}.level-summary{flex-wrap:wrap;gap:14px}.level-summary>div{min-width:0}.level-search{width:100%;max-width:100%;flex-basis:100%}.level-search input{height:46px;font-size:16px}.breadcrumbs{display:flex;flex-wrap:wrap;gap:7px;line-height:1.6}.hierarchy-card,.test-info,.custom-module-card-main{min-width:0;overflow-wrap:anywhere}.custom-module-card{min-width:0;gap:14px;padding:18px}.custom-module-hero{padding:22px 18px}.custom-module-copy h2{font-size:23px}.custom-module-mark{display:none}.module-redeem-form{display:flex;flex-wrap:wrap;gap:10px}.module-redeem-form label{width:100%}.module-redeem-form input{width:100%;min-height:46px}.module-redeem-form button{width:100%}.custom-module-card-actions{width:100%}.custom-module-card-actions button{white-space:normal;line-height:1.5}.settings-page{min-width:0}.settings-accordion-body{padding:16px!important}.builder-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subscription-controls{min-width:0;width:100%}.subscription-controls label{width:100%}.subscription-controls input,.subscription-controls select{width:100%;max-width:none}.module-wizard,.choice-dialog,.custom-module-dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;border-radius:20px}.modal-backdrop,.custom-module-backdrop{padding:12px!important;align-items:center}.module-wizard .builder-route,.builder-check-list{grid-template-columns:1fr}.builder-footer{padding-bottom:calc(12px + env(safe-area-inset-bottom))!important;gap:8px}.builder-footer button{flex:1;min-width:110px}.share-module-link-row{display:flex;flex-wrap:wrap}.share-module-link-row input{width:100%;flex-basis:100%}
body.quiz-page .main-column{padding-bottom:0}body.quiz-page #pageContent{padding:16px 12px 24px}.quiz-shell{max-width:100%;min-width:0}.quiz-tool-row{flex-wrap:wrap;gap:8px}.quiz-tool-row button{min-height:44px}.question-card{padding:19px 16px;border-radius:18px}.question-text{font-size:calc(16px * var(--reader-scale,1));line-height:1.7;overflow-wrap:anywhere}.option,.review-option{min-height:54px;padding:14px 12px;gap:10px;align-items:flex-start;line-height:1.6}.option-label{flex-shrink:0}.option>span:last-child,.review-option>span{min-width:0}.question-text table,.explanation table{display:block;max-width:100%;overflow:auto}.question-text img,.option img,.answer-panel img{max-width:100%;height:auto}.quiz-actions{display:flex;flex-wrap:wrap;gap:8px;padding:14px 0}.quiz-actions .quiz-inline-answer{flex-basis:100%;width:100%;min-height:50px;order:3}.quiz-inline-leave,.quiz-inline-end{flex:1;min-height:44px}.answer-panel{padding:18px 14px;overflow-wrap:anywhere}.personal-controls{flex-wrap:wrap;gap:10px}.personal-controls textarea{width:100%}.question-navigator{max-width:100%;overflow-x:auto}.review-actions{flex-wrap:wrap;gap:10px}.review-actions button{flex:1}.image-load-box{min-width:0!important;max-width:100%}.image-load-state{padding:20px 12px!important}.admin-rail{max-width:100%;overflow:auto;flex-wrap:nowrap}.admin-grant-grid,.admin-metrics{grid-template-columns:1fr}.admin-heading{align-items:flex-start}.admin-heading h1{font-size:25px}.admin-member-expiry{white-space:normal}.community-dialog{max-width:100%;}.community-dialog textarea{font-size:16px!important}.chat-module-card{max-width:100%}.chat-module-card a{overflow-wrap:anywhere}
}
@media(max-width:360px){body.auth-active .auth-panel{padding:24px 16px}.builder-review-grid{grid-template-columns:1fr}body.app-active .topbar{gap:5px;padding-inline:8px}body.app-active .topbar-brand{font-size:13px}.question-card{padding:16px 12px}.community-message header{flex-wrap:wrap}.chat-live{display:none}}

@media(max-width:600px){.modal-backdrop:has(.community-dialog){padding:0!important}.modal-backdrop .community-dialog{width:100%;height:100dvh;max-height:100dvh;border-radius:0}.community-dialog [data-community-content]{padding-bottom:max(12px,env(safe-area-inset-bottom))}}

@media (max-width:1400px), (max-width:1400px) and (pointer:coarse){.modal-backdrop,.custom-module-backdrop{z-index:200!important}body:has(.modal-backdrop) .mobile-navigation,body:has(.custom-module-backdrop) .mobile-navigation{display:none!important}}
@media(max-width:600px){.modal-backdrop:has(.community-dialog){inset:0!important;height:100dvh;overflow:hidden}.modal-backdrop .community-dialog{height:100%;max-height:100%;min-height:0}.community-dialog [data-community-content]{min-height:0}.community-dialog [data-chat]{padding-bottom:4px}}

@media (max-width:1400px), (max-width:1400px) and (pointer:coarse){body.app-active .topbar .theme-toggle,body.app-active .topbar .theme-toggle.is-dark{position:relative!important;display:block!important;width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:12px!important;overflow:hidden!important}body.app-active .topbar .theme-toggle::before{display:none!important}body.app-active .topbar .theme-toggle .theme-toggle-knob{display:none!important}body.app-active .topbar .theme-toggle::after{content:'☀';position:absolute;inset:4px;display:grid;place-items:center;border-radius:11px;background:var(--canvas);color:var(--ink);font-size:21px;font-weight:400;line-height:1;transform:none!important}body.app-active .topbar .theme-toggle.is-dark::after{content:'☾';color:#e6c98a;background:#26364c}}

/* Use native document scrolling on phones instead of stacked fixed scroll panes. */
@media (max-width:1400px), (max-width:1400px) and (pointer:coarse){html:has(body.app-active:not(.quiz-focus-mode)){height:auto;min-height:100%;overflow-x:clip;overflow-y:auto;overscroll-behavior-y:auto}body.app-active:not(.quiz-focus-mode){position:relative;inset:auto;height:auto;min-height:100dvh;overflow:visible;overscroll-behavior-y:auto}body.app-active:not(.quiz-focus-mode) #appView{position:relative;inset:auto;height:auto;min-height:100dvh;overflow:visible}body.app-active:not(.quiz-focus-mode) .app-shell{display:block;height:auto;min-height:100dvh;overflow:visible}body.app-active:not(.quiz-focus-mode) .main-column{display:block;height:auto;min-height:100dvh;overflow:visible;padding-bottom:calc(86px + env(safe-area-inset-bottom))}body.app-active:not(.quiz-focus-mode) #pageContent{display:block;flex:none;height:auto;min-height:0;max-height:none;overflow:visible;overscroll-behavior:auto;padding-bottom:32px;scrollbar-gutter:auto}body.app-active .hierarchy-browser{height:auto!important;max-height:none!important;overflow:visible!important;overscroll-behavior:auto;scrollbar-gutter:auto;padding-bottom:24px}body.app-active .sidebar{inset:0 auto 0 0;height:100dvh;max-height:100dvh;display:flex;flex-direction:column;overflow-y:auto!important;overflow-x:hidden;touch-action:pan-y;-webkit-overflow-scrolling:touch;padding-bottom:calc(32px + env(safe-area-inset-bottom));scroll-padding-bottom:32px}body.app-active .sidebar>*{flex-shrink:0}body.app-active .sidebar nav{flex:none;height:auto!important;overflow:visible}body.app-active .sidebar .side-bottom{flex:none;display:block;margin-top:24px;padding-bottom:20px}body.app-active.sidebar-open .mobile-navigation{display:none!important}html:has(body.app-active.sidebar-open){overflow:hidden}body.app-active.sidebar-open{overflow:hidden}body.app-active .topbar{flex-shrink:0}body.app-active.quiz-page:not(.quiz-focus-mode) .main-column{padding-bottom:24px}body.app-active:not(.quiz-focus-mode) .settings-page,body.app-active:not(.quiz-focus-mode) .custom-module-list{max-height:none;overflow:visible}}

:root{--usable-height:100vh}@supports(height:100dvh){:root{--usable-height:100dvh}}
@media (min-width:601px) and (max-width:1400px), (min-width:601px) and (max-width:1400px) and (pointer:coarse){body.auth-active .auth-brand{display:none}body.auth-active .auth-shell{background:var(--canvas)}body.auth-active .auth-mobile-mark{display:flex}body.app-active #pageContent{max-width:1160px;margin-inline:auto;padding-inline:28px}.bank-grid,.topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-navigation{padding-inline:max(16px,calc((100vw - 760px)/2))}.community-dialog{width:min(760px,calc(100vw - 48px));height:min(780px,calc(var(--usable-height) - 40px));max-height:calc(var(--usable-height) - 40px)}.custom-module-dialog,.module-wizard{width:min(860px,calc(100vw - 40px));max-height:calc(var(--usable-height) - 40px)}.choice-dialog{width:min(520px,calc(100vw - 40px));max-height:calc(var(--usable-height) - 40px)}.module-wizard .builder-route,.builder-review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-layout{grid-template-columns:minmax(0,1fr)}.admin-rail{display:flex;flex-direction:row;overflow-x:auto;min-width:0}.admin-rail>p{display:none}.admin-rail button{flex:none;white-space:nowrap}.admin-content,.admin-pane,.admin-account-card{min-width:0}}
@media (max-width:1400px), (max-width:1400px) and (pointer:coarse){body.app-active .sidebar{height:var(--usable-height);max-height:var(--usable-height)}.modal-backdrop,.custom-module-backdrop{box-sizing:border-box;max-height:var(--usable-height);overflow:auto}.module-wizard,.choice-dialog,.custom-module-dialog{max-height:calc(var(--usable-height) - 24px);min-height:0}.community-dialog{min-height:0}.community-dialog [data-community-content],.community-messages{min-height:0}.community-dialog [data-chat],.community-dialog>header,.community-dialog .chat-room-bar{flex-shrink:0}.builder-footer{flex-shrink:0}body.app-active .hierarchy-browser{touch-action:pan-y}.settings-accordion{overflow:clip}body.app-active .topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}
@media(max-width:600px){.modal-backdrop:has(.community-dialog){height:var(--usable-height)}.modal-backdrop .community-dialog{height:100%;max-height:100%}}

@media(max-width:1400px){.mobile-navigation{left:0!important;right:0!important;width:100%;height:auto;min-height:64px;padding-top:6px;padding-bottom:max(6px,env(safe-area-inset-bottom));box-sizing:border-box;transform:none!important;margin:0;border-bottom:0;z-index:100}body.app-active:not(.quiz-focus-mode){padding-bottom:0;background:var(--canvas)}body.app-active:not(.quiz-focus-mode) .main-column{padding-bottom:calc(92px + env(safe-area-inset-bottom))}html:has(body.app-active){background:var(--canvas)}.mobile-navigation button{min-height:48px}}

/* Let WebKit anchor the dock; never retain viewport-derived top coordinates. */
@media(max-width:1400px){body.app-active .mobile-navigation{position:fixed!important;inset:auto 0 0 0!important;top:auto!important;bottom:0!important;left:0!important;right:0!important;transform:none!important;translate:none!important;align-self:auto;max-height:none;height:auto;box-sizing:border-box;padding-bottom:max(8px,env(safe-area-inset-bottom));margin:0!important}html:has(body.app-active),body.app-active{transform:none!important;filter:none;perspective:none;contain:none;zoom:1!important}body.app-active:not(.quiz-focus-mode) .main-column{padding-bottom:calc(96px + env(safe-area-inset-bottom))}}

/* A single scroll surface keeps iPad browser chrome from moving the app dock. */
@media(max-width:1400px){html:has(body.app-active){height:100%!important;min-height:0!important;overflow:hidden!important;overscroll-behavior:none}body.app-active:not(.quiz-focus-mode){position:fixed!important;inset:0!important;height:100%!important;min-height:0!important;overflow:hidden!important}body.app-active:not(.quiz-focus-mode) #appView{position:absolute!important;inset:0!important;display:block;height:100%!important;min-height:0!important;overflow:hidden!important}body.app-active:not(.quiz-focus-mode) .app-shell{height:100%!important;min-height:0!important;overflow:hidden!important}body.app-active:not(.quiz-focus-mode) .main-column{display:flex!important;flex-direction:column;height:100%!important;min-height:0!important;padding:0!important;overflow:hidden!important}body.app-active:not(.quiz-focus-mode) .topbar{position:relative!important;top:auto!important;flex:0 0 auto}body.app-active:not(.quiz-focus-mode) #pageContent{display:block;flex:1 1 0!important;height:0!important;min-height:0!important;max-height:none!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;padding-bottom:calc(100px + env(safe-area-inset-bottom))!important;touch-action:pan-y}body.app-active .hierarchy-browser{max-height:none!important;height:auto!important;overflow:visible!important}body.app-active .mobile-navigation{position:absolute!important;inset:auto 0 0!important;bottom:0!important;top:auto!important;height:auto;z-index:100}body.app-active .sidebar{height:100%!important;max-height:100%!important;overflow-y:auto!important}body.app-active.quiz-page:not(.quiz-focus-mode) #pageContent{padding-bottom:32px!important}body.quiz-focus-mode #appView{position:fixed;inset:0;height:100%;min-height:0;overflow:hidden}body.quiz-focus-mode .main-column{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}body.quiz-focus-mode #pageContent{height:0;min-height:0;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}}

/* Device-limit view replaces the form; it must not sit below an invisible form. */
body.device-limit-active .auth-panel-track>.auth-panel:first-child{display:none!important;transform:none!important}body.device-limit-active #deviceLimitView:not(.hidden){display:block!important;position:relative!important;inset:auto!important;transform:none!important;opacity:1!important;min-height:0!important;height:auto!important;width:100%;max-width:100%;overflow:visible!important;pointer-events:auto}body.device-limit-active .auth-shell{height:auto!important;min-height:100vh;min-height:100dvh;align-items:flex-start!important;overflow:visible;padding-top:max(18px,env(safe-area-inset-top));padding-bottom:calc(24px + env(safe-area-inset-bottom))}body.device-limit-active .auth-panel-track{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;margin-block:20px}body.device-limit-active{position:relative!important;inset:auto!important;height:auto!important;overflow-y:auto!important}html:has(body.device-limit-active){height:auto!important;overflow-y:auto!important}#deviceLimitView .device-limit-card{min-width:0;max-width:100%;text-align:left}#deviceLimitView .device-limit-list li{min-width:0;flex-wrap:wrap;justify-content:flex-start;gap:10px;padding:10px 0}#deviceLimitView .login-device-name{flex:1;min-width:100px;overflow-wrap:anywhere}#deviceLimitView .device-limit-signout{min-height:44px;font-size:12px}#deviceLimitView .device-limit-copy{font-size:13px;line-height:1.7}#deviceLimitView .device-limit-actions{display:flex;flex-wrap:wrap;gap:10px}#deviceLimitView .device-limit-actions button{min-height:46px;white-space:normal}.ios-browser-help{margin:14px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--canvas);color:var(--ink);font-size:12px;line-height:1.6}.ios-browser-help summary{font-weight:700;cursor:pointer}.ios-browser-help button{min-height:44px}.ios-browser-help input{width:100%;font-size:16px;margin:10px 0}.ios-browser-help p{margin:8px 0}.ios-browser-help ol{padding-left:20px}.ios-browser-help .button{width:auto}

#deviceLimitView #deviceTakeover,#deviceLimitView #deviceLimitCancel{display:block;width:100%;max-width:100%;height:auto;min-height:46px;padding:12px 14px;white-space:normal;overflow-wrap:anywhere;line-height:1.5;margin:10px 0 0}

/* Keep the touch fullscreen fallback inside the visible viewport with one scroll pane. */
@media(max-width:1400px),(pointer:coarse){
body.app-active.quiz-focus-mode{position:fixed!important;inset:0!important;height:var(--usable-height,100dvh)!important;min-height:0!important;overflow:hidden!important}
body.app-active.quiz-focus-mode #appView,body.app-active.quiz-focus-mode .app-shell,body.app-active.quiz-focus-mode .main-column{height:100%!important;min-height:0!important;overflow:hidden!important}
body.app-active.quiz-focus-mode .main-column{display:flex!important;flex-direction:column;padding:0!important}
body.app-active.quiz-focus-mode #pageContent{flex:1 1 0!important;height:0!important;min-height:0!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
}
