/* Kriti assistant — recovered from the production portfolio. */
.ai-ab-container {
  position: fixed;
  right: 2rem;
  bottom: 2rem;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  font-family: var(--font-body, Inter, system-ui, sans-serif);
}

.ai-ab-toggle {
  position: relative;
  display: grid;
  width: 3.6rem;
  height: 3.6rem;
  padding: 0;
  place-items: center;
  overflow: visible;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 50%;
  background: #0e1218;
  color: #14100a;
  box-shadow: 0 0 0 1px rgba(241, 196, 90, .35), 0 18px 50px -16px rgba(216, 167, 62, .65);
  cursor: pointer;
  transition: transform .3s ease, box-shadow .3s ease;
}

.ai-ab-toggle:hover { transform: scale(1.05); box-shadow: 0 0 0 1px rgba(216, 167, 62, .65), 0 24px 70px -15px rgba(216, 167, 62, .6); }
.ai-ab-toggle:focus-visible, .ai-ab-close:focus-visible, .ai-ab-chip:focus-visible, .ai-ab-ctarow a:focus-visible, #ai-ab-send:focus-visible { outline: 2px solid #f1c45a; outline-offset: 3px; }
.ai-ab-toggle__pulse { position: absolute; z-index: 1; inset: 0; border-radius: 50%; box-shadow: 0 0 0 0 rgba(216, 167, 62, .45); animation: aiAbPulse 2.6s ease-out infinite; }
.ai-ab-toggle__face { position: relative; z-index: 2; display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.ai-ab-toggle--avatar:hover .ai-ab-toggle__face { transform: scale(1.04); transition: transform .3s ease; }
.ai-ab-toggle__badge { position: absolute; z-index: 3; top: -3px; right: -3px; padding: 1px 5px; border: 1.5px solid #0e1218; border-radius: 999px; background: linear-gradient(140deg, #f1c45a, #d8a73e); box-shadow: 0 2px 6px -1px rgba(0, 0, 0, .55); color: #14100a; font: 700 .58rem/1.5 var(--font-body, Inter, sans-serif); letter-spacing: .05em; }

.ai-ab-panel {
  position: absolute;
  right: 0;
  bottom: calc(100% + .85rem);
  display: flex;
  width: 378px;
  max-width: calc(100vw - 2rem);
  height: 540px;
  max-height: calc(100dvh - 7rem);
  flex-direction: column;
  overflow: hidden;
  margin: 0;
  transform-origin: bottom right;
  border: 1px solid rgba(216, 167, 62, .24);
  border-radius: 20px;
  background: #0c0f14;
  box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .9), 0 0 0 1px rgba(255, 255, 255, .02) inset, 0 0 60px -20px rgba(216, 167, 62, .35);
  transition: opacity .28s ease, transform .28s ease;
}

.ai-ab-panel[hidden] { display: flex !important; visibility: hidden; pointer-events: none; opacity: 0; transform: translateY(12px) scale(.98); }
.ai-ab-head { display: flex; align-items: center; gap: .7rem; padding: .85rem .9rem .8rem; border-bottom: 1px solid rgba(216, 167, 62, .16); background: linear-gradient(135deg, rgba(216, 167, 62, .16), rgba(216, 167, 62, .04) 60%), #0e1218; }
img.ai-ab-avatar { width: 2.5rem; height: 2.5rem; flex: none; display: block; border: 1px solid rgba(241, 196, 90, .5); border-radius: 50%; background: #0e1218; box-shadow: 0 4px 14px -4px rgba(216, 167, 62, .55); object-fit: cover; }
.ai-ab-head__meta { display: flex; min-width: 0; flex-direction: column; gap: 1px; }
.ai-ab-title { color: #fdf7ea; font: 600 .98rem/1.1 var(--font-display, Georgia, serif); letter-spacing: .005em; }
.ai-ab-sub { display: flex; align-items: center; gap: .4rem; color: #a7a08e; font-size: .72rem; letter-spacing: .01em; }
.ai-ab-status { width: 7px; height: 7px; flex: none; border-radius: 50%; background: #54e08a; box-shadow: 0 0 8px rgba(84, 224, 138, .9); }
.ai-ab-close { width: 2rem; height: 2rem; margin-left: auto; display: grid; padding: 0; place-items: center; border: 0; border-radius: 9px; background: transparent; color: #b7b0a0; cursor: pointer; transition: background .18s ease, color .18s ease; }
.ai-ab-close:hover { background: rgba(255, 255, 255, .08); color: #fff; }

.ai-ab-messages { display: flex; min-height: 0; flex: 1; flex-direction: column; gap: .6rem; overflow-y: auto; padding: 1rem .95rem .5rem; scrollbar-color: rgba(216, 167, 62, .35) transparent; scrollbar-width: thin; }
.ai-ab-messages::-webkit-scrollbar { width: 6px; }
.ai-ab-messages::-webkit-scrollbar-track { background: transparent; }
.ai-ab-messages::-webkit-scrollbar-thumb { border-radius: 3px; background: rgba(216, 167, 62, .35); }
.ai-ab-msg { max-width: 86%; padding: .68rem .9rem; overflow-wrap: break-word; border-radius: 15px; color: #e9e4d7; font-size: .875rem; line-height: 1.5; animation: aiAbRise .32s cubic-bezier(.22, 1, .36, 1) both; }
.ai-ab-msg strong { color: #f1c45a; font-weight: 600; }
.ai-ab-msg--ai, .ai-ab-msg--bot, .ai-ab-msg--loading { align-self: flex-start; border: 1px solid rgba(255, 255, 255, .06); border-bottom-left-radius: 5px; background: #161b24; }
.ai-ab-msg--user { align-self: flex-end; border-bottom-right-radius: 5px; background: linear-gradient(140deg, #f1c45a, #d8a73e 75%); color: #14100a; font-weight: 500; }
.ai-ab-msg--error { align-self: center; border: 1px solid rgba(255, 107, 107, .3); background: rgba(255, 107, 107, .08); color: #ff9c9c; font-size: .8rem; text-align: center; }
.ai-ab-typing { display: inline-flex; height: .9rem; align-items: center; gap: 4px; }
.ai-ab-typing span { width: 6px; height: 6px; border-radius: 50%; background: #d8a73e; animation: aiAbBlink 1.2s infinite ease-in-out; }
.ai-ab-typing span:nth-child(2) { animation-delay: .15s; }
.ai-ab-typing span:nth-child(3) { animation-delay: .3s; }

.ai-ab-suggest { display: flex; flex-wrap: wrap; gap: .4rem; padding: .15rem .95rem .7rem; }
.ai-ab-suggest[hidden] { display: none; }
.ai-ab-chip { padding: .5rem .8rem; border: 1px solid rgba(216, 167, 62, .32); border-radius: 999px; background: rgba(216, 167, 62, .07); color: #f1c45a; cursor: pointer; font: 500 .76rem/1 var(--font-body, Inter, sans-serif); transition: background .18s ease, transform .12s ease, border-color .18s ease; }
.ai-ab-chip:hover { border-color: rgba(216, 167, 62, .5); background: rgba(216, 167, 62, .16); transform: translateY(-1px); }
.ai-ab-chip:active { transform: translateY(0); }
.ai-ab-ctarow { display: flex; gap: .5rem; margin: 0 .95rem .1rem; }
.ai-ab-ctarow a { display: flex; min-width: 0; flex: 1; align-items: center; justify-content: center; gap: .4rem; padding: .6rem .7rem; border-radius: 12px; font: 600 .76rem/1 var(--font-body, Inter, sans-serif); letter-spacing: .01em; text-decoration: none; white-space: nowrap; transition: background .2s ease, border-color .2s ease, transform .12s ease; }
.ai-ab-book { border: 1px solid rgba(216, 167, 62, .4); background: linear-gradient(135deg, rgba(216, 167, 62, .2), rgba(216, 167, 62, .07)); color: #fff3d9; }
.ai-ab-book:hover { border-color: rgba(216, 167, 62, .6); background: linear-gradient(135deg, rgba(216, 167, 62, .3), rgba(216, 167, 62, .12)); transform: translateY(-1px); }
.ai-ab-whatsapp { border: 1px solid rgba(37, 211, 102, .34); background: linear-gradient(135deg, rgba(37, 211, 102, .16), rgba(37, 211, 102, .06)); color: #eafff1; }
.ai-ab-whatsapp:hover { border-color: rgba(37, 211, 102, .5); background: linear-gradient(135deg, rgba(37, 211, 102, .24), rgba(37, 211, 102, .1)); transform: translateY(-1px); }

.ai-ab-input-area { display: flex; gap: .5rem; padding: .7rem .95rem .55rem; border-top: 1px solid rgba(255, 255, 255, .06); background: #0e1218; }
#ai-ab-input { min-width: 0; flex: 1; padding: .55rem 1rem; border: 1px solid rgba(255, 255, 255, .09); border-radius: 22px; background: #161b24; color: #fff; font: 16px/1.2 var(--font-body, Inter, sans-serif); transition: border-color .2s ease, box-shadow .2s ease; }
#ai-ab-input::placeholder { color: #8a8577; }
#ai-ab-input:focus { border-color: #d8a73e; outline: 0; box-shadow: 0 0 0 3px rgba(216, 167, 62, .16); }
#ai-ab-send { width: 2.5rem; height: 2.5rem; flex: none; display: grid; padding: 0; place-items: center; border: 0; border-radius: 50%; background: linear-gradient(140deg, #f1c45a, #d8a73e 75%); color: #14100a; cursor: pointer; transition: transform .2s ease, opacity .2s ease; }
#ai-ab-send:hover { transform: scale(1.05); }
#ai-ab-send:disabled { cursor: default; opacity: .45; transform: none; }
#ai-ab-send svg { width: 1.2rem; height: 1.2rem; }
.ai-ab-foot { margin: 0; padding: 0 .95rem .7rem; color: #6c6759; font-size: .66rem; letter-spacing: .02em; text-align: center; }

.ai-ab-nudge { position: absolute; right: 0; bottom: calc(100% + .9rem); display: flex; width: 16.5rem; max-width: 76vw; align-items: center; gap: .6rem; padding: .7rem .8rem; border: 1px solid rgba(216, 167, 62, .34); border-radius: 15px; background: #0e1218; box-shadow: 0 20px 48px -20px rgba(0, 0, 0, .9), 0 0 42px -18px rgba(216, 167, 62, .42); color: #e9e4d7; cursor: pointer; text-align: left; animation: aiAbNudgeIn .42s cubic-bezier(.22, 1, .36, 1) both; }
.ai-ab-nudge[hidden] { display: none; }
.ai-ab-nudge__ava { width: 2.4rem; height: 2.4rem; flex: none; border: 1px solid rgba(241, 196, 90, .5); border-radius: 50%; object-fit: cover; }
.ai-ab-nudge__text { display: flex; flex-direction: column; gap: 1px; color: #cfc9ba; font-size: .78rem; line-height: 1.32; }
.ai-ab-nudge__text strong { color: #fdf7ea; font-size: .83rem; font-weight: 600; }
.ai-ab-nudge__close { position: absolute; top: -.55rem; right: -.55rem; display: grid; width: 1.4rem; height: 1.4rem; place-items: center; border: 1px solid rgba(255, 255, 255, .16); border-radius: 50%; background: #1b2130; color: #cbc6b8; cursor: pointer; font-size: 1rem; line-height: 1; transition: background .18s ease, color .18s ease; }
.ai-ab-nudge__close:hover { background: #242c3d; color: #fff; }
.ai-ab-nudge::after { position: absolute; right: 20px; bottom: -6px; width: 12px; height: 12px; border-right: 1px solid rgba(216, 167, 62, .34); border-bottom: 1px solid rgba(216, 167, 62, .34); background: #0e1218; content: ""; transform: rotate(45deg); }

@keyframes aiAbBlink { 0%, 80%, 100% { opacity: .25; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
@keyframes aiAbPulse { 0% { box-shadow: 0 0 0 0 rgba(216, 167, 62, .45); } 70% { box-shadow: 0 0 0 14px transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }
@keyframes aiAbRise { 0% { opacity: 0; transform: translateY(8px); } 100% { opacity: 1; transform: none; } }
@keyframes aiAbNudgeIn { 0% { opacity: 0; transform: translateY(10px) scale(.96); } 100% { opacity: 1; transform: none; } }

@media (max-width: 480px) {
  .ai-ab-container { right: calc(1rem + env(safe-area-inset-right, 0px)); bottom: calc(1rem + env(safe-area-inset-bottom, 0px)); }
  .ai-ab-panel { width: min(378px, calc(100vw - 2rem)); height: min(540px, calc(100dvh - 6rem)); }
  .ai-ab-nudge { width: 14rem; }
}

@media (max-width: 380px) { .ai-ab-ctarow { flex-direction: column; } }
@media (pointer: coarse) { #ai-ab-send, .ai-ab-close { width: 2.75rem; height: 2.75rem; } }
@media (prefers-reduced-motion: reduce) {
  .ai-ab-panel, .ai-ab-toggle { transition: none; }
  .ai-ab-toggle__pulse, .ai-ab-msg, .ai-ab-nudge, .ai-ab-typing span { animation: none; }
  .ai-ab-typing span { opacity: .6; }
}
