.app-container{font-family:Arial,sans-serif;height:100vh}.sidebar{padding:20px}.sidebar h2{font-size:22px}.sidebar-nav{flex-grow:1}.sidebar-nav a{color:#fff;display:block;padding:10px 0;text-decoration:none;transition:background-color .3s}.sidebar-nav a.active,.sidebar-nav a:hover{background-color:#34495e;border-radius:5px}.logout-button{border-radius:5px;padding:10px;transition:background-color .3s}.main-content{background-color:#ecf0f1;flex:1 1;padding:20px}.sidebar{box-shadow:2px 0 5px #0000001a;color:#ecf0f1;height:100%;justify-content:flex-start;left:0;padding:20px 15px;top:0;width:260px}.sidebar h2{color:#ecf0f1;font-size:24px;margin-bottom:20px;text-align:center}.sidebar nav{flex-grow:1}.sidebar nav a{border-radius:4px;color:#ecf0f1;display:block;font-size:16px;padding:12px 20px;text-decoration:none;transition:background-color .3s ease}.sidebar nav a.active-link,.sidebar nav a:hover{background-color:#1abc9c}.logout-button{align-self:center;background-color:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;margin-top:40px;padding:12px 20px;text-align:center;transition:background-color .3s ease;width:80%}.logout-button:hover{background-color:#c0392b}.accordion-button{background:none;border:none;color:#fff!important;cursor:pointer;font-size:16px;padding:10px;text-align:left;width:100%}.accordion-content{display:flex;flex-direction:column;padding-left:20px}.header-image{display:block;height:auto;margin:0 auto;width:50%}.login-container{align-items:center;background:linear-gradient(135deg,#ecf0f1,#bdc3c7);display:flex;height:100vh;justify-content:center}.login-card{background-color:#fff;border-radius:8px;box-shadow:0 8px 16px #00000026;padding:30px;text-align:center;width:320px}.login-card h2{color:#2c3e50;margin-bottom:20px}.login-form{align-items:center;display:flex;flex-direction:column}.login-form button,.login-form input{border:1px solid #bdc3c7;border-radius:4px;box-sizing:border-box;font-size:16px;margin:10px 0;max-width:280px;padding:12px;width:100%}.login-form input:focus{border-color:#3498db;outline:none}.login-form button{background-color:#3498db;border:none;color:#fff;cursor:pointer;transition:background-color .3s ease}.login-form button:hover{background-color:#2980b9}.error-message{color:#e74c3c;font-size:14px;margin-top:15px}.page-content{background-color:#f8f9fa;box-sizing:border-box;display:block;margin-left:250px;min-height:100vh;padding:20px;width:calc(100% - 250px)}.page-title{color:#2c3e50;font-size:28px;font-weight:700}.card,.page-title{margin-bottom:20px}.card{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px;transition:transform .3s ease,box-shadow .3s ease}.card:hover{box-shadow:0 4px 8px #0003;transform:translateY(-5px)}.button{background-color:#3498db;border-radius:5px;color:#fff;cursor:pointer;display:inline-block;font-size:16px;padding:10px 20px;text-align:center;text-decoration:none;transition:background-color .3s ease,transform .2s ease}.button:hover{background-color:#2980b9;transform:scale(1.05)}.create-button{border-radius:4px;padding:10px}.delete-button{background-color:#e74c3c;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;margin-left:10px;padding:5px 10px;transition:background-color .3s ease,transform .2s ease}.delete-button:hover{background-color:#c0392b;transform:scale(1.05)}.flex-container{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:20px}.flex-container>div{background-color:#ecf0f1;border-radius:8px;flex:1 1;padding:20px;transition:background-color .3s ease,transform .2s ease}.flex-container>div:hover{background-color:#dcdde1;transform:translateY(-3px)}.chart-container{animation:fadeIn .8s ease-in;background:#fff;border:1px solid #ddd;border-radius:8px;height:400px;margin:20px auto;position:relative}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.data-table,.table{background-color:#fff;border-collapse:collapse;margin-top:15px;width:100%}.data-table td,.data-table th,.table td,.table th{border:1px solid #ddd;font-size:14px;padding:12px 10px;text-align:center}.data-table th,.table th{background-color:#2c3e50;color:#fff;font-weight:700}.data-table tr:hover td,.table tr:hover td{background-color:#ecf0f1}.form-group input,.form-group select{box-sizing:border-box;max-width:400px;padding:8px;width:100%}.students-table{margin-top:10px}.students-table td,.students-table th{border:1px solid #ddd;font-size:.75em;padding:4px;transition:background-color .3s ease}.students-table th{background-color:#f5f5f5}.students-table tr:hover td{background-color:#ecf0f1}.students-table td:last-child,.students-table th:last-child{background-color:#d1ecf1;color:#0c5460;font-weight:700}.students-table tfoot tr{background-color:#f5f5f5}.top-table{border-collapse:collapse;margin-top:10px;width:100%}.top-table td,.top-table th{border:1px solid #ddd;font-size:14px;padding:8px;text-align:center;transition:background-color .3s ease}.top-table th{background-color:#34495e;color:#fff;cursor:pointer}.top-table tr:hover td{background-color:#ecf0f1}input[type=text],select{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px;transition:border-color .3s ease}input[type=text]:focus,select:focus{border-color:#3498db;outline:none}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:24px;margin:10px auto;width:24px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.loading-container{align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background-color:#ffffff80;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.charts-row{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-around;margin-bottom:20px}.charts-row .chart-container{flex:1 1;height:600px;margin:0;min-width:300px}.matriculas-container{background:#fff;border-radius:10px;box-shadow:0 4px 8px #0000001a;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin:30px auto;max-width:1200px;padding:20px}.matriculas-container h1{color:#34495e;font-size:32px;margin-bottom:30px;text-align:center}.matriculas-container .filters{display:flex;flex-wrap:wrap;gap:15px;justify-content:center;margin-bottom:30px}.matriculas-container .filter{display:flex;flex-direction:column}.matriculas-container .filter label{color:#2c3e50;font-weight:700;margin-bottom:5px}.matriculas-container .filter input[type=text],.matriculas-container .filter select{border:1px solid #bdc3c7;border-radius:5px;outline:none;padding:8px 10px;transition:border-color .3s ease}.matriculas-container .filter input[type=text]:focus,.matriculas-container .filter select:focus{border-color:#3498db}.students-table{border-collapse:collapse;margin-bottom:30px;width:100%}.students-table td,.students-table th{border:1px solid #ecf0f1;font-size:14px;padding:10px;text-align:center}.students-table th{background-color:#34495e;color:#fff;cursor:pointer}.students-table tbody tr:nth-child(2n){background-color:#f9f9f9}.students-table tfoot tr{background-color:#ecf0f1;font-weight:700}.charts-dual-container{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;justify-content:center}.chart-container{background:#fdfdfd;border:1px solid #ecf0f1;border-radius:10px;box-shadow:0 2px 4px #0000001a;max-width:600px;padding:15px}.ausentismo-chronica{margin-top:30px;text-align:center}.ausentismo-chronica .filter{display:inline-block;margin-bottom:15px}.ausentismo-summary-container{display:flex;justify-content:center;margin-top:20px}.ausentismo-summary-box{background:#fdfdfd;border:1px solid #ecf0f1;border-radius:10px;box-shadow:0 2px 4px #0000001a;margin:0 10px;min-width:250px;padding:15px}.ranking-table{border-collapse:collapse;margin-top:20px;width:100%}.ranking-table td,.ranking-table th{border:1px solid #ecf0f1;font-size:14px;padding:10px;text-align:center}.ranking-table th{background-color:#2c3e50;color:#fff}.ranking-table tbody tr:nth-child(2n){background-color:#f9f9f9}.ranking-annual,.ranking-monthly{margin-top:30px}.create-button{background-color:#1abc9c;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;padding:12px 20px;transition:background-color .3s ease,transform .2s ease}.create-button:hover{background-color:#16a085;transform:scale(1.05)}@media (max-width:768px){.charts-dual-container{flex-direction:column}}.fluidez-table{font-size:.8rem;margin-top:1rem}.fluidez-table th{background-color:#f0f0f0}.filters-container{align-items:center;display:flex;gap:1rem}.filters-container .filter{display:flex;flex-direction:column}.export-csv-button{margin-top:1rem}.cargausuarios-page-content{padding:20px}.cargausuarios-page-title{margin-bottom:20px}.cargausuarios-row-of-cards{display:flex;gap:20px;margin-bottom:20px}.cargausuarios-card{background-color:#fff;border:1px solid #ddd;border-radius:6px;flex:1 1;padding:20px}.cargausuarios-user-form button,.cargausuarios-user-form input,.cargausuarios-user-form select{display:block;margin-bottom:10px}.cargausuarios-password-container{position:relative}.cargausuarios-show-password-button{margin-left:5px}.cargausuarios-user-table{border-collapse:collapse;width:100%}.cargausuarios-user-table td,.cargausuarios-user-table th{border:1px solid #ddd;padding:8px;text-align:left}.cargausuarios-user-table th{background-color:#f4f4f4;cursor:pointer}.cargausuarios-delete-button,.cargausuarios-reset-button{margin-right:10px}.cargausuarios-csv-upload,.cargausuarios-download-csv-button{display:block;margin-right:10px;margin-top:10px}.cargausuarios-message{color:#666;font-weight:700;margin:10px 0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.attendance-low{background-color:#e74c3c!important;color:#fff!important;font-weight:700!important}.attendance-medium{background-color:#f39c12!important}.attendance-high,.attendance-medium{color:#000!important;font-weight:700!important}.attendance-high{background-color:#bdc3c7!important}.data-table{background-color:#fff}.data-table td,.data-table th{font-size:14px;padding:12px 8px}.data-table tr:nth-child(2n){background-color:#f9f9f9}.data-table tr:hover{background-color:#f1f1f1}.card{overflow-x:auto}.user-form .form-group input,.user-form .form-group select{box-sizing:border-box;display:block;max-width:500px;width:100%}.data-table{border-collapse:collapse;margin-top:15px;width:100%}.data-table td,.data-table th{border:1px solid #ddd;padding:12px;text-align:left}.data-table th{background-color:#2c3e50;color:#fff}.asistencia-table-container{overflow-x:visible;width:100%!important}.asistencia-custom-table{min-width:auto;table-layout:auto;width:100%!important}.asistencia-custom-table th{background-color:#2c3e50!important;color:#fff!important;font-size:14px!important;padding:12px 15px!important}.asistencia-custom-table td,.asistencia-custom-table th{border:1px solid #dee2e6!important;text-align:center!important}.asistencia-custom-table td{color:#333!important;font-size:13px!important;padding:10px 15px!important}.asistencia-custom-table tr:nth-child(2n){background-color:#f8f9fa!important}.asistencia-custom-table tr:hover{background-color:#e9ecef!important}.card-full-width{display:flex;flex-direction:column;max-width:none!important;min-width:0;width:100%!important}.atrasos-container{color:#333;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;margin:0 auto;max-width:1200px;padding:20px}h1,h2{color:#34495e;text-align:center}.filters{display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:20px}.filter-item{flex:1 1 30%;margin:10px}.filter-item label{display:block;font-weight:700;margin-bottom:5px}.filter-item input,.filter-item select{border:1px solid #ddd;border-radius:4px;padding:8px;width:100%}.table-container{margin:20px 0;overflow-x:auto}.atrasos-table{border-collapse:collapse;margin-top:10px;width:100%}.atrasos-table td,.atrasos-table th{border:1px solid #ddd;padding:12px;text-align:left}.atrasos-table th{background-color:#2c3e50;color:#fff}.atrasos-table tr:nth-child(2n){background-color:#f9f9f9}.atrasos-table tr:hover{background-color:#f1f1f1}.chart-container{margin:30px auto;width:100%}.export-btn-container{margin-top:20px;text-align:center}.export-btn{background-color:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:16px;padding:12px 20px;transition:background-color .3s ease}.export-btn:hover{background-color:#218838}.chart-container canvas{max-width:100%!important}.section-container{border:1px solid #eee;border-radius:4px;margin-bottom:20px;padding:10px}.atrasos-accordion{margin-bottom:20px}.atrasos-accordion-item{border:1px solid #ddd;border-radius:4px;margin-bottom:10px;overflow:hidden}.atrasos-accordion-header{align-items:center;background-color:#f7f7f7;cursor:pointer;display:flex;justify-content:space-between;padding:10px 15px}.atrasos-accordion-header h2{color:#34495e;font-size:18px;margin:0}.atrasos-accordion-icon{color:#34495e;font-size:24px;font-weight:700}.atrasos-accordion-content{background-color:#fff;border-top:1px solid #ddd;padding:10px 15px}.fluidez-container{align-items:center;background:#f8f9fa;box-sizing:border-box;display:flex;height:80px;justify-content:center;left:300px;position:fixed;top:0;width:calc(100vw - 350px);z-index:10}.fluidez-title{color:#2c3e50;font-size:28px;font-weight:700}.fluidez-controls{align-items:flex-end;background:#fff;display:flex;gap:1rem;margin-top:100px;padding:0 20px}.fluidez-controls .filter{display:flex;flex-direction:column}.fluidez-controls label{font-weight:700;margin-bottom:4px}.fluidez-content{margin-top:1rem;padding:20px}.fluidez-content .card{box-sizing:border-box;margin-bottom:20px;width:100%}.fluidez-table{border-collapse:collapse;table-layout:fixed;width:100%}.fluidez-table td,.fluidez-table th{border:1px solid #ccc;overflow:hidden;padding:5px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.fluidez-table th{background:#f0f0f0;font-weight:700}.csv-actions{display:flex;gap:1rem;margin-top:1rem;padding:0 20px}.resumen-fluidez .filtros-resumen{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem}.resumen-fluidez .filtro{display:flex;flex-direction:column}.resumen-table{border-collapse:collapse;font-size:.9rem;margin-top:1rem;width:100%}.resumen-table td,.resumen-table th{border:1px solid #ccc;padding:8px;text-align:center}.resumen-table th{background-color:#f0f0f0;font-weight:700}.chart-container{margin:1rem auto;max-width:400px}.categorias-container{display:flex;justify-content:space-between;margin-top:1rem}.categoria-column{flex:1 1;margin:0 .5rem}.categoria-column h6{margin-bottom:.5rem;text-align:center}.categoria-column ul{list-style:none;padding:0}.categorias-table{border-collapse:collapse;margin-top:1rem;width:100%}.categorias-table td,.categorias-table th{border:1px solid #ddd;padding:.5rem;vertical-align:top}.categorias-table th{background-color:#f2f2f2;text-align:center}.categorias-table ul{list-style:none;margin:0;padding-left:0}.chart-row{align-items:flex-start;display:flex;gap:20px;justify-content:space-around}.chart-container{flex:1 1;min-width:300px}.student-profile{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;font-family:Segoe UI,sans-serif;margin:2rem auto;max-width:600px;padding:1.5rem}.student-profile h2{color:#333;font-size:1.8rem;margin-bottom:1rem;text-align:center}.student-profile .message{background:#e3fcef;border:1px solid #4caf50;border-radius:4px;color:#256029;margin-bottom:1rem;padding:.75rem;text-align:center}.password-form,.profile-form{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr;margin-bottom:2rem}.password-form label,.profile-form label{color:#555;font-weight:600}.password-form input,.profile-form input{border:1px solid #ccc;border-radius:4px;font-size:1rem;padding:.5rem .75rem}.profile-form input:disabled{background:#f5f5f5;cursor:not-allowed}.password-form button,.profile-form button{background:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;margin-top:.5rem;padding:.6rem 1rem}.password-form button:hover,.profile-form button:hover{background:#0056b3}.student-profile h3{color:#333;font-size:1.4rem;margin-bottom:1rem;margin-top:2rem}@media (max-width:480px){.student-profile{margin:1rem;padding:1rem}.student-profile h2{font-size:1.5rem}}.electivos-page{background:#fdfdfd;border-radius:8px;box-shadow:0 2px 8px #0000001a;font-family:sans-serif;margin:2rem auto;max-width:800px;padding:1.5rem}.electivos-page h2{color:#333;margin-bottom:.5rem;text-align:center}.nomenclatura{background:#eef6ff;border-left:4px solid #4a90e2;border-radius:4px;color:#555;line-height:1.4;margin-bottom:1.25rem;padding:.75rem 1rem}.message{background:#fff4e5;border:1px solid #ffcc80;color:#663c00}form{display:flex;flex-direction:column;gap:1.5rem}.bloque-group{grid-gap:1rem 2rem;display:grid;gap:1rem 2rem;grid-template-columns:1fr 1fr}.bloque-titulo{color:#4a4a4a;font-weight:700;grid-column:span 2;margin-bottom:.25rem}.bloque-group label{color:#333;display:block;font-size:.9rem;margin-bottom:.25rem}.bloque-group select{appearance:none;background:#fff;border:1px solid #ccc;border-radius:4px;font-size:1rem;padding:.5rem;width:100%}.btn-guardar{background:#4a90e2;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;justify-self:center;padding:.75rem 2rem;transition:background .2s ease}.btn-guardar:hover{background:#357ab8}.message{margin:1rem 0}.message.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.message.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.admin-container{margin:0 auto;max-width:900px;padding:1rem}.admin-message{background:#e1f3d8;border:1px solid #c3e6a2;border-radius:4px;color:#2d582f;margin-bottom:1rem;padding:.75rem 1rem}.admin-section{margin-bottom:2rem}.admin-table{border-collapse:collapse;margin-bottom:1.5rem;width:100%}.admin-table td,.admin-table th{border-bottom:1px solid #eee;padding:.5rem .75rem;text-align:left}.admin-table th{background:#f7f7f7}.actions-cell .btn-icon{background:none;border:none;cursor:pointer;font-size:1.1rem;margin-right:.5rem}.actions-cell .btn-icon.delete{color:#c62828}.btn-icon{background:none;border:none;cursor:pointer;font-size:1.1rem;margin-right:.5rem}.btn-icon.delete{color:#c00}.card{background:#fff;border-radius:6px;box-shadow:0 2px 6px #0000001a;margin:1rem 0;max-width:400px;overflow:hidden}.card-header{background:#f5f5f5;color:#333;font-size:1rem;font-weight:700;padding:.6rem 1rem}.card-body{padding:.75rem}.admin-form{gap:.5rem}.admin-form,.admin-form label{display:flex;flex-direction:column}.admin-form label{color:#444;font-size:.9rem}.admin-form input,.admin-form select{border:1px solid #ccc;border-radius:4px;box-sizing:border-box;font-size:.9rem;line-height:1.2;margin-top:.25rem;padding:.4rem;width:100%}.admin-form button.btn-primary{align-self:flex-start;background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.95rem;padding:.5rem 1rem}.admin-form button.btn-primary:hover{background-color:#0069d9}.modal-overlay{align-items:center;background:#0006;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:6px;box-shadow:0 4px 8px #0003;padding:1rem 1.5rem;width:320px}.modal h3{font-size:1.1rem;margin-top:0}.modal input{font-size:.9rem;margin-bottom:1rem;margin-top:.5rem;padding:.5rem;width:100%}.modal-buttons{display:flex;gap:.5rem;justify-content:flex-end}.modal-buttons button{background:#f5f5f5;border:1px solid #ccc;border-radius:4px;cursor:pointer;padding:.4rem .8rem}.modal-buttons button:hover{background:#eaeaea}.panel-control{margin:0 auto;max-width:900px;padding:1.5rem}.panel-control h1{margin-bottom:1rem}.message{background:#e0f7e9;border-radius:4px;color:#2e7d32;margin:.5rem 0;padding:.75rem}.toggle-section{margin-bottom:2rem;text-align:center}.btn-toggle{border:none;border-radius:4px;cursor:pointer;font-size:1rem;padding:.75rem 1.5rem}.btn-toggle.on{background:#2e7d32;color:#fff}.btn-toggle.off{background:#c62828;color:#fff}.stats-section h2{margin-bottom:.5rem}.stats-section label{font-weight:700;margin-right:.5rem}.stats-section select{font-size:1rem;margin-bottom:1rem;padding:.4rem}.stats-table{border-collapse:collapse;margin-bottom:1rem;width:100%}.stats-table td,.stats-table th{border:1px solid #ddd;padding:.5rem .75rem;text-align:left}.stats-table th{background:#f4f4f4}.export-buttons{display:flex;gap:1rem}.btn-export{background:#1565c0;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.95rem;padding:.6rem 1.2rem}.details-section{margin-top:2rem}.details-table{border-collapse:collapse;margin-top:.5rem;width:100%}.details-table td,.details-table th{border:1px solid #ddd;padding:.5rem .75rem;text-align:left}.details-table th{background:#f4f4f4}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}.dashboard-content{background-color:#ecf0f1;margin-left:250px;min-height:100vh;padding:20px}.app-layout,.sidebar{display:flex;height:100vh}.sidebar{background-color:#2c3e50;color:#fff;flex-direction:column;justify-content:space-between;position:fixed;width:250px}.content{background-color:#ecf0f1;flex-grow:1;margin-left:250px;overflow-y:auto;padding:20px}.app-container{display:flex}.main-content{box-sizing:border-box;margin-left:260px;overflow-y:auto;padding:40px;width:calc(100% - 260px)}body{background-color:#f4f7f9;font-family:Roboto,sans-serif;margin:0;padding:0}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.c2a96c87.css.map*/