:root {
  --advisor-panel: rgba(12,13,16,.72);
  --advisor-panel-strong: rgba(5,5,7,.88);
  --advisor-text: rgba(255,255,255,.92);
  --advisor-line: rgba(255,255,255,.12);
  --advisor-warm-line: rgba(255,215,165,.42);
  --advisor-shadow: rgba(0,0,0,.46);
  --advisor-dot: rgba(46,193,107,.92);
}

:root[data-theme="day"] {
  --advisor-panel: rgba(255,255,255,.82);
  --advisor-panel-strong: rgba(255,255,255,.9);
  --advisor-text: rgba(20,22,26,.86);
  --advisor-line: rgba(20,22,26,.14);
  --advisor-warm-line: rgba(154,115,40,.46);
  --advisor-shadow: rgba(20,22,26,.18);
  --advisor-dot: rgba(24,135,75,.94);
}

.asv-advisor {
  position: fixed;
  right: max(14px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  z-index: 80;
  width: 122px;
  height: 132px;
  user-select: none;
  touch-action: none;
  cursor: grab;
  filter: drop-shadow(0 14px 18px var(--advisor-shadow));
  transition: transform .18s ease, filter .18s ease;
}

.asv-advisor.dragging {
  cursor: grabbing;
  filter: drop-shadow(0 18px 22px var(--advisor-shadow));
}

.asv-advisor.make-room {
  transform: translateX(18px) translateY(8px) scale(.94);
  opacity: .9;
}

.asv-advisor.approach {
  transform: translateX(-12px) translateY(-10px) scale(1.06);
}

.asv-advisor-sprite {
  width: 100%;
  height: 100%;
  background-image: url("../consilier-v2/spritesheet-extended.webp?v=20260720-live-1");
  background-repeat: no-repeat;
  background-position: 0 0;
  transform-origin: center bottom;
  animation: asv-advisor-idle 8.2s ease-in-out infinite;
  pointer-events: none;
}

.asv-advisor-name {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 7px);
  max-width: min(180px, calc(100vw - 32px));
  padding: 7px 9px;
  border: 1px solid var(--advisor-warm-line);
  border-radius: 8px;
  background: var(--advisor-panel-strong);
  color: var(--advisor-text);
  box-shadow: 0 18px 45px var(--advisor-shadow);
  font: 700 11px/1.1 Inter, system-ui, sans-serif;
  opacity: 0;
  pointer-events: none;
  text-align: center;
  transform: translateX(-50%) translateY(6px);
  transition: opacity .16s ease, transform .16s ease;
  white-space: nowrap;
}

.asv-advisor.show-name .asv-advisor-name {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.asv-advisor-dot {
  position: absolute;
  top: 12px;
  right: 16px;
  width: 17px;
  height: 17px;
  border: 1px solid var(--advisor-line);
  border-radius: 999px;
  background: var(--advisor-panel);
  box-shadow: 0 10px 22px var(--advisor-shadow);
}

.asv-advisor-dot::after {
  content: "";
  position: absolute;
  inset: 5px;
  border-radius: inherit;
  background: var(--advisor-dot);
}

.asv-advisor-shadow {
  position: absolute;
  left: 22%;
  right: 22%;
  bottom: 0;
  z-index: -1;
  height: 8px;
  border-radius: 999px;
  background: var(--advisor-shadow);
  filter: blur(5px);
}

.asv-advisor.greeting .asv-advisor-sprite {
  animation: asv-advisor-greeting .9s ease-in-out infinite;
}

.asv-advisor.jump .asv-advisor-sprite {
  animation: asv-advisor-jump .65s ease-in-out infinite;
}

.asv-advisor.look .asv-advisor-sprite {
  animation: asv-advisor-look .9s ease-in-out infinite;
}

.asv-advisor.listen .asv-advisor-sprite {
  animation: asv-advisor-listen .7s ease-in-out infinite;
}

.asv-advisor.focus-search .asv-advisor-sprite {
  animation: asv-advisor-focus-search .82s ease-in-out infinite;
}

.asv-advisor.shrug .asv-advisor-sprite {
  animation: asv-advisor-shrug .88s ease-in-out infinite;
}

@keyframes asv-advisor-idle {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.004); }
}

@keyframes asv-advisor-greeting {
  0%, 100% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-4px) rotate(-1.5deg) scale(1.035); }
}

@keyframes asv-advisor-jump {
  0%, 100% { transform: translateY(0) scale(1); }
  45% { transform: translateY(-12px) scale(1.04); }
}

@keyframes asv-advisor-look {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateY(3px) rotate(0deg); }
  75% { transform: translateX(-4px) rotate(-1deg); }
}

@keyframes asv-advisor-listen {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.025); }
}

@keyframes asv-advisor-focus-search {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  35% { transform: translateX(-5px) rotate(-2deg); }
  70% { transform: translateY(1px) rotate(.8deg); }
}

@keyframes asv-advisor-shrug {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  45% { transform: translateY(-4px) rotate(-1.5deg) scale(1.02); }
}

@media (min-width: 861px) {
  .asv-advisor {
    right: max(26px, env(safe-area-inset-right));
    bottom: max(24px, env(safe-area-inset-bottom));
    width: 156px;
    height: 169px;
  }

  .asv-advisor-name {
    max-width: min(220px, calc(100vw - 32px));
    padding: 8px 10px;
    font-size: 12px;
  }

  .asv-advisor-dot {
    top: 16px;
    right: 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .asv-advisor-sprite {
    animation: none;
  }
}
