/* ==========================================================================
   Job card: one job on the home page (components/jobcard) and one of the
   candidate's own applications (components/candidate/application-card).
   Flat theme colours only, no gradients.
   ========================================================================== */

.job-card {
    --jc-primary: #198754;
    --jc-primary-dark: #146c43;
    --jc-primary-soft: #e8f3ee;
    --jc-border: #e3e9e6;
    --jc-text: #1b2420;
    --jc-muted: #5f6b66;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--jc-border);
    border-radius: 14px;
    box-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 2px 8px rgba(16, 24, 40, .04);
    transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
    overflow: hidden;
}
.job-card:hover {
    border-color: #cfe0d7;
    box-shadow: 0 4px 10px rgba(16, 24, 40, .06), 0 12px 28px rgba(16, 24, 40, .08);
    transform: translateY(-2px);
}
.job-card-body {
    display: flex;
    gap: 16px;
    padding: 20px 20px 16px;
    flex-grow: 1;
}
.job-card-thumb {
    position: relative;
    flex: 0 0 88px;
    width: 88px;
    height: 88px;
    border-radius: 12px;
    background: var(--jc-primary-soft);
    border: 1px solid var(--jc-border);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.job-card-thumb img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: #fff;
}
.job-card-thumb-placeholder {
    width: 36px;
    height: 36px;
    color: var(--jc-primary);
}
.job-card-info {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex-grow: 1;
}
.job-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}
.job-card-title {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.35;
    color: var(--jc-text);
}
.job-card-institute {
    margin-top: 4px;
    font-size: .95rem;
    color: var(--jc-muted);
}
.job-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.job-card-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: #f3f6f5;
    color: var(--jc-muted);
    font-size: .8rem;
    font-weight: 600;
    margin: 0 !important; /* main.css spaces every span:has(.label-icon) */
}
.job-card-chip svg {
    width: 14px;
    height: 14px;
    color: var(--jc-primary);
}
.job-card-footer {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px 20px 18px;
    border-top: 1px solid #edf1ef;
    background: #fbfcfb;
}
.job-card-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}
/* the status line, coloured by its text-* class */
.job-card .admit-card-status {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: .8rem;
    font-weight: 600;
    background: #f3f6f5;
    color: var(--jc-muted);
}
.job-card .admit-card-status::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
}
.job-card .admit-card-status.text-success { background: #e8f3ee; color: #146c43 !important; }
.job-card .admit-card-status.text-warning { background: #fff6e5; color: #8a5a00 !important; }
.job-card .admit-card-status.text-danger  { background: #fdecec; color: #b42318 !important; }
.job-card .admit-card-status.d-none { display: none !important; }
@media (max-width: 575.98px) {
    .job-card-body { padding: 16px 16px 12px; gap: 12px; }
    .job-card-thumb { flex-basis: 64px; width: 64px; height: 64px; }
    .job-card-head { flex-direction: column; }
    .job-card-footer { padding: 12px 16px 16px; }
}
