.main-layout{display:flex;height:100vh;overflow:hidden}.sidebar{background-color:#2c3e50;color:#fff;width:250px;transition:width .3s ease;display:flex;flex-direction:column;justify-content:space-between;padding:20px 0;box-shadow:2px 0 5px #0003}.sidebar.collapsed{width:25px}.sidebar-header{font-size:1.8em;font-weight:700;text-align:center;padding-bottom:20px;position:relative;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:font-size .3s ease,padding .3s ease}.sidebar.collapsed .sidebar-header{font-size:1.2em;padding:10px 0}.sidebar-nav a{display:block;padding:10px 20px;color:#fff;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background-color .2s ease,padding .3s ease}.sidebar-nav a:hover{background-color:#34495e}.sidebar.collapsed .sidebar-nav a{font-size:0;padding:10px 0;text-align:center}.sidebar-footer{padding:20px;text-align:center;overflow:hidden}.sidebar-footer button{background-color:#e74c3c;color:#fff;border:none;padding:10px 15px;border-radius:5px;cursor:pointer;transition:background-color .2s ease,padding .3s ease,width .3s ease,height .3s ease,border-radius .3s ease;white-space:nowrap;overflow:hidden}.sidebar-footer button:hover{background-color:#c0392b}.sidebar.collapsed .sidebar-footer button{font-size:0;width:50px;height:50px;padding:0;border-radius:50%;margin:0 auto;display:flex;justify-content:center;align-items:center}.content-area{flex-grow:1;padding:20px;overflow-y:auto;background-color:#f8f9fa;transition:margin-left .3s ease;margin-left:0}.gestion-usuarios-container{max-width:1200px;margin:2rem auto;padding:2rem;background-color:#f4f7f6;border-radius:8px;box-shadow:0 4px 10px #0000001a;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;color:#333}.gestion-usuarios-title{text-align:center;color:#2c3e50;margin-bottom:2rem;font-size:2.2rem;border-bottom:2px solid #3498db;padding-bottom:.5rem}.card{background-color:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 2px 5px #0000000d}.card h3{color:#34495e;margin-top:0;margin-bottom:1rem;font-size:1.5rem;border-bottom:1px dashed #dcdcdc;padding-bottom:.5rem}.message-feedback{padding:.8rem 1.2rem;margin-bottom:1.5rem;border-radius:5px;font-weight:700;text-align:center;transition:all .3s ease}.message-feedback.success{background-color:#d4edda;color:#155724;border-color:#c3e6cb}.message-feedback.error{background-color:#f8d7da;color:#721c24;border-color:#f5c6cb}.message-feedback.info{background-color:#d1ecf1;color:#0c5460;border-color:#bee5eb}.new-user-form .form-group{margin-bottom:1rem}.new-user-form label{display:block;margin-bottom:.5rem;font-weight:600;color:#555}.new-user-form input[type=text],.new-user-form input[type=password],.new-user-form select{width:calc(100% - 20px);padding:.8rem 10px;margin-bottom:.5rem;border:1px solid #ccc;border-radius:5px;font-size:1rem;box-sizing:border-box}.new-user-form input[type=text]:focus,.new-user-form input[type=password]:focus,.new-user-form select:focus{border-color:#3498db;outline:none;box-shadow:0 0 5px #3498db80}.create-user-button{background-color:#28a745;color:#fff;padding:.8rem 1.5rem;border:none;border-radius:5px;cursor:pointer;font-size:1rem;transition:background-color .3s ease;width:100%}.create-user-button:hover:not(:disabled){background-color:#218838}.create-user-button:disabled{background-color:#ccc;cursor:not-allowed}.users-count-card .user-count{font-size:1.8rem;font-weight:700;text-align:center;color:#2980b9;margin:1rem 0}.users-table-container{overflow-x:auto}.users-list-card table{width:100%;border-collapse:collapse;margin-top:1rem}.users-list-card th,.users-list-card td{border:1px solid #ddd;padding:.8rem;text-align:left;vertical-align:middle}.users-list-card th{background-color:#3498db;color:#fff;font-weight:600;white-space:nowrap}.users-list-card tr:nth-child(2n){background-color:#f9f9f9}.users-list-card tr:hover{background-color:#f1f1f1}.users-list-card td input[type=text],.users-list-card td select{width:calc(100% - 16px);padding:.5rem 8px;border:1px solid #ccc;border-radius:4px;font-size:.9rem;box-sizing:border-box}.users-list-card td input[type=checkbox]{transform:scale(1.2);margin-left:5px}.actions-column{white-space:nowrap;min-width:250px}.actions-column button{padding:.6rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;margin-right:.5rem;transition:background-color .2s ease,transform .1s ease}.actions-column button:last-child{margin-right:0}.edit-button{background-color:#007bff;color:#fff}.edit-button:hover{background-color:#0056b3;transform:translateY(-1px)}.save-button{background-color:#28a745;color:#fff}.save-button:hover:not(:disabled){background-color:#218838;transform:translateY(-1px)}.cancel-button{background-color:#6c757d;color:#fff}.cancel-button:hover:not(:disabled){background-color:#5a6268;transform:translateY(-1px)}.delete-button{background-color:#dc3545;color:#fff}.delete-button:hover{background-color:#c82333;transform:translateY(-1px)}.toggle-status-button{color:#fff}.toggle-status-button-active{background-color:#dc3545}.toggle-status-button-active:hover{background-color:#c82333;transform:translateY(-1px)}.toggle-status-button-inactive{background-color:#28a745}.toggle-status-button-inactive:hover{background-color:#218838;transform:translateY(-1px)}.actions-column button:disabled{background-color:#ccc;cursor:not-allowed;transform:none}@media (max-width: 768px){.gestion-usuarios-container{padding:1rem;margin:1rem auto}.gestion-usuarios-title{font-size:1.8rem}.card{padding:1rem}.users-list-card table,.users-list-card thead,.users-list-card tbody,.users-list-card th,.users-list-card td,.users-list-card tr{display:block}.users-list-card thead tr{position:absolute;top:-9999px;left:-9999px}.users-list-card tr{border:1px solid #ddd;margin-bottom:.8rem}.users-list-card td{border:none;border-bottom:1px solid #eee;position:relative;padding-left:50%;text-align:right}.users-list-card td:before{content:attr(data-label);position:absolute;left:6px;width:45%;padding-right:10px;white-space:nowrap;text-align:left;font-weight:700}.users-list-card td:nth-of-type(1):before{content:"ID:"}.users-list-card td:nth-of-type(2):before{content:"Usuario:"}.users-list-card td:nth-of-type(3):before{content:"Rol:"}.users-list-card td:nth-of-type(4):before{content:"Activo:"}.users-list-card td:nth-of-type(5):before{content:"Creado En:"}.users-list-card td:nth-of-type(6):before{content:"Actualizado En:"}.users-list-card td:nth-of-type(7):before{content:"Acciones:"}.actions-column{text-align:center;padding-top:1rem;padding-bottom:.5rem}.actions-column button{display:block;width:calc(100% - 1rem);margin:.5rem auto}}@media (max-width: 480px){.gestion-usuarios-title{font-size:1.5rem}.new-user-form input,.new-user-form select,.create-user-button{padding:.7rem;font-size:.95rem}.actions-column button{padding:.5rem .8rem;font-size:.85rem}}:root{--color-primary-blue: #0056b3;--color-secondary-blue: #007bff;--color-dark-blue: #1a3a5e;--color-light-blue-bg: #eef4f8;--color-border-light: #c0d0e0;--color-text-dark: #34495e;--color-text-medium: #5a6268;--color-success: #28a745;--color-error: #dc3545;--color-white: #ffffff;--color-light-gray: #f8fbfd;--color-medium-gray: #e9ecef}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.gestion-docente-page-container{padding:40px;background-color:var(--color-light-blue-bg);min-height:calc(100vh - 80px);box-sizing:border-box;display:flex;flex-direction:column;gap:30px}.main-page-title{margin-top:0;margin-bottom:30px;font-size:2.5em;color:var(--color-dark-blue);text-align:center;font-weight:700;letter-spacing:1px;text-transform:uppercase}.page-feedback-message{text-align:center;padding:15px 20px;border-radius:8px;font-size:1.1em;font-weight:600;margin-bottom:20px;box-shadow:0 2px 8px #00000014}.generar-docente-container{background-color:var(--color-white);padding:30px;border-radius:8px;box-shadow:0 6px 20px #00000014}.generar-docente-title{margin-top:0;margin-bottom:30px;font-size:2em;color:var(--color-dark-blue);text-align:center;font-weight:700;border-bottom:2px solid var(--color-primary-blue);padding-bottom:15px;letter-spacing:.5px}.generar-docente-form{display:grid;grid-template-columns:auto 1fr;gap:20px 25px;max-width:600px;margin:0 auto}.generar-docente-form .form-group{display:contents}.generar-docente-form label{grid-column:1;text-align:right;padding-right:20px;font-weight:600;color:var(--color-text-dark);white-space:nowrap;font-size:1.05em}.generar-docente-form input[type=text],.generar-docente-form input[type=number],.generar-docente-form select{grid-column:2;width:100%;padding:12px 15px;border:1px solid var(--color-border-light);border-radius:6px;font-size:1em;box-sizing:border-box;background-color:var(--color-light-gray);transition:border-color .3s ease,box-shadow .3s ease;outline:none}.generar-docente-form input[type=text]:focus,.generar-docente-form input[type=number]:focus,.generar-docente-form select:focus{border-color:var(--color-secondary-blue);box-shadow:0 0 0 3px #007bff33}.generar-docente-form select{padding-right:15px}.add-docente-button{grid-column:1 / span 2;justify-self:center;width:100%;max-width:300px;margin-top:10px;padding:14px 30px;background-color:var(--color-primary-blue);color:var(--color-white);border:none;border-radius:6px;font-size:1.1em;font-weight:700;cursor:pointer;transition:background-color .3s ease,transform .2s ease;box-shadow:0 4px 12px #0056b34d;min-width:unset}.add-docente-button:hover{background-color:var(--color-secondary-blue);transform:translateY(-2px);box-shadow:0 6px 16px #0056b366}.add-docente-button:active{transform:translateY(0);box-shadow:0 2px 6px #0056b34d}.add-docente-button:disabled{background-color:#ccc;cursor:not-allowed;box-shadow:none;transform:none}.add-docente-message{grid-column:1 / span 2;text-align:center;margin-top:15px;padding:10px;border-radius:6px;font-size:.95em;font-weight:500}.add-docente-message.success{color:var(--color-success);background-color:#e6ffed;border:1px solid #b3e0b3}.add-docente-message.error{color:var(--color-error);background-color:#ffe6e6;border:1px solid #e0b3b3}.administrar-docente-container{background-color:var(--color-white);padding:30px;border-radius:8px;box-shadow:0 6px 20px #00000014}.administrar-docente-title{margin-top:0;margin-bottom:30px;font-size:2em;color:var(--color-dark-blue);text-align:center;font-weight:700;border-bottom:2px solid var(--color-primary-blue);padding-bottom:15px;letter-spacing:.5px}.refresh-button{padding:12px 25px;background-color:var(--color-secondary-blue);color:var(--color-white);border:none;border-radius:6px;font-size:1em;font-weight:700;cursor:pointer;transition:background-color .3s ease,transform .2s ease;box-shadow:0 2px 8px #007bff33;display:block;margin:0 auto 30px}.refresh-button:hover{background-color:var(--color-primary-blue);transform:translateY(-1px);box-shadow:0 4px 10px #007bff4d}.refresh-button:disabled{background-color:#ccc;cursor:not-allowed;box-shadow:none;transform:none}.docentes-table-container{overflow-x:auto}.docentes-table{width:100%;border-collapse:collapse;margin-top:20px}.docentes-table th,.docentes-table td{border:1px solid #e0e0e0;padding:14px 18px;text-align:left;font-size:.95em;vertical-align:middle}.docentes-table th{background-color:var(--color-medium-gray);color:var(--color-dark-blue);font-weight:700;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.docentes-table tbody tr:nth-child(2n){background-color:var(--color-light-gray)}.docentes-table tbody tr:hover{background-color:#e0f0f8}.estado-badge{padding:5px 10px;border-radius:15px;font-size:.85em;font-weight:700;display:inline-block;text-align:center;min-width:70px}.estado-activo{background-color:var(--color-success)}.estado-inactivo{background-color:var(--color-error)}.toggle-status-button{padding:8px 12px;border:none;border-radius:4px;font-size:.85em;font-weight:700;cursor:pointer;transition:background-color .3s ease,transform .2s ease;box-shadow:0 1px 4px #0000001a;white-space:nowrap}.toggle-status-button.activo{background-color:var(--color-error);color:var(--color-white)}.toggle-status-button.inactivo{background-color:var(--color-success);color:var(--color-white)}.toggle-status-button:hover{transform:translateY(-1px);box-shadow:0 2px 6px #00000026}.loading-message,.error-message{text-align:center;padding:20px;font-size:1.1em;color:var(--color-text-medium)}.error-message{color:var(--color-error);font-weight:700}@media (max-width: 992px){.generar-docente-form{grid-template-columns:1fr;max-width:450px}.generar-docente-form .form-group{display:block}.generar-docente-form label{text-align:left;padding-right:0;margin-bottom:5px;display:block}.generar-docente-form input[type=text],.generar-docente-form input[type=number],.generar-docente-form select{grid-column:unset;width:100%}.add-docente-button{grid-column:unset;max-width:100%}}@media (max-width: 768px){.gestion-docente-page-container{padding:20px}.main-page-title,.generar-docente-title,.administrar-docente-title{font-size:1.8em;padding-bottom:10px}.generar-docente-container,.administrar-docente-container{padding:20px}.docentes-table th,.docentes-table td{padding:10px 12px;font-size:.85em}.toggle-status-button{padding:6px 10px;font-size:.75em}}@media (max-width: 576px){.main-page-title,.generar-docente-title,.administrar-docente-title{font-size:1.5em}.generar-docente-container,.administrar-docente-container{padding:15px}.docentes-table th,.docentes-table td{padding:8px 10px;font-size:.8em}.estado-badge{padding:3px 8px;font-size:.7em;min-width:60px}.toggle-status-button{padding:5px 8px;font-size:.7em}}.asistencia-container{padding:50px 60px;background-color:#fff;box-sizing:border-box;width:100%;border-radius:8px;box-shadow:0 6px 20px #00000014;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;max-width:1200px;margin:30px auto}.asistencia-container .page-title{margin-top:0;margin-bottom:40px;font-size:2.2em;color:#1a3a5e;text-align:center;font-weight:600;border-bottom:1px solid #e0e0e0;padding-bottom:15px;display:none}.view-mode-selector{display:flex;justify-content:center;margin-bottom:30px;gap:15px;padding:15px;background-color:transparent;border-radius:8px}.view-mode-selector button{padding:12px 25px;border:1px solid #d0d0d0;border-radius:6px;font-size:1em;font-weight:700;color:#555;cursor:pointer;background-color:#f7f7f7;transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease;min-width:180px}.view-mode-selector button.active{background-color:#3498db;color:#fff;border-color:#3498db;box-shadow:0 4px 10px #3498db4d}.view-mode-selector button:hover:not(.active){background-color:#e0e0e0;color:#333}.view-mode-selector button.active:hover{background-color:#2980b9}.filtros-asistencia{display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:flex-start;margin-bottom:30px;padding:0 0 20px;background-color:transparent;box-shadow:none;border-bottom:1px solid #e0e0e0}.header-controls{display:flex}.form-group{display:flex;flex-direction:row;align-items:center;gap:10px;min-width:unset;margin-right:20px;flex:1}.form-group label{font-weight:500;color:#34495e;font-size:1em;white-space:nowrap}.form-input{padding:8px 12px;border:1px solid #c0d0e0;border-radius:4px;font-size:1em;box-sizing:border-box;background-color:#fff;transition:border-color .3s ease,box-shadow .3s ease;outline:none;width:auto;min-width:180px;cursor:pointer}.form-input:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db33}.profesor-info-crud{background-color:#fff;padding:20px 0;border-radius:0;margin-bottom:25px;text-align:left;box-shadow:none;border-bottom:1px solid #eee}.profesor-info-crud h3{color:#1a3a5e;font-size:1.6em;margin-top:0;margin-bottom:5px;font-weight:600}.profesor-info-crud p{color:#777;font-size:.9em;margin:0}.asistencia-table-container{overflow-x:auto;margin-top:0;border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 4px 15px #0000000d}.asistencia-table{width:100%;border-collapse:collapse;min-width:800px}.asistencia-table th,.asistencia-table td{padding:12px 10px;text-align:center;border-bottom:1px solid #f0f0f0;vertical-align:middle}.asistencia-table th{background-color:#eaf1f7;color:#1a3a5e;font-weight:600;text-transform:uppercase;font-size:.85em;border-top:1px solid #e0e0e0;white-space:nowrap}.asistencia-table td{color:#444;font-size:.95em}.asistencia-table tbody tr:last-child td{border-bottom:none}.asistencia-table tbody tr:hover{background-color:#f7fbfc}.asistencia-table td:first-child{text-align:left;font-weight:500;color:#34495e;min-width:150px}.hour-input{width:60px;padding:6px 5px;text-align:center;border:1px solid #d0d0d0;border-radius:4px;font-size:.9em;-moz-appearance:textfield}.hour-input::-webkit-outer-spin-button,.hour-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.summary-and-actions-crud{display:flex;justify-content:space-between;align-items:center;margin-top:30px;padding:20px 25px;background-color:#f8fbfd;border-radius:8px;box-shadow:0 2px 8px #0000000d;flex-wrap:wrap;gap:15px}.summary-totals{display:flex;gap:25px;font-size:1.1em;color:#1a3a5e;font-weight:600;flex-wrap:wrap}.summary-totals span{white-space:nowrap}.button{padding:12px 25px;border:none;border-radius:6px;font-size:1.05em;font-weight:700;color:#fff;cursor:pointer;transition:background-color .3s ease,transform .2s ease,box-shadow .3s ease;min-width:150px}.button:disabled{background-color:#ccc;cursor:not-allowed;box-shadow:none;transform:none}.message{padding:15px 20px;border-radius:6px;margin-top:20px;text-align:center;font-weight:700;border:1px solid;animation:fadeIn .5s ease-out}.message.success{background-color:#e8f5e9;color:#4caf50;border-color:#c8e6c9}.loading-message{text-align:center;padding:20px;color:#555;font-style:italic;animation:pulse 1.5s infinite alternate}.no-data-message{text-align:center;padding:30px;color:#777;font-style:italic;background-color:#fdfdfd;border-radius:8px;margin-top:20px;border:1px dashed #e0e0e0}@keyframes pulse{0%{opacity:.7}to{opacity:1}}@media (max-width: 900px){.asistencia-container{padding:30px 20px;margin:20px auto}.asistencia-container .page-title{font-size:1.8em;margin-bottom:30px}.view-mode-selector{flex-direction:column;gap:10px;padding:10px}.view-mode-selector button{min-width:unset;width:100%}.filtros-asistencia{flex-direction:column;align-items:stretch;padding:15px 0;border-bottom:none}.form-group{flex-direction:column;align-items:flex-start;min-width:unset;width:100%;margin-right:0}.form-group label{width:100%;text-align:left;margin-bottom:5px}.form-input,.button{width:100%;min-width:unset}.asistencia-table th,.asistencia-table td{padding:10px 15px;font-size:.9em}.asistencia-table{min-width:600px}.summary-and-actions-crud{flex-direction:column;align-items:stretch;padding:15px;gap:20px}.summary-totals{flex-direction:column;gap:10px;text-align:center}}@media (max-width: 600px){.asistencia-container{padding:20px 15px}.asistencia-container .page-title{font-size:1.6em;margin-bottom:25px}.filtros-asistencia{gap:15px;padding:10px 0}.form-input{padding:8px 10px;font-size:.9em}.button{padding:10px 20px;font-size:1em}.hour-input{width:50px;padding:6px 3px;font-size:.85em}.asistencia-table th,.asistencia-table td{padding:8px 10px;font-size:.8em}.summary-totals{font-size:1em}}.movilidad-container{padding:50px 60px;background-color:#fff;box-sizing:border-box;width:100%;border-radius:8px;box-shadow:0 6px 20px #00000014;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.movilidad-container h2{margin-top:0;margin-bottom:40px;font-size:2.2em;color:#1a3a5e;text-align:left;font-weight:600;border-bottom:1px solid #e0e0e0;padding-bottom:15px}.filtros-movilidad{display:flex;flex-wrap:wrap;gap:20px;align-items:center;justify-content:flex-start;margin-bottom:30px;padding:20px;background-color:#f8fbfd;border-radius:8px;box-shadow:inset 0 2px 5px #0000000d}.filtros-movilidad .primary-button{order:2}.filtros-movilidad .secondary-button{order:3;margin-left:auto}.rango-fechas-group{display:flex;align-items:center;gap:10px;order:1}.rango-fechas-group label{font-weight:500;color:#34495e;font-size:.95em;margin-right:5px}.rango-fechas-group span{font-size:1.2em;color:#555;font-weight:700}.date-input{padding:10px 12px;border:1px solid #c0d0e0;border-radius:4px;font-size:1em;box-sizing:border-box;background-color:#fff;transition:border-color .3s ease,box-shadow .3s ease;outline:none;cursor:pointer}.date-input:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db33}.button{padding:12px 25px;border:none;border-radius:6px;font-size:1.05em;font-weight:700;color:#fff;cursor:pointer;transition:background-color .3s ease,transform .2s ease,box-shadow .3s ease;min-width:120px}.primary-button{background-color:#3498db;box-shadow:0 4px 10px #3498db4d}.primary-button:hover{background-color:#2980b9;transform:translateY(-2px);box-shadow:0 6px 14px #3498db66}.primary-button:active{transform:translateY(0);box-shadow:0 2px 6px #3498db4d}.secondary-button{background-color:#6c7a89;box-shadow:0 4px 10px #6c7a894d}.secondary-button:hover{background-color:#586574;transform:translateY(-2px);box-shadow:0 6px 14px #6c7a8966}.secondary-button:active{transform:translateY(0);box-shadow:0 2px 6px #6c7a894d}.movilidad-table-container{margin-top:30px;border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 4px 15px #0000000d;background-color:#fdfdfd}.movilidad-grid-header{display:flex;justify-content:flex-end;padding:10px 20px;background-color:#eaf1f7;border-bottom:1px solid #e0e0e0;border-top-left-radius:8px;border-top-right-radius:8px}.total-label{font-weight:600;color:#1a3a5e;text-transform:uppercase;font-size:.9em}.movilidad-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:1px;background-color:#e0e0e0;padding:1px;border-bottom-left-radius:8px;border-bottom-right-radius:8px}.movilidad-grid-item{background-color:#fff;padding:15px 10px;text-align:center;font-size:1em;color:#333;border:none}.movilidad-grid-item.empty-cell{background-color:#fff}.no-data-message{text-align:center;padding:30px;color:#777;font-style:italic;background-color:#fdfdfd;grid-column:1 / -1}.message{padding:15px 20px;border-radius:6px;margin-top:20px;text-align:center;font-weight:700;border:1px solid}.message.info{background-color:#e0f2f7;color:#2196f3;border-color:#b3e5fc}.message.error{background-color:#ffebee;color:#ef5350;border-color:#ef9a9a}.loading-message{text-align:center;padding:20px;color:#555;font-style:italic}@media (max-width: 900px){.movilidad-container{padding:30px 20px}.filtros-movilidad{flex-direction:column;align-items:stretch}.rango-fechas-group{flex-direction:column;align-items:stretch;width:100%}.rango-fechas-group label{text-align:center;margin-bottom:10px}.date-input{width:100%}.button{width:100%;min-width:unset}.filtros-movilidad .secondary-button{margin-left:0}}@media (max-width: 600px){.movilidad-container h2{font-size:1.8em}.movilidad-grid{grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}}.report-page-container{max-width:900px;margin:2rem auto;padding:2rem;background-color:#fff;border-radius:10px;box-shadow:0 2px 15px #0000001a;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.report-title{text-align:center;color:#2c3e50;margin-bottom:2rem;font-size:1.8rem;font-weight:600;position:relative;padding-bottom:10px}.report-title:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:80px;height:4px;background:linear-gradient(to right,#3498db,#2ecc71);border-radius:2px}.date-range-section{margin-bottom:2rem;padding:1.5rem;background-color:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.section-label{display:block;margin-bottom:.8rem;font-weight:600;color:#4a5568;font-size:1.1rem}.date-inputs{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.date-input-wrapper{position:relative;flex:1;min-width:200px}.date-input{width:100%;padding:.8rem 2.5rem .8rem 1rem;border:1px solid #e2e8f0;border-radius:6px;font-size:1rem;background-color:#fff;transition:all .3s ease}.date-input:focus{border-color:#3498db;outline:none;box-shadow:0 0 0 3px #3498db33}.calendar-icon{position:absolute;right:1rem;top:50%;transform:translateY(-50%);color:#718096;pointer-events:none}.date-separator{color:#718096;font-weight:700}.options-section{display:flex;gap:1rem;align-items:center;margin-top:2rem;flex-wrap:wrap}.select-wrapper{position:relative;flex:1;min-width:250px}.select-dropdown{width:100%;padding:.8rem 2.5rem .8rem 1rem;border:1px solid #e2e8f0;border-radius:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:1rem;background-color:#fff;cursor:pointer;transition:all .3s ease}.select-dropdown:focus{border-color:#3498db;outline:none;box-shadow:0 0 0 3px #3498db33}.dropdown-arrow{position:absolute;right:1rem;top:50%;transform:translateY(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #718096;pointer-events:none}.download-button{padding:.8rem 1.5rem;background-color:#2ecc71;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;min-width:200px;position:relative}.download-button:hover:not(:disabled){background-color:#27ae60;transform:translateY(-2px);box-shadow:0 4px 8px #2ecc714d}.download-button:disabled{background-color:#a0aec0;cursor:not-allowed}.download-button.loading{color:transparent}.spinner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s linear infinite}@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}.error-message{margin-top:1.5rem;padding:1rem;background-color:#fff5f5;color:#e53e3e;border:1px solid #fed7d7;border-radius:6px;animation:fadeIn .3s ease-out}.success-message{margin-top:1.5rem;padding:1rem;background-color:#f0fff4;color:#2f855a;border:1px solid #c6f6d5;border-radius:6px;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}@media (max-width: 768px){.report-page-container{padding:1.5rem;margin:1rem}.date-inputs{flex-direction:column}.date-input-wrapper{width:100%}.options-section{flex-direction:column}.select-wrapper,.download-button{width:100%}}.gestion-horario-page-container{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;padding:2rem;max-width:1200px;margin:2rem auto;background-color:#f9f9f9;border-radius:8px;box-shadow:0 4px 12px #0000000d;color:#333}.main-page-title{text-align:center;color:#2c3e50;margin-bottom:2rem;border-bottom:2px solid #e0e0e0;padding-bottom:1rem}.page-feedback-message{padding:1rem;border-radius:5px;margin-bottom:1.5rem;text-align:center;font-weight:500}.page-feedback-message.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.page-feedback-message.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.generar-horario-container{background-color:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #00000014;margin-bottom:2rem}.generar-horario-title{color:#34495e;margin-top:0;margin-bottom:1.5rem}.generar-horario-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;align-items:center}.form-group{display:flex;flex-direction:column}.form-group label{margin-bottom:.5rem;font-weight:600;color:#555}.form-group input[type=text],.form-group input[type=time],.form-group select{width:100%;padding:.75rem;border:1px solid #ccc;border-radius:4px;font-size:1rem;transition:border-color .3s,box-shadow .3s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db33}.add-horario-button{grid-column:1 / -1;padding:.8rem 1.5rem;font-size:1.1rem;font-weight:700;color:#fff;background-color:#27ae60;border:none;border-radius:5px;cursor:pointer;transition:background-color .3s,transform .2s}.add-horario-button:hover:not(:disabled){background-color:#229954;transform:translateY(-2px)}.add-horario-button:disabled{background-color:#95a5a6;cursor:not-allowed}.add-horario-message{margin-top:1rem;font-weight:500;text-align:center}.add-horario-message.success{color:#27ae60}.add-horario-message.error{color:#c0392b}.administrar-horario-container{margin-top:2rem;background-color:#fff;padding:2rem;border-radius:8px;box-shadow:0 2px 8px #00000014}.administrar-horario-title{color:#34495e;margin-top:0}.refresh-button{padding:.6rem 1.2rem;font-size:1rem;color:#fff;background-color:#3498db;border:none;border-radius:5px;cursor:pointer;margin-bottom:1rem;transition:background-color .3s}.refresh-button:hover:not(:disabled){background-color:#2980b9}.refresh-button:disabled{background-color:#bdc3c7;cursor:wait}.horarios-table-container{overflow-x:auto}.horarios-table{width:100%;border-collapse:collapse;margin-top:1.5rem}.horarios-table th,.horarios-table td{padding:.8rem 1rem;text-align:left;border-bottom:1px solid #ddd;vertical-align:middle}.horarios-table th{background-color:#ecf0f1;color:#34495e;font-weight:600;text-transform:uppercase;font-size:.85em}.horarios-table tbody tr:hover{background-color:#f5f7fa}.delete-button{padding:.4rem .8rem;font-size:.9rem;color:#fff;background-color:#e74c3c;border:none;border-radius:4px;cursor:pointer;transition:background-color .3s}.delete-button:hover{background-color:#c0392b}.error-message{color:#c0392b;font-weight:700}body{margin:0;font-family:Arial,sans-serif;background-color:#f4f7f6}.app-container{min-height:100vh;position:relative;display:flex;flex-direction:column}.app-header{text-align:center;padding:15px 20px 0;background-color:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 2px 4px #0000000d;display:flex;justify-content:center;align-items:flex-end;min-height:60px}.app-header button{background-color:#f0f0f0;color:#555;padding:10px 25px;border:1px solid #ddd;border-bottom:none;border-radius:8px 8px 0 0;cursor:pointer;font-weight:700;font-size:1rem;transition:all .3s ease;box-shadow:none;margin:0 2px;position:relative;top:1px}.app-header button:hover:not(.active-button){background-color:#e6e6e6;color:#333}.app-header button.active-button{background-color:#fff;color:#007bff;border-color:#e0e0e0;border-bottom:1px solid #ffffff;z-index:10;transform:translateY(0);box-shadow:0 -2px 5px #0000000d}.app-main{flex-grow:1;padding-bottom:80px;display:flex;justify-content:center;align-items:flex-start;padding-top:20px}.excel-import-wrapper{max-width:800px;width:90%;margin:0 auto;background-color:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:30px;box-sizing:border-box}.import-excel-container{text-align:center;width:100%}.import-excel-container h1{color:#333;margin-bottom:25px;font-size:2em}.file-upload-box{margin-bottom:30px;border:2px dashed #a0a0a0;padding:30px;border-radius:10px;background-color:#fdfdfd}.file-upload-label{background-color:#007bff;color:#fff;padding:12px 25px;border:none;border-radius:6px;cursor:pointer;font-weight:700;display:inline-block;margin-bottom:15px;transition:background-color .3s ease}.file-upload-label:hover{background-color:#0056b3}.file-name-display{font-size:.95rem;color:#555;margin-top:10px}.error-message{color:#dc3545;margin-top:15px;font-weight:700}.table-container{margin-top:40px;overflow-x:auto;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 8px #00000014}.table-container h2{text-align:left;margin-left:15px;color:#444;font-size:1.5em;margin-bottom:15px}.data-table{width:100%;border-collapse:collapse;margin-top:0}.data-table th,.data-table td{border:1px solid #e9ecef;padding:12px;text-align:left}.data-table thead tr{background-color:#e9ecef;color:#333;font-weight:700;text-transform:uppercase;font-size:.9em}.data-table tbody tr:nth-child(2n){background-color:#f8f9fa}.data-table tbody tr:hover{background-color:#e2f0ff}.welcome-message{text-align:center;margin-top:50px;color:#666;padding:20px}.welcome-message h2{font-size:2em;margin-bottom:15px}.welcome-message p{font-size:1.1em}.specific-importer-placeholder{width:100%;padding:30px;box-sizing:border-box}.specific-importer-placeholder h1{color:#343a40}.specific-importer-placeholder ul{list-style-type:none;padding:0;margin-top:20px}.specific-importer-placeholder li{background-color:#e9ecef;margin-bottom:10px;padding:10px;border-radius:5px;box-shadow:0 1px 3px #0000000d}.app-footer{background-color:#343a40;padding:15px 25px;border-top:1px solid #495057;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;font-size:.85rem;color:#adb5bd;position:absolute;bottom:0;width:100%;box-sizing:border-box}.footer-links-container{display:flex;flex-wrap:wrap;gap:20px}.footer-link{text-decoration:none;color:#adb5bd;transition:color .3s ease}.footer-link:hover{color:#fff}body{margin:0;font-family:Arial,sans-serif;background-color:#f0f2f5}.main-layout{display:flex;height:100vh}.sidebar{width:250px;background-color:#002d72;color:#fff;padding:20px 0;display:flex;flex-direction:column;justify-content:space-between}.sidebar-header{font-size:1.8em;font-weight:700;padding:0 20px 30px;color:#fff}.sidebar-nav ul{list-style:none;padding:0;margin:0}.sidebar-nav li{margin-bottom:5px}.sidebar-nav a{display:block;color:#fff;text-decoration:none;padding:10px 20px;transition:background-color .2s ease;font-size:1.1em}.sidebar-nav a:hover{background-color:#003a8f}.sidebar-footer{margin-top:auto;padding:20px}.sidebar-footer button{background-color:transparent;color:#fff;border:1px solid white;padding:10px 15px;border-radius:4px;cursor:pointer;width:100%;font-size:1.1em;transition:background-color .2s ease,color .2s ease}.sidebar-footer button:hover{background-color:#fff;color:#002d72}.content-area{flex-grow:1;background-color:#fff;padding:20px;overflow-y:auto}
