/* ============================================================
   DANGOFE OS · Portal del técnico · letrero «Compartiendo tu ubicación mientras trabajas…» (S3) · 2026-10-16
   Chat de Diseño. Va después de portal_tecnico.css. El letrero vive en .ptx-jor-franja__gps (span #ptx-vivo-txt).
   El integrador le pone a .ptx-jor-franja__gps una de estas clases según vivo.estado:
     is-vivo      → compartiendo (punto verde que late)
     is-buscando  → «Buscando tu ubicación…» (punto ámbar que late)
     is-mal       → denegada / no_hay / sin señal (punto rojo, texto en rojo suave)
     (sin clase)  → apagado: «DANGOFE usa tu ubicación solo mientras trabajas.»
   Sin sombras. Claro y Noche por los tokens del portal.
   ============================================================ */
.ptx-jor-franja__gps {
  --vivo-punto: #94a3b8; --vivo-txt: inherit;
  opacity: .92; color: var(--vivo-txt); line-height: 1.35;
  padding: 8px 10px 7px 10px; margin: 0 -2px; border-radius: 12px;
  background: rgba(127, 127, 127, .06);
}
.ptx-jor-franja__gps > svg { flex: none; opacity: .8; }
.ptx-jor-franja__gps::before {
  content: ''; flex: none; width: 9px; height: 9px; border-radius: 50%;
  background: var(--vivo-punto); box-shadow: 0 0 0 3px color-mix(in srgb, var(--vivo-punto) 22%, transparent); /* anillo plano */
}
.ptx-jor-franja__gps.is-vivo { --vivo-punto: #10b981; background: rgba(16, 185, 129, .08); }
.ptx-jor-franja__gps.is-vivo::before { animation: ptx-vivo-late 1.6s ease-in-out infinite; }
.ptx-jor-franja__gps.is-buscando { --vivo-punto: #f59e0b; background: rgba(245, 158, 11, .08); }
.ptx-jor-franja__gps.is-buscando::before { animation: ptx-vivo-late 1s ease-in-out infinite; }
.ptx-jor-franja__gps.is-mal { --vivo-punto: #ef4444; --vivo-txt: #b91c1c; background: rgba(239, 68, 68, .08); opacity: 1; }
[data-theme='dark'] .ptx-jor-franja__gps.is-mal, .ptx.is-noche .ptx-jor-franja__gps.is-mal { --vivo-txt: #fca5a5; }
.ptx-jor-franja__gps #ptx-vivo-txt { min-width: 0; }
@keyframes ptx-vivo-late { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(.65); opacity: .6; } }
@media (prefers-reduced-motion: reduce) { .ptx-jor-franja__gps::before { animation: none !important; } }
