:root{color:#17201b;font-synthesis:none;text-rendering:optimizelegibility;background:#f6f3ee;font-family:Microsoft YaHei,PingFang SC,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}.loginPage{background:#f6f3ee;place-items:center;min-height:100vh;padding:24px;display:grid}.loginPanel{background:#fff;border:1px solid #ded8cc;border-radius:8px;gap:16px;width:min(380px,100%);padding:28px;display:grid;box-shadow:0 18px 42px #10261e1f}.loginPanel .brandMark{width:50px;height:50px}.loginPanel h1,.loginPanel p{margin:0}.loginPanel h1{font-size:24px}.loginPanel p{color:#6c7a72}.loginPanel label{color:#56645d;gap:7px;font-size:13px;display:grid}.loginPanel input{color:#10261e;border:1px solid #cfd8d2;border-radius:8px;width:100%;padding:12px}.loginError{color:#b42318;background:#fff2f2;border:1px solid #ffc4c4;border-radius:8px;padding:10px 12px;font-size:13px}.app{grid-template-columns:232px 1fr;min-height:100vh;display:grid}.sidebar{color:#f8fbf4;background:#10261e;flex-direction:column;gap:24px;padding:22px 16px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brandMark{color:#10261e;background:#d7ef6b;border-radius:8px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.brand h1,.brand p,.topbar h2,.topbar p{margin:0}.brand h1{font-size:19px}.brand p{color:#a9b9b1;margin-top:3px;font-size:13px}.syncStatus{border-radius:8px;padding:9px 10px;font-size:12px;line-height:1.35}.syncStatus.online{color:#e7f7ad;background:#d7ef6b24}.syncStatus.local{color:#ffd7b0;background:#fff0dd1f}nav{gap:8px;display:grid}nav button,.importBox,.primaryButton,.iconButton.textButton{border:0;border-radius:8px;align-items:center;gap:9px;display:flex}nav button{color:#dce7df;text-align:left;background:0 0;padding:12px}nav button.active,nav button:hover{color:#fff;background:#244437}.importBox{color:#10261e;background:#f0efe1;justify-content:center;margin-top:0;padding:13px 12px;font-weight:700}.importBox input{display:none}.dataTools{gap:8px;display:grid}.sidebarTools{gap:8px;margin-top:auto;display:grid}.dataTools button,.dataTools label{color:#f8fbf4;background:#ffffff0f;border:1px solid #f0efe142;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;font-weight:700;display:flex}.dataTools input{display:none}.intakeNavCount{color:#10261e;background:#d7ef6b;border-radius:8px;place-items:center;min-width:20px;height:20px;margin-left:auto;padding:0 5px;font-size:11px;font-weight:800;display:inline-grid}.workspace{min-width:0;padding:24px}.topbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px;display:flex}.eyebrow{color:#6f7d75;font-size:13px}.topbar h2{margin-top:5px;font-size:28px}.stats{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.salaryBreakdown{color:#68736d;text-align:right;flex-basis:100%;font-size:11px;line-height:1.4}.stat{background:#fff;border:1px solid #e1ddd2;border-radius:8px;min-width:112px;padding:12px 14px}.stat span,.field span{color:#69766f;margin-bottom:5px;font-size:12px;display:block}.stat strong{font-size:20px}.notice{background:#fff8d7;border:1px solid #ead781;border-radius:8px;justify-content:space-between;margin-bottom:14px;padding:11px 14px;display:flex}.notice button{background:0 0;border:0;font-size:20px}.importDiagnostics{margin-top:8px}.importDiagnostics summary{cursor:pointer;font-weight:600}.importDiagnostics ul{margin:6px 0 0;padding-left:20px}.panel{background:#fff;border:1px solid #e1ddd2;border-radius:8px;padding:18px}.toolbar{flex-wrap:wrap;align-items:end;gap:14px;margin-bottom:18px;display:flex}.toolbar.right{justify-content:flex-end}.checkField{color:#284137;align-items:center;gap:7px;min-height:40px;font-weight:700;display:flex}.checkField input{min-height:auto}.recentStrip{background:#f8faf5;border:1px solid #e2e5dd;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin:-4px 0 16px;padding:10px;display:flex}.recentStrip strong{color:#4f5c55;font-size:13px}.recentStrip button{color:#1d3b30;background:#fff;border:1px solid #cfd8d0;border-radius:8px;padding:7px 9px;font-size:13px}.field{gap:4px;display:grid}input,select,textarea{color:#17201b;background:#fff;border:1px solid #cfd8d0;border-radius:8px;min-height:40px;padding:8px 10px}textarea{resize:vertical;min-height:82px;line-height:1.45}.searchBox{border:1px solid #cfd8d0;border-radius:8px;align-items:center;gap:8px;min-width:280px;padding:0 10px;display:flex}.searchBox input{border:0;outline:0;width:100%;padding-left:0}.wideSearch{min-width:380px}.lookupSummary{flex-wrap:wrap;gap:10px;display:flex}.lookupGrid{gap:18px;display:grid}.filterHint{color:#657169;margin:-6px 0 16px;font-size:13px}.lookupSection{min-width:0}.lookupSection h3{margin:0 0 10px;font-size:18px}.teacherGrid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;display:grid}.teacherColumn{background:#fbfbf8;border:1px solid #e2e5dd;border-radius:8px;min-height:180px;padding:12px}.teacherColumn h3,.teacherColumn p,.lessonCard h4,.lessonCard p,.teacherStatus h3,.teacherStatus p{margin:0}.teacherColumn h3{font-size:18px}.teacherColumn>p{color:#6b766f;margin-top:4px;font-size:13px}.lessonStack{gap:10px;margin-top:12px;display:grid}.lessonCard{background:#fff;border-left:4px solid #2a8067;border-radius:8px;padding:10px;box-shadow:0 2px 12px #12231b12}.lessonCard.conflict{background:#fffaf8;border-left-color:#d33f2f}.lessonHead,.lessonMeta{justify-content:space-between;align-items:center;gap:8px;display:flex}.cardActions{align-items:center;gap:6px;display:flex}.lessonHead strong{color:#21634f}.lessonCard h4{margin-top:7px;font-size:16px}.lessonCard p{color:#59655d;margin-top:5px;font-size:13px;line-height:1.4}.lessonCard .lessonDate{color:#7a857e;font-size:12px}.courseLine{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.courseProgress{color:#1f604e;background:#edf7f2;border:1px solid #bfd6cb;border-radius:8px;align-items:center;min-height:20px;padding:1px 7px;font-size:12px;font-weight:800;display:inline-flex}.lessonMeta{color:#7a857e;margin-top:10px;font-size:12px}.emptySlot{color:#748079;border:1px dashed #cbd6cd;border-radius:8px;place-items:center;min-height:96px;display:grid}.entryForm{grid-template-columns:repeat(3,minmax(180px,1fr));gap:14px;display:grid}.timePicker{gap:8px;display:grid}.timePresets{flex-wrap:wrap;gap:7px;display:flex}.timePresets button,.otherButton,.otherBadge,.slotBadge{color:#284137;background:#f7faf6;border:1px solid #cfd8d0;border-radius:8px;justify-content:center;align-items:center;min-height:32px;padding:5px 10px;font-size:13px;font-weight:700;display:inline-flex}.timePresets button.selected{color:#fff;background:#1f745d;border-color:#1f745d}.timePresets button.selectedOther,.otherButton.selectedOther{color:#8b4a16;background:#fff0dd;border-color:#efb36d}.otherBadge{color:#7a6b32;background:#fff7d8;border-color:#ead781}.otherBadge.active,.slotBadge{color:#8b4a16;background:#fff0dd;border-color:#efc091}.slotBadge{min-height:22px;margin-left:8px;padding:2px 7px;font-size:12px}.categoryBadge{color:#1f745d;background:#edf8f2;border:1px solid #b8d9cc;border-radius:8px;align-items:center;min-height:22px;margin-left:6px;padding:2px 7px;font-size:12px;font-weight:700;display:inline-flex}.categoryBadge.experience{color:#93611c;background:#fff7df;border-color:#e6c486}.categoryBadge.unmatched{color:#a43c31;background:#fff0ee;border-color:#e4b4b0}.conflictBadge{color:#b13a27;background:#fff0ee;border:1px solid #ed9b90;border-radius:8px;align-items:center;min-height:22px;margin-left:6px;padding:2px 7px;font-size:12px;display:inline-flex}.conflictNote{color:#9d2f20;background:#fff0ee;border-radius:8px;margin-top:9px;padding:7px 8px;font-size:12px;line-height:1.4}.compactTime{min-width:430px}.quickEntry{border-bottom:1px solid #ebe7dd;grid-template-columns:minmax(320px,1fr) 160px;align-items:end;gap:14px;margin-bottom:18px;padding-bottom:18px;display:grid}.quickEntry textarea{width:100%}.quickButton{min-height:82px}.entryForm .field:nth-of-type(6),.entryForm .field:nth-of-type(9){grid-column:span 2}.primaryButton{color:#fff;background:#1f745d;justify-content:center;align-self:end;min-height:42px;padding:10px 15px;font-weight:700}.primaryButton.compact,.iconButton.textButton{min-height:40px}.iconButton{color:#19362c;background:#edf3ee;border:0;border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.iconButton.danger{color:#b13a27;background:#fff0ee}.iconButton.textButton{background:#edf3ee;width:auto;padding:8px 13px}.availabilityList,.teacherSettings{gap:10px;display:grid}.teacherStatus,.teacherSetting{border:1px solid #e1ddd2;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:72px;padding:12px 14px;display:flex}.teacherStatus.available{background:#f0faee;border-color:#b9dfb4}.teacherStatus.busy{background:#fff4ef;border-color:#edc5b3}.teacherStatus strong{text-align:center;min-width:54px}.teacherStatus p{color:#657169;margin-top:4px}.tableWrap{overflow-x:auto}.salaryRules{flex-wrap:wrap;gap:8px;margin:-4px 0 14px;display:flex}.salaryRules span{color:#284137;background:#f7faf6;border:1px solid #d6ded6;border-radius:8px;padding:7px 10px;font-size:13px;font-weight:700}.unmatchedPanel{border-top:1px solid #ebe7dd;margin-top:18px;padding-top:16px}.unmatchedPanel h3{margin:0 0 10px;font-size:18px}table{border-collapse:collapse;width:100%}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #e6e2d8;padding:12px 10px}th{color:#68756d;background:#fbfaf5;font-size:13px}.totalRow td{color:#12352a;background:#f7faf6;font-weight:800}.studentListCell{white-space:normal;max-width:360px;line-height:1.6}.statusBadge{border-radius:8px;align-items:center;min-height:26px;padding:3px 9px;font-size:13px;font-weight:700;display:inline-flex}.statusBadge.success{color:#1d6b45;background:#eaf7ef}.statusBadge.pending{color:#a45b12;background:#fff3e4}.statusBadge.contacted{color:#245aa8;background:#eaf2ff}.statusBadge.invalid{color:#72766f;background:#f1f1ef}.intakeToolbar{justify-content:space-between;align-items:end;gap:12px;margin-bottom:14px;display:flex}.intakeToolbar select{min-width:180px}.intakeSummary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.intakeList{gap:10px;display:grid}.intakeCard{background:#fbfbf8;border:1px solid #e1ddd2;border-radius:8px;padding:14px}.intakeHead,.intakeActions{justify-content:space-between;align-items:center;gap:10px;display:flex}.intakeHead h3,.intakeHead p,.intakeNote{margin:0}.intakeHead h3{font-size:18px}.intakeHead p{color:#738079;margin-top:3px;font-size:12px}.intakeDetails{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:13px;display:grid}.intakeDetails>div{background:#fff;border:1px solid #e5e3da;border-radius:8px;min-width:0;padding:10px}.intakeDetails span,.intakeDetails strong,.intakeDetails a{display:block}.intakeDetails span{color:#738079;margin-bottom:4px;font-size:12px}.intakeDetails strong,.intakeDetails a{color:#173b2f;overflow-wrap:anywhere;font-size:14px;line-height:1.45;text-decoration:none}.intakeNote{color:#56635c;margin-top:10px;font-size:13px;line-height:1.55}.intakeActions{flex-wrap:wrap;justify-content:flex-end;margin-top:12px}.dangerText{color:#b13a27;background:#fff0ee}.intakeEmpty{color:#748079;border:1px dashed #cbd6cd;border-radius:8px;place-items:center;min-height:120px;display:grid}.teacherSetting{grid-template-columns:minmax(140px,1fr) 180px 100px 132px 80px 38px;justify-content:start;align-items:center;display:grid}.modalBackdrop{z-index:10;background:#0d1c1657;place-items:center;padding:20px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.editModal{background:#fff;border:1px solid #e1ddd2;border-radius:8px;width:min(820px,100%);max-height:calc(100vh - 40px);padding:18px;overflow-y:auto;box-shadow:0 18px 60px #12231b3d}.modalHead,.modalActions{justify-content:space-between;align-items:center;gap:12px;display:flex}.modalHead h3{margin:0;font-size:20px}.modalHead button{background:0 0;border:0;font-size:24px}.editGrid{grid-template-columns:repeat(3,minmax(160px,1fr));gap:14px;margin:16px 0;display:grid}.editGrid .field:nth-of-type(7),.editGrid .field:nth-of-type(9){grid-column:span 2}.smsModal{width:min(560px,100%)}.smsSummary{color:#284137;gap:6px;margin:16px 0 12px;display:grid}.smsSummary p{margin:0}.smsPreview{color:#19362c;background:#fbfaf6;border:1px solid #e1ddd2;border-radius:8px;margin-bottom:18px;padding:12px;line-height:1.7}.modalActions{justify-content:flex-end}.toggle{align-items:center;gap:6px;display:flex}.toggle input{min-height:auto}@media (max-width:860px){body{overflow-x:hidden}.app{width:100%;display:block}.sidebar{padding:12px;padding-top:max(12px, env(safe-area-inset-top));grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid;position:relative}.brand{gap:9px;min-width:0}.brandMark{flex:0 0 36px;width:36px;height:36px}.brand h1{white-space:nowrap;font-size:17px}.brand p{display:none}.syncStatus{text-overflow:ellipsis;white-space:nowrap;align-self:center;max-width:148px;padding:6px 8px;overflow:hidden}nav{scrollbar-width:none;-webkit-overflow-scrolling:touch;grid-column:1/-1;gap:6px;margin:0 -12px;padding:0 12px 3px;display:flex;overflow-x:auto}nav::-webkit-scrollbar{display:none}.sidebarTools::-webkit-scrollbar{display:none}.recentStrip::-webkit-scrollbar{display:none}nav button{white-space:nowrap;flex:none;justify-content:center;min-height:42px;padding:9px 12px}.sidebarTools{scrollbar-width:none;-webkit-overflow-scrolling:touch;grid-column:1/-1;gap:6px;margin-top:0;margin-left:-12px;margin-right:-12px;padding:0 12px 2px;display:flex;overflow-x:auto}.importBox,.dataTools button,.dataTools label{white-space:nowrap;flex:none;min-height:40px;padding:8px 11px;font-size:13px}.dataTools{flex:none;gap:6px;display:flex}.workspace{width:100%;min-width:0;padding:12px;padding-bottom:max(18px, env(safe-area-inset-bottom))}.topbar{flex-direction:column;align-items:stretch;gap:12px;margin-bottom:12px}.topbar h2{margin-top:3px;font-size:23px;line-height:1.2}.eyebrow{font-size:12px}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.stat{min-width:0;padding:10px}.stat span{min-height:17px;margin-bottom:3px;font-size:11px;line-height:1.25}.stat strong{white-space:nowrap;font-size:20px;line-height:1.15}.salaryBreakdown{text-align:left;grid-column:1/-1;line-height:1.5}.panel{padding:12px}.toolbar,.toolbar.right{grid-template-columns:minmax(0,1fr);justify-content:stretch;align-items:stretch;gap:10px;margin-bottom:12px;display:grid}.toolbar .field,.toolbar .field input,.toolbar .field select,.toolbar .field textarea{width:100%;min-width:0}input,select,textarea{font-size:16px}.checkField{min-height:36px;padding:0 2px}.checkField input{flex:none;width:auto}.recentStrip{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;margin:0 0 12px;overflow-x:auto}.recentStrip strong,.recentStrip button{white-space:nowrap;flex:none}.teacherGrid{grid-template-columns:minmax(0,1fr);gap:10px}.teacherColumn{background:#f8faf5;min-width:0;min-height:0;padding:0;overflow:hidden}.teacherColumn h3{padding:12px 12px 0;font-size:17px}.teacherColumn>p{border-bottom:1px solid #e2e5dd;margin-top:3px;padding:0 12px 10px}.lessonStack{gap:8px;margin-top:0;padding:10px}.lessonCard{min-width:0;box-shadow:none;border:1px solid #dfe5df;border-left:4px solid #2a8067;padding:10px}.lessonCard.conflict{border-left-color:#d33f2f}.lessonHead{align-items:flex-start}.lessonHead strong{flex-wrap:wrap;align-items:center;gap:5px;min-width:0;line-height:1.45;display:flex}.cardActions{flex:none}.lessonMeta{flex-wrap:wrap}.emptySlot{background:#fff;min-height:58px}.intakeToolbar{flex-direction:column;align-items:stretch}.intakeToolbar select,.intakeToolbar .iconButton.textButton{width:100%}.intakeSummary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.intakeCard{padding:12px}.intakeDetails{grid-template-columns:minmax(0,1fr);gap:7px}.intakeActions{grid-template-columns:minmax(0,1fr);display:grid}.intakeActions button{width:100%}.entryForm,.quickEntry,.editGrid,.teacherSetting{grid-template-columns:1fr}.entryForm .field:nth-of-type(6),.entryForm .field:nth-of-type(9),.editGrid .field:nth-of-type(7),.editGrid .field:nth-of-type(9){grid-column:span 1}.searchBox,.wideSearch{width:100%;min-width:0}.lookupSummary{width:100%}.compactTime{width:100%;min-width:0}}@media (max-width:390px){.sidebar{padding-left:10px;padding-right:10px}nav,.sidebarTools{margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}.workspace,.panel{padding:10px}.stat{padding:9px 7px}.stat strong{font-size:18px}}
