:root{--green:#3268ed;--ink:#24334d;--muted:#7b899f;--line:#e9edf5;--bg:#f5f7fc;--blue:#3268ed}body{font-family:Inter,-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;font-size:14px;line-height:1.55;color:var(--ink)}button,input,select,textarea{border-color:#e1e7f1;border-radius:9px;min-height:39px}button{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:500;transition:background .18s,border-color .18s,box-shadow .18s}button:hover{filter:none;background:#eef3ff;border-color:#cedbff}button.primary{background:#3268ed;border-color:#3268ed;box-shadow:0 3px 6px #3268ed16}button.primary:hover{background:#2459db}button.link,.textlink{background:transparent;border:0;color:#3268ed;padding:3px 5px;min-height:30px;box-shadow:none}button.textlink{padding:0;font-weight:600;text-align:left;justify-content:flex-start;white-space:normal}button.link:hover,.textlink:hover{text-decoration:underline;background:#f5f8ff}button.danger{color:#ba5161}.svgicon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}aside{width:220px;padding:28px 16px 22px;border-right:1px solid #e8edf5;background:#fff;z-index:5}.brand{display:flex;align-items:center;gap:12px;padding:0 12px;text-decoration:none;color:#20365d;font-size:24px;letter-spacing:1px}.brandmark{background:#3268ed;color:white;border-radius:13px;width:43px;height:43px;display:grid;place-items:center;box-shadow:0 5px 13px #3268ed23;letter-spacing:-4px;font-size:25px;padding-right:4px}.brand small{font-size:9px;letter-spacing:1.3px;margin:1px 0 0;font-weight:500;color:#94a0b5}.school{margin:30px 8px 24px;padding:12px;border:1px solid #e6ecf5;background:#f9fbfe;color:#65748b;font-size:12px}.school span{color:#5275bb;background:#eaf0fe;border-radius:4px;font-size:10px}.navlabel{font-size:10px;color:#99a5b7;padding:0 18px;letter-spacing:1px;margin:6px 0 12px}.navlabel.lower{margin-top:34px}nav button{display:flex;align-items:center;justify-content:flex-start;width:100%;font-size:14px;gap:13px;padding:12px 17px;margin:5px 0;min-height:46px;color:#6c7b91;border-radius:10px}nav button span{font-size:14px;margin:0}nav button .svgicon{width:19px;height:19px}nav button.active{background:#edf3ff;color:#3268ed;font-weight:600}nav button i{width:5px;height:5px;background:var(--blue);border-radius:100%;margin-left:auto}.sidefoot{padding:20px 10px 0;font-size:12px;color:#53647d}.avatar{background:#edf2fb;color:#5780c5;width:38px;height:38px;padding:8px;text-align:center}main{margin-left:220px}header{height:72px;padding:0 34px;border-bottom:1px solid #e9edf5;background:#ffffffd9;font-size:12px}header span{color:#c4cbd7}header select{font-size:12px;min-width:130px;background:#f9fbfe}section{padding:22px 34px 36px;max-width:1840px;margin:auto}.notice{margin:18px 34px 0;padding:8px 14px;border:1px solid #e5ebf5;background:#f0f4fc;color:#70809a;display:flex;align-items:center;gap:10px;font-size:11px;flex-wrap:wrap}.notice button{font-size:11px;min-height:26px;padding:3px 8px;background:#ffffffb3}.notice #personalstatus{margin-right:auto}.welcomehero{display:flex;justify-content:space-between;align-items:center;background:linear-gradient(112deg,#e6f1ff,#edf1fe 60%,#e9e7fc);padding:28px 32px;border-radius:18px;margin-bottom:23px;overflow:hidden;min-height:160px;position:relative;border:1px solid #e3eafb}.eyebrow{font-size:10px;letter-spacing:2px;color:#7895bc;margin-bottom:13px}.welcomehero h1{font-size:28px;letter-spacing:.3px;margin-bottom:10px;color:#233f65}.welcomehero p{font-size:12px;color:#7189a9}.heroart{position:relative;display:flex;align-items:center;gap:20px;background:#ffffff89;transform:rotate(-5deg);border:3px solid white;border-radius:16px;padding:13px 22px;color:#5080de;box-shadow:0 8px 25px #839ad51b;margin-right:12px}.heroart>.svgicon{width:56px;height:56px;stroke-width:1.1}.heroart>span{font-size:35px;font-weight:700;line-height:1.1}.heroart small{font-size:10px;color:#91a4c4;margin-top:6px}.heading{margin:8px 0 24px}.heading h1{font-size:25px;color:#253951;letter-spacing:0}.heading p{font-size:12px;color:#8895a8}.heading .toolbar{margin:0}.stats{gap:16px;margin-bottom:22px}.stat,.stat:first-child{background:#fff;color:var(--ink);padding:21px 23px;border:1px solid var(--line);border-radius:13px;text-align:left;display:block;box-shadow:0 3px 10px #283e6c03}.statlabel{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#7e8ba0;gap:8px}.statlabel .svgicon{color:#5e8ff2;background:#edf4ff;width:32px;height:32px;padding:7px;border-radius:9px}.stat:nth-child(2) .svgicon{color:#9780da;background:#f3effd}.stat:nth-child(3) .svgicon{color:#d5a163;background:#fff6e9}.stat:nth-child(4) .svgicon{color:#55acb2;background:#eaf7f8}.stat .num{font-size:28px;margin:10px 0 5px;letter-spacing:-.7px;font-weight:650;font-variant-numeric:tabular-nums}.stat small,.stat:first-child small{font-size:10px;color:#97a1b2}.stat .num span{font-size:12px;margin-left:7px}.quickbar{display:flex;align-items:center;gap:0;border:1px solid var(--line);background:white;border-radius:12px;margin-bottom:24px;padding:11px 0}.quickbar button{flex:1;border:0;border-radius:0;font-size:12px;border-right:1px solid var(--line);background:transparent;color:#586e91;min-height:35px}.quickbar button:last-child{border:0}.quickbar .svgicon{color:#6590e8;width:19px}.quickbar button:hover{background:#f7faff}.grid{grid-template-columns:minmax(0,2.2fr) minmax(270px,1fr);gap:22px}.card{border-radius:14px;border-color:var(--line);box-shadow:0 3px 12px #24416e02;margin-bottom:22px}.cardhead{padding:18px 22px;gap:12px}.cardhead h2{font-size:14px;font-weight:650;display:flex;gap:10px;align-items:center}.cardhead>small{font-size:11px}.cardhead .tag{white-space:nowrap}th{background:#fafbfe;padding:13px 20px;color:#98a2b3;font-size:11px}td{font-size:12px;padding:16px 20px;border-color:#f0f3f8}td small{font-size:11px;margin-top:2px}.rowactions{display:flex;gap:3px;flex-wrap:wrap;max-width:275px}.rowactions button{font-size:11px;white-space:nowrap}tr:hover td{background:#fcfdff}.tag{background:#eaf2ff;color:#6086ce;font-size:10px;border-radius:5px;padding:4px 7px;line-height:1.4}.tag.gray{background:#f0f3f7;color:#98a3b4}.tag.amber{background:#fff3e5;color:#c79a5a}.tasklist{padding:0 14px}.tasklist>button{width:100%;border:0;background:none;border-radius:0;border-bottom:1px solid #f0f3f8;padding:16px 4px;justify-content:flex-start;gap:12px;text-align:left}.tasklist>button:last-child{border-bottom:0}.tasklist>button>span:nth-child(2){flex:1}.tasklist b{font-size:12px;font-weight:500}.tasklist small{font-size:10px;line-height:1.7;margin-top:4px}.tasklist>button>.svgicon{width:14px;color:#b9c7da}.taskicon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#eff3fd;color:#7795d8;flex-shrink:0}.taskicon.amber{background:#fff4e8;color:#ccaa73}.taskicon .svgicon{width:17px}.listitem{padding:17px 22px;border-color:#f0f3f8;font-size:12px}.listitem small{font-size:10px}.steps{display:grid;grid-template-columns:repeat(4,1fr);padding:24px 20px;gap:12px}.steps>div>span{display:block;color:#b4c7e9;font-size:22px;font-weight:600;margin-bottom:7px}.steps b{font-size:12px;font-weight:500}.steps small{font-size:10px;margin-top:4px}.module-tabs{display:flex;gap:8px;border-bottom:1px solid #e2e8f2;margin-bottom:24px;padding-bottom:8px;overflow:auto}.module-tabs button{background:transparent;border:0;white-space:nowrap;color:#8490a3;font-size:12px;border-radius:8px;padding:9px 15px;min-height:39px}.module-tabs button.selected{color:#3268ed;background:#eaf1ff;font-weight:600}.module-tabs .svgicon{width:17px;height:17px}.segments{padding:4px;background:#edf1f8;border-radius:10px;gap:2px}.segments button{border:0;background:transparent;min-height:32px;padding:5px 18px;font-size:12px;color:#8190a7}.segments button.primary{background:#fff;color:#3268ed;box-shadow:0 2px 5px #526c9810}.schedulebar{gap:15px}.weeknav{gap:7px;align-items:center}.weeknav button{min-width:36px;font-size:14px;padding:5px 10px}.weeknav select,.weeknav input{font-size:11px;min-width:120px}.weekgrid{min-width:980px;grid-template-columns:repeat(7,minmax(140px,1fr))}.weekcol{min-height:420px;border-color:#edf1f7}.weekday{background:#fff;min-height:100px;text-align:center;padding:15px 10px;color:#8e9bb0;display:flex;flex-direction:column;align-items:center;gap:2px;border-color:#edf1f7;font-size:11px}.weekday strong{font-size:22px;margin:0;color:#55657f;line-height:1.6;width:36px;border-radius:50%}.weekday small{font-size:9px;color:#9eabbc}.istoday .weekday{background:#f4f8ff}.istoday .weekday strong{background:#3268ed;color:white}.istoday .weekbody{background:#fbfdff}.weekbody{padding:10px 8px;min-height:320px}.lessoncard{padding:11px 10px;border:0;border-left:3px solid #80a9f4;background:#eff5ff;border-radius:8px;margin-bottom:11px}.lessoncard.tone-1{background:#f4f0fd;border-color:#b5a1e8}.lessoncard.tone-2{background:#edf9f6;border-color:#7ec2b3}.lessoncard.completed{opacity:.72}.lessoncard.cancelled{background:#f2f3f6;border-color:#c4cbd4;opacity:.65}.lesson-time{display:flex;align-items:center;gap:5px;color:#4d76ba;font-size:12px;font-weight:650}.lesson-time .svgicon{width:12px;height:12px}.lesson-time small{margin-left:auto;font-size:9px}.lesson-title{background:none;border:0;color:#3d5a84;font-size:12px;font-weight:650;padding:11px 0 7px;text-align:left;line-height:1.6;justify-content:flex-start;min-height:0}.lessoncard p{font-size:10px;color:#94a4b9}.lessoncard .textlink{font-size:10px;min-height:20px;color:#7b92b4;font-weight:400}.lessoncard .studentnames{margin-top:3px;font-size:10px;color:#8b9bb1;max-height:54px;overflow:auto}.lessonbottom{margin-top:12px;justify-content:flex-start;gap:3px;flex-wrap:wrap}.lessonbottom .tag{font-size:9px;background:#ffffff9e}.lessonbottom button{font-size:10px;padding:1px 3px;min-height:22px}.dayempty{padding:60px 5px;color:#b8c3d3;font-size:11px}.dayempty small{font-size:9px;margin-top:5px}.filter-card{background:white;border:1px solid var(--line);border-radius:13px;padding:17px 20px;margin-bottom:22px}.toolbar{align-items:center;gap:10px}.toolbar label{margin:0;font-size:11px}.toolbar select,.toolbar input{font-size:12px}.filter-card .toolbar{margin-bottom:12px}.filter-card .toolbar:last-child{margin-bottom:0}.filter-card .toolbar select{max-width:190px}.filter-card .toolbar input{min-width:200px}.searchfield{position:relative;display:flex;align-items:center}.searchfield>.svgicon{position:absolute;left:12px;color:#a7b3c6;width:16px}.searchfield>input{padding-left:37px;background:white;min-width:245px}.person{display:flex;align-items:center;gap:11px}.personavatar{width:37px;height:37px;border-radius:11px;background:#eaf2ff;color:#6e98dd;display:grid;place-items:center;font-size:14px;flex-shrink:0}.personavatar.purple{background:#f1edfc;color:#a08ad1}.personavatar.large{width:60px;height:60px;font-size:23px;border-radius:17px}.pagination{display:flex;justify-content:flex-end;align-items:center;gap:10px;color:#93a0b2;font-size:11px}.pagination button{font-size:11px;min-height:32px}.backbar{display:flex;gap:12px;margin:0 0 12px}.backbar button{font-size:12px}.profilehero{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px;padding:24px;border:1px solid #e4eafb;border-radius:15px;background:linear-gradient(120deg,#edf5ff,#f5f4fd)}.profileidentity{display:flex;align-items:center;gap:18px;min-width:0}.profilehero h1{font-size:24px;margin-bottom:5px;letter-spacing:0}.profilehero p{font-size:12px;color:#7d92b1}.profilehero small{font-size:11px;max-width:650px;margin-top:5px;overflow-wrap:anywhere}.profilehero .toolbar{margin:0;justify-content:flex-end}.profilehero .toolbar button{font-size:11px;min-height:34px;padding:7px 10px}.teachergrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.teacher-card{border:1px solid var(--line);background:white;border-radius:14px;overflow:hidden}.teacher-head{display:flex;align-items:center;justify-content:space-between;padding:22px;gap:12px}.teacher-head h2{font-size:15px}.teacher-head small{font-size:11px}.teacher-numbers{display:grid;grid-template-columns:1fr 1fr;padding:4px 24px 16px;gap:10px}.teacher-numbers strong{font-size:24px;font-weight:600;color:#344b70;font-variant-numeric:tabular-nums}.teacher-numbers em{font-size:11px;font-style:normal;margin-left:6px;color:#8e9fb8}.teacher-numbers small{font-size:10px}.teacher-actions{display:flex;justify-content:space-between;padding:10px 19px;background:#fcfdff}.teacher-actions button{font-size:11px}.teacher-card .listitem{padding:9px 24px}.info-strip{background:#ecf2fc;color:#8090ac;padding:12px 16px;border-radius:9px;font-size:11px;line-height:1.8;margin-bottom:22px}.empty{font-size:12px;color:#9caabd;padding:48px 25px}dialog{max-height:88vh;overflow:auto;border:1px solid #edf1f7;border-radius:18px;box-shadow:0 35px 100px #273b6d35;padding:28px;width:560px;color:var(--ink)}dialog::backdrop{background:#21334f55;backdrop-filter:blur(5px)}dialog h2{color:#324867}dialog p{font-size:12px;margin-bottom:10px}dialog label{font-size:12px;color:#788aa6}#fields input,#fields select,#fields textarea{font-size:13px;min-height:42px}#fields .settlelist input[type=checkbox]{width:17px;min-height:17px;margin:0;flex-shrink:0}.settlelist label{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding:9px 0}.settlelist label span{flex:1;font-size:11px}.settlelist label b{font-size:12px}.attendance-person{border:1px solid #eaf0f8;padding:0 16px 15px;border-radius:10px;background:#fafcff;margin:15px 0}.actions{border-top:1px solid #edf1f7;padding-top:18px}.actions button{min-width:90px}#toast{background:#2a405e;border-radius:10px;z-index:110;max-width:90vw;box-shadow:0 8px 25px #22355023}footer{font-size:10px;color:#acb8c9;padding:0 34px 24px}input:focus,select:focus,textarea:focus{outline:2px solid #bad1ff;outline-offset:1px}button:focus-visible{outline:2px solid #80a7f5;outline-offset:2px}h2 small{font-size:10px}.two{display:block}
@media(min-width:1600px){section{padding:30px 44px}header{padding:0 44px}.notice{margin:20px 44px 0}.weekbody{padding:13px}.lessoncard{padding:14px}.lesson-title{font-size:13px}}
@media(max-width:1220px){aside{width:190px;padding:24px 12px}main{margin-left:190px}section{padding:22px}.notice{margin:16px 22px 0}header{padding:0 22px}.grid{grid-template-columns:1fr}.teachergrid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{gap:12px}.stat{padding:17px!important}.stat .num{font-size:25px}.profilehero{align-items:flex-start;flex-direction:column}.profilehero .toolbar{justify-content:flex-start}.heroart{margin:0}.statlabel{font-size:11px}.statlabel .svgicon{width:28px;height:28px}}
@media(max-width:850px){.stats{grid-template-columns:repeat(2,1fr)}.heroart{display:none}.welcomehero{padding:24px;min-height:150px}.welcomehero h1{font-size:24px}.heading{align-items:flex-start;flex-direction:column;gap:14px}.quickbar{flex-wrap:wrap;justify-content:flex-start;padding:8px}.quickbar button{flex:1 1 30%;border:0}.teachergrid{grid-template-columns:1fr}.weeknav{width:100%}.steps{gap:10px}.steps small{font-size:9px}.filter-card .toolbar{gap:7px}.filter-card .toolbar label{display:none}}
@media(max-width:650px){aside{position:relative;width:100%;padding:15px 14px 0;border-right:0}.brand{font-size:21px;padding:0 4px;gap:9px}.brandmark{width:34px;height:34px;border-radius:10px;font-size:21px}.brand small{display:block;font-size:7px}.school,.sidefoot,.navlabel{display:none}nav{display:flex;gap:4px;margin:15px 0 0;overflow-x:auto;padding-bottom:8px}nav button{flex:0 0 auto;width:auto;min-height:38px;padding:8px 11px;gap:6px;border-radius:8px;margin:0}nav button span{display:inline;font-size:11px}nav button .svgicon{width:15px;height:15px}nav button i{display:none}main{margin:0}header{height:52px;padding:0 17px;font-size:10px}header span{margin:0 7px}header select{font-size:10px;min-height:30px;padding:5px 8px;min-width:100px}.notice{margin:12px 14px 0;padding:7px 10px;font-size:10px;gap:5px}.notice button{font-size:9px}section{padding:18px 14px 25px}.welcomehero{padding:22px 19px;min-height:140px;margin-bottom:16px}.eyebrow{font-size:8px;letter-spacing:1px}.welcomehero h1{font-size:21px}.welcomehero p{font-size:10px}.stats{gap:10px;margin-bottom:17px}.stat,.stat:first-child{padding:15px!important;border-radius:11px}.statlabel{font-size:10px}.statlabel .svgicon{width:26px;height:26px;padding:6px}.stat .num{font-size:24px}.stat small,.stat:first-child small{font-size:9px}.quickbar{margin-bottom:18px}.quickbar button{font-size:11px;gap:6px}.quickbar .svgicon{width:17px}.card{margin-bottom:17px;border-radius:12px}.cardhead{padding:15px}.cardhead h2{font-size:13px}.cardhead button{font-size:10px;padding:4px;min-height:30px}th,td{padding:12px 14px;font-size:11px}.grid{gap:0}.heading h1{font-size:23px}.heading p{font-size:11px}.heading .toolbar{gap:7px}.heading button{font-size:11px;padding:8px 10px}.module-tabs{gap:3px;padding-bottom:7px;margin-bottom:19px}.module-tabs button{padding:8px 11px;font-size:11px;gap:5px;min-height:36px}.module-tabs .svgicon{width:15px}.weekgrid{grid-template-columns:repeat(7,155px);min-width:1085px}.weeknav{gap:5px;margin-top:3px}.weeknav input,.weeknav select{min-width:0;font-size:10px;padding:7px;flex:1}.weeknav input{flex-basis:115px}.weeknav button{min-width:28px;font-size:12px}.segments button{font-size:11px;padding:4px 16px}.profilehero{padding:18px;gap:17px}.profileidentity{gap:12px}.profilehero h1{font-size:22px}.profilehero p{font-size:11px}.profilehero small{font-size:10px}.personavatar.large{width:49px;height:49px}.filter-card{padding:13px}.searchfield{width:100%}.searchfield input{width:100%;min-width:0!important}.filter-card .toolbar select{max-width:100%;flex:1;font-size:10px}.pagination{font-size:10px}.info-strip{font-size:10px}.steps{grid-template-columns:repeat(2,1fr);gap:22px;padding:22px}.steps>div>span{font-size:21px}.teacher-head{padding:20px}.teacher-numbers{padding:0 22px 15px}.backbar{margin-bottom:10px}dialog{padding:22px;max-width:94vw}.modalhead h2{font-size:18px}footer{padding:0 15px 20px}.toolbar.inset{padding:12px;display:grid;grid-template-columns:1fr 1fr}.toolbar.inset label{margin:0}.toolbar input{min-width:0}.toolbar>label{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
#welcome{position:fixed;inset:0;background:#f3f7fbe8;backdrop-filter:blur(6px);z-index:100;display:grid;place-items:center;padding:22px}.welcome-card{width:100%;max-width:480px;background:white;border:1px solid #e3eaf5;padding:32px;border-radius:20px;box-shadow:0 25px 80px #35517715}.welcome-card h1,.welcome-card h2{font-size:23px}.welcome-card p{font-size:13px;margin:18px 0 22px}.welcome-card button{margin:0 10px 12px 0}.welcome-card small{font-size:11px}.welcome-card input{max-width:100%}
.lesson-title{font-size:13px}.lesson-time{font-size:13px}.lessoncard p,.lessoncard .textlink,.lessoncard .studentnames{font-size:11px}.lessonbottom button{font-size:11px}.lessoncard .lessonbottom .tag{font-size:10px}.attendancefilters input{min-width:140px}.brand small{letter-spacing:.8px;font-size:8px;white-space:nowrap}.card>.info-strip{margin:16px 20px}.statlabel{color:#718198}td{font-size:13px}.lesson-title:hover{background:transparent;text-decoration:underline}
.person .textlink{white-space:nowrap}.person>div{min-width:70px}
@media(max-width:650px){nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;overflow:visible}nav button{min-width:0;flex-direction:column;gap:4px;padding:7px 1px;min-height:49px}nav button span{font-size:10px;letter-spacing:0}nav button .svgicon{width:17px;height:17px}.scroll::before{content:'左右滑动查看完整表格';display:block;font-size:9px;color:#a1aec1;padding:8px 14px;background:#fafcff;position:sticky;left:0}}
