:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#eaf4ff;font-synthesis:none;--bg:#050b14;--panel:#0a1524;--panel-2:#0e1b2c;--panel-3:#122238;--line:#20334a;--muted:#8297ae;--text:#edf6ff;--cyan:#55e6c1;--cyan-soft:#55e6c11f;--yellow:#ffd84d;--yellow-soft:#ffd84d1f;--blue:#70a7ff;--red:#ff6b7d;--radius:14px;background:#050b14;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--bg);min-width:320px}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0;font-size:16px;line-height:1.5}button,input,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #55e6c161}button:disabled{cursor:not-allowed;opacity:.62}h1,h2,h3,p{margin-top:0}.brand{letter-spacing:.08em;white-space:nowrap;align-items:center;gap:10px;font-size:1.05rem;display:inline-flex}.brand>span:nth-child(2) strong{color:var(--cyan)}.brand-mark{color:#07111f;background:var(--cyan);border-radius:9px 3px;place-items:center;width:38px;height:38px;display:grid;transform:rotate(-2deg);box-shadow:0 0 28px #55e6c140}.brand small{color:var(--yellow);border:1px solid #ffd84d5c;border-radius:4px;padding:3px 6px;font:700 .63rem ui-monospace,monospace}.eyebrow{color:var(--cyan);letter-spacing:.15em;margin-bottom:12px;font:700 .73rem ui-monospace,SFMono-Regular,Menlo,monospace}.eyebrow span{vertical-align:middle;background:var(--cyan);width:18px;height:2px;margin-right:8px;display:inline-block}.primary-button,.run-button{cursor:pointer;color:#06121a;background:var(--cyan);border:0;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:0 20px;font-weight:800;transition:transform .18s,box-shadow .18s;display:inline-flex;box-shadow:0 8px 30px #55e6c129}.primary-button:hover,.run-button:hover{transform:translateY(-1px);box-shadow:0 11px 34px #55e6c13d}.primary-button svg,.run-button svg{width:18px}.wide{width:100%}.ghost-button{color:#b9cadc;border:1px solid var(--line);cursor:pointer;background:#0b1726;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:0 13px;font-size:.88rem;font-weight:700;display:inline-flex}.ghost-button:hover{color:#fff;border-color:#466079}.ghost-button svg{width:17px}.icon-button{border:1px solid var(--line);width:40px;height:40px;color:var(--muted);cursor:pointer;background:#0a1625;border-radius:9px;place-items:center;display:grid}.icon-button:hover{color:#fff;border-color:#456079}.icon-button svg{width:18px}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-shell{background:radial-gradient(circle at 23% 42%,#2d7ea42e,#0000 29%),radial-gradient(circle at 85% 20%,#55e6c114,#0000 24%),#050b14;grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr);align-items:center;gap:clamp(40px,7vw,120px);min-height:100vh;padding:clamp(28px,5vw,80px) max(6vw,28px);display:grid;position:relative;overflow:hidden}.login-grid{pointer-events:none;opacity:.38;background-image:linear-gradient(#70a7ff0e 1px,#0000 1px),linear-gradient(90deg,#70a7ff0e 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000,#0000 82%);mask-image:linear-gradient(90deg,#000,#0000 82%)}.login-story,.login-card{z-index:1;position:relative}.login-story .brand{margin-bottom:clamp(60px,10vh,120px)}.login-story h1{letter-spacing:-.055em;text-wrap:balance;max-width:720px;margin-bottom:18px;font-size:clamp(2.8rem,5.8vw,6rem);line-height:.96}.login-lead{color:#a9bed2;max-width:620px;font-size:clamp(1.07rem,1.5vw,1.28rem)}.mission-preview{border-radius:var(--radius);background:linear-gradient(90deg,#55e6c114,#07111f80);border:1px solid #55e6c133;align-items:center;gap:22px;max-width:680px;margin-top:40px;padding:18px;display:flex}.radar{width:72px;height:72px;color:var(--yellow);background:repeating-radial-gradient(circle,#0000 0 12px,#55e6c11f 13px 14px);border:1px solid #55e6c173;border-radius:50%;flex:0 0 72px;place-items:center;display:grid;position:relative}.radar span{border-top:2px solid var(--cyan);border-radius:50%;animation:4s linear infinite spin;position:absolute;inset:5px}.mission-preview small,.mission-preview strong{display:block}.mission-preview small{color:var(--cyan);letter-spacing:.15em;font:700 .7rem ui-monospace,monospace}.mission-preview strong{margin:3px 0;font-size:1.05rem}.mission-preview p{color:var(--muted);margin:0;font-size:.91rem}.mission-stats{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;gap:28px;margin-top:30px;font-size:.8rem;display:flex}.mission-stats b{color:#fff;margin-right:4px;font-size:1rem}.login-card{background:linear-gradient(145deg,#0f1d2ff7,#08121ff5);border:1px solid #1d3348;border-radius:20px;justify-self:end;width:min(100%,500px);padding:clamp(24px,4vw,44px);box-shadow:0 28px 90px #00000073,inset 0 1px #ffffff08}.role-switch{border:1px solid var(--line);background:#07111f;border-radius:10px;grid-template-columns:1fr 1fr;margin-bottom:36px;padding:4px;display:grid}.role-switch button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;padding:9px;font-weight:750}.role-switch button[aria-selected=true]{color:#fff;background:#16293d;box-shadow:0 1px 5px #0000004d}.login-card-head{align-items:center;gap:15px;margin-bottom:30px;display:flex}.login-card-head .eyebrow{margin:0 0 3px}.login-card-head h2{margin:0;font-size:1.35rem}.icon-plate{width:49px;height:49px;color:var(--cyan);background:var(--cyan-soft);border:1px solid #55e6c147;border-radius:12px;flex:none;place-items:center;display:grid}.icon-plate svg{width:23px}.login-card form{gap:18px;display:grid}.login-card label{color:#95aabe;letter-spacing:.09em;text-transform:uppercase;gap:7px;font:750 .73rem ui-monospace,monospace;display:grid}.login-card input{color:#fff;letter-spacing:0;text-transform:none;background:#07111e;border:1px solid #2a4057;border-radius:8px;width:100%;min-height:52px;padding:0 14px;font-size:1rem}.login-card input::placeholder{color:#53677c}.login-card input:focus{border-color:var(--cyan)}.login-card .code-input{color:var(--yellow);letter-spacing:.12em;font:800 1rem ui-monospace,monospace}.form-error{color:#ff9aaa;align-items:center;gap:7px;margin:-4px 0 0;font-size:.85rem;display:flex}.privacy-note{text-align:center;color:#647990;margin:18px 0 0;font-size:.78rem}.app-shell{background:var(--bg);grid-template-rows:64px auto;grid-template-columns:260px 1fr;min-height:100vh;display:grid}.topbar{z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#050b14ed;border-bottom:1px solid #1b2b3e;grid-column:1/-1;align-items:center;gap:24px;min-height:64px;padding:0 22px;display:flex;position:sticky;top:0}.topbar .brand{margin-right:auto}.topbar-status{color:#8fa5ba;letter-spacing:.12em;align-items:center;gap:8px;font:700 .7rem ui-monospace,monospace;display:flex}.student-presence-note{color:#748ba0;align-items:center;gap:7px;font-size:.72rem;display:flex}.student-presence-note svg{width:15px;color:var(--cyan)}.live-dot{background:var(--cyan);width:7px;height:7px;box-shadow:0 0 12px var(--cyan);border-radius:50%;animation:2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.42}}.profile-chip{border-left:1px solid var(--line);align-items:center;gap:9px;padding-left:20px;display:flex}.profile-chip>span{color:#07111f;background:var(--yellow);border-radius:8px;place-items:center;width:34px;height:34px;font-size:.72rem;font-weight:900;display:grid}.profile-chip div{line-height:1.15;display:grid}.profile-chip small{color:var(--muted);letter-spacing:.12em;font:700 .62rem ui-monospace,monospace}.profile-chip strong{font-size:.86rem}.mission-nav{background:#07101c;border-right:1px solid #1b2b3e;flex-direction:column;align-self:start;height:calc(100vh - 64px);padding:25px 16px;display:flex;position:sticky;top:64px;overflow-y:auto}.progress-ring{--progress:0deg;background:conic-gradient(var(--cyan) var(--progress), #15263a 0);border-radius:50%;width:80px;height:80px;margin:0 auto 10px;padding:5px}.progress-ring>div{text-align:center;background:#07101c;border-radius:50%;grid-template-columns:auto auto;place-content:center;align-items:baseline;height:100%;display:grid}.progress-ring strong{font-size:1.45rem;line-height:1}.progress-ring small{color:var(--muted)}.mission-nav>p{text-align:center;color:var(--muted);letter-spacing:.15em;font:700 .66rem ui-monospace,monospace}.mission-nav>p small{color:var(--yellow);font:inherit;letter-spacing:.06em;margin-top:3px;display:block}.mission-nav nav{gap:8px;margin-top:12px;display:grid}.mission-nav nav button{color:#7890a7;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;grid-template-columns:34px 1fr 18px;align-items:center;gap:10px;width:100%;min-height:75px;padding:9px;display:grid;position:relative}.mission-nav nav button:hover:not(:disabled),.mission-nav nav button.active{color:#fff;background:#0d1b2c;border-color:#20384e}.mission-nav nav button.active:before{content:"";background:var(--cyan);width:3px;height:42px;position:absolute;left:-17px;box-shadow:0 0 14px #55e6c180}.mission-nav nav button:disabled{cursor:not-allowed;opacity:.45}.mission-nav nav button>span{color:#7e96ad;background:#122135;border-radius:8px;place-items:center;width:32px;height:32px;font:800 .75rem ui-monospace,monospace;display:grid}.mission-nav nav button.active>span{color:#07111f;background:var(--cyan)}.mission-nav nav button.done>span{color:#07111f;background:var(--yellow)}.mission-nav nav button svg{width:15px}.mission-nav nav button div{min-width:0;display:grid}.mission-nav nav small{color:#597188;letter-spacing:.08em;font:700 .6rem ui-monospace,monospace}.mission-nav nav strong{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.nav-footer{color:var(--yellow);background:#0a1726;border:1px solid #1c3248;border-radius:10px;align-items:center;gap:10px;margin-top:auto;padding:13px;display:flex}.nav-footer svg{width:18px}.nav-footer span{color:#b0c2d3;font-size:.72rem;line-height:1.25}.nav-footer small{color:var(--muted);letter-spacing:.1em;font:700 .58rem ui-monospace,monospace;display:block}.mission-main{background-image:linear-gradient(#70a7ff06 1px,#0000 1px),linear-gradient(90deg,#70a7ff06 1px,#0000 1px);background-size:38px 38px;min-width:0;padding:clamp(24px,3vw,46px)}.mission-heading{justify-content:space-between;align-items:end;gap:30px;max-width:1500px;margin:0 auto 28px;display:flex}.mission-heading h1,.admin-heading h1{letter-spacing:-.045em;margin-bottom:8px;font-size:clamp(2rem,3.2vw,3.4rem);line-height:1}.mission-heading>div:first-child>h1+p,.admin-heading>div>p:last-child{color:#91a7bb;max-width:700px;margin:0}.mission-briefing{border-left:2px solid var(--yellow);color:#d8c984;background:var(--yellow-soft);max-width:760px;margin:14px 0 0;padding:10px 13px;font:.78rem/1.55 ui-monospace,monospace}.concept-chips{flex-wrap:wrap;justify-content:flex-end;gap:7px;max-width:440px;display:flex}.concept-chips span{color:#8fa8be;background:#091524;border:1px solid #284057;border-radius:99px;padding:5px 9px;font:700 .7rem ui-monospace,monospace}.student-workspace{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:20px;max-width:1500px;margin:auto;display:grid}.workspace-primary,.workspace-side{gap:16px;min-width:0;display:grid}.task-tabs{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.task-tabs button{border:1px solid var(--line);color:#8298ad;cursor:pointer;white-space:nowrap;background:#081422;border-radius:8px;align-items:center;gap:8px;min-height:42px;padding:0 13px;font-size:.83rem;font-weight:750;display:flex}.task-tabs button.active{color:#fff;background:var(--cyan-soft);border-color:#55e6c159}.task-tabs button.bonus{color:#d8c984;border-color:#ffd84d3d}.task-tabs button.bonus.active{color:#fff;background:var(--yellow-soft);border-color:#ffd84d8c}.task-tabs button span{color:#07111f;background:#48627b;border-radius:5px;place-items:center;width:21px;height:21px;font-size:.7rem;display:grid}.task-tabs button.active span{background:var(--cyan)}.task-tabs button.bonus span,.task-tabs button.bonus.active span{background:var(--yellow)}.task-tabs button svg{width:13px}.code-lab{border-radius:var(--radius);background:#09131f;border:1px solid #22364c;overflow:hidden;box-shadow:0 20px 60px #00000030}.code-lab.bonus-lab{border-color:#ffd84d61;box-shadow:0 20px 60px #00000030,inset 0 1px #ffd84d14}.lab-toolbar{background:#0d1927;border-bottom:1px solid #1d3044;justify-content:space-between;align-items:center;height:45px;padding:0 13px;display:flex}.lab-toolbar>div{align-items:center;gap:15px;display:flex}.lab-toolbar .lab-toolbar-status{gap:7px}.window-dots{gap:5px;display:flex}.window-dots i{background:#31475d;border-radius:50%;width:8px;height:8px}.window-dots i:first-child{background:#ff6577}.window-dots i:nth-child(2){background:#ffd64a}.window-dots i:nth-child(3){background:#55e6c1}.file-tab{color:#a8bbcd;font:700 .73rem ui-monospace,monospace}.task-state{color:#71869a;text-transform:uppercase;border:1px solid #2b3e51;border-radius:5px;align-items:center;gap:5px;padding:3px 7px;font:700 .63rem ui-monospace,monospace;display:inline-flex}.task-state.passed{color:var(--cyan);background:var(--cyan-soft);border-color:#55e6c14d}.task-state.bonus{color:var(--yellow);background:var(--yellow-soft);border-color:#ffd84d4d}.live-sync{color:#7890a6;text-transform:uppercase;align-items:center;gap:5px;font:700 .61rem ui-monospace,monospace;display:inline-flex}.live-sync svg{width:13px;height:13px}.live-sync.synced{color:var(--cyan)}.live-sync.error{color:#ff8794}.task-brief{background:linear-gradient(100deg,#18364c7a,#0000);border-bottom:1px solid #1c2d40;min-height:120px;padding:24px 26px 20px 145px;position:relative}.task-index{color:var(--cyan);letter-spacing:.08em;align-items:center;gap:6px;font:800 .69rem ui-monospace,monospace;display:flex;position:absolute;top:27px;left:25px}.task-index svg{width:17px}.task-index.bonus{color:var(--yellow)}.task-brief h3{margin:0 0 5px;font-size:1.25rem}.task-brief p{color:#94a9bc;margin:0}.editor-wrap{background:#060e18;grid-template-columns:52px 1fr;min-height:335px;display:grid;position:relative}.line-numbers{text-align:right;-webkit-user-select:none;user-select:none;color:#3e556b;background:#07111c;border-right:1px solid #15263a;flex-direction:column;padding-top:19px;font:14px/1.65 ui-monospace,SFMono-Regular,Menlo,monospace;display:flex}.line-numbers span{height:23.1px;padding-right:13px}.code-editor{resize:vertical;color:#d9eaff;width:100%;min-height:335px;caret-color:var(--yellow);tab-size:4;white-space:pre;background:0 0;border:0;outline:0;padding:18px 20px;font:15px/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.lab-actions{background:#0b1725;border-top:1px solid #16283b;align-items:center;gap:9px;padding:13px;display:flex}.run-button{min-height:42px;padding-inline:17px}.reset-button{margin-left:auto}.hint-box{color:#d8c984;background:var(--yellow-soft);border-top:1px solid #ffd84d29;gap:11px;padding:14px 17px;font-size:.87rem;display:flex}.hint-box svg{color:var(--yellow);flex:none}.hint-box span{display:grid}.hint-box strong{color:var(--yellow);letter-spacing:.1em;text-transform:uppercase;font:800 .66rem ui-monospace,monospace}.test-results{border-top:1px solid;padding:18px}.test-results.success{background:#1e605329;border-color:#55e6c14d}.test-results.needs-work{background:#58491521;border-color:#ffd84d3d}.result-head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.result-head>span{color:#06121a;background:var(--cyan);border-radius:9px;place-items:center;width:38px;height:38px;display:grid}.needs-work .result-head>span{background:var(--yellow)}.result-head svg{width:19px}.result-head strong{display:block}.result-head p{color:#91a6b9;margin:1px 0 0;font-size:.82rem}.test-row{border-top:1px solid #7896b41f;gap:9px;padding:9px 5px;display:flex}.test-row>span{border-radius:50%;flex:none;place-items:center;width:22px;height:22px;display:grid}.test-row svg{width:13px}.test-ok{color:var(--cyan);background:var(--cyan-soft)}.test-fail{color:#07111f;background:var(--yellow)}.test-row strong{font-size:.84rem;display:block}.test-row small{color:#8fa5b9;margin-top:3px;display:block}.test-row code{color:var(--yellow)}.python-error,.python-output{color:#ff93a2;white-space:pre-wrap;background:#050b13;border-radius:7px;padding:12px;font:.75rem/1.5 ui-monospace,monospace;overflow:auto}.python-output{color:#adbed0}.timeline-card,.question-panel{border-radius:var(--radius);background:#091523;border:1px solid #203449}.section-title{align-items:center;gap:11px;display:flex}.section-title>svg{width:20px;color:var(--cyan)}.section-title span{color:#698198;letter-spacing:.12em;font:800 .62rem ui-monospace,monospace;display:block}.section-title h2,.section-title h3{margin:0;font-size:1rem}.timeline-card{padding:19px}.timeline{margin-top:18px}.timeline-row{color:#91a5b8;grid-template-columns:28px 13px 1fr;align-items:start;gap:8px;min-height:51px;display:grid}.timeline-row>span{color:#586f86;font:700 .66rem ui-monospace,monospace}.timeline-row>i{border:2px solid #587188;border-radius:50%;width:8px;height:8px;margin-top:3px;position:relative}.timeline-row>i:after{content:"";background:#21384e;width:2px;height:40px;position:absolute;top:8px;left:1px}.timeline-row:last-child>i:after{display:none}.timeline-row.code>i{border-color:var(--cyan)}.timeline-row.team>i{border-color:var(--yellow)}.timeline-row div{line-height:1.22;display:grid}.timeline-row strong{font-size:.76rem}.timeline-row small{color:#5f768d;font-size:.68rem}.question-panel{overflow:hidden}.question-panel>.section-title{border-bottom:1px solid #1d3045;padding:18px}.question-panel form{padding:13px}.question-panel textarea,.inbox-item textarea{resize:vertical;color:#fff;background:#07111e;border:1px solid #294158;border-radius:8px;width:100%;min-height:86px;padding:11px;font-size:.84rem}.question-panel textarea::placeholder,.inbox-item textarea::placeholder{color:#52677a}.question-panel form>div{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.question-panel form small{color:#566e84}.question-panel form button,.inbox-item form button,.download-card button{color:#06121a;background:var(--cyan);cursor:pointer;border:0;border-radius:7px;align-items:center;gap:6px;padding:8px 11px;font-size:.75rem;font-weight:800;display:inline-flex}.question-panel form button svg,.inbox-item form button svg,.download-card button svg{width:14px}.question-message{color:var(--cyan);margin:0 13px 10px;font-size:.75rem}.question-history{border-top:1px solid #1d3045;max-height:340px;overflow-y:auto}.question-history article{border-bottom:1px solid #182b3e;padding:13px}.question-history article>small{color:#637c92;letter-spacing:.07em;font:700 .59rem ui-monospace,monospace}.question-history article>p{color:#a8bbcd;margin:5px 0;font-size:.8rem}.question-history blockquote{border-left:2px solid var(--cyan);color:#b8ccdb;background:var(--cyan-soft);margin:9px 0 0;padding:9px 10px;font-size:.78rem}.question-history blockquote strong{color:var(--cyan);font-size:.67rem;display:block}.empty-note{color:#687f94;text-align:center;margin:0;padding:20px;font-size:.83rem}.download-card{border-radius:var(--radius);background:linear-gradient(100deg,#ffd84d1f,#0e1b2ccc);border:1px solid #ffd84d4d;grid-template-columns:60px 1fr auto;align-items:center;gap:17px;padding:20px;display:grid}.download-icon{color:#07111f;background:var(--yellow);border-radius:13px;place-items:center;width:55px;height:55px;display:grid}.download-card span{color:var(--yellow);letter-spacing:.12em;font:800 .63rem ui-monospace,monospace}.download-card h3{margin:2px 0}.download-card p{color:#91a5b8;margin:0;font-size:.83rem}.download-card button{background:var(--yellow);min-height:42px;padding-inline:15px}.admin-shell{background:var(--bg);min-height:100vh}.admin-topbar{position:sticky}.admin-breadcrumb{color:#7890a6;letter-spacing:.08em;flex:1;align-items:center;gap:7px;font:700 .7rem ui-monospace,monospace;display:flex}.admin-breadcrumb svg{width:13px}.class-code{background:#091523;border:1px solid #2a4157;border-radius:7px;align-items:baseline;gap:8px;padding:6px 11px;display:flex}.class-code small{color:#698198;letter-spacing:.1em;font:700 .6rem ui-monospace,monospace}.class-code strong{color:var(--yellow);letter-spacing:.08em;font:800 .85rem ui-monospace,monospace}.admin-main{width:min(1520px,100%);margin:auto;padding:clamp(25px,4vw,55px)}.admin-heading{justify-content:space-between;align-items:end;gap:25px;margin-bottom:28px;display:flex}.phase-control{border-radius:var(--radius);background:#081421;border:1px solid #20354b;padding:22px}.phase-track{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px;display:grid;position:relative}.phase-track:before{content:"";background:#1f374c;height:2px;position:absolute;top:29px;left:12%;right:12%}.phase-track button{z-index:1;color:#73899e;text-align:left;cursor:pointer;background:#0a1726;border:1px solid #294056;border-radius:10px;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;min-height:74px;padding:10px 13px;display:grid;position:relative}.phase-track button.open{color:#fff;background:linear-gradient(100deg,#55e6c11a,#0a1726);border-color:#55e6c15c}.phase-track button.last-open{border-color:var(--yellow);box-shadow:inset 0 0 0 1px #ffd84d24}.phase-track button>span{color:#748ba0;background:#17283a;border-radius:9px;place-items:center;width:38px;height:38px;display:grid}.phase-track button.open>span{color:#07111f;background:var(--cyan)}.phase-track button svg{width:18px}.phase-track button div{display:grid}.phase-track button small{color:#61798e;letter-spacing:.08em;font:700 .6rem ui-monospace,monospace}.phase-track button strong{font-size:.84rem}.phase-track button>b{color:#637c91;letter-spacing:.08em;font:800 .59rem ui-monospace,monospace}.phase-track button.open>b{color:var(--cyan)}.phase-track button.last-open>b{color:var(--yellow)}.phase-note{color:#637b90;margin:14px 0 0;font-size:.74rem}.class-manager{border-radius:var(--radius);background:#081421;border:1px solid #20354b;margin-top:18px;padding:22px}.class-manager-head{justify-content:space-between;align-items:center;gap:18px;display:flex}.copy-code{min-height:38px;color:var(--yellow);background:var(--yellow-soft);cursor:pointer;border:1px solid #ffd84d4d;border-radius:7px;align-items:center;gap:7px;padding:0 12px;font:800 .72rem ui-monospace,monospace;display:inline-flex}.copy-code svg{width:15px}.class-manager-note{color:#7890a6;margin:13px 0;font-size:.8rem}.class-switcher{gap:9px;padding-bottom:4px;display:flex;overflow-x:auto}.class-switcher button{color:#8ca2b6;text-align:left;cursor:pointer;background:#0a1726;border:1px solid #294056;border-radius:9px;gap:2px;min-width:180px;padding:11px 13px;display:grid}.class-switcher button.current{background:var(--cyan-soft);border-color:#55e6c173}.class-switcher span{color:var(--yellow);letter-spacing:.08em;font:800 .76rem ui-monospace,monospace}.class-switcher strong{color:#eaf4ff;font-size:.82rem}.class-switcher small{color:#60798f;font-size:.68rem}.class-create{border-top:1px solid #1d3044;grid-template-columns:minmax(180px,1fr) minmax(180px,.8fr) auto;align-items:end;gap:12px;margin-top:15px;padding-top:15px;display:grid}.class-create label{color:#8299ad;letter-spacing:.07em;text-transform:uppercase;gap:6px;font:750 .68rem ui-monospace,monospace;display:grid}.class-create label span{color:#526b82;font-weight:600;display:inline}.class-create input{color:#fff;letter-spacing:0;text-transform:none;background:#07111e;border:1px solid #294158;border-radius:8px;width:100%;min-height:46px;padding:0 12px;font-size:.9rem}.class-create label:nth-child(2) input{color:var(--yellow);letter-spacing:.07em;font:800 .85rem ui-monospace,monospace}.class-create .primary-button{white-space:nowrap;min-height:46px}.manager-message{color:var(--cyan);margin:12px 0 0;font-size:.8rem}.manager-message.error{color:#ff9aaa}.admin-stats{grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0;display:grid}.admin-stats article{background:#091522;border:1px solid #20354a;border-radius:12px;align-items:center;gap:14px;padding:18px;display:flex}.admin-stats article>span{width:45px;height:45px;color:var(--cyan);background:var(--cyan-soft);border-radius:11px;place-items:center;display:grid}.admin-stats article.attention>span{color:var(--yellow);background:var(--yellow-soft)}.admin-stats svg{width:21px}.admin-stats article>div{grid-template-columns:auto auto;align-items:baseline;column-gap:7px;display:grid}.admin-stats small{color:#6b8399;letter-spacing:.1em;grid-column:1/-1;font:700 .62rem ui-monospace,monospace}.admin-stats strong{font-size:1.7rem;line-height:1.1}.admin-stats em{color:#6e8498;font:700 .85rem ui-monospace,monospace}.admin-stats p{color:#8398ab;margin:0;font-size:.75rem}.admin-grid{grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);gap:18px;display:grid}.crew-panel,.inbox-panel{border-radius:var(--radius);background:#081421;border:1px solid #20354a;min-width:0;overflow:hidden}.panel-head{border-bottom:1px solid #1e3246;justify-content:space-between;align-items:center;gap:16px;min-height:70px;padding:16px 18px;display:flex}.panel-head>span{color:#6f879c;font-size:.75rem}.crew-table{overflow-x:auto}.presence-explainer{color:#7890a6;background:#091725;border-bottom:1px solid #172a3d;align-items:center;gap:7px;margin:0;padding:10px 18px;font-size:.72rem;line-height:1.45;display:flex}.presence-explainer svg{width:14px;color:var(--cyan);flex:none}.crew-row{color:#9cb0c1;border-bottom:1px solid #172a3d;grid-template-columns:1.4fr 1.05fr 1.2fr .72fr .5fr .6fr;align-items:center;gap:15px;min-width:930px;min-height:61px;padding:8px 18px;font-size:.8rem;display:grid}.live-code-button{color:#8bdfff;cursor:pointer;background:#30c6ff14;border:1px solid #30c6ff4d;border-radius:7px;justify-content:center;align-items:center;gap:6px;width:fit-content;padding:7px 9px;font:800 .67rem ui-monospace,monospace;display:inline-flex}.live-code-button:hover{border-color:var(--cyan);color:#fff;background:#30c6ff24}.live-code-button svg{width:14px}.live-code-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#01070ed1;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.live-code-dialog{background:#071320;border:1px solid #29455e;border-radius:14px;flex-direction:column;width:min(1000px,94vw);max-height:90vh;display:flex;overflow:hidden;box-shadow:0 28px 90px #00000094,0 0 40px #30c6ff14}.live-code-dialog>header{background:linear-gradient(120deg,#0b1c2d,#091624);border-bottom:1px solid #1b3145;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;display:flex}.live-code-dialog h2{color:#f2f8ff;margin:3px 0 0;font-size:1.25rem}.live-code-kicker{color:var(--cyan);letter-spacing:.1em;align-items:center;gap:7px;font:800 .65rem ui-monospace,monospace;display:inline-flex}.live-code-kicker i{background:var(--cyan);width:7px;height:7px;box-shadow:0 0 10px var(--cyan);border-radius:50%}.live-code-meta{color:#7890a6;border-bottom:1px solid #172a3d;align-items:center;gap:18px;min-height:54px;padding:10px 20px;font-size:.75rem;display:flex}.live-code-meta>span:first-child{color:#c3d3df;margin-right:auto;display:grid}.live-code-meta b{color:var(--yellow);font:800 .66rem ui-monospace,monospace}.live-code-meta button{color:#7edcf8;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;font-weight:750;display:inline-flex}.live-code-meta button svg{width:15px}.live-code-source{color:#d8ebf8;tab-size:4;white-space:pre;background:#030b13;min-height:360px;margin:0;padding:22px;font:500 .9rem/1.7 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.live-code-empty{text-align:center;color:#6f879b;place-items:center;padding:80px 24px;display:grid}.live-code-empty svg{color:#294f69;width:42px;height:42px}.live-code-empty h3{color:#bfd0dd;margin:14px 0 3px}.live-code-empty p{max-width:440px;margin:0}.crew-header{color:#5e768b;letter-spacing:.08em;background:#0a1725;min-height:38px;font:700 .59rem ui-monospace,monospace}.crew-name{color:#fff;align-items:center;gap:9px;display:flex}.crew-name i{color:#07111f;background:#70a7ff;border-radius:7px;place-items:center;width:31px;height:31px;font-size:.62rem;font-style:normal;font-weight:900;display:grid}.mini-progress{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.mini-progress>i{background:#1c3043;border-radius:9px;width:75px;height:5px;overflow:hidden}.mini-progress b{border-radius:inherit;background:var(--cyan);height:100%;display:block}.mini-progress small{color:var(--yellow);font:700 .58rem ui-monospace,monospace}.presence-badge{color:#758ba0;letter-spacing:.035em;white-space:nowrap;background:#0a1725;border:1px solid #2b4054;border-radius:6px;justify-self:start;align-items:center;gap:5px;min-height:25px;padding:3px 7px;font:800 .57rem ui-monospace,monospace;display:inline-flex}.presence-badge>i{background:currentColor;border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px}.presence-badge svg{width:13px}.presence-badge b{font:inherit}.presence-active{color:var(--cyan);background:var(--cyan-soft);border-color:#55e6c147}.presence-other-tab{color:var(--yellow);background:var(--yellow-soft);border-color:#ffd84d3d}.presence-cursor-out{color:#e9a86a;background:#e9a86a17;border-color:#e9a86a3d}.presence-idle{color:#8fa7be}.presence-offline{color:#60768b;opacity:.72}.status-done,.status-help,.status-active{border-radius:4px;justify-self:start;padding:3px 6px;font:800 .58rem ui-monospace,monospace}.status-done{color:var(--cyan);background:var(--cyan-soft)}.status-help{color:var(--yellow);background:var(--yellow-soft)}.status-active{color:var(--blue);background:#70a7ff1c}.inbox-badge{background:var(--yellow);border-radius:99px;padding:4px 7px;font-weight:800;color:#07111f!important}.inbox-list{max-height:660px;overflow-y:auto}.inbox-item{border-bottom:1px solid #1b2f42;padding:16px}.inbox-item.answered{opacity:.7}.inbox-meta{grid-template-columns:34px 1fr auto;align-items:center;gap:9px;display:grid}.inbox-meta>span{color:#07111f;background:var(--yellow);border-radius:8px;place-items:center;width:34px;height:34px;font-size:.62rem;font-weight:900;display:grid}.inbox-meta>div{line-height:1.2;display:grid}.inbox-meta strong{font-size:.8rem}.inbox-meta small,.inbox-meta time{color:#627b91;letter-spacing:.06em;font:700 .58rem ui-monospace,monospace}.inbox-item>p{color:#b2c4d3;margin:13px 0;font-size:.85rem}.inbox-item form{gap:8px;display:grid}.inbox-item textarea{min-height:65px}.inbox-item form button{justify-self:end}.loading-screen{background:radial-gradient(circle,#55e6c114,#0000 30%),#050b14;place-content:center;justify-items:center;gap:25px;min-height:100vh;display:grid}.loader-line{background:#15283a;width:220px;height:3px;overflow:hidden}.loader-line span{background:var(--cyan);width:45%;height:100%;animation:1.4s ease-in-out infinite loading;display:block}.loading-screen p{color:var(--muted);letter-spacing:.1em;font:700 .72rem ui-monospace,monospace}@keyframes loading{0%{transform:translate(-100%)}to{transform:translate(320%)}}@media (width<=1120px){.login-shell{grid-template-columns:1fr 430px;gap:40px}.login-story h1{font-size:clamp(2.7rem,5vw,4.5rem)}.student-workspace{grid-template-columns:1fr}.workspace-side{grid-template-columns:1fr 1fr}.admin-grid{grid-template-columns:1fr}.inbox-list{max-height:none}}@media (width<=850px){.login-shell{grid-template-columns:1fr;padding:25px}.login-story .brand{margin-bottom:60px}.mission-preview,.mission-stats{display:none}.login-card{justify-self:stretch;width:100%}.app-shell{display:block}.topbar{gap:12px;padding:0 13px;position:sticky}.topbar .brand small,.topbar-status,.profile-chip div,.admin-breadcrumb,.student-presence-note span{display:none}.profile-chip{border:0;margin-left:auto;padding:0}.mission-nav{z-index:15;border-bottom:1px solid #1b2b3e;border-right:0;flex-direction:row;width:100%;height:auto;padding:8px 12px;position:sticky;top:64px;overflow-x:auto}.progress-ring,.mission-nav>p,.nav-footer{display:none}.mission-nav nav{grid-template-columns:repeat(3,1fr);width:100%;margin:0}.mission-nav nav button{grid-template-columns:30px 1fr;min-height:52px}.mission-nav nav button.active:before{width:auto;height:2px;inset:auto 20% -9px}.mission-nav nav button>svg,.mission-nav nav button small{display:none}.mission-heading{display:block}.concept-chips{justify-content:flex-start;margin-top:15px}.workspace-side,.phase-track,.admin-stats{grid-template-columns:1fr}.class-create{grid-template-columns:1fr 1fr}.class-create .primary-button{grid-column:1/-1}.phase-track:before{display:none}}@media (width<=560px){body{font-size:16px}.login-shell{align-content:start;gap:30px;padding:18px}.login-story .brand{margin-bottom:45px}.login-story h1{font-size:2.8rem}.login-card{padding:20px}.brand>span:nth-child(2){font-size:.9rem}.mission-main,.admin-main{padding:22px 13px}.mission-heading h1,.admin-heading h1{font-size:2rem}.mission-nav nav strong{font-size:.66rem}.task-brief{padding:64px 17px 18px}.task-index{top:20px;left:17px}.editor-wrap{grid-template-columns:38px 1fr}.code-editor{padding:15px 12px;font-size:13px}.line-numbers{font-size:12px}.line-numbers span{height:21.45px;padding-right:8px}.lab-actions{flex-wrap:wrap}.reset-button{margin-left:0}.download-card{grid-template-columns:50px 1fr}.download-card button{grid-column:1/-1;justify-content:center}.admin-heading{display:block}.admin-heading>button{margin-top:15px}.class-code small{display:none}.class-code{margin-left:auto}.phase-track button{grid-template-columns:38px 1fr}.phase-track button>b{display:none}.class-manager-head{flex-direction:column;align-items:flex-start}.class-create{grid-template-columns:1fr}.class-create .primary-button{grid-column:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
