@layer reset,base,layout,components;
@layer reset{*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}img,svg{max-width:100%}[hidden]{display:none!important}}
@layer base{:root{--paper:#f7f8f4;--card:#fff;--ink:#233c32;--muted:#69766e;--line:#e1e7de;--green:#245c46;--pale:#ecf2e6;--accent:#dcebb3;--red:#a33e39;--amber:#8c651e}body{font-family:Inter,"Segoe UI",Arial,sans-serif;background:var(--paper);color:var(--ink);font-size:15px;line-height:1.6}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-1.3px;font-size:42px;line-height:1.14;margin-bottom:14px}h2{font-size:22px;letter-spacing:-.5px;line-height:1.3}h3{font-size:17px;line-height:1.4}a{text-underline-offset:4px}button:disabled{opacity:.55;cursor:wait}:focus-visible{outline:3px solid #b38329;outline-offset:4px}input,select,textarea{width:100%;border:1px solid #b9c8bc;background:white;border-radius:9px;padding:12px;color:var(--ink)}label{font-weight:600;font-size:14px}small{font-size:12px}code{background:var(--pale);padding:2px 6px;border-radius:4px}p{margin-bottom:16px}button{border:0}.muted{color:var(--muted)}.mini-label,.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.8px}.eyebrow{color:var(--green);margin-bottom:14px}.skip-link{position:absolute;left:15px;top:-60px;padding:8px 15px;background:white;z-index:20}.skip-link:focus{top:10px}}
@layer layout{.app-shell{display:grid;grid-template-columns:246px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--line);padding:32px 23px;display:flex;flex-direction:column;background:#f1f4ed;position:sticky;top:0;height:100vh}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-size:26px;font-weight:700;letter-spacing:-1px}.brand-dot{color:#7a9c52}.course-label{font-size:10px;letter-spacing:1.8px;color:var(--muted);margin:42px 12px 10px}.course-name{font-weight:650;margin:0 12px 28px}.course-name span{display:block;font-size:12px;font-weight:400;color:var(--muted)}nav{display:grid;gap:7px}nav a{padding:11px 12px;border-radius:8px;display:flex;gap:12px;align-items:center;text-decoration:none;color:#5e6b63;font-size:14px;font-weight:500}nav a:hover{background:#e6ecdf}nav a.active{background:#dde8d4;color:#254b39;font-weight:650}nav a span{width:19px;font-size:20px;line-height:1}nav small{margin-left:auto;border:1px solid #c5d2bd;padding:0 5px;border-radius:4px;font-size:10px}.sidebar-note{border:1px solid #d6e1cc;border-radius:12px;padding:20px;margin-top:auto;position:relative;overflow:hidden;margin-bottom:22px}.sidebar-note p{font-family:Georgia,serif;font-size:21px;line-height:1.4;margin:12px 0 0}.sidebar-note .mini-label{font-size:8px;letter-spacing:1px}.ladder-art{position:absolute;right:17px;bottom:20px;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:5px;transform:rotate(-6deg)}.ladder-art i{display:block;width:28px;height:8px;background:#b7cd9d}.ladder-art i:nth-child(2){width:24px}.ladder-art i:nth-child(3){width:20px}.ladder-art i:nth-child(4){width:16px}.source-link{font-size:11px;color:#69766e;text-decoration:none}.workspace{min-width:0}.topbar{height:85px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 44px;background:rgba(255,255,255,.5)}.breadcrumbs{font-size:10px;letter-spacing:1.5px;color:var(--muted)}.breadcrumbs span{margin:0 15px;color:#b2bcb2}.breadcrumbs strong{font-weight:600;color:var(--ink)}#main{max-width:1400px;margin:auto;padding:40px 44px 60px;min-height:calc(100vh - 160px)}footer{padding:22px 44px;color:var(--muted);font-size:11px;border-top:1px solid var(--line);display:flex;justify-content:space-between}.page-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.page-heading p{color:var(--muted);max-width:650px;margin:0}.two-col{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:26px}.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:30px 0 18px}.section-heading h2{margin:0}.section-heading a{font-size:12px;font-weight:600}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0 30px}.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px}.lesson-main,.lesson-aside{min-width:0}.lesson-aside{display:grid;align-content:start;gap:18px}.form-grid{display:grid;gap:17px}.auth-layout{max-width:470px;margin:30px auto}.table-scroll{overflow-x:auto}}
@layer components{.button{display:inline-flex;justify-content:center;align-items:center;gap:10px;padding:11px 18px;background:var(--green);color:white;border-radius:8px;text-decoration:none;font-size:13px;font-weight:600;line-height:1.5;min-height:43px}.button:hover{background:#194b37}.button.secondary{background:white;color:var(--ink);border:1px solid var(--line)}.button.secondary:hover{background:var(--pale)}.button.light{background:#eff5e5;color:var(--green)}.button.small{padding:7px 12px;min-height:32px;font-size:12px}.button.text{background:transparent;color:var(--green);padding:8px 2px;min-height:30px}.account{display:flex;gap:12px;align-items:center;font-size:12px}.avatar{display:grid;place-items:center;background:#dfe9d7;border:1px solid #d0dec4;border-radius:50%;width:33px;height:33px;color:var(--green);font-weight:650}.hero{border-radius:15px;background:#234d3d;color:#f7faef;padding:30px;display:grid;grid-template-columns:1fr 190px;gap:25px;position:relative;overflow:hidden;min-height:230px}.hero .eyebrow{color:#bdd39e;font-size:10px}.hero h2{font:30px/1.2 Georgia,serif;font-weight:400;max-width:490px;margin-bottom:12px}.hero p{color:#cbd9cd;font-size:13px;max-width:460px;line-height:1.7}.hero .button{margin-top:4px}.hero-art{display:flex;align-items:end;justify-content:center;gap:9px;transform:rotate(-8deg);padding:20px}.hero-art span{display:block;width:38px;background:#b5cd8d;border-radius:5px 5px 0 0;box-shadow:0 10px 25px #0d302a40}.hero-art span:nth-child(1){height:45px;background:#749a70}.hero-art span:nth-child(2){height:85px;background:#91b37e}.hero-art span:nth-child(3){height:127px}.stat{border:1px solid var(--line);border-radius:10px;padding:18px 20px;background:white}.stat strong{display:block;font-size:27px;line-height:1.2;font-weight:600;letter-spacing:-.7px}.stat span{font-size:11px;color:var(--muted)}.stat em{font-style:normal;color:#a0afa1;font-size:18px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:24px}.module-card{display:flex;flex-direction:column;position:relative;transition:transform .15s,border-color .15s;text-decoration:none;min-height:185px}.module-card:hover{transform:translateY(-2px);border-color:#9ab18f}.module-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.module-number{width:32px;height:32px;border:1px solid #e2e8dd;background:#f2f5ed;border-radius:8px;font:18px Georgia,serif;display:grid;place-items:center;color:var(--green)}.module-meta{font-size:10px;color:var(--muted)}.module-card h3{margin-bottom:8px;max-width:90%;font-size:16px}.module-card p{font-size:12px;color:var(--muted);margin-bottom:18px}.module-footer{margin-top:auto;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.progress-track{height:4px;background:#edf0e8;border-radius:20px;overflow:hidden;margin:12px 0 5px}.progress-track svg{display:block;width:100%;height:4px}.side-card{background:#edf2e6}.side-card h3{font-size:16px}.side-card p{font-size:12px;color:#607060}.check-list{list-style:none;margin:0;padding:0;display:grid;gap:14px;font-size:12px}.check-list li{display:flex;gap:10px}.check-list li:before{content:'✓';color:var(--green)}.hint-box{background:#f6f7ef;border-left:3px solid #aec484;padding:16px 18px;font-size:14px;border-radius:0 6px 6px 0;margin:18px 0}.empty{padding:30px;text-align:center;border:1px dashed #c9d4c3;border-radius:12px;color:var(--muted)}.empty h3{color:var(--ink)}.topic-list{display:grid;gap:10px}.topic-row{display:flex;align-items:center;gap:16px;border:1px solid var(--line);border-radius:10px;padding:16px 18px;background:white;text-decoration:none}.topic-row:hover{border-color:#9bb18c}.topic-row strong{display:block;font-size:14px;font-weight:550}.topic-row small{color:var(--muted)}.topic-row .row-meta{margin-left:auto;white-space:nowrap}.topic-index{font-size:12px;color:var(--muted);width:24px;flex-shrink:0}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:20px;padding:3px 9px;font-size:10px;font-weight:600;background:#f0f3ed;color:#64745f;white-space:nowrap}.badge.mastered{background:#e0efd5;color:#32613e}.badge.practicing{background:#fcf0d9;color:#8b661f}.search-row{display:flex;gap:12px;margin:22px 0}.search-row input{max-width:500px}.search-row select{max-width:220px}.back{font-size:12px;color:var(--muted);text-decoration:none;display:inline-block;margin-bottom:25px}.lesson-heading h1{font-size:32px;max-width:850px;line-height:1.25}.tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin:22px 0}.tabs a{padding:11px 18px;text-decoration:none;font-size:13px;color:var(--muted);border-bottom:2px solid transparent}.tabs a.active{border-color:var(--green);color:var(--green);font-weight:650}.lesson-card h2{font-size:18px}.worked{background:#f4f7f0;border-radius:9px;padding:20px;margin-top:24px}.worked h3{font-size:13px}.worked p{font-size:14px}.worked .answer-line{font-weight:650;color:var(--green);margin-top:18px}.video-card{display:block;padding:17px;border:1px solid var(--line);background:white;border-radius:10px;text-decoration:none}.video-card:hover{border-color:#9bb18c}.video-top{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:8px}.video-top span:first-child{color:#9c4e42}.video-card h3{font-size:13px;margin-bottom:7px}.video-card p{font-size:11px;color:var(--muted);line-height:1.6;margin:8px 0 0}.video-card small{font-size:10px;color:var(--muted)}.question-prompt{font-size:20px;line-height:1.6;white-space:pre-line;margin:18px 0}.options{display:grid;gap:10px;margin:20px 0}.option{padding:13px 15px;border:1px solid #dbe3d5;border-radius:8px;display:flex;gap:12px;align-items:center;cursor:pointer;font-size:14px;font-weight:400}.option:has(input:checked){border-color:var(--green);background:#edf4e7}.option input{width:auto;accent-color:var(--green)}.answer-input{max-width:420px}.answer-input input{font-size:19px;margin:6px 0}.answer-actions{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin-top:22px}.feedback{padding:20px;margin-top:24px;background:#edf5e7;border:1px solid #c4d9b7;border-radius:10px}.feedback.incorrect{background:#fdf3ed;border-color:#ebc6b4}.feedback h3{margin-bottom:8px}.feedback p:last-child{margin-bottom:0}.inline-error{color:var(--red);font-size:13px;margin-top:12px}.error-panel{border:1px solid #e7c3bb;background:#fdf3ef;padding:20px;border-radius:10px}.loading{padding:40px;color:var(--muted)}.field{display:grid;gap:6px}.field small{font-weight:400;color:var(--muted)}.auth-switch{text-align:center;font-size:13px;margin-top:22px}.auth-layout .card{padding:32px}.auth-layout h1{font-size:34px}.auth-layout .button{width:100%}.chart{margin:20px 0;width:100%;max-height:270px;border:1px solid var(--line);border-radius:9px;background:#fcfdf9}.chart text{font-size:12px;fill:#556a5a}.chart .axis{stroke:#afbcaa;stroke-width:1}.chart .grid{stroke:#e6ebdf;stroke-width:1}.chart .plot{fill:#7d9d69}.chart .line{stroke:#3d7754;stroke-width:3;fill:none}.chart .point{fill:#245c46}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th,.data-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line)}.data-table th{font-size:11px;color:var(--muted);font-weight:600}.data-table td a{text-decoration:none}.assignment{margin-bottom:16px}.assignment header{display:flex;justify-content:space-between;gap:15px}.assignment .topic-row{padding:12px;border:0;border-bottom:1px solid var(--line);border-radius:0}.assignment .topic-row:last-child{border-bottom:0}.history details{padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}.history summary{cursor:pointer}.history p{margin:12px 0 0}.prose{max-width:800px}.prose p,.prose li{font-size:14px}.prose li{margin-bottom:12px}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.review-grid .card{display:flex;flex-direction:column}.review-grid .button{margin-top:auto}.topic-select{max-height:250px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:12px}.topic-select label{display:flex;gap:8px;align-items:start;font-weight:400;font-size:12px;padding:6px}.topic-select input{width:auto;margin-top:4px}.result-chip{display:inline-block;font-size:11px;color:var(--green);background:var(--pale);border-radius:4px;padding:1px 6px;margin-right:8px}#toast{position:fixed;bottom:25px;right:25px;padding:12px 18px;background:var(--ink);color:white;border-radius:9px;box-shadow:0 5px 25px #0002;font-size:13px;max-width:350px;z-index:5;display:none}#toast.visible{display:block}}
@media(max-width:1200px){.two-col{grid-template-columns:minmax(0,1fr) 270px}.app-shell{grid-template-columns:220px 1fr}.sidebar{padding:28px 18px}.topbar{padding:0 30px}#main{padding:32px 30px}.hero{grid-template-columns:1fr 110px;padding:25px}.hero-art{padding:12px}.lesson-layout{grid-template-columns:minmax(0,1fr) 260px}}
@media(max-width:1000px){.two-col{grid-template-columns:1fr}.two-col>.right-rail{display:grid;grid-template-columns:1fr 1fr;gap:18px}.two-col>.right-rail .card{margin:0!important}.lesson-layout{grid-template-columns:1fr}.lesson-aside{grid-template-columns:1fr 1fr}.lesson-aside>h3,.lesson-aside>.muted{grid-column:1/-1}.review-grid{grid-template-columns:1fr}.breadcrumbs{font-size:9px}.sidebar-note{padding:15px}.sidebar-note p{font-size:18px}}
@media(max-width:720px){.app-shell{display:block}.sidebar{position:static;height:auto;padding:18px 20px 0;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:24px}.brand img{width:30px;height:30px}.course-label,.course-name,.sidebar-note,.source-link{display:none}nav{display:flex;overflow-x:auto;padding:14px 0 8px;gap:5px}nav a{white-space:nowrap;padding:8px 10px;font-size:12px}nav a span,nav a small{display:none}.topbar{height:63px;padding:0 20px}.breadcrumbs{letter-spacing:.6px}.breadcrumbs span{margin:0 7px}#main{padding:27px 20px 40px}.page-heading{display:block}.page-heading .button{margin-top:15px}h1{font-size:34px}.hero{grid-template-columns:1fr;padding:25px;min-height:0}.hero-art{display:none}.hero h2{font-size:27px}.stats{gap:9px}.stat{padding:14px 12px}.stat strong{font-size:24px}.stat span{font-size:10px}.course-grid{grid-template-columns:1fr}.two-col>.right-rail{display:block}.two-col>.right-rail .card{margin-bottom:18px!important}.lesson-heading h1{font-size:28px}.lesson-aside{grid-template-columns:1fr}.lesson-aside>h3,.lesson-aside>.muted{grid-column:auto}.card{padding:20px}.question-prompt{font-size:18px}.topic-row{gap:10px;padding:14px 12px}.topic-row .row-meta{white-space:normal}.row-meta small{display:none}.topic-row strong{font-size:13px}.search-row{flex-direction:column}.search-row select{max-width:none}.account{gap:8px}.account-name{display:none}footer{padding:20px;display:block}footer a{display:block}.section-heading a{white-space:nowrap}.assignment header{flex-wrap:wrap}.auth-layout{margin:10px auto}.auth-layout .card{padding:23px}.data-table{min-width:540px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
#main:focus{outline:none}
.right-rail{display:grid;align-content:start;gap:20px}
.hero .button{background:#dcebb3;color:#234d3d}
.hero .button:hover{background:#e9f4ce}
fieldset{margin:0;padding:0;border:0;min-width:0}
.connection-heading{font-size:18px;margin-top:28px}
.badge.complete,.badge.strong{background:#e0efd5;color:#32613e}
.badge.videos_complete{background:#e5edf9;color:#355b80}
.badge.learning,.badge.building{background:#fcf0d9;color:#765719}
.badge.weak,.badge.very_weak{background:#fbe8e1;color:#904532}
.lesson-flow{max-width:1100px;display:grid;gap:26px}
.lesson-flow .section-heading{margin-top:8px}
.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.video-grid .video-card{display:flex;flex-direction:column;padding:24px;border-top:3px solid #a4bc8d}
.video-grid .video-card.watched{border-color:#a7bd99;background:#f7faf3}
.video-link{display:block;text-decoration:none;flex:1}
.video-grid h3{font-size:19px;line-height:1.4;margin:15px 0 8px}
.video-grid small{font-size:12px}
.video-grid p{font-size:14px;margin:12px 0}
.video-grid .video-top{font-size:11px}
.watch-link{font-size:13px;font-weight:600;color:var(--green);display:block;margin:18px 0}
.watch-toggle{align-self:flex-start;font-size:13px}
.watch-toggle[aria-pressed=true]{background:#e2edd9;border-color:#98b185}
.video-note{font-size:12px;margin:14px 0 0}
.practice-overview{display:flex;justify-content:space-between;gap:24px;background:#edf2e6;padding:20px 24px;border-radius:12px}
.practice-overview>div{flex:1}.practice-overview strong{font-size:20px}
.practice-overview p{font-size:13px;margin:7px 0 0;color:var(--muted)}
.practice-overview .badge{font-size:13px}
.strength-key{font-size:12px;color:var(--muted);margin:12px 0 24px;max-width:850px}
.strength-key summary{cursor:pointer}.strength-key p{margin:10px 0}
.practice-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;align-items:start}
.practice-layout>*{min-width:0}
.practice-checklist{padding:20px}.practice-checklist h2{font-size:17px}.practice-checklist>p{font-size:12px}
.practice-checklist ol{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.practice-item{display:flex;gap:10px;width:100%;padding:12px;text-align:left;border:1px solid var(--line);border-radius:8px;background:white;color:var(--ink);cursor:pointer;font:inherit}
.practice-item.selected{border-color:#6a9462;background:#f2f7ed}.practice-item>span:last-child{min-width:0}
.practice-item strong{font-size:13px;display:block}.practice-item small{display:block;color:var(--muted);font-size:11px;margin-top:5px}
.problem-number{flex-shrink:0;border-radius:50%;width:24px;height:24px;background:var(--pale);color:var(--green);display:grid;place-items:center;font-size:12px}
.problem-preview{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;color:var(--muted);margin-top:3px;line-height:1.5}
.set-history{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.set-history h3{font-size:14px}.set-history p{font-size:11px}
.set-history-item{display:flex;justify-content:space-between;gap:8px;align-items:center;text-align:left;width:100%;border:0;border-radius:5px;background:transparent;padding:10px 6px;font:inherit;font-size:12px;color:var(--ink);cursor:pointer}
.set-history-item[aria-current]{background:var(--pale)}.set-history-item small{display:block;color:var(--muted);font-size:10px}
.completion-panel{padding:12px 0}.completion-panel h2{font:34px Georgia,serif;color:var(--green)}.completion-panel .badge{font-size:13px}
.set-score{display:flex;gap:12px;align-items:baseline;margin:24px 0 12px}.set-score strong{font-size:36px;color:var(--green)}.set-score span,.score-change{font-size:13px;color:var(--muted)}
.cell-detail{display:block;margin-top:5px;color:var(--muted)}.row-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}
@media(max-width:1100px){.practice-layout{grid-template-columns:240px minmax(0,1fr);gap:16px}}
@media(max-width:850px){.practice-layout{grid-template-columns:1fr}.practice-checklist ol{grid-template-columns:repeat(5,minmax(0,1fr))}.practice-item{padding:9px;display:block}.problem-preview,.practice-item small{display:none}.problem-number{margin-bottom:6px}.set-history{margin-top:15px}.set-history-item{max-width:380px}.practice-overview{flex-direction:column;gap:16px}}
@media(max-width:720px){.video-grid{grid-template-columns:1fr}.video-grid .video-card{padding:20px}.lesson-flow .section-heading{align-items:start;gap:12px}.lesson-flow .section-heading h2{font-size:22px}.practice-checklist{padding:15px}.practice-item strong{font-size:10px}.practice-checklist ol{gap:5px}.practice-item{padding:8px 5px}.practice-overview{padding:20px}.set-score{flex-wrap:wrap}.topic-row .row-meta{max-width:125px}.practice-layout .lesson-card{padding:18px}}
