@font-face{font-family:Noto Sans Arabic;src:url(/fonts/NotoSansArabic-Regular.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Noto Sans Arabic;src:url(/fonts/NotoSansArabic-Bold.ttf) format("truetype");font-style:normal;font-weight:700 900;font-display:swap}:root{font-family:Noto Sans Arabic,Arial,sans-serif;color:#17223d;background:#f8faff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}html[lang=en]{font-family:Arial,sans-serif}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.auth-shell{min-height:100vh;padding:28px 32px;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;background:linear-gradient(145deg,#eaf0ff,#fbfcff 49%,#f1f4fc)}.auth-layout{width:min(1120px,100%);min-width:0;display:grid;grid-template-columns:1.1fr .9fr;align-items:stretch;gap:22px}.brand-panel{min-width:0;min-height:560px;padding:36px;border-radius:32px;background:linear-gradient(140deg,#2f6bff,#425fe3 60%,#6771df);box-shadow:0 24px 44px -22px #2f6bff6b;color:#fff;display:flex;flex-direction:column;align-items:flex-start}.brand-badge,.feature-list span{display:inline-flex;align-items:center;gap:8px;border:1px solid rgb(255 255 255 / 18%);background:#ffffff24;border-radius:18px;padding:10px 14px;font-size:14px;font-weight:700}.brand-logo{width:140px;height:140px;object-fit:contain;margin-top:28px}.brand-panel h1{font-family:Arial,sans-serif;font-size:clamp(28px,3vw,36px);line-height:1.2;margin:28px 0 12px;text-align:start;font-weight:800;overflow-wrap:anywhere}.brand-panel p{font-size:17px;line-height:1.8;color:#ffffffe0;margin:0;max-width:470px}.feature-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.feature-list span{font-size:13px;background:#ffffff1c}.form-card{min-width:0;align-self:center;background:#fff;border:1px solid #e7ecf6;border-radius:22px;box-shadow:0 18px 38px -25px #2f6bff47;padding:30px}.language-switch{display:flex;width:fit-content;gap:4px;margin:0 0 22px;margin-inline-start:auto;padding:4px;border:1px solid #dce5fa;border-radius:12px;background:#f5f8ff}.language-switch button{border:0;border-radius:9px;padding:6px 12px;background:transparent;color:#56637e;font-size:13px;font-weight:700}.language-switch button[aria-pressed=true]{background:#2f6bff;color:#fff}.language-switch button:focus-visible{outline:2px solid #17223d;outline-offset:2px}.form-heading h2{margin:0 0 10px;font-size:26px;line-height:1.5;font-weight:800}.form-heading p{margin:0;color:#68738b;font-size:14px;line-height:1.7}.fields{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;gap:18px;margin-top:26px}.field{display:grid;grid-template-columns:minmax(0,1fr);min-width:0;gap:8px;font-weight:700;font-size:13px;color:#38435a}.input-wrap{width:100%;min-width:0;min-height:56px;border:1px solid #e1e6f0;border-radius:17px;background:#f6f8fc;display:flex;align-items:center;gap:12px;padding:0 16px;color:#6b7894;transition:border-color .15s ease,box-shadow .15s ease}.input-wrap:focus-within{border-color:#2f6bff;box-shadow:0 0 0 3px #2f6bff1f}.input-wrap input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#17223d;font-size:15px;direction:ltr;text-align:start}.input-wrap input:disabled{opacity:.6}.visibility-button{background:none;border:0;color:#6b7894;display:grid;place-items:center;padding:5px;border-radius:8px}.visibility-button:hover{color:#2f6bff;background:#e9efff}.feedback{margin-top:17px;border-radius:12px;border:1px solid;padding:11px 13px;font-size:13px;line-height:1.7}.feedback.error{color:#a52337;background:#fff4f5;border-color:#f3cdd3}.feedback.notice{color:#245ec7;background:#f0f5ff;border-color:#d7e3ff}.primary-button{position:relative;width:100%;min-height:54px;margin-top:24px;padding:10px 18px;border:0;border-radius:17px;display:flex;align-items:center;justify-content:center;gap:10px;background:#2f6bff;color:#fff;font-size:16px;font-weight:700;box-shadow:0 12px 20px -12px #2f6bffa6;transition:background .15s ease,transform .15s ease}.primary-button:hover:not(:disabled){background:#2459dd;transform:translateY(-1px)}.primary-button:disabled{opacity:.65}.button-arrow{position:absolute;inset-inline-end:18px}.spinner{width:18px;height:18px;border:2px solid rgb(255 255 255 / 45%);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.text-button{display:block;width:100%;margin:11px auto 0;border:0;border-radius:10px;padding:8px;background:none;color:#2f6bff;font-size:13px;font-weight:700}.text-button:hover:not(:disabled){background:#f0f5ff}.text-button:disabled{color:#8c95a8}.forgot-link{width:auto;margin:-4px 0 0;margin-inline-start:auto;padding:4px 8px}.remember-me{display:flex;align-items:center;gap:9px;cursor:pointer;font-weight:600;color:#334155}.remember-me input{width:18px;height:18px;accent-color:#2f6bff}.mode-switch{margin-top:10px}.dashboard-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr);background:#f7f9fd}.dashboard-sidebar{min-width:0;background:#fff;border-inline-end:1px solid #e2e8f3;display:flex;flex-direction:column;min-height:100vh}.sidebar-brand{min-height:82px;padding:18px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #edf1f8;color:#17223d;font-family:Arial,sans-serif;font-size:16px;font-weight:800}.sidebar-brand img{width:42px;height:42px;object-fit:contain}.sidebar-brand span{min-width:0;overflow-wrap:anywhere}.sidebar-close,.sidebar-toggle{display:none}.sidebar-nav{display:grid;gap:5px;padding:18px 12px}.sidebar-nav button{display:flex;align-items:center;gap:12px;width:100%;border:0;border-radius:12px;padding:12px 14px;background:transparent;color:#53617c;text-align:start;font-weight:700}.sidebar-nav button:hover{background:#f1f5ff;color:#265cdc}.sidebar-nav button.is-active{background:#eaf0ff;color:#2459dd}.dashboard-main{min-width:0;display:flex;flex-direction:column}.dashboard-header{min-height:74px;display:flex;align-items:center;gap:14px;padding:12px 28px;background:#fff;border-bottom:1px solid #e2e8f3}.dashboard-header h1{margin:0;font-size:21px;font-weight:800}.account-menu{position:relative;margin-inline-start:auto}.account-menu summary{list-style:none;display:grid;place-items:center;width:42px;height:42px;border:1px solid #d8e3fa;border-radius:50%;background:#eef3ff;color:#2f6bff;cursor:pointer}.account-menu summary::-webkit-details-marker{display:none}.account-menu summary:hover{background:#e2eaff}.account-menu summary img{width:100%;height:100%;border-radius:50%;object-fit:cover}.account-menu summary:focus-visible,.sidebar-nav button:focus-visible,.account-menu-panel button:focus-visible,.sidebar-toggle:focus-visible,.sidebar-close:focus-visible{outline:2px solid #17223d;outline-offset:2px}.account-menu-panel{position:absolute;z-index:20;top:calc(100% + 10px);inset-inline-end:0;width:min(310px,calc(100vw - 32px));padding:9px;border:1px solid #e1e7f2;border-radius:14px;background:#fff;box-shadow:0 16px 36px #1a335f26}.account-menu-panel button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 11px;border:0;border-radius:9px;background:transparent;color:#28344c;text-align:start}.account-menu-panel button:hover{background:#f0f5ff;color:#2459dd}.account-menu-panel .account-menu-profile{display:flex;align-items:center;gap:12px;min-height:74px;padding:10px;border:1px solid #e3eaf5;border-radius:12px;background:#f8faff;color:#17223d}.account-menu-panel .account-menu-profile:hover{background:#eef3ff;color:#17223d}.account-menu-avatar{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:13px;background:#eaf0ff;color:#2f6bff;overflow:hidden}.account-menu-avatar img{width:100%;height:100%;object-fit:cover}.account-menu-identity{min-width:0;display:grid;gap:4px}.account-menu-identity strong{color:#17223d;font-size:14px;font-weight:800;overflow-wrap:anywhere}.account-menu-identity small{color:#61708c;font-size:12px;overflow-wrap:anywhere}.account-menu-divider{height:1px;margin:9px 2px;background:#e8edf7}.account-menu-settings{display:grid;gap:8px;padding:5px 8px 8px;color:#61708c;font-size:12px}.account-menu-settings-heading{display:flex;align-items:center;gap:9px;color:#28344c;font-size:14px}.account-menu-settings .language-switch{width:100%;margin:0}.account-menu-settings .language-switch button{flex:1}.account-menu-settings .feedback{margin:0}.notification-menu{position:relative}.notification-menu summary{position:relative;width:44px;height:44px;border:1px solid #dbe5fb;border-radius:50%;display:grid;place-items:center;color:#2f6bff;background:#f0f5ff;cursor:pointer;list-style:none}.notification-menu summary::-webkit-details-marker{display:none}.notification-menu summary:hover{background:#e2eaff}.notification-menu summary>span{position:absolute;inset-block-start:-6px;inset-inline-end:-8px;min-width:21px;height:21px;padding:0 5px;border-radius:999px;display:grid;place-items:center;background:#e5484d;color:#fff;border:2px solid #fff;font-family:Arial,sans-serif;font-size:10px;font-weight:800}.notification-menu-panel{position:absolute;z-index:35;inset-block-start:calc(100% + 10px);inset-inline-end:0;width:min(420px,calc(100vw - 24px));max-height:min(610px,calc(100vh - 90px));overflow:auto;padding:12px;border:1px solid #dce5f6;border-radius:16px;background:#fff;box-shadow:0 18px 42px -22px #1d376673}.notification-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 4px 10px}.notification-menu-heading>strong{font-size:17px}.notification-menu-heading button{border:0;background:transparent;color:#2f6bff;display:flex;align-items:center;gap:6px;font-size:12px}.notification-enable{width:100%;border:1px solid #cfdcff;border-radius:11px;padding:9px 12px;background:#edf3ff;color:#245de0;font-weight:700}.notification-enable:disabled{color:#77829a;background:#f4f6fa}.notification-device-state,.notification-error,.notification-menu-panel>p{margin:7px 2px;color:#65718a;font-size:12px;line-height:1.6}.notification-error{color:#a52337}.notification-list{display:grid;gap:5px;margin-top:9px}.notification-list>button{width:100%;border:0;border-radius:12px;padding:10px;display:grid;grid-template-columns:9px minmax(0,1fr);gap:9px;text-align:start;background:#fff;color:#17223d}.notification-list>button:hover{background:#f4f7ff}.notification-list>button.is-unread{background:#edf3ff}.notification-dot{width:8px;height:8px;align-self:center;border-radius:50%;background:transparent}.notification-list>button.is-unread .notification-dot{background:#2f6bff}.notification-list>button>span:last-child{min-width:0;display:grid;gap:3px}.notification-list strong,.notification-list small{overflow-wrap:anywhere}.notification-list small{color:#5f6d87;line-height:1.55}.notification-list time{color:#8993a7;font-size:10px}.dashboard-content{flex:1;min-width:0;padding:30px}.dashboard-blank{min-height:calc(100vh - 135px)}.dashboard-page{max-width:760px}.dashboard-page h2{margin:0 0 20px;font-size:22px}.dashboard-page.profile-page{max-width:none;width:100%}.dashboard-card{padding:24px;border:1px solid #e3eaf5;border-radius:18px;background:#fff;box-shadow:0 12px 25px -24px #2f6bff59}.dashboard-overview{width:100%;display:grid;gap:20px}.staff-chart-card{display:grid;gap:24px}.staff-chart-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.staff-chart-heading h2{margin:0;font-size:21px}.staff-chart-heading p{margin:7px 0 0;color:#66738b;font-size:13px}.staff-chart-status-summary{display:flex;flex-wrap:wrap;gap:12px}.staff-chart-status-summary span{display:flex;align-items:center;gap:6px;color:#66738b;font-size:13px}.staff-chart-status-summary i{width:9px;height:9px;border-radius:50%;background:#25a66f}.staff-chart-status-summary i.is-inactive{background:#c8d0df}.staff-chart-status-summary i.school-private-key{background:#2f6bff}.staff-chart-status-summary i.school-government-key{background:#2f6bff52}.staff-chart-status-summary strong{color:#17223d}.staff-chart-layout{display:grid;grid-template-columns:minmax(250px,.75fr) minmax(300px,1.25fr);align-items:center;gap:34px}.staff-donut{position:relative;width:min(100%,310px);aspect-ratio:1;justify-self:center}.staff-donut svg{display:block;width:100%;height:100%;overflow:visible}.staff-donut circle{transition:stroke-dasharray .35s ease}.staff-donut-track{fill:none;stroke:#edf1f7;stroke-width:32}.staff-donut-center{position:absolute;inset:27%;display:grid;place-content:center;text-align:center;border-radius:50%;background:#fff;box-shadow:0 8px 30px #23355a14}.staff-donut-center strong{color:#17223d;font-size:clamp(28px,4vw,44px);line-height:1}.staff-donut-center span{margin-top:7px;color:#66738b;font-size:12px}.staff-chart-legend{display:grid;gap:10px}.staff-chart-role{padding:12px 14px;border:1px solid #e5ebf5;border-radius:12px;background:#fbfcff}.staff-chart-role-name{display:flex;align-items:center;gap:9px}.staff-chart-role-name i{width:11px;height:11px;flex:none;border-radius:4px}.staff-chart-role-name strong{min-width:0;overflow-wrap:anywhere}.staff-chart-role-name>span{margin-inline-start:auto;min-width:28px;padding:2px 7px;border-radius:999px;background:#edf3ff;color:#2459dd;text-align:center;font-size:12px;font-weight:700}.staff-chart-role-status{display:flex;gap:16px;margin-top:7px;padding-inline-start:20px;color:#69758c;font-size:12px}.staff-chart-role-status span{display:flex;gap:5px}.staff-chart-role-status strong{color:#34425d}.staff-chart-empty{margin:16px 0;color:#66738b;text-align:center}.profile-sections{display:grid;gap:20px;width:100%}.profile-summary{display:flex;align-items:center;gap:17px;min-height:110px}.profile-avatar{width:58px;height:58px;flex:none;display:grid;place-items:center;border-radius:17px;background:#edf3ff;color:#2f6bff}.profile-avatar img,.personal-photo img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.profile-summary span{display:block;color:#66738b;font-size:13px;margin-bottom:5px}.profile-summary strong{display:block;font-size:20px;overflow-wrap:anywhere}.personal-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.personal-section-header h3{margin:0;font-size:20px}.personal-section-header p{margin:7px 0 0;color:#66738b;font-size:13px}.personal-edit-button,.personal-photo-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #d8e3fa;border-radius:10px;padding:9px 14px;background:#f5f8ff;color:#2459dd;font:inherit;font-weight:700;cursor:pointer}.personal-edit-button:disabled,.personal-photo-actions button:disabled{opacity:.55;cursor:default}.personal-content{display:grid;gap:20px;margin-top:20px}.personal-photo-area{display:flex;align-items:center;gap:18px;padding:17px;border:1px solid #e3eaf5;border-radius:14px;background:#fbfcff}.personal-photo{display:grid;place-items:center;width:90px;height:90px;flex:none;border-radius:20px;background:#edf3ff;color:#2f6bff;overflow:hidden}.personal-photo-area strong{font-size:15px}.personal-photo-area p{margin:5px 0 11px;color:#66738b;font-size:13px}.personal-photo-actions{display:flex;flex-wrap:wrap;gap:8px}.personal-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.personal-facts>div{display:grid;gap:7px;min-width:0;padding:15px;border:1px solid #e3eaf5;border-radius:12px}.personal-facts span{color:#66738b;font-size:13px}.personal-facts strong{overflow-wrap:anywhere}.personal-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 15px}.personal-form label{grid-row:1;font-size:13px;font-weight:700}.personal-form input,.personal-form select{grid-row:2;width:100%;border:1px solid #d8e3fa;border-radius:9px;padding:11px 12px;background:#f8faff;color:#17233d;font:inherit}.personal-form-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.personal-form-actions button{border:1px solid #d8e3fa;border-radius:9px;padding:10px 16px;background:#fff;color:#2459dd;font:inherit;font-weight:700;cursor:pointer}.personal-form-actions button[type=submit]{border-color:#2f6bff;background:#2f6bff;color:#fff}.contacts-section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.contacts-section-header h3{margin:0;font-size:20px}.contacts-section-header p{margin:7px 0 0;color:#66738b;font-size:13px}.contacts-add-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;border:0;border-radius:10px;padding:11px 16px;background:#2f6bff;color:#fff;font:inherit;font-weight:700;cursor:pointer}.contacts-add-button:hover{background:#2459dd}.contacts-add-button:disabled{opacity:.55;cursor:default}.contact-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:23px}.contact-group{min-width:0;border:1px solid #e3eaf5;border-radius:14px;padding:16px;background:#fbfcff}.contact-group-heading{display:flex;align-items:center;gap:8px;color:#2f6bff}.contact-group-heading h4{margin:0;color:#17223d;font-size:15px}.contact-group-heading span{margin-inline-start:auto;min-width:25px;padding:2px 6px;border-radius:20px;background:#eaf0ff;text-align:center;font-size:12px;font-weight:700}.contact-group-list{display:grid;gap:9px;margin-top:14px}.contact-record{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0;padding:12px;border:1px solid #e8edf7;border-radius:10px;background:#fff}.contact-record-main{display:grid;gap:6px;min-width:0}.contact-record-main strong{overflow-wrap:anywhere;font-weight:600}.contact-record-main small{display:inline-flex;align-items:center;gap:5px;color:#66738b}.contact-record-actions{display:flex;gap:2px;flex:none}.contact-record-actions button{display:grid;place-items:center;padding:6px;border:0;border-radius:7px;background:transparent;color:#53617c;cursor:pointer}.contact-record-actions button:hover{background:#edf3ff;color:#2459dd}.contact-record-actions button:disabled{opacity:.5;cursor:default}.contact-empty{margin:0;color:#66738b;font-size:13px}.contact-dialog{width:min(520px,calc(100vw - 32px));max-height:90vh;padding:0;border:1px solid #dce5f4;border-radius:18px;background:#fff;color:#17223d;box-shadow:0 25px 80px #10244c3d}.contact-dialog::backdrop{background:#09142a7f}.contact-dialog-form{display:grid;gap:11px;padding:24px}.contact-dialog-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:7px}.contact-dialog-heading h2{margin:0;font-size:20px}.contact-dialog-heading p{margin:6px 0 0;color:#66738b;font-size:13px}.contact-dialog-close{display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:#53617c;padding:5px;cursor:pointer}.contact-dialog-form label{font-size:13px;font-weight:700}.contact-dialog-form select,.contact-dialog-form input,.contact-dialog-form textarea{width:100%;border:1px solid #d8e3fa;border-radius:9px;padding:11px 12px;background:#f8faff;color:#17233d;font:inherit}.contact-dialog-form textarea{min-height:90px;resize:vertical}.contact-dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:8px}.contact-dialog-actions button{border:1px solid #d8e3fa;border-radius:9px;padding:10px 16px;background:#fff;color:#2459dd;font:inherit;font-weight:700;cursor:pointer}.contact-dialog-actions button[type=submit]{border-color:#2f6bff;background:#2f6bff;color:#fff}.contact-dialog-actions button:disabled{opacity:.55;cursor:default}.sidebar-backdrop{display:none}@media(max-width:979px){.auth-layout{grid-template-columns:1fr;max-width:620px;gap:18px}.brand-panel{min-height:auto;padding:28px}.brand-logo{width:110px;height:110px;margin-top:22px}.brand-panel h1{margin-top:22px}}@media(max-width:600px){.auth-shell{padding:18px}.brand-panel{border-radius:26px}.form-card{padding:25px 22px}.form-heading h2{font-size:23px}}@media(max-width:800px){.dashboard-shell{display:block}.dashboard-sidebar{position:fixed;z-index:30;inset-block:0;inset-inline-start:0;width:min(290px,84vw);box-shadow:0 20px 48px #10244c2e;transform:translate(-110%);transition:transform .18s ease}html[dir=rtl] .dashboard-sidebar{transform:translate(110%)}.dashboard-sidebar.is-open,html[dir=rtl] .dashboard-sidebar.is-open{transform:translate(0)}.sidebar-close,.sidebar-toggle{display:grid;place-items:center;border:0;border-radius:9px;background:transparent;color:#3c4d6a;padding:8px}.sidebar-close{margin-inline-start:auto}.sidebar-backdrop{display:block;position:fixed;z-index:25;inset:0;border:0;background:#09142a6b}.dashboard-header{padding:12px 18px}.dashboard-content{padding:22px 18px}}@media(max-width:1100px){.contact-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.staff-chart-heading{flex-direction:column}.staff-chart-layout{grid-template-columns:1fr;gap:22px}.staff-donut{max-width:265px}.contact-groups{grid-template-columns:1fr}.contacts-section-header{flex-direction:column}.contacts-add-button{width:100%}.dashboard-card{padding:18px}.contact-dialog-form{padding:20px}.personal-photo-area{align-items:flex-start}.personal-photo{width:70px;height:70px}.personal-facts,.personal-form{grid-template-columns:1fr}.personal-form label,.personal-form input,.personal-form select{grid-row:auto}.personal-form-actions{grid-column:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.platform-roles-page{width:100%;display:grid;gap:18px}.roles-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.roles-heading h2{margin:0}.roles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,350px),1fr));gap:18px}.role-card{padding:22px;min-width:0}.role-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.role-card h3{margin:0 0 7px}.role-card h4{margin:18px 0 10px}.role-card code{font-size:.8rem;overflow-wrap:anywhere}.role-status{background:#fff1ee;color:#ae4936;border-radius:999px;padding:5px 10px;white-space:nowrap;font-size:.8rem}.role-status.is-active{background:#e7f7ee;color:#176b3b}.role-system-label{display:inline-block;margin-top:10px;color:#60718f;font-size:.85rem}.role-permission-list{display:flex;flex-wrap:wrap;gap:8px;min-height:26px}.role-permission-chip{display:grid;gap:3px;max-width:100%;padding:8px 10px;border-radius:10px;background:#f1f5ff;color:#244c9a}.role-permission-chip strong{font-size:12px;font-weight:700}.role-permission-chip code{color:#66738b}.role-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;padding-top:16px;border-top:1px solid #e3eaf6}.role-actions button{display:inline-flex;gap:6px;align-items:center;border:1px solid #d8e3f8;background:#fff;color:#244c9a;border-radius:8px;padding:8px 11px;cursor:pointer}.role-actions button.danger{color:#a93535}.role-actions button:disabled{opacity:.5;cursor:not-allowed}.roles-table-container{width:100%}.roles-table{min-width:1040px}.roles-table th:nth-child(1){width:15%}.roles-table th:nth-child(2){width:16%}.roles-table th:nth-child(3){width:11%}.roles-table th:nth-child(4){width:32%}.roles-table th:nth-child(5){width:9%}.roles-table th:nth-child(6){width:17%}.roles-table-key{color:#52617d;font-size:12px;overflow-wrap:anywhere}.role-kind{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f2f4f8;color:#52617d;font-size:12px;white-space:nowrap}.role-kind.is-system{background:#eaf0ff;color:#245de0}.roles-table-permissions{display:flex;align-items:flex-start;gap:9px;min-width:260px}.roles-permission-count{min-width:26px;height:26px;display:grid;place-items:center;border-radius:999px;background:#2f6bff;color:#fff;font-size:12px;font-weight:700}.roles-table .staff-role-chips{min-width:0;max-width:420px}.roles-table .staff-role-chips span{font-size:12px;padding:4px 8px}.roles-table .role-actions{flex-wrap:nowrap;margin:0;padding:0;border:0;white-space:nowrap}.roles-table .role-actions button{white-space:nowrap;padding:7px 9px}.roles-protected-text{display:block;max-width:210px;color:#64748b;font-size:12px;line-height:1.5}.role-dialog{width:min(880px,calc(100vw - 24px));max-width:none;max-height:min(90vh,860px)}.role-dialog small{color:#66758d}.role-dialog .contact-dialog-form{gap:18px}.role-form-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-bottom:18px;border-bottom:1px solid #e3eaf6}.role-form-fields>div{display:grid;align-content:start;gap:8px}.role-permissions-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.role-permissions-heading h3{margin:0;font-size:16px}.role-permissions-heading span,.role-permissions-empty{color:#60718f;font-size:13px}.role-permission-tabs{display:flex;gap:5px;overflow-x:auto;padding:5px;border:1px solid #e1e8f6;border-radius:11px;scrollbar-width:thin}.role-permission-tabs button{display:inline-flex;flex:none;align-items:center;gap:7px;border:0;border-radius:8px;padding:9px 12px;background:transparent;color:#475b7a;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.role-permission-tabs button.is-active{background:#2f6bff;color:#fff}.role-permission-tabs button span{min-width:20px;text-align:center;border-radius:999px;background:#e8efff;color:#2459dd;font-size:11px}.role-permission-tabs button.is-active span{background:#fff}.role-permission-tree{margin-top:12px;padding:15px 18px;border:1px solid #d8e3fa;border-radius:11px;background:#f8faff;max-height:300px;overflow-y:auto}.contact-dialog-form .role-group-select,.contact-dialog-form .role-permission-option{display:flex;align-items:flex-start;gap:11px;cursor:pointer}.contact-dialog-form .role-group-select{align-items:center}.contact-dialog-form .role-group-select span{margin-inline-start:auto;color:#60718f;font-weight:500}.role-permission-children{display:grid;gap:3px;margin-inline-start:8px;padding-inline-start:18px;border-inline-start:1px solid #d8e3fa}.contact-dialog-form .role-permission-option{padding:8px 4px;font-weight:400}.contact-dialog-form .role-permission-option>span{display:flex;flex-wrap:wrap;gap:3px 10px;align-items:baseline;min-width:0}.role-permission-option strong{font-weight:600}.role-permission-option code{color:#687895;font-size:11px;overflow-wrap:anywhere}.contact-dialog-form .role-permission-option input,.contact-dialog-form .role-group-select input{width:16px;height:16px;margin:2px 0 0;padding:0;flex:none;accent-color:#2f6bff}@media(max-width:600px){.roles-heading{align-items:flex-start;flex-direction:column}.role-form-fields{grid-template-columns:1fr;gap:12px}.role-dialog .contact-dialog-form{padding:16px}.role-permission-tree{padding:12px}}.staff-page{width:100%;display:grid;gap:18px}.staff-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.staff-heading h2{margin:0}.staff-heading p{margin:4px 0 0;color:#64748b}.staff-filters{display:flex;align-items:end;gap:16px;padding:18px}.staff-filters form{flex:2}.staff-filters label{display:grid;gap:8px;font-weight:600}.staff-filters>label{flex:1}.staff-filters input,.staff-filters select,.staff-dialog input{box-sizing:border-box;width:100%;min-height:44px;border:1px solid #d8e2ff;border-radius:10px;padding:9px 12px;background:#fff;color:#14233d;font:inherit}.staff-search-row,.staff-phone-row{display:flex;gap:8px}.staff-search-row button,.staff-phone-row button{border:1px solid #d8e2ff;border-radius:10px;background:#edf3ff;color:#245de0;padding:0 16px;cursor:pointer;white-space:nowrap}.staff-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:16px}.staff-card{padding:18px;display:grid;gap:15px}.staff-card-main{display:flex;align-items:center;gap:12px}.staff-card-main>div{min-width:0;flex:1}.staff-card-main h3{margin:0 0 4px}.staff-card-main code{font-size:12px;color:#64748b}.staff-avatar{width:54px;height:54px;flex:none;border-radius:50%;background:#edf3ff;color:#2f66ec;display:grid;place-items:center;overflow:hidden}.staff-avatar img{width:100%;height:100%;object-fit:cover}.staff-facts{display:grid;gap:7px;margin:0}.staff-facts div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.staff-facts dt{color:#64748b}.staff-facts dd{margin:0;overflow-wrap:anywhere}.staff-role-chips{display:flex;flex-wrap:wrap;gap:7px}.staff-role-chips span{border-radius:999px;background:#eaf0ff;color:#245de0;padding:5px 10px;font-size:13px}.staff-actions{display:flex;gap:8px;margin-top:auto}.staff-actions button,.staff-pagination button{border:1px solid #d8e2ff;border-radius:9px;background:#fff;color:#245de0;padding:9px 12px;display:flex;align-items:center;gap:6px;cursor:pointer}.staff-actions button:disabled,.staff-pagination button:disabled{opacity:.5;cursor:not-allowed}.staff-pagination{display:flex;align-items:center;justify-content:center;gap:16px}.staff-dialog{width:min(92vw,560px)}.staff-dialog .contact-dialog-form{display:grid;gap:12px}.staff-role-fieldset{border:1px solid #d8e2ff;border-radius:10px;display:grid;gap:8px;max-height:190px;overflow:auto}.staff-role-fieldset label{display:flex;align-items:center;gap:9px}.staff-role-fieldset input{width:auto;min-height:auto}.staff-lookup{margin:0;color:#245de0;font-size:14px}@media(max-width:650px){.staff-filters{display:grid}.staff-heading{align-items:start}.staff-grid{grid-template-columns:1fr}}.staff-table-container{min-width:0;padding:0;overflow:hidden}.staff-table-scroll{width:100%;overflow-x:auto}.staff-table{width:100%;min-width:960px;border-collapse:collapse;text-align:start}.staff-table th,.staff-table td{padding:15px 18px;text-align:start;vertical-align:middle}.staff-table thead{background:#f3f6ff;color:#52617d;font-size:13px}.staff-table tbody tr{border-top:1px solid #e6ecfa}.staff-table tbody tr:hover{background:#f8faff}.staff-table td{color:#14233d}.staff-table-person{display:flex;align-items:center;gap:12px;min-width:180px}.staff-table-person>div{display:grid;gap:3px;min-width:0}.staff-table-person strong{overflow-wrap:anywhere}.staff-table-person code{color:#64748b;font-size:12px;overflow-wrap:anywhere}.staff-table .staff-avatar{width:42px;height:42px}.staff-table .staff-role-chips{min-width:130px;max-width:240px}.staff-table .staff-actions{white-space:nowrap;margin:0}.staff-table .staff-actions button{white-space:nowrap}.staff-toolbar{display:flex;align-items:flex-start;gap:16px;min-width:0}.staff-filter-panel{flex:1;min-width:0;padding:0;overflow:hidden}.staff-filter-toggle{width:100%;min-height:48px;padding:10px 16px;border:0;background:#fff;color:#14233d;font:inherit;font-weight:700;text-align:start;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.staff-filter-toggle svg{transition:transform .2s ease}.staff-filter-toggle svg.is-open{transform:rotate(180deg)}.staff-add-button{flex:none;min-height:48px;white-space:nowrap}.staff-filter-form{border-top:1px solid #e6ecfa}.staff-filter-fields{display:grid;grid-template-columns:minmax(220px,360px) minmax(180px,260px);gap:14px;padding:18px 16px}.staff-filter-fields label{display:grid;gap:8px;font-weight:600;font-size:14px}.staff-filter-fields input,.staff-filter-fields select{box-sizing:border-box;width:100%;min-height:42px;padding:8px 12px;border:1px solid #d8e2ff;border-radius:9px;background:#fff;color:#14233d;font:inherit}.staff-filter-footer{display:flex;justify-content:flex-end;padding:12px 16px 16px;border-top:1px solid #e6ecfa}.staff-filter-footer button{min-height:40px;padding:8px 14px;border:1px solid #d8e2ff;border-radius:9px;background:#fff;color:#245de0;font:inherit;cursor:pointer}.staff-filter-footer button:hover{background:#edf3ff}.staff-table th,.staff-table td{padding:12px 14px}.staff-table-empty{height:60px;text-align:center!important;color:#64748b!important}.staff-pagination{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;color:#64748b;font-size:13px}.staff-pagination label{display:flex;align-items:center;gap:8px;justify-self:start}.staff-pagination select{min-height:32px;padding:4px 8px;border:1px solid #d8e2ff;border-radius:7px;background:#fff;color:#14233d;font:inherit}.staff-page-controls{display:flex;align-items:center;justify-self:end;gap:7px}.staff-page-controls button{width:32px;height:32px;padding:0;display:grid;place-items:center;font-size:18px;line-height:1}.staff-page-controls span{white-space:nowrap;margin-inline:4px}.staff-view-dialog{width:min(720px,calc(100vw - 28px));overflow:auto}.staff-view-dialog>.contact-dialog-heading{padding:20px 24px 14px;border-bottom:1px solid #e6ecfa;margin:0}.staff-view-dialog>p,.staff-view-dialog>.feedback{margin:24px}.staff-view-content{display:grid;gap:22px;padding:22px 24px 26px}.staff-view-hero{display:flex;align-items:center;gap:16px;padding:18px;border:1px solid #d8e2ff;border-radius:14px;background:#f8faff}.staff-view-hero .staff-avatar{width:78px;height:78px}.staff-view-hero h3{margin:0 0 5px;font-size:20px}.staff-view-hero p{margin:3px 0;color:#64748b;overflow-wrap:anywhere}.staff-view-content section h3{margin:0 0 12px;font-size:17px}.staff-view-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.staff-view-facts>div,.staff-view-contacts>div{min-width:0;padding:13px 15px;border:1px solid #e1e8f8;border-radius:11px}.staff-view-facts dt,.staff-view-contacts span{display:block;margin-bottom:5px;color:#64748b;font-size:13px}.staff-view-facts dd{margin:0;font-weight:600;overflow-wrap:anywhere}.staff-view-contacts{display:grid;gap:8px}.staff-view-contacts strong{display:block;overflow-wrap:anywhere}.staff-view-contacts small{display:inline-block;margin:8px 0 0 8px;padding:3px 7px;border-radius:999px;background:#eaf0ff;color:#245de0}@media(max-width:700px){.staff-toolbar{flex-wrap:wrap}.staff-filter-panel{flex-basis:100%;order:2}.staff-add-button{order:1;margin-inline-start:auto}.staff-filter-fields{grid-template-columns:1fr}.staff-pagination{grid-template-columns:1fr auto}.staff-page-range{grid-column:1 / -1;grid-row:2;justify-self:center}.staff-view-facts{grid-template-columns:1fr}.staff-view-dialog>.contact-dialog-heading,.staff-view-content{padding-inline:16px}}.unit-types-page{width:100%;display:grid;gap:18px}.unit-type-filter-fields{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;padding:18px 16px}.unit-type-filter-fields label{display:grid;gap:8px;min-width:0;font-size:14px;font-weight:600}.unit-type-filter-fields input,.unit-type-filter-fields select{box-sizing:border-box;width:100%;min-height:42px;padding:8px 12px;border:1px solid #d8e2ff;border-radius:9px;background:#fff;color:#14233d;font:inherit}.unit-types-table{min-width:980px}.unit-types-table th:nth-child(1){width:14%}.unit-types-table th:nth-child(2){width:21%}.unit-types-table th:nth-child(3){width:12%}.unit-types-table th:nth-child(4){width:10%}.unit-types-table th:nth-child(5){width:10%}.unit-types-table th:nth-child(6){width:17%}.unit-types-table code{color:#52617d;font-size:12px}.unit-types-table time{color:#52617d;white-space:nowrap;font-size:13px}.unit-type-actions{display:flex;flex-wrap:nowrap;gap:7px;white-space:nowrap}.unit-type-actions button{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #d8e2ff;border-radius:8px;background:#fff;color:#245de0;font:inherit;cursor:pointer}.unit-type-actions button.danger{color:#a93535}.unit-type-actions button:disabled{opacity:.5;cursor:not-allowed}.unit-type-dialog small{margin-top:-6px;color:#66758d;font-size:12px}.feedback.success{border-color:#bde8cd;background:#effbf4;color:#176b3b}@media(max-width:1150px){.unit-type-filter-fields{grid-template-columns:repeat(3,minmax(170px,1fr))}}@media(max-width:700px){.unit-type-filter-fields{grid-template-columns:1fr}}.schools-page{width:100%;display:grid;gap:18px}.school-details-navigation{display:flex;justify-content:flex-start;margin-block-end:18px}.school-details-back{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid #d8e2ff;border-radius:10px;background:#fff;color:#245de0;font:inherit;font-weight:600;cursor:pointer;transition:background-color .15s,border-color .15s}.school-details-back:hover{background:#edf3ff;border-color:#a8bdff}.school-details-back:focus-visible{outline:3px solid #a8bdff;outline-offset:3px}.school-details-back svg{flex-shrink:0}.school-filter-fields{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;padding:18px 16px}.school-filter-fields label{display:grid;gap:8px;min-width:0;font-size:14px;font-weight:600}.school-filter-fields input,.school-filter-fields select{box-sizing:border-box;width:100%;min-height:42px;padding:8px 12px;border:1px solid #d8e2ff;border-radius:9px;background:#fff;color:#14233d;font:inherit}.schools-table{min-width:1320px}.schools-table td:first-child{min-width:210px}.schools-table td:first-child code,.schools-table td:nth-child(7) small{display:block;margin-top:5px;color:#64748b}.schools-table td:nth-child(3){min-width:220px;white-space:normal}.school-status{display:inline-flex;padding:5px 10px;border-radius:999px;background:#eef2ff;color:#394b83;font-size:12px;font-weight:800;white-space:nowrap}.school-status-active{background:#e4f7ed;color:#157347}.school-status-suspended,.school-status-provisioningfailed,.school-status-closed{background:#fff0f1;color:#b42334}.school-status-approved,.school-status-provisioning{background:#e8f1ff;color:#175cd3}@media(max-width:1180px){.school-filter-fields{grid-template-columns:repeat(2,minmax(180px,1fr))}}@media(max-width:650px){.school-filter-fields{grid-template-columns:1fr}}.systems-page button,.school-contracts-page button{border:1px solid #d5ddec;border-radius:10px;padding:10px 14px;background:#fff;color:#274c9d;font:inherit;font-size:13px;cursor:pointer}.systems-page button:disabled,.school-contracts-page button:disabled{opacity:.5;cursor:not-allowed}.systems-page label,.school-contracts-page label{display:grid;gap:8px;min-width:0;font-size:14px;font-weight:600}.systems-page input:not([type=checkbox]),.systems-page select,.school-contracts-page input,.school-contracts-page select{width:100%;min-width:0;min-height:44px;border:1px solid #cbd5e1;border-radius:10px;padding:10px 12px;color:#253554;background:#fff;font:inherit}.systems-page>label{max-width:420px}.systems-page .contact-group-heading{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.systems-page .unit-type-actions{flex-wrap:wrap;min-width:260px}.system-dialog{width:min(680px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;padding:24px}.system-dialog h3{margin:0 0 22px;font-size:21px}.system-dialog form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.system-dialog form>p,.system-dialog fieldset,.system-dialog form>button{grid-column:1 / -1}.system-dialog fieldset{border:1px solid #d8e1ef;border-radius:12px;padding:16px;display:grid;gap:12px}.system-dialog label:has(input[type=checkbox]){display:flex;align-items:center;gap:10px}.system-dialog input[type=checkbox]{width:18px;height:18px;margin:0}.system-dialog form>button{background:#315ab5;color:#fff;border-color:#315ab5}.system-dialog>button{margin-top:14px;width:100%}.school-contracts-page .dashboard-card{padding:20px;border:1px solid #dfe5ef;border-radius:14px}.school-contracts-page .dashboard-card button{margin-inline-end:8px}.school-contracts-page .unit-type-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr));background:#fff;border-radius:14px}.school-contracts-page .unit-type-filter-fields>p{grid-column:1 / -1}@media(max-width:700px){.system-dialog{padding:18px}.system-dialog form,.school-contracts-page .unit-type-filter-fields{grid-template-columns:1fr}}.school-contracts-page textarea{width:100%;min-height:100px;border:1px solid #cbd5e1;border-radius:10px;padding:12px;font:inherit}.invoice-receipt{border-top:1px solid #dfe5ef;padding-top:12px;margin-top:12px}.catalog-page{min-width:0}.catalog-refresh{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:1px solid #d8e2ff;border-radius:10px;padding:10px 14px;background:#fff;color:#245de0;font:inherit;cursor:pointer}.catalog-refresh:disabled{opacity:.55;cursor:default}.catalog-systems-table{min-width:760px}.catalog-plans-panel{display:grid;gap:16px;border-top:1px solid #e1e8f8;padding-top:22px;min-width:0}.catalog-plans-panel h3{margin:0;font-size:19px}.catalog-plan-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.catalog-plan-toolbar p{margin:0;margin-inline-end:auto;color:#64748b}.catalog-plan-toolbar button,.catalog-plans-panel .unit-type-actions button{display:inline-flex;align-items:center;gap:6px;padding:10px 12px;border:1px solid #d8e2ff;border-radius:9px;background:#fff;color:#245de0;font:inherit;cursor:pointer}.catalog-plans-panel .unit-type-actions{display:flex;gap:7px;flex-wrap:wrap;min-width:280px}.catalog-page button:disabled{opacity:.55;cursor:default}.catalog-dialog{width:min(720px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto}.catalog-dialog-heading{padding:18px 24px;margin:0;border-bottom:1px solid #e6ecfa;align-items:center}.catalog-dialog>.feedback{margin:18px 24px 0}.catalog-dialog .catalog-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-block:18px}.catalog-form>label{display:grid;align-content:start;gap:8px;min-width:0}.catalog-form input:not([type=checkbox]),.catalog-form select{box-sizing:border-box;min-width:0;min-height:44px;background:#fff}.catalog-form small,.catalog-form-hint{color:#64748b;font-size:12px;font-weight:400;line-height:1.7}.catalog-form>p,.catalog-form>fieldset,.catalog-form>.contact-dialog-actions{grid-column:1 / -1}.catalog-form .catalog-capabilities{max-height:220px;overflow:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:1px solid #d8e2ff;border-radius:12px;padding:16px;margin:0}.catalog-capabilities legend{padding-inline:6px;font-weight:700;font-size:14px}.catalog-capabilities label,.catalog-form>label:has(input[type=checkbox]){display:flex;align-items:flex-start;gap:9px;font-size:13px;font-weight:400}.catalog-capabilities>p{grid-column:1 / -1}.catalog-form input[type=checkbox]{width:17px;height:17px;padding:0;margin:2px 0 0;flex:none;accent-color:#2f6bff}.catalog-form .contact-dialog-actions{border-top:1px solid #e6ecfa;padding-top:18px;margin-top:0}@media(max-width:700px){.catalog-dialog .catalog-form,.catalog-form .catalog-capabilities{grid-template-columns:1fr}.catalog-dialog-heading,.catalog-dialog .catalog-form{padding-inline:16px}}.school-contracts-page .contract-heading{align-items:center}.school-contracts-page .contract-heading h2{margin:0;font-size:23px}.school-contracts-page .contract-heading>button{flex:none}.school-contracts-page .contract-tabs{width:100%;min-width:0;box-sizing:border-box;background:#fff}.school-contracts-page .contract-tabs button{white-space:nowrap}.school-contracts-page>[role=tabpanel]:not([hidden]){display:grid;gap:18px;min-width:0}.school-contracts-page>[role=tabpanel]:focus-visible{outline:2px solid #8bb2ff;outline-offset:5px;border-radius:10px}.school-contracts-page .contract-empty{margin:0;color:#64748b;padding:18px 0}.school-contracts-page .contract-tabs button:focus-visible{outline:2px solid #2f6bff;outline-offset:1px}@media(max-width:650px){.school-contracts-page .contract-heading{align-items:start}.school-contracts-page .contract-heading h2{font-size:20px}}
