/**
 * Home: cartões placeholder (skeleton) — mesma “caixa” do .job-card--interactive
 * (padding, raio, stack tint + barra de rodapé) com shimmer; fade na saída/entrada em #jobs-list.
 */

@keyframes home-skeleton-shimmer {
    0% {
        transform: translateX(-35%);
    }
    100% {
        transform: translateX(35%);
    }
}

/* Mesma altura mínima do card real (desktop) + stack equivalente (tint + rodapé) */
.jobs-grid > .job-card--skeleton {
    min-height: 220px;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: 0;
    border-radius: 16px;
    background: var(--card);
    box-shadow:
        0 2px 8px rgba(0, 0, 0, 0.04),
        0 0 0 1px rgba(61, 82, 72, 0.06) inset;
    overflow: hidden;
    transition:
        background var(--home-sky-tx, 5.8s) ease,
        box-shadow var(--home-sky-tx, 5.8s) ease;
}

.job-card--skeleton {
    user-select: none;
    -webkit-user-select: none;
}

.job-card--skeleton * {
    pointer-events: none;
}

/* Espelha .job-card--interactive: padding 12 + coluna (tint + footer) */
.job-card-skeleton__shell {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    padding: 12px;
    box-sizing: border-box;
}

/* Faixa de brilho (IG/FB) — mais suave que pular cor */
.job-card-skeleton__shimmer {
    position: absolute;
    z-index: 2;
    inset: 0;
    margin: 12px;
    border-radius: 14px;
    overflow: hidden;
    pointer-events: none;
}

.job-card-skeleton__shimmer::after {
    content: "";
    position: absolute;
    inset: 0;
    width: 180%;
    left: -40%;
    background: linear-gradient(
        100deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0) 42%,
        rgba(255, 255, 255, 0.5) 50%,
        rgba(255, 255, 255, 0) 58%,
        rgba(255, 255, 255, 0) 100%
    );
    animation: home-skeleton-shimmer 1.5s ease-in-out infinite;
}

/* ~ .job-card__inner-tint: área colorida com badges + título + “pílulas” */
.job-card-skeleton__tint {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    min-height: 0;
    margin: 0 0 12px 0;
    border-radius: 12px;
    padding: 18px 18px 16px;
    display: flex;
    flex-direction: column;
    gap: 0;
    background: color-mix(in srgb, var(--surface-hover) 88%, var(--paper));
    transition: background var(--home-sky-tx, 5.8s) ease;
}

.job-card-skeleton__badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    min-height: 28px;
}

.job-card-skeleton__badge {
    height: 22px;
    width: 72px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--border) 70%, var(--paper));
    opacity: 0.9;
}

.job-card-skeleton__badge--short {
    width: 88px;
}

.job-card-skeleton__title {
    height: 18px;
    border-radius: 6px;
    max-width: 100%;
    background: color-mix(in srgb, var(--muted) 12%, var(--paper));
    margin: 0 0 8px 0;
}

.job-card-skeleton__title--narrow {
    max-width: 80%;
    margin-bottom: 12px;
}

.job-card-skeleton__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;
    margin-top: 2px;
    align-content: flex-start;
}

.job-card-skeleton__pill {
    display: inline-block;
    width: 78px;
    height: 32px;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    opacity: 0.92;
}

.job-card-skeleton__pill--wide {
    width: 108px;
}

/* ~ .job-card__footer-bar: logo 36 + nome + CTA */
.job-card-skeleton__footer {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 4px 8px 4px 4px;
    flex: 0 0 auto;
    min-height: 44px;
}

.job-card-skeleton__foot-left {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1;
    min-width: 0;
}

.job-card-skeleton__face {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    flex-shrink: 0;
    background: color-mix(in srgb, var(--border) 55%, var(--paper));
}

.job-card-skeleton__company {
    height: 14px;
    max-width: min(200px, 50%);
    min-width: 100px;
    border-radius: 5px;
    background: color-mix(in srgb, var(--muted) 10%, var(--paper));
    flex: 1;
}

.job-card-skeleton__btn {
    width: min(48%, 150px);
    max-width: 150px;
    min-width: 100px;
    height: 40px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--surface-hover) 80%, #e4f6ec);
    flex-shrink: 0;
}

/* Defasagem do brilho entre cards (grid) */
.jobs-grid > .job-card--skeleton:nth-child(1) .job-card-skeleton__shimmer::after { animation-delay: 0s; }
.jobs-grid > .job-card--skeleton:nth-child(2) .job-card-skeleton__shimmer::after { animation-delay: 0.1s; }
.jobs-grid > .job-card--skeleton:nth-child(3) .job-card-skeleton__shimmer::after { animation-delay: 0.2s; }
.jobs-grid > .job-card--skeleton:nth-child(4) .job-card-skeleton__shimmer::after { animation-delay: 0.05s; }
.jobs-grid > .job-card--skeleton:nth-child(5) .job-card-skeleton__shimmer::after { animation-delay: 0.15s; }
.jobs-grid > .job-card--skeleton:nth-child(6) .job-card-skeleton__shimmer::after { animation-delay: 0.25s; }
.jobs-grid > .job-card--skeleton:nth-child(7) .job-card-skeleton__shimmer::after { animation-delay: 0.12s; }
.jobs-grid > .job-card--skeleton:nth-child(8) .job-card-skeleton__shimmer::after { animation-delay: 0.2s; }
.jobs-grid > .job-card--skeleton:nth-child(9) .job-card-skeleton__shimmer::after { animation-delay: 0.08s; }

/* Troca skeleton → vagas: mais curta e perceptível (não ~6s do céu) */
#jobs-list {
    will-change: opacity;
}

#jobs-list.jobs-list--exit {
    opacity: 0.22;
    pointer-events: none;
    transition: opacity 0.32s ease;
}

#jobs-list.jobs-list--enter {
    opacity: 0;
    transition: none;
}

#jobs-list.jobs-list--enter.jobs-list--enter-active {
    opacity: 1;
    transition: opacity 0.48s ease;
}

/* Noite: skeleton alinhado ao restante da home */
body.page-home[data-home-sky="night"] .jobs-grid > .job-card--skeleton {
    background: #222c29;
    box-shadow:
        0 2px 12px rgba(0, 0, 0, 0.24),
        0 0 0 1px rgba(255, 255, 255, 0.06) inset;
}

body.page-home[data-home-sky="night"] .job-card-skeleton__tint {
    background: color-mix(in srgb, var(--surface-hover) 30%, #1a2220);
}

body.page-home[data-home-sky="night"] .job-card-skeleton__badge,
body.page-home[data-home-sky="night"] .job-card-skeleton__title,
body.page-home[data-home-sky="night"] .job-card-skeleton__face,
body.page-home[data-home-sky="night"] .job-card-skeleton__company,
body.page-home[data-home-sky="night"] .job-card-skeleton__btn {
    background: color-mix(in srgb, #fff 8%, #2a3330);
    opacity: 0.92;
}

body.page-home[data-home-sky="night"] .job-card-skeleton__pill {
    background: color-mix(in srgb, #fff 6%, #2f3835);
    opacity: 0.9;
}

body.page-home[data-home-sky="night"] .job-card-skeleton__shimmer::after {
    background: linear-gradient(
        100deg,
        rgba(255, 255, 255, 0) 0%,
        rgba(255, 255, 255, 0) 42%,
        rgba(255, 255, 255, 0.14) 50%,
        rgba(255, 255, 255, 0) 58%,
        rgba(255, 255, 255, 0) 100%
    );
    animation: home-skeleton-shimmer 1.55s ease-in-out infinite;
}

body.page-home[data-home-sky="dusk"] .job-card-skeleton__tint {
    background: color-mix(in srgb, var(--surface-hover) 80%, #fff7f0);
}

@media (prefers-reduced-motion: reduce) {
    .job-card-skeleton__shimmer::after {
        animation: none !important;
    }

    #jobs-list.jobs-list--exit,
    #jobs-list.jobs-list--enter,
    #jobs-list.jobs-list--enter.jobs-list--enter-active {
        transition: none !important;
    }

    #jobs-list.jobs-list--exit,
    #jobs-list.jobs-list--enter {
        opacity: 1 !important;
    }
}
