@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";
:root{--primary:#4f46e5;--primary-hover:#4338ca;--primary-light:#e0e7ff;--secondary:#64748b;--accent:#f59e0b;--background:#f8fafc;--foreground:#0f172a;--card-bg:#fffc;--card-border:#e2e8f0cc;--glass-bg:#ffffffb3;--glass-border:#ffffff4d;--error:#ef4444;--success:#10b981;--warning:#f59e0b;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--sidebar-w:260px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--background);max-width:100vw;color:var(--foreground);-webkit-font-smoothing:antialiased;font-family:Outfit,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:.4s ease-out forwards fadeIn}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.page-container{flex-direction:column;min-height:100vh;padding:2rem;display:flex}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;margin-top:2rem;display:grid}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:1.5rem;transition:all .3s}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.admin-layout{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);color:#fff;z-index:50;background:linear-gradient(#1e1b4b 0%,#312e81 100%);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-header{border-bottom:1px solid #ffffff1a;align-items:center;gap:.75rem;padding:1.5rem;display:flex}.sidebar-header .logo{background:var(--primary);border-radius:var(--radius-sm);justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;font-weight:700;display:flex}.sidebar-header h2{font-size:1.1rem;font-weight:600}.sidebar-header p{opacity:.6;margin-top:2px;font-size:.7rem}.sidebar-nav{flex:1;padding:.75rem 0}.sidebar-section{text-transform:uppercase;letter-spacing:.1em;opacity:.4;margin-top:.5rem;padding:.5rem 1.25rem .25rem;font-size:.65rem}.sidebar-item{cursor:pointer;color:#ffffffb3;border-left:3px solid #0000;align-items:center;gap:.75rem;padding:.65rem 1.25rem;font-size:.85rem;font-weight:400;transition:all .2s;display:flex}.sidebar-item:hover{color:#fff;background:#ffffff14}.sidebar-item.active{color:#fff;border-left-color:var(--accent);background:#ffffff1f;font-weight:500}.sidebar-item .icon{text-align:center;width:22px;font-size:1.1rem}.sidebar-footer{border-top:1px solid #ffffff1a;padding:1rem 1.25rem}.sidebar-footer .user-info{opacity:.8;margin-bottom:.5rem;font-size:.8rem}.sidebar-footer button{color:#fca5a5;border-radius:var(--radius-sm);cursor:pointer;background:#ef444433;border:1px solid #ef44444d;width:100%;padding:.5rem;font-family:inherit;font-size:.8rem;transition:all .2s}.sidebar-footer button:hover{background:#ef444466}.main-content{margin-left:var(--sidebar-w);flex:1;min-height:100vh;padding:1.5rem 2rem}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.topbar h1{font-size:1.5rem;font-weight:700}.topbar-actions{align-items:center;gap:.75rem;display:flex}.school-selector{background:var(--primary-light);border-radius:var(--radius-md);align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.85rem;display:flex}.school-selector select{color:var(--primary);cursor:pointer;background:0 0;border:none;outline:none;max-width:200px;font-family:inherit;font-size:.85rem;font-weight:500}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;align-items:center;gap:.4rem;padding:.55rem 1.1rem;font-family:inherit;font-size:.8rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#059669}.btn-warning{color:#fff;background:#f59e0b}.btn-warning:hover{background:#d97706}.btn-info{color:#fff;background:#3b82f6}.btn-info:hover{background:#2563eb}.btn-danger{background:var(--error);color:#fff}.btn-danger:hover{background:#dc2626}.btn-ghost{color:var(--secondary);border:1px solid var(--card-border);background:0 0}.btn-ghost:hover{background:var(--card-bg)}.btn-sm{padding:.3rem .65rem;font-size:.75rem}.btn-icon{justify-content:center;min-width:30px;padding:.35rem}.search-bar{flex:1;max-width:360px;position:relative}.search-bar input{border:1px solid var(--card-border);border-radius:var(--radius-md);background:#fff;outline:none;width:100%;padding:.6rem .9rem .6rem 2.2rem;font-family:inherit;font-size:.85rem;transition:border-color .2s}.search-bar input:focus{border-color:var(--primary)}.search-bar .search-icon{color:var(--secondary);pointer-events:none;font-size:.9rem;position:absolute;top:50%;left:.7rem;transform:translateY(-50%)}.data-table-wrap{border-radius:var(--radius-md);border:1px solid var(--card-border);box-shadow:var(--shadow-sm);background:#fff;overflow:auto hidden}.data-table{border-collapse:collapse;width:100%;font-size:.85rem}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--secondary);border-bottom:1px solid var(--card-border);white-space:nowrap;background:#f1f5f9;padding:.75rem 1rem;font-size:.75rem;font-weight:600}.data-table td{vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:.7rem 1rem}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#f8fafc}.actions-cell{gap:.3rem;display:flex}.badge{border-radius:999px;padding:.15rem .55rem;font-size:.7rem;font-weight:500;display:inline-flex}.badge-green{color:#166534;background:#dcfce7}.badge-red{color:#991b1b;background:#fee2e2}.badge-blue{color:#1e40af;background:#dbeafe}.badge-yellow{color:#92400e;background:#fef3c7}.badge-gray{color:#475569;background:#f1f5f9}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;box-sizing:border-box;background:#00000080;justify-content:center;align-items:center;padding:1.5rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:#fff;width:90%;max-width:560px;max-height:calc(100vh - 3rem);animation:.25s ease-out slideIn;overflow-y:auto}.modal-header{border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-header h3{font-size:1.1rem;font-weight:600}.modal-close{cursor:pointer;color:var(--secondary);background:0 0;border:none;padding:.25rem;font-size:1.3rem}.modal-body{padding:1.5rem}.modal-footer{border-top:1px solid var(--card-border);justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.form-group{margin-bottom:1rem}.form-group label{color:var(--foreground);margin-bottom:.35rem;font-size:.8rem;font-weight:500;display:block}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--card-border);border-radius:var(--radius-sm);outline:none;width:100%;padding:.55rem .75rem;font-family:inherit;font-size:.85rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary)}.form-row{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-card{border:1px solid var(--card-border);border-radius:var(--radius-md);background:#fff;padding:1.25rem;transition:all .2s}.stat-card:hover{box-shadow:var(--shadow-md)}.stat-card .stat-label{color:var(--secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.stat-card .stat-value{color:var(--primary);margin-top:.25rem;font-size:1.75rem;font-weight:700}.stat-card .stat-icon{float:right;opacity:.3;font-size:1.5rem}.empty-state{text-align:center;color:var(--secondary);padding:3rem;font-size:.9rem}.empty-state .empty-icon{margin-bottom:.75rem;font-size:2.5rem}.confirm-text{margin-bottom:.5rem;font-size:.9rem;line-height:1.5}.confirm-text strong{color:var(--error)}.chip-list{flex-wrap:wrap;gap:.35rem;display:flex}.chip{background:var(--primary-light);color:var(--primary);border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .5rem;font-size:.7rem;display:inline-flex}.loading{text-align:center;color:var(--secondary);padding:2rem}.tab-bar{border-bottom:2px solid var(--card-border);gap:0;margin-bottom:1.5rem;display:flex}.tab-item{cursor:pointer;color:var(--secondary);border-bottom:2px solid #0000;margin-bottom:-2px;padding:.6rem 1.25rem;font-size:.85rem;font-weight:500;transition:all .2s}.tab-item:hover{color:var(--foreground)}.tab-item.active{color:var(--primary);border-bottom-color:var(--primary)}@media (max-width:850px){.admin-layout{flex-direction:column}.sidebar{background:linear-gradient(90deg,#1e1b4b 0%,#312e81 100%);flex-flow:wrap;width:100%;height:auto;position:static}.sidebar-header{border-bottom:none;width:100%;padding:1rem 1.5rem}.sidebar-nav{-webkit-overflow-scrolling:touch;gap:.5rem;width:100%;padding:0 1rem .5rem;display:flex;overflow-x:auto}.sidebar-nav::-webkit-scrollbar{background:#ffffff0d;height:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:#fff3;border-radius:999px}.sidebar-section{display:none}.sidebar-item{border-radius:var(--radius-sm);background:#ffffff0d;border-bottom:3px solid #0000;border-left:none;flex-shrink:0;padding:.6rem 1rem}.sidebar-item.active{background:var(--primary);border-bottom-color:#0000;border-left:none}.sidebar-footer{border-top:1px solid #ffffff1a;flex-direction:column;align-items:flex-start;gap:.75rem;width:100%;padding:1rem 1.5rem;display:flex}.sidebar-footer .user-info{width:100%;margin-bottom:0}.sidebar-footer button,.sidebar-footer .btn-logout{text-align:center;justify-content:center;padding:.5rem 1rem;width:100%!important}.main-content{margin-left:0;padding:1.5rem 1rem}.topbar{flex-direction:column;align-items:stretch}.topbar h1{font-size:1.25rem}.topbar-actions{flex-wrap:wrap}.search-bar{max-width:100%}.school-selector select{width:100%;max-width:100%}.data-table{min-width:650px}.modal{width:95%;padding:0}.form-row{grid-template-columns:1fr;gap:0}}@media (max-width:480px){.dashboard-grid{grid-template-columns:1fr}.stat-card .stat-value{font-size:1.5rem}.topbar-actions{flex-direction:column;align-items:stretch}.topbar-actions button{justify-content:center;width:100%}}.calendar-container{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:#fff;flex-direction:column;gap:1.5rem;margin-top:1rem;padding:1.5rem;display:flex}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.calendar-grid{border:1px solid var(--card-border);border-radius:var(--radius-md);background:#fff;grid-template-columns:80px repeat(5,1fr);display:grid;position:relative;overflow:hidden}.calendar-day-header{text-align:center;border-bottom:2px solid var(--card-border);border-left:1px solid var(--card-border);background:#f1f5f9;padding:.75rem;font-size:.85rem;font-weight:600}.calendar-day-header:first-child{border-left:none}.calendar-time-col{background:#f8fafc;flex-direction:column;display:flex}.calendar-time-slot{height:60px;display:center;color:var(--secondary);border-bottom:1px solid var(--card-border);justify-content:center;align-items:center;font-size:.75rem;position:relative}.calendar-body{grid-template-rows:repeat(12,60px);grid-template-columns:repeat(5,1fr);display:grid;position:relative}.calendar-grid-cell{cursor:pointer;border-bottom:1px solid #f1f5f9;border-left:1px solid #f1f5f9;height:60px;transition:background .2s}.calendar-grid-cell:hover{background:#f8fafc}.calendar-item{border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);border-left:4px solid var(--primary);cursor:pointer;z-index:10;flex-direction:column;gap:2px;padding:.5rem;font-size:.75rem;transition:transform .2s,box-shadow .2s;display:flex;position:absolute;overflow:hidden}.calendar-item:hover{box-shadow:var(--shadow-md);z-index:20;transform:scale(1.02)}.calendar-item.color-1{color:#3730a3;background:#e0e7ff;border-color:#4f46e5}.calendar-item.color-2{color:#166534;background:#dcfce7;border-color:#22c55e}.calendar-item.color-3{color:#854d0e;background:#fef9c3;border-color:#eab308}.calendar-item.color-4{color:#9a3412;background:#ffedd5;border-color:#f97316}.calendar-item.color-5{color:#86198f;background:#fae8ff;border-color:#d946ef}.calendar-item-title{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.calendar-item-sub{opacity:.8;font-size:.7rem}@media (max-width:850px){.calendar-grid{grid-template-columns:60px repeat(5,1fr);min-width:600px}}.calendar-scroll-wrap{width:100%;overflow-x:auto}.cal-day-full{display:inline}.cal-day-short{display:none}@media (max-width:640px){.cal-day-full{display:none}.cal-day-short{display:inline}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.cal-detail-modal{background:#fff;border-radius:1rem;width:90%;max-width:420px;animation:.25s ease-out slideUp;overflow:hidden;box-shadow:0 20px 50px #0003}.cal-detail-header{justify-content:space-between;align-items:center;gap:.5rem;padding:1.25rem 1.25rem 1rem;display:flex}.cal-detail-body{flex-direction:column;gap:.75rem;padding:.75rem 1.25rem 1rem;display:flex}.cal-detail-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:.6rem;align-items:flex-start;gap:.85rem;padding:.65rem .85rem;display:flex}.cal-detail-icon{flex-shrink:0;font-size:1.2rem;line-height:1.4}.cal-detail-label{text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:.15rem;font-size:.7rem;font-weight:600}.cal-detail-value{color:#0f172a;font-size:.95rem;font-weight:600}.cal-detail-footer{padding:.75rem 1.25rem 1.25rem}@media (max-width:768px){.card .data-table-wrap,.card [style*=overflow-x]{border-radius:var(--radius-sm)}.card>div>table,.card>div>div>table{-webkit-overflow-scrolling:touch;min-width:480px;display:block;overflow-x:auto}.data-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.animate-fade-in .card table.data-table{-webkit-overflow-scrolling:touch;min-width:400px;display:block;overflow-x:auto}.cal-detail-modal{width:95%}}
