:root{--bg: #0f172a;--card: #1e293b;--muted: #94a3b8;--text: #f1f5f9;--accent: #22c55e;--accent-2: #3b82f6;--danger: #ef4444;--warn: #f59e0b;--border: #334155}*{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text)}.app{max-width:480px;margin:0 auto;padding:24px 16px 48px}.brand{text-align:center;margin-bottom:24px}.brand h1{font-size:22px;margin:0}.brand p{color:var(--muted);margin:4px 0 0;font-size:13px}.brand-link{color:var(--accent-2);text-decoration:none;font-weight:600}.brand-link:hover{text-decoration:underline}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:24px;margin-bottom:16px}.estado{text-align:center;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.reloj{text-align:center;font-size:44px;font-variant-numeric:tabular-nums;font-weight:700;margin:8px 0 4px}.fecha{text-align:center;color:var(--muted);margin-bottom:20px;text-transform:capitalize}.badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600}.badge.FUERA{background:#334155;color:var(--muted)}.badge.TRABAJANDO{background:#22c55e26;color:var(--accent)}.badge.EN_PAUSA{background:#f59e0b26;color:var(--warn)}.acciones{display:grid;gap:10px;margin-top:20px}button{font:inherit;font-weight:600;border:none;border-radius:12px;padding:14px;cursor:pointer;color:#fff;transition:opacity .15s}button:disabled{opacity:.4;cursor:not-allowed}.btn-entrada{background:var(--accent)}.btn-salida{background:var(--danger)}.btn-pausa{background:var(--warn);color:#1e293b}.btn-primary{background:var(--accent-2);width:100%}.btn-ghost{background:transparent;color:var(--muted);padding:8px}.btn-google{width:100%;background:#fff;color:#1f2937;display:flex;align-items:center;justify-content:center}.btn-google span{color:#4285f4}.divisor{text-align:center;color:var(--muted);font-size:12px;margin:16px 0;text-transform:uppercase;letter-spacing:.06em}input{width:100%;padding:12px;border-radius:10px;border:1px solid var(--border);background:#0f172a;color:var(--text);font:inherit;margin-bottom:12px}label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}.error{background:#ef44441f;color:#fca5a5;border:1px solid rgba(239,68,68,.3);padding:10px 12px;border-radius:10px;font-size:14px;margin-bottom:12px}.lista{list-style:none;padding:0;margin:16px 0 0}.lista li{display:flex;justify-content:space-between;padding:10px 0;border-top:1px solid var(--border);font-size:14px}.lista .tipo{font-weight:600}.lista .hora{color:var(--muted);font-variant-numeric:tabular-nums}.tabs{display:flex;gap:8px;margin-bottom:16px}.tabs button{flex:1;background:#0f172a;color:var(--muted);border:1px solid var(--border)}.tabs button.active{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}.foot{text-align:center;color:var(--muted);font-size:12px;margin-top:24px}.creditos{text-align:center;color:var(--muted);font-size:12px;margin-top:6px}.creditos a{color:var(--accent-2);text-decoration:none;font-weight:600}.creditos a:hover{text-decoration:underline}.resumen{text-align:center;color:var(--muted);margin-top:16px;font-size:14px}.resumen strong{color:var(--text)}.rol-badge{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;background:#3b82f62e;color:var(--accent-2);border-radius:999px;padding:1px 7px;margin-left:6px;vertical-align:middle}.rango{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}.rango input[type=date]{flex:1;min-width:130px;margin:0;padding:8px 10px}.rango .btn-ghost{background:#0f172a;border:1px solid var(--border);padding:8px 12px;border-radius:10px}.emp-bloque{margin-top:12px}.emp-cab{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid var(--border)}.emp-cab .tipo{font-weight:700}.mes-nav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 0 4px}.mes-nav .btn-ghost{background:#0f172a;border:1px solid var(--border);border-radius:10px;padding:6px 14px;font-size:18px}.mes-label{font-weight:600;text-transform:capitalize}.fichaje-fila{flex-wrap:wrap}.btn-editar{background:transparent;color:var(--muted);padding:0 4px;font-size:13px}.btn-editar:hover{color:var(--accent-2)}.correccion{width:100%;display:flex;flex-direction:column;gap:8px;padding:6px 0}.correccion input,.correccion select{margin:0}.correccion-btns{display:flex;gap:8px}.correccion-btns .btn-primary,.correccion-btns .btn-ghost{width:auto;flex:1;padding:10px}.correccion-btns .btn-ghost{background:#0f172a;border:1px solid var(--border);border-radius:12px}.emp-gestion{padding:10px 0;border-top:1px solid var(--border)}.emp-gestion-info{display:flex;flex-direction:column}.emp-gestion-info .tipo{font-weight:600}.emp-mail{color:var(--muted);font-size:12px}.emp-gestion-acc{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}.emp-gestion-acc select{width:auto;flex:1;min-width:110px;margin:0;padding:8px}.emp-gestion-acc .btn-ghost{background:#0f172a;border:1px solid var(--border);border-radius:10px;padding:8px 12px}.estado-badge{font-size:12px;color:var(--muted)}.estado-badge.pendiente{color:var(--warn)}.empresa-edit{display:flex;gap:8px;align-items:center}.empresa-edit input{margin:0}.empresa-edit .btn-ghost{background:#0f172a;border:1px solid var(--border);border-radius:10px;padding:9px 12px;white-space:nowrap}.empresa-banner{display:flex;align-items:center;justify-content:center;gap:12px;margin:0 0 16px;padding:12px 16px;background:var(--card);border:1px solid var(--border);border-radius:16px}.empresa-banner-logo{height:38px;max-width:120px;object-fit:contain;border-radius:6px}.empresa-banner-nombre{font-size:18px;font-weight:700}.empresa-form{display:flex;flex-direction:column}.emp-titulo{display:flex;align-items:center;gap:8px}.emp-logo{height:26px;max-width:80px;object-fit:contain;border-radius:5px}.logo-fila{display:flex;gap:12px;align-items:center;margin-bottom:12px}.logo-prev{height:56px;width:56px;object-fit:contain;background:#0f172a;border:1px solid var(--border);border-radius:10px}.logo-prev.vacio{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:11px;text-align:center}.logo-acc{display:flex;gap:8px;flex-wrap:wrap}.logo-btn{background:var(--accent-2);color:#fff;border-radius:10px;padding:9px 12px;cursor:pointer}.logo-acc .btn-ghost{background:#0f172a;border:1px solid var(--border);border-radius:10px;padding:9px 12px}.aviso{background:#22c55e1f;color:#86efac;border:1px solid rgba(34,197,94,.3);padding:9px 12px;border-radius:10px;font-size:13px;margin-bottom:12px}.invitar{margin-top:16px;border-top:1px solid var(--border);padding-top:14px}.invitar-titulo{font-size:13px;color:var(--muted);margin-bottom:10px}select{width:100%;padding:12px;border-radius:10px;border:1px solid var(--border);background:#0f172a;color:var(--text);font:inherit;margin-bottom:12px}.emp-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:12px 0 4px;font-size:13px;color:var(--muted)}.emp-orden{display:flex;align-items:center;gap:6px}.emp-orden select{width:auto;margin:0;padding:6px 8px}.emp-check{display:flex;align-items:center;gap:6px;cursor:pointer}.emp-check input{width:auto;margin:0}.emp-gestion.archivado{opacity:.6}.btn-borrar{color:var(--danger)!important}.btn-borrar:hover{background:#ef44441f!important}.jornada-edit{width:100%;margin-top:8px;padding:10px 12px;background:#0f172a;border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:10px;font-size:13px;color:var(--muted)}.jornada-horas{display:flex;align-items:center;gap:8px}.jornada-horas input{width:80px;margin:0;padding:6px 8px}.jornada-dias{display:flex;flex-direction:column;gap:6px}.dia-chips{display:flex;gap:6px}.dia-chip{width:34px;padding:8px 0;background:#1e293b;color:var(--muted);border:1px solid var(--border);border-radius:8px;font-weight:700;font-size:13px}.dia-chip.on{background:var(--accent-2);color:#fff;border-color:var(--accent-2)}.jornada-rec{display:flex;align-items:center;gap:8px;cursor:pointer}.jornada-rec input{width:auto;margin:0}.geo-link{text-decoration:none;font-size:13px}.audit-fila{flex-direction:column;align-items:flex-start;gap:4px}.audit-main{font-size:14px}.audit-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.audit-badge{font-size:10px;font-weight:700;text-transform:uppercase;padding:1px 7px;border-radius:999px}.audit-badge.vigente{background:#22c55e26;color:var(--accent)}.audit-badge.corregido,.audit-badge.anulado{background:#334155;color:var(--muted)}.audit-badge.correccion{background:#3b82f62e;color:var(--accent-2)}.audit-badge.anulacion{background:#ef444426;color:#fca5a5}.audit-extra{font-size:11px;color:var(--muted)}.docs-lista{margin-top:12px;display:flex;flex-direction:column;gap:8px}.doc-item{border:1px solid var(--border);border-radius:10px;background:#0f172a}.doc-item summary{cursor:pointer;padding:12px 14px;font-weight:600;color:var(--text)}.doc-cuerpo{padding:0 14px 14px}.doc-pdf{background:#1e293b;border:1px solid var(--border);border-radius:10px;padding:8px 12px;margin-bottom:10px}.doc-intro{color:var(--muted);font-size:13px}.doc-seccion h4{margin:14px 0 4px;font-size:14px;color:var(--text)}.doc-seccion p{margin:0 0 6px;font-size:13px;color:var(--muted);line-height:1.5}.doc-nota{margin-top:14px;font-size:12px;color:var(--muted);font-style:italic}.privacidad{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.privacidad summary{cursor:pointer;color:var(--accent-2);font-size:13px;font-weight:600}.privacidad-texto{margin-top:10px;font-size:13px;color:var(--muted);line-height:1.5}.privacidad-texto strong{color:var(--text)}.privacidad-texto p{margin:0 0 10px}.kiosko{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;z-index:1000}.kiosko-salir{position:absolute;top:16px;right:16px;background:transparent;color:var(--muted);border:1px solid var(--border);padding:8px 14px}.kiosko-titulo{margin:0 0 24px;font-size:22px}.kiosko-pin{font-size:32px;letter-spacing:.15em;min-height:42px;color:var(--text);margin-bottom:20px;font-variant-numeric:tabular-nums}.kiosko-pin:not(:has(*)){color:var(--muted)}.kiosko-pad{display:grid;grid-template-columns:repeat(3,90px);gap:14px}.kiosko-tecla{width:90px;height:90px;font-size:30px;background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:16px}.kiosko-tecla:active{background:#334155}.kiosko-borrar{color:var(--muted)}.kiosko-ok-tecla{background:var(--accent);color:#fff;border-color:var(--accent)}.kiosko-acciones{display:flex;flex-direction:column;gap:12px;width:100%;max-width:360px;text-align:center}.kiosko-nombre{font-size:26px;font-weight:700;margin:0}.kiosko-estado-txt{color:var(--muted);margin:0 0 8px}.kiosko-accion{padding:20px;font-size:18px}.kiosko-ok{background:#22c55e26;color:#86efac;border:1px solid rgba(34,197,94,.4);padding:16px 22px;border-radius:12px;font-size:20px;font-weight:600;margin-bottom:20px}.kiosko-error{font-size:16px;margin-bottom:16px}.alarma-fila{align-items:center}.alarma-medio{display:flex;align-items:center;gap:10px}.alarma-badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase}.alarma-badge.no_fichado{background:#ef444426;color:#fca5a5}.alarma-badge.exceso{background:#f59e0b26;color:var(--warn)}.alarma-badge.incompleta{background:#f59e0b1f;color:var(--warn)}.stats-rankings{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.rank-chip{background:#0f172a;border:1px solid var(--border);border-radius:999px;padding:6px 12px;font-size:12px;color:var(--muted)}.rank-chip strong{color:var(--text)}.stat-emp{padding:10px 0;border-top:1px solid var(--border)}.stat-cab{display:flex;justify-content:space-between;margin-bottom:6px}.stat-cab .tipo{font-weight:600}.stat-bar{height:8px;background:#0f172a;border-radius:999px;overflow:hidden}.stat-bar-fill{height:100%;border-radius:999px}.stat-bar-fill.horas{background:var(--accent-2)}.stat-metricas{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px;font-size:12px;color:var(--muted)}.stat-metricas strong{color:var(--text)}.af-fila{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--border)}.af-form{display:flex;flex-direction:column;gap:8px;margin-top:10px}.af-form select,.af-form input{margin:0}.af-fechas{display:flex;gap:8px}.af-fechas input{flex:1;min-width:0}.estrecho{max-width:480px;margin:0 auto}@media(min-width:700px){.app{max-width:1000px}.panel{column-count:2;column-gap:16px}.panel>*{break-inside:avoid}}@media(min-width:1200px){.app{max-width:1200px}.panel{column-count:3}}
