:root{--color-app-bg: #f5f7fb;--color-surface: #ffffff;--color-text: #172033;--color-muted: #70809f;--color-muted-strong: #46566f;--color-border: #e2e8f5;--color-border-soft: #edf1f8;--color-primary: #4438df;--color-primary-strong: #3328c9;--radius-card: 8px;--radius-control: 8px;--shadow-card: 0 14px 32px rgba(26, 42, 76, .05)}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--color-app-bg);color:var(--color-text);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a,button,input,select,textarea{font:inherit}table tbody tr>td,table tbody tr>th{transition:background-color .14s ease}table tbody tr:hover>td,table tbody tr:hover>th{background:#f8f7ff}.cell-editor{position:absolute;z-index:4;top:calc(100% - 4px);left:50%;display:grid;width:218px;gap:8px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:0 16px 32px #1a2a4c29;transform:translate(-50%)}.cell-editor select,.cell-editor input{width:100%;min-height:34px;padding:0 9px;border:1px solid var(--color-border);border-radius:6px;border-color:var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:12px}.cell-editor__done{min-height:32px;border:1px solid var(--color-primary);border-radius:6px;background:var(--color-primary);color:#fff;cursor:pointer;font-size:12px;font-weight:800}.cell--changed{background:#f1efff}table tbody tr:hover>.cell--changed{background:#eeebff}.attendance-page .date-controls,.attendance-page .student-cell{display:flex;align-items:center}.attendance-page .date-controls{gap:6px}.attendance-page .icon-button{display:inline-grid;width:34px;height:34px;place-items:center;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-muted-strong);cursor:pointer}.attendance-page .icon-button:hover{border-color:var(--color-primary);color:var(--color-primary)}.attendance-page .icon-button ui-icon{font-size:16px}.attendance-page .today-button{min-height:34px;padding:0 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-muted-strong);cursor:pointer;font-size:12px;font-weight:800}.attendance-page .table-wrap{max-height:620px}.attendance-page thead th{position:sticky;top:0;z-index:2}.attendance-page .student-cell{width:100%;min-width:0}.attendance-page .student-cell__name{min-width:0;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.attendance-page .student-cell__name span{overflow:hidden;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.attendance-page .status-cell{display:inline-grid;min-width:24px;max-width:132px;min-height:24px;place-items:center;border:0;border-radius:999px;cursor:pointer;font:inherit;font-size:12px;font-weight:900;line-height:1.2;padding:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-page .status-cell:hover,.attendance-page .status-cell:focus-visible{box-shadow:0 0 0 4px #4438df1f;outline:none}.attendance-page .status-cell--present{width:24px;padding:0;border-radius:50%;background:#dcf7e8;color:#128653}.attendance-page .status-cell--A{background:#f43f5e;color:#fff}.attendance-page .status-cell--S{background:#ffbe3d;color:#6b3500}.attendance-page .status-cell--E{background:#4b7dff;color:#fff}.attendance-page .status-cell--changed,.attendance-page .status-cell--meal-changed{box-shadow:0 0 0 2px #8d84f8}.attendance-page .status-cell--meal{min-width:112px}.attendance-page .status-cell--meal-yes{background:#dcf7e8;color:#128653}.attendance-page .status-cell--meal-no{background:#f1f4f9;color:var(--color-muted-strong)}.attendance-page .status-cell--disabled,.attendance-page .status-cell:disabled{width:24px;padding:0;border-radius:50%;background:#edf1f7;color:#a5afc0;cursor:not-allowed}.attendance-page .status-cell--disabled:hover,.attendance-page .status-cell--disabled:focus-visible,.attendance-page .status-cell:disabled:hover,.attendance-page .status-cell:disabled:focus-visible{box-shadow:none;outline:none}.attendance-page .combined-cell,.attendance-page .combined-total{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;width:100%;margin:0 auto;gap:0}.attendance-page .combined-cell__part,.attendance-page .combined-total strong,.attendance-page .combined-total--header span{justify-self:center}.attendance-page .combined-cell__part{min-width:42px;max-width:74px}.attendance-page .combined-cell .status-cell--present,.attendance-page .combined-cell .status-cell--disabled,.attendance-page .combined-cell .status-cell:disabled{width:auto;min-width:42px;padding:0 8px;border-radius:999px}.attendance-page .combined-cell .status-cell--meal{min-width:58px}.attendance-page .combined-total--header span{color:var(--color-muted-strong);font-size:12px;font-weight:900}.attendance-page .floating-cell-editor{position:fixed;z-index:80;display:grid;width:232px;gap:8px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:0 18px 42px #1822352e}.attendance-page .floating-cell-editor select,.attendance-page .floating-cell-editor input{width:100%;min-height:36px;padding:0 10px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text);font:inherit;font-size:13px}.attendance-page .floating-cell-editor select:focus,.attendance-page .floating-cell-editor input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #4438df1f;outline:none}.attendance-page .floating-cell-editor .cell-editor__done{min-height:36px;font-size:13px;font-weight:900}.day-absence{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);cursor:pointer;font-size:14px;font-weight:800}.day-absence input{width:16px;height:16px;accent-color:var(--color-primary)}.attendance-card__actions{display:flex;gap:10px}.secondary-button:disabled{cursor:not-allowed;opacity:.48}.reports-stats .stat-card__label{text-align:center}@media(max-width:760px){.attendance-page .icon-button,.mobile-menu-button,.sidebar__close,.sidebar__logout,.class-edit,.class-delete,.admin-page .icon-button{align-items:center;justify-items:center;padding:0;line-height:1;appearance:none}.attendance-page .icon-button ui-icon,.mobile-menu-button ui-icon,.sidebar__close ui-icon,.sidebar__logout ui-icon,.class-edit ui-icon,.class-delete ui-icon,.admin-page .icon-button ui-icon{display:grid;place-items:center}.attendance-page .date-controls{flex-wrap:wrap;justify-content:center}.attendance-page .today-button{display:none}.attendance-card__actions{display:grid;grid-template-columns:1fr 1fr}.attendance-page .student-name--desktop{display:none}.attendance-page .student-name--mobile{display:inline}}@media(min-width:1200px){.classes-page .field select,.classes-page .field input{min-height:44px;font-size:15px}.classes-page .field__icon{font-size:17px}}@media(min-width:761px){.attendance-page .student-name--mobile{display:none}}
