:root{color:#1f2d3d;font-synthesis:none;background:#f3f6f8;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:#176b56}.entry-page{background:linear-gradient(145deg,#17324d 0 48%,#eef4f3 48%);place-items:center;min-height:100vh;padding:24px;display:grid}.entry-card{background:#fff;border-radius:20px;width:440px;max-width:calc(100vw - 48px);padding:34px;box-shadow:0 22px 70px #102b422e}.brand-mark{color:#fff;background:#1f7a63;border-radius:16px;place-items:center;width:54px;height:54px;font-size:26px;font-weight:800;display:grid}.entry-card h1{margin:20px 0 8px;font-size:28px}.entry-card p{color:#5b6b7b;line-height:1.7}.entry-card label,.modal label,.task-edit-form label,.submission-form label{color:#3c4c5d;gap:7px;margin-top:16px;font-weight:700;display:grid}.entry-card input,.modal input,.modal select,.task-edit-form input,.task-edit-form select,.task-edit-form textarea,.submission-form input,.submission-form textarea{color:#1f2d3d;background:#fff;border:1px solid #cfd9df;border-radius:10px;width:100%;padding:12px 13px}.primary-button,.secondary-button{border:0;border-radius:10px;justify-content:center;align-items:center;padding:12px 16px;font-weight:800;text-decoration:none;display:inline-flex}.primary-button{color:#fff;background:#1f7a63}.primary-button:hover{background:#176b56}.primary-button:disabled{opacity:.55;cursor:not-allowed}.secondary-button{color:#165d4c;background:#e8f1ef}.entry-card .primary-button{width:100%;margin-top:18px}.compact{padding:10px 14px}.text-button,.icon-button{color:#526273;background:0 0;border:0}.error-box{color:#a22920;background:#fff1f0;border-radius:9px;margin-top:14px;padding:11px}.center-state{color:#5b6b7b;place-content:center;justify-items:center;min-height:100vh;display:grid}.spinner{border:3px solid #d9e4e3;border-top-color:#1f7a63;border-radius:50%;width:30px;height:30px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.topbar{color:#fff;z-index:20;background:#17324d;justify-content:space-between;align-items:center;height:68px;padding:0 28px;display:flex;position:sticky;top:0}.topbar>div:first-child{align-items:baseline;gap:12px;display:flex}.topbar b{font-size:20px}.topbar span{color:#bfd0dd}.top-actions{align-items:center;gap:10px;display:flex}.top-actions .text-button{color:#d7e2ea}.admin-main{max-width:1440px;margin:auto;padding:24px}.overview-row{grid-template-columns:repeat(3,minmax(150px,220px));gap:14px;margin-bottom:18px;display:grid}.metric{background:#fff;border:1px solid #dde5e9;border-radius:14px;justify-content:space-between;align-items:center;padding:17px;display:flex}.metric span{color:#627283}.metric strong{font-size:26px}.workspace{grid-template-columns:250px 1fr;gap:18px;display:grid}.learner-list,.learner-detail{background:#fff;border:1px solid #dde5e9;border-radius:16px;min-width:0}.learner-list{height:fit-content;padding:14px;position:sticky;top:86px}.learner-list h2{margin:6px 6px 12px;font-size:16px}.learner-list>button{text-align:left;color:#233044;background:0 0;border:1px solid #0000;border-radius:12px;gap:5px;width:100%;margin-bottom:5px;padding:12px;display:grid}.learner-list>button:hover,.learner-list>button.selected{background:#edf5f3;border-color:#bad9d1}.learner-list button span{color:#667686}.learner-list button div{color:#738190;justify-content:space-between;display:flex}.empty-copy{color:#6a7988;padding:10px;line-height:1.6}.learner-detail{padding:24px}.detail-head{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.detail-head h1{margin:4px 0;font-size:30px}.detail-head p{color:#667686;margin:0}.eyebrow{color:#1f7a63;font-size:13px;font-weight:800}.detail-actions{gap:10px;display:flex}.progress-line{background:#e5ecef;border-radius:99px;height:8px;margin:18px 0;overflow:hidden}.progress-line span{border-radius:inherit;background:linear-gradient(90deg,#1f7a63,#62b79e);height:100%;display:block}.current-admin-card{color:#fff;background:#17324d;border-radius:14px;justify-content:space-between;gap:20px;padding:18px 20px;display:flex}.current-admin-card span{color:#b7d2dd}.current-admin-card h2{margin:5px 0;font-size:21px}.current-admin-card p{color:#d7e4e9;margin:0}.task-list{gap:10px;margin-top:20px;display:grid}.task-editor{border:1px solid #dce5e9;border-radius:12px;overflow:hidden}.task-editor-summary{text-align:left;color:#243546;background:#fff;border:0;justify-content:space-between;gap:20px;width:100%;padding:15px 17px;display:flex}.task-editor-summary h3{margin:3px 0;font-size:17px}.task-editor-summary p{color:#657585;margin:0}.week-label{color:#1f7a63;font-size:12px;font-weight:800}.task-side{color:#758392;justify-items:end;gap:7px;min-width:115px;font-size:13px;display:grid}.task-edit-form{background:#f8fafb;border-top:1px solid #e0e7eb;padding:18px}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.task-edit-form textarea,.submission-form textarea{resize:vertical;min-height:78px}.feedback-snapshot,.teacher-note{background:#fff;border-left:4px solid #1f7a63;margin-top:16px;padding:13px 15px}.feedback-snapshot p,.teacher-note p{color:#536473;margin:6px 0}.blocker{color:#ad4b36!important}.modal-actions,.submit-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.status{white-space:nowrap;color:#5c6874;background:#edf0f2;border-radius:99px;align-items:center;padding:4px 9px;font-size:12px;font-weight:800;display:inline-flex}.modal-backdrop{z-index:40;background:#102b4270;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:18px;width:min(580px,100%);padding:24px;box-shadow:0 30px 90px #0f233854}.modal-head{justify-content:space-between;align-items:center;display:flex}.modal-head h2{margin:0}.icon-button{font-size:26px}.form-hint{color:#42665d;background:#eff6f4;border-radius:9px;padding:12px;line-height:1.6}.toast{z-index:50;color:#fff;background:#17324d;border-radius:10px;padding:12px 16px;position:fixed;top:78px;right:20px;box-shadow:0 10px 30px #102b4238}.empty-panel{text-align:center;color:#607180;padding:90px 20px}.student-shell{background:#f3f6f8;min-height:100vh}.student-header{color:#fff;background:#17324d;justify-content:space-between;align-items:center;height:58px;padding:0 20px;display:flex}.student-brand{font-weight:800}.student-header span{color:#bfd0dd;font-size:13px}.student-main{width:min(760px,100%);margin:auto;padding:22px 16px 60px}.student-welcome{color:#fff;background:linear-gradient(145deg,#17324d,#244c5a);border-radius:20px;padding:24px;box-shadow:0 14px 40px #17324d24}.student-welcome h1{color:#d8e8ed;margin:8px 0 22px;font-size:20px}.student-welcome h2{margin:0 0 8px;font-size:28px}.student-welcome p{color:#d5e2e7;margin:0;line-height:1.7}.due-line{background:#ffffff18;border-radius:8px;margin-top:18px;padding:7px 10px;display:inline-flex}.student-progress{background:#fff;border:1px solid #dde5e9;border-radius:15px;margin-top:14px;padding:17px}.student-progress>div:first-child{justify-content:space-between;display:flex}.student-progress p{color:#617180;margin-bottom:0;line-height:1.6}.section-heading{justify-content:space-between;align-items:baseline;margin:28px 2px 12px;display:flex}.section-heading h2{margin:0}.section-heading span{color:#758392;font-size:13px}.student-timeline{position:relative}.student-task{background:#fff;border:1px solid #dce5e9;border-radius:14px;margin-bottom:11px;overflow:hidden}.student-task-head{text-align:left;color:#243546;background:#fff;border:0;grid-template-columns:16px 1fr auto;align-items:center;gap:10px;width:100%;padding:16px;display:grid}.timeline-dot{background:#aab7bf;border-radius:50%;width:10px;height:10px}.student-task-head span:first-child{color:#667786;font-size:13px}.student-task-head h3{margin:3px 0;font-size:18px}.student-task-body{border-top:1px solid #e2e8eb;padding:18px}.objective{color:#435668;font-size:16px;line-height:1.7}.student-task-body h4{margin:20px 0 10px}.step-list{gap:8px;display:grid}.step-list label{background:#f5f8f9;border-radius:10px;align-items:flex-start;gap:10px;padding:12px;line-height:1.55;display:flex}.step-list input{accent-color:#1f7a63;width:18px;height:18px;margin-top:2px}.step-list label.checked{color:#547066;background:#edf6f3;text-decoration:line-through}.deliverables{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.deliverables>div{background:#f6f8fa;border-radius:10px;padding:13px}.deliverables span{color:#1f7a63;font-size:12px;font-weight:800}.deliverables p{margin:6px 0;line-height:1.55}.submission-form{border-top:1px solid #e0e7ea;margin-top:18px}.submission-form label{font-size:14px}.submit-actions .primary-button,.submit-actions .secondary-button{flex:1}.habit-admin{background:#f6faf9;border:1px solid #d9e5e1;border-radius:14px;margin-top:14px;padding:16px}.habit-admin-head{justify-content:space-between;align-items:center;display:flex}.habit-admin-head span{color:#1f7a63;font-size:13px;font-weight:800}.habit-admin-head h2{margin:3px 0}.habit-admin-head p{color:#6a7a86}.habit-admin-groups{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.habit-admin-groups>div{background:#fff;border-radius:10px;gap:7px;padding:12px;display:grid}.habit-admin-groups b{font-size:13px}.habit-admin-groups span{color:#71808d;font-size:13px}.habit-panel{background:#fff;border:1px solid #dde5e9;border-radius:15px;margin-top:14px;padding:18px}.habit-panel .section-heading{margin:0 0 10px}.habit-panel .section-heading h2{font-size:20px}.habit-panel .section-heading p{color:#697986;margin:5px 0}.habit-group{border-top:1px solid #e5eaed;margin-top:12px;padding-top:12px}.habit-group h3{color:#536574;margin:0 0 8px;font-size:14px}.habit-row{border-bottom:1px dashed #e4e9ec;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;display:flex}.habit-row:last-child{border-bottom:0}.habit-row>div:first-child{gap:3px;display:grid}.habit-row b{font-size:15px}.habit-row span{color:#70808e;font-size:12px}.habit-row>button{color:#1f6e59;background:#fff;border:1px solid #b9d2ca;border-radius:9px;padding:8px 11px;font-weight:700}.habit-row.done>button{background:#ddefe5;border-color:#ddefe5}.habit-row.done b{color:#527267}.counter{align-items:center;gap:7px;display:flex}.counter button{color:#1f6e59;background:#fff;border:1px solid #cad7d3;border-radius:8px;width:32px;height:32px;font-size:18px}.counter strong{text-align:center;min-width:22px}.student-timeline{margin-top:24px}@media (width<=820px){.topbar{padding:0 16px}.topbar span{display:none}.admin-main{padding:14px}.overview-row{grid-template-columns:repeat(3,1fr)}.workspace{grid-template-columns:1fr}.learner-list{gap:8px;display:flex;position:static;overflow:auto}.learner-list h2{display:none}.learner-list>button{min-width:160px}.learner-detail{padding:16px}.detail-head{display:grid}.detail-actions{grid-template-columns:1fr 1fr;display:grid}.form-grid{grid-template-columns:1fr}.task-editor-summary{display:grid}.task-side{justify-content:flex-start;display:flex}.student-welcome h2{font-size:24px}.deliverables,.habit-admin-groups{grid-template-columns:1fr}}@media (width<=520px){.entry-page{padding:16px}.entry-card{max-width:calc(100vw - 32px);padding:26px}.overview-row{grid-template-columns:1fr}.metric{padding:12px}.topbar b{font-size:17px}.compact{font-size:14px}.learner-detail{border-radius:12px}.detail-head h1{font-size:26px}.task-editor-summary{padding:13px}.student-main{padding-inline:12px}.student-welcome{padding:20px}.student-task-head{grid-template-columns:14px 1fr}.student-task-head .status{grid-column:2;width:max-content}.modal{padding:18px}.entry-card{padding:26px}.habit-row{align-items:flex-start}.habit-row>button{flex:none}}:root{--hb-ink:#3b291f;--hb-muted:#7b6557;--hb-red:#9b3b2e;--hb-red-2:#b14b32;--hb-gold:#d89731;--hb-gold-deep:#bd7416;--hb-line:#ad7e4440;--hb-cream:#fffaf2;--hb-cream-2:#fff4e1;--hb-paper:#fffdf8;--hb-green:#315f50;--hb-shadow:0 18px 55px #744b231a}body{color:var(--hb-ink);background:var(--hb-cream)}button,input,textarea,select{font-family:inherit}h1,h2,.entry-card h1,.detail-head h1,.student-welcome h2{letter-spacing:-.025em;font-family:Songti SC,STSong,Noto Serif SC,Georgia,serif}.entry-page{background:radial-gradient(circle at 78% 18%,#f4c46f47,#0000 31%),linear-gradient(145deg,#fffdf8 0 52%,#f8ecd9 52% 100%);min-height:100vh;padding:32px}.entry-card{border:1px solid var(--hb-line);width:480px;max-width:calc(100vw - 48px);box-shadow:var(--hb-shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdf8f0;border-radius:24px;padding:38px}.brand-lockup{align-items:center;gap:12px;margin-bottom:30px;display:flex}.brand-lockup>div:last-child{gap:2px;display:grid}.brand-lockup b{font-family:Songti SC,STSong,serif;font-size:18px}.brand-lockup span{color:var(--hb-muted);font-size:12px}.brand-mark{color:#fff;background:linear-gradient(145deg,#efbf62,#cb8522);border-radius:15px;width:48px;height:48px;box-shadow:inset 0 1px #ffffff80,0 8px 20px #be741633}.entry-card>.eyebrow{margin-bottom:12px;display:block}.entry-card h1{color:var(--hb-ink);margin:0 0 14px;font-size:38px;line-height:1.18}.entry-card h1 em{color:var(--hb-red);font-style:normal}.entry-card p{color:var(--hb-muted)}.entry-card label,.modal label,.task-edit-form label,.submission-form label{color:#5b4334}.entry-card input{background:#fff}.primary-button{color:#fff;background:linear-gradient(#e2a747,#c67d18);border:1px solid #c98524;box-shadow:inset 0 1px #fff6,0 8px 20px #bc701229}.primary-button:hover{background:linear-gradient(#e9b252,#b96f10);transform:translateY(-1px)}.secondary-button{color:var(--hb-ink);background:var(--hb-paper);border:1px solid #ad7e444d}.secondary-button:hover{color:var(--hb-red);background:#fff8ec;border-color:#9b3b2e61}.text-button,.icon-button{color:var(--hb-muted)}input,textarea,select{color:var(--hb-ink);background:#fffdf9;border-color:#ad7e4447}input:focus,textarea:focus,select:focus{border-color:#c58b42;box-shadow:0 0 0 3px #d59f4d24}.admin-shell,.student-shell{background:var(--hb-cream)}.topbar,.student-header{color:var(--hb-ink);border-bottom:1px solid var(--hb-line);background:#fffaf2f5;box-shadow:0 8px 30px #744b230f}.topbar>div:first-child{padding-left:44px;position:relative}.topbar>div:first-child:before{content:"✦";color:#fff;background:linear-gradient(145deg,#efbf62,#cb8522);border-radius:11px;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:50%;left:0;transform:translateY(-50%)}.topbar span,.student-header span{color:var(--hb-muted)}.admin-main{background:linear-gradient(#fffaf2,#f9efdf)}.metric,.learner-detail,.learner-list,.student-progress,.habit-panel,.student-task{background:var(--hb-paper);border-color:var(--hb-line);box-shadow:0 8px 28px #744b230b}.metric:before{background:linear-gradient(90deg, var(--hb-gold), var(--hb-red))}.metric span,.detail-head p,.empty-copy{color:var(--hb-muted)}.metric strong{color:var(--hb-ink);font-family:Songti SC,STSong,serif}.metric.alert strong{color:var(--hb-red)}.learner-list{border-color:var(--hb-line)}.learner-list h2{font-family:Songti SC,STSong,serif}.learner-list>button{color:var(--hb-ink);border-color:#0000}.learner-list>button:hover{background:#fff8ec}.learner-list>button.selected{box-shadow:inset 3px 0 var(--hb-red);background:#fff3df;border-color:#be741647}.learner-list>button span,.learner-list small{color:var(--hb-muted)}.eyebrow,.week-label,.habit-admin-head span,.deliverables span{color:var(--hb-red);letter-spacing:.05em}.progress-line{background:#f1e4d1}.progress-line span{background:linear-gradient(90deg, var(--hb-gold), var(--hb-red))}.current-admin-card{background:linear-gradient(135deg,#fff5e4,#fffaf1);border-color:#be741642}.current-admin-card>div>span{color:var(--hb-red)}.task-editor{border-color:var(--hb-line);box-shadow:none}.task-editor-summary,.student-task-head{color:var(--hb-ink);background:var(--hb-paper)}.task-editor-summary p,.task-side,.student-task-head span:first-child{color:var(--hb-muted)}.task-edit-form{border-color:var(--hb-line);background:#fff9ef}.feedback-snapshot,.teacher-note{border-left-color:var(--hb-gold);background:#fffdf8}.form-hint{color:#765634;background:#fff3dc}.modal-backdrop{background:#3b291f85}.modal{background:var(--hb-paper);border:1px solid var(--hb-line);box-shadow:0 30px 90px #3b291f40}.toast{background:var(--hb-ink);color:#fff}.status{color:#705849;background:#f2eadf;border:1px solid #ad7e4424}.status-进行中{color:#9a5d0c;background:#fff0d7}.status-已完成{color:var(--hb-green);background:#e8f0e8}.status-待老师反馈{color:var(--hb-red);background:#f8e3dc}.status-待学员补充{color:#85640b;background:#fff3ce}.status-暂缓{color:#765d50;background:#eee8e4}.habit-admin{border-color:var(--hb-line);background:#fff8ec}.habit-admin-groups>div{background:var(--hb-paper);border:1px solid #ad7e4421}.habit-admin-groups span{color:var(--hb-muted)}.habit-admin-groups span.habit-done{color:var(--hb-green)}.habit-group{border-color:var(--hb-line)}.habit-group h3{color:var(--hb-red)}.habit-row{border-color:#ad7e4433}.habit-row>button,.counter button{color:var(--hb-red);background:#fffdf8;border-color:#ad7e4459}.habit-row.done>button{color:var(--hb-green);background:#eaf2ec;border-color:#dce9df}.student-header{height:64px}.student-brand{font-family:Songti SC,STSong,serif;font-size:17px}.student-brand i{color:#fff;background:linear-gradient(145deg,#efbf62,#cb8522);border-radius:10px;place-items:center;width:32px;height:32px;margin-right:8px;font-style:normal;display:inline-grid}.student-main{width:min(820px,100%)}.student-welcome{color:var(--hb-ink);box-shadow:var(--hb-shadow);background:radial-gradient(circle at 90% 8%,#efbf6247,#0000 30%),linear-gradient(135deg,#fffdf8,#fff1d9);border:1px solid #ad7e4438}.student-welcome .eyebrow{color:var(--hb-red)}.student-welcome h1{color:var(--hb-muted)}.student-welcome h2{color:var(--hb-ink);font-size:30px}.student-welcome p{color:#6e594b}.due-line{color:#7e5022;background:#d897311f;border:1px solid #d897312e}.student-progress p,.habit-panel .section-heading p,.section-heading span{color:var(--hb-muted)}.student-task.highlighted{border-color:#be74167a;box-shadow:0 12px 35px #b56f191a}.timeline-dot{background:#cdbba9}.highlighted .timeline-dot{background:var(--hb-red);box-shadow:0 0 0 5px #f6ded7}.student-task-body{border-color:var(--hb-line)}.objective{color:#604d40}.step-list label{background:#fff8ee}.step-list input{accent-color:var(--hb-red)}.step-list label.checked{color:#687d71;background:#edf4ee}.deliverables>div{background:#fff7e9;border:1px solid #ad7e441f}.submission-form{border-color:var(--hb-line)}.error-box{color:#8c3027;background:#fae5df;border-color:#efc5bb}.spinner{border-color:#ead9c1;border-top-color:var(--hb-red)}@media (width<=820px){.entry-card h1{font-size:34px}.topbar>div:first-child{padding-left:40px}}@media (width<=520px){.entry-page{background:linear-gradient(160deg,#fffdf8,#f9ecd8);padding:16px}.entry-card{border-radius:22px;max-width:calc(100vw - 32px);padding:28px 24px}.brand-lockup{margin-bottom:28px}.entry-card h1{font-size:34px}.student-header{padding:0 14px}.student-header>span{display:none}.student-brand{font-size:15px}.student-welcome{border-radius:18px;padding:22px 20px}}
