@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg-color:#f0f4f8;--surface-color:#fff;--surface-hover:#f8fafc;--sidebar-bg:#0f172a;--text-primary:#1e293b;--text-secondary:#64748b;--text-tertiary:#94a3b8;--border-color:#e2e8f0;--primary-color:#0f172a;--primary-hover:#1e293b;--accent-color:#10b981;--accent-hover:#059669;--danger-color:#ef4444;--warning-color:#f59e0b;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #0000000d, 0 4px 6px -4px #0000000d;--font-sans:"Inter", system-ui, sans-serif;--transition:all .2s ease-in-out}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-color);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn{cursor:pointer;transition:var(--transition);border:1px solid #0000;border-radius:.375rem;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-flex}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-hover);box-shadow:var(--shadow-sm)}.btn-outline{border-color:var(--border-color);color:var(--text-primary);background-color:#0000}.btn-outline:hover{background-color:var(--surface-hover)}.btn-success{background-color:var(--accent-color);color:#fff}.btn-success:hover{background-color:var(--accent-hover)}.btn-danger{background-color:var(--danger-color);color:#fff}.card{background-color:var(--surface-color);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);border-radius:.75rem;padding:1.5rem}.table-wrapper{background-color:var(--surface-color);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);border-radius:.75rem;width:100%;overflow:hidden}table{border-collapse:collapse;text-align:left;width:100%}th{background-color:var(--surface-hover);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);border-bottom:1px solid var(--border-color);padding:.75rem 1.5rem;font-size:.75rem;font-weight:600}td{color:var(--text-primary);border-bottom:1px solid var(--border-color);vertical-align:middle;padding:1rem 1.5rem;font-size:.875rem}tr:last-child td{border-bottom:none}tr:hover td{background-color:var(--surface-hover)}.form-group{margin-bottom:1rem}.form-label{color:var(--text-secondary);margin-bottom:.25rem;font-size:.875rem;font-weight:500;display:block}.form-input,.form-select{border:1px solid var(--border-color);width:100%;color:var(--text-primary);background-color:var(--surface-color);transition:var(--transition);border-radius:.375rem;padding:.5rem .75rem;font-size:.875rem}.form-input:focus,.form-select:focus{border-color:var(--primary-color);box-shadow:0 0 0 1px var(--primary-color);outline:none}.nav-item.active{color:#fff;background-color:#ffffff1a;border-right:3px solid #3b82f6}.badge{border-radius:9999px;align-items:center;padding:.125rem .625rem;font-size:.75rem;font-weight:500;display:inline-flex}.badge-success{color:#065f46;background-color:#d1fae5}.badge-danger{color:#991b1b;background-color:#fee2e2}.badge-warning{color:#92400e;background-color:#fef3c7}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#0f172a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background-color:var(--surface-color);box-shadow:var(--shadow-lg);border-radius:.75rem;width:100%;max-width:32rem;max-height:90vh;padding:1.5rem;overflow-y:auto}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.w-full{width:100%}.h-full{height:100%}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width>=768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:w-56{width:14rem}}@media (width>=1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=1280px){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.h-48{height:12rem}.object-cover{object-fit:cover}.overflow-hidden{overflow:hidden}.relative{position:relative}.absolute{position:absolute}.inset-0{inset:0}.admin-layout{width:100vw;height:100vh;display:flex;overflow:hidden}.sidebar{background-color:var(--sidebar-bg);border-right:1px solid var(--border-color);z-index:10;flex-direction:column;width:260px;transition:width .3s;display:flex}.sidebar.collapsed{width:80px}.sidebar-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;height:72px;padding:1.5rem;display:flex}.sidebar-logo{color:#e2e8f0;white-space:nowrap;text-overflow:ellipsis;font-size:1.25rem;font-weight:600;overflow:hidden}.sidebar-nav{flex:1;padding:1rem 0;overflow-y:auto}.nav-item{color:#cbd5e1;transition:var(--transition);align-items:center;gap:1rem;padding:.875rem 1.5rem;font-weight:400;text-decoration:none;display:flex}.nav-item:hover{color:#f8fafc;background-color:#ffffff0d}.nav-item.active{color:#f8fafc;background-color:#ffffff1a;border-right:3px solid #3b82f6;font-weight:500}.nav-icon{flex-shrink:0}.nav-text{white-space:nowrap;transition:opacity .2s}.sidebar.collapsed .nav-text{display:none}.main-wrapper{background-color:var(--bg-color);flex-direction:column;flex:1;display:flex;overflow:hidden}.top-header{background-color:var(--surface-color);border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;height:72px;padding:0 2rem;display:flex}.search-bar{background-color:var(--surface-hover);border:1px solid var(--border-color);border-radius:.5rem;align-items:center;width:300px;padding:.5rem 1rem;display:flex}.search-bar input{background:0 0;border:none;outline:none;width:100%;margin-left:.5rem;font-size:.875rem}.header-actions{align-items:center;gap:1.5rem;display:flex}.notification-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;position:relative}.notification-btn:hover{color:var(--primary-color)}.notification-dot{background-color:var(--danger-color);border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-2px}.profile-dropdown{cursor:pointer;align-items:center;gap:.75rem;display:flex}.profile-avatar{background-color:var(--primary-color);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:.875rem;font-weight:600;display:flex}.profile-info{flex-direction:column;display:flex}.profile-name{color:var(--text-primary);font-size:.875rem;font-weight:600}.profile-role{color:var(--text-secondary);font-size:.75rem}.main-content{flex:1;padding:2rem;overflow-y:auto}.page-header{justify-content:space-between;align-items:center;margin-bottom:2rem;display:flex}.page-title{color:var(--primary-color);font-size:1.5rem;font-weight:700}.page-subtitle{color:var(--text-secondary);margin-top:.25rem;font-size:.875rem}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.5rem;display:grid}.metric-card{align-items:center;gap:1.5rem;padding:1.5rem;display:flex}.metric-icon{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.metric-content{flex-direction:column;display:flex}.metric-label{color:var(--text-secondary);margin-bottom:.25rem;font-size:.875rem;font-weight:500}.metric-value{color:var(--text-primary);margin:0;font-size:1.5rem;font-weight:700}.section-title{color:var(--text-primary);margin-bottom:1rem;font-size:1.125rem;font-weight:600}.actions-flex{flex-wrap:wrap;gap:1rem;display:flex}.btn-lg{background-color:var(--surface-color);padding:.75rem 1.5rem;font-size:1rem}.btn-primary.btn-lg{background-color:var(--primary-color)}.filters-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:center;gap:1rem;display:grid}.student-thumb{border:1px solid var(--border-color);background-color:#e2e8f0;border-radius:50%;width:40px;height:40px}.profile-modal{max-width:56rem}.col-span-2{grid-column:span 2/span 2}.mx-auto{margin-left:auto;margin-right:auto}.text-center{text-align:center}.font-bold{font-weight:700}.text-lg{font-size:1.125rem}.text-sm{font-size:.875rem}.text-secondary{color:var(--text-secondary)}.profile-photo-large{width:120px;height:120px;box-shadow:var(--shadow-md);background-color:#e2e8f0;border:4px solid #fff;border-radius:50%}.document-card{background-color:var(--surface-color);border:1px solid var(--border-color);text-align:center;color:var(--primary-color);cursor:pointer;transition:var(--transition);border-radius:.5rem;padding:1rem;font-size:.875rem}.document-card:hover{border-color:var(--primary-color);background-color:#f1f5f9}.switch{width:44px;height:24px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background-color:var(--danger-color);transition:all .4s;position:absolute;inset:0}.slider:before{content:"";background-color:#fff;width:18px;height:18px;transition:all .4s;position:absolute;bottom:3px;left:3px}input:checked+.slider{background-color:var(--accent-color)}input:focus+.slider{box-shadow:0 0 1px var(--accent-color)}input:checked+.slider:before{transform:translate(20px)}.slider.round{border-radius:24px}.slider.round:before{border-radius:50%}.toolbar{background-color:var(--surface-color);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:.75rem;align-items:center;padding:1rem 1.5rem;display:flex}.side-panel{background-color:var(--surface-color);z-index:100;flex-direction:column;width:100vw;height:100vh;transition:right .3s ease-in-out;display:flex;position:fixed;top:0;right:-100vw;box-shadow:-4px 0 15px #0000000d}.side-panel.open{right:0}.panel-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.panel-content{flex:1;padding:1.5rem;overflow-y:auto}.panel-backdrop{z-index:90;background-color:#0f172a33;width:100vw;height:100vh;position:fixed;top:0;left:0}.student-list{padding:0;list-style:none}.student-list li{border-bottom:1px solid var(--border-color);padding:.75rem 0;font-size:.875rem}
