:root,:root[data-theme=light]{--bg: #f3f1f0;--surface: #ffffff;--surface-alt: #f6f4f3;--border: #a61c1e;--border-subtle: #d9d3d1;--divider: #ebe6e4;--text: #1c1717;--text-muted: #6b6261;--placeholder: #a39b9a;--accent: #a61c1e;--accent-fg: #a61c1e;--accent-text: #ffffff;--accent-muted: #d9a3a4;--accent-soft: #f8e9e9;--success: #2e7d32;--success-soft: #e7f3e8;--warning: #f2a900;--warning-soft: #fff4d6;--warning-text: #6b4a00;--danger: #a61c1e;--cancel-bg: #efebea;--cancel-border: #d9d3d1;--cancel-text: #4d4544;--overlay: rgba(28, 23, 23, .5);--shadow: rgba(60, 20, 20, .08)}:root[data-theme=dark]{--bg: #0d0b0b;--surface: #191515;--surface-alt: #231e1e;--border: #a61c1e;--border-subtle: #3a3232;--divider: #2c2525;--text: #f5f1f0;--text-muted: #a89e9d;--placeholder: #7a706f;--accent: #a61c1e;--accent-fg: #f06467;--accent-text: #ffffff;--accent-muted: #5a1f20;--accent-soft: #2e1617;--success: #66bb6a;--success-soft: #16261a;--warning: #f2a900;--warning-soft: #2e2512;--warning-text: #ffd36b;--danger: #f06467;--cancel-bg: #262020;--cancel-border: #3a3232;--cancel-text: #c9c0bf;--overlay: rgba(0, 0, 0, .7);--shadow: rgba(0, 0, 0, .4)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background-color:var(--bg);color:var(--text);font-size:16px;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit}input,select,textarea{font-family:inherit}input::placeholder,textarea::placeholder{color:var(--placeholder)}.icon{display:inline-flex;flex-shrink:0}.icon svg{width:100%;height:100%;fill:currentColor}.spinner{width:36px;height:36px;border:4px solid var(--surface-alt);border-top-color:var(--accent);border-radius:50%;animation:spinner-rotate .8s linear infinite;margin:40px auto}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.pantalla{min-height:100vh;display:flex;flex-direction:column}.contenido{flex:1;width:100%;max-width:720px;margin:0 auto;padding:12px 16px calc(env(safe-area-inset-bottom,0px) + 28px);display:flex;flex-direction:column;gap:14px}.card{background:var(--surface);border:1px solid var(--border-subtle);border-radius:16px;padding:16px;box-shadow:0 1px 3px var(--shadow)}.seccion-titulo{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--accent-fg);margin:6px 2px 0}.texto-muted{color:var(--text-muted);font-size:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 18px;border-radius:12px;font-size:16px;font-weight:700;letter-spacing:.3px}.btn:disabled{opacity:.55;cursor:default}.btn--primario{background:var(--accent);color:var(--accent-text)}.btn--secundario{background:var(--surface-alt);border:1px solid var(--border-subtle);color:var(--text)}.btn--alerta{background:var(--warning);color:#1a1a1a}.btn--grande{min-height:64px;font-size:18px;text-transform:uppercase}.btn--bloque{width:100%}.campo{display:flex;flex-direction:column;gap:6px}.campo-label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted)}.campo-obligatorio{color:var(--accent-fg)}.campo-input{width:100%;min-height:54px;padding:12px 14px;border-radius:12px;border:1.5px solid var(--border-subtle);background:var(--surface-alt);color:var(--text);font-size:18px;outline:none}.campo-input:focus{border-color:var(--accent-fg)}.campo-input--codigo{font-family:ui-monospace,JetBrains Mono,Roboto Mono,monospace;font-weight:700;letter-spacing:1px;text-transform:uppercase}textarea.campo-input{min-height:96px;resize:vertical;font-size:16px}.campo-error{color:var(--danger);font-size:14px;font-weight:600}.campo-auto{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:var(--surface-alt);border:1px dashed var(--border-subtle);font-size:15px}.campo-auto span:first-child{color:var(--text-muted)}.campo-auto strong{text-align:right}.segmentos{display:flex;flex-wrap:wrap;gap:8px}.segmento{flex:1;min-width:64px;min-height:52px;border-radius:12px;border:1.5px solid var(--border-subtle);background:var(--surface-alt);font-size:17px;font-weight:800;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px}.segmento small{font-size:11px;font-weight:600;color:var(--text-muted)}.segmento--activo{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.segmento--activo small{color:#ffffffd9}.foto-vacia{display:flex;flex-direction:column;gap:10px}.foto-preview{position:relative;border-radius:14px;overflow:hidden;border:1.5px solid var(--border-subtle)}.foto-preview img{display:block;width:100%;max-height:320px;object-fit:cover}.foto-repetir{position:absolute;right:10px;bottom:10px;display:flex;align-items:center;gap:6px;padding:10px 14px;border-radius:10px;background:#000000b3;color:#fff;font-weight:700}.foto-visita{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.foto-visita figcaption{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted)}.foto-visita img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:12px;border:1px solid var(--border-subtle)}.foto-visita-vacia{aspect-ratio:4 / 3;display:flex;align-items:center;justify-content:center;text-align:center;padding:12px;border-radius:12px;background:var(--surface-alt);color:var(--text-muted);font-size:13px}.foto-zoom{position:fixed;inset:0;z-index:1200;background:#000000f2;display:flex;align-items:center;justify-content:center}.foto-zoom img{max-width:100%;max-height:100%;object-fit:contain}.chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}.chip--dentro{background:var(--accent-soft);color:var(--accent-fg)}.chip--finalizado{background:var(--success-soft);color:var(--success)}.chip--pendiente{background:var(--warning-soft);color:var(--warning-text)}.chip--error,.chip--offline{background:var(--accent);color:#fff}.chip--offline{background:var(--text-muted)}.chip--diferencia{background:var(--warning);color:#1a1a1a}.alerta-diferencia{border-radius:16px;border:3px solid var(--warning);background:var(--warning-soft);padding:16px;display:flex;flex-direction:column;gap:12px}.alerta-diferencia-titulo{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:900;color:var(--warning-text);text-transform:uppercase}.alerta-diferencia-titulo .icon{color:var(--warning)}.comparacion{display:grid;grid-template-columns:1fr 1fr;gap:10px}.comparacion div{background:var(--surface);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.comparacion span{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--text-muted)}.comparacion strong{font-family:ui-monospace,Roboto Mono,monospace;font-size:20px;word-break:break-all}.lista{display:flex;flex-direction:column;gap:10px}.item-visita{display:flex;flex-direction:column;gap:8px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border-subtle);border-left:5px solid var(--accent);border-radius:14px;padding:12px 14px;box-shadow:0 1px 3px var(--shadow);color:var(--text)}.item-visita--finalizado{border-left-color:var(--success)}.item-visita-fila{display:flex;align-items:center;justify-content:space-between;gap:8px}.item-placa{font-family:ui-monospace,Roboto Mono,monospace;font-size:22px;font-weight:800;letter-spacing:1px}.item-detalle{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:14px;color:var(--text-muted)}.item-detalle b{color:var(--text);font-weight:700}.vacio{text-align:center;padding:36px 16px;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:10px}.buscador{display:flex;align-items:center;gap:8px;background:var(--surface);border:1.5px solid var(--border-subtle);border-radius:14px;padding:0 12px}.buscador .icon{color:var(--text-muted)}.buscador input{flex:1;min-width:0;min-height:54px;border:none;outline:none;background:transparent;color:var(--text);font-size:18px}.datos{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;font-size:15px}.datos dt{color:var(--text-muted)}.datos dd{font-weight:600;text-align:right;word-break:break-word}.fotos-par{display:flex;gap:10px}.mensaje-error{display:flex;align-items:flex-start;gap:8px;padding:12px 14px;border-radius:12px;background:var(--accent-soft);color:var(--danger);font-weight:600}.filtros{display:grid;grid-template-columns:1fr 1fr;gap:10px}.filtros .campo-input{min-height:48px;font-size:16px}.actualizacion{position:fixed;left:12px;right:12px;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);z-index:1050;display:flex;align-items:center;gap:10px;padding:12px 12px 12px 16px;border-radius:14px;background:#1c1717;color:#fff;box-shadow:0 6px 24px #00000059;font-weight:600;max-width:560px;margin:0 auto}.actualizacion span{flex:1}.actualizacion-btn{background:var(--accent);color:#fff;padding:10px 14px;border-radius:10px;font-weight:800}.actualizacion-cerrar{color:#fff;opacity:.7;display:flex}.alert-backdrop{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.alert-dialog{background:var(--surface);border:2px solid var(--accent);border-radius:16px;padding:24px 20px;width:100%;max-width:340px}.alert-dialog-title{color:var(--text);font-size:18px;font-weight:700;margin-bottom:10px;text-align:center}.alert-dialog-message{color:var(--text-muted);font-size:15px;text-align:center;margin-bottom:20px;white-space:pre-line}.alert-dialog-actions{display:flex;gap:12px;justify-content:center}.alert-dialog-btn{flex:1;padding:12px 16px;border-radius:10px;background:var(--accent);color:var(--accent-text);font-size:15px;font-weight:700}.alert-dialog-btn--cancel{background:var(--cancel-bg);border:1px solid var(--cancel-border);color:var(--cancel-text)}.alert-dialog-btn--danger{background:var(--danger);color:#fff}.logos{display:flex;align-items:center;justify-content:center;gap:12px}.logos-sp6{height:40px;width:auto}.logos-crgate{height:18px;width:auto}.logos-divisor{width:1px;align-self:stretch;background:var(--border-subtle)}.logos--compacto .logos-sp6{height:34px}.logos--compacto .logos-crgate{height:15px}.logos--grande{flex-direction:column;gap:18px}.logos--grande .logos-sp6{height:110px}.logos--grande .logos-crgate{height:24px}.logos--grande .logos-divisor{display:none}.login{min-height:100vh;position:relative;background:linear-gradient(180deg,var(--accent-soft) 0,var(--bg) 320px)}.login-tema{position:absolute;top:calc(env(safe-area-inset-top,0px) + 16px);right:16px;width:44px;height:44px;border-radius:22px;background:var(--surface);border:1px solid var(--border-subtle);color:var(--accent-fg);display:flex;align-items:center;justify-content:center}.login-contenido{max-width:420px;margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + 48px) 20px 24px;display:flex;flex-direction:column;gap:16px}.login-marca{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;margin-bottom:8px}.login-marca h1{margin-top:14px;font-size:24px;font-weight:900;color:var(--accent-fg);text-transform:uppercase;letter-spacing:.5px}.login-marca p{color:var(--text-muted)}.login-form{display:flex;flex-direction:column;gap:14px;border-top:4px solid var(--accent)}.login-buscador{position:relative}.login-check{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--success)}.login-resultados{display:flex;flex-direction:column;border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden;margin-top:-6px}.login-resultados button{text-align:left;padding:14px;font-size:16px;border-bottom:1px solid var(--divider);background:var(--surface)}.login-resultados button:last-child{border-bottom:none}.login-version{text-align:center;color:var(--text-muted);font-size:12px}.login-overlay{position:fixed;inset:0;z-index:950;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:20px}.login-cuentas{width:100%;max-width:400px;max-height:80vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.login-cuentas h3{text-align:center;margin-bottom:6px}.login-cuenta{display:flex;align-items:center;border:1px solid var(--border-subtle);border-radius:12px}.login-cuenta-entrar{flex:1;display:flex;align-items:center;gap:12px;padding:12px;font-size:17px;font-weight:700;text-align:left}.login-cuenta-entrar .icon{color:var(--accent-fg)}.login-cuenta-borrar{padding:12px;color:var(--danger);display:flex}.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--surface);padding:8px 12px;padding-top:calc(env(safe-area-inset-top,0px) + 8px);border-bottom:4px solid var(--accent)}.topbar-btn,.topbar-sync{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center;color:var(--accent-fg);border-radius:12px}.topbar-sync--pend{color:var(--warning)}.topbar-sync--offline{color:var(--text-muted)}.topbar-badge{position:absolute;top:2px;right:0;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--warning);color:#1a1a1a;font-size:12px;font-weight:800;line-height:20px}.topbar-titulo{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 16px 4px}.topbar-titulo h1{font-size:22px;font-weight:800;letter-spacing:-.2px}.menu-overlay{position:fixed;inset:0;z-index:900;background:var(--overlay)}.menu{position:absolute;top:0;bottom:0;left:0;width:min(86vw,340px);background:var(--surface);display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);overflow-y:auto;box-shadow:4px 0 24px #0000004d}.menu-cabecera{display:flex;align-items:center;gap:12px;padding:22px 18px;background:var(--accent);color:#fff}.menu-cabecera div{display:flex;flex-direction:column;min-width:0}.menu-cabecera strong{font-size:17px}.menu-cabecera span{font-size:13px;opacity:.85}.menu-item{display:flex;align-items:center;gap:14px;padding:16px 18px;font-size:16px;font-weight:600;text-align:left;border-bottom:1px solid var(--divider);color:var(--text)}.menu-item .icon{color:var(--accent-fg)}.menu-item--salir,.menu-item--salir .icon{color:var(--danger)}.menu-badge{margin-left:auto;background:var(--warning);color:#1a1a1a;border-radius:12px;padding:2px 9px;font-size:13px;font-weight:800}.menu-pie{margin-top:auto;padding:20px;display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--text-muted);font-size:12px}.acciones{display:grid;grid-template-columns:1fr 1fr;gap:12px}.accion{min-height:112px;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:14px;font-size:17px;font-weight:900;text-transform:uppercase;letter-spacing:.4px;text-align:center;box-shadow:0 2px 8px var(--shadow)}.accion--ingreso{background:var(--accent);color:#fff}.accion--salida{background:var(--surface);color:var(--accent-fg);border:3px solid var(--accent)}.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.kpi{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;column-gap:10px;text-align:left;background:var(--surface);border:1px solid var(--border-subtle);border-radius:14px;padding:12px 14px;color:var(--text)}.kpi:disabled{cursor:default}.kpi .icon{grid-row:span 2;color:var(--accent-fg)}.kpi strong{font-size:26px;font-weight:900;line-height:1.1}.kpi span{font-size:13px;color:var(--text-muted);font-weight:600}.kpi--destacado{grid-column:span 2;background:var(--accent-soft);border-color:var(--accent)}.kpi--destacado strong{font-size:36px;color:var(--accent-fg)}.kpi--alerta{background:var(--warning-soft);border:2px solid var(--warning)}.kpi--alerta .icon,.kpi--alerta strong{color:var(--warning-text)}.panel-sync{text-align:right;font-size:12px;margin-top:-6px}.aviso-sync{display:flex;align-items:center;gap:10px;text-align:left;padding:12px 14px;border-radius:12px;background:var(--warning-soft);color:var(--warning-text);font-weight:700;border:1px solid var(--warning)}.cam{position:fixed;inset:0;z-index:1100;background:#000;display:flex;flex-direction:column}.cam-video{flex:1;width:100%;min-height:0;object-fit:cover}.cam-guia{position:absolute;left:8%;right:8%;top:22%;height:34%;border:3px dashed rgba(255,255,255,.85);border-radius:14px;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.cam-guia span{transform:translateY(150%);color:#fff;font-size:15px;font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.8)}.cam-error{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:32px;text-align:center;color:#fff;background:#000000d9;font-size:17px}.cam-barra{display:flex;align-items:center;justify-content:space-around;padding:18px 12px;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 18px);background:#000}.cam-btn-sec{display:flex;flex-direction:column;align-items:center;gap:4px;color:#fff;font-size:13px;width:72px}.cam-btn-sec:disabled{opacity:.4}.cam-disparador{width:78px;height:78px;border-radius:50%;background:#fff;border:6px solid var(--accent);box-shadow:0 0 0 3px #fff}.cam-disparador:disabled{opacity:.4}.cam-disparador:active{transform:scale(.94)}
