/**
 * Theme-agnostic fallback styles, loaded on job views on ANY theme. Token-based
 * and dark-aware (follows the system theme) so the markup looks acceptable
 * everywhere. The companion theme (jobboard-theme) defines the same `jb-*`
 * tokens UNLAYERED, so its design always wins over this @layer.
 */
@layer jobboard {

	:root {
		--jb-bg: #fff;
		--jb-surface: #f7f8fa;
		--jb-surface-2: #eef0f4;
		--jb-text: #14181f;
		--jb-muted: #5b6577;
		--jb-border: rgba(0, 0, 0, .12);
		--jb-primary: #4f46e5;
		--jb-primary-soft: #eef0fe;
		--jb-primary-hover: #4338ca;
		--jb-on-primary: #fff;
		--jb-accent: #f59e0b;
		--jb-success: #16a34a;
		--jb-danger: #dc2626;
		--jb-radius: 14px;
		--jb-radius-sm: 12px;
		--jb-radius-pill: 999px;
		--jb-shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);
		--jb-shadow: 0 8px 24px -12px rgba(0, 0, 0, .25);
		--jb-transition: 160ms ease;
	}
	@media (prefers-color-scheme: dark) {
		:root {
			--jb-bg: #0f1626;
			--jb-surface: #151d30;
			--jb-surface-2: #1b2440;
			--jb-text: #e7ebf4;
			--jb-muted: #97a3bd;
			--jb-border: rgba(255, 255, 255, .12);
			--jb-primary: #818cf8;
			--jb-primary-soft: #1c2440;
			--jb-primary-hover: #a5b4fc;
			--jb-on-primary: #0f1626;
			--jb-accent: #fbbf24;
			--jb-success: #34d399;
			--jb-danger: #f87171;
			--jb-shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);
			--jb-shadow: 0 10px 28px -14px rgba(0, 0, 0, .7);
		}
	}

	.jb-directory__main { min-width: 0; }
	.jb-jobs { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1.1rem; grid-template-columns: 1fr; }
	@media (min-width: 40rem) { .jb-jobs { grid-template-columns: repeat(2, 1fr); } }
	@media (min-width: 64rem) { .jb-jobs { grid-template-columns: repeat(3, 1fr); } }
	@media (min-width: 64rem) {
		.jb-directory--cols { display: grid; align-items: start; grid-template-columns: clamp(15rem, 21vw, 19rem) minmax(0, 1fr); gap: 1.75rem; }
		.jb-directory--cols .jb-directory__aside { position: sticky; top: 5.5rem; }
		.jb-directory--cols .jb-jobs { margin-top: 0; grid-template-columns: repeat(2, 1fr); }
	}

	.jb-job-card { position: relative; display: flex; flex-direction: column; gap: .8rem; padding: 1.3rem; border: 1px solid var(--jb-border); border-radius: var(--jb-radius); background: var(--jb-surface); color: var(--jb-text); box-shadow: var(--jb-shadow-sm); transition: transform var(--jb-transition), box-shadow var(--jb-transition); }
	.jb-job-card:hover, .jb-job-card:focus-within { transform: translateY(-3px); box-shadow: var(--jb-shadow); }
	.jb-job-card__head { display: grid; grid-template-columns: auto 1fr auto; gap: .75rem; align-items: start; }
	.jb-job-card__logo { width: 50px; height: 50px; border-radius: 12px; object-fit: contain; background: var(--jb-bg); border: 1px solid var(--jb-border); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; color: var(--jb-primary); }
	.jb-job-card__title { margin: 0; font-size: 1.12rem; line-height: 1.3; font-weight: 700; }
	.jb-job-card__title a { text-decoration: none; color: inherit; }
	.jb-job-card__title a::after { content: ""; position: absolute; inset: 0; }
	.jb-job-card__company { margin: .15rem 0 0; color: var(--jb-muted); font-size: .9rem; }
	.jb-job-card__footer { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: auto; padding-top: .5rem; }
	.jb-job-card__footer .jb-save { margin-left: auto; }

	.jb-meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
	.jb-pill, .jb-chip { display: inline-flex; align-items: center; gap: .35em; font-size: .8rem; padding: .22rem .65rem; border-radius: var(--jb-radius-pill); background: var(--jb-surface-2); color: var(--jb-text); border: 1px solid transparent; white-space: nowrap; }
	.jb-pill--salary { font-weight: 700; color: var(--jb-success); }
	.jb-pill--workmode { color: var(--jb-primary); background: var(--jb-primary-soft); }
	.jb-chip { text-decoration: none; position: relative; z-index: 1; }
	.jb-chip--featured { background: color-mix(in srgb, var(--jb-accent) 18%, var(--jb-bg)); font-weight: 700; }
	.jb-chip--more { background: transparent; border-color: var(--jb-border); color: var(--jb-muted); }

	.jb-filters { display: grid; gap: .75rem; padding: 1rem; border-radius: var(--jb-radius); background: var(--jb-surface); border: 1px solid var(--jb-border); }
	.jb-filters__search { display: flex; gap: .5rem; flex-wrap: wrap; }
	.jb-filters__input { flex: 1; min-width: 0; min-height: 46px; padding: .5rem .9rem; border: 1px solid var(--jb-border); border-radius: var(--jb-radius-sm); background: var(--jb-bg); color: var(--jb-text); }
	.jb-filters__submit { min-height: 46px; }
	.jb-filters__more > summary { cursor: pointer; list-style: none; min-height: 44px; display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; color: var(--jb-primary); }
	.jb-filters__more > summary::-webkit-details-marker { display: none; }
	.jb-filters__fields { display: grid; gap: .75rem; margin-top: .75rem; grid-template-columns: 1fr; }
	.jb-field { display: grid; gap: .25rem; }
	.jb-field__label { font-size: .8rem; color: var(--jb-muted); }
	.jb-field select { min-height: 44px; padding: .35rem .5rem; border: 1px solid var(--jb-border); border-radius: var(--jb-radius-sm); background: var(--jb-bg); color: var(--jb-text); width: 100%; }
	.jb-filters__actions { display: flex; gap: .75rem; align-items: center; }
	@media (min-width: 48rem) { .jb-filters__toggle { display: none; } .jb-filters__more .jb-filters__fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); align-items: end; } }
	@media (min-width: 64rem) {
		.jb-directory--cols .jb-filters__search { flex-direction: column; align-items: stretch; }
		.jb-directory--cols .jb-filters__submit { width: 100%; }
		.jb-directory--cols .jb-filters__more .jb-filters__fields { grid-template-columns: 1fr; }
		.jb-directory--cols .jb-filters__actions { flex-direction: column; align-items: stretch; }
		.jb-directory--cols .jb-filters__actions .wp-element-button { width: 100%; }
		.jb-directory--cols .jb-filters__reset { display: block; text-align: center; }
	}

	.jb-toolbar { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; justify-content: space-between; margin-bottom: 1rem; color: var(--jb-text); }
	.jb-toolbar__count { margin: 0; color: var(--jb-muted); }
	.jb-toolbar__chips { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; }
	.jb-chip--removable { cursor: pointer; }
	.jb-toolbar__sort select { min-height: 40px; border: 1px solid var(--jb-border); border-radius: var(--jb-radius-sm); background: var(--jb-bg); color: var(--jb-text); padding: 0 .5rem; }

	.jb-breadcrumbs { margin: 0 0 1rem; font-size: .85rem; color: var(--jb-muted); }
	.jb-breadcrumbs__list { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; }
	.jb-breadcrumbs__item + .jb-breadcrumbs__item::before { content: "›"; opacity: .5; margin-right: .4rem; }
	.jb-breadcrumbs a { text-decoration: none; color: var(--jb-primary); }

	.jb-footcol__title { font-size: .78rem; text-transform: uppercase; letter-spacing: .07em; font-weight: 700; color: var(--jb-muted); margin: 0 0 1rem; }
	.jb-linklist { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
	.jb-linklist__link { color: var(--jb-text); text-decoration: none; font-size: .92rem; }
	.jb-linklist__link:hover { color: var(--jb-primary); }
	.jb-linklist__count { color: var(--jb-muted); font-size: .8rem; margin-left: .35rem; }
	.jb-social { list-style: none; display: flex; flex-wrap: wrap; gap: .55rem; margin: .35rem 0 0; padding: 0; }
	.jb-social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--jb-border); background: var(--jb-bg); color: var(--jb-muted); }
	.jb-social a:hover { color: var(--jb-on-primary); background: var(--jb-primary); border-color: transparent; }
	.jb-social svg { width: 18px; height: 18px; fill: currentColor; }

	.jb-badge { display: inline-flex; align-items: center; font-size: .75rem; font-weight: 600; padding: .2rem .55rem; border-radius: var(--jb-radius-pill); }
	.jb-badge--fresh { background: color-mix(in srgb, var(--jb-success) 14%, var(--jb-bg)); color: var(--jb-success); }
	.jb-badge--urgent { background: color-mix(in srgb, var(--jb-accent) 18%, var(--jb-bg)); color: var(--jb-accent); }
	.jb-badge--closed { background: var(--jb-surface-2); color: var(--jb-muted); }
	.jb-social-proof { font-size: .8rem; color: var(--jb-muted); }
	.jb-hero__badges { display: flex; flex-wrap: wrap; gap: .4rem; margin: .6rem 0; align-items: center; }
	.jb-hero__actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-top: .5rem; }

	.jb-keyfacts { background: var(--jb-surface); border: 1px solid var(--jb-border); border-radius: var(--jb-radius); padding: 1rem 1.25rem; margin: 1.5rem 0; }
	.jb-keyfacts__title { font-size: .95rem; margin: 0 0 .5rem; color: var(--jb-muted); text-transform: uppercase; letter-spacing: .04em; }
	.jb-keyfacts__list { margin: 0; display: grid; gap: .35rem; }
	.jb-keyfacts__row { display: grid; grid-template-columns: 120px 1fr; gap: .5rem; }
	.jb-keyfacts__row dt { font-weight: 600; margin: 0; color: var(--jb-muted); }
	.jb-keyfacts__row dd { margin: 0; }

	.jb-section { margin: 1.6rem 0; }
	.jb-section__title { font-size: 1.2rem; margin: 0 0 .55rem; font-weight: 700; }
	.jb-section__list { margin: 0; padding-left: 1.25rem; display: grid; gap: .35rem; }
	.jb-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
	.jb-facts { margin: 0; display: grid; gap: .35rem; }
	.jb-facts__row { display: grid; grid-template-columns: 120px 1fr; gap: .5rem; }
	.jb-facts__row dt { font-weight: 600; color: var(--jb-muted); }

	.jb-single__layout { display: grid; gap: 2rem; grid-template-columns: 1fr; }
	.jb-hero { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: center; }
	.jb-hero__logo { width: 72px; height: 72px; border-radius: 16px; object-fit: contain; background: var(--jb-bg); border: 1px solid var(--jb-border); }
	.jb-hero__title { margin: 0; font-size: 1.7rem; font-weight: 800; }
	.jb-hero__company { margin: .35rem 0 .6rem; color: var(--jb-muted); }
	.jb-single__content { margin-top: 1.5rem; line-height: 1.7; }
	.jb-single__tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1.5rem; }
	.jb-apply { background: var(--jb-surface); border: 1px solid var(--jb-border); border-radius: var(--jb-radius); padding: 1.3rem; box-shadow: var(--jb-shadow); }
	.jb-apply__btn { display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; min-height: 50px; line-height: 1.2; padding: .6rem 1rem; border-radius: var(--jb-radius-sm); background: var(--jb-primary); color: var(--jb-on-primary); text-decoration: none; font-weight: 700; font-size: 1rem; }
	.jb-apply__btn:hover { background: var(--jb-primary-hover); color: var(--jb-on-primary); }
	.jb-apply__deadline { margin: .75rem 0 0; font-size: .85rem; color: var(--jb-muted); text-align: center; }
	@media (min-width: 56rem) { .jb-single__layout { grid-template-columns: 1fr 20rem; } .jb-single__sidebar { position: sticky; top: 1.5rem; align-self: start; } }

	.jb-save { display: inline-flex; align-items: center; gap: .4rem; min-height: 44px; padding: 0 .9rem; border: 1px solid var(--jb-border); border-radius: var(--jb-radius-sm); background: var(--jb-bg); color: var(--jb-text); cursor: pointer; font-weight: 600; position: relative; z-index: 2; }
	.jb-save.is-saved { border-color: transparent; background: color-mix(in srgb, var(--jb-danger) 12%, var(--jb-bg)); color: var(--jb-danger); }
	.jb-save--icon { padding: 0; width: 44px; justify-content: center; }
	.jb-save--icon .jb-save__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.jb-share { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-top: 1rem; }
	.jb-share__title { font-weight: 600; font-size: .85rem; color: var(--jb-muted); }
	.jb-share__btn { min-height: 40px; display: inline-flex; align-items: center; padding: 0 .8rem; border: 1px solid var(--jb-border); border-radius: var(--jb-radius-sm); background: var(--jb-bg); color: var(--jb-text); text-decoration: none; cursor: pointer; font-size: .85rem; }
	.jb-share__status { font-size: .8rem; color: var(--jb-success); }

	.jb-company { display: flex; gap: .85rem; align-items: center; margin: 2.25rem 0 1rem; padding: 1.1rem 1.25rem; background: var(--jb-surface); border: 1px solid var(--jb-border); border-radius: var(--jb-radius); }
	.jb-company__logo { width: 56px; height: 56px; border-radius: 12px; object-fit: contain; background: var(--jb-bg); border: 1px solid var(--jb-border); }
	.jb-company__name { margin: 0; font-weight: 700; }
	.jb-related { margin-top: 2.5rem; }
	.jb-related__title { font-size: 1.4rem; margin: 0 0 1rem; font-weight: 800; }

	.jb-pagination { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; margin-top: 2rem; }
	.jb-pagination .page-numbers { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 .7rem; border: 1px solid var(--jb-border); border-radius: var(--jb-radius-sm); text-decoration: none; color: var(--jb-text); background: var(--jb-bg); }
	.jb-pagination .current { background: var(--jb-primary); color: var(--jb-on-primary); border-color: transparent; }
	.jb-empty { text-align: center; padding: 3rem 1rem; color: var(--jb-muted); }
	.jb-empty__title { font-weight: 700; font-size: 1.15rem; color: var(--jb-text); }

	.jb-actionbar { display: none; }
	@media (max-width: 47.99rem) {
		.jb-actionbar { display: flex; gap: .5rem; position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; padding: .6rem .8rem; padding-bottom: calc(.6rem + env(safe-area-inset-bottom)); background: var(--jb-bg); border-top: 1px solid var(--jb-border); }
		.jb-actionbar__apply { flex: 1; text-align: center; min-height: 48px; line-height: 48px; border-radius: var(--jb-radius-sm); background: var(--jb-primary); color: var(--jb-on-primary); text-decoration: none; font-weight: 700; }
	}

	.jb-cats { list-style: none; margin: 1.5rem 0 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); }
	@media (min-width: 48rem) { .jb-cats { grid-template-columns: repeat(4, 1fr); } }
	.jb-cat__link { display: flex; flex-direction: column; gap: .25rem; height: 100%; padding: 1.1rem 1.2rem; text-decoration: none; color: var(--jb-text); background: var(--jb-surface); border: 1px solid var(--jb-border); border-radius: var(--jb-radius); transition: transform var(--jb-transition), box-shadow var(--jb-transition); }
	.jb-cat__link:hover { transform: translateY(-3px); box-shadow: var(--jb-shadow); }
	.jb-cat__name { font-weight: 700; }
	.jb-cat__count { font-size: .85rem; color: var(--jb-muted); }

	/* Unified button polish (rounded & soft) for non-companion themes. */
	.jb-apply__btn, .jb-save, .jb-share__btn, .jb-pagination .page-numbers, .jb-actionbar__apply {
		transition: transform var(--jb-transition), background-color var(--jb-transition), box-shadow var(--jb-transition), border-color var(--jb-transition);
		font-weight: 600;
	}
	.jb-apply__btn { box-shadow: var(--jb-shadow-sm); }
	.jb-apply__btn:hover, .jb-save:hover, .jb-share__btn:hover, .jb-pagination .page-numbers:hover { transform: translateY(-2px); box-shadow: var(--jb-shadow); }
	.jb-apply__btn:active, .jb-save:active, .jb-share__btn:active { transform: translateY(0); }

	a:focus-visible, button:focus-visible, .jb-chip:focus-visible { outline: 2px solid var(--jb-primary); outline-offset: 2px; }
}

.jb-notice { padding: 1rem 1.25rem; border: 1px dashed var(--jb-border, rgba(0,0,0,.25)); border-radius: .5rem; background: var(--jb-surface, rgba(0,0,0,.03)); }
