:root{--navy:#0c2c69;--blue:#1a56bd;--blue2:#3776e8;--ink:#192a47;--sub:#697b96;--line:#e1e8f2;--bg:#f5f8fd;--white:#fff;--green:#167960;--amber:#a36b17;--soft:#eaf2ff;--shadow:0 12px 32px rgba(27,57,109,.055)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:15px/1.5 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;background:var(--bg)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a{color:var(--blue)}[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #93b7ff;outline-offset:2px}.muted,.small-note{color:var(--sub)}.small-note{font-size:12px;margin:8px 0 0}.eyebrow{color:#5680c1;font-size:11px;font-weight:900;letter-spacing:1.65px;margin:0 0 8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;border:1px solid transparent;border-radius:10px;padding:12px 18px;font-size:13px;font-weight:800;transition:background .13s,transform .13s;min-height:42px}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--blue);color:white}.btn.primary:hover{background:#1247aa}.btn.light{background:#fff;color:#1a51b4}.btn.ghost{background:#fff;color:#2f5ea6;border-color:#d9e4f5}.toast{position:fixed;top:18px;right:18px;z-index:1000;padding:14px 20px;max-width:420px;color:#fff;background:#18396f;border-radius:14px;box-shadow:0 16px 40px #12305c28;font-size:13px;opacity:0;pointer-events:none;transform:translateY(-14px);transition:.2s}.toast.show{opacity:1;transform:translateY(0)}
.brand{display:flex;align-items:center;gap:12px;white-space:nowrap;font-size:19px;font-weight:800;letter-spacing:-.5px;color:#183f80}.brand strong{font-weight:900}.brand small{display:block;font-size:8px;letter-spacing:1.55px;color:#8ca0bd;font-weight:900;margin-top:4px}.brand-mark{width:45px;height:45px;border-radius:14px;background:linear-gradient(145deg,#1e56bd,#76a6f4);display:grid;place-items:center;color:#fff;font-size:20px;font-weight:900;letter-spacing:-4px;padding-right:4px;box-shadow:0 7px 16px #2356bb25}.brand-mark span{font-size:21px}
.layout{display:grid;grid-template-columns:245px minmax(0,1fr);min-height:100vh;max-width:1670px;margin:auto;background:#f6f9fe}.sidebar{display:flex;flex-direction:column;padding:29px 18px 22px;background:#fff;border-right:1px solid var(--line);min-height:100vh}.sidebar>.brand{margin:1px 6px 46px}.side-label{font-size:10px;font-weight:850;color:#9aabc4;letter-spacing:1.45px;margin:0 14px 11px}.navigation{display:grid;gap:4px}.nav-item{border:0;background:transparent;text-align:left;display:flex;align-items:center;gap:12px;width:100%;padding:12px 15px;border-radius:12px;color:#71809c;font-weight:750;font-size:13px}.nav-item:hover{color:#1d4fab;background:#f4f8ff}.nav-item.active{background:#eaf1ff;color:#1f56ba}.nav-icon{display:inline-grid;place-items:center;font-size:19px;width:24px}.side-spacer{flex:1}.side-help{border-radius:16px;background:linear-gradient(130deg,#eaf3ff,#f4f8ff);padding:18px 16px;margin:25px 0 18px;font-size:12px;color:#6c81a6}.side-help strong{display:block;color:#174283;font-size:14px;margin:7px 0}.side-help p{margin:0}.help-bullet{font-size:24px;color:#3266c3}.sidebar-footer{font-size:11px;color:#94a1b8;display:flex;justify-content:space-between;padding:0 8px}.main-area{min-width:0;display:flex;flex-direction:column}.topbar{background:white;border-bottom:1px solid var(--line);padding:19px 34px;display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:93px}.top-kicker{font-size:11px;color:#92a4bf;font-weight:900;letter-spacing:1.3px}.top-kicker span{color:#2d60b8}.top-subtitle{font-size:12px;margin-top:5px;color:#a5b1c5}.user-panel{display:flex;align-items:center;gap:13px}.mode-tag{font-size:10px;font-weight:900;color:#1c56b6;background:#eaf2ff;border-radius:20px;padding:7px 10px}.user-name{font-size:12px;color:#3e5171;font-weight:750}.avatar{background:#dbe8ff;color:#2458ac;border-radius:50%;height:37px;width:37px;display:grid;place-items:center;font-weight:900}.logout{border:1px solid #e3eaf6;background:#fff;border-radius:11px;height:34px;width:34px;color:#7790b6}.main-content{padding:32px 36px 55px;width:100%;max-width:1390px;margin:auto;flex:1}.app-footer{padding:17px 38px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:#9aa8bd;font-size:10px;gap:12px}
.hero{min-height:250px;position:relative;border-radius:23px;background:linear-gradient(110deg,#0c2d70 0%,#1b51b6 68%,#3f7bd6 100%);color:#fff;overflow:hidden;padding:33px 37px;box-shadow:0 18px 34px #1a4c9d24;display:flex;align-items:center}.hero-copy{position:relative;z-index:2}.hero-eyebrow{color:#b2cdfb;font-weight:850;letter-spacing:1.4px;font-size:10px}.hero h1{font-size:clamp(27px,3vw,38px);letter-spacing:-1.2px;line-height:1.17;margin:13px 0 12px}.hero p{color:#deebff;max-width:520px;font-size:13px;margin:0 0 20px}.hero-drawing{position:absolute;right:45px;top:0;bottom:0;width:290px;opacity:.84}.globe{position:absolute;right:10px;top:20px;width:235px;height:235px;border:1px solid #a4c8ff8a;border-radius:50%;transform:rotate(-28deg);box-shadow:inset 0 0 40px #a3c8fa22}.globe:before,.globe:after{content:'';position:absolute;border:1px solid #b4d2ff77;border-radius:50%;inset:40px 0}.globe:after{inset:0 70px}.orbit1,.orbit2{position:absolute;border:1px dashed #b8d5ff6b;border-radius:50%;inset:70px -30px}.orbit2{inset:-22px 65px}.hero-plane{position:absolute;right:60px;top:83px;font-size:44px;transform:rotate(-20deg)}.hero-pin{position:absolute;right:207px;bottom:43px;font-size:34px;color:#d7e8ff}.section-header{display:flex;justify-content:space-between;gap:12px;align-items:end;margin:30px 0 17px}.section-header h2{font-size:22px;letter-spacing:-.6px;margin:0}.section-header.compact{margin:0 0 20px}.section-header.compact h2{font-size:18px}.subtle-label{color:#91a0b7;font-size:11px}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.stat-card,.surface{background:white;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow)}.stat-card{padding:20px 22px;min-height:145px}.stat-label{font-size:12px;color:#7486a0;font-weight:750;display:block}.stat-card strong{font-size:36px;letter-spacing:-1px;color:#1e4fab;display:block;margin:7px 0 0}.stat-foot{font-size:11px;color:#9caac0;display:block}.stat-foot.positive{color:#208168}.home-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:18px;margin-top:20px}.course-surface{padding:23px}.level-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.level-item{border:1px solid #e2e9f4;background:#fbfcff;border-radius:13px;padding:14px 13px;min-height:135px;display:flex;flex-direction:column}.level-item.selected{background:#edf4ff;border-color:#a7c4f8}.level-item span{color:#91a4c3;font-size:9px;letter-spacing:1px;font-weight:800}.level-item strong{color:#214d99;font-size:22px;margin:6px 0 4px;letter-spacing:-.6px}.level-item small{color:#7c8ba4;font-size:10px}.level-item em{font-style:normal;color:#9baac2;font-size:10px;margin-top:auto;font-weight:750}.level-item.selected em{color:#2664c2}.progress-block{margin-top:23px}.progress-top{display:flex;justify-content:space-between;color:#607393;font-size:11px;font-weight:800;margin-bottom:9px}.progress-top strong{color:#2258b8}.progress-track{height:8px;background:#eaf0fa;border-radius:99px;overflow:hidden}.progress-fill{height:100%;width:0%;background:linear-gradient(90deg,#2461cd,#70a8ee);border-radius:99px;transition:width .4s}.next-surface{padding:27px 23px;background:linear-gradient(135deg,#fefefe,#f5f9ff)}.next-symbol{font-size:39px;color:#3b70c6}.next-surface h2{font-size:20px;line-height:1.24;letter-spacing:-.4px;margin:12px 0}.next-surface p:not(.eyebrow){font-size:12px;color:#7588a4}.next-surface .btn{margin-top:9px}.notice{display:flex;align-items:start;gap:15px;border:1px solid #d8e8ff;border-radius:13px;background:#edf5ff;padding:15px 17px;margin-top:20px;font-size:12px;color:#6a7f9c}.notice>span{color:#2c63bc;font-size:22px}.notice strong{color:#204982}.notice p{margin:3px 0 0}
.page-heading{margin-bottom:23px}.page-heading h1{font-size:30px;letter-spacing:-.9px;margin:4px 0 6px;color:#172d56}.page-heading>p:last-child{font-size:13px;color:#8090ab;margin:0}.tasks-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:19px;align-items:start}.task-list-pane{overflow:hidden}.panel-title{padding:21px 21px 13px;display:flex;justify-content:space-between;align-items:center;font-size:15px}.panel-title span{border-radius:20px;background:#edf3fe;color:#2a61be;padding:4px 9px;font-size:11px;font-weight:800}.filter-row{display:flex;gap:6px;padding:0 16px 13px;border-bottom:1px solid #edf1f8}.chip{border:1px solid #e4eaf5;background:white;color:#7588a5;padding:6px 10px;border-radius:20px;font-size:11px;font-weight:750}.chip.active{background:#e8f0ff;color:#235dbe;border-color:#b9cef8}.task-list{max-height:690px;overflow-y:auto}.task-list-btn{width:100%;background:#fff;display:flex;gap:12px;padding:15px 17px;text-align:left;border:0;border-bottom:1px solid #f0f3f8}.task-list-btn.selected{background:#f2f7ff}.task-num{height:29px;width:29px;display:grid;place-items:center;background:#eaf1ff;border-radius:9px;color:#2659b5;font-size:11px;font-weight:850;flex:none}.task-list-btn strong{font-size:12px;color:#385074;display:block;line-height:1.35}.task-list-btn small{font-size:10px;color:#98a9c0;display:block;margin-top:3px}.pill{display:inline-flex;border-radius:100px;padding:5px 9px;font-size:10px;font-weight:850;white-space:nowrap;background:#f0f3f9;color:#70819d}.pill.PASSED{background:#e5f7f1;color:#16755c}.pill.SUBMITTED{background:#fff1d9;color:#8a640c}.pill.RETAKE_REQUIRED{background:#ffeded;color:#ad5252}.pill.OPEN{background:#edf2fb;color:#7d90ae}.task-list-btn .pill{margin-left:auto;align-self:center}.task-detail{padding:27px 29px}.task-detail .eyebrow{margin:0}.task-title{font-size:24px;margin:10px 0;letter-spacing:-.7px}.task-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:#8492aa;font-size:11px}.task-prompt{font-size:14px;line-height:1.7;background:#f4f7fc;border:1px solid #e9edf4;padding:20px;border-radius:12px;margin-top:23px}.task-warning{font-size:11px;background:#fff5e6;color:#98662a;border:1px solid #f5e0be;border-radius:9px;padding:9px 11px;margin-top:13px}.submission-form{margin-top:23px}.submission-form label,.review-form label{font-size:12px;font-weight:800;color:#526783;display:block;margin:0 0 9px}.submission-form textarea,.review-form textarea,.chat-form input,.teacher-messages select,.review-form input[type="number"]{border:1px solid #dce5f2;border-radius:10px;min-height:41px;padding:11px 13px;background:#fff;color:#203958;outline:0;width:100%}.submission-form textarea:focus,.review-form textarea:focus,.chat-form input:focus{border-color:#89afe8;box-shadow:0 0 0 3px #d6e7ff}.form-divider{height:1px;background:#edf0f6;margin:20px 0}.submission-form input[type=file]{width:100%;font-size:12px;color:#6a7f9f}.form-actions{display:flex;justify-content:flex-end;margin-top:22px}.form-error{padding:11px;background:#fff0f0;color:#a14444;border-radius:8px;margin-top:12px;font-size:12px}.feedback-surface{margin-top:18px;border-radius:13px;padding:18px;background:#eef8f3;color:#1e6d56}.feedback-surface.retake{background:#fff3e7;color:#885a20}.feedback-surface h3{font-size:14px;margin:0 0 7px}.feedback-surface p{font-size:12px;margin:3px 0}.recorder{border:1px solid #e3eaf5;background:#f8faff;border-radius:12px;padding:16px;display:flex;gap:10px;align-items:center;color:#768ba6}.record-circle{border:2px solid #e0afaf;background:#d95757;width:14px;height:14px;border-radius:50%}.record-circle.recording{animation:pulse 1s infinite}.recorder strong{color:#264c8d;letter-spacing:1px}.recorder>span:last-child{font-size:12px}.rec-actions{margin:13px 0}audio{width:100%;margin:8px 0}
.chat-panel{max-width:900px;overflow:hidden}.chat-top{display:flex;gap:12px;align-items:center;padding:19px 24px;border-bottom:1px solid #edf2f8}.teacher-avatar{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:#e6f0ff;color:#3569c0;font-size:20px}.chat-top strong{display:block;font-size:13px}.chat-top small{color:#8798b0;font-size:11px}.chat-messages{padding:20px 24px;min-height:270px;max-height:430px;overflow:auto;display:flex;flex-direction:column;gap:13px}.bubble{background:#f2f6fd;border-radius:13px 13px 13px 3px;padding:11px 13px;max-width:80%;font-size:13px;color:#415779;align-self:start;overflow-wrap:anywhere}.bubble.mine{align-self:end;background:#235bc3;color:#fff;border-radius:13px 13px 3px 13px}.bubble time{display:block;font-size:9px;margin-top:5px;opacity:.65}.chat-form{display:flex;gap:10px;align-items:center;border-top:1px solid #edf2fa;padding:14px 19px}.chat-form input{flex:1}.results-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.results-table th{font-size:11px;color:#8293ad;padding:17px 20px;background:#f8faff}.results-table td{padding:16px 20px;border-top:1px solid #edf1f7}.result-surface{overflow:auto}.empty-state{text-align:center;padding:45px 20px;font-size:13px;color:#8da0ba}.teacher-stats{margin-bottom:23px}.teacher-layout{display:grid;grid-template-columns:350px minmax(0,1fr);gap:18px}.teacher-queue,.review-detail{min-height:290px}.queue-item{display:block;width:100%;text-align:left;padding:15px 20px;background:#fff;border:0;border-top:1px solid #eff3fa}.queue-item.active{background:#edf5ff}.queue-item strong{font-size:12px;color:#304e7d;display:block}.queue-item small{font-size:10px;color:#94a3b9;display:block;margin-top:5px}.review-detail{padding:23px}.review-detail h2{font-size:19px;letter-spacing:-.5px;margin:8px 0 3px}.review-answer{background:#f5f8fd;border:1px solid #e7edf5;border-radius:12px;padding:14px;margin:15px 0;white-space:pre-wrap;font-size:13px;color:#415979;overflow-wrap:anywhere}.review-form{border-top:1px solid #edf2fa;padding-top:17px}.review-scores{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.review-scores label{margin:0}.review-scores input{margin-top:7px}.review-form textarea{margin-top:7px}.review-form .btn{margin-top:15px}.review-critical{display:flex!important;align-items:center;gap:8px;margin-top:12px!important}.teacher-messages{margin-top:19px;padding:21px}.teacher-messages select{max-width:240px;font-size:12px}.teacher-messages .chat-messages{border-top:1px solid #edf1f8;border-bottom:1px solid #edf1f8;min-height:170px;padding:17px 5px}.teacher-messages .chat-form{border:0;padding:14px 0 0}
.login-screen{min-height:100vh;display:grid;grid-template-columns:1.12fr 1fr;background:#fff}.login-card{padding:54px 9% 55px;display:flex;flex-direction:column;justify-content:center;max-width:760px}.brand-login{margin-bottom:75px}.login-emblem{font-size:38px;color:#4277d0}.login-card h1{font-size:clamp(32px,3.8vw,56px);line-height:1.1;letter-spacing:-2px;margin:15px 0;color:#163b79}.login-card>p.muted{max-width:460px;font-size:14px;line-height:1.7}.login-buttons{display:grid;gap:10px;max-width:370px;margin-top:26px}.login-buttons .btn{justify-content:space-between;padding:15px 20px}.login-buttons .hint{font-size:11px;color:#8794ad;line-height:1.5}.login-side{background:linear-gradient(145deg,#0e2c69 0%,#235bc1 70%,#487ddd 100%);padding:70px 9%;color:#fff;display:flex;flex-direction:column;overflow:hidden;position:relative}.side-kicker{font-size:11px;letter-spacing:2.3px;color:#a9c8fb;font-weight:900}.login-side h2{font-size:clamp(28px,3vw,48px);letter-spacing:-1.5px;margin-top:85px;line-height:1.15}.login-side>p{position:absolute;bottom:55px;font-size:13px;font-weight:900;letter-spacing:2px}.login-orbit{position:relative;margin:30px auto 0;width:300px;height:300px;border:2px solid #c5dcff6b;border-radius:50%;transform:rotate(-19deg)}.login-orbit:before,.login-orbit:after{content:'';position:absolute;border:1px solid #c4dcff90;border-radius:50%;inset:50px 0}.login-orbit:after{inset:0 87px}.orbit-inner{font-size:52px;position:absolute;top:70px;left:110px;transform:rotate(18deg)}.error-box{background:#fff0f0;color:#a64a4a;padding:12px;border-radius:10px;margin:15px 0}.teacher-only{display:none}
@keyframes pulse{50%{opacity:.45}}@media(max-width:1100px){.sidebar{width:205px;padding-left:11px;padding-right:11px}.layout{grid-template-columns:205px minmax(0,1fr)}.main-content{padding:25px}.home-grid{grid-template-columns:1fr}.tasks-layout,.teacher-layout{grid-template-columns:300px 1fr}.hero-drawing{opacity:.4}}
@media(max-width:800px){.layout{display:block}.sidebar{min-height:0;padding:12px 16px;gap:0;position:sticky;top:0;z-index:20;border-right:0;border-bottom:1px solid var(--line)}.sidebar>.brand{margin:0 0 8px}.side-label,.side-spacer,.side-help,.sidebar-footer{display:none}.navigation{display:flex;gap:4px;overflow-x:auto}.nav-item{width:auto;white-space:nowrap;padding:8px 12px;font-size:11px}.nav-icon{font-size:16px;width:18px}.topbar{padding:12px 18px;min-height:66px}.top-subtitle{display:none}.user-name{display:none}.main-content{padding:19px 16px 35px}.hero{padding:24px;min-height:230px}.hero-drawing{right:-100px;opacity:.3}.hero h1{font-size:29px}.stat-grid{gap:8px}.stat-card{padding:14px;min-height:118px}.stat-card strong{font-size:29px}.stat-foot{font-size:9px}.level-grid{gap:6px}.level-item{padding:10px 8px;min-height:125px}.level-item strong{font-size:17px}.tasks-layout,.teacher-layout{grid-template-columns:1fr}.task-list{max-height:270px}.task-detail{padding:20px}.app-footer{padding:13px 18px}.login-screen{grid-template-columns:1fr}.login-card{padding:36px 7%;min-height:100vh}.login-side{display:none}}
@media(max-width:500px){.hero h1{font-size:26px}.hero{min-height:250px}.top-kicker{font-size:9px}.topbar{gap:6px}.brand{font-size:15px}.brand-mark{height:36px;width:36px;font-size:17px}.brand small{font-size:6.5px}.sidebar>.brand{margin-bottom:11px}.stat-grid{grid-template-columns:repeat(3,1fr)}.stat-card{padding:12px}.stat-label{font-size:10px}.stat-card strong{font-size:27px}.level-item small{font-size:9px}.level-item em{font-size:9px}.chat-form{flex-direction:column;align-items:stretch}.bubble{max-width:92%}.teacher-messages select{max-width:150px}.review-scores{grid-template-columns:1fr}.results-table th,.results-table td{padding:12px 10px;min-width:80px}}

.attempt-feedback{display:block;max-width:440px;white-space:normal;margin-top:6px;color:var(--sub)}.history-attempt{padding:16px 0;border-bottom:1px solid var(--line)}.history-attempt h3{margin:0 0 8px}.history-attempt p{white-space:pre-wrap;overflow-wrap:anywhere}.history-attempt .review-answer{white-space:pre-wrap}.history-attempt a{display:inline-block;margin-top:8px}
.practice-panel{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;margin-bottom:24px;border:1px solid var(--line);border-radius:16px;background:#fff}.practice-panel p{margin:5px 0 0;color:var(--sub);font-size:13px}.practice-panel button{flex-shrink:0}@media(max-width:600px){.practice-panel{align-items:flex-start;flex-direction:column}.practice-panel button{width:100%}}
