@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.header-contenedor{background:linear-gradient(135deg,#2c3e50,#4a6491);box-shadow:0 4px 12px #00000026;max-width:100%;margin:0 auto 40px;padding:0 20px;display:flex;flex-direction:column;position:sticky;top:0;z-index:10}.header-nav{height:80px;display:flex;justify-content:space-between;align-items:center}.header-logoMenu{display:flex;justify-content:space-between;align-items:center;padding:15px 0}.nombre-pyme span{color:#f8f8f8;font-size:14px;font-weight:300;letter-spacing:1px}.nombre-pyme h1{color:#fff;font-size:22px;margin-top:5px;font-weight:600}.hamburguesa-btn{display:flex;flex-direction:column;justify-content:center;align-items:center;width:50px;height:50px;background:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:8px;cursor:pointer;padding:0;transition:all .3s ease}.hamburguesa-btn:hover{background:#fff3;border-color:#ffffff80}.hamburguesa-linea{width:25px;height:3px;background:#fff;border-radius:2px;margin:2.5px 0;transition:all .3s ease;transform-origin:center}.hamburguesa-btn.activo .hamburguesa-linea:nth-child(1){transform:rotate(45deg) translate(6px,6px)}.hamburguesa-btn.activo .hamburguesa-linea:nth-child(2){opacity:0}.hamburguesa-btn.activo .hamburguesa-linea:nth-child(3){transform:rotate(-45deg) translate(6px,-6px)}.opcionesMenu{display:flex;justify-content:space-between;gap:20px;padding:20px;background:#fff;border-radius:8px;margin:15px 0;box-shadow:0 4px 15px #0000001a;max-height:0;overflow:hidden;opacity:0;transition:all .4s ease}.opcionesMenu.menu-abierto{max-height:500px;opacity:1}.opciones-fecha{display:flex;flex-wrap:wrap;gap:15px}.opciones-fecha label{display:flex;flex-direction:column;color:#2c3e50;font-weight:500;font-size:14px}.opciones-fecha input{margin-top:5px;padding:10px;border:1px solid #ddd;border-radius:4px;background:#f8f9fa;font-family:inherit;transition:border-color .3s}.opciones-fecha input:focus{outline:none;border-color:#4a6491;box-shadow:0 0 0 2px #4a649133}.opciones-botones{display:flex;flex-wrap:wrap;gap:10px}.opciones-botones button{padding:10px 20px;border:none;border-radius:4px;font-weight:600;cursor:pointer;transition:all .3s ease;font-family:inherit}.btn-estadistica{background:#3498db;color:#fff}.btn-estadistica:hover{background:#2980b9}.btn-reporte{background:#27ae60;color:#fff}.btn-reporte:hover{background:#219653}.btn-registro{background:#3498db;color:#fff}.btn-registro:hover{background:#2980b9}@media (max-width: 768px){.header-contenedor{padding:0 15px}.opciones-fecha,.opciones-botones{flex-direction:column;width:100%}.opciones-botones button{width:100%}.opcionesMenu.menu-abierto{flex-direction:row;justify-content:space-between;align-items:flex-end}.opciones-fecha{flex-direction:row}}.kpi-card{padding:20px;border-radius:12px;color:#000;box-shadow:0 4px 8px #0000001a;transition:transform .2s ease,box-shadow .2s ease;width:320px;cursor:pointer;background-color:#5e6177;color:#fff}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 6px 12px #00000026}.card-content{display:flex;justify-content:space-between;align-items:center;height:100%}.text-container{flex:1}.kpi-title{font-size:.9rem;font-weight:500;margin:0 0 8px;opacity:.9}.kpi-value{font-size:2rem;font-weight:700;margin:0;line-height:1}.kpi-suffix{font-size:1.2rem;font-weight:400;margin-left:2px}.icon-container{font-size:2.5rem;opacity:.8;margin-left:15px}@media (max-width: 768px){.kpi-card{padding:15px}.kpi-title{font-size:.8rem}.kpi-value{font-size:1.5rem}.kpi-suffix{font-size:1rem}.icon-container{font-size:2rem}}.produccion-container{margin:20px 0;padding:15px;border-radius:8px;background-color:#fff;box-shadow:0 2px 10px #0000001a}.tabla-produccion{width:100%;border-collapse:collapse}.tabla-fila{display:flex;justify-content:space-between;padding:12px 15px;border-bottom:1px solid #eee;transition:background-color .2s}.tipo-nombre{font-weight:500;color:#555}.tipo-produccion{font-weight:700;color:#82ca9d}@media (max-width: 480px){.tabla-header,.tabla-fila{flex-direction:column}.tipo-nombre{margin-bottom:5px;font-size:.9rem}.tipo-produccion{font-size:1.1rem}}.eficiencia-container{margin:20px 0;padding:15px;border-radius:8px;background-color:#fff;box-shadow:0 2px 10px #0000001a}.titulo{text-align:center;margin-bottom:20px;color:#333;font-size:1.5rem}.tabla-eficiencia{width:100%;border-collapse:collapse}.tabla-header{display:flex;justify-content:space-between;padding:12px 15px;background-color:#f5f5f5;font-weight:700;border-bottom:2px solid #ddd}.tabla-fila{display:flex;justify-content:space-between;padding:12px 15px;border-bottom:1px solid #eee;position:relative}.tabla-fila:before{content:"";position:absolute;left:0;top:0;height:100%;width:5px;background-color:var(--color-eficiencia)}.producto-nombre{font-weight:500}.producto-eficiencia{font-weight:700;color:var(--color-eficiencia)}.tabla-referencia{display:flex;align-items:center;margin-top:15px;padding:8px 15px;background-color:#f9f9f9;border-radius:4px;font-size:.9rem}.referencia-linea{display:inline-block;width:20px;height:2px;background-color:green;margin-right:10px}.referencia-texto{color:#666}@media (max-width: 480px){.tabla-header,.tabla-fila{flex-direction:column}.producto-nombre{margin-bottom:5px}}.grafico-cumplimiento-plan-planta{padding:20px;margin-bottom:40px;box-shadow:0 4px 8px #0000001a;background-color:#fff;border-radius:10px}.leyenda-cumplimiento{display:flex;justify-content:center;gap:30px;margin-top:20px;flex-wrap:wrap}.leyenda-planificado{background-color:#8884d8}.leyenda-real{background-color:#82ca9d}@media (max-width: 768px){.leyenda-cumplimiento{flex-direction:column;align-items:center;gap:10px}.titulo-cumplimiento{font-size:1.3rem}}.oee-simple-container{padding:20px;background-color:#fff;border-radius:10px;box-shadow:0 4px 8px #0000001a;margin-bottom:40px;text-align:center}.oee-simple-title{text-align:center;color:#333;margin-bottom:25px;font-size:1.5rem;font-weight:700;border-bottom:2px solid #4A90E2;padding-bottom:10px}.oee-main-card{background:#fff;padding:25px;border-radius:12px;margin-bottom:25px}.oee-value-circle{width:150px;height:150px;border:4px solid;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;margin:0 auto 15px;background:#fff}.oee-percentage{font-size:2.2rem;font-weight:700;color:#333}.oee-label{font-size:.9rem;color:#666;margin-top:5px}.oee-status{padding:8px 20px;border-radius:20px;font-weight:700;font-size:1.1rem;display:inline-block}.oee-status.excelente{background-color:#e6f7ee;color:#7ac499;border:2px solid #b7eb8f}.oee-status.aceptable{background-color:#fff8e6;color:#ffc355;border:2px solid #ffe58f}.oee-status.mejora{background-color:#ffe6e6;color:#e3322d;border:2px solid #ffa39e}.oee-components{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px;margin-bottom:25px}.oee-component{background:#f3f3f3;padding:15px;border-radius:8px;box-shadow:0 4px 8px #0000001a}.component-title{font-size:.9rem;color:#666;margin-bottom:8px;font-weight:500}.component-value{font-size:1.4rem;font-weight:700;color:#333;margin-bottom:10px}.component-bar{width:100%;height:8px;background-color:#f0f0f0;border-radius:4px;overflow:hidden}.component-bar-fill{height:100%;border-radius:4px;transition:width .3s ease}.component-bar-fill.disponibilidad{background:linear-gradient(90deg,#8884d8,#6b69b8)}.component-bar-fill.rendimiento{background:linear-gradient(90deg,#82ca9d,#6bb892)}.component-bar-fill.calidad{background:linear-gradient(90deg,#ffc658,#ffa940)}.oee-legend{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;padding:15px;background:#fff;border-radius:8px}.legend-item{display:flex;align-items:center;gap:8px}.legend-color{width:15px;height:15px;border-radius:3px}.legend-color.excelente{background-color:#7ac499}.legend-color.aceptable{background-color:#ffc355}.legend-color.mejora{background-color:#e3322d}@media (max-width: 768px){.oee-components{grid-template-columns:1fr}.oee-legend{flex-direction:column;align-items:center;gap:10px}.oee-value-circle{width:140px;height:140px}.oee-percentage{font-size:1.8rem}}.grafico-desperdicio-container{width:100%;margin:0;padding:30px;background-color:#fff;box-shadow:0 6px 18px #0000001a;box-sizing:border-box;border-radius:10px}.header-section{text-align:center;margin-bottom:10px}.titulo-principal{color:#2c3e50;margin-bottom:10px;font-size:28px;font-weight:600}.subtitulo{color:#7f8c8d;margin-bottom:0;font-size:16px}.estadisticas-resumen{display:flex;justify-content:space-around;margin-bottom:30px;gap:20px}.stat-card{text-align:center;padding:20px;background-color:#f8f9fa;border-radius:10px;flex:1;box-shadow:0 2px 8px #0000000f;border:1px solid #eaecef;max-width:300px}.stat-valor{font-size:28px;font-weight:700;color:#2c3e50;margin-bottom:8px}.stat-label{font-size:16px;color:#7f8c8d;text-transform:uppercase;letter-spacing:.5px}.separator{height:1px;background:linear-gradient(to right,transparent,#e0e0e0,transparent)}.tabla-desperdicio{width:100%}.tabla-fila{display:flex;justify-content:space-between;padding:15px 20px;border-bottom:1px solid #eee;transition:background-color .2s;cursor:pointer;align-items:center}.tabla-fila:hover{background-color:#f9f9f9}.producto-nombre{font-weight:500;font-size:16px}.desperdicio-valor{font-weight:700;font-size:16px}.chart-container{width:100%;height:400px}.leyenda-cumplimiento{display:flex;justify-content:center;gap:30px;margin-top:10px;flex-wrap:wrap}.leyenda-item-cumplimiento{display:flex;align-items:center;gap:8px}.leyenda-color-cumplimiento{width:15px;height:15px;border-radius:3px}.leyenda-estable{background-color:#82ca9d}.leyenda-alerta{background-color:#ffc154}.leyenda-critica{background-color:#cc493d}.custom-tooltip{background-color:#fff;padding:15px;border:1px solid #ccc;border-radius:8px;box-shadow:0 4px 12px #00000026}.custom-tooltip h3{margin:0 0 10px;color:#2c3e50;font-size:16px}.custom-tooltip p{margin:5px 0;color:#7f8c8d;font-size:14px}@media (max-width: 768px){.grafico-desperdicio-container{padding:20px}.estadisticas-resumen{flex-direction:column;align-items:center;gap:15px}.stat-card{width:100%;max-width:none}.leyenda-cumplimiento{flex-direction:column;align-items:center;gap:10px}.titulo-cumplimiento{font-size:1.3rem}.titulo-principal,.stat-valor{font-size:24px}}@media (min-width: 1600px){.grafico-desperdicio-container{padding:40px}.stat-valor{font-size:32px}.leyenda-items{justify-content:center}}body,#root{margin:0;padding:0;width:100%}.main-container{width:100%;margin:0;padding:0}.tabla-departamentos-container{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin:20px 0}.tabla-departamentos-title{font-size:1.1rem;color:#333;margin-bottom:20px;font-weight:700;text-align:center;border-bottom:2px solid #4A90E2;padding-bottom:10px}.tabla-departamentos{width:100%;border-collapse:collapse;margin-top:15px}.tabla-departamentos th{background-color:#f5f5f5;padding:12px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #e8e8e8;text-align:center}.tabla-departamentos td{padding:12px;border-bottom:1px solid #f0f0f0;text-align:center}.tabla-departamentos tr:hover{background-color:#fafafa}.departamento-nombre{font-weight:500;color:#333}.departamento-ausentismo{color:#ff4d4f;font-weight:500;text-align:center}.departamento-tardanza{color:#faad14;font-weight:500;text-align:center}.departamento-empleados{color:#666;text-align:center}.estado-badge{padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:500;display:inline-block}.estado-bueno{background-color:#e6f7ee;color:#52c41a}.estado-alerta{background-color:#fff8e6;color:#faad14}.estado-critico{background-color:#ffe6e6;color:#f5222d}@media (max-width: 768px){.tabla-departamentos{font-size:.8rem}.tabla-departamentos th,.tabla-departamentos td{padding:8px}.estado-badge{font-size:.7rem;padding:3px 6px}}@media (max-width: 768px){.tabla-departamentos thead{display:none}.tabla-departamentos,.tabla-departamentos tbody,.tabla-departamentos tr,.tabla-departamentos td{display:block;width:100%}.tabla-departamentos tr{margin-bottom:15px;border:1px solid #e8e8e8;border-radius:8px;padding:10px;background:#fff;box-shadow:0 1px 3px #0000000d}.tabla-departamentos td{text-align:left;padding:8px 10px;border:none;position:relative}.tabla-departamentos td:before{content:attr(data-label);font-weight:600;color:#555;display:block;margin-bottom:4px;font-size:.8rem}}.grafico-no-conformidades{width:100%;padding:20px;background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin:20px 0}.grafico-titulo{text-align:center;margin-bottom:20px;color:#333;font-size:1.5rem;font-weight:600}.custom-tooltip{background-color:#fffffff2;border:1px solid #ccc;border-radius:4px;padding:10px;box-shadow:0 2px 5px #0000001a}.tooltip-label{font-weight:700;margin:0 0 5px;color:#333}.tooltip-value{margin:0;color:#666}.leyenda-no-conformidades{display:flex;flex-wrap:wrap;justify-content:center;gap:15px;margin-top:20px}.leyenda-item{display:flex;align-items:center;margin:5px}.leyenda-color{width:15px;height:15px;border-radius:3px;margin-right:8px}.leyenda-texto{font-size:.9rem;color:#555}@media (max-width: 768px){.grafico-no-conformidades{padding:15px}.grafico-titulo{font-size:1.3rem}.leyenda-no-conformidades{gap:10px}.leyenda-texto{font-size:.8rem}}.gridKPICards{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-evenly;margin-bottom:40px}.graficosProductos{margin-left:auto;margin-right:auto;display:flex;flex-direction:column;margin-bottom:40px}.contenidoDashboard{padding-left:20px;padding-right:20px}.registro-fichajes-page{min-height:100vh;background-color:#f8fafc;padding:20px}.registro-container{max-width:1200px;margin:40px auto 0;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.registro-header{display:flex;justify-content:space-between;align-items:center;padding:30px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.header-content{flex:1}.registro-title{font-size:2rem;font-weight:700;margin:0 0 10px;color:#fff}.empleado-info h2{font-size:1.4rem;font-weight:600;margin:0 0 5px;color:#fff}.empleado-details{margin:0;opacity:.9;font-size:1rem}.controls-section{display:flex;justify-content:space-between;align-items:center;padding:24px 30px;background:#fff;border-bottom:1px solid #e2e8f0;flex-wrap:wrap;gap:16px}.filter-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.filter-label{font-weight:600;color:#2d3748;display:flex;align-items:center;gap:8px}.filter-icon{font-size:1.2rem}.month-input{padding:10px 14px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;transition:border-color .2s ease;min-width:160px}.month-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.refresh-btn{padding:10px 20px;background:#38a169;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;display:flex;align-items:center;gap:8px;transition:all .2s ease}.refresh-btn:hover:not(:disabled){background:#2f855a;transform:translateY(-1px)}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.btn-icon{font-size:1.1rem}.error-message{background:#fed7d7;color:#c53030;padding:16px 24px;margin:0 30px;border-radius:8px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid #feb2b2}.error-icon{font-size:1.2rem}.error-text{flex:1;font-weight:500}.retry-btn{padding:6px 12px;background:#c53030;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500}.retry-btn:hover{background:#b91c1c}.content-section{padding:30px}.loading-state{text-align:center;padding:60px 20px}.loading-spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}.loading-state p{color:#64748b;margin:0;font-size:1.1rem}.table-container{background:#fff;border-radius:8px;overflow:hidden}.table-wrapper{overflow-x:auto;border-radius:8px;border:1px solid #e2e8f0}.fichajes-table{width:100%;border-collapse:collapse;min-width:600px}.fichajes-table th{background:#f7fafc;padding:16px 20px;text-align:left;font-weight:600;color:#2d3748;border-bottom:2px solid #e2e8f0;font-size:.95rem}.fichajes-table td{padding:16px 20px;border-bottom:1px solid #e2e8f0;color:#4a5568;font-size:.95rem}.table-row:hover{background-color:#f8fafc}.duration-cell{font-weight:600;color:#38a169!important}.table-footer{padding:16px 0;text-align:center;color:#64748b;font-size:.9rem;margin-top:10px}.empty-state{text-align:center;padding:60px 20px;background:#fff;border-radius:8px;border:1px solid #e2e8f0}.empty-icon{font-size:3.5rem;opacity:.5;margin-bottom:20px;display:block}.empty-state h3{color:#2d3748;margin:0 0 12px;font-size:1.4rem;font-weight:600}.empty-state p{color:#64748b;line-height:1.5;max-width:400px;margin:0 auto 24px}.clear-filter-btn{padding:10px 20px;background:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s ease}.clear-filter-btn:hover{background:#5a67d8;transform:translateY(-1px)}@media (max-width: 968px){.registro-header{flex-direction:column;text-align:center;gap:20px;padding:24px}.header-stats{justify-content:center}.stat-item{padding:16px}.stat-number{font-size:1.7rem}}@media (max-width: 768px){.registro-fichajes-page{padding:12px}.registro-container{border-radius:8px}.controls-section{flex-direction:column;align-items:stretch;padding:20px}.filter-group{justify-content:center}.month-input{width:100%;max-width:250px}.refresh-btn{width:100%;justify-content:center}.content-section{padding:20px}.registro-title{font-size:1.7rem}.empleado-info h2{font-size:1.2rem}}@media (max-width: 640px){tbody{display:flex;flex-direction:column;align-items:center}.table-row{width:400px}.registro-header{padding:20px}.controls-section,.content-section{padding:16px}.error-message{margin:0 16px;padding:12px 16px}.fichajes-table th,.fichajes-table td{padding:12px 14px;font-size:.9rem}.table-wrapper{border:none}.fichajes-table{min-width:unset;display:block}.fichajes-table thead{display:none}.fichajes-table tr{display:block;margin-bottom:16px;padding:16px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 2px #0000000d}.fichajes-table td{display:block;text-align:right;padding:12px;position:relative;border-bottom:1px solid #f1f5f9}.fichajes-table td:last-child{border-bottom:none}.fichajes-table td:before{content:attr(data-label);position:absolute;left:12px;font-weight:600;color:#2d3748;text-align:left}.empty-state{padding:40px 16px}.empty-icon{font-size:3rem}.empty-state h3{font-size:1.2rem}}@media (max-width: 480px){.table-row{width:310px}.filter-group{flex-direction:column;align-items:stretch;gap:8px}.filter-label{justify-content:center}.month-input{max-width:none}.stat-item{padding:14px}.stat-number,.registro-title{font-size:1.5rem}.empleado-info h2{font-size:1.1rem}}@media (max-width: 360px){.registro-header{padding:16px}.controls-section,.content-section{padding:12px}.fichajes-table td{padding:10px;font-size:.85rem}.fichajes-table td:before{left:10px;font-size:.85rem}}.menuLogin{width:370px;min-height:500px;margin:60px auto auto;box-shadow:0 2px 10px #0000001a;border-radius:10px;background-color:#fff;display:flex;flex-direction:column}.tituloMenu{border-radius:10px 10px 0 0;background-color:#353a56;color:#fff;padding:20px;height:20%;margin-bottom:20px}.tituloMenu h2{margin-bottom:5px}.tituloMenu p{font-size:12px;font-weight:400}.camposMenu{height:50%;padding:20px;font-size:22px;font-weight:600}.camposMenu .campoUsuario{display:flex;flex-direction:column;margin-bottom:20px}.camposMenu label{margin-bottom:10px;font-size:16px;color:#333}.camposMenu input{padding:10px;border:1px solid #ccc;border-radius:4px;font-size:16px;transition:border-color .3s ease}.camposMenu input:focus{border-color:#353a56;outline:none;box-shadow:0 0 0 2px #353a5633}.camposMenu input:disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.7}.camposMenu .campoContraseña{display:flex;flex-direction:column}.btnIngresar{padding:20px}.botonIngresar{height:20%;width:100%;display:flex;justify-content:center;align-items:center}.botonIngresar .btnIngresar{cursor:pointer;width:150px;height:50px;display:flex;justify-content:center;align-items:center;background-color:#353a56;color:#fff;border:none;border-radius:4px;font-weight:600;font-size:15px;transition:all .3s ease}.botonIngresar .btnIngresar:hover:not(:disabled){background-color:#2a2e45;transform:translateY(-1px)}.botonIngresar .btnIngresar:active:not(:disabled){transform:translateY(0)}.btnIngresar:disabled{opacity:.6;cursor:not-allowed;background-color:#ccc}.error-message{background-color:#ffebee;color:#c62828;padding:12px;border-radius:6px;margin:15px 20px;text-align:center;border:1px solid #ef5350;font-size:14px}.lockout-message{text-align:center;padding:2rem;background:#fff3f3;border:1px solid #ff6b6b;border-radius:8px;margin:1rem 20px;flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center}.lockout-icon{font-size:3rem;margin-bottom:1rem;color:#ff6b6b}.cooldown-timer{font-size:2rem;font-weight:700;color:#ff6b6b;margin:1rem 0;font-family:Courier New,monospace;background:#fff;padding:10px 20px;border-radius:8px;border:2px solid #ff6b6b;min-width:80px}.attempts-warning{text-align:center;padding:.75rem;background:#fff3cd;border:1px solid #ffeaa7;border-radius:6px;margin:.5rem 20px;font-size:.9rem;color:#856404}.security-tips{text-align:center;margin:1rem 20px 0;padding:.75rem;background:#e3f2fd;border-radius:6px;font-size:.8rem;color:#1976d2;border:1px solid #bbdefb}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.error-message.shake{animation:shake .3s ease-in-out}@media (max-width: 480px){.menuLogin{width:90%;margin-top:30px;min-height:auto}.tituloMenu,.camposMenu{padding:15px}.lockout-message{padding:1.5rem;margin:1rem 15px}.cooldown-timer{font-size:1.5rem;padding:8px 16px}}.botonIngresar .btnIngresar.loading{position:relative;color:transparent}.botonIngresar .btnIngresar.loading:after{content:"";position:absolute;width:20px;height:20px;border:2px solid transparent;border-top:2px solid white;border-radius:50%;animation:spin 1s linear infinite}.lockout-message:focus,.error-message:focus{outline:2px solid #353A56;outline-offset:2px}.lockout-message p{margin:.5rem 0;line-height:1.4}.lockout-message p:first-of-type{font-weight:600;color:#d32f2f}.auto-detection-message{text-align:center;color:#666;font-style:italic;margin:15px 0}.action-buttons{display:flex;justify-content:center;margin:20px 0}.facial-recognition-container{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;display:flex;flex-direction:column}.app-header{background:linear-gradient(135deg,#2c3e50,#4a6580);height:70px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000001a;padding:0 20px}.app-title{color:#fff;font-size:1.5rem;font-weight:600;text-align:center;margin:0}.app-main{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem}.recognition-container{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%;max-width:500px}.camera-container{width:100%;height:400px;background-color:#2c3e50;border-radius:16px;overflow:hidden;box-shadow:0 10px 25px #0003;position:relative}.camera-feed{width:100%;height:100%;object-fit:cover;display:block}.loading-overlay{position:absolute;inset:0;background-color:#2c3e50e6;display:flex;align-items:center;justify-content:center}.spinner-container{text-align:center;color:#fff}.loading-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.loading-text{margin:0;font-size:1rem;color:#fff}.processing-overlay{position:absolute;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;color:#fff}.processing-content{text-align:center}.processing-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.3);border-top:3px solid white;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto .5rem}.action-buttons{display:flex;justify-content:center}.btn-primary{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border:none;border-radius:50px;padding:12px 24px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 10px #3498db4d;display:flex;align-items:center;gap:8px}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 15px #3498db66}.btn-recognize{padding:15px 30px;font-size:1.1rem}.btn-icon{font-size:1.2rem}.btn-secondary{background:#e74c3c;color:#fff;border:none;border-radius:50px;padding:10px 20px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-secondary:hover{background:#c0392b;transform:translateY(-2px)}.result-container{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.result-message{padding:12px 20px;border-radius:10px;font-weight:600;display:flex;align-items:center;gap:8px;width:100%;text-align:center;justify-content:center}.result-message.success{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.result-message.error{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.result-message.warning{background-color:#fff3cd;color:#856404;border:1px solid #ffeaa7}.result-message.info{background-color:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.result-icon{font-size:1.2rem}.app-footer{background:linear-gradient(135deg,#2c3e50,#4a6580);height:60px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:.9rem}.modal-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background-color:#fff;border-radius:16px;padding:2rem;max-width:450px;width:100%;box-shadow:0 15px 30px #0000004d}.modal-title{font-size:1.3rem;font-weight:600;color:#2c3e50;margin:0 0 1rem}.modal-text{color:#5a6c7d;line-height:1.5;margin:0 0 1.5rem}.modal-actions{display:flex;justify-content:flex-end}.camera-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:#f0f0f0;border-radius:8px;color:#666;text-align:center;padding:20px}.action-buttons{display:flex;justify-content:center;margin:20px 0;gap:15px}.btn-recognize{padding:12px 24px;font-size:16px;font-weight:700}.btn-icon{margin-right:8px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.app-main{padding:1rem}.camera-container{height:350px}.btn-recognize{padding:12px 20px;font-size:1rem}.app-title{font-size:1.2rem}}@media (max-width: 480px){.camera-container{height:300px}.modal{padding:1.5rem}}:root{--font-primary: "Inter", sans-serif;--font-secondary: "Nunito", sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-primary);font-weight:400;background-color:#ececec}.titulo{font-family:var(--font-secondary);font-weight:600}
