@font-face{font-family:MathSerif;src:url('vendor/fonts/KaTeX_Main-Regular.woff2')}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f5f4ef;color:#23382f;font-family:Inter,'Segoe UI','Microsoft YaHei',sans-serif;font-size:14px;line-height:1.65}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d48459;outline-offset:3px}h1,h2,h3,p{margin:0}h1{font-size:32px;line-height:1.4;letter-spacing:-1px}h2{font-size:21px;letter-spacing:-.5px}h3{font-size:16px}button{border:0;background:none;color:inherit}small,.muted{color:#7d857c}.shell{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.sidebar{background:#fdfcf8;border-right:1px solid #e3e4dc;padding:34px 22px;position:fixed;width:230px;inset:0 auto 0 0;display:flex;flex-direction:column}.brand{display:flex;gap:11px;align-items:center;margin:0 6px 40px}.brandmark{background:#1b4439;color:#efeddf;width:42px;height:42px;border-radius:12px;display:grid;place-items:center}.brandmark svg{width:28px}.brand strong{font-size:25px;letter-spacing:4px;line-height:1.2}.brand small{display:block;font-size:10px;letter-spacing:1.5px;margin-top:3px}.nav-label{font-size:10px;letter-spacing:2px;color:#9b9e91;margin:0 12px 12px}.nav{display:grid;gap:6px}.nav button{display:flex;align-items:center;gap:13px;width:100%;border-radius:8px;padding:12px 14px;text-align:left;font-weight:500;color:#788074}.nav button.active{background:#e9eee4;color:#183f37}.nav svg{width:19px;height:19px}.nav .count{margin-left:auto;background:#dbe3d4;border-radius:5px;font-size:11px;padding:0 6px}.side-course{border:1px solid #e3e4d9;border-radius:10px;padding:16px;margin-top:32px;background:#faf9f4}.side-course .mini{color:#919982;font-size:10px;letter-spacing:1px}.side-course p{font-weight:600;font-size:13px;margin:7px 0 10px}.progress{height:5px;border-radius:5px;background:#e6e8de;overflow:hidden}.progress i{display:block;height:100%;background:#7f9c73;border-radius:5px}.side-bottom{margin-top:auto;padding-top:30px;color:#8d9387;font-size:11px}.side-bottom p{margin-top:7px}.workspace{grid-column:2;min-width:0}.topbar{height:76px;border-bottom:1px solid #e2e4dc;display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:#f9f9f3}.breadcrumb{font-size:12px;color:#8c9288}.breadcrumb strong{color:#435a4d;font-weight:500}.topright{display:flex;align-items:center;gap:16px;font-size:11px;color:#7c897b}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#829969;margin-right:6px}.avatar{width:30px;height:30px;border-radius:50%;background:#e7e5d9;display:grid;place-items:center;color:#576c50;font-family:MathSerif;font-size:19px}main{max-width:1360px;margin:auto;padding:35px 40px 60px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;color:#858f7d;text-transform:uppercase}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.page-heading h1{margin:5px 0 7px}.page-heading p{color:#858a7f;font-size:13px}.date{font-size:11px;color:#92978c;padding-bottom:4px}.hero{position:relative;border-radius:15px;overflow:hidden;display:grid;grid-template-columns:1.2fr 1fr;background:#193f36;color:#f1f2e7;min-height:274px;padding:34px 38px;isolation:isolate}.hero .eyebrow{color:#a8bba4}.hero h2{font-size:29px;line-height:1.5;letter-spacing:1px;margin:12px 0}.hero p{color:#b4c2b4;font-size:12px;max-width:370px;line-height:1.9}.hero .btn{margin-top:23px}.hero-art{width:100%;height:240px;position:absolute;right:10px;top:16px;max-width:470px;z-index:-1;opacity:.9}.hero-legend{position:absolute;right:28px;bottom:22px;font:10px MathSerif;letter-spacing:2px;color:#a1b89a}.btn{background:#234b3d;color:white;border:1px solid #234b3d;padding:10px 19px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:500;font-size:12px;transition:background .15s,transform .15s}.btn:hover{background:#34614c;transform:translateY(-1px)}.btn.light{background:#e6edce;color:#274636;border-color:#e6edce}.btn.secondary{background:#fffef9;border:1px solid #dce0d4;color:#4f6051}.btn.ghost{background:transparent;color:#60725c;border:1px solid transparent}.btn.small{padding:7px 12px;font-size:11px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0 30px}.stat{background:#fdfcf8;border:1px solid #e3e5da;border-radius:10px;padding:19px 22px}.stat-label{font-size:11px;color:#8a9284;display:flex;justify-content:space-between}.stat strong{font-size:29px;font-family:MathSerif,'Segoe UI',serif;font-weight:400;color:#315744;line-height:1.6}.stat small{font-size:10px;margin-left:7px}.section-head{display:flex;justify-content:space-between;align-items:center;margin:27px 0 16px}.section-head h2{font-size:18px}.section-head .sub{margin-left:9px;font-size:10px;color:#949b8e;font-weight:400}.text-link{font-size:11px;color:#7c8b6b;padding:5px 0}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(255px,1fr);gap:24px}.topics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.topic-card{position:relative;border:1px solid #e0e4d8;background:#fffef9;padding:22px;border-radius:10px;text-align:left;transition:border .15s,transform .15s;width:100%}.topic-card:hover{transform:translateY(-2px);border-color:#8ca178}.topic-icon{font:22px MathSerif,serif;color:#657e58;background:#eef0e6;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 7px;margin-bottom:14px}.topic-card:nth-child(2n) .topic-icon{background:#f3e9df;color:#ad7654}.topic-card h3{font-size:14px;margin-bottom:6px}.topic-card p{font-size:11px;color:#959a8e;min-height:36px}.topic-meta{display:flex;justify-content:space-between;margin-top:17px;padding-top:12px;border-top:1px solid #eeeee6;font-size:10px;color:#8d9585}.topic-card .arrow{position:absolute;right:18px;top:22px;color:#a5ad9c}.panel{background:#fffef9;border:1px solid #e1e4d9;border-radius:11px;padding:23px}.path-row{display:flex;gap:13px;padding:16px 0;border-bottom:1px solid #eeeee5;align-items:start}.path-row:last-of-type{border:0}.step-num{color:#869974;background:#f0f1e7;border-radius:50%;width:26px;height:26px;flex:none;display:grid;place-items:center;font:12px MathSerif}.path-row h3{font-size:12px}.path-row p{font-size:10px;color:#9ba18f;margin-top:4px}.quote{margin-top:16px;border-radius:10px;background:#eee9dc;padding:23px}.quote .eyebrow{font-size:9px;color:#9c8e70}.quote p{font-size:15px;line-height:1.9;color:#685f47;margin-top:11px}.quote small{font-size:10px;color:#a09275}.footer{border-top:1px solid #e0e3d9;margin-top:32px;padding-top:17px;display:flex;justify-content:space-between;color:#9da393;font-size:10px}.lesson-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.lesson-layout{display:grid;grid-template-columns:minmax(0,2.15fr) minmax(260px,1fr);gap:23px;margin-top:20px}.lesson-main .formula{background:#eef1e5;padding:24px;border-radius:9px;text-align:center;margin:24px 0;overflow:auto}.lesson-main .body-p{margin:20px 0;line-height:1.95;font-size:14px}.callout{padding:19px 22px;border-left:3px solid #98ab81;background:#f3f4ea;margin-top:24px;border-radius:0 8px 8px 0}.callout.warn{background:#f8eee4;border-color:#c78d68}.callout strong{display:block;font-size:12px;margin-bottom:8px}.quiz{margin-top:23px}.quiz p{margin:12px 0}.inline-form{display:flex;gap:8px}.field{border:1px solid #d9dece;border-radius:7px;background:white;padding:10px 12px;color:#334b3c;min-width:0}.inline-form .field{flex:1;width:0}.related{display:block;border-bottom:1px solid #e8ebdf;padding:16px 0}.related:last-child{border:0}.related small{display:block;font-size:10px}.related strong{font-size:13px}.filters{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.filters .search{flex:1;min-width:180px}.filters select{max-width:190px;font-size:12px}.question-list{display:grid;gap:10px}.question-row{background:#fffef9;border:1px solid #e2e5d9;border-radius:9px;padding:19px 22px;display:flex;align-items:center;gap:20px}.q-num{font:19px MathSerif;color:#a4ad9a;width:26px}.q-info{flex:1;min-width:0}.q-info h3{font-size:14px}.q-info p{font-size:11px;color:#8e9785;margin-top:4px}.badge{display:inline-flex;align-items:center;border-radius:4px;padding:3px 8px;background:#edf1e6;color:#6d8759;font-size:10px;white-space:nowrap}.badge.orange{background:#f4e8dd;color:#ac7b56}.badge.gray{background:#efefe9;color:#8b9382}.badges{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.empty{text-align:center;padding:60px 20px;color:#8a9481}.empty .big{font-size:35px;font-family:MathSerif;margin-bottom:12px}.empty h2{font-size:20px;color:#52674c;margin-bottom:10px}.training-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:19px}.training-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(250px,1fr);gap:23px}.problem-panel{padding:30px}.problem-panel h1{font-size:24px;margin:17px 0}.problem-text{font-size:17px;line-height:2.2;margin:27px 0 30px}.problem-text .katex{font-size:1.1em}.problem-meta{display:flex;justify-content:space-between;align-items:center;color:#939c8a;font-size:11px}.choice-grid{display:grid;gap:10px;margin-bottom:20px}.choice{display:flex;align-items:center;gap:14px;border:1px solid #dce1d3;padding:13px 16px;border-radius:8px;text-align:left;font-size:14px}.choice b{background:#eef0e8;border-radius:5px;display:grid;place-items:center;width:27px;height:27px;font-weight:400;color:#8b9b7e}.choice.selected{border-color:#577c4d;background:#f0f4e8}.choice.selected b{background:#5e7c4e;color:white}.answer-label{font-size:12px;display:block;margin-bottom:8px}.answer-row{display:flex;gap:10px}.answer-row .field{width:100%;max-width:320px}.answer-help{font-size:10px;color:#98a08f;margin-top:9px}.feedback{padding:17px 20px;border-radius:8px;margin:20px 0;background:#f8ece0;color:#8e6445}.feedback.good{background:#eaf1e1;color:#477139}.feedback p{font-size:12px;margin-top:4px}.training-actions{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;border-top:1px solid #e5e8de;padding-top:19px;margin-top:25px}.hint-box{padding:14px 16px;background:#f3f3e9;border-radius:7px;font-size:12px;margin-top:12px}.hint-box .eyebrow{font-size:9px;margin-bottom:7px}.solution{border-top:1px solid #e2e7d9;margin-top:25px;padding-top:23px}.solution p{margin:15px 0;line-height:1.9}.solution .step{font:12px MathSerif;color:#869d71;margin-right:6px}.small-note{font-size:11px;color:#959d8b;line-height:1.8}.notes{width:100%;min-height:125px;margin:11px 0;font-size:12px;resize:vertical}.timer{font-variant-numeric:tabular-nums;font-size:12px;color:#8a9680}.queue-progress{height:4px;background:#e3e7da;border-radius:4px;max-width:180px;margin-top:5px}.queue-progress i{height:4px;background:#6f895d;display:block;border-radius:4px}.note-saved{font-size:10px;color:#9ba58d}.stats-details{display:grid;grid-template-columns:1.4fr 1fr;gap:22px}.mastery-row{padding:15px 0}.mastery-row .row{display:flex;justify-content:space-between;font-size:12px;margin-bottom:9px}.history{display:grid;gap:10px;margin-top:20px}.history-row{display:flex;gap:15px;align-items:center;border-bottom:1px solid #e8eadf;padding:12px 0;font-size:12px}.history-row .grow{flex:1}.backup{margin-top:23px;display:flex;gap:13px;align-items:center;flex-wrap:wrap}.backup p{flex:1;min-width:220px;font-size:11px;color:#939c87}.summary-score{font:60px MathSerif;color:#3f6743;margin:25px 0}.summary-score small{font-size:22px}.skip{position:fixed;left:10px;top:-50px;z-index:100;background:#173e32;color:white;padding:10px}.skip:focus{top:10px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#223e31;color:white;box-shadow:0 8px 24px #193f3630;border-radius:8px;padding:12px 22px;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s;font-size:12px;max-width:90vw}#toast.show{opacity:1}.katex-display{overflow-x:auto;overflow-y:hidden;padding:5px 0}.storage-warning{background:#f9e7d6;padding:12px 20px;font-size:12px;color:#925f3c}body.modal-open{overflow:hidden}dialog{border:1px solid #dce2d3;border-radius:14px;background:#fffef8;color:#34513f;padding:28px;max-width:420px;width:90vw}dialog::backdrop{background:#17392d66}dialog p{margin:14px 0 20px;font-size:13px}dialog .actions{display:flex;gap:10px;justify-content:end}
@media(min-width:1450px){main{padding-top:42px}.hero{min-height:290px}.hero-art{right:50px;max-width:500px}}
@media(max-width:1100px){.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{width:190px;padding:28px 14px}.topbar{padding:0 25px}main{padding:28px 25px}.hero{padding:28px}.hero-art{right:-75px;opacity:.4}.hero{grid-template-columns:1fr}.hero p{max-width:320px}.lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats .stat{padding:15px}.dashboard-grid{grid-template-columns:1.5fr 1fr;gap:16px}.training-layout,.lesson-layout{grid-template-columns:minmax(0,1fr) 250px;gap:16px}.problem-panel{padding:24px}.badge{font-size:9px}}
@media(max-width:800px){.shell{display:block}.sidebar{position:static;width:100%;padding:16px 20px;border-right:0;border-bottom:1px solid #e1e4d8;display:block}.brand{margin:0 0 15px}.brandmark{width:33px;height:33px}.brand strong{font-size:22px}.brand small{font-size:9px}.side-course,.side-bottom,.nav-label{display:none}.nav{display:flex;gap:4px;overflow-x:auto}.nav button{width:auto;white-space:nowrap;flex:1;justify-content:center;gap:6px;padding:9px 8px;font-size:11px}.nav svg{width:15px}.nav .count{display:none}.topbar{height:46px;padding:0 22px}.topright .avatar{display:none}main{padding:24px 20px 40px}.date{display:none}h1{font-size:26px}.hero{min-height:260px;padding:28px}.hero h2{font-size:25px}.hero-art{right:-110px}.hero-legend{display:none}.dashboard-grid{grid-template-columns:1fr}.dashboard-grid aside{display:none}.stats{gap:8px;margin:15px 0 20px}.stat strong{font-size:24px}.stat-label{font-size:10px}.stat small{display:block;font-size:9px;margin:0}.training-layout,.lesson-layout,.stats-details{grid-template-columns:1fr}.training-layout aside{display:grid;grid-template-columns:1fr 1fr;gap:12px}.training-layout aside .panel{margin:0!important}.question-row{gap:10px;padding:17px 15px}.question-row>.badge{display:none}.lesson-main{padding:22px}.page-heading{align-items:start}.page-heading p{font-size:12px}.page-heading .btn{white-space:nowrap}.footer{font-size:9px;gap:10px}.filters select{max-width:100%;flex:1}.hero .btn{margin-top:18px}}
@media(max-width:480px){.nav button{padding:8px 4px}.nav svg{display:none}.hero-art{right:-170px;opacity:.25}.hero{padding:24px}.hero p{max-width:260px}.stats{grid-template-columns:repeat(2,1fr)}.stat small{display:inline;margin-left:7px}.lesson-grid,.topics{gap:10px}.topic-card{padding:16px}.topic-card h3{font-size:12px}.topic-card p{font-size:10px}.topic-meta{font-size:9px}.lesson-grid{grid-template-columns:1fr}.training-layout aside{display:block}.training-layout aside .panel{margin-top:15px!important}.problem-panel{padding:21px}.problem-text{font-size:15px}.answer-row{flex-direction:column}.answer-row .field{max-width:none}.question-row .q-num{display:none}.question-row .btn{padding:7px 10px}.q-info h3{font-size:12px}.q-info p{font-size:10px}.training-top{align-items:start}.training-top .btn{font-size:10px;padding:7px}.footer span:last-child{display:none}.page-heading h1{font-size:24px}.inline-form{flex-wrap:wrap}.inline-form .field{min-width:130px}}
