.confirm-dialog-backdrop[data-v-49301fdb]{z-index:var(--zi-confirm,1060);padding:var(--space-4);background:color-mix(in srgb, var(--scrim) 38%, transparent);-webkit-backdrop-filter:var(--glass-blur-md);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.confirm-dialog-card[data-v-49301fdb]{width:min(100%, var(--max-w-sm));max-height:calc(100dvh - var(--space-8));padding:var(--space-6);color:var(--on-surface);background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-xl);box-shadow:var(--elevation-3);position:relative;overflow-y:auto}.confirm-dialog-close-btn[data-v-49301fdb]{top:var(--space-3);right:var(--space-3);width:32px;height:32px;color:var(--on-surface-variant);background:var(--surface-container-high);border-radius:var(--radius-full);cursor:pointer;border:0;place-items:center;display:grid;position:absolute}.confirm-dialog-header[data-v-49301fdb]{align-items:center;gap:var(--space-3);padding-right:calc(var(--control-height) + var(--space-2));display:flex}.confirm-dialog-icon-wrapper[data-v-49301fdb]{width:42px;height:42px;color:var(--error);background:var(--error-container);border-radius:var(--radius-sm);flex:0 0 42px;place-items:center;display:grid}.variant-primary .confirm-dialog-icon-wrapper[data-v-49301fdb]{color:var(--on-primary-container);background:var(--primary-container)}.confirm-dialog-title[data-v-49301fdb]{font-size:var(--fs-xl);line-height:var(--lh-xl);margin:0}.confirm-dialog-message[data-v-49301fdb]{margin-top:var(--space-4);color:var(--on-surface-variant);font-size:var(--fs-base);line-height:var(--lh-relaxed)}.confirm-dialog-actions[data-v-49301fdb]{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6);display:flex}.confirm-btn[data-v-49301fdb]{min-height:var(--control-height);padding:0 var(--space-5);border-radius:var(--radius-full);font:inherit;cursor:pointer;border:0;font-weight:700}.confirm-btn-cancel[data-v-49301fdb]{color:var(--on-secondary-container);background:var(--secondary-container)}.confirm-btn-submit[data-v-49301fdb]{color:var(--on-primary);background:var(--primary)}.variant-danger .confirm-btn-submit[data-v-49301fdb]{color:var(--on-error,#fff);background:var(--error,#ba1a1a)}.confirm-btn-submit[data-v-49301fdb]:disabled{cursor:not-allowed;opacity:.55}@media (max-width:640px){.confirm-dialog-backdrop[data-v-49301fdb]{align-items:flex-end;padding:0;overflow:hidden}.confirm-dialog-card[data-v-49301fdb]{width:100%;max-height:88dvh;padding:var(--space-5) var(--space-5) calc(var(--space-5) + env(safe-area-inset-bottom,0px));border-radius:var(--radius-xl) var(--radius-xl) 0 0;border:0;margin:0}.confirm-dialog-actions[data-v-49301fdb]{flex-direction:column-reverse}.confirm-btn[data-v-49301fdb]{width:100%}.modal-popup-enter-active .confirm-dialog-card[data-v-49301fdb],.modal-popup-leave-active .confirm-dialog-card[data-v-49301fdb]{transition:transform .26s cubic-bezier(.22,.9,.28,1),opacity .18s}.modal-popup-enter-from .confirm-dialog-card[data-v-49301fdb],.modal-popup-leave-to .confirm-dialog-card[data-v-49301fdb]{opacity:1;transform:translateY(100%)}}.offline-overlay[data-v-c56d22c1]{z-index:var(--zi-overlay);background:color-mix(in srgb, var(--scrim) 40%, transparent);padding:var(--space-6);-webkit-backdrop-filter:blur(16px);justify-content:center;align-items:center;animation:.4s ease-out fadeIn-c56d22c1;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.offline-card[data-v-c56d22c1]{background:var(--surface);-webkit-backdrop-filter:none;border-radius:var(--radius-lg);padding:var(--space-10) var(--space-8);text-align:center;width:100%;max-width:400px;box-shadow:none;border:none;animation:.4s cubic-bezier(.34,1.56,.64,1) scaleUp-c56d22c1}.offline-icon[data-v-c56d22c1]{background:var(--primary-container);border-radius:var(--radius-md);width:76px;height:76px;margin:0 auto var(--space-6);color:var(--on-primary-container);box-shadow:none;border:0;justify-content:center;align-items:center;display:flex}.offline-title[data-v-c56d22c1]{font-size:var(--fs-2xl);color:var(--on-surface);margin-bottom:var(--space-3);letter-spacing:-.01em;font-weight:600}.offline-subtitle[data-v-c56d22c1]{font-size:var(--fs-base);color:var(--on-surface-variant);margin-bottom:var(--space-8);font-weight:300;line-height:1.6}.btn-retry[data-v-c56d22c1]{background:var(--primary);color:#fff;padding:var(--space-3) var(--space-8);border-radius:var(--radius-full);font-size:var(--fs-md);justify-content:center;align-items:center;gap:var(--space-2);cursor:pointer;box-shadow:none;border:none;width:100%;font-weight:500;transition:background-color .2s;display:inline-flex}.btn-retry[data-v-c56d22c1]:hover:not(:disabled){background:var(--primary-dim);box-shadow:none}.btn-retry[data-v-c56d22c1]:active:not(:disabled){transform:scale(.98)}.btn-retry[data-v-c56d22c1]:disabled{opacity:.6;cursor:not-allowed}@keyframes fadeIn-c56d22c1{0%{opacity:0}to{opacity:1}}@keyframes scaleUp-c56d22c1{0%{opacity:0;transform:scale(.92)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.login-transition-overlay[data-v-c56d22c1]{z-index:2147483647;opacity:1;pointer-events:all;background:#fff;justify-content:center;align-items:center;transition:opacity .35s;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.login-transition-overlay.fade-out[data-v-c56d22c1]{opacity:0;pointer-events:none}.login-splash-bar[data-v-c56d22c1]{border-radius:var(--radius-full,9999px);background:rgba(37,99,235,.15);width:200px;height:4px;position:relative;overflow:hidden}.login-splash-bar[data-v-c56d22c1]:after{content:"";border-radius:var(--radius-full,9999px);background:#2563eb;width:40%;height:100%;animation:1.1s ease-in-out infinite login-splash-slide-c56d22c1;position:absolute;top:0;left:0}@keyframes login-splash-slide-c56d22c1{0%{transform:translate(-100%)}50%{transform:translate(150%)}to{transform:translate(250%)}}.page-hero[data-v-d1e5c2f3]{align-items:center;gap:var(--space-5);min-height:150px;margin-bottom:var(--space-6);padding:var(--space-8);color:var(--on-hero);background:linear-gradient(120deg, var(--hero-start), var(--hero-end) 62%, color-mix(in srgb, var(--hero-end) 72%, var(--hero-start)) 112%);border-radius:var(--radius-xl);box-shadow:none;display:flex;position:relative;overflow:hidden}.page-hero[data-v-d1e5c2f3]:after{background:color-mix(in srgb, var(--on-hero) 6%, transparent);content:"";pointer-events:none;border-radius:50%;width:310px;height:310px;position:absolute;top:auto;bottom:-135px;left:auto;right:-80px}.page-hero--flush[data-v-d1e5c2f3]{margin-bottom:0}.page-hero__icon[data-v-d1e5c2f3]{z-index:1;width:62px;height:62px;color:var(--hero-start);background:var(--on-hero);border-radius:var(--radius-sm);box-shadow:none;flex:none;place-items:center;display:grid;position:relative}.page-hero__copy[data-v-d1e5c2f3]{z-index:1;flex:1;min-width:0;position:relative}.page-hero__eyebrow[data-v-d1e5c2f3]{color:color-mix(in srgb, var(--on-hero) 78%, transparent);font-size:var(--fs-2xs);letter-spacing:.15em;text-transform:uppercase;font-weight:800;line-height:1.4;display:block}.page-hero h1[data-v-d1e5c2f3]{margin:var(--space-1) 0;color:var(--on-hero);letter-spacing:-.035em;font-size:max(1.65rem,min(3vw,2.15rem));font-weight:760;line-height:1.2}.page-hero p[data-v-d1e5c2f3]{max-width:72ch;color:color-mix(in srgb, var(--on-hero) 76%, transparent);font-size:var(--fs-sm);margin:0;line-height:1.55}@media (max-width:720px){.page-hero[data-v-d1e5c2f3]{align-items:flex-start;gap:var(--space-4);min-height:0;padding:var(--space-6) var(--space-5);border-radius:var(--radius-md);flex-wrap:wrap}.page-hero__icon[data-v-d1e5c2f3]{border-radius:var(--radius-sm);width:52px;height:52px}.page-hero__copy[data-v-d1e5c2f3]{min-width:calc(100% - 68px)}.page-hero h1[data-v-d1e5c2f3]{font-size:var(--fs-3xl)}}@media (max-width:430px){.page-hero__icon[data-v-d1e5c2f3]{width:46px;height:46px}.page-hero__copy[data-v-d1e5c2f3]{min-width:calc(100% - 60px)}.page-hero__eyebrow[data-v-d1e5c2f3]{font-size:var(--fs-3xs)}.page-hero h1[data-v-d1e5c2f3]{font-size:var(--fs-3xl)}.page-hero p[data-v-d1e5c2f3]{font-size:var(--fs-xs)}}.search-select[data-v-3a581ecd]{width:100%;margin:0;position:relative;height:auto!important;min-height:0!important;max-height:none!important;box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;padding:0!important}.search-select-trigger[data-v-3a581ecd]{width:100%;height:var(--control-height);min-height:var(--control-height);justify-content:space-between;align-items:center;gap:var(--space-2);padding:0 var(--space-3);color:var(--on-surface);font-size:var(--fs-md);text-align:left;background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-xs);box-shadow:none;transition:border-color .14s,background-color .14s,box-shadow .14s;display:flex}.search-select-trigger>span[data-v-3a581ecd]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.search-select-trigger .placeholder[data-v-3a581ecd]{color:var(--on-surface-dim)}.search-select.open .search-select-trigger[data-v-3a581ecd]{border-color:var(--input-focus-border);background-color:var(--input-focus-bg);box-shadow:var(--input-focus-ring);outline:none}.search-select-trigger[data-v-3a581ecd]:focus-visible{border-color:var(--input-focus-border);background-color:var(--input-focus-bg);box-shadow:var(--input-focus-ring);outline:none}.search-select.compact .search-select-trigger[data-v-3a581ecd],.search-select.filter-select .search-select-trigger[data-v-3a581ecd],.search-select.pill-select .search-select-trigger[data-v-3a581ecd],.search-select.pill-select-input .search-select-trigger[data-v-3a581ecd]{height:var(--control-height-compact);min-height:var(--control-height-compact);padding:0 var(--space-2);font-size:var(--fs-sm)}.chevron[data-v-3a581ecd]{color:var(--on-surface-variant);transition:transform var(--transition-fast);flex:none}.search-select.open .chevron[data-v-3a581ecd]{transform:rotate(180deg)}.search-select-panel[data-v-3a581ecd]{z-index:var(--zi-popover);min-width:220px;padding:var(--space-2);background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-md);box-shadow:var(--elevation-3);position:fixed}.search-select-search[data-v-3a581ecd]{align-items:center;gap:var(--space-2);min-height:var(--control-height);height:var(--control-height);padding:0 var(--space-3);margin-bottom:var(--space-2);color:var(--on-surface-variant);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-xs);box-sizing:border-box;transition:border-color .14s,background-color .14s,box-shadow .14s;display:flex}.search-select-search[data-v-3a581ecd]:focus-within{border-color:var(--input-focus-border);background-color:var(--input-focus-bg);box-shadow:var(--input-focus-ring)}.search-select-search input[data-v-3a581ecd]{box-sizing:border-box!important;width:100%!important;min-width:0!important;min-height:calc(var(--control-height) - 2px)!important;height:calc(var(--control-height) - 2px)!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-base)!important;box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;padding:0!important}.search-select-search button[data-v-3a581ecd]{flex:0 0 var(--space-6);width:var(--space-6);height:var(--space-6);color:var(--on-surface-variant);background:0 0;border-radius:50%;place-items:center;display:grid}.search-select-options[data-v-3a581ecd]{overscroll-behavior:contain;max-height:280px;overflow-y:auto}.search-select-option[data-v-3a581ecd]{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);color:var(--on-surface);font-size:var(--fs-sm);text-align:left;border-radius:var(--radius-xs);background:0 0;display:flex}.search-select-option[data-v-3a581ecd]:hover{background:var(--surface-container-low)}.search-select-option.selected[data-v-3a581ecd]{color:var(--on-primary-container);background:var(--primary-container);font-weight:600}.search-select-empty[data-v-3a581ecd]{padding:var(--space-6) var(--space-3);color:var(--on-surface-variant);font-size:var(--fs-sm);text-align:center}.validation-proxy[data-v-3a581ecd]{opacity:0;pointer-events:none;width:1px;position:absolute;height:1px!important;min-height:1px!important}.disabled[data-v-3a581ecd]{opacity:.65}@media (max-width:600px){.search-select-panel[data-v-3a581ecd]{z-index:var(--zi-popover);top:auto;right:var(--space-3);bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));left:var(--space-3);min-width:0;padding:var(--space-3);border-radius:var(--radius-xl);position:fixed}.search-select-options[data-v-3a581ecd]{max-height:min(52vh,420px)}.search-select-option[data-v-3a581ecd]{min-height:46px}}.api-skeleton[data-v-06c57738]{gap:var(--space-4);pointer-events:none;width:100%;display:grid}.api-skeleton__hero[data-v-06c57738],.api-skeleton__panel[data-v-06c57738],.api-skeleton__metrics>div[data-v-06c57738]{background:var(--surface,#fff);border:1px solid var(--outline-variant,#e3e5eb);border-radius:var(--radius-sm)}.api-skeleton__hero[data-v-06c57738]{align-items:center;gap:var(--space-5);min-height:132px;padding:var(--space-6);display:flex}.api-skeleton__hero>div[data-v-06c57738]{gap:var(--space-3);flex:1;display:grid}.api-skeleton__avatar[data-v-06c57738]{border-radius:var(--radius-sm);width:72px;height:72px}.api-skeleton__hero div i[data-v-06c57738]:first-child{width:min(280px,70%);height:22px}.api-skeleton__hero div i[data-v-06c57738]:nth-child(2){width:min(420px,90%)}.api-skeleton__hero div i[data-v-06c57738]:nth-child(3){width:min(210px,55%)}.api-skeleton__metrics[data-v-06c57738]{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.api-skeleton__metrics>div[data-v-06c57738]{gap:var(--space-3);padding:var(--space-5);display:grid}.api-skeleton__metrics i[data-v-06c57738]:first-child{width:42%;height:12px}.api-skeleton__metrics i[data-v-06c57738]:last-child{width:68%;height:26px}.api-skeleton__panel[data-v-06c57738]{overflow:hidden}.api-skeleton__toolbar[data-v-06c57738]{justify-content:space-between;gap:var(--space-5);padding:var(--space-5);border-bottom:1px solid var(--outline-variant,#e3e5eb);display:flex}.api-skeleton__toolbar i[data-v-06c57738]:first-child{width:min(260px,55%);height:18px}.api-skeleton__toolbar i[data-v-06c57738]:last-child{width:112px;height:36px}.api-skeleton__rows[data-v-06c57738]{display:grid}.api-skeleton__row[data-v-06c57738]{align-items:center;gap:var(--space-4);min-height:66px;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--outline-variant,#e3e5eb);grid-template-columns:auto minmax(130px,1.7fr) minmax(70px,.7fr) minmax(60px,.5fr);display:grid}.api-skeleton__row[data-v-06c57738]:last-child{border-bottom:0}.api-skeleton__row>span[data-v-06c57738]{gap:var(--space-2);display:grid}.api-skeleton__row>span i[data-v-06c57738]:first-child{width:65%;height:13px}.api-skeleton__row>span i[data-v-06c57738]:last-child{width:42%;height:10px}.api-skeleton__row>i[data-v-06c57738]:not(.api-skeleton__dot){width:70%;height:12px}.api-skeleton__dot[data-v-06c57738]{border-radius:var(--radius-xs);width:40px;height:40px}.api-skeleton i[data-v-06c57738]{background:linear-gradient(100deg,var(--surface-container,#eceef3) 20%,var(--surface-container-high,#f5f6f8) 40%,var(--surface-container,#eceef3) 60%);border-radius:var(--radius-xs);background-size:220% 100%;animation:1.35s ease-in-out infinite api-skeleton-shimmer-06c57738;display:block}.api-skeleton--compact .api-skeleton__toolbar[data-v-06c57738]{display:none}.api-skeleton--compact .api-skeleton__row[data-v-06c57738]{min-height:52px}.api-skeleton--detail .api-skeleton__panel[data-v-06c57738]{min-height:230px}@keyframes api-skeleton-shimmer-06c57738{to{background-position:-220% 0}}@media (max-width:700px){.api-skeleton__metrics[data-v-06c57738]{grid-template-columns:repeat(2,1fr)}.api-skeleton__hero[data-v-06c57738]{min-height:112px;padding:var(--space-5)}.api-skeleton__avatar[data-v-06c57738]{width:56px;height:56px}.api-skeleton__row[data-v-06c57738]{grid-template-columns:auto 1fr}.api-skeleton__row>i[data-v-06c57738]:not(.api-skeleton__dot){display:none}}.pagination[data-v-4bacaa7b]{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--outline-variant);flex-wrap:wrap;display:flex}.pagination-info[data-v-4bacaa7b]{font-size:var(--fs-sm);color:var(--on-surface-variant)}.pagination-controls[data-v-4bacaa7b]{align-items:center;gap:var(--space-1);display:flex}.pg-btn[data-v-4bacaa7b]{min-width:32px;height:32px;padding:0 var(--space-2);border-radius:var(--radius-xs);color:var(--on-surface);cursor:pointer;font-size:var(--fs-sm);background:0 0;border:1px solid transparent;justify-content:center;align-items:center;font-weight:500;display:inline-flex}.pg-btn[data-v-4bacaa7b]:hover:not(:disabled):not(.active){background:var(--surface-container-high)}.pg-btn[data-v-4bacaa7b]:disabled{opacity:.35;cursor:not-allowed}.pg-btn.active[data-v-4bacaa7b]{background:var(--primary);color:var(--on-primary,#fff)}.pg-ellipsis[data-v-4bacaa7b]{padding:0 var(--space-1);color:var(--on-surface-variant);user-select:none}@media (max-width:600px){.pagination[data-v-4bacaa7b]{justify-content:center}.pagination-info[data-v-4bacaa7b]{text-align:center;width:100%}}.data-table-shell[data-v-f229b3ef]{position:relative;overflow:visible}.data-table-top-bar[data-v-f229b3ef]{top:var(--table-sticky-top-offset,0px);z-index:15;background:var(--surface);border-top-left-radius:inherit;border-top-right-radius:inherit;border-bottom:1px solid var(--outline-variant);position:sticky}.data-table-toolbar[data-v-f229b3ef]{gap:var(--space-3);padding:var(--space-4) var(--space-4);background:var(--surface);border-top-left-radius:inherit;border-top-right-radius:inherit;flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.data-table-count[data-v-f229b3ef]{color:var(--on-surface-variant);font-size:var(--fs-sm);white-space:nowrap}.data-table-search[data-v-f229b3ef]{align-items:center;gap:var(--space-2);min-width:min(280px,100%);height:var(--control-height-compact,36px);padding:0 var(--space-3);color:var(--on-surface-variant);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-xs);box-sizing:border-box;flex:220px;transition:border-color .14s,background-color .14s,box-shadow .14s;display:flex}.data-table-search[data-v-f229b3ef]:focus-within{border-color:var(--input-focus-border);background-color:var(--input-focus-bg);box-shadow:var(--input-focus-ring)}.data-table-search>input[data-v-f229b3ef],.data-table-search>input[data-v-f229b3ef]:focus{width:100%;min-width:0;height:100%;color:var(--on-surface);font-family:inherit;font-size:var(--fs-sm);min-height:0!important;box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important}.data-table-search>input[data-v-f229b3ef]:focus-visible{width:100%;min-width:0;height:100%;color:var(--on-surface);font-family:inherit;font-size:var(--fs-sm);min-height:0!important;box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important}.data-table-search>input[data-v-f229b3ef]::-webkit-search-cancel-button{display:none}.data-table-clear[data-v-f229b3ef]{width:24px;height:24px;color:var(--on-surface-variant);background:0 0;border-radius:50%;place-items:center;display:grid}.data-table-clear[data-v-f229b3ef]:hover{background:var(--surface-container-high)}.data-table-filter[data-v-f229b3ef]{min-width:120px;max-width:200px;height:var(--control-height-compact,36px);padding:0 var(--space-8) 0 var(--space-3);color:var(--on-surface);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-xs);font-family:inherit;font-size:var(--fs-sm);transition:border-color .14s,background-color .14s,box-shadow .14s}.data-table-filter[data-v-f229b3ef]:focus{border-color:var(--input-focus-border);background-color:var(--input-focus-bg);box-shadow:var(--input-focus-ring);outline:none}.data-table-filter[data-v-f229b3ef]:focus-visible{border-color:var(--input-focus-border);background-color:var(--input-focus-bg);box-shadow:var(--input-focus-ring);outline:none}.data-table-filter[multiple][data-v-f229b3ef]{height:auto;min-height:36px;padding-right:var(--space-2)}.data-table-chips[data-v-f229b3ef]{gap:var(--space-2);padding:0 var(--space-4) var(--space-3);background:var(--surface);flex-wrap:wrap;display:flex}.data-table-chip[data-v-f229b3ef]{gap:var(--space-2);padding:var(--space-2) var(--space-3);color:var(--on-primary-container);background:var(--primary-container);border-radius:var(--radius-full);font-size:var(--fs-xs);align-items:center;display:inline-flex}.data-table-scroll[data-v-f229b3ef]{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table thead th[data-v-f229b3ef]{background:var(--surface-container-low);box-shadow:inset 0 -1px 0 var(--outline-variant)}.data-table-sort[data-v-f229b3ef]{align-items:center;gap:var(--space-2);color:inherit;font:inherit;text-align:inherit;background:0 0;padding:0;display:inline-flex}.data-table-sort[data-v-f229b3ef]:hover{color:var(--primary)}.data-table-sort-muted[data-v-f229b3ef]{opacity:.38}.data-table-select-heading[data-v-f229b3ef],.data-table-select-cell[data-v-f229b3ef]{text-align:center;width:44px;min-width:44px}.data-table-checkbox[data-v-f229b3ef]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.data-table-row-selected[data-v-f229b3ef]{background:color-mix(in srgb, var(--primary-container) 15%, transparent)}.data-table-actions-heading[data-v-f229b3ef]{width:1%}.data-table-actions[data-v-f229b3ef]{white-space:nowrap;text-align:right}.data-table-row-clickable[data-v-f229b3ef]{cursor:pointer}.data-table-state[data-v-f229b3ef]{min-height:140px;padding:var(--space-6);color:var(--on-surface-variant);text-align:center;place-items:center;display:grid}.data-table-skeleton-wrap[data-v-f229b3ef]{padding:var(--space-4)}.data-table-pagination[data-v-f229b3ef]{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--outline-variant);color:var(--on-surface-variant);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.data-table-pagination-global[data-v-f229b3ef]{bottom:var(--table-sticky-bottom-offset,0px);z-index:15;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2);background:var(--surface);border-top:1px solid var(--outline-variant);border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;flex-wrap:wrap;display:flex;position:sticky}.data-table-pagination-global[data-v-f229b3ef] .pagination{padding:var(--space-2) var(--space-3);border-top:none;flex:auto}.data-table-page-size-wrap[data-v-f229b3ef]{align-items:center;gap:var(--space-2);color:var(--on-surface-variant);font-size:var(--fs-sm);white-space:nowrap;padding-right:var(--space-3);display:inline-flex}.data-table-page-size[data-v-f229b3ef]{height:30px;margin-left:var(--space-2);padding:var(--space-1) var(--space-6) var(--space-1) var(--space-2);border-radius:var(--radius-xs);background:var(--surface-container-low);border:none}.data-table-page-buttons[data-v-f229b3ef]{align-items:center;gap:var(--space-2);display:flex}.data-table-page-buttons .pg-btn[data-v-f229b3ef]{min-width:30px;height:30px;font-size:var(--fs-xl)}.sr-only[data-v-f229b3ef]{width:1px;height:1px;margin:calc(-1 * var(--space-1));clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;padding:0;position:absolute;overflow:hidden}@media (max-width:768px){.data-table-pagination-global[data-v-f229b3ef]{bottom:calc(var(--m-nav-h) + var(--space-4) + env(safe-area-inset-bottom,0px))}}@media (max-width:700px){.data-table-toolbar[data-v-f229b3ef]{align-items:stretch}.data-table-count[data-v-f229b3ef]{width:100%}.data-table-controls[data-v-f229b3ef]{justify-content:stretch}.data-table-search[data-v-f229b3ef]{flex-basis:100%}.data-table-filter[data-v-f229b3ef]{flex:130px;max-width:none}.data-table-clear-all[data-v-f229b3ef]{flex:none}.data-table-pagination[data-v-f229b3ef],.data-table-pagination-global[data-v-f229b3ef],.data-table-pagination-global[data-v-f229b3ef] .pagination{justify-content:center}.data-table-page-size-wrap[data-v-f229b3ef]{justify-content:center;width:100%}}:root{--surface-dim:#f8f8fb;--surface:#fff;--surface-bright:#fff;--surface-container-lowest:#fff;--surface-container-low:#f9f9fc;--surface-container:#f3f3f7;--surface-container-high:#ededf3;--surface-container-highest:#e6e6ed;--primary:#5d5b9d;--primary-dim:#4d4b8c;--primary-container:#e4e1ff;--primary-rgb:93, 91, 157;--on-primary:#fff;--on-primary-container:#fff;--school-primary:var(--primary);--hero-start:#4d4b8c;--hero-end:var(--primary);--on-hero:var(--on-primary);--secondary:#386a65;--secondary-container:#d2f1eb;--on-secondary:#fff;--on-secondary-container:#23514d;--tertiary:#8b5263;--tertiary-container:#ffd9e3;--on-tertiary:#fff;--on-tertiary-container:#6f3b4c;--success:#2f6b4f;--success-container:#d0f1df;--warning:#87530b;--warning-container:#ffddb3;--error:#ba1a1a;--error-container:#ffdad6;--on-error:#fff;--on-error-container:#410002;--info:#35618a;--info-container:#d3e4ff;--on-surface:#1c1b20;--on-surface-variant:#625f69;--on-surface-dim:#918c98;--outline:#bcbac3;--outline-variant:#eeeef3;--elevation-subtle:none;--elevation-1:none;--elevation-2:none;--elevation-3:none;--font-sans:"Poppins", "Kanit", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"JetBrains Mono", monospace;--fs-3xs:.625rem;--fs-2xs:.6875rem;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:.875rem;--fs-md:.9375rem;--fs-lg:1rem;--fs-xl:1.125rem;--fs-2xl:1.25rem;--fs-3xl:1.5rem;--fs-4xl:1.75rem;--fs-5xl:2rem;--lh-tight:1.2;--lh-snug:1.35;--lh-normal:1.5;--lh-base:1.5;--lh-xl:1.35;--lh-2xl:1.3;--lh-relaxed:1.625;--radius-nano:4px;--radius-xs:10px;--radius-sm:16px;--radius-md:22px;--radius-lg:28px;--radius-xl:36px;--radius-device:34px;--radius-pill:999px;--radius-full:9999px;--max-w-xs:360px;--max-w-sm:480px;--max-w-md:640px;--max-w-lg:760px;--max-w-xl:960px;--max-w-2xl:1200px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--control-height:40px;--control-height-compact:36px;--input-border:color-mix(in srgb, var(--outline-variant) 78%, transparent);--input-bg:var(--surface-container-low);--input-focus-border:color-mix(in srgb, var(--primary) 50%, transparent);--input-focus-bg:color-mix(in srgb, var(--surface-container-low) 92%, var(--primary-container));--input-focus-ring:0 0 0 3px color-mix(in srgb, var(--primary) 12%, transparent);--scrim:#282436;--glass-blur-md:blur(12px) saturate(120%);--sidebar-width:256px;--sidebar-offset:280px;--sidebar-expanded-width:256px;--sidebar-expanded-offset:280px;--sidebar-collapsed-width:68px;--sidebar-collapsed-offset:92px;--zi-sticky:50;--zi-overlay:1000;--zi-preview:1000;--zi-modal:1050;--zi-popover:1070;--zi-confirm:1080;--zi-toast:1100;--table-sticky-top-offset:0px;--table-sticky-bottom-offset:0px;--transition-fast:.15s cubic-bezier(.2, 0, 0, 1);--transition-normal:.25s cubic-bezier(.2, 0, 0, 1);--transition-slow:.4s cubic-bezier(.2, 0, 0, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--m-nav-h:60px;--m-nav-glass-bg:rgba(255,255,255,.96);--m-nav-glass-blur:blur(24px) saturate(150%);--m-nav-glass-border:none;--m-nav-glass-shadow:none}@supports (-webkit-touch-callout:none){:root{--m-nav-glass-bg:rgba(255,255,255,.94);--m-nav-glass-border:none}}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-dim:#000;--surface:#121212;--surface-bright:#1e1e1e;--surface-container-lowest:#000;--surface-container-low:#0e0e0e;--surface-container:#141414;--surface-container-high:#1e1e1e;--surface-container-highest:#252525;--secondary:#7cc8be;--secondary-container:#0f2e2b;--on-secondary:#00201d;--on-secondary-container:#a8ddd6;--tertiary:#e8a0b8;--tertiary-container:#3d1e2a;--on-tertiary:#4a0f2a;--on-tertiary-container:#f8b8cc;--success:#6dd49a;--success-container:#0a2e1c;--warning:#ffb86a;--warning-container:#3a2500;--error:#ff8a7a;--error-container:#3a0a0a;--on-error:#fff;--on-error-container:#ffb4ab;--info:#7fb8ff;--info-container:#102a44;--on-surface:#e6e2e6;--on-surface-variant:#c8c5d1;--on-surface-dim:#9a97a3;--outline:#48464f;--outline-variant:#25242b;--elevation-subtle:none;--elevation-1:none;--elevation-2:none;--elevation-3:none;--scrim:#000;--glass-blur-md:blur(12px) saturate(120%);--m-nav-glass-bg:rgba(18,18,18,.96);--m-nav-glass-border:none;--m-nav-glass-shadow:none}@supports (-webkit-touch-callout:none){html[data-theme=dark]{--m-nav-glass-bg:rgba(10,10,10,.94)}}html{transition:background-color .18s,color .18s}@media (prefers-reduced-motion:reduce){html{transition:none!important}}html[data-theme=dark]{scrollbar-color:var(--outline-variant) transparent}html[data-theme=dark] ::-webkit-scrollbar-thumb{background:var(--outline-variant)}html[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:var(--outline)}html[data-theme=dark] body{background:var(--surface-dim);color:var(--on-surface)}html[data-theme=dark] .desktop-header,html[data-theme=dark] .mobile-top-header,html[data-theme=dark] .mobile-bottom-bar{background:var(--surface)!important;-webkit-backdrop-filter:none!important;border-color:var(--outline-variant)!important}html[data-theme=dark] .card,html[data-theme=dark] .stat-card,html[data-theme=dark] .sidebar{background:var(--surface)!important}html[data-theme=dark] .field-input,html[data-theme=dark] input:not([type=checkbox]):not([type=radio]):not([type=file]),html[data-theme=dark] select,html[data-theme=dark] textarea{background-color:var(--input-bg);color:var(--on-surface);border-color:var(--input-border)}html[data-theme=dark].is-ios .mobile-bottom-bar,html[data-theme=dark].is-apple .mobile-bottom-bar,html[data-theme=dark].is-ios .mobile-top-header,html[data-theme=dark].is-apple .mobile-top-header{background:var(--surface)!important}html[data-theme=dark] ::selection{background:var(--primary-container);color:var(--on-primary-container)}*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html{font-size:var(--fs-lg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}body{font-family:var(--font-sans);background:var(--surface-dim);color:var(--on-surface);max-width:100%;min-height:100vh;line-height:1.6;overflow-x:hidden}body.modal-open{width:100%;top:calc(-1 * var(--scroll-y,0px));position:fixed;overflow:hidden!important}@media (max-width:768px){html{touch-action:manipulation}a,button,[role=button],img,select,input[type=submit],.mobile-bottom-bar{-webkit-touch-callout:none!important;user-select:none!important}body{user-select:none;-webkit-text-size-adjust:100%}input,textarea,select,[contenteditable=true]{user-select:auto}}a{color:var(--primary);text-decoration:none}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,select,textarea{outline:none;font-family:inherit}.text-display{font-size:var(--fs-5xl);letter-spacing:-.02em;font-weight:700;line-height:1.2}.text-headline{font-size:var(--fs-3xl);letter-spacing:-.01em;font-weight:600;line-height:1.3}.text-title{font-size:var(--fs-xl);font-weight:600;line-height:1.4}.text-body{font-size:var(--fs-md);font-weight:400;line-height:1.6}.text-label{font-size:var(--fs-sm);letter-spacing:.02em;font-weight:500;line-height:1.4}.text-caption{font-size:var(--fs-xs);color:var(--on-surface-variant);font-weight:400;line-height:1.4}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);font-size:var(--fs-base);transition:all var(--transition-fast);white-space:nowrap;font-weight:500;line-height:1;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;transition:opacity var(--transition-fast);background:currentColor;position:absolute;top:0;bottom:0;left:0;right:0}.btn:hover:after{opacity:.08}.btn:active:after{opacity:.12}.btn-primary{background:var(--primary);color:var(--on-primary)}.btn-secondary{background:var(--surface-container-high);color:var(--on-surface);border:1px solid var(--outline-variant)}.btn-danger{background:var(--error);color:#fff}.btn-ghost{color:var(--on-surface-variant);background:0 0}.btn-ghost:hover{background:var(--surface-container)}.btn-icon{border-radius:var(--radius-full);width:36px;height:36px;color:var(--on-surface-variant);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;text-decoration:none;transition:background .15s;display:inline-flex}.btn-icon:hover{background:var(--surface-container)}.btn:disabled{opacity:.38;pointer-events:none}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--fs-sm)}.card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:none;border:none;overflow:hidden}.card-elevated{box-shadow:none;border:none}.field{gap:var(--space-2);flex-direction:column;display:flex}.field-label{font-size:var(--fs-sm);color:var(--on-surface-variant);font-weight:500}.field-input{min-height:var(--control-height);height:var(--control-height);padding:0 var(--space-3);background:var(--input-bg);border:1px solid var(--input-border);border-radius:var(--radius-xs);color:var(--on-surface);font-family:inherit;font-size:var(--fs-md);box-shadow:none;transition:border-color .14s,background-color .14s,box-shadow .14s}.field-input:focus{border-color:var(--input-focus-border);background:var(--input-focus-bg);box-shadow:var(--input-focus-ring);outline:none}.field-input:focus-visible{border-color:var(--input-focus-border);background:var(--input-focus-bg);box-shadow:var(--input-focus-ring);outline:none}.field-input::placeholder{color:var(--on-surface-dim)}select.field-input{-webkit-appearance:none;appearance:none;padding-right:var(--space-10);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%238e9bab' viewBox='0 0 256 256'%3E%3Cpath d='M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat}.form-input,.form-select,.form-textarea{border:1px solid var(--outline);border-radius:var(--radius-sm);background:var(--surface);width:100%;padding:0 var(--space-3)}.form-input,.form-select{height:var(--control-height)}.form-textarea{padding:var(--space-2) var(--space-3)}.form-control{width:100%;height:var(--control-height);padding:0 var(--space-3);background:var(--surface-container-low);border:1px solid var(--outline-variant);border-radius:var(--radius-md);font-size:var(--fs-sm);color:var(--on-surface);font-family:inherit}.form-control.textarea{height:auto;padding:var(--space-3);resize:vertical}.form-control:focus{border-color:var(--primary);background:var(--surface);outline:none}.select-inline{min-width:220px;max-width:var(--max-w-xs)}.chip{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--fs-xs);border:none;font-weight:500;display:inline-flex}.chip-success{background:var(--success-container);color:var(--success)}.chip-warning{background:var(--warning-container);color:var(--warning)}.chip-error{background:var(--error-container);color:var(--error)}.chip-info{background:var(--info-container);color:var(--info)}.chip-neutral{background:var(--surface-container-highest);color:var(--on-surface-variant)}.chip-interactive{cursor:pointer;transition:background-color .15s,color .15s}.chip-interactive:hover{box-shadow:none;transform:none;background:var(--primary-container)!important;color:var(--on-primary-container)!important}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;padding:var(--space-3) var(--space-4);font-size:var(--fs-xs);color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--outline-variant);white-space:nowrap;font-weight:600}.data-table td{padding:var(--space-3) var(--space-4);font-size:var(--fs-base);border-bottom:1px solid var(--outline-variant);vertical-align:middle}.data-table tr:last-child td{border-bottom:none}.data-table .text-center{text-align:center}.data-table .text-right{text-align:right}.sidebar{background:var(--surface);width:280px;height:100vh;padding:var(--space-4) 0;z-index:100;box-shadow:none;border-right:none;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{padding:var(--space-6) var(--space-4);margin-bottom:var(--space-4);justify-content:center;align-items:center;display:flex}.sidebar-logo{object-fit:contain;filter:none;width:100%;max-width:200px;height:auto}.sidebar-brand-horizontal,.sidebar-brand-btn{align-items:center;gap:var(--space-3);width:100%;min-width:0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface-container-low);color:var(--on-surface);cursor:pointer;-webkit-appearance:none;appearance:none;user-select:none;box-sizing:border-box;text-align:left;transition:background-color var(--transition-fast) ease, width .3s cubic-bezier(.2, .8, .2, 1), height .3s cubic-bezier(.2, .8, .2, 1), padding .3s cubic-bezier(.2, .8, .2, 1);border:none;font-family:inherit;display:flex}.sidebar-brand-btn:hover{background:var(--surface-container);box-shadow:none}.sidebar-brand-btn:active{transform:scale(.98)}.sidebar-logo-compact{object-fit:contain;filter:none;flex-shrink:0;width:auto;max-width:88px;max-height:40px}.sidebar-brand-text{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.sidebar-school-title{font-size:var(--fs-sm);color:var(--on-surface);white-space:nowrap;text-overflow:ellipsis;margin:0;font-weight:700;line-height:1.2;overflow:hidden}.sidebar-school-sub{font-size:var(--fs-3xs);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-dim);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.sidebar-nav{padding:0 var(--space-3);flex:1;overflow-y:auto}.nav-group{margin-bottom:var(--space-4)}.nav-group:last-child{margin-bottom:0}.nav-group-title{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-dim);padding:var(--space-2) var(--space-4);margin-bottom:var(--space-1);user-select:none;opacity:.85;font-weight:700}.nav-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--on-surface-variant);font-size:var(--fs-base);transition:all var(--transition-fast);margin-bottom:var(--space-1);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;font-weight:500;display:flex;position:relative}.nav-item svg{width:20px;height:20px;color:var(--on-surface-variant);transition:transform var(--transition-fast) ease, color var(--transition-fast) ease;flex-shrink:0}.nav-item:hover{background:var(--surface-container);color:var(--on-surface)}.nav-item:hover svg{color:var(--on-surface);transform:scale(1.06)translate(1px)}.nav-item.active{background:var(--primary-container);color:var(--on-primary-container);box-shadow:none;font-weight:600}.nav-item.active svg{color:var(--on-primary-container)}.sidebar-footer{padding:var(--space-2) var(--space-3);border-top:1px solid var(--outline-variant);flex-shrink:0;margin-top:auto;position:relative}.main-content{margin-left:var(--space-12);min-height:100vh;padding:var(--space-6) var(--space-8) var(--space-8);background:var(--surface-dim);min-width:0;max-width:100%;display:grid;overflow-x:clip}.route-section{grid-area:1/1;width:100%;min-width:0;max-width:100%;overflow-x:clip}.desktop-header{display:none}@media (min-width:769px){.desktop-header{height:72px;padding:0 var(--space-8);-webkit-backdrop-filter:none;border-bottom:1px solid var(--outline-variant);z-index:100;background:rgba(255,255,255,.95);justify-content:flex-end;align-items:center;display:flex;position:fixed;top:0;left:280px;right:0}.main-content{padding-top:calc(72px + var(--space-6))!important}}.desktop-header-right{align-items:center;gap:var(--space-4);display:flex}.desktop-header-btn{border-radius:var(--radius-full);width:40px;height:40px;color:var(--on-surface-variant);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex;position:relative}.desktop-header-btn:hover{background:var(--surface-container);color:var(--on-surface)}.desktop-header-btn.active{background:var(--primary-container);color:var(--on-primary-container)}.desktop-notif-container,.desktop-profile-container{position:relative}.desktop-notif-badge{min-width:16px;height:16px;padding:0 var(--space-1);background:var(--primary);color:#fff;border-radius:var(--radius-full);font-size:var(--fs-3xs);border:1.5px solid var(--surface);justify-content:center;align-items:center;font-weight:700;display:flex;position:absolute;top:4px;right:4px}.desktop-notif-dropdown{background:var(--surface);border-radius:var(--radius-lg);width:320px;box-shadow:none;z-index:1010;border:none;flex-direction:column;display:flex;position:absolute;top:48px;right:0;overflow:hidden}.desktop-notif-header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--outline-variant);background:rgba(0,0,0,.02);justify-content:space-between;align-items:center;display:flex}.desktop-notif-title-wrap{align-items:center;gap:var(--space-2);display:flex}.desktop-notif-title{font-size:var(--fs-base);color:var(--on-surface);font-weight:600}.desktop-notif-unread-pill{font-size:var(--fs-2xs);background:var(--primary-container);color:var(--on-primary-container);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-weight:700}.desktop-notif-action-btn{font-size:var(--fs-xs);color:var(--primary);cursor:pointer;align-items:center;gap:var(--space-1);background:0 0;border:none;font-weight:600;display:flex}.desktop-notif-action-btn:hover{text-decoration:underline}.desktop-notif-body{max-height:280px;overflow-y:auto}.desktop-notif-loading,.desktop-notif-empty{padding:var(--space-6) var(--space-4);color:var(--on-surface-variant);font-size:var(--fs-sm);flex-direction:column;justify-content:center;align-items:center;display:flex}.desktop-notif-row{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:none;border-bottom:1px solid var(--outline-variant);text-align:left;cursor:pointer;width:100%;color:var(--on-surface);transition:background var(--transition-fast);background:0 0;display:flex}.desktop-notif-row:last-child{border-bottom:none}.desktop-notif-row:hover{background:var(--surface-container-low)}.desktop-notif-row.unread{background:color-mix(in srgb, var(--primary) 4%, transparent)}.desktop-notif-row-icon{border-radius:var(--radius-sm);background:var(--surface-container-highest);width:28px;height:28px;color:var(--on-surface-variant);flex-shrink:0;justify-content:center;align-items:center;display:flex}.desktop-notif-row-icon.behavior_request_new{background:var(--warning-container);color:var(--warning)}.desktop-notif-row-icon.behavior_request_approved,.desktop-notif-row-icon.behavior_update{background:var(--success-container);color:var(--success)}.desktop-notif-row-icon.behavior_request_rejected{background:var(--error-container);color:var(--error)}.desktop-notif-row-icon.teacher_attendance_marked,.desktop-notif-row-icon.attendance_update,.desktop-notif-row-icon.activity_update{background:var(--info-container);color:var(--info)}.desktop-notif-row-icon.attendance_reminder,.desktop-notif-row-icon.attendance_not_checked,.desktop-notif-row-icon.duty_reminder{background:var(--warning-container);color:var(--warning)}.desktop-notif-row-icon.student_consecutive_absence,.desktop-notif-row-icon.student_low_behavior_score,.desktop-notif-row-icon.subject_attendance_absence{background:var(--error-container);color:var(--error)}.desktop-notif-row-icon.activity_today,.desktop-notif-row-icon.activity_starting_today{color:#7c3aed;background:rgba(124,58,237,.12)}.desktop-notif-row-icon.broadcast{color:#6366f1;background:rgba(99,102,241,.12)}.desktop-notif-row-icon.duty_checkin_new,.desktop-notif-row-icon.duty_checkin_reviewed{background:color-mix(in srgb, var(--primary) 12%, transparent);color:var(--primary)}.desktop-notif-row-icon.class_start,.desktop-notif-row-icon.assignment{background:var(--info-container);color:var(--info)}.desktop-notif-row-icon.ai_helper{color:#7e22ce;background:rgba(168,85,247,.14)}.desktop-notif-row-icon.billing_reminder{background:var(--warning-container);color:var(--warning)}.desktop-notif-row-content{flex:1;min-width:0}.desktop-notif-row-text{font-size:var(--fs-sm);color:var(--on-surface);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.desktop-notif-row-time{font-size:var(--fs-2xs);color:var(--on-surface-dim);margin-top:var(--space-1)}.desktop-notif-row-dot{background:var(--primary);border-radius:var(--radius-full);width:6px;height:6px;margin-top:var(--space-2);flex-shrink:0}.desktop-notif-footer{padding:var(--space-2) var(--space-4);border-top:1px solid var(--outline-variant);text-align:center;background:rgba(0,0,0,.01)}.desktop-notif-footer a{font-size:var(--fs-xs);color:var(--primary);font-weight:600}.desktop-notif-footer a:hover{text-decoration:underline}.desktop-header-divider{background:var(--outline-variant);width:1px;height:24px;margin:0 var(--space-1)}.desktop-profile-card{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);user-select:none;background:var(--surface-container-low);border:1px solid var(--outline-variant);display:flex}.desktop-profile-avatar{border-radius:var(--radius-sm);background:var(--primary-container);width:32px;height:32px;color:var(--on-primary-container);font-size:var(--fs-base);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.desktop-profile-info{text-align:left}.desktop-profile-name{font-size:var(--fs-sm);color:var(--on-surface);white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-weight:600;overflow:hidden}.desktop-profile-role{font-size:var(--fs-2xs);color:var(--on-surface-variant);margin-top:var(--space-1)}.desktop-header-btn.danger-hover:hover{background:var(--error-container);color:var(--error)}.dropdown-backdrop{z-index:var(--zi-overlay);background:0 0;position:fixed;top:0;bottom:0;left:0;right:0}.page-header h1{font-size:var(--fs-3xl);margin-bottom:var(--space-1);font-weight:700}.page-header p{color:var(--on-surface-variant);font-size:var(--fs-base)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.fade-enter-active{animation:fadeIn var(--transition-fast)}.fade-leave-active{animation:fadeIn var(--transition-fast) reverse}.status-dot{border-radius:var(--radius-full);width:8px;height:8px;display:inline-block}.status-dot.present{background:var(--success)}.status-dot.absent{background:var(--error)}.status-dot.sick_leave{background:var(--warning)}.status-dot.personal_leave{background:var(--info)}.toggle-group{border-radius:var(--radius-full);border:1px solid var(--outline-variant);background:var(--surface-container-low);display:inline-flex;overflow:hidden}.toggle-group label{padding:var(--space-2) var(--space-4);font-size:var(--fs-xs);cursor:pointer;transition:all var(--transition-fast);color:var(--on-surface-variant);border-right:1px solid var(--outline-variant);user-select:none;justify-content:center;align-items:center;font-weight:500;display:flex}.toggle-group label:last-child{border-right:none}.toggle-group input{display:none}.toggle-group input:checked+span{background:var(--primary-container);color:var(--on-primary-container)}.toggle-group label:has(input:checked){background:var(--primary-container);color:var(--on-primary-container)}.toggle-group label[data-status=present]:has(input:checked){background:var(--success-container);color:var(--success)}.toggle-group label[data-status=absent]:has(input:checked){background:var(--error-container);color:var(--error)}.toggle-group label[data-status=sick_leave]:has(input:checked){background:var(--warning-container);color:var(--warning)}.toggle-group label[data-status=personal_leave]:has(input:checked){background:var(--info-container);color:var(--info)}.empty-state{padding:var(--space-12) var(--space-8);color:var(--on-surface-variant);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state svg{width:48px;height:48px;margin-bottom:var(--space-4);opacity:.4}.toast{bottom:var(--space-6);right:var(--space-6);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--fs-base);z-index:2000;animation:slideUp var(--transition-normal) ease-out;box-shadow:none;font-weight:500;position:fixed}.toast-success{background:var(--success-container);color:var(--success)}.toast-error{background:var(--error-container);color:var(--error)}@media (max-width:768px){.sidebar{z-index:100;border-top:none;border-right:none;flex-direction:row;width:100%;min-height:auto;padding:0;position:fixed;top:auto;bottom:0;left:0;right:0}.sidebar-brand,.sidebar-footer{display:none}.sidebar-nav{width:100%;padding:var(--space-2) 0;flex-direction:row;justify-content:space-around;align-items:center;display:flex}.nav-item{gap:var(--space-1);padding:var(--space-2);font-size:var(--fs-2xs);border-radius:var(--radius-sm);flex-direction:column;margin:0}.main-content{padding:var(--space-3);padding-bottom:var(--space-12);margin-left:0}}.upload-zone{border:2px dashed var(--outline);border-radius:var(--radius-lg);padding:var(--space-10);text-align:center;cursor:pointer;transition:all var(--transition-fast);background:var(--surface-container-low)}.upload-zone:hover,.upload-zone.active{border-color:var(--primary);background:var(--primary-container)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--outline-variant);border-radius:var(--radius-nano)}::-webkit-scrollbar-thumb:hover{background:var(--outline)}.more-menu{position:relative}.more-menu-dropdown{background:var(--surface);border-radius:var(--radius-md);padding:var(--space-1);min-width:180px;box-shadow:none;z-index:var(--zi-modal);animation:slideUp var(--transition-fast) ease-out;border:none;position:absolute;top:100%;right:0}.more-menu-backdrop{z-index:1040;background:0 0;position:fixed;top:0;bottom:0;left:0;right:0}.more-menu-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);font-size:var(--fs-sm);color:var(--on-surface);cursor:pointer;width:100%;transition:background var(--transition-fast);background:0 0;border:none;display:flex}.more-menu-item:hover{background:var(--surface-container)}.more-menu-item.danger{color:var(--error)}@media (max-width:768px){.more-menu-backdrop{background:rgba(0,0,0,.3)}.more-menu-dropdown{border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-2) var(--space-3);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));min-width:unset;animation:.2s ease-out mobileSheet;position:fixed;top:auto;bottom:0;left:0;right:0}.more-menu-item{padding:var(--space-3) var(--space-4);font-size:var(--fs-base)}@keyframes mobileSheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}}.page-actions-bar{align-items:center;gap:var(--space-3);margin-top:var(--space-4);margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);flex-wrap:wrap;display:flex}.page-actions-bar__spacer{flex:auto}.page-actions-bar--end{justify-content:flex-end}.page-actions-bar--center{border-radius:var(--radius-pill);justify-content:center;width:fit-content;margin-left:auto;margin-right:auto}@media (max-width:640px){.page-actions-bar--center{border-radius:var(--radius-pill);width:100%}.page-actions-bar{flex-direction:column;align-items:stretch}.page-actions-bar .btn,.page-actions-bar button,.page-actions-bar a{justify-content:center;width:100%;min-height:40px}.page-actions-bar__spacer{display:none}}.stats-row{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.stat-card{background:var(--surface-container);border:1px solid var(--outline-variant);border-radius:var(--radius-lg);padding:var(--space-5)}.stat-card .stat-label{font-size:var(--fs-xs);color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.stat-card .stat-value{font-size:var(--fs-4xl);margin-top:var(--space-1);color:var(--on-surface);font-weight:700}.toolbar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.toolbar .spacer{flex:1}.fluent-page-enter-active,.fluent-page-leave-active{transition:opacity .15s cubic-bezier(.1,.9,.2,1)}.fluent-page-enter-from{opacity:0}.fluent-page-enter-to{opacity:1}.fluent-page-leave-active{z-index:1;pointer-events:none}.fluent-page-enter-active{z-index:2}.fluent-page-leave-to{opacity:0}@media (prefers-reduced-motion:reduce){.fluent-page-enter-active,.fluent-page-leave-active,.mobile-slide-left-enter-active,.mobile-slide-left-leave-active,.mobile-slide-right-enter-active,.mobile-slide-right-leave-active{transition:none}}@media (max-width:768px){.mobile-slide-left-enter-active,.mobile-slide-left-leave-active,.mobile-slide-right-enter-active,.mobile-slide-right-leave-active{transition:transform var(--transition-normal), opacity var(--transition-normal)}.mobile-slide-left-enter-active,.mobile-slide-right-enter-active{z-index:2}.mobile-slide-left-leave-active,.mobile-slide-right-leave-active{z-index:1;pointer-events:none}.mobile-slide-left-enter-from,.mobile-slide-right-leave-to{opacity:0;transform:translate(-12%)}.mobile-slide-right-enter-from,.mobile-slide-left-leave-to{opacity:0;transform:translate(12%)}}@keyframes rowFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.card{transition:background-color var(--transition-fast) ease, opacity var(--transition-fast) ease}a.card:hover,.card-clickable:hover{background:var(--surface-container-low);box-shadow:none}.btn{transition:all .15s}.btn:active{transform:scale(.97)}.chip{transition:transform .15s}.chip:hover{transform:scale(1.03)}.toast{animation:.3s cubic-bezier(.22,1,.36,1) toastIn}@keyframes toastIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg, var(--surface-container) 25%, var(--surface-container-high) 50%, var(--surface-container) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.progress-bar{background:var(--surface-container);border-radius:var(--radius-nano);height:8px;overflow:hidden}.progress-bar .progress-fill{border-radius:var(--radius-nano);height:100%;transition:width .3s}.progress-bar .progress-fill.success{background:var(--success)}.progress-bar .progress-fill.warning{background:var(--warning)}.progress-bar .progress-fill.error{background:var(--error)}.progress-bar .progress-fill.primary{background:var(--primary)}.table-responsive{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (max-width:768px){.table-responsive th:first-child,.table-responsive td:first-child{background:var(--surface);z-index:1;position:sticky;left:0;box-shadow:2px 0 4px rgba(0,0,0,.04)}}.mobile-top-header,.mobile-bottom-bar{display:none}@media (max-width:768px){:root{--table-sticky-bottom-offset:calc(var(--m-nav-h) + var(--space-4) + env(safe-area-inset-bottom,0px))}.sidebar{display:none!important}.main-content{width:100%!important;max-width:100vw!important;padding:calc(env(safe-area-inset-top,0px) + var(--space-4)) var(--space-3) var(--space-3)!important;padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))!important;margin-left:0!important;overflow-x:clip!important}.card{border-radius:var(--radius-md)!important;border-left:1px solid var(--outline-variant)!important;border-right:1px solid var(--outline-variant)!important;margin-left:0!important;margin-right:0!important}.page-header{margin-bottom:var(--space-4)}.page-header h1{font-size:var(--fs-2xl)}.page-header p{font-size:var(--fs-sm)}.toolbar{gap:var(--space-2)}.toolbar .spacer{display:none}.toolbar .field,.toolbar .field-input{width:100%}.stats-row{gap:var(--space-2)!important;margin-bottom:var(--space-3)!important;grid-template-columns:repeat(2,1fr)!important;margin-left:0!important;margin-right:0!important}.stat-card{padding:var(--space-3)!important;border-radius:var(--radius-sm)!important}.stat-card .stat-value{font-size:var(--fs-2xl)}.stat-card .stat-label{font-size:var(--fs-2xs)}.data-table th,.data-table td{padding:var(--space-3) var(--space-2)!important;font-size:var(--fs-sm)!important}.data-table th:first-child,.data-table td:first-child{padding-left:var(--space-4)!important}.data-table th:last-child,.data-table td:last-child{padding-right:var(--space-4)!important}.toggle-group label{padding:var(--space-2) var(--space-2)!important;font-size:var(--fs-2xs)!important}.grade-bar{gap:var(--space-2)!important}.grade-label{min-width:28px!important;font-size:var(--fs-xs)!important}.bar-meta{font-size:var(--fs-2xs)!important}.btn-back{font-size:var(--fs-xs);padding:var(--space-1) var(--space-3);margin-bottom:var(--space-2)}.mobile-top-header{-webkit-backdrop-filter:none;z-index:999;height:56px;padding:0 var(--space-4);box-shadow:none;background:rgba(255,255,255,.95);border-bottom:none;justify-content:space-between;align-items:center;display:flex;position:fixed;top:0;left:0;right:0}.mobile-user-info{align-items:center;gap:var(--space-3);display:flex}.mobile-user-info .user-avatar{background:var(--primary-container);width:32px;height:32px;color:var(--on-primary-container);font-size:var(--fs-sm);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.mobile-user-meta{flex-direction:column;line-height:1.25;display:flex}.mobile-user-meta .user-name{font-size:var(--fs-sm);color:var(--on-surface);font-weight:600}.mobile-user-meta .user-role{font-size:var(--fs-2xs);color:var(--on-surface-variant)}.mobile-header-actions{align-items:center;display:flex}.mobile-bottom-bar{height:calc(var(--m-nav-h) + var(--space-4) + env(safe-area-inset-bottom,0px));background:var(--surface);z-index:var(--zi-sticky);box-shadow:none;border-top:none;border-radius:0;flex-direction:column;justify-content:flex-start;padding:0;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden}.mobile-nav-items{height:var(--m-nav-h);flex:0 0 var(--m-nav-h);grid-template-columns:repeat(5,1fr);gap:0;padding:0;display:grid;position:relative}.mobile-nav-items.three-cols{grid-template-columns:repeat(3,1fr)!important}.mobile-nav-selector{z-index:1;justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-1);color:var(--on-surface-variant);font-size:var(--fs-3xs);transition:color var(--transition-fast);text-align:center;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:0;flex-direction:column;min-width:0;font-weight:500;line-height:1.2;text-decoration:none;display:flex;position:relative;overflow:hidden}.mobile-nav-selector.active{color:var(--primary)}.mobile-nav-selector.accent.active{color:#7c3aed}.mobile-nav-selector svg{fill:none;width:22px;height:22px;transition:color var(--transition-fast), fill var(--transition-fast);flex-shrink:0}.mobile-nav-selector.active svg{fill:currentColor}.mobile-nav-selector:active svg{transform:scale(.9)}.mobile-nav-selector span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.edit-history{padding:var(--space-2)!important}.edit-entry{flex-wrap:wrap;gap:var(--space-1)!important}}.page-back-btn,.btn-back{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-full);background:var(--surface-container-low);color:var(--on-surface-variant);font-family:inherit;font-size:var(--fs-xs);border:1px solid var(--outline-variant);cursor:pointer;transition:all var(--transition-fast);width:fit-content;box-shadow:none;font-weight:600;text-decoration:none;display:inline-flex}.page-back-btn:hover,.btn-back:hover{color:var(--primary);background:var(--surface-container-high);border-color:color-mix(in srgb, var(--primary) 30%, var(--outline-variant));transform:translate(-2px)}.page-back-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-back:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.calendar-grid{gap:var(--space-1);grid-template-columns:repeat(7,1fr);display:grid}.calendar-grid .day-header{text-align:center;font-size:var(--fs-2xs);color:var(--on-surface-variant);padding:var(--space-1);font-weight:600}.calendar-grid .day-cell{aspect-ratio:1;border-radius:var(--radius-sm);font-size:var(--fs-xs);justify-content:center;align-items:center;font-weight:500;transition:transform .15s;display:flex}.calendar-grid .day-cell:hover{transform:scale(1.1)}.calendar-grid .day-cell.present{background:var(--success-container);color:var(--success)}.calendar-grid .day-cell.absent{background:var(--error-container);color:var(--error)}.calendar-grid .day-cell.sick_leave{background:var(--warning-container);color:var(--warning)}.calendar-grid .day-cell.personal_leave{background:var(--info-container);color:var(--info)}.calendar-grid .day-cell.empty{background:0 0}.edit-history{background:var(--surface-container-low);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin-top:var(--space-1);font-size:var(--fs-xs);animation:.2s rowFadeIn}.edit-history .edit-entry{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;border-bottom:1px solid var(--outline-variant);display:flex}.edit-history .edit-entry:last-child{border-bottom:none}.grade-bar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.grade-bar .grade-label{width:36px;font-size:var(--fs-sm);text-align:right;font-weight:600}.grade-bar .bar-track{background:var(--surface-container);border-radius:var(--radius-xs);flex:1;height:24px;overflow:hidden}.grade-bar .bar-fill{border-radius:var(--radius-xs);background:var(--primary);height:100%;padding-right:var(--space-2);font-size:var(--fs-2xs);color:var(--on-primary);justify-content:flex-end;align-items:center;min-width:36px;font-weight:600;transition:width .6s cubic-bezier(.22,1,.36,1);display:flex}.grade-bar .bar-meta{width:60px;font-size:var(--fs-xs);color:var(--on-surface-variant)}.hub-back-btn{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-1);margin-bottom:var(--space-2);color:var(--primary);font-weight:500;font-size:var(--fs-base);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;font-family:inherit;display:inline-flex}.hub-back-btn:hover{background:var(--surface-container-high)}@supports (corner-shape:squircle){html.is-ios .card,html.is-ios .sheet,html.is-ios .review-sheet,html.is-ios .score-sheet,html.is-ios .notif-dropdown,html.is-ios .install-modal,html.is-ios .ai-brief,html.is-ios .ai-brief-inner,html.is-ios .ai-hero,html.is-ios .ai-input,html.is-ios .ai-msg-bubble,html.is-ios .btn,html.is-ios .btn-action,html.is-ios .btn-icon,html.is-ios .filter-pill,html.is-ios .tab-btn,html.is-ios .chip,html.is-ios .req-card,html.is-ios .stat-card,html.is-ios .field-input,html.is-ios .toggle-group,html.is-ios .student-row,html.is-ios .notif-item,html.is-ios .sheet-item,html.is-ios .bento-item,html.is-ios .ios-grouped-list,html.is-ios .ios-list-item,html.is-ios .ios-icon-box,html.is-ios .profile-glass-card,html.is-ios .toast,html.is-ios .install-banner,html.is-ios .student-avatar,html.is-ios .sheet-avatar,html.is-ios .pg-btn,html.is-ios .mobile-nav-items a,html.is-ios .mobile-nav-items button{corner-shape:squircle}}html.is-ios{--radius-sm:12px;--radius-md:18px;--radius-lg:28px;--radius-xl:36px;--radius-device:44px}html.is-ios .card,html.is-ios .req-card,html.is-ios .ai-hero,html.is-ios .stat-card,html.is-ios .picker,html.is-ios .detail,html.is-ios .empty-detail{border-radius:var(--radius-lg)!important}html.is-ios .ai-brief{--brief-radius:28px}@media (max-width:768px){html.is-ios .ai-brief{--brief-radius:32px}}html.is-ios .sheet,html.is-ios .review-sheet,html.is-ios .score-sheet,html.is-ios .install-modal,html.is-ios .dp-popup,html.is-ios .notif-dropdown{border-radius:var(--radius-device) var(--radius-device) 0 0!important;background:var(--surface)!important;box-shadow:none!important;border:none!important}html.is-ios .sheet.sheet-fullscreen{height:100dvh!important;max-height:100%!important;box-shadow:none!important;border:none!important;border-radius:0!important}@media (min-width:600px){html.is-ios .sheet,html.is-ios .review-sheet,html.is-ios .score-sheet,html.is-ios .install-modal,html.is-ios .dp-popup,html.is-ios .notif-dropdown{border-radius:var(--radius-xl)!important;box-shadow:none!important;border:none!important}}@media (max-width:768px){html.is-ios .mobile-bottom-bar,html.is-apple .mobile-bottom-bar{background:var(--surface)!important;-webkit-backdrop-filter:none!important;box-shadow:none!important;border:none!important;border-radius:0!important}html.is-ios .mobile-top-header,html.is-apple .mobile-top-header{background:var(--surface)!important;-webkit-backdrop-filter:none!important;border-bottom:none!important}}html.is-apple .desktop-header{background:color-mix(in srgb, var(--surface) 65%, transparent)!important;-webkit-backdrop-filter:blur(20px)!important}html.is-ios .install-banner,html.is-ios .toast{border-radius:var(--radius-xl)!important}html.is-ios .filter-pill,html.is-ios .tab-btn{border-radius:var(--radius-md)!important}html.is-ios .btn,html.is-ios .btn-action{border-radius:var(--radius-sm)!important}html.is-ios .btn-icon,html.is-ios .pg-btn,html.is-ios .header-btn,html.is-ios .item-delete{border-radius:var(--radius-xs)!important}@media (max-width:768px){html.is-ios .card>div[style*=border-radius],html.is-ios .card>p[style*=border-radius],html.is-ios .approval-warn,html.is-ios .review-note{border-radius:var(--radius-md)!important}}html.is-ios .score-sheet .detail-stat-card,html.is-ios .score-sheet .classroom-detail-row,html.is-ios .score-sheet .sheet-summary,html.is-ios .score-sheet .chip-neutral,html.is-ios .sheet .detail-stat-card,html.is-ios .sheet .classroom-detail-row,html.is-ios .sheet .sheet-summary,html.is-ios .sheet .chip-neutral,html.is-ios .review-sheet .detail-stat-card,html.is-ios .review-sheet .classroom-detail-row,html.is-ios .review-sheet .sheet-summary,html.is-ios .review-sheet .chip-neutral,html.is-ios .drawer-content .detail-stat-card,html.is-ios .drawer-content .classroom-detail-row,html.is-ios .drawer-content .sheet-summary,html.is-ios .drawer-content .chip-neutral,html.is-ios .drawer-content .drawer-table-wrap,html.is-ios .notification-sheet .notif-popup-row{-webkit-backdrop-filter:saturate(210%)blur(14px)!important;box-shadow:none!important;background:rgba(255,255,255,.4)!important;border:none!important}html.is-ios .score-sheet .chip-neutral,html.is-ios .sheet .chip-neutral,html.is-ios .review-sheet .chip-neutral,html.is-ios .drawer-content .chip-neutral{-webkit-backdrop-filter:saturate(190%)blur(8px)!important;background:rgba(255,255,255,.25)!important;border:none!important}html.is-ios .drawer-content .drawer-table th{background:rgba(255,255,255,.2)!important}@media (display-mode:standalone){html.is-ios{--radius-lg:32px;--radius-xl:40px;--radius-device:50px}}@media (max-width:768px){html.is-capacitor .mobile-top-header{height:calc(56px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}html.is-capacitor .main-content{padding-top:calc(env(safe-area-inset-top,0px) + var(--space-4))!important}html.is-capacitor .login-page{padding-top:calc(env(safe-area-inset-top,0px) + var(--space-6))!important}html.is-capacitor .pv-topbar{height:calc(60px + max(env(safe-area-inset-top,0px), 32px))!important;min-height:calc(60px + max(env(safe-area-inset-top,0px), 32px))!important;padding-top:max(env(safe-area-inset-top,0px), 32px)!important}}html:not(.is-apple):not(.is-ios) .mobile-bottom-bar,html:not(.is-apple):not(.is-ios) .mobile-bottom-bar{background:var(--surface)!important;-webkit-backdrop-filter:none!important;box-shadow:none!important;border:none!important}html:not(.is-apple):not(.is-ios) .mobile-top-header{-webkit-backdrop-filter:none!important;background:rgba(255,255,255,.95)!important}@supports (backdrop-filter:blur(1px)){html:not(.is-apple):not(.is-ios) .mobile-top-header{transform:none;background:var(--surface)!important;-webkit-backdrop-filter:none!important;border-bottom:none!important}}html:not(.is-apple):not(.is-ios) .desktop-header{background:var(--surface)!important;-webkit-backdrop-filter:none!important}@supports (backdrop-filter:blur(1px)){html:not(.is-apple):not(.is-ios) .desktop-header{transform:none;background:var(--surface)!important;-webkit-backdrop-filter:none!important}}@media (max-width:768px){.mobile-bottom-bar.is-collapsed-bubble{cursor:pointer;width:var(--m-nav-h)!important;background:var(--primary)!important;box-shadow:none!important;border:none!important;border-radius:50%!important;transition:all .3s cubic-bezier(.2,.8,.2,1)!important;left:auto!important;right:16px!important}.mobile-bottom-bar.is-collapsed-bubble .collapsed-nav-trigger{color:#fff;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:100%;height:100%;padding:0;transition:transform .2s;display:flex}.mobile-bottom-bar.is-collapsed-bubble:active{transform:scale(.92)!important}}body{background:var(--surface-dim)}::selection{color:var(--on-primary-container);background:var(--primary-container)}:where(button,a,[role=button]):focus-visible{outline:2px solid var(--primary);outline-offset:2px}:where(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea):focus-visible{border-color:var(--input-focus-border);background-color:var(--input-focus-bg);box-shadow:var(--input-focus-ring);outline:none}.card{background:var(--surface);box-shadow:none;border:none}.btn{min-height:42px;padding-inline:var(--space-5);border-radius:var(--radius-full);letter-spacing:0;box-shadow:none;border:none;font-weight:650}.btn-sm{min-height:34px}.btn-primary{box-shadow:none;border:none}.btn-secondary{background:var(--secondary-container);color:var(--on-secondary-container);box-shadow:none;border:none}.btn-ghost:hover,.btn-icon:hover{background:var(--primary-container);color:var(--on-primary-container);box-shadow:none}.field-input,input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{min-height:var(--control-height);height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--input-border);border-radius:var(--radius-xs);background-color:var(--input-bg);color:var(--on-surface);box-shadow:none;font-family:inherit;font-size:var(--fs-md);transition:border-color .14s,background-color .14s,box-shadow .14s}textarea{height:auto;min-height:84px;padding:var(--space-2) var(--space-3);line-height:var(--lh-base)}.field-input.compact,input.compact:not([type=checkbox]):not([type=radio]):not([type=file]),select.compact{min-height:var(--control-height-compact);height:var(--control-height-compact);font-size:var(--fs-sm)}.field-input:focus,input:not([type=checkbox]):not([type=radio]):not([type=file]):focus,select:focus,textarea:focus{border-color:var(--input-focus-border);background-color:var(--input-focus-bg);box-shadow:var(--input-focus-ring);outline:none}.field-input:focus-visible{border-color:var(--input-focus-border);background-color:var(--input-focus-bg);box-shadow:var(--input-focus-ring);outline:none}input:not([type=checkbox]):not([type=radio]):not([type=file]):focus-visible{border-color:var(--input-focus-border);background-color:var(--input-focus-bg);box-shadow:var(--input-focus-ring);outline:none}select:focus-visible{border-color:var(--input-focus-border);background-color:var(--input-focus-bg);box-shadow:var(--input-focus-ring);outline:none}textarea:focus-visible{border-color:var(--input-focus-border);background-color:var(--input-focus-bg);box-shadow:var(--input-focus-ring);outline:none}.ui-checkbox{width:1px;height:1px;margin:calc(-1 * var(--space-1));clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;position:absolute;overflow:hidden}.ui-checkbox__control{box-sizing:border-box;border:1px solid var(--outline);border-radius:var(--radius-nano);background:var(--surface-container-lowest);width:20px;height:20px;box-shadow:none;transition:background-color var(--transition-fast), border-color var(--transition-fast);flex:0 0 20px;place-items:center;display:grid}.ui-checkbox__control:after{content:"";border:solid var(--on-primary);opacity:0;width:9px;height:5px;transition:opacity var(--transition-fast), transform var(--transition-fast);border-width:0 0 2px 2px;transform:rotate(-45deg)translate(1px,-1px)scale(.7)}.ui-checkbox:checked+.ui-checkbox__control{border-color:var(--primary);background:var(--primary)}.ui-checkbox:checked+.ui-checkbox__control:after{opacity:1;transform:rotate(-45deg)translate(1px,-1px)scale(1)}.ui-checkbox:focus-visible+.ui-checkbox__control{outline:2px solid var(--primary);outline-offset:2px}.ui-checkbox:disabled+.ui-checkbox__control{border-color:var(--outline-variant);background:var(--surface-container)}.ui-checkbox:checked:disabled+.ui-checkbox__control{border-color:color-mix(in srgb, var(--primary) 45%, var(--outline-variant));background:color-mix(in srgb, var(--primary) 42%, var(--surface-container))}.switch-toggle{cursor:pointer;user-select:none;vertical-align:middle;flex-shrink:0;align-items:center;width:44px;height:24px;display:inline-flex;position:relative}.switch-toggle--disabled,.switch-toggle input:disabled+.switch-slider{cursor:not-allowed;opacity:.5}.switch-toggle input{width:1px;height:1px;margin:calc(-1 * var(--space-1));clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;padding:0;position:absolute;overflow:hidden}.switch-slider{background-color:var(--outline-variant);border-radius:var(--radius-pill);box-shadow:none;transition:background-color var(--transition-fast) cubic-bezier(.4, 0, .2, 1);position:absolute;top:0;bottom:0;left:0;right:0}.switch-slider:before{content:"";background-color:var(--on-primary);width:18px;height:18px;box-shadow:none;transition:transform var(--transition-fast) cubic-bezier(.4, 0, .2, 1);border-radius:50%;position:absolute;bottom:3px;left:3px}.switch-toggle input:checked+.switch-slider{background-color:var(--primary)}.switch-toggle input:checked+.switch-slider:before{transform:translate(20px)}.switch-toggle input:focus-visible+.switch-slider{outline:2px solid var(--primary);outline-offset:2px}.search-box,.search-box-wrap,.search-wrap,.search-input-wrap,.search-input-wrapper,.search-field,.data-table-search,.attendance-search,.duty-search-field,.duty-board-search,.pool-search,.teacher-picker-search,.teacher-view-search,.notif-search-field,.history-search-field,.drive-search{align-items:center!important;gap:var(--space-2)!important;min-height:var(--control-height-compact)!important;height:var(--control-height-compact)!important;padding:0 var(--space-3)!important;border:1px solid var(--input-border)!important;border-radius:var(--radius-xs)!important;background-color:var(--input-bg)!important;color:var(--on-surface-variant)!important;box-sizing:border-box!important;transition:border-color .14s,background-color .14s,box-shadow .14s!important;display:flex!important}.search-box:focus-within,.search-box-wrap:focus-within,.search-wrap:focus-within,.search-input-wrap:focus-within,.search-input-wrapper:focus-within,.search-field:focus-within,.data-table-search:focus-within,.attendance-search:focus-within,.duty-search-field:focus-within,.duty-board-search:focus-within,.pool-search:focus-within,.teacher-picker-search:focus-within,.teacher-view-search:focus-within,.notif-search-field:focus-within,.history-search-field:focus-within,.drive-search:focus-within{border-color:var(--input-focus-border)!important;background-color:var(--input-focus-bg)!important;box-shadow:var(--input-focus-ring)!important}.search-box>svg,.search-box>.search-icon,.search-box-wrap>svg,.search-box-wrap>.search-icon,.search-wrap>svg,.search-wrap>.search-icon,.search-input-wrap>svg,.search-input-wrap>.search-icon,.search-input-wrapper>svg,.search-input-wrapper>.search-icon,.search-field>svg,.search-field>.search-icon,.data-table-search>svg,.attendance-search>svg,.duty-search-field>svg,.duty-board-search>svg,.pool-search>svg,.teacher-picker-search>svg,.teacher-view-search>svg,.notif-search-field>svg,.history-search-field>svg,.drive-search>svg{color:var(--on-surface-variant)!important;pointer-events:none!important;flex-shrink:0!important;margin:0!important;position:static!important;top:auto!important;bottom:auto!important;left:auto!important;right:auto!important;transform:none!important}.search-box>button,.search-box-wrap>button,.search-wrap>button,.search-input-wrap>button,.search-input-wrapper>button,.search-field>button,.notif-search-field>button,.history-search-field>button,.data-table-search>button{color:var(--on-surface-variant)!important;cursor:pointer!important;background:0 0!important;border:0!important;flex-shrink:0!important;justify-content:center!important;align-items:center!important;padding:0!important;display:flex!important;position:static!important;top:auto!important;right:auto!important;transform:none!important}.spotlight-input-wrap input,.spotlight-input-wrap input:focus,.data-table-search input,.data-table-search input:focus,.search-select-search input,.search-select-search input:focus,.search-box input,.search-box-wrap input,.search-wrap input,.search-input-wrap input,.search-input-wrapper input,.search-box input:focus,.search-box-wrap input:focus,.search-wrap input:focus,.search-input-wrap input:focus,.search-input-wrapper input:focus,.search-field input,.search-field input:focus,.attendance-search input,.attendance-search input:focus,.duty-search-field input,.duty-search-field input:focus,.duty-board-search input,.duty-board-search input:focus,.pool-search input,.pool-search input:focus,.domain-field input,.domain-field input:focus,.teacher-picker-search input,.teacher-picker-search input:focus,.teacher-view-search input,.teacher-view-search input:focus,.notif-search-field input,.notif-search-field input:focus,.history-search-field input,.history-search-field input:focus,.drive-search input,.drive-search input:focus{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.spotlight-input-wrap input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.data-table-search input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.search-select-search input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.search-box input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.search-field input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.attendance-search input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.duty-search-field input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.duty-board-search input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.pool-search input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.domain-field input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.teacher-picker-search input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.teacher-view-search input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.notif-search-field input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.history-search-field input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}.drive-search input:focus-visible{width:100%!important;min-width:0!important;height:100%!important;min-height:0!important;box-shadow:none!important;color:var(--on-surface)!important;font-family:inherit!important;font-size:var(--fs-sm)!important;-webkit-appearance:none!important;appearance:none!important;background:0 0!important;border:0!important;border-radius:0!important;outline:0!important;flex:auto!important;padding:0!important;transition:none!important}input[type=search]::-webkit-search-decoration{-webkit-appearance:none!important;display:none!important}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none!important;display:none!important}input[type=search]::-webkit-search-results-button{-webkit-appearance:none!important;display:none!important}input[type=search]::-webkit-search-results-decoration{-webkit-appearance:none!important;display:none!important}input::-webkit-search-decoration{-webkit-appearance:none!important;display:none!important}input::-webkit-search-cancel-button{-webkit-appearance:none!important;display:none!important}input::-webkit-search-results-button{-webkit-appearance:none!important;display:none!important}input::-webkit-search-results-decoration{-webkit-appearance:none!important;display:none!important}.chip{min-height:28px;padding-inline:var(--space-3);font-weight:650}.page-header{margin-bottom:var(--space-6)}.page-header h1{color:var(--on-surface);letter-spacing:-.035em;font-size:max(1.55rem,min(2.1vw,2rem));font-weight:750;line-height:1.2}.page-header p{max-width:66ch;margin-top:var(--space-2);font-size:var(--fs-base);line-height:1.55}.stat-card{border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--radius-sm);background:var(--primary-container);box-shadow:none;border-color:transparent}.stat-card:nth-child(3n+2){background:var(--secondary-container);border-radius:var(--radius-lg) var(--radius-sm) var(--radius-lg) var(--radius-lg)}.stat-card:nth-child(3n){background:var(--tertiary-container);border-radius:var(--radius-sm) var(--radius-lg) var(--radius-lg) var(--radius-lg)}.data-table th{background:var(--surface-container-low);color:var(--on-surface-variant);text-transform:none;letter-spacing:0;border-bottom:0}.data-table td{border-color:color-mix(in srgb, var(--outline-variant) 68%, transparent)}.data-table tr:hover td{background:color-mix(in srgb, var(--primary-container) 34%, transparent)}.sidebar{width:var(--sidebar-width,256px);border-radius:var(--radius-lg);background:var(--surface);height:calc(100vh - 24px);box-shadow:none;border:none;transition:width .3s cubic-bezier(.2,.8,.2,1),padding .3s cubic-bezier(.2,.8,.2,1);top:12px;bottom:12px;left:12px;overflow-x:hidden}.sidebar-brand{padding-block:var(--space-4);margin-bottom:var(--space-2)}.sidebar-logo-compact{max-width:150px}.sidebar-nav{padding-inline:var(--space-3)}.nav-group-title{color:var(--on-surface-dim);font-size:var(--fs-2xs);letter-spacing:.1em}.nav-item{min-height:46px;padding-inline:var(--space-4);border-radius:var(--radius-sm)}.nav-item.active{border-radius:var(--radius-sm) var(--radius-sm) var(--radius-sm) var(--radius-xs);box-shadow:none}.sidebar.is-collapsed{width:var(--sidebar-collapsed-width,68px)}.sidebar.is-collapsed,.sidebar.is-collapsed *{scrollbar-width:none!important;-ms-overflow-style:none!important}.sidebar.is-collapsed::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}.sidebar.is-collapsed ::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}.sidebar.is-collapsed .sidebar-brand{padding:var(--space-4) var(--space-2) var(--space-2);justify-content:center;display:flex}.sidebar.is-collapsed .sidebar-brand-btn{width:48px;height:48px;padding:var(--space-1);border-radius:var(--radius-sm);justify-content:center}.sidebar.is-collapsed .sidebar-logo-compact{max-width:36px;max-height:36px}.sidebar.is-collapsed .sidebar-brand-text{display:none!important}.sidebar.is-collapsed .sidebar-search{padding:0 var(--space-2) var(--space-3);justify-content:center;display:flex}.sidebar.is-collapsed .sidebar-search .search-wrapper{background:var(--surface-container-lowest);border:1px solid var(--outline-variant);border-radius:var(--radius-sm);width:46px;height:46px;transition:all var(--transition-fast) ease;justify-content:center;align-items:center;padding:0;display:flex}.sidebar.is-collapsed .sidebar-search .search-wrapper:hover{border-color:var(--primary);background:var(--surface-container);transform:translateY(-1px)}.sidebar.is-collapsed .sidebar-search .search-icon{color:var(--on-surface-variant);margin:0;position:static}.sidebar.is-collapsed .sidebar-search .search-wrapper:hover .search-icon{color:var(--primary)}.sidebar.is-collapsed .sidebar-search .search-input,.sidebar.is-collapsed .sidebar-search .search-shortcut{display:none!important}.sidebar.is-collapsed .sidebar-nav{padding-inline:var(--space-2);flex-direction:column;align-items:center;display:flex;overflow-x:hidden;overflow-y:auto;scrollbar-width:none!important;-ms-overflow-style:none!important}.sidebar.is-collapsed .sidebar-nav::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}.sidebar.is-collapsed .nav-group{width:100%;margin-bottom:var(--space-2);flex-direction:column;align-items:center;display:flex}.sidebar.is-collapsed .nav-group-title{display:none!important}.sidebar.is-collapsed .nav-group-divider{background:var(--outline-variant);width:28px;height:1px;margin:var(--space-2) auto;opacity:.7}.sidebar.is-collapsed .nav-group-items{flex-direction:column;align-items:center;width:100%;display:flex}.sidebar.is-collapsed .nav-item{border-radius:var(--radius-sm);width:46px;height:46px;min-height:46px;margin-left:auto;margin-right:auto;margin-bottom:var(--space-1);justify-content:center;padding:0}.sidebar.is-collapsed .nav-item.active{border-radius:var(--radius-sm)}.sidebar.is-collapsed .nav-item-label,.sidebar.is-collapsed .sidebar-nav-badge.expanded-badge{display:none!important}.sidebar.is-collapsed .sidebar-nav-badge.collapsed-badge{display:inline-flex!important}.sidebar.is-collapsed .nav-item svg{margin:0}.nav-item-icon-wrap{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.nav-item-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.sidebar-nav-badge{background:var(--error);color:var(--on-error,#fff);border-radius:var(--radius-full);pointer-events:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;line-height:1;display:inline-flex}.sidebar-nav-badge.expanded-badge{min-width:20px;height:20px;padding:0 var(--space-2);font-size:var(--fs-2xs);box-shadow:none;margin-left:auto}.sidebar-nav-badge.collapsed-badge{min-width:17px;height:17px;padding:0 var(--space-1);font-size:var(--fs-3xs);box-shadow:none;z-index:3;border:none;font-weight:800;position:absolute;top:-5px;right:-8px}.nav-item.active .sidebar-nav-badge.collapsed-badge{border-color:transparent}.sidebar.is-collapsed .sidebar-footer{padding:var(--space-2);justify-content:center;display:flex}.sidebar.is-collapsed .profile-trigger{border-radius:var(--radius-sm);justify-content:center;width:46px;height:46px;margin:0;padding:0}.sidebar.is-collapsed .profile-dropdown{left:calc(var(--sidebar-collapsed-width,68px) + 20px);width:240px;position:fixed;bottom:16px;right:auto}.main-content{margin-left:var(--sidebar-offset,280px);background:0 0;transition:margin-left .3s cubic-bezier(.2,.8,.2,1),width .3s cubic-bezier(.2,.8,.2,1)}@media (min-width:769px){.desktop-header{left:var(--sidebar-offset,280px);height:76px;padding-inline:var(--space-8);background:var(--surface);border-bottom:0;transition:left .3s cubic-bezier(.2,.8,.2,1),width .3s cubic-bezier(.2,.8,.2,1)}.main-content{width:min(1500px, calc(100% - var(--sidebar-offset,280px)));margin-inline:var(--sidebar-offset,280px) auto;padding:100px max(24px,min(3vw,52px)) 52px;transition:margin-left .3s cubic-bezier(.2,.8,.2,1),margin-right .3s cubic-bezier(.2,.8,.2,1),width .3s cubic-bezier(.2,.8,.2,1)}.desktop-profile-card{border-radius:var(--radius-sm);background:var(--surface);box-shadow:none;border-color:transparent}}@media (max-width:768px){body{background:var(--surface-dim)}.main-content{width:100%;max-width:100vw;padding-inline:var(--space-4)!important;padding-bottom:calc(108px + env(safe-area-inset-bottom,0px))!important;overflow-x:clip!important}.page-header{margin-bottom:var(--space-5);padding:var(--space-2) var(--space-1) 0}.page-header h1{font-size:var(--fs-3xl);line-height:1.22}.page-header p{font-size:var(--fs-sm)}.card{border-radius:var(--radius-lg)!important;background:var(--surface)!important;box-shadow:none!important;border:none!important}.stats-row{gap:var(--space-3)!important}.stat-card{min-height:112px;padding:var(--space-4)!important;border-radius:var(--radius-md) var(--radius-md) var(--radius-md) var(--radius-xs)!important;box-shadow:none!important;border:0!important}.stat-card:nth-child(3n+2){border-radius:var(--radius-md) var(--radius-xs) var(--radius-md) var(--radius-md)!important}.stat-card:nth-child(3n){border-radius:var(--radius-xs) var(--radius-md) var(--radius-md) var(--radius-md)!important}.toolbar{padding:var(--space-3);border-radius:var(--radius-lg);box-shadow:none!important;border:none!important}.mobile-bottom-bar{background:var(--surface)!important;box-shadow:none!important;border:none!important;border-radius:0!important;bottom:0!important;left:0!important;right:0!important}.mobile-nav-selector.active{color:var(--primary)!important}table.mobile-card-table:not(.timetable-grid):not(.grade-table){border-collapse:separate!important;background:0 0!important;border:0!important;width:100%!important;min-width:0!important;display:block!important}table.mobile-card-table:not(.timetable-grid):not(.grade-table)>thead{display:none!important}table.mobile-card-table:not(.timetable-grid):not(.grade-table)>tbody{gap:var(--space-3);width:100%!important;padding:0!important;display:grid!important}table.mobile-card-table:not(.timetable-grid):not(.grade-table)>tbody>tr{border-radius:var(--radius-md) var(--radius-md) var(--radius-md) var(--radius-xs);background:var(--surface);overflow:hidden;width:100%!important;box-shadow:none!important;border:none!important;display:block!important}table.mobile-card-table:not(.timetable-grid):not(.grade-table)>tbody>tr:nth-child(2n){border-radius:var(--radius-md) var(--radius-xs) var(--radius-md) var(--radius-md)}table.mobile-card-table:not(.timetable-grid):not(.grade-table)>tbody>tr>td{align-items:center;gap:var(--space-3);min-height:44px;color:var(--on-surface);overflow-wrap:anywhere;grid-template-columns:minmax(78px,max-content) minmax(0,1fr);width:100%!important;min-width:0!important;padding:var(--space-3) var(--space-4)!important;border:0!important;border-bottom:1px solid color-mix(in srgb, var(--outline-variant) 64%, transparent)!important;text-align:right!important;white-space:normal!important;background:0 0!important;display:grid!important}table.mobile-card-table:not(.timetable-grid):not(.grade-table)>tbody>tr>td:last-child{border-bottom:0!important}table.mobile-card-table:not(.timetable-grid):not(.grade-table)>tbody>tr>td:before{content:attr(data-label);color:var(--on-surface-variant);font-size:var(--fs-2xs);text-align:left;font-weight:650;line-height:1.35}table.mobile-card-table:not(.timetable-grid):not(.grade-table)>tbody>tr>td.mobile-card-primary{padding-block:var(--space-4)!important;text-align:left!important;display:block!important}table.mobile-card-table:not(.timetable-grid):not(.grade-table)>tbody>tr>td.mobile-card-primary:before{margin-bottom:var(--space-1);display:block}table.mobile-card-table:not(.timetable-grid):not(.grade-table)>tbody>tr>td.mobile-card-actions{justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-3)!important;display:flex!important}table.mobile-card-table:not(.timetable-grid):not(.grade-table)>tbody>tr>td.mobile-card-actions:before,table.mobile-card-table:not(.timetable-grid):not(.grade-table)>tbody>tr>td[colspan]:before{display:none}.table-responsive,.table-scroll,[class*=table-wrap]:not(.timetable-scroller){overflow:visible!important}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width:768px){html *{-webkit-backdrop-filter:none!important}html .mobile-top-header{backface-visibility:visible;perspective:none;background:var(--surface)!important;border-bottom:none!important;transform:none!important}html .mobile-bottom-bar{background:var(--surface)!important}html .mobile-ai-brief-floating{background:var(--surface-container)!important;box-shadow:none!important;transition:transform var(--transition-normal)!important;background-size:auto!important;border:none!important;animation:none!important}html .liquid-blob,html .req-glow,html .spotlight-light-bar:before{filter:none!important;animation:none!important}html .sheet,html .score-sheet,html .notif-dropdown,html .dp-popup,html .drp-popup,html .search-select-panel,html .schedule-review-modal,html .spotlight-modal{background:var(--surface)!important}html .sheet-handle,html .sheet-header,html .sheet-handle-mobile{touch-action:pan-x}}.ui-selector.ui-selector{--ui-selector-count:2;--ui-selector-index:0;grid-template-columns:repeat(var(--ui-selector-count), minmax(0, 1fr));isolation:isolate;max-width:100%;min-height:44px;position:relative;overflow:hidden;width:max-content!important;padding:var(--space-1)!important;border-radius:var(--radius-full)!important;background:var(--surface-container-high)!important;box-shadow:none!important;border:0!important;gap:0!important;margin-left:auto!important;margin-right:auto!important;display:grid!important}.ui-selector.ui-selector:has(>:nth-child(3):last-child){--ui-selector-count:3}.ui-selector.ui-selector:has(>:nth-child(4):last-child){--ui-selector-count:4}.ui-selector.ui-selector:has(>:nth-child(5):last-child){--ui-selector-count:5}.ui-selector.ui-selector:has(>:nth-child(6):last-child){--ui-selector-count:6}.ui-selector.ui-selector:has(>:nth-child(2).active){--ui-selector-index:1}.ui-selector.ui-selector:has(>:nth-child(2)[aria-selected=true]){--ui-selector-index:1}.ui-selector.ui-selector:has(>:nth-child(3).active){--ui-selector-index:2}.ui-selector.ui-selector:has(>:nth-child(3)[aria-selected=true]){--ui-selector-index:2}.ui-selector.ui-selector:has(>:nth-child(4).active){--ui-selector-index:3}.ui-selector.ui-selector:has(>:nth-child(4)[aria-selected=true]){--ui-selector-index:3}.ui-selector.ui-selector:has(>:nth-child(5).active){--ui-selector-index:4}.ui-selector.ui-selector:has(>:nth-child(5)[aria-selected=true]){--ui-selector-index:4}.ui-selector.ui-selector:has(>:nth-child(6).active){--ui-selector-index:5}.ui-selector.ui-selector:has(>:nth-child(6)[aria-selected=true]){--ui-selector-index:5}.ui-selector.ui-selector:before{content:"";z-index:0;top:4px;bottom:4px;width:calc((100% - 8px) / var(--ui-selector-count));border-radius:var(--radius-full);background:var(--primary-container);box-shadow:none;transform:translateX(calc(var(--ui-selector-index) * 100%));pointer-events:none;transition:transform .46s cubic-bezier(.34,1.56,.64,1),background-color .18s;position:absolute;left:4px}.ui-selector.ui-selector>button,.ui-selector.ui-selector>a,.ui-selector.ui-selector>.day-tab{z-index:1;justify-content:center;align-items:center;gap:var(--space-2);min-width:0;min-height:36px;color:var(--on-surface-variant);font:inherit;font-size:var(--fs-sm);white-space:nowrap;cursor:pointer;font-weight:650;line-height:1.25;position:relative;padding:var(--space-2) var(--space-4)!important;border-radius:var(--radius-full)!important;box-shadow:none!important;background:0 0!important;border:0!important;transition:color .18s,transform .16s!important;display:inline-flex!important}.ui-selector.ui-selector>button>span,.ui-selector.ui-selector>a>span,.ui-selector.ui-selector>.day-tab>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.ui-selector.ui-selector>button>svg,.ui-selector.ui-selector>a>svg,.ui-selector.ui-selector>.day-tab>svg{flex:none}.ui-selector.ui-selector>button:hover,.ui-selector.ui-selector>a:hover,.ui-selector.ui-selector>.day-tab:hover{color:var(--on-surface)}.ui-selector.ui-selector>button:active,.ui-selector.ui-selector>a:active,.ui-selector.ui-selector>.day-tab:active{transform:scale(.96)}.ui-selector.ui-selector>.active,.ui-selector.ui-selector>[aria-selected=true]{color:var(--on-primary-container)!important}.ui-selector.ui-selector>button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.ui-selector.ui-selector>a:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.ui-selector.ui-selector>.day-tab:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.selector-only-toolbar.selector-only-toolbar{width:100%;margin:0 0 var(--space-5);display:block;box-shadow:none!important;background:0 0!important;border:0!important;border-radius:0!important;padding:0!important}.selector-only-toolbar.selector-only-toolbar>.ui-selector{margin-bottom:0!important}.selector-controls-flat.selector-controls-flat{box-shadow:none!important;background:0 0!important;border:0!important;padding:0!important}.ui-selector.ui-selector.mobile-only{display:none!important}@media (max-width:1023px){.ui-selector.ui-selector.mobile-only{display:grid!important}}@media (max-width:640px){.ui-selector.ui-selector:not(.mobile-day-picker){max-width:100%;min-height:42px;width:100%!important}.ui-selector.ui-selector>button,.ui-selector.ui-selector>a,.ui-selector.ui-selector>.day-tab{width:100%;min-height:34px;font-size:var(--fs-xs);text-overflow:ellipsis;overflow:hidden;padding-inline:var(--space-3)!important}.profile-tabs.ui-selector{width:100%!important}.profile-tabs.ui-selector>button{min-height:48px;font-size:var(--fs-3xs);white-space:normal;overflow-wrap:anywhere;padding-inline:var(--space-2)!important}.profile-tabs.ui-selector>button svg{display:none}}.grecaptcha-badge{visibility:hidden!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
