.menu-close,.menu-backdrop{display:none}
.connection-state.muted{color:#85897e}.connection-state.checking{color:#507b93}
.plan-color-black{color:#344737}.plan-color-red{color:#b63129}.plan-color-blue{color:#2e63a4}.plan-color-green{color:#338143}.plan-bold{font-weight:700}
.plan-read td,.plan-read th{color:inherit;font-weight:inherit}.plan-read tr.plan-bold td,.plan-read tr.plan-bold th{font-weight:700}
.spreadsheet-scroll{position:relative;overflow:auto;border:1px solid #d1dacb;max-height:54dvh}
.plan-sheet,.enroll-sheet{border-collapse:separate;border-spacing:0;table-layout:fixed;background:#fff;width:100%;min-width:700px}
.plan-sheet th,.plan-sheet td,.enroll-sheet th,.enroll-sheet td{padding:0;border:0;border-right:1px solid #d9e1d1;border-bottom:1px solid #d9e1d1;vertical-align:middle;height:42px;font-size:12px;text-align:left}
.plan-sheet thead th,.enroll-sheet thead th{background:#ecf1e7;position:sticky;top:22px;z-index:4;padding:7px;font-weight:500;height:34px;color:#54634f}
.sheet-index th{top:0!important;height:22px!important;font-size:10px!important;text-align:center!important;padding:2px!important;background:#e5eddf!important}
.plan-sheet th:nth-child(1){width:44px;text-align:center}.plan-sheet th:nth-child(2){width:108px;padding:7px;white-space:nowrap}.plan-sheet th:nth-child(3){width:auto}.plan-sheet th:nth-child(4){width:24%}.plan-sheet th:nth-child(5){width:136px}
.plan-sheet tr>*:nth-child(1){position:sticky;left:0;z-index:2;background:#f1f5ec}.plan-sheet tr>*:nth-child(2){position:sticky;left:44px;z-index:2;background:#f6f9f1;box-shadow:2px 0 2px #ccd8c166}.plan-sheet thead th:nth-child(-n+2){z-index:6}
.plan-sheet textarea{border:0;border-radius:0;min-height:42px;height:42px;line-height:1.45;padding:8px;resize:none;background:transparent;color:inherit;font:inherit;display:block;width:100%;overflow:auto}
.plan-sheet textarea:focus{outline:2px solid #608a5a;outline-offset:-2px;background:#f6faf1}.plan-sheet .plan-format{white-space:nowrap;padding:4px;text-align:center;color:#54624c;font-weight:400}.plan-format button{border:1px solid #cbd8c1;background:#fff;height:28px;width:28px;font-size:14px;font-weight:700;padding:0;cursor:pointer}.plan-format button[aria-pressed=true]{background:#e0eed8;border-color:#669455}.plan-format select{height:28px;font-size:11px;padding:2px;width:82px;border:1px solid #ced8c7;background:white;color:#3e5038;margin-left:3px}
.plan-sheet .plan-bold textarea{font-weight:700}.plan-sheet .plan-color-red textarea{color:#b63129}.plan-sheet .plan-color-blue textarea{color:#2e63a4}.plan-sheet .plan-color-green textarea{color:#338143}
.sheet-help{font-size:12px;color:#75816d;margin:8px 0 13px}.plan-scroll{margin-top:0}.plan-read th:nth-child(1){width:45px}.plan-read th:nth-child(2){width:106px}.plan-read td{min-width:130px}
.enroll-controls{display:flex;gap:12px;flex-wrap:wrap;margin:15px 0}.enroll-controls label{display:flex;flex-direction:column;gap:5px;font-size:12px}.enroll-controls select,.enroll-controls input{min-height:38px;border:1px solid #cbd7c4;padding:7px;background:white;border-radius:3px}
.enroll-scroll{max-height:48dvh}.enroll-sheet-modal .modal{width:min(1080px,calc(100vw - 24px))}.enroll-sheet-modal .modal-body{padding:18px 22px}.enroll-sheet th:nth-child(1){width:36px;text-align:center}.enroll-sheet th:nth-child(2){width:130px}.enroll-sheet th:nth-child(3){width:110px}.enroll-sheet th:nth-child(4){width:55px}.enroll-sheet th:nth-child(5){width:auto}.enroll-sheet th:nth-child(6){width:115px}
.enroll-sheet td{padding:5px 8px}.enroll-sheet td:nth-child(2){padding:0}.enroll-sheet input{width:100%;height:42px;padding:8px;border:0;background:transparent;border-radius:0;font:inherit}.enroll-sheet input:focus{outline:2px solid #608a5a;outline-offset:-2px;background:#f5faf1}.enroll-sheet tr>*:nth-child(1){position:sticky;left:0;background:#f0f5e9;z-index:2}.enroll-sheet thead th:first-child{z-index:5}.enroll-footer{display:flex;align-items:center;gap:10px;margin-top:13px;flex-wrap:wrap}.enroll-footer>span{flex:1;color:#77846e;font-size:12px}.enroll-sheet .connection-state{font-size:12px}.enroll-select{color:#a16012;font-weight:700;white-space:nowrap;min-height:28px;padding:4px 7px}.enroll-candidates{overflow:auto;flex:1}.enroll-choose .modal-body{display:flex;flex-direction:column}
.overview-filters{display:flex;gap:9px;flex-wrap:wrap;align-items:end;margin:18px 0}.overview-filters label{display:flex;flex-direction:column;font-size:11px;gap:5px}.overview-filters input,.overview-filters select{padding:8px;border:1px solid #ccd8c5;background:#fffefa;border-radius:3px;height:38px;min-width:130px}.overview-search{flex:1;min-width:210px}.overview-summary{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.overview-total{background:#f1f5ec;padding:7px 12px;font-size:12px}.overview-total.unrecorded{color:#878977}.overview-status.present,.overview-status.transfer_in{color:#3b784a}.overview-status.absent,.overview-status.withdrawn{color:#b2473c}.overview-status.late{color:#a36512}.overview-status.unrecorded{color:#898b7d}.overview-scroll{max-height:60dvh;overflow:auto}.overview-table{min-width:760px}.overview-table thead th{position:sticky;top:0;z-index:2}.overview-pagination{display:flex;justify-content:center;align-items:center;gap:15px;margin-top:16px;font-size:13px}.attendance-tabs button{white-space:nowrap}
@media(max-width:760px),(pointer:coarse) and (max-width:1180px){
 body.menu-open{overflow:hidden}.menu-open .mobile-app-nav,.menu-open .attendance-save-row{display:none!important}.sidebar.open{z-index:75;display:flex;flex-direction:column;height:100dvh;max-height:100dvh;min-height:0;top:0;bottom:0;padding:16px 14px calc(8px + env(safe-area-inset-bottom));overflow:hidden}.sidebar.open .logo{flex-shrink:0;padding-bottom:16px}.sidebar.open .nav-label{flex-shrink:0}.sidebar.open>nav{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;padding-bottom:12px}.sidebar.open .sidebar-bottom{flex-shrink:0;position:relative;bottom:auto;margin-top:0;padding:12px 0 2px;background:#f1f0e8}.sidebar.open .menu-close{display:block;position:absolute;right:12px;top:10px;background:none;border:0;color:#718068;font-size:12px;padding:8px;z-index:2}.sidebar.open .sidebar-bottom [data-action=logout]{min-width:40px;min-height:40px}.menu-open .menu-backdrop{display:block;position:fixed;inset:0;z-index:70;background:#28322a55;border:0}.sidebar.open{box-shadow:none}
 .attendance-tabs button{font-size:12px;padding:11px 9px;flex:1}.overview-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px}.overview-search{grid-column:1/-1;min-width:0}.overview-filters label{min-width:0}.overview-filters input,.overview-filters select{font-size:14px;min-width:0;width:100%;height:36px}.overview-filters .btn{font-size:11px}.attendance-overview h2{font-size:18px}.attendance-overview>.muted{font-size:11px}.overview-summary{gap:5px}.overview-total{font-size:11px;padding:6px 8px}.overview-table{font-size:11px;min-width:640px}.enroll-sheet-modal .modal{width:100%;max-height:calc(100dvh - 20px)}.enroll-sheet-modal .modal-body{padding:12px}.enroll-controls{gap:8px}.enroll-controls label:first-child{flex:1}.enroll-controls input,.enroll-controls select{font-size:14px;width:100%}.enroll-scroll{max-height:50dvh}.enroll-sheet{min-width:650px}.enroll-sheet input{font-size:16px}.enroll-footer{gap:6px}.enroll-footer span{font-size:10px}.enroll-footer .btn{font-size:12px}.plan-sheet{min-width:660px}.plan-sheet textarea{font-size:16px}.sheet-help{font-size:10px}.plan-read{min-width:520px}.enroll-choose .roster-one-line small{white-space:normal!important;overflow-wrap:anywhere}
}

.sidebar-logout{width:27px;min-width:27px;padding:4px;min-height:34px}.sidebar-logout span{display:none}
@media(max-width:760px),(pointer:coarse) and (max-width:1180px){
 .sidebar.open .sidebar-bottom>.flex{flex-wrap:wrap}.sidebar.open .sidebar-logout{flex-basis:100%;width:100%;gap:7px;min-height:40px;border:1px solid #ccd5c5;border-radius:3px;background:#fafbf6;font-size:12px;margin-top:6px}.sidebar.open .sidebar-logout span{display:inline}
}
