/* alexOnProduct learning workspace */
:root{
  --bg:#F5F7F8; --panel:#FFFFFF; --panel2:#EDF2EF; --text:#202C28; --muted:#62716A; --line:#E1E8E3; --line2:#CED8D1;
  --acc:#176B52; --acc-ink:#FFFFFF; --coral:#B94735; --warn:#96651B;
  --sans:'Onest',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  color-scheme:light; box-sizing:border-box;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
.library-toolbar>.field{flex:1;max-width:460px}
.lesson-aside{max-height:calc(100svh - 64px);overflow-y:auto}
.progress-level>.cap,.progress-xp>.cap{display:block}
.dashboard-stats+.sec-h{margin:0 0 18px}
@media(min-width:761px){.sidebar .who>span:not(.ava){display:block}}
@media(max-width:1000px){.lesson-aside{max-height:none;overflow:visible}}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}
button,input,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,p{margin:0}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px;border-radius:6px}
.boot{min-height:100svh;display:grid;place-items:center;color:var(--muted)}
.wrap{width:min(1240px,calc(100% - 48px));margin-inline:auto}
.star{width:12px;height:12px;color:var(--acc);flex:none}
.cap{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* buttons, fields, pills */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;padding:0 20px;border-radius:11px;border:1px solid transparent;background:none;cursor:pointer;font-weight:600;font-size:15px;text-decoration:none;transition:background-color .2s,border-color .2s,transform .15s}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-acc{background:var(--acc);color:var(--acc-ink)}
.btn-acc:hover:not(:disabled){background:#10533F}
.btn-line{border-color:var(--line2)}
.btn-line:hover:not(:disabled){border-color:var(--text)}
.btn-quiet{color:var(--muted);padding:0 12px}
.btn-quiet:hover{color:var(--text)}
.field{display:grid;gap:8px}
.field span{font-size:14px;color:var(--muted)}
.input,.textarea{width:100%;background:#F7F9F8;border:1px solid var(--line2);border-radius:12px;padding:13px 14px;font-size:16px;transition:border-color .2s}
.input:focus,.textarea:focus{outline:none;border-color:var(--acc)}
.textarea{min-height:240px;resize:vertical;line-height:1.6}
.pill{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border-radius:999px;font-size:13px;font-weight:500;border:1px solid var(--line2);color:var(--muted);white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pill.new{color:var(--muted)}
.pill.draft{color:var(--warn);border-color:#EDDBB9;background:#FFFAF0}
.pill.submitted{color:#4266A6;border-color:#D4E0F7;background:#F0F5FF}
.pill.reviewed{color:var(--acc);border-color:#CBE4D7;background:#EEF7F1}
.err{color:var(--coral);font-size:14px}
.note{font-size:14px;color:var(--muted)}

/* login */
.login{min-height:100svh;display:grid;place-items:center;padding:24px;background:radial-gradient(60% 50% at 70% 20%,rgba(139,224,188,.08),transparent 60%),var(--bg)}
.login-card{width:min(420px,100%);padding:36px;border-radius:18px;background:var(--panel);border:1px solid var(--line)}
.brand{display:inline-flex;align-items:center;gap:2px;font-weight:700;font-size:20px;letter-spacing:-0.04em;text-decoration:none}
.brand i{font-style:normal;font-weight:400}
.brand .star{margin-left:6px;align-self:flex-start;margin-top:3px}
.login-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.login-top .back{font-size:14px}
.login h1{margin-top:28px;font-size:32px;font-weight:600;letter-spacing:-0.04em;line-height:1.1}
.login p.sub{margin-top:10px;color:var(--muted)}
.login form{display:grid;gap:16px;margin-top:28px}
.login .btn{width:100%;margin-top:4px}
.demo{margin-top:22px;padding:14px 16px;border-radius:12px;background:rgba(139,224,188,.06);border:1px solid rgba(139,224,188,.2);font-size:14px;color:var(--muted)}
.demo b{color:var(--text);font-weight:600}

/* shell */
.top{position:sticky;top:0;z-index:10;background:rgba(245,247,248,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.top .wrap{height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.top-right{display:flex;align-items:center;gap:14px}
.who{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted)}
.ava{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--panel2);border:1px solid var(--line2);font-weight:600;color:var(--text);font-size:14px}
.tabs{display:flex;gap:6px;flex-wrap:wrap}
.tab{min-height:40px;padding:0 16px;border-radius:11px;border:1px solid transparent;background:none;cursor:pointer;color:var(--muted);font-weight:500;font-size:15px}
.tab:hover{color:var(--text)}
.tab[aria-current="page"]{border-color:var(--line2);color:var(--text);background:var(--panel)}
.tab b{margin-left:6px;color:var(--acc);font-weight:600}
.demo-bar{background:rgba(244,198,106,.08);border-bottom:1px solid rgba(244,198,106,.2);color:var(--warn);font-size:13px;text-align:center;padding:8px 16px}
.page{padding:48px 0 96px}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:36px}
.page-head h1{margin-top:12px;font-size:clamp(28px,3vw,38px);font-weight:600;letter-spacing:-0.045em;line-height:1.02}
.page-head h1 em{font-style:normal;color:var(--acc)}
.page-head p{max-width:420px;color:var(--muted)}
.back{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--muted);text-decoration:none;font-size:15px}
.back:hover{color:var(--text)}

/* student: cases */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.card{display:flex;flex-direction:column;gap:14px;min-height:260px;padding:26px;border-radius:18px;background:var(--panel);border:1px solid var(--line);text-decoration:none;transition:border-color .2s,transform .2s}
.card:hover{border-color:var(--line2);transform:translateY(-2px)}
.card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.card h3{margin-top:auto;font-size:22px;font-weight:600;letter-spacing:-0.03em;line-height:1.15}
.card p{color:var(--muted);font-size:15px}
.card .cta{margin-top:6px;font-weight:600;font-size:15px;color:var(--acc)}
.cf-banner{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:16px;padding:26px 28px;border-radius:18px;text-decoration:none;background:radial-gradient(80% 120% at 100% 50%,rgba(139,224,188,.1),transparent 60%),var(--panel);border:1px solid var(--line)}
.cf-banner:hover{border-color:var(--line2)}
.cf-banner h3{margin-top:8px;font-size:24px;font-weight:600;letter-spacing:-0.03em}
.cf-banner p{margin-top:6px;color:var(--muted);font-size:15px;max-width:560px}
.empty{padding:40px;border-radius:18px;border:1px dashed var(--line2);color:var(--muted);text-align:center}

/* workspace */
.ws{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:20px;align-items:start}
.panel{padding:30px;border-radius:18px;background:var(--panel);border:1px solid var(--line)}
.side{position:sticky;top:96px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:16px 0 26px}
.steps i{height:4px;border-radius:4px;background:var(--line2)}
.steps i.done{background:rgba(139,224,188,.5)}
.steps i.cur{background:var(--acc)}
.ws h2{font-size:28px;font-weight:600;letter-spacing:-0.035em;line-height:1.1}
.prompt{margin-top:12px;color:var(--muted)}
.lbl{display:flex;justify-content:space-between;gap:12px;margin:26px 0 10px;font-size:14px;color:var(--muted)}
.saved{transition:color .3s}
.saved.ok{color:var(--acc)}
.acts{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px}
.side h3{margin-top:12px;font-size:20px;font-weight:600;letter-spacing:-0.02em}
.side p{margin-top:10px;color:var(--muted);font-size:15px}
.facts{display:grid;gap:8px;margin-top:20px}
.fact{display:flex;justify-content:space-between;gap:16px;padding:12px 14px;border-radius:12px;background:#F7F9F8;border:1px solid var(--line);font-size:14px}
.fact span{color:var(--muted)}
.fact b{font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.side .note{margin-top:16px}
.mats{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.mats ul{margin:10px 0 0;padding-left:18px;display:grid;gap:6px;font-size:14px}
.mats .note{margin-top:10px}

/* read-only answers, rubric, feedback */
.answers{display:grid;gap:22px;margin-top:24px}
.ans h4{font-size:17px;font-weight:600}
.ans .q{margin-top:4px;font-size:14px;color:var(--muted)}
.ans .a{margin-top:10px;padding:14px 16px;border-radius:12px;background:#F7F9F8;border:1px solid var(--line);white-space:pre-wrap;font-size:15px}
.ans .a.empty-a{color:var(--muted);font-style:italic}
.fb{padding:26px;border-radius:18px;background:#EDF7F0;border:1px solid #C5DFCC;margin-bottom:20px}
.fb h3{margin-top:10px;font-size:22px;font-weight:600;letter-spacing:-0.03em}
.fb .txt{margin-top:12px;white-space:pre-wrap}
.fb.back-to{background:#FFFAF0;border-color:#EDDDBB}
.rubric{display:grid;gap:14px;margin-top:18px}
.rb-top{display:flex;justify-content:space-between;font-size:14px}
.rb-top span:last-child{color:var(--muted)}
.rb-bar{height:4px;border-radius:4px;background:var(--line2);margin-top:6px;overflow:hidden}
.rb-bar i{display:block;height:100%;background:var(--acc)}
.rb-list{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:4px;font-size:14px;color:var(--muted)}
.rb-list li::before{content:"○ ";color:var(--line2)}
.rb-list li.ok{color:var(--text)}
.rb-list li.ok::before{content:"✓ ";color:var(--acc)}
.outline{margin:14px 0 0;padding-left:20px;display:grid;gap:8px;color:var(--muted);font-size:15px}
.sec{margin-top:20px}

/* admin */
.list{display:grid;border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto auto;gap:18px;align-items:center;padding:16px 8px;border-bottom:1px solid var(--line);text-decoration:none;border-radius:10px;transition:background-color .2s}
.row:hover{background:var(--panel)}
.row .nm{font-weight:600}
.row .sub{font-size:14px;color:var(--muted)}
.row time{font-size:14px;color:var(--muted);white-space:nowrap}
.stats{display:flex;gap:18px;font-size:14px;color:var(--muted)}
.stats b{color:var(--text);font-weight:600}
.assign{display:grid;gap:8px;margin-top:16px}
.check{display:flex;align-items:center;gap:12px;min-height:48px;padding:10px 14px;border-radius:12px;border:1px solid var(--line);cursor:pointer}
.check:hover{border-color:var(--line2)}
.check input{width:18px;height:18px;accent-color:var(--acc)}
.check small{margin-left:auto}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.form{display:grid;gap:14px;margin-top:16px}
.info ol{margin:12px 0 0;padding-left:20px;display:grid;gap:8px;color:var(--muted);font-size:15px}
.info code{background:#F7F9F8;border:1px solid var(--line);padding:1px 6px;border-radius:6px;font-size:13px;color:var(--text)}

@media (max-width:900px){
  .wrap{width:calc(100% - 32px)}
  .ws,.two{grid-template-columns:minmax(0,1fr)}
  .side{position:static;order:-1}
  .panel{padding:22px}
  .row{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}
  .row .sub{grid-column:1/-1;grid-row:2}
  .row time{display:none}
  .who > span:not(.ava){display:none}
  .page{padding:32px 0 72px}
}
@media (prefers-reduced-motion: reduce){ *,*::before,*::after{transition:none!important} }

/* cheat sheets */
.sec-h{margin-top:40px;display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.cheats{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:14px}
.cheat-card{display:flex;flex-direction:column;gap:8px;padding:16px 18px;border-radius:16px;background:var(--panel);border:1px solid var(--line);text-decoration:none;transition:border-color .2s}
.cheat-card:hover{border-color:var(--acc)}
.cheat-card b{font-weight:600;font-size:15px;line-height:1.3}
.cheat-btn{width:100%;margin-top:18px}
.cheat{max-width:920px;margin-top:10px;padding:36px;border-radius:18px;background:var(--panel);border:1px solid var(--line)}
.cheat-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;padding-bottom:22px;border-bottom:1px solid var(--line)}
.cheat-head h1{margin-top:10px;font-size:clamp(28px,3.4vw,40px);font-weight:600;letter-spacing:-0.04em;line-height:1.05}
.cheat section{margin-top:26px}
.cheat .mini{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--acc)}
.c-ideas,.c-traps,.c-check{margin:12px 0 0;padding-left:22px;display:grid;gap:9px;font-size:15px;line-height:1.5}
.c-ideas li::marker{color:var(--acc);font-weight:600}
.c-traps li::marker{color:var(--coral)}
.c-formulas{margin:12px 0 0;display:grid;gap:8px}
.c-formulas div{display:grid;grid-template-columns:200px minmax(0,1fr);gap:16px;padding:12px 14px;border-radius:12px;background:#F7F9F8;border:1px solid var(--line)}
.c-formulas dt{font-weight:600;font-size:14px}
.c-formulas dd{margin:0;font-size:14px;color:var(--muted)}
.c-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px}
.c-foot{margin-top:28px}
@media (max-width:900px){ .cheat{padding:22px} .c-two{grid-template-columns:minmax(0,1fr);gap:0} .c-formulas div{grid-template-columns:minmax(0,1fr);gap:4px} }
@media print{
  @page{margin:14mm}
  body{background:#fff;color:#111;font-size:11pt}
  .top,.demo-bar,.noprint{display:none!important}
  .page{padding:0}
  .wrap{width:100%}
  .cheat{border:0;padding:0;background:#fff;max-width:none}
  .cheat .mini,.c-ideas li::marker{color:#0b7a55}
  .cap,.c-formulas dd,.note{color:#555}
  .c-formulas div{background:#f4f4f4;border-color:#ddd}
  .cheat-head{border-color:#ddd}
}

/* Account access, progression and protected course library */
.badge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin-top:18px}
.badge-card{border:1px solid var(--line,#ddd);border-radius:14px;padding:18px;opacity:1}
.badge-card.earned{opacity:1;border-color:#ADD0BA;background:#F0F8F3}
.history{padding:16px 0;border-bottom:1px solid var(--line,#ddd)}
.history summary{cursor:pointer;font-weight:600}.preserve{white-space:pre-wrap;overflow-wrap:anywhere}
.reading{max-width:880px;margin:24px auto;line-height:1.8;overflow-wrap:anywhere}
.reading h1,.reading h2,.reading h3,.reading h4{margin:1.5em 0 .7em}.reading p{margin:.55em 0;white-space:pre-wrap}
.reading pre{overflow:auto;white-space:pre;padding:16px;background:rgba(128,128,128,.1)}
.tabs a{text-decoration:none}.panel .acts{flex-wrap:wrap}.panel select{max-width:100%}
@media(max-width:760px){.top .wrap{flex-wrap:wrap;gap:12px}.tabs{overflow:auto;max-width:100%}.row{overflow-wrap:anywhere}}
.reading .table-scroll{overflow-x:auto;margin:24px 0}.reading table{border-collapse:collapse;width:100%;font-size:14px;line-height:1.6}.reading th,.reading td{padding:12px 14px;border:1px solid var(--line);vertical-align:top;min-width:130px}.reading th{text-align:left;background:#EDF2EF}.reading ul,.reading ol{padding-left:24px}.reading li{margin:10px 0;line-height:1.8}.reading blockquote{border-left:3px solid #a4dec7;margin:20px 0;padding:8px 20px;color:var(--muted)}.reading pre{overflow:auto;white-space:pre}.reading pre code{background:transparent;padding:0}

/* Workspace frame */
.icon{width:24px;height:24px;display:inline-block;vertical-align:middle;flex:none;stroke-linecap:round;stroke-linejoin:round}
.app-shell{min-height:100svh;display:grid;grid-template-columns:224px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;padding:30px 16px 20px;background:#14231F;color:#F1F7F3;border-right:1px solid #20352C;z-index:20}
.sidebar-brand{padding:1px 10px 36px}.sidebar .brand{font-size:21px;white-space:nowrap}.sidebar .star{color:#8BE0BC}
.workspace-label{display:block;margin-top:8px;color:#93ACA0;font-size:11px;letter-spacing:.11em;text-transform:uppercase;font-weight:500}
.sidebar .tabs{display:flex;flex-direction:column;gap:6px;flex-wrap:nowrap}
.sidebar .tab{display:flex;align-items:center;gap:12px;min-height:46px;padding:11px 13px;color:#B7C8C1;border-radius:10px;font-size:14px;line-height:1.4;transition:background .18s,color .18s}
.sidebar .tab .icon{width:20px;height:20px;opacity:.88}
.sidebar .tab:hover{color:#fff;background:#1E352B}.sidebar .tab[aria-current="page"]{background:#28483B;border-color:#375848;color:#E6F7ED;font-weight:600;box-shadow:inset 3px 0 #95D2AD}
.sidebar .tab[aria-current="page"] .icon{color:#B5E7C7;opacity:1}.sidebar .tab b{margin-left:auto;color:#B5E7C7}
.sidebar-bottom{margin-top:auto;border-top:1px solid #2A3D34;padding:20px 8px 0;display:grid;gap:12px}
.sidebar .who{font-size:12px;color:#DBE6DF;line-height:1.5;min-width:0}.sidebar .who>span:last-child{overflow-wrap:anywhere}.sidebar .ava{width:36px;height:36px;background:#294437;border-color:#3B594A;color:#D4EFDC;flex:none}
.sidebar .btn-quiet{justify-content:flex-start;min-height:38px;padding:0 4px;font-weight:400;font-size:13px;color:#A3B9AD}.sidebar .btn-quiet:hover{color:#FFF}.sidebar .btn-quiet .icon{width:17px;height:17px}
.app-shell .page{min-width:0;padding:42px 0 80px}.app-shell .wrap{width:calc(100% - 80px);max-width:1240px}
.page-head{margin-bottom:28px;gap:18px}.page-head h1{margin-top:8px;line-height:1.16;font-weight:650;letter-spacing:-.045em}.page-head p{font-size:14px;line-height:1.7}.page-head .btn{flex:none}.page-kicker{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:10px}
.cap{font-size:10px;letter-spacing:.09em;line-height:1.6}.note{line-height:1.65}.btn{gap:8px;min-height:43px;padding-inline:17px;font-size:13px}.btn .icon{width:18px;height:18px}.btn-line{background:#fff}.btn-line:hover:not(:disabled){background:#F4F8F5;border-color:#8BA996}.btn-quiet:hover{background:#EDF2EF}.sidebar .btn-quiet:hover{background:transparent}
.input,.textarea{background:#FFF;border-radius:10px;font-size:14px;padding:12px 14px;box-shadow:0 1px 2px #10231A03}.input:focus,.textarea:focus{box-shadow:0 0 0 3px #176B5214}.input::placeholder,.textarea::placeholder{color:#849087}.textarea{min-height:180px;line-height:1.75}.field{font-size:13px;color:var(--muted);gap:7px}.field span{font-size:13px}.panel select{font:inherit;color:var(--text);background:#fff;border:1px solid var(--line2);padding:11px;border-radius:9px}.check input{flex:none}
.panel{padding:26px;box-shadow:0 2px 5px #1B332003}.panel h3{letter-spacing:-.025em;font-size:19px}.panel>p{margin-top:8px}.empty{background:#FFF;padding:44px 24px}.back{font-size:13px;gap:7px}.back .icon{width:17px;height:17px}

/* Practice dashboard */
.dashboard-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 32px}
.stat-item{display:flex;align-items:center;gap:14px;padding:19px 21px;background:#FFF;border:1px solid var(--line);border-radius:14px}
.stat-item>.icon{color:var(--acc);padding:10px;width:43px;height:43px;background:#ECF4EF;border-radius:12px}.stat-item div{min-width:0}.stat-item b{display:block;font-size:25px;line-height:1.1;letter-spacing:-.04em;font-weight:650}.stat-item span{display:block;margin-top:6px;color:var(--muted);font-size:12px}
.grid{grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:18px}.card{gap:14px;padding:23px;min-height:277px;box-shadow:0 2px 5px #1B332003}.card:hover{border-color:#A7C5B3;box-shadow:0 8px 22px #163C2810;transform:translateY(-3px)}.card-top{align-items:flex-start;gap:10px}.card-meta{display:flex;gap:12px;align-items:center;min-width:0}.card-meta .cap{max-width:160px}.card-top .pill{padding:4px 8px;font-size:10px;min-height:25px;gap:5px}.pill::before{width:5px;height:5px}.card h3{margin-top:7px;font-size:20px;line-height:1.35}.card p{font-size:13px;line-height:1.7}.card .cta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:8px;font-size:13px}.card .cta .icon{width:18px;height:18px}
.icon-tile{width:46px;height:46px;border-radius:12px;background:#E8F3ED;color:#287456;display:inline-flex;align-items:center;justify-content:center;flex:none}.icon-tile .icon{width:24px;height:24px}.tone-0{background:#E8F3ED;color:#287456}.tone-1{background:#EFECFA;color:#7661A8}.tone-2{background:#EAF1FB;color:#497DAA}.tone-3{background:#FAF0DF;color:#A57B35}
.sec-h{margin-top:38px;padding-bottom:0}.sec-h .cap{font-size:12px;color:var(--text)}.sec-h .note{font-size:12px;max-width:420px}.cheats{gap:12px;margin-top:16px}.cheat-card{padding:19px;gap:10px;background:#FFF}.cheat-card:hover{box-shadow:0 3px 10px #163C2808}.cheat-card .icon{width:20px;height:20px;color:var(--acc)}.cheat-card b{font-size:14px;font-weight:550}.cf-banner{margin-top:30px;background:#EAF3EE;border-color:#CCDCD1;padding:26px}.cf-banner h3{font-size:25px}.cf-banner p{max-width:560px;font-size:13px}.cf-banner .cap{color:#397254}.cf-banner .icon-tile{background:#D5E7DB}

/* Course library */
.library-hero{display:flex;align-items:center;gap:20px;margin-bottom:30px}.library-hero>.icon-tile{width:64px;height:64px;border-radius:18px;background:#DFEDE5}.library-hero>.icon-tile .icon{width:31px;height:31px}.library-hero h1{font-size:34px;line-height:1.2;letter-spacing:-.045em;font-weight:650}.library-hero p{margin-top:8px;color:var(--muted);font-size:14px;max-width:650px;line-height:1.65}
.library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.library-toolbar .input{max-width:460px;background:#FFF}.library-toolbar .note{font-size:12px}.material-list{display:grid;gap:10px}.material-item{display:flex;align-items:center;gap:18px;padding:20px 23px;border:1px solid var(--line);border-radius:14px;text-decoration:none;background:#FFF;transition:border-color .18s,box-shadow .18s}.material-item:hover{border-color:#A6C5B1;box-shadow:0 4px 12px #163C2808}.material-item>div{min-width:0;flex:1}.material-item strong{display:block;font-size:16px;font-weight:550;line-height:1.5}.material-item small{display:block;margin-top:5px;font-size:11px;line-height:1.5;color:var(--muted)}.material-item>.icon{margin-left:auto;width:18px;height:18px;color:#73937E}.material-number{display:grid;place-items:center;flex:none;width:38px;height:38px;background:#EFF4F0;color:#4F7560;border-radius:11px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}

/* Reading experience */
.lesson-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--muted);margin-bottom:26px}.lesson-breadcrumb a{text-decoration:none}.lesson-breadcrumb a:hover{color:var(--acc)}.lesson-breadcrumb .icon{width:15px;height:15px}.lesson-heading{margin-bottom:28px;max-width:850px}.lesson-heading .cap{color:#428261}.lesson-heading h1{font-size:clamp(28px,3vw,38px);line-height:1.22;letter-spacing:-.04em;margin:10px 0 12px;font-weight:650}.lesson-heading p{font-size:14px;line-height:1.7;color:var(--muted)}
.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 224px;gap:26px;align-items:start}.lesson-layout .reading{width:100%;min-width:0;max-width:none;margin:0;padding:32px 36px;font-size:16px;line-height:1.85;box-shadow:0 3px 10px #163C2803}.reading>*:first-child{margin-top:0}.reading h1{font-size:30px;line-height:1.3}.reading h2{font-size:25px;line-height:1.4;letter-spacing:-.03em;margin:1.8em 0 .7em;scroll-margin-top:32px}.reading h3{font-size:20px;line-height:1.4;margin:1.65em 0 .65em;scroll-margin-top:32px}.reading h4{font-size:17px;line-height:1.5}.reading p{margin:.85em 0;white-space:normal}.reading p,.reading li{color:#39483F}.reading strong{color:var(--text);font-weight:600}.reading ul,.reading ol{padding-left:23px;margin:18px 0}.reading li{margin:8px 0;line-height:1.8;padding-left:4px}.reading li::marker{color:#4B8962}.reading blockquote{border-left:3px solid #6DA786;background:#F1F7F2;border-radius:0 10px 10px 0;padding:14px 20px;margin:24px 0;color:#415D4B}.reading blockquote p{margin:0}.reading hr{height:1px;border:0;background:var(--line);margin:32px 0}.reading code{font-size:.88em;background:#EDF2EF;border-radius:4px;padding:2px 5px;color:#386349}.reading pre{border:1px solid var(--line);background:#F6F8F6;border-radius:10px;font-size:13px;padding:18px}.reading pre code{color:#394A3F}.reading .table-scroll{margin:24px 0;border:1px solid var(--line);border-radius:10px;overflow:auto}.reading table{font-size:13px;line-height:1.65}.reading th,.reading td{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 15px;min-width:120px}.reading tr:last-child td{border-bottom:0}.reading th:last-child,.reading td:last-child{border-right:0}.reading th{background:#EDF4EF;color:#3B624B;font-weight:600}.reading tbody tr:nth-child(even){background:#FAFCFA}
.lesson-aside{position:sticky;top:32px;min-width:0}.lesson-toc{padding:18px 0;border-top:1px solid var(--line)}.lesson-toc>summary{font-size:12px;line-height:1.5;font-weight:600;letter-spacing:.04em;color:#52695B;cursor:pointer;margin-bottom:14px}.lesson-toc nav{display:grid;gap:2px;border-left:1px solid #D9E3DC}.toc-link{display:block;width:100%;border:0;background:none;text-align:left;color:#68796D;font:inherit;font-size:12px;line-height:1.65;padding:8px 10px 8px 14px;cursor:pointer;border-left:2px solid transparent;margin-left:-1px;border-radius:0 6px 6px 0;overflow-wrap:anywhere}.toc-link:hover,.toc-link[aria-current]{background:#EAF2EC;color:#246441;border-left-color:#508961}.toc-sub{padding-left:25px;font-size:11px}.lesson-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}

/* Verified progress and achievements */
.progress-level,.progress-xp{position:relative;padding:28px}.progress-level{background:#FFF}.progress-xp{background:#EDF5EF;border-color:#D4E5D9}.progress-level h2,.progress-xp h2{font-size:34px;font-weight:650;letter-spacing:-.04em;line-height:1.2;margin:10px 0}.progress-level .icon-tile,.progress-xp .icon-tile{margin-bottom:10px}.progress-xp>p{font-size:13px;line-height:1.7;max-width:350px;color:#597260}.progress-level .note{font-size:12px}.level-track{display:flex;justify-content:space-between;gap:8px;margin-top:24px;position:relative}.level-step{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;position:relative;color:#7B8980}.level-step::before{content:"";position:absolute;height:2px;background:#E4EBE6;left:calc(-50% - 4px);right:50%;top:14px;z-index:0}.level-step:first-child::before{display:none}.level-step>span{display:grid;place-items:center;position:relative;width:30px;height:30px;border:1px solid #D9E3DC;border-radius:50%;background:#F5F8F5;font-size:11px;z-index:1}.level-step>b{font-size:10px;font-weight:500;white-space:nowrap}.level-step[aria-current="step"]{color:#236B43}.level-step[aria-current="step"]>span{background:#226D4B;color:#FFF;border-color:#226D4B;box-shadow:0 0 0 4px #E1EFE6}.level-step[aria-current="step"]>b{font-weight:650}
.badge-grid{grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:13px;margin-top:21px}.badge-card{display:flex;flex-direction:column;align-items:flex-start;padding:20px;border-radius:13px;background:#FAFBFA;border-color:#E4EAE5;opacity:1}.badge-card>b{font-size:14px;line-height:1.5;font-weight:550;margin-top:13px}.badge-card .note{font-size:11px;margin-top:6px;color:#718074}.badge-card.earned{background:#F1F8F3;border-color:#ADD0BA}.badge-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#ECF0ED;color:#85968B;border:1px solid #E0E7E2}.badge-icon .icon{width:26px;height:26px}.badge-card.earned .badge-icon{color:#2C7850;background:#DCEEE1;border-color:#C7E1D0}.badge-state{display:block;margin-top:auto;padding-top:14px;font-size:10px;font-weight:600;color:#7B8B80}.earned .badge-state{color:#377A51}.badge-card>p:not(.note){font-size:12px;line-height:1.6;margin-top:8px;overflow-wrap:anywhere}

/* Admin and existing practice forms */
.row{font-size:14px;gap:14px;overflow-wrap:anywhere}.row .sub,.row time{font-size:12px}.row:hover{background:#EDF3EF}.history{font-size:14px}.history p{margin-top:8px;line-height:1.7}.two{gap:20px}.side{top:28px}.ws h2{font-size:25px;line-height:1.3}.side h3{font-size:21px}.side p,.prompt{font-size:14px;line-height:1.75}.facts{gap:7px}.fact{background:#F5F8F6;font-size:12px;padding:12px}.ans .a{background:#F8FAF8;font-size:14px}.steps{gap:8px;margin-top:20px}.steps i.done{background:#A2CEB3}.rb-list li::before{color:#91AD9B}.check{background:#FFF;font-size:13px;line-height:1.6;overflow-wrap:anywhere}.check:hover{background:#F6FAF7}.stats{font-size:12px}.reading + .acts{margin-top:24px}.info code{background:#F4F7F4}
.login{background:radial-gradient(ellipse at 75% 10%,#DCEDE180,transparent 65%),#F5F7F8}.login-card{box-shadow:0 12px 50px #1C492A0B;border-color:#DEE8E1}.login h1{font-size:30px}.login p.sub{font-size:14px;line-height:1.7}.login .brand{color:#263C2E}.login .brand .star{color:var(--acc)}

@media(min-width:1500px){.app-shell .wrap{max-width:1260px}.lesson-layout{grid-template-columns:minmax(0,850px) 240px;justify-content:center}.lesson-layout .reading{padding:42px 50px;font-size:17px}}
@media(max-width:1180px){.app-shell{grid-template-columns:204px minmax(0,1fr)}.sidebar{padding-inline:12px}.sidebar-brand{padding-inline:7px}.sidebar .brand{font-size:19px}.app-shell .wrap{width:calc(100% - 48px)}.lesson-layout{grid-template-columns:minmax(0,1fr) 190px;gap:20px}.lesson-layout .reading{padding:27px}.toc-link{font-size:11px}.grid{grid-template-columns:repeat(auto-fill,minmax(255px,1fr))}.card{padding:20px}.stat-item{padding:17px 14px;gap:10px}}
@media(max-width:1000px){.lesson-layout{grid-template-columns:minmax(0,1fr)}.lesson-aside{position:static;grid-row:1}.lesson-toc{background:#EEF3F0;border:1px solid #DCE6DE;border-radius:12px;padding:15px 18px}.lesson-toc>summary{margin-bottom:0}.lesson-toc[open]>summary{margin-bottom:12px}.lesson-toc nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 12px;border:0}.toc-link{border-left:0;margin:0;padding:5px;font-size:12px}.toc-sub{padding-left:17px}.lesson-heading{margin-bottom:22px}.dashboard-stats{gap:10px}.stat-item>.icon{width:35px;height:35px;padding:8px}.stat-item b{font-size:22px}.stat-item span{font-size:10px}.progress-level,.progress-xp{padding:24px}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:relative;height:auto;padding:16px 20px 0;display:grid;grid-template-columns:1fr auto;border-right:0;gap:16px 12px}.sidebar-brand{padding:0}.sidebar .brand{font-size:19px}.workspace-label{font-size:9px;margin-top:3px}.sidebar .tabs{grid-row:2;grid-column:1/-1;flex-direction:row;overflow-x:auto;padding:0 0 12px;gap:5px;max-width:100%;scrollbar-width:thin;scrollbar-color:#385E49 transparent}.sidebar .tab{white-space:nowrap;min-height:38px;font-size:12px;padding:9px 11px;gap:7px;flex:none}.sidebar .tab .icon{width:16px;height:16px}.sidebar .tab[aria-current="page"]{box-shadow:none}.sidebar-bottom{grid-column:2;grid-row:1;display:flex;align-items:center;margin:0;padding:0;border:0;gap:9px}.sidebar .who>span:not(.ava){display:none}.sidebar .ava{width:31px;height:31px;font-size:11px}.sidebar .btn-quiet{font-size:11px;padding:0;min-height:34px}.sidebar .btn-quiet .icon{width:15px;height:15px}.app-shell .page{padding:28px 0 56px}.app-shell .wrap{width:calc(100% - 36px)}.page-head h1{font-size:30px}.page-head{margin-bottom:24px;align-items:flex-start}.page-head p{max-width:none;font-size:13px}.page-kicker{font-size:12px}.dashboard-stats{margin-bottom:24px}.stat-item{display:block;padding:15px 12px}.stat-item>.icon{margin-bottom:10px}.stat-item b{font-size:24px}.stat-item span{font-size:10px}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.card{min-height:255px}.library-hero{gap:15px;align-items:flex-start;margin-bottom:24px}.library-hero>.icon-tile{width:48px;height:48px;border-radius:13px}.library-hero>.icon-tile .icon{width:25px;height:25px}.library-hero h1{font-size:28px}.library-hero p{font-size:12px}.library-toolbar{gap:12px;align-items:flex-start;flex-direction:column}.library-toolbar .input{max-width:none}.material-item{padding:16px;gap:13px}.material-item strong{font-size:14px}.material-item small{font-size:10px}.material-number{width:32px;height:32px;font-size:11px}.lesson-breadcrumb{margin-bottom:20px;font-size:11px}.lesson-heading h1{font-size:29px;line-height:1.26}.lesson-heading p{font-size:13px}.lesson-layout{gap:20px}.lesson-layout .reading{padding:23px;font-size:15px;border-radius:15px}.reading h2{font-size:22px}.reading h3{font-size:19px}.lesson-toc nav{grid-template-columns:minmax(0,1fr)}.lesson-footer .btn{font-size:12px;flex:1;padding:10px 13px}.panel{padding:22px}.progress-level h2,.progress-xp h2{font-size:31px}.two{gap:16px}.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.badge-card{padding:16px}.badge-card>b{font-size:12px}.badge-icon{width:41px;height:41px;border-radius:12px}.badge-icon .icon{width:22px;height:22px}.badge-card .note{font-size:10px}.row .sub{font-size:12px}.sec-h .note{max-width:none}.cheats{grid-template-columns:repeat(2,minmax(0,1fr))}.cheat-card{padding:16px}.cheat-card b{font-size:12px}.cf-banner{padding:23px;gap:18px}.cf-banner h3{font-size:23px}.cf-banner p{font-size:12px}.row .check{padding:10px;gap:8px;min-width:0}.row{font-size:13px}.login-card{padding:28px}}
@media(max-width:400px){.app-shell .wrap{width:calc(100% - 28px)}.sidebar{padding-inline:14px}.sidebar .brand{font-size:18px}.sidebar .btn-quiet{font-size:10px;gap:4px}.sidebar-bottom{gap:7px}.dashboard-stats{gap:7px}.stat-item{padding:13px 10px}.stat-item span{font-size:9px}.stat-item b{font-size:22px}.card{padding:19px}.card-meta{gap:9px}.icon-tile{width:39px;height:39px;border-radius:10px}.card-top .pill{font-size:9px}.cap{font-size:9px}.lesson-layout .reading{padding:19px}.material-item{padding:14px;gap:10px}.material-item>.icon{width:15px;height:15px}.lesson-heading h1{font-size:26px}.level-step>b{font-size:9px}.badge-card{padding:13px}.badge-card>b{font-size:11px}.badge-grid{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{.sidebar,.lesson-aside,.lesson-breadcrumb,.lesson-footer,.dashboard-stats{display:none!important}.app-shell,.lesson-layout{display:block}.app-shell .wrap{width:100%;max-width:none}.app-shell .page{padding:0}.lesson-layout .reading{padding:0;border:0;box-shadow:none;font-size:11pt}.lesson-heading h1{font-size:24pt}.reading h2{font-size:17pt}.reading h3{font-size:14pt}.reading th,.reading td{font-size:10pt}.reading,.panel{background:#fff}.reading h2,.reading h3{break-after:avoid}.reading pre,.reading blockquote{break-inside:avoid}}

/* Readable labels at compact sizes. */
.badge-state{margin-top:10px;padding-top:0;color:#596D60}
.badge-card .note{color:#596D60;font-size:12px}
.toc-sub{font-size:12px}
@media(max-width:760px){
  .cap,.stat-item span,.card-top .pill,.level-step>b,.badge-state{font-size:11px}
  .badge-card>b{font-size:14px}
  .badge-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
  .library-toolbar{align-items:flex-end;gap:12px}
  .library-toolbar>.field{min-width:0}
  .library-toolbar .note{white-space:nowrap;font-size:11px}
  .lesson-aside{max-height:none;overflow:visible}
}
.task-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);padding:18px;background:var(--panel);margin-bottom:10px;border:1px solid var(--line);border-radius:14px}
.task-row .check{border:0;padding:0;align-items:flex-start;font-size:14px}
.task-row .check input{margin-top:5px}
@media(max-width:760px){.task-row{grid-template-columns:minmax(0,1fr);gap:12px}.task-row>div{padding-left:30px}}
