:root{--ink:#122e36;--ink2:#24424b;--muted:#74858a;--line:#e3e8e4;--paper:#f7f8f4;--white:#fff;--teal:#1d8c7d;--teal-soft:#e7f5ef;--gold:#f5c77b;--red:#ae4b49;--red-bg:#fff0ee;--shadow:0 12px 40px rgba(34,63,66,.06)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}input:focus,button:focus-visible,textarea:focus,select:focus{outline:3px solid #83d6c4;outline-offset:2px}button:not(:disabled){transition:background .16s,transform .16s,border .16s}button:not(:disabled):active{transform:scale(.985)}.app-shell{display:flex;min-height:100vh}.sidebar{width:252px;flex-shrink:0;background:var(--ink);color:#eef8f4;padding:30px 18px 18px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:4px 10px 23px}.brand-mark{height:43px;width:43px;border-radius:13px;background:#ecf4e8;color:var(--ink);display:grid;place-items:center;font-weight:900;letter-spacing:-2px;font-size:24px}.brand-mark span,.mobile-logo span{color:#dd9c3e}.brand strong{font-weight:900;letter-spacing:.13em;font-size:13px;display:block}.brand small{font-size:9px;letter-spacing:.125em;color:#96aeb3;display:block;margin-top:4px}.sidebar-divider{height:1px;background:#36535a;margin:0 10px 26px}.side-label{font-size:10px;color:#8ea7a9;letter-spacing:.18em;font-weight:750;padding-left:14px;margin-bottom:14px}.side-link{border:0;background:transparent;color:#b6cccd;text-align:left;display:flex;align-items:center;gap:14px;padding:13px 15px;border-radius:11px;font-weight:640;font-size:13px;width:100%;margin-bottom:5px}.side-link:hover,.side-link.active{color:white;background:#234650}.side-link.secondary{margin-top:10px}.side-icon{width:23px;text-align:center;font-size:21px;line-height:1}.sidebar-spacer{flex:1}.sidebar-tip{margin:12px 6px;padding:19px;border:1px solid #3d5d64;border-radius:15px;background:#1d3a43;position:relative;overflow:hidden}.sidebar-tip p{font-size:14px;line-height:1.65;color:#e4f0ed;margin:13px 0 5px}.small-pill{font-size:9px;font-weight:900;color:#172f34;background:var(--gold);padding:5px 8px;border-radius:5px;letter-spacing:.05em}.star-group{color:var(--gold);letter-spacing:15px;opacity:.7}.sidebar-foot{font-size:10px;color:#738f94;margin:16px 9px 0}.main-wrap{min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:82px;background:#fff;border-bottom:1px solid var(--line);padding:0 clamp(18px,4vw,56px);display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar-label{font-size:12px;font-weight:650;color:#71858b;display:flex;align-items:center;gap:12px}.mobile-logo{display:none}.topbar-actions{display:flex;align-items:center;gap:12px}.status-chip{font-size:11px;color:#5d7875;border:1px solid #dfede7;background:#f4faf7;padding:8px 12px;border-radius:999px;display:flex;gap:7px;align-items:center;white-space:nowrap}.status-chip i{width:7px;height:7px;border-radius:100%;background:#55b897;display:inline-block}.status-chip.warn{background:#fff8e9;color:#917540;border-color:#f7e8b7}.status-chip.warn i{background:#dfa541}.small-btn{border:1px solid #d3e4df;background:white;color:var(--ink);font-size:12px;font-weight:800;border-radius:10px;padding:10px 14px;white-space:nowrap}.small-btn:hover,.btn.ghost:hover{background:#ebf6f1}main{width:100%;max-width:1180px;margin:0 auto;flex:1;padding:38px clamp(18px,4vw,56px) 80px}.footer{font-size:11px;color:#9ba8a5;padding:18px;text-align:center;border-top:1px solid var(--line)}.eyebrow{font-size:10px;font-weight:900;letter-spacing:.19em;color:var(--teal)}h1{font-size:clamp(28px,3.2vw,42px);line-height:1.2;letter-spacing:-.045em;margin:11px 0 12px}h2{font-size:23px;letter-spacing:-.025em;margin:8px 0}h3{font-size:17px;margin:4px 0 10px;letter-spacing:-.02em}p{line-height:1.6}.muted{color:var(--muted)}.hero{display:grid;grid-template-columns:1.35fr .9fr;gap:18px;align-items:stretch;margin-bottom:26px}.hero-primary{border-radius:20px;background:var(--ink);padding:34px 34px 29px;color:white;position:relative;overflow:hidden;min-height:260px}.hero-primary:after{content:'✳';position:absolute;right:-25px;top:-72px;font-size:310px;color:#30646b;opacity:.38;pointer-events:none}.hero-primary>.hero-copy{position:relative;z-index:1;max-width:420px}.hero-primary .eyebrow{color:#a7dfc7}.hero-primary h1{font-size:clamp(28px,3vw,40px);margin:16px 0}.hero-primary p{color:#b9d4cf;max-width:330px;font-size:14px;margin:0 0 23px}.hero-right{background:#e5f0e8;border:1px solid #d7e8df;border-radius:20px;padding:28px;display:flex;flex-direction:column;justify-content:space-between;min-height:240px}.hero-right .stat-large{font-size:66px;line-height:1;font-weight:850;letter-spacing:-.075em}.hero-right .overline{font-size:10px;letter-spacing:.15em;color:#47766e;font-weight:850}.hero-right p{margin:8px 0;font-size:13px;color:#5c7d77}.mini-progress{height:8px;width:100%;background:#c9ded2;border-radius:99px;overflow:hidden;margin-top:18px}.mini-progress>div{height:100%;border-radius:99px;background:#229780;transition:width .3s}.hero-badges{display:flex;gap:7px;flex-wrap:wrap}.light-tag{padding:7px 10px;border:1px solid #638084;border-radius:99px;font-size:11px;color:#d3eae4}.btn{border:0;border-radius:11px;padding:12px 16px;font-weight:800;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:9px}.btn.primary{background:var(--teal);color:white}.btn.primary:hover{background:#156e64}.btn.gold{background:var(--gold);color:#2b3735}.btn.gold:hover{background:#e4b467}.btn.ghost{background:white;border:1px solid #d9e5df;color:#244148}.btn.dark{background:var(--ink);color:white}.btn.outline{border:1px solid #bad7cb;background:transparent;color:#276c64}.section-heading{display:flex;justify-content:space-between;gap:14px;align-items:end;margin:32px 0 17px}.section-heading h2{margin:0}.section-heading p{font-size:13px;margin:7px 0 0;color:var(--muted)}.search{border:1px solid var(--line);border-radius:10px;min-width:220px;padding:11px 14px;background:white;color:var(--ink);font-size:13px}.class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.class-card{border:1px solid var(--line);background:white;border-radius:16px;padding:21px;min-height:216px;box-shadow:var(--shadow);display:flex;flex-direction:column}.card-head{display:flex;justify-content:space-between;align-items:center}.level{font-size:10px;font-weight:850;color:#167a6c;background:#e9f6ef;border-radius:7px;padding:7px 9px;letter-spacing:.08em}.card-num{font-size:32px;font-weight:800;line-height:1;color:#d4dfd8}.class-card h3{margin:21px 0 6px;font-size:19px}.class-card p{font-size:12px;color:#859591;line-height:1.5;margin:0 0 14px}.class-card .card-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:12px}.text-action{color:var(--teal);font-size:12px;font-weight:800;background:none;border:none;padding:6px 0}.text-action:hover{text-decoration:underline}.empty-card{border:1px dashed #b7cec6;background:white;text-align:center;border-radius:18px;padding:32px 24px;margin-top:2px}.empty-icon{width:64px;height:64px;margin:0 auto 12px;border-radius:17px;display:grid;place-items:center;background:#e9f6ee;font-size:30px}.empty-card h3{margin:0 0 6px}.empty-card p{color:#718782;font-size:13px;margin:0 auto 18px;max-width:430px}.notice{padding:14px 16px;background:#fff7e7;color:#795e30;border:1px solid #f3e0b1;border-radius:12px;font-size:13px;line-height:1.6;margin:0 0 19px}.notice.error{background:var(--red-bg);color:#8d3b3b;border-color:#f3cecb}.notice.good{background:#ebf8f1;border-color:#c4e7d3;color:#236b58}.card-white{background:#fff;border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow);padding:24px}.upload-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:20px}.dropzone{border:2px dashed #c9dcd5;border-radius:15px;background:#f6faf7;padding:26px 20px;text-align:center;cursor:pointer;display:block}.dropzone:hover{background:#eef7f1}.dropzone input{display:none}.drop-icon{font-size:32px;display:block;margin-bottom:7px}.dropzone strong{display:block;font-size:14px}.dropzone small{display:block;font-size:12px;color:var(--muted);margin-top:5px}.field{border:1px solid #dbe6df;padding:12px 13px;border-radius:10px;width:100%;background:white;color:var(--ink);font-size:13px}.field-label,label.field-label{font-size:12px;color:#4d6666;font-weight:800;display:block;margin:15px 0 7px}.field-hint{font-size:11px;color:#869895;margin:7px 0 0}.upload-help{padding:21px;background:#edf6ee;border-radius:15px}.upload-help strong{font-size:14px}.upload-help p,.upload-help li{font-size:12px;color:#5a776a;line-height:1.7}.upload-help ol{padding-left:18px}.linkback{color:var(--teal);font-size:12px;border:0;background:transparent;font-weight:850;padding:0;margin:0 0 18px}.lesson-header{display:flex;align-items:start;justify-content:space-between;gap:14px;margin-bottom:22px}.lesson-header h1{margin-bottom:4px}.lesson-header .muted{font-size:13px;margin:0}.lesson-tabs{display:flex;gap:7px;overflow:auto;margin-bottom:24px;padding-bottom:7px;border-bottom:1px solid var(--line)}.tab{background:transparent;border:0;border-radius:9px 9px 0 0;color:#768c89;padding:12px 15px;white-space:nowrap;font-weight:800;font-size:12px;border-bottom:3px solid transparent}.tab:hover{background:white;color:var(--ink)}.tab.active{color:var(--teal);border-bottom-color:var(--teal);background:white}.lesson-content{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:18px}.lesson-main{min-width:0}.lesson-aside{background:#f0f3ee;border:1px solid #e4ebe2;padding:22px;border-radius:17px;align-self:start;position:sticky;top:18px}.lesson-aside strong{font-size:13px}.lesson-aside .aside-figure{font-size:38px;font-weight:850;letter-spacing:-.05em;display:block;margin:14px 0 4px}.aside-meta{font-size:11px;color:#86958d}.tiny-line{height:1px;background:#dfe8df;margin:19px 0}.aside-list{display:flex;flex-direction:column;gap:12px}.aside-list div{font-size:12px;display:flex;justify-content:space-between;gap:5px;color:#657972}.aside-list b{color:var(--ink)}.summary-text{white-space:pre-line;font-size:14px;line-height:1.95;color:#3e5960}.pill-list{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 20px}.pill{padding:7px 10px;background:#e9f5ee;border:1px solid #d3e9dc;color:#347668;font-weight:750;font-size:11px;border-radius:99px}.entry-list{display:flex;flex-direction:column;gap:9px}.entry{display:flex;justify-content:space-between;align-items:start;gap:20px;padding:15px 18px;border:1px solid #e6ece8;background:white;border-radius:12px}.entry strong{display:block;font-size:14px;margin-bottom:5px;overflow-wrap:anywhere}.entry p{font-size:12px;color:#7a8e90;margin:0;line-height:1.5}.time-badge{font-variant-numeric:tabular-nums;flex-shrink:0;color:#577d74;border-radius:7px;background:#edf6f0;padding:7px;font-size:10px;font-weight:800}.entry-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.entry-heading p{font-size:12px;color:#81918d;margin:3px 0 0}.subtle-count{color:#76928b;font-size:11px;font-weight:800}.exercise-panel{padding:26px;background:#fff;border:1px solid var(--line);border-radius:17px}.exercise-top{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#6d8582}.exercise-track{height:7px;background:#e7eeea;overflow:hidden;border-radius:99px;margin:14px 0 28px}.exercise-track>div{height:100%;background:var(--teal);border-radius:99px;transition:width .2s}.exercise-question{font-size:21px;letter-spacing:-.022em;line-height:1.4;font-weight:800;margin:6px 0 19px}.option-group{display:grid;gap:9px;margin-bottom:20px}.option{background:white;border:1px solid #dce7df;padding:15px 16px;text-align:left;color:#2d4d54;border-radius:12px;font-size:14px;font-weight:650}.option:hover{background:#f6fbf7}.option.selected{border-color:var(--teal);background:#e8f5ed;box-shadow:inset 0 0 0 1px var(--teal)}.exercise-actions{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;margin-top:18px}.feedback{padding:15px 18px;border-radius:11px;background:#f0f8ee;border:1px solid #c8e8d2;color:#24674f;font-size:13px;line-height:1.7;margin:13px 0}.feedback.bad{background:#fff4ed;border-color:#f3d6ba;color:#93593c}.exercise-help{font-size:12px;color:#78908c;margin:5px 0 12px}.completion{text-align:center;padding:38px 20px}.completion .complete-icon{font-size:44px}.completion h2{font-size:27px}.completion p{color:#698381}.tutor-chat{height:min(50vh,420px);overflow:auto;border:1px solid #e6eee8;border-radius:14px;background:#f8faf7;padding:17px;display:flex;flex-direction:column;gap:12px}.chat-bubble{max-width:88%;font-size:13px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;padding:13px 15px;border-radius:13px;background:#e7f2ea;align-self:start}.chat-bubble.user{align-self:end;color:white;background:#1d8c7d}.chat-bubble .chat-correction{font-size:12px;margin-top:8px;border-top:1px solid #c7decf;padding-top:8px}.chat-form{display:flex;gap:9px;margin-top:13px}.chat-form .field{flex:1}.study-stats{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:18px}.stat-chip{padding:10px 14px;border:1px solid #dae9e0;background:#f8fbf8;border-radius:10px;color:#4a7f6d;font-size:12px}.stat-chip b{font-size:15px;color:var(--ink)}.loading-area{min-height:190px;display:grid;place-content:center;text-align:center;color:#7c928c;font-size:13px}.spinner{height:27px;width:27px;border-radius:50%;border:3px solid #d5e8dc;border-top-color:#2f9380;margin:0 auto 16px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog.dialog{border:1px solid #d9e7de;box-shadow:0 28px 100px #102b3280;width:min(94vw,510px);border-radius:18px;padding:0;color:var(--ink)}dialog::backdrop{background:rgba(9,34,39,.6);backdrop-filter:blur(3px)}.dialog-inner{padding:27px}.dialog-head{display:flex;justify-content:space-between;gap:20px;align-items:start}.dialog-head h2{font-size:24px}.dialog-inner p{font-size:13px;color:#6a807c}.dialog-inner label{font-size:12px;font-weight:750;display:block;margin:18px 0 9px}.icon-btn{background:#f0f5f0;border:0;border-radius:9px;width:34px;height:34px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.config-status{font-size:12px;color:#7e8781}.toast{position:fixed;z-index:10;right:20px;bottom:20px;max-width:min(90vw,440px);padding:14px 18px;background:var(--ink);color:white;box-shadow:0 12px 40px #193b4540;border-radius:13px;font-size:13px}.notice-block{border-radius:14px;background:#f0f7ef;padding:20px;line-height:1.6;font-size:13px}.micro{font-size:11px;color:#879792}.divider{border:0;border-top:1px solid var(--line);margin:22px 0}.section-title-inline{display:flex;align-items:center;justify-content:space-between;gap:12px}.flex-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.text-area{resize:vertical;min-height:110px}.muted-link{color:#68847c;text-decoration:underline}.callout-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:17px 0}.callout{padding:18px;background:#f6faf6;border:1px solid #e1ece5;border-radius:13px}.callout b{display:block;font-size:24px}.callout small{color:#748e88;font-size:11px}.separator{margin:22px 0;border:0;border-top:1px solid #ecf1eb}.flashcard{border-radius:15px;background:#e9f4ec;border:1px solid #c9e4d6;padding:38px 22px;text-align:center;min-height:180px;display:grid;align-items:center;justify-items:center}.flashcard strong{font-size:23px;overflow-wrap:anywhere}.flashcard small{font-size:12px;color:#6d9185}.flashcard .translation{font-size:16px;color:#366b5e}.hidden{display:none!important}
@media(max-width:1060px){.class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:1.1fr .9fr}.lesson-content{grid-template-columns:minmax(0,1fr) 200px}}
@media(max-width:800px){.sidebar{width:75px;padding:16px 9px}.brand{padding:4px 7px 22px}.brand>div:last-child,.side-label,.side-link:not(.active) .side-icon~*,.sidebar-tip,.sidebar-foot{display:none}.brand-mark{width:42px;height:42px}.side-link{font-size:0;justify-content:center;padding:13px 7px}.side-link .side-icon{font-size:23px}.sidebar-divider{margin:0 6px 25px}.topbar{padding:0 24px}.sidebar-spacer{flex:1}.side-link.secondary{display:flex}}
@media(max-width:690px){.app-shell{display:block}.sidebar{position:static;width:100%;height:60px;flex-direction:row;align-items:center;padding:6px 12px;gap:8px}.brand{margin-right:auto;padding:0}.brand>div:last-child{display:block}.brand small{display:none}.brand-mark{width:34px;height:34px;font-size:19px;border-radius:8px}.sidebar-divider,.sidebar-spacer,.sidebar-tip,.sidebar-foot{display:none}.side-link{width:auto;margin:0;padding:8px;border-radius:9px}.side-link .side-icon{font-size:20px}.sidebar .side-link:nth-of-type(1){display:none}.topbar{height:62px;padding:0 18px}.topbar-label{font-size:11px}.topbar-actions{gap:6px}.status-chip{font-size:0;padding:8px}.status-chip i{width:8px;height:8px}.small-btn{font-size:11px;padding:9px 10px}main{padding:25px 17px 60px}.hero{grid-template-columns:1fr}.hero-primary{min-height:230px;padding:28px}.hero-right{min-height:130px;display:block;padding:22px}.hero-right .stat-large{font-size:46px}.class-grid,.upload-layout,.lesson-content{grid-template-columns:1fr}.section-heading{align-items:stretch;flex-direction:column}.search{width:100%}.lesson-aside{position:static;order:-1}.lesson-header{flex-direction:column}.lesson-header h1{font-size:30px}.callout-grid{grid-template-columns:1fr}.card-white{padding:18px}.exercise-panel{padding:18px}.exercise-question{font-size:19px}}
