/*!
 * Анимированные значки — переходы между состояниями.
 * Цвет значка задаёт currentColor: его ставит widget.js из брендинга.
 * Все анимации отключаются системной настройкой «уменьшить движение».
 */

.smit-ico {
    display: inline-flex;
    width: 1.15em;
    height: 1.15em;
    vertical-align: -0.16em;
    line-height: 1;
}

.smit-ico .smit-ico-svg {
    width: 100%;
    height: 100%;
    overflow: visible;
}

/* Базовое правило состояний: «off» видно, пока значок выключен, «on» — после */
.smit-ico .i-on { opacity: 0; transition: opacity .18s ease; }
.smit-ico .i-off { opacity: 1; transition: opacity .18s ease; }
.smit-ico.on .i-on { opacity: 1; }
.smit-ico.on .i-off { opacity: 0; }

/* Прорисовка линии (галочка, перечёркивание) */
.smit-ico .i-draw {
    stroke-dasharray: 32;
    stroke-dashoffset: 32;
    transition: stroke-dashoffset .38s cubic-bezier(.2, .8, .3, 1), opacity .18s;
}
.smit-ico.on .i-draw { stroke-dashoffset: 0; }

/* Бесконечное вращение — «загрузка» */
.smit-ico .i-spin { transform-origin: 50% 50%; animation: smitIcoSpin 1s linear infinite; }
.smit-ico.on .i-spin { animation: none; }
@keyframes smitIcoSpin { to { transform: rotate(360deg); } }

/* Поворот по переходу — «обновить», «настройки» */
.smit-ico .i-turn { transform-origin: 50% 50%; transition: transform .5s cubic-bezier(.2, .8, .3, 1); }
.smit-ico.on .i-turn { transform: rotate(360deg); }
.smit-ico .i-turn-slow { transform-origin: 50% 50%; transition: transform .7s ease; }
.smit-ico.on .i-turn-slow { transform: rotate(120deg); }

/* Меню → закрыть */
.smit-ico .i-bar { transform-origin: 50% 50%; transition: transform .32s cubic-bezier(.2, .8, .3, 1), opacity .2s; }
.smit-ico.on .i-bar1 { transform: translateY(6px) rotate(45deg); }
.smit-ico.on .i-bar2 { opacity: 0; }
.smit-ico.on .i-bar3 { transform: translateY(-6px) rotate(-45deg); }

/* Появление с отскоком — «пауза» */
.smit-ico .i-pop { transform-origin: 50% 50%; transition: transform .28s cubic-bezier(.3, 1.5, .5, 1), opacity .18s; }
.smit-ico .i-pop.i-on { transform: scale(.75); }
.smit-ico.on .i-pop.i-on { transform: scale(1); }
.smit-ico.on .i-pop.i-off { transform: scale(.75); }

/* Замок: дужка приподнимается и отъезжает */
.smit-ico .i-shackle { transform-origin: 50% 100%; transition: transform .32s cubic-bezier(.2, .8, .3, 1); }
.smit-ico.on .i-shackle { transform: translate(3px, -2px) rotate(12deg); }

/* Колокольчик качается, точка уведомления вспыхивает */
.smit-ico .i-swing { transform-origin: 50% 10%; }
.smit-ico.on .i-swing { animation: smitIcoSwing .7s ease-in-out; }
@keyframes smitIcoSwing {
    0%, 100% { transform: rotate(0); }
    20% { transform: rotate(11deg); }
    45% { transform: rotate(-9deg); }
    70% { transform: rotate(5deg); }
}
.smit-ico .i-dot { fill: currentColor; stroke: none; transform-origin: 75% 25%; transform: scale(0); transition: transform .3s cubic-bezier(.3, 1.6, .5, 1), opacity .2s; }
.smit-ico.on .i-dot { transform: scale(1); }

/* Сердце наливается цветом и «стукает» */
.smit-ico .i-fillable { fill: transparent; transition: fill .3s ease; }
.smit-ico.on .i-fillable { fill: currentColor; }
.smit-ico.on .i-beat { animation: smitIcoBeat .55s ease; }
@keyframes smitIcoBeat {
    0%, 100% { transform: scale(1); }
    35% { transform: scale(1.18); }
    60% { transform: scale(.95); }
}
.smit-ico .i-beat { transform-origin: 50% 55%; }

/* Стрелка «скачать» падает вниз перед сменой состояния */
.smit-ico.on .i-fall { animation: smitIcoFall .4s ease forwards; }
@keyframes smitIcoFall {
    to { transform: translateY(5px); opacity: 0; }
}

/* Самолётик улетает и возвращается */
.smit-ico.on .i-fly { animation: smitIcoFly .8s cubic-bezier(.4, 0, .2, 1); }
@keyframes smitIcoFly {
    45% { transform: translate(9px, -9px) scale(.8); opacity: 0; }
    46% { transform: translate(-9px, 9px) scale(.8); opacity: 0; }
    100% { transform: translate(0, 0) scale(1); opacity: 1; }
}

/* Переключатель: кружок едет вправо */
.smit-ico .i-knob { transition: transform .3s cubic-bezier(.2, .8, .3, 1), fill .3s; }
.smit-ico.on .i-knob { transform: translateX(10px); }

/* Глаз: зрачок сжимается, когда значок «скрыт» */
.smit-ico .i-pupil { transform-origin: 50% 50%; transition: transform .28s ease; }
.smit-ico.on .i-pupil { transform: scaleY(.12); }

/* Звук: волны уходят по очереди */
.smit-ico .i-wave1, .smit-ico .i-wave2 { transform-origin: 30% 50%; }
.smit-ico .i-wave2 { transition-delay: .06s; }

/* Связь: волны приходят одна за другой */
.smit-ico.on .i-w1 { animation: smitIcoWave .9s ease infinite; }
.smit-ico.on .i-w2 { animation: smitIcoWave .9s ease .12s infinite; }
.smit-ico.on .i-w3 { animation: smitIcoWave .9s ease .24s infinite; }
@keyframes smitIcoWave {
    0%, 100% { opacity: .35; }
    40% { opacity: 1; }
}

/* Поиск: лупа обводит область */
.smit-ico.on .i-sweep { animation: smitIcoSweep .8s ease; }
@keyframes smitIcoSweep {
    30% { transform: translate(2px, -2px) rotate(-12deg); }
    65% { transform: translate(-2px, 2px) rotate(9deg); }
    100% { transform: none; }
}

/* ── Значки бокового меню оживают при наведении ─────────────────────────
   Разметку админки не трогаем: правила навешиваются на классы значков,
   которые там уже стоят. */
.smit-ico-ui .nav-sidebar .nav-link i,
.smit-ico-ui .navbar-nav .nav-link i {
    transition: transform .28s cubic-bezier(.2, .8, .3, 1);
}
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-cog,
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-cogs,
.smit-ico-ui .navbar-nav .nav-link:hover i.fa-cog {
    transform: rotate(90deg);
}
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-bell,
.smit-ico-ui .navbar-nav .nav-link:hover i.fa-bell {
    animation: smitIcoSwing .7s ease-in-out;
    transform-origin: 50% 10%;
}
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-search,
.smit-ico-ui .navbar-nav .nav-link:hover i.fa-search {
    transform: scale(1.18) rotate(-8deg);
}
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-download,
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-cloud-download-alt {
    transform: translateY(2px);
}
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-sync,
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-sync-alt,
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-redo {
    transform: rotate(180deg);
}
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-paper-plane {
    transform: translate(3px, -3px);
}
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-heart,
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-star {
    transform: scale(1.22);
}
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-lock,
.smit-ico-ui .nav-sidebar .nav-link:hover i.fa-unlock {
    transform: translateY(-2px) rotate(-8deg);
}

@media (prefers-reduced-motion: reduce) {
    .smit-ico *,
    .smit-ico-ui .nav-sidebar .nav-link i,
    .smit-ico-ui .navbar-nav .nav-link i {
        animation: none !important;
        transition: none !important;
    }
}
