.contact-dock { position:fixed; right:max(24px,env(safe-area-inset-right)); bottom:max(24px,env(safe-area-inset-bottom)); z-index:30; display:flex; gap:9px; align-items:center; }
.contact-dock a,.contact-dock button { display:flex; align-items:center; justify-content:center; border:1px solid var(--line); box-shadow:0 5px 20px #102e2724; text-decoration:none; cursor:pointer; }
.contact-dock .contact-round { width:46px; height:46px; border-radius:50%; background:var(--paper); color:var(--ink); }
.contact-dock .contact-whatsapp { background:#167449; border-color:#167449; }
.contact-dock img { width:23px; height:23px; }
.contact-whatsapp img,.chat-launch img { filter:brightness(0) invert(1); }
.contact-dock .chat-launch { gap:10px; min-height:54px; border-radius:30px; padding:0 20px; background:#153e34; border-color:#cfb779; color:#fffaf0; font:600 13px/1.2 Arial,sans-serif; }
.contact-dock a:focus-visible,.contact-dock button:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
.contact-dock a:hover,.contact-dock button:hover { transform:translateY(-2px); }
.contact-dock a,.contact-dock button { transition:transform .18s ease; }
body.dark .contact-email img { filter:brightness(0) invert(1); }
#cbe-chat-dialog { position:fixed; inset:auto max(24px,env(safe-area-inset-right)) max(90px,calc(env(safe-area-inset-bottom) + 72px)) auto; margin:0; padding:0; width:410px; max-width:calc(100vw - 32px); height:610px; max-height:calc(100dvh - 110px); border:1px solid var(--line); border-radius:22px; background:var(--paper); color:var(--ink); box-shadow:0 24px 90px #102e2740; overflow:hidden; font:14px/1.55 Arial,sans-serif; }
#cbe-chat-dialog::backdrop { background:rgb(9 29 24 / .2); }
#cbe-chat-dialog[open] { display:flex; flex-direction:column; animation:cbe-chat-enter .2s ease-out; }
.chat-heading { display:flex; gap:12px; align-items:center; padding:18px 18px 16px; border-bottom:1px solid var(--line); flex-shrink:0; }
.chat-avatar { width:48px; height:48px; border-radius:50%; background:#f7f4ef; }
.chat-heading h2 { font:24px/1.2 Georgia,serif; letter-spacing:-.5px; margin:0 0 4px; }
.chat-heading p { margin:0; color:var(--muted); font-size:11px; }
.chat-heading .chat-icon-button { margin-left:auto; }
#cbe-chat-dialog .chat-icon-button { display:grid; place-items:center; width:40px; height:40px; min-width:40px; padding:9px; border:0; border-radius:50%; background:transparent; color:var(--ink); cursor:pointer; }
.chat-icon-button img { width:21px; height:21px; }
body.dark .chat-icon-button img { filter:brightness(0) invert(1); }
.chat-icon-button:hover { background:var(--surface)!important; }
.chat-scroll { flex:1; overflow-y:auto; overscroll-behavior:contain; padding:20px 18px; min-height:80px; scrollbar-width:thin; }
.chat-intro h3 { font:27px/1.2 Georgia,serif; margin:0 0 10px; }
.chat-intro p { color:var(--muted); font-size:13px; margin:0 0 16px; }
.chat-prompts { display:flex; flex-direction:column; align-items:stretch; gap:7px; }
#cbe-chat-dialog .chat-prompts button { text-align:left; background:transparent; border:1px solid var(--line); color:var(--ink); border-radius:10px; padding:11px 12px; font:13px/1.4 Arial,sans-serif; cursor:pointer; }
#cbe-chat-dialog .chat-prompts button:hover { background:var(--surface); }
.chat-message { margin-top:18px; padding:13px 15px; border-radius:14px; background:var(--surface); overflow-wrap:anywhere; }
.chat-message[data-role=user] { margin-left:30px; background:#153e34; color:#fffaf0; border-bottom-right-radius:3px; }
.chat-message[data-role=assistant] { margin-right:10px; border-bottom-left-radius:3px; }
.chat-message strong.chat-author { display:block; font-size:10px; letter-spacing:.8px; text-transform:uppercase; margin-bottom:7px; opacity:.8; }
.chat-answer { white-space:pre-wrap; }
.chat-answer a,.chat-sources a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.chat-sources { border-top:1px solid var(--line); padding-top:9px; margin-top:11px; display:grid; gap:6px; font-size:12px; }
.chat-sources p { margin:0; font-size:10px; letter-spacing:.6px; text-transform:uppercase; color:var(--muted); }
.chat-status { font-size:12px; margin:14px 0 0; color:var(--muted); }
.chat-status[data-error=true] { color:#a23d26; }
body.dark .chat-status[data-error=true] { color:#ffb19b; }
.chat-compose { padding:12px 16px 14px; border-top:1px solid var(--line); background:var(--paper); flex-shrink:0; }
.chat-options { display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; gap:8px; }
.chat-options label { display:flex; align-items:center; gap:7px; font-size:12px; cursor:pointer; }
.chat-options input { accent-color:#153e34; width:16px; height:16px; margin:0; }
#cbe-chat-dialog .chat-reset { border:0; background:transparent; color:var(--muted); font-size:12px; min-height:32px; padding:4px; text-decoration:underline; cursor:pointer; }
.chat-input-row { display:flex; align-items:flex-end; gap:8px; }
#cbe-chat-dialog textarea { flex:1; width:100%; min-width:0; height:64px; min-height:64px; max-height:130px; resize:vertical; padding:11px; border-radius:12px; border:1px solid var(--line); background:var(--paper); color:var(--ink); font:16px/1.4 Arial,sans-serif; }
#cbe-chat-dialog .chat-send { flex-shrink:0; width:44px; height:44px; border:0; border-radius:50%; background:#153e34; cursor:pointer; display:grid; place-items:center; }
.chat-send img { width:22px; height:22px; filter:brightness(0) invert(1); }
.chat-send:disabled { opacity:.4; cursor:wait; }
#cbe-chat-dialog :focus-visible { outline:2px solid var(--ink); outline-offset:3px; }
.chat-privacy { margin:8px 0 0; color:var(--muted); font-size:10px; line-height:1.45; }
.chat-contact { display:flex; justify-content:center; align-items:center; gap:20px; border-top:1px solid var(--line); padding:9px 12px; flex-shrink:0; font-size:12px; }
.chat-contact a { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.footer-contact { scroll-margin-top:100px; }
.footer-contact a { overflow-wrap:anywhere; }
body:has(.contact-dock) > footer { padding-bottom:110px; }
@keyframes cbe-chat-enter { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:600px) {
  .contact-dock { right:16px; bottom:max(16px,env(safe-area-inset-bottom)); gap:8px; }
  .contact-dock .chat-launch { min-height:50px; padding-inline:16px; }
  #cbe-chat-dialog { right:12px; bottom:max(78px,calc(env(safe-area-inset-bottom) + 66px)); width:calc(100vw - 24px); max-width:none; max-height:calc(100dvh - 94px); height:620px; border-radius:18px; }
  .chat-heading { padding:14px; }
  .chat-scroll { padding:16px 14px; }
  .chat-compose { padding:9px 12px 12px; }
}
@media(prefers-reduced-motion:reduce) { #cbe-chat-dialog[open] { animation:none; } .contact-dock a,.contact-dock button { transition:none; } }
@media(max-height:550px) {
  #cbe-chat-dialog { inset:8px 12px; width:auto; height:calc(100dvh - 16px); max-height:none; max-width:none; }
  .chat-heading { padding:8px 12px; }
  .chat-avatar { width:36px; height:36px; }
  .chat-heading h2 { font-size:21px; }
  .chat-scroll { min-height:0; padding:10px 14px; }
  .chat-compose { padding:6px 12px; }
  #cbe-chat-dialog textarea { height:44px; min-height:44px; }
  .chat-contact { padding:5px 12px; }
}

.contact-dock .help-toggle{min-width:64px;min-height:48px;padding:12px 16px;border-radius:24px;background:#153e34;color:#fffaf0;font:600 14px Arial,sans-serif;border-color:#cfb779}
.contact-dock .help-options{position:absolute;bottom:60px;right:0;display:grid;gap:8px;width:220px;padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px #102e2724}
.contact-dock .help-options[hidden]{display:none}
.contact-dock .help-options a,.contact-dock .help-options button{width:100%;min-height:46px;border-radius:6px;gap:12px;padding:10px 12px;justify-content:flex-start;box-shadow:none;font-size:14px}
.contact-dock .contact-whatsapp{color:white}

@media(max-width:600px){.contact-dock{position:relative;inset:auto;justify-content:flex-end;padding:16px 6% max(16px,env(safe-area-inset-bottom));background:var(--paper)}.contact-dock .help-options{right:6%;bottom:76px}body:has(.contact-dock)>footer{padding-bottom:28px}}
