@import url("https://fonts.googleapis.com/css2?family=Tajawal:wght@400;500;600;700;800&display=swap");
:root{--primary:#3157A4;--primary-dark:#234486;--secondary:#20A6A1;--accent:#F3A33C;--success:#2F9E68;--danger:#D9534F;--ink:#24324A;--muted:#68758A;--soft:#F6F8FC;--line:#E2E7F0}
*{box-sizing:border-box}body{margin:0;font-family:"Tajawal","Segoe UI",Tahoma,sans-serif;color:var(--ink);background:var(--soft)}
.auth-page{min-height:100vh;padding:24px;display:grid;place-items:center;background:radial-gradient(circle at 10% 10%,#e3f3f5 0,transparent 38%),linear-gradient(135deg,#f6fbfc,#edf5f6)}
.auth-shell{width:min(1180px,100%);min-height:720px;display:grid;grid-template-columns:1.05fr .95fr;background:#fff;border-radius:32px;overflow:hidden;box-shadow:0 28px 80px rgba(22,50,61,.14);border:1px solid rgba(255,255,255,.8)}
.brand-panel{padding:64px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:linear-gradient(155deg,rgba(35,68,134,.98),rgba(49,87,164,.94)),radial-gradient(circle at 80% 15%,#20A6A1,transparent 45%);position:relative;overflow:hidden}
.brand-panel:after{content:"";position:absolute;width:380px;height:380px;border:1px solid rgba(255,255,255,.16);border-radius:50%;left:-160px;bottom:-120px;box-shadow:0 0 0 55px rgba(255,255,255,.04),0 0 0 110px rgba(255,255,255,.03)}
.brand-badge{width:68px;height:68px;border-radius:22px;display:grid;place-items:center;font-size:34px;font-weight:800;color:#123f4d;background:linear-gradient(145deg,#fff4d0,#d9a441);box-shadow:0 14px 35px rgba(0,0,0,.18)}
.brand-badge.small{width:44px;height:44px;border-radius:14px;font-size:23px}.eyebrow{margin-top:32px;color:#bee2e8;font-weight:700}.brand-panel h1{font-size:46px;line-height:1.35;margin:12px 0 18px}.brand-panel p{font-size:18px;line-height:1.9;color:#e5f2f4;max-width:540px}.feature-list{display:grid;gap:16px;font-size:16px;position:relative;z-index:1}.feature-list div{display:flex;gap:12px;align-items:center}.feature-list span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.14);color:#f9d582}.brand-footer{color:#b9d7dd;font-size:14px;position:relative;z-index:1}
.login-panel{display:grid;place-items:center;padding:54px;background:#fff}.login-card{width:min(440px,100%)}.mobile-brand{display:none;align-items:center;gap:12px;margin-bottom:28px}.welcome-chip{display:inline-block;background:#e8f4f6;color:var(--primary);padding:7px 13px;border-radius:999px;font-size:13px;font-weight:700}.login-heading h2{font-size:36px;margin:14px 0 8px}.login-heading p{color:var(--muted);margin-bottom:30px}.form-label{font-weight:700;color:#29444f}.form-control{height:54px;border-radius:15px;border:1px solid var(--line);padding-inline:48px 16px;background:#fbfdfe}.form-control:focus{border-color:#55a5b5;box-shadow:0 0 0 .24rem rgba(21,94,117,.11)}.input-wrap{position:relative}.input-icon{position:absolute;right:17px;top:50%;transform:translateY(-50%);color:#77909a;z-index:2}.password-toggle{position:absolute;left:12px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--primary);font-size:13px;font-weight:700}.muted-link{color:var(--primary);text-decoration:none;font-size:14px}.login-btn{height:55px;border-radius:16px;border:0;background:linear-gradient(135deg,var(--primary),var(--secondary));font-weight:800;font-size:17px;box-shadow:0 12px 26px rgba(21,94,117,.22)}.login-btn:hover{background:linear-gradient(135deg,var(--primary-dark),var(--primary))}.register-line{text-align:center;margin-top:20px;color:var(--muted)}.register-line a{color:var(--primary);font-weight:800;text-decoration:none}.demo-box{margin-top:28px;border:1px dashed #c4d7dc;background:#f7fbfc;border-radius:16px;padding:14px 18px;display:grid;gap:4px;font-size:13px;color:#627982}.demo-box strong{color:#29444f}.simple-auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#edf6f7,#f9fbfc)}.register-card{width:min(720px,100%);background:white;padding:40px;border-radius:28px;box-shadow:0 24px 70px rgba(22,50,61,.12)}.register-card h2{text-align:center}.back-link{text-decoration:none;color:var(--primary)}.dashboard-placeholder{max-width:1100px;margin:70px auto;padding:0 24px}.dashboard-placeholder h1{margin-top:12px}.dash-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px;display:flex;flex-direction:column;gap:12px;box-shadow:0 10px 35px rgba(22,50,61,.06)}.dash-card span{color:var(--primary);font-size:22px;font-weight:800}
@media(max-width:900px){.auth-page{padding:0}.auth-shell{min-height:100vh;border-radius:0;display:block}.brand-panel{display:none}.login-panel{min-height:100vh;padding:28px}.mobile-brand{display:flex}.login-heading h2{font-size:30px}}@media(max-width:520px){.login-panel{padding:22px}.register-card{padding:25px}.d-flex.align-items-center.justify-content-between{gap:12px;align-items:flex-start!important;flex-direction:column}.auth-shell{border:0}}

/* Admin workspace */
.admin-body{background:#f3f7f8}.admin-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.admin-sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,#243E7A,#3157A4);padding:24px 18px;color:#fff;display:flex;flex-direction:column;z-index:20}.admin-brand{display:flex;align-items:center;gap:12px;padding:4px 8px 28px;border-bottom:1px solid rgba(255,255,255,.12)}.admin-brand strong,.admin-brand small{display:block}.admin-brand small{color:#bcd8df;margin-top:3px}.admin-sidebar nav{display:grid;gap:7px;margin-top:25px}.admin-sidebar nav a{color:#dcecef;text-decoration:none;padding:13px 15px;border-radius:13px;font-weight:700}.admin-sidebar nav a:hover{background:rgba(255,255,255,.11);color:#fff}.admin-sidebar form{margin-top:auto}.sidebar-logout{width:100%;border:1px solid rgba(255,255,255,.18);background:transparent;color:#fff;padding:11px;border-radius:12px}.admin-main{min-width:0}.admin-topbar{min-height:112px;background:#fff;border-bottom:1px solid var(--line);padding:25px 34px;display:flex;align-items:center;gap:18px}.admin-topbar h1{font-size:26px;margin:0 0 5px}.admin-topbar p{margin:0;color:var(--muted)}.admin-user{margin-inline-start:auto;background:#eef5f6;padding:9px 13px;border-radius:12px;font-size:13px}.mobile-menu{display:none;border:0;background:#edf5f6;border-radius:10px;padding:8px 11px}.admin-content{padding:30px 34px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:24px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;text-decoration:none;color:var(--ink);box-shadow:0 8px 25px rgba(22,50,61,.05)}.metric-card span,.metric-card small{display:block;color:var(--muted)}.metric-card strong{font-size:35px;display:block;margin:8px 0;color:var(--primary)}.metric-card.warning strong{color:#a46814}.content-card{background:#fff;border:1px solid var(--line);border-radius:21px;padding:22px;box-shadow:0 8px 28px rgba(22,50,61,.045)}.card-head,.page-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.card-head h2{font-size:20px;margin:0 0 5px}.card-head p{margin:0;color:var(--muted)}.page-actions{justify-content:flex-end}.admin-table{margin:0;vertical-align:middle}.admin-table th{color:#657a83;font-size:13px;font-weight:700;border-bottom:1px solid var(--line);padding:14px}.admin-table td{padding:16px 14px;border-color:#edf2f3}.actions-cell{display:flex;gap:7px;justify-content:flex-end}.actions-cell form{display:inline}.status-pill{display:inline-block;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800}.status-pill.active{background:#e7f6ee;color:#197245}.status-pill.inactive{background:#f1f3f4;color:#68787e}.status-pill.pending{background:#fff3dc;color:#966014}.empty-state{text-align:center;padding:38px;color:var(--muted)}.form-card{max-width:900px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid .full{grid-column:1/-1}.form-card .form-control,.form-card .form-select{height:50px;border-radius:12px;padding:10px 13px}.sticky-actions{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:18px 0 0;margin-top:28px;display:flex;justify-content:flex-end;gap:10px}.filter-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}.filter-tabs a{text-decoration:none;color:#61777f;background:#e9f0f2;padding:9px 14px;border-radius:999px;font-weight:700}.filter-tabs a.active{background:var(--primary);color:#fff}.review-banner{display:flex;align-items:center;gap:15px;background:linear-gradient(135deg,#164e60,#24788b);color:#fff;border-radius:20px;padding:20px 24px;margin-bottom:18px;max-width:900px}.review-banner h2{font-size:21px;margin:0 0 4px}.review-banner p{margin:0;color:#d8ebef}.avatar-circle{width:52px;height:52px;border-radius:16px;background:#f1ce74;color:#174655;display:grid;place-items:center;font-size:23px;font-weight:800}.activation-note{background:#f2f8f9;border:1px solid #d9e9ec;border-radius:14px;padding:15px;margin-top:22px}.activation-note p{margin:5px 0 0;color:var(--muted)}
@media(max-width:1000px){.metric-grid{grid-template-columns:repeat(2,1fr)}.admin-shell{grid-template-columns:220px 1fr}}@media(max-width:760px){.admin-shell{display:block}.admin-sidebar{position:fixed;right:-280px;width:260px;transition:.2s}.sidebar-open .admin-sidebar{right:0}.mobile-menu{display:block}.admin-topbar{padding:18px 20px}.admin-user{display:none}.admin-content{padding:20px 14px}.metric-grid{grid-template-columns:1fr 1fr;gap:10px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.actions-cell{min-width:150px}.card-head{align-items:flex-start;flex-direction:column}}@media(max-width:460px){.metric-grid{grid-template-columns:1fr}.admin-topbar h1{font-size:21px}}

/* Academic calendar engine */
.term-date-card{border:1px solid var(--line);background:#f8fbfc;border-radius:17px;padding:20px}.term-date-card h3{font-size:18px;margin:0 0 16px;color:var(--primary)}.calendar-warning{padding:13px 16px;background:#fff7e8;border:1px solid #efd6a1;border-radius:12px;color:#80571b}.calendar-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.calendar-metrics>div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.calendar-metrics span,.calendar-metrics strong{display:block}.calendar-metrics span{color:var(--muted);font-size:13px}.calendar-metrics strong{font-size:30px;color:var(--primary);margin-top:7px}.calendar-metrics .holiday strong{color:#a46814}.calendar-legend{display:flex;gap:18px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);padding:13px 16px;border-radius:15px;margin-bottom:22px}.calendar-legend span{display:flex;align-items:center;gap:7px;font-size:13px}.calendar-legend i{width:14px;height:14px;border-radius:4px}.legend-school{background:#e9f7ef;border:1px solid #9bd2ae}.legend-holiday{background:#fff0d2;border:1px solid #e6b961}.legend-weekend{background:#eef1f2;border:1px solid #cbd4d7}.legend-full{background:#fff7e8;border:2px solid #d9a441}.term-section{margin-bottom:30px}.term-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.term-heading h2{font-size:22px;margin:0 0 4px}.term-heading p{margin:0;color:var(--muted)}.term-heading>span{background:#e7f3f5;color:var(--primary);padding:8px 12px;border-radius:999px;font-weight:700}.weeks-stack{display:grid;gap:14px}.week-card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:16px;box-shadow:0 6px 22px rgba(22,50,61,.04)}.week-card.full-holiday-week{background:#fffaf1;border:2px solid #e1b65b}.week-card header{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.week-card header>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.week-card header small{color:var(--muted)}.full-week-badge{background:#f4d993;color:#724b0b;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}.effective-week-badge{background:#e8f5ee;color:#1d7047;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800}.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.calendar-day{border-radius:13px;padding:10px 6px;min-height:92px;border:1px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;transition:.15s}.calendar-day:hover{transform:translateY(-2px);box-shadow:0 8px 16px rgba(22,50,61,.08)}.calendar-day span,.calendar-day small{font-size:11px}.calendar-day strong{font-size:23px;margin:3px 0}.school-day{background:#eef9f2;border-color:#badfc7;color:#17643e}.holiday-day{background:#fff0d2;border-color:#e8bd69;color:#80571b}.weekend-day{background:#f0f2f3;border-color:#d3dbde;color:#7a878c}.modal-body .form-control{padding:10px 13px;height:auto}
@media(max-width:1000px){.calendar-metrics{grid-template-columns:repeat(2,1fr)}.days-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:600px){.calendar-metrics{grid-template-columns:1fr 1fr}.days-grid{grid-template-columns:repeat(2,1fr)}.week-card header,.term-heading{align-items:flex-start;flex-direction:column;gap:8px}}

/* Academic calendar table view v0.2.2 */
.calendar-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 6px 22px rgba(22,50,61,.04)}
.calendar-weeks-table{width:100%;min-width:1180px;border-collapse:separate;border-spacing:0;text-align:center}
.calendar-weeks-table th,.calendar-weeks-table td{border-bottom:1px solid var(--line);border-left:1px solid var(--line);padding:8px;vertical-align:middle}
.calendar-weeks-table thead th{position:sticky;top:0;z-index:3;background:#f4f8f9;color:var(--primary);font-size:13px;padding:13px 8px}
.calendar-weeks-table tbody tr:last-child th,.calendar-weeks-table tbody tr:last-child td{border-bottom:0}
.calendar-weeks-table .sticky-week-col{position:sticky;right:0;z-index:2;min-width:155px;background:#fff;box-shadow:-5px 0 10px rgba(22,50,61,.05)}
.calendar-weeks-table thead .sticky-week-col{z-index:4;background:#edf5f6}
.week-info-cell strong,.week-info-cell small{display:block}.week-info-cell strong{color:var(--primary);font-size:13px}.week-info-cell small{color:var(--muted);font-size:11px;margin-top:3px}
.day-table-cell{padding:0!important;min-width:112px}.calendar-day-table-button{width:100%;min-height:76px;border:0;background:transparent;padding:9px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:inherit;transition:.15s}
.calendar-day-table-button:hover{filter:brightness(.97);box-shadow:inset 0 0 0 2px rgba(17,103,110,.22)}.calendar-day-table-button strong{font-size:15px}.calendar-day-table-button span{font-size:11px;line-height:1.3;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.day-table-cell.school-day{background:#eef9f2;color:#17643e}.day-table-cell.holiday-day{background:#fff0d2;color:#80571b}.day-table-cell.weekend-day{background:#f0f2f3;color:#7a878c}.unavailable-day{background:#fafafa;color:#adb5b8}
.school-days-count strong{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:50%;background:#e8f5ee;color:#1d7047}
.status-pill{display:inline-block;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.status-pill.normal-week{background:#e8f5ee;color:#1d7047}.status-pill.partial-week{background:#fff0d2;color:#80571b}.status-pill.full-holiday{background:#f4d993;color:#724b0b}
.full-holiday-row th,.full-holiday-row td{border-top:2px solid #dfb050;border-bottom:2px solid #dfb050}.full-holiday-row .sticky-week-col{background:#fff8e9}.full-holiday-row .week-info-cell strong{color:#80571b}
@media(max-width:700px){.calendar-table-wrap{border-radius:14px}.calendar-weeks-table{min-width:1080px}.calendar-weeks-table .sticky-week-col{min-width:135px}.day-table-cell{min-width:105px}}

/* Muallim brand identity v0.2.3 */
.brand-logo-wrap{position:relative;z-index:2}.brand-logo{width:150px;height:112px;object-fit:cover;object-position:center;border-radius:24px;box-shadow:0 18px 45px rgba(0,0,0,.22)}.mobile-brand-logo{width:62px;height:48px;object-fit:cover;border-radius:14px}.mobile-brand small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.admin-brand-logo{width:54px;height:43px;object-fit:cover;border-radius:13px;box-shadow:0 8px 18px rgba(0,0,0,.18)}.btn-primary{--bs-btn-bg:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-bg:var(--primary-dark);--bs-btn-hover-border-color:var(--primary-dark)}.btn-outline-primary{--bs-btn-color:var(--primary);--bs-btn-border-color:var(--primary);--bs-btn-hover-bg:var(--primary);--bs-btn-hover-border-color:var(--primary)}.alert-success{background:#EAF7F0;border-color:#BFE3CF;color:#226B4A}.content-card,.metric-card,.calendar-table-wrap{box-shadow:0 10px 30px rgba(49,87,164,.07)}.metric-card strong,.calendar-metrics strong{color:var(--primary)}.welcome-chip{background:#EAF0FF;color:var(--primary)}

.stage-order{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:.65rem;background:rgba(49,87,164,.1);color:var(--brand-primary,#3157A4);font-weight:700}.code-badge{display:inline-block;padding:.3rem .55rem;border-radius:.5rem;background:#eef2f8;color:#475569;font-family:monospace;font-weight:700;direction:ltr}.form-grid-wide{grid-column:1/-1}
.department-selector{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.65rem;padding:1rem;border:1px solid var(--border-color,#e2e7f0);border-radius:14px;background:#f8fafc;max-height:280px;overflow:auto}.department-check{display:flex;align-items:center;gap:.55rem;padding:.7rem .8rem;background:#fff;border:1px solid #e5eaf2;border-radius:10px;cursor:pointer}.department-check:has(input:checked){border-color:#3157a4;background:#eef3ff}.department-check input{width:18px;height:18px}

/* Student attendance v0.3.9 */
.attendance-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.date-navigation{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.attendance-date-form{display:flex;flex-direction:column;gap:5px}.attendance-date-form label{font-size:12px;color:var(--muted);font-weight:700}.attendance-date-form .form-control{min-width:165px}.attendance-day-meta{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.attendance-day-meta strong{font-size:18px;color:var(--text)}.attendance-day-meta small{color:var(--muted)}.calendar-state{padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800}.calendar-state.is-school-day{background:#e8f5ee;color:#1d7047}.calendar-state.is-blocked-day{background:#fff0d2;color:#80571b}.attendance-blocked{text-align:center;padding:42px 20px}.attendance-blocked-icon{font-size:48px}.attendance-blocked h2{font-size:22px;margin:10px 0}.attendance-blocked p{color:var(--muted)}.period-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:14px}.period-card{text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(49,87,164,.06);transition:.18s}.period-card:hover{transform:translateY(-3px);border-color:var(--primary);box-shadow:0 12px 28px rgba(49,87,164,.12)}.period-card.saved{border-color:#8bc7a6;background:#f7fcf9}.period-number{display:inline-block;background:#eef3ff;color:var(--primary);padding:5px 9px;border-radius:999px;font-weight:800;font-size:12px}.period-card h3{font-size:19px;margin:13px 0 6px}.period-card p{color:var(--muted);margin:0 0 15px}.period-footer{display:flex;justify-content:space-between;align-items:center;font-size:13px}.period-footer strong{color:var(--primary)}
.attendance-session-head{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:16px;align-items:center;margin-bottom:15px}.attendance-session-head div{display:flex;flex-direction:column;gap:4px}.attendance-session-head small{color:var(--muted)}.attendance-session-head strong{font-size:14px}.attendance-live-metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:15px}.attendance-live-metrics>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 15px}.attendance-live-metrics span,.attendance-live-metrics strong{display:block}.attendance-live-metrics span{font-size:12px;color:var(--muted)}.attendance-live-metrics strong{font-size:26px;color:#2f9e68}.attendance-live-metrics .absent strong{color:#d9534f}.attendance-live-metrics .late strong{color:#f3a33c}.attendance-live-metrics .early strong{color:#7b61b3}.attendance-live-metrics .excused strong{color:#3157a4}.attendance-actions{display:flex;align-items:center;gap:12px;margin-bottom:15px}.attendance-actions .form-control{max-width:320px}.exception-filter{display:flex;align-items:center;gap:7px;margin-inline-start:auto;white-space:nowrap}.attendance-table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:18px}.attendance-table{width:100%;min-width:1050px;border-collapse:collapse;text-align:center}.attendance-table th,.attendance-table td{border-bottom:1px solid var(--line);padding:10px 8px;vertical-align:middle}.attendance-table thead th{background:#f4f8fb;color:var(--primary);font-size:13px;position:sticky;top:0;z-index:2}.attendance-table tbody tr:last-child td{border-bottom:0}.attendance-table tbody tr:hover{background:#fbfcff}.student-name-col{text-align:right!important;min-width:230px}.student-name-cell{text-align:right}.student-name-cell strong,.student-name-cell small{display:block}.student-name-cell small{font-size:11px;color:var(--muted);margin-top:2px}.state-icon{width:66px;min-height:58px;border:1px solid #dfe5ed;border-radius:13px;background:#fff;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;transition:.15s}.state-icon .icon{font-size:21px;line-height:1}.state-icon small{font-size:10px;font-weight:800}.state-icon:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 13px rgba(34,48,74,.1)}.primary-toggle.is-present{background:#e9f7ef;border-color:#8fd0ac;color:#24724c}.primary-toggle.is-absent{background:#fdecec;border-color:#e7a4a4;color:#b33d3d}.event-toggle{color:#7b8799}.event-toggle.late-toggle.active{background:#fff3df;border-color:#f3bd68;color:#9a6308}.event-toggle.early-toggle.active{background:#f2edfb;border-color:#b7a4de;color:#69499d}.event-toggle.excused-toggle.active{background:#eaf0ff;border-color:#9eb4e7;color:#3157a4}.state-icon.disabled{opacity:.35;cursor:not-allowed}.event-time{display:block;width:74px;margin:5px auto 0;border:1px solid #dbe2ea;border-radius:7px;padding:3px;font-size:11px;text-align:center}.student-note{min-width:150px;font-size:12px}.attendance-save-bar{position:sticky;bottom:0;z-index:5;margin-top:14px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:16px;padding:13px 16px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 -6px 20px rgba(35,54,75,.08)}.attendance-save-bar span{color:var(--muted);font-size:13px}
@media(max-width:900px){.attendance-toolbar,.attendance-session-head{align-items:stretch;flex-direction:column}.attendance-day-meta{align-items:flex-start}.attendance-session-head{display:grid;grid-template-columns:1fr 1fr}.attendance-session-head>a{grid-column:1/-1}.attendance-live-metrics{grid-template-columns:repeat(3,1fr)}.attendance-actions{flex-wrap:wrap}.exception-filter{margin-inline-start:0}.attendance-save-bar{gap:12px}.attendance-save-bar span{display:none}}@media(max-width:540px){.attendance-live-metrics{grid-template-columns:1fr 1fr}.attendance-session-head{grid-template-columns:1fr}.date-navigation .btn{font-size:12px;padding:8px}.attendance-save-bar .btn{width:100%}}

/* v0.6.1 - Skill assessment entry matrix */
.skill-entry-table-wrap { max-height: 68vh; }
.skill-entry-table th, .skill-entry-table td { white-space: nowrap; }
.skill-entry-table .student-col { min-width: 210px; position: sticky; right: 0; z-index: 3; background: #fff; }
.skill-entry-table thead .student-col { z-index: 5; background: #f8f9fa; }
.skill-entry-table .class-col { min-width: 140px; }
.skill-entry-table .question-col, .skill-entry-table .question-cell { min-width: 92px; }
.skill-entry-table .summary-col { min-width: 130px; }
.skill-entry-table .skill-checkbox { width: 1.45rem; height: 1.45rem; cursor: pointer; }
.skill-entry-table .student-row.table-danger .student-col { background: var(--bs-danger-bg-subtle); }
.sticky-save-bar { position: sticky; bottom: .75rem; z-index: 10; }

/* v0.9.3.3 - Teacher workspace UX, scroll recovery and dashboard */
.admin-shell{grid-template-columns:278px minmax(0,1fr)}
.admin-sidebar{height:100dvh;max-height:100dvh;overflow:hidden;padding:20px 16px;box-shadow:-10px 0 35px rgba(20,42,91,.12)}.teacher-sidebar{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.admin-sidebar nav{display:block;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable;margin-top:16px;padding:0 2px 18px 4px;scrollbar-width:auto;scrollbar-color:rgba(255,255,255,.38) transparent}
.admin-sidebar nav::-webkit-scrollbar{width:9px}.admin-sidebar nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:999px}.admin-sidebar nav::-webkit-scrollbar-track{background:transparent}
.admin-sidebar form{margin-top:10px;flex:0 0 auto}.admin-brand{padding-bottom:18px;flex:0 0 auto}.sidebar-footer{border-top:1px solid rgba(255,255,255,.12);padding-top:12px}.sidebar-logout{display:flex;align-items:center;justify-content:center;gap:9px;font-weight:700;transition:.18s}.sidebar-logout:hover{background:rgba(255,255,255,.1)}
.sidebar-close{display:none;margin-inline-start:auto;border:0;background:rgba(255,255,255,.1);color:#fff;width:34px;height:34px;border-radius:10px;font-size:22px;line-height:1}
.teacher-nav .nav-group{display:grid;gap:5px;margin-bottom:18px}.teacher-nav .nav-group-title{font-size:11px;font-weight:800;color:#91acd9;padding:4px 13px 6px;letter-spacing:.02em}.teacher-nav a{display:flex;align-items:center;gap:11px;min-height:44px;padding:10px 12px!important;border-radius:12px!important;color:#e9f0ff!important;font-size:14px;font-weight:700!important;position:relative}.teacher-nav a .nav-icon{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:rgba(255,255,255,.08);font-size:17px;flex:0 0 auto}.teacher-nav a:hover{background:rgba(255,255,255,.1)!important}.teacher-nav a.active{background:#fff!important;color:#294f9a!important;box-shadow:0 8px 22px rgba(10,28,66,.18)}.teacher-nav a.active .nav-icon{background:#eaf0ff;color:#3157a4}.teacher-nav a.active:before{content:"";position:absolute;right:-16px;top:11px;bottom:11px;width:4px;background:#f3a33c;border-radius:5px}
.teacher-topbar{min-height:122px;padding:22px 34px;background:rgba(255,255,255,.96);position:sticky;top:0;z-index:12;backdrop-filter:blur(12px)}.topbar-copy{min-width:0}.topbar-kicker{display:flex;align-items:center;gap:7px;color:#8290a7;font-size:12px;margin-bottom:4px}.topbar-kicker a{color:var(--primary);text-decoration:none;font-weight:700}.teacher-topbar h1{font-size:27px;color:#172844}.teacher-topbar p{font-size:14px}.teacher-topbar .admin-user{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);padding:7px 10px 7px 14px;background:#f4f7fc;border:1px solid #e5eaf4}.teacher-topbar .admin-user span:last-child{display:flex;flex-direction:column}.teacher-topbar .admin-user small{color:var(--muted);font-size:10px}.teacher-topbar .admin-user strong{font-size:12px;max-width:150px;overflow:hidden;text-overflow:ellipsis}.user-avatar{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#3157a4,#20a6a1);color:#fff;font-weight:800}
.sidebar-backdrop{display:none}.admin-content{max-width:1600px;width:100%;margin:0 auto;padding:28px 32px 44px}.app-alert{display:flex;align-items:flex-start;gap:11px;border-radius:15px;padding:13px 15px}.app-alert>span{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;font-weight:800;background:rgba(255,255,255,.55);flex:0 0 auto}
.btn{border-radius:12px;font-weight:700}.btn-sm{border-radius:10px}.form-control,.form-select{border-radius:12px}.content-card{border-color:#e5eaf3;border-radius:20px}.muallim-dialog{border:0;border-radius:22px;overflow:hidden;box-shadow:0 28px 80px rgba(24,38,68,.22)}.muallim-dialog .modal-header{border-bottom:1px solid #edf0f5;display:flex;gap:12px}.muallim-dialog .modal-header>div:nth-child(2){flex:1}.muallim-dialog .modal-header small{color:var(--muted)}.dialog-icon{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;background:#fff1dc;color:#a66a0c;font-size:22px;font-weight:800}.muallim-dialog .modal-footer{border-top:1px solid #edf0f5}
.teacher-hero{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:24px;align-items:stretch;background:linear-gradient(135deg,#274b95 0%,#3157a4 48%,#238e99 100%);color:#fff;border-radius:26px;padding:30px 32px;margin-bottom:20px;box-shadow:0 18px 42px rgba(49,87,164,.22);position:relative;overflow:hidden}.teacher-hero:after{content:"";position:absolute;width:320px;height:320px;border:55px solid rgba(255,255,255,.04);border-radius:50%;left:-130px;bottom:-190px}.teacher-hero-copy{position:relative;z-index:1}.teacher-hero-chip{display:inline-flex;padding:7px 11px;border-radius:999px;background:rgba(255,255,255,.13);font-size:12px;font-weight:700}.teacher-hero h2{font-size:30px;margin:15px 0 8px}.teacher-hero p{color:#e5edff;margin:0;max-width:760px;line-height:1.8}.teacher-hero-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.teacher-hero-meta span{padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.1);font-size:12px}.teacher-hero-focus{display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:20px;position:relative;z-index:1}.teacher-hero-focus small{color:#dce8ff}.teacher-hero-focus strong{font-size:54px;line-height:1.1;margin:6px 0;color:#fff}.teacher-hero-focus span{font-size:13px}
.teacher-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.teacher-stat-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #e4e9f2;border-radius:19px;padding:17px;text-decoration:none;color:var(--ink);box-shadow:0 8px 24px rgba(49,87,164,.055);transition:.18s}.teacher-stat-card:hover{transform:translateY(-2px);border-color:#c9d5ed;box-shadow:0 13px 30px rgba(49,87,164,.1)}.teacher-stat-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#eef3ff;color:#3157a4;font-size:22px;flex:0 0 auto}.teacher-stat-card div{min-width:0}.teacher-stat-card small,.teacher-stat-card span:last-child{display:block;color:var(--muted)}.teacher-stat-card strong{display:block;font-size:24px;color:#213c78;margin:3px 0}.teacher-stat-card span:last-child{font-size:11px}
.teacher-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:18px;margin-bottom:18px}.dashboard-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:17px}.dashboard-section-head.compact{align-items:center}.dashboard-section-head h2{font-size:21px;margin:2px 0 5px}.dashboard-section-head p{margin:0;color:var(--muted);font-size:13px}.section-eyebrow{color:var(--secondary);font-size:11px;font-weight:800}.small-link{font-size:12px;font-weight:700;text-decoration:none;color:var(--primary)}.priority-list{display:grid;gap:10px}.priority-item{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:13px;border:1px solid #e7ebf2;border-radius:16px;padding:13px 14px;background:#fbfcfe}.priority-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#edf2ff;font-size:20px}.priority-copy h3{font-size:15px;margin:0 0 4px}.priority-copy p{font-size:12px;color:var(--muted);margin:0;line-height:1.6}.priority-item.tone-danger{border-inline-start:4px solid #d9534f}.priority-item.tone-warning{border-inline-start:4px solid #f3a33c}.priority-item.tone-primary{border-inline-start:4px solid #3157a4}.priority-item.tone-info{border-inline-start:4px solid #20a6a1}.priority-item.tone-success{border-inline-start:4px solid #2f9e68}.priority-item.tone-secondary{border-inline-start:4px solid #7a8598}
.dashboard-period-list{display:grid;gap:9px}.dashboard-period{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px;border:1px solid #e6eaf2;border-radius:14px;text-decoration:none;color:inherit;transition:.15s}.dashboard-period:hover{background:#f7f9fd;border-color:#cad5eb}.dashboard-period.is-complete{background:#f4fbf7;border-color:#c8e6d4}.dashboard-period-number{width:35px;height:35px;border-radius:11px;display:grid;place-items:center;background:#eef3ff;color:#3157a4;font-weight:800}.dashboard-period strong,.dashboard-period small{display:block}.dashboard-period strong{font-size:14px}.dashboard-period small{font-size:11px;color:var(--muted);margin-top:2px}.dashboard-period-state{font-size:11px;color:var(--primary);font-weight:800}.dashboard-period.is-complete .dashboard-period-state{color:#2f7d54}.dashboard-empty-state{text-align:center;padding:28px 10px}.dashboard-empty-state>span{font-size:38px}.dashboard-empty-state strong{display:block;margin:8px 0}.dashboard-empty-state p{color:var(--muted);font-size:12px;margin:0}
.teacher-quick-actions{margin-bottom:8px}.quick-action-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.quick-action-grid a{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-decoration:none;color:var(--ink);border:1px solid #e7ebf2;background:#fbfcfe;border-radius:15px;padding:14px;transition:.16s}.quick-action-grid a:hover{transform:translateY(-2px);background:#fff;border-color:#cbd6ec}.quick-action-grid a>span{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#edf2ff;margin-bottom:5px}.quick-action-grid strong{font-size:13px}.quick-action-grid small{color:var(--muted);font-size:10px}
.attendance-toolbar{align-items:center}.attendance-date-form .form-control{padding-inline:12px;height:45px}.attendance-blocked{min-height:250px;display:flex;flex-direction:column;align-items:center;justify-content:center}.attendance-blocked .btn{margin-top:8px}
@media(max-width:1200px){.admin-shell{grid-template-columns:240px minmax(0,1fr)}.teacher-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-dashboard-grid{grid-template-columns:1fr}}
@media(max-width:760px){.admin-sidebar{position:fixed;right:-290px;width:278px;top:0;bottom:0;transition:right .22s ease}.sidebar-open .admin-sidebar{right:0}.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(18,30,51,.45);z-index:19}.sidebar-close{display:block}.teacher-topbar{min-height:98px;padding:16px 18px}.topbar-kicker{display:none}.teacher-topbar h1{font-size:22px}.teacher-topbar p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:68vw}.admin-content{padding:18px 13px 34px}.teacher-hero{grid-template-columns:1fr;padding:23px 20px}.teacher-hero-focus{display:none}.teacher-hero h2{font-size:24px}.teacher-stat-grid{grid-template-columns:1fr 1fr;gap:9px}.teacher-stat-card{padding:13px;gap:10px}.teacher-stat-icon{width:40px;height:40px}.priority-item{grid-template-columns:38px minmax(0,1fr)}.priority-item .btn{grid-column:2;justify-self:start}.quick-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-toolbar{align-items:stretch}.date-navigation{display:grid;grid-template-columns:1fr 1fr}.attendance-date-form{grid-column:1/-1}.attendance-date-form .form-control{width:100%}.attendance-day-meta{align-items:flex-start;margin-top:10px}.teacher-topbar .admin-user{display:none}}
@media(max-width:460px){.teacher-stat-grid{grid-template-columns:1fr}.quick-action-grid{grid-template-columns:1fr 1fr}.teacher-hero-meta{display:grid}.priority-item{padding:11px}.dashboard-period{grid-template-columns:34px minmax(0,1fr)}.dashboard-period-state{grid-column:2}.teacher-topbar p{max-width:60vw}}

/* v0.9.3.5 - Attendance commit clarity and direct save */
.attendance-progress-strip{display:grid;grid-template-columns:auto minmax(180px,1fr) auto;align-items:center;gap:16px;margin-bottom:16px;padding:15px 18px}.attendance-progress-strip>div:first-child{display:flex;flex-direction:column;gap:2px}.attendance-progress-strip span{color:var(--muted);font-size:12px}.attendance-progress-strip strong{font-size:18px;color:var(--text)}.attendance-progress-track{height:10px;background:#edf1f7;border-radius:999px;overflow:hidden}.attendance-progress-track>span{display:block;height:100%;background:linear-gradient(90deg,#2f9e68,#20a6a1);border-radius:inherit;transition:width .25s ease}.attendance-progress-strip small{color:var(--muted);font-weight:700}
.attendance-period-card{display:flex;flex-direction:column;gap:0}.attendance-period-card.pending{border-inline-start:4px solid #f3a33c}.attendance-period-card.saved{border-inline-start:4px solid #2f9e68}.period-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.attendance-save-state{display:inline-flex;align-items:center;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}.attendance-save-state.is-saved{background:#e6f6ed;color:#23764d}.attendance-save-state.is-pending{background:#fff1d8;color:#93600b}.attendance-card-summary{display:flex;flex-wrap:wrap;gap:8px;margin:3px 0 14px}.attendance-card-summary span{background:#f5f7fb;border:1px solid #e7ebf2;border-radius:10px;padding:7px 9px;font-size:12px;color:var(--muted)}.attendance-card-summary b{color:var(--text);font-size:14px}.attendance-unsaved-note{display:flex;align-items:flex-start;gap:8px;background:#fff9ee;border:1px solid #f7ddb2;border-radius:12px;padding:10px 11px;margin:2px 0 14px}.attendance-unsaved-note>span{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:#ffe9bd;color:#8a5909;font-weight:800;flex:0 0 auto}.attendance-unsaved-note p{font-size:11px;line-height:1.7;color:#745a2c;margin:0}.period-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto}.attendance-quick-save-form{display:inline-flex;margin:0}.period-card-actions .btn{font-size:12px}.attendance-period-card .period-footer{margin-top:14px;padding-top:12px;border-top:1px solid #edf0f5}.attendance-period-card .period-footer small{color:var(--muted);font-size:10px}
.attendance-record-status{display:flex;align-items:flex-start;gap:12px;border-radius:17px;padding:14px 16px;margin-bottom:15px;border:1px solid}.attendance-record-status.is-saved{background:#effaf4;border-color:#bfe4ce;color:#1f6b47}.attendance-record-status.is-unsaved{background:#fff8ea;border-color:#f1d59f;color:#7e5717}.attendance-record-status-icon{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:rgba(255,255,255,.65);font-size:18px;font-weight:900;flex:0 0 auto}.attendance-record-status strong{display:block;margin-bottom:3px}.attendance-record-status p{margin:0;font-size:12px;line-height:1.7;color:inherit}.attendance-dirty-state{font-size:11px;color:var(--muted);margin-inline-start:auto}.attendance-dirty-state.is-dirty{background:#fff1d8;color:#8a5909;padding:6px 9px;border-radius:999px;font-weight:800}.attendance-save-copy{display:flex;flex-direction:column;gap:3px}.attendance-save-copy strong{font-size:13px}.attendance-save-copy span{font-size:11px;color:var(--muted)}.attendance-save-actions{display:flex;align-items:center;gap:9px;margin-inline-start:auto}
.attendance-readable-count{display:flex!important;align-items:baseline;gap:6px;direction:rtl}.attendance-readable-count em{font-style:normal;font-size:11px;color:var(--muted);font-weight:700}.dashboard-period{grid-template-columns:38px minmax(0,1fr) auto}.dashboard-period-copy{min-width:0}.dashboard-attendance-summary{display:block;margin-top:5px;font-size:10px;color:#2f7d54}.dashboard-attendance-summary.is-warning{color:#97630e}.dashboard-period-actions{display:flex;flex-direction:column;align-items:stretch;gap:6px}.dashboard-period-actions form{margin:0}.dashboard-period-actions .btn{width:100%;white-space:nowrap}
@media(max-width:900px){.attendance-progress-strip{grid-template-columns:1fr}.attendance-progress-strip small{grid-row:3}.attendance-save-actions{width:100%;margin-inline-start:0}.attendance-save-bar{flex-wrap:wrap}.attendance-save-actions .btn{flex:1}.dashboard-period{grid-template-columns:38px minmax(0,1fr)}.dashboard-period-actions{grid-column:2;flex-direction:row;flex-wrap:wrap}.dashboard-period-actions .btn{width:auto}}
@media(max-width:560px){.period-card-actions{display:grid;grid-template-columns:1fr}.attendance-quick-save-form,.period-card-actions .btn{width:100%}.attendance-save-actions{display:grid;grid-template-columns:1fr}.attendance-save-actions .btn{width:100%}.attendance-dirty-state{width:100%;margin-inline-start:0}.dashboard-period-actions{display:grid;grid-template-columns:1fr}.dashboard-period-actions .btn{width:100%}}

/* v0.9.3.7 - Teacher profile and teaching scope settings */
.teacher-settings-shell{max-width:1180px;margin:0 auto}.profile-completion-card{display:grid;grid-template-columns:minmax(0,1fr) 230px;align-items:center;gap:28px;background:linear-gradient(135deg,#25488e,#20a6a1);color:#fff;border-radius:24px;padding:25px 28px;margin-bottom:18px;box-shadow:0 14px 34px rgba(36,72,142,.16)}.profile-completion-copy h2{font-size:24px;margin:4px 0 7px}.profile-completion-copy p{margin:0;color:#e4f4f5;line-height:1.75}.profile-completion-card .section-eyebrow{color:#cfeff0}.profile-completion-meter strong{display:block;font-size:30px;text-align:center;margin-bottom:8px}.profile-completion-meter>div{height:11px;background:rgba(255,255,255,.23);border-radius:999px;overflow:hidden}.profile-completion-meter>div>span{display:block;height:100%;background:#fff;border-radius:inherit}.settings-smart-suggestion{display:flex;align-items:flex-start;gap:13px;background:#eef9f8;border:1px solid #c9e9e6;color:#1a6c68;border-radius:17px;padding:15px 18px;margin-bottom:18px}.settings-smart-suggestion>span{width:34px;height:34px;border-radius:11px;background:#d8f0ed;display:grid;place-items:center;font-weight:800}.settings-smart-suggestion strong{display:block;margin-bottom:3px}.settings-smart-suggestion p{margin:0;color:#557a78;font-size:13px}.settings-section{margin-bottom:18px;padding:24px}.settings-section-head{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:13px;margin-bottom:21px}.settings-section-head h2{font-size:19px;margin:0 0 4px}.settings-section-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.settings-step{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#edf2ff;color:var(--primary);font-weight:800}.settings-selection-count{font-size:12px;font-weight:800;color:var(--primary);background:#eef3ff;border-radius:999px;padding:7px 11px}.settings-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.settings-form-grid .form-control{height:51px;border-radius:13px;padding-inline:14px}.settings-full-row{grid-column:1/-1}.readonly-field{min-height:51px;border:1px solid #e3e8f1;background:#f7f9fc;border-radius:13px;padding:9px 13px;display:flex;flex-direction:column;justify-content:center}.readonly-field span{font-weight:700;color:#33425a}.readonly-field small{color:var(--muted);font-size:10px;margin-top:3px}.choice-grid{display:grid;gap:11px}.stage-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.grade-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.subject-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.choice-card{position:relative;display:flex;flex-direction:column;gap:5px;min-height:112px;border:1px solid #e1e6ef;background:#fbfcfe;border-radius:16px;padding:16px 16px 14px;cursor:pointer;transition:.16s}.choice-card:hover{border-color:#b9c8e5;background:#fff;transform:translateY(-1px)}.choice-card input{position:absolute;opacity:0;pointer-events:none}.choice-card .choice-check{position:absolute;left:12px;top:12px;width:23px;height:23px;border-radius:8px;display:grid;place-items:center;background:#edf0f5;color:transparent;font-size:12px;font-weight:900}.choice-card strong{padding-inline-end:30px;font-size:14px}.choice-card small{color:var(--muted);line-height:1.6;font-size:11px}.choice-card.is-selected{border-color:#4b72bf;background:#f2f6ff;box-shadow:0 0 0 2px rgba(49,87,164,.08)}.choice-card.is-selected .choice-check{background:var(--primary);color:#fff}.choice-card.compact-choice{min-height:66px;justify-content:center}.choice-card.subject-choice{min-height:88px}.choice-card[hidden]{display:none!important}.settings-empty-filter{border:1px dashed #cfd8e6;background:#f8fafc;color:var(--muted);border-radius:14px;padding:18px;text-align:center;margin-bottom:10px}.settings-save-bar{position:sticky;bottom:12px;z-index:9;display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.96);border:1px solid #dce3ee;border-radius:18px;padding:14px 17px;margin-top:20px;box-shadow:0 14px 38px rgba(34,52,82,.13);backdrop-filter:blur(8px)}.settings-save-bar>div{display:flex;flex-direction:column;margin-inline-end:auto}.settings-save-bar strong{font-size:13px}.settings-save-bar span{font-size:11px;color:var(--muted);margin-top:2px}.settings-save-bar .btn{min-width:135px;border-radius:12px;font-weight:700}
@media(max-width:1050px){.grade-choice-grid,.subject-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.profile-completion-card{grid-template-columns:1fr;padding:21px}.profile-completion-meter{max-width:260px}.profile-completion-meter strong{text-align:start}.settings-section{padding:18px 15px}.settings-section-head{grid-template-columns:38px minmax(0,1fr)}.settings-selection-count{grid-column:2;justify-self:start}.settings-form-grid{grid-template-columns:1fr}.settings-full-row{grid-column:auto}.stage-choice-grid,.grade-choice-grid,.subject-choice-grid{grid-template-columns:1fr 1fr}.settings-save-bar{position:static;display:grid;grid-template-columns:1fr 1fr}.settings-save-bar>div{grid-column:1/-1}.settings-save-bar .btn{width:100%;min-width:0}}
@media(max-width:480px){.stage-choice-grid,.grade-choice-grid,.subject-choice-grid{grid-template-columns:1fr}.settings-save-bar{grid-template-columns:1fr}.settings-save-bar>div{grid-column:auto}.profile-completion-copy h2{font-size:21px}}

/* Curriculum library */
.metric-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
details>summary{cursor:pointer;list-style:none}details>summary::-webkit-details-marker{display:none}

/* v0.9.4.1 - Admin navigation readability and grouped workspace */
.admin-management-sidebar{
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;
    width:auto;
}
.admin-management-sidebar .admin-brand-copy{min-width:0;flex:1}
.admin-management-sidebar .admin-nav{
    display:grid;
    align-content:start;
    gap:10px;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    margin-top:14px;
    padding:0 2px 20px 5px;
}
.admin-management-sidebar .admin-nav a{
    display:flex;
    align-items:center;
    gap:10px;
    width:100%;
    min-width:0;
    min-height:43px;
    padding:9px 11px;
    border-radius:12px;
    color:#e7efff;
    text-decoration:none;
    font-size:13px;
    font-weight:700;
    line-height:1.45;
    white-space:normal;
    overflow-wrap:anywhere;
    transition:background .16s ease,color .16s ease,transform .16s ease;
}
.admin-management-sidebar .admin-nav a:hover{
    color:#fff;
    background:rgba(255,255,255,.10);
    transform:translateX(-2px);
}
.admin-management-sidebar .admin-nav a.active{
    color:#244a95;
    background:#fff;
    box-shadow:0 8px 20px rgba(12,28,67,.18);
}
.admin-management-sidebar .admin-nav-home{margin-bottom:2px}
.admin-management-sidebar .admin-nav-icon{
    width:29px;
    height:29px;
    border-radius:9px;
    display:grid;
    place-items:center;
    flex:0 0 auto;
    color:#fff;
    background:rgba(255,255,255,.09);
    font-size:16px;
    font-weight:800;
}
.admin-management-sidebar .admin-nav a.active .admin-nav-icon{
    color:#3157a4;
    background:#eaf0ff;
}
.admin-management-sidebar .admin-nav-group{
    border:1px solid rgba(255,255,255,.08);
    border-radius:14px;
    background:rgba(10,30,76,.12);
    overflow:hidden;
}
.admin-management-sidebar .admin-nav-group>summary{
    display:grid;
    grid-template-columns:28px minmax(0,1fr) 20px;
    align-items:center;
    gap:9px;
    min-height:45px;
    padding:9px 11px;
    color:#bcd0f5;
    cursor:pointer;
    list-style:none;
    font-size:12px;
    font-weight:800;
    user-select:none;
}
.admin-management-sidebar .admin-nav-group>summary::-webkit-details-marker{display:none}
.admin-management-sidebar .admin-nav-group>summary:hover{background:rgba(255,255,255,.06);color:#fff}
.admin-management-sidebar .admin-nav-summary-icon{
    width:27px;
    height:27px;
    border-radius:8px;
    display:grid;
    place-items:center;
    background:rgba(255,255,255,.08);
    color:#dce7ff;
}
.admin-management-sidebar .admin-nav-chevron{
    justify-self:end;
    transition:transform .18s ease;
    font-size:17px;
}
.admin-management-sidebar .admin-nav-group[open] .admin-nav-chevron{transform:rotate(180deg)}
.admin-management-sidebar .admin-nav-links{
    display:grid;
    gap:4px;
    padding:0 7px 8px;
    border-top:1px solid rgba(255,255,255,.055);
}
.admin-management-sidebar .admin-nav-links a{margin-top:4px}
.admin-management-sidebar .admin-nav-featured small{
    margin-inline-start:auto;
    padding:3px 7px;
    border-radius:999px;
    background:#f3a33c;
    color:#513103;
    font-size:9px;
    font-weight:900;
    white-space:nowrap;
}
.admin-management-sidebar .admin-nav-featured.active small{background:#fff0d5;color:#88530a}
.admin-management-sidebar .sidebar-footer{margin-top:0}
.admin-management-topbar{position:sticky;top:0;z-index:12;background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}
@media(max-width:1200px){
    .admin-shell{grid-template-columns:250px minmax(0,1fr)}
    .admin-management-sidebar .admin-nav a{font-size:12.5px;padding-inline:9px}
}
@media(max-width:760px){
    .admin-management-sidebar{width:286px;right:-300px}
    .sidebar-open .admin-management-sidebar{right:0}
}

/* v0.9.5.1 — teacher administrative staff settings */
.staff-member-list{display:grid;gap:12px}.staff-member-row{display:grid;grid-template-columns:32px minmax(190px,.8fr) minmax(230px,1fr) 44px;gap:12px;align-items:end;padding:14px;border:1px solid #dfe6f1;border-radius:16px;background:#f9fbff}.staff-drag-handle{align-self:center;text-align:center;color:#8b98ad;font-weight:900}.staff-remove{height:42px;font-size:22px;line-height:1}.staff-member-row .form-label{font-size:.78rem;color:#67748a;font-weight:800}.staff-member-row .form-control{background:#fff}
@media(max-width:760px){.staff-member-row{grid-template-columns:1fr 44px}.staff-member-row>div{grid-column:1/-1}.staff-drag-handle{display:none}.staff-remove{grid-column:2;grid-row:1}}
@media print{.app-alert,.alert.app-alert{display:none!important}}

/* نَسَق: عودة موحدة ودعم ذكي */
.nasq-system-nav{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.nasq-system-link{display:inline-flex;align-items:center;gap:.45rem;min-height:42px;padding:.55rem .78rem;border-radius:12px;text-decoration:none;font-size:.82rem;font-weight:800;border:1px solid #cfe7e4;background:#f4fbfa;color:#0f5b58;transition:background .16s ease,border-color .16s ease,transform .16s ease}.nasq-system-link:hover{background:#e2f5f2;color:#084c49;transform:translateY(-1px)}.nasq-system-icon{width:20px;height:20px;display:block;fill:currentColor;flex:0 0 auto}.nasq-support-link{background:#123b4a;color:#fff;border-color:#123b4a}.nasq-support-link:hover{color:#fff;background:#0d303c}@media(max-width:720px){.nasq-system-link strong{display:none}.nasq-system-link{width:42px;height:42px;justify-content:center;padding:0}}
