/* _content/JobBoardAdmin.Shared/Components/Alert.razor.rz.scp.css */
.jb-alert[b-446r8c5nyz] {
    display: flex;
    flex-direction: column;
    gap: var(--jb-space-2xs);
    padding: var(--jb-space-sm) var(--jb-space-md);
    border-radius: var(--jb-radius-md);
    border-left: 3px solid currentColor;
    font-size: var(--jb-text-body-sm);
}

.jb-alert__title[b-446r8c5nyz] { font-weight: var(--jb-text-weight-semibold); }

.jb-alert--info[b-446r8c5nyz]    { background: var(--jb-color-status-info-bg);    color: var(--jb-color-status-info); }
.jb-alert--success[b-446r8c5nyz] { background: var(--jb-color-status-success-bg); color: var(--jb-color-status-success); }
.jb-alert--warning[b-446r8c5nyz] { background: var(--jb-color-status-warning-bg); color: var(--jb-color-status-warning); }
.jb-alert--error[b-446r8c5nyz]   { background: var(--jb-color-status-error-bg);   color: var(--jb-color-status-error); }

.jb-alert__body[b-446r8c5nyz] { color: var(--jb-color-text-primary); }
/* _content/JobBoardAdmin.Shared/Components/Badge.razor.rz.scp.css */
.jb-badge[b-xpvx8fkdtr] {
    display: inline-flex;
    align-items: center;
    padding: var(--jb-space-3xs) var(--jb-space-xs);
    font-size: var(--jb-text-body-xs);
    font-weight: var(--jb-text-weight-medium);
    line-height: 1;
    border-radius: var(--jb-radius-pill);
    white-space: nowrap;
}

/* Use themed surface + text tokens (not the raw neutral palette) so the
   neutral badge re-tints in dark mode. The hard-coded neutral-100 / -700
   pair stayed light-bg + dark-text on a dark card surface, which was the
   "out of place" look the user flagged. */
.jb-badge--neutral[b-xpvx8fkdtr]  { background: var(--jb-color-surface-sunken); color: var(--jb-color-text-secondary); }
.jb-badge--brand[b-xpvx8fkdtr]    { background: color-mix(in srgb, var(--jb-color-brand-primary) 15%, transparent); color: var(--jb-color-brand-primary); }
.jb-badge--success[b-xpvx8fkdtr]  { background: var(--jb-color-status-success-bg); color: var(--jb-color-status-success); }
.jb-badge--warning[b-xpvx8fkdtr]  { background: var(--jb-color-status-warning-bg); color: var(--jb-color-status-warning); }
.jb-badge--error[b-xpvx8fkdtr]    { background: var(--jb-color-status-error-bg); color: var(--jb-color-status-error); }
.jb-badge--info[b-xpvx8fkdtr]     { background: var(--jb-color-status-info-bg); color: var(--jb-color-status-info); }
/* _content/JobBoardAdmin.Shared/Components/Button.razor.rz.scp.css */
.jb-button[b-adc360jevr] {
    display: inline-flex;
    align-items: center;
    gap: var(--jb-space-xs);
    padding: var(--jb-space-xs) var(--jb-space-md);
    font-family: var(--jb-font-family-sans);
    font-size: var(--jb-text-body-sm);
    font-weight: var(--jb-text-weight-semibold);
    line-height: var(--jb-text-leading-tight);
    border-radius: var(--jb-radius-md);
    border: 1px solid transparent;
    cursor: pointer;
    transition: background var(--jb-motion-duration-fast) var(--jb-motion-easing-standard),
                border-color var(--jb-motion-duration-fast) var(--jb-motion-easing-standard),
                box-shadow var(--jb-motion-duration-fast) var(--jb-motion-easing-standard);
}

.jb-button:focus-visible[b-adc360jevr] {
    outline: none;
    box-shadow: var(--jb-shadow-focus);
}

.jb-button:disabled[b-adc360jevr] {
    opacity: 0.5;
    cursor: not-allowed;
}

.jb-button--sm[b-adc360jevr] {
    padding: var(--jb-space-2xs) var(--jb-space-sm);
    font-size: var(--jb-text-body-xs);
}

/* Primary */
.jb-button--primary[b-adc360jevr] {
    background: var(--jb-color-brand-primary);
    color: var(--jb-color-text-inverse);
}
.jb-button--primary:hover:not(:disabled)[b-adc360jevr] { background: var(--jb-color-brand-primary-hover); }
.jb-button--primary:active:not(:disabled)[b-adc360jevr] { background: var(--jb-color-brand-primary-active); }

/* Secondary */
.jb-button--secondary[b-adc360jevr] {
    background: var(--jb-color-surface-card);
    color: var(--jb-color-brand-primary);
    border-color: var(--jb-color-brand-primary);
}
.jb-button--secondary:hover:not(:disabled)[b-adc360jevr] { background: var(--jb-color-neutral-50); }

/* Neutral */
.jb-button--neutral[b-adc360jevr] {
    background: var(--jb-color-surface-card);
    color: var(--jb-color-text-primary);
    border-color: var(--jb-color-border-default);
}
.jb-button--neutral:hover:not(:disabled)[b-adc360jevr] { background: var(--jb-color-neutral-50); }

/* Destructive */
.jb-button--destructive[b-adc360jevr] {
    background: var(--jb-color-status-error);
    color: var(--jb-color-text-inverse);
}
.jb-button--destructive:hover:not(:disabled)[b-adc360jevr] { filter: brightness(0.92); }

/* Ghost */
.jb-button--ghost[b-adc360jevr] {
    background: transparent;
    color: var(--jb-color-text-primary);
}
.jb-button--ghost:hover:not(:disabled)[b-adc360jevr] { background: var(--jb-color-neutral-100); }

.jb-button__spinner[b-adc360jevr] {
    width: 14px; height: 14px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: jb-button-spin-b-adc360jevr 0.6s linear infinite;
}

@keyframes jb-button-spin-b-adc360jevr { to { transform: rotate(360deg); } }
/* _content/JobBoardAdmin.Shared/Components/Card.razor.rz.scp.css */
.jb-card[b-mfscujll80] {
    background: var(--jb-color-surface-card);
    border: 1px solid var(--jb-color-border-subtle);
    border-radius: var(--jb-radius-lg);
    box-shadow: var(--jb-shadow-sm);
    /* overflow:visible (removed hidden) so absolute-positioned descendants
       — typeahead dropdowns inside <JbCombobox>, <CityTypeahead>, etc.
       — can escape the card boundary instead of being clipped. The
       header/footer below get their own corner rounding so their tinted
       backgrounds still respect the card's outer border-radius. */
    overflow: visible;
}

.jb-card__header[b-mfscujll80] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--jb-space-md);
    padding: var(--jb-space-md) var(--jb-space-lg);
    border-bottom: 1px solid var(--jb-color-border-subtle);
    background: var(--jb-color-surface-sunken);
    /* Round the top corners so the header bg doesn't square off past
       the card's rounded outer edge now that we've removed
       overflow:hidden from the parent. */
    border-top-left-radius: var(--jb-radius-lg);
    border-top-right-radius: var(--jb-radius-lg);
}

.jb-card__title[b-mfscujll80] {
    margin: 0;
    font-size: var(--jb-text-heading-sm);
    font-weight: var(--jb-text-weight-semibold);
    color: var(--jb-color-text-primary);
}

.jb-card__actions[b-mfscujll80] {
    display: flex;
    gap: var(--jb-space-xs);
}

.jb-card__body[b-mfscujll80] {
    padding: var(--jb-space-lg);
}

.jb-card__footer[b-mfscujll80] {
    padding: var(--jb-space-md) var(--jb-space-lg);
    border-top: 1px solid var(--jb-color-border-subtle);
    background: var(--jb-color-surface-sunken);
    border-bottom-left-radius: var(--jb-radius-lg);
    border-bottom-right-radius: var(--jb-radius-lg);
}
/* _content/JobBoardAdmin.Shared/Components/Path.razor.rz.scp.css */
.jb-path[b-1evmcunb2c] {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: var(--jb-space-3xs);
    overflow-x: auto;
}

.jb-path__step[b-1evmcunb2c] {
    position: relative;
    flex: 1;
    min-width: 120px;
    padding: var(--jb-space-xs) var(--jb-space-md) var(--jb-space-xs) var(--jb-space-xl);
    background: var(--jb-color-neutral-100);
    color: var(--jb-color-text-secondary);
    font-size: var(--jb-text-body-sm);
    font-weight: var(--jb-text-weight-medium);
    clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 12px 50%);
    white-space: nowrap;
}

.jb-path__step:first-child[b-1evmcunb2c] {
    clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%);
    padding-left: var(--jb-space-md);
}

.jb-path__step--complete[b-1evmcunb2c] {
    background: color-mix(in srgb, var(--jb-color-brand-primary) 15%, transparent);
    color: var(--jb-color-brand-primary);
}

.jb-path__step--current[b-1evmcunb2c] {
    background: var(--jb-color-brand-primary);
    color: var(--jb-color-text-inverse);
}
