.owner-panel, #owner-dialog {
  --ink:#0b1f3a;--muted:#64748b;--line:#dbe5f1;--panel:#fff;--bg:#f3f7fc;--nav:#071426;--nav2:#102b4d;--blue:#2967e8;--blue-soft:#e9f0ff;--cyan:#14b8a6;--cyan-soft:#ddfbf6;--green:#39bf73;--green-soft:#e3f8ec;--red:#ef5264;--red-soft:#ffe7eb;--amber:#f2ad35;--amber-soft:#fff2d8;--purple:#8b5cf6;--purple-soft:#f0eaff;--blank:#e5eaf1;--shadow:0 14px 38px rgba(19,48,85,.08);--radius:18px
}
@scope (.owner-panel, #owner-dialog){
:root {
  --ink:#0b1f3a;--muted:#64748b;--line:#dbe5f1;--panel:#fff;--bg:#f3f7fc;--nav:#071426;--nav2:#102b4d;--blue:#2967e8;--blue-soft:#e9f0ff;--cyan:#14b8a6;--cyan-soft:#ddfbf6;--green:#39bf73;--green-soft:#e3f8ec;--red:#ef5264;--red-soft:#ffe7eb;--amber:#f2ad35;--amber-soft:#fff2d8;--purple:#8b5cf6;--purple-soft:#f0eaff;--blank:#e5eaf1;--shadow:0 14px 38px rgba(19,48,85,.08);--radius:18px
}
*{box-sizing:border-box}html{font-size:16px;scroll-behavior:auto}body{margin:0;background:var(--bg);color:var(--ink);font:500 1rem/1.45 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid #14b8a6;outline-offset:3px}.hidden{display:none!important}

/* Loading */
.loading-screen{position:fixed;inset:0;z-index:500;display:grid;place-content:center;justify-items:center;gap:16px;background:radial-gradient(circle at 50% 35%,#173c70,#071426 56%,#040b14);color:#b9c9dc;transition:opacity .28s ease,visibility .28s ease}.loading-screen.done{opacity:0;visibility:hidden;pointer-events:none}.loading-screen img{width:clamp(190px,24vw,300px);height:auto;filter:drop-shadow(0 22px 40px #0008)}.loading-screen>span{font-size:.78rem;letter-spacing:.08em}.loading-pulse{display:flex;gap:6px}.loading-pulse i{width:7px;height:7px;border-radius:50%;background:var(--cyan);animation:pulse 1s infinite alternate}.loading-pulse i:nth-child(2){animation-delay:.2s}.loading-pulse i:nth-child(3){animation-delay:.4s}@keyframes pulse{to{opacity:.25;transform:translateY(-4px)}}
.offline-screen{position:fixed;inset:0;z-index:490;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 18%,#174778,#071426 58%,#040b14);color:#fff;text-align:center}.offline-panel{width:min(500px,100%);display:grid;justify-items:center}.offline-logo{width:min(260px,68vw);filter:drop-shadow(0 18px 35px #0007);margin-bottom:25px}.offline-icon{display:grid;place-items:center;width:74px;height:74px;border-radius:50%;background:#ffffff10;border:1px solid #ffffff25;color:#7de2d5;font-size:2.4rem}.offline-panel h1{font-size:clamp(2rem,7vw,3.3rem);line-height:1;margin:10px 0}.offline-panel>p:not(.eyebrow){max-width:410px;color:#b8c7d9;margin:0 0 21px}.offline-creator{margin-top:32px;padding-top:20px;border-top:1px solid #ffffff1f;width:100%;justify-content:center;text-align:left}.offline-creator .creator-logo{width:58px;height:58px}.offline-creator small{color:#7fded2}
.access-screen{background:radial-gradient(circle at 50% 18%,#274b73,#08182d 58%,#040b14)}.access-panel .offline-icon{color:#ffd27e;border-color:#ffd27e45;background:#ffcb6b10}.access-support{font-size:.8rem!important}.access-support a{color:#8eeadd;font-weight:800}

/* App shell */
.app{min-height:100dvh;display:grid;grid-template-columns:244px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100dvh;background:linear-gradient(180deg,var(--nav),var(--nav2));color:#fff;padding:24px 16px 18px;display:flex;flex-direction:column;z-index:30}.side-brand,.auth-brand{display:flex;align-items:center;gap:12px}.side-brand{padding:0 9px 22px}.side-brand img{width:124px;height:auto;object-fit:contain}.side-brand span,.auth-brand span{display:block;color:#aebdd2;font-size:.74rem}.sidebar nav{display:grid;gap:5px}.sidebar nav button,.icon-text{border:0;background:transparent;color:#b7c5d8;border-radius:12px;padding:11px 13px;display:flex;gap:11px;align-items:center;text-align:left;transition:.16s ease}.sidebar nav button span{width:20px;text-align:center;font-size:1.05rem}.sidebar nav button:hover,.sidebar nav button.active{color:#fff;background:#ffffff15}.sidebar nav button.active{box-shadow:inset 3px 0 var(--cyan)}.side-foot{margin-top:auto;display:grid;gap:3px}.icon-text{padding:8px 13px}.icon-text:hover{color:#fff}.creator-lockup{display:flex;align-items:center;gap:12px}.creator-logo{display:grid;place-items:center;flex:0 0 auto;border-radius:50%;padding:4px;background:linear-gradient(135deg,var(--cyan),var(--blue),var(--purple));box-shadow:0 8px 22px #0003}.creator-logo img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid #fff}.creator-lockup>span:last-child{display:grid}.creator-lockup small{font-size:.58rem;letter-spacing:.12em;font-weight:800}.creator-lockup strong{font-size:1rem;letter-spacing:-.02em}.side-creator{margin-top:12px;padding:14px 9px 0;border-top:1px solid #ffffff18}.side-creator .creator-logo{width:52px;height:52px}.side-creator small{color:#7f94ad}.side-creator strong{color:#fff}main{min-width:0}.topbar{height:78px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 32px;gap:14px;position:sticky;top:0;z-index:20}.topbar>div{display:grid}.context-label{font-size:.64rem;letter-spacing:.16em;color:var(--blue);font-weight:850}.topbar strong{font-size:1.12rem}.round-btn,.menu-btn{margin-left:auto;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:850}.menu-btn{display:none;margin-left:0}.view{padding:28px clamp(18px,3.8vw,52px) 68px;max-width:1500px;margin:auto}

/* Reusable */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:22px}.page-head h1{margin:0;font-size:clamp(1.7rem,3vw,2.45rem);letter-spacing:-.045em}.page-head p{margin:5px 0 0;color:var(--muted)}.primary,.secondary,.danger,.success,.ghost,.text-button,.chip-button{border:0;border-radius:11px;padding:10px 15px;font-weight:780;transition:transform .12s,box-shadow .12s,background .12s}.primary:hover,.secondary:hover,.ghost:hover,.success:hover,.danger:hover{transform:translateY(-1px)}.primary{background:linear-gradient(135deg,#3172ed,#255bd0);color:#fff;box-shadow:0 7px 18px #2967e833}.primary:hover{box-shadow:0 10px 24px #2967e842}.secondary{background:#edf3fb;color:var(--ink);border:1px solid #d5e1ee}.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.danger{background:var(--red);color:#fff}.success{background:var(--green);color:#062617}.text-button{background:transparent;color:var(--blue)}.wide{width:100%}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.eyebrow{color:#57dfc7;font-size:.7rem;font-weight:850;letter-spacing:.16em}.section-title{display:flex;align-items:center;justify-content:space-between;margin:26px 0 11px}.section-title h2{font-size:1.04rem;margin:0}.progress-fill{background:linear-gradient(90deg,rgba(57,191,115,.11) 0 var(--gp),rgba(239,82,100,.10) var(--gp) var(--rp),transparent var(--rp))}.chev{border:0;background:transparent;font-size:1.05rem;color:var(--muted);width:36px;height:36px;border-radius:9px}.chev:hover{background:#edf3fa;color:var(--blue)}.expandable{cursor:pointer}.expandable:hover{box-shadow:inset 0 0 0 1px #aebfdb}

/* Auth */
.auth-screen{min-height:100dvh;background:radial-gradient(circle at 18% 16%,#1b4276 0,#09182c 44%,#050d18 100%);display:grid;grid-template-columns:minmax(360px,1.1fr) minmax(360px,.72fr);padding:clamp(28px,5vw,72px);gap:clamp(38px,7vw,110px);color:#fff;align-items:center}.auth-brand{position:absolute;top:28px;left:clamp(28px,5vw,72px)}.auth-brand img{width:clamp(150px,14vw,210px);height:auto}.auth-brand span{padding-left:12px;border-left:1px solid #ffffff2b}.auth-intro{align-self:center;max-width:680px;padding-top:50px}.auth-intro h1{font-size:clamp(2.8rem,5.7vw,5.6rem);line-height:.98;letter-spacing:-.064em;margin:12px 0 20px}.auth-intro>p:last-child{color:#aebed3;font-size:1.05rem;max-width:510px}.auth-panel{width:min(470px,100%);background:#ffffff0d;border:1px solid #ffffff24;border-radius:24px;padding:clamp(24px,3.5vw,39px);backdrop-filter:blur(18px)}.auth-copy{color:#b3c1d3;margin:7px 0 22px}.auth-panel form{display:grid;gap:13px}.auth-panel label{font-size:.78rem;color:#c0ccdb}.auth-panel input{display:block;width:100%;margin-top:6px;padding:13px 14px;border-radius:10px;border:1px solid #ffffff28;background:#07111fa8;color:#fff;outline:none}.auth-panel input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #14b8a61f}.auth-panel .primary{margin-top:4px}.auth-panel .secondary{margin-top:9px;background:#ffffff0d;color:#fff;border-color:#ffffff2b}.auth-panel .text-button{color:#adc9ff}.form-message{min-height:19px;font-size:.78rem;color:#ffc0c7;margin:7px 0 0}.auth-creator{margin-top:18px;padding-top:18px;border-top:1px solid #ffffff1f}.auth-creator .creator-logo{width:66px;height:66px}.auth-creator small{color:#7fded2}.auth-creator strong{font-size:1.26rem}
.turnstile-slot:empty{display:none}.turnstile-slot{min-height:65px;margin-top:3px}.transfer-dialog{width:min(510px,calc(100vw - 28px));border:1px solid var(--line);border-radius:22px;padding:0;background:#fff;color:var(--ink);box-shadow:0 28px 90px #02081777}.transfer-dialog::backdrop{background:#020817b8;backdrop-filter:blur(4px)}.transfer-dialog form{display:grid;gap:13px;padding:27px}.transfer-dialog .dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.transfer-dialog h2{margin:2px 0 0}.transfer-dialog>form>p:not(.form-message){color:var(--muted);font-size:.9rem}.transfer-dialog label{font-size:.78rem;color:var(--muted)}.transfer-dialog input{display:block;width:100%;margin-top:6px;padding:12px 13px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff}.transfer-dialog input:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1c}.transfer-dialog .round-btn{margin:0;flex:0 0 auto}
.public-service-status{display:grid;gap:3px;margin:0 0 16px;padding:12px;border:1px solid #f1b35b;border-radius:11px;background:#3d2b0e;color:#fff3d5}.public-service-status span{font-size:.74rem;line-height:1.4;color:#f6d9a5}
.signup-dialog{width:min(580px,calc(100vw - 28px));max-height:min(860px,calc(100dvh - 28px));border:1px solid var(--line);border-radius:22px;padding:0;background:#fff;color:var(--ink);box-shadow:0 28px 90px #02081777}.signup-dialog::backdrop{background:#020817b8;backdrop-filter:blur(4px)}.signup-shell{padding:27px;overflow:auto;max-height:inherit}.signup-dialog .dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.signup-dialog .round-btn{margin:0;flex:0 0 auto}.signup-dialog h2{margin:2px 0 0}.signup-dialog h3{margin:4px 0}.signup-view{display:grid;gap:13px}.signup-view>p{color:var(--muted);font-size:.9rem}.account-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice-card{display:grid;gap:5px;text-align:left;padding:18px;border:1px solid var(--line);border-radius:14px;background:var(--soft);color:var(--ink)}.choice-card:hover,.choice-card:focus-visible{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb14}.choice-card span{font-size:.78rem;color:var(--muted)}.signup-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.signup-dialog label{font-size:.78rem;color:var(--muted)}.signup-dialog input,.signup-dialog select{display:block;width:100%;margin-top:6px;padding:12px 13px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:#fff}.signup-dialog input:focus,.signup-dialog select:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px #2563eb1c}.signup-dialog .signup-back{justify-self:start}.name-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.signup-dialog .consent-row{display:flex;align-items:flex-start;gap:9px}.signup-dialog .consent-row input{width:auto;margin:2px 0 0}.registration-summary{padding:13px 15px;border-radius:12px;background:#eaf4ff;color:#173b68;font-size:.86rem}.billing-table{width:100%;border-collapse:collapse;font-size:.86rem}.billing-table th,.billing-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left}.billing-table th:last-child,.billing-table td:last-child{text-align:right}.billing-contact{padding:13px;border-radius:12px;background:var(--soft)}

/* Dashboard */
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,.62fr);gap:20px}.hero-card{padding:25px;background:linear-gradient(120deg,#0b1d38,#174778);color:#fff;overflow:hidden;position:relative}.hero-card:after{content:"";position:absolute;width:250px;height:250px;border:52px solid #4ddac42d;border-radius:50%;right:-66px;top:-105px}.hero-card h2{font-size:1.5rem;margin:4px 0 6px;position:relative;z-index:1}.hero-card p{color:#c4d1e2;margin:0 0 19px;position:relative;z-index:1}.hero-actions{display:flex;gap:9px;flex-wrap:wrap;position:relative;z-index:1}.hero-actions .secondary{background:#ffffff17;border-color:#ffffff2e;color:#fff}.metric-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:17px}.metric{padding:15px 17px;border-top:3px solid var(--blue)}.metric:nth-child(2){border-color:var(--green)}.metric:nth-child(3){border-color:var(--amber)}.metric span{display:block;color:var(--muted);font-size:.75rem}.metric strong{font-size:1.48rem;letter-spacing:-.04em}.subject-card{padding:19px}.record-card{display:flex;align-items:center;gap:18px;min-height:100%}.record-copy h2{margin:0 0 7px;font-size:1rem}.record-copy p{color:var(--muted);font-size:.8rem;margin:0}.mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.mode-card{padding:20px;display:flex;flex-direction:column;min-height:180px;border-top:4px solid var(--blue)}.mode-card:nth-child(2){border-color:var(--red)}.mode-card:nth-child(3){border-color:var(--purple)}.mode-icon{font-size:1.5rem}.mode-card h3{margin:12px 0 4px}.mode-card p{color:var(--muted);font-size:.84rem;margin:0 0 17px}.mode-card button{margin-top:auto;align-self:flex-start}
.dashboard-insights{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(420px,1.28fr);gap:18px;margin-top:20px}.daily-card{padding:20px;display:grid;gap:12px;background:linear-gradient(135deg,#fff,#f4fbff)}.daily-card>div{display:flex;align-items:center;gap:16px}.daily-card h2,.share-card h2{font-size:1.2rem;margin:3px 0 6px}.daily-card p{display:flex;gap:12px;margin:0;font-size:.76rem}.daily-card p b{font-weight:800}.daily-correct{color:#14804e}.daily-wrong{color:#ce354a}.daily-card>small{color:var(--muted);font-size:.68rem;border-top:1px solid var(--line);padding-top:10px}.daily-pie{width:82px;height:82px}.daily-pie span{font-size:1.05rem}.share-card{padding:19px;display:grid;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:23px;overflow:hidden;background:linear-gradient(135deg,#eef5ff,#e9fbf8 62%,#f2edff)}.share-card>img{width:190px;aspect-ratio:1;border-radius:18px;border:8px solid #fff;box-shadow:0 10px 28px #173b6920}.share-card p{color:var(--muted);margin:0 0 6px}.share-card a{display:block;color:var(--blue);font-size:.8rem;font-weight:750;overflow-wrap:anywhere;margin-bottom:13px}.share-card button{justify-self:start}
.preview-access{padding:16px 19px;margin-bottom:18px;border-color:#9bc4ef;background:linear-gradient(135deg,#eff7ff,#eefcf8)}.preview-access strong,.preview-access h2{display:block;margin:4px 0;font-size:1rem}.preview-access p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.5}
.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tool-card{display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:12px;padding:15px;text-decoration:none;color:inherit}.tool-card>span{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--blue-soft);color:var(--blue);font-size:1.3rem;font-weight:900}.tool-card div{display:grid;gap:3px}.tool-card small{color:var(--muted)}.tool-card>b{color:var(--blue);font-size:.72rem}.pdf-shell{height:calc(100vh - 104px);min-height:620px;display:grid;grid-template-rows:auto 1fr;gap:12px}.pdf-shell header{display:flex;align-items:center;gap:18px}.pdf-shell h1{font-size:1.05rem;margin:3px 0 0}.pdf-shell iframe{width:100%;height:100%;border:1px solid var(--line);border-radius:16px;background:#e7edf5;box-shadow:var(--shadow)}

/* Progress */
.pie{width:56px;height:56px;border-radius:50%;background:conic-gradient(var(--green) 0 calc(var(--g)*1%),var(--red) 0 calc((var(--g) + var(--r))*1%),var(--blank) 0);position:relative;flex:0 0 auto;box-shadow:inset 0 0 0 1px #00000008}.pie.large{width:76px;height:76px}.pie:after{content:"";position:absolute;inset:20%;border-radius:50%;background:#fff}.pie span{position:absolute;inset:0;display:grid;place-items:center;z-index:1;font-size:.68rem;font-weight:880}.book-list{display:grid;gap:9px}.book-card,.topic-video{padding:0;overflow:hidden}.book-row,.chapter-row,.subtopic-row,.topic-bar{position:relative;isolation:isolate}.book-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 15px}.book-row .pie{width:43px;height:43px}.book-row h3,.chapter-row h4,.subtopic-row strong{margin:0}.book-row h3{font-size:.96rem}.book-row small,.chapter-row small,.subtopic-row small{color:var(--muted)}.chapter-list{border-top:1px solid var(--line);background:#fbfdff}.chapter-row{display:grid;grid-template-columns:38px minmax(210px,1fr) minmax(160px,.78fr) auto;gap:11px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line)}.chapter-row:last-child{border-bottom:0}.chapter-row .pie{width:34px;height:34px}.chapter-row h4{font-size:.87rem}.chapter-row small{font-size:.7rem}.status-track{height:13px;border-radius:999px;background:var(--blank);overflow:hidden;display:flex;box-shadow:inset 0 0 0 1px #0000000b}.status-track .correct{background:linear-gradient(90deg,#42c57b,#61d394)}.status-track .wrong{background:linear-gradient(90deg,#f26776,#ef5264)}.subtopic-list{grid-column:1/-1;padding:2px 0 2px 48px}.subtopic-row{display:grid;grid-template-columns:minmax(210px,1fr) minmax(155px,.72fr) auto;gap:11px;align-items:center;padding:7px 10px;border-top:1px dashed #dfe7f0;font-size:.79rem}.subtopic-row .status-track{height:10px}.counts{display:flex;gap:8px;font-size:.67rem;color:var(--muted);white-space:nowrap;flex-wrap:wrap}.counts .c{color:#14804e}.counts .w{color:#ce354a}.coming{color:#8995a7;font-size:.72rem;font-weight:760}.compact-progress{display:grid;gap:14px}.compact-subject{overflow:hidden}.compact-subject-head{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center;padding:12px 15px;background:linear-gradient(90deg,#eef4ff,#fff)}.compact-subject-head .pie{width:42px;height:42px}.compact-subject-head h3{margin:0;font-size:1rem}.compact-subject-head p{margin:2px 0 0;color:var(--muted);font-size:.7rem}

/* Selector and filters */
.selector-shell{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px}.selection-card{overflow:hidden}.selector-toolbar{display:flex;justify-content:space-between;align-items:center;padding:14px 17px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,#f7faff,#fff)}.selector-tree{max-height:62vh;overflow:auto;padding:7px}.tree-row{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:center;padding:9px 10px;border-radius:9px;cursor:pointer}.tree-row:hover{background:#eff5ff}.tree-row.depth-1{padding-left:28px}.tree-row.depth-2{padding-left:49px}.tree-row.depth-3{padding-left:70px}.tree-row.disabled-child{opacity:.5}.tree-choice{display:flex;align-items:center;gap:8px}.tree-choice input{width:17px;height:17px;accent-color:var(--blue);cursor:pointer}.tree-toggle{border:0;background:transparent;color:var(--muted);padding:0;width:22px;height:26px}.tree-row small{color:var(--muted);font-size:.72rem}.filter-card{padding:18px;position:sticky;top:96px;height:max-content}.filter-card h3{margin:0 0 13px}.filter-section{padding:12px 0;border-top:1px solid var(--line)}.filter-section:first-of-type{border-top:0}.filter-section>span{display:block;font-size:.68rem;color:var(--muted);font-weight:850;letter-spacing:.09em;margin-bottom:8px}.option-grid{display:grid;gap:7px}.option{display:flex;gap:9px;align-items:center;font-size:.84rem;border:1px solid var(--line);border-radius:10px;padding:9px 10px;cursor:pointer;background:#fff;transition:.14s}.option:hover{transform:translateX(2px);border-color:#b9cae0}.option:has(input:checked){border-color:#9cbaf5;background:var(--blue-soft);box-shadow:0 3px 10px #2864dc12}.option.easy:has(input:checked){background:var(--green-soft);border-color:#a1dfbf}.option.medium:has(input:checked){background:var(--amber-soft);border-color:#efd18f}.option.hard:has(input:checked){background:var(--red-soft);border-color:#f1b3bd}.option.problem:has(input:checked){background:var(--purple-soft);border-color:#cbb8fa}.option.exam:has(input:checked){background:#e3f8fb;border-color:#9ddde5}.option input{width:17px;height:17px;accent-color:var(--blue)}.validation{font-size:.76rem;color:var(--red);min-height:19px;margin:10px 0}

/* Question player */
.question-screen{min-height:calc(100dvh - 78px);display:flex;flex-direction:column;padding:17px clamp(14px,4vw,50px) 24px}.question-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.question-head .meta{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.badge{padding:6px 10px;border-radius:999px;background:var(--blue-soft);color:#315787;font-size:.7rem;font-weight:850}.badge.hard{background:var(--red-soft);color:#b52d44}.badge.medium{background:var(--amber-soft);color:#96600d}.badge.easy{background:var(--green-soft);color:#137749}.badge.type-problem-solving{background:var(--purple-soft);color:#6840b7}.badge.type-exam-style{background:#e1f8fb;color:#137281}.question-stage{flex:1;display:flex;justify-content:center;align-items:center;padding:20px 0}.question-card{background:#fff;border:1px solid var(--line);border-radius:24px;width:min(980px,100%);min-height:min(560px,68dvh);padding:clamp(24px,5vw,58px);box-shadow:0 22px 60px #122d5512;display:flex;flex-direction:column;position:relative}.question-card.answer{border-color:#adc8ef;box-shadow:0 22px 60px #2967e812}.question-label{font-size:.68rem;letter-spacing:.14em;font-weight:850;color:var(--blue)}.math-content{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.14rem,2.05vw,1.55rem);line-height:1.75;margin:auto 0;text-align:left;overflow:visible}.math-content.center{text-align:center}.math-content p{margin:1em 0}.math-content .katex-display{overflow-x:auto;overflow-y:hidden;padding:6px 0}.content-image{display:block;max-width:100%;max-height:48vh;object-fit:contain;margin:18px auto}.image-caption{text-align:center;color:var(--muted);font:500 .77rem/1.4 Inter,sans-serif}.tap-hint{text-align:center;color:#9aa8ba;font-size:.78rem;margin-top:auto;padding-top:22px}.mark-controls{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;padding-top:16px}.mark-controls button{min-width:118px}.session-foot{text-align:center;color:var(--muted);font-size:.76rem}.info-btn{width:37px;height:37px;border-radius:50%;border:1px solid var(--line);background:#fff;font-weight:850}

/* Library */
.folder-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:15px}.breadcrumbs{display:flex;gap:6px;flex-wrap:wrap;color:var(--muted);font-size:.8rem}.breadcrumbs button{border:0;background:transparent;color:var(--blue);padding:0}.folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:11px}.folder{padding:15px;text-align:left;transition:.14s}.folder:hover{transform:translateY(-2px);border-color:#abc2e5}.folder h3{margin:6px 0 3px;font-size:.94rem}.folder small{color:var(--muted)}.question-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:11px}.question-tile{border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px;text-align:left;min-height:132px;display:flex;flex-direction:column;gap:9px;overflow:hidden;transition:.14s}.question-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.question-tile.green{background:var(--green-soft);border-color:#9fdbbb}.question-tile.red{background:var(--red-soft);border-color:#f3b0ba}.question-tile .tile-top{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--muted);font-size:.66rem}.difficulty-pill{border-radius:999px;padding:4px 8px;font-weight:850}.difficulty-pill.easy{background:var(--green-soft);color:#127449}.difficulty-pill.medium{background:var(--amber-soft);color:#95600d}.difficulty-pill.hard{background:var(--red-soft);color:#b12c42}.question-tile.green .difficulty-pill,.question-tile.red .difficulty-pill{background:#ffffffa8}.tile-preview{font-family:Georgia,serif;line-height:1.5;min-height:48px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.tile-preview .katex-display{margin:.2em 0;text-align:left}.question-tile small{color:var(--muted);margin-top:auto}

/* Topics and videos */
.topic-bar{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(160px,.75fr) auto;align-items:center;gap:11px;padding:11px 14px}.topic-bar .pie{width:38px;height:38px}.topic-detail{grid-column:1/-1;border-top:1px solid var(--line);padding:10px 14px 13px;background:#f8fbff;min-width:0}.video-list{display:grid;gap:5px;margin-bottom:10px}.video-row{display:grid;width:100%;grid-template-columns:20px minmax(0,1fr) 58px 76px;gap:9px;align-items:center;padding:8px 10px;background:#fff;border:1px solid var(--line);border-radius:9px;font-size:.78rem}.video-row:hover{border-color:#b8cae0;background:#fbfdff}.video-row input{width:16px;height:16px;accent-color:var(--cyan)}.video-row a{color:var(--blue);text-decoration:none;font-weight:780;text-align:right}.video-row time{color:var(--muted);font-size:.69rem;text-align:right}.topic-detail .subtopic-list{padding:0}.topic-detail .subtopic-row{grid-template-columns:minmax(210px,1fr) minmax(150px,.65fr) auto}

/* Modal and feedback */
.modal-backdrop{position:fixed;inset:0;background:#07111fca;z-index:100;display:grid;place-items:center;padding:20px}.modal{background:#fff;border-radius:20px;width:min(570px,100%);max-height:88dvh;overflow:auto;box-shadow:0 30px 80px #0006}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 21px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font-size:1.14rem}.modal-body{padding:21px}.close{border:0;background:#eef3f8;border-radius:50%;width:34px;height:34px}.info-grid{display:grid;grid-template-columns:120px 1fr;gap:9px;font-size:.86rem}.info-grid dt{color:var(--muted)}.info-grid dd{margin:0;font-weight:720}.empty{padding:46px 23px;text-align:center}.empty .empty-icon{font-size:2rem}.empty h2{margin:11px 0 5px}.empty p{color:var(--muted);max-width:440px;margin:0 auto 17px}.toast{position:fixed;right:20px;bottom:20px;z-index:200;background:#10203a;color:#fff;border-radius:11px;padding:11px 15px;box-shadow:var(--shadow);transform:translateY(90px);opacity:0;transition:.25s}.toast.show{transform:none;opacity:1}.sync-indicator{position:fixed;right:20px;top:14px;z-index:80;border:1px solid #cfe0ef;border-radius:999px;background:#fff;color:#49627d;padding:6px 10px;font-size:.68rem;font-weight:820;box-shadow:0 5px 18px #0b1f3a18}.sync-indicator.syncing{color:#205db8;border-color:#b8cff0}.sync-indicator.offline{color:#a14d14;border-color:#efcfb4;background:#fffaf4}
.install-guide{display:grid;gap:18px}.install-preview{display:grid;justify-items:center;text-align:center;padding:20px;border-radius:16px;background:linear-gradient(145deg,#0b1d38,#174778);color:#fff}.install-preview img{width:190px;max-width:70%;filter:drop-shadow(0 12px 22px #0005);margin-bottom:8px}.install-preview span{font-weight:850}.install-preview small{color:#b9c9dc}.install-steps{display:grid;gap:9px}.install-steps>div{display:grid;grid-template-columns:48px 1fr;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f8fbff}.install-steps>div>b{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#fff;font-size:1.15rem}.install-steps span{display:grid}.install-steps strong{font-size:.86rem}.install-steps small{color:var(--muted);font-size:.73rem}
.install-visual{display:block;width:100%;border-radius:16px;border:1px solid var(--line)}

@media(max-width:1000px){.dashboard-grid{grid-template-columns:1fr}.dashboard-insights{grid-template-columns:1fr 1.35fr}.record-card{min-height:auto}.mode-grid{grid-template-columns:1fr 1fr}.selector-shell{grid-template-columns:1fr}.filter-card{position:static}.chapter-row{grid-template-columns:36px minmax(0,1fr) auto}.chapter-row>.status-track{grid-column:2/4}.topic-bar{grid-template-columns:40px 1fr auto}.topic-bar>.status-track{grid-column:2/4}.auth-screen{grid-template-columns:1fr 1fr;gap:28px;padding-top:120px}.auth-intro{padding:0}.auth-intro h1{font-size:3.1rem}.auth-panel{justify-self:end}}
@media(max-width:760px){.app{display:block}.sidebar{position:fixed;left:0;transform:translateX(-102%);transition:.25s;width:min(86vw,294px);box-shadow:20px 0 60px #0005}.sidebar.open{transform:none}.topbar{height:70px;padding:0 15px}.menu-btn{display:block}.round-btn{margin-left:auto}.view{padding:20px 13px 52px}.page-head{align-items:flex-start}.page-head .page-actions{display:none}.mode-grid,.dashboard-insights{grid-template-columns:1fr}.metric-strip{grid-template-columns:repeat(3,1fr);gap:7px}.metric{padding:11px}.metric strong{font-size:1.18rem}.dashboard-grid{gap:13px}.subject-card{padding:15px}.share-card{grid-template-columns:138px minmax(0,1fr);gap:14px}.share-card>img{width:138px}.share-card h2{font-size:1rem}.book-row{grid-template-columns:43px minmax(0,1fr) auto;padding:10px}.chapter-row{padding:8px;gap:8px}.subtopic-list{padding-left:21px}.subtopic-row,.topic-detail .subtopic-row{grid-template-columns:minmax(0,1fr) auto;padding:7px 5px}.subtopic-row .status-track{grid-column:1/-1}.subtopic-row .counts{grid-column:1/-1}.selector-tree{max-height:none}.tree-row.depth-1{padding-left:17px}.tree-row.depth-2{padding-left:31px}.tree-row.depth-3{padding-left:45px}.question-screen{min-height:100dvh;padding:calc(env(safe-area-inset-top) + 10px) 11px calc(env(safe-area-inset-bottom) + 18px)}.question-stage{align-items:flex-start;padding:15px 0}.question-card{min-height:70dvh;border-radius:18px;padding:23px 18px}.question-head .meta{order:2}.mark-controls button{min-width:90px;flex:1}.topic-bar{padding:9px 8px}.topic-detail{padding:8px}.video-row{grid-template-columns:18px minmax(0,1fr) 52px;padding:8px}.video-row a{grid-column:2/4;justify-self:end}.folder-grid,.question-grid{grid-template-columns:1fr 1fr}.auth-screen{display:flex;flex-direction:column;justify-content:flex-start;padding:calc(env(safe-area-inset-top) + 22px) 17px 34px;gap:25px}.auth-brand{position:static;align-self:flex-start}.auth-brand img{width:165px}.auth-intro{text-align:center;padding-top:4px}.auth-intro h1{font-size:clamp(2.4rem,12vw,3.25rem)}.auth-intro>p:last-child{font-size:.9rem}.auth-panel{width:100%;padding:22px}.auth-creator .creator-logo{width:58px;height:58px}.info-grid{grid-template-columns:92px 1fr}}
@media(max-width:470px){.share-card{grid-template-columns:1fr;text-align:center}.share-card>img{width:min(230px,80%);justify-self:center}.share-card button{justify-self:center}.daily-card>div{align-items:flex-start}.daily-pie{width:72px;height:72px}}
@media(max-width:600px){.tool-grid{grid-template-columns:1fr}.pdf-shell{height:calc(100dvh - 88px);min-height:480px}.pdf-shell header{align-items:flex-start;flex-direction:column;gap:8px}.pdf-shell iframe{border-radius:12px}}
@media(max-width:430px){.folder-grid,.question-grid{grid-template-columns:1fr}.page-head h1{font-size:1.7rem}.hero-card{padding:20px}.record-card{gap:13px}.record-card .pie.large{width:64px;height:64px}.topic-bar{grid-template-columns:36px 1fr auto}.topic-bar .pie{width:34px;height:34px}.counts{white-space:normal}.question-head{align-items:flex-start}.question-head .meta{max-width:48%}.auth-brand span{display:none}.account-choice-grid,.name-grid{grid-template-columns:1fr}.signup-shell{padding:21px}.signup-links{display:grid}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.chapter-row.no-track{grid-template-columns:38px minmax(210px,1fr) auto}.topic-bar.no-track{grid-template-columns:44px minmax(0,1fr) auto}
@media(max-width:1000px){.chapter-row.no-track,.topic-bar.no-track{grid-template-columns:36px minmax(0,1fr) auto}}

/* v1.4 linked questions, clearer source labels and video-only fills */
.video-progress-fill{background:linear-gradient(90deg,rgba(57,191,115,.14) 0 var(--vp),transparent var(--vp))}
.chapter-row>.subtopic-list{position:relative;z-index:2;background:#fbfdff;margin:0 -14px -9px;padding-top:3px;padding-bottom:3px}
.tile-reference{font-size:.9rem;font-weight:900;color:var(--ink);letter-spacing:.01em}
.source-badge{background:#edf3ff;color:#255ec7}
.video-row{cursor:pointer;transition:background .14s,border-color .14s,transform .14s}
.video-row.watched{background:#eaf9f0;border-color:#9fdbbb}
.video-row:active{transform:scale(.997)}
.group-card{max-width:1050px}
.group-shared-stem{margin:18px 0 10px;padding:16px 18px;border-radius:14px;background:#f6f9fd;border:1px solid #e0e8f2}
.math-content.compact{font-size:clamp(1rem,1.65vw,1.3rem);margin:0;line-height:1.65}
.group-parts{display:grid;gap:13px;margin-top:14px}
.group-part{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff;cursor:pointer;transition:border-color .14s,box-shadow .14s,background .14s}
.group-part:hover{border-color:#aec4e2;box-shadow:0 8px 22px #193d7010}
.group-part.revealed{border-color:#9abbea;background:#fbfdff}
.group-part.correct{border-color:#79ce9f;background:#eefbf4}.group-part.wrong{border-color:#ef9aa6;background:#fff2f4}.group-part.skip{border-color:#c7d2df;background:#f8fafc}
.group-part-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}.group-part-head strong{font-size:1rem}.group-part-head span{font-size:.7rem;color:var(--muted);font-weight:750}
.group-part .tap-hint{padding-top:10px}.group-part .mark-controls{padding-top:10px}.group-part .mark-controls button.selected{outline:3px solid #3172ed33;box-shadow:0 0 0 1px #fff inset}
.group-next{align-self:center;margin-top:20px;min-width:180px}

@media(max-width:760px){.chapter-row>.subtopic-list{margin-left:-8px;margin-right:-8px}.group-card{padding:18px 13px}.group-shared-stem{padding:12px}.group-part{padding:13px}.group-part-head{align-items:flex-start;flex-direction:column;gap:3px}.group-part .mark-controls button{min-width:76px}.group-screen .question-head .meta{max-width:55%}}

/* v1.5 navigation, books and dense library */
.menu-backdrop{display:none}
.in-session .app{grid-template-columns:1fr}.in-session .sidebar,.in-session .menu-backdrop{display:none!important}.restoring-view main{visibility:hidden}
.book-shelf{margin:24px 0}.book-shelf>.section-title{margin-bottom:14px}.book-shelf>.section-title p{margin:2px 0 0;color:var(--muted);font-size:.8rem}.shelf-course{margin-top:15px}.shelf-course>h3{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}.cover-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px}.book-cover{min-width:0;border:1px solid var(--line);border-radius:15px;background:#fff;padding:11px;text-decoration:none;color:var(--ink);display:grid;grid-template-columns:64px minmax(0,1fr);grid-template-rows:1fr auto;gap:3px 11px;align-items:center;box-shadow:0 7px 20px #173b6910;transition:.15s}.book-cover:hover{transform:translateY(-2px);border-color:#aac1e2;box-shadow:var(--shadow)}.book-cover img{grid-row:1/3;width:64px;height:88px;object-fit:cover;border-radius:5px;box-shadow:0 5px 12px #0b1f3a25}.book-cover span{font-size:.78rem;font-weight:820;line-height:1.25}.book-cover small{font-size:.68rem;color:var(--blue);font-weight:760}
.book-cover.unavailable{background:#f6f8fb;color:#6f7c8f;box-shadow:none;cursor:not-allowed}.book-cover.unavailable:hover{transform:none;border-color:var(--line);box-shadow:none}.book-cover.unavailable img{filter:grayscale(.65);opacity:.62}.book-cover.unavailable small{color:#7d8999}
.manual-exercises{display:grid;gap:22px}.manual-exercise{border:1px solid #b8c9e4;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 7px 22px #173b690b}.manual-exercise-head{display:flex;align-items:center;gap:10px;padding:12px 15px;background:linear-gradient(135deg,#0c3f83,#1768ca);color:#fff}.manual-exercise-head span{font-size:.61rem;font-weight:900;letter-spacing:.12em;opacity:.72}.manual-exercise-head h2{font-size:1.05rem;margin:0}.manual-exercise>.manual-sets{padding:10px}.manual-sets{display:grid;gap:10px}.manual-set{border:1px solid var(--line);border-radius:14px;background:#f8fbff;overflow:hidden}.manual-set-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-bottom:1px solid var(--line);background:#edf4ff}.manual-set-head h2,.manual-set-head h3{font-size:.9rem;margin:0}.manual-set-head span{font-size:.7rem;color:var(--muted);font-weight:740}.manual-set .question-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:7px;padding:8px}.manual-set .question-tile{min-height:108px;padding:10px 11px;gap:6px;border-radius:11px;box-shadow:none}.manual-set .tile-reference{font-size:.9rem;font-weight:900}.manual-set .tile-top{order:2}.manual-set .tile-preview{order:4;min-height:30px;font-size:.86rem;line-height:1.35;-webkit-line-clamp:2}.manual-set .difficulty-pill{padding:3px 7px}.manual-set .question-tile:hover{transform:none;border-color:#9fb9dc;box-shadow:0 4px 12px #173b6910}.type-pills{order:3;display:flex;gap:5px;flex-wrap:wrap}.type-pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:.65rem;font-weight:900;border:1px solid transparent}.type-pill.type-regular{background:#eef2f7;color:#46566e;border-color:#d8e0eb}.type-pill.type-problem-solving{background:#fff0c7;color:#865700;border-color:#efcc6e}.type-pill.type-exam-style{background:#eee7ff;color:#5d37a8;border-color:#c8b6f0}.question-tile.green .type-pill,.question-tile.red .type-pill{box-shadow:inset 0 0 0 1px #ffffff80}
.review-folder{border-color:#cbb8fa;background:linear-gradient(135deg,#f5f0ff,#fff)}.review-folder>span,.review-folder h3{color:#6943b5}.review-folder small{color:#76698f}.review-section{border-left:5px solid var(--purple);background:linear-gradient(90deg,#f1eaff 0 var(--vp),#fbf9ff var(--vp))}.review-section h4{color:#6741b2}
.topic-video{margin-bottom:15px}.topic-video>.chapter-list{display:grid;gap:8px;padding:8px;background:#edf3f9}.topic-bar{background-color:#fff;border:1px solid var(--line)!important;border-radius:12px;padding:12px 14px!important;overflow:hidden}.topic-copy{min-width:0}.video-progress{display:grid;grid-template-columns:auto minmax(80px,260px) auto;align-items:center;gap:8px;margin-top:7px}.video-progress>span{font-size:.58rem;letter-spacing:.09em;font-weight:850;color:#59708d}.video-progress>b{font-size:.65rem;color:#2a7c56}.video-track{height:8px;background:#dfe6ee;border-radius:999px;overflow:hidden;box-shadow:inset 0 0 0 1px #00000008}.video-track i{display:block;height:100%;background:linear-gradient(90deg,#36bd72,#65d798);border-radius:inherit}.video-row.watched{background:#e4f8ec!important;border-color:#8fd4ad!important;box-shadow:inset 4px 0 #36bd72}.video-row.watched span{color:#176d44;font-weight:730}

@media(max-width:1050px){.cover-grid{grid-template-columns:repeat(2,minmax(150px,1fr))}}
@media(max-width:760px){body.menu-open{overflow:hidden}.menu-backdrop{display:block;position:fixed;inset:0;border:0;background:#07111fb8;opacity:0;pointer-events:none;z-index:29;transition:opacity .2s}.menu-backdrop.open{opacity:1;pointer-events:auto}.sidebar{z-index:31}.cover-grid{display:flex;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 2px 10px;gap:10px}.book-cover{flex:0 0 215px;scroll-snap-align:start}.topic-video>.chapter-list{gap:10px;padding:7px}.topic-bar{padding:10px!important}.video-progress{grid-template-columns:auto 1fr auto}.manual-set .question-grid{grid-template-columns:1fr 1fr;gap:6px;padding:6px}.manual-set .question-tile{min-height:86px;padding:9px}.manual-set .tile-preview{font-size:.8rem}.manual-set .tile-top>span:last-child{max-width:52%;text-align:right}.question-screen{padding-top:max(calc(env(safe-area-inset-top) + 12px),60px)}.question-head{padding-top:2px}.group-screen .question-head .meta{max-width:48%}}
@media(max-width:430px){.manual-set .question-grid{grid-template-columns:1fr}.manual-set .question-tile{min-height:80px}.book-cover{flex-basis:205px}}

/* v2.0 profile, reporting, admin and library progress */
.hidden{display:none!important}.greeting-head h1{margin-top:4px}.report-nav{margin-top:10px!important;border:1px solid #ffcf7a!important;background:#362710!important;color:#ffe3a8!important}.report-nav:hover,.report-nav.active{background:#5b3b0c!important}.admin-nav{margin-top:8px!important;border:1px solid #67d1ff!important;background:linear-gradient(135deg,#183c70,#0e6c90)!important;color:#fff!important}.nav-count{margin-left:auto;display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border-radius:999px;background:#ff5269;color:#fff;font-size:.68rem}.profile-edit{display:grid;grid-template-columns:35px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;padding:9px;border:1px solid #ffffff20;border-radius:12px;background:#ffffff0a;color:#fff;text-align:left}.profile-edit small{display:block;color:#91a5bc;font-size:.53rem;letter-spacing:.1em}.profile-edit strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem}.profile-edit>b{color:#75cfff}.profile-avatar{display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#fff;font-weight:900}.form-stack{display:grid;gap:14px}.form-stack>p{margin:0;color:var(--muted)}.form-stack label,.admin-search label{display:grid;gap:6px;font-weight:800;font-size:.8rem}.form-stack input,.form-stack select,.form-stack textarea,.admin-search input{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:11px 12px;font:inherit}.form-stack textarea{resize:vertical;line-height:1.45}.optional{font-weight:600;color:var(--muted)}
.library-folders{grid-template-columns:repeat(auto-fill,minmax(255px,1fr))}.progress-folder{display:grid!important;position:relative;isolation:isolate;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:13px;text-align:left;overflow:hidden;min-height:120px}.progress-folder:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--green-soft) 0 var(--gp),var(--red-soft) var(--gp) var(--rp),transparent var(--rp));z-index:0;pointer-events:none}.progress-folder>*{position:relative;z-index:1;pointer-events:none}.progress-folder{--gp:0%;--rp:0%}.progress-folder .folder-copy{min-width:0}.folder-book-cover{width:56px;height:78px;object-fit:cover;border-radius:5px;box-shadow:0 5px 14px #0b1f3a2e}.folder-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:13px;background:#eaf2ff;color:var(--blue);font-size:1.35rem}.progress-folder h3{margin:0 0 4px}.progress-folder .status-track{margin:10px 0 6px}.folder-stats{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:.61rem}.folder-stats b:first-child{color:#168152}.folder-stats b:nth-child(2){color:#bd3349}
.question-actions{display:flex;gap:8px}.report-question-btn,.mini-report{display:grid;place-items:center;border:1px solid #f1bf63;background:#fff8e8;color:#aa6800;border-radius:50%;width:36px;height:36px;font-size:.88rem}.mini-report{width:29px;height:29px;margin-left:auto}.question-reference{margin:18px 0;padding:16px;border:1px solid #aac7eb;border-left:5px solid var(--blue);border-radius:14px;background:#f3f8ff}.question-reference>span{font-size:.6rem;font-weight:900;letter-spacing:.13em;color:var(--blue)}.question-reference h3{margin:4px 0 2px}.question-reference>p{margin:0 0 10px!important;color:var(--muted);font-size:.78rem}.reference-row{display:grid;grid-template-columns:55px minmax(0,1fr);gap:10px;align-items:center;padding:8px 0;border-top:1px solid #dbe8f7}.reference-row strong{color:var(--blue)}.reference-row p,.reference-row .katex-display{margin:0!important;text-align:left}.group-part-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important}.selected-report-question{display:grid;gap:4px;padding:14px;border-radius:12px;background:#eef5ff;border:1px solid #cbdcf2}.selected-report-question>span{font-size:.6rem;letter-spacing:.12em;color:var(--blue);font-weight:900}.selected-report-question small{color:var(--muted)}
.report-card{max-width:760px;padding:22px}.report-target{display:grid;grid-template-columns:1fr 1fr;gap:12px}.report-target label:last-child:nth-child(3){grid-column:1/-1}.admin-head{padding:18px;border-radius:18px;background:linear-gradient(135deg,#0d2344,#17668a);color:#fff}.admin-head p{color:#c9dded}.admin-tabs{display:flex;gap:7px;overflow-x:auto;margin:16px 0;padding-bottom:3px}.admin-tabs button{white-space:nowrap;border:1px solid var(--line);border-radius:999px;background:#fff;padding:9px 14px;font-weight:800;color:var(--muted)}.admin-tabs button.active{background:var(--blue);border-color:var(--blue);color:#fff}.admin-content{display:grid;gap:14px}.admin-loading{display:flex;align-items:center;gap:10px;padding:24px}.loading-dot{width:11px;height:11px;border-radius:50%;background:var(--blue);animation:pulse 1s infinite}.admin-metrics{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px}.admin-metric{padding:16px}.admin-metric span{display:block;color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.admin-metric strong{display:block;margin-top:5px;font-size:1.65rem}.admin-chart-card{display:flex;align-items:center;gap:18px;padding:20px}.admin-chart-card h2,.admin-chart-card p{margin:0}.admin-chart-card p{color:var(--muted);margin-top:5px}.admin-search{padding:15px}.admin-user-list{display:grid;gap:8px}.admin-user{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 15px;text-align:left;width:100%}.admin-user span:nth-child(2){display:grid}.admin-user small,.admin-user time{color:var(--muted);font-size:.7rem}.admin-pager{display:flex;align-items:center;justify-content:center;gap:12px}.admin-back{justify-self:start}.admin-user-detail{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:12px}.user-identity{display:flex;align-items:center;gap:14px;padding:20px}.user-identity h2,.user-identity p{margin:0}.user-identity p{color:var(--muted)}.large-avatar{width:54px;height:54px;font-size:1.25rem}.user-facts{padding:18px}.admin-course-bars{display:grid;grid-template-columns:1fr 1fr;gap:10px}.admin-course-bars .card{padding:16px}.admin-course-bars h3,.admin-course-bars p{margin:0}.admin-course-bars .status-track{margin:10px 0}.admin-course-bars p{font-size:.72rem;color:var(--muted)}.report-filter{display:flex;justify-content:space-between;align-items:center;padding:14px}.report-filter label{font-weight:800}.admin-report-list{display:grid;gap:10px}.admin-report{padding:18px;border-left:5px solid #f0a522}.admin-report.completed{border-left-color:var(--green);opacity:.88}.admin-report header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.admin-report time{margin-left:auto;color:var(--muted);font-size:.7rem}.report-type,.report-category{padding:5px 8px;border-radius:999px;background:#eef4fc;font-size:.65rem;font-weight:850}.report-category{background:#fff1d8;color:#93600e}.admin-report h3{margin:12px 0 4px}.admin-report>p{white-space:pre-wrap}.report-meta{display:grid;grid-template-columns:90px minmax(0,1fr);gap:5px 10px;padding:11px;background:#f7f9fc;border-radius:10px;font-size:.7rem}.report-meta dt{color:var(--muted)}.report-meta dd{margin:0;overflow-wrap:anywhere}.admin-system-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.admin-system-grid .card{padding:20px}.admin-system-grid h2{margin:5px 0}.admin-system-grid p{color:var(--muted)}
.account-status{display:inline-block;margin-top:7px;padding:4px 8px;border-radius:999px;font-size:.65rem;font-weight:850}.account-status.active{background:var(--green-soft);color:#147247}.account-status.suspended{background:var(--red-soft);color:#ac2c40}.admin-account-controls{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:19px}.admin-account-controls h2,.admin-account-controls p{margin:3px 0}.admin-account-controls p{color:var(--muted);font-size:.8rem;max-width:720px}.admin-control-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.scope-class-options{display:grid;gap:7px;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:12px}.scope-class-options legend{padding:0 5px;color:var(--muted);font-size:.76rem;font-weight:800}
.admin-operation-list{display:grid;gap:12px}.operation-card,.audit-card,.usage-hero,.admin-usage-limits,.usage-limitation,.settings-intro,.admin-settings-form{padding:20px}.operation-card header,.audit-card header,.usage-hero{display:flex;align-items:center;gap:10px}.operation-card header time,.audit-card header time{margin-left:auto;color:var(--muted);font-size:.72rem}.operation-card h2,.audit-card h2,.usage-hero h2,.settings-intro h2{margin:9px 0 5px}.operation-card>button{margin-top:12px}.confirmation-value{display:block;padding:10px 12px;border-radius:10px;background:#f1f5f9;overflow-wrap:anywhere}.usage-hero{justify-content:space-between}.usage-actions{display:grid;justify-items:end;gap:9px}.usage-hero p,.admin-usage-limits p,.usage-limitation p,.settings-intro p{margin:4px 0;color:var(--muted)}.metric-table{display:grid;gap:8px}.metric-table>div{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}.metric-table small{color:var(--muted)}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-settings-form .consent-row{display:flex;align-items:flex-start;gap:10px}.admin-settings-form .consent-row input{width:auto;margin:3px 0 0}.admin-settings-form .consent-row span{display:grid;gap:2px}.admin-settings-form .consent-row small{color:var(--muted);font-weight:600}.admin-filter-row{display:grid;grid-template-columns:minmax(220px,1fr) 180px auto;align-items:end;gap:12px;padding:15px}.admin-filter-row label{display:grid;gap:6px;font-weight:800;font-size:.8rem}.admin-filter-row input,.admin-filter-row select{width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:11px 12px;font:inherit}.audit-card>p{margin:4px 0 12px;color:var(--muted)}
.admin-section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px}.admin-section-head h2,.admin-section-head p{margin:4px 0}.admin-section-head p{color:var(--muted)}.admin-school-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:center;gap:12px;width:100%;padding:14px;text-align:left}.admin-school-row>span:nth-child(2){display:grid;min-width:0}.admin-school-row small{color:var(--muted);overflow-wrap:anywhere}.admin-school-row .account-status{margin:0}
.admin-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));align-items:end;gap:11px;padding:15px}.admin-filter-grid label{display:grid;gap:6px;font-size:.76rem;font-weight:800}.admin-filter-grid input,.admin-filter-grid select{width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);padding:10px;font:inherit}.filter-actions{display:flex;gap:7px;align-items:center}.admin-result-count{margin:0;color:var(--muted);font-size:.76rem;font-weight:800}
@media(max-width:900px){.admin-metrics{grid-template-columns:repeat(3,1fr)}.admin-user-detail{grid-template-columns:1fr 1fr}.user-identity{grid-column:1/-1}.admin-system-grid{grid-template-columns:1fr}.admin-course-bars{grid-template-columns:1fr}.admin-account-controls{align-items:flex-start;flex-direction:column}.admin-control-actions{justify-content:flex-start}}
@media(max-width:900px){.admin-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.report-target{grid-template-columns:1fr}.report-target label:last-child:nth-child(3){grid-column:auto}.admin-metrics{grid-template-columns:repeat(2,1fr)}.admin-user{grid-template-columns:38px minmax(0,1fr) auto}.admin-user time{grid-column:2/4}.admin-user>b{grid-column:3;grid-row:1}.admin-user-detail{grid-template-columns:1fr}.user-identity{grid-column:auto}.reference-row{grid-template-columns:44px minmax(0,1fr)}.group-part-head{grid-template-columns:minmax(0,1fr) auto!important}.group-part-head .mini-report{grid-column:2;grid-row:1}.group-part-head>span{grid-column:1/-1}.progress-folder{min-height:105px}.settings-grid,.admin-filter-row,.admin-filter-grid{grid-template-columns:1fr}.metric-table>div{grid-template-columns:1fr}.usage-hero,.admin-section-head{align-items:flex-start;display:grid}.admin-school-row{grid-template-columns:38px minmax(0,1fr) auto}.admin-school-row>b{grid-column:2}.admin-school-row .account-status{grid-column:3;grid-row:1}}

/* v2.1 manual-mode stability and legacy Roman-part layout */
/* Progress is a background, never an overlay that can escape or steal clicks. */
.library-folders .progress-folder{position:relative;isolation:isolate;background:linear-gradient(90deg,var(--green-soft) 0 var(--gp),var(--red-soft) var(--gp) var(--rp),#fff var(--rp));contain:paint}
.library-folders .progress-folder::before{content:none;display:none;pointer-events:none}
.folder-toolbar{position:relative;z-index:1}
.folder-toolbar button{touch-action:manipulation}
.folder-toolbar .ghost,.library-folders .folder,.manual-exercises .question-tile{transform:none!important;transition:border-color .12s,box-shadow .12s,background-color .12s;touch-action:manipulation}
.folder-toolbar .ghost:hover,.folder-toolbar .ghost:active,.library-folders .folder:hover,.library-folders .folder:active,.manual-exercises .question-tile:hover,.manual-exercises .question-tile:active{transform:none!important}
.manual-set .question-tile{height:132px;min-height:132px;isolation:isolate}
.manual-set .tile-preview{min-height:0;max-height:42px}
.roman-parts{display:grid;gap:12px;margin:1em 0}.roman-part-row{display:grid;grid-template-columns:minmax(42px,2.8em) minmax(0,1fr);gap:12px;align-items:center;padding:12px 14px}.roman-part-row>strong{font-family:inherit;color:var(--blue);font-size:1em;line-height:inherit;text-align:center}.roman-part-row>div{min-width:0}
@media(max-width:760px){.manual-set .question-tile{height:122px;min-height:122px}.roman-part-row{grid-template-columns:minmax(34px,2.8em) minmax(0,1fr);gap:8px;padding:10px}}
@media(prefers-reduced-motion:reduce){.folder-toolbar .ghost,.library-folders .folder,.manual-exercises .question-tile{transition:none}}

.school-nav{margin-top:8px!important;border:1px solid #70dacb!important;background:linear-gradient(135deg,#123e45,#145f70)!important;color:#fff!important}.school-nav b{font-size:inherit}.school-loading{display:flex;align-items:center;gap:10px;padding:24px}.school-head{padding:20px;border-radius:18px;background:linear-gradient(135deg,#e6fbf7,#edf5ff);border:1px solid #b9dfdc}.school-head h1{margin:4px 0}.school-head p{margin:0;color:var(--muted)}.school-admin-head{background:linear-gradient(135deg,#102d4f,#126f78);border-color:#1c8090;color:#fff}.school-admin-head p{color:#cbe5e7}.role-badge{align-self:flex-start;padding:7px 11px;border-radius:999px;background:#fff;color:#176b70;border:1px solid #b9dfdc;font-size:.68rem;font-weight:900;white-space:nowrap}.school-metrics{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin:16px 0}.school-metric{padding:16px}.school-metric span{display:block;color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.school-metric strong{display:block;margin-top:4px;font-size:1.7rem}.school-class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.school-class-card{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:15px;text-align:left;color:var(--ink)}.school-class-card>span:nth-child(2){display:grid;min-width:0}.school-class-card small{color:var(--muted);margin-top:3px}.school-class-card>b{color:var(--blue)}.class-symbol{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:var(--cyan-soft);color:#137667;font-size:1.15rem;font-weight:900}.school-directory-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.school-panel,.school-admins{padding:20px}.school-panel h2{font-size:1.8rem;margin:5px 0 12px}.name-list{display:grid;gap:7px}.name-list span{padding:9px 11px;border-radius:10px;background:#f3f7fc;font-weight:750}.name-list p{color:var(--muted)}.name-list.inline{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.privacy-note{padding:17px;border-left:5px solid var(--cyan)}.privacy-note p{margin:4px 0 0;color:var(--muted)}.school-admins{margin:0 0 16px}.school-back{margin-bottom:12px}.school-roster{overflow:hidden}.roster-head,.roster-row{display:grid;grid-template-columns:minmax(150px,1.5fr) minmax(120px,1fr) 72px 72px 80px;gap:12px;align-items:center;padding:12px 16px}.roster-head{background:#eaf2ff;color:#526882;font-size:.66rem;text-transform:uppercase;letter-spacing:.05em}.roster-row{border-top:1px solid var(--line);font-size:.78rem}.roster-row>span{color:var(--muted)}.roster-correct{color:#168152}.roster-wrong{color:#bd3349}.roster-empty{padding:24px;color:var(--muted);text-align:center}
@media(max-width:850px){.school-metrics{grid-template-columns:repeat(2,1fr)}.school-class-grid,.school-directory-grid{grid-template-columns:1fr}.school-roster{overflow-x:auto}.roster-head,.roster-row{min-width:650px}}
@media(max-width:520px){.school-head{display:grid;gap:12px}.school-metrics{grid-template-columns:1fr 1fr}.school-class-card{grid-template-columns:40px minmax(0,1fr)}.school-class-card>b{grid-column:2}.class-symbol{width:40px;height:40px}}
.school-head-actions{display:grid;justify-items:end;gap:10px}.management-section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:24px 0 10px}.management-section-head h2,.management-section-head p{margin:0}.management-section-head p{color:var(--muted);font-size:.78rem}.management-list{display:grid;gap:8px}.management-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px}.management-row>span:nth-child(2){display:grid;min-width:0}.management-row small,.code-row small{color:var(--muted);overflow-wrap:anywhere}.management-actions{display:flex;gap:7px}.danger-outline{border:1px solid #ef9aa6;border-radius:10px;background:#fff2f4;color:#a92338;padding:8px 11px;font-weight:800}.danger-outline:hover{background:#ffe2e7}.code-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px}.code-row>span{display:grid}.code-row strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.assignment-options{display:grid;gap:7px;max-height:280px;overflow:auto;padding:4px}.generated-codes{display:grid;gap:8px;margin:16px 0}.generated-codes code{padding:12px;border:1px solid #b9dfdc;border-radius:10px;background:#effcf9;color:#0e5f5a;font-size:.9rem;font-weight:850;overflow-wrap:anywhere;user-select:all}
@media(max-width:650px){.management-section-head{align-items:stretch;display:grid}.management-row{grid-template-columns:40px minmax(0,1fr)}.management-row>.management-actions,.management-row>button{grid-column:2;justify-self:start}.management-actions{flex-wrap:wrap}.member-row{align-items:start}.code-row{align-items:flex-start;display:grid}.school-head-actions{justify-items:start}}

/* September update: compact navigation, paired practice books and mobile safe areas. */
html{background:var(--nav)}
body{padding-top:env(safe-area-inset-top);background:var(--bg)}
.sidebar{overflow-y:auto;overscroll-behavior:contain;padding-top:18px}
.sidebar nav{gap:2px}.sidebar nav button{padding:9px 11px}.side-foot{flex-shrink:0}.side-creator{padding-top:8px}
.sync-indicator{top:calc(env(safe-area-inset-top) + 82px);right:16px;pointer-events:none;z-index:19}
.auth-intro h1{font-size:clamp(2.25rem,4.6vw,4.35rem);line-height:1.08}
.auth-highlights{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0 8px}
.auth-highlights span{border:1px solid #ffffff30;background:#ffffff0d;color:#dcecfb;border-radius:999px;padding:7px 11px;font-size:.75rem;font-weight:700}
.auth-book-images{display:flex;gap:10px;margin-top:22px;align-items:end;max-height:138px}
.auth-book-images img{height:112px;width:76px;object-fit:cover;border-radius:6px;box-shadow:0 12px 25px #0008;transform:rotate(-5deg)}
.auth-book-images img:nth-child(2){height:130px;transform:rotate(2deg)}.auth-book-images img:nth-child(3){transform:rotate(7deg)}
.signup-dialog{width:min(800px,calc(100% - 24px))}.account-choice-grid{grid-template-columns:1fr 1fr;align-items:stretch}
.account-choice-grid>.choice-card{display:flex;flex-direction:column;gap:10px;text-align:left;padding:22px;min-height:232px}
.account-choice-grid>.choice-card h3{margin:0;font-size:1.28rem}.account-choice-grid>.choice-card p{margin:0;color:var(--muted);font-size:.84rem}
.school-role-choices{display:grid;gap:7px;margin-top:4px}.school-role-choices button{border:1px solid var(--line);border-radius:9px;background:#f2f7fe;padding:9px;color:var(--ink);font-weight:750;text-align:left}
.school-role-choices button:hover{border-color:var(--blue)}
.cover-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-items:stretch}.book-pair{display:grid;gap:7px;align-content:start;padding:8px;border-radius:16px;background:#eaf0f8}
.book-pair .book-cover{width:100%;box-shadow:none}.book-pair .book-cover img{height:68px;width:48px}.book-pair .book-cover{grid-template-columns:48px minmax(0,1fr)}
.book-pair .practice-placeholder{border-style:dashed;cursor:default;background:#f8fafc}
.practice-placeholder-cover{grid-row:1/3;display:grid;place-items:center;width:48px;height:68px;border-radius:4px;background:#e3ebf6;color:#7186a2;font-size:1.4rem;font-weight:850}
.library-folders:has(.folder-book-cover){grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.library-folders .folder-icon{font-variant-numeric:tabular-nums;font-size:1.12rem}.paired-book-icon{position:relative}.paired-book-icon>small{position:absolute;bottom:-3px;right:-8px;padding:3px 5px;background:#fff;color:var(--blue);border:1px solid var(--line);border-radius:5px;font-size:.57rem;font-weight:900}
.manual-set .question-tile{height:auto;min-height:104px}.manual-set .tile-preview{max-height:70px}
.manual-set .question-tile .tile-reference,.manual-set .question-tile .tile-top,.manual-set .question-tile .type-pills{display:inline-flex;align-items:center}
.manual-set .question-tile{display:grid;grid-template-columns:auto auto minmax(0,1fr);grid-template-rows:auto 1fr;column-gap:7px;row-gap:8px;align-items:start}
.manual-set .question-tile .tile-reference{grid-column:1;white-space:nowrap}.manual-set .question-tile .tile-top{grid-column:2;order:initial}.manual-set .question-tile .type-pills{grid-column:3;order:initial;justify-content:flex-end}.manual-set .question-tile .tile-preview{grid-column:1/-1;grid-row:2;order:initial}
.manual-set .group-tile{background:linear-gradient(90deg,#e3f8ec 0 var(--gp),#ffe7eb var(--gp) var(--rp),#fff var(--rp));background-clip:padding-box}
.manual-set .group-tile.green,.manual-set .group-tile.red{background:linear-gradient(90deg,#e3f8ec 0 var(--gp),#ffe7eb var(--gp) var(--rp),#fff var(--rp))}
.manual-exercise-head span{font-size:.76rem;opacity:1;letter-spacing:0}.manual-exercise-head h2{font-size:1.05rem}
.practice-coming{padding-bottom:16px}.practice-coming>p,.practice-coming>.coming{display:block;margin:12px 16px 0}.practice-coming>.coming{font-weight:800;color:var(--muted)}
.class-picker{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.class-picker .active{border-color:var(--blue);color:var(--blue)}
.class-join{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:16px}.class-join label{display:grid;gap:5px;min-width:min(270px,100%);flex:1;font-size:.8rem;font-weight:800}.class-join input{border:1px solid var(--line);border-radius:10px;padding:10px}.class-join .form-message{flex-basis:100%;margin:0}
.code-list{margin:9px 0;overflow:hidden}.code-list>summary{padding:14px 16px;cursor:pointer;font-weight:850;background:#f4f8ff}.code-list .code-row{border-top:1px solid var(--line)}
:root:has(.school-nav:not(.hidden)) .primary{background:var(--blue);box-shadow:0 7px 18px #1a3b6833}
@media(max-width:760px){.sidebar{top:env(safe-area-inset-top);height:calc(100dvh - env(safe-area-inset-top));padding-bottom:max(14px,env(safe-area-inset-bottom))}.auth-screen{padding-top:24px;gap:14px}.auth-intro h1{font-size:clamp(2rem,8.5vw,2.8rem)}.auth-book-images{justify-content:center;margin-top:10px}.auth-book-images img{height:78px;width:55px}.auth-book-images img:nth-child(2){height:90px}.auth-highlights{justify-content:center;margin:12px 0}.auth-highlights span{font-size:.67rem;padding:5px 8px}.sync-indicator{top:calc(env(safe-area-inset-top) + 74px)}.book-pair{flex:0 0 min(260px,76vw)}.cover-grid{overflow-x:auto}.account-choice-grid{grid-template-columns:1fr}.manual-set .question-tile{height:auto;min-height:100px}.manual-set .question-tile .type-pills{justify-content:flex-start;grid-column:1/-1;grid-row:2}.manual-set .question-tile .tile-preview{grid-row:3}}

/* Compact sign-in, all existing publisher covers, and a visible optional session choice. */
.auth-screen{gap:clamp(18px,4vw,70px)}.auth-panel{padding:clamp(19px,2.5vw,28px)}.auth-panel form{gap:9px}.auth-copy{margin:5px 0 13px}.auth-panel input{padding:10px 12px}.auth-panel .remember-row{display:flex;align-items:center;gap:9px;margin:0;color:#e4f2ff;font-size:.75rem;cursor:pointer}.auth-panel .remember-row input{width:17px;height:17px;margin:0;padding:0;accent-color:var(--cyan)}.auth-panel .remember-row span{line-height:1.3}.auth-panel .secondary{margin-top:7px}.auth-quick-links{display:flex;justify-content:space-between;gap:8px;margin-top:4px}.auth-quick-links button{flex:1;min-width:0;padding:8px 5px;font-size:.83rem}.auth-creator{margin-top:9px;padding-top:11px}.auth-creator .creator-logo{width:49px;height:49px}.auth-creator strong{font-size:1.06rem}.auth-book-images{display:flex;flex-wrap:wrap;gap:8px;max-height:none;margin-top:19px;align-items:end;max-width:530px}.auth-book-images img,.auth-book-images img:nth-child(2),.auth-book-images img:nth-child(3){width:clamp(47px,5vw,68px);height:clamp(69px,7vw,96px);transform:none;object-fit:cover}.auth-book-images img:hover{transform:translateY(-5px)}.auth-intro h1{font-size:clamp(2.1rem,4.2vw,4.1rem)}.auth-intro>p{max-width:610px}.auth-highlights{margin:13px 0 4px}
.source-key{display:flex;gap:18px;flex-wrap:wrap;padding:8px 11px;color:var(--muted);font-size:.73rem}.source-key span{display:flex;align-items:center;gap:5px}.source-key i{display:inline-block;width:15px;height:15px;border:2px solid var(--blue);border-radius:4px}.source-key span:nth-child(2) i{border-color:#b78229}.tree-row{grid-template-columns:24px auto minmax(0,1fr) auto}.tree-source-choices{display:flex;gap:8px;align-items:center}.tree-source-choices input{width:18px;height:18px;accent-color:var(--blue);cursor:pointer}.tree-source-choices input:nth-child(2){accent-color:#ac7926}.tree-label{min-width:0;overflow-wrap:anywhere}
.manual-set .question-tile{grid-template-columns:auto auto minmax(0,1fr);grid-template-rows:auto auto 1fr;align-content:start}.manual-set .question-tile .type-pills{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-start;min-width:0}.manual-set .question-tile .linked-count{grid-column:1/-1;grid-row:2;color:#566d88;font-size:.7rem;font-weight:800}.manual-set .group-tile .tile-preview{grid-row:3}.manual-set .question-tile:not(.group-tile) .tile-preview{grid-row:2}.manual-set .question-tile .tile-top{min-width:0}.manual-set .question-tile .tile-reference{align-self:center}
.recovery-choice{text-align:left;width:100%;border:1px solid #f2bac2}.recovery-choice:hover{border-color:#e45066;box-shadow:0 8px 24px #d4546121}
.practice-problem-set{padding:18px;margin-top:14px}.practice-problem-set>h2{font-size:1.15rem;margin:0 0 14px}.practice-rank{margin-top:14px;padding:12px;border-radius:12px}.practice-rank h3{margin:0 0 8px;font-size:.85rem}.practice-rank.bronze{background:#f6e8df}.practice-rank.silver{background:#edeef2}.practice-rank.gold{background:#f7efd2}.rank-bronze{color:#7b3f2a;background:#f6e8df}.rank-silver{color:#545669;background:#edeef2}.rank-gold{color:#755515;background:#f7efd2}
.question-head .question-meta-block{flex:1;max-width:none;justify-content:flex-start;align-items:center}.question-head .question-meta-block .badge,.question-head .question-meta-block .difficulty-pill{font-weight:850;border-radius:12px;padding:8px 11px}.question-head .meta .group-linked-count{flex-basis:100%;font-size:.72rem;color:var(--muted);text-align:left;font-weight:850}.group-screen .question-head .meta{max-width:none;flex:1;justify-content:flex-start}
.activity-panels{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:15px}.activity-card{padding:19px;min-width:0}.activity-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.activity-title h2{font-size:1rem;margin:3px 0}.activity-title>strong{font-size:.78rem;color:var(--blue);white-space:nowrap}.activity-card>small{display:block;color:var(--muted);font-size:.65rem;margin-top:7px}.activity-bars{display:flex;align-items:end;gap:8px;height:118px;margin-top:12px}.activity-day{display:grid;grid-template-rows:14px 1fr 17px;flex:1;height:100%;min-width:0;text-align:center;font-size:.66rem;color:var(--muted)}.activity-day>span{font-weight:800;color:var(--ink)}.activity-column{display:flex;align-items:end;min-height:0;height:100%;background:#f1f5fa;border-radius:6px}.activity-column i{display:block;width:100%;background:linear-gradient(0deg,var(--blue),var(--cyan));border-radius:6px;min-height:2px}.activity-day small{font-size:.62rem;white-space:nowrap}.video-hours{display:grid;justify-items:end;padding:9px 13px;border:1px solid var(--line);border-radius:13px;background:#fff}.video-hours strong{color:var(--blue);font-size:1.1rem}.video-hours span{font-size:.67rem;color:var(--muted)}
@media(max-width:900px){.activity-panels{grid-template-columns:1fr}.auth-screen{gap:22px}.auth-book-images{justify-content:center;max-width:100%}}
@media(max-width:760px){.auth-screen{padding-top:calc(env(safe-area-inset-top) + 16px)}.auth-intro{padding-top:18px}.auth-intro h1{font-size:clamp(1.95rem,8vw,2.7rem)}.auth-panel{padding:18px}.auth-quick-links{gap:4px}.auth-quick-links button{font-size:.76rem}.auth-book-images{gap:5px}.auth-book-images img,.auth-book-images img:nth-child(2),.auth-book-images img:nth-child(3){width:40px;height:60px}.manual-set .question-tile .type-pills{grid-column:3;grid-row:1}.manual-set .group-tile .linked-count{grid-row:2}.manual-set .group-tile .tile-preview{grid-row:3}.question-head .question-meta-block{order:0;max-width:none;justify-content:flex-start}.group-screen .question-head .meta{max-width:none}.video-hours{justify-items:start}.tree-row{gap:5px}.tree-source-choices{gap:5px}.tree-source-choices input{width:17px;height:17px}}
.tool-favicon{width:34px;height:34px;object-fit:contain;flex:none;border-radius:8px;background:#fff;padding:5px}
.class-work{margin-top:20px;display:grid;gap:12px}.class-work>h2{margin:0}.assignment-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:#f8fbff;display:grid;grid-template-columns:1fr auto;gap:8px}.assignment-card strong,.assignment-card small{display:block}.assignment-card small{color:var(--muted);margin-top:3px}.assignment-card p{grid-column:1/-1;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.class-work form{border-top:1px solid var(--line);padding-top:16px}.class-work textarea{min-height:86px;resize:vertical}
.admin-class-details{padding:0;overflow:hidden}.admin-class-details>summary{display:flex;justify-content:space-between;gap:12px;cursor:pointer;padding:16px;align-items:center}.admin-class-details>summary small{color:var(--muted)}.admin-class-members{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}.admin-class-details>.management-actions{padding:12px 16px;border-top:1px solid var(--line)}

/* School workflows and activity summary */
:root{--accent-dark:color-mix(in srgb,var(--blue) 48%,#071426)}
.sidebar{background:linear-gradient(180deg,#071426,var(--accent-dark))}.school-nav,.hero-card,.school-admin-head,.manual-exercise-head{background:linear-gradient(130deg,var(--accent-dark),var(--blue))!important}.primary{background:linear-gradient(135deg,var(--blue),var(--accent-dark))}.school-head{border-color:color-mix(in srgb,var(--blue) 28%,white);background:color-mix(in srgb,var(--blue) 9%,white)}.school-admin-head{color:#fff}.school-admin-head p{color:#e2eaf5}
.auth-intro h1{font-size:clamp(2.1rem,4vw,4rem)}.auth-brand img{width:clamp(136px,12vw,185px)}.auth-book-gallery{display:grid;gap:12px;margin-top:17px;max-width:520px}.auth-book-gallery>div>strong{display:block;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#b9d3f1;margin-bottom:7px}.auth-book-images{display:flex;align-items:center;gap:8px;max-height:none;margin:0}.auth-book-images img,.auth-book-images img:nth-child(2),.auth-book-images img:nth-child(3){width:clamp(48px,5vw,65px);height:clamp(68px,7vw,88px);object-fit:cover;object-position:top;transform:none;border:1px solid #ffffff30;box-shadow:0 5px 16px #0005}.auth-book-images img[src$="m-p1.png"],.auth-book-images img[src$="m-p2.png"]{clip-path:inset(0 0 2% 0)}.auth-panel{padding:clamp(18px,2.5vw,29px)}.auth-copy{margin-bottom:12px}.auth-highlights{margin:13px 0 6px}.auth-highlights span{border-radius:11px;background:#ffffff15;font-size:.76rem}.auth-creator{margin-top:11px;padding-top:11px}.auth-creator .creator-logo{width:74px;height:74px}.auth-creator strong{font-size:1.35rem}.auth-screen{gap:clamp(20px,3vw,50px)}.auth-panel .text-button{padding:5px 12px}
.school-sections{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.school-sections button.active{background:var(--blue);color:#fff}.school-admins{padding:14px}.school-metrics{margin:11px 0}.school-metric{padding:12px 14px}.school-head{padding:15px 20px}.school-head h1{font-size:clamp(1.35rem,2.5vw,2rem)}.school-class-card{min-height:92px}.school-class-card strong{font-size:1rem}.class-code-inline{display:block;margin-top:4px;color:var(--muted);font-size:.73rem}.class-code-inline code{color:var(--blue);font-weight:800;user-select:all}.school-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0}.school-tools input{flex:1 1 220px;min-width:0;padding:11px;border:1px solid var(--line);border-radius:10px}.school-tools .school-sections{margin:0}.class-code-history{padding:12px 16px;border-top:1px solid var(--line)}.class-code-history .code-row{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap}.admin-class-members span small{display:block;font-weight:500;color:var(--muted)}.nav-group-label{padding:14px 12px 3px;font-size:.61rem;letter-spacing:.14em;color:#90aecb;font-weight:800}
.assignment-link{display:grid;grid-template-columns:auto 1fr auto;align-items:center;text-align:left;gap:6px 14px;width:100%;padding:18px;margin-top:16px;color:var(--ink)}.assignment-link>span{grid-row:1/3;font-size:1.4rem;color:var(--blue)}.assignment-link small{grid-column:2;color:var(--muted)}.assignment-link>b{grid-column:3;grid-row:1/3;color:var(--blue)}.class-work{padding:20px}.assignment-header,.activity-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.assignment-header h2,.activity-heading h2{margin:2px 0}.assignment-list{display:grid;gap:10px;margin:14px 0}.assignment-card{display:grid;gap:8px;border:1px solid var(--line);background:#f8fbff;border-radius:13px;padding:14px}.assignment-card>div:first-child{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}.assignment-card small{color:var(--muted)}.assignment-card p{margin:0;white-space:pre-wrap;color:#40516b}.assignment-card .management-actions{justify-content:flex-start}.assignment-done{display:flex;gap:9px;align-items:center;font-size:.86rem;font-weight:750}.assignment-done input{width:19px;height:19px;accent-color:var(--blue)}.assignment-overdue{color:#bc3c49!important}.completion-list{display:grid;gap:9px;max-height:60vh;overflow:auto}.completion-list>div{display:grid;gap:2px;padding:10px;border:1px solid var(--line);border-radius:10px}.completion-list span{color:var(--muted);font-size:.8rem}.school-export-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.homework-alert{padding:14px 18px;margin:0 0 16px;border-left:5px solid #df9c28}.homework-alert>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.homework-alert button{text-align:left}
.activity-card{padding:20px;margin:18px 0}.activity-heading h2{font-size:1.25rem}.activity-heading .eyebrow{color:var(--blue)}.activity-card h3{font-size:.82rem;color:var(--muted);margin:18px 0 8px}.activity-key{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.72rem}.activity-key i,.activity-key b{width:10px;height:10px;display:inline-block;border-radius:2px;background:var(--green)}.activity-key b{background:var(--red);margin-left:8px}.activity-bars{height:148px;display:grid;grid-template-columns:28px repeat(7,minmax(0,1fr));align-items:end;gap:7px;border-bottom:1px solid var(--line);padding:4px 0 19px;position:relative;background:repeating-linear-gradient(to top,transparent 0,transparent calc(50% - 1px),#e5ebf3 50%)}.activity-scale{position:absolute;left:0;top:0;bottom:20px;display:flex;flex-direction:column;justify-content:space-between;color:var(--muted);font-size:.59rem}.activity-day{height:100%;grid-column:auto;display:flex;justify-content:flex-end;align-items:center;flex-direction:column;position:relative;min-width:0}.activity-day:first-of-type{grid-column:auto}.activity-stack{width:min(42px,80%);min-height:0;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;border-radius:5px 5px 0 0}.activity-stack i,.activity-stack b{width:100%;display:block;background:var(--green)}.activity-stack b{background:var(--red)}.activity-day small{position:absolute;bottom:-20px;font-size:.6rem;color:var(--muted)}.activity-month{grid-template-columns:28px repeat(30,minmax(0,1fr));gap:2px}.activity-month .activity-stack{width:100%}.activity-month .activity-day small{font-size:.45rem}.activity-month .activity-day:not(:nth-child(5n+2)) small{visibility:hidden}
.access-screen{overflow-y:auto;min-height:100dvh}.access-panel{padding-block:22px}.access-panel .offline-logo{max-height:120px;object-fit:contain;margin-bottom:12px}.access-panel .offline-creator{margin-top:15px}
.library-folders:has(>.subject-folder){grid-template-columns:repeat(2,minmax(0,1fr))}.library-folders:has(>.subject-folder)>.folder{min-height:290px;align-content:center}.library-folders:has(>.subject-folder)>.folder h3{font-size:1.5rem}.library-folders:has(>.subject-folder)>.folder-icon{width:60px;height:60px}.paired-book-icon{display:block;width:82px;height:98px}.paired-book-icon .folder-book-cover{position:absolute;inset:5px auto auto 9px;transform:rotate(-7deg);width:60px;height:82px;z-index:2}.paired-book-icon .folder-book-cover.practice-stack{inset:9px auto auto 21px;transform:rotate(9deg);z-index:1;filter:saturate(.7);opacity:.84}.paired-book-icon>small{display:none}.library-folders .progress-folder{min-height:108px;align-content:center}.library-folders .folder-copy{align-self:center}.library-folders h3{line-height:1.25}.progress-detail-group{margin:9px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.progress-detail-group summary{padding:12px 16px;background:#f4f8fd;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.progress-detail-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:7px;padding:10px}.progress-detail-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px;text-align:left}
@media(max-width:760px){.auth-book-gallery{margin-inline:auto}.auth-book-images{justify-content:center}.auth-book-images img,.auth-book-images img:nth-child(2),.auth-book-images img:nth-child(3){width:50px;height:68px}.auth-intro h1{font-size:clamp(2rem,8vw,2.8rem)}.auth-screen{gap:14px}.school-tools{display:grid}.library-folders:has(>.subject-folder){grid-template-columns:1fr}.library-folders:has(>.subject-folder)>.folder{min-height:170px}.school-class-grid{grid-template-columns:1fr}.activity-month{overflow:hidden}.activity-month .activity-day small{display:none}.completion-list{max-height:50vh}}
.subject-folder{grid-template-columns:1fr!important;align-content:center;justify-items:center;text-align:center!important;gap:18px!important}.subject-folder .folder-copy{text-align:center}.subject-cover-row{display:flex;align-items:center;justify-content:center;gap:5px;max-width:100%}.subject-cover-row img{width:clamp(44px,6vw,72px);height:clamp(61px,8vw,100px);object-fit:cover;object-position:top;border-radius:4px;box-shadow:0 5px 13px #14283b4a}.practice-stack-cover{display:grid;place-items:center;position:absolute;left:22px;top:12px;transform:rotate(10deg);height:80px;width:60px;border:2px solid #fff;border-radius:4px;background:linear-gradient(145deg,#2f66a8,#112944);color:#fff;font-size:.55rem;line-height:1.1;text-align:center;font-weight:900;box-shadow:0 4px 11px #22395350}.paired-book-icon .folder-book-cover{z-index:3}.library-folders .progress-folder:not(.subject-folder){min-height:100px}.type-pill.type-combined{background:linear-gradient(90deg,#fff0c7 0 50%,#eee7ff 50%);border-color:#d9bad7;color:#57427b;min-width:60px;justify-content:center}.manual-set .question-tile{grid-template-columns:auto minmax(0,1fr) minmax(0,1fr)}.manual-set .question-tile .tile-reference{grid-column:1;grid-row:1}.manual-set .question-tile .tile-top{grid-column:2;grid-row:1;justify-self:center}.manual-set .question-tile .type-pills{grid-column:3;grid-row:1;justify-self:end}.manual-set .question-tile .tile-preview{grid-column:1/-1;grid-row:2}.manual-set .difficulty-pill,.manual-set .type-pill{min-width:74px;min-height:27px;justify-content:center;text-align:center}.question-head .meta{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}.question-head .meta>.badge,.question-head .meta .type-pill{min-height:30px;display:inline-flex;align-items:center;justify-content:center;min-width:82px;padding:5px 9px;font-size:.68rem}.question-head .meta .source-badge{min-width:0}.question-head .meta .type-pills{display:inline-flex}
.assignment-options{display:grid;gap:7px;max-height:280px;overflow:auto}.assignment-options .consent-row,.scope-class-options .consent-row{display:grid!important;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#f8fbff}.assignment-options .consent-row input,.scope-class-options .consent-row input{width:18px;height:18px;margin:0;accent-color:var(--blue)}.assignment-options .consent-row span,.scope-class-options .consent-row span{min-width:0}
.roster-email{display:block;overflow-wrap:anywhere;font-size:.7rem;color:var(--muted);font-weight:500}
.activity-day:nth-child(2){grid-column:2}
.dashboard-grid{grid-template-columns:minmax(0,1.4fr) minmax(220px,.55fr);gap:12px}.record-card{min-height:0;align-self:start}.dashboard-insights{gap:12px}.daily-card{min-height:0!important}.daily-card>div{align-items:center}.daily-card>small{margin-top:7px}
@media(max-width:760px){.dashboard-grid{grid-template-columns:1fr}.record-card{align-self:stretch}}
.subject-practice-cover{display:grid;place-items:center;flex:0 0 clamp(44px,6vw,72px);height:clamp(61px,8vw,100px);border-radius:4px;border:2px solid white;background:linear-gradient(140deg,#5482b7,#173254);color:#fff;font-size:.52rem;font-weight:900;letter-spacing:.03em;box-shadow:0 5px 13px #14283b4a}.subject-cover-row{flex-wrap:wrap;row-gap:7px}
@media(max-width:760px){.subject-practice-cover{flex-basis:50px;height:70px}}
/* r3 baseline: retain compact manual tiles and theme all primary actions consistently. */
:root:has(.school-nav:not(.hidden)) .primary{background:linear-gradient(135deg,var(--blue),var(--accent-dark));box-shadow:0 7px 18px color-mix(in srgb,var(--blue) 24%,transparent)}
.manual-set .question-tile{height:auto;min-height:104px}
.auth-book-gallery{display:grid;gap:12px;margin-top:12px}.auth-book-gallery>div>strong{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#c1d8ef;margin-bottom:6px}.auth-book-gallery .auth-book-images{display:flex;flex-wrap:nowrap;gap:10px;margin:0;max-height:none;justify-content:flex-start}.auth-book-gallery .auth-book-images img,.auth-book-gallery .auth-book-images img:nth-child(2),.auth-book-gallery .auth-book-images img:nth-child(3){width:clamp(50px,5.1vw,74px);height:clamp(73px,7.3vw,104px);transform:rotate(-2deg);object-fit:cover;object-position:top;border:2px solid #ffffff44;border-radius:5px}.auth-book-gallery .auth-book-images img:nth-child(even){transform:rotate(2deg)}
.auth-book-gallery .auth-book-images img[src$="m-p1.png"],.auth-book-gallery .auth-book-images img[src$="m-p2.png"],.auth-book-gallery .auth-book-images img[src$="fm-fs1.png"]{clip-path:inset(0 0 3% 0 round 5px)}
.auth-highlights span{font-size:.81rem;background:#ffffff15;border-color:#ffffff45}.auth-intro{min-width:0}.auth-intro h1{font-size:clamp(2rem,4vw,3.9rem)}.auth-brand{z-index:1}.auth-brand img{width:clamp(130px,11vw,170px)}.auth-creator .creator-logo{width:67px;height:67px}.auth-creator strong{font-size:1.26rem}
.auth-panel .remember-row{padding:7px 10px;border:1px solid #ffffff3b;border-radius:10px;background:#ffffff10;align-self:start}.auth-panel .remember-row input{accent-color:#32c4a2}
.activity-panels{grid-template-columns:1fr 1fr}.activity-bars{align-items:end}.activity-day{min-width:0}.activity-day .activity-column{display:flex;flex-direction:column;justify-content:end;overflow:hidden;width:100%;min-height:0;background:transparent}.activity-column i,.activity-column b{display:block;width:100%;flex:none;border-radius:0;min-height:0}.activity-column i{background:#13a89e;order:2}.activity-column b{background:#e15d6b;order:1}.activity-month{grid-template-columns:repeat(30,minmax(0,1fr));gap:2px}.activity-month .activity-day{min-width:0}.activity-month .activity-day small{font-size:.52rem}.activity-month .activity-day .activity-column{min-height:0}
.colour-preview{min-height:100px;border-radius:14px;background:linear-gradient(130deg,color-mix(in srgb,var(--preview) 62%,#071426),var(--preview));display:flex;flex-direction:column;justify-content:center;gap:4px;padding:20px;color:#fff}.colour-preview span{font-size:.8rem}
.folder-icon{transform:none!important;clip-path:none!important}.subject-folder{min-width:0}.folder-book-cover{object-fit:cover}.school-tools{padding:12px 16px}.school-tools .school-sections{margin-top:8px}.management-list:has(>.school-tools){display:block}
@media(max-width:900px){.activity-panels{grid-template-columns:1fr}.auth-book-gallery .auth-book-images{justify-content:center}.auth-book-gallery>div>strong{text-align:center}}
@media(max-width:760px){.auth-brand{position:static}.auth-screen{padding-top:calc(env(safe-area-inset-top) + 18px)}.auth-book-gallery .auth-book-images img,.auth-book-gallery .auth-book-images img:nth-child(2),.auth-book-gallery .auth-book-images img:nth-child(3){width:clamp(44px,13vw,60px);height:clamp(63px,18vw,85px)}.activity-month{gap:1px}.activity-month .activity-day small{font-size:.45rem}.school-export-options{grid-template-columns:1fr}}
/* Uniform answering metadata and daily bars with a shared 30-day scale. */
.question-head .question-meta-block{justify-content:center}.question-head .question-meta-block .badge,.question-head .question-meta-block .difficulty-pill{font-size:.76rem;font-weight:750;padding:5px 9px;min-height:27px;border-radius:999px}
.activity-bars{grid-template-columns:repeat(7,minmax(0,1fr));background:repeating-linear-gradient(to top,transparent 0,transparent calc(50% - 1px),#e5ebf3 50%)}.activity-day:nth-child(2){grid-column:auto}.activity-bars.activity-month{grid-template-columns:repeat(30,minmax(0,1fr))}
@media(max-width:760px){.activity-card{overflow:hidden}.activity-month .activity-day small{font-size:.48rem;writing-mode:vertical-rl;transform:rotate(180deg);max-height:15px}.question-head .question-meta-block{justify-content:center}}
.question-head .type-pills{display:inline-flex;align-items:center;gap:4px}.question-head .type-pill{min-height:27px;display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;font-size:.76rem;font-weight:750;border-radius:999px}.question-head .meta .group-linked-count{flex-basis:100%;text-align:center}
.owner-code-tools{display:grid;gap:8px}.owner-code-tools .school-sections{display:flex;gap:6px;flex-wrap:wrap}.owner-code-tools button.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.library-folders .folder:not(.subject-folder):not(:has(.folder-book-cover)){min-height:145px;align-content:center}.library-folders .folder h3{overflow-wrap:anywhere}.folder-icon{border-radius:11px}
.class-homework-badge{display:inline-flex;align-items:center;gap:3px;border-radius:99px;padding:3px 7px;margin-left:6px;background:#fff0d1;color:#8b560b;font-size:.72rem;font-weight:800}

/* Preserve the original default palette; school branding remains scoped. */
:root:not(.school-themed) .sidebar{background:linear-gradient(180deg,var(--nav),var(--nav2))}
:root:not(.school-themed) .hero-card{background:linear-gradient(120deg,#0b1d38,#174778)!important}
:root:not(.school-themed) .primary{background:linear-gradient(135deg,#3172ed,#255bd0);box-shadow:0 7px 18px #2967e833}
:root:not(.school-themed) .manual-exercise-head{background:linear-gradient(135deg,#0c3f83,#1768ca)!important}
.manual-set .question-tile{grid-template-columns:auto auto minmax(0,1fr);column-gap:6px;row-gap:6px;min-height:104px;align-items:start}
.manual-set .difficulty-pill,.manual-set .type-pill{min-width:0;min-height:0;padding:3px 7px;font-size:.65rem;line-height:1.35}
.manual-set .question-tile .tile-top{justify-self:start;align-self:center}
.manual-set .question-tile .type-pills{justify-self:end;justify-content:flex-end;flex-wrap:wrap;max-width:100%}
.manual-set .question-tile .type-pill{white-space:normal;overflow-wrap:anywhere}
.manual-set .question-tile .linked-count{grid-column:1/-1;grid-row:2;position:static}
.manual-set .group-tile .tile-preview{grid-row:3}
.manual-set .question-tile:not(.group-tile) .tile-preview{grid-row:2}
.progress-line-chart{display:block;width:100%;height:auto;overflow:visible;min-height:180px}
.progress-line-chart text{font:11px Inter,sans-serif;fill:var(--muted)}
.chart-grid{stroke:var(--line);stroke-width:1}.chart-correct{stroke:var(--green);stroke-width:2;fill:var(--green)}.chart-wrong{stroke:var(--red);stroke-width:2;fill:var(--red)}
.progress-line-chart polyline{fill:none;vector-effect:non-scaling-stroke}
.chart-expand{display:block;margin-left:auto;font-size:.75rem;padding:4px 8px}
.history-modal{width:min(1120px,100%)}.history-year-nav{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px}
.record-card.record-with-daily{display:grid;grid-template-columns:auto 1fr;align-content:start;min-height:0}
.record-with-daily .daily-card{grid-column:1/-1;border:0;border-top:1px solid var(--line);box-shadow:none;border-radius:0;padding:16px 0 0;margin-top:2px}
.record-with-daily .daily-card small{display:none}.dashboard-insights:has(>.share-card:only-child){grid-template-columns:1fr}
.personal-signup-dialog{width:min(1040px,94vw);max-width:1040px}.personal-signup-columns{display:grid;grid-template-columns:1fr 1fr;gap:32px}.personal-plans{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.personal-plans>div,.personal-plans>button{padding:18px;border:1px solid var(--line);border-radius:14px;text-align:left;display:grid;gap:6px}.personal-plans strong{font-size:1.6rem;color:var(--ink)}.personal-plans span{font-size:.8rem;color:var(--muted)}.social-promotions{display:flex;gap:8px;flex-wrap:wrap}.social-promotions button{border:0;border-radius:10px;padding:12px;color:#fff;font-weight:750}.social-instagram{background:#a82d81}.social-tiktok{background:#131b27}.billing-summary,.billing-history,.access-ended{padding:22px;margin-bottom:18px}.billing-summary .consent-row{max-width:650px;margin-bottom:14px}.billing-history{overflow-x:auto}.billing-summary #billing-message{margin:16px 0;color:var(--muted)}.promotion-owner-layout{display:grid;grid-template-columns:320px 1fr;gap:20px}.promotion-owner-layout>.card{padding:20px}.promotion-owner-layout .code-row{overflow-wrap:anywhere}.access-countdown{padding:12px 18px;border:1px solid var(--line);border-radius:12px;margin-bottom:16px;background:var(--blue-soft)}
.paper-dashboard{margin-bottom:22px}.past-paper-list{display:grid;gap:12px}.past-paper-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px}.past-paper-row h2{font-size:1rem;margin:0 0 7px}.past-paper-row span{color:var(--muted);font-size:.8rem}.paper-actions{display:flex;gap:8px;flex-wrap:wrap}.paper-actions a{text-decoration:none;display:inline-flex;align-items:center}.paper-type-grid h2{font-size:1rem}.paper-boundaries{display:flex;gap:8px;flex-wrap:wrap}.paper-boundaries>span{border:1px solid var(--line);border-radius:10px;display:grid;gap:5px;text-align:center;padding:10px}
@media(max-width:900px){.past-paper-row{align-items:flex-start;flex-direction:column}.paper-actions{width:100%}.paper-actions>*{flex:1;justify-content:center;text-align:center}}
@media(max-width:760px){.personal-signup-columns,.promotion-owner-layout{grid-template-columns:1fr}.personal-signup-columns{gap:20px}.personal-plans>div,.personal-plans>button{padding:12px}.personal-plans strong{font-size:1.3rem}}
.math-content figure{background:transparent;border:0;border-radius:0;padding:10px;margin:16px 0}.math-content figure .content-image{margin:0 auto}
@media(max-width:760px){.manual-set .question-tile .type-pills{grid-column:3;grid-row:1}.manual-set .question-tile .tile-preview{grid-row:2}.manual-set .group-tile .tile-preview{grid-row:3}.history-year-nav button{padding:7px;font-size:.72rem}}
.worked-solution-image{display:block;width:auto;max-width:100%;height:auto;margin:12px auto;background:transparent;mix-blend-mode:multiply}
.worked-solution-toggle{margin:12px 0}
.signup-code-dialog{width:min(440px,calc(100vw - 28px));padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--ink)}
.signup-code-dialog::backdrop{background:#071b36aa}
.social-promotions img{width:20px;height:20px;vertical-align:middle;margin-right:7px}
.social-promotions img{filter:brightness(0) invert(1)}
@media(max-width:760px){.auth-screen{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}.auth-brand{grid-row:1}.auth-brand img{width:120px}.auth-panel{grid-row:2;justify-self:center}.auth-intro{grid-row:3;padding-top:12px}.auth-intro h1{font-size:clamp(1.85rem,7vw,2.4rem)}.auth-brand span{font-size:.65rem}}
/* Stable resource views and standalone personal billing. */
.app.billing-focused{display:block;background:linear-gradient(145deg,#eef3fb,#fff 65%);min-height:100dvh}.billing-focused>.sidebar,.billing-focused>main>.topbar,.billing-focused>.menu-backdrop{display:none!important}.billing-focused .view{max-width:1040px;padding-top:32px}.billing-brand{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:26px}.billing-brand img{width:156px;height:auto}.billing-brand>div{display:flex;align-items:center;gap:10px}.billing-plan-tabs button{cursor:pointer;border:2px solid var(--line);transition:border-color .15s,background .15s}.billing-plan-tabs button.selected{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 0 0 1px var(--blue)}.billing-plan-tabs strong{font-size:2rem}.billing-plan-tabs strong small{font-size:.8rem;font-weight:600}.billing-plan-details:empty{display:none}.billing-plan-details{padding:18px 0 8px}.billing-plan-details h3{margin-top:0}
.personal-choice{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:20px;cursor:pointer;color:var(--ink)}.personal-choice:hover{border-color:var(--blue);background:var(--blue-soft)}.choice-title{font-size:1.25rem;font-weight:850}.personal-signup-dialog{width:min(1120px,95vw);max-width:1120px}.personal-signup-columns{grid-template-columns:1fr}.personal-offer{max-width:920px;width:100%;margin:auto}.personal-offer>h3{font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.15;margin:12px 0 22px}.personal-pricing{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}.price-card{background:var(--blue-soft);border:1px solid var(--line);padding:24px;border-radius:16px}.price-card>span{font-weight:750}.price-card strong{display:block;font-size:clamp(2.1rem,5vw,3.2rem);line-height:1.3;color:var(--ink)}.price-card strong small{font-size:.9rem;font-weight:600}.price-card p{margin:6px 0}.price-card b{font-size:.82rem}.personal-promotion{border-top:1px solid var(--line);margin-top:24px;padding-top:10px}.social-promotions a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;border-radius:10px;padding:11px 16px;color:#fff;font-weight:750}.personal-signup-columns.registration-open{grid-template-columns:1fr 1fr}.personal-register-panel{padding:18px;border:1px solid var(--line);border-radius:16px}.personal-signup-columns.registration-open .price-card{padding:14px}.personal-signup-columns.registration-open .price-card strong{font-size:2rem}
.paper-type-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.paper-type-card{display:flex;align-items:center;gap:18px;text-align:left;padding:22px;cursor:pointer;border:1px solid var(--line);min-width:0}.paper-type-card:hover{border-color:var(--blue);box-shadow:0 8px 25px #16335412}.paper-type-card>div{min-width:0}.paper-type-card h2{margin:5px 0 9px;line-height:1.3;font-size:1.1rem}.paper-type-code{font-size:.7rem;letter-spacing:.06em;font-weight:800;color:var(--blue)}.paper-type-icon{width:62px;height:62px;display:grid;place-items:center;flex-shrink:0;border-radius:17px;background:var(--blue-soft);color:var(--blue)}.paper-type-icon svg{width:36px;height:36px}.paper-type-arrow{margin-left:auto;color:var(--blue);font-size:1.3rem}.past-paper-row.paper-marked{background:linear-gradient(90deg,#e0f4e8 0%,#e0f4e8 var(--paper-score),#fce8e9 var(--paper-score),#fce8e9 100%)}.paper-result{display:flex;align-items:center;gap:22px;min-width:200px}.paper-grade{font-size:2.5rem;line-height:1;font-weight:900;color:var(--ink)}.paper-actions{justify-content:flex-end}.chapter-number{font-size:1.8rem!important;font-weight:900;line-height:1}
.progress-detail-group{border:1px solid var(--line);border-radius:13px;margin:12px 0;overflow:hidden}.progress-detail-group>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;cursor:pointer;list-style:none}.progress-detail-group>summary::before{content:'›';font-size:1.3rem;font-weight:750;flex-shrink:0}.progress-detail-group[open]>summary::before{transform:rotate(90deg)}.progress-topic-label{display:grid;gap:5px;min-width:0;flex:1}.progress-topic-label small{color:var(--muted);font-size:.75rem}.progress-topic-label strong{line-height:1.4;overflow-wrap:anywhere}.progress-topic-counts{display:flex;gap:12px;flex-wrap:wrap;font-size:.78rem;font-weight:750}.progress-detail-list{padding:0 16px 16px;display:grid;gap:8px}.progress-detail-item{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 14px;border:1px solid var(--line);background:#fff;border-radius:9px;text-align:left}.progress-detail-item>span{display:grid;gap:5px;min-width:0}.progress-detail-item strong{overflow-wrap:anywhere}.progress-detail-item small{color:var(--muted);font-size:.7rem;overflow-wrap:anywhere}.progress-detail-item b{font-size:.78rem;flex-shrink:0}
.worked-solution-toggle{margin:0!important;font-size:.82rem;min-width:118px}.worked-solution-toggle.active{background:#7041bd;color:#fff;border-color:#7041bd}.question-card.solution-visible,.group-part.solution-visible{border-color:#8b5cf6!important;box-shadow:0 0 0 2px #8b5cf61c}.solution-visible>.question-label{color:#7041bd}.mark-controls .worked-solution-toggle:focus-visible{outline:3px solid #b9a0e4;outline-offset:3px}
@media(max-width:760px){.personal-signup-columns.registration-open{grid-template-columns:1fr}.price-card{padding:15px}.paper-type-grid{grid-template-columns:1fr}.paper-type-card{padding:18px;gap:14px}.paper-result{width:100%;justify-content:space-between}.paper-actions{justify-content:flex-start}.progress-detail-group>summary{padding:15px 13px;gap:10px;flex-wrap:wrap}.progress-topic-counts{padding-left:20px;width:100%;gap:10px}.progress-detail-list{padding:0 10px 10px}.progress-detail-item{padding:12px 10px}.billing-focused .view{padding-top:calc(env(safe-area-inset-top) + 20px)}.billing-brand img{width:120px}.billing-plan-tabs strong{font-size:1.65rem}.mark-controls .worked-solution-toggle{flex:1;min-width:90px}}
.detailed-progress{padding:22px}.price-card strong{white-space:nowrap}.price-card strong small{white-space:normal}.progress-detail-list{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr))}
@media(max-width:760px){.detailed-progress{padding:16px}.price-card strong{font-size:1.8rem}.price-card strong small{font-size:.65rem}}
.price-card strong small,.billing-plan-tabs strong small{display:block;white-space:nowrap;font-size:.8rem;line-height:1.4}
body:has(.billing-focused)>.sync-indicator{display:none}.billing-plan-tabs>button{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:10px}
.library-folders .folder-icon{width:64px;height:64px;font-size:1.8rem!important;font-weight:900;line-height:1;flex-shrink:0}
.dashboard-grid{align-items:stretch}
.dashboard-grid>div:first-child{display:block}
.dashboard-summary-metrics{grid-column:1/-1}
.dashboard-grid .hero-card{display:flex;flex-direction:column;justify-content:center;padding:22px 24px;height:100%}
.dashboard-grid .metric-strip{margin-top:0}
.dashboard-grid .record-card.record-with-daily{align-self:stretch;align-content:center;row-gap:20px;padding:22px}
.dashboard-insights:has(>.share-card:only-child){margin-top:16px}
.share-card{grid-template-columns:96px minmax(0,1fr);gap:18px;padding:16px 20px}
.share-card>img{width:96px;border-width:5px;border-radius:12px}
.share-card>div{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:20px;align-items:center}
.share-card .eyebrow,.share-card h2,.share-card p,.share-card a{grid-column:1}
.share-card h2{font-size:1rem;margin:2px 0 3px}
.share-card p{font-size:.8rem;margin:0 0 3px}
.share-card a{font-size:.76rem;margin:0}
.share-card button{grid-column:2;grid-row:1/5}
.paper-catalog-placeholder{border:0;box-shadow:none;background:transparent}
.paper-placeholder{height:108px;background:var(--blue-soft)}
.paper-sync-error{margin-top:14px;color:var(--muted);font-size:.8rem}
@media(max-width:1000px){.dashboard-grid{grid-template-columns:minmax(0,1.35fr) minmax(230px,.8fr)}}
@media(max-width:760px){.dashboard-grid{grid-template-columns:1fr}.dashboard-grid .hero-card{padding:20px}.dashboard-grid .record-card.record-with-daily{padding:18px;row-gap:14px}.share-card{grid-template-columns:80px minmax(0,1fr);gap:12px;padding:14px;text-align:left}.share-card>img{width:80px;justify-self:start}.share-card>div{display:block}.share-card button{margin-top:8px;padding:8px 12px;font-size:.8rem;justify-self:start}.share-card h2{font-size:.95rem}.share-card p{font-size:.75rem}.share-card a{font-size:.7rem}}
/* Dialogs own their scroll; form panels stay in the same flow. */
html:has(dialog[open],.modal-backdrop){overflow:hidden}
.signup-dialog{overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable}
.signup-shell{overflow:visible;max-height:none}
.modal .completion-list,.modal .assignment-options,.modal .scope-class-options,.modal .selector-tree{max-height:none;overflow:visible}
.consent-row,.signup-dialog .consent-row,.billing-summary .consent-row{display:flex;align-items:flex-start;gap:12px;max-width:100%;line-height:1.55;cursor:pointer}
.consent-row>span{min-width:0;flex:1}
.consent-row input[type="checkbox"],.signup-dialog .consent-row input[type="checkbox"]{appearance:none;display:grid;place-content:center;flex:0 0 22px;width:22px;height:22px;margin:2px 0 0;padding:0;border:2px solid #a9b9cd;border-radius:6px;background:#fff;cursor:pointer;transition:background .15s,border-color .15s}
.consent-row input[type="checkbox"]::before{content:"";width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:translateY(-1px) rotate(45deg) scale(0)}
.consent-row input[type="checkbox"]:checked{background:var(--blue);border-color:var(--blue)}
.consent-row input[type="checkbox"]:checked::before{transform:translateY(-1px) rotate(45deg) scale(1)}
.consent-row input[type="checkbox"]:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;box-shadow:none}
.consent-row input[type="checkbox"]:disabled{opacity:.5;cursor:not-allowed}
.billing-plan-details{display:grid;gap:14px;padding:18px 0 8px}
.billing-plan-details h3,.billing-plan-details p{margin:0}
.billing-plan-details .consent-row{margin:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8faff;font-size:.9rem}
.billing-plan-details #billing-continue{justify-self:start;margin-top:2px}
.billing-summary>[data-redeem-access]{display:block;margin:10px 0 0;padding-left:0;text-align:left}
@media(max-width:600px){.signup-shell{padding:20px 16px}.billing-plan-details #billing-continue{width:100%;justify-self:stretch}.billing-plan-details .consent-row{padding:12px;font-size:.85rem}}
.selector-tree,.completion-list,.assignment-options,.scope-class-options{max-height:none;overflow:visible}
.signup-dialog .dialog-head{position:sticky;top:0;z-index:2;background:#fff;padding:12px 0}

/* Consistent compact question references and tags across the library and answering view. */
.question-head .meta>.badge,.question-head .meta>.difficulty-pill,.question-head .meta .type-pill{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:30px;min-height:30px;min-width:0;padding:0 10px;font-size:.76rem;line-height:1;font-weight:750;border:1px solid transparent;border-radius:999px;white-space:nowrap}
.question-head .meta .type-pill.type-regular{border-color:#d8e0eb}.question-head .meta .type-pill.type-problem-solving{border-color:#efcc6e}.question-head .meta .type-pill.type-exam-style{border-color:#c8b6f0}
.question-head .meta .type-pills{flex-wrap:wrap;align-items:center;max-width:100%;gap:6px;order:0}
.manual-set .question-tile{align-items:center}.manual-set .tile-reference{line-height:1.2;white-space:nowrap}
.manual-set .question-tile .difficulty-pill,.manual-set .question-tile .type-pill{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:22px;min-height:22px;padding:0 7px;font-size:.65rem;line-height:1;border:1px solid transparent;white-space:nowrap;overflow-wrap:normal}
.manual-set .question-tile .type-pills{align-items:center;gap:4px}.manual-set .question-tile .tile-preview{align-self:start}
.auth-intro>.eyebrow{margin-top:18px;transform:translateY(4px)}
img[src$="book-covers/fm-fm1.png"]{clip-path:inset(1.6% 1.4% 3.5% 1.4% round 3px)}
.auth-book-gallery .auth-book-images img[src$="fm-fm1.png"]{border:0}

.manual-set .question-tile .type-pill.type-regular{border-color:#d8e0eb}.manual-set .question-tile .type-pill.type-problem-solving{border-color:#efcc6e}.manual-set .question-tile .type-pill.type-exam-style{border-color:#c8b6f0}.manual-set .question-tile .type-pill.type-combined{border-color:#d9bad7}

/* Original PDF text is rendered natively; no nested scroller or enlarged tiles. */
.structured-solution-content{overflow:visible}
.worked-solution-text{display:block;max-width:100%;height:auto;margin:12px auto;background:transparent;mix-blend-mode:multiply;overflow:hidden;user-select:text;-webkit-user-select:text}

/* Question artwork blends into the card, including linked parts. */
.question-card,.group-part{isolation:isolate}
.math-content .content-image{mix-blend-mode:multiply}
.tree-summary{display:flex;align-items:center;justify-content:flex-end;gap:10px;white-space:nowrap}
.hidden-selection{display:inline-flex;align-items:center;gap:2px;color:var(--blue);font-size:1rem;line-height:1}
.hidden-selection b{font-size:.63rem;font-weight:850}
@media(max-width:760px){.tree-summary{gap:5px}.hidden-selection{font-size:.9rem}}

/* Keep compact difficulty labels inside their pills at narrow widths. */
.manual-set .question-tile .tile-top{min-width:max-content}.manual-set .question-tile .difficulty-pill{flex-shrink:0;width:max-content;min-width:max-content;max-width:none}.manual-set .question-tile{grid-template-columns:max-content max-content minmax(0,1fr)}
/* The formula reference is independent of the current question and its scroll. */
.formula-overlay[hidden]{display:none!important}.formula-overlay{position:fixed;inset:0;z-index:1000;background:#0b173088;display:grid;place-items:center;padding:8px}.formula-dialog{width:min(1200px,100%);height:min(960px,100%);background:#edf1f6;display:flex;flex-direction:column;overflow:hidden;border-radius:6px;border:0;box-shadow:0 16px 65px #0004}.formula-toolbar{display:flex;align-items:center;gap:12px;flex:none;min-height:44px;padding:6px 10px;background:#fff;color:var(--ink);font:650 .8rem/1.2 system-ui}.formula-toolbar>span{margin-right:auto}.formula-toolbar button,.formula-toolbar select,.formula-toolbar input{border:1px solid var(--line);border-radius:5px;background:white;color:var(--ink);font:inherit;min-height:30px;padding:4px 8px}.formula-zoom{display:flex;align-items:center;gap:4px}.formula-page-control{display:flex;align-items:center;gap:4px;white-space:nowrap}.formula-page-control input{width:48px;padding:4px}.formula-scroll{position:relative;overflow:auto;flex:1;min-height:0;overscroll-behavior:contain;scrollbar-gutter:stable}.formula-pages{position:relative;margin:0 auto;padding:8px 0}.formula-page{position:relative;margin:0 auto 8px;background:#fff;overflow:hidden}.formula-page canvas{display:block}.formula-status{padding:28px;font:1rem/1.5 system-ui}.formula-status a{display:inline-block;margin-top:10px}.formula-ref-btn{border:1px solid var(--line);background:#fff;border-radius:999px;min-height:36px;padding:6px 10px;color:var(--ink);font-size:.72rem;font-weight:750;white-space:nowrap}.formula-dashboard{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;padding:14px 18px}.formula-dashboard strong{font-size:.92rem}.formula-dashboard a{font-size:.82rem;white-space:nowrap}.question-head{flex-wrap:wrap}.question-actions{align-items:center}
@media(max-width:600px){.formula-overlay{padding:4px}.formula-toolbar{gap:5px;padding:5px;font-size:.7rem}.formula-toolbar>span{font-size:.72rem}.formula-zoom{gap:2px}.formula-toolbar button,.formula-toolbar select{padding:4px 5px}.formula-page-control input{width:36px}.formula-dialog{border-radius:3px}.formula-ref-btn{min-height:32px;font-size:.65rem;padding:5px 8px}.formula-dashboard{padding:12px;flex-wrap:wrap}}

/* Formula access and billing branding: retain the existing compact layout. */
.formula-ref-btn{display:inline-flex;align-items:center;gap:7px;background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 3px 9px #17447725;font-weight:800}.formula-ref-btn:hover{filter:brightness(1.08)}.formula-ref-btn:focus-visible,.formula-dashboard:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.formula-button-symbol{font:italic 800 1.1rem Georgia,serif;line-height:1}.formula-dashboard{text-decoration:none;color:var(--ink);transition:border-color .15s,box-shadow .15s}.formula-dashboard:hover{border-color:var(--blue);box-shadow:0 4px 15px #17447712}.formula-dashboard>span:first-child{display:grid;gap:4px}.formula-dashboard small{color:var(--muted);font-size:.75rem}.formula-row-arrow{color:var(--blue);font-size:1.35rem;font-weight:800}.billing-brand .billing-brand-lockup{gap:18px;flex-wrap:wrap}.billing-macroworks{display:flex;align-items:center;gap:7px;text-decoration:none;color:var(--muted);font-size:.63rem;border-left:1px solid var(--line);padding-left:16px}.billing-brand .billing-macroworks img{width:34px;height:34px;object-fit:contain}.billing-macroworks strong{display:block;color:var(--ink);font-size:.78rem}.billing-brand{flex-wrap:wrap}@media(max-width:600px){.billing-brand .billing-brand-lockup{gap:10px}.billing-macroworks{padding-left:10px}.billing-brand .billing-macroworks img{width:28px;height:28px}.formula-ref-btn{gap:5px}}
.billing-brand>div:last-child{margin-left:auto}

.nav-svg{width:22px;height:22px;display:block}.course-switch{display:inline-block;margin:12px 0 2px;color:#bbdbec;font-size:.76rem;text-decoration:none}.course-switch:hover{text-decoration:underline}

.auth-heading{display:contents}.auth-heading-logo{display:none}.study-signin-brand{font-size:.88rem;color:#abd2e8;margin:0 0 12px}.auth-panel #signup-btn{font-size:.96rem}.full-progress-toggle{margin-top:26px}.full-progress-toggle>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;gap:18px}.full-progress-toggle>summary::-webkit-details-marker{display:none}.full-progress-toggle h2{margin:0 0 4px}.full-progress-toggle small{color:var(--muted)}.full-progress-toggle .compact-progress{margin-top:22px}.progress-chevron{transition:transform .2s;font-size:1.7rem}.full-progress-toggle[open] .progress-chevron{transform:rotate(180deg)}
#modal-root .modal.history-modal{width:min(1500px,96vw);max-width:1500px;max-height:94dvh}.history-modal .history-chart{min-height:380px}.history-modal svg{width:100%;min-height:330px}.paper-qualification-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:26px}.paper-qualification>h2{font-size:1.25rem;margin-bottom:16px}.paper-type-stack{display:grid;gap:12px}.paper-type-progress{width:100%;padding:18px;gap:14px;text-align:left;min-height:124px;display:flex;align-items:center;background:linear-gradient(90deg,#d5f3e8 0 var(--type-correct),#ffe1e4 var(--type-correct) var(--type-attempted),#fff var(--type-attempted) 100%)}.paper-type-progress h3{font-size:1.1rem;margin:5px 0}.paper-type-progress>div{flex:1;min-width:0}.paper-type-number{font-size:1.7rem;font-weight:850;border-radius:12px;min-width:45px;height:50px;display:grid;place-items:center;background:#ffffffa0}.paper-average-grade{font-size:2rem;line-height:1}.paper-type-code{font-size:.72rem}.paper-type-progress small{line-height:1.4}
@media(max-width:1000px){.paper-qualification-columns{grid-template-columns:1fr}.paper-type-stack{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.auth-screen .auth-brand{display:none}.auth-screen .auth-intro{grid-row:1}.auth-screen .auth-panel{grid-row:2}.auth-heading{display:flex;align-items:center;gap:18px;text-align:left}.auth-heading-logo{display:block!important;width:105px!important;height:110px;object-fit:contain;flex:0 0 105px}.auth-heading h1{font-size:clamp(1.5rem,5vw,2.15rem);line-height:1.15;flex:1;margin:12px 0}.auth-intro .eyebrow{margin-top:18px}.history-modal svg{min-height:250px}.paper-type-stack{grid-template-columns:1fr}}

/* Queued dashboard and shared account presentation corrections. */
.course-switch{display:flex;align-items:center;gap:14px;padding:13px 16px!important;border:1px solid #34d39955;border-radius:16px;background:#064e3b55;text-decoration:none!important;color:#bbf7d0!important;font-weight:650}.course-switch img{width:70px;height:60px;object-fit:contain;background:none;border:0;padding:0}.course-switch span{display:grid;gap:4px}.course-switch strong{font-weight:800;font-size:1rem}.full-progress-toggle{padding:22px!important}.full-progress-toggle>summary>span{min-width:0}.full-progress-toggle>summary h2{font-size:1.3rem!important;line-height:1.25;overflow-wrap:anywhere;margin:0 0 6px}.full-progress-toggle>summary small{font-size:.85rem}.full-progress-toggle>summary .progress-chevron{flex:none;line-height:1}.progress-disclosure{margin-top:12px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.progress-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px;cursor:pointer;list-style:none}.progress-disclosure>summary::-webkit-details-marker{display:none}.progress-disclosure h3,.progress-disclosure h4,.progress-chapter h4{margin:0 0 5px;font-size:1rem;overflow-wrap:anywhere}.progress-disclosure>summary>div,.progress-chapter>div{min-width:0}.progress-disclosure[open]>summary>.progress-chevron{transform:rotate(180deg)}.progress-children{padding:0 12px 12px}.progress-chapter{padding:14px;margin-top:8px;border:1px solid var(--line);border-radius:10px}.record-with-daily .daily-card,.record-with-daily .daily-card>div,.daily-card{background:#fff!important}.paper-type-progress{min-height:90px!important;padding:14px 16px!important}.paper-type-progress h3{font-size:1rem!important}.paper-type-code{font-size:.68rem}.paper-type-stack{gap:10px}.history-scroll{overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:auto;padding:10px 0 18px}.history-year-plot{width:200%;min-width:900px}.history-year-plot svg{min-height:300px;height:auto}.study-manage-link{display:inline-block;text-decoration:none;padding:13px 18px;border-radius:12px;margin:8px 10px 8px 0}.profile-edit{display:none!important}@media(max-width:760px){.full-progress-toggle{padding:18px!important}.full-progress-toggle>summary h2{font-size:1.15rem!important}.progress-children{padding:0 8px 8px}.progress-disclosure>summary{padding:13px}.course-switch img{width:58px;height:55px}.history-year-plot{min-width:780px}.history-year-plot svg{min-height:240px}}

/* October 14: anchor branding and marketing without viewport-height whitespace. */
.auth-screen{align-content:start;position:relative;row-gap:26px}.auth-screen .auth-brand{position:static;grid-column:1;grid-row:1;align-self:start}.auth-screen .auth-intro{grid-column:1;grid-row:2;padding-top:0;align-self:start}.auth-screen .auth-panel{grid-column:2;grid-row:1/3;align-self:start}.auth-intro>.eyebrow{margin-top:0;transform:none}@media(max-width:760px){.auth-screen .auth-brand{display:none}.auth-screen .auth-intro{grid-column:1;grid-row:1}.auth-screen .auth-panel{grid-column:1;grid-row:2}.auth-intro>.eyebrow{margin-top:0;transform:none}}
.auth-screen{grid-template-rows:max-content max-content 1fr}.auth-screen .auth-panel{grid-row:1/4}@media(max-width:760px){.auth-screen{grid-template-rows:auto auto}.auth-screen .auth-panel{grid-row:2}}

/* Oct15: maintain login panel position while raising branding slightly. */
.auth-screen>.auth-brand,.auth-screen>.auth-intro{position:relative;top:-12px}
.topbar #sync-indicator{position:static;margin-left:auto;flex:none;font-size:.7rem;border-radius:8px;padding:6px 10px;color:#15803d;background:#e7f7ed;white-space:nowrap;line-height:1.45}
.topbar #sync-indicator.syncing{color:#7a5b0c;background:#fff6d7}.topbar #sync-indicator.offline{color:#b42332;background:#ffe9eb}
.topbar #header-help{margin-left:0}
@media(max-width:760px){.auth-screen>.auth-brand,.auth-screen>.auth-intro{top:-6px}}

/* Same disclosure affordance as the teaching-video folders. */
:is(.full-progress-toggle,.full-progress-toggle .progress-disclosure) summary{list-style:none;cursor:pointer;position:relative;padding-right:46px!important;min-height:48px}
:is(.full-progress-toggle,.full-progress-toggle .progress-disclosure) summary::-webkit-details-marker{display:none}
:is(.full-progress-toggle,.full-progress-toggle .progress-disclosure) summary::after{content:"";position:absolute;right:20px;top:50%;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-70%) rotate(45deg);transition:transform .16s}
:is(.full-progress-toggle,.full-progress-toggle .progress-disclosure)[open]>summary::after{transform:translateY(-20%) rotate(225deg)}
:is(.full-progress-toggle,.full-progress-toggle .progress-disclosure) summary .progress-chevron{display:none}

.source-notice-button{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:.75rem;color:#865412;background:#fff6df;border:1px solid #ebd29b;border-radius:9px;padding:7px 10px;margin:10px 0 0;text-align:left}.source-notice-reference{color:var(--muted);font-size:.8rem}.source-unavailable-list{margin-top:25px}.source-unavailable{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;padding:13px 16px;margin-top:8px;border:1px dashed #d8c6a4;background:#fffbf3;color:#74582f;border-radius:12px}.source-unavailable span{font-size:.78rem}.source-unavailable-list h3{font-size:.9rem;color:var(--muted)}

:is(.full-progress-toggle,.full-progress-toggle .progress-disclosure) summary::after{content:"▾";width:36px;height:36px;border:0;display:grid;place-items:center;border-radius:9px;font-size:1.05rem;color:var(--muted);transform:translateY(-50%);right:8px}:is(.full-progress-toggle,.full-progress-toggle .progress-disclosure)[open]>summary::after{content:"▴";transform:translateY(-50%)}:is(.full-progress-toggle,.full-progress-toggle .progress-disclosure) summary:hover::after{background:#edf3fa;color:var(--blue)}

@media(max-width:600px){.paper-mark-chart,.paper-progress-chart,.past-paper-chart,.activity-card:has(.progress-line-chart){min-width:0;overflow:hidden}.progress-line-chart{width:100%;height:auto!important;min-height:180px;display:block}.progress-line-chart text{font-size:12px}}

/* Geometry is recomputed at the container's width; labels stay a fixed readable size. */
.responsive-chart{width:100%;min-width:0;line-height:normal}.responsive-chart .progress-line-chart{display:block;width:100%;height:auto!important;min-height:0!important;max-width:none;overflow:visible}.responsive-chart .progress-line-chart text{font:12px Inter,system-ui,sans-serif;fill:var(--muted)}.responsive-chart polyline,.responsive-chart line{vector-effect:non-scaling-stroke}.responsive-chart .chart-correct{stroke:var(--green,#19a66c);stroke-width:2}.responsive-chart circle.chart-correct{fill:var(--green,#19a66c);stroke-width:0}.responsive-chart .chart-wrong{stroke:var(--red,#df5b69);stroke-width:2}.responsive-chart circle.chart-wrong{fill:var(--red,#df5b69);stroke-width:0}.responsive-chart .chart-grid{stroke:var(--line,#d4e4df);stroke-width:1}
.history-modal{width:min(1440px,96vw)!important;max-height:92dvh!important;min-height:0!important;overflow:hidden!important}.history-modal .modal-body{min-height:0;overflow:auto}.history-modal .history-scroll{overflow-x:auto;overflow-y:hidden;width:100%;padding-bottom:8px;overscroll-behavior-x:contain}.history-modal .history-year-plot{width:200%;min-width:640px;min-height:0!important}.history-modal #history-chart,.history-modal #year-chart{min-height:0!important}.history-year-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.history-year-nav button{font-size:.82rem;white-space:normal}.history-modal .modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.history-modal .modal-head h2{margin:0}.history-modal .close,.history-modal #close-modal{flex:0 0 36px;width:36px!important;height:36px!important;padding:0!important;font-size:24px!important;line-height:1;display:grid;place-items:center;position:static!important}.history-modal #close-modal svg{width:20px!important;height:20px!important;min-height:0!important}
html{background:var(--safe-area-color,#fff)}body{min-height:100dvh;background:#fff}.view{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.question-screen{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.sidebar{padding-top:calc(24px + env(safe-area-inset-top));padding-bottom:calc(18px + env(safe-area-inset-bottom))}
@media(max-width:760px){.topbar{padding-top:env(safe-area-inset-top);min-height:calc(66px + env(safe-area-inset-top));height:auto}.history-year-nav button{padding:8px;font-size:.72rem}.history-modal{width:calc(100vw - 20px)!important}.history-modal .modal-head h2{font-size:1.2rem}.modal-backdrop{padding-top:max(10px,env(safe-area-inset-top));padding-bottom:max(10px,env(safe-area-inset-bottom))}}

.session-foot[hidden]{display:none!important}.challenge-badge{display:inline-flex;align-items:center;gap:5px;border-radius:8px;padding:4px 7px;background:#eee8ff;color:#6035a3;font-size:.72rem;font-weight:750}.filter-help{font-size:.75rem;color:var(--muted);line-height:1.5;margin:8px 0 0}.session-summary{max-width:920px;margin:20px auto;padding:clamp(22px,4vw,44px)}.session-summary h1{font-size:clamp(2rem,4vw,3rem);margin:12px 0}.session-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:26px 0}.session-metrics>div{display:grid;gap:7px;padding:18px;border-radius:14px;background:#f3f6fb}.session-metrics strong{font-size:2rem}.session-metrics span{font-size:.83rem;color:var(--muted)}.session-metrics>div:first-child strong{color:var(--green)}.session-metrics>div:nth-child(2) strong{color:var(--red)}.session-chapters{display:grid;gap:20px;margin:25px 0}.session-chapters small{color:var(--muted)}.session-result-bar{display:flex;height:13px;border-radius:8px;overflow:hidden;background:#edf1f7;margin:8px 0}.session-result-bar i{background:var(--green)}.session-result-bar b{background:var(--red)}
@media(min-width:761px){.auth-screen{grid-template-rows:minmax(0,1fr) auto auto minmax(0,1fr);align-content:stretch;row-gap:24px}.auth-screen>.auth-brand{grid-row:2;grid-column:1;align-self:end;top:auto;justify-content:flex-start}.auth-screen>.auth-intro{grid-row:3;grid-column:1;align-self:start;top:auto;padding-top:0}.auth-screen>.auth-panel{grid-row:1/5;grid-column:2;align-self:start}.auth-brand span{padding-left:12px}.auth-intro>.eyebrow{margin-top:0;transform:none}}
@media(max-width:760px){.auth-screen>.auth-intro{top:auto}.auth-screen>.auth-panel{grid-row:2}.session-metrics{grid-template-columns:repeat(2,1fr)}.session-summary{margin-top:0}}

/* Keep landscape history plots inside the available dialog height. */
.history-modal{display:flex!important;flex-direction:column}.history-modal>.modal-head,.history-modal>.history-year-nav{flex-shrink:0}.history-modal>.modal-body{flex:1;min-height:0;overflow:auto}.history-modal>#year-chart{flex:1;min-height:0;overflow:auto}

@media(min-width:761px){.auth-screen>.auth-brand{left:auto;right:auto}}

/* ProofPath follow-up: existing cards and layouts, with isolated mock controls. */
.challenge-badge,.question-head .challenge-badge{background:#fce7f3;color:#9f1853;border:1px solid #e9a8c5;display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:8px;font-size:.7rem;font-weight:800;white-space:normal;max-width:none!important}
.manual-set .question-tile:has(.challenge-badge) .tile-top{grid-column:3;grid-row:1;justify-self:end;text-align:right;min-width:0}.manual-set .question-tile:has(.challenge-badge) .tile-preview{grid-column:1/-1}.manual-set .question-tile:has(.challenge-badge) .linked-count{grid-column:1/3}
@media(min-width:761px){.auth-screen{grid-template-rows:max-content 1fr;align-content:start}.auth-screen>.auth-brand{grid-row:1;align-self:start}.auth-screen>.auth-intro{grid-row:2;align-self:start}.auth-screen>.auth-panel{grid-row:1/3;align-self:start}}
.dashboard-resources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:20px}.dashboard-resources .formula-dashboard{margin:0;min-width:0;height:100%}.formula-dashboard .resource-warning{color:#b51d38;font-weight:800;opacity:1}
.mock-folders{margin:20px 0}.mock-progress{height:9px;background:#e6eaf0;border-radius:6px;display:flex;overflow:hidden;width:100%;grid-column:1/-1}.mock-progress i{background:#31a975}.mock-progress b{background:#e5b83c}.mock-paper-list{display:grid;gap:12px;margin-top:20px}.mock-paper-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;text-align:left;padding:20px}.mock-paper-row>span:not(.mock-progress){color:var(--muted);font-size:.85rem}.mock-paper-row>b{grid-column:2;grid-row:1/3;align-self:center}.mock-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:18px}.mock-toolbar>strong{flex:1;text-align:center;min-width:120px}.mock-exam-view{max-width:1000px;margin:auto}.mock-numbers{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.mock-number{min-width:44px;min-height:44px;background:#e6eaf0;border:2px solid transparent;border-radius:9px;font-weight:850;color:#26384c}.mock-number.done{background:#cdeedd;color:#115b3d}.mock-number.skipped{background:#ffe7a2;color:#6d4c00}.mock-number[aria-current]{outline:3px solid var(--blue);outline-offset:2px}.mock-scheme-cue{display:block;margin:12px 0;color:var(--blue);font-weight:750;width:max-content;max-width:100%}.mock-question{cursor:default;min-height:0;margin:18px 0;padding:clamp(20px,4vw,40px);width:100%;transform:none!important}.mock-question:hover{transform:none;box-shadow:var(--shadow)}.mock-question .math-content{width:100%}.mock-scheme{margin-top:24px;padding:clamp(20px,4vw,36px);scroll-margin-top:100px}.mock-mark-field{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-top:24px}.mock-mark-field label{display:grid;gap:7px;font-weight:750}.mock-mark-field input{width:100px;min-height:44px}.mock-mark-field>span{padding-bottom:12px}.mock-controls{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.mock-controls>button{min-height:44px}.mock-summary{padding:clamp(18px,4vw,35px)}.mock-summary-metrics{display:flex;gap:20px;flex-wrap:wrap;margin:22px 0}.mock-summary-metrics strong{color:var(--blue)}.mock-summary-list{display:grid;gap:8px}.mock-summary-list>button{display:flex;gap:12px;justify-content:space-between;align-items:center;text-align:left;flex-wrap:wrap;padding:15px}.mock-summary-list>button>strong{margin-right:auto}.mock-conflict{background:#fff4d7;border:1px solid #e3c36b;color:#493b16;border-radius:12px;padding:15px;margin:15px 0}.mock-conflict button{margin:4px}.mock-conflict p{margin:0 0 8px}.mock-message:empty{display:none}
dialog.offline-screen{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;padding:calc(24px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));z-index:20000;overflow:auto;color:#fff;background:#0b1730}dialog.offline-screen::backdrop{background:#0b1730}.offline-active{--safe-area-color:#0b1730}
@media(max-width:760px){.sidebar{top:0;bottom:0;height:100dvh;padding-top:calc(24px + env(safe-area-inset-top))}.menu-backdrop{inset:0}body::before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top);background:var(--safe-area-color,#fff);pointer-events:none;z-index:11000}.mock-paper-row{padding:16px;gap:10px}.mock-toolbar{gap:8px}.mock-numbers{gap:7px}.mock-question{min-height:0;padding:20px 17px}.mock-summary-list>button>strong{width:100%}.formula-toolbar{padding-top:calc(10px + env(safe-area-inset-top))}}
@media(max-width:540px){.dashboard-resources{grid-template-columns:1fr;gap:12px}.mock-controls>button{flex:1;min-width:90px}}

/* Keep the document gutter and background stable while an overlay locks scrolling. */
html{scrollbar-gutter:stable}
.topbar>.header-actions{display:flex;align-items:center;gap:14px;margin-left:auto;flex:none}
.topbar>.header-actions .round-btn,.topbar>.header-actions #sync-indicator{margin-left:0}
.topbar #sync-indicator.error{background:#ffe9eb;color:#b42332}
.modal-backdrop{overscroll-behavior:contain}.modal{overscroll-behavior:contain}
@media(max-width:420px){.topbar>.header-actions{gap:8px}.topbar .context-label{font-size:.55rem}.topbar strong{font-size:1rem}}

/* Reuse Question Library cards; only mock done/skipped colours differ. */
.mock-folders,.mock-paper-list{--red-soft:#fff0c7}
.library-folders .mock-paper-row{grid-template-columns:auto minmax(0,1fr) auto;padding:18px;gap:13px;text-align:left}
.mock-paper-row .mock-paper-result{font-size:1.5rem;color:var(--ink);align-self:center;justify-self:end}
.mock-folders .folder-stats b:nth-child(2),.mock-paper-list .folder-stats b:nth-child(2){color:#7a5b0c}
.mock-paper-list{grid-template-columns:1fr}
.mock-folder .folder-copy,.mock-paper-row .folder-copy{min-width:0}
@media(max-width:420px){.library-folders .mock-paper-row{padding:14px;gap:10px}.mock-paper-row .mock-paper-result{font-size:1.2rem}.mock-paper-row .folder-icon{width:46px;height:46px}}

/* Mock cards use earned/lost/skipped marks, outer cards use paper completion. */
.mock-folders,.mock-paper-list{--red-soft:#ffe7eb}
.mock-folders .progress-folder,.mock-paper-list .progress-folder{background:linear-gradient(90deg,var(--green-soft) 0 var(--gp,0%),var(--red-soft) var(--gp,0%) var(--rp,0%),#fff0c7 var(--rp,0%) var(--yp,0%),#fff var(--yp,0%))}
.mock-folders .subject-folder .folder-stats b:nth-child(2){color:var(--muted)}
.mock-scheme .math-content>p{padding:10px 14px;margin:0;border-bottom:1px solid var(--line);line-height:1.65;overflow-wrap:anywhere}
.mock-scheme .math-content>p:nth-child(even){background:#f7f9fc}.mock-scheme .math-content>p:last-child{border-bottom:0}
.mock-scheme .math-content{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:20px}

/* Reuse the library formula control without changing mock page/fullscreen rules. */
.mock-toolbar>.formula-ref-btn{flex:0 0 auto;min-height:38px}.mock-toolbar>strong{overflow-wrap:anywhere}.proof-membership-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.proof-membership-notice>span{overflow-wrap:anywhere}.proof-membership-gate{width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--blue,#2967e8);border-top:4px solid var(--blue,#2967e8);border-radius:18px;padding:24px;background:#fff;color:#24334d}.proof-membership-gate::backdrop{background:rgb(12 26 54 / .65)}.proof-membership-gate h2{margin-top:0}.proof-membership-gate .actions{display:flex;flex-wrap:wrap;gap:12px}.proof-membership-gate .primary{display:inline-flex;align-items:center;justify-content:center;text-align:center;white-space:normal}.proof-membership-gate button{white-space:normal}
@media(max-width:600px){.mock-toolbar>strong{order:3;flex-basis:100%;min-width:0}.mock-toolbar>.formula-ref-btn{margin-left:auto}.proof-membership-gate{padding:20px;max-height:calc(100dvh - max(32px,env(safe-area-inset-top)) - env(safe-area-inset-bottom))}.proof-membership-gate .actions>*{width:100%}}

/* ProofPath 22 October: balanced auth grid, hierarchy fills and the mock workspace. */
@media(min-width:761px){.auth-screen{grid-template-columns:minmax(0,1fr) minmax(320px,470px);column-gap:clamp(26px,5vw,90px);padding-inline:clamp(32px,calc((100vw - 1300px)/2),96px)}.auth-screen>.auth-panel{width:100%;justify-self:end;min-width:0}.auth-screen>.auth-intro{min-width:0;justify-self:start}}
.full-progress-toggle .progress-fill{background:linear-gradient(90deg,rgba(57,191,115,.16) 0 var(--gp,0%),rgba(239,82,100,.14) var(--gp,0%) var(--rp,0%),#fff var(--rp,0%) 100%)}
.mock-paper-active #app{grid-template-columns:minmax(0,1fr)}
.mock-paper-active .sidebar,.mock-paper-active .menu-backdrop,.mock-paper-active #menu-toggle,.mock-paper-active #menu-btn{display:none!important}
.mock-paper-active main{min-width:0;width:100%;padding-inline:clamp(16px,4vw,64px)}
.mock-paper-active .topbar{max-width:1400px;margin-inline:auto}
.mock-exam-view,.mock-paper-active .mock-summary{max-width:1400px;margin-inline:auto}
.mock-number-group{display:grid;gap:7px;justify-items:center;min-width:46px}.mock-number-group>small{font-size:.72rem;color:var(--muted);white-space:nowrap;line-height:1.4}
.mock-question,.mock-question:hover{background:none;border:0;box-shadow:none;border-radius:0;padding:14px 0;margin:24px 0;min-height:0;width:100%;text-align:left;transform:none!important}
.mock-question-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:24px;flex-wrap:wrap}.mock-question-heading .question-label{margin:0}
.mock-part{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:14px;align-items:start;margin-block:30px}.mock-part-label{padding-top:4px}.mock-part-content{grid-column:2;min-width:0}.mock-part:not(:has(.mock-part-label)){grid-template-columns:minmax(0,1fr) auto}.mock-part:not(:has(.mock-part-label)) .mock-part-content{grid-column:1}.mock-part-marks{background:#e6efff;color:#1948a6;border:1px solid #bed0f1;border-radius:8px;padding:5px 9px;font-weight:750;font-size:.78rem;white-space:nowrap;align-self:start}.mock-part-content p:first-child,.mock-scheme-row p:first-child{margin-top:0}.mock-shared-stem{margin-bottom:28px}.mock-question .question-image,.mock-question img{max-width:100%;height:auto;object-fit:contain}
.mock-scheme-part+.mock-scheme-part{border-top:1px solid var(--line);padding-top:20px;margin-top:24px}.mock-scheme-part h3{font-size:1rem;margin:0 0 16px}.mock-scheme-rows{display:grid;gap:14px}.mock-scheme-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:start}.mock-scheme-row>.math-content{min-width:0}.mock-awards{display:flex;flex-wrap:wrap;gap:6px;max-width:130px}.mock-award{padding:5px 9px;border:1px solid;border-radius:7px;font-size:.8rem;font-weight:800;white-space:nowrap}.mock-award.method{color:#174f9c;background:#e6efff;border-color:#b6cfef}.mock-award.accuracy{color:#6631a0;background:#f1e8ff;border-color:#d6b9ef}.mock-award.independent{color:#096551;background:#e0f4ed;border-color:#a4daca}.mock-award.other{color:#704800;background:#fff1cf;border-color:#e4cc91}
@media(max-width:760px){.mock-paper-active main{padding-inline:max(14px,env(safe-area-inset-left));padding-bottom:calc(24px + env(safe-area-inset-bottom))}.mock-part{column-gap:9px;row-gap:8px;margin-block:26px}.mock-part-marks{font-size:.72rem;padding:4px 7px}.mock-scheme-row{gap:10px}.mock-awards{max-width:80px}.mock-scheme{padding:18px 14px}.mock-toolbar>strong{order:2;flex-basis:100%;text-align:left}.mock-question-heading{gap:8px}}

.mock-subpart+.mock-subpart{margin-top:20px}

.mock-paper-active .view{padding:24px 0 60px;max-width:1400px}.full-progress-toggle>summary.progress-fill{margin:-22px;padding:22px;border-radius:inherit}.full-progress-toggle[open]>summary.progress-fill{margin-bottom:0;border-radius:var(--radius) var(--radius) 0 0}@media(max-width:760px){.full-progress-toggle>summary.progress-fill{margin:-18px;padding:18px}.full-progress-toggle[open]>summary.progress-fill{margin-bottom:0}}

.mock-part-content.math-content,.mock-shared-stem.math-content,.mock-scheme-row>.math-content{margin:0}.mock-question .content-image{max-height:none;max-width:100%;height:auto}.mock-question figure{margin:20px 0}.mock-part-content [data-math],.mock-scheme-row [data-math]{max-width:100%;overflow-x:auto;overflow-y:hidden}


/* Stage 1: scoped mock typography and intrinsic-size diagrams. */
.mock-question .math-content,.mock-scheme .math-content{font-size:clamp(1rem,1.2vw,1.125rem);line-height:1.65}
.mock-question figure,.mock-scheme figure{margin:16px 0;max-width:100%}
.mock-question .content-image,.mock-question .question-image,.mock-question figure>img,.mock-scheme .content-image,.mock-scheme .question-image,.mock-scheme figure>img{width:auto;height:auto;max-width:min(100%,560px);max-height:360px;object-fit:contain;margin:12px 0}
.mock-question figure>svg,.mock-scheme figure>svg{width:auto;height:auto;max-width:min(100%,560px);max-height:360px}
.mock-number-group{gap:5px}.mock-number-group>small{font-size:.7rem;line-height:1.2}
.mock-question-heading>.report-question-btn{flex:0 0 36px}
@media(max-width:760px){.mock-question .content-image,.mock-question .question-image,.mock-question figure>img,.mock-scheme .content-image,.mock-scheme .question-image,.mock-scheme figure>img,.mock-question figure>svg,.mock-scheme figure>svg{max-height:280px}}

/* Stage 2 access states retain the normal catalogue geometry. */
.access-locked{opacity:.42!important;filter:grayscale(1);cursor:not-allowed!important}
.access-locked:hover{transform:none!important;box-shadow:none!important}
.access-locked a,.access-locked button,.access-locked input{cursor:not-allowed!important}
.saved-dashboard-banner{margin-bottom:22px;border-left:4px solid var(--blue);display:grid;gap:12px}
.saved-dashboard-banner h2,.saved-dashboard-banner p{margin:0}
.saved-dashboard-banner .primary{justify-self:start}
.saved-dashboard-only .hero-card [data-start-practice]{pointer-events:none}

.saved-dashboard-banner{padding:22px}

}
.owner-panel{max-width:1440px;margin:auto}.owner-panel .admin-head{background:linear-gradient(120deg,#402c22,#74523b)}.owner-panel .admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.owner-panel .admin-content{min-width:0}.owner-panel .admin-filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.owner-panel .admin-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.owner-panel .admin-metric strong{display:block;font-size:1.8rem}.owner-panel .card{margin-bottom:16px}.owner-panel .admin-user,.owner-panel .admin-school-row{display:flex;width:100%;gap:16px;align-items:center;text-align:left}.owner-panel .admin-user span:nth-child(2){flex:1}.owner-panel small{display:block}.owner-panel .admin-pager{display:flex;justify-content:center;gap:18px;align-items:center;margin:24px 0}.owner-panel .admin-control-actions,.owner-panel .management-actions{display:flex;flex-wrap:wrap;gap:8px}.owner-panel .report-meta,#owner-dialog .info-grid{display:grid;grid-template-columns:minmax(90px,1fr) minmax(0,3fr);gap:10px}.owner-panel dd,#owner-dialog dd{margin:0;overflow-wrap:anywhere}.owner-panel .owner-track{display:flex;background:#eee;height:12px;border-radius:5px;overflow:hidden}.owner-track i:first-child{background:#389e67}.owner-track i:last-child{background:#cf6d6d}#owner-dialog{width:min(1000px,calc(100vw - 32px));max-height:90dvh;overflow:auto}#owner-dialog img{max-width:100%;max-height:400px;object-fit:contain}.owner-panel button{min-height:42px}.owner-panel table{display:block;overflow:auto}.owner-panel .admin-tabs .active{background:#402c22;color:white}@media(max-width:600px){.owner-panel .admin-user{flex-wrap:wrap}.owner-panel .admin-user time{width:100%}.owner-panel .report-meta{grid-template-columns:1fr}.owner-panel .report-meta dd{margin-bottom:8px}}
.owner-product-label{display:flex;gap:12px;align-items:center;margin:12px 0;color:white}.owner-product-label select{min-width:180px;background:white;color:#402c22;padding:8px;border-radius:8px}.owner-panel pre,#owner-dialog pre{white-space:pre-wrap;overflow-wrap:anywhere}
