*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#f5f5f5;color:#333}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-form{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 10px 25px #0000001a;width:100%;max-width:400px;text-align:center}.login-form h1{font-size:2.5rem;margin-bottom:.5rem;color:#667eea}.login-form h2{font-size:1.2rem;margin-bottom:2rem;color:#666}.login-form input{width:100%;padding:1rem;margin-bottom:1rem;border:1px solid #ddd;border-radius:5px;font-size:1rem}.login-form button{width:100%;padding:1rem;background:#667eea;color:#fff;border:none;border-radius:5px;font-size:1rem;cursor:pointer;transition:background .3s}.login-form button:hover{background:#5a6fd8}.login-form button:disabled{background:#ccc;cursor:not-allowed}.app{display:grid;grid-template-areas:"header header" "sidebar content";grid-template-columns:250px 1fr;grid-template-rows:60px 1fr;min-height:100vh}.header{grid-area:header;background:#2c3e50;color:#fff;display:flex;justify-content:space-between;align-items:center;padding:0 2rem}.header h1{font-size:1.5rem}.logout-btn{background:#e74c3c;color:#fff;border:none;padding:.5rem 1rem;border-radius:5px;cursor:pointer;transition:background .3s}.logout-btn:hover{background:#c0392b}.sidebar{grid-area:sidebar;background:#34495e;padding:1rem 0}.sidebar button{width:100%;padding:1rem 1.5rem;background:none;color:#bdc3c7;border:none;text-align:left;cursor:pointer;transition:all .3s;font-size:1rem}.sidebar button:hover{background:#3c5a78;color:#fff}.sidebar button.active{background:#3498db;color:#fff}.content{grid-area:content;padding:2rem;overflow-y:auto}.loading{text-align:center;padding:2rem;font-size:1.2rem;color:#666}.dashboard h2{margin-bottom:2rem;color:#2c3e50}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:#fff;padding:1.5rem;border-radius:10px;box-shadow:0 2px 10px #0000001a;text-align:center}.stat-card h3,.stat-card h4{color:#666;font-size:.9rem;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.5px}.stat-number{font-size:2.5rem;font-weight:700;color:#3498db;margin:0}.alerts{background:#fff;padding:1.5rem;border-radius:10px;box-shadow:0 2px 10px #0000001a}.alerts h3{margin-bottom:1rem;color:#e74c3c}.alert-item{padding:.5rem 0;border-bottom:1px solid #eee}.alert-item:last-child{border-bottom:none}.cursos,.asignaturas,.notas,.asistencia,.horarios,.reportes{background:#fff;padding:2rem;border-radius:10px;box-shadow:0 2px 10px #0000001a}.cursos h2,.asignaturas h2,.notas h2,.asistencia h2,.horarios h2,.reportes h2{margin-bottom:2rem;color:#2c3e50}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse;margin-top:1rem}th,td{padding:1rem;text-align:left;border-bottom:1px solid #eee}th{background:#f8f9fa;font-weight:600;color:#2c3e50}tr:hover{background:#f8f9fa}.asignaturas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.asignatura-card{background:#fff;padding:1.5rem;border-radius:10px;box-shadow:0 2px 10px #0000001a}.asignatura-card h3{margin-bottom:1rem;color:#2c3e50}.asignatura-card p{margin-bottom:.5rem;color:#666}.nota-aprobada{color:#27ae60;font-weight:700}.nota-reprobada{color:#e74c3c;font-weight:700}.estado-presente{color:#27ae60;font-weight:700}.estado-ausente{color:#e74c3c;font-weight:700}.estado-tardanza{color:#f39c12;font-weight:700}.reporte-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #eee}.reporte-section:last-child{border-bottom:none}.reporte-section h3{margin-bottom:1rem;color:#2c3e50}.reporte-section p{margin-bottom:.5rem;color:#666}@media (max-width: 768px){.app{grid-template-areas:"header" "sidebar" "content";grid-template-columns:1fr;grid-template-rows:60px auto 1fr}.sidebar{display:flex;overflow-x:auto;padding:.5rem}.sidebar button{white-space:nowrap;padding:.5rem 1rem}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.asignaturas-grid{grid-template-columns:1fr}}
