/* ==========================================================================
   Вакансии и резюме — списки
   ========================================================================== */

/* — resume-list.html — */
.uv-job-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .75rem;
    margin-bottom: 1.25rem;
}
.uv-job-header h1 {
    font-size: var(--uv-fs-h1-mobile);
    font-weight: var(--uv-fw-semibold);
    color:var(--uv-text-dark);
    margin: 0;
}
.uv-job-add-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .4rem .9rem;
    border-radius: var(--uv-radius-md);
    font-size: var(--uv-fs-small);
    font-weight: var(--uv-fw-semibold);
    text-decoration: none;
    background: linear-gradient(135deg, var(--uv-primary), var(--uv-primary-dark));
    color: var(--uv-text-inverse);
    border: none;
    transition: all var(--uv-duration-base);
}
.uv-job-add-btn:hover {
    background: linear-gradient(135deg, var(--uv-primary-dark), var(--uv-primary-hover));
    color: var(--uv-text-inverse);
    box-shadow: var(--uv-shadow-primary);
    transform: translateY(-1px);
}
.uv-job-card {
    padding: 1rem 0;
    border-bottom: 1px solid var(--uv-border, var(--uv-border));
    transition: background var(--uv-duration-fast);
    animation: uvFadeUp var(--uv-anim-base) ease both;
}
.uv-job-card:first-child { padding-top: 0; }
.uv-job-card:last-child { border-bottom: none; }
.uv-job-card:hover { background: var(--uv-bg-warm, var(--uv-bg-warm)); }
.uv-job-card-title {
    font-size: var(--uv-fs-h4);
    font-weight: var(--uv-fw-semibold);
    line-height: var(--uv-lh-base);
    margin-bottom: .3rem;
}
.uv-job-card-title a {
    color:var(--uv-text-dark);
    text-decoration: none;
    transition: color var(--uv-duration-base);
}
.uv-job-card-title a:hover { color: var(--uv-primary); }
.uv-job-card-location {
    display: inline-block;
    padding: .1rem .45rem;
    border-radius: var(--uv-radius-xs);
    background: var(--uv-bg-warm);
    border: 1px solid var(--uv-border);
    font-size: var(--uv-fs-micro);
    font-weight: var(--uv-fw-semibold);
    color: var(--uv-text-muted);
    margin-left: .4rem;
    vertical-align: middle;
}
.uv-job-card-excerpt {
    font-size: var(--uv-fs-small);
    color: var(--uv-text-dim);
    line-height: var(--uv-lh-base);
    margin: .35rem 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.uv-job-card-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    font-size: var(--uv-fs-xs);
    color: var(--uv-text-muted);
    font-weight: var(--uv-fw-medium);
}
.uv-job-card-meta i {
    font-size: var(--uv-fs-micro);
    opacity: .6;
}
/* — vacancy-list.html — */

/* ==========================================================================
   Вакансии и резюме — страницы
   ========================================================================== */

/* — resume-detail.html — */
.uv-resume-title {
    font-size: var(--uv-fs-h1-mobile);
    font-weight: var(--uv-fw-bold);
    color:var(--uv-text-dark);
    line-height: var(--uv-lh-compact);
    margin-bottom: 1rem;
}
.uv-resume-header {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
}
@media (max-width: 575.98px) {
    .uv-resume-header { flex-direction: column; }
}
.uv-resume-photo {
    flex-shrink: 0;
    border-radius: var(--uv-radius-lg);
    overflow: hidden;
    line-height: 0;
}
.uv-resume-photo img {
    border-radius: var(--uv-radius-lg);
    max-width: 100%;
    height: auto;
}
.uv-resume-fields { flex: 1; min-width: 0; }
.uv-resume-name {
    font-size: var(--uv-fs-h4);
    font-weight: var(--uv-fw-bold);
    color:var(--uv-text-dark);
    margin-bottom: .75rem;
}
.uv-info-row {
    display: flex;
    gap: .5rem;
    padding: .5rem 0;
    border-bottom: 1px solid var(--uv-border-light);
    font-size: var(--uv-fs-small);
    color: var(--uv-text-dark);
}
.uv-info-label {
    font-size: var(--uv-fs-xs);
    font-weight: var(--uv-fw-bold);
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--uv-text-muted);
    white-space: nowrap;
}
.uv-section-title {
    font-size: var(--uv-fs-body);
    font-weight: var(--uv-fw-semibold);
    color:var(--uv-text-dark);
    margin: 1.25rem 0 .75rem;
    padding-bottom: .5rem;
    border-bottom: 2px solid var(--uv-primary);
}
.uv-contacts-list {
    font-size: var(--uv-fs-small);
    color: var(--uv-text-dark);
    line-height: var(--uv-lh-content);
}
.uv-contacts-list-label {
    font-weight: var(--uv-fw-semibold);
    color: var(--uv-text-muted);
}
/* Общее для резюме и вакансии */
/* У резюме блок дат отбит сверху линией — на вакансии её нет */
.uv-resume-page .uv-article-meta-dates {
    padding-top: .75rem;
    border-top: 1px solid var(--uv-border-light);
}
/* — vacancy-detail.html — */
.uv-vacancy-title {
    font-size: var(--uv-fs-h1-mobile);
    font-weight: var(--uv-fw-bold);
    color:var(--uv-text-dark);
    line-height: var(--uv-lh-compact);
    margin-bottom: 1rem;
}
.uv-article-content { margin: 1.25rem 0; }
.uv-article-meta-dates {
    font-size: var(--uv-fs-xs);
    color: var(--uv-text-muted);
    margin-bottom: .75rem;
}
.uv-related-item {
    padding: .55rem 0;
    border-bottom: 1px solid var(--uv-border-light);
}
.uv-related-item:last-child { border-bottom: none; }
.uv-related-item a {
    font-size: var(--uv-fs-small);
    font-weight: var(--uv-fw-semibold);
    color: var(--uv-text-dark);
    text-decoration: none;
    transition: color var(--uv-duration-base);
}
.uv-related-item a:hover { color: var(--uv-primary); }
.uv-related-item-meta {
    font-size: var(--uv-fs-micro);
    color: var(--uv-text-muted);
    margin-top: .15rem;
}
.uv-sidebar-item {
    padding: .5rem 0;
    border-bottom: 1px solid var(--uv-border-light);
}
.uv-sidebar-item:last-child { border-bottom: none; }
.uv-sidebar-item a {
    font-size: var(--uv-fs-small);
    color: var(--uv-text-dark);
    text-decoration: none;
    transition: color var(--uv-duration-base);
}
.uv-sidebar-item a:hover { color: var(--uv-primary); }
.uv-sidebar-item-sub {
    font-size: var(--uv-fs-xs);
    color: var(--uv-text-muted);
    margin-top: .1rem;
}
