@font-face{font-family:__Inter_d8ebd1;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:__Inter_d8ebd1;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:__Inter_d8ebd1;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:__Inter_d8ebd1;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:__Inter_d8ebd1;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Inter_d8ebd1;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Inter_d8ebd1;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Inter_Fallback_d8ebd1;src:local("Arial");ascent-override:90.49%;descent-override:22.56%;line-gap-override:0.00%;size-adjust:107.06%}.__className_d8ebd1{font-family:__Inter_d8ebd1,__Inter_Fallback_d8ebd1;font-style:normal}.__variable_d8ebd1{--font-sans:"__Inter_d8ebd1","__Inter_Fallback_d8ebd1"}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root,[data-theme=light]{color-scheme:light;--color-bg:#f8fafc;--color-surface:#fff;--color-surface-muted:#f1f5f9;--color-border:#e2e8f0;--color-border-strong:#8391a7;--color-text:#0f172a;--color-text-muted:#475569;--color-text-subtle:#5b6778;--color-primary:#4f46e5;--color-primary-dark:#4338ca;--color-primary-light:#c7d2fe;--color-primary-bg:#eef2ff;--color-on-primary:#fff;--color-accent:#f59e0b;--color-accent-dark:#b45309;--color-accent-light:#fde68a;--color-accent-bg:#fffbeb;--color-on-accent:#451a03;--color-focus:#4f46e5;--color-success:#15803d;--color-success-bg:#f0fdf4;--color-warning:#b45309;--color-warning-bg:#fffbeb;--color-danger:#b91c1c;--color-danger-bg:#fef2f2;--color-on-danger:#fff;--color-info:#0369a1;--color-info-bg:#f0f9ff;--color-overlay:rgba(15,23,42,.5);--shadow-sm:0 1px 2px 0 rgba(15,23,42,.06);--shadow-md:0 4px 12px -2px rgba(15,23,42,.1);--shadow-lg:0 20px 40px -8px rgba(15,23,42,.25)}[data-theme=dark]{color-scheme:dark;--color-bg:#020617;--color-surface:#0f172a;--color-surface-muted:#1e293b;--color-border:#1e293b;--color-border-strong:#64748b;--color-text:#f1f5f9;--color-text-muted:#cbd5e1;--color-text-subtle:#94a3b8;--color-primary:#818cf8;--color-primary-dark:#a5b4fc;--color-primary-light:#3730a3;--color-primary-bg:#1e1b4b;--color-on-primary:#1e1b4b;--color-accent:#fbbf24;--color-accent-dark:#fcd34d;--color-accent-light:#78350f;--color-accent-bg:#2a1804;--color-on-accent:#451a03;--color-focus:#a5b4fc;--color-success:#4ade80;--color-success-bg:#052e16;--color-warning:#fbbf24;--color-warning-bg:#2a1804;--color-danger:#f87171;--color-danger-bg:#450a0a;--color-on-danger:#450a0a;--color-info:#38bdf8;--color-info-bg:#082f49;--color-overlay:rgba(2,6,23,.72);--shadow-sm:0 1px 2px 0 rgba(0,0,0,.4);--shadow-md:0 4px 12px -2px rgba(0,0,0,.5);--shadow-lg:0 20px 40px -8px rgba(0,0,0,.7)}:root{--color-attendance-present:var(--color-success);--color-attendance-absent:var(--color-danger);--color-attendance-late:var(--color-warning);--color-attendance-excused:var(--color-info);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-full:9999px;--control-sm:32px;--control-md:40px;--control-lg:44px;--bottom-nav-height:64px;--sidebar-width:256px;--topbar-height:64px;--content-max:1280px;--z-sticky:20;--z-dropdown:30;--z-drawer:40;--z-modal:50;--z-toast:60}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font-sans),ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px;line-height:20px;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-moz-selection{background:var(--color-primary-bg);color:var(--color-primary-dark)}::selection{background:var(--color-primary-bg);color:var(--color-primary-dark)}[tabindex]:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.ui-num{font-variant-numeric:tabular-nums}.ui-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ui-att-opt:focus-visible,.ui-bnav-item:focus-visible,.ui-btn:focus-visible,.ui-check input:focus-visible+.ui-check-box,.ui-focus:focus-visible,.ui-icon-btn:focus-visible,.ui-input:focus-visible,.ui-modal:focus-visible,.ui-nav-item:focus-visible,.ui-page:focus-visible,.ui-select:focus-visible,.ui-tab:focus-visible,.ui-theme:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.ui-link{color:var(--color-primary);font-weight:500;text-decoration:none}.ui-link:hover{color:var(--color-primary-dark);text-decoration:underline}.ui-icon{flex:none;display:inline-block;vertical-align:middle}.ui-btn{font:inherit;font-size:14px;font-weight:500;line-height:20px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-md);padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background-color .15s,border-color .15s,color .15s;text-decoration:none}.ui-btn:disabled,.ui-btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.ui-btn-sm{height:var(--control-sm);padding:0 var(--space-3)}.ui-btn-lg{height:var(--control-lg);padding:0 var(--space-6);font-size:16px}.ui-btn-block{width:100%}.ui-btn-icon-only{padding:0;width:var(--control-md)}.ui-btn-sm.ui-btn-icon-only{width:var(--control-sm)}.ui-btn-primary{background:var(--color-primary);color:var(--color-on-primary)}.ui-btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.ui-btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.ui-btn-secondary:hover:not(:disabled){background:var(--color-surface-muted)}.ui-btn-ghost{background:transparent;color:var(--color-text-muted)}.ui-btn-ghost:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text)}.ui-btn-danger{background:var(--color-danger);color:var(--color-on-danger)}.ui-btn-danger:hover:not(:disabled){filter:brightness(.92)}.ui-spin{width:16px;height:16px;border-radius:var(--radius-full);border:2px solid;border-right:2px solid transparent;animation:ui-spin .7s linear infinite;flex:none}.ui-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--control-md);height:var(--control-md);border-radius:var(--radius-md);border:0;background:transparent;color:var(--color-text-muted);cursor:pointer;flex:none}.ui-icon-btn:hover{background:var(--color-surface-muted);color:var(--color-text)}.ui-badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:12px;line-height:16px;font-weight:500;padding:2px 10px;white-space:nowrap}.ui-badge,.ui-badge-dot:before{border-radius:var(--radius-full)}.ui-badge-dot:before{content:"";width:6px;height:6px;background:currentColor}.ui-badge-neutral{background:var(--color-surface-muted);color:var(--color-text-muted)}.ui-badge-primary{background:var(--color-primary-bg);color:var(--color-primary-dark)}.ui-badge-accent{background:var(--color-accent-bg);color:var(--color-accent-dark)}.ui-badge-success{background:var(--color-success-bg);color:var(--color-success)}.ui-badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.ui-badge-danger{background:var(--color-danger-bg);color:var(--color-danger)}.ui-badge-info{background:var(--color-info-bg);color:var(--color-info)}.ui-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--color-primary-bg);color:var(--color-primary-dark);font-weight:600;overflow:hidden;flex:none}.ui-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.ui-avatar-sm{width:28px;height:28px;font-size:11px}.ui-avatar-md{width:36px;height:36px;font-size:13px}.ui-avatar-lg{width:56px;height:56px;font-size:18px}.ui-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);min-width:0}.ui-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5) 0;flex-wrap:wrap}.ui-card-title{margin:0;font-size:16px;line-height:24px;font-weight:600}.ui-card-body{padding:var(--space-5)}.ui-card-flush .ui-card-head{padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.ui-card-flush .ui-card-body{padding:0}.ui-card-foot{border-top:1px solid var(--color-border)}.ui-input-wrap{position:relative;display:flex;align-items:center;width:100%}.ui-input-wrap>.ui-icon{position:absolute;left:var(--space-3);color:var(--color-text-subtle);pointer-events:none}.ui-input,.ui-select{font:inherit;font-size:16px;width:100%;height:var(--control-md);padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text)}.ui-input::-moz-placeholder{color:var(--color-text-subtle)}.ui-input::placeholder{color:var(--color-text-subtle)}.ui-input-wrap>.ui-icon+.ui-input{padding-left:38px}.ui-input:disabled,.ui-select:disabled{background:var(--color-surface-muted);color:var(--color-text-muted);cursor:not-allowed}.ui-input[aria-invalid=true],.ui-select[aria-invalid=true]{border-color:var(--color-danger)}.ui-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:36px;background-image:none}.ui-select-wrap{position:relative;width:100%}.ui-select-wrap>.ui-icon{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--color-text-muted)}.ui-check{position:relative;display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:14px;min-height:24px}.ui-check input{position:absolute;opacity:0;width:18px;height:18px;margin:0}.ui-check-box{width:18px;height:18px;border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);display:inline-flex;align-items:center;justify-content:center;color:var(--color-on-primary);flex:none}.ui-check input:checked+.ui-check-box{background:var(--color-primary);border-color:var(--color-primary)}.ui-check input:not(:checked)+.ui-check-box .ui-icon{visibility:hidden}.ui-check input:disabled+.ui-check-box{opacity:.55}.ui-field{display:flex;flex-direction:column;gap:6px;min-width:0}.ui-label{font-size:14px;line-height:20px;font-weight:500;color:var(--color-text)}.ui-req{color:var(--color-danger);margin-left:2px}.ui-hint{color:var(--color-text-muted)}.ui-error,.ui-hint{font-size:12px;line-height:16px;margin:0}.ui-error{color:var(--color-danger);display:flex;gap:var(--space-1);align-items:center}.ui-form-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4)}.ui-form-actions{display:flex;flex-direction:column-reverse;gap:var(--space-2);padding-top:var(--space-2)}.ui-form-actions>.ui-btn{width:100%}.ui-stat{padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:var(--space-1)}.ui-stat-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.ui-stat-label{font-size:14px;line-height:20px;color:var(--color-text-muted);font-weight:500}.ui-stat-icon{width:32px;height:32px;border-radius:var(--radius-md);background:var(--color-primary-bg);color:var(--color-primary-dark);display:inline-flex;align-items:center;justify-content:center;flex:none}.ui-stat-value{font-size:24px;line-height:32px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.ui-stat-foot{font-size:12px;line-height:16px;color:var(--color-text-muted);display:flex;flex-wrap:wrap;gap:2px var(--space-1);align-items:center}.ui-stat-foot>span{white-space:nowrap}.ui-trend-down,.ui-trend-up{display:inline-flex;align-items:center;gap:2px}.ui-trend-up{color:var(--color-success);font-weight:600}.ui-trend-down{color:var(--color-danger);font-weight:600}.ui-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.ui-alert{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);border:1px solid transparent;font-size:14px;line-height:20px}.ui-alert-title{font-weight:600;margin:0}.ui-alert-text{margin:0;color:var(--color-text)}.ui-alert-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ui-alert-body>.ui-btn{align-self:flex-start;margin-top:var(--space-2)}.ui-alert-info{background:var(--color-info-bg);border-color:var(--color-info)}.ui-alert-info .ui-alert-title,.ui-alert-info>.ui-icon{color:var(--color-info)}.ui-alert-success{background:var(--color-success-bg);border-color:var(--color-success)}.ui-alert-success .ui-alert-title,.ui-alert-success>.ui-icon{color:var(--color-success)}.ui-alert-warning{background:var(--color-warning-bg);border-color:var(--color-warning)}.ui-alert-warning .ui-alert-title,.ui-alert-warning>.ui-icon{color:var(--color-warning)}.ui-alert-danger{background:var(--color-danger-bg);border-color:var(--color-danger)}.ui-alert-danger .ui-alert-title,.ui-alert-danger>.ui-icon{color:var(--color-danger)}.ui-alert .ui-icon-btn{width:28px;height:28px;margin:-4px -8px -4px 0}.ui-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--color-border);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.ui-tabs::-webkit-scrollbar{display:none}.ui-tab{font:inherit;font-size:14px;font-weight:500;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:10px var(--space-3);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;display:inline-flex;gap:var(--space-2);align-items:center;min-height:var(--control-lg)}.ui-tab:hover{color:var(--color-text)}.ui-tab[aria-selected=true]{color:var(--color-primary);border-bottom-color:var(--color-primary)}.ui-tab-count{font-size:12px;line-height:16px;padding:0 6px;border-radius:var(--radius-full);background:var(--color-surface-muted);color:var(--color-text-muted)}.ui-tab[aria-selected=true] .ui-tab-count{background:var(--color-primary-bg);color:var(--color-primary-dark)}.ui-pager{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:14px;color:var(--color-text-muted)}.ui-pager-pages{display:none;gap:var(--space-1)}.ui-pager-compact{font-variant-numeric:tabular-nums}.ui-page{font:inherit;min-width:36px;height:36px;padding:0 var(--space-2);border-radius:var(--radius-md);border:1px solid transparent;background:none;color:var(--color-text-muted);cursor:pointer;font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;justify-content:center}.ui-page:hover{background:var(--color-surface-muted)}.ui-page[aria-current=page]{background:var(--color-primary-bg);color:var(--color-primary-dark);font-weight:600;border-color:var(--color-primary-light)}.ui-pager-nav{display:flex;gap:var(--space-2);align-items:center}.ui-att{display:inline-flex;gap:var(--space-1);padding:2px;border-radius:var(--radius-md);background:var(--color-surface-muted)}.ui-att-opt{font:inherit;font-size:14px;font-weight:600;width:var(--control-lg);height:var(--control-lg);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}.ui-att-opt:hover:not([aria-checked=true]){background:var(--color-surface);color:var(--color-text)}.ui-att-opt:disabled{cursor:not-allowed;opacity:.55}.ui-att-opt .ui-att-word{display:none}.ui-att-opt[aria-checked=true]{background:var(--color-surface);box-shadow:var(--shadow-sm)}.ui-att-present[aria-checked=true]{color:var(--color-attendance-present);border-color:var(--color-attendance-present);background:var(--color-success-bg)}.ui-att-absent[aria-checked=true]{color:var(--color-attendance-absent);border-color:var(--color-attendance-absent);background:var(--color-danger-bg)}.ui-att-late[aria-checked=true]{color:var(--color-attendance-late);border-color:var(--color-attendance-late);background:var(--color-warning-bg)}.ui-att-excused[aria-checked=true]{color:var(--color-attendance-excused);border-color:var(--color-attendance-excused);background:var(--color-info-bg)}.ui-att-wide .ui-att-opt{width:auto;padding:0 var(--space-3);gap:0}.ui-att-wide .ui-att-word{display:inline}.ui-att-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.ui-att-row:last-child{border-bottom:0}.ui-att-who{display:flex;align-items:center;gap:var(--space-3);min-width:0}.ui-att-name{font-weight:500}.ui-att-meta{font-size:12px;line-height:16px;color:var(--color-text-muted)}.ui-theme-grid{display:grid;grid-template-columns:1fr;gap:var(--space-3)}.ui-theme{font:inherit;text-align:left;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer}.ui-theme:hover{border-color:var(--color-border-strong)}.ui-theme[aria-checked=true]{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.ui-theme-sample{display:grid;grid-template-columns:28% 1fr;height:72px;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border)}.ui-theme-sample-side{gap:5px}.ui-theme-sample-main,.ui-theme-sample-side{padding:8px;display:flex;flex-direction:column}.ui-theme-sample-main{gap:6px}.ui-theme-bar{height:6px;border-radius:var(--radius-full)}.ui-theme-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.ui-theme-name{font-weight:600;font-size:14px}.ui-theme-sw{display:flex}.ui-theme-sw span{width:16px;height:16px;border-radius:var(--radius-full);border:2px solid var(--color-surface);margin-left:-4px}.ui-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-2);padding:var(--space-12) var(--space-4)}.ui-empty-icon{width:48px;height:48px;border-radius:var(--radius-full);background:var(--color-surface-muted);color:var(--color-text-muted);display:inline-flex;align-items:center;justify-content:center;margin-bottom:var(--space-2)}.ui-empty-title{margin:0;font-size:16px;line-height:24px;font-weight:600}.ui-empty-text{margin:0;max-width:360px;color:var(--color-text-muted)}.ui-empty-actions{margin-top:var(--space-3);display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center}.ui-table,.ui-table-wrap{width:100%}.ui-table{border-collapse:collapse;font-size:14px}.ui-table thead{display:none}.ui-table tbody{display:block}.ui-table tr{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-4);padding:var(--space-4);border-bottom:1px solid var(--color-border)}.ui-table tbody tr:last-child{border-bottom:0}.ui-table tr[aria-selected=true]{background:var(--color-primary-bg)}.ui-table td{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.ui-table td:before{content:attr(data-label);font-size:12px;line-height:16px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.ui-table td.ui-td-primary{grid-column:1/-1;order:-1;padding-right:48px}.ui-table td.ui-td-actions:before,.ui-table td.ui-td-primary:before{display:none}.ui-table td.ui-td-actions{position:absolute;top:var(--space-3);right:var(--space-2);flex-direction:row;gap:var(--space-1)}.ui-table td.ui-td-mobile-hide{display:none}.ui-table tr.ui-tr-click{cursor:pointer}.ui-table-state td{grid-column:1/-1}.ui-table-state td:before{display:none}.ui-cell-strong{font-weight:500;color:var(--color-text)}.ui-cell-sub{font-size:12px;line-height:16px;color:var(--color-text-muted)}.ui-cell-person{display:flex;align-items:center;gap:var(--space-3);min-width:0}.ui-cell-person>div{display:flex;flex-direction:column;min-width:0}.ui-skel{display:block;height:12px;border-radius:var(--radius-full);background:var(--color-surface-muted);animation:ui-pulse 1.4s ease-in-out infinite}.ui-side{display:flex;flex-direction:column;height:100%;width:var(--sidebar-width);max-width:85vw;background:var(--color-surface);border-right:1px solid var(--color-border)}.ui-side-brand{display:flex;align-items:center;gap:var(--space-3);height:var(--topbar-height);padding:0 var(--space-4);border-bottom:1px solid var(--color-border);flex:none}.ui-side-logo{width:32px;height:32px;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-on-primary);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;overflow:hidden;flex:none}.ui-side-logo img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;background:var(--color-surface)}.ui-side-school{font-weight:600;font-size:14px;line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-side-sub{font-size:12px;line-height:16px;color:var(--color-text-muted)}.ui-side-nav{flex:1;overflow-y:auto;padding:var(--space-3);display:flex;flex-direction:column;gap:2px}.ui-side-group{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:var(--space-4) var(--space-3) var(--space-2)}.ui-nav-item,.ui-side-group{color:var(--color-text-muted)}.ui-nav-item{font:inherit;font-size:14px;font-weight:500;display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-md);border:0;background:none;cursor:pointer;text-align:left;text-decoration:none;transition:background-color .15s,color .15s}.ui-nav-item:hover{background:var(--color-surface-muted);color:var(--color-text)}.ui-nav-item[aria-current=page]{background:var(--color-primary-bg);color:var(--color-primary-dark)}.ui-nav-item[aria-current=page] .ui-icon{color:var(--color-primary)}.ui-nav-item .ui-badge{margin-left:auto}.ui-side-foot{padding:var(--space-3);flex:none}.ui-bnav,.ui-side-foot{border-top:1px solid var(--color-border)}.ui-bnav{display:flex;justify-content:space-around;background:var(--color-surface);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}.ui-bnav-item{font:inherit;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;background:none;color:var(--color-text-muted);font-size:11px;line-height:14px;font-weight:500;cursor:pointer;min-width:var(--control-lg);position:relative;text-decoration:none}.ui-bnav-item[aria-current=page]{color:var(--color-primary)}.ui-bnav-item[aria-current=page]:before{content:"";position:absolute;top:0;left:30%;right:30%;height:2px;border-radius:0 0 2px 2px;background:var(--color-primary)}.ui-bnav-dot{position:absolute;top:10px;left:calc(50% + 6px);min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-full);background:var(--color-danger);color:var(--color-on-danger);font-size:10px;line-height:16px;font-weight:600}.ui-ph{display:flex;flex-direction:column;gap:var(--space-4);margin-bottom:var(--space-6)}.ui-ph-crumbs{display:flex;flex-wrap:wrap;gap:var(--space-1);align-items:center;font-size:12px;line-height:16px;color:var(--color-text-muted);margin-bottom:var(--space-1)}.ui-ph-crumbs a{color:inherit;text-decoration:none}.ui-ph-crumbs a:hover{color:var(--color-text);text-decoration:underline}.ui-ph-title{margin:0;font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.01em}.ui-ph-desc{margin:var(--space-1) 0 0;color:var(--color-text-muted)}.ui-ph-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.ui-ph-actions>.ui-btn{flex:1}.ui-modal-layer{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:flex-end;justify-content:center}.ui-modal-scrim{position:absolute;inset:0;background:var(--color-overlay)}.ui-modal{position:relative;width:100%;max-height:90vh;display:flex;flex-direction:column;background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg);padding-bottom:env(safe-area-inset-bottom);animation:ui-sheet-in .2s ease}.ui-modal-grip{width:36px;height:4px;border-radius:var(--radius-full);background:var(--color-border-strong);margin:var(--space-2) auto 0;flex:none}.ui-modal-head{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4) var(--space-5) 0}.ui-modal-title{margin:0;font-size:18px;line-height:28px;font-weight:600;flex:1}.ui-modal-desc{margin:var(--space-1) 0 0;color:var(--color-text-muted)}.ui-modal-body{padding:var(--space-4) var(--space-5);overflow-y:auto}.ui-modal-foot{display:flex;flex-direction:column-reverse;gap:var(--space-2);padding:var(--space-4) var(--space-5) var(--space-5);border-top:1px solid var(--color-border)}.ui-modal-foot .ui-btn{width:100%}.ui-modal-tone{width:40px;height:40px;border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;flex:none}.ui-modal-tone-danger{background:var(--color-danger-bg);color:var(--color-danger)}.ui-shell{min-height:100vh;min-height:100dvh;background:var(--color-bg)}.ui-shell-side{position:fixed;inset:0 auto 0 0;z-index:var(--z-drawer);transform:translateX(-100%);transition:transform .2s ease,visibility 0s linear .2s;box-shadow:var(--shadow-lg);visibility:hidden}.ui-shell-open .ui-shell-side{transform:none;visibility:visible;transition:transform .2s ease}.ui-shell-scrim{position:fixed;inset:0;z-index:calc(var(--z-drawer) - 1);background:var(--color-overlay);display:none}.ui-shell-open .ui-shell-scrim{display:block}.ui-shell-main{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;min-width:0}.ui-topbar{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--space-2);height:56px;padding:0 var(--space-2);padding-top:env(safe-area-inset-top);box-sizing:content-box;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.ui-topbar-title{font-weight:600;font-size:16px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-topbar-right{display:flex;align-items:center;gap:var(--space-1)}.ui-topbar-search{display:none;width:320px}.ui-shell-content{flex:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:var(--space-4)}.ui-shell-bottom{position:fixed;inset:auto 0 0 0;z-index:var(--z-sticky)}.ui-shell-has-bnav .ui-shell-content{padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + var(--space-4))}.ui-sticky-action{position:sticky;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + var(--space-2));z-index:var(--z-sticky)}.ui-auth{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-4);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom));background:var(--color-bg)}@media (min-width:640px){.ui-card-head{padding:var(--space-5) var(--space-6) 0}.ui-card-flush .ui-card-head{padding-bottom:var(--space-5)}.ui-card-body{padding:var(--space-6)}.ui-input,.ui-select{font-size:14px}.ui-form-actions{flex-direction:row;justify-content:flex-end}.ui-form-actions>.ui-btn{width:auto}.ui-stat-value{font-size:30px;line-height:36px}.ui-stat-grid{gap:var(--space-4)}.ui-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-pager-pages{display:flex}.ui-pager-compact{display:none}.ui-table thead{display:table-header-group}.ui-table tbody{display:table-row-group;padding:0}.ui-table tr{display:table-row;position:static;padding:0;border:0;background:none}.ui-table td,.ui-table td.ui-td-actions,.ui-table td.ui-td-mobile-hide{display:table-cell;position:static}.ui-table td.ui-td-primary{padding-right:var(--space-4)}.ui-table td:before{display:none}.ui-table th{text-align:left;font-size:12px;line-height:16px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);background:var(--color-surface-muted);white-space:nowrap}.ui-table td,.ui-table th{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.ui-table td{vertical-align:middle}.ui-table tbody tr:last-child td{border-bottom:0}.ui-table tbody tr:hover td{background:var(--color-surface-muted)}.ui-table tr[aria-selected=true] td{background:var(--color-primary-bg)}.ui-table .ui-right{text-align:right}.ui-table td.ui-td-actions{text-align:right;white-space:nowrap}.ui-table-wrap{overflow-x:auto}.ui-ph{flex-direction:row;align-items:flex-end;justify-content:space-between}.ui-ph-title{font-size:24px;line-height:32px}.ui-ph-actions>.ui-btn{flex:none}.ui-modal-layer{align-items:center;padding:var(--space-6)}.ui-modal{max-width:520px;border-radius:var(--radius-xl);padding-bottom:0;animation:none}.ui-modal-sm{max-width:420px}.ui-modal-lg{max-width:720px}.ui-modal-grip{display:none}.ui-modal-head{padding:var(--space-6) var(--space-6) 0}.ui-modal-body,.ui-modal-foot{padding:var(--space-4) var(--space-6)}.ui-modal-foot{flex-direction:row;justify-content:flex-end;background:var(--color-surface-muted);border-radius:0 0 var(--radius-xl) var(--radius-xl)}.ui-modal-foot .ui-btn{width:auto}.ui-shell-content{padding:var(--space-6)}.ui-shell-has-bnav .ui-shell-content{padding-bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom) + var(--space-6))}.ui-topbar{padding-left:var(--space-4);padding-right:var(--space-4)}.ui-auth{padding:var(--space-6)}}@media (min-width:768px){.ui-form-grid{grid-template-columns:1fr 1fr}.ui-form-grid>.ui-span-2{grid-column:span 2}.ui-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ui-topbar-search{display:block}}@media (min-width:1024px){.ui-theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ui-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}.ui-shell-side{position:sticky;top:0;height:100vh;transform:none;box-shadow:none;z-index:auto;visibility:visible}.ui-shell-bottom,.ui-shell-menu,.ui-shell-open .ui-shell-scrim,.ui-shell-scrim{display:none}.ui-topbar{height:var(--topbar-height);padding-left:var(--space-8);padding-right:var(--space-8)}.ui-topbar-title{visibility:hidden}.ui-shell-content{padding:var(--space-8)}.ui-shell-has-bnav .ui-shell-content{padding-bottom:var(--space-8)}.ui-sticky-action{position:static}}@media (min-width:1280px){.ui-stat-grid-6{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (pointer:coarse){.ui-btn,.ui-btn-sm,.ui-icon-btn{min-height:var(--control-lg)}.ui-btn-icon-only,.ui-icon-btn{min-width:var(--control-lg)}.ui-input,.ui-select{height:var(--control-lg)}.ui-check,.ui-nav-item{min-height:var(--control-lg)}}@media (prefers-reduced-motion:reduce){.ui-spin{animation-duration:2s}.ui-shell-side{transition:none}.ui-modal{animation:none}}.fixed{position:fixed}.m-0{margin:0}.-mb-px{margin-bottom:-1px}.-mr-px{margin-right:-1px}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-12{height:3rem}.h-14{height:3.5rem}.max-h-56{max-height:14rem}.min-h-\[40px\]{min-height:40px}.min-h-\[88px\]{min-height:88px}.w-12{width:3rem}.w-14{width:3.5rem}.w-40{width:10rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-\[360px\]{max-width:360px}.max-w-lg{max-width:32rem}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[1fr_auto_1fr\]{grid-template-columns:1fr auto 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-3{row-gap:.75rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded-lg{border-radius:8px}.rounded-md{border-radius:6px}.border{border-width:1px}.border-0{border-width:0}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-border{border-color:var(--color-border)}.bg-surface-muted{background-color:var(--color-surface-muted)}.p-0{padding:0}.p-4{padding:1rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.text-center{text-align:center}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.capitalize{text-transform:capitalize}.tracking-tight{letter-spacing:-.025em}.text-fg{color:var(--color-text)}.text-fg-muted{color:var(--color-text-muted)}.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-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes ui-spin{to{transform:rotate(1turn)}}@keyframes ui-pulse{50%{opacity:.5}}@keyframes ui-sheet-in{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.last\:border-b-0:last-child{border-bottom-width:0}.hover\:bg-surface-muted:hover{background-color:var(--color-surface-muted)}.hover\:underline:hover{text-decoration-line:underline}@media (min-width:640px){.sm\:w-48{width:12rem}.sm\:w-56{width:14rem}.sm\:max-w-xs{max-width:20rem}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:gap-6{gap:1.5rem}}@media (min-width:768px){.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1024px){.lg\:inline-flex{display:inline-flex}.lg\:w-auto{width:auto}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}