@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#342749;--muted:#80798a;--bg:#faf9f6;--line:#e9e5ec;--purple:#7560b5;--lav:#e9e1f5;--orange:#f8c6a7;--green:#e0ebda;--white:#fff;--radius:24px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9576ce;outline-offset:4px}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Manrope,-apple-system,sans-serif;line-height:1.23;letter-spacing:-.045em}h1{font-size:clamp(28px,3vw,42px);font-weight:800}h2{font-size:25px}h3{font-size:17px}.muted{color:var(--muted)}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;background:var(--ink);color:#eee8f7;padding:37px 26px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:9px;font:700 27px Manrope,sans-serif;letter-spacing:-1.5px;text-decoration:none}.brand-icon{display:grid;place-items:center;width:34px;height:36px;background:#d8cbf0;border-radius:11px;color:var(--ink);font:italic 38px/.8 Georgia;letter-spacing:0}.brand-dot{color:#f7c5a5;font-size:25px;margin-left:2px}.brand-caption{font-size:11px;color:#b9aacb;margin:17px 0 37px}.sidebar nav{display:grid;gap:9px}.sidebar nav button{display:flex;align-items:center;gap:14px;width:100%;border:0;background:none;color:#c9bcd8;text-align:left;padding:13px 17px;border-radius:12px;font-weight:600}.sidebar nav button span{font-size:22px;font-weight:400;width:22px}.sidebar nav button.selected{background:#554369;color:white}.sidebar nav button:hover{background:#4b3a60}.sidebar-bottom{margin-top:auto;border-top:1px solid #59486a;padding-top:22px}.mini-label,.eyebrow,.tag{font-size:10px;letter-spacing:.14em;font-weight:700}.sidebar-bottom .mini-label{color:#b9aacb}.sidebar-bottom p{font-size:14px;margin:12px 0 25px}.demo-pill{display:inline-block;background:#483657;color:#d4c4e4;border-radius:8px;padding:5px 10px;font-size:11px}.page{margin-left:238px}.topbar{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4.3%;font-size:13px;color:var(--muted)}.header-right{display:flex;align-items:center;gap:23px}.balance{color:var(--ink);background:#eee8f6;border:1px solid #e3d8f0;padding:7px 14px;border-radius:99px;font-size:12px}.balance>span{font-size:19px;color:#776093;margin-right:4px}.avatar{background:#f5d5bf;border:0;border-radius:50%;width:35px;height:35px;font-size:13px;color:var(--ink);font-weight:700}main{max-width:1360px;margin:auto;padding:39px 4.3% 35px}.greeting{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.eyebrow{color:var(--purple);margin-bottom:11px}.greeting .muted{margin-top:11px;font-size:14px}.date-label{font-size:9px;letter-spacing:.11em;color:var(--muted);white-space:nowrap}.home-grid{display:grid;grid-template-columns:1.58fr 1fr;gap:24px}.focus-card{background:var(--lav);border:1px solid #e3d8f0;border-radius:var(--radius);padding:29px 32px}.row{display:flex;justify-content:space-between;align-items:center;gap:12px}.pill{background:#f6f2fc;padding:5px 10px;border-radius:7px;font-size:10px;white-space:nowrap}.focus-card h2{font-size:clamp(28px,3vw,40px);margin:28px 0 16px;font-weight:800}.focus-card>p{font-size:13px;color:#726083}.session-meta{display:flex;gap:18px;font-size:12px;margin:23px 0 18px}.session-meta span+span:before{content:'·';margin-right:18px}.primary,.secondary{border:0;border-radius:10px;padding:13px 20px;font-weight:600;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:45px}.primary{background:var(--ink);color:#fff}.primary:hover{background:#554169}.secondary{background:#f0ebf5;color:var(--ink)}.primary>span{font-size:19px}.focus-card .primary{min-width:192px}.focus-card .fine{font-size:10px;margin-top:14px}.reward-spot{background:#fff2e8;border:1px solid #f4e3d5;border-radius:var(--radius);padding:29px}.reward-spot .tag{font-size:9px;letter-spacing:.09em}.reward-emoji{font-size:54px;margin:19px 0 11px}.reward-spot h2{font-size:24px}.reward-spot>p{font-size:13px;color:#9a7d68;margin:8px 0 27px}.reward-meter{height:7px;background:#f0dccb;border-radius:9px;overflow:hidden;margin-bottom:12px}.reward-meter span{height:100%;background:#aa7955;display:block}.reward-spot>.row:not(:first-child){font-size:11px;color:#997b64}.reward-spot .text-button{margin-top:24px;width:100%;justify-content:space-between}.text-button{display:inline-flex;gap:10px;align-items:center;border:0;background:none;padding:0;min-height:35px;color:var(--ink);font-size:12px;font-weight:600}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:32px 0 18px}.section-heading h2{font-size:21px}.section-heading>span{font-size:12px;color:var(--muted)}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:19px}.mode-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:23px;text-align:left;color:var(--ink)}.mode-card:hover{border-color:#b9a5d6;transform:translateY(-2px)}.mode-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;font-size:23px;margin-bottom:18px}.lilac{background:var(--lav)}.peach{background:#fae8db}.green{background:var(--green)}.mode-card p{font-size:12px;color:var(--muted);margin:9px 0 22px}.mode-link{font-size:11px;font-weight:600}footer{text-align:center;font-size:10px;color:#99909f;margin-top:37px}.skip{position:fixed;top:-80px;left:20px;z-index:50;background:white;padding:12px}.skip:focus{top:10px}[hidden]{display:none!important}#toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:13px 22px;border-radius:12px;z-index:60;box-shadow:0 6px 25px #34274920;opacity:0;pointer-events:none;transition:opacity .2s;font-size:13px;max-width:90vw}#toast.show{opacity:1}dialog{border:1px solid var(--line);border-radius:24px;padding:30px;color:var(--ink);width:min(510px,calc(100% - 32px));max-height:85dvh}dialog::backdrop{background:#21152d66;backdrop-filter:blur(3px)}
@media(min-width:1500px){main{padding-top:50px}.home-grid{grid-template-columns:1.7fr 1fr}.focus-card{padding:35px}.focus-card h2{font-size:45px}}@media(max-width:1100px){.sidebar{width:200px;padding:30px 18px}.page{margin-left:200px}.date-label{display:none}.home-grid{gap:17px;grid-template-columns:1.3fr 1fr}.focus-card,.reward-spot{padding:24px}.focus-card h2{font-size:33px}.mode-card{padding:19px}.mode-card h3{font-size:15px}}@media(max-width:760px){.sidebar{inset:auto 0 0;width:100%;height:calc(70px + env(safe-area-inset-bottom));padding:6px 12px env(safe-area-inset-bottom);background:var(--bg);border-top:1px solid var(--line)}.sidebar>.brand,.brand-caption,.sidebar-bottom{display:none}.sidebar nav{display:grid;grid-template-columns:repeat(5,1fr);gap:3px}.sidebar nav button{flex-direction:column;gap:0;padding:3px;color:var(--muted);font-size:10px;border-radius:10px;min-height:53px}.sidebar nav button span{font-size:24px;line-height:1.3}.sidebar nav button.selected{background:#eee6f5;color:var(--ink)}.sidebar nav button:hover{background:#eee6f5}.page{margin-left:0}.topbar{height:70px;padding:0 21px}.topbar>#page-label{font-size:16px;color:var(--ink);font-weight:700}.header-right{gap:12px}.balance{font-size:10px;padding:6px 10px}.avatar{width:30px;height:30px}main{padding:28px 21px 110px}.greeting{margin-bottom:24px}h1{font-size:30px;max-width:340px}.greeting .muted{font-size:13px;max-width:290px}.home-grid{grid-template-columns:1fr}.focus-card{padding:25px}.focus-card h2{font-size:37px;margin-top:24px}.focus-card .primary{width:100%;justify-content:space-between}.reward-spot{position:relative;padding:23px}.reward-emoji{position:absolute;right:22px;top:39px;font-size:40px}.reward-spot h2{margin-top:21px;font-size:23px;padding-right:46px}.reward-spot>p{margin-bottom:19px}.reward-spot .text-button{margin-top:13px}.section-heading{margin-top:27px}.section-heading>span{display:none}.mode-grid{grid-template-columns:1fr;gap:12px}.mode-card{position:relative;padding:20px 20px 20px 82px}.mode-icon{position:absolute;left:20px;top:23px}.mode-card h3{font-size:17px}.mode-card p{margin:7px 0}.mode-link{font-size:11px}.desktop{display:none}#toast{bottom:90px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.wide{width:100%}.course-select{max-width:180px;font-size:11px;color:var(--ink);border:1px solid #d8cce8;background:#f6f2fc;border-radius:8px;padding:7px}.inline{background:none;border:0;color:var(--purple);text-decoration:underline;text-underline-offset:3px;padding:4px;font-size:inherit}.today-strip{display:flex;gap:30px;align-items:center;border-bottom:1px solid var(--line);padding:25px 4px 24px}.today-strip>div{display:flex;flex-direction:column}.today-strip b{font:700 24px Manrope,sans-serif;letter-spacing:-1px}.today-strip span{font-size:11px;color:var(--muted)}.today-strip .tiny-note{margin-left:auto;font-size:11px;color:var(--muted);text-align:right}.notice{display:flex;align-items:flex-start;gap:14px;background:#f0ebf6;border:1px solid #e7ddee;border-radius:16px;padding:19px 22px;font-size:13px;margin:22px 0}.notice p{color:#7f718d;margin-top:4px;font-size:12px}.class-grid,.reward-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.class-card,.reward-card,.panel,.stat-card,.topic-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:25px}.class-card h2{font-size:22px;margin:10px 0}.class-card p{font-size:12px}.class-card .mode-icon{margin:0;position:static}.class-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.exam-label{margin-top:12px;font-size:12px}.wallet{display:flex;justify-content:space-between;align-items:center;padding:23px 29px;background:var(--lav);border-radius:20px;margin:0 0 25px}.wallet .eyebrow{display:block;margin-bottom:0}.wallet strong{font-size:45px;line-height:1.3;letter-spacing:-2px}.wallet strong small{font-size:17px;letter-spacing:0}.wallet p{font-size:13px}.wallet p span{font-size:11px;color:var(--muted)}.reward-symbol{font-size:40px}.reward-card.target{border-color:#bdaaCE;box-shadow:0 0 0 1px #bdaaCE}.reward-card h2{font-size:21px;margin:19px 0 10px}.reward-card>p{font-size:12px;color:var(--muted);min-height:42px}.reward-price{margin:25px 0 18px}.reward-price b{font-size:19px}.reward-price span{font-size:11px;color:var(--muted)}.reward-card .text-button{justify-content:center;margin-top:9px;font-size:11px}.footnote{font-size:11px;color:var(--muted);margin:21px 0}.list{border:1px solid var(--line);border-radius:18px;background:white;overflow:hidden}.list-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 23px;font-size:13px}.list-row+.list-row{border-top:1px solid var(--line)}.list-row small{display:block;color:var(--muted);font-size:11px}.list-row>b{white-space:nowrap}.empty{background:#f1edf4;color:var(--muted);padding:40px;text-align:center;border-radius:18px;font-size:13px}.empty.compact{padding:24px}.close{position:absolute;right:17px;top:14px;background:none;border:0;font-size:24px;color:var(--muted);width:35px;height:35px}dialog h2{padding-right:20px;font-size:27px}form{margin-top:20px}form label{display:block;font-size:12px;font-weight:600;margin:15px 0 6px}input,select,textarea{width:100%;display:block;background:#fbfafc;color:var(--ink);border:1px solid #ded6e6;border-radius:10px;padding:11px 12px;margin-top:7px;font-size:14px}textarea{resize:vertical}input[type=file]{padding:10px;font-size:11px}input::file-selector-button{border:0;border-radius:6px;background:var(--lav);color:var(--ink);padding:7px;font:inherit}.help{font-size:11px;color:var(--muted);margin:12px 0;line-height:1.7}.form-columns{display:grid;grid-template-columns:1fr 1fr;gap:16px}.file-row{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:6px 0;font-size:11px}.file-row span{overflow-wrap:anywhere}.file-row button{flex-shrink:0}.form-error{font-size:12px;color:#a44254;margin-top:10px}.dialog-copy{font-size:13px;color:#72667e;margin:18px 0}.dialog-copy b{color:var(--ink)}dialog .notice{padding:15px}dialog .primary{margin-top:8px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat-card{padding:21px}.stat-card>span{font-size:11px;color:var(--muted)}.stat-card strong{display:block;font:700 34px Manrope,sans-serif;margin:12px 0}.stat-card small{font-size:10px;color:var(--muted)}.stat-card strong small{font-size:14px}.progress-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;margin-top:22px}.panel .section-heading{margin:0 0 25px}.chart{height:190px;display:flex;gap:13px;justify-content:space-around}.chart-column{flex:1;display:flex;align-items:center;flex-direction:column;gap:9px;font-size:10px;color:var(--muted)}.bar-track{height:135px;width:min(100%,36px);display:flex;align-items:flex-end;background:#f5f2f8;border-radius:6px}.bar{background:#a993cf;width:100%;border-radius:6px;min-height:2px}.rule{display:flex;gap:16px;font-size:12px;margin:20px 0}.rule>b{min-width:55px;color:var(--purple);font-size:15px}.rule small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.topic-card{padding:20px}.topic-card b{font-size:12px}.topic-card strong{font-size:11px;color:var(--purple)}.topic-track{height:6px;background:#eee9f4;border-radius:9px;margin:17px 0 9px;overflow:hidden}.topic-track>span{height:100%;background:#a590c6;display:block}.topic-card small{font-size:10px;color:var(--muted)}.back{background:none;border:0;padding:0;margin-bottom:25px;color:var(--muted);font-size:12px}.quiz-panel{max-width:830px;margin:auto;padding:35px}.quiz-track{height:6px;background:#eee9f4;border-radius:6px;margin:23px 0 32px}.quiz-track span{height:100%;display:block;background:#9b80c6;border-radius:6px}.question{font-size:27px;line-height:1.4;margin-bottom:25px;letter-spacing:-.025em}.answers{display:grid;gap:12px}.answer{width:100%;display:flex;align-items:center;gap:17px;text-align:left;color:var(--ink);border:1.5px solid var(--line);background:#fff;border-radius:12px;padding:15px;font-size:14px;line-height:1.5}.answer>span{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:8px;background:#f4f0f8;color:#91829f;font-size:12px}.answer:hover:not(:disabled){background:#f8f5fc;border-color:#aa91c9}.answer:disabled{opacity:1}.answer.correct{background:#edf4e9;border-color:#9dbf91;color:#3c6540}.answer.incorrect{background:#fff0ed;border-color:#d8a392;color:#8b4e41}.feedback{padding:18px 20px;border-radius:14px;margin-top:20px;background:#f4edf9;font-size:13px}.feedback.good{background:#edf4e9}.feedback b{display:block;margin-bottom:8px}.feedback p{line-height:1.7}.feedback small{display:block;font-size:10px;color:#81748d;margin-top:12px}#next-answer{display:flex;justify-content:flex-end;margin:18px 0}.guide-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.guide-grid h2{font-size:24px}.guide-grid ul{padding-left:20px;font-size:13px;line-height:1.85;margin:18px 0}.guide-grid li+li{margin-top:12px}details{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px}summary{cursor:pointer}.guide-copy{font-size:13px;margin:15px 0}.notes{margin-bottom:20px}.notes-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.flash-area{max-width:760px;margin:auto}.flashcard{width:100%;min-height:310px;background:#e9e0f5;border:1px solid #dccdea;border-radius:26px;color:var(--ink);padding:38px;text-align:center;margin:20px 0}.flashcard h2{font-size:clamp(24px,3vw,35px);margin:25px 0;line-height:1.4}.flash-hint{font-size:11px;color:#8c789f}.flash-controls{display:flex;justify-content:center;gap:15px}.flash-area>.help{text-align:center;margin-top:24px}#study-dock{position:fixed;bottom:0;left:238px;right:0;background:#fffc;border-top:1px solid var(--line);backdrop-filter:blur(15px);z-index:9;padding:16px 4%}.dock-inner{display:flex;align-items:center;justify-content:space-between;gap:18px}.timer-info{display:flex;align-items:center;gap:13px}.timer-info b{font-variant-numeric:tabular-nums;font-size:20px}.timer-info>span:last-child{font-size:11px;color:var(--muted)}.live-dot{width:8px;height:8px;background:#83a979;border-radius:50%}.live-dot.paused{background:#c5a07c}.dock-actions{display:flex;align-items:center;gap:25px}.dock-actions .secondary{min-height:35px;padding:7px 17px}.studying main{padding-bottom:140px}.studying #toast{bottom:100px}#break-banner{display:flex;align-items:center;gap:17px;border:1px solid #eaccaf;background:#fff1e5;border-radius:16px;padding:15px 20px;margin-bottom:23px}#break-banner>span{font-size:28px}#break-banner b{font-size:13px}#break-banner p{font-size:11px;color:#92775f}#break-banner button{margin-left:auto}.results{text-align:center;max-width:850px;margin:20px auto 40px}.result-mark{display:inline-grid;place-items:center;background:#e6dcef;color:#7f5ea1;width:85px;height:85px;border-radius:27px;font-size:50px;margin-bottom:30px}.results .muted{margin-top:15px}.result-stats{display:flex;justify-content:center;gap:40px;margin:35px 0 20px}.result-stats>div{display:flex;flex-direction:column;gap:5px}.result-stats b{font-size:29px}.result-stats span{font-size:11px;color:var(--muted)}.result-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:15px;margin-top:25px}
@media(max-width:1100px){.class-grid,.reward-grid{grid-template-columns:repeat(2,1fr)}.stats-grid{grid-template-columns:repeat(2,1fr)}.topic-grid{grid-template-columns:repeat(2,1fr)}#study-dock{left:200px}.progress-grid{grid-template-columns:1fr}}@media(max-width:760px){.greeting{flex-wrap:wrap}.greeting>.primary,.greeting>.secondary{margin-top:0}.course-select{width:auto;max-width:158px;font-size:11px}.today-strip{gap:26px;padding:20px 0}.today-strip .tiny-note{display:none}.today-strip span{font-size:10px}.class-grid,.reward-grid,.guide-grid,.topic-grid{grid-template-columns:1fr}.class-card,.reward-card{padding:24px}.class-card .mode-icon{position:static}.wallet{padding:21px;align-items:flex-start;gap:10px}.wallet p{max-width:160px;font-size:11px;padding-top:9px}.wallet p span{font-size:10px}.reward-card>p{min-height:0}.stats-grid{gap:12px}.stat-card{padding:17px}.stat-card strong{font-size:30px}.stat-card small{font-size:9px}.quiz-panel{padding:22px 17px;border-radius:18px}.question{font-size:23px}.answer{font-size:13px;padding:13px;gap:12px}.quiz-panel .row{font-size:12px}.guide-grid .panel{padding:24px}.flashcard{min-height:300px;padding:25px}.flashcard h2{font-size:25px}#study-dock{left:0;bottom:calc(70px + env(safe-area-inset-bottom));padding:12px 17px}.timer-info{gap:8px;flex-wrap:wrap;max-width:210px}.timer-info b{font-size:18px}.timer-info>span:last-child{font-size:10px;flex-basis:100%;order:3}.timer-info .live-dot{margin-right:2px}.dock-actions{gap:16px}.dock-actions .secondary{font-size:12px}.studying main{padding-bottom:210px}.studying #toast{bottom:170px}.result-stats{gap:22px}.result-stats b{font-size:24px}.result-stats span{font-size:10px}.result-actions{gap:12px}.result-actions .primary,.result-actions .secondary{width:100%}dialog{padding:26px 22px}dialog h2{font-size:25px}.notice{padding:17px}.chart{gap:9px}#break-banner{padding:15px;gap:11px}#break-banner b{font-size:12px}#break-banner .text-button{font-size:10px}}
.topbar>#page-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:12px}.header-right{flex-shrink:0}.panel,.class-card,.reward-card{min-width:0;overflow-wrap:anywhere}.brand:hover{opacity:.9}

button.demo-pill{border:0;cursor:pointer;font-family:inherit}
/* v2: accounts, uploads, packs, motivation */
.auth{max-width:440px;margin:6vh auto;text-align:center}.auth .brand{justify-content:center;color:var(--ink);margin-bottom:12px}.auth .brand-icon{background:var(--lav)}.auth h1{margin:18px 0 10px}.auth form{text-align:left}.auth .or{font-size:11px;color:var(--muted);margin:18px 0}.auth .footnote{margin-top:30px}
.banner{background:#fff1e5;border:1px solid #eaccaf;border-radius:14px;padding:12px 16px;font-size:12px;margin-bottom:20px}
.today-strip .ring{--p:0;width:54px;height:54px;border-radius:50%;background:conic-gradient(var(--purple) calc(var(--p)*1%),#eee6f5 0);display:grid;place-items:center;flex-shrink:0}.ring i{width:40px;height:40px;border-radius:50%;background:var(--bg);display:grid;place-items:center;font:700 12px Manrope,sans-serif;font-style:normal}.goal{display:flex;align-items:center;gap:12px}.streak{display:inline-flex;align-items:center;gap:6px;background:#fff1e5;border:1px solid #f4e3d5;color:#9a5c34;border-radius:99px;padding:5px 11px;font-size:12px;font-weight:700}.streak.cold{background:#f1edf4;border-color:var(--line);color:var(--muted)}
.countdown{font-size:12px;color:#726083;margin-top:12px}.countdown b{color:var(--ink)}
.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{font-size:10px;letter-spacing:.06em;font-weight:700;padding:4px 8px;border-radius:7px;background:#f6f2fc;color:#6a5589;text-transform:uppercase}.chip.past_exam{background:#fff1e5;color:#9a5c34}.chip.slides{background:var(--green);color:#3c6540}
.file-row select{width:auto;margin:0;padding:4px 6px;font-size:11px;display:inline-block}.file-row .row{gap:8px}.file-row .muted{font-size:10px}
.upload-zone{border:1.5px dashed #cdbfe0;border-radius:14px;padding:18px;text-align:center;font-size:12px;color:var(--muted);margin-top:8px;cursor:pointer;background:#fbfafc}.upload-zone:hover{border-color:var(--purple)}.upload-zone b{display:block;color:var(--ink);margin-bottom:4px}.upload-zone input{display:none}
.generating{max-width:640px;margin:20px auto;text-align:center}.generating .panel{padding:35px;margin-top:24px;text-align:left}.steps{list-style:none;padding:0;margin:0;display:grid;gap:12px}.steps li{display:flex;gap:12px;align-items:center;font-size:13px;color:var(--muted)}.steps li b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#eee6f5;color:var(--purple);font-size:11px;flex-shrink:0}.steps li.done{color:var(--ink)}.steps li.done b{background:#dfeeda;color:#3c6540}.steps li.active{color:var(--ink)}.steps li.active b{animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.4}}.steps li.failed b{background:#fff0ed;color:#8b4e41}
.class-card .status{font-size:11px;color:var(--muted);margin-top:6px}.class-card .status.ready{color:#3c6540}.class-card .status.failed{color:#8b4e41}
.feedback-btn{margin-top:18px;width:100%;border:1px solid #59486a;background:none;color:#c9bcd8;border-radius:10px;padding:9px;font-size:12px;font-weight:600}.feedback-btn:hover{background:#4b3a60}
.level{position:absolute;right:-6px;bottom:-6px;background:var(--ink);color:#fff;font-size:9px;font-weight:700;border-radius:99px;padding:2px 6px}.avatar{position:relative;overflow:visible}
.sample-tag{background:#f6f2fc;border-radius:7px;padding:4px 8px;font-size:10px;letter-spacing:.06em;font-weight:700;color:#6a5589}
@media(max-width:760px){.feedback-btn{display:none}.today-strip .ring{width:46px;height:46px}.ring i{width:34px;height:34px;font-size:11px}}
.test-row{border:1px solid var(--line);border-radius:14px;padding:6px 14px 14px;margin:10px 0;background:#fbfafc}.test-row .form-columns{gap:12px}.test-row label{margin-top:10px}.test-row .inline{margin-top:10px;font-size:11px}dialog h3{font-size:15px}.course-select+.inline{font-size:11px;white-space:nowrap}
.chat{display:flex;flex-direction:column;gap:10px;max-height:46vh;overflow-y:auto;padding:6px 2px;margin:14px 0}.bubble{max-width:88%;padding:11px 14px;border-radius:14px;font-size:13px;line-height:1.55;white-space:pre-wrap}.bubble.user{align-self:flex-end;background:var(--ink);color:#fff;border-bottom-right-radius:4px}.bubble.assistant{align-self:flex-start;background:#f0ebf6;border-bottom-left-radius:4px}.bubble.typing{color:var(--muted);animation:pulse 1.2s infinite}.chat-form{display:flex;gap:8px;margin-top:0}.chat-form input{margin:0}.chat-form .primary{min-height:auto;padding:0 16px}
.tutor{max-width:820px;margin:auto}.quick{margin-bottom:14px}.chip-btn{border:1px solid #d8cce8;background:#f6f2fc;color:var(--ink);border-radius:99px;padding:7px 12px;font-size:12px;font-weight:600}.chip-btn:hover{border-color:var(--purple)}.chat.tall{max-height:none;min-height:220px;height:46vh}.chat-form textarea{margin:0;resize:none}@media(max-width:760px){.sidebar nav button{font-size:9px}.chat.tall{height:38vh}.tutor{padding:18px}}
