/*===========# DESIGN TOKENS / TWO COMPLETE THEMES #===========*/
:root{color-scheme:light;--bg:#f6f7fb;--panel:#fff;--panel2:#f0f3fa;--text:#20283e;--muted:#798198;--line:#e8ebf3;--primary:#4c65e9;--primary-soft:#eef0ff;--green:#2e8f6c;--green-soft:#e6f6ee;--orange:#a6722c;--shadow:0 10px 40px #27345206;--radius:24px;--sidebar:252px;font-family:'Segoe UI',system-ui,-apple-system,sans-serif}
:root[data-theme=dark]{color-scheme:dark;--bg:#121622;--panel:#1b2130;--panel2:#252c3e;--text:#edf0fa;--muted:#9aa5bb;--line:#2c3447;--primary:#92a2ff;--primary-soft:#303959;--green:#8bd7b0;--green-soft:#243e36;--orange:#e1ba81;--shadow:0 10px 40px #00000012}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.55}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #95a6ff;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:36px;line-height:1.2;letter-spacing:-1.2px;font-weight:650}h2{font-size:23px;line-height:1.3;letter-spacing:-.5px;font-weight:650}h3{font-size:17px;font-weight:600}p{margin-bottom:14px}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:10px;font-weight:700}.icon{width:20px;height:20px;flex:none;vertical-align:middle}.brand{display:flex;gap:11px;align-items:center;font-size:22px;font-weight:730;letter-spacing:-.7px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:#4c65e9;color:white;border-radius:13px;font-size:30px;line-height:1;font-weight:600;box-shadow:0 4px 15px #4c65e91c}.brand small{display:block;font-size:9px;letter-spacing:2px;font-weight:500;color:var(--muted)}.btn{border:0;border-radius:13px;background:var(--primary);color:white;padding:13px 20px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .15s,filter .15s}.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}[data-theme=dark] .btn{color:#151b2a}.btn.secondary{background:var(--panel2);color:var(--text)}.btn.ghost{background:transparent;color:var(--muted);border:1px solid var(--line)}.btn.compact{padding:9px 14px;font-size:13px}.icon-btn{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:12px}.row{display:flex;align-items:center;gap:12px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.stack{display:grid;gap:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}.badge{display:inline-flex;align-items:center;gap:6px;border-radius:8px;padding:5px 9px;background:var(--panel2);color:var(--muted);font-size:11px;font-weight:600}.badge.green{background:var(--green-soft);color:var(--green)}.badge.blue{background:var(--primary-soft);color:var(--primary)}.divider{height:1px;background:var(--line);margin:20px 0}.empty{padding:40px 24px;text-align:center}.empty>.icon{width:38px;height:38px;color:var(--primary);margin-bottom:15px}.empty p{max-width:480px;margin:0 auto 20px}.error{background:#fff0ee;color:#a84135;padding:14px;border-radius:12px}.notice{background:var(--primary-soft);padding:14px 18px;border-radius:14px;color:var(--primary);font-size:13px}.pre{white-space:pre-wrap;overflow-wrap:anywhere}.math-content{line-height:1.85}.math-content mjx-container{overflow:visible;max-width:none}.field{display:grid;gap:7px;font-size:13px;font-weight:600}.field input,.field textarea,.field select,.answer-input{width:100%;padding:12px 14px;background:var(--bg);border:1px solid var(--line);border-radius:12px;color:var(--text);font-weight:400}.field textarea{resize:vertical;min-height:110px}.field+.field{margin-top:16px}.field small{font-weight:400;color:var(--muted)}.wide{width:100%}
/*===========# APPLICATION SHELL #===========*/
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:var(--panel);border-right:1px solid var(--line);padding:32px 22px;display:flex;flex-direction:column;z-index:20}.sidebar .brand{margin:0 8px 40px}.nav-label{font-size:9px;color:var(--muted);letter-spacing:1.8px;margin:0 16px 12px}.nav{display:grid;gap:7px}.nav a{display:flex;align-items:center;gap:13px;padding:12px 15px;border-radius:12px;font-size:13px;color:var(--muted);font-weight:550}.nav a:hover{background:var(--bg);color:var(--text)}.nav a.active{color:var(--primary);background:var(--primary-soft)}.sidebar-bottom{margin-top:auto;padding-top:30px}.sidebar-note{padding:16px;background:var(--bg);border-radius:16px;margin:0 3px 20px;font-size:11px;color:var(--muted)}.sidebar-note strong{display:block;color:var(--text);margin-bottom:6px;font-size:12px}.support-link{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;padding:0 12px}.main{margin-left:var(--sidebar);max-width:1730px;padding:0 42px 42px}.topbar{height:91px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.breadcrumb{color:var(--muted);font-size:12px}.breadcrumb span{color:var(--text)}.account{display:flex;align-items:center;gap:13px}.avatar{width:38px;height:38px;background:var(--primary-soft);border-radius:50%;display:grid;place-items:center;color:var(--primary);font-weight:700}.user-name{font-size:12px;font-weight:650}.menu-button{display:none}.page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:27px;gap:20px}.page-head p{font-size:13px;color:var(--muted);margin:10px 0 0}.page-head h1{margin:6px 0}.head-date{color:var(--muted);font-size:12px;margin-top:13px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px}.hero{position:relative;overflow:hidden;background:#eaf0ff;border:0;padding:32px 34px;min-height:267px;display:flex;align-items:center;isolation:isolate}.hero::before{content:'';position:absolute;inset:0;background-image:linear-gradient(#7894dc12 1px,transparent 1px),linear-gradient(90deg,#7894dc12 1px,transparent 1px);background-size:29px 29px;z-index:-1}.hero-copy{max-width:70%;position:relative;z-index:2}.hero .eyebrow{color:#677ec3}.hero h2{font-size:31px;max-width:420px;margin:14px 0;letter-spacing:-1px;color:#27395d}.hero p{font-size:13px;color:#6b7b99;max-width:360px}.hero .btn{background:#4c65e9;color:white;margin-top:4px}.hero .badge{background:#ffffffa6;color:#607298}.math-orbit{position:absolute;right:9px;top:35px;width:215px;height:215px;border:1px solid #afbee05c;border-radius:50%;display:grid;place-items:center;transform:rotate(-12deg)}.math-orbit::before{content:'';position:absolute;inset:24px;border:1px dashed #9fb0d85e;border-radius:50%}.formula-tile{background:#ffffffd9;color:#4b64bd;border:1px solid white;border-radius:20px;padding:19px;font-size:26px;box-shadow:0 16px 30px #6983c51a;font-family:Georgia,serif;transform:rotate(12deg)}.formula-dot{position:absolute;top:15px;right:20px;color:#6982c0;font-size:22px}.hero [data-no-content]{max-width:70%}[data-theme=dark] .hero{background:#25314e}[data-theme=dark] .hero h2{color:#e2eaff}[data-theme=dark] .hero p{color:#a1b0ce}[data-theme=dark] .hero .eyebrow{color:#98addf}[data-theme=dark] .formula-tile{background:#344564;color:#c0d3ff;border-color:#516181}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0 27px}.stat{padding:19px 20px}.stat-icon{background:var(--panel2);width:32px;height:32px;display:grid;place-items:center;border-radius:10px;color:var(--primary);margin-bottom:14px}.stat b{font-size:24px;letter-spacing:-.7px;font-weight:650}.stat p{font-size:11px;color:var(--muted);margin:5px 0 0}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-title h2{font-size:19px;margin:0}.text-link{font-size:12px;font-weight:600;color:var(--primary)}.lesson-row{display:flex;align-items:center;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.lesson-row:last-child{border:0;padding-bottom:0}.lesson-row:first-child{padding-top:0}.lesson-number{width:43px;height:43px;border-radius:13px;background:var(--panel2);display:grid;place-items:center;font-size:13px;color:var(--muted);flex:none}.lesson-number.done{background:var(--green-soft);color:var(--green)}.lesson-row h3{font-size:13px;margin:0 0 4px}.lesson-row p{font-size:11px;color:var(--muted);margin:0}.lesson-row .row-info{flex:1;min-width:0}.progress-ring{width:140px;height:140px;border:12px solid var(--panel2);border-top-color:var(--primary);border-radius:50%;display:grid;place-items:center;margin:24px auto;position:relative}.progress-ring strong{font-size:30px;font-weight:650;letter-spacing:-1px}.progress-ring small{font-size:10px;color:var(--muted);display:block;text-align:center;letter-spacing:0}.progress-track{height:6px;background:var(--panel2);border-radius:9px;overflow:hidden}.progress-fill{height:100%;background:var(--primary);border-radius:9px}.goal-row{display:flex;justify-content:space-between;font-size:12px;margin-bottom:10px}.tip{border:0;background:var(--green-soft)}.tip .icon{color:var(--green)}.tip h3{font-size:14px;margin:13px 0 8px}.tip p{font-size:12px;line-height:1.7;color:var(--green);margin-bottom:0}.week{display:flex;justify-content:space-between;margin:22px 0 5px;gap:5px}.day{display:grid;gap:9px;text-align:center;font-size:10px;color:var(--muted)}.day span{width:28px;height:28px;display:grid;place-items:center;background:var(--panel2);border-radius:50%;font-size:11px}.day.active span{background:var(--primary);color:white}.day.past span{background:var(--green-soft);color:var(--green)}.mini-heading{font-size:14px;margin:0}.foot-note{margin-top:35px;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}
/*===========# LEARNING, HOMEWORK, ADMIN #===========*/
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px}.content-grid.single{grid-template-columns:minmax(0,850px)}.tabs{display:flex;gap:7px;border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:25px}.tabs a{padding:8px 13px;border-radius:10px;color:var(--muted);font-size:12px}.tabs a.active{background:var(--primary-soft);color:var(--primary)}.task{border-top:1px solid var(--line);padding:24px 0}.task:first-child{border-top:0;padding-top:0}.task h3{font-size:14px;margin-bottom:14px}.task-prompt{font-size:17px;margin-bottom:18px}.answer-input{max-width:300px;background:var(--panel)}.upload-label{display:inline-flex;align-items:center;gap:8px;border:1px dashed var(--muted);border-radius:12px;padding:13px;color:var(--muted);font-size:13px;cursor:pointer;margin-top:12px}.upload-label input{display:none}.photo-preview{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.photo-preview img,.review-photo{width:110px;height:110px;object-fit:cover;border:1px solid var(--line);border-radius:12px}.result{padding:20px;background:var(--green-soft);border-radius:15px;margin-top:20px}.result.retry{background:var(--primary-soft)}.result p{font-size:13px;margin:6px 0}.history-row{display:grid;grid-template-columns:1fr auto;gap:15px;padding:17px 0;border-bottom:1px solid var(--line)}.history-row:last-child{border:0}.history-row strong{font-size:13px}.history-row small{display:block;font-size:11px;color:var(--muted);margin-top:5px}.route-topic{margin-bottom:26px}.route-topic>h2{font-size:18px;margin-bottom:16px}.route-topic .card{padding-top:22px}.chat-wrap{min-height:520px;display:flex;flex-direction:column}.chat-message{max-width:580px;padding:20px 24px;background:var(--panel2);border-radius:0 20px 20px 20px;margin:25px 0}.chat-input{margin-top:auto;display:flex;gap:12px;padding-top:25px;border-top:1px solid var(--line)}.chat-input input{flex:1;min-width:0;padding:14px;background:var(--bg);border:1px solid var(--line);border-radius:12px}.settings-grid{display:grid;grid-template-columns:minmax(0,600px) minmax(250px,1fr);gap:24px}.theme-options{display:flex;gap:14px;margin-top:15px}.theme-choice{flex:1;padding:18px;border:1px solid var(--line);border-radius:15px;background:var(--bg);color:var(--text);text-align:left}.theme-choice.selected{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.theme-choice span{display:block;font-size:12px;margin-top:12px}.admin-import{font-family:Consolas,monospace;font-size:12px;min-height:190px!important}.alert-output{white-space:pre-wrap;font-size:12px;margin-top:15px}.demo-banner{font-size:11px;padding:10px 16px;background:var(--primary-soft);color:var(--primary);border-radius:10px;margin-bottom:20px}
/*===========# PUBLIC LANDING AND EMAIL AUTHENTICATION #===========*/
.public{min-height:100vh;background:var(--bg)}.public-header{max-width:1200px;margin:auto;padding:25px 36px;display:flex;justify-content:space-between;align-items:center}.landing{max-width:1200px;margin:25px auto;padding:35px 36px 70px}.landing-grid{display:grid;grid-template-columns:1.06fr .94fr;align-items:center;gap:70px}.landing h1{font-size:61px;letter-spacing:-2.8px;line-height:1.12;margin:23px 0}.landing h1 em{font-style:normal;color:var(--primary)}.landing .lead{color:var(--muted);font-size:17px;max-width:470px;line-height:1.8}.landing-features{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:70px}.landing-feature{padding:25px}.landing-feature h3{margin:20px 0 10px}.landing-feature p{font-size:13px;color:var(--muted);margin:0}.preview-window{background:var(--panel);border:1px solid var(--line);border-radius:28px;padding:25px;box-shadow:0 25px 90px #3f5b9220;transform:rotate(2deg)}.preview-dots{display:flex;gap:5px;margin-bottom:26px}.preview-dots i{width:7px;height:7px;border-radius:50%;background:var(--line)}.preview-window .hero{padding:24px;min-height:210px}.preview-window .hero h2{font-size:24px}.preview-window .hero-copy{max-width:100%}.preview-window .lesson-row{padding:18px 4px}.preview-window h3{font-size:13px}.auth-container{max-width:1050px;margin:35px auto;padding:20px 35px;display:grid;grid-template-columns:1fr 440px;gap:80px;align-items:center}.auth-intro h1{font-size:48px;letter-spacing:-2px}.auth-intro p{color:var(--muted);font-size:16px;max-width:380px}.auth-card{padding:33px}.auth-card h2{margin-bottom:7px}.auth-card .btn.wide{margin-top:23px}.auth-links{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--primary);margin-top:18px}.boot{display:grid;place-items:center;min-height:100vh;align-content:center;gap:20px}.boot p{color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:var(--text);color:var(--panel);padding:13px 22px;border-radius:14px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:.2s;z-index:100;max-width:90%;font-size:13px}#toast.visible{opacity:1;transform:translate(-50%,0)}
/*===========# RESPONSIVE AND ACCESSIBILITY #===========*/
@media(min-width:1600px){.main{padding-left:60px;padding-right:60px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 330px}.hero{min-height:300px}}
@media(max-width:1200px){:root{--sidebar:220px}.main{padding:0 25px 30px}.sidebar{padding:28px 15px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 260px;gap:18px}.hero-copy{max-width:78%}.math-orbit{right:-80px;opacity:.5}.card{padding:22px}.hero h2{font-size:27px}.landing-grid{gap:30px}.landing h1{font-size:48px}.auth-container{gap:40px}.content-grid{grid-template-columns:minmax(0,1fr) 230px}}
@media(max-width:980px){.dashboard-grid,.content-grid,.settings-grid{grid-template-columns:1fr}.right-rail{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.right-rail .stack{gap:18px}.progress-ring{width:110px;height:110px;margin:15px auto}.math-orbit{right:10px;opacity:1}.hero-copy{max-width:70%}.auth-container{grid-template-columns:1fr;max-width:530px}.auth-intro{display:none}.landing-grid{grid-template-columns:1fr}.preview-window{max-width:500px;margin:20px auto 0;width:100%}.landing h1{max-width:700px}.landing-features{margin-top:45px}}
@media(max-width:700px){.sidebar{transform:translateX(-100%);transition:transform .2s;width:252px;box-shadow:20px 0 60px #0002}.sidebar.open{transform:translateX(0)}.main{margin-left:0;padding:0 18px 30px}.topbar{height:73px;margin-bottom:24px}.menu-button{display:grid}.breadcrumb{display:none}.user-name{display:none}.page-head h1{font-size:28px}.page-head{margin-bottom:21px}.head-date{display:none}.dashboard-grid{gap:20px}.hero{padding:25px;min-height:280px}.hero-copy{max-width:87%}.math-orbit{right:-120px;opacity:.5}.hero h2{font-size:28px}.stats{gap:9px;margin-top:16px}.stat{padding:16px 12px}.stat b{font-size:22px}.stat p{font-size:10px}.stat-icon{margin-bottom:12px}.right-rail{display:block}.right-rail>.card,.right-rail>.stack{margin-top:18px}.card{border-radius:19px;padding:21px}.lesson-row{gap:11px}.lesson-row .badge{display:none}.lesson-row .btn{padding:8px}.public-header{padding:20px}.public-header .brand{font-size:19px}.public-header .btn{padding:10px 14px}.landing{padding:20px;margin:0 auto}.landing h1{font-size:43px;letter-spacing:-1.8px}.landing .lead{font-size:15px}.landing-features{grid-template-columns:1fr;gap:12px}.landing-feature{padding:22px}.landing-feature h3{margin:12px 0 6px}.auth-container{padding:15px 18px;margin:12px auto}.auth-card{padding:25px}.tabs{overflow:auto;white-space:nowrap}.row.wrap .btn{flex:1}.foot-note{gap:15px}.photo-preview img{width:80px;height:80px}.chat-wrap{min-height:440px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}.preview-window{transform:none}}

/* Accurate completion ring; zero progress has no highlighted segment. */
.progress-ring{border:0;background:conic-gradient(var(--primary) var(--progress,0%),var(--panel2) 0)}.progress-ring::before{content:"";position:absolute;inset:12px;background:var(--panel);border-radius:50%}.progress-ring strong{position:relative;z-index:1}

/*===========# EDITABLE GOAL PICKER / BANK FIGURES / LADDER #===========#*/
.goal-picker{position:relative;display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--panel2);border-radius:16px;padding:4px 12px}.goal-picker input{width:95px;border:0;background:transparent;font-size:20px;padding:10px;outline-offset:2px}.goal-picker>span{color:var(--muted);flex:1}.goal-picker summary{cursor:pointer;list-style:none;padding:10px;border-radius:12px;transition:background .2s,color .2s}.goal-picker summary:hover{background:var(--primary);color:white}.goal-options{position:absolute;top:calc(100% + 8px);right:0;z-index:20;display:grid;grid-template-columns:repeat(2,1fr);gap:6px;min-width:250px;background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:10px;box-shadow:0 16px 40px #0002}.goal-options button{background:var(--panel2);color:var(--text);border:0;padding:12px;border-radius:12px;cursor:pointer;transition:background .2s,color .2s,transform .2s}.goal-options button:hover,.goal-options button:focus-visible{background:var(--primary);color:white;transform:translateY(-1px)}.task-figure{margin:20px 0;padding:12px;background:#fff;border-radius:18px;border:1px solid var(--line);max-width:680px}.task-figure img{display:block;width:100%;height:auto;max-height:500px;object-fit:contain}.math-pending{visibility:hidden;min-height:24px}.math-error{color:var(--muted);padding:12px;border:1px solid var(--line);border-radius:12px}mjx-container{max-width:none;overflow:visible;padding:0}mjx-container[display="true"]{margin:14px 0!important}.ladder-steps{display:flex;gap:12px;margin:10px 0 26px}.ladder-steps span{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:var(--panel2);border:1px solid var(--line);font-weight:700}.ladder-steps .done{background:var(--primary);color:white}.lesson-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}

.goal-options[hidden]{display:none}.goal-toggle{transition:background .2s,color .2s}.goal-toggle:hover{background:var(--primary);color:var(--bg)}

/*===========# MODULE FOLDERS / HOMEWORK SCORES / RECOVERY #===========#*/
.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px}.module-folder{display:block;transition:transform .2s,border-color .2s}.module-folder:hover{transform:translateY(-4px);border-color:var(--primary)}.folder-icon{display:flex;align-items:center;gap:16px;color:var(--primary);font-size:30px;font-weight:700;margin-bottom:25px}.folder-icon svg{width:50px;height:50px}.work-card{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:24px;display:flex;gap:20px;align-items:center}.work-card>div:first-child{flex:1}.work-card h3{margin:8px 0}.score-badge{display:inline-flex;align-items:center;padding:8px 13px;border-radius:12px;font-weight:700;white-space:nowrap}.score-badge.neutral{background:var(--panel2);color:var(--muted)}.score-badge.red{background:#f45b661c;color:#d74a57}.score-badge.orange{background:#e99b2625;color:#a66b16}.score-badge.yellow{background:#eccb3830;color:#9b7b00}.score-badge.green{background:var(--green-soft);color:var(--green)}:root[data-theme=dark] .score-badge.red{color:#ff909b}:root[data-theme=dark] .score-badge.orange{color:#ffb761}:root[data-theme=dark] .score-badge.yellow{color:#f6df78}.theory-chapter,.worked-example{border-bottom:1px solid var(--line);padding:17px 0}.theory-chapter summary,.worked-example summary{cursor:pointer;font-weight:600}.theory-chapter .math-content{margin-top:20px}.route-next{margin-bottom:25px}.route-path{display:grid;gap:18px}.route-stop{display:grid;grid-template-columns:44px 1fr;gap:18px;position:relative}.route-number{display:grid;place-items:center;height:44px;border-radius:15px;background:var(--panel2);color:var(--primary);font-weight:700}.route-number.done{background:var(--green-soft);color:var(--green)}.route-stop .card{padding:22px}.answer-input.answer-correct,textarea.answer-correct{border:2px solid #319573;background:#3195730d}.answer-input.answer-wrong,textarea.answer-wrong{border:2px solid #d75a66;background:#d75a660d}.answer-status{font-size:13px;margin:7px 0}.answer-status.correct{color:var(--green)}.answer-status.wrong{color:#d75a66}.save-status{padding:12px 15px;background:var(--primary-soft);color:var(--primary);border-radius:12px;font-size:13px;position:sticky;top:8px;z-index:3}.solution-toggle{margin:15px 0;border:1px solid var(--line);border-radius:14px;padding:13px 16px}.solution-toggle summary{cursor:pointer;font-size:15px;font-weight:650;color:var(--primary);padding:3px}.attempt-row{border-bottom:1px solid var(--line);padding:12px 0}.attempt-row summary{font-size:12px;cursor:pointer}.task input:disabled,.task textarea:disabled{opacity:.85;cursor:default}@media(max-width:700px){.work-card{flex-wrap:wrap;padding:20px}.work-card>div:first-child{flex-basis:100%}.route-stop{grid-template-columns:32px 1fr;gap:10px}.route-number{width:32px;height:36px}.history-row{flex-wrap:wrap}.module-grid{grid-template-columns:1fr}}

.module-notes>summary{font-size:21px;font-weight:650;cursor:pointer}.module-notes[open]>summary{margin-bottom:20px}.task-figure{max-width:560px}.task-figure img{max-height:350px}
/*===========# THEMATIC BLOCKS / SHORT RUNS #===========#*/
.learning-block,.block-intro{display:flex;align-items:center;justify-content:space-between;gap:28px;overflow:hidden}
.learning-block h2{margin:12px 0}.block-card-copy{flex:1}.block-card-copy .progress-track{max-width:420px}
.block-art{position:relative;min-width:230px;width:265px;height:180px;border-radius:22px;background:linear-gradient(135deg,hsl(var(--block-hue) 65% 52% / .18),hsl(var(--block-hue) 65% 52% / .03));display:flex;flex-direction:column;justify-content:center;align-items:center;isolation:isolate;padding:20px;flex-shrink:0}
.block-art svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1;opacity:.16;z-index:-1}.block-art .art-curve{stroke-width:3}.block-art .art-triangle{stroke-dasharray:4 4}.block-art span{font-size:25px;font-family:Georgia,serif;text-align:center;line-height:1.3}.block-art small{font-size:10px;margin-top:18px;opacity:.65;text-align:center}
.block-intro{margin-bottom:28px}.sprint-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.sprint-card{display:flex;gap:14px;align-items:center;padding:20px;transition:background .2s,transform .2s,border-color .2s}.sprint-card:hover{transform:translateY(-2px);border-color:#7e89f8}.sprint-card>div{flex:1}.sprint-card h3{font-size:15px;margin:0 0 6px}.sprint-card p{margin:0}.sprint-step{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border-radius:12px;background:#7380f022;color:#7889ff}.sprint-step.done{background:#39b98825;color:#31ad80}.block-final{display:flex;gap:24px;align-items:center;justify-content:space-between;margin:24px 0}.block-final>div{flex:1}.run-navigation{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.run-dot{display:grid;place-items:center;width:33px;height:33px;border-radius:11px;background:#7889ff15;border:1px solid #7889ff35;font-size:12px;transition:background .2s}.run-dot:hover,.run-dot.current{background:#5368ec;color:white}.right-rail .block-art,aside .block-art{min-width:0;width:100%;height:145px;margin-bottom:20px}.right-rail .block-art span,aside .block-art span{font-size:21px}
@media(max-width:1000px){.sprint-grid{grid-template-columns:1fr}.learning-block .block-art{width:210px;min-width:180px}.block-art span{font-size:22px}}
@media(max-width:640px){.learning-block,.block-intro,.block-final{flex-direction:column;align-items:stretch}.block-art,.learning-block .block-art{width:100%;height:140px}.sprint-card{padding:16px;gap:10px}.sprint-card>.badge{display:none}}

/* Personal route: alternating level nodes with a compact responsive footprint. */
.level-map{display:flex;flex-direction:column;align-items:center;gap:20px;padding:36px 0 50px;overflow:hidden}
.level-node{display:flex;align-items:center;flex-direction:column;gap:5px;position:relative;transform:translateX(var(--offset));text-align:center;max-width:230px;text-decoration:none;color:inherit}
.level-node::after{content:'';width:2px;height:22px;background:var(--border,#aab3bf);position:absolute;bottom:-23px}
.level-node:last-child::after{display:none}.level-circle{display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid var(--border,#aab3bf);border-radius:50%;width:76px;height:76px;font-size:25px;background:var(--surface,#fff)}
.level-circle small{font-size:12px}.level-node.passed .level-circle{background:#1e9b68;color:#fff;border-color:#1e9b68}.level-node.current .level-circle{border-color:#1e9b68;animation:level-pulse 2.5s ease-in-out infinite}
@keyframes level-pulse{50%{box-shadow:0 0 0 9px #1e9b6825}}
@media(prefers-reduced-motion:reduce){.level-node.current .level-circle{animation:none}}
@media(max-width:500px){.level-node{transform:translateX(calc(var(--offset)*.55))}}

/* RC8 shared lesson surfaces and debt emphasis, both themes. */
.debts-panel.has-debts{border:2px solid #d94552;background:color-mix(in srgb,var(--card,#fff) 92%,#e44959 8%);box-shadow:0 0 0 4px #e4495912}
.debts-panel.has-debts .section-title{color:#bd2839}
[data-theme=dark] .debts-panel.has-debts{background:#2c1c29;border-color:#f07182}
[data-theme=dark] .debts-panel.has-debts .section-title{color:#ffa5b0}
.load-note.red{background:#fce8eb;color:#982333;border:1px solid #eab2bb}
.load-note.blue{background:#e8efff;color:#244d9c;border:1px solid #b7c9f4}
.load-note.green{background:#e5f5ee;color:#1e6c50;border:1px solid #b6dccc}
[data-theme=dark] .load-note.red{background:#3a2230;color:#ffadb9}
[data-theme=dark] .load-note.blue{background:#202e4a;color:#b1caff}
[data-theme=dark] .load-note.green{background:#1b3530;color:#a7e2cd}
.learning-block+.learning-block{margin-top:28px;padding-top:24px;border-top:1px solid var(--border)}
.run-navigation button{cursor:pointer;font:inherit}.run-navigation .done{background:#d5f3e6;color:#165b40}
[data-theme=dark] .run-navigation .done{background:#20443a;color:#adf2d7}
.chat-prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75}.chat-prose code{font-size:.92em;background:#8882;padding:2px 5px;border-radius:4px}
.chat-message [data-turn-status]{display:block;color:var(--muted);margin-top:8px}.chat-new{margin:12px 0}.chat-new[hidden]{display:none}
.adaptive-help p{margin:10px 0}.step-content .run-dot{min-width:38px;min-height:38px}.step-content form .btn{margin:8px 8px 0 0}
@media(max-width:640px){.step-parts{gap:8px}.part-button{padding:14px 10px;font-size:14px}.step-content{padding:20px}.learning-block h3{font-size:20px}.visible-hearts{max-width:100%}}

.rich-prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8;font-size:17px}.rich-prose>strong{font-weight:700}.rich-prose code{background:#8882;padding:2px 5px;border-radius:4px}.rich-prose mjx-container[display=true]{overflow:visible;max-width:none;padding:0}@media(max-width:640px){.rich-prose{font-size:16px}}

.study-resources{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}.study-resources .btn{min-height:46px}.theory-figure{display:block;margin:18px 0}.theory-figure img{max-width:100%;height:auto;border-radius:16px;background:white;border:1px solid var(--border)}@media(max-width:600px){.study-resources{display:grid;grid-template-columns:1fr}.study-resources .btn{width:100%;justify-content:center}}

/* Isolated formula fallback and readable streaming tutor content. */
.otp-formula{display:inline-block;max-width:100%;min-width:0;vertical-align:middle;overflow:visible}
.otp-formula.otp-display{display:block;margin:16px 0;text-align:center}
.otp-formula mjx-container{display:inline-block;max-width:none;overflow:visible;margin:0!important;padding:0}
.formula-fallback{padding:8px 10px;border:1px solid var(--border,#8886);border-radius:10px;text-align:left!important;white-space:normal}
.formula-fallback .formula-source{white-space:pre-wrap;overflow-wrap:anywhere}
.formula-hint{display:block;font-size:12px;opacity:.8;margin-top:6px}
.formula-retry{display:block;font:inherit;font-size:12px;background:transparent;color:inherit;border:1px solid currentColor;border-radius:6px;padding:5px 8px;margin-top:6px;cursor:pointer}
.tutor-history{overflow-anchor:none;scroll-behavior:auto}
.tutor-history .rich-prose{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}
.tutor-history .rich-prose a{text-decoration:underline;text-underline-offset:3px}
.prose-code{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;border:1px solid var(--border,#8886);border-radius:10px}
.tutor-chat,.chat-message,.chat-message [data-answer]{min-width:0}
@media(max-width:600px){.tutor-history .chat-message{max-width:100%}.formula-retry{min-height:36px}}
/* Streaming text is readable while individual formulas are being converted. */
.tutor-history .math-content.math-pending{visibility:visible}

/* tex2svgPromise returns both SVG and assistive MathML. Keep the latter
   available to screen readers without painting a second visible formula. */
mjx-container[jax="SVG"]{position:relative}
mjx-assistive-mml{
 position:absolute!important;
 width:1px!important;height:1px!important;
 padding:0!important;margin:0!important;border:0!important;
 overflow:hidden!important;clip:rect(1px,1px,1px,1px)!important;
 clip-path:inset(50%)!important;white-space:nowrap!important;
}

/* One scroll boundary, enabled only after measuring actual formula overflow. */
.otp-formula.formula-scroll{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;text-align:left;direction:ltr}
.otp-formula mjx-container>svg{overflow:visible;min-width:1px;min-height:1px}
