/* =========================================================
   CARDS — универсальная карточка + пресеты (news, course, file)
   ========================================================= */

.ui-kit-card {
    position: relative;
    background: var(--ui-kit-white);
    border: 1px solid var(--ui-kit-border);
    border-radius: var(--ui-kit-radius-xl);
    overflow: visible;
    display: flex;
    will-change: transform;
    transition: transform 0.35s var(--ui-kit-ease), box-shadow 0.35s var(--ui-kit-ease), border-color 0.35s var(--ui-kit-ease);
}
.ui-kit-card__link { display: flex; flex-direction: column; width: 100%; text-decoration: none; color: inherit; position: relative; z-index: 1; }
.ui-kit-card__media {
    position: relative; height: 170px; background: var(--ui-kit-bg-soft);
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
    border-top-left-radius: var(--ui-kit-radius-xl);
    border-top-right-radius: var(--ui-kit-radius-xl);
}
.ui-kit-card__image { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s var(--ui-kit-ease); }
.ui-kit-card__icon { color: var(--ui-kit-navy); opacity: 0.35; }
.ui-kit-card__body { display: flex; flex-direction: column; flex: 1; padding: var(--ui-kit-space-xl); }
.ui-kit-card__title {
    font-size: var(--ui-kit-fs-lg); font-weight: var(--ui-kit-fw-bold);
    line-height: 1.35; margin: 0 0 10px; color: var(--ui-kit-navy);
    letter-spacing: -0.005em; display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden; min-height: 48px;
}
.ui-kit-card__desc {
    font-size: var(--ui-kit-fs-base); line-height: var(--ui-kit-lh-loose);
    color: var(--ui-kit-text-muted); margin: 0 0 var(--ui-kit-space-xl);
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
    overflow: hidden; flex: 1;
}
.ui-kit-card__footer { margin-top: auto; padding-top: var(--ui-kit-space-lg); border-top: 1px solid var(--ui-kit-border); }
.ui-kit-card--muted { background: var(--ui-kit-bg-muted); border-color: var(--ui-kit-border-soft); }
.ui-kit-card--muted .ui-kit-card__media { opacity: 0.7; }
.ui-kit-card--muted .ui-kit-card__title { color: var(--ui-kit-text-faded); }
.ui-kit-card--hover-lift:hover { transform: translateY(-6px); box-shadow: var(--ui-kit-shadow-xl); border-color: transparent; }
.ui-kit-card--hover-lift-soft:hover { transform: translateY(-3px); box-shadow: var(--ui-kit-shadow-lg); }
.ui-kit-card--hover-zoom:hover .ui-kit-card__image { transform: scale(1.06); }

.ui-kit-card--horizontal { flex-direction: row; }
.ui-kit-card--horizontal .ui-kit-card__link { flex-direction: row; }
.ui-kit-card--horizontal .ui-kit-card__media {
    width: 200px; height: auto; min-height: 180px;
    border-radius: var(--ui-kit-radius-xl) 0 0 var(--ui-kit-radius-xl);
    flex-shrink: 0;
}
.ui-kit-card--horizontal .ui-kit-card__body { padding: 20px 24px; }
@media (max-width: 600px) {
    .ui-kit-card--horizontal,
    .ui-kit-card--horizontal .ui-kit-card__link { flex-direction: column; }
    .ui-kit-card--horizontal .ui-kit-card__media {
        width: 100%; height: 160px;
        border-radius: var(--ui-kit-radius-xl) var(--ui-kit-radius-xl) 0 0;
    }
}

.ui-kit-card--compact .ui-kit-card__media { display: none; }
.ui-kit-card--compact .ui-kit-card__body { padding: 16px; }

.ui-kit-ribbon-wrap { position: relative; overflow: hidden; }
.ui-kit-ribbon {
    position: absolute; top: 18px; right: -40px;
    width: 150px; padding: 5px 0;
    text-align: center; transform: rotate(45deg);
    background: var(--ui-kit-accent); color: var(--ui-kit-white);
    font-size: var(--ui-kit-fs-xs); font-weight: var(--ui-kit-fw-bold);
    text-transform: uppercase; letter-spacing: 0.08em;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    z-index: 2;
}
.ui-kit-ribbon--success { background: var(--ui-kit-success); }
.ui-kit-ribbon--danger  { background: var(--ui-kit-danger); }
.ui-kit-ribbon--info    { background: var(--ui-kit-info); }

.ui-kit-news-card .ui-kit-card__title {
    font-weight: var(--ui-kit-fw-medium);
    display: block; overflow: visible; min-height: 0;
    -webkit-line-clamp: unset; -webkit-box-orient: unset;
}
.ui-kit-news-card__date {
    display: inline-flex; align-items: center; gap: 6px;
    margin-left: auto;
    color: var(--ui-kit-text-muted); font-size: var(--ui-kit-fs-sm);
}
.ui-kit-news-card .ui-kit-card__footer {
    display: flex; align-items: center; justify-content: space-between; gap: var(--ui-kit-space-md);
}

.ui-kit-course-card__badges {
    display: flex; gap: 8px; margin-bottom: 10px;
}

.ui-kit-file-card {
    position: relative; display: flex; flex-direction: column;
    padding: var(--ui-kit-space-xl); background: var(--ui-kit-white);
    border: 1px solid var(--ui-kit-border); border-radius: var(--ui-kit-radius-lg);
    text-decoration: none; color: inherit; cursor: pointer; overflow: visible;
    transition: transform 0.35s var(--ui-kit-ease), box-shadow 0.35s var(--ui-kit-ease), border-color 0.35s var(--ui-kit-ease);
}
.ui-kit-file-card:hover { transform: translateY(-3px); box-shadow: var(--ui-kit-shadow-lg); border-color: transparent; }
.ui-kit-file-card__icon { display: inline-flex; align-items: center; justify-content: flex-start; margin-bottom: var(--ui-kit-space-lg); }
.ui-kit-file-card__name {
    font-size: var(--ui-kit-fs-base); font-weight: var(--ui-kit-fw-semibold);
    line-height: 1.4; color: var(--ui-kit-navy); margin: 0 0 var(--ui-kit-space-sm);
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
    overflow: hidden; min-height: 38px;
}
.ui-kit-file-card__meta { display: flex; align-items: center; gap: var(--ui-kit-space-md); margin-top: auto; font-size: var(--ui-kit-fs-xs); color: var(--ui-kit-text-muted); }
.ui-kit-file-card__actions { position: absolute; top: 12px; right: 12px; display: flex; gap: 4px; opacity: 0; transition: opacity var(--ui-kit-trans-fast); }
.ui-kit-file-card:hover .ui-kit-file-card__actions { opacity: 1; }
.ui-kit-file-card__action {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: var(--ui-kit-radius-sm);
    border: none; background: rgba(255, 255, 255, 0.9); color: var(--ui-kit-navy);
    cursor: pointer;
    transition: background var(--ui-kit-trans-fast), color var(--ui-kit-trans-fast);
    -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.ui-kit-file-card__action:hover { background: var(--ui-kit-blue); color: var(--ui-kit-white); }
.ui-kit-file-card__action--danger:hover { background: var(--ui-kit-danger); color: var(--ui-kit-white); }

.ui-kit-file-list {
    display: flex; flex-direction: column; background: var(--ui-kit-white);
    border: 1px solid var(--ui-kit-border); border-radius: var(--ui-kit-radius-lg);
    overflow: hidden;
}
.ui-kit-file-list__item {
    display: grid; grid-template-columns: auto 1fr auto auto auto;
    align-items: center; gap: var(--ui-kit-space-lg);
    padding: var(--ui-kit-space-md) var(--ui-kit-space-xl);
    border-bottom: 1px solid var(--ui-kit-border-soft);
    text-decoration: none; color: inherit; cursor: pointer;
    transition: background var(--ui-kit-trans-fast);
}
.ui-kit-file-list__item:last-child { border-bottom: none; }
.ui-kit-file-list__item:hover { background: var(--ui-kit-bg-soft); }
.ui-kit-file-list__icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ui-kit-file-list__info { min-width: 0; }
.ui-kit-file-list__name {
    font-size: var(--ui-kit-fs-base); font-weight: var(--ui-kit-fw-semibold);
    color: var(--ui-kit-navy); line-height: 1.3; margin: 0 0 2px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ui-kit-file-list__path { font-size: var(--ui-kit-fs-xs); color: var(--ui-kit-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ui-kit-file-list__size, .ui-kit-file-list__date { font-size: var(--ui-kit-fs-sm); color: var(--ui-kit-text-muted); white-space: nowrap; }
.ui-kit-file-list__size { min-width: 90px; text-align: right; }
.ui-kit-file-list__date { min-width: 110px; text-align: right; }
.ui-kit-file-list__actions { display: flex; gap: 4px; opacity: 0; transition: opacity var(--ui-kit-trans-fast); }
.ui-kit-file-list__item:hover .ui-kit-file-list__actions { opacity: 1; }
.ui-kit-file-list__action {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: var(--ui-kit-radius-sm);
    border: none; background: transparent; color: var(--ui-kit-text-muted);
    cursor: pointer;
    transition: background var(--ui-kit-trans-fast), color var(--ui-kit-trans-fast);
}
.ui-kit-file-list__action:hover { background: var(--ui-kit-blue-tint); color: var(--ui-kit-blue); }
.ui-kit-file-list__action--danger:hover { background: var(--ui-kit-danger-tint); color: var(--ui-kit-danger); }
@media (max-width: 768px) {
    .ui-kit-file-list__item { grid-template-columns: auto 1fr auto auto; gap: var(--ui-kit-space-md); padding: var(--ui-kit-space-md) var(--ui-kit-space-lg); }
    .ui-kit-file-list__size { display: none; }
}
@media (max-width: 480px) { .ui-kit-file-list__date { display: none; } }

.ui-kit-feature {
    display: flex; flex-direction: column; gap: var(--ui-kit-space-md);
    padding: var(--ui-kit-space-xl);
    background: var(--ui-kit-white); border: 1px solid var(--ui-kit-border);
    border-radius: var(--ui-kit-radius-lg);
    transition: transform var(--ui-kit-trans-fast), box-shadow var(--ui-kit-trans-fast);
}
.ui-kit-feature:hover { transform: translateY(-3px); box-shadow: var(--ui-kit-shadow-lg); }
.ui-kit-feature__icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 48px; height: 48px; border-radius: var(--ui-kit-radius-md);
    background: var(--ui-kit-blue-tint); color: var(--ui-kit-blue);
}
.ui-kit-feature__title { font-size: var(--ui-kit-fs-lg); font-weight: var(--ui-kit-fw-bold); color: var(--ui-kit-navy); margin: 0; }
.ui-kit-feature__desc { font-size: var(--ui-kit-fs-base); line-height: var(--ui-kit-lh-loose); color: var(--ui-kit-text-muted); margin: 0; }