@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=DM+Serif+Display:ital@0;1&family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap";:root{--font-serif:"DM Serif Display", serif;--font-sans:"DM Sans", sans-serif;--font-mono:"DM Mono", monospace;--bg-color:#fdfcf9;--text-color:#2c3e50;--accent-blue:#1a5276;--accent-red:#c0392b;--border-color:#e5e7e9;--card-shadow:0 4px 6px #0000000d}body{font-family:var(--font-sans);background-color:var(--bg-color);color:var(--text-color);margin:0;line-height:1.6}h1,h2,h3{font-family:var(--font-serif);font-weight:400}.dashboard-container{max-width:1200px;margin:0 auto;padding:2rem}.login-card{border:1px solid var(--border-color);max-width:400px;box-shadow:var(--card-shadow);background:#fff;border-radius:8px;margin:100px auto;padding:2.5rem}.input-group{margin-bottom:1.5rem}.input-group label{margin-bottom:.5rem;font-size:.9rem;font-weight:500;display:block}input{border:1px solid var(--border-color);width:100%;font-family:var(--font-mono);box-sizing:border-box;border-radius:4px;padding:.8rem}button{background-color:var(--accent-blue);color:#fff;width:100%;font-family:var(--font-sans);cursor:pointer;border:none;border-radius:4px;padding:1rem;font-weight:600;transition:opacity .2s}button:hover{opacity:.9}select{border:1px solid var(--border-color);width:100%;font-family:var(--font-mono);color:var(--text-color);background:#fff;border-radius:6px;padding:.75rem}.class-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-top:2rem;display:grid}.class-card{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;padding:1.5rem;transition:transform .2s}.class-card:hover{box-shadow:var(--card-shadow);transform:translateY(-4px)}.filter-bar{border:1px solid var(--border-color);background:#faf8f3;border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;margin:1rem 0 1.5rem;padding:1rem;display:grid}.filter-field{color:#566573;flex-direction:column;gap:.35rem;font-size:.8rem;display:flex}.filter-field span{font-weight:600}.filter-reset{width:auto;color:var(--text-color);background:#ecf0f1;align-self:end;padding:.75rem 1rem}
