/* App móvil de Factor Inmune para pacientes */
@font-face{font-family:'Bricolage Grotesque';font-weight:400 800;font-display:swap;src:url(/assets/fuentes/bricolage-grotesque.woff) format('woff')}
@font-face{font-family:'Figtree';font-weight:400 700;font-display:swap;src:url(/assets/fuentes/figtree.woff) format('woff')}
:root{
  --tinta:#0d2b2a; --tinta-2:#2f4a48; --apagado:#5d7472; --linea:#e1e9e6;
  --fondo:#f6f3ec; --papel:#fff; --teal:#0f6e6e; --teal-osc:#0d3b3a; --menta:#7fd1c7; --menta-suave:#e2f3f0; --oro:#f3c969;
  --ok:#1d7a4a; --ok-s:#e1f3e8; --info:#1f5f99; --info-s:#e3eef9; --aviso:#9a5b00; --aviso-s:#fdf0d9; --mal:#b3261e; --mal-s:#fbe7e5; --neutro-s:#eef2f1;
  --r:18px; --sombra:0 1px 2px rgba(13,43,42,.05),0 10px 30px -18px rgba(13,43,42,.35);
  --sans:'Figtree',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif; --display:'Bricolage Grotesque','Figtree',system-ui,sans-serif;
  --arriba:env(safe-area-inset-top,0px); --abajo:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--fondo);color:var(--tinta);font:16px/1.45 var(--sans);-webkit-font-smoothing:antialiased}
body{min-height:100vh;padding-bottom:calc(84px + var(--abajo))}
a{color:var(--teal)}
button{font:inherit}
h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;margin:0}
.arranque{min-height:80vh;display:grid;place-items:center}
.arranque img{opacity:.9;animation:latido 1.4s ease-in-out infinite}
@keyframes latido{50%{opacity:.45}}

/* cabecera */
.cab{position:sticky;top:0;z-index:5;background:rgba(246,243,236,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:calc(10px + var(--arriba)) 18px 10px;display:flex;align-items:center;gap:10px;border-bottom:1px solid transparent}
.cab.con-borde{border-bottom-color:var(--linea)}
.cab h1{font-size:1.25rem;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cab .logo{height:34px;width:auto}
.atras{border:0;background:var(--papel);width:38px;height:38px;border-radius:50%;display:grid;place-items:center;box-shadow:var(--sombra);color:var(--tinta);flex:none}
.atras svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

.vista{padding:6px 16px 24px;display:flex;flex-direction:column;gap:14px;animation:entrar .22s ease-out}
@keyframes entrar{from{opacity:0;transform:translateY(6px)}}
.saludo{font-family:var(--display);font-size:1.7rem;line-height:1.1;margin:6px 2px 0}
.saludo span{display:block;font:500 .95rem var(--sans);color:var(--apagado);margin-top:4px}

/* tarjetas */
.tarjeta{background:var(--papel);border-radius:var(--r);box-shadow:var(--sombra);padding:16px;display:flex;flex-direction:column;gap:10px}
a.tarjeta{color:inherit;text-decoration:none}
a.tarjeta:active,.toque:active{transform:scale(.985)}
.tarjeta h2{font-size:1.08rem}
.tarjeta h3{font-size:.98rem}
.fila{display:flex;align-items:center;gap:10px}
.entre{justify-content:space-between}
.peq{font-size:.86rem}.apagado{color:var(--apagado)}
.cod{font:700 .82rem var(--sans);color:var(--teal);letter-spacing:.06em}
.importe{font:700 1.15rem var(--display)}
.titulo-sec{display:flex;justify-content:space-between;align-items:baseline;margin:6px 4px -4px}
.titulo-sec h2{font-size:1.05rem}
.titulo-sec a{font-size:.9rem;font-weight:600;text-decoration:none}
.vacio{text-align:center;padding:26px 16px;color:var(--apagado)}
.vacio svg{width:44px;height:44px;stroke:var(--menta);fill:none;stroke-width:1.6;margin-bottom:6px}

/* datos de resumen */
.datos{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.dato{background:var(--papel);border-radius:16px;box-shadow:var(--sombra);padding:12px 10px;text-align:center}
.dato strong{display:block;font:700 1.5rem var(--display);color:var(--teal-osc)}
.dato span{font-size:.78rem;color:var(--apagado)}
.cita{background:linear-gradient(135deg,#0d3b3a,#0f6e6e);color:#fff;border-radius:var(--r);padding:16px;box-shadow:var(--sombra);text-decoration:none;display:flex;flex-direction:column;gap:4px}
.cita small{color:#bfe6df;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700}
.cita strong{font:700 1.15rem var(--display)}
.cita span{color:#d8efea;font-size:.92rem}

/* chips */
.chip{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 10px;font-size:.76rem;font-weight:700;white-space:nowrap;background:var(--neutro-s);color:var(--tinta-2)}
.chip-ok{background:var(--ok-s);color:var(--ok)}.chip-info{background:var(--info-s);color:var(--info)}.chip-aviso{background:var(--aviso-s);color:var(--aviso)}.chip-mal{background:var(--mal-s);color:var(--mal)}.chip-frio{background:var(--info-s);color:var(--info)}
.chips{display:flex;flex-wrap:wrap;gap:6px}

/* etapas */
.etapas{display:flex;gap:4px;margin:4px 0 2px}
.etapa{flex:1;height:6px;border-radius:6px;background:var(--linea)}
.etapa.hecha{background:var(--teal)}
.etapa.actual{background:var(--oro)}
.etapa-txt{font-size:.85rem;color:var(--tinta-2)}
.etapa-txt b{color:var(--teal-osc)}

/* pruebas */
.pruebas{display:flex;flex-direction:column;border-radius:14px;overflow:hidden;border:1px solid var(--linea)}
.prueba{padding:12px;display:flex;flex-direction:column;gap:6px;background:var(--papel)}
.prueba+.prueba{border-top:1px solid var(--linea)}
.prueba-cab{display:flex;gap:8px;align-items:flex-start}
.prueba-cab .nom{flex:1;font-weight:600;line-height:1.3}
.prueba-cab .nom small{display:block;font-weight:400;color:var(--apagado);font-size:.8rem;margin-top:2px}
.valores{display:flex;flex-direction:column;gap:4px;background:#f7faf9;border-radius:10px;padding:8px 10px;font-size:.88rem}
.valor{display:flex;justify-content:space-between;gap:10px}
.valor dt{color:var(--tinta-2);margin:0;flex:1}
.valor dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.valor dd small{display:block;font-weight:400;color:var(--apagado);font-size:.76rem}
.valor.alterado dd{color:#a24a00}

/* botones */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:14px;padding:13px 16px;font-weight:700;text-decoration:none;cursor:pointer;min-height:48px}
.btn-primario{background:var(--teal-osc);color:#fff}
.btn-acento{background:var(--oro);color:#3d2e00}
.btn-claro{background:var(--menta-suave);color:var(--teal-osc)}
.btn-blanco{background:var(--papel);color:var(--teal-osc);box-shadow:var(--sombra)}
.btn-wa{background:#25d366;color:#fff}
.btn-peq{min-height:38px;padding:8px 12px;border-radius:12px;font-size:.9rem}
.botones{display:grid;gap:8px}
.botones.dos{grid-template-columns:1fr 1fr}

/* listas */
.lista{display:flex;flex-direction:column;gap:10px}
.linea-doc{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--linea);text-decoration:none;color:inherit}
.linea-doc:last-child{border-bottom:0}
.linea-doc .ico{width:40px;height:40px;border-radius:12px;background:var(--menta-suave);display:grid;place-items:center;flex:none}
.linea-doc .ico svg{width:20px;height:20px;stroke:var(--teal-osc);fill:none;stroke-width:2}
.linea-doc .txt{flex:1;min-width:0}
.linea-doc .txt b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
dl.datos-lista{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:.92rem}
dl.datos-lista dt{color:var(--apagado)}dl.datos-lista dd{margin:0}
.aviso{border-radius:14px;padding:12px 14px;font-size:.92rem}
.aviso-info{background:var(--info-s);color:#173f66}.aviso-aviso{background:var(--aviso-s);color:#5c3800}.aviso-mal{background:var(--mal-s);color:var(--mal)}.aviso-ok{background:var(--ok-s);color:#13502f}
.segmentos{display:flex;background:#e9e4d8;border-radius:12px;padding:3px;gap:3px}
.segmentos button{flex:1;border:0;background:transparent;border-radius:10px;padding:9px;font-weight:700;color:var(--tinta-2)}
.segmentos button[aria-pressed=true]{background:var(--papel);box-shadow:0 1px 3px rgba(0,0,0,.08);color:var(--teal-osc)}

/* acceso */
.acceso{min-height:100vh;padding:calc(40px + var(--arriba)) 22px 30px;display:flex;flex-direction:column;gap:18px}
.acceso .logo{width:150px;height:auto;align-self:center;margin-bottom:6px}
.acceso h1{font-size:1.8rem;text-align:center}
.acceso p{text-align:center;color:var(--apagado);margin:0}
.campo{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.92rem}
.campo input{font:inherit;font-size:16px;padding:14px;border:1.5px solid var(--linea);border-radius:14px;background:var(--papel);color:var(--tinta)}
.campo input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--menta-suave)}

/* barra inferior */
.pestanas-app{position:fixed;left:0;right:0;bottom:0;z-index:10;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--linea);display:grid;grid-template-columns:repeat(5,1fr);padding:6px 6px calc(6px + var(--abajo))}
.pestanas-app a{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:#7a8c8a;font-size:.7rem;font-weight:700;padding:4px 0}
.pestanas-app svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.pestanas-app a[aria-current=page]{color:var(--teal-osc)}
.pestana-pedir .mas{width:44px;height:44px;margin-top:-20px;border-radius:50%;background:var(--oro);color:#3d2e00;display:grid;place-items:center;font:700 1.7rem/1 var(--display);box-shadow:0 6px 16px -6px rgba(154,91,0,.6)}
.vista-como{background:#fff3cd;color:#4a3b00;font-size:.85rem;padding:calc(8px + var(--arriba)) 16px 8px;display:flex;justify-content:space-between;gap:8px}
.vista-como button{border:0;background:none;color:var(--teal);font-weight:700}
.cargando{height:110px;border-radius:var(--r);background:linear-gradient(90deg,#eee9df 25%,#f6f2ea 50%,#eee9df 75%);background-size:200% 100%;animation:brillo 1.2s infinite}
@keyframes brillo{to{background-position:-200% 0}}
@media (min-width:640px){.vista,.acceso{max-width:560px;margin:0 auto}}


/* idioma y lugar de la extracción */
.ctx-ban{display:inline-grid;place-items:center;flex:none;min-width:38px;height:26px;padding:0 6px;border-radius:999px;font:800 .72rem/1 var(--sans);letter-spacing:.04em}
.ctx-ban.ctx-es{background:linear-gradient(#c60b1e 0 25%,#ffc400 25% 75%,#c60b1e 75%);color:#5a0b10}
.ctx-ban.ctx-en{background:#012169;color:#fff;box-shadow:inset 0 0 0 2px #c8102e}
.ctx-ban.ctx-eu{background:#003399;color:#ffcc00}
.ctx-lista{gap:0;padding:6px 10px}
.ctx-op{display:flex;align-items:center;gap:12px;padding:12px 4px;text-decoration:none;color:var(--tinta)}
.ctx-op+.ctx-op{border-top:1px solid var(--linea)}
.ctx-op .txt{flex:1;min-width:0;display:flex;flex-direction:column}
.ctx-op.actual b{color:var(--teal-osc)}
.ctx-op .ok{color:var(--teal);font-weight:800}
.ctx-acceso{display:flex;gap:8px;justify-content:center;margin-top:6px}
.ctx-acceso a{padding:6px 12px;border-radius:999px;border:1px solid var(--linea);text-decoration:none;color:var(--tinta-2);font-weight:700;font-size:.82rem;background:var(--papel)}
.ctx-acceso a[aria-current]{background:var(--teal-osc);color:#fff;border-color:var(--teal-osc)}
.envio-dhl{display:grid;gap:6px;padding:10px 0;border-bottom:1px solid var(--linea,#e3ebe9)}.envio-dhl:last-child{border:0;padding-bottom:0}.envio-dhl:first-child{padding-top:0}.envio-dhl .btn{justify-self:start}
