@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@300;400;500;600;700&display=swap');

:root {
    --primary-color: #4F46E5;
    --primary-hover: #4338CA;
    --bg-color: #F3F4F6;
    --card-bg: #FFFFFF;
    --text-main: #1F2937;
    --text-muted: #6B7280;
    --border-color: #E5E7EB;
    --success: #10B981;
}

* { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Quicksand', sans-serif; }

body { background-color: var(--bg-color); color: var(--text-main); min-height: 100vh; display: flex; flex-direction: column; align-items: center; }

.container { width: 100%; max-width: 1000px; padding: 20px; }
h1, h2, h3 { font-weight: 700; margin-bottom: 15px; }

.card { background: var(--card-bg); border-radius: 16px; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05); padding: 30px; margin-bottom: 25px; animation: fadeIn 0.4s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

.form-group { margin-bottom: 20px; }
.form-group label { display: block; margin-bottom: 8px; font-weight: 600; font-size: 0.9rem; color: var(--text-muted); }
.form-group input, .form-group select, .form-group textarea { width: 100%; padding: 12px 15px; border: 2px solid var(--border-color); border-radius: 10px; font-size: 1rem; outline: none; transition: 0.3s; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--primary-color); }

button { background-color: var(--primary-color); color: white; border: none; padding: 12px 24px; border-radius: 10px; font-size: 1rem; font-weight: 600; cursor: pointer; width: 100%; transition: 0.3s; }
button:hover { background-color: var(--primary-hover); transform: translateY(-1px); }
button.logout { background-color: #EF4444; width: auto; }
button.logout:hover { background-color: #DC2626; }

header { display: flex; justify-content: space-between; align-items: center; padding: 20px 0; border-bottom: 2px solid var(--border-color); margin-bottom: 30px; }
.user-badge { background: #E0E7FF; color: var(--primary-color); padding: 8px 15px; border-radius: 20px; font-weight: 600; }

table { width: 100%; border-collapse: collapse; margin-top: 15px; }
th, td { padding: 15px; text-align: left; border-bottom: 1px solid var(--border-color); }
th { background-color: #F9FAFB; font-weight: 600; color: var(--text-muted); }
.grade-badge { background-color: var(--success); color: white; padding: 5px 10px; border-radius: 8px; font-weight: 700; }

.admin-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 768px) { .admin-grid { grid-template-columns: 1fr; } }