@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{cursor:not-allowed;opacity:.62}.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;overflow:hidden}.session-dot{background:#4a9d5f;border-radius:50%;flex:0 0 8px;width:8px;height:8px;display:inline-block}.logout-button{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}.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}.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}.teacher-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}.teacher-page .page-header h1{color:var(--ink);letter-spacing:.01em;font-family:Amiri,serif;font-size:32px;font-weight:700}.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}.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}.teachers-table{border-collapse:collapse;width:100%;min-width:1020px;font-size:14px}.teachers-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}.teachers-table tbody td{border-bottom:1px solid var(--line-soft);color:var(--ink);vertical-align:middle;padding:14px 22px}.teachers-table tbody tr:last-child td{border-bottom:0}.teachers-table tbody tr{transition:background .1s}.teachers-table tbody tr:hover{background:var(--paper-warm)}.teachers-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}.row-actions{white-space:nowrap;justify-content:flex-start;gap:6px;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)}.teacher-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}.teacher-list-state .loading-ring{border-color:var(--line);border-top-color:var(--accent);width:18px;height:18px}.teacher-list-error{color:var(--danger);flex-direction:column}.teacher-list-error span{color:var(--ink-muted);font-size:13px}.teacher-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-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}.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}.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}.teacher-page .page-header{flex-direction:column;align-items:flex-start;gap:12px}.form-row{grid-template-columns:1fr}}@media (width<=560px){.app-header{gap:12px}.app-brand{gap:10px}.app-brand h1{max-width:190px;font-size:17px}.app-brand .brand-mark{flex-basis:34px;width:34px;height:34px}.session-indicator{display:none}.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}.filter-search-row,.search-box input{width:100%;min-width:0}.modal-overlay{padding:14px}.modal-header,.modal-body,.modal-footer{padding-inline:20px}.modal-footer{flex-wrap:wrap}.toast{text-align:center;bottom:16px;left:16px;right:16px}}@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}}
