@font-face{font-family:Barlow;src:url("assets/fonts/barlow-400.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Barlow;src:url("assets/fonts/barlow-600.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("assets/fonts/barlow-condensed-700.woff2") format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("assets/fonts/ibm-plex-mono-500.woff2") format("woff2");font-weight:500;font-display:swap}

:root{
  --ink:#171a1a;--ink-2:#252a29;--ink-3:#3c4240;--paper:#f2efe6;--paper-2:#e7e2d7;--paper-3:#d5cec1;
  --orange:#f45b18;--orange-dark:#bb3f0d;--cyan:#00a8b5;--cyan-dark:#006f78;--red:#c9342c;--green:#167a61;
  --line:#aaa397;--line-dark:#535a57;--muted:#6c706d;--white:#fffdf7;--shadow:0 12px 32px rgba(15,17,17,.15),0 2px 5px rgba(15,17,17,.14);
  --sidebar:196px;--topbar:58px;--radius:5px;--ease:cubic-bezier(.16,1,.3,1)
}
*{box-sizing:border-box}
html{background:var(--ink);color:var(--ink);font-family:Barlow,Arial,sans-serif;font-size:16px;scroll-behavior:smooth}
body{margin:0;min-width:320px;background:var(--paper-2);min-height:100vh}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}
.skip-link{position:fixed;top:8px;left:8px;z-index:1000;padding:10px 14px;background:var(--orange);color:var(--ink);font-weight:700;transform:translateY(-150%)}
.skip-link:focus{transform:none}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}
.app-shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}

.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);display:flex;flex-direction:column;background:var(--ink);color:var(--paper);border-right:1px solid #404643;z-index:50}
.brand-lockup{height:95px;display:flex;gap:12px;align-items:center;padding:18px 16px;border-bottom:1px solid #414744}
.brand-mark{display:grid;place-items:center;width:34px;height:34px;background:var(--paper);color:var(--ink);clip-path:polygon(50% 0,100% 100%,0 100%);font-size:10px;padding-top:9px}
.brand-lockup strong{display:block;font-family:"Barlow Condensed",sans-serif;font-size:1.7rem;letter-spacing:.02em;line-height:1}
.brand-lockup span:last-child{display:block;margin-top:6px;color:#a9b0ac;font:500 .68rem/1.2 "IBM Plex Mono",monospace}
.recorder-state{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center;padding:12px 16px;border-bottom:1px solid #414744;font:500 .68rem "IBM Plex Mono",monospace;color:#aeb5b1}
.recorder-state strong{grid-column:2;color:var(--orange);margin-top:3px}
.rec-dot{grid-row:1/3;width:9px;height:9px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(244,91,24,.12);animation:record 2s ease-in-out infinite}
@keyframes record{50%{opacity:.45}}
.primary-nav{padding:10px 0;display:grid;gap:2px}
.nav-item{position:relative;display:flex;width:100%;align-items:center;gap:12px;padding:10px 16px;border:0;background:transparent;color:#bcc2bf;text-align:left;font-weight:600}
.nav-item svg{width:21px;height:21px;flex:0 0 auto}
.nav-item:hover{background:#222725;color:var(--white)}
.nav-item.active{background:#292f2d;color:var(--white)}
.nav-item.active::before{content:"";position:absolute;left:0;inset-block:0;width:4px;background:var(--orange)}
.settings-link{margin-top:auto;border-top:1px solid #414744}
.sidebar-foot{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:14px 16px;border-top:1px solid #414744;color:#aeb5b1;font:500 .65rem "IBM Plex Mono",monospace}
.online-dot{width:7px;height:7px;border-radius:50%;background:var(--cyan)}
.sidebar-foot small{color:#777e7a}

.workspace{grid-column:2;min-width:0}
.topbar{position:sticky;top:0;z-index:40;height:var(--topbar);display:flex;background:#1f2422;color:var(--paper);border-bottom:1px solid #4b514e}
.session-cell{min-width:130px;padding:9px 17px;border-right:1px solid #4b514e}
.session-cell span{display:block;color:#929995;font:500 .62rem "IBM Plex Mono",monospace;letter-spacing:.04em}
.session-cell strong{display:block;margin-top:5px;font:500 .76rem "IBM Plex Mono",monospace;color:var(--white)}
.session-cell:nth-of-type(1) strong{color:var(--orange)}
.session-wide{flex:1}
.menu-button{display:none}
.install-button{align-self:center;margin:0 14px;padding:8px 12px;border:1px solid var(--orange);background:transparent;color:var(--orange);font-weight:600}
main{min-height:calc(100vh - var(--topbar));background-color:var(--paper-2);background-image:linear-gradient(rgba(23,26,26,.025) 1px,transparent 1px);background-size:100% 24px}
.route{display:none;padding:22px clamp(16px,2.2vw,34px) 38px;animation:route-in .35s var(--ease)}
.route.active{display:block}
@keyframes route-in{from{opacity:.35;clip-path:inset(0 0 8% 0)}to{opacity:1;clip-path:inset(0)}}

h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.01em}
h1{font-size:clamp(2.2rem,4.2vw,4.7rem);line-height:.9;margin-bottom:9px;max-width:16ch}
h2{font-size:1.45rem;line-height:1;margin-bottom:0}
h3{font-size:1.2rem}
p{line-height:1.45}
.command-heading,.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:4px 0 20px;border-bottom:2px solid var(--ink)}
.command-heading p,.page-heading p{margin:0;color:#555b58;max-width:65ch}
.date-stamp,.page-stat{min-width:144px;padding:11px 14px;border:1px solid var(--ink);background:var(--paper)}
.date-stamp span,.page-stat span{display:block;font:500 .65rem "IBM Plex Mono",monospace;color:var(--muted)}
.date-stamp strong,.page-stat strong{display:block;margin-top:6px;font:500 .88rem "IBM Plex Mono",monospace}

.clearance-runway{display:grid;grid-template-columns:repeat(5,minmax(128px,1fr)) 1.12fr;gap:0;margin:18px 0;background:var(--ink);border:1px solid var(--ink);box-shadow:var(--shadow)}
.clearance-step,.clearance-verdict{position:relative;min-height:148px;padding:15px;background:var(--paper);border-right:1px solid var(--line)}
.clearance-step::after{content:"";position:absolute;right:-7px;top:50%;width:13px;height:13px;border-radius:50%;background:var(--paper);border:2px solid var(--ink);z-index:2}
.clearance-step:last-of-type::after{display:none}
.clearance-index{font-family:"Barlow Condensed",sans-serif;font-size:2rem;line-height:1;color:var(--muted)}
.clearance-step h3{margin:8px 0 6px;font-size:1.05rem;max-width:12ch}
.clearance-step p{font-size:.78rem;color:#565c58;margin-bottom:12px}
.state-stamp{display:inline-flex;gap:6px;align-items:center;border:1px solid currentColor;padding:5px 8px;color:var(--muted);font:600 .68rem "IBM Plex Mono",monospace}
.state-stamp svg{width:14px;height:14px}
.state-stamp.pass{color:var(--cyan-dark)}
.state-stamp.fail{color:var(--red)}
.clearance-verdict{display:grid;place-items:center;text-align:center;background:var(--ink-2);color:var(--paper);border:0}
.clearance-verdict span{font:500 .65rem "IBM Plex Mono",monospace;color:#aeb5b1}
.clearance-verdict strong{display:block;font:700 2.2rem "Barlow Condensed",sans-serif;color:var(--orange);margin:8px 0}
.clearance-verdict small{font:500 .63rem "IBM Plex Mono",monospace;color:#c9cecb}

.command-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}
.sheet,.worksheet,.data-sheet,.lesson-sheet,.chart-board,.replay-ticket,.protocol-board,.data-controls{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow)}
.sheet{padding:16px}
.sheet-title,.strip-heading,.worksheet-head,.chart-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.sheet-title>span,.strip-heading>span,.worksheet-head>span,.chart-head span{font:500 .62rem "IBM Plex Mono",monospace;color:var(--muted)}
.text-button{border:0;background:transparent;color:var(--cyan-dark);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.risk-readout{display:grid;grid-template-columns:repeat(4,1fr);margin-top:13px}
.risk-readout div{padding:5px 12px;border-right:1px solid var(--line)}
.risk-readout div:first-child{padding-left:0}.risk-readout div:last-child{border:0}
.risk-readout span{display:block;font-size:.72rem;color:var(--muted)}
.risk-readout strong{display:block;margin-top:4px;font:500 1rem "IBM Plex Mono",monospace}
.risk-bar{height:9px;margin:16px 0 9px;background:var(--paper-3);overflow:hidden}
.risk-bar span{display:block;width:100%;height:100%;background:var(--cyan);transform:scaleX(0);transform-origin:left center;transition:transform .5s var(--ease),background .3s}
.microcopy{margin:0;color:var(--muted);font-size:.78rem}
.emotion-readout{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;margin-top:14px}
.emotion-number{font:700 3.2rem/1 "Barlow Condensed",sans-serif;color:var(--cyan-dark)}
.emotion-scale{height:2px;background:var(--line);position:relative}.emotion-scale i{position:absolute;top:-6px;width:14px;height:14px;background:var(--orange);transform:translateX(-50%)}
.emotion-labels{display:flex;justify-content:space-between;margin-top:8px;color:var(--muted);font:500 .6rem "IBM Plex Mono",monospace}
.protocol-line{margin-top:16px;padding:10px;background:var(--ink);color:var(--paper);font-size:.84rem}
.protocol-line strong{color:var(--orange)}
.command-bottom{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;margin-top:14px}
.recorder-strip,.assignment-strip{background:var(--ink);color:var(--paper);padding:14px;border:1px solid #4a504d}
.strip-heading{border-color:#4a504d}.strip-heading>span{color:#9da49f}
.log-list{margin-top:8px}
.log-row{display:grid;grid-template-columns:84px 76px 1fr auto;gap:10px;padding:8px 0;border-bottom:1px dashed #4d5350;font:500 .7rem "IBM Plex Mono",monospace;align-items:center}
.log-row:last-child{border:0}.log-row .pass{color:var(--cyan)}.log-row .fail{color:#ff665f}
.empty-state{padding:24px;text-align:center;color:var(--muted);border:1px dashed var(--line);margin-top:12px}
.assignment-body{display:grid;grid-template-columns:1fr auto;gap:14px;margin-top:14px}
.assignment-body p{font-size:.84rem;color:#bbc1bd;margin:0}.assignment-body strong{color:var(--orange)}
.progress-block{min-width:96px;text-align:right}.progress-block b{display:block;font:700 2rem "Barlow Condensed",sans-serif}.progress-block span{font-size:.7rem;color:#aab1ad}

.page-heading{margin-bottom:18px}.page-heading h1{font-size:clamp(2.1rem,3.4vw,3.8rem)}
.curriculum-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px}
.week-rail{display:grid;align-content:start;background:var(--ink);border:1px solid #4a504d}
.week-button{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;padding:13px 12px;border:0;border-bottom:1px solid #414744;background:transparent;color:#cbd0cd;text-align:left}
.week-button:hover,.week-button.active{background:#2b302e;color:var(--white)}
.week-button.active{box-shadow:inset 4px 0 var(--orange)}
.week-button.locked{opacity:.48;cursor:not-allowed}
.week-number{font:700 1.35rem "Barlow Condensed",sans-serif;color:var(--orange)}
.week-button span:nth-child(2){font-weight:600}.week-button small{font:500 .62rem "IBM Plex Mono",monospace}
.lesson-sheet{padding:24px;min-height:620px}
.lesson-head{display:flex;justify-content:space-between;gap:20px;padding-bottom:20px;border-bottom:2px solid var(--ink)}
.lesson-head h2{font-size:clamp(2rem,4vw,3.8rem);max-width:13ch}.lesson-head p{max-width:55ch;color:var(--muted)}
.week-code{font:700 4rem/1 "Barlow Condensed",sans-serif;color:var(--orange)}
.lesson-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}
.lesson-list{padding:0;margin:13px 0 0;list-style:none}.lesson-list li{padding:10px 0;border-bottom:1px solid var(--line);display:flex;gap:10px}.lesson-list li::before{content:"";width:7px;height:7px;background:var(--orange);margin-top:8px;flex:0 0 auto}
.task-list{display:grid;gap:8px;margin-top:14px}.task-check{display:flex;gap:10px;align-items:flex-start;padding:11px;background:var(--paper-2);border:1px solid var(--line)}
.task-check input{width:18px;height:18px;accent-color:var(--cyan-dark)}
.lesson-gate{margin-top:24px;padding:16px;background:var(--ink);color:var(--paper);display:flex;justify-content:space-between;gap:16px;align-items:center}.lesson-gate strong{color:var(--orange)}
.lesson-meta{display:grid;gap:7px;margin-top:15px}.lesson-meta span{font:500 .69rem "IBM Plex Mono",monospace;color:var(--cyan-dark)}.lesson-meta strong{max-width:70ch;font-size:.82rem;line-height:1.4}
.course-tabs{display:grid;grid-template-columns:repeat(4,1fr);margin-top:20px;border:1px solid var(--ink)}
.course-tab{min-height:46px;border:0;border-right:1px solid var(--ink);background:transparent;color:var(--ink);font-weight:700}.course-tab:last-child{border-right:0}.course-tab:hover{background:var(--paper-2)}.course-tab.active{background:var(--ink);color:var(--paper);box-shadow:inset 0 -4px var(--orange)}
.course-stage{padding-top:24px}.course-stage h3{font-size:1.45rem;margin-bottom:10px}.course-stage p{max-width:72ch}
.course-briefing{padding-bottom:22px;border-bottom:2px solid var(--ink)}.course-briefing p:last-child{margin-bottom:0}
.concept-stack{margin-top:8px}.concept-block{display:grid;grid-template-columns:58px minmax(0,1fr);gap:14px;padding:22px 0;border-bottom:1px solid var(--line)}.concept-index{font:700 2.5rem/1 "Barlow Condensed",sans-serif;color:#8a8479}.concept-block p{margin-bottom:10px}.concept-block ul,.mistake-board ul{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0;margin:0;list-style:none}.concept-block li,.mistake-board li{padding:9px 10px;background:var(--paper-2);border-top:2px solid var(--ink);font-size:.82rem;line-height:1.35}
.formula-board{margin-top:24px;background:var(--ink);color:var(--paper);padding:18px}.formula-board h3{color:var(--orange);padding-bottom:10px;border-bottom:1px solid #4b514e}.formula-row{display:grid;grid-template-columns:minmax(260px,.9fr) 1.1fr;gap:18px;padding:14px 0;border-bottom:1px dashed #4b514e}.formula-row:last-child{border-bottom:0}.formula-row strong{display:block;margin-bottom:7px}.formula-row code{display:block;color:var(--cyan);font:500 .8rem/1.5 "IBM Plex Mono",monospace}.formula-row p{margin:0;color:#c4cac6;font-size:.82rem}
.mistake-board{margin-top:24px;padding-top:20px;border-top:2px solid var(--ink)}.mistake-board li{border-top-color:var(--red)}
.course-next{margin-top:24px}
.worked-example{position:relative;padding:24px;border:1px solid var(--ink);background:var(--paper-2)}.example-label{display:inline-block;margin-bottom:14px;padding:5px 7px;background:var(--ink);color:var(--paper);font:500 .63rem "IBM Plex Mono",monospace}.worked-example>h3{font-size:2rem}.example-scenario{font-weight:600}.worked-example ol,.drill-sheet ol{padding-left:24px;counter-reset:steps}.worked-example li,.drill-sheet li{padding:10px 0 10px 8px;border-bottom:1px solid var(--line);line-height:1.45}.example-result{margin-top:18px;padding:16px;background:var(--ink);color:var(--paper)}.example-result strong{color:var(--orange)}.example-result p{margin:6px 0 0}
.practice-stage{display:grid;gap:22px}.drill-sheet{padding:20px;border:1px solid var(--ink)}.drill-sheet>div{display:flex;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}.drill-sheet>div span{font:500 .68rem "IBM Plex Mono",monospace;color:var(--cyan-dark)}.drill-sheet>p{margin:16px 0 0;padding:12px;background:var(--paper-2)}
.evidence-section>p{color:var(--muted)}.evidence-list{gap:14px}.evidence-task{padding:16px;border:1px solid var(--line);background:var(--paper-2)}.evidence-task-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.evidence-task-head>strong{font-size:1rem}.evidence-task-head label{display:flex;align-items:center;gap:7px;font-size:.76rem;white-space:nowrap}.evidence-task-head input{width:18px;height:18px;min-height:0;accent-color:var(--cyan-dark)}.evidence-task>p{margin:8px 0 12px;font-size:.82rem;color:var(--muted)}.evidence-input{display:grid;gap:6px}.evidence-input textarea{background:var(--white)}.evidence-input span{justify-self:end;color:var(--muted);font:500 .62rem "IBM Plex Mono",monospace}
.exam-stage{display:grid;gap:16px}.exam-intro{display:grid;grid-template-columns:1fr auto;gap:10px;padding-bottom:18px;border-bottom:2px solid var(--ink)}.exam-intro h3,.exam-intro p{grid-column:1}.exam-intro p{margin:0}.exam-intro span{grid-column:2;grid-row:1/3;align-self:center;font:500 .68rem "IBM Plex Mono",monospace;color:var(--cyan-dark)}
.quiz-question{padding:18px;border:1px solid var(--line);margin:0}.quiz-question legend{padding:0 8px;font-weight:700;line-height:1.4}.quiz-question>label{display:flex;align-items:flex-start;gap:10px;padding:10px;border-bottom:1px solid var(--line);font-weight:400}.quiz-question>label:last-of-type{border-bottom:0}.quiz-question input{width:18px;height:18px;min-height:0;flex:0 0 auto;accent-color:var(--cyan-dark)}.quiz-feedback{margin-top:12px;padding:12px;border:1px solid currentColor}.quiz-feedback p{margin:5px 0 0}.quiz-feedback.correct{color:var(--cyan-dark)}.quiz-feedback.incorrect{color:var(--red)}

.lab-layout,.mental-layout,.settings-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:16px}
.worksheet{padding:20px}.worksheet-head{margin-bottom:18px}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.field-grid.compact{grid-template-columns:repeat(4,1fr)}
label{font-weight:600}.field-grid label,.replay-ticket>label,.debrief-form label{position:relative;display:grid;gap:6px;margin-bottom:14px;color:#3e4441;font-size:.83rem}.field-grid label span{position:absolute;right:9px;top:37px;color:var(--muted);font:500 .64rem "IBM Plex Mono",monospace;pointer-events:none}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:2px;background:var(--white);color:var(--ink);padding:10px 12px;min-height:42px}
input:hover,select:hover,textarea:hover{border-color:var(--ink-3)}
input:focus,select:focus,textarea:focus{border-color:var(--orange);outline:2px solid rgba(244,91,24,.18);outline-offset:0}
textarea{resize:vertical;line-height:1.4}
.form-error{min-height:22px;margin:6px 0;color:var(--red);font-weight:600;font-size:.83rem}
.worksheet-actions{display:flex;justify-content:space-between;gap:12px;margin-top:8px}
.primary-button,.secondary-button,.danger-button,.file-button{display:inline-flex;justify-content:center;align-items:center;min-height:42px;padding:9px 15px;border-radius:2px;font-weight:700;text-decoration:none}
.primary-button{border:1px solid var(--orange-dark);background:var(--orange);color:var(--ink)}
.primary-button:hover{background:#ff6a28}
.secondary-button,.file-button{border:1px solid var(--ink);background:transparent;color:var(--ink)}
.secondary-button:hover,.file-button:hover{background:var(--ink);color:var(--paper)}
.danger-button{border:1px solid var(--red);background:transparent;color:var(--red)}
.danger-button:hover{background:var(--red);color:white}
button:disabled{cursor:not-allowed;opacity:.48}
.instrument-panel,.protocol-board,.data-controls{background:var(--ink);color:var(--paper);padding:20px;border:1px solid #4b514e}
.instrument-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid #4b514e}.instrument-head span{font:500 .68rem "IBM Plex Mono",monospace;color:#aeb5b1}.instrument-head strong{font:700 1.35rem "Barlow Condensed",sans-serif;color:var(--orange)}
.measurement-list{margin:12px 0}.measurement-list div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px dashed #4b514e}.measurement-list dt{color:#aeb5b1}.measurement-list dd{margin:0;font:500 .88rem "IBM Plex Mono",monospace;color:var(--cyan)}
.limit-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:9px 0}.limit-row span{font-size:.8rem}.limit-row b{font:500 .72rem "IBM Plex Mono",monospace;color:var(--cyan)}.limit-row.fail b{color:#ff6b63}
.notice{display:flex;gap:10px;padding:12px;margin:18px 0 0;background:#292e2c;color:#c6cbc8;font-size:.8rem}.notice svg{width:18px;height:18px;color:var(--orange);flex:0 0 auto}

.verdict-stat strong{color:var(--orange)}
.gate-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}
.gate-checks{display:grid;gap:0;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow)}
.gate-check{display:grid;grid-template-columns:56px 1fr 180px;align-items:center;gap:14px;padding:16px;border-bottom:1px solid var(--line)}.gate-check:last-child{border-bottom:0}.gate-check-index{font:700 2.1rem "Barlow Condensed",sans-serif;color:var(--muted)}.gate-check h2{font-size:1.25rem}.gate-check p{margin:5px 0 0;color:var(--muted);font-size:.8rem}.switch-control{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ink)}.switch-control label{margin:0}.switch-control input{position:absolute;opacity:0;width:1px;height:1px}.switch-control span{display:block;padding:8px 6px;text-align:center;font:600 .68rem "IBM Plex Mono",monospace}.switch-control input:checked+span{background:var(--cyan-dark);color:white}.switch-control label:last-child input:checked+span{background:var(--red)}
.gate-terminal{align-self:start;position:sticky;top:calc(var(--topbar) + 16px);background:var(--ink);color:var(--paper);padding:18px;border:1px solid #4b514e}.terminal-status{text-align:center;padding:18px 12px;border:1px solid #565d59}.terminal-status span{font:500 .68rem "IBM Plex Mono",monospace;color:#aeb5b1}.terminal-status strong{display:block;margin:10px 0;font:700 2.3rem "Barlow Condensed",sans-serif;color:var(--orange)}.terminal-status p{margin:0;color:#bdc3bf;font-size:.82rem}.notes-label{display:grid;gap:7px;margin-top:16px}.gate-terminal textarea{background:#2a2f2d;border-color:#565d59;color:white}.lock-button{width:100%;display:grid;place-items:center;margin-top:16px;padding:14px;border:1px solid #ff7d42;background:var(--orange);color:var(--ink);text-transform:uppercase;box-shadow:0 5px 12px rgba(0,0,0,.28)}.lock-button span{font:700 1.25rem "Barlow Condensed",sans-serif}.lock-button small{font:500 .62rem "IBM Plex Mono",monospace}

.journal-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:16px}.process-checks,.trigger-grid{border:1px solid var(--line);padding:12px;margin:4px 0 14px}.process-checks legend,.trigger-grid legend{padding:0 6px;font-weight:700}.process-checks{display:grid;grid-template-columns:1fr 1fr;gap:9px}.process-checks label,.trigger-grid label{display:flex;align-items:center;gap:8px;font-size:.82rem}.process-checks input,.trigger-grid input{width:17px;height:17px;min-height:0;accent-color:var(--cyan-dark)}
.journal-summary{display:grid;grid-template-columns:1fr 1fr;align-content:start;background:var(--ink);color:var(--paper);border:1px solid #4b514e}.summary-cell{padding:18px;border-right:1px solid #4b514e;border-bottom:1px solid #4b514e}.summary-cell:nth-child(2n){border-right:0}.summary-cell span{display:block;color:#9fa6a2;font-size:.72rem}.summary-cell strong{display:block;margin-top:8px;font:700 2rem "Barlow Condensed",sans-serif;color:var(--cyan)}.summary-cell.warn strong{color:var(--orange)}
.data-sheet{margin-top:16px;padding:16px}.table-wrap{overflow:auto;margin-top:10px}table{width:100%;border-collapse:collapse;font-size:.82rem}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{background:var(--ink);color:var(--paper);font:500 .67rem "IBM Plex Mono",monospace}.table-action{border:0;background:transparent;color:var(--red);font-weight:600}.tag{display:inline-block;padding:3px 6px;border:1px solid currentColor;font:500 .65rem "IBM Plex Mono",monospace}.tag.good{color:var(--cyan-dark)}.tag.bad{color:var(--red)}

.range-label{display:grid;grid-template-columns:1fr auto;gap:10px;margin-bottom:24px}.range-label input{grid-column:1/3;padding:0;accent-color:var(--orange)}.range-label output{font:700 2rem "Barlow Condensed",sans-serif;color:var(--orange)}
.trigger-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.protocol-board{align-self:start}.protocol-board .instrument-head strong{font-size:1.1rem}.protocol-board>div:nth-child(2){padding:22px 0;font-size:1.05rem;line-height:1.5;color:#d7dcd9}.protocol-rules p{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:10px 0;margin:0;border-top:1px solid #4b514e;font-size:.8rem}.protocol-rules span{color:var(--orange);font:500 .67rem "IBM Plex Mono",monospace}.mental-log{margin-top:8px}.mental-entry{display:grid;grid-template-columns:150px 70px 1fr 1.2fr;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.82rem}.mental-entry time,.mental-entry b{font-family:"IBM Plex Mono",monospace}.mental-entry b{color:var(--orange)}

.replay-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:16px}.chart-board{padding:16px;background:var(--ink);color:var(--paper)}.chart-head{border-color:#4b514e}.chart-head>div{display:grid}.chart-head strong{font:700 1.25rem "Barlow Condensed",sans-serif}.chart-head .secondary-button{border-color:#8d9490;color:var(--paper)}#replay-canvas{display:block;width:100%;height:auto;max-height:560px;margin:12px 0;background:#202523;border:1px solid #4b514e}.replay-ticket{padding:18px;align-self:start}.replay-feedback{margin-top:14px;padding:12px;border:1px dashed var(--line);min-height:88px;font-size:.84rem}.replay-feedback.success{border-style:solid;border-color:var(--cyan-dark);color:var(--cyan-dark)}.replay-feedback.fail{border-style:solid;border-color:var(--red);color:var(--red)}

.score-rack{display:grid;grid-template-columns:repeat(4,1fr);background:var(--ink);color:var(--paper);border:1px solid #4b514e}.score-block{padding:20px;border-right:1px solid #4b514e}.score-block:last-child{border:0}.score-block span{display:block;color:#9fa6a2;font-size:.75rem}.score-block strong{display:block;margin:8px 0;font:700 2.5rem "Barlow Condensed",sans-serif;color:var(--cyan)}.score-block p{margin:0;color:#b9bfbb;font-size:.76rem}.review-layout{display:grid;grid-template-columns:1fr 1fr;gap:16px}.audit-list{margin-top:10px}.audit-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.audit-row span{color:var(--muted)}.audit-row b{font-family:"IBM Plex Mono",monospace}.debrief-form{padding-top:12px}.debrief-form label{margin-bottom:12px}

.settings-layout{grid-template-columns:minmax(0,1fr) 380px}.data-controls{display:grid;align-content:start;gap:12px}.data-controls p{color:#c2c8c4}.file-button{position:relative;color:var(--paper);border-color:#9ca39f}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.legal-note{margin:18px 0 0;padding:12px;border:1px dashed var(--line-dark);color:var(--muted);font-size:.8rem}
.toast{position:fixed;right:20px;bottom:20px;z-index:100;max-width:360px;padding:12px 16px;background:var(--ink);color:var(--paper);border:1px solid var(--orange);box-shadow:var(--shadow);transform:translateY(140%);opacity:0;transition:.35s var(--ease)}.toast.show{transform:none;opacity:1}
.icon-button{display:grid;place-items:center;width:44px;height:44px;border:0;background:transparent;color:var(--paper)}.icon-button svg{width:22px;height:22px}
.menu-button{display:none}

@media (max-width:1180px){
  :root{--sidebar:176px}.session-cell{min-width:110px;padding-inline:12px}.clearance-runway{grid-template-columns:repeat(3,1fr)}.clearance-step{border-bottom:1px solid var(--line)}.clearance-step::after{display:none}.clearance-verdict{grid-column:span 3}.field-grid.compact{grid-template-columns:1fr 1fr}.gate-layout{grid-template-columns:minmax(0,1fr) 300px}.gate-check{grid-template-columns:44px 1fr 150px}.command-bottom{grid-template-columns:1fr}.score-rack{grid-template-columns:1fr 1fr}.score-block:nth-child(2){border-right:0}.score-block:nth-child(-n+2){border-bottom:1px solid #4b514e}
}
@media (max-width:900px){
  :root{--sidebar:230px}.app-shell{display:block}.workspace{margin-left:0}.sidebar{transform:translateX(-105%);transition:transform .35s var(--ease);box-shadow:18px 0 50px rgba(0,0,0,.25)}.sidebar.open{transform:none}.menu-button{display:grid}.topbar{height:auto;min-height:54px}.session-cell{display:none}.session-cell:last-of-type{display:block;margin-left:auto;border-left:1px solid #4b514e}.install-button{margin-left:auto}.route{padding-top:18px}.command-grid,.curriculum-layout,.lab-layout,.gate-layout,.journal-layout,.mental-layout,.replay-layout,.review-layout,.settings-layout{grid-template-columns:1fr}.week-rail{grid-template-columns:repeat(4,1fr)}.week-button{grid-template-columns:auto 1fr}.week-button small{display:none}.gate-terminal{position:static}.journal-summary{min-height:240px}.field-grid.compact{grid-template-columns:1fr 1fr}.trigger-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .route{padding:14px 12px 28px}.command-heading,.page-heading{display:grid}.command-heading p,.page-heading p{max-width:100%}.page-stat,.date-stamp{width:100%}.clearance-runway{grid-template-columns:1fr}.clearance-step,.clearance-verdict{grid-column:auto;min-height:auto}.clearance-step{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px 10px;align-items:center}.clearance-step h3,.clearance-step p{margin:0;max-width:none}.clearance-step p{grid-column:2}.state-stamp{grid-column:2;justify-self:start}.risk-readout{grid-template-columns:1fr 1fr}.risk-readout div:nth-child(2){border-right:0}.risk-readout div:nth-child(-n+2){border-bottom:1px solid var(--line);padding-bottom:10px}.command-grid{grid-template-columns:1fr}.log-row{grid-template-columns:74px 58px 1fr}.log-row span:last-child{display:none}.curriculum-layout{display:block}.week-rail{display:flex;overflow:auto;margin-bottom:12px}.week-button{min-width:128px}.lesson-sheet{padding:16px}.lesson-columns{grid-template-columns:1fr}.lesson-head{display:block}.week-code{font-size:2.8rem;margin-bottom:12px}.field-grid,.field-grid.compact{grid-template-columns:1fr}.worksheet-actions{display:grid}.worksheet-actions button{width:100%}.gate-check{grid-template-columns:36px 1fr}.switch-control{grid-column:1/3}.process-checks,.trigger-grid{grid-template-columns:1fr}.mental-entry{grid-template-columns:1fr 70px}.mental-entry span:nth-child(n+3){grid-column:1/3}.score-rack{grid-template-columns:1fr 1fr}.score-block{padding:14px}.score-block strong{font-size:2rem}.protocol-rules p{grid-template-columns:1fr}.assignment-body{grid-template-columns:1fr}.progress-block{text-align:left}.topbar{overflow:hidden}.install-button{font-size:.72rem}.menu-button{flex:0 0 auto}
}
@media (max-width:900px){.concept-block ul,.mistake-board ul{grid-template-columns:1fr 1fr}.formula-row{grid-template-columns:1fr}.lesson-meta strong{max-width:100%}}
@media (max-width:620px){.course-tabs{grid-template-columns:1fr 1fr}.course-tab:nth-child(2){border-right:0}.course-tab:nth-child(-n+2){border-bottom:1px solid var(--ink)}.concept-block{grid-template-columns:40px minmax(0,1fr)}.concept-index{font-size:2rem}.concept-block ul,.mistake-board ul{grid-template-columns:1fr}.worked-example,.drill-sheet{padding:16px}.drill-sheet>div,.evidence-task-head{display:grid}.evidence-task-head label{white-space:normal}.exam-intro{grid-template-columns:1fr}.exam-intro span{grid-column:1;grid-row:auto}.lesson-gate{display:grid}.formula-row{gap:8px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media print{.sidebar,.topbar,.toast,button{display:none!important}.workspace{grid-column:1;margin:0}.route{display:none!important}.route.active{display:block!important;padding:0}.sheet,.worksheet,.data-sheet,.lesson-sheet{box-shadow:none}}
