:root{--color-primario:#2563eb;--color-primario-oscuro:#1d4ed8;--color-exito:#16a34a;--color-peligro:#dc2626;--color-aviso:#d97706;--color-texto:#1f2937;--color-texto-suave:#6b7280;--color-borde:#e5e7eb;--color-fondo:#f3f4f6;--color-tarjeta:#fff;--radio:12px;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}.aviso-actualizacion{z-index:1000;background:var(--color-primario-oscuro);color:#fff;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;padding:.6rem 1rem;font-size:.9rem;font-weight:600;display:flex;position:fixed;top:0;left:0;right:0}.aviso-actualizacion .boton{color:var(--color-primario-oscuro);background:#fff;margin-top:0}body{background:var(--color-fondo);color:var(--color-texto);margin:0}h1{margin:0 0 .25rem;font-size:1.5rem}h2{margin:2rem 0 .75rem;font-size:1.1rem}.pantalla-centrada{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.tarjeta{background:var(--color-tarjeta);border-radius:var(--radio);flex-direction:column;gap:.5rem;width:100%;max-width:380px;padding:2rem;display:flex;box-shadow:0 1px 3px #0000001a}.tarjeta-ancha{max-width:480px}.texto-ayuda{color:var(--color-texto-suave);margin:0 0 1rem;font-size:.95rem}label{margin-top:.5rem;font-size:.9rem;font-weight:600}input,select,textarea{border:1px solid var(--color-borde);border-radius:8px;width:100%;padding:.65rem .75rem;font-family:inherit;font-size:1rem}textarea{resize:vertical;min-height:80px}.input-grande{padding:1rem;font-size:1.3rem}.input-pin{letter-spacing:.5rem;text-align:center}.pin-puntos{justify-content:center;gap:.75rem;margin:.5rem 0 1.5rem;display:flex}.pin-punto{border:2px solid var(--color-primario);background:0 0;border-radius:50%;width:18px;height:18px}.pin-punto-lleno{background:var(--color-primario)}.teclado-numerico{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem;display:grid}.tecla{cursor:pointer;border-radius:var(--radio);background:var(--color-fondo);color:var(--color-texto);border:none;padding:1.1rem 0;font-size:1.6rem;font-weight:700}.tecla:disabled{opacity:.6}.tecla-secundaria{background:var(--color-borde);font-size:1.2rem}.boton{cursor:pointer;background:var(--color-borde);color:var(--color-texto);border:none;border-radius:8px;margin-top:.75rem;padding:.75rem 1.25rem;font-size:1rem;font-weight:600}.boton:disabled{opacity:.6;cursor:not-allowed}.boton-primario{background:var(--color-primario);color:#fff}.boton-primario:hover:not(:disabled){background:var(--color-primario-oscuro)}.boton-secundario{border:1px solid var(--color-borde);color:var(--color-texto);background:0 0}.boton-grande{border-radius:var(--radio);text-align:center;padding:1.25rem;font-size:1.2rem;text-decoration:none;display:block}.boton-enlace{color:var(--color-primario);cursor:pointer;background:0 0;border:none;margin:0;padding:0;font-weight:600}.enlace-volver{color:var(--color-texto-suave);margin-top:1rem;font-size:.9rem;text-decoration:none;display:inline-block}.mensaje-error{color:var(--color-peligro);margin:.25rem 0 0;font-size:.9rem}.mensaje-exito{color:var(--color-exito);margin:.25rem 0 0;font-size:.9rem}.grupo-botones-modo{flex-direction:column;gap:1rem;display:flex}.enlace-olvido-tablet{text-align:center;color:var(--color-texto-suave);margin-top:1.5rem;font-size:.95rem;text-decoration:none;display:block}.cabecera-tablet-simple{padding:1rem 1.5rem}.grupo-botones-modo .boton-grande{background:var(--color-primario);color:#fff}.grupo-botones-fichar{grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem;display:grid}.grupo-botones-fichar .boton-grande{color:#fff}.aviso-pendientes{color:#92400e;background:#fef3c7;border-radius:8px;margin:0 0 .5rem;padding:.6rem .85rem;font-size:.9rem}.aviso-info{color:#1e40af;background:#dbeafe;border-radius:8px;margin:0 0 .5rem;padding:.6rem .85rem;font-size:.9rem}.aviso-info ul{margin:.35rem 0 0;padding-left:1.2rem}.aviso-info li{margin-bottom:.3rem}.aviso-info li:last-child{margin-bottom:0}.aviso-discreto{color:var(--color-texto-suave);background:0 0;padding:0 .1rem}.boton-entrada{background:var(--color-exito)}.boton-salida{background:var(--color-peligro)}.boton-pausa{background:var(--color-aviso)}.boton-comida{background:var(--color-primario)}.boton-fila-completa{grid-column:1/-1}.boton-corregir{background:var(--color-borde);color:var(--color-texto);margin-top:1.25rem}@media (width<=480px){.grupo-botones-fichar{gap:.6rem}.grupo-botones-fichar .boton-grande{padding:.9rem .5rem;font-size:1.05rem}.pantalla-fichar .pantalla-centrada{align-items:flex-start;padding:.75rem}.pantalla-fichar .tarjeta{gap:.35rem;padding:1.1rem}.pantalla-fichar .cabecera-identidad{margin-bottom:.25rem}.pantalla-fichar .logo-identidad{max-width:4.5rem;max-height:2.5rem}.pantalla-fichar .nombre-empleado-grande{font-size:1.3rem}.pantalla-fichar .texto-ayuda{margin:0 0 .5rem}.pantalla-fichar .aviso-pendientes,.pantalla-fichar .aviso-info{padding:.5rem .7rem;font-size:.85rem}.pantalla-fichar .enlace-olvido-tablet{margin-top:.75rem}.pantalla-fichar .boton-corregir{margin-top:.9rem}}.confirmacion{text-align:center;align-items:center}.icono-confirmacion{background:var(--color-exito);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 1rem;font-size:2rem;display:flex}.hora-grande{margin:.5rem 0;font-size:2.5rem;font-weight:700}.barra-nav{background:var(--color-tarjeta);border-bottom:1px solid var(--color-borde);flex-wrap:wrap;align-items:center;gap:1.5rem;padding:.85rem 1.5rem;display:flex}.barra-nav-cabecera,.barra-nav-contenido{display:contents}.barra-nav-marca{font-weight:700}.barra-nav-toggle{display:none}.barra-nav-enlaces{flex-wrap:wrap;flex:1;gap:.75rem 1.25rem;min-width:0;display:flex}.barra-nav-enlaces a{color:var(--color-texto-suave);font-size:.95rem;font-weight:600;text-decoration:none}.barra-nav-enlaces a.activo{color:var(--color-primario)}.grupo-botones-motivo{gap:.5rem;margin-bottom:.75rem;display:flex}.grupo-botones-motivo .boton{margin-top:0}.badge-aviso{background:var(--color-peligro);color:#fff;text-align:center;vertical-align:middle;border-radius:999px;min-width:1.1rem;height:1.1rem;margin-left:.3rem;padding:0 .3rem;font-size:.7rem;font-weight:700;line-height:1.1rem;display:inline-block}.barra-nav-usuario{color:var(--color-texto-suave);align-items:center;gap:1rem;font-size:.9rem;display:flex}.barra-nav-version{color:var(--color-primario);font-size:.75rem}.barra-nav-version-movil{display:none}@media (width<=768px){.barra-nav{flex-direction:column;align-items:stretch}.barra-nav-cabecera{justify-content:space-between;align-items:center;width:100%;display:flex}.barra-nav-version-movil{display:inline-block}.barra-nav-toggle{background:var(--color-primario);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:.65rem 1.1rem;font-size:1.05rem;font-weight:700;line-height:1;display:block}.barra-nav-contenido{flex-direction:column;align-items:stretch;gap:.6rem;width:100%;margin-top:.85rem;display:none}.barra-nav-abierta .barra-nav-contenido{display:flex}.barra-nav-enlaces{flex-direction:column;gap:.6rem}.barra-nav-enlaces a{background:var(--color-fondo);border-radius:8px;padding:.75rem 1rem;font-size:1rem}.barra-nav-enlaces a.activo{background:var(--color-primario);color:#fff}.barra-nav-separador{display:none}.barra-nav-usuario{border-top:1px solid var(--color-borde);justify-content:space-between;padding-top:.85rem}}.pestanas{border-bottom:1px solid var(--color-borde);flex-wrap:wrap;gap:.5rem;margin:1rem 0 1.5rem;padding-bottom:.75rem;display:flex}.pestana{cursor:pointer;border:1px solid var(--color-borde);background:var(--color-tarjeta);color:var(--color-texto-suave);border-radius:999px;padding:.55rem 1.1rem;font-size:.95rem;font-weight:600}.pestana-activa{border-color:var(--color-primario);background:var(--color-primario);color:#fff}@media (width<=600px){.pestanas{flex-flow:column}.pestana{text-align:left;border-radius:8px;width:100%}}.contenido-pagina{max-width:1800px;margin:0 auto;padding:2rem 1.5rem}.tabla-tarjetas-movil td.celda-ajustes-vacaciones{padding-left:0!important}.tabla-tarjetas-movil td.celda-ajustes-vacaciones:before{content:none!important}.panel-ajustes-vacaciones{flex-direction:column;gap:.6rem;padding:.75rem 0;display:flex}.lista-ajustes-vacaciones{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.lista-ajustes-vacaciones li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.formulario-ajuste-vacaciones{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.tabla-scroll{scrollbar-width:auto;scrollbar-color:var(--color-primario,#2563eb) #e5e7eb;padding-bottom:4px;overflow-x:auto}.tabla-scroll::-webkit-scrollbar{height:12px}.tabla-scroll::-webkit-scrollbar-track{background:#e5e7eb;border-radius:6px}.tabla-scroll::-webkit-scrollbar-thumb{background:var(--color-primario,#2563eb);border:2px solid #e5e7eb;border-radius:6px}.tabla-scroll table{width:max-content;min-width:100%}table{border-collapse:collapse;background:var(--color-tarjeta);border-radius:var(--radio);width:100%;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--color-borde);white-space:nowrap;padding:.75rem 1rem;font-size:.9rem}@media (width<=600px){th,td{padding:.5rem .6rem;font-size:.82rem}}@media screen and (width<=768px){.tabla-tarjetas-movil{overflow:visible}.tabla-tarjetas-movil table,.tabla-tarjetas-movil tbody,.tabla-tarjetas-movil tr,.tabla-tarjetas-movil td{width:100%;display:block}.tabla-tarjetas-movil thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.tabla-tarjetas-movil tbody{flex-direction:column;gap:.75rem;display:flex}.tabla-tarjetas-movil tr{border:1px solid var(--color-borde);border-radius:var(--radio);padding:.75rem 1rem}.tabla-tarjetas-movil td{text-align:left;white-space:normal;border-bottom:none;padding:.3rem 0 .3rem 42%;font-size:.9rem;position:relative}.tabla-tarjetas-movil td:before{content:attr(data-label);width:40%;color:var(--color-texto-suave);white-space:normal;padding-right:.5rem;font-weight:600;position:absolute;left:0}.tabla-tarjetas-movil td:first-child{border-bottom:1px solid var(--color-borde);margin-bottom:.3rem;padding:0 0 .5rem;font-size:1rem;font-weight:600}.tabla-tarjetas-movil td:first-child:before{content:none}}th{background:#f9fafb;font-weight:600}.formulario-solicitud{background:var(--color-tarjeta);border-radius:var(--radio);flex-direction:column;max-width:480px;padding:1.5rem;display:flex}.grupo-dias-semana{gap:.4rem;margin:.25rem 0 .5rem;display:flex}.dia-semana{border:1px solid var(--color-borde);background:var(--color-fondo);width:36px;height:36px;color:var(--color-texto-suave);cursor:pointer;border-radius:50%;font-weight:600}.dia-semana-activo{background:var(--color-primario);border-color:var(--color-primario);color:#fff}.dia-semana:disabled{opacity:.35;cursor:not-allowed}.editor-grupos-dias{flex-direction:column;gap:1rem;margin-bottom:1rem;display:flex}.grupo-horario-dia{border:1px solid var(--color-borde);border-radius:var(--radio);background:var(--color-fondo-suave,transparent);padding:1rem}.logo-empresa-preview{object-fit:contain;border:1px solid var(--color-borde);background:#fff;border-radius:8px;max-width:160px;max-height:80px;margin:.5rem 0;padding:.5rem}.estado{border-radius:999px;padding:.2rem .6rem;font-size:.8rem;font-weight:600;display:inline-block}.estado-pendiente{color:#92400e;background:#fef3c7}.estado-aprobada{color:#166534;background:#dcfce7}.estado-rechazada{color:#991b1b;background:#fee2e2}.estado-pequeno{margin-left:.3rem;padding:.05rem .4rem;font-size:.72rem}.estado-anulada{color:#374151;background:#e5e7eb}.barra-nav-separador{background:var(--color-borde);align-self:stretch;width:1px;margin:0 .25rem}.cabecera-pagina{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.cabecera-pagina h1,.cabecera-pagina .titulo-seccion{margin:0}.titulo-seccion{font-size:1.1rem}.check-linea{align-items:center;gap:.5rem;width:fit-content;margin:0 0 1rem;font-weight:400;display:flex}.check-linea input{width:auto}.celda-acciones{align-items:center;gap:1rem;display:flex}.celda-acciones-solicitud{flex-wrap:wrap}.boton-pequeno{margin-top:0;padding:.4rem .75rem;font-size:.85rem}.input-motivo-rechazo{width:220px}.formulario-filtros{background:var(--color-tarjeta);border-radius:var(--radio);flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;padding:1rem 1.25rem;display:flex}.formulario-filtros>div{flex-direction:column;display:flex}.formulario-filtros label{margin-top:0}.formulario-filtros select,.formulario-filtros input{width:auto}.formulario-filtros button{margin-top:0}.grupo-botones-exportar{gap:.5rem;display:flex}.grupo-botones-exportar button{margin-top:0}.editor-tramos{flex-direction:column;gap:1rem;margin-bottom:1rem;display:flex}.tramo-horario{border:1px solid var(--color-borde);border-radius:var(--radio);padding:1rem}.tramo-horario-cabecera{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.fila-anomala{background:#dc354514}.fila-pendiente-aprobar{background:#d9770614}.fila-anulada{opacity:.6;text-decoration:line-through}.fila-cerrada{color:var(--color-texto-suave);font-style:italic}.fila-resaltada{outline:2px solid var(--color-aviso);outline-offset:-2px;background:#d977062e;animation:1.6s ease-in-out 2 parpadeo-resaltado}@keyframes parpadeo-resaltado{0%,to{background:#d9770647}50%{background:#d977061a}}.cabecera-identidad{align-items:center;gap:1rem;margin-bottom:.5rem;display:flex}.logo-identidad{object-fit:contain;max-width:6rem;max-height:3.5rem}.nombre-empleado-grande{margin:0;font-size:1.6rem;font-weight:700}.calendario-controles{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.calendario-nav-mes{gap:.5rem;display:flex}.calendario-leyenda{flex-wrap:wrap;gap:.35rem 1.25rem;margin-bottom:1rem;font-size:.85rem;display:flex}.calendario-muestra{vertical-align:middle;border:1px solid #0003;border-radius:3px;width:14px;height:14px;margin-right:.4rem;display:inline-block}.calendario-scroll{max-width:100%;overflow-x:auto}.tabla-calendario{border-collapse:collapse;font-size:.78rem}.tabla-calendario th,.tabla-calendario td{text-align:center;border:1px solid #e5e7eb;padding:0}.calendario-col-nombre{white-space:nowrap;text-overflow:ellipsis;z-index:1;background:#fff;min-width:170px;max-width:220px;position:sticky;left:0;overflow:hidden;text-align:left!important;padding:.3rem .5rem!important}.tabla-calendario th{color:#6b7280;width:26px;min-width:26px;font-weight:400;line-height:1.15;padding:.2rem 0!important}.calendario-dia-num{font-size:.75rem;font-weight:600;display:block}.calendario-dia-mes{text-transform:uppercase;font-size:.6rem;display:block}.tabla-calendario td:not(.calendario-col-nombre){width:26px;height:24px}.calendario-fila-grupo td{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#f3f4f6;border-left:none;border-right:none;font-weight:600;text-align:left!important;padding:.4rem .5rem!important}.calendario-muestra,.cal-pendiente,.cal-aprobada-vacaciones,.cal-aprobada-otro,.cal-aprobada-festivo-trabajado,.cal-weekend,.cal-festivo{-webkit-print-color-adjust:exact;print-color-adjust:exact}.cal-pendiente{background:#f97316}.cal-aprobada-vacaciones{background:#22c55e}.cal-aprobada-otro{background:#6366f1}.cal-aprobada-festivo-trabajado{background:#facc15}.cal-weekend{background:#e5e7eb}.cal-festivo,th.cal-festivo{color:#fff;background:#dc2626}@page{size:landscape;margin:8mm}.calendario-cabecera-impresion{display:none}@media print{.barra-nav,.formulario-filtros,.grupo-botones-exportar,.enlace-volver,.no-imprimir{display:none!important}.tabla-tarjetas-movil table,.tabla-tarjetas-movil tbody,.tabla-tarjetas-movil tr,.tabla-tarjetas-movil td{display:revert!important;width:auto!important}.tabla-tarjetas-movil thead{clip:auto!important;width:auto!important;height:auto!important;position:static!important;overflow:visible!important}.tabla-tarjetas-movil tr{border:none!important;padding:0!important}.tabla-tarjetas-movil td{border-bottom:1px solid var(--color-borde)!important;padding:.5rem .6rem!important}.tabla-tarjetas-movil td:before,.tabla-tarjetas-movil td:first-child:before{content:none!important}.calendario-scroll{overflow:visible}.calendario-col-nombre{position:static}.calendario-cabecera-impresion{margin-bottom:1rem;display:block}.calendario-cabecera-impresion h2{margin:0 0 .25rem}.calendario-cabecera-impresion p{color:#4b5563;margin:0}body[data-imprimir-calendario] h1,body[data-imprimir-calendario] .pestanas,body[data-imprimir-calendario] .panel-pestana>.titulo-seccion,body[data-imprimir-calendario] .panel-pestana>.texto-ayuda{display:none!important}}
