/* SIVISMAP - diseño visual v1 */
:root{
  --azul:#1565C0; --azul-osc:#0D47A1; --azul-cl:#E8F1FB; --cian:#00A9B7; --coral:#FF6B81;
  --verde:#2E9E6B; --ambar:#F5A524; --rojo:#E5484D;
  --bg:#F3F6FB; --card:#FFFFFF; --tx:#14213D; --tx2:#5B6B86; --linea:#E3E9F3;
  --sombra:0 10px 30px rgba(21,101,192,.10); --sombra-g:0 18px 50px rgba(13,71,161,.20);
  --r:20px; --nav-h:70px; --top-h:62px;
  --seg-t:env(safe-area-inset-top,0px); --seg-b:env(safe-area-inset-bottom,0px);
  --ease:cubic-bezier(.2,.8,.2,1);
}
html[data-tema="oscuro"]{
  --bg:#0A1120; --card:#111B2E; --tx:#EAF0FA; --tx2:#9AA9C4; --linea:#1D2A44; --azul-cl:#13264A;
  --sombra:0 10px 30px rgba(0,0,0,.35); --sombra-g:0 18px 50px rgba(0,0,0,.5);
  color-scheme:dark;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--tx);
  -webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .3s,color .3s}
button,input{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}
a{color:var(--azul)}
.ico{width:1.25em;height:1.25em;flex:none}
.oculto{display:none!important}

/* ---------- animaciones base ---------- */
@keyframes entra{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes zoom{from{opacity:0;transform:scale(.94) translateY(10px)}to{opacity:1;transform:none}}
@keyframes flota{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(28px,-38px) scale(1.12)}}
@keyframes pulsa{0%{box-shadow:0 0 0 0 rgba(255,255,255,.55)}100%{box-shadow:0 0 0 22px rgba(255,255,255,0)}}
@keyframes giro{to{transform:rotate(360deg)}}
@keyframes brilla{to{background-position:-200% 0}}
@keyframes sacude{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-7px)}40%,60%{transform:translateX(7px)}}
@keyframes trazo{from{stroke-dashoffset:260}to{stroke-dashoffset:0}}
@keyframes latir{0%,100%{transform:scale(1)}15%{transform:scale(1.18)}30%{transform:scale(1)}45%{transform:scale(1.12)}}
.aparece{animation:entra .55s var(--ease) both;animation-delay:calc(var(--d,0) * 70ms)}
.sacudir{animation:sacude .5s}

/* ---------- splash ---------- */
.splash{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;
  background:linear-gradient(160deg,#0A3A8C,#1565C0 60%,#1E88E5);color:#fff;z-index:50}
.splash img{width:96px;height:96px;border-radius:50%;animation:pulsa 1.6s infinite}
.splash b{letter-spacing:3px;font-size:18px}

/* ---------- login ---------- */
.fondo{position:fixed;inset:0;overflow:hidden;background:linear-gradient(160deg,#0A3A8C 0%,#1565C0 55%,#1E88E5 100%)}
.blob{position:absolute;border-radius:50%;filter:blur(42px);opacity:.5;animation:flota 14s ease-in-out infinite}
.b1{width:340px;height:340px;background:#00C2D8;top:-100px;right:-90px}
.b2{width:300px;height:300px;background:#FF6B81;bottom:-110px;left:-100px;animation-delay:-5s;opacity:.34}
.b3{width:220px;height:220px;background:#8C6BFF;top:42%;left:58%;animation-delay:-9s;opacity:.28}
.login{position:relative;min-height:100%;display:flex;align-items:center;justify-content:center;padding:calc(20px + var(--seg-t)) 18px calc(20px + var(--seg-b))}
.login-card{width:100%;max-width:410px;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border-radius:28px;padding:30px 26px 22px;box-shadow:var(--sombra-g);text-align:center;color:#14213D;animation:zoom .7s var(--ease) both}
html[data-tema="oscuro"] .login-card{background:rgba(17,27,46,.9);color:#EAF0FA}
.logo-aro{width:96px;height:96px;margin:0 auto 10px;border-radius:50%;background:#fff;padding:4px;animation:pulsa 2.4s infinite;
  box-shadow:0 8px 24px rgba(13,71,161,.25)}
.logo-aro img{width:100%;height:100%;border-radius:50%;display:block}
.login-card h1{font-size:30px;letter-spacing:3px;color:var(--azul-osc);font-weight:800}
html[data-tema="oscuro"] .login-card h1{color:#8FC0FF}
.sub{font-size:13px;color:var(--tx2);line-height:1.4;margin-top:2px}
.latido{width:150px;height:26px;margin:10px auto 6px;display:block;color:var(--coral)}
.latido polyline{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:260;animation:trazo 2.6s linear infinite}
form{text-align:left;margin-top:8px}
.campo{display:block;margin-top:14px}
.campo>span{display:block;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--tx2);margin-bottom:6px}
.campo-in{position:relative;display:flex;align-items:center;background:var(--bg);border:1.6px solid var(--linea);border-radius:14px;
  transition:border-color .2s,box-shadow .2s,background .2s}
.campo-in:focus-within{border-color:var(--azul);box-shadow:0 0 0 4px rgba(21,101,192,.14);background:var(--card)}
.campo-in>.ico{margin-left:14px;color:var(--tx2);transition:color .2s}
.campo-in:focus-within>.ico{color:var(--azul)}
.campo-in input{flex:1;min-width:0;border:0;outline:0;background:transparent;padding:14px 12px;font-size:16px}
.ojo{padding:0 14px;height:48px;color:var(--tx2);display:flex;align-items:center}
.msg-error{display:none;margin-top:14px;padding:11px 13px;border-radius:12px;font-size:13px;line-height:1.35;
  background:rgba(229,72,77,.1);color:var(--rojo);border-left:4px solid var(--rojo);animation:entra .3s both}
.msg-error.ver{display:block}
.ayuda{font-size:12.5px;color:var(--tx2);margin-top:16px;text-align:center}
.pie{font-size:11px;color:var(--tx2);opacity:.8;margin-top:10px}

/* ---------- botones ---------- */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 18px;border-radius:14px;font-weight:700;font-size:15px;transition:transform .15s,box-shadow .2s,opacity .2s}
.btn:active{transform:scale(.97)}
.btn-primario{width:100%;margin-top:18px;color:#fff;background:linear-gradient(135deg,#1976D2,#0D47A1);box-shadow:0 10px 22px rgba(21,101,192,.35)}
.btn-primario:hover{box-shadow:0 14px 28px rgba(21,101,192,.45)}
.btn-sec{background:var(--card);border:1.6px solid var(--linea);color:var(--tx)}
.btn-peligro{background:rgba(229,72,77,.1);color:var(--rojo);border:1.6px solid rgba(229,72,77,.25)}
.btn-wa{background:#22C55E;color:#fff}
.btn[disabled]{opacity:.7;pointer-events:none}
.btn .spin{display:none;width:18px;height:18px;border-radius:50%;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;animation:giro .7s linear infinite}
.btn.cargando .spin{display:block}
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);animation:onda .6s linear;pointer-events:none}
@keyframes onda{to{transform:scale(4);opacity:0}}

/* ---------- estructura de la app ---------- */
.fondo-app{position:fixed;inset:0;z-index:-1;background:radial-gradient(900px 400px at 100% -10%,rgba(21,101,192,.14),transparent 60%),radial-gradient(700px 360px at -10% 110%,rgba(255,107,129,.10),transparent 60%),var(--bg)}
.top{position:fixed;top:0;left:0;right:0;z-index:20;padding-top:var(--seg-t);background:linear-gradient(135deg,#0D47A1,#1976D2);color:#fff;box-shadow:0 6px 20px rgba(13,71,161,.3)}
.top-in{height:var(--top-h);display:flex;align-items:center;gap:12px;padding:0 16px;max-width:1200px;margin:0 auto}
.top-in img{width:38px;height:38px;border-radius:50%;background:#fff;padding:2px}
.top-tit{flex:1;min-width:0;line-height:1.15}
.top-tit b{font-size:17px;letter-spacing:1.5px}
.top-tit small{display:block;font-size:11.5px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.avatar{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.2);font-weight:800;font-size:14px;color:#fff;border:1.5px solid rgba(255,255,255,.5)}
.banner-off{position:fixed;left:0;right:0;top:calc(var(--top-h) + var(--seg-t));z-index:19;background:#B45309;color:#fff;font-size:12.5px;text-align:center;padding:6px;
  transform:translateY(-120%);transition:transform .3s var(--ease)}
.banner-off.ver{transform:none}
.vista{padding:calc(var(--top-h) + var(--seg-t) + 16px) 16px calc(var(--nav-h) + var(--seg-b) + 28px);max-width:1000px;margin:0 auto;outline:0}

.nav{position:fixed;left:12px;right:12px;bottom:calc(10px + var(--seg-b));height:var(--nav-h);z-index:30;display:flex;
  background:var(--card);border-radius:24px;box-shadow:var(--sombra-g);border:1px solid var(--linea);overflow:hidden}
.nav-ind{position:absolute;top:8px;bottom:8px;left:0;width:calc(100% / var(--n));transform:translateX(calc(var(--i) * 100%));
  transition:transform .45s var(--ease);padding:0 5px;pointer-events:none}
.nav-ind::before{content:"";display:block;height:100%;border-radius:18px;background:linear-gradient(135deg,rgba(25,118,210,.18),rgba(0,169,183,.14))}
.nav-b{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--tx2);
  font-size:11px;font-weight:600;transition:color .25s}
.nav-b .ico{width:23px;height:23px;transition:transform .35s var(--ease)}
.nav-b.activo{color:var(--azul)}
html[data-tema="oscuro"] .nav-b.activo{color:#7DB8FF}
.nav-b.activo .ico{transform:translateY(-2px) scale(1.12)}

/* ---------- tarjetas y contenido ---------- */
.hero{position:relative;overflow:hidden;border-radius:26px;padding:22px 20px;color:#fff;background:linear-gradient(135deg,#0D47A1 0%,#1976D2 60%,#00A9B7 120%);box-shadow:var(--sombra-g)}
.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.1)}
.hero::before{width:180px;height:180px;right:-50px;top:-60px}
.hero::after{width:110px;height:110px;right:50px;bottom:-60px;background:rgba(255,107,129,.28)}
.hero small{opacity:.9;font-size:13px}
.hero h2{font-size:23px;margin:2px 0 10px;line-height:1.2;position:relative}
.chips{display:flex;flex-wrap:wrap;gap:7px;position:relative}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:6px 11px;border-radius:99px;background:rgba(255,255,255,.18);backdrop-filter:blur(6px)}
.chip.sol{background:var(--azul-cl);color:var(--azul)}
html[data-tema="oscuro"] .chip.sol{color:#8FC0FF}
.sec-tit{font-size:13px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--tx2);margin:24px 4px 10px}
.tarjeta{background:var(--card);border-radius:var(--r);padding:18px;box-shadow:var(--sombra);border:1px solid var(--linea)}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.stat{background:var(--card);border-radius:var(--r);padding:16px;box-shadow:var(--sombra);border:1px solid var(--linea);position:relative;overflow:hidden}
.stat .ico-c{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;color:#fff}
.stat .num{font-size:30px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.stat .et{font-size:12px;color:var(--tx2);margin-top:5px;font-weight:600}
.c-azul{background:linear-gradient(135deg,#1976D2,#0D47A1)}.c-cian{background:linear-gradient(135deg,#00B8C8,#00808C)}
.c-verde{background:linear-gradient(135deg,#34C38F,#1E8A5E)}.c-coral{background:linear-gradient(135deg,#FF8A9B,#E5484D)}
.esq{background:linear-gradient(90deg,transparent 0,rgba(127,150,190,.22) 50%,transparent 100%) 0 0/200% 100%,var(--linea);animation:brilla 1.4s linear infinite;border-radius:8px;color:transparent!important}
.acciones{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.accion{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:16px;border-radius:var(--r);background:var(--card);border:1px solid var(--linea);
  box-shadow:var(--sombra);text-align:left;font-weight:700;font-size:14.5px;transition:transform .2s var(--ease),box-shadow .2s}
.accion:hover{transform:translateY(-3px);box-shadow:var(--sombra-g)}
.accion:active{transform:scale(.97)}
.accion .ico-c{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#fff}
.accion small{display:block;font-weight:500;color:var(--tx2);font-size:12px;margin-top:2px}
.pronto{display:flex;gap:14px;align-items:flex-start}
.pronto .ico-c{width:46px;height:46px;border-radius:14px;flex:none;display:flex;align-items:center;justify-content:center;color:#fff}
.pronto h3{font-size:16px;margin-bottom:4px}
.pronto p{font-size:13.5px;color:var(--tx2);line-height:1.5}
.pasos{list-style:none;margin-top:14px;display:grid;gap:10px}
.pasos li{display:flex;align-items:center;gap:10px;font-size:13.5px;font-weight:600;padding:10px 12px;border-radius:12px;background:var(--bg)}
.pasos li i{width:24px;height:24px;border-radius:50%;background:var(--azul);color:#fff;font-style:normal;font-size:12px;display:flex;align-items:center;justify-content:center}

/* ---------- PAM ---------- */
.pam-campos{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pam-campos .campo{margin-top:0}
.pam-campos input{text-align:center;font-size:26px;font-weight:800;padding:12px 4px}
.formula{text-align:center;font-size:12.5px;color:var(--tx2);margin-top:12px}
.medidor{position:relative;max-width:360px;margin:0 auto}
.medidor svg{width:100%;display:block;overflow:visible}
.aguja{transform-origin:120px 120px;transition:transform 1s var(--ease)}
.valor-pam{position:absolute;left:0;right:0;bottom:-6px;text-align:center}
.valor-pam b{font-size:44px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}
.valor-pam small{display:block;font-size:12px;color:var(--tx2);margin-top:2px}
.semaforo{display:flex;align-items:center;gap:12px;margin-top:22px;padding:14px;border-radius:16px;transition:background .4s,color .4s;animation:zoom .4s both}
.semaforo .luz{width:46px;height:46px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;color:#fff;transition:background .4s}
.semaforo b{display:block;font-size:15px}
.semaforo small{font-size:12.5px;opacity:.9}
.leyenda{list-style:none;display:grid;gap:8px}
.leyenda li{display:flex;align-items:center;gap:10px;font-size:13px}
.leyenda i{width:12px;height:12px;border-radius:50%;flex:none}
.leyenda span{margin-left:auto;font-weight:700;font-variant-numeric:tabular-nums;color:var(--tx2)}
.aviso-suave{font-size:12px;color:var(--tx2);text-align:center;margin-top:14px;line-height:1.5}
.alerta-campo{font-size:12.5px;color:var(--rojo);text-align:center;margin-top:10px;min-height:18px}

/* ---------- perfil ---------- */
.perfil-cab{text-align:center}
.avatar-g{width:84px;height:84px;margin:0 auto 12px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:800;color:#fff;
  background:linear-gradient(135deg,#1976D2,#00A9B7);box-shadow:0 12px 26px rgba(21,101,192,.35)}
.fila{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--linea);font-size:14px}
.fila:last-child{border-bottom:0}
.fila span:first-child{color:var(--tx2);font-weight:600}
.fila span:last-child{text-align:right;font-weight:700}
.segmento{display:grid;grid-template-columns:repeat(3,1fr);background:var(--bg);border-radius:14px;padding:4px;gap:4px}
.segmento button{padding:10px 6px;border-radius:11px;font-size:13px;font-weight:700;color:var(--tx2);display:flex;align-items:center;justify-content:center;gap:6px;transition:all .25s}
.segmento button.activo{background:var(--card);color:var(--azul);box-shadow:0 4px 12px rgba(0,0,0,.1)}
.pila{display:grid;gap:10px}
.pie-app{text-align:center;font-size:12px;color:var(--tx2);margin:26px 0 6px;line-height:1.7}

/* ---------- avisos y ventanas ---------- */
.toasts{position:fixed;left:0;right:0;bottom:calc(var(--nav-h) + var(--seg-b) + 24px);z-index:60;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;padding:0 16px}
.toast{max-width:420px;padding:12px 16px;border-radius:14px;font-size:14px;font-weight:600;color:#fff;background:#14213D;box-shadow:var(--sombra-g);animation:zoom .35s var(--ease) both}
.toast.ok{background:#1E8A5E}.toast.err{background:#C93A3F}
.modal-fondo{position:fixed;inset:0;z-index:80;background:rgba(7,14,30,.55);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;animation:entra .25s both}
.modal{width:100%;max-width:400px;max-height:88vh;overflow:auto;background:var(--card);border-radius:24px;padding:24px 22px;box-shadow:var(--sombra-g);animation:zoom .35s var(--ease) both}
.modal h3{font-size:18px;margin-bottom:8px}
.modal p,.modal li{font-size:14px;color:var(--tx2);line-height:1.55}
.modal ol{padding-left:20px;margin-top:6px}
.modal .botones{display:grid;gap:10px;margin-top:18px}

/* ---------- pantallas grandes: barra lateral ---------- */

/* ---------- formularios (selects, textos, opciones) ---------- */
.campo small{font-weight:500;text-transform:none;letter-spacing:0}
.campo-in select,.campo-in textarea{flex:1;min-width:0;border:0;outline:0;background:transparent;padding:14px 12px;font-size:16px;color:inherit;font-family:inherit;-webkit-appearance:none;appearance:none}
.campo-in textarea{resize:none;line-height:1.4}
.campo-in select{padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,var(--tx2) 50%),linear-gradient(135deg,var(--tx2) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.campo-in input[type=date]{min-height:48px}
.doble{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
.trim{padding:14px 12px;border-radius:14px;background:var(--azul-cl);color:var(--azul);font-weight:800;font-size:14px;text-align:center;min-height:50px;display:flex;align-items:center;justify-content:center}
.paso .campo+.campo,.paso .doble+.campo,.paso .campo+.doble{margin-top:16px}
.segmento{background:var(--bg)}
.segmento button{text-align:center;line-height:1.2}
.segmento.dos{grid-template-columns:repeat(2,1fr)}
.segmento.cuatro{grid-template-columns:repeat(2,1fr)}
.segmento.cond{grid-template-columns:1fr}
.segmento.cond button:nth-child(1).activo{color:var(--verde)}
.segmento.cond button:nth-child(2).activo{color:#B7791F}
.segmento.cond button:nth-child(3).activo{color:var(--rojo)}
.opciones{display:flex;flex-wrap:wrap;gap:8px}
.opcion{display:inline-flex;align-items:center;gap:6px;padding:9px 13px;border-radius:99px;border:1.6px solid var(--linea);background:var(--card);font-size:13px;font-weight:600;color:var(--tx2);transition:all .25s var(--ease)}
.opcion .ico{width:0;opacity:0;margin-right:-6px;transition:all .25s var(--ease)}
.opcion.activo{background:var(--azul-cl);border-color:var(--azul);color:var(--azul)}
.opcion.activo .ico{width:15px;opacity:1;margin-right:0}
.opciones.peligro .opcion.activo{background:rgba(229,72,77,.12);border-color:var(--rojo);color:var(--rojo)}
.spin.oscuro{border-color:rgba(21,101,192,.25);border-top-color:var(--azul)}

/* ---------- registro por pasos ---------- */
@keyframes llena{from{width:0}}
@keyframes trazo2{to{stroke-dashoffset:0}}
.pasos-bar{list-style:none;display:flex;gap:6px;margin-top:16px;position:relative}
.pasos-bar li{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:10.5px;opacity:.7;text-align:center;line-height:1.15}
.pasos-bar li i{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-style:normal;font-weight:800;font-size:12px;background:rgba(255,255,255,.22);transition:all .4s var(--ease)}
.pasos-bar li i .ico{width:14px;height:14px}
.pasos-bar li.actual{opacity:1}
.pasos-bar li.actual i{background:#fff;color:var(--azul);transform:scale(1.15);box-shadow:0 0 0 5px rgba(255,255,255,.25)}
.pasos-bar li.hecho{opacity:1}
.pasos-bar li.hecho i{background:#34C38F;color:#fff}
.paso{margin-top:14px}
.enlace-cancelar{display:flex;align-items:center;gap:6px;margin:20px auto 0;padding:10px 14px;color:var(--tx2);font-size:13px;font-weight:600}
.enlace-cancelar .ico{width:15px;height:15px}
.res-gest{margin-top:14px}
.res-cab{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.res-cab h3{font-size:16px;line-height:1.25}
.res-cab p{font-size:13px;color:var(--tx2);margin-top:2px}
.avatar-g.peq{width:48px;height:48px;font-size:17px;margin:0;flex:none}
.barra-gest{height:10px;border-radius:99px;background:var(--bg);overflow:hidden;margin-top:14px}
.barra-llena{height:100%;border-radius:99px;background:linear-gradient(90deg,#1976D2,#00A9B7,#34C38F);animation:llena 1s var(--ease) both}
.gest-txt{font-size:13.5px;margin-top:8px;color:var(--tx2)}
.gest-txt b{color:var(--tx)}
.aviso-info{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.45;color:var(--tx2);background:var(--azul-cl);padding:10px 12px;border-radius:12px;margin-top:12px}
.aviso-info .ico{margin-top:1px;color:var(--azul)}
.aviso-info.grande{font-size:14px;margin-top:0}
.chip.aviso{background:rgba(245,165,36,.2);color:#B7791F}
html[data-tema="oscuro"] .chip.aviso{color:#F5C26B}
.chips.peligro .chip.sol{background:rgba(229,72,77,.12);color:var(--rojo)}
.chips-fila{margin-bottom:6px}
.vacio-txt{font-size:13.5px;color:var(--tx2)}
.res-gest .btn-primario,.paso>.tarjeta>.btn-primario{margin-top:16px}
.nav-pasos{display:grid;grid-template-columns:1fr 1.4fr;gap:12px;margin-top:18px}
.nav-pasos .btn{width:100%}
.foto-prev{width:100%;max-height:260px;object-fit:cover;border-radius:16px;margin-bottom:12px;display:block}
.foto-prev.mini{max-height:160px;margin:12px 0 0}
.botones-foto .btn{width:100%}
.mapa{width:100%;height:190px;border:0;border-radius:16px;margin-top:10px}
.geo-ok{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--verde);font-weight:600;margin-top:10px}
.geo-ok .ico{width:16px;height:16px}
.exito{position:fixed;inset:0;z-index:90;background:rgba(7,14,30,.6);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;animation:entra .25s both}
.exito-caja{background:var(--card);border-radius:28px;padding:30px 38px;text-align:center;box-shadow:var(--sombra-g);animation:zoom .5s var(--ease) both}
.exito-caja svg{width:84px;height:84px}
.exito-caja circle{stroke:#34C38F;stroke-width:3;stroke-dasharray:151;stroke-dashoffset:151;animation:trazo2 .7s .1s ease forwards}
.exito-caja path{stroke:#34C38F;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;stroke-dashoffset:40;animation:trazo2 .5s .65s ease forwards}
.exito-caja h3{margin-top:10px;font-size:20px}
.exito-caja p{color:var(--tx2);font-size:14px;margin-top:2px}

/* ---------- mis visitas ---------- */
.lista-v{display:grid;gap:12px;margin-top:14px}
.vcard{display:block;width:100%;text-align:left;background:var(--card);border:1px solid var(--linea);border-radius:var(--r);padding:14px 16px;box-shadow:var(--sombra);transition:transform .2s var(--ease),box-shadow .2s}
.vcard:hover{transform:translateY(-2px);box-shadow:var(--sombra-g)}
.vcard:active{transform:scale(.985)}
.vcard-cab{display:flex;justify-content:space-between;gap:10px;align-items:center}
.vcard-cab b{font-size:15px}
.vcard-lin{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--tx2);margin:6px 0 8px}
.vcard-lin .ico{width:14px;height:14px}
.badge{font-size:11px;font-weight:800;padding:4px 10px;border-radius:99px;white-space:nowrap}
.badge.ok{background:rgba(46,158,107,.14);color:var(--verde)}
.badge.no{background:rgba(245,165,36,.2);color:#B7791F}
.fila-chips .chip{font-size:11.5px;padding:4px 10px}
.mas-wrap{margin-top:14px}
.mas-wrap .btn{width:100%}
.vacio{text-align:center;padding:36px 16px;color:var(--tx2)}
.vacio-ico{width:68px;height:68px;border-radius:50%;margin:0 auto 14px;background:var(--azul-cl);color:var(--azul);display:flex;align-items:center;justify-content:center}
.vacio-ico .ico{width:30px;height:30px}
.vacio h3{color:var(--tx);font-size:17px;margin-bottom:4px}
.esq-bloque{height:92px;border-radius:var(--r);background:linear-gradient(90deg,transparent 0,rgba(127,150,190,.22) 50%,transparent 100%) 0 0/200% 100%,var(--linea);animation:brilla 1.4s linear infinite}
.det-cab{margin-bottom:6px}
.det-cab b{font-size:17px;display:block}
.det-cab small{color:var(--tx2)}
.mini-tit{font-size:11.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--tx2);margin:14px 0 8px}
.mini-tit.rojo{color:var(--rojo)}
.det-foto{margin:14px 0 0;max-height:240px}
.modal .fila{font-size:13.5px}

@media (min-width:920px){
  .vista{margin-left:260px;margin-right:auto;max-width:900px;padding-bottom:40px}
  .top-in{max-width:none}
  .nav{left:0;top:calc(var(--top-h) + var(--seg-t));bottom:0;right:auto;width:240px;height:auto;border-radius:0;flex-direction:column;
    padding:16px 12px;gap:6px;border:0;border-right:1px solid var(--linea);box-shadow:none;overflow:visible}
  .nav-ind{display:none}
  .nav-b{flex:none;flex-direction:row;justify-content:flex-start;gap:12px;padding:13px 16px;border-radius:14px;font-size:14.5px}
  .nav-b.activo{background:var(--azul-cl)}
  .nav-b.activo .ico{transform:none}
  .toasts{bottom:24px;left:260px}
  .banner-off{left:240px}
  .stats{grid-template-columns:repeat(4,1fr)}
  .acciones{grid-template-columns:repeat(3,1fr)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* ---------- panel de jefaturas ---------- */
@keyframes crece{from{height:0}}
.segmento.fila4{grid-template-columns:repeat(4,1fr)}
.segmento.fila4 button{padding:9px 2px;font-size:12px}
.fila-botones{margin-top:16px}
.fila-botones .btn{width:100%;padding:12px}
.graficos{display:grid;gap:14px;margin-top:14px}
.grafico .graf-tit{font-size:14px;margin-bottom:14px}
.bhs{display:grid;gap:12px}
.bh{display:grid;grid-template-columns:minmax(90px,38%) 1fr auto;gap:6px 10px;align-items:center;font-size:12.5px}
.bh-et{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.bh-pista{height:10px;border-radius:99px;background:var(--bg);overflow:hidden}
.bh-pista i{display:block;height:100%;border-radius:99px;animation:llena 1s var(--ease) both}
.bh b{font-variant-numeric:tabular-nums}
.bh em{grid-column:2 / 4;font-style:normal;font-size:11px;color:var(--tx2);margin-top:-4px}
.bvs{overflow-x:auto;-webkit-overflow-scrolling:touch}
.bvs-in{display:flex;align-items:flex-end;gap:6px;height:190px;padding-top:8px}
.bv{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;min-width:24px}
.bv em{font-style:normal;font-size:10.5px;color:var(--tx2);font-weight:700}
.bv-col{flex:1;width:100%;display:flex;align-items:flex-end}
.bv-col i{display:block;width:100%;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#1976D2,#00A9B7);animation:crece .8s var(--ease) both}
.bv span{font-size:10.5px;color:var(--tx2)}
.donut-wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.donut{width:130px;height:130px;flex:none}
.donut text{font-size:7px;font-weight:800;fill:var(--tx)}
.donut-wrap .leyenda{flex:1;min-width:150px}
.tabla-cab{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.tabla-cab b{font-size:15px}
.solo-pc{display:none}
.tabla-scroll{overflow-x:auto}
.tabla-pc{width:100%;border-collapse:collapse;font-size:13px}
.tabla-pc th{text-align:left;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--tx2);padding:10px 12px;border-bottom:2px solid var(--linea);white-space:nowrap}
.tabla-pc td{padding:11px 12px;border-bottom:1px solid var(--linea);white-space:nowrap}
.tabla-pc tbody tr{cursor:pointer;transition:background .15s}
.tabla-pc tbody tr:hover{background:var(--azul-cl)}
@media (min-width:920px){
  .solo-pc{display:block}
  .solo-movil{display:none}
  .graficos{grid-template-columns:1fr 1fr}
  .grafico.ancho{grid-column:1 / -1}
  .vista{max-width:1100px}
}

/* ---------- cobertura y alertas ---------- */
@keyframes llenaX{from{transform:scaleX(0);transform-origin:left}}
.sub-panel{margin-bottom:14px}
.insignia{font-style:normal;font-size:10px;font-weight:800;background:var(--rojo);color:#fff;border-radius:99px;padding:2px 6px;margin-left:6px}
.apilada{display:flex;height:10px;border-radius:99px;overflow:hidden;background:var(--bg);margin-top:10px}
.apilada i{display:block;height:100%;animation:llenaX .9s var(--ease) both}
.leyenda-apilada{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--tx2);margin-bottom:10px}
.leyenda-apilada i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}
.pct{font-weight:800;font-size:13px;padding:3px 9px;border-radius:99px}
.pct.ok{background:rgba(46,158,107,.14);color:var(--verde)}
.pct.medio{background:rgba(245,165,36,.2);color:#B7791F}
.pct.bajo{background:rgba(229,72,77,.14);color:var(--rojo)}
.cob-celda{display:flex;align-items:center;gap:10px;min-width:170px}
.cob-celda .apilada{flex:1;margin:0}
.gris{color:var(--tx2);font-weight:500}
.tel{display:inline-flex;align-items:center;gap:5px;color:var(--azul);font-weight:700;text-decoration:none;margin-left:6px}
.tel .ico{width:14px;height:14px}
.vcard.sin-click,.vcard.cob{cursor:default}
.vcard.sin-click:hover,.vcard.cob:hover{transform:none;box-shadow:var(--sombra)}
.vcard.alerta{cursor:pointer}
.cuenta{color:var(--rojo)}
.aviso-txt{color:#B7791F;font-weight:600}
.chip.aviso.rojo{background:rgba(229,72,77,.15);color:var(--rojo)}
