.workbench-view{--wb-line:#e1e8ef;--wb-teal:#087f77;color:#182737}
.team-section{margin-bottom:28px}
.team-history{border-top:1px solid var(--line);padding-top:12px}
.team-history>summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600}
.course-link{display:block;width:100%;text-align:left;min-height:44px;background:none;border:0;color:inherit;cursor:pointer}
.course-link:hover strong{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.class-overview dd,.class-overview p{overflow-wrap:anywhere;white-space:pre-wrap}
.overview-roster{border-top:1px solid var(--line);margin-top:22px;padding-top:4px}
.overview-roster h3 small{font-weight:400;margin-left:10px}
.overview-roster ul{list-style:none;padding:0;margin:12px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 20px}
.overview-roster li{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.overview-roster li .badge{flex-shrink:0}
.overview-roster li:only-child{grid-column:1/-1}
.hours-low{color:#a84318}
@media(max-width:700px){.overview-roster ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}}
@media(max-width:380px){.overview-roster ul{grid-template-columns:minmax(0,1fr)}}
.class-overview .review-grid{margin:8px 0;grid-template-columns:100px minmax(0,1fr) 100px minmax(0,1fr);gap:18px 12px}
@media(max-width:700px){.class-overview .review-grid{grid-template-columns:100px minmax(0,1fr);gap:16px 12px}}
.workbench-day-heading{width:100%;background:none;border:0;cursor:pointer}
.workbench-day-heading:hover,.workbench-class-link:hover{background:#f0f7f5}
.workbench-class-link{display:block;width:100%;min-height:36px;text-align:left;font:inherit;color:inherit;background:none;border:0;border-left:3px solid #4a91fc;padding:2px 0 2px 6px;overflow-wrap:anywhere;cursor:pointer}
.workbench-class-link>time,.workbench-class-link>strong,.workbench-class-link>small{display:block;line-height:1.5}
.workbench-class-link>strong{font-size:12px;margin:3px 0}
.workbench-class-link>.badge{margin-top:5px}
.workbench-more{font:inherit;color:var(--muted);text-align:left;background:none;border:0;min-height:32px;cursor:pointer}
@media(max-width:700px){.workbench-class-link,.workbench-more{min-height:44px}}
.workbench-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}
.workbench-heading h1{font-size:29px;line-height:1.4}
.workbench-heading p{margin-top:8px;font-size:13px;color:#52657b;line-height:1.7}
.workbench-heading p span{margin-left:16px;color:#8090a2;font-size:12px}
.mobile-home-title,.mobile-day-count{display:none}
.workbench-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 28px;padding:6px 0}
.workbench-stat{display:flex;align-items:center;gap:17px;padding:0 23px;border-right:1px solid var(--wb-line);min-width:0}
.workbench-stat:first-child{padding-left:10px}.workbench-stat:last-child{border:0}
.workbench-stat>svg{width:35px;height:35px;color:var(--wb-teal);stroke-width:1.65}
.workbench-stat strong{display:block;font-size:29px;line-height:1.2;font-variant-numeric:tabular-nums}
.workbench-stat span{display:block;font-size:13px;font-weight:600;margin-top:6px}
.workbench-stat small{display:block;font-size:11px;color:#8090a2;margin-top:6px;line-height:1.6}
.workbench-columns{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:22px;align-items:start}
.workbench-view .section-head{margin-bottom:13px;min-height:32px}.workbench-view .section-head h2{font-size:17px}.workbench-view .section-head .btn{font-size:11px;padding:6px 0;gap:4px}
.workbench-view .btn.subtle{color:var(--wb-teal)}
.workbench-lessons,.workbench-todos{min-width:0;border-top:1px solid var(--wb-line);padding-top:15px}
.workbench-todos{border-left:1px solid var(--wb-line);padding-left:20px}
.workbench-date{margin-bottom:13px}.workbench-date .datebar .btn{margin-left:auto}.workbench-date .datebar input{max-width:165px}
.home-course-table{width:100%;border-collapse:collapse;table-layout:fixed;text-align:left;font-size:12px}
.home-course-table th{font-size:11px;font-weight:500;color:#64748b;background:#f5f8fb;padding:11px 8px;white-space:nowrap}
.home-course-table th:nth-child(1){width:102px}.home-course-table th:nth-child(3){width:85px}.home-course-table th:nth-child(4){width:48px}.home-course-table th:nth-child(5){width:74px}.home-course-table th:nth-child(6){width:88px}
.home-course-table td{padding:15px 8px;border-bottom:1px solid var(--wb-line);vertical-align:middle;line-height:1.6;overflow-wrap:anywhere}
.home-course-table .home-time{font-variant-numeric:tabular-nums;font-size:11px;white-space:nowrap;font-weight:600}
.course-title{padding-left:11px;border-left:4px solid #438afa}.course-title.school{border-color:#11a198}.course-title.closed{border-color:#d3942b}
.course-title strong{display:block;font-size:13px;line-height:1.55;font-weight:650}.course-title small{display:block;font-size:11px;color:#718298;margin-top:5px;line-height:1.6}
.home-room svg,.home-count svg{display:none}.home-count{white-space:nowrap}
.home-course-table .badge{font-size:10px;padding:4px 6px;white-space:nowrap}.home-action .btn{font-size:11px;min-height:34px;padding:7px 10px;white-space:nowrap}
.home-course-table tr.closed{background:#fff9ee}
.workbench-empty{min-height:234px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#8a9aaa}.workbench-empty>svg{width:36px;height:36px;color:#9eb9b7}.workbench-empty strong{font-weight:500;font-size:13px}
.workbench-todo{display:flex;align-items:center;gap:11px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--wb-line);background:#fff;padding:18px 0;min-height:87px}
.workbench-todo-icon{display:grid;place-items:center;width:40px;height:43px;border-radius:7px;flex-shrink:0;background:#eaf6f2;color:var(--wb-teal)}.workbench-todo-icon svg{width:23px;height:23px}
.workbench-todo.amber .workbench-todo-icon{background:#fff3e3;color:#e29820}.workbench-todo.blue .workbench-todo-icon{background:#edf4ff;color:#4b8ced}
.workbench-todo-text{flex:1;min-width:0}.workbench-todo-text strong{display:block;font-size:13px}.workbench-todo-text small{display:block;font-size:11px;line-height:1.6;color:#8290a3;margin-top:6px}
.todo-number{font-size:13px;color:#8290a3}.todo-number.needs-action{color:#d4734a}.workbench-todo>svg{width:14px;color:#8a9aaf}
.workbench-week{margin-top:22px;padding-top:17px;border-top:1px solid var(--wb-line)}
.workbench-week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--wb-line)}
.workbench-day{min-width:0;border:0;border-right:1px solid var(--wb-line);background:#fff;text-align:left;display:flex;flex-direction:column;padding:0;color:inherit}.workbench-day:last-child{border-right:0}
.workbench-day-heading{display:flex;flex-direction:column;text-align:center;gap:4px;padding:11px 5px;border-bottom:1px solid var(--wb-line)}.workbench-day-heading strong{font-size:12px;font-weight:500}.workbench-day-heading small{font-size:10px;color:#8390a2}
.workbench-day.selected .workbench-day-heading{color:var(--wb-teal);background:#e9f7f3;box-shadow:inset 0 -2px var(--wb-teal)}.workbench-day.selected .workbench-day-heading small{color:var(--wb-teal)}
.workbench-day-courses{display:grid;gap:8px;padding:11px 9px;min-height:96px;width:100%;align-content:start;font-size:10px;line-height:1.6}.workbench-day-courses>span{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere;border-left:3px solid #4a91fc;padding-left:6px}.workbench-day-courses .school{border-color:#159587}.workbench-day-courses .closed{border-color:#d69426}.workbench-day-courses time{font-weight:600;margin-right:5px}.workbench-day-courses small{font-size:10px;color:#91a0b0}
.workbench-day-courses{font-size:11px}.workbench-day-courses>span{display:block;-webkit-line-clamp:unset;overflow:visible}
.workbench-todo.green .needs-action{color:#8090a2}
.week-time-scroll{border:1px solid var(--line);max-height:75dvh;overflow:auto;overscroll-behavior-x:contain}
.time-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;min-width:1080px;font-size:12px;text-align:left}
.time-axis-col{width:68px}.time-table th,.time-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.time-table tr>:last-child{border-right:0}.time-table tbody tr:last-child>*{border-bottom:0}
.time-table thead th{position:sticky;top:0;background:#fff;z-index:2;text-align:center;height:54px;font-weight:500;color:#748498;font-size:12px}.time-table thead strong{font-size:18px;color:var(--ink);margin-left:6px}.time-table thead th:first-child{left:0;z-index:4;background:#f7f9fb}
.time-table td{padding:8px;vertical-align:top;height:148px}.time-table .time-axis{position:sticky;left:0;z-index:1;text-align:center;background:#f7f9fb;font-size:12px;font-variant-numeric:tabular-nums;font-weight:600;vertical-align:top;padding:20px 4px;overflow-wrap:anywhere}
.time-table .is-today{background:#f5fbf9}.time-table thead .is-today{color:var(--green);background:#e9f5f1}.time-table .schedule-item{margin:0 0 8px;min-height:124px;line-height:1.6;display:flex;flex-direction:column;align-items:stretch;gap:7px}.time-table .schedule-item:last-child{margin-bottom:0}.time-table .schedule-item .badge{align-self:flex-start;margin-top:auto}.time-table .schedule-item strong{font-size:12px}
.empty-slot{display:block;text-align:center;padding:24px 0;color:#cad2dc}.time-table td.empty-week{text-align:center;vertical-align:middle;color:var(--muted);height:220px}
@media(min-width:701px){.topbar .mode-switch{margin-left:auto;margin-right:auto}.topbar{height:64px}.sidebar .brand{padding:20px 19px 24px}}
@media(max-width:1199px) and (min-width:961px){.workbench-columns{grid-template-columns:minmax(0,1fr) 225px;gap:16px}.workbench-todos{padding-left:15px}.home-course-table th:nth-child(3){width:65px}.home-course-table th:nth-child(1){width:91px}.home-course-table th:nth-child(5){width:67px}.home-course-table th:nth-child(6){width:78px}.home-course-table td{padding:12px 5px}.home-action .btn{padding:7px}.workbench-stat{padding:0 15px;gap:12px}}
@media(max-width:960px) and (min-width:701px){.workbench-columns{grid-template-columns:1fr}.workbench-todos{border-left:0;padding-left:0}.workbench-todos>div:last-child{display:grid;grid-template-columns:1fr 1fr;column-gap:24px}.workbench-stat{padding:0 10px;gap:8px}.workbench-stat>svg{width:25px}.workbench-stat strong{font-size:25px}.workbench-stat small{font-size:10px}.workbench-week-days{overflow-x:auto;grid-template-columns:repeat(7,minmax(100px,1fr))}}
@media(max-width:700px){
  .mobile-home-title,.mobile-day-count{display:block}.desktop-home-title{display:none}.workbench-heading{margin-bottom:12px;align-items:flex-start}.workbench-heading h1{font-size:27px}.workbench-heading p{font-size:12px}.workbench-heading p span{display:none}.workbench-heading .btn{font-size:11px;padding:8px;min-height:40px}
  .workbench-stats{display:none}.workbench-columns{display:block}.workbench-lessons{padding-top:0;border:0}.workbench-lessons>.section-head{display:none}.workbench-date{margin-bottom:12px}.workbench-date .datebar{flex-wrap:nowrap;gap:5px}.workbench-date .datebar input{width:136px;max-width:136px}.workbench-date .datebar .btn{margin-left:auto}
  .mobile-day-count{font-size:12px;color:#788ba2;margin:16px 0}.home-course-table,.home-course-table tbody{display:block;width:100%}.home-course-table thead{display:none}.home-course-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:13px 10px;border:1px solid var(--wb-line);border-radius:6px;padding:16px;margin-bottom:14px;background:#fff}.home-course-table td{border:0;padding:0;min-width:0}.home-course-table .home-time{grid-column:1;grid-row:1;font-size:16px;white-space:normal;line-height:1.5}.home-course-table .home-status{grid-column:2;grid-row:1;justify-self:end}.home-course-table .home-course{grid-column:1/-1;grid-row:2}.home-course-table .home-room{grid-column:1;grid-row:3;display:flex;gap:7px;align-items:center;color:#657a91}.home-course-table .home-count{grid-column:1;grid-row:4;display:flex;gap:7px;align-items:center;color:#657a91}.home-room svg,.home-count svg{display:block;width:16px;height:16px}.home-course-table .home-action{grid-column:2;grid-row:3/5;align-self:center}.home-action .btn{min-height:44px;padding:9px 13px;font-size:12px}.course-title strong{font-size:16px}.course-title small{font-size:11px;line-height:1.6}.home-course-table .badge{font-size:11px;padding:5px 8px}.workbench-todos{display:none}.workbench-week{margin-top:22px}.workbench-week .section-head h2{font-size:16px}.workbench-week-days{overflow:auto;grid-template-columns:repeat(7,minmax(115px,1fr));max-width:100%}.workbench-day-courses{font-size:11px;min-height:105px}.workbench-day-heading strong{font-size:12px}.workbench-empty{min-height:210px}
  .time-table{min-width:1080px}.time-axis-col{width:60px}.time-table .schedule-item{min-height:127px}.week-time-scroll{max-height:70dvh}.mode-switch .mobile-only{font-size:12px}.mode-switch{gap:17px}.topbar .account .role{display:none}
}
#students-directory .filters{align-items:flex-start}
#students-directory .student-search-button{position:absolute;left:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:30px;height:32px;padding:0;border:0;background:transparent;color:var(--green);border-radius:4px;z-index:1}
#students-directory .student-search-button svg{position:static;transform:none}
#students-directory .student-search-button:hover{background:var(--green-bg)}
#students-teachers{position:relative;max-width:100%}
#students-teachers summary{list-style:none;cursor:pointer;gap:8px}
#students-teachers summary::after{content:"+";font-size:16px;color:var(--muted)}
#students-teachers[open] summary::after{content:"-"}
#students-teachers .checklist{position:absolute;top:calc(100% + 6px);left:0;z-index:5;width:230px;background:white;border:1px solid var(--line);border-radius:6px;padding:5px 12px;box-shadow:0 6px 18px #172c3714}
#students-directory td{overflow-wrap:anywhere}
#students-directory .data-table .name-link{min-height:34px}
@media(max-width:700px){
  #students-directory .filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  #students-directory .searchbox{grid-column:1/-1;min-width:0;width:100%}
  #students-directory .filters select,#students-directory .filters>.btn{width:100%;min-width:0}
  #students-teachers{grid-column:1/-1}
  #students-teachers summary{min-height:44px;width:100%;justify-content:space-between}
  #students-directory .data-table td[data-label="班级"]{grid-column:1/-1}
  #students-directory .data-table .name-link{min-height:44px}
}
.schedule-location{display:block;color:var(--ink);font-size:12px;font-weight:600;overflow-wrap:anywhere;white-space:normal}
.workbench-class-link .schedule-location{font-size:11px;font-weight:400;line-height:1.5;margin-top:4px}
@media(max-width:700px){
  .workbench-todos:has([data-action="approval-open"]){display:block;border-left:0;padding-left:0;margin-top:20px}
  .workbench-todos .workbench-todo:not([data-action="approval-open"]):not([data-action="finance-open"]){display:none}
}
.student-equipment{width:112px;max-width:100%;min-width:88px}
.student-equipment select{width:100%;min-height:40px}
.student-equipment small{display:block;white-space:normal;overflow-wrap:anywhere;margin-top:4px}
.student-equipment .form-error{padding:0;min-height:0}
.history-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end;margin:20px 0}
.history-filters .field{min-width:0;margin:0}.history-filters input,.history-filters select{width:100%;min-width:0}
.history-query{grid-column:span 2}.history-filters .actions{align-self:end;flex-wrap:wrap}
.history-counts{display:flex;gap:20px;flex-wrap:wrap;align-items:center;padding:14px 0;color:var(--muted);font-size:13px}.history-counts strong{color:var(--ink)}
#attendance-history .data-table td{overflow-wrap:anywhere;max-width:280px}#attendance-history .data-table .actions{flex-wrap:wrap}
#modal:has(.history-dialog){width:min(620px,calc(100vw - 24px));height:fit-content;max-height:calc(100dvh - 32px);margin:auto;border-radius:8px}
#modal:has(.history-dialog) .modal-shell{width:100%;height:auto;min-height:0;max-height:calc(100dvh - 32px)}
#attendance-history .tabs{display:flex;border-bottom:1px solid var(--line);gap:24px}
#attendance-history .tabs .btn{background:none;border:0;border-radius:0;padding:12px 0;min-width:88px;border-bottom:3px solid transparent;color:var(--muted)}
#attendance-history .tabs .btn.active{color:var(--green);border-bottom-color:var(--green);font-weight:600}
.history-dialog{min-width:0}.history-dialog p{overflow-wrap:anywhere}.history-dialog .field{margin-top:18px}.history-roster>div{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.history-roster strong{flex:1;min-width:80px}.history-roster small{width:100%;white-space:pre-wrap}
@media(max-width:700px){.history-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.history-filters .actions{grid-column:1/-1}#attendance-history .data-table td{max-width:none}#attendance-history .data-table td[data-label="班级"],#attendance-history .data-table td[data-label="补课 / 备注"]{grid-column:1/-1}.history-counts{gap:12px}.modal-shell:has(.history-dialog){width:100%}}
