@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}}:root{--review-bg:#fff8e8;--review-border:#ecd7a0}.reference-warning{color:#735b25;background:#fff9ea;border:1px solid #eedcae;border-radius:5px;align-items:center;gap:14px;margin:-8px 0 10px;padding:10px 13px;font-size:11px;display:flex}.reference-warning strong{white-space:nowrap}.reference-warning a{color:#536b9f;margin-left:auto}.timetable td.needs-review{box-shadow:inset 0 0 0 1px #ecd7a0;background-color:#fff8e8!important}.cell-review{color:#a77b21;font-size:9px;position:absolute;top:1px;right:3px}.import-review>.panel{margin:12px 0}.import-stats{grid-template-columns:repeat(7,minmax(95px,1fr));gap:8px;margin:12px 0;display:grid}.import-stat{background:#fff;border:1px solid #dde3ec;border-radius:5px;padding:11px 13px}.import-stat strong{color:#314a80;margin-top:4px;font-size:19px;display:block}.import-stat small{font-size:10px}.weekday-panel,.copy-day-panel{justify-content:space-between;align-items:center;gap:18px;display:flex}.weekday-panel p,.copy-day-panel p,.import-review .panel p{color:#78869a;margin-top:5px;font-size:11px}.inline-form,.copy-controls{align-items:center;gap:10px;display:flex}.row-match-grid{grid-template-columns:repeat(2,minmax(280px,1fr));gap:7px 14px;display:grid}.row-match{border:1px solid #e3e8ef;border-radius:4px;flex-direction:row;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:7px 9px;display:flex}.row-match span{min-width:125px;font-size:11px}.row-match select{width:60%;padding:5px 7px;font-size:10px}.row-match small{margin-top:3px}.copy-controls{flex-wrap:wrap;align-items:end}.copy-controls>label{margin:0}.copy-controls fieldset{border:1px solid #dce2eb;border-radius:4px;flex-wrap:wrap;gap:7px;padding:7px 9px;display:flex}.copy-controls legend{color:#687a92;padding:0 4px;font-size:10px}.copy-controls .checkbox,.copy-preview .checkbox{margin:0;font-size:10px;display:inline-flex}.copy-preview{background:#f8fafc;border:1px solid #e2e7ef;border-radius:4px;flex-basis:100%;padding:12px;font-size:11px}.copy-preview>div{padding:5px 0}.copy-preview details small{margin:3px 0 0 12px}.copy-preview>button{margin-top:8px}.filter-tabs{flex-wrap:wrap;gap:4px;display:flex}.filter-tabs button{padding:5px 8px;font-size:10px}.import-table-scroll{border:1px solid #dce3ec;max-height:65vh;overflow:auto}.import-table{border-collapse:collapse;width:100%;font-size:10px}.import-table th,.import-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #e6ebf1;padding:6px 7px}.import-table thead th{z-index:2;background:#edf1f8;position:sticky;top:0}.import-table td input,.import-table td select{width:100%;min-width:88px;padding:5px 6px;font-size:10px}.import-table td:first-child{min-width:135px;font-weight:550}.import-table td:nth-child(4){min-width:125px}.review-cell{background:#fffcf4}.review-badge{color:#977122}.cell-actions{gap:5px;display:flex}.cell-actions button{padding:5px 6px;font-size:9px}.structured-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px;display:grid}.source-meta{color:#6f7d90;margin:5px 0;font-size:10px}.version-compare-controls{grid-template-columns:repeat(2,minmax(200px,1fr));gap:12px;display:grid}.version-compare-controls label{margin:0}.version-compare-controls select{width:100%}:root{color:#253347;font-synthesis:none;background:#f4f6f9;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.button{color:#334155;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d6dde7;border-radius:5px;justify-content:center;align-items:center;gap:7px;padding:7px 11px;font-weight:500;text-decoration:none;display:inline-flex}button:hover,.button:hover{background:#f0f4fa;border-color:#a7b5c8}button:disabled{opacity:.4;cursor:not-allowed}.primary{color:#fff!important;background:#2949ad!important;border-color:#2949ad!important}.primary:hover{background:#203b91!important}input,select,textarea{color:#26354a;background:#fff;border:1px solid #cfd8e4;border-radius:5px;max-width:100%;padding:8px 10px}input:focus,select:focus,textarea:focus{outline-offset:1px;outline:2px solid #9baee9}textarea{resize:vertical;min-height:80px}a{color:inherit}h1,h2,h3,p{margin:0}h1{letter-spacing:-.6px;font-size:24px;font-weight:650}h2{margin-bottom:12px;font-size:16px;font-weight:650}h3{margin:14px 0 8px;font-weight:650}small{color:#7b899d;font-size:11px;font-weight:400;display:block}label{text-transform:none;flex-direction:column;gap:6px;margin:12px 0;font-size:12px;font-weight:550;display:flex}label input[type=checkbox]{width:15px;height:15px}.checkbox{flex-direction:row;align-items:center;gap:7px;display:flex}.app-shell{min-height:100vh;display:flex}.sidebar{color:#b7c4d9;z-index:30;background:#15233c;flex-direction:column;flex-shrink:0;width:220px;display:flex;position:fixed;inset:0 auto 0 0}.collapsed .sidebar{width:64px}.brand{color:#fff;align-items:center;gap:12px;min-height:70px;padding:15px;font-size:24px;font-weight:750;line-height:1;text-decoration:none;display:flex}.brand small{letter-spacing:1.6px;color:#8d9fbc;margin-top:7px;font-size:9px}.brand-icon{color:#fff;background:#3656b3;border-radius:7px;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.collapse-toggle{color:#8b9ab3;background:0 0;border:0;margin:0 10px 14px;padding:9px;font-size:11px}.sidebar nav{flex-direction:column;gap:3px;padding:0 10px;display:flex;overflow-y:auto}.sidebar nav a{white-space:nowrap;border-radius:5px;align-items:center;gap:12px;padding:10px;font-size:12px;text-decoration:none;display:flex}.sidebar nav a:hover{background:#24344e}.sidebar nav a.active{color:#fff;background:#304675;box-shadow:inset 3px 0 #93b0ff}.sidebar-bottom{margin-top:auto;padding:12px}.sidebar-bottom button{color:#aabbd3;background:0 0;border:0}.main-shell{flex:1;min-width:0;margin-left:220px}.collapsed .main-shell{margin-left:64px}.topbar{background:#fff;border-bottom:1px solid #e1e6ef;justify-content:space-between;align-items:center;height:58px;padding:0 25px;display:flex}.school-name{letter-spacing:1px;font-size:12px;font-weight:700}.campus{color:#8995a8;letter-spacing:1.4px;border-left:1px solid #d8e0ec;margin-left:16px;padding-left:16px;font-size:9px;font-weight:500}.topbar-right{align-items:center;gap:10px;font-size:10px;font-weight:600;display:flex}.term{color:#6c7b92;margin-right:12px}.avatar{color:#324b9e;background:#edf1fc;border-radius:50%;place-items:center;width:31px;height:31px;font-size:13px;font-weight:700;display:grid}.topbar-right small{margin-top:2px;font-size:9px}.page,.timetable-workspace{padding:22px 25px}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.page-heading p{color:#7a8799;margin-top:7px;font-size:12px}.eyebrow{letter-spacing:1.7px;color:#8a96a8;margin-bottom:7px;font-size:9px;font-weight:700}.heading-actions{align-items:center;gap:8px;display:flex}.badge{vertical-align:middle;letter-spacing:.8px;color:#61749a;background:#edf2fc;border:1px solid #d9e2f8;border-radius:4px;margin-left:7px;padding:4px 7px;font-size:9px;display:inline-block}.save-status{color:#6d7e93;margin-right:8px;font-size:11px}.sheet-toolbar,.edit-toolbar{background:#fff;border:1px solid #d7dfe9;align-items:center;gap:8px;padding:9px 11px;display:flex}.sheet-toolbar{border-radius:6px 6px 0 0}.sheet-toolbar strong{font-size:12px}.sheet-toolbar select,.edit-toolbar select{padding:5px 7px;font-size:11px}.sheet-toolbar button,.edit-toolbar button{padding:5px 8px;font-size:11px}.divider{background:#e1e6ee;width:1px;height:20px;margin:0 5px}.day-tabs{gap:3px;display:flex}.day-tabs button{background:0 0;border-color:#0000;padding:5px 8px}.day-tabs button.active,button.active{color:#3153b7;background:#eaf0ff;border-color:#d6e1ff}.search{color:#8996a8;border:1px solid #d6dfe9;border-radius:4px;align-items:center;gap:6px;margin-left:auto;padding:0 8px;display:flex}.search input{border:0;width:145px;padding:6px 0;font-size:11px}.edit-toolbar{background:#fbfcfe;border-top:0;padding:5px 10px}.edit-toolbar button{color:#617087;background:0 0;border-color:#0000;font-size:10px}.spacer{flex:1}.formula-bar{color:#536682;background:#fff;border:1px solid #d6dfe9;border-top:0;align-items:center;height:30px;font-size:10px;display:flex}.formula-bar>span:first-child{border-right:1px solid #dce3ed;min-width:170px;padding:0 12px;font-weight:600}.formula-value{white-space:nowrap;text-overflow:ellipsis;padding:0 12px;overflow:hidden}.sheet-scroll{background:#fff;border:1px solid #c8d3e2;border-top:0;outline:none;max-height:calc(100vh - 310px);overflow:auto}.timetable{table-layout:fixed;border-collapse:separate;border-spacing:0;width:100%;font-size:var(--grid-font,12px)}.teacher-col{width:190px}.timetable th,.timetable td{height:var(--row-height,27px);text-align:center;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #d3dce8;border-right:1px solid #d3dce8;padding:4px 6px;overflow:hidden}.timetable thead th{z-index:5;color:#455978;letter-spacing:.5px;background:#edf1f8;height:49px;font-size:10px;font-weight:700;position:sticky;top:0}.timetable thead small{color:#8592a7;letter-spacing:0;margin-top:6px;font-size:9px}.timetable th:first-child{text-align:left;z-index:3;background:#f8fafc;position:sticky;left:0}.timetable thead th:first-child{z-index:7;background:#e8eef7;padding-left:14px}.timetable tbody th{padding:3px 9px;font-size:11px;font-weight:600;position:sticky}.row-number{color:#a2adbc;vertical-align:middle;width:23px;font-size:9px;font-weight:400;display:inline-block}.teacher-name{vertical-align:middle;text-overflow:ellipsis;max-width:130px;display:inline-block;overflow:hidden}.teacher-name small{color:#a0aabd;margin-left:6px;font-size:8px;display:inline}.load{float:right;color:#99a6b8;background:#eaf0f6;border-radius:3px;padding:2px 4px;font-size:9px}.timetable td{color:#405b82;cursor:cell;-webkit-user-select:none;user-select:none;letter-spacing:.1px;background:#f0f5fb;font-weight:550;position:relative}.timetable td svg{color:#7f8da1;position:absolute;top:4px;right:4px}.timetable td.free{color:#a6afbb;letter-spacing:1px;background:#fff;font-size:9px;font-weight:400}.timetable td.subject-eng{color:#69568f;background:#f2f0fb}.timetable td.subject-hin{color:#957041;background:#fff7ed}.timetable td.subject-math{color:#3c6296;background:#eaf2fe}.timetable td.subject-sci,.timetable td.subject-phy,.timetable td.subject-chem{color:#4d7b67;background:#edf7f3}.timetable td.subject-pe{color:#8b7954;background:#f8f5ee}.timetable td.selected{z-index:2;background:#e5edff;box-shadow:inset 0 0 0 2px #4164c9}.timetable td.locked{background-image:repeating-linear-gradient(135deg,#0000,#0000 5px,#61738c05 5px 7px)}.timetable td:hover{filter:brightness(.97)}.sheet-footer{color:#8895a7;background:#fff;border:1px solid #d7dfe9;border-top:0;border-radius:0 0 5px 5px;justify-content:space-between;padding:8px 12px;font-size:10px;display:flex}.dot{background:#53957b;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.timetable-workspace:fullscreen{background:#f5f7fb;height:100vh;padding:18px}.timetable-workspace:fullscreen .sheet-scroll{max-height:calc(100vh - 228px)}:is(.timetable-workspace:fullscreen .timetable th,.timetable-workspace:fullscreen .timetable td){height:calc(3.84615vh - 11.0385px)}.app-footer{color:#98a3b3;justify-content:space-between;padding:14px 25px;font-size:9px;display:flex}.app-footer div{gap:16px;display:flex}.app-footer a{text-decoration:none}.stats{grid-template-columns:repeat(7,1fr);gap:12px;margin-bottom:22px;display:grid}.stat{background:#fff;border:1px solid #dee5ee;border-radius:6px;padding:17px}.stat span{color:#7a879a;font-size:11px}.stat strong{color:#2f4261;margin-top:8px;font-size:27px;display:block}.two-col{grid-template-columns:1.25fr 1fr;gap:20px;display:grid}.panel{background:#fff;border:1px solid #dce3ed;border-radius:7px;margin-bottom:18px;padding:20px}.panel p{color:#6d7d94;margin:9px 0;line-height:1.7}.data-scroll{background:#fff;border:1px solid #dce3ed;border-radius:5px;overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:12px}.data-table th{color:#75849a;text-align:left;white-space:nowrap;background:#f2f5f9;font-size:10px}.data-table th,.data-table td{border-bottom:1px solid #e9edf3;padding:10px 13px}.data-table tr:last-child td{border-bottom:0}.data-table .clickable{cursor:pointer}.data-table .clickable:hover{background:#f7f9fe}.status{color:#8a95a5;white-space:nowrap;background:#f0f2f5;border-radius:4px;padding:4px 7px;font-size:9px;display:inline-block}.status.present{color:#397b57;background:#e8f5ee}.status.absent{color:#b65d56;background:#fff0ee}.status.late{color:#b58136;background:#fff2df}.status.leave{color:#517fbb;background:#eaf1fc}.status.half_day{color:#9d8824;background:#fff8cf}.filterbar{color:#8a96a7;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:15px;font-size:11px;display:flex}.filterbar input[type=number]{width:80px}.inline-actions{flex-wrap:wrap;gap:6px;display:flex}.inline-actions button{padding:4px 8px;font-size:10px}.quick-links{flex-wrap:wrap;gap:8px;margin:15px 0 25px;display:flex}.workload{align-items:center;gap:10px;margin:12px 0;font-size:11px;display:flex}.workload span{width:130px}.workload progress{accent-color:#526fad;flex:1;height:5px}.workload strong{color:#8b99ad;font-size:10px}.empty{text-align:center;color:#8492a6;padding:45px}.error{white-space:pre-line;color:#a44536;background:#fff1ed;border:1px solid #f1d4ce;border-radius:5px;margin:10px 0;padding:12px;font-size:12px}.error button{margin-left:15px}.error-text{color:#ad4b41}.compact-error{border-radius:0;max-height:160px;margin:0;overflow:auto}.modal-backdrop{z-index:100;background:#13213770;justify-content:center;align-items:center;padding:25px;display:flex;position:fixed;inset:0}.modal{background:#fff;border:1px solid #dbe2ed;border-radius:10px;width:430px;max-width:95vw;max-height:90vh;padding:26px;overflow:auto;box-shadow:0 20px 70px #14203438}.modal.wide{width:720px}.modal p{color:#7c8b9f;margin-bottom:15px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:22px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:0 18px;display:grid}.toast{color:#fff;z-index:200;white-space:pre-line;background:#1d304c;border-radius:7px;align-items:center;gap:20px;max-width:800px;padding:13px 18px;display:flex;position:fixed;bottom:25px;left:50%;transform:translate(-50%);box-shadow:0 8px 25px #15203030}.toast button{color:#fff;background:0 0;border:0;padding:0;font-size:18px}.qr-image{width:280px;margin:0 auto;display:block}.settings-form{max-width:850px}.section-heading{justify-content:space-between;display:flex}.bell-periods{grid-template-columns:repeat(9,1fr);gap:8px;display:grid}.bell-periods div{text-align:center;border:1px solid #dde5f0;border-radius:4px;padding:10px}.bell-periods span{color:#8190a4;margin-top:7px;font-size:10px;display:block}.report-links{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.report-link{text-decoration:none}.report-link span{color:#4865b0;font-size:11px}.login-page{background:#fff;grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-brand{color:#fff;background:#172945;padding:10vh 10%}.login-brand h1{margin-top:22px;font-size:30px}.login-brand p{color:#9cabc4;margin-top:12px}.login-lines{color:#c2cee3;margin-top:70px;font-size:40px;font-weight:300;line-height:1.5}.login-page form{width:360px;max-width:85%;margin:auto}.login-page form h2{margin-bottom:10px;font-size:28px}.login-page form p{color:#8c98ab;margin-bottom:30px}.login-page form button{width:100%;margin:15px 0 20px;padding:12px}.scanner-page{background:#f3f6fc;flex-direction:column;min-height:100vh;display:flex}.scanner-page header{letter-spacing:1px;justify-content:space-between;align-items:center;padding:22px 35px;font-size:11px;font-weight:600;display:flex}.scanner-page header a{letter-spacing:0;align-items:center;gap:8px;text-decoration:none;display:flex}.scanner-capture{opacity:0;border:0;width:1px;height:1px;padding:0;position:fixed;top:50%;left:-10px}.scanner-content{text-align:center;margin:auto;padding:25px}.scanner-content .eyebrow{font-size:12px}.scanner-content h1{font-size:26px}.scanner-clock{color:#8290a6;font-variant-numeric:tabular-nums;margin-top:18px;font-size:18px}.scan-symbol{color:#4967ac;background:#e7edfa;border:1px solid #d8e1f5;border-radius:28px;place-items:center;width:150px;height:150px;margin:35px auto 25px;display:grid}.scanner-content h2{margin-bottom:16px;font-size:30px}.scanner-content p{color:#7d8ca4;line-height:1.8}.scanner-content h3{font-size:22px}.scanner-ready{background:#fff;border:1px solid #dce5ec;border-radius:30px;width:fit-content;margin:28px auto 12px;padding:9px 20px;font-size:12px}.scanner-page footer{text-align:center;padding:20px}.scanner-page footer details{color:#8a98aa;max-width:520px;margin:18px auto;font-size:11px}.scanner-page footer form{gap:6px;margin-top:10px;display:flex}.scanner-page footer input{flex:1}.scanner-page video{margin:15px auto;display:block}.scan-success{background:#e7f6ef}.scan-success .scan-symbol{color:#348058;background:#daf1e4;border-color:#b7e0c8}.scan-error{background:#fff1ee}.scan-error .scan-symbol{color:#b45145;background:#fbe0da;border-color:#f2c5bb}.recent-scans{color:#7a8c9b;justify-content:center;gap:15px;font-size:10px;display:flex}.muted{color:#8290a4;font-size:11px}@media(min-width:1600px){.teacher-col{width:240px}.teacher-name small{margin-left:0;font-size:8px;display:block}.timetable th,.timetable td{height:max(var(--row-height),29px)}.teacher-name{max-width:170px}.sheet-scroll{max-height:calc(100vh - 310px)}}@media(max-width:1100px){.campus{display:none}.sheet-toolbar{flex-wrap:wrap}.teacher-col{width:170px}.teacher-name small{display:none}.stats{grid-template-columns:repeat(4,1fr)}.report-links{grid-template-columns:repeat(2,1fr)}.save-status{display:none}.timetable{min-width:940px}.page,.timetable-workspace{padding:16px}.topbar{padding:0 16px}.sheet-footer{gap:15px}.heading-actions{flex-wrap:wrap}}@media(max-width:700px){.sidebar{width:54px!important}.main-shell{margin-left:54px!important}.sidebar nav a span,.brand>span:not(.brand-icon){display:none}.brand{padding:10px}.sidebar nav{padding:0 5px}.school-name{font-size:9px}.topbar-right small,.term,.app-footer{display:none}.page-heading{flex-direction:column;align-items:flex-start;gap:12px}h1{font-size:22px}.two-col,.report-links,.form-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.login-page{grid-template-columns:1fr}.login-brand{display:none}.login-page form{margin:15vh auto}.sheet-scroll{max-height:65vh}.scanner-page header>span{display:none}.bell-periods{grid-template-columns:repeat(3,1fr)}}@media print{.sidebar,.topbar,.app-footer,.heading-actions,.edit-toolbar,.sheet-toolbar,.formula-bar,.sheet-footer,.toast,.filterbar,button,.modal-backdrop{display:none!important}.main-shell,.collapsed .main-shell{margin:0}.page,.timetable-workspace{padding:0}.sheet-scroll{overflow:visible;max-height:none!important}.timetable{min-width:0;font-size:8px}.timetable th,.timetable td{-webkit-print-color-adjust:exact;print-color-adjust:exact;height:23px!important}.teacher-col{width:150px}.teacher-name small{display:none}.panel{break-inside:avoid}.page-heading{margin-bottom:15px}.data-table{font-size:9px}.data-table th,.data-table td{padding:6px}.data-scroll{overflow:visible}.two-col{display:block}@page{size:A4 landscape;margin:10mm}}.attendance-pagination{color:#7c8b9f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;font-size:12px;display:flex}.attendance-pagination nav{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.attendance-pagination button{min-width:32px;min-height:32px}.attendance-pagination button[aria-current=page]{color:#fff;background:#304db2;border-color:#304db2}.attendance-pagination button:disabled{opacity:.45;cursor:not-allowed}.attendance-pagination button:focus-visible{outline-offset:2px;outline:2px solid #304db2}.pagination-gap{padding:0 3px}.dashboard-page{background:linear-gradient(135deg,#eef2ff,#f4f7fc 45%,#ecfdf5);min-height:calc(100vh - 100px)}.dashboard-page>.page-heading{background:linear-gradient(110deg,#fff 15%,#e4eaff);border:1px solid #dbe4ff;border-radius:14px;padding:22px;box-shadow:0 4px 18px #34499d08}.dashboard-page .page-heading h1{color:#253e91}.dashboard-page .page-heading .eyebrow{color:#5b60ad}.dashboard-page .stat{--card-color:#4338ca;--card-tint:#eef2ff;background:linear-gradient(135deg,white,var(--card-tint));border:1px solid var(--card-color)}@supports (color:color-mix(in lab,red,red)){.dashboard-page .stat{border:1px solid color-mix(in srgb,var(--card-color) 22%,white)}}.dashboard-page .stat{border-top:4px solid var(--card-color);border-radius:12px;position:relative;overflow:hidden;box-shadow:0 4px 12px #20387808}.dashboard-page .stat:after{content:"";background:var(--card-color);opacity:.08;pointer-events:none;border-radius:50%;width:65px;height:65px;position:absolute;bottom:-25px;right:-22px}.dashboard-page .stat span{color:var(--card-color);font-weight:600}.dashboard-page .stat strong{color:var(--card-color)}.dashboard-page .stat:nth-child(2){--card-color:#047857;--card-tint:#d1fae5}.dashboard-page .stat:nth-child(3){--card-color:#a15c07;--card-tint:#fef3c7}.dashboard-page .stat:nth-child(4){--card-color:#be123c;--card-tint:#ffe4e6}.dashboard-page .stat:nth-child(5){--card-color:#7e22ce;--card-tint:#f3e8ff}.dashboard-page .stat:nth-child(6){--card-color:#0e7490;--card-tint:#cffafe}.dashboard-page .stat:nth-child(7){--card-color:#c2410c;--card-tint:#ffedd5}.dashboard-page .panel{border:1px solid #dce3f8;border-top:4px solid #6366f1;border-radius:14px;min-width:0;box-shadow:0 5px 20px #34499d08}.dashboard-page .panel>h2{color:#3730a3}.dashboard-page .panel:nth-child(2){border-top-color:#0d9488}.dashboard-page .panel:nth-child(2)>h2{color:#0f766e}.dashboard-page .data-table thead th{color:#4338ca;background:#eef2ff}.dashboard-page .data-table tbody tr:nth-child(2n){background:#f8faff}.dashboard-page .data-table tbody tr:hover{background:#eef2ff}.dashboard-page .status.present{color:#065f46;background:#d1fae5}.dashboard-page .status.late{color:#92400e;background:#fef3c7}.dashboard-page .status.absent{color:#9f1239;background:#ffe4e6}.dashboard-page .status.leave{color:#6b21a8;background:#f3e8ff}.dashboard-page .status.not_marked{color:#475569;background:#e2e8f0}.dashboard-page .quick-links .button{color:#4338ca;background:#eef2ff;border-color:#c7d2fe}.dashboard-page .quick-links .button:nth-child(3n+2){color:#047857;background:#ecfdf5;border-color:#a7f3d0}.dashboard-page .quick-links .button:nth-child(3n){color:#7e22ce;background:#faf5ff;border-color:#e9d5ff}.dashboard-page .quick-links .button:hover{filter:brightness(.96)}.dashboard-page .workload progress{appearance:none;accent-color:#6366f1;background:#e0e7ff;border:0;border-radius:8px;height:8px;overflow:hidden}.dashboard-page .workload progress::-webkit-progress-bar{background:#e0e7ff;border-radius:8px}.dashboard-page .workload progress::-webkit-progress-value{background:linear-gradient(90deg,#6366f1,#2dd4bf);border-radius:8px}.dashboard-page .workload progress::-moz-progress-bar{background:#6366f1;border-radius:8px}.dashboard-page .workload strong{color:#4f46e5}.dashboard-page .attendance-pagination{border-top:1px solid #e0e7ff;padding-top:12px}@media(max-width:700px){.dashboard-page>.page-heading{padding:16px}.dashboard-page .stats{gap:10px}}.attendance-live-toolbar{color:#64748b;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;font-size:11px;display:flex}.attendance-live-toolbar>span{align-items:center;gap:7px;display:flex}.attendance-live-toolbar i{background:#10b981;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #d1fae5}.attendance-live-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.attendance-lane{--lane-color:#dc2626;--lane-bg:#fff1f2;--lane-border:#fecdd3;background:var(--lane-bg);border:1px solid var(--lane-border);border-radius:12px;min-width:0;overflow:hidden}.lane-present{--lane-color:#15803d;--lane-bg:#f0fdf4;--lane-border:#bbf7d0}.lane-late{--lane-color:#facc15;--lane-bg:#fffbeb;--lane-border:#fde68a}.attendance-lane header{border-bottom:1px solid var(--lane-border);justify-content:space-between;align-items:center;gap:5px;padding:13px 10px;display:flex}.attendance-lane h3{color:var(--lane-color);margin:0;font-size:13px}.attendance-lane header>span{color:var(--lane-color);background:#fff;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:700}.lane-late h3,.lane-late header>span{color:#854d0e}.attendance-live-window{outline-offset:-3px;height:400px;position:relative;overflow:hidden}.attendance-live-track{animation:attendance-flow var(--scroll-duration) linear infinite}.attendance-live-list{box-sizing:border-box;flex-direction:column;justify-content:space-around;min-height:400px;margin:0;padding:0 8px;list-style:none;display:flex}.attendance-live-list li{box-sizing:border-box;border:1px solid var(--lane-border);min-height:40px;color:var(--lane-color);overflow-wrap:anywhere;background:#fff;border-radius:7px;flex-shrink:0;align-items:center;gap:7px;margin:4px 0;padding:9px 8px;font-size:12px;font-weight:600;display:flex}.lane-late .attendance-live-list li{color:#a16207;background:#fff;border-color:#fde68a}.attendance-name-dot{background:var(--lane-color);border-radius:50%;flex-shrink:0;width:6px;height:6px}.attendance-live-empty{text-align:center;color:#64748b;place-items:center;height:400px;padding:16px;font-size:12px;display:grid}.attendance-other{color:#64748b;margin-top:14px;font-size:11px;line-height:1.7}.attendance-other a{color:#4338ca}@keyframes attendance-flow{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@media(max-width:1100px){.dashboard-page .two-col{grid-template-columns:1fr}}@media(max-width:480px){.attendance-live-grid{gap:5px}.attendance-lane header{padding:10px 5px}.attendance-lane h3{font-size:11px}.attendance-live-list{padding:0 4px}.attendance-live-list li{padding:8px 5px;font-size:11px}.attendance-name-dot{display:none}}.attendance-lane:hover .attendance-live-track{animation-play-state:paused}.health-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.health-heading h2{color:#0f766e;margin:0}.health-heading>span{color:#64748b;font-size:11px}.health-live{align-items:center;gap:6px;display:flex}.health-live i{background:#10b981;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #d1fae5}.health-notice{color:#047857;background:#ecfdf5;border-radius:8px;align-items:center;gap:8px;margin-top:16px;padding:10px 12px;font-size:12px;display:flex}.health-notice.needs-review{color:#92400e;background:#fffbeb}.health-notice svg{flex-shrink:0}.health-coverage{align-items:center;gap:24px;padding:22px 0;display:flex}.coverage-ring{background:conic-gradient(#0d9488 var(--coverage),#e2e8f0 0);border-radius:50%;flex-shrink:0;width:118px;height:118px;padding:10px}.coverage-ring>div{background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.coverage-ring strong{color:#0f766e;font-size:26px}.coverage-ring small{color:#64748b;font-size:10px}.health-coverage h3{font-size:14px}.dashboard-health .health-coverage p{margin:7px 0;font-size:12px}.health-coverage a{color:#0f766e;margin-top:10px;font-size:11px;display:inline-block}.coverage-legend{color:#64748b;flex-wrap:wrap;gap:10px;font-size:10px;display:flex}.coverage-legend span{align-items:center;gap:4px;display:flex}.coverage-legend i{background:#0d9488;border-radius:50%;width:6px;height:6px}.coverage-legend span+span i{background:#cbd5e1}.health-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:22px;display:grid}.health-metric{color:#1d4ed8;background:#eff6ff;border:1px solid #dbeafe;border-radius:10px;flex-direction:column;gap:7px;padding:12px;text-decoration:none;display:flex}.health-metric strong{font-size:23px}.health-metric span{font-size:10px;line-height:1.5}.health-metric:hover{filter:brightness(.97)}.metric-green{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.metric-red{color:#be123c;background:#fff1f2;border-color:#fecdd3}.metric-amber{color:#92400e;background:#fffbeb;border-color:#fde68a}.health-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:24px;display:grid}.health-actions a{color:#6d28d9;background:#f5f3ff;border:1px solid #e9d5ff;border-radius:8px;align-items:center;gap:8px;padding:11px;font-size:11px;text-decoration:none;display:flex}.health-actions a:nth-child(2n){color:#0f766e;background:#f0fdfa;border-color:#99f6e4}.health-actions b{margin-left:auto}.health-actions a:hover{filter:brightness(.96)}.workload-summary{grid-template-columns:repeat(3,1fr);gap:8px;padding:14px 0;display:grid}.workload-summary span{color:#64748b;background:#f8fafc;border-radius:8px;padding:10px;font-size:10px}.workload-summary b{color:#4f46e5;margin-bottom:4px;font-size:18px;display:block}.workload-note{color:#64748b;margin-bottom:12px;font-size:11px;line-height:1.6}.workload-controls{gap:8px;margin-bottom:12px;display:flex}.workload-controls input{flex:1;min-width:0}.workload-controls select{max-width:130px}.workload-chart{max-height:320px;padding-right:6px;overflow-y:auto}.workload-chart-row{border-bottom:1px solid #f1f5f9;align-items:center;gap:10px;padding:10px 0;display:flex}.workload-avatar{color:#6366f1;background:#eef2ff;border-radius:9px;flex-shrink:0;place-items:center;width:30px;height:30px;font-size:10px;font-weight:700;display:grid}.workload-chart-body{flex:1;min-width:0}.workload-chart-body>div:first-child{justify-content:space-between;gap:10px;margin-bottom:7px;font-size:11px;display:flex}.workload-chart-body strong{color:#4f46e5;white-space:nowrap}.workload-chart-body small{color:#94a3b8;font-weight:400}.workload-meter{background:#e0e7ff;border-radius:5px;height:7px;overflow:hidden}.workload-meter>span{background:linear-gradient(90deg,#6366f1,#14b8a6);border-radius:5px;height:100%;transition:width .7s;display:block}.over-capacity .workload-meter>span{background:#f43f5e}.workload-chart-body .over-capacity-label{color:#be123c;font-size:10px}.dashboard-health a:focus-visible{outline-offset:3px;outline:2px solid #6366f1}@media(max-width:480px){.health-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.health-coverage{gap:12px}.coverage-ring{width:96px;height:96px}.health-actions a{padding:9px;font-size:10px}}.face-attendance .quick-links .active{color:#244f9e;background:#eaf0ff;border-color:#91a7df}.face-stats{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}.face-stats strong{font-size:22px}.face-device-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:18px;display:grid}.face-details{grid-template-columns:1fr 1fr;gap:10px;margin:20px 0;font-size:12px;display:grid}.face-details dt{color:#75849a}.face-details dd{overflow-wrap:anywhere;margin:0}.face-attendance .data-scroll{margin-bottom:18px}
