@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&display=swap');

:root{
  --app-bg:#f3f4f6;--app-surface:#ffffff;--app-surface-2:#f7f7f8;--app-surface-3:#eceef1;--app-text:#121316;--app-muted:#6d7179;--app-faint:#969aa2;--app-line:#e1e3e7;
  --app-red:#ef3b43;--app-red-dark:#c9252d;--app-green:#28a865;--app-violet:#7b55d8;--app-shadow:0 12px 34px rgba(24,28,38,.08);--app-shadow-lg:0 28px 70px rgba(24,28,38,.12);
  --app-radius:14px;--app-ease:cubic-bezier(.23,1,.32,1);
}
html[data-theme="dark"]{
  --app-bg:#090a0c;--app-surface:#111317;--app-surface-2:#17191e;--app-surface-3:#202329;--app-text:#f3f1ed;--app-muted:#a09d99;--app-faint:#706e6c;--app-line:#272a31;
  --app-shadow:0 14px 36px rgba(0,0,0,.28);--app-shadow-lg:0 32px 80px rgba(0,0,0,.38);
}
body.app-active{margin:0;background:var(--app-bg);color:var(--app-text);font-family:Outfit,ui-sans-serif,system-ui,sans-serif;overflow-x:hidden;min-height:100vh}
body.app-active *{box-sizing:border-box}
body.app-active ::selection{background:rgba(239,59,67,.24);color:var(--app-text)}
body.app-active *{scrollbar-width:thin;scrollbar-color:var(--app-line) transparent}
body.app-active *::-webkit-scrollbar{width:10px;height:10px}body.app-active *::-webkit-scrollbar-thumb{background:var(--app-line);border-radius:999px;border:3px solid transparent;background-clip:padding-box}
body.app-active button,body.app-active input,body.app-active textarea,body.app-active select{font:inherit}
body.app-active button,body.app-active a{outline:none}
body.app-active button:focus-visible,body.app-active a:focus-visible,body.app-active input:focus-visible,body.app-active textarea:focus-visible,body.app-active select:focus-visible{outline:2px solid var(--app-red);outline-offset:3px}
.ui-icon{width:20px;height:20px;display:block;flex:none}

.app-frame{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr);background:var(--app-bg);color:var(--app-text)}
.app-sidebar{position:sticky;top:0;height:100vh;padding:24px 16px 18px;border-right:1px solid var(--app-line);background:var(--app-surface);display:flex;flex-direction:column;z-index:20}
.app-wordmark{width:154px;height:56px;border:0;background:transparent;padding:0 6px;cursor:pointer;display:flex;align-items:center;transition:transform 150ms var(--app-ease)}.app-wordmark:active{transform:scale(.97)}.app-wordmark img{max-width:100%;max-height:52px;object-fit:contain;object-position:left center;filter:var(--brand-filter,none)}
html[data-theme="light"] .app-wordmark img{filter:invert(1) grayscale(1) contrast(2)}
.app-nav{display:flex;flex-direction:column;gap:4px;margin-top:26px;min-height:0;overflow:auto;padding:2px}
.app-nav-item{width:100%;min-height:46px;border:0;border-radius:12px;background:transparent;color:var(--app-muted);display:flex;align-items:center;gap:12px;padding:0 12px;text-align:left;font-size:14px;font-weight:650;cursor:pointer;transition:background 160ms ease,color 160ms ease,transform 130ms var(--app-ease)}
.app-nav-item:hover{background:var(--app-surface-2);color:var(--app-text)}.app-nav-item:active{transform:scale(.98)}.app-nav-item.active{background:var(--app-text);color:var(--app-surface)}
.app-nav-separator{height:1px;background:var(--app-line);margin:10px 8px}.app-staff-link{color:var(--app-red)}
.app-profile{margin-top:auto;border-top:1px solid var(--app-line);padding:16px 4px 0;display:grid;grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;gap:10px}.app-profile>span:nth-child(2){min-width:0}.app-profile b,.app-profile small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-profile b{font-size:13px}.app-profile small{font-size:12px;color:var(--app-muted);margin-top:2px}.app-avatar{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--app-surface-3);font-weight:800}
.app-icon-button{width:42px;height:42px;border:1px solid var(--app-line);border-radius:12px;background:var(--app-surface);color:var(--app-text);display:grid;place-items:center;cursor:pointer;position:relative;transition:background 150ms ease,transform 130ms var(--app-ease),border-color 150ms ease}.app-icon-button:hover{background:var(--app-surface-2)}.app-icon-button:active{transform:scale(.96)}.app-icon-button.active{color:var(--app-red);border-color:color-mix(in srgb,var(--app-red) 35%,var(--app-line));background:color-mix(in srgb,var(--app-red) 7%,var(--app-surface))}
.app-stage{min-width:0}.app-topbar{height:84px;padding:0 clamp(24px,4vw,58px);border-bottom:1px solid var(--app-line);background:color-mix(in srgb,var(--app-bg) 90%,transparent);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:15}.app-topbar-title{display:flex;align-items:center;gap:12px;min-width:0}.app-topbar-title h1{margin:0;font-size:18px;letter-spacing:-.02em}.app-topbar-title p{margin:3px 0 0;color:var(--app-muted);font-size:12px}.app-topbar-actions{display:flex;gap:8px}.app-notification-button i{position:absolute;right:-2px;top:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--app-red);color:#fff;font-style:normal;font-size:12px;display:grid;place-items:center;border:2px solid var(--app-bg)}
.app-main{width:min(1160px,100%);margin:0 auto;padding:48px clamp(22px,4vw,48px) 96px}.app-main-wide{width:min(1320px,100%)}
.app-bottom-nav{display:none}

.app-primary,.app-secondary,.text-action{border:0;cursor:pointer;transition:transform 140ms var(--app-ease),background 160ms ease,color 160ms ease,border-color 160ms ease;display:inline-flex;align-items:center;justify-content:center;gap:9px;text-decoration:none}.app-primary:active,.app-secondary:active,.text-action:active{transform:scale(.97)}
.app-primary{min-height:46px;padding:0 18px;border-radius:12px;background:var(--app-red);color:#fff;font-weight:750;box-shadow:0 8px 24px rgba(239,59,67,.18)}.app-primary:hover{background:var(--app-red-dark)}.app-primary:disabled{opacity:.42;cursor:not-allowed;box-shadow:none;transform:none}.app-primary-small{min-height:40px;padding:0 14px;font-size:13px}.app-primary .ui-icon{width:18px;height:18px}
.app-secondary{min-height:42px;padding:0 14px;border:1px solid var(--app-line);border-radius:12px;background:var(--app-surface);color:var(--app-text);font-weight:650}.app-secondary:hover{background:var(--app-surface-2)}.app-secondary:disabled{opacity:.42;cursor:not-allowed;transform:none}
.text-action{background:transparent;color:var(--app-muted);font-weight:650;padding:5px 0;border-bottom:1px solid transparent}.text-action:hover{color:var(--app-text);border-color:currentColor}
.inline-actions{display:flex;gap:10px;flex-wrap:wrap}
.soft-label{font-size:12px;color:var(--app-muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.page-intro{max-width:760px;margin-bottom:34px}.page-intro h2,.today-head h2{font-size:clamp(34px,4vw,54px);line-height:1;letter-spacing:-.04em;margin:0}.page-intro p{margin:15px 0 0;color:var(--app-muted);font-size:16px;line-height:1.65;max-width:66ch}.page-intro-row{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.app-section{margin-top:54px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:18px}.section-heading h3{margin:0;font-size:22px;letter-spacing:-.025em}.section-heading>span{color:var(--app-muted);font-size:12px}.app-empty{padding:34px 0;color:var(--app-muted);font-size:14px}

.today-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:30px}.today-head p{margin:0 0 8px;color:var(--app-muted);font-size:15px}.today-quick{display:flex;gap:10px}.today-quick button{min-width:118px;height:58px;border:1px solid var(--app-line);border-radius:14px;background:var(--app-surface);color:var(--app-text);display:flex;align-items:center;gap:11px;padding:0 14px;cursor:pointer;transition:background 150ms ease,transform 130ms var(--app-ease)}.today-quick button:hover{background:var(--app-surface-2)}.today-quick button:active{transform:scale(.98)}.today-quick b,.today-quick small{display:block;text-align:left}.today-quick b{font-size:17px}.today-quick small{font-size:12px;color:var(--app-muted)}.today-quick .ui-icon{color:var(--app-red)}
.today-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.65fr);gap:16px;align-items:stretch}.today-focus{min-height:320px;border-radius:16px;background:var(--app-surface);box-shadow:var(--app-shadow);overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 42%;position:relative}.today-focus-copy{padding:34px;display:flex;flex-direction:column;align-items:flex-start;position:relative;z-index:2}.today-focus-copy h2{font-size:clamp(30px,3.2vw,48px);line-height:1.02;letter-spacing:-.04em;margin:13px 0 8px;max-width:16ch}.today-focus-copy>p{margin:0;color:var(--app-muted)}.today-focus-progress{width:min(390px,100%);margin:28px 0 22px}.today-focus-progress>div{height:6px;background:var(--app-surface-3);border-radius:999px;overflow:hidden}.today-focus-progress>div span{display:block;height:100%;background:var(--accent,var(--app-red));border-radius:inherit}.today-focus-progress small{display:block;margin-top:8px;color:var(--app-muted);font-size:12px}.today-focus-media{position:relative;min-width:0}.today-focus-media img{width:100%;height:100%;object-fit:cover;display:block}.today-focus-media span{position:absolute;inset:0;background:linear-gradient(90deg,var(--app-surface),transparent 36%),linear-gradient(0deg,rgba(0,0,0,.38),transparent 55%)}.today-focus-empty{grid-template-columns:1fr;min-height:280px;background:linear-gradient(145deg,var(--app-surface),color-mix(in srgb,var(--app-red) 5%,var(--app-surface)))}
.today-exam{min-height:320px;border:0;border-radius:16px;padding:28px;background:#17191d;color:#fff;text-align:left;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;position:relative;overflow:hidden;box-shadow:var(--app-shadow);transition:transform 180ms var(--app-ease)}.today-exam:hover{transform:translateY(-2px)}.today-exam:active{transform:scale(.985)}.today-exam::after{content:"";position:absolute;width:180px;height:180px;border-radius:50%;right:-90px;top:-90px;background:rgba(239,59,67,.14);filter:blur(22px)}.today-exam span,.today-exam>div{position:relative;z-index:1}.today-exam small,.today-exam em{display:block;color:#92969f;font-style:normal}.today-exam strong{font-size:70px;line-height:.95;letter-spacing:-.05em;display:block;margin:12px 0 5px;font-variant-numeric:tabular-nums}.today-exam>div b{font-size:15px;display:block;margin-bottom:5px}.today-exam>div p{margin:0;color:#92969f;font-size:12px}.today-exam>div .ui-icon{margin-top:16px}.today-exam.is-high::after{background:rgba(40,168,101,.22)}.today-exam.is-mid::after{background:rgba(239,146,59,.19)}
.today-subjects{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.today-subject{height:190px;border:0;border-radius:14px;overflow:hidden;position:relative;padding:0;color:#fff;text-align:left;cursor:pointer;background:#121316;transition:transform 180ms var(--app-ease),box-shadow 180ms ease}.today-subject:hover{transform:translateY(-3px);box-shadow:var(--app-shadow-lg)}.today-subject:active{transform:scale(.985)}.today-subject img{width:100%;height:100%;object-fit:cover;display:block}.today-subject-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.78))}.today-subject-copy{position:absolute;inset:auto 20px 18px;z-index:2}.today-subject-copy b,.today-subject-copy small{display:block}.today-subject-copy b{font-size:22px}.today-subject-copy small{font-size:12px;color:rgba(255,255,255,.7);margin-top:2px}.today-subject-copy i{display:block;height:4px;border-radius:999px;background:rgba(255,255,255,.18);margin-top:14px;overflow:hidden}.today-subject-copy i span{display:block;height:100%;background:var(--accent);border-radius:inherit}
.today-lower{display:grid;grid-template-columns:1fr .75fr;gap:38px}.compact-list,.activity-list{border-top:1px solid var(--app-line)}.compact-row{width:100%;min-height:70px;border:0;border-bottom:1px solid var(--app-line);background:transparent;color:var(--app-text);display:grid;grid-template-columns:8px minmax(0,1fr) auto 22px;gap:12px;align-items:center;text-align:left;padding:12px 0;cursor:pointer;transition:background 140ms ease}.compact-row:hover{background:color-mix(in srgb,var(--app-surface) 65%,transparent)}.compact-row:disabled{opacity:.55;cursor:not-allowed}.compact-dot{width:7px;height:7px;border-radius:50%;background:var(--dot)}.compact-main b,.compact-main small{display:block}.compact-main b{font-size:14px}.compact-main small{color:var(--app-muted);font-size:12px;margin-top:4px}.compact-value{font-variant-numeric:tabular-nums;color:var(--app-muted);font-size:12px}.compact-row .ui-icon{width:16px;height:16px;color:var(--app-faint)}.activity-row{min-height:70px;border-bottom:1px solid var(--app-line);display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center}.activity-check{width:28px;height:28px;border-radius:9px;background:color-mix(in srgb,var(--app-green) 11%,var(--app-surface));color:var(--app-green);display:grid;place-items:center}.activity-check .ui-icon{width:15px;height:15px}.activity-row b,.activity-row small{display:block}.activity-row b{font-size:13px}.activity-row small{font-size:12px;color:var(--app-muted);margin-top:3px}.activity-row>strong{font-variant-numeric:tabular-nums}

.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.course-card{min-height:430px;border:0;border-radius:16px;overflow:hidden;position:relative;background:#16181c;color:#fff;text-align:left;padding:0;cursor:pointer;box-shadow:var(--app-shadow);transition:transform 200ms var(--app-ease),box-shadow 200ms ease}.course-card:hover{transform:translateY(-4px);box-shadow:var(--app-shadow-lg)}.course-card:active{transform:scale(.99)}.course-card img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.course-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.03),rgba(0,0,0,.2) 42%,rgba(0,0,0,.88))}.course-copy{position:absolute;left:24px;right:24px;bottom:24px;z-index:2}.course-copy>small,.course-copy>strong{display:block}.course-copy>small{font-size:12px;color:rgba(255,255,255,.66);margin-bottom:6px}.course-copy>strong{font-size:32px;letter-spacing:-.035em}.course-progress{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;margin-top:18px}.course-progress i{height:5px;background:rgba(255,255,255,.16);border-radius:999px;overflow:hidden}.course-progress i b{display:block;height:100%;background:var(--accent);border-radius:inherit}.course-progress em{font-style:normal;font-size:12px;color:rgba(255,255,255,.8);font-variant-numeric:tabular-nums}.course-arrow{position:absolute;right:22px;top:22px;z-index:2;width:25px;height:25px}
.subject-hero{height:330px;border-radius:16px;overflow:hidden;position:relative;color:#fff;background:#15171b;box-shadow:var(--app-shadow)}.subject-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.subject-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,8,10,.88),rgba(7,8,10,.18) 70%),linear-gradient(0deg,rgba(7,8,10,.42),transparent)}.subject-hero>div{position:absolute;left:38px;bottom:34px;z-index:2}.subject-hero p{margin:0 0 5px;color:rgba(255,255,255,.64);font-size:12px}.subject-hero h2{margin:0;font-size:clamp(42px,6vw,72px);letter-spacing:-.04em;line-height:.95}.subject-total{display:flex;align-items:center;gap:14px;margin-top:22px}.subject-total i{width:240px;height:5px;background:rgba(255,255,255,.18);border-radius:999px;overflow:hidden}.subject-total i span{display:block;height:100%;background:var(--accent);border-radius:inherit}.subject-total b{font-size:12px;font-weight:600;color:rgba(255,255,255,.72)}
.path-list{margin-top:32px;border-top:1px solid var(--app-line)}.path-row{display:grid;grid-template-columns:44px minmax(0,1fr) 80px;gap:20px;padding:24px 0;border-bottom:1px solid var(--app-line);align-items:start}.path-index{width:36px;height:36px;border-radius:11px;border:1px solid var(--app-line);display:grid;place-items:center;color:var(--app-muted);font-size:13px;font-weight:750}.path-row.done .path-index{background:color-mix(in srgb,var(--app-green) 10%,var(--app-surface));border-color:color-mix(in srgb,var(--app-green) 24%,var(--app-line));color:var(--app-green)}.path-row.current .path-index{background:color-mix(in srgb,var(--subject) 10%,var(--app-surface));border-color:color-mix(in srgb,var(--subject) 24%,var(--app-line));color:var(--subject)}.path-index .ui-icon{width:16px;height:16px}.path-title{display:flex;justify-content:space-between;gap:16px}.path-title h3{margin:0;font-size:19px;letter-spacing:-.02em}.path-title span{font-size:12px;color:var(--app-muted)}.path-main>p{margin:7px 0 0;color:var(--app-muted);font-size:13px;line-height:1.5}.path-actions{display:flex;gap:8px;margin-top:14px}.path-progress{text-align:right}.path-progress strong,.path-progress small{display:block}.path-progress strong{font-size:20px;font-variant-numeric:tabular-nums}.path-progress small{font-size:12px;color:var(--app-muted);margin-top:2px}

.assignment-list{border-top:1px solid var(--app-line)}.assignment-row{display:grid;grid-template-columns:84px minmax(0,1fr) 190px;gap:20px;align-items:center;padding:18px 0;border-bottom:1px solid var(--app-line)}.assignment-row.closed{opacity:.62}.assignment-cover{width:84px;height:70px;border-radius:12px;overflow:hidden}.assignment-cover img{width:100%;height:100%;object-fit:cover;display:block}.assignment-main>div:first-child small{font-size:12px;color:var(--app-muted)}.assignment-main h3{margin:3px 0 0;font-size:18px}.assignment-meta{display:flex;gap:16px;margin-top:11px;color:var(--app-muted);font-size:12px}.assignment-meta span{display:inline-flex;align-items:center;gap:6px}.assignment-meta .ui-icon{width:14px;height:14px}.assignment-status{text-align:right}.assignment-status b{display:block;font-size:12px;margin-bottom:9px;color:var(--app-muted)}

.focus-mode,.exam-run{min-height:100vh;background:var(--app-bg);color:var(--app-text);font-family:Outfit,ui-sans-serif,system-ui,sans-serif}.focus-header,.exam-run-header{height:76px;border-bottom:1px solid var(--app-line);background:var(--app-surface);display:flex;align-items:center;gap:14px;padding:0 clamp(16px,3vw,36px);position:sticky;top:0;z-index:20}.focus-header>div:nth-child(2),.exam-run-header>div:nth-child(2){min-width:0;flex:1}.focus-header small,.focus-header b,.exam-run-header small,.exam-run-header b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.focus-header small,.exam-run-header small{font-size:12px;color:var(--app-muted)}.focus-header b,.exam-run-header b{font-size:14px;margin-top:2px}.focus-header-actions{display:flex;gap:8px}.focus-layout{width:min(1250px,100%);margin:0 auto;padding:42px clamp(18px,4vw,48px) 80px;display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:42px}.focus-question{min-width:0}.focus-question-top{display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--app-muted);font-size:12px;margin-bottom:34px}.focus-mini-progress{width:180px;height:5px;border-radius:999px;background:var(--app-surface-3);overflow:hidden}.focus-mini-progress i{display:block;height:100%;background:var(--subject,var(--app-red));border-radius:inherit}.focus-prompt{font-size:clamp(20px,2.4vw,30px);line-height:1.45;letter-spacing:-.018em;max-width:75ch;white-space:pre-wrap}.question-image{display:block;max-width:100%;max-height:460px;object-fit:contain;border-radius:14px;margin:24px 0}.formula{font-size:clamp(20px,2.3vw,30px);overflow-x:auto;padding:18px 0}.focus-answer{display:flex;gap:10px;margin-top:36px;max-width:650px}.focus-answer input{flex:1;min-width:0;height:50px;border:1px solid var(--app-line);border-radius:12px;background:var(--app-surface);color:var(--app-text);padding:0 15px;outline:none}.focus-answer input:focus{border-color:var(--subject,var(--app-red));box-shadow:0 0 0 3px color-mix(in srgb,var(--subject,var(--app-red)) 12%,transparent)}.answer-feedback{margin-top:24px;max-width:720px;display:grid;grid-template-columns:34px 1fr;gap:12px;padding:16px 0;border-top:1px solid var(--app-line);border-bottom:1px solid var(--app-line)}.answer-feedback>div{width:30px;height:30px;border-radius:10px;display:grid;place-items:center}.answer-feedback .ui-icon{width:16px}.answer-feedback.correct>div{background:color-mix(in srgb,var(--app-green) 12%,var(--app-surface));color:var(--app-green)}.answer-feedback.wrong>div{background:color-mix(in srgb,var(--app-red) 10%,var(--app-surface));color:var(--app-red)}.answer-feedback b{font-size:15px}.answer-feedback p{margin:5px 0 0;color:var(--app-muted);font-size:13px;line-height:1.55}.focus-nav{display:flex;gap:9px;align-items:center;margin-top:30px}.focus-finish{margin-left:auto}.focus-map{position:sticky;top:118px;align-self:start}.focus-map>div:first-child{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}.focus-map h3{margin:0;font-size:16px}.focus-map>div:first-child span{font-size:12px;color:var(--app-muted)}.question-map{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-bottom:16px}.question-dot{aspect-ratio:1;border:1px solid var(--app-line);border-radius:10px;background:var(--app-surface);color:var(--app-muted);font-size:12px;cursor:pointer;transition:transform 130ms var(--app-ease),border-color 140ms ease}.question-dot:active{transform:scale(.95)}.question-dot.current{border-color:var(--subject,var(--app-red));color:var(--app-text)}.question-dot.correct{background:color-mix(in srgb,var(--app-green) 10%,var(--app-surface));color:var(--app-green)}.question-dot.wrong{background:color-mix(in srgb,var(--app-red) 9%,var(--app-surface));color:var(--app-red)}.focus-map>.app-primary{width:100%}
.result-hero{min-height:310px;border-radius:16px;padding:42px;display:grid;grid-template-columns:180px 1fr;gap:34px;align-items:center;background:var(--app-surface);box-shadow:var(--app-shadow)}.result-score{font-variant-numeric:tabular-nums;display:flex;align-items:flex-start;color:var(--app-red)}.result-score span{font-size:96px;line-height:.85;letter-spacing:-.06em;font-weight:800}.result-score small{font-size:22px;margin:5px 0 0 3px}.result-hero.is-high .result-score{color:var(--app-green)}.result-hero.is-mid .result-score{color:#d9842f}.result-hero p{margin:0;color:var(--app-muted);font-size:12px}.result-hero h2{font-size:34px;letter-spacing:-.03em;margin:6px 0 22px}.result-stats{display:flex;gap:24px;color:var(--app-muted);font-size:12px}.result-stats b{color:var(--app-text);font-size:18px;margin-right:4px}.result-actions{display:flex;gap:10px;align-items:center;margin-top:22px}

.mistake-list,.saved-list,.notification-list{border-top:1px solid var(--app-line)}.mistake-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:16px;padding:22px 0;border-bottom:1px solid var(--app-line);align-items:start}.mistake-row.resolved{opacity:.65}.mistake-status{width:34px;height:34px;border-radius:11px;background:color-mix(in srgb,var(--app-red) 9%,var(--app-surface));color:var(--app-red);display:grid;place-items:center}.mistake-row.resolved .mistake-status{background:color-mix(in srgb,var(--app-green) 10%,var(--app-surface));color:var(--app-green)}.mistake-status .ui-icon{width:17px}.mistake-main small{color:var(--app-muted);font-size:12px}.mistake-main h3{margin:5px 0 4px;font-size:16px;line-height:1.45}.mistake-main p{margin:0;color:var(--app-muted);font-size:12px}.mistake-actions{display:flex;gap:8px}.mistake-practice{grid-column:2/-1;padding-top:18px}.mistake-practice .focus-prompt{font-size:17px}.mistake-practice form{display:flex;gap:9px;max-width:600px;margin-top:18px}.mistake-practice form .input{flex:1}.saved-row{min-height:92px;display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:18px;align-items:center;border-bottom:1px solid var(--app-line)}.saved-subject{font-size:12px;color:var(--accent);font-weight:750}.saved-row small{font-size:12px;color:var(--app-muted)}.saved-row h3{font-size:15px;margin:5px 0 0}.saved-row>div:last-child{display:flex;gap:8px}.notification-row{width:100%;min-height:92px;border:0;border-bottom:1px solid var(--app-line);background:transparent;color:var(--app-text);display:grid;grid-template-columns:36px minmax(0,1fr) 20px;gap:14px;align-items:center;text-align:left;padding:14px 0;cursor:pointer}.notification-row.unread{background:linear-gradient(90deg,color-mix(in srgb,var(--app-red) 5%,transparent),transparent 70%)}.notification-row>span:first-child{width:34px;height:34px;border-radius:11px;background:var(--app-surface-2);display:grid;place-items:center;color:var(--app-muted)}.notification-row.unread>span:first-child{color:var(--app-red)}.notification-row b{font-size:14px}.notification-row p{margin:3px 0;color:var(--app-muted);font-size:12px}.notification-row small{font-size:12px;color:var(--app-faint)}.notification-row>.ui-icon{width:16px;color:var(--app-faint)}

.exam-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.exam-card{min-height:390px;padding:26px;border:1px solid var(--app-line);border-radius:16px;background:var(--app-surface);display:flex;flex-direction:column;box-shadow:var(--app-shadow)}.exam-card-head{display:flex;justify-content:space-between;align-items:center}.exam-card-head span{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--accent)}.exam-card-head small{color:var(--app-muted)}.exam-card h3{font-size:26px;line-height:1.08;letter-spacing:-.035em;margin:28px 0 10px}.exam-card>p{margin:0;color:var(--app-muted);font-size:13px;line-height:1.55}.exam-meta{display:flex;gap:13px;flex-wrap:wrap;margin-top:19px;color:var(--app-muted);font-size:12px}.exam-meta span{display:flex;align-items:center;gap:5px}.exam-meta .ui-icon{width:13px;height:13px}.exam-last{margin-top:auto;padding:20px 0 13px;display:flex;justify-content:space-between;align-items:end}.exam-last span{color:var(--app-muted);font-size:12px}.exam-last b{font-size:30px;font-variant-numeric:tabular-nums}.exam-card>.app-primary{width:100%;margin-top:auto}.exam-card>.text-action{align-self:center;margin-top:10px}
.exam-run-header{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto}.exam-timer{min-width:104px;height:42px;border:1px solid var(--app-line);border-radius:12px;display:flex;align-items:center;justify-content:center;gap:7px;font-variant-numeric:tabular-nums}.exam-timer .ui-icon{width:16px}.exam-run-layout{width:min(1280px,100%);margin:0 auto;padding:42px clamp(18px,4vw,48px) 80px;display:grid;grid-template-columns:220px minmax(0,1fr);gap:48px}.exam-map{position:sticky;top:118px;align-self:start}.exam-map>div:first-child{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.exam-map small{font-size:12px;color:var(--app-muted)}.exam-dots{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.exam-dot{aspect-ratio:1;border:1px solid var(--app-line);border-radius:10px;background:var(--app-surface);color:var(--app-muted);cursor:pointer;font-size:12px;transition:transform 130ms var(--app-ease),border-color 140ms ease}.exam-dot:active{transform:scale(.95)}.exam-dot.current{border-color:var(--app-red);color:var(--app-text)}.exam-dot.answered{background:var(--app-text);color:var(--app-surface);border-color:var(--app-text)}.exam-question{max-width:820px}.exam-question-meta{display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--app-muted);margin-bottom:30px}.exam-question-meta span{font-size:13px;font-weight:750;color:var(--app-text)}.exam-question-meta small{font-size:12px}.exam-question-nav{display:flex;gap:9px;margin-top:24px}
.exam-result-hero{min-height:300px;border-radius:16px;background:#17191d;color:#fff;padding:42px;display:flex;justify-content:space-between;align-items:end;gap:30px;overflow:hidden;position:relative}.exam-result-hero::after{content:"";position:absolute;width:330px;height:330px;border-radius:50%;right:-120px;top:-150px;background:rgba(239,59,67,.22);filter:blur(48px)}.exam-result-hero.is-high::after{background:rgba(40,168,101,.24)}.exam-result-hero>div,.exam-result-hero>aside{position:relative;z-index:1}.exam-result-hero p{margin:0;color:#969aa3;font-size:12px}.exam-result-hero h2{font-size:clamp(54px,7vw,92px);line-height:.9;letter-spacing:-.055em;margin:10px 0 14px}.exam-result-hero>div>span{color:#a4a8b0;font-size:13px}.exam-result-hero aside{text-align:right}.exam-result-hero aside small,.exam-result-hero aside b{display:block}.exam-result-hero aside small{color:#969aa3;font-size:12px}.exam-result-hero aside b{font-size:23px;margin-top:5px}.exam-result-actions{display:flex;gap:10px;margin:20px 0 36px}.exam-result-list{border-top:1px solid var(--app-line)}.exam-result-row{min-height:68px;border-bottom:1px solid var(--app-line);display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center}.exam-result-row>span{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--app-surface-2);font-size:12px;font-weight:750}.exam-result-row.correct>span{color:var(--app-green)}.exam-result-row.wrong>span{color:var(--app-red)}.exam-result-row b,.exam-result-row small{display:block}.exam-result-row b{font-size:13px}.exam-result-row small{font-size:12px;color:var(--app-muted);margin-top:3px}.exam-result-row strong{font-variant-numeric:tabular-nums}

.progress-tabs{display:inline-flex;background:var(--app-surface-3);border-radius:12px;padding:4px;margin-bottom:38px}.progress-tabs button{height:38px;padding:0 16px;border:0;border-radius:9px;background:transparent;color:var(--app-muted);font-weight:700;cursor:pointer;transition:background 150ms ease,color 150ms ease,transform 130ms var(--app-ease)}.progress-tabs button:active{transform:scale(.97)}.progress-tabs button.active{background:var(--app-surface);color:var(--app-text);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.learning-progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.learning-progress-card{border:1px solid var(--app-line);border-radius:16px;overflow:hidden;background:var(--app-surface)}.learning-progress-card>div:first-child{height:160px;position:relative;overflow:hidden}.learning-progress-card>div:first-child img{width:100%;height:100%;object-fit:cover}.learning-progress-card>div:first-child span{position:absolute;inset:0;background:linear-gradient(0deg,var(--app-surface),transparent 58%)}.learning-progress-card>section{padding:0 22px 22px}.learning-progress-card h3{font-size:24px;margin:0 0 20px}.metric-line{display:flex;justify-content:space-between;font-size:12px;color:var(--app-muted)}.metric-line b{color:var(--app-text)}.learning-progress-card>section>i{display:block;height:6px;border-radius:999px;background:var(--app-surface-3);overflow:hidden;margin-top:8px}.learning-progress-card>section>i span{display:block;height:100%;background:var(--accent);border-radius:inherit}.learning-mini{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:22px}.learning-mini b,.learning-mini small{display:block}.learning-mini b{font-size:18px}.learning-mini small{font-size:12px;color:var(--app-muted);margin-top:2px}
.exam-progress-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.exam-progress-card{min-height:360px;padding:24px;border:1px solid var(--app-line);border-radius:16px;background:var(--app-surface)}.exam-progress-title{display:flex;align-items:center;gap:9px}.exam-progress-title>span{width:8px;height:8px;border-radius:50%}.exam-progress-title h3{margin:0;font-size:18px}.exam-progress-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:28px 0 24px}.exam-progress-numbers small,.exam-progress-numbers b{display:block}.exam-progress-numbers small{font-size:12px;color:var(--app-muted)}.exam-progress-numbers b{font-size:32px;line-height:1;margin-top:5px;font-variant-numeric:tabular-nums}.exam-progress-card form{display:flex;gap:8px}.exam-progress-card form input{width:78px;height:42px;border:1px solid var(--app-line);border-radius:11px;background:var(--app-surface-2);color:var(--app-text);padding:0 11px}.score-chart{width:100%;height:120px;margin-top:20px;overflow:visible}.progress-hint{color:var(--app-muted);font-size:12px;margin-top:28px}.weak-tasks{margin-top:52px}.weak-task-row{min-height:54px;border-bottom:1px solid var(--app-line);display:grid;grid-template-columns:44px 150px minmax(120px,1fr) 54px;gap:12px;align-items:center}.weak-task-row>span{font-weight:750}.weak-task-row>b{font-size:12px}.weak-task-row>div{height:5px;background:var(--app-surface-3);border-radius:999px;overflow:hidden}.weak-task-row>div i{display:block;height:100%;background:var(--app-red);border-radius:inherit}.weak-task-row>strong{text-align:right;font-variant-numeric:tabular-nums;font-size:12px}

/* Staff operate surface */
body.staff-active .shell{width:min(1380px,100%);padding:0 28px 80px}body.staff-active .topbar{height:76px;margin-bottom:20px;border-bottom:1px solid var(--app-line)}body.staff-active .staff-tabs{gap:5px;border-bottom:1px solid var(--app-line);padding-bottom:14px;margin-bottom:30px}body.staff-active .staff-tab{border:0;background:transparent;border-radius:10px;color:var(--app-muted);padding:10px 13px}body.staff-active .staff-tab.active{background:var(--app-text);color:var(--app-surface)}body.staff-active .panel{border:1px solid var(--app-line);border-radius:14px;box-shadow:none;background:var(--app-surface)}
.staff-overview-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.staff-overview-main{min-height:300px;padding:30px;border-radius:16px;background:#17191d;color:#fff;display:flex;flex-direction:column;justify-content:space-between}.staff-overview-main h1{font-size:42px;line-height:1;letter-spacing:-.04em;margin:0;max-width:14ch}.staff-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:40px}.staff-kpis span small,.staff-kpis span b{display:block}.staff-kpis span small{font-size:12px;color:#92969f}.staff-kpis span b{font-size:28px;margin-top:5px;font-variant-numeric:tabular-nums}.staff-overview-side{border:1px solid var(--app-line);border-radius:16px;background:var(--app-surface);padding:24px}.staff-overview-side h2{font-size:18px;margin:0 0 14px}.staff-activity-row{padding:12px 0;border-bottom:1px solid var(--app-line)}.staff-activity-row:last-child{border-bottom:0}.staff-activity-row b,.staff-activity-row small{display:block}.staff-activity-row b{font-size:13px}.staff-activity-row small{font-size:12px;color:var(--app-muted);margin-top:3px}.staff-exam-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.staff-exam-card{border:1px solid var(--app-line);border-radius:14px;background:var(--app-surface);padding:20px}.staff-exam-card h3{font-size:19px;margin:10px 0 7px}.staff-exam-card p{color:var(--app-muted);font-size:12px;margin:0}.staff-exam-card .toolbar{margin:18px 0 0}.staff-exam-editor{margin-top:20px}.staff-exam-question{border-top:1px solid var(--app-line);padding:18px 0}.staff-exam-question:first-child{border-top:0}.staff-exam-question-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}.staff-exam-question .grid-3{display:grid;grid-template-columns:100px 1fr 120px;gap:10px}.staff-stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.staff-stat{padding:18px;border:1px solid var(--app-line);border-radius:14px;background:var(--app-surface)}.staff-stat b,.staff-stat small{display:block}.staff-stat b{font-size:28px;font-variant-numeric:tabular-nums}.staff-stat small{font-size:12px;color:var(--app-muted);margin-top:3px}

@media(max-width:1120px){
  .app-frame{grid-template-columns:210px minmax(0,1fr)}.app-sidebar{padding-left:12px;padding-right:12px}.app-main{padding-left:28px;padding-right:28px}.today-grid{grid-template-columns:1fr}.today-exam{min-height:220px;display:grid;grid-template-columns:1fr 1fr}.today-exam strong{font-size:58px}.today-lower{grid-template-columns:1fr}.course-grid,.exam-grid,.learning-progress-grid,.exam-progress-grid{grid-template-columns:repeat(2,1fr)}.staff-overview-grid{grid-template-columns:1fr}.staff-exam-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:820px){
  .app-frame{display:block;padding-bottom:72px}.app-sidebar{display:none}.app-topbar{height:68px;padding:0 16px}.app-main,.app-main-wide{padding:30px 16px 76px}.app-bottom-nav{position:fixed;left:0;right:0;bottom:0;height:70px;background:color-mix(in srgb,var(--app-surface) 94%,transparent);backdrop-filter:blur(16px);border-top:1px solid var(--app-line);display:grid;grid-template-columns:repeat(5,1fr);z-index:30;padding-bottom:env(safe-area-inset-bottom)}.app-bottom-nav .app-nav-item{height:66px;min-height:0;border-radius:0;padding:7px 4px 6px;display:flex;flex-direction:column;gap:3px;justify-content:center;font-size:12px}.app-bottom-nav .app-nav-item.active{background:transparent;color:var(--app-red)}.app-bottom-nav .ui-icon{width:20px;height:20px}
  .today-head{align-items:flex-start;flex-direction:column}.today-quick{width:100%}.today-quick button{flex:1}.today-focus{min-height:440px;grid-template-columns:1fr;grid-template-rows:auto 190px}.today-focus-copy{padding:26px}.today-focus-media{grid-row:2}.today-focus-media span{background:linear-gradient(180deg,var(--app-surface),transparent 28%),linear-gradient(0deg,rgba(0,0,0,.28),transparent)}.today-focus-copy h2{font-size:36px}.today-exam{min-height:200px}.today-subjects{grid-template-columns:1fr}.today-subject{height:180px}.course-grid,.exam-grid,.learning-progress-grid,.exam-progress-grid{grid-template-columns:1fr}.course-card{min-height:360px}.subject-hero{height:300px}.subject-hero>div{left:24px;right:24px;bottom:25px}.path-row{grid-template-columns:38px minmax(0,1fr);gap:13px}.path-progress{display:none}.path-title{display:block}.path-title span{display:block;margin-top:4px}.assignment-row{grid-template-columns:70px minmax(0,1fr);gap:14px}.assignment-cover{width:70px;height:62px}.assignment-status{grid-column:2;text-align:left;display:flex;align-items:center;gap:10px}.assignment-status b{margin:0}.assignment-meta{flex-wrap:wrap;gap:8px 13px}
  .focus-layout{grid-template-columns:1fr;padding:28px 16px 90px}.focus-map{position:static;order:-1}.focus-map>div:first-child{display:none}.question-map{display:flex;overflow:auto;padding-bottom:3px}.question-dot{width:38px;height:38px;aspect-ratio:auto;flex:none}.focus-map>.app-primary{display:none}.focus-question-top{margin-bottom:24px}.focus-prompt{font-size:20px}.focus-answer{flex-direction:column}.focus-answer .app-primary{width:100%}.focus-nav{flex-wrap:wrap}.focus-finish{width:100%;margin:10px 0 0}.result-hero{grid-template-columns:1fr;padding:28px}.result-score span{font-size:82px}.result-actions{flex-wrap:wrap}.mistake-row{grid-template-columns:34px minmax(0,1fr)}.mistake-actions{grid-column:2}.mistake-practice{grid-column:2}.saved-row{grid-template-columns:1fr;gap:6px;padding:16px 0}.saved-row>div:last-child{justify-content:flex-start}.exam-run-header{grid-template-columns:42px minmax(0,1fr) auto}.exam-run-header>.app-secondary{display:none}.exam-run-layout{grid-template-columns:1fr;padding:20px 16px 80px}.exam-map{position:static}.exam-dots{display:flex;overflow:auto}.exam-dot{width:40px;height:40px;aspect-ratio:auto;flex:none}.exam-question-meta{margin-top:16px}.exam-result-hero{min-height:330px;padding:28px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end}.exam-result-hero aside{text-align:left}.exam-result-actions{flex-wrap:wrap}.weak-task-row{grid-template-columns:42px 100px minmax(80px,1fr) 42px}.page-intro-row{display:block}.page-intro-row>.app-secondary{margin-top:16px}
  .staff-kpis{grid-template-columns:repeat(2,1fr)}.staff-exam-grid{grid-template-columns:1fr}.staff-stat-strip{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:480px){
  .app-topbar-title h1{font-size:15px}.app-topbar-actions .app-icon-button:last-child{display:none}.app-main{padding-top:24px}.today-head h2,.page-intro h2{font-size:36px}.today-quick button{min-width:0;padding:0 10px}.today-grid{gap:12px}.today-focus{min-height:420px}.today-focus-copy{padding:22px}.today-focus-copy h2{font-size:32px}.today-exam{grid-template-columns:1fr;padding:22px}.today-exam>div{margin-top:22px}.today-exam strong{font-size:50px}.subject-total{display:block}.subject-total i{width:100%;margin-bottom:8px}.path-actions{flex-wrap:wrap}.path-actions .app-secondary,.path-actions .app-primary{flex:1}.result-stats{flex-wrap:wrap;gap:12px}.result-actions>*{width:100%}.exam-progress-numbers b{font-size:26px}.exam-progress-card form{flex-wrap:wrap}.exam-progress-card form input{flex:1}.weak-task-row{grid-template-columns:38px 72px minmax(60px,1fr) 38px;gap:7px}.focus-header{padding:0 10px}.focus-header-actions .app-icon-button:last-child{display:none}.exam-run-header{padding:0 10px}.exam-timer{min-width:84px}.exam-result-actions>*{width:100%}.staff-kpis{grid-template-columns:1fr 1fr}.staff-overview-main{padding:22px}.staff-overview-main h1{font-size:34px}
}
@media(prefers-reduced-motion:reduce){
  .app-nav-item,.app-icon-button,.app-primary,.app-secondary,.text-action,.today-quick button,.today-exam,.today-subject,.course-card,.question-dot,.exam-dot{transition:none!important}.today-exam:hover,.today-subject:hover,.course-card:hover{transform:none!important}
}

/* v4 learning system: practice + teacher exam analytics */
.weak-heading{align-items:center}.weak-heading>div{display:grid;gap:5px}.weak-heading>div span{color:var(--app-muted);font-size:12px}
.practice-head{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:24px}.practice-head>div:first-child>span{font-size:12px;color:var(--app-red);font-weight:800}.practice-head h2{font-size:clamp(32px,4vw,52px);letter-spacing:-.045em;line-height:1;margin:8px 0 9px}.practice-head p{margin:0;color:var(--app-muted);font-size:13px}.practice-progress{min-width:210px;display:flex;align-items:center;gap:12px}.practice-progress i{height:6px;flex:1;background:var(--app-soft);border-radius:999px;overflow:hidden}.practice-progress i span{display:block;height:100%;background:var(--app-red);border-radius:inherit}.practice-progress b{font-size:12px;font-variant-numeric:tabular-nums}.practice-card{max-width:940px;margin:0 auto;padding:clamp(24px,4vw,52px);border:1px solid var(--app-line);border-radius:16px;background:var(--app-surface)}.practice-topic{font-size:12px;font-weight:800;color:var(--app-muted);margin-bottom:26px}.practice-answer{margin-top:34px}.practice-answer>label{font-size:12px;font-weight:800;display:block;margin-bottom:8px}.practice-answer>div{display:flex;gap:10px}.practice-answer .input{min-height:48px}.practice-feedback{margin-top:28px;padding:18px;border-radius:12px;border:1px solid var(--app-line)}.practice-feedback.ok{border-color:color-mix(in srgb,var(--app-green) 42%,var(--app-line));background:color-mix(in srgb,var(--app-green) 7%,var(--app-surface))}.practice-feedback.bad{border-color:color-mix(in srgb,var(--app-red) 38%,var(--app-line));background:color-mix(in srgb,var(--app-red) 6%,var(--app-surface))}.practice-feedback p{margin:7px 0 0;color:var(--app-muted);line-height:1.55}.practice-nav{display:flex;justify-content:space-between;gap:10px;margin-top:28px}

.staff-exam-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}.staff-exam-meta span{padding:11px 12px;background:var(--app-soft);border-radius:10px}.staff-exam-meta b,.staff-exam-meta small{display:block}.staff-exam-meta b{font-size:20px}.staff-exam-meta small{font-size:12px;color:var(--app-muted);margin-top:2px}.staff-exam-editor .access-box{margin:8px 0 20px}.staff-exam-questions{border-top:1px solid var(--app-line);margin-top:22px}.analytics-filters{margin-bottom:18px}.analytics-split{display:grid;grid-template-columns:1fr;gap:28px}.analytics-section-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:12px}.analytics-section-head h2{font-size:20px;margin:0}.analytics-section-head p{font-size:12px;color:var(--app-muted);margin:4px 0 0}.analytics-weak{margin-top:28px}.analytics-task{display:grid;grid-template-columns:56px 150px minmax(120px,1fr) 48px;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--app-line)}.analytics-task:first-of-type{border-top:0}.analytics-task>span{font-size:12px;color:var(--app-muted)}.analytics-task>div{height:6px;background:var(--app-soft);border-radius:999px;overflow:hidden}.analytics-task>div i{height:100%;display:block;background:var(--app-red);border-radius:inherit}.analytics-task>strong{font-size:12px;text-align:right}.table-person{border:0;background:transparent;color:inherit;text-align:left;padding:0;cursor:pointer}.table-person b,.table-person small{display:block}.table-person small{font-size:12px;color:var(--app-muted);margin-top:2px}.table-person:hover b{text-decoration:underline}.student-summary-modal{width:min(900px,100%)}.student-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-top:16px}.student-summary-grid h3{margin:0 0 12px}.student-summary-row{display:grid;grid-template-columns:minmax(0,1fr) 70px 70px;gap:10px;align-items:center;padding:13px 0;border-top:1px solid var(--app-line)}.student-summary-row:first-of-type{border-top:0}.student-summary-row>span{display:flex;align-items:center;gap:8px;min-width:0}.student-summary-row>span i{width:8px;height:8px;background:var(--student-accent);border-radius:50%;flex:0 0 auto}.student-summary-row>div strong,.student-summary-row>div small{display:block}.student-summary-row>div strong{font-size:13px}.student-summary-row>div small{font-size:12px;color:var(--app-muted);text-transform:uppercase;letter-spacing:.06em}.student-exam-row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:12px 0;border-top:1px solid var(--app-line)}.student-exam-row:first-of-type{border-top:0}.student-exam-row div b,.student-exam-row div small{display:block}.student-exam-row div small{font-size:12px;color:var(--app-muted);margin-top:3px}.student-exam-row>strong{font-size:24px;font-variant-numeric:tabular-nums}

@media(max-width:820px){.practice-head{display:grid}.practice-progress{width:100%;min-width:0}.practice-answer>div{display:grid}.staff-exam-question .grid-3{grid-template-columns:1fr}.analytics-task{grid-template-columns:45px 90px minmax(70px,1fr) 42px}.student-summary-grid{grid-template-columns:1fr}}
@media(max-width:480px){.practice-card{padding:20px}.practice-nav>*{flex:1}.analytics-task{grid-template-columns:38px minmax(70px,1fr) 42px}.analytics-task>span{display:none}.staff-exam-meta{grid-template-columns:1fr 1fr}}

/* v5 tutor mode: sequential homework + monitoring-first teacher workspace */
.sequential-stage{width:min(980px,100%);margin:0 auto;padding:48px clamp(18px,4vw,54px) 96px}
.sequential-card{max-width:860px;margin:0 auto}
.sequential-homework .focus-question-top{margin-bottom:32px}
.sequential-homework .focus-mini-progress{width:min(260px,42vw)}
.sequential-homework .focus-prompt{font-size:clamp(22px,2.3vw,30px);max-width:68ch}
.sequential-homework .focus-answer{max-width:700px}
.solution-block{margin-top:14px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--app-line) 85%,transparent)}
.solution-block>strong{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--app-muted)}
.solution-block p{margin-top:7px!important;color:var(--app-text)!important;white-space:pre-wrap}
.answer-feedback small{display:block;margin-top:10px;color:var(--app-muted);font-size:12px}
.focus-next-row{display:flex;justify-content:flex-end;margin-top:28px}
.focus-next{min-width:230px}
.focus-review-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin-top:28px}
.focus-review-nav>span{text-align:center;color:var(--app-muted);font-size:12px;font-variant-numeric:tabular-nums}
.focus-review-nav>button:last-child{justify-self:end}
.locked-answer{margin-top:32px;display:flex;align-items:baseline;gap:14px;border-top:1px solid var(--app-line);border-bottom:1px solid var(--app-line);padding:14px 0;max-width:700px}
.locked-answer span{font-size:12px;color:var(--app-muted);text-transform:uppercase;letter-spacing:.06em}.locked-answer b{font-size:16px}
.sequential-note{margin-top:26px;max-width:720px;color:var(--app-faint);font-size:12px;line-height:1.55}

.tutor-overview-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin:8px 0 28px}.tutor-overview-head>div:first-child{max-width:760px}.tutor-overview-head h1{font-size:46px;line-height:1;letter-spacing:-.035em;margin:0}.tutor-overview-head p{margin:14px 0 0;color:var(--app-muted);font-size:15px;line-height:1.6;max-width:68ch}.tutor-head-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.tutor-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.tutor-kpi-grid>button{min-height:126px;border:1px solid var(--app-line);border-radius:14px;background:var(--app-surface);color:var(--app-text);text-align:left;padding:19px;cursor:pointer;transition:background 160ms ease,transform 140ms var(--app-ease),border-color 160ms ease}.tutor-kpi-grid>button:hover{background:var(--app-surface-2)}.tutor-kpi-grid>button:active{transform:scale(.985)}.tutor-kpi-grid>button.needs-attention{border-color:color-mix(in srgb,var(--app-red) 22%,var(--app-line))}.tutor-kpi-grid small,.tutor-kpi-grid b,.tutor-kpi-grid span{display:block}.tutor-kpi-grid small{font-size:12px;color:var(--app-muted)}.tutor-kpi-grid b{font-size:34px;line-height:1;margin-top:12px;font-variant-numeric:tabular-nums;letter-spacing:-.03em}.tutor-kpi-grid span{margin-top:8px;color:var(--app-faint);font-size:12px}
.tutor-overview-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:18px}.tutor-monitor,.tutor-hard,.tutor-recent,.tutor-system-summary{border:1px solid var(--app-line);border-radius:16px;background:var(--app-surface);padding:22px}.tutor-filter-shortcuts{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.tutor-filter-shortcuts button,.analytics-filter-chip{min-height:36px;border:1px solid var(--app-line);border-radius:10px;background:var(--app-surface-2);color:var(--app-text);padding:0 11px;display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;cursor:pointer;transition:background 150ms ease,transform 130ms var(--app-ease),border-color 150ms ease}.tutor-filter-shortcuts button:hover,.analytics-filter-chip:hover{background:var(--app-surface-3)}.tutor-filter-shortcuts button:active,.analytics-filter-chip:active{transform:scale(.97)}.tutor-filter-shortcuts b,.analytics-filter-chip b{font-variant-numeric:tabular-nums;color:var(--app-muted)}
.tutor-attention-list{border-top:1px solid var(--app-line)}.tutor-attention-row{width:100%;display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:14px;align-items:center;text-align:left;border:0;border-bottom:1px solid var(--app-line);background:transparent;color:var(--app-text);padding:14px 0;cursor:pointer}.tutor-attention-row:hover .attention-person b{text-decoration:underline;text-underline-offset:3px}.attention-state{font-size:12px;font-weight:800;padding:6px 8px;border-radius:8px;width:max-content}.attention-state.overdue,.attention-state.low{background:color-mix(in srgb,var(--app-red) 9%,var(--app-surface));color:var(--app-red)}.attention-state.decline{background:color-mix(in srgb,#d28c31 11%,var(--app-surface));color:#b26d1e}.attention-person{min-width:0}.attention-person b,.attention-person small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attention-person b{font-size:13px}.attention-person small{font-size:12px;color:var(--app-muted);margin-top:3px}.tutor-attention-row>strong{font-size:13px;font-variant-numeric:tabular-nums}
.tutor-hard-row{display:grid;grid-template-columns:minmax(0,1fr) 84px 40px;gap:10px;align-items:center;padding:12px 0;border-top:1px solid var(--app-line)}.tutor-hard-row:first-of-type{border-top:0}.tutor-hard-row span b,.tutor-hard-row span small{display:block}.tutor-hard-row span b{font-size:12px}.tutor-hard-row span small{font-size:12px;color:var(--app-muted);margin-top:3px}.tutor-hard-row>div{height:5px;border-radius:999px;background:var(--app-surface-3);overflow:hidden}.tutor-hard-row>div i{display:block;height:100%;background:var(--app-red);border-radius:inherit}.tutor-hard-row>strong{text-align:right;font-size:12px;font-variant-numeric:tabular-nums}
.tutor-lower-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:18px;margin-top:18px}.tutor-recent-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:18px;border:0;border-top:1px solid var(--app-line);background:transparent;color:var(--app-text);padding:13px 0;text-align:left;cursor:pointer}.tutor-recent-row:first-of-type{border-top:0}.tutor-recent-row>span:first-child{min-width:0}.tutor-recent-row b,.tutor-recent-row small,.tutor-recent-row strong{display:block}.tutor-recent-row b{font-size:13px}.tutor-recent-row small{font-size:12px;color:var(--app-muted);margin-top:3px}.tutor-recent-row>span:last-child{text-align:right}.tutor-recent-row strong{font-size:18px;font-variant-numeric:tabular-nums}.tutor-system-summary{display:flex;flex-direction:column}.tutor-system-summary h2{margin:0;font-size:20px}.tutor-system-summary>div{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 24px}.tutor-system-summary span b,.tutor-system-summary span small{display:block}.tutor-system-summary span b{font-size:25px;font-variant-numeric:tabular-nums}.tutor-system-summary span small{font-size:12px;color:var(--app-muted);margin-top:4px}.tutor-system-summary>.ghost-btn{margin-top:auto;width:max-content}
.analytics-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 18px}.analytics-filter-chip.active{background:var(--app-text);color:var(--app-surface);border-color:var(--app-text)}.analytics-filter-chip.active b{color:currentColor;opacity:.72}.status-overdue{color:var(--app-red);font-weight:700}.status-waiting{color:var(--app-muted);font-weight:700}.score-low{color:var(--app-red)!important}.detail-run-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.detail-run-meta span{padding:12px;background:var(--app-surface-2);border-radius:10px}.detail-run-meta small,.detail-run-meta b{display:block}.detail-run-meta small{font-size:12px;color:var(--app-muted);text-transform:uppercase;letter-spacing:.05em}.detail-run-meta b{margin-top:4px;font-size:14px}.student-work-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--app-line)}.student-work-row:first-of-type{border-top:0}.student-work-row span b,.student-work-row span small{display:block}.student-work-row span b{font-size:12px}.student-work-row span small{font-size:12px;color:var(--app-muted);margin-top:3px}.student-work-row>span:last-child{text-align:right}.student-work-row strong{font-size:17px;font-variant-numeric:tabular-nums}.student-summary-wide{grid-column:1/-1}

@media(max-width:980px){.tutor-kpi-grid{grid-template-columns:repeat(2,1fr)}.tutor-overview-grid,.tutor-lower-grid{grid-template-columns:1fr}.tutor-overview-head{align-items:flex-start;flex-direction:column}.tutor-head-actions{justify-content:flex-start}}
@media(max-width:820px){.sequential-stage{padding:28px 16px 90px}.sequential-homework .focus-prompt{font-size:20px}.focus-next{width:100%}.tutor-overview-head h1{font-size:38px}.tutor-attention-row{grid-template-columns:90px minmax(0,1fr) auto}.student-summary-wide{grid-column:auto}}
@media(max-width:560px){.tutor-kpi-grid{grid-template-columns:1fr 1fr;gap:8px}.tutor-kpi-grid>button{min-height:108px;padding:15px}.tutor-kpi-grid b{font-size:28px}.tutor-monitor,.tutor-hard,.tutor-recent,.tutor-system-summary{padding:17px}.tutor-attention-row{grid-template-columns:1fr auto;gap:8px}.attention-state{grid-column:1/-1}.tutor-hard-row{grid-template-columns:minmax(0,1fr) 70px 36px}.tutor-system-summary>div{grid-template-columns:1fr}.focus-review-nav{grid-template-columns:1fr auto 1fr}.focus-review-nav>button{min-width:0;padding:0 10px}.detail-run-meta{grid-template-columns:1fr 1fr 1fr}}

/* v6: exam JSON import */
.exam-json-import{margin:16px 0 24px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end}
.exam-json-import h2{margin:0 0 6px;font-size:20px}
.exam-json-import p{margin:0;max-width:720px}
.exam-json-import>.toolbar{margin:0;justify-content:flex-end}
.exam-json-import input[type=file]{max-width:330px}
@media(max-width:760px){.exam-json-import{grid-template-columns:1fr;align-items:start}.exam-json-import>.toolbar{justify-content:flex-start}.exam-json-import input[type=file]{max-width:100%;width:100%}}

/* ===== Manual review / second part v8 ===== */
.manual-review-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;background:color-mix(in srgb,var(--subject) 12%,transparent);border:1px solid color-mix(in srgb,var(--subject) 30%,transparent);color:var(--subject);font-weight:800}
.focus-answer.manual{align-items:stretch}.exam-manual-answer{width:100%;min-height:220px;resize:vertical;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:16px;padding:16px;line-height:1.55;outline:none}.exam-manual-answer:focus{border-color:var(--subject);box-shadow:0 0 0 3px color-mix(in srgb,var(--subject) 14%,transparent)}
.manual-answer-note{margin:10px 0 0;color:var(--muted);font-size:13px}.exam-result-hero.pending-review{background:linear-gradient(145deg,color-mix(in srgb,var(--subject) 14%,var(--surface)),var(--surface));border-color:color-mix(in srgb,var(--subject) 32%,var(--line))}.exam-result-row.manual.pending{border-left-color:#d59b32}.exam-result-row.manual.reviewed{border-left-color:var(--subject)}.exam-solution{margin:9px 0 0;white-space:pre-wrap;color:var(--muted);line-height:1.55}
.review-queue-list{display:grid;gap:12px}.review-queue-card{position:relative;width:100%;display:grid;grid-template-columns:minmax(190px,.8fr) minmax(260px,1.2fr) 100px auto;gap:18px;align-items:center;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px 20px;color:var(--text);cursor:pointer;overflow:hidden}.review-queue-card:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 38%,var(--line))}.review-queue-accent{position:absolute;inset:0 auto 0 0;width:4px;background:var(--accent)}.review-queue-card>div{display:grid;gap:4px}.review-queue-card small{color:var(--muted)}.review-queue-progress{text-align:center}.review-queue-progress strong{font-size:20px}.review-open{font-weight:800;color:var(--subject)}
.review-modal{width:min(1080px,100%)}.manual-review-question{border:1px solid var(--line);border-radius:18px;padding:20px;margin:16px 0;background:var(--surface-2)}.manual-review-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.manual-review-head>div{display:grid;gap:4px}.manual-review-head span{font-weight:900}.manual-review-head small{color:var(--muted)}.manual-review-prompt{white-space:pre-wrap;line-height:1.6;font-size:15px}.manual-review-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.manual-review-columns section{border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--surface)}.manual-review-columns h4{margin:0 0 9px;font-size:13px;color:var(--muted)}.manual-answer-text,.manual-solution-text{white-space:pre-wrap;line-height:1.55}.manual-grade-row{display:grid;grid-template-columns:160px 1fr;gap:14px;margin-top:14px}.manual-grade-row label{display:grid;gap:7px;font-size:13px;font-weight:800}.manual-grade-row .textarea{min-height:90px}.review-submit-bar{position:sticky;bottom:-22px;display:flex;align-items:center;gap:16px;background:var(--surface);border-top:1px solid var(--line);padding:16px 0 2px;margin-top:18px}.review-submit-bar span{flex:1;color:var(--muted);font-size:13px}.manual-toggle{margin-left:auto}
@media(max-width:850px){.review-queue-card{grid-template-columns:1fr;gap:10px}.review-queue-progress{text-align:left}.manual-review-columns,.manual-grade-row{grid-template-columns:1fr}.review-submit-bar{flex-direction:column;align-items:stretch}.review-submit-bar .btn{width:100%}.exam-manual-answer{min-height:180px}}

/* ===== Tutor Suite V9 ===== */
.v9-tabs{overflow-x:auto;scrollbar-width:thin;white-space:nowrap}.v9-tabs .staff-tab{flex:0 0 auto}
.v9-kpis{grid-template-columns:repeat(5,1fr)}
.tutor-action-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:0 0 18px}.tutor-action-strip button{min-height:92px;text-align:left;border:1px solid var(--app-line);background:var(--app-surface);color:var(--app-text);border-radius:14px;padding:15px;cursor:pointer;transition:transform .15s ease,border-color .15s ease}.tutor-action-strip button:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--subject) 35%,var(--app-line))}.tutor-action-strip b,.tutor-action-strip span{display:block}.tutor-action-strip b{font-size:13px}.tutor-action-strip span{font-size:12px;color:var(--app-muted);margin-top:6px;line-height:1.4}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.danger-outline{color:var(--danger)!important;border-color:color-mix(in srgb,var(--danger) 35%,var(--line))!important}

/* bank */
.bank-toolbar .input{width:auto;min-width:180px}.bank-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(340px,.65fr);gap:18px}.bank-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bank-card{position:relative;border:1px solid var(--app-line);border-radius:16px;background:var(--app-surface);padding:18px;min-height:220px;display:flex;flex-direction:column;gap:12px}.bank-card.selected{border-color:var(--subject);box-shadow:0 0 0 2px color-mix(in srgb,var(--subject) 15%,transparent)}.bank-pick{position:absolute;right:14px;top:14px;font-size:12px;font-weight:800;background:var(--app-surface-2);border-radius:999px;padding:6px 8px}.bank-meta{display:flex;gap:6px;flex-wrap:wrap;padding-right:70px}.bank-meta span{font-size:12px;color:var(--app-muted);background:var(--app-surface-2);border-radius:7px;padding:5px 7px}.bank-card h3{font-size:15px;line-height:1.45;margin:0;font-weight:700}.bank-card>img{width:100%;max-height:160px;object-fit:contain;border-radius:10px;background:var(--app-surface-2)}.bank-answer{margin-top:auto}.bank-answer small,.bank-answer b{display:block}.bank-answer small{font-size:12px;color:var(--app-muted)}.bank-answer b{font-size:12px;margin-top:3px}.bank-card .toolbar{margin:0}.bank-side{display:grid;gap:14px;align-content:start;position:sticky;top:10px;height:max-content}.bank-side .panel h2{margin-top:0}.bank-builder{border-color:color-mix(in srgb,var(--subject) 30%,var(--app-line))!important}.pool-rules{display:grid;gap:8px}.pool-rule{display:grid;grid-template-columns:1fr 90px;gap:10px;align-items:center;font-size:12px}.pool-rule .input{padding:8px 9px}

/* matrix */
.matrix-legend{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.matrix-legend span{font-size:12px;border-radius:7px;padding:6px 8px}.matrix-wrap{overflow:auto;border:1px solid var(--app-line);border-radius:16px;background:var(--app-surface)}.matrix-table{border-collapse:separate;border-spacing:0;min-width:max-content}.matrix-table th{position:sticky;top:0;z-index:2;background:var(--app-surface-2);font-size:12px}.matrix-table th:first-child,.matrix-student{position:sticky;left:0;z-index:3;background:var(--app-surface)}.matrix-table th:first-child{z-index:4;background:var(--app-surface-2)}.matrix-student{min-width:210px}.matrix-student button{border:0;background:transparent;color:var(--app-text);text-align:left;cursor:pointer}.matrix-student b,.matrix-student small{display:block}.matrix-student b{font-size:12px}.matrix-student small{font-size:12px;color:var(--app-muted);margin-top:2px}.matrix-cell{min-width:66px;text-align:center}.matrix-cell span{display:inline-grid;place-items:center;width:48px;height:30px;border-radius:8px;font-size:12px;font-weight:800}.heat-low,.matrix-cell.heat-low span{background:color-mix(in srgb,#e54a52 15%,var(--app-surface));color:#d73e47}.heat-mid,.matrix-cell.heat-mid span{background:color-mix(in srgb,#d79a34 16%,var(--app-surface));color:#ae6d12}.heat-high,.matrix-cell.heat-high span{background:color-mix(in srgb,#38b36b 15%,var(--app-surface));color:#219254}.heat-none,.matrix-cell.heat-none span{background:var(--app-surface-2);color:var(--app-muted)}

/* journal */
.journal-wrap{max-height:70vh}.journal-wrap table{min-width:max-content}.journal-wrap th{min-width:120px;vertical-align:bottom}.journal-wrap th:first-child{position:sticky;left:0;z-index:4;min-width:220px}.journal-wrap th b,.journal-wrap th small{display:block}.journal-wrap th b{font-size:12px}.journal-wrap th small{font-size:12px;font-weight:400;margin-top:3px}.journal-name{position:sticky;left:0;background:var(--app-surface);z-index:2}.journal-name button{border:0;background:transparent;color:var(--app-text);text-align:left;cursor:pointer}.journal-name b,.journal-name small{display:block}.journal-name small{font-size:12px;color:var(--app-muted);margin-top:2px}.journal-score{text-align:center;font-weight:800;font-size:12px}.journal-score.low{color:var(--app-red)}.journal-score.progress{color:#a97523}.journal-score.review{color:var(--subject)}

/* reports */
.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.report-card{border:1px solid var(--app-line);border-radius:16px;background:var(--app-surface);padding:20px}.report-person{display:flex;justify-content:space-between;gap:12px;align-items:center}.report-person button{border:0;background:transparent;color:var(--app-text);text-align:left;cursor:pointer}.report-person b,.report-person small{display:block}.report-person small{font-size:12px;color:var(--app-muted);margin-top:3px}.report-person>span{font-size:12px;font-weight:800}.report-person .negative{color:var(--app-red)}.report-person .positive{color:#269b5d}.report-card>p{line-height:1.55;font-size:12px;color:var(--app-muted);min-height:56px}.report-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border-top:1px solid var(--app-line);padding-top:14px}.report-metrics b,.report-metrics small{display:block}.report-metrics b{font-size:18px}.report-metrics small{font-size:12px;color:var(--app-muted);margin-top:2px}.report-card .toolbar{margin:16px 0 0}

/* calendar */
.calendar-nav{display:flex;align-items:center;gap:10px}.calendar-nav b{text-transform:capitalize}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(340px,.6fr);gap:18px}.calendar-list{display:grid}.calendar-event{display:grid;grid-template-columns:130px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--app-line)}.calendar-event:first-child{border-top:0}.calendar-event time{font-size:12px;color:var(--app-muted);font-variant-numeric:tabular-nums}.calendar-event b,.calendar-event small{display:block}.calendar-event b{font-size:13px}.calendar-event small{font-size:12px;color:var(--app-muted);margin-top:3px}.calendar-event.lesson{border-left:3px solid var(--subject);padding-left:12px}.calendar-event.deadline{border-left:3px solid #d79a34;padding-left:12px}.calendar-event.exam{border-left:3px solid var(--app-red);padding-left:12px}

/* student insights */
.v9-student-modal{width:min(1100px,100%)}.student-insight-strip{display:grid;grid-template-columns:2fr 1fr;gap:10px;margin:14px 0}.student-insight-strip span{padding:12px 14px;border-radius:12px;background:var(--app-surface-2)}.student-insight-strip small,.student-insight-strip b{display:block}.student-insight-strip small{font-size:12px;color:var(--app-muted)}.student-insight-strip b{font-size:13px;margin-top:4px}.insight-tasks{display:grid;gap:7px}.insight-task{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;border-radius:9px;padding:8px 10px}.insight-task b{font-size:12px}.insight-task span,.insight-task strong{font-size:12px}.v9-student-modal code{font-family:ui-monospace,monospace;font-size:12px;background:var(--app-surface-2);padding:2px 4px;border-radius:5px}

/* JSON preview / exam controls */
.json-preview{margin:0 0 24px;border-color:color-mix(in srgb,var(--subject) 25%,var(--app-line))!important}.json-preview-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:16px 0}.json-preview-grid span{padding:12px;border-radius:11px;background:var(--app-surface-2)}.json-preview-grid b,.json-preview-grid small{display:block}.json-preview-grid b{font-size:22px}.json-preview-grid small{font-size:12px;color:var(--app-muted);margin-top:3px}.json-preview-grid .bad{background:color-mix(in srgb,var(--app-red) 10%,var(--app-surface));color:var(--app-red)}.exam-mode-options{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.staff-exam-card.archived{opacity:.6}

/* student exam V9 */
.exam-intro-card{min-height:520px;border:1px solid var(--app-line);border-radius:22px;background:radial-gradient(circle at 90% 10%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 36%),var(--app-surface);padding:clamp(28px,6vw,70px);display:flex;align-items:center}.exam-intro-copy{max-width:760px}.exam-intro-copy>span{color:var(--accent);font-weight:800;font-size:12px;letter-spacing:.08em}.exam-intro-copy h2{font-size:clamp(40px,5vw,72px);line-height:.98;letter-spacing:-.05em;margin:14px 0 18px}.exam-intro-copy>p{font-size:16px;line-height:1.65;color:var(--app-muted);max-width:650px}.exam-intro-stats{display:flex;gap:30px;margin:30px 0}.exam-intro-stats b,.exam-intro-stats small{display:block}.exam-intro-stats b{font-size:30px}.exam-intro-stats small{font-size:12px;color:var(--app-muted);margin-top:3px}.exam-intro-copy ul{padding-left:20px;color:var(--app-muted);line-height:1.8;font-size:12px}.exam-intro-actions{display:flex;gap:10px;margin-top:30px}.exam-save-state{font-size:12px;color:var(--app-muted);margin-left:auto}.exam-options{display:grid;gap:9px;width:100%}.exam-options label{display:flex;align-items:center;gap:10px;border:1px solid var(--app-line);border-radius:12px;padding:12px 14px;cursor:pointer;background:var(--app-surface)}.exam-options label:has(input:checked){border-color:var(--subject);background:color-mix(in srgb,var(--subject) 7%,var(--app-surface))}.exam-options input{width:16px;height:16px;accent-color:var(--subject)}

@media(max-width:1200px){.v9-kpis{grid-template-columns:repeat(3,1fr)}.tutor-action-strip{grid-template-columns:repeat(3,1fr)}.bank-layout{grid-template-columns:1fr}.bank-side{position:static}.report-grid{grid-template-columns:1fr}.json-preview-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.grid-3{grid-template-columns:1fr}.v9-kpis{grid-template-columns:1fr 1fr}.tutor-action-strip{grid-template-columns:1fr 1fr}.bank-grid{grid-template-columns:1fr}.calendar-layout{grid-template-columns:1fr}.calendar-event{grid-template-columns:90px 1fr}.calendar-event>*:last-child{grid-column:2}.json-preview-grid{grid-template-columns:repeat(2,1fr)}.student-insight-strip{grid-template-columns:1fr}.exam-intro-card{min-height:0;padding:28px 20px}.exam-intro-stats{gap:18px;flex-wrap:wrap}.exam-intro-actions{flex-direction:column}.exam-intro-actions button{width:100%}}
@media(max-width:560px){.v9-kpis,.tutor-action-strip{grid-template-columns:1fr}.bank-toolbar .input{width:100%}.report-metrics{grid-template-columns:1fr 1fr}.json-preview-grid{grid-template-columns:1fr 1fr}.exam-intro-copy h2{font-size:38px}.exam-intro-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.exam-intro-stats b{font-size:24px}}

/* ===== V9 Mobile parity pass ===== */
body.mobile-sheet-open{overflow:hidden!important;touch-action:auto}
.app-mobile-sheet,.app-mobile-sheet-backdrop,.staff-mobile-bottom-nav,.staff-mobile-section-head,.staff-mobile-sheet,.staff-mobile-sheet-backdrop{display:none}

@media(max-width:820px){
  /* Student mobile navigation: no feature disappears on phone */
  .app-frame{padding-bottom:calc(84px + env(safe-area-inset-bottom))}
  .app-main,.app-main-wide{padding-bottom:calc(102px + env(safe-area-inset-bottom));overflow:visible}
  .app-bottom-nav{height:calc(70px + env(safe-area-inset-bottom));padding:0 4px env(safe-area-inset-bottom);grid-template-columns:repeat(5,minmax(0,1fr))}
  .app-bottom-nav .app-nav-item{min-width:0;min-height:64px;touch-action:manipulation}
  .app-bottom-nav .app-nav-item span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .app-mobile-sheet-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.48);backdrop-filter:blur(3px);z-index:70;opacity:0;transition:opacity .2s ease}
  .app-mobile-sheet-backdrop[hidden]{display:none}.app-mobile-sheet-backdrop.open{opacity:1}
  .app-mobile-sheet{display:block;position:fixed;left:0;right:0;bottom:0;z-index:71;max-height:min(78dvh,720px);overflow:auto;background:var(--app-surface);border:1px solid var(--app-line);border-bottom:0;border-radius:24px 24px 0 0;padding:8px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -24px 70px rgba(0,0,0,.22);transform:translateY(105%);transition:transform .24s var(--app-ease);overscroll-behavior:contain}
  .app-mobile-sheet.open{transform:translateY(0)}
  .app-mobile-sheet-handle,.staff-mobile-sheet-handle{width:44px;height:5px;border-radius:999px;background:var(--app-line);margin:2px auto 12px}
  .app-mobile-profile{display:grid;grid-template-columns:44px minmax(0,1fr) 42px;align-items:center;gap:11px;padding:4px 0 16px;border-bottom:1px solid var(--app-line)}
  .app-mobile-profile>div{min-width:0}.app-mobile-profile b,.app-mobile-profile small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-mobile-profile b{font-size:14px}.app-mobile-profile small{font-size:12px;color:var(--app-muted);margin-top:3px}
  .app-mobile-sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:12px}
  .app-mobile-sheet-grid .app-nav-item{min-height:58px;border:1px solid var(--app-line);border-radius:14px;background:var(--app-surface-2);padding:10px 12px;color:var(--app-text);font-size:13px;justify-content:flex-start;overflow:hidden}
  .app-mobile-sheet-grid .app-nav-item.active{background:color-mix(in srgb,var(--app-red) 8%,var(--app-surface));border-color:color-mix(in srgb,var(--app-red) 34%,var(--app-line));color:var(--app-red)}
  .app-mobile-sheet-grid .app-nav-item span{white-space:normal;line-height:1.2}
  .app-mobile-sheet-grid .app-staff-link{color:var(--app-red)}
  .app-mobile-sheet-grid .app-mobile-logout{color:var(--app-red)}

  /* Teacher shell: replace long horizontal desktop tabs with complete mobile navigation */
  body.staff-active .shell.staff-shell{width:100%;padding:0 14px calc(92px + env(safe-area-inset-bottom));overflow:visible}
  body.staff-active .staff-topbar{position:sticky;top:0;z-index:40;height:64px;margin:0 -14px 12px;padding:0 14px;background:color-mix(in srgb,var(--app-bg) 94%,transparent);backdrop-filter:blur(15px);border-bottom:1px solid var(--app-line)}
  body.staff-active .staff-topbar .brand{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw}
  body.staff-active .staff-topbar .user-name{display:none}
  body.staff-active .staff-student-switch{min-height:40px;padding:0 10px;font-size:12px}
  body.staff-active .v9-tabs{display:none!important}
  .staff-mobile-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 20px;padding:12px 14px;border:1px solid var(--app-line);border-radius:14px;background:var(--app-surface)}
  .staff-mobile-section-head small,.staff-mobile-section-head b{display:block}.staff-mobile-section-head small{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--app-muted)}.staff-mobile-section-head b{font-size:16px;margin-top:2px}
  .staff-mobile-section-head .ghost-btn{min-height:42px}
  .staff-mobile-bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));left:0;right:0;bottom:0;z-index:60;min-height:calc(68px + env(safe-area-inset-bottom));padding:4px 4px env(safe-area-inset-bottom);border-top:1px solid var(--app-line);background:color-mix(in srgb,var(--app-surface) 96%,transparent);backdrop-filter:blur(16px)}
  .staff-mobile-nav-item{position:relative;min-width:0;min-height:60px;border:0;background:transparent;color:var(--app-muted);border-radius:10px;padding:7px 3px;font-size:12px;font-weight:750;cursor:pointer;touch-action:manipulation}
  .staff-mobile-nav-item.active{color:var(--app-red);background:color-mix(in srgb,var(--app-red) 6%,transparent)}
  .staff-mobile-nav-item span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.staff-mobile-nav-item b{position:absolute;top:4px;right:8px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--app-red);color:white;display:grid;place-items:center;font-size:12px}
  .staff-mobile-sheet-backdrop{display:block;position:fixed;inset:0;z-index:78;background:rgba(0,0,0,.5);backdrop-filter:blur(3px);opacity:0;transition:opacity .2s ease}.staff-mobile-sheet-backdrop[hidden]{display:none}.staff-mobile-sheet-backdrop.open{opacity:1}
  .staff-mobile-sheet{display:block;position:fixed;left:0;right:0;bottom:0;z-index:79;max-height:84dvh;overflow:auto;border:1px solid var(--app-line);border-bottom:0;border-radius:24px 24px 0 0;background:var(--app-surface);padding:8px 14px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -30px 80px rgba(0,0,0,.26);transform:translateY(105%);transition:transform .24s var(--app-ease);overscroll-behavior:contain}.staff-mobile-sheet.open{transform:translateY(0)}
  .staff-mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 13px;border-bottom:1px solid var(--app-line)}.staff-mobile-sheet-head small,.staff-mobile-sheet-head b{display:block}.staff-mobile-sheet-head small{font-size:12px;color:var(--app-muted)}.staff-mobile-sheet-head b{font-size:17px;margin-top:2px}
  .staff-mobile-sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 0}
  .staff-mobile-sheet-grid .staff-tab{min-height:52px;width:100%;white-space:normal;text-align:left;border:1px solid var(--app-line)!important;border-radius:13px!important;background:var(--app-surface-2)!important;color:var(--app-text)!important;padding:10px 12px!important;font-size:12px!important}
  .staff-mobile-sheet-grid .staff-tab.active{border-color:color-mix(in srgb,var(--app-red) 38%,var(--app-line))!important;background:color-mix(in srgb,var(--app-red) 7%,var(--app-surface))!important;color:var(--app-red)!important}
  .staff-mobile-sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;border-top:1px solid var(--app-line);padding-top:12px}.staff-mobile-sheet-actions>*{width:100%;min-height:46px}

  /* Teacher mobile content parity */
  body.staff-active .tutor-overview-head{margin-top:0;gap:18px}.tutor-head-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.tutor-head-actions>*{width:100%;min-height:46px}
  .tutor-overview-head h1{font-size:clamp(32px,9vw,40px)}
  .tutor-kpi-grid.v9-kpis{grid-template-columns:1fr 1fr;gap:8px}.tutor-kpi-grid.v9-kpis>button{min-height:112px;padding:14px}.tutor-kpi-grid.v9-kpis b{font-size:28px}.tutor-kpi-grid.v9-kpis span{font-size:12px}
  .tutor-action-strip{grid-template-columns:1fr 1fr;gap:8px}.tutor-action-strip button{min-height:116px;padding:15px}.tutor-action-strip b{font-size:13px}.tutor-action-strip span{font-size:12px}
  .analytics-section-head{align-items:flex-start;flex-direction:column;gap:8px}.analytics-section-head>button{width:100%}
  .tutor-filter-shortcuts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.tutor-filter-shortcuts button{min-width:0;justify-content:center;padding:0 6px;font-size:12px}.tutor-filter-shortcuts button b{display:none}
  .tutor-attention-row{grid-template-columns:1fr auto;gap:8px}.attention-state{grid-column:1/-1}.tutor-attention-row>strong{align-self:center}
  .tutor-hard-row{grid-template-columns:minmax(0,1fr) 62px 34px;gap:7px}
  .tutor-recent-row{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}

  /* Forms and builders */
  body.staff-active .page-head{align-items:flex-start;flex-direction:column}.page-head .back{align-self:flex-start}
  body.staff-active .toolbar{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch}.toolbar>.grow{grid-column:1/-1}.toolbar .select,.toolbar .input,.toolbar input[type=file]{width:100%!important;min-width:0!important;max-width:none!important}.toolbar .btn,.toolbar .ghost-btn{min-height:44px;white-space:normal}
  body.staff-active .grid-2,body.staff-active .grid-3{grid-template-columns:1fr!important}.panel{padding:16px}.lesson-admin-item{align-items:flex-start;flex-wrap:wrap}.lesson-admin-item .grow{flex-basis:100%}.lesson-admin-item>.btn,.lesson-admin-item>.ghost-btn{flex:1;min-width:130px}
  .group-card{align-items:flex-start;flex-wrap:wrap}.group-card .grow{flex-basis:100%}.group-card>.btn,.group-card>.ghost-btn{flex:1}.group-checks{display:grid;grid-template-columns:1fr}.group-check{width:100%}
  .access-option{min-height:42px}.check-chip{min-height:42px}
  .bank-layout,.calendar-layout,.report-grid{grid-template-columns:1fr}.bank-toolbar{display:grid!important;grid-template-columns:1fr 1fr}.bank-toolbar>*{min-width:0!important;width:100%!important}.bank-toolbar .input{grid-column:1/-1}.bank-grid{grid-template-columns:1fr}.bank-card{min-height:0}.bank-side{position:static}.pool-rule{grid-template-columns:minmax(0,1fr) 82px}
  .calendar-event{grid-template-columns:74px minmax(0,1fr);gap:8px}.calendar-event>*:last-child{grid-column:2}.calendar-nav{justify-content:space-between}.calendar-nav b{font-size:12px;text-align:center}
  .report-card{padding:16px}.report-metrics{grid-template-columns:1fr 1fr}.report-person{align-items:flex-start}
  .json-preview-grid{grid-template-columns:1fr 1fr}.exam-json-import{padding:16px!important}.exam-json-import>.toolbar{display:grid;grid-template-columns:1fr}.exam-json-import>.toolbar>*{width:100%!important}
  .staff-exam-grid{grid-template-columns:1fr}.staff-exam-card{padding:16px}.staff-exam-question-head{align-items:flex-start;flex-direction:column}.staff-exam-question-head .toolbar{width:100%}.staff-exam-question .grid-3{grid-template-columns:1fr!important}
  .staff-stat-strip{grid-template-columns:1fr 1fr;gap:8px}.staff-stat{padding:14px}.staff-stat b{font-size:24px}
  .review-queue-card{padding:16px}.manual-review-columns,.manual-grade-row{grid-template-columns:1fr}.review-submit-bar{position:sticky;bottom:0;background:var(--app-surface);padding:10px 0 calc(8px + env(safe-area-inset-bottom));z-index:4}

  /* Dense data is preserved with explicit, touch-friendly horizontal scrolling */
  body.staff-active .table-wrap,body.staff-active .matrix-wrap,body.staff-active .journal-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-width:thin}
  body.staff-active table{font-size:12px}body.staff-active th,body.staff-active td{padding:10px 11px}
  .matrix-student{min-width:150px}.matrix-cell{min-width:58px}.journal-wrap th:first-child{min-width:155px}.journal-wrap th{min-width:104px}

  /* Modals become mobile bottom sheets instead of off-screen desktop dialogs */
  body.staff-active .modal-backdrop,.modal-backdrop{padding:0;align-items:end;overflow:hidden}
  body.staff-active .modal,.modal{width:100%!important;max-width:100%!important;max-height:94dvh;border-radius:24px 24px 0 0;padding:18px 14px calc(20px + env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}
  body.staff-active .modal-head,.modal-head{top:-18px;padding:16px 0 12px}.student-summary-grid{grid-template-columns:1fr;gap:18px}.student-summary-row{grid-template-columns:minmax(0,1fr) 58px 62px}.answer-pair{grid-template-columns:1fr}.detail-run-meta{grid-template-columns:repeat(3,1fr)}

  /* Student content fixes */
  .today-quick{overflow-x:auto;padding-bottom:2px}.today-quick button{min-width:132px;flex:0 0 auto}.today-focus-copy p{max-width:100%}
  .assignment-row{padding:14px 0}.assignment-row .app-primary,.assignment-row .app-secondary{min-height:44px}
  .subject-hero{height:260px}.subject-hero>div{left:18px;right:18px;bottom:20px}.subject-hero h2{font-size:34px}
  .focus-layout,.exam-run-layout{min-height:calc(100dvh - 68px)}.focus-card,.exam-question-card{padding:20px 16px}
  .question-image{max-height:42dvh}.exam-manual-answer{min-height:180px}
  .exam-result-actions,.result-actions{display:grid;grid-template-columns:1fr}.exam-result-actions>*,.result-actions>*{width:100%}
}

@media(max-width:430px){
  .app-topbar{padding:0 12px}.app-topbar-title h1{max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-topbar-title p{display:none}
  .app-mobile-sheet-grid,.staff-mobile-sheet-grid{grid-template-columns:1fr 1fr}
  body.staff-active .staff-topbar .brand{max-width:36vw}.staff-student-switch{font-size:0!important;width:42px;padding:0!important}.staff-student-switch:after{content:'↔';font-size:18px}
  .staff-mobile-section-head{padding:10px 11px}.staff-mobile-section-head .ghost-btn{padding:0 10px;font-size:12px}
  .tutor-kpi-grid.v9-kpis,.tutor-action-strip{grid-template-columns:1fr}.tutor-kpi-grid.v9-kpis>button{min-height:94px}.tutor-action-strip button{min-height:94px}
  .tutor-filter-shortcuts{grid-template-columns:1fr}.tutor-filter-shortcuts button{justify-content:space-between;padding:0 12px}.tutor-filter-shortcuts button b{display:inline}
  body.staff-active .toolbar{grid-template-columns:1fr}.toolbar>.grow,.bank-toolbar .input{grid-column:auto}.toolbar>*{width:100%!important}.toolbar .btn,.toolbar .ghost-btn{justify-content:center}
  .staff-stat-strip,.json-preview-grid,.report-metrics{grid-template-columns:1fr 1fr}
  .staff-mobile-sheet-actions{grid-template-columns:1fr}
  .today-quick button{min-width:122px}.today-focus-copy h2{font-size:30px}.today-focus-copy{padding:20px}
  .exam-intro-stats{grid-template-columns:1fr 1fr 1fr}.exam-intro-stats small{font-size:12px}.exam-intro-copy h2{font-size:34px}
  .detail-run-meta{grid-template-columns:1fr 1fr}.student-summary-row{grid-template-columns:minmax(0,1fr) 52px 58px;gap:6px}
}

@media(max-width:360px){
  .app-mobile-sheet-grid,.staff-mobile-sheet-grid{grid-template-columns:1fr}
  .app-bottom-nav .app-nav-item,.staff-mobile-nav-item{font-size:12px}.app-bottom-nav .ui-icon{width:19px;height:19px}
  .app-main,.app-main-wide{padding-left:12px;padding-right:12px}.today-head h2,.page-intro h2{font-size:32px}
  .staff-stat-strip,.json-preview-grid,.report-metrics{grid-template-columns:1fr}
  .exam-intro-stats{grid-template-columns:1fr 1fr}
}

/* Accessible controls and visible groups retain every staff destination. */
body.staff-active :is(button,a,input,select,textarea):focus-visible{outline:3px solid var(--app-violet);outline-offset:3px}
body.staff-active .staff-tabs.v9-tabs{display:flex;flex-wrap:wrap;gap:16px;white-space:normal;overflow:visible}
.staff-nav-group{display:flex;flex-direction:column;gap:7px;min-width:0}
.staff-nav-group-label{font-size:12px;color:var(--app-muted);font-weight:600}
.staff-nav-group-items{display:flex;flex-wrap:wrap;gap:7px}
body.staff-active .staff-tab{min-height:44px;font-size:13px}
.staff-mobile-sheet-grid .staff-nav-group{grid-column:1/-1}
.staff-mobile-sheet-grid .staff-nav-group-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.staff-mobile-sheet-grid .staff-tab{white-space:normal}
body.staff-active .text-action{min-height:44px}
body.staff-active .field,body.staff-active .field>*{min-width:0;max-width:100%}
@media(max-width:820px){body.staff-active .staff-tabs.v9-tabs{display:none}.staff-mobile-nav-item span{font-size:12px}}

/* V10: one page scroller; a modal locks only the background, never touch gestures. */
html{scroll-padding-top:80px;scroll-padding-bottom:100px}
body.scroll-locked{position:fixed!important;top:var(--locked-scroll-top,0);left:0;right:0;width:100%;overflow:hidden!important;touch-action:auto}
.app-mobile-sheet,.staff-mobile-sheet,.modal,.landing-auth-card{touch-action:pan-y pinch-zoom;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}
.app-mobile-sheet,.staff-mobile-sheet{max-height:calc(var(--visible-height,100dvh) - 24px)}
.modal-backdrop,.auth-modal-backdrop{max-height:var(--visible-height,100dvh)}
.modal,.landing-auth-card{max-height:calc(var(--visible-height,100dvh) - 24px);overflow-y:auto}
.table-wrap,.matrix-wrap,.journal-wrap{touch-action:pan-x pan-y pinch-zoom;max-width:100%;min-width:0}
@media(max-width:820px){
 .app-frame,.app-content,.app-main,.app-main-wide,.staff-shell{min-width:0;height:auto;max-height:none}
 .lesson-admin-item{flex-wrap:wrap;gap:8px}.lesson-admin-item>.grow{flex-basis:100%;min-width:0;overflow-wrap:anywhere}
 .lesson-admin-item>button{min-height:44px;flex:1 1 140px}
 .modal,.landing-auth-card{max-height:calc(var(--visible-height,100dvh) - 12px)}
 .auth-modal-backdrop{padding:6px;align-items:center}
 input,textarea,select{scroll-margin-block:90px}
}

.app-mobile-sheet[aria-hidden="true"],.staff-mobile-sheet[aria-hidden="true"]{display:none!important;pointer-events:none}
.modal{touch-action:pan-x pan-y pinch-zoom}

/* ===== V10.2 HARD MOBILE EXAM HOTFIX ===== */
@media (max-width: 820px) {
  html, body, body.app-active, body.app-active #app, .exam-run {
    width: 100% !important;
    max-width: 100vw !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }

  .exam-run-header {
    display: grid !important;
    grid-template-columns: 40px minmax(0, 1fr) 92px !important;
    grid-template-rows: 68px !important;
    align-items: center !important;
    gap: 8px !important;
    height: 68px !important;
    min-height: 68px !important;
    width: 100% !important;
    max-width: 100vw !important;
    padding: 0 10px !important;
    overflow: hidden !important;
  }

  .exam-run-header > div:nth-child(2) {
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .exam-run-header > div:nth-child(2) small,
  .exam-run-header > div:nth-child(2) b {
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .exam-run-header .exam-save-state,
  .exam-run-header > .app-secondary {
    display: none !important;
  }

  .exam-timer {
    grid-column: 3 !important;
    grid-row: 1 !important;
    width: 92px !important;
    min-width: 92px !important;
    max-width: 92px !important;
    height: 42px !important;
    padding: 0 7px !important;
    justify-self: end !important;
    white-space: nowrap !important;
  }

  .exam-run-layout {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 18px 14px 88px !important;
    overflow-x: hidden !important;
  }

  .exam-map {
    position: static !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 0 34px !important;
    overflow: hidden !important;
  }

  .exam-map > div:first-child {
    display: flex !important;
    width: 100% !important;
    margin: 0 0 14px !important;
  }

  .exam-dots {
    display: flex !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 10px !important;
    padding: 0 0 7px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-inline: contain !important;
    scrollbar-width: none !important;
  }

  .exam-dots::-webkit-scrollbar { display: none !important; }

  .exam-dot {
    flex: 0 0 58px !important;
    width: 58px !important;
    height: 58px !important;
    min-width: 58px !important;
    max-width: 58px !important;
    aspect-ratio: auto !important;
    font-size: 18px !important;
  }

  .exam-question {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
  }

  .exam-question-meta {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 5px !important;
    margin: 0 0 24px !important;
  }

  .focus-prompt {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    font-size: 20px !important;
    line-height: 1.48 !important;
    white-space: pre-wrap !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    overflow-x: hidden !important;
  }

  .question-image,
  .formula {
    max-width: 100% !important;
  }

  .focus-answer {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 12px !important;
    margin: 28px 0 0 !important;
  }

  .focus-answer input,
  .focus-answer textarea,
  .exam-manual-answer,
  .focus-answer .app-primary {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .focus-answer input,
  .focus-answer textarea,
  .exam-manual-answer {
    font-size: 16px !important;
  }

  .focus-answer .app-primary {
    min-height: 54px !important;
    white-space: normal !important;
  }

  .manual-answer-note {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
  }

  .exam-question-nav {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    gap: 10px !important;
    margin-top: 22px !important;
  }

  .exam-question-nav > button {
    width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 390px) {
  .exam-run-layout { padding-left: 12px !important; padding-right: 12px !important; }
  .exam-dot { flex-basis: 54px !important; width: 54px !important; min-width: 54px !important; max-width: 54px !important; height: 54px !important; }
  .focus-prompt { font-size: 19px !important; }
  .exam-timer { width: 88px !important; min-width: 88px !important; max-width: 88px !important; }
  .exam-run-header { grid-template-columns: 40px minmax(0,1fr) 88px !important; }
}
