/* ARI Icon — approved V6 geometry adapted to central ARI Design. */
/* Status: experimental; dev gallery only; no real-page runtime use. */

.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-add-action .ari-icon {
  transition: transform 180ms ease;
}

.ari-motion-add-action:hover .ari-icon,
.ari-motion-add-action:focus-visible .ari-icon,
.ari-motion-add-action.is-demoing .ari-icon {
  transform: rotate(90deg);
}

.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-motion-refresh:hover .ari-icon {
  transform: rotate(12deg);
}

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

@keyframes ari-icon-refresh {
  0% { transform: rotate(0deg); }
  48% { transform: rotate(108deg); }
  100% { transform: rotate(0deg); }
}

/* 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-success:hover .ari-icon {
  transform: scale(1.06);
}

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

.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-refresh:hover .ari-icon {
  transform: rotate(18deg);
}

.ari-motion-refresh.is-demoing .ari-icon {
  animation: ari-icon-chrome-refresh 760ms var(--ari-icon-ease);
}

.ari-motion-trash:hover .ari-icon [data-part="lid"],
.ari-motion-trash.is-demoing .ari-icon [data-part="lid"] {
  transform: translateY(-1px) rotate(-4deg);
}

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

.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-chrome-refresh {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

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

@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-mail:hover .ari-icon [data-part="flap"] {
  transform: translateY(-1px);
}

.ari-motion-mail.is-demoing .ari-icon [data-part="flap"] {
  animation: ari-icon-mail-flap 680ms var(--ari-icon-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-mail-flap {
  0%, 100% { transform: translateY(0); }
  45% { transform: translateY(-2px); }
}

@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-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); }
@media (prefers-reduced-motion: reduce) {
  .ari-motion-add-action .ari-icon {
    transition: none;
    transform: none;
  }
}
