/* Unirecruit site-wide design layer (owner 2026-10-16: "fix the responsiveness and overall page …
   for the entire website", apple-design + frontend-design). Loaded last on every public page by the
   worker. One type family (the phone's own system font), consistent headings, readable small text,
   44px tap targets, visible focus, press feedback, reduced motion respected. */
:root{--ur-font:Montserrat,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--ur-ink:#111b47;--ur-muted:#5e6479;--ur-violet:#5b43c8;--ur-focus:#8b74ff}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-family:var(--ur-font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
/* Every page had pockets of Times/Georgia: headings, forms and prose all use the same family now. */
h1,h2,h3,h4,h5,h6,button,input,select,textarea,.job-detail-hero h1,.job-detail-section h2,.job-detail-error h1,.job-description-prose,.resource-hero h1,.resource-main h2,.resource-main h3{font-family:var(--ur-font)}

/* Type: tight tracking as sizes grow, comfortable leading for reading */
h1{letter-spacing:-.03em;line-height:1.08}
h2{letter-spacing:-.02em;line-height:1.18}
h3{letter-spacing:-.01em;line-height:1.3}
.resource-hero h1{font-weight:800}
.resource-main p,.resource-main li,.article-body,.job-description-prose{line-height:1.65}
.resource-main p,.resource-main li{max-width:72ch}

/* Readable small text (nothing under ~13px for content) */
.job-tile-company,.job-tile-where{font-size:.82rem!important}
.job-tile-pay{font-size:.86rem!important}
.job-visual-tag{font-size:.7rem!important}
.site-footer,.resource-footer{font-size:.92rem}
small{font-size:.82rem}

/* Tap targets: 44px for primary controls, comfortable spacing for links in footers */
.job-tile-apply{padding:9px 13px!important;font-size:.8rem!important;border-radius:10px!important}
.site-footer a,.resource-footer a{display:inline-block;padding:8px 2px}
main input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),main select{min-height:44px}
main button:not(.nav-toggle):not([class*="tab"]):not(.adm-btn){min-height:44px}
.resource-primary,.job-apply-link,.pj-primary,.jp-apply,.jp-save{min-height:48px}

/* Feedback on press, visible focus */
a,button{-webkit-tap-highlight-color:transparent}
button,.resource-primary,.job-apply-link,.job-tile-apply,.pj-primary,.jp-apply,.jp-save,.employer-tile-cta{transition:transform .1s ease-out,opacity .1s ease-out}
button:active,.resource-primary:active,.job-apply-link:active,.job-tile-apply:active,.pj-primary:active,.jp-apply:active,.jp-save:active{transform:scale(.97)}
:focus-visible{outline:3px solid var(--ur-focus);outline-offset:2px;border-radius:6px}

/* Phones: generous side gutters everywhere, nothing touches the screen edge */
@media (max-width:640px){
  .resource-shell,.resource-main>.resource-shell{padding-left:16px!important;padding-right:16px!important}
  .resource-hero h1{font-size:clamp(1.85rem,8.4vw,2.4rem)}
  .resource-hero p{font-size:1.02rem;line-height:1.55}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}button:active,.resource-primary:active,.job-apply-link:active,.job-tile-apply:active,.pj-primary:active,.jp-apply:active,.jp-save:active{transform:none}}
/* Audit 16 Oct: the last small labels and tap targets */
.eyebrow,.section-kicker,.tracker-kicker{font-size:.8rem!important;letter-spacing:.08em}
.seo-main small,.resource-main small{font-size:.86rem}
.article-category{font-size:.8rem!important}
.calculator strong,.result-card strong,.salary-results strong{font-size:.86rem}
.company-card a,.article-card a.read-more,.article-card>a{display:inline-block;padding:10px 0;min-height:44px}
/* Home page labels and counts */
.malta-badge{font-size:.82rem!important}
.stats dd{font-size:.86rem!important}
.featured-role-card.has-visual .featured-role-body>p{font-size:.78rem!important}
.filters h2,.quick-job-filters p{font-size:.8rem!important}
.category span{font-size:.82rem!important}
.company-discovery-card small{font-size:.86rem!important}
.featured-roles-heading>a{display:inline-block;padding:10px 0}
/* One header across the site (owner: consistent, Apple-style): the home page's white bar as a
   translucent material that stays on top while content scrolls beneath. */
.resource-header{position:sticky;top:0;z-index:40;padding:10px 0;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(20px) saturate(180%);backdrop-filter:blur(20px) saturate(180%);color:#111b47;box-shadow:0 1px 0 rgba(17,27,71,.08)}
.resource-header a{color:#2f3656}
.resource-header .nav-toggle,.resource-header .resource-theme-toggle{border-color:#e3e6f0!important;background:#fff!important;color:#111b47!important}
body[data-theme="dark"] .resource-header{background:rgba(13,20,49,.82);color:#eef1ff;box-shadow:0 1px 0 rgba(189,199,245,.14)}
body[data-theme="dark"] .resource-header a{color:#e3e8ff}
body[data-theme="dark"] .resource-header .nav-toggle,body[data-theme="dark"] .resource-header .resource-theme-toggle{border-color:rgba(189,199,245,.25)!important;background:#151e46!important;color:#f1edff!important}
@media (prefers-reduced-transparency:reduce){.resource-header{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}body[data-theme="dark"] .resource-header{background:#0d1431}}
/* Callouts and notices: room to breathe */
.resource-callout{line-height:1.6}
.resource-callout strong{display:block;margin-bottom:4px}
/* Sector pages: the same photo tiles as the jobs list */
.seo-tiles{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin:0 0 28px;padding:0!important;list-style:none}
.seo-tiles .job-card{position:relative;display:flex;flex-direction:column;overflow:hidden;margin:0;border:1px solid #e5e7f0;border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(17,27,71,.06)}
.seo-tiles .job-card:hover{border-color:#cfc4ff;box-shadow:0 14px 30px rgba(46,39,112,.12)}
.seo-tiles .job-body{display:flex;flex-direction:column;gap:2px;padding:11px 12px 13px}
.seo-tiles h3{margin:0 0 2px;font-size:.98rem;line-height:1.25;font-weight:800;color:#111b47}
.seo-tiles p{margin:0;max-width:none;color:#5e6479;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seo-tiles .job-tile-pay{margin-top:6px;color:#4a33b3!important;font-weight:800;white-space:normal}
.seo-tiles small{margin-top:4px;color:#7a8299}
@media (max-width:560px){.seo-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.seo-tiles h3{font-size:.9rem}}
body[data-theme="dark"] .seo-tiles .job-card{background:#151f49;border-color:rgba(189,199,245,.2);box-shadow:none}
body[data-theme="dark"] .seo-tiles h3{color:#f2f4ff}body[data-theme="dark"] .seo-tiles p,body[data-theme="dark"] .seo-tiles small{color:#c3cbea}

/* ===== Text contrast, both themes (owner 2026-10-16: "map all text contrast … dark and light").
   Audited per text element against its real background; everything below meets WCAG AA
   (4.5:1 body text, 3:1 large text). Light: ink #111b47, muted #4b5270, violet #5b43c8.
   Dark: ink #eef1ff, muted #c3cbea, violet text #c4b5ff, buttons stay #5b43c8 with white text. */
:root{--violet:#5b43c8;--violet-dark:#4a33b3}
/* Buttons and filled pills: white on the deeper violet (6.4:1) */
.resource-primary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:0;border-radius:12px;background:#5b43c8;color:#fff!important;font-weight:800;text-decoration:none}
.resource-primary:hover{background:#4a33b3}
.resource-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:12px;font-weight:800;text-decoration:none}
.resource-hero .resource-primary{background:#fff;color:#111b47!important}
.resource-hero .resource-secondary{border:1px solid rgba(255,255,255,.7);color:#fff!important}
.search-panel button,.company-search button,.blog-filter.active,.contact-channel a,.featured-actions a,.hero a.post-job-link{background:#5b43c8!important;color:#fff!important}
/* Muted text and small labels (light) */
.company-discovery-card small,.category span,.job-tile-where,.seo-tiles small,.job-body small,.jobs-heading p:not(.eyebrow),.site-footer span,.site-footer>span{color:#4b5270!important}
.article-card button,.article-category,.company-card a,.resource-main nav a,.resource-sources a,.site-footer a.whatsapp-channel-link{color:#5b43c8!important}
.eyebrow,.section-kicker{color:#5b43c8}
/* Labels on the dark navy/violet heroes (both themes) */
.hero .eyebrow,.hero-copy .eyebrow,.resource-hero .eyebrow{color:#ece7ff!important}
.resource-hero p{color:#eef0ff}
/* ---- Dark theme ---- */
body[data-theme="dark"] .eyebrow,body[data-theme="dark"] .section-kicker,body[data-theme="dark"] .featured-role-body>p,body[data-theme="dark"] .quick-job-filters>p{color:#c4b5ff!important}
body[data-theme="dark"] .hero .eyebrow,body[data-theme="dark"] .hero-copy .eyebrow,body[data-theme="dark"] .resource-hero .eyebrow{color:#ece7ff!important}
body[data-theme="dark"] a:not([class]),body[data-theme="dark"] :is(p,li,footer,.resource-callout,.resource-card,.featured-role-body,.company-discovery-heading,.featured-roles-heading,.seo-more,.seo-other,.resource-sources,.document-state)>a:not(.resource-primary):not(.resource-secondary):not(.jp-apply):not(.pj-jump):not(.whatsapp-channel-link):not(.wa-follow):not(.jp-wa),body[data-theme="dark"] .resource-card a.resource-link,body[data-theme="dark"] .site-footer a:not(.whatsapp-channel-link){color:#c4b5ff!important}
body[data-theme="dark"] .article-card button,body[data-theme="dark"] .article-category,body[data-theme="dark"] .company-card a,body[data-theme="dark"] .resource-main nav a{color:#c4b5ff!important}
body[data-theme="dark"] .company-discovery-card small,body[data-theme="dark"] .category span,body[data-theme="dark"] .job-tile-where,body[data-theme="dark"] .seo-tiles small,body[data-theme="dark"] .job-body small,body[data-theme="dark"] .site-footer span,body[data-theme="dark"] .site-footer>span{color:#c3cbea!important}
body[data-theme="dark"] .jobs-heading p:not(.eyebrow){color:#4b5270!important}
body[data-theme="dark"] .result-card strong,body[data-theme="dark"] .result-card.net strong{color:#d9defa!important}
/* Cards that kept a light background in dark mode now go dark with light text */
body[data-theme="dark"] .about{background:#151f49;box-shadow:0 0 0 1px rgba(189,199,245,.18)}
body[data-theme="dark"] .about h2,body[data-theme="dark"] .about p{color:#eef1ff}
body[data-theme="dark"] .about p a{color:#c4b5ff!important}
/* Post a job, dark */
body[data-theme="dark"] .pj-tile-pay{color:#cbbfff}
body[data-theme="dark"] .pj-photo-main{color:#e2dbff}
body[data-theme="dark"] .pj-tile-title{color:#eef1ff}
/* Contrast pass 2: buttons the dark link colour must not reach, and labels in the jobs heading */
.employer-cta a,.contact-channel a{background:#5b43c8!important;color:#fff!important}
body[data-theme="dark"] .employer-cta a,body[data-theme="dark"] .contact-channel a{background:#5b43c8!important;color:#fff!important}
.jobs-heading p.eyebrow{color:#5b43c8!important}
body[data-theme="dark"] .jobs-heading p.eyebrow{color:#c4b5ff!important}
.resource-hero p,body[data-theme="dark"] .resource-hero p{color:#eef0ff!important}
/* The logo artwork has dark lettering: give it a white badge on dark headers */
body[data-theme="dark"] .brand-logo,body[data-theme="dark"] .resource-logo{box-sizing:content-box;padding:4px 8px;border-radius:8px;background:#fff}

/* ===== WhatsApp channel, made prominent (owner 2026-10-16). Green #0e7a40 keeps white text at AA (5.4:1). */
.wa-ico{width:1.25em;height:1.25em;flex:none}
.wa-band{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center;gap:clamp(20px,4vw,48px);max-width:1040px;margin:0 auto 40px;padding:clamp(24px,5vw,48px);border-radius:24px;background:linear-gradient(135deg,#0a4d2a,#0e7a40);color:#fff;box-sizing:border-box}
.wa-band h2{margin:0 0 10px;color:#fff!important;font-size:clamp(1.6rem,4vw,2.4rem);letter-spacing:-.03em}
.wa-band p{margin:0 0 20px;color:#e3f6ea!important;font-size:1.05rem;line-height:1.55;max-width:44ch}
.wa-follow{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 22px;border-radius:14px;background:#fff;color:#0c5a32!important;font-weight:800;font-size:1.05rem;text-decoration:none}
.wa-follow:active{transform:scale(.97)}
.wa-band-phone{justify-self:center;width:min(260px,100%);padding:18px 14px;border-radius:28px;background:#e7ddd3;box-shadow:inset 0 0 0 8px #0b3d22,0 20px 40px rgba(0,0,0,.25)}
.wa-bubble{display:block;padding:12px 14px;border-radius:4px 14px 14px 14px;background:#fff;color:#1b1f2a;font-size:.88rem;line-height:1.5;box-shadow:0 1px 1px rgba(0,0,0,.12)}
.wa-bubble strong{display:block;margin-bottom:4px;color:#0c5a32}
.wa-bubble em{display:block;margin-top:6px;color:#5b43c8;font-style:normal;font-weight:700}
.seo-main .wa-band{margin:8px 0 32px}
@media(max-width:760px){.wa-band{grid-template-columns:1fr;margin:0 16px 32px}.wa-band-phone{display:none}.wa-follow{width:100%;justify-content:center}}
/* Jobs grid tile and job page link */
.job-card.channel-tile{position:relative;display:flex!important;align-items:stretch;min-height:0;background:#0e7a40!important;border-color:#0a4d2a!important;border-radius:14px!important}
.channel-tile strong{font-size:1.45rem;line-height:1.05;font-weight:900;letter-spacing:-.03em;color:#fff}
.channel-tile p{color:#e3f6ea!important}
.job-card.channel-tile.is-telegram{background:#1f7fb8!important;border-color:#155a83!important}
.channel-tile.is-telegram p{color:#e4f3fc!important}
.job-card.channel-tile.is-instagram{background:linear-gradient(145deg,#6f2fb0,#d92e72 55%,#f0813a)!important;border-color:#8e2d6e!important}
.channel-tile.is-instagram p{color:#fdeef5!important}
.channel-tile .employer-tile-cta{background:#fff;color:#0c5a32}
/* Job page: green WhatsApp button above "Report this job" (owner 22 Oct) */
.jp-wa{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;box-sizing:border-box;min-height:52px;margin:14px 0 4px;padding:0 18px;border-radius:14px;background:#15803d;color:#fff!important;font-weight:800;font-size:1rem;text-decoration:none;box-shadow:0 4px 14px rgba(21,128,61,.25)}
.jp-wa .wa-ico{width:22px;height:22px;flex:none}
.jp-wa:active{transform:scale(.98)}
.jp-wa+.jp-report{display:block;width:100%}
body[data-theme="dark"] .jp-wa{background:#15803d;color:#fff!important}
/* Footer link as a button */
.site-footer a.whatsapp-channel-link{display:inline-flex;align-items:center;min-height:44px;padding:0 16px!important;border-radius:999px;background:#0e7a40;color:#fff!important;text-decoration:none}
body[data-theme="dark"] .site-footer a.whatsapp-channel-link{color:#fff!important}
@media (max-width:560px){.channel-tile strong,.employer-tile strong{font-size:1.15rem;overflow-wrap:anywhere}}

/* ===== Home: new rules for third-country nationals (owner 2026-10-16) */
.tcn{max-width:1040px;margin:0 auto 40px;padding:clamp(24px,5vw,44px);border-radius:24px;background:#fff;border:1px solid #e5e7f0;box-shadow:0 18px 44px rgba(17,27,71,.06);box-sizing:border-box}
.tcn h2{margin:0 0 10px;font-size:clamp(1.5rem,3.6vw,2.2rem);letter-spacing:-.03em;color:#111b47}
.tcn-head p{margin:0 0 22px;max-width:70ch;color:#4b5270;line-height:1.6}
.tcn a{color:#5b43c8;font-weight:700}
.tcn-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin:0 0 18px;padding:0;list-style:none}
.tcn-cards li{padding:16px;border-radius:16px;background:#f6f4ff}
.tcn-when{display:inline-block;margin:0 0 8px;padding:4px 10px;border-radius:999px;background:#fff;color:#4a33b3;font-size:.8rem;font-weight:800}
.tcn-cards h3{margin:0 0 6px;font-size:1.05rem;color:#111b47}
.tcn-cards p{margin:0;color:#3b4262;font-size:.95rem;line-height:1.55}
.tcn-check{margin:0 0 18px;border:1px solid #e5e7f0;border-radius:16px;padding:0 16px}
.tcn-check summary{min-height:52px;display:flex;align-items:center;cursor:pointer;font-weight:800;color:#111b47}
.tcn-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;padding:4px 0 8px}
.tcn-cols h3{margin:0 0 2px;font-size:1rem;color:#111b47}
.tcn-who{margin:0 0 8px;color:#4b5270;font-size:.9rem}
.tcn-cols ul{margin:0;padding-left:1.1rem;color:#3b4262;line-height:1.6}
.tcn-source{margin:8px 0 14px;color:#4b5270;font-size:.86rem}
.tcn-actions{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 14px}
.tcn-primary,.tcn-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border-radius:12px;font-weight:800;text-decoration:none}
.tcn-primary{background:#5b43c8;color:#fff!important}
.tcn-secondary{border:1px solid #cfd3e3;color:#111b47!important;background:#fff}
.tcn-safe{margin:0;padding:12px 14px;border-radius:12px;background:#fff6e5;color:#5a3d00;line-height:1.55}
.tcn-safe a{color:#5a3d00!important;text-decoration:underline}
@media(max-width:760px){.tcn{margin:0 16px 32px;padding:22px 18px}.tcn-actions a{width:100%}}
body[data-theme="dark"] .tcn{background:#151f49;border-color:rgba(189,199,245,.18);box-shadow:none}
body[data-theme="dark"] .tcn h2,body[data-theme="dark"] .tcn-cards h3,body[data-theme="dark"] .tcn-cols h3,body[data-theme="dark"] .tcn-check summary{color:#eef1ff}
body[data-theme="dark"] .tcn-head p,body[data-theme="dark"] .tcn-who,body[data-theme="dark"] .tcn-source,body[data-theme="dark"] .tcn-cards p,body[data-theme="dark"] .tcn-cols ul{color:#c9d0ef}
body[data-theme="dark"] .tcn a:not(.tcn-primary):not(.tcn-secondary){color:#c4b5ff!important}
body[data-theme="dark"] .tcn-cards li{background:#1c2758}
body[data-theme="dark"] .tcn-when{background:#0d1431;color:#d9d0ff}
body[data-theme="dark"] .tcn-check{border-color:rgba(189,199,245,.2)}
body[data-theme="dark"] .tcn-secondary{background:#0d1431;border-color:rgba(196,205,238,.35);color:#eef1ff!important}
body[data-theme="dark"] .tcn-safe{background:#3a2a05;color:#ffe2a8}
body[data-theme="dark"] .tcn-safe a{color:#ffe2a8!important}

/* Malta flag on job cards (owner 2026-10-16) */
.flag-mt,.job-card img.flag-mt,.job-tile img.flag-mt,.featured-role-card img.flag-mt{display:inline-block!important;position:static!important;width:10px!important;height:7px!important;min-width:0!important;max-width:10px!important;margin:0 4px 0 0!important;padding:0!important;object-fit:cover!important;vertical-align:-1px;border-radius:1px!important;box-shadow:0 0 0 1px rgba(17,27,71,.2);background:none!important;transform:none!important}
.jp-company .flag-mt{width:20px!important;max-width:20px!important;height:14px!important;vertical-align:-2px}
/* Employer's phone, large (owner: "where the user doesn't have email make the contact details large") */
.jp-contact{padding:14px 16px;border-radius:14px;background:#f2fbf5;border:1px solid #bfe5cc}
.jp-contact.is-primary{background:#eaf8ef;border-color:#9fd8b4}
.jp-contact-label{margin:0 0 4px;font-size:.92rem;font-weight:700;color:#0a4d2a}
.jp-phone{display:block;margin:0 0 10px;font-size:clamp(1.6rem,5vw,2rem);font-weight:800;letter-spacing:-.01em;color:#111b47!important;text-decoration:none}
.jp-contact-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.jp-call,.jp-whatsapp{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:12px;font-weight:800;text-decoration:none}
.jp-call{background:#111b47;color:#fff!important}
.jp-whatsapp{background:#0e7a40;color:#fff!important}
body[data-theme="dark"] .jp-contact{background:#10301f;border-color:#1f6b42}
body[data-theme="dark"] .jp-contact-label{color:#9fe3bb}
body[data-theme="dark"] .jp-phone{color:#eef1ff!important}
body[data-theme="dark"] .jp-call{background:#eef1ff;color:#111b47!important}
/* Contact reveal: large, partly blurred until the visitor has an account */
.jp-blur{display:inline-block;filter:blur(7px);user-select:none;pointer-events:none}
.jp-email{display:block;margin:4px 0 10px;font-size:clamp(1.15rem,4vw,1.45rem);font-weight:800;color:#111b47!important;text-decoration:none;overflow-wrap:anywhere}
.jp-phone.is-masked,.jp-email.is-masked{margin:0 0 6px}
.jp-reveal{display:flex;align-items:center;justify-content:center;min-height:50px;margin:10px 0 6px;border-radius:12px;background:#5b43c8;color:#fff!important;font-weight:800;text-decoration:none}
.jp-contact-note{margin:6px 0 0;font-size:.88rem;line-height:1.45;color:#2f5a40}
.jp-contact.is-revealed .jp-contact-actions{margin-bottom:10px}
body[data-theme="dark"] .jp-email{color:#eef1ff!important}
body[data-theme="dark"] .jp-contact-note{color:#bfe9cf}
/* Phone menu (owner 17 Oct: "only one item appears"): a blurred header becomes the containing block of the
   fixed drawer and clips it to the header's height. While the drawer is open the header is solid. */
@media (max-width:900px){.resource-header.nav-open,.site-header.nav-open{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fff}body[data-theme="dark"] .resource-header.nav-open,body[data-theme="dark"] .site-header.nav-open{background:#0d1431}}
/* Skill cards: /training and the box on job pages (owner 17 Oct) */
.sc-job{margin:22px 0;padding:18px 20px;border:1px solid #dcd6fb;border-radius:18px;background:#f6f3ff;color:var(--ur-ink)}
.sc-job h2{margin:0 0 4px;font-size:1.15rem;font-weight:800}
.sc-job>p{margin:0 0 10px;color:var(--ur-muted)}
.sc-job-list{display:grid;gap:8px;margin:0 0 14px;padding:0;list-style:none}
.sc-job-list a{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding:12px 14px;border-radius:12px;background:#fff;color:var(--ur-ink);text-decoration:none;box-shadow:0 1px 0 rgba(17,27,71,.06)}
.sc-job-list span{color:var(--ur-muted);font-size:.86rem}
.sc-job-list em{flex-basis:100%;color:var(--ur-muted);font-size:.9rem;font-style:normal;line-height:1.4}
.sc-job-cta{display:inline-block;padding:12px 18px;border-radius:12px;background:var(--ur-violet);color:#fff!important;font-weight:800;text-decoration:none}
.sc-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.sc-nav a{padding:8px 12px;border-radius:999px;background:#f2efff;color:#3d2a99;font-weight:700;font-size:.9rem;text-decoration:none}
.sc-card{margin:0 0 22px;padding:22px;border:1px solid #e3e6f0;border-radius:20px;background:#fff;color:var(--ur-ink);scroll-margin-top:84px}
.sc-card header h2{margin:0;font-size:1.3rem;font-weight:800;text-wrap:balance}
.sc-status{display:inline-block;margin:8px 0 0;padding:4px 10px;border-radius:999px;background:#eef8f1;color:#14633a;font-size:.84rem;font-weight:700}
.sc-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px;margin:16px 0}
.sc-facts div{padding:12px 14px;border-radius:12px;background:#f7f8fc}
.sc-facts dt{font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--ur-muted)}
.sc-facts dd{margin:4px 0 0;line-height:1.5}
.sc-card h3{margin:18px 0 8px;font-size:1.02rem;font-weight:800}
.sc-steps,.sc-topics{margin:0;padding-left:1.3em;line-height:1.6}
.sc-steps li,.sc-topics li{margin:4px 0}
.sc-quiz{display:grid;gap:8px}
.sc-q{border:1px solid #e3e6f0;border-radius:12px;padding:10px 14px}
.sc-q summary{cursor:pointer;font-weight:700;list-style:none;display:flex;gap:10px;align-items:flex-start}
.sc-q summary::-webkit-details-marker{display:none}
.sc-q-n{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#f2efff;color:#3d2a99;font-size:.8rem}
.sc-q ol{margin:10px 0 6px;padding-left:2.2em}
.sc-q li.is-right b{color:#14633a}
.sc-q p{margin:0;color:var(--ur-muted)}
.sc-official{margin:16px 0 0;font-weight:700}
.sc-official a,.sc-card a{color:var(--ur-violet)}
.sc-source{color:var(--ur-muted);font-size:.9rem}
body[data-theme="dark"] .sc-job{background:#1a1f45;border-color:#33397a;color:#eef1ff}
body[data-theme="dark"] .sc-job-list a{background:#11173a;color:#eef1ff}
body[data-theme="dark"] .sc-job>p,body[data-theme="dark"] .sc-job-list span,body[data-theme="dark"] .sc-job-list em,body[data-theme="dark"] .sc-q p,body[data-theme="dark"] .sc-source,body[data-theme="dark"] .sc-facts dt{color:#b9c0e3}
body[data-theme="dark"] .sc-card{background:#11173a;border-color:#2a3170;color:#eef1ff}
body[data-theme="dark"] .sc-facts div{background:#1a1f45}
body[data-theme="dark"] .sc-q{border-color:#2a3170}
body[data-theme="dark"] .sc-nav a,body[data-theme="dark"] .sc-q-n{background:rgba(137,112,238,.22);color:#e7e1ff}
body[data-theme="dark"] .sc-status{background:rgba(52,168,104,.18);color:#9fe3bc}
body[data-theme="dark"] .sc-official a,body[data-theme="dark"] .sc-card a{color:#c4b5ff}
/* Free CV check + skills profile (owner 17 Oct): homepage section and the /documents panel */
.cvpro{padding:44px 16px;background:#f6f3ff;color:var(--ur-ink)}
.cvpro-inner{max-width:1100px;margin:0 auto}
.cvpro-eyebrow,.cvc-eyebrow{margin:0 0 6px;font-size:.78rem;font-weight:800;letter-spacing:.08em;color:#4f37ad}
.cvpro h2{margin:0 0 18px;font-size:clamp(1.5rem,4vw,2.2rem);font-weight:800;letter-spacing:-.02em;text-wrap:balance}
.cvpro-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px;margin-bottom:20px}
.cvpro-grid>div{padding:18px;border-radius:16px;background:#fff;box-shadow:0 1px 0 rgba(17,27,71,.06)}
.cvpro-grid h3{margin:0 0 6px;font-size:1.05rem;font-weight:800}
.cvpro-grid p{margin:0;color:var(--ur-muted);line-height:1.55}
.cvpro-cta,.cvc-primary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:0;border-radius:12px;background:var(--ur-violet);color:#fff!important;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}
.cvc-primary[disabled]{opacity:.5;cursor:not-allowed}
.cvc-secondary{min-height:44px;padding:0 16px;border:1px solid #cfd3e3;border-radius:12px;background:#fff;color:var(--ur-ink);font:inherit;font-weight:700;cursor:pointer}
.cvpro-note{margin:10px 0 0;color:var(--ur-muted);font-size:.9rem}
.cvc{margin:26px 0;padding:22px;border:1px solid #dcd6fb;border-radius:20px;background:#fff;color:var(--ur-ink)}
.cvc h2{margin:0 0 8px;font-size:1.35rem;font-weight:800}
.cvc-lead{margin:0 0 16px;color:var(--ur-muted);line-height:1.55;max-width:70ch}
.cvc-run{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:12px 0}
.cvc-status{color:var(--ur-muted);font-size:.92rem}
.cvc-result h3,.cvc-profile h3{margin:20px 0 8px;font-size:1.05rem;font-weight:800}
.cvc-fixes{margin:0;padding-left:1.2em;line-height:1.6}
.cvc-fixes s{color:#b42318}.cvc-fixes small{color:var(--ur-muted)}
.cvc-ok{color:#14633a;font-weight:700}
.cvc-cv{padding:20px;border:1px solid #e3e6f0;border-radius:14px;background:#fbfbfe;max-height:520px;overflow:auto;line-height:1.5}
.cvc-cv h1{margin:0 0 4px;font-size:1.4rem}.cvc-cv h2{margin:16px 0 6px;font-size:1rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #d9dcea;padding-bottom:3px}.cvc-cv h3{margin:10px 0 2px;font-size:1rem}.cvc-cv p{margin:0 0 4px}.cvc-cv ul{margin:0 0 8px 1.2em;padding:0}
.cvc-note{color:var(--ur-muted);font-size:.9rem}
.cvc-profile{display:grid;gap:6px;max-width:640px}
.cvc-profile label{font-weight:700;margin-top:8px}.cvc-profile small{font-weight:500;color:var(--ur-muted)}
.cvc-profile input:not([type=checkbox]),.cvc-profile textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cfd3e3;border-radius:10px;font:inherit;background:#fff;color:var(--ur-ink)}
.cvc-switch{display:flex;gap:10px;align-items:flex-start;font-weight:500!important;line-height:1.5}
.cvc-switch input{margin-top:5px;width:20px;height:20px;flex:none}
.cvc-profile .cvc-primary{justify-self:start;margin-top:12px}
body[data-theme="dark"] .cvpro{background:#141a3f;color:#eef1ff}
body[data-theme="dark"] .cvpro-grid>div,body[data-theme="dark"] .cvc{background:#11173a;border-color:#2a3170;color:#eef1ff}
body[data-theme="dark"] .cvpro-grid p,body[data-theme="dark"] .cvpro-note,body[data-theme="dark"] .cvc-lead,body[data-theme="dark"] .cvc-status,body[data-theme="dark"] .cvc-note,body[data-theme="dark"] .cvc-profile small{color:#b9c0e3}
body[data-theme="dark"] .cvpro-eyebrow,body[data-theme="dark"] .cvc-eyebrow{color:#c4b5ff}
body[data-theme="dark"] .cvc-cv{background:#0d1431;border-color:#2a3170}
body[data-theme="dark"] .cvc-profile input:not([type=checkbox]),body[data-theme="dark"] .cvc-profile textarea,body[data-theme="dark"] .cvc-secondary{background:#0d1431;border-color:#33397a;color:#eef1ff}
body[data-theme="dark"] .cvc-ok{color:#9fe3bc}body[data-theme="dark"] .cvc-fixes s{color:#ff9b91}
.sc-purpose{margin:12px 0 0;font-size:1.05rem;line-height:1.55}
/* Homepage slideshow (owner 17 Oct): five pictures, one sentence each, cross-fade every 3 s, no arrows */
.hero-slides .hero-slide{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .8s ease}
.hero-slides .hero-slide.is-on{opacity:1}
.hero-slides .hero-slide>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-slides .malta-badge{z-index:2;max-width:calc(100% - 48px);line-height:1.35;font-size:.86rem}
@media (prefers-reduced-motion:reduce){.hero-slides .hero-slide{transition:none}}
/* Unirecruit × Happy Shopper reward (owner 18 Oct) */
.rw{display:grid;gap:16px}
.rw-card{padding:20px;border:1px solid #e3e6f0;border-radius:18px;background:#fff;color:var(--ur-ink)}
.rw-card h2{margin:0 0 8px;font-size:1.2rem;font-weight:800}
.rw-card p{margin:0 0 12px;line-height:1.55}
.rw-done{border-color:#9fd8b6;background:#effaf3}
.rw-btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 20px;border:0;border-radius:12px;background:var(--ur-violet);color:#fff!important;font:inherit;font-weight:800;text-decoration:none;cursor:pointer}
.rw-wa{background:#0e7a40}
.rw-muted{color:var(--ur-muted)}
.rw-codes{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.rw-code{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;border:2px dashed var(--ur-violet);border-radius:12px;background:#f6f3ff}
.rw-code span{font-size:1.3rem;font-weight:800;letter-spacing:2px}
.rw-code small{color:var(--ur-muted)}
.rw-code.rw-pending{border-style:solid;font-size:.95rem}
.rw-copy{margin-left:auto;min-height:40px;padding:0 14px;border:1px solid #cfd3e3;border-radius:10px;background:#fff;font:inherit;font-weight:700;cursor:pointer}
.rw-link{color:var(--ur-violet);font-weight:800}
.rw-share{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}
.rw-share input{flex:1 1 220px;min-height:48px;padding:0 12px;border:1px solid #cfd3e3;border-radius:10px;font:inherit}
.rw-table-wrap{overflow-x:auto}
.rw-table{width:100%;border-collapse:collapse;font-size:.92rem}
.rw-table th,.rw-table td{padding:8px 10px;border-bottom:1px solid #e3e6f0;text-align:left}
.rw-terms{color:var(--ur-muted);font-size:.88rem;margin-top:18px}
.signin-partner{margin:6px 0 12px;padding:10px 12px;border-radius:12px;background:#f6f3ff;color:#3d2a99;font-weight:700;font-size:.92rem}
body[data-theme="dark"] .rw-card{background:#11173a;border-color:#2a3170;color:#eef1ff}
body[data-theme="dark"] .rw-done{background:#0f2a1d;border-color:#2d6b48}
body[data-theme="dark"] .rw-code{background:#1a1f45}
body[data-theme="dark"] .rw-copy,body[data-theme="dark"] .rw-share input{background:#0d1431;border-color:#33397a;color:#eef1ff}
body[data-theme="dark"] .rw-muted,body[data-theme="dark"] .rw-terms,body[data-theme="dark"] .rw-code small{color:#b9c0e3}
body[data-theme="dark"] .rw-table th,body[data-theme="dark"] .rw-table td{border-color:#2a3170}
body[data-theme="dark"] .signin-partner{background:#1a1f45;color:#e7e1ff}
.hs-band{padding:14px 16px;background:linear-gradient(90deg,#fff3c4,#ffe08a);color:#141a3a}
.hs-band-inner{max-width:1100px;margin:0 auto;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between}
.hs-band p{margin:0;display:grid;gap:2px}
.hs-band span{font-size:.92rem}
.hs-band a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:12px;background:#141a3a;color:#fff!important;font-weight:800;text-decoration:none}
/* Compact footer (owner 18 Oct: "fix the footer, compact it for responsive screens"): links flow in rows,
   the WhatsApp button on its own line, room at the bottom for the floating support button. */
.site-footer{display:flex!important;flex-direction:row!important;flex-wrap:wrap!important;justify-content:center!important;align-items:center!important;gap:2px 16px!important;padding:24px 16px 96px!important;text-align:center!important}
.site-footer>span{flex:0 0 auto;font-size:.86rem}
.site-footer>span:nth-of-type(2){flex-basis:100%;order:-1;font-weight:700;font-size:.92rem}
.site-footer>a:not(.whatsapp-channel-link){padding:6px 2px!important;font-size:.9rem;text-decoration:none;color:var(--ur-ink)!important}
.site-footer>a:not(.whatsapp-channel-link):hover{text-decoration:underline}
.site-footer a.whatsapp-channel-link{order:-1;margin:4px 0 10px}
.site-footer>span:first-of-type{order:99;flex-basis:100%;margin-top:8px}
body[data-theme="dark"] .site-footer>a:not(.whatsapp-channel-link){color:#e3e8ff!important}
.site-footer a.whatsapp-channel-link{justify-content:center;flex-basis:100%;max-width:420px}
/* Smaller reward cards (owner 18 Oct: "make cards smaller") */
.rw{gap:10px}
.rw-card{padding:14px 16px;border-radius:14px}
.rw-card h2{font-size:1.02rem;margin-bottom:4px}
.rw-card p{font-size:.92rem;margin-bottom:8px}
.rw-btn{min-height:44px;padding:0 16px;font-size:.95rem}
.rw-code{padding:8px 12px}
.rw-code span{font-size:1.1rem}
.rw-table{font-size:.86rem}
.hs-band{padding:10px 16px}
.hs-band span{font-size:.88rem}
.hs-band-link{color:#141a3a!important;font-weight:800}
.hs-band span a.hs-band-link{display:inline;min-height:0;padding:0;background:none;border-radius:0;text-decoration:underline}
.hs-band span a.hs-band-link{color:#141a3a!important}
/* WhatsApp tile in the job grid wraps its text on phones (owner 18 Oct) */
.job-card.channel-tile .employer-tile-body,.job-card.employer-tile .employer-tile-body{min-width:0;width:100%;overflow:hidden}
.job-card.channel-tile strong,.job-card.channel-tile p{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:break-word;max-width:100%}
.job-card.channel-tile p{margin:0;font-size:.92rem!important;line-height:1.35}
@media (max-width:560px){.job-card.channel-tile strong{font-size:1.2rem;overflow-wrap:normal}}
/* Header logo (owner 18 Oct): about 90% of the header row, a light white backing, prominent on every screen. */
.site-header .brand{height:90%;display:flex;align-items:center;flex:0 0 auto;min-width:0;position:relative;z-index:1}
.site-header .brand-logo,.resource-header .resource-logo,body[data-theme="dark"] .site-header .brand-logo,body[data-theme="dark"] .resource-header .resource-logo{box-sizing:border-box;display:block;height:100%;width:auto;max-width:min(340px,calc(100vw - 112px));object-fit:contain;padding:6px 12px;background:rgba(255,255,255,.92);border-radius:12px;box-shadow:0 1px 3px rgba(17,27,71,.12)}
.resource-header .resource-logo,body[data-theme="dark"] .resource-header .resource-logo{height:58px}
@media (max-width:480px){.resource-header .resource-logo,body[data-theme="dark"] .resource-header .resource-logo{height:52px}}
.tcn-prenote{margin:0 0 16px;padding:12px 14px;border-radius:14px;background:rgba(109,74,255,.08);border:1px solid rgba(109,74,255,.28);line-height:1.5}body[data-theme="dark"] .tcn-prenote{background:rgba(137,112,238,.16);border-color:rgba(183,166,255,.35)}
/* Apply details (owner 18 Oct): name + surname side by side, country code picker in front of the number. */
.apply-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.apply-phone{display:grid;grid-template-columns:minmax(0,9.5em) 1fr;gap:8px}
.apply-phone select{box-sizing:border-box;width:100%;min-height:46px;border:1px solid #d9ddea;border-radius:10px;background:#fff;color:#172044;font:inherit;font-size:16px;font-weight:600;padding:0 8px}
body[data-theme="dark"] .apply-phone select{border-color:rgba(196,205,238,.26);background:#101938;color:#f0f3ff}
@media (max-width:360px){.apply-row{grid-template-columns:1fr}.apply-phone{grid-template-columns:7.5em 1fr}}
/* /news daily briefing (owner 18 Oct). */
.news-day{margin:0 0 28px}
.news-day h2{font-size:1.15rem;margin:0 0 10px}
.news-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.news-list li{padding:12px 14px;border:1px solid rgba(17,27,71,.1);border-radius:14px;background:rgba(255,255,255,.7)}
.news-list h3{font-size:1rem;margin:0 0 4px;line-height:1.3}
.news-list h3 a{color:inherit;text-decoration:none}
.news-list h3 a:hover,.news-list h3 a:focus-visible{text-decoration:underline}
.news-list p{margin:0;line-height:1.5}
.news-src{display:inline-block;margin-left:4px;font-size:.78rem;font-weight:700;opacity:.7}
.news-facts{margin-top:12px;padding:12px 16px;border-radius:14px;background:rgba(109,74,255,.08);border:1px solid rgba(109,74,255,.25)}
.news-facts h3{margin:0 0 6px;font-size:1rem}
.news-facts ol{margin:0;padding-left:20px;display:grid;gap:4px;line-height:1.45}
.news-follow{margin-top:20px}
/* Story photos (owner 25 Oct): full width on phones, beside the text on wider screens. */
.news-photo{margin:0 0 10px}
.news-photo img{display:block;width:100%;max-width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px;background:rgba(17,27,71,.06)}
.news-photo figcaption{margin-top:4px;font-size:.68rem;line-height:1.3;opacity:.65;overflow-wrap:anywhere}
.news-photo figcaption a{color:inherit}
@media (min-width:640px){.news-list li.has-photo{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:14px;align-items:start}.news-list li.has-photo .news-photo{grid-row:1/span 3;margin:0}.news-facts .news-photo{max-width:360px}}
body[data-theme="dark"] .news-list li{background:rgba(255,255,255,.04);border-color:rgba(196,205,238,.18)}
body[data-theme="dark"] .news-facts{background:rgba(137,112,238,.16);border-color:rgba(183,166,255,.35)}
.site-credit{margin:0;padding:10px 16px calc(14px + env(safe-area-inset-bottom));text-align:center;font-size:.78rem;color:#5b6280;background:transparent}
.site-credit a{color:inherit;font-weight:700}
body[data-theme="dark"] .site-credit{color:#aab3d8}
/* Employers rail (owner 18 Oct: "compact them better to reduce scrolling"): two small cards per row on phones. */
@media (max-width:840px){
  .company-discovery{margin-top:36px!important}
  .company-discovery-heading{flex-direction:row!important;align-items:baseline!important;justify-content:space-between;gap:10px!important;margin-bottom:12px!important}
  .company-discovery-heading .eyebrow{display:none}
  .company-discovery-heading h2{font-size:1.25rem!important;letter-spacing:-.02em!important;margin:0!important}
  .company-discovery-heading>a{font-size:.82rem!important}
  .company-discovery-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .company-discovery-card{grid-template-columns:30px minmax(0,1fr)!important;column-gap:8px!important;min-height:0!important;padding:9px 10px!important;border-radius:12px!important}
  .company-discovery-card>span{width:30px!important;height:30px!important;border-radius:9px!important;font-size:.85rem!important}
  .company-discovery-card strong{font-size:.8rem!important;white-space:normal!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.2}
  .company-discovery-card small{font-size:.72rem!important}
}
.seo-main .news-list{padding:0!important;margin:0!important;list-style:none!important}
/* Apply editor and routes (owner 18 Oct). */
.apply-tools{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-4px 0 0}
.apply-tools select{min-height:38px;border:1px solid #d9ddea;border-radius:9px;background:#fff;color:#172044;font:inherit;font-size:15px;font-weight:600;padding:0 8px}
.apply-tool{min-height:38px;border:1px solid #cfc6f5;border-radius:9px;background:#f4f1ff;color:#4a35b0;font:inherit;font-size:.86rem;font-weight:800;padding:0 12px;cursor:pointer}
.apply-tool:disabled{opacity:.6;cursor:wait}
.apply-benefits{margin:2px 0 0;font-size:.8rem;line-height:1.45;color:#3f475f}
.apply-benefits a{color:#5541b4;font-weight:700}
.apply-alt{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.apply-alt .apply-secondary{flex:1 1 140px;text-align:center}
body[data-theme="dark"] .apply-tools select{border-color:rgba(196,205,238,.26);background:#101938;color:#f0f3ff}
body[data-theme="dark"] .apply-tool{background:rgba(137,112,238,.18);border-color:rgba(183,166,255,.35);color:#e4dcff}
body[data-theme="dark"] .apply-benefits{color:#c5cdea}
body[data-theme="dark"] .apply-benefits a{color:#cbbfff}
/* Interview prep slides after applying (owner 18 Oct). */
.ip{margin-top:16px}
.ip h3{margin:0 0 8px;font-size:1.05rem}
.ip-track{display:grid;grid-auto-flow:column;grid-auto-columns:min(78%,280px);gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:thin}
.ip-slide{scroll-snap-align:start;border-radius:16px;overflow:hidden;background:#fff;border:1px solid #e3e0f2;display:flex;flex-direction:column}
.ip-slide img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 30%;display:block}
.ip-copy{padding:10px 12px 12px}
.ip-copy h4{margin:0 0 4px;font-size:.95rem;color:#2f2280}
.ip-copy p{margin:0;font-size:.86rem;line-height:1.45;color:#333b55}
.ip-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ip-links a{font-size:.78rem;font-weight:800;color:#4a35b0;background:#f1edff;border-radius:999px;padding:5px 10px;text-decoration:none}
.ip-hint{margin:4px 0 0;font-size:.76rem;color:#6a7190}
body[data-theme="dark"] .ip-slide{background:#121b3d;border-color:rgba(196,205,238,.18)}
body[data-theme="dark"] .ip-copy h4{color:#d8ceff}
body[data-theme="dark"] .ip-copy p{color:#c9d0ee}
body[data-theme="dark"] .ip-links a{background:rgba(137,112,238,.2);color:#e4dcff}
.ip-slide img{height:auto!important;max-height:none;aspect-ratio:4/3!important}
/* Site-wide feedback (owner 18 Oct); replaces the home page's support box. */
.support-launcher{display:none!important}
.fb{position:fixed;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:60}
.fb-launch{border:0;border-radius:999px;background:#5b43c8;color:#fff;font:inherit;font-size:.85rem;font-weight:800;padding:10px 14px;box-shadow:0 6px 18px rgba(30,20,90,.28);cursor:pointer}
.fb-panel{position:absolute;right:0;bottom:52px;width:min(360px,calc(100vw - 24px));max-height:calc(100vh - 90px);overflow:auto;box-sizing:border-box;background:#fff;color:#172044;border-radius:16px;padding:16px;box-shadow:0 18px 50px rgba(15,23,68,.3);display:grid;gap:10px}
.fb-panel[hidden]{display:none}
.fb-panel h2{margin:0 26px 0 0;font-size:1rem}
.fb-close{position:absolute;top:8px;right:10px;border:0;background:none;font-size:1.4rem;cursor:pointer;color:inherit}
.fb-cats{display:flex;flex-wrap:wrap;gap:6px}
.fb-cats label{cursor:pointer}
.fb-cats input{position:absolute;opacity:0;pointer-events:none}
.fb-cats span{display:inline-block;padding:6px 10px;border-radius:999px;border:1px solid #d6d0f2;font-size:.8rem;font-weight:700}
.fb-cats input:checked+span{background:#5b43c8;border-color:#5b43c8;color:#fff}
.fb-cats input:focus-visible+span{outline:2px solid #5b43c8;outline-offset:2px}
.fb-field{display:grid;gap:4px;font-size:.82rem;font-weight:700}
.fb-field span{font-weight:500;opacity:.75}
.fb-field textarea,.fb-field input{box-sizing:border-box;width:100%;border:1px solid #d9ddea;border-radius:10px;font:inherit;font-size:16px;padding:9px 10px;background:#fff;color:#172044}
.fb-hp{position:absolute;left:-9999px;width:1px;height:1px}
.fb-send{border:0;border-radius:10px;background:#5b43c8;color:#fff;font:inherit;font-weight:800;padding:11px;cursor:pointer}
.fb-send:disabled{opacity:.7}
.fb-msg{margin:0;font-size:.82rem}
.fb-alt{margin:0;font-size:.76rem;opacity:.8}
.fb-alt a{color:#5b43c8;font-weight:700}
body[data-theme="dark"] .fb-panel{background:#121b3d;color:#eef1ff}
body[data-theme="dark"] .fb-field textarea,body[data-theme="dark"] .fb-field input{background:#0d1431;border-color:rgba(196,205,238,.26);color:#f0f3ff}
body[data-theme="dark"] .fb-cats span{border-color:rgba(183,166,255,.35)}
body[data-theme="dark"] .fb-alt a{color:#cbbfff}
/* Admin link in the desktop header (owner 20 Oct); phones use the drawer's admin list. */
.nav-admin-desktop{display:none}
@media (min-width:901px){.nav-admin-desktop{display:inline-flex;align-items:center;margin-left:10px;padding:8px 14px;border-radius:999px;background:#5b43c8;color:#fff!important;font-weight:800;font-size:.85rem;text-decoration:none;white-space:nowrap}.nav-admin-desktop:hover,.nav-admin-desktop:focus-visible{background:#4a35b0}}
/* "View roles" from /companies: the employer filter chip above the job list. */
.company-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;padding:10px 14px;border-radius:12px;background:rgba(109,74,255,.08);border:1px solid rgba(109,74,255,.25)}
.company-filter button{border:0;border-radius:999px;background:#fff;color:#4a35b0;font:inherit;font-size:.82rem;font-weight:800;padding:6px 12px;cursor:pointer;border:1px solid rgba(109,74,255,.3)}
body[data-theme="dark"] .company-filter{background:rgba(137,112,238,.16);border-color:rgba(183,166,255,.35)}
body[data-theme="dark"] .company-filter button{background:#101938;color:#e4dcff}
/* Complete your account (owner 20 Oct): name + WhatsApp confirmation. */
.ag{position:fixed;inset:0;z-index:90;display:grid;place-items:end center;background:rgba(10,14,40,.45);padding:12px}
@media (min-width:600px){.ag{place-items:center}}
.ag-card{width:min(420px,100%);box-sizing:border-box;background:#fff;color:#172044;border-radius:18px;padding:18px;display:grid;gap:10px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.ag-card h2{margin:0;font-size:1.15rem}
.ag-card p{margin:0;line-height:1.45;font-size:.92rem}
.ag-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ag-card label{display:grid;gap:4px;font-size:.82rem;font-weight:700}
.ag-card input{box-sizing:border-box;width:100%;border:1px solid #d9ddea;border-radius:10px;padding:10px;font:inherit;font-size:16px}
.ag-go{border:0;border-radius:12px;background:#25d366;color:#0b2e17;font:inherit;font-weight:800;padding:13px;cursor:pointer}
.ag-go:disabled{opacity:.7}
.ag-later{border:0;background:none;color:#5b6280;font:inherit;font-size:.85rem;cursor:pointer;justify-self:center}
.ag-msg{min-height:1em;color:#5b43c8;font-weight:600}
body[data-theme="dark"] .ag-card{background:#121b3d;color:#eef1ff}
body[data-theme="dark"] .ag-card input{background:#0d1431;border-color:rgba(196,205,238,.26);color:#f0f3ff}
/* CV audit (owner 21 Oct 2026) */
.cva-result{margin:18px 0 26px}.cva-head{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}.cva-ring{width:132px;height:132px;flex:0 0 auto}.cva-ring-bg{fill:none;stroke:#ece9fb;stroke-width:12}.cva-ring-fg{fill:none;stroke-width:12;stroke-linecap:round;stroke:#6047c6}.cva-good .cva-ring-fg{stroke:#1f9d55}.cva-ok .cva-ring-fg{stroke:#6047c6}.cva-warn .cva-ring-fg{stroke:#e0a100}.cva-bad .cva-ring-fg{stroke:#c8322b}.cva-ring-num{font-size:34px;font-weight:900;fill:currentColor}.cva-ring-sub{font-size:11px;fill:#69728a}.cva-head>div{flex:1 1 240px;min-width:0}.cva-verdict{font-size:1.15rem;font-weight:900;margin:0 0 4px}.cva-muted{color:#69728a;font-size:.85rem;margin:4px 0}.cva-sub{font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#69728a;margin:10px 0 4px}
.cva-bars{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}.cva-bars li{display:grid;grid-template-columns:minmax(120px,1.2fr) 2fr auto;align-items:center;gap:10px;font-size:.85rem}.cva-bar{height:10px;border-radius:999px;background:#ece9fb;overflow:hidden}.cva-bar-fill{display:block;height:100%;border-radius:999px;background:#6047c6}.cva-bar-fill.cva-good{background:#1f9d55}.cva-bar-fill.cva-warn{background:#e0a100}.cva-bar-fill.cva-bad{background:#c8322b}.cva-bar-num{font-variant-numeric:tabular-nums;color:#69728a}
.cva-fixes{margin:0 0 16px;padding-left:0;list-style:none;display:grid;gap:8px}.cva-fix{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:#f7f6fd;border:1px solid #e6e3f2;line-height:1.5}.cva-badge{flex:0 0 auto;font-size:.7rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:#e6e3f2;color:#3d4562;margin-top:2px}.cva-p-high .cva-badge{background:#fde2e1;color:#8f1d1b}.cva-p-medium .cva-badge{background:#fff1c9;color:#7a5600}.cva-p-low .cva-badge{background:#e1f5ea;color:#145c35}
.cva-result details{border:1px solid #e6e3f2;border-radius:12px;padding:10px 14px;margin:0 0 10px;background:#fff}.cva-result summary{cursor:pointer;font-weight:800;list-style:none}.cva-result summary::-webkit-details-marker{display:none}.cva-result summary::before{content:"▸ ";color:#6047c6}.cva-result details[open] summary::before{content:"▾ "}
.cva-table{width:100%;border-collapse:collapse;font-size:.85rem;margin:8px 0}.cva-table th,.cva-table td{text-align:left;padding:6px 8px;border-bottom:1px solid #eeedf6;vertical-align:top}.cva-table th{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#69728a}.cva-table small{color:#b45309}
.cva-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 8px}.cva-chip{font-size:.8rem;padding:4px 10px;border-radius:999px;background:#f1effc;color:#3d4562}.cva-chip-ok{background:#e1f5ea;color:#145c35}.cva-chip-miss{background:#fff1c9;color:#7a5600}.cva-role{margin:0 0 12px}
.cva-issues{margin:6px 0;padding-left:0;list-style:none;display:grid;gap:8px}.cva-issues li{display:grid;gap:2px;font-size:.88rem;padding:8px 10px;border-radius:10px;background:#f7f6fd}.cva-ctx{color:#3d4562}.cva-ctx mark{background:#fde2e1;color:#8f1d1b;padding:0 2px;border-radius:3px}.cva-msg{color:#69728a;font-size:.82rem}
.cva-facts{margin:6px 0;padding-left:18px;line-height:1.6;font-size:.9rem}.cva-job{margin:12px 0 4px}.cva-job label{display:block;font-weight:800;margin:0 0 6px}.cva-job small{font-weight:400;color:#69728a}.cva-job-row{display:flex;gap:8px;flex-wrap:wrap}.cva-job-row input{flex:1 1 220px;min-height:44px;padding:0 12px;border:1px solid #cfd3e3;border-radius:12px;font:inherit}.cva-clean{margin:22px 0 10px;padding-top:16px;border-top:1px solid #e6e3f2}.cva-clean h3,.cva-result h3{margin:0 0 8px}
@media(max-width:560px){.cva-bars li{grid-template-columns:1fr auto;grid-template-areas:"label num" "bar bar"}.cva-bar-label{grid-area:label}.cva-bar{grid-area:bar}.cva-bar-num{grid-area:num}.cva-table{display:block;overflow-x:auto}}
body[data-theme="dark"] .cva-fix,body[data-theme="dark"] .cva-issues li{background:#1a2250;border-color:#2a3170}body[data-theme="dark"] .cva-result details{background:#11173a;border-color:#2a3170}body[data-theme="dark"] .cva-chip{background:#1e2a5e;color:#d9def4}body[data-theme="dark"] .cva-ring-bg,body[data-theme="dark"] .cva-bar{stroke:#2a3170;background:#2a3170}body[data-theme="dark"] .cva-ctx{color:#d9def4}body[data-theme="dark"] .cva-job-row input{background:#11173a;color:#eef1ff;border-color:#2a3170}
/* CV editor (owner 21 Oct 2026) */
.cvc-editable{outline:2px dashed #cfd3e3;outline-offset:4px;border-radius:12px;padding:14px;min-height:160px}.cvc-editable:focus{outline:2px solid #6047c6}.cvc-locked{background:#f7f6fd;border-radius:12px;padding:12px 14px;margin-top:10px;font-size:.92rem}.cvc-locked h2{font-size:.95rem;margin:0 0 4px}.cvc-locked p{margin:4px 0;color:#3d4562}.cvc-tools{flex-wrap:wrap;gap:8px;margin-top:12px}.cvc-link{background:none;border:0;color:#6047c6;font:inherit;font-weight:800;cursor:pointer;padding:0 4px}.cvc-result h4 small{font-weight:600;color:#69728a;font-size:.8rem}
body[data-theme="dark"] .cvc-locked{background:#1a2250}body[data-theme="dark"] .cvc-locked p{color:#d9def4}body[data-theme="dark"] .cvc-editable{outline-color:#2a3170}
.cvc-disclaimer{font-size:.82rem;color:#69728a;border-left:3px solid #cfd3e3;padding-left:10px;margin:8px 0 0}body[data-theme="dark"] .cvc-disclaimer{color:#b8c0e0;border-color:#2a3170}

/* Job page: link to the original advert (owner 22 Oct) */
.jp-source{margin:18px 0 0;padding-top:14px;border-top:1px solid rgba(17,22,51,.1);font-size:.92rem;color:#5e6479}
.jp-source a{font-weight:700}
.jp-source span{color:#8a90a6}
body[data-theme="dark"] .jp-source{border-color:rgba(255,255,255,.12);color:#b9c0e3}
.jp-source-link{display:block;margin-top:10px;font-weight:700;font-size:.95rem;color:#c4b5ff!important;text-decoration:underline}

/* Job page: Telegram button under the WhatsApp one (owner 23 Oct) */
.jp-tg{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;box-sizing:border-box;min-height:52px;margin:10px 0 4px;padding:0 18px;border-radius:14px;background:#1c7fb8;color:#fff!important;font-weight:800;font-size:1rem;text-decoration:none;box-shadow:0 4px 14px rgba(28,127,184,.25)}
.jp-tg .wa-ico{width:22px;height:22px;flex:none}
.jp-tg:active{transform:scale(.98)}
.jp-tg+.jp-report{display:block;width:100%}

/* Home hero: WhatsApp and Telegram channel buttons under the search (owner 23 Oct) */
.hero-follow{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 0}
.hero-follow a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 12px;white-space:nowrap;border-radius:12px;color:#fff!important;font-weight:800;font-size:.98rem;text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.hero-follow a:active{transform:scale(.98)}
.hero-follow svg{width:22px;height:22px;flex:none}
.hero-wa{background:#15803d}
.hero-tg{background:#146a9b}
/* The full label ("WhatsApp channel") on wider screens, the brand alone on phones; two whole labels so each one
   translates as a unit (Maltese: "Kanal WhatsApp"). */
.hero-follow .hf-s{display:none}
@media(max-width:480px){.hero-follow .hf-x{display:none}.hero-follow .hf-s{display:inline}}
@media(max-width:300px){.hero-follow{grid-template-columns:1fr}}

/* Apply: finishing on an outside listing (owner 23 Oct: no dead ends) */
.finish-guide{margin-top:14px;padding:14px;border-radius:14px;background:rgba(91,67,200,.07)}
.finish-steps{margin:0 0 10px;padding-left:20px;display:grid;gap:6px;font-size:.95rem;line-height:1.45}
.finish-cv{margin:0 0 12px;font-size:.92rem}
.finish-outcome{display:grid;gap:8px}
.finish-outcome p{margin:0}
.finish-reasons{display:grid;gap:6px}
.finish-help{margin:4px 0 0;font-weight:700;font-size:.95rem}
body[data-theme="dark"] .finish-guide{background:rgba(164,147,255,.12)}
/* Search: the place is fixed to Malta (owner 24 Oct "only available in Malta"); looks like the fields around it. */
.search-fixed{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;box-sizing:border-box;min-height:50px;padding:8px 16px;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:rgba(255,255,255,.98);color:#172044;line-height:1.2}
.search-fixed img{width:22px;height:15px;border-radius:2px;box-shadow:0 0 0 1px rgba(17,27,71,.12)}
.search-fixed strong{font-size:1rem;font-weight:800;letter-spacing:.02em}
.search-fixed span{color:#5e6479;font-size:.82rem;font-weight:600}
/* /learn: courses and training in Malta (owner 25 Oct). */
.learn-intro{max-width:68ch;line-height:1.55;margin:0 0 14px}
.learn-group{margin:0 0 28px}
.learn-group h2{font-size:1.25rem;margin:0 0 10px}
.learn-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}
.learn-card{display:flex;flex-direction:column;gap:8px;min-width:0;padding:16px;border:1px solid rgba(17,27,71,.1);border-radius:14px;background:rgba(255,255,255,.75)}
.learn-card h3{margin:0;font-size:1.02rem;line-height:1.3}
.learn-provider{margin:0;font-size:.8rem;font-weight:700;color:#6047c6}
.learn-what{margin:0;line-height:1.5}
.learn-card dl{margin:0;display:grid;gap:6px}
.learn-card dt{font-size:.74rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;opacity:.65}
.learn-card dd{margin:0;font-size:.9rem;line-height:1.45}
.learn-link{align-self:flex-start;margin-top:auto;padding:9px 14px;border-radius:10px;background:#6047c6;color:#fff!important;font-weight:800;font-size:.88rem;text-decoration:none}
.learn-checked{font-size:.86rem;opacity:.8;line-height:1.5}
.news-learn{display:grid;gap:2px;margin:0 0 22px;padding:14px 16px;border-radius:14px;background:#6047c6;color:#fff!important;text-decoration:none}
.news-learn strong{font-size:1.02rem}
.news-learn span{font-size:.88rem;opacity:.9}
body[data-theme="dark"] .learn-card{background:rgba(255,255,255,.04);border-color:rgba(196,205,238,.18)}
body[data-theme="dark"] .learn-provider{color:#cbbfff}
/* Search results: land below the sticky header; a clear button next to the count (owner 25 Oct). */
#jobs{scroll-margin-top:84px}
.clear-search{margin-left:8px;padding:4px 10px;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}

/* WhatsApp channel: the hero button breathes softly and a small invite card slides up after 5 seconds (owner 25 Oct) */
.hero-wa{position:relative;animation:wa-breathe 2.6s ease-in-out infinite}
.hero-wa svg{animation:wa-nudge 2.6s ease-in-out infinite;transform-origin:50% 60%}
@keyframes wa-breathe{0%,100%{box-shadow:0 4px 14px rgba(0,0,0,.18),0 0 0 0 rgba(37,211,102,.55)}55%{box-shadow:0 4px 14px rgba(0,0,0,.18),0 0 0 10px rgba(37,211,102,0)}}
@keyframes wa-nudge{0%,70%,100%{transform:rotate(0)}76%{transform:rotate(-12deg)}82%{transform:rotate(10deg)}88%{transform:rotate(-6deg)}}
.wa-invite{position:fixed;z-index:60;left:12px;right:12px;bottom:12px;display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:start;padding:16px 16px 14px;border-radius:18px;background:var(--wa-invite-bg,#fff);color:var(--wa-invite-ink,#0f1a45);box-shadow:0 18px 50px rgba(15,26,69,.28);border:1px solid rgba(21,128,61,.18);opacity:0;transform:translateY(24px);transition:opacity .35s ease,transform .35s ease;pointer-events:none}
.wa-invite.is-on{opacity:1;transform:none;pointer-events:auto}
.wa-invite-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#25d366;color:#fff}
.wa-invite-icon svg{width:26px;height:26px}
.wa-invite-copy strong{display:block;margin:2px 28px 4px 0;font-size:1.02rem;line-height:1.25}
.wa-invite-copy p{margin:0;font-size:.92rem;line-height:1.45;opacity:.85}
.wa-invite-actions{grid-column:1/-1;display:flex;gap:8px;align-items:center}
.wa-invite-join{flex:1;display:flex;align-items:center;justify-content:center;min-height:46px;padding:0 10px;border-radius:12px;background:#15803d;color:#fff!important;font-weight:800;text-decoration:none}
.wa-invite-join.wa-invite-tg{background:#146a9b}
.wa-invite-close{position:absolute;top:8px;right:8px;width:32px;height:32px;border:0;border-radius:50%;background:transparent;color:inherit;font-size:1.3rem;line-height:1;opacity:.6;cursor:pointer}
@media(min-width:720px){.wa-invite{left:20px;right:auto;bottom:20px;width:360px}}
@media(prefers-reduced-motion:reduce){.hero-wa,.hero-wa svg{animation:none}.wa-invite{transition:none}}
body[data-theme="dark"] .wa-invite{--wa-invite-bg:#151f49;--wa-invite-ink:#eef1ff;border-color:rgba(37,211,102,.3)}
@media(prefers-color-scheme:dark){body:not([data-theme="light"]) .wa-invite{--wa-invite-bg:#151f49;--wa-invite-ink:#eef1ff}}
/* /news: "Malta today" fun, culture and useful news (owner 25 Oct) */
.news-life{margin-top:14px;padding-top:12px;border-top:1px dashed rgba(109,74,255,.3)}
.news-life-title{margin:0 0 8px;font-size:1.05rem;color:#b45309}
body[data-theme="dark"] .news-life-title{color:#ffd84d}
/* /news: the whole card opens the story, not only the title (owner 25 Oct); the photo credit link stays on top */
.news-list li{position:relative;cursor:pointer;transition:border-color .15s,transform .15s}
.news-list li:hover{border-color:rgba(109,74,255,.45);transform:translateY(-1px)}
.news-list h3 a::after{content:"";position:absolute;inset:0;border-radius:14px}
.news-list li:focus-within{outline:2px solid rgba(109,74,255,.55);outline-offset:2px}
.news-list .news-photo figcaption{position:relative;z-index:1}
/* Popup: the daily email (owner 25 Oct) */
.wa-invite-mail{grid-column:1/-1;margin:2px 0 0;padding-top:10px;border-top:1px solid rgba(15,26,69,.1)}
.wa-invite-mail p{margin:0 0 8px;font-size:.86rem;line-height:1.4;opacity:.85}
.wa-invite-mail-row{display:flex;gap:8px}
.wa-invite-mail input{flex:1;min-width:0;min-height:44px;padding:0 12px;border:1px solid rgba(15,26,69,.2);border-radius:11px;background:transparent;color:inherit;font:inherit;font-size:16px}
.wa-invite-mail button{flex:none;min-height:44px;padding:0 14px;border:0;border-radius:11px;background:#6047c6;color:#fff;font:inherit;font-weight:800;cursor:pointer}
.wa-invite-mail input[hidden]+button{flex:1}
.wa-invite-mail .wa-invite-mail-status{margin:6px 0 0;font-weight:700;opacity:1}
.wa-invite-mail .wa-invite-mail-status:empty{display:none}
.digest-on{margin:12px auto;max-width:1100px;padding:12px 16px;border-radius:12px;background:#e6f6ec;color:#145c35;font-weight:700}
body[data-theme="dark"] .wa-invite-mail{border-color:rgba(189,199,245,.2)}body[data-theme="dark"] .wa-invite-mail input{border-color:rgba(189,199,245,.3)}
/* Browse in two taps (owner 26 Oct 2026): categories as a row of chips on phones (wider screens keep the sidebar),
   then the chosen category's roles with counts (app.js CategoryBrowser). */
.category-browser{display:grid;gap:10px;margin:0 0 14px;min-width:0}
.cb-mains{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 8px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.cb-roles{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cb-roles[hidden]{display:none}
.cb-roles p{flex-basis:100%;margin:0;font-size:.8rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#5b43c8}
.cb-chip{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border:1px solid #d9dcec;border-radius:999px;background:#fff;color:#172044;font:inherit;font-size:.9rem;font-weight:700;cursor:pointer;white-space:nowrap}
.cb-chip small{font-size:.76rem;font-weight:700;color:#667085}
.cb-chip.active{background:#5b43c8;border-color:#5b43c8;color:#fff}
.cb-chip.active small{color:#e4dcff}
@media(min-width:841px){.cb-mains{display:none}}
body[data-theme="dark"] .cb-chip{background:#151f49;color:#eef1ff;border-color:rgba(189,199,245,.3)}
body[data-theme="dark"] .cb-chip small{color:#c3c9e8}
body[data-theme="dark"] .cb-chip.active{background:#7657e8;border-color:#7657e8}
body[data-theme="dark"] .cb-roles p{color:#c4b5ff}
@media(max-width:600px){.cb-chip{min-height:36px;padding:0 12px;font-size:.84rem}.cb-roles{gap:6px}}
/* Sidebar: the chosen category's roles, indented under it (owner 27 Oct 2026: "add the subcategories"). */
.category-roles{display:grid;gap:2px;margin:2px 0 8px 12px;padding-left:10px;border-left:2px solid #e4ddff}
.category-role{display:flex;justify-content:space-between;align-items:baseline;gap:8px;width:100%;padding:7px 10px;border:0;border-radius:9px;background:transparent;color:#4d5374;font:inherit;font-size:.84rem;font-weight:600;text-align:left;cursor:pointer}
.category-role small{flex:none;font-size:.76rem;color:#8a90a8}
.category-role:hover{background:#f4f1ff;color:#4f37ad}
.category-role.active{background:#ece7ff;color:#4f37ad;font-weight:800}
body[data-theme="dark"] .category-roles{border-color:rgba(189,199,245,.25)}
body[data-theme="dark"] .category-role{color:#c3c9e8}
body[data-theme="dark"] .category-role:hover,body[data-theme="dark"] .category-role.active{background:rgba(189,199,245,.12);color:#fff}
/* The category list (owner 27 Oct 2026: "keep them organized, not over divided, beautify the category list"): an icon,
   the name and a count badge per category; the chosen one highlighted, with its roles under it. */
.filters .category-list{display:grid;gap:2px}
.filters .category{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;font-weight:600;line-height:1.25;transform:none!important}
.filters .category .cat-ico{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#f4f1ff;font-size:17px;color:inherit!important}
.filters .category .cat-name{flex:1;min-width:0;color:inherit!important;font-size:.88rem!important}
.filters .category .cat-count{flex:none;min-width:36px;padding:3px 8px;border-radius:999px;background:#f1f2f7;color:#5b6380!important;font-size:.74rem!important;font-weight:800;text-align:center}
.filters .category:hover{background:#f7f5ff}
.filters .category.active{background:#eee9ff;color:#3f2a9c;font-weight:800}
.filters .category.active .cat-ico{background:#fff;box-shadow:0 2px 8px rgba(91,67,200,.18)}
.filters .category.active .cat-count{background:#5b43c8;color:#fff!important}
.filters .category-roles{margin:4px 0 10px 26px}
body[data-theme="dark"] .filters .category .cat-ico{background:rgba(189,199,245,.12)}
body[data-theme="dark"] .filters .category .cat-count{background:rgba(189,199,245,.14);color:#dce2ff!important}
body[data-theme="dark"] .filters .category.active{background:rgba(117,89,220,.28);color:#fff}
body[data-theme="dark"] .filters .category.active .cat-count{background:#7657e8}
/* Room for one-line category names (owner 27 Oct 2026: "beautify the category list"). */
@media (min-width:1100px){.content{grid-template-columns:275px minmax(0,1fr)!important}}
.filters .category .cat-ico{width:28px;height:28px;font-size:15px;border-radius:9px}
.filters .category{gap:9px;padding:7px 8px}
.filters .category .cat-name{font-size:.82rem!important;letter-spacing:-.005em}
@media (min-width:841px){.filters{padding:14px 8px!important}.filters h2{padding-left:10px!important}}
/* Cards | List (owner 27 Oct 2026: "we also need to offer list view … alphabetical and filter columns in the list
   view"). The toggle sits in the jobs heading; the table sorts by a tap on a column title and filters under it. */
.view-toggle{display:inline-flex;flex:none;padding:3px;border:1px solid #e3e4ef;border-radius:11px;background:#fff;gap:2px}
.view-toggle button{border:0;background:transparent;color:#4b5270;font-weight:800;font-size:.84rem;padding:7px 14px;border-radius:8px;cursor:pointer;height:auto}
.view-toggle button[aria-pressed="true"]{background:#5b43c8;color:#fff}
.job-table-wrap{margin-top:4px;border:1px solid #e7e8f1;border-radius:16px;background:#fff;overflow:hidden}
.job-table{width:100%;border-collapse:collapse;font-size:.88rem;color:#111b47}
.job-table th{text-align:left;font-weight:800;padding:0;background:#f7f7fc;border-bottom:1px solid #e7e8f1;vertical-align:bottom}
.job-table .jt-head button{display:flex;align-items:center;gap:2px;width:100%;height:auto;border:0;background:transparent;color:#111b47;font-weight:800;font-size:.8rem;letter-spacing:.02em;text-transform:uppercase;padding:12px 12px 8px;cursor:pointer;text-align:left}
.job-table .jt-head button:hover{color:#5b43c8}
.job-table th[aria-sort="ascending"] button,.job-table th[aria-sort="descending"] button{color:#5b43c8}
.jt-arrow{font-size:.7rem}
.job-table .jt-filters th{padding:0 8px 10px;font-weight:400}
.job-table .jt-filters input,.job-table .jt-filters select{height:34px;width:100%;min-width:0;border:1px solid #dfe1ec;border-radius:8px;padding:0 9px;font-size:.82rem;background:#fff;color:#111b47}
.job-table .jt-filters input:focus,.job-table .jt-filters select:focus{outline:2px solid #8b74ff;outline-offset:0;border-color:#8b74ff}
.job-table td{padding:11px 12px;border-bottom:1px solid #eef0f6;vertical-align:top;color:#3d4462}
.job-table tbody tr:last-child td{border-bottom:0}
.job-table tbody tr:hover td{background:#faf9ff}
.job-table td:first-child a{color:#111b47;font-weight:800;text-decoration:none}
.job-table td:first-child a:hover{color:#5b43c8;text-decoration:underline}
.job-table td[data-label="Pay"]{color:#176952;font-weight:700;white-space:nowrap}
.job-table td[data-label="Posted"]{white-space:nowrap;color:#5e6479}
.job-table .jt-empty{text-align:center;color:#5e6479;padding:26px 12px}
.job-table th:nth-child(1){width:30%}.job-table th:nth-child(2){width:21%}.job-table th:nth-child(3){width:16%}.job-table th:nth-child(4){width:14%}
body[data-theme="dark"] .view-toggle{background:#1a2150;border-color:#2c3570}
body[data-theme="dark"] .view-toggle button{color:#c3cbea}
body[data-theme="dark"] .view-toggle button[aria-pressed="true"]{background:#7657e8;color:#fff}
body[data-theme="dark"] .job-table-wrap{background:#141a44;border-color:#2c3570}
body[data-theme="dark"] .job-table,body[data-theme="dark"] .job-table td:first-child a,body[data-theme="dark"] .job-table .jt-head button{color:#f1f3ff}
body[data-theme="dark"] .job-table th{background:#1a2150;border-color:#2c3570}
body[data-theme="dark"] .job-table td{color:#c3cbea;border-color:#232b5e}
body[data-theme="dark"] .job-table tbody tr:hover td{background:#1c2356}
body[data-theme="dark"] .job-table td[data-label="Pay"]{color:#7ee2bf}
body[data-theme="dark"] .job-table .jt-filters input,body[data-theme="dark"] .job-table .jt-filters select{background:#0f1438;border-color:#2c3570;color:#f1f3ff}
/* Phones: the column titles become a row of sort chips, the filters stack, each job is a compact block. */
@media (max-width:760px){
  .jobs-heading .view-toggle{align-self:flex-start}
  .job-table,.job-table thead,.job-table tbody,.job-table tr,.job-table td,.job-table th{display:block;width:auto!important}
  .job-table .jt-head{display:flex;flex-wrap:wrap;gap:6px;padding:10px 10px 4px;background:#f7f7fc}
  .job-table .jt-head th{border:0;background:transparent}
  .job-table .jt-head button{padding:6px 10px;border:1px solid #e0e2ee;border-radius:999px;background:#fff;font-size:.72rem;width:auto}
  .job-table .jt-filters{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:6px 10px 10px;background:#f7f7fc;border-bottom:1px solid #e7e8f1}
  .job-table .jt-filters th{padding:0;border:0;background:transparent}
  .job-table .jt-filters th:empty{display:none}
  .job-table tbody tr{padding:11px 14px;border-bottom:1px solid #eef0f6}
  .job-table tbody tr:last-child{border-bottom:0}
  .job-table td{padding:0;border:0;display:inline}
  .job-table td:first-child{display:block;font-size:.95rem;margin-bottom:3px}
  .job-table td:not(:first-child):not(:empty)::after{content:" · ";color:#a0a5ba}
  .job-table td:last-child::after{content:""!important}
  .job-table td[data-label="Employer"]{display:block;color:#3d4462;margin-bottom:2px}
  .job-table td[data-label="Employer"]::after{content:""!important}
  .job-table td,.job-table td[data-label="Pay"],.job-table td[data-label="Posted"]{font-size:.8rem}
  .job-table .jt-empty{display:block}
  body[data-theme="dark"] .job-table .jt-head,body[data-theme="dark"] .job-table .jt-filters{background:#1a2150;border-color:#2c3570}
  body[data-theme="dark"] .job-table .jt-head button{background:#141a44;border-color:#2c3570}
  body[data-theme="dark"] .job-table tbody tr{border-color:#232b5e}
}
@media (min-width:761px){.jobs-heading{flex-wrap:wrap}.jobs-heading>div:first-child{flex:1 1 320px}.jobs-heading #results-meta{white-space:nowrap}}
/* Fixed column widths: one long pay text ("€1,200–€1,500 plus accommodation…") must not push Posted off the table. */
@media (min-width:761px){
  .job-table{table-layout:fixed}
  .job-table th:nth-child(1){width:28%}.job-table th:nth-child(2){width:19%}.job-table th:nth-child(3){width:15%}.job-table th:nth-child(4){width:13%}.job-table th:nth-child(5){width:14%}.job-table th:nth-child(6){width:11%}
  .job-table td{overflow-wrap:anywhere}
  .job-table td[data-label="Pay"]{white-space:normal}
  .job-table .jt-head button{padding:12px 10px 8px;font-size:.74rem}
  .job-table .jt-filters th{padding:0 6px 10px}
}
/* While new jobs load, the old ones stay and dim (only when loading takes longer than a blink). */
.job-list,.job-table tbody{transition:opacity .18s ease}
.job-list.is-busy,.job-table-wrap.is-busy tbody{opacity:.45;transition-delay:.12s}
/* "New roles worth a closer look" carousel (owner 28 Oct 2026: "convert to a carousel"): one row of tiles that snaps;
   4 across on wide screens, 3 on tablets, 2 and a peek of the next on phones. */
.featured-roles .fc-side{display:flex;align-items:center;gap:14px}
.featured-roles .fc-nav{display:flex;gap:6px}
.featured-roles .fc-nav button{width:38px;height:38px;border-radius:999px;border:1px solid #ddd8f3;background:#fff;color:#3f2a9c;font-size:1.35rem;line-height:1;font-weight:800;cursor:pointer;display:grid;place-items:center;padding:0 0 3px;box-shadow:0 4px 12px rgba(32,26,90,.08)}
.featured-roles .fc-nav button:hover:not(:disabled){background:#5b43c8;color:#fff;border-color:#5b43c8}
.featured-roles .fc-nav button:disabled{opacity:.35;cursor:default;box-shadow:none}
.featured-roles .fc-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 42px)/4);gap:14px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-left:0;overscroll-behavior-x:contain;padding:4px 2px 12px;margin:0 -2px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.featured-roles .fc-track::-webkit-scrollbar{display:none}
.featured-roles .fc-track>*{scroll-snap-align:start;min-width:0}
@media (max-width:1099px){.featured-roles .fc-track{grid-auto-columns:calc((100% - 28px)/3)}}
@media (max-width:760px){.featured-roles .fc-track{grid-auto-columns:44%;gap:10px}.featured-roles .fc-nav button{width:34px;height:34px;font-size:1.2rem}}
@media (max-width:540px){.featured-roles .fc-side{width:100%;justify-content:space-between}}
@media (prefers-reduced-motion:reduce){.featured-roles .fc-track{scroll-behavior:auto}}
body[data-theme="dark"] .featured-roles .fc-nav button{background:#141d44;border-color:rgba(184,193,235,.22);color:#e8ecff;box-shadow:none}
body[data-theme="dark"] .featured-roles .fc-nav button:hover:not(:disabled){background:#7657e8;border-color:#7657e8}
.featured-roles .fc-side>a{display:inline-block;padding:10px 0;color:#5841bc;font-size:.9rem;font-weight:900;text-decoration:none;white-space:nowrap}
.featured-roles .fc-side>a:hover{text-decoration:underline}
body[data-theme="dark"] .featured-roles .fc-side>a{color:#c4b5ff!important}
/* Admin only (owner 28 Oct 2026): page views on each job tile, carousel card and list row (app.js AdminViews). */
.admin-views{display:inline-block;margin-top:7px;padding:3px 8px;border-radius:999px;background:#fff4d6;color:#7a4b00;border:1px solid #f1d58a;font-size:.7rem;font-weight:800;line-height:1.2;white-space:nowrap}
.job-tile .admin-views{display:table}
.job-table td .admin-views{margin:0 0 0 8px;vertical-align:1px}
body[data-theme="dark"] .admin-views{background:rgba(255,196,60,.16);color:#ffd77a;border-color:rgba(255,196,60,.35)}
/* Like on job cards and list rows (owner 28 Oct) */
.job-like{position:absolute;z-index:3;top:8px;left:8px;display:grid;place-items:center;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 2px 8px rgba(15,26,69,.18);cursor:pointer;transition:transform .15s ease}
.job-like svg{width:21px;height:21px;fill:transparent;stroke:#1d2547;stroke-width:1.8}
.job-like[aria-pressed="true"] svg{fill:#e0245e;stroke:#e0245e}
.job-like:active{transform:scale(.9)}
.job-like:focus-visible{outline:3px solid #6047c6;outline-offset:2px}
.job-table .job-like{position:static;display:inline-grid;width:30px;height:30px;margin:0 6px 0 0;vertical-align:middle;box-shadow:none;background:transparent}
.job-table .job-like svg{width:19px;height:19px}
.like-toast{position:fixed;z-index:70;left:50%;bottom:20px;margin:0;padding:12px 16px;border-radius:12px;background:#0f1a45;color:#fff;font-weight:700;box-shadow:0 10px 30px rgba(15,26,69,.3);transform:translate(-50%,30px);opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease;max-width:calc(100vw - 32px)}
.like-toast.is-on{opacity:1;transform:translate(-50%,0);pointer-events:auto}
.like-toast a{color:#ffd84d}
body[data-theme="dark"] .job-table .job-like svg{stroke:#eef1ff}
@media(prefers-reduced-motion:reduce){.job-like,.like-toast{transition:none}}
/* Heart placement on the tiles: under Apply, clear of the ✦ illustration label; white disc always visible */
.job-card.job-tile .job-like{top:50px;left:auto;right:8px;background:rgba(255,255,255,.94);border:1px solid rgba(15,26,69,.08)}
body[data-theme="dark"] .job-card.job-tile .job-like{background:rgba(21,31,73,.92);border-color:rgba(189,199,245,.25)}
body[data-theme="dark"] .job-card.job-tile .job-like svg{stroke:#eef1ff}
/* Deadlines and the "Posted" filter (owner 28 Oct 2026). */
.job-fact.is-deadline{background:#fff1e6!important;color:#9a3d00!important;font-weight:800}
.job-fact.is-deadline.is-soon{background:#fde4e2!important;color:#b42318!important}
.job-table .jt-deadline{display:block;margin-top:2px;font-size:.74rem;font-weight:700;color:#9a3d00}
.job-table .jt-deadline.is-soon{color:#b42318}
.posted-filter select{height:40px;border:1px solid #e3e4ef;border-radius:11px;padding:0 12px;background:#fff;color:#111b47;font:inherit;font-weight:700;font-size:.84rem;cursor:pointer;max-width:100%}
.jobs-heading .posted-filter{flex:none}
body[data-theme="dark"] .posted-filter select{background:#1a2150;border-color:#2c3570;color:#e8ecff}
body[data-theme="dark"] .job-fact.is-deadline{background:rgba(255,150,80,.16)!important;color:#ffc79a!important}
@media (max-width:760px){.jobs-heading .posted-filter{align-self:flex-start}.job-table td[data-label="Posted"] .jt-deadline{display:inline;margin-left:6px}}
/* Space before the next band (owner 28 Oct 2026: "add margin here or padding depending on the elements"): the
   employers rail sat flush on the dark employer section below it. */
.company-discovery{margin-bottom:64px!important}
@media (max-width:840px){.company-discovery{margin-bottom:40px!important}}
/* "Get the Unirecruit app" on phones (owner 28 Oct 2026), shown by app-install.js AppSection; never on wide screens. */
.app-get{display:grid;grid-template-columns:56px 1fr;gap:12px 14px;align-items:center;margin:18px 16px 6px;padding:16px;border-radius:18px;background:linear-gradient(135deg,#f4f1ff,#fff);border:1px solid rgba(96,71,198,.22);box-shadow:0 10px 26px rgba(32,26,90,.08)}
.app-get[hidden]{display:none!important}
.app-get img{width:56px;height:56px;border-radius:14px;box-shadow:0 2px 10px rgba(15,26,69,.16)}
.app-get h2{margin:0;font-size:1.08rem;letter-spacing:-.02em;color:#111b47}
.app-get p{margin:4px 0 0;font-size:.88rem;line-height:1.45;color:#4b5270}
.app-get-go{grid-column:1/-1;min-height:48px;border:0;border-radius:12px;background:#6047c6;color:#fff;font:inherit;font-weight:800;font-size:1rem;cursor:pointer}
.app-get-go:active{transform:translateY(1px)}
.app-get-note{grid-column:1/-1;margin:0!important;padding:10px 12px;border-radius:12px;background:#fff;border:1px dashed rgba(96,71,198,.35);font-size:.86rem!important}
@media (min-width:901px){.app-get{display:none!important}}
body[data-theme="dark"] .app-get{background:linear-gradient(135deg,#1b2459,#141d44);border-color:rgba(189,199,245,.22)}
body[data-theme="dark"] .app-get h2{color:#f1f3ff}
body[data-theme="dark"] .app-get p{color:#c3cbea}
body[data-theme="dark"] .app-get-note{background:#0f1438}
/* Feedback: fix a problem in one tap (owner 28 Oct) */
.fb-panel .fix h2,.fb-panel .fb-own{margin:0 0 8px;font-size:1rem}
.fb-panel .fb-own{margin-top:16px}
.fb-panel .fb-note{margin:0 0 8px;font-size:.8rem;opacity:.75}
.fix-list{display:grid;gap:6px}
.fix-list button{display:block;width:100%;min-height:42px;padding:8px 12px;border:1px solid #dcd7f5;border-radius:11px;background:#f7f5ff;color:#24196b;font:inherit;font-size:.9rem;font-weight:700;text-align:left;cursor:pointer}
.fix-list button:active{transform:scale(.99)}
.fix-out{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:#eef9f2;color:#14532d;font-size:.9rem;line-height:1.45}
.fix-out p{margin:0}
.fix-out a{color:inherit;font-weight:800}
.fix-ask{display:flex;gap:8px;margin-top:8px}
.fix-ask button{flex:1;min-height:40px;border:0;border-radius:10px;background:#16a34a;color:#fff;font:inherit;font-weight:800;cursor:pointer}
.fix-ask button[data-outcome="not-fixed"]{background:#fff;color:#14532d;border:1px solid #9bd3ae}
body[data-theme="dark"] .fix-list button{background:#1b2558;border-color:#2f3a7a;color:#e7e1ff}
body[data-theme="dark"] .fix-out{background:rgba(22,163,74,.16);color:#bbf7d0}
body[data-theme="dark"] .fix-ask button[data-outcome="not-fixed"]{background:transparent;color:#bbf7d0}

/* Popular searches in the homepage footer (owner 30 Oct 2026: show up in Google for jobs in Malta): plain links to the job-type pages. */
.footer-searches{flex-basis:100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 14px;margin:0 0 6px;padding:0 0 10px;border-bottom:1px solid rgba(91,67,200,.15)}
.footer-searches span{font-weight:700}
/* Hero numbers (owner 30 Oct 2026: the running totals "next to the open jobs and employers"): six numbers, three a row. */
.stats{display:grid!important;grid-template-columns:repeat(3,auto);justify-content:start;gap:14px 0!important}
.stats div{min-width:0!important;padding:0 22px!important;border-left:1px solid rgba(225,228,255,.3)!important}
.stats div:nth-child(3n+1){padding-left:0!important;border-left:0!important}
.stats div{align-content:start!important}
.stats dt{font-variant-numeric:tabular-nums}
@media (max-width:480px){.stats div{padding:0 13px!important}.stats dt{font-size:1.35rem!important}.stats dd{font-size:.76rem!important}}
/* Owner 30 Oct 2026 (phone screenshot): "put in the centre align" - the hero numbers sit centred under the channel buttons. */
@media (max-width:840px){.stats{justify-content:center!important;text-align:center}.stats div:nth-child(3n+1){padding-left:13px!important}.stats div:first-child{padding-left:0!important}}
