/* Маскот Дашборд — утёнок-детектив в правом нижнем углу.
   Машет крылом при входе, здоровается репликой, дальше сидит тихо.
   Никогда не перекрывает контент: узкий, ниже правого края, pointer-events только на себе. */

#orq-duck {
  position: fixed;
  right: 18px;
  bottom: 14px;
  z-index: 60;
  display: flex;
  align-items: flex-end;
  gap: 12px;                          /* реплика не должна наезжать на рисунок */
  pointer-events: none;               /* клики ловят только сами элементы утёнка */
  user-select: none;
}
#orq-duck * { pointer-events: auto; }

/* ── реплика ── */
#orq-duck .duck-bubble {
  position: relative;
  max-width: 190px;
  margin-bottom: 74px;   /* поднимаем к голове маскота, как на референсе */
  padding: 9px 12px;
  border-radius: 12px;
  background: var(--duck-bubble-bg, #ffffff);
  color: var(--duck-bubble-fg, #1c2b4a);
  border: 1px solid var(--duck-bubble-br, #d7e3f8);
  box-shadow: 0 10px 24px -12px rgba(20, 40, 90, 0.45);
  font-size: 12.5px;
  line-height: 1.35;
  font-weight: 500;
  opacity: 0;
  transform: translateY(6px) scale(0.96);
  transform-origin: 100% 80%;
  transition: opacity .22s ease, transform .22s ease;
}
#orq-duck.duck-talk .duck-bubble { opacity: 1; transform: translateY(0) scale(1); }
#orq-duck .duck-bubble::after {            /* хвостик к утёнку */
  content: "";
  position: absolute;
  right: -7px;
  bottom: 12px;
  width: 12px; height: 12px;
  background: inherit;
  border-right: 1px solid var(--duck-bubble-br, #d7e3f8);
  border-bottom: 1px solid var(--duck-bubble-br, #d7e3f8);
  transform: rotate(-45deg);
  border-bottom-right-radius: 3px;
}
#orq-duck .duck-close {
  position: absolute;
  top: -8px; right: -8px;
  width: 18px; height: 18px;
  border: 1px solid var(--duck-bubble-br, #d7e3f8);
  border-radius: 50%;
  background: var(--duck-bubble-bg, #fff);
  color: var(--duck-bubble-fg, #1c2b4a);
  font: 600 11px/1 system-ui, sans-serif;
  cursor: pointer;
  opacity: 0;
  transition: opacity .2s ease;
}
#orq-duck.duck-talk .duck-close { opacity: .75; }
#orq-duck .duck-close:hover { opacity: 1; }

/* ── сам утёнок ── */
#orq-duck .duck-body {
  width: 132px;
  height: auto;
  cursor: pointer;
  filter: drop-shadow(0 8px 16px rgba(20, 40, 90, 0.22));
  transform-origin: 50% 92%;
  animation: duck-in .5s cubic-bezier(.2,.9,.3,1.2) both;
  transition: transform .2s ease;
}
#orq-duck .duck-body:hover { transform: translateY(-3px); }

/* Маскот — растровая картинка целиком, отдельного крыла в ней нет, поэтому
   приветствие показываем лёгким покачиванием корпуса вокруг точки опоры (лап).
   Амплитуда мелкая (±3.5°) — на 132px это заметно, но не превращается в тряску. */
#orq-duck .duck-wave,
#orq-duck .duck-body[style*="duck-wave"] { will-change: transform; }

@keyframes duck-wave {
  0%, 100% { transform: rotate(-3.5deg); }
  50%      { transform: rotate(3.5deg); }
}
@keyframes duck-in {
  0%   { opacity: 0; transform: translateY(26px) scale(.9); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* тёмная тема — реплика в тон тёмно-синему меню */
html.dark #orq-duck, body.dark #orq-duck, [data-theme="dark"] #orq-duck {
  --duck-bubble-bg: #101c38;
  --duck-bubble-fg: #dbe6fb;
  --duck-bubble-br: rgba(120, 160, 235, 0.28);
}
html.dark #orq-duck .duck-body, body.dark #orq-duck .duck-body, [data-theme="dark"] #orq-duck .duck-body {
  filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.55));
}

/* Мобильный шелл: утёнок не должен налезать на нижние контролы */
html.orq-m #orq-duck { right: 10px; bottom: 74px; }
html.orq-m #orq-duck .duck-body { width: 92px; }
html.orq-m #orq-duck .duck-bubble { max-width: 150px; font-size: 12px; }

@media (max-width: 520px) {
  #orq-duck .duck-bubble { max-width: 148px; }
}

@media (prefers-reduced-motion: reduce) {
  #orq-duck .duck-body { animation: none; }
  #orq-duck .duck-bubble { transition: none; }
}

/* При открытой шторке меню или bottom-sheet утёнок уходит: он бы перекрыл контролы. */
html.orq-m.orq-m-drawer-open #orq-duck,
html.orq-m.orq-m-sheet-open #orq-duck {
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease;
}
