*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}.container{max-width:1200px;margin:0 auto;padding:20px}.btn{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block}.btn-primary{background-color:#2563eb;color:#fff}.btn-primary:hover{background-color:#1d4ed8}.btn-danger{background-color:#dc2626;color:#fff}.btn-danger:hover{background-color:#b91c1c}.btn-success{background-color:#16a34a;color:#fff}.btn-success:hover{background-color:#15803d}.btn-warning{background-color:#f59e0b;color:#fff}.btn-warning:hover{background-color:#d97706}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-primary)}.btn-secondary:hover{background-color:var(--border-primary)}.light-theme{--bg-primary: #f8fafc;--bg-secondary: #f8f9fa;--bg-tertiary: #e9ecef;--text-primary: #1e293b;--text-secondary: #6c757d;--text-tertiary: #495057;--border-primary: #dee2e6;--border-secondary: #e9ecef;--shadow: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--card-bg: #ffffff;--input-bg: #ffffff;--input-border: #ced4da;--input-focus: #007bff}.dark-theme{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-tertiary: #3a3a3a;--text-primary: #ffffff;--text-secondary: #b8b8b8;--text-tertiary: #8a8a8a;--border-primary: #404040;--border-secondary: #555555;--shadow: 0 4px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .4);--card-bg: #2d2d2d;--input-bg: #3a3a3a;--input-border: #555555;--input-focus: #0d7bf7}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease}.App{background-color:var(--bg-primary);min-height:100vh}.card{background-color:var(--card-bg);border:1px solid var(--border-primary);border-radius:8px;padding:20px;margin-bottom:20px;box-shadow:var(--shadow)}.card-header{border-bottom:1px solid var(--border-primary);padding-bottom:15px;margin-bottom:20px}.card-title{color:var(--text-primary);margin:0;font-size:1.5rem;font-weight:600}.form-group{margin-bottom:1rem}.form-label{display:block;margin-bottom:.5rem;color:var(--text-primary);font-weight:500}.form-control{width:100%;padding:.75rem;border:1px solid var(--input-border);border-radius:4px;background-color:var(--input-bg);color:var(--text-primary);font-size:1rem}.form-control:focus{outline:none;border-color:var(--input-focus);box-shadow:0 0 0 2px #0d7bf740}.table{width:100%;border-collapse:collapse;background-color:var(--card-bg);border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}.table th,.table td{padding:12px 15px;text-align:left;border-bottom:1px solid var(--border-primary)}.table th{background-color:var(--bg-secondary);color:var(--text-primary);font-weight:600;text-transform:uppercase;font-size:.875rem;letter-spacing:.5px}.table td{color:var(--text-primary)}.table tr:hover{background-color:var(--bg-secondary)}.table tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.badge-success{background-color:#16a34a;color:#fff}.badge-danger{background-color:#dc2626;color:#fff}.badge-warning{background-color:#f59e0b;color:#1a1a1a}.badge-info{background-color:#3b82f6;color:#fff}.badge-secondary{background-color:var(--bg-tertiary);color:var(--text-primary)}.grid{display:grid;gap:20px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.flex{display:flex}.flex-column{flex-direction:column}.flex-wrap{flex-wrap:wrap}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.align-center{align-items:center}.gap-10{gap:10px}.gap-20{gap:20px}.text-center{text-align:center}.text-right{text-align:right}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.font-bold{font-weight:600}.font-semibold{font-weight:500}.mt-10{margin-top:10px}.mt-20{margin-top:20px}.mt-30{margin-top:30px}.mb-10{margin-bottom:10px}.mb-20{margin-bottom:20px}.mb-30{margin-bottom:30px}.ml-10{margin-left:10px}.mr-10{margin-right:10px}.p-10{padding:10px}.p-20{padding:20px}.p-30{padding:30px}.loading{display:inline-block;width:20px;height:20px;border:3px solid var(--border-primary);border-radius:50%;border-top-color:#3498db;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 768px){.container{padding:10px}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.table{font-size:.875rem}.table th,.table td{padding:8px 10px}.card{padding:15px}.btn{padding:.6rem 1.2rem;font-size:.875rem}}@media print{.btn,.no-print{display:none!important}.card{box-shadow:none;border:1px solid #ccc}}.student-table{background-color:var(--card-bg)!important;color:var(--text-primary)!important}.student-table th{background-color:var(--bg-secondary)!important;color:var(--text-primary)!important}.student-table td{color:var(--text-primary)!important;border-bottom:1px solid var(--border-primary)!important}
