.side-data-group summary{color:#c2d7cb;cursor:pointer;border-radius:9px;align-items:center;gap:13px;padding:13px 15px;font-size:13px;list-style:none;display:flex}.side-data-group summary::-webkit-details-marker{display:none}.side-data-group summary:hover{background:#ffffff0d}.side-data-group summary>svg:last-child{margin-left:auto;transition:transform .15s}.side-data-group[open] summary>svg:last-child{transform:rotate(180deg)}.side-data-group summary:focus-visible{outline-offset:2px;outline:2px solid #daca96}.side-child-link{margin-left:20px;font-size:12px}.department-create-card{margin-bottom:24px}.department-create-form{max-width:720px}.department-create-form>label{margin-bottom:13px;font-size:14px;font-weight:500;display:block}.departments-table{border-collapse:collapse;text-align:left;width:100%;min-width:680px;font-size:12px}table thead th.table-actions-heading{text-align:center;vertical-align:middle}table:has(>thead>tr>th.table-actions-heading:last-child)>tbody>tr>td:last-child{text-align:center;vertical-align:middle}table:has(>thead>tr>th.table-actions-heading:last-child)>tbody>tr>td:last-child>:is(.registration-row-actions,.course-row-actions,.academic-period-actions,.teaching-record-actions,.attendance-card-actions,form){justify-content:center;align-items:center;display:flex}.departments-table th{background:var(--surface-muted);color:var(--subtext);border-bottom:1px solid var(--line);padding:17px 22px;font-weight:500}.departments-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:16px 22px}.departments-table td:first-child{width:68%}.work-report-students-table th:first-child,.work-report-students-table td:first-child{text-align:center;white-space:nowrap;width:56px;padding-inline:12px}.departments-table td:last-child{min-width:155px}.departments-table tbody tr:last-child td{border-bottom:0}.departments-empty{text-align:center;color:var(--subtext);padding:42px 25px}.department-table-controls{border:0;min-width:0;margin:0;padding:0}.department-order-hint{color:var(--subtext);margin:0 0 8px;font-size:12px}.department-order-status{color:var(--primary);min-height:18px;margin:0 0 12px;font-size:12px}.department-order-actions{align-items:center;gap:8px;display:flex}.department-drag-handle{border:1px solid var(--line);background:var(--surface-muted);color:var(--subtext);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:7px;place-items:center;padding:8px;display:grid}.department-drag-handle:active{cursor:grabbing}.department-order-arrows{gap:3px;display:grid}.department-order-arrows button{background:var(--surface-muted);color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:4px;place-items:center;padding:3px;display:grid}.department-order-arrows button:disabled,.department-drag-handle:disabled{opacity:.35;cursor:default}.department-drag-handle:focus-visible,.department-order-arrows button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.department-dragging>td{background:color-mix(in srgb, var(--primary) 12%, var(--surface))}.department-drop-target>td{background:color-mix(in srgb, var(--primary) 18%, var(--surface));border-top:2px dashed var(--primary)}.department-sortable-table th:first-child,.department-sortable-table td:first-child{width:115px}.department-sortable-table td:nth-child(2){width:60%}.department-sortable-table>tbody>tr>td:nth-child(3){vertical-align:middle}.departments-empty h2{color:var(--text);font-size:17px;font-weight:500}.departments-empty p{font-size:12px}.danger-button{border:1px solid color-mix(in srgb, var(--danger) 20%, var(--line));min-height:41px;color:var(--danger);background:color-mix(in srgb, var(--danger) 4%, var(--surface));font:inherit;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:10px 13px;font-size:12px;display:inline-flex}.danger-button:hover{background:color-mix(in srgb, var(--danger) 9%, var(--surface))}.danger-button:disabled{opacity:.5;cursor:wait}.users-card{padding:0;overflow:hidden}.users-filter-toolbar{flex-wrap:wrap;align-items:flex-end;gap:16px;padding:24px 24px 0;display:flex}.users-search-field{flex:1;min-width:220px}.users-filter-toolbar label{margin-bottom:8px;font-size:12px;font-weight:500;display:block}.users-status-field{min-width:180px}.users-status-field select{border:1px solid var(--line);background:var(--surface);width:100%;min-height:46px;color:var(--text);font:inherit;border-radius:9px;padding:10px 12px;font-size:13px}.users-filter-count{color:var(--subtext);margin:18px 0 20px;padding:0 24px;font-size:12px}.users-filter-toolbar input:focus-visible,.users-status-field select:focus-visible{outline:2px solid var(--primary);outline-offset:3px}@media (max-width:640px){.users-filter-toolbar{padding:18px 18px 0}.users-search-field,.users-status-field{flex-basis:100%;width:100%;min-width:0}.users-filter-count{padding:0 18px}}.users-table-wrap{overflow-x:auto}.users-table{border-collapse:collapse;text-align:left;width:100%;min-width:680px;font-size:12px}.users-table th{color:var(--subtext);background:var(--surface-muted);border-bottom:1px solid var(--line);padding:17px 22px;font-weight:500}.users-table td{border-bottom:1px solid var(--line);padding:15px 22px}.users-table tbody tr:last-child td{border-bottom:0}.users-table td:last-child{width:48%;min-width:300px}.user-permission-options{border:0;flex-wrap:wrap;gap:8px 18px;margin:12px 0 0;padding:0;display:flex}.user-permission-options legend{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.user-permission-options label{color:var(--subtext);cursor:pointer;align-items:center;gap:6px;font-size:11px;display:inline-flex}.department-controls{align-items:center;gap:8px;display:flex}.department-controls input,.department-controls select{width:100%;min-width:0;font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:7px;outline:none;padding:10px 11px;font-size:12px}.department-controls input:focus,.department-controls select:focus{border-color:var(--primary)}.department-controls .primary-button{flex-shrink:0;min-height:39px;padding:9px 12px;font-size:11px}.department-error,.department-success{margin-top:6px;font-size:10px;display:block}.department-error{color:var(--danger)}.department-success{color:var(--success)}:root{--primary:#216b55;--primary-dark:#123f35;--primary-soft:#eaf3ed;--ui-radius:14px;--page:#f5f7f5;--surface:#fff;--surface-muted:#f7f9f6;--text:#263f35;--subtext:#7b8980;--line:#e5ebe5;--danger:#ad4141;--success:#26764d;--work-report-pending:#876000;--work-report-unreported:#626b78;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--page:#141d1b;--surface:#1d2925;--surface-muted:#22302b;--text:#e3ece5;--subtext:#a0b2a6;--line:#33433a;--danger:#ffacab;--success:#92d5ad;--work-report-pending:#f1cd6b;--work-report-unreported:#b7bfcc;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root[data-theme=system]{--page:#141d1b;--surface:#1d2925;--surface-muted:#22302b;--text:#e3ece5;--subtext:#a0b2a6;--line:#33433a;--danger:#ffacab;--success:#92d5ad;--work-report-pending:#f1cd6b;--work-report-unreported:#b7bfcc;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}body{background:var(--page);color:var(--text)}[hidden]{display:none!important}.brand-symbol img{object-fit:contain;width:85%;height:85%}.brand strong{overflow-wrap:anywhere}.brand small{text-overflow:ellipsis;white-space:nowrap;max-width:175px;overflow:hidden}.app-shell{min-height:100svh;display:flex}.app-sidebar{z-index:25;background:var(--primary-dark);color:#e1ece5;flex-direction:column;flex-shrink:0;width:248px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.sidebar-collapse-toggle{border:1px solid var(--line);width:40px;height:40px;color:var(--text);background:var(--surface);cursor:pointer;border-radius:10px;flex-shrink:0;place-items:center;display:inline-grid}.sidebar-collapse-toggle:hover{background:var(--surface-muted)}.sidebar-collapse-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:3px}@media (min-width:981px){.sidebar-collapsed .app-sidebar:not(:hover){width:76px}.sidebar-collapsed .app-sidebar:hover{box-shadow:12px 0 30px #0002}.sidebar-collapsed .workspace-main{margin-left:76px}.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-brand{justify-content:center;padding:28px 10px 30px}.sidebar-collapsed .app-sidebar:not(:hover) .brand>span:not(.brand-symbol),.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-label,.sidebar-collapsed .app-sidebar:not(:hover) .side-link>span,.sidebar-collapsed .app-sidebar:not(:hover) .side-link>svg:last-child:not(:first-child),.sidebar-collapsed .app-sidebar:not(:hover) .side-data-group summary>span,.sidebar-collapsed .app-sidebar:not(:hover) .side-data-group summary>svg:last-child{display:none}.sidebar-collapsed .app-sidebar:not(:hover) .side-navigation{padding:0 10px}.sidebar-collapsed .app-sidebar:not(:hover) .side-link,.sidebar-collapsed .app-sidebar:not(:hover) .side-data-group summary{justify-content:center;gap:0;padding:14px 8px}.sidebar-collapsed .app-sidebar:not(:hover) .side-child-link{margin-left:0;padding-left:8px}}@media (max-width:980px){.sidebar-collapse-toggle{display:none}}.sidebar-brand{align-items:center;gap:10px;padding:31px 23px 36px;display:flex}.sidebar-brand .brand{gap:10px;min-width:0}.sidebar-brand .brand-symbol{border-radius:12px;flex-shrink:0;width:41px;height:41px}.sidebar-brand .brand strong{letter-spacing:.4px;color:#f7fbf8;font-size:20px;display:block}.sidebar-brand .brand small{letter-spacing:1.1px;max-width:150px;font-size:6px}.sidebar-label{letter-spacing:.6px;color:#adc5b7;margin:4px 0 13px;padding:0 27px;font-size:10px}.side-navigation{padding:0 14px}.side-navigation>.sidebar-label{padding-inline:13px}.sidebar-count-badge{min-width:20px;color:inherit;text-align:center;background:#ffffff24;border-radius:999px;margin-left:auto;padding:2px 6px;font-size:11px;font-weight:700}.overload-department-select{gap:6px;min-width:220px;display:grid}.side-link{color:#c2d7cb;border-radius:9px;align-items:center;gap:13px;margin-bottom:6px;padding:13px 15px;font-size:13px;transition:background .15s;display:flex}.side-link:hover{background:#ffffff0d}.side-link.is-active{color:#f5f3d8;background:#ffffff14;box-shadow:inset 3px 0 #daca96}.side-link>svg:last-child:not(:first-child){margin-left:auto}.workspace-main{flex-direction:column;flex:1;min-width:0;margin-left:248px;display:flex}.workspace-navbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:20;justify-content:space-between;align-items:center;gap:20px;min-height:85px;padding:16px 35px;display:flex;position:sticky;top:0}.navbar-system{align-items:center;gap:12px;min-width:0;display:flex}.nav-system-mark{border:1px solid var(--line);width:37px;height:37px;color:var(--primary);background:var(--surface-muted);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.navbar-system strong{font-size:13px;font-weight:550;line-height:1.7;display:block}.navbar-system small{color:var(--subtext);margin-top:2px;font-size:10px;display:block}.profile-dropdown{flex-shrink:0;position:relative}.navbar-user-actions{flex-shrink:0;align-items:center;gap:16px;margin-inline-start:auto;display:flex}.navbar-theme-control{position:relative}.navbar-theme-toggle{border:1px solid var(--line);background:var(--surface-muted);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:10px;place-items:center;display:grid}.navbar-theme-toggle:hover{color:var(--primary);border-color:var(--primary)}.navbar-theme-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.navbar-theme-toggle:disabled{cursor:wait;opacity:.6}.navbar-theme-error{top:calc(100% + 12px);border:1px solid var(--line);background:var(--surface);width:230px;color:var(--danger);border-radius:8px;padding:12px;font-size:12px;position:absolute;inset-inline-end:0}@media (max-width:640px){.navbar-user-actions{gap:8px}.navbar-theme-toggle{width:36px;height:36px}}.profile-dropdown summary{cursor:pointer;border-radius:8px;align-items:center;gap:11px;padding:4px;list-style:none;display:flex}.profile-dropdown summary::-webkit-details-marker{display:none}.profile-dropdown summary:focus-visible{outline:2px solid var(--primary);outline-offset:4px}.profile-dropdown summary>svg{color:var(--subtext);margin-left:6px}.user-avatar{background:var(--primary-soft);width:39px;height:39px;color:var(--primary-dark);border:1px solid color-mix(in srgb, var(--primary) 12%, transparent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:17px;font-weight:600;display:inline-flex;overflow:hidden}.user-avatar img{object-fit:cover;width:100%;height:100%}.avatar-large{border:5px solid var(--surface);outline:1px solid var(--line);width:122px;height:122px;font-size:44px;box-shadow:0 5px 25px #19382a0b}.navbar-user{max-width:185px}.navbar-user strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;display:block;overflow:hidden}.navbar-user small{color:var(--subtext);margin-top:2px;font-size:10px;display:block}.profile-menu{border:1px solid var(--line);border-radius:var(--ui-radius);background:var(--surface);z-index:50;width:235px;padding:7px;position:absolute;top:calc(100% + 16px);right:0;overflow:hidden;box-shadow:0 12px 45px #132b2021}.profile-menu-heading{border-bottom:1px solid var(--line);overflow-wrap:anywhere;margin-bottom:5px;padding:10px 12px 13px}.profile-menu-heading strong{font-size:12px;font-weight:550;display:block}.profile-menu-heading small{color:var(--subtext);margin-top:4px;font-size:11px;display:block}.profile-menu a,.profile-menu button{width:100%;color:var(--text);background:0 0;border-radius:7px;align-items:center;gap:10px;padding:11px 12px;font-size:12px;display:flex}.profile-menu a:hover,.profile-menu button:hover{background:var(--surface-muted)}.profile-menu button{color:var(--danger)}.profile-menu .profile-menu-profile-button,.profile-menu .profile-menu-settings-link{color:#000}.student-schedule-board{gap:24px;display:grid}.student-schedule-details{flex-direction:column;justify-content:center;gap:8px;width:100%;max-height:100%;display:flex;overflow:hidden}.student-schedule-lesson{min-width:0;color:var(--text);overflow-wrap:anywhere;flex-direction:column;justify-content:center;gap:5px;display:flex}.student-schedule-board .student-schedule-block{cursor:default;text-align:center}.student-schedule-lesson strong{color:var(--primary);font-size:12px}.student-schedule-lesson span{font-size:11px;line-height:1.5}.student-schedule-lesson small{color:var(--subtext);font-size:10px;line-height:1.5}.student-schedule-empty{text-align:center;justify-items:center;gap:12px;padding:48px 24px;display:grid}.student-schedule-empty>svg{color:var(--primary)}.student-schedule-empty p{color:var(--subtext)}.student-work-date-filter{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:flex-end;gap:12px;padding:20px 24px;display:flex}.student-work-date-filter .setting-field{min-width:200px;margin:0}.student-work-report-fields{border:1px solid var(--line);gap:24px;min-width:0;margin:0;padding:24px;display:grid}.student-work-report-fields h2{margin:0 0 8px;font-size:18px}.student-work-report-images{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:16px;display:grid}.student-work-report-image{border:1px solid var(--line);border-radius:12px;justify-items:center;gap:14px;min-width:0;padding:16px;display:grid}.student-work-report-preview{width:100%;height:230px;color:var(--subtext);background:var(--surface-muted);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;overflow:hidden}.student-work-report-preview img{object-fit:contain;width:100%;height:100%}.student-work-report-save{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:20px;display:flex}@media (max-width:640px){.student-work-report-fields{padding:16px}.student-work-report-images{grid-template-columns:minmax(0,1fr)}}.student-roster-popup.student-result-popup{width:min(680px,100vw - 32px);overflow:hidden}.student-result-popup .roster-popup-body{min-height:0;padding:22px 24px}.student-result-popup .roster-popup-footer{justify-content:flex-end}.student-result-summary{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;display:grid}.student-result-summary>div{background:var(--surface-muted);border-radius:10px;flex-direction:column;gap:8px;padding:18px;display:flex}.student-result-summary span{color:var(--subtext);font-size:12px}.student-result-summary strong{color:var(--primary);font-size:23px}@media (max-width:520px){.student-result-popup .roster-popup-body{padding:16px}.student-result-summary{grid-template-columns:1fr}}.nav-menu-toggle{color:var(--text);background:0 0;padding:6px;display:none}.workspace-content{flex:1;width:95%;min-width:0;max-width:none;margin:0 auto;padding:25px 0 40px}.page-heading{justify-content:space-between;align-items:center;gap:15px;margin-bottom:25px;display:flex}.page-heading h1{letter-spacing:-.6px;margin:6px 0;font-size:26px;font-weight:600}.page-heading p,.page-heading .course-header-context{color:var(--subtext);margin:0;font-size:12px;line-height:1.8}.workspace-badge{color:var(--success);background:var(--surface);border:1px solid var(--line);white-space:nowrap;border-radius:20px;align-items:center;gap:7px;padding:7px 11px;font-size:10px;display:inline-flex}.workspace-badge>span{background:var(--success);border-radius:50%;width:5px;height:5px}.welcome-banner{background:color-mix(in srgb, var(--primary) 9%, var(--surface));border:1px solid color-mix(in srgb, var(--primary) 16%, var(--surface));border-radius:var(--ui-radius);justify-content:space-between;align-items:center;margin-bottom:25px;padding:31px 33px;display:flex;overflow:hidden}.banner-eyebrow{color:var(--subtext);align-items:center;gap:7px;font-size:10px;display:flex}.banner-eyebrow>span{background:var(--primary);border-radius:50%;width:5px;height:5px}.welcome-banner h2{overflow-wrap:anywhere;margin:13px 0 8px;font-size:25px;font-weight:550}.welcome-banner p{color:var(--subtext);max-width:560px;margin-bottom:21px;font-size:11px;line-height:1.9}.welcome-banner a{background:var(--primary);color:#fff;border-radius:7px;align-items:center;gap:13px;padding:10px 16px;font-size:11px;display:inline-flex}.banner-art{flex-shrink:0;width:210px;height:170px;margin-left:25px;position:relative}.art-ring{border:1px solid color-mix(in srgb, var(--primary) 16%, transparent);border-radius:50%;width:180px;height:180px;position:absolute;top:-4px;left:15px}.art-ring:after{content:"";border:1px dashed color-mix(in srgb, var(--primary) 16%, transparent);border-radius:50%;position:absolute;inset:16px}.art-square{background:var(--surface);color:var(--primary);border:1px solid var(--line);border-radius:24px;place-items:center;width:110px;height:110px;display:grid;position:absolute;top:25px;left:40px;transform:rotate(-10deg);box-shadow:0 8px 35px #193d2610}.art-small{border:4px solid color-mix(in srgb, var(--primary) 9%, var(--surface));background:var(--primary);color:#fff;border-radius:17px;place-items:center;width:56px;height:56px;display:grid;position:absolute;bottom:12px;right:15px;transform:rotate(12deg)}.art-star{color:#b39959;font-size:31px;position:absolute;top:11px;right:10px}.overview-grid{grid-template-columns:1fr 1fr;gap:23px;display:grid}.content-card{border:1px solid var(--line);border-radius:var(--ui-radius);background:var(--surface);min-width:0;padding:26px;box-shadow:0 2px 3px #163a2202}.card-heading{align-items:center;gap:12px;margin-bottom:23px;display:flex}.card-heading-icon{background:color-mix(in srgb, var(--primary) 8%, var(--surface));width:39px;height:39px;color:var(--primary);border-radius:11px;flex-shrink:0;place-items:center;display:grid}.card-heading h2{margin:0 0 4px;font-size:15px;font-weight:550}.card-heading p{color:var(--subtext);margin:0;font-size:10px;line-height:1.7}.account-details{margin:0;font-size:11px}.account-details>div{align-items:center;gap:18px;margin:16px 0;display:flex}.account-details dt{min-width:65px;color:var(--subtext)}.account-details dd{overflow-wrap:anywhere;margin:0;line-height:1.8}.soft-badge{background:color-mix(in srgb, var(--primary) 9%, var(--surface));color:var(--text);border:1px solid color-mix(in srgb, var(--primary) 15%, transparent);border-radius:6px;align-items:center;gap:6px;padding:4px 9px;font-size:10px;display:inline-flex}.work-report-status{--report-status-color:var(--work-report-unreported);color:var(--report-status-color);background:color-mix(in srgb, var(--report-status-color) 12%, var(--surface));border-color:color-mix(in srgb, var(--report-status-color) 35%, var(--surface));white-space:nowrap;font-weight:600}.work-report-status-pending{--report-status-color:var(--work-report-pending)}.work-report-status-reviewed{--report-status-color:var(--success)}.work-report-status-changes{--report-status-color:var(--danger)}.student-roster-popup.work-report-dates-popup{text-align:left;width:min(760px,100vw - 32px)}.work-report-dates-popup .roster-popup-body{padding:20px 24px}.work-report-dates-popup .roster-popup-footer{justify-content:flex-end}.work-report-dates-table{min-width:480px}.work-report-dates-table th:first-child,.work-report-dates-table td:first-child{white-space:nowrap;width:28%}.assignment-page-actions,.assignment-attachment-buttons{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.student-roster-popup.assignment-popup{text-align:left;width:min(740px,100vw - 32px)}.student-roster-popup.assignment-directory-popup{text-align:left;width:min(1040px,100vw - 32px)}.assignment-directory-popup>.roster-popup-footer{justify-content:flex-end}.roster-popup-footer.assignment-review-footer{flex-wrap:wrap;justify-content:flex-end;gap:10px}.roster-popup-footer.assignment-submit-readonly-footer{justify-content:flex-end}.assignment-popup>form{flex-direction:column;min-height:0;display:flex;overflow:hidden}.assignment-popup-body{padding:24px}.assignment-form-fields{border:0;gap:20px;min-width:0;margin:0;padding:0;display:grid}.assignment-form-fields textarea,.assignment-link-row input{width:100%;min-width:0}.assignment-link-row,.assignment-file-row{align-items:center;gap:10px;margin-top:10px;display:flex}.assignment-link-row input{border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;border-radius:8px;flex:1;padding:10px 12px}.assignment-file-row{border:1px solid var(--line);border-radius:8px;justify-content:space-between;padding:9px 12px}.assignment-file-row>span{overflow-wrap:anywhere;min-width:0;font-size:12px}.assignment-file-row svg{vertical-align:middle;margin-right:4px}.assignment-deadline{border-top:1px solid var(--line);padding-top:18px}.assignment-deadline-toggle{cursor:pointer;align-items:center;gap:9px;display:flex}.assignment-deadline-toggle input{accent-color:var(--primary)}.assignment-recipient-section h3{margin:0 0 12px;font-size:14px}.email-settings-card{max-width:820px}.student-roster-popup.account-settings-popup{text-align:left;width:min(760px,100vw - 32px)}.account-settings-popup .email-settings-card{box-shadow:none;border:0;max-width:none;margin:0;padding:0}.email-settings-card>header{align-items:center;gap:14px;margin-bottom:24px;display:flex}.email-settings-card h2{margin:0;font-size:20px}.email-settings-card header p{color:var(--subtext);overflow-wrap:anywhere;margin:6px 0 0}.email-settings-fields{border:0;min-width:0;margin:0;padding:0}.email-setting-option{border:1px solid var(--line);cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:14px;display:flex}.email-setting-option input{accent-color:var(--primary)}.email-setting-master{background:var(--surface-muted);font-weight:600}.email-category-options{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-block:18px;display:grid}.assignment-recipient-options{flex-wrap:wrap;gap:18px;display:flex}.assignment-recipient-options label,.assignment-recipient-list label{cursor:pointer;align-items:center;gap:9px;font-size:13px;display:flex}.assignment-recipient-options input,.assignment-recipient-list input{accent-color:var(--primary)}.assignment-recipient-list{border:1px solid var(--line);border-radius:9px;gap:10px;max-height:220px;padding:14px;display:grid;overflow:auto}.assignment-recipient-list small{color:var(--subtext);margin-top:4px;display:block}.assignment-deadline-fields{grid-template-columns:1fr 1fr;gap:16px;margin-top:16px;display:grid}.assignment-list{margin-bottom:24px}.assignment-list>h2{margin:0 0 16px;font-size:18px}.assignment-item{border:1px solid var(--line);border-radius:10px;margin-top:10px}.assignment-item>summary{cursor:pointer;overflow-wrap:anywhere;padding:16px}.assignment-item>summary span{color:var(--subtext);margin-top:6px;font-size:12px;display:block}.assignment-item-body{overflow-wrap:anywhere;padding:0 16px 16px}.assignment-item-body>p{white-space:pre-wrap}.assignment-item-body a{color:var(--primary)}.student-assignment-course{margin-bottom:24px}.student-assignment-course-heading,.student-assignment-card>header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.student-assignment-course-heading h2{margin:7px 0;font-size:18px}.student-assignment-course-heading p{color:var(--subtext);margin:0;font-size:12px}.student-assignment-list{gap:16px;margin-top:22px;display:grid}.student-assignment-card{border:1px solid var(--line);border-radius:12px;min-width:0}.student-assignment-card>summary{cursor:pointer;overflow-wrap:anywhere;align-items:center;gap:12px;padding:18px 20px;font-size:16px;font-weight:600;list-style:none;display:flex}.student-assignment-card>summary::-webkit-details-marker{display:none}.student-assignment-title{flex:1;min-width:0}.student-assignment-toggle{flex-shrink:0;transition:transform .15s}.student-assignment-card[open]>summary .student-assignment-toggle{transform:rotate(90deg)}.student-assignment-submit-button{flex-shrink:0;min-height:36px;padding:8px 12px;font-size:12px}.assignment-saved-files a{color:var(--primary);overflow-wrap:anywhere}.assignment-review-note{white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid var(--line);background:var(--surface-muted);border-radius:8px;padding:12px 14px}.assignment-submissions-table{margin-top:20px}.student-assignment-card>summary:hover{background:var(--surface-muted);border-radius:12px}.student-assignment-card>summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:12px}.student-assignment-card-body{padding:0 20px 20px}.student-assignment-card h3{overflow-wrap:anywhere;margin:0;font-size:16px}.student-assignment-description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.student-assignment-due,.student-assignment-resources h4{align-items:center;gap:7px;font-size:12px;display:flex}.student-assignment-due{color:var(--subtext)}.student-assignment-resources{border-top:1px solid var(--line);margin-top:15px;padding-top:12px}.student-assignment-resources h4{margin:0 0 10px}.student-assignment-resources ul{margin:0;padding-left:20px}.student-assignment-resources li{overflow-wrap:anywhere;margin:7px 0}.student-assignment-resources a{color:var(--primary)}.student-assignment-resources small{color:var(--subtext)}@media (max-width:640px){.assignment-popup-body{padding:18px}.assignment-deadline-fields{grid-template-columns:1fr}}.verified-note{border-top:1px solid var(--line);color:var(--success);align-items:center;gap:7px;margin-top:20px;padding-top:16px;font-size:10px;display:flex}.quick-link{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:17px 0;display:flex}.quick-link:last-child{border-bottom:0}.quick-icon{color:var(--subtext);background:var(--surface-muted);border-radius:9px;flex-shrink:0;place-items:center;width:39px;height:39px;display:grid}.quick-link strong{margin-bottom:5px;font-size:12px;font-weight:500;display:block}.quick-link small{color:var(--subtext);font-size:10px;line-height:1.7;display:block}.quick-link>svg{color:var(--subtext);flex-shrink:0;margin-left:auto;transition:transform .15s}.quick-link:hover>svg{color:var(--primary);transform:translate(3px)}.workspace-notice{border:1px dashed var(--line);border-radius:var(--ui-radius);color:var(--subtext);align-items:flex-start;gap:12px;margin-top:23px;padding:19px 23px;display:flex}.workspace-notice>svg{flex-shrink:0;margin-top:2px}.workspace-notice strong{color:var(--text);font-size:11px;font-weight:500}.workspace-notice p{margin:4px 0 0;font-size:10px;line-height:1.8}.workspace-footer{border-top:1px solid var(--line);color:var(--subtext);background:var(--surface);justify-content:space-between;gap:20px;padding:19px 35px;font-size:10px;line-height:1.8;display:flex}.workspace-footer>span:last-child{flex-shrink:0}.sidebar-dialog{color:#e1ece5;background:var(--primary-dark);border:0;width:265px;height:100svh;max-height:100svh;margin:0;padding:0}.sidebar-dialog[open]{flex-direction:column;display:flex}.sidebar-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#091d1666}.sidebar-close{color:#d6e8dc;background:0 0;margin-left:auto;padding:4px}.profile-page-grid{grid-template-columns:310px 1fr;gap:23px;display:grid}.profile-photo-card{text-align:center;padding:31px 23px}.profile-photo-card>h2{margin-top:27px;font-size:17px;font-weight:550}.profile-photo-card>p{color:var(--subtext);font-size:11px;line-height:1.9}.avatar-form{flex-direction:column;align-items:center;display:flex}.avatar-upload-preview{width:fit-content;margin-bottom:22px;position:relative}.camera-dot{background:var(--primary);color:#fff;border:3px solid var(--surface);border-radius:50%;place-items:center;width:33px;height:33px;display:grid;position:absolute;bottom:3px;right:1px}.upload-image-label{color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;gap:7px;padding:9px 14px;font-size:12px;display:inline-flex;position:relative;overflow:hidden}.upload-image-label input,.logo-upload input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.upload-image-label:focus-within,.logo-upload:focus-within{outline:2px solid var(--primary);outline-offset:4px}.field-hint{color:var(--subtext);font-size:10px;line-height:1.8}.avatar-form>.field-hint{margin:12px 0 20px}.selected-file{overflow-wrap:anywhere;max-width:100%;color:var(--subtext);font-size:10px}.primary-button,.secondary-button{border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:43px;padding:11px 18px;font-size:12px;font-weight:500;display:inline-flex}.primary-button{background:var(--primary);color:#fff}.primary-button:hover{filter:brightness(.95)}.primary-button:disabled{opacity:.5;cursor:not-allowed}.secondary-button{background:var(--surface);color:var(--text);border:1px solid var(--line)}.profile-info{grid-template-columns:1fr 1fr;gap:0 24px;margin:0;display:grid}.profile-info>div{border-bottom:1px solid var(--line);min-width:0;padding:21px 0}.profile-info dt{color:var(--subtext);align-items:center;gap:6px;margin-bottom:9px;font-size:11px;display:flex}.profile-info dd{overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.8}.profile-info-note{background:var(--surface-muted);border-radius:8px;margin:25px 0 0;padding:15px}.form-feedback{text-align:left;border-radius:8px;align-items:flex-start;gap:8px;padding:11px 13px;font-size:11px;line-height:1.8;display:flex}.form-feedback>svg{flex-shrink:0;margin-top:2px}.feedback-error{color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface))}.feedback-success{color:var(--success);background:color-mix(in srgb, var(--success) 8%, var(--surface))}.avatar-form>.form-feedback{margin-bottom:15px}.settings-layout{grid-template-columns:213px 1fr;align-items:start;gap:23px;display:grid}.settings-tabs{flex-direction:column;gap:6px;display:flex;position:sticky;top:111px}.settings-tabs button{text-align:left;color:var(--subtext);background:0 0;border:1px solid #0000;border-radius:9px;align-items:flex-start;gap:12px;padding:15px;display:flex}.settings-tabs button>svg{flex-shrink:0;margin-top:2px}.settings-tabs strong{font-size:12px;font-weight:500;display:block}.settings-tabs small{margin-top:4px;font-size:9px;line-height:1.8;display:block}.settings-tabs button.selected{background:var(--surface);border-color:var(--line);color:var(--text);box-shadow:0 2px 5px #12342304}.settings-tabs button.selected>svg{color:var(--primary)}.settings-panel{padding:28px}.settings-section-heading{border-bottom:1px solid var(--line);margin-bottom:26px;padding-bottom:22px}.settings-section-heading h2{margin:0 0 7px;font-size:17px;font-weight:550}.settings-section-heading p{color:var(--subtext);margin:0;font-size:11px;line-height:1.9}.settings-fields{grid-template-columns:1fr 1fr;gap:21px 20px;display:grid}.setting-field{min-width:0}.setting-field.full-width{grid-column:1/-1}.setting-field>label{margin-bottom:9px;font-size:12px;font-weight:500;display:block}.setting-field label>span{color:var(--subtext);font-size:10px;font-weight:400}.setting-field input,.setting-field textarea{border:1px solid var(--line);width:100%;font:inherit;color:var(--text);background:var(--surface);border-radius:8px;outline:none;padding:12px 13px;font-size:12px;line-height:1.8}.setting-field textarea{resize:vertical;min-height:95px}.setting-field input:focus,.setting-field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 10%, transparent)}.field-count{text-align:right;color:var(--subtext);margin-top:5px;font-size:9px;display:block}.logo-setting{border-bottom:1px solid var(--line);align-items:center;gap:20px;margin-bottom:27px;padding-bottom:27px;display:flex}.logo-preview{border:1px dashed var(--line);background:var(--surface-muted);width:84px;height:84px;color:var(--primary);border-radius:12px;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.logo-preview img{object-fit:contain;width:85%;height:85%}.logo-setting strong{font-size:12px;font-weight:500}.logo-setting p{margin:5px 0 10px}.logo-upload{cursor:pointer;min-height:34px;padding:7px 10px;font-size:10px;position:relative;overflow:hidden}.checkbox-label{color:var(--subtext);align-items:center;gap:7px;margin-top:13px;font-size:10px;display:flex}input[type=radio],input[type=checkbox]{accent-color:var(--primary)}.theme-fieldset{border:0;min-width:0;margin:0 0 28px;padding:0}.theme-fieldset legend{margin-bottom:13px;font-size:12px;font-weight:500}.palette-grid{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.palette-option{border:1px solid var(--line);text-align:center;cursor:pointer;border-radius:9px;padding:13px 5px 10px;position:relative}.palette-option input,.mode-option input{opacity:0;position:absolute}.palette-option:focus-within,.mode-option:focus-within{outline:2px solid var(--primary);outline-offset:3px}.palette-option.chosen,.mode-option.chosen{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 4%, var(--surface))}.palette-swatch{color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;margin:0 auto 9px;display:grid}.palette-option>span:last-child{font-size:10px}.mode-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.mode-option{border:1px solid var(--line);color:var(--subtext);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:12px;padding:20px 10px;font-size:11px;display:flex;position:relative}.mode-option.chosen{color:var(--text)}.radius-options{gap:28px;font-size:12px;display:flex}.radius-options label{cursor:pointer;align-items:center;gap:7px;display:flex}.theme-preview{--preview-surface:#fff;--preview-text:#33453c;border:1px solid var(--line);min-height:196px;color:var(--preview-text);background:#f5f7f5;border-radius:12px;display:flex;overflow:hidden}.theme-preview[data-preview-mode=dark]{--preview-surface:#24322a;--preview-text:#e5ece6;background:#1c251e}@media (prefers-color-scheme:dark){.theme-preview[data-preview-mode=system]{--preview-surface:#24322a;--preview-text:#e5ece6;background:#1c251e}}.preview-mini-sidebar{background:var(--preview-dark);color:#fff;flex-direction:column;align-items:center;gap:14px;width:49px;padding:15px 9px;display:flex}.preview-mini-sidebar>span{background:#ffffff42;border-radius:3px;width:23px;height:4px}.preview-mini-sidebar>span:first-of-type{background:#fff9;margin-top:14px}.preview-mini-main{flex:1;min-width:0}.preview-mini-main header{background:var(--preview-surface);justify-content:space-between;gap:10px;padding:11px 17px;font-size:9px;display:flex}.preview-mini-main header i{background:var(--preview-soft);border-radius:50%;flex-shrink:0;width:15px;height:15px}.preview-mini-main>div{background:var(--preview-surface);border-radius:var(--preview-radius);margin:17px;padding:16px}.preview-mini-main strong{font-size:12px;font-weight:500}.preview-mini-main p{opacity:.65;font-size:9px}.preview-mini-main>div>span{border-radius:var(--preview-radius);color:#fff;background:var(--preview-primary);align-items:center;gap:15px;padding:6px 10px;font-size:8px;display:inline-flex}.preview-caption{text-align:center;margin-bottom:0}.settings-save-bar{z-index:10;border:1px solid var(--line);border-radius:var(--ui-radius);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding:15px 18px;display:flex;position:sticky;bottom:15px;box-shadow:0 5px 30px #163a2010}.settings-save-bar>div{min-width:0}.settings-save-bar>div>p{color:var(--subtext);margin:0;font-size:11px;line-height:1.8}.settings-save-bar .form-feedback{background:0 0;padding:0}.settings-save-bar>.primary-button{flex-shrink:0}.access-denied{text-align:center;margin-top:35px;padding:55px}.access-denied>svg{color:var(--subtext)}.access-denied h1{font-size:23px}.access-denied p{color:var(--subtext);margin-bottom:25px}.form-panel{background:var(--surface)}.story-panel{background:var(--primary-dark)}.story-panel:before{background:radial-gradient(at 5% 62%,#ffffff0b,#0000 62%)}.form-content h2,.brand{color:var(--text)}.brand-light{color:#fff}.form-eyebrow,.text-button{color:var(--success)}.input-wrap{background:var(--surface);border-color:var(--line)}.input-wrap input{color:var(--text)}.submit-button{background:var(--primary)}.submit-button:hover{background:var(--primary-dark)}.welcome-icon,.account-note{background:color-mix(in srgb, var(--primary) 8%, var(--surface));color:var(--success);border-color:var(--line)}.account-note span,.form-description,.credential-hint,.help-row,.form-footer,.form-content .top-meta{color:var(--subtext)}.help-row{border-color:var(--line)}.help-dialog-card{background:var(--surface);color:var(--text)}.help-dialog-card p{color:var(--subtext)}.support-links{color:var(--success);flex-wrap:wrap;gap:12px;margin-bottom:23px;font-size:12px;display:flex}.login-site-title{white-space:pre-line;overflow-wrap:anywhere}.login-shell .story-content h1{overflow-wrap:anywhere}.login-shell .highlight{font-size:.94em}.login-footer{flex-wrap:wrap;row-gap:4px;line-height:1.8}.login-shell .input-wrap,.login-shell .submit-button{border-radius:min(var(--ui-radius), 9px)}@media (max-width:1200px){.app-sidebar{width:225px}.workspace-main{margin-left:225px}.sidebar-brand{padding-left:17px;padding-right:17px}.sidebar-brand .brand strong{font-size:18px}.workspace-navbar{padding-left:25px;padding-right:25px}.navbar-system strong{font-size:11px}.navbar-user{max-width:130px}.settings-layout{grid-template-columns:180px 1fr;gap:17px}.settings-tabs button{gap:9px;padding:13px 10px}.profile-page-grid{grid-template-columns:265px 1fr;gap:18px}.banner-art{transform-origin:100%;width:170px;margin-left:0;transform:scale(.9)}.content-card{padding:23px}}@media (max-width:980px){.app-sidebar{display:none}.workspace-main{margin-left:0}.nav-menu-toggle{flex-shrink:0;place-items:center;display:inline-grid}.workspace-navbar{gap:12px}.navbar-system{margin-right:auto}.workspace-footer{padding-left:25px;padding-right:25px}.sidebar-dialog .sidebar-brand .brand strong{font-size:18px}.sidebar-dialog .brand small{max-width:138px}}@media (max-width:640px){.workspace-navbar{gap:9px;min-height:73px;padding:13px 16px}.nav-system-mark,.navbar-user small,.profile-dropdown summary>svg{display:none}.navbar-user{max-width:70px;display:block}.navbar-user strong{font-size:10px}.profile-dropdown summary{gap:6px}.profile-dropdown summary .user-avatar{width:32px;height:32px;font-size:14px}.navbar-system strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.7;display:-webkit-box;overflow:hidden}.navbar-system small{display:none}.workspace-content{padding:19px 0 28px}.page-heading{align-items:flex-start;margin-bottom:22px}.page-heading h1{font-size:23px}.page-heading p{font-size:11px}.page-heading>.workspace-badge{display:none}.page-heading>.soft-badge{margin-top:15px;font-size:9px}.welcome-banner{padding:25px 22px}.welcome-banner h2{font-size:22px}.welcome-banner p{font-size:11px}.banner-art{display:none}.overview-grid,.profile-page-grid{grid-template-columns:1fr;gap:18px}.content-card{padding:23px 21px}.workspace-notice{padding:17px}.workspace-footer{padding:17px 18px;font-size:9px;display:block}.workspace-footer>span{display:block}.workspace-footer>span:last-child{margin-top:5px}.profile-info{gap:0 17px}.profile-info dd{font-size:12px}.settings-layout{display:block}.settings-tabs{grid-template-columns:1fr 1fr;gap:7px;margin-bottom:19px;display:grid;position:static}.settings-tabs button{align-items:center;padding:12px 10px}.settings-tabs strong{font-size:11px}.settings-tabs small{display:none}.settings-tabs button>svg{width:17px;margin-top:0}.settings-panel{padding:22px 19px}.settings-fields{grid-template-columns:1fr;gap:16px}.settings-section-heading h2{font-size:16px}.logo-setting{gap:13px}.logo-preview{width:64px;height:64px}.palette-grid{grid-template-columns:repeat(3,1fr)}.mode-grid{gap:8px}.mode-option{padding:17px 5px;font-size:10px}.settings-save-bar{flex-direction:column;align-items:stretch;gap:10px;padding:13px;bottom:8px}.settings-save-bar .primary-button{width:100%}.settings-save-bar>div>p{text-align:center;font-size:10px}.settings-save-bar .form-feedback{font-size:10px}.profile-photo-card{padding-top:32px}.access-denied{padding:35px 20px}}.course-toolbar{flex-wrap:wrap;gap:12px;padding:24px;display:flex}.course-search{border:1px solid var(--line);min-width:200px;color:var(--subtext);border-radius:9px;flex:1;align-items:center;gap:10px;padding:0 13px;display:flex}.course-search input{width:100%;color:var(--text);font:inherit;background:0 0;border:0;outline:none;padding:12px 0;font-size:13px}.course-toolbar select,.setting-field select{border:1px solid var(--line);color:var(--text);background:var(--surface);font:inherit;border-radius:8px;padding:12px;font-size:13px}.setting-field select{width:100%}.course-result-count{color:var(--subtext);justify-content:space-between;align-items:center;gap:12px;padding:0 24px 20px;font-size:12px;display:flex}.courses-table{table-layout:fixed;min-width:960px}.courses-table th,.courses-table td{overflow-wrap:anywhere;padding:14px 12px}.courses-table th:first-child,.courses-table td:first-child{width:29%}.courses-table th:nth-child(2){width:9%}.courses-table th:nth-child(3){width:25%}.courses-table th:nth-child(4){width:12%}.courses-table th:nth-child(5){width:10%}.courses-table th:last-child,.courses-table td:last-child{width:15%;min-width:0}.courses-table .course-row-actions{flex-wrap:wrap}.course-program-filter{max-width:340px}.course-program-cell{min-width:0;max-width:none;font-size:12px;line-height:1.8}.course-program-cell a{color:var(--primary);font-weight:500;text-decoration:none}.course-program-cell small{color:var(--subtext);margin-top:4px;font-size:10px;display:block}.course-program-picker{border:1px solid var(--line);border-radius:12px;min-width:0;margin:24px 0 16px;padding:18px}.course-program-picker legend{padding:0 8px;font-size:14px;font-weight:600}.course-program-picker .course-hint{margin-top:0}.program-search{border:1px solid var(--line);width:100%;color:var(--text);background:var(--surface);font:inherit;border-radius:8px;padding:12px;font-size:12px}.program-picker-summary{color:var(--subtext);margin:12px 0;font-size:12px}.program-picker-options{gap:6px;max-height:260px;display:grid;overflow:auto}.program-option{cursor:pointer;border:1px solid var(--line);border-radius:8px;align-items:flex-start;gap:10px;padding:12px;display:flex}.program-option.selected{background:color-mix(in srgb, var(--primary) 7%, transparent);border-color:var(--primary)}.program-option input{flex-shrink:0;margin-top:4px}.program-option strong{font-size:12px;font-weight:500;display:block}.program-option small{color:var(--subtext);margin-top:5px;font-size:11px;display:block}.program-selected-list{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}@media (max-width:640px){.course-program-filter{width:100%;max-width:100%}}.courses-table td{vertical-align:middle}.course-code{color:var(--primary);font-size:13px;font-weight:600;text-decoration:none}.course-name{max-width:370px;margin-top:5px;font-size:13px;line-height:1.7}.course-year{color:var(--subtext);margin-top:5px;display:block}.course-tpc{white-space:nowrap;font-variant-numeric:tabular-nums}.course-row-actions{align-items:center;gap:8px;display:flex}.course-row-actions .secondary-button,.course-row-actions .danger-button{white-space:nowrap;padding:8px 10px;font-size:12px}.course-status{white-space:nowrap;color:var(--subtext);background:var(--background);border-radius:20px;padding:5px 9px;font-size:11px;display:inline-block}.course-status.active{background:color-mix(in srgb, var(--primary) 10%, transparent);color:var(--primary)}.course-pagination{border-top:1px solid var(--line);color:var(--subtext);justify-content:space-between;align-items:center;padding:20px 24px;font-size:12px;display:flex}.course-pagination>div{gap:10px;display:flex}.users-pagination{flex-wrap:wrap;gap:12px}.users-pagination>div{flex-wrap:wrap;align-items:center}.users-pagination .secondary-button:disabled{opacity:.45;cursor:default}.users-page-number{white-space:nowrap}.supplementary-template{gap:24px;display:grid}.normal-schedule-template{min-width:0;padding:24px}.normal-schedule-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.normal-schedule-toolbar h2{margin:0;font-size:18px}.normal-schedule-controls{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.normal-schedule-controls label{align-items:center;gap:8px;font-size:12px;display:flex}.normal-schedule-controls select,.normal-settings-dialog select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:10px}.normal-schedule-scroll{scrollbar-width:none;border:1px solid var(--line);border-radius:8px;overflow:auto hidden}.normal-schedule-scroll::-webkit-scrollbar{display:none}.normal-floating-scrollbar{z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:10px;align-items:center;gap:6px;padding:6px;display:flex;position:fixed;bottom:12px;box-shadow:0 5px 22px #0003}.normal-floating-scrollbar>button{border:1px solid var(--line);background:var(--surface-muted);width:28px;height:28px;color:var(--text);cursor:pointer;border-radius:5px;flex-shrink:0;place-items:center;padding:0;display:grid}.normal-floating-scroll{scrollbar-width:auto;flex:1;min-width:0;height:22px;overflow:scroll hidden}.normal-floating-scroll::-webkit-scrollbar{height:14px}.normal-floating-scroll::-webkit-scrollbar-track{background:var(--surface-muted);border-radius:8px}.normal-floating-scroll::-webkit-scrollbar-thumb{background:var(--subtext);border:3px solid var(--surface-muted);border-radius:8px}.normal-floating-scroll:focus-visible,.normal-floating-scrollbar>button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.normal-schedule-template{padding-bottom:70px}.normal-schedule-scroll:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.normal-schedule-grid{table-layout:fixed;border-collapse:separate;border-spacing:0;text-align:center;width:100%;font-size:11px}.normal-schedule-grid th,.normal-schedule-grid td{overflow-wrap:anywhere;border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 5px}.normal-schedule-grid th{background:var(--surface-muted);font-weight:500}.normal-schedule-grid thead{z-index:3;position:sticky;top:0}.normal-schedule-grid thead th{background:var(--surface-muted)}.normal-schedule-grid thead time,.normal-schedule-grid .normal-time-column span{display:block}.normal-schedule-grid .normal-time-column span{white-space:nowrap}.normal-schedule-grid thead time{white-space:nowrap;margin-top:5px}.normal-date-heading{height:122px;position:relative}.normal-date-heading>div{text-align:left;white-space:nowrap;width:110px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}.normal-schedule-grid .normal-date-heading time{align-items:baseline;gap:4px;margin:0;display:inline-flex}.normal-date-weekday{text-align:left;flex:0 0 18px;width:18px}.normal-schedule-grid .normal-time-column{z-index:2;background:var(--surface);position:sticky;left:0}.normal-schedule-grid thead .normal-time-column{z-index:4;background:var(--surface-muted)}.normal-schedule-empty{background:var(--surface);height:42px}.normal-schedule-grid .normal-alternate-block{background:color-mix(in srgb, var(--primary) 4%, var(--surface))}.normal-homeroom-cell,.normal-activity-cell{background:color-mix(in srgb, var(--primary) 9%, var(--surface));color:var(--text)}.normal-break-row td{background:var(--surface-muted);text-align:center;height:38px}.normal-break-row td>span{text-align:center;max-width:100%;display:block;position:sticky;left:5px}.normal-calendar-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.normal-calendar-fields>label{gap:8px;font-size:12px;display:grid}.normal-slot-list{gap:14px;margin:20px 0;display:grid}.normal-slot-row{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:end;gap:10px;padding-bottom:14px;display:flex}.normal-slot-row>span{align-self:center;min-width:50px;font-size:12px}.normal-slot-row>label{gap:6px;font-size:12px;display:grid}.normal-activity-settings{margin-top:28px}.normal-activity-toggle{align-items:center;gap:8px;margin:16px 0;font-size:13px;display:flex}@media (max-width:760px){.normal-calendar-fields{grid-template-columns:1fr}.normal-schedule-template{padding:16px}}.normal-course-board,.supplementary-board{grid-template-columns:250px minmax(0,1fr);align-items:start;gap:20px;display:grid}.normal-course-board>.normal-schedule-template{min-width:0}.normal-course-item{gap:4px;font-size:12px;display:grid;position:relative}.normal-course-select{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:5px;padding:0;display:grid}.normal-course-select>.schedule-code-with-hours{padding-right:30px}.normal-course-select>strong{color:var(--primary)}.normal-course-select>small{color:var(--subtext)}.normal-course-selected{outline:2px solid var(--primary);outline-offset:1px}.normal-course-item[data-custom-text-color=true] .normal-course-select>strong,.normal-course-item[data-custom-text-color=true] .normal-course-select>small{color:inherit}.normal-placement-target,.normal-placed-course{width:100%;min-height:28px;color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:3px;padding:2px 0;font-size:9px;display:block}.normal-placement-target:disabled{cursor:default}.normal-placement-target.can-place{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}.normal-range-mode .normal-schedule-empty,.normal-range-mode .normal-activity-cell{touch-action:none;-webkit-user-select:none;user-select:none}.normal-activity-cell .normal-placement-target,.normal-activity-cell .normal-placed-course{min-height:60px}.normal-range-mode .normal-placement-target.can-place{cursor:crosshair}.normal-placement-target.range-selected{background:color-mix(in srgb, var(--primary) 35%, var(--surface));outline:2px solid var(--primary)}.normal-placed-course{background:color-mix(in srgb, var(--primary) 20%, var(--surface));overflow-wrap:anywhere}.normal-cell-courses{gap:3px;display:grid}.merged-course-block{flex-direction:column;justify-content:center;gap:4px;width:100%;display:flex;position:relative}.schedule-block-subcells{pointer-events:none;display:grid;position:absolute;inset:0}.schedule-block-subcells>span{border:1px solid color-mix(in srgb, currentColor 35%, transparent)}.schedule-joined-edges{pointer-events:none;z-index:1;position:absolute;inset:0}.schedule-joined-edges>span{pointer-events:none;position:absolute}.schedule-block-subcells>.schedule-subcell-active{background:color-mix(in srgb, currentColor 18%, transparent);box-shadow:inset 0 0 0 2px}.schedule-block-subcells>.schedule-subcell-selected{background:color-mix(in srgb, currentColor 32%, transparent);box-shadow:inset 0 0 0 2px}.merged-course-label{pointer-events:none}.schedule-drop-cell .merged-course-block{padding:12px}.merged-course-block small{color:inherit}.merged-course-block{container-type:size}.merged-course-label{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) auto;gap:clamp(1px,1cqh,4px);width:100%;max-width:100%;height:100%;min-height:0;line-height:1.25;display:grid}.merged-course-code{text-align:left;overflow-wrap:anywhere;grid-area:1/1;place-self:start;font-size:clamp(8px,min(10cqw,14cqh),18px)}.merged-course-credits{text-align:right;white-space:nowrap;grid-area:1/2;place-self:start end;font-size:clamp(7px,min(7cqw,12cqh),15px)}.merged-course-name{text-align:center;overflow-wrap:anywhere;grid-area:2/1/3/3;place-self:center;max-width:100%;min-height:0;max-height:100%;font-size:clamp(8px,min(12cqw,18cqh),24px);overflow:hidden}.merged-course-rooms{text-align:right;overflow-wrap:anywhere;grid-area:3/1/4/3;place-self:end;max-width:100%;font-size:clamp(7px,min(8cqw,13cqh),17px)}@container not (min-width:105px){.merged-course-label{grid-template-rows:auto auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:1px}.merged-course-code{grid-area:1/1}.merged-course-credits{grid-area:2/1}.merged-course-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;grid-area:3/1;font-size:clamp(7px,10cqw,12px);display:-webkit-box;overflow:hidden}.merged-course-rooms{grid-area:4/1}}:is(.normal-schedule-grid td:has([data-schedule-block]),.supplementary-grid td:has([data-schedule-block])){padding:0;position:relative}.normal-schedule-grid tbody .normal-time-column{height:56px}:is(.normal-cell-courses:has(>[data-schedule-block]),.schedule-drop-cell:has(>[data-schedule-block])){min-height:0;display:block;position:absolute;inset:0}.normal-cell-courses>.merged-course-block,.schedule-drop-cell>.merged-course-block{border:0;border-radius:0;height:100%;min-height:0;padding:6px;overflow:hidden}.normal-schedule-grid td[colspan="1"] .normal-placed-course.merged-course-block{padding:2px}:is(.normal-cell-courses:has(>[data-schedule-block])>.normal-placement-target,.schedule-drop-cell:has(>[data-schedule-block])>.schedule-empty-target){background:var(--surface);border-radius:4px;width:28px;min-height:24px;padding:2px;position:absolute;bottom:2px;right:2px}.supplementary-grid td:has([data-schedule-block]){height:80px}.schedule-block-dialog{border:1px solid var(--line);background:var(--surface);width:min(680px,100vw - 32px);max-height:85dvh;color:var(--text);text-align:left;border-radius:16px;margin:auto;padding:0}.schedule-block-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a73}.schedule-block-dialog-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:20px;padding:24px;display:flex}.schedule-block-dialog-heading h2{margin:0;font-size:20px}.schedule-block-dialog-heading p{color:var(--subtext);margin:6px 0 0;font-size:13px}.merged-course-management{padding:24px}.merged-course-management h3{margin:0 0 12px;font-size:16px}.merged-course-management section+section{margin-top:24px}.merged-course-time{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;font-size:13px;display:flex}.merged-course-time>div{gap:8px;display:flex}.normal-placed-course small{line-height:1.3;display:block}.schedule-shared-course{position:relative}.schedule-shared-course+.schedule-shared-course{margin-top:5px}.attendance-directory{padding:24px}.attendance-date-filter{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:28px;display:flex}.attendance-date-filter .setting-field{width:250px}.attendance-date-filter .primary-button{min-height:48px}.attendance-list-heading{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.attendance-list-heading h2{margin:0;font-size:18px}.attendance-course-list{margin-top:20px}.attendance-courses-table td{vertical-align:middle}.attendance-courses-table td:first-child{width:42%}.attendance-courses-table td:first-child strong{color:var(--primary)}.attendance-courses-table tbody tr:hover>td,.attendance-courses-table tbody tr:focus-within>td{background:var(--surface-muted)}.attendance-class-times{white-space:nowrap;gap:5px;font-size:12px;display:grid}.attendance-card-actions{align-items:center;display:flex}.attendance-card-actions .primary-button{white-space:nowrap;background:var(--surface);border:1px solid var(--primary);min-height:40px;color:var(--primary);padding:10px 14px;font-size:12px}.attendance-card-actions .primary-button:hover{background:color-mix(in srgb, var(--primary) 10%, var(--surface));filter:none}.attendance-card-actions .attendance-saved-button{background:var(--primary);color:#fff}.attendance-card-actions .attendance-saved-button:hover{background:var(--primary);filter:brightness(.95)}.attendance-roster-course{border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:20px}.attendance-roster-course>strong{color:var(--primary);font-size:13px}.attendance-roster-course>h2{margin:7px 0;font-size:20px}.attendance-roster-course>p{color:var(--subtext);margin:0;font-size:13px}.attendance-roster-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.attendance-roster-toolbar .course-hint{margin:6px 0}.attendance-mark-summary{flex-wrap:wrap;gap:8px;margin:18px 0;display:flex}.attendance-roster-fields{border:0;min-width:0;margin:0;padding:0}.attendance-roster-fields>legend{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.attendance-roster-scroll{overflow-x:auto}.attendance-roster-table{border-collapse:collapse;text-align:left;width:100%;min-width:1000px;font-size:13px}.attendance-roster-table th,.attendance-roster-table td{vertical-align:middle}.attendance-roster-table th{background:var(--surface-muted);color:var(--subtext);border-bottom:1px solid var(--line);padding:14px 10px;font-weight:500}.attendance-roster-table td{border-bottom:1px solid var(--line);padding:12px 10px}.attendance-roster-table tbody tr:hover{background:var(--surface-muted)}.attendance-roster-table th:first-child{width:65px}.attendance-roster-table th:nth-child(2){width:145px}.attendance-roster-table th:nth-child(4){width:340px}.attendance-roster-table th:last-child{width:220px}.attendance-additional-label{margin-left:8px}.attendance-status-options{align-items:center;gap:5px;display:flex}.attendance-status-option{white-space:nowrap;border:1px solid var(--line);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:8px 7px;font-size:11px;display:inline-flex;position:relative}.attendance-status-option input{width:12px;height:12px;accent-color:var(--primary);margin:0}.attendance-status-option:has(input:checked){background:color-mix(in srgb, var(--primary) 14%, var(--surface));border-color:var(--primary)}.attendance-status-option:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}.attendance-note-input{border:1px solid var(--line);width:100%;min-width:170px;font:inherit;background:var(--surface);color:var(--text);border-radius:6px;padding:10px;font-size:12px}.attendance-roster-save{justify-content:flex-end;margin-top:22px;display:flex}.attendance-empty{text-align:center;color:var(--subtext);padding:45px 12px}.attendance-empty h3{color:var(--text);font-size:17px}.attendance-empty p{font-size:13px}.attendance-empty>div{flex-wrap:wrap;justify-content:center;gap:20px;margin-top:18px;display:flex}.normal-course-item>.schedule-code-with-hours{padding-right:30px}.normal-course-item>.schedule-course-color-button{position:absolute;top:6px;right:6px}.normal-course-item[data-custom-text-color=true]>strong,.normal-course-item[data-custom-text-color=true]>small,.normal-course-item[data-custom-text-color=true] .schedule-code-with-hours>small{color:inherit}.normal-course-item[data-custom-background-color=true] .normal-course-summary{background:0 0}.normal-course-item>strong{color:var(--primary)}.normal-course-name{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.normal-course-item>small{color:var(--subtext)}.normal-course-summary{background:var(--surface-muted);border-radius:6px;justify-content:space-between;align-items:center;gap:8px;margin-top:3px;padding:7px;font-size:11px;display:flex}.normal-course-summary>strong{font-weight:500}.schedule-course-library{max-height:calc(100dvh - 125px);padding:14px;position:sticky;top:100px;overflow-y:auto}.schedule-course-library h2{margin:0;font-size:17px}.schedule-course-list{gap:10px;display:grid}.schedule-library-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.schedule-library-heading>span{background:var(--surface-muted);color:var(--subtext);border-radius:20px;padding:2px 8px;font-size:11px}.schedule-library-item{border:1px solid var(--line);border-radius:9px;padding:8px}.schedule-library-main{position:relative}.schedule-library-main .schedule-code-with-hours{padding-right:28px}.schedule-library-main>.schedule-course-color-button{z-index:1;position:absolute;top:0;right:0}.schedule-library-item .schedule-library-card{border:0;padding:5px 2px}.schedule-library-card .schedule-course-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.schedule-library-tools{justify-content:flex-end;align-items:flex-start;gap:6px;margin-top:5px;display:flex}.schedule-library-details{min-width:0;color:var(--subtext);flex:1;font-size:11px}.schedule-library-details>summary{cursor:pointer;padding:6px 2px}.schedule-library-details>div{overflow-wrap:anywhere;gap:5px;padding:4px 2px;display:grid}.schedule-course-card{text-align:left;border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);font:inherit;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:6px;padding:10px 8px;font-size:12px;display:flex}.schedule-course-card>svg{color:var(--subtext);flex-shrink:0}.schedule-course-card>span{overflow-wrap:anywhere;gap:4px;min-width:0;display:grid}.schedule-course-card strong{color:var(--primary)}.schedule-code-with-hours{flex-wrap:wrap;align-items:baseline;gap:2px 7px;display:flex}.schedule-code-with-hours>small{color:var(--subtext);white-space:nowrap;font-size:10px;font-weight:400}.schedule-course-card small{color:var(--subtext)}.schedule-course-card[data-custom-text-color=true] strong,.schedule-course-card[data-custom-text-color=true] small,.schedule-course-card[data-custom-text-color=true]>svg{color:inherit}.schedule-course-color-button{flex-shrink:0;justify-content:center;width:30px;height:30px;min-height:0;margin:0;padding:0;font-size:12px}.student-roster-popup.schedule-course-colors-dialog{width:min(620px,100vw - 32px)}.schedule-course-colors-form{padding:24px}.schedule-color-fields{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:20px 0;padding:0;display:grid}.schedule-color-fields>legend{margin-bottom:14px;font-size:14px}.schedule-color-fields>div>label:first-child{gap:10px;font-size:13px;display:grid}.schedule-color-fields input[type=color]{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:6px;width:100%;height:44px;padding:4px}.schedule-color-default{align-items:center;gap:6px;margin-top:10px;font-size:11px;display:flex}.schedule-color-hex{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:6px;margin-top:8px;padding:8px 10px;font-size:12px}.schedule-color-preview{border:1px solid var(--line);overflow-wrap:anywhere;border-radius:8px;gap:8px;padding:20px;font-size:13px;display:grid}.schedule-course-colors-form .course-form-actions{flex-wrap:wrap}@media (max-width:520px){.schedule-color-fields{grid-template-columns:1fr}}.schedule-course-hours{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:5px;display:grid}.schedule-hours-status{background:var(--surface-muted);border:1px solid var(--line);border-radius:6px;gap:2px;padding:6px;font-size:11px;display:grid}.schedule-library-item .schedule-course-hours{margin-top:6px}.schedule-course-hours>:only-child{grid-column:1/-1}.schedule-hours-status strong{font-size:11px;font-weight:500}button.schedule-hours-status{text-align:left;width:100%;color:var(--text);cursor:pointer;font-family:inherit}button.schedule-hours-status.selected,button.schedule-hours-status:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.schedule-range-mode .schedule-drop-cell{touch-action:none;-webkit-user-select:none;user-select:none}.schedule-range-mode .schedule-empty-target:not(:disabled){cursor:crosshair}.schedule-hours-status.complete{background:color-mix(in srgb, #23965d 12%, var(--surface));border-color:#23965d}.schedule-hours-status.complete small{color:var(--text);font-weight:600}.schedule-formula-editor{border:1px solid var(--line);border-radius:9px;margin-bottom:24px;padding:16px}.schedule-formula-editor label{gap:8px;font-size:13px;display:grid}.schedule-course-card.selected,.schedule-course-card:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.schedule-drop-cell{border-radius:5px;height:100%;min-height:52px;position:relative}.schedule-drop-cell.drop-target{background:color-mix(in srgb, var(--primary) 18%, var(--surface));outline:2px dashed var(--primary)}.schedule-empty-target{width:100%;min-height:52px;color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0}.schedule-empty-target:disabled{cursor:default}.schedule-empty-target:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.schedule-remove-placement{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:4px;padding:2px;display:flex;position:absolute;top:2px;right:2px}.schedule-drop-cell .schedule-course-card{padding-top:22px;font-size:11px}.schedule-drop-cell .schedule-course-card>svg{display:none}.schedule-board-feedback p{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.supplementary-board>.supplementary-template{min-width:0}@media (max-width:1100px){.normal-course-board,.supplementary-board{grid-template-columns:210px minmax(0,1fr);gap:14px}}@media (max-width:760px){.normal-course-board,.supplementary-board{grid-template-columns:1fr}.schedule-course-library{max-height:310px;position:static}.schedule-course-list{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}}.schedule-template-section{min-width:0;padding:24px}.schedule-template-section h2{margin:0 0 18px;font-size:17px}.schedule-grid-wrap{overflow-x:auto}.supplementary-floating-grid{scrollbar-width:none;overflow-y:hidden}.supplementary-floating-grid::-webkit-scrollbar{display:none}.supplementary-floating-grid:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.supplementary-template>.schedule-template-section:last-of-type{padding-bottom:70px}.supplementary-grid{border-collapse:collapse;table-layout:fixed;text-align:center;width:100%;font-size:12px}.supplementary-grid th,.supplementary-grid td{border:1px solid var(--line);vertical-align:middle;padding:8px 5px}.supplementary-grid thead th{background:var(--surface-muted);color:var(--text);font-weight:500}.supplementary-grid .schedule-lunch-cell{background:var(--surface-muted);color:var(--subtext);font-size:11px}.supplementary-grid tbody th{background:var(--surface);font-weight:500}.schedule-week-column{width:62px}.schedule-date-column{width:118px}.schedule-blank-cell{height:27px}.schedule-time-dash{color:var(--subtext);line-height:1.3;display:block}.schedule-week-range span{margin:8px 0;display:block}.schedule-settings-link{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:22px 26px;display:flex}.schedule-settings-link h2{margin:0 0 6px;font-size:17px}.schedule-settings-link p{color:var(--subtext);margin:0;font-size:12px}.supplementary-settings-form{margin-bottom:28px;padding:26px}.schedule-settings-fields{border:0;min-width:0;margin:0;padding:0}.schedule-settings-fields>legend{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.schedule-settings-fields h2{margin:0 0 18px;font-size:18px}.schedule-settings-fields input:not([type=checkbox]):not([type=hidden]){font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:7px;min-width:0;padding:10px}.schedule-week-fields{flex-wrap:wrap;gap:18px;display:flex}.schedule-week-fields label{gap:8px;font-size:12px;display:grid}.schedule-weekday-picker{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;gap:18px;margin:20px 0;padding:16px;font-size:12px;display:flex}.schedule-weekday-picker label{align-items:center;gap:8px;display:flex}.schedule-slot-editors{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0 30px;display:grid}.schedule-slot-editor h3{margin:0 0 16px;font-size:15px}.schedule-slot-row{flex-wrap:wrap;align-items:end;gap:10px;margin-bottom:12px;font-size:12px;display:flex}.schedule-slot-row>span{align-self:center;min-width:46px}.schedule-slot-row label{gap:5px;display:grid}.schedule-settings-fields .time-24-input{font-variant-numeric:tabular-nums;width:112px}.schedule-date-editor{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:20px 0;display:grid}.schedule-date-row{align-items:end;gap:8px;display:flex}.schedule-date-row .setting-field{flex:1;min-width:0}.schedule-preview-heading{margin-bottom:20px;font-size:20px}.schedule-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;display:flex}.schedule-section-heading h2{margin:0}.student-roster-popup.schedule-settings-dialog{width:min(960px,100vw - 32px);max-height:90dvh}.schedule-settings-dialog .supplementary-settings-form{margin:0}.schedule-settings-dialog .schedule-slot-editors{grid-template-columns:1fr}.schedule-settings-dialog .course-form-actions{background:var(--surface);border-top:1px solid var(--line);padding:16px 0;position:sticky;bottom:0}@media (max-width:1000px){.schedule-slot-editors{grid-template-columns:1fr}.schedule-date-editor{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.schedule-date-editor{grid-template-columns:1fr}.schedule-template-section,.supplementary-settings-form{padding:18px}}.course-form{padding:28px}.course-form h2{margin:0 0 24px;font-size:16px}.course-form h2:not(:first-child){margin-top:28px}.course-hours{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.course-hint{color:var(--subtext);font-size:12px}.course-active{align-items:center;gap:9px;margin:20px 0;font-size:13px;display:flex}.course-form-actions{gap:12px;margin-top:24px;display:flex}.course-success{background:color-mix(in srgb, var(--primary) 10%, transparent);color:var(--primary);border-radius:10px;padding:14px 18px}@media (max-width:640px){.course-form{padding:20px}.course-form .settings-fields{grid-template-columns:1fr}.course-toolbar{padding:18px}.course-result-count{flex-direction:column;align-items:flex-start;padding:0 18px 18px}}.registration-course-picker{border:0;min-width:0;margin:0;padding:0}.registration-course-picker legend{margin-bottom:18px;font-size:16px;font-weight:600}.registration-course-options{gap:7px;max-height:310px;display:grid;overflow:auto}.registration-selected{color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent);border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.8}.registration-mode{max-width:480px;margin-top:26px}.registration-equivalent-option{border:1px solid var(--line);border-radius:8px;margin:16px 0 24px;padding:16px}.registration-equivalent-option>label{align-items:center;gap:8px;font-size:14px;display:flex}.required-mark{color:var(--danger)}.registration-dates{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.teaching-date-input{position:relative}.teaching-date-input>input{padding-inline-end:48px}.teaching-date-calendar{inset-inline-end:0;width:44px;color:var(--subtext);cursor:pointer;background:0 0;border:0;border-radius:0 8px 8px 0;place-items:center;display:grid;position:absolute;top:0;bottom:0}.teaching-date-calendar:focus-visible{outline:2px solid var(--primary);border-radius:6px}.thai-date-picker{border:1px solid var(--line);background:var(--surface);width:min(320px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--text);border-radius:12px;margin:0;padding:14px;position:fixed;overflow:auto;box-shadow:0 12px 40px #0003}.thai-date-picker-heading{align-items:center;gap:4px;margin-bottom:12px;display:flex}.thai-date-picker .thai-date-picker-heading button{width:28px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:6px;flex-shrink:0;place-items:center;padding:0;display:grid}.thai-date-picker .thai-date-picker-heading select{background:var(--surface);width:auto;min-width:0;min-height:32px;color:var(--text);font:inherit;border:0;border-radius:6px;flex:1;margin:0;padding:4px;font-size:13px}.thai-date-picker .thai-date-picker-heading label{flex-shrink:0;align-items:center;gap:2px;margin:0;font-size:12px;display:flex}.thai-date-picker .thai-date-picker-heading input{border:1px solid var(--line);width:62px;height:32px;min-height:32px;color:var(--text);background:var(--surface);border-radius:5px;margin:0;padding:4px;font-size:13px;line-height:1}.thai-date-picker .thai-date-picker-grid{border-collapse:separate;border-spacing:2px;table-layout:fixed;text-align:center;width:100%;min-width:0;font-size:12px}.thai-date-picker .thai-date-picker-grid th,.thai-date-picker .thai-date-picker-grid td{text-align:center;background:0 0;border:0;width:auto;min-width:0;padding:0}.thai-date-picker .thai-date-picker-grid th{height:28px;color:var(--subtext);font-weight:500}.thai-date-picker .thai-date-picker-grid button{width:100%;height:32px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:0}.thai-date-picker .thai-date-picker-grid button.other-month{color:var(--subtext);opacity:.6}.thai-date-picker .thai-date-picker-grid button.is-today{border-color:var(--primary)}.thai-date-picker .thai-date-picker-grid button[aria-pressed=true]{background:var(--primary);color:#fff;opacity:1}.thai-date-picker .thai-date-picker-grid button:disabled{opacity:.25;cursor:not-allowed}.thai-date-picker button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.thai-date-picker button:not(:disabled):hover{background:color-mix(in srgb, var(--primary) 12%, var(--surface));color:var(--text)}.thai-date-picker-footer{border-top:1px solid var(--line);justify-content:space-between;margin-top:10px;padding-top:10px;display:flex}.thai-date-picker-footer button{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:5px 8px;font-size:12px}.thai-date-picker-footer button:disabled{opacity:.4;cursor:not-allowed}@media (max-width:640px){.registration-dates{grid-template-columns:1fr}}.registration-count{padding-top:24px}.teaching-records-table td{vertical-align:middle}.teaching-record-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.student-roster-popup.teaching-documents-dialog{width:min(540px,100vw - 32px)}.overload-count-filters{flex-wrap:wrap;align-items:flex-end;gap:16px;padding:0 24px 24px;display:flex}.overload-count-filters .setting-field:first-child{flex:1;min-width:240px}.overload-count-filters .setting-field>span{align-items:center;gap:6px;margin-bottom:8px;font-size:13px;display:flex}.overload-count-table td{vertical-align:middle}.overload-count-table td:first-child{width:32%}.overload-count-table input{border:1px solid var(--line);width:100%;min-width:100px;max-width:180px;color:var(--text);background:var(--surface);font:inherit;border-radius:8px;padding:10px 12px}.overload-count-table tbody tr:hover>td{background:var(--surface-muted)}.overload-count-error{margin:0 24px 20px}.overload-count-pagination{justify-content:flex-end;align-items:center;gap:16px;padding:20px 24px 0;display:flex}.overload-pay-total{text-align:right;gap:4px;display:grid}.overload-pay-total>span{color:var(--subtext);font-size:12px}.overload-pay-total>strong{color:var(--primary);font-size:24px}.overload-pay-notice{color:var(--subtext);margin:0 24px 20px;font-size:13px}.overload-pay-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:2130px;font-size:12px}.overload-pay-table th,.overload-pay-table td{border:1px solid var(--line);text-align:center;vertical-align:middle;padding:14px 10px}.overload-pay-table th{background:var(--surface-muted);font-weight:500}.overload-pay-table .overload-teacher-name{min-width:150px}.overload-pay-table .overload-course-name{text-align:left;min-width:240px}.overload-pay-table .overload-group-name{min-width:135px}.overload-pay-table .overload-semester-total{color:var(--primary);min-width:110px;font-weight:600}.overload-pay-table tbody tr:hover>td{background:var(--surface-muted)}.overload-pay-table tfoot th,.overload-pay-table tfoot td{background:var(--surface-muted);border-top:2px solid var(--line);font-weight:600}.overload-pay-table tfoot th{text-align:left}.normal-overload-pay-table{min-width:1540px}.normal-overload-pay-table .normal-overload-course-name{text-align:left;min-width:240px}.normal-overload-pay-table .normal-overload-credits{white-space:nowrap;min-width:90px}.normal-overload-pay-table th{white-space:nowrap}.normal-overload-pay-table .normal-overload-empty{color:var(--subtext);padding:36px 20px}.normal-overload-summary{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;margin-top:28px;display:grid}.normal-overload-calculations{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.normal-overload-calculations caption{text-align:left;padding-bottom:14px;font-weight:600}.normal-overload-calculations th,.normal-overload-calculations td{border:1px solid var(--line);vertical-align:middle;text-align:center;padding:12px 10px}.normal-overload-calculations th{background:var(--surface-muted);font-weight:500}.normal-overload-calculations tbody th{text-align:left}.normal-overload-note{color:var(--subtext);margin:18px 0 0;font-size:12px;line-height:1.7}.department-pay-setting{color:var(--subtext);text-align:left;flex:0 0 180px;gap:5px;font-size:12px;display:grid}.department-pay-setting select{border:1px solid var(--line);background:var(--surface);width:100%;min-height:42px;color:var(--text);font:inherit;border-radius:8px;padding:9px 12px}.normal-approval-criteria{flex-wrap:wrap;align-items:center;gap:12px 20px;margin-bottom:24px;font-size:13px;display:flex}.normal-pay-approval-table{min-width:1540px}.normal-pay-approval-table th{white-space:nowrap}.normal-pay-approval-table td{min-width:58px}.normal-approval-checks{margin-top:28px}.normal-claim-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.normal-week-selector{flex-wrap:wrap;justify-content:flex-start;align-items:end;gap:16px;margin-bottom:24px;display:flex}.normal-week-selector label{gap:8px;width:min(450px,100%);font-size:13px;display:grid}.normal-week-selector label:first-child{width:min(240px,100%)}.normal-week-selector select{border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--text);font:inherit;border-radius:9px;padding:10px 12px}.normal-week-selector>span{color:var(--subtext);font-size:13px}.normal-weekly-claim-table{table-layout:fixed;min-width:1300px}.normal-weekly-claim-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.normal-weekly-claim-heading .normal-approval-criteria{margin-bottom:0}.normal-weekly-claim-table th,.normal-weekly-claim-table .normal-claim-date,.normal-weekly-claim-table .normal-claim-time{white-space:nowrap}.normal-weekly-claim-table .normal-claim-course{min-width:180px}.normal-weekly-claim-summary{width:min(100%,640px);margin-top:28px;margin-left:auto}.normal-weekly-claim-summary th{width:65%}.normal-weekly-claim-summary td:last-child{width:60px}.normal-weekly-claim-summary tr:last-child{font-weight:600}.normal-weekly-claim-summary tr:last-child td:nth-child(2){border-top:1px solid var(--text);border-bottom:3px double var(--text)}@media (max-width:1100px){.normal-overload-summary{grid-template-columns:minmax(0,1fr)}}.overload-report-months{flex-wrap:wrap;gap:10px;margin-bottom:24px;display:flex}.overload-report-toolbar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;padding:0 0 20px;display:flex}.overload-print-fields{gap:18px;display:grid}.pay-claim-header-preview{border:1px solid var(--line);background:var(--surface-muted);border-radius:10px;margin-top:20px;padding:20px}.pay-claim-header-preview>strong{color:var(--subtext);margin-bottom:16px;font-size:12px;font-weight:500;display:block}.pay-claim-header-preview>p{text-align:center;overflow-wrap:anywhere;margin:8px 0}.overload-print-fields label{text-align:left;gap:8px;display:grid}.overload-print-fields select{border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--text);font:inherit;border-radius:10px;padding:10px 12px}.overload-report-teacher-filter{justify-content:flex-start;margin-bottom:20px;display:flex}.schedule-review-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px;padding:20px 24px;display:flex}.schedule-review-selector{gap:8px;width:min(380px,100%);font-size:13px;display:grid}.schedule-review-selector select{border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--text);font:inherit;border-radius:9px;padding:10px 12px}.schedule-review-selector select:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.assessment-teacher-search{position:relative}.assessment-results-filters{align-items:end}.assessment-results-filters>button{min-height:44px}.executive-attendance-date-filter .setting-field{margin:0}.executive-attendance-overview{margin-bottom:28px}.executive-attendance-heading,.executive-attendance-band>header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.executive-attendance-heading{margin-bottom:16px}.executive-attendance-heading h2{margin:0 0 6px;font-size:20px}.executive-attendance-heading p,.executive-attendance-explanation{color:var(--subtext);margin:0;font-size:12px;line-height:1.8}.executive-attendance-bands{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.executive-attendance-band{min-width:0;padding:22px}.executive-attendance-band-title{color:var(--primary);align-items:center;gap:10px;display:flex}.executive-attendance-band-title h3{margin:0;font-size:17px}.executive-attendance-main{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;margin:24px 0 18px;display:flex}.executive-attendance-main>div>span{color:var(--subtext);font-size:12px;display:block}.executive-attendance-main>div>strong{color:var(--primary);font-size:34px;line-height:1.7;display:block}.executive-attendance-main small{font-size:13px;font-weight:400}.executive-attendance-main p{color:var(--subtext);margin:0 0 10px;font-size:12px}.executive-attendance-main .executive-attendance-rate{text-align:right}.executive-attendance-main .executive-attendance-rate>strong{color:var(--success)}.executive-attendance-rate>small{color:var(--subtext);display:block}.executive-attendance-recorded{color:var(--subtext);margin:0 0 14px;font-size:12px}.executive-attendance-statuses{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.executive-attendance-stat{border:1px solid var(--line);background:color-mix(in srgb,var(--attendance-overview-color) 5%,var(--surface));border-radius:10px;padding:12px}.executive-attendance-stat>span{color:var(--subtext);margin-bottom:6px;font-size:11px;display:block}.executive-attendance-stat>strong{color:var(--attendance-overview-color);font-size:23px}.executive-attendance-overview .is-present{--attendance-overview-color:var(--success)}.executive-attendance-overview .is-late{--attendance-overview-color:var(--work-report-pending)}.executive-attendance-overview .is-absent{--attendance-overview-color:var(--danger)}.executive-attendance-overview .is-personal_leave{--attendance-overview-color:#4285b8}.executive-attendance-overview .is-sick_leave{--attendance-overview-color:#a16bbd}.executive-attendance-overview .is-unmarked{--attendance-overview-color:var(--work-report-unreported)}.executive-attendance-bar{background:var(--surface-muted);border-radius:9px;height:9px;margin-top:18px;display:flex;overflow:hidden}.executive-attendance-bar>span{background:var(--attendance-overview-color)}.executive-attendance-rooms{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.executive-attendance-rooms>summary{cursor:pointer;color:var(--primary);font-size:13px}.executive-attendance-room-table{border-collapse:collapse;width:100%;min-width:620px;margin-top:14px;font-size:11px}.executive-attendance-room-table :is(th,td){text-align:center;border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 8px}.executive-attendance-room-table thead th{background:var(--surface-muted);color:var(--subtext);font-weight:500}.executive-attendance-room-table tbody th{text-align:left;font-weight:500}.executive-attendance-room-table small{color:var(--subtext);font-size:10px;display:block}.executive-attendance-explanation{margin-top:12px}.department-attendance-chart{margin-top:22px;padding:24px}.department-attendance-chart>header{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:16px;display:flex}.department-attendance-chart h3{margin:0 0 7px;font-size:18px}.department-attendance-chart header p,.department-attendance-chart-note{color:var(--subtext);margin:0;font-size:12px;line-height:1.8}.department-attendance-legend{align-items:center;gap:18px;font-size:12px;display:flex}.department-attendance-legend span{align-items:center;gap:7px;display:inline-flex}.department-attendance-chart .is-morning{--department-bar:var(--primary)}.department-attendance-chart .is-midday{--department-bar:#5b8ccb}.department-attendance-legend i{background:var(--department-bar);border-radius:3px;width:12px;height:12px}.department-attendance-axis{color:var(--subtext);justify-content:space-between;margin:24px 98px 6px 218px;font-size:10px;display:flex}.department-attendance-comparisons{margin:0;padding:0;list-style:none}.department-attendance-comparisons>li{border-bottom:1px solid var(--line);grid-template-columns:160px minmax(0,1fr);align-items:center;gap:18px;padding:14px 0;display:grid}.department-attendance-comparisons h4{overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:500}.department-attendance-pair{gap:8px;display:grid}.department-attendance-bar-row{grid-template-columns:30px minmax(0,1fr) 88px;align-items:center;gap:10px;display:grid}.department-attendance-band-label{color:var(--subtext);font-size:11px}.department-attendance-track{background:repeating-linear-gradient(to right,transparent,transparent calc(25% - 1px),var(--line) calc(25% - 1px),var(--line) 25%),var(--surface-muted);border-radius:4px;height:16px;overflow:hidden}.department-attendance-fill{background:var(--department-bar);border-radius:4px;height:100%}.department-attendance-value{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.department-attendance-value strong{color:var(--department-bar);font-size:12px}.department-attendance-value small{color:var(--subtext);font-size:10px}.department-attendance-chart-note{margin-top:16px}@media (max-width:700px){.department-attendance-chart{padding:18px 16px}.department-attendance-comparisons>li{grid-template-columns:minmax(0,1fr);gap:10px}.department-attendance-axis{margin-left:40px;margin-right:98px}}@media (max-width:1000px){.executive-attendance-bands{grid-template-columns:minmax(0,1fr)}}@media (max-width:520px){.executive-attendance-band{padding:16px}.executive-attendance-heading h2{font-size:18px}}.teaching-document-review-unavailable:disabled{cursor:not-allowed}.student-roster-popup.assessment-summary-popup{text-align:left;width:min(680px,100vw - 32px)}.assessment-summary-popup .assessment-summary-fields{gap:20px;min-height:0;padding:24px;display:grid}.assessment-summary-fields>.schedule-review-selector{width:100%}.assessment-summary-range{gap:16px;display:grid}.assessment-summary-range .schedule-review-selector{width:100%}.assessment-results-table th:first-child,.assessment-results-table td:first-child{text-align:center;width:64px}.assessment-results-table th:last-child,.assessment-results-table td:last-child{text-align:center;width:120px}.assessment-results-table th:nth-child(4),.assessment-results-table td:nth-child(4){text-align:center}.assessment-score-status{white-space:nowrap;border-radius:20px;padding:6px 10px;font-size:12px;display:inline-block}.assessment-score-status.is-empty{color:var(--subtext);background:var(--surface-muted)}.assessment-score-status.is-unconfirmed{color:var(--work-report-pending);background:color-mix(in srgb, var(--work-report-pending) 12%, var(--surface))}.assessment-score-status.is-confirmed{color:var(--success);background:color-mix(in srgb, var(--success) 12%, var(--surface))}.assessment-teacher-search input{border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--text);font:inherit;border-radius:9px;padding:10px 12px}.assessment-teacher-search input:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.assessment-teacher-options{z-index:20;border:1px solid var(--line);background:var(--surface);border-radius:9px;max-height:280px;margin:6px 0 0;padding:6px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0002}.assessment-teacher-options li{cursor:pointer;overflow-wrap:anywhere;border-radius:6px;padding:10px 12px}.assessment-teacher-options li.is-active{background:var(--surface-muted);color:var(--primary)}.assessment-teacher-options .assessment-teacher-empty{color:var(--subtext);cursor:default}.schedule-review-filters{flex-wrap:wrap;flex:540px;gap:16px;min-width:0;display:flex}.schedule-review-filters .schedule-review-selector{flex:240px;min-width:0;max-width:340px}.review-status-select{position:relative}.review-status-trigger{border:1px solid var(--line);background:var(--surface);width:100%;min-height:44px;color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:10px 12px;display:flex}.review-status-trigger>svg{color:var(--subtext);flex-shrink:0}.review-status-trigger:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.review-status-trigger:disabled{opacity:.7;cursor:wait}.review-choice-content{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.review-choice-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.review-choice-badge{white-space:nowrap;border-radius:6px;flex-shrink:0;padding:3px 7px;font-size:10px;font-weight:500;line-height:1.4}.review-choice-badge.is-pending{color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, var(--surface))}.review-choice-badge.is-complete{color:var(--subtext);background:var(--surface-muted)}.review-status-options{z-index:30;border:1px solid var(--line);background:var(--surface);border-radius:10px;outline:none;width:100%;max-height:300px;padding:5px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 10px 28px #0002}.review-status-option{color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:10px 8px;display:flex}.review-status-option.is-active{background:var(--surface-muted)}.review-status-option[aria-selected=true] .review-choice-name{color:var(--primary);font-weight:600}.schedule-review-status{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.schedule-review-status .primary-button,.schedule-review-status .secondary-button{min-height:38px;padding:9px 13px;font-size:12px}.schedule-return-notice{margin-bottom:20px;padding:18px 22px}.schedule-return-notice strong{color:var(--primary)}.schedule-return-notice p{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);margin:8px 0 0;font-size:13px;line-height:1.8}.schedule-review-preview .merged-course-block{cursor:default}.pay-report-teacher-picker{gap:8px;width:min(360px,100%);min-width:0;font-size:13px;font-weight:500;display:grid}.pay-report-teacher-control{color:var(--subtext);align-items:center;display:flex;position:relative}.pay-report-teacher-control>svg{pointer-events:none;position:absolute}.pay-report-teacher-control>svg:first-child{left:14px}.pay-report-teacher-control>svg:last-child{right:14px}.pay-report-teacher-control select{appearance:none;box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;min-height:46px;color:var(--text);font:inherit;cursor:pointer;border-radius:10px;padding:11px 40px 11px 42px;font-size:14px;font-weight:400;line-height:1.5;transition:border-color .15s,box-shadow .15s}.pay-report-teacher-control select:hover{border-color:var(--primary)}.pay-report-teacher-control select:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent);outline:none}.pay-report-teacher-control select:disabled{opacity:.7;cursor:wait}.overload-table-actions{flex-wrap:wrap;justify-content:flex-end;align-items:flex-start;gap:8px;margin-bottom:18px;display:flex}.overload-table-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.overload-table-filters{flex:280px;min-width:0;max-width:380px}.overload-table-filters .schedule-review-selector{width:100%}.overload-table-toolbar .overload-table-actions{margin-bottom:0}.overload-table-actions .primary-button{gap:6px;min-height:36px;padding:8px 12px;font-size:12px}.overload-table-actions .primary-button svg{width:15px;height:15px}.overload-table-actions .secondary-button{gap:6px;min-height:36px;padding:8px 12px;font-size:12px}.student-roster-popup.overload-review-popup{text-align:left;width:min(520px,100vw - 32px)}.overload-review-popup>form{flex-direction:column;min-height:0;display:flex}.overload-review-popup .roster-popup-header{padding:20px 24px}.overload-review-popup .roster-popup-header h2{font-size:20px}.overload-review-popup .roster-popup-body{padding:22px 24px}.overload-review-popup .roster-popup-footer{flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:16px 24px}.overload-review-field{font-size:13px;font-weight:500;display:block}.overload-review-field textarea{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:100%;min-height:140px;color:var(--text);font:inherit;resize:vertical;border-radius:9px;outline:none;margin-top:10px;padding:12px 14px;font-weight:400;line-height:1.7;display:block}.overload-review-field textarea::placeholder{color:var(--subtext)}.overload-review-field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent)}.overload-review-note{white-space:pre-wrap;overflow-wrap:anywhere;width:100%}.content-card.overload-review-note{margin-bottom:18px}.overload-confirm-control{justify-items:end;gap:8px;display:grid}.overload-confirm-control small{color:var(--subtext);font-size:12px}.overload-period-filter{margin:0 0 24px}.overload-department-summary{justify-content:space-between;align-items:center;gap:16px;margin:0 24px 24px;display:flex}.overload-department-summary>strong{color:var(--primary)}.overload-monthly-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;min-width:1250px;font-size:12px}.overload-monthly-table th,.overload-monthly-table td{border:1px solid var(--line);vertical-align:middle;text-align:center;padding:14px 10px}.overload-monthly-table th{background:var(--surface-muted);font-weight:500}.overload-monthly-table td:nth-child(3){text-align:left;min-width:180px}.overload-monthly-table td:first-child,.overload-monthly-table td:nth-child(2),.overload-monthly-table td:nth-child(7){white-space:nowrap}.overload-monthly-table tbody tr:hover>td{background:var(--surface-muted)}.overload-monthly-table tfoot th{text-align:right}.overload-monthly-table tfoot td{color:var(--primary);font-weight:600}.overload-monthly-table td.overload-remark-cell{text-align:center;width:80px;min-width:80px}.overload-remark-trigger{min-width:36px;min-height:36px;color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:6px 8px;display:inline-flex}.overload-remark-trigger>span,.overload-remark-trigger>small{white-space:nowrap}.overload-remark-trigger>small{font-size:11px}.overload-remark-trigger:hover{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}.overload-remark-trigger:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.student-roster-popup.overload-remark-dialog{width:min(460px,100vw - 32px)}.overload-remark-form{padding:24px}.overload-remark-actions{justify-content:flex-end;gap:10px;margin-top:10px;display:flex}.overload-remark-cell fieldset{border:0;gap:10px;min-width:0;margin:0;padding:0;display:grid}.overload-remark-cell select{border:1px solid var(--line);background:var(--surface);width:100%;min-width:160px;min-height:40px;color:var(--text);font:inherit;border-radius:8px;padding:10px 12px}.overload-remark-cell .setting-field input{width:100%;min-width:0}.overload-remark-cell .secondary-button{justify-self:start}.overload-remark-document{gap:8px;max-width:260px;display:grid}.overload-remark-document label{font-size:12px}.overload-remark-document input{max-width:100%;font-size:11px}.overload-remark-document a{color:var(--primary);overflow-wrap:anywhere;align-items:center;gap:6px;font-size:12px;display:flex}.teaching-documents-dialog>form{text-align:left;width:100%}.teaching-document-upload{margin-top:20px}.teaching-document-upload input{max-width:100%}.teaching-document-list{gap:10px;margin-top:20px;display:grid}.teaching-document-list a{border:1px solid var(--line);border-radius:8px;align-items:center;gap:10px;padding:12px;display:flex}.teaching-document-list a span{overflow-wrap:anywhere;flex:1;min-width:0}.teaching-document-list a strong,.teaching-document-list a small{display:block}.teaching-document-list a small{color:var(--subtext);margin-top:4px}.teaching-document-error{margin:0 24px 24px}.score-topic-settings{padding:28px}.score-report-options{border:1px solid var(--line);background:var(--surface);width:190px;color:var(--text);border-radius:10px;margin:0;padding:6px;position:fixed;inset:auto;box-shadow:0 8px 25px #0002}.score-report-options :is(button,a){width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;padding:12px;text-decoration:none;display:flex}.score-report-options :is(button,a):hover,.score-report-options :is(button,a):focus-visible{background:var(--surface-muted)}.score-report-options button:disabled{opacity:.45;cursor:not-allowed}.score-confirmed-notice{margin-bottom:20px}.score-locked-editor{opacity:.7}.score-topic-settings h2{margin:0 0 20px;font-size:18px}.score-topic-type{max-width:360px}.student-roster-popup.score-criteria-dialog{width:min(440px,100vw - 32px)}.score-criteria-body,.score-criteria-defaults{border:0;min-width:0;margin:0}.score-criteria-body{padding:24px}.score-criteria-defaults{padding:0}.score-criteria-grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.score-criteria-dialog .score-criteria-grid>.setting-field{grid-template-columns:minmax(0,1fr) minmax(80px,160px);align-items:center;gap:16px;display:grid}.score-criteria-dialog .score-criteria-grid>.setting-field>label{margin:0}.score-criteria-dialog .score-criteria-grid input{width:100%;min-width:0}.score-criteria-total{background:var(--surface-muted);border:1px solid var(--line);text-align:right;border-radius:8px;margin-top:20px;padding:14px;font-weight:600}.score-criteria-total.is-invalid{color:var(--danger)}.score-criteria-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.score-criteria-loading{padding:24px}.score-criteria-default-card{margin-bottom:20px;padding:24px}.score-criteria-default-card h2{margin:0 0 24px;font-size:18px}.score-topic-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.score-topic-heading h2{margin:0}.student-scores{border-top:1px solid var(--line);margin-top:32px;padding-top:28px}.student-scores-scroll{overflow-x:auto}.student-scores-table{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%}.student-scores-template{min-width:0}.student-scores-table :is(th,td):nth-child(-n+3){z-index:2;background:var(--surface);position:sticky}.student-scores-table :is(th,td):first-child{left:0}.student-scores-table :is(th,td):nth-child(2){left:60px}.student-scores-table :is(th,td):nth-child(3){left:210px;box-shadow:4px 0 6px #00000008}.student-scores-table thead th:nth-child(-n+3){z-index:4;background:var(--surface-muted)}.student-scores-table tbody tr:hover>td{background:var(--surface-muted)}.student-scores-table th,.student-scores-table td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:14px}.student-scores-table th{background:var(--surface-muted)}.student-scores-table th small{white-space:nowrap;color:var(--subtext);margin-top:6px;font-weight:400;display:block}.student-scores-table td:nth-child(3){min-width:220px}.student-scores-table input{border:1px solid var(--line);background:var(--surface);width:100px;color:inherit;border-radius:8px;padding:10px}.student-scores-table tbody tr:hover{background:var(--surface-muted)}.student-scores-table th.student-score-topic{text-align:center;vertical-align:bottom;width:100px;min-width:100px}.student-score-title{writing-mode:vertical-rl;text-orientation:mixed;overflow-wrap:anywhere;text-align:left;min-height:100px;max-height:210px;margin:0 auto;transform:rotate(180deg)}.student-scores-table th small.student-score-max{color:var(--danger);margin-top:12px;font-size:15px;font-weight:700}.student-score-topic-actions{justify-content:center;gap:4px;margin-top:10px;display:flex}.student-score-topic-actions .icon-button{width:28px;height:28px;padding:4px}.student-scores-table .student-score-cell{text-align:center}.student-scores-table .student-score-total{text-align:center;background:var(--surface-muted)}.student-score-total strong{color:var(--primary)}.score-totals-table{min-width:0;font-size:clamp(10px,.85vw,13px)}.score-totals-table th,.score-totals-table td{overflow-wrap:anywhere;white-space:normal;padding:10px 4px}.student-scores-table.score-totals-table :is(th,td):nth-child(-n+3){box-shadow:none;position:static}.score-totals-table td:nth-child(3){min-width:0}.score-totals-table th,.score-totals-table td:nth-child(n+4){text-align:center}.score-totals-table input[readonly]{width:100%;min-width:0;font:inherit;text-align:center;background:var(--surface-muted);padding:9px 2px}.score-totals-table input.score-grade-value{background:var(--surface)}.score-totals-table select.score-grade-value{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;color:inherit;font:inherit;border-radius:8px;padding:10px 6px}.student-scores-table .student-score-cell input{text-align:center;width:76px}.student-score-toolbar{flex-wrap:wrap;justify-content:flex-end;gap:12px;margin-bottom:12px;display:flex}.student-score-toolbar .primary-button{padding:10px}.score-topic-dialog{width:min(480px,100vw - 32px)}.score-topic-dialog .setting-field+.setting-field{margin-top:20px}.score-copy-dialog{width:min(640px,100vw - 32px)}.score-copy-dialog .setting-field+.setting-field{margin-top:20px}.score-topic-list{gap:16px;margin-top:24px;display:grid}.score-topic-fields{border:0;min-width:0;margin:0;padding:0}.score-topic-add{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;display:flex}.score-topic-row{border:1px solid var(--line);border-radius:10px;grid-template-columns:28px minmax(0,1fr) minmax(120px,200px) auto;align-items:end;gap:16px;padding:18px;display:grid}.score-topic-number{color:var(--subtext);text-align:center;align-self:center}.score-topic-row>.icon-button{margin-bottom:4px}.score-topics-empty{border:1px dashed var(--line);text-align:center;border-radius:10px;margin:24px 0 0;padding:24px}@media (max-width:640px){.score-topic-settings{padding:20px}.score-topic-row{grid-template-columns:24px minmax(0,1fr) auto;gap:12px}.score-topic-row .setting-field:nth-of-type(2){grid-column:2}.score-topic-row>.icon-button{grid-area:1/3/3;align-self:center}}.teaching-record-editor{padding:28px}.teaching-record-editor .sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.teaching-record-editor .required-mark{color:var(--danger)}.teaching-record-date{max-width:340px}.teaching-record-date select{width:100%}.teaching-record-fields{border:0;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:20px;min-width:0;margin:24px 0 0;padding:0;display:grid}.teaching-record-fields .setting-field{min-width:0;margin:0}.teaching-record-fields .full-width{grid-column:1/-1}.teaching-record-save{justify-content:flex-end;margin-top:24px;display:flex}.teaching-record-sections{border:0;min-width:0;margin:28px 0 0;padding:0}.teaching-record-section{border-top:1px solid var(--line);padding:24px 0}.teaching-record-section h2{margin:0 0 18px;font-size:18px}.teaching-record-counts{grid-template-columns:repeat(2,minmax(0,240px));gap:20px;margin-top:18px;display:grid}.teaching-record-room-picker{border:1px solid var(--line);border-radius:12px;min-width:0;margin:24px 0;padding:20px}.teaching-record-room-picker legend{padding:0 8px;font-size:15px;font-weight:600}.teaching-record-room-options{flex-wrap:wrap;gap:12px;margin-top:14px;display:flex}.teaching-record-room-options>label{border:1px solid var(--line);cursor:pointer;background:var(--surface);border-radius:10px;align-items:center;gap:12px;padding:14px 18px;display:flex}.teaching-record-room-options>label:has(input:checked){border-color:var(--primary);background:color-mix(in srgb, var(--primary) 7%, var(--surface))}.teaching-record-room-options input{width:18px;height:18px;accent-color:var(--primary)}.teaching-record-room-options strong{font-size:13px;display:block}.teaching-record-room-options small{color:var(--subtext);margin-top:5px;display:block}.teaching-record-room-counts{background:var(--surface-muted);border:1px solid var(--line);border-radius:10px;margin-top:18px;padding:16px}.teaching-record-room-counts>strong{font-size:13px}.teaching-record-remedial>.teaching-record-date{margin:20px 0}.teaching-record-images{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:20px;display:grid}.teaching-record-image{border:1px solid var(--line);border-radius:12px;min-width:0;overflow:hidden}.teaching-record-image.is-drag-over{outline:2px solid var(--primary);outline-offset:2px;border-color:var(--primary)}.teaching-record-image.is-drag-over .teaching-record-image-preview{background:color-mix(in srgb, var(--primary) 12%, var(--surface))}.teaching-record-image-preview small{font-size:11px}.teaching-record-counts input[aria-invalid=true]{border-color:var(--danger)}.teaching-record-image-preview{aspect-ratio:4/3;background:var(--surface-muted);place-items:center;display:grid}.teaching-record-image-preview>span{color:var(--subtext);justify-items:center;gap:10px;font-size:13px;display:grid}.teaching-record-image-preview img{object-fit:contain;width:100%;height:100%;min-height:0}.teaching-record-image-actions{justify-content:center;align-items:center;gap:8px;padding:12px;display:flex}.teaching-record-image-actions .secondary-button{cursor:pointer;min-height:36px;padding:8px 12px;font-size:12px}.teaching-record-image-actions input[type=file]{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.teaching-record-image-actions:focus-within{outline:2px solid var(--primary);outline-offset:-2px}@media (max-width:1000px){.teaching-record-images{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.teaching-record-editor{padding:20px}.teaching-record-fields{grid-template-columns:minmax(0,1fr)}.teaching-record-date{max-width:none}.teaching-record-counts{grid-template-columns:minmax(0,1fr)}}.teaching-records-table tbody tr:hover>td{background:var(--surface-muted)}.teaching-records-table td:first-child{width:40%}.teaching-records-table th:last-child,.teaching-records-table td:last-child{text-align:center;vertical-align:middle}.teaching-records-table td:last-child>.teaching-record-actions{justify-content:center}.registration-table td{vertical-align:top}.registration-table>tbody>tr>td,.users-table>tbody>tr>td,.department-sortable-table>tbody>tr>td,.courses-table>tbody>tr>td{transition:background-color .12s}.registration-table>tbody>tr>td:nth-child(2),.registration-table>tbody>tr>td:nth-child(4){vertical-align:middle}.registration-table>tbody>tr:hover>td,.registration-table>tbody>tr:focus-within>td,.users-table>tbody>tr:hover>td,.department-sortable-table>tbody>tr:hover>td,.courses-table>tbody>tr:hover>td{background-color:color-mix(in srgb, var(--primary) 12%, var(--surface))}.registration-table th:nth-child(2),.registration-table td:nth-child(2){min-width:150px}.registration-table th:nth-child(3),.registration-table td:nth-child(3){min-width:160px}.registration-table th:nth-child(4),.registration-table td:nth-child(4){white-space:nowrap}.student-count-link{color:var(--primary);border:1px solid color-mix(in srgb, var(--primary) 25%, var(--line));text-decoration:none}.student-count-link:hover{background:color-mix(in srgb, var(--primary) 15%, var(--surface));text-decoration:underline}.student-count-link:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.roster-course-context{margin-bottom:20px;padding:20px 24px}.roster-course-context p{color:var(--subtext);margin:8px 0 0;font-size:12px;line-height:1.8}.student-roster-table{min-width:560px}.student-additional-badge{white-space:nowrap;color:var(--primary);margin-inline-start:10px}.student-roster-table td:first-child{width:80px}.student-roster-table th:nth-child(2),.student-roster-table td:nth-child(2){width:200px}.student-count-link{font:inherit;cursor:pointer}.student-roster-popup{text-align:left;border:1px solid var(--line);width:min(900px,100vw - 32px);max-height:85dvh;color:var(--text);background:var(--surface);border-radius:16px;padding:0;box-shadow:0 24px 90px #0004}.student-roster-popup[open]{flex-direction:column;display:flex}.student-roster-popup::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0c203b80}.extra-students-body{padding:24px}.extra-student-hint{color:var(--subtext)}.extra-student-search{gap:10px;font-weight:600;display:grid}.extra-student-search input{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:12px}.extra-student-options{border:1px solid var(--line);border-radius:10px;max-height:240px;margin:18px 0;padding:12px;overflow-y:auto}.extra-student-options label{cursor:pointer;align-items:flex-start;gap:12px;padding:12px;display:flex}.extra-student-options small{color:var(--subtext);margin-top:5px;display:block}.extra-student-add{margin:16px 0}.extra-students-body h3{margin:18px 0}.roster-popup-header{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 24px;display:flex}.roster-popup-header h2{margin:0;font-size:20px}.roster-popup-header p{color:var(--subtext);margin:7px 0 0;font-size:12px}.roster-popup-close{border:1px solid var(--line);width:34px;height:34px;color:var(--subtext);background:var(--surface);cursor:pointer;border-radius:8px;flex-shrink:0;place-items:center;display:grid}.roster-popup-close:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.roster-popup-context{flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;font-size:12px;display:flex}.roster-popup-context strong{color:var(--primary);font-weight:500}.roster-popup-body{min-height:100px;overflow:auto}.roster-popup-message{color:var(--subtext);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:30px 20px;font-size:13px;display:flex}.roster-popup-footer{border-top:1px solid var(--line);color:var(--subtext);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;font-size:11px;display:flex}@media (max-width:600px){.roster-popup-header,.roster-popup-context,.roster-popup-footer{padding:16px}.roster-popup-context{align-items:flex-start}.roster-popup-footer span{max-width:65%}}.course-details-trigger{cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-family:inherit}.course-details-trigger:hover{text-decoration:underline}.course-details-trigger:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:3px}.schedule-code-with-hours .course-details-trigger{color:inherit;font-size:inherit}.course-details-body{padding:24px}.course-details-intro h3{margin:0;font-size:20px;line-height:1.7}.course-details-intro>p{color:var(--subtext);margin:6px 0;font-size:13px}.course-details-hours{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0;display:grid}.course-details-hours>div{background:var(--surface-muted);border:1px solid var(--line);border-radius:10px;padding:16px}.course-details-hours dt{color:var(--subtext);font-size:12px}.course-details-hours dd{color:var(--primary);margin:8px 0 0;font-size:22px;font-weight:600}.course-details-section{border-top:1px solid var(--line);padding:20px 0}.course-details-section h3{margin:0 0 12px;font-size:14px}.course-details-section p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.9}.course-details-program{margin:12px 0}.course-details-program strong{font-size:13px;font-weight:500}.course-details-program p{color:var(--subtext);font-size:12px}@media (max-width:600px){.course-details-body{padding:16px}.course-details-hours{gap:6px}.course-details-hours>div{padding:12px 8px}.course-details-hours dt{font-size:11px}.course-details-intro h3{font-size:17px}}.registration-row-actions{align-items:flex-start;gap:8px;display:flex}.academic-period-create{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-top:20px;display:flex}.academic-period-create label{font-size:13px;display:block}.academic-period-create-card{margin-bottom:20px}.academic-period-create-card h2{font-size:18px}.academic-period-table{min-width:1040px}.academic-period-table td:first-child{width:12%}.academic-period-table td{vertical-align:middle}.academic-period-table .soft-badge{white-space:nowrap}.academic-period-date{white-space:nowrap;line-height:1.8;display:block}.academic-period-actions{align-items:flex-start;gap:8px;display:flex}.academic-period-actions>button,.academic-period-actions>form>button{white-space:nowrap;min-height:42px}.academic-period-dialog{width:min(680px,100vw - 32px)}.academic-period-dialog .roster-popup-header{align-items:center}.academic-period-edit-form{padding:24px}.academic-period-edit-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:12px;margin-top:24px;padding-top:20px;display:flex}.academic-period-edit-fields{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0;padding:0;display:grid}.academic-period-edit-fields>label{font-size:13px;display:block}.academic-period-edit-fields>label input,.academic-period-edit-fields>label select{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);border-radius:8px;margin-top:8px;padding:11px 14px;display:block}.academic-period-create .setting-field{flex:200px;margin:0}.academic-period-create .teaching-date-input>input{width:100%;min-width:0;margin-top:0;padding-right:44px}@media (max-width:560px){.academic-period-edit-form{padding:20px 16px}.academic-period-dialog .roster-popup-header h2{font-size:18px}.academic-period-edit-fields{grid-template-columns:1fr}.academic-period-edit-actions{flex-wrap:wrap}}.academic-period-create input,.academic-period-create select{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;min-height:43px;margin-top:8px;padding:11px 14px;display:block}.registration-row-actions>button,.registration-row-actions>form>button{box-sizing:border-box;white-space:nowrap;flex-shrink:0;width:auto;height:42px;min-height:42px;padding:8px 10px;font-size:12px}.registration-table{min-width:1100px}.registration-table td:first-child{width:27%}.registration-form-dialog{width:min(1000px,100vw - 32px);max-height:90dvh}.registration-popup-form{padding:24px}.registration-popup-form .course-form-actions{background:var(--surface);border-top:1px solid var(--line);margin-top:24px;padding:16px 0;position:sticky;bottom:-24px}.registration-popup-form .registration-course-options{max-height:220px}.registration-popup-form .program-picker-options{max-height:210px}.registration-toast{z-index:1000;background:var(--primary);color:#fff;border-radius:12px;max-width:calc(100vw - 48px);padding:16px 22px;font-size:13px;position:fixed;bottom:24px;right:24px;box-shadow:0 8px 24px #0002}@media (max-width:600px){.registration-popup-form{padding:16px}.registration-popup-form .course-form-actions{bottom:-16px}}.app-toast-region{color:var(--text);z-index:10000;pointer-events:none;background:0 0;border:0;gap:10px;width:min(390px,100vw - 32px);margin:0;padding:0;display:grid;position:fixed;inset:94px 22px auto auto;overflow:visible}.report-page-actions{flex-wrap:wrap;gap:10px;display:flex}.attendance-report-filters{grid-template-columns:minmax(170px,.8fr) minmax(220px,1.5fr) minmax(200px,1.2fr);align-items:end;gap:18px;display:grid}.attendance-report-filters>label{font-size:12px;font-weight:500;display:block}.attendance-report-filters>label input,.attendance-report-filters>label select{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;min-height:44px;color:var(--text);font:inherit;border-radius:8px;margin-top:9px;padding:10px 12px;display:block}.attendance-report-filters>button{justify-self:start}.attendance-report-filters input[readonly]{background:var(--surface-muted);color:var(--subtext);cursor:default}.report-summary{grid-template-columns:1fr 1fr 1fr 1.5fr;gap:14px;margin:20px 0;display:grid}.report-summary>div{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:20px}.report-summary span{color:var(--subtext);margin-bottom:10px;font-size:12px;display:block}.report-summary strong{color:var(--primary);font-size:25px;display:block}.report-summary strong small{color:var(--subtext);font-size:12px;font-weight:400}.report-summary .report-total-statuses{font-size:21px}.attendance-report-card{min-width:0;margin-top:20px}.report-table-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.report-table-heading h2{margin:12px 0 8px;font-size:18px}.report-table-heading p{color:var(--subtext);margin:0;font-size:12px}.report-legend{flex-wrap:wrap;gap:14px;margin:22px 0 14px;font-size:12px;display:flex}.report-legend>span{align-items:center;gap:6px;display:inline-flex}.attendance-report-template{min-width:0;padding-bottom:55px}.attendance-report-scroll{border:1px solid var(--line);scrollbar-width:none;border-radius:10px;overflow:auto hidden}.attendance-report-scroll::-webkit-scrollbar{display:none}.report-sticky-header{z-index:35;background:var(--surface-muted);position:fixed;overflow:hidden;box-shadow:0 3px 8px #0002}.report-sticky-header .attendance-report-table thead th{top:auto}.attendance-report-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12px}.attendance-report-table th,.attendance-report-table td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:center;white-space:nowrap;background:var(--surface);padding:12px 9px}.attendance-report-table thead th{z-index:3;background:var(--surface-muted);color:var(--subtext);min-width:60px;font-weight:500;position:sticky;top:0}.attendance-report-table .report-number{z-index:2;width:54px;min-width:54px;max-width:54px;position:sticky;left:0}.attendance-report-table .report-person{text-align:left;z-index:2;white-space:normal;width:230px;min-width:230px;max-width:230px;position:sticky;left:54px;box-shadow:4px 0 8px #00000008}.attendance-report-table thead .report-number,.attendance-report-table thead .report-person{z-index:4}.attendance-report-table .report-attendance-total{z-index:2;width:100px;min-width:100px;position:sticky;right:0;box-shadow:-4px 0 8px #00000008}.attendance-report-table thead .report-attendance-total{z-index:4}.attendance-report-table .report-person strong{font-weight:500;line-height:1.6;display:block}.attendance-report-table .report-person small{color:var(--subtext);margin-top:3px;display:block}.attendance-report-table .report-person .soft-badge{margin:5px 4px 0 0;font-size:9px}.attendance-report-table tbody tr:hover>*{background:color-mix(in srgb, var(--primary) 6%, var(--surface))}.attendance-report-table .report-day{min-width:55px;padding:12px 5px}.report-day>span{writing-mode:vertical-rl;margin:0 auto 10px;font-size:11px;display:block;transform:rotate(180deg)}.report-day a,.report-day small{font-size:9px;font-weight:400;display:block}.report-day a{color:var(--primary);text-underline-offset:3px;text-decoration:underline}.report-day-select{border:1px solid var(--line);background:var(--surface);width:30px;height:30px;color:var(--primary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;margin:auto;padding:0;display:inline-flex}.report-day-select:hover{background:var(--background);border-color:var(--primary)}.report-person-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.report-person-heading strong{min-width:0}.report-student-select{border:1px solid var(--line);background:var(--surface);width:30px;height:30px;color:var(--primary);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.report-student-select:hover{border-color:var(--primary)}.report-status{width:30px;height:30px;font:inherit;border:0;border-radius:7px;place-items:center;padding:0;font-size:12px;font-weight:600;display:inline-grid;position:relative}button.report-status{cursor:pointer}.report-status.present,.report-status-label.present{color:#17623e;background:#e7f5ee}.report-status.late,.report-status-label.late{color:#825500;background:#fff3d9}.report-status.absent,.report-status-label.absent{color:#a02222;background:#fceaea}.report-status.personal_leave,.report-status-label.personal_leave{color:#285ca1;background:#e9f0fc}.report-status.sick_leave,.report-status-label.sick_leave{color:#7140a4;background:#f2ebfc}.report-status.unmarked,.report-status-label.unmarked{background:var(--surface-muted);color:var(--subtext)}.report-status i{background:currentColor;border-radius:50%;width:4px;height:4px;position:absolute;top:3px;right:3px}.report-status:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.report-percentage{color:var(--primary)}.attendance-criteria-dialog{width:min(540px,100vw - 32px)}.attendance-criteria-body{padding:24px}.attendance-criteria-body>p:first-child{color:var(--subtext);margin:0 0 10px;font-size:13px}.attendance-criteria-fields{gap:12px;margin:20px 0;display:grid}.attendance-criteria-fields>label{justify-content:space-between;align-items:center;gap:20px;font-size:14px;display:flex}.attendance-criteria-fields>label>div{align-items:center;gap:10px;display:flex}.attendance-criteria-fields input{border:1px solid var(--line);background:var(--surface);width:130px;color:var(--text);font:inherit;text-align:right;border-radius:8px;padding:10px 12px}.attendance-criteria-footer{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;padding:18px 24px;display:flex}.attendance-criteria-loading{align-items:center;gap:8px;margin:0;padding:24px;display:flex}.report-export-menu{position:relative}.report-export-menu summary{cursor:pointer;list-style:none}.report-export-menu summary::-webkit-details-marker{display:none}.report-export-options{z-index:50;background:var(--surface);border:1px solid var(--line);border-radius:10px;min-width:230px;padding:7px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 8px 25px #0002}.report-export-options a{color:var(--text);border-radius:6px;align-items:center;gap:10px;padding:12px;font-size:13px;text-decoration:none;display:flex}.report-export-options a:hover{background:var(--surface-muted)}.report-export-options small{color:var(--subtext);margin-top:3px;font-size:11px;display:block}.report-fraction{color:var(--subtext);margin-top:5px;font-size:10px;display:block}.report-muted{color:var(--subtext)}.report-percentage-help{color:var(--subtext);margin:16px 0 0;font-size:11px;line-height:1.8}.report-detail-dialog{width:min(460px,100vw - 32px)}.report-detail-body{padding:24px}.report-detail-body h3{margin:0;font-size:16px}.report-detail-body p{color:var(--subtext);font-size:12px;line-height:1.8}.report-detail-body h4{margin-bottom:6px;font-size:13px}.report-status-label{border-radius:7px;padding:8px 16px;font-size:13px;display:inline-block}.report-detail-body .report-note{white-space:pre-wrap;overflow-wrap:anywhere}.report-status-picker{border:1px solid var(--line);background:var(--surface);width:min(250px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--text);border-radius:12px;margin:0;padding:12px;position:fixed;overflow:auto;box-shadow:0 10px 35px #0003}.report-status-picker-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:10px;padding:3px 3px 12px;display:flex}.report-status-picker-heading strong{font-size:12px;line-height:1.6;display:block}.report-status-picker-heading small{color:var(--subtext);margin-top:3px;font-size:10px;display:block}.report-status-picker-heading>button{color:var(--subtext);cursor:pointer;background:0 0;border:0;padding:3px}.report-status-choices{gap:3px;padding-top:8px;display:grid}.report-status-choices>button{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:10px;padding:6px;font-size:12px;display:flex}.report-status-choices>button>svg{color:var(--primary);margin-left:auto}.report-status-choices>button:hover,.report-status-choices>button[aria-pressed=true]{background:var(--surface-muted)}.report-status-choices>button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.report-status-choices>button:disabled{opacity:.5;cursor:wait}.report-status-picker>p{align-items:center;gap:7px;margin:10px 3px 0;font-size:11px;line-height:1.7;display:flex}@media (max-width:1000px){.attendance-report-filters,.report-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.attendance-report-filters{grid-template-columns:1fr}.report-summary>div{padding:14px}.report-summary strong{font-size:21px}.report-summary .report-total-statuses{font-size:17px}.attendance-report-table .report-person{width:180px;min-width:180px;max-width:180px}}.app-toast-region::backdrop{display:none}.app-toast{border:1px solid var(--line);background:var(--surface);color:var(--text);pointer-events:auto;border-left:4px solid #23965d;border-radius:10px;align-items:flex-start;gap:12px;padding:17px 14px;font-size:13px;animation:.18s ease-out app-toast-enter;display:flex;box-shadow:0 8px 30px #0002}.app-toast>svg{color:#23965d;flex-shrink:0}.app-toast>span{overflow-wrap:anywhere;flex:1;line-height:1.65}.app-toast>button{color:var(--subtext);cursor:pointer;background:0 0;border:0;place-items:center;padding:3px;display:grid}.app-toast-error{border-left-color:#c43a3a}.app-toast-error>svg{color:#c43a3a}.app-confirm-dialog{border:1px solid var(--line);background:var(--surface);width:min(440px,100vw - 32px);color:var(--text);border-radius:16px;padding:28px;box-shadow:0 24px 80px #0005}.app-confirm-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#10212b88}.app-confirm-dialog>h2{margin:16px 0 10px;font-size:20px}.app-confirm-dialog>p{color:var(--subtext);overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.8}.app-confirm-symbol{width:52px;height:52px;color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, var(--surface));border-radius:50%;place-items:center;display:grid}.app-confirm-symbol.is-danger{color:#c43a3a;background:color-mix(in srgb, #c43a3a 10%, var(--surface))}.app-confirm-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.app-confirm-danger{color:#fff;font:inherit;cursor:pointer;background:#c43a3a;border:1px solid #c43a3a;border-radius:8px;justify-content:center;align-items:center;padding:12px 20px;font-size:13px;display:inline-flex}@keyframes app-toast-enter{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.app-toast{animation:none}}@media (max-width:640px){.app-toast-region{top:88px;right:16px}.app-confirm-dialog{padding:22px}}.overload-count-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.user-work-head-position{text-align:left;margin-top:12px}.user-work-head-position input{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:10px 12px}.sidebar-brand{padding-bottom:23px}.side-navigation{flex-direction:column;padding:0 12px 24px;display:flex}.sidebar-section{min-width:0}.sidebar-section+.sidebar-section{border-top:1px solid #ffffff20;margin-top:16px;padding-top:16px}.sidebar-section>.sidebar-label{color:#c4d8cc;letter-spacing:0;align-items:center;gap:8px;margin:0 0 9px;padding:0 12px;font-size:11px;font-weight:600;line-height:1.6;display:flex}.sidebar-section>.sidebar-label:before{content:"";opacity:.85;background:#daca96;border-radius:3px;flex-shrink:0;width:4px;height:13px}.sidebar-section .side-link,.sidebar-section .side-data-group>summary{gap:10px;min-height:42px;margin-bottom:3px;padding:11px 12px;line-height:1.55}.sidebar-section .side-link>svg,.sidebar-section .side-data-group>summary>svg{flex-shrink:0}.sidebar-section .side-link>span:not(.sidebar-count-badge),.sidebar-section .side-data-group>summary>span{overflow-wrap:anywhere;flex:1;min-width:0}.sidebar-section .side-data-group{margin-bottom:3px}.sidebar-section .side-data-group[open]{padding-bottom:3px}.sidebar-section .side-data-group:has(.is-active)>summary{color:#f5f3d8;background:#ffffff09}.sidebar-section .side-data-group>.side-child-link{border-left:1px solid #ffffff26;border-radius:0 8px 8px 0;min-height:37px;margin-left:21px;padding:9px 10px 9px 13px;font-size:12px}.sidebar-section .side-data-group>.side-child-link.is-active{border-left-color:#daca96}.sidebar-section .sidebar-count-badge{flex-shrink:0}@media (min-width:981px){.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-section+.sidebar-section{margin-top:8px;padding-top:8px}.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-section>.sidebar-label{display:none}.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-section .side-link,.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-section .side-data-group>summary{justify-content:center;gap:0;padding:12px 8px}.sidebar-collapsed .app-sidebar:not(:hover) .sidebar-section .side-data-group>.side-child-link{display:none}}.calendar-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:22px;display:grid}.calendar-sidebar{gap:22px;min-width:0;display:grid}.calendar-audience-options{border:0;flex-wrap:wrap;gap:12px 24px;margin:0;padding:0;display:flex}.calendar-audience-options legend{margin-bottom:12px;font-size:13px;font-weight:500}.calendar-audience-options label{cursor:pointer;align-items:center;gap:9px;font-size:13px;display:inline-flex}.calendar-audience-options input{width:17px;height:17px;accent-color:var(--primary)}.calendar-lesson-name{overflow-wrap:anywhere;margin-top:4px;font-size:12px;line-height:1.6;display:block}.calendar-upcoming-info>.calendar-lesson-teacher{white-space:pre-line}.calendar-card{min-width:0;padding:24px}.calendar-toolbar,.calendar-month-title,.calendar-toolbar-actions,.calendar-month-nav{align-items:center;gap:12px;display:flex}.calendar-toolbar{flex-wrap:wrap;justify-content:space-between;margin-bottom:24px}.calendar-month-title h2{margin:0;font-size:21px}.calendar-month-title p{color:var(--muted);margin:4px 0 0;font-size:12px}.calendar-toolbar-actions{flex-wrap:wrap;gap:10px}.calendar-month-nav{gap:6px}.calendar-nav-button{border:1px solid var(--line);width:35px;height:35px;color:var(--text);background:var(--surface);border-radius:9px;place-items:center;display:grid}.calendar-nav-button:hover{background:var(--surface-muted)}.calendar-toolbar .primary-button,.calendar-toolbar .secondary-button{min-height:35px;padding:9px 12px;font-size:12px}.calendar-grid-scroll{border:1px solid var(--line);border-radius:12px;overflow-x:auto}.calendar-month-grid{table-layout:fixed;border-collapse:collapse;width:100%;min-width:560px}.calendar-month-grid th{background:var(--surface-muted);text-align:center;color:var(--muted);padding:12px 4px;font-size:11px;font-weight:600}.calendar-month-grid td{vertical-align:top;border:1px solid var(--line);background:var(--surface);height:105px;padding:5px}.calendar-month-grid td:first-child,.calendar-month-grid th:first-child{border-left:0}.calendar-month-grid td:last-child,.calendar-month-grid th:last-child{border-right:0}.calendar-month-grid tr:last-child td{border-bottom:0}.calendar-day-number{width:28px;height:28px;color:var(--text);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:50%;place-items:center;margin:0 0 5px;font-size:12px;display:grid}.calendar-day-number:hover,.calendar-month-grid .calendar-other-month{background:var(--surface-muted)}.calendar-other-month .calendar-day-number{color:var(--muted);opacity:.65}.calendar-month-grid .calendar-selected-day{box-shadow:inset 0 0 0 1.5px var(--primary)}.calendar-today .calendar-day-number{color:#fff;background:var(--primary);font-weight:700}.calendar-day-events{gap:4px;display:grid}.calendar-event-chip{text-overflow:ellipsis;white-space:nowrap;border:0;border-left:2px solid var(--primary);background:var(--surface-muted);width:100%;color:var(--primary);text-align:left;font:inherit;cursor:pointer;border-radius:4px;padding:4px 5px;font-size:10px;display:block;overflow:hidden}.calendar-event-chip:hover{filter:brightness(.94)}.calendar-event-chip span{margin-right:4px}.calendar-more-events{text-align:left;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:2px 4px;font-size:10px}.calendar-day-panel{margin-top:22px}.calendar-day-panel header{justify-content:space-between;align-items:center;gap:12px;display:flex}.calendar-day-panel h3{margin:0;font-size:14px}.calendar-day-panel header>span{color:var(--muted);font-size:12px}.calendar-day-panel ul,.calendar-upcoming-list{margin:14px 0 0;padding:0;list-style:none}.calendar-day-panel li+li,.calendar-upcoming-list li+li{border-top:1px solid var(--line)}.calendar-day-panel li button{text-align:left;width:100%;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:13px 0;display:flex}.calendar-day-panel li button>span:nth-child(2){flex:1;min-width:0}.calendar-day-panel strong{overflow-wrap:anywhere;font-size:13px;display:block}.calendar-day-panel small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.calendar-event-dot{background:var(--primary);border-radius:50%;flex-shrink:0;width:7px;height:7px}.calendar-empty-day{color:var(--muted);margin:0;padding:17px 0 0;font-size:13px}.calendar-upcoming{padding:22px}.calendar-upcoming .card-heading{gap:10px;margin-bottom:16px}.calendar-upcoming h2{margin:0;font-size:15px}.calendar-upcoming .card-heading p{font-size:12px}.calendar-upcoming-list li button{width:100%;color:var(--text);text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;gap:12px;padding:15px 0;display:flex}.calendar-upcoming-date{width:46px;min-height:51px;color:var(--primary);background:var(--surface-muted);border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-self:flex-start;align-items:center;display:flex}.calendar-upcoming-date strong{font-size:20px;line-height:1.2}.calendar-upcoming-date small{font-size:10px}.calendar-upcoming-info{min-width:0}.calendar-upcoming-info>strong{overflow-wrap:anywhere;font-size:13px;line-height:1.6;display:block}.calendar-upcoming-info>small{color:var(--muted);margin-top:5px;font-size:10px;line-height:1.7;display:block}.calendar-upcoming-info>small svg{vertical-align:middle;margin-right:4px}.calendar-upcoming-empty{color:var(--muted);text-align:center;padding:28px 0;font-size:12px}.calendar-event-popup{width:min(620px,100vw - 32px)}.calendar-event-popup .roster-popup-header h2{overflow-wrap:anywhere}.calendar-event-form{border:0;gap:18px;margin:0;display:grid}.calendar-event-form input:not([type=checkbox]),.calendar-event-form textarea{box-sizing:border-box;border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);font:inherit;border-radius:9px;padding:11px 12px}.calendar-event-form textarea{resize:vertical}.calendar-form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.calendar-all-day{align-items:center;gap:8px;font-size:13px;display:flex}.calendar-all-day input{accent-color:var(--primary)}.calendar-event-description{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.8}.calendar-event-manage{flex-wrap:wrap;gap:8px;display:flex}.calendar-day-number:focus-visible,.calendar-event-chip:focus-visible,.calendar-nav-button:focus-visible,.calendar-upcoming-list button:focus-visible,.calendar-day-panel button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (max-width:1250px){.calendar-layout{grid-template-columns:minmax(0,1fr)}.calendar-upcoming-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 22px;display:grid}}@media (max-width:640px){.calendar-card,.calendar-upcoming{padding:16px}.calendar-toolbar{gap:18px}.calendar-toolbar-actions{justify-content:space-between;width:100%}.calendar-month-title h2{font-size:19px}.calendar-form-row{grid-template-columns:1fr;gap:16px}.calendar-month-grid{min-width:525px}}.inbox-bell{flex-shrink:0;position:relative}.inbox-bell-button{border:1px solid var(--line);background:var(--surface);width:43px;height:43px;color:var(--text);cursor:pointer;border-radius:11px;place-items:center;display:grid;position:relative}.inbox-bell-button:hover,.inbox-bell-button[aria-expanded=true]{background:var(--surface-muted)}.inbox-bell-button:focus-visible,.inbox-panel button:focus-visible,.inbox-list a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.inbox-count{border:2px solid var(--surface);color:#fff;background:#bd4949;border-radius:99px;place-items:center;min-width:18px;height:18px;padding:0 4px;font-size:9px;font-weight:700;line-height:1;display:grid;position:absolute;top:-6px;right:-6px}.inbox-panel{z-index:70;border:1px solid var(--line);background:var(--surface);width:390px;color:var(--text);border-radius:15px;position:absolute;top:calc(100% + 13px);right:0;overflow:hidden;box-shadow:0 18px 60px #0002}.inbox-panel-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding:19px 19px 16px;display:flex}.inbox-panel h2{margin:0;font-size:17px}.inbox-panel-header p{color:var(--muted);margin:5px 0 0;font-size:11px}.inbox-icon-button{width:29px;height:29px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;place-items:center;display:grid}.inbox-icon-button:hover{background:var(--surface-muted)}.inbox-list{overscroll-behavior:contain;max-height:min(60vh,480px);margin:0;padding:0;list-style:none;overflow-y:auto}.inbox-category-filters{border-bottom:1px solid var(--line);gap:7px;padding:12px 16px;display:flex;overflow-x:auto}.inbox-category-filters button{border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;flex-shrink:0;align-items:center;gap:6px;padding:7px 10px;font-size:11px;display:inline-flex}.inbox-category-filters button[aria-pressed=true]{background:var(--primary);border-color:var(--primary);color:#fff}.inbox-category-filters button>span{background:color-mix(in srgb, currentColor 15%, transparent);border-radius:99px;place-items:center;min-width:18px;height:18px;padding-inline:4px;font-size:10px;display:grid}.inbox-category-heading{background:var(--surface-muted);justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;display:flex}.inbox-category-heading h3{color:var(--text);margin:0;font-size:12px;font-weight:600}.inbox-category-heading>span{color:var(--subtext);white-space:nowrap;font-size:10px}.inbox-list li+li{border-top:1px solid var(--line)}.inbox-list a{color:var(--text);align-items:flex-start;gap:11px;padding:15px 18px;text-decoration:none;display:flex}.inbox-list .inbox-unread{background:var(--surface-muted)}.inbox-list a:hover{box-shadow:inset 3px 0 var(--primary)}.inbox-item-icon{border:1px solid var(--line);background:var(--surface);width:33px;height:33px;color:var(--primary);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.inbox-item-content{flex:1;gap:5px;min-width:0;display:grid}.inbox-item-content strong{overflow-wrap:anywhere;font-size:12px;font-weight:600;line-height:1.6}.inbox-item-content>span{color:var(--muted);overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:11px;line-height:1.6;display:-webkit-box;overflow:hidden}.inbox-item-content time{color:var(--muted);font-size:10px}.inbox-unread-dot{background:var(--primary);border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:7px}.inbox-panel-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:12px 17px;display:flex}.inbox-panel-footer>span{color:var(--muted);font-size:10px}.inbox-panel-footer button{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;font-size:11px;display:inline-flex}.inbox-panel-footer button:disabled{opacity:.45;cursor:default}.inbox-empty{text-align:center;color:var(--muted);justify-items:center;gap:10px;padding:38px 20px;display:grid}.inbox-empty strong{color:var(--text);font-size:13px}.inbox-empty p{margin:0;font-size:11px}.inbox-error{color:#b34c3d;background:var(--surface-muted);justify-content:space-between;align-items:center;gap:8px;padding:10px 17px;font-size:11px;display:flex}.inbox-error button{color:inherit;cursor:pointer;background:0 0;border:0}@media (max-width:640px){.inbox-panel{width:auto;position:fixed;top:76px;left:12px;right:12px}.inbox-bell-button{border-radius:9px;width:37px;height:37px}.inbox-list{max-height:min(64vh,480px)}}.calendar-month-grid .calendar-editable-day{cursor:pointer}.calendar-month-grid .calendar-editable-day:hover{background:var(--surface-muted)}.calendar-event-popup{box-sizing:border-box;max-height:85dvh;overflow:hidden}.calendar-event-popup>.roster-popup-header{flex-shrink:0;min-width:0}.calendar-event-popup>.roster-popup-header>div{flex:1;min-width:0}.calendar-event-popup .roster-popup-close{flex-shrink:0}.calendar-event-popup>form{flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex;overflow:hidden}.calendar-event-popup .roster-popup-body{box-sizing:border-box;overscroll-behavior:contain;flex:auto;min-width:0;min-height:0;padding:22px 24px;overflow:hidden auto}.calendar-event-popup .calendar-event-description{overflow-wrap:anywhere;max-width:100%}.calendar-event-popup .roster-popup-footer{flex-wrap:wrap}.student-roster-popup.profile-popup{width:min(1040px,100vw - 32px);max-height:90dvh;overflow:hidden}.profile-popup .roster-popup-body{overscroll-behavior:contain;min-height:0;padding:24px;overflow:auto}.profile-popup .profile-page-grid{grid-template-columns:260px minmax(0,1fr);gap:20px}.profile-popup .profile-page-grid>*{min-width:0}.profile-popup .profile-info dd,.profile-popup .account-details dd{overflow-wrap:anywhere}.profile-popup .roster-popup-footer{justify-content:flex-end}button.quick-link{text-align:left;width:100%;font:inherit;cursor:pointer}.welcome-banner .banner-profile-button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;margin-top:20px;padding:0;display:inline-flex}@media (max-width:760px){.profile-popup .profile-page-grid{grid-template-columns:minmax(0,1fr)}.profile-popup .roster-popup-body{padding:16px}.profile-popup .profile-info{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.calendar-event-popup .roster-popup-body{padding:18px 16px}}@media screen{table:not(.calendar-month-grid,.normal-schedule-grid,.supplementary-grid,.thai-date-picker-grid)>tbody>tr>:is(td,th){transition:background-color .12s}table:not(.calendar-month-grid,.normal-schedule-grid,.supplementary-grid,.thai-date-picker-grid)>tbody>tr:is(:hover,:focus-within)>:is(td,th){background-color:color-mix(in srgb, var(--primary) 12%, var(--surface))}}@media screen and (prefers-reduced-motion:reduce){table:not(.calendar-month-grid,.normal-schedule-grid,.supplementary-grid,.thai-date-picker-grid)>tbody>tr>:is(td,th){transition:none}}.user-avatar .default-avatar,.user-avatar .default-avatar svg{width:100%;height:100%;display:block}.score-deadline-popup>form{flex-direction:column;min-height:0;display:flex;overflow:hidden}.score-deadline-popup .assessment-summary-fields{flex:auto;overflow:auto}.score-deadline-popup select{min-width:0;max-width:100%}.score-deadline-dates{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0;margin:0;padding:0;display:grid}.score-deadline-dates .setting-field{min-width:0;margin:0}.score-deadline-hint{color:var(--subtext);margin:0;line-height:1.8}.score-deadline-success{color:var(--success);margin:0}@media (max-width:600px){.score-deadline-dates{grid-template-columns:minmax(0,1fr)}}.user-directory{gap:22px;display:grid}.user-directory-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.user-directory-stats>div{border:1px solid var(--line);background:var(--surface);border-radius:14px;align-items:center;gap:14px;padding:20px;display:flex}.user-directory-stat-icon,.user-directory-avatar{background:color-mix(in srgb,var(--primary) 9%,var(--surface));color:var(--primary);flex-shrink:0;place-items:center;display:grid}.user-directory-stat-icon{border-radius:12px;width:44px;height:44px}.user-directory-stats>div>div>span{color:var(--subtext);margin-bottom:6px;font-size:12px;display:block}.user-directory-stats strong{font-size:25px;font-weight:600;line-height:1.3}.user-directory-stats small{color:var(--subtext);font-size:12px;font-weight:400}.user-directory-filters{grid-template-columns:minmax(230px,1.6fr) minmax(120px,.7fr) minmax(150px,1fr) minmax(160px,1fr);align-items:end;gap:16px;padding:24px 24px 0;display:grid}.user-directory-filters label{gap:8px;min-width:0;font-size:12px;font-weight:500;display:grid}.user-directory-search>label{margin-bottom:8px}.user-directory-filters select,.user-directory-page-size select,.user-access-department select,.user-access-position :is(input,select){border:1px solid var(--line);width:100%;min-width:0;min-height:44px;color:var(--text);background:var(--surface);font:inherit;border-radius:9px;padding:10px 12px;font-size:12px}.user-directory-filters .course-search{min-height:44px}.user-directory-filters select:focus-visible,.user-access-popup :is(input,select):focus-visible{outline:2px solid var(--primary);outline-offset:2px}.user-directory-results{color:var(--subtext);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:18px 24px;font-size:12px;display:flex}.user-directory-results strong{color:var(--text)}.user-directory-reset{color:var(--primary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:4px 0;display:inline-flex}.user-directory-table{table-layout:fixed;min-width:850px}.user-directory-table th:first-child{width:26%}.user-directory-table th:nth-child(2){width:11%}.user-directory-table th:nth-child(3){width:17%}.user-directory-table th:nth-child(4){width:auto}.user-directory-table th:nth-child(5),.user-directory-table td:last-child{text-align:center;width:156px;min-width:0}.user-directory-table :is(th,td){vertical-align:middle;overflow-wrap:anywhere;padding:16px 18px}.user-directory-person{align-items:center;gap:10px;display:flex}.user-directory-avatar{border-radius:50%;width:36px;height:36px;font-size:15px}.user-directory-person strong{font-size:12px;font-weight:500;line-height:1.7;display:block}.user-directory-person small{color:var(--subtext);margin-top:3px;font-size:10px;line-height:1.7;display:block}.user-directory-muted{color:var(--subtext);font-size:11px}.user-directory-permission-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.user-directory-tag{background:color-mix(in srgb,var(--primary) 6%,var(--surface));border:1px solid color-mix(in srgb,var(--primary) 15%,var(--line));color:var(--primary);border-radius:6px;align-items:center;padding:4px 7px;font-size:10px;line-height:1.6;display:inline-flex}.user-directory-more{font-size:10px}.user-directory-more summary{cursor:pointer;color:var(--primary);padding:5px 2px}.user-directory-more>div{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.user-access-trigger{white-space:nowrap;min-height:36px;padding:8px 10px;font-size:11px}.user-directory-pagination{flex-wrap:wrap;gap:14px;padding:18px 24px}.user-directory-pagination>div{flex-wrap:wrap;gap:8px}.user-directory-page-size{color:var(--subtext);align-items:center;gap:7px;margin-right:10px;font-size:11px;display:flex}.user-directory-page-size select{width:65px;min-height:34px;padding:6px 8px}.user-directory-pagination .secondary-button{min-height:34px;padding:8px}.student-roster-popup.user-access-popup{width:min(760px,100vw - 32px);max-height:90dvh;overflow:hidden}.user-access-popup h2{align-items:center;gap:10px;display:flex}.user-access-popup>form{flex-direction:column;min-height:0;display:flex;overflow:hidden}.user-access-popup .user-access-body{gap:22px;min-height:0;padding:24px;display:grid;overflow:auto}.user-access-identity{background:var(--surface-muted);border-radius:10px;align-items:center;gap:12px;padding:16px;display:flex}.user-access-identity strong{font-size:14px;font-weight:600;display:block}.user-access-identity div>span{color:var(--subtext);margin-top:4px;font-size:11px;display:block}.user-access-department{border:0;min-width:0;margin:0;padding:0}.user-access-department legend{margin-bottom:12px;font-size:14px;font-weight:600}.user-access-department>label{color:var(--subtext);margin-bottom:8px;font-size:12px;display:block}.user-access-permissions-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.user-access-permissions-heading h3{margin:0;font-size:14px}.user-access-permissions-heading>span{color:var(--subtext);font-size:11px}.user-access-group{border:1px solid var(--line);border-radius:12px;min-width:0;margin:0;padding:12px 16px 16px}.user-access-group legend{color:var(--text);padding:0 7px;font-size:12px;font-weight:600}.user-access-group>p{color:var(--subtext);margin:0 0 14px;font-size:11px}.user-access-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.user-access-options>label{border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:11px 12px;font-size:12px;line-height:1.7;display:flex}.user-access-options>label:has(input:checked){background:color-mix(in srgb,var(--primary) 6%,var(--surface));border-color:color-mix(in srgb,var(--primary) 40%,var(--line))}.user-access-options>label:has(input:disabled){cursor:default}.user-access-options input{width:16px;height:16px;accent-color:var(--primary);flex-shrink:0;margin:2px 0 0}.user-access-options small{color:var(--subtext);font-size:10px;display:block}.user-access-position{gap:8px;margin-top:16px;font-size:12px;display:grid}.user-access-position small{color:var(--subtext);font-size:10px;line-height:1.7}.user-access-popup .roster-popup-footer{justify-content:flex-end;gap:10px}@media (max-width:1100px){.user-directory-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.user-directory-search{grid-column:1/-1}}@media (max-width:640px){.user-directory-stats{grid-template-columns:minmax(0,1fr);gap:10px}.user-directory-stats>div{padding:14px 16px}.user-directory-stats strong{font-size:22px}.user-directory-filters{grid-template-columns:minmax(0,1fr);padding:18px 18px 0}.user-directory-results,.user-directory-pagination{padding:16px 18px}.user-access-popup .user-access-body{padding:18px}.user-access-options{grid-template-columns:minmax(0,1fr)}.user-access-group{padding:12px}.user-directory-pagination>div{justify-content:space-between;width:100%}}.normal-pay-statistics{gap:22px;display:grid}.pay-stats-filter-card{padding:22px}.pay-stats-filters{grid-template-columns:minmax(240px,1.25fr) repeat(4,minmax(130px,1fr));align-items:end;gap:14px;display:grid}.pay-stats-filters label,.pay-stats-period>label{gap:8px;min-width:0;font-size:12px;font-weight:500;display:grid}.pay-stats-period>label{margin-bottom:8px}.pay-stats-period>div{gap:8px;display:flex}.pay-stats-period .secondary-button{white-space:nowrap;min-height:44px;padding:8px 12px;font-size:11px}.pay-stats-filters select{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;min-height:44px;color:var(--text);font:inherit;border-radius:8px;padding:10px;font-size:12px}.pay-stats-search-row{flex-wrap:wrap;align-items:center;gap:16px;margin-top:18px;display:flex}.pay-stats-search-row .course-search{flex:1;min-width:220px;max-width:520px}.pay-stats-search-row>span{color:var(--subtext);margin-left:auto;font-size:12px}.pay-stats-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.pay-stats-card{align-items:center;gap:14px;min-width:0;padding:20px;display:flex}.pay-stats-card-icon{width:42px;height:42px;color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--surface));border-radius:12px;flex-shrink:0;place-items:center;display:grid}.pay-stats-card>div>span{color:var(--subtext);font-size:11px;line-height:1.8;display:block}.pay-stats-card strong{overflow-wrap:anywhere;margin-top:5px;font-size:27px;font-weight:600;display:block}.pay-stats-card small{color:var(--subtext);margin-left:6px;font-size:11px;font-weight:400}.pay-stats-card.is-allocation{--pay-card-accent:#3974c5}.pay-stats-card.is-paid{--pay-card-accent:#238667}.pay-stats-card.is-vocational{--pay-card-accent:#7e5ac2}.pay-stats-card.is-higher{--pay-card-accent:#208b9d}.pay-stats-card.is-pending{--pay-card-accent:#b8791b}.pay-stats-card{background:color-mix(in srgb,var(--pay-card-accent) 7%,var(--surface));border-color:color-mix(in srgb,var(--pay-card-accent) 25%,var(--line))}.pay-stats-card .pay-stats-card-icon{color:color-mix(in srgb,var(--pay-card-accent) 80%,var(--text));background:color-mix(in srgb,var(--pay-card-accent) 14%,var(--surface))}.pay-stats-card strong{color:color-mix(in srgb,var(--pay-card-accent) 72%,var(--text))}.pay-stats-budget-summary{flex-wrap:wrap;gap:26px;padding:0 2px;font-size:12px;display:flex}.pay-stats-budget-summary>span{color:var(--subtext);align-items:center;gap:8px;display:flex}.pay-stats-budget-summary strong{color:var(--text);font-weight:500}.pay-stats-budget-summary i{border-radius:3px;width:10px;height:10px;display:block}.pay-stats-budget-summary .is-vocational,.pay-stats-comparison-bar .is-vocational{background:var(--primary)}.pay-stats-budget-summary .is-higher,.pay-stats-comparison-bar .is-higher{background:#b79b56}.pay-stats-change-notice{color:var(--text);background:color-mix(in srgb,#b79b56 12%,var(--surface));border:1px solid color-mix(in srgb,#b79b56 35%,var(--line));border-radius:10px;margin:0;padding:14px 18px;font-size:12px;line-height:1.8}.pay-stats-results-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.pay-stats-results-heading h2{margin:0;font-size:18px}.pay-stats-results-heading p{color:var(--subtext);margin:7px 0 0;font-size:12px}.pay-stats-view-switch{background:var(--surface);border:1px solid var(--line);border-radius:10px;gap:4px;padding:4px;display:flex}.pay-stats-view-switch button{color:var(--subtext);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;padding:9px 12px;font-size:12px;display:flex}.pay-stats-view-switch button[aria-pressed=true]{color:var(--primary);background:color-mix(in srgb,var(--primary) 9%,var(--surface));font-weight:600}.pay-stats-department>header{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;display:flex}.pay-stats-department>header>div{align-items:center;gap:12px;display:flex}.pay-stats-department-icon{background:color-mix(in srgb,var(--primary) 8%,var(--surface));width:40px;height:40px;color:var(--primary);border-radius:10px;place-items:center;display:grid}.pay-stats-department h3{margin:0;font-size:16px}.pay-stats-department header p{color:var(--subtext);margin:6px 0 0;font-size:11px}.pay-stats-department header>strong{color:var(--primary);font-size:22px}.pay-stats-department header small{font-size:12px;font-weight:400}.pay-stats-details-table{table-layout:fixed;border-collapse:collapse;text-align:center;width:100%;min-width:900px;font-size:12px}.pay-stats-details-table th{color:var(--text);background:var(--surface-muted);font-size:12px;font-weight:700;line-height:1.6}.pay-stats-details-table :is(th,td){border-bottom:1px solid var(--line);vertical-align:middle;overflow-wrap:anywhere;padding:18px 16px}.pay-stats-details-table th:first-child{text-align:left;width:23%}.pay-stats-details-table th:nth-child(2){width:19%}.pay-stats-details-table th:nth-child(3){width:18%}.pay-stats-details-table th:nth-child(4){width:14%}.pay-stats-details-table th:nth-child(5){width:18%}.pay-stats-details-table th:nth-child(6){width:100px}.pay-stats-details-table td.pay-stats-payee{text-align:left}.pay-stats-details-table td>strong{font-weight:600;line-height:1.8}.pay-stats-details-table .pay-stats-money{text-align:center;font-variant-numeric:tabular-nums}.pay-stats-details-table tfoot th{text-align:left;font-weight:700}.pay-stats-details-table .pay-stats-week-details ul{text-align:left}.pay-stats-details-table .pay-stats-payment-info{justify-items:center}.pay-stats-money>strong{color:var(--primary);font-size:15px;font-weight:600}.pay-stats-money>small{color:var(--subtext);margin-top:5px;font-size:10px;display:block}.pay-stats-system{color:var(--subtext);margin:0 5px 6px 0;font-size:10px;display:inline-block}.pay-stats-budget{background:color-mix(in srgb,var(--primary) 8%,var(--surface));color:var(--primary);border-radius:6px;padding:4px 7px;font-size:10px;display:inline-block}.pay-stats-budget.is-higher{background:color-mix(in srgb,#b79b56 13%,var(--surface));color:var(--text)}.pay-stats-status{border:1px solid var(--line);color:var(--subtext);background:var(--surface-muted);border-radius:6px;padding:4px 7px;font-size:10px;display:inline-block}.pay-stats-status.is-paid{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 20%,var(--line));background:color-mix(in srgb,var(--primary) 6%,var(--surface))}.pay-stats-status.is-changed{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 20%,var(--line))}.pay-stats-payment-info{color:var(--subtext);gap:5px;margin-top:10px;font-size:10px;line-height:1.7;display:grid}.pay-stats-payment-info strong{color:var(--text);font-size:11px;font-weight:500}.pay-stats-note{white-space:pre-wrap;font-size:11px;line-height:1.8}.pay-stats-edit-button{white-space:nowrap;min-height:34px;padding:7px 9px;font-size:10px}.pay-stats-week-details{color:var(--subtext);margin-top:8px;font-size:10px}.pay-stats-week-details summary{cursor:pointer;line-height:1.8}.pay-stats-week-details ul{margin:10px 0 0;padding:0;list-style:none}.pay-stats-week-details li{border-top:1px solid var(--line);gap:3px;padding:9px 0;line-height:1.7;display:grid}.pay-stats-week-details strong{color:var(--text);font-weight:500}.pay-stats-department-table{min-width:800px}.pay-stats-department-table :is(td,th):not(:first-child){text-align:right}.pay-stats-department-table td:first-child{min-width:220px}.pay-stats-details-table tfoot,.pay-stats-department-table tfoot{background:var(--surface-muted);font-weight:600}.pay-stats-comparison-bar{background:var(--surface-muted);border-radius:5px;width:220px;max-width:100%;height:7px;margin-top:10px;display:flex;overflow:hidden}.pay-stats-grand-total{justify-content:space-between;align-items:center;gap:18px;padding:22px 24px;display:flex}.pay-stats-grand-total>span{font-size:14px;font-weight:600}.pay-stats-grand-total>strong{color:var(--primary);font-size:26px}.pay-stats-grand-total small{font-size:13px;font-weight:400}.student-roster-popup.pay-stats-payment-popup{width:min(640px,100vw - 32px);max-height:90dvh;overflow:hidden}.pay-stats-payment-popup>form{flex-direction:column;min-height:0;display:flex;overflow:hidden}.pay-stats-payment-popup .pay-stats-payment-body{min-height:0;padding:24px;overflow:auto}.pay-stats-payment-context{background:var(--surface-muted);border-radius:10px;margin-bottom:22px;padding:16px}.pay-stats-payment-context>div{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.pay-stats-payment-context span{font-size:12px}.pay-stats-payment-context strong{color:var(--primary);font-size:22px}.pay-stats-payment-context>small{color:var(--subtext);margin-top:8px;font-size:10px;display:block}.pay-stats-payment-fields{border:0;gap:18px;min-width:0;margin:0;padding:0;display:grid}.pay-stats-payment-fields>label{font-size:12px;line-height:1.7;display:block}.pay-stats-payment-fields :is(input,textarea){border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;color:var(--text);font:inherit;border-radius:8px;margin-top:7px;padding:11px 12px;font-size:12px;display:block}.pay-stats-payment-fields textarea{resize:vertical}.pay-stats-payment-fields .setting-field{margin:0}.pay-stats-payment-fields input[type=hidden]{display:none}.pay-stats-payment-popup .roster-popup-footer{justify-content:flex-end;gap:10px}@media (max-width:1350px){.pay-stats-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.pay-stats-period{grid-column:span 2}.pay-stats-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.pay-stats-filters{grid-template-columns:minmax(0,1fr)}.pay-stats-period{grid-column:auto}.pay-stats-filter-card{padding:18px}.pay-stats-cards{gap:12px}.pay-stats-card{gap:8px;padding:16px}.pay-stats-card strong{font-size:22px}.pay-stats-card-icon{display:none}.pay-stats-department>header,.pay-stats-payment-popup .pay-stats-payment-body,.pay-stats-grand-total{padding:18px}}.pay-stats-progress-label{flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:8px;display:flex}.pay-stats-progress-label strong{color:var(--primary);font-size:14px}.pay-stats-progress-label span{color:var(--subtext);font-size:11px}.pay-stats-details-table td.pay-stats-payee{vertical-align:middle}@media screen{.normal-pay-statistics .pay-stats-details-table>tbody.pay-stats-payee-group:is(:hover,:focus-within)>tr>td.pay-stats-payee{background-color:color-mix(in srgb, var(--primary) 12%, var(--surface))}}.pay-stats-department-table thead th{color:var(--text);vertical-align:middle;font-size:12px;font-weight:700}.pay-stats-summary-caption{color:var(--subtext);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:10px;padding:18px 22px;font-size:12px;display:flex}.pay-stats-summary-card .pay-stats-department-table{border-collapse:collapse;width:100%;min-width:1050px;font-size:12px}.pay-stats-summary-card .pay-stats-department-table :is(th,td){vertical-align:middle;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--line);padding:20px 18px}.pay-stats-summary-card .pay-stats-department-table thead th{background:var(--surface-muted);white-space:nowrap}.pay-stats-summary-card thead small{color:var(--subtext);font-size:10px;font-weight:400}.pay-stats-summary-name{align-items:center;gap:10px;display:flex}.pay-stats-summary-name button{text-align:left;font-size:13px;font-weight:600}.pay-stats-summary-index{background:color-mix(in srgb,var(--primary) 8%,var(--surface));width:26px;height:26px;color:var(--primary);border-radius:8px;flex-shrink:0;place-items:center;font-size:11px;display:grid}.pay-stats-summary-card .pay-stats-progress-label{justify-content:space-between;max-width:220px;margin-top:14px}.pay-stats-summary-card .pay-stats-comparison-bar{background:color-mix(in srgb,var(--primary) 10%,var(--surface));height:8px;margin-top:6px}.pay-stats-summary-card .pay-stats-summary-people{text-align:center!important}.pay-stats-summary-allocation{gap:8px;min-width:150px;display:grid}.pay-stats-summary-allocation>span{color:var(--subtext);justify-content:space-between;gap:16px;font-size:11px;display:flex}.pay-stats-summary-allocation strong{color:var(--text);font-size:12px;font-weight:600}.pay-stats-summary-remaining strong{color:var(--primary)}.pay-stats-summary-vocational{color:color-mix(in srgb,#7e5ac2 75%,var(--text))}.pay-stats-summary-higher{color:color-mix(in srgb,#208b9d 75%,var(--text))}.pay-stats-summary-total{color:var(--primary);font-size:14px;font-weight:700}.pay-stats-summary-waiting{color:var(--subtext);border-radius:6px;padding:5px 9px;display:inline-block}.pay-stats-summary-waiting.is-pending{background:color-mix(in srgb,#b8791b 10%,var(--surface));color:color-mix(in srgb,#b8791b 75%,var(--text))}.pay-stats-summary-card .pay-stats-department-table{min-width:950px}.pay-stats-summary-card .pay-stats-department-table td:first-child{min-width:300px}.pay-stats-summary-card .pay-stats-progress-label,.pay-stats-summary-card .pay-stats-comparison-bar{width:100%;max-width:290px}.pay-stats-summary-inline-budget{border-top:1px solid var(--line);text-align:left;max-width:290px;margin-top:12px;padding-top:10px}.pay-stats-summary-inline-budget small{color:var(--subtext);font-size:10px;font-weight:400}.pay-stats-summary-inline-budget .pay-stats-summary-remaining{background:color-mix(in srgb,var(--primary) 6%,var(--surface));border-radius:6px;margin:0 -8px;padding:6px 8px}.pay-stats-amount-bar{border:1px solid color-mix(in srgb,var(--primary) 28%,var(--line));font-variant-numeric:tabular-nums;border-radius:7px;width:100%;max-width:290px;min-height:34px;margin-top:8px;font-size:12px;font-weight:600;display:flex;overflow:hidden}.pay-stats-amount-bar>span{white-space:nowrap;flex-basis:0;justify-content:center;align-items:center;min-width:max-content;padding:7px 10px;display:flex}.pay-stats-amount-claimed{background:var(--primary);color:#fff}.pay-stats-amount-remaining{color:#25453c;background:#fff}.pay-stats-summary-name{flex-wrap:wrap}.pay-stats-name-allocation{color:var(--subtext);font-size:11px;font-weight:400}.pay-stats-name-allocation strong{color:var(--text);font-weight:600}.normal-pay-statistics.is-supplementary .pay-stats-cards{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:900px){.normal-pay-statistics.is-supplementary .pay-stats-cards{grid-template-columns:minmax(0,1fr)}}.appearance-presets{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.appearance-presets button{text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:10px;padding:16px}.appearance-presets button[aria-pressed=true]{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 7%,var(--surface))}.appearance-presets strong{margin-bottom:6px;font-size:13px;display:block}.appearance-presets span{color:var(--subtext);font-size:11px;line-height:1.7}.appearance-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px;margin-bottom:26px;padding-top:6px;display:grid}.appearance-controls .setting-field{min-width:0;margin:0}.appearance-controls select{border:1px solid var(--line);width:100%;color:var(--text);background:var(--surface);font:inherit;border-radius:8px;padding:11px 12px;font-size:12px}.appearance-controls .field-hint{margin:7px 0 0;line-height:1.7}.appearance-preview-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.appearance-preview-heading h3{margin:0;font-size:14px}.appearance-preview-heading button{padding:8px 12px;font-size:11px}#panel-theme .radius-options{flex-wrap:wrap;gap:16px 24px}.appearance-preview-metrics{grid-template-columns:1fr 1fr;gap:10px;margin:15px 0;display:grid}.appearance-preview-metrics>div{border:1px solid color-mix(in srgb,var(--preview-text) 15%,transparent);border-radius:var(--preview-radius);padding:10px}.appearance-preview-metrics small{opacity:.7;font-size:9px;display:block}.appearance-preview-metrics b{color:var(--preview-primary);margin-top:4px;font-size:18px;display:block}.appearance-preview-table{border-collapse:collapse;text-align:left;width:100%;margin-bottom:15px;font-size:10px}.appearance-preview-table :is(td,th){border-bottom:1px solid color-mix(in srgb,var(--preview-text) 15%,transparent);padding:10px 8px}.appearance-preview-table th{background:color-mix(in srgb,var(--preview-primary) 8%,var(--preview-surface));font-weight:600}.appearance-preview-table em{color:var(--preview-primary);font-style:normal}.theme-preview[data-preview-sidebar=gradient] .preview-mini-sidebar{background:linear-gradient(160deg,var(--preview-dark),var(--preview-primary))}.theme-preview[data-preview-sidebar=light] .preview-mini-sidebar{background:var(--preview-surface);color:var(--preview-primary);border-right:1px solid color-mix(in srgb,var(--preview-text) 15%,transparent)}.theme-preview[data-preview-sidebar=light] .preview-mini-sidebar>span{background:var(--preview-primary);opacity:.4}.theme-preview[data-preview-card=soft] .preview-mini-main>div{box-shadow:0 4px 16px #00000010}.theme-preview[data-preview-card=elevated] .preview-mini-main>div{box-shadow:0 8px 24px #00000024}.theme-preview[data-preview-background=tinted]{background:color-mix(in srgb,var(--preview-primary) 9%,var(--preview-surface))}.theme-preview[data-preview-background=dots] .preview-mini-main{background-image:radial-gradient(circle,color-mix(in srgb,var(--preview-primary) 20%,transparent) 1px,transparent 1px);background-size:14px 14px}.theme-preview[data-preview-table=striped] .appearance-preview-table tbody tr:nth-child(2n){background:color-mix(in srgb,var(--preview-primary) 6%,var(--preview-surface))}.theme-preview[data-preview-table=bordered] .appearance-preview-table :is(th,td){border:1px solid color-mix(in srgb,var(--preview-text) 20%,transparent)}.theme-preview[data-preview-density=compact] .appearance-preview-table :is(th,td){padding-block:5px}.theme-preview[data-preview-density=spacious] .appearance-preview-table :is(th,td){padding-block:16px}.theme-preview[data-preview-text=large] .appearance-preview-table{font-size:12px}.theme-preview[data-preview-text=larger] .appearance-preview-table{font-size:14px}@media (max-width:640px){.appearance-controls,.appearance-presets{grid-template-columns:minmax(0,1fr)}#panel-theme .palette-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media screen{:root[data-sidebar-style=gradient] :is(.app-sidebar,.sidebar-dialog){background:linear-gradient(165deg,var(--primary-dark),color-mix(in srgb,var(--primary) 86%,#162c27))}:root[data-sidebar-style=light] :is(.app-sidebar,.sidebar-dialog){background:var(--surface);color:var(--text);border-right:1px solid var(--line)}:root[data-sidebar-style=light] :is(.app-sidebar,.sidebar-dialog) :is(.side-link,.side-data-group summary,.brand strong,.brand small,.sidebar-label,.sidebar-close){color:var(--text)}:root[data-sidebar-style=light] :is(.app-sidebar,.sidebar-dialog) :is(.side-link,.side-data-group summary):hover{background:color-mix(in srgb,var(--primary) 6%,var(--surface))}:root[data-sidebar-style=light] :is(.app-sidebar,.sidebar-dialog) .side-link.is-active{color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,var(--surface));box-shadow:inset 3px 0 var(--primary)}:root[data-sidebar-style=light] :is(.app-sidebar,.sidebar-dialog) .sidebar-section{border-color:var(--line)}:root[data-sidebar-style=light] :is(.app-sidebar,.sidebar-dialog) .sidebar-count-badge{background:color-mix(in srgb,var(--primary) 12%,var(--surface))}:root[data-card-style=soft] .content-card{box-shadow:0 4px 18px #0000000c}:root[data-card-style=elevated] .content-card{box-shadow:0 8px 28px #0000001b}:root[data-corner-style]:not([data-corner-style=rounded]) :is(.content-card,.primary-button,.secondary-button,.setting-field input,.setting-field select,.setting-field textarea){border-radius:var(--ui-radius)}:root[data-page-background=tinted] .workspace-main{background:color-mix(in srgb,var(--primary) 5%,var(--page))}:root[data-page-background=dots] .workspace-main{background-color:var(--page);background-image:radial-gradient(circle,color-mix(in srgb,var(--primary) 16%,transparent) 1px,transparent 1px);background-size:20px 20px}:root[data-density=compact] :is(.side-link,.side-data-group summary){padding-block:9px}:root[data-density=spacious] :is(.side-link,.side-data-group summary){padding-block:17px}:root[data-density=compact] .workspace-content{padding-block:22px}:root[data-density=spacious] .workspace-content{padding-block:42px}:root[data-density=compact] table:not(.calendar-month-grid,.normal-schedule-grid,.supplementary-grid,.thai-date-picker-grid,.appearance-preview-table)>:is(tbody,thead,tfoot)>tr>:is(td,th){padding-block:9px}:root[data-density=spacious] table:not(.calendar-month-grid,.normal-schedule-grid,.supplementary-grid,.thai-date-picker-grid,.appearance-preview-table)>:is(tbody,thead,tfoot)>tr>:is(td,th){padding-block:22px}:root[data-table-style=striped] table:not(.calendar-month-grid,.normal-schedule-grid,.supplementary-grid,.thai-date-picker-grid,.appearance-preview-table)>tbody>tr:nth-child(2n):not(:hover,:focus-within)>:is(td,th){background-color:color-mix(in srgb,var(--primary) 4%,var(--surface))}:root[data-table-style=bordered] table:not(.calendar-month-grid,.normal-schedule-grid,.supplementary-grid,.thai-date-picker-grid,.appearance-preview-table)>:is(tbody,thead,tfoot)>tr>:is(td,th){border:1px solid var(--line)}:root[data-text-size=large]{--data-text-size:14px;--nav-text-size:14px}:root[data-text-size=larger]{--data-text-size:16px;--nav-text-size:16px}:root:is([data-text-size=large],[data-text-size=larger]) table:not(.calendar-month-grid,.normal-schedule-grid,.supplementary-grid,.thai-date-picker-grid,.appearance-preview-table)>:is(tbody,thead,tfoot)>tr>:is(td,th){font-size:var(--data-text-size)}:root:is([data-text-size=large],[data-text-size=larger]) :is(.side-link,.side-data-group summary){font-size:var(--nav-text-size)}:root[data-motion=reduced] *,:root[data-motion=reduced] :before,:root[data-motion=reduced] :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.theme-preview[data-preview-mode=dark] .appearance-preview-metrics b,.theme-preview[data-preview-mode=dark] .appearance-preview-table em{color:color-mix(in srgb,var(--preview-primary) 45%,var(--preview-text))}.theme-preview[data-preview-mode=dark][data-preview-sidebar=light] .preview-mini-sidebar{color:var(--preview-text)}.theme-preview[data-preview-mode=dark][data-preview-sidebar=light] .preview-mini-sidebar>span{background:var(--preview-text)}@media (prefers-color-scheme:dark){.theme-preview[data-preview-mode=system] .appearance-preview-metrics b,.theme-preview[data-preview-mode=system] .appearance-preview-table em{color:color-mix(in srgb,var(--preview-primary) 45%,var(--preview-text))}.theme-preview[data-preview-mode=system][data-preview-sidebar=light] .preview-mini-sidebar{color:var(--preview-text)}.theme-preview[data-preview-mode=system][data-preview-sidebar=light] .preview-mini-sidebar>span{background:var(--preview-text)}}@media screen{:root[data-table-style=striped] .normal-pay-statistics table.pay-stats-details-table>tbody.pay-stats-payee-group:is(:hover,:focus-within)>tr>td.pay-stats-payee{background-color:color-mix(in srgb,var(--primary) 12%,var(--surface))}}.appearance-sample{--sample-surface:#fff;--sample-muted:#eef2f4;--sample-ink:#31423e;border-radius:7px;width:100%;height:88px;display:block}.appearance-sample[data-kind=mode][data-value=dark]{--sample-surface:#24312d;--sample-muted:#34443c;--sample-ink:#d8e5df}.appearance-sample[data-kind=mode][data-value=system]{--sample-surface:#e2e8e5;--sample-muted:#a6b5ae;--sample-ink:#34443c}.appearance-sample[data-kind=cardStyle][data-value=soft] .sample-demo-card{filter:drop-shadow(0 3px 4px #0000001c)}.appearance-sample[data-kind=cardStyle][data-value=elevated] .sample-demo-card{filter:drop-shadow(0 5px 5px #00000045)}.appearance-sample[data-kind=preset][data-value="1"] .sample-layout-card{filter:drop-shadow(0 3px 3px #00000020)}.appearance-presets button{padding:12px}.appearance-presets .appearance-sample{background:#eef2f4;height:112px;margin-bottom:12px}.appearance-presets button[aria-pressed=true]{box-shadow:0 0 0 1px var(--primary)}#panel-theme .palette-grid{grid-template-columns:repeat(auto-fit,minmax(125px,1fr))}#panel-theme .palette-option{padding:8px 8px 12px}.palette-visual{margin-bottom:8px;display:block}.palette-visual .appearance-sample{height:72px}.appearance-choice-check{background:var(--primary);color:#fff;border-radius:50%;width:21px;height:21px;padding:2px;position:absolute;top:6px;right:6px}#panel-theme .mode-option{gap:10px;padding:10px}.mode-choice-label{align-items:center;gap:7px;display:flex}.appearance-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.radius-visual-options{grid-template-columns:repeat(4,minmax(0,1fr))}.appearance-visual-choice{cursor:pointer;border:1px solid var(--line);min-width:0;color:var(--text);background:var(--surface);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:9px;padding:8px 8px 12px;font-size:11px;display:flex;position:relative}.appearance-visual-choice input{opacity:0;width:1px;height:1px;position:absolute}.appearance-visual-choice:focus-within{outline:2px solid var(--primary);outline-offset:3px}.appearance-visual-choice:hover{border-color:color-mix(in srgb,var(--primary) 55%,var(--line))}.appearance-visual-choice.chosen{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary);background:color-mix(in srgb,var(--primary) 4%,var(--surface))}.appearance-visual-field{margin:0}.appearance-visual-field .field-hint{min-height:36px;margin:0 0 12px}.appearance-visual-field legend{font-weight:600}.appearance-controls{gap:26px}@media (max-width:1100px){.appearance-controls{grid-template-columns:minmax(0,1fr)}}@media (max-width:640px){#panel-theme .palette-grid,.radius-visual-options{grid-template-columns:repeat(2,minmax(0,1fr))}.appearance-visual-choice{padding:6px 5px 10px;font-size:10px}.appearance-sample{height:66px}.mode-grid{gap:8px}}.palette-custom-option>span:last-of-type{justify-content:center;align-items:center;gap:5px;display:flex}.custom-palette-fields{border:1px solid var(--line);background:var(--surface-muted);border-radius:12px;padding:18px}.custom-palette-fields legend{padding-inline:6px}.custom-palette-fields>.field-hint{margin-top:0}.custom-palette-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px;display:grid}.custom-palette-field{min-width:0}.custom-palette-field>label{margin-bottom:8px;font-size:12px;font-weight:500;display:block}.custom-palette-field>div{align-items:center;gap:8px;display:flex}.custom-palette-field input[type=color]{appearance:none;border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;flex-shrink:0;width:44px;height:42px;padding:3px}.custom-palette-field input[type=color]::-webkit-color-swatch-wrapper{padding:0}.custom-palette-field input[type=color]::-webkit-color-swatch{border:0;border-radius:5px}.custom-palette-field input[type=text]{border:1px solid var(--line);background:var(--surface);width:100%;min-width:0;color:var(--text);font:inherit;border-radius:8px;padding:10px 8px;font-family:ui-monospace,monospace;font-size:12px}.custom-palette-field>small{color:var(--subtext);margin-top:8px;font-size:10px;display:block}.appearance-choice-check{color:var(--choice-on-primary,#fff)}.preview-mini-sidebar{color:var(--preview-on-sidebar,#fff)}.preview-mini-sidebar>span{background:color-mix(in srgb,var(--preview-on-sidebar,#fff) 35%,transparent)}.preview-mini-sidebar>span:first-of-type{background:color-mix(in srgb,var(--preview-on-sidebar,#fff) 65%,transparent)}.preview-mini-main>div>span{color:var(--preview-on-primary,#fff)}@media (max-width:700px){.custom-palette-grid{grid-template-columns:minmax(0,1fr)}}@media screen{:root[data-palette=custom] :is(.primary-button,.submit-button,.pay-stats-amount-claimed){color:var(--on-primary)}:root[data-palette=custom]:not([data-sidebar-style=light]) :is(.app-sidebar,.sidebar-dialog) :is(.brand strong,.brand small,.sidebar-label,.side-link,.side-data-group summary,.sidebar-close){color:var(--on-sidebar)}:root[data-palette=custom]:not([data-sidebar-style=light]) :is(.app-sidebar,.sidebar-dialog) .side-link.is-active{background:color-mix(in srgb,var(--on-sidebar) 10%,transparent)}}.audit-filter-card{margin-bottom:22px;padding:24px}.audit-filters{grid-template-columns:2fr 1fr 1fr;align-items:end;gap:16px;display:grid}.audit-filters label{color:var(--text);gap:8px;font-size:12px;display:grid}.audit-filters :is(input,select){border:1px solid var(--line);width:100%;min-width:0;min-height:42px;font:inherit;color:var(--text);background:var(--surface);border-radius:8px;padding:10px}.audit-filter-actions{grid-column:1/-1;gap:10px;display:flex}.audit-counts{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:22px;display:grid}.audit-counts>section{color:var(--primary);align-items:center;gap:16px;padding:20px;display:flex}.audit-counts span{color:var(--subtext);font-size:12px;display:block}.audit-counts strong{margin-top:6px;font-size:25px;display:block}.audit-table{border-collapse:collapse;text-align:left;width:100%;min-width:1100px;font-size:12px}.audit-table :is(th,td){border-bottom:1px solid var(--line);vertical-align:middle;padding:17px 18px}.audit-table th{background:var(--surface-muted);font-weight:700}.audit-table td:first-child{white-space:nowrap}.audit-table small{color:var(--subtext);overflow-wrap:anywhere;margin-top:6px;font-size:10px;display:block}.audit-table td:nth-child(4){max-width:300px}.audit-source{overflow-wrap:anywhere;font-size:10px}.audit-table :is(td,th):nth-last-child(-n+2){text-align:center}.audit-status{white-space:nowrap;border-radius:6px;padding:5px 9px;font-size:11px;display:inline-block}.audit-status.is-success{background:color-mix(in srgb,var(--success) 10%,var(--surface));color:var(--success)}.audit-status.is-failed{background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}.audit-details-button{white-space:nowrap;padding:8px 10px;font-size:11px}.audit-pagination{color:var(--subtext);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:18px 22px;font-size:12px;display:flex}.audit-pagination>div{gap:10px;display:flex}.audit-details-popup{width:min(900px,100vw - 32px)}.audit-details-popup .audit-details-body{max-height:65vh;padding:24px;overflow:auto}.audit-event-meta{grid-template-columns:1fr 1fr;gap:16px;margin:0 0 26px;display:grid}.audit-event-meta dt{color:var(--subtext);font-size:11px}.audit-event-meta dd{overflow-wrap:anywhere;margin:6px 0 0;font-size:12px}.audit-details-body h3{margin:22px 0 12px;font-size:14px}.audit-change-list{gap:10px;display:grid}.audit-change-list>div{border:1px solid var(--line);border-radius:8px;padding:12px;font-size:12px}.audit-change-list span{color:var(--subtext);margin-left:12px}.audit-change-list p{overflow-wrap:anywhere;margin:8px 0 0;font-size:11px}.audit-json{background:var(--surface-muted);border:1px solid var(--line);color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:10px;padding:16px;font-size:11px;line-height:1.7}@media (max-width:750px){.audit-filters,.audit-event-meta{grid-template-columns:minmax(0,1fr)}.audit-counts{gap:10px}.audit-counts>section{gap:8px;padding:14px}.audit-counts svg{display:none}.audit-counts strong{font-size:22px}}
