@font-face{font-family:Tajawal;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/tajawal-400.woff2)format("woff2")}@font-face{font-family:Tajawal;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/tajawal-500.woff2)format("woff2")}@font-face{font-family:Tajawal;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/tajawal-700.woff2)format("woff2")}@font-face{font-family:Tajawal;font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/tajawal-900.woff2)format("woff2")}@font-face{font-family:Amiri;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/amiri-400.woff2)format("woff2")}@font-face{font-family:Amiri;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/amiri-700.woff2)format("woff2")}:root{color:#1a1d24;font-synthesis:none;text-rendering:optimizelegibility;--ink:#1a1d24;--ink-soft:#4a5160;--ink-muted:#8a91a0;--paper:#faf8f3;--paper-warm:#f4efe4;--line:#e3ddd0;--line-soft:#ece7db;--accent:#8b2e2e;--accent-soft:#c4704f;--success:#2d5a3d;--success-soft:#e8f0ea;--warning:#8b5a00;--warning-soft:#fbf3e0;--danger:#8b2e2e;--danger-soft:#f5e6e6;--shadow:0 1px 3px #1a1d240a, 0 4px 16px #1a1d240f;--shadow-lift:0 2px 6px #1a1d2414, 0 12px 32px #1a1d241a;background:#faf8f3;font-family:Tajawal,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-width:320px;min-height:100%}html,body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5}body{background-image:radial-gradient(circle at 10% 0,#8b2e2e08 0%,#0000 40%),radial-gradient(circle at 90% 100%,#c4704f0a 0%,#0000 40%);background-attachment:fixed;min-height:100dvh}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled,input:disabled,select:disabled,textarea:disabled{cursor:not-allowed;opacity:.62}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.brand-mark{background:var(--paper);border-radius:2px;flex:0 0 38px;justify-content:center;align-items:center;width:38px;height:38px;display:flex;overflow:hidden}.brand-mark img{object-fit:cover;width:100%;height:100%;display:block}.admin-app{min-height:100dvh}.app-header{color:var(--paper);background:var(--ink);justify-content:space-between;align-items:center;gap:24px;padding:18px 32px;display:flex;box-shadow:0 2px 12px #00000014}.app-brand,.auth-brand{align-items:center;gap:14px;min-width:0;display:flex}.app-brand h1,.auth-brand h1{letter-spacing:.02em;font-family:Amiri,serif;font-size:22px;font-weight:700;line-height:1.35}.header-actions{align-items:center;gap:8px;display:flex}.session-indicator{color:#faf8f3d9;text-overflow:ellipsis;white-space:nowrap;background:#faf8f314;border:1px solid #faf8f326;border-radius:3px;align-items:center;gap:8px;max-width:300px;padding:7px 12px;font-size:12px;display:flex;overflow:hidden}.session-indicator>span:last-child{text-overflow:ellipsis;gap:1px;display:grid;overflow:hidden}.session-indicator b{color:var(--paper);font-size:11px}.session-indicator small{text-overflow:ellipsis;overflow:hidden}.session-dot{background:#4a9d5f;border-radius:50%;flex:0 0 8px;width:8px;height:8px;display:inline-block}.logout-button{min-height:44px;color:var(--paper);cursor:pointer;background:0 0;border:1px solid #faf8f333;border-radius:3px;padding:8px 14px;font-size:13px;font-weight:500;transition:all .15s}.logout-button:hover:not(:disabled){background:#faf8f31a;border-color:#faf8f366}.header-tool-button{min-height:44px;color:var(--paper);font:inherit;white-space:nowrap;cursor:pointer;background:#faf8f312;border:1px solid #faf8f333;border-radius:3px;padding:8px 12px;font-size:13px;font-weight:500}.header-tool-button:hover:not(:disabled){background:#faf8f321;border-color:#faf8f366}.primary-navigation{border-bottom:1px solid var(--line);background:var(--paper-warm);gap:4px;padding:0 32px;display:flex;overflow-x:auto}.nav-item{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;padding:14px 22px;font-size:15px;font-weight:500;transition:all .15s;position:relative;top:1px}.nav-item:hover{color:var(--ink)}.nav-item.active{border-bottom-color:var(--accent);color:var(--ink);font-weight:700}.nav-count-badge{color:#fff;background:var(--danger);border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:20px;margin-inline-start:6px;padding-inline:6px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.workspace{width:100%;max-width:1400px;margin:0 auto;padding:32px;animation:.2s fade-in}.workspace-heading{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;padding-bottom:18px;display:flex}.workspace-heading h1{color:var(--ink);letter-spacing:.01em;font-family:Amiri,serif;font-size:32px;font-weight:700}.workspace-meta{color:var(--ink-muted);letter-spacing:.05em;align-items:center;gap:8px;font-size:13px;display:flex}.placeholder-state{border:1px solid var(--line);background:#fff;border-radius:4px;margin-bottom:24px;overflow:hidden}.placeholder-header{border-bottom:1px solid var(--line);background:var(--paper-warm);justify-content:space-between;align-items:center;gap:16px;padding:16px 22px;display:flex}.placeholder-header h2{font-family:Amiri,serif;font-size:20px;font-weight:700}.placeholder-header span{color:var(--ink-muted);font-size:12px}.placeholder-body{color:var(--ink-muted);text-align:center;padding:40px 22px}.placeholder-body p{color:var(--ink-soft);font-size:14px}.placeholder-body span{margin-top:6px;font-size:12px;font-style:italic;display:block}.directory-page .page-header{border-bottom:2px solid var(--ink);justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:28px;padding-bottom:18px;display:flex}.directory-page .page-header h1{color:var(--ink);letter-spacing:.01em;font-family:Amiri,serif;font-size:32px;font-weight:700}.directory-page .page-header .btn{min-height:44px}.btn{border:1px solid var(--ink);color:var(--paper);background:var(--ink);cursor:pointer;border-radius:3px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--ink-soft);background:var(--ink-soft)}.btn-outline{color:var(--ink);background:0 0}.btn-outline:hover:not(:disabled){color:var(--paper);background:var(--ink)}.btn-accent{border-color:var(--accent);background:var(--accent)}.btn-accent:hover:not(:disabled){background:#6d2424;border-color:#6d2424}.btn-sm{padding:6px 12px;font-size:13px}.add-mark{font-size:16px;line-height:1}.data-section{border:1px solid var(--line);background:#fff;border-radius:4px;margin-bottom:24px;overflow:hidden}.section-head{border-bottom:1px solid var(--line);background:var(--paper-warm);justify-content:space-between;align-items:center;gap:16px;padding:16px 22px;display:flex}.section-head h2{font-family:Amiri,serif;font-size:20px;font-weight:700}.filter-search-row{align-items:center;gap:16px;display:flex}.status-filter{border:1px solid var(--line);background:#fff;border-radius:3px;display:inline-flex;overflow:hidden}.status-filter .gf-btn{border:0;border-inline-end:1px solid var(--line);min-height:44px;color:var(--ink-soft);cursor:pointer;background:0 0;padding:7px 14px;font-size:13px;font-weight:500;transition:all .15s}.status-filter .gf-btn:last-child{border-inline-end:0}.status-filter .gf-btn:hover:not(:disabled){color:var(--ink);background:var(--paper-warm)}.status-filter .gf-btn.active{color:var(--paper);background:var(--ink)}.search-box input{border:1px solid var(--line);min-width:240px;color:var(--ink);background:#fff;border-radius:3px;padding:8px 14px;font-size:14px;transition:border-color .15s}.search-box input:focus{border-color:var(--ink);outline:none}.table-scroll{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.table-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.directory-table{border-collapse:collapse;width:100%;min-width:1020px;font-size:14px}.sponsors-table{min-width:680px}.students-table{min-width:1120px}.directory-table thead th{border-bottom:1px solid var(--line);color:var(--ink-muted);background:var(--paper-warm);letter-spacing:.1em;text-align:right;text-transform:uppercase;white-space:nowrap;padding:12px 22px;font-size:12px;font-weight:500}.directory-table tbody td{border-bottom:1px solid var(--line-soft);color:var(--ink);vertical-align:middle;padding:14px 22px}.directory-table tbody tr:last-child td{border-bottom:0}.directory-table tbody tr{transition:background .1s}.directory-table tbody tr:hover{background:var(--paper-warm)}.directory-table .empty-row td{color:var(--ink-muted);text-align:center;padding:40px;font-style:italic}.phone-cell{text-align:right}.table-cell-note{color:var(--ink-muted);margin-top:2px;font-size:11px;font-weight:400;display:block}.pill{letter-spacing:.02em;border-radius:12px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.pill:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.pill-danger{color:var(--danger);background:var(--danger-soft)}.pill-warning{color:var(--warning);background:var(--warning-soft)}.suspension-badge{vertical-align:middle;margin-inline-start:7px}.row-actions{white-space:nowrap;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:6px;max-width:100%;display:flex}.icon-btn{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:3px;padding:5px 10px;font-size:12px;transition:all .15s}.icon-btn:hover:not(:disabled){border-color:var(--ink);color:var(--paper);background:var(--ink)}.icon-btn.danger:hover:not(:disabled){border-color:var(--danger);background:var(--danger)}.directory-list-state{min-height:150px;color:var(--ink-muted);text-align:center;justify-content:center;align-items:center;gap:10px;padding:40px 22px;font-size:14px;display:flex}.directory-list-state .loading-ring{border-color:var(--line);border-top-color:var(--accent);width:18px;height:18px}.directory-list-error{color:var(--danger);flex-direction:column}.directory-list-error span{color:var(--ink-muted);font-size:13px}.directory-list-error .btn{margin-top:8px}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1a1d2480;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-overlay.active{animation:.15s fade-in;display:flex}.modal{background:var(--paper);width:100%;max-width:520px;max-height:90vh;box-shadow:var(--shadow-lift);border-radius:6px;animation:.2s slide-up;overflow-y:auto}.modal-compact{max-width:420px}.modal-wide{max-width:720px}.modal-header{border-bottom:1px solid var(--line);padding:22px 26px 16px}.modal-header h3{font-family:Amiri,serif;font-size:24px;font-weight:700}.modal-header p{color:var(--ink-muted);margin-top:4px;font-size:13px}.modal-message{margin-top:2px}.modal-body{padding:22px 26px}.modal-footer{border-top:1px solid var(--line);background:var(--paper-warm);justify-content:flex-start;gap:10px;padding:16px 26px;display:flex}.roster-modal-body{min-height:180px}.roster-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.roster-toolbar-label{color:var(--ink-soft);font-size:13px;font-weight:500}.roster-add-panel{border:1px solid var(--line);background:var(--paper-warm);border-radius:4px;margin-bottom:16px;padding:14px}.roster-add-panel input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:3px;padding:9px 12px;font-size:13px}.roster-add-panel input:focus{border-color:var(--ink);outline:none}.roster-picker-results{border:1px solid var(--line);background:#fff;border-radius:3px;max-height:210px;margin-top:8px;overflow-y:auto}.roster-picker-option{border:0;border-bottom:1px solid var(--line-soft);width:100%;color:var(--ink);text-align:right;cursor:pointer;background:#fff;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;display:flex}.roster-picker-option:last-child{border-bottom:0}.roster-picker-option:hover:not(:disabled){background:var(--paper-warm)}.roster-picker-option small,.roster-person small{color:var(--ink-muted);margin-top:2px;font-size:11px;display:block}.roster-add-label{color:var(--accent);flex:none;font-size:12px;font-weight:700}.roster-list{border:1px solid var(--line);background:#fff;border-radius:4px;max-height:48vh;overflow-y:auto}.roster-row{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;display:flex}.roster-entry:last-child>.roster-row{border-bottom:0}.roster-person{min-width:0}.roster-person strong{overflow-wrap:anywhere}.roster-replacement{border-top:1px solid var(--line);border-bottom:1px solid var(--line-soft);background:var(--warning-soft);padding:12px 14px}.roster-entry:last-child .roster-replacement{border-bottom:0}.roster-replacement label{color:var(--warning);margin-bottom:7px;font-size:12px;font-weight:700;display:block}.roster-replacement-controls{grid-template-columns:minmax(0,1fr) auto auto;gap:8px;display:grid}.roster-replacement select{border:1px solid var(--line);min-width:0;color:var(--ink);font:inherit;background:#fff;border-radius:3px;padding:8px 10px}.roster-empty,.roster-state{min-height:90px;color:var(--ink-muted);text-align:center;justify-content:center;align-items:center;gap:9px;padding:24px;font-size:13px;display:flex}.roster-state{min-height:150px}.roster-state .loading-ring{border-color:var(--line);border-top-color:var(--accent);width:18px;height:18px}.roster-state-error{color:var(--danger);flex-direction:column}.roster-state-error span{color:var(--ink-muted)}.roster-picker-empty{min-height:0;padding:18px}.roster-no-replacement{color:var(--warning);font-size:12px;line-height:1.7}.roster-no-replacement .btn{margin-inline-start:8px}.form-group{margin:0 0 18px}.form-group label,.workdays-fieldset legend{color:var(--ink-soft);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:3px;padding:10px 14px;font-size:14px;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--ink);outline:none}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.help-text{color:var(--ink-muted);margin-top:4px;font-size:12px}.payment-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.payment-toolbar>label{color:var(--ink-soft);font-size:13px;font-weight:500}.payment-toolbar>select,.payment-toolbar>input,.compact-control select{border:1px solid var(--line);min-height:44px;color:var(--ink);font:inherit;background:#fff;border-radius:3px;padding:8px 14px}.payment-toolbar-spacer{flex:1}.summary-bar{border:1px solid var(--line);background:var(--line);border-radius:4px;grid-template-columns:repeat(5,1fr);gap:1px;margin-bottom:20px;display:grid;overflow:hidden}.summary-item{background:#fff;min-width:0;padding:14px 18px}.summary-item .lbl{color:var(--ink-muted);letter-spacing:.08em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin-bottom:4px;font-size:11px;font-weight:500;overflow:hidden}.summary-item .val{font-family:Amiri,serif;font-size:22px;font-weight:700}.summary-item.paid .val{color:var(--success)}.summary-item.partial .val{color:var(--warning)}.summary-item.unpaid .val{color:var(--danger)}.summary-item.new .val{color:var(--accent)}.sponsor-payment-summary{grid-template-columns:repeat(4,1fr)}.payments-table{min-width:980px}.payments-table .paid-row{background:#4a9d5f0a}.sponsored-payment-row{color:var(--ink-soft);background:var(--paper-warm)}.pill-success{color:var(--success);background:var(--success-soft)}.pill-new,.pill-sponsored{color:var(--accent);background:var(--paper-warm);border:1px solid var(--accent-soft)}.sponsored-status{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.reminder-summary{grid-template-columns:repeat(4,1fr)}.reminders-table{min-width:900px}.reminder-sent-line{color:var(--ink-muted);margin-top:4px;font-size:12px;font-weight:400;display:block}.reminder-whatsapp-link{align-items:center;text-decoration:none;display:inline-flex}.reminder-check-cell{text-align:center}.reminder-check-cell input{width:17px;height:17px;accent-color:var(--success)}.unpaid-months-flag{color:var(--danger);margin-top:5px;font-size:11px;font-weight:500;line-height:1.55;display:block}.unpaid-months-flag strong{font-weight:700}.payment-due-hint{border:1px solid var(--line);background:var(--line);border-radius:4px;grid-template-columns:repeat(3,1fr);gap:1px;margin-bottom:20px;display:grid;overflow:hidden}.payment-due-hint span{color:var(--ink-soft);background:var(--paper-warm);padding:10px 12px;font-size:12px}.payment-due-hint strong{color:var(--ink);margin-top:2px;font-family:Amiri,serif;font-size:18px;display:block}.payment-history-section{border-top:1px solid var(--line);margin-top:4px;padding-top:18px}.payment-history-title{color:var(--ink-soft);margin-bottom:8px;font-size:13px;font-weight:500;display:block}.payment-history-state{color:var(--ink-muted);text-align:center;padding:14px 0;font-size:13px}.payment-history-state .loading-ring{width:16px;height:16px;margin-inline-end:6px}.payment-history-error{color:var(--danger)}.payment-history-error .icon-btn{margin-inline-start:8px}.history-list{list-style:none}.history-list li{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:14px;padding:10px 0;font-size:14px;display:flex}.history-list li:last-child{border-bottom:0}.history-allocation-badge{margin-inline-start:8px;font-size:10px}.advance-payment-body{gap:16px;display:grid}.advance-truth-note{color:#66511a;background:#fffaf0;border:1px solid #d9c999;border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.7}.advance-preview-table{border:1px solid var(--line-soft);border-radius:8px;max-height:270px}.advance-preview-table .directory-table{min-width:650px}.advance-preview-table th,.advance-preview-table td{padding:9px 12px}.advance-totals{margin-top:0}.advance-receipt-list li>div{min-width:0}.advance-receipt-list .history-date{line-height:1.7}.advance-estimate{border:1px solid var(--line);background:var(--paper-warm);border-radius:7px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;padding:13px 15px;display:grid}.advance-estimate>div{color:var(--ink-soft);justify-content:space-between;gap:12px;display:flex}.advance-estimate>div strong{color:var(--ink);white-space:nowrap}.advance-estimate>p,.advance-estimate>small{grid-column:1/-1;margin:0;line-height:1.7}.advance-estimate>small{color:var(--ink-muted)}.advance-estimate-warning{border-color:var(--warning);background:var(--warning-soft)}.advance-estimate-warning>p,.advance-estimate-difference strong{color:var(--danger);font-weight:700}@media (width<=600px){.advance-estimate{grid-template-columns:1fr}.advance-estimate>p,.advance-estimate>small{grid-column:1}}.history-date{color:var(--ink-muted);margin-top:2px;font-size:12px}.page-subtitle{color:var(--ink-muted);margin-top:2px;font-size:13px}.section-meta,.toolbar-note{color:var(--ink-muted);font-size:13px}.toolbar-warning{color:var(--warning);font-size:12px;font-weight:600}.toolbar-warning:before{content:"⚠ "}.attendance-monthly-section,.exam-detail-section{margin-top:20px}.attendance-table{table-layout:fixed;min-width:880px}.attendance-table .attendance-col-teacher{width:24%}.attendance-table .attendance-col-days{width:22%}.attendance-table .attendance-col-time{width:12%}.attendance-table .attendance-col-hours{width:18%}.attendance-table .attendance-col-actions{width:12%}.attendance-table .attendance-time-cell{text-align:center}.attendance-summary-table{min-width:760px}.payroll-table{min-width:1180px}.exam-rounds-table{min-width:760px}.exam-entries-table{table-layout:fixed;min-width:1040px}.exam-entries-table th:first-child,.exam-entries-table td:first-child{width:14%}.exam-entries-table th:nth-child(2),.exam-entries-table td:nth-child(2),.exam-entries-table th:nth-child(3),.exam-entries-table td:nth-child(3){width:13%}.exam-entries-table th:nth-child(4),.exam-entries-table td:nth-child(4){width:27%}.exam-entries-table th:nth-child(5),.exam-entries-table td:nth-child(5){text-align:center;width:11%}.exam-entries-table th:nth-child(6),.exam-entries-table td:nth-child(6){text-align:center;width:9%}.exam-entries-table th:nth-child(7),.exam-entries-table td:nth-child(7){width:13%}.exam-memorization-cell,.latest-memorization-hint span{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65}.memorization-textarea{resize:vertical;white-space:pre-wrap;min-height:96px;max-height:240px;line-height:1.7}.muted-row td{color:var(--ink-muted)!important}.muted-status{color:var(--ink-muted);font-size:12px}.compact-control{color:var(--ink-soft);align-items:center;gap:10px;font-size:13px;display:flex}.attendance-preview,.threshold-hint,.reminder-preview{border:1px solid var(--line);color:var(--ink-soft);background:var(--paper-warm);border-radius:4px;margin-top:12px;padding:12px 14px;font-size:13px;line-height:1.8}.attendance-preview small{color:var(--ink-muted)}.field-warning{color:var(--warning);margin-top:5px;font-weight:500}.field-warning.danger{color:var(--danger)}.snapshot-note{color:var(--ink-muted);margin-top:5px;font-size:11px}.detail-row:hover{background:var(--paper-warm)!important}.session-detail-list{gap:0;display:grid}.session-detail-list>div{border-bottom:1px dashed var(--line);grid-template-columns:1.2fr 1.4fr .8fr .8fr;gap:12px;padding:7px 0;font-size:13px;display:grid}.session-detail-list>div:last-child{border-bottom:0}.inline-detail-button{margin-inline-start:8px}.payroll-equation{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;font-size:13px;display:flex}.selected-row{background:var(--paper-warm);box-shadow:inset -3px 0 0 var(--accent)}.exam-rounds-table tbody tr:not(.empty-row){cursor:pointer}.exam-counts{flex-wrap:wrap;gap:8px;display:flex}.exam-counts span{border:1px solid var(--line);color:var(--ink-soft);background:#fff;border-radius:3px;padding:3px 8px;font-size:11px}.exam-counts .success-text{color:var(--success)}.exam-counts .danger-text{color:var(--danger)}.exam-empty-detail{color:var(--ink-muted);text-align:center;padding:36px 22px;font-style:italic}.settings-body{gap:2px;display:grid}.settings-subsection{border-top:1px solid var(--line);margin-top:10px;padding-top:18px}.settings-subsection h4{margin-bottom:7px;font-family:Amiri,serif;font-size:19px}.settings-subsection p{color:var(--ink-soft);margin-bottom:10px;font-size:12px;line-height:1.75}.settings-subsection textarea{border:1px solid var(--line);width:100%;font:inherit;resize:vertical;border-radius:3px;padding:10px 14px}.settings-subsection .section-meta{margin-top:8px;display:block}.reminder-preview{white-space:pre-wrap;margin-top:4px}.settings-bulk-actions{flex-wrap:wrap;gap:8px;display:flex}@media (width<=760px){.payment-toolbar{align-items:stretch}.payment-toolbar-spacer{display:none}.payment-toolbar .search-box{width:100%}.payment-toolbar .search-box input{width:100%;min-width:0}.summary-bar,.sponsor-payment-summary,.reminder-summary{grid-template-columns:1fr 1fr}.summary-item:last-child{grid-column:1/-1}.payment-due-hint,.payment-form-row{grid-template-columns:1fr}.session-detail-list>div{grid-template-columns:1fr 1fr}}.sponsored-fee{color:var(--ink-muted)!important;background:var(--paper-warm)!important}.student-teacher-notice{border-style:dashed;border-color:var(--warning);background:var(--paper-warm)}.student-teacher-notice p{color:var(--ink-soft);padding:14px 18px;font-size:13px;line-height:1.8}.student-teacher-empty-state{border:1px solid var(--line);background:var(--paper-warm);border-radius:4px;padding:16px 20px;line-height:1.8}.student-teacher-empty-state strong,.student-teacher-empty-state span{display:block}.student-teacher-empty-state strong{margin-bottom:8px;font-size:15px}.student-teacher-empty-state span{color:var(--ink-soft);font-size:13px}.suspension-control{border:1px solid var(--line);background:var(--paper-warm);border-radius:4px;justify-content:space-between;align-items:center;gap:18px;padding:13px 15px;display:flex}.suspension-control strong{font-size:14px;display:block}.suspension-control small{color:var(--ink-muted);margin-top:2px;font-size:11px;display:block}.suspension-switch{flex:0 0 46px;width:46px;height:25px;position:relative}.suspension-switch input{opacity:0;pointer-events:none;position:absolute}.suspension-switch>span:last-child{background:var(--line);cursor:pointer;border-radius:999px;transition:background .18s;position:absolute;inset:0}.suspension-switch>span:last-child:after{content:"";background:#fff;border-radius:50%;width:19px;height:19px;transition:transform .18s;position:absolute;top:3px;right:3px;box-shadow:0 1px 4px #1a1d243d}.suspension-switch input:checked+span{background:var(--warning)}.suspension-switch input:checked+span:after{transform:translate(-21px)}.suspension-switch input:focus-visible+span{outline:2px solid var(--ink);outline-offset:2px}.workdays-fieldset{border:0;min-width:0;padding:0}.workday-mode,.workdays-grid{flex-wrap:wrap;gap:10px;display:flex}.workday-mode{margin-bottom:10px}.workday-mode label,.workdays-grid label{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:4px;align-items:center;gap:6px;margin:0;padding:6px 10px;font-size:14px;font-weight:400;display:inline-flex}.workday-mode label:has(input:checked){border-color:var(--ink);color:var(--ink)}.workday-mode input,.workdays-grid input{width:auto;accent-color:var(--accent);padding:0}.workdays-grid label:has(input:disabled){cursor:default;opacity:.72}.confirm-danger,.confirm-danger:hover:not(:disabled){border-color:var(--danger);background:var(--danger)}.toast{z-index:200;color:var(--paper);background:var(--ink);box-shadow:var(--shadow-lift);opacity:0;pointer-events:none;border-radius:3px;padding:12px 20px;font-size:14px;transition:all .25s;position:fixed;bottom:24px;left:24px;transform:translateY(10px)}.toast.show{opacity:1;transform:translateY(0)}.toast.success{background:var(--success)}.toast.danger{background:var(--danger)}.auth-page,.state-page{place-items:center;min-height:100dvh;padding:32px 20px;display:grid}.auth-frame,.state-card{border:1px solid var(--line);background:var(--paper);width:min(100%,520px);box-shadow:var(--shadow-lift);border-radius:6px;overflow:hidden}.auth-card-header{color:var(--paper);background:var(--ink);padding:18px 22px}.auth-brand h1{font-size:20px}.auth-brand p{color:var(--ink-muted);letter-spacing:.12em;margin-top:-1px;font-size:11px}.auth-panel{background:var(--paper);padding:26px}.auth-kicker,.section-kicker{color:var(--accent);letter-spacing:.05em;font-size:12px;font-weight:500}.auth-form-wrap h2,.state-card h1{color:var(--ink);margin-top:4px;font-family:Amiri,serif;font-size:30px;font-weight:700}.form-intro,.state-card>p:not(.section-kicker){color:var(--ink-muted);margin-top:4px;font-size:13px}.login-form{margin-top:22px}.form-field{margin-bottom:18px}.form-field label{color:var(--ink-soft);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.form-field input{border:1px solid var(--line);width:100%;min-height:44px;color:var(--ink);background:#fff;border-radius:3px;padding:10px 14px;font-size:14px;transition:border-color .15s}.form-field input:focus{border-color:var(--ink);outline:none}.primary-action{border:1px solid var(--ink);color:var(--paper);background:var(--ink);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex}.primary-action:hover:not(:disabled){border-color:var(--ink-soft);background:var(--ink-soft)}.login-submit{border-color:var(--accent);background:var(--accent);width:100%;min-height:44px}.login-submit:hover:not(:disabled){background:#6d2424;border-color:#6d2424}.button-spinner,.loading-ring{border:2px solid #faf8f361;border-top-color:currentColor;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}.auth-note{color:var(--ink-muted);text-align:center;margin-top:20px;font-size:12px}.inline-notice{border:1px solid;border-radius:4px;align-items:flex-start;gap:8px;margin:18px 0 -2px;padding:11px 13px;font-size:13px;line-height:1.7;display:flex}.inline-notice.danger{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}.inline-notice.warning{color:var(--warning);background:var(--warning-soft);border-color:#e8d89a}.notice-mark{flex:none;font-weight:700}.state-card{text-align:center;padding:26px}.state-card .primary-action{margin-top:24px}.state-card .inline-notice{text-align:right}.state-brand-mark{margin:0 auto 20px}.state-card-compact .loading-ring{border-color:var(--line);border-top-color:var(--accent);width:26px;height:26px;margin-bottom:12px}.state-card-compact h1{font-size:24px}.state-symbol{color:var(--danger);margin:18px auto 4px;font-family:Tajawal,sans-serif;font-size:28px;font-weight:700;display:block}.state-symbol.warning{color:var(--warning)}.account-reference{border:1px solid var(--line);color:var(--ink-muted);background:var(--paper-warm);border-radius:4px;margin-top:20px;padding:11px 14px}.account-reference span{font-size:11px;display:block}.account-reference strong{overflow-wrap:anywhere;color:var(--ink);margin-top:3px;font-size:13px;display:block}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=768px){.app-header{padding:14px 16px}.primary-navigation{padding:0 16px}.workspace{padding:20px 16px}.workspace-heading{flex-direction:column;align-items:flex-start;gap:12px}.placeholder-header{flex-direction:column;align-items:flex-start;gap:4px}.directory-page .page-header{flex-direction:column;align-items:flex-start;gap:12px}.form-row{grid-template-columns:1fr}}@media (width<=560px){.app-header{flex-wrap:wrap;gap:12px}.app-brand{gap:10px;width:100%}.app-brand h1{max-width:190px;font-size:17px}.app-brand .brand-mark{flex-basis:34px;width:34px;height:34px}.session-indicator{display:none}.header-actions{width:100%}.header-tool-button,.logout-button{flex:1;justify-content:center;padding-inline:7px;font-size:12px}.logout-button{white-space:nowrap;min-height:44px;padding-inline:10px}.nav-item{padding-inline:18px}.workspace-heading h1{font-size:29px}.auth-page,.state-page{padding:20px 16px}.auth-panel,.state-card{padding:22px 20px}.auth-card-header{padding:16px 20px}.auth-brand h1{font-size:18px}.section-head{flex-direction:column;align-items:stretch;gap:12px}.compact-control{flex-direction:column;align-items:stretch}.filter-search-row,.search-box input{width:100%;min-width:0}.filter-search-row{flex-direction:column;align-items:stretch}.status-filter{width:100%}.status-filter .gf-btn{flex:1;padding-inline:8px}.modal-overlay{padding:14px}.modal-header,.modal-body,.modal-footer{padding-inline:20px}.modal-footer{flex-wrap:wrap}.roster-toolbar{flex-direction:column;align-items:stretch}.roster-toolbar .btn{align-self:flex-start}.roster-replacement-controls{grid-template-columns:1fr 1fr}.roster-replacement-controls select{grid-column:1/-1}.toast{text-align:center;bottom:16px;left:16px;right:16px}}.simple-print-actions,.exam-detail-actions{flex-wrap:wrap;gap:8px;display:flex}.simple-print-actions{justify-content:flex-end;margin:-4px 0 12px}.backlog-filter{white-space:nowrap}.backlog-summary{border:1px solid color-mix(in srgb, var(--accent) 35%, var(--line));background:var(--paper-warm);border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;padding:13px 16px;display:flex}.backlog-summary span{color:var(--ink-soft);font-size:13px}.backlog-table{min-width:780px}.backlog-table th:first-child{width:22%}.backlog-table th:nth-child(2){width:48%}.backlog-table th:nth-child(3),.backlog-table th:nth-child(4){width:15%}.backlog-months{flex-wrap:wrap;gap:6px;display:flex}.backlog-month-chip{border:1px solid var(--line);color:var(--ink-soft);background:#fff;border-radius:999px;align-items:center;gap:5px;padding:5px 8px;font-size:12px;display:inline-flex}.backlog-month-chip b{color:var(--danger)}@media (width<=760px){.simple-print-actions{justify-content:stretch}.simple-print-actions .btn{flex:210px}.exam-detail-actions{width:100%}}@media (height<=620px){.auth-page,.state-page{align-items:start}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.analytics-page{gap:18px;display:grid}.analytics-window,.analytics-panel,.analytics-summary article,.analytics-state{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow);border-radius:14px}.analytics-window{flex-wrap:wrap;align-items:center;gap:14px;padding:14px 16px;display:flex}.range-buttons{flex-wrap:wrap;gap:6px;display:flex}.range-buttons button{border:1px solid var(--line);color:var(--ink-soft);background:#fff;border-radius:999px;padding:8px 13px}.range-buttons button.active{border-color:var(--accent);background:var(--accent);color:#fff}.custom-range{align-items:end;gap:8px;display:flex}.custom-range label{color:var(--ink-muted);gap:3px;font-size:12px;display:grid}.custom-range input{min-width:145px}.range-caption{color:var(--ink-muted);margin-inline-start:auto;font-size:13px}.analytics-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.analytics-summary article{gap:4px;padding:17px;display:grid}.analytics-summary span,.analytics-summary small{color:var(--ink-muted)}.analytics-summary strong{color:var(--accent);font:700 25px/1.25 Amiri,serif}.analytics-summary strong.risk{color:var(--danger)}.analytics-summary strong.good{color:var(--success)}.analytics-summary small{font-size:11px;line-height:1.5}.analytics-panel{scroll-margin-top:16px;overflow:hidden}.analytics-jump{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.analytics-jump>span{color:var(--ink-soft);font-size:14px}.scroll-top-fab{z-index:900;background:var(--paper);width:46px;height:46px;color:var(--ink-soft);box-shadow:0 6px 20px #1a1d242e, 0 0 0 1px var(--line);cursor:pointer;border:0;border-radius:50%;place-items:center;font-size:20px;transition:transform .15s;display:grid;position:fixed;bottom:22px;right:22px}.scroll-top-fab:hover{transform:translateY(-2px)}@media print{.analytics-jump,.scroll-top-fab{display:none}}.analytics-panel .section-head{padding:17px 18px 10px}.analytics-panel .section-head h2,.analytics-panel .section-head p{margin:0}.analytics-panel .section-head p{color:var(--ink-muted);margin-top:4px;font-size:13px}.analytics-filters{grid-template-columns:minmax(220px,1fr) minmax(170px,240px) auto;gap:10px;padding:4px 18px 15px;display:grid}.analytics-table-shell{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.analytics-table-shell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.analytics-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:760px;font-size:14px}.analytics-table th,.analytics-table td{border-bottom:1px solid var(--line-soft);vertical-align:middle;text-align:center;padding:13px 16px}.analytics-table th{color:var(--ink-muted);background:var(--paper-warm);white-space:nowrap;font-size:12px;font-weight:600;line-height:1.5}.analytics-table tbody tr:last-child td{border-bottom:0}.analytics-table tbody tr{transition:background .1s}.analytics-table tbody tr:hover{background:var(--paper-warm)}.teacher-analytics-table .analytics-name-column{width:30%}.teacher-analytics-table .analytics-count-column{width:15%}.teacher-analytics-table .analytics-average-column{width:22%}.teacher-analytics-table .analytics-records-column{width:18%}.student-analytics-table{min-width:860px}.student-analytics-table .analytics-student-column{width:19%}.student-analytics-table .analytics-teacher-column{width:15%}.student-analytics-table .analytics-number-column{width:7%}.student-analytics-table .analytics-percent-column{width:10%}.student-analytics-table .analytics-date-column{width:11%}.student-analytics-table .analytics-text-column{width:15%}.student-analytics-table .analytics-action-column{width:8%}.teacher-analytics-table th:first-child,.teacher-analytics-table td:first-child,.student-analytics-table th:first-child,.student-analytics-table td:first-child,.student-analytics-table th:nth-child(2),.student-analytics-table td:nth-child(2),.student-analytics-table th:nth-child(7),.student-analytics-table td:nth-child(7),.student-analytics-table th:nth-child(8),.student-analytics-table td:nth-child(8){text-align:right}.teacher-analytics-table td:first-child,.student-analytics-table td:first-child,.student-analytics-table td:nth-child(2){overflow-wrap:anywhere;line-height:1.55}.exam-result-filter{justify-content:flex-start;gap:6px;padding:0 18px 14px;display:flex}.dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.dashboard-stats article{border:1px solid var(--line);background:var(--paper);min-height:126px;box-shadow:var(--shadow-sm);border-radius:8px;flex-direction:column;justify-content:space-between;padding:20px;display:flex}.dashboard-stats span{color:var(--ink-muted);font-size:13px}.dashboard-stats strong{font-family:Amiri,serif;font-size:31px}.dashboard-stats .good{border-top:4px solid var(--success)}.dashboard-stats .warm{border-top:4px solid var(--warning)}.dashboard-stats .net{border-top:4px solid var(--accent)}.dashboard-stats .risk{border-top:4px solid var(--danger)}.dashboard-alerts{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.dashboard-alert{border:1px solid var(--danger);background:var(--danger-soft);text-align:right;color:var(--ink);font:inherit;border-radius:7px;gap:5px;padding:15px;display:grid}.dashboard-alert span{color:var(--ink-soft);font-size:13px}.dashboard-alerts button{cursor:pointer}.dashboard-debts{margin-top:16px}.dashboard-stats article{box-shadow:var(--shadow)}@media (width<=760px){.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.dashboard-stats article{min-height:108px;padding:15px}.dashboard-alerts{grid-template-columns:1fr}}.analytics-state,.analytics-empty{color:var(--ink-muted);text-align:center;padding:34px 20px}.analytics-state{place-items:center;gap:10px;display:grid}.analytics-empty{border-top:1px solid var(--line)}.status-badge.status-neutral{background:var(--paper-warm);color:var(--ink-muted)}.activity-body{max-height:min(62vh,620px);overflow-y:auto}.activity-timeline{gap:10px;display:grid}.activity-timeline article{border:1px solid var(--line);background:#fff;border-radius:12px;grid-template-columns:42px 1fr;gap:12px;padding:13px;display:grid}.activity-mark{background:var(--paper-warm);width:38px;height:38px;color:var(--accent);border-radius:50%;place-items:center;font-weight:800;display:grid}.activity-timeline article.attendance .activity-mark{background:var(--success-soft)}.activity-title{justify-content:space-between;gap:12px;display:flex}.activity-title time,.activity-timeline small{color:var(--ink-muted);font-size:12px}.activity-timeline p{color:var(--ink-soft);margin:5px 0}.activity-memorization-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;display:block}@media (width<=900px){.analytics-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-filters{grid-template-columns:1fr 1fr}.analytics-filters .status-filter{grid-column:1/-1}}@media (width<=560px){.analytics-window,.custom-range{flex-direction:column;align-items:stretch}.range-caption{margin-inline-start:0}.analytics-summary,.analytics-filters{grid-template-columns:1fr}.analytics-filters .status-filter{grid-column:auto;overflow-x:auto}.activity-title{flex-direction:column;align-items:flex-start;gap:2px}}.print-name-list-root,.print-report-root{display:none}@media print{@page{margin:18mm}body{color:#17231d!important;direction:rtl!important;background:#fff!important}body>:not(.print-name-list-root):not(.print-report-root){display:none!important}.print-report-root{font-size:12px;color:#17231d!important;background:#fff!important;font-family:Tajawal,Noto Kufi Arabic,sans-serif!important;display:block!important}.print-report-root header{text-align:center;border-bottom:2px solid #17231d;margin-bottom:16px;padding-bottom:10px}.print-report-root header p{color:#526259;margin:0;font-size:12px;line-height:1.7}.print-report-root header .report-center{color:#17231d;font-size:16px;font-weight:700}.print-report-root h1{margin:6px 0;font-family:Amiri,Tajawal,serif;font-size:22px}.print-report-root .report-block{margin-top:18px}.print-report-root h2{break-after:avoid;margin:0 0 4px;font-size:15px}.print-report-root .report-explanation{color:#526259;break-after:avoid;margin:0 0 8px;font-size:11px;line-height:1.6}.print-report-root table{border-collapse:collapse;width:100%}.print-report-root thead{display:table-header-group}.print-report-root tr{break-inside:avoid}.print-report-root th,.print-report-root td{text-align:center;border:1px solid #9aa59f;padding:4px 6px;line-height:1.5}.print-report-root th{-webkit-print-color-adjust:exact;print-color-adjust:exact;font-weight:700;background:#e9eee9!important}.print-report-root td:first-child{text-align:right;font-weight:600}.print-report-root .report-summary{margin:6px 0 0;font-size:12px;font-weight:700}.print-report-root .report-empty{color:#526259;margin:0}.print-name-list-root{max-width:760px;color:#17231d!important;width:auto!important;box-shadow:none!important;background:#fff!important;margin:0 auto!important;padding:0!important;font-family:Tajawal,Noto Kufi Arabic,sans-serif!important;display:block!important;position:static!important}.print-name-list-root>p{text-align:center;color:#526259;margin:0;font-size:14px;line-height:1.65}.print-name-list-root>p:first-child{color:#17231d;font-size:17px;font-weight:700}.print-name-list-root h1{text-align:center;margin:12px 0 28px;font-family:Amiri,Tajawal,serif;font-size:25px;line-height:1.5}.print-name-list-root ol{columns:2;column-gap:48px;margin:0;padding:0 2rem 0 0}.print-name-list-root li{break-inside:avoid;padding-inline-start:6px;font-size:18px;line-height:1.9}}.sponsor-change-history{margin-bottom:14px}.sponsor-change-summary{color:var(--ink-soft);margin:6px 0;font-size:13px;line-height:1.7}.sponsor-change{border-inline-start:4px solid var(--line)}.sponsor-change-added{border-inline-start-color:var(--success)}.sponsor-change-removed{border-inline-start-color:var(--danger)}.status-badge{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.status-badge.status-paid{background:var(--success-soft);color:var(--success)}.status-badge.status-unpaid{background:var(--danger-soft);color:var(--danger)}.subject-days-body{max-height:min(62vh,620px);overflow-y:auto}.analytics-table.subject-days-table{table-layout:auto;min-width:0}.analytics-table.subject-days-table th,.analytics-table.subject-days-table td{white-space:nowrap;padding:10px 8px}.analytics-table.subject-days-table td:last-child{white-space:normal}.subject-missed-note{color:var(--danger);font-size:13px}.report-options{gap:10px;display:grid}.report-option{border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.report-option span{gap:2px;display:grid}.report-option small{color:var(--ink-muted);font-size:12px}.alerts-fab{z-index:900;background:var(--paper);width:54px;height:54px;color:var(--ink-soft);box-shadow:0 6px 20px #1a1d242e, 0 0 0 1px var(--line);cursor:pointer;border:0;border-radius:50%;place-items:center;transition:transform .15s,box-shadow .15s;display:grid;position:fixed;bottom:22px;left:22px}.alerts-fab:hover{box-shadow:0 10px 26px #1a1d2438, 0 0 0 1px var(--line);transform:translateY(-2px)}.alerts-fab.has-alerts{background:var(--accent);color:#fff;box-shadow:0 6px 20px #8b2e2e59}.alerts-fab-count{border:2px solid var(--paper);color:#fff;text-align:center;background:#c0392b;border-radius:999px;min-width:22px;height:22px;padding:0 6px;font-size:12px;font-weight:700;line-height:18px;position:absolute;top:-4px;right:-4px}.alerts-drawer-backdrop{z-index:1000;background:#1a1d2459;position:fixed;inset:0}.alerts-drawer{background:var(--paper);flex-direction:column;width:min(420px,100vw);animation:.18s ease-out alerts-slide;display:flex;position:fixed;top:0;bottom:0;left:0;box-shadow:8px 0 32px #1a1d2433}@keyframes alerts-slide{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:none}}.alerts-drawer-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 22px 14px;display:flex}.alerts-drawer-head h2{margin:0;font-family:Amiri,serif;font-size:24px}.alerts-drawer-head p{color:var(--ink-muted);margin:2px 0 0;font-size:13px}.alerts-drawer-close{border:1px solid var(--line);width:34px;height:34px;color:var(--ink-soft);cursor:pointer;background:#fff;border-radius:50%}.alerts-drawer-body{flex:1;align-content:start;gap:18px;padding:16px 18px 28px;display:grid;overflow-y:auto}.alerts-state{color:var(--ink-muted);text-align:center;place-items:center;gap:10px;padding:40px 10px;display:grid}.alerts-state-clear{color:var(--success);font-weight:600}.alert-group h3{align-items:center;gap:8px;margin:0 0 10px;font-size:15px;display:flex}.alert-group-count{background:var(--paper-warm);min-width:24px;color:var(--ink-soft);text-align:center;border-radius:999px;margin-inline-start:auto;padding:1px 8px;font-size:12px}.alert-list{gap:9px;margin:0;padding:0;list-style:none;display:grid}.alert-card{border:1px solid var(--line);border-inline-start:4px solid var(--alert-color,var(--warning));background:#fff;border-radius:10px;gap:4px;padding:12px 14px;display:grid}.alert-card strong{font-size:14px}.alert-card p{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.7}.alert-done{border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);font:inherit;cursor:pointer;border-radius:999px;justify-self:start;margin-top:4px;padding:4px 12px;font-size:12px}.alert-done:hover{border-color:var(--success);color:var(--success);background:var(--success-soft)}.alert-dot{background:var(--alert-color,var(--warning));border-radius:50%;flex:none;width:9px;height:9px}.alert-tag{color:var(--alert-color,var(--warning));align-items:center;gap:6px;font-size:12px;font-weight:600;display:inline-flex}.alert-kind-consecutive_absence{--alert-color:var(--danger)}.alert-kind-low_attendance{--alert-color:var(--warning)}.alert-kind-subject_missed{--alert-color:var(--accent-soft)}.alert-kind-teacher_missing{--alert-color:#5a6b8c}.alert-kind-late_attendance{--alert-color:#8a6d3b}.alert-card .alert-note{background:var(--paper-warm);color:var(--ink-soft);border-radius:8px;margin-top:2px;padding:5px 10px;font-size:12px}.late-record-note{background:var(--paper-warm);color:#8a6d3b;white-space:nowrap;border-radius:999px;margin-inline-start:6px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-block}.future-month-note{color:var(--ink-soft);align-items:center;gap:10px;margin:0 0 14px;font-size:13px;display:flex}.future-month-note span{background:var(--success-soft);color:var(--success);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700}@media (width<=560px){.alerts-fab{bottom:14px;left:14px}}.sponsor-history{border:1px solid var(--line);background:var(--paper-warm);border-radius:12px;gap:10px;margin:4px 0 16px;padding:14px;display:grid}.sponsor-history-title{margin:0;font-family:Amiri,serif;font-size:18px}.sponsor-history-box{border:1px solid var(--line-soft);background:#fff;border-radius:9px;gap:3px;padding:10px 12px;display:grid}.sponsor-history-box>span{color:var(--ink-muted);font-size:12px}.sponsor-history-box>strong{font-size:15px}.sponsor-history-box>small,.sponsor-history-box>p{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.7}.sponsor-history-now{border-color:var(--success);background:var(--success-soft)}.sponsor-history-uncounted{border-color:var(--warning);background:var(--warning-soft)}.sponsor-timeline{gap:8px;margin:0;padding:0;list-style:none;display:grid}.sponsor-event{border:1px solid var(--line-soft);border-inline-start:4px solid var(--ink-muted);background:#fff;border-radius:9px;grid-template-columns:30px 1fr;align-items:start;gap:10px;padding:10px 12px;display:grid}.sponsor-event p{color:var(--ink-soft);margin:3px 0 0;font-size:13px;line-height:1.7}.sponsor-event-head{justify-content:space-between;gap:10px;display:flex}.sponsor-event-head time{color:var(--ink-muted);white-space:nowrap;font-size:12px}.sponsor-event-icon{background:var(--paper-warm);border-radius:50%;place-items:center;width:28px;height:28px;font-weight:700;display:grid}.sponsor-event-added{border-inline-start-color:var(--success)}.sponsor-event-added .sponsor-event-icon{background:var(--success-soft);color:var(--success)}.sponsor-event-removed{border-inline-start-color:var(--danger)}.sponsor-event-removed .sponsor-event-icon{background:var(--danger-soft);color:var(--danger)}.sponsor-event-info{border-inline-start-color:var(--warning)}.sponsor-event-info .sponsor-event-icon{background:var(--warning-soft);color:var(--warning)}.fines-fab{z-index:900;background:var(--paper);width:54px;height:54px;color:var(--ink-soft);box-shadow:0 6px 20px #1a1d242e, 0 0 0 1px var(--line);cursor:pointer;border:0;border-radius:50%;place-items:center;transition:transform .15s,box-shadow .15s;display:grid;position:fixed;bottom:88px;left:22px}.fines-fab:hover{box-shadow:0 10px 26px #1a1d2438, 0 0 0 1px var(--line);transform:translateY(-2px)}.fines-fab.active{color:var(--accent);box-shadow:0 6px 20px #1a1d242e, 0 0 0 2px var(--accent)}.fines-fab-count{border:2px solid var(--paper);color:#fff;text-align:center;background:#8a6d3b;border-radius:999px;min-width:22px;height:22px;padding:0 6px;font-size:12px;font-weight:700;line-height:18px;position:absolute;top:-4px;right:-4px}@media (width<=560px){.fines-fab{bottom:78px;left:14px}}.nav-count-badge.nav-count-muted{background:#8a6d3b}.fines-header-actions{flex-wrap:wrap;gap:8px;display:flex}.fines-empty-types{border:1px dashed var(--line);background:var(--paper-warm);border-radius:10px;justify-items:start;gap:6px;margin-bottom:16px;padding:16px 18px;display:grid}.fines-empty-types span{color:var(--ink-soft);font-size:13px}.fines-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.fines-summary article{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-sm);border-radius:8px;gap:6px;padding:14px 16px;display:grid}.fines-summary span{color:var(--ink-muted);font-size:13px}.fines-summary strong{font-family:Amiri,serif;font-size:26px}.fines-summary .good{border-top:4px solid var(--success)}.fines-summary .warm{border-top:4px solid var(--warning)}@media (width<=760px){.fines-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.fines-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.fines-toolbar .search-box{margin-inline-start:auto}.fines-note-cell{max-width:220px;color:var(--ink-soft);font-size:13px}.fine-paid-toggle{border:1px solid var(--danger);background:var(--danger-soft);min-width:82px;color:var(--danger);font:inherit;cursor:pointer;white-space:nowrap;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700}.fine-paid-toggle.paid{border-color:var(--success);background:var(--success-soft);color:var(--success)}.fine-paid-toggle:disabled{opacity:.6;cursor:default}.fine-student-list{width:100%;margin-top:6px}.fine-paid-check{cursor:pointer;align-items:center;gap:8px;font-weight:600;display:inline-flex}.fine-type-new td{background:var(--paper-warm)}.alert-kind-fine_new{--alert-color:#8a6d3b}.alert-kind-fine_unpaid{--alert-color:#b5651d}.dashboard-stats .stat-split{gap:4px;margin-top:6px;display:grid}.dashboard-stats .stat-split div{border-top:1px solid var(--line);color:var(--ink-soft);justify-content:space-between;align-items:baseline;padding-top:4px;font-size:13px;display:flex}.dashboard-stats .stat-split b{color:var(--ink);font-size:16px}.dashboard-stats .fines-stat{border-top:4px solid #8a6d3b}.status-filter .status-count-btn{justify-items:center;gap:1px;min-width:64px;line-height:1.2;display:inline-grid}.status-filter .status-count-btn b{font-size:15px;font-weight:700}.fines-toolbar>select{border:1px solid var(--line);min-height:44px;font:inherit;background:#fff;border-radius:3px;padding:0 12px;font-size:13px}.ledger-header-actions{flex-wrap:wrap;gap:8px;display:flex}.ledger-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.ledger-summary article{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-sm);border-radius:8px;gap:6px;padding:14px 16px;display:grid}.ledger-summary span{color:var(--ink-muted);font-size:13px}.ledger-summary strong{text-align:right;font-family:Amiri,serif;font-size:26px}.ledger-summary .good{border-top:4px solid var(--success)}.ledger-summary .warm{border-top:4px solid var(--warning)}.ledger-summary .balance{border-top:4px solid var(--ink)}.ledger-summary .balance.negative strong{color:var(--danger)}@media (width<=760px){.ledger-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}.ledger-toolbar{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:10px;display:flex}.ledger-toolbar-note{color:var(--ink-muted);margin-inline-start:auto;font-size:13px}.ledger-table td[dir=ltr]{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.ledger-table .ledger-in{color:var(--success);font-weight:700}.ledger-table .ledger-out{color:var(--danger);font-weight:700}.ledger-table .ledger-balance{font-weight:700}.ledger-table .ledger-balance.negative{color:var(--danger)}.ledger-description{min-width:200px}.ledger-description small{color:var(--ink-muted);margin-top:2px;font-size:12px;font-weight:400;display:block}.ledger-table tfoot td{background:var(--paper-warm);font-weight:700}.directory-table.ledger-custody-table{min-width:0}.ledger-custody-table td[dir=ltr]{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.ledger-custody-table .ledger-in,.ledger-custody-table .ledger-out,.ledger-custody-table .ledger-balance{font-weight:700}.ledger-custody-table .ledger-in{color:var(--success)}.ledger-custody-table .ledger-out,.ledger-custody-table .ledger-balance.negative{color:var(--danger)}.ledger-custody-total td{background:var(--paper-warm);font-weight:700}.ledger-custody-list{border-top:1px solid var(--line);gap:0;margin:0;padding:0;list-style:none;display:grid}.ledger-custody-list li{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:12px;padding:12px 22px;display:flex}.ledger-custody-list li:last-child{border-bottom:0}.ledger-custody-list span{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.ledger-custody-list small{color:var(--ink-muted);font-size:12px}.ledger-custody-empty{border-top:1px solid var(--line);color:var(--ink-muted);margin:0;padding:16px 22px;font-size:13px}.ledger-table tfoot td{border-top:2px solid var(--ink);padding:14px 22px}.directory-table.ledger-table{min-width:820px}.ledger-field-label{color:var(--ink-soft);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.ledger-choice{display:flex}.ledger-choice .gf-btn{flex:1}.status-filter.ledger-choice .gf-btn.ledger-choice-in,.status-filter.ledger-choice .gf-btn.ledger-choice-in:hover{color:var(--paper);background:var(--success)}.status-filter.ledger-choice .gf-btn.ledger-choice-out,.status-filter.ledger-choice .gf-btn.ledger-choice-out:hover{color:var(--paper);background:var(--danger)}@media (width>=900px){.primary-navigation{padding-inline:20px}.nav-item{padding-inline:12px}}.ledger-description small[dir=ltr]{text-align:right}.donors-table tbody tr.donor-paid{background:var(--success-soft)}.donors-table tbody tr.donor-paid:hover{background:#dcebe0}.director-link{border:1px solid var(--line);background:var(--paper-warm);border-radius:8px;gap:6px;margin-bottom:18px;padding:14px 16px;display:grid}.director-link>span{font-size:13px;font-weight:700}.director-link>div{gap:8px;display:flex}.director-link input{border:1px solid var(--line);min-width:0;font:inherit;background:#fff;border-radius:3px;flex:1;padding:8px 12px;font-size:13px}.director-link small{color:var(--ink-soft);font-size:12px;line-height:1.7}.donor-history-list{border-top:0}.donor-history-list li{padding-inline:0}.whats-new-list{counter-reset:release;gap:10px;margin:0;padding:0;list-style:none;display:grid}.whats-new-list li{border:1px solid var(--line);background:var(--paper);counter-increment:release;border-radius:10px;align-items:flex-start;gap:14px;padding:13px 15px;display:flex}.whats-new-list li:before{content:counter(release);background:var(--accent);color:#fff;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:grid}.whats-new-list li>div{flex:1;gap:4px;display:grid}.whats-new-list strong{font-size:15px}.whats-new-list p{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.8}.whats-new-list .btn{flex:none;align-self:center}.directory-table.fine-types-table{table-layout:fixed;min-width:0}.fine-types-table th:first-child{width:auto}.fine-types-table th:nth-child(2){width:110px}.fine-types-table th:nth-child(3){width:90px}.fine-types-table th:nth-child(4){width:150px}.fine-types-table input[type=text]{width:100%;min-width:0}.fine-types-table input[type=number]{width:100%}.fine-types-table .row-actions{flex-wrap:nowrap}.fine-active-check{cursor:pointer;white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:inline-flex}.fine-paid-check-cell{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:#fff;border-radius:999px;align-items:center;gap:7px;padding:4px 12px;font-size:13px;font-weight:700;display:inline-flex}.fine-paid-check-cell input{width:17px;height:17px;accent-color:var(--success);cursor:pointer;margin:0}.fine-paid-check-cell.paid{border-color:var(--success);background:var(--success-soft);color:var(--success)}.fine-paid-check-cell small{font-weight:500}.alerts-bulk-bar{border-bottom:1px solid var(--line);background:var(--paper-warm);color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 18px;font-size:13px;display:flex}.alerts-bulk-bar span{color:var(--ink);flex:100%;font-weight:600}.alerts-done-all{margin-top:0}.dashboard-stats .stat-wide{grid-column:span 2}.whats-new-body{gap:18px;display:grid}.whats-new-day h3{border-bottom:1px solid var(--line);color:var(--accent);margin:0 0 10px;padding-bottom:6px;font-size:15px}.whats-new-day .whats-new-list{counter-reset:release}.reminder-target .gf-btn{white-space:nowrap}.reminder-session{gap:10px;display:grid}.reminder-session-bar{background:var(--line-soft);border-radius:999px;height:6px;overflow:hidden}.reminder-session-bar span{background:var(--success);height:100%;transition:width .2s;display:block}.reminder-session-now{color:var(--ink-muted);margin:4px 0 0;font-size:13px}.reminder-session-name{font-family:Amiri,serif;font-size:26px}.reminder-session-steps{color:var(--ink-soft);margin:0;padding-inline-start:20px;font-size:14px;line-height:1.9}.reminder-session-next{background:var(--paper-warm);border-radius:6px;margin:0;padding:10px 12px;font-size:13px}.reminder-session-actions{flex-wrap:wrap}.reminder-session-actions .btn{white-space:nowrap}.report-teachers{border:1px solid var(--line);border-radius:8px;gap:8px;margin:0;padding:12px;display:grid}.report-teachers legend{padding:0 6px;font-size:14px;font-weight:700}.report-teachers legend small{color:var(--ink-muted);margin-inline-start:6px;font-size:12px;font-weight:400}.report-teachers-tools{flex-wrap:wrap;gap:6px;display:flex}.report-teachers-tools input{border:1px solid var(--line);min-width:150px;font:inherit;background:#fff;border-radius:3px;flex:1;padding:7px 12px;font-size:13px}.report-teachers-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px;max-height:220px;padding:2px;display:grid;overflow-y:auto}.report-teachers-list label{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:14px;display:flex}.report-teachers-list label.chosen{background:var(--success-soft)}.report-teachers-list input{width:17px;height:17px;accent-color:var(--success);flex:none}.report-teachers-list span{display:grid}.report-teachers-list small{color:var(--ink-muted);font-size:11px}.report-teachers-empty,.report-teachers-warning{color:var(--ink-muted);grid-column:1/-1;margin:0;font-size:13px}.report-teachers-warning{color:var(--danger)}@media (width<=560px){.report-teachers-list{grid-template-columns:1fr}}.report-scope{background:var(--paper-warm);border-radius:8px;gap:6px;margin:-4px 0 2px;padding:10px 12px;display:grid}.report-scope>span{font-size:13px;font-weight:700}.report-scope .status-filter{justify-self:start}.report-scope small{color:var(--ink-muted);font-size:12px}.whatsapp-btn{color:#1f7a4d;border-color:#b9dcc8;align-items:center;text-decoration:none;display:inline-flex}.icon-btn.whatsapp-btn:hover:not(:disabled),.whatsapp-menu[open]>summary{color:#1f7a4d;background:#e8f5ee;border-color:#b9dcc8}.phone-whatsapp{margin-top:6px}.roster-actions{flex-wrap:nowrap;flex:none}.whatsapp-menu{display:inline-block;position:relative}.whatsapp-menu>summary{cursor:pointer;list-style:none}.whatsapp-menu>summary::-webkit-details-marker{display:none}.whatsapp-menu-list{z-index:30;inset-inline-start:0;border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:6px;gap:4px;padding:6px;display:grid;position:absolute;top:calc(100% + 4px)}.whatsapp-menu-list .whatsapp-btn{white-space:nowrap;direction:ltr;justify-content:center}.weekly-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.weekly-grid.weekly-loading{opacity:.55}.weekly-card{border:1px solid var(--line);background:var(--paper);box-shadow:var(--shadow-sm);border-radius:8px;align-content:start;gap:12px;padding:16px 18px;display:grid}.weekly-card.weekly-wide{grid-column:1/-1}.weekly-card>header{justify-content:space-between;align-items:center;gap:10px;display:flex}.weekly-card h2{margin:0;font-family:Amiri,serif;font-size:21px}.weekly-figures{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.weekly-figures>div{border-inline-start:4px solid var(--success);background:#fff;border-radius:6px;gap:3px;padding:10px 12px;display:grid}.weekly-figures>div.warm{border-inline-start-color:var(--warning)}.weekly-figures>div.bad{border-inline-start-color:var(--danger)}.weekly-figures span{color:var(--ink-muted);font-size:12px}.weekly-figures strong{text-align:right;font-family:Amiri,serif;font-size:24px}.weekly-figures small{color:var(--ink-soft);font-size:12px}.weekly-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.weekly-list li{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:10px;padding:8px 0;font-size:14px;display:flex}.weekly-list li:last-child{border-bottom:0}.weekly-list li.more{color:var(--ink-muted);font-size:13px}.weekly-card .bad{color:var(--danger);font-weight:700}.weekly-card .warm{color:var(--warning);font-weight:700}.weekly-card .muted{color:var(--ink-muted)}.weekly-good{background:var(--success-soft);color:var(--success);border-radius:6px;margin:0;padding:10px 12px;font-size:14px}.weekly-note{color:var(--ink-muted);margin:0;font-size:12px}.weekly-teachers{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.weekly-teachers>div{border:1px solid var(--line-soft);background:#fff;border-radius:6px;padding:10px 12px}.weekly-teachers h3{justify-content:space-between;margin:0 0 6px;font-size:15px;display:flex}.weekly-teachers h3 small{color:var(--ink-muted);font-weight:400}.weekly-teachers ul{gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.weekly-teachers li{justify-content:space-between;gap:8px;display:flex}.weekly-actions{gap:6px;display:flex}@media (width<=760px){.weekly-grid{grid-template-columns:1fr}}.alert-kind-teacher_cover{--alert-color:#9a6a12}.directory-table.student-card-table{min-width:0}.student-card-table th,.student-card-table tbody td{padding:10px 12px}.card-sub-badge{background:var(--warning-soft);width:fit-content;color:var(--warning);border-radius:999px;margin-top:3px;padding:1px 8px;font-size:11px;font-weight:700;display:block}.student-analytics-table .analytics-warning-column{width:13%}.student-analytics-table td,.student-analytics-table th{padding-inline:8px}.warning-cell{justify-content:center;align-items:center;gap:6px;display:flex}.warning-count{background:var(--warning-soft);min-width:26px;height:26px;color:var(--warning);cursor:help;border-radius:999px;place-items:center;padding:0 7px;font-size:13px;font-weight:800;display:inline-grid}.warning-count.expelled{background:var(--danger-soft);color:var(--danger)}.excused-note{color:var(--ink-muted);font-size:11px;display:block}.activity-timeline article.excused .activity-mark{background:var(--warning-soft);color:var(--warning)}.activity-timeline article .btn{width:fit-content;margin-top:8px;display:block}.activity-timeline .excuse-btn{border-color:var(--warning);color:var(--warning)}.warning-body{gap:14px;display:grid}.warning-facts{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.warning-facts>div{border:1px solid var(--line);background:#fff;border-radius:12px;gap:2px;padding:10px 12px;display:grid}.warning-facts span,.warning-facts small{color:var(--ink-muted);font-size:12px}.warning-facts strong{font-family:Amiri,serif;font-size:22px}.warning-history h3{align-items:center;gap:8px;margin-bottom:6px;font-size:15px;display:flex}.warning-history h3 span{background:var(--paper-warm);border-radius:999px;padding:1px 9px;font-size:12px}.warning-history ol{gap:6px;list-style:none;display:grid}.warning-history li{border:1px solid var(--line-soft);background:var(--paper);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;display:flex}.warning-history li time{color:var(--ink-soft)}.warning-history li small{color:var(--ink-muted)}.warning-history li .icon-btn{margin-inline-start:auto}.expulsion-label{color:var(--danger)}.warning-levels .range-buttons{margin-top:6px}.warning-mismatch{color:var(--warning);font-weight:700}.warning-template-tabs{margin:8px 0}@media (width<=600px){.warning-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}.warning-body textarea{font-family:inherit;line-height:1.8}.warnings-report{gap:12px;display:grid}.warnings-report-options{gap:10px;display:grid}.warnings-report-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.warnings-report-tools input[type=search]{flex:1;min-width:200px}.warnings-report-tools span{color:var(--ink-muted);font-size:13px}.warnings-report-table{border-collapse:collapse;width:100%;font-size:13px}.warnings-report-table th,.warnings-report-table td{border-bottom:1px solid var(--line-soft);text-align:right;vertical-align:middle;padding:7px 8px}.warnings-report-table th{background:var(--paper-warm);color:var(--ink-muted);white-space:nowrap;font-size:12px}.warnings-report-table td input:not([type=checkbox]){width:100%;min-width:120px;padding:5px 8px}.warnings-report-table tr.excluded td{opacity:.45}.warnings-report .table-shell{max-height:46vh;overflow:auto}.warning-chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;line-height:1.6;display:inline-flex}.warning-chip b{font-weight:700}.warning-chip time{opacity:.8;font-size:11px}.warning-chip.level-1{color:#8b5a00;background:#fbf3e0;border-color:#ecd9a8}.warning-chip.level-2{color:#9a4a12;background:#fbe9dc;border-color:#efc3a3}.warning-chip.level-3{color:#8b2e2e;background:#f8e1e1;border-color:#e6b3b3}.warning-chip.level-4{color:#fff;background:#8b2e2e;border-color:#8b2e2e}.warning-chips{flex-wrap:wrap;gap:5px;display:flex}.warning-history li{gap:12px}.subject-tag{color:#957127;background:#f8efd8;border-radius:999px;width:fit-content;margin-top:3px;padding:1px 8px;font-size:11px;font-weight:700;display:block}@media print{.print-report-root td{white-space:pre-line}}.student-lookup{gap:12px;margin-bottom:16px;display:grid}.lookup-search{align-items:center;gap:8px;max-width:560px;display:flex;position:relative}.lookup-search input{border:2px solid var(--accent);background:#fff;border-radius:12px;flex:1;padding:11px 14px;font-size:15px}.lookup-suggestions{top:calc(100% + 4px);z-index:20;border:1px solid var(--line);box-shadow:var(--shadow-lift);background:#fff;border-radius:12px;margin:0;padding:4px;list-style:none;position:absolute;inset-inline:0}.lookup-suggestions button{text-align:right;cursor:pointer;background:0 0;border:0;border-radius:8px;justify-content:space-between;gap:10px;width:100%;padding:9px 12px;display:flex}.lookup-suggestions button:hover,.lookup-suggestions button:focus-visible{background:var(--paper-warm)}.lookup-suggestions small{color:var(--ink-muted)}.lookup-empty{color:var(--ink-muted);padding:12px;font-size:13px}.lookup-card{border:1px solid var(--line);border-inline-start:5px solid var(--accent);box-shadow:var(--shadow);background:#fff;border-radius:16px;gap:14px;padding:18px;display:grid}.lookup-card header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.lookup-card h2{font-family:Amiri,serif;font-size:26px}.lookup-card header p{color:var(--ink-muted);font-size:13px}.lookup-facts{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.lookup-facts>div{border:1px solid var(--line-soft);background:var(--paper);border-radius:12px;gap:3px;padding:10px 12px;display:grid}.lookup-facts span{color:var(--ink-muted);font-size:12px}.lookup-facts strong{font-size:20px}.lookup-facts .lookup-date{font-size:15px}.lookup-block{border-top:1px solid var(--line-soft);gap:8px;padding-top:12px;display:grid}.lookup-block h3{font-size:15px}.lookup-levels{flex-wrap:wrap;gap:6px;display:flex}.lookup-levels .lookup-suggested{border-color:var(--accent);background:var(--accent);color:#fff}.lookup-levels .lookup-expel{border:1px solid var(--danger);color:var(--danger);background:#fff;font-weight:700}.lookup-levels .lookup-expel.lookup-suggested{background:var(--danger);color:#fff}.lookup-subject{border:1px solid var(--line-soft);background:var(--paper);border-radius:12px;gap:7px;padding:10px 12px;display:grid}.lookup-subject-head{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.lookup-subject-head small{color:var(--ink-muted)}@media (width<=760px){.lookup-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
