body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#ddd}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{max-width:1200px;margin:0 auto;padding:20px}.error{color:#d32f2f;background-color:#ffebee;padding:15px;border-radius:4px;margin-bottom:20px}.app{height:100vh;display:flex;flex-direction:column}.app .errorBanner{color:#d32f2f;background-color:#ffebee;padding:15px;border-radius:4px;margin-bottom:20px}.app .main-content-container{width:100%;flex:1;overflow:auto;margin:0 auto;padding:10px 20px}.app .main-content-container .staff-tab{display:grid;grid-template-columns:1fr;gap:20px}.app .main-content-container .updated-info-banner{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;color:#666;font-style:italic;font-size:.85rem}.app .main-content-container .updated-info-banner .refresh-controls{display:flex;align-items:center;gap:10px}.app .main-content-container .updated-info-banner .auto-refresh-toggle{display:flex;align-items:center;cursor:pointer;font-size:.85rem;color:#666}.app .main-content-container .updated-info-banner .auto-refresh-toggle input{margin-right:5px}.app .main-content-container .updated-info-banner .auto-refresh-label{-webkit-user-select:none;user-select:none}.tooltip-wrapper.tooltip-container{position:relative;display:inline-block;cursor:help}.tooltip-wrapper .custom-tooltip{position:fixed;background-color:#fff;color:#333;border-radius:4px;padding:10px;box-shadow:0 2px 8px #00000026;z-index:9999;font-size:.85rem;max-width:250px;min-width:150px;max-height:300px;overflow-y:auto;overflow-x:hidden;white-space:normal;line-height:1.4;text-align:left}.tooltip-wrapper .tooltip-top:before,.tooltip-wrapper .tooltip-bottom:before,.tooltip-wrapper .tooltip-left:before,.tooltip-wrapper .tooltip-right:before{content:"";position:absolute;border:6px solid transparent}.tooltip-wrapper .tooltip-top:before{border-top-color:#fff;bottom:-12px;left:50%;transform:translate(-50%)}.tooltip-wrapper .tooltip-bottom:before{border-bottom-color:#fff;top:-12px;left:50%;transform:translate(-50%)}.tooltip-wrapper .tooltip-left:before{border-left-color:#fff;right:-12px;top:50%;transform:translateY(-50%)}.tooltip-wrapper .tooltip-right:before{border-right-color:#fff;left:-12px;top:50%;transform:translateY(-50%)}.tooltip-wrapper .tooltip-name-list{list-style:none;margin:0;padding:0;max-height:150px;overflow-y:auto}.tooltip-wrapper .tooltip-name-list li{padding:3px 0;border-bottom:1px dotted #eee}.tooltip-wrapper .tooltip-name-list li:last-child{border-bottom:none}.tooltip-wrapper .tooltip-name-list .on-break{color:#ff9800;font-style:italic}.tooltip-wrapper .tooltip-name-list .location-mismatch{font-size:.75rem;color:#e65100;font-style:italic}.tooltip-wrapper .tooltip-section{margin-bottom:10px}.tooltip-wrapper .tooltip-section-title{font-weight:600;border-bottom:1px solid #ddd;padding-bottom:3px;margin-bottom:5px}.tooltip-wrapper .tooltip-empty{color:#999;font-style:italic;padding:2px 0}.tooltip-wrapper [title],.tooltip-wrapper .summary-table td[title]{cursor:default;position:static}.tooltip-wrapper [title]:after,.tooltip-wrapper .summary-table td[title]:after{white-space:normal}.tooltip-wrapper .count-with-tooltip{cursor:help;display:inline-block;padding:1px 4px;border-radius:3px;border-bottom:1px dotted #777}.tooltip-wrapper .count-with-tooltip:hover{background-color:#0000000d}.tooltip-wrapper .tooltip-legend{margin-top:10px;padding-top:8px;border-top:1px solid rgba(0,0,0,.1);font-size:.85em;display:flex;align-items:center}.tooltip-wrapper .legend-text{margin-left:4px;color:#666}.student-transfer-button-component .student-transfer-icon:hover{opacity:1}.student-name-with-icon{display:flex;justify-content:space-between;align-items:center;width:100%}.student-name-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-header{margin-bottom:8px}.section-header .student-name-with-icon{display:flex;justify-content:space-between;align-items:center}.section-header .student-transfer-icon{margin-right:4px}.tooltip-section-title{padding-bottom:6px;margin-bottom:8px;border-bottom:1px solid #eaeaea}.tooltip-section-title .student-name-with-icon{display:flex;justify-content:space-between;align-items:center}.tooltip-section-title .student-transfer-icon{margin-left:8px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.transfer-modal{background-color:#fff;border-radius:8px;width:90%;max-width:450px;box-shadow:0 5px 15px #0003;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #e0e0e0}.modal-header h3{margin:0;color:#333;font-size:18px}.close-button{background:none;border:none;font-size:24px;cursor:pointer;color:#666}.close-button:hover{color:#333}.modal-body{padding:16px;max-height:60vh;overflow-y:auto}.error-message{background-color:#ffebee;color:#d32f2f;padding:10px;border-radius:4px;margin-bottom:16px}.classroom-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.classroom-option{background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;padding:12px;text-align:left;cursor:pointer;transition:background-color .2s}.classroom-option:hover{background-color:#e3f2fd;border-color:#90caf9}.no-options{color:#666;font-style:italic}.modal-footer{padding:16px;display:flex;justify-content:flex-end;border-top:1px solid #e0e0e0}.cancel-button{background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;padding:8px 16px;cursor:pointer}.cancel-button:hover{background-color:#e0e0e0}.cancel-button:disabled{opacity:.5;cursor:not-allowed}.smartcare-signin-component .signin-icon-button:hover{transform:scale(1.2)}.smartcare-signin-component .signin-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.smartcare-signin-component .signin-dialog{background-color:#fff;border-radius:8px;padding:20px;width:400px;max-width:90vw;box-shadow:0 4px 12px #00000026}.smartcare-signin-component .signin-dialog h3{margin-top:0;color:#333}.smartcare-signin-component .dialog-content{margin:20px 0}.smartcare-signin-component .dialog-content label{display:block;margin-bottom:8px;font-weight:500}.smartcare-signin-component .dialog-content select{width:100%;padding:8px 12px;border:1px solid #ccc;border-radius:4px;font-size:16px}.smartcare-signin-component .dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.smartcare-signin-component .dialog-actions button{padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:500}.smartcare-signin-component .signin-button{background-color:#4caf50;color:#fff;border:none}.smartcare-signin-component .signin-button:hover:not(:disabled){background-color:#3e8e41}.smartcare-signin-component .cancel-button{background-color:#f5f5f5;border:1px solid #ddd;color:#333}.smartcare-signin-component .cancel-button:hover{background-color:#e5e5e5}.smartcare-signin-component .error-message{color:#e53935;background-color:#ffebee;padding:8px 12px;border-radius:4px;margin-bottom:16px}.smartcare-signin-component button:disabled{opacity:.6;cursor:not-allowed}.classroom-transfer-btn-component .transfer-icon-button:hover{opacity:.8}.classroom-transfer-btn-component .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.classroom-transfer-btn-component .transfer-modal{background-color:#fff;border-radius:4px;box-shadow:0 2px 10px #0003;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.classroom-transfer-btn-component .modal-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #eee}.classroom-transfer-btn-component .modal-header h3{margin:0;font-size:1.2rem}.classroom-transfer-btn-component .close-button{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666}.classroom-transfer-btn-component .modal-body{padding:20px}.classroom-transfer-btn-component .error-message{color:#d32f2f;background-color:#ffebee;padding:10px;border-radius:4px;margin-bottom:15px}.classroom-transfer-btn-component .classroom-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:15px}.classroom-transfer-btn-component .classroom-option{padding:10px;background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;cursor:pointer;text-align:left;transition:background-color .2s}.classroom-transfer-btn-component .classroom-option:hover{background-color:#e0e0e0}.classroom-transfer-btn-component .modal-footer{padding:15px 20px;border-top:1px solid #eee;display:flex;justify-content:flex-end}.classroom-transfer-btn-component .cancel-button{padding:8px 16px;background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;cursor:pointer}.classroom-transfer-btn-component .cancel-button:hover{background-color:#e0e0e0}.classroom-transfer-btn-component .no-options{color:#666;font-style:italic}.classroom-transfer-btn-component button:disabled{opacity:.6;cursor:not-allowed}.teacher-search-component.teacher-search-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.teacher-search-component .teacher-search-dialog{background-color:#fff;border-radius:8px;width:90%;max-width:500px;box-shadow:0 4px 20px #00000026;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.teacher-search-component .teacher-search-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #e0e0e0}.teacher-search-component .teacher-search-header h3{margin:0;color:#333;font-size:18px}.teacher-search-component .teacher-search-body{padding:16px;overflow-y:auto;flex:1}.teacher-search-component .search-input-container{position:relative;margin-bottom:16px}.teacher-search-component .teacher-search-input{width:100%;padding:12px 16px;border:1px solid #ddd;border-radius:4px;font-size:16px;transition:border-color .2s}.teacher-search-component .teacher-search-input:focus{outline:none;border-color:#4285f4;box-shadow:0 0 0 2px #4285f433}.teacher-search-component .search-loading-indicator{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;border:2px solid #f3f3f3;border-top:2px solid #4285F4;border-radius:50%;animation:spin 1s linear infinite}.teacher-search-component .search-error{color:#d32f2f;background-color:#ffebee;padding:10px;border-radius:4px;margin-bottom:16px}.teacher-search-component .search-results{max-height:300px;overflow-y:auto}.teacher-search-component .teacher-result-item{padding:12px;border:1px solid #eee;border-radius:4px;margin-bottom:8px;cursor:pointer;transition:background-color .2s}.teacher-search-component .teacher-result-item:hover{background-color:#f5f5f5}.teacher-search-component .teacher-result-name{font-weight:500;margin-bottom:4px;display:flex;justify-content:space-between;align-items:center}.teacher-search-component .teacher-current-location{font-size:13px;color:#666;display:flex;justify-content:space-between}.teacher-search-component .classroom-stats{font-size:12px;color:#757575;margin-left:8px;white-space:nowrap}.teacher-search-component .transferring-indicator{font-size:12px;color:#4285f4;font-style:italic;margin-left:8px}.teacher-search-component .no-results,.teacher-search-component .search-instructions{text-align:center;color:#757575;padding:16px;font-style:italic}.teacher-search-component .close-button{background:none;border:none;font-size:24px;cursor:pointer;color:#666}.teacher-search-component .close-button:hover{color:#333}.teacher-tooltip-component .teacher-list-item{display:flex;justify-content:space-between;align-items:center;width:100%}.teacher-tooltip-component .teacher-info{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.teacher-tooltip-component .transfer-button-container{margin-left:4px;display:flex;align-items:center}.teacher-tooltip-component .tooltip-header-with-icon{display:flex;justify-content:space-between;align-items:center;width:100%}.teacher-tooltip-component .add-teacher-icon:hover{opacity:1}.teacher-tooltip-component .on-break{opacity:.6}.teacher-tooltip-component .tooltip-name-list{list-style:none;padding:0;margin:0;max-height:200px;overflow-y:auto}.teacher-tooltip-component .tooltip-name-list li{padding:3px 0;display:flex;align-items:center}.teacher-tooltip-component .tooltip-section-title{font-weight:600;padding-bottom:5px;margin-bottom:8px;border-bottom:1px solid #eaeaea}.teacher-tooltip-component .tooltip-empty{font-style:italic;color:#999;padding:5px 0}.teacher-tooltip-component .tooltip-legend{margin-top:8px;font-size:.75rem;color:#666;border-top:1px solid #eaeaea;padding-top:8px}.teacher-tooltip-component .legend-text{margin-left:5px;vertical-align:middle}.tooltip-component.tooltip-container{position:relative;display:inline-block}.tooltip-component .tooltip-text{cursor:pointer}.tooltip-component .tooltip-callout{position:fixed;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px;padding:8px;font-family:Arial,sans-serif;font-size:12px;color:#666;box-shadow:0 2px 4px #0000001a;max-width:200px;z-index:9999;visibility:visible;opacity:1;pointer-events:none;margin-top:-40px}.tooltip-component .tooltip-callout:before{content:"";position:absolute;bottom:-8px;left:10px;border-width:8px 8px 0 8px;border-style:solid;border-color:#ccc transparent transparent transparent}.tooltip-component .tooltip-callout:after{content:"";position:absolute;bottom:-7px;left:11px;border-width:7px 7px 0 7px;border-style:solid;border-color:#f5f5f5 transparent transparent transparent}.summary-table-component .summary-table{max-width:550px;box-shadow:0 1px 4px #0003;border-radius:4px;font-size:.9rem;margin-bottom:20px}.summary-table-component .summary-table tr:not(.section-row) td:first-child{padding-left:25px}.summary-table-component .summary-table col.class-or-section-name{width:20ch}.summary-table-component .summary-table col.student-count,.summary-table-component .summary-table col.teacher-count{width:10ch}.summary-table-component .summary-table col.status-text,.summary-table-component .summary-table col.raquired-ratio{width:auto}.summary-table-component .summary-table th,.summary-table-component .summary-table td{padding:6px 10px;text-align:left;border-bottom:1px solid #eee}.summary-table-component .summary-table th{background-color:#f2f2f2;font-weight:600;color:#333;font-size:.85rem;white-space:nowrap;top:60px;box-shadow:0 2px 3px -2px #00000026;z-index:100}.summary-table-component .summary-table th.status-header,.summary-table-component .summary-table td.status-cell{text-align:left}.summary-table-component .summary-table .nowrap-cell{white-space:nowrap}.summary-table-component .summary-table tr:last-child td{border-bottom:none}.summary-table-component .summary-table tr:hover{background-color:#f9f9f9}.summary-table-component .section-row{background-color:#f5f5f5;font-weight:500}.summary-table-component .section-row td{padding:6px 10px;border-bottom:1px solid #ddd;font-size:1.1rem}.summary-table-component .section-row.ratio-optimal{background-color:#4caf501a}.summary-table-component .section-row.ratio-warning{background-color:#ff98001a}.summary-table-component .section-row.ratio-critical{background-color:#f443361a}.summary-table-component .section-row.ratio-under{background-color:#e539351a}.summary-table-component .section-row.ratio-over{background-color:#ff98001a}.summary-table-component .section-row td{padding:4px 10px}.summary-table-component .class-ratio{font-weight:700}.summary-table-component .ratio-optimal{color:#4caf50}.summary-table-component .ratio-warning{color:#ff9800}.summary-table-component .ratio-critical{color:#f44336}.summary-table-component .ratio-under{color:#e53935}.summary-table-component .ratio-over{color:#ff9800}.summary-table-component .status{display:inline-block;padding:2px 6px;border-radius:3px;font-size:.7rem;font-weight:500}.summary-table-component .section-row .status{font-size:.8rem}.summary-table-component .status-optimal{background-color:#e8f5e9;color:#2e7d32}.summary-table-component .status-warning{background-color:#fff3e0;color:#ef6c00}.summary-table-component .status-critical,.summary-table-component .status-under{background-color:#ffebee;color:#c62828}.summary-table-component .status-over{background-color:#fff3e0;color:#ef6c00}.summary-table-component .special-category{background-color:#f5f5f5}.summary-table-component .summary-section-title{font-size:1.1rem;margin:0 0 10px;padding-bottom:5px;border-bottom:1px solid #e0e0e0;color:#424242}.classroom-ratios-component .no-data{text-align:center;padding:20px;background-color:#f8f8f8;border-radius:4px;color:#666}.classroom-ratios-component .classroom-tables-container{display:flex;gap:20px;flex-wrap:wrap;justify-content:center}.classroom-ratios-component .special-tables-container{margin-top:10px}.classroom-ratios-component .status-neutral{background-color:#6c757d;color:#fff;padding:2px 6px;border-radius:4px;font-size:.8rem;display:inline-block}.classroom-ratios-component .other-table-container{width:50%;margin:0}.summary-counts-table{margin:20px 0;padding:15px;background-color:#f9f9f9;border-radius:8px;box-shadow:0 2px 4px #0000001a}.summary-counts-table h2{margin-top:0;margin-bottom:15px;color:#333;font-size:1.4rem}.summary-counts-table table{width:100%;border-collapse:collapse;margin-bottom:10px}.summary-counts-table th,.summary-counts-table td{padding:12px 15px;text-align:center;border:1px solid #ddd}.summary-counts-table th{background-color:#f0f0f0;font-weight:600;color:#444}.summary-counts-table tbody tr{background-color:#fff}.summary-counts-table tbody tr:hover{background-color:#eaf7ff}.not-checked-in-employees-component h2{color:#333;margin-top:0;margin-bottom:20px;padding-bottom:10px}.not-checked-in-employees-component .loading-indicator{color:#666;text-align:center;padding:20px}.not-checked-in-employees-component .error-message{color:#d32f2f;background-color:#ffebee;padding:10px;border-radius:4px;margin-bottom:10px}.not-checked-in-employees-component .empty-state{text-align:center;color:#4caf50;padding:20px;font-weight:500}.not-checked-in-employees-component .employee-list{width:100%}.not-checked-in-employees-component .refresh-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.not-checked-in-employees-component .employee-count{color:#666;font-size:14px}.not-checked-in-employees-component .employee-items{list-style:none;padding:0;margin:0}.not-checked-in-employees-component .employee-item{display:flex;justify-content:space-between;align-items:center;padding:15px;border-bottom:1px solid #eee}.not-checked-in-employees-component .employee-item .employee-details{flex:1}.not-checked-in-employees-component .employee-item .employee-details .employee-name{font-weight:600;font-size:16px;margin-bottom:5px}.not-checked-in-employees-component .employee-item .employee-details .employee-location,.not-checked-in-employees-component .employee-item .employee-details .employee-id,.not-checked-in-employees-component .employee-item .employee-details .employee-site,.not-checked-in-employees-component .employee-item .employee-details .employee-shift{color:#666;font-size:14px;margin-bottom:3px}.not-checked-in-employees-component .employee-item .action-area{text-align:right}@media (max-width: 620px){.not-checked-in-employees-component .employee-item .action-area{max-width:120px}}.not-checked-in-employees-component .employee-item .action-area .check-in-button{width:100%;font-size:.8rem;background-color:#4caf50;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-weight:500;transition:background-color .2s}.not-checked-in-employees-component .employee-item .action-area .check-in-button:hover{background-color:#388e3c}.not-checked-in-employees-component .employee-item .action-area .check-in-button:disabled{background-color:#c8e6c9;cursor:not-allowed}.not-checked-in-employees-component .employee-item .action-area .check-in-button.disabled{background-color:#e0e0e0;color:#757575}.not-checked-in-employees-component .employee-item:last-child{border-bottom:none}.not-checked-in-employees-component .success-message{color:#4caf50;font-weight:500}.not-checked-in-employees-component .dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.not-checked-in-employees-component .dialog-box{background-color:#fff;border-radius:8px;padding:20px;box-shadow:0 4px 8px #0003;max-width:400px;width:100%;text-align:left}.not-checked-in-employees-component .dialog-box h3{margin-top:0;color:#333}.not-checked-in-employees-component .classroom-select{width:100%;padding:10px;margin:15px 0;border:1px solid #ddd;border-radius:4px;font-size:16px}.not-checked-in-employees-component .dialog-buttons{display:flex;justify-content:flex-end;margin-top:20px}.not-checked-in-employees-component .dialog-cancel{background-color:#f5f5f5;color:#333;border:1px solid #ddd;padding:8px 16px;border-radius:4px;margin-right:10px;cursor:pointer}.not-checked-in-employees-component .dialog-confirm{background-color:#4caf50;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer}.not-checked-in-employees-component .dialog-confirm:disabled{background-color:#c8e6c9;cursor:not-allowed}.not-clocked-in-teachers-component.not-clocked-in-section{margin-bottom:20px;transition:all .2s ease-in-out}.not-clocked-in-teachers-component .not-clocked-in-section h2{color:#333;margin-top:0;margin-bottom:0}.not-clocked-in-teachers-component .not-clocked-in-list{list-style:none;padding:0;margin:0}.not-clocked-in-teachers-component .not-clocked-in-teacher{padding:8px 10px;border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:space-between}.not-clocked-in-teachers-component .not-clocked-in-teacher .teacher-info{display:flex;align-items:center}@media (max-width: 620px){.not-clocked-in-teachers-component .not-clocked-in-teacher .teacher-info{flex-direction:column;align-items:flex-start}.not-clocked-in-teachers-component .not-clocked-in-teacher .teacher-actions{width:5em}}.not-clocked-in-teachers-component .not-clocked-in-teacher .teacher-actions{display:flex;flex-direction:column;align-items:flex-end}.not-clocked-in-teachers-component .not-clocked-in-teacher .teacher-actions .logout-button{background-color:#e74c3c;color:#fff;border:none;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:.8rem;transition:background-color .2s;white-space:nowrap;text-wrap:wrap;width:100%}.not-clocked-in-teachers-component .logout-button:hover{background-color:#c0392b}.not-clocked-in-teachers-component .logout-button:focus{outline:none;box-shadow:0 0 0 2px #e74c3c4d}.not-clocked-in-teachers-component .logout-button:disabled{background-color:#f5b5b0;cursor:not-allowed}.not-clocked-in-teachers-component .logout-error{color:#e74c3c;font-size:.75rem;margin-top:4px}.not-clocked-in-teachers-component .logout-success{color:#27ae60;font-size:.9rem;font-weight:500}.not-clocked-in-teachers-component .not-clocked-in-teacher:last-child{border-bottom:none}.not-clocked-in-teachers-component .not-clocked-in-teacher:hover{background-color:#f9f9f9}.not-clocked-in-teachers-component .teacher-name{font-weight:600;color:#e74c3c}.not-clocked-in-teachers-component .teacher-location{color:#333;margin-left:4px}.not-clocked-in-teachers-component .teacher-id{color:#777;font-size:.9em;margin-left:4px}.not-clocked-in-teachers-component .not-clocked-in-section .loading-message,.not-clocked-in-teachers-component .not-clocked-in-section .error-message,.not-clocked-in-teachers-component .not-clocked-in-section .empty-message{padding:15px 10px;text-align:center;font-style:italic;color:#777}.not-clocked-in-teachers-component .not-clocked-in-section .error-message{color:#e74c3c}.not-clocked-in-teachers-component .not-clocked-in-section .loading-message{color:#3498db}.header-component{display:flex;align-items:center;padding:5px 10px;background-color:#1976d2;color:#fff;box-shadow:0 2px 4px #0000001a;text-align:center}@media (min-width: 1200px){.header-component{padding:15px 20px}}.header-component .user-profile{display:flex;align-items:center;gap:10px;margin-left:auto;padding:0 20px;min-width:10rem;flex-direction:row}@media (max-width: 599px){.header-component .user-profile{flex-direction:column;align-items:flex-end;gap:4px;padding:0 10px}}.header-component .sign-out-button-small{background-color:#f44336;color:#fff;border:1px solid #f44336;border-radius:4px;padding:5px 10px;font-size:.8rem;cursor:pointer;transition:all .2s;opacity:.6}.header-component .sign-out-button-small:hover{background-color:#f44336;opacity:1;color:#fff}.classroom-detail-component.classroom-detail{position:relative;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden;display:flex;flex-direction:column;height:100%}.classroom-detail-component .classroom-header{padding:12px 16px;color:#fff;position:relative}.classroom-detail-component .status-bg-optimal{background-color:#4caf50}.classroom-detail-component .status-bg-warning{background-color:#ff9800}.classroom-detail-component .status-bg-critical{background-color:#f44336}.classroom-detail-component .status-bg-under{background-color:#b1152d}.classroom-detail-component .status-bg-over{background-color:#dfa220}.classroom-detail-component .classroom-header-content{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.classroom-detail-component .classroom-name{margin:0;font-size:16px;font-weight:600;color:#333;flex:1}.classroom-detail-component .classroom-quick-stats{display:flex;gap:10px;font-size:.8rem;font-weight:600}.classroom-detail-component .quick-stat{font-size:14px;font-weight:600;padding:1px 5px;border-radius:3px;background:#fff3;display:flex;align-items:center}.classroom-detail-component .classroom-body{flex:1;overflow:auto;padding:12px 16px}.classroom-detail-component .classroom-section{margin-bottom:16px}.classroom-detail-component .classroom-section h4{margin:0 0 5px;font-size:.9rem;color:#333;border-bottom:1px solid #eee;padding-bottom:3px}.classroom-detail-component .section-header{margin:0 0 8px;font-size:14px;font-weight:600;color:#666;display:flex;justify-content:space-between;align-items:center}.classroom-detail-component .list{list-style:none;padding:0;margin:0;max-height:150px;overflow-y:auto}.classroom-detail-component .list-item{padding:6px 0;display:flex;justify-content:space-between;align-items:center;border-bottom:1px dotted #eee;font-size:.85rem}.classroom-detail-component .list-item:last-child{border-bottom:none}.classroom-detail-component .on-break{opacity:.6}.classroom-detail-component .name{display:flex;align-items:center;gap:5px;font-weight:500}.classroom-detail-component .detail{font-size:.75rem;color:#666}.classroom-detail-component .break-tag{font-size:10px;padding:2px 4px;background-color:#f5f5f5;border-radius:3px;color:#777;text-transform:uppercase}.classroom-detail-component .empty-message{color:#999;font-style:italic;font-size:13px;margin:8px 0;text-align:center;padding:5px 0}.classroom-detail-component .ratio-optimal .stat-value{color:#2e7d32}.classroom-detail-component .ratio-warning .stat-value{color:#ef6c00}.classroom-detail-component .ratio-critical .stat-value{color:#c62828}.classroom-detail-component .location-mismatch{font-size:12px;color:#ff6b6b;font-style:italic;margin-left:3px}.classroom-detail-component .status-bg-good{background-color:#c8e6c9}.classroom-detail-component .status-bg-warning{background-color:#ffe0b2}.classroom-detail-component .status-bg-danger{background-color:#ffcdd2}.classroom-detail-component .missing-id-icon,.classroom-detail-component .not-clocked-icon{display:inline-block;width:12px;height:12px;border-radius:50%;margin-left:4px}.classroom-detail-component .missing-id-icon{background-color:#ff9800}.classroom-detail-component .not-clocked-icon{background-color:#f44336}.classroom-detail-component .signin-icon-button{margin-left:4px;cursor:pointer}.classroom-detail-component .tooltip-legend{margin-top:8px;font-size:.75rem;color:#666;border-top:1px solid #eaeaea;padding-top:8px}.classroom-detail-component .legend-text{margin-left:5px;vertical-align:middle}.classroom-detail-component .student-name-with-icon,.classroom-detail-component .header-with-icon{display:flex;align-items:center;justify-content:space-between;width:100%}.classroom-detail-component .student-name-text{margin-right:8px}.classroom-detail-component .add-teacher-icon:hover{opacity:1}.classroom-details-component .section-container{margin-bottom:20px}.classroom-details-component .section-ratio{font-weight:600;padding:1px 6px;border-radius:4px;background-color:#e8eaf6;font-size:.85rem;margin-left:10px}.classroom-details-component .section-name{font-size:1.1rem;font-weight:500}.classroom-details-component .classroom-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:15px;margin-top:10px}.classroom-details-component .special-staff-sections{margin-top:15px;display:flex;gap:15px;flex-wrap:wrap}.classroom-details-component .special-staff-section{flex:1;min-width:250px;background-color:#f8f9fa;border-radius:6px;padding:10px;box-shadow:0 1px 3px #0000001a}.classroom-details-component .special-staff-section h3{margin-top:0;padding-bottom:5px;border-bottom:1px solid #dee2e6;color:#495057;font-size:1rem}.classroom-details-component .staff-list{list-style:none;padding:0;margin:0}.classroom-details-component .staff-list li{padding:4px 8px;margin-bottom:3px;border-radius:3px;background-color:#fff;display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.classroom-details-component .staff-list li.on-break{background-color:#fff3cd}.classroom-details-component .break-tag{font-size:.7rem;background-color:#ffc107;color:#212529;padding:2px 5px;border-radius:3px;font-weight:700}.classroom-details-component .missing-id-icon,.classroom-details-component .not-clocked-icon,.classroom-details-component .signin-icon-button{display:inline-block;width:16px;height:16px;margin-left:5px;vertical-align:middle}.classroom-details-component .missing-id-icon{background-color:#dc3545;border-radius:50%}.classroom-details-component .signin-icon-button{border-radius:50%;cursor:pointer}.classroom-details-component .tooltip-legend{margin-top:10px;font-size:.8rem;color:#6c757d}.classroom-details-component .legend-text{margin-left:5px;vertical-align:middle}.classroom-details-component .empty-message{color:#6c757d;font-style:italic;text-align:center;padding:10px 0}.historical-ratios-component .timeline-container{min-width:100%;display:flex;flex-direction:column;padding:20px;box-sizing:border-box}.historical-ratios-component .time-axis{display:flex;justify-content:space-between;margin-left:150px;position:relative;height:20px}.historical-ratios-component .time-label{flex:1;text-align:left;font-size:12px;color:#555;font-weight:500;border-left:1px solid #ddd}.historical-ratios-component .classroom-row{display:flex;align-items:stretch;margin:10px 0;cursor:pointer;-webkit-user-select:none;user-select:none}.historical-ratios-component .classroom-row:hover{background-color:#00000008}.historical-ratios-component .classroom-name{width:140px;font-weight:700;text-align:right;margin-right:10px;position:sticky;left:0;background:#fff;height:auto;display:flex;align-items:center;justify-content:flex-end;z-index:100;padding-right:10px;border-right:1px solid rgb(87,87,87)}.historical-ratios-component .controls-container{display:flex;justify-content:space-between;align-items:center;margin:20px}.historical-ratios-component .date-selector{padding:10px;background-color:#f5f5f5;border-radius:4px;display:flex;align-items:center;gap:10px}.historical-ratios-component .date-input-container{display:flex;align-items:center;gap:10px}.historical-ratios-component .date-nav-button{background-color:#e0e0e0;border:1px solid #bbb;border-radius:4px;padding:5px 10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .2s;height:30px;width:30px}.historical-ratios-component .date-nav-button:hover{background-color:#d0d0d0}.historical-ratios-component .nav-icon{font-size:14px;font-weight:700}.historical-ratios-component .date-selector label{font-weight:700}.historical-ratios-component .date-selector input{padding:8px;font-size:14px;border:1px solid #ddd;border-radius:4px}.historical-ratios-component .zoom-controls{display:flex;align-items:center;gap:10px;background-color:#f5f5f5;border-radius:4px;padding:8px 12px}.historical-ratios-component .zoom-controls button{background-color:#e0e0e0;border:1px solid #bbb;border-radius:4px;padding:5px 10px;font-size:14px;cursor:pointer;transition:all .2s}.historical-ratios-component .zoom-controls button:hover:not(:disabled){background-color:#d0d0d0}.historical-ratios-component .zoom-controls button:disabled{opacity:.5;cursor:not-allowed}.historical-ratios-component .zoom-controls span{font-weight:700;min-width:50px;text-align:right}.historical-ratios-component .control-hints-container{display:flex;flex-direction:column;margin-left:8px;text-align:right}.historical-ratios-component .control-hint{font-size:12px;color:#777;font-style:italic;margin-top:2px}.historical-ratios-component .timeline-scroll-container{overflow-x:auto;margin:20px;border:1px solid #ddd;border-radius:4px;background-color:#fafafa;position:relative}.historical-ratios-component .section-container{margin-bottom:40px}.historical-ratios-component .section-header{display:flex;align-items:center;margin-bottom:10px;background-color:#e9ecef;position:relative}.historical-ratios-component .section-header>.time-bars{filter:saturate(100%)}.historical-ratios-component .section-header .time-bars{height:35px}.historical-ratios-component .section-name-container{width:136px;font-size:20px;height:100%;font-weight:700;color:#333;text-align:right;margin-right:10px;position:sticky;left:0;border-top-left-radius:4px;border-bottom-left-radius:4px;border-left:4px solid #2196f3;background:#e9ecef;z-index:101;padding:5px 10px 5px 0;display:flex;justify-content:flex-end;border-right:1px solid rgb(87,87,87)}.historical-ratios-component .empty-timelines{padding:10px 10px 10px 150px;color:#777;font-style:italic}.historical-ratios-component .classroom-name{display:flex;align-items:center;justify-content:flex-end}.historical-ratios-component .classroom-transition{position:absolute;background-color:#ffffffbf;border:1px solid #ddd;border-radius:2px;padding:1px 3px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;z-index:2}.historical-ratios-component .prev-classroom{left:0;transform:translate(-100%) translateY(-50%);text-align:right}.historical-ratios-component .next-classroom{right:0;transform:translate(100%) translateY(-50%);text-align:left}.historical-ratios-component .timeline-wrapper{position:relative}.historical-ratios-component .timeline-wrapper.loading{cursor:progress}.historical-ratios-component .timeline-wrapper.loading *{cursor:progress!important}.historical-ratios-component .loading-overlay{position:absolute;top:10px;left:10px;z-index:1000;display:flex;align-items:center;justify-content:center;background-color:#fffc;border-radius:50%;padding:10px;box-shadow:0 2px 8px #00000026}.historical-ratios-component .spinner{width:30px;height:30px;border:3px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#3498db;animation:spin 1s ease-in-out infinite}.historical-ratios-component .error-message{color:#e74c3c;padding:10px;background-color:#fadbd8;border-radius:4px;margin:10px 0}.historical-ratios-component .date-header{font-size:25px;font-weight:700;color:#333;padding:10px 15px;background-color:#f5f5f5;border-radius:4px;text-align:center;min-width:240px}.historical-ratios-component .other-section-container{margin-top:20px;border-top:2px dashed #ccc;padding-top:10px}.historical-ratios-component .other-teachers-container{margin-left:15px}.historical-ratios-component .expand-button{margin-left:8px;width:15px;height:15px;display:inline-flex;align-items:center;justify-content:center;font-size:16px;line-height:1;background-color:#e0e0e0;border:1px solid #ccc;border-radius:3px;cursor:pointer;transition:background-color .2s}.historical-ratios-component .expand-button:hover{background-color:#d0d0d0}.historical-ratios-component .expand-button.expanded{background-color:#ccc}.historical-ratios-component .individual-timeline.highlighted{background-color:#ffecb366;border-radius:4px;box-shadow:0 0 0 2px #ffc10780;transition:all .3s ease-in-out}.time-bars{position:relative;flex:1;height:30px;background:#f0f0f0;border:1px solid #ddd;display:flex}.time-bar{position:absolute;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer}.time-bar.ratio-over{background:#eb974ed9}.time-bar.ratio-under{background:#d9534fd9}.time-bar.ratio-optimal{background:#5cb85cd9}.time-bar.ratio-empty{background:#bbb}.time-bar:hover{box-shadow:0 3px 6px #000000b3;z-index:10}.ratio-label{font-size:10px;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.7);white-space:nowrap;padding:0 4px}.section-aggregated-bars{flex:1;height:30px;background:#f0f8ff80;position:relative}.section-aggregated-bar{height:100%;box-shadow:0 1px 3px #0000001a}.time-cursor-line{position:absolute;top:0;height:100%;width:1px;background-color:#dc3545b3;pointer-events:none;z-index:5;box-shadow:0 0 3px #0000004d}.time-cursor-label{position:absolute;top:0;left:0;transform:translate(-50%);background-color:#dc3545e6;color:#fff;padding:2px 6px;border-radius:3px;font-size:11px;font-weight:700;white-space:nowrap;box-shadow:0 1px 3px #0000004d}.individual-row{margin-top:4px 0px}.individual-row .person-name{font-size:12px;font-weight:400;background-color:#f8f8f8}.individual-row .time-bars{height:16px;position:relative;background-color:#f0f0f0;border-radius:2px;flex:1}.individual-row .time-bar{position:absolute;height:100%;top:0;border-radius:2px;overflow:visible}.shift-marker{position:absolute;width:6px;height:110%;top:-20%;z-index:50;border-radius:1px}.start-marker{border:3px solid #2ecc71;border-right:none}.start-marker:before{content:"";position:absolute;width:6px;height:6px;background-color:#2ecc71;border-radius:50%;top:50%;left:-4px;transform:translateY(-50%)}.end-marker{border:3px solid #e74c3c;border-left:none;transform:translate(-100%)}.end-marker:before{content:"";position:absolute;width:6px;height:6px;background-color:#e74c3c;border-radius:50%;top:50%;left:4px;transform:translateY(-50%)}.shift-marker.estimated:after{content:"?";width:12px;height:12px;background-color:#f39c12;color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;border-radius:50%}.start-marker.estimated{background-color:#2ecc71;opacity:.7}.end-marker.estimated{background-color:#e74c3c;opacity:.7}.time-bar.status-present{background-color:#4c53af}.time-bar.status-absent{background-color:#f5f5f5}.time-bar.status-break{background-color:#e77f7f}.classroom-transition{position:absolute;background-color:#ffffffbf;border:1px solid #ddd;border-radius:2px;padding:1px 3px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;z-index:2;transition:background-color .2s}.classroom-transition:hover{background-color:#ffdc64e6;border-color:#f9a825}.prev-classroom{left:0;transform:translate(-100%) translateY(-50%);text-align:right}.next-classroom{right:0;transform:translate(100%) translateY(-50%);text-align:left}.highlighted-timeline{animation:highlightPulse 1s ease-in-out;animation-iteration-count:5;background:linear-gradient(90deg,#fffde7,#ffe082);border-radius:4px;box-shadow:0 0 0 2px #ffb482;transition:background-color .3s,box-shadow .3s}.student-count-timeline{display:flex;align-items:stretch;margin:5px 0;height:24px;position:relative}.student-count-timeline .student-count-label{width:140px;text-align:right;margin-right:10px;position:sticky;left:0;background:#fff;height:auto;display:flex;align-items:center;justify-content:flex-end;z-index:100;padding-right:10px;font-size:13px;color:#555;font-style:italic;border-right:1px solid rgb(87,87,87)}.student-count-timeline .student-count-bars{flex:1;position:relative;height:100%;background:#f9f9f9;border-radius:3px}.student-count-timeline .student-count-segment{position:absolute;height:100%;background-color:#bbdefb;border:1px solid #90CAF9;border-radius:2px;display:flex;align-items:center;justify-content:center}.student-count-timeline .student-count{font-size:9px;font-weight:700;color:#1976d2}.zoom-menu-button{background:linear-gradient(180deg,#f5f5f5,#e0e0e0);border:1.5px solid #b0b0b0;border-radius:6px;padding:6px 14px;font-size:22px;font-weight:700;color:#333;cursor:pointer;transition:background .2s,border-color .2s,box-shadow .2s,color .2s;margin-right:10px;box-shadow:0 1px 2px #00000012;outline:none;display:flex;align-items:center;justify-content:center}.zoom-menu-button:hover,.zoom-menu-button:focus-visible{background:linear-gradient(180deg,#e0e0e0,#d0d0d0);border-color:#2196f3;color:#1976d2;box-shadow:0 2px 8px #2196f31a}.zoom-menu-button:active{background:#d0d0d0;color:#1565c0;border-color:#1976d2}.zoom-menu-button:focus{outline:2px solid #2196f3;outline-offset:2px}.zoom-menu-popup{position:absolute;right:0;top:110%;background:#fff;border:1px solid #bbb;border-radius:4px;box-shadow:0 2px 8px #00000026;z-index:1001;min-width:180px;padding:8px}.zoom-menu-zoom-row{margin-bottom:8px;display:flex;align-items:center;gap:8px}.zoom-menu-zoom-label{min-width:50px;text-align:center;font-weight:700}.zoom-menu-popup button,.zoom-menu-action{background:linear-gradient(180deg,#f8fafc,#e0e0e0);border:1.5px solid #b0b0b0;border-radius:5px;padding:6px 12px;font-size:15px;font-weight:500;color:#222;cursor:pointer;transition:background .18s,border-color .18s,color .18s,box-shadow .18s;margin-bottom:4px;margin-top:0;box-shadow:0 1px 2px #0000000a;outline:none;width:100%;text-align:left;letter-spacing:.01em;display:flex;align-items:center;gap:8px}.zoom-menu-popup button:last-child,.zoom-menu-action:last-child{margin-bottom:0}.zoom-menu-popup button:disabled{opacity:.5;cursor:not-allowed;background:#f0f0f0;color:#888}.zoom-menu-popup button:hover:not(:disabled),.zoom-menu-action:hover:not(:disabled),.zoom-menu-popup button:focus-visible,.zoom-menu-action:focus-visible{background:linear-gradient(180deg,#e3f2fd,#bbdefb);border-color:#2196f3;color:#1976d2;box-shadow:0 2px 8px #2196f314}.zoom-menu-popup button:active,.zoom-menu-action:active{background:#bbdefb;color:#1565c0;border-color:#1976d2}.zoom-menu-action.active,.zoom-menu-popup button.active{background:linear-gradient(90deg,#fffde7,#ffe082);color:#b26a00;border-color:#ffd54f;font-weight:700}.zoom-menu-divider{margin:10px 0;border:none;border-top:1px solid #e0e0e0}.zoom-menu-action{width:100%;margin-bottom:4px;font-size:15px;font-weight:500;text-align:left;background:linear-gradient(180deg,#f8fafc,#e0e0e0)}.zoom-menu-overtime-buffer{display:flex;align-items:center;margin-top:8px;margin-bottom:4px;gap:6px}.zoom-menu-spinner{display:flex;align-items:center;gap:0}.zoom-menu-spinner button{background:#f5f5f5;border:1px solid #bbb;border-radius:4px;width:26px;height:26px;font-size:18px;font-weight:700;color:#333;cursor:pointer;transition:background .18s,border-color .18s,color .18s;outline:none;margin:0;padding:0;display:flex;align-items:center;justify-content:center}.zoom-menu-spinner button:disabled{opacity:.5;cursor:not-allowed}.zoom-menu-spinner button:hover:not(:disabled),.zoom-menu-spinner button:focus-visible{background:#e3f2fd;border-color:#2196f3;color:#1976d2}.zoom-menu-spinner input[type=number]{width:40px;text-align:center;font-size:14px;border-radius:4px;border:1px solid #bbb;margin:0 6px;padding:2px 0;outline:none}.zoom-menu-spinner input[type=number]:focus{border-color:#2196f3;box-shadow:0 0 0 1px #2196f3}.tour-button{position:fixed;bottom:20px;right:20px;display:flex;align-items:center;padding:8px 12px;background-color:#2196f3;color:#fff;border:none;border-radius:4px;box-shadow:0 2px 4px #0003;cursor:pointer;z-index:1000;font-size:14px;transition:background-color .2s,transform .2s}.tour-button:hover{background-color:#1976d2;transform:translateY(-2px);box-shadow:0 4px 8px #0003}.tour-button .tour-button-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background-color:#fff;color:#2196f3;border-radius:50%;margin-right:8px;font-weight:700;font-size:14px}.tour-button .tour-button-text{font-weight:500}@media (max-width: 768px){.tour-button .tour-button{padding:6px 10px;font-size:12px}.tour-button .tour-button-icon{width:18px;height:18px;font-size:12px}}body.guided-tour-active .guided-tour-background-mask{pointer-events:all}.guided-tour-component.guided-tour-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99999;pointer-events:none}.guided-tour-component .guided-tour-svg-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9998}.guided-tour-component .guided-tour-background-mask{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:all;z-index:9998;cursor:not-allowed}.guided-tour-component .guided-tour-tooltip{position:absolute;background-color:#fff;border-radius:6px;box-shadow:0 2px 8px #00000026;padding:15px;z-index:10001;pointer-events:all;transition:opacity .3s ease,top .3s ease,left .3s ease,transform .3s ease;animation:tooltip-fade-in .3s ease;max-width:350px;min-width:250px}.guided-tour-component .guided-tour-tooltip:before{content:"";position:absolute;border:10px solid transparent}.guided-tour-component .guided-tour-tooltip-top:before{border-top-color:#fff;bottom:-18px;left:50%;transform:translate(-50%)}.guided-tour-component .guided-tour-tooltip-bottom:before{border-bottom-color:#fff;top:-18px;left:50%;transform:translate(-50%)}.guided-tour-component .guided-tour-tooltip-left:before{border-left-color:#fff;right:-18px;top:50%;transform:translateY(-50%)}.guided-tour-component .guided-tour-tooltip-right:before{border-right-color:#fff;left:-18px;top:50%;transform:translateY(-50%)}.guided-tour-component .guided-tour-tooltip-content{color:#333;line-height:1.6;margin-bottom:15px;font-size:14px}.guided-tour-component .guided-tour-tooltip-navigation{display:flex;justify-content:space-between;align-items:center;margin-top:20px}.guided-tour-component .guided-tour-tooltip-step-counter{color:#666;font-size:12px}.guided-tour-component .guided-tour-tooltip-buttons{display:flex;gap:10px}.guided-tour-component .guided-tour-tooltip-button{padding:8px 12px;border-radius:4px;border:1px solid #ccc;background-color:#fff;cursor:pointer;font-size:13px;transition:background-color .2s}.guided-tour-component .guided-tour-tooltip-button-next,.guided-tour-component .guided-tour-tooltip-button-finish{background-color:#2196f3;color:#fff;border-color:#2196f3}.guided-tour-component .guided-tour-tooltip-button-next:hover,.guided-tour-component .guided-tour-tooltip-button-finish:hover{background-color:#0d8aee}.guided-tour-component .guided-tour-tooltip-button-prev:hover{background-color:#f0f0f0}.guided-tour-component .guided-tour-tooltip-close{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;background:none;border:none;font-size:20px;line-height:1;cursor:pointer;color:#666;padding:0;display:flex;justify-content:center;align-items:center}.guided-tour-component .guided-tour-tooltip-close:hover{color:#333}.tab-nav-component{width:fit-content;max-width:1200px;margin:0 auto}.tab-nav-component.full-width{width:100vw;max-width:100%!important}.tab-nav-component .tab-buttons{margin-left:auto;margin-right:auto;display:flex;top:0;padding-left:10px;z-index:1}.tab-nav-component .tab-buttons .tab-button{padding:10px 20px;text-wrap:nowrap;background:#c9c9c9;border:1px solid #ccc;border-bottom:none;margin-right:5px;border-top-left-radius:5px;border-top-right-radius:5px;cursor:pointer;font-weight:500;transition:background-color .2s;position:relative}.tab-nav-component .tab-buttons .tab-button.pulse-warning{animation:pulse-warning 1.5s infinite}.tab-nav-component .tab-buttons .tab-button:hover{background:#e0e0e0}.tab-nav-component .tab-buttons .tab-button.active{background:#f5f5f5;margin-bottom:-1px;font-weight:600;color:#2196f3}.tab-nav-component .tab-buttons .tab-button .tabnav-tooltip{display:none;background-color:#000;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:2;bottom:100%;transform:translate(-50%)}.tab-nav-component .tab-buttons .tab-button .tabnav-tooltip:after{content:" ";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:black transparent transparent transparent}@media (max-width: 900px){.tab-nav-component .tab-buttons .tab-button:not(.active):hover .tabnav-tooltip,.tab-nav-component .tab-buttons .tab-button:not(.active):active .tabnav-tooltip{display:initial}}@media (max-width: 900px),(max-width: 30rem){.tab-nav-component .tab-buttons .tab-button:not(.active){min-width:2.5rem}.tab-nav-component .tab-buttons .tab-button:not(.active) .label,.tab-nav-component .tab-buttons .tab-button:not(.active) .alert-icon{display:none}.tab-nav-component .tab-buttons .tab-button:not(.active):after{content:"...";color:#333;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;font-size:1rem;letter-spacing:.2em}}.tab-nav-component .tab-content{min-height:300px;padding:25px 15px 15px;background:#f5f5f5}.tab-nav-component .tab-content .tab-pane{display:none}.tab-nav-component .tab-content .tab-pane.active{display:block;animation:fadeIn .5s ease}.tab-nav-component .tab-content .tab-pane.full-width{max-width:none;padding:0}.tab-nav-component .tab-content .tab-pane.historical-tab{margin:0;padding:0}.button{background-color:#2196f3;color:#fff;border:none;padding:5px 12px;border-radius:4px;cursor:pointer;font-weight:500;transition:background-color .2s;font-size:.85rem}.button:hover{background-color:#1976d2}.button:disabled{background-color:#6b6b6b;color:#aaa;cursor:not-allowed}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-warning{0%{box-shadow:0 0 #ff000080}70%{box-shadow:0 0 0 10px #f000}to{box-shadow:0 0 #f000}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes tooltip-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes highlightPulse{0%{box-shadow:0 0 #ffc10700}50%{box-shadow:0 0 10px 5px #ffc107}to{box-shadow:0 0 #ffc10700}}.missing-id-icon{display:inline-flex;align-items:center;margin-left:6px;vertical-align:middle;width:16px;height:16px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23e53935' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:contain}.not-clocked-icon{display:inline-flex;align-items:center;margin-left:6px;vertical-align:middle;width:16px;height:16px;background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13 17L14.4 15.6L11.8 13H22V11H11.8L14.4 8.4L13 7L8 12L13 17Z' fill='%23e53935'/%3E%3Cpath d='M4 19H12V21H4C2.9 21 2 20.1 2 19V5C2 3.9 2.9 3 4 3H12V5H4V19Z' fill='%23e53935'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:contain}.location-mismatch-icon{display:inline-flex;align-items:center;margin-left:3px;vertical-align:middle;width:14px;height:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 90'%3E%3Cg transform='translate(1.4 1.4) scale(1 1)'%3E%3Cpath d='M27.979 81.671h50.699C84.921 81.671 90 76.592 90 70.349V19.651c0-6.243-5.079-11.322-11.322-11.322H27.98c-6.243 0-11.322 5.08-11.322 11.323v16.137L0.542 44.112C0.209 44.283 0 44.626 0 45s0.209 0.717 0.541 0.889l16.116 8.323v16.137C16.657 76.592 21.736 81.671 27.979 81.671z' fill='%23ffb24d'/%3E%3Cpath d='M52.704 56.359c-2.209 0-4-1.791-4-4V48.02c0-1.101 0.454-2.153 1.254-2.909l6.891-6.505c1.011-1.065 1.567-2.458 1.567-3.93v-0.258c0-1.554-0.613-3.006-1.726-4.091c-1.113-1.084-2.591-1.641-4.14-1.619c-3.064 0.079-5.558 2.739-5.558 5.929c0 2.209-1.791 4-4 4s-4-1.791-4-4c0-7.489 5.99-13.736 13.352-13.926c3.729-0.098 7.259 1.284 9.929 3.887c2.671 2.604 4.142 6.091 4.142 9.82v0.258c0 3.592-1.379 6.987-3.884 9.562c-0.04 0.041-0.08 0.08-0.122 0.119l-5.707 5.387v2.614C56.704 54.568 54.913 56.359 52.704 56.359z' fill='%23ffffff'/%3E%3Cpath d='M52.7 69.42c-0.32 0-0.65-0.04-0.97-0.101c-0.32-0.069-0.64-0.159-0.94-0.289c-0.3-0.12-0.59-0.28-0.86-0.461c-0.28-0.18-0.53-0.39-0.76-0.619c-0.23-0.23-0.44-0.49-0.62-0.761c-0.18-0.27-0.34-0.56-0.46-0.859c-0.13-0.3-0.22-0.62-0.29-0.94c-0.06-0.32-0.1-0.649-0.1-0.979c0-0.32 0.04-0.65 0.1-0.971c0.07-0.319 0.16-0.64 0.29-0.939c0.12-0.3 0.28-0.59 0.46-0.86s0.39-0.53 0.62-0.76s0.48-0.44 0.76-0.62c0.27-0.18 0.56-0.34 0.86-0.46c0.3-0.13 0.62-0.22 0.94-0.29c1.62-0.33 3.35 0.21 4.51 1.37c0.23 0.229 0.44 0.49 0.62 0.76c0.18 0.271 0.34 0.561 0.46 0.86c0.13 0.3 0.22 0.62 0.29 0.939c0.06 0.32 0.1 0.65 0.1 0.971c0 0.33-0.04 0.659-0.1 0.979c-0.07 0.32-0.16 0.641-0.29 0.94c-0.12 0.3-0.28 0.59-0.46 0.859c-0.18 0.271-0.39 0.53-0.62 0.761C55.31 68.88 54.02 69.42 52.7 69.42z' fill='%23ffffff'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:contain}.alert-icon{width:12px;height:12px;border-radius:50%;background-color:red;display:inline-flex;margin-left:5px;vertical-align:middle;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='%23f9a825' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:contain}.move-icon{display:inline-flex;width:16px;height:16px;margin-left:4px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 167 128'%3E%3Cpath fill='%234285F4' d='M104.3,9.1c-2.9,0-5.3,2.4-5.3,5.3v26.7c0,2.9,2.4,5.3,5.3,5.3s5.3-2.4,5.3-5.3v-21.3h42.7v85.3h-42.7v-21.3c0-2.9-2.4-5.3-5.3-5.3s-5.3,2.4-5.3,5.3v26.7c0,2.9,2.4,5.3,5.3,5.3h53.3c2.9,0,5.3-2.4,5.3-5.3V14.4c0-2.9-2.4-5.3-5.3-5.3h-53.3ZM120.5,46.4c-1.5,0-2.9.5-3.9,1.6-2.1,2.1-2.1,5.5,0,7.5l1.6,1.6H30.4c-2.9,0-5.3,2.4-5.3,5.3s2.4,5.3,5.3,5.3h87.7l-1.6,1.6c-2.1,2.1-2.1,5.5,0,7.5,2.1,2.1,5.5,2.1,7.5,0l10.6-10.6s0,0,.1-.1c0,0,0,0,0,0,0,0,.2-.2.3-.3,0-.1.2-.2.3-.4,0,0,.1-.2.2-.2,0,0,0,0,0-.1,0,0,0,0,0,0,0,0,.1-.2.2-.3,0,0,0-.2.1-.3,0,0,0,0,0-.1,0,0,0,0,0,0,0-.1,0-.2.1-.3,0,0,0,0,0,0,0,0,0-.2,0-.3,0,0,0,0,0,0,0-.1,0-.3,0-.4,0,0,0,0,0-.1,0-.1,0-.2,0-.3,0,0,0,0,0-.1,0,0,0-.1,0-.2,0,0,0-.2,0-.3,0,0,0,0,0,0,0-.1,0-.3,0-.4,0-.1,0-.2,0-.3,0,0,0,0,0-.1,0,0,0,0,0-.1,0,0,0,0,0,0,0-.1,0-.3-.2-.4,0,0,0-.2-.1-.3,0,0,0,0,0-.1,0,0,0-.2-.1-.3,0,0,0,0,0-.1,0,0-.1-.2-.2-.2,0,0,0,0,0-.1,0,0-.1-.2-.2-.2,0,0,0,0-.1-.1,0,0,0,0-.1-.1l-.2-.2-10.4-10.5c-1-1-2.3-1.5-3.6-1.6ZM9.8,9.1c-2.9,0-5.3,2.4-5.3,5.3v96c0,2.9,2.4,5.3,5.3,5.3h49.2c2.9,0,5.3-2.4,5.3-5.3v-26.7c0-2.9-2.4-5.3-5.3-5.3s-5.3,2.4-5.3,5.3v21.3H15.1V19.8h38.6v21.3c0,2.9,2.4,5.3,5.3,5.3s5.3-2.4,5.3-5.3V14.4c0-2.9-2.4-5.3-5.3-5.3H9.8Z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;cursor:pointer;vertical-align:middle;opacity:.7;transition:opacity .2s ease}.add-teacher-icon{display:inline-block;width:16px;height:16px;margin-left:8px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234285F4' d='M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6V13z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;cursor:pointer;opacity:.7;transition:opacity .2s ease}.transfer-icon-button{display:inline-block;width:16px;height:16px;margin-left:5px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 167 128'%3E%3Cpath fill='%234285F4' d='M104.3,9.1c-2.9,0-5.3,2.4-5.3,5.3v26.7c0,2.9,2.4,5.3,5.3,5.3s5.3-2.4,5.3-5.3v-21.3h42.7v85.3h-42.7v-21.3c0-2.9-2.4-5.3-5.3-5.3s-5.3,2.4-5.3,5.3v26.7c0,2.9,2.4,5.3,5.3,5.3h53.3c2.9,0,5.3-2.4,5.3-5.3V14.4c0-2.9-2.4-5.3-5.3-5.3h-53.3ZM120.5,46.4c-1.5,0-2.9.5-3.9,1.6-2.1,2.1-2.1,5.5,0,7.5l1.6,1.6H30.4c-2.9,0-5.3,2.4-5.3,5.3s2.4,5.3,5.3,5.3h87.7l-1.6,1.6c-2.1,2.1-2.1,5.5,0,7.5,2.1,2.1,5.5,2.1,7.5,0l10.6-10.6s0,0,.1-.1c0,0,0,0,0,0,0,0,.2-.2.3-.3,0-.1.2-.2.3-.4,0,0,.1-.2.2-.2,0,0,0,0,0-.1,0,0,0,0,0,0,0,0,.1-.2.2-.3,0,0,0-.2.1-.3,0,0,0,0,0-.1,0,0,0,0,0,0,0-.1,0-.2.1-.3,0,0,0,0,0,0,0,0,0-.2,0-.3,0,0,0,0,0-.1,0,0,0-.2,0-.3,0,0,0,0,0,0,0-.1,0-.3,0-.4,0,0,0,0,0-.1,0-.1,0-.2,0-.3,0,0,0,0,0-.1,0,0,0-.1,0-.2,0,0,0-.2,0-.3,0,0,0,0,0,0,0-.1,0-.3,0-.4,0-.1,0-.2,0-.3,0,0,0,0,0-.1,0,0,0,0,0-.1,0,0,0,0,0,0,0-.1,0-.3-.2-.4,0,0,0-.2-.1-.3,0,0,0,0,0-.1,0,0,0-.2-.1-.3,0,0,0,0,0-.1,0,0-.1-.2-.2-.2,0,0,0,0,0-.1,0,0-.1-.2-.2-.2,0,0,0,0-.1-.1,0,0,0,0-.1-.1l-.2-.2-10.4-10.5c-1-1-2.3-1.5-3.6-1.6ZM9.8,9.1c-2.9,0-5.3,2.4-5.3,5.3v96c0,2.9,2.4,5.3,5.3,5.3h49.2c2.9,0,5.3-2.4,5.3-5.3v-26.7c0-2.9-2.4-5.3-5.3-5.3s-5.3,2.4-5.3,5.3v21.3H15.1V19.8h38.6v21.3c0,2.9,2.4,5.3,5.3,5.3s5.3-2.4,5.3-5.3V14.4c0-2.9-2.4-5.3-5.3-5.3H9.8Z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;vertical-align:middle}.signin-icon-button{display:inline-flex;align-items:center;margin-left:6px;vertical-align:middle;width:16px;height:16px;background-image:url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 7L9.6 8.4L12.2 11H2V13H12.2L9.6 15.6L11 17L16 12L11 7Z' fill='%234CAF50'/%3E%3Cpath d='M20 19H12V21H20C21.1 21 22 20.1 22 19V5C22 3.9 21.1 3 20 3H12V5H20V19Z' fill='%234CAF50'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:contain;cursor:pointer;transition:transform .2s ease}.student-transfer-icon{display:inline-block;width:16px;height:16px;margin-left:4px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 167 128'%3E%3Cpath fill='%234285F4' d='M104.3,9.1c-2.9,0-5.3,2.4-5.3,5.3v26.7c0,2.9,2.4,5.3,5.3,5.3s5.3-2.4,5.3-5.3v-21.3h42.7v85.3h-42.7v-21.3c0-2.9-2.4-5.3-5.3-5.3s-5.3,2.4-5.3,5.3v26.7c0,2.9,2.4,5.3,5.3,5.3h53.3c2.9,0,5.3-2.4,5.3-5.3V14.4c0-2.9-2.4-5.3-5.3-5.3h-53.3ZM120.5,46.4c-1.5,0-2.9.5-3.9,1.6-2.1,2.1-2.1,5.5,0,7.5l1.6,1.6H30.4c-2.9,0-5.3,2.4-5.3,5.3s2.4,5.3,5.3,5.3h87.7l-1.6,1.6c-2.1,2.1-2.1,5.5,0,7.5,2.1,2.1,5.5,2.1,7.5,0l10.6-10.6s0,0,.1-.1c0,0,0,0,0,0,0,0,.2-.2.3-.3,0-.1.2-.2.3-.4,0,0,.1-.2.2-.2,0,0,0,0,0-.1,0,0,0,0,0,0,0,0,.1-.2.2-.3,0,0,0-.2.1-.3,0,0,0,0,0-.1,0,0,0,0,0,0,0-.1,0-.2.1-.3,0,0,0,0,0,0,0,0,0-.2,0-.3,0,0,0,0,0-.1,0,0,0-.2,0-.3,0,0,0,0,0,0,0-.1,0-.3,0-.4,0,0,0,0,0-.1,0-.1,0-.2,0-.3,0,0,0,0,0-.1,0,0,0-.1,0-.2,0,0,0-.2,0-.3,0,0,0,0,0,0,0-.1,0-.3,0-.4,0-.1,0-.2,0-.3,0,0,0,0,0-.1,0,0,0,0,0-.1,0,0,0,0,0,0,0-.1,0-.3-.2-.4,0,0,0-.2-.1-.3,0,0,0,0,0-.1,0,0,0-.2-.1-.3,0,0,0,0,0-.1,0,0-.1-.2-.2-.2,0,0,0,0,0-.1,0,0-.1-.2-.2-.2,0,0,0,0-.1-.1,0,0,0,0-.1-.1l-.2-.2-10.4-10.5c-1-1-2.3-1.5-3.6-1.6ZM9.8,9.1c-2.9,0-5.3,2.4-5.3,5.3v96c0,2.9,2.4,5.3,5.3,5.3h49.2c2.9,0,5.3-2.4,5.3-5.3v-26.7c0-2.9-2.4-5.3-5.3-5.3s-5.3,2.4-5.3,5.3v21.3H15.1V19.8h38.6v21.3c0,2.9,2.4,5.3,5.3,5.3s5.3-2.4,5.3-5.3V14.4c0-2.9-2.4-5.3-5.3-5.3H9.8Z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;cursor:pointer;vertical-align:middle;opacity:.7;transition:opacity .2s ease;float:right}.add-teacher-icon{display:inline-block;width:16px;height:16px;margin-left:8px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234285F4' d='M19,13h-6v6h-2v-6H5v-2h6V5h2v6h6V13z'/%3E%3C/svg%3E");background-size:contain;background-repeat:no-repeat;cursor:pointer;opacity:.7;transition:opacity .2s ease}.login-page{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f5f5;background-image:linear-gradient(120deg,#e0f7fa,#bbdefb);text-align:center}.login-page .login-logo{margin-bottom:20px}.login-page .login-card{max-width:500px;margin:20px;background-color:#fff;border-radius:8px;box-shadow:0 6px 16px #0000001a;padding:30px;transition:transform .3s ease,box-shadow .3s ease;animation:fadeInUp .6s ease forwards}.login-page .login-card p{color:#555;margin-bottom:20px;font-size:1.1rem;line-height:1.5}.login-page .login-card h2{color:#1976d2;margin-top:0;margin-bottom:20px;font-size:1.8rem}.login-page .login-card:hover{transform:translateY(-5px);box-shadow:0 10px 20px #00000026}.login-page .domain-info{font-weight:700;color:#1976d2;margin:15px 0;font-size:1.2rem}.login-page .app-logo,.login-page .user-avatar{height:400px;width:auto;border-radius:8px}
