/* Shared portal foundation, loaded after vendor and page styles. */
html.portal-root body .auth-account-choice { min-width: 0; padding: 0; border: 0; }
html.portal-root body .auth-account-choice legend { float: none; width: auto; font-size: 0.875rem; line-height: 1.5; }
html.portal-root body .auth-account-choice__options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; }
html.portal-root body .auth-account-choice__options > div { min-width: 0; }
html.portal-root body .auth-account-choice__label { display: flex; align-items: center; justify-content: center; gap: 0.5rem; height: 100%; min-height: 48px; padding: 0.75rem 0.5rem; margin: 0; border: 1px solid var(--kf-border); border-radius: 30px; background: #fff; color: #263859; cursor: pointer; text-align: center; }
html.portal-root body .auth-account-choice__label strong { display: block; font-size: 1rem; font-weight: 600; line-height: 1.4; white-space: nowrap; }
html.portal-root body .auth-account-choice__label::before { content: ''; width: 16px; height: 16px; border: 2px solid currentColor; border-radius: 50%; flex-shrink: 0; }
html.portal-root body .auth-account-choice .btn-check:checked + label::before { background: #fff; box-shadow: inset 0 0 0 3px #3154ed; }
html.portal-root body .auth-account-choice .btn-check:checked + label { background: #1b1b1b; border-color: #3154ed; color: #fff; }
html.portal-root body .auth-account-choice .btn-check:focus-visible + label { outline: 3px solid #1b1b1b; outline-offset: 3px; }
html.portal-root[lang="hi"] body .auth-account-choice__label strong { white-space: normal; }
@media (max-width: 359.98px) {
    html.portal-root body .auth-account-choice__options { grid-template-columns: minmax(0, 1fr); }
}
/* Keep small-screen authentication focused on the form, without the promo panel. */
@media (max-width: 991.98px) {
    html.portal-root body.auth-body.creative-register { min-height: 100svh; align-items: flex-start; padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left)); }
    html.portal-root body.auth-body .creative-card { display: block; width: 100%; max-width: 460px; margin-inline: auto; border: 1px solid var(--kf-border); box-shadow: 0 3px 14px rgb(23 35 63 / 6%); }
    html.portal-root body.auth-body .creative-visual { display: none; }
    html.portal-root body.auth-body .creative-form { min-width: 0; padding: 1.25rem; }
    html.portal-root body.auth-body .creative-form h2 { font-size: 1.5rem; }
    html.portal-root body.auth-body .creative-form .auth-form .form-control:not(.otp-box),
    html.portal-root body.auth-body .creative-form .auth-form .form-select { font-size: 1rem; min-height: 48px; }
    html.portal-root body.auth-body .creative-form :is(.auth-label, .text-muted, .small) { font-size: 0.875rem; line-height: 1.5; }
    html.portal-root body.auth-body .creative-form .btn { min-height: 44px; }
    html.portal-root body.auth-body .creative-form .auth-language .portal-language { --kf-btn-height: 44px; }
    html.portal-root body.auth-body .creative-form :is(.auth-link, p.small a) { display: inline-flex; align-items: center; min-height: 44px; }
    html.portal-root body.auth-body .creative-form .form-check { min-height: 44px; display: flex; align-items: center; gap: 0.5rem; padding-left: 0; }
    html.portal-root body.auth-body .creative-form .form-check-input { float: none; flex-shrink: 0; margin: 0; }
    html.portal-root body.auth-body .creative-form .form-check-label { min-height: 44px; display: flex; align-items: center; }
    html.portal-root body.auth-body .creative-form .otp-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) 6px repeat(3, minmax(0, 1fr)); gap: 4px; }
    html.portal-root body.auth-body .creative-form .otp-row .otp-box { width: 100%; min-width: 0; height: 44px; padding-inline: 0; font-size: 1rem; }
}
/* A compact final hiring action and a footer with room for every link. */
html.portal-root body.portal-landing .landing-employers { padding-block: 2rem; background: #3154ed; }
html.portal-root body.portal-landing .landing-employers h2 { font-size: 1.25rem; font-weight: 600; letter-spacing: normal; line-height: 1.4; margin-bottom: 0.375rem; }
html.portal-root body.portal-landing .landing-employers p { font-size: 0.9375rem; line-height: 1.6; color: #f0f4ff; }
html.portal-root body.portal-landing .landing-employers__inner > div { min-width: 0; }
html.portal-root body.portal-landing .landing-employers .btn { min-height: 44px; padding-inline: 1.25rem; }
html.portal-root body.portal-landing .landing-footer { padding-block: 1.5rem; }
html.portal-root body.portal-landing .landing-footer__bottom { border-top: 0; padding-top: 0; flex-wrap: wrap; gap: 1rem 2rem; }
html.portal-root body.portal-landing .landing-footer__bottom > span { flex-shrink: 0; font-size: 0.875rem; }
html.portal-root body.portal-landing .landing-footer__bottom nav { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; align-items: center; }
html.portal-root body.portal-landing .landing-footer__bottom nav a { min-height: 44px; font-size: 0.875rem; color: #cbd5e1; }
html.portal-root body.portal-landing .landing-footer__bottom nav a:hover { color: #fff; }
html.portal-root body.portal-landing .landing-footer__bottom nav .portal-app-download-link { color: #2444c9; }
@media (max-width: 767.98px) {
    html.portal-root body.portal-landing .landing-employers { padding-block: 1.5rem; }
    html.portal-root body.portal-landing .landing-employers__inner { gap: 1rem; }
    html.portal-root body.portal-landing .landing-footer__bottom { align-items: flex-start; flex-direction: column; gap: 0.75rem; }
    html.portal-root body.portal-landing .landing-footer__bottom nav { width: 100%; gap: 0.375rem 1rem; }
}
/* Public job previews: compact, consistent typography with pay as the main detail. */
html.portal-root body.portal-landing .landing-featured { background: #fff; padding-block: 2.5rem; }
html.portal-root body.portal-landing .landing-featured .landing-section__heading { margin-bottom: 1.25rem; align-items: center; flex-wrap: wrap; gap: 0.75rem; }
html.portal-root body.portal-landing .landing-featured .landing-section__heading h2 { margin: 0; }
html.portal-root body .landing-job-card { --job-card-padding: 1rem; min-width: 0; min-height: 0; padding: var(--job-card-padding); border-color: #dce3ed; background: #fff; box-shadow: 0 2px 6px rgb(23 35 63 / 4%); transition: border-color 160ms ease, box-shadow 160ms ease; }
html.portal-root body .landing-job-card__header { margin: calc(-1 * var(--job-card-padding)) calc(-1 * var(--job-card-padding)) 0; padding: 0.75rem var(--job-card-padding); background: #f4f7fc; border-bottom: 1px solid #e8edf5; border-radius: inherit; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
html.portal-root body .landing-job-grid { align-items: stretch; }
html.portal-root body .public-job-card-facts > .public-job-card-facts__meta { display: block; margin-top: 0.375rem; margin-bottom: 0; }
html.portal-root body .public-job-card-facts__meta dd { display: flex; flex-wrap: wrap; align-items: center; gap: 0.375rem 0.75rem; }
html.portal-root body .landing-job-card__type { display: inline-flex; padding: 0.125rem 0.5rem; border: 1px solid #cbd5e1; border-radius: 999px; background: #fff; color: #475569; font-size: 0.75rem; line-height: 1.5; }
html.portal-root body .landing-job-card__deadline { color: #945100; font-size: 0.75rem; line-height: 1.5; font-weight: 500; }
html.portal-root body .landing-job-card__employer .member-rating { min-height: 26px !important; font-size: 0.75rem; }
html.portal-root body .landing-job-card__footer { margin-top: auto; }
html.portal-root body .landing-job-card:hover { transform: none; border-color: #b6c6e5; box-shadow: 0 4px 12px rgb(23 35 63 / 7%); }
html.portal-root body .landing-job-card:focus-within { border-color: #3154ed; }
html.portal-root body .landing-job-card h3 { margin: 0 0 0.375rem; font-size: 1.125rem; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
html.portal-root body .landing-job-card__company { font-size: 0.875rem; color: #52627a; line-height: 1.5; overflow-wrap: anywhere; }
html.portal-root body .public-job-card-facts { margin: 0.625rem 0 0.75rem; font-size: 0.875rem; line-height: 1.5; }
html.portal-root body .public-job-card-facts > div { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 0.5rem; margin-bottom: 0.25rem; }
html.portal-root body .public-job-card-facts dt { color: #52627a; font-weight: 400; }
html.portal-root body .public-job-card-facts dd { font-weight: 400; min-width: 0; }
html.portal-root body .public-job-card-facts__pay { padding-bottom: 0.375rem; margin-bottom: 0.375rem; border-bottom: 1px solid #edf0f5; }
html.portal-root body .public-job-card-facts__pay dd { font-size: 0.875rem; font-weight: 500; color: #263859; }
@media (min-width: 768px) {
    html.portal-root body .public-job-card-facts__pay dd { min-height: 3em; }
}
html.portal-root body .landing-job-card__actions > .btn { min-height: 40px; font-size: 0.875rem; margin-top: auto; }
@media (max-width: 991.98px), (pointer: coarse) {
    html.portal-root body .landing-job-card__actions > .btn { min-height: 44px; }
    html.portal-root body .landing-job-card__employer .member-rating { min-height: 44px !important; }
}
@media (min-width: 768px) and (max-width: 1100px) {
    html.portal-root body.portal-landing .landing-job-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    html.portal-root body.portal-landing .landing-featured { padding-block: 1.75rem; }
    html.portal-root body .landing-job-card { --job-card-padding: 1rem; }
    html.portal-root body .public-job-card-facts { font-size: 0.875rem; }
    html.portal-root body .public-job-card-facts > div { grid-template-columns: 5rem minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
    html.portal-root body .landing-job-card { transition: none; }
}
/* Public pages share a bounded header and keep the footer below short content. */
html.portal-root body.portal-landing .portal-landing__page { display: flex; flex-direction: column; min-height: 100dvh; }
html.portal-root body.portal-landing #main-content { flex: 1; min-width: 0; }
html.portal-root body.portal-landing :is(.landing-shell, .landing-header__inner) { width: calc(100% - 3rem); max-width: 1200px; min-width: 0; margin-inline: auto; }
html.portal-root body.portal-landing .landing-header__inner { gap: 1rem; flex-wrap: wrap; padding-block: 0.75rem; }
html.portal-root body.portal-landing .landing-header__inner > .portal-brand { min-width: 0; flex: 0 1 190px; max-width: 45%; }
html.portal-root body.portal-landing .landing-header__inner .portal-brand__mark { max-width: 100%; height: auto; max-height: 38px; object-fit: contain; }
html.portal-root body.portal-landing .landing-header__actions { min-width: 0; margin-left: auto; gap: 0.75rem; flex-wrap: wrap; justify-content: flex-end; }
html.portal-root body.portal-landing .landing-header__actions .portal-language { margin: 0; flex-shrink: 0; }
html.portal-root body.portal-landing .public-discovery-search { --kf-btn-height: var(--kf-input-height); box-shadow: 0 4px 18px rgb(23 35 63 / 7%); }
html.portal-root body.portal-landing .public-discovery-field > label,
html.portal-root body.portal-landing .public-discovery-label-row { min-height: 32px; margin-bottom: 0.5rem; display: flex; align-items: center; }
html.portal-root body.portal-landing .public-discovery-label-row { justify-content: space-between; flex-wrap: wrap; gap: 0.25rem 0.5rem; }
html.portal-root body.portal-landing .public-discovery-label-row > label { margin: 0; }
html.portal-root body.portal-landing .public-discovery-field label { font-size: 1rem; font-weight: 600; line-height: 24px; }
html.portal-root body.portal-landing .public-discovery-label-row .public-nearby-button { --kf-btn-height: 32px; min-height: 32px; margin: 0; padding: 0.25rem 0.5rem; font-size: 0.8125rem; }
html.portal-root body.portal-landing .public-discovery-search .landing-search__submit { min-height: var(--kf-input-height); align-self: start; margin-top: 40px; }
html.portal-root body.portal-landing .public-location-status:empty { display: none; }
html.portal-root body.portal-landing .landing-footer { margin-top: auto; }
@media (max-width: 991.98px) {
    html.portal-root body.portal-landing .public-discovery-search .landing-search__submit { margin-top: 40px; }
}
@media (max-width: 575.98px) {
    html.portal-root body.portal-landing :is(.landing-shell, .landing-header__inner) { width: calc(100% - 2rem); }
    html.portal-root body.portal-landing .landing-header__inner { gap: 0.5rem; }
    html.portal-root body.portal-landing .landing-header__inner > .portal-brand { flex-basis: 135px; }
    html.portal-root body.portal-landing .landing-header__actions { gap: 0.375rem; }
    html.portal-root body.portal-landing .public-discovery-search .landing-search__submit { margin-top: 0; width: 100%; }
    html.portal-root body.portal-landing .public-discovery-label-row .public-nearby-button { --kf-btn-height: 44px; min-height: 44px; }
}
html.portal-root {
    --kf-ui-scale: 100%;
    --kf-body-weight: 400;
    --kf-primary: #3154ed;
    --kf-primary-hover: #2444c9;
    --kf-primary-active: #1d38ab;
    --kf-bg: #f5f7fb;
    --kf-surface: #fff;
    --kf-border: #cbd5e1;
    --kf-text: #17233f;
    --kf-muted: #475569;
    --kf-placeholder: #64748b;
    --kf-hover: #edf2ff;
    --kf-focus-ring: 0 0 0 3px rgb(49 84 237 / 22%);
    --kf-radius: 10px;
    --kf-button-radius: 30px;
    --kf-btn-height: 38px;
    --kf-input-height: 48px;
    --kf-input-padding-y: 0.65rem;
    --kf-shadow: 0 2px 8px rgb(23 35 63 / 6%);
}

html.portal-root .theme-dark {
    color-scheme: dark;
    --kf-bg: #141414;
    --kf-surface: #1b1b1b;
    --kf-border: #454545;
    --kf-text: #f5f5f5;
    --kf-muted: #c7c7c7;
    --kf-placeholder: #aaaaaa;
    --kf-hover: #2c2c2c;
    --kf-shadow: 0 2px 8px rgb(0 0 0 / 20%);
}

html.portal-root body.theme-dark :is(.dashboard-hero, .portal-empty-state--hero, .portal-empty-state--panel, .portal-empty-state--inline, .portal-profile-card, .portal-profile-form-card, .profile-section, .portal-profile-menu, .portal-mobile-search, .job-filter-card, .job-card, .portal-metric-card, .application-detail-modal__hero, .application-detail-modal__field) { background: var(--kf-surface); border-color: var(--kf-border); }
html.portal-root body.theme-dark :is(.portal-profile-trigger, .quick-pill, .journey-pill, .tab-pill, .trade-chip, .chip-button, .input-shell, .theme-switcher-modern) { background: var(--kf-surface); border-color: var(--kf-border); }
html.portal-root body.theme-dark :is(.portal-profile-trigger, .quick-pill, .journey-pill, .tab-pill, .trade-chip, .chip-button):hover { background: var(--kf-hover); }

html.portal-root body { background: var(--kf-bg); color: var(--kf-text); font-family: var(--kf-font); font-size: 1rem; font-weight: var(--kf-body-weight); line-height: 1.5; }
html.portal-root :is(h1, .hero-title, .portal-page-title) { font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 700; line-height: 1.25; }
html.portal-root :is(h2, .portal-section-title) { font-size: 1.25rem; font-weight: 600; line-height: 1.35; }
html.portal-root :is(h3, h4, h5, h6) { line-height: 1.4; }
html.portal-root :is(.form-label, .public-discovery-field > label) { color: var(--kf-text) !important; font-size: 1rem; font-weight: 600; margin-bottom: 0.5rem; }
html.portal-root :is(.form-text, .kf-form-hint, .auth-hint) { color: var(--kf-muted); font-size: 0.875rem; }

html.portal-root body :is(.btn, .glass-button, .kf-search-bar__submit) {
    min-height: var(--kf-btn-height); border-radius: var(--kf-button-radius); font-size: 1rem;
    font-weight: 600; line-height: 1.4; padding: 0.4rem 1rem;
}
html.portal-root body :is(.btn-primary, .landing-search__submit, .kf-search-bar__submit) {
    --bs-btn-color: #fff; --bs-btn-bg: var(--kf-primary); --bs-btn-border-color: var(--kf-primary);
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--kf-primary-hover); --bs-btn-hover-border-color: var(--kf-primary-hover);
    --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--kf-primary-active); --bs-btn-active-border-color: var(--kf-primary-active);
    --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: var(--kf-primary); --bs-btn-disabled-border-color: var(--kf-primary);
    background: var(--kf-primary); border-color: var(--kf-primary); color: #fff; box-shadow: none;
}
html.portal-root body :is(.btn-primary, .landing-search__submit, .kf-search-bar__submit):is(:hover, :focus-visible) { background: var(--kf-primary-hover); border-color: var(--kf-primary-hover); color: #fff; }
html.portal-root body :is(.btn-primary, .landing-search__submit, .kf-search-bar__submit):is(:active, .active) { background: var(--kf-primary-active); border-color: var(--kf-primary-active); color: #fff; }
html.portal-root body :is(.btn-outline-primary, .btn-outline-neutral, .btn-outline-light) { background: var(--kf-surface); border-color: var(--kf-border); color: var(--kf-primary); box-shadow: none; }
html.portal-root body :is(.btn-outline-primary, .btn-outline-neutral, .btn-outline-light):is(:hover, :focus-visible, :active, .active) { background: var(--kf-hover); border-color: var(--kf-primary); color: var(--kf-text); }
html.portal-root body :is(.btn, button):disabled { opacity: 0.65; cursor: not-allowed; }
html.portal-root :is(a, button, input, select, textarea):focus-visible { outline: 2px solid var(--kf-primary); outline-offset: 3px; }

html.portal-root body :is(.form-control, .form-select, .glass-input, .glass-select, .enhanced-select__trigger, .kf-multiselect-trigger, .ts-control),
html.portal-root body .ts-wrapper .ts-control {
    min-height: var(--kf-input-height); height: auto; border: 1px solid var(--kf-border);
    border-radius: var(--kf-radius); background-color: var(--kf-surface); color: var(--kf-text);
    padding: 0.65rem 0.85rem; font: inherit; font-size: 1rem; line-height: 1.5; box-shadow: none;
}
html.portal-root body .form-select:not([multiple]) { padding-right: 2.5rem; }
/* Keep open, focused, and selected dropdowns on the same dark surface. */
html.portal-root body.theme-dark :is(select, .form-select, .glass-select, .enhanced-select__trigger, .kf-multiselect-trigger, .ts-control),
html.portal-root body.theme-dark .ts-wrapper .ts-control {
    background-color: var(--kf-surface); color: var(--kf-text); border-color: var(--kf-border); color-scheme: dark;
}
html.portal-root body.theme-dark :is(.enhanced-select__trigger, .kf-multiselect-trigger):is(:hover, :focus, :active, [aria-expanded="true"]) { background: var(--kf-surface); color: var(--kf-text); }
html.portal-root body.theme-dark :is(.enhanced-select__trigger, .kf-multiselect-trigger) > span { color: inherit; }
html.portal-root body.theme-dark :is(.enhanced-select__trigger.is-placeholder > span:first-child, .kf-multiselect-placeholder) { color: var(--kf-placeholder); }
html.portal-root body.theme-dark :is(select option, select optgroup, .enhanced-select__list, .kf-multiselect-panel, .ts-dropdown) { background-color: var(--kf-surface); color: var(--kf-text); }
html.portal-root body.theme-dark :is(.enhanced-select__option, .kf-multiselect-item, .ts-dropdown .option):is(:hover, .is-active, .is-selected, .active, .selected) { background: var(--kf-hover); color: var(--kf-text); }
html.portal-root body.theme-dark :is(select, .enhanced-select__trigger, .kf-multiselect-trigger):disabled,
html.portal-root body.theme-dark :is(.enhanced-select__option, .kf-multiselect-item, .ts-dropdown .option)[aria-disabled="true"] { color: var(--kf-muted); }
html.portal-root body :is(.form-control, .form-select, .glass-input, .glass-select, .enhanced-select__trigger, .kf-multiselect-trigger):focus,
html.portal-root body .ts-wrapper.focus .ts-control { border-color: var(--kf-primary); box-shadow: var(--kf-focus-ring); }
html.portal-root body :is(.form-control, .form-select):disabled { background-color: var(--kf-bg); color: var(--kf-muted); opacity: 1; cursor: not-allowed; }
html.portal-root body :is(.form-control, .form-select).is-invalid,
html.portal-root body :is(input, select, textarea)[aria-invalid="true"],
html.portal-root body .kf-multiselect.is-invalid .kf-multiselect-trigger { border-color: #b42318; }
html.portal-root body :is(.invalid-feedback, .kf-multiselect-error, .kf-field-error) { color: #b42318; font-size: 0.875rem; }
html.portal-root body.theme-dark :is(.invalid-feedback, .kf-multiselect-error, .kf-field-error) { color: #ffb4ab; }
html.portal-root body .select-field { height: auto; min-height: var(--kf-input-height); background: transparent; border: 0; padding: 0; box-shadow: none; }
html.portal-root body .ts-wrapper { min-width: 0; width: 100%; }
html.portal-root body .ts-wrapper:is(.form-control, .form-select) { padding: 0; border: 0; background: none; box-shadow: none; }
html.portal-root body .ts-control { gap: 0.35rem; align-items: center; }
html.portal-root body .ts-wrapper.has-items .ts-control { padding-block: var(--kf-input-padding-y); }
html.portal-root body .ts-control > input { font: inherit; color: var(--kf-text); min-width: 4rem; }
html.portal-root body .ts-control > .item { background: var(--kf-hover); color: var(--kf-text); border: 1px solid var(--kf-border); border-radius: 6px; margin: 0; padding: 0.2rem 0.45rem; white-space: normal; overflow-wrap: anywhere; }
html.portal-root body .ts-control > .item .remove { color: var(--kf-muted); border-left: 1px solid var(--kf-border); padding-inline: 0.4rem; font-size: 1.2rem; }
html.portal-root body .ts-control > .item .remove:hover { background: var(--kf-border); color: var(--kf-text); }
html.portal-root body .ts-wrapper.single .ts-control > .item { border: 0; padding: 0; background: none; }
html.portal-root body .ts-wrapper.is-invalid .ts-control { border-color: #b42318; }
html.portal-root body :is(.ts-dropdown, .enhanced-select__list, .kf-multiselect-panel) { background: var(--kf-surface); color: var(--kf-text); border: 1px solid var(--kf-border); border-radius: var(--kf-radius); box-shadow: 0 8px 24px rgb(23 35 63 / 15%); font: inherit; }
html.portal-root body .ts-dropdown { z-index: 1220; }
html.portal-root body :is(.ts-dropdown .option, .enhanced-select__option, .kf-multiselect-item) { min-height: 44px; padding: 0.65rem 0.85rem; font-size: 1rem; color: var(--kf-text); }
html.portal-root body :is(.ts-dropdown .active, .ts-dropdown .selected, .enhanced-select__option.is-selected, .enhanced-select__option.is-active, .kf-multiselect-item.is-selected, .kf-multiselect-item.is-active) { background: var(--kf-hover); color: var(--kf-text); }
html.portal-root body :is(.glass-card, .portal-section-card, .landing-job-card, .public-job-facts, .public-job-apply-card, .modal-content, .portal-quick-nav) { background: var(--kf-surface); color: var(--kf-text); border-color: var(--kf-border); border-radius: var(--kf-radius); box-shadow: var(--kf-shadow); }
html.portal-root body :is(.landing-header, .portal-topbar) { background: var(--kf-surface); border-color: var(--kf-border); color: var(--kf-text); }
html.portal-root body .quick-link { min-height: 48px; font-size: 1rem; }
html.portal-root body .quick-link.active { background: var(--kf-hover); color: var(--kf-primary); }
html.portal-root body :is(.progress-bar, .profile-progress-bar) { background-color: var(--kf-primary); }
html.portal-root body .kf-search-bar { border-radius: var(--kf-radius); border-color: var(--kf-border); background: var(--kf-surface); min-height: 48px; }
html.portal-root body .kf-search-bar__input { font: inherit; color: var(--kf-text); }
html.portal-root body .portal-language { display: inline-flex; flex-wrap: nowrap; align-items: stretch; gap: 2px; box-sizing: border-box; min-height: var(--kf-btn-height); padding: 3px; margin: 0; max-width: 100%; border: 1px solid var(--kf-border); border-radius: 999px; background: var(--kf-surface); }
html.portal-root body .portal-language button { flex: 1 1 auto; box-sizing: border-box; min-height: calc(var(--kf-btn-height) - 8px); padding: 0 0.75rem; border: 0; border-radius: 999px; background: transparent; color: var(--kf-text); font: inherit; font-weight: 600; line-height: 1.25; white-space: nowrap; }
html.portal-root body .portal-profile-trigger { box-sizing: border-box; min-height: var(--kf-btn-height); padding-block: 3px; }
html.portal-root body .portal-language button:hover { background: var(--kf-hover); }
html.portal-root body .portal-language button[aria-pressed="true"] { background: var(--kf-primary); color: #fff; }
html.portal-root body .portal-language button[aria-pressed="true"]:hover { background: var(--kf-primary-hover); color: #fff; }
html.portal-root body .portal-language button:focus-visible { outline-offset: 1px; position: relative; z-index: 1; }

@media (max-width: 575.98px) {
    html.portal-root body .portal-main { min-width: 0; }
    html.portal-root body .kf-search-bar--topbar .kf-search-bar__submit { padding-inline: 0.75rem; }
    html.portal-root body :is(.btn, .ts-control, .form-control, .form-select) { max-width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    html.portal-root *, html.portal-root *::before, html.portal-root *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}

/* Content-sized lists and neutral profile sections. */
html.portal-root body .portal-main { width: 100%; max-width: 100%; min-width: 0; margin-inline: 0; }
html.portal-root body :is(.portal-table-panel, .portal-section-card:has(.surface-table)) { min-height: 0; flex: 0 0 auto; }
html.portal-root body .portal-table-panel .applications-table-wrap { min-height: 0; flex: 0 0 auto; overflow-x: auto; }
html.portal-root body .portal-empty-state { min-height: 220px; padding-block: 1.5rem; }
html.portal-root body :is(.profile-section, .multi-select-wrapper) { background: var(--kf-surface); border: 1px solid var(--kf-border); border-radius: var(--kf-radius); }
html.portal-root body .profile-sidebar-card { height: auto; min-height: 0; }
html.portal-root body .portal-profile-menu__link, html.portal-root body .portal-profile-menu__logout { min-height: 48px; font-size: 1rem; }
@media (max-width: 767.98px) {
    html.portal-root body .portal-data-table { display: block; table-layout: auto; width: 100%; }
    html.portal-root body .portal-data-table :is(colgroup, thead) { display: none; }
    html.portal-root body .portal-data-table tbody { display: grid; gap: 1rem; }
    html.portal-root body .portal-data-table tr { display: grid; gap: 0.25rem; box-sizing: border-box; border: 1px solid var(--kf-border); border-radius: var(--kf-radius); padding: 0.5rem; }
    html.portal-root body .portal-data-table td { display: block; box-sizing: border-box; width: 100%; min-width: 0; padding: 0.5rem 0.75rem !important; border: 0; text-align: left !important; white-space: normal; overflow-wrap: anywhere; }
    html.portal-root body .portal-data-table td::before { content: attr(data-label); display: block; margin-bottom: 0.25rem; color: var(--kf-muted); font-size: 0.875rem; font-weight: 600; }
    html.portal-root body .portal-data-table .portal-data-table__num-cell { display: none; }
    html.portal-root body .portal-table-actions { justify-content: flex-start !important; flex-wrap: wrap; gap: 0.5rem; }
    html.portal-root body .portal-table-actions__text-full { display: inline; }
    html.portal-root body .portal-table-actions__icon-mobile { display: none; }
    html.portal-root body .portal-profile-page .profile-sidebar-col { order: 2; }
}

html.portal-root body :is(.dashboard-quick-browse__chips, .trade-chip-row) { width: 100%; min-width: 0; flex-wrap: wrap; }
@media (max-width: 767.98px) {
    html.portal-root body .portal-data-table { min-width: 0 !important; max-width: 100%; }
    html.portal-root body .portal-data-table :is(tbody, tr) { width: 100%; min-width: 0; grid-template-columns: minmax(0, 1fr); }
    html.portal-root body .portal-data-table td { max-width: none !important; }
    html.portal-root body .portal-data-table .portal-table-actions { width: 100%; max-width: 100%; margin-left: 0; }
    html.portal-root body .portal-data-table .portal-table-actions .btn { width: auto; min-width: 48px; max-width: 100%; padding-inline: 0.75rem; }
    html.portal-root body .portal-data-table .portal-table-actions form { flex-wrap: wrap; max-width: 100%; }
    html.portal-root body .portal-data-table .portal-table-actions .application-form .kf-dropdown-wrap--status { width: 100% !important; min-width: 0 !important; max-width: 100% !important; }
    html.portal-root body .portal-data-table .portal-table-actions__text-short,
    html.portal-root body .portal-data-table .applications-table__status-cell.d-md-none { display: none; }
}

html.portal-root body .portal-table-actions { flex-wrap: wrap; max-width: 100%; }
html.portal-root body .portal-table-actions > * { max-width: 100%; }
html.portal-root body .portal-table-actions .btn { white-space: normal; }
html.portal-root body .portal-data-table .portal-table-actions { gap: 0.5rem; min-width: 0; }
html.portal-root body .portal-data-table .portal-table-actions form { flex: 0 1 auto; flex-wrap: wrap; min-width: 0; max-width: 100%; }
html.portal-root body .portal-data-table .portal-table-actions .btn { flex: 0 0 auto; width: auto; max-width: 100%; word-break: normal; overflow-wrap: normal; }

html.portal-root body .portal-table-actions .ts-control,
html.portal-root body .portal-table-actions .enhanced-select__trigger { font-size: 1rem !important; min-height: var(--kf-btn-height); }

/* Account deletion stays separate from the profile save action. */
html.portal-root body .account-danger-section {
    margin-top: 1.5rem;
    padding: clamp(1rem, 3vw, 1.5rem);
    background: var(--kf-surface);
    border: 1px solid var(--kf-border);
    border-radius: var(--kf-radius);
    scroll-margin-top: calc(var(--portal-topbar-height, 80px) + 1rem);
}
html.portal-root body .portal-account-danger__heading { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem; }
html.portal-root body .portal-account-danger__icon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 2rem; width: 2rem; height: 2rem; color: var(--kf-danger, #b42318); font-size: 1.25rem; }
html.portal-root body .portal-account-danger__description { margin: 0 0 1.25rem; color: var(--kf-muted); font-size: 1rem; line-height: 1.55; overflow-wrap: anywhere; }
html.portal-root body .portal-account-danger__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
html.portal-root body.theme-dark .portal-account-danger__icon { color: #ffb4ab; }

/* Desktop density preserves readable text and mobile touch targets. */
html.portal-root body .portal-profile-form-card h4 { font-size: 1.5rem; font-weight: 600; line-height: 1.3; }
html.portal-root body .profile-section-title { font-size: 1.25rem; font-weight: 600; }
html.portal-root body .profile-section-description { font-size: 0.875rem; line-height: 1.5; }
@media (min-width: 992px) and (pointer: fine) {
    html.portal-root { --kf-btn-height: 38px; --kf-input-height: 44px; --kf-input-padding-y: 0.5rem; --portal-nav-width: 260px; --portal-topbar-height: 64px; }
    html.portal-root.portal-nav-collapsed { --portal-nav-width: var(--portal-nav-rail, 72px); }
    html.portal-root body :is(.form-control, .form-select, .glass-input, .glass-select, .enhanced-select__trigger, .kf-multiselect-trigger, .ts-control),
    html.portal-root body .ts-wrapper .ts-control { padding-block: 0.5rem; }
    html.portal-root body :is(.btn, .glass-button, .kf-search-bar__submit) { padding-block: 0.5rem; }
    html.portal-root body .portal-topbar { padding-block: 0.375rem; }
    html.portal-root body .portal-topbar .portal-brand { --kf-brand-height: 30px; }
    html.portal-root body .quick-link { min-height: 44px; }
    html.portal-root body .portal-profile-page .profile-avatar-lg--compact { width: 48px; height: 48px; font-size: 1.5rem; }
    html.portal-root body .profile-form-icon { width: 40px; height: 40px; font-size: 1.25rem; }
    html.portal-root body .profile-section-icon { width: 32px; height: 32px; font-size: 1.125rem; }
}

/* Rounded controls are limited to the account header. */
html.portal-root body .portal-topbar :is(.kf-search-bar, .kf-search-bar__submit, .portal-language button, .portal-profile-trigger) { border-radius: 999px; }
@media (min-width: 992px) and (pointer: fine) {
    html.portal-root body .portal-topbar .kf-search-bar__submit { min-height: 40px; padding-block: 0.375rem; }
}

/* Allow dashboard content to shrink when browser zoom reduces the viewport. */
html.portal-root body .portal-main :is(.portal-stack, .hero-copy, .hero-side) { min-width: 0; }
html.portal-root body .portal-main :is(.hero-title, .portal-page-title, .portal-section-title) { overflow-wrap: anywhere; }

/* Embedded search buttons fit inside the shared field height. */
html.portal-root body .kf-search-bar { min-height: var(--kf-input-height); padding-block: 3px; }
html.portal-root body .kf-search-bar:focus-within { border-color: var(--kf-primary); box-shadow: var(--kf-focus-ring); }
html.portal-root body .kf-search-bar .kf-search-bar__input { border: 0; background: transparent; padding: 0; min-height: 0; }
html.portal-root body .kf-search-bar .kf-search-bar__input:is(:focus, :focus-visible) { outline: none; box-shadow: none; }
html.portal-root body .kf-search-bar .kf-search-bar__submit { box-sizing: border-box; min-height: calc(var(--kf-input-height) - 8px); padding-block: 0; }

/* Nested location pickers own their border rather than the legacy wrapper. */
html.portal-root body .select-field .kf-multiselect-trigger { height: auto; min-height: var(--kf-input-height); border: 1px solid var(--kf-border); background: var(--kf-surface); padding: 0.5rem 2.5rem 0.5rem 0.85rem; border-radius: var(--kf-radius); }
html.portal-root body .select-field .kf-multiselect-trigger::after { right: 0.85rem; }
html.portal-root body .select-field .kf-multiselect-trigger:hover { border-color: var(--kf-primary); }
html.portal-root body .select-field:focus-within .kf-multiselect-trigger { border-color: var(--kf-primary); box-shadow: var(--kf-focus-ring); }
html.portal-root body .select-field .kf-multiselect.is-invalid .kf-multiselect-trigger { border-color: #b42318; }

/* Keep dropdown labels and arrows vertically centered, including table controls. */
html.portal-root body :is(.enhanced-select__trigger, .kf-multiselect-trigger) { display: flex; align-items: center; box-sizing: border-box; }
html.portal-root body .enhanced-select__trigger > span:first-child { margin-block: 0; line-height: 1.25; }
html.portal-root body .portal-data-table .portal-table-actions .application-form .enhanced-select__trigger { height: auto; min-height: var(--kf-input-height); padding-block: 0.5rem; align-items: center; line-height: 1.25; }
html.portal-root body .portal-data-table .portal-table-actions .application-form .enhanced-select__trigger > span:first-child { font-size: 1rem; line-height: 1.25; }

@media (max-width: 767.98px) {
    /* Replace legacy compact table actions with readable mobile controls. */
    html.portal-root body .portal-data-table .portal-table-actions .portal-table-actions__text-full { display: inline; }
    html.portal-root body .portal-data-table .portal-table-actions .portal-table-actions__text-short,
    html.portal-root body .portal-data-table .portal-table-actions .btn:has(.portal-table-actions__text-full) .portal-table-actions__icon-mobile { display: none; }
    html.portal-root body .portal-data-table .portal-table-actions .btn { height: auto; min-height: var(--kf-btn-height); font-size: 1rem; line-height: 1.25; padding: 0.5rem 0.75rem; }
    html.portal-root body .portal-data-table .portal-table-actions > .btn,
    html.portal-root body .portal-data-table .portal-table-actions > form:not(.application-form),
    html.portal-root body .portal-data-table .portal-table-actions > form:not(.application-form) > .btn { width: 100%; }
    html.portal-root body .portal-data-table .portal-table-actions:has(.application-form) { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
    html.portal-root body .portal-data-table .portal-table-actions .application-form { display: grid !important; grid-template-columns: minmax(0, 1fr) auto; align-items: center; width: 100%; min-width: 0; max-width: 100%; gap: 0.5rem; }
    html.portal-root body .portal-data-table .portal-table-actions:has(.application-form) > .btn { width: 100%; }
}

html.portal-root body .portal-app-download-link { max-width: 100%; gap: 0.5rem; white-space: normal; overflow-wrap: anywhere; }
html.portal-root body .portal-quick-nav .portal-app-download-link { gap: var(--portal-nav-link-gap); }
html.portal-root body .portal-app-download-link[aria-disabled="true"] { color: var(--kf-muted); cursor: default; }
html.portal-root body .avatar-pill.avatar-initial { border-radius: 30px; }
html.portal-root body .auth-language { display: flex; justify-content: flex-end; padding: 0; margin-bottom: 0.5rem; }
html.portal-root body .auth-language .portal-language { --kf-btn-height: 36px; font-size: 0.875rem; }
@media (max-width: 575.98px) {
    html.portal-root body .auth-language .portal-language { --kf-btn-height: 38px; }
}
html.portal-root body .kf-flatpickr.flatpickr-calendar { background: var(--kf-surface); color: var(--kf-text); border: 1px solid var(--kf-border); border-radius: 12px; box-shadow: 0 8px 28px rgb(0 0 0 / 16%); font-family: inherit; }
html.portal-root body .kf-flatpickr .flatpickr-months,
html.portal-root body .kf-flatpickr .flatpickr-innerContainer,
html.portal-root body .kf-flatpickr .flatpickr-month,
html.portal-root body .kf-flatpickr .flatpickr-current-month,
html.portal-root body .kf-flatpickr .flatpickr-monthDropdown-months { background: var(--kf-surface); color: var(--kf-text); }
html.portal-root body .kf-flatpickr .flatpickr-weekday { color: var(--kf-muted); }
html.portal-root body .kf-flatpickr .flatpickr-day { color: var(--kf-text); border-radius: 10px; }
html.portal-root body .kf-flatpickr .flatpickr-day:hover,
html.portal-root body .kf-flatpickr .flatpickr-day:focus { background: var(--kf-hover); border-color: var(--kf-border); }
html.portal-root body .kf-flatpickr .flatpickr-day.selected,
html.portal-root body .kf-flatpickr .flatpickr-day.selected:hover { background: var(--kf-primary); border-color: var(--kf-primary); color: #fff; }
html.portal-root body .kf-flatpickr .flatpickr-day.today { border-color: var(--kf-primary); }
html.portal-root body .kf-flatpickr .flatpickr-day.flatpickr-disabled,
html.portal-root body .kf-flatpickr .flatpickr-day.prevMonthDay,
html.portal-root body .kf-flatpickr .flatpickr-day.nextMonthDay { color: var(--kf-muted); opacity: 0.5; }
html.portal-root body .kf-flatpickr .flatpickr-prev-month,
html.portal-root body .kf-flatpickr .flatpickr-next-month { color: var(--kf-text); fill: var(--kf-text); }
html.portal-root body button[data-verification-tooltip] { font: inherit; cursor: help; }
html.portal-root body button[data-verification-tooltip]:focus-visible { outline: 2px solid var(--kf-primary); outline-offset: 2px; }
html.portal-root body .kf-verification-tooltip { position: fixed; z-index: 1090; max-width: min(320px, calc(100vw - 24px)); padding: 0.75rem; border: 1px solid var(--kf-border); border-radius: 10px; background: var(--kf-surface); color: var(--kf-text); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18); white-space: pre-line; font-size: 0.875rem; line-height: 1.5; overflow-wrap: anywhere; }
html.portal-root body .portal-app-prompt { display: flex; align-items: center; flex-wrap: wrap; gap: 0.75rem; padding: 0.75rem; margin-bottom: 1rem; background: var(--kf-surface); color: var(--kf-text); border: 1px solid var(--kf-border); border-radius: var(--kf-radius); }
html.portal-root body .portal-app-prompt[hidden] { display: none; }
html.portal-root body .portal-app-prompt__message { display: flex; align-items: center; gap: 0.75rem; flex: 1 1 16rem; min-width: 0; overflow-wrap: anywhere; }
html.portal-root body .portal-app-prompt__message > i { color: var(--kf-primary); }
html.portal-root body .portal-app-prompt p { margin: 0.25rem 0 0; color: var(--kf-muted); }
html.portal-root body .portal-app-prompt .btn { max-width: 100%; white-space: normal; }
html.portal-root body .portal-app-prompt__close { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex-shrink: 0; border: 0; border-radius: 30px; background: transparent; color: var(--kf-muted); }
html.portal-root body .portal-app-prompt__close:hover { background: var(--kf-border); color: var(--kf-text); }
html.portal-root body .portal-app-prompt__close:focus-visible { outline: 2px solid var(--kf-primary); outline-offset: 2px; }
@media (max-width: 575.98px) {
    html.portal-root body .portal-app-prompt__message { flex-basis: calc(100% - 60px); }
    html.portal-root body .portal-app-prompt__close { order: 1; width: 48px; height: 48px; }
    html.portal-root body .portal-app-prompt .btn { order: 2; }
}

/* Actions and selectable chips share the compact Quick Browse size. */
html.portal-root body :is(.quick-pill, .kf-selection-chips .btn, .job-filter-chip, .chip-button) {
    box-sizing: border-box;
    min-height: 38px;
    padding-block: 0.4rem;
    display: inline-flex;
    align-items: center;
    border-radius: var(--kf-button-radius);
}
/* Match adjacent field heights only in inline search/filter/action rows. */
html.portal-root body :is(.portal-panel-filter-bar__form, .creator-jobs-filter-bar__form, .admin-filter-bar, .input-group),
html.portal-root body .portal-table-actions .application-form {
    --kf-btn-height: var(--kf-input-height);
}

html.portal-root body :is(.portal-panel-filter-bar__form, .creator-jobs-filter-bar__form, .admin-filter-bar) > .btn,
html.portal-root body .portal-table-actions .application-form > .btn,
html.portal-root body .input-group > .btn {
    box-sizing: border-box;
    min-height: var(--kf-input-height);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
/* Dashboard filter actions match their adjacent filter fields. */
html.portal-root body .dashboard-hero-search-actions {
    --kf-btn-height: var(--kf-input-height);
}
html.portal-root body .dashboard-hero-search-actions > .btn {
    box-sizing: border-box;
    min-height: var(--kf-input-height);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* The public homepage, job search and worker dashboard render the same card. */
html.portal-root body .landing-job-card__employer { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.75rem; }
html.portal-root body .landing-job-card__employer .landing-job-card__company { margin: 0; flex: 1 1 90px; min-width: 0; }
html.portal-root body .landing-job-card__company a { color: inherit; text-decoration: none; }
html.portal-root body .landing-job-card__company a:hover { text-decoration: underline; }
html.portal-root body .landing-job-card__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0; }
html.portal-root body .landing-job-card__actions > .btn { flex: 1 1 100px; white-space: normal; }
html.portal-root body.theme-dark .landing-job-card { background: var(--kf-surface); border-color: var(--kf-border); }
html.portal-root body.theme-dark .landing-job-card__header { background: var(--kf-hover); border-color: var(--kf-border); }
html.portal-root body.theme-dark .landing-job-card h3 a,
html.portal-root body.theme-dark .public-job-card-facts dd { color: var(--kf-text); }
html.portal-root body.theme-dark .landing-job-card__company,
html.portal-root body.theme-dark .public-job-card-facts dt { color: var(--kf-muted); }
html.portal-root body.theme-dark .public-job-card-facts__pay { border-color: var(--kf-border); }
html.portal-root body .landing-job-card .member-rating { max-width: 100%; flex-wrap: wrap; }
html.portal-root body.theme-dark .landing-job-card .member-rating { color: var(--kf-muted) !important; }
html.portal-root body.theme-dark .landing-job-card__type { background: var(--kf-surface); color: var(--kf-muted); border-color: var(--kf-border); }
html.portal-root body.theme-dark .landing-job-card__deadline { color: #facc15; }
