svg[data-v-11d4956c]{vertical-align:-.15em;flex-shrink:0;width:1.1em;height:1.1em}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-400-normal-Dhut76fR.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-400-normal-BDKaGhyp.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/plus-jakarta-sans-latin-500-normal-Bf-nb4oT.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-500-normal-DYtqi0QS.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-latin-600-normal-DLTa1BUW.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-600-normal-BR_Ojra4.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-latin-700-normal-CfpNZvy6.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-700-normal-DqEcQeE5.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/plus-jakarta-sans-latin-800-normal-CusIZhrK.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-800-normal-BRNHt2w0.woff)format("woff")}:root{--primario:#1e5eff;--primario-osc:#1547c4;--primario-suave:#e8efff;--fondo:#f5f7fb;--superficie:#fff;--texto:#0f1b3d;--texto-suave:#5b6680;--borde:#e1e6f0;--exito:#1d9a5b;--exito-suave:#e3f6ec;--aviso:#d98a00;--aviso-suave:#fff3d9;--peligro:#d63b3b;--peligro-suave:#fde5e5;--info:#3b7fd6;--info-suave:#e6f0fb;--neutro:#6b7280;--neutro-suave:#eceef2;--morado:#7c4dcc;--morado-suave:#efe8fb;--radio:12px;--sombra:0 1px 3px #141e3c14, 0 4px 14px #141e3c0d;--nav-h:60px;--lateral-w:240px;--fuente:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;--marino:#0f1b3d;--primario-claro:#7fa2ff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--fuente);color:var(--texto);background:var(--fondo);-webkit-font-smoothing:antialiased;font-size:15px}h1,h2,h3,h4{margin:0 0 .5rem;line-height:1.25}h1{font-size:1.4rem}h2{font-size:1.15rem}h3{font-size:1rem}p{margin:0 0 .75rem}a{color:var(--primario)}button{font-family:inherit}img{max-width:100%}.app{flex-direction:column;min-height:100vh;display:flex}html,body{max-width:100%;overflow-x:clip}.app,.app-body{max-width:100vw;overflow-x:clip}.app-header{z-index:20;background:var(--superficie);border-bottom:1px solid var(--borde);padding:calc(env(safe-area-inset-top,0px) + 8px) 16px 8px;align-items:center;gap:12px;display:flex;position:sticky;top:0}.app-header .marca{flex:none;align-items:center;display:flex}.marca-app{align-items:center;line-height:0;display:inline-flex}.marca-app img{display:block}.app-header .marca-logotipo{width:auto;height:28px}.app-header .marca-simbolo{width:32px;height:32px}.marca-app.compacto .marca-logotipo{display:none}@media (width>=640px){.marca-app.compacto .marca-logotipo{display:block}.marca-app.compacto .marca-simbolo{display:none}}.app-header .empresa{flex:1;min-width:0;line-height:1.2}.app-header .empresa .nombre{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.app-header .empresa .codigo{color:var(--texto-suave);font-size:.78rem}.app-header .empresa .codigo b{letter-spacing:.05em;color:var(--texto);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.app-header .usuario{color:var(--texto-suave);text-align:right;font-size:.8rem;display:none}.app-header .logo-empresa{object-fit:contain;border-radius:4px;width:auto;max-width:90px;height:34px}.campana{position:relative}.btn-campana{cursor:pointer;color:var(--texto);background:0 0;border:0;padding:6px;display:flex;position:relative}.btn-campana svg{width:24px;height:24px}.btn-campana .badge-pendiente{top:0;right:0}.campana-lista{right:12px;top:calc(env(safe-area-inset-top,0px) + 60px);background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);width:min(360px,100vw - 24px);max-height:70vh;box-shadow:var(--sombra);z-index:30;position:fixed;overflow-y:auto}.campana-titulo{border-bottom:1px solid var(--borde);justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;font-size:.85rem;display:flex}.campana-titulo a{font-size:.78rem}.campana-vacia{color:var(--texto-suave);padding:16px 12px;font-size:.85rem}.campana-item{text-align:left;border:0;border-bottom:1px solid var(--borde);cursor:pointer;width:100%;font:inherit;color:var(--texto);background:0 0;padding:10px 12px;display:block}.campana-item.nueva{background:var(--primario-suave)}.campana-item .t{font-size:.88rem;font-weight:600}.campana-item .c{color:var(--texto-suave);white-space:pre-line;margin-top:2px;font-size:.82rem}.campana-item .f{color:var(--texto-suave);margin-top:4px;font-size:.72rem}.franja-emergencia{background:var(--peligro);color:#fff;border-radius:var(--radio);align-items:center;gap:8px;margin-bottom:12px;padding:12px 14px;font-weight:700;text-decoration:none;animation:1.2s ease-in-out infinite latido;display:flex}.franja-emergencia svg{flex:none;width:22px;height:22px}@keyframes latido{50%{opacity:.75}}@media (prefers-reduced-motion:reduce){.franja-emergencia{animation:none}}.app-body{flex:1;display:flex}.app-main{min-width:0;padding:16px 16px calc(var(--nav-h) + env(safe-area-inset-bottom,0px) + 24px);flex:1;width:100%;max-width:1100px;margin:0 auto}.nav{z-index:20;background:var(--superficie);border-top:1px solid var(--borde);padding-bottom:env(safe-area-inset-bottom,0px);height:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));scrollbar-width:none;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-x:auto}.nav::-webkit-scrollbar{display:none}@media (width<=899.98px){.nav{display:none}}.barra-movil{z-index:20;background:var(--superficie);border-top:1px solid var(--borde);padding-bottom:env(safe-area-inset-bottom,0px);height:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #141e3c0a}.barra-movil a,.barra-movil button{min-width:0;color:var(--texto-suave);font:500 .68rem var(--fuente);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-top:2px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 2px;text-decoration:none;display:flex;position:relative}.barra-movil .txt{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.barra-movil .ico,.mas-rejilla .ico{display:flex}.barra-movil svg{width:22px;height:22px}.barra-movil .activa{color:var(--primario);border-top-color:var(--primario)}.barra-movil .urgente,.mas-rejilla .urgente{color:var(--peligro)}.barra-movil .badge-pendiente{right:calc(50% - 22px)}.punto-aviso{background:var(--peligro);border:2px solid var(--superficie);border-radius:50%;width:9px;height:9px;position:absolute;top:8px;right:calc(50% - 16px)}.mas-fondo{z-index:19;background:#0f1b3d59;animation:.15s ease-out mas-fade;position:fixed;inset:0}.mas-hoja{left:0;right:0;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));background:var(--superficie);border-radius:18px 18px 0 0;max-height:70vh;padding:14px 14px 10px;animation:.18s ease-out mas-sube;position:absolute;overflow-y:auto;box-shadow:0 -8px 30px #0000002e}.mas-titulo{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.mas-titulo .cerrar{color:var(--texto-suave);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:1.6rem;line-height:1}.mas-seccion{text-transform:uppercase;letter-spacing:.08em;color:var(--texto-suave);margin:12px 4px 6px;font-size:.7rem}.mas-rejilla{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.mas-rejilla a{background:var(--fondo);color:var(--texto);text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;font-size:.78rem;font-weight:500;line-height:1.2;text-decoration:none;display:flex;position:relative}.mas-rejilla a svg{width:24px;height:24px;color:var(--primario)}.mas-rejilla a.activa{background:var(--primario-suave);color:var(--primario)}.mas-rejilla .badge-pendiente{top:6px;right:8px}@keyframes mas-sube{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes mas-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.mas-hoja,.mas-fondo{animation:none}}.nav a{min-width:68px;color:var(--texto-suave);border-top:2px solid #0000;flex-direction:column;flex:1 0 auto;justify-content:center;align-items:center;gap:3px;padding:6px 8px;font-size:.68rem;font-weight:500;text-decoration:none;display:flex;position:relative}.badge-pendiente{background:var(--peligro);color:#fff;text-align:center;border-radius:999px;min-width:15px;padding:2px 5px;font-size:.62rem;font-weight:700;line-height:1;position:absolute;top:2px;right:10px}.badge-pendiente.info{background:var(--info,#1e5eff)}.nav a svg{width:22px;height:22px}.nav a.router-link-active{color:var(--primario);border-top-color:var(--primario)}.nav .nav-titulo,.nav .nav-salir{display:none}@media (width>=900px){.app-header .usuario{display:block}.app-body{padding-left:var(--lateral-w)}.nav{width:var(--lateral-w);border-top:0;border-right:1px solid var(--borde);height:auto;padding:calc(env(safe-area-inset-top,0px) + 72px) 10px 16px;z-index:10;flex-direction:column;top:0;bottom:0;right:auto;overflow-y:auto}.nav a{border-top:0;border-radius:8px;flex-direction:row;flex:none;justify-content:flex-start;gap:10px;padding:9px 12px;font-size:.9rem}.nav a svg{width:20px;height:20px}.nav a.router-link-active{background:var(--primario-suave)}.nav .nav-titulo{text-transform:uppercase;letter-spacing:.08em;color:var(--texto-suave);padding:14px 12px 4px;font-size:.7rem;display:block}.nav .nav-salir{margin-top:auto;display:flex}.barra-movil,.mas-fondo{display:none}.app-main{padding-bottom:32px;padding-left:24px;padding-right:24px}}.tarjeta{background:var(--superficie);border-radius:var(--radio);box-shadow:var(--sombra);margin-bottom:14px;padding:16px}.tarjeta.compacta{padding:12px}.tarjeta-titulo{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.tarjeta-titulo h2,.tarjeta-titulo h3{margin:0}.encabezado{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.encabezado h1{margin:0}.acciones{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn{cursor:pointer;background:var(--primario);color:#fff;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-size:.92rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background .12s,opacity .12s;display:inline-flex}.btn:hover{background:var(--primario-osc)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.secundario{background:var(--superficie);color:var(--texto);border-color:var(--borde)}.btn.secundario:hover{background:var(--neutro-suave)}.btn.peligro{background:var(--peligro)}.btn.peligro:hover{background:#b52f2f}.btn.exito{background:var(--exito)}.btn.chico{border-radius:8px;padding:5px 10px;font-size:.8rem}.btn.grande{border-radius:14px;padding:16px 24px;font-size:1.15rem}.btn.bloque{width:100%}.btn.link{color:var(--primario);background:0 0;padding:4px 6px}.btn.link:hover{background:var(--primario-suave)}.campo{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.campo label{color:var(--texto-suave);font-size:.82rem;font-weight:600}.campo .ayuda{color:var(--texto-suave);font-size:.78rem}input[type=text],input[type=password],input[type=email],input[type=number],input[type=date],input[type=time],input[type=search],select,textarea{font:inherit;border:1px solid var(--borde);background:var(--superficie);width:100%;color:var(--texto);border-radius:9px;padding:9px 11px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primario-suave);border-color:var(--primario)}textarea{resize:vertical;min-height:80px}input:disabled,select:disabled,textarea:disabled{background:var(--neutro-suave);color:var(--texto-suave)}.con-unidad{align-items:center;gap:8px;display:flex}.con-unidad input{flex:1}.con-unidad .unidad{color:var(--texto-suave);white-space:nowrap;font-size:.85rem}.fila{grid-template-columns:1fr;gap:0 12px;display:grid}@media (width>=640px){.fila.dos{grid-template-columns:1fr 1fr}.fila.tres{grid-template-columns:1fr 1fr 1fr}}.check{cursor:pointer;align-items:center;gap:8px;font-size:.92rem;display:flex}.check input{width:18px;height:18px;accent-color:var(--primario)}.switch{cursor:pointer;align-items:center;gap:10px;display:inline-flex;position:relative}.switch input{opacity:0;width:0;height:0;position:absolute}.switch .pista{background:#c7ccd6;border-radius:13px;flex-shrink:0;width:44px;height:26px;transition:background .15s;position:relative}.switch .pista:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.switch input:checked+.pista{background:var(--exito)}.switch input:checked+.pista:after{transform:translate(18px)}.etiqueta{white-space:nowrap;background:var(--neutro-suave);color:var(--neutro);border-radius:999px;padding:2px 9px;font-size:.74rem;font-weight:600;display:inline-block}.etiqueta.presente,.etiqueta.aprobada,.etiqueta.exito,.etiqueta.a_tiempo{background:var(--exito-suave);color:var(--exito)}.etiqueta.retardo,.etiqueta.aviso,.etiqueta.pendiente{background:var(--aviso-suave);color:var(--aviso)}.etiqueta.falta,.etiqueta.rechazada,.etiqueta.peligro,.etiqueta.baja,.etiqueta.sin_entrada,.etiqueta.sin_salida{background:var(--peligro-suave);color:var(--peligro)}.etiqueta.justificado,.etiqueta.info{background:var(--info-suave);color:var(--info)}.etiqueta.descanso,.etiqueta.festivo{background:var(--morado-suave);color:var(--morado)}.etiqueta.sin_horario,.etiqueta.previo_ingreso,.etiqueta.neutro{background:var(--neutro-suave);color:var(--neutro)}.etiqueta.retardos_acumulados,.etiqueta.ubicacion_imprecisa{background:var(--aviso-suave);color:var(--aviso)}.etiqueta.lejos_sucursal,.etiqueta.rostro_no_coincide{background:var(--peligro-suave);color:var(--peligro)}.etiqueta.rostro_sin_verificar,.etiqueta.sin_conexion,.etiqueta.gafete_vencido,.etiqueta.extra_sin_evidencia,.etiqueta.comida_sin_regreso{background:var(--aviso-suave);color:var(--aviso)}.aviso-caja{border:1px solid #0000;border-radius:10px;margin-bottom:12px;padding:10px 12px;font-size:.9rem}.aviso-caja.info{background:var(--info-suave);color:#1f4f8a;border-color:#c9dcf5}.aviso-caja.exito{background:var(--exito-suave);color:#14603a;border-color:#bfe8d0}.aviso-caja.aviso{background:var(--aviso-suave);color:#7a4d00;border-color:#f5dfae}.aviso-caja.peligro{background:var(--peligro-suave);color:#8a2323;border-color:#f2c2c2}.tabla-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table.tabla{border-collapse:collapse;width:100%;font-size:.88rem}.tabla th,.tabla td{text-align:left;border-bottom:1px solid var(--borde);vertical-align:middle;padding:8px 10px}.tabla th{text-transform:uppercase;letter-spacing:.05em;color:var(--texto-suave);white-space:nowrap;background:#fafbfd;font-size:.74rem;font-weight:600}.tabla tr.inactivo td{color:var(--texto-suave)}.tabla td.num,.tabla th.num{text-align:right;font-variant-numeric:tabular-nums}.lista{margin:0;padding:0;list-style:none}.lista li{border-bottom:1px solid var(--borde);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0;display:flex}.lista li:last-child{border-bottom:0}.lista .principal{flex:1;min-width:0}.lista .titulo{font-weight:600}.lista .sub{color:var(--texto-suave);font-size:.8rem}.rejilla{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.vacio{color:var(--texto-suave);text-align:center;padding:24px 12px;font-size:.92rem}.silencio{color:var(--texto-suave);font-size:.85rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.derecha{text-align:right}.centro{text-align:center}.mt{margin-top:12px}.mb0{margin-bottom:0}.punto{background:var(--neutro);border-radius:50%;width:10px;height:10px;display:inline-block}.punto.presente,.punto.a_tiempo{background:var(--exito)}.punto.retardo,.punto.pendiente{background:var(--aviso)}.punto.falta{background:var(--peligro)}.punto.justificado{background:var(--info)}.punto.descanso,.punto.festivo{background:var(--morado)}.miniatura{object-fit:cover;background:var(--neutro-suave);border:1px solid var(--borde);cursor:pointer;border-radius:8px;width:44px;height:44px}.miniatura.grande{object-fit:contain;width:100%;height:auto;max-height:60vh}.foto-placeholder{background:var(--neutro-suave);width:44px;height:44px;color:var(--texto-suave);border-radius:8px;justify-content:center;align-items:center;font-size:.7rem;display:inline-flex}.modal-fondo{z-index:50;background:#0f142373;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.modal{background:var(--superficie);width:100%;max-height:92vh;padding:16px 16px calc(16px + env(safe-area-inset-bottom,0px));border-radius:18px 18px 0 0;overflow-y:auto;box-shadow:0 -8px 30px #0003}.modal-titulo{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.modal-titulo h3{margin:0}.modal .cerrar{cursor:pointer;color:var(--texto-suave);background:0 0;border:0;padding:4px 8px;font-size:1.4rem;line-height:1}.modal-pie{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:14px;display:flex}html:has(.modal-fondo){overflow:hidden}html:has(.modal-fondo) body{overflow:hidden}.modal{overscroll-behavior:contain;max-height:92dvh;overflow-y:auto!important}.modal .modal-pie{bottom:calc(-16px - env(safe-area-inset-bottom,0px));z-index:2;background:var(--superficie);padding:12px 0 calc(16px + env(safe-area-inset-bottom,0px));margin-bottom:calc(-16px - env(safe-area-inset-bottom,0px));border-top:1px solid var(--borde);position:sticky}@media (width>=640px){.modal-fondo{align-items:center;padding:20px}.modal{border-radius:16px;max-width:560px}.modal.ancho{max-width:860px}}.toasts{top:calc(env(safe-area-inset-top,0px) + 10px);z-index:100;pointer-events:none;flex-direction:column;gap:6px;width:min(94vw,420px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--marino);color:#fff;box-shadow:var(--sombra);border-radius:10px;padding:10px 14px;font-size:.88rem;animation:.18s ease-out entra}.toast.error{background:var(--peligro)}.toast.exito{background:var(--exito)}@keyframes entra{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.pestanas{border-bottom:1px solid var(--borde);scrollbar-width:none;gap:4px;margin-bottom:14px;display:flex;overflow-x:auto}.pestanas button{color:var(--texto-suave);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 12px;font-size:.9rem;font-weight:600}.pestanas button.activa{color:var(--primario);border-bottom-color:var(--primario)}.auth{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.credito-pie{color:var(--texto-suave);text-align:center;margin:14px 0 0;font-size:.78rem}.credito-pie a{color:inherit;text-decoration:none}.credito-pie a:hover{text-decoration:underline}.auth .tarjeta{width:100%;max-width:400px;padding:24px}.auth .logo{text-align:center;margin-bottom:18px}.auth .logo .marca{justify-content:center;margin-bottom:6px;display:flex}.auth .logo .marca-logotipo{width:auto;height:40px}.auth .enlaces{flex-direction:column;align-items:center;gap:6px;margin-top:14px;font-size:.88rem;display:flex}.codigo-grande{letter-spacing:.12em;color:var(--primario);text-align:center;background:var(--primario-suave);-webkit-user-select:all;user-select:all;border-radius:12px;margin:10px 0;padding:14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:2.2rem;font-weight:700}.cargando-barra{background:linear-gradient(90deg, var(--primario), var(--primario-claro), var(--primario));z-index:200;background-size:200% 100%;height:3px;animation:1s linear infinite barra;position:fixed;top:0;left:0;right:0}@keyframes barra{0%{background-position:0 0}to{background-position:200% 0}}@media print{.app-header,.nav,.barra-movil,.mas-fondo,.no-imprimir,.toasts{display:none!important}.app-body{padding:0}.app-main{max-width:none;padding:0}.tarjeta{box-shadow:none}body{background:#fff}}.fila .campo-completo{grid-column:1/-1}.lista li.enfocada{background:var(--primario-suave);box-shadow:inset 4px 0 0 var(--primario);border-radius:var(--radio);padding-left:16px;padding-right:12px}.aviso-liga{color:var(--primario);font-weight:600}
