:root{--sion-surface:#f6f8fb;--sion-ink:#182433;--sion-card:#fff;--sion-border:#62697629;--sion-muted:#667085;--sion-primary:#206bc4;--sion-primary-soft:#edf4ff;--sion-control:#fff;--sion-control-strong:#f8fafc}*{box-sizing:border-box}body{background:var(--sion-surface);min-height:100vh;color:var(--sion-ink);text-rendering:geometricprecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none;margin:0}.impersonation-banner{z-index:100;min-height:48px;padding:8px max(16px, env(safe-area-inset-right)) 8px max(16px, env(safe-area-inset-left));color:#3b2f05;background:#ffd43b;justify-content:center;align-items:center;gap:24px;display:flex;position:sticky;top:0;box-shadow:0 2px 10px #1824332e}.impersonation-banner>div,.impersonation-banner button{align-items:center;gap:9px;display:inline-flex}.impersonation-banner span,.impersonation-banner strong,.impersonation-banner small{display:block}.impersonation-banner strong{font-size:13px}.impersonation-banner small{margin-top:1px;font-size:11px}.impersonation-banner button{min-height:34px;color:inherit;background:#ffffff6b;border:1px solid #3b2f054d;border-radius:6px;padding:6px 10px;font-size:12px;font-weight:700}.impersonation-banner button:disabled{opacity:.65}@media (max-width:640px){.impersonation-banner{min-height:56px;padding:max(8px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) 8px max(12px, env(safe-area-inset-left));justify-content:space-between;gap:10px;position:sticky;inset:0 auto auto}.impersonation-banner>div,.impersonation-banner span{min-width:0;overflow:hidden}.impersonation-banner small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.impersonation-banner button{white-space:nowrap;flex:none;min-height:40px}.impersonation-banner button svg{display:none}}@media (max-width:380px){.impersonation-banner button{padding-inline:8px;font-size:11px}.impersonation-banner small{max-width:190px}}[data-bs-theme=dark]{--sion-surface:#0e141f;--sion-ink:#eef3f8;--sion-card:#151e2c;--sion-border:#94a3b82e;--sion-muted:#93a3b8;--sion-primary:#5b9dff;--sion-primary-soft:#5b9dff24;--sion-control:#101827;--sion-control-strong:#1b2738}button{font:inherit}.auth-screen{background:radial-gradient(circle at 20% 10%,#206bc421,#0000 34%),linear-gradient(145deg,#eef3fb 0%,#fff 54%,#eef6f2 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-panel{width:min(100%,430px)}.verify-screen{background:radial-gradient(circle at 18% 16%,#206bc424,#0000 30%),radial-gradient(circle at 82% 78%,#10b9811f,#0000 32%),linear-gradient(145deg,#f8fafc 0%,#fff 54%,#eef6f2 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.verify-panel{width:min(100%,560px)}.verify-mark{color:#fff;background:#0f766e;border-radius:18px;place-items:center;width:64px;height:64px;margin:0 auto 18px;display:grid;box-shadow:0 18px 34px #0f766e38}.verify-heading{text-align:center;margin-bottom:18px}.verify-heading h1{margin:0;font-size:30px;line-height:1.15}.verify-card{margin-bottom:16px}.verify-result{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:8px;grid-template-columns:auto 1fr;gap:14px;padding:18px;display:grid;box-shadow:0 16px 40px #0f172a14}.verify-result-icon{color:#0f766e}.verify-result-bad .verify-result-icon{color:#b42318}.verify-result h2{margin:0 0 12px;font-size:18px}.verify-result p{color:var(--sion-muted);margin:0}.verify-result dl{gap:10px;margin:0;display:grid}.verify-result dl div{grid-template-columns:120px 1fr;gap:12px;display:grid}.verify-result dt{color:var(--sion-muted);font-size:13px}.verify-result dd{margin:0;font-weight:700}@media (max-width:520px){.verify-heading h1{font-size:25px}.verify-result dl div{grid-template-columns:1fr;gap:2px}}.brand-mark{color:#fff;background:#206bc4;border-radius:16px;place-items:center;width:58px;height:58px;margin:0 auto 18px;display:grid;box-shadow:0 16px 30px #206bc440}.brand-mark.small{border-radius:12px;width:40px;height:40px;margin:0;overflow:hidden}.brand-mark.small img{object-fit:contain;width:100%;height:100%}.auth-brand-mark{border-radius:24px;width:96px;height:96px;margin-bottom:20px}.auth-brand-mark.has-logo{color:inherit;background:var(--sion-card);border:1px solid var(--sion-border);padding:10px;overflow:hidden}.auth-brand-mark img{object-fit:contain;width:100%;height:100%}.auth-heading{text-align:center;margin-bottom:20px}.auth-heading h1{margin:0;font-size:28px;line-height:1.2}.auth-card{border:1px solid #62697629;border-radius:8px;box-shadow:0 18px 55px #18243317}.auth-password-input{padding-right:46px}.auth-password-toggle{color:#667085;background:0 0;border:0;border-radius:6px;place-items:center;width:32px;height:32px;display:inline-grid;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.auth-password-toggle:hover,.auth-password-toggle:focus-visible{color:#206bc4;background:#206bc414;outline:0}.auth-login-actions{grid-template-columns:1fr 46px;align-items:stretch;gap:10px;display:grid}.auth-login-actions .btn{min-height:44px}.auth-biometric-button{place-items:center;width:46px;padding:0;display:inline-grid}[data-bs-theme=dark] .auth-screen{background:radial-gradient(circle at 18% 12%,#5b9dff38,#0000 31%),radial-gradient(circle at 82% 78%,#2dd4bf21,#0000 34%),linear-gradient(145deg,#0b1220 0%,#111827 54%,#0d1625 100%)}[data-bs-theme=dark] .brand-mark{color:#fff;background:linear-gradient(145deg,#2d7ddd,#5b9dff);border:1px solid #dbeafe38;box-shadow:0 18px 38px #206bc457,0 0 0 7px #5b9dff1a}[data-bs-theme=dark] .auth-brand-mark.has-logo{background:#ffffffeb;border-color:#dbeafe5c;box-shadow:0 18px 38px #00000047,0 0 0 7px #5b9dff1a}[data-bs-theme=dark] .auth-heading .text-secondary{color:#aebbd0!important}[data-bs-theme=dark] .auth-heading h1{color:#f4f8ff;text-shadow:0 1px 18px #5b9dff29}[data-bs-theme=dark] .auth-card{background:#151e2cf5;border-color:#94a3b83d;box-shadow:0 22px 60px #00000057,0 0 0 1px #5b9dff0d}[data-bs-theme=dark] .auth-card .form-label,[data-bs-theme=dark] .auth-card .form-check-label{color:#e8eef8}[data-bs-theme=dark] .auth-card .form-control{color:#f4f8ff;background:#0f1726;border-color:#94a3b847}[data-bs-theme=dark] .auth-card .form-control:focus{border-color:#5b9dff;box-shadow:0 0 0 3px #5b9dff38}[data-bs-theme=dark] .auth-card .input-icon-addon,[data-bs-theme=dark] .auth-password-toggle{color:#aebbd0}[data-bs-theme=dark] .auth-password-toggle:hover,[data-bs-theme=dark] .auth-password-toggle:focus-visible{color:#fff;background:#5b9dff24}.app-shell{grid-template-columns:264px 1fr;min-height:100vh;display:grid}.route-loading .app-shell{pointer-events:none;-webkit-user-select:none;user-select:none;filter:blur(1px)}.sidebar{border-right:1px solid var(--sion-border);background:var(--sion-card);flex-direction:column;height:100vh;padding:20px 14px 20px 20px;display:flex;position:sticky;top:0;overflow:hidden}.sidebar-brand{flex:none;align-items:center;gap:12px;margin:0 6px 20px 0;display:flex}.sidebar-brand strong,.sidebar-brand span{display:block}.sidebar-brand span{color:var(--sion-muted);font-size:13px}.sidebar nav{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--sion-muted), transparent 55%) transparent;flex-direction:column;flex:auto;min-height:0;padding:2px 6px 8px 0;display:flex;overflow:hidden auto}.nav-group-master{order:10}.nav-group-user-access{order:20}.nav-group-operational,.nav-security-row{order:30}.nav-settings-label{order:40}.nav-settings-row{order:41}.sidebar nav::-webkit-scrollbar{width:6px}.sidebar nav::-webkit-scrollbar-track{background:0 0}.sidebar nav::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--sion-muted), transparent 60%);border-radius:999px}.nav-row{width:100%;color:var(--sion-muted);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;margin-bottom:6px;padding:10px 12px;display:flex}.nav-row.active,.nav-row:hover{color:#206bc4;background:var(--sion-primary-soft)}.nav-row:disabled{cursor:not-allowed;opacity:.55}.nav-row:disabled:hover{color:var(--sion-muted);background:0 0}.nav-group{margin-top:10px}.nav-group-title{width:100%;color:var(--sion-muted);text-align:left;text-transform:uppercase;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;padding:8px 12px 6px;font-size:12px;font-weight:800;display:flex}.nav-group-title:hover{color:#206bc4;background:var(--sion-primary-soft)}.nav-group-title.active{color:#206bc4;background:0 0}.nav-group-title svg{transition:transform .16s}.nav-group.open .nav-group-title svg{transform:rotate(180deg)}.nav-submenu{border-left:1px solid var(--sion-border);margin:8px 0 0 24px;padding:8px 0 0 14px}.nav-subrow{margin-bottom:7px;padding:9px 12px}.nav-subrow:last-child{margin-bottom:0}.nav-section-label{color:var(--sion-muted);text-transform:uppercase;margin-top:16px;padding:8px 12px 6px;font-size:12px;font-weight:800}.main-pane{width:min(100%,1180px);min-width:0;margin:0 auto;padding:24px}.topbar{border-bottom:1px solid var(--sion-border);justify-content:space-between;align-items:center;gap:18px;min-height:64px;margin-bottom:18px;padding:10px 0 18px;display:flex}.topbar h1{margin:0;font-size:26px;line-height:1.2}.topbar-title{min-width:0}.topbar-heading,.topbar-brand{display:none}.topbar-brand .sidebar-brand{margin-bottom:0}.eyebrow{color:var(--sion-muted);text-transform:uppercase;margin:0 0 3px;font-size:13px;font-weight:700}.topbar-actions{align-items:center;gap:14px;min-width:0;display:flex}.header-icon-button{width:42px;height:42px;color:var(--sion-ink);background:0 0;border:0;border-radius:10px;place-items:center;display:grid;position:relative}.header-icon-button:hover,.avatar-trigger:hover{background:var(--sion-primary-soft)}.notification-dot{border:2px solid var(--sion-card);background:#d63939;border-radius:999px;width:8px;height:8px;position:absolute;top:9px;right:9px}.header-menu-wrap{position:relative}.avatar-trigger{min-width:240px;max-width:min(420px,40vw);color:var(--sion-ink);text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:5px 8px 5px 5px;display:flex}.avatar-photo{color:#fff;background:linear-gradient(145deg,#206bc4,#2fb344);border-radius:8px;flex:none;place-items:center;width:42px;height:42px;font-weight:800;display:grid;overflow:hidden}.avatar-photo.large{width:48px;height:48px}.avatar-photo img{object-fit:cover;width:100%;height:100%}.avatar-copy{flex:auto;min-width:0;line-height:1.2;display:grid}.avatar-copy strong,.avatar-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.avatar-copy strong{font-size:15px}.avatar-copy small{color:var(--sion-muted);margin-top:3px;font-size:13px}.avatar-chevron{color:var(--sion-muted);flex:none}.header-dropdown{z-index:60;border:1px solid var(--sion-border);background:var(--sion-card);border-radius:8px;width:320px;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 18px 45px #18243329}.profile-menu{width:min(380px,100vw - 32px)}.dropdown-heading,.profile-summary{border-bottom:1px solid var(--sion-border);align-items:center;gap:12px;padding:14px;display:flex}.dropdown-heading{justify-content:space-between}.dropdown-heading span,.profile-summary small{color:var(--sion-muted);font-size:12px}.profile-summary strong,.profile-summary small{display:block}.profile-summary-copy{flex:auto;min-width:0}.profile-summary-copy strong,.profile-summary-copy small{overflow-wrap:anywhere;line-height:1.35}.notification-list{display:grid}.notification-item,.dropdown-action{border:0;border-bottom:1px solid var(--sion-border);width:100%;color:var(--sion-ink);text-align:left;background:0 0;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.notification-item:hover,.dropdown-action:hover{background:var(--sion-primary-soft)}.notification-item>span{background:#206bc4;border-radius:999px;flex:none;width:9px;height:9px;margin-top:5px}.notification-item.is-read>span{background:var(--sion-border)}.notification-item.is-read strong{font-weight:650}.notification-item strong,.notification-item small{display:block}.notification-item small{color:var(--sion-muted);margin-top:3px;line-height:1.35}.notification-empty{color:var(--sion-muted);text-align:center;padding:18px 14px;font-size:13px}.notification-controls{border-bottom:1px solid var(--sion-border);background:color-mix(in srgb, var(--sion-card) 92%, var(--sion-primary-soft));gap:8px;padding:10px 12px;display:flex}.notification-control-button{border:1px solid var(--sion-border);min-width:0;min-height:34px;color:var(--sion-ink);background:var(--sion-card);border-radius:6px;flex:1 1 0;justify-content:center;align-items:center;gap:6px;padding:6px 8px;font-size:12px;font-weight:600;display:inline-flex}.notification-control-button:hover{border-color:var(--sion-primary);color:var(--sion-primary)}.notification-control-button:disabled{opacity:.6;cursor:wait}.notification-push-status{border-bottom:1px solid var(--sion-border);color:var(--sion-muted);padding:9px 12px;font-size:12px;line-height:1.35}.offline-page{min-height:100dvh;padding:max(28px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left));background:var(--sion-surface);place-items:center;display:grid}.offline-panel{text-align:center;width:100%;min-width:0;max-width:440px}.offline-brand{color:var(--sion-ink);text-align:left;align-items:center;gap:10px;margin-bottom:clamp(34px,7vh,64px);display:inline-flex}.offline-brand img{object-fit:contain;border-radius:8px;width:40px;height:40px}.offline-brand span,.offline-brand strong,.offline-brand small{display:block}.offline-brand strong{font-size:17px;line-height:1.2}.offline-brand small{color:var(--sion-muted);margin-top:2px;font-size:11px;line-height:1.25}.offline-icon{border:1px solid color-mix(in srgb, var(--sion-primary) 18%, transparent);width:84px;height:84px;color:var(--sion-primary);background:var(--sion-primary-soft);box-shadow:0 12px 30px color-mix(in srgb, var(--sion-primary) 12%, transparent);border-radius:50%;place-items:center;margin:0 auto 20px;display:grid}.offline-copy{margin:0 auto}.offline-status{color:var(--sion-primary);text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.offline-panel h1{color:var(--sion-ink);letter-spacing:0;margin:0;font-size:clamp(26px,5vw,32px);line-height:1.2}.offline-panel p{max-width:390px;color:var(--sion-muted);margin:11px auto 24px;font-size:15px;line-height:1.55}.offline-data-status{border:1px solid var(--sion-border);color:#15803d;background:var(--sion-card);text-align:left;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:11px;margin-bottom:20px;padding:13px 14px;display:grid}.offline-data-status span,.offline-data-status strong,.offline-data-status small{display:block}.offline-data-status strong{color:var(--sion-ink);font-size:13px;line-height:1.3}.offline-data-status small{color:var(--sion-muted);margin-top:2px;font-size:12px;line-height:1.35}.offline-retry{justify-content:center;align-items:center;gap:8px;min-width:160px;min-height:44px;display:inline-flex}.offline-retry-spinner{animation:.8s linear infinite offline-spin}@keyframes offline-spin{to{transform:rotate(360deg)}}@media (max-width:600px){.offline-page{padding-top:max(20px, env(safe-area-inset-top));padding-bottom:max(20px, env(safe-area-inset-bottom));align-items:center}.offline-brand{margin-bottom:clamp(28px,6vh,48px)}.offline-icon{width:76px;height:76px}.offline-panel p{font-size:14px}.offline-retry{width:100%}}@media (max-height:650px){.offline-brand{margin-bottom:22px}.offline-icon{width:68px;height:68px;margin-bottom:14px}.offline-panel p{margin-bottom:16px}.offline-data-status{margin-bottom:14px}}[data-bs-theme=dark] .offline-data-status{color:#4ade80}.announcement-page-heading{align-items:center}.announcement-copy{min-width:220px;max-width:520px}.announcement-copy strong,.announcement-copy small{display:block}.announcement-copy small{color:var(--sion-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:12px;line-height:1.4;overflow:hidden}.announcement-audience{white-space:nowrap;align-items:center;gap:7px;display:inline-flex}.announcement-audience>span{width:28px;height:28px;color:var(--sion-primary);background:var(--sion-primary-soft);border-radius:6px;place-items:center;display:grid}.announcement-audience.selected>span{color:#6f42c1;background:#6f42c11f}.announcement-read{min-width:110px}.announcement-read strong{font-size:13px;display:block}.announcement-read>span{background:var(--sion-border);border-radius:999px;width:100%;height:5px;margin-top:6px;display:block;overflow:hidden}.announcement-read i{border-radius:inherit;background:var(--sion-primary);height:100%;display:block}.announcement-composer{width:min(920px,100vw - 32px);max-height:calc(100dvh - 32px);overflow-y:auto}.announcement-modal-title{align-items:center;gap:12px;margin-bottom:18px;padding-right:42px;display:flex}.announcement-modal-title>span{width:44px;height:44px;color:var(--sion-primary);background:var(--sion-primary-soft);border-radius:8px;flex:none;place-items:center;display:grid}.announcement-modal-title h2,.announcement-modal-title p{margin:0}.announcement-modal-title h2{font-size:20px}.announcement-modal-title p{color:var(--sion-muted);margin-top:3px;font-size:13px}.announcement-character-count{color:var(--sion-muted);justify-self:end;margin-top:-3px;font-size:11px}.announcement-audience-fieldset{border:0;min-width:0;margin:16px 0 0;padding:0}.announcement-audience-fieldset legend{color:var(--sion-muted);margin-bottom:8px;font-size:12px;font-weight:800}.announcement-audience-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.announcement-audience-options>label{cursor:pointer;min-width:0;position:relative}.announcement-audience-options input{opacity:0;pointer-events:none;position:absolute}.announcement-audience-options label>span{border:1px solid var(--sion-border);min-height:74px;color:var(--sion-ink);background:var(--sion-card);border-radius:8px;grid-template-rows:auto auto;grid-template-columns:28px 1fr;align-content:center;column-gap:10px;padding:12px 14px;display:grid}.announcement-audience-options label>span>svg{color:var(--sion-muted);grid-row:1/3;align-self:center}.announcement-audience-options label>span strong{font-size:14px}.announcement-audience-options label>span small{color:var(--sion-muted);font-size:12px}.announcement-audience-options label.selected>span{border-color:var(--sion-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--sion-primary), transparent 86%)}.announcement-audience-options label.selected svg{color:var(--sion-primary)}.announcement-recipient-table{border:1px solid var(--sion-border);border-radius:8px;margin-top:14px;overflow:hidden}.announcement-recipient-table .data-table-wrap{border:0;border-radius:0}.announcement-selection-summary{border-bottom:1px solid var(--sion-border);background:var(--sion-primary-soft);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.announcement-selection-summary strong{color:var(--sion-primary);font-size:13px}.announcement-selection-summary span{color:var(--sion-muted);font-size:12px}.announcement-select-column{width:48px;text-align:center!important}.announcement-select-column input{accent-color:var(--sion-primary);margin:0;width:17px!important;height:17px!important;min-height:0!important}.announcement-recipient-name strong,.announcement-recipient-name small{display:block}.announcement-recipient-name small{color:var(--sion-muted);margin-top:2px;font-size:11px}.announcement-success-backdrop{z-index:110}.announcement-success-modal{border:1px solid var(--sion-border);width:min(410px,100vw - 32px);color:var(--sion-ink);background:var(--sion-card);text-align:center;border-radius:8px;padding:30px;box-shadow:0 24px 70px #0f172a47}.announcement-success-modal>span{color:#fff;background:#2fb344;border-radius:50%;place-items:center;width:64px;height:64px;margin:0 auto 16px;display:grid}.announcement-success-modal h2{margin:0;font-size:22px}.announcement-success-modal p{color:var(--sion-muted);margin:8px 0 20px}.announcement-success-modal .btn{min-width:130px}.notification-hero{border:1px solid var(--sion-border);color:var(--sion-ink);background:linear-gradient(135deg, color-mix(in srgb, var(--sion-primary), transparent 88%), var(--sion-card) 48%, #2fb3441a);border-radius:8px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px;padding:18px;display:flex}.notification-hero>div{grid-template-columns:42px minmax(0,1fr);align-items:center;column-gap:13px;min-width:0;display:grid}.notification-hero-icon{color:#fff;background:var(--sion-primary);border-radius:8px;grid-row:1/3;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 10px 24px #206bc43d}.notification-hero h2,.notification-hero p{margin:0}.notification-hero h2{font-size:20px;line-height:1.2}.notification-hero p{color:var(--sion-muted);margin-top:4px;font-size:13px;line-height:1.45}.notification-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.notification-status-tabs{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:8px;align-items:center;gap:4px;padding:4px;display:inline-flex}.notification-status-tabs button{min-height:34px;color:var(--sion-muted);background:0 0;border:0;border-radius:6px;align-items:center;gap:7px;padding:0 11px;font-size:12px;font-weight:800;display:inline-flex}.notification-status-tabs button.active{color:var(--sion-primary);background:var(--sion-primary-soft)}.notification-search{border:1px solid var(--sion-border);min-width:min(360px,44vw);min-height:42px;color:var(--sion-muted);background:var(--sion-card);border-radius:8px;align-items:center;gap:9px;padding:0 12px;display:flex}.notification-search input{width:100%;min-width:0;color:var(--sion-ink);background:0 0;border:0;outline:0;font-size:13px}.notification-page-hint{color:var(--sion-primary);background:var(--sion-primary-soft);border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:13px;font-weight:750}.notification-table-card .data-table-toolbar{display:none}.notification-page-row{width:100%;min-width:260px;color:inherit;text-align:left;background:0 0;border:0;grid-template-columns:38px minmax(0,1fr) 20px;align-items:center;gap:10px;display:grid}.notification-page-row:hover .notification-page-copy strong{color:var(--sion-primary)}.notification-page-icon{width:38px;height:38px;color:var(--sion-primary);background:var(--sion-primary-soft);border-radius:8px;place-items:center;display:grid}.notification-page-row:not(.is-read) .notification-page-icon{color:#fff;background:var(--sion-primary)}.notification-page-copy{min-width:0;display:block}.notification-page-copy strong,.notification-page-copy small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.notification-page-copy strong{color:var(--sion-ink);font-size:13px}.notification-page-copy small{color:var(--sion-muted);margin-top:3px;font-size:12px}.notification-page-row.is-read .notification-page-copy strong{color:color-mix(in srgb, var(--sion-ink), var(--sion-muted) 36%)}.notification-page-chevron{color:var(--sion-muted)}.notification-type-pill{min-height:26px;color:var(--sion-primary);background:var(--sion-primary-soft);white-space:nowrap;border-radius:999px;align-items:center;padding:0 9px;font-size:11px;font-weight:850;display:inline-flex}.notification-time{color:var(--sion-muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:inline-flex}.notification-detail-backdrop{z-index:130;align-items:center;padding:18px}.notification-detail-modal{border:1px solid var(--sion-border);width:min(520px,100vw - 28px);color:var(--sion-ink);background:var(--sion-card);border-radius:8px;padding:24px;position:relative;box-shadow:0 24px 70px #0f172a47}.notification-detail-modal .modal-close{width:36px;height:36px;color:var(--sion-muted);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 55%);border-radius:8px;position:absolute;top:16px;right:16px}.notification-detail-modal .modal-close:hover{color:var(--sion-primary);background:var(--sion-primary-soft)}.notification-detail-heading{grid-template-columns:54px minmax(0,1fr);align-items:center;gap:14px;padding-right:46px;display:grid}.notification-detail-heading>span{color:#fff;background:var(--sion-primary);border-radius:8px;place-items:center;width:54px;height:54px;display:grid;box-shadow:0 12px 26px #206bc43d}.notification-detail-heading p,.notification-detail-heading h2{margin:0}.notification-detail-heading p{color:var(--sion-primary);text-transform:uppercase;font-size:11px;font-weight:850}.notification-detail-heading h2{margin-top:5px;font-size:22px;line-height:1.25}.notification-detail-message{color:var(--sion-ink);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 55%);white-space:pre-wrap;border-radius:8px;margin-top:20px;padding:16px;font-size:14px;line-height:1.6}.notification-detail-meta{color:var(--sion-muted);justify-content:space-between;align-items:center;gap:12px;margin-top:13px;font-size:12px;display:flex}.notification-detail-meta span{align-items:center;gap:6px;display:inline-flex}.notification-detail-actions{margin-top:20px;display:grid}.notification-detail-actions .btn{justify-content:center}@media (max-width:768px){.notification-hero{flex-direction:column;align-items:stretch;margin-left:-4px;margin-right:-4px;padding:14px}.notification-hero>div{grid-template-columns:36px minmax(0,1fr);column-gap:10px}.notification-hero-icon{width:36px;height:36px}.notification-hero h2{font-size:17px}.notification-hero .btn{justify-content:center;width:100%}.notification-toolbar{flex-direction:column;align-items:stretch}.notification-status-tabs{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.notification-status-tabs button{justify-content:center;padding:0 6px;font-size:11px}.notification-search{width:100%;min-width:0}.notification-page-row{min-width:0}.notification-table-card .data-table-wrap{overflow-x:auto}.notification-detail-backdrop{padding:max(18px, env(safe-area-inset-top)) 18px max(18px, env(safe-area-inset-bottom));align-items:center}.notification-detail-modal{width:min(420px,100vw - 36px);max-height:calc(100dvh - 72px);padding:20px;overflow-y:auto;transform:translateY(-8vh)}.notification-detail-modal .modal-close{top:14px;right:14px}.notification-detail-heading{grid-template-columns:48px minmax(0,1fr);gap:12px;padding-right:42px}.notification-detail-heading>span{width:48px;height:48px}.notification-detail-heading h2{font-size:20px}.notification-detail-actions .btn{width:100%}}@media (max-width:720px){.announcement-page-heading{align-items:stretch}.announcement-page-heading .btn{justify-content:center;width:100%}.announcement-audience-options{grid-template-columns:1fr}.announcement-selection-summary{flex-direction:column;align-items:flex-start;gap:2px}.announcement-composer{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}}.dropdown-action{border-bottom:0;align-items:center}.dropdown-action.danger{color:#d63939}.hero-band{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:8px;grid-template-columns:1fr auto;align-items:end;gap:18px;margin-bottom:18px;padding:22px;display:grid}.hero-band h2{max-width:760px;margin:10px 0 0;font-size:22px;line-height:1.35}.permission-stack{flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:360px;display:flex}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.metric-card .card-body{gap:5px;display:grid}.metric-card strong{font-size:30px;line-height:1.1}.metric-card small{color:#2fb344;font-weight:600}.work-grid{grid-template-columns:minmax(280px,.85fr) minmax(320px,1.15fr);gap:14px;display:grid}.action-list{gap:10px;display:grid}.action-row{border:1px solid var(--sion-border);background:var(--sion-card);text-align:center;border-radius:12px;align-content:center;justify-items:center;gap:7px;min-height:56px;padding:10px 8px;display:grid}.action-row span{color:#206bc4;background:var(--sion-primary-soft);border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.action-row strong{font-size:12px;line-height:1.2}.timeline-row{grid-template-columns:54px 1fr;gap:12px;display:grid}.timeline-row time{color:#206bc4;font-weight:700}.timeline-row p{color:var(--sion-muted);margin:3px 0 0}.admin-dashboard{gap:16px;display:grid}.admin-dashboard-heading{justify-content:space-between;align-items:end;gap:18px;padding:3px 0 2px;display:flex}.admin-dashboard-heading>div:first-child,.admin-panel-heading>div:first-child{min-width:0}.admin-kicker{color:#206bc4;text-transform:uppercase;font-size:12px;font-weight:800;display:block}.admin-dashboard-heading h2{color:var(--sion-ink);margin:5px 0 3px;font-size:24px;line-height:1.2}.admin-dashboard-heading p,.admin-panel-heading p{color:var(--sion-muted);margin:0;font-size:13px}.admin-updated{color:var(--sion-muted);flex:none;align-items:center;gap:7px;font-size:12px;font-weight:650;display:inline-flex}.admin-summary-grid{grid-template-columns:minmax(245px,1.45fr) repeat(4,minmax(150px,1fr));gap:12px;display:grid}.admin-summary-card{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:8px;align-items:flex-start;gap:15px;min-width:0;min-height:112px;padding:17px;display:flex}.admin-summary-card>div:nth-child(2){flex:auto;min-width:0}.admin-summary-card span:not(.admin-summary-icon),.admin-summary-card small{max-width:100%;color:var(--sion-muted);overflow-wrap:anywhere;font-size:12px;font-weight:650;line-height:1.3;display:block}.admin-summary-card strong{max-width:100%;color:var(--sion-ink);overflow-wrap:anywhere;margin:8px 0 7px;font-size:27px;line-height:1;display:block}.admin-summary-card small{white-space:nowrap;font-size:10px;line-height:1.35}.admin-summary-card small i{background:#2fb344;border-radius:999px;width:7px;height:7px;margin-right:4px;display:inline-block}.admin-summary-icon{color:#206bc4;background:#e9f2ff;border-radius:7px;flex:none;place-items:center;width:38px;height:38px;display:grid}.admin-summary-icon.online{color:#14804a;background:#e9f8ef}.admin-summary-icon.cyan{color:#0b7285;background:#e3f7f8}.admin-summary-icon.violet{color:#7048e8;background:#f0ebff}.admin-summary-icon.amber{color:#c56a00;background:#fff3db}.admin-summary-icon.red{color:#d63939;background:#fff0f0}.admin-online-card{position:relative}.admin-online-card strong{white-space:nowrap;font-size:23px}.admin-online-card span:not(.admin-summary-icon){white-space:nowrap;font-size:12px}.admin-content-grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:14px;display:grid}.admin-panel{border-radius:8px;overflow:hidden}.admin-panel-heading{justify-content:space-between;align-items:flex-start;gap:14px;padding:17px 17px 0;display:flex}.admin-panel-heading>svg{color:#206bc4}.admin-panel-heading .card-title{margin:0 0 4px}.admin-peak-chart{border-bottom:1px solid var(--sion-border);grid-template-columns:repeat(24,minmax(0,1fr));align-items:end;gap:4px;height:178px;margin:21px 17px 0;padding:0 0 18px;display:grid}.admin-peak-column{cursor:default;grid-template-rows:1fr 14px;align-items:end;height:100%;display:grid}.admin-peak-bar{background:#206bc4;border-radius:3px 3px 1px 1px;align-self:end;width:100%;min-height:4px;transition:background .15s,transform .15s}.admin-peak-column:hover .admin-peak-bar{background:#0b5cab;transform:translateY(-2px)}.admin-peak-column span{color:var(--sion-muted);text-align:center;font-size:9px;line-height:14px}.admin-chart-axis{color:var(--sion-muted);justify-content:space-between;padding:7px 17px 15px;font-size:11px;display:flex}.admin-workflow-list{border-top:1px solid var(--sion-border);margin-top:14px;display:grid}.admin-workflow-row{border-bottom:1px solid var(--sion-border);width:100%;color:var(--sion-ink);grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 17px;display:grid}.admin-workflow-row:last-child{border-bottom:0}.admin-workflow-row strong,.admin-workflow-row small{display:block}.admin-workflow-row>span:nth-child(2){min-width:0}.admin-workflow-row strong{overflow-wrap:anywhere;font-size:13px}.admin-workflow-row small{color:var(--sion-muted);overflow-wrap:anywhere;margin-top:2px;font-size:11px}.admin-workflow-row>b{min-width:28px;color:var(--sion-ink);text-align:right;font-size:21px;line-height:1}.admin-shortcut-panel{padding-bottom:17px}.admin-shortcut-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;padding:16px 17px 0;display:grid}.admin-shortcut{border:1px solid var(--sion-border);min-width:0;min-height:106px;color:var(--sion-ink);background:var(--sion-control);text-align:left;border-radius:7px;align-content:start;justify-items:start;gap:6px;padding:12px;transition:border-color .15s,background-color .15s,transform .15s;display:grid}.admin-shortcut:hover{background:var(--sion-primary-soft);border-color:#9bc2f2;transform:translateY(-1px)}.admin-shortcut>span{color:#206bc4;background:#e9f2ff;border-radius:6px;place-items:center;width:34px;height:34px;display:grid}.admin-shortcut strong{overflow-wrap:anywhere;min-width:0;max-width:100%;font-size:12px;line-height:1.2}.admin-shortcut small{min-width:0;max-width:100%;color:var(--sion-muted);overflow-wrap:anywhere;font-size:10px;line-height:1.3}[data-bs-theme=dark] .admin-shortcut{color:#eef3f8;background:#101827;border-color:#94a3b82e}[data-bs-theme=dark] .admin-shortcut:hover{background:#16243a;border-color:#5b9dff7a}[data-bs-theme=dark] .admin-shortcut>span{color:#7db3ff;background:#5b9dff24}[data-bs-theme=dark] .admin-shortcut small{color:#a8b5c7}@media (max-width:1180px){.admin-summary-grid{grid-template-columns:minmax(250px,1.4fr) repeat(2,minmax(155px,1fr))}.admin-online-card{grid-column:span 2}.admin-shortcut-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:760px){.admin-dashboard-heading{flex-direction:column;align-items:flex-start;gap:7px}.admin-dashboard-heading h2{font-size:21px}.admin-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.admin-summary-card{gap:12px;min-height:105px;padding:13px}.admin-online-card{grid-column:1/-1}.admin-summary-card strong{font-size:23px}.admin-summary-card small{white-space:nowrap}.admin-content-grid{grid-template-columns:1fr;gap:12px}.admin-shortcut-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:13px 13px 0}.admin-panel-heading{padding:14px 13px 0}.admin-peak-chart{height:148px;margin:16px 13px 0}.admin-chart-axis,.admin-workflow-row{padding-inline:13px}.admin-shortcut{min-height:98px;padding:10px}}@media (max-width:430px){.admin-summary-grid{grid-template-columns:1fr}.admin-online-card{grid-column:auto}.admin-shortcut-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.teacher-home-hero{border:1px solid color-mix(in srgb, var(--sion-primary), transparent 72%);color:#fff;background:linear-gradient(135deg,#0c5ba3eb,#197a60f0),radial-gradient(circle at 82% 18%,#ffffff47,#0000 34%);border-radius:20px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;min-height:188px;margin-bottom:18px;padding:24px;display:grid;position:relative;overflow:hidden;box-shadow:0 22px 46px #18243324}.teacher-home-copy{min-width:0}.teacher-weather{z-index:1;background:#ffffff1f;border:1px solid #ffffff38;border-radius:14px;align-items:center;gap:12px;min-width:220px;padding:12px 14px;display:flex;position:relative}.teacher-weather-icon{color:#fff;background:#ffffff29;border-radius:12px;flex:0 0 44px;place-items:center;width:44px;height:44px;display:grid}.teacher-weather strong,.teacher-weather small{display:block}.teacher-weather strong{font-size:13px;line-height:1.3}.teacher-weather small{color:#ffffffc7;margin-top:4px;font-size:12px;font-weight:700;line-height:1.35}.teacher-home-hero:after{content:"";border:34px solid #ffffff1f;border-radius:50%;width:190px;height:190px;position:absolute;bottom:-70px;right:-50px}.teacher-home-hero>div{z-index:1;position:relative}.teacher-home-hero p,.teacher-home-hero h2{margin:0;display:block}.teacher-home-role{color:#ffffffeb;text-transform:uppercase;background:#ffffff29;border-radius:999px;width:fit-content;padding:4px 10px;font-size:12px;font-weight:900;line-height:1.25}.teacher-home-hero h2{max-width:760px;margin-top:12px;font-size:26px;line-height:1.25}.teacher-home-hero p{color:#ffffffd1;margin-top:8px;font-weight:700}.teacher-period-card{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:14px;align-items:center;gap:14px;min-width:0;margin:0 0 18px;padding:15px 18px;display:flex;box-shadow:0 10px 24px #18243312}.student-schedule-card{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:14px;gap:14px;margin:0 0 18px;padding:18px;display:grid;box-shadow:0 10px 24px #18243312}.student-schedule-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.student-schedule-heading>div,.student-schedule-row div{gap:4px;min-width:0;display:grid}.student-schedule-heading span{color:var(--sion-muted);font-size:13px;font-weight:800}.student-schedule-heading strong{color:var(--sion-ink);font-size:18px}.student-schedule-link{color:var(--sion-primary);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;font-size:13px;font-weight:900}.student-schedule-list{--student-schedule-card-width:clamp(250px, 30vw, 340px);overscroll-behavior-x:contain;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x;-webkit-overflow-scrolling:touch;gap:10px;width:100%;min-width:0;display:flex;overflow-x:auto}.student-schedule-list:after{content:"";flex:0 0 max(0px, calc(100% - var(--student-schedule-card-width)))}.student-schedule-list::-webkit-scrollbar{display:none}.student-schedule-row{flex:0 0 var(--student-schedule-card-width);border:1px solid var(--sion-border);background:var(--sion-surface);scroll-snap-align:start;scroll-snap-stop:always;border-radius:10px;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;min-width:0;min-height:76px;padding:10px;display:grid}.student-schedule-row.active{border-color:var(--sion-primary);background:var(--sion-primary-soft)}.student-schedule-row.active strong,.student-schedule-row.active small{text-overflow:clip;white-space:normal;overflow:visible}.student-schedule-row>span{color:var(--sion-primary);font-size:12px;font-weight:900}.student-schedule-row strong,.student-schedule-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.student-schedule-row strong{color:var(--sion-ink);font-size:13px}.student-schedule-row small,.student-schedule-empty{color:var(--sion-muted);font-size:12px;font-weight:700}.student-schedule-empty{margin:0}@media (max-width:640px){.student-schedule-card{padding:15px}.student-schedule-heading{align-items:flex-start}.student-schedule-list{--student-schedule-card-width:min(82vw, 300px)}}@media (prefers-reduced-motion:reduce){.student-schedule-list{scroll-behavior:auto}}.teacher-period-mark{width:44px;height:44px;color:var(--sion-primary);background:color-mix(in srgb, var(--sion-primary), transparent 88%);border-radius:12px;flex:0 0 44px;place-items:center;display:grid}.teacher-period-copy{flex:1;min-width:0}.teacher-period-copy span,.teacher-period-copy strong,.teacher-period-copy small{display:block}.teacher-period-copy span,.teacher-period-copy small{color:var(--sion-muted);font-size:12px;font-weight:700}.teacher-period-copy strong{color:var(--sion-ink);margin:3px 0;font-size:15px}.teacher-period-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.teacher-period-action{border:1px solid var(--sion-border);color:var(--sion-primary);cursor:pointer;background:0 0;border-radius:9px;flex:none;padding:8px 12px;font-size:12px;font-weight:800}.teacher-app-grid{grid-template-columns:repeat(auto-fit,minmax(140px,176px));justify-content:start;gap:10px;margin-bottom:14px;display:grid}.teacher-app-icon{appearance:none;border:1px solid var(--sion-border);width:100%;min-width:0;min-height:116px;color:var(--sion-ink);background:color-mix(in srgb, var(--sion-card), #fff 4%);text-align:center;cursor:pointer;border-radius:14px;align-content:center;justify-items:center;gap:7px;padding:10px 8px;transition:transform .16s,box-shadow .16s,border-color .16s;display:grid;box-shadow:0 8px 18px #18243312}.teacher-app-icon:hover{border-color:color-mix(in srgb, var(--app-tone,var(--sion-primary)), transparent 58%);transform:translateY(-2px);box-shadow:0 14px 26px #1824331c}.teacher-app-icon span{color:#fff;background:var(--app-tone,var(--sion-primary));width:48px;height:48px;box-shadow:0 9px 16px color-mix(in srgb, var(--app-tone,var(--sion-primary)), transparent 76%);border-radius:14px;place-items:center;display:grid}.teacher-app-icon strong,.teacher-app-icon small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;line-height:1.2;display:block;overflow:hidden}.teacher-app-icon strong{font-size:14px}.teacher-app-icon small{display:none}.teacher-app-icon.blue{--app-tone:#1d69c9}.teacher-app-icon.green{--app-tone:#1f9d68}.teacher-app-icon.amber{--app-tone:#e89212}.teacher-app-icon.slate{--app-tone:#56627a}.teacher-app-icon.violet{--app-tone:#7c3aed}.teacher-app-icon.red{--app-tone:#d63939}.security-dashboard{gap:14px;display:grid}.security-home-hero{min-height:176px}.security-scan-hero{color:#fff;background:#206bc4;border:0;border-radius:12px;justify-content:center;align-items:center;gap:10px;min-width:184px;min-height:58px;font-size:14px;font-weight:850;display:inline-flex;box-shadow:0 12px 24px #206bc43d}.security-app-grid{grid-template-columns:repeat(2,minmax(160px,190px))}.security-history-page{align-content:start;gap:16px;display:grid}.security-history-hero{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:18px;display:flex}.security-history-hero>div:first-child{grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;min-width:0;display:grid}.security-history-hero>div:first-child>span{color:#206bc4;background:#e9f2ff;border-radius:9px;place-items:center;width:42px;height:42px;display:grid}.security-history-hero h2,.security-history-hero p{grid-column:2;margin:0}.security-history-hero h2{color:var(--sion-ink);font-size:21px;line-height:1.2}.security-history-hero p{color:var(--sion-muted);margin-top:3px;font-size:13px}.security-history-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.security-history-student strong,.security-history-student small{display:block}.security-history-student small{color:var(--sion-muted);margin-top:3px;font-size:12px}.security-history-purpose{white-space:normal;max-width:360px;line-height:1.35;display:block}@media (max-width:760px){.security-history-hero{flex-direction:column;align-items:stretch;gap:16px;padding:16px}.security-history-hero>div:first-child{grid-template-columns:46px minmax(0,1fr);gap:12px}.security-history-hero>div:first-child>span{border-radius:10px;width:46px;height:46px}.security-history-hero h2{font-size:22px}.security-history-hero p{margin-top:6px;font-size:13px;line-height:1.45}.security-history-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;width:100%;display:grid}.security-history-actions .btn{border-radius:10px;justify-content:center;width:100%;min-height:46px;padding-inline:12px;font-size:13px}.security-history-actions .btn-primary{order:-1;box-shadow:0 10px 20px #206bc433}.security-history-actions .btn-outline-secondary{color:#475467;background:#fff}}.journal-page,.homeroom-page{gap:16px;padding:24px;display:grid}.homeroom-heading{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.homeroom-heading>div{min-width:0}.homeroom-heading>div>span{color:var(--sion-primary);text-transform:uppercase;font-size:12px;font-weight:900}.homeroom-heading h2{color:var(--sion-ink);margin:5px 0 4px;font-size:25px}.homeroom-heading p{color:var(--sion-muted);margin:0;font-size:14px}.homeroom-heading>label{border:1px solid var(--sion-border);min-height:42px;color:var(--sion-muted);background:var(--sion-card);border-radius:7px;align-items:center;gap:8px;padding:0 11px;display:flex}.homeroom-heading input{color:var(--sion-ink);font:inherit;background:0 0;border:0;outline:0}.homeroom-summary{grid-template-columns:minmax(150px,1.35fr) repeat(6,minmax(88px,1fr));gap:10px;display:grid}.homeroom-summary button{border:1px solid var(--sion-border);min-width:0;min-height:82px;color:var(--sion-ink);background:var(--sion-card);font:inherit;text-align:left;cursor:pointer;border-radius:8px;align-items:center;gap:11px;padding:13px;transition:border-color .15s,background-color .15s,box-shadow .15s;display:flex}.homeroom-summary button:hover{border-color:color-mix(in srgb, var(--sion-primary), var(--sion-border) 55%);background:color-mix(in srgb, var(--sion-card), var(--sion-primary-soft) 30%)}.homeroom-summary button.is-active{border-color:var(--sion-primary);background:var(--sion-primary-soft)}.homeroom-summary button:focus-visible{outline:3px solid color-mix(in srgb, var(--sion-primary), transparent 72%);outline-offset:2px}.homeroom-total svg{color:var(--sion-primary)}.homeroom-summary button>span{border-radius:7px;flex:0 0 34px;place-items:center;width:34px;height:34px;font-size:13px;font-weight:900;display:grid}.homeroom-summary strong,.homeroom-summary small,.homeroom-summary button div span{display:block}.homeroom-summary strong{color:var(--sion-ink);font-size:21px;line-height:1}.homeroom-summary small,.homeroom-summary button div span{color:var(--sion-muted);margin-top:4px;font-size:11px;font-weight:750}.homeroom-metric.status-h>span{color:#15803d;background:#dcfce7}.homeroom-metric.status-i>span{color:#1d4ed8;background:#dbeafe}.homeroom-metric.status-s>span{color:#a16207;background:#fef3c7}.homeroom-metric.status-a>span{color:#b91c1c;background:#fee2e2}.homeroom-metric.status-d>span{color:#6d28d9;background:#ede9fe}.homeroom-metric.status-pending>span{color:#64748b;background:#e2e8f0}.homeroom-student-section{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:8px;overflow:hidden}.homeroom-student-toolbar{border-bottom:1px solid var(--sion-border);justify-content:space-between;align-items:center;gap:18px;padding:15px 18px;display:flex}.homeroom-student-toolbar h3{color:var(--sion-ink);margin:0;font-size:16px}.homeroom-student-toolbar>div span{color:var(--sion-muted);margin-top:3px;font-size:12px;display:block}.homeroom-student-toolbar label{border:1px solid var(--sion-border);width:min(100%,340px);min-height:40px;color:var(--sion-muted);border-radius:7px;align-items:center;gap:8px;padding:0 11px;display:flex}.homeroom-student-toolbar input{width:100%;color:var(--sion-ink);font:inherit;background:0 0;border:0;outline:0}.homeroom-student-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid}.homeroom-student-card{border-bottom:1px solid var(--sion-border);grid-template-columns:58px minmax(0,1fr);gap:13px;min-width:0;padding:16px 18px;display:grid}.homeroom-student-card:nth-child(odd){border-right:1px solid var(--sion-border)}.homeroom-student-avatar{width:58px;height:58px;color:var(--sion-primary);background:var(--sion-primary-soft);border-radius:8px;place-items:center;font-size:16px;font-weight:900;display:grid;overflow:hidden}.homeroom-student-avatar img{object-fit:cover;width:100%;height:100%}.homeroom-student-main{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px 12px;min-width:0;display:grid}.homeroom-student-name{min-width:0}.homeroom-student-name strong,.homeroom-student-name span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.homeroom-student-name strong{color:var(--sion-ink);font-size:14px}.homeroom-student-name span{color:var(--sion-muted);margin-top:4px;font-size:11px}.homeroom-status{white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:850}.homeroom-status.status-h{color:#15803d;background:#dcfce7}.homeroom-status.status-i{color:#1d4ed8;background:#dbeafe}.homeroom-status.status-s{color:#a16207;background:#fef3c7}.homeroom-status.status-a{color:#b91c1c;background:#fee2e2}.homeroom-status.status-d{color:#6d28d9;background:#ede9fe}.homeroom-status.status-belum-tercatat{color:#64748b;background:#e2e8f0}.homeroom-student-facts{flex-wrap:wrap;grid-column:1/-1;gap:7px 16px;display:flex}.homeroom-student-facts span{color:var(--sion-muted);align-items:center;gap:5px;font-size:12px;display:flex}.homeroom-student-facts span:first-child svg{color:#d63939}.homeroom-student-main>small{color:var(--sion-muted);grid-column:1/-1;font-size:11px}.homeroom-pagination{border-top:1px solid var(--sion-border);color:var(--sion-muted);justify-content:space-between;align-items:center;gap:14px;padding:13px 18px;font-size:12px;display:flex}.homeroom-pagination div{gap:6px;display:flex}.homeroom-pagination button{border:1px solid var(--sion-border);width:34px;height:34px;color:var(--sion-ink);background:var(--sion-card);border-radius:6px;place-items:center;padding:0;display:grid}.homeroom-pagination button:disabled{color:#b5bdc9}.homeroom-loading,.homeroom-access-state{color:var(--sion-muted);text-align:center;padding:36px 18px}.homeroom-access-state{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:8px;justify-items:center;gap:8px;display:grid}.homeroom-access-state strong{color:var(--sion-ink)}.homeroom-access-state p{margin:0}@media (max-width:900px){.homeroom-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.homeroom-total{grid-column:span 2}}@media (max-width:680px){.homeroom-page{padding:16px 14px 92px}.homeroom-heading,.homeroom-student-toolbar{flex-direction:column;align-items:stretch}.homeroom-heading>label,.homeroom-student-toolbar label{width:100%}.homeroom-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.homeroom-total{grid-column:span 3}.homeroom-summary button{min-height:72px;padding:10px}.homeroom-student-grid{grid-template-columns:1fr}.homeroom-student-card:nth-child(odd){border-right:0}.homeroom-pagination{flex-direction:column;justify-content:center}}.journal-page-header{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.journal-page-header>div:first-child{min-width:0}.journal-page-header span{color:var(--sion-primary);text-transform:uppercase;font-size:12px;font-weight:900}.journal-page-header h2{color:var(--sion-ink);letter-spacing:0;margin:5px 0 4px;font-size:24px}.journal-page-header p{color:var(--sion-muted);margin:0;font-size:14px}.journal-header-actions{flex:none;gap:10px;display:flex}.journal-header-actions .btn{align-items:center;gap:7px;display:inline-flex}.journal-filter-band{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:8px;grid-template-columns:repeat(3,minmax(160px,1fr));align-items:end;gap:12px;padding:14px;display:grid}.journal-filter-band>button{grid-column:3}.journal-filter-band label{gap:6px;min-width:0;display:grid}.journal-filter-band label span{color:var(--sion-muted);font-size:12px;font-weight:800}.journal-filter-band input,.journal-filter-band select,.journal-modal input,.journal-modal select,.journal-modal textarea{border:1px solid var(--sion-border);width:100%;color:var(--sion-ink);background:var(--sion-card);font:inherit;border-radius:7px}.journal-filter-band input,.journal-filter-band select,.journal-modal input,.journal-modal select{min-height:42px;padding:8px 10px}.journal-table-panel{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:8px;overflow:hidden}.journal-topic-cell{gap:4px;min-width:220px;max-width:380px;display:grid}.journal-topic-cell strong,.journal-topic-cell small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.journal-topic-cell small{color:var(--sion-muted)}.journal-modal{width:min(720px,100vw - 32px);max-height:calc(100vh - 32px);overflow-y:auto}.journal-modal-title{align-items:center;gap:12px;margin-bottom:16px;display:flex}.journal-modal-title>span{width:42px;height:42px;color:var(--sion-primary);background:var(--sion-primary-soft);border-radius:8px;flex:0 0 42px;place-items:center;display:grid}.journal-modal-title h3,.journal-modal-title p{margin:0}.journal-modal-title h3{font-size:18px}.journal-modal-title p{color:var(--sion-muted);margin-top:3px;font-size:13px}.journal-modal .form-grid{margin-top:14px}.journal-modal label{color:var(--sion-muted);gap:7px;font-size:12px;font-weight:800;display:grid}.journal-modal textarea{resize:vertical;padding:10px 12px}.journal-field-wide{grid-column:1/-1}@media (max-width:760px){.journal-page{padding:16px 14px 92px}.journal-page-header{flex-direction:column;align-items:stretch}.journal-header-actions{grid-template-columns:1fr 1fr;display:grid}.journal-header-actions .btn{justify-content:center}.journal-filter-band{grid-template-columns:minmax(0,1fr)}.journal-filter-band label,.journal-filter-band label:nth-child(3),.journal-filter-band>button{grid-column:auto;width:100%}.journal-modal .form-grid.two-columns{grid-template-columns:1fr}.journal-field-wide{grid-column:auto}}.teacher-today-card{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:18px;gap:12px;padding:16px;display:grid;box-shadow:0 12px 28px #18243312}.teacher-today-card>div:first-child{justify-content:space-between;align-items:center;gap:12px;display:flex}.teacher-today-card strong,.teacher-today-card span,.teacher-today-item time,.teacher-today-item span{display:block}.teacher-today-card>div:first-child span{color:var(--sion-muted);font-size:12px;font-weight:800}.teacher-today-list{gap:8px;display:grid}.teacher-today-item{background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 52%);border-radius:12px;grid-template-columns:62px minmax(0,1fr);align-items:center;gap:10px;padding:11px 12px;display:grid}.teacher-today-item time{color:var(--sion-primary);font-weight:900}.teacher-today-item span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:700;overflow:hidden}.attendance-pane{max-width:1040px}.attendance-hero{border:1px solid var(--sion-border);background:linear-gradient(135deg, color-mix(in srgb, var(--sion-card), var(--sion-primary) 4%), var(--sion-card));border-radius:20px;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:14px;padding:20px;display:flex;box-shadow:0 14px 30px #18243314}.attendance-hero>div:first-child{min-width:0}.attendance-hero span,.attendance-year-pill{color:var(--sion-primary);text-transform:uppercase;align-items:center;gap:7px;font-size:12px;font-weight:900;line-height:1.2;display:inline-flex}.attendance-hero h2,.attendance-hero p{margin:0}.attendance-hero h2{color:var(--sion-ink);margin-top:10px;font-size:26px;line-height:1.2}.attendance-hero p{color:var(--sion-muted);margin-top:5px;font-weight:700}.attendance-next-schedule{border-top:1px solid var(--sion-border);gap:3px;margin-top:14px;padding-top:12px;display:grid}.attendance-next-schedule small{color:var(--sion-muted);text-transform:uppercase;font-size:11px;font-weight:900}.attendance-next-schedule strong{color:var(--sion-ink);font-size:13px}.attendance-hero-today{grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid;overflow:hidden}.attendance-today-heading{min-width:0}.attendance-today-heading>small{color:var(--sion-muted);margin-top:4px;font-size:12px;font-weight:700;display:block}.attendance-today-schedules{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-color:color-mix(in srgb, var(--sion-muted), transparent 60%) transparent;scrollbar-width:thin;-webkit-overflow-scrolling:touch;grid-column:1/-1;gap:10px;margin-top:10px;padding:0 0 8px;display:flex;overflow-x:auto}.attendance-today-schedule{border:1px solid var(--sion-border);background:var(--sion-card);scroll-snap-align:start;border-radius:8px;grid-template-columns:minmax(0,1fr);align-content:start;gap:7px;width:300px;min-width:300px;min-height:116px;padding:12px 14px;display:grid;position:relative;overflow:hidden}.attendance-today-schedule.active{background:color-mix(in srgb, var(--sion-card), #2fb344 7%);border-color:#2fb3449e;box-shadow:0 8px 20px #2fb3441f}.attendance-schedule-time{color:var(--sion-primary);align-items:center;gap:7px;display:flex}.attendance-schedule-time time{white-space:nowrap;align-items:center;gap:3px;font-size:13px;font-weight:800;display:inline-flex}.attendance-schedule-time time span{color:var(--sion-muted)}.attendance-schedule-content{min-width:0}.attendance-schedule-content>div{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.attendance-schedule-content strong{color:var(--sion-ink);font-size:17px}.attendance-schedule-content p{color:var(--sion-ink);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:13px;font-weight:700;overflow:hidden}.attendance-schedule-content small{color:var(--sion-muted);margin-top:3px;font-size:12px;font-weight:700;display:block}.attendance-live-badge{flex:none;color:#218739!important;text-transform:none!important;font-size:11px!important}.attendance-live-badge i{background:#2fb344;border-radius:50%;width:7px;height:7px;display:block;box-shadow:0 0 0 4px #2fb34424}.attendance-today-empty{border:1px dashed var(--sion-border);color:var(--sion-muted);border-radius:8px;grid-column:1/-1;align-items:center;gap:12px;margin-top:4px;padding:18px;display:flex}.attendance-today-empty span,.attendance-today-empty strong,.attendance-today-empty small{display:block}.attendance-today-empty strong{color:var(--sion-ink);font-size:14px}.attendance-today-empty small{margin-top:2px;font-size:12px}.attendance-between-schedules{align-items:center}.attendance-between-schedules>span,.attendance-between-schedules strong,.attendance-between-schedules small{display:block}.attendance-between-schedules strong{color:var(--sion-ink);font-size:14px}.attendance-between-schedules small{color:var(--sion-muted);margin-top:3px;font-size:12px;line-height:1.45}.attendance-year-pill{background:var(--sion-primary-soft);white-space:nowrap;border-radius:999px;flex:none;min-height:36px;padding:8px 12px}.attendance-controls{grid-template-columns:minmax(260px,1fr) auto;align-items:end;gap:12px;margin-bottom:14px;display:grid}.attendance-controls-summary-only{justify-content:flex-end;display:flex}.attendance-controls label{min-width:0;color:var(--sion-muted);gap:7px;font-size:12px;font-weight:900;display:grid}.attendance-controls select{border:1px solid var(--sion-border);width:100%;min-height:44px;color:var(--sion-ink);background:var(--sion-card);font:inherit;border-radius:12px;padding:0 12px;font-weight:700}.attendance-toolbar{justify-content:flex-end;margin:14px 0 16px;display:flex}.attendance-correction-trigger{border:1px solid color-mix(in srgb, var(--sion-primary), var(--sion-border) 42%);min-height:44px;color:var(--sion-primary);background:color-mix(in srgb, var(--sion-primary-soft), #fff 28%);font:inherit;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:9px;padding:0 16px;font-weight:900;display:inline-flex;box-shadow:0 12px 24px #2772d11f}.attendance-correction-panel{border:1px solid var(--sion-border);background:linear-gradient(135deg, color-mix(in srgb, var(--sion-card), #fff 18%), color-mix(in srgb, var(--sion-primary-soft), #fff 68%));border-radius:18px;gap:16px;margin:14px 0 18px;padding:16px;display:grid;box-shadow:0 18px 46px #18243314}.attendance-correction-panel-heading{justify-content:space-between;align-items:start;gap:12px;display:flex}.attendance-correction-panel-heading>div{gap:5px;display:grid}.attendance-correction-panel-heading span{color:var(--sion-primary);text-transform:uppercase;align-items:center;gap:7px;font-size:12px;font-weight:950;display:inline-flex}.attendance-correction-panel-heading strong{color:var(--sion-ink);font-size:18px;line-height:1.25}.attendance-correction-panel-heading button{border:1px solid var(--sion-border);min-height:38px;color:var(--sion-muted);background:var(--sion-card);font:inherit;cursor:pointer;border-radius:10px;padding:0 12px;font-weight:850}.attendance-correction-tools{grid-template-columns:minmax(210px,280px) auto;align-items:end;gap:12px;display:grid}.attendance-correction-tools label{color:var(--sion-muted);gap:7px;font-size:12px;font-weight:900;display:grid}.attendance-correction-tools input{border:1px solid var(--sion-border);min-height:44px;color:var(--sion-ink);background:var(--sion-card);font:inherit;border-radius:12px;padding:0 12px;font-weight:800}.attendance-correction-list{gap:12px;display:grid}.attendance-correction-list>div:first-child{justify-content:space-between;align-items:center;gap:12px;display:flex}.attendance-correction-list>div:first-child strong{color:var(--sion-ink);font-size:14px}.attendance-correction-list>div:first-child span{color:var(--sion-muted);font-size:12px;font-weight:850}.attendance-correction-list>div:last-child{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.attendance-correction-list button{border:1px solid var(--sion-border);min-height:78px;color:var(--sion-ink);cursor:pointer;text-align:left;background:#ffffffb8;border-radius:14px;justify-items:start;gap:5px;padding:13px 14px;display:grid;box-shadow:0 10px 24px #1824330d}.attendance-correction-list button.active{border-color:var(--sion-primary);background:var(--sion-primary-soft)}.attendance-correction-list button strong{font-size:16px;line-height:1.2}.attendance-correction-list button span{color:var(--sion-muted);font-size:12px;font-weight:750}[data-bs-theme=dark] .attendance-correction-panel{background:#151e2c;border-color:#94a3b833;box-shadow:0 18px 40px #00000038}[data-bs-theme=dark] .attendance-correction-panel-heading button{color:#c7d2e0;background:#101827;border-color:#94a3b83d}[data-bs-theme=dark] .attendance-correction-panel-heading button:hover{color:#eef3f8;background:#1b2738;border-color:#5b9dff85}[data-bs-theme=dark] .attendance-correction-tools input{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#eef3f8;background:#101827;border-color:#94a3b83d}[data-bs-theme=dark] .attendance-correction-tools input:focus{border-color:#5b9dff;outline:3px solid #5b9dff29}[data-bs-theme=dark] .attendance-correction-list button{color:#eef3f8;box-shadow:none;background:#101827;border-color:#94a3b833;transition:border-color .16s,background-color .16s,transform .16s}[data-bs-theme=dark] .attendance-correction-list button:hover{background:#1b2738;border-color:#5b9dff75;transform:translateY(-1px)}[data-bs-theme=dark] .attendance-correction-list button.active{color:#fff;background:#5b9dff24;border-color:#5b9dff}[data-bs-theme=dark] .attendance-correction-list button.active span{color:#b8c9df}.attendance-summary-card{border-bottom:1px solid var(--sion-border);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 42%);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 16px;display:grid}.attendance-summary-card>div:first-child{gap:3px;min-width:0;display:grid}.attendance-summary-card strong{color:var(--sion-ink);font-size:15px;line-height:1.25}.attendance-summary-card>div:first-child span{color:var(--sion-muted);font-size:12px;font-weight:800}.attendance-summary{grid-template-columns:repeat(5,52px);gap:8px;display:grid}.attendance-summary span{border:1px solid var(--sion-border);min-height:44px;color:var(--sion-muted);background:var(--sion-card);border-radius:12px;place-items:center;font-size:11px;font-weight:900;line-height:1.1;display:grid}.attendance-summary span strong{color:var(--sion-ink);font-size:16px;line-height:1}.attendance-journal-card,.attendance-list-card{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:20px;overflow:hidden;box-shadow:0 14px 30px #18243314}.attendance-journal-card{margin-bottom:14px;padding:16px}.attendance-journal-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.attendance-journal-heading span,.attendance-list-meta{color:var(--sion-muted);text-transform:uppercase;font-size:12px;font-weight:900}.attendance-journal-heading strong{color:var(--sion-ink);margin-top:3px;font-size:18px;display:block}.attendance-save-floating{right:24px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:29;min-height:48px;box-shadow:0 12px 28px color-mix(in srgb, var(--sion-primary), transparent 68%);padding-inline:18px;position:fixed}.attendance-journal-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.attendance-previous-journal,.attendance-journal-trigger{border:1px solid var(--sion-border);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 24%);border-radius:8px;min-height:112px}.attendance-previous-journal{padding:13px 14px}.attendance-previous-journal>span{color:var(--sion-muted);text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:900;display:block}.attendance-previous-journal strong{color:var(--sion-ink);font-size:15px;display:block}.attendance-previous-journal p{color:var(--sion-muted);margin:6px 0 0;font-size:13px;line-height:1.45}.attendance-previous-journal small{color:var(--sion-muted);margin-top:7px;font-size:12px;font-style:italic;display:block}.attendance-journal-trigger{color:var(--sion-ink);text-align:left;cursor:pointer;grid-template-columns:42px minmax(0,1fr) 22px;align-items:center;gap:12px;padding:14px;transition:border-color .16s,background-color .16s,transform .16s;display:grid}.attendance-journal-trigger:hover{border-color:color-mix(in srgb, var(--sion-primary), var(--sion-border) 40%);background:color-mix(in srgb, var(--sion-primary-soft), var(--sion-card) 70%);transform:translateY(-1px)}.attendance-journal-trigger:disabled{cursor:not-allowed;opacity:.7;transform:none}.attendance-journal-trigger.filled{border-color:color-mix(in srgb, #1f9d68, var(--sion-border) 45%)}.attendance-journal-trigger>span{width:42px;height:42px;color:var(--sion-primary);background:var(--sion-primary-soft);border-radius:8px;place-items:center;display:grid}.attendance-journal-trigger div{min-width:0}.attendance-journal-trigger strong,.attendance-journal-trigger small{display:block}.attendance-journal-trigger small{color:var(--sion-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:12px;overflow:hidden}.attendance-journal-modal{width:min(660px,100vw - 32px);max-height:calc(100vh - 32px);overflow-y:auto}.attendance-journal-modal-title{align-items:center;gap:12px;margin-bottom:16px;display:flex}.attendance-journal-modal-title>span{width:42px;height:42px;color:var(--sion-primary);background:var(--sion-primary-soft);border-radius:8px;flex:0 0 42px;place-items:center;display:grid}.attendance-journal-modal-title h3,.attendance-journal-modal-title p{margin:0}.attendance-journal-modal-title h3{font-size:18px}.attendance-journal-modal-title p{color:var(--sion-muted);margin-top:3px;font-size:13px}.attendance-journal-modal-fields{gap:13px;display:grid}.attendance-journal-modal-fields label{color:var(--sion-muted);gap:7px;font-size:12px;font-weight:800;display:grid}.attendance-journal-modal-fields input,.attendance-journal-modal-fields textarea{border:1px solid var(--sion-border);width:100%;color:var(--sion-ink);background:var(--sion-card);font:inherit;border-radius:7px;padding:10px 12px}.attendance-journal-modal-fields input{min-height:42px}.attendance-journal-modal-fields textarea{resize:vertical}.attendance-list-card{overflow:hidden}.attendance-list-heading{border-bottom:1px solid var(--sion-border);justify-content:space-between;align-items:center;gap:12px;padding:16px;display:flex}.attendance-list-heading strong,.attendance-list-heading span{display:block}.attendance-list-heading span{color:var(--sion-muted);margin-top:2px;font-size:12px;font-weight:800}.attendance-list-heading .btn,.attendance-student-actions button{white-space:nowrap;justify-content:center;align-items:center;gap:7px;display:inline-flex}.attendance-student-list{display:grid}.attendance-student-item{border-bottom:1px solid var(--sion-border);cursor:pointer;gap:12px;padding:14px 16px;transition:background-color .16s,box-shadow .16s;display:grid}.attendance-student-item:hover{background:color-mix(in srgb, var(--sion-primary-soft), var(--sion-card) 72%)}.attendance-student-item.checked{background:color-mix(in srgb, var(--sion-primary-soft), var(--sion-card) 52%)}.attendance-student-item.attendance-student-locked{cursor:not-allowed;background:color-mix(in srgb, #f59f00, var(--sion-card) 92%)}.attendance-student-locked .attendance-radio-row,.attendance-student-locked .attendance-student-actions{pointer-events:none}.attendance-student-lock-message{color:#a16207;background:#f59f001f;border-radius:6px;align-items:center;gap:7px;width:fit-content;margin-top:2px;padding:6px 9px;font-size:12px;font-weight:700;display:flex}[data-theme=dark] .attendance-student-lock-message{color:#ffd43b}.teacher-qr-review{border-top:1px solid var(--sion-border);gap:10px;margin-top:16px;padding-top:16px;display:grid}.teacher-qr-review h3,.teacher-qr-review strong,.teacher-qr-review span{margin:0}.teacher-qr-review-options{text-align:left;gap:6px;max-height:160px;display:grid;overflow-y:auto}.teacher-qr-review-options label,.teacher-qr-report-toggle{color:var(--sion-ink);text-align:left;align-items:center;gap:8px;font-size:13px;display:flex}.teacher-qr-scan-event{text-align:center;justify-items:center;gap:10px;padding:10px 2px 2px;display:grid}.teacher-qr-scan-event>span{color:#fff;background:#2fb344;border-radius:50%;place-items:center;width:64px;height:64px;display:grid;box-shadow:0 12px 26px #2fb34440}.teacher-qr-scan-event>p,.teacher-qr-scan-event h3,.teacher-qr-scan-event small{margin:0}.teacher-qr-scan-event>p{color:#218739;letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:800}.teacher-qr-scan-event h3{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:19px;overflow:hidden}.teacher-qr-scan-event>small{color:var(--sion-muted)}.teacher-qr-scan-event>div,.teacher-qr-scan-event section{border:1px solid var(--sion-border);text-align:left;background:var(--sion-surface);border-radius:9px;width:100%;padding:12px}.teacher-qr-scan-event div strong,.teacher-qr-scan-event section>strong{color:var(--sion-muted);text-transform:uppercase;font-size:11px;display:block}.teacher-qr-scan-event div p{margin:5px 0 0;font-size:13px;line-height:1.45}.teacher-qr-scan-event section{gap:7px;display:grid}.teacher-qr-scan-event section p,.teacher-qr-late-summary p{justify-content:space-between;gap:12px;margin:0;font-size:13px;font-weight:700;display:flex}.teacher-qr-scan-event section p span,.teacher-qr-late-summary p span{color:var(--sion-muted);font-weight:600}.teacher-qr-late-summary{gap:7px;display:grid}.teacher-qr-review-reason{background:var(--sion-surface);text-align:left;border-radius:8px;padding:10px 12px}.teacher-qr-review-reason small{color:var(--sion-muted);text-transform:uppercase;font-size:11px;font-weight:700}.teacher-qr-review-reason p{margin:4px 0 0;font-size:13px;line-height:1.45}.attendance-student-item:last-child{border-bottom:0}.attendance-student-main{grid-template-columns:36px minmax(0,1fr) 34px 58px;align-items:center;gap:12px;display:grid}.attendance-check-button{border:1px solid var(--sion-border);color:#0000;background:var(--sion-card);cursor:pointer;border-radius:50%;place-items:center;width:30px;height:30px;padding:0;display:grid}.attendance-check-button.checked{border-color:var(--sion-primary);color:#fff;background:var(--sion-primary)}.attendance-number{width:34px;height:34px;color:var(--sion-primary);background:var(--sion-primary-soft);border-radius:11px;place-items:center;font-weight:900;display:grid}.attendance-student-name{min-width:0}.attendance-student-name strong,.attendance-student-name span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.attendance-student-name strong{color:var(--sion-ink)}.attendance-student-name span{color:var(--sion-muted);margin-top:2px;font-size:12px;font-weight:700}.attendance-ps{background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 55%);border-radius:12px;place-items:center;min-height:42px;padding:5px;display:grid}.attendance-ps span,.attendance-ps strong{line-height:1;display:block}.attendance-ps span{color:var(--sion-muted);font-size:10px;font-weight:900}.attendance-ps strong{margin-top:4px;font-size:16px}.attendance-radio-row{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.attendance-radio-row label{border:1px solid var(--sion-border);min-width:0;min-height:40px;color:var(--sion-muted);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 38%);cursor:pointer;border-radius:12px;place-items:center;font-weight:900;line-height:1;display:grid;position:relative}.attendance-radio-row label.active{border-color:color-mix(in srgb, var(--sion-primary), transparent 55%);color:var(--sion-primary);background:var(--sion-primary-soft)}.attendance-radio-row input{opacity:0;pointer-events:none;position:absolute}.attendance-student-actions{grid-template-columns:minmax(190px,.75fr) minmax(0,1fr);gap:8px;display:grid}.attendance-student-actions button,.attendance-student-actions input{border:1px solid var(--sion-border);min-width:0;min-height:40px;color:var(--sion-ink);background:var(--sion-card);font:inherit;border-radius:12px;padding:0 12px;font-weight:700}.attendance-student-actions button{color:var(--sion-primary);text-overflow:ellipsis;justify-content:flex-start;overflow:hidden}.attendance-student-actions button.selected{border-color:color-mix(in srgb, var(--sion-primary), transparent 45%);background:var(--sion-primary-soft)}.attendance-empty{min-height:150px;color:var(--sion-muted);text-align:center;place-items:center;gap:8px;padding:24px;font-weight:800;display:grid}.attendance-violation-modal{border:1px solid color-mix(in srgb, var(--sion-border), #fff 26%);background:var(--sion-card);border-radius:18px;grid-template-rows:auto auto minmax(0,1fr) auto;width:min(540px,100vw - 28px);max-height:calc(100vh - 48px);display:grid;overflow:hidden;box-shadow:0 28px 80px #0f1b2a57}.attendance-violation-modal .modal-header{border-bottom:1px solid var(--sion-border);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 28%);justify-content:space-between;align-items:flex-start;gap:14px;padding:18px 18px 14px;display:flex}.attendance-violation-modal .modal-header h3,.attendance-violation-modal .modal-header p{margin:0}.attendance-violation-modal .modal-header h3{color:var(--sion-ink);font-size:18px;line-height:1.25}.attendance-violation-modal .modal-header p{color:var(--sion-muted);margin-top:4px;font-weight:800}.attendance-violation-modal .btn-close{border:1px solid var(--sion-border);background:var(--sion-card);opacity:1;border-radius:10px;flex:none;width:34px;height:34px}.attendance-violation-modal .modal-footer{border-top:1px solid var(--sion-border);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 20%);justify-content:flex-end;gap:10px;padding:14px 18px 18px;display:flex}.attendance-violation-search{border:1px solid var(--sion-border);color:var(--sion-muted);background:var(--sion-surface);border-radius:12px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;margin:0 18px 12px;padding:0 12px;display:grid}.attendance-violation-search input{min-width:0;min-height:42px;color:var(--sion-ink);font:inherit;background:0 0;border:0;outline:0;font-weight:700}.attendance-violation-list{gap:8px;max-height:min(360px,48vh);padding:0 18px 18px;display:grid;overflow:auto}.attendance-violation-list button{border:1px solid var(--sion-border);width:100%;min-height:48px;color:var(--sion-ink);background:var(--sion-card);text-align:left;border-radius:12px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.attendance-violation-list button.active{border-color:color-mix(in srgb, var(--sion-primary), transparent 45%);background:var(--sion-primary-soft)}.attendance-violation-list span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:800;overflow:hidden}.attendance-violation-list strong{color:var(--sion-primary);white-space:nowrap;font-size:12px}.attendance-violation-empty{min-height:92px;color:var(--sion-muted);text-align:center;place-items:center;font-weight:800;display:grid}.attendance-success-backdrop{z-index:1200;background:#0f172a94;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.attendance-success-modal{width:min(100%,430px);color:var(--sion-ink);background:var(--sion-card);text-align:center;border:1px solid #2fb34452;border-radius:12px;justify-items:center;gap:14px;padding:30px 28px 26px;display:grid;box-shadow:0 28px 70px #0f172a57}.attendance-success-icon{color:#fff;background:#2fb344;border-radius:50%;place-items:center;width:76px;height:76px;display:grid;box-shadow:0 14px 30px #2fb34452}.attendance-success-modal h2{color:var(--sion-ink);margin:4px 0 0;font-size:24px;font-weight:700}.attendance-success-modal p{color:var(--sion-muted);margin:0;font-size:16px;font-weight:600;line-height:1.55}.attendance-success-modal .btn{min-width:150px;min-height:44px;margin-top:6px}.role-layout{grid-template-columns:minmax(260px,.35fr) minmax(0,1fr);align-items:start;gap:14px;display:grid}.role-list-card{position:sticky;top:24px}.role-list-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.role-list-header .btn{flex:none;margin-left:auto}.role-option{text-align:left;border:0;justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}.role-option strong,.role-option small{display:block}.role-option small{color:var(--sion-muted);margin-top:3px;line-height:1.35}.role-option.active{color:#206bc4;background:var(--sion-primary-soft)}.role-editor-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.role-editor-header .btn{align-items:center;gap:7px;display:inline-flex}.role-editor-actions,.user-role-list{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.role-editor-actions .table-action-button.danger{color:var(--tblr-danger)}.user-role-list .role-pill.secondary{color:var(--sion-muted);background:var(--sion-surface)}.user-role-picker{border:1px solid var(--sion-border);border-radius:8px;min-width:0;margin:6px 0 20px;padding:14px}.user-role-picker legend{float:none;width:auto;color:var(--sion-ink);margin:0;padding:0 5px;font-size:13px;font-weight:700}.user-role-picker>p{color:var(--sion-muted);margin:0 0 12px;font-size:12px}.user-role-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.user-role-option{border:1px solid var(--sion-border);cursor:pointer;border-radius:6px;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;padding:11px;display:grid}.user-role-option:has(input:checked){border-color:var(--sion-primary);background:var(--sion-primary-soft)}.user-role-option input{width:17px;min-height:17px;accent-color:var(--sion-primary);margin-top:2px}.user-role-option strong,.user-role-option small{display:block}.user-role-option small,.form-hint{color:var(--sion-muted);margin-top:3px;font-size:11px;font-weight:500;line-height:1.4}.user-modal.role-form-modal{width:min(560px,100%)}.role-form-description{color:var(--sion-muted);margin:-12px 0 20px;font-size:13px;line-height:1.5}.user-modal.role-form-modal textarea{min-height:104px}.permission-body{gap:16px;display:grid}.permission-group{border:1px solid var(--sion-border);border-radius:8px;overflow:hidden}.permission-group header{background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 45%);border-bottom:1px solid var(--sion-border);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.permission-group header strong,.permission-group header small{display:block}.permission-group header small{color:var(--sion-muted)}.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.permission-toggle{border-right:1px solid var(--sion-border);border-bottom:1px solid var(--sion-border);cursor:pointer;grid-template-columns:20px 1fr;align-items:start;gap:10px;min-height:82px;padding:13px 14px;display:grid}.permission-toggle:nth-child(2n){border-right:0}.permission-toggle input{accent-color:#206bc4;width:18px;height:18px;margin-top:2px}.permission-toggle strong,.permission-toggle small{display:block}.permission-toggle small{color:var(--sion-muted);margin-top:4px;line-height:1.35}.mobile-tabs{display:none}.loading-screen{background:radial-gradient(circle at 50% 36%, color-mix(in srgb, var(--sion-primary), transparent 88%), transparent 30%), var(--sion-surface);min-height:100vh;color:var(--sion-ink);place-content:center;gap:16px;padding:24px;display:grid}.loading-screen>:not(.page-loader-card){max-width:420px}.boot-loader{z-index:9999;background:radial-gradient(circle at 50% 36%, #206bc41f, transparent 30%), var(--sion-surface);cursor:wait;place-content:center;padding:24px;display:grid;position:fixed;inset:0}.page-loader-card{gap:10px;width:100%;padding:0;display:grid}.loading-screen .page-loader-card{gap:16px;width:min(360px,100vw - 48px)}.boot-loader .page-loader-copy,.loading-screen .page-loader-copy{border:1px solid var(--sion-border);background:color-mix(in srgb, var(--sion-card), transparent 4%);border-radius:8px;grid-template-columns:44px 1fr;align-items:center;gap:14px;padding:18px;display:grid;box-shadow:0 18px 50px #0208172e}.page-loader-mark{border:1px solid var(--sion-border);background:var(--sion-control-strong);border-radius:12px;place-items:center;width:44px;height:44px;display:grid;overflow:hidden}.page-loader-mark.with-logo{border-color:var(--sion-border);background:color-mix(in srgb, var(--sion-card), #fff 18%)}.page-loader-mark img{object-fit:contain;width:100%;height:100%}.page-loader-progress{z-index:10000;background:#206bc42e;height:6px;position:fixed;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -1px #206bc44d}.page-loader-progress span{background:linear-gradient(90deg,#206bc4,#4299e1);border-radius:0 999px 999px 0;width:42%;animation:.95s ease-in-out infinite page-loader-progress;position:absolute;inset:0 auto 0 0}.page-loader-copy strong,.page-loader-copy span{display:block}.page-loader-copy strong{font-size:15px}.page-loader-copy div span{color:var(--sion-muted);margin-top:3px;font-size:13px}@keyframes page-loader-progress{0%{transform:translate(-110%)}55%{transform:translate(85vw)}to{transform:translate(110vw)}}@keyframes boot-loader-out{to{opacity:0;visibility:hidden}}@media (prefers-reduced-motion:reduce){.boot-loader,.page-loader-progress span{animation:none}}@media (max-width:920px){.app-shell{padding-bottom:calc(66px + env(safe-area-inset-bottom));display:block}.sidebar{display:none}.main-pane{padding:calc(16px + env(safe-area-inset-top)) 14px 18px}.topbar{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f6f8fbeb;min-height:58px;padding:8px 0 10px;position:sticky;top:0}[data-bs-theme=dark] .topbar{background:#111827eb}.topbar-heading{display:none}.topbar-brand{align-items:center;gap:10px;display:flex}.topbar-brand strong,.topbar-brand span{line-height:1.15;display:block}.topbar-brand strong{font-size:15px}.topbar-brand span{color:var(--sion-muted);font-size:12px}.topbar h1{margin:0;font-size:20px}.topbar-actions{gap:6px}.header-icon-button{width:38px;height:38px}.avatar-trigger{min-width:0;padding:3px}.avatar-copy,.avatar-chevron{display:none}.avatar-photo{border-radius:9px;width:38px;height:38px}.header-dropdown{top:calc(64px + env(safe-area-inset-top));width:auto;position:fixed;left:12px;right:12px}.hero-band,.work-grid,.role-layout{grid-template-columns:1fr}.teacher-home-hero{border-radius:20px;grid-template-columns:1fr;gap:16px;min-height:0;margin-bottom:12px;padding:18px}.teacher-home-hero h2{font-size:21px;line-height:1.28}.teacher-home-hero p{font-size:13px}.teacher-weather{width:100%;min-width:0}.teacher-app-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}.teacher-app-icon{aspect-ratio:1;border-radius:16px;gap:6px;min-height:0;padding:8px 4px}.teacher-app-icon span{border-radius:14px;width:44px;height:44px}.teacher-app-icon span svg{width:23px;height:23px}.teacher-app-icon strong{max-width:100%;font-size:11px}.teacher-app-icon small{display:none}.teacher-today-card{border-radius:16px;padding:14px}.teacher-today-item{grid-template-columns:56px minmax(0,1fr);padding:10px}.attendance-pane{max-width:none}.attendance-hero{border-radius:18px;align-items:start;padding:16px;display:grid}.attendance-hero h2{font-size:22px}.attendance-year-pill{width:fit-content}.attendance-hero-today{grid-template-columns:minmax(0,1fr);overflow:hidden}.attendance-hero-today .attendance-year-pill{grid-row:2;margin-top:8px}.attendance-today-schedules{scrollbar-width:none;grid-column:1;width:calc(100% + 16px);margin:8px -16px -2px 0;padding:0 16px 8px 0;scroll-padding-left:0}.attendance-today-schedules::-webkit-scrollbar{display:none}.attendance-today-schedule{width:min(78vw,310px);min-width:min(78vw,310px);min-height:116px;padding:11px 12px}.attendance-schedule-content p,.attendance-schedule-content small{margin-top:1px}.attendance-schedule-content strong{font-size:16px}.attendance-live-badge{text-align:right;max-width:124px}.attendance-controls{grid-template-columns:1fr}.attendance-controls-summary-only{display:flex}.attendance-toolbar{justify-content:stretch}.attendance-correction-trigger,.attendance-correction-panel-heading button,.attendance-correction-tools button{width:100%}.attendance-correction-panel-heading,.attendance-correction-tools{flex-direction:column;grid-template-columns:1fr}.attendance-correction-panel{border-radius:16px;padding:14px}.attendance-summary-card{grid-template-columns:1fr;padding:14px}.attendance-summary{grid-template-columns:repeat(5,minmax(0,1fr));width:100%}.attendance-summary span{min-width:0}.attendance-journal-card,.attendance-list-card{border-radius:18px}.attendance-journal-heading,.attendance-list-heading{padding:14px;display:grid}.attendance-journal-card{padding:0}.attendance-journal-layout{grid-template-columns:1fr;padding:0 14px 14px}.attendance-journal-heading .attendance-save-floating{right:12px;bottom:calc(88px + env(safe-area-inset-bottom));width:auto;min-height:46px;padding-inline:16px}.attendance-student-item{padding:13px}.attendance-student-main{grid-template-columns:34px minmax(0,1fr) 30px 54px;gap:8px}.attendance-radio-row{gap:7px}.attendance-student-actions{grid-template-columns:1fr}.attendance-student-actions button,.attendance-student-actions input{width:100%}.attendance-violation-search{margin-inline:14px}.attendance-violation-list{padding-inline:14px}.role-list-card{position:static}.role-list{scroll-snap-type:x mandatory;grid-auto-columns:minmax(220px,78%);grid-auto-flow:column;display:grid;overflow-x:auto}.role-option{scroll-snap-align:start;border-right:1px solid #6269761f;min-height:104px}.permission-grid{grid-template-columns:1fr}.permission-toggle,.permission-toggle:nth-child(2n){border-right:0}.role-editor-header{align-items:flex-start}.hero-band{padding:18px}.hero-band h2{font-size:18px}.permission-stack{justify-content:flex-start}.metric-grid{grid-template-columns:1fr}.metric-card .card-body{grid-template-columns:1fr auto;align-items:center}.metric-card small{grid-column:1/-1}.mobile-tabs{z-index:30;padding:4px 6px calc(4px + env(safe-area-inset-bottom));border:1px solid var(--sion-border);background:color-mix(in srgb, var(--sion-card), transparent 4%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:0;border-left:0;border-right:0;border-radius:14px 14px 0 0;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;transition:transform .18s,opacity .14s;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 16px 40px #02081733}.mobile-tabs.keyboard-open{pointer-events:none;opacity:0;transform:translateY(100%)}.mobile-tabs button{min-width:0;min-height:42px;color:var(--sion-muted);background:0 0;border:0;border-radius:10px;align-content:center;justify-items:center;gap:2px;padding:4px 2px;font-size:10px;font-weight:700;line-height:1.15;display:grid}.mobile-tabs button span{text-align:center;text-overflow:ellipsis;white-space:nowrap;width:100%;overflow:hidden}.mobile-tabs button.active{color:var(--sion-primary);background:var(--sion-primary-soft)}.mobile-tabs.teacher-tabs{padding-top:4px;overflow:visible}.mobile-tabs.security-tabs{grid-template-columns:1fr 72px 1fr;padding-top:4px;overflow:visible}.mobile-tabs.teacher-tabs .mobile-qr-button,.mobile-tabs.security-tabs .mobile-qr-button{z-index:2;border:6px solid var(--sion-card);color:#fff;background:#2fb344;border-radius:50%;place-self:start center;width:62px;min-width:62px;height:62px;min-height:62px;margin-top:-31px;padding:0;position:relative;box-shadow:0 10px 24px #2fb3444d}.mobile-tabs.security-tabs .mobile-qr-button{background:#206bc4;box-shadow:0 10px 24px #206bc44d}.mobile-tabs.teacher-tabs .mobile-qr-button span,.mobile-tabs.security-tabs .mobile-qr-button span{font-size:10px;position:absolute;top:64px}.mobile-tabs.teacher-tabs .mobile-qr-button span{color:#218739}.mobile-tabs.security-tabs .mobile-qr-button span{color:#206bc4}.mobile-tabs.teacher-tabs .mobile-qr-button:active,.mobile-tabs.security-tabs .mobile-qr-button:active{transform:translateY(2px)}.mobile-more-backdrop{top:var(--mobile-visual-top,0px);z-index:40;height:100vh;height:var(--mobile-visual-height,100dvh);padding:12px 12px max(12px, env(safe-area-inset-bottom));overscroll-behavior:contain;touch-action:none;background:#18243361;justify-content:center;align-items:flex-end;display:flex;position:fixed;bottom:auto;left:0;right:0;overflow:hidden}.mobile-more-backdrop.keyboard-open{padding-top:8px;padding-bottom:8px}.mobile-more-sheet{width:min(100%,520px);max-height:min(78vh,100vh - 24px);max-height:min(78dvh, calc(var(--mobile-visual-height,100dvh) - 24px));border:1px solid var(--sion-border);background:var(--sion-card);border-radius:16px;flex-direction:column;padding:18px;animation:.18s ease-out mobile-sheet-enter;display:flex;overflow:hidden;box-shadow:0 20px 50px #02081752}.mobile-more-backdrop.keyboard-open .mobile-more-sheet{max-height:calc(var(--mobile-visual-height,100dvh) - 16px)}.mobile-more-heading{z-index:1;border-bottom:1px solid var(--sion-border);background:var(--sion-card);flex:none;justify-content:space-between;align-items:flex-start;gap:16px;margin:-18px -18px 14px;padding:18px 18px 14px;display:flex;position:sticky;top:0}.mobile-more-heading .eyebrow{margin:0 0 3px}.mobile-more-heading h2{margin:0;font-size:20px}.mobile-more-close{appearance:none;width:36px;height:36px;color:var(--sion-muted);box-shadow:none;cursor:pointer;background:0 0;border:0;outline:0;flex:none;place-items:center;margin:-5px -5px 0 0;padding:0;line-height:0;display:grid}.mobile-more-close:hover,.mobile-more-close:active{color:var(--sion-ink);background:0 0}.mobile-more-close:focus-visible{outline:2px solid var(--sion-primary);outline-offset:2px;border-radius:50%}.mobile-more-search-wrap{border-top:1px solid var(--sion-border);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 20%);flex:none;margin:12px -18px -18px;padding:12px 18px 14px}.mobile-more-search{border:1px solid var(--sion-border);min-height:46px;color:var(--sion-muted);background:var(--sion-control);border-radius:12px;align-items:center;gap:10px;padding:0 13px;display:flex}.mobile-more-search input{width:100%;min-width:0;color:var(--sion-ink);font:inherit;background:0 0;border:0;outline:0;font-size:16px;font-weight:700}.mobile-more-search input::placeholder{color:var(--sion-muted)}.mobile-more-search:focus-within{border-color:var(--sion-primary);background:var(--sion-control-strong);box-shadow:0 0 0 3px color-mix(in srgb, var(--sion-primary), transparent 80%)}.mobile-more-list{overscroll-behavior:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch;touch-action:pan-y;gap:8px;min-height:0;padding-right:4px;display:grid;overflow-y:auto}.mobile-more-list::-webkit-scrollbar{width:6px}.mobile-more-list::-webkit-scrollbar-thumb{background:#66708547;border-radius:999px}.mobile-more-group{gap:8px;display:grid}.mobile-more-group+.mobile-more-group{border-top:1px solid var(--sion-border);margin-top:10px;padding-top:14px}.mobile-more-group h3{color:var(--sion-muted);text-transform:uppercase;margin:0;padding:0 4px 2px;font-size:11px;font-weight:800}.mobile-more-item{border:1px solid var(--sion-border);width:100%;color:var(--sion-ink);background:var(--sion-control);text-align:left;border-radius:8px;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;padding:10px;display:grid}.mobile-more-item.active{border-color:color-mix(in srgb, var(--sion-primary), transparent 54%);background:var(--sion-primary-soft)}.mobile-more-item:disabled{cursor:not-allowed;opacity:.58}.mobile-more-empty{border:1px dashed var(--sion-border);color:var(--sion-muted);background:var(--sion-control);text-align:center;border-radius:8px;padding:18px 10px;font-size:13px;font-weight:700}.mobile-more-icon{width:42px;height:42px;color:var(--sion-primary);background:var(--sion-primary-soft);border-radius:8px;place-items:center;display:grid}.mobile-more-item strong,.mobile-more-item small{display:block}.mobile-more-item small{color:var(--sion-muted);margin-top:3px;line-height:1.3}}html.mobile-more-open,html.mobile-more-open body{overscroll-behavior:none;overflow:hidden}@keyframes mobile-sheet-enter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.mobile-more-sheet{animation:none}}@media (max-width:430px){.auth-screen{padding:calc(18px + env(safe-area-inset-top)) 14px 18px;align-items:stretch}.auth-panel{flex-direction:column;justify-content:center;min-height:100%;display:flex}.auth-brand-mark{border-radius:21px;width:82px;height:82px}.auth-heading h1{font-size:23px}.timeline-row{grid-template-columns:48px 1fr}}@media (max-width:640px){.profile-security-card{flex-direction:column;align-items:stretch;padding:18px}.profile-security-actions{flex-direction:column;align-items:stretch;width:100%}.profile-security-actions .btn{justify-content:center;width:100%}}.schedule-workbench{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:10px;gap:14px;padding:16px;display:grid;box-shadow:0 4px 14px #1824330f}.schedule-toolbar{gap:14px;display:grid}.schedule-day-tabs{grid-template-columns:repeat(7,minmax(86px,1fr));gap:8px;display:grid}.schedule-day-tabs button{border:1px solid var(--sion-border);min-height:58px;color:var(--sion-muted);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 30%);text-align:left;cursor:pointer;border-radius:8px;padding:9px 10px}.schedule-day-tabs button span,.schedule-day-tabs button strong{display:block}.schedule-day-tabs button span{color:var(--sion-muted);text-transform:uppercase;margin-bottom:2px;font-size:11px;font-weight:800}.schedule-day-tabs button strong{color:var(--sion-ink);font-size:14px;line-height:1.2}.schedule-day-tabs button.active{background:var(--sion-primary-soft);border-color:#206bc461}.schedule-day-tabs button.active span,.schedule-day-tabs button.active strong{color:var(--sion-primary)}.schedule-filters{grid-template-columns:minmax(170px,.75fr) minmax(170px,.75fr) minmax(260px,1fr);align-items:end;gap:10px;display:grid}.schedule-filters label,.schedule-modal label{color:var(--sion-muted);gap:6px;font-size:12px;font-weight:800;display:grid}.schedule-filters select,.schedule-filters input,.schedule-modal select,.schedule-modal textarea{border:1px solid var(--sion-border);width:100%;min-height:42px;color:var(--sion-ink);background:var(--sion-card);font:inherit;border-radius:8px;font-weight:700}.schedule-filters select,.schedule-modal select{padding:0 11px}.schedule-search{position:relative}.schedule-search svg{color:var(--sion-muted);pointer-events:none;position:absolute;bottom:13px;left:12px}.schedule-search input{padding:0 12px 0 38px}.schedule-meta-row{color:var(--sion-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.schedule-meta-row span{background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 42%);border-radius:999px;align-items:center;min-height:28px;padding:4px 10px;display:inline-flex}.schedule-meta-row span:first-child{color:var(--sion-primary);background:var(--sion-primary-soft)}.schedule-grid-wrap{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:10px;overflow:auto}.schedule-grid{table-layout:fixed;border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.schedule-grid th,.schedule-grid td{border-right:1px solid var(--sion-border);border-bottom:1px solid var(--sion-border);vertical-align:top}.schedule-grid th:last-child,.schedule-grid td:last-child{border-right:0}.schedule-grid tbody tr:last-child th,.schedule-grid tbody tr:last-child td{border-bottom:0}.schedule-grid thead th{z-index:2;width:260px;min-width:260px;color:var(--sion-muted);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 42%);text-align:left;text-transform:uppercase;padding:12px;font-size:12px;font-weight:900;position:sticky;top:0}.schedule-grid thead th:first-child,.schedule-grid tbody th{z-index:3;background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 34%);width:132px;min-width:132px;position:sticky;left:0}.schedule-grid tbody th{text-align:left;padding:12px}.schedule-grid tbody th strong,.schedule-grid tbody th span{display:block}.schedule-grid tbody th strong{color:var(--sion-ink);font-size:13px;line-height:1.25}.schedule-grid tbody th span{color:var(--sion-muted);margin-top:4px;font-size:12px;font-weight:700;line-height:1.3}.schedule-grid td{background:var(--sion-card);width:260px;min-width:260px;height:84px;padding:8px}.schedule-block{background:var(--sion-primary-soft);border:1px solid #206bc438;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:10px;min-height:68px;padding:10px;display:grid}.schedule-block strong,.schedule-block span,.schedule-block small{min-width:0;display:block}.schedule-block strong{color:var(--sion-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;line-height:1.25;overflow:hidden}.schedule-block span{color:var(--sion-ink);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:12px;font-weight:700;line-height:1.3;overflow:hidden}.schedule-block small{color:var(--sion-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:11px;font-weight:700;line-height:1.3;overflow:hidden}.schedule-actions{gap:4px;display:flex}.schedule-actions button{width:28px;height:28px;color:var(--sion-primary);background:color-mix(in srgb, var(--sion-card), transparent 10%);cursor:pointer;border:1px solid #206bc429;border-radius:7px;place-items:center;display:grid}.schedule-actions button:last-child{color:#d63939}.schedule-empty-slot{width:100%;min-height:54px;color:var(--sion-muted);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 34%);cursor:pointer;border:1px dashed #94a3b86b;border-radius:8px;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:800;display:inline-flex}.schedule-empty-slot:hover{color:var(--sion-primary);background:var(--sion-primary-soft);border-color:#206bc457}.schedule-continuation,.schedule-empty-state{min-height:54px;color:var(--sion-muted);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 34%);border:1px dashed #94a3b857;border-radius:8px;place-items:center;font-size:12px;font-weight:800;display:grid}.schedule-empty-state{min-height:120px}.schedule-mobile-list{display:none}.schedule-modal{width:min(720px,100vw - 28px)}.schedule-modal textarea{resize:vertical;min-height:84px;padding:10px 12px}.schedule-modal-alert{margin:12px 0 14px;padding:11px 12px;font-size:13px;line-height:1.45}.schedule-preview-card{background:var(--sion-primary-soft);border:1px solid #206bc438;border-radius:8px;gap:4px;margin-top:12px;padding:12px;display:grid}.schedule-preview-card span{color:var(--sion-primary);text-transform:uppercase;font-size:11px;font-weight:900}.schedule-preview-card strong{color:var(--sion-ink)}.schedule-preview-card p{color:var(--sion-muted);margin:0;font-size:13px;font-weight:700;line-height:1.4}@media (max-width:920px){.page-heading{align-items:flex-start;gap:12px}.page-heading .btn{white-space:nowrap;min-height:42px;padding:0 12px}.schedule-workbench{border-radius:10px;padding:12px}.schedule-day-tabs{scroll-snap-type:x mandatory;grid-template-columns:none;grid-auto-columns:minmax(96px,1fr);grid-auto-flow:column;padding-bottom:2px;overflow-x:auto}.schedule-day-tabs button{scroll-snap-align:start;min-height:54px}.schedule-filters{grid-template-columns:1fr}.schedule-grid-wrap{display:none}.schedule-mobile-list{gap:10px;display:grid}.schedule-period-card{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:10px;overflow:hidden}.schedule-period-card header{border-bottom:1px solid var(--sion-border);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 36%);justify-content:space-between;align-items:center;gap:10px;padding:11px 12px;display:flex}.schedule-period-card header strong{color:var(--sion-ink);font-size:13px}.schedule-period-card header span{color:var(--sion-muted);font-size:12px;font-weight:800}.schedule-period-classes{display:grid}.schedule-period-class{border-bottom:1px solid var(--sion-border);gap:8px;padding:10px 12px;display:grid}.schedule-period-class:last-child{border-bottom:0}.schedule-period-class-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.schedule-period-class-head span{color:var(--sion-ink);font-size:13px;font-weight:900}.schedule-period-class-head small{color:var(--sion-primary);background:var(--sion-primary-soft);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:800}.schedule-block.compact,.schedule-empty-slot.compact{min-height:48px}}@media (max-width:520px){.page-heading{display:grid}.page-heading .btn{justify-content:center;width:100%}}.page-heading{justify-content:space-between;margin-bottom:16px;display:flex}.page-heading h2{margin:0;font-size:20px}.page-heading p{color:var(--sion-muted);margin:5px 0 0;font-size:13px}.employee-assignment-header{justify-content:space-between;align-items:flex-end;gap:16px;margin:28px 0 14px;display:flex}.employee-assignment-header h2{margin:0;font-size:20px}.employee-assignment-header p{color:var(--sion-muted);margin:5px 0 0;font-size:13px}.employee-assignment-card{margin-top:0!important}@media (max-width:620px){.employee-assignment-header{align-items:stretch;display:grid}.employee-assignment-header .btn{justify-content:center;width:100%}}.user-card{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #1824330f}.filter-bar{border-bottom:1px solid var(--sion-border);justify-content:flex-end;align-items:center;gap:8px;padding:10px 14px;display:flex}.filter-select{min-width:150px;color:var(--sion-muted);align-items:center;gap:8px;padding:0 8px;font-size:12px;display:flex;position:relative}.filter-select select,.filter-select select:focus,.filter-select select:active{box-shadow:none!important;border:0!important;outline:0!important}.filter-select svg{pointer-events:none;position:absolute;right:5px}.btn-outline-warning{color:#f59f00;border-color:#f59f00}.data-table-wrap{width:100%}.data-table-toolbar{justify-content:space-between;gap:8px;padding:12px 14px;display:flex}.table-search{border:1px solid var(--sion-border);color:#98a2b3;border-radius:7px;align-items:center;gap:8px;width:min(100%,570px);padding:7px 10px;display:flex}.table-search input{width:100%;color:var(--sion-ink);background:0 0;border:0;outline:0;font-size:14px}.table-size{color:var(--sion-muted);align-items:center;gap:7px;font-size:13px;display:flex}.table-size select{border:1px solid var(--sion-border);color:var(--sion-ink);background:var(--sion-card);border-radius:6px;padding:7px 8px;font-size:14px}.table-scroll{position:relative;overflow-x:auto}.table-loading{z-index:2;min-height:160px;color:var(--sion-ink);background:#ffffffe0;background:color-mix(in srgb, var(--sion-card) 88%, transparent);-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:12px;font-weight:600;display:flex;position:absolute;inset:0}[data-bs-theme=dark] .table-loading{background:#151e2ce6}.table-loader{background:#206bc429;background:color-mix(in srgb, var(--sion-primary) 18%, transparent);border-radius:999px;width:min(170px,48vw);height:3px;position:relative;overflow:hidden}.table-loader:after{border-radius:inherit;background:var(--sion-primary);width:42%;box-shadow:0 0 14px color-mix(in srgb, var(--sion-primary) 34%, transparent);content:"";animation:.95s ease-in-out infinite table-loader-slide;position:absolute;inset:0}@keyframes table-loader-slide{0%{transform:translate(-115%)}55%{transform:translate(95%)}to{transform:translate(255%)}}@media (max-width:640px){.table-loading{min-height:120px;position:sticky;left:0}}@media (prefers-reduced-motion:reduce){.table-loader:after{animation:none}}.data-table{border-collapse:collapse;width:100%;min-width:700px}.data-table th,.data-table td{border-top:1px solid var(--sion-border);text-align:left;padding:11px 14px;font-size:14px;line-height:1.45}.data-table th{color:var(--sion-muted);letter-spacing:.02em;text-transform:uppercase;background:#62697609;font-size:12px;font-weight:800}.data-table tbody tr:hover{background:#206bc406}.data-table .table-cell-student-name,.data-table .table-cell-student-name strong,.data-table .table-cell-date-time,.data-table .table-cell-date-time strong{white-space:nowrap}.data-table .table-cell-student-name{min-width:max-content}.import-table-scroll .data-table th:nth-child(2),.import-table-scroll .data-table td:nth-child(2),.import-table-scroll .data-table td:nth-child(2) strong{white-space:nowrap}.user-cell{align-items:center;gap:10px;min-width:240px;display:flex}.user-cell strong,.user-cell small{display:block}.user-cell small{color:var(--sion-muted);margin-top:3px;font-size:12px}.user-initials{color:#206bc4;background:#e8f1ff;border-radius:6px;place-items:center;width:34px;height:34px;font-size:12px;font-weight:800;display:grid}.role-pill,.status-pill{border-radius:999px;padding:4px 10px;font-size:11px;font-weight:800;line-height:1.25;display:inline-block}.role-pill{color:#344054;background:#e7e9ec}.status-pill.active{color:#2fb344;background:#e8f5eb}.status-pill.inactive{color:#d63939;background:#fdebec}[data-bs-theme=dark] .role-pill{color:#d7e3f3;background:#94a3b829}[data-bs-theme=dark] .status-pill.active{color:#70d68b;background:#2fb34429}[data-bs-theme=dark] .status-pill.inactive{color:#ff8a8a;background:#d6393929}.table-actions-heading,.table-actions{white-space:nowrap;width:84px;min-width:84px;text-align:center!important;padding-inline:12px!important}.table-actions .btn{margin-left:5px;margin-right:0}.table-action-button{border:1px solid var(--sion-border);width:34px;height:34px;color:var(--sion-primary);background:var(--sion-card);cursor:pointer;border-radius:6px;place-items:center;padding:0;transition:border-color .15s,background-color .15s,color .15s;display:inline-grid}.table-action-button:hover{border-color:var(--sion-primary);color:#fff;background:var(--sion-primary)}.table-action-button:focus-visible{outline:2px solid color-mix(in srgb, var(--sion-primary), transparent 55%);outline-offset:2px}.filter-select select:focus,.table-size select:focus,.table-actions .btn:focus{box-shadow:none!important;outline:none!important}.filter-select select:focus-visible,.table-size select:focus-visible,.table-actions .btn:focus-visible{outline:none}.user-filter-card,.user-table-card{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:10px;width:100%;overflow:hidden;box-shadow:0 4px 14px #1824330f}.user-filter-card{margin-bottom:18px}.user-filter-card+.user-table-card,.user-table-card+.user-filter-card,.user-table-card+.user-table-card{margin-top:18px}.teacher-assignment-panel{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:10px;width:100%;margin-bottom:18px;padding:18px;box-shadow:0 4px 14px #1824330f}.assignment-panel-heading,.class-picker-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.assignment-panel-heading h2,.class-picker-heading h3{color:var(--sion-text);margin:8px 0 0}.assignment-panel-heading .btn-primary{border-radius:8px;min-height:40px;padding:0 16px}.assignment-form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 180px;gap:14px;margin-top:16px;display:grid}.assignment-form-grid label{color:var(--sion-muted);gap:7px;font-size:13px;font-weight:700;display:grid}.assignment-form-grid select{border:1px solid var(--sion-border);width:100%;min-height:42px;color:var(--sion-ink);background:var(--sion-control);font:inherit;border-radius:8px;padding:0 12px;font-weight:700}.assignment-form-grid select:focus{border-color:color-mix(in srgb, var(--sion-primary), transparent 20%);box-shadow:0 0 0 3px color-mix(in srgb, var(--sion-primary), transparent 82%);outline:none}.class-picker-card{border:1px solid var(--sion-border);background:var(--sion-control-strong);border-radius:8px;margin-top:16px;padding:14px}.class-picker-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.class-checkbox-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:14px;display:grid}.class-check{border:1px solid var(--sion-border);background:var(--sion-card);min-height:42px;color:var(--sion-ink);text-align:left;border-radius:8px;align-items:center;gap:9px;padding:9px 11px;font-weight:700;display:flex}.class-check:hover{border-color:color-mix(in srgb, var(--sion-primary), transparent 35%);background:color-mix(in srgb, var(--sion-primary-soft), var(--sion-card) 70%)}.class-check.selected{border-color:var(--sion-primary);color:var(--sion-primary);background:var(--sion-primary-soft)}.class-check-box{border:1px solid color-mix(in srgb, var(--sion-muted), transparent 35%);width:18px;height:18px;color:var(--sion-primary);background:var(--sion-control);border-radius:5px;flex:0 0 18px;place-items:center;font-size:12px;font-weight:900;display:grid}.class-check.selected .class-check-box{border-color:var(--sion-primary);background:color-mix(in srgb, var(--sion-primary), transparent 88%)}.class-chip-list{flex-wrap:wrap;gap:6px;min-width:260px;display:flex}.class-chip{min-height:24px;color:var(--sion-ink);background:var(--sion-control-strong);border-radius:999px;align-items:center;padding:3px 8px;font-size:12px;font-weight:800;display:inline-flex}.assignment-empty{border:1px dashed var(--sion-border);color:var(--sion-muted);background:var(--sion-card);text-align:center;border-radius:8px;grid-column:1/-1;padding:14px}.user-filter-card .filter-bar{border:0;align-items:center;gap:12px;padding:14px 18px;display:flex}.user-filter-card .filter-bar-row-1{justify-content:flex-end;min-height:64px}.user-filter-card .filter-bar-row-2{border-top:1px solid var(--sion-border);justify-content:flex-end;min-height:64px}.segmented-control{border:1px solid var(--sion-border);background:#f8fafc;border-radius:10px;flex-wrap:wrap;align-items:center;gap:4px;padding:4px;display:inline-flex}.segmented-control button{min-height:36px;color:var(--sion-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 14px;font-size:13px;font-weight:750;transition:background-color .15s,color .15s,box-shadow .15s}.segmented-control button:hover{color:var(--sion-ink);background:#eef3f8}.segmented-control button.active{color:#fff;background:var(--sion-primary);box-shadow:0 5px 12px #206bc438}.user-filter-card .filter-select{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:7px;min-width:190px;height:40px;padding:0 10px}.user-filter-card .filter-select span{color:var(--sion-ink);font-size:13px;font-weight:700}.user-filter-card .filter-select select{min-width:105px;color:var(--sion-ink);font-size:14px}.user-filter-card .user-filter-select{border-color:color-mix(in srgb, var(--sion-border), var(--sion-muted) 10%);background:var(--sion-control);grid-template-columns:minmax(0,1fr);align-content:center;gap:7px;height:auto;min-height:76px;padding:11px 13px;display:grid}.user-filter-card .user-filter-label{color:var(--sion-muted);text-transform:uppercase;align-items:center;gap:7px;font-size:11px;font-weight:800;line-height:1;display:flex;position:static}.user-filter-card .user-filter-label svg{color:var(--sion-primary);position:static}.user-filter-card .user-filter-control{min-width:0;display:block;position:relative}.user-filter-card .user-filter-control select{appearance:none;width:100%;min-width:0;height:40px;color:var(--sion-ink);background:var(--sion-card);font:inherit;cursor:pointer;border-radius:7px;outline:none;padding:0 42px 0 12px;font-size:14px;font-weight:700;transition:border-color .15s,background-color .15s,box-shadow .15s;border:1px solid var(--sion-border)!important}.user-filter-card .user-filter-control select:hover{border-color:color-mix(in srgb, var(--sion-primary), var(--sion-border) 45%)!important}.user-filter-card .user-filter-control select:focus-visible{border-color:var(--sion-primary)!important;box-shadow:0 0 0 3px color-mix(in srgb, var(--sion-primary), transparent 82%)!important}.user-filter-card .user-filter-control .user-filter-chevron{color:var(--sion-muted);pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.user-table-card .table-card-heading{border-bottom:1px solid var(--sion-border);align-items:center;min-height:56px;padding:0 20px;display:flex}.user-table-card .data-table-toolbar{align-items:center;min-height:70px;padding:14px 20px}.user-table-card .table-search{background:var(--sion-card);width:min(100%,570px);min-height:40px;padding:0 12px}.user-table-card .table-size{min-height:40px}.user-table-card .data-table th,.user-table-card .data-table td{padding:13px 20px}.user-table-card .data-table th:last-child,.user-table-card .table-actions{width:190px;text-align:right!important;padding-right:20px!important}.user-table-card .table-actions>button{vertical-align:middle;height:40px;min-height:40px}.user-table-card .table-actions>.table-action-button{width:40px;display:inline-grid}.data-table-wrap .data-table-footer{border-top:1px solid var(--sion-border);background:var(--sion-card);justify-content:space-between;align-items:center;gap:24px;min-height:76px;padding:18px 24px;display:flex}.data-table-wrap .data-table-footer>span{color:var(--sion-muted);flex:auto;font-size:13px;line-height:1.45}.data-table-wrap .pagination{flex:none;justify-content:flex-end;align-items:center;gap:6px;margin-left:auto;display:flex}.data-table-wrap .pagination button{width:34px;height:34px;color:var(--sion-muted);background:0 0;border:1px solid #0000;border-radius:6px;transition:background-color .15s,color .15s}.data-table-wrap .pagination button:not(:disabled):not(.active):hover{color:var(--sion-ink);background:var(--sion-primary-soft)}.data-table-wrap .pagination button.active{color:#fff;background:#182433}.data-table-wrap .pagination button:disabled{color:#b5bdc9;background:0 0}@media (max-width:600px){.data-table-wrap .data-table-footer{flex-direction:column;display:flex}.data-table-wrap .pagination{order:1}.data-table-wrap .data-table-footer>span{order:2}}.pagination{align-items:center;gap:8px;display:flex}.pagination button{width:30px;height:30px;color:var(--sion-ink);background:0 0;border:0;border-radius:5px;place-items:center;padding:0;font-size:12px;display:grid}.pagination button.active{color:#fff;background:#182433}.pagination button:disabled{color:#b5bdc9;opacity:1}.pagination strong,.pagination span{display:none}.modal-backdrop{z-index:1000;background:#0f1b2a9e;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow-y:auto}.user-modal{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:12px;width:min(760px,100%);max-height:min(860px,100vh - 48px);padding:28px;position:relative;overflow-y:auto;box-shadow:0 24px 70px #0f1b2a47}.user-modal h3{color:var(--sion-ink);margin:0 0 22px;font-size:20px}.user-modal h2{color:var(--sion-ink);margin:0 44px 22px 0;font-size:20px;line-height:1.3}.profile-crop-backdrop{padding:max(14px, env(safe-area-inset-top)) 14px max(14px, env(safe-area-inset-bottom));align-items:center}.profile-crop-modal{flex-direction:column;width:min(560px,100%);max-height:min(720px,100dvh - 28px);display:flex;overflow:hidden}.profile-crop-stage{background:#000;border-radius:8px;width:100%;height:min(360px,48dvh);min-height:240px;margin:16px 0;overflow:hidden}.profile-crop-stage img{max-width:100%;display:block}.profile-security-card{justify-content:space-between;align-items:center;gap:18px;padding:22px 24px;display:flex}.profile-security-copy{align-items:flex-start;gap:14px;min-width:0;display:flex}.profile-security-icon{width:46px;height:46px;color:var(--sion-primary);background:var(--sion-primary-soft);border-radius:8px;flex:none;place-items:center;display:inline-grid}.profile-security-copy h3{margin:0 0 4px;font-size:16px}.profile-security-copy p,.profile-security-copy small{color:var(--sion-muted);margin:0}.profile-security-copy small{margin-top:4px;font-size:12px;display:block}.profile-security-actions{flex:none;justify-content:flex-end;align-items:center;gap:10px;display:flex}.counseling-modal-backdrop{padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));align-items:center}.counseling-crop-backdrop{z-index:1060}.counseling-modal{width:min(100%,720px);max-height:calc(100dvh - 32px);color:var(--sion-ink);display:flex}.counseling-modal-lg{width:min(100%,760px)}.counseling-crop-modal{width:min(100%,640px)}.counseling-modal-content{width:100%;max-height:inherit;border:1px solid var(--sion-border);background:var(--sion-card);border-radius:10px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 24px 70px #0f1b2a52}.counseling-modal-header,.counseling-modal-footer{background:var(--sion-card);flex:none;align-items:center;gap:12px;padding:16px 18px;display:flex}.counseling-modal-header{border-bottom:1px solid var(--sion-border);justify-content:space-between}.counseling-modal-header h5{min-width:0;color:var(--sion-ink);align-items:center;margin:0;font-size:17px;font-weight:700;line-height:1.25;display:flex}.counseling-modal-close{width:34px;height:34px;color:var(--sion-muted);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 58%);border:0;border-radius:7px;flex:none;place-items:center;display:grid}.counseling-modal-close:hover{color:var(--sion-primary);background:var(--sion-primary-soft)}.counseling-modal-body{background:var(--sion-card);flex:auto;min-height:0;padding:18px;overflow-y:auto}.counseling-modal-footer{border-top:1px solid var(--sion-border);justify-content:flex-end}.counseling-crop-stage{background:#000;min-height:240px;max-height:min(420px,56dvh);overflow:hidden}.counseling-crop-stage img{max-width:100%;display:block}[data-bs-theme=dark] .counseling-modal-content,[data-bs-theme=dark] .counseling-modal-header,[data-bs-theme=dark] .counseling-modal-body,[data-bs-theme=dark] .counseling-modal-footer{background:var(--sion-card)}.user-modal>label,.user-modal .modal-grid>label,.user-modal .form-grid>label{color:var(--sion-ink);flex-direction:column;gap:8px;margin-bottom:16px;font-size:12px;font-weight:600;display:flex}.user-modal>label.permission-toggle{border:0;border-bottom:1px solid var(--sion-border);cursor:pointer;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:11px;min-height:0;margin:0;padding:13px 0;display:grid}.user-modal>label.permission-toggle input{width:18px;min-width:18px;height:18px;min-height:18px;accent-color:var(--sion-primary);box-shadow:none;border:0;border-radius:4px;margin:2px 0 0;padding:0}.user-modal>label.permission-toggle span{color:var(--sion-ink);font-size:13px;font-weight:700;line-height:1.35;display:block}.user-modal>label.permission-toggle small{color:var(--sion-muted);margin-top:4px;font-size:12px;font-weight:500;line-height:1.45;display:block}.user-modal .form-grid{gap:16px;margin-bottom:16px;display:grid}.user-modal .form-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.user-modal .form-grid>label{margin-bottom:0}.field-label-with-help{align-items:center;gap:6px;width:fit-content;display:inline-flex;position:relative}.field-help-button{width:18px;height:18px;color:var(--sion-muted);cursor:help;background:0 0;border:0;border-radius:999px;flex:0 0 18px;place-items:center;padding:0;display:inline-grid}.field-help-button:hover,.field-help-button:focus-visible{color:var(--sion-primary);background:var(--sion-primary-soft)}.field-help-tooltip{z-index:1010;color:#fff;text-align:left;text-transform:none;opacity:0;pointer-events:none;background:#1f2937;border-radius:8px;width:min(300px,100vw - 80px);padding:9px 10px;font-size:12px;font-weight:500;line-height:1.45;transition:opacity .14s,transform .14s;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)translate(-4px);box-shadow:0 12px 28px #0f1b2a33}.field-help-tooltip.visible{opacity:1;transform:translateY(-50%)translate(0)}@media (max-width:700px){.field-help-tooltip{width:min(260px,100vw - 56px);top:calc(100% + 8px);left:auto;right:0;transform:translateY(4px)}.field-help-tooltip.visible{transform:translateY(0)}}@media (max-width:760px){.assignment-panel-heading,.class-picker-heading{display:grid}.assignment-form-grid{grid-template-columns:1fr}.class-picker-actions{justify-content:flex-start}}.user-modal input,.user-modal select,.user-modal textarea{box-sizing:border-box;border:1px solid var(--sion-border);width:100%;min-height:40px;color:var(--sion-ink);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 34%);font:inherit;border-radius:6px;outline:0;padding:9px 11px;font-weight:400}.user-modal input::placeholder,.user-modal textarea::placeholder{color:color-mix(in srgb, var(--sion-muted), transparent 22%)}.user-modal input:disabled,.user-modal select:disabled,.user-modal textarea:disabled{color:color-mix(in srgb, var(--sion-muted), transparent 28%);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 52%);cursor:not-allowed;opacity:1}.user-modal textarea{resize:vertical;min-height:78px}.user-modal input:focus,.user-modal select:focus,.user-modal textarea:focus{border-color:var(--sion-primary);background:color-mix(in srgb, var(--sion-card), var(--sion-surface) 22%);box-shadow:0 0 0 3px #1f6feb1f}.async-combobox{width:100%;position:relative}.async-combobox-control{align-items:center;display:flex;position:relative}.user-modal .async-combobox-control input{padding-left:38px;padding-right:72px}.async-combobox-leading,.async-combobox-spinner,.async-combobox-toggle{position:absolute;top:50%;transform:translateY(-50%)}.async-combobox-leading{color:var(--sion-muted);pointer-events:none;left:12px}.async-combobox-spinner{color:var(--sion-primary);animation:.7s linear infinite sion-spin;right:42px}.async-combobox-toggle{width:32px;height:32px;color:var(--sion-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;display:grid;right:6px}.async-combobox-toggle:hover,.async-combobox-toggle:focus-visible{color:var(--sion-primary);background:var(--sion-primary-soft)}.async-combobox-menu{z-index:1050;border:1px solid var(--sion-border);background:var(--sion-card);border-radius:8px;max-height:260px;margin:0;padding:6px;list-style:none;display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 18px 42px #0f1b2a2e}.async-combobox-menu.open{display:block}.async-combobox-option,.async-combobox-empty{min-height:38px;color:var(--sion-ink);border-radius:6px;align-items:center;padding:8px 10px;font-size:14px;font-weight:700;display:flex}.async-combobox-option{cursor:pointer}.async-combobox-option.highlighted{color:var(--sion-primary);background:var(--sion-primary-soft)}.async-combobox-empty{color:var(--sion-muted)}@keyframes sion-spin{to{transform:translateY(-50%)rotate(360deg)}}.user-modal .modal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px;display:grid}.user-modal .modal-section-title{border-bottom:1px solid var(--sion-border);color:var(--sion-ink);margin:24px 0 14px;padding-bottom:9px;font-size:13px;font-weight:700}.user-modal .modal-checkbox{flex-direction:row;align-items:center;gap:8px}.user-modal .modal-checkbox input{width:16px;min-height:16px}.user-modal .modal-actions{border-top:1px solid var(--sion-border);justify-content:flex-end;gap:10px;margin-top:24px;padding-top:18px;display:flex}@media (max-width:600px){.modal-backdrop{height:100dvh;padding:max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom));align-items:end;overflow:hidden}.user-role-options{grid-template-columns:1fr}.role-editor-header{align-items:flex-start}.role-editor-actions{justify-content:flex-end}.profile-crop-backdrop{padding:max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom));align-items:center}.user-modal{max-height:calc(100dvh - max(20px, env(safe-area-inset-top)) - max(20px, env(safe-area-inset-bottom)));overscroll-behavior:contain;border-radius:12px 12px 0 0;padding:20px 16px 0}.profile-crop-modal{border-radius:12px;max-height:calc(100dvh - 20px);padding:18px 14px 0}.profile-crop-stage{height:min(330px,44dvh);min-height:210px;margin:12px 0}.user-modal .modal-grid,.user-modal .form-grid.two-columns{grid-template-columns:1fr}.user-modal .modal-actions{z-index:4;padding:14px 16px max(14px, env(safe-area-inset-bottom));background:var(--sion-card);box-shadow:0 -8px 18px color-mix(in srgb, var(--sion-ink), transparent 94%);margin:12px -16px 0;position:sticky;bottom:0}.profile-crop-modal .modal-actions{padding:12px 14px max(12px, env(safe-area-inset-bottom));margin:10px -14px 0;bottom:0}.user-modal .modal-actions .btn{flex:1}}.user-modal>button.modal-close{appearance:none;z-index:2;width:30px;min-width:0;height:30px;min-height:0;color:var(--sion-muted);box-shadow:none;cursor:pointer;background:0 0;border:0;border-radius:0;outline:0;place-items:center;margin:0;padding:0;line-height:0;display:grid;position:absolute;top:18px;right:18px}.user-modal>button.modal-close:hover,.user-modal>button.modal-close:focus,.user-modal>button.modal-close:active{color:var(--sion-ink);box-shadow:none;background:0 0;border:0;outline:0}@media (max-width:600px){.user-modal>button.modal-close{top:16px;right:16px}}.password-reset-panel{background:#fffaf0;border:1px solid #f1cf8d;border-radius:8px;gap:12px;margin-top:22px;padding:16px;display:grid}.password-reset-panel>div:first-child{flex-direction:column;gap:3px;display:flex}.password-reset-panel strong{color:var(--sion-ink);font-size:13px}.password-reset-panel span,.password-reset-panel small{color:var(--sion-muted);font-size:12px}.generated-password{align-items:stretch;gap:8px;display:flex}.generated-password code{border:1px solid var(--sion-border);min-width:0;color:var(--sion-ink);overflow-wrap:anywhere;background:#fff;border-radius:6px;flex:1;align-items:center;padding:10px 12px;font-size:14px;display:flex}.generated-password .copy-password{border:1px solid var(--sion-border);color:var(--sion-ink);cursor:pointer;background:#fff;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.generated-password .copy-password:hover{background:var(--sion-primary-soft)}@media (max-width:600px){.generated-password{flex-direction:column}.generated-password .copy-password{min-height:40px}}.confirm-dialog-backdrop{z-index:1200;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a8f;place-items:center;padding:20px;animation:.16s ease-out confirm-backdrop-in;display:grid;position:fixed;inset:0}.confirm-dialog{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:8px;grid-template-columns:48px minmax(0,1fr);gap:0 16px;width:min(100%,460px);padding:24px;animation:.18s ease-out confirm-dialog-in;display:grid;position:relative;box-shadow:0 24px 60px #0f172a33}.confirm-dialog-icon{border-radius:8px;place-items:center;width:48px;height:48px;display:grid}.confirm-dialog-warning .confirm-dialog-icon{color:#9a6700;background:#fff3cd}.confirm-dialog-danger .confirm-dialog-icon{color:#b42318;background:#fee4e2}.confirm-dialog-primary .confirm-dialog-icon{color:var(--sion-primary);background:var(--sion-primary-soft)}.confirm-dialog-copy{min-width:0;padding-right:24px}.confirm-dialog-copy h2{color:var(--sion-ink);margin:1px 0 7px;font-size:18px;line-height:1.35}.confirm-dialog-copy p{color:var(--sion-muted);margin:0;font-size:14px;line-height:1.6}.confirm-dialog-close{width:34px;height:34px;color:var(--sion-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;padding:0;display:grid;position:absolute;top:14px;right:14px}.confirm-dialog-close:hover{color:var(--sion-ink);background:var(--sion-control-strong)}.confirm-dialog-close:disabled{cursor:not-allowed;opacity:.5}.confirm-dialog-actions{border-top:1px solid var(--sion-border);grid-column:1/-1;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:18px;display:flex}.confirm-dialog-submit-warning{color:#fff;background:#b7791f;border-color:#b7791f}.confirm-dialog-submit-danger{color:#fff;background:#b42318;border-color:#b42318}.confirm-dialog-submit-primary{border-color:var(--sion-primary);color:#fff;background:var(--sion-primary)}.confirm-dialog-submit:hover:not(:disabled){filter:brightness(.92)}.confirm-dialog-submit:disabled,.confirm-dialog-actions .btn:disabled{cursor:not-allowed;opacity:.65}.session-expired-backdrop{z-index:1400;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0f172a9e;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.session-expired-modal{border:1px solid var(--sion-border);background:var(--sion-card);width:min(100%,430px);color:var(--sion-ink);text-align:center;border-radius:8px;justify-items:center;gap:16px;padding:28px;animation:.18s ease-out confirm-dialog-in;display:grid;box-shadow:0 28px 70px #0f172a47}.session-expired-icon{color:#d97706;background:#fff7ed;border-radius:10px;place-items:center;width:58px;height:58px;display:grid}.session-expired-modal h2{color:var(--sion-ink);margin:0 0 6px;font-size:20px;line-height:1.25}.session-expired-modal p{color:var(--sion-muted);margin:0;font-size:14px;line-height:1.6}.session-expired-modal .btn{justify-content:center;min-width:120px;margin-top:2px}[data-bs-theme=dark] .confirm-dialog-backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#020617ad}[data-bs-theme=dark] .confirm-dialog{border-color:#94a3b83d;box-shadow:0 28px 70px #0000006b}[data-bs-theme=dark] .confirm-dialog-warning .confirm-dialog-icon{color:#ffd166;background:#f59e0b24}[data-bs-theme=dark] .confirm-dialog-danger .confirm-dialog-icon{color:#ff9b9b;background:#d6393924}[data-bs-theme=dark] .confirm-dialog-primary .confirm-dialog-icon{color:#8bbcff;background:#5b9dff29}[data-bs-theme=dark] .confirm-dialog-actions .btn-outline-secondary{color:var(--sion-ink);background:0 0;border-color:#94a3b86b}[data-bs-theme=dark] .confirm-dialog-actions .btn-outline-secondary:hover:not(:disabled){background:var(--sion-control-strong)}[data-bs-theme=dark] .session-expired-backdrop{background:#020617b8}[data-bs-theme=dark] .session-expired-modal{border-color:#94a3b83d;box-shadow:0 28px 70px #0000006b}[data-bs-theme=dark] .session-expired-icon{color:#ffd166;background:#f59e0b24}@keyframes confirm-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes confirm-dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (max-width:520px){.confirm-dialog-backdrop{align-items:end;padding:12px}.confirm-dialog{grid-template-columns:42px minmax(0,1fr);gap:0 12px;padding:20px}.confirm-dialog-icon{width:42px;height:42px}.confirm-dialog-actions{grid-template-columns:1fr 1fr;display:grid}.confirm-dialog-actions .btn{white-space:normal;min-width:0}}@media (prefers-reduced-motion:reduce){.confirm-dialog-backdrop,.confirm-dialog{animation:none}}@media (max-width:640px){.user-filter-card .filter-bar{justify-content:flex-end;gap:8px;min-height:0;padding:12px}.user-filter-card .filter-bar:has(.segmented-control){justify-content:space-between;align-items:stretch}.user-filter-card .filter-bar .filter-select{flex:1 1 0;min-width:0}.user-filter-card .filter-bar .segmented-control{flex-wrap:nowrap;flex:100%;justify-content:flex-start;padding:4px;overflow-x:auto}.user-filter-card .filter-bar .segmented-control button{flex:none;min-width:74px}.user-filter-card .filter-bar .btn{flex:0 0 40px;justify-content:center;width:40px;min-width:40px;height:40px;padding:0;font-size:0;overflow:hidden}.user-filter-card .filter-bar .btn svg{font-size:17px}.data-table-wrap .data-table-toolbar{flex-direction:column;align-items:stretch;min-height:0;padding:12px}.data-table-wrap .data-table-toolbar .table-search,.data-table-wrap .data-table-toolbar .table-size{width:100%;min-width:0}.data-table-wrap .data-table-toolbar .table-size select{flex:1}.data-table-wrap .data-table-footer{text-align:center;flex-direction:column;justify-content:center;gap:12px;padding:16px}.data-table-wrap .data-table-footer .pagination{order:1;justify-content:center;width:100%;margin-left:0}.data-table-wrap .data-table-footer>span{text-align:center;order:2;width:100%}}.settings-tabs{border-bottom:1px solid var(--sion-border);gap:6px;margin-bottom:18px;display:flex}.settings-tab{color:var(--sion-muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:11px 16px}.settings-tab.active{border-bottom-color:var(--sion-primary);color:var(--sion-primary);font-weight:700}.settings-tab:disabled{cursor:not-allowed;opacity:.5}.settings-panel{max-width:760px;padding:24px}.settings-panel-heading{color:var(--sion-primary);justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.settings-panel-heading h3{color:var(--sion-ink);margin:0 0 5px;font-size:17px}.settings-panel-heading p,.settings-field-row p{color:var(--sion-muted);margin:0}.settings-panel .form-label{margin:16px 0 7px;font-weight:600;display:block}.settings-field-row{border:1px solid var(--sion-border);background:var(--sion-control);border-radius:8px;grid-template-columns:minmax(0,1fr) 132px;align-items:center;gap:18px;padding:14px;display:grid}.settings-deadline-row{grid-template-columns:minmax(0,1fr) minmax(230px,280px);margin-top:14px}.settings-deadline-row .form-control{width:100%}.settings-field-row .form-label{margin-top:0}.settings-number-control{border:1px solid var(--sion-border);background:var(--sion-control-strong);border-radius:8px;grid-template-columns:1fr auto;align-items:center;display:grid;overflow:hidden}.settings-number-control .form-control{height:40px;color:var(--sion-ink);box-shadow:none;background:0 0;border:0}.settings-number-control span{color:var(--sion-muted);border-left:1px solid var(--sion-border);padding:0 12px;font-size:12px;font-weight:700}.settings-switch-card{border:1px solid var(--sion-border);background:var(--sion-control);cursor:pointer;border-radius:8px;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:18px;margin-top:14px;padding:14px;display:grid}.settings-switch-card span{gap:3px;display:grid}.settings-switch-card strong{color:var(--sion-ink)}.settings-switch-card small{color:var(--sion-muted)}.settings-switch-card input{opacity:0;pointer-events:none;position:absolute}.settings-switch-card i{background:color-mix(in srgb, var(--sion-muted), transparent 58%);border-radius:999px;width:44px;height:24px;transition:background .18s;position:relative}.settings-switch-card i:after{content:"";background:var(--sion-card);border-radius:50%;width:18px;height:18px;transition:transform .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0f172a3d}.settings-switch-card input:checked+i{background:var(--sion-primary)}.settings-switch-card input:checked+i:after{transform:translate(20px)}.settings-panel-heading-spaced{margin-top:24px}.settings-active-days-card{border:1px solid var(--sion-border);background:var(--sion-control);border-radius:8px;gap:12px;padding:14px;display:grid}.settings-active-day-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.settings-active-day-options label{border:1px solid var(--sion-border);min-height:42px;color:var(--sion-muted);background:var(--sion-card);cursor:pointer;border-radius:8px;place-items:center;padding:10px;font-weight:700;display:grid}.settings-active-day-options label.active{border-color:var(--sion-primary);color:var(--sion-primary);background:var(--sion-primary-soft)}.settings-active-day-options input{opacity:0;pointer-events:none;position:absolute}.settings-active-day-preview{flex-wrap:wrap;gap:8px;display:flex}.settings-active-day-preview span{min-height:30px;color:var(--sion-muted);background:var(--sion-control-strong);border-radius:999px;align-items:center;gap:5px;padding:6px 10px;font-size:12px;font-weight:700;display:inline-flex}.settings-active-day-preview span svg{opacity:0}.settings-active-day-preview span.active{color:var(--sion-primary);background:var(--sion-primary-soft)}.settings-active-day-preview span.active svg{opacity:1}.settings-logo-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.settings-logo-preview{aspect-ratio:5;border:1px dashed var(--sion-border);width:min(460px,100%);color:var(--sion-muted);background:#f8fafc;border-radius:10px;place-items:center;font-size:13px;display:grid;overflow:hidden}.settings-logo-preview img{object-fit:contain;width:100%;height:100%}.settings-logo-row small{color:var(--sion-muted);margin-top:7px;display:block}.settings-letter-header-row{align-items:flex-start}.settings-letter-preview{aspect-ratio:5;border:1px dashed var(--sion-border);width:min(460px,100%);color:var(--sion-muted);background:#f8fafc;border-radius:10px;place-items:center;font-size:13px;display:grid;overflow:hidden}.settings-letter-preview img{object-fit:contain;width:100%;height:100%}.settings-letter-header-row .btn+.btn{margin-left:8px}.settings-letter-panel{max-width:1120px}.settings-letter-layout{grid-template-columns:minmax(0,1fr) 260px;align-items:flex-start;gap:22px;display:grid}.settings-letter-editor{min-width:0}.settings-letter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.settings-letter-grid.compact{align-items:end}.settings-letter-grid label,.settings-template-field{gap:7px;display:grid}.settings-letter-grid label span,.settings-template-field span{color:var(--sion-ink);font-size:13px;font-weight:700}.settings-letter-grid .wide{grid-column:1/-1}.settings-template-field{margin-top:14px}.settings-template-field textarea{resize:vertical;min-height:96px;line-height:1.5}.settings-color-control{width:84px;min-height:42px;padding:5px}.settings-placeholder-guide{border:1px solid var(--sion-border);background:var(--sion-control-strong);border-radius:8px;gap:8px;padding:16px;display:grid;position:sticky;top:18px}.settings-placeholder-guide h4{color:var(--sion-ink);margin:0;font-size:15px}.settings-placeholder-guide p{color:var(--sion-muted);margin:0 0 4px;font-size:13px;line-height:1.45}.settings-placeholder-guide code{border:1px solid var(--sion-border);color:var(--sion-primary);background:var(--sion-card);white-space:nowrap;border-radius:7px;padding:8px 10px;font-size:12px;display:block}.settings-actions{border-top:1px solid var(--sion-border);justify-content:flex-end;max-width:none;margin-top:16px;padding:14px 0 0;display:flex}.alert-success{align-items:center;gap:8px;display:flex}@media (max-width:640px){.settings-panel{padding:18px}.settings-tabs{overflow-x:auto}.settings-tab{flex:none}.settings-letter-layout,.settings-letter-grid{grid-template-columns:1fr}.settings-placeholder-guide{position:static}.settings-field-row,.settings-switch-card,.settings-deadline-row,.settings-active-day-options{grid-template-columns:1fr}.settings-number-control{max-width:160px}}.student-class-toolbar{border:1px solid var(--sion-border);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:14px;margin:0 0 18px;padding:14px 16px;display:flex;box-shadow:0 10px 28px #1824330f}.student-class-toolbar .role-pill{color:#253044;white-space:nowrap;background:#eef2f7;border-radius:999px;align-items:center;gap:6px;min-height:34px;padding:7px 12px;font-size:13px;font-weight:800;display:inline-flex}.student-class-toolbar>div{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.file-button{cursor:pointer;align-items:center;display:inline-flex;position:relative;overflow:hidden}.file-button input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.student-class-layout{grid-template-columns:228px minmax(0,1fr);align-items:start;gap:18px;display:grid}.class-rail{border:1px solid var(--sion-border);background:#fff;border-radius:10px;gap:8px;padding:12px;display:grid;box-shadow:0 10px 28px #1824330f}.class-rail button{color:#344054;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:9px;width:100%;min-height:42px;padding:10px 11px;font-size:14px;font-weight:800;line-height:1.2;transition:background .14s,border-color .14s,color .14s;display:flex}.class-rail button:hover{color:#206bc4;background:#f3f7fc}.class-rail button.active{color:#1558a6;background:#eaf3ff;border-color:#b9d5f5}.class-rail button span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.student-class-table{overflow:hidden}.student-class-table .table-card-heading{padding:18px 26px}.student-class-table .table-card-heading p{color:var(--sion-muted);margin:4px 0 0;font-size:13px}.student-class-table .data-table-toolbar{padding:20px 26px}.student-class-table .table-search{max-width:590px}.stacked-meta{gap:3px;display:grid}.stacked-meta small,.data-table td small{color:var(--sion-muted);font-size:12px;display:block}.student-picker-modal{max-width:680px}.field-group{color:#344054;gap:7px;margin:14px 0;font-size:13px;font-weight:800;display:grid}.field-group select,.table-search.full input{width:100%;min-height:42px;color:var(--sion-ink);background:#fff;border:1px solid #d8e2ef;border-radius:8px;padding:0 12px}.table-search.full{width:100%;max-width:none}.student-picker-list{gap:8px;max-height:360px;margin-top:12px;padding-right:4px;display:grid;overflow:auto}.student-picker-row{text-align:left;cursor:pointer;background:#fff;border:1px solid #d8e2ef;border-radius:8px;align-items:center;gap:10px;min-height:56px;padding:10px 12px;display:flex}.student-picker-row.selected{background:#eaf3ff;border-color:#206bc4}.student-picker-row small{color:var(--sion-muted);margin-top:2px;display:block}.import-preview-modal{width:min(880px,100vw - 32px);max-width:880px}.import-preview-modal .import-summary{color:var(--sion-muted);margin:-12px 0 0;font-size:14px}.user-import-toolbar{flex-wrap:wrap;gap:10px;margin:18px 0 14px;display:flex}.user-import-file-button{position:relative;overflow:hidden}.user-import-file-button input{cursor:pointer;opacity:0;width:100%;height:100%;position:absolute;inset:0}.user-import-error{align-items:flex-start;gap:8px;margin:0 0 14px;display:flex}.user-import-error-list{color:#7f1d1d;background:#fff7f7;border:1px solid #fecaca;border-radius:8px;gap:8px;max-height:190px;margin:0 0 14px;padding:12px 14px;font-size:12px;display:grid;overflow:auto}.user-import-error-list>div{grid-template-columns:72px minmax(0,1fr);gap:8px;line-height:1.4;display:grid}.user-import-error-list b{color:#b42318}.user-import-error-list small{color:#9b2c2c}.user-import-success{color:#176b3a;background:#f0fff4;border:1px solid #b7ebc6;border-radius:8px;align-items:center;gap:8px;margin:0 0 14px;padding:11px 13px;font-size:13px;font-weight:700;display:flex}.user-import-success svg{flex:none}.import-options,.import-progress,.import-table-scroll{margin-left:0;margin-right:0}.import-options{flex-wrap:wrap;gap:10px;margin-top:18px;margin-bottom:14px;display:flex}.import-options label{color:#344054;background:#f8fafc;border:1px solid #d6e0eb;border-radius:8px;align-items:center;gap:10px;width:auto;min-height:40px;margin:0;padding:9px 12px;font-size:13px;font-weight:800;display:inline-flex}.import-preview-modal .import-options input[type=checkbox]{appearance:none;background:#fff;border:1px solid #98a2b3;border-radius:5px;flex:0 0 18px;place-items:center;width:18px;height:18px;min-height:18px;margin:0;padding:0;display:grid}.import-preview-modal .import-options input[type=checkbox]:checked{border-color:var(--sion-primary);background:var(--sion-primary)}.import-preview-modal .import-options input[type=checkbox]:checked:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:9px;transform:rotate(45deg)translateY(-1px)}.import-progress{color:#1e3a8a;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;grid-template-columns:1fr auto;align-items:center;gap:8px 14px;margin-bottom:14px;padding:12px 14px;font-size:13px;font-weight:800;display:grid}.import-progress div{background:#dbeafe;border-radius:999px;grid-column:1/-1;height:8px;overflow:hidden}.import-progress i{border-radius:inherit;background:#2563eb;height:100%;display:block}.import-table-scroll{border:1px solid var(--sion-border);border-radius:8px;max-height:min(420px,100vh - 360px)}.import-preview-modal .data-table{margin:0}.import-preview-modal .modal-actions{margin-top:16px;margin-bottom:0;padding:16px 0 22px}.import-valid{color:#177245;font-weight:800}.import-invalid{color:#c2410c;font-weight:800}@media (max-width:860px){.student-class-toolbar,.student-class-layout{grid-template-columns:1fr}.student-class-toolbar{display:grid}.student-class-toolbar>div{justify-content:flex-start}.class-rail{grid-template-columns:repeat(auto-fit,minmax(142px,1fr))}}.teacher-qr-backdrop{z-index:95;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f1b2a9e;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.teacher-qr-modal{width:min(420px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--sion-ink);background:var(--sion-card);border:1px solid #ffffffb8;border-radius:18px;gap:18px;padding:24px;display:grid;overflow-y:auto;box-shadow:0 28px 80px #0f1b2a57}.teacher-qr-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.teacher-qr-heading h2,.teacher-qr-heading p{margin:0}.teacher-qr-heading h2{letter-spacing:0;margin-top:4px;font-size:24px;line-height:1.15}.icon-button{border:1px solid var(--sion-border);width:38px;height:38px;color:var(--sion-ink);background:var(--sion-control-strong);cursor:pointer;border-radius:10px;flex:none;place-items:center;transition:color .15s,background .15s,border-color .15s;display:inline-grid}.icon-button:hover{color:#b42318;background:#fff1f0;border-color:#b423183d}.teacher-qr-content{justify-items:center;gap:12px;display:grid}.teacher-qr-content img{border:1px solid var(--sion-border);background:#fff;border-radius:16px;width:min(100%,292px);height:auto;padding:14px;display:block;box-shadow:0 12px 28px #0f172a17}.teacher-qr-countdown{width:100%;color:var(--sion-muted);justify-content:center;align-items:center;gap:7px;margin:0;font-size:13px;font-weight:750;display:inline-flex}.teacher-qr-countdown svg{color:var(--sion-primary)}.teacher-qr-note{color:var(--sion-muted);text-align:center;margin:0;font-size:13px;line-height:1.5}.teacher-qr-modal .btn{justify-self:center}.teacher-qr-confirm-button{border-radius:8px;justify-content:center;align-items:center;gap:8px;min-width:168px;min-height:44px;margin-top:4px;padding-inline:24px;font-size:14px;font-weight:700;display:inline-flex}@media (max-width:520px){.teacher-qr-backdrop{padding:16px}.teacher-qr-modal{border-radius:16px;gap:16px;padding:20px}.teacher-qr-heading h2{font-size:22px}.teacher-qr-content img{width:min(100%,270px);padding:12px}}.sidebar-qr-action{border:1px solid color-mix(in srgb, var(--sion-primary), transparent 72%);width:calc(100% - 6px);color:var(--sion-primary);background:linear-gradient(135deg, var(--sion-primary-soft), color-mix(in srgb, var(--sion-card), transparent 8%));text-align:left;border-radius:10px;align-items:center;gap:11px;margin:0 6px 16px 0;padding:12px 11px;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex;box-shadow:0 8px 18px #206bc414}.sidebar-qr-action:hover{border-color:color-mix(in srgb, var(--sion-primary), transparent 42%);transform:translateY(-1px);box-shadow:0 12px 24px #206bc424}.sidebar-qr-icon{color:#fff;background:var(--sion-primary);border-radius:10px;flex:none;place-items:center;width:40px;height:40px;display:grid;box-shadow:0 6px 12px #206bc438}.sidebar-qr-copy{gap:3px;min-width:0;display:grid}.sidebar-qr-copy strong,.sidebar-qr-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-qr-copy strong{font-size:13px}.sidebar-qr-copy small{color:var(--sion-muted);font-size:11px}.student-permit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}@media (max-width:920px){.student-permit-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.student-permit-grid .teacher-app-icon{aspect-ratio:auto;border-radius:12px;gap:5px;min-height:88px;padding:8px 3px}.student-permit-grid .teacher-app-icon span{border-radius:12px;width:40px;height:40px}.student-permit-grid .teacher-app-icon span svg{width:21px;height:21px}.student-permit-grid .teacher-app-icon strong{text-overflow:clip;white-space:normal;min-height:24px;font-size:10px;line-height:1.2;overflow:visible}}.teacher-substitution-pane{gap:24px}.substitution-hero{color:#fff;background:#17375f;border:1px solid #8da4c247;border-radius:8px;justify-content:space-between;align-items:center;gap:18px;padding:24px;display:flex;box-shadow:0 18px 40px #0f233f2e}.substitution-hero span,.substitution-section-title span{align-items:center;gap:8px;font-weight:600;display:inline-flex}.substitution-hero h2{letter-spacing:0;margin:8px 0 6px;font-size:26px;font-weight:600}.substitution-hero p{color:#ffffffd1;max-width:760px;margin:0;font-weight:400}.substitution-hero-stat{text-align:center;background:#0c1f3747;border:1px solid #cad9eb38;border-radius:8px;place-items:center;gap:2px;min-width:150px;padding:14px;display:grid}.substitution-hero-stat strong{font-size:38px;line-height:1}.substitution-hero-stat span{color:#ffffffd1;font-size:12px}.substitution-layout{grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:18px;margin-top:6px;display:grid}.substitution-form,.substitution-list-card{background:#fff;border:1px solid #d7e3f1;border-radius:8px;box-shadow:0 16px 35px #14213d12}.substitution-form{align-content:start;gap:14px;padding:18px;display:grid}.substitution-section-title{color:#14213d;align-items:center;gap:10px;display:flex}.substitution-section-title>svg{color:#206bc4}.substitution-section-title strong{font-size:17px;font-weight:600;display:block}.substitution-section-title span{color:#6b7f95;font-size:12px}.substitution-form label{color:#304a67;gap:7px;font-size:13px;font-weight:600;display:grid}.substitution-form select,.substitution-form input,.substitution-form textarea,.substitution-actions textarea{color:#14213d;width:100%;font:inherit;background:#f8fbff;border:1px solid #c9d7e8;border-radius:8px;padding:10px 11px}.substitution-form textarea,.substitution-actions textarea{resize:vertical;min-height:92px}.substitution-teacher-combobox{position:relative}.substitution-teacher-combobox-control{color:#14213d;background:#f8fbff;border:1px solid #c9d7e8;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;padding:0 8px 0 10px;display:grid}.substitution-teacher-combobox-control:focus-within,.substitution-teacher-combobox-control.is-open{border-color:#206bc4;box-shadow:0 0 0 3px #206bc41f}.substitution-teacher-combobox-control>svg{color:#6b7f95}.substitution-teacher-combobox-control input{width:100%;min-height:42px;color:inherit;font:inherit;background:0 0;border:0;outline:0;padding:0}.substitution-teacher-combobox-control button{color:#52677f;background:0 0;border:0;border-radius:6px;place-items:center;width:32px;height:32px;display:inline-grid}.substitution-teacher-combobox-control button:hover:not(:disabled),.substitution-teacher-combobox-control button:focus-visible{color:#206bc4;background:#206bc41a}.substitution-teacher-combobox-control button:disabled,.substitution-teacher-combobox-control input:disabled{opacity:.65;cursor:not-allowed}.substitution-teacher-combobox-menu{z-index:30;background:#fff;border:1px solid #c9d7e8;border-radius:8px;max-height:260px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 18px 35px #14213d29}.substitution-teacher-combobox-menu button,.substitution-teacher-combobox-empty{color:#14213d;text-align:left;width:100%;min-height:38px;font:inherit;background:0 0;border:0;border-radius:6px;padding:8px 10px;font-weight:500}.substitution-teacher-combobox-menu button:hover,.substitution-teacher-combobox-menu button:focus-visible,.substitution-teacher-combobox-menu button.is-selected{color:#206bc4;background:#edf4ff;outline:0}.substitution-teacher-combobox-empty{color:#6b7f95}.substitution-list-card{min-width:0;overflow:hidden}.substitution-tabs{border-bottom:1px solid #e2ebf5;gap:8px;padding:14px;display:flex}.substitution-tabs button{color:#52677f;background:#f8fbff;border:1px solid #c9d7e8;border-radius:999px;padding:8px 13px;font-weight:600}.substitution-tabs button.active{color:#fff;background:#206bc4;border-color:#206bc4}.substitution-list{gap:12px;padding:14px;display:grid}.substitution-item{background:#fff;border:1px solid #d7e3f1;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:14px;display:grid}.substitution-item.status-pending{border-color:#d7e3f1}.substitution-item.status-accepted{background:#fbfffd;border-color:#c9e8d8}.substitution-item.status-rejected,.substitution-item.status-cancelled{background:snow;border-color:#f0caca}.substitution-status{color:#206bc4;background:#edf4ff;border-radius:999px;width:fit-content;padding:5px 9px;font-size:12px;font-weight:600;display:inline-flex}.substitution-item h3{color:#14213d;margin:9px 0 6px;font-size:18px;font-weight:600}.substitution-item p,.substitution-item small{color:#52677f;align-items:center;gap:7px;margin:0 0 5px;font-weight:400;display:flex}.substitution-item small{color:#6b7f95;align-items:flex-start}.substitution-actions{gap:10px;width:min(260px,34vw);display:grid}.substitution-actions textarea{min-height:74px}.substitution-actions>div{justify-content:flex-end;gap:8px;display:flex}.substitution-action-button{border-radius:4px;align-items:center;gap:6px;min-height:34px;padding:6px 12px;font-weight:500;line-height:1.2;display:inline-flex}.substitution-item-icon{color:#9aabc0;align-self:center}.substitution-empty{color:#6b7f95;text-align:center;border:1px dashed #c9d7e8;border-radius:8px;margin:14px;padding:32px;font-weight:500}[data-bs-theme=dark] .substitution-form,[data-bs-theme=dark] .substitution-list-card{border-color:var(--sion-border);background:var(--sion-card);box-shadow:0 18px 38px #00000042}[data-bs-theme=dark] .substitution-section-title,[data-bs-theme=dark] .substitution-section-title strong,[data-bs-theme=dark] .substitution-item h3{color:var(--sion-ink)}[data-bs-theme=dark] .substitution-section-title span,[data-bs-theme=dark] .substitution-form label,[data-bs-theme=dark] .substitution-item p,[data-bs-theme=dark] .substitution-item small,[data-bs-theme=dark] .substitution-empty{color:var(--sion-muted)}[data-bs-theme=dark] .substitution-form select,[data-bs-theme=dark] .substitution-form input,[data-bs-theme=dark] .substitution-form textarea,[data-bs-theme=dark] .substitution-actions textarea,[data-bs-theme=dark] .substitution-teacher-combobox-control{border-color:var(--sion-border);background:var(--sion-control);color:var(--sion-ink)}[data-bs-theme=dark] .substitution-teacher-combobox-control>svg,[data-bs-theme=dark] .substitution-teacher-combobox-control button{color:var(--sion-muted)}[data-bs-theme=dark] .substitution-teacher-combobox-control button:hover:not(:disabled),[data-bs-theme=dark] .substitution-teacher-combobox-control button:focus-visible{background:var(--sion-primary-soft);color:#8bbcff}[data-bs-theme=dark] .substitution-teacher-combobox-menu{border-color:var(--sion-border);background:var(--sion-card);box-shadow:0 18px 35px #00000052}[data-bs-theme=dark] .substitution-teacher-combobox-menu button,[data-bs-theme=dark] .substitution-teacher-combobox-empty{color:var(--sion-ink)}[data-bs-theme=dark] .substitution-teacher-combobox-menu button:hover,[data-bs-theme=dark] .substitution-teacher-combobox-menu button:focus-visible,[data-bs-theme=dark] .substitution-teacher-combobox-menu button.is-selected{background:var(--sion-primary-soft);color:#8bbcff}[data-bs-theme=dark] .substitution-teacher-combobox-empty{color:var(--sion-muted)}[data-bs-theme=dark] .substitution-form select option{background:var(--sion-control);color:var(--sion-ink)}[data-bs-theme=dark] .substitution-form textarea::placeholder,[data-bs-theme=dark] .substitution-actions textarea::placeholder{color:#7f8ea3}[data-bs-theme=dark] .substitution-tabs{border-bottom-color:var(--sion-border)}[data-bs-theme=dark] .substitution-tabs button{border-color:var(--sion-border);background:var(--sion-control);color:var(--sion-muted)}[data-bs-theme=dark] .substitution-tabs button.active{border-color:var(--sion-primary);background:var(--sion-primary);color:#fff}[data-bs-theme=dark] .substitution-item{border-color:var(--sion-border);background:var(--sion-control-strong)}[data-bs-theme=dark] .substitution-item.status-pending{border-color:var(--sion-border)}[data-bs-theme=dark] .substitution-item.status-accepted{background:#2fb3441a;border-color:#2fb34457}[data-bs-theme=dark] .substitution-item.status-rejected,[data-bs-theme=dark] .substitution-item.status-cancelled{background:#d639391a;border-color:#d6393961}[data-bs-theme=dark] .substitution-status{background:var(--sion-primary-soft);color:#8bbcff}[data-bs-theme=dark] .substitution-empty{border-color:var(--sion-border);background:#1018278a}[data-bs-theme=dark] .substitution-item-icon{color:#718197}[data-bs-theme=dark] .teacher-substitution-pane .alert-success{color:#9be7ad;background:#2fb3441f;border-color:#2fb34457}[data-bs-theme=dark] .teacher-substitution-pane .alert-danger{color:#ffb4b4;background:#d639391f;border-color:#d6393961}@media (max-width:900px){.substitution-hero,.substitution-layout,.substitution-item{grid-template-columns:1fr}.substitution-hero{display:grid}.substitution-actions{width:100%}}.monitoring-page{color:#14213d;background:#eef4fb;min-height:100vh;padding:28px;font-family:Arial,Helvetica,sans-serif}.monitoring-shell{flex-direction:column;gap:22px;width:min(1480px,100%);margin:0 auto;display:flex}.monitoring-header{background:#fff;border:1px solid #d7e3f1;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:20px;padding:26px;display:flex;box-shadow:0 18px 45px #14213d14}.monitoring-kicker{color:#206bc4;align-items:center;gap:9px;margin-bottom:10px;font-weight:800;display:inline-flex}.monitoring-header h1{letter-spacing:0;margin:0;font-size:clamp(28px,4vw,48px);line-height:1.05}.monitoring-header p{color:#52677f;margin:10px 0 0;font-size:16px;font-weight:700}.monitoring-period-pill{color:#1b5ea8;background:#edf6ff;border:1px solid #bfd7f3;border-radius:8px;align-items:center;gap:9px;margin-top:16px;padding:10px 13px;font-weight:950;display:inline-flex}.monitoring-live{color:#c2410c;background:#fff7ed;border-radius:999px;align-items:center;gap:9px;min-width:max-content;padding:10px 14px;font-size:14px;font-weight:900;display:inline-flex}.monitoring-live span{background:currentColor;border-radius:50%;width:10px;height:10px}.monitoring-live.online{color:#0f8a4c;background:#ecfdf3}.monitoring-summary{grid-template-columns:repeat(5,minmax(120px,1fr));gap:14px;width:min(920px,100%);margin:0 auto;display:grid}.monitoring-summary-item{background:#fff;border:1px solid #d7e3f1;border-radius:8px;place-items:center;gap:3px;min-height:126px;padding:16px;display:grid;box-shadow:0 14px 35px #14213d12}.monitoring-summary-item strong{color:#206bc4;font-size:23px;line-height:1}.monitoring-summary-item span{color:#14213d;font-size:42px;font-weight:950;line-height:1}.monitoring-summary-item small{color:#6b7f95;font-weight:800}.monitoring-summary-item.status-a strong,.monitoring-summary-item.status-a span{color:#d63939}.monitoring-summary-item.status-d strong,.monitoring-summary-item.status-d span{color:#ae3ec9}.monitoring-progress{background:#fff;border:1px solid #d7e3f1;border-radius:8px;padding:18px 20px}.monitoring-progress>div:first-child{color:#304a67;justify-content:space-between;gap:16px;margin-bottom:12px;font-weight:900;display:flex}.monitoring-progress>div:first-child span{color:#206bc4}.monitoring-progress-track{background:#dbe7f5;border-radius:999px;height:12px;overflow:hidden}.monitoring-progress-track span{border-radius:inherit;background:#206bc4;height:100%;transition:width .24s;display:block}.monitoring-alert,.monitoring-empty{color:#9f1d1d;text-align:center;background:#fff5f5;border:1px solid #f2c9c9;border-radius:8px;justify-content:center;align-items:center;gap:12px;min-height:96px;padding:20px;font-weight:900;display:flex}.monitoring-empty{color:#52677f;background:#fff;border-color:#d7e3f1}.monitoring-alert button{color:#fff;background:#206bc4;border:0;border-radius:8px;align-items:center;gap:8px;padding:10px 14px;font-weight:900;display:inline-flex}.monitoring-card-grid{grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:16px;display:grid}.monitoring-card{border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:space-between;gap:16px;min-height:230px;padding:20px;transition:transform .18s,border-color .18s,background .18s;display:flex;box-shadow:0 16px 35px #14213d1a}.monitoring-card.pending{color:#fff;background:#b91c1c;border-color:#7f1d1d}.monitoring-card.done{color:#fff;background:#047857;border-color:#065f46}.monitoring-card.substituted{color:#fff;background:#6d28d9;border-color:#581c87}.monitoring-card.no-schedule{color:#fff;background:#64748b;border-color:#475569}.monitoring-card-status{background:#ffffff2e;border-radius:999px;align-items:center;gap:9px;width:fit-content;padding:8px 11px;font-size:13px;font-weight:950;display:inline-flex}.monitoring-card-status span{color:#fff;background:currentColor;border-radius:50%;place-items:center;width:26px;height:26px;display:inline-grid}.monitoring-card h2{letter-spacing:0;color:#fff;margin:0;font-size:36px;line-height:1}.monitoring-card-detail{gap:8px;display:grid}.monitoring-card-detail p{color:#ffffffe6;align-items:center;gap:9px;min-width:0;margin:0;font-size:15px;font-weight:850;display:flex}.monitoring-card-detail p svg{flex:none}.monitoring-substitute-name{flex-wrap:wrap}.monitoring-substitute-name span,.monitoring-substitute-name strong{min-width:0}.monitoring-substitute-name span{opacity:.82}.monitoring-substitute-name strong{color:#fff;font-weight:900}.monitoring-card footer{border-top:1px solid #ffffff47;justify-content:space-between;align-items:center;gap:12px;padding-top:13px;font-weight:900;display:flex}.monitoring-card footer span,.monitoring-card footer strong{min-width:0}.monitoring-card footer span{color:#ffffffd1}.monitoring-card footer strong{color:#fff;white-space:nowrap}.monitoring-footer{color:#52677f;background:#fff;border:1px solid #d7e3f1;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:36px;padding:8px 14px;font-size:13px;font-weight:800;display:flex;box-shadow:0 12px 28px #14213d0f}.monitoring-footer strong{color:#14213d;font-weight:950}.monitoring-footer span{color:#6b7f95}.monitoring-page-dense{color:#f1f5f9;background:linear-gradient(135deg,#0b1322 0%,#111e36 50%,#0d273a 100%);height:100vh;padding:10px 14px 12px;overflow:hidden}.monitoring-page-dense .monitoring-shell{gap:8px;height:100%;overflow:hidden}.monitoring-page-dense .monitoring-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172ab3;border:1px solid #ffffff26;border-radius:12px;align-items:center;min-height:58px;padding:8px 14px;box-shadow:0 12px 30px #00000040}.monitoring-page-dense .monitoring-header>div:first-child{align-items:center;gap:12px;min-width:0;display:flex}.monitoring-page-dense .monitoring-kicker{color:#93c5fd;letter-spacing:0;white-space:nowrap;background:#3b82f62e;border:1px solid #60a5fa4d;border-radius:8px;flex:none;margin:0;padding:6px 10px;font-size:11px;display:inline-flex}.monitoring-page-dense .monitoring-header h1{color:#fff;letter-spacing:-.01em;white-space:nowrap;font-size:clamp(19px,1.75vw,27px)}.monitoring-page-dense .monitoring-header p{color:#cbd5e1;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff1f;border-radius:8px;margin:0;padding:6px 10px;font-size:12px;font-weight:600}.monitoring-page-dense .monitoring-period-pill{color:#7dd3fc;white-space:nowrap;background:#0ea5e92e;border-color:#38bdf873;border-radius:8px;margin-top:0;padding:6px 12px;font-size:12px;font-weight:700}.monitoring-page-dense .monitoring-live{color:#4ade80;background:#22c55e29;border:1px solid #4ade8059;border-radius:8px;padding:7px 12px;font-size:12px;box-shadow:0 0 14px #4ade8033}.monitoring-page-dense .monitoring-summary{grid-template-columns:repeat(5,minmax(86px,1fr));gap:8px;width:min(680px,100%)}.monitoring-page-dense .monitoring-summary-item{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:left;background:#0f172aa6;border:1px solid #ffffff1f;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:6px 12px;display:flex;box-shadow:0 8px 20px #00000040}.monitoring-page-dense .monitoring-summary-item.status-h strong,.monitoring-page-dense .monitoring-summary-item.status-h span{color:#34d399}.monitoring-page-dense .monitoring-summary-item.status-i strong,.monitoring-page-dense .monitoring-summary-item.status-i span{color:#38bdf8}.monitoring-page-dense .monitoring-summary-item.status-s strong,.monitoring-page-dense .monitoring-summary-item.status-s span{color:#fbbf24}.monitoring-page-dense .monitoring-summary-item.status-a strong,.monitoring-page-dense .monitoring-summary-item.status-a span{color:#f87171}.monitoring-page-dense .monitoring-summary-item.status-d strong,.monitoring-page-dense .monitoring-summary-item.status-d span{color:#2dd4bf}.monitoring-page-dense .monitoring-summary-item strong{font-size:16px;font-weight:700}.monitoring-page-dense .monitoring-summary-item span{font-size:24px;font-weight:800}.monitoring-page-dense .monitoring-summary-item small{color:#94a3b8;font-size:11px;font-weight:500}.monitoring-page-dense .monitoring-progress{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#cbd5e1;background:#0f172aa6;border:1px solid #ffffff1f;border-radius:10px;padding:6px 14px;box-shadow:0 8px 20px #00000040}.monitoring-page-dense .monitoring-progress>div:first-child{color:#e2e8f0;margin-bottom:5px;font-size:12px}.monitoring-page-dense .monitoring-progress-track{background:#ffffff1a;border-radius:4px;height:6px;overflow:hidden}.monitoring-page-dense .monitoring-progress-track span{background:linear-gradient(90deg,#3b82f6 0%,#10b981 100%);box-shadow:0 0 12px #10b98166}.monitoring-card-grid-dense{flex:1;grid-template-rows:repeat(4,minmax(0,1fr));grid-template-columns:repeat(9,minmax(0,1fr));gap:8px;min-height:0;overflow:hidden}.monitoring-card-grid-dense .monitoring-card{border-radius:10px;gap:4px;height:100%;min-height:0;padding:9px 10px;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}.monitoring-card-grid-dense .monitoring-card.done{color:#fff;background:linear-gradient(135deg,#064e3bcc 0%,#065f46e6 100%);border:1px solid #10b98173;box-shadow:0 8px 22px #0000004d}.monitoring-card-grid-dense .monitoring-card.pending{color:#fff;background:linear-gradient(135deg,#7f1d1dcc 0%,#991b1be6 100%);border:1px solid #ef444473;box-shadow:0 8px 22px #0000004d}.monitoring-card-grid-dense .monitoring-card.substituted{color:#fff;background:linear-gradient(135deg,#4c1d95cc 0%,#5b21b6e6 100%);border:1px solid #a855f773;box-shadow:0 8px 22px #0000004d}.monitoring-card-grid-dense .monitoring-card.no-schedule{color:#94a3b8;background:#1e293b99;border:1px solid #94a3b838}.monitoring-card-grid-dense .monitoring-card-status{background:0 0;gap:0;max-width:100%;padding:0;position:absolute;top:8px;right:8px;overflow:hidden}.monitoring-card-grid-dense .monitoring-card.done .monitoring-card-status span{color:#34d399;background:#10b98140;border:1px solid #34d39999;width:24px;height:24px;box-shadow:0 0 10px #34d3994d}.monitoring-card-grid-dense .monitoring-card.pending .monitoring-card-status span{color:#f87171;background:#ef444440;border:1px solid #f8717199;width:24px;height:24px;box-shadow:0 0 10px #f871714d}.monitoring-card-grid-dense .monitoring-card.substituted .monitoring-card-status span{color:#c084fc;background:#a855f740;border:1px solid #c084fc99;width:24px;height:24px;box-shadow:0 0 10px #c084fc4d}.monitoring-card-grid-dense .monitoring-card-status svg{width:14px;height:14px}.monitoring-card-grid-dense .monitoring-card h2{color:#fff;letter-spacing:-.01em;max-width:calc(100% - 30px);margin-bottom:2px;font-size:clamp(23px,1.8vw,34px);font-weight:850;line-height:1}.monitoring-card-grid-dense .monitoring-card-detail{gap:4px;min-width:0;margin-top:7px}.monitoring-card-grid-dense .monitoring-card-detail p{color:#ffffffe0;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(10px,.78vw,13.5px);font-weight:600;line-height:1.18;display:block;overflow:hidden}.monitoring-card-grid-dense .monitoring-card-detail p.monitoring-long-name{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:clamp(8.5px,.65vw,11px);line-height:1.1;display:-webkit-box;overflow:hidden}.monitoring-card-grid-dense .monitoring-card-detail p:first-child{color:#fff;margin-bottom:3px;font-size:clamp(12px,.95vw,16px);font-weight:850}.monitoring-card-grid-dense .monitoring-substitute-name{white-space:normal;text-overflow:clip;gap:1px;display:grid}.monitoring-card-grid-dense .monitoring-substitute-name span,.monitoring-card-grid-dense .monitoring-substitute-name strong{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.monitoring-card-grid-dense .monitoring-substitute-name span{color:#d8b4fed9;font-size:9px;font-weight:600}.monitoring-card-grid-dense .monitoring-substitute-name strong{color:#fff;font-size:clamp(11px,.82vw,14px);font-weight:800}.monitoring-card-grid-dense .monitoring-card-detail svg{display:none}.monitoring-card-grid-dense .monitoring-card footer{color:#ffffffbf;background:#0000002e;border-top:1px solid #ffffff26;border-bottom-right-radius:10px;border-bottom-left-radius:10px;margin:auto -10px -9px;padding:5px 10px;font-size:9px;line-height:1}.monitoring-card-grid-dense .monitoring-card footer span{white-space:nowrap;text-overflow:ellipsis;color:#ffffffb3;overflow:hidden}.monitoring-card-grid-dense .monitoring-card footer strong{color:#fff}.monitoring-card-grid-dense .monitoring-card.no-schedule h2{color:#cbd5e1;max-width:100%}.monitoring-card-grid-dense .monitoring-card.no-schedule .monitoring-card-detail p,.monitoring-card-grid-dense .monitoring-card.no-schedule footer span{color:#94a3b8}.monitoring-no-schedule-text{font-weight:600}.monitoring-page-dense .monitoring-footer{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#94a3b8;background:#0f172aa6;border:1px solid #ffffff1f;border-radius:8px;flex:none;justify-content:space-between;align-items:center;min-height:24px;margin-top:0;padding:3px 14px;font-size:11px;display:flex}.monitoring-page-dense .monitoring-footer strong{color:#f1f5f9}.monitoring-standby-fullscreen{z-index:9999;background:linear-gradient(135deg,#101c33 0%,#17345d 58%,#0f766e 130%);flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100vh;padding:24px;display:flex;position:fixed;inset:0;overflow:hidden}.monitoring-standby-center-content{flex-direction:column;justify-content:center;align-items:center;gap:22px;width:100%;max-width:640px;display:flex}.monitoring-standby-fullscreen .monitoring-standby-brand{justify-content:center;align-items:center;gap:14px;display:flex}.monitoring-standby-fullscreen .monitoring-standby-logo{color:#17345d;background:#fff;border-radius:12px;flex:none;place-items:center;width:52px;height:52px;display:grid;overflow:hidden;box-shadow:0 4px 14px #00000040}.monitoring-standby-fullscreen .monitoring-standby-logo img{object-fit:contain;width:100%;height:100%}.monitoring-standby-fullscreen .monitoring-standby-brand-text h2{color:#fff;letter-spacing:.01em;margin:0;font-size:clamp(26px,2.6vw,38px);font-weight:700;line-height:1.1}.monitoring-standby-fullscreen .monitoring-standby-brand-text p{color:#94a3b8;margin:2px 0 0;font-size:clamp(13px,1.2vw,16px);font-weight:400}.monitoring-standby-fullscreen .monitoring-standby-badge{color:#fde047;background:#eab3081f;border:1px solid #eab30873;border-radius:50px;align-items:center;gap:8px;padding:7px 20px;font-size:13px;font-weight:600;display:inline-flex}.monitoring-standby-clock-box{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0d1b2e8c;border:1px solid #ffffff26;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:12px;width:min(100%,540px);padding:34px 28px;display:flex;box-shadow:0 20px 50px #00000059}.monitoring-standby-clock-box .monitoring-digital-time{font-family:var(--font-mono,monospace), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;letter-spacing:.04em;color:#fff;text-shadow:0 0 35px #ffffff73;font-size:clamp(56px,8.5vw,104px);font-weight:800;line-height:1}.monitoring-standby-clock-box .monitoring-digital-date{color:#d1d5db;font-size:clamp(16px,1.8vw,24px);font-weight:500}.monitoring-standby-toggle-floating{opacity:.3;color:#fff;cursor:pointer;background:#0006;border:1px solid #ffffff4d;border-radius:8px;padding:6px 14px;font-size:12px;transition:opacity .2s,background-color .2s;position:absolute;bottom:20px;right:20px}.monitoring-standby-toggle-floating:hover{opacity:1;background:#000000b3}@media (max-width:760px){.monitoring-page-dense{height:auto;min-height:100vh;overflow:visible}.monitoring-page-dense .monitoring-shell{height:auto;overflow:visible}.monitoring-card-grid-dense{flex:none;grid-template-rows:none;grid-template-columns:1fr;grid-auto-rows:auto;overflow:visible}.monitoring-card-grid-dense .monitoring-card{min-height:190px}.monitoring-page{padding:16px}.monitoring-page-dense .monitoring-header>div:first-child{flex-direction:column;align-items:flex-start}.monitoring-page-dense .monitoring-header h1,.monitoring-page-dense .monitoring-header p,.monitoring-page-dense .monitoring-period-pill{white-space:normal}.monitoring-header,.monitoring-progress>div:first-child{flex-direction:column}.monitoring-summary{grid-template-columns:repeat(5,minmax(58px,1fr));gap:8px}.monitoring-summary-item{min-height:96px;padding:10px 6px}.monitoring-summary-item strong{font-size:18px}.monitoring-summary-item span{font-size:30px}.monitoring-summary-item small{font-size:11px}.monitoring-card h2{font-size:30px}}.counseling-table-actions{justify-content:flex-end;align-items:center;gap:4px;display:inline-flex}@media (max-width:640px){.page-heading{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.page-heading .page-heading-action,.page-heading>.btn{white-space:normal;justify-content:center;width:100%;min-height:48px}.user-filter-card .filter-bar{gap:10px}.user-filter-card .filter-bar-row-1{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;justify-content:flex-start;align-items:center;display:flex;overflow-x:auto}.user-filter-card .filter-bar-row-1>*{flex-shrink:0}.user-filter-card .filter-bar-row-1 .role-pill{min-width:max-content}.user-filter-card .filter-bar-row-1 .btn{border-radius:8px;flex:0 0 48px;width:48px;min-width:48px;height:48px}.user-filter-card .filter-bar-row-1 .btn:first-of-type{margin-left:auto}.user-filter-card .filter-bar-row-2{grid-template-columns:minmax(0,1fr);display:grid}.user-filter-card .filter-bar .input-icon,.user-filter-card .filter-bar .filter-select{width:100%;min-width:0!important}.user-filter-card .filter-select{min-height:48px}.user-table-card .data-table th:last-child,.user-table-card .table-actions{width:184px;min-width:184px;text-align:right!important;padding-right:12px!important}.counseling-table-actions{gap:6px}.counseling-table-actions .table-action-button{border-radius:8px;width:38px;height:38px}}.user-filter-card .filter-bar-row-2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid}.user-filter-card .filter-bar-row-2:has(>:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}.user-filter-card .filter-bar-row-2>*{width:100%;min-width:0!important}@media (max-width:640px){:is(.user-filter-card .filter-bar-row-2,.user-filter-card .filter-bar-row-2:has(>:nth-child(3))){grid-template-columns:minmax(0,1fr)}}
