/* ISG: one layout system for phones, tablets and desktop workspaces. */
:root{--isg-space:clamp(14px,1.8vw,26px);--isg-safe-bottom:env(safe-area-inset-bottom,0px)}
html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable}
body{min-width:0}
.workspace,.content,.content>*,.grid>*,.teacher-analytics>*,.ta-filter,.ta-filter-main>*,.ta-advanced-grid>*,.lib-editor-layout>*,.profile-information-grid>*{min-width:0}
.workspace{width:0}
.content{width:100%;max-width:1600px}
.panel{padding:var(--isg-space)}
.page-heading h1{font-size:clamp(25px,2.5vw,36px);line-height:1.22;overflow-wrap:anywhere}
.page-heading p{line-height:1.6}
.section-heading{flex-wrap:wrap}
.section-heading>*{min-width:0;max-width:100%}
.btn{min-height:44px;max-width:100%;overflow-wrap:anywhere}
label,fieldset,form,details{min-width:0}
fieldset{max-width:100%}
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea,select{max-width:100%}
input[type=file]{overflow:hidden}
.table-wrap,.am-table-scroll,.ta-table-scroll,.rich-table{position:relative;max-width:100%;min-width:0;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#9ebfab #eef5ef}
.table-wrap:focus-visible,.am-table-scroll:focus-visible,.ta-table-scroll:focus-visible{outline:3px solid #72a78b;outline-offset:3px}
.table-wrap table{min-width:560px}
.table-wrap td{overflow-wrap:anywhere}
.rich-table table{min-width:0}
.rich-code{tab-size:4;max-width:100%;overscroll-behavior-x:contain}
.rich-line,.question-body,.option-content,.bank-copy,.review-q-body{min-width:0;overflow-wrap:anywhere}
.rich-line img,.question-image,.rich-image{height:auto;object-fit:contain}
.katex-display{max-width:100%;overscroll-behavior-x:contain}
dialog{width:min(600px,calc(100% - 28px));max-width:calc(100% - 28px);max-height:calc(100dvh - 28px);overflow:auto;overscroll-behavior:contain}
.studio-dialog{width:min(840px,calc(100% - 28px));max-width:calc(100% - 28px)}
.dialog-actions{display:flex;flex-wrap:wrap;gap:10px}
.dialog-actions .btn{flex:1}
.sidebar nav{min-height:0;overflow-y:auto;overscroll-behavior:contain}
.sidebar-bottom{flex-shrink:0}
.sidebar-close,.nav-backdrop{display:none}
.profile-identity-copy,.profile-identity,.profile-info dd{min-width:0;overflow-wrap:anywhere}
.profile-identity h2{overflow-wrap:anywhere}
.ta-filter-main,.ta-advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.teacher-analytics{grid-template-columns:minmax(0,1fr);max-width:100%}
.dynamics-chart{max-width:100%;min-width:0}
.dynamics-scroll{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain}
.dynamics-svg{display:block;width:100%;height:auto}
.am-chart-fit svg{max-width:100%}
.am-week-dropdown>summary{flex-wrap:wrap;gap:8px}
.am-week-menu{max-height:min(430px,70dvh);overflow:auto;overscroll-behavior:contain}
.quiz-root .quiz-question,.quiz-question-stage,.quiz-workspace,.quiz-match-row>*{min-width:0}
.quiz-option{touch-action:manipulation}
.quiz-passage .passage-body,.passage-body{overscroll-behavior:contain}
.select-popup{overscroll-behavior:contain}
.select-option{min-height:44px;overflow-wrap:anywhere}
.select-search{font-size:16px!important}
.lib-reader-stage{min-width:0;max-width:100%;overscroll-behavior:contain}
.lib-reader-tools{flex-wrap:wrap}
.lib-card-body,.lib-detail-copy{min-width:0;overflow-wrap:anywhere}
.login-layout{min-height:100svh}

/* Laptop: reserve enough width for writing; desktop retains both editor panes. */
@media(min-width:1025px) and (max-width:1279px){
 .sidebar{width:210px;padding:20px 12px}
 .app-shell{gap:16px;padding:16px}
 #question-editor{grid-template-columns:minmax(0,1fr)}
 #question-editor .editor-queue{position:static;max-height:none}
 .grid.three:not(.stats){grid-template-columns:repeat(2,minmax(0,1fr))}
 .grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
 .lib-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Tablet: drawer navigation, roomy two-column content, no squeezed desktop rail. */
@media(max-width:1024px){
 .app-shell{display:block;padding:16px}
 .workspace{width:100%;max-width:100%}
 .content{padding:0}
 .sidebar{position:fixed;inset:12px auto 12px 12px;width:min(292px,calc(100vw - 36px));height:calc(100dvh - 24px);max-height:calc(100dvh - 24px);padding:22px 16px;z-index:220;background:#fcfffefa;transform:translateX(calc(-100% - 24px));visibility:hidden;transition:transform .22s ease,visibility .22s;box-shadow:none}
 .sidebar.open{transform:translateX(0);visibility:visible;box-shadow:0 15px 60px #123c3033}
 .sidebar .brand{padding-right:38px;margin-bottom:23px}
 .sidebar .nav-link{min-height:46px;font-size:14px;margin-bottom:3px}
 .sidebar-close{display:grid;place-items:center;position:absolute;right:12px;top:20px;width:44px;height:44px;border:0;border-radius:12px;color:#315f49;background:#eaf4ec;font-size:27px;line-height:1}
 .nav-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:210;background:#123c3066;backdrop-filter:blur(3px);border:0;width:100%;height:100%;padding:0;cursor:pointer}
 body.nav-open{overflow:hidden}
 #menu-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0}
 .topbar{min-height:60px;margin:0 0 20px;gap:14px;z-index:45}
 .topbar:not(:has(.spark-widget)){display:grid;grid-template-columns:44px minmax(0,1fr) auto}
 .topbar .school-name{min-width:0;font-size:13px}
 .topbar-actions{min-width:0}
 .topbar:has(.spark-widget){grid-template-columns:44px minmax(0,1fr) auto}
 .topbar:has(.spark-widget) .school-name{display:none}
 .account-label,.account-chevron{display:none}
 .account-trigger.account{padding:4px;gap:0;min-height:44px;min-width:44px;justify-content:center}
 .account-panel{position:fixed;right:16px;top:82px;max-height:calc(100dvh - 100px);overflow:auto}
 .grid.three:not(.stats),.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hero{padding:28px;min-height:240px}
 .hero h1{font-size:clamp(28px,4vw,42px)}
 .hero-mark{width:175px}
 .hero-mark img{height:155px}
 .taxonomy-grid{grid-template-columns:minmax(0,1fr)}
 #question-editor{grid-template-columns:minmax(0,1fr)}
 #question-editor .editor-queue{position:static;max-height:none}
 .editor-mobile-tabs{display:flex;gap:10px;position:sticky;top:0;z-index:10;background:#f3f8f4;padding:10px 0}
 .editor-mobile-tabs .btn{flex:1;font-size:14px}
 #question-editor[data-pane=write] .editor-queue{display:none}
 #question-editor[data-pane=list] .editor-write{display:none}
 .editor-draftbar{flex-wrap:wrap}
 .lib-editor-layout{grid-template-columns:minmax(0,1fr)}
 .lib-upload-fields{border-left:0;padding-left:0}
 .lib-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
 .quiz-workspace{grid-template-columns:minmax(0,1fr)}
 .quiz-map-panel{position:static}
}

/* Phone: one task per row, readable controls, thumb-sized actions. */
@media(max-width:600px){
 :root{--isg-space:18px}
 .app-shell{padding:12px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
 .content{padding-bottom:var(--isg-safe-bottom)}
 .topbar{gap:10px;margin-bottom:18px}
 .topbar .school-name{font-size:12px;max-width:none}
 .topbar .school-name span{font-size:10px}
 .page-heading{margin-bottom:20px}
 .page-heading h1{font-size:26px;letter-spacing:-.6px}
 .page-heading p{font-size:14px}
 .section-heading h2,.panel h2{font-size:18px;line-height:1.4}
 .panel{border-radius:18px}
 .grid.two,.grid.three:not(.stats),.grid.four{grid-template-columns:minmax(0,1fr);gap:14px}
 .stats.three{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .stat{padding:14px 11px;border-radius:15px}
 .stat>span{font-size:12px;line-height:1.5;padding:0}
 .stat>strong{font-size:24px;margin:10px 0 4px}
 .stat:after{display:none}
 .stat>small{font-size:11px}
 .btn{font-size:14px;min-height:46px;padding:11px 14px;border-radius:12px}
 .toolbar{gap:9px;margin-bottom:18px}
 .toolbar>.btn,.toolbar>form{flex:1 1 140px}
 .toolbar>form>.btn{width:100%}
 .filter-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px}
 .filter-bar label{min-width:0;width:100%;font-size:13px}
 .filter-bar>.btn{width:100%}
 .filter-bar>.btn:last-child:nth-child(odd){grid-column:1/-1}
 .filter-bar .select-trigger{min-width:0}
 input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea,.select-trigger{font-size:16px!important;min-height:46px}
 label{font-size:13px;line-height:1.5}
 .select-option{font-size:15px;padding:12px 13px}
 .select-popup{border-radius:15px}
 .chips{gap:7px}
 .check-chip{min-height:44px;font-size:13px;padding:8px 11px}
 .inline-form{flex-wrap:wrap}
 .inline-form input{flex:1 1 150px}
 .inline-form>.btn{flex:1}
 .accounts-toolbar{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
 .accounts-toolbar>.filter-bar{min-width:0}
 .accounts-toolbar>form .btn{width:100%}
 .table-wrap{border-radius:12px}
 .table-wrap th,.table-wrap td{font-size:13px}
 .table-wrap th{padding:12px 10px}
 .table-wrap td{padding:13px 10px}
 .table-wrap td strong{font-size:14px}
 .table-wrap td small{font-size:12px}
 .table-wrap .btn{font-size:13px;min-height:44px}
 .am-matrix .am-index{min-width:38px;width:38px;max-width:38px}
 .am-matrix .am-name{left:38px;min-width:132px;max-width:155px}
 .am-matrix .am-name strong,.am-matrix .am-name a{font-size:13px}
 .am-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .am-filters>*{min-width:0;max-width:100%}
 .admin-matrix .am-filters .btn{width:100%}
 .am-chart-fit svg{height:210px}
 .ta-filter-main,.ta-advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .ta-filter-main>label{min-width:0}
 .ta-filter-main>.btn{font-size:14px;min-width:0}
 .teacher-analytics .panel{padding:17px}
 .ta-profile-head{gap:12px}
 .ta-eyebrow,.ta-row-secondary,.ta-neutral{font-size:14px}
 .ta-module>header h3{font-size:18px}
 .dynamics-chart{overflow:visible;padding:0}
 .dynamics-svg{width:100%;height:auto}
 .subject-tabs,.result-subject-tabs{max-width:100%;overscroll-behavior-x:contain;scrollbar-width:thin}
 .test-card{padding:19px}
 .test-card h3{font-size:17px}
 .test-meta,.deadline small{font-size:13px}
 .deadline{flex-wrap:wrap;gap:7px}
 .deadline strong{font-size:14px}
 .question-actions{width:100%;gap:8px}
 .question-actions .btn{flex:1 1 110px}
 .question-actions form{flex:1 1 110px}
 .question-actions form .btn{width:100%}
 .bank-row{gap:12px}
 .bank-tools{gap:8px;position:static}
 .bank-tools .btn{flex:1 1 120px}
 .bank-tools strong{flex-basis:100%}
 #question-editor .panel{padding:16px}
 #question-editor .grid.two,#question-editor .grid.three{grid-template-columns:minmax(0,1fr)}
 #question-editor .grid.three>label:last-child{grid-column:auto}
 .editor-mobile-tabs .btn{min-width:0;padding:10px;font-size:14px}
 .editor-draftbar{font-size:13px;gap:8px}
 .rich-toolbar button{min-height:44px;min-width:44px;font-size:13px;padding:9px 11px}
 .matching-columns{grid-template-columns:minmax(0,1fr)}
 .option-edit{grid-template-columns:28px minmax(0,1fr) 44px;gap:7px}
 .option-edit input[type=checkbox],.option-edit input[type=radio]{width:24px;height:24px}
 .option-upload{min-width:44px;min-height:44px;display:grid;place-items:center;margin:0}
 .save-destination label{min-height:44px;font-size:14px}
 .studio-zone,.matching-policy{padding:12px}
 .studio-dialog,dialog{padding:19px;border-radius:18px}
 .preview-device{padding:14px}
 .quiz-hud{top:6px;gap:10px;padding:12px;border-radius:16px}
 .quiz-heading h1{font-size:19px}
 .quiz-root .quiz-question{padding:19px 16px}
 .quiz-question .rich-line,.quiz-question .quiz-option{font-size:17px;line-height:1.7}
 .quiz-navigation .btn{min-height:48px;font-size:16px}
 .quiz-subject{flex-basis:175px;scroll-snap-align:start;min-height:80px}
 .quiz-numbers{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
 .quiz-number{min-height:44px}
 .quiz-match-row{grid-template-columns:minmax(0,1fr)!important}
 .passage-body{padding:0 14px 16px;font-size:16px;max-height:45dvh}
 .lib-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .lib-card-body{padding:13px 11px}
 .lib-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .lib-form-grid{grid-template-columns:minmax(0,1fr)}
 .lib-span-two{grid-column:auto}
 .lib-search-row{display:flex;min-width:0}
 .lib-search-row>input{min-width:0;flex:1}
 .lib-upload-fields{display:block;padding-top:20px}
 .lib-reader-tools{gap:8px;padding:12px}
 .lib-reader-tools .btn{font-size:13px;min-width:44px;min-height:44px;padding:9px}
 .lib-reader-toolbar{flex-wrap:wrap}
 .profile-info dl>div{grid-template-columns:82px minmax(0,1fr);gap:12px}
 .profile-form-footer .btn{min-width:0;font-size:14px}
 .profile-color{min-height:44px}
 .account-panel{top:78px;right:12px;max-height:calc(100dvh - 94px)}
 footer{font-size:12px;padding-bottom:max(15px,var(--isg-safe-bottom))}
}

@media(max-width:374px){
 .app-shell{padding:10px}
 .filter-bar,.ta-filter-main,.ta-advanced-grid{grid-template-columns:minmax(0,1fr)}
 .filter-bar>*{grid-column:auto!important}
 .lib-grid{grid-template-columns:minmax(0,1fr)}
 .lib-card{display:grid;grid-template-columns:105px minmax(0,1fr)}
 .lib-card-cover{height:100%;min-height:175px}
 .lib-card-body{display:flex;flex-direction:column;justify-content:center}
 .stats.three{grid-template-columns:minmax(0,1fr);gap:9px}
 .stat{padding:14px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px}
 .stat>span{font-size:13px}
 .stat>strong{font-size:24px;margin:0;grid-column:2;grid-row:1/3}
 .stat>small{grid-column:1;font-size:12px}
 .profile-hero{padding:20px}
 .profile-identity{gap:12px}
 .profile-identity h2{font-size:22px}
 .profile-info.panel{padding:18px}
 .am-filters{grid-template-columns:minmax(0,1fr)}
}

@media(max-height:540px) and (max-width:1024px){
 .sidebar{inset:6px auto 6px 6px;height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);padding:12px}
 .sidebar .brand{margin:0 45px 10px 0;font-size:24px}
 .sidebar .brand img{height:38px;width:34px}
 .sidebar .sidebar-label,.sidebar .rail-note{display:none}
 .sidebar .nav-link{min-height:42px;padding:9px 11px}
 .sidebar-bottom{margin-top:8px}
 .quiz-hud{position:static}
 .editor-mobile-tabs{position:static}
}

@media(hover:none) and (pointer:coarse){
 .btn:hover,.test-card:hover,.lib-card:hover{transform:none}
 .entity-actions button,.taxonomy-actions button{min-height:44px}
}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none}.nav-backdrop{backdrop-filter:none}}

/* v26: keep the account/ISG bar in document flow while scrolling. */
:root{--isg-header-height:76px;--isg-topbar-bottom:88px}
html:has(.workspace>.topbar){scroll-padding-top:calc(var(--isg-header-height) + 20px)}
.workspace>.topbar,.workspace>.topbar:has(.spark-widget){position:sticky;top:0;z-index:60;padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top,0px));background:#f3f8f4fa;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid #dbe9df;border-radius:0 0 17px 17px;box-shadow:0 7px 18px #204c3210;overflow:visible}
.workspace:has(>.topbar) .editor-mobile-tabs{top:var(--isg-header-height)}
.workspace:has(>.topbar) .bank-tools{top:calc(var(--isg-header-height) + 8px)}
@media(min-width:1025px){
 .workspace:has(>.topbar) .editor-queue{top:calc(var(--isg-header-height) + 16px);max-height:calc(100dvh - var(--isg-header-height) - 32px)}
}
@media(max-width:1024px){
 .workspace>.topbar,.workspace>.topbar:has(.spark-widget){padding-left:4px;padding-right:4px;margin-left:0;margin-right:0}
 .topbar .account-panel,.topbar .spark-panel{position:fixed;top:var(--isg-topbar-bottom);max-height:calc(100dvh - var(--isg-topbar-bottom) - 12px)}
 .topbar .spark-panel{left:50%;transform:translateX(-50%)}
}
@media(max-height:540px) and (max-width:1024px){
 .workspace:has(>.topbar) .editor-mobile-tabs{position:static}
}
