:root{--color-bg:#f0f2f5;--color-text:#333;--color-primary:#008040;--color-primary-dark:#063;--color-secondary:#6c757d;--color-secondary-dark:#5a6268;--color-danger:#dc3545;--color-danger-dark:#bd2130;--color-surface:#fff;--color-border:#ccc;--color-border-light:#e1e5ea}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f0f2f5;background-color:var(--color-bg);color:#333;color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}button,input[type=button],input[type=submit]{align-items:center;background-color:#008040;background-color:var(--color-primary);border:none;border-radius:4px;color:#fff;color:var(--color-surface);cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:.4rem;padding:.5rem 1rem;text-decoration:none;transition:background-color .2s,box-shadow .2s}@media (hover:hover){button:hover,input[type=button]:hover,input[type=submit]:hover{background-color:#063;background-color:var(--color-primary-dark);box-shadow:0 2px 6px #0003}}button.secondary,input[type=button].secondary,input[type=submit].secondary{background-color:#6c757d;background-color:var(--color-secondary)}@media (hover:hover){button.secondary:hover,input[type=button].secondary:hover,input[type=submit].secondary:hover{background-color:#5a6268;background-color:var(--color-secondary-dark)}}button.danger,input[type=button].danger,input[type=submit].danger{background-color:#dc3545;background-color:var(--color-danger)}@media (hover:hover){button.danger:hover,input[type=button].danger:hover,input[type=submit].danger:hover{background-color:#bd2130;background-color:var(--color-danger-dark)}}button>svg,input[type=button]>svg,input[type=submit]>svg{height:1em;vertical-align:middle;width:1em}.login-container{align-items:center;background-color:#f0f2f5;background-color:var(--color-bg);justify-content:center;min-height:100dvh;padding:1.5rem 1rem}.login-container,.login-container form{box-sizing:border-box;display:flex;flex-direction:column}.login-container form{background:#fff;background:var(--color-surface);border-radius:12px;box-shadow:0 10px 25px #00000014;gap:.8rem;margin:1.2rem auto;max-width:320px;padding:1.5rem 2rem;text-align:left;width:100%}.login-container label{color:#444;display:flex;flex-direction:column;font-size:.9rem;font-weight:600;letter-spacing:.01em}.login-container input{border:1px solid #ddd;border-radius:6px;box-sizing:border-box;font-size:1rem;margin-top:.4rem;outline:none;padding:.7rem .9rem;transition:border-color .2s,box-shadow .2s;width:100%}.login-container input:focus{border-color:#008040;border-color:var(--color-primary);box-shadow:0 0 0 3px #0080401a}.login-container button[type=submit]{border-radius:6px;font-size:1rem;font-weight:600;justify-content:center;margin:.8rem auto 0;padding:.7rem 2.3rem;width:auto}.dashboard{display:flex;height:100vh}.sidebar{background-color:#2c3e50;box-sizing:border-box;color:#ecf0f1;flex:0 0 210px;overflow-y:auto;padding:3rem 1rem 1rem;position:relative;scrollbar-width:none;z-index:1000}.sidebar::-webkit-scrollbar{display:none}.sidebar nav a{align-items:center;border-radius:4px;color:inherit;display:flex;padding:.5rem .75rem;text-decoration:none;transition:background-color .2s}@media (hover:hover){.sidebar nav a.active,.sidebar nav a:hover{background-color:#ffffff1a}}.sidebar nav a.active{background-color:#ffffff1a}.dashboard-content{background-color:#f0f2f5;background-color:var(--color-bg);flex-grow:1;overflow-y:auto;padding:1.5rem}.hamburger{background:#2c3e50;border:none;border-radius:4px;left:-.1rem;padding:.5rem;position:fixed;top:2.2rem;z-index:500}.close-sidebar,.hamburger{color:#ecf0f1;display:none}.close-sidebar{background:none;border:none;cursor:pointer;font-size:1.5rem;position:absolute;right:1rem;top:.5rem}@media (max-width:768px){.sidebar{height:100%;left:-220px;position:fixed;top:0;transition:left .3s ease;width:220px}.sidebar.open{left:0}.close-sidebar,.hamburger{display:block}.dashboard-content{padding-top:0}}.table{background:#fff;background:var(--color-surface);border-collapse:collapse;margin-bottom:2rem;width:100%}.table td,.table th{border:1px solid #e1e5ea;border:1px solid var(--color-border-light);padding:.75rem 1rem;text-align:left;vertical-align:top}.table th{background:#f5f7fa;font-weight:600}.table tbody tr:nth-child(2n){background:#fcfcfd}.form-container{background:#fff;background:var(--color-surface);border-radius:6px;box-shadow:0 2px 8px #0000000d;margin-bottom:2rem;max-width:600px;padding:1.5rem;width:100%}.form-container label{color:#333;color:var(--color-text);display:block;font-weight:600;margin-bottom:.5rem}.form-container input,.form-container select,.form-container textarea{border:1px solid #ccc;border:1px solid var(--color-border);border-radius:4px;font-size:1rem;margin-bottom:1rem;padding:.6rem;width:100%}.form-container .error{color:#dc3545;color:var(--color-danger);font-size:.9rem;margin-bottom:1rem}.students-list{display:flex;flex-direction:column;gap:12px;margin-top:16px}.student-card{align-items:center;background:#fff;background:var(--color-surface);border:1px solid #ddd;border-radius:8px;box-shadow:0 1px 4px #0000001a;display:flex;padding:12px}.student-index{font-weight:700;margin-right:12px;text-align:right;width:24px}.student-name{font-weight:700;margin-right:8px}.student-subname{color:#555;font-size:.9em}.student-actions{display:flex;gap:8px;margin-left:auto}.timetable td:first-child,.timetable th:first-child{text-align:center!important}@media (max-width:600px){.timetable .name{display:none}.timetable td,.timetable th{font-size:.7rem!important;padding:4px!important}.timetable th:first-child{white-space:nowrap}.timetable td strong,.timetable th:first-child{font-size:.75rem!important}.timetable+button{font-size:.8rem!important;padding:.4rem .8rem!important}.timetable td strong{display:inline-block!important;max-width:3.5em!important;white-space:normal!important;word-break:break-word!important}}.timetable td:first-child,.timetable th:first-child{width:1%}.timetable{table-layout:fixed;width:100%}.timetable td:first-child,.timetable th:first-child{min-width:max-content;white-space:nowrap;width:auto}.timetable td:nth-child(n+2),.timetable th:nth-child(n+2){width:20%}.timetable td,.timetable th{text-align:center}.student-header{margin:.5rem 0}.student-header .section{display:inline;margin-left:.5rem}@media (max-width:576px){.student-header .section{display:block;margin-left:0;margin-top:.5rem}}.page-header{font-size:1.5rem;font-weight:700;margin:.5rem 0}.page-section{font-size:1.25rem;font-weight:400;margin:.25rem 0 1rem}.premium-table-card{background:#fff;background:var(--color-surface);border:1px solid #e1e5ea;border:1px solid var(--color-border-light);border-radius:12px;box-shadow:0 4px 20px #0000000f;margin-bottom:2rem;overflow:hidden}.docentes-table{border:none!important;border-collapse:initial;border-spacing:0}.docentes-table th{background:#f8fafc!important;border:none!important;border-bottom:1px solid #e2e8f0!important;color:#64748b!important;font-size:.75rem!important;letter-spacing:.05em!important;padding:16px!important;text-transform:uppercase!important}.docentes-table td{border:none!important;border-bottom:1px solid #f1f5f9!important;padding:16px!important;vertical-align:middle!important}.docentes-table tr:last-child td{border-bottom:none!important}.docentes-table tbody tr{transition:background-color .2s ease}.docentes-table tbody tr:hover{background-color:#f8fafc!important}.docentes-table .row-disabled{opacity:.7}.attendance-history-table{display:block}.attendance-history-mobile{display:none}@media (max-width:600px){.attendance-history-table{display:none}.attendance-history-mobile{display:block}}.striped-table{border-collapse:collapse;width:100%}.striped-table td,.striped-table th{border:1px solid #e1e5ea;border:1px solid var(--color-border-light);padding:8px;text-align:center}.striped-table tbody tr:nth-child(odd){background-color:#f8f9fa}.striped-table tbody tr:nth-child(2n){background-color:#e9ecef}.attendance-list{display:none}.attendance-table{display:block}@media (max-width:600px){.attendance-table{display:none}.attendance-list{display:block}}.attendance-list{list-style-type:none;padding-left:0}@media (max-width:600px){.report-controls{flex-direction:column}.report-controls>*{display:block;margin-bottom:8px;width:100%}}.view-controls{display:flex;gap:8px}.view-controls>button{text-align:center}.view-controls>button:disabled{cursor:not-allowed;opacity:.6}@media (max-width:600px){.view-controls>button{flex:1 1;text-align:center}}.report-controls{display:flex;flex-wrap:wrap;gap:8px}@media (max-width:600px){.report-controls>*{display:block;margin-bottom:8px;width:100%}}.report-controls>button{text-align:center}.back-button{align-items:center;background:#008040!important;background:var(--color-primary)!important;border:none!important;border-radius:4px!important;color:#fff!important;color:var(--color-surface)!important;cursor:pointer;display:inline-flex;font-size:.9rem!important;font-weight:500!important;gap:.4rem;margin-bottom:24px;padding:.5rem 1rem!important;transition:all .2s ease}@media (hover:hover){.back-button:hover{background:#063!important;background:var(--color-primary-dark)!important;transform:translateX(-2px)}}.page-header-container{display:flex;flex-direction:column;margin-bottom:24px}.page-header-container h2{color:#212529;font-size:1.6rem;font-weight:700;margin-bottom:8px;margin-top:0}.page-header-container .header-subtitle{color:#444;font-size:1.2rem;font-weight:600;margin:0}.page-header-container .header-counter{align-items:center;color:#666;display:flex;font-size:1rem;font-weight:500;gap:6px;margin-top:6px}@media (max-width:700px){.dashboard-content{position:relative}.page-header-container h2{font-size:1.25rem!important}.page-header-container .header-subtitle{font-size:1.05rem!important}.back-button{background:#f1f3f5!important;border:1px solid #dee2e6!important;color:#495057!important;font-size:.9rem!important;margin-bottom:12px;padding:6px 12px!important}@media (hover:hover){.back-button:hover{background:#e9ecef!important}}.page-header-container{margin-bottom:16px}}.attendance-list li button{align-self:center;flex-shrink:0;height:48px!important;min-height:48px!important;padding:0 12px!important;white-space:nowrap}.attendance-list li{align-items:center!important;box-sizing:border-box!important;display:flex!important;height:80px!important;padding:16px!important}.attendance-list li>div{align-items:center;display:flex;justify-content:space-between;width:100%}body,html{height:100%;margin:0}.docentes-table{border-collapse:collapse;width:100%}@media (max-width:700px){.docentes-table,.docentes-table tbody,.docentes-table thead,.docentes-table tr{display:block;width:100%}.docentes-table thead{display:none}.docente-row{background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 2px 8px #0000000a;display:block;margin-bottom:18px;padding:0 0 8px}.docente-row td{border:none;border-bottom:0;display:block;font-size:1em;padding:10px 14px 0;position:relative;text-align:left;width:100%}.docente-row td[data-label]:before{color:#555;content:attr(data-label) ": ";display:block;font-size:.98em;font-weight:700;margin-bottom:2px}.acciones-botones{display:flex;flex-direction:column;gap:8px;margin-bottom:2px;margin-top:7px}}.gestion-docentes-table td[data-label=Acciones]{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-start;padding-bottom:8px;padding-top:8px}@media (max-width:600px){.gestion-docentes-table td[data-label=Acciones]{flex-wrap:wrap;gap:8px;max-width:100vw}.gestion-docentes-table button{flex:1 1 45%;font-size:.95rem;margin-bottom:4px;max-width:100%;min-width:100px}}@media (max-width:768px){.back-button{display:none!important}}.hamburger{align-items:center;display:flex;font-size:24px;height:32px;justify-content:center;width:32px}.fab-back-button{display:none}@media (max-width:768px){.fab-back-button{align-items:center;background-color:#2c3e50;border:none;border-radius:10%;bottom:auto;box-shadow:0 2px 6px #0000004d;color:#fff;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;left:-.1rem;position:fixed;top:5.2rem;transition:background-color .2s;width:32px;z-index:1000}.fab-back-button:active{background-color:#1a242d}@media (hover:hover){.fab-back-button:hover{background-color:#34495e}}}.gestion-docentes-container{box-sizing:border-box;padding:16px}.btn-add{margin-bottom:.75rem}.form-usuario{margin-top:.75rem}.gestion-docentes-table .acciones-botones button{align-items:center;display:inline-flex;justify-content:center}@media (min-width:1024px){.gestion-docentes-table .acciones-botones button+button{margin-left:.5rem}.gestion-docentes-container{margin:0 auto;max-width:1200px}.gestion-docentes-table{width:100%}.gestion-docentes-table td,.gestion-docentes-table th{text-align:center}.gestion-docentes-table .docentes-table{table-layout:auto;width:100%}.gestion-docentes-table .docentes-table td:nth-child(5),.gestion-docentes-table .docentes-table th:nth-child(5){white-space:nowrap}.gestion-docentes-table .acciones-botones{display:flex;flex-wrap:nowrap;gap:.5rem;justify-content:center}.gestion-docentes-table .docentes-table td,.gestion-docentes-table .docentes-table th{text-align:center;vertical-align:middle}}@media (max-width:600px){.file-upload-container,.institutional-class-form{display:flex!important;flex-direction:column!important;gap:8px!important}.file-upload-container input[type=file],.file-upload-container label,.institutional-class-form button,.institutional-class-form input{box-sizing:border-box;margin-bottom:8px!important;width:100%!important}}@media (min-width:601px){.institutional-class-form{align-items:center!important;display:flex!important;gap:12px!important}}.resumen-panel{box-sizing:border-box;margin:0 auto;max-width:1200px;padding:16px}@media (max-width:700px){.resumen-panel{padding-left:56px;padding-right:12px}}.institutional-card{background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 1px 4px #0000001a;padding:12px}.main-footer,footer{border-top:none!important}.ag-header-cell.asistencia-header-center,.ag-header-cell.asistencia-header-center .ag-header-cell-label{align-items:center;display:flex;justify-content:center;padding:0!important}.ag-header-cell.asistencia-header-center .ag-header-cell-label{font-size:11px!important;font-weight:700;line-height:1.15!important;min-height:32px!important;text-align:center;width:100%}.resumen-institucional-table .ag-header-cell,.resumen-institucional-table .ag-header-cell-label{font-size:12px;font-weight:700}.resumen-institucional-table .ag-cell.ag-cell-last-left-pinned,.resumen-institucional-table .ag-header-cell.ag-header-cell-last-left-pinned{background:#fff!important;z-index:3!important}.resumen-institucional-table .ag-header-cell{padding-bottom:0!important;padding-top:0!important}.resumen-institucional-table .ag-header{border-bottom:1px solid #d2d6de!important}@media (max-width:700px){.institutional-card{box-sizing:border-box;margin-left:0!important;margin-right:0!important;max-width:100%!important}}@media (max-width:600px){.attendance-history-mobile .institutional-card{border:1px solid #ddd!important;border-radius:8px!important;box-shadow:0 1px 4px #0000001c!important;margin-bottom:0!important;min-height:65px!important;padding:12px 10px!important}.attendance-history-mobile .institutional-card button{align-items:center;border-radius:6px;display:flex;flex-direction:column;font-size:1.11em!important;min-height:36px;min-width:36px;padding:4px 5px!important}.attendance-history-mobile .label-action-btn{color:#fff;display:block;font-size:10px;font-weight:600;letter-spacing:.02em;line-height:1.15;margin-top:1.5px;pointer-events:none;text-align:center}}.attendance-history-table td:last-child{padding:12px 8px}.attendance-history-table td:last-child>button{margin-right:8px}.attendance-history-table td:last-child>button:last-child{margin-right:0}.premium-card{background:#fff;background:var(--color-surface);border:1px solid #0000000d;border-radius:12px;box-shadow:0 4px 20px #00000014;margin:0 auto;max-width:100%;padding:24px}.premium-input{background-color:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;box-sizing:border-box;font-size:.95rem;padding:10px 14px;transition:all .2s ease;width:100%}.premium-input:focus{background-color:#fff;border-color:#008040;border-color:var(--color-primary);box-shadow:0 0 0 3px #0080401a;outline:none}.premium-label{color:#444;display:block;font-size:.9rem;font-weight:600;margin-bottom:6px}.premium-value{color:#222;font-size:1.05rem;margin-bottom:16px;padding-left:2px}.spinner{animation:spin 1s linear infinite;border:5px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:50px;margin-bottom:20px;width:50px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.modal-overlay{align-items:center;animation:fadeIn .3s forwards;background:#00000080;display:flex;height:100%;justify-content:center;left:0;opacity:0;position:fixed;top:0;width:100%;z-index:1000}@keyframes fadeIn{to{opacity:1}}.modal-content{background-color:#2d2e39;border-radius:8px;box-shadow:0 8px 16px #0006;color:#fff;max-width:400px;padding:24px;width:90%}.modal-title{font-size:1.25rem;margin:0 0 12px}.modal-body{font-size:1rem;line-height:1.4}.modal-footer{display:flex;justify-content:flex-end;margin-top:20px}.btn-cancel{background:#0000;border:1px solid #bbb;border-radius:4px;color:#ddd}.btn-cancel,.btn-confirm{cursor:pointer;font-size:.9rem;padding:8px 16px}.btn-confirm{background:#6b5dd3;border:none;border-radius:4px;color:#fff;margin-left:8px;transition:opacity .2s,background .2s}.btn-confirm:disabled{background:#4a4b5a;color:#888;cursor:not-allowed;opacity:.7}.btn-cancel:hover{background:#ffffff1a}.btn-confirm:hover{opacity:.9}button[title="Editar favoritos"]{border:0!important;display:none!important;height:0!important;margin:0!important;padding:0!important;visibility:hidden!important;width:0!important}.audit-table tbody tr:nth-child(2n){background:#fafafa}.audit-table tbody tr:hover{background:#f1f7ed}.audit-table th{background:#f6f7f9;font-weight:700}
/*# sourceMappingURL=main.6ad6f905.css.map*/