:root{color:#20232a;background:#eef7fb;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #20232a;--muted: #60707f;--line: #dbe7ee;--paper: #ffffff;--blue: #3d7eff;--green: #20a67a;--yellow: #ffbf3d;--coral: #ff6b5f;--sky: #dff3ff}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);color:var(--ink);display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;gap:18px;overflow:hidden;padding:18px 14px;position:sticky;top:0;height:100vh}.brand{align-items:center;display:flex;gap:12px;min-height:64px;padding:8px}.brand svg{background:var(--yellow);border-radius:8px;color:#4a3200;padding:6px;width:38px;height:38px}.brand strong{display:block;font-size:20px}.brand span{color:var(--muted);display:block;font-size:13px;margin-top:2px}.nav-list{display:grid;gap:8px;min-height:0;overflow-y:auto;padding-right:2px;scrollbar-width:thin}.nav-button,.sync-button{align-items:center;background:#f4f8fb;border:1px solid transparent;border-radius:8px;color:#31404f;display:flex;gap:10px;min-height:52px;padding:0 14px;text-align:left}.nav-button.active,.nav-button:hover,.sync-button:hover{background:#eaf2ff;border-color:#b9d2ff;color:#1f5fd7}.sync-button{border:1px solid var(--line);margin-top:auto;width:100%}.user-panel{background:#f8fbff;border:1px solid var(--line);border-radius:8px;display:grid;gap:6px;padding:12px}.user-panel strong{color:var(--ink)}.user-panel span{color:var(--muted);font-size:12px;line-height:1.5}.user-panel button{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;color:#31404f;display:inline-flex;gap:6px;justify-content:center;min-height:34px}.auth-shell{align-items:center;background:linear-gradient(135deg,#dff3ffeb,#fff4d7bd),#eef7fb;display:grid;min-height:100vh;padding:20px}.auth-card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 48px #28547824;display:grid;gap:18px;margin:0 auto;max-width:460px;padding:24px;width:100%}.auth-brand{align-items:center;display:flex;gap:12px}.auth-brand svg{background:var(--yellow);border-radius:8px;color:#4a3200;padding:7px;width:46px;height:46px}.auth-brand strong{display:block;font-size:24px}.auth-brand span,.auth-message{color:var(--muted);line-height:1.6}.auth-tabs{background:#f4f8fb;border:1px solid var(--line);border-radius:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:4px}.auth-tabs.three-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.auth-tabs button{align-items:center;background:transparent;border:0;border-radius:6px;color:#52606d;display:inline-flex;gap:8px;justify-content:center;min-height:42px}.auth-tabs button.active{background:#fff;color:var(--blue);box-shadow:0 4px 12px #28547814}.auth-form{display:grid;gap:12px}.auth-message{margin:0}.workspace{display:grid;gap:16px;padding:20px}.topbar{align-items:end;display:flex;gap:16px;justify-content:space-between}.topbar p,.topbar h1{margin:0}.topbar p{color:var(--muted);font-size:14px}.topbar h1{font-size:28px;line-height:1.2}.status-pill,.subject-badge{align-items:center;border-radius:999px;display:inline-flex;min-height:32px;padding:0 12px;white-space:nowrap}.status-pill{background:#fff;border:1px solid var(--line);color:var(--muted);font-size:14px}.subject-badge{background:var(--blue);color:#fff;font-size:13px;justify-content:center}.content-grid{display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr))}.span-3{grid-column:1 / -1}.student-hero{align-items:center;background:radial-gradient(circle at 12% 20%,rgba(255,191,61,.32),transparent 28%),linear-gradient(135deg,#fff,#e7f6ff 48%,#fff4d7);border:1px solid var(--line);border-radius:8px;display:flex;gap:18px;justify-content:space-between;min-height:176px;padding:24px}.student-hero h2{font-size:32px;line-height:1.2;margin:8px 0}.student-hero p,.soft-copy{color:var(--muted);line-height:1.7;margin:0}.mini-label{background:#fff;border:1px solid #ffd985;border-radius:999px;color:#7a5300;display:inline-flex;font-size:14px;min-height:32px;padding:0 12px;align-items:center}.hero-steps{display:grid;gap:10px;min-width:180px}.hero-steps span{align-items:center;background:#fff;border:1px solid var(--line);border-radius:8px;display:flex;gap:8px;min-height:48px;padding:0 12px}.panel{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px #28547814;padding:18px}.span-2{grid-column:span 2}.section-heading{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px}.section-heading h2,.detail-title h2,.practice-item h3,.panel h3{margin:0}.section-heading h2{font-size:20px}.section-heading span{color:var(--muted);font-size:14px}.task-grid,.metric-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.task-item{background:#f8fbff;border:1px solid #dbe8ff;border-left:6px solid var(--blue);border-radius:8px;min-height:124px;padding:14px}.task-item b{color:var(--coral);display:block;font-size:28px;margin:10px 0 4px}.task-item p,.mistake-row p,.info-block p,.diagnosis p,.essay-sheet p,.answer-box{color:#505b58;line-height:1.65;margin:0}.compact-list,.mistake-list,.practice-list{display:grid;gap:10px}.compact-list button,.mistake-row,.practice-item,.list-stat{background:#fff;border:1px solid var(--line);border-radius:8px}.compact-list button,.mistake-row{color:inherit;display:grid;gap:6px;min-height:72px;padding:12px;text-align:left;width:100%}.compact-list button:hover,.mistake-row:hover{border-color:var(--blue);box-shadow:0 8px 20px #3d7eff1f}.compact-list small{color:#68726f}.mistake-row{align-items:center;grid-template-columns:auto minmax(0,1fr) 120px}.selected-row{border-color:var(--blue);box-shadow:0 8px 20px #3d7eff1f}.progress{background:#edf2f7;border-radius:999px;height:10px;overflow:hidden}.progress span{background:linear-gradient(90deg,var(--green),var(--yellow));display:block;height:100%}.upload-panel form,.field-row,.file-chips{display:grid;gap:12px}.field-row{grid-template-columns:repeat(3,minmax(0,1fr))}.field-row.vertical{grid-template-columns:1fr}label{color:#53605d;display:grid;gap:6px;font-size:14px}select,input,textarea{background:#fbfdff;border:1px solid var(--line);border-radius:8px;color:#1c2524;min-height:44px;padding:10px 12px}textarea{min-height:110px;resize:vertical}.short-textarea{min-height:78px}.dropzone{align-items:center;background:var(--sky);border:2px dashed #75bdf4;border-radius:8px;color:#1d5d8f;justify-items:center;min-height:170px;padding:18px;text-align:center}.dropzone input{inset:0;opacity:0;position:absolute;pointer-events:none}.file-chips{display:flex;flex-wrap:wrap}.file-chips span{align-items:center;background:#fff4d7;border-radius:999px;display:inline-flex;gap:6px;max-width:100%;min-height:34px;padding:0 10px}.primary-button,.practice-item button{align-items:center;background:var(--blue);border:0;border-radius:8px;color:#fff;display:inline-flex;gap:8px;justify-content:center;min-height:46px;padding:0 16px}.primary-button:disabled{background:#a8b9c9;cursor:not-allowed}.mini-button{background:#fff;border:1px solid #b9d2ff;border-radius:8px;color:#1f5fd7;min-height:34px;padding:0 12px}.mini-button:disabled{color:#8a99a8;cursor:not-allowed}.account-grid{display:grid;gap:16px}.account-hero{align-items:center;display:flex;gap:18px;justify-content:space-between}.account-hero h2,.pricing-card h2{margin:0}.account-hero p{color:var(--muted);line-height:1.6;margin:6px 0 0}.account-balance{background:#eef7fb;border:1px solid #cde8f5;border-radius:8px;display:grid;gap:6px;min-width:180px;padding:16px}.account-balance span,.stat-card span,.stat-card small,.pricing-card span,.pricing-card p,.transaction-item span{color:var(--muted);font-size:13px;line-height:1.55}.account-balance strong{color:var(--blue);font-size:28px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:8px;display:grid;gap:8px;min-height:128px;padding:16px}.stat-card svg{color:var(--blue)}.stat-card strong{font-size:22px}.billing-panel{display:grid}.recharge-row{align-items:end;display:flex;flex-wrap:wrap;gap:10px}.choice-chip{background:#f4f8fb;border:1px solid var(--line);border-radius:8px;color:#31404f;min-height:42px;padding:0 14px}.choice-chip.active,.choice-chip:hover{background:#eaf2ff;border-color:#b9d2ff;color:#1f5fd7}.amount-input{color:var(--muted);display:grid;font-size:13px;gap:6px;min-width:140px}.pricing-grid{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.pricing-card{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px #28547814;display:grid;gap:14px;padding:18px}.transaction-list{display:grid;gap:10px}.transaction-item{align-items:center;background:#f8fbff;border:1px solid var(--line);border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:12px}.transaction-item>div{display:grid;gap:4px}.transaction-item>div:last-child{text-align:right}.empty-state{color:var(--muted);margin:0}.admin-user-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.admin-user-card{background:#f8fbff;border:1px solid var(--line);border-radius:8px;display:grid;gap:10px;padding:14px}.admin-user-card strong{display:block;font-size:17px}.admin-user-card span{color:var(--muted);display:block;font-size:13px;line-height:1.6}.detail-title{align-items:center;display:flex;gap:12px;margin-bottom:16px}.detail-title p{color:#66706d;margin:4px 0 0}.media-strip{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:14px}.media-strip img,.media-strip video,.empty-media,.material-link{aspect-ratio:4 / 3;background:#eef6fb;border-radius:8px;object-fit:cover;width:100%}.preview-materials{margin-top:16px}.material-link{align-items:center;border:1px solid var(--line);color:#24506f;display:grid;gap:8px;justify-items:center;min-height:140px;padding:14px;text-align:center;text-decoration:none}.material-link span{max-width:100%;overflow-wrap:anywhere}.empty-media{align-items:center;color:#71807b;display:flex;justify-content:center}.info-block{border-top:1px solid var(--line);display:grid;gap:6px;padding:14px 0 0;margin-top:14px}.diagnosis{display:grid;gap:12px}.diagnosis strong{color:var(--coral);font-size:24px}.clean-list{color:#485451;line-height:1.7;padding-left:20px}.practice-item{display:grid;gap:12px;padding:14px}.practice-item button:disabled{background:#a8b9c9;cursor:not-allowed}.answer-box{background:#f8fbff;border-left:4px solid var(--yellow);border-radius:8px;padding:12px}.knowledge-card{background:#f8fbff;border:1px solid #dbe8ff;border-radius:8px;display:grid;gap:8px;padding:12px}.knowledge-card span{color:var(--blue);font-size:13px}.knowledge-card p{color:#505b58;line-height:1.6;margin:0}.plan-item b{color:var(--blue);font-size:18px;line-height:1.35}.slide-deck{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.slide-card{background:linear-gradient(180deg,#fff,#f6fbff);border:1px solid var(--line);border-radius:8px;display:grid;gap:10px;min-height:260px;padding:14px}.slide-card>span{align-items:center;color:var(--blue);display:inline-flex;font-size:13px;gap:6px}.slide-card p,.voice-script,.attempt-result p{color:#505b58;line-height:1.65;margin:0;white-space:pre-line}.voice-script{background:#f8fbff;border-left:4px solid var(--green);border-radius:8px;padding:12px}.source-list{display:grid;gap:10px}.source-list a{background:#f8fbff;border:1px solid var(--line);border-radius:8px;color:inherit;display:grid;gap:6px;padding:12px;text-decoration:none}.source-list span{color:var(--muted);font-size:13px;line-height:1.5}.attempt-result{border-radius:8px;display:grid;gap:10px;padding:12px}.attempt-result.correct{background:#ebfbf5;border-left:4px solid var(--green)}.attempt-result.wrong{background:#fff4d7;border-left:4px solid var(--coral)}.essay-editor{min-height:220px;width:100%}.metric{background:linear-gradient(135deg,#2756d8,#20a67a);border-radius:8px;color:#fff;min-height:108px;padding:16px}.metric span{color:#e8f3ff}.metric strong{display:block;font-size:30px;margin-top:12px}.list-stat{align-items:center;display:flex;justify-content:space-between;min-height:46px;padding:0 12px}.download-button{align-items:center;background:var(--green);border-radius:8px;color:#fff;display:inline-flex;gap:8px;justify-content:center;margin-top:14px;min-height:46px;padding:0 16px;text-decoration:none;width:100%}@media(max-width:1024px){.app-shell{grid-template-columns:88px minmax(0,1fr)}.brand div,.nav-button span,.sync-button span{display:none}.nav-button,.sync-button,.brand{justify-content:center}.content-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-hero{align-items:start;display:grid}.hero-steps{grid-template-columns:repeat(3,minmax(0,1fr));min-width:0}}@media(max-width:720px){.app-shell{display:block;padding-bottom:76px}.sidebar{align-items:center;display:flex;gap:6px;height:auto;inset:auto 0 0;overflow-x:auto;padding:8px;position:fixed;z-index:10}.brand,.sync-button,.user-panel{display:none}.nav-list{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;padding-right:0;width:100%}.nav-button{flex:1 0 54px;min-height:52px;padding:0}.workspace{padding:14px}.topbar{align-items:start;display:grid}.topbar h1{font-size:25px}.content-grid,.task-grid,.field-row,.metric-grid,.pricing-grid{grid-template-columns:1fr}.account-hero,.transaction-item{align-items:stretch;display:grid}.account-balance{min-width:0}.recharge-row{align-items:stretch;display:grid}.transaction-item>div:last-child{text-align:left}.span-2,.span-3{grid-column:span 1}.student-hero{min-height:0;padding:18px}.student-hero h2{font-size:24px}.hero-steps,.mistake-row{grid-template-columns:1fr}}
