:root{--primary: #2563eb;--primary-hover: #1d4ed8;--secondary: #475569;--success: #10b981;--danger: #ef4444;--warning: #f59e0b;--background: #f1f5f9;--card-bg: #ffffff;--text-main: #1e293b;--text-muted: #64748b;--border: #e2e8f0;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1);--radius: 8px}body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--background);color:var(--text-main);-webkit-font-smoothing:antialiased}button{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#f8fafc,#e2e8f0);padding:20px}.login-card{background:#fff;padding:40px;width:100%;max-width:400px;border-radius:12px;box-shadow:0 10px 25px -5px #0000001a,0 8px 10px -6px #0000001a}.login-header h2{margin:0;color:var(--text-main);font-size:1.8rem;text-align:center}.login-header p{color:var(--text-muted);text-align:center;margin-top:5px}.login-form{margin-top:30px}.login-footer{margin-top:25px;text-align:center;font-size:.8rem;color:var(--text-muted)}.app-container{display:flex;flex-direction:column;height:100vh;background-color:var(--background)}.navbar{display:flex;justify-content:space-between;align-items:center;background-color:#0f172a;color:#fff;padding:0 24px;height:64px;box-shadow:var(--shadow-md);flex-shrink:0}.nav-brand{font-size:1.25rem;font-weight:700;color:#fff;letter-spacing:-.5px}.nav-links{display:flex;gap:8px;overflow-x:auto}.nav-links button{background:transparent;color:#94a3b8;border:none;padding:8px 16px;font-size:.9rem;border-radius:6px;transition:all .2s;white-space:nowrap}.nav-links button:hover{color:#fff;background-color:#ffffff1a}.nav-links button.active{background-color:var(--primary);color:#fff;font-weight:600}.content-area{flex:1;padding:24px;overflow-y:auto}.view-section{background:var(--card-bg);padding:24px;border-radius:var(--radius);box-shadow:var(--shadow-sm);max-width:1200px;margin:0 auto;border:1px solid var(--border)}.view-section h2{margin-top:0;color:var(--text-main);border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:24px}.form-section{max-width:500px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--text-main);font-size:.9rem}input,select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:.95rem;background-color:#fff;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}input:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}table{width:100%;border-collapse:collapse;margin-top:10px}.table-responsive{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border)}th,td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border)}th{background-color:#f8fafc;font-weight:600;color:var(--text-muted);font-size:.85rem;text-transform:uppercase}tr:last-child td{border-bottom:none}tr:hover{background-color:#f8fafc}.badge{padding:4px 10px;border-radius:9999px;font-size:.75rem;font-weight:600;display:inline-block}.badge.superadmin{background-color:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.badge.user{background-color:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.btn-primary{background-color:var(--primary);color:#fff;border:none;padding:10px 20px;border-radius:6px;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary:hover{background-color:var(--primary-hover)}.btn-success{background-color:var(--success);color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer}.btn-success:hover{background-color:#059669}.btn-danger{background-color:#fff;color:var(--danger);border:1px solid var(--danger);padding:6px 12px;border-radius:6px;font-size:.85rem;cursor:pointer}.btn-danger:hover{background-color:#fef2f2}.btn-logout{background-color:transparent;color:#94a3b8;border:1px solid #334155;padding:4px 10px;font-size:.8rem;border-radius:4px;cursor:pointer;transition:all .2s}.btn-logout:hover{background-color:#ffffff1a;color:#fff;border-color:#94a3b8}.full-width{width:100%}@media(max-width:768px){.navbar{flex-direction:column;height:auto;padding:15px;gap:15px}.nav-links{width:100%;justify-content:center}.content-area{padding:15px}}.school-container{max-width:1200px;margin:0 auto}.school-form-card{background:#fff;padding:25px;border-radius:12px;box-shadow:0 4px 15px #0000000d;margin-bottom:40px}.school-form-card h3{margin-top:0;color:#333}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.input-group label{display:block;font-size:.9rem;color:#666;margin-bottom:5px;font-weight:600}.input-group input{width:100%;padding:12px;border:1px solid #ddd;border-radius:6px;font-size:1rem;box-sizing:border-box}.btn-create{width:100%;padding:15px;background:#4ecca3;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:700;cursor:pointer;transition:background .3s}.btn-create:hover{background:#45b691}.school-cards-wrapper{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.school-card{background:#fff;border-radius:10px;padding:20px;box-shadow:0 2px 8px #0000000d;border-left:5px solid #4ecca3;transition:transform .2s}.school-card.inactive{border-left-color:#ccc;background:#f9f9f9;opacity:.8}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;border-bottom:1px solid #eee;padding-bottom:10px}.card-header h4{margin:0;font-size:1.2rem}.card-body p{margin:8px 0;color:#555;font-size:.95rem}.expire-warning{color:#dc3545;font-weight:700;font-size:.8rem;margin-left:10px;animation:pulse 1.5s infinite}.status-pill{padding:4px 10px;border-radius:20px;font-size:.75rem;font-weight:700;text-transform:uppercase}.status-pill.active{background:#d1e7dd;color:#0f5132}.status-pill.inactive{background:#e2e3e5;color:#41464b}.card-actions{margin-top:20px}.btn-toggle{width:100%;padding:10px;border:none;border-radius:5px;cursor:pointer;font-weight:600}.btn-activate{background:#28a745;color:#fff}.btn-deactivate{background:#dc3545;color:#fff}@media(max-width:768px){.form-grid{grid-template-columns:1fr}}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.edit-container{max-width:1000px;margin:0 auto}.select-box{margin-bottom:20px;background:#fff;padding:15px;border-radius:8px;box-shadow:0 2px 5px #0000000d}.select-box select{width:100%;padding:10px;font-size:1rem;margin-top:5px;border:1px solid #ddd;border-radius:4px}.edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.card{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 10px #0000000d}.card h3{margin-top:0;color:#333;border-bottom:2px solid #f0f0f0;padding-bottom:10px}label{display:block;margin-top:15px;font-weight:600;font-size:.9rem;color:#555}input{width:100%;padding:10px;margin-top:5px;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}.hint{font-size:.85rem;color:#777;margin:5px 0 0}.storage-wrapper{background:#f9f9f9;padding:15px;border-radius:6px;margin:20px 0;border:1px solid #eee}.storage-info{display:flex;justify-content:space-between;font-size:.85rem;font-weight:700;margin-bottom:5px}.progress-bar{height:10px;background:#e0e0e0;border-radius:5px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#4ecca3,#2e8b57);transition:width .3s ease}.admin-list{margin-bottom:20px;max-height:150px;overflow-y:auto;border:1px solid #eee;border-radius:4px}.admin-item{padding:10px;border-bottom:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.admin-item:last-child{border-bottom:none}button{margin-top:15px;width:100%;padding:12px;font-weight:700}@media(max-width:768px){.edit-grid{grid-template-columns:1fr}}.sd-layout{min-height:100vh;background-color:var(--background);display:flex;flex-direction:column}.sd-navbar{background-color:#fff;border-bottom:1px solid var(--border);padding:0 24px;height:70px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow-sm)}.sd-brand{display:flex;align-items:center;gap:12px}.brand-icon{font-size:1.5rem;background:#eff6ff;padding:8px;border-radius:8px}.sd-brand h2{margin:0;font-size:1.1rem;color:var(--text-main);line-height:1.2}.role-badge{font-size:.75rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.sd-main{max-width:1200px;margin:0 auto;width:100%;padding:24px;box-sizing:border-box;display:flex;flex-direction:column;gap:24px}.sd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.sd-card{background:var(--card-bg);border-radius:var(--radius);border:1px solid var(--border);padding:24px;box-shadow:var(--shadow-sm)}.sd-card h3{margin-top:0;margin-bottom:20px;font-size:1rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.stat-card .stat-value{font-size:1.5rem;font-weight:700;color:var(--text-main)}.stat-card .stat-total{font-size:1rem;color:var(--text-muted);font-weight:400}.stat-row{display:flex;align-items:center;gap:10px}.status-dot{width:10px;height:10px;border-radius:50%}.status-dot.active{background-color:var(--success);box-shadow:0 0 0 3px #10b98133}.status-dot.inactive{background-color:var(--danger)}.limit-labels{display:flex;justify-content:space-between;margin-bottom:8px;font-size:.9rem;font-weight:500}.limit-track{height:10px;background-color:#f1f5f9;border-radius:99px;overflow:hidden}.limit-fill{height:100%;background-color:var(--primary);border-radius:99px;transition:width .5s ease-out}.limit-fill[data-color=danger]{background-color:var(--danger)}.form-grid-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;align-items:start}.button-container{display:flex;align-items:flex-end}.pill{padding:4px 12px;border-radius:99px;font-size:.75rem;font-weight:600;text-transform:capitalize}.pill.teacher{background:#e0f2fe;color:#0284c7}.pill.student{background:#f1f5f9;color:#475569}.pill.staff{background:#fae8ff;color:#86198f}.pill.school_admin{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.active-text{color:var(--success);font-weight:500;font-size:.9rem}.loading-state{height:100vh;display:flex;justify-content:center;align-items:center}.spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.sd-navbar{padding:0 16px}.sd-main{padding:16px}.form-grid-row{grid-template-columns:1fr}}
