.plat-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem}.plat-nav{display:flex;flex-wrap:wrap;gap:.5rem;margin-block:.5rem 1rem}.plat-nav button{flex:1 1 auto;font:inherit;padding-block:.375rem;padding-inline:.875rem;cursor:pointer;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text)}.plat-nav button[aria-current=page]{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.plat-screen select,.plat-card select,.plat-create select{font:inherit;padding-block:.4rem;padding-inline:.5rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text)}.plat-screen{display:flex;flex-direction:column;gap:.75rem;min-width:0}.plat-screen h2,.plat-screen h3,.plat-screen h4{margin-block:.25rem}.plat-sr{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.plat-list{display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr)}.plat-row{display:flex;flex-direction:column;gap:.5rem;min-width:0}.plat-row-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}.plat-row-head h2,.plat-row-head h3,.plat-row-head h4{margin:0}.plat-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem;margin:0}.plat-facts div{min-width:0}.plat-facts dt{font-size:.8rem;opacity:.75}.plat-facts dd{margin:0;overflow-wrap:anywhere}.plat-chip{display:inline-block;padding-block:.1rem;padding-inline:.5rem;border-radius:999px;font-size:.8rem;border:1px solid currentColor}.plat-chip-active{color:#1b7f3b}.plat-chip-trial{color:#1d5fbf}.plat-chip-grace,.plat-chip-warn{color:#a15c00}.plat-chip-suspended,.plat-chip-archived{color:#b3261e}.plat-filters{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:end;border:1px solid rgba(127,127,127,.4);border-radius:8px;padding:.5rem .75rem;min-width:0}.plat-filters label{display:flex;flex-direction:column;gap:.25rem}.plat-check{flex-direction:row!important;align-items:center;gap:.4rem!important}.plat-actions{display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr)}.plat-action{border-block-start:1px solid rgba(127,127,127,.3);padding-block-start:.5rem;min-width:0}.plat-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.card button.plat-danger:not(.link){background:none;color:var(--color-error);border:1px solid var(--color-error)}.plat-confirm{margin-block-start:.5rem;padding:.5rem .75rem;border:1px solid var(--color-error);border-radius:var(--radius)}.plat-ok{color:#1b7f3b}.plat-modules{margin:0;padding-inline-start:1.25rem}.card .stats button.plat-stat-link{font:inherit;text-align:start;cursor:pointer;padding:.5rem .75rem;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius)}.card .stats button.plat-stat-link:hover{border-color:var(--color-primary)}.plat-code-value{font-size:1.5rem;letter-spacing:.1em;text-align:center;margin-block:.5rem}.plat-error-msg{overflow-wrap:anywhere;flex:1 1 12rem;text-align:start}.plat-bulk{display:flex;flex-wrap:wrap;gap:.5rem;align-items:end}.plat-bulk label,.plat-error label,.plat-screen>label{display:flex;flex-direction:column;gap:.25rem;max-inline-size:20rem}@media (min-width: 720px){.plat-facts{grid-template-columns:repeat(4,minmax(0,1fr))}.plat-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.plat-nav button{flex:0 0 auto}}.plat-screen>button,.plat-bulk button{font:inherit;padding-block:.5rem;padding-inline:1rem;border:0;border-radius:var(--radius);cursor:pointer;background:var(--color-primary);color:var(--color-on-primary);align-self:flex-start}.plat-screen>button:disabled,.plat-bulk button:disabled{opacity:.6;cursor:not-allowed}.plat-facts dd.plat-date{white-space:nowrap}.plat-history{margin:0;padding-inline-start:1.25rem;display:flex;flex-direction:column;gap:.35rem}.plat-history li{overflow-wrap:anywhere}.plat-history .plat-date{white-space:nowrap}.plat-note{font-style:italic}.plat-warn{color:#a15c00}.dt{display:grid;gap:var(--space-1);min-inline-size:0}.dt-bar{display:flex;flex-wrap:wrap;gap:var(--space-1);align-items:end}.dt-bar label{display:grid;gap:.25rem;font-size:.875rem;color:var(--color-muted)}.dt-bar input,.dt-bar select{min-block-size:2.5rem;padding-inline:.5rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit}.dt-bar input[type=search]{min-inline-size:min(16rem,100%)}.dt button{min-block-size:2.5rem;min-inline-size:2.5rem;padding-inline:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font:inherit;cursor:pointer}.dt button:disabled{opacity:.5;cursor:default}.dt :focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.dt-scroll{overflow-x:auto;max-inline-size:100%;max-block-size:70vh;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.dt-table{inline-size:100%;border-collapse:collapse}.dt-table caption{text-align:start;padding:.5rem;font-weight:600}.dt-table th,.dt-table td{padding:.5rem .75rem;text-align:start;border-block-end:1px solid var(--color-border);vertical-align:middle}.dt-table th{position:sticky;inset-block-start:0;background:var(--color-surface);white-space:nowrap;z-index:1}.dt-table .dt-end{text-align:end}.dt-sort{border:0!important;background:transparent!important;padding:0!important;min-block-size:2rem!important;font-weight:600!important;display:inline-flex;gap:.25rem;align-items:center}.dt-pager{display:flex;flex-wrap:wrap;gap:var(--space-1);align-items:center;justify-content:space-between}.dt-pager-nav{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center}.dt-status{margin:0;color:var(--color-muted)}.dt-error{color:var(--color-error)}.dt-scroll,.role-scroll{background:linear-gradient(to right,var(--color-surface) 30%,transparent) left center / 2rem 100% no-repeat local,linear-gradient(to left,var(--color-surface) 30%,transparent) right center / 2rem 100% no-repeat local,radial-gradient(farthest-side at 0 50%,rgb(0 0 0 / .28),transparent) left center / .75rem 100% no-repeat scroll,radial-gradient(farthest-side at 100% 50%,rgb(0 0 0 / .28),transparent) right center / .75rem 100% no-repeat scroll,var(--color-surface)}.gr-filters{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-block:var(--space-3)}.gr-filters label{display:flex;flex-direction:column;gap:var(--space-1);min-inline-size:9rem;flex:1 1 9rem}.gr-filters select{min-block-size:44px}.gr-lock,.gr-offline{margin-block:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.gr-scroll{overflow:auto;max-block-size:70vh;border:1px solid var(--color-border);border-radius:var(--radius)}.gr-table{border-collapse:separate;border-spacing:0;inline-size:100%;min-inline-size:max-content}.gr-table th,.gr-table td{padding:var(--space-1) var(--space-2);border-block-end:1px solid var(--color-border);text-align:start;vertical-align:top;background:var(--color-bg)}.gr-table thead th{position:sticky;inset-block-start:0;z-index:2;background:var(--color-surface)}.gr-table .gr-name{position:sticky;inset-inline-start:0;z-index:1;min-inline-size:9rem;border-inline-end:1px solid var(--color-border);font-weight:400}.gr-table thead .gr-name{z-index:3}.gr-sr{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.gr-num{inline-size:2.5rem;color:var(--color-muted)}.gr-student,.gr-code,.gr-col span,.gr-label,.gr-flag,.gr-state{display:block}.gr-code,.gr-max,.gr-label{color:var(--color-muted);font-size:.85em}.gr-col{min-inline-size:5.5rem}.gr-input{box-sizing:border-box;inline-size:5rem;min-block-size:44px;padding-inline:var(--space-2);text-align:center;font:inherit;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text)}.gr-bad .gr-input{border-color:var(--color-error);border-width:2px}.gr-state{max-inline-size:9rem;font-size:.85em;color:var(--color-muted)}.gr-state-invalid,.gr-state-rejected,.gr-state-conflict{color:var(--color-error)}.gr-total strong{font-size:1.05em}.gr-low strong{color:var(--color-error);text-decoration:underline wavy}.gr-flag{color:var(--color-error);font-weight:700}.gr-locked{color:var(--color-muted)}.gr-input:focus-visible,.gr-scroll:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.sg-subject{margin-block:var(--space-3)}.sg-summary dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--space-2);margin:0}.sg-summary dt{color:var(--color-muted);font-size:.85em}.sg-summary dd{margin:0;font-weight:700}:root{--font-ui: "IBM Plex Sans Arabic", "Noto Sans Arabic", "Segoe UI", Tahoma, "Geeza Pro", "Arial Unicode MS", system-ui, sans-serif;--color-bg: #f7f8fa;--color-surface: #ffffff;--color-text: #1d2433;--color-muted: #5b6b82;--color-primary: #1149a3;--color-primary-hover: #0c3372;--color-accent: #6b8ec6;--color-on-primary: #ffffff;--color-border: #e2e8f0;--color-banner-bg: #fff4d6;--color-banner-text: #5c3d00;--radius: 10px;--space-1: .5rem;--space-2: 1rem;--space-3: 1.5rem;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--color-bg: #0f172a;--color-surface: #1e293b;--color-text: #f1f5f9;--color-muted: #94a3b8;--color-primary: #8ab4f8;--color-primary-hover: #aecbfa;--color-accent: #6b8ec6;--color-on-primary: #0b1730;--color-border: #334155;--color-banner-bg: #3a2e0a;--color-banner-text: #fde7a5}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-block-size:100%}body{font-family:var(--font-ui);background:var(--color-bg);color:var(--color-text);line-height:1.6}.app-shell{min-block-size:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding-block:var(--space-1);padding-inline:var(--space-2);background:var(--color-surface);border-block-end:1px solid var(--color-border)}.app-brand{min-inline-size:0}.app-title{margin:0;font-size:1.25rem}.app-tagline{margin:0;color:var(--color-muted);font-size:.875rem}.lang-toggle{font:inherit;min-block-size:2.75rem;padding-block:.375rem;padding-inline:.875rem;border:1px solid var(--color-primary);border-radius:var(--radius);background:var(--color-primary);color:var(--color-on-primary);cursor:pointer;white-space:nowrap}.lang-toggle:focus-visible{outline:2px solid var(--color-text);outline-offset:2px}.app-main{flex:1;inline-size:100%;max-inline-size:60rem;margin-inline:auto;padding:var(--space-3) var(--space-2)}.home{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3);text-align:start}.home h2{margin-block-start:0}.home-status{color:var(--color-muted);margin-block-end:0}:root{--color-error: #b3261e}@media (prefers-color-scheme: dark){:root{--color-error: #f2b8b5}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-3);margin-block-end:var(--space-2)}.card h2{margin-block-start:0}.login{max-inline-size:28rem;margin-inline:auto}.form{display:flex;flex-direction:column;gap:var(--space-2)}.form label{display:flex;flex-direction:column;gap:.25rem}:where(input:not([type=checkbox]):not([type=radio]),select,textarea){font:inherit;font-size:1rem;min-block-size:2.75rem;max-inline-size:100%;padding-block:.375rem;padding-inline:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text)}.form input{font:inherit;padding-block:.5rem;padding-inline:.75rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text)}.card button:not(.link){font:inherit;padding-block:.5rem;padding-inline:1rem;border:0;border-radius:var(--radius);background:var(--color-primary);color:var(--color-on-primary);cursor:pointer}.card button:disabled{opacity:.6;cursor:progress}button.link{font:inherit;background:none;border:0;padding:0;margin-block-start:var(--space-1);color:var(--color-primary);cursor:pointer;text-decoration:underline;text-align:start}.muted{color:var(--color-muted)}.error{color:var(--color-error);margin-block-end:0}.mfa-qr{display:block;inline-size:12rem;block-size:12rem;margin-block:var(--space-2);margin-inline:auto;background:#fff}.notices ul{padding-inline-start:var(--space-2)}.notices li{margin-block-end:var(--space-1)}.card button.secondary{background:none;color:var(--color-primary);border:1px solid var(--color-primary);margin-inline-start:var(--space-1)}.dialog-backdrop{position:fixed;inset:0;display:grid;place-items:center;background:#00000073;padding:var(--space-2)}.dialog{inline-size:min(28rem,100%)}.dashboard h2{margin-block-start:0}.dashboard h3{margin-block:0 var(--space-1);font-size:1.05rem}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--space-2)}.stat{display:flex;flex-direction:column}.stat-label{color:var(--color-muted);font-size:.875rem}.stat-value{font-size:1.25rem;font-weight:600;font-variant-numeric:tabular-nums}.alerts{border-inline-start:4px solid var(--color-error)}.alerts p{margin:0}.tabs{display:flex;flex-wrap:wrap;gap:var(--space-1);margin-block-end:var(--space-2)}.tabs button{font:inherit;padding-block:.375rem;padding-inline:.875rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);cursor:pointer}.tabs button[aria-pressed=true]{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-primary)}.card .tabs button{min-block-size:2.75rem;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.card .tabs button[aria-pressed=true]{border-color:var(--color-primary);border-block-end:4px solid var(--color-text);background:var(--color-primary);color:var(--color-on-primary);font-weight:700;text-decoration:underline;text-underline-offset:.25em}.switch{display:flex;align-items:center;gap:var(--space-1);font-weight:600}.switch input{inline-size:1.25rem;block-size:1.25rem}.dup-list{list-style:none;padding:0}.dup-row{border-block-start:1px solid var(--color-border);padding-block:var(--space-1)}.dup-rule{color:var(--color-muted);font-size:.875rem}.dup-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:var(--space-2)}.dup-side{display:flex;flex-direction:column}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.card button:not(.link):hover,.lang-toggle:hover{background:var(--color-primary-hover)}.school-shell{min-block-size:100vh;display:flex;flex-direction:column}.shell-header{position:sticky;inset-block-start:0;z-index:20;display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-1) var(--space-2);padding-block:var(--space-1);padding-inline:var(--space-2);background:var(--color-surface);border-block-end:1px solid var(--color-border)}.shell-school{flex:1 1 10rem;min-inline-size:0}.shell-brand{margin:0;color:var(--color-muted);font-size:.75rem}.shell-school-name{margin:0;font-size:1.1rem;overflow-wrap:anywhere}.shell-user{display:flex;flex-direction:column;min-inline-size:0;line-height:1.3}.shell-user-name{font-weight:600;overflow-wrap:anywhere}.shell-user-role{color:var(--color-muted);font-size:.8125rem}.shell-status{display:flex;align-items:center;color:var(--color-muted);font-size:.8125rem}.menu-button,.shell-signout{font:inherit;min-block-size:2.75rem;padding-block:.375rem;padding-inline:.875rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);cursor:pointer;white-space:nowrap}.menu-button:hover,.shell-signout:hover{border-color:var(--color-primary)}.shell-body{flex:1;display:flex;align-items:stretch;min-inline-size:0}.shell-main{flex:1;min-inline-size:0;padding:var(--space-3) var(--space-2)}.sidebar{flex:0 0 15rem;inline-size:15rem;display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);background:var(--color-surface);border-inline-end:1px solid var(--color-border);overflow-y:auto}.sidebar-section{display:flex;flex-direction:column}.sidebar-bottom{margin-block-start:auto;border-block-start:1px solid var(--color-border);padding-block-start:var(--space-1)}.sidebar-group{margin:var(--space-1) 0 .25rem;padding-inline:.75rem;color:var(--color-muted);font-size:.75rem;font-weight:600}.sidebar-list{list-style:none;margin:0;padding:0}.sidebar-link{display:flex;align-items:center;min-block-size:2.75rem;padding-block:.5rem;padding-inline:.75rem;border-radius:var(--radius);color:var(--color-text);text-decoration:none;overflow-wrap:anywhere}.sidebar-link:hover{background:var(--color-bg)}.sidebar-link[aria-current=page]{background:var(--color-primary);color:var(--color-on-primary);font-weight:600}.sidebar-backdrop,.sidebar-close,.menu-button{display:none}@media (max-width: 900px){.menu-button{display:inline-block}.sidebar{position:fixed;inset-block:0;inset-inline-start:0;z-index:40;inline-size:min(18rem,85vw);visibility:hidden;box-shadow:0 0 1.5rem #0000004d}.sidebar.open{visibility:visible}.sidebar-close{display:block;margin-block-end:var(--space-1);margin-inline-start:auto;min-block-size:2.75rem;min-inline-size:2.75rem;font:inherit;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);cursor:pointer}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:30;background:#00000073}}.state-banner{margin-block:0 var(--space-2);padding-block:var(--space-1);padding-inline:var(--space-2);border-radius:var(--radius);border-inline-start:4px solid var(--color-banner-text);background:var(--color-banner-bg);color:var(--color-banner-text)}.profile-facts{display:grid;grid-template-columns:max-content 1fr;gap:.25rem var(--space-2);margin-block:0 var(--space-2)}.profile-facts dt{color:var(--color-muted)}.profile-facts dd{margin:0;overflow-wrap:anywhere}.refusal{max-inline-size:32rem;margin-inline:auto}.refusal-link{display:inline-block;margin-inline-end:var(--space-2);color:var(--color-primary);font-weight:600}@media (max-width: 600px){.shell-header{position:static;padding-inline:var(--space-1)}.shell-school{order:1}.shell-header .lang-toggle{order:2}.shell-user{flex:0 1 calc(100% - 7rem);order:5}.shell-signout{order:6}}.refusal p:first-child{margin-block-start:0}.card.refusal button.secondary{margin-inline-start:0}
