
/* ===== PREMIUM INTERACTIONS PACK ===== */

/* Плавное появление страницы */
@keyframes kpPageFade {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

main,
.container,
.container-fluid {
    animation: kpPageFade 0.28s ease;
}

/* Карточки мягко оживают */
.card {
    transition:
        transform 0.22s ease,
        box-shadow 0.22s ease,
        border-color 0.18s ease,
        background-color 0.18s ease;
}

.card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(226, 118, 170, 0.14) !important;
}

/* Кнопки */
.btn,
button,
input[type="submit"] {
    transition:
        transform 0.16s ease,
        box-shadow 0.18s ease,
        opacity 0.18s ease,
        background-color 0.18s ease,
        border-color 0.18s ease;
}

.btn:hover,
button:hover,
input[type="submit"]:hover {
    transform: translateY(-1px);
}

.btn:active,
button:active,
input[type="submit"]:active {
    transform: scale(0.99);
}

/* Формы */
.form-control,
.form-select,
textarea,
input,
select {
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        transform 0.18s ease,
        background-color 0.18s ease;
}

.form-control:hover,
.form-select:hover {
    border-color: #ebb0cb !important;
}

.form-control:focus,
.form-select:focus {
    transform: translateY(-1px);
}

/* Бейджи */
.badge {
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.badge:hover {
    transform: translateY(-1px);
}

/* Картинки */
img {
    transition: transform 0.24s ease, opacity 0.22s ease;
}

.card img:hover,
img.card-img-top:hover {
    transform: scale(1.015);
}

/* Навигация */
.nav-link {
    transition: color 0.18s ease, opacity 0.18s ease, transform 0.18s ease;
}

.nav-link:hover {
    transform: translateY(-1px);
}

/* Красивые flash / alert */
.alert {
    position: relative;
    overflow: hidden;
    animation: kpAlertFade 0.22s ease;
}

.alert::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.06), transparent 55%);
    pointer-events: none;
}

@keyframes kpAlertFade {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Модалки */
.modal.fade .modal-dialog {
    transform: translateY(14px) scale(0.98);
    transition: transform 0.22s ease, opacity 0.22s ease;
}

.modal.show .modal-dialog {
    transform: translateY(0) scale(1);
}

.modal-content {
    animation: kpModalPop 0.20s ease;
}

@keyframes kpModalPop {
    from {
        opacity: 0.92;
        transform: scale(0.985);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Таблицы */
table tbody tr {
    transition: background-color 0.18s ease, transform 0.18s ease;
}

table tbody tr:hover {
    transform: translateY(-1px);
    background: rgba(249, 231, 240, 0.28);
}

/* Пустые блоки */
.empty-state,
.no-data {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.empty-state:hover,
.no-data:hover {
    transform: translateY(-1px);
}

/* Красивые и мягкие появляющиеся секции */
@keyframes kpSoftReveal {
    from {
        opacity: 0;
        transform: translateY(4px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

section,
.card,
.alert,
.table-responsive {
    animation: kpSoftReveal 0.25s ease;
}

/* Scrollbar */
*::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(180deg, #e37aaf 0%, #cf5b96 100%);
}
