/* Bio, el asistente del sitio: lanzador flotante y panel de conversación (los construye src/bio.js).
   Usa los tokens de styles.css. Las piezas internas llevan el prefijo bc- para no chocar con las clases .bio-* de las páginas.
   Reglas de la dirección de arte: sobre el cristal solo tinta marino y atenuado; el verde como texto va únicamente sobre blanco opaco;
   nada se mueve en reposo y todo el movimiento vive dentro de prefers-reduced-motion:no-preference. Sin modo oscuro. */
.bio-lanza,.bio-panel{--bc-borde:max(18px,env(safe-area-inset-right,0px));--bc-base:max(18px,env(safe-area-inset-bottom,0px));--bc-cielo:linear-gradient(180deg,var(--celeste) 0%,var(--tinte) 82%);--bc-rojo:#A32116}

/* ---------- Lanzador: disco marino con la cabeza que se asoma ---------- */
.bio-lanza{position:fixed;right:var(--bc-borde);bottom:var(--bc-base);z-index:35;width:64px;height:64px;padding:0;border:0;border-radius:50%;background:var(--marino);box-shadow:0 0 0 2px #fff,0 2px 4px rgba(1,39,66,.14),0 14px 28px -8px rgba(1,39,66,.55);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--dur-1) var(--ease-ui)}
.bio-lanza:focus-visible{outline:3px solid transparent;outline-offset:6px;border-radius:50%;box-shadow:0 0 0 2px #fff,0 0 0 5px var(--marino),0 0 0 8px #fff}
.bio-lanza:active{transform:scale(.96)}
.bio-lanza.bc-fuera{display:none}
.bc-cabeza{position:absolute;left:-12px;top:-12px;width:80px;height:68px;background:url(bio-cabeza-160.webp) 0 0/100% auto no-repeat;transform-origin:55% 92%;transition:transform var(--dur-3) var(--ease-out);pointer-events:none}
.bio-lanza[data-nuevo]::after{content:"";position:absolute;right:-4px;bottom:2px;width:14px;height:14px;border-radius:50%;background:var(--lima);box-shadow:0 0 0 2px var(--marino),0 0 0 4px #fff}
@media (hover:hover) and (pointer:fine){.bio-lanza:hover .bc-cabeza{transform:translateY(-3px) rotate(-5deg)}}
@media (max-width:619px){.bio-lanza{width:56px;height:56px}.bc-cabeza{left:-10px;top:-10px;width:70px;height:60px}}
@media print{.bio-lanza,.bio-panel{display:none!important}}

/* ---------- Panel ---------- */
.bio-panel{position:fixed;inset:auto var(--bc-borde) var(--bc-base) auto;z-index:45;width:min(400px,100vw - 36px);height:min(640px,100dvh - 112px);max-width:none;max-height:none;margin:0;padding:0;border:1px solid var(--glass-line);border-radius:28px;overflow:hidden;background:var(--glass);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 2px 6px rgba(1,39,66,.08),0 28px 60px -20px rgba(1,39,66,.55);color:var(--ink);font:400 .97rem/1.5 var(--font);transform-origin:calc(100% - 32px) calc(100% - 32px)}
.bio-panel[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.bio-panel::backdrop{background:#fff}
.bio-panel p{max-width:none}
.bio-panel svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.bio-panel svg.bc-gordo{stroke-width:3}
.bio-panel :focus-visible{outline:3px solid var(--verde);outline-offset:2px;box-shadow:0 0 0 5px #fff}

/* Cabecera */
.bc-cab{position:relative;display:flex;align-items:center;gap:10px;min-height:64px;padding:10px 10px 10px 16px;border-bottom:1px solid var(--glass-line)}
.bc-yo{flex:none;width:40px;height:40px;border-radius:50%;background:url(bio-cabeza-160.webp) -3px 4px/46px auto no-repeat,var(--bc-cielo);box-shadow:0 0 0 1px var(--glass-line)}
.bc-cab-t{flex:1;min-width:0;display:grid;gap:1px}
.bc-tit{font:700 1.05rem/1.15 var(--font);letter-spacing:-.01em;text-wrap:nowrap;outline-offset:4px}
.bc-sub{display:flex;align-items:center;gap:6px;font:500 .8rem/1.2 var(--font);color:var(--muted)}
.bc-sub::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--lima);box-shadow:0 0 0 1px rgba(1,39,66,.25)}
.bc-ib{position:relative;display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--ink);cursor:pointer}
.bc-ib .bc-x{display:none}
.bc-n{position:absolute;right:2px;top:2px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--verde);color:#fff;font:700 .7rem/18px var(--font);text-align:center}
.bc-menu{position:absolute;right:10px;top:calc(100% - 4px);z-index:3;display:grid;gap:2px;width:min(280px,100% - 20px);padding:8px;border-radius:20px;background:#fff;border:1px solid var(--line);box-shadow:0 2px 4px rgba(1,39,66,.06),0 22px 44px -18px rgba(1,39,66,.4)}
.bc-menu p{padding:8px 10px 4px;font-size:.92rem;line-height:1.4}
.bc-op{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 12px;border:0;border-radius:12px;background:transparent;color:var(--ink);font:500 .95rem/1.3 var(--font);text-align:left;text-decoration:none;cursor:pointer}
.bc-op.bc-pel{color:var(--bc-rojo);font-weight:600}
.bc-op svg{width:20px;height:20px}

/* Lista de la conversación (zona de lectura: .94 efectivo sobre el cristal) */
.bc-hilo{position:relative;display:flex;flex-direction:column;gap:4px;overflow-y:auto;overscroll-behavior:contain;scroll-padding-bottom:16px;padding:12px 12px 14px;background:rgba(255,255,255,.66)}
.bc-hilo:focus-visible{outline-offset:-3px;box-shadow:none}
.bc-log{display:flex;flex-direction:column;gap:4px}
.bc-log:empty{display:none}

/* Bienvenida: escena compuesta (cielo en CSS, cabeza con transparencia que se asoma y globo de saludo) */
.bc-ini{flex:none;display:grid;gap:8px;margin-bottom:8px}
.bc-escena{position:relative;display:grid;align-content:center;min-height:124px;margin-top:16px;padding:12px 12px 12px 158px;border-radius:20px;background:var(--bc-cielo)}
.bc-escena::before{content:"";position:absolute;left:2px;bottom:0;width:160px;height:136px;background:url(bio-cabeza-288.webp) 0 100%/100% auto no-repeat}
.bc-globo{padding:10px 14px;border-radius:18px 18px 18px 6px;background:rgba(255,255,255,.9);box-shadow:inset 0 1px 0 #fff,0 8px 20px -12px rgba(1,39,66,.45)}
.bc-globo h3{font:700 1.12rem/1.2 var(--font);letter-spacing:-.01em}
.bc-globo p{margin-top:3px;font-size:.88rem;line-height:1.35}
.bc-accesos{display:grid;gap:6px}
.bc-acc{display:grid;grid-template-columns:28px minmax(0,1fr) 18px;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px 14px 8px 12px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink);font:600 .95rem/1.25 var(--font);text-align:left;text-decoration:none;cursor:pointer;transition:transform var(--dur-1) var(--ease-ui),border-color var(--dur-2) var(--ease-ui),background-color var(--dur-2) var(--ease-ui)}
.bc-acc svg:first-child{width:24px;height:24px;color:var(--verde)}
.bc-acc svg:last-child{width:18px;height:18px;color:var(--muted);transition:transform var(--dur-3) var(--ease-out)}
.bc-acc:active{transform:scale(.985)}
.bc-ia{padding:2px 6px;font-size:.8rem;line-height:1.4;color:var(--muted)}
.bc-ia a,.bc-aviso a,.bc-check a{color:var(--ink);text-underline-offset:3px}

/* Mensajes */
.bc-f{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.bc-f.bc-mio{align-items:flex-end}
.bc-f+.bc-f{margin-top:6px}
.bc-f.bc-mio+.bc-f.bc-mio,.bc-f.bc-suyo+.bc-f.bc-suyo{margin-top:0}
.bc-m{max-width:84%;padding:10px 14px;border-radius:18px;overflow-wrap:anywhere}
.bc-suyo{padding-left:36px}
.bc-suyo .bc-m{position:relative}
.bc-suyo .bc-m::before{content:"";position:absolute;left:-37px;bottom:-1px;width:28px;height:28px;border-radius:50%;background:url(bio-cabeza-160.webp) -2px 3px/32px auto no-repeat,var(--bc-cielo);box-shadow:0 0 0 1px var(--glass-line)}
.bc-suyo:has(+.bc-suyo) .bc-m::before{display:none}
.bc-suyo .bc-m{max-width:100%;background:#fff;border:1px solid var(--line);border-bottom-left-radius:6px}
.bc-suyo:has(+.bc-suyo) .bc-m{border-bottom-left-radius:18px}
.bc-mio .bc-m{max-width:80%;background:var(--marino);color:#fff;border-bottom-right-radius:6px}
.bc-m p+p,.bc-m p+ul,.bc-m ul+p{margin-top:6px}
.bc-m ul{display:grid;gap:3px;padding-left:18px;list-style:disc}
.bc-m strong{font-weight:700}
.bc-txt{white-space:pre-wrap}
.bc-foto{display:block;width:96px;height:96px;max-width:none;object-fit:cover;border-radius:12px;margin:-2px -6px 0}
.bc-foto+span{display:block;margin-top:6px}
.bc-audio{display:flex;align-items:center;gap:8px;font-weight:600}
.bc-oi{max-width:80%;padding:0 6px;font-size:.84rem;line-height:1.4;color:var(--muted);text-align:right;overflow-wrap:anywhere}
.bc-est{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:2px 10px;min-height:18px;padding:0 6px;font-size:.78rem;line-height:1.3;color:var(--muted)}
.bc-est:empty{display:none}
.bc-est.bc-mal{color:var(--bc-rojo);font-weight:600}
.bc-lk{min-height:44px;padding:0 4px;border:0;background:transparent;color:var(--ink);font:600 .86rem/1.2 var(--font);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--verde);cursor:pointer}
.bc-emerg{align-self:stretch;display:flex;gap:10px;padding:10px 14px;border-radius:14px;border:1.5px solid var(--bc-rojo);background:#FDF1EF;color:#5F130C;font-weight:600;line-height:1.4}
.bc-emerg svg{color:var(--bc-rojo);margin-top:1px}

/* Fichas (cultivos, sugerencias) y botones dentro de la conversación */
.bc-fichas{display:flex;flex-wrap:wrap;gap:6px;max-width:100%}
.bc-ficha{min-height:44px;padding:6px 14px;border-radius:999px;border:1.5px solid var(--verde);background:#fff;color:var(--verde);font:600 .86rem/1.2 var(--font);text-align:left;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center}
.bc-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:8px 18px;border:0;border-radius:999px;background:var(--marino);color:#fff;font:600 .9rem/1.2 var(--font);text-decoration:none;cursor:pointer}
.bc-btn[disabled]{opacity:.55;cursor:default}
.bc-btn.bc-b2{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--field-line)}

/* Tarjeta de producto */
.bc-prods{align-self:stretch;display:grid;gap:8px}
.bc-prod{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;align-items:start;padding:10px 12px 10px 10px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:var(--sh-1)}
.bc-prod-f{display:grid;place-items:center;width:64px;height:80px;border-radius:12px;background:var(--tinte);color:var(--field-line);overflow:hidden}
.bc-prod-f img{width:100%;height:100%;object-fit:contain}
.bc-prod-f svg{width:30px;height:30px}
.bc-prod b{display:block;font:700 1rem/1.2 var(--font)}
.bc-prod small{display:block;margin-top:2px;font-size:.82rem;line-height:1.3;color:var(--muted)}
.bc-prod small.bc-en{display:flex;align-items:center;gap:4px;margin-top:8px;color:var(--ink);font-weight:600}
.bc-prod small.bc-en svg{width:16px;height:16px;color:var(--verde);stroke-width:2.4}
.bc-sel{width:100%;min-height:44px;margin-top:6px;padding:6px 12px;border-radius:999px;border:1.5px solid var(--field-line);background:#fff;color:var(--ink);font:500 .92rem var(--font)}
.bc-prod-a{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:8px}
.bc-prod-a .bc-btn{min-height:36px;padding:6px 14px;font-size:.86rem}
.bc-prod-a .cant{margin-right:auto}
.bc-prod-a .cant-i{width:54px;font-size:1rem}
.bio-panel .cant :focus-visible{outline-offset:-3px;box-shadow:none}
a.bc-lk{display:inline-flex;align-items:center}
@media (pointer:coarse){.bc-prod-a .bc-btn{min-height:44px}}

/* Formulario del traspaso a un asesor */
.bc-form{align-self:stretch;display:grid;gap:10px;padding:14px;border-radius:18px;background:#fff;border:1px solid var(--line)}
.bc-form label{display:grid;gap:4px;font-weight:600;font-size:.9rem}
.bc-form input[type=text]{width:100%;min-height:44px;padding:8px 12px;border-radius:12px;border:1.5px solid var(--field-line);background:#fff;color:var(--ink);font:400 1rem var(--font)}
.bc-form input[type=text]:focus{border-color:var(--verde)}
.bc-form label.bc-check{grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;font-weight:400;font-size:.86rem;line-height:1.4;color:var(--muted)}
.bc-check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--verde)}
.bc-trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.bc-ferr{color:var(--bc-rojo);font-size:.88rem;font-weight:600;line-height:1.4}
.bc-ferr:empty{display:none}

/* Bio está escribiendo */
.bc-esp .bc-m{display:inline-flex;align-items:center;gap:5px;min-height:40px;color:var(--muted);font-size:.86rem}
.bc-esp i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--muted);opacity:.35}
.bc-esp i:nth-child(2){opacity:.6}.bc-esp i:nth-child(3){opacity:.85}
.bc-esp span{margin-left:4px}
.bc-nuevos{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);z-index:2;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 14px;border:0;border-radius:999px;background:var(--marino);color:#fff;font:600 .84rem/1.2 var(--font);box-shadow:var(--sh-2);cursor:pointer;white-space:nowrap}
.bc-nuevos svg{width:16px;height:16px}

/* Barra para escribir */
.bc-barra{position:relative;display:grid;gap:6px;padding:10px 12px calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--glass-line)}
.bc-franja,.bc-nota{padding:6px 12px;border-radius:12px;background:#fff;border:1px solid var(--line);font-size:.84rem;line-height:1.4}
.bc-franja{font-weight:600}
.bc-nota.bc-mal{border-color:var(--bc-rojo);color:#5F130C;font-weight:600}
.bc-nota:empty{display:none}
.bc-campo{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:end;gap:2px;min-height:52px;padding:3px;border-radius:26px;border:1.5px solid var(--field-line);background:#fff;transition:border-color var(--dur-2) var(--ease-ui),box-shadow var(--dur-2) var(--ease-ui)}
.bc-campo:focus-within{border-color:var(--verde);box-shadow:0 0 0 3px rgba(32,128,43,.16)}
.bc-caja{display:grid;gap:6px;align-self:center;min-width:0}
.bc-adj:not([hidden]){margin-top:8px}
.bc-campo textarea{display:block;width:100%;min-height:44px;max-height:116px;margin:0;padding:10px 6px;border:0;background:transparent;color:var(--ink);font:400 1rem/1.5 var(--font);resize:none;outline:0;box-shadow:none}
.bc-campo textarea::placeholder{color:var(--muted);opacity:1}
.bc-campo textarea:focus-visible{outline:0;box-shadow:none}
.bc-fin{display:flex;align-items:end}
.bc-b{display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}
.bc-b[disabled]{opacity:.45;cursor:default}
.bc-b.bc-env{background:var(--verde);color:#fff}
.bc-b.bc-env[disabled]{background:var(--surface-2);color:var(--field-line);opacity:1}
.bc-b.bc-luz{background:var(--tinte);color:var(--verde);box-shadow:0 0 0 2px var(--verde)}
.bc-adj{position:relative;width:56px;height:56px;margin-left:6px}
.bc-adj img{width:56px;height:56px;object-fit:cover;border-radius:12px}
.bc-adj button{position:absolute;right:-12px;top:-12px;display:grid;place-items:center;width:32px;height:32px;padding:0;border:2px solid #fff;border-radius:50%;background:var(--marino);color:#fff;cursor:pointer}
.bc-adj button svg{width:14px;height:14px;stroke-width:2.4}
.bc-adj button::after{content:"";position:absolute;inset:-7px}
.bc-quedan{padding:0 12px;font-size:.78rem;color:var(--muted);text-align:right}
.bc-voz{display:flex;align-items:center;gap:6px;min-height:52px;padding:3px 3px 3px 6px;border-radius:26px;border:1.5px solid var(--field-line);background:var(--tinte)}
.bc-voz .bc-b{color:var(--ink)}
.bc-voz .bc-b.bc-env{color:#fff}
.bc-voz-t{flex:1;min-width:0;display:flex;align-items:center;gap:8px;font-weight:600;font-variant-numeric:tabular-nums}
.bc-punto{flex:none;width:8px;height:8px;border-radius:50%;background:var(--bc-rojo)}
.bc-aviso{margin:0 auto;font-size:.74rem;line-height:1.3;color:var(--muted);text-align:center;text-wrap:balance}
.bc-bajo .bc-aviso{display:none}

@media (hover:hover) and (pointer:fine){
  .bc-acc:hover{border-color:var(--verde);background:var(--tinte)}.bc-acc:hover svg:last-child{transform:translateX(3px)}
  .bc-ib:hover,.bc-op:hover,.bc-b:hover:not([disabled]):not(.bc-env){background:var(--surface-2)}
  .bc-ficha:hover{background:var(--tinte)}
}

/* ---------- Teléfono: hoja completa en la capa superior, sin desenfoque; el alto sigue al teclado (visualViewport) ---------- */
@media (max-width:619px){
  .bio-panel{inset:var(--bc-vt,0px) 0 auto 0;width:100%;height:var(--bc-vh,100dvh);border:0;border-radius:0;background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
  .bc-cab{min-height:56px;padding:max(6px,env(safe-area-inset-top,0px)) max(8px,env(safe-area-inset-right,0px)) 6px max(14px,env(safe-area-inset-left,0px))}
  .bc-hilo{padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px));background:var(--surface)}
  .bc-barra{padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px));padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
  .bc-acc{min-height:52px}
  .bc-ib .bc-x{display:block}.bc-ib .bc-g{display:none}
  .bc-campo.bc-vacio .bc-env,.bc-campo:not(.bc-vacio) .bc-mic{display:none}
}
@media (max-width:359px){.bc-escena{padding-left:122px}.bc-escena::before{width:124px;height:106px}.bc-prod-a .cant-x{display:none}}
@media (max-height:620px) and (min-width:620px){.bc-acc{min-height:44px}.bc-escena{min-height:104px}}
@media (forced-colors:active){.bc-suyo .bc-m,.bc-mio .bc-m,.bc-campo,.bio-lanza{border:1px solid CanvasText}}

/* ---------- Movimiento: solo transform y opacity, solo sin «reducir movimiento» ---------- */
@media screen and (prefers-reduced-motion:no-preference){
  .bio-lanza{animation:bc-brota var(--dur-4) var(--ease-out) both}
  .bio-panel[open]{animation:bc-abre var(--dur-3) var(--ease-out)}
  .bc-f.bc-llega,.bc-llega .bc-prod{animation:bc-llega var(--dur-3) var(--ease-out) both}
  .bc-llega .bc-prod:nth-child(2){animation-delay:60ms}.bc-llega .bc-prod:nth-child(3){animation-delay:120ms}
  .bc-esp i{animation:bc-punto 1.2s var(--ease-ui) infinite}
  .bc-esp i:nth-child(2){animation-delay:.16s}.bc-esp i:nth-child(3){animation-delay:.32s}
}
@media screen and (prefers-reduced-motion:no-preference) and (max-width:619px){.bio-panel[open]{animation:bc-sube var(--dur-4) var(--ease-out)}}
@keyframes bc-brota{from{opacity:0;transform:translateY(14px) scale(.8)}}
@keyframes bc-abre{from{opacity:0;transform:translateY(12px) scale(.96)}}
@keyframes bc-sube{from{opacity:0;transform:translateY(32px)}}
@keyframes bc-llega{from{opacity:0;transform:translateY(6px)}}
@keyframes bc-punto{0%,60%,100%{transform:none;opacity:.35}30%{transform:translateY(-3px);opacity:.9}}
