/* FRIDA · AI Concierge Chat Widget v5 — Frida Kahlo Soul */

#fridaChat-fab {
  position:fixed; bottom:24px; right:24px; z-index:900;
  width:60px; height:60px; border-radius:50%;
  border:1px solid rgba(232,137,10,.5);
  background:radial-gradient(ellipse at 30% 30%, #1a0808, #0e0503);
  box-shadow:0 4px 24px rgba(0,0,0,.5), 0 0 0 1px rgba(232,137,10,.15), inset 0 1px 0 rgba(232,137,10,.1);
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:all .3s cubic-bezier(.34,1.56,.64,1);
  -webkit-tap-highlight-color:transparent;
}
#fridaChat-fab:hover { transform:scale(1.08); border-color:rgba(232,137,10,.8); box-shadow:0 6px 32px rgba(232,137,10,.2); }
#fridaChat-fab:active { transform:scale(.95); }
#fridaChat-fab svg { transition:transform .3s; }
#fridaChat-fab.open svg { transform:rotate(90deg); }
#fridaChat-fab::before {
  content:''; position:absolute; inset:-4px; border-radius:50%;
  border:1px solid rgba(232,137,10,.3); animation:fabPulse 3s ease-in-out infinite;
}
#fridaChat-fab.open::before { animation:none; opacity:0; }
@keyframes fabPulse { 0%,100%{transform:scale(1);opacity:.5} 50%{transform:scale(1.15);opacity:0} }

#fridaChat-badge {
  position:absolute; top:-2px; right:-2px; width:14px; height:14px;
  background:var(--rojo2,#b52212); border-radius:50%; border:2px solid var(--ink,#0e0503);
  opacity:0; transform:scale(0); transition:all .3s;
}
#fridaChat-badge.on { opacity:1; transform:scale(1); }

#fridaChat-panel {
  position:fixed; bottom:96px; right:24px; z-index:899;
  width:380px; max-width:calc(100vw - 32px); height:540px; max-height:calc(100vh - 140px);
  border-radius:16px 16px 16px 4px;
  background:rgba(14,5,3,.97); border:1px solid rgba(232,137,10,.2);
  box-shadow:0 16px 64px rgba(0,0,0,.6); backdrop-filter:blur(40px);
  display:flex; flex-direction:column; overflow:hidden;
  transform:translateY(20px) scale(.95); opacity:0; visibility:hidden; pointer-events:none;
  transition:all .35s cubic-bezier(.34,1.56,.64,1);
}
#fridaChat-panel.open { transform:translateY(0) scale(1); opacity:1; visibility:visible; pointer-events:auto; }

.fc-header {
  padding:18px 20px; background:linear-gradient(180deg,rgba(139,26,14,.2),transparent);
  border-bottom:1px solid rgba(232,137,10,.12); display:flex; align-items:center; gap:14px; flex-shrink:0;
}
.fc-avatar {
  width:40px; height:40px; border-radius:50%;
  background:linear-gradient(135deg,var(--rojo,#8b1a0e),var(--marigold,#e8890a));
  display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0;
  box-shadow:0 2px 8px rgba(232,137,10,.2);
}
.fc-header-info { flex:1; min-width:0; }
.fc-header-name { font-family:var(--mono,'Unbounded',monospace); font-size:9px; letter-spacing:.5em; text-transform:uppercase; color:var(--paper,#f5ead4); }
.fc-header-status { font-family:var(--serif,'Crimson Pro',serif); font-size:11px; color:var(--ghost,#8a6858); margin-top:2px; }
.fc-header-status::before {
  content:''; display:inline-block; width:6px; height:6px; border-radius:50%;
  background:#2d5a27; margin-right:6px; vertical-align:middle; animation:statusPulse 2s ease infinite;
}
@keyframes statusPulse { 0%,100%{opacity:1} 50%{opacity:.4} }
.fc-close {
  width:32px; height:32px; border:1px solid rgba(232,137,10,.15); border-radius:50%;
  background:none; color:var(--ghost,#8a6858); cursor:pointer;
  display:flex; align-items:center; justify-content:center; transition:all .2s; flex-shrink:0;
}
.fc-close:hover { border-color:var(--marigold,#e8890a); color:var(--marigold,#e8890a); }

.fc-messages {
  flex:1; overflow-y:auto; padding:20px 16px; display:flex; flex-direction:column; gap:12px; scroll-behavior:smooth;
}
.fc-messages::-webkit-scrollbar { width:3px; }
.fc-messages::-webkit-scrollbar-thumb { background:rgba(232,137,10,.2); border-radius:2px; }

.fc-msg { max-width:85%; animation:msgIn .35s cubic-bezier(.34,1.56,.64,1) both; }
@keyframes msgIn { from{opacity:0;transform:translateY(10px) scale(.97)} to{opacity:1;transform:none} }
.fc-msg.bot { align-self:flex-start; }
.fc-msg.user { align-self:flex-end; }

.fc-bubble {
  padding:12px 16px; border-radius:14px;
  font-family:var(--serif,'Crimson Pro',serif); font-size:14px; line-height:1.6;
  color:var(--paper,#f5ead4); word-break:break-word;
}
.fc-msg.bot .fc-bubble { background:rgba(232,137,10,.08); border:1px solid rgba(232,137,10,.12); border-radius:4px 14px 14px 14px; }
.fc-msg.user .fc-bubble { background:rgba(139,26,14,.35); border:1px solid rgba(139,26,14,.4); border-radius:14px 14px 4px 14px; color:var(--dust,#d4b896); }
.fc-bubble strong { color:var(--marigold,#e8890a); font-weight:600; }
.fc-bubble em { font-style:italic; color:var(--dust,#d4b896); opacity:.85; }
.fc-bubble a { color:var(--marigold2,#f5a623); text-decoration:underline; text-underline-offset:2px; }
.fc-bubble p { margin:0 0 6px; } .fc-bubble p:last-child { margin:0; }

.fc-sender {
  font-family:var(--mono,'Unbounded',monospace); font-size:7px; letter-spacing:.4em;
  text-transform:uppercase; color:var(--ghost,#8a6858); margin-bottom:4px; padding-left:2px;
}

.fc-typing { align-self:flex-start; display:none; gap:4px; padding:14px 18px; background:rgba(232,137,10,.06); border:1px solid rgba(232,137,10,.1); border-radius:4px 14px 14px 14px; }
.fc-typing.on { display:flex; }
.fc-typing-dot { width:7px; height:7px; border-radius:50%; background:var(--marigold,#e8890a); opacity:.4; animation:typeDot 1.4s ease-in-out infinite; }
.fc-typing-dot:nth-child(2) { animation-delay:.15s; }
.fc-typing-dot:nth-child(3) { animation-delay:.3s; }
@keyframes typeDot { 0%,60%,100%{transform:translateY(0);opacity:.3} 30%{transform:translateY(-5px);opacity:1} }

.fc-quick-actions { display:flex; gap:8px; flex-wrap:wrap; animation:msgIn .4s cubic-bezier(.34,1.56,.64,1) both; animation-delay:.2s; }
.fc-quick-btn {
  font-family:var(--serif,'Crimson Pro',serif); font-size:12px; font-weight:500;
  padding:8px 16px; border:1px solid rgba(232,137,10,.25); border-radius:20px;
  background:rgba(232,137,10,.06); color:var(--dust,#d4b896); cursor:pointer; transition:all .2s; white-space:nowrap;
}
.fc-quick-btn:hover { border-color:var(--marigold,#e8890a); color:var(--marigold,#e8890a); background:rgba(232,137,10,.12); }

.fc-input-area {
  padding:14px 16px; border-top:1px solid rgba(232,137,10,.1); background:rgba(14,5,3,.5);
  display:flex; align-items:flex-end; gap:10px; flex-shrink:0;
}
.fc-input-wrap { flex:1; }
#fridaChat-input {
  width:100%; resize:none; border:1px solid rgba(232,137,10,.15); border-radius:12px;
  background:rgba(232,137,10,.04); color:var(--paper,#f5ead4);
  font-family:var(--serif,'Crimson Pro',serif); font-size:14px;
  padding:10px 14px; outline:none; min-height:42px; max-height:100px; line-height:1.5;
  transition:border-color .2s; overflow-y:auto;
}
#fridaChat-input::placeholder { color:var(--ghost,#8a6858); }
#fridaChat-input:focus { border-color:rgba(232,137,10,.4); }
.fc-send-btn {
  width:42px; height:42px; border-radius:50%; border:none;
  background:linear-gradient(135deg,var(--rojo,#8b1a0e),var(--marigold,#e8890a));
  color:var(--paper,#f5ead4); cursor:pointer; display:flex; align-items:center; justify-content:center;
  flex-shrink:0; transition:all .2s; box-shadow:0 2px 12px rgba(232,137,10,.2);
}
.fc-send-btn:hover { transform:scale(1.06); }
.fc-send-btn:active { transform:scale(.95); }
.fc-send-btn:disabled { opacity:.4; cursor:default; transform:none; }

.fc-powered {
  text-align:center; padding:6px 0 8px;
  font-family:var(--serif,'Crimson Pro',serif); font-size:10px;
  color:rgba(138,104,88,.4); flex-shrink:0; letter-spacing:.05em;
}

/* ── Reserve CTA — warm, inviting, not cold ─────────────── */
.fc-reserve-wrap {
  align-self:flex-start; animation:msgIn .4s cubic-bezier(.34,1.56,.64,1) both; animation-delay:.15s;
}
.fc-reserve-btn {
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--serif,'Crimson Pro',serif); font-size:13px; font-weight:600;
  letter-spacing:.02em;
  padding:10px 22px; border:1px solid rgba(232,137,10,.5); border-radius:24px;
  background:linear-gradient(135deg, rgba(139,26,14,.4), rgba(232,137,10,.15));
  color:var(--marigold,#e8890a); cursor:pointer; transition:all .25s;
  box-shadow:0 2px 12px rgba(232,137,10,.15);
}
.fc-reserve-btn:hover {
  border-color:var(--marigold,#e8890a); background:linear-gradient(135deg, rgba(139,26,14,.6), rgba(232,137,10,.25));
  box-shadow:0 4px 20px rgba(232,137,10,.25); transform:translateY(-1px);
}
.fc-reserve-btn:active { transform:scale(.97); }

@media(max-width:480px) {
  #fridaChat-panel { bottom:0; right:0; width:100vw; max-width:100vw; height:100vh; max-height:100vh; height:calc(var(--vh,1vh)*100); border-radius:0; }
  #fridaChat-fab { bottom:16px; right:16px; width:54px; height:54px; }
}
