/* the assistant orb replaces the floating call button */
.hero__call { display: none !important; }
.icon--call { width: 28px; height: 28px; -webkit-mask-image: url('../../public/assets/icons/call.svg'); mask-image: url('../../public/assets/icons/call.svg'); }

.aia-call {
  position: fixed; right: 24px; bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  width: 76px; height: 76px; border-radius: 100px; z-index: 90;
  display: flex; align-items: center; justify-content: center;
  background: var(--light-1000); color: var(--dark-1000);
  border: 4px solid var(--light-40);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  transition: transform .2s ease, box-shadow .2s ease;
}
.aia-call:hover { transform: scale(1.04); box-shadow: 0 0 0 6px var(--light-40); }

/* Orb */
.aia-orb {
  position: fixed; right: 24px; bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  width: 88px; height: 88px; padding: 0; border-radius: 50%; z-index: 91;
  transition: transform .35s var(--ease-press), opacity .25s ease;
}
.aia-orb:hover { transform: scale(1.08); }
.aia-orb.is-hidden { transform: scale(.4); opacity: 0; pointer-events: none; }
.aia-spark { position: absolute; inset: 0; }
.aia-spark__art { position: absolute; left: 0; top: 0; width: 171.151px; height: 171.151px; zoom: calc(88 / 171.151); }
.aia-spark img { position: absolute; display: block; max-width: none; pointer-events: none; user-select: none; }
.aia-spark__glow { left: 12px; top: 28px; width: 147px; height: 147px; filter: blur(40px); opacity: .9; animation: aia-glow 3.6s ease-in-out infinite; }
.aia-spark__breathe { position: absolute; inset: 0; animation: aia-breathe 3.6s ease-in-out infinite; }
.aia-spark__au {
  left: calc(85.58px - var(--w) / 2); top: calc(85.58px - var(--h) / 2); width: var(--w); height: var(--h);
  border-radius: 50%;
  animation: aia-au-pulse 5.6s ease-in-out infinite, aia-au-drift 7.8s ease-in-out infinite;
}
.aia-spark__base { left: 0; top: 0; width: 171.151px; height: 171.151px; border-radius: 50%; }
@keyframes aia-au-pulse { 50% { transform: scale(1.18); } }
@keyframes aia-au-drift { 33% { margin-left: 1.8px; margin-top: -1.3px; } 66% { margin-left: -1.4px; margin-top: 1.6px; } }
@keyframes aia-spin { to { transform: rotate(360deg); } }
@keyframes aia-breathe { 0%, 100% { transform: scale(.94); } 45% { transform: scale(1.1); } 70% { transform: scale(1.05); } }
@keyframes aia-glow { 0%, 100% { opacity: .55; transform: scale(.9); } 45% { opacity: 1; transform: scale(1.15); } }
@keyframes aia-ping { 0% { opacity: .9; transform: scale(.85); } 100% { opacity: 0; transform: scale(1.35); } }

.aia-orb__hint {
  position: absolute; right: calc(100% + 14px); top: 50%; transform: translateY(-50%);
  white-space: nowrap; padding: 10px 14px; border-radius: 12px;
  background: var(--light-1000); color: var(--dark-1000);
  font-size: 14px; line-height: 20px; font-weight: 700;
  box-shadow: 0 10px 30px rgba(0,0,0,.4);
  animation: aia-hint 6s ease 1.2s both;
  pointer-events: none;
}
@keyframes aia-hint { 0% { opacity: 0; translate: 8px 0; } 8%, 85% { opacity: 1; translate: 0 0; } 100% { opacity: 0; } }

/* Panel */
.aia {
  position: fixed; right: 24px; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); z-index: 1000;
  width: 400px; height: min(640px, calc(100vh - 150px));
  display: flex; flex-direction: column;
  background: rgba(15,15,15,.92);
  backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
  border-radius: 16px; overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,.6);
  transform-origin: 100% 100%;
  transform: translateY(16px) scale(.92); opacity: 0; visibility: hidden;
  transition: transform .4s var(--ease-press), opacity .25s ease, visibility 0s .4s;
}
.aia.is-open { transform: none; opacity: 1; visibility: visible; transition: transform .4s var(--ease-press), opacity .25s ease; }

.aia__head { display: flex; align-items: center; gap: 12px; padding: 16px; background: var(--light-40); }
.aia__mini { position: relative; width: 36px; height: 36px; flex: none; }
.aia__mini .aia-spark__art { zoom: calc(36 / 171.151); }
.aia.is-listening .aia__mini .aia-spark__breathe, .aia.is-thinking .aia__mini .aia-spark__breathe { animation-duration: 1s; }
.aia__ttl { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.aia__ttl b { font-family: var(--ff-display); font-weight: 700; font-style: italic; font-size: 22px; line-height: 22px; text-transform: uppercase; letter-spacing: 0; }
.aia__ttl small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12px; line-height: 16px; color: var(--light-600); }
.aia__langs { display: flex; gap: 2px; padding: 4px; border-radius: 8px; background: var(--light-80); }
.aia__langs button { height: 28px; padding: 0 7px; border-radius: 4px; color: var(--light-600); font-size: 12px; font-weight: 700; letter-spacing: normal; transition: color .15s ease, background .15s ease; }
.aia__langs button:hover { color: var(--light-1000); background: var(--light-40); }
.aia__langs button.is-on { background: var(--light-1000); color: var(--dark-1000); }
.aia__x { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; background: var(--light-80); flex: none; }
.aia__x svg { width: 14px; height: 14px; }
.aia__x:hover { background: var(--light-200); }

.aia__log { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 10px; scrollbar-width: thin; }
.aia__log > * { flex: none; }

.aia-msg { letter-spacing: -.02em; max-width: 86%; padding: 10px 14px; border-radius: 12px; font-size: 15px; line-height: 21px; animation: aia-in .35s var(--ease-smooth) both; }
.aia-msg--bot { align-self: flex-start; background: var(--light-80); border-bottom-left-radius: 4px; }
.aia-msg--me { align-self: flex-end; background: var(--light-1000); color: var(--dark-1000); border-bottom-right-radius: 4px; font-weight: 700; }
@keyframes aia-in { from { opacity: 0; transform: translateY(8px); } }

.aia-typing { align-self: flex-start; display: flex; gap: 4px; padding: 14px; border-radius: 12px; background: var(--light-80); }
.aia-typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--light-600); animation: aia-dot 1s infinite; }
.aia-typing i:nth-child(2) { animation-delay: .15s; } .aia-typing i:nth-child(3) { animation-delay: .3s; }
@keyframes aia-dot { 30% { transform: translateY(-4px); background: var(--light-1000); } }

.aia-chips { display: flex; flex-wrap: wrap; gap: 8px; animation: aia-in .35s var(--ease-smooth) .05s both; }
.aia-chip {
  display: inline-flex; align-items: center; min-height: 40px; padding: 10px 14px; border-radius: 8px;
  background: var(--light-80); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  color: #fff; font-size: 14px; line-height: 20px; font-weight: 700; letter-spacing: -.02em;
  transition: background .18s ease, transform .2s var(--ease-press);
}
.aia-chip:hover { background: var(--light-100); transform: scale(1.02); }
.aia-chip--y { background: var(--light-1000); color: var(--dark-1000); font-weight: 700; text-transform: uppercase; letter-spacing: normal; }
.aia-chip--y:hover { background: var(--light-1000); }
.aia-chip small { color: var(--light-600); margin-left: 6px; font-weight: 400; }
.aia-chip--y small { color: rgba(0,0,0,.55); text-transform: none; }

.aia-card {
  position: relative; border-radius: 12px; overflow: hidden;
  background: var(--light-80);
  animation: aia-in .4s var(--ease-smooth) both;
}
.aia-card::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--c, var(--light-200)); }
.aia-card__body { padding: 14px 16px 14px 20px; display: flex; flex-direction: column; gap: 6px; }
.aia-card__k { font-size: 11px; line-height: 14px; text-transform: uppercase; color: var(--light-600); font-weight: 700; letter-spacing: 0; }
.aia-card__t { font-family: var(--ff-display); font-weight: 700; font-style: italic; text-transform: uppercase; font-size: 26px; line-height: 26px; letter-spacing: 0; }
.aia-card__row { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.aia-card__pill { padding: 4px 10px; border-radius: 4px; background: var(--light-80); font-size: 13px; line-height: 18px; }
.aia-card__pill--p { background: var(--light-1000); color: var(--dark-1000); }
.aia-card__why { font-size: 13px; line-height: 18px; color: var(--light-600); }

.aia-form { display: flex; flex-direction: column; gap: 8px; animation: aia-in .35s var(--ease-smooth) both; }
.aia-form input {
  height: 48px; padding: 0 16px; border-radius: 8px; border: 0;
  background: var(--light-80); color: #fff; font: inherit; font-size: 15px; letter-spacing: var(--ls-body); outline: none;
}
.aia-form input:focus { background: var(--light-100); }
.aia-form .aia-chip--y { height: 48px; justify-content: center; font-size: 14px; }

.aia-done { text-align: center; padding: 18px 16px; border-radius: 12px; background: var(--light-1000); color: var(--dark-1000); animation: aia-in .4s var(--ease-press) both; }
.aia-done b { display: block; font-family: var(--ff-display); font-weight: 900; font-style: italic; font-size: 34px; line-height: 32px; text-transform: uppercase; letter-spacing: 0; }
.aia-done span { display: block; margin-top: 6px; font-size: 14px; line-height: 20px; }

.aia__bar { position: relative; display: flex; align-items: center; gap: 8px; padding: 12px; }
.aia__in {
  flex: 1; min-width: 0; height: 48px; padding: 0 16px; border-radius: 8px;
  border: 0; background: var(--light-80); color: #fff;
  font: inherit; font-size: 15px; letter-spacing: var(--ls-body); outline: none;
}
.aia__in:focus { background: var(--light-100); }
.aia__in::placeholder { color: var(--light-600); }
.aia__mic, .aia__send { width: 48px; height: 48px; flex: none; border-radius: 8px; display: flex; align-items: center; justify-content: center; transition: transform .2s var(--ease-press), background .18s ease; }
.aia__mic { background: var(--light-80); color: #fff; position: relative; border-radius: 50%; }
.aia__mic:hover { background: var(--light-200); }
.aia__mic svg, .aia__send svg { width: 22px; height: 22px; }
.aia__send { background: var(--light-1000); color: var(--dark-1000); }
.aia__send:hover { transform: scale(1.04); }
.aia__mic[hidden] { display: none; }

.aia__bar > .aia__mic, .aia__bar > .aia__in, .aia__bar > .aia__send { transition: opacity .2s ease, transform .3s var(--ease-smooth); }
.aia.is-listening .aia__bar > .aia__mic, .aia.is-listening .aia__bar > .aia__in, .aia.is-listening .aia__bar > .aia__send { opacity: 0; transform: scale(.96); pointer-events: none; }
.aia__rec {
  position: absolute; left: 12px; right: 12px; top: 12px; height: 48px;
  display: flex; align-items: center; gap: 8px; padding: 0 4px;
  border-radius: 8px; background: #262626;
  visibility: hidden; opacity: 0;
  clip-path: inset(0 calc(100% - 48px) 0 0 round 8px);
  transition: clip-path .45s var(--ease-smooth), opacity .15s ease, visibility 0s .45s;
}
.aia.is-listening .aia__rec {
  visibility: visible; opacity: 1; clip-path: inset(0 0 0 0 round 8px);
  transition: clip-path .45s var(--ease-smooth), opacity .15s ease;
}
.aia__rec > * { opacity: 0; transform: scale(.6); transition: opacity .2s ease, transform .2s ease; }
.aia.is-listening .aia__rec > * { opacity: 1; transform: none; transition: opacity .3s ease, transform .45s var(--ease-press); }
.aia.is-listening .aia__rec > .aia__rbtn--x { transition-delay: .05s; }
.aia.is-listening .aia__rec > .aia__wave { transform: none; transition: opacity .4s ease .15s; }
.aia.is-listening .aia__rec > .aia__rbtn--stop { transition-delay: .2s; }
.aia.is-listening .aia__rec > .aia__rbtn--go { transition-delay: .28s; }
.aia__wave { flex: 1; min-width: 0; height: 40px; display: block; }
.aia__rbtn { width: 40px; height: 40px; flex: none; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; background: var(--light-80); }
.aia__rbtn:hover { background: var(--light-200); }
.aia__rbtn svg { width: 20px; height: 20px; }
.aia__rbtn--stop i { width: 14px; height: 14px; border-radius: 3px; background: #fff; }
.aia__rbtn--go { border-radius: 6px; background: var(--light-1000); color: var(--dark-1000); }
.aia__rbtn--go:hover { background: var(--light-1000); transform: scale(1.05); }


@media (max-width: 768px) {
  .aia-call { width: 60px; height: 60px; }
  .aia-call .icon--call { width: 24px; height: 24px; }
  .aia-orb .aia-spark__art { zoom: calc(68 / 171.151); }
  .aia-orb { width: 68px; height: 68px; right: 24px; bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }
  .aia-orb__hint { font-size: 13px; }
  .aia {
    left: 0; right: 0; bottom: 0; width: auto;
    height: min(86vh, 100% - env(safe-area-inset-top, 0px) - 24px); height: 86dvh;
    border-radius: 16px 16px 0 0;
    transform: translateY(100%); opacity: 1;
    transition: transform .45s var(--ease-smooth), visibility 0s .45s;
  }
  .aia.is-open { transition: transform .45s var(--ease-smooth); }
  .aia__bar { padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)); }
  .aia__in { font-size: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  .aia-spark__breathe, .aia-spark__au, .aia-spark__glow, .aia-orb__hint { animation: none !important; }
}

.aia-cal { padding: 12px; border-radius: 12px; background: var(--light-40); animation: aia-in .35s var(--ease-smooth) both; }
.aia-cal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.aia-cal__head b { font-size: 14px; line-height: 20px; font-weight: 700; text-transform: uppercase; letter-spacing: normal; }
.aia-cal__nav { width: 32px; height: 32px; padding: 0; border-radius: 8px; background: var(--light-80); color: #fff; display: flex; align-items: center; justify-content: center; }
.aia-cal__nav svg { width: 14px; height: 14px; display: block; }
.aia-cal__nav:hover { background: var(--light-100); }
.aia-cal__nav:disabled { opacity: .3; cursor: default; }
.aia-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; transition: opacity .2s ease; }
.aia-cal__grid.is-loading { opacity: .5; }
.aia-cal__dow { text-align: center; font-size: 11px; line-height: 20px; color: var(--light-600); text-transform: uppercase; }
.aia-cal__day { height: 36px; border-radius: 8px; background: var(--light-80); color: #fff; font-size: 14px; font-weight: 700; letter-spacing: normal; transition: background .15s ease, transform .2s var(--ease-press); }
.aia-cal__day:hover:not(:disabled) { background: var(--light-100); transform: scale(1.05); }
.aia-cal__day:disabled { background: none; color: var(--light-200); cursor: default; font-weight: 400; }
.aia-cal__day.is-on { background: var(--light-1000); color: var(--dark-1000); }
.aia-cal__times { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.aia-cal__times:empty { display: none; }
.aia-cal__t { min-height: 34px; padding: 6px 10px; font-size: 13px; }
.aia-cal__empty { font-size: 13px; color: var(--light-600); }
