/* Base del asistente público. Se carga en todas las páginas y usa :where()
   para que los temas existentes puedan seguir personalizando el componente. */
:where(.yrv-assistant-fab){position:fixed;right:24px;bottom:24px;z-index:95;display:flex;align-items:center;gap:9px;min-height:52px;padding:10px 17px;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:linear-gradient(135deg,#365ed7,#6852d5 58%,#8b58c8);color:#fff;box-shadow:0 18px 42px rgba(72,73,154,.26);font:700 12px/1 inherit;cursor:pointer}
:where(.yrv-assistant-fab) span{font-size:18px}
:where(.yrv-assistant-backdrop){position:fixed;inset:0;z-index:96;background:rgba(18,21,29,.25);backdrop-filter:blur(2px)}
:where(.yrv-assistant){position:fixed;right:22px;bottom:22px;z-index:97;width:min(420px,calc(100vw - 28px));height:min(690px,calc(100vh - 44px));display:grid;grid-template-rows:auto auto 1fr auto auto;border:1px solid rgba(226,229,237,.95);border-radius:30px;background:rgba(255,255,255,.96);box-shadow:0 28px 100px rgba(25,32,54,.24);overflow:hidden;transform:translateY(18px) scale(.98);opacity:0;pointer-events:none;transition:transform .22s ease,opacity .22s ease;backdrop-filter:blur(24px)}
:where(.yrv-assistant.is-open){transform:none;opacity:1;pointer-events:auto}
:where(.yrv-assistant)>header{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding:18px 18px 14px;border-bottom:1px solid #edf0f4}
:where(.yrv-assistant-brand){display:flex;gap:10px;align-items:flex-start}
:where(.yrv-assistant-brand)>span{font-size:23px;background:linear-gradient(135deg,#4267db,#7657df,#bc5da9);-webkit-background-clip:text;background-clip:text;color:transparent}
:where(.yrv-assistant-brand) strong{display:block;color:#262a31;font-size:13px}
:where(.yrv-assistant-brand) small{display:block;max-width:280px;margin-top:4px;color:#838a96;font-size:10px;line-height:1.45}
:where(.yrv-assistant)>header>button{display:grid;place-items:center;width:34px;height:34px;border:1px solid #e8eaf0;border-radius:50%;background:#f8f9fb;color:#6d7480;font-size:20px;cursor:pointer}
:where(.yrv-assistant-privacy){display:flex;gap:8px;align-items:center;padding:9px 16px;background:#f8fafc;border-bottom:1px solid #edf0f4;color:#6f7783;font-size:9px;line-height:1.4}
:where(.yrv-assistant-privacy) svg{width:15px;height:15px;fill:none;stroke:#6873a9;stroke-width:1.6;flex:0 0 auto}
:where(.yrv-assistant-messages){overflow:auto;padding:16px;display:grid;align-content:start;gap:12px;scroll-behavior:smooth}
:where(.yrv-message){display:flex;gap:8px;max-width:92%}
:where(.yrv-message)>div{padding:11px 13px;border-radius:17px;font-size:12px;line-height:1.58;white-space:pre-wrap;word-break:break-word}
:where(.yrv-message.is-assistant){justify-self:start}
:where(.yrv-message.is-assistant)>div{background:#f3f5fa;color:#4d5562;border-top-left-radius:7px}
:where(.yrv-message.is-user){justify-self:end}
:where(.yrv-message.is-user)>div{background:#22252c;color:#fff;border-top-right-radius:7px}
:where(.yrv-message-mark){display:grid;place-items:center;align-self:flex-start;width:24px;height:24px;border-radius:9px;background:#eef1ff;color:#5e62cf;font-size:11px;flex:0 0 auto}
:where(.yrv-message.is-loading)>div{color:#8b919d}
:where(.yrv-assistant-quick){display:flex;gap:6px;overflow-x:auto;padding:8px 14px;border-top:1px solid #eff1f5}
:where(.yrv-assistant-quick) button{flex:0 0 auto;border:1px solid #e6e8ef;background:#f9fafc;color:#646c79;border-radius:999px;padding:7px 10px;font:600 10px/1.2 inherit;cursor:pointer;transition:.18s}
:where(.yrv-assistant-quick) button:hover{background:#eef2ff;border-color:#dce3ff;color:#3854bc}
:where(.yrv-assistant-form){display:grid;grid-template-columns:1fr 42px;gap:8px;padding:10px 12px 13px;background:#fff}
:where(.yrv-assistant-form) textarea{max-height:110px;resize:none;border:1px solid #e4e7ed;background:#f9fafb;border-radius:16px;padding:12px 13px;outline:none;color:#272a31;font:500 12px/1.45 inherit}
:where(.yrv-assistant-form) textarea:focus{border-color:#aab8ec;background:#fff;box-shadow:0 0 0 4px rgba(87,111,220,.07)}
:where(.yrv-assistant-form) button{align-self:end;width:42px;height:42px;border:0;border-radius:14px;background:linear-gradient(135deg,#4e6fe1,#7355d9);color:#fff;font-size:18px;cursor:pointer}
:where(.yrv-assistant-form) button:disabled{opacity:.55;cursor:wait}
.yrv-chat-action{justify-self:start;max-width:92%;margin-left:32px;display:grid;gap:6px}
.yrv-chat-action>a{display:flex;align-items:center;gap:9px;width:max-content;max-width:100%;padding:11px 14px;border-radius:13px;background:linear-gradient(135deg,#526fe9,#7654d8);color:#fff!important;text-decoration:none!important;box-shadow:0 12px 30px rgba(82,91,190,.2);font-size:11px;line-height:1.2}
.yrv-chat-action>a span{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:rgba(255,255,255,.14);font-size:14px}
.yrv-chat-action>a strong{font:800 11px/1.2 inherit}
.yrv-chat-action>small{max-width:290px;color:#7d879c;font-size:9px;line-height:1.45}
@media(max-width:760px){:where(.yrv-assistant-fab){right:14px;bottom:14px;padding:10px 14px}:where(.yrv-assistant-fab) b{display:none}:where(.yrv-assistant){right:8px;bottom:8px;width:calc(100vw - 16px);height:calc(100vh - 16px);border-radius:24px}.yrv-chat-action{margin-left:30px}}
@media(prefers-reduced-motion:reduce){:where(.yrv-assistant),:where(.yrv-assistant-quick) button{transition:none!important}}
@media print{.yrv-assistant-fab,.yrv-assistant,.yrv-assistant-backdrop{display:none!important}}

/* v35 · Mobile keyboard geometry: one source of truth.
   The panel follows VisualViewport; no guessed keyboard pixel offsets. */
.yrv-assistant-fab b{display:inline!important}
.yrv-assistant-brand{gap:0!important}
.yrv-message.is-assistant{margin-left:0!important}
.yrv-chat-action{margin-left:0!important}

@media (max-width:1024px), (pointer:coarse){
  /* Keep the browser's native top-edge overscroll/pull-to-refresh available. */
  html{overscroll-behavior-y:auto!important}
  body:not(.assistant-open){overscroll-behavior-y:auto!important;touch-action:pan-y!important}
  body.assistant-open{overflow:hidden!important;overscroll-behavior:none!important}

  body.assistant-open .site-header{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translate3d(0,-120%,0)!important;
    transition:opacity .14s ease,transform .18s ease,visibility 0s linear .18s!important;
  }

  .yrv-assistant.has-visual-viewport{
    position:fixed!important;
    top:var(--yrv-vv-top,8px)!important;
    left:var(--yrv-vv-left,8px)!important;
    right:auto!important;
    bottom:auto!important;
    width:var(--yrv-vv-width,calc(100vw - 16px))!important;
    height:var(--yrv-vv-height,calc(100dvh - 16px))!important;
    max-width:none!important;
    max-height:none!important;
    min-height:0!important;
    margin:0!important;
    box-sizing:border-box!important;
    transform:none!important;
    overflow:hidden!important;
    contain:layout paint!important;
  }

  .yrv-assistant.is-keyboard-open.has-visual-viewport{
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    align-content:stretch!important;
    border-radius:14px 14px 0 0!important;
  }

  .yrv-assistant.is-keyboard-open>header{
    grid-row:1!important;
    min-height:0!important;
    padding:7px 10px 6px!important;
    align-items:center!important;
    flex:0 0 auto!important;
  }
  .yrv-assistant.is-keyboard-open .yrv-assistant-brand small,
  .yrv-assistant.is-keyboard-open .yrv-assistant-privacy,
  .yrv-assistant.is-keyboard-open .yrv-assistant-quick{display:none!important}
  .yrv-assistant.is-keyboard-open>header>button{
    width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important
  }

  .yrv-assistant.is-keyboard-open .yrv-assistant-messages{
    grid-row:2!important;
    min-height:0!important;
    height:auto!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch;
    padding:8px 10px 6px!important;
    scroll-padding-bottom:8px!important;
  }
  .yrv-assistant.is-keyboard-open .yrv-message{max-width:94%!important;min-width:0!important}
  .yrv-assistant.is-keyboard-open .yrv-message>div{
    max-width:100%!important;overflow-wrap:anywhere!important;padding:9px 11px!important;font-size:11.5px!important;line-height:1.48!important
  }

  .yrv-assistant.is-keyboard-open .yrv-assistant-form{
    grid-row:3!important;
    position:relative!important;
    inset:auto!important;
    align-self:end!important;
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:5px 7px 4px!important;
    padding-bottom:4px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 46px!important;
    align-items:end!important;
    gap:7px!important;
    box-sizing:border-box!important;
    z-index:3!important;
  }
  .yrv-assistant.is-keyboard-open .yrv-assistant-form textarea{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:46px!important;
    min-height:46px!important;
    max-height:88px!important;
    margin:0!important;
    padding:11px 12px!important;
    border-radius:15px!important;
    resize:none!important;
    overflow-y:auto!important;
    box-sizing:border-box!important;
    font-size:16px!important;
    line-height:1.35!important;
    touch-action:manipulation!important;
    scroll-margin:0!important;
  }
  .yrv-assistant.is-keyboard-open .yrv-assistant-form button{
    align-self:end!important;
    width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important;
    margin:0!important;border-radius:14px!important;touch-action:manipulation!important
  }
}

@media(max-width:760px){
  .yrv-assistant-fab{right:14px!important;bottom:max(14px,env(safe-area-inset-bottom))!important;gap:0!important;padding-inline:15px!important}
  .yrv-assistant-fab b{display:inline!important}
  .yrv-assistant.has-visual-viewport{margin:0!important}
  .yrv-assistant.is-keyboard-open.has-visual-viewport{
    left:0!important;right:auto!important;width:100%!important;
    border-left:0!important;border-right:0!important;border-bottom:0!important
  }
  .yrv-assistant:not(.is-keyboard-open) .yrv-assistant-form{
    padding-bottom:max(13px,env(safe-area-inset-bottom))!important
  }
  .yrv-assistant-form textarea{font-size:16px!important}
}

@media (prefers-reduced-motion:reduce){
  body.assistant-open .site-header,.yrv-assistant{transition:none!important}
}
