:root{--bg:#F3F4F1;--paper:#FFFFFF;--sunk:#F7F8F6;--ink:#14201A;--muted:#5B6861;--faint:#87928C;--line:#DEE3DF;--line2:#C5CDC8;--accent:#1D5B44;--accent-hi:#164735;--on-accent:#FFFFFF;--soft:#E4EEE8;--ok:#1E7A4C;--oksoft:#E1F1E6;--bad:#B0392B;--badsoft:#F9E7E3;--warm:#F5EAD2;--warmink:#7A5414;--amber:#BD793B;--guil:rgba(29,91,68,.10);--shadow:0 1px 0 rgba(20,32,26,.03),0 14px 32px -22px rgba(20,32,26,.28);--serif:'Instrument Serif',Georgia,serif;color-scheme:light;font-family:'Atkinson Hyperlegible',system-ui,sans-serif}
:root[data-theme=dark]{--bg:#0C110F;--paper:#131A16;--sunk:#101613;--ink:#E3EAE6;--muted:#9BA8A1;--faint:#6E7B74;--line:#25302A;--line2:#36433C;--accent:#82C9A6;--accent-hi:#A0DABD;--on-accent:#0A1C14;--soft:#1A2C23;--ok:#6CC594;--oksoft:#132C1F;--bad:#EE8575;--badsoft:#371C18;--warm:#30270F;--warmink:#E5C27C;--amber:#D9A066;--guil:rgba(130,201,166,.07);--shadow:0 1px 0 rgba(0,0,0,.25),0 14px 32px -22px rgba(0,0,0,.7);color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.55}button,input,select,textarea{font:inherit;color:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--accent);text-underline-offset:3px}h1,h2,h3,h4,p{margin:0}h1,h2,h3{line-height:1.18}h1{font-size:clamp(30px,3.4vw,43px);letter-spacing:-1.1px}h2{font-size:24px;letter-spacing:-.4px}h3{font-size:19px}p+p{margin-top:14px}ul,ol{padding-left:23px}li+li{margin-top:6px}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button:disabled{opacity:.45;cursor:not-allowed}.boot{padding:10vh;text-align:center}.shell{display:grid;grid-template-columns:246px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--paper);border-right:1px solid var(--line);padding:29px 19px;display:flex;flex-direction:column;gap:26px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);font-weight:700;line-height:1.2}.brand-mark{width:39px;height:39px;border-radius:11px;background:var(--accent);color:var(--paper);display:grid;place-items:center;flex:none}.brand small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:4px}.track-label{font-size:11px;text-transform:uppercase;letter-spacing:1.6px;color:var(--muted);padding:0 12px}.track-card{padding:13px 12px;border:1px solid var(--line);border-radius:12px;margin-top:8px;font-weight:700;font-size:14px}.track-card span{display:block;color:var(--muted);font-size:12px;font-weight:400}.nav{display:grid;gap:5px}.nav a{display:flex;align-items:center;gap:12px;color:var(--muted);text-decoration:none;padding:11px 13px;border-radius:9px;font-size:15px}.nav a:hover,.nav a.active{background:var(--soft);color:var(--accent)}.nav a.active{font-weight:700}.nav svg{width:18px;height:18px}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:16px 9px 0}.tiny{font-size:12px;color:var(--muted)}.user-row{display:flex;justify-content:space-between;align-items:center;margin-top:13px}.avatar{width:30px;height:30px;background:var(--soft);border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--accent)}.user-name{font-size:13px}.main{min-width:0;padding:29px 42px 70px;max-width:1600px;width:100%;margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:30px;font-size:13px}.topbar .crumb{color:var(--muted)}.top-actions{display:flex;gap:10px;align-items:center}.icon-btn{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);background:var(--paper);border-radius:9px}.icon-btn svg{width:17px;height:17px}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:20px;background:var(--soft);color:var(--accent);font-size:12px;padding:5px 10px;font-weight:700}.pill.neutral{background:var(--bg);color:var(--muted)}.pill.ok{background:var(--oksoft);color:var(--ok)}.pill.warn{background:var(--warm);color:var(--ink)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:27px}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted);font-weight:700;margin-bottom:11px}.lede{font-size:16px;color:var(--muted);margin-top:12px;max-width:660px}.btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:42px;padding:9px 17px;background:var(--paper);border:1px solid var(--line);border-radius:9px;font-weight:700;text-decoration:none;color:var(--ink);font-size:14px}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--paper)}:root[data-theme=dark] .btn.primary{color:#101830}.btn.small{min-height:34px;padding:5px 11px;font-size:13px}.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}.btn svg{width:16px;height:16px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:grid;gap:20px}.grid{display:grid;gap:20px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:23px}.hero{padding:28px 30px;display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:20px;background:var(--paper);position:relative;overflow:hidden;border:1px solid var(--line);border-radius:15px}.hero:before{content:'';position:absolute;left:10px;top:25px;bottom:25px;width:5px;background:repeating-linear-gradient(to bottom,var(--accent) 0 5px,transparent 5px 17px);opacity:.4}.hero h2{font-size:29px;max-width:550px}.hero p{color:var(--muted);margin:13px 0 20px;max-width:570px}.hero-visual{display:grid;place-items:center}.score-ring{width:146px;height:146px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--value)*1%),var(--soft) 0);position:relative}.score-ring:before{content:'';position:absolute;inset:11px;background:var(--paper);border-radius:50%}.score-ring div{z-index:1;text-align:center}.score-ring strong{font-size:34px;line-height:1.1;display:block}.score-ring small{font-size:11px;color:var(--muted)}.metric{padding:19px 21px}.metric .label{font-size:12px;color:var(--muted)}.metric strong{font-size:27px;display:block;margin:6px 0 2px;line-height:1.15}.metric small{color:var(--muted);font-size:12px}.section-head{display:flex;align-items:center;justify-content:space-between;margin:28px 0 15px}.section-head h2{font-size:20px}.domain-card{border-top:3px solid var(--domain-color);display:flex;flex-direction:column;gap:12px}.domain-card h3{font-size:19px;min-height:44px}.domain-card .description{font-size:14px;color:var(--muted);flex:1}.domain-card .meta{font-size:12px;color:var(--muted);display:flex;justify-content:space-between}.progress-track{height:6px;background:var(--bg);border-radius:9px;overflow:hidden}.progress-track>i{height:100%;display:block;background:var(--accent);border-radius:9px}.domain-card .btn{align-self:flex-start}.domain-number{font-size:12px;font-weight:700;color:var(--domain-color)}.split{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(250px,1fr);gap:20px}.score-row{display:grid;grid-template-columns:minmax(0,1fr) 115px 42px;gap:16px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);font-size:13px}.score-row:last-child{border-bottom:0}.score-row strong{text-align:right}.next-row{padding:15px 0;border-bottom:1px solid var(--line);display:flex;gap:13px;align-items:flex-start}.next-row:last-child{border-bottom:0}.step-number{font-size:12px;color:var(--accent);font-weight:700;border:1px solid var(--line);border-radius:50%;width:27px;height:27px;display:grid;place-items:center;flex:none}.next-row a{color:var(--ink);font-weight:700;text-decoration:none;font-size:14px}.next-row p{font-size:12px;color:var(--muted);margin-top:4px}.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.field{display:grid;gap:7px;font-size:13px}.input,input[type=text],input[type=password],input[type=number],select,textarea{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:10px 12px;min-height:43px;width:100%}.filter-bar .input{flex:1;min-width:200px}.filter-bar select{width:auto;min-width:180px}.lesson-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:13px;padding:17px 0;border-bottom:1px solid var(--line);align-items:center}.lesson-row:last-child{border-bottom:0}.lesson-row h3{font-size:16px}.lesson-row p{font-size:13px;color:var(--muted);margin:5px 0}.lesson-index{font-size:12px;color:var(--muted);font-weight:700}.lesson-row.done .lesson-index{color:var(--ok)}.course-group{margin-top:25px}.course-group .group-head{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:8px}.group-head h2{font-size:20px}.reader-layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:27px;align-items:start}.reader{max-width:850px;padding:31px 35px}.reader h1{font-size:35px}.reader h2{font-size:23px;margin:29px 0 12px}.reader h3{font-size:19px;margin-bottom:11px}.reader p{font-size:17px;line-height:1.7}.reader .summary{color:var(--muted);margin:15px 0 21px}.reader li{font-size:16px;line-height:1.65}.reader section{scroll-margin-top:20px;border-top:1px solid var(--line);margin-top:26px}.reader table{margin:16px 0}.reader pre{padding:18px;background:var(--bg);border:1px solid var(--line);border-radius:9px;white-space:pre-wrap;overflow:auto;font-size:13px}.callout{padding:20px;border-radius:10px;background:var(--soft);margin-top:24px;border-left:3px solid var(--accent)}.callout.warning{background:var(--warm);border-color:#bd793b}.callout .eyebrow{color:var(--accent)}.callout p{font-size:15px}.reader-aside{position:sticky;top:20px;display:grid;gap:16px}.reader-aside .card{padding:18px}.reader-aside h3{font-size:14px;margin-bottom:13px}.outline a{display:block;padding:7px 0;color:var(--muted);font-size:13px;text-decoration:none}.outline a:hover{color:var(--accent)}.source-link{display:block;font-size:13px;margin:9px 0;overflow-wrap:anywhere}textarea{resize:vertical;min-height:130px;font-size:14px;line-height:1.6}.checkpoint{padding:21px;background:var(--bg);border-radius:11px;margin:25px 0}.checkpoint h3{margin-top:0}.option{display:flex;align-items:flex-start;gap:13px;padding:15px 16px;border:1.5px solid var(--line);border-radius:10px;background:var(--paper);width:100%;text-align:left;margin:10px 0;font-size:16px;line-height:1.55}.option:hover{border-color:var(--accent)}.option.selected{border-color:var(--accent);background:var(--soft)}.bubble{min-width:29px;width:29px;height:23px;border:1.5px solid var(--muted);border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;margin-top:1px}.option.selected .bubble{background:var(--accent);border-color:var(--accent);color:var(--paper)}.option.correct{border-color:var(--ok);background:var(--oksoft)}.option.wrong{border-color:var(--bad);background:var(--badsoft)}.feedback{border-left:3px solid var(--accent);padding:15px 18px;background:var(--soft);margin:17px 0;font-size:15px}.feedback.correct{border-color:var(--ok);background:var(--oksoft)}.feedback.wrong{border-color:var(--bad);background:var(--badsoft)}.feedback p{font-size:15px;line-height:1.6}.feedback details{margin-top:13px}.feedback summary{font-weight:700;cursor:pointer}.feedback li{font-size:14px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:11px 12px;vertical-align:top}th{background:var(--bg);font-size:12px}.practice-card{display:flex;flex-direction:column;gap:13px}.practice-card p{color:var(--muted);font-size:14px;flex:1}.practice-card .btn{align-self:flex-start}.exam-layout{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:22px}.exam-paper{padding:29px 31px 25px 39px;position:relative}.exam-paper:before{content:'';position:absolute;left:15px;top:28px;bottom:28px;width:5px;background:repeating-linear-gradient(to bottom,var(--ink) 0 5px,transparent 5px 17px);opacity:.4}.question-text{font-size:21px;line-height:1.55;margin:24px 0 19px;white-space:pre-line}.question-meta{font-size:12px;color:var(--muted)}.exam-toolbar{margin-top:24px;padding-top:20px;border-top:1px solid var(--line);display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between}.answer-map{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:16px 0}.map-dot{height:25px;border:1px solid var(--line);border-radius:50%;background:var(--paper);font-size:11px}.map-dot.answered{background:var(--soft);border-color:var(--accent);color:var(--accent)}.map-dot.active{outline:2px solid var(--accent);outline-offset:2px}.map-dot.flagged{border-color:#bd793b;border-width:2px}.map-dot.right{background:var(--oksoft);border-color:var(--ok)}.map-dot.wrong{background:var(--badsoft);border-color:var(--bad)}.timer{font-size:27px;font-variant-numeric:tabular-nums;font-weight:700}.confidence{font-size:12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:15px 0}.confidence button{padding:5px 10px;border-radius:20px;border:1px solid var(--line);background:var(--paper);font-size:12px}.confidence button.active{background:var(--soft);border-color:var(--accent);color:var(--accent)}.review-question{padding:21px 0;border-bottom:1px solid var(--line)}.review-question:last-child{border-bottom:0}.review-question h3{font-size:17px;line-height:1.55;margin:10px 0}.review-question p{font-size:14px;margin-top:8px}.review-question details{margin:10px 0}.flashcard{min-height:260px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:38px;max-width:800px;margin:25px auto}.flashcard h2{font-size:26px;line-height:1.4}.flashcard p{font-size:19px;line-height:1.7;margin:24px 0}.flash-controls{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.empty{text-align:center;padding:45px 25px;color:var(--muted)}.empty h2{color:var(--ink);margin-bottom:10px}.timeline-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:15px;border-bottom:1px solid var(--line);padding:18px 0;align-items:center}.timeline-row h3{font-size:15px}.timeline-row p{font-size:12px;color:var(--muted);margin-top:5px}.plan-day{padding:17px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:14px;align-items:center}.plan-day h3{font-size:15px}.plan-day p{font-size:13px;color:var(--muted);margin-top:4px}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.2fr 1fr;max-width:1300px;margin:auto;align-items:center;padding:65px;gap:90px}.login-intro .brand{margin-bottom:50px}.login-intro h1{font-size:53px;max-width:500px}.login-intro .lede{font-size:19px}.login-intro .row{margin-top:25px}.login-card{padding:35px}.login-card form{display:grid;gap:19px;margin-top:28px}.login-card h2{font-size:28px}.login-card .btn{margin-top:5px}.error{color:var(--bad);font-size:14px}.footer{margin-top:35px;color:var(--muted);font-size:11px}.search-result{padding:15px 0;border-bottom:1px solid var(--line)}.search-result h3{font-size:16px}.search-result p{color:var(--muted);font-size:13px;margin-top:6px}.lab-list label{display:flex;gap:11px;padding:11px 0;border-bottom:1px solid var(--line);font-size:15px}.lab-list input{margin-top:5px;accent-color:var(--accent)}.diagram{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:20px 0}.diagram a{padding:12px 7px;border:1px solid var(--line);border-top:3px solid var(--domain-color);border-radius:8px;text-align:center;text-decoration:none;color:var(--ink);font-size:12px;background:var(--paper)}.diagram span{display:block;color:var(--muted);font-size:10px;margin-top:5px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:9px;box-shadow:var(--shadow);font-size:14px;z-index:9;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}.mobile-brand{display:none}.kbd{font-family:monospace;font-size:10px;border:1px solid var(--line);border-radius:4px;padding:2px 4px}.resource-card h3{font-size:17px}.resource-card p{color:var(--muted);font-size:14px;margin:10px 0}.result-score{font-size:54px;font-weight:700;line-height:1.1}.result-score.pass{color:var(--ok)}.result-score.fail{color:var(--bad)}.result-score.neutral{color:var(--ink)}.timer-bar{display:none}@media(max-width:900px){.timer-bar{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:20;margin:0 0 12px;padding:8px 14px;background:var(--paper);border:1px solid var(--line);border-radius:12px;font-size:14px}.timer-bar strong{font-size:20px;font-variant-numeric:tabular-nums}}
@media(min-width:1600px){.main{padding:40px 65px}}@media(max-width:1150px){.main{padding:25px}.shell{grid-template-columns:215px minmax(0,1fr)}.sidebar{padding:25px 12px}.grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.reader-layout{grid-template-columns:minmax(0,1fr) 210px}.reader{padding:25px}.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.shell{display:block}.sidebar{height:auto;position:relative;display:block;border-right:0;border-bottom:1px solid var(--line);padding:15px 20px}.sidebar>.brand,.sidebar>.track-wrap,.sidebar-bottom{display:none}.mobile-brand{display:flex;justify-content:space-between;margin-bottom:13px}.nav{display:flex;overflow:auto;gap:3px}.nav a{font-size:13px;white-space:nowrap;padding:9px 11px;gap:7px}.nav a svg{width:15px;height:15px}.main{padding:24px}.topbar{margin-bottom:23px}.split,.reader-layout{grid-template-columns:1fr}.reader-aside{position:static;grid-template-columns:1fr 1fr}.outline{display:none}.hero{grid-template-columns:1fr 150px}.login-shell{gap:35px;padding:40px}.login-intro h1{font-size:39px}.exam-layout{grid-template-columns:1fr}.exam-layout>.exam-aside{display:flex;gap:15px;flex-wrap:wrap}.exam-aside>.card{flex:1;min-width:240px}.answer-map{grid-template-columns:repeat(10,1fr)}}@media(max-width:600px){.main{padding:20px 16px 45px}.topbar .crumb{display:none}.topbar{justify-content:flex-end;margin-bottom:20px}.page-head{display:block}.page-head>.btn{margin-top:15px}h1{font-size:32px}.hero{grid-template-columns:1fr;padding:23px}.hero-visual{display:none}.hero h2{font-size:25px}.grid.two,.grid.three{grid-template-columns:1fr}.grid.four{gap:10px}.metric{padding:16px}.metric strong{font-size:23px}.card{padding:20px}.score-row{grid-template-columns:minmax(0,1fr) 80px 35px;gap:9px}.reader{padding:22px}.reader h1{font-size:29px}.reader p{font-size:16px}.reader-aside{grid-template-columns:1fr}.lesson-row{grid-template-columns:25px minmax(0,1fr)}.lesson-row>.btn{grid-column:2;justify-self:start}.exam-paper{padding:23px 20px 20px 30px}.exam-paper:before{left:10px}.question-text{font-size:19px}.option{font-size:15px;padding:13px}.answer-map{grid-template-columns:repeat(8,1fr)}.login-shell{display:block;padding:28px 18px}.login-intro .brand{margin-bottom:35px}.login-intro h1{font-size:38px}.login-intro .lede{font-size:16px}.login-card{margin-top:28px;padding:26px}.diagram{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-bar select{width:100%}.plan-day{grid-template-columns:35px minmax(0,1fr)}.plan-day>.btn{grid-column:2;justify-self:start}.timeline-row{grid-template-columns:35px minmax(0,1fr)}.timeline-row>.btn{grid-column:2;justify-self:start}.flashcard{padding:25px}.flashcard h2{font-size:22px}}
@media print{.sidebar,.topbar,.reader-aside,.btn,.checkpoint,.footer,#toast{display:none!important}.shell,.reader-layout,.main{display:block;padding:0}.reader{border:0;box-shadow:none;max-width:none}.reader section{break-inside:avoid}body{background:#fff;color:#000}}
.grid>*{min-width:0}.table-wrap{max-width:100%}.card{min-width:0}.reader pre{max-width:100%}
/* Answer sheet, modelled on the original HTML trainer's bubble sheet */
.answer-sheet{position:relative;padding-left:39px}.answer-sheet:before{content:'';position:absolute;left:15px;top:28px;bottom:28px;width:5px;background:repeating-linear-gradient(to bottom,var(--ink) 0 5px,transparent 5px 17px);opacity:.4}.answer-sheet h4{font-size:14px;margin:20px 0 9px;color:var(--muted)}.sheet-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:16px}.sheet-totals div{border-left:3px solid var(--line);padding-left:11px}.sheet-totals div:nth-child(1){border-color:var(--ok)}.sheet-totals div:nth-child(2){border-color:var(--bad)}.sheet-totals strong{font-size:25px;display:block;line-height:1.1}.sheet-totals small{font-size:12px;color:var(--muted)}.sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(31px,1fr));gap:8px}.sheet-dot{position:relative;display:inline-block;height:21px;min-width:28px;border:1.5px solid var(--line);border-radius:50%;background:var(--paper)}.sheet-dot.right{background:var(--ok);border-color:var(--ok)}.sheet-dot.wrong{background:var(--bad);border-color:var(--bad)}.sheet-dot.review{border-style:dashed}.sheet-dot.flagged:after{content:'';position:absolute;top:-3px;right:-3px;width:8px;height:8px;border-radius:50%;background:#bd793b;box-shadow:0 0 0 2px var(--paper)}.sheet-legend{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:18px}.sheet-legend .sheet-dot{min-width:20px;height:15px}.linkish{display:inline;padding:0;border:0;background:none;color:var(--accent);text-decoration:underline;font:inherit;cursor:pointer}
@media(max-width:600px){.answer-sheet{padding-left:30px}.answer-sheet:before{left:10px}}
.tutor{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.tutor-answer{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:10px 0}.tutor-answer p{font-size:14px}.tutor-answer ul{margin:6px 0}.tutor-ask{font-weight:700;font-size:14px;margin-top:12px}.tutor-form{display:flex;gap:8px;margin:10px 0}.tutor-form input{flex:1;min-height:36px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:var(--paper)}
/* Fast track */
.steps{display:grid;gap:8px;margin:14px 0}.step{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line);font-size:14px}.step:first-child{border-top:0}.step .mark{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line-strong,var(--muted));display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--muted)}.step.done .mark{background:var(--ok);border-color:var(--ok);color:#fff}.step .what{font-weight:700}.step .what small{display:block;font-weight:400;color:var(--muted);font-size:12px;margin-top:2px}.step .btn{min-height:34px;padding:5px 11px;font-size:13px}.sprint-card{display:flex;flex-direction:column}.sprint-card.ready{border-color:var(--ok)}.sprint-card .pill{align-self:flex-start}.ready-list{display:grid;gap:8px;margin-top:14px}.ready-list div{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:8px 0;border-top:1px solid var(--line)}.ready-list div:first-child{border-top:0}.ready-list strong{font-variant-numeric:tabular-nums}.gap-row{display:grid;grid-template-columns:minmax(0,1fr) 70px auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line);font-size:14px}.gap-row:first-child{border-top:0}.gap-row strong{font-variant-numeric:tabular-nums;color:var(--bad)}
/* Key facts and quick read */
.facts h3{margin:26px 0 8px;font-size:17px}.facts h3 a{color:var(--ink);text-decoration:none}.facts .takeaway{font-size:14px;color:var(--muted);margin-bottom:8px}.facts table{font-size:14px}.facts td:first-child{width:38%;font-weight:700}.facts ul{margin:8px 0 0;font-size:14px}.quick-section{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.quick-section summary{cursor:pointer;font-weight:700;font-size:17px;list-style:none;display:flex;justify-content:space-between;gap:10px}.quick-section summary::-webkit-details-marker{display:none}.quick-section summary::after{content:'+';color:var(--muted);font-weight:400}.quick-section[open] summary::after{content:'−'}.quick-section>*:not(summary){margin-top:10px}.keyfacts{margin-top:22px}.keyfacts dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:6px 14px;font-size:15px;margin:10px 0 0}.keyfacts dt{font-weight:700}.keyfacts dd{margin:0}.cram article{margin-top:34px}.cram h1{font-size:28px;margin-bottom:6px}
@media(max-width:600px){.gap-row{grid-template-columns:minmax(0,1fr) 50px}.gap-row>.row{grid-column:1/-1}.keyfacts dl{grid-template-columns:1fr}.keyfacts dd{margin-bottom:8px}}
@media print{.cram article{break-before:page}.cram article:first-of-type{break-before:auto}.quick-section{break-inside:avoid}}
.crash p{font-size:17px;line-height:1.7}.crash li{font-size:16px;line-height:1.65}.crash table{font-size:14px;margin:16px 0}.crash code{font-family:ui-monospace,monospace;font-size:14px;background:var(--bg);padding:1px 5px;border-radius:4px}.crash .exam-toolbar{margin-top:28px}input[type=date]{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:8px 10px;min-height:40px;width:100%;color:inherit}
.plan-check{position:relative;cursor:pointer}.plan-check input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}.plan-check input:disabled{cursor:default}.plan-day-card{margin-top:12px;padding:0}.plan-day-card summary{list-style:none;display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:14px;align-items:center;padding:16px 20px;cursor:pointer}.plan-day-card summary::-webkit-details-marker{display:none}.plan-day-card summary small{display:block;color:var(--muted);font-size:12px;margin-top:3px}.plan-day-number{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;font-weight:700;font-size:13px;color:var(--muted)}.plan-day-card.today{border-color:var(--accent)}.plan-day-card.today .plan-day-number{background:var(--accent);border-color:var(--accent);color:var(--paper)}.plan-day-card.complete .plan-day-number{background:var(--ok);border-color:var(--ok);color:#fff}.plan-day-card>.steps{padding:0 20px 16px;margin:0}
.seg-toggle{display:inline-flex;flex-wrap:wrap;gap:8px}.seg-toggle .btn[aria-pressed=false]{color:var(--muted)}
.live-labs{margin-bottom:28px}.live-card{position:relative}.live-card.is-passed{border-color:var(--ok)}.live-card h3{margin-top:10px}.live-card>.pill{align-self:flex-start}.live-card .btn{margin-top:12px;align-self:flex-start}.live-head{margin-bottom:20px}.live-head h1{margin-top:12px}.live-head .callout{margin-top:16px}
.live-ok{background:var(--oksoft);color:var(--ok)}.live-bad{background:var(--badsoft);color:var(--bad)}.live-warn{background:var(--warm);color:var(--ink)}.live-neutral{background:var(--bg);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.live-summary{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:14px 0}.live-summary .live-progress{flex-basis:100%}.live-progress{height:8px;background:var(--bg);box-shadow:inset 0 0 0 1px var(--line);border-radius:9px;overflow:hidden}.live-progress>i{display:block;height:100%;background:var(--ok);border-radius:9px;transition:width .3s}
.live-notice{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:11px 14px;border-radius:10px;border:1px solid var(--line);background:var(--paper);font-size:14px;margin:14px 0}.live-notice.bad{border-color:var(--bad);background:var(--badsoft);color:var(--bad)}.live-notice.warn{border-color:#bd793b;background:var(--warm)}.live-notice.neutral{color:var(--muted)}.live-notice .btn{margin-left:auto}
.live-spin{width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:live-spin .8s linear infinite}@keyframes live-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.live-spin{animation:none}.live-progress>i{transition:none}}
.live-stepper{position:sticky;top:0;z-index:2;background:var(--bg);padding:8px 0;margin-bottom:16px}.live-stepper ol{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0}.live-stepper li+li{margin-top:0}.live-stepper a{display:flex;align-items:center;gap:8px;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--muted);text-decoration:none;font-size:13px;white-space:nowrap}.live-stepper a:hover{border-color:var(--accent)}.live-stepper li.current a{border-color:var(--accent);color:var(--accent);font-weight:700;background:var(--soft)}.live-stepper li.done a{color:var(--ok)}.live-step-n{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--soft);font-size:11px;font-weight:700}.live-stepper li.done .live-step-n{background:var(--oksoft)}
.live-section{margin-top:18px;scroll-margin-top:70px}.live-section:focus{outline:none}.live-section h2{margin-bottom:12px}.live-steps{padding-left:22px}.live-steps li{margin-top:18px;padding-left:4px}.live-steps li::marker{font-weight:700;color:var(--accent)}.live-steps h3{font-size:17px}.live-ui{margin:8px 0;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.live-ui-label{font-size:11px;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);font-weight:700}.live-copy{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:100%}.live-copy code{background:var(--soft);color:var(--ink);padding:4px 9px;border-radius:6px;font-size:13px;overflow-wrap:anywhere}.live-copy .btn{min-width:64px}
.live-downloads{display:grid;gap:10px;margin-top:8px}.live-download{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.live-download>span{flex:1 1 220px;min-width:0}.live-file{font-size:12px;background:var(--soft);padding:1px 6px;border-radius:5px}.live-limits,.live-history{margin-top:14px}.live-limits summary,.live-history summary{cursor:pointer;font-weight:700;min-height:28px}.live-register{display:grid;gap:12px;max-width:560px}.live-register .input{width:100%}
.live-quota.low{color:var(--bad);font-weight:700}
.live-criteria{list-style:none;padding:0;margin-top:14px;display:grid;gap:10px}.live-criteria li+li{margin-top:0}.live-criterion{display:flex;gap:12px;border:1px solid var(--line);border-left:5px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--paper)}.live-criterion.is-passed{border-color:var(--ok)}.live-criterion.is-not-met{border-color:var(--bad)}.live-criterion.is-in-progress{border-color:#bd793b}.live-crit-ico{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;font-weight:700;font-size:14px;background:var(--bg);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}.live-crit-ico.ok{background:var(--oksoft);color:var(--ok)}.live-crit-ico.bad{background:var(--badsoft);color:var(--bad)}.live-crit-ico.warn{background:var(--warm);color:var(--ink)}.live-crit-body{flex:1;min-width:0}.live-criterion p{margin-top:6px}.live-detail{font-size:14px}.live-fix{background:var(--soft);border-radius:8px;padding:8px 10px}.live-evidence{overflow-wrap:anywhere}
.live-cleanup{list-style:none;padding:0}.live-cleanup label{display:flex;gap:10px;align-items:flex-start;padding:4px 0}.live-cleanup input{margin-top:5px;accent-color:var(--accent);width:18px;height:18px;flex:none}.live-sources{margin-top:16px;display:grid;gap:6px}.live-query{display:flex;flex-wrap:wrap;gap:12px;align-items:center;border-top:1px solid var(--line);padding:12px 0}.live-query>div:first-child{flex:1 1 240px}.live-result{flex-basis:100%;background:var(--bg);border-radius:8px;padding:8px 12px}.live-query select{width:auto;max-width:100%}
@media(max-width:600px){.live-stepper{position:static;overflow-x:auto;margin-inline:-4px;padding-inline:4px}.live-stepper ol{flex-wrap:nowrap}.live-stepper a{padding:6px 10px;font-size:12px}.live-query select{width:100%}.live-notice .btn{margin-left:0}.live-criterion{padding:11px 10px;gap:9px}.live-section{padding:18px 16px}.live-download .btn{width:100%}.live-head h1{font-size:28px}.live-copy .btn{min-height:38px}}
[hidden]{display:none!important}
.login-extra{display:grid;gap:14px;margin-top:4px}.login-extra .btn{justify-self:start}.login-extra form{margin-top:0}.login-notice{font-size:14px;line-height:1.5;color:var(--ink);margin:0}.login-shell.narrow{grid-template-columns:minmax(0,520px);justify-content:center}
/* ---- Certis redesign: base, components and shell ---- */
body{background:var(--bg);color:var(--ink);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
a:hover{color:var(--accent-hi)}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(38px,5.6cqi,58px);line-height:1;letter-spacing:-.8px}
h2{font-size:24px;letter-spacing:-.2px}
.serif{font-family:var(--serif);font-weight:400}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--muted);margin-bottom:0}
.eyebrow.accent{color:var(--accent)}
.lede{font-size:17px;color:var(--muted);margin-top:12px;max-width:680px;text-wrap:pretty}
.tiny{font-size:12.5px;color:var(--muted)}
.btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:44px;padding:9px 16px;background:var(--paper);border:1px solid var(--line2);border-radius:10px;font-weight:700;font-size:14px;color:var(--ink);text-decoration:none;white-space:nowrap;flex:none;transition:border-color .15s,background .15s}
.btn:hover{border-color:var(--ink);color:var(--ink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.primary:hover{background:var(--accent-hi);border-color:var(--accent-hi);color:var(--on-accent)}
:root[data-theme=dark] .btn.primary{color:var(--on-accent)}
.btn.small{min-height:36px;padding:6px 12px;font-size:13px;border-radius:9px}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.ghost:hover{color:var(--ink);border-color:var(--line2)}
.btn.textlink{min-height:0;padding:0;border:0;background:none;color:var(--accent)}
.btn.textlink:hover{color:var(--accent-hi)}
.btn:disabled,.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn svg{width:16px;height:16px}
.row{flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:7px;border-radius:99px;background:var(--soft);color:var(--accent);font-size:12px;padding:4px 11px;font-weight:700;white-space:nowrap}
.pill.neutral{background:var(--sunk);color:var(--muted)}
.pill.outline{background:transparent;border:1px solid var(--line);color:var(--muted)}
.pill.ok{background:var(--oksoft);color:var(--ok)}
.pill.warn,.pill.warm{background:var(--warm);color:var(--warmink)}
.pill.bad{background:var(--badsoft);color:var(--bad)}
.pill .dot{width:7px;height:7px;border-radius:50%;flex:none}
.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:clamp(20px,3cqi,28px)}
.card.flat{box-shadow:none}
.input,input[type=text],input[type=password],input[type=number],input[type=email],input[type=date],select,textarea{border:1px solid var(--line2);background:var(--paper);border-radius:10px;padding:9px 12px;min-height:44px;font-size:14px;outline:none;transition:border-color .15s,box-shadow .15s}
.input:focus,input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--soft)}
input[type=date]{color-scheme:inherit}
.field{display:grid;gap:6px;font-size:13px;font-weight:700}
.field select,.field input{font-weight:400}
.callout{padding:20px 22px;border-radius:14px;background:var(--soft);border-left:0;margin-top:24px}
.callout.warning{background:var(--warm);border:0}
.callout.warning .eyebrow,.callout.warning h3{color:var(--warmink)}
.callout .eyebrow{color:var(--accent)}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;margin:clamp(28px,4cqi,40px) 0 14px}
.section-head h2{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1;letter-spacing:0}
.section-head .tiny,.section-head>span{font-size:13px;color:var(--muted)}
.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 28px;margin-bottom:clamp(20px,3cqi,30px)}
.page-head>div:first-child{max-width:700px}
.page-head h1{margin-top:10px}
.page-head .row{gap:8px}
.list-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:4px clamp(18px,2.6cqi,24px)}
.list-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:15px 0;border-top:1px solid var(--line)}
.list-row:first-child{border-top:0}
.list-row .grow{flex:1 1 280px;min-width:0}
.list-row h3{font-size:15.5px;line-height:1.35}
.list-row p{font-size:12.5px;color:var(--muted);margin-top:2px}
.list-row .num{font-family:var(--serif);font-size:22px;line-height:1;width:26px;flex:none}
.empty{padding:36px 0;text-align:center;color:var(--muted)}
.guil{position:absolute;inset:0;pointer-events:none;background:repeating-radial-gradient(circle at 100% 0,transparent 0 11px,var(--guil) 11px 12px);-webkit-mask-image:radial-gradient(circle at 100% 0,#000 0,transparent 62%);mask-image:radial-gradient(circle at 100% 0,#000 0,transparent 62%)}
.guil.bl{background:repeating-radial-gradient(circle at 0 100%,transparent 0 11px,var(--guil) 11px 12px);-webkit-mask-image:radial-gradient(circle at 0 100%,#000 0,transparent 55%);mask-image:radial-gradient(circle at 0 100%,#000 0,transparent 55%)}
.guil.br{background:repeating-radial-gradient(circle at 100% 100%,transparent 0 13px,var(--guil) 13px 14px);-webkit-mask-image:radial-gradient(circle at 100% 100%,#000 0,transparent 75%);mask-image:radial-gradient(circle at 100% 100%,#000 0,transparent 75%)}
.bar{position:relative;height:6px;border-radius:9px;background:var(--sunk);box-shadow:inset 0 0 0 1px var(--line)}
.bar>i{position:absolute;left:0;top:0;bottom:0;border-radius:9px;background:var(--accent)}
.bar>.tick{left:var(--pass,70%);top:-3px;bottom:-3px;width:2px;background:var(--ink);opacity:.55;border-radius:0}
.progress-line{height:5px;border-radius:9px;background:var(--line);overflow:hidden}
.progress-line>i{display:block;height:100%;border-radius:9px;background:var(--accent)}
.progress-track{height:6px;background:var(--sunk);box-shadow:inset 0 0 0 1px var(--line)}
.seg{display:inline-flex;flex-wrap:wrap;padding:3px;border:1px solid var(--line2);border-radius:11px;background:var(--paper)}
.seg button,.seg a{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 13px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-weight:700;font-size:13px;white-space:nowrap;text-decoration:none}
.seg [aria-pressed=true],.seg .active{background:var(--ink);color:var(--paper)}
.seg svg{width:14px;height:14px}
.seg-toggle{gap:0}
/* seal */
.seal{flex:none;display:block}
.seal .seal-body{fill:var(--accent)}
.seal .seal-ring{fill:none;stroke:var(--on-accent);stroke-opacity:.45;stroke-width:1.6}
.seal .seal-check{fill:none;stroke:var(--on-accent);stroke-width:7;stroke-linecap:round;stroke-linejoin:round}
.wordmark{display:block;line-height:1;min-width:0}
.wordmark-name{display:block;font-family:var(--serif);font-size:29px;letter-spacing:-.3px;color:var(--ink)}
.wordmark-sub{display:block;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* shell */
.shell{display:flex;min-height:100vh;grid-template-columns:none}
.sidebar{position:sticky;top:0;height:100vh;width:256px;flex:none;background:var(--paper);border-right:1px solid var(--line);padding:24px 14px 18px;display:flex;flex-direction:column;gap:18px;overflow:auto}
.sb-logo{display:flex;gap:11px;align-items:center;padding:0 8px;text-decoration:none;color:var(--ink)}
.sb-logo:hover{color:var(--ink)}
.track-card{margin:0 4px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:var(--sunk);position:relative}
.track-card .course-picker{position:static}
.track-card .course-trigger{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%;padding:0;border:0;background:none;box-shadow:none;text-align:left;border-radius:6px}
.track-card .course-trigger:hover .course-trigger-name{color:var(--accent)}
.track-card .course-trigger-name{grid-column:1;font-weight:700;font-size:14px;line-height:1.3}
.track-card .course-trigger-sub{grid-column:1;font-size:12px;color:var(--muted);line-height:1.35}
.track-card .course-chevron{grid-column:2;grid-row:1/3;align-self:center;display:flex;color:var(--muted)}
.track-card .course-menu{left:-1px;right:-1px;top:calc(100% + 6px)}
.track-exam{display:flex;justify-content:space-between;align-items:baseline;margin-top:10px;font-size:12px;color:var(--muted);text-decoration:none}
.track-exam strong{color:var(--accent)}
.track-exam:hover span{color:var(--ink)}
.track-bar{height:4px;border-radius:9px;background:var(--line);margin-top:6px;overflow:hidden}
.track-bar i{display:block;height:100%;background:var(--accent);border-radius:9px}
.sb-search{margin:0 4px;display:flex;align-items:center;gap:10px;min-height:40px;padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--muted);font-size:14px;text-align:left}
.sb-search:hover{border-color:var(--line2)}
.sb-search svg{width:16px;height:16px;flex:none}
.sb-search span:first-of-type{flex:1}
.sb-search .kbd{font-size:11px;border:1px solid var(--line2);border-radius:5px;padding:1px 5px;font-family:inherit}
.nav{display:flex;flex-direction:column;gap:14px}
.nav-group{display:flex;flex-direction:column;gap:2px}
.nav-label{font-size:10.5px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--faint);padding:0 12px 5px}
.nav a{display:flex;align-items:center;gap:11px;min-height:38px;padding:7px 12px;border-radius:9px;font-size:14.5px;color:var(--ink);text-decoration:none}
.nav a span:first-of-type{flex:1}
.nav a svg{width:17px;height:17px;flex:none;color:var(--muted)}
.nav a:hover{background:var(--soft);color:var(--ink)}
.nav a.active{background:var(--soft);color:var(--accent);font-weight:700}
.nav a.active svg{color:var(--accent)}
.nav-badge{white-space:nowrap;font-size:11px;font-weight:700;min-width:22px;text-align:center;padding:1px 6px;border-radius:99px;background:var(--warm);color:var(--warmink)}
.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:14px 8px 0;display:flex;flex-direction:column;gap:12px}
.sync-line{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}
.sync-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none}
.user-row{display:flex;align-items:center;gap:10px;margin-top:0}
.avatar{width:32px;height:32px;border-radius:50%;background:var(--soft);color:var(--accent);display:grid;place-items:center;font-size:12px;font-weight:700;flex:none;border:0}
.user-name{flex:1;font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis}
.icon-btn{width:34px;height:34px;flex:none;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink)}
.icon-btn:hover{border-color:var(--line2)}
.icon-btn svg{width:16px;height:16px}
.icon-btn.bare{width:44px;height:44px;border:0;border-radius:10px;background:transparent}
.icon-btn.bare svg{width:20px;height:20px}
.main{flex:1 1 auto;min-width:0;padding:0;max-width:none;margin:0;container-type:inline-size}
.main-inner{max-width:1240px;margin:0 auto;padding:clamp(18px,4cqi,40px) clamp(16px,4.4cqi,52px) 72px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:clamp(20px,3cqi,32px);font-size:13px;color:var(--muted)}
.crumb{color:var(--muted)}
.crumb-sep{margin:0 8px;color:var(--faint)}
.footer{margin-top:40px;color:var(--faint);font-size:11.5px;text-wrap:pretty}
.mobile-top,.tabbar,.hub-links{display:none}
.mobile-brand{display:none!important}
/* course menu */
.course-menu{position:absolute;z-index:40;min-width:260px;padding:6px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 18px 40px -14px rgba(20,32,26,.35);display:grid;gap:2px}
.course-option{display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:8px;align-items:center;width:100%;text-align:left;padding:10px 11px;border:0;border-radius:8px;background:transparent;color:var(--ink);text-decoration:none}
.course-option:hover:not(:disabled),.course-option:focus-visible,.course-option[aria-selected=true]{background:var(--soft)}
.course-option-text{display:grid;gap:1px;min-width:0}
.course-option-text strong{font-size:14px}
.course-option-text span,.course-option-text small{font-size:12px;color:var(--muted)}
.course-option-check{color:var(--accent);display:grid}
.course-option-check svg{width:16px;height:16px}
.menu-label{font-size:10.5px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--faint);padding:8px 11px 4px}
.menu-sep{height:1px;background:var(--line);margin:4px 6px}
.course-picker.account{position:relative;flex:none}
.course-picker.account .course-trigger.avatar{width:34px;height:34px;cursor:pointer}
.course-picker.account .course-menu{right:0;left:auto;top:calc(100% + 10px);width:min(300px,calc(100vw - 32px))}
/* restore the desktop shell between 761px and 900px (older rules collapse it at 900px) */
@media(max-width:900px){.shell{display:flex}.sidebar{position:sticky;height:100vh;display:flex;border-bottom:0;border-right:1px solid var(--line);padding:24px 14px 18px}.sidebar-bottom{display:flex}.nav{display:flex;overflow:visible;gap:14px}.nav a{font-size:14.5px;white-space:normal;padding:7px 12px;gap:11px}.nav a svg{width:17px;height:17px}.main{padding:0}}
@media(max-width:760px){
.shell{display:flex;flex-direction:column;min-height:100vh}
.sidebar{display:none!important}
.mobile-top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:4px;height:58px;padding:0 14px 0 16px;background:var(--paper);border-bottom:1px solid var(--line)}
.mobile-logo{flex:1;display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.mobile-logo .wordmark-name{font-size:25px;line-height:1}
.course-picker.account{margin-left:6px}
.main{flex:1 1 auto}
.main-inner{padding:18px 16px 40px}
.topbar{display:none}
.hub-links{display:flex;gap:8px;overflow-x:auto;margin:0 -16px 18px;padding:0 16px 2px;scrollbar-width:none}
.hub-links a{white-space:nowrap;flex:none;padding:7px 13px;border-radius:99px;border:1px solid var(--line2);background:var(--paper);color:var(--ink);font-size:13px;font-weight:700;text-decoration:none}
.hub-links a.active{background:var(--soft);border-color:var(--soft);color:var(--accent)}
.tabbar{position:sticky;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);background:var(--paper);border-top:1px solid var(--line);padding:6px 4px calc(10px + env(safe-area-inset-bottom))}
.tabbar a{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:52px;padding:6px 2px;color:var(--muted);font-size:11px;text-decoration:none;white-space:nowrap}
.tabbar .tab-pill{display:grid;place-items:center;width:52px;height:28px;border-radius:99px}
.tabbar svg{width:20px;height:20px}
.tabbar a.active{color:var(--accent);font-weight:700}
.tabbar a.active .tab-pill{background:var(--soft)}
.timer-bar{top:58px}
}
.wordmark-sub.long{white-space:normal;line-height:1.3}
.pill.outline{display:inline-flex;padding:4px 11px}
.seg-toggle{display:inline-flex;flex-wrap:wrap;gap:0;padding:3px;border:1px solid var(--line2);border-radius:11px;background:var(--paper)}
.seg-toggle .btn{border:0;min-height:36px;padding:6px 13px;border-radius:8px;background:transparent;color:var(--muted);font-size:13px}
.seg-toggle .btn:hover{color:var(--ink)}
.seg-toggle .btn.primary,.seg-toggle .btn[aria-pressed=true]{background:var(--ink);color:var(--paper)}

/* ---- login ---- */
.login-shell{min-height:100vh;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));max-width:none;margin:0;padding:0;gap:0;align-items:stretch;container-type:inline-size}
.login-intro{position:relative;overflow:hidden;padding:clamp(28px,6cqi,72px);display:flex;flex-direction:column;gap:clamp(36px,6cqi,64px);background:var(--paper);border-right:1px solid var(--line)}
.login-intro>*{position:relative}
.login-intro>.guil{position:absolute}
.login-logo{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);margin:0}
.login-logo .wordmark-name{font-size:32px}
.login-logo .wordmark-sub{font-size:11px;letter-spacing:1.4px;margin-top:5px;white-space:normal}
.login-pitch{display:flex;flex-direction:column;gap:18px;max-width:560px;margin:auto 0}
.login-pitch h1{font-size:clamp(44px,8cqi,76px);line-height:.98;letter-spacing:-1px;text-wrap:balance;max-width:none}
.login-pitch h1 em{color:var(--accent)}
.login-pitch .lede{font-size:18px;max-width:480px;margin-top:0}
.login-pitch .row{gap:8px;margin-top:0}
.login-pitch .pill{font-size:13px;padding:5px 12px}
.login-pitch .pill.outline{border-color:var(--line2)}
.login-facts{display:flex;gap:clamp(18px,4cqi,40px);flex-wrap:wrap;border-top:1px solid var(--line);padding-top:20px}
.login-facts strong{display:block;font-family:var(--serif);font-weight:400;font-size:32px;line-height:1}
.login-facts span{display:block;font-size:12px;color:var(--muted);margin-top:4px}
.login-side{display:grid;place-items:center;padding:clamp(24px,6cqi,72px) clamp(18px,5cqi,56px)}
.login-card{width:100%;max-width:420px;padding:0;background:none;border:0;box-shadow:none}
.login-card h2{font-family:var(--serif);font-weight:400;font-size:40px;line-height:1.05;margin-top:10px}
.login-card .lede{font-size:16px;margin-top:10px}
.login-card form{display:grid;gap:16px;margin-top:28px}
.login-card input{min-height:48px;padding:10px 14px;font-size:16px}
.login-card form .btn.primary{min-height:50px;margin-top:6px;font-size:15px}
.login-card .login-extra{margin-top:18px}
.login-card .login-extra form{margin-top:0}
.login-shell.narrow{display:grid;place-items:center;grid-template-columns:1fr;padding:24px}
.login-shell.narrow .login-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:clamp(24px,4cqi,36px)}
@media(max-width:760px){.login-shell{display:grid}.login-intro{border-right:0;border-bottom:1px solid var(--line)}.login-pitch h1{font-size:clamp(40px,11vw,56px)}}
/* ---- today ---- */
.today-row{display:flex;flex-wrap:wrap;gap:18px}
.next-card{flex:1.7 1 440px;min-width:0;position:relative;overflow:hidden;padding:clamp(22px,3.4cqi,36px);display:flex;flex-direction:column;gap:14px}
.next-card>*{position:relative}
.next-card>.guil{position:absolute}
.next-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.next-card h2{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4cqi,42px);line-height:1.05;letter-spacing:-.4px;max-width:620px;text-wrap:balance}
.next-card p{color:var(--muted);max-width:600px;text-wrap:pretty}
.next-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:8px}
.next-actions .btn{min-height:46px}
.next-actions .btn:not(.primary){background:transparent}
.ready-card{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:16px}
.ready-top{display:flex;align-items:center;gap:18px}
.ready-top h3{font-size:18px;line-height:1.3;margin-top:4px}
.ready-top .tiny{margin-top:4px;font-size:13px}
.ready-seal{position:relative;width:112px;height:112px;flex:none}
.ready-seal .seal{position:absolute;inset:0}
.seal.soft .seal-body{fill:var(--soft)}
.seal.soft .seal-ring,.seal.soft .seal-check{display:none}
.ready-ring{position:absolute;inset:15px;border-radius:50%;background:conic-gradient(var(--accent) var(--value),var(--line2) 0)}
.ready-disc{position:absolute;inset:21px;border-radius:50%;background:var(--paper);display:grid;place-items:center;text-align:center;line-height:1}
.ready-disc strong{display:block;font-family:var(--serif);font-weight:400;font-size:30px}
.ready-disc span{display:block;font-size:10px;color:var(--muted);margin-top:2px}
.criteria{display:flex;flex-direction:column}
.criterion{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:13.5px}
.criterion>span:nth-child(2){flex:1}
.criterion strong{font-variant-numeric:tabular-nums;white-space:nowrap}
.criterion .mark{width:18px;height:18px;border-radius:50%;flex:none;display:grid;place-items:center;border:1.5px solid var(--line2);color:var(--on-accent);font-size:10px;font-weight:700}
.criterion .mark.done{border-color:var(--accent);background:var(--accent)}
.ready-card .btn.textlink{align-self:flex-start}
.ready-card .btn.textlink svg{width:15px;height:15px}
.queue{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px}
.queue-tile{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:6px}
.queue-head{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;font-weight:700;color:var(--muted)}
.queue-head svg{width:18px;height:18px;color:var(--faint)}
.queue-n{font-family:var(--serif);font-size:46px;line-height:1}
.queue-tile p{font-size:13px;color:var(--muted)}
.queue-tile .btn{align-self:flex-start;margin-top:8px;min-height:38px;padding:7px 14px;font-size:13px;border-radius:9px}
.path-card{margin-top:clamp(28px,4cqi,40px);padding:clamp(20px,3cqi,30px)}
.path-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px}
.path-head h2{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1}
.path-head .tiny{margin-top:4px;font-size:13px}
.blueprint{display:flex;gap:3px;height:10px;margin:20px 0 6px}
.blueprint i{border-radius:3px}
.path-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;padding:16px 0;border-bottom:1px solid var(--line)}
.path-name{flex:1 1 260px;min-width:0;display:flex;gap:12px;align-items:flex-start;color:var(--ink);text-decoration:none}
.path-name:hover strong{color:var(--accent)}
.path-name .num{font-family:var(--serif);font-size:22px;line-height:1.1;width:26px;flex:none}
.path-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.path-title strong{font-size:16px;line-height:1.3}
.path-title .pill{font-size:11px;padding:2px 8px}
.path-desc{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.path-stats{flex:1 1 300px;display:grid;grid-template-columns:52px minmax(0,1fr) 70px;gap:16px;align-items:center;font-size:13px}
.path-stats strong{display:block;font-size:15px}
.path-stats span{font-size:11px;color:var(--muted)}
.path-score{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}
.path-score strong{font-size:11px;display:inline}
.path-lessons{text-align:right}
.path-lessons strong{font-variant-numeric:tabular-nums}

/* ---- shared question components (checkpoint, session) ---- */
.options{display:flex;flex-direction:column;gap:10px;margin:16px 0}
.option{display:flex;align-items:flex-start;gap:13px;width:100%;margin:0;padding:15px 16px;border:1.5px solid var(--line2);border-radius:12px;background:var(--paper);text-align:left;font-size:16px;line-height:1.5;color:var(--ink);transition:border-color .15s}
.option:hover:not(:disabled){border-color:var(--ink)}
.option:disabled{opacity:1;cursor:default}
.bubble{flex:none;display:grid;place-items:center;min-width:28px;width:28px;height:24px;border-radius:50%;border:1.5px solid var(--faint);font-size:11px;font-weight:700;margin-top:1px;color:var(--muted)}
.option.selected{border-color:var(--ink);background:var(--sunk)}
.option.selected .bubble{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.option.correct{border-color:var(--ok);background:var(--oksoft)}
.option.correct .bubble{border-color:var(--ok);background:var(--ok);color:var(--paper)}
.option.wrong{border-color:var(--bad);background:var(--badsoft)}
.option.wrong .bubble{border-color:var(--bad);background:var(--bad);color:var(--paper)}
.feedback{margin:16px 0;padding:16px 18px;border-radius:12px;border-left:0;background:var(--soft);font-size:15px}
.feedback.correct{background:var(--oksoft)}
.feedback.correct>strong{color:var(--ok)}
.feedback.wrong{background:var(--badsoft)}
.feedback.wrong>strong{color:var(--bad)}
.feedback p{line-height:1.6;margin-top:6px}
.feedback summary{color:var(--accent)}
.checkpoint{margin-top:34px;padding:clamp(18px,3cqi,28px);border-radius:16px;background:var(--sunk);border:1px solid var(--line)}
.checkpoint .eyebrow{color:var(--accent)}
.checkpoint h3{font-size:19px;line-height:1.45;margin:10px 0 4px;text-wrap:pretty}
.checkpoint .tiny{font-size:13px}
.checkpoint .option{font-size:15.5px;padding:14px 16px}
.checkpoint .option:not(.selected):not(.correct):not(.wrong){background:var(--paper)}
/* ---- lesson ---- */
.lesson-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}
.lesson-top .row{gap:8px;align-items:center}
.lesson-top .btn:not(.textlink){min-height:42px;padding:7px 13px;font-size:13px}
.reader-layout{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start;grid-template-columns:none}
.reader{flex:1 1 520px;min-width:0;max-width:820px;padding:clamp(22px,4.6cqi,54px)}
.reader .row{gap:10px;align-items:center}
.reader .tiny{font-size:13px}
.reader h1{font-family:var(--serif);font-weight:400;font-size:clamp(32px,4.8cqi,50px);line-height:1.04;letter-spacing:-.6px;margin-top:16px;text-wrap:balance}
.reader .summary{font-size:18px;line-height:1.6;color:var(--muted);margin:16px 0 26px;text-wrap:pretty}
.objectives{padding:20px 22px;border-radius:14px;background:var(--soft)}
.objectives .eyebrow{color:var(--accent)}
.objectives ul{margin:10px 0 0;padding-left:20px;display:grid;gap:6px;font-size:15.5px}
.objectives li+li{margin-top:0}
.reader section{border-top:1px solid var(--line);margin-top:34px;padding-top:28px}
.reader section>.eyebrow{margin-bottom:0}
.reader h2{font-family:var(--serif);font-weight:400;font-size:clamp(26px,3.4cqi,34px);line-height:1.1;margin:8px 0 14px;letter-spacing:0}
.reader h3{font-size:18px;margin:14px 0 8px}
.reader p{font-size:17px;line-height:1.75;text-wrap:pretty}
.reader p+p{margin-top:16px}
.reader li{font-size:16px;line-height:1.65}
.reader .callout{margin-top:28px}
.reader .callout ul{margin:10px 0 0;padding-left:20px;display:grid;gap:6px;font-size:15px}
.reader .callout li{font-size:15px}
.reader .callout li+li{margin-top:0}
.reader .callout p{font-size:15px;line-height:1.6}
.reader .callout.decision{margin-top:16px;padding:18px 22px}
.reader .lab-list label{border-color:var(--line)}
.keyfacts{margin-top:28px;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.keyfacts-head{padding:14px 20px;background:var(--sunk);font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent)}
.keyfact{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:4px 18px;padding:13px 20px;border-top:1px solid var(--line);font-size:14.5px;line-height:1.5}
.reader .keyfacts+.callout{margin-top:16px}
.quick-section{border-top:1px solid var(--line);padding:12px 0}
.quick-section summary{cursor:pointer;font-weight:700;color:var(--accent)}
.quick-section section{border:0;margin:0;padding:8px 0 0}
.lesson-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:24px}
.lesson-foot .btn{min-height:46px}
.reader-aside{flex:1 1 260px;max-width:360px;min-width:0;position:sticky;top:20px;display:flex;flex-direction:column;gap:14px}
.aside-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:18px}
.aside-card.sunk{background:var(--sunk)}
.aside-card h3{font-size:14px}
.aside-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.aside-head .tiny{font-size:12px}
.lesson-outline{padding:18px 18px 12px}
.lesson-outline a{display:flex;gap:10px;padding:7px 0;font-size:13px;line-height:1.4;text-decoration:none;color:var(--muted)}
.lesson-outline a span:first-child{flex:none;width:18px;font-variant-numeric:tabular-nums;color:var(--faint)}
.lesson-outline a:hover{color:var(--accent)}
.lesson-outline a.current{color:var(--accent);font-weight:700}
.lesson-outline a.current span:first-child{color:var(--accent)}
.lesson-outline h3+a,.aside-head+a{margin-top:10px}
.aside-card textarea{margin-top:10px;width:100%;min-height:120px;background:var(--sunk);font-size:14px;line-height:1.6}
.refs{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.refs .source-link{margin:0;font-size:13px;line-height:1.4}
.btn.wide{width:100%;min-height:46px;border-radius:12px}
@media(max-width:900px){.reader-aside{position:static;display:flex;grid-template-columns:none}.lesson-outline{display:block}}
/* ---- practice ---- */
.resume-banner{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;padding:18px clamp(18px,2.6cqi,24px);border-radius:16px;background:var(--paper);border:1.5px solid var(--accent);margin-bottom:18px}
.resume-banner .grow{flex:1 1 280px;min-width:0}
.resume-banner h3{font-size:17px;margin-top:4px}
.resume-banner .progress-line{margin-top:10px;max-width:420px}
.modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:14px}
.mode-card{position:relative;overflow:hidden;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:clamp(20px,3cqi,28px);display:flex;flex-direction:column;gap:12px}
.mode-card h2{font-family:var(--serif);font-weight:400;font-size:34px;line-height:1.05}
.mode-card p{font-size:14.5px;line-height:1.55;color:var(--muted);flex:1}
.mode-card .row{position:relative;gap:8px}
.mode-card.accent{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.mode-card.accent .eyebrow,.mode-card.accent p{color:var(--on-accent)}
.mode-card.accent .btn.primary{background:var(--on-accent);border-color:var(--on-accent);color:var(--accent)}
.mode-card.accent .btn:not(.primary){background:transparent;border-color:currentColor;color:var(--on-accent);font-size:13px}
.mode-watermark{position:absolute;right:-48px;bottom:-56px;width:220px;height:220px;opacity:.1;pointer-events:none;fill:none;stroke:currentColor;stroke-width:1.2}
.mode-watermark .thin{stroke-width:.6}
.zone-name{display:flex;gap:12px;align-items:baseline}
.list-row .row{gap:8px}
.custom-card{margin-top:18px}
.custom-card h3{font-size:17px}
.custom-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:14px;margin-top:14px}
.answer-sheet{padding:clamp(20px,3cqi,28px)}
.answer-sheet:before{display:none}
.sheet-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}
.sheet-totals>div{border:0;padding:0}
.sheet-total{display:flex;align-items:center;gap:8px}
.sheet-total i{width:10px;height:10px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--line2)}
.sheet-total strong{font-family:var(--serif);font-weight:400;font-size:34px;line-height:1}
.sheet-totals span{font-size:12px;color:var(--muted)}
.answer-sheet h4{font-size:13px;color:var(--muted);margin:20px 0 9px}
.sheet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(22px,1fr));gap:7px}
.sheet-dot{display:block;height:16px;min-width:16px;border-radius:50%;border:1.5px solid var(--line2);background:var(--paper)}
.sheet-dot.right{background:var(--ok);border-color:var(--ok)}
.sheet-dot.wrong{background:var(--bad);border-color:var(--bad)}
.sheet-dot.review{background:var(--warm);border-color:var(--amber)}
.sheet-dot.flagged{box-shadow:0 0 0 2px var(--paper),0 0 0 3.5px var(--amber)}
.sheet-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:18px;font-size:12px;color:var(--muted)}
.sheet-legend>span{display:inline-flex;align-items:center;gap:6px}
.sheet-legend .sheet-dot{width:16px;height:12px;display:inline-block}
.linkish{border:0;background:none;padding:0;color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:3px}
/* ---- session ---- */
.session-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 24px}
.session-head h1{font-size:clamp(32px,4.6cqi,46px);letter-spacing:-.6px;margin-top:8px}
.session-head .row{gap:10px;align-items:center}
.timer-box{padding:6px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper);line-height:1.2}
.timer-box span{display:block;font-size:11px;color:var(--muted)}
.timer-box .timer{display:block;font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}
.session-progress{display:flex;align-items:center;gap:12px;margin:16px 0 18px}
.session-progress .progress-line{flex:1}
.session-progress span{font-size:12.5px;color:var(--muted);white-space:nowrap}
.exam-layout{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;grid-template-columns:none}
.exam-paper{flex:1 1 520px;min-width:0;max-width:860px;padding:clamp(20px,4cqi,44px)}
.exam-paper:before{display:none}
.paper-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.flag-btn{min-height:38px}
.flag-btn.on{border-color:var(--amber);background:var(--warm);color:var(--warmink)}
.flag-btn svg{width:15px;height:15px}
.question-text{font-size:clamp(18px,2.4cqi,22px);line-height:1.55;margin:22px 0 8px;text-wrap:pretty}
.question-meta{font-size:13px;color:var(--muted)}
.confidence{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:0}
.confidence button{min-height:34px;padding:5px 12px;border-radius:99px;border:1px solid var(--line2);background:var(--paper);color:var(--ink);font-weight:700;font-size:12.5px;white-space:nowrap}
.confidence button.active{border-color:var(--accent);background:var(--soft);color:var(--accent)}
.exam-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.exam-toolbar .row{gap:8px}
.exam-toolbar>.btn:last-child{background:transparent}
.exam-aside{flex:1 1 260px;max-width:360px;min-width:0;position:sticky;top:20px;display:flex;flex-direction:column;gap:14px}
.answer-map{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:14px 0 12px}
.map-dot{height:30px;border-radius:8px;border:1px solid var(--line2);background:var(--paper);color:var(--muted);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}
.map-dot.answered{background:var(--soft);border-color:var(--accent);color:var(--accent)}
.map-dot.flagged{border:2px solid var(--amber)}
.map-dot.active{outline:2px solid var(--ink);outline-offset:2px}
.map-dot.right{background:var(--oksoft);border-color:var(--ok);color:var(--ok)}
.map-dot.wrong{background:var(--badsoft);border-color:var(--bad);color:var(--bad)}
@media(max-width:900px){.exam-layout{display:flex}.exam-layout>.exam-aside{display:flex}.exam-aside{position:static;max-width:none}.answer-map{grid-template-columns:repeat(10,minmax(0,1fr))}}
@media(max-width:600px){.answer-map{grid-template-columns:repeat(6,minmax(0,1fr))}.exam-paper{padding:20px}}

/* ---- results ---- */
.score-card{display:flex;flex-wrap:wrap;gap:24px 40px;position:relative;overflow:hidden;padding:clamp(22px,3.4cqi,36px)}
.score-card>*{position:relative}
.score-card>.guil{position:absolute}
.score-main{flex:1.4 1 320px;min-width:0}
.score-line{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-top:6px}
.result-score{font-family:var(--serif);font-weight:400;font-size:clamp(84px,12cqi,124px);line-height:.85;letter-spacing:-2px}
.score-line .pill{margin-bottom:10px}
.pass-scale{position:relative;margin-top:34px;height:10px;border-radius:9px;background:var(--sunk);box-shadow:inset 0 0 0 1px var(--line)}
.pass-scale .fill{position:absolute;left:0;top:0;bottom:0;border-radius:9px}
.pass-scale .tick{position:absolute;left:var(--pass);top:-7px;bottom:-7px;width:2px;background:var(--ink)}
.pass-scale .tick-label{position:absolute;left:var(--pass);top:-26px;transform:translateX(-50%);font-size:11px;font-weight:700;white-space:nowrap}
.scale-ends{display:flex;justify-content:space-between;font-size:11px;color:var(--faint);margin-top:6px}
.score-note{font-size:14px;margin-top:12px;max-width:460px}
.score-side{flex:1 1 260px;min-width:0;display:flex;flex-direction:column}
.score-side>div{padding:12px 0;border-bottom:1px solid var(--line)}
.score-side>div:last-child{border-bottom:0}
.score-side span{display:block;font-size:12px;color:var(--muted)}
.score-side strong{display:block;font-size:24px;line-height:1.2}
.score-side strong.small{font-size:17px;line-height:1.3;margin:2px 0 8px}
.breakdown{margin-top:18px}
.breakdown h2{font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.1;margin-bottom:10px}
.breakdown-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(90px,1fr) 46px;gap:16px;align-items:center;padding:12px 0;border-top:1px solid var(--line);font-size:14px}
.breakdown-name{display:flex;align-items:center;gap:9px;min-width:0}
.breakdown-name i{flex:none;width:8px;height:8px;border-radius:50%}
.breakdown-row strong{text-align:right;font-variant-numeric:tabular-nums}
.breakdown-row .bar>.tick{top:-4px;bottom:-4px}
.review-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin:22px 0 12px}
.review-list{padding:4px clamp(18px,3cqi,28px)}
.review-question{padding:22px 0;border-top:1px solid var(--line);border-bottom:0}
.review-list .review-question:first-child{border-top:0}
.review-question .row{gap:10px;align-items:center}
.review-question h3{font-size:17px;line-height:1.55;margin:10px 0;text-wrap:pretty}
.answer-boxes{display:grid;gap:8px;font-size:14.5px}
.answer-box{padding:10px 14px;border-radius:10px;margin:0}
.answer-box.ok{background:var(--oksoft)}
.answer-box.bad{background:var(--badsoft)}
.review-question details{margin-top:10px;font-size:14.5px}
.review-question summary{cursor:pointer;font-weight:700;color:var(--accent)}
.history-row{gap:16px;flex-wrap:nowrap}
.history-score{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1;width:62px;flex:none}
/* ---- fast track ---- */
.fast-ready{flex:1.25 1 400px;min-width:0}
.fast-ready-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.fast-ready-head h2{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1}
.fast-criteria{display:flex;flex-direction:column;margin-top:14px}
.fast-criterion{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.fast-criterion .mark{grid-row:span 2;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line2);font-size:11px;font-weight:700;color:var(--muted)}
.fast-criterion.done .mark{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.fast-criterion>span:nth-child(2){font-size:14.5px}
.fast-criterion small{display:block;font-size:12px;color:var(--muted)}
.fast-criterion strong{font-size:14px;font-variant-numeric:tabular-nums}
.fast-criterion .progress-line{grid-column:2/span 2;height:4px}
.next-box{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:16px 18px;border-radius:14px;background:var(--soft)}
.next-box p{font-size:15px;flex:1 1 220px}
.date-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 18px;margin-top:18px}
.date-row .field{flex:0 1 200px}
.date-row .tiny{flex:1 1 220px;font-size:13px;padding-bottom:4px}
.date-row strong{color:var(--ink)}
.fast-today{flex:1 1 300px;min-width:0;display:flex;flex-direction:column}
.fast-today-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.fast-today-head h3{font-size:18px}
.fast-today>.tiny:first-of-type{margin-top:4px;font-size:13px}
.fast-today .tasks{margin:12px 0}
.fast-note{margin-top:auto;font-size:12px}
.steps{display:flex;flex-direction:column;margin:0}
.step{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line);border-bottom:0}
.step .mark{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line2);font-size:11px;font-weight:700;color:var(--muted);background:transparent}
.step.done .mark{background:var(--ok);border-color:var(--ok);color:var(--paper)}
.step .what{min-width:0;font-size:14px;font-weight:700}
.step .what small{display:block;font-size:12px;font-weight:400;color:var(--muted)}
.tasks .step{grid-template-columns:24px minmax(0,1fr) auto;padding:11px 0}
.tasks .step .mark,.plan-check{width:22px;height:22px;border-radius:7px;cursor:pointer;position:relative}
.plan-check input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.tasks .step.done .mark{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.tasks .step.done .what{text-decoration:line-through;color:var(--muted)}
.tasks .step .what{font-size:14.5px}
.retry-strip{margin-top:18px;display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:clamp(18px,2.6cqi,24px)}
.retry-n{font-family:var(--serif);font-size:46px;line-height:1;color:var(--accent);flex:none}
.retry-strip .grow{flex:1 1 300px;min-width:0}
.retry-strip h3{font-size:17px}
.retry-strip .tiny{margin-top:4px;font-size:13px}
.sprints{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:14px}
.sprint-card{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:20px;display:flex;flex-direction:column;gap:12px;min-width:0}
.sprint-card.next{border-color:var(--accent)}
.sprint-card.ready{border-color:var(--ok)}
.sprint-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.sprint-head>div{display:flex;gap:10px;align-items:baseline;min-width:0}
.sprint-head .num{font-family:var(--serif);font-size:22px;line-height:1}
.sprint-head h3{font-size:16.5px;line-height:1.3}
.sprint-head .pill{font-size:11px;padding:3px 9px}
.sprint-strip{display:flex;gap:4px}
.sprint-strip i{flex:1;height:5px;border-radius:9px}
.sprint-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:4px}
.gap-score{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1;color:var(--bad);font-variant-numeric:tabular-nums;width:64px}
/* ---- other pages: older components on the new tokens ---- */
.grid.three,.grid.two,.grid.four{gap:14px}
.practice-card{border-radius:18px}
.practice-card h2{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.08}
.metric strong{font-family:var(--serif);font-weight:400;font-size:40px;line-height:1.05}
.lesson-row{border-bottom-color:var(--line)}
.lesson-index{color:var(--faint)}
.lesson-row.done .lesson-index{color:var(--ok)}
.course-group .group-head h2{font-family:var(--serif);font-weight:400;font-size:28px}
.diagram a{border-radius:12px;border-top-width:3px}
.flashcard h2{font-family:var(--serif);font-weight:400;font-size:32px;line-height:1.2}
.flashcard{border-radius:18px}
.timeline-row strong{font-family:var(--serif);font-weight:400;font-size:30px}
.plan-day-card{border-radius:16px}
.empty h2{font-family:var(--serif);font-weight:400;font-size:30px}
table th{background:var(--sunk)}
.source-link{color:var(--accent)}
.error{color:var(--bad)}
#toast{background:var(--ink);color:var(--paper);border-radius:10px}
.timer-bar{background:var(--paper);border-color:var(--line)}
.callout.keyfacts{display:none}
@media(max-width:760px){.page-head h1,h1{font-size:clamp(34px,9vw,44px)}.result-score{font-size:84px}.score-side{flex-basis:100%}.history-row{flex-wrap:wrap}.path-stats{grid-template-columns:52px minmax(0,1fr) 60px}}
.paused-card{max-width:720px;margin:clamp(12px,4cqi,40px) auto 0;padding:clamp(24px,4.6cqi,48px)}
.paused-card h1{font-size:clamp(32px,4.6cqi,46px);margin-top:10px}
.paused-stats{display:flex;flex-wrap:wrap;gap:14px 36px;margin:26px 0;padding:18px 0;border-block:1px solid var(--line)}
.paused-stats strong{display:block;font-family:var(--serif);font-weight:400;font-size:36px;line-height:1.05;font-variant-numeric:tabular-nums}
.paused-stats span{font-size:12px;color:var(--muted)}
/* Exam attempt history */
.exam-history{margin-bottom:18px}.eh-head{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:baseline;justify-content:space-between;margin-bottom:6px}.eh-head h3{margin:0}
.eh-stats{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px;color:var(--muted)}.eh-stats strong{color:var(--ink)}
.eh-trend.up{color:var(--ok)}.eh-trend.down{color:var(--bad)}
.score-chart{display:block;width:100%;height:auto;max-height:260px;margin:6px 0 12px}.score-chart text{font-family:inherit}
.exam-history .table-wrap{margin-top:4px}
.score-chart .chart-label{fill:var(--muted);font-size:11px}
.eh-actions{white-space:nowrap;text-align:right}.eh-actions>*{vertical-align:middle}.eh-delete{display:inline-grid;margin-left:8px;color:var(--muted)}.eh-delete:hover,.eh-delete:focus-visible{color:var(--bad)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:640px){.score-chart .chart-label{font-size:21px}.score-chart circle{r:9px;stroke-width:3px}.score-chart polyline{stroke-width:4px}.eh-opt{display:none}}
/* The theme button shows where a press takes you: sun in dark mode, moon in light mode */
:root[data-theme=dark] .theme-moon,:root:not([data-theme=dark]) .theme-sun{display:none}
/* Below desktop width each attempt is a compact row, so the delete button never needs sideways scrolling */
@media(max-width:1000px){.exam-history .table-wrap{overflow:visible}.exam-history table{display:block;width:100%;min-width:0}.exam-history thead{display:none}.exam-history tbody{display:block}
.exam-history tr{display:grid;grid-template-columns:22px auto minmax(0,1fr) auto;align-items:center;gap:2px 10px;padding:10px 0;border-top:1px solid var(--line)}
.exam-history td{display:block;padding:0;border:0;min-width:0}.exam-history td.eh-opt{display:none}
.exam-history td:nth-child(1){grid-row:1/3;color:var(--muted);font-size:13px}.exam-history td:nth-child(2){grid-column:2/4;font-size:14px}.exam-history td:nth-child(3){grid-row:2;grid-column:2}.exam-history td:nth-child(4){grid-row:2;grid-column:3;color:var(--muted);font-size:14px}.exam-history td.eh-actions{grid-row:1/3;grid-column:4}}
/* Answer sheet numbers are easier to hit on a touch screen */
@media(pointer:coarse){.map-dot{min-height:38px}}
/* Below this width the sticky bar already shows the clock */
@media(max-width:900px){.session-head .timer-box{display:none}}
.topbar-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.history-row .eh-delete{flex:none}
/* certification picker: a raised control with a label, a switch icon and a menu header, so it reads as a dropdown */
.track-card .course-trigger{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;width:100%;padding:9px 10px 10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--paper);box-shadow:0 1px 0 rgba(20,32,26,.05),0 6px 14px -10px rgba(20,32,26,.35);text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}
.track-card .course-trigger:hover{border-color:var(--accent);box-shadow:0 1px 0 rgba(20,32,26,.05),0 10px 18px -10px rgba(20,32,26,.4)}
.track-card .course-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.track-card .course-trigger[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 3px var(--soft)}
.course-trigger-label{grid-column:1/3;font-size:10px;font-weight:700;letter-spacing:1.3px;text-transform:uppercase;color:var(--faint);margin-bottom:3px}
.track-card .course-trigger:hover .course-trigger-label{color:var(--accent)}
.track-card .course-chevron{grid-column:2;grid-row:2/4;align-self:center;width:28px;height:28px;border-radius:50%;background:var(--soft);color:var(--accent);display:grid;place-items:center;transition:background .15s,color .15s}
.track-card .course-chevron svg{width:16px;height:16px}
.track-card .course-trigger:hover .course-chevron,.track-card .course-trigger[aria-expanded=true] .course-chevron{background:var(--accent);color:var(--paper)}
.track-card .course-trigger-name{grid-row:2}.track-card .course-trigger-sub{grid-row:3}
.track-card .course-menu{left:0;right:0;top:calc(100% + 8px)}
.course-menu .menu-label{padding-top:6px}
.course-option{grid-template-columns:34px minmax(0,1fr) 20px;gap:10px}
.course-option .course-badge{width:34px;height:34px;border-radius:9px;background:var(--soft);color:var(--accent);display:grid;place-items:center;font-size:12px;font-weight:700;letter-spacing:.3px}
.course-option[aria-selected=true]{box-shadow:inset 3px 0 0 var(--accent)}
.course-option[aria-selected=true] .course-badge{background:var(--accent);color:var(--paper)}
.course-option:disabled{opacity:.55;cursor:not-allowed}
.course-picker.account .course-option{grid-template-columns:34px minmax(0,1fr) 20px}
.course-picker.account .course-option[href],.course-picker.account .course-option[data-action=logout]{grid-template-columns:minmax(0,1fr) 20px}
.course-picker.chip{display:none;position:relative;min-width:0;flex:0 1 auto}
@media(max-width:760px){
.course-picker.chip{display:block}
.mobile-logo{flex:none}.mobile-logo .wordmark-name{display:none}
.mobile-spacer{flex:1}
.course-trigger.chip{display:flex;align-items:center;gap:6px;max-width:100%;height:34px;padding:0 6px 0 12px;border:1px solid var(--line);border-radius:999px;background:var(--paper);box-shadow:0 1px 0 rgba(20,32,26,.05);color:var(--ink);cursor:pointer;margin-left:4px}
.course-trigger.chip:active,.course-trigger.chip[aria-expanded=true]{border-color:var(--accent);background:var(--soft)}
.course-trigger.chip .course-trigger-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700}
.course-trigger.chip .course-chevron{flex:none;width:22px;height:22px;border-radius:50%;background:var(--soft);color:var(--accent);display:grid;place-items:center}
.course-trigger.chip .course-chevron svg{width:14px;height:14px}
.course-picker.chip .course-menu{position:fixed;left:16px;right:16px;top:62px;width:auto;min-width:0}
}
/* study mode: pick exams to download with their answers */
.study-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:6px 14px;margin-top:14px}
.study-item{display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;cursor:pointer;font-size:14px}
.study-item:hover{border-color:var(--accent)}
.study-item input{width:16px;height:16px;accent-color:var(--accent);margin:0}
.study-item small{color:var(--muted);font-size:12px}
.study-card .row.between{align-items:flex-start;gap:12px;flex-wrap:wrap}
