/* ---------- Page header ---------- */
.page-header {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.page-header-btn { width: 100%; padding-block: .75rem; }

@media (min-width: 576px) {
    .page-header {
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }
    .page-header-btn { width: auto; padding-block: .5rem; }
}

/* ---------- Job cards ---------- */
.job-card {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: 1rem 1.1rem;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    color: var(--bs-body-color);
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.job-card:hover,
.job-card:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 .5rem 1.25rem rgba(0, 0, 0, .08);
    border-color: var(--bs-warning);
    color: var(--bs-body-color);
}
.job-card-title { font-size: 1.1rem; font-weight: 700; margin: 0 0 .15rem; }
.job-card-meta  { font-size: .875rem; color: var(--bs-secondary-color); margin: 0; }
.job-card-side  { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.job-card-arrow { font-size: 1.6rem; line-height: 1; color: var(--bs-secondary-color); }

@media (min-width: 576px) {
    .job-card { flex-direction: row; align-items: center; justify-content: space-between; }
    .job-card-side { justify-content: flex-end; gap: 1rem; }
}

/* ---------- Status pills ---------- */
.status-pill {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .35rem .8rem;
    border-radius: 999px;
    font-size: .8rem;
    font-weight: 600;
    white-space: nowrap;
}
.status-pill::before {
    content: "";
    width: .5rem;
    height: .5rem;
    border-radius: 50%;
    background: currentColor;
}
.status-success   { background: var(--bs-success-bg-subtle);   color: var(--bs-success-text-emphasis); }
.status-danger    { background: var(--bs-danger-bg-subtle);    color: var(--bs-danger-text-emphasis); }
.status-warning   { background: var(--bs-warning-bg-subtle);   color: var(--bs-warning-text-emphasis); }
.status-primary   { background: var(--bs-primary-bg-subtle);   color: var(--bs-primary-text-emphasis); }
.status-secondary { background: var(--bs-secondary-bg-subtle); color: var(--bs-secondary-text-emphasis); }

/* ---------- Empty state ---------- */
.empty-state {
    text-align: center;
    padding: 3rem 1.25rem;
    border: 2px dashed var(--bs-border-color);
    border-radius: 1.25rem;
}
.empty-state-icon { font-size: 3.5rem; margin-bottom: .75rem; }