/* Asistente Aviv Art — usa los tokens de avivart.css (papel, tinta, lima) */
.ab{--ab-w:400px;position:fixed;z-index:45;right:max(20px,env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));font-family:var(--sans);color:var(--ink)}
.ab-launch{display:flex;align-items:center;gap:12px;min-height:56px;padding:6px 22px 6px 6px;border:0;border-radius:60px;background:var(--ink);color:var(--paper);font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 12px 30px rgba(23,26,23,.28);transition:transform .25s,background .2s}
.ab-launch:hover{background:#2c332a;transform:translateY(-2px)}
.ab-launch:focus-visible{outline-color:var(--lime)}
.ab-avatar{position:relative;display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:var(--lime)}
.ab-avatar img{width:28px;height:28px;object-fit:contain}
.ab-launch .ab-avatar:after{content:"";position:absolute;right:1px;top:1px;width:10px;height:10px;border-radius:50%;background:var(--lime-2);border:2px solid var(--ink)}
.is-open .ab-launch{display:none}

.ab-nudge{position:absolute;right:0;bottom:70px;width:min(290px,calc(100vw - 40px));padding:16px 40px 16px 18px;background:var(--paper);border:1.5px solid var(--ink);border-radius:20px 20px 6px 20px;box-shadow:0 12px 30px rgba(23,26,23,.16);transform:rotate(-1.5deg);animation:rise .45s ease both}
.ab-nudge[hidden]{display:none}
.ab-nudge p{font-size:15px;line-height:1.4;cursor:pointer}
.ab-nudge-close{position:absolute;top:6px;right:8px;width:30px;height:30px;border:0;background:none;font-size:20px;line-height:1;cursor:pointer;color:var(--gray)}

.ab-panel{position:absolute;right:0;bottom:0;width:min(var(--ab-w),calc(100vw - 40px));height:min(640px,calc(100svh - 120px));display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--ink);border-radius:26px;overflow:hidden;box-shadow:0 24px 60px rgba(23,26,23,.28);animation:ab-open .3s cubic-bezier(.2,.7,.2,1) both;transform-origin:100% 100%}
.ab-panel[hidden]{display:none}
@keyframes ab-open{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
.ab-head{display:flex;align-items:center;gap:12px;padding:14px 10px 14px 14px;background:var(--ink);color:var(--paper)}
.ab-head .ab-avatar{width:40px;height:40px}
.ab-id{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.ab-id strong{font-size:16px;font-weight:600;letter-spacing:-.02em}
.ab-id span{font-size:12.5px;color:#c9d2bf}
.ab-restart,.ab-close{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:var(--paper);cursor:pointer}
.ab-restart:hover,.ab-close:hover{background:rgba(255,255,255,.1)}
.ab-restart svg{width:19px;height:19px}
.ab-close .menu-cross{transform:rotate(45deg);width:24px;height:24px}
.ab-close .menu-cross:before,.ab-close .menu-cross:after{left:2px;top:11px;width:20px}
.ab-head :focus-visible{outline-color:var(--lime);outline-offset:2px}
.ab-progress{height:3px;background:var(--paper-3)}
.ab-progress span{display:block;height:100%;width:4%;background:var(--moss);transition:width .45s ease}

.ab-log{position:relative;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:18px 16px 8px;display:flex;flex-direction:column;gap:8px;scroll-behavior:smooth}
.ab-msg{max-width:88%;font-size:15px;line-height:1.45;padding:11px 15px;overflow-wrap:anywhere;animation:rise .3s ease both}
.ab-msg--bot{align-self:flex-start;background:#fff;border:1px solid var(--line);border-radius:18px 18px 18px 6px}
.ab-msg--user{align-self:flex-end;background:var(--lime);border-radius:18px 18px 6px 18px;transform:rotate(-1deg);margin:4px 2px 6px 0}
.ab-msg--user em{color:var(--ink);opacity:.7}
.ab-msg--card{align-self:stretch;max-width:none;padding:0;background:none}
.ab-typing{display:flex;gap:5px;align-items:center;padding:15px 16px}
.ab-typing span:not(.sr-only){width:7px;height:7px;border-radius:50%;background:var(--gray);opacity:.35;animation:ab-dot 1s infinite}
.ab-typing span:nth-child(2){animation-delay:.15s}.ab-typing span:nth-child(3){animation-delay:.3s}
@keyframes ab-dot{0%,60%,100%{opacity:.25;transform:none}30%{opacity:.9;transform:translateY(-3px)}}

.ab-summary{border:1.5px solid var(--ink);border-radius:18px;background:var(--paper);overflow:hidden}
.ab-summary dl{margin:0;padding:6px 16px}
.ab-summary dl div{display:grid;grid-template-columns:minmax(90px,38%) 1fr;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line)}
.ab-summary dl div:last-child{border-bottom:0}
.ab-summary dt{font:500 11.5px/1.5 var(--mono);color:var(--gray)}
.ab-summary dd{margin:0;font-size:14px;line-height:1.4}
.ab-rec{display:flex;flex-direction:column;gap:3px;margin:0;padding:13px 16px 15px;background:var(--lime);border-top:1.5px solid var(--ink)}
.ab-rec span{font:500 11.5px/1.5 var(--mono)}
.ab-rec strong{font-size:16.5px;line-height:1.25;letter-spacing:-.02em;font-weight:600}

.ab-controls{padding:10px 16px 12px;border-top:1px solid var(--line);background:var(--paper);max-height:52%;overflow-y:auto}
.ab-controls:empty{display:none}
.ab-options{display:flex;flex-direction:column;align-items:flex-end;gap:6px;margin:2px 0 6px;padding-left:14%}
.ab-opt{max-width:100%;padding:9px 15px;border:1.5px solid var(--ink);border-radius:20px;background:var(--paper);font-size:14px;line-height:1.3;text-align:left;cursor:pointer;transition:background .15s,transform .15s}
@media (hover:hover){.ab-opt:hover{background:var(--lime);transform:rotate(-1deg)}}
.ab-opt:active{background:var(--lime)}
.ab-multi{margin:2px 0 6px;padding:0 0 0 10%;border:0;min-width:0}
.ab-chips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
.ab-chips .chip span{font-size:14px;min-height:38px}
.ab-send{display:block;margin:10px 0 0 auto;min-height:44px;padding:9px 22px;border:0;border-radius:40px;background:var(--ink);color:var(--paper);font-size:14.5px;font-weight:600;cursor:pointer}
.ab-send:disabled{opacity:.35;cursor:not-allowed}
.ab-form{display:flex;flex-direction:column;gap:10px}
.ab-field{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}
.ab-field input,.ab-field textarea{width:100%;border:1px solid #b9c1ae;border-radius:14px;background:#fff;padding:11px 14px;font-size:16px;font-weight:400;min-height:46px}
.ab-field textarea{min-height:76px;resize:none}
.ab-field input:focus,.ab-field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(180,230,80,.55)}
.ab-error{color:#8a2414;font-weight:600;font-size:13.5px;margin:0}
.ab-error:empty{display:none}
.ab-form-actions{display:flex;flex-direction:row-reverse;align-items:center;gap:14px}
.ab-form-actions .ab-send{margin:0}
.ab-skip{background:none;border:0;padding:8px 2px;font-size:14px;color:var(--gray);border-bottom:1px solid currentColor;cursor:pointer}
.ab-skip:hover{color:var(--ink)}

.ab-final{display:flex;flex-direction:column;gap:8px}
.ab-cta{display:flex;align-items:center;justify-content:center;gap:10px;min-height:50px;border-radius:40px;background:var(--lime);border:1.5px solid var(--ink);font-weight:600;font-size:15px}
.ab-cta:hover{background:var(--lime-2)}
.ab-final-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ab-alt{display:flex;align-items:center;justify-content:center;min-height:44px;padding:6px 10px;border:1px solid var(--ink);border-radius:40px;background:transparent;font-size:14px;font-weight:500;cursor:pointer;text-align:center}
.ab-alt:hover{background:var(--ink);color:var(--paper)}
.ab-note{font-size:12px;color:var(--gray);text-align:center;margin:2px 0 0}
.ab-foot{margin:0;padding:10px 16px 12px;font-size:12.5px;color:var(--gray);border-top:1px solid var(--line);text-align:center}
.ab-foot a{color:var(--ink);border-bottom:1px solid currentColor}

@media (max-width:900px){
  /* La barra fija inferior ocupa el borde: el lanzador se ubica encima y se vuelve circular */
  .ab{right:14px;bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .ab-launch{padding:6px;min-height:0}
  .ab-launch-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .ab-launch .ab-avatar{width:50px;height:50px}
  .ab-nudge{bottom:72px}
  .ab.is-open{inset:auto 0 0 0}
  .ab-panel{position:fixed;left:0;right:0;bottom:0;width:100%;height:min(88svh,720px);border-radius:24px 24px 0 0;border-width:1px 0 0;padding-bottom:env(safe-area-inset-bottom,0px);transform-origin:50% 100%}
  .ab-msg{max-width:92%}
}
@media print{.ab{display:none}}
