@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Inter:wght@300;400;500;600;700;800&family=Outfit:wght@300;400;500;600;700;800&family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";:root,[data-theme=level-1-light]{--font-family:"Inter", sans-serif;--theme-name:"1. Ultra Crisp Light";--primary-50:#eff6ff;--primary-100:#dbeafe;--primary-200:#bfdbfe;--primary-300:#93c5fd;--primary-400:#60a5fa;--primary-500:#2563eb;--primary-600:#1d4ed8;--primary-700:#1e40af;--primary-800:#1e3a8a;--primary-900:#0f172a;--accent-gold:#2563eb;--accent-warm:#f8fafc;--accent-cream:#f1f5f9;--surface-color:#fff;--background-color:#f8fafc;--border-color:#e2e8f0;--border-light:#f1f5f9;--text-main:#0f172a;--text-muted:#334155;--text-light:#64748b;--text-on-primary:#fff;--success-color:#16a34a;--error-color:#dc2626;--warning-color:#d97706;--info-color:#2563eb;--shadow-sm:0 1px 2px 0 #0f172a0d;--shadow-md:0 4px 12px -2px #0f172a14;--shadow-lg:0 12px 28px -4px #0f172a1f;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1)}[data-theme=level-2-warm]{--font-family:"DM Sans", sans-serif;--theme-name:"2. Warm Paper Light";--primary-50:#fef3c7;--primary-100:#fde68a;--primary-200:#fcd34d;--primary-300:#fbbf24;--primary-400:#f59e0b;--primary-500:#d97706;--primary-600:#b45309;--primary-700:#92400e;--primary-800:#78350f;--primary-900:#451a03;--accent-gold:#d97706;--accent-warm:#fefcbf;--accent-cream:#fef9c3;--surface-color:#fff;--background-color:#fcfbfa;--border-color:#e7e5e4;--border-light:#f5f5f4;--text-main:#1c1917;--text-muted:#44403c;--text-light:#78716c;--text-on-primary:#fff;--success-color:#15803d;--error-color:#b91c1c;--warning-color:#d97706;--info-color:#0369a1;--shadow-sm:0 1px 3px 0 #1c19170d;--shadow-md:0 4px 12px 0 #1c191714;--shadow-lg:0 12px 24px 0 #1c19171f;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px}[data-theme=level-3-medium]{--font-family:"Plus Jakarta Sans", sans-serif;--theme-name:"3. Medium Slate Steel";--primary-50:#e0e7ff;--primary-100:#c7d2fe;--primary-200:#a5b4fc;--primary-300:#818cf8;--primary-400:#6366f1;--primary-500:#4f46e5;--primary-600:#4338ca;--primary-700:#3730a3;--primary-800:#312e81;--primary-900:#1e1b4b;--accent-gold:#4f46e5;--accent-warm:#cbd5e1;--accent-cream:#e2e8f0;--surface-color:#fff;--background-color:#e2e8f0;--border-color:#cbd5e1;--border-light:#e2e8f0;--text-main:#0f172a;--text-muted:#334155;--text-light:#475569;--text-on-primary:#fff;--success-color:#16a34a;--error-color:#dc2626;--warning-color:#d97706;--info-color:#4f46e5;--shadow-sm:0 1px 3px 0 #0f172a1a;--shadow-md:0 4px 14px 0 #0f172a1f;--shadow-lg:0 12px 28px 0 #0f172a29;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px}[data-theme=level-4-dim]{--font-family:"Plus Jakarta Sans", sans-serif;--theme-name:"4. Dim Charcoal Slate";--primary-50:#064e3b;--primary-100:#065f46;--primary-200:#047857;--primary-300:#059669;--primary-400:#10b981;--primary-500:#10b981;--primary-600:#059669;--primary-700:#047857;--primary-800:#065f46;--primary-900:#064e3b;--accent-gold:#10b981;--accent-warm:#1e293b;--accent-cream:#334155;--surface-color:#334155;--background-color:#1e293b;--border-color:#475569;--border-light:#334155;--text-main:#f8fafc;--text-muted:#cbd5e1;--text-light:#94a3b8;--text-on-primary:#fff;--success-color:#10b981;--error-color:#f87171;--warning-color:#fbbf24;--info-color:#38bdf8;--shadow-sm:0 1px 3px 0 #00000040;--shadow-md:0 4px 14px 0 #00000059;--shadow-lg:0 12px 28px 0 #00000080;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px}[data-theme=level-5-midnight]{--font-family:"Outfit", sans-serif;--theme-name:"5. Deep Midnight OLED";--primary-50:#18181b;--primary-100:#27272a;--primary-200:#3f3f46;--primary-300:#52525b;--primary-400:#6366f1;--primary-500:#6366f1;--primary-600:#4f46e5;--primary-700:#4338ca;--primary-800:#3730a3;--primary-900:#000;--accent-gold:#6366f1;--accent-warm:#18181b;--accent-cream:#27272a;--surface-color:#18181b;--background-color:#09090b;--border-color:#27272a;--border-light:#18181b;--text-main:#fff;--text-muted:#a1a1aa;--text-light:#71717a;--text-on-primary:#fff;--success-color:#10b981;--error-color:#f43f5e;--warning-color:#f59e0b;--info-color:#6366f1;--shadow-sm:0 1px 3px 0 #0009;--shadow-md:0 4px 16px 0 #000000b3;--shadow-lg:0 12px 32px 0 #000000e6;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family,"Inter", sans-serif);background-color:var(--background-color);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;transition:background-color var(--transition-normal), color var(--transition-normal);line-height:1.5}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit;font-size:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--background-color)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:var(--text-light)}input:-webkit-autofill{transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 30px var(--surface-color) inset!important;-webkit-text-fill-color:var(--text-main)!important}input:-webkit-autofill:hover{transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 30px var(--surface-color) inset!important;-webkit-text-fill-color:var(--text-main)!important}input:-webkit-autofill:focus{transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 30px var(--surface-color) inset!important;-webkit-text-fill-color:var(--text-main)!important}input:-webkit-autofill:active{transition:background-color 5000s ease-in-out;-webkit-box-shadow:0 0 0 30px var(--surface-color) inset!important;-webkit-text-fill-color:var(--text-main)!important}svg.lucide,.nav-icon svg,.metric-mini-icon,.theme-switcher-toggle-btn svg{vertical-align:middle;stroke:currentColor;flex-shrink:0;display:inline-block}.auth-layout{background:linear-gradient(135deg, var(--background-color) 0%, var(--primary-100) 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-container{width:100%;max-width:440px}.btn{border-radius:var(--radius-sm);cursor:pointer;transition:background-color var(--transition-normal), border-color var(--transition-normal), color var(--transition-normal);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:600;line-height:1.25;display:inline-flex}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--primary-600);color:var(--text-on-primary,#fff);border-color:var(--primary-600);box-shadow:0 1px 2px #2563eb33}.btn-primary:hover:not(:disabled){background-color:var(--primary-700);border-color:var(--primary-700)}.btn-secondary{background-color:var(--primary-50);color:var(--primary-700);border-color:var(--primary-200)}.btn-secondary:hover:not(:disabled){background-color:var(--primary-100)}.btn-outline{background-color:var(--surface-color);color:var(--text-main);border-color:var(--border-color)}.btn-outline:hover:not(:disabled){background-color:var(--primary-50);color:var(--primary-600);border-color:var(--primary-300)}.btn-danger{background-color:var(--error-color);color:#fff}.btn-danger:hover:not(:disabled){background-color:#b91c1c}.btn-sm{padding:6px 12px;font-size:13px}.btn-md{padding:8px 16px;font-size:14px}.btn-lg{padding:12px 24px;font-size:15px}.btn-full{width:100%}.theme-switcher-container{display:inline-block;position:relative}.theme-switcher-toggle-btn{border-radius:var(--radius-sm);background-color:var(--surface-color);border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;transition:var(--transition-fast);align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:600;display:flex}.theme-switcher-toggle-btn:hover{border-color:var(--primary-400);background-color:var(--primary-50)}.theme-dropdown-backdrop{z-index:190;position:fixed;inset:0}.theme-dropdown-menu{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);width:260px;box-shadow:var(--shadow-lg);z-index:200;flex-direction:column;gap:4px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.theme-dropdown-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-light);border-bottom:1px solid var(--border-light);margin-bottom:4px;padding:6px 10px;font-size:11px;font-weight:700}.theme-option-btn{border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:var(--transition-fast);background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.theme-option-btn:hover{background-color:var(--primary-50)}.theme-option-btn.active{background-color:var(--primary-50);font-weight:600}.theme-color-swatch{border-radius:50%;flex-shrink:0;width:14px;height:14px}.theme-option-info{flex-direction:column;flex:1;display:flex}.theme-option-name{color:var(--text-main);font-size:13px;line-height:1.2}.theme-option-font{color:var(--text-light);font-size:11px}.theme-check-icon{color:var(--primary-600)}.admin-header{background-color:var(--surface-color);height:64px;color:var(--text-main);border-bottom:1px solid var(--border-color);z-index:100;box-shadow:var(--shadow-sm);transition:background-color var(--transition-normal), border-color var(--transition-normal), color var(--transition-normal);justify-content:space-between;align-items:center;padding:0 28px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:12px;display:flex}.brand-badge{color:var(--primary-700);background-color:var(--primary-50);border-radius:var(--radius-sm);border:1px solid var(--primary-200);letter-spacing:-.2px;align-items:center;gap:8px;padding:6px 14px;font-size:14px;font-weight:700;display:flex}.header-center{text-align:center;flex:1;justify-content:center;align-items:center;display:flex}.header-page-title{color:var(--text-main);letter-spacing:-.3px;margin:0;font-size:1.125rem;font-weight:700}.header-right{justify-content:flex-end;align-items:center;gap:16px;display:flex}.user-indicator{color:var(--text-muted);background-color:var(--background-color);border-radius:var(--radius-full);border:1px solid var(--border-color);padding:5px 12px;font-size:13px;font-weight:600}.server-time-badge{background-color:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);flex-direction:column;align-items:center;min-width:90px;padding:4px 10px;line-height:1.2;display:flex}.server-time-label{color:var(--primary-500,#6366f1);text-transform:uppercase;letter-spacing:.6px;font-size:9px;font-weight:700}.server-time-value{color:var(--text-main);font-variant-numeric:tabular-nums;font-family:monospace;font-size:13px;font-weight:700}.server-time-date{color:var(--text-muted);font-size:9px}.header-server-metrics-bar{background-color:var(--background-color,#f8fafc);border:1px solid var(--border-color,#e2e8f0);border-radius:var(--radius-full,9999px);align-items:center;gap:6px;padding:3px 8px;transition:all .2s;display:flex}.header-server-metrics-bar:hover{border-color:#cbd5e1;box-shadow:0 1px 4px #0000000a}.metric-mini-pill{-webkit-user-select:none;user-select:none;border-radius:9999px;align-items:center;gap:4px;padding:2px 7px;font-size:11px;font-weight:600;transition:all .2s;display:inline-flex}.metric-mini-pill .metric-mini-icon{opacity:.85}.metric-mini-pill .metric-mini-name{color:var(--text-muted,#64748b);text-transform:uppercase;letter-spacing:.3px;font-size:10px;font-weight:700}.metric-mini-pill .metric-mini-val{font-variant-numeric:tabular-nums;font-family:monospace;font-weight:700}.metric-mini-pill.normal{color:#059669;background:#10b98114;border:1px solid #10b98133}.metric-mini-pill.warning{color:#d97706;background:#f59e0b1a;border:1px solid #f59e0b40}.metric-mini-pill.danger{color:#dc2626;background:#ef44441f;border:1px solid #ef44444d;animation:1.5s infinite pulse-danger}@keyframes pulse-danger{0%{opacity:1}50%{opacity:.6}to{opacity:1}}.admin-sidebar{background-color:var(--surface-color);width:260px;color:var(--text-main);border-right:1px solid var(--border-color);height:calc(100vh - 64px);transition:width var(--transition-normal), background-color var(--transition-normal), border-color var(--transition-normal), color var(--transition-normal);z-index:90;flex-direction:column;display:flex;position:sticky;top:64px}.admin-sidebar.collapsed{width:72px}.sidebar-top-bar{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.admin-sidebar.collapsed .sidebar-top-bar{justify-content:center;padding:16px 0}.sidebar-brand-title{text-transform:uppercase;letter-spacing:.8px;color:var(--text-light);font-size:13px;font-weight:700}.sidebar-close-btn,.sidebar-expand-btn{cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);transition:background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:flex}.sidebar-close-btn:hover,.sidebar-expand-btn:hover{background-color:var(--primary-50);color:var(--primary-600)}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:12px 10px;display:flex;overflow-y:auto}.nav-item{border-radius:var(--radius-sm);color:var(--text-muted);transition:all var(--transition-fast);white-space:nowrap;align-items:center;gap:12px;padding:10px 14px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.admin-sidebar.collapsed .nav-item{justify-content:center;padding:10px 0}.nav-item:hover{background-color:var(--primary-50);color:var(--primary-600)}.nav-item.active{background-color:var(--primary-600);color:var(--text-on-primary,#fff);font-weight:600;box-shadow:0 2px 4px #2563eb33}.nav-item.active .nav-icon{color:var(--text-on-primary,#fff)}.nav-icon{color:var(--text-light);width:20px;min-width:20px;height:20px;transition:color var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.nav-icon svg{stroke:currentColor;flex-shrink:0;width:20px;height:20px;display:block}.nav-item:hover .nav-icon{color:var(--primary-600)}.sidebar-footer{border-top:1px solid var(--border-light);color:var(--text-light);text-align:center;padding:14px 16px;font-size:11px;font-weight:500}.admin-layout{flex-direction:column;min-height:100vh;display:flex}.admin-body{background-color:var(--background-color);flex:1;display:flex}.admin-content{flex:1;max-width:calc(100vw - 80px);padding:32px;overflow-y:auto}.input-wrapper{text-align:left;flex-direction:column;gap:6px;width:100%;display:flex}.input-label{color:var(--text-main);font-size:13px;font-weight:600}.input-container{align-items:center;width:100%;display:flex;position:relative}.relative-input{position:relative}.input-field{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;color:var(--text-main);transition:all var(--transition-fast);outline:none;padding:10px 14px;font-size:14px}.input-field.password-padded-left{padding-left:42px}.input-field:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100)}.input-field:disabled{background-color:var(--primary-50);cursor:not-allowed}.input-field.has-error{border-color:var(--error-color)}.input-field.has-error:focus{box-shadow:0 0 0 3px #dc262626}.password-toggle-btn-left{color:var(--text-light);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast);z-index:2;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.password-toggle-btn-left:hover{color:var(--primary-600)}.input-error-msg{color:var(--error-color);margin-top:2px;font-size:12px}.login-card{background:var(--surface-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--border-color);text-align:center;transition:background-color var(--transition-normal), border-color var(--transition-normal);padding:40px}.login-header-section{margin-bottom:32px}.login-logo{background-color:var(--primary-50);width:64px;height:64px;color:var(--primary-600);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;margin:0 auto 16px;display:flex}.login-title{color:var(--text-main);margin-bottom:8px;font-size:24px;font-weight:700}.login-subtitle{color:var(--text-muted);font-size:14px}.login-form{text-align:left;flex-direction:column;gap:20px;display:flex}.login-error-banner{color:var(--error-color);border-radius:var(--radius-md);text-align:center;background-color:#ef44441a;border:1px solid #ef44444d;margin-bottom:16px;padding:10px 14px;font-size:13px}.login-footer-info{color:var(--text-light);border-top:1px solid var(--border-light);margin-top:24px;padding-top:16px;font-size:13px}.card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-normal);padding:24px}.card:hover{box-shadow:var(--shadow-md)}.card-header{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;display:flex}.card-title{color:var(--primary-900);font-size:18px;font-weight:600}.card-body{color:var(--text-main)}.schools-page-container{box-sizing:border-box;flex-direction:column;gap:18px;max-width:1400px;height:100%;margin:0 auto;display:flex}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.header-title-group{align-items:center;gap:14px;display:flex}.header-icon-box{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--primary-600), var(--primary-800));color:#fff;width:48px;height:48px;box-shadow:var(--shadow-md);justify-content:center;align-items:center;display:flex}.page-main-title{color:var(--text-main);margin:0;font-size:1.5rem;font-weight:700}.page-subtitle{color:var(--text-muted);margin:2px 0 0;font-size:.875rem}.header-actions-group{align-items:center;gap:10px;display:flex}.refresh-btn{border-radius:var(--radius-sm);background-color:var(--surface-color);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);align-items:center;gap:6px;padding:8px 14px;font-size:.875rem;font-weight:500;display:flex}.refresh-btn:hover{background-color:var(--accent-warm);color:var(--text-main)}.primary-action-btn{border-radius:var(--radius-sm);background-color:var(--primary-600);color:#fff;cursor:pointer;box-shadow:var(--shadow-sm);transition:var(--transition-fast);border:none;align-items:center;gap:8px;padding:9px 18px;font-size:.875rem;font-weight:600;display:flex}.primary-action-btn:hover{background-color:var(--primary-700);box-shadow:var(--shadow-md);transform:translateY(-1px)}.primary-action-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.schools-filter-container{background-color:var(--surface-color);border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;display:flex}.search-bar-wrapper{flex:1;align-items:center;min-width:260px;display:flex;position:relative}.search-bar-wrapper .search-icon{color:var(--text-light);pointer-events:none;position:absolute;left:12px}.main-search-input{border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--accent-cream);width:100%;color:var(--text-main);transition:var(--transition-fast);outline:none;padding:10px 36px 10px 40px;font-size:.9rem}.main-search-input:focus{border-color:var(--primary-500);background-color:var(--surface-color);box-shadow:0 0 0 3px var(--primary-100)}.clear-btn{color:var(--text-light);cursor:pointer;border-radius:var(--radius-full);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;right:10px}.clear-btn:hover{background-color:var(--primary-100);color:var(--text-main)}.filter-stats{color:var(--text-muted);font-size:.85rem;font-weight:600}.stat-badge{background-color:var(--primary-50);color:var(--primary-700);border-radius:var(--radius-full);border:1px solid var(--border-light);padding:4px 12px}.schools-scrollable-section{flex:1;min-height:400px;padding-right:4px;overflow-y:auto}.schools-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;display:grid}.school-card{background-color:var(--surface-color);border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);cursor:pointer;transition:all var(--transition-normal);flex-direction:column;display:flex;position:relative;overflow:hidden}.school-card:hover{box-shadow:var(--shadow-lg);border-color:var(--primary-400);transform:translateY(-4px)}.school-card-top{background-color:var(--primary-50);border-bottom:1px solid var(--border-light);justify-content:center;align-items:center;height:120px;padding:16px;display:flex;position:relative}.school-top-icon-wrapper{border-radius:var(--radius-md);background:linear-gradient(135deg, var(--primary-600), var(--primary-800));color:#fff;width:64px;height:64px;box-shadow:var(--shadow-md);transition:transform var(--transition-fast);justify-content:center;align-items:center;display:flex;overflow:hidden}.school-icon-img{object-fit:cover;width:100%;height:100%}.school-card:hover .school-top-icon-wrapper{transform:scale(1.08)}.school-id-badge{border-radius:var(--radius-full);background-color:var(--surface-color);color:var(--primary-700);border:1px solid var(--border-color);letter-spacing:.5px;padding:2px 8px;font-size:.725rem;font-weight:700;position:absolute;top:10px;right:12px}.school-meta-info{color:var(--text-light);font-size:.775rem}.school-card-bottom{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex}.school-name{color:var(--text-main);margin:0;font-size:1.1rem;font-weight:700;line-height:1.3}.school-location{color:var(--text-light);align-items:center;gap:6px;font-size:.8rem;display:flex}.location-icon{color:var(--primary-500);flex-shrink:0}.school-card-stats{align-items:center;gap:10px;margin-top:auto;display:flex}.stat-pill{color:var(--text-muted);background-color:var(--primary-50);border-radius:var(--radius-sm);border:1px solid var(--border-light);align-items:center;gap:5px;padding:4px 10px;font-size:.8rem;font-weight:500;display:flex}.school-card-action-bar{border-top:1px dashed var(--border-color);justify-content:space-between;align-items:center;padding-top:10px;display:flex}.click-prompt{color:var(--primary-600);font-size:.8rem;font-weight:600}.school-card:hover .click-prompt{text-decoration:underline}.modal-window{background-color:var(--surface-color);border-radius:var(--radius-lg);border:1px solid var(--border-color);flex-direction:column;width:100%;max-width:750px;height:560px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 20px 50px #00000040}.modal-window.add-modal{box-sizing:border-box;width:90%;max-width:520px;height:auto;min-height:auto}.add-form-container{box-sizing:border-box;flex-direction:column;gap:16px;width:100%;padding:20px 24px;display:flex}.form-input-wrapper{box-sizing:border-box;align-items:center;width:100%;display:flex;position:relative}.form-input-wrapper .input-icon{color:var(--text-light);pointer-events:none;position:absolute;left:12px}.form-input.icon-padded{padding-left:40px}.form-row{box-sizing:border-box;align-items:flex-start;gap:16px;width:100%;display:flex}.flex-1{flex:1;min-width:0}.modal-header{border-bottom:1px solid var(--border-color);background-color:var(--accent-warm);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.modal-title-group{align-items:center;gap:12px;display:flex}.modal-icon-badge{border-radius:var(--radius-md);background-color:var(--primary-100);width:40px;height:40px;color:var(--primary-800);justify-content:center;align-items:center;display:flex}.modal-icon-badge.house-badge,.modal-icon-badge.student-badge{background-color:var(--primary-50);color:var(--primary-600)}.modal-breadcrumb{color:var(--text-light);align-items:center;gap:4px;font-size:.775rem;font-weight:600;display:flex}.breadcrumb-separator{color:var(--text-light);opacity:.6}.breadcrumb-active{color:var(--primary-700)}.modal-title{color:var(--text-main);margin:0;font-size:1.2rem;font-weight:700}.modal-close-btn{border-radius:var(--radius-full);width:32px;height:32px;color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.modal-close-btn:hover{background-color:var(--primary-100);color:var(--text-main)}.modal-filter-bar{background-color:var(--surface-color);border-bottom:1px solid var(--border-light);align-items:center;gap:12px;padding:12px 24px;display:flex}.search-box{flex:1;align-items:center;display:flex;position:relative}.search-box .search-icon{color:var(--text-light);position:absolute;left:12px}.search-input{border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--surface-color);width:100%;color:var(--text-main);outline:none;padding:8px 32px 8px 36px;font-size:.875rem}.search-input:focus{border-color:var(--primary-500);background-color:var(--surface-color)}.clear-search-btn{color:var(--text-light);cursor:pointer;background:0 0;border:none;align-items:center;display:flex;position:absolute;right:8px}.refresh-icon-btn{background-color:var(--primary-50);border:1px solid var(--border-light);color:var(--primary-700);border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.refresh-icon-btn:hover{background-color:var(--primary-100)}.modal-scroll-content{flex:1;padding:20px 24px;overflow-y:auto}.houses-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.house-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:var(--transition-fast);flex-direction:column;gap:12px;padding:16px;display:flex}.house-card.clickable{cursor:pointer}.house-card.clickable:hover{border-color:var(--primary-500);box-shadow:var(--shadow-md);background-color:var(--accent-cream);transform:translateY(-2px)}.house-card-header{align-items:center;gap:12px;display:flex}.house-icon-wrapper{border-radius:var(--radius-md);background-color:var(--primary-50);width:42px;height:42px;color:var(--primary-600);flex-shrink:0;justify-content:center;align-items:center;display:flex}.house-tag-group{flex-direction:column;display:flex}.house-tag{color:var(--text-main);margin:0;font-size:1rem;font-weight:700}.house-device{color:var(--text-light);align-items:center;gap:4px;font-size:.75rem;display:flex}.house-card-body{background-color:var(--background-color);border-radius:var(--radius-sm);border:1px solid var(--border-light);flex-direction:column;gap:6px;padding:8px 12px;font-size:.825rem;display:flex}.house-meta-row{justify-content:space-between;align-items:center;display:flex}.meta-label{color:var(--text-muted);align-items:center;gap:4px;display:flex}.meta-value{color:var(--text-main);font-weight:700}.meta-value-sub{color:var(--text-main);font-weight:600}.house-card-footer{color:var(--primary-600);justify-content:space-between;align-items:center;padding-top:4px;font-size:.8rem;font-weight:600;display:flex}.arrow-icon{transition:transform var(--transition-fast)}.house-card:hover .arrow-icon{transform:translate(4px)}.students-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.student-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:var(--transition-fast);flex-direction:column;gap:12px;padding:14px;display:flex}.student-card:hover{border-color:var(--primary-400);box-shadow:var(--shadow-md)}.student-card-header{align-items:center;gap:12px;display:flex}.student-avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--primary-500), var(--primary-700));color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:1.1rem;font-weight:700;display:flex}.student-info{flex-direction:column;display:flex}.student-name{color:var(--text-main);margin:0;font-size:.95rem;font-weight:700}.student-roll{color:var(--text-light);align-items:center;gap:2px;font-size:.775rem;display:flex}.student-card-body{border-top:1px solid var(--border-light);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding-top:10px;display:flex}.student-stat-pill{color:var(--text-muted);background-color:var(--primary-50);border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:5px;padding:4px 10px;font-size:.775rem;font-weight:600;display:inline-flex}.student-card-actions{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.token-icon{color:#d97706}.success-icon{color:var(--success-color)}.muted-icon{color:var(--text-light)}.modal-footer{border-top:1px solid var(--border-color);background-color:var(--accent-warm);justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.footer-count{color:var(--text-muted);font-size:.825rem;font-weight:500}.secondary-btn{border-radius:var(--radius-sm);background-color:var(--surface-color);border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;transition:var(--transition-fast);padding:8px 16px;font-size:.85rem;font-weight:600}.secondary-btn:hover{background-color:var(--primary-100)}.add-school-form{flex-direction:column;gap:16px;padding:20px 24px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-main);font-size:.85rem;font-weight:600}.form-input{border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--surface-color);color:var(--text-main);outline:none;padding:10px 14px;font-size:.9rem}.form-input option{background-color:var(--surface-color);color:var(--text-main)}.form-input:focus{border-color:var(--primary-500)}.page-loading-state,.modal-loading-state{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:60px 20px;display:flex}.loading-spinner{border:3px solid var(--primary-100);border-top-color:var(--primary-600);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.spin-icon{animation:.8s linear infinite spin}.page-empty-state,.modal-empty-state{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.retry-btn{background-color:var(--primary-600);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;margin-top:10px;padding:8px 16px}.animate-fade-in{animation:.2s ease-out fadeIn}.animate-scale-up{animation:.25s cubic-bezier(.16,1,.3,1) scaleUp}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleUp{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.flex-center{align-items:center;display:flex}.gap-2{gap:8px}.action-icon-btn{border:1px solid var(--border-color);border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.action-icon-btn.danger:hover{color:#dc2626;background-color:#fee2e2;border-color:#fca5a5}.token-action-btn{background-color:var(--surface-color);border:1px solid var(--border-color);cursor:pointer;width:20px;height:20px;color:var(--primary-700);transition:var(--transition-fast);border-radius:4px;justify-content:center;align-items:center;margin-left:4px;font-size:.8rem;font-weight:700;line-height:1;display:inline-flex}.token-action-btn:hover{background-color:var(--primary-600);color:#fff}.form-error-banner{color:#b91c1c;border-radius:var(--radius-sm);border-radius:var(--radius-sm);background-color:#fef2f2;border:1px solid #fecaca;padding:10px 14px;font-size:.85rem;font-weight:500}.token-mode-tabs{background-color:var(--primary-50);border-radius:var(--radius-sm);gap:8px;padding:4px;display:flex}.token-tab-btn{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:.85rem;font-weight:600;display:flex}.token-tab-btn.active-add{background-color:var(--surface-color);color:var(--success-color);box-shadow:var(--shadow-sm)}.token-tab-btn.active-reduce{background-color:var(--surface-color);color:var(--error-color);box-shadow:var(--shadow-sm)}.danger-header{background-color:var(--surface-color);border-bottom:1px solid var(--border-color)}.danger-badge{background-color:var(--primary-50);color:var(--error-color)}.confirm-modal-body{flex-direction:column;gap:8px;padding:20px 24px;display:flex}.confirm-message{color:var(--text-main);margin:0;font-size:1rem;font-weight:600}.confirm-subtext{color:var(--text-light);margin:0;font-size:.825rem}.danger-action-btn{border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:var(--transition-fast);background-color:#dc2626;border:none;padding:8px 18px;font-size:.875rem;font-weight:600}.danger-action-btn:hover{background-color:#b91c1c}.primary-action-btn.warn-btn{background-color:#dc2626}.primary-action-btn.warn-btn:hover{background-color:#b91c1c}.days-schedule-container{flex-direction:column;gap:16px;display:flex}.day-schedule-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;gap:12px;padding:16px 20px;display:flex}.day-card-header{color:var(--text-main);border-bottom:1px solid var(--border-light);align-items:center;gap:10px;padding-bottom:8px;font-size:1rem;font-weight:700;display:flex}.day-title{flex:1}.day-count-badge{background-color:var(--primary-50);color:var(--primary-600);border-radius:var(--radius-full);padding:2px 10px;font-size:.75rem;font-weight:600}.day-slots-list{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.no-slots-text{color:var(--text-light);font-size:.825rem;font-style:italic}.timeslot-pill{background-color:var(--surface-color);border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-sm);transition:var(--transition-fast);justify-content:space-between;align-items:center;gap:12px;padding:6px 12px;display:flex}.timeslot-pill:hover{border-color:var(--primary-400);box-shadow:var(--shadow-sm)}.timeslot-time{color:var(--text-main);align-items:center;gap:6px;font-size:.85rem;font-weight:600;display:flex}.timeslot-actions{align-items:center;gap:4px;display:flex}.input-icon-btn-left{color:var(--text-light);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast);z-index:2;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.input-icon-btn-left:hover{color:var(--primary-600)}.file-dropzone-label{border:2px dashed var(--border-color);border-radius:var(--radius-md);background-color:var(--background-color);cursor:pointer;transition:var(--transition-fast);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px 16px;display:flex}.file-dropzone-label:hover{border-color:var(--primary-500);background-color:var(--primary-50)}.dropzone-icon{color:var(--primary-600)}.dropzone-text-group{flex-direction:column;gap:4px;display:flex}.dropzone-title{color:var(--text-main);font-size:.875rem;font-weight:600}.dropzone-subtext{color:var(--text-light);font-size:.75rem}.hidden-file-input{display:none}.image-preview-card{background-color:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);align-items:center;gap:12px;padding:10px 14px;display:flex}.image-preview-thumb{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:#fff;width:44px;height:44px}.image-preview-info{flex-direction:column;flex:1;display:flex;overflow:hidden}.image-preview-name{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.image-preview-size{color:var(--text-light);font-size:.75rem}.remove-image-btn{border:1px solid var(--border-color);width:28px;height:28px;color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);background:0 0;border-radius:50%;justify-content:center;align-items:center;display:flex}.remove-image-btn:hover{color:#dc2626;background-color:#fee2e2;border-color:#fca5a5}.modal-back-btn{background-color:var(--surface-color);border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-sm);cursor:pointer;height:34px;transition:var(--transition-fast);justify-content:center;align-items:center;gap:6px;padding:6px 14px;font-size:.85rem;font-weight:600;line-height:1;display:inline-flex}.modal-back-btn svg{flex-shrink:0;display:block}.modal-back-btn:hover{background-color:var(--primary-50);color:var(--primary-600);border-color:var(--primary-300)}.modal-close-all-btn{color:var(--error-color);border-radius:var(--radius-sm);cursor:pointer;height:34px;transition:var(--transition-fast);background-color:#dc262614;border:1px solid #dc262640;justify-content:center;align-items:center;gap:6px;padding:6px 14px;font-size:.85rem;font-weight:600;line-height:1;display:inline-flex}.modal-close-all-btn svg{flex-shrink:0;display:block}.modal-close-all-btn:hover{color:#fff;background-color:#dc2626;border-color:#dc2626}.secondary-btn{justify-content:center;align-items:center;gap:6px;line-height:1;display:inline-flex}.secondary-btn svg{flex-shrink:0;display:block}.secondary-btn.danger-outline{color:var(--error-color);background-color:#dc26260f;border-color:#dc26264d}.secondary-btn.danger-outline:hover{color:#fff;background-color:#dc2626;border-color:#dc2626}.tab-section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-title{color:var(--text-main);font-size:.9rem;font-weight:700}.parent-actions{align-items:center;gap:10px;display:flex}.details-tab-bar{gap:8px;width:100%;display:flex}.details-tab-btn{border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--surface-color);color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);flex:1;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:.85rem;font-weight:600;display:flex}.details-tab-btn:hover{color:var(--primary-600);background-color:var(--primary-50)}.details-tab-btn.active{background-color:var(--primary-600);color:var(--text-on-primary,#fff);border-color:var(--primary-600);box-shadow:var(--shadow-sm)}.student-details-container{flex-direction:column;gap:20px;display:flex}.student-identity-banner{background-color:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);align-items:center;gap:16px;padding:16px 20px;display:flex}.student-big-avatar{background:linear-gradient(135deg, var(--primary-500), var(--primary-700));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.4rem;font-weight:700;display:flex}.identity-info{flex-direction:column;flex:1;gap:4px;display:flex}.identity-name{color:var(--text-main);margin:0;font-size:1.2rem;font-weight:700}.identity-tags{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.identity-tag{color:var(--text-muted);background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);align-items:center;gap:4px;padding:2px 8px;font-size:.775rem;font-weight:600;display:flex}.identity-actions{align-items:center;gap:8px;display:flex}.details-info-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.info-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:14px 16px;display:flex}.info-card.highlight-token{border-color:var(--primary-300);background-color:var(--primary-50)}.info-label{color:var(--text-light);text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;font-weight:600}.info-value{color:var(--text-main);font-size:.95rem;font-weight:700}.token-balance-row{align-items:center;gap:8px;display:flex}.token-balance-value{color:var(--text-main);font-size:1.25rem;font-weight:800}.token-actions-inline{align-items:center;gap:4px;margin-left:auto;display:flex}.password-display-row{align-items:center;gap:8px;display:flex;position:relative}.inline-eye{position:static!important;transform:none!important}.password-value{color:var(--text-main);letter-spacing:1px;font-family:monospace;font-size:1rem;font-weight:600}.parents-list-grid{flex-direction:column;gap:12px;display:flex}.parent-detail-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);align-items:center;gap:14px;padding:12px 16px;display:flex}.parent-avatar{background-color:var(--primary-50);width:36px;height:36px;color:var(--primary-600);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.parent-info{flex-direction:column;flex:1;gap:2px;display:flex}.parent-name{color:var(--text-main);margin:0;font-size:.95rem;font-weight:700}.parent-phone{color:var(--text-light);align-items:center;gap:4px;font-size:.8rem;display:flex}.parent-balance-badge{color:var(--success-color);background-color:var(--primary-50);border-radius:var(--radius-full);padding:4px 10px;font-size:.8rem;font-weight:700}.calls-list{flex-direction:column;gap:10px;display:flex}.call-log-item{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);align-items:center;gap:14px;padding:12px 16px;display:flex}.call-type-icon{background-color:var(--primary-50);width:36px;height:36px;color:var(--primary-600);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.call-details{flex-direction:column;flex:1;gap:2px;display:flex}.call-title{color:var(--text-main);font-size:.9rem;font-weight:700}.call-duration{color:var(--text-light);align-items:center;gap:4px;font-size:.775rem;display:flex}.call-status-badge{border-radius:var(--radius-full);text-transform:uppercase;align-items:center;gap:5px;padding:4px 10px;font-size:.75rem;font-weight:700;display:flex}.call-status-badge.completed{color:var(--success-color);background-color:#16a34a1a}.call-status-badge.missed,.call-status-badge.rejected{color:var(--error-color);background-color:#dc26261a}.pagination-bar{background-color:var(--surface-color);border-top:1px solid var(--border-color);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;font-size:.85rem;display:flex}.pagination-left{align-items:center;gap:8px;display:flex}.pagination-label{color:var(--text-muted);font-weight:600}.pagination-select{border-radius:var(--radius-sm);border:1px solid var(--border-color);background-color:var(--surface-color);color:var(--text-main);cursor:pointer;outline:none;padding:4px 8px;font-size:.85rem;font-weight:600}.pagination-center{color:var(--text-main);font-weight:600}.pagination-nav-btn{background-color:var(--surface-color);border:1px solid var(--border-color);color:var(--text-main);border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;transition:var(--transition-fast);justify-content:center;align-items:center;display:flex}.pagination-nav-btn:hover:not(:disabled){background-color:var(--primary-50);color:var(--primary-600);border-color:var(--primary-300)}.pagination-page-indicator{color:var(--text-main);font-weight:600}.parent-detail-card.already-linked{opacity:.6;pointer-events:none;border-style:dashed}.already-linked-badge{color:var(--text-muted);background-color:var(--border-color);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px;padding:4px 10px;font-size:.75rem;font-weight:700}.clear-search-btn{cursor:pointer;color:var(--text-muted);transition:var(--transition-fast);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:2px;display:flex}.clear-search-btn:hover{color:var(--text-main);background-color:var(--border-color)}.houses-badge{background-color:var(--primary-100);color:var(--primary-700)}.house-school-banner{border-radius:var(--radius-md) var(--radius-md) 0 0;background-color:var(--primary-50);color:var(--primary-700);border-bottom:1px solid var(--primary-100);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;margin:-16px -16px 12px;padding:8px 16px;font-size:.75rem;font-weight:700;display:flex}.house-school-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.school-picker-list{flex-direction:column;gap:8px;display:flex}.school-picker-item{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-main);cursor:pointer;transition:var(--transition-fast);text-align:left;align-items:center;gap:12px;padding:14px 16px;font-size:.95rem;font-weight:600;display:flex}.school-picker-item:hover{background-color:var(--primary-50);border-color:var(--primary-300);color:var(--primary-700)}.school-picker-item .arrow-icon{color:var(--text-light);margin-left:auto}.school-picker-item:hover .arrow-icon{color:var(--primary-600)}.toggle-form-group{background:var(--surface-color);border-radius:var(--radius-md);border:1px solid var(--border-color);margin-top:4px;padding:14px 16px}.toggle-label-row{justify-content:space-between;align-items:center;display:flex}.toggle-main-label{color:var(--text-main);cursor:pointer;font-size:.935rem;font-weight:600}.toggle-switch{width:44px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:var(--border-color,#ccc);border-radius:24px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.toggle-slider:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:3px;left:3px;box-shadow:0 1px 3px #00000040}.toggle-switch input:checked+.toggle-slider{background-color:#10b981}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.form-help-text{color:var(--text-muted);margin-top:8px;font-size:.785rem;line-height:1.4}.school-name-badge-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.school-recharge-pill{text-transform:uppercase;letter-spacing:.3px;border-radius:12px;padding:3px 8px;font-size:.685rem;font-weight:600;display:inline-block}.school-recharge-pill.allowed{color:#059669;background-color:#10b98124;border:1px solid #10b9814d}.school-recharge-pill.disabled{color:#dc2626;background-color:#ef444424;border:1px solid #ef44444d}.student-status-badge{text-transform:uppercase;letter-spacing:.03em;border-radius:12px;align-items:center;gap:5px;padding:2px 8px;font-size:.72rem;font-weight:700;transition:all .15s;display:inline-flex}.student-status-badge.active{color:#059669;background:#ecfdf5;border:1px solid #a7f3d0}.student-status-badge.active .status-dot{background:#10b981;border-radius:50%;width:6px;height:6px}.student-status-badge.inactive{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.student-status-badge.inactive .status-dot{background:#ef4444;border-radius:50%;width:6px;height:6px}.student-status-badge:hover{filter:brightness(.95);transform:translateY(-1px)}.school-connected-metric-pill{background:var(--surface-color,#fff);border:1px solid var(--border-color,#e2e8f0);color:var(--text-main,#1e293b);-webkit-user-select:none;user-select:none;border-radius:9999px;align-items:center;gap:8px;padding:6px 14px;font-size:.82rem;font-weight:500;transition:all .2s;display:inline-flex;box-shadow:0 1px 3px #0000000d}.school-connected-metric-pill .live-pulse-dot{background-color:#10b981;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s infinite pulse-green-dot;display:inline-block;box-shadow:0 0 #10b981b3}.school-connected-metric-pill .live-pulse-dot.idle{box-shadow:none;background-color:#94a3b8;animation:none}.school-connected-metric-pill .metric-label{color:var(--text-muted,#64748b);text-transform:uppercase;letter-spacing:.5px;font-size:.75rem;font-weight:700}.school-connected-metric-pill .metric-count{font-variant-numeric:tabular-nums;color:var(--text-main,#1e293b);font-size:.86rem}.school-connected-metric-pill .metric-count strong{color:#059669;font-weight:700}.school-connected-metric-pill .this-house-online-tag{color:#059669;background:#10b9811f;border:1px solid #10b98140;border-radius:9999px;padding:2px 8px;font-size:.72rem;font-weight:600}.school-connected-metric-pill .this-house-offline-tag{color:#64748b;background:#94a3b81f;border-radius:9999px;padding:2px 8px;font-size:.72rem;font-weight:600}@keyframes pulse-green-dot{0%{box-shadow:0 0 #10b981b3}70%{box-shadow:0 0 0 6px #10b98100}to{box-shadow:0 0 #10b98100}}.school-online-devices-panel{background:var(--surface-color,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:var(--radius-md,8px);flex-direction:column;gap:8px;margin:4px 24px 10px;padding:10px 16px;display:flex;box-shadow:0 1px 3px #00000008}.online-devices-header{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.online-devices-title{color:var(--text-main,#1e293b);align-items:center;gap:6px;font-size:.85rem;display:flex}.no-devices-msg{color:var(--text-muted,#64748b);font-size:.8rem;font-style:italic}.online-devices-chips-list{flex-wrap:wrap;gap:8px;max-height:85px;padding:2px 0;display:flex;overflow-y:auto}.online-device-tag-badge{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:9999px;align-items:center;gap:6px;padding:3px 10px;font-size:.78rem;font-weight:500;transition:transform .15s;display:inline-flex}.online-device-tag-badge:hover{transform:translateY(-1px);box-shadow:0 2px 4px #10b98126}.online-badge-dot{background-color:#10b981;border-radius:50%;width:6px;height:6px}.online-dev-tag{font-weight:600}.online-dev-id{color:#047857;opacity:.85;font-family:monospace;font-size:.72rem}.house-live-status-pill{-webkit-user-select:none;user-select:none;border-radius:9999px;align-items:center;gap:5px;padding:2px 7px;font-size:.7rem;font-weight:600;display:inline-flex}.house-live-status-pill.online{color:#059669;background:#ecfdf5;border:1px solid #a7f3d0}.house-live-status-pill.online .status-dot{background:#10b981;border-radius:50%;width:6px;height:6px}.house-live-status-pill.offline{color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0}.house-live-status-pill.offline .status-dot{background:#94a3b8;border-radius:50%;width:6px;height:6px}.house-card-online{border-color:#10b98166!important;box-shadow:0 2px 8px #10b98114!important}.modal-backdrop,.modal-overlay,.bulk-import-modal-overlay,.call-report-modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;box-sizing:border-box;background-color:#0f172aa6;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-window,.modal-window.add-modal,.modal-window.details-modal,.modal-window.timeslot-modal,.modal-card,.bulk-import-modal-card,.call-report-modal-card{box-sizing:border-box;flex-direction:column;height:auto;max-height:90vh;display:flex;overflow:hidden}.add-school-form,.add-form-container,.modal-scroll-content,.student-details-container,.timeslots-container,.days-schedule-container,.confirm-modal-body,.bulk-modal-body,.call-report-body{box-sizing:border-box;flex:auto;min-height:0!important;overflow-y:auto!important}.custom-scrollbar::-webkit-scrollbar{width:6px;height:6px}.modal-scroll-content::-webkit-scrollbar{width:6px;height:6px}.add-school-form::-webkit-scrollbar{width:6px;height:6px}.add-form-container::-webkit-scrollbar{width:6px;height:6px}.student-details-container::-webkit-scrollbar{width:6px;height:6px}.bulk-modal-body::-webkit-scrollbar{width:6px;height:6px}.call-report-body::-webkit-scrollbar{width:6px;height:6px}.custom-scrollbar::-webkit-scrollbar-thumb{background:var(--border-color,#cbd5e1);border-radius:9999px}.modal-scroll-content::-webkit-scrollbar-thumb{background:var(--border-color,#cbd5e1);border-radius:9999px}.add-school-form::-webkit-scrollbar-thumb{background:var(--border-color,#cbd5e1);border-radius:9999px}.add-form-container::-webkit-scrollbar-thumb{background:var(--border-color,#cbd5e1);border-radius:9999px}.student-details-container::-webkit-scrollbar-thumb{background:var(--border-color,#cbd5e1);border-radius:9999px}.bulk-modal-body::-webkit-scrollbar-thumb{background:var(--border-color,#cbd5e1);border-radius:9999px}.call-report-body::-webkit-scrollbar-thumb{background:var(--border-color,#cbd5e1);border-radius:9999px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--text-light,#94a3b8)}.modal-scroll-content::-webkit-scrollbar-thumb:hover{background:var(--text-light,#94a3b8)}.add-school-form::-webkit-scrollbar-thumb:hover{background:var(--text-light,#94a3b8)}.add-form-container::-webkit-scrollbar-thumb:hover{background:var(--text-light,#94a3b8)}.student-details-container::-webkit-scrollbar-thumb:hover{background:var(--text-light,#94a3b8)}.bulk-modal-body::-webkit-scrollbar-thumb:hover{background:var(--text-light,#94a3b8)}.call-report-body::-webkit-scrollbar-thumb:hover{background:var(--text-light,#94a3b8)}.dashboard-home{flex-direction:column;gap:24px;display:flex}.dashboard-welcome{background:linear-gradient(135deg, var(--primary-500) 0%, var(--primary-700) 100%);color:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);text-align:left;padding:32px}.welcome-title{color:#fff;margin-bottom:8px;font-size:28px;font-weight:700}.welcome-subtitle{color:var(--primary-100);max-width:600px;font-size:15px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;display:grid}.stat-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-normal);align-items:center;gap:16px;padding:20px;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon-wrapper{border-radius:var(--radius-md);background-color:var(--primary-50);width:50px;height:50px;color:var(--primary-600);justify-content:center;align-items:center;display:flex}.stat-content{text-align:left;flex-direction:column;display:flex}.stat-value{color:var(--primary-900);font-size:24px;font-weight:700}.dashboard-sections-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (width<=900px){.dashboard-sections-grid{grid-template-columns:1fr}}.quick-links-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.quick-link-card{background-color:var(--accent-cream);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--primary-800);transition:all var(--transition-fast);align-items:center;gap:12px;padding:16px;font-weight:600;text-decoration:none;display:flex}.quick-link-card:hover{background-color:var(--primary-100);border-color:var(--primary-300);color:var(--primary-900)}.server-info-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.info-tile{background-color:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);text-align:left;flex-direction:column;gap:6px;padding:14px;display:flex}.tile-label{color:var(--text-light);align-items:center;gap:6px;font-size:.775rem;font-weight:600;display:flex}.tile-value{color:var(--text-main);word-break:break-all;font-size:.95rem;font-weight:700}.tile-value.status-online{color:#10b981;align-items:center;gap:4px;display:flex}.config-row-item{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);text-align:left;justify-content:space-between;align-items:center;padding:12px;display:flex}.status-enabled{color:#10b981!important;background-color:#10b98126!important;border:1px solid #10b9814d!important}.status-disabled{color:#ef4444!important;background-color:#ef444426!important;border:1px solid #ef44444d!important}.ice-server-card{background-color:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.ice-type-badge{border-radius:var(--radius-sm);text-transform:uppercase;padding:4px 8px;font-size:.75rem;font-weight:700}.ice-type-badge.turn,.ice-type-badge.turns{color:#10b981;background-color:#10b98126;border:1px solid #10b9814d}.ice-type-badge.stun{color:#3b82f6;background-color:#3b82f626;border:1px solid #3b82f64d}.pulse-online-indicator{background-color:#10b981;border-radius:50%;width:10px;height:10px;animation:2s infinite pulse-green;display:inline-block;box-shadow:0 0 #10b981b3}@keyframes pulse-green{0%{transform:scale(.95);box-shadow:0 0 #10b981b3}70%{transform:scale(1);box-shadow:0 0 0 8px #10b98100}to{transform:scale(.95);box-shadow:0 0 #10b98100}}.call-report-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;background:#0f172aa6;justify-content:center;align-items:center;padding:16px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.call-report-modal-card{background:var(--surface-color,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:16px;flex-direction:column;width:100%;max-width:1180px;max-height:92vh;animation:.2s ease-out slideUp;display:flex;overflow:hidden;box-shadow:0 25px 30px -5px #00000026}.call-report-header{border-bottom:1px solid var(--border-color,#e2e8f0);background:var(--surface-color,#fff);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.report-header-title-group{align-items:center;gap:14px;display:flex}.report-icon-badge{color:#2563eb;background:#eff6ff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.report-modal-title{color:var(--text-main,#0f172a);margin:0;font-size:1.2rem;font-weight:700}.report-scope-badge{color:#2563eb;background:#eff6ff;border-radius:6px;align-items:center;gap:6px;margin-top:3px;padding:2px 8px;font-size:.8rem;font-weight:500;display:inline-flex}.report-close-btn{color:var(--text-muted,#64748b);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:flex}.report-close-btn:hover{background:var(--bg-hover,#f1f5f9);color:var(--text-main,#0f172a)}.report-controls-bar{background:var(--bg-surface-alt,#f8fafc);border-bottom:1px solid var(--border-color,#e2e8f0);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;display:flex}.report-format-toggle-group,.report-date-range-group{align-items:center;gap:10px;display:flex}.control-label{color:var(--text-muted,#475569);font-size:.8rem;font-weight:600}.format-pills{background:#e2e8f0;border-radius:8px;gap:6px;padding:3px;display:flex}.format-pill-btn{color:var(--text-muted,#475569);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:5px 12px;font-size:.8rem;font-weight:600;transition:all .15s;display:inline-flex}.format-pill-btn.active{color:#2563eb;background:#fff;box-shadow:0 1px 2px #00000014}.date-inputs-wrapper{align-items:center;gap:8px;display:flex}.report-date-input{border:1px solid var(--border-color,#cbd5e1);color:var(--text-main,#1e293b);background:#fff;border-radius:6px;padding:5px 10px;font-size:.8rem}.date-separator{color:var(--text-muted,#64748b);font-size:.8rem}.report-presets-row{gap:6px;display:flex}.preset-btn{border:1px solid var(--border-color,#cbd5e1);color:var(--text-muted,#475569);cursor:pointer;background:#fff;border-radius:6px;padding:4px 8px;font-size:.75rem;transition:all .15s}.preset-btn:hover{color:var(--text-main,#0f172a);background:#f1f5f9;border-color:#94a3b8}.report-alert-banner{border-radius:8px;align-items:center;gap:8px;margin:10px 24px 0;padding:8px 14px;font-size:.8rem;display:flex}.report-alert-banner.warning{color:#b45309;background:#fef3c7;border:1px solid #fde68a}.report-alert-banner.error{color:#dc2626;background:#fee2e2;border:1px solid #fecaca}.call-report-body{flex:1;grid-template-columns:460px 1fr;gap:16px;padding:16px 24px;display:grid;overflow:hidden}.report-field-matrix-card{border:1px solid var(--border-color,#e2e8f0);background:var(--surface-color,#fff);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.matrix-header{background:var(--bg-surface-alt,#f8fafc);border-bottom:1px solid var(--border-color,#e2e8f0);padding:12px 16px}.matrix-title-row{color:var(--text-main,#0f172a);align-items:center;gap:8px;font-weight:700;display:flex}.matrix-title-row h3{margin:0;font-size:.9rem}.matrix-subtitle{color:var(--text-muted,#64748b);margin-top:3px;font-size:.75rem;display:block}.matrix-table-container{flex:1;max-height:440px;overflow-y:auto}.matrix-table{border-collapse:collapse;text-align:left;width:100%;font-size:.78rem}.matrix-table th{color:var(--text-muted,#475569);border-bottom:1px solid var(--border-color,#e2e8f0);z-index:1;background:#f1f5f9;padding:8px 10px;font-weight:600;position:sticky;top:0}.matrix-table td{color:var(--text-main,#1e293b);vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:6px 10px}.matrix-table tr.field-active{background:#f0fdf4}.checkbox-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;transition:all .1s;display:inline-flex}.checkbox-btn:hover{color:#2563eb}.field-name-label{color:var(--text-main,#1e293b);font-weight:600}.filter-input-cell{align-items:center;display:flex}.report-select-filter,.report-text-filter{border:1px solid var(--border-color,#cbd5e1);width:100%;color:var(--text-main,#0f172a);background:#fff;border-radius:6px;padding:4px 8px;font-size:.75rem}.no-filter-text{color:#94a3b8;font-size:.72rem;font-style:italic}.date-filter-tag{color:#2563eb;font-size:.7rem;font-weight:600}.report-preview-section{flex-direction:column;gap:10px;display:flex;overflow:hidden}.preview-metrics-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.metric-pill{background:var(--bg-surface-alt,#f8fafc);border:1px solid var(--border-color,#e2e8f0);border-radius:8px;flex-direction:column;gap:2px;padding:8px 12px;display:flex}.m-label{color:var(--text-muted,#64748b);font-size:.7rem;font-weight:500}.m-value{color:var(--text-main,#0f172a);font-size:1.1rem;font-weight:800}.preview-table-container{border:1px solid var(--border-color,#e2e8f0);background:#fff;border-radius:10px;flex:1;max-height:400px;overflow:auto}.preview-data-table{border-collapse:collapse;text-align:left;width:100%;font-size:.75rem}.preview-data-table th{color:var(--text-muted,#475569);border-bottom:1px solid var(--border-color,#e2e8f0);white-space:nowrap;z-index:1;background:#f8fafc;padding:8px 10px;font-weight:600;position:sticky;top:0}.preview-data-table td{white-space:nowrap;border-bottom:1px solid #f1f5f9;padding:6px 10px}.badge-mode{border-radius:4px;padding:2px 6px;font-size:.7rem;font-weight:600}.badge-mode.video{color:#2563eb;background:#eff6ff}.badge-mode.audio{color:#7c3aed;background:#f3e8ff}.badge-status{text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:.7rem;font-weight:600}.badge-status.completed{color:#166534;background:#dcfce7}.badge-status.missed,.badge-status.declined{color:#991b1b;background:#fee2e2}.preview-loading-box,.preview-empty-box{color:var(--text-muted,#64748b);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:40px 20px;display:flex}.preview-note{color:var(--text-muted,#64748b);margin:0;font-size:.72rem;font-style:italic}.call-report-footer{background:var(--bg-surface-alt,#f8fafc);border-top:1px solid var(--border-color,#e2e8f0);justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.footer-left-info{align-items:center;gap:14px;display:flex}.report-refresh-btn{border:1px solid var(--border-color,#cbd5e1);color:var(--text-main,#334155);cursor:pointer;background:#fff;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex}.report-refresh-btn:hover{background:#f1f5f9}.record-count-text{color:var(--text-muted,#475569);font-size:.8rem}.footer-right-actions{gap:10px;display:flex}.report-primary-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 18px;font-size:.85rem;font-weight:600;transition:all .15s;display:inline-flex}.report-primary-btn:hover:not(:disabled){background:#1d4ed8}.report-primary-btn:disabled{opacity:.6;cursor:not-allowed}.report-secondary-btn{color:var(--text-main,#334155);border:1px solid var(--border-color,#cbd5e1);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .15s;display:inline-flex}.report-secondary-btn:hover{background:#f8fafc}.calls-page-container{flex-direction:column;gap:20px;height:100%;display:flex}.calls-stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.call-stat-card{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg,14px);box-shadow:var(--shadow-sm);transition:transform var(--transition-fast,.15s ease), box-shadow var(--transition-fast,.15s ease);align-items:center;gap:16px;padding:16px 20px;display:flex}.call-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.call-stat-icon{border-radius:var(--radius-md,12px);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.call-stat-info{flex-direction:column;gap:2px;display:flex}.call-stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:500}.call-stat-value{color:var(--text-main);font-size:1.5rem;font-weight:700;line-height:1.1}.call-stat-sub{color:var(--text-muted);font-size:.75rem;font-weight:500}.call-stat-sub.success{color:var(--success-color);font-weight:600}.calls-export-excel-btn{border-radius:var(--radius-sm,8px);cursor:pointer;color:#fff;box-sizing:border-box;background:linear-gradient(135deg,#107c41 0%,#0d6534 100%);border:1px solid #0d5f32;align-items:center;gap:8px;height:40px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 2px 6px #107c4140}.calls-export-excel-btn:hover:not(:disabled){background:linear-gradient(135deg,#138a49 0%,#0f6c39 100%);border-color:#107c41;transform:translateY(-1px);box-shadow:0 4px 14px #107c4159}.calls-export-excel-btn:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 6px #107c4133}.calls-export-excel-btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;filter:grayscale(20%)}.excel-brand-icon{color:#a7f3d0;flex-shrink:0;transition:transform .2s}.calls-export-excel-btn:hover:not(:disabled) .excel-brand-icon{color:#fff;transform:scale(1.1)}.export-count-badge{color:#fff;border-radius:var(--radius-full,9999px);letter-spacing:.02em;background:#ffffff38;border:1px solid #ffffff59;margin-left:2px;padding:1px 7px;font-size:.72rem;font-weight:700}.calls-filter-bar{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg,16px);box-shadow:var(--shadow-sm);transition:all var(--transition-normal,.25s ease);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;display:flex}.calls-search-box{flex:320px;align-items:center;min-width:260px;max-width:520px;display:flex;position:relative}.calls-search-icon-wrapper{color:var(--text-light);pointer-events:none;transition:color var(--transition-fast,.15s ease);justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.calls-search-box:focus-within .calls-search-icon-wrapper{color:var(--primary-500)}.calls-search-input{background:var(--background-color);border:1.5px solid var(--border-color);border-radius:var(--radius-md,10px);width:100%;height:40px;color:var(--text-main);transition:all var(--transition-fast,.15s ease);box-sizing:border-box;outline:none;padding:0 38px 0 42px;font-size:.86rem;font-weight:500}.calls-search-input::placeholder{color:var(--text-light);font-size:.83rem;font-weight:400}.calls-search-input:hover{border-color:var(--text-light);background:var(--surface-color)}.calls-search-input:focus{background:var(--surface-color);border-color:var(--primary-500);box-shadow:0 0 0 3.5px var(--primary-100)}.calls-search-clear-btn{background:var(--border-color);width:22px;height:22px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast,.15s ease);border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.calls-search-clear-btn:hover{background:var(--error-color);color:#fff}.calls-search-hint{pointer-events:none;align-items:center;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.calls-search-hint span{color:var(--text-light);background:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-sm,5px);letter-spacing:.03em;text-transform:uppercase;padding:2px 6px;font-size:.7rem;font-weight:600}.calls-filter-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.filter-select{background:var(--background-color);height:40px;color:var(--text-main);border:1.5px solid var(--border-color);border-radius:var(--radius-md,10px);cursor:pointer;transition:all var(--transition-fast,.15s ease);box-sizing:border-box;outline:none;padding:0 12px;font-size:.83rem;font-weight:500}.filter-select:hover{border-color:var(--text-light);background:var(--surface-color)}.filter-select:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px var(--primary-100);background:var(--surface-color)}.toolbar-export-btn{border-radius:var(--radius-md,10px);background:var(--primary-50);border:1.5px solid var(--primary-200);height:40px;color:var(--primary-600);cursor:pointer;transition:all var(--transition-fast,.15s ease);white-space:nowrap;align-items:center;gap:6px;padding:0 13px;font-size:.83rem;font-weight:600;display:inline-flex}.toolbar-export-btn:hover:not(:disabled){background:var(--primary-100);border-color:var(--primary-400);color:var(--primary-700);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.toolbar-export-btn:active:not(:disabled){transform:translateY(0)}.toolbar-export-btn:disabled{opacity:.45;cursor:not-allowed;border-color:var(--border-color);color:var(--text-light);background:0 0}.view-mode-toggle-group{background:var(--background-color);border:1.5px solid var(--border-color);border-radius:var(--radius-md,10px);box-sizing:border-box;align-items:center;gap:2px;height:40px;padding:2px;display:flex}.view-mode-btn{border-radius:var(--radius-sm,7px);width:32px;height:32px;color:var(--text-light);cursor:pointer;transition:all var(--transition-fast,.15s ease);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.view-mode-btn:hover{color:var(--text-main);background:var(--surface-color)}.view-mode-btn.active{background:var(--surface-color);color:var(--primary-500);box-shadow:var(--shadow-sm)}.calls-list-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px;display:grid}.call-card-element{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg,16px);transition:all var(--transition-fast,.2s ease);box-shadow:var(--shadow-sm);flex-direction:column;gap:14px;padding:18px;display:flex;position:relative}.call-card-element:hover{border-color:var(--primary-400);box-shadow:var(--shadow-md);transform:translateY(-2px)}.call-card-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.call-media-badge-group{align-items:center;gap:12px;display:flex}.call-media-icon-box{border-radius:var(--radius-md,12px);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.call-media-icon-box.video{background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);box-shadow:0 4px 12px #8b5cf64d}.call-media-icon-box.voice{background:linear-gradient(135deg, var(--primary-500) 0%, var(--primary-700) 100%);box-shadow:0 4px 12px #2563eb4d}.call-card-title-row{align-items:center;gap:8px;display:flex}.call-card-title{color:var(--text-main);margin:0;font-size:.95rem;font-weight:700}.call-type-mode-pill{border-radius:var(--radius-sm,6px);text-transform:uppercase;align-items:center;gap:4px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.call-type-mode-pill.relay{color:var(--warning-color);background:#f59e0b1f;border:1px solid #f59e0b47}.call-type-mode-pill.p2p{background:var(--primary-50);color:var(--primary-600);border:1px solid var(--primary-200)}.call-timestamp{color:var(--text-muted);align-items:center;gap:4px;margin-top:2px;font-size:.78rem;display:flex}.call-card-status-wrapper{align-items:center;gap:8px;display:flex}.call-status-badge-custom{border-radius:var(--radius-sm,8px);border:1px solid #0000;align-items:center;gap:6px;padding:4px 10px;font-size:.78rem;font-weight:700;line-height:1;display:inline-flex}.pulse-icon{animation:1.5s cubic-bezier(.215,.61,.355,1) infinite pulse-ring}@keyframes pulse-ring{0%{opacity:.7;transform:scale(.95)}50%{opacity:1;transform:scale(1.15)}to{opacity:.7;transform:scale(.95)}}.call-card-actions{align-items:center;gap:4px;display:flex}.call-card-participants-grid{background:var(--background-color);border:1px solid var(--border-light);border-radius:var(--radius-md,12px);grid-template-columns:1fr 1fr;gap:10px;padding:10px 12px;display:grid}.participant-chip{align-items:center;gap:10px;display:flex}.chip-avatar{border-radius:var(--radius-sm,8px);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.chip-avatar.parent{color:var(--success-color);background:#10b98126}.chip-avatar.student{background:var(--primary-50);color:var(--primary-600)}.chip-info{flex-direction:column;display:flex;overflow:hidden}.chip-label{text-transform:uppercase;color:var(--text-light);letter-spacing:.03em;font-size:.68rem;font-weight:600}.chip-name{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:.825rem;font-weight:600;overflow:hidden}.chip-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;overflow:hidden}.call-card-footer{border-top:1px dashed var(--border-color);justify-content:space-between;align-items:center;gap:10px;padding-top:10px;font-size:.78rem;display:flex}.call-meta-item{color:var(--text-muted);align-items:center;gap:5px;display:flex}.meta-icon{color:var(--text-light)}.meta-value.duration{color:var(--primary-600);font-weight:700}.meta-value.school{color:var(--text-main);font-weight:600}.uuid-tag{background:var(--accent-warm);border:1px solid var(--border-color);border-radius:var(--radius-sm,4px);color:var(--text-muted);padding:2px 6px;font-family:monospace;font-size:.7rem}.school-stats-overview-grid{grid-template-columns:1.4fr 1fr;gap:16px;display:grid}@media (width<=1024px){.school-stats-overview-grid{grid-template-columns:1fr}}.school-breakdown-card,.daily-trend-card{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg,16px);box-shadow:var(--shadow-sm);flex-direction:column;gap:14px;padding:18px 20px;display:flex}.section-card-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;gap:10px;padding-bottom:12px;display:flex}.section-card-header h3{color:var(--text-main);margin:0;font-size:.98rem;font-weight:700}.section-card-subtitle{color:var(--text-muted);font-size:.75rem}.clear-school-filter-badge{background:var(--primary-50);color:var(--primary-600);border:1px solid var(--primary-200);border-radius:var(--radius-full,20px);cursor:pointer;transition:all var(--transition-fast,.15s ease);align-items:center;gap:6px;padding:3px 8px;font-size:.75rem;display:inline-flex}.clear-school-filter-badge:hover{color:var(--error-color);background:#ef444426;border-color:#ef444459}.school-breakdown-list{flex-direction:column;gap:10px;max-height:280px;padding-right:4px;display:flex;overflow-y:auto}.school-stat-row{background:var(--background-color);border:1px solid var(--border-light);border-radius:var(--radius-md,12px);cursor:pointer;transition:all var(--transition-fast,.15s ease);flex-direction:column;gap:8px;padding:10px 14px;display:flex}.school-stat-row:hover{background:var(--accent-warm);border-color:var(--primary-300);transform:translate(2px)}.school-stat-row.active-filter{background:var(--primary-50);border-color:var(--primary-500);box-shadow:0 0 0 1px var(--primary-300)}.school-stat-meta{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.school-stat-name-group{flex-direction:column;gap:4px;display:flex}.school-stat-name{color:var(--text-main);font-size:.92rem;font-weight:700}.school-stat-sub-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.badge-today{border-radius:var(--radius-full,12px);color:var(--success-color);background:#10b9811f;border:1px solid #10b98147;align-items:center;padding:1px 7px;font-size:.7rem;font-weight:700;display:inline-flex}.badge-sub{color:var(--text-muted);font-size:.72rem}.school-stat-count-group{flex-direction:column;align-items:flex-end;display:flex}.school-stat-count{color:var(--primary-600);font-size:1.15rem;font-weight:800;line-height:1.1}.school-stat-count-unit{color:var(--text-light);font-size:.7rem}.school-stat-bar-track{background:var(--border-light);border-radius:var(--radius-full,4px);width:100%;height:6px;overflow:hidden}.school-stat-bar-fill{border-radius:var(--radius-full,4px);height:100%;transition:width .4s}.daily-bars-container{justify-content:space-between;align-items:flex-end;gap:10px;height:240px;padding:16px 8px 6px;display:flex}.daily-bar-column{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:8px;height:100%;display:flex}.daily-bar-value{color:var(--text-main);font-size:.78rem;font-weight:700}.daily-bar-track{background:var(--border-light);border-radius:var(--radius-sm,8px);align-items:flex-end;width:100%;max-width:38px;height:160px;display:flex;position:relative;overflow:hidden}.daily-bar-fill{background:linear-gradient(180deg, var(--primary-400) 0%, var(--primary-600) 100%);border-radius:var(--radius-sm,8px) var(--radius-sm,8px) 0 0;width:100%;transition:height .4s}.daily-bar-fill.today-fill{background:linear-gradient(180deg, var(--success-color) 0%, var(--primary-600) 100%);box-shadow:0 0 12px #10b98159}.daily-bar-label{color:var(--text-muted);white-space:nowrap;font-size:.72rem;font-weight:600}.daily-bar-label.today-label{color:var(--success-color);font-weight:700}.calls-table-container{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg,16px);box-shadow:var(--shadow-sm);overflow-x:auto}.calls-data-table{border-collapse:collapse;text-align:left;width:100%;font-size:.85rem}.calls-data-table thead th{background:var(--accent-warm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border-color);white-space:nowrap;padding:14px 16px;font-size:.75rem;font-weight:700}.calls-data-table tbody tr{border-bottom:1px solid var(--border-light);transition:background-color var(--transition-fast,.15s ease);cursor:pointer}.calls-data-table tbody tr:hover{background:var(--primary-50)}.calls-data-table td{vertical-align:middle;padding:12px 16px}.call-time-group{flex-direction:column;gap:2px;display:flex}.call-time-primary{color:var(--text-main);white-space:nowrap;font-weight:600}.call-id-mini{color:var(--text-light);font-family:monospace;font-size:.7rem}.call-mode-pill{border-radius:var(--radius-sm,6px);align-items:center;gap:5px;width:fit-content;padding:3px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.call-mode-pill.video{color:#8b5cf6;background:#8b5cf61f;border:1px solid #8b5cf647}.call-mode-pill.voice{background:var(--primary-50);color:var(--primary-600);border:1px solid var(--primary-200)}.school-cell-group{flex-direction:column;gap:3px;display:flex}.cell-school-name{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-weight:600;overflow:hidden}.cell-house-name{color:var(--text-light);align-items:center;gap:4px;font-size:.72rem;display:inline-flex}.participant-cell{flex-direction:column;gap:2px;display:flex}.participant-name{color:var(--text-main);white-space:nowrap;font-weight:600}.participant-sub{color:var(--text-muted);font-size:.72rem}.call-duration-text{color:var(--primary-600);white-space:nowrap;font-weight:700}.call-status-pill{border-radius:var(--radius-sm,8px);white-space:nowrap;border:1px solid #0000;align-items:center;gap:5px;padding:3px 9px;font-size:.75rem;font-weight:700;display:inline-flex}.coins-cell-value{color:var(--warning-color);font-weight:700}.table-inspect-btn{border-radius:var(--radius-sm,8px);background:var(--primary-50);color:var(--primary-600);border:1px solid var(--primary-200);cursor:pointer;transition:all var(--transition-fast,.15s ease);align-items:center;gap:5px;padding:5px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.table-inspect-btn:hover{background:var(--primary-600);color:var(--text-on-primary);border-color:var(--primary-600)}.calls-pagination-bar{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg,14px);box-shadow:var(--shadow-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;display:flex}.pagination-range-info{color:var(--text-muted);font-size:.82rem}.pagination-controls-group{align-items:center;gap:16px;display:flex}.rows-per-page-selector{color:var(--text-muted);align-items:center;gap:8px;font-size:.8rem;display:flex}.page-size-select{background:var(--background-color);color:var(--text-main);border:1px solid var(--border-color);border-radius:var(--radius-sm,8px);cursor:pointer;transition:border-color var(--transition-fast,.15s ease);outline:none;padding:4px 8px;font-size:.8rem}.page-size-select:focus{border-color:var(--primary-500)}.page-nav-buttons{align-items:center;gap:8px;display:flex}.page-nav-btn{background:var(--background-color);color:var(--text-main);border:1px solid var(--border-color);border-radius:var(--radius-sm,8px);cursor:pointer;width:32px;height:32px;transition:all var(--transition-fast,.15s ease);justify-content:center;align-items:center;display:flex}.page-nav-btn:hover:not(:disabled){background:var(--primary-50);color:var(--primary-600);border-color:var(--primary-300)}.page-indicator{color:var(--text-muted);padding:0 4px;font-size:.8rem;font-weight:500}.empty-state-card{text-align:center;background:var(--surface-color);border-radius:var(--radius-lg,16px);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);padding:60px}.empty-state-card h3{color:var(--text-main);margin:0 0 6px}.empty-state-card p{color:var(--text-muted);margin:0;font-size:.88rem}.loading-state-card{text-align:center;background:var(--surface-color);border-radius:var(--radius-lg,16px);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);padding:60px}.loading-title{color:var(--text-main);font-weight:600}.loading-subtitle{color:var(--text-muted);font-size:.85rem}.no-data-text{text-align:center;color:var(--text-muted);padding:24px;font-size:.85rem}.bulk-import-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;background:#0f172a99;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.bulk-import-modal-card{background:var(--surface-color,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:16px;flex-direction:column;width:100%;max-width:960px;max-height:90vh;animation:.2s ease-out slideUp;display:flex;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.bulk-modal-header{border-bottom:1px solid var(--border-color,#e2e8f0);justify-content:space-between;align-items:flex-start;padding:20px 24px;display:flex}.bulk-header-title-group{align-items:center;gap:14px;display:flex}.bulk-icon-badge{color:#2563eb;background:#eff6ff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.bulk-modal-title{color:var(--text-main,#0f172a);margin:0;font-size:1.25rem;font-weight:700}.bulk-modal-subtitle{color:var(--text-muted,#64748b);margin:3px 0 0;font-size:.85rem}.bulk-close-btn{color:var(--text-muted,#64748b);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px;transition:all .15s;display:flex}.bulk-close-btn:hover{background:var(--bg-hover,#f1f5f9);color:var(--text-main,#0f172a)}.bulk-tabs-bar{background:var(--bg-surface-alt,#f8fafc);border-bottom:1px solid var(--border-color,#e2e8f0);gap:8px;padding:10px 24px;display:flex}.bulk-tab-btn{color:var(--text-muted,#64748b);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .15s;display:inline-flex}.bulk-tab-btn:hover{color:var(--text-main,#0f172a);background:#0000000a}.bulk-tab-btn.active{color:#2563eb;border-color:var(--border-color,#e2e8f0);background:#fff;box-shadow:0 1px 2px #0000000d}.bulk-error-banner{color:#dc2626;background:#ef44441a;border:1px solid #ef44444d;border-radius:8px;align-items:center;gap:10px;margin:12px 24px 0;padding:10px 14px;font-size:.85rem;display:flex}.bulk-modal-body{flex:1;padding:20px 24px;overflow-y:auto}.bulk-dropzone{border:2px dashed var(--border-color,#cbd5e1);text-align:center;background:var(--bg-surface-alt,#f8fafc);cursor:pointer;border-radius:12px;padding:28px 20px;transition:all .2s}.bulk-dropzone:hover,.bulk-dropzone.dragging{background:#f0f7ff;border-color:#2563eb}.bulk-dropzone.has-file{background:#ecfdf5;border-color:#10b981}.dropzone-icon-box{color:#64748b;margin-bottom:8px}.bulk-dropzone.has-file .dropzone-icon-box{color:#10b981}.dropzone-main-text{color:var(--text-main,#0f172a);margin:0 0 4px;font-size:.95rem;font-weight:600}.dropzone-sub-text{color:var(--text-muted,#64748b);margin:0;font-size:.8rem}.dropzone-filename{color:#065f46;margin:0 0 4px;font-size:1rem;font-weight:700}.dropzone-filesize{color:#047857;margin:0;font-size:.8rem}.bulk-action-bar{justify-content:space-between;align-items:center;margin-top:14px;display:flex}.bulk-stats-badge-row{gap:8px;display:flex}.bulk-stat-pill{border-radius:20px;padding:4px 10px;font-size:.75rem;font-weight:500}.bulk-stat-pill.total{color:#334155;background:#f1f5f9}.bulk-stat-pill.valid{color:#166534;background:#dcfce7}.bulk-stat-pill.invalid{color:#991b1b;background:#fee2e2}.bulk-table-container{border:1px solid var(--border-color,#e2e8f0);border-radius:10px;max-height:300px;margin-top:14px;overflow:auto}.bulk-preview-table{border-collapse:collapse;text-align:left;width:100%;font-size:.82rem}.bulk-preview-table thead{background:var(--bg-surface-alt,#f8fafc);z-index:2;position:sticky;top:0}.bulk-preview-table th{color:var(--text-muted,#475569);border-bottom:1px solid var(--border-color,#e2e8f0);white-space:nowrap;padding:8px 12px;font-weight:600}.bulk-preview-table td{border-bottom:1px solid var(--border-color,#f1f5f9);color:var(--text-main,#1e293b);padding:8px 12px}.bulk-preview-table tr.row-invalid{background:#fff5f5}.missing-text{color:#dc2626;font-weight:600}.status-badge{border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.status-badge.valid{color:#166534;background:#dcfce7}.status-badge.invalid{color:#991b1b;background:#fee2e2}.template-guide-card{flex-direction:column;gap:12px;display:flex}.template-guide-header{justify-content:space-between;align-items:center;display:flex}.template-guide-title{color:var(--text-main,#0f172a);margin:0;font-size:1rem;font-weight:700}.template-guide-desc{color:var(--text-muted,#64748b);margin:0;font-size:.85rem;line-height:1.5}.schema-table-wrapper{border:1px solid var(--border-color,#e2e8f0);border-radius:10px;max-height:380px;overflow:hidden auto}.schema-table{border-collapse:collapse;text-align:left;width:100%;font-size:.82rem}.schema-table th{background:var(--bg-surface-alt,#f8fafc);color:var(--text-muted,#475569);border-bottom:1px solid var(--border-color,#e2e8f0);padding:10px 14px;font-weight:600}.schema-table td{border-bottom:1px solid var(--border-color,#f1f5f9);padding:10px 14px}.req-tag{border-radius:10px;padding:2px 8px;font-size:.7rem;font-weight:600}.req-tag.required{color:#991b1b;background:#fee2e2}.req-tag.optional{color:#475569;background:#f1f5f9}.result-summary-card{text-align:center;padding:10px}.result-icon-banner{margin-bottom:20px}.result-icon-banner .success-icon{color:#10b981;margin-bottom:8px}.result-icon-banner h3{color:var(--text-main,#0f172a);margin:0 0 6px;font-size:1.25rem;font-weight:700}.result-icon-banner p{color:var(--text-muted,#64748b);margin:0;font-size:.9rem}.result-metrics-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;display:grid}.metric-box{background:var(--bg-surface-alt,#f8fafc);border:1px solid var(--border-color,#e2e8f0);border-radius:12px;flex-direction:column;gap:4px;padding:14px;display:flex}.metric-label{color:var(--text-muted,#64748b);font-size:.75rem;font-weight:500}.metric-val{font-size:1.35rem;font-weight:800}.text-success{color:#059669}.text-primary{color:#2563eb}.text-info{color:#7c3aed}.text-danger{color:#dc2626}.text-muted{color:#94a3b8}.result-errors-box{text-align:left;background:#fff5f5;border:1px solid #fecaca;border-radius:10px;padding:12px 16px;font-size:.82rem}.result-errors-box h4{color:#991b1b;margin:0 0 6px;font-size:.85rem}.error-list{color:#b91c1c;margin:0;padding-left:18px}.bulk-modal-footer{border-top:1px solid var(--border-color,#e2e8f0);background:var(--bg-surface-alt,#f8fafc);justify-content:flex-end;gap:12px;padding:16px 24px;display:flex}.bulk-primary-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 18px;font-size:.85rem;font-weight:600;transition:all .15s;display:inline-flex}.bulk-primary-btn:hover:not(:disabled){background:#1d4ed8}.bulk-primary-btn:disabled{opacity:.6;cursor:not-allowed}.bulk-primary-btn.compact{padding:6px 14px;font-size:.8rem}.bulk-secondary-btn{color:var(--text-main,#334155);border:1px solid var(--border-color,#cbd5e1);cursor:pointer;background:#fff;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:.85rem;font-weight:600;transition:all .15s;display:inline-flex}.bulk-secondary-btn:hover{background:#f8fafc;border-color:#94a3b8}.error-type-badge{text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-block}.error-type-badge.duplicate_roll{color:#dc2626;background:#ef44441f}.error-type-badge.invalid_phone{color:#d97706;background:#f59e0b1f}.error-type-badge.validation{color:#6366f1;background:#6366f11f}.error-type-badge.school_not_found{color:#2563eb;background:#3b82f61f}.error-type-badge.house_not_found{color:#059669;background:#10b9811f}.error-type-badge.system_error{color:#b91c1c;background:#ef44442e}.error-type-badge.duplicate_parent{color:#7c3aed;background:#7c3aed1f}.bulk-delete-modal-window{background:var(--surface-color);border-radius:var(--radius-lg);width:95%;max-width:620px;box-shadow:var(--shadow-xl);border:1px solid var(--border-color);flex-direction:column;display:flex;overflow:hidden}.bulk-delete-header-badge{color:#ef4444;background:#ef44441f;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.bulk-delete-warning-banner{border-radius:var(--radius-md);color:var(--text-main);background:#ef444414;border:1px solid #ef444440;align-items:flex-start;gap:12px;padding:14px 16px;font-size:.85rem;line-height:1.45;display:flex}.bulk-delete-warning-banner strong{color:#dc2626;margin-bottom:4px;display:block}.bulk-delete-roll-stats{color:var(--text-muted);justify-content:space-between;align-items:center;margin-top:6px;font-size:.8rem;display:flex}.bulk-delete-roll-pill{color:#2563eb;background:#3b82f61f;border:1px solid #3b82f640;border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:700}.bulk-delete-results-container{flex-direction:column;gap:20px;padding:24px;display:flex}.bulk-delete-results-card{background:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);text-align:center;grid-template-columns:repeat(3,1fr);gap:12px;padding:16px;display:grid}.bulk-delete-result-stat{flex-direction:column;gap:4px;display:flex}.bulk-delete-result-stat .num{font-size:1.5rem;font-weight:800}.bulk-delete-result-stat .lbl{color:var(--text-muted);font-size:.75rem;font-weight:600}.not-found-badge-list{border-radius:var(--radius-sm);background:#f59e0b14;border:1px solid #f59e0b33;flex-wrap:wrap;gap:6px;max-height:120px;padding:8px;display:flex;overflow-y:auto}.not-found-pill{color:#b45309;background:#f59e0b2e;border-radius:4px;padding:2px 8px;font-size:.75rem;font-weight:600}.call-details-modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:999999;box-sizing:border-box;background-color:#0f172aad;justify-content:center;align-items:center;width:100vw;height:100vh;padding:20px;animation:.2s cubic-bezier(.16,1,.3,1) modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(18px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.call-details-modal-card{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-lg,16px);width:100%;max-width:640px;max-height:90vh;box-shadow:var(--shadow-lg);color:var(--text-main);z-index:1000000;flex-direction:column;animation:.25s cubic-bezier(.16,1,.3,1) modalSlideUp;display:flex;position:relative;overflow:hidden}.call-details-header{border-bottom:1px solid var(--border-color);background:var(--accent-warm);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.call-details-header-title-group{align-items:center;gap:14px;display:flex}.call-details-icon-badge{border-radius:var(--radius-md,12px);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.call-details-icon-badge.video{background:linear-gradient(135deg,#8b5cf6 0%,#6d28d9 100%);box-shadow:0 4px 12px #8b5cf659}.call-details-icon-badge.voice{background:linear-gradient(135deg, var(--primary-500) 0%, var(--primary-700) 100%);box-shadow:0 4px 12px #2563eb59}.call-details-modal-title{color:var(--text-main);margin:0;font-size:1.22rem;font-weight:700;line-height:1.2}.call-details-modal-subtitle{color:var(--text-muted);margin-top:3px;font-size:.8rem;display:block}.call-details-close-btn{background:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-full,9999px);width:34px;height:34px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast,.15s ease);justify-content:center;align-items:center;padding:0;display:flex}.call-details-close-btn:hover{color:var(--error-color);background:#ef44441f;border-color:#ef44444d;transform:rotate(90deg)scale(1.05)}.call-details-close-btn:active{transform:rotate(90deg)scale(.95)}.call-details-body{flex-direction:column;gap:16px;max-height:calc(90vh - 140px);padding:22px 24px;display:flex;overflow-y:auto}.call-details-status-strip{border-radius:var(--radius-md,10px);background:var(--background-color);border:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.call-details-status-badges{align-items:center;gap:8px;display:flex}.call-details-status-pill{border-radius:var(--radius-full,20px);letter-spacing:.03em;align-items:center;gap:6px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.call-details-protocol-pill{border-radius:var(--radius-sm,6px);color:var(--text-muted);background:var(--surface-color);border:1px solid var(--border-color);align-items:center;gap:4px;padding:4px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.call-details-uuid-box{align-items:center;gap:6px;display:flex}.call-details-uuid-text{color:var(--text-muted);background:var(--surface-color);border-radius:var(--radius-sm,4px);border:1px solid var(--border-color);padding:3px 8px;font-family:monospace;font-size:.78rem}.call-details-copy-btn{color:var(--text-light);cursor:pointer;border-radius:var(--radius-sm,4px);transition:color var(--transition-fast,.15s ease);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.call-details-copy-btn:hover{color:var(--primary-500)}.call-details-copy-btn.copied{color:var(--success-color)}.call-details-participants-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.call-details-participant-card{border-radius:var(--radius-md,10px);background:var(--background-color);border:1px solid var(--border-color);padding:14px 16px}.call-details-role-label{text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;margin-bottom:8px;font-size:.75rem;font-weight:700;display:flex}.call-details-role-label.student{color:var(--primary-600)}.call-details-role-label.parent{color:#8b5cf6}.call-details-participant-name{color:var(--text-main);font-size:1rem;font-weight:700}.call-details-meta-line{color:var(--text-muted);align-items:center;gap:4px;margin-top:4px;font-size:.8rem;display:flex}.call-details-meta-line strong{color:var(--text-main)}.call-details-school-box{border-radius:var(--radius-md,10px);background:var(--background-color);border:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex}.call-details-school-left{align-items:center;gap:10px;display:flex}.call-details-school-icon{border-radius:var(--radius-sm,8px);background:var(--primary-50);width:36px;height:36px;color:var(--primary-600);flex-shrink:0;justify-content:center;align-items:center;display:flex}.call-details-school-meta{flex-direction:column;display:flex}.call-details-school-label{color:var(--text-light);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.call-details-school-name{color:var(--text-main);font-size:.92rem;font-weight:600}.call-details-school-code{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-sm,6px);color:var(--text-muted);padding:3px 8px;font-size:.75rem;font-weight:600}.call-details-metrics-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;display:grid}.call-details-metric-item{border-radius:var(--radius-md,10px);background:var(--background-color);border:1px solid var(--border-color);flex-direction:column;gap:3px;padding:12px 14px;display:flex}.call-details-metric-label{color:var(--text-light);align-items:center;gap:5px;font-size:.72rem;font-weight:500;display:flex}.call-details-metric-value{color:var(--text-main);font-size:1.1rem;font-weight:700}.call-details-metric-value.coins{color:var(--warning-color)}.call-details-metric-value.ping{color:var(--primary-500)}.call-details-metric-value.bitrate{color:#8b5cf6}.call-details-quality-banner{border-radius:var(--radius-md,10px);background:#10b9811a;border:1px solid #10b98147;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.call-details-quality-label{color:var(--success-color);font-size:.8rem;font-weight:600}.call-details-quality-val{color:var(--success-color);font-size:.85rem;font-weight:700}.call-details-footer{border-top:1px solid var(--border-color);background:var(--accent-warm);justify-content:flex-end;align-items:center;gap:12px;padding:14px 24px;display:flex}.call-details-esc-hint{color:var(--text-muted);align-items:center;gap:5px;margin-right:auto;font-size:.78rem;display:flex}.call-details-esc-hint kbd{background:var(--surface-color);border:1px solid var(--border-color);border-radius:var(--radius-sm,4px);color:var(--text-muted);box-shadow:var(--shadow-sm);padding:1px 6px;font-family:inherit;font-size:.72rem;font-weight:600}.call-details-dismiss-btn{border-radius:var(--radius-md,10px);background:var(--surface-color);height:38px;color:var(--text-main);border:1.5px solid var(--border-color);cursor:pointer;transition:all var(--transition-fast,.15s ease);box-shadow:var(--shadow-sm);align-items:center;gap:7px;padding:8px 20px;font-size:.85rem;font-weight:600;display:inline-flex}.call-details-dismiss-btn:hover{background:var(--background-color);border-color:var(--primary-500);color:var(--primary-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.call-details-dismiss-btn:active{transform:translateY(0)}.faq-tabs{background:var(--card-bg,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:14px;gap:12px;width:fit-content;margin-bottom:24px;padding:6px;display:flex}.faq-tab-btn{color:var(--text-secondary,#64748b);cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.faq-tab-btn.active{background:var(--primary,#3b82f6);color:#fff;font-weight:600;box-shadow:0 2px 6px #3b82f640}.faq-tab-badge{color:inherit;background:#fff3;border-radius:12px;padding:2px 8px;font-size:12px}.faq-tab-btn:not(.active) .faq-tab-badge{background:var(--badge-bg,#f1f5f9);color:var(--text-secondary,#64748b)}.faq-card-item{background:var(--card-bg,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:16px;margin-bottom:16px;padding:20px;transition:box-shadow .2s,border-color .2s}.faq-card-item:hover{border-color:var(--primary-light,#93c5fd);box-shadow:0 4px 12px #0000000d}.faq-item-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.faq-item-question-wrap{flex:1;align-items:flex-start;gap:12px;display:flex}.faq-item-icon{color:#e65100;background:#fff3e0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;margin-top:2px;display:flex}.faq-item-question{color:var(--text-primary,#0f172a);margin-bottom:6px;font-size:16px;font-weight:600}.faq-item-answer{color:var(--text-secondary,#475569);white-space:pre-wrap;margin-top:8px;font-size:14px;line-height:1.6}.faq-item-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.faq-order-tag{color:var(--text-muted,#94a3b8);align-items:center;gap:4px;margin-right:8px;font-size:12px;display:inline-flex}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:20px;margin-top:10px;display:grid}.settings-card{background:var(--surface-color,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:var(--radius-lg,16px);box-shadow:var(--shadow-sm,0 1px 3px #0000000d);flex-direction:column;gap:20px;padding:24px;display:flex}.settings-card-header{border-bottom:1px solid var(--border-color,#e2e8f0);align-items:center;gap:14px;padding-bottom:16px;display:flex}.settings-card-title{color:var(--text-main,#0f172a);margin:0;font-size:1.15rem;font-weight:700}.settings-card-subtitle{color:var(--text-muted,#64748b);margin:2px 0 0;font-size:.85rem}.settings-logo-preview-box{flex-direction:column;align-items:center;gap:20px;display:flex}.logo-display-frame{border:2px dashed var(--border-color,#cbd5e1);background:var(--accent-cream,#f8fafc);box-sizing:border-box;border-radius:14px;justify-content:center;align-items:center;width:100%;max-width:320px;height:140px;padding:16px;display:flex}.logo-display-img{object-fit:contain;max-width:100%;max-height:100%}.logo-meta-info{flex-direction:column;gap:10px;width:100%;display:flex}.logo-badge-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.logo-version-badge{color:#1565c0;background:#e3f2fd;border-radius:8px;align-items:center;gap:4px;padding:4px 10px;font-size:.82rem;font-weight:700;display:inline-flex}.logo-cache-tag{color:#2e7d32;background:#e8f5e9;border-radius:8px;align-items:center;gap:4px;padding:4px 10px;font-size:.82rem;font-weight:600;display:inline-flex}.logo-note{color:var(--text-muted,#64748b);margin:0;font-size:.85rem;line-height:1.45}.upload-logo-btn{background:var(--accent-warm,#fff3e0);color:#e65100;cursor:pointer;border:1px solid #ffe0b2;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:6px;padding:10px 18px;font-size:.9rem;font-weight:600;transition:all .2s;display:inline-flex}.upload-logo-btn:hover{background:#ffe0b2}.field-hint{color:var(--text-muted,#64748b);margin-top:4px;font-size:.78rem;display:block}.voice-status-pill{border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.voice-status-pill.active{color:#059669;background:#10b9811f;border:1px solid #10b98140}.voice-status-pill.inactive{color:#dc2626;background:#ef44441f;border:1px solid #ef444440}.voice-test-box{background:var(--surface-color,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:var(--radius-md,12px);flex-direction:column;gap:12px;padding:16px;display:flex}.voice-result-card{border-radius:var(--radius-md,10px);flex-direction:column;gap:10px;padding:14px 16px;animation:.2s ease-in-out fadeIn;display:flex}.voice-result-card.success{color:#065f46;background:#10b98114;border:1px solid #10b9814d}.voice-result-card.error{color:#991b1b;background:#ef444414;border:1px solid #ef44444d}.voice-meta-tags{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.voice-tag{background:#0000000f;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.voice-raw-json{white-space:pre-wrap;word-break:break-all;background:#0000000a;border-radius:8px;max-height:220px;margin:0;padding:10px 12px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.78rem;overflow-y:auto}.input-with-action{align-items:center;display:flex;position:relative}.input-toggle-btn{color:var(--text-muted,#64748b);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;right:10px}.input-toggle-btn:hover{color:var(--text-main,#0f172a)}.payments-page-container{background-color:var(--bg-main,#f8fafc);flex-direction:column;gap:20px;min-height:100vh;padding:24px;display:flex}.payments-header-section{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.payments-title-row{align-items:center;gap:14px;display:flex}.payments-header-icon-box{color:#fff;background:linear-gradient(135deg,#d97706,#b45309);border-radius:12px;justify-content:center;align-items:center;width:46px;height:46px;display:flex;box-shadow:0 4px 12px #d9770640}.payments-title{color:var(--text-primary,#0f172a);margin:0;font-size:22px;font-weight:700}.payments-subtitle{color:var(--text-secondary,#64748b);margin:2px 0 0;font-size:13px}.payments-header-actions{align-items:center;gap:10px;display:flex}.payments-btn-primary{color:#fff;cursor:pointer;background-color:#d97706;border:none;border-radius:10px;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 2px 6px #d9770640}.payments-btn-primary:hover:not(:disabled){background-color:#b45309;transform:translateY(-1px)}.payments-btn-secondary{color:#334155;cursor:pointer;background-color:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:8px;padding:9px 15px;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.payments-btn-secondary:hover:not(:disabled){background-color:#f1f5f9;border-color:#cbd5e1}.payments-stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.payments-stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;gap:6px;padding:18px 20px;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 1px 3px #0000000d}.payments-stat-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px #00000014}.stat-card-header{justify-content:space-between;align-items:center;display:flex}.stat-label{color:#64748b;font-size:13px;font-weight:600}.stat-icon-badge{border-radius:8px;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.badge-gold{color:#d97706;background:#fef3c7}.badge-amber{color:#b45309;background:#fffbeb}.badge-emerald{color:#059669;background:#ecfdf5}.badge-rose{color:#e11d48;background:#fff1f2}.stat-main-value{color:#0f172a;font-size:24px;font-weight:800}.stat-unit{color:#64748b;font-size:14px;font-weight:600}.stat-sub-detail{color:#94a3b8;font-size:11.5px;font-weight:500}.payments-filter-toolbar{background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex-direction:column;gap:12px;padding:14px 16px;display:flex;box-shadow:0 1px 3px #0000000a}.filter-row-primary{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.payments-search-box{flex:1;min-width:260px;position:relative}.search-icon{color:#94a3b8;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.payments-search-input{color:#0f172a;background-color:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;outline:none;width:100%;padding:9px 36px;font-size:13px;transition:all .2s}.payments-search-input:focus{background-color:#fff;border-color:#d97706;box-shadow:0 0 0 3px #d9770626}.clear-search-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:4px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.filter-select-group{min-width:140px}.payments-filter-select{color:#1e293b;cursor:pointer;background-color:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;outline:none;width:100%;padding:9px 12px;font-size:13px;transition:all .2s}.payments-filter-select:focus{background-color:#fff;border-color:#d97706}.payments-reset-filters-btn{color:#475569;cursor:pointer;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;font-weight:600;display:inline-flex}.payments-reset-filters-btn:hover{color:#0f172a;background:#e2e8f0}.filter-row-custom-date{border-top:1px dashed #e2e8f0;align-items:center;gap:16px;padding-top:8px;display:flex}.date-input-group{color:#475569;align-items:center;gap:8px;font-size:12.5px;font-weight:500;display:flex}.payments-date-input{border:1px solid #cbd5e1;border-radius:8px;outline:none;padding:6px 10px;font-size:12.5px}.payments-table-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0000000d}.payments-error-banner{color:#dc2626;background:#fef2f2;border-bottom:1px solid #fecaca;padding:12px 18px;font-size:13px;font-weight:500}.payments-table-wrapper{overflow-x:auto}.payments-table{border-collapse:collapse;text-align:left;width:100%}.payments-table th{color:#64748b;text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:12px 16px;font-size:11.5px;font-weight:700}.payments-table td{color:#334155;vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:14px 16px;font-size:13px}.payments-table-row:hover{background-color:#fdfbf7}.receipt-number-cell{flex-direction:column;gap:3px;display:flex}.receipt-no-text{color:#0f172a;font-family:monospace;font-size:12.5px;font-weight:700}.receipt-date-text{color:#94a3b8;font-size:11px}.student-cell{flex-direction:column;gap:2px;display:flex}.student-name-text{color:#0f172a;font-weight:600}.student-meta-sub{color:#64748b;font-size:11px}.school-house-cell{flex-direction:column;gap:4px;display:flex}.school-name-text{color:#1e293b;font-size:12.5px;font-weight:500}.house-tag-badge{color:#475569;background:#f1f5f9;border-radius:6px;width:fit-content;padding:2px 7px;font-size:10.5px;font-weight:600;display:inline-block}.parent-cell{flex-direction:column;gap:2px;display:flex}.parent-name-text{color:#1e293b;font-weight:500}.parent-phone-text{color:#64748b;font-family:monospace;font-size:11.5px}.amount-cell{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.total-amount-text{color:#0f172a;font-size:14px;font-weight:700}.base-tax-detail{color:#94a3b8;font-size:10.5px}.coins-credited-badge{color:#92400e;background:#fef3c7;border-radius:8px;align-items:center;gap:4px;padding:4px 9px;font-size:12px;font-weight:700;display:inline-flex}.gateway-ids-cell{flex-direction:column;gap:4px;display:flex}.id-row{align-items:center;gap:4px;font-size:11px;display:flex}.id-label{color:#94a3b8;font-weight:700}.id-code{color:#475569;text-overflow:ellipsis;white-space:nowrap;max-width:110px;font-family:monospace;overflow:hidden}.copy-mini-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex}.copy-mini-btn:hover{color:#0f172a}.status-pill{text-transform:uppercase;border-radius:9999px;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.status-paid{color:#15803d;background:#dcfce7}.status-created{color:#b45309;background:#fef3c7}.status-failed{color:#b91c1c;background:#fee2e2}.status-refunded{color:#4338ca;background:#e0e7ff}.action-icon-btn{color:#334155;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:600;transition:all .2s;display:inline-flex}.action-icon-btn:hover{color:#d97706;background:#f1f5f9;border-color:#d97706}.text-right{text-align:right}.text-center{text-align:center}.text-amber{color:#d97706}.text-emerald{color:#059669}.payments-loading-box,.payments-empty-box{color:#64748b;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:36px 20px;display:flex}.empty-icon{color:#cbd5e1}.payments-empty-box h3{color:#1e293b;margin:0;font-size:16px}.payments-empty-box p{color:#94a3b8;margin:0;font-size:13px}.payments-pagination-bar{background:#fafbfc;border-top:1px solid #e2e8f0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}.pagination-info{color:#64748b;font-size:13px}.pagination-controls{align-items:center;gap:16px;display:flex}.page-size-selector{color:#64748b;align-items:center;gap:6px;font-size:12.5px;display:flex}.page-size-select{background:#fff;border:1px solid #cbd5e1;border-radius:6px;outline:none;padding:4px 8px;font-size:12px}.pagination-btn-group{align-items:center;gap:6px;display:flex}.page-nav-btn{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.page-nav-btn:hover:not(:disabled){color:#0f172a;background:#f1f5f9}.page-nav-btn:disabled{opacity:.4;cursor:not-allowed}.current-page-indicator{color:#475569;padding:0 6px;font-size:13px}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;background-color:#0f172aa6;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.invoice-modal-content{background:#fff;border-radius:20px;flex-direction:column;width:100%;max-width:680px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.invoice-modal-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.invoice-modal-header-title{align-items:center;gap:10px;display:flex}.invoice-modal-header-title h3{color:#0f172a;margin:0;font-size:17px;font-weight:700}.invoice-modal-close-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px}.invoice-modal-close-btn:hover{color:#0f172a;background:#f1f5f9}.invoice-modal-body{background:#fcfbf9;padding:24px;overflow-y:auto}.invoice-brand-row{justify-content:space-between;align-items:flex-start;display:flex}.invoice-title{color:#0f172a;margin:0;font-size:18px;font-weight:800}.invoice-subtext{color:#64748b;margin:2px 0 0;font-size:11px}.invoice-badge-status{color:#15803d;background:#dcfce7;border-radius:9999px;margin-bottom:4px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-block}.invoice-date-text{color:#475569;margin:2px 0 0;font-size:11px}.invoice-divider{background:#e6decf;height:1px;margin:16px 0}.invoice-parties-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px;display:grid}.invoice-party-box{background:#fff;border:1px solid #e6decf;border-radius:12px;padding:14px}.party-box-title{color:#d97706;text-transform:uppercase;font-size:10.5px;font-weight:700}.invoice-party-box h4{color:#0f172a;margin:4px 0 6px;font-size:14px;font-weight:700}.invoice-party-box p{color:#475569;margin:2px 0;font-size:11.5px}.invoice-items-table{border-collapse:collapse;background:#fff;border:1px solid #e6decf;border-radius:10px;width:100%;margin-bottom:16px;overflow:hidden}.invoice-items-table th{color:#1e293b;text-transform:uppercase;background:#f4f0e6;padding:10px 14px;font-size:11px;font-weight:700}.invoice-items-table td{color:#334155;border-top:1px solid #e6decf;padding:12px 14px;font-size:12.5px}.invoice-tax-summary{flex-direction:column;gap:6px;max-width:280px;margin-bottom:20px;margin-left:auto;display:flex}.tax-row{color:#475569;justify-content:space-between;font-size:12.5px;display:flex}.grand-total-row{color:#0f172a;border-top:2px solid #e6decf;padding-top:8px;font-size:14px;font-weight:800}.grand-total-amount{color:#d97706;font-size:16px}.invoice-footer-note{text-align:center;color:#94a3b8;border-top:1px dashed #e6decf;padding-top:12px;font-size:10.5px}.invoice-modal-footer{background:#fff;border-top:1px solid #e2e8f0;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;display:flex}.animate-spin{animation:1s linear infinite spin}.payments-btn-primary.btn-loading{opacity:.85;cursor:wait}.payments-table-footer-bar{background:var(--card-bg,#fff);border-top:1px solid var(--border-color,#e2e8f0);color:var(--text-secondary,#64748b);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:13px;display:flex}.table-export-hint{color:#94a3b8;font-size:12px;font-style:italic}.token-logs-page-container{box-sizing:border-box;background-color:var(--bg-main,#f8fafc);flex-direction:column;gap:20px;height:100%;padding:24px;display:flex;overflow-y:auto}.token-logs-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.token-logs-title-group{align-items:center;gap:14px;display:flex}.token-logs-icon-box{color:#fff;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:12px;justify-content:center;align-items:center;width:46px;height:46px;display:flex;box-shadow:0 4px 12px #2563eb40}.token-logs-main-title{color:var(--text-main,#0f172a);margin:0;font-size:1.45rem;font-weight:700;line-height:1.2}.token-logs-subtitle{color:var(--text-muted,#64748b);margin:4px 0 0;font-size:.85rem}.token-logs-actions{align-items:center;gap:10px;display:flex}.token-logs-refresh-btn{border:1px solid var(--border-color,#e2e8f0);color:var(--text-main,#334155);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:8px;padding:8px 16px;font-size:.875rem;font-weight:600;transition:all .2s;display:inline-flex;box-shadow:0 1px 2px #0000000d}.token-logs-refresh-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.token-logs-stats-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.token-stat-card{border:1px solid var(--border-color,#e2e8f0);background:#fff;border-radius:14px;align-items:flex-start;gap:14px;padding:16px;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 1px 3px #0000000a}.token-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000000f}.token-stat-icon-wrap{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.token-stat-card.primary .token-stat-icon-wrap{color:#2563eb;background:#eff6ff}.token-stat-card.success .token-stat-icon-wrap{color:#16a34a;background:#f0fdf4}.token-stat-card.warning .token-stat-icon-wrap{color:#e11d48;background:#fff1f2}.token-stat-card.info .token-stat-icon-wrap{color:#9333ea;background:#faf5ff}.token-stat-content{flex-direction:column;display:flex}.token-stat-label{color:var(--text-muted,#64748b);text-transform:uppercase;letter-spacing:.5px;font-size:.78rem;font-weight:600}.token-stat-value{color:var(--text-main,#0f172a);margin:4px 0 2px;font-size:1.35rem;font-weight:700}.token-stat-sub{color:var(--text-muted,#94a3b8);font-size:.75rem}.token-logs-filter-tabs{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.token-filter-tab{color:#475569;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e2e8f0;border-radius:20px;align-items:center;gap:6px;padding:8px 14px;font-size:.82rem;font-weight:600;transition:all .15s;display:inline-flex}.token-filter-tab:hover{color:#1e293b;background:#f8fafc;border-color:#cbd5e1}.token-filter-tab.active{color:#fff;background:#2563eb;border-color:#2563eb;box-shadow:0 2px 8px #2563eb40}.token-logs-controls-bar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.token-logs-search-wrapper{flex:1;min-width:260px;position:relative}.token-logs-search-wrapper .search-icon{color:#94a3b8;pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.token-logs-search-input{color:#0f172a;box-sizing:border-box;background:#fff;border:1px solid #e2e8f0;border-radius:10px;outline:none;width:100%;padding:10px 38px 10px 42px;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.token-logs-search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.token-logs-search-wrapper .clear-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:1.1rem;display:flex;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.token-logs-dropdowns{flex-wrap:wrap;gap:10px;display:flex}.token-logs-select{color:#334155;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;outline:none;padding:9px 14px;font-size:.85rem;font-weight:500;transition:border-color .2s}.token-logs-select:focus{border-color:#3b82f6}.token-logs-table-wrapper{background:#fff;border:1px solid #e2e8f0;border-radius:14px;flex:1;min-height:380px;overflow-x:auto;box-shadow:0 1px 3px #0000000a}.token-logs-table{border-collapse:collapse;text-align:left;width:100%;font-size:.85rem}.token-logs-table thead th{color:#475569;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:12px 16px;font-size:.75rem;font-weight:700}.token-logs-table tbody tr{border-bottom:1px solid #f1f5f9;transition:background .15s}.token-logs-table tbody tr:hover{background:#f8fafc}.token-logs-table td{vertical-align:middle;color:#1e293b;padding:14px 16px}.cell-timestamp .timestamp-group{color:#475569;white-space:nowrap;align-items:center;gap:6px;font-size:.82rem;font-weight:500;display:flex}.time-icon{color:#94a3b8}.performer-badge{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:8px;padding:4px 10px;display:inline-flex}.performer-icon{color:#2563eb}.performer-text{flex-direction:column;display:flex}.performer-name{color:#0f172a;font-size:.82rem;font-weight:600}.performer-id{color:#64748b;font-size:.7rem}.student-cell-group{flex-direction:column;gap:2px;display:flex}.student-name{color:#0f172a;font-weight:600}.student-roll-badge{color:#64748b;align-items:center;gap:3px;font-size:.72rem;font-weight:500;display:inline-flex}.institution-group{flex-direction:column;gap:3px;display:flex}.school-tag,.house-tag{color:#475569;align-items:center;gap:4px;font-size:.75rem;display:inline-flex}.house-tag{color:#64748b}.type-badge{white-space:nowrap;border-radius:14px;align-items:center;gap:5px;padding:4px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.badge-admin-add{color:#059669;background:#ecfdf5;border:1px solid #a7f3d0}.badge-admin-reduce{color:#e11d48;background:#fff1f2;border:1px solid #fecdd3}.badge-purchase{color:#9333ea;background:#faf5ff;border:1px solid #e9d5ff}.badge-allotment{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe}.badge-call{color:#ca8a04;background:#fefce8;border:1px solid #fef08a}.badge-default{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0}.delta-pill{white-space:nowrap;border-radius:8px;align-items:baseline;gap:2px;padding:4px 10px;font-size:.95rem;font-weight:700;display:inline-flex}.delta-pill.credit{color:#059669;background:#ecfdf5}.delta-pill.debit{color:#e11d48;background:#fff1f2}.delta-pill small{opacity:.85;font-size:.72rem;font-weight:500}.balance-shift-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:6px;padding:3px 8px;font-family:monospace;font-size:.78rem;display:inline-flex}.bal-before{color:#64748b}.bal-arrow{color:#94a3b8}.bal-after{color:#0f172a;font-weight:700}.cell-description{max-width:220px}.desc-text{text-overflow:ellipsis;white-space:nowrap;color:#475569;max-width:220px;font-size:.8rem;display:inline-block;overflow:hidden}.token-logs-loading,.token-logs-empty,.token-logs-error{text-align:center;color:#64748b;flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.empty-icon{color:#cbd5e1;margin-bottom:12px}.loading-spinner{border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;width:36px;height:36px;margin-bottom:12px;animation:.8s linear infinite spin}.spinning{animation:.8s linear infinite spin}.token-logs-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:8px;display:flex}.pagination-left{color:#64748b;align-items:center;gap:8px;font-size:.85rem;display:flex}.pagination-select{color:#1e293b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;outline:none;padding:6px 10px;font-size:.85rem}.pagination-center{color:#64748b;font-size:.85rem}.pagination-right{align-items:center;gap:8px;display:flex}.pagination-nav-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .15s;display:flex}.pagination-nav-btn:hover:not(:disabled){color:#0f172a;background:#f1f5f9;border-color:#cbd5e1}.pagination-nav-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-page-indicator{color:#334155;padding:0 4px;font-size:.85rem;font-weight:600}.subadmins-page{padding:24px;animation:.3s fadeIn}.subadmins-header-section{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.subadmins-title-group h1{color:var(--text-main,#1e293b);align-items:center;gap:10px;font-size:1.5rem;font-weight:700;display:flex}.subadmins-title-group p{color:var(--text-muted,#64748b);margin-top:4px;font-size:.88rem}.subadmins-controls{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.subadmins-search-box{flex:1;min-width:260px;position:relative}.subadmins-search-box .search-icon{color:var(--text-muted,#94a3b8);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.subadmins-search-input{border-radius:var(--radius-md,8px);border:1px solid var(--border-color,#e2e8f0);background:var(--surface-color,#fff);width:100%;color:var(--text-main,#1e293b);outline:none;padding:9px 12px 9px 38px;font-size:.88rem;transition:all .2s}.subadmins-search-input:focus{border-color:var(--primary-color,#3b82f6);box-shadow:0 0 0 3px #3b82f626}.subadmins-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px;display:grid}.subadmin-card{background:var(--surface-color,#fff);border:1px solid var(--border-color,#e2e8f0);border-radius:12px;flex-direction:column;justify-content:space-between;padding:18px;transition:all .2s;display:flex;box-shadow:0 2px 4px #00000008}.subadmin-card:hover{border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 6px 12px #0000000f}.subadmin-card-header{align-items:flex-start;gap:14px;margin-bottom:14px;display:flex}.subadmin-avatar{color:#3b82f6;background:#eff6ff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.subadmin-avatar.super-admin{color:#a855f7;background:#fdf4ff;border:1px solid #f0abfc}.subadmin-meta{flex:1;min-width:0}.subadmin-username-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.subadmin-username{color:var(--text-main,#1e293b);text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700;overflow:hidden}.subadmin-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:9999px;padding:2px 8px;font-size:.7rem;font-weight:700}.subadmin-badge.super{color:#a855f7;background:#fdf4ff;border:1px solid #f0abfc}.subadmin-badge.sub{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe}.subadmin-fullname{color:var(--text-muted,#64748b);margin-top:2px;font-size:.85rem}.subadmin-email{color:var(--text-muted,#94a3b8);margin-top:2px;font-size:.8rem}.subadmin-perms-section{background:var(--bg-subtle,#f8fafc);border-radius:8px;margin-bottom:14px;padding:10px 12px}.perms-header-line{color:var(--text-muted,#64748b);justify-content:space-between;margin-bottom:6px;font-size:.78rem;font-weight:600;display:flex}.perms-chips-container{flex-wrap:wrap;gap:4px;max-height:72px;display:flex;overflow-y:auto}.perm-tag-chip{color:#334155;background:#fff;border:1px solid #e2e8f0;border-radius:4px;padding:2px 6px;font-size:.7rem;font-weight:600}.subadmin-card-footer{border-top:1px solid var(--border-color,#f1f5f9);justify-content:space-between;align-items:center;padding-top:12px;display:flex}.subadmin-date{color:var(--text-muted,#94a3b8);font-size:.75rem}.subadmin-actions-group{gap:6px;display:flex}.perms-selector-container{max-height:52vh;padding-right:6px;overflow-y:auto}.perms-preset-bar{background:#f1f5f9;border-radius:8px;align-items:center;gap:8px;margin-bottom:14px;padding:6px 10px;display:flex}.preset-btn{color:#334155;cursor:pointer;background:#fff;border:1px solid #0000;border-radius:6px;padding:3px 10px;font-size:.75rem;font-weight:600;transition:all .15s}.preset-btn:hover{background:#f8fafc;border-color:#cbd5e1}.perm-category-group{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:16px;padding:10px 14px}.perm-category-title{color:#1e293b;align-items:center;gap:6px;margin-bottom:8px;font-size:.85rem;font-weight:700;display:flex}.perm-checkbox-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;display:grid}.perm-checkbox-item{color:#334155;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:8px;font-size:.8rem;display:flex}.perm-checkbox-item input[type=checkbox]{cursor:pointer;margin-top:2px}.error-boundary-wrapper{background:var(--bg-main,#f1f5f9);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.error-boundary-card{background:var(--bg-card,#fff);border:1px solid var(--border-color,#e2e8f0);text-align:center;border-radius:16px;width:100%;max-width:520px;padding:36px 32px;box-shadow:0 10px 25px -5px #0000001a}.error-boundary-icon-box{background:#ef44441a;border-radius:50%;margin-bottom:16px;padding:16px;display:inline-flex}.error-boundary-title{color:var(--text-main,#0f172a);margin-bottom:8px;font-size:1.4rem;font-weight:700}.error-boundary-desc{color:var(--text-muted,#64748b);margin-bottom:20px;font-size:.95rem;line-height:1.5}.error-boundary-detail{color:#f87171;text-align:left;background:#0f172a;border-radius:8px;margin-bottom:24px;padding:12px 16px;font-size:.82rem;overflow-x:auto}.error-boundary-actions{justify-content:center;gap:12px;display:flex}.error-boundary-btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-size:.9rem;font-weight:600;transition:all .2s;display:inline-flex}.error-boundary-btn.primary{color:#fff;background:#2563eb}.error-boundary-btn.primary:hover{background:#1d4ed8}.error-boundary-btn.secondary{background:var(--bg-surface-alt,#f1f5f9);color:var(--text-main,#0f172a);border:1px solid var(--border-color,#cbd5e1)}.error-boundary-btn.secondary:hover{background:#e2e8f0}
