:root{--accent:#0868d7;--accent-soft:#d7e6ff;--bg:#f8fafc;--card:#fff;--text:#15181d;--muted:#65686f;--line:#b9bdc3;--ok:#16866b;--danger:#bd0012;--sidebar:#fff;--top:#f0f4fc;--shadow:0 2px 3px rgba(16,24,40,.1)}
body[data-theme="university"]{--accent:#7a4aa0;--accent-soft:#eadff1;--bg:#f7f3fa;--text:#2d1738;--top:#f0e8f5}
body[data-theme="corporate"]{--accent:#2d6da3;--accent-soft:#dce9f3;--bg:#f3f6f9;--text:#142b3f;--top:#e7eef5}
body[data-theme="government-school"]{--accent:#2b7550;--accent-soft:#dceee3;--bg:#f3f8f4;--text:#163222;--top:#e5f0e8}
body[data-theme="private-school"]{--accent:#9b6d28;--accent-soft:#f3e7ce;--bg:#fbf7ef;--text:#38260f;--top:#f5ecda}
body[data-theme="education"]{--accent:#2f83bb;--accent-soft:#dceefa;--bg:#f2f8fc;--text:#15364f;--top:#e4f1f8}
body[data-theme="technology"]{--accent:#0b7ee8;--accent-soft:#d9ebfb;--bg:#f2f6fa;--text:#102a43;--top:#e3edf6}
body[data-theme="minimal"]{--accent:#52525b;--accent-soft:#e5e5e7;--bg:#f7f7f8;--text:#18181b;--top:#ececee}
*{box-sizing:border-box}html{scroll-behavior:smooth}
[hidden]{display:none!important}
body{margin:0;font-family:Poppins,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}
button,input,select{font:inherit}.topbar{height:62px;background:var(--top);border-bottom:1px solid #c5c9cf;display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--text);font-size:19px}.brand small{display:inline-block;margin-left:9px;padding:2px 9px;border-radius:999px;background:#d4e4ff;color:#184e8d;font-size:11px}.seal{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#e9dbaa,#a98b39);color:#17385f;font-size:11px;font-weight:900}.top-actions{display:flex;align-items:center;gap:17px;font-size:13px}.shell{display:grid;grid-template-columns:255px minmax(0,1fr);min-height:calc(100vh - 62px)}.sidebar{background:var(--sidebar);border-right:1px solid #d2d5da;padding:25px 12px}.nav-link{display:flex;align-items:center;gap:12px;width:100%;padding:13px 15px;margin:3px 0;border:0;border-radius:24px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.nav-link:hover,.nav-link.active{background:var(--accent-soft);color:#101820}.content{padding:26px 28px;max-width:none;width:100%;margin:auto}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.page-head h1{font-size:28px;line-height:1.1;margin:0 0 7px;font-weight:700}.page-head p{margin:0;color:var(--muted);font-size:13px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.primary,.outline,.danger,.icon-btn{border-radius:22px;padding:10px 20px;cursor:pointer;font-weight:600;border:1px solid transparent}.primary{background:var(--accent);color:#fff}.outline{background:var(--card);border-color:#d0d5dd;color:var(--text)}.danger{background:#fff1f0;border-color:#fda29b;color:var(--danger)}.icon-btn{padding:8px 11px;background:var(--card);border-color:var(--line)}.primary:disabled,.outline:disabled,.danger:disabled,.icon-btn:disabled,button[disabled]{cursor:not-allowed;opacity:.52;transform:none!important;box-shadow:none!important;filter:saturate(.45)}
.brand-logo-wrap{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto}.brand-logo{width:40px;height:40px;object-fit:contain;border-radius:50%}.sidebar-branding{margin:22px auto 4px;padding-top:18px;border-top:1px solid var(--line);width:100%;display:grid;place-items:center;gap:8px}.sidebar-branding img{width:128px;height:128px;object-fit:contain}.sidebar-branding small{color:var(--muted);font-size:10px}.theme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.theme-choice{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text);cursor:pointer;text-align:left}.theme-choice:hover,.theme-choice.active{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.theme-swatch{width:24px;height:24px;border-radius:50%;background:var(--swatch);flex:0 0 auto}
.ico{width:18px;height:18px;display:inline-block;vertical-align:-4px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.ico.lg{width:22px;height:22px}.ico.xl{width:28px;height:28px}.nav-link .ico{color:#526174}.nav-link.active .ico{color:#075db5}.metric-title{display:flex;align-items:center;gap:10px}.metric-title .ico{color:#1a5ba7}.management-link>.ico{width:24px;height:24px;color:#1a67bd}.button-icon{display:inline-flex;align-items:center;gap:8px}.top-actions .icon-btn{display:grid;place-items:center;width:38px;height:38px;padding:0}
.stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:23px}.card,.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.card{padding:22px 20px;min-height:169px}.card.featured{background:#cfe0fb}.card small{color:var(--muted)}.metric{font-size:40px;font-weight:750;margin:29px 0 0;line-height:1}.split-metric{display:flex;gap:42px;margin-top:33px}.split-metric .metric{font-size:24px;margin:0}.dashboard-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-top:24px}.dashboard-grid>.dashboard-stack{display:contents}.dashboard-grid>.dashboard-stack:first-child>*{grid-column:span 6}.dashboard-grid>.dashboard-stack:last-child>.panel{grid-column:1/-1}.dashboard-stack{display:grid;gap:24px}.panel{padding:24px}.panel h3{margin:0 0 20px;font-size:22px;border-bottom:1px solid var(--line);padding-bottom:14px}.chart-placeholder{height:220px;border-radius:10px;background:transparent;display:flex;align-items:end;gap:50px;padding:30px 70px 25px;border-bottom:1px solid #9aa1aa}.bar{flex:1;background:var(--accent);border-radius:5px 5px 0 0;opacity:.95}.donut{width:145px;height:145px;margin:25px auto;border-radius:50%;background:conic-gradient(#1670df 0 53%,#705c7f 53%);position:relative}.donut:after{content:"";position:absolute;inset:24px;border-radius:50%;background:var(--card)}.management-link{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:11px;background:#f2f5f9;margin-top:14px}.management-link b{display:block}.management-link small{color:var(--muted)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.toolbar{display:flex;gap:10px;align-items:center;margin:0 0 14px;flex-wrap:wrap}.toolbar input,.toolbar select,.field input,.field select,.field textarea{border:1px solid #d0d5dd;border-radius:8px;background:var(--card);padding:0 12px;color:var(--text)}.toolbar input,.toolbar select,.field input,.field select{height:42px}.field textarea{padding:11px 12px;resize:vertical;line-height:1.4}.toolbar input{min-width:280px;flex:1}.table-wrap{overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:12px}.table{width:100%;border-collapse:collapse;min-width:850px}.table th,.table td{padding:13px 15px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}.table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f9fafb}.table tr:last-child td{border-bottom:0}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#e8f8f2;color:var(--ok);font-size:11px;font-weight:800}.badge.blue{background:#eaf2ff;color:#175cd3}.badge.gray{background:#f2f4f7;color:#475467}.row-actions{display:flex;gap:7px}.row-actions button{padding:6px 9px}.pagination{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;padding:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:12px;font-weight:700}.field.full{grid-column:1/-1}.form-section{margin:20px 0 8px;padding-top:17px;border-top:1px solid var(--line)}.form-section h3{margin:0 0 14px}.avatar{width:92px;height:92px;border-radius:50%;background:#eaf2ff;color:#175cd3;display:grid;place-items:center;font-size:28px;font-weight:800;margin:0 auto 18px}.modal{position:fixed;inset:0;background:rgba(16,24,40,.55);display:grid;place-items:center;padding:24px;z-index:50}.modal.hidden{display:none}.modal-card{position:relative;background:var(--card);border-radius:14px;padding:26px;width:min(820px,100%);max-height:90vh;overflow:auto}.modal-close{position:absolute;right:14px;top:12px;border:0;background:transparent;font-size:28px;cursor:pointer;color:var(--muted)}.empty{padding:50px;text-align:center;color:var(--muted)}.support-list{display:grid;gap:12px}.support-item{padding:15px;border:1px solid var(--line);border-radius:9px}.api-prefix{font-family:Consolas,monospace}.hint{font-size:12px;color:var(--muted);margin-top:7px}.license-machine-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.license-machine-row input{min-width:0;font-size:11px}
body.dark{--bg:#0d1117;--card:#14191f;--text:#f1f2f4;--muted:#a9abb2;--line:#454b53;--sidebar:#12171d;--top:#202631;--accent-soft:#0b5ca8;--shadow:none}body.dark .card.featured{background:#07559e}body.dark .management-link{background:#1c222b}body.dark .table th{background:#1a2028}body.dark .toolbar input,body.dark .toolbar select,body.dark .field input,body.dark .field select,body.dark .field textarea{background:#171d24}body.dark .nav-link.active{color:#fff}body.dark .nav-link .ico{color:#aab4c0}body.dark .nav-link.active .ico,body.dark .metric-title .ico,body.dark .management-link>.ico{color:#dbeafe}
.seal{border:1px solid rgba(105,81,19,.24);box-shadow:0 2px 8px rgba(78,61,19,.16)}.user-chip{display:flex;align-items:center;gap:8px;padding-right:5px}.user-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#d8e7ff;color:#135aa5;font-weight:800}.sidebar{display:flex;flex-direction:column;justify-content:space-between;position:sticky;top:62px;height:calc(100vh - 62px)}.sidebar-foot{display:flex;align-items:center;gap:10px;margin:20px 9px 0;padding:14px 8px 0;border-top:1px solid var(--line);color:var(--muted)}.sidebar-foot .mini{width:29px;height:29px;font-size:9px}.sidebar-foot b{display:block;color:var(--text);font-size:12px}.sidebar-foot small{display:block;font-size:10px}.nav-link,.primary,.outline,.danger,.icon-btn,.card{transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.nav-link:hover{transform:translateX(2px)}.card:hover{transform:translateY(-2px);box-shadow:0 7px 20px rgba(16,24,40,.10)}.primary:hover,.outline:hover,.danger:hover,.icon-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(16,24,40,.12)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(8,104,215,.25);outline-offset:2px}
@media(max-width:1100px){.content{padding:22px 20px}}@media(max-width:950px){.shell{grid-template-columns:1fr}.sidebar{display:block;overflow:auto;padding:10px;border-right:0;border-bottom:1px solid var(--line);position:sticky;top:62px;height:auto;z-index:8}.sidebar nav{display:flex}.sidebar-foot{display:none}.nav-link{white-space:nowrap;width:auto}.content{padding:18px 16px}.stats{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.dashboard-grid>.dashboard-stack{display:contents}.dashboard-grid>.dashboard-stack:first-child>*,.dashboard-grid>.dashboard-stack:last-child>.dashboard-panel-link,.dashboard-grid>.dashboard-stack:last-child>.panel{grid-column:auto}}@media(max-width:600px){.topbar{padding:0 14px}.top-actions .user-chip{display:none}.brand small{display:none}.top-actions{gap:7px}.top-actions .outline{padding:9px}.stats,.grid2,.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.content{padding:12px}.page-head{align-items:flex-start;flex-direction:column}}
.nav-link{text-decoration:none}
.login-error{padding:10px 12px;border:1px solid #f2a3a3;border-radius:8px;background:#fff1f0;color:#a30b19}.modal-card:has(#loginSubmit){max-width:460px}
.auth-locked .topbar,.auth-locked .shell{display:none}.auth-locked{min-height:100vh;background:linear-gradient(135deg,var(--top),var(--bg) 55%,var(--accent-soft))}.auth-gate{background:transparent}.auth-gate .modal-card{width:min(460px,100%);padding:34px;box-shadow:0 24px 70px rgba(16,24,40,.22);border:1px solid var(--line)}.login-brand{display:flex;align-items:center;gap:15px;margin-bottom:24px}.login-brand img{width:64px;height:64px;object-fit:contain;border-radius:50%}.login-brand h2{margin:0;font-size:24px}.login-brand p{margin:4px 0 0;color:var(--muted)}.login-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}.auth-gate .form-grid{grid-template-columns:1fr}.auth-gate .primary{min-width:120px}
.api-key-once{width:100%;min-height:120px;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text);font:13px/1.5 Consolas,monospace;word-break:break-all;resize:vertical}
.content{margin:0 auto;align-self:start}
.notice{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:100;width:max-content;max-width:calc(100vw - 32px);padding:15px 20px;border-radius:10px;background:#147a5b;color:#fff;box-shadow:0 14px 38px rgba(16,24,40,.30);font-weight:650;text-align:center}.notice.bad{background:#b42318}.notice.hidden{display:none}
.notification-wrap{position:relative}.notification-btn{position:relative}.notification-count{position:absolute;right:-5px;top:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#d92d20;color:#fff;border:2px solid var(--top);font-size:10px;line-height:15px;font-weight:800}.notification-count.hidden,.notification-panel.hidden{display:none}.notification-panel{position:absolute;right:0;top:47px;width:min(390px,calc(100vw - 28px));max-height:520px;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 45px rgba(16,24,40,.22);z-index:90}.notification-head{display:flex;align-items:center;justify-content:space-between;padding:16px 17px;border-bottom:1px solid var(--line)}.notification-head b,.notification-head small{display:block}.notification-head small{color:var(--muted);font-size:11px;margin-top:3px}.link-button{border:0;background:transparent;color:var(--accent);font-size:12px;font-weight:700;cursor:pointer}.notification-list{max-height:430px;overflow:auto}.notification-item{width:100%;display:grid;grid-template-columns:10px 1fr;gap:10px;padding:14px 17px;border:0;border-bottom:1px solid var(--line);background:var(--card);color:var(--text);text-align:left;cursor:pointer}.notification-item:hover{background:var(--bg)}.notification-item.unread{background:#eef5ff}.notification-dot{width:8px;height:8px;margin-top:5px;border-radius:50%;background:transparent}.notification-item.unread .notification-dot{background:var(--accent)}.notification-copy b{display:block;font-size:13px}.notification-copy span,.notification-copy time{display:block;color:var(--muted);font-size:11px;line-height:1.4;margin-top:3px}.notification-empty{padding:38px 18px;text-align:center;color:var(--muted)}body.dark .notification-item.unread{background:#102b46}
.import-summary{display:flex;gap:22px;align-items:center;padding:15px;margin-bottom:12px}.import-progress{display:grid;gap:8px;margin-top:14px}.import-progress.hidden{display:none}.import-progress progress{width:100%;height:14px}
#modalBody:has(#opPhoto){display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px 24px;align-items:start}
#modalBody:has(#opPhoto)>h2{grid-column:1/-1;margin-bottom:2px}
#modalBody:has(#opPhoto)>.form-grid{grid-column:2;grid-row:2}
#modalBody:has(#opPhoto)>.photo-upload{grid-column:1;grid-row:2}
#modalBody:has(#opPhoto)>.actions{grid-column:2;grid-row:3;justify-content:flex-end}
.modal-card:has(#opPhoto){width:min(1040px,100%)}
.photo-upload{margin:0;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:var(--shadow);align-self:start}
.photo-upload label{display:block;margin-bottom:12px;font-size:13px;font-weight:750}
.photo-upload small{display:block;color:var(--muted);font-size:11px;line-height:1.45;margin-top:10px}
.photo-upload input[type=file]{width:100%;height:auto;padding:0;border:0;border-radius:0;background:transparent;font-size:0;color:transparent}
.photo-upload input[type=file]::file-selector-button{display:block;width:100%;margin:0 0 10px;padding:10px 14px;border:1px solid var(--accent);border-radius:22px;background:var(--card);color:var(--accent);font-size:13px;font-weight:700;cursor:pointer}
.profile-preview{display:block;width:100%;height:220px;object-fit:contain;border:1px dashed #aeb8c5;border-radius:14px;margin:0 0 16px;background:#eef3f9}
.photo-upload:not(:has(.profile-preview))::before{content:"No profile photo";display:grid;place-items:center;width:100%;height:220px;margin:0 0 16px;border:1px dashed #aeb8c5;border-radius:14px;background:#eef3f9;color:var(--muted);font-size:12px}
body.dark .profile-preview,body.dark .photo-upload:not(:has(.profile-preview))::before{background:#1a222c}
.profile-preview.hidden{display:none}.photo-status{display:grid;gap:3px;margin-top:11px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--muted);font-size:11px;line-height:1.45}.photo-status b,.photo-status span{display:block}.photo-status.photo-ready{border-color:color-mix(in srgb,var(--ok) 42%,var(--line));background:color-mix(in srgb,var(--ok) 9%,var(--card));color:var(--ok)}.photo-status.photo-warning{border-color:#e1a019;background:#fff7df;color:#714b00}body.dark .photo-status.photo-warning{background:#362800;color:#ffd36a}
@media(max-width:760px){#modalBody:has(#opPhoto){grid-template-columns:1fr}#modalBody:has(#opPhoto)>.form-grid,#modalBody:has(#opPhoto)>.photo-upload,#modalBody:has(#opPhoto)>.actions{grid-column:1;grid-row:auto}#modalBody:has(#opPhoto)>.photo-upload{max-width:280px;width:100%;margin:0 auto}#modalBody:has(#opPhoto)>.actions{justify-content:flex-start}}
.import-preview{max-height:420px}.import-preview .table{min-width:760px}.preview-warning{color:#9a6700;font-weight:650}.preview-error{color:var(--danger);font-weight:650}
.dashboard-card,.dashboard-panel-link,.management-link,.live-bar-row{text-decoration:none;color:inherit}.dashboard-card{display:block}.dashboard-card:focus-visible,.management-link:focus-visible,.live-bar-row:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 28%,transparent);outline-offset:3px}.dashboard-panel-link{display:block}.live-bars{display:grid;gap:12px}.live-bar-row{display:grid;grid-template-columns:minmax(120px,220px) 1fr 48px;gap:12px;align-items:center;padding:7px 5px;border-radius:8px}.live-bar-row:hover{background:var(--accent-soft)}.live-bar-row b{text-align:right}.live-bar-track{height:10px;border-radius:999px;background:#e3eaf1;overflow:hidden}.live-bar-track i{display:block;height:100%;min-width:2px;border-radius:999px;background:var(--accent)}
.school-quality-panel{margin-bottom:24px}.school-quality-panel>.stats{align-items:stretch}.school-quality-panel .card{min-height:0;height:auto}.school-quality-panel .card small{display:block;line-height:1.55;overflow-wrap:anywhere}
.school-overview-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.gender-population-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:20px}.gender-population-grid span+span{border-top:1px solid var(--line);padding-top:12px}@media(max-width:950px){.school-overview-stats{grid-template-columns:1fr 1fr}.school-gender-card{grid-column:1/-1}}@media(max-width:600px){.school-overview-stats{grid-template-columns:1fr}.school-gender-card{grid-column:auto}}
.gender-population-grid .gender-comparison{display:flex;align-items:center;gap:12px}.gender-population-grid .gender-comparison>span{display:grid;gap:5px;min-width:0}.gender-population-grid small{color:var(--muted)}.mini-gender-pie{width:46px;height:46px;flex:0 0 46px;border-radius:50%;background:conic-gradient(#1670df 0 var(--male),#d15b8f var(--male) var(--female),#a5abb4 var(--female) 100%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--line) 80%,transparent);position:relative}.mini-gender-pie:after{content:"";position:absolute;inset:14px;border-radius:50%;background:var(--card)}.gender-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px}.gender-dot.male{background:#1670df}.gender-dot.female{background:#d15b8f}
.school-role .assigned-school-banner{padding:10px 16px;margin-bottom:8px;border-radius:11px;min-height:0}.school-role .assigned-school-banner .badge{padding:3px 7px}.school-role .page-head{margin-bottom:16px}.school-role .school-quality-panel{padding:16px 18px;margin-bottom:18px}.school-role .school-quality-panel h3{font-size:19px;margin-bottom:9px;padding-bottom:9px}.school-role .school-quality-panel>.hint{margin:0 0 11px}.school-role .school-quality-panel>.stats{gap:16px}.school-role .school-quality-panel .card{padding:14px 16px}.school-role .school-quality-panel .metric{font-size:32px;margin-top:15px}.school-role .school-overview-stats{gap:16px}.school-role .school-overview-stats>.card{min-height:145px;padding:18px}.school-role .school-overview-stats .metric{margin-top:20px}.school-role .dashboard-grid{margin-top:18px;gap:18px}
.compact-password-panel{padding:18px 24px}.compact-password-panel h3{margin-bottom:14px;padding-bottom:10px}.compact-password-panel .password-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.compact-password-panel>.actions{margin-top:14px!important}@media(max-width:850px){.compact-password-panel .password-fields{grid-template-columns:1fr 1fr}.compact-password-panel .password-fields .field:last-child{grid-column:1/-1}}@media(max-width:600px){.compact-password-panel{padding:16px}.compact-password-panel .password-fields{grid-template-columns:1fr}.compact-password-panel .password-fields .field:last-child{grid-column:auto}}
.password-policy-panel{margin-top:16px}.password-policy-grid{display:grid;grid-template-columns:180px repeat(2,minmax(0,1fr));gap:12px 20px;align-items:center;margin:16px 0}.policy-check{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:var(--bg);cursor:pointer}.policy-check input{width:18px;height:18px;accent-color:var(--accent)}.wizard-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 30px 22px 0}.wizard-steps span{display:grid;justify-items:center;gap:5px;color:var(--muted);font-size:10px;text-align:center}.wizard-steps span:before{content:"";height:3px;width:100%;border-radius:3px;background:var(--line);order:-2}.wizard-steps b{display:grid;place-items:center;width:25px;height:25px;margin-top:-19px;border-radius:50%;background:var(--card);border:2px solid var(--line);font-size:11px}.wizard-steps .active,.wizard-steps .done{color:var(--accent);font-weight:700}.wizard-steps .active:before,.wizard-steps .done:before,.wizard-steps .active b,.wizard-steps .done b{background:var(--accent);border-color:var(--accent);color:#fff}.wizard-help{display:grid;gap:5px;margin:14px 0 18px;padding:13px 15px;border-left:4px solid var(--accent);border-radius:8px;background:var(--accent-soft)}.wizard-help ol{margin:6px 0 0;padding-left:20px}.wizard-help li{margin:5px 0}.setup-key-label{display:block;font-size:12px;font-weight:700;margin-bottom:7px}.wizard-verify{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 220px;gap:18px;align-items:end}@media(max-width:760px){.password-policy-grid,.wizard-verify{grid-template-columns:1fr}.wizard-steps{margin-right:0}}
.sidebar-ticket-count{margin-left:auto;min-width:22px;height:22px;padding:0 6px;display:grid;place-items:center;border-radius:999px;background:#d92d20;color:#fff;font-size:10px;font-weight:800;box-shadow:0 0 0 2px var(--sidebar)}.nav-link.has-support-tickets{font-weight:700}
.inactive-row{opacity:.66}.inactive-row td{background:color-mix(in srgb,var(--card) 82%,#d7dce2)}
.report-section{margin:26px 0}.report-section>h2{margin:0 0 14px;font-size:19px}.report-section>.panel{margin-top:16px}
.priority-panel{margin-top:24px}.priority-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.priority-actions .management-link{margin-top:0}.priority-clear{display:flex;align-items:center;gap:13px;padding:15px 17px;border:1px solid color-mix(in srgb,var(--ok) 38%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--ok) 10%,var(--card));color:var(--ok)}.priority-check{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:var(--ok);color:#fff;font-weight:900}.priority-clear b,.priority-clear small{display:block}.priority-clear small{margin-top:3px;color:var(--muted)}@media(max-width:850px){.priority-actions{grid-template-columns:1fr}}
.filter-notice{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:11px 14px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));border-radius:10px;background:var(--accent-soft);color:var(--text)}.filter-notice .link-button{margin-left:auto;white-space:nowrap}
@media(max-width:600px){.live-bar-row{grid-template-columns:100px 1fr 36px}}
.table td.row-actions{display:table-cell;white-space:nowrap}.table td.row-actions button{display:inline-flex;margin-right:7px}.table td.row-actions button:last-child{margin-right:0}
.roster-readonly-banner{margin:0 0 16px;border:1px solid #d89a20;background:#fff7df;color:#6f4700}
.roster-readonly-banner b{display:block;font-size:16px;margin-bottom:4px}
.roster-readonly-banner p{margin:0;line-height:1.45}
.roster-readonly-banner[hidden]{display:none}
.panel:has(#brandingLogoFile),
.panel:has(#brandDestinationUrl),
body.school-role .panel:has(#smtpHost){display:none!important}
body.auth-locked{background-image:linear-gradient(rgba(244,247,251,.82),rgba(244,247,251,.9)),var(--portal-login-background,none);background-size:cover;background-position:center;background-attachment:fixed}
.branding-inheritance{margin:12px 0;padding:10px 12px;border-radius:10px;background:var(--soft);color:var(--muted);font-size:.9rem}
.branding-assets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}
.branding-assets>div{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--card)}
.branding-preview{height:120px;margin:9px 0;border:1px dashed var(--line);border-radius:10px;background:var(--soft);display:flex;align-items:center;justify-content:center;overflow:hidden}
.branding-preview img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.branding-preview.background{background-size:cover;background-position:center}
.branding-preview.favicon img{width:64px;height:64px;object-fit:contain}
.branding-assets input[type=file]{width:100%;height:auto;margin-bottom:8px;font-size:.8rem}
@media(max-width:800px){.branding-assets{grid-template-columns:1fr}.branding-preview{height:150px}}
.setup-steps{padding-left:22px;line-height:1.65}.secret-display{display:flex;align-items:center;gap:10px;padding:14px;margin:14px 0;border:1px solid var(--line);border-radius:12px;background:var(--soft)}.secret-display code{font-size:1.05rem;font-weight:800;letter-spacing:.12em;word-break:break-all;flex:1}.recovery-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:16px 0}.recovery-codes code{padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--soft);text-align:center;font-weight:800;letter-spacing:.08em}@media(max-width:520px){.recovery-codes{grid-template-columns:1fr}.secret-display{align-items:stretch;flex-direction:column}}
.theme-grid.monitoring-style{gap:12px}.theme-grid.monitoring-style .theme-choice{min-height:72px;border-radius:13px;padding:10px 12px}.theme-grid.monitoring-style .theme-choice.active::after,.mode-choice.active::after{content:"Selected";margin-left:auto;color:var(--accent);font-size:10px;font-weight:800}.theme-layout-preview{position:relative;width:72px;height:46px;flex:0 0 72px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.theme-layout-preview i{position:absolute;inset:0 auto 0 0;width:20px;background:var(--swatch)}.theme-layout-preview b{position:absolute;left:27px;right:7px;top:8px;height:10px;border-radius:3px;background:var(--card)}.theme-layout-preview em{position:absolute;right:7px;bottom:7px;width:25px;height:7px;border-radius:6px;background:var(--swatch)}.display-mode-section{margin-top:18px;padding-top:17px;border-top:1px solid var(--line)}.display-mode-section h3{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.display-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mode-choice{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--card);color:var(--text);text-align:left;cursor:pointer}.mode-choice:hover,.mode-choice.active{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 17%,transparent)}.mode-choice>span:nth-child(2){display:grid}.mode-choice small{color:var(--muted)}.mode-preview{width:46px;height:32px;flex:0 0 46px;border:1px solid #cfd7e2;border-radius:7px;box-shadow:inset 0 9px 0 var(--accent)}.mode-preview.light{background:#fff}.mode-preview.dark{background:#14191f;border-color:#46505d}@media(max-width:620px){.theme-grid.monitoring-style,.display-mode-grid{grid-template-columns:1fr}}
.setting-toggle{display:flex;align-items:center;gap:12px;margin:0 0 20px;padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--bg);cursor:pointer}.setting-toggle input{position:absolute;opacity:0;pointer-events:none}.setting-toggle>span:last-child{display:grid;gap:3px}.setting-toggle small{color:var(--muted);font-weight:400}.toggle-track{position:relative;width:48px;height:26px;flex:0 0 48px;border-radius:999px;background:#98a2b3;transition:.18s}.toggle-track::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:.18s}.setting-toggle input:checked+.toggle-track{background:var(--accent)}.setting-toggle input:checked+.toggle-track::after{transform:translateX(22px)}.setting-toggle input:focus-visible+.toggle-track{outline:3px solid color-mix(in srgb,var(--accent) 28%,transparent);outline-offset:2px}.monitoring-fields{transition:opacity .18s}.monitoring-fields.is-disabled{opacity:.58}.monitoring-fields.is-disabled .form-grid{pointer-events:none}
#calendarTargets{height:300px;min-height:300px;padding:8px 10px;line-height:1.55}#calendarTargets option{padding:7px 9px;border-radius:6px}#calendarTargetChips{max-height:140px;overflow:auto;padding:10px 0;line-height:2.25}#calendarTargetChips .badge{margin:2px 4px 2px 0}.modal-card:has(#calendarTargets){width:min(980px,100%)}@media(max-width:600px){#calendarTargets{height:240px;min-height:240px}}
