:root{--bg:#090b13;--bg-soft:#0d111d;--panel:#101624;--panel-soft:#141b2b;--border:rgba(164,177,209,.13);--text:#f4f6fb;--muted:#9aa5bd;--subtle:#6f7b95;--violet:#9a78ff;--violet-strong:#825bfa;--cyan:#64e3d3;--mint:#69e2b7;--pink:#f29bd0;--blue:#7fb4ff;--radius:22px;--shadow:0 24px 80px rgba(0,0,0,.35);font-family:'DM Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 18% 0%,rgba(83,70,152,.13),transparent 32%),radial-gradient(ellipse at 86% 36%,rgba(48,88,139,.1),transparent 30%),var(--bg);color:var(--text);overflow-x:hidden}button,a,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}.ambient{position:fixed;z-index:-1;pointer-events:none;border-radius:50%;filter:blur(90px);opacity:.12;animation:ambientDrift 17s ease-in-out infinite alternate}.ambient-one{width:260px;height:260px;background:#8658ff;top:220px;left:-180px}.ambient-two{width:300px;height:300px;background:#296e9b;right:-200px;top:800px;animation-delay:-7s}@keyframes ambientDrift{to{transform:translate(75px,-35px) scale(1.12)}}.app-shell{width:min(1240px,calc(100% - 64px));margin:auto}.topbar{height:90px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(164,177,209,.1);gap:26px}.brand,.exam-brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:linear-gradient(145deg,#a18aff,#7657ed);box-shadow:0 6px 24px rgba(129,91,250,.3);position:relative;transform:rotate(-4deg)}.brand-icon:after{content:"";position:absolute;inset:4px;border-radius:10px;border:1px solid rgba(255,255,255,.34)}.brand-icon span{font-family:Manrope,sans-serif;font-size:23px;font-weight:800;color:#fff;z-index:1;transform:rotate(4deg)}.brand-wordmark{font-family:Manrope,sans-serif;font-weight:800;font-size:17px;letter-spacing:1.3px;line-height:1.1}.brand-wordmark>span{color:#a792ff}.brand-wordmark small{display:block;font-family:'DM Sans',sans-serif;font-size:8px;letter-spacing:1.5px;color:#7e8aa6;font-weight:700;margin-top:5px}.top-nav{display:flex;align-items:center;gap:34px;margin-left:64px}.nav-link{font-size:12px;color:#8e99b1;font-weight:600;transition:color .2s;position:relative}.nav-link:after{content:"";position:absolute;height:2px;left:0;right:100%;bottom:-12px;border-radius:2px;background:var(--violet);transition:right .25s}.nav-link:hover,.nav-link.active{color:#fff}.nav-link.active:after{right:0}.header-right{display:flex;align-items:center;gap:14px}.offline-pill{display:flex;align-items:center;gap:8px;font-size:10px;color:#acb5c9;border:1px solid var(--border);border-radius:50px;padding:9px 12px;background:rgba(18,24,38,.7)}.status-dot,.bank-led{width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 12px rgba(105,226,183,.75)}.avatar-button{width:32px;height:32px;border:1px solid rgba(166,150,255,.25);background:rgba(139,114,255,.12);border-radius:50%;color:#b6a6ff;font-weight:700;cursor:pointer;transition:transform .2s,background .2s}.avatar-button:hover{background:rgba(139,114,255,.25);transform:rotate(12deg)}.hero{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;min-height:448px;padding:50px 0 45px;gap:18px}.hero-copy{position:relative;z-index:2}.eyebrow,.section-kicker,.modal-eyebrow,.results-kicker{font-size:9px;letter-spacing:2px;color:#aa9bff;font-weight:700}.eyebrow{display:flex;align-items:center;gap:8px}.eyebrow-spark{font-size:16px;color:var(--cyan)}h1,h2,h3,p{margin-top:0}.hero h1{font-family:Manrope,sans-serif;font-size:clamp(33px,4.1vw,53px);letter-spacing:-2px;line-height:1.12;margin:18px 0 17px;font-weight:800}.hero h1>span{background:linear-gradient(105deg,#b5a5ff 5%,#8f80ff 45%,#65e1d6 100%);color:transparent;background-clip:text;-webkit-background-clip:text}.hero-description{color:#a4aec2;font-size:13px;line-height:1.85;max-width:480px;margin-bottom:26px}.hero-actions{display:flex;gap:12px;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;border:1px solid transparent;border-radius:11px;padding:13px 17px;font-size:11px;font-weight:700;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s,border-color .2s;white-space:nowrap}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0) scale(.985)}.button-primary{background:linear-gradient(110deg,#a18aff,#8060f6);color:white;box-shadow:0 9px 25px rgba(129,91,250,.21)}.button-primary:hover{box-shadow:0 12px 32px rgba(129,91,250,.34)}.button-primary span{font-size:15px;font-weight:500}.button-quiet{border-color:var(--border);background:rgba(18,24,38,.35);color:#c1c9d8}.button-quiet:hover{border-color:rgba(163,142,255,.35);background:rgba(139,114,255,.08)}.hero-footnote{margin-top:26px;font-size:9px;color:#78849c;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.tiny-check{color:var(--mint);font-size:13px}.footnote-dot{color:#424d63}.hero-art{height:335px;position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate}.hero-glow{position:absolute;width:230px;height:230px;border-radius:50%;background:rgba(122,94,255,.16);filter:blur(48px);z-index:-1}.orbit{position:absolute;border:1px solid rgba(149,135,255,.14);border-radius:50%;transform:rotate(-20deg)}.orbit-outer{width:365px;height:255px}.orbit-inner{width:293px;height:205px;border-color:rgba(93,224,210,.12);transform:rotate(29deg)}.hero-score-card{position:relative;width:267px;min-height:210px;z-index:2;padding:19px 20px;border:1px solid rgba(184,174,255,.27);border-radius:19px;background:linear-gradient(135deg,rgba(29,35,57,.95),rgba(18,23,39,.92));box-shadow:0 28px 90px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.06);transform:rotate(-3.5deg);animation:cardFloat 7s ease-in-out infinite}.hero-score-card:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(140deg,rgba(148,126,255,.09),transparent 55%);pointer-events:none}.mini-card-top{display:flex;align-items:center;gap:8px;color:#8995af}.mini-icon{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:rgba(141,116,255,.17);color:#b7a7ff;font-size:13px}.mini-status{font-size:7px;letter-spacing:1.2px;font-weight:700}.mini-menu{margin-left:auto;letter-spacing:3px}.mini-title{font-size:10px;color:#c4cadd;margin-top:23px}.mini-score-row{display:flex;align-items:center;gap:13px;margin-top:3px}.mini-score-row strong{font-family:Manrope,sans-serif;font-size:42px;letter-spacing:-2px}.mini-score-row span{font-size:8px;color:#8995b0;line-height:1.7}.score-track{height:5px;background:#262d42;border-radius:10px;overflow:hidden;margin-top:16px}.score-track span{display:block;width:64%;height:100%;border-radius:10px;background:linear-gradient(90deg,#9578ff,#62dfd1)}.mini-card-bottom{display:flex;justify-content:space-between;font-size:7px;letter-spacing:1px;color:#7886a4;margin-top:11px}.floating-note{position:absolute;z-index:3;display:flex;gap:9px;align-items:center;padding:10px 13px;background:rgba(17,23,38,.92);border:1px solid rgba(172,185,219,.15);border-radius:13px;box-shadow:0 13px 35px rgba(0,0,0,.25);backdrop-filter:blur(12px);animation:noteFloat 6s ease-in-out infinite}.floating-note b{font-size:9px;display:block;white-space:nowrap}.floating-note small{display:block;font-size:7px;color:#8794ad;margin-top:4px}.note-symbol,.note-check{width:25px;height:25px;display:grid;place-items:center;border-radius:8px;background:rgba(143,117,255,.18);color:#c1b3ff}.note-check{background:rgba(105,226,183,.13);color:var(--mint)}.note-top{right:-2px;top:41px}.note-bottom{left:1px;bottom:40px;animation-delay:-3s}.art-spark{position:absolute;font-size:21px;color:#a493ff;animation:sparkPulse 3.7s ease-in-out infinite}.spark-one{top:38px;left:84px}.spark-two{right:42px;bottom:40px;font-size:28px;color:var(--cyan);animation-delay:-1.8s}.spark-three{font-size:50px;top:80px;right:53px;color:#6b71ad;opacity:.6}@keyframes cardFloat{0%,100%{transform:translateY(0) rotate(-3.5deg)}50%{transform:translateY(-8px) rotate(-2deg)}}@keyframes noteFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes sparkPulse{0%,100%{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}.section-head{display:flex;justify-content:space-between;align-items:end;margin-top:25px;margin-bottom:23px;gap:20px}.section-head h2,.how-heading h2,.results-review-head h2{font-family:Manrope,sans-serif;font-size:25px;letter-spacing:-.8px;margin:9px 0 6px}.section-subtitle,.how-heading>p,.results-review-head p{font-size:11px;color:#909bb1;margin:0}.bank-indicator{font-size:10px;color:#8793aa;display:flex;align-items:center;gap:9px;padding-bottom:5px}.bank-indicator b{color:#cad1e0}.bank-led{width:5px;height:5px}.subject-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.subject-card{--accent:#a38aff;position:relative;overflow:hidden;border:1px solid rgba(164,177,209,.12);border-radius:18px;min-height:285px;padding:18px 17px 15px;background:linear-gradient(145deg,rgba(21,28,44,.92),rgba(13,18,30,.96));transition:transform .28s,border-color .28s,box-shadow .28s}.subject-card:hover{transform:translateY(-5px);border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:0 18px 45px rgba(0,0,0,.18),0 0 32px color-mix(in srgb,var(--accent) 8%,transparent)}.card-social{--accent:#b09aff}.card-science{--accent:#63dfcf}.card-math{--accent:#8db7ff}.card-rla{--accent:#f29bd0}.subject-card:before{content:"";position:absolute;width:130px;height:130px;border-radius:50%;right:-45px;top:55px;background:var(--accent);opacity:.055;filter:blur(34px);transition:opacity .25s}.subject-card:hover:before{opacity:.14}.subject-card-top{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}.subject-symbol{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:color-mix(in srgb,var(--accent) 13%,transparent);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);font-size:17px;color:var(--accent)}.subject-code{font-size:8px;color:#717e99;letter-spacing:1.3px;font-weight:700}.subject-art{position:absolute;height:94px;width:126px;right:11px;top:42px;opacity:.85;transform:scale(.96);transition:transform .4s}.subject-card:hover .subject-art{transform:scale(1.05)}.social-art{right:15px;top:39px}.statue-column{position:absolute;bottom:14px;width:13px;height:46px;background:linear-gradient(90deg,rgba(173,151,255,.15),rgba(173,151,255,.65),rgba(173,151,255,.18));border:1px solid rgba(180,165,255,.5);border-bottom:0;border-radius:3px 3px 0 0;box-shadow:0 0 15px rgba(157,128,255,.15)}.col-a{left:31px;height:43px}.col-b{left:53px;height:52px}.col-c{left:75px;height:43px}.statue-roof{position:absolute;width:72px;height:8px;left:24px;bottom:65px;border:1px solid rgba(180,165,255,.6);background:rgba(173,151,255,.2);transform:perspective(20px) rotateX(2deg)}.statue-base{position:absolute;width:85px;height:6px;left:18px;bottom:7px;background:rgba(174,155,255,.4);border:1px solid rgba(180,165,255,.4);border-radius:2px}.statue-glow{position:absolute;width:92px;height:50px;left:15px;bottom:3px;background:rgba(153,127,255,.16);filter:blur(20px)}.science-art{right:13px;top:35px}.atom-ring{position:absolute;border:1px solid rgba(99,223,207,.7);width:92px;height:35px;border-radius:50%;left:15px;top:31px;transform:rotate(30deg)}.ring-two{transform:rotate(-30deg);border-color:rgba(99,223,207,.45)}.ring-three{transform:rotate(90deg);border-color:rgba(99,223,207,.38)}.atom-core{position:absolute;width:16px;height:16px;border-radius:50%;left:53px;top:41px;background:radial-gradient(circle at 35% 30%,#c5fff7,#43bcb1 65%,#226e78);box-shadow:0 0 19px rgba(99,223,207,.38)}.atom-node{position:absolute;width:7px;height:7px;border-radius:50%;background:#c1fff8;box-shadow:0 0 10px #63dfcf}.node-one{left:28px;top:54px}.node-two{left:93px;top:25px}.node-three{left:64px;top:75px}.math-art{right:10px;top:34px}.math-line{position:absolute;height:1px;width:110px;background:linear-gradient(90deg,transparent,rgba(141,183,255,.55),transparent);transform:rotate(-31deg);top:45px;left:0}.line-b{transform:rotate(31deg);top:46px}.line-c{width:66px;left:27px;top:45px;transform:rotate(90deg);background:linear-gradient(90deg,transparent,rgba(141,183,255,.55),transparent)}.math-symbol{position:absolute;color:#9bbfff;text-shadow:0 0 18px rgba(141,183,255,.3);font-size:19px;font-family:Manrope,sans-serif}.sym-a{left:18px;top:8px}.sym-b{right:15px;top:13px}.sym-c{left:70px;top:62px;font-size:16px}.sym-d{left:4px;top:66px}.rla-art{right:5px;top:35px}.book-page{position:absolute;top:17px;width:45px;height:56px;background:linear-gradient(135deg,rgba(242,155,208,.12),rgba(242,155,208,.04));border:1px solid rgba(242,155,208,.55);transform:skewY(-7deg);border-radius:4px 0 0 4px}.page-left{left:20px}.page-right{left:65px;transform:skewY(7deg);border-radius:0 4px 4px 0}.book-spine{position:absolute;height:58px;width:2px;background:rgba(242,155,208,.7);left:64px;top:17px}.book-line{position:absolute;height:1px;width:23px;background:rgba(242,155,208,.4);top:32px;left:29px}.bl-two{top:40px}.bl-three{left:74px;top:32px}.bl-four{left:74px;top:40px}.subject-card h3{position:relative;font-family:Manrope,sans-serif;font-size:14px;letter-spacing:-.35px;margin:81px 0 7px;max-width:92%;line-height:1.4}.subject-card p{position:relative;font-size:10px;line-height:1.65;color:#909bb0;min-height:33px;margin-bottom:14px}.subject-meta{display:flex;justify-content:space-between;gap:8px;border-top:1px solid rgba(164,177,209,.1);padding-top:11px;font-size:9px;color:#9ca8bd}.subject-meta span{white-space:nowrap}.meta-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-right:5px;box-shadow:0 0 9px color-mix(in srgb,var(--accent) 50%,transparent)}.subject-start{width:100%;display:flex;justify-content:space-between;align-items:center;margin-top:14px;background:transparent;border:1px solid rgba(164,177,209,.15);border-radius:9px;padding:10px 11px;font-size:10px;font-weight:700;cursor:pointer;transition:background .2s,border .2s,color .2s}.subject-start span{font-size:14px;color:var(--accent)}.subject-start:hover{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.how-section{display:grid;grid-template-columns:.82fr 1.18fr;gap:50px;align-items:center;padding:92px 0 72px}.how-heading h2{max-width:300px;line-height:1.2}.how-heading>p{max-width:310px;line-height:1.8}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:23px}.step-item{position:relative}.step-number{position:absolute;top:0;right:0;font-size:8px;letter-spacing:1px;color:#59657f}.step-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:10px;border:1px solid rgba(155,132,255,.2);background:rgba(139,114,255,.09);color:#b8a9ff;font-size:17px;margin-bottom:17px}.step-item:nth-child(2) .step-icon{background:rgba(100,227,211,.08);border-color:rgba(100,227,211,.2);color:var(--cyan)}.step-item:nth-child(3) .step-icon{background:rgba(127,180,255,.08);border-color:rgba(127,180,255,.2);color:var(--blue)}.step-item h3{font-size:11px;margin-bottom:8px}.step-item p{font-size:9px;line-height:1.8;color:#858fa7;margin:0}.site-footer{border-top:1px solid rgba(164,177,209,.1);padding:23px 0 30px;display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-brand .brand-icon{width:30px;height:30px;border-radius:10px}.footer-brand .brand-icon span{font-size:18px}.footer-brand .brand-wordmark{font-size:13px}.footer-brand .brand-wordmark small{font-size:6px}.site-footer>p{font-size:9px;color:#707c95;margin:0}.back-top{font-size:9px;color:#a9b3c8;transition:color .2s}.back-top:hover{color:white}
/* modal and setup */[hidden]{display:none!important}.modal-backdrop{position:fixed;inset:0;background:rgba(4,7,13,.75);backdrop-filter:blur(10px);z-index:30;display:grid;place-items:center;padding:24px;animation:fadeIn .2s ease}.modal-panel{animation:modalIn .28s cubic-bezier(.2,.8,.2,1)}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes modalIn{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.setup-modal{width:min(505px,100%);position:relative;padding:29px 31px 27px;background:linear-gradient(140deg,#141b2a,#0e1420);border:1px solid rgba(177,165,255,.2);border-radius:20px;box-shadow:0 28px 100px rgba(0,0,0,.55)}.modal-close{position:absolute;right:17px;top:16px;width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--border);background:rgba(255,255,255,.025);border-radius:9px;color:#9aa5ba;font-size:21px;cursor:pointer;transition:background .2s,color .2s}.modal-close:hover{background:rgba(255,255,255,.09);color:white}.modal-eyebrow{font-size:8px}.setup-title-row{display:flex;align-items:center;gap:13px;margin-top:19px}.setup-subject-icon{width:45px;height:45px;display:grid;place-items:center;border-radius:13px;font-size:22px;background:rgba(163,138,255,.12);border:1px solid rgba(163,138,255,.25);color:#b6a4ff}.setup-title-row h2{font-family:Manrope,sans-serif;font-size:20px;margin:0 0 4px;letter-spacing:-.5px}.setup-title-row p{font-size:10px;color:#8d99b1;margin:0}.setup-divider{height:1px;background:var(--border);margin:23px 0 20px}.setup-block{margin:0 0 22px}.setup-label{font-size:11px;font-weight:700;margin-bottom:11px}.session-options{display:grid;gap:9px}.session-option{display:flex;align-items:center;gap:11px;position:relative;padding:12px;border:1px solid rgba(164,177,209,.13);border-radius:12px;background:rgba(255,255,255,.015);cursor:pointer;transition:border .2s,background .2s}.session-option.selected{border-color:rgba(159,133,255,.55);background:rgba(139,114,255,.075)}.session-option input{position:absolute;opacity:0;pointer-events:none}.session-radio{width:15px;height:15px;border:1px solid #56617c;border-radius:50%;flex-shrink:0;position:relative}.session-option.selected .session-radio{border-color:#a390ff}.session-option.selected .session-radio:after{content:"";position:absolute;inset:3px;background:#a390ff;border-radius:50%}.session-copy{display:grid;gap:5px}.session-copy b{font-size:10px}.session-copy small{font-size:9px;color:#8995ad}.session-badge{margin-left:auto;font-size:7px;letter-spacing:.8px;font-weight:700;color:#b7a8ff;padding:5px 6px;border-radius:5px;background:rgba(139,114,255,.12)}.timer-block{display:flex;align-items:center;justify-content:space-between;padding-top:3px}.timer-block .setup-label{margin-bottom:5px}.setup-hint{font-size:9px;color:#8995ad;margin:0}.toggle-switch{position:relative;display:flex;align-items:center;gap:8px;cursor:pointer}.toggle-switch input{position:absolute;opacity:0}.toggle-slider{width:35px;height:19px;border-radius:20px;background:#343c50;border:1px solid #48516a;position:relative;transition:background .2s}.toggle-slider:before{content:"";position:absolute;width:13px;height:13px;left:2px;top:2px;border-radius:50%;background:#bec7d7;transition:transform .2s,background .2s}.toggle-switch input:checked+.toggle-slider{background:#8063ed;border-color:#977aff}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(16px);background:white}.toggle-state{font-size:8px;font-weight:700;color:#a5b0c4;min-width:18px}.setup-note{display:flex;gap:9px;padding:12px;border-radius:10px;background:rgba(100,227,211,.045);border:1px solid rgba(100,227,211,.1);margin-bottom:18px}.setup-note>span{font-size:14px;color:var(--cyan);flex-shrink:0}.setup-note p{font-size:9px;line-height:1.65;color:#95a3b7;margin:0}.setup-start-button{width:100%;justify-content:space-between;padding:14px 16px}
/* Exam workspace */.exam-screen,.results-screen{position:fixed;inset:0;z-index:20;background:#0b0e17;overflow:auto}.exam-topbar,.results-topbar{height:76px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid rgba(164,177,209,.12);background:rgba(12,16,26,.95);position:sticky;top:0;z-index:3;backdrop-filter:blur(15px)}.exam-brand .brand-icon,.results-topbar .brand-icon{width:32px;height:32px;border-radius:10px}.exam-brand .brand-icon span,.results-topbar .brand-icon span{font-size:20px}.exam-brand .brand-wordmark,.results-topbar .brand-wordmark{font-size:14px}.exam-brand .brand-wordmark small,.results-topbar .brand-wordmark small{font-size:7px}.exam-subject-heading{display:flex;align-items:center;gap:10px;margin-left:auto;margin-right:auto}.exam-subject-mark{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:rgba(163,138,255,.1);color:#b8a7ff;font-size:17px}.exam-subject-heading b{display:block;font-size:11px}.exam-subject-heading small{display:block;font-size:8px;color:#8490a9;margin-top:3px}.exam-top-actions{display:flex;align-items:center;gap:14px}.timer-box{display:flex;gap:8px;align-items:center;padding:7px 11px;border:1px solid rgba(164,177,209,.12);border-radius:10px;background:rgba(255,255,255,.02)}.timer-icon{font-size:17px;color:var(--cyan)}.timer-box small{font-size:6px;letter-spacing:1px;color:#8995ad;display:block}.timer-box b{display:block;font-size:13px;font-variant-numeric:tabular-nums;margin-top:2px}.timer-box.timer-warning{border-color:rgba(255,151,131,.35);background:rgba(255,101,101,.06)}.timer-box.timer-warning .timer-icon,.timer-box.timer-warning b{color:#ff9c8d}.button-submit-top{padding:10px 13px;background:rgba(255,255,255,.03);border-color:rgba(164,177,209,.18);font-size:9px}.button-submit-top:hover{border-color:rgba(255,147,153,.4);background:rgba(255,104,112,.06)}.exam-layout{min-height:calc(100vh - 76px);display:grid;grid-template-columns:275px minmax(0,1fr)}.question-sidebar{padding:26px 21px 20px;border-right:1px solid rgba(164,177,209,.1);display:flex;flex-direction:column;min-height:calc(100vh - 76px);background:rgba(13,18,29,.55)}.sidebar-progress-head{display:flex;justify-content:space-between;align-items:center}.side-label{font-size:8px;letter-spacing:1.4px;color:#8491a9;font-weight:700}.sidebar-progress-head h3{font-family:Manrope,sans-serif;font-size:26px;letter-spacing:-1px;margin:8px 0 14px}.sidebar-progress-head h3 small{font-family:'DM Sans',sans-serif;font-weight:500;font-size:10px;color:#8290a8;letter-spacing:0}.progress-ring{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(var(--cyan) 0deg,rgba(164,177,209,.12) 0deg);position:relative}.progress-ring:after{content:"";position:absolute;inset:4px;border-radius:50%;background:#111827}.progress-ring span{font-size:8px;font-weight:700;z-index:1}.progress-bar{height:4px;background:#252d40;border-radius:10px;overflow:hidden}.progress-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,#8c70ff,#64e3d3);border-radius:10px;transition:width .3s}.question-map-head{display:flex;align-items:center;justify-content:space-between;margin:27px 0 14px;font-size:7px;letter-spacing:1.1px;font-weight:700;color:#8a96ad}.map-legend{font-size:7px;letter-spacing:0;font-weight:500;color:#7f8ca5;display:flex;align-items:center;gap:5px}.map-legend i{width:6px;height:6px;border-radius:2px;background:#7560d7}.question-map{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;align-content:start;max-height:calc(100vh - 330px);overflow-y:auto;padding:1px 2px 5px}.map-question{height:33px;border-radius:8px;border:1px solid rgba(164,177,209,.13);background:rgba(255,255,255,.015);font-size:9px;color:#9ca8bd;cursor:pointer;transition:background .18s,border .18s,transform .18s;position:relative}.map-question:hover{border-color:rgba(163,138,255,.5);transform:translateY(-1px)}.map-question.answered{background:rgba(121,96,228,.16);border-color:rgba(154,120,255,.3);color:#d2caff}.map-question.current{border-color:#a28bff;background:rgba(139,114,255,.18);box-shadow:0 0 0 1px rgba(139,114,255,.1)}.map-question.flagged:after{content:"";position:absolute;top:3px;right:4px;width:4px;height:4px;background:#f4c675;border-radius:50%}.sidebar-bottom{margin-top:auto;padding-top:18px}.legend-row{display:flex;align-items:center;gap:7px;font-size:7px;color:#8c98ad}.legend-dot{width:7px;height:7px;border-radius:3px;background:rgba(121,96,228,.65)}.legend-current{background:#9b84ff;margin-left:3px}.legend-flagged{background:#f4c675;margin-left:7px}.sidebar-submit{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 13px;border:1px solid rgba(255,150,153,.22);background:rgba(255,120,130,.04);border-radius:9px;font-size:9px;font-weight:700;margin-top:22px;cursor:pointer;transition:background .2s,border-color .2s}.sidebar-submit:hover{background:rgba(255,120,130,.1);border-color:rgba(255,150,153,.4)}.sidebar-submit span{font-size:15px}.sidebar-bottom p{font-size:8px;color:#738099;line-height:1.7;margin:12px 0 0}.question-main{padding:38px 45px 35px;min-width:0}.question-main-inner{max-width:790px;margin:0 auto;min-height:calc(100vh - 150px);display:flex;flex-direction:column}.question-topline{display:flex;align-items:center;justify-content:space-between;gap:15px}.question-tags{display:flex;align-items:center;gap:8px}.question-subject-tag{font-size:7px;letter-spacing:1px;font-weight:700;color:#b5a5ff;background:rgba(139,114,255,.1);border:1px solid rgba(139,114,255,.16);border-radius:6px;padding:7px 8px}.difficulty-pill{font-size:7px;letter-spacing:.8px;font-weight:700;color:#9aa7bd;background:rgba(164,177,209,.06);border:1px solid rgba(164,177,209,.1);border-radius:6px;padding:7px 8px}.difficulty-pill.easy{color:#77d9b6}.difficulty-pill.hard{color:#ffa995}.flag-button{border:1px solid transparent;background:transparent;color:#8491aa;font-size:9px;cursor:pointer;padding:8px 9px;border-radius:8px;transition:color .2s,background .2s}.flag-button span{font-size:13px;margin-right:5px}.flag-button:hover,.flag-button.flagged{color:#f4c675;background:rgba(244,198,117,.07)}.question-progress-label{display:flex;justify-content:space-between;margin-top:32px;font-size:8px;letter-spacing:.7px;font-weight:700;color:#8c98af}.question-progress-label span:last-child{letter-spacing:0;font-weight:500;color:#75829a}.question-progress-bar{height:3px;background:rgba(164,177,209,.1);border-radius:10px;margin-top:11px;overflow:hidden}.question-progress-bar span{display:block;width:0;height:100%;background:linear-gradient(90deg,#9677ff,#65e3d3);border-radius:10px;transition:width .25s}.question-content{margin-top:29px;flex:1}.question-content .passage-card{padding:18px 19px;border:1px solid rgba(164,177,209,.12);border-radius:13px;background:rgba(255,255,255,.02);margin-bottom:23px;color:#b5bfd1;font-size:11px;line-height:1.9}.passage-card .passage-label{font-size:7px;letter-spacing:1.3px;color:#8e9ab3;font-weight:700;margin-bottom:8px}.question-content h2{font-family:Manrope,sans-serif;font-size:clamp(19px,2.4vw,27px);line-height:1.44;letter-spacing:-.55px;font-weight:700;margin:0 0 22px;max-width:750px}.question-instruction{font-size:10px;line-height:1.7;color:#8e9bb2;margin:-11px 0 20px}.question-visual{border:1px solid rgba(164,177,209,.11);background:rgba(255,255,255,.02);border-radius:13px;padding:14px;margin-bottom:22px;overflow:hidden}.question-visual svg{display:block;width:100%;max-height:215px}.options-list{display:grid;gap:10px;max-width:740px}.answer-option{display:flex;align-items:center;gap:13px;width:100%;min-height:52px;padding:12px 15px;text-align:left;border:1px solid rgba(164,177,209,.13);border-radius:12px;background:rgba(255,255,255,.018);color:#c6cede;cursor:pointer;transition:background .18s,border-color .18s,transform .18s}.answer-option:hover{border-color:rgba(159,135,255,.5);background:rgba(139,114,255,.055);transform:translateX(2px)}.answer-option.selected{border-color:#9e87ff;background:rgba(139,114,255,.12);color:white;box-shadow:inset 0 0 0 1px rgba(139,114,255,.08)}.option-letter{width:27px;height:27px;flex-shrink:0;display:grid;place-items:center;border:1px solid rgba(164,177,209,.19);border-radius:8px;background:rgba(255,255,255,.025);font-size:10px;font-weight:700;color:#98a5bd;transition:background .18s,border .18s,color .18s}.answer-option.selected .option-letter{background:#8b70f3;border-color:#a590ff;color:white}.option-text{font-size:11px;line-height:1.55}.dropdown-question{display:flex;flex-wrap:wrap;align-items:center;gap:10px;color:#c5cede;font-size:13px;line-height:2;max-width:720px}.dropdown-question select{max-width:100%;padding:10px 35px 10px 12px;background:#171f30;border:1px solid rgba(164,177,209,.2);border-radius:9px;color:#f3f5fb;outline-offset:2px;cursor:pointer}.dropdown-question select:focus{border-color:#a18aff}.drag-area{display:grid;gap:13px;max-width:690px}.drag-bank{display:flex;flex-wrap:wrap;gap:8px}.drag-tile{padding:10px 13px;border:1px solid rgba(164,177,209,.18);border-radius:9px;background:#182033;color:#c8d0e1;font-size:10px;cursor:grab;user-select:none;transition:background .2s,border .2s,opacity .2s}.drag-tile:hover{border-color:rgba(155,131,255,.5)}.drag-tile.used{opacity:.38;cursor:not-allowed}.drop-target{min-height:72px;display:flex;align-items:center;justify-content:center;text-align:center;border:1px dashed rgba(160,139,255,.42);background:rgba(139,114,255,.035);border-radius:12px;padding:13px;color:#8e9bb2;font-size:10px;transition:background .2s,border .2s}.drop-target.drag-over{border-color:#a18aff;background:rgba(139,114,255,.11)}.drop-target.has-answer{border-style:solid;background:rgba(139,114,255,.09);color:#ddd6ff}.drop-target strong{display:block;font-size:11px;color:#e3dfff}.drop-target small{display:block;margin-top:5px;color:#9185c5;font-size:8px}.drag-tip{font-size:8px;color:#7886a0;line-height:1.7}.hotspot-visual{position:relative;width:min(100%,500px);margin:auto;aspect-ratio:1.7;min-height:190px}.hotspot-visual svg{width:100%;height:100%;max-height:none}.hotspot-zone{cursor:pointer;transition:fill .2s,stroke .2s;outline:none}.hotspot-zone:hover{fill:rgba(160,138,255,.25);stroke:#c4b6ff}.hotspot-zone.selected{fill:rgba(160,138,255,.32);stroke:#c4b6ff;stroke-width:3}.hotspot-instruction{font-size:9px;color:#8794ac;margin:12px 0 0;text-align:center}.essay-box{width:100%;min-height:220px;resize:vertical;border:1px solid rgba(164,177,209,.17);border-radius:12px;padding:14px 15px;background:rgba(255,255,255,.02);color:#e2e7f0;font-size:11px;line-height:1.8;outline:none;transition:border .2s,background .2s}.essay-box:focus{border-color:rgba(159,135,255,.7);background:rgba(139,114,255,.035)}.essay-meta{display:flex;justify-content:space-between;gap:10px;font-size:8px;color:#78859f;margin-top:9px}.essay-rubric{padding:13px 14px;border-radius:10px;background:rgba(100,227,211,.04);border:1px solid rgba(100,227,211,.12);margin-bottom:15px;font-size:9px;color:#a1afc4;line-height:1.8}.essay-rubric b{color:#bff4ec}.question-feedback{padding:14px 15px;border-radius:10px;border:1px solid rgba(100,227,211,.2);background:rgba(100,227,211,.05);font-size:10px;line-height:1.8;color:#b6c9cf;margin:22px 0 0}.question-feedback strong{color:#8ce9dc}.question-actions{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid rgba(164,177,209,.1);padding-top:19px;margin-top:29px}.button-back{background:transparent;color:#9ca8bc;border-color:rgba(164,177,209,.15);padding:12px 15px}.button-back:disabled{opacity:.35;cursor:not-allowed;transform:none}.question-actions-right{display:flex;align-items:center;gap:16px}.autosave-note{font-size:8px;color:#7e8ca4}.autosave-note span{color:var(--mint);margin-right:4px}.question-actions .button-primary{padding:12px 15px}.question-content .section-break{padding:13px 15px;border-radius:10px;background:rgba(139,114,255,.07);border:1px solid rgba(139,114,255,.16);color:#aa9bff;font-size:9px;margin-bottom:20px}
/* math utility calculator */.question-top-actions{display:flex;align-items:center;gap:7px}.calc-toggle{border:1px solid rgba(127,180,255,.24);background:rgba(127,180,255,.06);color:#a8c8ff;border-radius:8px;padding:8px 10px;font-size:8px;font-weight:700;cursor:pointer;transition:background .2s,border-color .2s}.calc-toggle:hover{background:rgba(127,180,255,.13);border-color:rgba(127,180,255,.45)}.calc-panel{width:min(100%,285px);margin:15px 0 5px auto;padding:13px;border:1px solid rgba(127,180,255,.24);border-radius:13px;background:linear-gradient(145deg,#172238,#101827);box-shadow:0 13px 40px rgba(0,0,0,.2);animation:modalIn .2s ease}.calc-header{display:flex;align-items:center;justify-content:space-between;font-size:7px;letter-spacing:1px;font-weight:700;color:#92addb;margin-bottom:10px}.calc-header button{border:0;background:transparent;color:#8798b8;font-size:17px;cursor:pointer}.calculator-display{width:100%;height:43px;border:1px solid rgba(127,180,255,.15);border-radius:8px;background:#0b111d;color:#eaf1ff;text-align:right;padding:8px 10px;font-size:20px;font-variant-numeric:tabular-nums;margin-bottom:9px}.calc-keypad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.calc-keypad button{height:31px;border:1px solid rgba(164,177,209,.11);border-radius:6px;background:rgba(255,255,255,.04);color:#cad4e7;font-size:10px;cursor:pointer;transition:background .15s,border-color .15s}.calc-keypad button:hover{background:rgba(127,180,255,.12);border-color:rgba(127,180,255,.25)}.calc-keypad .calc-operator{background:rgba(127,180,255,.09);color:#a8c8ff}.calc-keypad .calc-special{color:#9baac3;background:rgba(255,255,255,.025)}.calc-keypad .calc-equals{grid-row:span 2;height:auto;background:#8164ed;border-color:#947cff;color:white}.calc-keypad .calc-zero{grid-column:span 2}/* results */.results-topbar{position:sticky}.results-complete{display:flex;align-items:center;gap:9px;font-size:10px;color:#a5b3c7}.results-complete span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(105,226,183,.13);color:var(--mint)}.results-container{width:min(930px,calc(100% - 44px));margin:44px auto 60px}.results-kicker{margin-bottom:12px}.results-container>h1{font-family:Manrope,sans-serif;font-size:39px;letter-spacing:-1.5px;line-height:1.15;margin-bottom:12px}.results-container>h1 span{color:#a796ff}.results-intro{font-size:11px;color:#929eb4;margin-bottom:27px;line-height:1.7}.results-summary-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:15px}.score-result-card,.metrics-result-card{border:1px solid rgba(164,177,209,.12);border-radius:17px;background:linear-gradient(145deg,rgba(22,29,46,.96),rgba(15,20,32,.96));padding:23px;position:relative;overflow:hidden}.score-card-glow{position:absolute;right:-50px;top:-75px;width:210px;height:180px;background:rgba(139,114,255,.12);filter:blur(45px);pointer-events:none}.score-label{font-size:8px;font-weight:700;letter-spacing:1.3px;color:#9daac1;position:relative}.score-number-row{display:flex;align-items:baseline;gap:7px;margin-top:12px;position:relative}.score-number-row strong{font-family:Manrope,sans-serif;font-size:67px;line-height:1;letter-spacing:-3px}.score-number-row>span{font-size:14px;color:#73809a}.score-range{display:flex;align-items:center;gap:11px;margin-top:21px;font-size:8px;color:#7c89a2}.score-range>div{height:5px;background:#293149;border-radius:10px;overflow:hidden;flex:1}.score-range i{display:block;height:100%;width:0;background:linear-gradient(90deg,#9277ff,#64e3d3);border-radius:10px;transition:width .7s}.score-card-note{font-size:10px;font-weight:600;color:#c9c1ff;margin-top:18px}.score-scale-caption{font-size:8px;color:#77839a;margin-top:6px}.metrics-result-card{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:12px}.metric-box{display:flex;align-items:center;gap:11px;padding:14px 10px;border-radius:11px;background:rgba(255,255,255,.018)}.metric-icon{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:rgba(105,226,183,.1);color:var(--mint);font-size:15px}.accuracy-icon{color:#b09cff;background:rgba(139,114,255,.11)}.time-icon{color:#7fb4ff;background:rgba(127,180,255,.1)}.weight-icon{color:#f3c77e;background:rgba(243,199,126,.1)}.metric-box strong{display:block;font-family:Manrope,sans-serif;font-size:20px;letter-spacing:-.5px}.metric-box small{display:block;font-size:8px;color:#8794ab;margin-top:4px}.results-review-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:47px 0 17px}.results-review-head h2{font-size:22px;margin:7px 0 6px}.review-filters{display:flex;gap:5px;border:1px solid rgba(164,177,209,.12);background:rgba(255,255,255,.018);padding:4px;border-radius:9px}.review-filter{border:0;background:transparent;padding:8px 10px;border-radius:6px;font-size:8px;color:#8b98ae;cursor:pointer}.review-filter.active{background:rgba(139,114,255,.16);color:#d1c7ff}.results-review-list{display:grid;gap:11px}.review-card{border:1px solid rgba(164,177,209,.12);border-radius:13px;background:rgba(255,255,255,.018);overflow:hidden}.review-card-head{display:flex;align-items:start;gap:11px;padding:15px 16px}.review-status{display:grid;place-items:center;flex-shrink:0;width:25px;height:25px;border-radius:8px;font-size:11px;font-weight:700;background:rgba(255,134,131,.1);color:#ff9d91}.review-status.correct{background:rgba(105,226,183,.1);color:var(--mint)}.review-status.pending{background:rgba(243,199,126,.1);color:#f3c77e}.review-head-copy{flex:1}.review-head-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.review-head-meta span{font-size:7px;letter-spacing:.6px;font-weight:700;color:#9f8dff}.review-head-meta .review-difficulty{color:#8895ad}.review-head-copy h3{font-size:10px;font-weight:600;line-height:1.7;margin:0}.review-details{border-top:1px solid rgba(164,177,209,.08);padding:13px 16px 16px 52px;font-size:9px;line-height:1.85;color:#9caac0}.review-details b{color:#c2cce0}.review-details p{margin:0 0 7px}.review-details p:last-child{margin-bottom:0}.essay-pending-note{padding:12px;border-radius:8px;background:rgba(243,199,126,.04);border:1px solid rgba(243,199,126,.13);color:#c0b49e}.results-actions{display:flex;justify-content:space-between;gap:14px;margin-top:25px}.results-actions .button{font-size:10px}.results-disclaimer{margin-top:24px;padding-top:17px;border-top:1px solid rgba(164,177,209,.09);font-size:8px;line-height:1.8;color:#75819a}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,15px);opacity:0;pointer-events:none;z-index:100;max-width:calc(100% - 30px);background:#20293b;border:1px solid rgba(164,177,209,.17);border-radius:11px;box-shadow:0 14px 42px rgba(0,0,0,.4);padding:12px 16px;color:#e8edf7;font-size:10px;line-height:1.5;transition:opacity .25s,transform .25s}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(max-width:1050px){.app-shell{width:calc(100% - 46px)}.top-nav{margin-left:10px;gap:23px}.hero{grid-template-columns:1fr .82fr}.hero h1{font-size:44px}.hero-art{transform:scale(.92);transform-origin:center right}.subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-card{min-height:275px}.subject-card h3{margin-top:80px}.how-section{gap:30px}.exam-layout{grid-template-columns:235px minmax(0,1fr)}.question-main{padding:32px 28px}.question-sidebar{padding:23px 17px}}
@media(max-width:720px){.app-shell{width:calc(100% - 34px)}.topbar{height:72px;gap:12px}.brand-icon{width:33px;height:33px;border-radius:11px}.brand-icon span{font-size:20px}.brand-wordmark{font-size:14px}.brand-wordmark small{font-size:7px;letter-spacing:1.1px}.top-nav{gap:14px;margin:0}.nav-link{font-size:10px}.header-right{gap:7px}.offline-pill{display:none}.avatar-button{width:29px;height:29px}.hero{grid-template-columns:1fr;padding:48px 0 24px;min-height:0}.hero-copy{max-width:560px}.hero h1{font-size:clamp(36px,7vw,47px)}.hero-description{font-size:12px;max-width:500px}.hero-art{height:265px;max-width:490px;width:100%;justify-self:center;transform:scale(.9);transform-origin:center center;margin-top:3px}.hero-score-card{width:250px;min-height:195px}.note-top{right:4px;top:24px}.note-bottom{left:0;bottom:17px}.section-head{margin-top:25px;align-items:start}.section-head h2{font-size:22px}.bank-indicator{font-size:8px;white-space:nowrap;padding-top:21px}.subject-grid{gap:11px}.subject-card{padding:15px 14px 13px;min-height:270px}.subject-card h3{font-size:13px;margin-top:81px}.subject-card p{font-size:9px;min-height:31px}.subject-meta{font-size:8px}.subject-start{font-size:9px}.subject-art{transform:scale(.85);transform-origin:top right;right:6px}.subject-card:hover .subject-art{transform:scale(.9)}.how-section{grid-template-columns:1fr;gap:24px;padding:67px 0 54px}.how-heading h2{font-size:24px;max-width:500px}.steps-grid{gap:17px}.step-item p{font-size:9px}.site-footer{flex-wrap:wrap}.site-footer>p{order:3;width:100%;line-height:1.7}.setup-modal{padding:25px 21px 21px}.setup-title-row h2{font-size:18px}.session-badge{display:none}.exam-topbar{height:67px;padding:0 14px;gap:10px}.exam-brand .brand-icon{width:28px;height:28px}.exam-brand .brand-wordmark{font-size:12px}.exam-brand .brand-wordmark small{font-size:6px}.exam-subject-heading{gap:7px;max-width:145px}.exam-subject-mark{width:27px;height:27px;font-size:13px}.exam-subject-heading b{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:115px}.exam-subject-heading small{font-size:7px}.exam-top-actions{gap:6px}.timer-box{padding:6px 7px;gap:5px}.timer-icon{font-size:14px}.timer-box small{font-size:5px;letter-spacing:.5px}.timer-box b{font-size:11px}.button-submit-top{font-size:8px;padding:8px}.exam-layout{display:block;min-height:calc(100vh - 67px)}.question-sidebar{display:none}.question-main{padding:23px 17px 22px}.question-main-inner{min-height:calc(100vh - 112px)}.question-topline{align-items:start}.question-top-actions{gap:3px}.calc-toggle{font-size:7px;padding:6px 7px}.question-subject-tag,.difficulty-pill{font-size:6px;padding:6px}.flag-button{font-size:8px;padding:5px 1px}.flag-button span{font-size:12px}.question-progress-label{margin-top:24px}.question-content{margin-top:24px}.question-content h2{font-size:21px;line-height:1.4}.question-content .passage-card{font-size:10px;padding:14px}.answer-option{min-height:49px;padding:10px 11px;gap:10px}.option-letter{width:25px;height:25px}.option-text{font-size:10px}.question-actions{margin-top:23px;padding-top:15px}.question-actions .button{font-size:9px;padding:11px 12px;gap:8px}.question-actions-right{gap:8px}.autosave-note{display:none}.question-progress-label{font-size:7px}.question-progress-label span:last-child{font-size:7px}.results-topbar{height:65px;padding:0 15px}.results-complete{font-size:8px}.results-complete span{width:18px;height:18px}.results-container{width:calc(100% - 34px);margin:30px auto 40px}.results-container>h1{font-size:32px}.results-summary-grid{grid-template-columns:1fr}.score-result-card{padding:20px}.score-number-row strong{font-size:57px}.metrics-result-card{grid-template-columns:1fr 1fr}.results-review-head{align-items:start;flex-direction:column;margin-top:35px}.review-filters{align-self:flex-start}.review-head-copy h3{font-size:9px}.review-details{padding-left:16px}.results-actions{flex-direction:column-reverse}.results-actions .button{width:100%}}
@media(max-width:430px){.topbar{gap:9px}.top-nav{gap:10px}.nav-link{font-size:9px}.brand{gap:7px}.brand-wordmark{font-size:12px;letter-spacing:.8px}.brand-wordmark small{font-size:6px;letter-spacing:.8px}.brand-icon{width:29px;height:29px}.brand-icon span{font-size:17px}.hero h1{font-size:35px;letter-spacing:-1.4px}.hero-actions{gap:8px}.hero-actions .button{font-size:10px;padding:12px 13px;gap:10px}.hero-footnote{font-size:8px;gap:6px}.hero-art{margin-left:-5px;width:calc(100% + 10px);transform:scale(.83);height:245px}.section-head{display:block}.bank-indicator{padding-top:12px}.subject-grid{gap:9px}.subject-card{padding:13px 11px 12px;min-height:269px}.subject-card-top .subject-symbol{width:27px;height:27px}.subject-code{font-size:7px}.subject-card h3{font-size:12px;margin-top:76px}.subject-card p{font-size:8.5px;line-height:1.55;min-height:39px}.subject-meta{font-size:7px;gap:3px}.meta-dot{margin-right:3px}.subject-start{font-size:8px;padding:9px 8px}.subject-art{transform:scale(.76);right:4px;top:34px}.subject-card:hover .subject-art{transform:scale(.81)}.steps-grid{gap:11px}.step-item h3{font-size:10px}.step-item p{font-size:8px}.step-icon{width:30px;height:30px}.exam-brand .brand-wordmark{display:none}.exam-brand .brand-icon{width:29px;height:29px}.exam-subject-heading{margin-left:0;margin-right:auto}.exam-top-actions{margin-left:auto}.timer-box small{display:none}.timer-box b{font-size:11px;margin:0}.timer-box{padding:7px}.button-submit-top{font-size:7px;padding:8px 7px}.exam-topbar{gap:8px}.question-main{padding:20px 13px}.question-content h2{font-size:19px}.flag-button{font-size:7px}.question-actions .button{padding:10px 9px}.question-actions-right{gap:4px}.results-container>h1{font-size:29px}.metrics-result-card{padding:8px;gap:5px}.metric-box{padding:12px 7px;gap:8px}.metric-icon{width:26px;height:26px}.metric-box strong{font-size:17px}.setup-modal{padding:24px 17px 18px}.session-copy small{font-size:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}


/* Clean, study-first visual refresh */
:root{--bg:#f5f6f3;--bg-soft:#f0f2ee;--panel:#ffffff;--panel-soft:#f8f9f6;--border:#dfe4dd;--text:#232a25;--muted:#626c64;--subtle:#7b857c;--violet:#486c58;--violet-strong:#355846;--cyan:#6e927c;--mint:#4d7860;--pink:#9a6d66;--blue:#547b9b;--radius:12px;--shadow:0 12px 34px rgba(27,42,31,.08);color:var(--text);background:var(--bg)}
html{scroll-padding-top:75px}
body{background:var(--bg);color:var(--text)}
.ambient,.hero-art,.subject-art,.subject-card:before,.subject-card:after,.subject-card-top .subject-symbol:after,.hero h1>span{display:none!important}
.app-shell{width:min(1120px,calc(100% - 48px))}
.topbar{height:76px;border-bottom:1px solid var(--border);gap:22px}
.brand-icon{width:34px;height:34px;border-radius:8px;background:#355846;box-shadow:none;transform:none}
.brand-icon:after{display:none}.brand-icon span{font-size:21px;transform:none}
.brand-wordmark{font-size:15px;letter-spacing:.5px}.brand-wordmark>span{color:var(--text)}.brand-wordmark small{color:var(--subtle);font-size:8px;letter-spacing:1px}
.top-nav{margin-left:18px;gap:25px}.nav-link{font-size:12px;color:var(--muted)}.nav-link:after{background:var(--accent);bottom:-10px}.nav-link:hover,.nav-link.active{color:var(--text)}
.offline-pill{color:var(--muted);border-color:var(--border);background:#fff}.status-dot,.bank-led{background:#588165;box-shadow:none}.avatar-button{border:1px solid var(--border);background:#fff;color:var(--text);transition:background .15s}.avatar-button:hover{background:#eef2ed;transform:none}
.hero{display:block;min-height:0;padding:78px 0 57px;max-width:790px}.hero-copy{max-width:750px}.eyebrow,.section-kicker,.modal-eyebrow,.results-kicker{color:var(--muted);font-size:10px;letter-spacing:1.25px}.eyebrow-spark{display:none}.hero h1{font-family:inherit;font-size:clamp(36px,5vw,56px);letter-spacing:-1.9px;line-height:1.12;font-weight:750;margin:17px 0 18px;max-width:780px}.hero h1>span{display:inline!important;background:none!important;color:#456c54!important;-webkit-text-fill-color:#456c54!important}
.hero-description{color:var(--muted);font-size:15px;line-height:1.75;max-width:600px;margin-bottom:24px}.hero-actions{gap:10px}.button{border-radius:8px;padding:12px 16px;font-size:12px;font-weight:650;transition:background .15s,border-color .15s,transform .15s}.button:hover{transform:translateY(-1px)}.button-primary{background:#355846;color:#fff;box-shadow:none}.button-primary:hover{background:#294a38;box-shadow:none}.button-primary span{font-size:13px}.button-quiet{border-color:var(--border);background:#fff;color:var(--text)}.button-quiet:hover{border-color:#aab8ab;background:#f9faf8}.hero-footnote{margin-top:19px;font-size:11px;color:var(--muted);gap:8px}.tiny-check{color:#477657}.footnote-dot{color:#aab1aa}
.section-head{margin:5px 0 18px}.section-head h2,.how-heading h2,.results-review-head h2{font-family:inherit;font-size:25px;letter-spacing:-.6px;font-weight:700;color:var(--text)}.section-subtitle,.how-heading>p,.results-review-head p{font-size:13px;color:var(--muted);line-height:1.65}.bank-indicator{color:var(--muted);font-size:11px}.bank-indicator b{color:var(--text)}
.subject-grid{gap:14px}.subject-card{--accent:#5b7c65!important;min-height:0;padding:22px 20px 18px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:none;transition:border-color .15s,transform .15s}.subject-card:hover{transform:translateY(-2px);border-color:#b9c7bb;box-shadow:0 8px 18px rgba(31,52,36,.04)}.subject-card h3{margin:4px 0 9px!important;font-size:17px;line-height:1.35;color:var(--text);font-weight:700}.subject-card p{font-size:12px;line-height:1.7;color:var(--muted);min-height:59px}.subject-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px}.subject-card-top .subject-symbol{width:35px;height:35px;border:0;border-radius:8px;background:#eef2ed;color:#45664f;font-size:15px;box-shadow:none}.subject-code{color:var(--subtle);font-size:10px;letter-spacing:.4px}.subject-meta{font-size:11px;color:var(--muted);padding-top:13px;border-top:1px solid #edf0eb}.meta-dot{background:#79917e;box-shadow:none}.subject-start{border:1px solid var(--border);border-radius:7px;background:#fff;color:#2d513b;font-size:12px;padding:11px 12px;margin-top:14px;transition:background .15s,border-color .15s}.subject-start:hover{background:#f1f5f0;border-color:#c6d1c6;transform:none}
.how-section{padding:76px 0 64px;gap:50px;border-top:1px solid var(--border);margin-top:68px}.how-heading h2{font-size:27px}.steps-grid{gap:18px}.step-item{padding:18px 0;border-top:1px solid var(--border)}.step-number{color:#7c897d}.step-icon{background:#edf2ec;border-radius:8px;color:#45694f;box-shadow:none}.step-item h3{color:var(--text);font-size:14px}.step-item p{font-size:12px;line-height:1.7;color:var(--muted)}.site-footer{border-top:1px solid var(--border);padding:23px 0 28px}.site-footer>p{font-size:11px;color:var(--subtle)}.back-top{font-size:11px;color:var(--muted)}
.modal-backdrop{background:rgba(28,37,30,.38);backdrop-filter:blur(2px)}.modal-panel{background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 24px 60px rgba(22,38,27,.16);color:var(--text)}.modal-close{color:var(--muted);background:transparent}.modal-eyebrow{color:var(--muted)}.setup-title-row h2{color:var(--text);font-size:22px}.setup-title-row p,.setup-hint{color:var(--muted)}.setup-subject-icon{border-radius:9px!important}.setup-divider{background:var(--border)}.setup-label{color:var(--text);font-size:12px;letter-spacing:.2px}.session-option{border:1px solid var(--border);border-radius:9px;background:#fff}.session-option.selected{border-color:#688b71;background:#f6f9f5;box-shadow:none}.session-copy b{color:var(--text)}.session-copy small{color:var(--muted)}.session-badge{color:#456a50;background:#e7efe7}.session-radio{border-color:#b8c4b8}.session-option.selected .session-radio{border-color:#456c52;background:#456c52;box-shadow:inset 0 0 0 3px #fff}.setup-note{background:#f6f8f4;border:1px solid var(--border);color:var(--muted)}.toggle-slider{background:#dce2da}.toggle-switch input:checked+.toggle-slider{background:#5b7c65}.toggle-state{color:#45694f}
.exam-screen{background:#f5f6f3;color:var(--text)}.exam-topbar{height:72px;border-bottom:1px solid var(--border);background:#fff;box-shadow:none}.exam-subject-mark{background:#edf2ec!important;color:#42664d!important;border:1px solid #e0e7df!important}.exam-subject-heading b{color:var(--text)}.exam-subject-heading small,.exam-brand .brand-wordmark small{color:var(--subtle)}.timer-box{background:#f7f8f5;border:1px solid var(--border);border-radius:8px}.timer-icon,.timer-box b{color:var(--text)}.timer-box small{color:var(--muted)}.button-submit-top{background:#355846;border-radius:7px;color:#fff}.button-submit-top:hover{background:#294a38;box-shadow:none}
.exam-layout{background:#f5f6f3;grid-template-columns:260px minmax(0,1fr);gap:24px;padding:24px max(24px,calc((100vw - 1120px)/2));}.question-sidebar{position:sticky;top:18px;height:calc(100vh - 108px);max-height:790px;border:1px solid var(--border);border-radius:11px;background:#fff;padding:20px 17px;box-shadow:none}.side-label,.question-map-head>span:first-child{color:var(--muted)}.sidebar-progress-head h3{color:var(--text)}.sidebar-progress-head h3 small{color:var(--muted)}.progress-ring{background:conic-gradient(var(--accent) 0deg,#e8ece8 0deg)!important;border:1px solid #e3e8e1}.progress-ring:after{background:#fff}.progress-ring span{color:var(--text)}.progress-bar,.question-progress-bar{background:#e9ede8}.progress-bar>span,.question-progress-bar>span{background:#66856d}.question-map-head{border-color:var(--border)}.map-legend{color:var(--muted)}.map-legend i{background:#66856d}.map-question{border-color:#e0e5de;background:#fff;color:#57645a;border-radius:6px}.map-question:hover{border-color:#8ca692;background:#f7faf6}.map-question.current{border-color:#456c52!important;background:#e9f0e8!important;color:#294b34!important;box-shadow:none}.map-question.answered{border-color:#9db6a1;background:#f1f6f0;color:#355c3e}.map-question.flagged{box-shadow:inset 0 -3px #b48a4b}.map-question.locked{opacity:.35;cursor:not-allowed;background:#f5f6f3}.sidebar-bottom{border-color:var(--border)}.sidebar-bottom p{color:var(--muted);font-size:10px;line-height:1.6}.sidebar-submit{border:1px solid #355846;background:#355846;color:white;border-radius:7px}.sidebar-submit:hover{background:#294a38;box-shadow:none}
.question-main{background:transparent}.question-main-inner{max-width:900px;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:12px;padding:34px 40px;box-shadow:none}.question-subject-tag,.difficulty-pill{background:#f0f3ef;border:1px solid #e4e8e1;border-radius:5px;color:#506457;font-size:10px;letter-spacing:.35px}.difficulty-pill{color:#617066}.question-progress-label{color:var(--muted)}.question-progress-label span:last-child{color:#53675a}.question-content{margin-top:27px}.question-content h2{font-family:inherit;color:var(--text);font-size:25px;letter-spacing:-.45px;line-height:1.45}.question-type-label{color:var(--muted)!important;font-size:10px!important;letter-spacing:.8px!important}.question-instruction{color:var(--muted);font-size:13px;line-height:1.7}.passage-card{background:#f8f9f6;border-color:var(--border);color:#3d463f;border-radius:8px;font-size:13px;line-height:1.8}.passage-label{color:#657469}.answer-option{border:1px solid var(--border);background:#fff;border-radius:8px;color:var(--text);min-height:54px;padding:13px 15px;transition:background .12s,border-color .12s}.answer-option:hover{border-color:#a2b6a4;background:#f8faf7}.answer-option.selected{border-color:#52795d;background:#f0f5ef;box-shadow:none}.option-letter{background:#f2f4f0;border:1px solid #dce3da;color:#59665b;border-radius:6px}.answer-option.selected .option-letter{background:#456c52;border-color:#456c52;color:#fff}.option-text{font-size:13px;line-height:1.55}.dropdown-question{color:var(--muted)}.dropdown-question select{background:#fff;color:var(--text);border:1px solid var(--border);border-radius:7px}.drag-tile{border:1px solid var(--border);background:#fff;color:var(--text);border-radius:7px}.drag-tile:hover,.drag-tile.used{background:#f0f5ef;border-color:#8eac94;color:#2f5137}.drop-target{border:1px dashed #9cae9f;background:#f9faf8;color:var(--muted);border-radius:8px}.drop-target.has-answer{background:#f0f5ef;border-color:#88a58d;color:#34543a}.hotspot-instruction,.drag-tip{color:var(--muted)}.hotspot-zone.selected rect,.hotspot-zone.selected{stroke:#54785b!important}.essay-box{background:#fff;color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:14px;line-height:1.7}.essay-rubric{background:#f6f8f4;border-color:var(--border);color:var(--muted);border-radius:8px}.essay-rubric b{color:var(--text)}.question-actions{border-color:var(--border)}.question-actions .button{font-size:12px}.button-back{background:#fff;border-color:var(--border);color:var(--text);border-radius:7px}.button-back:hover{background:#f7f9f5}.autosave-note{color:#69806e}.flag-button{color:var(--muted)}.flag-button.flagged{color:#986c2b}
.results-screen{background:#f5f6f3;color:var(--text)}.results-topbar{background:#fff;border-bottom:1px solid var(--border)}.results-complete{color:var(--muted)}.results-complete span{background:#e8f0e7;color:#406a4b}.results-container>h1{font-family:inherit;font-size:41px;letter-spacing:-1.2px;color:var(--text)}.results-container>h1 span{color:#456c54!important;background:none!important;-webkit-text-fill-color:#456c54!important}.results-intro{color:var(--muted)}.score-result-card{background:#fff;border:1px solid var(--border);border-radius:12px;box-shadow:none}.score-card-glow{display:none}.score-label{color:var(--muted)}.score-number-row strong{color:var(--text)}.score-number-row span{color:var(--muted)}.score-range>div{background:#e5ebe4}.score-range i{background:#66856d}.score-card-note{color:#456c54}.score-scale-caption,.metric-box small{color:var(--muted)}.metrics-result-card{background:#fff;border:1px solid var(--border);border-radius:12px}.metric-box{background:#f8f9f7;border-radius:8px}.metric-box strong{color:var(--text)}.metric-icon{background:#eaf1e9;color:#456c54;border-radius:7px}.accuracy-icon{background:#eef1eb;color:#5b6e5e}.time-icon{background:#eaf0f4;color:#55778d}.weight-icon{background:#f3eee4;color:#907449}.review-filters{border:1px solid var(--border);background:#fff;border-radius:8px}.review-filter{color:var(--muted)}.review-filter.active{background:#edf3ec;color:#355846}.review-card{border:1px solid var(--border);border-radius:10px;background:#fff}.review-status{background:#f8eceb;color:#9c5c56;border-radius:6px}.review-status.correct{background:#eaf2e8;color:#426b4a}.review-status.pending{background:#f5f0e4;color:#8a6b35}.review-head-meta span{color:#607d65}.review-head-copy h3{color:var(--text);font-size:13px}.review-details{border-color:#edf0ea;color:var(--muted);font-size:12px}.review-details b{color:var(--text)}.essay-pending-note{background:#faf7ef;border-color:#eee4cd;color:#786b51}.results-actions .button-quiet{background:#fff;border-color:var(--border)}.results-disclaimer{border-color:var(--border);color:var(--subtle);font-size:10px}.toast{background:#fff;border:1px solid var(--border);box-shadow:0 8px 24px rgba(25,40,28,.12);color:var(--text);border-radius:8px;font-size:12px}
/* In-app confirmation dialog */
.confirm-modal{width:min(460px,calc(100vw - 30px));padding:28px;border-radius:13px}.confirm-symbol{width:38px;height:38px;display:grid;place-items:center;margin-bottom:17px;border-radius:9px;background:#edf2eb;color:#42664b;font-size:16px;font-weight:700}.confirm-modal[data-kind="warning"] .confirm-symbol{background:#f8eee5;color:#936a3f}.confirm-modal[data-kind="submit"] .confirm-symbol{background:#eaf2e8;color:#426b4a}.confirm-modal[data-kind="section"] .confirm-symbol{background:#edf1f5;color:#526d84}.confirm-modal h2{margin:0 0 10px;font-size:22px;letter-spacing:-.4px;color:var(--text)}.confirm-modal p{font-size:13px;line-height:1.7;color:var(--muted);margin:0}.confirm-details{padding:11px 12px;margin-top:15px;border:1px solid var(--border);border-radius:7px;background:#f8f9f6;color:#4d5b50;font-size:12px}.confirm-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.confirm-actions .button{font-size:12px}.confirm-actions #confirm-accept{background:#355846}.confirm-modal[data-kind="warning"] #confirm-accept{background:#8c5747}.confirm-modal[data-kind="section"] #confirm-accept{background:#405f4a}
/* Scientific calculator */
.calc-panel{width:min(100%,430px);padding:15px;border:1px solid var(--border);border-radius:10px;background:#fff;box-shadow:0 6px 20px rgba(28,45,31,.07);animation:modalIn .15s ease}.calc-header{align-items:center;margin-bottom:12px;color:var(--text);font-size:12px;letter-spacing:0;font-weight:700}.calc-header strong{display:block;font-size:13px}.calc-header small{display:block;color:var(--muted);font-size:10px;font-weight:500;margin-top:4px}.calc-header-actions{display:flex;align-items:center;gap:6px}.calc-header-actions button{border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);padding:5px 8px;font-size:11px}.calc-header-actions button:hover{background:#f4f6f2}.calculator-screen{border:1px solid var(--border);border-radius:7px;background:#f8f9f6;padding:10px 12px;margin-bottom:10px}.calculator-expression{min-height:16px;white-space:nowrap;overflow-x:auto;text-align:right;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.calculator-display{height:35px;border:0;border-radius:0;background:transparent;color:var(--text);text-align:right;padding:4px 0 0;font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;margin:0;outline:none}.calculator-display:focus{outline:none}.calc-keypad{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.calc-keypad button{height:38px;border:1px solid #e1e6df;border-radius:6px;background:#fff;color:#29352c;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}.calc-keypad button:hover{background:#f1f5ef;border-color:#b9c8b8}.calc-keypad .calc-function{background:#f4f6f2;color:#3e5a45;font-weight:500}.calc-keypad .calc-special{background:#edf2eb;color:#3b6044}.calc-keypad .calc-operator{background:#eef1ed;color:#355846}.calc-keypad .calc-equals{background:#355846;border-color:#355846;color:#fff}.calc-keypad .calc-equals:hover{background:#294a38}.calc-keypad .calc-zero{grid-column:span 1}.calc-help{font-size:10px;line-height:1.55;color:var(--muted);margin:10px 0 0}.calc-toggle{color:#375b40!important;background:#eef3ec!important;border:1px solid #dce6d9!important;border-radius:6px!important}.calc-toggle:hover{background:#e4ede2!important}
@media(max-width:1050px){.app-shell{width:calc(100% - 40px)}.subject-card{min-height:0}.subject-card p{min-height:59px}.exam-layout{grid-template-columns:220px minmax(0,1fr);padding:18px}.question-main-inner{padding:28px}}
@media(max-width:720px){.app-shell{width:calc(100% - 32px)}.hero{padding:52px 0 38px}.hero h1{font-size:clamp(34px,8vw,45px)}.hero-description{font-size:14px}.top-nav{gap:12px}.nav-link{font-size:11px}.subject-grid{gap:10px}.subject-card{padding:16px 14px 13px}.subject-card h3{margin:0 0 8px!important;font-size:15px}.subject-card p{font-size:11px;min-height:57px}.subject-meta{font-size:10px}.subject-start{font-size:11px}.exam-topbar{background:#fff;height:66px}.exam-layout{padding:12px;background:#f5f6f3}.question-main{padding:0}.question-main-inner{min-height:calc(100vh - 90px);padding:22px 17px;border-radius:10px}.question-content h2{font-size:21px}.question-content{margin-top:22px}.question-type-label{font-size:9px!important}.question-progress-label{font-size:10px;margin-top:20px}.question-actions .button{font-size:11px;padding:11px 12px}.exam-subject-heading b{font-size:10px}.timer-box b{font-size:11px}.button-submit-top{font-size:10px;padding:9px}.calc-panel{width:100%;max-width:none}.calc-keypad{gap:5px}.calc-keypad button{height:39px;font-size:13px}.confirm-modal{padding:23px}.confirm-actions{flex-direction:column-reverse}.confirm-actions .button{width:100%}.results-container>h1{font-size:33px}}
@media(max-width:430px){.topbar{gap:8px}.brand-wordmark{font-size:12px}.brand-wordmark small{font-size:6px}.top-nav{gap:9px}.nav-link{font-size:10px}.avatar-button{width:28px;height:28px}.hero h1{font-size:34px}.hero-actions .button{font-size:11px;padding:11px 12px;gap:8px}.section-head h2{font-size:22px}.subject-card{padding:13px 11px}.subject-card h3{font-size:13px}.subject-card p{font-size:10px;min-height:62px}.subject-meta{font-size:9px}.subject-start{font-size:10px;padding:10px 8px}.exam-topbar{padding:0 10px;gap:6px}.exam-brand .brand-wordmark{display:none}.exam-subject-heading{max-width:130px}.exam-subject-heading b{max-width:100px}.exam-top-actions{gap:5px}.timer-box{padding:6px}.button-submit-top{padding:8px 7px;font-size:9px}.question-main-inner{padding:19px 13px}.question-content h2{font-size:19px}.calc-panel{padding:10px}.calc-keypad{gap:4px}.calc-keypad button{height:36px;font-size:12px}.calculator-display{font-size:21px}.confirm-modal h2{font-size:20px}}

.progress-ring:after{background:#fff!important}.step-icon{border:1px solid var(--border);color:#45694f!important;box-shadow:none!important}.map-question{font-size:11px}.side-label{font-size:10px}.question-map-head{font-size:9px}.map-legend{font-size:9px}.sidebar-bottom p{font-size:10px}.legend-row{font-size:9px}.question-subject-tag,.difficulty-pill{font-size:10px}.timer-box small{font-size:8px}.question-content svg text{font-family:inherit}.question-visual svg rect[fill="#121b2b"]{fill:#f2f5f0!important;stroke:#dce4d9!important}.question-visual svg path[stroke="#303b52"]{stroke:#dce3db!important}.question-visual svg text{fill:#657367!important}.hotspot-visual svg rect[fill="#202841"],.hotspot-visual svg rect[fill="#25213c"],.hotspot-visual svg rect[fill="#172e37"]{fill:#edf2eb!important;stroke:#a7b8a7!important}.hotspot-visual svg ellipse[fill="#142a39"]{fill:#e8f0e7!important;stroke:#93aa95!important}.hotspot-visual svg ellipse[fill="#6656a9"]{fill:#c5d6c4!important;stroke:#77977a!important}.hotspot-visual svg ellipse[fill="#927fe0"]{fill:#9fbea0!important}.hotspot-visual svg text{fill:#4f6152!important}.hotspot-visual svg path[stroke="#4a5570"]{stroke:#a5b4a4!important}
.steps-grid .step-item .step-icon{background:#edf2ec!important;color:#45694f!important;border:1px solid var(--border)!important;box-shadow:none!important}

/* GED Lab refresh: quiet dark surfaces, restrained color, consistent Lucide icons */
:root{--bg:#101210;--bg-soft:#151815;--panel:#191d19;--panel-soft:#202520;--border:rgba(207,219,205,.13);--text:#e9ede7;--muted:#a5aea2;--subtle:#778175;--violet:#a4b89e;--violet-strong:#789574;--cyan:#b0c5a8;--mint:#9cb997;--pink:#c9b5ad;--blue:#a1b8b0;--radius:14px;--shadow:0 18px 42px rgba(0,0,0,.22);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{background:#101210;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.ambient{display:none!important}
.app-shell{width:min(1120px,calc(100% - 48px));margin:auto}
.topbar{height:76px;border-bottom:1px solid var(--border);gap:22px}
.brand,.exam-brand{gap:10px}
.brand-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#283328;box-shadow:none;transform:none;color:#b8c9b2}
.brand-icon:after{display:none}
.brand-icon span{display:none}
.brand-icon svg{width:19px;height:19px;stroke-width:1.8;transform:none}
.brand-wordmark{font-family:inherit;font-size:15px;letter-spacing:.7px;font-weight:750}
.brand-wordmark>span{color:#a9bda3}
.brand-wordmark small{font-family:inherit;color:#778375;font-size:8px;letter-spacing:1.2px;font-weight:600}
.top-nav{margin:0;gap:5px}
.nav-link{display:inline-flex;align-items:center;gap:7px;border:1px solid transparent;background:transparent;border-radius:8px;padding:9px 12px;color:#a2ab9f;font-size:12px;font-weight:600;cursor:pointer;transition:background .16s,border-color .16s,color .16s}
.nav-link:after{display:none}
.nav-link:hover{background:#1a1e19;color:#e7ece4}
.nav-link.active{color:#e8eee5;background:#232a22;border-color:#30392f}
.nav-link svg{width:15px;height:15px;stroke-width:1.8}
.header-right{gap:8px}
.offline-pill{border-radius:8px;padding:8px 10px;background:#171b17;border-color:var(--border);font-size:10px;color:#a0aa9b}
.status-dot{background:#88a77f;box-shadow:none}
.app-main{min-height:calc(100vh - 130px);display:flex;flex-direction:column}
.dashboard-page{flex:1;padding:78px 0 40px;max-width:100%}
.dashboard-welcome{margin-bottom:32px}
.section-kicker{display:flex;align-items:center;gap:8px;color:#a9bda3;font-size:10px;letter-spacing:1.35px;font-weight:700}
.section-kicker svg{width:16px;height:16px;stroke-width:1.8}
.dashboard-welcome h1,.study-title-row h1{margin:20px 0 10px;font-size:clamp(32px,4vw,45px);font-weight:680;letter-spacing:-1.6px;line-height:1.13;color:#eef1eb}
.dashboard-welcome p,.study-title-row p{font-size:14px;line-height:1.7;color:var(--muted);margin:0;max-width:530px}
.dashboard-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:850px}
.dashboard-option{display:grid;grid-template-columns:44px minmax(0,1fr) 18px;align-items:start;gap:15px;padding:22px 21px;min-height:154px;text-align:left;border:1px solid #2b312a;border-radius:12px;background:#171a17;color:var(--text);cursor:pointer;transition:border-color .16s,background .16s,transform .16s}
.dashboard-option:hover{background:#1b201a;border-color:#4a5a45;transform:translateY(-2px)}
.dashboard-option:focus-visible{outline:2px solid #8ba883;outline-offset:3px}
.dashboard-option-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:9px;background:#263126;color:#bacbb4}
.dashboard-option-icon svg{width:21px;height:21px;stroke-width:1.7}
.dashboard-option-copy{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.dashboard-option-copy strong{font-size:17px;font-weight:650;color:#edf1e9}
.dashboard-option-copy>span{font-size:12px;line-height:1.65;color:#a5aea1}
.dashboard-option-copy small{margin-top:5px;font-size:10px;color:#7c8977;letter-spacing:.15px}
.option-arrow{width:17px;height:17px;color:#879783;margin-top:2px;transition:transform .16s}
.dashboard-option:hover .option-arrow{transform:translate(2px,-2px)}
.dashboard-subjects-note{margin:31px 0 0;color:#7d8779;font-size:11px;letter-spacing:.1px}
.dashboard-subjects-note span{padding:0 5px;color:#596454}
.study-page{padding:34px 0 28px;flex:1}
.back-link{display:inline-flex;align-items:center;gap:7px;background:transparent;border:0;color:#98a391;font-size:11px;font-weight:600;padding:6px 0;cursor:pointer}
.back-link:hover{color:#dce7d8}
.back-link svg{width:14px;height:14px}
.study-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:12px 0 26px}
.study-title-row h1{font-size:31px;margin:0 0 7px;letter-spacing:-.8px}
.study-title-row p{font-size:12px}
.study-mode-pill{flex-shrink:0;border:1px solid #30392e;border-radius:7px;padding:7px 10px;background:#1a2019;color:#b0c1aa;font-size:10px;font-weight:600}
.subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.subject-card{display:flex;flex-direction:column;min-height:220px;padding:19px 20px 17px;border:1px solid #2b3129;border-radius:12px;background:#171a17;box-shadow:none;transition:border-color .16s,background .16s,transform .16s}
.subject-card:hover{transform:translateY(-2px);border-color:#485643;background:#1b1f1a;box-shadow:none}
.subject-art{display:none!important}
.subject-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}
.subject-card-top .subject-symbol{display:grid;place-items:center;width:36px;height:36px;border:1px solid #354032;border-radius:9px;background:#252d23;color:#b5c7ad;box-shadow:none;font-size:14px}
.subject-symbol svg{width:19px;height:19px;stroke-width:1.7}
.subject-code{color:#7f897b;font-size:9px;letter-spacing:.8px;font-weight:650}
.subject-card h2{font-size:17px;line-height:1.35;letter-spacing:-.25px;font-weight:650;margin:0 0 7px;color:#e7ece4}
.subject-card p{font-size:12px;line-height:1.6;color:#9ba596;min-height:0;margin:0 0 15px}
.subject-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:12px;margin-top:auto;border-top:1px solid #282e27;font-size:10px;color:#879181}
.subject-meta span{display:inline-flex;align-items:center;gap:6px}
.subject-meta svg{width:13px;height:13px;stroke-width:1.7}
.meta-dot{display:none}
.subject-start{display:flex;align-items:center;justify-content:space-between;width:100%;gap:10px;margin-top:12px;padding:11px 12px;border:1px solid #384434;border-radius:8px;background:#222a20;color:#c4d2bd;font-size:11px;font-weight:650;cursor:pointer;transition:background .16s,border-color .16s}
.subject-start:hover{background:#2a3527;border-color:#52664a;transform:none}
.subject-start svg{width:15px;height:15px;stroke-width:1.8}
.site-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:19px 0 20px;border-top:1px solid var(--border);font-size:10px;color:#778173}
.footer-brand{display:inline-flex;align-items:center;gap:7px;color:#aebaa7;font-size:11px;font-weight:650;white-space:nowrap}
.footer-brand svg{width:15px;height:15px;stroke-width:1.8}

/* Dark exam, review, setup, and calculator surfaces */
.exam-screen,.results-screen{background:#101210;color:var(--text)}
.exam-topbar,.results-topbar{height:72px;background:#121512;border-bottom:1px solid #2a3029;box-shadow:none}
.exam-brand .brand-icon{background:#283328}
.exam-subject-mark,.setup-subject-icon{display:grid;place-items:center;background:#252e23!important;border:1px solid #394633!important;color:#b6c9ae!important;border-radius:9px}
.exam-subject-mark svg,.setup-subject-icon svg{width:19px;height:19px;stroke-width:1.8}
.exam-subject-heading b{color:#e7ece4}
.exam-subject-heading small,.exam-brand .brand-wordmark small{color:#818c7c}
.timer-box{background:#1a1e19;border:1px solid #32392f;border-radius:8px}
.timer-icon,.timer-box b{color:#dbe4d6}
.timer-box small{color:#8e9987}
.button-submit-top,.confirm-actions #confirm-accept{background:#536b4d;color:#f1f5ee;border-radius:8px}
.button-submit-top:hover,.confirm-actions #confirm-accept:hover{background:#617d59;box-shadow:none}
.exam-layout{background:#101210;padding:19px;gap:17px}
.question-sidebar,.question-main-inner{background:#171a17;border:1px solid #2a3028;box-shadow:none;border-radius:12px;color:var(--text)}
.question-sidebar{padding:19px 15px}
.question-main{background:transparent}
.question-main-inner{padding:30px 35px;min-height:calc(100vh - 112px)}
.sidebar-progress-head h3,.question-main h2,.question-main h3{color:#e4eae0}
.side-label,.question-map-head,.question-progress-label,.question-points-label{color:#84907e}
.progress-bar,.question-progress-bar{background:#292f27}
.progress-bar span,.question-progress-bar span{background:#829c78}
.progress-ring{background:conic-gradient(#9db592 0deg,#282f26 0deg)!important;color:#dce6d6}
.progress-ring:after{background:#171a17!important;color:#dce6d6}
.map-question{background:#20251f;border:1px solid #343c30;color:#aab5a4}
.map-question:hover{background:#293127;border-color:#52664a}
.map-question.current{background:#33422f;border-color:#809776;color:#edf4e8}
.map-question.answered{background:#253125;border-color:#526b4b;color:#d0dfc9}
.map-question.flagged{box-shadow:inset 0 -2px 0 #b29a70}
.legend-dot.legend-current{background:#8ca581}
.legend-dot.legend-flagged{background:#b29a70}
.sidebar-bottom p,.legend-row{color:#85907e}
.sidebar-submit{background:#22291f;border:1px solid #394633;color:#cad8c2;border-radius:8px}
.question-subject-tag{background:#252e23;color:#becfb6;border:1px solid #384631;border-radius:6px}
.difficulty-pill{background:#282c25;border:1px solid #393d34;color:#c2c9b9;border-radius:6px}
.difficulty-pill.easy{background:#202b21;color:#a9c3a3;border-color:#344c35}
.difficulty-pill.medium{background:#2d2b21;color:#d3c79e;border-color:#514b30}
.difficulty-pill.hard{background:#302421;color:#d4aaa1;border-color:#503733}
.question-content{color:#e3e9df}
.question-content p,.question-instruction,.question-type-label{color:#a0aa99}
.passage-card,.question-visual,.drag-area,.essay-rubric{background:#1c211b;border:1px solid #30382d;border-radius:10px;color:#dce4d8}
.passage-label{color:#a8bc9f}
.answer-option{display:flex;align-items:center;text-align:left;background:#1d221c;border:1px solid #343c30;border-radius:9px;color:#dce4d8;box-shadow:none}
.answer-option:hover{background:#232b21;border-color:#52664a}
.answer-option.selected{background:#263226;border-color:#78906e;box-shadow:inset 0 0 0 1px #78906e}
.option-letter{background:#293027;border:1px solid #3a4435;color:#c7d4be}
.answer-option.selected .option-letter{background:#536d4b;border-color:#78906e;color:#f1f6ed}
.option-text{color:#dce4d8}
.dropdown-question select,.essay-box,.drag-tile,.drop-target{background:#1e231d;border:1px solid #394233;color:#e2e9de;border-radius:8px}
.dropdown-question select:focus,.essay-box:focus{outline-color:#8ca581}
.drag-tile{background:#252c23}
.drag-tile.used{opacity:.45}
.drop-target{border-style:dashed;color:#a8b3a0}
.drop-target.has-answer{border-style:solid;background:#273126;color:#e1e9dc}
.drag-tip,.hotspot-instruction,.essay-meta{color:#899583}
.question-feedback{background:#22291f;border:1px solid #394633;color:#d9e5d3}
.flag-button{color:#a4b19c;background:transparent;border:1px solid transparent;border-radius:7px}
.flag-button svg{width:14px;height:14px}
.flag-button.flagged{color:#d2b98a;background:#302b20}
.calc-toggle{display:inline-flex;align-items:center;gap:7px;color:#c3d2bb!important;background:#253023!important;border:1px solid #3b4936!important;border-radius:7px!important}
.calc-toggle svg{width:15px;height:15px}
.button-back,.results-actions .button-quiet{background:#1d221c;border:1px solid #343c30;color:#c5cfbe;border-radius:8px}
.button-back:hover,.results-actions .button-quiet:hover{background:#252d22;border-color:#4b5c43}
.button-primary{background:#536b4d;color:#f2f5ef;box-shadow:none;border-radius:8px}
.button-primary:hover{background:#627d59;box-shadow:none}
.autosave-note{color:#8ca083}
.autosave-note svg{width:13px;height:13px}
.modal-backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(4px)}
.modal-panel,.setup-modal,.confirm-modal{background:#1a1e19;border:1px solid #353d31;border-radius:13px;color:#e7ece4;box-shadow:0 24px 65px rgba(0,0,0,.4)}
.modal-eyebrow,.results-kicker{color:#a9bba2}
.modal-close{background:#252b23;color:#bcc8b5;border:1px solid #394234;border-radius:8px}
.setup-divider{background:#30372c}
.setup-label{color:#cbd5c5}
.setup-hint,.setup-modal p{color:#9da897}
.session-option{background:#1c211b;border:1px solid #343c30;color:#e0e7dc;border-radius:9px}
.session-option.selected{background:#242d21;border-color:#617754;box-shadow:inset 0 0 0 1px #617754}
.session-copy b{color:#e6ede1}
.session-copy small{color:#929e8c}
.session-badge{background:#34452f;color:#c6d7bd}
.session-radio{border-color:#596a52}
.session-option.selected .session-radio{border-color:#9db793;background:#9db793;box-shadow:inset 0 0 0 3px #20271d}
.timer-block{border-top:1px solid #30372c}
.toggle-slider{background:#394136}
.toggle-switch input:checked+.toggle-slider{background:#627f58}
.toggle-state{color:#b9c8b0}
.setup-note{background:#20251f;border:1px solid #30382d;color:#aab6a3;border-radius:8px}
.setup-note svg{flex-shrink:0;width:16px;height:16px;color:#a6bc9a}
.setup-start-button{width:100%}
.confirm-symbol{background:#293326!important;color:#bfd1b7!important;border-radius:9px}
.confirm-modal[data-kind="warning"] .confirm-symbol{background:#352721!important;color:#d5aa98!important}
.confirm-modal[data-kind="submit"] .confirm-symbol{background:#293326!important;color:#bfd1b7!important}
.confirm-modal[data-kind="section"] .confirm-symbol{background:#263027!important;color:#bdcbb7!important}
.confirm-symbol svg{width:19px;height:19px}
.confirm-modal h2{color:#e7ece4}
.confirm-modal p{color:#a3ad9c}
.confirm-details{background:#20251f;border:1px solid #333c2f;color:#b3c0ab}
.toast{background:#20251f;border:1px solid #374131;box-shadow:0 10px 28px rgba(0,0,0,.3);color:#e4eade;border-radius:9px}

/* Calculator: dark but high-contrast */
.calc-panel{background:#171b16;border:1px solid #30382c;border-radius:11px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.calc-header{color:#e4eadf}
.calc-header small{color:#95a18e}
.calc-header-actions button{background:#222820;border:1px solid #3a4435;color:#c8d3c0;border-radius:7px}
.calc-header-actions button:hover{background:#2a3326}
.calculator-screen{background:#10130f;border:1px solid #30382c;border-radius:8px}
.calculator-expression{color:#8e9b86}
.calculator-display{color:#edf2e8}
.calc-keypad button{background:#22271f;border:1px solid #374031;color:#dce5d5;border-radius:7px}
.calc-keypad button:hover{background:#2a3226;border-color:#52664a}
.calc-keypad .calc-function{background:#262c23;color:#b9c9b0}
.calc-keypad .calc-special{background:#293326;color:#c5d6bc}
.calc-keypad .calc-operator{background:#2b3327;color:#c8d8c0}
.calc-keypad .calc-equals{background:#536b4d;border-color:#617b58;color:#fff}
.calc-keypad .calc-equals:hover{background:#627d59}
.calc-help{color:#8f9a87}

/* Results inherit the same dark system instead of switching to a white theme */
.results-container>h1{color:#edf1e9;font-family:inherit;font-size:38px;letter-spacing:-1px}
.results-container>h1 span{color:#a7bc9f!important;background:none!important;-webkit-text-fill-color:#a7bc9f!important}
.results-intro{color:#9da797}
.results-complete{color:#aab4a5}
.results-complete svg{width:16px;height:16px;color:#a7bc9f}
.score-result-card,.metrics-result-card,.review-card{background:#171b17;border:1px solid #2e352c;border-radius:11px;box-shadow:none}
.score-card-glow{display:none}
.score-label,.score-scale-caption,.metric-box small{color:#939e8d}
.score-number-row strong,.metric-box strong{color:#e7ede3}
.score-number-row span{color:#9ea99a}
.score-range>div{background:#30372d}
.score-range i{background:#8ca781}
.score-card-note{color:#b3c7aa}
.metric-box{background:#20251f;border-radius:8px}
.metric-icon{background:#2b3528;color:#b5c8ad;border-radius:7px}
.accuracy-icon{background:#2a3127;color:#b3c0a9}
.time-icon{background:#26302f;color:#a7c0bc}
.weight-icon{background:#332e22;color:#c8b788}
.results-review-head h2,.review-head-copy h3{color:#e4ebe0}
.results-review-head p{color:#9da797}
.review-filters{border:1px solid #30372c;background:#1b201a;border-radius:8px}
.review-filter{color:#a2ad9b}
.review-filter.active{background:#2c3729;color:#dce8d5}
.review-card-head{border-color:#2d342a}
.review-status{background:#342724;color:#d2a59a;border-radius:7px}
.review-status.correct{background:#293628;color:#bad0b2}
.review-status.pending{background:#342f22;color:#d3bf8c}
.review-status svg{width:15px;height:15px}
.review-head-meta span{color:#9db294}
.review-details{border-color:#2d342a;color:#a8b3a2}
.review-details b{color:#dfe7db}
.essay-pending-note{background:#29271e;border-color:#46402e;color:#c5b98e}
.results-disclaimer{border-color:#2c332a;color:#7f8a79}

@media(max-width:720px){
 .app-shell{width:calc(100% - 30px)}.topbar{height:auto;min-height:70px;flex-wrap:wrap;padding:13px 0;row-gap:12px}.top-nav{order:3;width:100%;justify-content:flex-start;border-top:1px solid #292f27;padding-top:10px}.nav-link{font-size:11px;padding:8px 11px}.offline-pill{font-size:9px;padding:7px 8px}.dashboard-page{padding:56px 0 30px}.dashboard-welcome{margin-bottom:24px}.dashboard-welcome h1{font-size:34px;letter-spacing:-1px}.dashboard-options{grid-template-columns:1fr;gap:11px}.dashboard-option{min-height:132px;padding:18px 16px;grid-template-columns:40px minmax(0,1fr) 16px;gap:12px}.dashboard-option-icon{width:38px;height:38px}.dashboard-subjects-note{line-height:1.8;margin-top:23px}.study-page{padding:24px 0}.study-title-row{align-items:flex-start;margin-bottom:18px}.study-title-row h1{font-size:28px}.study-mode-pill{margin-top:4px}.subject-grid{grid-template-columns:1fr;gap:10px}.subject-card{min-height:0;padding:17px}.subject-card p{margin-bottom:14px}.site-footer{flex-wrap:wrap;justify-content:flex-start;gap:8px 14px;padding:16px 0}.site-footer>span:nth-child(2){width:100%;order:3}.exam-topbar,.results-topbar{background:#121512}.exam-layout{grid-template-columns:1fr;padding:9px;background:#101210}.question-sidebar{padding:15px}.question-main-inner{min-height:calc(100vh - 90px);padding:20px 15px}.results-container>h1{font-size:31px}.calc-panel{max-width:none}.calc-keypad{gap:5px}.calc-keypad button{height:39px}.modal-panel{max-height:calc(100dvh - 30px);overflow:auto}
}
@media(max-width:430px){.brand-wordmark{font-size:13px}.brand-wordmark small{font-size:7px}.header-right{margin-left:auto}.offline-pill{padding:6px 7px}.dashboard-welcome h1{font-size:31px}.dashboard-option-copy strong{font-size:16px}.dashboard-option-copy>span{font-size:11px}.study-title-row{gap:9px}.study-title-row h1{font-size:26px}.study-mode-pill{font-size:9px;padding:6px 7px}.exam-topbar{padding:0 9px;gap:6px}.exam-subject-heading{max-width:124px}.exam-top-actions{gap:5px}.timer-box{padding:6px}.button-submit-top{font-size:10px;padding:8px}.question-main-inner{padding:18px 12px}.calc-panel{padding:10px}.calc-keypad{gap:4px}.calc-keypad button{height:36px;font-size:12px}.calculator-display{font-size:21px}}

/* GED Lab v2: quiet near-black workspace and consistent Font Awesome icons */
:root{--bg:#0a0b0c;--bg-soft:#101214;--panel:#141618;--panel-soft:#191c1e;--border:#292d30;--text:#e9ebe7;--muted:#a0a69f;--subtle:#747c75;--violet:#9aae91;--violet-strong:#829879;--cyan:#9aae91;--mint:#8ca784;--radius:10px;--shadow:0 18px 48px rgba(0,0,0,.25);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}
html{scroll-padding-top:74px}
body{background:#0a0b0c;color:var(--text)}
.ambient,.hero-art,.subject-art,.subject-card:before,.subject-card:after,.subject-card-top .subject-symbol:after{display:none!important}
.app-shell{width:min(1080px,calc(100% - 44px));min-height:100vh;display:flex;flex-direction:column}
.app-main{flex:1;display:flex;flex-direction:column}
.topbar{height:72px;min-height:72px;gap:24px;border-color:#25282a}
.brand{gap:9px}
.brand-icon{width:31px;height:31px;border-radius:8px;background:#1d241d;border:1px solid #313a30;box-shadow:none;transform:none;color:#a3b69a}
.brand-icon:after{display:none}.brand-icon span{font-size:18px;transform:none;color:#dfe6db}
.brand-wordmark{font-family:inherit;font-size:14px;letter-spacing:.35px;font-weight:750;color:#e5e8e2}.brand-wordmark>span{color:#a8b9a1}.brand-wordmark small{font-family:inherit;font-size:8px;letter-spacing:.9px;color:#777e77;font-weight:600}
.top-nav{margin:0 auto 0 24px;gap:4px;display:flex;flex-wrap:nowrap}
.nav-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;background:transparent;border-radius:7px;padding:9px 11px;color:#9ba199;font-size:12px;font-weight:550;transition:background .14s,border-color .14s,color .14s}
.nav-link:after{display:none}.nav-link:hover{background:#151819;color:#e4e7e1}.nav-link.active{color:#e8ece5;background:#191d1a;border-color:#2a3129}
.fa-solid,.fa-regular{line-height:1;display:inline-flex;align-items:center;justify-content:center;font-size:14px}
.nav-link .fa-solid{font-size:13px;width:15px;color:#9ca997}.nav-link.active .fa-solid{color:#b7c8ae}
.header-right{gap:8px;flex-shrink:0}
.theme-toggle,.login-link{height:34px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #2c302e;background:#141718;color:#b8beb6;border-radius:7px;padding:0 11px;cursor:pointer;font-size:12px;transition:background .14s,border-color .14s,color .14s}
.theme-toggle{width:35px;padding:0}.theme-toggle:hover,.login-link:hover{background:#1b201c;border-color:#414940;color:#eff2ec}.theme-toggle .fa-solid,.login-link .fa-solid{font-size:13px}.login-link.active{color:#e8ece5;background:#20271f;border-color:#3b4737}
.dashboard-page{padding:90px 0 55px;flex:1;max-width:100%}.dashboard-welcome{margin-bottom:34px}
.section-kicker,.modal-eyebrow,.results-kicker{font-size:10px;letter-spacing:1.2px;color:#929b8f;font-weight:650}.dashboard-welcome .section-kicker{display:flex;align-items:center;gap:9px}.dashboard-welcome .section-kicker .fa-solid{font-size:14px;color:#a5b69b}
.dashboard-welcome h1,.study-title-row h1,.page-heading h1{margin:20px 0 10px;font-family:inherit;font-size:clamp(34px,4.6vw,47px);font-weight:680;letter-spacing:-1.55px;line-height:1.14;color:#eceee9}
.dashboard-welcome p,.study-title-row p,.page-heading>p{font-size:14px;line-height:1.7;color:#9ba198;margin:0;max-width:540px}
.home-note{display:flex;align-items:flex-start;gap:15px;max-width:610px;margin-top:42px;padding:19px 0;border-top:1px solid #262a28;border-bottom:1px solid #262a28}
.home-note-icon{width:34px;height:34px;display:grid;place-items:center;border:1px solid #343d32;background:#171c17;border-radius:8px;color:#a8b99f;flex-shrink:0}.home-note-icon .fa-solid{font-size:15px}
.home-note strong{display:block;font-size:13px;font-weight:650;color:#dfe4da;margin:1px 0 5px}.home-note p{font-size:12px;line-height:1.7;color:#939b91;margin:0}
.study-page{padding:35px 0 40px;flex:1}.study-heading{margin-bottom:22px}.back-link{display:none!important}.study-title-row{margin:0 0 23px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.study-title-row h1{font-size:32px;margin:0 0 8px;letter-spacing:-.8px}.study-title-row p{font-size:13px}.study-mode-pill{background:#191d1a;border:1px solid #2c332b;color:#aab9a3;border-radius:6px;padding:7px 10px;font-size:10px;letter-spacing:.2px}
.subject-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.subject-card{min-height:0;padding:19px 20px 17px;border:1px solid #292e2a;border-radius:10px;background:#131617;box-shadow:none;transition:background .14s,border-color .14s}
.subject-card:hover{transform:none;border-color:#414a3f;background:#171b18;box-shadow:none}.subject-card-top{margin-bottom:15px}.subject-card-top .subject-symbol{width:35px;height:35px;display:grid;place-items:center;border:1px solid #333c31;border-radius:8px;background:#1b211b;color:#b1c1a8;box-shadow:none;font-size:14px}.subject-symbol .fa-solid{font-size:16px}.subject-code{color:#818980;font-size:9px;letter-spacing:.8px}
.subject-card h2{font-family:inherit;font-size:16px;line-height:1.35;font-weight:650;letter-spacing:-.15px;margin:0 0 7px;color:#e3e7e0}.subject-card p{min-height:0;font-size:12px;line-height:1.6;color:#9da49b;margin:0 0 16px}
.subject-meta{font-size:11px;color:#929a90;padding-top:12px;border-top:1px solid #272b28}.subject-meta .fa-solid{font-size:11px;margin-right:5px;color:#a2ad9a}.subject-start{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin-top:13px;padding:10px 11px;border:1px solid #303630;border-radius:7px;background:#191e1a;color:#c9d2c4;font-size:11px;font-weight:600;transition:background .14s,border-color .14s}.subject-start:hover{background:#20271f;border-color:#455342;transform:none}.subject-start .fa-solid{font-size:12px}
.content-page{flex:1;padding:50px 0 60px;max-width:800px;width:100%;margin:0 auto}.page-heading{margin-bottom:29px}.page-heading .section-kicker{display:block}.page-heading h1{font-size:35px;margin:12px 0 8px;letter-spacing:-1px}.page-heading>p{font-size:13px}
.flashcard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:13px}.flashcard-toolbar label{display:flex;align-items:center;gap:10px;color:#a9b0a7;font-size:12px}.flashcard-toolbar select{background:#151819;color:#e1e5de;border:1px solid #303633;padding:9px 31px 9px 10px;border-radius:7px;min-width:160px;font-size:12px}.flashcard-count{font-size:11px;color:#858d83;white-space:nowrap}
.flashcard-surface{display:flex;flex-direction:column;min-height:315px;padding:22px 23px 17px;text-align:left;background:#121516;border:1px solid #2a2f2c;border-radius:11px;color:#e4e8e1;cursor:pointer;transition:border-color .16s,background .16s;outline:none}.flashcard-surface:hover,.flashcard-surface:focus-visible{background:#151918;border-color:#465342}.flashcard-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #282d29;padding-bottom:14px;font-size:9px;letter-spacing:.8px;color:#8e9888}.flashcard-card-head span:last-child{color:#aaba9e}.flashcard-card-body{flex:1;padding:25px 0 20px}.flashcard-card-body h2{max-width:680px;font-size:23px;line-height:1.55;font-weight:570;letter-spacing:-.35px;color:#e7ebe4;margin:0;white-space:pre-wrap}.flashcard-divider{height:1px;background:#2e342e;margin:22px 0 18px}.flashcard-answer-label{font-size:9px;letter-spacing:1px;font-weight:700;color:#aaba9e}.flashcard-card-body>div>p{white-space:pre-wrap;color:#dce3d6;font-size:16px;line-height:1.6;margin:9px 0 0}.flashcard-card-body .flashcard-explanation{font-size:12px;color:#9da69a;line-height:1.75;margin-top:13px}.flashcard-hint{display:flex;align-items:center;gap:8px;border-top:1px solid #282d29;padding-top:13px;font-size:10px;color:#808981}.flashcard-hint .fa-solid{font-size:11px}.flashcard-controls{display:flex;justify-content:space-between;gap:8px;margin-top:12px}.control-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:37px;padding:0 13px;border:1px solid #303633;border-radius:7px;background:#171b1a;color:#c3cbc0;font-size:11px;font-weight:600;cursor:pointer;transition:background .14s,border-color .14s}.control-button:hover{background:#202621;border-color:#465241}.control-button .fa-solid{font-size:12px}.control-button-secondary{background:transparent;color:#9fa99b}.control-button-primary{width:100%;background:#344331;border-color:#465842;color:#e2e9dd}.control-button-primary:hover{background:#3c4c37}
.about-card,.about-project,.login-card{border:1px solid #292f2a;border-radius:10px;background:#121516;padding:23px}.about-card{display:flex;align-items:flex-start;gap:17px}.about-avatar,.login-card-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:9px;border:1px solid #343d32;background:#1b211b;color:#b0c0a7;flex-shrink:0}.about-avatar .fa-solid,.login-card-icon .fa-solid{font-size:17px}.about-kicker{font-size:9px;font-weight:700;letter-spacing:1px;color:#99a691;margin:1px 0 8px}.about-card h2,.about-project h2,.login-card h2{font-size:17px;font-weight:650;letter-spacing:-.2px;color:#e5e8e2;margin:0 0 10px}.about-card p,.about-project p{font-size:13px;line-height:1.75;color:#a3aba0;margin:0 0 15px;max-width:620px}.about-card small{font-size:10px;color:#737c72}.about-card code{background:#1a1f1a;color:#b6c2af;padding:2px 5px;border-radius:4px}.about-project{margin-top:12px;padding:18px 21px}.about-project h2{font-size:13px;margin-bottom:7px}.about-project p{font-size:12px;margin:0}
.login-card{max-width:465px;padding:25px}.login-card-icon{margin-bottom:20px}.login-card h2{font-size:20px}.login-explainer{font-size:12px;line-height:1.8;color:#9da59a;margin:0 0 21px}.login-card form{display:flex;flex-direction:column;gap:9px}.login-card form label{font-size:11px;color:#b6beb2;font-weight:600}.login-card input{width:100%;padding:12px 12px;background:#0c0e0f;border:1px solid #303633;border-radius:7px;color:#e6eae3;outline:none;font-size:13px}.login-card input:focus{border-color:#718768;box-shadow:0 0 0 2px rgba(113,135,104,.12)}.login-card form button{margin-top:5px}.local-profile-status{border-top:1px solid #2b302b;padding-top:14px;font-size:11px;line-height:1.7;color:#aebe9f;margin:15px 0 0}
.site-footer{border-color:#252927;color:#747c73;padding:17px 0 19px;font-size:10px}.footer-brand{color:#b3bcb0}.footer-brand .fa-solid{font-size:13px}
/* Simple icon weight and sizes */
.brand-icon .fa-solid{font-size:15px;color:#b8c8af}.exam-brand .brand-icon{transform:none}.exam-brand .brand-icon .fa-solid{font-size:14px}
.button-primary,.button-submit-top,.confirm-actions #confirm-accept{background:#465a41;color:#eef2eb;border-radius:7px;box-shadow:none}.button-primary:hover,.button-submit-top:hover,.confirm-actions #confirm-accept:hover{background:#536a4c;box-shadow:none}
.modal-panel,.setup-modal,.confirm-modal{border-color:#343a34;background:#151817}.modal-close{color:#a7afa3;background:#1d221f;border-color:#333a32}.setup-note,.confirm-details{background:#1a1f1a;border-color:#30372d}.confirm-symbol{background:#252f23!important;color:#becdb5!important}.toast{background:#181d19;border-color:#343d31}
@media(max-width:800px){.app-shell{width:calc(100% - 30px)}.topbar{height:auto;min-height:67px;padding:10px 0;flex-wrap:wrap;gap:11px}.top-nav{order:3;width:100%;margin:0;justify-content:space-between;gap:3px;border-top:1px solid #252927;padding-top:8px}.nav-link{flex:1;padding:9px 4px;font-size:11px}.nav-link .fa-solid{font-size:12px}.header-right{margin-left:auto}.dashboard-page{padding:58px 0 42px}.dashboard-welcome h1{font-size:35px}.home-note{margin-top:32px}.study-page{padding-top:28px}.content-page{padding:37px 0 45px}.subject-grid{grid-template-columns:1fr}.subject-card{padding:18px}.subject-card p{margin-bottom:13px}.subject-meta{padding-top:10px}.flashcard-surface{min-height:290px;padding:17px}.flashcard-card-body{padding:22px 0 16px}.flashcard-card-body h2{font-size:20px}.site-footer{margin-top:15px;flex-wrap:wrap;gap:7px}.site-footer>span:nth-child(2){width:100%;order:3}.login-card{padding:21px}}
@media(max-width:430px){.app-shell{width:calc(100% - 24px)}.brand-wordmark{font-size:13px}.brand-wordmark small{font-size:7px}.nav-link{font-size:10px;gap:5px}.nav-link .fa-solid{font-size:11px}.login-link{padding:0 9px;font-size:11px}.dashboard-welcome h1{font-size:31px;letter-spacing:-.9px}.dashboard-welcome p{font-size:12px}.home-note{padding:15px 0}.study-title-row h1{font-size:27px}.page-heading h1{font-size:31px}.flashcard-toolbar{align-items:flex-start;flex-direction:column}.flashcard-toolbar select{min-width:0;max-width:225px}.flashcard-surface{min-height:310px}.flashcard-card-body h2{font-size:18px;line-height:1.5}.flashcard-controls .control-button{padding:0 9px;font-size:10px}.about-card{padding:17px;gap:12px}.about-avatar{width:35px;height:35px}.about-card h2{font-size:15px}.about-card p{font-size:12px}}

/* Optional softer light mode; avoids stark white backgrounds. */
body[data-theme="light"]{background:#e6e8e4;color:#282d28;--text:#282d28;--muted:#656d65;--border:#cbd0c9}
body[data-theme="light"] .topbar{border-color:#cbd0c9}body[data-theme="light"] .brand-wordmark,body[data-theme="light"] .dashboard-welcome h1,body[data-theme="light"] .study-title-row h1,body[data-theme="light"] .page-heading h1{color:#272d28}body[data-theme="light"] .brand-wordmark>span{color:#4f694e}body[data-theme="light"] .brand-wordmark small{color:#6c756b}
body[data-theme="light"] .nav-link{color:#5e675e}body[data-theme="light"] .nav-link:hover,body[data-theme="light"] .nav-link.active{background:#d8dcd6;border-color:#c1c9bd;color:#263027}body[data-theme="light"] .nav-link.active .fa-solid{color:#435d42}
body[data-theme="light"] .theme-toggle,body[data-theme="light"] .login-link{background:#eff0ec;border-color:#cbd0c9;color:#445044}body[data-theme="light"] .theme-toggle:hover,body[data-theme="light"] .login-link:hover{background:#dfe3dc}
body[data-theme="light"] .dashboard-welcome p,body[data-theme="light"] .page-heading>p,body[data-theme="light"] .study-title-row p{color:#626b62}body[data-theme="light"] .home-note{border-color:#cbd0c9}body[data-theme="light"] .home-note-icon,body[data-theme="light"] .subject-card-top .subject-symbol,body[data-theme="light"] .about-avatar,body[data-theme="light"] .login-card-icon{background:#d9dfd5;border-color:#c5cec0;color:#476044}body[data-theme="light"] .home-note strong{color:#2d352d}body[data-theme="light"] .home-note p{color:#667066}
body[data-theme="light"] .subject-card,body[data-theme="light"] .about-card,body[data-theme="light"] .about-project,body[data-theme="light"] .login-card,body[data-theme="light"] .flashcard-surface{background:#eff0ec;border-color:#cbd0c9;color:#2b322b}body[data-theme="light"] .subject-card:hover,body[data-theme="light"] .flashcard-surface:hover{background:#f3f4f0;border-color:#aab7a7}body[data-theme="light"] .subject-card h2,body[data-theme="light"] .about-card h2,body[data-theme="light"] .about-project h2,body[data-theme="light"] .login-card h2,body[data-theme="light"] .flashcard-card-body h2{color:#293129}body[data-theme="light"] .subject-card p,body[data-theme="light"] .subject-meta,body[data-theme="light"] .about-card p,body[data-theme="light"] .about-project p,body[data-theme="light"] .login-explainer,body[data-theme="light"] .flashcard-explanation{color:#626b62}body[data-theme="light"] .subject-start,body[data-theme="light"] .control-button,body[data-theme="light"] .flashcard-toolbar select{background:#e0e4dd;border-color:#c3cbc0;color:#394837}body[data-theme="light"] .subject-start:hover,body[data-theme="light"] .control-button:hover{background:#d6ddd2}body[data-theme="light"] .flashcard-card-head,body[data-theme="light"] .flashcard-hint{border-color:#cbd0c9;color:#687168}body[data-theme="light"] .flashcard-card-body>div>p{color:#364034}body[data-theme="light"] .flashcard-divider{background:#cbd0c9}body[data-theme="light"] .login-card input{background:#f7f8f4;color:#2b322b;border-color:#c3cbc0}body[data-theme="light"] .login-card form label{color:#4e594d}body[data-theme="light"] .site-footer{border-color:#cbd0c9;color:#687168}body[data-theme="light"] .footer-brand{color:#526150}
body[data-theme="light"] .exam-screen,body[data-theme="light"] .results-screen{background:#e6e8e4;color:#282d28}body[data-theme="light"] .exam-topbar,body[data-theme="light"] .results-topbar{background:#eff0ec;border-color:#cbd0c9}body[data-theme="light"] .question-sidebar,body[data-theme="light"] .question-main-inner,body[data-theme="light"] .score-result-card,body[data-theme="light"] .metrics-result-card,body[data-theme="light"] .review-card{background:#eff0ec;border-color:#cbd0c9;color:#293129}body[data-theme="light"] .question-main h2,body[data-theme="light"] .question-main h3,body[data-theme="light"] .question-content,body[data-theme="light"] .results-container>h1,body[data-theme="light"] .results-review-head h2,body[data-theme="light"] .review-head-copy h3{color:#293129}body[data-theme="light"] .question-content p,body[data-theme="light"] .question-instruction,body[data-theme="light"] .question-type-label,body[data-theme="light"] .results-intro,body[data-theme="light"] .results-review-head p{color:#657064}body[data-theme="light"] .answer-option,body[data-theme="light"] .dropdown-question select,body[data-theme="light"] .essay-box,body[data-theme="light"] .drag-tile,body[data-theme="light"] .drop-target,body[data-theme="light"] .passage-card,body[data-theme="light"] .question-visual,body[data-theme="light"] .drag-area,body[data-theme="light"] .essay-rubric{background:#e5e8e1;border-color:#c4ccc0;color:#30382f}body[data-theme="light"] .answer-option.selected{background:#d8e0d3;border-color:#8da385}body[data-theme="light"] .calc-panel{background:#eff0ec;border-color:#cbd0c9}body[data-theme="light"] .calculator-screen{background:#e0e4dd;border-color:#c0c9bc}body[data-theme="light"] .calculator-display{color:#273027}body[data-theme="light"] .calc-keypad button,body[data-theme="light"] .calc-header-actions button{background:#e0e4dd;border-color:#c3cbc0;color:#394837}body[data-theme="light"] .calc-keypad .calc-equals,body[data-theme="light"] .button-primary,body[data-theme="light"] .button-submit-top,body[data-theme="light"] .confirm-actions #confirm-accept{background:#50694b;color:#fff}body[data-theme="light"] .modal-panel,body[data-theme="light"] .setup-modal,body[data-theme="light"] .confirm-modal{background:#eff0ec;border-color:#cbd0c9;color:#293129}body[data-theme="light"] .setup-modal h2,body[data-theme="light"] .confirm-modal h2{color:#293129}body[data-theme="light"] .setup-modal p,body[data-theme="light"] .confirm-modal p{color:#626b62}body[data-theme="light"] .session-option{background:#e7eae4;border-color:#c8d0c4;color:#30382f}body[data-theme="light"] .session-option.selected{background:#dce4d7;border-color:#93a68c}body[data-theme="light"] .session-copy b{color:#2b332a}body[data-theme="light"] .setup-note,body[data-theme="light"] .confirm-details{background:#e2e6de;border-color:#c7cfc2;color:#546052}body[data-theme="light"] .timer-box{background:#e0e4dd;border-color:#c4ccc0}body[data-theme="light"] .timer-box b,body[data-theme="light"] .timer-icon{color:#354333}

#login-link-label{display:inline-block;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:430px){#login-link-label{max-width:70px}}

/* Accounts, separate flashcard setup, saved marks, and essay feedback */
.top-nav{gap:4px;flex-shrink:1;min-width:0}
.nav-link{white-space:nowrap;padding:8px 9px}
.flashcard-setup{max-width:580px;margin:22px 0 26px;padding:22px;border:1px solid var(--border);background:var(--panel);border-radius:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}
.flashcard-setup label{display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:12px;font-weight:650}
.flashcard-setup select{width:100%;max-width:100%;height:42px;padding:0 12px;border-radius:8px;border:1px solid var(--border);background:var(--panel-soft);color:var(--text)}
.flashcard-setup .auth-muted{grid-column:1/-1;margin:0;line-height:1.55}
.flashcard-active-subject{font-size:15px;color:var(--text);font-weight:650}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:18px 0 20px;padding:4px;border:1px solid var(--border);background:var(--bg-soft);border-radius:9px}
.auth-tab{padding:10px 12px;border:1px solid transparent;background:transparent;color:var(--muted);border-radius:7px;font-size:12px;font-weight:650;cursor:pointer}
.auth-tab.active{background:var(--panel-soft);border-color:var(--border);color:var(--text)}
.auth-card form{display:flex;flex-direction:column;gap:9px}
.auth-card form label{margin-top:5px;color:var(--muted);font-size:11px;font-weight:650}
.auth-card input{width:100%;height:43px;padding:0 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-soft);color:var(--text);font-size:13px}
.auth-submit{width:100%;margin-top:7px}
.auth-text-button{margin-top:14px;padding:0;border:0;background:transparent;color:#a9bda3;text-decoration:underline;text-underline-offset:3px;font-size:11px;cursor:pointer}
.auth-status{min-height:20px;margin:13px 0 0;color:var(--muted);font-size:11px;line-height:1.55;overflow-wrap:anywhere}
.auth-status.success{color:#a9c8a1}.auth-status.warning{color:#d6c09a}.auth-status.error{color:#e0a19a}
.auth-muted{color:var(--muted);font-size:10px;line-height:1.55}
.auth-setup-note{border-top:1px solid var(--border);padding-top:13px;margin-top:16px}
.auth-account-bar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:14px;padding:14px;border:1px solid var(--border);border-radius:9px;background:var(--bg-soft)}
.auth-account-bar strong{display:block;margin-top:4px;font-size:12px;overflow-wrap:anywhere}
.history-summary{display:flex;justify-content:flex-end;margin:22px 0 12px;color:var(--muted);font-size:11px}
.history-list{display:grid;gap:10px}
.history-empty{padding:42px 20px;text-align:center;border:1px dashed var(--border);border-radius:12px;background:var(--panel)}
.history-empty>svg{width:28px;height:28px;color:#9bb296;margin-bottom:12px}
.history-empty h2{margin:0 0 7px;font-size:16px}.history-empty p{color:var(--muted);font-size:12px;line-height:1.6}
.history-card{display:grid;grid-template-columns:85px minmax(0,1fr) auto;gap:18px;align-items:center;padding:17px;border:1px solid var(--border);border-radius:11px;background:var(--panel);min-width:0}
.history-score{display:flex;align-items:baseline;gap:3px;white-space:nowrap}.history-score strong{font-size:29px;letter-spacing:-1px;font-weight:700}.history-score span{color:var(--muted);font-size:10px}
.history-main{min-width:0}.history-card-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.history-card h2{margin:0;font-size:14px;font-weight:650}.history-mode{padding:4px 7px;border-radius:6px;border:1px solid var(--border);color:var(--muted);font-size:9px}.history-main>p{margin:6px 0 8px;color:var(--muted);font-size:10px}
.history-meta{display:flex;gap:13px;flex-wrap:wrap;color:var(--subtle);font-size:10px}.history-card-actions{display:flex;align-items:center;gap:7px}.history-card-actions .control-button{font-size:10px;padding:9px 10px;white-space:nowrap}
.history-storage-note{margin-top:15px;color:var(--subtle);font-size:10px;line-height:1.6}
.history-detail-modal{position:relative;width:min(820px,100%);max-height:min(88vh,900px);overflow-y:auto;padding:25px;border:1px solid var(--border);border-radius:14px;background:var(--panel);color:var(--text)}
.history-detail-modal h2{font-size:24px;margin:7px 0}.history-detail-modal>p{font-size:11px;color:var(--muted);margin-bottom:18px}.history-detail-body{display:grid;gap:10px}
.history-review-item{border:1px solid var(--border);border-radius:10px;padding:15px;background:var(--bg-soft)}.history-review-item h3{font-size:13px;line-height:1.55;margin:12px 0}.history-review-item p{font-size:11px;line-height:1.7;color:var(--muted);white-space:normal;overflow-wrap:anywhere}.history-review-item-head{display:flex;justify-content:space-between;gap:9px;font-size:9px;color:var(--subtle);text-transform:uppercase;letter-spacing:.4px}.history-review-item-head .good{color:#9abf91}.history-review-item-head .bad{color:#d49b94}
.essay-ai-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:13px}.essay-ai-status{font-size:10px;color:var(--muted);line-height:1.5}.essay-ai-feedback{margin-top:14px;padding:17px;border:1px solid var(--border);border-radius:10px;background:var(--bg-soft)}
.essay-feedback-head{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--border)}.essay-feedback-head>div{display:flex;align-items:baseline;gap:12px}.essay-feedback-head span{font-size:9px;letter-spacing:1px;color:var(--muted);font-weight:700}.essay-feedback-head strong{font-size:22px}.essay-feedback-head small{font-size:9px;color:var(--subtle)}
.essay-score-list{display:grid;gap:10px;margin:15px 0}.essay-score-row{display:grid;grid-template-columns:155px minmax(70px,1fr) 30px;align-items:center;gap:10px;font-size:10px;color:var(--muted)}.essay-score-row strong{text-align:right;color:var(--text)}.essay-score-track{height:5px;border-radius:9px;background:var(--panel-soft);overflow:hidden}.essay-score-track i{display:block;height:100%;border-radius:9px;background:#8ca984}
.essay-overall-feedback{font-size:12px;line-height:1.7;color:var(--text)}.essay-ai-feedback h4{font-size:11px;margin:16px 0 5px}.essay-ai-feedback ul{margin:5px 0;padding-left:19px}.essay-ai-feedback li,.essay-ai-feedback>p{font-size:11px;line-height:1.7;color:var(--muted);margin:3px 0}
body[data-theme="light"] .flashcard-setup,body[data-theme="light"] .history-card,body[data-theme="light"] .history-empty,body[data-theme="light"] .history-detail-modal,body[data-theme="light"] .history-review-item{background:#ecefea;color:#2b342a;border-color:#cbd3c8}
body[data-theme="light"] .flashcard-setup select,body[data-theme="light"] .auth-card input,body[data-theme="light"] .auth-tabs,body[data-theme="light"] .auth-account-bar,body[data-theme="light"] .essay-ai-feedback{background:#e3e7e0;color:#293229;border-color:#cbd3c8}
body[data-theme="light"] .auth-tab.active{background:#f0f2ee;color:#293229;border-color:#cbd3c8}
body[data-theme="light"] .essay-score-track{background:#d5dcd2}body[data-theme="light"] .essay-score-row strong{color:#2d382c}body[data-theme="light"] .essay-overall-feedback{color:#303a2f}
@media(max-width:800px){.history-card{grid-template-columns:70px minmax(0,1fr);gap:12px}.history-card-actions{grid-column:1/-1;justify-content:flex-end}.history-card-actions .control-button{flex:0 0 auto}.top-nav{overflow-x:auto;scrollbar-width:none}.top-nav::-webkit-scrollbar{display:none}}
@media(max-width:520px){.flashcard-setup{grid-template-columns:1fr;padding:16px}.flashcard-setup .control-button{width:100%}.history-card{padding:13px;grid-template-columns:58px minmax(0,1fr);gap:10px}.history-score strong{font-size:25px}.history-card h2{font-size:12px}.history-meta{gap:8px}.history-detail-modal{padding:17px}.essay-score-row{grid-template-columns:112px minmax(40px,1fr) 27px;gap:7px}.essay-feedback-head{align-items:flex-start}.auth-account-bar{align-items:flex-start;flex-direction:column}.top-nav{gap:2px}.nav-link{padding:7px 8px;font-size:10px}.nav-link svg{width:13px;height:13px}}

/* Instructor dashboard: same restrained layout as the student's history page. */
.teacher-tools{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:22px 0 14px;flex-wrap:wrap}
.teacher-tools .history-summary{margin:0}
.teacher-tools label{display:grid;gap:7px;min-width:min(320px,100%);font-size:12px;color:var(--muted,#a2a6b3)}
.teacher-tools input{width:100%;border:1px solid var(--line,rgba(255,255,255,.12));border-radius:10px;background:var(--panel,#11141d);color:var(--text,#eee);padding:11px 13px;font:inherit;font-size:14px;outline:none}
.teacher-tools input:focus{border-color:var(--accent,#819b77);box-shadow:0 0 0 3px rgba(129,155,119,.14)}
.teacher-student-list{display:grid;gap:14px;margin-top:18px}
.teacher-student-card{border:1px solid var(--line,rgba(255,255,255,.12));background:var(--panel,rgba(255,255,255,.025));border-radius:14px;overflow:hidden}
.teacher-student-head{padding:17px 19px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line,rgba(255,255,255,.1))}
.teacher-student-title{min-width:0}
.teacher-student-title h2{font-size:16px;font-weight:650;margin:0 0 4px;color:var(--text,#eee)}
.teacher-student-title p{font-size:12px;line-height:1.5;margin:0;color:var(--muted,#a2a6b3);overflow-wrap:anywhere}
.teacher-student-count{white-space:nowrap;font-size:12px;color:var(--muted,#a2a6b3);padding:5px 9px;border:1px solid var(--line,rgba(255,255,255,.12));border-radius:999px}
.teacher-attempt-list{display:grid}
.teacher-attempt-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:16px;padding:13px 19px;border-bottom:1px solid var(--line,rgba(255,255,255,.07))}
.teacher-attempt-row:last-child{border-bottom:0}
.teacher-attempt-subject{min-width:0}
.teacher-attempt-subject strong{display:block;font-size:13px;color:var(--text,#eee);font-weight:600}
.teacher-attempt-subject small{display:block;color:var(--muted,#a2a6b3);font-size:11px;margin-top:4px}
.teacher-attempt-score{font-variant-numeric:tabular-nums;font-weight:700;font-size:17px;color:var(--text,#eee);white-space:nowrap}
.teacher-attempt-score small{font-size:10px;font-weight:500;color:var(--muted,#a2a6b3)}
.teacher-attempt-row .control-button{white-space:nowrap}
.teacher-no-attempts{padding:17px 19px;color:var(--muted,#a2a6b3);font-size:13px}
.auth-privacy-note{font-size:11px!important;line-height:1.6!important;color:var(--muted,#a2a6b3)!important;margin-top:12px!important}
@media(max-width:700px){.teacher-attempt-row{grid-template-columns:minmax(0,1fr) auto;gap:9px 12px;padding:13px}.teacher-attempt-score{grid-column:2;grid-row:1;font-size:16px}.teacher-attempt-row .control-button{grid-column:1/-1;width:100%}.teacher-student-head{padding:14px}.teacher-attempt-subject strong{font-size:12px}}


/* Shared theme tokens, custom dropdowns, and responsive history actions. */
body[data-theme="light"] {
  color-scheme: light;
  --bg: #f5f6f3;
  --bg-soft: #f0f2ee;
  --panel: #ffffff;
  --panel-soft: #f8f9f6;
  --border: #dfe4dd;
  --text: #232a25;
  --muted: #626c64;
  --subtle: #7b857c;
  --violet: #486c58;
  --violet-strong: #355846;
  --cyan: #547b63;
  --mint: #4d7860;
  --pink: #9a6d66;
  --blue: #547b9b;
  --accent: #486c58;
  --line: #dfe4dd;
  --shadow: 0 12px 34px rgba(27,42,31,.08);
  background: var(--bg);
  color: var(--text);
}
body[data-theme="dark"] {
  color-scheme: dark;
  --bg: #151d21;
  --bg-soft: #1b2529;
  --panel: #202c30;
  --panel-soft: #27363a;
  --border: rgba(174,207,199,.16);
  --text: #edf5f2;
  --muted: #afc2bd;
  --subtle: #829a95;
  --violet: #62c7b4;
  --violet-strong: #3b9f90;
  --cyan: #77e2d0;
  --mint: #72d7b2;
  --pink: #df9c91;
  --blue: #8bcac0;
  --accent: #62c7b4;
  --line: rgba(174,207,199,.16);
  --shadow: 0 22px 60px rgba(4,12,14,.24);
  background: var(--bg);
  color: var(--text);
}
html:has(body[data-theme="light"]) { background: #f5f6f3; }
html:has(body[data-theme="dark"]) { background: #090b13; }
body[data-theme="light"] .app-shell,
body[data-theme="light"] .content-page,
body[data-theme="light"] .dashboard-page,
body[data-theme="light"] .study-page,
body[data-theme="light"] .site-footer,
body[data-theme="dark"] .app-shell,
body[data-theme="dark"] .content-page,
body[data-theme="dark"] .dashboard-page,
body[data-theme="dark"] .study-page,
body[data-theme="dark"] .site-footer { color: var(--text); }

body[data-theme="dark"] .topbar,
body[data-theme="dark"] .site-footer { border-color: var(--border); }
body[data-theme="dark"] .brand-wordmark,
body[data-theme="dark"] .dashboard-welcome h1,
body[data-theme="dark"] .study-title-row h1,
body[data-theme="dark"] .page-heading h1,
body[data-theme="dark"] .subject-card h2,
body[data-theme="dark"] .about-card h2,
body[data-theme="dark"] .about-project h2,
body[data-theme="dark"] .login-card h2,
body[data-theme="dark"] .flashcard-card-body h2,
body[data-theme="dark"] .history-card h2,
body[data-theme="dark"] .history-detail-modal h2,
body[data-theme="dark"] .history-review-item h3,
body[data-theme="dark"] .teacher-student-title h2,
body[data-theme="dark"] .teacher-attempt-subject strong { color: var(--text); }
body[data-theme="dark"] .brand-wordmark > span { color: #b3a4ff; }
body[data-theme="dark"] .brand-wordmark small { color: var(--subtle); }
body[data-theme="dark"] .nav-link { color: var(--muted); }
body[data-theme="dark"] .nav-link:hover,
body[data-theme="dark"] .nav-link.active { color: var(--text); }
body[data-theme="dark"] .nav-link.active:after { background: var(--violet); }
body[data-theme="dark"] .dashboard-welcome p,
body[data-theme="dark"] .page-heading > p,
body[data-theme="dark"] .study-title-row p,
body[data-theme="dark"] .subject-card p,
body[data-theme="dark"] .subject-meta,
body[data-theme="dark"] .about-card p,
body[data-theme="dark"] .about-project p,
body[data-theme="dark"] .login-explainer,
body[data-theme="dark"] .flashcard-explanation,
body[data-theme="dark"] .history-main > p,
body[data-theme="dark"] .history-empty p,
body[data-theme="dark"] .history-detail-modal > p,
body[data-theme="dark"] .history-review-item p,
body[data-theme="dark"] .history-storage-note,
body[data-theme="dark"] .teacher-student-title p,
body[data-theme="dark"] .teacher-student-count,
body[data-theme="dark"] .teacher-no-attempts { color: var(--muted); }

body[data-theme="dark"] .subject-card,
body[data-theme="dark"] .home-note,
body[data-theme="dark"] .about-card,
body[data-theme="dark"] .about-project,
body[data-theme="dark"] .login-card,
body[data-theme="dark"] .flashcard-setup,
body[data-theme="dark"] .flashcard-surface,
body[data-theme="dark"] .history-card,
body[data-theme="dark"] .history-empty,
body[data-theme="dark"] .history-detail-modal,
body[data-theme="dark"] .history-review-item,
body[data-theme="dark"] .teacher-student-card { background: var(--panel); color: var(--text); border-color: var(--border); }
body[data-theme="dark"] .teacher-student-head { border-color: var(--border); }
body[data-theme="dark"] .theme-toggle,
body[data-theme="dark"] .login-link,
body[data-theme="dark"] .auth-tabs,
body[data-theme="dark"] .auth-account-bar,
body[data-theme="dark"] .login-card input,
body[data-theme="dark"] .auth-card input,
body[data-theme="dark"] .teacher-tools input,
body[data-theme="dark"] .essay-ai-feedback { background: var(--bg-soft); color: var(--text); border-color: var(--border); }
body[data-theme="dark"] .theme-toggle:hover,
body[data-theme="dark"] .login-link:hover,
body[data-theme="dark"] .control-button:hover,
body[data-theme="dark"] .subject-start:hover { background: var(--panel-soft); }
body[data-theme="dark"] .control-button,
body[data-theme="dark"] .flashcard-toolbar select,
body[data-theme="dark"] .subject-start { background: var(--panel-soft); border-color: var(--border); color: var(--text); }
body[data-theme="dark"] .control-button-primary,
body[data-theme="dark"] .subject-start { background: #526e49; border-color: #718968; color: #fff; }
body[data-theme="dark"] .control-button-primary:hover,
body[data-theme="dark"] .subject-start:hover { background: #617f56; }
body[data-theme="dark"] .auth-tab { color: var(--muted); }
body[data-theme="dark"] .auth-tab.active { background: var(--panel); color: var(--text); border-color: var(--border); }
body[data-theme="dark"] .auth-card form label,
body[data-theme="dark"] .teacher-tools label { color: var(--muted); }
body[data-theme="dark"] .auth-privacy-note,
body[data-theme="dark"] .auth-muted { color: var(--muted) !important; }

body[data-theme="light"] .exam-screen,
body[data-theme="light"] .results-screen,
body[data-theme="dark"] .exam-screen,
body[data-theme="dark"] .results-screen { background: var(--bg); color: var(--text); }
body[data-theme="dark"] .exam-topbar,
body[data-theme="dark"] .results-topbar { background: var(--panel); border-color: var(--border); }
body[data-theme="dark"] .exam-brand .brand-wordmark,
body[data-theme="dark"] .exam-subject-heading b,
body[data-theme="dark"] .results-complete { color: var(--text); }
body[data-theme="dark"] .exam-subject-heading small,
body[data-theme="dark"] .timer-box small { color: var(--muted); }
body[data-theme="dark"] .timer-box { background: var(--panel-soft); border-color: var(--border); }
body[data-theme="dark"] .timer-box b,
body[data-theme="dark"] .timer-icon { color: var(--cyan); }
body[data-theme="dark"] .question-sidebar,
body[data-theme="dark"] .question-main-inner,
body[data-theme="dark"] .score-result-card,
body[data-theme="dark"] .metrics-result-card,
body[data-theme="dark"] .review-card,
body[data-theme="dark"] .calc-panel { background: var(--panel); border-color: var(--border); color: var(--text); }
body[data-theme="dark"] .sidebar-progress-head h3,
body[data-theme="dark"] .question-main h2,
body[data-theme="dark"] .question-main h3,
body[data-theme="dark"] .question-content,
body[data-theme="dark"] .results-container > h1,
body[data-theme="dark"] .results-review-head h2,
body[data-theme="dark"] .review-head-copy h3,
body[data-theme="dark"] .score-number-row strong,
body[data-theme="dark"] .metric-box strong,
body[data-theme="dark"] .history-detail-modal h2 { color: var(--text); }
body[data-theme="dark"] .question-content p,
body[data-theme="dark"] .question-instruction,
body[data-theme="dark"] .question-type-label,
body[data-theme="dark"] .question-progress-label,
body[data-theme="dark"] .question-points-label,
body[data-theme="dark"] .question-map-head,
body[data-theme="dark"] .side-label,
body[data-theme="dark"] .sidebar-bottom p,
body[data-theme="dark"] .legend-row,
body[data-theme="dark"] .results-intro,
body[data-theme="dark"] .results-review-head p,
body[data-theme="dark"] .results-disclaimer { color: var(--muted); }
body[data-theme="dark"] .question-content h2 { color: var(--text); }
body[data-theme="light"] .question-content,
body[data-theme="light"] .question-content h2,
body[data-theme="light"] .question-main h2,
body[data-theme="light"] .question-main h3 { color: var(--text); }
body[data-theme="light"] .question-content p,
body[data-theme="light"] .question-instruction,
body[data-theme="light"] .question-type-label,
body[data-theme="light"] .question-progress-label,
body[data-theme="light"] .question-points-label,
body[data-theme="light"] .results-disclaimer { color: var(--muted); }

body[data-theme="dark"] .passage-card,
body[data-theme="dark"] .question-visual,
body[data-theme="dark"] .drag-area,
body[data-theme="dark"] .essay-rubric,
body[data-theme="dark"] .answer-option,
body[data-theme="dark"] .dropdown-question select,
body[data-theme="dark"] .essay-box,
body[data-theme="dark"] .drag-tile,
body[data-theme="dark"] .drop-target,
body[data-theme="dark"] .question-feedback { background: var(--bg-soft); color: var(--text); border-color: var(--border); }
body[data-theme="dark"] .answer-option:hover,
body[data-theme="dark"] .drag-tile:hover { background: var(--panel-soft); border-color: var(--violet); }
body[data-theme="dark"] .answer-option.selected { background: rgba(161,138,255,.15); border-color: var(--violet); color: var(--text); }
body[data-theme="dark"] .option-letter { background: var(--panel-soft); border-color: var(--border); color: var(--muted); }
body[data-theme="dark"] .answer-option.selected .option-letter { background: var(--violet); border-color: var(--violet); color: #fff; }
body[data-theme="dark"] .passage-label,
body[data-theme="dark"] .drag-tip,
body[data-theme="dark"] .hotspot-instruction,
body[data-theme="dark"] .essay-meta { color: var(--muted); }
body[data-theme="dark"] .essay-box::placeholder { color: var(--subtle); }
body[data-theme="light"] .passage-card,
body[data-theme="light"] .question-visual,
body[data-theme="light"] .drag-area,
body[data-theme="light"] .essay-rubric,
body[data-theme="light"] .answer-option,
body[data-theme="light"] .dropdown-question select,
body[data-theme="light"] .essay-box,
body[data-theme="light"] .drag-tile,
body[data-theme="light"] .drop-target,
body[data-theme="light"] .question-feedback { background: var(--panel-soft); color: var(--text); border-color: var(--border); }
body[data-theme="light"] .answer-option.selected { background: #e2ebe0; border-color: #8da385; color: var(--text); }
body[data-theme="light"] .option-letter { background: #edf1eb; border-color: var(--border); color: var(--muted); }
body[data-theme="light"] .answer-option.selected .option-letter { background: #486c58; border-color: #486c58; color: #fff; }
body[data-theme="dark"] .map-question { background: var(--panel-soft); border-color: var(--border); color: var(--muted); }
body[data-theme="dark"] .map-question.current { background: rgba(161,138,255,.18); border-color: var(--violet); color: var(--text); }
body[data-theme="dark"] .map-question.answered { background: rgba(105,226,183,.12); border-color: rgba(105,226,183,.45); color: var(--text); }
body[data-theme="dark"] .calc-keypad button,
body[data-theme="dark"] .calc-header-actions button,
body[data-theme="dark"] .calculator-screen { background: var(--panel-soft); border-color: var(--border); color: var(--text); }
body[data-theme="dark"] .calculator-display { color: var(--text); }
body[data-theme="dark"] .modal-panel,
body[data-theme="dark"] .setup-modal,
body[data-theme="dark"] .confirm-modal { background: var(--panel); border-color: var(--border); color: var(--text); }
body[data-theme="dark"] .setup-modal h2,
body[data-theme="dark"] .confirm-modal h2 { color: var(--text); }
body[data-theme="dark"] .setup-modal p,
body[data-theme="dark"] .confirm-modal p { color: var(--muted); }
body[data-theme="dark"] .session-option { background: var(--bg-soft); border-color: var(--border); color: var(--text); }
body[data-theme="dark"] .session-option.selected { background: rgba(161,138,255,.14); border-color: var(--violet); }
body[data-theme="dark"] .session-copy b { color: var(--text); }
body[data-theme="dark"] .setup-note,
body[data-theme="dark"] .confirm-details { background: var(--panel-soft); border-color: var(--border); color: var(--muted); }
body[data-theme="dark"] .button-back,
body[data-theme="dark"] .results-actions .button-quiet { background: var(--panel-soft); border-color: var(--border); color: var(--text); }
body[data-theme="dark"] .button-primary,
body[data-theme="dark"] .button-submit-top,
body[data-theme="dark"] .confirm-actions #confirm-accept { background: #526e49; color: #fff; }
body[data-theme="dark"] .essay-ai-feedback { color: var(--text); }
body[data-theme="dark"] .essay-feedback-head,
body[data-theme="dark"] .essay-score-row,
body[data-theme="dark"] .essay-score-row strong,
body[data-theme="dark"] .essay-overall-feedback { color: var(--text); }
body[data-theme="dark"] .essay-score-track { background: var(--panel-soft); }
body[data-theme="light"] .essay-ai-feedback { background: var(--panel-soft); color: var(--text); border-color: var(--border); }
body[data-theme="light"] .essay-feedback-head,
body[data-theme="light"] .essay-score-row,
body[data-theme="light"] .essay-score-row strong,
body[data-theme="light"] .essay-overall-feedback { color: var(--text); }

.custom-select-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.custom-select {
  position: relative;
  display: inline-block;
  min-width: 200px;
  max-width: 100%;
  vertical-align: middle;
  z-index: 4;
}
.custom-select.is-open { z-index: 50; }
.custom-select-trigger {
  width: 100%;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 13px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--panel-soft);
  color: var(--text);
  text-align: left;
  font-size: 13px;
  line-height: 1.45;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.custom-select-trigger:hover { border-color: var(--violet); background: var(--panel); }
.custom-select-trigger:active { transform: scale(.995); }
.custom-select-trigger:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
.custom-select-trigger:disabled { opacity: .55; cursor: not-allowed; }
.custom-select-value { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.custom-select-trigger.is-placeholder .custom-select-value { color: var(--subtle); }
.custom-select-chevron {
  flex: 0 0 9px;
  width: 9px;
  height: 9px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .18s ease;
  opacity: .8;
}
.custom-select.is-open .custom-select-chevron { transform: translateY(2px) rotate(225deg); }
.custom-select-menu {
  position: absolute;
  top: calc(100% + 7px);
  left: 0;
  width: 100%;
  min-width: 100%;
  max-width: min(360px, calc(100vw - 32px));
  max-height: min(280px, 42vh);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 6px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--panel);
  color: var(--text);
  box-shadow: var(--shadow);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-5px) scale(.99);
  transform-origin: top center;
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}
.custom-select.is-open .custom-select-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}
.custom-select-option {
  display: block;
  width: 100%;
  min-height: 40px;
  padding: 9px 11px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--text);
  font-size: 12px;
  line-height: 1.45;
  text-align: left;
  overflow-wrap: anywhere;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.custom-select-option:hover,
.custom-select-option:focus-visible { background: var(--panel-soft); border-color: var(--border); outline: none; }
.custom-select-option.is-selected { background: color-mix(in srgb, var(--violet) 14%, transparent); border-color: color-mix(in srgb, var(--violet) 42%, var(--border)); }
.custom-select-option:disabled { opacity: .45; cursor: not-allowed; }
.dropdown-question .custom-select { flex: 0 1 360px; min-width: min(240px, 100%); width: min(360px, 100%); }
.flashcard-subject-field { display: grid; gap: 8px; align-content: end; min-width: 0; }
.flashcard-subject-field .custom-select { width: 100%; min-width: 0; }
.flashcard-subject-field .custom-select-trigger { min-height: 42px; }

.history-card-actions [data-history-review] { flex: 1 1 auto; min-width: 0; }
.history-card-actions [data-history-delete] { flex: 0 0 88px; min-width: 88px; }
@media(max-width:800px) {
  .history-card-actions {
    display: grid;
    grid-template-columns: minmax(0,1fr) 92px;
    align-items: stretch;
    justify-content: stretch;
    gap: 9px;
    width: 100%;
    margin-top: 2px;
  }
  .history-card-actions .control-button {
    width: 100%;
    min-width: 0;
    height: 43px;
    min-height: 43px;
    padding: 10px 12px;
    font-size: 12px;
    line-height: 1.2;
    white-space: nowrap;
    flex: initial;
    justify-content: center;
  }
}
@media(max-width:380px) {
  .history-card-actions { grid-template-columns: minmax(0,1fr) 78px; gap: 7px; }
  .history-card-actions .control-button { padding: 9px 7px; font-size: 11px; }
  .custom-select { min-width: 0; width: 100%; }
  .dropdown-question .custom-select { min-width: 100%; width: 100%; flex-basis: 100%; }
}
@media(prefers-reduced-motion:reduce) {
  .custom-select-trigger,.custom-select-chevron,.custom-select-menu,.custom-select-option { transition-duration: .01ms !important; }
}


/* Keep text inside nested answer controls readable in both themes. */
body[data-theme="dark"] .question-content .option-text,
body[data-theme="dark"] .question-content .essay-rubric,
body[data-theme="dark"] .question-content .essay-rubric b {
  color: var(--text);
}
body[data-theme="light"] .question-content .option-text,
body[data-theme="light"] .question-content .essay-rubric,
body[data-theme="light"] .question-content .essay-rubric b {
  color: var(--text) !important;
}
body[data-theme="light"] .question-content .essay-box::placeholder {
  color: var(--subtle);
}


/* GED Lab unified palette: mist/sage in light mode, slate/teal in dark mode. */
body[data-theme="light"] {
  --bg: #f4f7f4;
  --bg-soft: #edf2ee;
  --panel: #ffffff;
  --panel-soft: #f7faf7;
  --border: #d7e1da;
  --text: #24322d;
  --muted: #5c6d65;
  --subtle: #7c8b83;
  --violet: #347f70;
  --violet-strong: #286858;
  --cyan: #2c8e7b;
  --mint: #438a69;
  --accent: #347f70;
  --line: #d7e1da;
  --shadow: 0 12px 34px rgba(34,67,52,.08);
  background: var(--bg);
  color: var(--text);
}
body[data-theme="dark"] {
  --bg: #151d21;
  --bg-soft: #1b2529;
  --panel: #202c30;
  --panel-soft: #27363a;
  --border: rgba(174,207,199,.16);
  --text: #edf5f2;
  --muted: #afc2bd;
  --subtle: #829a95;
  --violet: #62c7b4;
  --violet-strong: #3b9f90;
  --cyan: #77e2d0;
  --mint: #72d7b2;
  --accent: #62c7b4;
  --line: rgba(174,207,199,.16);
  --shadow: 0 22px 60px rgba(4,12,14,.24);
  background: var(--bg);
  color: var(--text);
}
html:has(body[data-theme="dark"]) { background: #151d21; }
body[data-theme="dark"] .topbar,
body[data-theme="dark"] .site-footer { border-color: var(--border); }
body[data-theme="dark"] .brand-icon,
body[data-theme="dark"] .subject-start,
body[data-theme="dark"] .button-primary,
body[data-theme="dark"] .button-submit-top,
body[data-theme="dark"] .confirm-actions #confirm-accept,
body[data-theme="dark"] .control-button-primary {
  background: #2b8274;
  border-color: #4aa999;
  color: #f3fbf8;
  box-shadow: 0 5px 16px rgba(34,135,117,.14);
}
body[data-theme="dark"] .button-primary:hover,
body[data-theme="dark"] .button-submit-top:hover,
body[data-theme="dark"] .confirm-actions #confirm-accept:hover,
body[data-theme="dark"] .control-button-primary:hover,
body[data-theme="dark"] .subject-start:hover {
  background: #359888;
  border-color: #69cbbb;
}
body[data-theme="light"] .button-primary,
body[data-theme="light"] .button-submit-top,
body[data-theme="light"] .confirm-actions #confirm-accept,
body[data-theme="light"] .control-button-primary,
body[data-theme="light"] .subject-start {
  background: #347f70;
  border-color: #347f70;
  color: #ffffff;
  box-shadow: 0 5px 16px rgba(38,113,95,.12);
}
body[data-theme="light"] .button-primary:hover,
body[data-theme="light"] .button-submit-top:hover,
body[data-theme="light"] .confirm-actions #confirm-accept:hover,
body[data-theme="light"] .control-button-primary:hover,
body[data-theme="light"] .subject-start:hover {
  background: #286858;
  border-color: #286858;
}
body[data-theme="dark"] .brand-wordmark > span { color: #77d8c5; }
body[data-theme="dark"] .nav-link:hover,
body[data-theme="dark"] .nav-link.active { color: #edf5f2; }
body[data-theme="dark"] .nav-link.active:after { background: #62c7b4; }
body[data-theme="dark"] .theme-toggle,
body[data-theme="dark"] .login-link { background: #243237; border-color: #354a4c; color: #cfe5de; }
body[data-theme="dark"] .theme-toggle:hover,
body[data-theme="dark"] .login-link:hover { background: #2b3c40; border-color: #4d7973; }
body[data-theme="light"] .theme-toggle,
body[data-theme="light"] .login-link { background: #eaf1eb; border-color: #d2ddd3; color: #356856; }
body[data-theme="light"] .theme-toggle:hover,
body[data-theme="light"] .login-link:hover { background: #dfe9e1; border-color: #b9cdbd; }
body[data-theme="dark"] .question-content .answer-option,
body[data-theme="dark"] .question-content .drag-tile,
body[data-theme="dark"] .question-content .drop-target,
body[data-theme="dark"] .question-content .essay-box,
body[data-theme="dark"] .question-content .passage-card,
body[data-theme="dark"] .question-content .question-visual,
body[data-theme="dark"] .question-content .drag-area,
body[data-theme="dark"] .question-content .essay-rubric,
body[data-theme="dark"] .dropdown-question select {
  background: #1b292d;
  border-color: #35494a;
  color: #edf5f2;
}
body[data-theme="dark"] .question-content .answer-option:hover,
body[data-theme="dark"] .question-content .drag-tile:hover {
  background: #26393b;
  border-color: #4fae9d;
}
body[data-theme="dark"] .question-content .answer-option.selected,
body[data-theme="dark"] .question-content .drag-tile.used,
body[data-theme="dark"] .question-content .drop-target.has-answer {
  background: rgba(67,171,150,.18);
  border-color: #62c7b4;
  color: #effbf7;
}
body[data-theme="dark"] .question-content .option-letter {
  background: #27383b;
  border-color: #3e5555;
  color: #afc7c0;
}
body[data-theme="dark"] .question-content .answer-option.selected .option-letter {
  background: #329887;
  border-color: #62c7b4;
  color: #ffffff;
}
body[data-theme="light"] .question-content .answer-option.selected,
body[data-theme="light"] .question-content .drop-target.has-answer {
  background: #e1f0e8;
  border-color: #67a38c;
  color: #24392f;
}
body[data-theme="light"] .question-content .option-letter {
  background: #eef4ef;
  border-color: #d3e0d6;
  color: #5c6d65;
}
body[data-theme="light"] .question-content .answer-option.selected .option-letter {
  background: #347f70;
  border-color: #347f70;
  color: #ffffff;
}
body[data-theme="dark"] .question-subject-tag,
body[data-theme="dark"] .difficulty-pill { background: #263538; border-color: #3a5050; color: #bed4cd; }
body[data-theme="dark"] .difficulty-pill.easy { background: #243c32; border-color: #385b49; color: #a9dec1; }
body[data-theme="dark"] .difficulty-pill.medium { background: #3c3728; border-color: #61583c; color: #dfcea1; }
body[data-theme="dark"] .difficulty-pill.hard { background: #402e2b; border-color: #69423c; color: #e7b0a6; }
body[data-theme="dark"] .progress-bar,
body[data-theme="dark"] .question-progress-bar { background: #2a3a3d; }
body[data-theme="dark"] .progress-bar > span,
body[data-theme="dark"] .question-progress-bar > span { background: #55bca8; }
body[data-theme="dark"] .map-question { background: #263639; border-color: #3a5050; color: #b3c7c0; }
body[data-theme="dark"] .map-question.current { background: rgba(63,174,151,.19); border-color: #62c7b4; color: #f0faf6; }
body[data-theme="dark"] .map-question.answered { background: rgba(92,187,135,.15); border-color: #4d9b78; color: #d4f1e0; }
body[data-theme="dark"] .flag-button.flagged { color: #e5c38f; background: #3b3529; }
body[data-theme="dark"] .modal-backdrop { background: rgba(4,12,14,.68); }
body[data-theme="dark"] .modal-panel,
body[data-theme="dark"] .setup-modal,
body[data-theme="dark"] .confirm-modal,
body[data-theme="dark"] .history-detail-modal {
  background: #202c30;
  border-color: #35494a;
  color: #edf5f2;
}
body[data-theme="dark"] .setup-note,
body[data-theme="dark"] .confirm-details { background: #27363a; border-color: #3b5150; color: #afc2bd; }
body[data-theme="dark"] .session-option { background: #1b292d; border-color: #35494a; color: #edf5f2; }
body[data-theme="dark"] .session-option.selected { background: #263b3b; border-color: #4eaf9e; }
body[data-theme="dark"] .session-option.selected .session-radio { border-color: #62c7b4; }
body[data-theme="dark"] .session-option.selected .session-radio:after { background: #62c7b4; }
body[data-theme="dark"] .timer-box { background: #27363a; border-color: #3a5050; }
body[data-theme="dark"] .timer-box b,
body[data-theme="dark"] .timer-icon { color: #77d8c5; }
body[data-theme="dark"] .calc-toggle { color: #c5eee3 !important; background: #263b3b !important; border-color: #426963 !important; }
body[data-theme="dark"] .calc-keypad .calc-equals { background: #2b8274; border-color: #4aa999; }
body[data-theme="dark"] .essay-feedback-head,
body[data-theme="dark"] .essay-score-row,
body[data-theme="dark"] .essay-score-row strong,
body[data-theme="dark"] .essay-overall-feedback { color: #edf5f2; }
body[data-theme="dark"] .essay-score-track { background: #27363a; }
body[data-theme="light"] .essay-score-track { background: #e1e9e2; }
body[data-theme="dark"] .history-card,
body[data-theme="dark"] .history-empty,
body[data-theme="dark"] .history-review-item,
body[data-theme="dark"] .history-detail-modal,
body[data-theme="dark"] .flashcard-setup,
body[data-theme="dark"] .flashcard-surface,
body[data-theme="dark"] .teacher-student-card,
body[data-theme="dark"] .subject-card,
body[data-theme="dark"] .about-card,
body[data-theme="dark"] .about-project,
body[data-theme="dark"] .login-card {
  background: #202c30;
  border-color: #35494a;
  color: #edf5f2;
}
body[data-theme="dark"] .history-review-item h3,
body[data-theme="dark"] .history-card h2,
body[data-theme="dark"] .flashcard-card-body h2,
body[data-theme="dark"] .subject-card h2,
body[data-theme="dark"] .about-card h2,
body[data-theme="dark"] .about-project h2,
body[data-theme="dark"] .login-card h2 { color: #edf5f2; }
body[data-theme="dark"] .history-main > p,
body[data-theme="dark"] .history-meta,
body[data-theme="dark"] .history-storage-note,
body[data-theme="dark"] .history-empty p,
body[data-theme="dark"] .history-review-item p,
body[data-theme="dark"] .subject-card p,
body[data-theme="dark"] .about-card p,
body[data-theme="dark"] .about-project p,
body[data-theme="dark"] .login-explainer,
body[data-theme="dark"] .auth-muted,
body[data-theme="dark"] .teacher-student-title p { color: #afc2bd; }
body[data-theme="dark"] .control-button,
body[data-theme="dark"] .teacher-tools input,
body[data-theme="dark"] .login-card input,
body[data-theme="dark"] .auth-card input,
body[data-theme="dark"] .auth-tabs,
body[data-theme="dark"] .auth-account-bar { background: #1b2529; border-color: #35494a; color: #edf5f2; }
body[data-theme="dark"] .auth-tab { color: #afc2bd; }
body[data-theme="dark"] .auth-tab.active { background: #2b3a3e; border-color: #4b6462; color: #edf5f2; }
body[data-theme="dark"] .custom-select-trigger { background: #1b292d; border-color: #35494a; color: #edf5f2; }
body[data-theme="dark"] .custom-select-trigger:hover { background: #26383b; border-color: #62c7b4; }
body[data-theme="dark"] .custom-select-option:hover,
body[data-theme="dark"] .custom-select-option:focus-visible { background: #2a3c3f; border-color: #3d5956; }
body[data-theme="dark"] .custom-select-option.is-selected { background: rgba(75,179,157,.18); border-color: #479e8d; color: #effbf7; }
body[data-theme="light"] .custom-select-trigger:hover { border-color: #347f70; }
body[data-theme="light"] .custom-select-option.is-selected { background: #e1f0e8; border-color: #82b3a0; color: #24392f; }
body[data-theme="dark"] .custom-select-trigger:focus-visible,
body[data-theme="dark"] .dropdown-question select:focus-visible,
body[data-theme="dark"] .question-content .essay-box:focus-visible,
body[data-theme="dark"] .flashcard-surface:focus-visible { outline-color: #77e2d0; }
body[data-theme="light"] .custom-select-trigger:focus-visible,
body[data-theme="light"] .dropdown-question select:focus-visible,
body[data-theme="light"] .question-content .essay-box:focus-visible { outline-color: #347f70; }
body[data-theme="dark"] .question-content .drag-tip,
body[data-theme="dark"] .question-content .hotspot-instruction,
body[data-theme="dark"] .question-content .essay-meta,
body[data-theme="dark"] .question-content .question-instruction { color: #afc2bd; }
body[data-theme="dark"] .results-container > h1,
body[data-theme="dark"] .results-review-head h2,
body[data-theme="dark"] .results-intro,
body[data-theme="dark"] .results-review-head p,
body[data-theme="dark"] .results-disclaimer { color: var(--text); }
body[data-theme="dark"] .review-filter.active { background: #273b3b; border-color: #4da895; color: #e8f8f3; }
body[data-theme="light"] .review-filter.active { background: #e1f0e8; border-color: #8ab29f; color: #285544; }
body[data-theme="dark"] .history-card-actions .control-button { color: #edf5f2; }

/* Avoid leftover violet on keyboard focus, dropdowns, and selected exam controls. */
body[data-theme="dark"] :is(button,a,input,textarea,select,[tabindex]):focus-visible {
  outline-color: #77e2d0;
}
body[data-theme="light"] :is(button,a,input,textarea,select,[tabindex]):focus-visible {
  outline-color: #347f70;
}
body[data-theme="dark"] .session-option.selected,
body[data-theme="dark"] .answer-option.selected,
body[data-theme="dark"] .drop-target.drag-over { box-shadow: inset 0 0 0 1px rgba(98,199,180,.18); }
body[data-theme="dark"] .drop-target.drag-over { border-color: #62c7b4; background: rgba(70,165,146,.13); }
body[data-theme="dark"] .drop-target strong { color: #edf5f2; }


/* Final accent cleanup: no violet headings, tags, selected controls, or hotspots. */
body[data-theme="dark"] .section-kicker,
body[data-theme="dark"] .modal-eyebrow,
body[data-theme="dark"] .results-kicker,
body[data-theme="dark"] .eyebrow,
body[data-theme="dark"] .session-badge,
body[data-theme="dark"] .question-subject-tag {
  color: #80d8c5;
}
body[data-theme="light"] .section-kicker,
body[data-theme="light"] .modal-eyebrow,
body[data-theme="light"] .results-kicker,
body[data-theme="light"] .eyebrow,
body[data-theme="light"] .session-badge,
body[data-theme="light"] .question-subject-tag {
  color: #347f70;
}
body[data-theme="dark"] .home-note,
body[data-theme="dark"] .question-content .section-break {
  color: #a9e3d5;
  background: rgba(71,164,145,.12);
  border-color: rgba(89,190,169,.24);
}
body[data-theme="light"] .home-note,
body[data-theme="light"] .question-content .section-break {
  color: #2e6c58;
  background: #e9f3ec;
  border-color: #d1e3d5;
}
body[data-theme="dark"] .hotspot-zone:hover,
body[data-theme="dark"] .hotspot-zone.selected {
  fill: rgba(83,190,166,.2) !important;
  stroke: #6bd2bd !important;
}
body[data-theme="light"] .hotspot-zone:hover,
body[data-theme="light"] .hotspot-zone.selected {
  fill: rgba(52,127,112,.16) !important;
  stroke: #347f70 !important;
}
body[data-theme="dark"] .hotspot-options .answer-option.selected {
  background: rgba(83,190,166,.18);
  border-color: #62c7b4;
}
body[data-theme="light"] .hotspot-options .answer-option.selected {
  background: #e1f0e8;
  border-color: #67a38c;
}
body[data-theme="dark"] .question-subject-tag {
  background: #263b3b;
  border-color: #3a5d58;
}
body[data-theme="light"] .question-subject-tag {
  background: #e9f3ec;
  border-color: #d1e3d5;
}


/* Comprehensive final contrast pass for every view and nested control. */
body[data-theme="dark"] {
  color-scheme: dark;
  color: #edf5f2;
  --text: #edf5f2;
  --muted: #afc2bd;
  --subtle: #829a95;
  --bg: #151d21;
  --bg-soft: #1b2529;
  --panel: #202c30;
  --panel-soft: #27363a;
  --border: rgba(174,207,199,.18);
  --accent: #62c7b4;
  --line: rgba(174,207,199,.18);
}
body[data-theme="light"] {
  color-scheme: light;
  color: #24322d;
  --text: #24322d;
  --muted: #5c6d65;
  --subtle: #7c8b83;
  --bg: #f4f7f4;
  --bg-soft: #edf2ee;
  --panel: #ffffff;
  --panel-soft: #f7faf7;
  --border: #d7e1da;
  --accent: #347f70;
  --line: #d7e1da;
}

/* Make all normal copy and headings readable even when older rules supplied a fixed color. */
body[data-theme="dark"] :is(.app-shell,.exam-screen,.results-screen,.modal-panel,.setup-modal,.confirm-modal,.history-detail-modal,.teacher-student-list) :is(h1,h2,h3,h4,p,small,label,li,span,strong,b,em,summary,dt,dd,legend,caption) {
  color: #edf5f2;
}
body[data-theme="light"] :is(.app-shell,.exam-screen,.results-screen,.modal-panel,.setup-modal,.confirm-modal,.history-detail-modal,.teacher-student-list) :is(h1,h2,h3,h4,p,small,label,li,span,strong,b,em,summary,dt,dd,legend,caption) {
  color: #24322d;
}

/* Secondary text uses a softer, still readable level of contrast. */
body[data-theme="dark"] :is(.hero-description,.dashboard-welcome p,.page-heading>p,.study-title-row p,.subject-card p,.subject-meta,.subject-code,.home-note p,.how-section p,.steps-grid p,.history-mode,.history-meta,.history-main>p,.history-storage-note,.history-empty p,.history-detail-modal>p,.history-review-item p,.essay-ai-status,.essay-ai-feedback li,.essay-ai-feedback>p,.login-explainer,.auth-muted,.auth-setup-note,.auth-privacy-note,.setup-hint,.setup-note p,.session-copy small,.timer-box small,.exam-subject-heading small,.question-progress-label,.question-points-label,.question-content p,.question-instruction,.question-type-label,.essay-meta,.drag-tip,.hotspot-instruction,.results-intro,.results-disclaimer,.results-review-head p,.metric-box small,.score-card-note,.score-scale-caption,.teacher-student-title p,.teacher-attempt-subject small,.teacher-no-attempts,.flashcard-explanation,.flashcard-hint,.passage-label,.history-review-item-head,.essay-feedback-head small) {
  color: #afc2bd !important;
}
body[data-theme="light"] :is(.hero-description,.dashboard-welcome p,.page-heading>p,.study-title-row p,.subject-card p,.subject-meta,.subject-code,.home-note p,.how-section p,.steps-grid p,.history-mode,.history-meta,.history-main>p,.history-storage-note,.history-empty p,.history-detail-modal>p,.history-review-item p,.essay-ai-status,.essay-ai-feedback li,.essay-ai-feedback>p,.login-explainer,.auth-muted,.auth-setup-note,.auth-privacy-note,.setup-hint,.setup-note p,.session-copy small,.timer-box small,.exam-subject-heading small,.question-progress-label,.question-points-label,.question-content p,.question-instruction,.question-type-label,.essay-meta,.drag-tip,.hotspot-instruction,.results-intro,.results-disclaimer,.results-review-head p,.metric-box small,.score-card-note,.score-scale-caption,.teacher-student-title p,.teacher-attempt-subject small,.teacher-no-attempts,.flashcard-explanation,.flashcard-hint,.passage-label,.history-review-item-head,.essay-feedback-head small) {
  color: #5c6d65 !important;
}

/* Label, badge, and kicker colors remain distinct without blending into their surfaces. */
body[data-theme="dark"] :is(.eyebrow,.section-kicker,.modal-eyebrow,.results-kicker,.session-badge,.question-subject-tag,.flashcard-answer-label,.about-kicker,.about-project .section-kicker) {
  color: #80d8c5 !important;
}
body[data-theme="light"] :is(.eyebrow,.section-kicker,.modal-eyebrow,.results-kicker,.session-badge,.question-subject-tag,.flashcard-answer-label,.about-kicker,.about-project .section-kicker) {
  color: #347f70 !important;
}
body[data-theme="dark"] .brand-wordmark,
body[data-theme="dark"] .brand-wordmark small,
body[data-theme="dark"] .exam-brand .brand-wordmark,
body[data-theme="dark"] .exam-subject-heading b,
body[data-theme="dark"] .results-complete,
body[data-theme="dark"] .subject-card h3,
body[data-theme="dark"] .subject-card h2,
body[data-theme="dark"] .about-card h2,
body[data-theme="dark"] .about-project h2,
body[data-theme="dark"] .login-card h2,
body[data-theme="dark"] .history-card h2,
body[data-theme="dark"] .history-detail-modal h2,
body[data-theme="dark"] .history-review-item h3,
body[data-theme="dark"] .flashcard-card-body h2,
body[data-theme="dark"] .teacher-student-title h2,
body[data-theme="dark"] .teacher-attempt-subject strong,
body[data-theme="dark"] .question-content h2,
body[data-theme="dark"] .question-content h3,
body[data-theme="dark"] .setup-modal h2,
body[data-theme="dark"] .confirm-modal h2 {
  color: #edf5f2 !important;
}
body[data-theme="light"] .brand-wordmark,
body[data-theme="light"] .exam-brand .brand-wordmark,
body[data-theme="light"] .exam-subject-heading b,
body[data-theme="light"] .results-complete,
body[data-theme="light"] .subject-card h3,
body[data-theme="light"] .subject-card h2,
body[data-theme="light"] .about-card h2,
body[data-theme="light"] .about-project h2,
body[data-theme="light"] .login-card h2,
body[data-theme="light"] .history-card h2,
body[data-theme="light"] .history-detail-modal h2,
body[data-theme="light"] .history-review-item h3,
body[data-theme="light"] .flashcard-card-body h2,
body[data-theme="light"] .teacher-student-title h2,
body[data-theme="light"] .teacher-attempt-subject strong,
body[data-theme="light"] .question-content h2,
body[data-theme="light"] .question-content h3,
body[data-theme="light"] .setup-modal h2,
body[data-theme="light"] .confirm-modal h2 {
  color: #24322d !important;
}

/* Every button gets a readable base foreground, with explicit high-contrast primary actions below. */
body[data-theme="dark"] button,
body[data-theme="dark"] a,
body[data-theme="dark"] input,
body[data-theme="dark"] textarea,
body[data-theme="dark"] select {
  color: #edf5f2;
}
body[data-theme="light"] button,
body[data-theme="light"] a,
body[data-theme="light"] input,
body[data-theme="light"] textarea,
body[data-theme="light"] select {
  color: #24322d;
}

/* The subject-card "Set up exam" label had a child color that matched its own button background. */
body[data-theme="dark"] .subject-start,
body[data-theme="dark"] .subject-start:hover {
  background: #256d63 !important;
  border-color: #3c9a8a !important;
  color: #ffffff !important;
}
body[data-theme="light"] .subject-start,
body[data-theme="light"] .subject-start:hover {
  background: #286858 !important;
  border-color: #286858 !important;
  color: #ffffff !important;
}
body[data-theme="dark"] .subject-start > span,
body[data-theme="light"] .subject-start > span {
  color: #ffffff !important;
}

/* Button backgrounds and their text are paired deliberately for contrast. */
body[data-theme="dark"] :is(.button-primary,.button-submit-top,.control-button-primary,.confirm-actions #confirm-accept,.sidebar-submit,.calc-keypad .calc-equals) {
  background: #256d63 !important;
  border-color: #3c9a8a !important;
  color: #ffffff !important;
  box-shadow: none;
}
body[data-theme="dark"] :is(.button-primary,.button-submit-top,.control-button-primary,.confirm-actions #confirm-accept,.sidebar-submit,.calc-keypad .calc-equals):hover {
  background: #2d8074 !important;
  border-color: #62c7b4 !important;
  color: #ffffff !important;
}
body[data-theme="light"] :is(.button-primary,.button-submit-top,.control-button-primary,.confirm-actions #confirm-accept,.sidebar-submit,.calc-keypad .calc-equals) {
  background: #286858 !important;
  border-color: #286858 !important;
  color: #ffffff !important;
  box-shadow: none;
}
body[data-theme="light"] :is(.button-primary,.button-submit-top,.control-button-primary,.confirm-actions #confirm-accept,.sidebar-submit,.calc-keypad .calc-equals):hover {
  background: #205747 !important;
  border-color: #205747 !important;
  color: #ffffff !important;
}

/* Secondary buttons and calculator controls use theme surfaces, not inherited legacy colors. */
body[data-theme="dark"] :is(.control-button,.button-quiet,.button-back,.modal-close,#calculator-close,#angle-toggle,.review-filter,.auth-tab,.calc-keypad button,.calc-header-actions button) {
  background: #27363a;
  border-color: #3b5150;
  color: #edf5f2;
}
body[data-theme="light"] :is(.control-button,.button-quiet,.button-back,.modal-close,#calculator-close,#angle-toggle,.review-filter,.auth-tab,.calc-keypad button,.calc-header-actions button) {
  background: #eaf1eb;
  border-color: #d2ddd3;
  color: #24322d;
}
body[data-theme="dark"] :is(.control-button,.button-quiet,.button-back,.modal-close,#calculator-close,#angle-toggle,.review-filter,.auth-tab,.calc-keypad button,.calc-header-actions button):hover {
  background: #304347;
  border-color: #4e7771;
  color: #ffffff;
}
body[data-theme="light"] :is(.control-button,.button-quiet,.button-back,.modal-close,#calculator-close,#angle-toggle,.review-filter,.auth-tab,.calc-keypad button,.calc-header-actions button):hover {
  background: #dfe9e1;
  border-color: #b9cdbd;
  color: #1e3e32;
}
body[data-theme="dark"] .auth-tab.active {
  background: #304347;
  border-color: #62a99b;
  color: #ffffff;
}
body[data-theme="light"] .auth-tab.active {
  background: #dcebe0;
  border-color: #82b39b;
  color: #234c3b;
}
body[data-theme="dark"] .review-filter.active {
  background: #285b55;
  border-color: #62c7b4;
  color: #ffffff;
}
body[data-theme="light"] .review-filter.active {
  background: #dcebe0;
  border-color: #82b39b;
  color: #234c3b;
}
body[data-theme="dark"] .button-quiet,
body[data-theme="dark"] .button-back,
body[data-theme="dark"] .results-actions .button-quiet { background: #27363a; border-color: #3b5150; color: #edf5f2; }
body[data-theme="light"] .button-quiet,
body[data-theme="light"] .button-back,
body[data-theme="light"] .results-actions .button-quiet { background: #eaf1eb; border-color: #d2ddd3; color: #24322d; }

/* Inherit button label colors, preventing nested spans from retaining stale accent colors. */
body[data-theme="dark"] button:not(.answer-option) > span,
body[data-theme="light"] button:not(.answer-option) > span {
  color: inherit !important;
}
body[data-theme="dark"] .answer-option,
body[data-theme="dark"] .answer-option .option-text { color: #edf5f2 !important; }
body[data-theme="light"] .answer-option,
body[data-theme="light"] .answer-option .option-text { color: #24322d !important; }
body[data-theme="dark"] .answer-option.selected,
body[data-theme="dark"] .answer-option.selected .option-text { background: #285b55; border-color: #62c7b4; color: #ffffff !important; }
body[data-theme="light"] .answer-option.selected,
body[data-theme="light"] .answer-option.selected .option-text { background: #dcebe0; border-color: #82b39b; color: #234c3b !important; }
body[data-theme="dark"] .answer-option .option-letter { background: #27363a; border-color: #3b5150; color: #afc2bd !important; }
body[data-theme="light"] .answer-option .option-letter { background: #eaf1eb; border-color: #d2ddd3; color: #5c6d65 !important; }
body[data-theme="dark"] .answer-option.selected .option-letter { background: #62c7b4; border-color: #62c7b4; color: #102824 !important; }
body[data-theme="light"] .answer-option.selected .option-letter { background: #286858; border-color: #286858; color: #ffffff !important; }

/* Inputs, essay response boxes, and selects are explicitly themed in every state. */
body[data-theme="dark"] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea,select) {
  background-color: #1b2529;
  border-color: #3b5150;
  color: #edf5f2;
}
body[data-theme="light"] :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),textarea,select) {
  background-color: #ffffff;
  border-color: #d2ddd3;
  color: #24322d;
}
body[data-theme="dark"] :is(input,textarea,select)::placeholder { color: #829a95; opacity: 1; }
body[data-theme="light"] :is(input,textarea,select)::placeholder { color: #7c8b83; opacity: 1; }
body[data-theme="dark"] :is(input,textarea,select):focus-visible { outline-color: #77e2d0; border-color: #62c7b4; }
body[data-theme="light"] :is(input,textarea,select):focus-visible { outline-color: #347f70; border-color: #347f70; }
body[data-theme="dark"] .custom-select-trigger { background: #1b292d; border-color: #3b5150; color: #edf5f2; }
body[data-theme="light"] .custom-select-trigger { background: #ffffff; border-color: #d2ddd3; color: #24322d; }
body[data-theme="dark"] .custom-select-menu { background: #202c30; border-color: #3b5150; color: #edf5f2; }
body[data-theme="light"] .custom-select-menu { background: #ffffff; border-color: #d2ddd3; color: #24322d; }
body[data-theme="dark"] .custom-select-option { color: #edf5f2; }
body[data-theme="light"] .custom-select-option { color: #24322d; }
body[data-theme="dark"] .custom-select-option.is-selected { background: #285b55; border-color: #62a99b; color: #ffffff; }
body[data-theme="light"] .custom-select-option.is-selected { background: #dcebe0; border-color: #82b39b; color: #234c3b; }

/* Main question, modal, results, history, flashcards, and account panels. */
body[data-theme="dark"] :is(.subject-card,.home-note,.about-card,.about-project,.login-card,.flashcard-setup,.flashcard-surface,.history-card,.history-empty,.history-detail-modal,.history-review-item,.teacher-student-card,.question-sidebar,.question-main-inner,.score-result-card,.metrics-result-card,.review-card,.calc-panel,.setup-modal,.confirm-modal,.modal-panel,.history-detail-modal) {
  background-color: #202c30;
  border-color: #3b5150;
  color: #edf5f2;
}
body[data-theme="light"] :is(.subject-card,.home-note,.about-card,.about-project,.login-card,.flashcard-setup,.flashcard-surface,.history-card,.history-empty,.history-detail-modal,.history-review-item,.teacher-student-card,.question-sidebar,.question-main-inner,.score-result-card,.metrics-result-card,.review-card,.calc-panel,.setup-modal,.confirm-modal,.modal-panel,.history-detail-modal) {
  background-color: #ffffff;
  border-color: #d7e1da;
  color: #24322d;
}
body[data-theme="dark"] .exam-topbar,
body[data-theme="dark"] .results-topbar { background: #202c30; border-color: #3b5150; color: #edf5f2; }
body[data-theme="light"] .exam-topbar,
body[data-theme="light"] .results-topbar { background: #ffffff; border-color: #d7e1da; color: #24322d; }
body[data-theme="dark"] .question-content,
body[data-theme="dark"] .question-content :is(h2,h3,h4,.essay-rubric,.passage-card,.essay-box,.dropdown-question,.question-visual,.drag-area,.drop-target) { color: #edf5f2; }
body[data-theme="light"] .question-content,
body[data-theme="light"] .question-content :is(h2,h3,h4,.essay-rubric,.passage-card,.essay-box,.dropdown-question,.question-visual,.drag-area,.drop-target) { color: #24322d; }
body[data-theme="dark"] .question-content :is(.passage-card,.question-visual,.drag-area,.essay-rubric,.essay-box,.drop-target) { background: #1b292d; border-color: #3b5150; }
body[data-theme="light"] .question-content :is(.passage-card,.question-visual,.drag-area,.essay-rubric,.essay-box,.drop-target) { background: #f7faf7; border-color: #d7e1da; }
body[data-theme="dark"] .question-content .essay-rubric b { color: #80d8c5 !important; }
body[data-theme="light"] .question-content .essay-rubric b { color: #347f70 !important; }
body[data-theme="dark"] .question-content .drop-target:not(.has-answer) { color: #afc2bd; }
body[data-theme="light"] .question-content .drop-target:not(.has-answer) { color: #5c6d65; }
body[data-theme="dark"] .question-content .drop-target strong { color: #edf5f2; }
body[data-theme="light"] .question-content .drop-target strong { color: #24322d; }

/* Preserve muted labels and accent text on content panels, but never let it match the panel. */
body[data-theme="dark"] :is(.subject-meta,.subject-code,.history-mode,.history-meta,.history-storage-note,.history-main>p,.history-empty p,.history-review-item p,.history-review-item-head,.history-detail-modal>p,.essay-ai-status,.essay-ai-feedback li,.essay-ai-feedback>p,.auth-muted,.auth-setup-note,.auth-privacy-note,.setup-hint,.setup-note p,.session-copy small,.timer-box small,.exam-subject-heading small,.question-progress-label,.question-points-label,.question-instruction,.question-type-label,.essay-meta,.drag-tip,.hotspot-instruction,.results-intro,.results-disclaimer,.results-review-head p,.metric-box small,.score-card-note,.score-scale-caption,.flashcard-explanation,.flashcard-hint,.teacher-student-title p,.teacher-attempt-subject small,.teacher-no-attempts) {
  color: #afc2bd !important;
}
body[data-theme="light"] :is(.subject-meta,.subject-code,.history-mode,.history-meta,.history-storage-note,.history-main>p,.history-empty p,.history-review-item p,.history-review-item-head,.history-detail-modal>p,.essay-ai-status,.essay-ai-feedback li,.essay-ai-feedback>p,.auth-muted,.auth-setup-note,.auth-privacy-note,.setup-hint,.setup-note p,.session-copy small,.timer-box small,.exam-subject-heading small,.question-progress-label,.question-points-label,.question-instruction,.question-type-label,.essay-meta,.drag-tip,.hotspot-instruction,.results-intro,.results-disclaimer,.results-review-head p,.metric-box small,.score-card-note,.score-scale-caption,.flashcard-explanation,.flashcard-hint,.teacher-student-title p,.teacher-attempt-subject small,.teacher-no-attempts) {
  color: #5c6d65 !important;
}
body[data-theme="dark"] :is(.essay-pending-note,.essay-grade-message) { color: #dfc98f; }
body[data-theme="light"] :is(.essay-pending-note,.essay-grade-message) { color: #735d23; }
body[data-theme="dark"] :is(.good,.correct,.correct-icon,.auth-status.success) { color: #91dbad !important; }
body[data-theme="light"] :is(.good,.correct,.correct-icon,.auth-status.success) { color: #28754d !important; }
body[data-theme="dark"] :is(.bad,.incorrect,.auth-status.error) { color: #ffaaa0 !important; }
body[data-theme="light"] :is(.bad,.incorrect,.auth-status.error) { color: #a43c32 !important; }

/* Theme-specific utility text and controls that were previously hard-coded. */
body[data-theme="dark"] .nav-link { color: #afc2bd; }
body[data-theme="dark"] .nav-link:hover,
body[data-theme="dark"] .nav-link.active { color: #edf5f2; }
body[data-theme="light"] .nav-link { color: #5c6d65; }
body[data-theme="light"] .nav-link:hover,
body[data-theme="light"] .nav-link.active { color: #24322d; }
body[data-theme="dark"] .brand-wordmark > span { color: #80d8c5 !important; }
body[data-theme="light"] .brand-wordmark > span { color: #347f70 !important; }
body[data-theme="dark"] .flag-button { color: #afc2bd; background: transparent; }
body[data-theme="light"] .flag-button { color: #5c6d65; background: transparent; }
body[data-theme="dark"] .flag-button.flagged { color: #f0d29b; background: #3a3428; }
body[data-theme="light"] .flag-button.flagged { color: #77551c; background: #f4ead5; }
body[data-theme="dark"] .calc-toggle { background: #263b3b !important; border-color: #426963 !important; color: #d7f4ec !important; }
body[data-theme="light"] .calc-toggle { background: #e1f0e8 !important; border-color: #b8d7c5 !important; color: #285544 !important; }
body[data-theme="dark"] .timer-box { background: #27363a; border-color: #3b5150; }
body[data-theme="light"] .timer-box { background: #eaf1eb; border-color: #d2ddd3; }
body[data-theme="dark"] .timer-box b { color: #edf5f2; }
body[data-theme="light"] .timer-box b { color: #24322d; }
body[data-theme="dark"] .calculator-screen { background: #1b2529; border-color: #3b5150; color: #edf5f2; }
body[data-theme="light"] .calculator-screen { background: #f7faf7; border-color: #d2ddd3; color: #24322d; }
body[data-theme="dark"] .calculator-display { color: #edf5f2; }
body[data-theme="light"] .calculator-display { color: #24322d; }
body[data-theme="dark"] .calc-help { color: #afc2bd; }
body[data-theme="light"] .calc-help { color: #5c6d65; }
body[data-theme="dark"] .answer-option:disabled,
body[data-theme="light"] .answer-option:disabled { opacity: .58; }
body[data-theme="dark"] :is(button,input,textarea,select,a,[tabindex]):focus-visible { outline-color: #77e2d0; }
body[data-theme="light"] :is(button,input,textarea,select,a,[tabindex]):focus-visible { outline-color: #347f70; }


/* Clear tactile feedback whenever a control becomes selected. */
@keyframes gedSelectionPop {
  0% {
    transform: translateY(1px) scale(.965);
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent);
  }
  58% {
    transform: translateY(-1px) scale(1.025);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 17%, transparent);
  }
  100% {
    transform: translateY(0) scale(1);
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--accent) 0%, transparent);
  }
}
@keyframes gedSelectionGlow {
  0% { filter: drop-shadow(0 0 0 color-mix(in srgb, var(--accent) 0%, transparent)); }
  55% { filter: drop-shadow(0 0 4px color-mix(in srgb, var(--accent) 38%, transparent)); }
  100% { filter: drop-shadow(0 0 0 color-mix(in srgb, var(--accent) 0%, transparent)); }
}
body[data-theme="dark"] :is(.answer-option.selected,.drag-tile.used,.drop-target.has-answer,.session-option.selected,.custom-select-option.is-selected,.review-filter.active,.auth-tab.active) {
  animation: gedSelectionPop .32s cubic-bezier(.2,.8,.2,1);
}
body[data-theme="light"] :is(.answer-option.selected,.drag-tile.used,.drop-target.has-answer,.session-option.selected,.custom-select-option.is-selected,.review-filter.active,.auth-tab.active) {
  animation: gedSelectionPop .32s cubic-bezier(.2,.8,.2,1);
}
body[data-theme="dark"] .hotspot-zone.selected {
  animation: gedSelectionGlow .42s ease-out;
}
body[data-theme="light"] .hotspot-zone.selected {
  animation: gedSelectionGlow .42s ease-out;
}
body[data-theme="dark"] .answer-option,
body[data-theme="light"] .answer-option,
body[data-theme="dark"] .session-option,
body[data-theme="light"] .session-option,
body[data-theme="dark"] .custom-select-option,
body[data-theme="light"] .custom-select-option,
body[data-theme="dark"] .review-filter,
body[data-theme="light"] .review-filter,
body[data-theme="dark"] .auth-tab,
body[data-theme="light"] .auth-tab {
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}
body[data-theme="dark"] .answer-option.selected {
  box-shadow: inset 0 0 0 1px rgba(98,199,180,.22);
}
body[data-theme="light"] .answer-option.selected {
  box-shadow: inset 0 0 0 1px rgba(52,127,112,.16);
}
@media(prefers-reduced-motion:reduce) {
  body[data-theme="dark"] :is(.answer-option.selected,.drag-tile.used,.drop-target.has-answer,.session-option.selected,.custom-select-option.is-selected,.review-filter.active,.auth-tab.active,.hotspot-zone.selected),
  body[data-theme="light"] :is(.answer-option.selected,.drag-tile.used,.drop-target.has-answer,.session-option.selected,.custom-select-option.is-selected,.review-filter.active,.auth-tab.active,.hotspot-zone.selected) {
    animation: none !important;
  }
}


/* Cursor-hover motion: make interactive elements respond when the pointer moves over them. */
body[data-theme="dark"] :is(button,a,.subject-card,.history-card,.teacher-student-card,.flashcard-surface,.session-option,.custom-select-trigger,.custom-select-option,.answer-option,.drag-tile,.map-question,.hotspot-zone,.review-filter,.auth-tab) {
  transition-property: color, background-color, border-color, box-shadow, transform, filter;
  transition-duration: .18s;
  transition-timing-function: cubic-bezier(.2,.8,.2,1);
}
body[data-theme="light"] :is(button,a,.subject-card,.history-card,.teacher-student-card,.flashcard-surface,.session-option,.custom-select-trigger,.custom-select-option,.answer-option,.drag-tile,.map-question,.hotspot-zone,.review-filter,.auth-tab) {
  transition-property: color, background-color, border-color, box-shadow, transform, filter;
  transition-duration: .18s;
  transition-timing-function: cubic-bezier(.2,.8,.2,1);
}
@media (hover: hover) and (pointer: fine) {
  body[data-theme="dark"] :is(.button,.control-button,.subject-start,.theme-toggle,.login-link,.back-link,.sidebar-submit,.calc-toggle,.flag-button,.modal-close,.review-filter,.auth-tab,.custom-select-trigger,.map-question):not(:disabled):hover {
    transform: translateY(-2px);
    filter: brightness(1.07);
    box-shadow: 0 7px 18px rgba(3,14,14,.2);
  }
  body[data-theme="light"] :is(.button,.control-button,.subject-start,.theme-toggle,.login-link,.back-link,.sidebar-submit,.calc-toggle,.flag-button,.modal-close,.review-filter,.auth-tab,.custom-select-trigger,.map-question):not(:disabled):hover {
    transform: translateY(-2px);
    filter: brightness(.98);
    box-shadow: 0 7px 18px rgba(39,82,63,.12);
  }
  body[data-theme="dark"] :is(.subject-card,.history-card,.teacher-student-card,.flashcard-surface):hover {
    transform: translateY(-3px);
    border-color: #4c8f83;
    box-shadow: 0 14px 28px rgba(3,14,14,.22);
  }
  body[data-theme="light"] :is(.subject-card,.history-card,.teacher-student-card,.flashcard-surface):hover {
    transform: translateY(-3px);
    border-color: #8ab29f;
    box-shadow: 0 12px 25px rgba(39,82,63,.1);
  }
  body[data-theme="dark"] .answer-option:hover {
    transform: translateX(4px) scale(1.006);
    border-color: #62c7b4;
    box-shadow: 0 5px 14px rgba(3,14,14,.18);
    filter: brightness(1.06);
  }
  body[data-theme="light"] .answer-option:hover {
    transform: translateX(4px) scale(1.006);
    border-color: #347f70;
    box-shadow: 0 5px 14px rgba(39,82,63,.1);
    filter: brightness(.99);
  }
  body[data-theme="dark"] :is(.custom-select-option,.drag-tile):hover {
    transform: translateX(3px);
    border-color: #4fae9d;
  }
  body[data-theme="light"] :is(.custom-select-option,.drag-tile):hover {
    transform: translateX(3px);
    border-color: #6da48e;
  }
  body[data-theme="dark"] .session-option:hover {
    transform: translateY(-2px);
    border-color: #4c8f83;
    box-shadow: 0 6px 15px rgba(3,14,14,.14);
  }
  body[data-theme="light"] .session-option:hover {
    transform: translateY(-2px);
    border-color: #8ab29f;
    box-shadow: 0 6px 15px rgba(39,82,63,.08);
  }
  body[data-theme="dark"] .hotspot-zone:hover {
    filter: drop-shadow(0 0 4px rgba(98,199,180,.38));
  }
  body[data-theme="light"] .hotspot-zone:hover {
    filter: drop-shadow(0 0 4px rgba(52,127,112,.28));
  }
}

/* When an answer is chosen, highlight its label like selected text in the browser. */
body[data-theme="dark"] ::selection {
  color: #102824;
  background: #80dfcc;
}
body[data-theme="light"] ::selection {
  color: #ffffff;
  background: #347f70;
}
