@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";@import "https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800;900&family=Outfit:wght@400;500;600;700;800&display=swap";@import "https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&family=Outfit:wght@400;500;600;700&display=swap";:root{--primary:#0c2d48;--primary-light:#133a5e;--primary-dark:#081e30;--secondary:#14788a;--secondary-light:#1a94aa;--secondary-dark:#0e5f6e;--white:#fff;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-300:#cbd5e1;--gray-400:#94a3b8;--gray-500:#64748b;--gray-600:#475569;--gray-700:#334155;--gray-800:#1e293b;--gray-900:#0f172a;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000d;--shadow:0 4px 16px #0000001a;--shadow-md:0 8px 30px #0000001f;--shadow-lg:0 20px 60px #0000002e;--radius-sm:6px;--radius:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--transition:all .25s cubic-bezier(.4,0,.2,1);--font:"Inter", system-ui, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);color:var(--gray-800);background:var(--gray-50);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:15px}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font-family:var(--font);cursor:pointer;border:none;outline:none}input,select,textarea{font-family:var(--font);outline:none}.text-primary{color:var(--primary)}.text-secondary{color:var(--secondary)}.text-muted{color:var(--gray-500)}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.fw-600{font-weight:600}.fw-700{font-weight:700}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.d-flex{display:flex}.align-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.5rem}.gap-2{gap:1rem}.sahal-alert-stack{z-index:99999;pointer-events:none;flex-direction:column;gap:.65rem;width:calc(100vw - 2.5rem);max-width:440px;display:flex;position:fixed;top:1.25rem;right:1.25rem}.sahal-alert{color:#fff;pointer-events:auto;background:#00b894;border:none;border-radius:6px;align-items:center;gap:.75rem;padding:.75rem 1rem;animation:.3s cubic-bezier(.16,1,.3,1) alertSlideIn;display:flex;box-shadow:0 8px 24px #0000002e}@keyframes alertSlideIn{0%{opacity:0;transform:translateY(-12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.sahal-alert-icon{color:#fff;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sahal-alert-body{color:#fff;flex:1;min-width:0;font-size:.92rem;font-weight:500;line-height:1.4}.sahal-alert-body strong{color:#fff;margin-right:.35rem;font-weight:700;display:inline}.sahal-alert-body span{color:#fff}.sahal-alert-close{cursor:pointer;color:#ffffffd9;width:22px;height:22px;transition:var(--transition);background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.sahal-alert-close:hover{color:#fff;background:#ffffff2e}.sahal-alert-success{color:#fff;background:#00b894}.sahal-alert-error{color:#fff;background:#e74c3c}.sahal-alert-warning{color:#fff;background:#f39c12}.sahal-alert-info{color:#fff;background:#0984e3}.sahal-confirm-overlay{z-index:10000;background:#0c2d4873;justify-content:center;align-items:center;padding:1.5rem;animation:.2s confirmFadeIn;display:flex;position:fixed;inset:0}@keyframes confirmFadeIn{0%{opacity:0}to{opacity:1}}.sahal-confirm-dialog{background:var(--white);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:420px;box-shadow:var(--shadow-lg);padding:2rem;animation:.25s confirmSlideUp}@keyframes confirmSlideUp{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.sahal-confirm-icon{width:56px;height:56px;color:var(--secondary);background:#14788a1a;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1rem;display:flex}.sahal-confirm-title{color:var(--primary);margin-bottom:.5rem;font-size:1.15rem;font-weight:800}.sahal-confirm-message{color:var(--gray-600);margin-bottom:1.5rem;font-size:.9rem;line-height:1.55}.sahal-confirm-actions{justify-content:center;gap:.75rem;display:flex}.sahal-confirm-btn{border-radius:var(--radius);cursor:pointer;max-width:140px;transition:var(--transition);border:none;flex:1;padding:.7rem 1.25rem;font-size:.9rem;font-weight:700}.sahal-confirm-no{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-200)}.sahal-confirm-no:hover{background:var(--gray-200)}.sahal-confirm-yes{background:var(--secondary);color:var(--white)}.sahal-confirm-yes:hover{background:var(--secondary-dark);transform:translateY(-1px);box-shadow:0 4px 16px #14788a59}@media (width<=480px){.sahal-alert-stack{width:calc(100vw - 1.5rem);top:3.25rem;right:.75rem}.sahal-confirm-actions{flex-direction:column-reverse}.sahal-confirm-btn{max-width:none}}.login-page{box-sizing:border-box;background:#fff;grid-template-columns:58% 42%;width:100vw;height:100vh;max-height:100vh;display:grid;overflow:hidden}.login-left{box-sizing:border-box;background:#fff;justify-content:center;align-items:center;height:100%;padding:2rem 3rem;display:flex;position:relative;overflow:hidden}.login-left-wrapper{flex-direction:column;justify-content:center;align-items:flex-start;width:100%;max-width:600px;display:flex}.login-brand-header{margin-bottom:1.2rem;padding-left:.25rem}.login-brand-title{color:var(--secondary,#14788a);letter-spacing:-.4px;align-items:baseline;margin:0;font-family:Poppins,Outfit,system-ui,sans-serif;font-size:2.2rem;line-height:1.1;display:inline-flex}.login-brand-title .brand-bold{color:var(--secondary,#14788a);font-weight:800}.login-brand-title .brand-light{color:var(--secondary,#14788a);font-weight:400}.login-brand-title .brand-dot{color:#f59e0b;margin-left:1px;font-weight:800}.login-illus-container{justify-content:center;align-items:center;width:100%;display:flex}.login-illus-img{object-fit:contain;-webkit-user-select:none;user-select:none;width:100%;height:auto;max-height:calc(100vh - 160px);display:block}.login-right{box-sizing:border-box;background:#fff;justify-content:center;align-items:center;height:100%;padding:3rem 3.5rem;display:flex}.login-form-card{flex-direction:column;width:100%;max-width:380px;display:flex}.login-welcome-title{color:var(--primary,#0c2d48);text-align:center;letter-spacing:-.5px;margin:0 0 .4rem;font-size:2.4rem;font-weight:800}.login-welcome-subtitle{color:#64748b;text-align:center;margin:0 0 2.5rem;font-size:.95rem;font-weight:400}.login-form{flex-direction:column;display:flex}.form-group{flex-direction:column;gap:.5rem;margin-bottom:1.3rem;display:flex}.form-label{color:#334e68;letter-spacing:.2px;font-size:.88rem;font-weight:600}.req-dot{color:var(--secondary,#14788a);margin-left:2px;font-weight:700}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:#94a3b8;pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute}.input-icon-left{left:14px}.input-icon-right{right:12px}.input-icon-btn{pointer-events:all;cursor:pointer;color:#94a3b8;background:0 0;border:none;border-radius:4px;outline:none;padding:4px;transition:color .2s}.input-icon-btn:hover{color:var(--secondary,#14788a)}.form-input{color:#0f172a;box-sizing:border-box;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:8px;outline:none;width:100%;height:48px;padding:0 1rem;font-family:inherit;font-size:.92rem;transition:all .2s}.form-input.has-left-icon{padding-left:2.6rem}.form-input.has-right-icon{padding-right:2.6rem}.form-input::placeholder{color:#94a3b8}.form-input:focus{border-color:var(--secondary,#14788a);background:#fff;box-shadow:0 0 0 3px #14788a1f}.remember-forgot-row{justify-content:space-between;align-items:center;margin-top:.5rem;margin-bottom:2rem;display:flex}.remember-me-label{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5rem;display:flex}.remember-checkbox{cursor:pointer;width:16px;height:16px;accent-color:var(--secondary,#14788a);border:1.5px solid #cbd5e1;border-radius:3px;flex-shrink:0}.remember-me-text{color:#334e68;font-size:.85rem;font-weight:400}.forgot-password-link{color:var(--secondary,#14788a);white-space:nowrap;font-size:.85rem;font-weight:700;text-decoration:none;transition:all .2s}.forgot-password-link:hover{color:var(--primary,#0c2d48);text-decoration:underline}.btn-login-pill{background:var(--secondary,#14788a);color:#fff;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:.5rem;width:100%;height:48px;margin-bottom:2.2rem;font-size:1.05rem;font-weight:700;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 16px #14788a47}.btn-login-pill:hover:not(:disabled){background:#0e606e;transform:translateY(-1px);box-shadow:0 8px 24px #14788a61}.btn-login-pill:active:not(:disabled){transform:scale(.985)}.btn-login-pill:disabled{opacity:.7;cursor:not-allowed}.btn-spinner{border:2.5px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.65s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-copyright{text-align:center;color:#94a3b8;letter-spacing:.2px;margin-top:2rem;margin-bottom:0;font-size:.82rem;font-weight:400}@media (width<=960px){.login-page{grid-template-columns:1fr;height:auto;min-height:100vh;max-height:none;overflow-y:auto}.login-left{justify-content:flex-start;height:auto;padding:2.5rem 1.5rem 1rem}.login-left-wrapper{align-items:center;max-width:100%}.login-brand-header{text-align:center;margin-bottom:1rem}.login-brand-title{justify-content:center;font-size:2rem}.login-illus-container{justify-content:center;padding:.5rem 0 0}.login-illus-img{width:auto;max-width:90%;max-height:260px}.login-right{border-top:none;border-left:none;justify-content:center;align-items:flex-start;height:auto;padding:2rem 1.75rem 3.5rem;display:flex}.login-form-card{width:100%;max-width:420px;margin:0 auto}.login-welcome-title{font-size:2rem}}@media (width<=600px){.login-left{padding:2rem 1.25rem .5rem}.login-brand-title{font-size:1.75rem}.login-illus-img{max-width:95%;max-height:220px}.login-right{padding:1.75rem 1.5rem 3rem}.login-form-card{width:100%;max-width:100%}.login-welcome-title{font-size:1.85rem}.login-welcome-subtitle{margin-bottom:1.8rem}.btn-login-pill{height:48px;font-size:1rem}.remember-forgot-row{flex-wrap:nowrap;justify-content:space-between;gap:.5rem}.remember-me-text,.forgot-password-link{font-size:.8rem}}@media (width<=380px){.login-left{padding:1.5rem 1rem .5rem}.login-right{padding:1.5rem 1rem 2.5rem}.login-illus-img{max-height:180px}.login-brand-title{font-size:1.5rem}.login-welcome-title{font-size:1.6rem}.remember-forgot-row{flex-wrap:wrap;gap:.5rem}}.not-found-page{background:#f3f5f6;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.not-found-center{text-align:center;flex-direction:column;align-items:center;display:flex}.not-found-number{letter-spacing:-.08em;color:#1a7d92;margin-bottom:1rem;font-size:clamp(7rem,12vw,14rem);font-weight:900;line-height:.9}.not-found-title{color:#0c2d48;margin-bottom:2rem;font-size:clamp(2rem,3vw,3rem);font-weight:800}.not-found-btn{border-radius:999px;justify-content:center;align-items:center;min-width:210px;min-height:54px;padding:.9rem 1.8rem;font-size:1.05rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex}.not-found-btn.primary{color:#fff;background:linear-gradient(#1f8ca0 0%,#0f6879 100%);box-shadow:0 10px 25px #0f687940}.not-found-btn.primary:hover{transform:translateY(-1px);box-shadow:0 14px 28px #0f68794d}@media (width<=640px){.not-found-page{padding:1.5rem}.not-found-number{margin-bottom:.8rem}.not-found-btn{min-width:180px}}.sahal-sidebar{width:260px;height:100vh;color:var(--primary,#0c2d48);z-index:100;background-color:#fff;border-right:1px solid #e2e8f0;flex-direction:column;transition:transform .3s;display:flex;position:fixed;top:0;left:0;box-shadow:0 1px 12px #0000000d}.sidebar-brand{background-color:#fff;border-bottom:1px solid #f1f5f9;align-items:center;gap:.75rem;height:70px;padding:0 1.25rem;display:flex;position:relative}.sidebar-logo-container{background:0 0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.sidebar-logo{object-fit:cover;border-radius:10px;width:100%;height:100%;display:block}.sidebar-logo.is-custom{object-fit:cover;border-radius:10px}.sidebar-brand-text{flex-direction:column;min-width:0;display:flex;overflow:hidden}.sidebar-brand-text .brand-name{letter-spacing:.3px;text-transform:uppercase;color:#334e68;white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;font-weight:800;line-height:1.2;overflow:hidden}.sidebar-brand-text .school-slug{color:#64748b;white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.72rem;font-weight:500;overflow:hidden}.sidebar-close-btn{color:#334e68;cursor:pointer;background:0 0;border:none;padding:.25rem;display:none;position:absolute;right:1rem}.sidebar-nav{flex:1;padding:1.25rem .75rem;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:#00000014;border-radius:999px}.sidebar-nav ul{flex-direction:column;gap:.35rem;list-style:none;display:flex}.nav-item{color:#334e68;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.85rem;width:100%;padding:.75rem 1rem;font-size:.92rem;font-weight:600;transition:all .2s;display:flex}.nav-item svg{color:#64748b;transition:all .2s}.nav-item:hover{color:var(--secondary,#14788a);background-color:#f1f5f9}.nav-item:hover svg{color:var(--secondary,#14788a)}.nav-item.active{background-color:var(--secondary,#14788a);color:#fff;font-weight:700;box-shadow:0 4px 12px #14788a40}.nav-item.active svg{color:#fff}.nav-dropdown-btn{justify-content:flex-start}.nav-dropdown-btn.open,.nav-dropdown-btn.open svg{color:var(--secondary,#14788a)}.submenu{flex-direction:column;max-height:0;margin-top:.1rem;padding-left:1.5rem;transition:max-height .3s ease-out;display:flex;overflow:hidden;gap:.2rem!important}.submenu.open{max-height:280px}.submenu a{color:#64748b;background-color:#0000;border-radius:6px;padding:.5rem 1rem;font-size:.88rem;font-weight:500;transition:all .2s;display:block;position:relative}.submenu a:before{content:"";background-color:#cbd5e1;border-radius:50%;width:5px;height:5px;transition:all .2s;position:absolute;top:50%;left:0;transform:translateY(-50%)}.submenu a:hover{color:var(--secondary,#14788a);background-color:#0000}.submenu a:hover:before{background-color:var(--secondary,#14788a)}.submenu a.active{color:var(--secondary,#14788a);background-color:#0000;font-weight:700}.submenu a.active:before{background-color:var(--secondary,#14788a)}@media (width<=991px){.sahal-sidebar{transform:translate(-100%);box-shadow:4px 0 20px #0000001a}.sahal-sidebar.open{transform:translate(0)}.sidebar-close-btn{display:block}}.sahal-header{background-color:var(--white);border-bottom:1px solid var(--gray-200);z-index:90;justify-content:space-between;align-items:center;height:70px;padding:0 2rem;display:flex;position:sticky;top:0}.mobile-toggle-btn{color:var(--gray-700);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition);background:0 0;border:none;padding:.5rem;display:none}.mobile-toggle-btn:hover{background-color:var(--gray-100);color:var(--primary)}.header-search{background-color:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius-full);width:100%;max-width:380px;transition:var(--transition);align-items:center;gap:.75rem;padding:.5rem 1.25rem;display:flex}.header-search:focus-within{background-color:var(--white);border-color:var(--secondary);box-shadow:0 0 0 3px #14788a1a}.header-search svg{color:var(--gray-400)}.header-search input{width:100%;color:var(--gray-800);background:0 0;border:none;font-size:.88rem}.header-search input::placeholder{color:var(--gray-400)}.header-actions{align-items:center;gap:1.25rem;margin-left:auto;display:flex}.action-icon-btn{color:var(--gray-600);cursor:pointer;border-radius:var(--radius-full);transition:var(--transition);background:0 0;border:none;justify-content:center;align-items:center;padding:.5rem;display:flex;position:relative}.action-icon-btn:hover{background-color:var(--gray-100);color:var(--primary)}.bell-badge{background-color:var(--danger);color:var(--white);border:2px solid var(--white);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:.65rem;font-weight:700;display:flex;position:absolute;top:4px;right:4px}.header-separator{background-color:var(--gray-200);width:1px;height:24px}.header-profile{position:relative}.profile-trigger{cursor:pointer;border-radius:var(--radius-lg);transition:var(--transition);background:0 0;border:none;align-items:center;gap:.75rem;padding:.35rem .65rem;display:flex}.profile-trigger:hover{background-color:var(--gray-50)}.profile-avatar{background:linear-gradient(135deg, var(--secondary) 0%, var(--primary) 100%);width:36px;height:36px;color:var(--white);box-shadow:var(--shadow-sm);border-radius:50%;justify-content:center;align-items:center;font-size:.95rem;font-weight:700;display:flex}.profile-info-text{text-align:left;flex-direction:column;align-items:flex-start;display:flex}.profile-name{color:var(--gray-800);font-size:.88rem;font-weight:600}.profile-role{color:var(--gray-500);font-size:.72rem;font-weight:500}.profile-dropdown{background-color:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);width:220px;box-shadow:var(--shadow-md);padding:.5rem 0;animation:.2s ease-out slideIn;position:absolute;top:calc(100% + 8px);right:0}@keyframes slideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{border-bottom:1px solid var(--gray-100);margin-bottom:.35rem;padding:.75rem 1.25rem}.user-fullname{color:var(--gray-800);margin-bottom:.1rem;font-size:.88rem;font-weight:700}.user-role-label{color:var(--secondary);font-size:.75rem;font-weight:600}.profile-dropdown ul{flex-direction:column;gap:.1rem;list-style:none;display:flex}.profile-dropdown ul li a{color:var(--gray-700);transition:var(--transition);align-items:center;gap:.75rem;padding:.6rem 1.25rem;font-size:.88rem;display:flex}.profile-dropdown ul li a:hover{background-color:var(--gray-50);color:var(--primary)}.profile-dropdown ul li a svg{color:var(--gray-400)}.dropdown-footer{border-top:1px solid var(--gray-100);margin-top:.35rem;padding:.35rem .75rem 0}.logout-btn{width:100%;color:var(--danger);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);background:0 0;border:none;align-items:center;gap:.75rem;padding:.6rem .75rem;font-size:.88rem;font-weight:600;display:flex}.logout-btn:hover{background-color:#fff5f5}@media (width<=991px){.sahal-header{height:64px;padding:0 1.25rem}.mobile-toggle-btn{justify-content:center;align-items:center;display:flex!important}.header-search{max-width:200px}.profile-info-text{display:none!important}}@media (width<=768px){.sahal-header{height:60px;padding:0 .85rem;flex-direction:row!important;justify-content:space-between!important;align-items:center!important;display:flex!important}.header-search,.header-separator{display:none!important}.header-actions{flex-flow:row!important;justify-content:flex-end!important;align-items:center!important;gap:.5rem!important;margin-left:auto!important;display:flex!important}.action-icon-btn{justify-content:center;align-items:center;padding:.4rem!important;display:flex!important;position:relative!important}.bell-badge{width:15px!important;height:15px!important;font-size:.6rem!important;top:2px!important;right:2px!important}.header-profile{align-items:center!important;display:flex!important;position:relative!important}.profile-trigger{background:0 0!important;border:none!important;flex-direction:row!important;align-items:center!important;gap:.35rem!important;width:auto!important;height:auto!important;padding:.2rem!important;display:flex!important}.profile-avatar{background:linear-gradient(135deg, var(--secondary) 0%, var(--primary) 100%)!important;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;color:var(--white)!important;box-shadow:var(--shadow-sm)!important;border-radius:50%!important;justify-content:center!important;align-items:center!important;font-size:.95rem!important;font-weight:700!important;display:flex!important}.profile-dropdown{z-index:9999!important;width:230px!important;max-width:calc(100vw - 1.5rem)!important;position:absolute!important;top:calc(100% + 8px)!important;left:auto!important;right:0!important}.mobile-toggle-btn{justify-content:center;align-items:center;margin-right:0;padding:.35rem;display:flex!important}}.sahal-layout{background-color:var(--gray-50);width:100%;min-height:100vh;display:flex}.layout-content-wrapper{flex-direction:column;flex:1;min-width:0;margin-left:260px;transition:margin-left .3s;display:flex}.layout-main-content{flex:1;padding:2rem;overflow-y:auto}.sidebar-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:99;background-color:#0006;display:none;position:fixed;inset:0}@media (width<=991px){.layout-content-wrapper{margin-left:0}.sidebar-overlay{display:block}}@media (width<=576px){.layout-main-content{padding:1.25rem}}.dashboard-overview-page{flex-direction:column;gap:1.75rem;animation:.25s fadeIn;display:flex}.dash-header{flex-direction:column;gap:.25rem;display:flex}.dash-header h1{color:#1e293b;letter-spacing:-.5px;margin:0;font-size:2.1rem;font-weight:800}.dash-header p{color:#64748b;margin:0;font-size:.95rem}.dash-stats-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem;display:grid}@media (width<=1200px){.dash-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.dash-stats-grid{grid-template-columns:1fr}}.dash-card{color:#fff;border-radius:18px;justify-content:space-between;align-items:flex-start;padding:1.6rem 1.75rem;transition:transform .25s,box-shadow .25s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px -4px #00000014}.dash-card:hover{transform:translateY(-4px);box-shadow:0 12px 30px -4px #0000001f}.card-info{flex-direction:column;gap:.5rem;display:flex}.card-label{color:#ffffffeb;font-size:.95rem;font-weight:500}.card-value{color:#fff;letter-spacing:-.5px;margin:0;font-size:2.35rem;font-weight:800;line-height:1.1}.card-icon-bubble{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;background:#ffffff38;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.card-students,.card-fees{background:var(--secondary,#14788a);color:#fff}.card-students .card-label,.card-fees .card-label{color:#ffffffeb}.card-students .card-value,.card-fees .card-value{color:#fff}.card-students .card-icon-bubble,.card-fees .card-icon-bubble{color:#fff;background:#ffffff38}.card-teachers,.card-attendance{color:#1e293b;background:#fff;border:1px solid #e2e8f0;box-shadow:0 4px 18px #0000000a}.card-teachers .card-label,.card-attendance .card-label{color:#64748b}.card-teachers .card-value,.card-attendance .card-value{color:#1e293b}.card-teachers .card-icon-bubble{background:var(--secondary-soft,#eef7f8);color:var(--secondary,#14788a)}.card-attendance .card-icon-bubble{background:var(--primary-soft,#e8edf3);color:var(--primary,#0c2d48)}.dash-charts-grid{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}@media (width<=1024px){.dash-charts-grid{grid-template-columns:1fr}}.dash-chart-card{background:#fff;border:1px solid #f1f5f9;border-radius:20px;flex-direction:column;gap:1.25rem;padding:1.5rem 1.75rem 1.75rem;display:flex;box-shadow:0 4px 20px #00000008}.chart-card-header h3{color:#1e293b;margin:0;font-size:1.15rem;font-weight:700}.svg-chart-wrapper{width:100%;height:260px;position:relative}.area-chart-svg,.bar-chart-svg{width:100%;height:100%;overflow:visible}.chart-axis-text{fill:#94a3b8;font-family:inherit;font-size:11px;font-weight:500}.skeleton-pulse{vertical-align:middle;background:#ffffff47;border-radius:6px;width:60px;height:32px;animation:1.2s ease-in-out infinite skeletonShimmer;display:inline-block}.skeleton-pulse-dark{vertical-align:middle;background:#e2e8f0;border-radius:6px;width:60px;height:32px;animation:1.2s ease-in-out infinite skeletonShimmer;display:inline-block}@keyframes skeletonShimmer{0%{opacity:.35}50%{opacity:.85}to{opacity:.35}}.btn{border-radius:var(--radius);cursor:pointer;transition:var(--transition);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1.25rem;font-size:.9rem;font-weight:700;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--secondary);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--secondary-dark);transform:translateY(-1px);box-shadow:0 6px 20px #14788a4d}.btn-secondary{background:var(--gray-200);color:var(--gray-700)}.btn-secondary:hover:not(:disabled){background:var(--gray-300)}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.page-header-left h2{color:var(--primary);font-size:1.6rem;font-weight:800}.page-header-left p{color:var(--gray-500);margin-top:.2rem;font-size:.875rem}.page-header-left p span{color:var(--secondary);font-weight:600}.btn-add-primary{background:var(--secondary);color:var(--white);border-radius:var(--radius);cursor:pointer;transition:var(--transition);white-space:nowrap;border:none;align-items:center;gap:.5rem;padding:.7rem 1.25rem;font-size:.9rem;font-weight:700;display:flex}.btn-add-primary:hover{background:var(--secondary-dark);transform:translateY(-1px);box-shadow:0 6px 20px #14788a4d}.table-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow-sm);z-index:1;position:relative;overflow:visible}.table-toolbar{border-bottom:1px solid var(--gray-100);z-index:10;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.25rem;display:flex;position:relative}.table-search{border:1px solid var(--gray-200);border-radius:var(--radius-sm);background:var(--gray-50);width:280px;transition:var(--transition);box-sizing:border-box;align-items:center;gap:.6rem;height:42px;padding:.5rem .9rem;display:flex}.table-search:focus-within{border-color:var(--secondary);background:var(--white);box-shadow:0 0 0 3px #14788a14}.table-search svg{color:var(--gray-400);flex-shrink:0}.table-search input{color:var(--gray-800);background:0 0;border:none;outline:none;width:100%;height:100%;font-size:.85rem}.table-search input::placeholder{color:var(--gray-400)}.table-toolbar-actions{align-items:center;gap:.6rem;display:flex}.table-filter-select{border-radius:var(--radius-sm);border:1px solid var(--gray-200);color:var(--gray-800);cursor:pointer;box-sizing:border-box;background:#fff;outline:none;height:42px;padding:.55rem .85rem;font-size:.85rem;font-weight:600}.table-record-count{color:var(--gray-500);margin-left:auto;font-size:.82rem;font-weight:500}.tt-day-tabs{border-bottom:1px solid var(--gray-100);white-space:nowrap;-webkit-overflow-scrolling:touch;background:#f8fafc;align-items:center;gap:.45rem;padding:.75rem 1.25rem;display:flex;overflow-x:auto}.tt-day-tab{color:#475569;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #cbd5e1;border-radius:8px;flex-shrink:0;padding:.45rem .95rem;font-size:.82rem;font-weight:600;transition:all .15s}.tt-day-tab:hover{border-color:var(--secondary);color:var(--secondary)}.tt-day-tab.active{background:var(--secondary,#14788a);border-color:var(--secondary,#14788a);color:#fff;box-shadow:0 2px 6px #14788a38}.data-table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table thead th{text-align:left;letter-spacing:.5px;text-transform:uppercase;color:var(--gray-600);border-bottom:1.5px solid var(--gray-200);white-space:nowrap;background:var(--gray-100);padding:.75rem .65rem;font-size:.72rem;font-weight:700}.data-table thead th:first-child{width:48px;color:var(--gray-400)}.data-table tbody tr{border-bottom:1px solid var(--gray-100);transition:background .15s}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background:var(--gray-50)}.data-table tbody td{color:var(--gray-500);vertical-align:middle;white-space:nowrap;padding:.75rem .65rem;font-size:.84rem;font-weight:600}.data-table tbody td:first-child{color:var(--gray-400);font-size:.8rem;font-weight:600}.td-name{font-weight:700;color:var(--gray-900)!important}.td-sub{color:var(--gray-400);font-size:.75rem;font-weight:400}.school-logo-thumb{border:1px solid var(--gray-200);background:var(--gray-50);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex;overflow:hidden}.school-logo-thumb img{object-fit:cover;width:100%;height:100%}.school-logo-placeholder{color:var(--secondary);font-size:.85rem;font-weight:800}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;align-items:center;padding:.2rem .7rem;font-size:.72rem;font-weight:700;display:inline-flex}.badge-active{color:#15803d;background:#dcfce7}.badge-inactive{color:#b91c1c;background:#fee2e2}.badge-role{color:var(--secondary-dark);background:#14788a1a}.btn-actions{color:var(--secondary-dark);border-radius:var(--radius-full);cursor:pointer;transition:var(--transition);background:#14788a14;border:none;align-items:center;gap:.3rem;padding:.35rem .85rem;font-size:.78rem;font-weight:700;display:inline-flex;position:relative}.btn-actions:hover{background:#14788a26;border-color:#14788a66}.btn-actions-menu{color:var(--secondary);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);white-space:nowrap;background:#e0f2f1;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1rem;font-size:.85rem;font-weight:600;display:inline-flex}.btn-actions-menu:hover{background:#b2dfdb;transform:translateY(-1px);box-shadow:0 2px 8px #14788a26}.btn-actions-menu svg{justify-content:center;align-items:center;display:flex}.actions-menu-dropdown{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-sm);z-index:1000;min-width:140px;animation:.2s slideDown;position:fixed;top:auto;left:auto;overflow:hidden;box-shadow:0 4px 12px #0000001a}.actions-menu-item{width:100%;color:var(--gray-700);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:.875rem;font-weight:500;transition:all .15s;display:flex}.actions-menu-item:hover{background:var(--gray-50);color:var(--primary)}.actions-menu-item svg{color:currentColor;flex-shrink:0}.actions-menu-item.delete{color:#dc2626}.actions-menu-item.delete:hover{color:#b91c1c;background:#fee2e2}.actions-dropdown{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:999;min-width:140px;animation:.15s fadeSlide;position:fixed;overflow:hidden}.actions-dropdown button{width:100%;color:var(--gray-700);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.6rem;padding:.6rem 1rem;font-size:.82rem;font-weight:500;transition:background .15s;display:flex}.actions-dropdown button:hover{background:var(--gray-50)}.actions-dropdown button.danger{color:var(--danger)}.actions-dropdown button.danger:hover{background:#fff5f5}.dropdown-item{width:100%;color:var(--gray-700);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.6rem;font-size:.82rem;font-weight:500;transition:background .15s;padding:.6rem 1rem!important;display:flex!important}.dropdown-item:hover{background:var(--gray-50)}.dropdown-item.delete{color:var(--danger)}.dropdown-item.delete:hover{background:#fff5f5}.table-state-row td{color:var(--gray-400);font-size:.9rem;text-align:center!important;padding:3rem 1rem!important}.table-spinner{border:3px solid var(--gray-200);border-top-color:var(--secondary);border-radius:50%;width:28px;height:28px;margin:0 auto .75rem;animation:.7s linear infinite spin}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;-webkit-overflow-scrolling:touch;background:#0c2d488c;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-box,.modal-content,.modal-container{background:var(--white);border-radius:var(--radius-lg);width:100%;max-width:660px;box-shadow:var(--shadow-lg);flex-direction:column;max-height:90vh;margin:auto;animation:.22s cubic-bezier(.34,1.56,.64,1) scaleUp;display:flex;position:relative;overflow:hidden}.modal-box form,.modal-content form,.form-layout{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}@keyframes scaleUp{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.modal-box-header{border-bottom:1px solid var(--gray-100);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.15rem 1.5rem;display:flex}.modal-box-header-left{align-items:center;gap:.75rem;display:flex}.modal-box-header-left svg{color:var(--secondary)}.modal-box-header h3{color:var(--gray-900);font-size:1.1rem;font-weight:800}.btn-modal-close{background:var(--gray-100);width:30px;height:30px;color:var(--gray-600);cursor:pointer;transition:var(--transition);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.btn-modal-close:hover{background:var(--gray-200);color:var(--gray-900)}.modal-box-body{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding:1.5rem;overflow-y:auto}.modal-section-label{letter-spacing:.7px;text-transform:uppercase;color:var(--secondary);border-bottom:1.5px dashed var(--gray-200);margin-bottom:1rem;padding-bottom:.6rem;font-size:.72rem;font-weight:800}.modal-form-grid{grid-template-columns:1fr 1fr;gap:1rem 1.25rem;margin-bottom:1.5rem;display:grid}.modal-form-grid.cols-3{grid-template-columns:1fr 1fr 1fr}.modal-form-grid.cols-2-mobile,.modal-form-grid.grid-2-mobile{grid-template-columns:1fr 1fr!important;gap:.85rem .65rem!important;display:grid!important}.modal-form-grid.cols-2-mobile .form-field,.modal-form-grid.grid-2-mobile .form-field{min-width:0!important}.modal-form-grid.cols-2-mobile .form-field input,.modal-form-grid.cols-2-mobile .form-field select,.modal-form-grid.grid-2-mobile .form-field input,.modal-form-grid.grid-2-mobile .form-field select{box-sizing:border-box!important;width:100%!important;min-width:0!important}.modal-form-grid.cols-1{grid-template-columns:1fr}.form-field{flex-direction:column;gap:.35rem;display:flex}.form-field label{color:var(--gray-700);font-size:.8rem;font-weight:600}.form-field label .required{color:var(--danger);margin-left:2px}.form-field input,.form-field select{border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);width:100%;height:42px;color:var(--gray-800);background:var(--white);transition:var(--transition);padding:0 .9rem;font-size:.875rem}.form-field input[type=file]{cursor:pointer;height:auto;padding:.5rem .9rem}.form-field input:focus,.form-field select:focus{border-color:var(--secondary);outline:none;box-shadow:0 0 0 3px #14788a1a}.form-field select{cursor:pointer}.modal-error{color:var(--danger);border-radius:var(--radius-sm);background:#fff5f5;border:1px solid #fecaca;align-items:center;gap:.5rem;margin-top:.5rem;padding:.6rem .9rem;font-size:.82rem;animation:.2s fadeSlide;display:flex}.modal-box-footer{border-top:1px solid var(--gray-100);background:var(--gray-50);flex-shrink:0;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.btn-modal-cancel{background:var(--white);border:1.5px solid var(--gray-300);color:var(--gray-700);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);padding:.65rem 1.25rem;font-size:.875rem;font-weight:700}.btn-modal-cancel:hover{background:var(--gray-100);border-color:var(--gray-400)}.btn-modal-submit{background:var(--secondary);color:var(--white);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);border:none;align-items:center;gap:.5rem;padding:.65rem 1.5rem;font-size:.875rem;font-weight:700;display:flex}.btn-modal-submit:hover:not(:disabled){background:var(--secondary-dark);transform:translateY(-1px);box-shadow:0 6px 18px #14788a4d}.btn-modal-submit:disabled{opacity:.65;cursor:not-allowed;transform:none}.btn-spinner-sm{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:15px;height:15px;animation:.6s linear infinite spin}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeSlide{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.modal-content{background:var(--white);border-radius:var(--radius-lg);width:100%;max-width:660px;box-shadow:var(--shadow-lg);animation:.22s cubic-bezier(.34,1.56,.64,1) scaleUp;overflow:hidden}.modal-header,.modal-box-header{border-bottom:1px solid var(--gray-100);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.15rem 1.5rem;display:flex}.modal-header h2{color:var(--gray-900);margin:0;font-size:1.25rem;font-weight:800}.modal-close{background:var(--gray-100);width:30px;height:30px;color:var(--gray-600);cursor:pointer;transition:var(--transition);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.2rem;display:flex}.modal-close:hover{background:var(--gray-200);color:var(--gray-900)}.form-layout{flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex}.form-layout .form-field{flex-direction:column;gap:.4rem;display:flex}.form-layout textarea{border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);width:100%;color:var(--gray-800);background:var(--white);transition:var(--transition);resize:vertical;padding:.75rem .9rem;font-family:inherit;font-size:.875rem}.form-layout textarea:focus{border-color:var(--secondary);outline:none;box-shadow:0 0 0 3px #14788a1a}.form-actions{border-top:1px solid var(--gray-100);justify-content:flex-end;gap:.75rem;padding-top:1rem;display:flex}@media (width<=991px){.page-header{flex-direction:column;align-items:stretch;gap:1rem}.page-header-right{flex-wrap:wrap;gap:.75rem;width:100%;display:flex}.btn-primary:not(.table-toolbar .btn-primary){justify-content:center;width:100%}.btn-add-primary{justify-content:center}.table-toolbar:not(.teachers-toolbar):not(.ar-toolbar){flex-direction:column;align-items:stretch;gap:.75rem;padding:.85rem 1rem}.table-toolbar:not(.teachers-toolbar):not(.ar-toolbar) .table-search{box-sizing:border-box;width:100%!important;max-width:100%!important}.table-toolbar:not(.teachers-toolbar):not(.ar-toolbar) .table-toolbar-actions{flex-direction:row;align-items:center;gap:.6rem;width:100%;display:flex}.table-toolbar-actions .table-filter-select{flex:1;min-width:0;height:42px}.table-toolbar:not(.teachers-toolbar):not(.ar-toolbar) .table-toolbar-actions .btn-add-primary{white-space:nowrap;flex:1;justify-content:center;min-width:0;height:42px}.table-toolbar.ar-toolbar{box-sizing:border-box!important;z-index:100!important;flex-flow:row!important;align-items:center!important;gap:.5rem!important;width:100%!important;padding:.75rem .85rem!important;display:flex!important;position:relative!important}.table-toolbar.teachers-toolbar{box-sizing:border-box!important;flex-flow:row!important;align-items:center!important;gap:.5rem!important;width:100%!important;padding:.75rem .85rem!important;display:flex!important}.table-toolbar.teachers-toolbar .table-search{box-sizing:border-box!important;flex:auto!important;width:auto!important;min-width:0!important;max-width:none!important;margin:0!important}.table-toolbar.teachers-toolbar .table-toolbar-actions{flex:none!important;width:auto!important;margin:0!important;display:flex!important}.table-toolbar.teachers-toolbar .btn-add-primary{white-space:nowrap!important;flex:none!important;justify-content:center!important;gap:.35rem!important;width:auto!important;min-width:fit-content!important;height:42px!important;padding:0 .85rem!important;font-size:.82rem!important}}@media (width<=768px){.page-header-left h2{font-size:1.35rem}.table-card{border-radius:var(--radius-sm);overflow:visible}.data-table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.data-table thead th,.data-table tbody td{padding:.65rem .6rem;font-size:.8rem}.btn-actions,.btn-actions-menu{min-height:38px;padding:.5rem .85rem;font-size:.8rem}.modal-overlay{align-items:flex-end;padding:.5rem}.modal-box,.modal-container,.modal-content{flex-direction:column;display:flex;overflow:hidden;border-radius:16px 16px 0 0!important;width:100%!important;max-width:100%!important;max-height:90vh!important;margin:0!important}.modal-box-header,.modal-header{flex-shrink:0;padding:.95rem 1.15rem}.modal-box-body,.modal-body{-webkit-overflow-scrolling:touch;flex:auto!important;min-height:0!important;padding:1.15rem!important;overflow-y:auto!important}.modal-form-grid{flex:none!important;padding:0!important;overflow:visible!important}.modal-box-footer,.modal-footer,.form-actions{box-sizing:border-box;background:#fff;border-top:1px solid #f1f5f9;flex-direction:row;flex-shrink:0;align-items:center;gap:.6rem;width:100%;padding:.85rem 1.15rem;display:flex}.btn-modal-cancel,.form-actions button.btn-secondary{flex:1;justify-content:center;width:auto;height:42px;color:#334155!important;background:#e2e8f0!important;border:none!important;border-radius:8px!important;font-weight:700!important}.btn-modal-submit,.form-actions button.btn-primary{flex:1;justify-content:center;width:auto;height:42px;background:var(--secondary,#14788a)!important;color:#fff!important;border:none!important;border-radius:8px!important;font-weight:700!important}.modal-form-grid,.modal-form-grid.cols-3,.modal-form-grid.cols-2,.grid-2-col,.grid-3-col,.form-grid{gap:.85rem;grid-template-columns:1fr!important}.modal-form-grid.cols-2-mobile,.modal-form-grid.grid-2-mobile{grid-template-columns:1fr 1fr!important;gap:.6rem .5rem!important}.modal-form-grid.cols-2-mobile .form-field label,.modal-form-grid.grid-2-mobile .form-field label{font-size:.72rem!important}.modal-form-grid.cols-2-mobile .form-field input,.modal-form-grid.cols-2-mobile .form-field select,.modal-form-grid.grid-2-mobile .form-field input,.modal-form-grid.grid-2-mobile .form-field select{box-sizing:border-box!important;width:100%!important;min-width:0!important;height:40px!important;padding:0 .55rem!important;font-size:.8rem!important}.form-field input,.form-field select{height:44px;font-size:.9rem}}@media (width<=480px){.page-header-left h2{font-size:1.2rem}.action-btn-group{flex-wrap:wrap;gap:.35rem}}.sahal-badge{letter-spacing:.02em;border-radius:99px;align-items:center;padding:.25rem .75rem;font-size:.8rem;font-weight:600;display:inline-flex}.sahal-badge-section{color:var(--secondary,#14788a);background:#14788a1a;border:1px solid #14788a33}.sahal-school-pill{color:var(--gray-600,#4b5563);align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}.sahal-school-pill svg{opacity:.6;flex-shrink:0}.sahal-td-desc{text-overflow:ellipsis;white-space:nowrap;max-width:260px;color:var(--gray-500,#6b7280);font-size:.85rem;overflow:hidden}.sahal-muted{color:var(--gray-400,#9ca3af);font-size:.82rem}.sahal-input-tag{background:var(--gray-100,#f3f4f6);color:var(--gray-500,#6b7280);letter-spacing:.05em;pointer-events:none;border-radius:4px;padding:.15rem .5rem;font-size:.7rem;font-weight:700;position:absolute;top:50%;right:.75rem;transform:translateY(-50%)}.sahal-input-wrapper{align-items:center;display:flex;position:relative}.sahal-input-wrapper .sahal-input{width:100%}.sahal-input-disabled .sahal-input{background:var(--gray-50,#f9fafb);color:var(--gray-400,#9ca3af);cursor:not-allowed;border-color:var(--gray-200,#e5e7eb);padding-right:3.5rem}.mobile-cards-view{flex-direction:column;gap:1rem;padding:.25rem 0 1rem;display:none}@media (width<=768px){.desktop-table-view{display:none!important}.mobile-cards-view{display:flex!important}}.sahal-mobile-card{background:var(--white);border:1px solid var(--gray-200);border-radius:18px;flex-direction:column;gap:.9rem;padding:1.15rem 1.25rem;display:flex;position:relative;box-shadow:0 4px 18px #0000000a}.sahal-mobile-card-header{align-items:center;gap:.85rem;display:flex}.sahal-mobile-card-icon{width:44px;height:44px;color:var(--secondary);background:#14788a1a;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sahal-mobile-card-title-wrap{flex:1;min-width:0}.sahal-mobile-card-title{color:var(--primary);font-size:1.05rem;font-weight:800;line-height:1.2}.sahal-mobile-card-sub{color:var(--gray-500);margin-top:2px;font-size:.78rem}.sahal-mobile-card-grid{grid-template-columns:1fr 1fr;gap:.65rem;display:grid}.sahal-mobile-pill-box{border-radius:12px;flex-direction:column;gap:2px;padding:.65rem .85rem;display:flex}.sahal-mobile-pill-box.pill-green{background:#f0fdf4;border:1px solid #bbf7d0}.sahal-mobile-pill-box.pill-orange{background:#fff7ed;border:1px solid #fed7aa}.sahal-mobile-pill-box.pill-blue{background:#f0f9ff;border:1px solid #bae6fd}.sahal-mobile-pill-box.pill-gray{background:var(--gray-50);border:1px solid var(--gray-200)}.sahal-pill-label{align-items:center;gap:4px;font-size:.72rem;font-weight:700;display:flex}.pill-green .sahal-pill-label{color:#166534}.pill-orange .sahal-pill-label{color:#9a3412}.pill-blue .sahal-pill-label{color:#075985}.pill-gray .sahal-pill-label{color:var(--gray-600)}.sahal-pill-value{color:var(--gray-900);font-size:.88rem;font-weight:800}.sahal-mobile-card-footer{border-top:1px dashed var(--gray-200);justify-content:space-between;align-items:center;gap:.75rem;padding-top:.75rem;display:flex}.sahal-mobile-card-footer-left{flex-direction:column;gap:2px;display:flex}.sahal-mobile-card-footer-label{color:var(--gray-400);font-size:.72rem;font-weight:600}.sahal-mobile-card-footer-val{color:var(--primary);font-size:.88rem;font-weight:700}.mobile-data-card{background:var(--white,#fff);border:1px solid var(--gray-200,#e2e8f0);border-radius:14px;flex-direction:column;gap:.85rem;padding:1rem 1.15rem;transition:all .2s;display:flex;box-shadow:0 4px 14px #0000000a}.mobile-data-card:active,.mobile-data-card:hover{border-color:var(--secondary,#14788a);box-shadow:0 6px 18px #14788a14}.mobile-card-header{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.mobile-card-user{align-items:center;gap:.75rem;min-width:0;display:flex}.mobile-card-avatar{background:linear-gradient(135deg, var(--secondary,#14788a), #0d5462);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1rem;font-weight:800;display:flex}.mobile-card-title-group{flex-direction:column;gap:2px;min-width:0;display:flex}.mobile-card-name{color:var(--gray-900,#0f172a);white-space:nowrap;text-overflow:ellipsis;font-size:.98rem;font-weight:800;overflow:hidden}.mobile-card-sub{color:var(--gray-500,#64748b);font-size:.78rem;font-weight:500}.mobile-card-badge{white-space:nowrap;border-radius:99px;flex-shrink:0;padding:3px 10px;font-size:.75rem;font-weight:700}.mobile-card-badge.primary{color:#0369a1;background:#e0f2fe}.mobile-card-badge.success{color:#15803d;background:#dcfce7}.mobile-card-badge.info{color:#475569;background:#f1f5f9}.mobile-card-badge.danger{color:#dc2626;background:#fee2e2}.mobile-card-badge.warning{color:#a16207;background:#fef9c3}.mobile-card-body{background:#f8fafc;border:1px solid #f1f5f9;border-radius:10px;flex-direction:column;gap:.45rem;padding:.75rem .85rem;display:flex}.mobile-card-field{justify-content:space-between;align-items:center;gap:.5rem;font-size:.82rem;display:flex}.mobile-field-label{color:var(--gray-500,#64748b);font-weight:600}.mobile-field-value{color:var(--gray-900,#0f172a);text-align:right;word-break:break-word;font-weight:700}.mobile-card-actions{align-items:center;gap:.5rem;padding-top:.35rem;display:flex}.mobile-action-btn{cursor:pointer;border:none;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:4px;height:38px;font-size:.82rem;font-weight:700;transition:all .15s;display:flex}.mobile-action-btn.edit{color:var(--secondary,#14788a);background:#e6f4f8}.mobile-action-btn.edit:hover{background:#d0ebf2}.mobile-action-btn.delete{color:#dc2626;background:#fee2e2}.mobile-action-btn.delete:hover{background:#fca5a5}.mobile-action-btn.view{color:#334155;background:#f1f5f9}.mobile-action-btn.view:hover{background:#e2e8f0}.mobile-card-empty{text-align:center;color:var(--gray-500,#64748b);background:var(--white);border:1px dashed var(--gray-300);border-radius:12px;padding:2.5rem 1rem;font-size:.88rem;font-weight:600}.permissions-page{flex-direction:column;gap:1.5rem;animation:.25s permFadeIn;display:flex}.permissions-header{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.25rem 1.5rem}.header-top{justify-content:space-between;align-items:center;gap:1.25rem;display:flex}.header-title{text-align:center;flex:1;min-width:0}.permissions-header h1{color:var(--primary);letter-spacing:-.4px;margin:0;font-size:1.6rem;font-weight:800;line-height:1.25}.header-title p{color:var(--gray-500);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;margin-top:.35rem;font-size:.875rem;display:flex}.selected-count{color:var(--secondary);font-weight:600}.header-actions{flex-shrink:0;align-items:center;gap:.65rem;display:flex}.btn-back{color:var(--secondary-dark);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);white-space:nowrap;background:#14788a14;border:1px solid #14788a26;flex-shrink:0;align-items:center;gap:.4rem;padding:.65rem 1rem;font-size:.875rem;font-weight:600;display:inline-flex}.btn-back:hover{background:#14788a24;border-color:#14788a40}.btn-deselect{font-size:.875rem}.btn-save{min-width:140px;font-size:.875rem}.school-badge{color:var(--primary);border-radius:var(--radius-full);background:#0c2d4812;border:1px solid #0c2d4826;align-items:center;padding:.2rem .65rem;font-size:.78rem;font-weight:600;display:inline-flex}.permissions-list{flex-direction:column;gap:1.25rem;display:flex}.permission-section{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:var(--transition);overflow:hidden}.permission-section:hover{box-shadow:var(--shadow)}.permission-section-header{background:var(--gray-50);border-bottom:1px solid var(--gray-200);align-items:center;gap:.85rem;padding:1rem 1.25rem;display:flex}.section-icon{display:none}.section-title{color:var(--primary);letter-spacing:-.2px;flex:1;margin:0;font-size:1rem;font-weight:700}.section-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;gap:.5rem;display:flex}.section-toggle input[type=checkbox]{appearance:none;opacity:0;width:0;height:0;margin:0;position:absolute}.section-toggle .checkbox-custom{border:2px solid var(--gray-300);background:var(--white);width:18px;height:18px;transition:var(--transition);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.section-toggle input[type=checkbox]:checked+.checkbox-custom{background:var(--secondary);border-color:var(--secondary)}.section-toggle input[type=checkbox]:checked+.checkbox-custom:after{content:"✓";color:var(--white);font-size:11px;font-weight:700;line-height:1}.section-toggle input[type=checkbox]:indeterminate+.checkbox-custom{background:var(--secondary);border-color:var(--secondary)}.section-toggle input[type=checkbox]:indeterminate+.checkbox-custom:after{content:"−";color:var(--white);font-size:13px;font-weight:700;line-height:1}.section-toggle:hover .checkbox-custom{border-color:var(--secondary)}.toggle-label{color:var(--gray-500);white-space:nowrap;font-size:.8rem;font-weight:600}.section-toggle input[type=checkbox]:checked~.toggle-label,.section-toggle input[type=checkbox]:indeterminate~.toggle-label{color:var(--secondary-dark)}.permission-items{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;padding:1.25rem;display:grid}.permission-item{background:var(--white);min-height:68px;transition:var(--transition);cursor:pointer;border:1px solid #ad8bc473;border-radius:8px;align-items:center;gap:.75rem;padding:.9rem 1rem;display:flex}.permission-item:hover{background:var(--white);border-color:#ad8bc4b3}.permission-item:has(input:checked){background:var(--white);border-color:#ad8bc4bf}.permission-item:has(input:checked) .item-name{color:var(--primary-dark)}.checkbox-label{cursor:pointer;flex-shrink:0;align-items:center;display:flex}.checkbox-label input[type=checkbox]{appearance:none;opacity:0;width:0;height:0;margin:0;position:absolute}.checkbox-custom{background:var(--white);width:18px;height:18px;transition:var(--transition);border:2px solid #ad8bc4e6;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.checkbox-label input[type=checkbox]:checked+.checkbox-custom{background:var(--secondary);border-color:var(--secondary)}.checkbox-label input[type=checkbox]:checked+.checkbox-custom:after{content:"✓";color:var(--white);font-size:11px;font-weight:700;line-height:1}.checkbox-label:hover .checkbox-custom{border-color:#ad8bc4}.item-text{flex:1;min-width:0}.item-name{color:var(--primary-dark);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.95rem;font-weight:700;line-height:1.35;overflow:hidden}.item-id{color:var(--gray-500);text-transform:lowercase;white-space:nowrap;text-overflow:ellipsis;margin:.25rem 0 0;font-size:.76rem;font-weight:400;overflow:hidden}.permissions-loading{flex-direction:column;justify-content:center;align-items:center;gap:1.25rem;min-height:400px;display:flex}.permissions-loading .spinner{border:3px solid var(--gray-200);border-top-color:var(--secondary);border-radius:50%;width:44px;height:44px;animation:.75s linear infinite permSpin}.permissions-loading p{color:var(--gray-500);font-size:.95rem;font-weight:500}@keyframes permFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes permSpin{to{transform:rotate(360deg)}}@media (width<=1200px){.permission-items{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.header-top{flex-wrap:wrap}.header-title{text-align:left;border-bottom:1px solid var(--gray-100);flex-basis:100%;order:-1;margin-bottom:.25rem;padding-bottom:.25rem}.header-title p{justify-content:flex-start}.header-actions{flex:1;justify-content:flex-end}.permission-items{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.permissions-header{padding:1rem}.permissions-header h1{font-size:1.3rem}.header-top{flex-direction:column;align-items:stretch}.header-actions{flex-direction:column}.btn-back,.btn-deselect,.btn-save{justify-content:center;width:100%}.permission-items{grid-template-columns:1fr;padding:1rem}.permission-section-header{flex-wrap:wrap;gap:.65rem}.section-toggle{margin-left:auto}}.ss-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;width:100%;display:grid}.ss-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;width:100%;display:grid}.ss-grid-2 .form-field,.ss-grid-3 .form-field{min-width:0}.ss-grid-3 .form-field input,.ss-grid-3 .form-field select{box-sizing:border-box;width:100%}@media (width<=768px){.modal-content{padding:1.25rem .85rem!important}.ss-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:.35rem!important;display:grid!important}.ss-grid-2{gap:.5rem!important}.ss-grid-3 .form-field label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-bottom:4px!important;font-size:.72rem!important}.ss-grid-3 .form-field input,.ss-grid-3 .form-field select{border-radius:6px!important;height:38px!important;padding:0 .3rem!important;font-size:.78rem!important}.ss-time-grid .form-field input[type=time]{letter-spacing:-.3px;padding:0 .2rem!important;font-size:.74rem!important}.ss-time-grid .form-field input[type=time]::-webkit-calendar-picker-indicator{width:13px!important;height:13px!important;margin-left:2px!important;margin-right:0!important;padding:0!important}}@media (width<=480px){.modal-content{padding:1rem .65rem!important}.ss-grid-3{gap:.25rem!important}.ss-grid-3 .form-field label{font-size:.68rem!important}.ss-grid-3 .form-field input,.ss-grid-3 .form-field select{height:36px!important;padding:0 .25rem!important;font-size:.72rem!important}.ss-time-grid .form-field input[type=time]{padding:0 .15rem!important;font-size:.7rem!important}}.ta-page{width:100%;max-width:100%;color:var(--primary);flex-direction:column;gap:1.35rem;display:flex}.ta-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.ta-title-row{align-items:center;gap:.7rem;display:flex}.ta-title-icon{width:36px;height:36px;color:var(--secondary);background:#14788a1f;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ta-header h1{letter-spacing:-.03em;color:var(--primary);margin:0;font-size:clamp(1.25rem,3vw,1.7rem);font-weight:800}.ta-breadcrumb{color:var(--gray-500);flex-wrap:wrap;align-items:center;gap:.45rem;margin-top:.35rem;font-size:.8rem;font-weight:500;display:flex}.ta-crumb-sep{color:var(--gray-300)}.ta-crumb-current{color:var(--secondary);font-weight:600}.ta-primary-btn{background:var(--secondary);height:44px;color:var(--white);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:.45rem;padding:0 1.15rem;font-size:.9rem;font-weight:700;display:inline-flex;box-shadow:0 8px 18px #14788a38}.ta-primary-btn:hover:not(:disabled){background:var(--secondary-dark)}.ta-primary-btn:disabled{opacity:.7;cursor:not-allowed}.ta-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;display:grid}.ta-stat-card{background:var(--white);border:1px solid var(--gray-200);border-radius:16px;justify-content:space-between;align-items:center;gap:.8rem;min-height:118px;padding:1.15rem 1.2rem;display:flex;box-shadow:0 8px 24px #0c2d480d}.ta-stat-copy{flex-direction:column;gap:.18rem;min-width:0;display:flex}.ta-stat-label{color:var(--gray-500);font-size:.82rem;font-weight:600}.ta-stat-copy strong{color:var(--primary);font-size:clamp(1.5rem,3vw,2rem);font-weight:800;line-height:1.1}.ta-stat-copy em{color:var(--gray-500);font-size:.78rem;font-style:normal;font-weight:700}.ta-stat-copy em.is-present{color:var(--success)}.ta-stat-copy em.is-absent{color:var(--danger)}.ta-stat-copy em.is-late{color:var(--warning)}.ta-stat-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.ta-stat-icon.total{color:var(--secondary);background:#14788a1f}.ta-stat-icon.present{color:var(--success);background:#10b9811f}.ta-stat-icon.absent{color:var(--danger);background:#ef44441f}.ta-stat-icon.late{color:var(--warning);background:#f59e0b1f}.ta-card{background:var(--white);border:1px solid var(--gray-200);border-radius:16px;overflow:hidden;box-shadow:0 8px 24px #0c2d480d}.ta-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;padding:1.15rem 1.2rem 1.05rem;display:flex}.ta-filters{flex-wrap:wrap;flex:1;align-items:flex-end;gap:.85rem;min-width:0;display:flex}.ta-field{flex-direction:column;flex:1;gap:.38rem;min-width:160px;display:flex}.ta-field label{color:var(--gray-500);font-size:.72rem;font-weight:700}.ta-field select,.ta-date-control{border:1px solid var(--gray-200);background:var(--white);width:100%;height:44px;color:var(--gray-700);border-radius:10px;padding:0 .9rem;font-size:.9rem;font-weight:500}.ta-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%2364748b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right .9rem center;background-repeat:no-repeat;padding-right:2.2rem}.ta-date-field{min-width:180px}.ta-date-control{align-items:center;padding-right:2.4rem;display:flex;position:relative}.ta-date-text{color:var(--gray-700);font-size:.9rem;font-weight:500}.ta-date-control input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.ta-date-icon{color:var(--gray-500);pointer-events:none;position:absolute;top:50%;right:.85rem;transform:translateY(-50%)}.ta-toolbar-actions{align-items:center;gap:.7rem;display:flex}.ta-export-btn{background:var(--white);height:44px;color:var(--primary);border:1px solid var(--gray-200);border-radius:10px;justify-content:center;align-items:center;gap:.45rem;padding:0 1.1rem;font-size:.88rem;font-weight:700;display:inline-flex}.ta-locked-banner{color:#b45309;background:#f59e0b1f;border-radius:10px;margin:0 1.2rem .85rem;padding:.75rem 1rem;font-size:.88rem;font-weight:700}.ta-table-wrap{width:100%;overflow-x:auto}.ta-table{border-collapse:collapse;width:100%}.ta-table thead th{text-align:left;background:var(--white);color:var(--gray-500);border-bottom:1px solid var(--gray-200);padding:.95rem 1rem;font-size:.78rem;font-weight:700}.ta-table tbody td{border-bottom:1px solid var(--gray-100);color:var(--gray-700);vertical-align:middle;padding:1.05rem 1rem;font-size:.9rem}.ta-table tbody tr:hover{background:#14788a08}.ta-index{color:var(--gray-500);font-weight:600}.ta-teacher-name{color:var(--primary);font-size:.92rem;font-weight:700}.ta-pill{border-radius:999px;justify-content:center;align-items:center;min-width:78px;padding:.38rem .75rem;font-size:.75rem;font-weight:700;display:inline-flex}.ta-pill.present{color:#15803d;background:#10b9811f}.ta-pill.absent{color:#dc2626;background:#ef44441f}.ta-actions{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.ta-status-btn{background:var(--white);border-radius:8px;min-width:74px;height:30px;padding:0 .7rem;font-size:.74rem;font-weight:700}.ta-status-btn.present{color:#15803d;border:1.5px solid #16a34a}.ta-status-btn.absent{color:#dc2626;border:1.5px solid #ef4444}.ta-status-btn.present.is-active{background:#10b98124;border-color:#16a34a}.ta-status-btn.absent.is-active{background:#ef44441f;border-color:#ef4444}.ta-status-btn:disabled{opacity:.55;cursor:not-allowed}.ta-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.2rem 1.15rem;display:flex}.ta-footer span{color:var(--gray-500);font-size:.8rem;font-weight:600}.ta-footer-right{flex-wrap:wrap;align-items:center;gap:.85rem;display:flex}.ta-pager{align-items:center;gap:.45rem;display:inline-flex}.ta-pager button{background:var(--white);border:1px solid var(--gray-200);width:34px;height:34px;color:var(--gray-600);border-radius:8px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.ta-pager button.is-active{background:var(--secondary);border-color:var(--secondary);color:var(--white)}.ta-pager button.is-disabled,.ta-pager button:disabled{color:var(--gray-300);cursor:not-allowed}.ta-empty{color:var(--gray-500);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:3rem 1.25rem;display:flex}@media (width<=1100px){.ta-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.ta-page{width:calc(100% - 18px);max-width:420px;margin:0 auto}.ta-card{width:100%;margin:0 auto}.ta-stats{grid-template-columns:1fr 1fr}.ta-stat-card{min-height:96px;padding:.9rem}.ta-field,.ta-date-field{min-width:100%}.ta-toolbar-actions,.ta-export-btn,.ta-primary-btn,.ta-footer-right{width:100%}.ta-pager{justify-content:flex-start}.ta-table thead{display:none}.ta-table,.ta-table tbody,.ta-table tr,.ta-table td{width:100%;display:block}.ta-table tbody tr{border:1px solid var(--gray-200);background:var(--white);border-radius:12px;margin:0 0 .85rem;padding:.2rem 0}.ta-table tbody tr:hover{background:var(--white)}.ta-table tbody td{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;gap:.6rem;padding:.8rem .9rem;display:flex}.ta-table tbody td:last-child{border-bottom:0}.ta-table tbody td:before{content:attr(data-label);color:var(--gray-500);flex:0 0 38%;min-width:0;font-size:.75rem;font-weight:700}.ta-table tbody td>:last-child{margin-left:auto}.ta-actions{justify-content:flex-end}}@media (width<=480px){.ta-page{width:calc(100% - 12px);max-width:400px;margin:0 auto}.ta-stats{grid-template-columns:1fr}.ta-header h1{font-size:1.2rem}.ta-toolbar,.ta-footer{padding-left:.85rem;padding-right:.85rem}.ta-locked-banner{margin-left:.85rem;margin-right:.85rem}}.sahal-attendance-page .desktop-table-view{-webkit-overflow-scrolling:touch;width:100%!important;display:block!important;overflow-x:auto!important}.sahal-attendance-page .mobile-cards-view{display:none!important}@media (width<=768px){.sahal-attendance-page .table-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #0c2d480f}.sahal-attendance-page .table-toolbar{flex-flow:row!important;justify-content:flex-start!important;align-items:flex-end!important;gap:.6rem!important;padding:.85rem 1rem!important;display:flex!important}.sahal-attendance-page .sa-toolbar-inputs{flex-flow:row!important;align-items:flex-end!important;gap:.6rem!important;width:100%!important;display:flex!important}.sahal-attendance-page .ta-field{flex:1 1 0!important;min-width:0!important;margin:0!important}.sahal-attendance-page .ta-field label{color:var(--gray-500);margin-bottom:.25rem;font-size:.72rem;font-weight:700;display:block}.sahal-attendance-page .ta-field select,.sahal-attendance-page .ta-date-control{box-sizing:border-box!important;border-radius:8px!important;width:100%!important;height:38px!important;padding:0 .6rem!important;font-size:.82rem!important}.sahal-attendance-page .ta-date-text{font-size:.82rem!important}.sahal-attendance-page .data-table-wrap{margin:0;padding:0;overflow-x:hidden!important}.sahal-attendance-page .data-table{table-layout:fixed!important;width:100%!important;min-width:0!important}.sahal-attendance-page .sa-col-id,.sahal-attendance-page .sa-col-class{display:none!important}.sahal-attendance-page .data-table th.sa-col-num,.sahal-attendance-page .data-table td.sa-col-num{text-align:center!important;width:30px!important;padding:.65rem .2rem!important}.sahal-attendance-page .data-table th.sa-col-name,.sahal-attendance-page .data-table td.sa-col-name{color:#0f172a!important;text-overflow:ellipsis!important;white-space:nowrap!important;padding:.65rem .4rem!important;font-size:.83rem!important;font-weight:700!important;overflow:hidden!important}.sahal-attendance-page .data-table th.sa-col-status,.sahal-attendance-page .data-table td.sa-col-status{text-align:right!important;width:152px!important;padding:.65rem .5rem .65rem .2rem!important}.sahal-attendance-page .sa-col-status>div{justify-content:flex-end!important;align-items:center!important;gap:4px!important;display:flex!important}.sahal-attendance-page .sa-col-status button{border-radius:6px!important;min-width:68px!important;height:32px!important;padding:0 4px!important;font-size:.76rem!important;font-weight:700!important}.sahal-attendance-page .data-table th{white-space:nowrap!important;color:#475569!important;background:#f8fafc!important;border-bottom:1px solid #e2e8f0!important;padding:.75rem .6rem!important;font-size:.72rem!important;font-weight:700!important}.sahal-attendance-page .data-table td{border-bottom:1px solid #f1f5f9!important}.sahal-attendance-page .sa-footer-wrap{background:#fff;border-top:1px solid var(--gray-100)!important;justify-content:flex-end!important;padding:.75rem 1rem!important;display:flex!important}.sahal-attendance-page .sa-footer-wrap button{border-radius:8px!important;flex-shrink:0!important;width:auto!important;height:40px!important;padding:.55rem 1.1rem!important;font-size:.85rem!important}}.table-card{overflow:visible!important}.table-toolbar.ar-toolbar{z-index:100!important;position:relative!important}.ar-toolbar-inputs{align-items:flex-end;gap:.75rem;width:100%;display:flex}.ar-field-class{flex:1;min-width:0}.ar-field-date{z-index:110;flex:1.5;min-width:0;position:relative}.ar-field-class label,.ar-field-date label{color:var(--primary,#0f172a);white-space:nowrap;margin-bottom:.35rem;font-size:.8rem;font-weight:600;display:block}@media (width<=991px){.table-card{overflow:visible!important}.table-card .table-toolbar.ar-toolbar,.table-toolbar.ar-toolbar{box-sizing:border-box!important;z-index:100!important;flex-direction:row!important;align-items:center!important;gap:.5rem!important;width:100%!important;padding:.75rem .85rem!important;display:flex!important;position:relative!important}.ar-toolbar-inputs{box-sizing:border-box!important;flex-flow:row!important;align-items:flex-end!important;gap:.5rem!important;width:100%!important;display:flex!important}.ar-field-class{flex:34%!important;min-width:90px!important}.ar-field-date{z-index:120!important;flex:66%!important;min-width:0!important;position:relative!important}.ar-field-class select{box-sizing:border-box!important;width:100%!important;height:40px!important;padding:0 1.6rem 0 .5rem!important;font-size:.8rem!important}.ar-field-date .date-range-picker-wrap{width:100%!important;position:relative!important}.ar-field-date .date-range-picker-wrap>div{box-sizing:border-box!important;height:40px!important;padding:.4rem .55rem!important;font-size:.78rem!important}}@media (width<=480px){.table-card .table-toolbar.ar-toolbar,.table-toolbar.ar-toolbar{gap:.35rem!important;padding:.65rem .75rem!important}.ar-toolbar-inputs{gap:.35rem!important}.ar-field-class label,.ar-field-date label{margin-bottom:.25rem!important;font-size:.72rem!important}.ar-field-class select{padding:0 1.5rem 0 .4rem!important;font-size:.76rem!important}.ar-field-date .date-range-picker-wrap>div{gap:.3rem!important;padding:.4rem .45rem!important;font-size:.74rem!important}}@media (width<=991px){.table-card .table-toolbar.teachers-toolbar,.table-toolbar.teachers-toolbar{box-sizing:border-box!important;flex-flow:row!important;align-items:center!important;gap:.5rem!important;width:100%!important;padding:.75rem .85rem!important;display:flex!important}.table-card .table-toolbar.teachers-toolbar .table-search,.table-toolbar.teachers-toolbar .table-search{flex:auto!important;width:auto!important;min-width:0!important;max-width:none!important;margin:0!important}.table-card .table-toolbar.teachers-toolbar .table-search input,.table-toolbar.teachers-toolbar .table-search input{box-sizing:border-box!important;width:100%!important;height:42px!important;padding-left:2.2rem!important;font-size:.82rem!important}.table-card .table-toolbar.teachers-toolbar .table-toolbar-actions,.table-toolbar.teachers-toolbar .table-toolbar-actions{flex:none!important;width:auto!important;margin:0!important;display:flex!important}.table-card .table-toolbar.teachers-toolbar .btn-add-primary,.table-toolbar.teachers-toolbar .btn-add-primary{white-space:nowrap!important;box-sizing:border-box!important;flex-shrink:0!important;justify-content:center!important;gap:.35rem!important;height:42px!important;padding:0 .85rem!important;font-size:.82rem!important;font-weight:600!important}}@media (width<=480px){.table-card .table-toolbar.teachers-toolbar,.table-toolbar.teachers-toolbar{gap:.4rem!important;padding:.65rem .75rem!important}.table-card .table-toolbar.teachers-toolbar .table-search input,.table-toolbar.teachers-toolbar .table-search input{padding-left:2rem!important;font-size:.78rem!important}.table-card .table-toolbar.teachers-toolbar .btn-add-primary,.table-toolbar.teachers-toolbar .btn-add-primary{padding:0 .65rem!important;font-size:.78rem!important}}.er-toolbar-filters{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.er-filter-select{border:1.5px solid var(--gray-200);border-radius:var(--radius-sm,8px);height:38px;color:var(--gray-800);background:var(--gray-50,#f8fafc);cursor:pointer;box-sizing:border-box;outline:none;padding:0 .9rem;font-size:.85rem;font-weight:600;transition:border-color .15s}.er-filter-select:focus{border-color:var(--secondary,#14788a)}@media (width<=768px){.er-toolbar-filters{grid-template-columns:1fr auto;align-items:center;gap:.5rem;width:100%;display:grid}.er-search-box{grid-area:1/1}.er-year-select{grid-area:1/2;min-width:90px;max-width:140px;width:auto!important;padding:0 .5rem!important;font-size:.8rem!important}.er-toolbar-filters .er-filter-select:not(.er-year-select):nth-child(3){grid-area:2/1}.er-toolbar-filters .er-filter-select:not(.er-year-select):nth-child(4){grid-area:2/2;width:auto}.er-filter-select{box-sizing:border-box;width:100%;height:42px;padding:0 .65rem;font-size:.82rem}.er-add-btn{justify-content:center;width:100%}}@media (width<=480px){.er-year-select{min-width:80px;max-width:130px;font-size:.75rem!important}.er-filter-select{height:40px;padding:0 .5rem;font-size:.78rem}}.privacy-page{color:#1e293b;background-color:#f8fafc;flex-direction:column;min-height:100vh;font-family:Poppins,Outfit,system-ui,-apple-system,sans-serif;display:flex}.privacy-header{z-index:10;background-color:#fff;border-bottom:1px solid #e2e8f0;padding:1.25rem 2rem;position:sticky;top:0;box-shadow:0 1px 4px #00000008}.privacy-header-container{justify-content:space-between;align-items:center;max-width:900px;margin:0 auto;display:flex}.privacy-brand-title{align-items:baseline;margin:0;font-family:Poppins,sans-serif;font-size:1.6rem;text-decoration:none;display:inline-flex}.privacy-brand-title .brand-bold{color:#0c2d48;font-weight:800}.privacy-brand-title .brand-light{color:#14788a;font-weight:400}.privacy-brand-title .brand-dot{color:#f59e0b;font-weight:800}.privacy-back-btn{color:#14788a;background-color:#14788a14;border-radius:6px;align-items:center;gap:.35rem;padding:.4rem .9rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.privacy-back-btn:hover{color:#fff;background-color:#14788a}.privacy-hero{color:#fff;text-align:center;background:linear-gradient(135deg,#0c2d48 0%,#14788a 100%);padding:3.5rem 1.5rem 3rem}.privacy-hero-container{max-width:800px;margin:0 auto}.privacy-hero-title{letter-spacing:-.5px;margin:0 0 .75rem;font-size:2.5rem;font-weight:800}.privacy-hero-subtitle{opacity:.9;margin:0 0 1rem;font-size:1.05rem;font-weight:400}.privacy-last-updated{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff26;border-radius:999px;padding:.3rem .85rem;font-size:.82rem;font-weight:500;display:inline-block}.privacy-content{box-sizing:border-box;z-index:2;flex:1;width:100%;max-width:860px;margin:-1.5rem auto 3rem;padding:0 1.25rem;position:relative}.privacy-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:2.5rem 3rem;box-shadow:0 4px 20px #0000000a}.privacy-section{margin-bottom:2.2rem}.privacy-section:last-child{margin-bottom:0}.privacy-section-title{color:#0c2d48;border-bottom:2px solid #f1f5f9;align-items:center;gap:.5rem;margin:0 0 .85rem;padding-bottom:.4rem;font-size:1.3rem;font-weight:700;display:flex}.privacy-text{color:#475569;margin:0 0 .85rem;font-size:.95rem;line-height:1.7}.privacy-list{color:#475569;margin:0 0 1rem 1.25rem;padding:0}.privacy-list li{margin-bottom:.4rem;font-size:.95rem;line-height:1.7}.privacy-list li strong{color:#0c2d48}.privacy-contact-box{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin-top:1rem;padding:1.25rem 1.5rem}.privacy-contact-box p{color:#166534;margin:0 0 .4rem;font-size:.92rem}.privacy-contact-box p:last-child{margin-bottom:0}.privacy-footer{text-align:center;color:#94a3b8;background:#fff;border-top:1px solid #e2e8f0;padding:1.5rem 1rem;font-size:.88rem}@media (width<=640px){.privacy-header{padding:1rem 1.25rem}.privacy-hero{padding:2.5rem 1.25rem}.privacy-hero-title{font-size:1.85rem}.privacy-card{padding:1.75rem 1.25rem}.privacy-section-title{font-size:1.15rem}}
