: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}[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}.demo-strip{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:16px;display:flex}[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{color:#aebbd0}[data-bs-theme=dark] .demo-strip .btn-outline-primary{color:#d8e8ff;background:#5b9dff14;border-color:#5b9dff7a}[data-bs-theme=dark] .demo-strip .btn-outline-primary:hover{color:#fff;background:#5b9dff2e;border-color:#5b9dff}.app-shell{grid-template-columns:264px 1fr;min-height:100vh;display:grid}.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:auto;min-height:0;padding:2px 6px 8px 0;overflow:hidden auto}.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:#206bc414}.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}.main-pane{width:min(100%,1180px);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:188px;max-width:270px;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{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:280px}.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}.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}.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{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.student-schedule-row{border:1px solid var(--sion-border);background:var(--sion-surface);border-radius:10px;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:10px;min-width:0;padding:10px;display:grid}.student-schedule-row.active{border-color:var(--sion-primary);background:var(--sion-primary-soft)}.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}.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:inset 0 -8px 15px #0000001f, 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 article{border:1px solid var(--sion-border);background:var(--sion-card);border-radius:8px;align-items:center;gap:11px;min-height:82px;padding:13px;display:flex}.homeroom-total svg{color:var(--sion-primary)}.homeroom-summary article>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 article div span{display:block}.homeroom-summary strong{color:var(--sion-ink);font-size:21px;line-height:1}.homeroom-summary small,.homeroom-summary article 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 article{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)) auto;align-items:end;gap:12px;padding:14px;display:grid}.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:1fr 1fr}.journal-filter-band label:nth-child(3),.journal-filter-band>button{grid-column:1/-1}.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{align-items:flex-start}.attendance-today-schedules{gap:10px;margin-top:14px;display:grid}.attendance-today-schedules>div{grid-template-columns:minmax(72px,auto) minmax(0,1fr);align-items:baseline;gap:10px;display:grid}.attendance-today-schedules strong{color:var(--sion-ink);font-size:18px}.attendance-today-schedules small{color:var(--sion-muted);font-size:13px;font-weight:700}.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}.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%);box-shadow:inset 3px 0 0 var(--sion-primary)}.attendance-student-item.attendance-student-locked{opacity:.66;background:#f59f0012}.attendance-student-locked .attendance-radio-row,.attendance-student-locked .attendance-student-actions{pointer-events:none}.attendance-student-lock-message{color:#a16207;margin-top:8px;font-size:12px;font-weight:700}.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-exit-event{text-align:center;justify-items:center;gap:10px;padding:10px 2px 2px;display:grid}.teacher-qr-exit-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-exit-event>p,.teacher-qr-exit-event h3,.teacher-qr-exit-event small{margin:0}.teacher-qr-exit-event>p{color:#218739;letter-spacing:.05em;text-transform:uppercase;font-size:12px;font-weight:800}.teacher-qr-exit-event h3{font-size:19px}.teacher-qr-exit-event>small{color:var(--sion-muted)}.teacher-qr-exit-event>div,.teacher-qr-exit-event section{border:1px solid var(--sion-border);text-align:left;background:var(--sion-surface);border-radius:9px;width:100%;padding:12px}.teacher-qr-exit-event div strong,.teacher-qr-exit-event section>strong{color:var(--sion-muted);text-transform:uppercase;font-size:11px;display:block}.teacher-qr-exit-event div p{margin:5px 0 0;font-size:13px;line-height:1.45}.teacher-qr-exit-event section{gap:7px;display:grid}.teacher-qr-exit-event section p{justify-content:space-between;gap:12px;margin:0;font-size:13px;font-weight:700;display:flex}.teacher-qr-exit-event section p span{color:var(--sion-muted);font-weight:600}.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);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--sion-primary), transparent 72%)}.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-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}.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);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(76px + 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-today-schedules>div{grid-template-columns:1fr;gap:2px}.attendance-today-schedules strong{font-size:16px}.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{right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:30;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-radius:16px;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:7px;display:grid;position:fixed;left:12px;box-shadow:0 16px 40px #02081733}.mobile-tabs button{min-width:0;min-height:48px;color:var(--sion-muted);background:0 0;border:0;border-radius:10px;align-content:center;justify-items:center;gap:3px;padding:6px 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:7px;overflow:visible}.mobile-tabs.security-tabs{grid-template-columns:1fr 72px 1fr;padding-top:7px;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{z-index:40;padding:20px 12px calc(90px + env(safe-area-inset-bottom));background:#18243361;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.mobile-more-sheet{width:min(100%,520px);max-height:min(78vh, calc(100vh - 118px - env(safe-area-inset-bottom)));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-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:14px;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;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-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}}@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}}.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{border-collapse:separate;border-spacing:0;width:100%;min-width:880px}.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;min-width:180px;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:124px;min-width:124px;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);min-width:180px;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);font-size:13px;line-height:1.25}.schedule-block span{color:var(--sion-ink);margin-top:3px;font-size:12px;font-weight:700;line-height:1.3}.schedule-block small{color:var(--sion-muted);margin-top:4px;font-size:11px;font-weight:700;line-height:1.3}.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-muted);-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background:#ffffffc7;justify-content:center;align-items:center;gap:9px;font-size:12px;display:flex;position:absolute;inset:0}.table-loader{border:2px solid #d6e4f5;border-top-color:var(--sion-primary);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite table-loader-spin}@keyframes table-loader-spin{to{transform:rotate(360deg)}}@media (max-width:640px){.table-loading{min-height:120px;position:sticky;left:0}}@media (prefers-reduced-motion:reduce){.table-loader{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}.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-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}.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}.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{align-items:end;padding:10px}.user-modal{border-radius:12px 12px 0 0;max-height:calc(100vh - 20px);padding:20px 16px}.user-modal .modal-grid,.user-modal .form-grid.two-columns{grid-template-columns:1fr}.user-modal .modal-actions{background:var(--sion-card);margin:12px -16px -20px;padding:14px 16px;position:sticky;bottom:-20px}.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}[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)}@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);color:var(--sion-ink);background:var(--sion-card);border:1px solid #ffffffb8;border-radius:18px;gap:18px;padding:24px;display:grid;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 .button{justify-self:center}@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}.teacher-substitution-pane{gap:24px}.substitution-hero{color:#fff;background:linear-gradient(135deg,#10233f 0%,#206bc4 62%,#0f766e 140%);border:1px solid #d7e3f1;border-radius:8px;justify-content:space-between;align-items:center;gap:18px;padding:22px;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:#ffffff1f;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-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{border-color:var(--sion-border);background:var(--sion-control);color:var(--sion-ink)}[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:#7f1d1d;background:#fff1f2;border-color:#fecdd3}.monitoring-card.done{color:#064e3b;background:#ecfdf3;border-color:#bbf7d0}.monitoring-card.substituted{color:#4c1d95;background:#f5f0ff;border-color:#d8b4fe}.monitoring-card.no-schedule{color:#334155;background:#f1f5f9;border-color:#cbd5e1}.monitoring-card-status{background:#ffffffb8;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;margin:0;font-size:36px;line-height:1}.monitoring-card-detail{gap:8px;display:grid}.monitoring-card-detail p{color:#14213dc7;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{font-weight:900}.monitoring-card footer{border-top:1px solid #14213d1f;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:#14213db3}.monitoring-card footer strong{color:#14213d;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{background:linear-gradient(#dfe9f3 0%,#eef4fa 44%,#e7eff7 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{background:linear-gradient(135deg,#101c33 0%,#17345d 58%,#0f766e 130%);border:1px solid #ffffff38;align-items:center;min-height:58px;padding:8px 14px;box-shadow:0 14px 34px #0f172a2e}.monitoring-page-dense .monitoring-header>div:first-child{align-items:center;gap:12px;min-width:0;display:flex}.monitoring-page-dense .monitoring-kicker{color:#dbeafe;letter-spacing:0;white-space:nowrap;background:#ffffff1f;border-radius:8px;flex:none;margin:0;padding:7px 9px;font-size:11px;display:inline-flex}.monitoring-page-dense .monitoring-header h1{color:#fff;letter-spacing:0;white-space:nowrap;font-size:clamp(19px,1.75vw,27px)}.monitoring-page-dense .monitoring-header p{color:#d7e6f7;white-space:nowrap;background:#ffffff1c;border-radius:8px;margin:0;padding:7px 10px;font-size:12px;font-weight:850}.monitoring-page-dense .monitoring-period-pill{color:#eff6ff;white-space:nowrap;background:#206bc43d;border-color:#93c5fd7a;margin-top:0;padding:7px 10px;font-size:12px;font-weight:950}.monitoring-page-dense .monitoring-live{color:#bbf7d0;background:#dcfce724;border:1px solid #86efac47;padding:8px 11px;font-size:12px;box-shadow:inset 0 0 0 1px #ffffff0a}.monitoring-page-dense .monitoring-summary{grid-template-columns:repeat(5,minmax(86px,1fr));gap:7px;width:min(660px,100%)}.monitoring-page-dense .monitoring-summary-item{text-align:left;background:linear-gradient(#fff 0%,#f7fbff 100%);border-color:#c3d2e4eb;justify-content:center;align-items:center;gap:7px;min-height:50px;padding:6px 10px;display:flex;box-shadow:0 10px 24px #0f172a14}.monitoring-page-dense .monitoring-summary-item strong{font-size:17px}.monitoring-page-dense .monitoring-summary-item span{font-size:27px}.monitoring-page-dense .monitoring-summary-item small{font-size:10px}.monitoring-page-dense .monitoring-progress{background:#ffffffeb;border-color:#c8d8ea;padding:7px 10px;box-shadow:0 10px 24px #0f172a14}.monitoring-page-dense .monitoring-progress>div:first-child{margin-bottom:5px;font-size:12px}.monitoring-page-dense .monitoring-progress-track{background:#d6e3f1;height:7px;box-shadow:inset 0 1px 2px #0f172a14}.monitoring-page-dense .monitoring-progress-track span{background:linear-gradient(90deg,#206bc4 0%,#0f766e 100%)}.monitoring-card-grid-dense{flex:1;grid-template-columns:repeat(9,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:8px;min-height:0;overflow:hidden}.monitoring-card-grid-dense .monitoring-card{gap:5px;height:100%;min-height:0;padding:9px 10px;position:relative;overflow:hidden;box-shadow:0 12px 22px #0f172a1f}.monitoring-card-grid-dense .monitoring-card.pending{color:#fff;background:#b91c1c;border-color:#7f1d1d}.monitoring-card-grid-dense .monitoring-card.done{color:#fff;background:#047857;border-color:#065f46}.monitoring-card-grid-dense .monitoring-card.substituted{color:#fff;background:#6d28d9;border-color:#581c87}.monitoring-card-grid-dense .monitoring-card.no-schedule{color:#fff;background:#64748b;border-color:#475569}.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-status span{color:#fff;background:#fff3;border:1px solid #ffffff73;width:24px;height:24px}.monitoring-card-grid-dense .monitoring-card-status svg{width:15px;height:15px}.monitoring-card-grid-dense .monitoring-card h2{color:#fff;text-shadow:0 1px #00000024;max-width:calc(100% - 30px);font-size:clamp(21px,1.65vw,32px);line-height:.98}.monitoring-card-grid-dense .monitoring-card-detail{gap:4px;min-width:0}.monitoring-card-grid-dense .monitoring-card-detail p{color:#ffffffe0;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(10px,.76vw,13px);font-weight:800;line-height:1.15;display:block;overflow:hidden}.monitoring-card-grid-dense .monitoring-card-detail p:first-child{color:#fff;font-size:clamp(12px,.92vw,15px);font-weight:950}.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:#ffffffb3;font-size:9px;font-weight:750}.monitoring-card-grid-dense .monitoring-substitute-name strong{color:#fff;font-size:clamp(11px,.82vw,14px);font-weight:950}.monitoring-card-grid-dense .monitoring-card-detail svg{display:none}.monitoring-card-grid-dense .monitoring-card footer{color:#ffffffd1;border-top-color:#ffffff40;padding-top:4px;font-size:9px;line-height:1}.monitoring-card-grid-dense .monitoring-card footer span{white-space:nowrap;text-overflow:ellipsis;color:#ffffffc7;overflow:hidden}.monitoring-card-grid-dense .monitoring-card footer strong{color:#fff}.monitoring-card-grid-dense .monitoring-card.no-schedule h2{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:#ffffffe0}.monitoring-no-schedule-text{font-weight:950}.monitoring-page-dense .monitoring-footer{color:#52677f;background:#ffffffe6;border-color:#c8d8eae6;min-height:28px;padding:5px 12px;font-size:11px;box-shadow:0 8px 20px #0f172a12}.monitoring-page-dense .monitoring-footer strong{color:#17345d}@media (min-height:900px) and (min-width:1300px){.monitoring-card-grid-dense{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (max-width:760px){.monitoring-page{padding:16px}.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}}
