/*
 * poea-native: Cariera plugin UI basics (04 A5-A10, A12, A18, T14).
 * Loaded on every front-end page (small) and as the target of the Cariera theme style handles
 * (cariera-job-listings, cariera-dashboard, ...). Uses design tokens with literal fallbacks, so it
 * still works if tokens.css is missing. Line Awesome glyph map at the end (A9, partial).
 */

/* --cariera-* fallbacks (tokens.css defines the real aliases; this only fills gaps). */
:where(:root) {
	--cariera-primary: var(--pn-brand, #303af7);
	--cariera-dark-text-color: var(--pn-ink, #2f2e41);
	--cariera-border-color: var(--pn-line, #e3e5f0);
	--cariera-light-grey-color: var(--pn-soft, #f4f5fb);
	--cariera-grey-color: var(--pn-muted, #6b6a7d);
	--cariera-white-color: #fff;
	--cariera-error-color: var(--pn-danger, #c62828);
	--cariera-success-color: var(--pn-success, #15803d);
}

/* A6: plugin dialogs stay hidden until opened (PK promotion modal with prices, share, bookmarks). */
.mfp-hide { display: none !important; }

/* A8 */
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* A5: compat dialog (one native <dialog>, see assets/js/cariera-compat-modal.js). */
.cariera-compat-dialog { position: fixed; padding: 0; }
.cariera-compat-dialog__close {
	position: absolute; top: var(--space-3, 12px); right: var(--space-3, 12px); z-index: 2;
	display: inline-grid; place-items: center; width: var(--tap, 44px); height: var(--tap, 44px);
	font-size: 28px; line-height: 1; color: var(--color-text-muted, #6b6a7d);
	background: transparent; border: 0; border-radius: var(--radius-pill, 999px); cursor: pointer;
}
.cariera-compat-dialog__close:hover { color: var(--color-text, #2f2e41); background: var(--color-bg, #f4f5fb); }
.cariera-compat-dialog__close:focus-visible { outline: var(--focus-outline, 2px solid #303af7); outline-offset: 2px; }
.cariera-compat-dialog__body { padding: var(--space-6, 24px); }
.cariera-compat-dialog .small-dialog,
.cariera-compat-dialog .zoom-anim-dialog { max-width: none; margin: 0; padding: 0; background: none; box-shadow: none; }
.small-dialog-headline { padding-right: var(--space-10, 40px); margin-bottom: var(--space-4, 16px); }
.small-dialog-headline :is(h2, h3, h4) { margin: 0; font-size: var(--fs-20, 20px); line-height: var(--lh-20, 1.4); font-weight: var(--fw-semibold, 600); }
.small-dialog-content { display: grid; gap: var(--space-4, 16px); }
.small-dialog-content :is(input[type="text"], input[type="email"], input[type="tel"], textarea, select) { width: 100%; }
.quick-view-popup { max-width: 48rem; }

/* WPJM / Cariera notices. */
.job-manager-message, .job-manager-error, .job-manager-info {
	margin: 0 0 var(--space-4, 16px); padding: var(--space-3, 12px) var(--space-4, 16px);
	border-radius: var(--radius-md, 12px); border-left: 4px solid currentColor; font-size: var(--fs-14, 14px);
}
.job-manager-message, .job-manager-message.success { color: var(--color-success, #15803d); background: var(--color-success-bg, #ecf5ef); }
.job-manager-error, .job-manager-message.error { color: var(--color-danger, #c62828); background: var(--color-danger-bg, #fbeeee); }
.job-manager-info { color: var(--color-info, #0369a1); background: var(--color-info-bg, #ebf3f7); }

/* A10: Cariera button classes used inside plugin markup, mapped to the POEA button look. */
:where(.btn-main, .btn-secondary, .cariera-btn, .job-manager-form .button, .cariera-packages .button) {
	display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2, 8px);
	min-height: var(--control-h, 44px); padding: 0 var(--space-5, 20px);
	font: inherit; font-weight: var(--fw-semibold, 600); font-size: var(--fs-14, 14px); line-height: 1.2;
	color: var(--color-on-primary, #fff); background: var(--color-primary, #303af7);
	border: 1px solid transparent; border-radius: var(--radius-pill, 999px); text-decoration: none; cursor: pointer;
	transition: background-color var(--dur-fast, 150ms) var(--ease, ease), box-shadow var(--dur-fast, 150ms) var(--ease, ease);
}
:where(.btn-main, .cariera-btn, .job-manager-form .button):hover { background: var(--color-primary-hover, #2932d5); color: #fff; }
:where(.btn-secondary) { color: var(--color-primary, #303af7); background: var(--color-surface, #fff); border-color: var(--color-border-strong, #8a899c); }
:where(.btn-secondary):hover { background: var(--color-surface-tint, #f5f5ff); }
:where(.btn-main, .btn-secondary, .cariera-btn):focus-visible { outline: var(--focus-outline, 2px solid #303af7); outline-offset: 2px; }

/* A12: submission forms (poea-ai-interviewer puts fields at 49%). */
.job-manager-form .form-fields { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0 2%; }
.job-manager-form .form-fields > fieldset { width: 100%; }
.submit-listing-box { margin-bottom: var(--space-6, 24px); padding: var(--space-6, 24px); color: var(--foreground, #2f2e41); background: var(--background, #fff); border: 1px solid var(--card-border, var(--color-border, #e3e5f0)); border-radius: var(--radius-lg, 16px); }
.submission-flow ul { display: flex; flex-wrap: wrap; gap: var(--space-2, 8px); margin: 0 0 var(--space-6, 24px); padding: 0; list-style: none; counter-reset: poea-step; }
.submission-flow li { counter-increment: poea-step; padding: var(--space-2, 8px) var(--space-4, 16px); font-size: var(--fs-14, 14px); color: var(--color-text-muted, #6b6a7d); background: var(--color-bg, #f4f5fb); border-radius: var(--radius-pill, 999px); }
.submission-flow li::before { content: counter(poea-step) ". "; }
.submission-flow li.active { color: #fff; background: var(--color-primary, #303af7); }

/* A18: carousels without a carousel library (scroll-snap rows). */
:is(.featured-resumes-slider, .related-resumes-slider, .related-companies-slider, .featured-companies-slider) {
	display: grid; grid-auto-flow: column; grid-auto-columns: minmax(16rem, 1fr); gap: var(--space-4, 16px);
	overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 0 var(--space-2, 8px); margin: 0; list-style: none;
}
:is(.featured-resumes-slider, .related-resumes-slider, .related-companies-slider, .featured-companies-slider) > * { scroll-snap-align: start; }

/* Single resume sections (inc/cariera-compat/listeners.php, H-T1). */
.c-resume-section { margin: 0 0 var(--space-8, 32px); }
.c-resume-section__title { margin: 0 0 var(--space-4, 16px); font-size: var(--fs-20, 20px); line-height: var(--lh-20, 1.4); font-weight: var(--fw-semibold, 600); }
.c-timeline { margin: 0; padding: 0 0 0 var(--space-5, 20px); list-style: none; border-left: 2px solid var(--color-border, #e3e5f0); }
.c-timeline__item { position: relative; padding: 0 0 var(--space-5, 20px); }
.c-timeline__item::before { content: ""; position: absolute; left: calc(-1 * var(--space-5, 20px) - 6px); top: 6px; width: 10px; height: 10px; background: var(--color-primary, #303af7); border-radius: 50%; }
.c-timeline__date { display: block; font-size: var(--fs-13, 13px); color: var(--color-text-muted, #6b6a7d); }
.c-timeline__title { margin: 0 0 var(--space-2, 8px); display: flex; flex-wrap: wrap; gap: 0 var(--space-2, 8px); }
.c-timeline__body > :last-child { margin-bottom: 0; }
.c-social { display: flex; flex-wrap: wrap; gap: var(--space-2, 8px); }

/* T14: dashboard shell. */
.c-dash { display: grid; gap: var(--space-6, 24px); width: min(100% - 2 * var(--gutter, 16px), var(--container, 1280px)); margin: var(--space-6, 24px) auto var(--space-12, 48px); }
.c-dash__toggle { justify-self: start; }
.c-dash__nav { padding: var(--space-4, 16px); background: var(--color-surface, #fff); border: 1px solid var(--color-border, #e3e5f0); border-radius: var(--radius-lg, 16px); }
.has-dash-js .c-dash__nav:not(.is-open) { display: none; }
.c-dash__main { min-width: 0; }
.c-dash__titlebar { margin-bottom: var(--space-6, 24px); }
.c-dash__titlebar h1 { margin: 0; }
.c-dash__copyright { margin-top: var(--space-10, 40px); padding-top: var(--space-4, 16px); font-size: var(--fs-13, 13px); color: var(--color-text-muted, #6b6a7d); border-top: 1px solid var(--color-border, #e3e5f0); }
.c-dash-profile { display: flex; align-items: center; gap: var(--space-3, 12px); padding: 0 0 var(--space-4, 16px); margin: 0 0 var(--space-3, 12px); border-bottom: 1px solid var(--color-border, #e3e5f0); }
.c-dash-profile img { display: block; width: 48px; height: 48px; border-radius: 50%; }
.c-dash-profile__text { display: grid; min-width: 0; }
.c-dash-profile__name { font-weight: var(--fw-semibold, 600); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.c-dash-profile__role { font-size: var(--fs-13, 13px); color: var(--color-text-muted, #6b6a7d); }
.c-dash-nav__heading { margin: var(--space-4, 16px) 0 var(--space-1, 4px); font-size: var(--fs-12, 12px); font-weight: var(--fw-semibold, 600); letter-spacing: var(--tracking-eyebrow, .06em); text-transform: uppercase; color: var(--color-text-muted, #6b6a7d); }
.c-dash-nav__list { margin: 0; padding: 0; list-style: none; display: grid; gap: 2px; }
.c-dash-nav__link, .c-dash-nav__list > li > a {
	display: flex; align-items: center; gap: var(--space-3, 12px); min-height: var(--tap, 44px); padding: 0 var(--space-3, 12px);
	color: var(--color-text-2, #3f3d56); text-decoration: none; border-radius: var(--radius-sm, 8px);
	transition: background-color var(--dur-fast, 150ms) var(--ease, ease), color var(--dur-fast, 150ms) var(--ease, ease);
}
.c-dash-nav__link:hover, .c-dash-nav__list > li > a:hover { color: var(--color-primary, #303af7); background: var(--color-surface-tint, #f5f5ff); }
.c-dash-nav__list > li.active > a, .c-dash-nav__list > li.current-menu-item > a { color: var(--color-primary, #303af7); background: var(--color-surface-tint, #f5f5ff); font-weight: var(--fw-semibold, 600); }
.c-dash-nav .icon { width: 20px; height: 20px; flex: none; }
@media (min-width: 1024px) {
	.c-dash { grid-template-columns: 16rem minmax(0, 1fr); align-items: start; }
	.c-dash__toggle { display: none; }
	.has-dash-js .c-dash__nav:not(.is-open), .c-dash__nav { display: block; position: sticky; top: calc(var(--sticky-top, 72px) + var(--space-4, 16px)); }
}
.dashboard-card-box { padding: var(--space-5, 20px); background: var(--color-surface, #fff); border: 1px solid var(--color-border, #e3e5f0); border-radius: var(--radius-lg, 16px); margin-bottom: var(--space-6, 24px); }
.dashboard-card-title .title { margin: 0 0 var(--space-4, 16px); font-size: var(--fs-18, 18px); }

/* A2: views chart (assets/js/cariera-compat-charts.js). */
.cariera-compat-chart { display: block; width: 100%; height: auto; }
.cariera-compat-chart__bar { fill: var(--color-primary, #303af7); }
.cariera-compat-chart__axis { stroke: var(--color-border, #e3e5f0); }
.cariera-compat-chart__label { font-size: 12px; fill: var(--color-text-muted, #6b6a7d); }
.cariera-compat-chart__total { margin: 0 0 var(--space-2, 8px); font-weight: var(--fw-semibold, 600); }
.cariera-compat-chart__note { margin: 0; color: var(--color-text-muted, #6b6a7d); }
.canvas-loader { display: none; }

/* T14: login / register page. */
.c-auth { display: grid; min-height: 100vh; min-height: 100dvh; background: var(--color-bg, #f4f5fb); }
.c-auth__aside { display: none; }
.c-auth__panel { width: min(100% - 2 * var(--gutter, 16px), 28rem); margin: 0 auto; padding: var(--space-10, 40px) 0; display: grid; align-content: start; gap: var(--space-5, 20px); }
.c-auth__brand { justify-self: start; color: var(--color-heading, #2f2e41); text-decoration: none; font-weight: var(--fw-bold, 700); font-size: var(--fs-20, 20px); }
.c-auth__logo { display: block; height: 40px; width: auto; }
.c-auth__title { margin: 0; font-size: var(--fs-30, 28px); }
.c-auth__tabs { display: flex; gap: var(--space-1, 4px); padding: var(--space-1, 4px); background: var(--color-surface, #fff); border: 1px solid var(--color-border, #e3e5f0); border-radius: var(--radius-pill, 999px); }
.c-auth__tabs[hidden] { display: none; }
.c-auth__tab { flex: 1; min-height: 40px; font: inherit; font-weight: var(--fw-medium, 500); color: var(--color-text-2, #3f3d56); background: none; border: 0; border-radius: var(--radius-pill, 999px); cursor: pointer; }
.c-auth__tab[aria-selected="true"] { color: #fff; background: var(--color-primary, #303af7); }
.c-auth__tab:focus-visible { outline: var(--focus-outline, 2px solid #303af7); outline-offset: 2px; }
.c-auth__section { padding: var(--space-6, 24px); background: var(--color-surface, #fff); border: 1px solid var(--color-border, #e3e5f0); border-radius: var(--radius-lg, 16px); }
.c-auth__heading { margin: 0 0 var(--space-4, 16px); font-size: var(--fs-20, 20px); }
.c-auth__links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-2, 8px); margin: var(--space-4, 16px) 0 0; font-size: var(--fs-14, 14px); }
.c-auth__home { margin: 0; font-size: var(--fs-14, 14px); }
@media (min-width: 1024px) {
	.c-auth { grid-template-columns: minmax(0, 1fr) minmax(28rem, 36rem); }
	.c-auth__aside { display: flex; align-items: flex-end; padding: var(--space-12, 48px); color: #fff; background: var(--pn-brand-700, #232bb7) center / cover no-repeat; }
	.c-auth__intro { max-width: 32rem; margin: 0; font-size: var(--fs-30, 30px); line-height: 1.25; font-weight: var(--fw-semibold, 600); text-shadow: 0 1px 2px rgb(0 0 0 / .35); }
}

/* Header extras (notifications). */
.c-header-extra { position: relative; }
.c-header-extra .notification-count { position: absolute; top: 2px; right: 2px; min-width: 18px; height: 18px; padding: 0 4px; font-size: 11px; line-height: 18px; }
.c-header-extra__panel { position: absolute; right: 0; top: calc(100% + 8px); z-index: var(--z-drawer, 80); width: min(22rem, calc(100vw - 32px)); max-height: 70vh; overflow: auto; padding: var(--space-4, 16px); color: var(--foreground, #2f2e41); background: var(--background, #fff); border: 1px solid var(--card-border, #e3e5f0); border-radius: var(--radius-lg, 16px); box-shadow: var(--shadow-pop, 0 12px 32px rgb(29 28 42 / .16)); }
.c-header-extra__panel .title { margin: 0 0 var(--space-3, 12px); font-size: var(--fs-16, 16px); color: inherit; }
.c-header-extra .c-btn--ghost { color: var(--primary-light, var(--color-primary)); } /* 2.9:1 on the dark header otherwise */
.c-header-extra__panel[hidden] { display: none; }

@media (prefers-reduced-motion: reduce) {
	.cariera-compat-dialog[open] { animation: none; }
}

/* A9 (partial, owner O7 open): Line Awesome classes used in plugin markup, drawn from the
   poea-native sprite as CSS masks. Unmapped glyphs render as an empty 1em box. Generated from
   assets/icons/sprite.svg (Lucide, ISC). */
:where(.la, .las, .lar, .lab) { display: inline-block; width: 1em; height: 1em; font-style: normal; vertical-align: -0.125em; }
:where(.la, .las, .lar, .lab)[class*="la-"] { background-color: currentColor; -webkit-mask: var(--la-icon, var(--la-empty)) center / contain no-repeat; mask: var(--la-icon, var(--la-empty)) center / contain no-repeat; }
:root { --la-empty: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1 1'/%3E"); }
.la-spinner, .la-circle-notch { --la-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M21 12a9 9 0 1 1-6.2-8.6'/%3E%3C/svg%3E"); }
.la-spin { animation: spin 1s linear infinite; }
.la-times,.la-times-circle,.la-window-close{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E")}
.la-check,.la-check-circle,.la-check-square{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.la-search{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}
.la-map-marker,.la-map-marker-alt,.la-map-pin{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-5.5 10.2-7.4 11.8a1 1 0 0 1-1.2 0C9.5 20.2 4 15 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E")}
.la-envelope,.la-envelope-open{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3Cpath d='m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7'/%3E%3C/svg%3E")}
.la-user,.la-user-alt,.la-user-tie,.la-user-cog,.la-user-circle{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E")}
.la-plus,.la-plus-circle{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E")}
.la-star{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11.5 2.3a.5.5 0 0 1 1 0l2.3 4.7a2 2 0 0 0 1.5 1.1l5.2.8a.5.5 0 0 1 .3.9l-3.8 3.7a2 2 0 0 0-.6 1.8l.9 5.2a.5.5 0 0 1-.8.5l-4.6-2.4a2 2 0 0 0-1.9 0l-4.6 2.4a.5.5 0 0 1-.8-.5l.9-5.2a2 2 0 0 0-.6-1.8L2.2 9.8a.5.5 0 0 1 .3-.9l5.2-.8a2 2 0 0 0 1.5-1.1z'/%3E%3C/svg%3E")}
.la-calendar,.la-calendar-alt,.la-calendar-check{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E")}
.la-clock,.la-hourglass-half{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E")}
.la-briefcase{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3Crect width='20' height='14' x='2' y='6' rx='2'/%3E%3C/svg%3E")}
.la-building{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='16' height='20' x='4' y='2' rx='2'/%3E%3Cpath d='M9 22v-4h6v4M8 6h.01M16 6h.01M12 6h.01M12 10h.01M12 14h.01M16 10h.01M16 14h.01M8 10h.01M8 14h.01'/%3E%3C/svg%3E")}
.la-phone,.la-phone-alt{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E")}
.la-download,.la-file-download{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3'/%3E%3C/svg%3E")}
.la-external-link-alt,.la-external-link-square-alt{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6M10 14 21 3M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E")}
.la-share-alt,.la-share,.la-share-square{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='5' r='3'/%3E%3Ccircle cx='6' cy='12' r='3'/%3E%3Ccircle cx='18' cy='19' r='3'/%3E%3Cpath d='m8.6 13.5 6.8 4M15.4 6.5l-6.8 4'/%3E%3C/svg%3E")}
.la-info,.la-info-circle{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E")}
.la-exclamation,.la-exclamation-circle,.la-exclamation-triangle,.la-bell{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.7 18-8-14a2 2 0 0 0-3.5 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.7-3M12 9v4M12 17h.01'/%3E%3C/svg%3E")}
.la-power-off,.la-sign-out-alt{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9'/%3E%3C/svg%3E")}
.la-cog,.la-tachometer-alt,.la-th-large{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='7' height='9' x='3' y='3' rx='1'/%3E%3Crect width='7' height='5' x='14' y='3' rx='1'/%3E%3Crect width='7' height='9' x='14' y='12' rx='1'/%3E%3Crect width='7' height='5' x='3' y='16' rx='1'/%3E%3C/svg%3E")}
.la-heart,.la-bookmark{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z'/%3E%3C/svg%3E")}
.la-arrow-right,.la-long-arrow-alt-right{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M12 5l7 7-7 7'/%3E%3C/svg%3E")}
.la-angle-left,.la-chevron-left,.la-arrow-left,.la-arrow-alt-circle-left{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E")}
.la-angle-right,.la-chevron-right{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}
.la-angle-down,.la-chevron-down,.la-caret-down{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.la-bars{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E")}
.la-globe,.la-link{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20M2 12h20'/%3E%3C/svg%3E")}
.la-money-bill,.la-money-bill-alt,.la-credit-card,.la-box{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='12' x='2' y='6' rx='2'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Cpath d='M6 12h.01M18 12h.01'/%3E%3C/svg%3E")}
.la-facebook-f,.la-facebook{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M13.5 22v-8h2.7l.4-3.2h-3.1V8.8c0-.9.3-1.6 1.6-1.6h1.7V4.4c-.3 0-1.3-.1-2.5-.1-2.5 0-4.1 1.5-4.1 4.2v2.3H7.4V14h2.8v8z'/%3E%3C/svg%3E")}
.la-twitter{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M17.8 3h3.1l-6.8 7.7L22 21h-6.2l-4.9-6.4L5.3 21H2.2l7.3-8.3L2 3h6.4l4.4 5.8zm-1.1 16.2h1.7L7.4 4.7H5.6z'/%3E%3C/svg%3E")}
.la-linkedin-in,.la-linkedin{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M4.98 3.5a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5M3 9.5h4V21H3zm6.5 0h3.8v1.6h.1c.5-1 1.8-2 3.8-2 4 0 4.8 2.6 4.8 6V21h-4v-5.2c0-1.3 0-2.9-1.8-2.9s-2 1.4-2 2.8V21h-4z'/%3E%3C/svg%3E")}
.la-whatsapp{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpath d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2m0 18.2c-1.5 0-3-.4-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2m4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.6.8-.8 1-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.3-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.1 5.1 0 0 0 1.1 2.7 11.7 11.7 0 0 0 4.5 4c1.7.7 2.4.8 3.2.6a2.8 2.8 0 0 0 1.8-1.3 2.3 2.3 0 0 0 .2-1.3c-.1-.1-.3-.2-.6-.3'/%3E%3C/svg%3E")}
.la-filter,.la-sliders-h{--la-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M7 12h10M10 18h4'/%3E%3C/svg%3E")}

/* ------------------------------------------------------------------
 * Job / company templates (inc/cariera-compat/templates.php, job_manager/*, wp-job-manager-companies/*).
 * Cards use .c-job-row / .c-job-card / .c-company-row from card.css; these rules only wire the
 * plugin wrappers (ul.job_listings, ul.company_listings, carousels) and the detail pages.
 * ------------------------------------------------------------------ */
:is(ul.job_listings, ul.company_listings) { margin: 0; padding: 0; list-style: none; }
ul.job_listings:has(> li > .c-job-row) { background: var(--color-surface, #fff); border: 1px solid var(--color-border, #e3e5f0); border-radius: var(--radius-lg, 16px); overflow: hidden; }
ul.job_listings > li:has(> .c-job-row) + li { border-top: 1px solid var(--color-border, #e3e5f0); }
:is(ul.job_listings, ul.company_listings):has(> li > .c-job-card) { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); gap: var(--space-4, 16px); }
ul.company_listings:has(> li > .c-company-row) { display: grid; gap: var(--space-3, 12px); }
:is(.job_listings, .company_listings) > li.no_job_listings_found, .no_companies_found { padding: var(--space-6, 24px); text-align: center; color: var(--color-text-muted, #6b6a7d); }
:is(.c-job-row, .c-job-card) .c-meta { gap: var(--space-1, 4px) var(--space-3, 12px); }
:is(.c-job-row, .c-job-card) .c-badges { display: flex; flex-wrap: wrap; gap: var(--space-2, 8px); margin: 0; padding: 0; list-style: none; }
:is(.c-job-row, .c-job-card) .c-badges > li { display: contents; }
:is(.c-job-row__title, .c-job-card__title) .c-badge { margin-left: var(--space-1, 4px); vertical-align: middle; }
:is(.c-job-row__aside, .c-job-card__foot) time { white-space: nowrap; }
.c-company-card .c-job-card__head { align-items: center; }
.listing-loader { display: none; }
:is(.job_listings, .company_listings).loading { opacity: 0.55; transition: opacity var(--dur, 0.18s) var(--ease, ease); }
:is(.job-carousel, .company-carousel, .related-jobs-slider) { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(min(85%, 17rem), 1fr); gap: var(--space-4, 16px); overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 0 var(--space-2, 8px); margin: 0; list-style: none; }
:is(.job-carousel, .company-carousel, .related-jobs-slider) > * { scroll-snap-align: start; }
.company_filters .search_companies { display: grid; gap: var(--space-3, 12px); margin-bottom: var(--space-4, 16px); }
@media (min-width: 768px) { .company_filters .search_companies { grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); align-items: end; } }
.company_filters label { display: block; margin-bottom: 0.375rem; font-size: var(--fs-14, 14px); font-weight: var(--fw-medium, 500); }
.company_filters :is(input, select) { width: 100%; }
.showing_companies:not(:empty) { margin-bottom: var(--space-4, 16px); font-size: var(--fs-14, 14px); color: var(--color-text-muted, #6b6a7d); }
.companies-listing-a-z .company-letters { margin-bottom: var(--space-6, 24px); }
.companies-listing-a-z .c-tag.is-disabled { opacity: 0.4; }
.companies-overview { display: grid; gap: var(--space-6, 24px); margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .companies-overview { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.companies-overview .company-letter { margin: 0 0 var(--space-2, 8px); font-size: var(--fs-20, 20px); color: var(--color-primary, #303af7); scroll-margin-top: 6rem; }
.companies-overview ul { display: grid; gap: var(--space-1, 4px); margin: 0; padding: 0; list-style: none; font-size: var(--fs-14, 14px); }

/* Detail pages (single job / company). */
.c-detail-hero--cover { background-image: linear-gradient(rgba(255, 255, 255, 0.92), rgba(255, 255, 255, 0.96)), var(--hero-cover); background-size: cover; background-position: center; }
.c-detail-hero__actions :is(.company-social, .listing-bookmark) { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--space-2, 8px); }
.c-detail-hero .c-meta { margin-top: var(--space-3, 12px); }
:is(.single-job-content .c-prose, .company-description) { min-width: 0; overflow-wrap: anywhere; }
:is(.company-content-wrapper, .single-job-listing) > * + * { margin-top: var(--space-8, 32px); }
.company-content-wrapper .content-title { display: flex; align-items: center; gap: var(--space-2, 8px); margin: 0 0 var(--space-4, 16px); font-size: var(--fs-20, 20px); line-height: var(--lh-20, 1.4); font-weight: var(--fw-semibold, 600); }
.c-job-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3, 12px); }
.c-job-actions:empty { display: none; }
.c-overview { display: grid; gap: var(--space-3, 12px); margin: 0; }
.c-overview > div { display: grid; gap: 2px; }
.c-overview dt { font-size: var(--fs-13, 13px); color: var(--color-text-muted, #6b6a7d); }
.c-overview dd { margin: 0; font-weight: var(--fw-medium, 500); color: var(--color-text, #2f2e41); overflow-wrap: anywhere; }
.c-job-apply { margin-top: var(--space-5, 20px); padding-top: var(--space-5, 20px); border-top: 1px solid var(--color-border, #e3e5f0); scroll-margin-top: 6rem; }
.c-job-apply .application_button { width: 100%; }
.single-company-map { min-height: 14rem; border-radius: var(--radius-lg, 16px); overflow: hidden; }
:is(.related-jobs, .related-companies) .section-title { margin: 0 0 var(--space-5, 20px); font-size: var(--fs-24, 24px); }
.company-job-listings__more { margin-top: var(--space-4, 16px); }
.edit-listing { margin-block: var(--space-6, 24px); }
@media print { .c-detail-hero__actions, .c-job-actions, .related-jobs, .related-companies, .single-listing-featured { display: none !important; } }

/* Company dashboard / submission. */
.c-dashboard-listings__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3, 12px); margin-bottom: var(--space-4, 16px); }
.c-dashboard-listings__search input { min-width: min(100%, 16rem); }
.c-row-actions { display: flex; flex-wrap: wrap; gap: var(--space-1, 4px) var(--space-3, 12px); margin: 0; padding: 0; list-style: none; font-size: var(--fs-13, 13px); }
:is(.fieldset-logged_in, .fieldset-login_required) .account-sign-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3, 12px); margin-bottom: var(--space-6, 24px); padding: var(--space-4, 16px); background: var(--color-bg, #f4f5fb); border-radius: var(--radius-md, 12px); }
:is(.fieldset-logged_in, .fieldset-login_required) p { margin: 0; }
:is(.cariera-listing-submission, .company_preview_title) { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3, 12px); margin-top: var(--space-6, 24px); }
.company-preview { margin-top: var(--space-6, 24px); border: 1px dashed var(--color-border, #e3e5f0); border-radius: var(--radius-lg, 16px); overflow: hidden; }

/* QA r8: Cariera paints .job-type.term-N with a per-term !important fill (e.g. #1abc9c) under our brand text = 4.1:1. Use the clone badge tokens (flip with dark mode). */
.c-badge.c-badge--brand.job-type[class*="term-"] { color: var(--badge-cyan-text); background-color: var(--badge-cyan-bg) !important; border-color: var(--badge-cyan-border); }
/* Initials fallback avatar: tinted fill + token text in both themes (the light --pn-brand-50 fill left light-blue text on near-white in dark). */
.c-logo.c-logo--initials { background: var(--primary-100); color: var(--primary-light); }
/* "Reset" / RSS / showing-records links sit inside plain text: underline (1.4.1) and a 24px target (2.5.8). */
:is(.showing_jobs, .showing_companies, .showing_resumes) a { display: inline-flex; align-items: center; min-height: 24px; text-decoration: underline; text-underline-offset: 2px; }
/* Cariera .btn-main links outside Elementor/auth (e.g. /job-alerts/ "Sign in"): the label inherited ink on the brand fill (1.9:1). */
body:not(.elementor-page) .site-main a.btn-main:not(.listing-bookmark):not(.popup-with-zoom-anim) { color: #fff; -webkit-text-fill-color: #fff; }
[data-theme="dark"] body:not(.elementor-page) .site-main a.btn-main:not(.listing-bookmark):not(.popup-with-zoom-anim) { color: #0a071a; -webkit-text-fill-color: #0a071a; background-color: #7091ff; border-color: #7091ff; }

/* QA r8: >= 24px targets (2.5.8) for text links in sentences and plugin text buttons; inline-block keeps the baseline. */
:is(.site-main, .entry-content) :is(p, label, .elementor-alert-description, .jl-note, .job-manager-message, .job-manager-info, .job-manager-error) a:not(.c-btn):not(.btn):not(.button):not(.elementor-button) { display: inline-block; min-height: 24px; line-height: 24px; vertical-align: baseline; }
:is(.advanced-search-btn a, a.load_more_jobs, a.load_more_companies, a.load_more_resumes) { display: inline-flex; align-items: center; min-height: 24px; }
.tagcloud a { display: inline-block; min-height: 24px; line-height: 24px; }

/* QA r8 contrast on Elementor page text (light theme only; dark already passes): faq contacts #948a99 and work-abroad intro #757575 were 3.03:1 / 4.29:1. */
:root:not([data-theme="dark"]) :is(.elementor-element-91727d7, .elementor-element-cfaf287) .elementor-heading-title { color: #5f5a66 !important; }
:root:not([data-theme="dark"]) :is(.elementor-element-9f02932, .elementor-element-27ef10b, .elementor-element-cbaf336, .elementor-element-b0fbf24) .elementor-heading-title { color: #595959 !important; }

/* QA r9: links in WPJM result counters ("Reset", RSS) are JS-injected inside text; underline them (link-in-text-block). */
:is(.showing_jobs, .showing_companies, .showing_resumes) a { text-decoration: underline !important; text-underline-offset: 2px; }
/* QA r9: login-required notices and dashboard buttons in dark mode: dark ink on #7091ff (white was 2.92:1). */
[data-theme="dark"] body .elementor a.btn-main, [data-theme="dark"] :is(.site-main, .c-dash) :is(a.btn, a.btn-main, .btn-main) { color: #0a071a; -webkit-text-fill-color: #0a071a; background-color: #7091ff; border-color: #7091ff; }
/* QA r9: contact form fields in dark mode: dark surface + light text (were light text on white, 1.73:1). */
[data-theme="dark"] .wpcf7 :is(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), textarea, select) { color: #fff; background-color: #110c2a; border: 1px solid #ffffff33; }
[data-theme="dark"] .wpcf7 :is(input, textarea)::placeholder { color: #c4c3d6; opacity: 1; }
[data-theme="dark"] .wpcf7 :is(input, textarea, select):focus { background-color: #0a071a; border-color: #7091ff; outline: 2px solid #7091ff; outline-offset: 2px; }

/* QA r10: Contact Form 7 submit = clone btn-primary (brand fill, white label; dark: #7091ff + dark ink). */
.wpcf7 input.wpcf7-submit { min-height: 44px; padding: 10px 24px; border: 1px solid #303af7; border-radius: 9999px; background: #303af7; color: #fff; -webkit-text-fill-color: #fff; font: 600 14px/20px var(--font-sans, Inter, system-ui, sans-serif); cursor: pointer; }
.wpcf7 input.wpcf7-submit:hover { background: #2227c1; border-color: #2227c1; }
.wpcf7 input.wpcf7-submit:focus-visible { outline: 2px solid #303af7; outline-offset: 2px; }
[data-theme="dark"] body.elementor-page .elementor .wpcf7 input.wpcf7-submit, [data-theme="dark"] .wpcf7 input.wpcf7-submit { background: #7091ff; border-color: #7091ff; color: #0a071a; -webkit-text-fill-color: #0a071a; }
[data-theme="dark"] .wpcf7 input.wpcf7-submit:hover { background: #92adfe; border-color: #92adfe; }
[data-theme="dark"] .wpcf7 input.wpcf7-submit:focus-visible { outline-color: #92adfe; }
