/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}::backdrop{--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, 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;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::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,ui-sans-serif, system-ui, 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;-webkit-text-decoration:inherit;-webkit-text-decoration: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{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]){-webkit-appearance:button;appearance:button}::file-selector-button{-webkit-appearance: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{.fixed{position:fixed}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.isolate{isolation:isolate}.block{display:block}.grid{display:grid}.inline{display:inline}.table{display:table}.table-row{display:table-row}.grow{flex-grow:1}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--navy:#142440;--navy-2:#1d365f;--ink:#10203a;--muted:#66758d;--line:#dfe6f1;--bg:#f3f6fb;--white:#fff;--blue:#2f6fed;--teal:#0fa391;--green:#12a65a;--red:#ef4444;--orange:#f59e0b;--purple:#7c4dff;--shadow:0 12px 34px #1d365f14}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink)}body{background:var(--bg);color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;font-size:14px;overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{border:1px solid var(--line);background:#fff;border-radius:9px;outline:none;min-height:42px;padding:0 13px}:is(input:focus,select:focus,textarea:focus,button:focus-visible){outline-offset:1px;border-color:var(--blue);outline:3px solid #2f6fed38}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--navy);color:#d8e2f3;z-index:40;flex-direction:column;width:252px;min-height:100vh;padding:24px 16px 16px;display:flex;position:fixed;top:0;bottom:0;left:0}.brand{color:#fff;letter-spacing:-.3px;background:0 0;border:0;align-items:center;gap:10px;padding:0 5px;font-size:20px;font-weight:800;display:flex}.brand span,.logo-mobile span{color:#fff;background:linear-gradient(145deg,#12b8a0,#089d99);border-radius:9px;place-items:center;width:34px;height:34px;font-size:16px;display:grid;box-shadow:0 8px 20px #0fa39142}.school-pill{background:var(--navy-2);border:1px solid #ffffff14;border-radius:11px;margin:28px 0 25px;padding:13px}.school-pill small,.sidebar nav>small{color:#8fa3c4;letter-spacing:.9px;margin-bottom:7px;font-size:9px;display:block}.school-pill strong{color:#fff;font-size:12px;line-height:1.45;display:block}.sidebar nav{flex-direction:column;gap:5px;display:flex}.sidebar nav button{color:#b4c1d7;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:12px;width:100%;min-height:43px;padding:0 12px;font-size:13px;display:flex}.sidebar nav button span{border:1px solid #ffffff29;border-radius:6px;place-items:center;width:23px;height:23px;font-size:11px;display:grid}.sidebar nav button:hover{color:#fff;background:#ffffff0f}.sidebar nav button.active{color:var(--navy);background:#fff;font-weight:700}.sidebar nav button.active span{color:var(--blue);border-color:#c9d7ea}.account{border-top:1px solid #ffffff47;grid-template-columns:35px 1fr 30px;align-items:center;gap:9px;margin-top:auto;padding:17px 3px 0;display:grid}.avatar{width:35px;height:35px;color:var(--blue);background:#e8f0ff;border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:800;display:grid}.account .avatar{color:#fff;background:#6c95ec}.account strong,.account small{display:block}.account strong{color:#fff;font-size:11px}.account small{color:#8fa3c4;margin-top:2px;font-size:9px}.account>button{color:#9fb0ca;background:0 0;border:0;font-size:18px}.main-shell{width:calc(100% - 252px);min-width:0;margin-left:252px}.topbar{z-index:25;background:#fff;border-bottom:1px solid #e7ecf4;justify-content:space-between;align-items:center;height:70px;padding:0 42px;display:flex;position:sticky;top:0}.topbar small{color:#718098}.top-actions{align-items:center;gap:14px;display:flex}.year-pill{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 18px;font-size:11px;font-weight:700}.icon-button,.menu-button{border:1px solid var(--line);background:#fff;border-radius:9px;width:40px;height:40px;position:relative}.icon-button i{background:var(--red);color:#fff;border-radius:50%;place-items:center;width:16px;height:16px;font-size:9px;font-style:normal;display:grid;position:absolute;top:-5px;right:-4px}.menu-button{display:none}.page-wrap{max-width:1380px;margin:0 auto;padding:35px 42px 110px}.page-title{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:23px;display:flex}.page-title h1{color:var(--ink);letter-spacing:-.7px;margin:0;font-size:29px;line-height:1.15}.page-title p{color:var(--muted);margin:7px 0 0;font-size:12px}.page-actions{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.primary,.secondary{border:1px solid #0000;border-radius:8px;min-height:42px;padding:0 17px;font-size:12px;font-weight:700}.primary{background:var(--blue);color:#fff;box-shadow:0 7px 18px #2f6fed2e}.primary:hover{background:#245ed4}.secondary{color:var(--ink);border-color:var(--line);background:#fff}.secondary:hover{background:#f8faff;border-color:#bdcbe0}.wide{width:100%}.panel{background:#fff;border:1px solid #e2e8f2;border-radius:13px;box-shadow:0 1px 1px #10203a03}.kpi-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:17px;display:grid}.kpi{background:#fff;border:1px solid #e2e8f2;border-radius:13px;justify-content:space-between;min-height:116px;padding:18px;display:flex}.kpi small{color:#718098;letter-spacing:.65px;margin-bottom:9px;font-size:9px;font-weight:800;display:block}.kpi strong{letter-spacing:-.6px;font-size:27px;display:block}.kpi p{margin:8px 0 0;font-size:9px;font-weight:700}.kpi>span{border-radius:8px;place-items:center;width:31px;height:31px;font-weight:800;display:grid}.blue{color:var(--blue)!important}.green{color:var(--green)!important}.red{color:var(--red)!important}.orange{color:var(--orange)!important}.kpi>span.blue{background:#edf3ff}.kpi>span.green{background:#e8faf1}.kpi>span.red{background:#ffedef}.kpi>span.orange{background:#fff4dc}.dashboard-grid,.analytics-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:17px;margin-bottom:17px;display:grid}.dashboard-grid>*,.analytics-grid>*{min-width:0}.panel-heading{padding:19px 20px 8px}.panel-heading h3{margin:0;font-size:15px}.panel-heading p{color:var(--muted);margin:4px 0 0;font-size:10px}.trend-panel,.donut-panel{min-height:280px}.bar-chart{background:repeating-linear-gradient(#0000 0 48px,#f0f3f8 49px);border-top:1px solid #f0f3f8;align-items:flex-end;gap:clamp(16px,4vw,46px);height:210px;margin:0 20px;padding:20px 25px 17px;display:flex}.bar-chart>div{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:9px;height:100%;display:flex}.bar-chart span{border-radius:3px 3px 0 0;width:28px;max-height:145px;display:block}.blue-bar{background:var(--blue)}.teal-bar{background:var(--teal)}.bar-chart small{color:#75859d;font-size:9px}.donut-panel{grid-template-rows:auto 1fr;grid-template-columns:1.05fr .95fr;align-items:center;padding-bottom:15px;display:grid}.donut-panel .panel-heading{grid-column:1/-1}.donut{border-radius:50%;place-items:center;width:145px;height:145px;margin:15px auto;display:grid}.donut>div{text-align:center;background:#fff;border-radius:50%;place-content:center;width:100px;height:100px;display:grid;box-shadow:inset 0 0 0 1px #f3f5f8}.donut strong{font-size:20px}.donut small{color:var(--muted);margin-top:3px;font-size:9px}.legend{flex-direction:column;gap:12px;font-size:10px;display:flex}.legend i{border-radius:50%;width:8px;height:8px;margin-right:7px;display:inline-block}.green-dot{background:var(--green)}.orange-dot{background:var(--orange)}.red-dot{background:var(--red)}.risk-panel{padding-bottom:9px}.risk-list{padding:0 20px 15px}.risk-list button{text-align:left;background:#fff;border:0;border-bottom:1px solid #eef2f7;grid-template-columns:34px 1fr auto;align-items:center;width:100%;padding:10px 0;display:grid}.risk-list button>span{background:#f1f5fb;border-radius:50%;place-items:center;width:25px;height:25px;font-size:9px;display:grid}.risk-list strong,.risk-list small{display:block}.risk-list strong{font-size:11px}.risk-list small{color:var(--muted);margin-top:3px;font-size:9px}.risk-list b{color:var(--red);background:#ffeff0;border-radius:20px;padding:7px 12px;font-size:10px}.attendance-toolbar{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px;padding:13px;display:flex}.attendance-skeleton{align-content:start;gap:15px;min-height:430px;padding:22px;display:grid;overflow:hidden}.attendance-skeleton>div{background:linear-gradient(90deg,#f5f7fa 20%,#e9eef5 45%,#f5f7fa 70%) 0 0/260% 100%;border-radius:10px;height:64px;animation:1.1s ease-in-out infinite alternate attendance-pulse}.attendance-skeleton>div:first-child{height:58px}.attendance-load-error{text-align:center;place-content:center;justify-items:center;min-height:320px;padding:38px;display:grid}.attendance-load-error>span{width:46px;height:46px;color:var(--red);background:#ffedef;border-radius:50%;place-items:center;font-size:20px;font-weight:900;display:grid}.attendance-load-error h2{margin:14px 0 5px}.attendance-load-error p{max-width:500px;color:var(--muted)}.attendance-load-error button{margin-top:10px}.attendance-session-banner{color:#805b08;background:#fff8e8;border:1px solid #f0d99f;border-radius:10px;justify-content:space-between;align-items:center;gap:15px;margin:0 0 12px;padding:12px 15px;font-size:9px;display:flex}.attendance-session-banner strong{font-size:10px}.attendance-session-banner span{text-align:right}.filters{flex:1;gap:9px;display:flex}.filters label,.quick-report label{color:#61718b;flex-direction:column;gap:5px;font-size:9px;font-weight:800;display:flex}.filters select{min-width:150px}.search-label{flex:1;max-width:330px}.live-counters{grid-template-columns:repeat(4,96px) 1fr;gap:8px;margin-bottom:12px;display:grid}.live-counters>div{border:1px solid var(--line);background:#fff;border-radius:10px;justify-content:space-between;align-items:baseline;min-height:59px;padding:10px 13px;display:flex}.live-counters strong{color:var(--green);font-size:18px}.live-counters>div:nth-child(2) strong{color:var(--red)}.live-counters>div:nth-child(3) strong{color:var(--orange)}.live-counters>div:nth-child(4) strong{color:var(--purple)}.live-counters span{color:var(--muted);font-size:9px}.live-counters>p{text-align:right;color:var(--muted);align-self:center;font-size:10px}.live-counters>p span{color:var(--orange);font-weight:700}.student-table{overflow:hidden}.student-table-head,.attendance-row{grid-template-columns:42px minmax(210px,.9fr) minmax(510px,1.9fr) minmax(150px,.6fr);align-items:center;gap:12px;display:grid}.student-table-head{color:#74839b;background:#f8fafc;border-bottom:1px solid #e8edf5;min-height:42px;padding:0 17px;font-size:9px;font-weight:800}.attendance-row{border-bottom:1px solid #edf1f6;outline:none;min-height:72px;padding:7px 17px}.attendance-row:last-child{border-bottom:0}.attendance-row.focused{box-shadow:inset 3px 0 var(--blue);background:#fbfdff}.row-number{color:#8392aa;font-size:9px}.student-identity{align-items:center;gap:10px;min-width:0;display:flex}.student-identity strong,.student-identity small{display:block}.student-identity strong{white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.student-identity small{color:#7d8ba1;margin-top:3px;font-size:8px}.avatar.light{color:var(--blue);background:#eef4ff;border-radius:8px}.status-buttons{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.status-buttons button{color:#52617a;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:20px;min-height:37px;font-size:9px}.status-buttons button i{margin-right:4px;font-style:normal;display:none}.status-buttons button.selected i{display:inline}.status-buttons .selected{font-weight:800}.status-present.selected,.status-present.status-present{color:var(--green);background:#e9f9f1}.status-excused.selected{color:#d88a00;background:#fff5dd}.status-unexcused.selected{color:var(--red);background:#ffebed}.status-late.selected{color:var(--purple);background:#f1eaff}.row-note input{color:#53647e;border-color:#0000;width:100%;min-height:34px;padding:0 8px;font-size:9px}.row-note input:hover,.row-note input:focus{border-color:var(--line)}.row-note label{align-items:center;gap:4px;font-size:9px;display:flex}.row-note label input{width:64px}.shortcut-help{color:#6f7e94;flex-wrap:wrap;align-items:center;gap:7px;margin:12px 0 78px;font-size:10px;display:flex}.shortcut-help span{font-weight:700}.shortcut-help kbd{background:#fff;border:1px solid #cfd9e7;border-bottom-width:2px;border-radius:4px;padding:2px 5px;font-size:9px}.attendance-footer{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff5;border-top:1px solid #dce4ef;justify-content:space-between;align-items:center;gap:20px;min-height:72px;padding:13px 42px;display:flex;position:fixed;bottom:0;left:252px;right:0;box-shadow:0 -10px 30px #10203a0f}.attendance-footer>div:first-child strong,.attendance-footer>div:first-child small{display:block}.attendance-footer strong{font-size:11px}.attendance-footer small{color:var(--orange);margin-top:4px;font-size:9px}.attendance-footer>div:last-child{gap:9px;display:flex}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a18308c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{text-align:center;background:#fff;border-radius:17px;width:min(520px,100%);max-height:92vh;padding:30px;position:relative;overflow:auto;box-shadow:0 30px 80px #0000003d}.modal-icon{width:50px;height:50px;color:var(--green);background:#e8faf1;border-radius:50%;place-items:center;margin:0 auto 14px;font-size:22px;font-weight:800;display:grid}.modal h2{margin:0;font-size:21px}.modal>p{color:var(--muted);font-size:11px}.modal-summary{grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0;display:grid}.modal-summary b{border:1px solid var(--line);border-radius:10px;padding:13px 4px;font-size:20px}.modal-summary small{color:var(--muted);margin-top:5px;font-size:8px;display:block}.modal-note{text-align:left;background:#f5f8fd;border-radius:9px;padding:11px}.modal>div:last-child{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.danger-icon{color:var(--red);background:#fff0f0}.danger-button{color:#fff;background:#dc2626;border:1px solid #dc2626;border-radius:8px;min-height:42px;padding:0 17px;font-size:12px;font-weight:800}.confirm-modal{width:min(470px,100%)}.segmented{background:#e8eef7;border-radius:10px;width:max-content;max-width:100%;margin-bottom:18px;padding:4px;display:flex}.segmented button{background:0 0;border:0;border-radius:8px;min-height:38px;padding:0 22px;font-size:11px}.segmented button.active{color:var(--blue);background:#fff;font-weight:800;box-shadow:0 2px 8px #10203a14}.analytics-controls{justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;padding:10px;display:flex}.analytics-controls .segmented{flex:0 auto;margin:0}.analytics-controls>label{color:#61718b;flex-direction:column;gap:5px;min-width:min(360px,100%);font-size:9px;font-weight:800;display:flex}.analytics-controls select{width:100%;color:var(--ink);font-size:11px;font-weight:650}.school-scope{border:1px solid var(--line);border-radius:9px;flex-direction:column;justify-content:center;min-width:min(360px,100%);min-height:42px;padding:7px 12px;display:flex}.school-scope small{color:#61718b;font-size:8px;font-weight:800}.school-scope strong{margin-top:2px;font-size:11px}.analytics-loading{grid-template-columns:repeat(2,1fr);gap:14px;min-height:260px;padding:22px;display:grid}.analytics-loading div{background:linear-gradient(90deg,#edf1f7 25%,#f8faff 50%,#edf1f7 75%) 0 0/200% 100%;border-radius:11px;animation:1.15s infinite alternate attendance-pulse}.analytics-status-strip{grid-template-columns:repeat(6,1fr);gap:1px;margin-bottom:17px;display:grid;overflow:hidden}.analytics-status-strip span{color:#718098;background:#fbfcfe;flex-direction:column;justify-content:center;min-height:72px;padding:13px;font-size:8px;font-weight:800;display:flex}.analytics-status-strip strong{color:var(--ink);margin-bottom:4px;font-size:18px}.analytics-trend-chart{border-top:1px solid #f0f3f8;align-items:stretch;gap:9px;min-height:220px;padding:20px;display:flex;overflow-x:auto}.analytics-trend-column{text-align:center;flex:1;grid-template-rows:22px 145px 32px;align-items:end;min-width:48px;display:grid}.analytics-trend-column>b{color:#53647d;align-self:start;font-size:8px}.analytics-trend-column>span{background:repeating-linear-gradient(#0000 0 35px,#f1f4f8 36px);border-bottom:1px solid #dce4ef;justify-content:center;align-items:flex-end;height:145px;display:flex}.analytics-trend-column i{background:linear-gradient(180deg,var(--teal),var(--blue));border-radius:4px 4px 1px 1px;width:min(28px,70%);min-height:3px;display:block}.analytics-trend-column span.no-data i,.compare-bars i.no-data{background:#d8e0eb}.analytics-trend-column small{color:#718098;white-space:nowrap;padding-top:8px;font-size:8px}.analytics-no-data-donut{background:#e8edf4!important}.analytics-no-data-donut strong{font-size:18px!important}.analytics-comparison-table{margin-top:10px}.analytics-comparison-table .table-row{grid-template-columns:1.5fr repeat(4,1fr)}.analytics-comparison-table .table-row>div:first-child strong,.analytics-comparison-table .table-row>div:first-child small{display:block}.analytics-comparison-table .table-row>div:first-child small{color:var(--muted);margin-top:3px;font-size:8px}.teal-dot{background:var(--teal)}.line-card{min-height:290px}.line-chart{padding:7px 20px 17px}.line-chart svg{width:100%;height:195px;overflow:visible}.line-chart .grid-line{stroke:#e6ebf3;stroke-width:1px;fill:none}.line-chart .main-line{fill:none;stroke:var(--blue);stroke-width:3px}.line-chart .compare-line{fill:none;stroke:var(--teal);stroke-width:2px;stroke-dasharray:7 6}.line-chart circle{fill:#fff;stroke:var(--blue);stroke-width:3px}.compare-bars{flex-direction:column;gap:19px;padding:15px 22px;display:flex}.compare-bars>div{grid-template-columns:45px 1fr 55px;align-items:center;gap:10px;font-size:10px;display:grid}.compare-bars span{background:#edf1f6;border-radius:10px;height:10px;overflow:hidden}.compare-bars i{background:var(--teal);border-radius:10px;height:100%;display:block}.compare-bars>div:nth-child(2) i{background:var(--blue)}.compare-bars>div:nth-child(3) i{background:var(--orange)}.compare-bars b{text-align:right}.data-table{width:100%}.table-row{border-bottom:1px solid #edf1f6;grid-template-columns:1.5fr repeat(4,1fr);align-items:center;gap:15px;min-height:59px;padding:8px 19px;font-size:10px;display:grid}.table-row:last-child{border-bottom:0}.table-head{color:#75849c;background:#f8fafc;min-height:42px;font-size:8px;font-weight:800}.badge{white-space:nowrap;border-radius:20px;padding:6px 11px;font-size:9px;font-weight:800;display:inline-block}.badge.green{background:#e8faf1}.badge.red{background:#ffedef}.badge.orange{background:#fff3db}.badge.blue{background:#eaf1ff}.student-profile-heading{justify-content:space-between;align-items:center;margin-bottom:12px;padding:16px 18px;display:flex}.student-profile-heading>div:last-child{gap:8px;display:flex}.period-kpis{grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px;display:grid}.period-kpis .kpi{min-height:95px;padding:14px}.period-kpis .kpi>span{display:none}.period-kpis .kpi strong{font-size:16px}.heatmap-card{padding-bottom:20px}.heatmap-feedback{border:1px dashed var(--line);min-height:120px;color:var(--muted);border-radius:10px;place-items:center;margin:5px 20px 0;font-size:11px;display:grid}.error-text{color:var(--red)}.heatmap-summary{flex-wrap:wrap;gap:8px;padding:4px 20px 15px;display:flex}.heatmap-summary span{border:1px solid var(--line);color:#64748b;border-radius:8px;align-items:center;gap:6px;min-height:31px;padding:0 10px;font-size:9px;display:flex}.heatmap-summary strong{color:var(--ink);font-size:11px}.heatmap-summary i,.heatmap-legend i{border-radius:3px;flex:none;width:12px;height:12px;display:inline-block}.heatmap-calendar{grid-template-columns:35px minmax(0,1fr);gap:8px;padding:0 20px;display:grid}.heatmap-weekdays{grid-template-rows:repeat(7,18px);gap:5px;display:grid}.heatmap-weekdays span{color:#8491a5;align-items:center;font-size:8px;font-weight:700;display:flex}.heatmap{grid-template-rows:repeat(7,18px);grid-auto-columns:minmax(15px,1fr);grid-auto-flow:column;gap:5px;min-width:250px;padding:0 0 5px;display:grid;overflow-x:auto}.heatmap button{cursor:help;border:1px solid #0000;border-radius:4px;min-width:15px;height:18px;padding:0}.heatmap button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.heatmap .today-cell{box-shadow:0 0 0 2px #12213b}.present-cell{background:#27b36a}.late-cell{background:#38a8c7}.excused-cell{background:#fac45b}.unexcused-cell{background:#ef6262}.no-school-cell{background:#dce3ec}.unrecorded-cell{background:#f8fafc;border:1px solid #cbd5e1!important}.future-cell{background:#f3f6fa;border:1px dashed #d7dee8!important}.heatmap-legend{color:#64748b;flex-wrap:wrap;gap:13px 18px;padding:16px 20px 0;font-size:9px;display:flex}.heatmap-legend span{align-items:center;gap:6px;display:flex}.filter-strip{gap:8px;margin-bottom:17px;padding:10px;display:flex}.filter-strip input.grow{flex:1}.filter-chip{background:0 0;border:0;border-radius:8px;min-height:40px;padding:0 15px;font-size:10px}.filter-chip.active{background:var(--navy);color:#fff;font-weight:700}.empty-state{color:var(--muted);text-align:center;grid-column:1/-1;padding:28px 18px;font-size:11px}.empty-card{min-height:205px;color:var(--muted);text-align:center;border:1px dashed #c6d1df;border-radius:13px;place-items:center;padding:20px;font-size:11px;display:grid}.class-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.class-card,.new-class-card{text-align:left;background:#fff;border:1px solid #e0e7f1;border-radius:13px;min-height:205px;padding:19px}.class-card>div:first-child{justify-content:space-between;align-items:center;gap:8px;display:flex}.class-card>div:first-child button{color:#49617e;background:0 0;border:0}.card-actions,.row-actions{align-items:center;gap:5px;display:flex}.card-actions button,.row-actions button{border-radius:7px;min-height:34px;padding:0 9px;font-size:9px;font-weight:750;border:1px solid var(--line)!important;letter-spacing:0!important;background:#fff!important}.danger-text{color:#dc2626!important;background:#fff7f7!important;border-color:#fecaca!important}.class-token{border-radius:10px;place-items:center;width:43px;height:43px;font-weight:800;display:grid}.token-0{color:var(--blue)!important;background:#edf3ff!important}.token-1{color:var(--teal)!important;background:#e9faf8!important}.token-2{color:var(--orange)!important;background:#fff4df!important}.class-card h3{margin:16px 0 7px;font-size:15px}.class-card p{color:var(--muted);margin:3px 0;font-size:9px}.progress{background:#edf1f6;border-radius:10px;height:7px;margin:18px 0 9px;overflow:hidden}.progress i{border-radius:10px;height:100%;display:block}.blue-progress{background:var(--blue)}.teal-progress{background:var(--teal)}.red-progress{background:var(--orange)}.class-card>div:last-child{justify-content:space-between;display:flex}.class-card>div:last-child small{color:var(--muted);font-size:8px}.class-card>div:last-child b{font-size:10px}.new-class-card{text-align:center;border:1px dashed #94a9c8;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.new-class-card span{background:#eff4fb;border-radius:11px;place-items:center;width:44px;height:44px;font-size:20px;display:grid}.new-class-card strong{font-size:13px}.new-class-card small{color:var(--muted)}.form-modal{text-align:left;width:min(640px,100%)}.form-grid{grid-template-columns:1fr 1fr;gap:13px;margin:20px 0;display:grid}.form-grid label,.settings-card>label{color:#596a83;flex-direction:column;gap:6px;font-size:10px;font-weight:700;display:flex}.form-grid input,.form-grid select{width:100%}.form-modal>div:last-child{justify-content:flex-end;display:flex}.students-table .table-row{grid-template-columns:1.6fr .85fr .55fr .9fr .65fr .6fr auto}.students-table .table-row>span{min-width:0}.student-server-filters{grid-template-columns:minmax(190px,1.5fr) repeat(4,minmax(120px,.75fr));gap:8px;margin-bottom:17px;padding:10px;display:grid}.student-server-filters input,.student-server-filters select{width:100%;min-width:0}.student-list-panel{overflow:hidden}.student-profile-link{text-align:left;background:0 0;border:0;align-items:center;gap:9px;min-width:0;padding:0;display:flex}.student-profile-link>span:last-child{min-width:0}.student-profile-link strong,.student-profile-link small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.student-profile-link strong{color:var(--ink);font-size:10px}.student-profile-link small{color:var(--muted);margin-top:3px;font-size:8px}.students-table .archived-row{color:#718098;background:#fafbfd}.students-table .row-actions{flex-wrap:wrap}.student-list-loading{gap:9px;min-height:280px;padding:18px;display:grid}.student-list-loading span,.profile-loading span{background:linear-gradient(90deg,#edf1f7 25%,#f8faff 50%,#edf1f7 75%) 0 0/200% 100%;border-radius:9px;animation:1.15s infinite alternate attendance-pulse}.student-list-error{min-height:240px;color:var(--muted);text-align:center;place-content:center;justify-items:center;display:grid}.student-pagination{border-top:1px solid var(--line);color:#75849c;justify-content:space-between;align-items:center;gap:12px;min-height:62px;padding:10px 18px;font-size:8px;display:flex}.student-pagination>div{gap:5px;display:flex}.student-pagination button{border:1px solid var(--line);color:#52627a;background:#fff;border-radius:7px;min-width:33px;height:33px}.student-pagination button.active{background:var(--blue);border-color:var(--blue);color:#fff}.student-pagination button:disabled{opacity:.4}.student-profile-drawer{width:min(590px,100%)}.profile-loading{grid-template-rows:120px repeat(2,1fr);gap:12px;min-height:440px;display:grid}.student-profile-hero{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding-bottom:20px;display:flex}.student-profile-hero h3{margin:0;font-size:18px}.student-profile-hero p{color:var(--muted);margin:5px 0 8px;font-size:9px}.student-profile-grid{grid-template-columns:1fr 1fr;gap:9px;margin:17px 0;display:grid}.student-profile-grid>div{background:#f7f9fc;border-radius:8px;padding:11px}.student-profile-grid dt{color:#7b899d;font-size:7px;font-weight:800}.student-profile-grid dd{margin:5px 0 0;font-size:9px}.enrollment-history{margin-top:20px}.enrollment-history h3,.restore-card h3{font-size:11px}.enrollment-history article{border:1px solid var(--line);border-radius:8px;grid-template-columns:1fr 1.3fr auto;align-items:center;gap:9px;margin-top:8px;padding:11px;font-size:8px;display:grid}.enrollment-history strong,.enrollment-history small{display:block}.enrollment-history small{color:var(--muted);margin-top:3px}.enrollment-history i{color:#52657f;background:#eef3fa;border-radius:20px;padding:5px 7px;font-size:7px;font-style:normal;font-weight:800}.restore-card{background:#f7faff;border:1px solid #b9cfef;border-radius:10px;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px;padding:15px;display:grid}.restore-card h3,.restore-card p,.restore-card button{grid-column:1/-1}.restore-card p{color:var(--muted);margin:0;font-size:8px}.restore-card label,.duplicate-policy{color:#596a83;flex-direction:column;gap:5px;font-size:8px;font-weight:800;display:flex}.restore-card select,.restore-card input{width:100%}.import-modal{text-align:left;width:min(850px,100%)}.modal-close{color:#64738a;background:0 0;border:0;font-size:25px;position:absolute;top:17px;right:18px}.steps{grid-template-columns:repeat(4,1fr);margin:23px 0;display:grid;position:relative}.steps span{color:#8694a9;font-size:10px;font-weight:700}.steps .active{color:var(--blue)}.steps .done{color:var(--teal)}.import-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.dropzone{height:250px;color:var(--blue);text-align:center;background:#f9fbfe;border:2px dashed #b8c8df;border-radius:13px;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:26px;display:flex}.dropzone strong{color:var(--ink);font-size:13px}.dropzone span{color:var(--muted);font-size:10px}.dropzone input{display:none}.template-card{border:1px solid var(--line);border-radius:13px;padding:20px}.template-card h3{margin:0}.template-card p{color:var(--muted);font-size:10px}.template-download{border:1px solid var(--line);min-height:36px;color:var(--blue);border-radius:7px;align-items:center;padding:0 12px;font-size:9px;font-weight:800;text-decoration:none;display:inline-flex}.mini-sheet{border:1px solid var(--line);grid-template-columns:repeat(4,1fr);margin-top:20px;display:grid}.mini-sheet span{border-right:1px solid var(--line);padding:11px 5px;font-size:8px}.validation-stats{gap:8px;margin-top:20px;display:flex}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.functional-import-modal{width:min(1050px,100%);max-height:95vh;overflow:auto}.duplicate-policy{margin-top:16px}.duplicate-policy select{width:100%}.antivirus-note{color:#745716;background:#fff8e7;border-radius:8px;margin-top:13px;padding:11px}.antivirus-note strong,.antivirus-note span{display:block}.antivirus-note strong{font-size:9px}.antivirus-note span{margin-top:4px;font-size:8px;line-height:1.45}.import-preview{border:1px solid var(--line);border-radius:11px;margin-top:18px;overflow:hidden}.import-preview-stats{background:#f8fafc;grid-template-columns:repeat(7,1fr);gap:7px;padding:11px;display:grid}.import-preview-stats span{color:#718098;background:#fff;border-radius:7px;min-height:57px;padding:8px;font-size:7px}.import-preview-stats b{color:var(--ink);margin-bottom:4px;font-size:16px;display:block}.scan-note{color:#7a5b12;background:#fff8e7;margin:0;padding:9px 12px;font-size:8px}.import-validation-table{max-height:280px;overflow:auto}.import-validation-row{border-bottom:1px solid #edf1f6;grid-template-columns:45px 1.25fr 65px 90px 2fr;align-items:center;gap:8px;min-width:790px;min-height:48px;padding:8px 11px;font-size:8px;display:grid}.import-validation-row.head{z-index:1;color:#75849c;background:#f5f7fa;min-height:37px;font-size:7px;font-weight:800;position:sticky;top:0}.import-validation-row.has-error{background:#fff8f8}.import-validation-row strong,.import-validation-row small{display:block}.import-validation-row small{color:var(--muted);margin-top:3px}.error-downloads{background:#fafbfd;justify-content:flex-end;gap:7px;padding:10px;display:flex}.report-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px;display:grid}.report-card{background:#fff;border:1px solid #e0e7f1;border-radius:13px;flex-direction:column;min-height:190px;padding:19px;transition:border-color .18s,box-shadow .18s;display:flex}.report-card.selected{border-color:#7ba4eb;box-shadow:0 0 0 3px #edf3ff}.report-card>span{border-radius:9px;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.report-card h3{margin:15px 0 7px;font-size:13px}.report-card p{color:var(--muted);margin:0;font-size:10px;line-height:1.55}.report-card>div{justify-content:space-between;align-items:end;margin-top:auto;display:flex}.report-card small{color:#71819a;font-size:8px;font-weight:700}.report-card .primary,.report-card .secondary{min-height:35px;padding:0 15px;font-size:10px}.report-builder{scroll-margin-top:80px;overflow:hidden}.report-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0 20px 20px;display:grid}.report-filter-grid label{color:#596a83;flex-direction:column;gap:6px;min-width:0;font-size:8px;font-weight:800;display:flex}.report-filter-grid select,.report-filter-grid input{width:100%;min-width:0}.report-filter-grid select:disabled{color:#69778b;opacity:1;background:#f3f5f8}.report-submit{background:#f9fbfe;border-top:1px solid #edf1f6;justify-content:space-between;align-items:center;gap:15px;min-height:70px;padding:13px 20px;display:flex}.report-submit span{color:#627189;font-size:9px;font-weight:700}.report-submit button{min-width:180px}.export-history-dialog{width:min(1020px,100%)!important}.export-history-loading{gap:10px;min-height:230px;display:grid}.export-history-loading span{background:linear-gradient(90deg,#edf1f7 25%,#f8faff 50%,#edf1f7 75%) 0 0/200% 100%;border-radius:9px;animation:1.15s infinite alternate attendance-pulse}.export-history-error{min-height:220px;color:var(--muted);place-content:center;justify-items:center;display:grid}.export-history-list{border:1px solid var(--line);border-radius:10px;overflow:auto}.export-history-row{color:#40516a;border-bottom:1px solid #edf1f6;grid-template-columns:1.55fr 1fr 1fr 1fr 1.1fr 70px;align-items:center;gap:10px;min-width:840px;min-height:62px;padding:9px 12px;font-size:9px;display:grid}.export-history-row:last-child{border-bottom:0}.export-history-row.head{color:#75849c;background:#f7f9fc;min-height:40px;font-size:7px;font-weight:800}.export-history-row strong,.export-history-row small{display:block}.export-history-row small{color:#8491a3;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:7px;overflow:hidden}.export-history-row .secondary{justify-content:center;align-items:center;min-height:31px;padding:0 10px;font-size:8px;text-decoration:none;display:inline-flex}.export-status{border-radius:20px;align-items:center;min-height:24px;padding:0 8px;font-size:7px;font-style:normal;font-weight:800;display:inline-flex}.export-status.completed{color:#15803d;background:#e8faf1}.export-status.pending,.export-status.processing{color:#2459b9;background:#eaf1ff}.export-status.failed{color:#b91c1c;background:#ffedef}.quick-report{padding-bottom:18px}.quick-report>div:last-child{grid-template-columns:1fr 1.5fr 1fr auto;align-items:end;gap:12px;padding:8px 20px 0;display:grid}.quick-report input,.quick-report select{width:100%}.calendar-title .page-actions{align-items:stretch}.year-selector{border:1px solid var(--line);background:#fff;border-radius:8px;flex-direction:column;justify-content:center;min-width:165px;min-height:42px;padding:5px 10px;display:flex}.year-selector span{color:#6b7b92;font-size:7px;font-weight:800}.year-selector select{min-height:22px;color:var(--ink);background:0 0;border:0;padding:0 20px 0 0;font-size:10px;font-weight:750}.calendar-loading{min-height:280px;color:var(--muted);place-items:center;gap:12px;display:grid}.calendar-alert{color:#b91c1c;background:#fff7f7;border:1px solid #fecaca;border-radius:9px;margin:-7px 0 14px;padding:11px 13px;font-size:10px}.calendar-layout{grid-template-columns:minmax(0,1.8fr) minmax(285px,1fr);gap:17px;margin-bottom:17px;display:grid}.calendar-card{min-width:0;padding:18px}.calendar-head{justify-content:space-between;align-items:center;display:flex}.calendar-head h3{margin:0;font-size:15px}.calendar-head button{border:1px solid var(--line);background:#fff;border-radius:8px;width:40px;height:40px;font-size:20px}.calendar-head button:disabled{opacity:.35;cursor:not-allowed}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:17px;display:grid}.calendar-grid.is-loading{opacity:.55;pointer-events:none}.calendar-grid>strong{text-align:center;color:#75849b;padding:10px 0;font-size:9px}.calendar-grid>button{text-align:left;min-width:0;height:65px;color:var(--ink);background:#fff;border:1px solid #0000;border-radius:9px;flex-direction:column;gap:5px;padding:6px;display:flex;overflow:hidden}.calendar-grid>button:hover{background:#edf3ff}.calendar-grid>button b{font-size:10px}.calendar-grid>button small{width:100%;color:inherit;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:3px;font-size:7px;line-height:1.2;display:flex;overflow:hidden}.calendar-grid>button small span{flex:none}.calendar-grid .weekend{color:#8f9bad;background:#f2f5f9}.calendar-grid .today{background:var(--blue);color:#fff;font-weight:800}.calendar-grid .selected{border-color:var(--blue);box-shadow:0 0 0 2px #2563eb2e}.calendar-grid .outside{opacity:.25;cursor:not-allowed}.calendar-grid>button.event-holiday,.calendar-grid>button.event-vacation,.calendar-grid>button.event-class-day-off{box-shadow:inset 0 -4px #ef6f7b}.calendar-grid>button.event-exam{box-shadow:inset 0 -4px var(--orange)}.calendar-grid>button.event-special-school-day{box-shadow:inset 0 -4px var(--green)}.calendar-grid>button.event-school-event{box-shadow:inset 0 -4px #8b5cf6}.calendar-grid>button.event-emergency-closure{box-shadow:inset 0 -4px #9f1239}.calendar-legend{color:#64748b;border-top:1px solid #edf1f6;flex-wrap:wrap;gap:10px 16px;margin-top:17px;padding-top:14px;font-size:8px;display:flex}.calendar-legend span{align-items:center;gap:5px;display:flex}.calendar-legend i{border-radius:3px;width:10px;height:10px}.legend-today{background:var(--blue)}.legend-weekend{background:#dfe5ec}.legend-holiday{background:#ef6f7b}.legend-exam{background:var(--orange)}.legend-special{background:var(--green)}.legend-event{background:#8b5cf6}.legend-closure{background:#9f1239}.calendar-settings,.settings-card{padding:20px}.calendar-settings-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:18px;display:flex}.calendar-settings-head h3{margin:0}.text-button{min-height:34px;color:var(--blue);background:0 0;border:0;padding:0 8px;font-size:9px;font-weight:800}.calendar-settings>label{color:#687991;flex-direction:column;gap:5px;margin-bottom:12px;font-size:8px;font-weight:800;display:flex}.calendar-settings input{width:100%}.rule-status{color:#42526a;border-bottom:1px solid #eef2f6;justify-content:space-between;align-items:center;min-height:43px;font-size:9px;display:flex}.rule-status b{color:#7c899a;background:#eef2f6;border-radius:20px;padding:5px 9px;font-size:8px}.rule-status b.on{color:#15803d;background:#e8faf1}.settings-actions{gap:8px;margin-top:16px;display:flex}.settings-actions button{flex:1;padding:0 8px}.toggle-label{justify-content:space-between;align-items:center;min-height:42px;color:#34445d!important;flex-direction:row!important;margin:0!important;font-weight:500!important;display:flex!important}.toggle{background:#cbd4e1;border:0;border-radius:20px;width:40px;height:23px;padding:3px}.toggle i{background:#fff;border-radius:50%;width:17px;height:17px;transition:all .18s;display:block}.toggle.on{background:var(--teal)}.toggle.on i{transform:translate(17px)}.calendar-events{overflow:hidden}.calendar-events-tools{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:15px;padding:17px 19px;display:flex}.calendar-events-tools h3{margin:0;font-size:13px}.calendar-events-tools p{color:var(--muted);margin:4px 0 0;font-size:8px}.calendar-events-tools>div:last-child{gap:7px;display:flex}.calendar-events-tools input{min-width:180px}.calendar-events-tools input,.calendar-events-tools select{min-height:36px;font-size:9px}.calendar-event-row{border-bottom:1px solid #edf1f6;grid-template-columns:1.1fr 1.3fr .95fr .9fr 1.15fr 1.1fr;align-items:center;gap:10px;min-height:63px;padding:9px 18px;font-size:9px;display:grid}.calendar-event-row:last-child{border-bottom:0}.calendar-event-row:hover:not(.calendar-event-head){background:#fafcff}.calendar-event-head{color:#75849c;background:#f8fafc;min-height:41px;font-size:7px;font-weight:800}.calendar-event-link{color:var(--ink);font:inherit;text-align:left;background:0 0;border:0;padding:0;font-weight:800}.calendar-event-link:hover{color:var(--blue);text-decoration:underline}.calendar-row-actions{flex-wrap:wrap;gap:4px;display:flex}.calendar-row-actions button{border:1px solid var(--line);background:#fff;border-radius:6px;min-height:30px;padding:0 6px;font-size:8px}.calendar-badge{background:#eef2f7;border-radius:20px;align-items:center;gap:4px;width:max-content;max-width:100%;padding:5px 8px;font-size:7px;font-weight:800;display:inline-flex}.calendar-badge.event-holiday,.calendar-badge.event-vacation,.calendar-badge.event-class-day-off{color:#b91c1c;background:#ffedef}.calendar-badge.event-exam{color:#a16207;background:#fff3db}.calendar-badge.event-special-school-day{color:#15803d;background:#e8faf1}.calendar-badge.event-school-event{color:#6d28d9;background:#f1eafe}.calendar-badge.event-emergency-closure{color:#881337;background:#ffe4e6}.calendar-modal{text-align:left;width:min(820px,100%)}.calendar-modal-head{align-items:center;justify-content:space-between!important;margin:0 0 18px!important;display:flex!important}.calendar-modal-head h2{margin:0}.calendar-modal-head button{color:#61718b;background:#f2f5f9;border:0;border-radius:8px;width:36px;height:36px;font-size:20px}.modal-intro{margin:-5px 0 18px!important}.calendar-form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.calendar-form-grid.compact{grid-template-columns:1fr}.calendar-form-grid label{color:#596a83;flex-direction:column;gap:5px;font-size:9px;font-weight:750;display:flex}.calendar-form-grid input,.calendar-form-grid select,.calendar-form-grid textarea{width:100%}.calendar-form-grid textarea{resize:vertical;border:1px solid var(--line);font:inherit;border-radius:8px;padding:10px}.calendar-switch{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;min-height:44px;padding:8px 10px;flex-direction:row!important}.calendar-switch input{width:36px;height:20px;accent-color:var(--teal)}.field-error{color:#c62828;font-size:8px;font-weight:600}.calendar-preview{background:#f6f9fd;border-radius:11px;margin-top:17px;padding:15px}.calendar-preview h3{margin:0 0 11px}.calendar-preview>div{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.calendar-preview span{color:#718098;background:#fff;border:1px solid #e1e7f0;border-radius:8px;padding:10px;font-size:8px}.calendar-preview strong{color:var(--ink);margin-bottom:3px;font-size:16px;display:block}.calendar-warning{background:#fff5df;border-radius:7px;padding:9px;color:#8a5a05!important;margin:9px 0 0!important}.event-form>h3{margin:18px 0 10px;font-size:11px}.event-form>h3:first-child{margin-top:0}.span-two{grid-column:1/-1}.class-checks{border:1px solid var(--line);border-radius:9px;flex-wrap:wrap;gap:7px;padding:10px;display:flex}.class-checks legend{color:#596a83;padding:0 5px;font-size:9px;font-weight:750}.class-checks label{border:1px solid #e4e9f0;border-radius:6px;flex-direction:row;align-items:center;min-width:54px;padding:7px}.class-checks input{width:auto}.attendance-impact{gap:9px;display:flex}.attendance-impact label{border:1px solid var(--line);border-radius:8px;flex:1;align-items:center;gap:8px;min-height:44px;padding:10px;font-size:9px;display:flex}.attendance-impact input{accent-color:var(--blue)}.day-detail-summary{background:#f5f8fc;border-radius:9px;justify-content:space-between;align-items:center;padding:13px;display:flex}.day-detail-summary span{color:var(--muted);font-size:9px}.day-event-list{gap:12px;margin-top:14px;display:grid}.day-event-list article{border:1px solid var(--line);border-radius:10px;padding:15px}.day-event-list article>div:first-child{align-items:center;gap:8px;display:flex}.day-event-list h3{margin:0}.day-event-list p{color:var(--muted);font-size:10px}.day-event-list dl{grid-template-columns:1fr 1fr;gap:9px;margin:12px 0;display:grid}.day-event-list dl>div{background:#f8fafc;border-radius:7px;padding:9px}.day-event-list dt{color:#79869a;font-size:7px;font-weight:800}.day-event-list dd{margin:3px 0 0;font-size:9px}.detail-actions{justify-content:flex-end;gap:7px;display:flex}.settings-grid{grid-template-columns:1fr 1fr;gap:17px;margin-bottom:17px;display:grid}.settings-card .panel-heading{padding:0 0 18px}.settings-card>label{margin-bottom:13px}.user-card{border-bottom:1px solid #edf1f6;grid-template-columns:40px 1fr auto;align-items:center;gap:10px;padding:12px 0;display:grid}.user-card strong,.user-card small{display:block}.user-card strong{font-size:11px}.user-card small{color:var(--muted);margin-top:3px;font-size:9px}.settings-card>.wide{margin-top:15px}.audit-card{overflow:hidden}.audit-card .table-row{grid-template-columns:1fr 1.2fr 1.3fr 1.2fr}.functional-settings-grid{align-items:start}.functional-settings-grid .settings-card{min-width:0;min-height:560px}.settings-page-title .primary{min-width:190px}.settings-panel-heading{border-bottom:1px solid #edf1f6;justify-content:space-between;align-items:flex-start;gap:12px;padding-bottom:18px;display:flex}.settings-panel-heading>div{align-items:center;gap:11px;min-width:0;display:flex}.settings-panel-heading h2{margin:0;font-size:15px}.settings-panel-heading p{color:var(--muted);margin:4px 0 0;font-size:9px}.settings-panel-heading>small{color:#8190a4;white-space:nowrap;font-size:8px}.settings-panel-icon{width:34px;height:34px;color:var(--blue);background:#edf3ff;border-radius:9px;flex:none;place-items:center;font-weight:900;display:grid}.settings-panel-icon.people{color:var(--teal);background:#e8faf7}.settings-panel-icon.audit-icon{color:var(--orange);background:#fff4dc}.compact-button{white-space:nowrap;min-height:36px;padding:0 11px;font-size:9px}.policy-fields{grid-template-columns:1fr 1fr;gap:12px;padding:20px 0 13px;display:grid}.policy-fields label,.settings-form-grid label{color:#596a83;flex-direction:column;gap:6px;font-size:9px;font-weight:750;display:flex}.policy-fields input{width:100%}.policy-switch{border-top:1px solid #edf1f6;justify-content:space-between;align-items:center;gap:14px;min-height:68px;display:flex}.policy-switch>span{min-width:0}.policy-switch strong,.policy-switch small{display:block}.policy-switch strong{color:#34445d;font-size:10px}.policy-switch small{color:#8390a2;margin-top:4px;font-size:8px;font-weight:500}.settings-meta{color:#7c899c;background:#f7f9fc;border-radius:9px;justify-content:space-between;gap:12px;margin-top:18px;padding:12px;font-size:8px;display:flex}.settings-meta strong{color:#45556d;text-align:right}.user-filters{grid-template-columns:minmax(0,1.4fr) minmax(100px,.75fr) minmax(110px,.85fr);gap:7px;margin:16px 0 7px;display:grid}.user-filters input,.user-filters select{min-width:0;min-height:36px;padding:0 9px;font-size:8px}.managed-user-list{min-height:353px}.managed-user{text-align:left;background:#fff;border:0;border-bottom:1px solid #edf1f6;grid-template-columns:36px minmax(100px,1fr) auto minmax(70px,auto) 15px;align-items:center;gap:9px;width:100%;min-height:75px;padding:9px 2px;display:grid}.managed-user:hover{background:#f9fbfe}.managed-user-name{min-width:0}.managed-user-name strong,.managed-user-name small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.managed-user-name strong{font-size:10px}.managed-user-name small{color:var(--muted);margin-top:4px;font-size:8px}.status-chip{color:#168345;white-space:nowrap;background:#e8faf1;border-radius:20px;justify-content:center;align-items:center;width:max-content;min-height:23px;padding:0 8px;font-size:7px;font-style:normal;font-weight:800;display:inline-flex}.status-chip.inactive{color:#64748b;background:#edf1f5}.status-chip.invited{color:#a16207;background:#fff4dc}.assignment-chips{justify-content:flex-end;gap:4px;max-width:105px;display:flex;overflow:hidden}.chip{min-height:23px;color:var(--blue);white-space:nowrap;background:#edf3ff;border-radius:6px;justify-content:center;align-items:center;padding:0 7px;font-size:7px;font-style:normal;font-weight:800;display:inline-flex}.admin-chip{color:#15803d;background:#e8faf1}.muted-chip{color:#738198;background:#f1f4f8}.user-chevron{color:#8b9ab0;font-size:18px}.settings-pagination{color:#8190a4;justify-content:space-between;align-items:end;gap:10px;min-height:47px;padding-top:10px;font-size:8px;display:flex}.settings-pagination>div{align-items:center;gap:5px;display:flex}.settings-pagination button,.settings-pagination b{border:1px solid var(--line);background:#fff;border-radius:7px;place-items:center;width:30px;height:30px;display:grid}.settings-pagination b{color:var(--blue);background:#edf3ff}.settings-empty{color:#8190a4;text-align:center;place-content:center;justify-items:center;min-height:270px;display:grid}.settings-empty>span{font-size:28px}.settings-empty strong{color:#43536b;margin-top:8px}.settings-empty p{font-size:9px}.audit-heading{border-bottom:1px solid #edf1f6;padding:17px 20px}.settings-skeleton{background:linear-gradient(90deg,#fff 25%,#f4f6f9 45%,#fff 65%) 0 0/300% 100%;min-height:560px;animation:1s infinite alternate pulse}.settings-error{text-align:center;max-width:520px;margin:70px auto;padding:38px}.settings-error>span{width:48px;height:48px;color:var(--red);background:#ffedef;border-radius:50%;place-items:center;margin:auto;font-size:22px;font-weight:900;display:grid}.settings-error h2{margin:15px 0 6px}.settings-error p{color:var(--muted)}.settings-dialog-backdrop{z-index:150;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0a183094;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.settings-dialog{background:#fff;border-radius:16px;width:min(560px,100%);max-height:94vh;overflow:auto;box-shadow:0 30px 90px #00000040}.settings-dialog.wide-dialog{width:min(760px,100%)}.settings-dialog>header,.settings-drawer>header{border-bottom:1px solid var(--line);z-index:2;background:#fff;justify-content:space-between;align-items:flex-start;gap:15px;min-height:76px;padding:19px 22px;display:flex;position:sticky;top:0}.settings-dialog h2,.settings-drawer h2{margin:0;font-size:18px}.settings-dialog header p,.settings-drawer header p{color:var(--muted);margin:5px 0 0;font-size:9px}.settings-dialog header>button,.settings-drawer header>button{color:#65758b;background:#f1f4f8;border:0;border-radius:8px;width:36px;height:36px;font-size:20px}.settings-dialog-body{padding:22px}.settings-dialog>footer{border-top:1px solid var(--line);background:#fff;justify-content:flex-end;gap:8px;padding:15px 22px;display:flex;position:sticky;bottom:0}.change-list{gap:8px;display:grid}.change-list>div{border:1px solid var(--line);border-radius:8px;justify-content:space-between;gap:12px;padding:11px;display:flex}.change-list strong{font-size:9px}.change-list span{color:#586a82;text-align:right;font-size:9px}.impact-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0;display:grid}.impact-grid span{text-align:center;color:#718098;background:#f5f8fc;border-radius:9px;padding:12px 5px;font-size:7px}.impact-grid strong{color:var(--ink);margin-bottom:4px;font-size:19px;display:block}.impact-note{color:#7a570e;background:#fff5df;border-radius:8px;padding:11px;font-size:9px;line-height:1.55}.settings-form-grid{grid-template-columns:1fr 1fr;gap:13px;display:grid}.settings-form-grid input,.settings-form-grid select{width:100%}.settings-form-grid .span-two{grid-column:1/-1}.check-field{align-items:center;min-height:42px;flex-direction:row!important}.check-field input{width:16px;min-height:auto}.class-picker{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;grid-column:1/-1;gap:7px;padding:12px;display:flex}.class-picker legend{color:#596a83;padding:0 5px;font-size:9px;font-weight:750}.class-picker label{color:#34445d;border:1px solid #e5eaf1;border-radius:7px;flex-direction:row;align-items:center;min-width:70px;padding:8px}.class-picker input{width:15px;min-height:auto}.class-picker small{color:#8290a4;font-size:7px}.drawer-backdrop{place-items:stretch end;padding:0}.settings-drawer{background:#fff;width:min(520px,100%);height:100%;overflow:auto;box-shadow:-20px 0 60px #0003}.settings-drawer .settings-dialog-body{padding:22px}.user-detail-hero{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding-bottom:20px;display:flex}.large-avatar{width:52px;height:52px;font-size:14px}.user-detail-hero h3{margin:0;font-size:18px}.user-detail-hero p{color:var(--muted);margin:5px 0 9px;font-size:9px}.user-detail-hero i{margin-right:5px}.user-detail-grid{grid-template-columns:1fr 1fr;gap:9px;margin:17px 0;display:grid}.user-detail-grid>div{background:#f7f9fc;border-radius:8px;padding:11px}.user-detail-grid dt{color:#7b899d;font-size:7px;font-weight:800}.user-detail-grid dd{margin:5px 0 0;font-size:9px}.assignment-section{margin-top:19px}.assignment-section>div{justify-content:space-between;align-items:center;gap:10px;display:flex}.assignment-section h3{margin:0;font-size:11px}.assignment-section article{border:1px solid var(--line);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;padding:10px;display:flex}.assignment-section article strong,.assignment-section article small{display:block}.assignment-section article strong{font-size:10px}.assignment-section article small{color:var(--muted);margin-top:3px;font-size:8px}.assignment-section article button{border:1px solid var(--line);color:#b42318;background:#fff;border-radius:6px;min-height:30px;font-size:8px}.assignment-section.history article{background:#f8fafc}.muted-copy{color:#8390a2;font-size:9px}.user-action-grid{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8px;margin-top:24px;padding-top:18px;display:grid}.danger-outline{color:#d92d20;background:#fff;border:1px solid #ef4444;border-radius:8px;min-height:42px;font-size:10px;font-weight:700}.one-time-link{color:#2459b9;overflow-wrap:anywhere;background:#f4f8ff;border:1px dashed #8fb0ef;border-radius:9px;padding:14px;font:10px ui-monospace,SFMono-Regular,Consolas,monospace}.correction-reason{text-align:left;color:#596a83;flex-direction:column;gap:6px;font-size:9px;font-weight:750;display:flex}.correction-reason textarea{resize:vertical;min-height:76px;padding:9px}.grade-group-panel{margin-bottom:16px;padding:18px}.class-section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:13px;display:flex}.class-section-heading h2{margin:0;font-size:15px}.class-section-heading p{color:var(--muted);margin:5px 0 0;font-size:9px}.class-section-heading>span{color:#087f72;background:#eaf7f5;border-radius:999px;padding:7px 10px;font-size:8px;font-weight:800}.grade-group-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.grade-group-list article{background:#fff;border:1px solid #e2e8f1;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:10px;display:flex}.grade-group-list article.archived{opacity:.8;background:#f7f8fa}.grade-group-list .group-main{text-align:left;background:0 0;border:0;flex:1;min-width:0;padding:0}.group-main strong,.group-main small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.group-main strong{color:var(--ink);font-size:10px}.group-main small{color:var(--muted);margin-top:4px;font-size:7px}.grade-group-list article>div{flex-direction:column;align-items:flex-end;gap:3px;display:flex}.grade-group-list article>div button{color:var(--blue);background:0 0;border:0;font-size:7px;font-weight:750}.grade-group-list article>div .danger-text{color:var(--red)}.restore-text{color:#087f72!important}.class-server-filters select{min-width:155px}.class-warning{color:#76550a;background:#fff9e8;border-left:4px solid #e9a400;margin-bottom:14px;padding:13px 15px;font-size:10px}.class-inline-loading,.class-inline-error{color:#365f9e;background:#eef4ff;border-radius:8px;margin:-6px 0 12px;padding:8px 12px;font-size:9px}.class-inline-error{color:#a1262f;background:#fff0f1;justify-content:space-between;align-items:center;display:flex}.class-inline-error button{color:#9d1824;background:0 0;border:0;font-size:8px;font-weight:800}.classes-skeleton{background:linear-gradient(90deg,#fff 25%,#f2f5f9 45%,#fff 65%) 0 0/300% 100%;min-height:520px;animation:1s infinite alternate pulse}.classes-error{text-align:center;max-width:520px;margin:60px auto;padding:38px}.classes-error>span{width:48px;height:48px;color:var(--red);background:#ffedef;border-radius:50%;place-items:center;margin:auto;font-size:22px;font-weight:900;display:grid}.classes-error h2{margin:15px 0 6px}.classes-error p{color:var(--muted)}.archived-class-card{background:#f8fafc;border-style:dashed}.class-status{border-radius:999px;width:max-content;margin-top:13px;padding:5px 8px;font-size:7px;font-weight:800;display:inline-flex}.class-status.active{color:#087f72;background:#e8f8f2}.class-status.archived{color:#68778d;background:#eceff4}.class-teacher-fields{border-top:1px solid var(--line);margin-top:13px;padding-top:13px}.calendar-grid>button.has-scoped-events{background:#f6f8fb;box-shadow:inset 0 0 0 1px #93a4bd}.calendar-grid>button.has-scoped-events.weekend{background:#f4f6f9}.scoped-event-count{color:#53647c!important}.legend-scoped{background:#93a4bd!important}.calendar-scope-summary{border:1px solid #cad8ef;border-left:4px solid var(--blue);background:#f5f8ff;border-radius:9px;gap:4px;padding:12px;display:grid}.calendar-scope-summary strong{color:#244d91;font-size:10px}.calendar-scope-summary span{color:#34445d;font-size:10px}.calendar-scope-summary small{color:#718098;font-size:8px}.calendar-impact-stat,.calendar-impact-classes{border:1px solid var(--line);background:#f8fafc;border-radius:9px;margin:10px 0;padding:12px}.calendar-impact-stat span,.calendar-impact-stat small,.calendar-impact-classes strong{color:#718098;font-size:8px;display:block}.calendar-impact-stat strong{margin:5px 0;font-size:18px;display:block}.calendar-impact-classes p{color:#40516a;margin:6px 0 0;font-size:9px;line-height:1.5}.calendar-impact-conflicts{gap:7px;margin:12px 0;display:grid}.calendar-impact-conflicts p{color:#7a570e;background:#fff5df;border-radius:8px;margin:0;padding:10px;font-size:9px}.calendar-impact-conflicts p.critical{color:#a1262f;background:#ffedef}.audit-filters{border-bottom:1px solid var(--line);grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:14px 20px;display:grid}.audit-filters select,.audit-filters input{width:100%;min-width:0;min-height:36px;padding:0 8px;font-size:8px}.audit-loading{color:#365f9e;background:#eef4ff;padding:10px 20px;font-size:9px}.audit-table .audit-row{text-align:left;cursor:pointer;background:#fff;border:0;border-bottom:1px solid #edf1f6;width:100%}.audit-table .audit-row:hover{background:#f7f9fc}.audit-detail-meta{grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 15px;display:grid}.audit-detail-meta>div{background:#f7f9fc;border-radius:8px;padding:10px}.audit-detail-meta dt{color:#78869a;font-size:7px;font-weight:800}.audit-detail-meta dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:9px}.audit-json-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.audit-json-grid section{min-width:0}.audit-json-grid h3{font-size:10px}.audit-json-grid pre{color:#d9e2f0;white-space:pre-wrap;overflow-wrap:anywhere;background:#101828;border-radius:8px;max-height:310px;margin:0;padding:12px;font:8px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.toast{z-index:200;border:1px solid var(--line);border-left:4px solid var(--blue);background:#fff;border-radius:10px;grid-template-columns:28px 1fr 22px;align-items:center;gap:8px;min-width:310px;max-width:440px;padding:14px;font-size:11px;display:grid;position:fixed;bottom:92px;right:24px;box-shadow:0 18px 50px #10203a2e}.toast>span{width:25px;height:25px;color:var(--blue);background:#eaf1ff;border-radius:50%;place-items:center;font-weight:800;display:grid}.toast.success{border-left-color:var(--green)}.toast.success>span{color:var(--green);background:#e8faf1}.toast.error{border-left-color:var(--red)}.toast.error>span{color:var(--red);background:#ffedef}.toast button{color:#75849a;background:0 0;border:0;font-size:18px}.loading-screen{background:#f7f9fd;place-content:center;justify-items:center;gap:15px;min-height:100vh;display:grid}.logo-mark{color:#fff;background:var(--teal);border-radius:14px;place-items:center;width:54px;height:54px;font-size:24px;font-weight:900;display:grid}.loading-line{background:linear-gradient(90deg,var(--blue) 0 55%,#dce4ef 55%);border-radius:3px;width:170px;height:3px;animation:1s infinite alternate pulse}.loading-screen p{color:var(--muted);font-size:11px}.login-page{background:#f5f8fc;grid-template-columns:1.12fr .88fr;min-height:100vh;display:grid}.login-story{background:var(--navy);color:#fff;flex-direction:column;justify-content:space-between;min-height:100vh;padding:54px clamp(40px,7vw,105px);display:flex;position:relative;overflow:hidden}.brand-static{z-index:2;padding:0;position:relative}.login-story>div:nth-child(2){z-index:2;margin-top:auto;margin-bottom:46px;position:relative}.eyebrow{letter-spacing:1.6px;font-weight:800;color:#5dd9cd!important;font-size:10px!important}.login-story h1{letter-spacing:-1.8px;margin:17px 0 25px;font-size:clamp(38px,4.4vw,65px);line-height:1.08}.login-story p{color:#aebbd0;max-width:610px;font-size:14px;line-height:1.7}.login-features{z-index:2;grid-template-columns:repeat(3,1fr);gap:10px;display:grid;position:relative}.login-features>div{background:#ffffff13;border:1px solid #ffffff1a;border-radius:12px;padding:17px}.login-features strong,.login-features span{display:block}.login-features strong{font-size:18px}.login-features span{color:#aebbd0;margin-top:4px;font-size:9px}.orbit{border:55px solid #fffffff0;border-radius:50%;position:absolute}.orbit-one{width:350px;height:350px;bottom:-160px;left:-205px}.orbit-two{border-color:#0000 #ffffff0d #ffffff0d #0000;width:540px;height:540px;bottom:-285px;left:-280px}.login-form-side{place-items:center;padding:40px;display:grid}.login-card{width:min(420px,100%);box-shadow:var(--shadow);background:#fff;border:1px solid #e0e7f1;border-radius:17px;padding:35px}.login-card h2{margin:0;font-size:24px}.login-card>p{color:var(--muted);margin:8px 0 26px;font-size:11px}.login-card>label{flex-direction:column;gap:7px;margin-bottom:17px;font-size:9px;font-weight:800;display:flex}.login-card input{width:100%;min-height:49px}.login-options{justify-content:space-between;align-items:center;margin:-2px 0 20px;display:flex}.login-options label{color:var(--muted);align-items:center;gap:6px;font-size:9px;display:flex}.login-options input{width:14px;min-height:auto}.login-options button{color:var(--blue);background:0 0;border:0;font-size:9px;font-weight:700}.login-card>.primary{min-height:50px}.login-card>small{text-align:center;color:#8b99ad;margin-top:26px;font-size:9px;display:block}.logo-mobile{display:none}.demo-accounts{gap:8px;margin-top:10px;display:flex}.demo-accounts button{border:1px solid var(--line);min-height:36px;color:var(--blue);background:#f8faff;border-radius:7px;flex:1;font-size:9px;font-weight:700}.recovery-result{color:#246647;background:#f1fbf6;border:1px solid #cfe8dc;border-radius:9px;gap:14px;margin:0 0 16px;padding:12px;font-size:10px;line-height:1.5;display:grid}.recovery-result p{margin:0}.login-back-button{width:100%;color:var(--blue);background:0 0;border:0;margin-top:14px;font-size:10px;font-weight:750}@keyframes pulse{50%{opacity:.5}}@keyframes attendance-pulse{to{opacity:.72;background-position:100% 0}}@media (max-width:1050px){.sidebar{width:220px}.main-shell{width:calc(100% - 220px);margin-left:220px}.attendance-footer{left:220px}.page-wrap,.topbar{padding-left:25px;padding-right:25px}.student-table-head,.attendance-row{grid-template-columns:35px minmax(180px,.8fr) minmax(410px,1.7fr)}.student-table-head span:last-child,.row-note{display:none}.period-kpis{grid-template-columns:repeat(3,1fr)}.class-grid{grid-template-columns:repeat(2,1fr)}.login-story{padding:45px}.login-story h1{font-size:44px}}@media (max-width:790px){body{font-size:13px}.sidebar{width:252px;transition:all .22s;transform:translate(-105%);box-shadow:20px 0 50px #00000038}.sidebar-open{transform:translate(0)}.backdrop{z-index:35;background:#0813266b;border:0;position:fixed;inset:0}.main-shell{width:100%;margin-left:0}.topbar{height:62px;padding:0 14px}.menu-button{display:block}.topbar>div:nth-child(2){display:none}.year-pill{padding:8px 10px;font-size:9px}.page-wrap{padding:23px 14px 105px}.page-title{flex-direction:column}.page-title h1{font-size:25px}.page-actions{width:100%}.page-actions>*{flex:1}.kpi-grid{grid-template-columns:1fr 1fr}.kpi{min-height:100px;padding:14px}.kpi strong{font-size:21px}.dashboard-grid,.analytics-grid,.calendar-layout,.settings-grid{grid-template-columns:minmax(0,1fr)}.dashboard-grid>*,.analytics-grid>*{width:100%;min-width:0}.donut-panel{min-height:255px}.donut-panel .legend{overflow-wrap:anywhere;min-width:0}.risk-panel{margin-bottom:15px}.attendance-toolbar{flex-direction:column;align-items:stretch}.filters{grid-template-columns:1fr 1fr;display:grid}.search-label{grid-column:1/-1;max-width:none}.filters select{width:100%;min-width:0}.attendance-toolbar>.secondary{width:100%}.attendance-session-banner{flex-direction:column;align-items:flex-start}.attendance-session-banner span{text-align:left}.live-counters{grid-template-columns:repeat(4,1fr);gap:5px}.live-counters>div{flex-direction:column;align-items:flex-start;min-height:59px;padding:9px}.live-counters>p{text-align:left;grid-column:1/-1;margin:2px 0 0}.student-table-head{display:none}.student-table{background:0 0;border:0;overflow:visible}.attendance-row{background:#fff;border:1px solid #dfe6f1;border-radius:12px;grid-template-columns:32px 1fr;gap:10px;min-height:auto;margin-bottom:9px;padding:13px}.attendance-row.focused{box-shadow:inset 3px 0 var(--blue)}.status-buttons{grid-column:1/-1;grid-template-columns:repeat(4,1fr)}.status-buttons button{border:1px solid #e4e9f1;border-radius:8px;min-height:44px;padding:3px;font-size:8px}.status-buttons button i{margin:0 auto 2px;display:block!important}.row-note{grid-column:1/-1;display:block}.shortcut-help{display:none}.attendance-footer{min-height:78px;padding:9px 14px;left:0}.attendance-footer>div:first-child{display:none}.attendance-footer>div:last-child{width:100%}.attendance-footer button{flex:1;min-height:49px;padding:0 7px;font-size:10px}.modal{padding:23px 17px}.modal-summary{gap:5px}.modal-summary b{padding:10px 2px;font-size:16px}.segmented{width:100%;overflow:auto}.segmented button{white-space:nowrap;flex:1;padding:0 13px}.analytics-controls{flex-direction:column;align-items:stretch}.analytics-controls>label,.school-scope{width:100%;min-width:0}.analytics-status-strip{grid-template-columns:repeat(3,1fr)}.analytics-loading{grid-template-columns:1fr}.analytics-trend-chart{padding:14px 10px}.analytics-trend-column{min-width:43px}.analytics-comparison-table .table-row,.table-row{grid-template-columns:1.5fr 1fr 1fr!important}.table-row>:nth-child(n+4){display:none}.students-table .table-row{grid-template-columns:1.5fr .8fr .7fr auto!important}.students-table .table-row>:last-child{display:flex}.students-table .row-actions{flex-direction:column;align-items:stretch}.students-table .row-actions button{min-height:30px;padding:0 6px}.period-kpis{display:flex;overflow:auto}.period-kpis .kpi{min-width:130px}.heatmap-calendar{padding:0 12px}.heatmap{grid-auto-columns:16px}.heatmap-summary,.heatmap-legend{padding-left:12px;padding-right:12px}.class-grid,.report-grid{grid-template-columns:1fr}.grade-group-list{grid-template-columns:1fr 1fr}.class-server-filters select{flex:1;min-width:0}.student-server-filters{grid-template-columns:1fr 1fr}.student-server-filters input{grid-column:1/-1}.student-pagination{flex-direction:column;align-items:flex-start}.student-pagination>div{width:100%;overflow:auto}.student-profile-grid,.restore-card{grid-template-columns:1fr}.restore-card h3,.restore-card p,.restore-card button{grid-column:auto}.enrollment-history article{grid-template-columns:1fr}.report-filter-grid{grid-template-columns:1fr;padding:0 14px 14px}.report-submit{flex-direction:column;align-items:stretch;padding:14px}.report-submit button{width:100%;min-height:44px}.filter-strip{flex-wrap:wrap}.filter-strip input.grow{flex-basis:100%}.form-grid,.import-grid{grid-template-columns:1fr}.dropzone{height:180px}.import-preview-stats{grid-template-columns:repeat(2,1fr)}.error-downloads button{flex:1}.steps{grid-template-columns:1fr 1fr;gap:12px}.quick-report>div:last-child{grid-template-columns:1fr}.calendar-title .page-actions{grid-template-columns:1fr 1fr;display:grid}.calendar-title .year-selector{grid-column:1/-1;width:100%}.calendar-card{padding:12px}.calendar-grid{gap:3px}.calendar-grid>button{height:52px;min-height:44px;padding:4px}.calendar-grid>button small{font-size:0}.calendar-grid>button small span{font-size:8px}.calendar-legend{gap:8px 11px}.calendar-events-tools{flex-direction:column;align-items:stretch}.calendar-events-tools>div:last-child{grid-template-columns:1fr 1fr;width:100%;display:grid}.calendar-events-tools input{grid-column:1/-1;min-width:0}.calendar-event-head{display:none}.calendar-event-row{border:1px solid var(--line);cursor:default;border-radius:10px;grid-template-columns:1fr;gap:8px;margin:10px;padding:13px}.calendar-event-row>span:not(.calendar-row-actions),.calendar-event-row>strong{grid-template-columns:100px 1fr;align-items:start;gap:8px;display:grid}.calendar-event-row>[data-label]:before{content:attr(data-label);color:#7a8799;font-size:7px;font-weight:800}.calendar-row-actions{padding-top:5px}.calendar-row-actions button{flex:1;min-height:44px}.calendar-modal{max-height:96vh;padding:19px 15px}.calendar-form-grid,.calendar-preview>div{grid-template-columns:1fr}.span-two{grid-column:auto}.attendance-impact{flex-direction:column}.day-event-list dl{grid-template-columns:1fr}.settings-card{padding:16px}.settings-page-title .page-actions,.settings-page-title .primary{width:100%}.functional-settings-grid .settings-card{min-height:0}.policy-fields,.settings-form-grid{grid-template-columns:1fr}.settings-form-grid .span-two,.class-picker{grid-column:auto}.user-filters{grid-template-columns:1fr 1fr}.user-filters input{grid-column:1/-1;min-height:44px}.user-filters select{min-height:44px}.managed-user-list{min-height:0}.managed-user{border:1px solid var(--line);border-radius:10px;grid-template-rows:auto auto;grid-template-columns:40px minmax(0,1fr) auto;min-height:104px;margin:9px 0;padding:12px 4px}.managed-user .avatar{grid-row:1/3}.managed-user-name{grid-column:2/3}.managed-user .status-chip{grid-column:3/4}.assignment-chips{flex-wrap:wrap;grid-column:2/4;justify-content:flex-start;max-width:100%;overflow:visible}.user-chevron{display:none}.settings-panel-heading{flex-wrap:wrap}.settings-panel-heading .compact-button{width:100%;min-height:44px}.impact-grid{grid-template-columns:1fr 1fr}.settings-dialog-backdrop{padding:8px}.settings-dialog{border-radius:13px;max-height:97vh}.settings-dialog>header,.settings-drawer>header,.settings-dialog-body,.settings-drawer .settings-dialog-body{padding:16px}.settings-dialog>footer{padding:12px 16px}.settings-dialog>footer button{flex:1;min-height:44px}.settings-drawer{width:100%}.user-detail-grid,.user-action-grid{grid-template-columns:1fr}.user-action-grid button{min-height:44px}.assignment-section article{flex-direction:column;align-items:flex-start}.assignment-section article button{width:100%;min-height:44px}.toast{min-width:0;bottom:88px;left:14px;right:14px}.audit-filters{grid-template-columns:1fr 1fr;padding:12px 14px}.audit-filters select:first-child{grid-column:1/-1}.audit-detail-meta,.audit-json-grid{grid-template-columns:1fr}.audit-json-grid pre{max-height:220px}.calendar-scope-summary{grid-column:auto}.login-page{grid-template-columns:1fr}.login-story{display:none}.login-form-side{min-height:100vh;padding:20px}.login-card{padding:27px 22px}.logo-mobile{align-items:center;gap:9px;margin-bottom:30px;font-size:18px;font-weight:800;display:flex}}@media (max-width:390px){.page-wrap{padding-left:10px;padding-right:10px}.topbar{padding:0 10px}.page-title h1{font-size:23px}.grade-group-list{grid-template-columns:1fr}.live-counters>div{padding:8px 6px}.live-counters span{font-size:8px}.student-identity strong{font-size:10px}.attendance-row{padding:11px 9px}.status-buttons{gap:3px}.status-buttons button{font-size:7.5px}.functional-settings-grid{gap:10px}.settings-card{padding:13px}.policy-fields{gap:9px}.settings-pagination{align-items:center}.settings-dialog h2,.settings-drawer h2{font-size:16px}.change-list>div{flex-direction:column}.change-list span{text-align:left}}@media print{.sidebar,.topbar,.page-actions,.attendance-footer,.toast{display:none!important}.main-shell{width:100%;margin:0}.page-wrap{max-width:none;padding:20px}.panel,.kpi{break-inside:avoid;box-shadow:none}}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
