:root{--navy:#16213f;--navy2:#1d2a50;--blue:#536681;--cyan:#cfd5df;--silver:#d5dae3;--bg:#f2f4f8;--text:#17213a;--muted:#68748a;--line:#dfe3eb;--shadow:0 12px 34px rgba(22,33,63,.11)}
.login-screen{background:radial-gradient(circle at 50% -10%,#35456e 0%,#1d2a50 36%,#111a35 100%)}
.login-brand.logo-panel{width:min(76vw,320px);height:126px;margin-bottom:36px;border-radius:20px;overflow:hidden;box-shadow:0 18px 45px rgba(0,0,0,.28);border:1px solid rgba(213,218,227,.28)}
.logo-panel img{width:100%;height:100%;object-fit:cover}.primary{background:linear-gradient(135deg,#26375d,#63728b);box-shadow:0 8px 18px rgba(22,33,63,.22)}
.brand-ribbon{height:48px;background:#16213f;display:flex;align-items:center;justify-content:center;gap:12px;color:#d5dae3;font-size:10px;font-weight:800;letter-spacing:.16em;border-bottom:1px solid #34415f}.brand-ribbon img{height:35px;width:86px;object-fit:cover}
.topbar{background:linear-gradient(90deg,#16213f,#202f56)}.avatar,.big-avatar{background:linear-gradient(145deg,#8e99ac,#45546f)}.route-line span,.progress span{background:linear-gradient(90deg,#77849a,#27395f)}.score-card{background:linear-gradient(140deg,#16213f,#2c3d66)}.bars i{background:linear-gradient(#8e99ac,#35496f)}.next-card{border-color:#cbd2de}.secondary{background:#eef1f6;color:#34496e;border-color:#d6dce5}.quick>span,.metric-icon.blue,.settings button>span{background:#edf0f5;color:#405474}.bottom-nav button.active,.eyebrow,.next-top small,.next-number{color:#344b73}

/* Línea operativa horizontal */
.timeline-scroll{overflow-x:auto;margin:0 -18px;padding:4px 18px 16px;scrollbar-width:none}.timeline-scroll::-webkit-scrollbar{display:none}.timeline{display:flex;min-width:760px;padding:0 4px}.time-item{display:flex;flex:1;min-width:122px;flex-direction:column;align-items:center;text-align:center;padding:0 8px;gap:8px}.time-item:not(:last-child):before{left:50%;right:-50%;top:16px;bottom:auto;width:auto;height:2px}.time-dot{flex:0 0 34px}.time-copy{padding:0}.time-copy b{display:block;line-height:1.25}.time-copy p{line-height:1.35}.time-item.done:not(:last-child):before{background:#8190a8}.time-item.current:not(:last-child):before{background:linear-gradient(90deg,#8190a8 0 10%,#dfe7ef 10%)}
.messages-heading{display:flex;justify-content:space-between;align-items:end;margin:26px 2px 12px}.messages-heading h2{font-size:18px;margin:0}.messages-heading p{font-size:11px;color:var(--muted);margin:3px 0 0}.messages-heading button{border:1px solid #cbd3df;background:#fff;color:#344b73;border-radius:10px;padding:8px 11px;font-size:12px;font-weight:800}.operation-messages{background:#fff;border:1px solid var(--line);border-radius:17px;overflow:hidden;box-shadow:0 8px 24px rgba(22,33,63,.07)}.message-item{display:grid;grid-template-columns:38px 1fr;gap:11px;padding:15px;border-bottom:1px solid #edf0f4}.message-item:last-child{border-bottom:0}.message-avatar{width:36px;height:36px;border-radius:11px;background:#e9edf3;color:#344b73;display:grid;place-items:center;font-size:10px;font-weight:800}.operator-avatar{background:#27395f;color:#fff;border-radius:50%}.system-message .message-avatar{background:#e2f5ea;color:#16875c;font-size:16px}.ops-message{background:#f5f7fa}.message-meta{display:flex;justify-content:space-between;gap:10px}.message-meta b{font-size:13px}.message-meta time{font-size:10px;color:#8a95a6;white-space:nowrap}.message-item p{font-size:13px;line-height:1.5;margin:5px 0;color:#435069}.message-photo{display:inline-flex;gap:6px;background:#eef1f5;border-radius:9px;padding:7px 9px;font-size:11px;color:#526079}.new-message{animation:messageIn .28s ease-out}@keyframes messageIn{from{opacity:0;transform:translateY(8px)}}
@media(min-width:800px){.timeline-scroll{margin:0;padding-left:0;padding-right:0}.timeline{min-width:100%}}

/* ===== v1.1 · Identidad GDO, tipografía local y ajustes para celular ===== */
@font-face{font-family:Manrope;font-weight:400;font-display:swap;src:url(fonts/manrope-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:Manrope;font-weight:500;font-display:swap;src:url(fonts/manrope-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:Manrope;font-weight:600;font-display:swap;src:url(fonts/manrope-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:Manrope;font-weight:700;font-display:swap;src:url(fonts/manrope-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:Manrope;font-weight:800;font-display:swap;src:url(fonts/manrope-latin-800-normal.woff2) format('woff2')}
html,body{-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}
/* Logo transparente: sin recorte ni recuadro */
.login-brand.logo-panel{width:min(72vw,300px);height:auto;border:0;box-shadow:none;border-radius:0;overflow:visible;margin-bottom:34px}
.logo-panel img{height:auto;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(0,0,0,.25))}
.brand-ribbon img{height:22px;width:auto;object-fit:contain}
/* Zonas seguras (notch / isla dinámica / barra de estado de Android) */
.login-screen{padding-top:calc(54px + env(safe-area-inset-top))}
.brand-ribbon{height:calc(48px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}
.bottom-nav{height:calc(74px + env(safe-area-inset-bottom))}
.app{padding-bottom:calc(92px + env(safe-area-inset-bottom))}
.toast{bottom:calc(96px + env(safe-area-inset-bottom))!important}
/* Fechas del reporte ya no se salen de la tarjeta */
.date-grid>label{min-width:0}.date-grid input{min-width:0;width:100%;padding:13px 10px;-webkit-appearance:none;appearance:none}
/* Selector de periodo en Métricas */
#metrics .section-head select{border:1px solid #cbd3df;background:#fff;color:#344b73;border-radius:10px;padding:8px 10px;font-weight:700;font-size:12px}
/* Acentos GDO */
.eyebrow,.text-button{color:#536681}.login-foot{color:#8e99ac}.report-preview{background:#eef1f6}.report-preview>span{color:#344b73}

/* ===== v1.6 · pantallas con datos reales ===== */
.op-selector{display:flex;gap:8px;overflow-x:auto;margin:0 -18px 12px;padding:0 18px 2px;scrollbar-width:none}.op-selector:empty{display:none}
.op-selector button{flex:0 0 auto;border:1px solid #cbd3df;background:#fff;color:#34496e;border-radius:20px;padding:8px 13px;font-size:12px;font-weight:800}
.op-selector button.active{background:#16213f;color:#fff;border-color:#16213f}
.empty-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:34px 22px;text-align:center;color:var(--muted)}
.empty-card b{display:block;color:var(--text);font-size:17px;margin:8px 0 4px}.empty-card .big{font-size:34px}
.spinner{display:inline-block;width:26px;height:26px;border:3px solid #d5dae3;border-top-color:#16213f;border-radius:50%;animation:gira .8s linear infinite}@keyframes gira{to{transform:rotate(360deg)}}
.tag{display:inline-block;font-size:11px;font-weight:800;padding:5px 9px;border-radius:8px;background:#eef1f6;color:#344b73}
.tag.ok{background:#dff7ea;color:#087742}.tag.warn{background:#fff1d6;color:#9a6200}.tag.red{background:#ffe7e8;color:#b72f37}
.time-foto{border:0;background:#eef1f6;color:#344b73;border-radius:8px;font-size:11px;font-weight:700;padding:5px 8px;margin-top:2px}
.time-foto.has{background:#dff7ea;color:#087742}
.photo-zone.ready{border-color:#11a861;background:#effbf4;color:#087742}
.sheet textarea{width:100%;min-height:90px;border:1px solid #cbd7e5;border-radius:12px;padding:12px;font:inherit;margin-top:6px}
.sheet label{display:block;font-weight:700;font-size:13px;margin-top:12px}
.btn-busy{opacity:.6;pointer-events:none}
.kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.kpi{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px}.kpi b{display:block;font-size:24px;color:#16213f}.kpi span{font-size:12px;color:var(--muted)}
.rank{background:#fff;border:1px solid var(--line);border-radius:16px;padding:15px;margin-bottom:12px}.rank h2{font-size:15px;margin:0 0 10px}
.rank-row{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:13px;padding:6px 0;border-top:1px solid #edf0f4}.rank-row:first-of-type{border-top:0}
.rank-bar{grid-column:1/-1;height:6px;border-radius:4px;background:#eef1f6;overflow:hidden}.rank-bar i{display:block;height:100%;background:linear-gradient(90deg,#8e99ac,#27395f)}
.detail-steps{list-style:none;padding:0;margin:10px 0}.detail-steps li{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:7px 0;border-bottom:1px solid #edf0f4}.detail-steps li span{color:var(--muted)}
.report-line{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:10px;font-size:13px}.report-line b{display:block}

/* ===== v1.7 · mapa GPS embebido ===== */
.gps-embed{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#e9edf3}
.gps-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.gps-cargando{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;color:var(--muted);font-size:12px}
.gps-mini{background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;margin:14px 0 4px}
.gps-mini-head{display:flex;justify-content:space-between;align-items:center;margin:0 2px 10px;font-size:14px}
.text-link{border:0;background:none;color:#344b73;font-weight:800;font-size:12px}

/* ===== v1.8 ===== */
/* El emoji 🚛 viene mirando a la izquierda: se voltea para que avance hacia el destino */
.route-line i{transform:scaleX(-1);transition:left .4s ease}
.foto-opciones{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.foto-opciones button{border:1px solid #cbd3df;background:#fff;color:#16213f;border-radius:10px;padding:11px 8px;font-weight:800;font-size:14px}

/* ===== v1.9 · documentos ===== */
.doc-row{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.doc-btn{flex:1;min-width:120px;border:1px solid #cbd3df;background:#f5f7fa;color:#16213f;border-radius:11px;padding:11px;font-weight:800;font-size:14px}
.toast{white-space:normal!important;max-width:min(92vw,420px);width:max-content;text-align:center;line-height:1.35}

/* ===== v2.0 · ¿A dónde voy? ===== */
.lugar-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px;margin:0 0 12px;box-shadow:0 8px 24px rgba(22,33,63,.06)}
.lugar-rol{display:block;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#536681}
.lugar-nombre{display:block;font-size:18px;margin:3px 0 4px;color:#16213f}
.lugar-dir{font-size:13px;color:#435069;margin:0 0 8px;line-height:1.45}
.lugar-ref{font-size:12px;color:var(--muted);margin:0 0 8px}
.lugar-mapa{height:190px;margin:10px 0}
.lugar-acciones{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lugar-acciones button{padding:12px 8px;font-size:14px}
.lugar-acciones button:only-child{grid-column:1/-1}

/* ===== v2.1 · hoja deslizable, visor de fotos y chat ===== */
.sheet{touch-action:pan-y;will-change:transform}
.sheet:before{content:'';display:block;width:44px;height:5px;border-radius:3px;background:#cfd6e1;margin:-6px auto 14px}
.time-foto.has{cursor:pointer}
.visor{position:fixed;inset:0;z-index:120;background:rgba(8,12,24,.94);display:grid;place-items:center;padding:calc(20px + env(safe-area-inset-top)) 12px 20px}
.visor img{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px}
.visor.cargando img{display:none}.visor-carga{display:none}.visor.cargando .visor-carga{display:block}
.visor-cerrar{position:absolute;top:calc(14px + env(safe-area-inset-top));right:14px;width:42px;height:42px;border-radius:50%;border:0;background:rgba(255,255,255,.16);color:#fff;font-size:18px;z-index:2}
.chat-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:10px;background:#df3f48;color:#fff;font-size:11px;margin-left:4px;padding:0 5px}
.chat-preview{cursor:pointer}.chat-preview .burbuja{margin:10px 12px}
/* pantalla de chat */
body.en-chat .bottom-nav{display:none}
body.en-chat .app{padding-bottom:0}
.chat-page.active{display:flex;flex-direction:column;height:calc(100dvh - 124px - env(safe-area-inset-top));margin:-18px -18px 0;background:#e9edf3}
.chat-head{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--line)}
.chat-head b{display:block;font-size:16px}.chat-head small{color:var(--muted);font-size:12px}
.chat-leyenda{display:flex;gap:8px;justify-content:center;padding:8px;background:#f5f7fa;border-bottom:1px solid var(--line)}
.ley{font-size:11px;font-weight:800;padding:4px 10px;border-radius:12px}
.ley.yo{background:#16213f;color:#fff}.ley.staff{background:#fff;color:#344b73;border:1px solid #cbd3df}.ley.cli{background:#fff1d6;color:#8a5a00}
.chat-lista{flex:1;overflow-y:auto;padding:12px 12px 8px;-webkit-overflow-scrolling:touch}
.chat-dia{text-align:center;margin:12px 0 8px}.chat-dia span{background:#d9dfe8;color:#435069;font-size:11px;font-weight:700;padding:4px 10px;border-radius:10px;text-transform:capitalize}
.chat-aviso{text-align:center;color:var(--muted);font-size:13px;margin:30px 20px}
.burbuja{max-width:82%;margin:6px 0;padding:8px 11px 6px;border-radius:14px;position:relative;box-shadow:0 1px 1px rgba(0,0,0,.06);font-size:14px;line-height:1.4;word-wrap:break-word}
.burbuja p{margin:0;white-space:pre-wrap}
.burbuja time{display:block;text-align:right;font-size:10px;opacity:.7;margin-top:3px}
.burbuja.yo{margin-left:auto;background:#16213f;color:#fff;border-bottom-right-radius:4px}
.burbuja.staff{background:#fff;color:#17213a;border-bottom-left-radius:4px;border-left:3px solid #536681}
.burbuja.cli{background:#fff4dc;color:#3d2b00;border-bottom-left-radius:4px;border-left:3px solid #e8a100}
.burbuja.problema{box-shadow:0 0 0 2px #df3f48 inset}
.burbuja.enviando{opacity:.65}
.b-autor{display:block;font-size:11px;margin-bottom:2px;color:#536681}.burbuja.cli .b-autor{color:#9a6200}
.b-problema{display:inline-block;background:#ffe7e8;color:#b72f37;font-size:11px;font-weight:800;padding:3px 7px;border-radius:7px;margin-bottom:4px}
.burbuja.yo .b-problema{background:#b72f37;color:#fff}
.b-foto{display:block;border:0;padding:0;margin:2px 0 6px;background:rgba(0,0,0,.08);border-radius:10px;overflow:hidden;min-width:160px;min-height:110px;color:inherit}
.b-foto img{display:block;width:220px;max-width:100%;height:auto}
.chat-barra{background:#f5f7fa;border-top:1px solid var(--line);padding:8px 8px calc(8px + env(safe-area-inset-bottom))}
.chat-fila{display:flex;align-items:flex-end;gap:6px}
.chat-fila textarea{flex:1;resize:none;border:1px solid #cbd3df;border-radius:20px;padding:10px 14px;font:inherit;font-size:15px;max-height:120px;background:#fff}
.chat-clip{width:40px;height:42px;border:0;background:none;font-size:20px;flex:0 0 auto}
.chat-enviar{width:44px;height:44px;border-radius:50%;border:0;background:#16213f;color:#fff;font-size:18px;flex:0 0 auto}
.chat-adjunto{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:6px 8px;margin-bottom:6px;font-size:13px}
.chat-adjunto img{width:46px;height:46px;object-fit:cover;border-radius:8px}.chat-adjunto button{margin-left:auto;border:0;background:#eef1f6;border-radius:50%;width:30px;height:30px}
/* v2.1 ajustes: chat ocupa toda la pantalla bajo el encabezado, fotos de tamaño fijo */
.chat-page.active{position:fixed;left:0;right:0;bottom:0;top:calc(124px + env(safe-area-inset-top));height:auto;margin:0;z-index:15}
.b-foto img{width:220px;height:165px;object-fit:cover}
.chat-dia span{text-transform:none}
.chat-page.active{padding:0;max-width:none}

/* ===== v2.3 · envíos instantáneos (⏱ enviando → ✓) ===== */
.time-item.enviando .time-dot{background:#fff7e6;color:#8a5a00;border:2px dashed #f0c46a;font-size:15px}
.time-item.enviando .time-copy p{color:#8a5a00;font-weight:700}
.burbuja.enviando{opacity:.8}
.burbuja.enviando time{color:#8a5a00;opacity:1}
.b-foto img{display:block}

/* ===== v2.4 · ticket de entrega de vacío obligatorio ===== */
.ticket-aviso{background:#fff7e6;border:1px solid #f9df9f;color:#8a5a00;border-radius:12px;padding:12px;font-size:13px;line-height:1.45;margin-top:4px}
.photo-zone.obligatoria{border:2px dashed #f59e0b;background:#fffbf2}
.photo-zone.obligatoria.ready{border-color:#11a861;background:#effbf4}
.photo-zone.falta{animation:chkSacudir .4s;border-color:#df3f48}

/* ===== v2.5 · maniobra bloqueada hasta 3 h antes del registro en ASLA ===== */
.asla-row b{color:#16213f;font-size:15px}
.operation-meta .asla-row{background:#fff7e6;border:1px solid #f9df9f;border-radius:10px;padding:8px 10px}
.asla-cita{background:#fff7e6;color:#8a5a00 !important;border-radius:8px;padding:6px 9px;margin-top:6px !important;font-size:13px !important}
.next-card.bloqueada{border:2px solid #cbd3df;background:linear-gradient(180deg,#f5f7fa,#fff)}
.lock-top{display:flex;gap:12px;align-items:flex-start}
.lock-ico{flex:0 0 44px;height:44px;border-radius:12px;background:#16213f;color:#fff;display:grid;place-items:center;font-size:22px}
.lock-top small{font-size:11px;font-weight:800;letter-spacing:.08em;color:#536681}
.lock-top h2{font-size:18px;margin:3px 0;color:#16213f}
.lock-top p{font-size:13px;color:var(--muted);line-height:1.4;margin:0}
.lock-falta{margin:12px 0;background:#16213f;color:#fff;border-radius:12px;padding:10px 12px;font-size:14px;text-align:center}
.lock-falta b{font-size:17px}
.lock-datos{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:12px}
.lock-datos div{display:flex;flex-direction:column;gap:3px}
.lock-datos span{font-size:11px;color:var(--muted)}
.lock-datos b{font-size:14px;color:#17213a;line-height:1.35}
.lock-datos .dest{grid-column:1/-1;background:#fff7e6;border-radius:10px;padding:8px 10px}
.lock-datos .dest b{font-size:17px;color:#8a5a00}

/* v2.6 (17-oct-2026): avisos leídos / sin leer */
.avisos-barra{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid var(--line,#dde6ef);border-radius:14px;padding:10px 12px;margin-bottom:10px;font-size:13px;color:var(--muted,#65758b)}
.avisos-barra b{color:var(--text,#122033)}
.avisos-barra button{border:0;background:#eef1f6;color:#344b73;border-radius:10px;padding:9px 12px;font-weight:800;font-size:12.5px}
.notification{cursor:pointer;align-items:flex-start}
.notification.leida{opacity:.62}
.notification.leida>span{filter:grayscale(1)}
.aviso-leer{flex:0 0 auto;width:34px;height:34px;border-radius:10px;border:1px solid var(--line,#dde6ef);background:#fff;color:#11a861;font-weight:800;font-size:15px}

/* v2.6 · Foto de perfil */
.perfil-foto-btn{position:relative;display:block;margin:auto;border:0;background:none;padding:0;cursor:pointer}
.perfil-foto-btn .big-avatar{width:92px;height:92px;font-size:26px;border:3px solid #fff;box-shadow:0 6px 18px rgba(22,33,63,.18)}
.perfil-foto-cam{position:absolute;right:-2px;bottom:2px;width:32px;height:32px;border-radius:50%;background:#16213f;color:#fff;display:grid;place-items:center;font-style:normal;font-size:15px;border:2px solid #fff}
.perfil-foto-ayuda{display:block;color:var(--muted);font-size:11px;margin-top:8px}
.perfil-foto-btn.con-foto + .perfil-foto-ayuda{display:none}
.avatar.con-foto,.big-avatar.con-foto{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;color:transparent}
.foto-perfil-opciones{display:grid;gap:8px;margin-top:14px}
.foto-perfil-opciones .secondary{margin-top:0;text-align:left;padding:14px}
.fp-quitar{color:#c5373d!important}
