/* ARI Icon — approved V6 geometry adapted to central ARI Design. */
/* Status: canonical production owner; ARI Icon Motion R1. */

.ari-icon {
  width: var(--ari-icon-size-md);
  height: var(--ari-icon-size-md);
  display: inline-block;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: -0.16em;
  transform-origin: center;
}
.ari-icon--sm { width: var(--ari-icon-size-sm); height: var(--ari-icon-size-sm); }
.ari-icon--md { width: var(--ari-icon-size-md); height: var(--ari-icon-size-md); }
.ari-icon--lg { width: var(--ari-icon-size-lg); height: var(--ari-icon-size-lg); }

.ari-icon-motion .ari-icon,
.ari-icon-motion > .ari-icon {
  transition:
    transform var(--ari-icon-motion-normal) var(--ari-icon-ease),
    opacity var(--ari-icon-motion-normal) ease,
    color var(--ari-icon-motion-fast) ease;
}

.ari-icon-hover-color--primary:hover .ari-icon,
.ari-icon-hover-color--primary:focus-visible .ari-icon,
.ari-icon-hover-color--primary.is-demoing .ari-icon {
  color: var(--ari-color-action-primary);
}

.ari-motion-hover-scale:hover .ari-icon,
.ari-motion-hover-scale.is-demoing .ari-icon {
  transform: scale(1.07);
}

.ari-motion-hover-lift:hover .ari-icon,
.ari-motion-hover-lift.is-demoing .ari-icon {
  transform: translateY(-1px);
}

/* Approved icon-only Add gesture copied from /works.
   The owning control supplies the host highlight and lift. */

.ari-motion-slide-right:hover .ari-icon,
.ari-motion-slide-right.is-demoing .ari-icon {
  transform: translateX(1.5px);
}

.ari-motion-slide-left:hover .ari-icon,
.ari-motion-slide-left.is-demoing .ari-icon {
  transform: translateX(-1.5px);
}

.ari-motion-expand[aria-expanded="true"] .ari-icon,
.ari-motion-expand.is-demoing .ari-icon {
  transform: rotate(180deg);
}

.ari-motion-rotate-once.is-demoing .ari-icon {
  animation: ari-icon-rotate-once 720ms var(--ari-icon-ease);
}

.ari-motion-spin.is-loading .ari-icon,
.ari-motion-spin.is-demoing .ari-icon {
  animation: ari-icon-spin 1100ms linear infinite;
}

.ari-motion-confirm.is-demoing .ari-icon {
  animation: ari-icon-confirm 620ms var(--ari-icon-ease);
}

.ari-motion-attention.is-demoing .ari-icon {
  animation: ari-icon-attention 620ms var(--ari-icon-ease);
}

.ari-motion-pulse.is-demoing .ari-icon {
  animation: ari-icon-pulse 980ms ease-in-out;
}

@keyframes ari-icon-rotate-once {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes ari-icon-spin {
  to { transform: rotate(360deg); }
}

@keyframes ari-icon-confirm {
  0% { transform: scale(.82); opacity: .45; }
  58% { transform: scale(1.09); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}

@keyframes ari-icon-attention {
  0%, 100% { transform: rotate(0deg); }
  28% { transform: rotate(-4deg); }
  58% { transform: rotate(4deg); }
}

@keyframes ari-icon-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.055); opacity: .72; }
}

/* Обновление: короткий функциональный жест вместо полного оборота */

/* ARI Icon System V3 — видимая, но спокойная анимация каждой семантики */

/* Повтор по клику теперь заметен даже когда курсор уже находится над кнопкой. */
.ari-motion-hover-scale.is-demoing .ari-icon {
  animation: ari-icon-pop 540ms var(--ari-icon-ease);
}

.ari-motion-hover-lift.is-demoing .ari-icon {
  animation: ari-icon-lift 580ms var(--ari-icon-ease);
}

.ari-motion-slide-right.is-demoing .ari-icon {
  animation: ari-icon-nudge-right 560ms var(--ari-icon-ease);
}

.ari-motion-slide-left.is-demoing .ari-icon {
  animation: ari-icon-nudge-left 560ms var(--ari-icon-ease);
}

.ari-motion-confirm.is-demoing .ari-icon {
  animation: ari-icon-confirm-v3 640ms var(--ari-icon-ease);
}

.ari-motion-pulse.is-demoing .ari-icon {
  animation: ari-icon-pulse-v3 820ms ease-in-out;
}

.ari-motion-task:hover .ari-icon {
  transform: translateY(-1px);
}

.ari-motion-task.is-demoing .ari-icon {
  animation: ari-icon-task 660ms var(--ari-icon-ease);
}

.ari-motion-approve:hover .ari-icon {
  transform: translateX(1px);
}

.ari-motion-approve.is-demoing .ari-icon [data-part="check-back"] {
  stroke-dasharray: 22;
  stroke-dashoffset: 22;
  animation: ari-icon-check-draw 540ms var(--ari-icon-ease) forwards;
}

.ari-motion-approve.is-demoing .ari-icon [data-part="check-front"] {
  stroke-dasharray: 22;
  stroke-dashoffset: 22;
  animation: ari-icon-check-draw 540ms 90ms var(--ari-icon-ease) forwards;
}

.ari-motion-pin:hover .ari-icon {
  transform: rotate(-7deg) translateY(-1px);
}

.ari-motion-pin.is-demoing .ari-icon {
  animation: ari-icon-pin 680ms var(--ari-icon-ease);
}

.ari-motion-library:hover .ari-icon [data-part="book-middle"] {
  transform: translateY(-1px);
}

.ari-motion-library.is-demoing .ari-icon [data-part="book-left"] {
  animation: ari-icon-book-rise 660ms var(--ari-icon-ease);
}

.ari-motion-library.is-demoing .ari-icon [data-part="book-middle"] {
  animation: ari-icon-book-rise 660ms 55ms var(--ari-icon-ease);
}

.ari-motion-library.is-demoing .ari-icon [data-part="book-right"] {
  animation: ari-icon-book-rise 660ms 110ms var(--ari-icon-ease);
}

.ari-motion-planned:hover .ari-icon {
  transform: translateY(-1px);
}

.ari-motion-planned.is-demoing .ari-icon [data-part="hand"] {
  transform-origin: 15.5px 15.5px;
  animation: ari-icon-clock-hand 720ms var(--ari-icon-ease);
}

.ari-icon [data-part] {
  transform-box: fill-box;
  transform-origin: center;
  transition: transform var(--ari-icon-motion-normal) var(--ari-icon-ease);
}

@keyframes ari-icon-pop {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.13); }
}

@keyframes ari-icon-lift {
  0%, 100% { transform: translateY(0); }
  45% { transform: translateY(-3px); }
}

@keyframes ari-icon-nudge-right {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(4px); }
}

@keyframes ari-icon-nudge-left {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(-4px); }
}

@keyframes ari-icon-confirm-v3 {
  0% { transform: scale(.86); opacity: .55; }
  60% { transform: scale(1.12); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}

@keyframes ari-icon-pulse-v3 {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.1); opacity: .72; }
}

@keyframes ari-icon-task {
  0%, 100% { transform: translateY(0) scale(1); }
  45% { transform: translateY(-2px) scale(1.07); }
}

@keyframes ari-icon-check-draw {
  to { stroke-dashoffset: 0; }
}

@keyframes ari-icon-pin {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
}

@keyframes ari-icon-book-rise {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

@keyframes ari-icon-clock-hand {
  from { transform: rotate(0deg); }
  to { transform: rotate(140deg); }
}

/* Единственное исключение: существующая иконка сайдбара остаётся как есть. */
.ari-motion-sidebar-existing .ari-icon {
  transition: transform .18s ease;
}

.ari-motion-sidebar-existing:hover .ari-icon {
  transform: scale(1.04);
}

.ari-motion-sidebar-existing:active .ari-icon {
  transform: scale(.96);
}

.ari-motion-sidebar-existing.is-demoing .ari-icon {
  animation: ari-icon-sidebar-existing 420ms ease;
}

.ari-motion-pin:hover .ari-icon {
  transform: translateY(-1px);
}

.ari-motion-pin.is-demoing .ari-icon [data-part="head"],
.ari-motion-pin.is-demoing .ari-icon [data-part="body"] {
  animation: ari-icon-pushpin 720ms var(--ari-icon-ease);
}

.ari-motion-pin.is-demoing .ari-icon [data-part="needle"] {
  animation: ari-icon-pushpin-needle 720ms var(--ari-icon-ease);
}

@keyframes ari-icon-sidebar-existing {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.04); }
}

@keyframes ari-icon-pushpin {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(2px); }
}

@keyframes ari-icon-pushpin-needle {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(3px); }
}

.ari-motion-unlock:hover .ari-icon [data-part="shackle"] {
  transform: translateY(-1px) rotate(-6deg);
}

.ari-motion-unlock.is-demoing .ari-icon [data-part="shackle"] {
  animation: ari-icon-unlock 760ms var(--ari-icon-ease);
}

@keyframes ari-icon-unlock {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-10deg); }
}

/* ARI Icon System V6 — единая цельная иконка файла без бейджа */
/* ARI Icon Semantic Tone R1
 * Reuses canonical ARI status text tokens.
 * Neutral presentation removes semantic tone classes.
 * Intrinsic file-type tone is a separate contract.
 */

.ari-icon--tone-danger {
  color: var(--ari-color-status-danger-text);
}

.ari-icon--tone-success {
  color: var(--ari-color-status-success-text);
}

.ari-icon--tone-warning {
  color: var(--ari-color-status-warning-text);
}

.ari-icon--tone-info {
  color: var(--ari-color-status-info-text);
}

.ari-file-icon {
  color: currentColor;
}

.ari-file-icon--pdf { color: var(--ari-icon-file-tone-pdf); }
.ari-file-icon--docx { color: var(--ari-icon-file-tone-docx); }
.ari-file-icon--xlsx { color: var(--ari-icon-file-tone-xlsx); }
.ari-file-icon--pptx { color: var(--ari-icon-file-tone-pptx); }
.ari-file-icon--image { color: var(--ari-icon-file-tone-image); }
.ari-file-icon--archive { color: var(--ari-icon-file-tone-archive); }
.ari-file-icon--text { color: var(--ari-icon-file-tone-text); }
.ari-file-icon--csv { color: var(--ari-icon-file-tone-csv); }

/* ARI Icon Motion R1
 * Visual direction: B3 Expressive.
 * Short semantic motion, restrained geometry,
 * part-aware where the glyph exposes meaningful parts.
 */

.ari-motion-bell:hover .ari-icon,
.ari-motion-bell.is-demoing .ari-icon {
  transform-box: fill-box;
  transform-origin: 50% 18%;
  animation: ari-icon-bell-r1 580ms ease-in-out;
}

.ari-motion-bell:hover .ari-icon [data-part="clapper"],
.ari-motion-bell.is-demoing .ari-icon [data-part="clapper"] {
  transform-box: fill-box;
  transform-origin: center;
  animation: ari-icon-bell-clapper-r1 580ms ease-in-out;
}

.ari-motion-gear-turn:hover .ari-icon,
.ari-motion-gear-turn.is-demoing .ari-icon {
  transform-box: fill-box;
  transform-origin: center;
  animation: ari-icon-gear-turn-r1 580ms ease-out;
}

.ari-motion-trash:hover .ari-icon [data-part="lid"],
.ari-motion-trash.is-demoing .ari-icon [data-part="lid"] {
  transform-box: fill-box;
  transform-origin: center;
  animation: ari-icon-trash-r1 580ms ease-out;
}

.ari-motion-mail:hover .ari-icon [data-part="flap"],
.ari-motion-mail.is-demoing .ari-icon [data-part="flap"] {
  transform-box: fill-box;
  transform-origin: center top;
  animation: ari-icon-mail-r1 580ms ease-out;
}

.ari-motion-forward:hover .ari-icon,
.ari-motion-forward.is-demoing .ari-icon {
  animation: ari-icon-forward-r1 580ms ease-out;
}

.ari-motion-success:hover .ari-icon [data-part="check"],
.ari-motion-success.is-demoing .ari-icon [data-part="check"] {
  transform-box: fill-box;
  transform-origin: center;
  animation: ari-icon-success-r1 580ms ease-out;
}

.ari-motion-download:hover .ari-icon [data-part="arrow"],
.ari-motion-download.is-demoing .ari-icon [data-part="arrow"] {
  transform-box: fill-box;
  transform-origin: center;
  animation: ari-icon-download-r1 580ms ease-out;
}

.ari-motion-refresh:hover .ari-icon,
.ari-motion-refresh.is-demoing .ari-icon {
  transform-box: fill-box;
  transform-origin: center;
  animation: ari-icon-refresh-r1 580ms ease-out;
}

.ari-motion-edit:hover .ari-icon,
.ari-motion-edit.is-demoing .ari-icon {
  transform-box: fill-box;
  transform-origin: center;
  animation: ari-icon-edit-r1 580ms ease-out;
}

.ari-motion-add-action .ari-icon {
  transition: none;
}

.ari-motion-add-action:hover .ari-icon,
.ari-motion-add-action:focus-visible .ari-icon,
.ari-motion-add-action.is-demoing .ari-icon {
  transform-box: fill-box;
  transform-origin: center;
  animation: ari-icon-add-r1 580ms ease-out;
}

.ari-motion-archive:hover .ari-icon [data-part="lid"],
.ari-motion-archive.is-demoing .ari-icon [data-part="lid"] {
  transform-box: fill-box;
  transform-origin: center;
  animation: ari-icon-archive-r1 580ms ease-out;
}

@keyframes ari-icon-bell-r1 {
  0%,
  100% {
    transform: rotate(0);
  }

  32% {
    transform: rotate(10deg);
  }

  68% {
    transform: rotate(-7deg);
  }
}

@keyframes ari-icon-bell-clapper-r1 {
  0%,
  100% {
    transform: translateX(0);
  }

  32% {
    transform: translateX(1.26px);
  }

  68% {
    transform: translateX(-1px);
  }
}

@keyframes ari-icon-gear-turn-r1 {
  0%,
  100% {
    transform: rotate(0);
  }

  62% {
    transform: rotate(58deg);
  }
}

@keyframes ari-icon-trash-r1 {
  0%,
  100% {
    transform: translateY(0) rotate(0);
  }

  55% {
    transform: translateY(-1.8px) rotate(-5deg);
  }
}

@keyframes ari-icon-mail-r1 {
  0%,
  100% {
    transform: rotateX(0);
  }

  55% {
    transform: rotateX(-26deg);
  }
}

@keyframes ari-icon-forward-r1 {
  0%,
  100% {
    transform: translateX(0);
  }

  55% {
    transform: translateX(3.6px);
  }
}

@keyframes ari-icon-success-r1 {
  0%,
  100% {
    transform: scale(1);
  }

  52% {
    transform: scale(1.08);
  }
}

@keyframes ari-icon-download-r1 {
  0%,
  100% {
    transform: translateY(0);
  }

  55% {
    transform: translateY(3.6px);
  }
}

@keyframes ari-icon-refresh-r1 {
  0%,
  100% {
    transform: rotate(0);
  }

  60% {
    transform: rotate(58deg);
  }
}

@keyframes ari-icon-edit-r1 {
  0%,
  100% {
    transform: translate(0) rotate(0);
  }

  55% {
    transform:
      translate(1.26px, -1.26px)
      rotate(-5deg);
  }
}

@keyframes ari-icon-add-r1 {
  0%,
  100% {
    transform: scale(1) rotate(0);
  }

  52% {
    transform:
      scale(1.08)
      rotate(7deg);
  }
}

@keyframes ari-icon-archive-r1 {
  0%,
  100% {
    transform: translateY(0);
  }

  55% {
    transform: translateY(-1.8px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .ari-icon-motion .ari-icon,
  .ari-icon-motion .ari-icon [data-part],
  .ari-motion-add-action .ari-icon,
  .ari-motion-add-action .ari-icon [data-part] {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}
