/* JobSearching app.css */
@import url("/assets/css/tokens.css");

/* Prevenire overflow orizzontale al ridimensionamento */
html {
  overflow-x: hidden;
  max-width: 100%;
}
/* Desktop: riserva spazio scrollbar per evitare shift topbar/logo tra pagine (es. Profilo vs Dashboard) */
@media (min-width: 768px) {
  html {
    scrollbar-gutter: stable;
  }
}

body {
  margin: 0;
  min-height: 100vh;
  background: #fff;
  overflow-x: hidden;
}

/* Accedi, Registrati, Esci: stile prodotto unificato (topbar, header-nav, pricing-cta) */
.topbar .topnav .jc-btn,
.jc-header-nav .jc-btn,
.pricing-cta .jc-btn,
.jc-btn--auth {
  font-weight: 600;
  font-size: 14px;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.topbar .topnav .jc-btn--ghost,
.jc-header-nav .jc-btn--ghost,
.pricing-cta .jc-btn--ghost,
.jc-btn--auth.jc-btn--ghost {
  border: 1px solid rgba(47, 43, 42, 0.2);
  color: var(--text);
  background: #fff;
}
.topbar .topnav .jc-btn--ghost:hover,
.jc-header-nav .jc-btn--ghost:hover,
.pricing-cta .jc-btn--ghost:hover,
.jc-btn--auth.jc-btn--ghost:hover {
  background: var(--soft);
  border-color: rgba(17, 24, 39, 0.25);
}
.topbar .topnav .jc-btn--primary,
.jc-header-nav .jc-btn--primary,
.pricing-cta .jc-btn--primary,
.jc-btn--auth.jc-btn--primary {
  background: var(--cta);
  border: 1px solid var(--cta);
  color: #fff;
}
.topbar .topnav .jc-btn--primary:hover,
.jc-header-nav .jc-btn--primary:hover,
.pricing-cta .jc-btn--primary:hover,
.jc-btn--auth.jc-btn--primary:hover {
  background: var(--cta-2);
  border-color: var(--cta-2);
}
/* Mobile: compatti, in armonia con logo */
.topbar .topnav .jc-btn,
.jc-header-nav .jc-btn {
  height: 36px;
  min-height: 36px;
  padding: 6px 12px;
  border-radius: 10px;
}
@media (max-width: 767px) {
  .topbar .topnav .jc-btn,
  .topbar .topnav .jc-btn--auth {
    height: 36px;
    min-height: 36px;
    padding: 0 10px;
    font-size: 13px;
    border-radius: 10px;
  }
}
.pricing-cta .jc-btn,
.jc-btn--auth {
  min-height: 40px;
  padding: 8px 16px;
  border-radius: 10px;
}
@media (min-width: 641px) {
  .topbar .topnav .jc-btn,
  .jc-header-nav .jc-btn {
    padding: 8px 16px;
    min-height: 38px;
  }
  .pricing-cta .jc-btn,
  .jc-btn--auth {
    min-height: 42px;
    padding: 10px 20px;
  }
}

/* Desktop: prevenire overflow al ridimensionamento finestra (caso 1, caso 2, tutto il sito) */
@media (min-width: 768px) {
  main.jc-container,
  main.wrap {
    overflow-x: hidden;
    min-width: 0;
  }
  .jc-container {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }
  .jc-welcome-row,
  .jc-search-block,
  .jc-premium-search,
  .jc-premium-search__bar {
    min-width: 0;
  }
  .jc-premium-search__input-wrap {
    min-width: 0;
  }
  .jc-premium-search__filters {
    flex-wrap: wrap;
  }
  .jc-premium-kpis {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  }
  .jc-premium-dashboard {
    min-width: 0;
  }
  .jc-section--annunci,
  .jc-section--annunci-free {
    min-width: 0;
  }
  .jc-annunci-blocks {
    min-width: 0;
  }
}

/* Mobile: pannello dettaglio che si apre dal basso (solo viewport <= 1023px) */
.jc-mobile-detail-sheet {
  position: fixed;
  inset: 0;
  width: 100%;
  max-width: 100vw;
  z-index: 9999;
  pointer-events: none;
  visibility: hidden;
  transition: visibility 0.25s;
  overflow: hidden;
}
@media (max-width: 1023px) {
  .jc-mobile-detail-sheet.is-open {
    pointer-events: auto;
    visibility: visible;
  }
  .jc-mobile-detail-sheet__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.45);
    opacity: 0;
    transition: opacity 0.3s ease;
  }
  .jc-mobile-detail-sheet.is-open .jc-mobile-detail-sheet__backdrop {
    opacity: 1;
  }
  .jc-mobile-detail-sheet__panel {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 95vh;
    max-height: 95vh;
    width: 100%;
    max-width: 100vw;
    box-sizing: border-box;
    background: #fff;
    border-radius: 20px 20px 0 0;
    box-shadow: 0 -8px 32px rgba(0,0,0,.12);
    transform: translateY(100%);
    transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }
  .jc-mobile-detail-sheet.is-open .jc-mobile-detail-sheet__panel {
    transform: translateY(0);
  }
  .jc-mobile-detail-sheet__handle {
    flex-shrink: 0;
    width: 40px;
    height: 4px;
    margin: 12px auto 8px;
    background: var(--border);
    border-radius: 2px;
  }
  .jc-mobile-detail-sheet__content {
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    flex: 1 1 0;
    min-height: 0;
    min-width: 0;
    max-width: 100%;
    padding: 16px 16px 8px;
    padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
  }
  .jc-mobile-detail__footer {
    margin-top: 12px;
  }
  .jc-mobile-detail__actions .jc-mobile-detail-sheet__close,
  .jc-mobile-detail__footer .jc-mobile-detail-sheet__close {
    flex-shrink: 0;
    margin: 0;
  }
  .jc-mobile-detail-sheet .jc-mobile-detail {
    max-width: 100%;
    overflow-wrap: break-word;
    word-wrap: break-word;
    overflow-x: hidden;
  }
  .jc-mobile-detail__head { margin-bottom: 16px; display: flex; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
  .jc-mobile-detail__thumb {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid rgba(47,43,42,.1);
    background: #F4F1ED;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: box-shadow .2s, transform .15s;
    text-decoration: none;
  }
  .jc-mobile-detail__thumb:hover {
    box-shadow: var(--shadowSoft);
    transform: scale(1.05);
  }
  .jc-mobile-detail__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }
  .jc-mobile-detail__head-text { flex: 1 1 auto; min-width: 0; }
  .jc-mobile-detail__badges { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
  .jc-mobile-detail__title { margin: 0 0 4px; font-size: 18px; font-weight: 700; overflow-wrap: break-word; }
  .jc-mobile-detail__company { margin: 0 0 4px; font-size: 14px; color: var(--muted); }
  .jc-mobile-detail__meta { margin: 0; font-size: 13px; color: var(--muted); }
  .jc-mobile-detail__section { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--border); }
  .jc-mobile-detail__section-title { margin: 0 0 8px; font-size: 12px; font-weight: 700; text-transform: uppercase; color: var(--muted); }
  .jc-mobile-detail__description { font-size: 14px; line-height: 1.6; overflow-wrap: break-word; }
  .jc-mobile-detail__actions { display: flex; gap: 10px; margin-top: 16px; margin-bottom: 0; flex-wrap: wrap; min-width: 0; }
  .jc-mobile-detail-sheet .jc-mobile-detail__actions .btn { min-width: 0; flex: 1 1 auto; }
  .jc-mobile-detail-sheet .jc-info { min-width: 0; }
  .jc-mobile-detail-sheet .jc-info__item { min-width: 0; overflow-wrap: break-word; }
}

/* Desktop: overlay centrato sopra la pagina (>= 900px) */
@media (min-width: 900px) {
  .jc-mobile-detail-sheet.is-open {
    pointer-events: auto;
    visibility: visible;
  }
  .jc-mobile-detail-sheet__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.45);
    opacity: 0;
    transition: opacity 0.3s ease;
  }
  .jc-mobile-detail-sheet.is-open .jc-mobile-detail-sheet__backdrop {
    opacity: 1;
  }
  .jc-mobile-detail-sheet__panel {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: auto;
    top: 5vh;
    width: 720px;
    max-width: 90vw;
    height: 90vh;
    min-height: 400px;
    max-height: 95vh;
    border-radius: 20px;
    box-shadow: 0 40px 120px rgba(0,0,0,.25);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    background: #fff;
    box-sizing: border-box;
  }
  .jc-mobile-detail-sheet.is-open .jc-mobile-detail-sheet__panel {
    transform: translateX(-50%) translateY(0);
  }
  .jc-mobile-detail-sheet__handle {
    display: none;
  }
  .jc-mobile-detail-sheet__content {
    overflow-x: hidden;
    overflow-y: auto;
    flex: 1 1 auto;
    min-height: 200px;
    padding: 20px 24px 24px;
    box-sizing: border-box;
  }
  .jc-mobile-detail-sheet .jc-mobile-detail__title { font-size: 20px; }
}

/* Dettaglio annuncio in sheet: allineato al layout job.php */
.jc-mobile-detail-sheet .jc-job-detail .jc-job-detail__actions.jc-mobile-detail__actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex-wrap: wrap;
}
.jc-mobile-detail-sheet .jc-job-detail .jc-job-detail__actions.jc-mobile-detail__actions .jc-job-detail__actions-top {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

/* Mobile: nascondi job panel a destra (dettaglio in sheet) */
@media (max-width: 1023px) {
  .jc-dashboard-right .jc-job-panel {
    display: none !important;
  }
}

/* Flash: scroll SOLO dentro questo blocco, mai su html/body */
.jc-vicino-flash-section {
  overflow-x: hidden;
  max-width: 100%;
}
.jc-vicino-flash {
  margin: 0;
  padding: 0 0 8px;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  contain: layout;
}

html {
  scroll-behavior: smooth;
}
.jc-home {
  background: var(--bg);
  color: var(--text);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}

.jc-container {
  width: min(100%, 1120px);
  margin: 0 auto;
}

/* Mobile: spaziatura professionale 20px (solo pagine app, home invariata) */
@media (max-width: 767px) {
  body:has(.jc-topbar-company),
  body:has(.jc-topbar-candidate) {
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box;
  }
  body:has(.jc-topbar-company) main.jc-container,
  body:has(.jc-topbar-candidate) main.jc-container,
  body:has(.jc-topbar-company) main.wrap,
  body:has(.jc-topbar-candidate) main.wrap,
  body:has(.jc-topbar-company) .wrap,
  body:has(.jc-topbar-candidate) .wrap {
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }
  /* Pagina segnalazione annuncio: margini laterali su mobile */
  body.jc-page-report main.jc-container {
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
  }
}

/* Pagine candidato: container con padding (base uguale per tutti) */
/* Mobile: body 20px laterale, main 0; tablet+: main 20px */
body:has(.jc-topbar-candidate) main.jc-container {
  padding: 24px 0 32px;
  box-sizing: border-box;
}
@media (min-width: 768px) {
  body:has(.jc-topbar-candidate) main.jc-container {
    padding: 24px 20px 40px;
  }
}

/* Pagine azienda: allineamento inizio testo uguale per tutte le pagine e tutti i piani */
body:has(.jc-topbar-company) main.jc-container.jc-page {
  padding: 24px 0 32px;
  box-sizing: border-box;
}
@media (min-width: 768px) {
  body:has(.jc-topbar-company) main.jc-container.jc-page {
    padding: 24px 20px 40px;
  }
}

/* Header parziale: logo (pagine candidate, company, login, jobs, ecc.) */
.jc-header {
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  background: #fff;
}
.jc-header__inner {
  width: min(100% - 32px, 1120px);
  margin: 0 auto;
  display: flex;
  align-items: center;
}
.jc-header__nav-right {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 12px;
}
.jc-header__logo {
  font-weight: 700;
  font-size: 20px;
  letter-spacing: -0.5px;
  color: var(--text);
  text-decoration: none;
}
.jc-header__logo:hover {
  color: var(--primary);
}
.jc-header__logo-text {
  display: inline-block;
}

/* Logo leggermente più grande su pagine non-Home (jc-header, jc-topbar-candidate, jc-topbar-company) */
.jc-header .brand__mark,
.jc-topbar-candidate .brand__mark,
.jc-topbar-company .brand__mark {
  flex-shrink: 0;
  width: 42px;
  height: 42px;
}
.jc-header .brand__mark .brand__job,
  .jc-topbar-candidate .brand__mark .brand__job,
  .jc-topbar-company .brand__mark .brand__job {
  font-size: 14px;
  top: 11px;
}
.jc-header .brand__name--logo,
.jc-topbar-candidate .brand__name--logo,
.jc-topbar-company .brand__name--logo {
  font-size: 24px;
}
.jc-header .brand__eye,
.jc-topbar-candidate .brand__eye,
.jc-topbar-company .brand__eye {
  width: 17px;
  height: 19px;
}

/* Mobile: logo e icone come Home (armonia su tutte le pagine app) */
@media (max-width: 640px) {
  .jc-header .brand__mark,
  .jc-topbar-candidate .brand__mark,
  .jc-topbar-company .brand__mark {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
  }
  .jc-header .brand__mark .brand__job,
  .jc-topbar-candidate .brand__mark .brand__job,
  .jc-topbar-company .brand__mark .brand__job {
    font-size: 13px;
    top: 10px;
  }
  .jc-header .brand__name--logo,
  .jc-topbar-candidate .brand__name--logo,
  .jc-topbar-company .brand__name--logo {
    font-size: 24px;
  }
  .jc-header .brand__eye,
  .jc-topbar-candidate .brand__eye,
  .jc-topbar-company .brand__eye {
    width: 17px;
    height: 19px;
  }
  .jc-header .brand,
  .jc-topbar-candidate .brand,
  .jc-topbar-company .brand {
    gap: 8px;
  }
  /* Icone proporzionate al logo */
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--icon,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--home,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--logout {
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
  }
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--icon svg,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--icon img,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--home svg,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--home img,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--logout svg,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--logout img {
    width: 20px;
    height: 20px;
  }
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--icon,
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-bell__btn.jc-btn--icon,
  .jc-topbar-company .jc-profile-dropdown__trigger.jc-btn--icon {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
  }
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--icon svg,
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--icon img,
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-bell__btn svg,
  .jc-topbar-company .jc-profile-dropdown__trigger svg {
    width: 20px !important;
    height: 20px !important;
  }
}

/* Topbar candidato e azienda: FIXED in alto */
:root {
  --jc-topbar-h: 56px;
  --jc-topbar-company-h: 56px;
}
body:has(.jc-topbar-candidate) {
  padding-top: var(--jc-topbar-h);
}
/* Stesso schema company: flex base, logo fisso, nav flessibile */
.jc-topbar-candidate {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 20px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  background: #fff;
  max-width: 100%;
  box-sizing: border-box;
  min-height: var(--jc-topbar-h);
}
.jc-topbar-candidate .jc-header {
  flex-shrink: 0;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
}
.jc-topbar-candidate .jc-header__inner {
  margin: 0;
  padding: 0;
  width: auto;
}
.jc-topbar-candidate .jc-candidate-top-row {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0;
  padding: 0;
  border: none;
  margin-bottom: 0;
}
/* Blocco icone: larghezza fissa, sempre stessa posizione a destra */
.jc-topbar-icons {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  min-width: 120px;
  justify-content: flex-end;
}
/* Topbar candidato: tutte le icone (home, campanella, uscita) stessa dimensione */
.jc-topbar-candidate .jc-topbar-icons .jc-btn--icon {
  width: 52px;
  height: 52px;
  min-width: 52px;
  min-height: 52px;
  flex-shrink: 0;
}
.jc-topbar-candidate .jc-topbar-icons .jc-btn--icon svg,
.jc-topbar-candidate .jc-topbar-icons .jc-btn--icon img {
  width: 26px;
  height: 26px;
}
/* Desktop: stesso grid company (max 1120px, padding 20px) */
@media (min-width: 1024px) {
  .jc-topbar-candidate {
    display: grid;
    grid-template-columns: minmax(20px, 1fr) min(1120px, calc(100% - 40px)) minmax(20px, 1fr);
    align-items: center;
    gap: 0;
    padding: 0;
    min-height: 56px;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
  }
  .jc-topbar-candidate .jc-header {
    grid-column: 2;
    grid-row: 1;
    justify-self: start;
    align-self: center;
    padding-left: 20px;
  }
  .jc-topbar-candidate .jc-candidate-top-row {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    flex: 0 0 auto;
    min-width: 0;
    gap: 24px;
    padding-right: 20px;
  }
  .jc-topbar-candidate .jc-candidate-nav {
    gap: 2px;
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
  }
  .jc-topbar-candidate .jc-topbar-icons {
    gap: 8px;
    min-width: 0;
  }
  .jc-topbar-candidate .jc-candidate-nav__link {
    padding: 12px 16px;
    font-size: 13px;
    font-weight: 500;
  }
  /* Desktop: icone compatte, standard professionali */
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--icon,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--home,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--logout {
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
  }
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--icon img,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--icon svg,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--home img,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--home svg,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--logout img,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--logout svg {
    width: 18px;
    height: 18px;
  }
}

@media (max-width: 900px) {
  :root {
    --jc-topbar-h: 54px;
  }
  .jc-topbar-candidate {
    gap: 10px;
    padding: 10px 12px;
  }
  .jc-topbar-candidate .jc-candidate-top-row {
    min-width: 120px;
    justify-content: flex-end;
  }
  .jc-topbar-icons {
    min-width: 116px;
  }
  /* Logo su mobile (allineato alle altre pagine) */
  .jc-topbar-candidate .brand {
    gap: 8px;
  }
  .jc-topbar-candidate .brand__mark {
    width: 42px;
    height: 42px;
    border-radius: 10px;
  }
  .jc-topbar-candidate .brand__mark .brand__job {
    font-size: 14px;
    top: 11px;
  }
  .jc-topbar-candidate .brand__loading {
    gap: 2px;
  }
  .jc-topbar-candidate .brand__dot {
    width: 5px;
    height: 5px;
  }
  .jc-topbar-candidate .brand__name--logo {
    font-size: 24px;
  }
  .jc-topbar-candidate .brand__eye {
    width: 17px;
    height: 19px;
  }
  /* Bottoni più compatti su mobile - tutte le icone stessa dimensione */
  .jc-topbar-candidate .jc-topbar-icons {
    align-items: center;
  }
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    align-self: center;
  }
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--icon img,
  .jc-topbar-candidate .jc-topbar-icons .jc-btn--icon svg {
    width: 22px;
    height: 22px;
  }
  .jc-topbar-candidate .jc-bell {
    display: flex;
    align-items: center;
    align-self: center;
  }
  .jc-topbar-candidate .jc-bell__btn {
    align-self: center;
    line-height: 0;
    padding: 0;
  }
  .jc-topbar-candidate .jc-bell__badge {
    width: 24px;
    min-width: 24px;
    height: 18px;
    border-radius: 999px;
    font-family: ui-monospace, "Cascadia Code", "Consolas", monospace;
    font-size: 11px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 2px solid #fff;
    box-sizing: border-box;
    overflow: hidden;
    transform: translateZ(0);
  }
}

/* Nav sotto header (es. pricing) */
.jc-header-nav {
  padding: 8px 16px 12px;
  border-bottom: 1px solid var(--border);
  background: #fff;
}
.jc-header-nav .jc-header__inner {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.jc-header-nav .jc-header-nav__link { flex-shrink: 0; }
.jc-header-nav .jc-btn { margin-left: auto; flex-shrink: 0; }
@media (max-width: 640px) {
  .jc-header-nav { padding: 8px 12px 10px; }
  .jc-header-nav .jc-header__inner { gap: 12px; }
}
.jc-header-nav__link {
  font-size: 15px;
  font-weight: 500;
  color: var(--muted);
  text-decoration: none;
}
.jc-header-nav__link:hover,
.jc-header-nav__link.is-active,
.topnav__link.is-active {
  color: var(--primary);
}

/* Pagine auth: Login e Registrazione — header allineato al contenuto della card */
.jc-page-auth .jc-header {
  padding: 12px 20px;
}
.jc-page-auth .jc-header__inner {
  width: 100%;
  max-width: 1120px;
  margin: 0;
  padding: 0;
}
@media (max-width: 640px) {
  .jc-page-auth .jc-header {
    padding: 10px 20px;
  }
}
@media (min-width: 641px) {
  .jc-page-auth .jc-header {
    padding: 12px 24px;
  }
  .jc-page-auth .jc-header__inner {
    max-width: 440px;
    margin-left: auto;
    margin-right: auto;
  }
}
.jc-page-auth.jc-page-register .jc-header__inner {
  max-width: 480px;
}

/* Jobs page mobile: staccare logo da Home, recuperare spazio ai lati */
@media (max-width: 640px) {
  body.jc-page-jobs:not(:has(.jc-topbar-candidate)) .topbar .topbar__inner {
    padding-left: 8px;
    padding-right: 8px;
    gap: 20px;
  }
}
@media (max-width: 767px) {
  body.jc-page-jobs:not(:has(.jc-topbar-candidate)) .topbar .topnav a[href="/register"] {
    display: none;
  }
}

/* Job detail con company: header allineato a jc-topbar-company (logo + topbar equilibrati) */
body.jc-page-job-detail:has(.jc-header__nav-right) {
  padding-top: var(--jc-topbar-company-h, 56px);
}
body.jc-page-job-detail:has(.jc-header__nav-right) .jc-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  padding: 12px 16px;
  min-height: var(--jc-topbar-company-h, 56px);
  box-sizing: border-box;
}
body.jc-page-job-detail:has(.jc-header__nav-right) .jc-header__inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
@media (min-width: 1024px) {
  body.jc-page-job-detail:has(.jc-header__nav-right) .jc-header {
    padding: 0;
    display: grid;
    grid-template-columns: minmax(20px, 1fr) min(1120px, calc(100% - 40px)) minmax(20px, 1fr);
    align-items: center;
    min-height: 56px;
  }
  body.jc-page-job-detail:has(.jc-header__nav-right) .jc-header__inner {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
  }
}

/* Pagine auth: Login e Registrazione — restyling mobile e desktop */
.jc-page-auth .jc-auth-main {
  padding: 24px 16px 48px;
  max-width: 440px;
  margin: 0 auto;
  box-sizing: border-box;
}
@media (max-width: 767px) {
  body.jc-page-auth,
  body.jc-page-job-detail {
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box;
  }
  /* Job detail mobile: logo + Area azienda + Esci — evita sovrapposizione, logo non tagliato */
  body.jc-page-job-detail .jc-header,
  body.jc-page-job-detail:has(.jc-header__nav-right) .jc-header {
    padding: 10px 14px;
    overflow: visible;
  }
  body.jc-page-job-detail .jc-header__inner {
    width: 100%;
    min-width: 0;
    gap: 12px;
    overflow: visible;
  }
  body.jc-page-job-detail .jc-header .brand {
    flex: 0 0 auto;
    min-width: auto;
    overflow: visible;
  }
  body.jc-page-job-detail .jc-header .brand__mark {
    flex-shrink: 0;
    width: 38px;
    height: 38px;
    overflow: visible;
  }
  body.jc-page-job-detail .jc-header .brand__mark .brand__job {
    font-size: 13px;
    top: 10px;
  }
  body.jc-page-job-detail .jc-header .brand__name--logo {
    font-size: 23px;
  }
  body.jc-page-job-detail .jc-header .brand__eye {
    width: 16px;
    height: 18px;
  }
  body.jc-page-job-detail .jc-header__nav-right {
    flex-shrink: 0;
    gap: 0;
  }
  body.jc-page-job-detail .jc-header-nav__link {
    font-size: 16px;
    padding: 6px 12px;
    white-space: nowrap;
  }
  body.jc-page-job-detail .jc-header .jc-btn--auth {
    padding: 6px 14px;
    font-size: 14px;
    min-height: 34px;
  }
  .jc-page-auth .jc-auth-main {
    padding-left: 20px;
    padding-right: 20px;
  }
}
.jc-page-auth.jc-page-register .jc-auth-main {
  max-width: 480px;
}
.jc-auth-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 24px 20px;
  box-shadow: var(--shadow-sm);
}
.jc-auth-title {
  margin: 0 0 8px;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text);
}
.jc-auth-lead {
  margin: 0 0 20px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--muted);
}
.jc-auth-form {
  display: grid;
  gap: 16px;
}
.jc-role-toggle {
  display: flex;
  gap: 8px;
  margin-bottom: 4px;
}
.jc-role-toggle .jc-role-btn {
  flex: 1;
  min-height: 44px;
  padding: 10px 14px;
  font-size: 14px;
  font-weight: 600;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--soft);
  color: var(--muted);
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, color 0.2s;
}
.jc-role-toggle .jc-role-btn:hover {
  border-color: var(--cta);
  color: var(--text);
}
.jc-role-toggle .jc-role-btn.is-active {
  border-color: var(--cta);
  background: var(--cta);
  color: #fff;
}
.jc-auth-form .jc-field {
  display: grid;
  gap: 6px;
}
.jc-auth-form .jc-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}
.jc-auth-form .jc-input,
.jc-auth-form select.jc-input {
  min-height: 46px;
  padding: 12px 14px;
  font-size: 16px;
  border-radius: 12px;
  border: 1px solid var(--border);
  font-family: inherit;
}
.jc-auth-form .jc-input:focus {
  outline: none;
  border-color: var(--cta);
  box-shadow: 0 0 0 3px rgba(74, 143, 90, 0.2);
}
/* Password con icona occhio */
.jc-password-wrap {
  position: relative;
  display: block;
}
.jc-password-wrap .jc-input {
  padding-right: 48px;
}
.jc-password-toggle {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  transition: color 0.2s, background 0.2s;
}
.jc-password-toggle:hover {
  color: var(--text);
  background: var(--soft);
}
.jc-password-toggle__icon {
  width: 20px;
  height: 20px;
}
.jc-login-options {
  margin-top: -4px;
}
.jc-login-remember {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--text);
  cursor: pointer;
}
.jc-login-remember input {
  width: 1.1em;
  height: 1.1em;
  flex-shrink: 0;
}
.jc-login-forgot {
  margin-top: 8px;
  font-size: 14px;
}
.jc-auth-card .jc-toast {
  margin-bottom: 16px;
}
.jc-auth-actions {
  margin-top: 4px;
}
.jc-auth-actions .jc-btn {
  width: 100%;
  min-height: 46px;
  font-size: 15px;
  font-weight: 600;
  border-radius: 12px;
}
.jc-auth-footer {
  margin: 20px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--border);
  font-size: 14px;
  color: var(--muted);
  text-align: center;
}
.jc-auth-footer .jc-link {
  font-weight: 600;
  color: var(--cta);
}
.jc-terms a {
  text-decoration: underline;
}
.jc-terms a:hover {
  opacity: 0.85;
}
.jc-form-note {
  font-size: 13px;
  opacity: 0.8;
  margin-top: 10px;
}
@media (min-width: 641px) {
  .jc-page-auth .jc-auth-main {
    padding: 40px 24px 64px;
  }
  .jc-auth-card {
    padding: 32px 28px;
  }
  .jc-auth-title {
    font-size: 1.75rem;
  }
  .jc-auth-lead {
    font-size: 15px;
    margin-bottom: 24px;
  }
  .jc-auth-form {
    gap: 18px;
  }
  .jc-auth-actions .jc-btn {
    min-height: 48px;
    font-size: 16px;
  }
}

/* Utility: layout coerente su tutte le pagine (evitare style= inline) */
.jc-main {
  padding: 32px 0;
}
.jc-section + .jc-section,
.jc-section--mt { margin-top: 24px; }
.jc-section--mt-sm { margin-top: 16px; }
.jc-form--reset { margin: 0; }
.jc-actions--center { align-items: center; }
.jc-meta--gap-sm { gap: 10px; }
.jc-meta--gap-md { gap: 14px; }
.jc-meta--gap-lg { gap: 16px; }
.jc-badges--mt { margin-top: 6px; }
.jc-badges--mt-sm { margin-top: 8px; }
.jc-badge--muted {
  background: var(--soft);
  color: var(--muted);
  border-color: var(--border);
}
.jc-btn--full { width: 100%; }
.jc-toast--mt { margin-top: 12px; }
.jc-card__meta--mt { margin-top: 12px; }
.jc-card__meta--mt-lg { margin-top: 24px; }

.jc-plan-info-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

/* Checkbox Salva annuncio: nascosta ma accessibile, clic sull’iconbtn */
.jc-save-form { margin: 0; flex-shrink: 0; width: auto; }
.jc-save-label { cursor: pointer; display: inline-block; }
.jc-save-checkbox {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}
.jc-save-label .iconbtn {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: rgba(47, 43, 42, 0.5);
}
.jc-save-label .iconbtn::before {
  content: '\2661';
}
.jc-save-label:has(.jc-save-checkbox:checked) .iconbtn {
  background: rgba(220, 38, 38, 0.12);
  border-color: #dc2626;
  color: #dc2626;
}
.jc-save-label:has(.jc-save-checkbox:checked) .iconbtn::before {
  content: '\2665';
}

.jc-hero {
  padding: 40px 0 28px;
  background: linear-gradient(180deg, rgba(17,24,39,.04), transparent 60%);
}

.jc-hero__grid {
  display: grid;
  gap: 26px;
  align-items: center;
}

.jc-hero__content {
  display: grid;
  gap: 14px;
}

.jc-kicker {
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
  margin: 0;
}

.jc-title {
  margin: 0;
  font-size: clamp(28px, 4.8vw, 46px);
  line-height: 1.15;
}

.jc-lead {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.6;
}

/* Campi non modificabili: offuscati e bloccati */
.jc-field--locked,
.jc-panel--locked {
  opacity: 0.6;
  filter: grayscale(25%);
  pointer-events: none;
  background: #e8e8e8;
  border-radius: 6px;
  user-select: none;
}
.jc-field--locked {
  padding: 10px 12px;
}
.jc-panel--locked {
  padding: 12px;
}
.jc-field--locked .jc-input,
.jc-field--locked .jc-select,
.jc-field--locked .jc-type-tab,
.jc-panel--locked .jc-input,
.jc-panel--locked .jc-select,
.jc-panel--locked .jc-type-tab,
.jc-panel--locked input[type="checkbox"],
.jc-panel--locked input[type="radio"] {
  background-color: #d8d8d8 !important;
  color: #555 !important;
  cursor: not-allowed;
}
.jc-field--locked .jc-label,
.jc-panel--locked .jc-label {
  color: #666;
}
.jc-field--locked input[type="text"],
.jc-field--locked input[type="time"],
.jc-panel--locked input[type="text"],
.jc-panel--locked input[type="number"],
.jc-panel--locked input[type="date"] {
  background-color: #d8d8d8 !important;
  color: #555 !important;
}

.jc-help--locked {
  color: var(--muted);
  font-style: italic;
}

.jc-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

/* Campo contatti: leggermente più marcato */
#jc-job-form .jc-field--contacts .jc-label--checkbox {
  font-weight: 600;
  padding: 10px 12px;
  background: rgba(47, 43, 42, 0.04);
  border-radius: 8px;
  border: 1px solid rgba(47, 43, 42, 0.08);
}

/* Mobile: pulsanti Salva bozza, Anteprima, Pubblica rimpiccioliti e sulla stessa riga */
@media (max-width: 767px) {
  #jc-job-form .jc-actions {
    flex-wrap: nowrap;
  }
  #jc-job-form .jc-actions .jc-btn {
    padding: 6px 10px;
    font-size: 12px;
    min-height: 34px;
  }
}

.jc-success-screen{
  text-align:center;
  background:#fff;
  border:1px solid rgba(47,43,42,.10);
  border-radius:18px;
  padding:32px 20px;
  box-shadow: var(--shadow);
}
.jc-success-icon{
  width:96px;
  height:96px;
  margin:0 auto 16px;
  border-radius:50%;
  background: #e8f6ee;
  border:2px solid #7fbf99;
  display:flex;
  align-items:center;
  justify-content:center;
}
.jc-success-icon--draft{
  background: #f5f0e0;
  border-color: #c9a227;
}
.jc-success-check{
  font-size:40px;
  font-weight:800;
  color:#2f8f4b;
}
.jc-success-icon--draft .jc-success-check{
  color:#a68b2c;
}

.jc-expand{
  background: none;
  border: 0;
  padding: 0;
  font-size: 12px;
  font-weight: 800;
  color: var(--muted);
  cursor: pointer;
  text-decoration: underline;
  display: block;
  margin: 6px 0 0 auto;
}
.jc-expand:hover{
  color: var(--text);
}
.jc-expand--outside{
  font-size: 13px;
  font-weight: 700;
  font-style: normal;
  letter-spacing: .02em;
  color: var(--text);
  text-transform: none;
  text-decoration: none;
  padding: 8px 14px;
  border-radius: 12px;
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(47,43,42,.1);
  box-shadow: 0 2px 8px rgba(47,43,42,.06);
  transition: background .2s, color .2s, border-color .2s, box-shadow .2s;
}
.jc-expand--outside:hover{
  background: #F8F6F3;
  border-color: rgba(47,43,42,.14);
  box-shadow: 0 2px 12px rgba(47,43,42,.08);
}
.jc-jobs-filter .jc-search__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding-top: 14px;
  padding-bottom: 0;
  margin-top: 0;
  border-top: 1px solid rgba(47,43,42,.08);
}
@media (max-width: 640px) {
  .jc-jobs-filter {
    position: relative;
  }
  .jc-jobs-filter .jc-search__footer .jc-expand--outside {
    position: absolute;
    bottom: 12px;
    left: 12px;
    margin: 0;
  }
  .jc-jobs-filter .jc-search__footer {
    flex-direction: row;
    justify-content: flex-end;
  }
  .jc-jobs-filter .jc-search__actions--footer {
    margin-left: 0;
    justify-content: flex-end;
  }
}
.jc-jobs-filter .jc-search__actions--footer {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
}
@media (min-width: 641px) {
  .jc-jobs-filter .jc-search__footer .jc-expand--outside {
    margin-left: 14px;
  }
}

.jc-search__row{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
  padding-right: 0;
}
.jc-search__actions{
  display: inline-flex;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
}
.jc-search__actions--bottom{
  width: 100%;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 4px;
}

.jc-search__submit{
  align-self: center;
}
.jc-search__submit--mobile{
  display:none;
}
.jc-search--expanded .jc-search__actions{
  position: static;
}


@media (max-width: 640px){
  .jc-search__row{
    grid-template-columns: 1fr;
  }
  .jc-search__actions{
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .jc-search__submit{
    width: 100%;
  }
  .jc-type-tabs{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    justify-content: stretch;
  }
  .jc-expand{
    margin-top: 10px;
  }
  .jc-type-tab{
    width: 100%;
    justify-content: center;
  }
  .jc-search--expanded .jc-search__actions{
    width: 100%;
    grid-template-columns: 1fr 1fr;
  }
  .jc-search--expanded .jc-search__submit--mobile{
    display:block;
    width:100%;
  }
}

.jc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 999px;
  padding: 10px 18px;
  font-size: 14px;
  border: 1px solid transparent;
  text-decoration: none;
  cursor: pointer;
  background: #eef0f2;
  color: var(--text);
}

.jc-btn--primary {
  background: var(--cta);
  border-color: var(--cta);
  color: #fff;
}

.jc-btn--primary:hover {
  background: var(--cta-2);
  border-color: var(--cta-2);
}

.jc-btn--ghost {
  background: #fff;
  border-color: var(--border);
  color: var(--text);
}

.jc-btn--danger {
  background: #dc2626;
  border-color: #dc2626;
  color: #fff;
}
.jc-btn--danger:hover {
  background: #b91c1c;
  border-color: #b91c1c;
  color: #fff;
}

.jc-btn--danger-soft {
  background: #fef2f2;
  border-color: #fecaca;
  color: #dc2626;
}
.jc-btn--danger-soft:hover {
  background: #fee2e2;
  border-color: #fca5a5;
  color: #b91c1c;
}

.jc-btn:disabled,
.jc-btn[disabled] {
  background: #e5e7eb;
  border-color: #e5e7eb;
  color: #6b7280;
  cursor: not-allowed;
}

/* Pulsanti compatti (pagina salvati): più piccoli su mobile, stile accattivante */
.jc-btn--compact {
  padding: 5px 10px;
  font-size: 12px;
  min-height: 32px;
  border-radius: 999px;
  box-shadow: 0 1px 3px rgba(0,0,0,.05);
  transition: background .2s, border-color .2s, box-shadow .2s, transform .15s;
}
.jc-btn--compact:hover {
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
  transform: translateY(-1px);
}
@media (min-width: 600px) {
  .jc-btn--compact {
    padding: 6px 12px;
    font-size: 13px;
    min-height: 34px;
  }
}
@media (min-width: 900px) {
  .jc-btn--compact {
    padding: 7px 14px;
    font-size: 13px;
    min-height: 36px;
  }
}

.jc-meta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  color: var(--muted);
  font-size: 13px;
}

.jc-hero__visual {
  display: grid;
  gap: 10px;
}

.jc-visual-card {
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fff;
  padding: 18px;
  box-shadow: var(--shadow-sm);
  display: grid;
  gap: 10px;
}

.jc-visual-title {
  font-size: 14px;
  font-weight: 600;
}

.jc-visual-line {
  height: 10px;
  border-radius: 6px;
  background: var(--soft);
}

.jc-visual-caption {
  font-size: 12px;
  color: var(--muted);
}

.jc-section {
  padding: 28px 0;
}

.jc-section--soft {
  background: var(--soft);
}
/* Sezione Ultime candidature: sfondo bianco/trasparente (no grigio) */
body:has(.jc-topbar-company) .jc-section--soft {
  background: transparent;
}

/* Dashboard free/light/standard: margini laterali tra card e bordi */
body.jc-page-dashboard:not(.jc-page-profile) #ultime-candidature-ricevute.jc-section--soft {
  padding-left: 20px !important;
  padding-right: 20px !important;
}
body.jc-page-dashboard:not(.jc-page-profile) .jc-section--annunci-free .jc-section__head,
body.jc-page-dashboard:not(.jc-page-profile) .jc-section--annunci-free .jc-annunci-counters,
body.jc-page-dashboard:not(.jc-page-profile) .jc-section--annunci-free .jc-search-block,
body.jc-page-dashboard:not(.jc-page-profile) .jc-section--annunci-free .jc-annunci-blocks {
  padding-left: 4px !important;
  padding-right: 4px !important;
}

.jc-section__head {
  display: grid;
  gap: 6px;
  margin-bottom: 16px;
}

.jc-section__title {
  margin: 0;
  font-size: 22px;
}

.jc-section__subtitle {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

.jc-title--cta {
  color: var(--cta);
}

/* --- Sezione "I miei annunci" (dashboard azienda) --- */
.jc-section--annunci {
  padding: 24px 0 32px;
  background: linear-gradient(180deg, rgba(17,24,39,.02) 0%, transparent 60%);
  border-radius: 16px;
  padding: 24px 20px 32px;
}

/* Premium annunci: hero con foto, benvenuto, abbonamento */
.jc-annunci-hero {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 0;
  margin-bottom: 24px;
  background: linear-gradient(135deg, rgba(240, 253, 244, 0.5) 0%, rgba(255, 255, 255, 0.98) 50%, rgba(248, 250, 252, 0.98) 100%);
  border: 1px solid rgba(34, 197, 94, 0.12);
  border-radius: 14px;
}
.jc-annunci-hero__inner {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  width: 100%;
}
.jc-annunci-hero__avatar-wrap {
  flex-shrink: 0;
}
.jc-annunci-hero__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 10px;
  overflow: hidden;
  border: 2px solid rgba(34, 197, 94, 0.2);
  background: #fff;
}
.jc-annunci-hero__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.jc-annunci-hero__avatar--fallback {
  font-size: 1.4rem;
  font-weight: 800;
  color: #15803d;
  background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%);
}
.jc-annunci-hero__text {
  flex: 1;
  min-width: 0;
}
.jc-annunci-hero__title {
  margin: 0 0 8px;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.02em;
}
.jc-annunci-hero__plan {
  margin: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.jc-annunci-hero__expiry {
  font-size: 13px;
  color: var(--muted);
}
@media (min-width: 640px) {
  .jc-annunci-hero__avatar {
    width: 64px;
    height: 64px;
  }
  .jc-annunci-hero__avatar--fallback {
    font-size: 1.6rem;
  }
  .jc-annunci-hero__title {
    font-size: 1.35rem;
  }
}

.jc-section--annunci .jc-section__head {
  margin-bottom: 20px;
}

.jc-annunci-counters {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 24px;
}

.jc-annunci-counter {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  min-height: 56px;
  padding: 12px 14px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  transition: box-shadow 0.2s ease;
}

@media (min-width: 640px) {
  .jc-annunci-counter {
    min-width: 80px;
    padding: 14px 16px;
  }
}

.jc-annunci-counter:hover {
  box-shadow: 0 2px 8px rgba(17, 24, 39, 0.06);
}

.jc-annunci-counter__value {
  font-size: 1.5rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--text);
}

.jc-annunci-counter__label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
  margin-top: 4px;
}

.jc-annunci-counter--published {
  background: linear-gradient(180deg, rgba(34, 197, 94, 0.06) 0%, rgba(34, 197, 94, 0.02) 100%);
  border-color: rgba(34, 197, 94, 0.25);
}

.jc-annunci-counter--published .jc-annunci-counter__value {
  color: #15803d;
}

.jc-annunci-counter--draft {
  background: linear-gradient(180deg, rgba(201, 162, 39, 0.08) 0%, rgba(201, 162, 39, 0.03) 100%);
  border-color: rgba(201, 162, 39, 0.3);
}

.jc-annunci-counter--draft .jc-annunci-counter__value {
  color: #a68b2c;
}

.jc-annunci-counter--closed {
  background: linear-gradient(180deg, rgba(239, 68, 68, 0.06) 0%, rgba(239, 68, 68, 0.02) 100%);
  border-color: rgba(239, 68, 68, 0.25);
}

.jc-annunci-counter--closed .jc-annunci-counter__value {
  color: #dc2626;
}

.jc-annunci-counter--expired {
  background: linear-gradient(180deg, rgba(71, 85, 105, 0.04) 0%, rgba(71, 85, 105, 0.02) 100%);
  border-color: rgba(71, 85, 105, 0.18);
}

.jc-annunci-counter--expired .jc-annunci-counter__value {
  color: #64748b;
}

/* Caso 1: contatori stile inline (label numero · label numero) - fuori dalla box hero */
.jc-annunci-counters--inline,
.jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 12px;
  font-size: 14px;
  line-height: 1.5;
}
.jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline {
  margin-top: 16px;
}

@media (max-width: 767px) {
  .jc-annunci-counters--inline,
  .jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline {
    flex-wrap: nowrap;
    white-space: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 2px 6px;
    scrollbar-width: none;
  }
  .jc-annunci-counters--inline::-webkit-scrollbar,
  .jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline::-webkit-scrollbar {
    display: none;
  }
}

.jc-annunci-counters--inline .jc-annunci-counter,
.jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline .jc-annunci-counter {
  display: inline;
  min-width: auto;
  min-height: auto;
  padding: 0;
  background: none !important;
  border: none !important;
}
@media (max-width: 767px) {
  .jc-annunci-counters--inline .jc-annunci-counter,
  .jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline .jc-annunci-counter {
    flex-shrink: 0;
    display: inline-flex;
  }
}

.jc-annunci-counters--inline .jc-annunci-counter__label,
.jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline .jc-annunci-counter__label {
  color: var(--muted);
  font-size: 13px;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  margin-top: 0;
}

.jc-annunci-counters--inline .jc-annunci-counter__value,
.jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline .jc-annunci-counter__value {
  font-size: 14px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--text);
}

.jc-annunci-counters--inline .jc-annunci-counter__sep,
.jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline .jc-annunci-counter__sep {
  font-size: 12px;
  color: var(--muted);
  opacity: 0.5;
  margin: 0 2px;
}

.jc-annunci-counters--inline .jc-annunci-counter--published .jc-annunci-counter__value,
.jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline .jc-annunci-counter--published .jc-annunci-counter__value {
  color: #15803d;
}

.jc-annunci-counters--inline .jc-annunci-counter--draft .jc-annunci-counter__value,
.jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline .jc-annunci-counter--draft .jc-annunci-counter__value {
  color: #a68b2c;
}

.jc-annunci-counters--inline .jc-annunci-counter--closed .jc-annunci-counter__value,
.jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline .jc-annunci-counter--closed .jc-annunci-counter__value {
  color: #dc2626;
}

.jc-annunci-counters--inline .jc-annunci-counter--expired .jc-annunci-counter__value,
.jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline .jc-annunci-counter--expired .jc-annunci-counter__value {
  color: #64748b;
}

/* Blocchi annunci (Pubblicati, Bozze, Chiusi, Scaduti) - ogni sezione nella propria box (caso 1) */
.jc-annunci-blocks {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.jc-annunci-blocks .jc-annunci-block {
  margin-bottom: 0;
  padding: 12px;
  background: #fff;
  border: 1px solid rgba(17, 24, 39, 0.08);
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(17, 24, 39, 0.04);
}

.jc-annunci-blocks .jc-annunci-block:last-child {
  margin-bottom: 0;
}

/* Fallback: jc-annunci-block senza wrapper (es. Premium) */
.jc-annunci-block {
  margin-bottom: 12px;
  padding: 12px;
  background: #fff;
  border: 1px solid rgba(17, 24, 39, 0.08);
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(17, 24, 39, 0.04);
  box-sizing: border-box;
}

.jc-annunci-block:last-child {
  margin-bottom: 0;
}

.jc-annunci-block__head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  padding-bottom: 8px;
  padding-left: 10px;
  border-bottom: 1px solid rgba(17, 24, 39, 0.06);
  border-left: 3px solid var(--border);
}

.jc-annunci-block--published .jc-annunci-block__head { border-left-color: rgba(74,143,90,.5); }
.jc-annunci-block--draft .jc-annunci-block__head { border-left-color: rgba(166,139,44,.5); }
.jc-annunci-block--closed .jc-annunci-block__head { border-left-color: rgba(220,38,38,.5); }
.jc-annunci-block--expired .jc-annunci-block__head { border-left-color: rgba(100,116,139,.5); }
.jc-annunci-block--expiring_soon .jc-annunci-block__head { border-left-color: rgba(245,158,11,.6); }


.jc-annunci-block__title {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--text);
}

.jc-annunci-block__count {
  font-size: 12px;
  color: var(--muted);
  background: var(--soft);
  padding: 2px 8px;
  border-radius: 8px;
}

.jc-annunci-block__empty {
  margin: 0;
  padding: 12px 0;
  font-size: 14px;
  color: var(--muted);
}
@media (max-width: 639px) {
  .jc-annunci-block {
    padding: 8px 12px;
    margin-bottom: 8px;
  }
  .jc-annunci-blocks .jc-annunci-block {
    padding: 8px 12px;
    margin-bottom: 0;
  }
  .jc-annunci-blocks {
    gap: 8px;
  }
  .jc-annunci-block__head {
    margin-bottom: 6px;
    padding-bottom: 6px;
    padding-left: 8px;
  }
  .jc-annunci-block__title {
    font-size: 0.85rem;
  }
  .jc-list.jc-annunci-list {
    gap: 6px;
  }
}

/* Desktop: box annunci a tutta larghezza */
@media (min-width: 640px) {
  .jc-annunci-block,
  .jc-annunci-blocks .jc-annunci-block {
    margin-left: 0;
    margin-right: 0;
    max-width: none;
  }
  .jc-section--annunci-free .jc-annunci-block {
    margin-left: 0;
    margin-right: 0;
  }
}

/* Layout unificato annunci azienda */
.cards.jc-annunci-list,
.jc-list.jc-annunci-list {
  display: grid;
  gap: 8px;
}

/* Desktop: layout 3 righe - titolo | citta candidature pulsanti | badge sotto meta */
/* Si applica sia a jc-annunci-block (Free) che a jc-company-list (Premium flat) */
@media (min-width: 768px) {
  .jc-annunci-block .jc-list.jc-annunci-list .jc-job-card__inner,
  .jc-list.jc-annunci-list .jc-job-card__inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .jc-annunci-block .jc-list.jc-annunci-list .jc-job-card__body,
  .jc-list.jc-annunci-list .jc-job-card__body {
    flex: 0 0 auto;
    min-width: 0;
    order: 1;
  }
  .jc-annunci-block .jc-list.jc-annunci-list .jc-job-card__badges--desktop,
  .jc-list.jc-annunci-list .jc-job-card__badges--desktop {
    order: 3;
    flex-shrink: 0;
    width: auto;
    align-self: flex-start;
  }
  .jc-annunci-block .jc-list.jc-annunci-list .jc-job-card__title-wrap,
  .jc-list.jc-annunci-list .jc-job-card__title-wrap {
    margin-bottom: 4px;
  }
  /* Campanella sulla riga titolo, accanto al titolo */
  .jc-annunci-block .jc-list.jc-annunci-list .jc-job-card__bell,
  .jc-list.jc-annunci-list .jc-job-card__bell {
    flex-shrink: 0;
  }
  .jc-annunci-block .jc-list.jc-annunci-list .jc-job-card__location,
  .jc-list.jc-annunci-list .jc-job-card__location {
    display: none;
  }
  .jc-annunci-block .jc-list.jc-annunci-list .jc-job-card__row2,
  .jc-list.jc-annunci-list .jc-job-card__row2 {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 12px 16px;
    margin-top: 6px;
  }
  .jc-annunci-block .jc-list.jc-annunci-list .jc-job-card__row2 .jc-job-card__meta--desktop,
  .jc-list.jc-annunci-list .jc-job-card__row2 .jc-job-card__meta--desktop {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
  }
  .jc-annunci-block .jc-list.jc-annunci-list .jc-job-card__row2 .jc-job-card__row2-actions,
  .jc-list.jc-annunci-list .jc-job-card__row2 .jc-job-card__row2-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
  }
  .jc-annunci-block .jc-list.jc-annunci-list .jc-job-card__row2 .jc-job-card__actions,
  .jc-list.jc-annunci-list .jc-job-card__row2 .jc-job-card__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
  }
}

/* Desktop: Ricerca avanzata - impaginazione corretta */
@media (min-width: 768px) {
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) {
    margin-left: 0;
    margin-right: 0;
    padding: 0 4px;
  }
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) .jc-search-block,
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) .jc-annunci-counters {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
  }
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) .jc-annunci-block {
    margin-left: 0;
    margin-right: 0;
  }
}
/* Desktop: box ricerca + annunci (tab Annunci company) — solo desktop, come applications */
@media (min-width: 768px) {
  body.jc-tab-annunci .profile-card:has(.jc-annunci-desktop-box) {
    background: transparent;
    border: none;
    box-shadow: none;
    padding-top: 0;
    padding-bottom: 0;
  }
  body.jc-tab-annunci .profile-card:has(.jc-annunci-desktop-box) .profile-card__section {
    margin-bottom: 12px;
  }
  body.jc-tab-annunci .jc-annunci-desktop-box {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 14px 12px;
    box-sizing: border-box;
    box-shadow: var(--shadow-sm);
  }
  body.jc-tab-annunci .jc-annunci-desktop-box .jc-search-block {
    margin-bottom: 8px;
    margin-left: 0;
    margin-right: 0;
  }
  body.jc-tab-annunci .jc-annunci-desktop-box .jc-annunci-counters {
    margin-left: 0;
    margin-right: 0;
  }
  body.jc-tab-annunci .jc-annunci-desktop-box .jc-annunci-block,
  body.jc-tab-annunci .jc-annunci-desktop-box .jc-annunci-blocks .jc-annunci-block {
    margin-left: 0;
    margin-right: 0;
  }
  body.jc-tab-annunci .jc-annunci-desktop-box .jc-loadmore {
    margin-top: 8px !important;
  }
}

/* ===== CARD ANNUNCIO CASO 1 (Free/Standard) - struttura riscritta ===== */
/* Scroll target per link da card Premium → riga annuncio */
article[id^="job-row-"] {
  scroll-margin-top: 80px;
  position: relative;
  transition: background 0.3s, border-color 0.3s, box-shadow 0.3s;
}

/* Evidenziazione + freccia quando si arriva da una card Premium */
article[id^="job-row-"]:target {
  background: linear-gradient(90deg, rgba(59, 130, 246, 0.12) 0%, rgba(255, 255, 255, 0.98) 100%);
  border-color: rgba(59, 130, 246, 0.4);
  box-shadow: 0 2px 12px rgba(59, 130, 246, 0.15), 0 0 0 2px rgba(59, 130, 246, 0.2);
}
article[id^="job-row-"]:target::before {
  content: "→";
  position: absolute;
  right: 12px;
  top: 12px;
  font-size: 14px;
  font-weight: 700;
  color: var(--primary, #3b82f6);
  line-height: 1;
  z-index: 1;
  animation: jc-arrow-pulse 1.2s ease-in-out infinite;
}
@keyframes jc-arrow-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}

/* Scompare al passaggio del mouse o al tocco */
article[id^="job-row-"]:target:hover,
article[id^="job-row-"]:target:active,
article[id^="job-row-"]:target:focus-within,
article[id^="job-row-"]:target.jc-target-dismissed {
  background: #fff;
  border-color: rgba(17, 24, 39, 0.12);
  box-shadow: none;
}
article[id^="job-row-"]:target:hover::before,
article[id^="job-row-"]:target:active::before,
article[id^="job-row-"]:target:focus-within::before,
article[id^="job-row-"]:target.jc-target-dismissed::before {
  display: none;
}

/* Pagina Candidature: scroll alla card ma senza evidenziazione */
body.jc-page-applications article[id^="job-row-"]:target {
  background: #fff;
  border-color: rgba(17, 24, 39, 0.12);
  box-shadow: none;
}
body.jc-page-applications article[id^="job-row-"]:target::before {
  display: none;
}

.jc-job-card {
  background: #fff;
  border: 1px solid rgba(17, 24, 39, 0.12);
  border-radius: 12px;
  padding: 12px 14px;
  box-shadow: 0 1px 3px rgba(17, 24, 39, 0.06), 0 2px 8px rgba(184, 134, 50, 0.05);
}
.jc-job-card.jc-row--has-new {
  background: linear-gradient(135deg, rgba(236, 253, 245, 0.7) 0%, rgba(209, 250, 229, 0.5) 100%);
  border-color: rgba(34, 197, 94, 0.35);
  box-shadow: 0 1px 3px rgba(34, 197, 94, 0.08);
}
.jc-job-card.jc-row--has-new:hover {
  background: #fff;
  border-color: var(--border);
  box-shadow: none;
}
.jc-job-card__inner {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  flex-wrap: wrap;
}
.jc-job-card__badges {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
}
.jc-job-card__badges .jc-status,
.jc-job-card__badges .jc-badge {
  font-size: 10px;
  padding: 3px 6px;
}
.jc-job-card__body {
  flex: 1;
  min-width: 0;
}
.jc-job-card__title-wrap {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
}
.jc-job-card__title-wrap .jc-job-card__title {
  flex: 1;
  min-width: 0;
}
.jc-job-card__bell {
  display: flex;
  position: relative;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%);
  border: 1px solid rgba(34,197,94,.4);
  color: #166534;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(34,197,94,.2);
}
.jc-job-card__bell svg {
  width: 14px;
  height: 14px;
}
.jc-job-card__bell-badge {
  position: absolute;
  top: -3px;
  right: -3px;
  min-width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #22c55e;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 2px;
  border: 1.5px solid #fff;
}
.jc-job-card__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.jc-job-card__title a.jc-link {
  overflow-wrap: break-word;
  word-break: break-word;
}
.jc-annunci-block .jc-list.jc-annunci-list .jc-job-card__title a.jc-link {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* Annunci: linea tratteggiata per indicare link, hover grigio chiaro */
.jc-annunci-block .jc-list .jc-job-card__title a.jc-link,
.jc-annunci-list .jc-job-card__title a.jc-link,
.jc-annunci-card .jobcard__title-link.jc-link {
  border-bottom: 1px dashed rgba(0, 0, 0, 0.25);
  padding-bottom: 2px;
  transition: color 0.2s ease;
}
.jc-annunci-block .jc-list .jc-job-card__title a.jc-link:hover,
.jc-annunci-list .jc-job-card__title a.jc-link:hover,
.jc-annunci-card .jobcard__title-link.jc-link:hover {
  color: #94a3b8;
}
.jc-job-card__title .jc-badge--new {
  font-size: 10px;
  padding: 3px 6px;
}
.jc-job-card__location {
  margin: 4px 0 0 0;
  font-size: 12px;
  color: var(--muted);
}
.jc-job-card__meta {
  margin: 4px 0 0 0;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.4;
}
.jc-job-card__meta:empty {
  display: none;
}
.jc-job-card__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-shrink: 0;
  align-items: center;
}
.jc-job-card__actions .jc-job-status-form {
  display: inline-flex !important;
  align-items: center;
  margin: 0;
  vertical-align: middle;
}
.jc-job-card__actions .jc-job-status-form button {
  margin: 0;
}
/* Uniformare a e button: font, line-height, altezza (evita micro-disallineamenti) */
.jc-job-card__actions a.jc-btn,
.jc-job-card__actions button.jc-btn {
  font-family: inherit;
  line-height: 1;
  min-height: 28px;
  padding: 5px 10px;
  font-size: 12px;
  box-sizing: border-box;
  flex-shrink: 0;
  white-space: nowrap;
}

/* Desktop: allineamento uniforme titolo+indirizzo — badges con larghezza fissa */
@media (min-width: 768px) {
  .jc-job-card__badges--desktop {
    width: 200px;
    min-width: 200px;
    flex-shrink: 0;
  }
  .jc-job-card__badges--mobile {
    display: none;
  }
  .jc-job-card__location {
    display: none;
  }
  .jc-job-card__actions {
    align-self: flex-end;
  }
}

/* Mobile: titolo → città → badge → azioni (come candidature) */
@media (max-width: 767px) {
  .jc-job-card {
    padding: 12px 14px;
  }
  .jc-job-card__inner {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
  .jc-job-card__badges--desktop {
    display: none;
  }
  .jc-job-card__body {
    padding-left: 0;
    flex: 1;
    min-width: 0;
  }
  .jc-job-card__title {
    font-size: 0.9rem;
  }
  .jc-job-card__location {
    margin-top: 4px;
    font-size: 13px;
  }
  .jc-job-card__meta--desktop {
    display: none;
  }
  .jc-job-card__row2 {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    margin-top: 8px;
  }
  .jc-job-card__row2 .jc-job-card__row2-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    width: 100%;
  }
  .jc-job-card__row2 .jc-job-card__bell {
    flex-shrink: 0;
  }
  .jc-job-card__row2 .jc-job-card__actions {
    flex: 1;
    min-width: 0;
    justify-content: flex-end;
  }
  .jc-job-card__badges--mobile {
    display: block;
    margin: 8px 0 0;
    padding-top: 8px;
  }
  .jc-job-card__badges--mobile .jc-status,
  .jc-job-card__badges--mobile .jc-badge {
    font-size: 10px;
    padding: 3px 6px;
  }
  .jc-job-card__actions {
    margin-top: 0;
    padding-top: 8px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
    width: 100%;
    justify-content: flex-end;
    align-self: stretch;
  }
  .jc-job-card__actions .jc-btn,
  .jc-job-card__actions .jc-job-status-form button {
    font-size: 10px;
    padding: 3px 5px;
  }
}

.jc-annunci-card.jobcard {
  box-shadow: 0 2px 8px rgba(17, 24, 39, 0.05);
  transition: box-shadow 0.2s, border-color 0.2s;
}

.jc-annunci-card.jobcard:hover {
  box-shadow: 0 4px 14px rgba(17, 24, 39, 0.08);
  border-color: rgba(74, 143, 90, 0.2);
}

.jc-annunci-card .jobcard__title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.jc-annunci-card .jobcard__title .jc-badge--new {
  font-size: 11px;
  padding: 4px 8px;
}

.jc-annunci-card .jobcard__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  grid-template-columns: unset;
}

.jc-annunci-card .jobcard__actions .jc-link {
  font-size: 13px;
  font-weight: 600;
}

.jc-annunci-card .jobcard__actions form {
  display: inline;
}

.jc-annunci-card .jobcard__actions button.jc-link {
  background: none;
  border: none;
  cursor: pointer;
  font: inherit;
  padding: 0;
}

.jc-annunci-card .badges .jc-status {
  font-size: 11px;
  padding: 4px 8px;
  border-radius: 999px;
}

@media (min-width: 640px) {
  .jc-annunci-card .jobcard__actions {
    margin-top: 12px;
  }
}

/* Topbar azienda: FIXED in alto, logo + nav + icone sulla stessa riga */
body:has(.jc-topbar-company) {
  padding-top: var(--jc-topbar-company-h);
}
.jc-topbar-company {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  background: #fff;
  min-height: var(--jc-topbar-company-h);
  box-sizing: border-box;
}
.jc-topbar-back {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px 8px 0;
  min-height: 44px;
  color: var(--text);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
}
.jc-topbar-back:hover {
  color: var(--primary);
}
.jc-topbar-back__arrow {
  font-size: 20px;
  line-height: 1;
}
.jc-topbar-back__label {
  white-space: nowrap;
}
@media (max-width: 639px) {
  .jc-topbar-back__label {
    display: inline;
  }
}
.jc-topbar-company .jc-header {
  flex-shrink: 0;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
}
.jc-topbar-company .jc-header__inner {
  margin: 0;
  padding: 0;
  width: auto;
}
.jc-topbar-company .jc-company-nav {
  flex: 1;
  min-width: 0;
  padding: 0;
  border: none;
}
.jc-topbar-company .jc-company-nav .jc-dashboard-top-row {
  margin-top: 0;
  margin-bottom: 0;
  border-bottom: none;
  padding-bottom: 0;
}
.jc-topbar-company .jc-dashboard-tabs {
  margin: 0;
}
@media (min-width: 1024px) {
  .jc-topbar-company .jc-topbar-back {
    grid-column: 1;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    padding-right: 12px;
  }
}
@media (min-width: 1024px) {
  .jc-topbar-company {
    display: grid;
    grid-template-columns: minmax(20px, 1fr) min(1120px, calc(100% - 40px)) minmax(20px, 1fr);
    align-items: center;
    gap: 0;
    padding: 0;
    min-height: 56px;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
  }
  .jc-topbar-company .jc-header {
    grid-column: 2;
    grid-row: 1;
    justify-self: start;
    align-self: center;
    padding-left: 20px;
  }
  .jc-topbar-company .jc-company-nav {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    align-self: center;
    min-width: 0;
    flex: 0 0 auto;
  }
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row {
    gap: 16px;
    padding-right: 20px;
  }
  /* Tab nav: font e padding compatti, standard professionali */
  .jc-topbar-company .jc-dashboard-tabs {
    gap: 2px;
  }
  .jc-topbar-company .jc-dashboard-tab {
    font-size: 13px;
    padding: 12px 16px;
    font-weight: 500;
  }
  /* Icone: compatte su desktop company */
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--icon,
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--home,
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--statistiche,
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--logout {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
  }
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--icon img,
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--icon svg,
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--home img,
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--home svg,
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--statistiche svg,
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--logout img,
  .jc-topbar-company .jc-company-nav .jc-dashboard-top-row .jc-btn--logout svg {
    width: 18px !important;
    height: 18px !important;
  }
}

/* Company mobile: nascondi tabs/Home/Statistiche/Logout; mostra campanella + dropdown profilo */
@media (max-width: 767px) {
  .jc-topbar-company .jc-dashboard-tabs--desktop,
  .jc-topbar-company .jc-btn--desktop-only {
    display: none !important;
  }
  .jc-topbar-company .jc-profile-dropdown--mobile {
    display: block;
  }
  .jc-topbar-company .jc-dashboard-top-row {
    justify-content: flex-end;
    gap: 12px;
  }
}
@media (min-width: 768px) {
  .jc-topbar-company .jc-profile-dropdown--mobile {
    display: none !important;
  }
}

/* Profile dropdown (mobile): icona → Piano, Statistiche (Premium), Esci */
.jc-profile-dropdown {
  position: relative;
}
.jc-profile-dropdown__trigger {
  list-style: none;
  cursor: pointer;
  border: none;
  font: inherit;
}
.jc-profile-dropdown__trigger::-webkit-details-marker { display: none; }
.jc-profile-dropdown__trigger::marker { display: none; }
.jc-profile-dropdown__trigger svg {
  width: 22px;
  height: 22px;
}
.jc-profile-dropdown__panel {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 160px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(17, 24, 39, 0.12);
  padding: 8px 0;
  z-index: 100;
}
.jc-profile-dropdown__item {
  display: block;
  padding: 12px 16px;
  color: var(--text);
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
}
.jc-profile-dropdown__item:hover {
  background: var(--soft);
}

/* Barra company: tabs + icone (logo ora in header.php) */
.jc-company-nav {
  padding: 12px 0 14px;
  border-bottom: 1px solid var(--border);
}
.jc-company-nav .jc-dashboard-top-row {
  margin-top: 0;
  margin-bottom: 0;
  border-bottom: none;
  padding-bottom: 0;
}

/* Barra alta non-Premium: tab + campanella sulla stessa riga */
.jc-dashboard-top-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 20px;
  border-bottom: 1px solid var(--border);
  gap: 16px;
}

.jc-dashboard-top-row .jc-dashboard-tabs {
  margin-top: 0;
  margin-bottom: 0;
  border-bottom: none;
  flex: 1;
}
/* Company: icone stessa dimensione di candidate (52px desktop, 44px mobile) */
.jc-company-nav .jc-dashboard-top-row .jc-btn--icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  width: 52px;
  height: 52px;
  min-width: 52px;
  min-height: 52px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  text-decoration: none;
}
.jc-company-nav .jc-dashboard-top-row .jc-bell__btn.jc-btn--icon {
  width: 52px;
  height: 52px;
  min-width: 52px;
  min-height: 52px;
}
.jc-company-nav .jc-dashboard-top-row .jc-btn--icon svg,
.jc-company-nav .jc-dashboard-top-row .jc-btn--icon img {
  width: 26px;
  height: 26px;
}
.jc-dashboard-top-row .jc-btn--icon:hover {
  background: var(--soft);
  color: var(--primary);
  border-color: var(--border);
}
.jc-dashboard-top-row .jc-btn--statistiche.is-active {
  color: var(--primary);
  background: var(--soft);
}
.jc-dashboard-top-row .jc-btn--icon img {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  display: block;
}

.jc-dashboard-tabs {
  display: flex;
  gap: 0;
  margin: 20px 0 0;
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.12) transparent;
  min-width: 0;
}

.jc-dashboard-tabs::-webkit-scrollbar {
  height: 3px;
}

.jc-dashboard-tabs::-webkit-scrollbar-track {
  background: transparent;
}

.jc-dashboard-tabs::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 3px;
  transition: background 0.2s ease;
}

.jc-dashboard-tabs:hover::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.12);
}

.jc-dashboard-tabs::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.2);
}

.jc-dashboard-tab {
  padding: 12px 20px;
  font-size: 15px;
  font-weight: 500;
  color: var(--muted);
  text-decoration: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -1px;
  transition: color 0.15s, border-color 0.15s;
  flex-shrink: 0;
  white-space: nowrap;
}

.jc-dashboard-tab:hover {
  color: var(--text);
}

.jc-dashboard-tab.is-active {
  color: var(--primary);
  border-bottom-color: var(--primary);
}

.jc-dashboard-tabs--premium .jc-dashboard-tab {
  font-weight: 600;
}

/* Candidato: barra navigazione orizzontale */
/* Barra candidato: nav + campanella sulla stessa riga, stessa altezza visiva */
.jc-candidate-top-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 0;
  margin-bottom: 20px;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--border);
  gap: 16px;
  flex-wrap: nowrap;
  min-height: 48px;
}
.jc-candidate-top-row .jc-candidate-nav {
  margin-top: 0;
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
}
.jc-candidate-top-row .jc-btn--icon {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  width: 40px;
  height: 40px;
  min-width: 40px;
  min-height: 40px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  text-decoration: none;
}
.jc-candidate-top-row .jc-btn--icon:hover {
  background: var(--soft);
  color: var(--primary);
  border-color: var(--border);
}
.jc-candidate-top-row .jc-btn--icon svg,
.jc-candidate-top-row .jc-btn--icon img {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  display: block;
}
.jc-candidate-top-row .jc-bell {
  flex-shrink: 0;
  align-self: center;
  display: flex;
  align-items: center;
}
.jc-candidate-top-row .jc-candidate-nav__link {
  margin-bottom: -1px;
}

/* Mobile: nascondi nav candidato (gestiti dalla bottom bar), ma mantieni Home/campanella/esci */
/* Company: le tab restano visibili e scrollabili orizzontalmente quando lo spazio è ridotto */
@media (max-width: 767px) {
  .jc-candidate-top-row .jc-candidate-nav {
    display: none !important;
  }
  .jc-candidate-top-row {
    justify-content: flex-end;
    gap: 8px;
  }
}

/* Flash Job in top bar: mobile e desktop, stesso layout (icona sopra, testo sotto), riempimento bianco */
.jc-topbar-candidate .jc-btn--flash-topbar {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 4px 8px;
  margin-right: 4px;
  background: #fff;
  color: #D84315;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s, transform 0.15s;
}
.jc-topbar-candidate .jc-btn--flash-topbar:hover {
  background: #f8fafc;
  transform: translateY(-1px);
}
.jc-topbar-candidate .jc-btn--flash-topbar .jc-flash-topbar__icon {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}
.jc-topbar-candidate .jc-btn--flash-topbar:hover .jc-flash-topbar__icon {
  transform: scale(1.1);
}
.jc-topbar-candidate .jc-btn--flash-topbar .jc-flash-topbar__label {
  white-space: nowrap;
  font-size: 13px;
  margin-left: 4px;
  line-height: 1;
  font-weight: 800;
  background: linear-gradient(90deg, #FF5722 0%, #FFB74D 25%, #FFE082 50%, #FFB74D 75%, #FF5722 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.jc-topbar-candidate .jc-btn--flash-topbar .jc-flash-topbar__h {
  color: #FF5722;
  -webkit-text-fill-color: #FF5722;
  background: none;
}

@media (min-width: 768px) {
  /* Flash: dimensioni leggermente ridotte su desktop */
  .jc-topbar-candidate .jc-btn--flash-topbar {
    padding: 3px 6px;
    margin-right: 4px;
  }
  .jc-topbar-candidate .jc-btn--flash-topbar .jc-flash-topbar__icon {
    width: 18px;
    height: 18px;
  }
  .jc-topbar-candidate .jc-btn--flash-topbar .jc-flash-topbar__label {
    font-size: 13px;
    font-weight: 800;
    background: linear-gradient(90deg, #FF5722 0%, #FFB74D 25%, #FFE082 50%, #FFB74D 75%, #FF5722 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
  }
  .jc-topbar-candidate .jc-btn--flash-topbar .jc-flash-topbar__h {
    color: #FF5722;
    -webkit-text-fill-color: #FF5722;
    background: none;
  }
  .jc-dashboard-top-row {
    justify-content: flex-end;
    gap: 8px;
  }
  /* Company: icone compatte su mobile (44px come candidate) */
  .jc-company-nav .jc-dashboard-top-row .jc-btn--icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }
  .jc-company-nav .jc-dashboard-top-row .jc-bell__btn.jc-btn--icon {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
  }
  .jc-company-nav .jc-dashboard-top-row .jc-btn--icon img,
  .jc-company-nav .jc-dashboard-top-row .jc-btn--icon svg {
    width: 22px;
    height: 22px;
  }
}

.jc-candidate-nav {
  display: flex;
  gap: 0;
  margin: 16px 0 0;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--border);
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.jc-candidate-nav::-webkit-scrollbar {
  height: 4px;
}

.jc-candidate-nav__link {
  flex: 0 0 auto;
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 500;
  color: var(--muted);
  white-space: nowrap;
  text-decoration: none;
  white-space: nowrap;
  border-bottom: 3px solid transparent;
  margin-bottom: -13px;
  transition: color 0.15s, border-color 0.15s;
}

.jc-candidate-nav__link:hover {
  color: var(--text);
}

.jc-candidate-nav__link.is-active {
  color: var(--primary);
  border-bottom-color: var(--primary);
}

@media (min-width: 640px) {
  .jc-candidate-nav {
    overflow-x: visible;
    flex-wrap: nowrap;
  }
}
/* Topbar: forzare scroll nav (override 640px) + scrollbar sempre visibile */
.jc-topbar-candidate .jc-candidate-nav {
  overflow-x: auto !important;
  overflow-y: hidden;
  flex-wrap: nowrap;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.4) rgba(0, 0, 0, 0.08);
}
.jc-topbar-candidate .jc-candidate-nav::-webkit-scrollbar {
  height: 8px;
}
.jc-topbar-candidate .jc-candidate-nav::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.08);
  border-radius: 4px;
}
.jc-topbar-candidate .jc-candidate-nav::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.35);
  border-radius: 4px;
}
.jc-topbar-candidate .jc-candidate-nav::-webkit-scrollbar-thumb:hover {
  background: rgba(0, 0, 0, 0.5);
}

/* Dashboard candidato: due colonne 50% / 50%, max 6 annunci, niente scroll */
.jc-dashboard-layout {
  display: block;
  margin-top: 28px;
}
@media (min-width: 1024px) {
  .jc-dashboard-layout {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 32px;
    margin-top: 32px;
    align-items: flex-start;
  }
  .jc-dashboard-left {
    flex: 0 0 calc(53% - 17px);
    width: calc(53% - 17px);
    min-width: 0;
    max-width: calc(53% - 17px);
  }
  .jc-dashboard-left .section--vicino,
  .jc-dashboard-left .jc-vicino-lavori {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .jc-dashboard-right {
    flex: 0 0 calc(47% - 15px);
    width: calc(47% - 15px);
    min-width: 0;
    max-width: calc(47% - 15px);
    overflow: visible;
  }
}
.jc-dashboard-left {
  min-width: 0;
}

/* Vicino a te — Flash: slider orizzontale (mobile-first) */
.jc-vicino-flash-section .section__head,
.jc-vicino-lavori-section .section__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  position: relative;
  padding-bottom: 12px;
}
.jc-vicino-flash-section .section__head::after,
.jc-vicino-lavori-section .section__head::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, #4a8f5a, #22b8cf);
  border-radius: 2px;
}
.jc-vicino-flash-section .section__head .section__title,
.jc-vicino-lavori-section .section__head .section__title {
  flex: 1;
  min-width: 0;
  margin: 0;
}
.jc-vicino-title-box {
  display: inline-block;
  padding: 6px 14px;
  background: rgba(17, 24, 39, 0.04);
  border-radius: 20px;
}
.jc-vicino-title {
  font-size: 1.22rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  margin: 0;
}
.jc-vicino-title__main {
  color: var(--text);
}
.jc-vicino-title__accent {
  color: #0d9488;
  font-weight: 600;
}
.jc-vicino-title__sub {
  font-size: 0.88rem;
  color: var(--muted);
  font-weight: 400;
}
.jc-vicino-title__standard {
  color: #2D4E7A;
  font-weight: 600;
}
.jc-vicino-title__sep {
  color: var(--muted);
  font-weight: 500;
}
.jc-vicino-title__seasonal {
  color: #5A3E7A;
  font-weight: 600;
}
.jc-vicino-flash-section .section__head .section__link,
.jc-vicino-lavori-section .section__head .section__link {
  flex-shrink: 0;
  white-space: nowrap;
  align-self: center;
}

.jc-vicino-flash-section {
  margin-bottom: 24px;
}
.jc-vicino-flash-wrap {
  overflow: visible;
}
/* Frecce fuori dal container delle card, sotto lo slider */
.jc-vicino-flash-arrows {
  display: none;
  justify-content: center;
  gap: 12px;
  margin-top: 16px;
  padding: 0 8px;
}
.jc-vicino-flash__arrow {
  display: flex;
  width: 48px;
  height: 28px;
  min-width: 48px;
  min-height: 28px;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #111;
  opacity: 0.55;
  cursor: pointer;
  transition: color 0.2s ease, opacity 0.25s ease;
  align-items: center;
  justify-content: center;
}
.jc-vicino-flash__arrow:hover,
.jc-vicino-flash__arrow:active {
  color: #000;
  opacity: 0.9;
}
.jc-vicino-flash__arrow:focus-visible {
  outline: 2px solid var(--primary);
  outline-offset: 2px;
}
@media (min-width: 1024px) {
  .jc-vicino-flash-arrows {
    display: flex;
  }
}
/* Frecce sempre scure: disabilitate a fine corsa ma visibili */
.jc-vicino-flash__arrow--at-start,
.jc-vicino-flash__arrow--at-end {
  pointer-events: none;
}
.jc-vicino-flash__arrow svg {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  stroke-width: 2.5;
}
@media (min-width: 1024px) {
  .jc-vicino-flash__arrow {
    display: flex;
  }
}
.jc-vicino-flash {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: rgba(17, 24, 39, 0.04) transparent;
  margin: 0 -8px;
  padding: 0 8px 12px 8px;
}
.jc-vicino-flash::-webkit-scrollbar {
  height: 4px;
}
.jc-vicino-flash::-webkit-scrollbar-track {
  background: transparent;
}
.jc-vicino-flash::-webkit-scrollbar-thumb {
  background: rgba(17, 24, 39, 0.04);
  border-radius: 4px;
}
.jc-vicino-flash::-webkit-scrollbar-thumb:hover {
  background: rgba(17, 24, 39, 0.04);
}
/* NOTE: NON usare margin-left/right: calc(50% - 50vw) su queste section.
   Con width: 100% su mobile sposta la section a sinistra e crea overflow/shift.
   Questa section deve restare nel flusso layout normale. */
@media (max-width: 767px) {
  body:has(.jc-topbar-candidate) .jc-vicino-flash-section,
  body:has(.jc-topbar-candidate) .jc-vicino-lavori-section {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
  }
  body:has(.jc-topbar-candidate) .jc-vicino-flash-section .section__head,
  body:has(.jc-topbar-candidate) .jc-vicino-lavori-section .section__head {
    padding-left: 20px;
    padding-right: 20px;
  }
  body:has(.jc-topbar-candidate) .jc-vicino-title-box {
    margin-left: -6px;
  }
  body:has(.jc-topbar-candidate) .jc-vicino-flash {
    margin-left: 0;
    margin-right: 0;
    padding-left: 20px;
    padding-right: 0;
  }
  body:has(.jc-topbar-candidate) .jc-vicino-flash__card {
    flex: 0 0 min(300px, 92vw);
    min-width: min(300px, 92vw);
    max-width: min(300px, 92vw);
  }
  body:has(.jc-topbar-candidate) .jc-vicino-flash__card:last-child {
    scroll-snap-align: end;
  }
  body:has(.jc-topbar-candidate) .jc-vicino-lavori .cards {
    margin-left: 0;
    margin-right: 0;
  }
  body:has(.jc-topbar-candidate) .jc-vicino-lavori .jobcard {
    border-radius: 12px;
  }
}
.jc-vicino-flash__track {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: 12px;
  min-height: 0;
}
.jc-vicino-flash__card {
  flex: 0 0 min(280px, 85vw);
  min-width: min(280px, 85vw);
  max-width: min(280px, 85vw);
  scroll-snap-align: start;
  scroll-snap-stop: always;
  display: flex;
  flex-direction: column;
}
.jc-vicino-flash__card .jobcard__meta {
  margin-bottom: 12px;
}
.jc-vicino-flash__card .jobcard__actions {
  margin-top: auto;
}

/* Card annunci: layout uniforme */
.jobcard {
  display: flex;
  flex-direction: column;
  transition: box-shadow 0.2s ease;
}
/* Verde: solo classi (scroll/hash). Su desktop aggiungiamo anche hover/focus. */
.jobcard.jobcard--active,
.jobcard.jobcard--in-view,
.jc-row.jobcard--active {
  box-shadow: var(--shadowSoft), inset 0 0 0 2px var(--primary);
}
/* Desktop: hover e focus danno verde */
@media (pointer: fine) {
  .jobcard:hover,
  .jobcard:focus-within {
    box-shadow: var(--shadowSoft), inset 0 0 0 2px var(--primary);
  }
}
/* Mobile: verde SOLO da jobcard--in-view (scroll). Tap non evidenzia. */
@media (max-width: 919px) {
  .jobcard {
    transition: box-shadow 0s;
  }
  .jobcard:hover:not(.jobcard--in-view):not(.jobcard--active),
  .jobcard:focus-within:not(.jobcard--in-view):not(.jobcard--active),
  .jobcard:active:not(.jobcard--in-view):not(.jobcard--active) {
    box-shadow: var(--shadowSoft) !important;
  }
}
/* Badge overflow rule: titolo single-line su mobile, badges no overflow */
.jobcard {
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}
/* Home: override overflow per evitare troncamento card annunci */
body.home .section--jobs .jobcard {
  overflow: visible;
}

/* HOME · FIX BRUTALE CARD TRONCATA (safe, solo home) */
body.jc-page-home .jobs-grid,
body.jc-page-home .jobs-col,
body.jc-page-home .home-jobs-section,
body.jc-page-home main {
  overflow: visible !important;
  max-height: none !important;
}
body.jc-page-home .jobs-grid {
  align-items: stretch !important;
}
/* cards deve riempire la colonna per allineare in basso */
body.jc-page-home .jobs-col {
  display: flex !important;
  flex-direction: column !important;
}
body.jc-page-home .jobs-col .cards {
  flex: 1 !important;
  min-height: 0 !important;
  display: grid !important;
  align-items: stretch !important;
}
/* HOME · card: spazio flessibile, allineate al container in basso */
body.jc-page-home .home-jobs-section .jobcard {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
/* Terzo container: su mobile (sezioni impilate) una sola card non si allunga */
@media (max-width: 919px) {
  body.jc-page-home .jobs-col:has(.cards .jobcard:only-child) .cards {
    align-items: start !important;
    align-content: start !important;
  }
  body.jc-page-home .jobs-col:has(.cards .jobcard:only-child) .jobcard {
    min-height: auto !important;
    align-self: start !important;
  }
}
/* Desktop 3 col: righe uguali per allineare card (es. Tonia/Milano); stretch per colonna singola card */
@media (min-width: 920px) {
  body.jc-page-home .jobs-col .cards {
    grid-auto-rows: 1fr;
    align-content: stretch;
  }
}
body.jc-page-home .jobcard .jobcard__actions {
  margin-top: auto;
  padding-top: max(2em, 24px);
}
body.jc-page-home .jobcard .jobcard__title {
  line-height: 1.2;
  margin: 16px 0 0;
}
body.jc-page-home .jobcard .jobcard__meta {
  line-height: 1.3;
  margin-top: 10px;
}
.jobcard__top {
  min-width: 0;
  flex-shrink: 0;
}
.jobcard__top .badges {
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
  flex: 1 1 auto;
  max-width: 100%;
  align-content: flex-start;
}
.jobcard__top .jc-save-form,
.jobcard__top .iconbtn {
  flex-shrink: 0;
}
.jobcard__title {
  min-width: 0;
  overflow: hidden;
}
.jobcard__title-link {
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  overflow-wrap: anywhere;
}
@media (max-width: 640px) {
  .jobcard__title-link {
    white-space: nowrap;
    display: block;
  }
}
@media (min-width: 641px) {
  .jobcard__title-link {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
}
.jobcard__company-link,
.jc-row__company-link,
.mini-item__company-link {
  color: inherit;
  text-decoration: none;
}
.jobcard__company-link:hover,
.jc-row__company-link:hover,
.mini-item__company-link:hover {
  text-decoration: underline;
}
/* Dettaglio annuncio: azienda sempre sottolineata, al passaggio mouse evidenzia */
.jc-job-detail__company-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.jc-job-detail__company-link:hover {
  color: var(--primary, #0f766e);
  text-decoration-thickness: 2px;
}
.mini-item__sub.mini-item__company-link {
  color: var(--muted);
}
.jobcard__meta {
  min-height: 1.5em;
  min-width: 0;
  overflow-wrap: anywhere;
}
.jobcard__pay {
  color: #15803d;
  font-weight: 700;
}
@media (min-width: 1024px) {
  .jobcard {
    box-shadow: 0 12px 28px rgba(20,16,12,.12);
  }
  .jobcard.jobcard--active,
  .jobcard.jobcard--in-view,
  .jc-row.jobcard--active {
    box-shadow: 0 14px 32px rgba(20,16,12,.15), inset 0 0 0 2px var(--primary);
  }
}
@media (min-width: 1024px) and (pointer: fine) {
  .jobcard:hover,
  .jobcard:focus-within {
    box-shadow: 0 14px 32px rgba(20,16,12,.15), inset 0 0 0 2px var(--primary);
  }
}
.jobcard__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 10px;
  align-items: stretch;
}
.jobcard__actions .btn,
.jobcard__actions .btn--applied,
.jc-job-panel__actions .btn,
.jc-job-panel__actions .btn--applied {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 900;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
  flex-shrink: 0;
}
@media (max-width: 640px) {
  .jobcard__actions .btn,
  .jobcard__actions .btn--applied {
    min-height: 44px;
  }
}
.jc-job-panel__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  align-items: stretch;
}
.jc-job-panel__actions .btn,
.jc-job-panel__actions .btn--applied {
  min-height: 40px;
  font-size: 12px;
}

/* Già candidato: su mobile list view abbreviare in "Candidato" */
.btn__text--short { display: none; }
@media (max-width: 640px) {
  .jobcard__actions .btn--applied .btn__text--full,
  .mini-item .btn--applied .btn__text--full { display: none; }
  .jobcard__actions .btn--applied .btn__text--short,
  .mini-item .btn--applied .btn__text--short { display: inline; }
}

/* Bottone Già candidato: celeste */
.jobcard__actions .btn--applied,
.jc-job-panel__actions .btn--applied,
.btn--applied {
  background: #e8f0ff !important;
  color: #1e3a8a !important;
  border-color: rgba(30, 58, 138, 0.3) !important;
  cursor: default;
  pointer-events: none;
}
@media (min-width: 1024px) {
  .jc-vicino-flash {
    margin: 0;
    padding: 0 0 8px;
  }
  .jc-vicino-flash__card {
    flex: 0 0 286px;
    min-width: 286px;
    max-width: 286px;
  }
}

/* Vicino a te — Lavori: lista su mobile, griglia 2x2 su desktop */
.jc-vicino-lavori-section {
  margin-top: 8px;
}
.jc-vicino-std-seasonal-container {
  padding: 16px;
  background: rgba(17, 24, 39, 0.01);
  border-radius: 12px;
  border: 1px solid var(--border);
}
.jc-vicino-lavori {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
@media (min-width: 768px) {
  .jc-vicino-lavori {
    grid-template-columns: repeat(2, 1fr);
  }
}
.jc-vicino-lavori__footer {
  margin-top: 16px;
}
@media (min-width: 1024px) {
  .jc-vicino-lavori {
    grid-template-columns: repeat(2, 1fr);
  }
}

.jc-dashboard-right {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.jc-section--jobs .jc-dash-section-header-box {
  margin-bottom: 0;
  background: transparent;
  border-radius: 12px 12px 0 0;
  border-bottom: none;
}
.jc-section--jobs .jc-jobs-filter {
  margin-top: 0;
  border-radius: 0 0 16px 16px;
  border-top: none;
}
/* Search (candidato): stessi margini di Profilo */
body.jc-page-jobs:has(.jc-topbar-candidate) .jc-section--jobs .jc-dash-section-header-box {
  margin-top: 20px;
}
@media (min-width: 900px) {
  body.jc-page-jobs:has(.jc-topbar-candidate) main.jc-container {
    padding: 24px 20px 48px;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
  }
}
.jc-section--jobs .jc-dash-section-title {
  margin: 0 0 4px;
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--text);
}
.jc-section--jobs .jc-section__subtitle {
  margin: 0;
  font-size: 0.9rem;
  color: var(--muted);
}
@media (min-width: 768px) {
  .jc-section--jobs .jc-dash-section-title { font-size: 1.15rem; }
  .jc-section--jobs .jc-section__subtitle { font-size: 0.95rem; }
}
.jc-jobs-filter {
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid rgba(47, 43, 42, 0.1);
  border-radius: 16px;
  box-shadow: var(--shadowSoft);
  padding: 12px 12px 16px;
  margin-bottom: 24px;
  overflow: visible;
}
.jc-jobs-filter__box {
  display: block;
  width: 100%;
}
@media (min-width: 768px) {
  .jc-jobs-filter {
    padding: 16px 20px 20px;
  }
}
.jc-jobs-filter .jc-search,
.jc-jobs-filter form.jc-form.jc-search {
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  width: 100%;
  box-sizing: border-box;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}
.jc-jobs-filter .jc-search.jc-search--expanded {
  padding-bottom: 0;
}
.jc-jobs-filter .jc-search__top {
  margin-bottom: 14px;
}
/* GRID CARD ANNUNCI: NON MODIFICARE — Regola: .cursor/rules/jobs-grid-card-layout.mdc */
.jc-jobs-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  align-items: stretch;
}
.jc-jobs-grid .jobcard {
  display: flex;
  flex-direction: column;
}
.jc-jobs-grid .jobcard__actions {
  margin-top: auto;
}
@media (max-width: 767px) {
  body.jc-page-jobs:has(.jc-topbar-candidate) .jc-jobs-grid {
    margin-left: -20px;
    margin-right: -20px;
    padding-left: 20px;
    padding-right: 20px;
  }
  body.jc-page-jobs:has(.jc-topbar-candidate) .jc-section--jobs .jc-dash-section-header-box,
  body.jc-page-jobs:has(.jc-topbar-candidate) .jc-jobs-filter {
    margin-left: 0;
    margin-right: 0;
  }
}
.badge.jc-flash-countdown {
  background: #ffcc99;
  color: #92400e;
  font-size: 10px;
  font-weight: 800;
  padding: 3px 6px;
  border-radius: 999px;
  border: 1px solid rgba(146, 64, 14, 0.25);
}
.badge.jc-flash-countdown--24h .jc-flash-countdown__fire {
  display: inline;
  margin-left: 2px;
  animation: jc-flash-fire-pulse 1.2s ease-in-out infinite;
}
.badge.jc-flash-countdown--3h {
  animation: jc-flash-badge-pulse 1.5s ease-in-out infinite;
}
.badge.jc-flash-countdown--3h .jc-flash-countdown__fire {
  animation: jc-flash-fire-blink 0.9s ease-in-out infinite;
}
@keyframes jc-flash-fire-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.1); }
}
@keyframes jc-flash-badge-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.9; }
}
@media (min-width: 768px) {
  .jc-jobs-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}
@media (min-width: 1024px) {
  .jc-jobs-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}

/* Pannello destra: dettaglio annuncio (sempre nello spazio sopra, mai nuova pagina) */
.jc-job-panel {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 28px;
  min-height: 240px;
  box-shadow: var(--shadow-sm);
}
/* Vista annuncio completo in miniatura: area scrollabile */
.jc-job-panel--full .jc-job-panel__scroll {
  max-height: min(70vh, 560px);
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 4px;
  margin: -4px -4px 0 0;
}
/* Desktop: una sola barra di scroll (pagina); nasconde scrollbar del pannello */
@media (min-width: 1024px) {
  .jc-dashboard-main .jc-job-panel--full .jc-job-panel__scroll {
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  .jc-dashboard-main .jc-job-panel--full .jc-job-panel__scroll::-webkit-scrollbar {
    display: none;
  }
}
.jc-job-panel--full .jc-job-panel__section {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}
.jc-job-panel--full .jc-job-panel__section:first-of-type {
  margin-top: 8px;
  padding-top: 0;
  border-top: none;
}
.jc-job-panel--full .jc-section__title {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
  margin: 0 0 10px;
}
.jc-job-panel__card {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.jc-job-panel__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.jc-job-panel__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.jc-job-panel__title {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--text);
}
.jc-job-panel__company {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  color: var(--muted);
}
.jc-job-panel__meta {
  margin: 0;
  font-size: 14px;
  color: var(--muted);
  line-height: 1.5;
}
.jc-job-panel__detail {
  margin: 0;
  padding-top: 16px;
  border-top: 1px solid var(--border);
}
.jc-job-panel__detail-title {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
}
.jc-job-panel__description {
  font-size: 15px;
  line-height: 1.6;
  color: var(--text);
}
.jc-job-panel__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 4px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.jc-job-panel__empty {
  display: flex;
  flex-direction: column;
  gap: 12px;
  justify-content: center;
  min-height: 220px;
  text-align: center;
  color: var(--muted);
  padding: 24px;
}
.jc-job-panel__empty-text {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: var(--text);
}

/* Sezione candidature sotto il pannello */
.jc-section--candidature {
  border-radius: 16px;
  padding: 24px 28px 28px;
  background: var(--soft);
  border: 1px solid var(--border);
}
.jc-section--candidature .jc-section__head {
  margin-bottom: 16px;
}
.jc-section--candidature .jc-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Card annuncio selezionata nella lista */
.jobcard__title-link {
  color: inherit;
  text-decoration: none;
}
.jobcard__title-link:hover {
  color: var(--primary);
  text-decoration: underline;
}
/* Card annuncio selezionata nella dashboard: bordo verde ben visibile */
.jobcard--selected {
  border: 2px solid #2d7a3e;
  box-shadow: 0 0 0 1px #2d7a3e;
}
.jobcard--selected:hover {
  border-color: #256b33;
  box-shadow: 0 0 0 1px #256b33;
}

.jc-section__footer {
  margin-top: 12px;
}

/* Paginazione - mobile-first */
.jc-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 24px;
  padding: 12px 0;
}
.jc-pagination .jc-btn {
  min-height: 44px;
  padding: 10px 16px;
  font-size: 14px;
}
.jc-pagination .jc-card__meta {
  font-size: 14px;
  margin: 0;
}
@media (max-width: 639px) {
  .jc-pagination {
    margin-top: 20px;
    padding: 16px 0;
    gap: 12px;
    width: 100%;
    justify-content: space-between;
  }
  .jc-pagination .jc-btn {
    flex: 1;
    min-width: 0;
    min-height: 44px;
    padding: 12px 14px;
    font-size: 14px;
    text-align: center;
    justify-content: center;
  }
  .jc-pagination .jc-card__meta {
    order: 0;
    flex: 0 0 100%;
    text-align: center;
    margin-bottom: 4px;
    font-size: 13px;
  }
  .jc-pagination > a:first-of-type {
    order: 1;
  }
  .jc-pagination > a:last-of-type {
    order: 2;
  }
}

/* Premium: dashboard operativa (centro controllo) */
.jc-premium-dashboard {
  margin: 24px 0 0;
}

/* Ridurre spazio tra le 3 boxe e Ultime candidature ricevute */
.jc-ultime-candidature-header {
  margin-top: 8px;
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #f1f5f9 0%, #e2e8f0 50%, #cbd5e1 100%);
  border-color: rgba(100, 116, 139, 0.4);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04);
}
.jc-ultime-candidature-header::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -10%;
  width: 55%;
  height: 140%;
  background: radial-gradient(ellipse at center, rgba(59, 130, 246, 0.12) 0%, transparent 65%);
  pointer-events: none;
  z-index: 0;
}
.jc-ultime-candidature-header::after {
  content: "";
  position: absolute;
  bottom: -35%;
  left: -8%;
  width: 40%;
  height: 110%;
  background: radial-gradient(ellipse at center, rgba(34, 197, 94, 0.1) 0%, transparent 65%);
  pointer-events: none;
  z-index: 0;
}
.jc-ultime-candidature-header > * {
  position: relative;
  z-index: 1;
}

.jc-premium-dashboard-wrap {
  min-width: 0;
  margin-bottom: 8px;
}

/* Premium dashboard: layout desktop allineato a hero (max-width 1100px, padding 20px) */
@media (max-width: 767px) {
  body:has(.jc-premium-dashboard-wrap) {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}
@media (min-width: 768px) {
  body:has(.jc-premium-dashboard-wrap) main.jc-container.jc-page {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
@media (min-width: 900px) {
  body:has(.jc-premium-dashboard-wrap) main.jc-container.jc-page {
    padding: 24px 20px 48px !important;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Premium tab Annunci: layout desktop allineato (max-width 1100px, padding 20px) */
@media (min-width: 768px) {
  body.jc-tab-annunci.jc-page-profile-company main.jc-container.jc-page {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
@media (min-width: 900px) {
  body.jc-tab-annunci.jc-page-profile-company main.jc-container.jc-page {
    padding: 24px 20px 48px !important;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Cerca candidati Premium: layout desktop allineato (max-width 1100px, padding 20px) */
@media (min-width: 768px) {
  body.jc-page-candidati.jc-page-profile-company main.jc-container.jc-page {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
@media (min-width: 900px) {
  body.jc-page-candidati.jc-page-profile-company main.jc-container.jc-page {
    padding: 24px 20px 48px !important;
    max-width: 1100px !important;
    width: auto !important;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Applications Premium: container fluido su desktop, si adatta al ridimensionamento */
@media (min-width: 900px) {
  body.jc-page-applications.jc-page-profile-company main.jc-container.jc-page {
    max-width: 1100px !important;
    width: 100% !important;
    min-width: 0;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }
}

/* Statistiche Premium: layout desktop allineato */
@media (min-width: 768px) {
  body.jc-page-statistiche.jc-page-profile-company main.jc-container.jc-page {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
@media (min-width: 900px) {
  body.jc-page-statistiche.jc-page-profile-company main.jc-container.jc-page {
    padding: 24px 20px 48px !important;
    max-width: 1100px !important;
    width: auto !important;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Profilo candidato (Vedi profilo da Cerca candidati) Premium: layout desktop allineato */
@media (min-width: 768px) {
  body.jc-page-profile.jc-page-profile-company:not(.jc-page-candidati):not(.jc-page-statistiche):not(.jc-page-dashboard) main.jc-container.jc-page {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
@media (min-width: 900px) {
  body.jc-page-profile.jc-page-profile-company:not(.jc-page-candidati):not(.jc-page-statistiche):not(.jc-page-dashboard) main.jc-container.jc-page {
    padding: 24px 20px 48px !important;
    max-width: 1100px !important;
    width: auto !important;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Profilo azienda (company/profile): layout desktop allineato */
@media (min-width: 768px) {
  body.jc-page-company-profile main.jc-container.jc-page {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
}
@media (min-width: 900px) {
  body.jc-page-company-profile main.jc-container.jc-page {
    padding: 24px 20px 48px !important;
    max-width: 1100px !important;
    width: auto !important;
    margin-left: auto;
    margin-right: auto;
  }
}

.jc-premium-box {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 20px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  min-width: 0;
}
.jc-premium-box--summary {
  margin-bottom: 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04);
  position: relative;
  overflow: hidden;
  background: linear-gradient(90deg, #f8fafc 0%, #f5f9fc 60%, rgba(248, 252, 255, 0.98) 100%);
  border-color: rgba(148, 163, 184, 0.35);
}
.jc-premium-box--summary::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -15%;
  width: 65%;
  height: 160%;
  background: radial-gradient(ellipse at center, rgba(59, 130, 246, 0.22) 0%, rgba(59, 130, 246, 0.1) 35%, rgba(59, 130, 246, 0.03) 60%, transparent 80%);
  pointer-events: none;
  z-index: 0;
}
.jc-premium-box--summary::after {
  content: "";
  position: absolute;
  bottom: -40%;
  left: -10%;
  width: 55%;
  height: 140%;
  background: radial-gradient(ellipse at center, rgba(34, 197, 94, 0.18) 0%, rgba(34, 197, 94, 0.08) 35%, rgba(34, 197, 94, 0.02) 60%, transparent 80%);
  pointer-events: none;
  z-index: 0;
}
.jc-premium-box--summary > * {
  position: relative;
  z-index: 1;
}
.jc-premium-box__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}
.jc-premium-box__actions .jc-btn {
  font-size: 13px;
  font-weight: 500;
  padding: 10px 18px;
  white-space: nowrap;
  border-radius: 12px;
  transition: background 0.2s, border-color 0.2s, box-shadow 0.2s, transform 0.15s;
}
.jc-premium-box__actions .jc-btn--ghost {
  background: linear-gradient(135deg, rgba(248, 250, 252, 0.95) 0%, rgba(241, 245, 249, 0.98) 100%);
  border: 1px solid rgba(0, 0, 0, 0.08);
  color: var(--text, #1f2937);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}
.jc-premium-box__actions .jc-btn--ghost:hover {
  background: #fff;
  border-color: rgba(59, 130, 246, 0.35);
  box-shadow: 0 2px 8px rgba(59, 130, 246, 0.12);
  color: var(--primary, #2563eb);
}
.jc-btn--ricerca-avanzata {
  border: 2px solid rgba(0, 0, 0, 0.35);
}
.jc-btn--ricerca-avanzata:hover {
  border-color: rgba(0, 0, 0, 0.45);
}

.jc-premium-kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 20px;
  margin-bottom: 24px;
}

@media (max-width: 768px) {
  .jc-premium-kpis {
    grid-template-columns: repeat(2, 1fr);
  }
}

.jc-premium-kpi {
  background: linear-gradient(165deg, #f7fdf9 0%, #f0fdf4 40%, #ecfdf5 100%);
  color: #047857;
  border-radius: 16px;
  padding: 20px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(16, 185, 129, 0.06);
  border: 1px solid rgba(16, 185, 129, 0.12);
}

.jc-premium-kpi__above {
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: #111827;
}
.jc-premium-kpi__value {
  font-size: 28px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.jc-premium-kpi__label {
  font-size: 12px;
  font-weight: 500;
  opacity: 0.9;
  line-height: 1.3;
}

.jc-premium-kpi--link {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.jc-premium-kpi--link:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(16, 185, 129, 0.1);
}
.jc-premium-kpi--shaded {
  background: linear-gradient(165deg, #ecfdf5 0%, #d1fae5 35%, #a7f3d0 100%);
  box-shadow: 0 2px 12px rgba(16, 185, 129, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.6);
  border-color: rgba(16, 185, 129, 0.18);
}
.jc-premium-kpi--shaded:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 20px rgba(16, 185, 129, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.6);
}
.jc-premium-kpi__new {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 2px 6px;
  background: rgba(16, 185, 129, 0.2);
  border-radius: 6px;
  animation: jc-blink 1.2s ease-in-out infinite;
}
@keyframes jc-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

.jc-premium-sections {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

/* Mobile: ombreggiatura card + effetto tap come hover desktop */
@media (max-width: 599px) {
  .jc-premium-sections .jc-premium-section {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08), 0 6px 16px rgba(0, 0, 0, 0.06);
  }
  .jc-premium-list--attivi .jc-premium-list__item--attivi:active,
  .jc-premium-list--attivi .jc-premium-list__item--attivi.jc-premium-tap {
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.05);
  }
}
/* Mobile: effetto scroll - card in vista con rilievo come hover desktop */
@media (max-width: 767px) {
  .jc-premium-list--attivi .jc-premium-list__item--attivi {
    transition: background 0.25s ease, box-shadow 0.25s ease;
  }
  .jc-premium-list--attivi .jc-premium-list__item--attivi.jc-premium-in-view {
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.05);
  }
}

@media (min-width: 600px) {
  .jc-premium-sections {
    grid-template-columns: 1fr 1fr;
  }
  .jc-premium-sections .jc-premium-section:first-child {
    grid-column: 1 / -1;
  }
}
@media (min-width: 1024px) {
  .jc-premium-sections {
    grid-template-columns: repeat(3, 1fr);
  }
  .jc-premium-sections .jc-premium-section:first-child {
    grid-column: auto;
  }
}

.jc-premium-section {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  min-width: 0;
  display: flex;
  flex-direction: column;
  font-family: var(--font-premium);
}

.jc-premium-section__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--border);
}
.jc-premium-section__head .jc-premium-section__title {
  margin: 0;
  padding-bottom: 0;
  padding-left: 10px;
  border-bottom: none;
  border-left: 3px solid var(--cta);
}
.jc-premium-section__filter {
  font-size: 12px;
  font-weight: 500;
  padding: 5px 24px 5px 8px;
  min-width: 0;
  max-width: 130px;
}
.jc-premium-section__title {
  margin: 0 0 10px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--text);
  padding-bottom: 8px;
  border-bottom: 2px solid var(--border);
}

.jc-premium-list {
  list-style: none;
  margin: 0;
  padding: 0;
  min-width: 0;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
}
.jc-premium-section__manage {
  margin-top: auto;
  padding-top: 12px;
}

.jc-premium-list__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.jc-premium-list__item:last-child {
  border-bottom: none;
}

/* Card leggera per ogni annuncio nelle box Premium */
.jc-premium-list--attivi {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.jc-premium-list--attivi .jc-premium-list__item--attivi {
  padding: 12px 16px;
  border-bottom: none;
  background: rgba(255, 255, 255, 0.9);
  font-family: var(--font-premium);
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04), inset 0 1px 2px rgba(255, 255, 255, 0.8), inset 0 -1px 1px rgba(0, 0, 0, 0.03);
  transition: background 0.2s, box-shadow 0.2s;
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
  overflow: hidden;
}
.jc-premium-list--attivi .jc-premium-list__item--attivi:last-child {
  margin-bottom: 0;
}
.jc-premium-list--attivi .jc-premium-list__item--attivi:hover {
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.05), inset 0 1px 2px rgba(255, 255, 255, 0.9), inset 0 -1px 1px rgba(0, 0, 0, 0.04);
}

.jc-premium-list__item-link {
  display: contents;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.jc-premium-list__item--attivi .jc-premium-list__row-title {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  color: var(--text);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow-wrap: anywhere;
}
.jc-premium-list__item--attivi .jc-premium-list__row-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
  margin-top: 2px;
}
.jc-premium-list__item--attivi .jc-premium-list__city {
  font-size: 13px;
  font-weight: 400;
  color: var(--muted);
  opacity: 0.9;
}
.jc-premium-list__item--attivi .jc-premium-list__sep {
  font-size: 13px;
  color: var(--muted);
  opacity: 0.7;
}
.jc-premium-list__item--attivi .jc-premium-list__meta {
  flex-shrink: 0;
  min-width: 4.5em;
  font-size: 12px;
  font-weight: 600;
  color: #1e4d6b;
  background: linear-gradient(180deg, #e8f4fc 0%, #d5ebf8 100%);
  border: 1px solid rgba(30, 77, 107, 0.2);
  padding: 3px 10px;
  border-radius: 8px;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 1px 2px rgba(30, 77, 107, 0.06);
}
.jc-premium-list__item--attivi .jc-premium-list__row-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
  max-width: 100%;
  min-width: 0;
}

.jc-premium-list__item .jc-link {
  flex: 1;
  min-width: 0;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.35;
}

.jc-premium-list__item-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
.jc-premium-list__badge {
  min-width: 72px;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.jc-premium-list__item-right .jc-countdown,
.jc-premium-list__meta {
  min-width: 88px;
  text-align: right;
  font-variant-numeric: tabular-nums;
  font-size: 12px;
  font-weight: 500;
  color: var(--muted);
}

/* Box Premium: layout 3 righe - titolo | citta Ncandidati | badge */
@media (min-width: 768px) {
  .jc-premium-list--attivi .jc-premium-list__item--attivi {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    padding: 10px 14px;
  }
  .jc-premium-list--attivi .jc-premium-list__row-title {
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    white-space: unset;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
  .jc-premium-list--attivi .jc-premium-list__city {
    font-size: 13px;
    font-weight: 400;
    color: var(--muted);
    opacity: 0.85;
  }
  .jc-premium-list--attivi .jc-premium-list__item--attivi .jc-premium-list__meta {
    font-size: 12px;
    font-weight: 600;
    color: #1e4d6b;
    min-width: 4.5em;
    flex-shrink: 0;
    background: linear-gradient(180deg, #e8f4fc 0%, #d5ebf8 100%);
    border: 1px solid rgba(30, 77, 107, 0.2);
    padding: 3px 10px;
    border-radius: 8px;
    box-shadow: 0 1px 2px rgba(30, 77, 107, 0.06);
    text-align: right;
  }
  .jc-premium-list--attivi .jc-premium-list__row-badges .jc-badge {
    font-size: 10px;
    padding: 2px 6px;
    min-width: 0;
  }
}

/* Mobile: box Premium stessa struttura 3 righe (come desktop) */
@media (max-width: 767px) {
  .jc-premium-list--attivi .jc-premium-list__item--attivi {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    padding: 10px 14px;
  }
  .jc-premium-list--attivi .jc-premium-list__row-title {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .jc-premium-list--attivi .jc-premium-list__row-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
    min-width: 0;
    margin-top: 2px;
  }
  .jc-premium-list--attivi .jc-premium-list__city {
    font-size: 13px;
    font-weight: 400;
    color: var(--muted);
    opacity: 0.85;
  }
  .jc-premium-list--attivi .jc-premium-list__item--attivi .jc-premium-list__meta {
    font-size: 12px;
    font-weight: 600;
    color: #1e4d6b;
    min-width: 4.5em;
    flex-shrink: 0;
    background: linear-gradient(180deg, #e8f4fc 0%, #d5ebf8 100%);
    border: 1px solid rgba(30, 77, 107, 0.2);
    padding: 3px 10px;
    border-radius: 8px;
    box-shadow: 0 1px 2px rgba(30, 77, 107, 0.06);
    text-align: right;
  }
  .jc-premium-list--attivi .jc-premium-list__row-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin-top: 4px;
  }
  .jc-premium-list--attivi .jc-premium-list__row-badges .jc-badge {
    font-size: 10px;
    padding: 2px 6px;
    min-width: 0;
  }
}

.jc-countdown {
  font-variant-numeric: tabular-nums;
}
.jc-countdown--expired {
  color: var(--muted);
}

.jc-premium-section .jc-card__meta {
  font-size: 12px;
  margin-top: 8px;
}

.jc-search--secondary .jc-input,
.jc-search--secondary .jc-select {
  font-size: 14px;
}

/* Blocco ricerca annunci (Premium e caso 1) - margini simmetrici come a destra */
.jc-search-block {
  margin-bottom: 20px;
  margin-left: 12px;
  margin-right: 12px;
  overflow: visible;
}
.jc-search-block--new {
  margin-left: 20px;
  margin-right: 20px;
}
.jc-search-block__label {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  margin-bottom: 8px;
}
.jc-premium-search .jc-search-block__label,
.jc-annunci-search-bar .jc-search-block__label {
  margin-top: 0;
}
.jc-premium-search__label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.jc-premium-search {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px 20px;
  box-shadow: 0 2px 12px rgba(17, 24, 39, 0.06);
  box-sizing: border-box;
}
.jc-premium-search__bar {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.jc-premium-search__input-wrap {
  flex: 1;
  min-width: 0;
}
.jc-premium-search__input {
  width: 100%;
  font-size: 16px;
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px solid var(--border);
  background: var(--soft, #f8f6f3);
  box-sizing: border-box;
}
.jc-premium-search__input:focus {
  outline: none;
  border-color: var(--primary, rgba(47, 43, 42, 0.3));
  background: #fff;
  box-shadow: 0 0 0 3px rgba(170, 200, 140, 0.25);
}
.jc-premium-search__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.jc-premium-search__field {
  position: relative;
}
.jc-premium-search__select {
  font-size: 15px;
  padding: 10px 32px 10px 12px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: var(--soft, #f8f6f3);
  min-width: 130px;
}
.jc-premium-search__select:focus {
  outline: none;
  border-color: var(--primary, rgba(47, 43, 42, 0.3));
  background: #fff;
}
.jc-premium-search__btn {
  padding: 8px 14px;
  font-size: 14px;
  border-radius: 10px;
}

/* Multi-select checkbox (Stato, Tipo) - mobile e desktop */
/* Multi-select dropdown - menu a tendina professionale */
.jc-multiselect-dropdown {
  position: relative;
  min-width: 140px;
}
.jc-multiselect-dropdown__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  min-height: 48px;
  padding: 12px 14px;
  font-size: 15px;
  font-family: inherit;
  color: var(--text);
  background: var(--soft, #f8f6f3);
  border: 1px solid var(--border);
  border-radius: 10px;
  cursor: pointer;
  text-align: left;
  -webkit-tap-highlight-color: transparent;
  transition: border-color 0.2s, background 0.2s;
}
.jc-multiselect-dropdown__trigger:hover {
  border-color: rgba(47, 43, 42, 0.25);
  background: #fff;
}
.jc-multiselect-dropdown__trigger[aria-expanded="true"] {
  border-color: var(--primary, rgba(47, 43, 42, 0.35));
  background: #fff;
  box-shadow: 0 0 0 2px rgba(170, 200, 140, 0.25);
}
.jc-multiselect-dropdown__label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  flex-shrink: 0;
}
.jc-multiselect-dropdown__value {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
}
.jc-multiselect-dropdown__chevron {
  flex-shrink: 0;
  opacity: 0.6;
  transition: transform 0.2s;
}
.jc-multiselect-dropdown__trigger[aria-expanded="true"] .jc-multiselect-dropdown__chevron {
  transform: rotate(180deg);
}
.jc-multiselect-dropdown__panel {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  min-width: 200px;
  max-height: 280px;
  overflow-y: auto;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(17, 24, 39, 0.12);
  z-index: 200;
  padding: 8px 0;
}
.jc-multiselect-dropdown__panel[hidden] {
  display: none !important;
}
.jc-multiselect-dropdown__options {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.jc-multiselect-dropdown__option {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  font-size: 15px;
  color: var(--text);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s;
}
.jc-multiselect-dropdown__option:hover {
  background: var(--soft, rgba(248, 250, 252, 0.8));
}
.jc-multiselect-dropdown__option input[type="checkbox"] {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  accent-color: var(--primary, #15803d);
  cursor: pointer;
}
@media (min-width: 640px) {
  .jc-multiselect-dropdown {
    min-width: 160px;
  }
  .jc-multiselect-dropdown__trigger {
    min-height: 42px;
    padding: 10px 16px;
  }
  .jc-multiselect-dropdown__panel {
    min-width: 220px;
  }
}
@media (max-width: 767px) {
  .jc-search-block {
    margin-left: 16px;
    margin-right: 16px;
  }
  /* Form ricerca annunci: input e selettori bianchi su mobile */
  .jc-welcome-row .jc-premium-search__input {
    background: #fff !important;
  }
  .jc-welcome-row .jc-multiselect-dropdown__trigger {
    background: #fff !important;
  }
}
@media (max-width: 639px) {
  .jc-premium-search {
    padding: 14px 16px;
    border-radius: 12px;
  }
  .jc-premium-search__bar {
    gap: 10px;
  }
  .jc-premium-search__input {
    font-size: 16px;
    padding: 12px 14px;
    border-radius: 10px;
  }
  .jc-premium-search__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;
    align-items: flex-start;
  }
  .jc-premium-search__field {
    flex: 1 1 100%;
    min-width: 0;
  }
  .jc-premium-search__select {
    font-size: 14px;
    padding: 10px 28px 10px 12px;
    min-width: 0;
  }
  .jc-premium-search__btn {
    width: 100%;
    min-height: 44px;
    padding: 10px 14px;
    font-size: 14px;
  }
}
@media (min-width: 640px) {
  .jc-premium-search__bar {
    flex-direction: row;
    align-items: center;
    gap: 12px;
  }
  .jc-premium-search__input-wrap {
    flex: 1;
    min-width: 200px;
  }
  .jc-premium-search__filters {
    flex-wrap: nowrap;
    flex-shrink: 0;
  }
}

/* Pannello unificato: tab + tabella annunci (non-Premium) */
.jc-annunci-panel {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  overflow: visible;
  margin-bottom: 24px;
  box-shadow: 0 2px 12px rgba(17, 24, 39, 0.06);
}
.jc-annunci-panel__body {
  overflow: hidden;
  border-radius: 0 0 14px 14px;
}
.jc-annunci-panel__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 12px 16px;
  background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
  border-bottom: 1px solid var(--border);
}
.jc-annunci-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  color: var(--text);
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.jc-annunci-tab:hover {
  background: rgba(34, 197, 94, 0.06);
  border-color: rgba(34, 197, 94, 0.3);
  color: var(--cta);
}
.jc-annunci-tab.is-active {
  background: #fff;
  border-color: rgba(34, 197, 94, 0.5);
  color: #166534;
  box-shadow: 0 0 0 1px rgba(34, 197, 94, 0.2);
}
.jc-annunci-tab__count {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 6px;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.06);
  color: var(--muted);
}
.jc-annunci-tab.is-active .jc-annunci-tab__count {
  background: rgba(34, 197, 94, 0.15);
  color: #166534;
}
/* Barra ricerca Candidature (applications) - tutti in linea */
.jc-applications-search.jc-premium-search .jc-premium-search__bar {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
}
.jc-applications-search.jc-premium-search .jc-premium-search__input-wrap {
  flex: 1 1 200px;
  min-width: 0;
}
.jc-applications-search.jc-premium-search .jc-premium-search__filters {
  flex-wrap: wrap;
  flex: 1 1 auto;
}

/* Filtri salvati Candidature (Premium) */
.jc-saved-searches {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}
.jc-saved-searches__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.jc-saved-searches__item {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.jc-saved-searches__del {
  background: none;
  border: none;
  cursor: pointer;
  padding: 2px 6px;
  font-size: 18px;
  line-height: 1;
  color: var(--muted, #6b7280);
}
.jc-saved-searches__del:hover {
  color: var(--danger, #dc2626);
}

/* Barra ricerca annunci (caso 1) - mobile e desktop */
.jc-annunci-search-bar {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 20px;
  box-shadow: 0 2px 10px rgba(17, 24, 39, 0.05);
}
.jc-annunci-search-bar__input-wrap {
  margin-bottom: 12px;
}
.jc-annunci-search-bar__label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  margin-bottom: 4px;
}
.jc-annunci-search-bar__input {
  width: 100%;
  font-size: 16px;
  padding: 10px 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(248, 250, 252, 0.8);
}
.jc-annunci-search-bar__input:focus {
  outline: none;
  border-color: rgba(34, 197, 94, 0.4);
  background: #fff;
}
.jc-annunci-search-bar__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: flex-end;
}
.jc-annunci-search-bar__field {
  flex: 1;
  min-width: 120px;
}
.jc-annunci-search-bar__select {
  width: 100%;
  font-size: 15px;
  padding: 10px 32px 10px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(248, 250, 252, 0.8);
  color: var(--text);
}
.jc-annunci-search-bar__select:focus {
  outline: none;
  border-color: rgba(34, 197, 94, 0.4);
  background: #fff;
}
.jc-annunci-search-bar__btn {
  padding: 8px 12px;
  font-size: 14px;
  border-radius: 8px;
  flex-shrink: 0;
}
@media (max-width: 767px) {
  .jc-annunci-search-bar {
    padding: 14px 12px;
    border-radius: 12px;
    border: 1px solid rgba(17, 24, 39, 0.06);
    box-shadow: 0 2px 8px rgba(17, 24, 39, 0.05);
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .jc-annunci-search-bar__input-wrap {
    margin-bottom: 0;
  }
  .jc-annunci-search-bar__input-wrap .jc-annunci-search-bar__label {
    display: none;
  }
  .jc-annunci-search-bar__input {
    font-size: 18px;
    padding: 14px 16px;
  }
  .jc-annunci-search-bar__filters {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 16px;
    align-items: flex-start;
    margin-bottom: 0;
  }
  .jc-annunci-search-bar__field {
    flex: 1 1 100%;
    min-width: 0;
  }
  .jc-annunci-search-bar__field .jc-annunci-search-bar__label {
    display: none;
  }
  .jc-annunci-search-bar__select {
    font-size: 17px;
    padding: 14px 32px 14px 12px;
    width: 100%;
  }
  .jc-annunci-search-bar__btn {
    padding: 8px 12px;
    font-size: 14px;
    font-weight: 600;
    flex-shrink: 0;
    align-self: center;
  }
}
@media (min-width: 768px) {
  .jc-annunci-search-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px;
  }
  .jc-annunci-search-bar__input-wrap {
    flex: 1;
    min-width: 200px;
    margin-bottom: 0;
  }
  .jc-annunci-search-bar__filters {
    flex-wrap: nowrap;
    flex-shrink: 0;
    margin-bottom: 0;
  }
  .jc-annunci-search-bar__field {
    flex: 0 0 auto;
    min-width: 140px;
  }
  .jc-annunci-search-bar__field {
    min-width: 160px;
  }
}
.jc-annunci-panel__body {
  padding: 0;
}
.jc-annunci-table-wrap {
  overflow-x: auto;
}
.jc-annunci-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.jc-annunci-table th,
.jc-annunci-table td {
  padding: 14px 16px;
  text-align: left;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  vertical-align: middle;
}
.jc-annunci-table th {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
  background: rgba(248, 250, 252, 0.8);
}
.jc-annunci-table__row:hover td {
  background: rgba(34, 197, 94, 0.03);
}
.jc-annunci-table__row:last-child td {
  border-bottom: none;
}
.jc-annunci-table__section-header td {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  border-left: 3px solid transparent;
}
.jc-annunci-table__section-header--published td {
  border-left-color: rgba(34, 197, 94, 0.5);
  background: linear-gradient(90deg, rgba(34, 197, 94, 0.05) 0%, rgba(248, 250, 252, 0.98) 100%);
  color: #15803d;
}
.jc-annunci-table__section-header--draft td {
  border-left-color: rgba(201, 162, 39, 0.5);
  background: linear-gradient(90deg, rgba(201, 162, 39, 0.08) 0%, rgba(248, 250, 252, 0.98) 100%);
  color: #a68b2c;
}
.jc-annunci-table__section-header--closed td {
  border-left-color: rgba(239, 68, 68, 0.45);
  background: linear-gradient(90deg, rgba(239, 68, 68, 0.06) 0%, rgba(248, 250, 252, 0.98) 100%);
  color: #dc2626;
}
.jc-annunci-table__section-header--expired td {
  border-left-color: rgba(71, 85, 105, 0.35);
  background: linear-gradient(90deg, rgba(71, 85, 105, 0.04) 0%, rgba(248, 250, 252, 0.98) 100%);
  color: #64748b;
}
.jc-annunci-table .jc-link--fw {
  font-weight: 600;
}
.jc-annunci-table__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}
.jc-annunci-table__actions .jc-link,
.jc-annunci-table__actions button.jc-link {
  font-size: 13px;
}
@media (max-width: 767px) {
  .jc-annunci-table,
  .jc-annunci-table thead,
  .jc-annunci-table tbody,
  .jc-annunci-table tr { display: block; }
  .jc-annunci-table th { display: none; }
  .jc-annunci-table td {
    display: block;
    padding: 12px 14px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    font-size: 16px;
  }
  .jc-annunci-table td::before {
    content: attr(data-label);
    display: block;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--muted);
    margin-bottom: 2px;
  }
  .jc-annunci-table td[data-label="Titolo"]::before { display: none; }
  .jc-annunci-table__section-header {
    display: block;
    margin: 16px 0 8px 0;
    padding: 0;
  }
  .jc-annunci-table__section-header:first-child {
    margin-top: 12px;
  }
  .jc-annunci-table__section-header td {
    display: block;
    padding: 12px 14px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    border: none;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    border-left: 3px solid transparent;
    border-radius: 4px 4px 0 0;
  }
  .jc-annunci-table__section-header--published td {
    border-left-color: rgba(34, 197, 94, 0.5);
    background: linear-gradient(90deg, rgba(34, 197, 94, 0.06) 0%, rgba(248, 250, 252, 0.95) 100%);
    color: #15803d;
  }
  .jc-annunci-table__section-header--draft td {
    border-left-color: rgba(201, 162, 39, 0.5);
    background: linear-gradient(90deg, rgba(201, 162, 39, 0.08) 0%, rgba(248, 250, 252, 0.95) 100%);
    color: #a68b2c;
  }
  .jc-annunci-table__section-header--closed td {
    border-left-color: rgba(239, 68, 68, 0.45);
    background: linear-gradient(90deg, rgba(239, 68, 68, 0.07) 0%, rgba(248, 250, 252, 0.95) 100%);
    color: #dc2626;
  }
  .jc-annunci-table__section-header--expired td {
    border-left-color: rgba(71, 85, 105, 0.35);
    background: linear-gradient(90deg, rgba(71, 85, 105, 0.05) 0%, rgba(248, 250, 252, 0.95) 100%);
    color: #64748b;
  }
  .jc-annunci-table__section-header td::before { display: none; }
  .jc-annunci-table__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto auto;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 10px;
    margin: 0 0 10px 0;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(17, 24, 39, 0.06);
  }
  .jc-annunci-table__row td[data-label="Titolo"] {
    grid-column: 1 / -1;
    padding: 14px 14px 10px;
    font-weight: 700;
    font-size: 18px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  }
  .jc-annunci-table__row td[data-label="Titolo"] .jc-link {
    font-weight: 600;
  }
  .jc-annunci-table__row td[data-label="Titolo"] .jc-badge--new {
    font-size: 12px;
    padding: 4px 10px;
  }
  .jc-annunci-table__stato-tipo-cell {
    grid-column: 1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    padding: 8px 14px 10px;
    border-bottom: none;
    border-right: 1px solid rgba(0, 0, 0, 0.05);
  }
  .jc-annunci-table .jc-annunci-table__stato-tipo-cell::before {
    display: none !important;
  }
  .jc-annunci-table__stato-tipo-inner {
    display: inline-flex;
    align-items: center;
    gap: 4px;
  }
  .jc-annunci-table__stato-tipo-label {
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--muted);
  }
  .jc-annunci-table__row .jc-status,
  .jc-annunci-table__row .jc-badge {
    font-size: 14px;
    padding: 5px 12px;
  }
  .jc-annunci-table__row td[data-label="Sede"] {
    grid-column: 2;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px 10px;
    border-bottom: none;
  }
  .jc-annunci-table__row td[data-label="Sede"]::before {
    display: inline;
    margin-bottom: 0;
    font-size: 12px;
  }
  .jc-annunci-table__row td[data-label="Azioni"] {
    grid-column: 1 / -1;
    padding: 10px 14px 14px;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    background: rgba(248, 250, 252, 0.5);
  }
  .jc-annunci-table__row td[data-label="Azioni"]::before {
    display: none;
  }
  .jc-annunci-table__row .jc-annunci-table__actions {
    gap: 8px 12px;
  }
  .jc-annunci-table__row .jc-annunci-table__actions .jc-link,
  .jc-annunci-table__row .jc-annunci-table__actions button.jc-link {
    font-size: 15px;
    font-weight: 500;
  }
  .jc-annunci-table__row td { border-bottom-color: transparent; }
  .jc-annunci-table__row td:last-child { border-bottom: none; }
}

/* Desktop: Stato e Tipo come colonne separate (td con colspan 2) */
@media (min-width: 768px) {
  .jc-annunci-table__stato-tipo-cell {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }
  .jc-annunci-table__stato-tipo-label {
    display: none;
  }
  .jc-annunci-table__stato-tipo-inner {
    display: block;
  }
}

/* Contatori e preset separati (non-Premium): contatori sopra, tasti scelta rapida sotto */
.jc-dash-presets--bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 14px 16px;
  background: rgba(248, 250, 252, 0.8);
  border: 1px solid var(--border);
  border-radius: 12px;
  margin-bottom: 24px;
  box-shadow: 0 1px 4px rgba(17, 24, 39, 0.06);
}
.jc-dash-presets--bar .jc-dash-preset {
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 500;
  border: none;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.04);
  box-shadow: none;
}
.jc-dash-presets--bar .jc-dash-preset:hover {
  background: rgba(34, 197, 94, 0.1);
  border: none;
}
.jc-dash-presets--bar .jc-dash-preset.is-active {
  background: rgba(34, 197, 94, 0.14);
  border: none;
  box-shadow: none;
  color: #166534;
}
.jc-annunci-counters--row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-bottom: 20px;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(17, 24, 39, 0.04);
}
.jc-annunci-counters--row .jc-annunci-counter {
  min-width: 0;
  min-height: 56px;
  padding: 14px 16px;
  border-radius: 0;
  border: none;
  border-right: 1px solid rgba(0, 0, 0, 0.06);
  transition: background 0.15s ease;
}
.jc-annunci-counters--row .jc-annunci-counter:last-child {
  border-right: none;
}
.jc-annunci-counters--row .jc-annunci-counter__value {
  font-size: 1.25rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--text);
}
.jc-annunci-counters--row .jc-annunci-counter__label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-top: 4px;
  color: var(--muted);
}
.jc-annunci-counters--row .jc-annunci-counter--published,
.jc-annunci-counters--row .jc-annunci-counter--draft,
.jc-annunci-counters--row .jc-annunci-counter--closed,
.jc-annunci-counters--row .jc-annunci-counter--expired {
  background: transparent;
  border-left: none;
}
.jc-annunci-counters--row .jc-annunci-counter--published .jc-annunci-counter__value { color: #15803d; }
.jc-annunci-counters--row .jc-annunci-counter--draft .jc-annunci-counter__value { color: #a68b2c; }
.jc-annunci-counters--row .jc-annunci-counter--closed .jc-annunci-counter__value { color: #dc2626; }
.jc-annunci-counters--row .jc-annunci-counter--expired .jc-annunci-counter__value { color: #64748b; }
@media (min-width: 640px) {
  .jc-annunci-counters--row .jc-annunci-counter {
    min-height: 60px;
    padding: 16px 18px;
  }
  .jc-annunci-counters--row .jc-annunci-counter__value {
    font-size: 1.375rem;
  }
  .jc-annunci-counters--row .jc-annunci-counter__label {
    font-size: 10px;
  }
}
@media (max-width: 499px) {
  .jc-annunci-counters--row {
    grid-template-columns: repeat(2, 1fr);
  }
  .jc-annunci-counters--row .jc-annunci-counter {
    min-height: 52px;
    padding: 12px 14px;
    border-right: none;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  }
  .jc-annunci-counters--row .jc-annunci-counter:nth-child(odd) {
    border-right: 1px solid rgba(0, 0, 0, 0.06);
  }
  .jc-annunci-counters--row .jc-annunci-counter:nth-child(3),
  .jc-annunci-counters--row .jc-annunci-counter:nth-child(4) {
    border-bottom: none;
  }
  .jc-annunci-counters--row .jc-annunci-counter__value {
    font-size: 1.2rem;
  }
}
@media (max-width: 767px) {
  .jc-annunci-panel .jc-annunci-counters--row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin: 0 0 10px;
    padding: 0;
    border-radius: 0;
    border: none;
    overflow: hidden;
  }
  .jc-annunci-panel .jc-annunci-counters--row .jc-annunci-counter {
    min-height: 52px;
    padding: 12px 14px;
    border-right: 1px solid rgba(0, 0, 0, 0.05);
    border-bottom: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
  }
  .jc-annunci-panel .jc-annunci-counters--row .jc-annunci-counter:last-child {
    border-right: none;
  }
  .jc-annunci-panel .jc-annunci-counters--row .jc-annunci-counter__value {
    font-size: 20px;
    font-weight: 800;
    line-height: 1.2;
  }
  .jc-annunci-panel .jc-annunci-counters--row .jc-annunci-counter__label {
    font-size: 12px;
    margin-top: 4px;
    letter-spacing: 0.04em;
  }
}
@media (max-width: 499px) {
  .jc-annunci-panel .jc-annunci-counters--row .jc-annunci-counter {
    min-height: 48px;
    padding: 10px 12px;
  }
  .jc-annunci-panel .jc-annunci-counters--row .jc-annunci-counter__value {
    font-size: 18px;
  }
  .jc-annunci-panel .jc-annunci-counters--row .jc-annunci-counter__label {
    font-size: 11px;
  }
}

/* Preset chips (non-Premium): mobile-first */
.jc-dash-presets {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 24px;
}
.jc-dash-preset {
  display: inline-flex;
  align-items: center;
  padding: 10px 18px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  color: var(--text);
  background: var(--today-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.15s;
}
.jc-dash-preset:hover {
  background: rgba(34, 197, 94, 0.06);
  border-color: rgba(34, 197, 94, 0.3);
  color: var(--cta);
}
.jc-dash-preset.is-active {
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
  border-color: rgba(34, 197, 94, 0.4);
  color: #166534;
  box-shadow: 0 2px 8px rgba(34, 197, 94, 0.12);
}
@media (min-width: 600px) {
  .jc-dash-presets {
    gap: 12px;
    margin-bottom: 28px;
  }
  .jc-dash-preset {
    padding: 12px 20px;
    font-size: 15px;
    border-radius: 14px;
  }
}

/* Dashboard unificata non-Premium: punto visivo unico */
.jc-dashboard-unified {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 4px 24px rgba(17, 24, 39, 0.08), 0 0 0 1px rgba(17, 24, 39, 0.04);
  overflow: visible;
  margin-bottom: 28px;
}
body:has(.jc-topbar-company) .jc-company-dashboard-main--hero {
  background: #fff;
  min-height: 100vh;
}
body:has(.jc-topbar-company) main.jc-company-dashboard-main--hero.jc-container {
  padding-top: 28px;
  padding-bottom: 40px;
}
@media (max-width: 767px) {
  body:has(.jc-topbar-company) main.jc-company-dashboard-main--hero.jc-container {
    padding: 20px 0 28px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }
  body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-toast {
    margin-left: 20px;
    margin-right: 20px;
  }
  body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-welcome-row {
    margin-left: 20px;
    margin-right: 20px;
  }
  /* Caso 1 (Free/Standard): sezione annunci - blocchi fino ai bordi pagina */
  .jc-section--annunci-free {
    padding: 0;
    margin: 0 -20px 24px -20px;
  }
  .jc-section--annunci-free .jc-annunci-blocks {
    margin: 0;
    padding: 0;
  }
  .jc-section--annunci-free .jc-annunci-block {
    border-radius: 12px;
    border-left: 3px solid var(--border);
    border-right: 1px solid rgba(17, 24, 39, 0.08);
    margin-left: 0;
    margin-right: 0;
    padding: 10px 14px;
  }
  .jc-section--annunci-free .jc-annunci-blocks .jc-annunci-block {
    padding: 10px 14px;
  }
  .jc-section--annunci-free .jc-section__head,
  .jc-section--annunci-free .jc-backlinks {
    padding-left: 20px;
    padding-right: 20px;
  }
  .jc-section--annunci-free .jc-annunci-blocks {
    padding-left: 0;
    padding-right: 0;
  }
  .jc-section--annunci-free .jc-card__meta {
    margin: 0 0 16px 0;
    padding: 0;
  }
  .jc-section--annunci-free .jc-annunci-counters {
    padding-left: 20px;
    padding-right: 20px;
  }
  .jc-section--annunci-free .jc-search-block {
    margin-left: 20px;
    margin-right: 20px;
    margin-bottom: 20px;
  }
  /* Premium: annunci fino ai margini laterali (solo mobile) */
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) {
    margin-left: -20px;
    margin-right: -20px;
    margin-bottom: 24px;
    padding: 0;
  }
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) .jc-section__head,
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) .jc-backlinks,
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) .jc-search-block,
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) .jc-annunci-counters {
    padding-left: 12px;
    padding-right: 12px;
  }
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) .jc-search-block {
    margin-left: 0;
    margin-right: 0;
  }
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) .jc-annunci-block {
    margin-left: 0;
    margin-right: 0;
    border-radius: 12px;
    border-left: 3px solid var(--border);
  }
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) .jc-annunci-block--published .jc-annunci-block__head { border-left-color: rgba(74,143,90,.5); }
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) .jc-annunci-block--draft .jc-annunci-block__head { border-left-color: rgba(166,139,44,.5); }
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) .jc-annunci-block--closed .jc-annunci-block__head { border-left-color: rgba(220,38,38,.5); }
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) .jc-annunci-block--expired .jc-annunci-block__head { border-left-color: rgba(100,116,139,.5); }
  body:has(.jc-topbar-company) .jc-section--annunci:not(.jc-section--annunci-free) div[style*="justify-content:flex-end"] {
    padding-left: 12px;
    padding-right: 12px;
  }
  body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-section--soft {
    margin-left: 20px;
    margin-right: 20px;
  }
  .jc-dashboard-unified {
    margin-left: 20px;
    margin-right: 20px;
    border-radius: 0;
    box-shadow: none;
    border: none;
    background: transparent;
  }
  .jc-dashboard-unified .jc-section--annunci {
    padding: 12px 0 20px;
  }
  .jc-dashboard-unified .jc-search-block__label {
    font-size: 0.8rem;
    margin-bottom: 4px;
  }
  .jc-dashboard-unified .jc-annunci-panel {
    border-radius: 12px;
    margin-left: 12px;
    margin-right: 12px;
    border: 1px solid rgba(17, 24, 39, 0.06);
    box-shadow: 0 2px 10px rgba(17, 24, 39, 0.05);
  }
  .jc-annunci-search-bar {
    padding: 14px 0;
    margin-bottom: 16px;
  }
  .jc-annunci-panel .jc-annunci-counters--row {
    margin: 0 0 8px;
  }
  .jc-annunci-table__row {
    margin: 0 0 6px 0;
  }
  .jc-annunci-table__section-header {
    margin: 12px 0 6px 0;
  }
  body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-section--soft {
    margin-left: 20px;
    margin-right: 20px;
    padding: 16px 0 20px;
    border-radius: 0;
    box-shadow: none;
    border: none;
  }
  body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-toast {
    margin-left: 20px;
    margin-right: 20px;
  }
}
.jc-dashboard-unified .jc-welcome-row {
  padding: 24px 0 20px;
  margin-bottom: 0;
  gap: 20px;
}
.jc-dashboard-unified .jc-section--annunci {
  padding: 20px 0 28px;
  margin: 0;
  background: transparent;
  border-radius: 0;
}
.jc-dashboard-unified .jc-section--annunci .jc-section__head {
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(17, 24, 39, 0.06);
}
.jc-dashboard-unified .jc-section--annunci .jc-section__title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.02em;
}
.jc-dashboard-unified .jc-section--annunci .jc-section__subtitle {
  font-size: 0.9rem;
  color: var(--muted);
  margin-top: 4px;
}
/* Blocco KPI unificato (caso 1): un unico blocco pulito - Standard/Flash + Pubblicati/Bozze/Chiusi/Scaduti */
.jc-kpi-unified {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
  margin-bottom: 20px;
  background: #fff;
  border: 1px solid rgba(17, 24, 39, 0.08);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(17, 24, 39, 0.05);
}
.jc-kpi-unified__item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 14px 16px;
  background: transparent;
  border: none;
  border-radius: 0;
  border-right: 1px solid rgba(17, 24, 39, 0.06);
  border-bottom: 1px solid rgba(17, 24, 39, 0.06);
  box-shadow: none;
}
.jc-kpi-unified__item:nth-child(2n) {
  border-right: none;
}
.jc-kpi-unified__item:nth-last-child(-n+2) {
  border-bottom: none;
}
.jc-kpi-unified__value {
  font-size: 1.2rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--text);
}
.jc-kpi-unified__label {
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  margin-top: 2px;
}
.jc-kpi-unified__meta {
  font-size: 10px;
  color: var(--muted);
  margin-top: 1px;
}
.jc-kpi-unified__item--plan .jc-kpi-unified__value { color: var(--text); }
.jc-kpi-unified__item--published .jc-kpi-unified__value,
.jc-annunci-counter--published .jc-kpi-unified__value { color: #15803d; }
.jc-kpi-unified__item--draft .jc-kpi-unified__value,
.jc-annunci-counter--draft .jc-kpi-unified__value { color: #a68b2c; }
.jc-kpi-unified__item--closed .jc-kpi-unified__value,
.jc-annunci-counter--closed .jc-kpi-unified__value { color: #dc2626; }
.jc-kpi-unified__item--expired .jc-kpi-unified__value,
.jc-annunci-counter--expired .jc-kpi-unified__value { color: #64748b; }
@media (min-width: 500px) {
  .jc-kpi-unified {
    grid-template-columns: repeat(3, 1fr);
  }
  .jc-kpi-unified__item:nth-child(2n) {
    border-right: 1px solid rgba(17, 24, 39, 0.06);
  }
  .jc-kpi-unified__item:nth-child(3n) {
    border-right: none;
  }
  .jc-kpi-unified__item:nth-last-child(-n+2) {
    border-bottom: 1px solid rgba(17, 24, 39, 0.06);
  }
  .jc-kpi-unified__item:nth-last-child(-n+3) {
    border-bottom: none;
  }
}
@media (min-width: 768px) {
  .jc-kpi-unified {
    grid-template-columns: repeat(6, 1fr);
  }
  .jc-kpi-unified__item {
    padding: 16px 18px;
    border-right: 1px solid rgba(17, 24, 39, 0.06);
    border-bottom: none;
  }
  .jc-kpi-unified__item:nth-child(3n),
  .jc-kpi-unified__item:nth-child(2n) {
    border-right: 1px solid rgba(17, 24, 39, 0.06);
  }
  .jc-kpi-unified__item:last-child {
    border-right: none;
  }
  .jc-kpi-unified__item:nth-last-child(-n+3) {
    border-bottom: none;
  }
  .jc-kpi-unified__value {
    font-size: 1.3rem;
  }
}
@media (max-width: 499px) {
  .jc-kpi-unified__item {
    padding: 12px 14px;
  }
  .jc-kpi-unified__value {
    font-size: 1.1rem;
  }
}

.jc-dashboard-unified .jc-annunci-counters--row {
  margin-bottom: 20px;
  border-radius: 14px;
  border: 1px solid rgba(17, 24, 39, 0.06);
  box-shadow: 0 2px 8px rgba(17, 24, 39, 0.05);
}
.jc-dashboard-unified .jc-annunci-panel {
  border-radius: 14px;
  border: 1px solid rgba(17, 24, 39, 0.06);
  box-shadow: 0 2px 12px rgba(17, 24, 39, 0.06);
  margin-bottom: 0;
}
/* Sezione candidature: card coerente con dashboard unificata */
body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-section--soft {
  background: #fff;
  border-radius: 20px;
  padding: 24px 0 28px;
  box-shadow: 0 4px 24px rgba(17, 24, 39, 0.08), 0 0 0 1px rgba(17, 24, 39, 0.04);
  margin-bottom: 28px;
}
body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-section--soft .jc-section__head {
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(17, 24, 39, 0.06);
}
body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-section--soft .jc-section__title {
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}
@media (max-width: 767px) {
  body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-section--soft {
    padding: 16px 0 20px;
  }
  .jc-dashboard-unified .jc-welcome-row {
    padding: 14px 0 12px;
  }
  .jc-dashboard-unified .jc-section--annunci {
    padding: 12px 0 20px;
  }
  .jc-dashboard-unified .jc-section--annunci .jc-section__head {
    margin-bottom: 16px;
    padding-bottom: 12px;
  }
}

/* Benvenuto + 4 box Free 2x2: affiancati */
.jc-welcome-row {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 20px;
}
.jc-welcome-row .dash-hero {
  margin-bottom: 0;
}

/* Benvenuto azienda: hero più attraente con foto */
.jc-welcome-row .dash-hero.dash-hero--company {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(240, 253, 244, 0.6) 0%, rgba(255, 255, 255, 0.98) 50%, rgba(248, 250, 252, 0.98) 100%);
  border: 1px solid rgba(34, 197, 94, 0.12);
  border-radius: 16px;
  padding: 24px 20px;
  box-shadow: 0 4px 16px rgba(17, 24, 39, 0.06);
}
.jc-welcome-row .dash-hero.dash-hero--company::before {
  content: "";
  position: absolute;
  top: -50px;
  right: -30px;
  width: 140px;
  height: 140px;
  background: radial-gradient(circle, rgba(34, 197, 94, 0.08) 0%, transparent 70%);
  pointer-events: none;
}
.jc-welcome-row .dash-hero.dash-hero--company .dash-hero__inner {
  position: relative;
  z-index: 1;
}

.jc-welcome-row .dash-hero.dash-hero--company {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.jc-welcome-row .dash-hero.dash-hero--company .dash-hero__avatar-wrap {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.jc-welcome-row .dash-hero.dash-hero--company .dash-hero__plan-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.jc-welcome-row .dash-hero.dash-hero--company .dash-hero__plan-stack .jc-btn--plan {
  font-size: 11px;
  padding: 4px 10px;
}
.jc-welcome-row .dash-hero.dash-hero--company .dash-hero__expiry {
  font-size: 11px;
  color: var(--muted);
}
.jc-welcome-row .dash-hero.dash-hero--company .dash-hero__avatar {
  width: 64px;
  height: 64px;
  border-radius: 10px;
  border: 3px solid rgba(255, 255, 255, 0.9);
  box-shadow: 0 4px 20px rgba(17, 24, 39, 0.12), 0 0 0 1px rgba(34, 197, 94, 0.2);
  overflow: hidden;
}
.jc-welcome-row .dash-hero.dash-hero--company .dash-hero__avatar--fallback {
  font-size: 1.5rem;
  font-weight: 800;
  color: #15803d;
  background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%);
}
.jc-welcome-row .dash-hero.dash-hero--company .dash-hero__title {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.02em;
  margin-bottom: 4px;
}
.jc-welcome-row .dash-hero.dash-hero--company .dash-hero__lead {
  font-size: 0.95rem;
  color: var(--muted);
  margin-bottom: 0;
}
@media (max-width: 767px) {
  .jc-welcome-row .dash-hero.dash-hero--company {
    padding: 16px 16px 20px;
    border-radius: 12px;
    border: 1px solid rgba(34, 197, 94, 0.15);
    box-shadow: 0 2px 8px rgba(17, 24, 39, 0.06);
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .dash-hero__inner {
    flex-direction: row;
    align-items: flex-start;
    gap: 14px;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .dash-hero__avatar-wrap {
    order: 0;
    flex-shrink: 0;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .dash-hero__avatar {
    width: 64px;
    height: 64px;
    border-radius: 10px;
    border-width: 2px;
    box-shadow: 0 2px 12px rgba(17, 24, 39, 0.1), 0 0 0 1px rgba(34, 197, 94, 0.15);
  }
  .jc-welcome-row .dash-hero.dash-hero--company .dash-hero__avatar--fallback {
    font-size: 1.65rem;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .dash-hero__title {
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    margin-bottom: 4px;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .dash-hero__lead {
    font-size: 0.9rem;
    margin-bottom: 0;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .dash-hero__text {
    width: auto;
    flex: 1;
    min-width: 0;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .jc-plan-cards--mobile-inline {
    display: flex;
    flex-direction: row;
    gap: 10px;
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid rgba(34, 197, 94, 0.12);
  }
  .jc-welcome-row .dash-hero.dash-hero--company .jc-plan-cards--mobile-inline .jc-counter-card {
    flex: 1;
    padding: 8px 10px;
    border-radius: 10px;
    text-align: center;
    box-shadow: 0 1px 4px rgba(17, 24, 39, 0.05);
  }
  .jc-welcome-row .dash-hero.dash-hero--company .jc-plan-cards--mobile-inline .jc-counter-card__label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--muted);
    margin-bottom: 2px;
    line-height: 1.2;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .jc-plan-cards--mobile-inline .jc-counter-card__value {
    font-size: 22px;
    font-weight: 700;
    color: var(--text);
  }
  .jc-welcome-row .dash-hero.dash-hero--company .jc-plan-cards--mobile-inline .jc-counter-card__meta {
    font-size: 12px;
    color: var(--muted);
    margin-top: 0;
  }
}
@media (min-width: 768px) {
  .jc-welcome-row .dash-hero.dash-hero--company {
    padding: 20px 24px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .dash-hero__inner {
    flex: 0 1 auto;
    min-width: 0;
  }
  .jc-welcome-row .jc-annunci-counters.jc-annunci-counters--inline {
    flex-shrink: 0;
    align-self: center;
    margin-top: 0;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .jc-plan-cards--mobile-inline {
    flex-shrink: 0;
    width: 280px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin: 0;
    padding: 0;
    border: none;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .jc-plan-cards--mobile-inline .jc-counter-card {
    padding: 12px 14px;
    text-align: left;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .jc-plan-cards--mobile-inline .jc-counter-card__label {
    font-size: inherit;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .jc-plan-cards--mobile-inline .jc-counter-card__value {
    font-size: 18px;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .jc-plan-cards--mobile-inline .jc-counter-card__meta {
    font-size: inherit;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .dash-hero__avatar {
    width: 72px;
    height: 72px;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .dash-hero__avatar--fallback {
    font-size: 1.75rem;
  }
  .jc-welcome-row .dash-hero.dash-hero--company .dash-hero__title {
    font-size: 1.5rem;
  }
}
.jc-plan-cards--2x2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin: 0;
}
.jc-welcome-row .jc-counter-card {
  border-color: rgba(34, 197, 94, 0.18);
  padding: 12px 14px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 1px 4px rgba(17, 24, 39, 0.04);
}
.jc-welcome-row .jc-counter-card__value {
  font-size: 18px;
}
@media (min-width: 768px) {
  .jc-welcome-row {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 24px;
  }
  .jc-welcome-row .dash-hero {
    flex: 1;
    min-width: 0;
  }
  .jc-welcome-row .jc-search-block {
    flex: 1 1 100%;
    margin-top: 4px;
    margin-left: 0;
    margin-right: 0;
  }
  /* Caso 1 desktop: ancorare barra ricerca alla lista sotto, stessa larghezza delle tabelle */
  body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-welcome-row {
    margin-bottom: 0;
  }
  body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-welcome-row .jc-search-block {
    max-width: none;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 0;
    box-sizing: border-box;
  }
  body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-section--annunci-free {
    margin-top: 0;
    padding-top: 0;
  }
  /* Caso 1 desktop: contatori come caso 2 (sotto la barra ricerca) */
  body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-welcome-row .dash-hero {
    order: 0;
  }
  body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-welcome-row .jc-search-block {
    order: 1;
    margin-bottom: 20px;
  }
  body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-welcome-row .jc-annunci-counters {
    order: 2;
    flex: 1 1 100%;
    align-self: stretch;
    margin-top: -20px;
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }
}

/* Dashboard panorama: fondo ricerca come Candidature (desktop + mobile) */
body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .jc-welcome-row .jc-search-block form.jc-premium-search {
  background: linear-gradient(180deg, rgba(248, 250, 252, 0.95) 0%, rgba(241, 245, 249, 0.9) 100%);
  border: 1px solid rgba(17, 24, 39, 0.08);
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(17, 24, 39, 0.06);
}

/* Desktop: allineamento ricerca, contatori e tabelle sui due lati (caso 1 e caso 2) */
@media (min-width: 768px) {
  body:has(.jc-topbar-company) .jc-section--annunci .jc-search-block {
    margin-left: 0;
    margin-right: 0;
  }
  body:has(.jc-topbar-company) .jc-section--annunci .jc-annunci-counters {
    margin-left: 0;
    margin-right: 0;
  }
  body:has(.jc-topbar-company) .jc-section--annunci .jc-annunci-block,
  body:has(.jc-topbar-company) .jc-section--annunci .jc-annunci-blocks .jc-annunci-block {
    margin-left: 0;
    margin-right: 0;
  }
  body:has(.jc-topbar-company) .jc-section--annunci-free .jc-annunci-blocks {
    padding-left: 0;
    padding-right: 0;
  }
}

.jc-welcome-row .jc-search-block {
  margin-left: 0;
  margin-right: 0;
  max-width: 680px;
}
.jc-welcome-row .jc-premium-search {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 4px;
  box-shadow: 0 2px 10px rgba(17, 24, 39, 0.05);
}
.jc-welcome-row .jc-premium-search__input {
  background: rgba(248, 250, 252, 0.8);
}
.jc-welcome-row .jc-premium-search__input:focus {
  border-color: rgba(34, 197, 94, 0.4);
  background: #fff;
}
.jc-welcome-row .jc-multiselect-dropdown__trigger[aria-expanded="true"] {
  border-color: rgba(34, 197, 94, 0.4);
  box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.15);
}
.jc-welcome-row .jc-premium-search__field {
  flex: 1 1 0;
  min-width: 100px;
}
.jc-welcome-row .jc-multiselect-dropdown {
  min-width: 90px;
  max-width: 120px;
}
.jc-welcome-row .jc-multiselect-dropdown__trigger {
  padding: 8px 10px;
  min-height: 38px;
}
.jc-welcome-row .jc-premium-search__btn {
  padding: 6px 12px;
  font-size: 13px;
  min-height: 38px;
  width: auto;
  margin-left: auto;
}

/* Caso 1 desktop: stile e posizionamento come caso 2 (Premium), mobile escluso */
@media (min-width: 768px) {
  .jc-welcome-row .jc-premium-search {
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 16px 20px;
    box-shadow: 0 2px 10px rgba(17, 24, 39, 0.05);
    background: #fff;
  }
  .jc-welcome-row .jc-premium-search__field {
    flex: 1 1 auto;
    min-width: 0;
  }
  .jc-welcome-row .jc-multiselect-dropdown {
    min-width: 140px;
    max-width: none;
  }
  .jc-welcome-row .jc-multiselect-dropdown__trigger {
    padding: 12px 14px;
    min-height: 48px;
  }
  .jc-welcome-row .jc-premium-search__btn {
    padding: 8px 14px;
    font-size: 14px;
    min-height: auto;
    width: auto;
    margin-left: 0;
  }
}

.jc-dashboard-counters {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  margin: 20px 0 24px;
}

.jc-counter-card {
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--today-bg);
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.jc-counter-card__label {
  font-size: 12px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.jc-counter-card__value {
  font-size: 22px;
  font-weight: 600;
  color: var(--text);
}

.jc-counter-card__meta {
  font-size: 12px;
  color: var(--muted);
}

.jc-cards {
  display: grid;
  gap: 14px;
}

.jc-card {
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
  padding: 16px;
  box-shadow: var(--shadow-sm);
  display: grid;
  gap: 10px;
}

.jc-badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.jc-badge {
  font-size: 12px;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--today-bg);
  color: var(--today-txt);
}

.jc-badge--today {
  background: #fff4cc;
  color: #7a5b00;
  border-color: rgba(122,91,0,.18);
}

.jc-badge--urgent {
  background: #fbe1e1;
  color: #7a1f1f;
  border-color: rgba(122,31,31,.18);
}

.jc-badge--countdown {
  background: #fef3c7;
  color: #92400e;
  border-color: rgba(245,158,11,.3);
  font-variant-numeric: tabular-nums;
}

.jc-badge--applied {
  background: #e8f0ff;
  color: #1e3a8a;
  border-color: rgba(30,58,138,.18);
}

/* Colori tipo annuncio come in home: Flash verde, Standard celeste, Stagionale viola */
.jc-badge--flash {
  background: #E9F0DF;
  color: #1f5a2f;
  border-color: rgba(31,90,47,.25);
  font-weight: 700;
}

/* Flash badge: giorni restanti, ultimi 2 gg evidenziati, ultime 24h countdown + fuoco che pulsa */
.jc-flash-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.jc-flash-badge__fire {
  display: none;
  font-size: 0.9em;
  line-height: 1;
}
.jc-flash-badge--highlight {
  background: #F5E6B3;
  color: #7a5b00;
  border-color: rgba(122,91,0,.35);
  box-shadow: 0 0 0 1px rgba(122,91,0,.15);
}
.jc-flash-badge--countdown .jc-flash-badge__fire {
  display: inline;
  animation: jc-flash-fire-pulse 1.5s ease-in-out infinite;
}
.jc-flash-badge--urgent .jc-flash-badge__fire {
  display: inline;
  animation: jc-flash-fire-blink 0.9s ease-in-out infinite;
}
@keyframes jc-flash-fire-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.1); }
}
@keyframes jc-flash-fire-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.05; }
}
.jc-badge--standard {
  background: #E8EEF6;
  color: #2D4E7A;
  border-color: rgba(45,78,122,.25);
  font-weight: 700;
}
.jc-badge--seasonal {
  background: #F0E6F6;
  color: #5A3E7A;
  border-color: rgba(90,62,122,.25);
  font-weight: 700;
}

.jc-status {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 12px;
  border: 1px solid transparent;
  background: var(--soft);
  color: var(--muted);
}

.jc-status--published {
  background: #e4f4e8;
  color: #1f5a2f;
  border-color: rgba(31,90,47,.18);
}

.jc-status--draft {
  background: #f5f0e0;
  color: #a68b2c;
  border-color: rgba(166, 139, 44, 0.35);
}

.jc-status--closed {
  background: #fee2e2;
  color: #dc2626;
  border-color: rgba(220, 38, 38, 0.35);
}

.jc-status--expired {
  background: #f1f5f9;
  color: #64748b;
  border-color: rgba(100, 116, 139, 0.3);
}

.jc-status--app {
  background: #eef0f2;
  color: #4b5563;
  border-color: rgba(75,85,99,.18);
}

.jc-status--app-submitted {
  background: #eef0f2;
  color: #4b5563;
  border-color: rgba(75,85,99,.18);
}

.jc-status--app-review {
  background: #fff4cc;
  color: #7a5b00;
  border-color: rgba(122,91,0,.18);
}

.jc-status--app-evaluating {
  background: #e0e7ff;
  color: #3730a3;
  border-color: rgba(55,48,163,.18);
}

.jc-status--app-contacted {
  background: #e4f4e8;
  color: #1f5a2f;
  border-color: rgba(31,90,47,.18);
}

.jc-status--app-rejected {
  background: #fbe1e1;
  color: #7a1f1f;
  border-color: rgba(122,31,31,.18);
}

/* Pulsanti stato candidatura: colori tenui (badge invariati) */
.jc-row__actions .jc-btn--app-evaluating {
  background: #EEF2FF;
  color: #4f46e5;
  border-color: rgba(79, 70, 229, 0.2);
}
.jc-row__actions .jc-btn--app-evaluating:hover {
  background: #E0E7FF;
  color: #4f46e5;
  border-color: rgba(79, 70, 229, 0.3);
}
.jc-row__actions .jc-btn--app-contacted {
  background: #ECFDF5;
  color: #059669;
  border-color: rgba(5, 150, 105, 0.2);
}
.jc-row__actions .jc-btn--app-contacted:hover {
  background: #D1FAE5;
  color: #059669;
  border-color: rgba(5, 150, 105, 0.3);
}
.jc-row__actions .jc-btn--app-rejected {
  background: #FEF2F2;
  color: #dc2626;
  border-color: rgba(220, 38, 38, 0.2);
}
.jc-row__actions .jc-btn--app-rejected:hover {
  background: #FEE2E2;
  color: #dc2626;
  border-color: rgba(220, 38, 38, 0.3);
}

/* Badge annuncio chiuso/scaduto — isolato in jc-page-applications */
body.jc-page-applications .jc-badge--job-closed {
  background: #f3f4f6;
  color: #6b7280;
  border: 1px solid rgba(107, 114, 128, 0.25);
}
body.jc-page-applications .jc-badge--job-expired {
  background: #fef3c7;
  color: #92400e;
  border: 1px solid rgba(146, 64, 14, 0.25);
}

/* Candidature: Inviata + Aggiornata sulla stessa riga, centrate su mobile */
@media (max-width: 767px) {
  body.jc-page-applications .jc-badges-dates {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    white-space: nowrap;
    width: 100%;
    min-width: 0;
  }
  body.jc-page-applications .jc-badges-dates .jc-badge {
    font-size: 10px;
    padding: 3px 6px;
  }
}

.jc-status-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.jc-status-step {
  border: 1px solid var(--border);
  background: #fff;
  color: var(--muted);
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  cursor: default;
}

.jc-status-step.is-active {
  background: var(--soft);
  color: var(--text);
  border-color: rgba(17,24,39,.18);
  font-weight: 600;
}

.jc-status-step.is-action {
  cursor: pointer;
}
.jc-badge--new {
  background: #f3f4f6;
  color: #374151;
  border-color: rgba(55,65,81,.18);
  font-size: 10px;
  padding: 2px 6px;
  text-transform: uppercase;
}
.jc-badge--new-pill {
  background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%);
  color: #166534;
  border: 1px solid rgba(34,197,94,.35);
  font-size: 12px;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 20px;
  text-transform: none;
  box-shadow: 0 1px 3px rgba(34,197,94,.15);
}
.jc-badge--new-pill:hover {
  background: linear-gradient(135deg, #bbf7d0 0%, #86efac 100%);
  border-color: rgba(34,197,94,.5);
  box-shadow: 0 2px 6px rgba(34,197,94,.25);
}
.jc-badge--new-above {
  display: inline-block;
  margin-bottom: 6px;
}
.jc-badge--new-action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  font-size: 13px;
  border-radius: 24px;
  box-shadow: 0 2px 6px rgba(34,197,94,.2);
  animation: jc-badge-pulse 2s ease-in-out infinite;
  transition: transform 0.2s ease;
}
.jc-badge--new-action:hover {
  transform: scale(1.03);
}
.jc-badge__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #22c55e;
  flex-shrink: 0;
  animation: jc-badge-dot 1.5s ease-in-out infinite;
}
@keyframes jc-badge-pulse {
  0%, 100% { box-shadow: 0 2px 6px rgba(34,197,94,.2); }
  50% { box-shadow: 0 2px 10px rgba(34,197,94,.35); }
}
@keyframes jc-badge-dot {
  0%, 100% { opacity: 1; }
  50% { opacity: .6; }
}

.jc-badge--link {
  text-decoration: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}

.jc-toast {
  background: #f0f9f4;
  border: 1px solid rgba(31,90,47,.18);
  color: #1f5a2f;
  padding: 10px 12px;
  border-radius: 12px;
  font-size: 13px;
  margin-bottom: 12px;
  transition: opacity .4s ease, transform .4s ease;
}

.jc-toast--info {
  background: #eff6ff;
  border-color: rgba(37,99,235,.2);
  color: #1e40af;
}
.jc-toast--success {
  background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%);
  border-color: rgba(34,197,94,.4);
  color: #166534;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(34,197,94,.15);
}
.jc-toast--success.jc-toast--float {
  position: fixed;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  margin: 0;
  box-shadow: 0 4px 16px rgba(34,197,94,.25);
}

.jc-toast--error {
  background: #fef2f2;
  border-color: rgba(185,28,28,.18);
  color: #991b1b;
}

.jc-toast--preferiti {
  background: #fef2f2;
  border-color: rgba(220,38,38,.25);
  color: #b91c1c;
}

.jc-toast--float {
  position: fixed;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  margin: 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.15);
}

.jc-help {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
}

.jc-help--small {
  font-size: 11px;
}

.jc-help--center {
  text-align: center;
}

.jc-help-row {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 12px;
  margin-top: 4px;
}

.jc-help-row .jc-help {
  margin: 0;
}


.jc-label-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 8px;
}

.jc-btn-bold {
  width: 28px;
  height: 28px;
  padding: 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  border: 1px solid var(--border, #e2e8f0);
  border-radius: 6px;
  background: #fff;
  color: var(--muted, #64748b);
  cursor: pointer;
}

.jc-btn-bold:hover {
  background: #f1f5f9;
  color: var(--text, #333);
}

.jc-desc-count {
  font-size: 12px;
  color: var(--muted);
  text-align: right;
  margin: 0;
  padding-right: 4px;
}

.jc-error-text {
  margin: 4px 0 0;
  color: #991b1b;
  font-size: 12px;
}

.jc-city-hint {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 8px 0 0;
  padding: 8px 10px;
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 8px;
  color: #64748b;
  font-size: 12px;
  line-height: 1.4;
}

.jc-city-hint__icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  background: transparent;
  color: #94a3b8;
  font-weight: 500;
  font-size: 11px;
  border-radius: 50%;
  border: 1px solid #cbd5e1;
}

.jc-tooltip-wrap {
  position: relative;
  display: inline;
}
.jc-tooltip-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 8px;
  width: 16px;
  height: 16px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
  background: var(--soft);
  border: 1px solid var(--border);
  border-radius: 50%;
  cursor: help;
  line-height: 1;
  transition: color 0.2s, border-color 0.2s;
}
.jc-tooltip-icon:hover {
  color: var(--text);
  border-color: rgba(17, 24, 39, 0.2);
}
.jc-tooltip-popover {
  display: none;
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
  z-index: 100;
  min-width: 200px;
  max-width: 260px;
  padding: 10px 12px;
  font-size: 12px;
  line-height: 1.4;
  color: var(--text);
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: var(--shadow-sm);
}
.jc-tooltip-wrap:hover .jc-tooltip-popover,
.jc-tooltip-wrap.is-open .jc-tooltip-popover {
  display: block;
}

.jc-toast.is-hidden {
  opacity: 0;
  transform: translateY(-4px);
  pointer-events: none;
}

.jc-card__title {
  margin: 0;
  font-size: 18px;
}

.jc-card__meta {
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.jc-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.jc-toggle {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 12px 0 18px;
}

.jc-toggle__label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--muted);
}

.flash-bar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 7px 10px;
  border-radius: 6px;
  border: 1px solid #d7d2cb;
  background: #f1eeea;
  font-weight: 700;
  font-size: 12px;
  min-height: 32px;
  cursor: pointer;
  color: #6c5b4d;
  flex: 0 0 auto;
  min-width: 140px;
}
.flash-bar--standard {
  background: #f7f4ef;
}
.flash-bar__label {
  font-weight: 700;
}
.flash-bar__check {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  border: 1px solid #c9c3bb;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.flash-bar__check::after {
  content: "";
  width: 8px;
  height: 4px;
  border-left: 2px solid transparent;
  border-bottom: 2px solid transparent;
  transform: rotate(-45deg);
}
.flash-bar__icon {
  width: 14px;
  height: 14px;
  display: inline-flex;
  margin-left: 2px;
}
.flash-bar__icon--standard {
  background: no-repeat center/contain url("/assets/img/helmet.svg");
}
.flash-bar.is-active {
  background: #dff0d8;
  border-color: #8fbf75;
  color: #2f5c34;
}
.flash-bar.is-active .flash-bar__check {
  border-color: #5ea66a;
  background: #eaf7e6;
}
.flash-bar.is-active .flash-bar__check::after {
  border-left-color: #2f8a45;
  border-bottom-color: #2f8a45;
}
.flash-bar.is-active .flash-bar__icon {
  color: #2f5c34;
}

.jc-list {
  display: grid;
  gap: 12px;
}

/* Filtri veloci chip – integrati nelle rispettive box */
.jc-filter-chips {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.jc-filter-chips::-webkit-scrollbar {
  display: none;
}
.jc-filter-chip {
  flex: 0 0 auto;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  color: var(--muted);
  background: rgba(255,255,255,.8);
  border: 1px solid rgba(47,43,42,.1);
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
  transition: background .2s, color .2s, border-color .2s, box-shadow .2s, transform .15s;
}
.jc-filter-chip:hover {
  color: var(--text);
  background: #fff;
  border-color: rgba(47,43,42,.2);
  box-shadow: 0 2px 6px rgba(0,0,0,.06);
  transform: translateY(-1px);
}
.jc-filter-chip.is-active {
  color: #fff;
  background: linear-gradient(135deg, var(--primary) 0%, #2563eb 100%);
  border-color: transparent;
  box-shadow: 0 2px 8px rgba(59,130,246,.3);
}
/* Annunci salvati: chip dentro section head (come candidature) */
.jc-page-saved .jc-section--saved .jc-filter-chips--saved {
  padding: 0 14px 10px;
  margin-top: 16px;
  margin-bottom: 0;
}
.jc-filter-chips--saved {
  margin-top: 8px;
  margin-bottom: 0;
}
/* Candidature: chip dentro section head */
.jc-filter-chips--apps {
  margin-top: 8px;
  margin-bottom: 0;
}
.jc-section--candidature .jc-section__head .jc-filter-chips--apps {
  padding-bottom: 0;
}

/* Pagina salvati: stessi margini delle altre pagine (mobile-first) */

/* Pagina salvati: top bar mobile nascosta */
.jc-saved-top-bar--mobile {
  display: none;
}

/* Pagina salvati: Cerca offerte e Vedi candidature allineati a sinistra con il titolo sezione (mobile), a destra su desktop */
.jc-page-saved .jc-section__footer--saved-cta,
.jc-page-saved .jc-section__footer--candidature-cta {
  display: flex;
  align-items: center;
}
@media (max-width: 899px) {
  .jc-page-saved .jc-section__footer--saved-cta,
  .jc-page-saved .jc-section__footer--candidature-cta {
    justify-content: flex-start;
  }
}
@media (min-width: 900px) {
  .jc-page-saved .jc-section__footer--saved-cta,
  .jc-page-saved .jc-section__footer--candidature-cta {
    justify-content: flex-end;
  }
  .jc-page-saved .jc-section__footer--saved-cta .jc-btn,
  .jc-page-saved .jc-section__footer--candidature-cta .jc-btn {
    border-radius: 6px;
    white-space: nowrap;
  }
}

/* Loadmore: allineato a sinistra con la sezione su mobile */
@media (max-width: 899px) {
  .jc-page-saved .jc-loadmore__controls--saved {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-top: 8px;
    padding-left: 20px;
    padding-right: 20px;
  }
  .jc-page-saved .jc-loadmore-end {
    padding: 8px 0 0;
  }
  .jc-page-saved .jc-loadmore-end__msg {
    margin: 0;
    font-size: 0.9rem;
    color: var(--muted);
  }
}
@media (min-width: 900px) {
  .jc-page-saved .jc-loadmore__controls--saved {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
  }
  .jc-page-saved .jc-loadmore-end {
    padding: 8px 0; text-align: center;
  }
  .jc-page-saved .jc-loadmore-end__msg {
    margin: 0;
    font-size: 0.9rem;
    color: var(--muted);
  }
}

/* Annunci salvati + Candidature: container allargato su desktop */
@media (min-width: 900px) {
  body.jc-page-saved:has(.jc-topbar-candidate) main.jc-container {
    max-width: 1120px;
    margin-left: auto;
    margin-right: auto;
    padding: 24px 20px 48px;
  }
  body.jc-page-applications:has(.jc-topbar-candidate) main.jc-container,
  body.jc-page-applications:has(.jc-topbar-company) main.jc-container {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding: 24px 20px 48px;
  }
}

/* Candidature: grafica come Annunci salvati */
body.jc-page-applications .jc-section--applications .dash-section__header {
  margin-bottom: 0;
}
body.jc-page-applications .jc-section--applications {
  margin-top: 16px;
}
body.jc-page-applications .jc-section__lines {
  height: 8px;
  margin: 8px 0 0;
  position: relative;
  background: linear-gradient(to right, rgba(220, 240, 225, 0.7) 0%, rgba(210, 235, 250, 0.6) 100%);
}
body.jc-page-applications .jc-applications-search-box {
  margin-top: 12px;
  padding: 16px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
body.jc-page-applications .jc-applications-filters-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 6px;
}
@media (min-width: 768px) {
  body.jc-page-applications .jc-applications-filters-row {
    gap: 60px;
  }
}
body.jc-page-applications .jc-applications-search-box .jc-filter-chips--applications {
  margin-top: 0;
}
body.jc-page-applications .jc-section--list {
  margin-top: 2px;
}
/* Mobile: margini laterali leggermente aumentati */
@media (max-width: 767px) {
  body.jc-page-applications main.jc-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }
  body.jc-page-applications main.jc-container .jc-section:has(.jc-list) {
    margin-left: -12px;
    margin-right: -12px;
  }
  body.jc-page-applications main.jc-container .jc-section:has(.jc-list) .jc-list {
    padding-left: 12px;
    padding-right: 12px;
  }
  body.jc-page-applications .jc-section--applications {
    margin-top: 10px;
  }
  body.jc-page-applications .jc-applications-search-box {
    padding: 12px;
  }
}
/* Mobile: chip centrate su una riga, margini uguali dalla box */
@media (max-width: 767px) {
  body.jc-page-applications .jc-applications-filters-row {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  body.jc-page-applications .jc-applications-search-box .jc-filter-chips--applications {
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 4px;
    width: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
  }
  body.jc-page-applications .jc-applications-search-box .jc-filter-chips--applications .jc-filter-chip {
    padding: 4px 8px;
    font-size: 12px;
  }
  body.jc-page-applications .jc-applications-search-box .jc-filter-app-status {
    justify-content: center;
  }
  body.jc-page-applications .jc-applications-search-box .jc-filter-app-status__select {
    padding: 4px 8px;
    font-size: 12px;
    min-width: 100px;
  }
  body.jc-page-applications .jc-applications-search .jc-btn--primary {
    padding: 6px 12px;
    font-size: 13px;
    min-height: 36px;
  }
}
body.jc-page-applications .jc-applications-search .jc-search-bar__input {
  flex: 1;
  min-width: 120px;
  padding: 10px 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 1rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Chip filtri: colori originali (verde/blu attivo) */
body.jc-page-applications .jc-filter-chips--applications .jc-filter-chip {
  text-decoration: none;
  padding: 5px 10px;
}
body.jc-page-applications .jc-filter-chips--applications .jc-filter-chip.is-active {
  background: linear-gradient(135deg, var(--cta) 0%, #15803d 100%);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 2px 8px rgba(74, 143, 90, 0.35);
}
body.jc-page-applications .jc-applications-search-box .jc-filter-app-status {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
  flex-shrink: 0;
}
body.jc-page-applications .jc-applications-search-box .jc-filter-app-status__label {
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  white-space: nowrap;
}
/* Stato candidatura su mobile e desktop */
body.jc-page-applications .jc-filter-app-status__label--mobile {
  display: none;
}
body.jc-page-applications .jc-filter-app-status__label--desktop {
  display: inline;
}
body.jc-page-applications .jc-applications-search-box .jc-filter-app-status__select {
  padding: 5px 10px;
  border: 1px solid rgba(47,43,42,.1);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  background: rgba(255,255,255,.9);
  min-width: 120px;
  color: var(--text);
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
  cursor: pointer;
}
body.jc-page-applications .jc-applications-search-box .jc-filter-app-status__select:hover {
  border-color: rgba(47,43,42,.2);
  box-shadow: 0 2px 6px rgba(0,0,0,.06);
}

/* Candidature: fix overflow testi nelle card */
body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) {
  overflow: hidden;
  max-width: 100%;
  box-sizing: border-box;
  contain: layout paint;
}
body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) > div:first-child {
  min-width: 0;
  flex: 1 1 auto;
}
/* Titolo: mobile 1 riga ellipsis, desktop 2 righe line-clamp */
body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-row__title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
}
@media (min-width: 768px) {
  body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-row__title {
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
}
/* Meta: 1 riga ellipsis */
body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-row__meta {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
}
/* Messaggio stato annuncio */
body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-row__msg {
  overflow-wrap: anywhere;
  min-width: 0;
}
/* Badges: flex-wrap, gap, protezione parole lunghe */
body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  max-width: 100%;
  min-width: 0;
}
body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-badges .jc-status,
body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-badges .jc-badge {
  max-width: 100%;
  overflow-wrap: anywhere;
}
body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-badges-dates {
  max-width: 100%;
  min-width: 0;
}

/* Candidature: azioni card (Vedi annuncio, Elimina candidatura) */
body.jc-page-applications .jc-row__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
body.jc-page-applications .jc-row__action-form {
  display: inline;
}
body.jc-page-applications .jc-row__action {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  font-size: 0.8125rem;
  font-weight: 500;
  text-decoration: none;
  border-radius: 8px;
  border: 1px solid transparent;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
  white-space: nowrap;
}
body.jc-page-applications .jc-row__action--view {
  color: var(--cta);
  background: rgba(74, 143, 90, 0.08);
  border-color: rgba(74, 143, 90, 0.25);
}
body.jc-page-applications .jc-row__action--view:hover {
  background: rgba(74, 143, 90, 0.12);
  border-color: rgba(74, 143, 90, 0.4);
}
body.jc-page-applications .jc-row__action--delete {
  color: var(--danger, #dc2626);
  background: var(--danger-bg);
  border-color: rgba(220, 38, 38, 0.2);
  cursor: pointer;
  font-family: inherit;
}
body.jc-page-applications .jc-row__action--delete:hover {
  background: rgba(220, 38, 38, 0.15);
  border-color: rgba(220, 38, 38, 0.35);
}
@media (min-width: 768px) {
  body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-row__actions {
    flex-shrink: 0;
    min-width: 0;
    align-items: center;
  }
  body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-row__action,
  body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-row__action--view,
  body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-row__action--delete {
    padding: 6px 12px;
    font-size: 0.8125rem;
    display: inline-flex;
    align-items: center;
    color: var(--cta);
    background: rgba(74, 143, 90, 0.08);
    border: 1px solid rgba(74, 143, 90, 0.25);
    border-radius: 8px;
    font-weight: 500;
    text-decoration: none;
  }
  body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-row__action--view:hover {
    background: rgba(74, 143, 90, 0.12);
    border-color: rgba(74, 143, 90, 0.4);
  }
  body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-row__action--delete {
    color: var(--danger, #dc2626);
    background: var(--danger-bg);
    border-color: rgba(220, 38, 38, 0.2);
  }
  body.jc-page-applications .jc-section .jc-list .jc-row:not(.jc-section-header) .jc-row__action--delete:hover {
    background: rgba(220, 38, 38, 0.15);
    border-color: rgba(220, 38, 38, 0.35);
  }
}

/* Candidature: intestazioni sezioni (Attive, Chiuse, Scadute, Respinte) */
body.jc-page-applications .jc-section-header {
  padding: 12px 16px;
  margin: 0 0 8px;
  border: none;
  background: linear-gradient(90deg, rgba(74, 143, 90, 0.15) 0%, rgba(147, 197, 253, 0.2) 100%);
  border-radius: 10px;
}
body.jc-page-applications .jc-section-header:first-child {
  margin-top: 0;
}
body.jc-page-applications .jc-section-title {
  margin: 0;
  font-size: 0.9375rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--text);
}

/* Candidature: sfumatura verde-celeste nello spazio tra le card */
body.jc-page-applications .jc-section .jc-list {
  background: linear-gradient(180deg, rgba(74, 143, 90, 0.05) 0%, rgba(147, 197, 253, 0.08) 50%, rgba(74, 143, 90, 0.05) 100%);
  gap: 16px;
  border-radius: 12px;
}

/* Candidature: lista a larghezza piena su desktop (fix card strette) */
@media (min-width: 1024px) {
  body.jc-page-applications .jc-section .jc-list,
  body.jc-page-applications .jc-annunci-blocks {
    width: 100%;
    max-width: none;
  }
  body.jc-page-applications .jc-section .jc-list .jc-row {
    width: 100%;
    max-width: none;
  }
}

/* Desktop: box si adattano al ridimensionamento finestra */
@media (min-width: 768px) {
  body.jc-page-applications main.jc-container {
    width: 100% !important;
    max-width: 1100px !important;
    min-width: 0;
    box-sizing: border-box;
  }
  body.jc-page-applications .profile-card--applications,
  body.jc-page-applications .jc-applications-list-wrap {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }
  body.jc-page-applications .jc-applications-list-wrap .profile-card__layout,
  body.jc-page-applications .jc-applications-list-wrap .profile-card__main,
  body.jc-page-applications .jc-section--annunci-free,
  body.jc-page-applications .jc-annunci-blocks,
  body.jc-page-applications .jc-section--annunci-free .jc-annunci-block {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }
  body.jc-page-applications .jc-section--applications,
  body.jc-page-applications .jc-section--list,
  body.jc-page-applications .jc-applications-search-box {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }
  body.jc-page-applications .jc-section .jc-list,
  body.jc-page-applications .jc-list--applications-choice {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
  body.jc-page-applications .jc-section .jc-list .jc-row {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }
}

/* Annunci salvati: niente box, solo linee */
.jc-page-saved .jc-section--saved {
  padding: 16px 0;
  background: transparent !important;
  border: none;
  box-shadow: none;
}
/* Mobile: salvati con margini laterali (si stacca dai bordi) */
@media (max-width: 767px) {
  body.jc-page-saved {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }
  .jc-page-saved .jc-section--saved {
    margin-left: 0;
    margin-right: 0;
  }
  .jc-page-saved .jc-section--saved .dash-section__header {
    padding-left: 0;
    padding-right: 0;
  }
  .jc-page-saved .jc-section--saved .jc-dash-section-header-box {
    padding: 10px 14px 14px;
  }
  .jc-page-saved .jc-section--saved .jc-filter-chips--saved {
    padding-left: 0;
    padding-right: 0;
    padding-bottom: 10px;
  }
  .jc-page-saved .jc-section--saved .cards {
    padding-left: 0;
    padding-right: 0;
  }
  .jc-page-saved .jc-section--saved .jc-section__footer {
    padding-left: 0;
    padding-right: 0;
  }
}
/* Mobile: lista candidature (applications) fino ai bordi */
@media (max-width: 767px) {
  body:has(.jc-topbar-candidate) main.jc-container .jc-section:has(.jc-list) {
    margin-left: -20px;
    margin-right: -20px;
  }
  body:has(.jc-topbar-candidate) main.jc-container .jc-section:has(.jc-list) .jc-list {
    padding-left: 20px;
    padding-right: 20px;
  }
}
/* Mobile: pagina Candidature — margini leggermente aumentati (override sopra) */
@media (max-width: 767px) {
  body.jc-page-applications main.jc-container .jc-section:has(.jc-list) {
    margin-left: 0;
    margin-right: 0;
  }
  body.jc-page-applications main.jc-container .jc-section:has(.jc-list) .jc-list {
    padding-left: 0;
    padding-right: 0;
  }
}
/* Mobile: lista candidati (company) fino ai bordi */
@media (max-width: 767px) {
  body.jc-page-candidati main.jc-container .jc-list {
    margin-left: -20px;
    margin-right: -20px;
    padding-left: 20px;
    padding-right: 20px;
  }
}
/* Candidature company: mobile (≤767) — main full-width centrato (body padding 20px resta) */
@media (max-width: 767px) {
  body.jc-page-applications main.jc-container {
    width: 100% !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
  }
  body.jc-page-applications header.profile-card--applications,
  body.jc-page-applications .profile-card--applications {
    max-width: none !important;
    width: 100% !important;
  }
}

/* GAP 768–899: Candidature company — neutralizza max-width 560px, main full-width */
@media (min-width: 768px) and (max-width: 899px) {
  body.jc-page-applications main.jc-container {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
  }
  body.jc-page-applications header.profile-card--applications,
  body.jc-page-applications .profile-card--applications,
  body.jc-page-applications .profile-card--applications.profile-card {
    max-width: none !important;
    width: 100% !important;
  }
}

/* Company applications: lista a larghezza piena (no max-width/margin da layout generico) */
body:has(.jc-topbar-company) .jc-company-list {
  width: 100%;
  max-width: none;
  margin: 0;
}
/* Mobile: tabella statistiche fino ai bordi */
@media (max-width: 767px) {
  body:has(.jc-topbar-company) main.jc-container .jc-section .jc-annunci-table-wrap {
    margin-left: -20px;
    margin-right: -20px;
    overflow-x: auto;
    padding-left: 20px;
    padding-right: 20px;
  }
}
/* Head row: titolo e CTA sulla stessa riga, in linea */
.jc-page-saved .jc-section__head {
  gap: 2px;
}
.jc-page-saved .jc-section__head-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 0;
}
.jc-page-saved .jc-section__head-row .jc-section__title {
  margin: 0;
  flex: 1;
  min-width: 0;
}
.jc-page-saved .jc-section__head-row .jc-btn {
  flex-shrink: 0;
  margin-left: auto;
  margin-right: 28px;
  margin-top: 2mm;
}
.jc-page-saved .jc-section__head .jc-section__subtitle {
  margin: 0 0 8px;
  font-size: 0.9rem;
  color: var(--muted, #6b7280);
}
/* Mobile: titolo e bottone più compatti */
@media (max-width: 599px) {
  .jc-page-saved .jc-section__head-row {
    gap: 6px;
    margin-bottom: 0;
  }
  .jc-page-saved .jc-section__head-row .jc-section__title {
    font-size: 1.1rem;
  }
  .jc-page-saved .jc-section__head .jc-section__subtitle {
    font-size: 0.8rem;
    margin-bottom: 6px;
  }
}

.jc-page-saved .jc-section--saved .dash-section__header {
  margin-bottom: 0;
}

.jc-page-saved .jc-section__lines {
  height: 8px;
  margin: 8px 0 0;
  position: relative;
  background: linear-gradient(to right, rgba(220, 240, 225, 0.7) 0%, rgba(210, 235, 250, 0.6) 100%);
}
.jc-page-saved .jc-section--saved .cards {
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Annunci salvati: chip filtro neutri */
.jc-page-saved .jc-filter-chips--saved .jc-filter-chip {
  background: rgba(255,255,255,.9);
  border-color: rgba(0, 0, 0, 0.1);
  color: #6b7280;
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.jc-page-saved .jc-filter-chips--saved .jc-filter-chip:hover {
  background: #fff;
  border-color: rgba(0, 0, 0, 0.18);
  color: #374151;
  box-shadow: 0 2px 6px rgba(0,0,0,.06);
  transform: translateY(-1px);
}
.jc-page-saved .jc-filter-chips--saved .jc-filter-chip.is-active {
  background: linear-gradient(135deg, #374151 0%, #1f2937 100%);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 2px 8px rgba(55,65,81,.35);
}

/* Candidature: chip con stile verde attivo */
.jc-page-saved .jc-filter-chips--apps .jc-filter-chip {
  background: rgba(255,255,255,.9);
  border-color: rgba(0, 0, 0, 0.1);
  box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.jc-page-saved .jc-filter-chips--apps .jc-filter-chip:hover {
  background: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,.06);
  transform: translateY(-1px);
}
.jc-page-saved .jc-filter-chips--apps .jc-filter-chip.is-active {
  background: linear-gradient(135deg, var(--primary) 0%, #15803d 100%);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 2px 8px rgba(34,197,94,.35);
}

/* Annunci salvati: desktop — lista a larghezza piena (fix "troppo stretta") */
@media (min-width: 1024px) {
  .jc-page-saved .jc-section--saved .cards {
    width: 100%;
    max-width: none;
  }
  .jc-page-saved .jc-section--saved .cards .jobcard {
    width: 100%;
    max-width: none;
  }
  .jc-page-saved .jc-section--saved .cards .jobcard__meta {
    max-width: 240px;
  }
}

/* Annunci salvati: riga singola, senza box, linea leggera */
.jc-page-saved .jc-section--saved .cards .jobcard {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  min-height: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}
.jc-page-saved .jc-section--saved .cards .jobcard:last-child {
  border-bottom: none;
}
.jc-page-saved .jc-section--saved .cards .jobcard:hover,
.jc-page-saved .jc-section--saved .cards .jobcard:focus-within {
  background: rgba(0, 0, 0, 0.02);
}
.jc-page-saved .jc-section--saved .cards .jobcard__top .badges {
  display: none;
}
.jc-page-saved .jc-section--saved .cards .jobcard__top {
  order: 3;
  margin: 0;
}
.jc-page-saved .jc-section--saved .cards .jobcard__top .iconbtn {
  width: 24px;
  height: 24px;
}
.jc-page-saved .jc-section--saved .cards .jobcard__title {
  order: 1;
  flex: 1;
  min-width: 0;
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: #111827;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}
.jc-page-saved .jc-section--saved .cards .jobcard__meta {
  order: 2;
  flex: 0 0 auto;
  margin: 0;
  font-size: 12px;
  color: #6b7280;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 160px;
}
.jc-page-saved .jc-section--saved .cards .jobcard__actions {
  order: 4;
  margin: 0;
  flex-shrink: 0;
  display: flex;
  flex-direction: row;
  gap: 6px;
}
.jc-page-saved .jc-section--saved .cards .jobcard__actions .btn--primary,
.jc-page-saved .jc-section--saved .cards .jobcard__actions .btn--applied {
  display: none;
}
.jc-page-saved .jc-section--saved .cards .jobcard__actions .btn,
.jc-page-saved .jc-section--saved .cards .jobcard__actions .btn--applied {
  min-height: 26px;
  padding: 5px 12px;
  font-size: 11px;
  font-weight: 600;
  border-radius: 999px;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  transition: background .2s, border-color .2s, box-shadow .2s, transform .12s;
}
.jc-page-saved .jc-section--saved .cards .jobcard__actions .btn:hover {
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
  transform: translateY(-1px);
}
.jc-page-saved .jc-section--saved .cards .jobcard__actions .jc-badge--saved-status {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  white-space: nowrap;
}
.jc-page-saved .jc-section--saved .cards .jobcard__actions .jc-badge--saved-status.jc-badge--job-closed {
  background: #f3f4f6;
  color: #6b7280;
}
.jc-page-saved .jc-section--saved .cards .jobcard__actions .jc-badge--saved-status.jc-badge--job-expired {
  background: #fef3c7;
  color: #92400e;
}

/* Annunci salvati: empty state */
.jc-page-saved .jc-section--saved .jc-card__meta {
  color: #6b7280;
  font-size: 0.95rem;
}

.jc-page-saved .jc-saved-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 24px 0;
}
.jc-page-saved .jc-saved-empty__text {
  margin: 0;
  color: #6b7280;
  font-size: 0.95rem;
  max-width: 360px;
}
.jc-page-saved .jc-saved-empty__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 24px;
}

/* Desktop: pulsanti empty state più compatti */
@media (min-width: 768px) {
  .jc-page-saved .jc-saved-empty__actions .jc-btn {
    padding: 6px 12px;
    font-size: 13px;
    min-height: 34px;
  }
}

/* Footer pagina salvati: link rettangolare stretto, allineato a destra */
.jc-page-saved .jc-section__footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.jc-page-saved .jc-section__footer .jc-btn {
  border-radius: 6px;
  padding: 8px 14px;
  font-size: 13px;
  white-space: nowrap;
}

/* Sezione Le tue candidature in Annunci salvati (stesso stile della dashboard) */
.jc-page-saved .jc-saved-candidature-wrap {
  margin-top: 16px;
  padding-top: 16px;
}
.jc-page-saved .jc-saved-candidature-wrap #dash-candidature {
  padding-top: 0;
  border-top: none;
}
.jc-page-saved .jc-saved-candidature-wrap #dash-candidature .mini-list {
  min-height: 80px;
}

/* Pagina salvati su mobile */
@media (max-width: 767px) {
  .jc-page-saved .jc-saved-candidature-wrap {
    margin-top: 8px;
    padding-top: 8px;
  }
}
@media (max-width: 640px) {
  .jc-page-saved .jc-section--saved .cards .jobcard {
    flex-wrap: wrap;
    padding: 10px 0;
  }
  .jc-page-saved .jc-section--saved .cards .jobcard__title {
    white-space: normal;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
  }
  .jc-page-saved .jc-section--saved .cards .jobcard__meta {
    max-width: 100%;
  }
}

.jc-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px 16px;
}

.jc-row--stack {
  align-items: flex-start;
}

/* Pagina candidature: righe con nuove candidature in evidenza */
.jc-row--has-new {
  background: linear-gradient(135deg, rgba(236, 253, 245, 0.7) 0%, rgba(209, 250, 229, 0.5) 100%);
  border-color: rgba(34, 197, 94, 0.35);
  box-shadow: 0 1px 3px rgba(34, 197, 94, 0.08);
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
/* Hover solo su dispositivi con puntatore (mouse): evita che touch attivi hover e nasconda il verde */
@media (hover: hover) {
  .jc-row--has-new:hover {
    background: #fff;
    border-color: var(--border);
    box-shadow: none;
  }
}

/* Ultime candidature: righe espandibili e cliccabili */
.jc-row--expandable .jc-row__details {
  width: 100%;
}
.jc-row--expandable .jc-row__details[open] .jc-row__chevron {
  transform: rotate(180deg);
}
.jc-row--expandable .jc-row__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: pointer;
  list-style: none;
  padding: 0;
  margin: 0;
}
.jc-row--expandable .jc-row__summary::-webkit-details-marker {
  display: none;
}
.jc-row--expandable .jc-row__chevron {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat center;
  background-size: contain;
  transition: transform 0.2s ease;
}
.jc-row--expandable .jc-row__expand {
  padding-top: 12px;
  margin-top: 12px;
  border-top: 1px solid var(--border);
}
.jc-row--expandable .jc-row__location {
  margin: 4px 0 0 0;
  font-size: 12px;
  font-weight: 400;
  color: var(--muted);
  opacity: 0.85;
}

/* Ultime candidature: adattamento viewport ridotto (overflow fix) */
#ultime-candidature-ricevute,
#ultime-candidature-ricevute .jc-ultime-candidature-header,
#ultime-candidature-ricevute .profile-card__layout,
#ultime-candidature-ricevute .profile-card__main {
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
#ultime-candidature-ricevute .jc-list--candidature-expand {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
#ultime-candidature-ricevute .jc-list--candidature-expand .jc-row {
  min-width: 0;
}
.jc-row--expandable .jc-row__summary > div {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}
.jc-row--expandable .jc-row__summary .jc-row__title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.jc-row--expandable .jc-row__summary .jc-row__location,
.jc-row--expandable .jc-row__summary .jc-row__meta {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.flash-boost .jc-row {
  border-color: rgba(127,191,153,.6);
  box-shadow: 0 10px 24px rgba(127,191,153,.18);
}

/* Candidature azienda: Vedi profilo proporzionato come gli altri bottoni */
.jc-btn--vedi-profilo {
  min-height: 36px;
  padding: 8px 16px;
  font-size: 13px;
  font-weight: 500;
}

/* Candidature azienda: layout strutturato (nome+Vedi profilo | meta | badges | linea | azioni) */
body.jc-page-applications .profile-card--applications .jc-list .jc-row--app {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0;
}
body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-row__main {
  flex: 1 1 auto;
  min-width: 0;
}
body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-row__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-row__head .jc-row__title {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}
body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-row__meta {
  margin: 4px 0 0;
}
body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-row__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-row__actions form {
  margin: 0;
}

/* Desktop: riga candidato e pulsanti tutti sulla stessa riga, Vedi profilo in linea con gli altri */
@media (min-width: 768px) {
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app {
    flex-wrap: nowrap;
    padding: 14px 16px;
    align-items: center;
  }
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-vedi-profilo--mobile {
    display: none;
  }
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-vedi-profilo--desktop {
    display: inline-flex;
  }
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-row__actions {
    flex-direction: row;
    flex-wrap: nowrap;
    flex-shrink: 0;
    gap: 6px;
    margin-top: 6px;
  }
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-row__actions form {
    display: inline-flex;
    flex-shrink: 0;
  }
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-row__actions .jc-btn,
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-row__actions button {
    padding: 5px 10px;
    font-size: 12px;
    min-height: 32px;
    white-space: nowrap;
  }
}
/* Mobile: nascondi la copia Vedi profilo in actions */
@media (max-width: 767px) {
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-vedi-profilo--desktop {
    display: none;
  }
}

/* Candidature azienda: box intorno all'annuncio */
body.jc-page-applications .profile-card--applications .jc-annuncio-box {
  padding: 14px 12px;
  background: rgba(0, 0, 0, 0.02);
  border: 1px solid var(--border);
  border-radius: 12px;
}

/* Candidature azienda: linea tratteggiata leggerissima tra badges e contatori */
body.jc-page-applications .profile-card--applications .profile-card__section:has(.jc-meta) {
  border-top: 1px dashed rgba(0, 0, 0, 0.06);
  padding-top: 14px;
}

/* Candidature azienda: barra ricerca candidato */
body.jc-page-applications .jc-candidate-search-outer {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}
body.jc-page-applications .jc-candidate-search-outer form {
  width: 100%;
  min-width: 0;
}

/* Desktop: box comune ricerca + candidati — allineati come jc-applications-list-wrap */
@media (min-width: 768px) {
  body.jc-page-applications .jc-applications-boxes-wrap {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 14px 12px;
    box-sizing: border-box;
    box-shadow: var(--shadow-sm);
  }
  body.jc-page-applications .jc-applications-boxes-wrap .jc-candidate-search-outer {
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
  }
  body.jc-page-applications .jc-applications-boxes-wrap .profile-card--applications {
    margin-top: 0;
    padding: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    border: none !important;
  }
  body.jc-page-applications .jc-candidate-search-outer {
    width: 100%;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
  }
  body.jc-page-applications .jc-candidate-search-form {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: nowrap;
    padding: 14px 16px;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.95) 0%, rgba(241, 245, 249, 0.9) 100%);
    border-radius: 12px;
    border: 1px solid rgba(17, 24, 39, 0.08);
    box-shadow: 0 2px 12px rgba(17, 24, 39, 0.06);
  }
  body.jc-page-applications .jc-candidate-search__label {
    flex-shrink: 0;
    margin: 0;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--text);
  }
  body.jc-page-applications .jc-candidate-search-box {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
  }
  body.jc-page-applications .jc-candidate-search-box .jc-input {
    flex: 1 1 200px;
    min-width: 0;
    max-width: 320px;
    padding: 10px 14px;
    border-radius: 10px;
    border-color: rgba(17, 24, 39, 0.1);
    background: #fff;
    transition: border-color 0.2s, box-shadow 0.2s;
  }
  body.jc-page-applications .jc-candidate-search-box .jc-input:focus {
    border-color: var(--cta, #4a8f5a);
    box-shadow: 0 0 0 3px rgba(74, 143, 90, 0.15);
  }
  body.jc-page-applications .jc-candidate-search-box .jc-select {
    flex: 0 1 auto;
    min-width: 90px;
    max-width: 160px;
    padding: 8px 28px 8px 12px;
    font-size: 14px;
    border-radius: 10px;
    border-color: rgba(17, 24, 39, 0.1);
    background: #fff;
    transition: border-color 0.2s;
  }
  body.jc-page-applications .jc-candidate-search-box .jc-select:focus {
    border-color: var(--cta, #4a8f5a);
  }
  body.jc-page-applications .jc-candidate-search-box .jc-btn {
    flex-shrink: 0;
    border-radius: 10px;
    font-weight: 500;
    padding: 8px 16px;
    transition: background 0.2s, transform 0.1s;
  }
  body.jc-page-applications .jc-candidate-search-box .jc-btn:hover {
    transform: translateY(-1px);
  }
}

/* Mobile: sfondo verde come su desktop */
@media (max-width: 767px) {
  body.jc-page-applications .jc-applications-boxes-wrap {
    padding: 12px;
    background: rgba(220, 240, 225, 0.5);
    border-radius: 12px;
  }
  body.jc-page-applications .jc-applications-boxes-wrap .jc-candidate-search-outer {
    margin-bottom: 12px;
  }
}

/* Mobile: box ricerca allineata alla profile-card (stesso stile) */
@media (max-width: 767px) {
  body.jc-page-applications .jc-candidate-search-outer {
    width: 100%;
    padding: 12px 10px;
    background: linear-gradient(180deg, rgba(248, 250, 252, 0.95) 0%, rgba(241, 245, 249, 0.9) 100%);
    border: 1px solid rgba(17, 24, 39, 0.08);
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(17, 24, 39, 0.06);
  }
  body.jc-page-applications .jc-candidate-search-form {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  body.jc-page-applications .jc-candidate-search__label {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--text);
  }
  /* Mobile: riga 1 = input (nome o email), riga 2 = select + Cerca */
  body.jc-page-applications .jc-candidate-search-box {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    min-width: 0;
  }
  body.jc-page-applications .jc-candidate-search-box .jc-input {
    flex: 1 1 100%;
    width: 100%;
    min-width: 0;
    font-size: 16px;
  }
  body.jc-page-applications .jc-candidate-search-box .jc-select {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 150px;
    padding: 6px 24px 6px 8px;
    font-size: 13px;
  }
  body.jc-page-applications .jc-candidate-search-box .jc-btn {
    flex-shrink: 0;
    min-height: 36px;
    padding: 6px 12px;
    font-size: 13px;
  }
}

/* Candidature azienda mobile: badges annuncio allineati */
@media (max-width: 767px) {
  body.jc-page-applications .profile-card--applications .profile-card__section--candidati-head .jc-badges {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
  }
}

/* Candidature azienda mobile: layout a blocchi con linea separatrice */
@media (max-width: 767px) {
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app {
    flex-direction: column;
    gap: 0;
  }
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-row__main {
    width: 100%;
  }
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-badges {
    border-bottom: 1px solid var(--border);
    padding-bottom: 10px;
    margin-bottom: 10px;
  }
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-row__actions {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 6px;
  }
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-btn--vedi-profilo,
  body.jc-page-applications .profile-card--applications .jc-list .jc-row--app .jc-row__actions .jc-btn {
    padding: 5px 10px;
    font-size: 11px;
    min-height: 28px;
  }
}
/* Vedi profilo lampeggiante per candidature non ancora viste (status=submitted) */
.jc-btn--vedi-profilo.jc-btn--vedi-profilo-new {
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.15) 0%, rgba(34, 197, 94, 0.08) 100%);
  border-color: rgba(34, 197, 94, 0.5);
  color: #166534;
  font-weight: 600;
  animation: jc-vedi-profilo-blink 1.5s ease-in-out infinite;
}
.jc-btn--vedi-profilo.jc-btn--vedi-profilo-new:hover {
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.25) 0%, rgba(34, 197, 94, 0.15) 100%);
  border-color: rgba(34, 197, 94, 0.7);
  animation: none;
}

/* Pagina job: candidature per annuncio — layout come applications (nome+Vedi profilo | meta | badges | linea | azioni) */
.jc-page-job-detail .jc-list--job-candidates .jc-row--app {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0;
}
.jc-page-job-detail .jc-list--job-candidates .jc-row--app .jc-row__main {
  flex: 1 1 auto;
  min-width: 0;
}
.jc-page-job-detail .jc-list--job-candidates .jc-row--app .jc-row__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.jc-page-job-detail .jc-list--job-candidates .jc-row--app .jc-row__head .jc-row__title {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}
.jc-page-job-detail .jc-list--job-candidates .jc-row--app .jc-row__meta {
  margin: 4px 0 0;
}
.jc-page-job-detail .jc-list--job-candidates .jc-row--app .jc-badges {
  margin-top: 6px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 10px;
  margin-bottom: 10px;
}
.jc-page-job-detail .jc-list--job-candidates .jc-row--app .jc-row__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.jc-page-job-detail .jc-list--job-candidates .jc-row--app .jc-row__actions form {
  margin: 0;
}
@media (max-width: 767px) {
  .jc-page-job-detail .jc-list--job-candidates .jc-row--app {
    flex-direction: column;
    gap: 0;
  }
  .jc-page-job-detail .jc-list--job-candidates .jc-row--app .jc-row__main {
    width: 100%;
  }
  .jc-page-job-detail .jc-list--job-candidates .jc-row--app .jc-row__actions {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 6px;
  }
  .jc-page-job-detail .jc-list--job-candidates .jc-row--app .jc-btn--vedi-profilo,
  .jc-page-job-detail .jc-list--job-candidates .jc-row--app .jc-row__actions .jc-btn {
    padding: 5px 10px;
    font-size: 11px;
    min-height: 28px;
  }
}
@keyframes jc-vedi-profilo-blink {
  0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.5); }
  50% { opacity: 0.7; box-shadow: 0 0 12px 4px rgba(34, 197, 94, 0.45); }
}

/* Pagina Candidature: lista annunci per scegliere - campanellina verde titolo, badge ridimensionati */
.jc-list--applications-choice .jc-row {
  flex-wrap: wrap;
  overflow: hidden;
  box-sizing: border-box;
  min-width: 0;
}
.jc-list--applications-choice .jc-row__cell {
  min-width: 0;
}
.jc-list--applications-choice .jc-row__title-wrap {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}
.jc-list--applications-choice .jc-row__title {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.jc-list--applications-choice .jc-row__title .jc-link {
  display: inline-block;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  border-bottom: 1px dashed rgba(0, 0, 0, 0.25);
  padding-bottom: 2px;
  transition: color 0.2s ease;
}
.jc-list--applications-choice .jc-row__title .jc-link:hover {
  color: #94a3b8;
}
.jc-list--applications-choice .jc-row__title .jc-link__underline {
  display: inline;
  border-bottom: none;
  padding-bottom: 0;
}
@media (min-width: 768px) {
  .jc-list--applications-choice .jc-row__title {
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .jc-list--applications-choice .jc-row__title .jc-link {
    white-space: normal;
  }
  .jc-list--applications-choice .jc-row__title .jc-link__underline {
    display: inline;
    overflow: visible;
    text-overflow: unset;
    white-space: inherit;
  }
}
.jc-list--applications-choice .jc-row__bell {
  display: flex;
  position: relative;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%);
  border: 1px solid rgba(34,197,94,.4);
  color: #166534;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 1px 2px rgba(34,197,94,.2);
}
.jc-list--applications-choice .jc-row__bell svg {
  width: 14px;
  height: 14px;
}
.jc-row__bell-badge {
  position: absolute;
  top: -3px;
  right: -3px;
  min-width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #22c55e;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 2px;
  border: 1.5px solid #fff;
}
.jc-list--applications-choice .jc-row__action {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}
/* Mobile: campanellina verde in angolo destro; padding solo su title-wrap per non comprimere azioni */
@media (max-width: 767px) {
  body.jc-page-applications .jc-list--applications-choice .jc-row {
    position: relative;
  }
  body.jc-page-applications .jc-list--applications-choice .jc-row__title-wrap {
    padding-right: 40px;
  }
  body.jc-page-applications .jc-list--applications-choice .jc-row__bell {
    position: absolute;
    top: 8px;
    right: 8px;
    flex-shrink: 0;
  }
}
.jc-list--applications-choice .jc-row__title .jc-badge,
.jc-list--applications-choice .jc-row__meta .jc-status,
.jc-list--applications-choice .jc-row__meta .jc-badge {
  font-size: 10px;
  padding: 3px 6px;
}
.jc-list--applications-choice .jc-btn--vedi-candidature {
  font-size: 12px;
  padding: 6px 12px;
}
@media (max-width: 767px) {
  .jc-list--applications-choice .jc-row {
    flex-direction: column;
    align-items: stretch;
    padding: 12px 14px;
    gap: 0;
  }
  .jc-list--applications-choice .jc-row > div:first-child {
    flex: 1;
    min-width: 0;
  }
  /* Mobile: titolo max 2 righe (wrap, non nowrap) — più leggibile */
  .jc-list--applications-choice .jc-row__title {
    white-space: normal;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .jc-list--applications-choice .jc-row__title .jc-link,
  .jc-list--applications-choice .jc-row__title .jc-link__underline {
    white-space: normal;
  }
  /* Mobile: count + bottone sulla stessa riga */
  .jc-list--applications-choice .jc-row__action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 0;
    padding-top: 10px;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
  }
  .jc-list--applications-choice .jc-row__action .jc-row__count--mobile {
    flex: 1;
    min-width: 0;
  }
  .jc-list--applications-choice .jc-row__action .jc-btn--vedi-candidature {
    flex-shrink: 0;
    white-space: nowrap;
    font-size: 12px;
    padding: 8px 14px;
  }
  /* Mobile: titolo → città → badge attaccato alla riga sotto */
  .jc-list--applications-choice .jc-row__badges--mobile {
    display: block;
    margin: 8px 0 0;
    padding-top: 8px;
  }
  .jc-list--applications-choice .jc-row__badges--mobile .jc-status,
  .jc-list--applications-choice .jc-row__badges--mobile .jc-badge {
    font-size: 10px;
    padding: 3px 6px;
  }
  .jc-list--applications-choice .jc-row__meta--desktop {
    display: none;
  }
  .jc-list--applications-choice .jc-row__count--mobile {
    display: inline;
    margin-right: auto;
    color: var(--muted);
    font-size: 13px;
  }
}
@media (min-width: 768px) {
  .jc-list--applications-choice .jc-row__badges--mobile {
    display: none;
  }
  .jc-list--applications-choice .jc-row__meta--desktop {
    display: block;
  }
  .jc-list--applications-choice .jc-row__count--mobile {
    display: none;
  }
}

.jc-info {
  display: grid;
  gap: 10px;
}

.jc-info__item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px 12px;
}

.jc-info__label {
  font-size: 12px;
  color: var(--muted);
}

.jc-row__title {
  margin: 0;
  font-size: 16px;
}

.jc-row__location {
  margin: 2px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.jc-row__meta {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.jc-link {
  text-decoration: none;
  color: var(--text);
  border-bottom: 1px solid var(--border);
  padding-bottom: 2px;
}

button.jc-link {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

.jc-backlinks {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 8px;
  margin-top: 0;
  margin-bottom: 16px;
}
.jc-backlinks__sep {
  color: var(--muted);
  font-weight: 400;
  padding: 0 2px;
}

.jc-backlinks .jc-link {
  color: var(--text);
  font-weight: 500;
  padding: 8px 0;
  border-bottom: none;
}
.jc-breadcrumb-neutral {
  font-size: 14px;
  color: var(--muted);
  padding: 8px 0;
  display: block;
}
/* Smart back link: label diversa su mobile (es. "Annunci" invece di "Ricerca avanzata annunci") */
@media (max-width: 767px) {
  .jc-backlinks__label--desktop { display: none !important; }
}
@media (min-width: 768px) {
  .jc-backlinks__label--mobile { display: none !important; }
}

.jc-meta--kpi {
  margin-top: 8px;
  gap: 10px;
  font-size: 12px;
}

.jc-empty {
  border: 1px dashed var(--border);
  border-radius: 14px;
  padding: 16px;
  background: #fff;
  display: grid;
  gap: 10px;
}

.jc-form {
  display: grid;
  gap: 14px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 16px;
}

.jc-search {
  margin: 18px 0 22px;
  position: relative;
  padding-bottom: 34px;
}
.jc-search--expanded{
  padding-bottom: 64px;
}

.jc-search-advanced {
  display: none;
  gap: 14px;
  width: 100%;
  grid-template-columns: 1fr;
}

.jc-search.jc-search--expanded .jc-search-advanced {
  display: grid;
}



.jc-type-tab.is-active{
  background: #e9f7ef;
  border-color: #7fbf99;
  color: #2f5c34;
  font-weight: 700;
}

/* Home-like search box styling */
.jc-search {
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(47,43,42,.10);
  border-radius: 16px;
  box-shadow: var(--shadow);
  padding: 12px;
}
.jc-search .jc-inline{
  align-items:start;
}
.jc-search .jc-label{
  font-size:13px;
  color: var(--text);
  font-weight: 900;
  min-height:16px;
  display:block;
}
.jc-search .jc-input,
.jc-search .jc-select{
  border-radius:12px;
  border:1px solid rgba(47,43,42,.10);
  background:#F6F2ED;
  padding:10px 12px;
  font-weight:800;
  height:46px;
  box-sizing:border-box;
  min-width: 120px;
}
.jc-search .jc-input{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.jc-search .jc-select{
  background-color:#F6F2ED;
}
.jc-search .jc-input:focus,
.jc-search .jc-select:focus{
  background:#fff;
  box-shadow: 0 0 0 4px rgba(170,200,140,.25);
  border-color: rgba(47,43,42,.16);
  outline:none;
}
.jc-search .jc-actions{
  display:grid;
  grid-template-columns: auto auto;
  gap:10px;
  justify-content:start;
}
.jc-dropdown{
  position: relative;
}
.jc-dropdown__control{
  width: 100%;
  border-radius: 12px;
  border: 1px solid rgba(47,43,42,.10);
  background: #F6F2ED;
  padding: 10px 36px 10px 12px;
  font-weight: 800;
  height: 46px;
  text-align: left;
  position: relative;
}
.jc-form .jc-dropdown__control{
  background: #fff;
}
.jc-search .jc-dropdown__control{
  background:#F6F2ED;
}
.jc-dropdown__control:after{
  content: "";
  position: absolute;
  right: 14px;
  top: 50%;
  width: 0;
  height: 0;
  border-left: 5px solid transparent;
  border-right: 5px solid transparent;
  border-top: 6px solid #6c5b4d;
  transform: translateY(-35%);
}
.jc-dropdown__menu{
  display: none;
  position: absolute;
  z-index: 5;
  left: 0;
  right: 0;
  margin-top: 8px;
  background: #fff;
  border: 1px solid rgba(47,43,42,.10);
  border-radius: 14px;
  padding: 10px;
  box-shadow: 0 10px 30px rgba(28,20,10,.10);
  max-height: 260px;
  overflow: auto;
}
.jc-dropdown.is-open .jc-dropdown__menu{
  display: grid;
  gap: 8px;
}
.jc-dropdown__option{
  border: 1px solid rgba(47,43,42,.10);
  background: #fff;
  padding: 11px 12px;
  border-radius: 14px;
  font-size: 13.5px;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 1px 0 rgba(28,20,10,.04);
}
.jc-dropdown__option:hover{
  border-color: rgba(47,43,42,.25);
  background: #f7f5f1;
}
.jc-search__meta{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:4px;
}
.jc-search__chip{
  font-size:12px;
  font-weight:800;
  color: var(--muted);
  background:#F3EFEA;
  border:1px solid rgba(47,43,42,.10);
  padding:4px 8px;
  border-radius:999px;
}

@media (min-width: 920px){
  .jc-search{
    padding:16px;
  }
  .jc-search .jc-inline{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .jc-search .jc-inline--two{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.jc-field {
  display: grid;
  gap: 6px;
}

.jc-panel[data-panel="flash"] .jc-field {
  margin-top: 8px;
}

.jc-panel[data-panel="flash"] .jc-urgent-row {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  margin-top: 1.75rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}

.jc-label {
  font-size: 13px;
  color: var(--muted);
}
.jc-label__hint {
  font-weight: 400;
  font-size: 12px;
  color: var(--muted);
  opacity: 0.9;
}

.jc-urgent-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: nowrap;
  margin-top: 0;
  padding-top: 0;
  cursor: pointer;
  font-size: 14px;
  color: var(--text);
}
.jc-field--urgent .jc-urgent-row {
  margin-top: 1.75rem;
  padding-top: 1rem;
  border-top: 1px solid var(--border);
}
.jc-urgent-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.jc-urgent-icon svg {
  width: 20px;
  height: 20px;
}
.jc-urgent-checkbox {
  flex-shrink: 0;
  width: 1.1em;
  height: 1.1em;
  cursor: pointer;
}
.jc-urgent-label {
  flex: 1;
}
.jc-urgent-help {
  display: block;
  margin-top: 6px;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.4;
}
.jc-label--inline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  cursor: pointer;
  font-size: 13px;
  color: var(--text);
}
.jc-label--inline input[type="checkbox"] {
  flex-shrink: 0;
  width: 1.1em;
  height: 1.1em;
}
.jc-urgent-price {
  font-size: 13px;
  color: var(--muted);
  white-space: nowrap;
}

.jc-input,
.jc-textarea,
.jc-select {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 14px;
  font-family: inherit;
  background: #fff;
  color: var(--text);
  width: 100%;
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
}
.jc-select{
  padding-right: 36px;
  background-image:
    linear-gradient(45deg, transparent 50%, #6c5b4d 50%),
    linear-gradient(135deg, #6c5b4d 50%, transparent 50%),
    linear-gradient(to right, transparent, transparent);
  background-position:
    calc(100% - 18px) 50%,
    calc(100% - 12px) 50%,
    0 0;
  background-size: 6px 6px, 6px 6px, 100% 100%;
  background-repeat: no-repeat;
}
.jc-select:hover{
  border-color: rgba(47,43,42,.25);
}

.jc-input--small {
  font-size: 11px;
}
/* Casella retribuzione più grande e alta nella riga con Unità */
.jc-input--pay {
  min-height: 48px;
  padding: 12px 14px;
  font-size: 16px;
}
/* Riga Retribuzione + Unità: stessa altezza per campo e select */
.jc-panel .jc-field.jc-inline .jc-input--pay,
.jc-panel .jc-field.jc-inline .jc-select {
  min-height: 48px;
  box-sizing: border-box;
}
.jc-panel .jc-field.jc-inline > div {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.jc-panel .jc-field.jc-inline .jc-pay-checkboxes {
  flex-direction: row;
}
.jc-panel .jc-field.jc-inline .jc-select {
  padding: 12px 14px;
  font-size: 15px;
}
.jc-input--readonly {
  background: var(--soft);
  color: var(--text);
  cursor: default;
  margin: 0;
}
.jc-textarea {
  resize: vertical;
}

.jc-inline {
  display: grid;
  gap: 10px;
  width: 100%;
}
.jc-inline--two{
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.jc-inline--compact {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.jc-orario-trigger {
  cursor: pointer;
}
/* Layout orario: verticale su mobile, affiancato su desktop */
.jc-orario-row {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.jc-orario-row .jc-orario-cell {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.jc-orario-cell .jc-orario-trigger {
  width: 100%;
}
.jc-orario-row .jc-time-sep {
  display: none;
}
@media (min-width: 641px) {
  .jc-orario-row {
    flex-direction: row;
    align-items: flex-end;
    gap: 12px;
  }
  .jc-orario-row .jc-time-sep {
    display: inline;
    align-self: center;
    flex-shrink: 0;
  }
  .jc-orario-row .jc-orario-cell {
    flex: 1;
    min-width: 0;
  }
}
.jc-label--clickable {
  cursor: pointer;
}
.jc-date-trigger {
  cursor: pointer;
}
.jc-da-subito-wrap {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.jc-da-subito-wrap .jc-help-inline {
  font-size: 12px;
  color: var(--muted);
  margin: 0;
}
.jc-time-sep {
  color: var(--muted);
  font-weight: 500;
}
.jc-orario-reset {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  color: var(--muted);
  text-decoration: none;
  cursor: pointer;
  transition: color 0.2s;
}
.jc-orario-reset:hover {
  color: var(--text);
  text-decoration: underline;
}
/* Picker orario scorrevole (Pubblica) - tema come date picker nativo, continuità stile */
.jc-time-picker {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  pointer-events: none;
  visibility: hidden;
  transition: visibility 0.2s;
}
.jc-time-picker--open {
  pointer-events: auto;
  visibility: visible;
}
.jc-time-picker__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  opacity: 0;
  transition: opacity 0.2s;
}
.jc-time-picker--open .jc-time-picker__backdrop {
  opacity: 1;
}
.jc-time-picker__modal {
  position: relative;
  width: 100%;
  max-width: 320px;
  background: #1e1e1e;
  border-radius: 16px;
  padding: 24px 20px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5);
  transform: scale(0.95);
  opacity: 0;
  transition: transform 0.25s ease-out, opacity 0.25s ease-out;
}
.jc-time-picker--open .jc-time-picker__modal {
  transform: scale(1);
  opacity: 1;
}
.jc-time-picker__title {
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 600;
  color: #9ca3af;
}
.jc-time-picker__display {
  font-size: 32px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #fff;
  margin-bottom: 16px;
  text-align: center;
}
.jc-time-picker__wheels {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-bottom: 20px;
}
.jc-time-select {
  flex: 1;
  min-width: 0;
  padding: 12px 16px;
  font-size: 20px;
  font-weight: 500;
  color: #e5e7eb;
  background: #374151;
  border: 1px solid #4b5563;
  border-radius: 8px;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 36px;
}
.jc-time-select:focus {
  outline: none;
  border-color: #94a3b8;
}
.jc-time-select option {
  background: #1e293b;
  color: #e5e7eb;
}
.jc-time-input {
  cursor: pointer;
}
.jc-time-wheel-wrap {
  flex: 1;
  min-width: 0;
  position: relative;
  height: 132px;
}
.jc-time-wheel {
  width: 100%;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  scroll-snap-type: y mandatory;
  -webkit-overflow-scrolling: touch;
  border-radius: 8px;
  background: #2d2d2d;
}
.jc-time-wheel__bars {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  border-radius: 8px;
}
.jc-time-wheel__bar {
  position: absolute;
  left: 0;
  right: 0;
  height: 2px;
  background: #94a3b8;
  border-radius: 1px;
}
.jc-time-wheel__bar--top {
  top: 43px;
}
.jc-time-wheel__bar--bottom {
  top: 87px;
}
.jc-time-wheel__viewport {
  min-height: 100%;
}
.jc-time-wheel__track {
  padding: 44px 0;
  min-height: min-content;
}
.jc-time-wheel__item {
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 500;
  scroll-snap-align: center;
  color: #e5e7eb;
}
.jc-time-wheel__item[data-value="-1"] {
  color: transparent;
  pointer-events: none;
}
.jc-time-picker__sep {
  font-size: 24px;
  font-weight: 600;
  color: #e5e7eb;
}
.jc-time-picker__actions {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
}
.jc-time-picker__btn {
  padding: 10px 20px;
  font-size: 14px;
  font-weight: 600;
  border-radius: 8px;
  cursor: pointer;
  border: none;
  transition: background 0.2s, color 0.2s;
}
.jc-time-picker__btn--cancel {
  background: transparent;
  color: #8c9eff;
}
.jc-time-picker__btn--cancel:hover {
  background: #374151;
  color: #f9fafb;
}
.jc-time-picker__btn--set {
  background: #8c9eff;
  color: #fff;
}
.jc-time-picker__btn--set:hover {
  background: #7c8aee;
  color: #fff;
}
.jc-time-input {
  cursor: pointer;
}
.jc-inline--pay{
  grid-template-columns: 2fr 1fr;
}
.jc-inline--pay-extra {
  grid-template-columns: 2fr 1fr auto;
}
/* Riga Retribuzione + Unità + Benefit + Bonus sulla stessa riga */
.jc-inline--pay-row {
  grid-template-columns: 1fr 1fr minmax(min-content, auto);
  align-items: end;
}
.jc-pay-checkboxes {
  display: flex;
  flex-wrap: nowrap;
  flex-direction: row;
  align-items: center;
  gap: 28px;
  padding-bottom: 2px;
  min-width: min-content;
}
.jc-pay-checkboxes .jc-label--inline {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding-right: 28px;
  font-size: 14px;
  color: var(--text);
  white-space: nowrap;
  flex-shrink: 0;
}
.jc-pay-checkboxes .jc-label--inline:last-child {
  padding-right: 0;
}
.jc-pay-checkboxes .jc-label--inline input[type="checkbox"] {
  margin: 0 6px 0 0;
  width: 1.1em;
  height: 1.1em;
  flex-shrink: 0;
}
.jc-pay-extras {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 12px 16px;
}
.jc-pay-extras .jc-label--inline {
  margin: 0;
  font-size: 13px;
  color: var(--text);
}
.jc-pay-extras .jc-label--inline input[type="checkbox"] {
  margin-right: 4px;
}
.jc-inline--pay .jc-input{
  height: 46px;
  box-sizing: border-box;
}
.jc-inline--two .jc-field{
  width: 100%;
}

.jc-inline .jc-field,
.jc-inline > div {
  min-width: 0;
}
.jc-inline--two .jc-field,
.jc-inline--two > div{
  min-width: 0;
}
.jc-dropdown,
.jc-dropdown__control{
  width: 100%;
}

.jc-range {
  display: grid;
  gap: 6px;
}

.jc-range__inputs {
  display: grid;
  grid-template-columns: minmax(60px, 1fr) auto minmax(60px, 1fr);
  align-items: center;
  gap: 8px;
  width: 100%;
}

.jc-range__inputs input {
  width: 100%;
  min-width: 0;
}

.jc-range__sep {
  color: var(--muted);
  font-size: 13px;
}

.jc-range__hint {
  color: var(--muted);
  font-size: 12px;
  text-align: right;
}

@media (max-width: 768px) {
  .jc-form {
    padding: 12px 12px 12px 12px;
    box-sizing: border-box;
  }

  .jc-label {
    font-size: 12px;
  }

  .jc-input,
  .jc-textarea,
  .jc-select {
    font-size: 13px;
    padding: 9px 10px;
  }

  .jc-help,
  .jc-desc-count {
    font-size: 11px;
  }

  .jc-label-row {
    grid-template-columns: 1fr;
  }

  .jc-desc-count {
    text-align: left;
    padding-right: 0;
  }

  .jc-inline {
    grid-template-columns: 1fr;
  }

  .jc-inline .jc-field,
  .jc-inline > div {
    min-width: 0;
  }

  .jc-inline--pay-row {
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin-top: 14px;
  }

  .jc-inline--pay-row .jc-pay-checkboxes {
    grid-column: 1 / -1;
    display: flex !important;
    flex-wrap: nowrap !important;
    flex-direction: row !important;
    align-items: center;
    gap: 32px;
    margin-top: 6px;
  }

  .jc-inline--pay-row .jc-pay-checkboxes .jc-label--inline {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    padding-right: 36px !important;
  }

  .jc-inline--pay-row .jc-pay-checkboxes .jc-label--inline:last-child {
    padding-right: 0 !important;
  }

}

.jc-type-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 6px;
}

.jc-type-tab {
  border: 1px solid rgba(47,43,42,.10);
  background: #f1eeea;
  padding: 7px 12px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
  color: #6c5b4d;
  box-shadow: var(--shadowSoft);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.jc-type-tab__input{
  display:none;
}
.jc-type-tab::after{
  content:"";
  width:14px;
  height:14px;
  border-radius:4px;
  border:1px solid rgba(47,43,42,.18);
  background:#fff;
}
.jc-type-tab.is-active::after{
  content:"✓";
  font-size:10px;
  font-weight:900;
  color:#2f5c34;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#eaf7e6;
  border-color:#8fbf75;
}

.jc-type-tab.is-active {
  background: #dff0d8;
  border-color: #8fbf75;
  color: #2f5c34;
  font-weight: 900;
}

/* Standard: neutro quando non attivo, celeste quando cliccato (come Flash) */
.jc-type-tab[data-type="standard"].is-active {
  background: #d5e2f0;
  border-color: rgba(45,78,122,.5);
  color: #2D4E7A;
}
.jc-type-tab[data-type="standard"].is-active::after {
  background: #E8EEF6;
  border-color: rgba(45,78,122,.5);
  color: #2D4E7A;
}

/* Stagionale: neutro quando non attivo, viola quando cliccato (come Flash) */
.jc-type-tab[data-type="seasonal"].is-active {
  background: #e4d4f0;
  border-color: rgba(90,62,122,.5);
  color: #5A3E7A;
}
.jc-type-tab[data-type="seasonal"].is-active::after {
  background: #F0E6F6;
  border-color: rgba(90,62,122,.5);
  color: #5A3E7A;
}

@media (max-width: 640px){
  .jc-type-tabs{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    justify-content: stretch;
  }
  .jc-type-tab{
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
  }
}

.jc-type-tab__ico{
  width:14px;
  height:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.jc-type-tab__ico--flash{
  font-size:12px;
}
.jc-type-tab__ico--standard{
  background: no-repeat center/contain url("/assets/img/helmet.svg");
}
.jc-type-tab__ico--seasonal{
  background: no-repeat center/contain url("/assets/img/categories/construction.svg");
}

@media (max-width: 640px){
  .jc-type-tabs{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    justify-content: stretch;
  }
  .jc-type-tab{
    width: 100%;
    justify-content: center;
  }
}

.jc-panel {
  border: 1px dashed var(--border);
  border-radius: 14px;
  padding: 12px;
  display: grid;
  gap: 10px;
  background: #fafafa;
}

.jc-suggestions {
  display: grid;
  gap: 6px;
  margin-top: 6px;
}


/* Jobs search: città in overlay sopra il contenuto sotto */
.jc-search .jc-field--city {
  position: relative;
}
.jc-search .jc-field--city .jc-suggestions {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 4px;
  max-height: 240px;
  overflow-y: auto;
  z-index: 100;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(17, 24, 39, 0.12);
}

.jc-suggestion {
  border: 1px solid var(--border);
  background: #fff;
  padding: 8px 10px;
  border-radius: 10px;
  font-size: 13px;
  text-align: left;
  cursor: pointer;
}

.jc-photo-preview {
  width: 100%;
  max-width: 360px;
  border-radius: 12px;
  border: 1px solid var(--border);
  height: auto;
}

/* ========== Pagina dettaglio annuncio (job.php) ========== */
.jc-page-job-detail .jc-container {
  max-width: 720px;
  margin: 0 auto;
  padding: 16px 12px 32px;
}
@media (max-width: 767px) {
  .jc-page-job-detail .jc-container {
    padding-left: 0;
    padding-right: 0;
  }
}
@media (min-width: 768px) {
  .jc-page-job-detail .jc-container { padding: 24px 20px 48px; }
}
.jc-job-detail__hero {
  margin-bottom: 20px;
  position: relative;
}
.jc-job-detail__hero-dates {
  position: absolute;
  top: 0;
  right: 0;
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.jc-job-detail__date-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: flex-end;
}
.jc-job-detail__date-label {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
}
.jc-job-detail__date-value {
  font-size: 11px;
  font-weight: 600;
  color: rgba(47, 43, 42, 0.55);
}
.jc-preview-header {
  position: relative;
}
.jc-job-detail__hero-top {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-bottom: 12px;
}
.jc-job-detail__hero-text {
  flex: 1 1 auto;
  min-width: 0;
}
.jc-job-detail__hero-top .jc-job-detail__title {
  margin: 0 0 4px;
}

/* Job detail hero: fix overflow titolo su mobile (parole senza spazi) */
@media (max-width: 767px) {
  .jc-job-detail__hero-top .jc-job-detail__hero-text {
    min-width: 0;
  }
  .jc-job-detail__hero-top .jc-job-detail__title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
    overflow-wrap: anywhere;
  }
}
.jc-job-detail__thumb {
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(47,43,42,.1);
  background: #F4F1ED;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: box-shadow .2s, transform .15s;
  position: relative;
}
.jc-job-detail__thumb::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at center, transparent 40%, rgba(0,0,0,.15) 100%);
  pointer-events: none;
  opacity: 0;
  transition: opacity .2s;
}
.jc-job-detail__thumb:hover {
  box-shadow: var(--shadowSoft);
  transform: scale(1.05);
}
.jc-job-detail__thumb:hover::after { opacity: 1; }
.jc-job-detail__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (min-width: 768px) {
  .jc-job-detail__thumb { width: 88px; height: 88px; border-radius: 14px; }
}
.jc-job-detail__contacts-row {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(47,43,42,.08);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 12px;
  overflow: visible;
}
.jc-job-detail__contacts-row .jc-job-detail__contacts-unlocked-label {
  flex: 0 0 100%;
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
  margin-bottom: 4px;
}
.jc-job-detail__contacts-row .jc-job-detail__contact-row {
  flex: 0 0 100%;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 10px 12px;
  margin: 0;
}
.jc-job-detail__contacts-row .jc-job-detail__action-mini {
  flex-shrink: 0;
}
.jc-job-detail__meta-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: center;
  gap: 8px 10px;
  margin-bottom: 12px;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.jc-job-detail__meta-pill {
  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: center;
  flex: 1 1 0;
  min-width: 48px;
}
.jc-job-detail__meta-pill .badge {
  font-size: 11px;
  font-weight: 900;
  padding: 5px 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.jc-job-detail__meta-label {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
}
.jc-job-detail__title {
  margin: 0 0 2px;
  font-size: 1.25rem;
  font-weight: 900;
  line-height: 1.3;
  color: var(--text);
}
.jc-job-detail__company {
  margin: 0 0 4px;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--muted);
}
.jc-job-detail__company-location {
  margin: 0 0 12px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--muted);
}
.jc-job-detail__meta {
  margin: 0;
  font-size: 0.9rem;
  color: var(--muted);
  font-weight: 600;
}
@media (min-width: 768px) {
  .jc-job-detail__title { font-size: 1.5rem; }
}
.jc-job-detail__section {
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(47,43,42,.1);
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 16px;
  box-shadow: var(--shadowSoft);
}
@media (min-width: 768px) {
  .jc-job-detail__section { padding: 20px; }
}
.jc-job-detail__section--info {
  background: linear-gradient(135deg, rgba(255,255,255,.98) 0%, rgba(250,249,247,.98) 100%);
  border-color: rgba(47,43,42,.08);
  border-left: 3px solid #d4a574;
}
.jc-job-detail__section-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px 16px;
  margin-bottom: 14px;
}
.jc-job-detail__section-header .jc-job-detail__section-title {
  margin: 0;
}
.jc-job-detail__info-dates-inline {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
  font-size: 10px;
  font-weight: 600;
  color: var(--muted);
  line-height: 1.25;
}
.jc-job-detail__info-date-meta {
  display: block;
  text-align: right;
  white-space: nowrap;
}
.jc-job-detail__info-date-meta-label {
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .02em;
  margin-right: 4px;
}
.jc-job-detail__section-title {
  margin: 0 0 14px;
  font-size: 0.8rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
}
.jc-job-detail__info {
  display: grid;
  gap: 12px;
}
.jc-job-detail__info-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 12px;
  background: rgba(255,255,255,.6);
  border-radius: 10px;
  border: 1px solid rgba(47,43,42,.06);
}
.jc-job-detail__info-label {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
}
.jc-job-detail__info-item > span:last-child {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  line-height: 1.35;
}
.jc-job-detail__info-item--pay {
  background: rgba(15, 157, 74, .06);
  border-color: rgba(15, 157, 74, .15);
}
.jc-job-detail__info-item--pay > span:last-child,
.jc-job-detail__info-item--pay .jc-job-detail__info-date-block > span:last-child,
.jc-info__item.jc-job-detail__info-item--pay > span:last-child {
  color: #0f9d4a;
  font-weight: 800;
}
.jc-job-detail__info-dates {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 12px 20px;
  padding: 0;
  background: transparent;
  border: none;
}
.jc-job-detail__info-date-block {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 12px;
  background: rgba(255,255,255,.6);
  border-radius: 10px;
  border: 1px solid rgba(47,43,42,.06);
}
.jc-job-detail__info-date-block .jc-job-detail__info-label,
.jc-job-detail__info-date-block .jc-info__label {
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
}
.jc-job-detail__info-date-block > span:last-child {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
}
/* Sezione Descrizione — layout migliorato */
.jc-job-detail__section--desc {
  background: linear-gradient(160deg, rgba(255,255,255,.99) 0%, rgba(250,252,250,.97) 100%);
  border-color: rgba(47,43,42,.06);
  border-left: 4px solid var(--cta);
  padding: 20px;
}
@media (min-width: 768px) {
  .jc-job-detail__section--desc { padding: 24px 28px; }
}
.jc-job-detail__section--desc .jc-job-detail__section-title {
  font-size: 0.75rem;
  letter-spacing: .08em;
  color: var(--cta);
  margin-bottom: 18px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(74, 143, 90, .15);
}
.jc-job-detail__description {
  font-size: 0.95rem;
  line-height: 1.7;
  color: var(--text);
  margin: 0;
  overflow-wrap: break-word;
  word-wrap: break-word;
}
.jc-job-detail__description .jc-desc-p {
  margin: 0 0 14px;
  color: var(--text);
}
.jc-job-detail__description .jc-desc-p:last-child {
  margin-bottom: 0;
}
.jc-job-detail__description .jc-desc-p strong {
  font-weight: 700;
  color: var(--text);
}
.jc-job-detail__description .jc-desc-list {
  margin: 10px 0 18px;
  padding-left: 20px;
  list-style: none;
}
.jc-job-detail__description .jc-desc-list li {
  position: relative;
  padding-left: 16px;
  margin-bottom: 8px;
  line-height: 1.5;
}
.jc-job-detail__description .jc-desc-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--cta);
}
.jc-job-detail__description .jc-desc-list + .jc-desc-p {
  margin-top: 4px;
}
.jc-job-detail__actions-section {
  margin-top: 24px;
  margin-bottom: 24px;
}
.jc-job-detail__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}
.jc-job-detail__actions-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px 12px;
  width: 100%;
  margin-bottom: 12px;
}
.jc-job-detail__contact-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 10px 12px;
  width: 100%;
  margin-bottom: 16px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.jc-job-detail__contact-label {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
  margin-right: 4px;
}
.jc-job-detail__contact-row .jc-job-detail__contact-pill,
.jc-job-detail__contact-row .jc-job-detail__contact-btn {
  flex-shrink: 0;
}
.jc-job-detail__contact-row .jc-job-detail__contact-pill {
  padding: 10px 12px;
}
.jc-job-detail__contact-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  color: var(--text);
  transition: transform .15s, box-shadow .2s, scale .15s;
}
.jc-job-detail__contact-pill:hover {
  transform: translateY(-2px) scale(1.02);
}
.jc-job-detail__contact-pill__ico {
  font-size: 18px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.jc-job-detail__contact-pill__ico svg {
  width: 20px;
  height: 20px;
}
.jc-job-detail__contact-pill__ico--wa img {
  display: block;
  width: 22px;
  height: 22px;
}
.jc-job-detail__contact-pill--call {
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  border: 1px solid rgba(245,158,11,.35);
}
.jc-job-detail__contact-pill--call:hover {
  box-shadow: 0 4px 14px rgba(245,158,11,.3);
}
.jc-job-detail__contact-pill--wa {
  background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%);
  border: 1px solid rgba(34,197,94,.35);
}
.jc-job-detail__contact-pill--wa:hover {
  box-shadow: 0 4px 14px rgba(37,211,102,.35);
}
.jc-job-detail__contact-pill--mail {
  background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);
  border: 1px solid rgba(99,102,241,.3);
}
.jc-job-detail__contact-pill--mail:hover {
  box-shadow: 0 4px 14px rgba(99,102,241,.25);
}
.jc-job-detail__actions-bottom {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  padding-top: 12px;
  border-top: 1px solid rgba(47,43,42,.08);
}
.jc-job-detail__action-mini {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--muted);
  transition: color .2s;
}
a.jc-job-detail__action-mini {
  text-decoration: none;
}
.jc-job-detail__action-mini:hover {
  color: var(--text);
}
.jc-job-detail__action-mini svg {
  width: 22px;
  height: 22px;
}
.jc-job-detail__action-mini__label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.jc-job-detail__action-mini--muted {
  cursor: default;
  opacity: 0.7;
}
.jc-job-detail__action-mini--muted:hover {
  color: var(--muted);
}
.jc-job-detail__action-mini--save:hover,
.jc-job-detail__action-mini--save.is-saved {
  color: #e11d48;
}
.jc-job-detail__save-form .jc-save-checkbox:checked ~ .jc-job-detail__heart,
.jc-job-detail__action-mini--save.is-saved .jc-job-detail__heart {
  fill: #e11d48;
  stroke: #e11d48;
}
.jc-job-detail__save-form {
  margin: 0;
  display: inline-flex;
}
.jc-job-detail__save-form input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.jc-job-detail__action-form { margin: 0; }
.jc-job-detail__btn-apply {
  min-height: 48px;
  padding: 12px 24px;
  font-weight: 900;
  font-size: 14px;
}
/* Pulsanti contatto: icona più grande, layout compatto professionale */
.jc-job-detail__contact-btn,
.jc-detail-contact-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid rgba(47,43,42,.12);
  background: #fff;
  color: var(--text);
  font-weight: 800;
  font-size: 13px;
  text-decoration: none;
  transition: background .2s, border-color .2s, color .2s, transform .15s;
  cursor: pointer;
}
.jc-job-detail__contact-btn:hover,
.jc-detail-contact-btn:hover {
  background: #F4F1ED;
  border-color: rgba(47,43,42,.2);
  transform: translateY(-1px);
}
.jc-job-detail__contact-btn--wa:hover,
.jc-detail-contact-btn--wa:hover {
  background: #E8F5E9;
  border-color: rgba(37,211,102,.3);
  color: #25D366;
}
.jc-job-detail__contact-email-wrap {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.jc-job-detail__contact-icon,
.jc-detail-contact-icon {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: rgba(47,43,42,.06);
}
.jc-job-detail__contact-icon svg,
.jc-detail-contact-icon svg {
  width: 18px;
  height: 18px;
}
.jc-job-detail__contact-btn--wa .jc-job-detail__contact-icon svg,
.jc-detail-contact-btn--wa .jc-detail-contact-icon svg {
  width: 20px;
  height: 20px;
}
@media (max-width: 480px) {
  .jc-job-detail__contact-btn,
  .jc-detail-contact-btn {
    padding: 10px 12px;
    font-size: 12px;
  }
  .jc-job-detail__contact-btn > span:not(.jc-job-detail__contact-icon),
  .jc-detail-contact-btn > span:not(.jc-detail-contact-icon) {
    display: none;
  }
  .jc-job-detail__contact-icon,
  .jc-detail-contact-icon {
    width: 40px;
    height: 40px;
  }
  .jc-job-detail__contact-icon svg,
  .jc-detail-contact-icon svg {
    width: 22px;
    height: 22px;
  }
}

/* Lightbox immagine annuncio */
.jc-photo-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(0,0,0,.85);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  box-sizing: border-box;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s, visibility .3s;
  cursor: pointer;
}
.jc-photo-lightbox.is-open {
  opacity: 1;
  visibility: visible;
}
.jc-photo-lightbox img {
  max-width: 100%;
  max-height: 90vh;
  border-radius: 12px;
  box-shadow: 0 20px 60px rgba(0,0,0,.5);
  cursor: default;
  object-fit: contain;
}
.jc-photo-lightbox__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 44px;
  height: 44px;
  border: none;
  background: rgba(255,255,255,.9);
  border-radius: 50%;
  font-size: 28px;
  line-height: 1;
  color: #333;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: background .2s;
}
.jc-photo-lightbox__close:hover {
  background: #fff;
}

.jc-split {
  display: grid;
  gap: 16px;
}

/* Anteprima pubblicazione: card più piccola, centrata, bottoni staccati dal meta (solo desktop) */
@media (min-width: 768px) {
  .jc-preview-list .jobcard {
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 24px;
  }
  .jc-preview-list .jobcard__meta {
    margin-bottom: 16px;
  }
}

.jc-preview {
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
  padding: 16px;
  display: grid;
  gap: 10px;
}

.jc-preview__title {
  margin: 0;
  font-size: 16px;
}

.jc-profile-card {
  gap: 14px;
}

.jc-profile-header {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 16px;
  align-items: start;
}

.jc-profile-photo {
  width: 120px;
  height: 120px;
  border-radius: 16px;
  border: 1px solid var(--border);
  overflow: hidden;
  background: #f3f4f6;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text);
  font-weight: 600;
  font-size: 20px;
}

.jc-profile-photo__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.jc-profile-photo__fallback {
  line-height: 1;
}

.jc-profile-info {
  display: grid;
  gap: 6px;
}

.jc-profile-name {
  font-size: 18px;
}

.jc-profile-meta {
  margin-top: 4px;
  gap: 10px;
}

.jc-profile-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

@media (max-width: 900px) {
  .jc-preview .jc-meta {
    flex-direction: column;
    gap: 4px;
  }

  .jc-profile-header {
    grid-template-columns: 1fr;
  }

  .jc-profile-photo {
    width: 96px;
    height: 96px;
  }

  .jc-preview,
  .jc-form {
    width: 100%;
  }
}

@media (min-width: 900px) {
  .jc-split {
    grid-template-columns: 1fr 1fr;
    align-items: start;
  }
}
@media (min-width: 900px) {
  .jc-inline {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    align-items: end;
  }
}


.jc-banner {
  background: #f3f4f6;
  border: 1px solid rgba(55,65,81,.12);
  border-radius: 12px;
  padding: 10px 12px;
  margin-bottom: 12px;
}

.jc-banner .jc-link {
  color: var(--muted);
  border-bottom: none;
}

.jc-banner--activity {
  display: grid;
  gap: 6px;
}

.jc-banner--activity strong {
  font-size: 14px;
  color: var(--text);
}

.jc-bell {
  position: relative;
  display: inline-flex;
}

.jc-bell__btn {
  position: relative;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
}

.jc-bell__btn svg {
  width: 18px;
  height: 18px;
}

/* Topbar candidato: campanella usa jc-btn--icon = stessa dimensione di home/uscita */

.jc-bell__badge.is-hidden {
  visibility: hidden;
}
.jc-bell__badge {
  position: absolute;
  top: -6px;
  right: -6px;
  width: 24px;
  height: 18px;
  line-height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  border: 2px solid #fff;
  box-sizing: border-box;
  overflow: hidden;
  transform: translateY(0);
}

/* Company: badge identico al candidato (evita micro-shift, no ereditarietà font/line-height) */
.jc-topbar-company .jc-bell__btn {
  line-height: 0;
  padding: 0;
}
.jc-topbar-company .jc-bell__badge {
  width: 24px;
  height: 18px;
  line-height: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 11px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  border: 2px solid #fff;
  box-sizing: border-box;
  overflow: hidden;
  transform: translateY(0);
}

.jc-bell__panel {
  position: absolute;
  top: 46px;
  right: 0;
  left: auto;
  transform: none;
  width: 320px;
  max-width: 85vw;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px;
  box-shadow: var(--shadow-sm);
  display: none;
  z-index: 10;
  box-sizing: border-box;
  max-height: 360px;
  overflow-y: auto;
}

.jc-bell.is-open .jc-bell__panel {
  display: block;
}

.jc-bell__title {
  font-size: 13px;
  font-weight: 600;
  margin-bottom: 8px;
}

.jc-bell__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
  color: var(--text);
  font-size: 13px;
}

.jc-bell__item {
  color: var(--text);
  font-weight: 500;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 0.2s, background 0.2s;
}

.jc-bell__item:hover {
  border-color: rgba(47, 43, 42, 0.2);
  background: #fafaf9;
}

.jc-bell__item--read {
  background: #f9fafb;
  border-color: rgba(47, 43, 42, 0.08);
}

.jc-bell__item--read .jc-bell__link {
  opacity: 0.55;
  color: var(--text-muted, #6b7280);
  font-weight: 400;
}

.jc-bell__item--read .jc-bell__link:hover {
  opacity: 0.8;
}

.jc-bell__link {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 10px;
  align-items: center;
  color: inherit;
  text-decoration: none;
  padding: 10px 12px;
  min-width: 0;
}

.jc-bell__link:hover {
  color: var(--text);
}

.jc-bell__avatar {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  overflow: hidden;
  background: #f3f4f6;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  color: var(--text);
  font-size: 12px;
  font-weight: 600;
}

.jc-bell__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.jc-bell__avatar--fallback {
  line-height: 1;
}

.jc-bell__avatar--success {
  background: #dcfce7;
  color: #16a34a;
  border-color: #86efac;
}

@media (min-width: 900px) {
  .jc-actions .jc-bell {
    margin-left: auto;
  }
}

/* Footer pagine pubbliche (include app/includes/footer.php) */
.jc-footer {
  margin-top: 24px;
  padding: 24px 16px calc(
      var(--jc-bottom-nav-h, var(--bottomnavH, 76px))
      + env(safe-area-inset-bottom, 0px)
      + 24px
  );
  border-top: 1px solid rgba(0, 0, 0, 0.05);
  background: #fff;
  font-size: 15px;
  color: #6b7280;
}
@media (max-width: 767px) {
  .jc-footer {
    padding-bottom: calc(
        var(--jc-bottom-nav-h, var(--bottomnavH, 76px))
        + env(safe-area-inset-bottom, 0px)
        + 8px
    );
  }
}
.jc-footer__inner {
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
  text-align: center;
}
.jc-footer__links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0;
}
.jc-footer__links a {
  color: inherit;
  text-decoration: none;
  opacity: 0.75;
}
.jc-footer__links a:hover {
  opacity: 1;
}
.jc-footer__links .jc-footer__sep {
  margin: 0 0.35em;
  opacity: 0.6;
  user-select: none;
}

@media (min-width: 900px) {
  .jc-hero {
    padding: 64px 0 44px;
  }

  .jc-hero__grid {
    grid-template-columns: 1.1fr .9fr;
    gap: 40px;
  }

  .jc-cards {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* ========== Mobile bottom nav (app-like) ========== */
html, body { overflow-x: hidden; }

/* Fix doppia scroll verticale: scroll solo su html */
html.jc-page-jobs {
  overflow-y: auto;
  overflow-x: hidden;
}
body.jc-page-jobs {
  overflow-y: visible;
  overflow-x: hidden;
  min-height: 100%;
  height: auto;
}
/* Jobs topbar standard (company/guest): margini aumentati solo su mobile */
@media (max-width: 767px) {
  body.jc-page-jobs:not(:has(.jc-topbar-candidate)) main.jc-container {
    padding-left: 20px;
    padding-right: 20px;
    box-sizing: border-box;
  }
}
.jc-page-jobs main.jc-container {
  overflow: visible;
}
.mnav { display: none; }
@media (max-width: 767px) { .mnav { display: flex; } }
@media (min-width: 768px) { .mnav { display: none !important; } }

/* Nascondi barra nav quando lo sheet dettaglio è aperto */
body:has(.jc-mobile-detail-sheet.is-open) .mnav {
  visibility: hidden;
  pointer-events: none;
}

/* mnav z-index 999: sotto sheet/overlay (9999) ma sopra contenuto */
.mnav {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  height: 64px;
  background: #fff;
  border-top: 1px solid rgba(17, 24, 39, 0.1);
  z-index: 999;
  padding: 8px 10px;
  padding-bottom: calc(8px + env(safe-area-inset-bottom));
  gap: 6px;
  justify-content: space-around;
  align-items: center;
  max-width: 100%;
}

.mnav__link {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  text-decoration: none;
  color: #6b7280;
  font-size: 11px;
  line-height: 1;
}

.mnav__link .ico {
  width: 22px;
  height: 22px;
  display: block;
}
.mnav__link .ico svg {
  width: 100%;
  height: 100%;
}

.mnav__link.is-active { color: #111827; }
.mnav__link.is-active .dot {
  opacity: 1;
  transform: scale(1);
}

.mnav__link .dot {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #C8E9BA;
  opacity: 0;
  transform: scale(0.7);
}

/* mnav azienda: 5 tab (Annunci, Candidature, Pubblica, Profili, Profilo) */
.mnav--company {
  display: grid;
  grid-template-columns: 1fr 1fr auto 1fr 1fr;
  gap: 4px;
  padding: 6px 8px;
  padding-bottom: calc(12px + env(safe-area-inset-bottom));
  height: auto;
  min-height: 64px;
}
.mnav--company .mnav__link {
  flex: none;
}
/* Content safe area: padding solo quando mnav è nel DOM (Mobile Safe Scroll Area) */
.jc-page { padding-bottom: 0; }
@media (max-width: 767px) {
  body:has(.mnav) .jc-page,
  body:has(.mnav) main.jc-container.jc-page {
    padding-bottom: calc(var(--bottomnavH, 76px) + env(safe-area-inset-bottom, 0px) + 24px) !important;
  }
}

/* ========== Dashboard app-like (hero, sections, mini-list) ========== */
.dash-hero {
  margin-bottom: 20px;
}
/* Dashboard: stessi margini di Profilo e Search */
body:has(.jc-topbar-candidate) .jc-dashboard-main .dash-hero {
  margin-top: 20px;
}
body:has(.jc-topbar-company) .jc-company-dashboard-main--hero .dash-hero {
  margin-top: 20px;
}
@media (min-width: 900px) {
  body:has(.jc-topbar-candidate) main.jc-dashboard-main.jc-container {
    padding: 24px 20px 48px;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
  }
  body:has(.jc-topbar-company) main.jc-company-dashboard-main--hero.jc-container {
    padding: 24px 20px 48px;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
  }
  /* Altre pagine company (pricing, payment, form, profile_edit): stesso layout desktop */
  body:has(.jc-topbar-company) main.jc-container.jc-page {
    padding: 24px 20px 48px;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Mobile: hero Ciao + foto + pulsanti — layout accattivante e moderno */
@media (max-width: 899px) {
  .dash-hero {
    background: linear-gradient(160deg, rgba(240, 253, 244, 0.6) 0%, rgba(255, 255, 255, 0.95) 40%);
    border-radius: 20px;
    padding: 20px;
    border: 1px solid rgba(34, 197, 94, 0.12);
    box-shadow: 0 4px 20px rgba(17, 24, 39, 0.06);
    margin-bottom: 24px;
  }
  .dash-hero__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 16px;
  }
  .dash-hero__avatar-wrap {
    order: -1;
  }
  .dash-hero__avatar {
    width: 72px;
    height: 72px;
    border-width: 4px;
    border-color: rgba(34, 197, 94, 0.5);
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.25), 0 4px 16px rgba(17, 24, 39, 0.12);
  }
  .dash-hero__avatar--fallback {
    font-size: 1.75rem;
  }
  .dash-hero__text {
    flex: 1;
    min-width: 0;
    width: 100%;
  }
  .dash-hero__title {
    font-size: 1.5rem;
    margin-bottom: 4px;
    letter-spacing: -0.02em;
  }
  .dash-hero__lead {
    font-size: 0.9rem;
    color: var(--muted);
  }
  .jc-dash-quick-links {
    display: flex;
    flex-direction: row;
    width: 100%;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 4px;
    flex-shrink: 0;
  }
  .jc-dash-quick-link {
    flex: 1;
    min-width: 120px;
    max-width: 160px;
    padding: 12px 16px;
    font-size: 12px;
    border-radius: 12px;
    letter-spacing: 0.01em;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  }
  .jc-dash-quick-link:first-child {
    box-shadow: 0 2px 10px rgba(34, 197, 94, 0.15);
  }
  .jc-dash-quick-link:last-child {
    box-shadow: 0 2px 10px rgba(59, 130, 246, 0.12);
  }
}

.dash-hero__avatar-wrap {
  flex-shrink: 0;
}
.dash-hero__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid rgba(47,43,42,.15);
  background: var(--soft);
  box-shadow: 0 0 0 1px rgba(47,43,42,.08);
}
.dash-hero__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.dash-hero__avatar--fallback {
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--muted);
  text-transform: uppercase;
}
@media (min-width: 900px) {
  .dash-hero__inner {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
  }
  .dash-hero__text {
    flex: 1;
    min-width: 0;
  }
  .jc-dash-quick-links {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
    flex-shrink: 0;
  }
}
.jc-dash-quick-link {
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  transition: transform .15s, box-shadow .2s;
}
.jc-dash-quick-link:first-child {
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
  color: #166534;
  border: 1px solid rgba(34,197,94,.25);
  box-shadow: 0 2px 6px rgba(34,197,94,.06);
}
.jc-dash-quick-link:first-child:hover {
  background: linear-gradient(135deg, #dcfce7 0%, #bbf7d0 100%);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(34,197,94,.12);
}
.jc-dash-quick-link:last-child {
  background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
  color: #1e40af;
  border: 1px solid rgba(59,130,246,.25);
  box-shadow: 0 1px 4px rgba(59,130,246,.06);
}
.jc-dash-quick-link:last-child:hover {
  background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(59,130,246,.12);
}
@media (min-width: 900px) {
  .jc-dash-quick-links {
    display: none;
  }
}
.dash-hero__title {
  margin: 0 0 4px;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text);
}
.dash-hero__lead {
  margin: 0;
  font-size: 0.95rem;
  color: var(--muted);
}

.jc-torna-su {
  margin: 28px 0 20px;
  text-align: center;
}
.jc-torna-su__link {
  font-style: italic;
  font-size: 0.9rem;
  color: var(--muted);
  text-decoration: none;
  transition: color .2s;
}
.jc-torna-su__link:hover {
  color: var(--text);
}
.jc-torna-su__arrow {
  font-style: normal;
  margin-left: 2px;
}

/* Load more annunci (jobs.php) */
#jc-loadmore-sentinel {
  height: 1px;
  visibility: hidden;
  pointer-events: none;
}
.jc-loadmore {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.jc-loadmore__btn {
  min-width: 140px;
}
.jc-loadmore__btn.is-loading {
  opacity: 0.7;
  pointer-events: none;
}
.jc-loadmore__spinner {
  width: 24px;
  height: 24px;
  border: 2px solid var(--border);
  border-top-color: var(--cta);
  border-radius: 50%;
  animation: jc-spin 0.6s linear infinite;
}
@keyframes jc-spin {
  to { transform: rotate(360deg); }
}
.jc-loadmore__end {
  margin: 0;
  padding: 20px 0;
  font-size: 0.9rem;
  color: var(--muted);
  text-align: center;
}
/* Padding per evitare che "Torna su" fixed copra le card */
body.jc-page-jobs main#top {
  padding-bottom: 60px;
}
@media (min-width: 768px) {
  body.jc-page-jobs main#top {
    padding-bottom: 80px;
  }
}
.jc-loadmore__torna-su {
  position: fixed;
  bottom: 80px;
  right: 16px;
  z-index: 100;
  padding: 10px 16px;
  font-size: 0.875rem;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
  text-decoration: none;
  color: var(--text);
}
.jc-loadmore__torna-su:hover {
  background: var(--soft);
  color: var(--text);
}
@media (min-width: 768px) {
  .jc-loadmore__torna-su { bottom: 24px; right: 24px; }
}

.dash-section {
  padding: 16px 0;
  border-top: 1px solid var(--border);
}
.dash-section:first-of-type { border-top: 0; }
.dash-section__head,
.dash-section__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  flex-wrap: wrap;
  gap: 8px;
}
.dash-section__title {
  margin: 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
}
.jc-dash-section-title {
  font-size: 1.08rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--text);
}
.jc-dash-section-header-box {
  padding: 10px 14px 14px;
  background: rgba(74, 143, 90, 0.06);
  border: 1px solid rgba(74, 143, 90, 0.25);
  border-radius: 12px;
  margin-bottom: 12px;
  position: relative;
}
.jc-dash-section-header-box::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, #4a8f5a, #22b8cf);
  border-radius: 0 0 11px 11px;
}
.dash-section__action {
  font-size: 0.875rem;
  color: var(--cta);
  text-decoration: none;
}
.dash-section__action:hover { text-decoration: underline; }

.jc-dash-apps-tabs {
  display: flex;
  gap: 6px;
  padding: 0 14px 10px;
  margin: 0;
  pointer-events: auto;
}
.jc-dash-apps-tab {
  flex: 0 0 auto;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 600;
  border-radius: 999px;
  border: 1px solid rgba(74, 143, 90, 0.3);
  background: rgba(255,255,255,.9);
  color: #6b7280;
  cursor: pointer;
  pointer-events: auto;
  transition: background .2s, color .2s, border-color .2s;
  -webkit-tap-highlight-color: transparent;
}
.jc-dash-apps-tab:hover {
  background: #fff;
  color: var(--text);
  border-color: rgba(74, 143, 90, 0.45);
}
.jc-dash-apps-tab.is-active {
  background: linear-gradient(135deg, var(--primary) 0%, #15803d 100%);
  border-color: transparent;
  color: #fff;
}
.jc-dash-apps-panel[hidden],
.jc-dash-apps-panel.jc-dash-apps-panel--hidden {
  display: none !important;
}

.mini-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.jc-page-dashboard #dash-candidature .mini-list,
.jc-page-dashboard #dash-salvati .mini-list {
  min-height: 120px;
  transition: opacity 0.15s ease;
}
.jc-page-dashboard #dash-candidature .mini-list.jc-mini-list--updating,
.jc-page-dashboard #dash-salvati .mini-list.jc-mini-list--updating {
  opacity: 0.5;
}
.mini-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  background: var(--soft);
  border-radius: 10px;
  text-decoration: none;
  color: inherit;
  flex-wrap: wrap;
}
.mini-item:hover { background: var(--border); }
.mini-item--empty {
  flex-direction: column;
  align-items: stretch;
  text-align: center;
  padding: 20px;
}
.mini-item--empty .jc-btn { align-self: center; }
.mini-item__main,
.mini-item__body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.mini-item__main { flex-direction: row; align-items: center; }
.mini-item__body { align-items: flex-start; overflow: hidden; }
.mini-item__sub {
  font-size: 0.8rem;
  color: var(--muted);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.mini-item__title {
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
a.mini-item__title {
  color: inherit;
  text-decoration: none;
}
a.mini-item__title:hover { text-decoration: underline; }
.mini-item__side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  flex-shrink: 0;
}
a.mini-item__side {
  color: inherit;
  text-decoration: none;
}
a.mini-item__side:hover { text-decoration: none; }
.mini-item__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  flex-shrink: 0;
}
a.mini-item__badges {
  color: inherit;
  text-decoration: none;
}
a.mini-item__badges:hover { text-decoration: none; }
.mini-item__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}
.mini-item__meta { font-size: 0.8rem; color: var(--muted); flex-shrink: 0; }
.mini-item__actions { flex-shrink: 0; }
.btn--xs { font-size: 0.75rem; padding: 4px 10px; }

.badge--app { font-size: 0.7rem; }
.badge--app-submitted { background: #E0F2FE; color: #0369a1; }
.badge--app-review { background: #FEF3C7; color: #92400e; }
.badge--app-evaluating { background: #E0E7FF; color: #3730a3; }
.badge--app-contacted { background: #D1FAE5; color: #047857; }
.badge--app-rejected { background: #FEE2E2; color: #b91c1c; }

.dash-section--cta { padding: 16px 0; }
.dash-cta-card {
  background: linear-gradient(145deg, #ecfdf5 0%, #d1fae5 50%, #a7f3d0 100%);
  border: 2px solid #34d399;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 4px 14px rgba(52, 211, 153, 0.2);
}
.dash-cta-card__headline {
  margin: 0 0 4px;
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #047857;
}
.dash-cta-card__title { margin: 0 0 8px; font-size: 1.15rem; font-weight: 700; color: #064e3b; }
.dash-cta-card__text { margin: 0 0 16px; font-size: 0.95rem; color: #065f46; line-height: 1.4; }
.dash-cta-card__checklist {
  margin: 0 0 20px;
  padding-left: 20px;
  font-size: 0.9rem;
  color: #047857;
}
.dash-cta-card__checklist li { margin-bottom: 6px; }
.dash-cta-card__checklist li:last-child { margin-bottom: 0; }
.dash-cta-card__btn {
  display: inline-block;
  font-weight: 600;
  padding: 12px 24px;
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(52, 211, 153, 0.35);
}
.dash-cta-card__btn:hover { box-shadow: 0 4px 12px rgba(52, 211, 153, 0.45); }

.dash-vicino-footer {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  text-align: center;
}
.dash-vicino-footer__link {
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--cta);
  text-decoration: none;
}
.dash-vicino-footer__link:hover { text-decoration: underline; }

/* ========== Profilo candidato e azienda — layout unificato ========== */
.jc-profile-back {
  display: inline-block;
  font-size: 0.9rem;
  color: var(--muted);
  text-decoration: none;
  margin-bottom: 12px;
}
.jc-profile-back:hover {
  color: var(--primary);
  text-decoration: underline;
}
/* Profilo candidato: stessi margini delle altre pagine (24px 0 32px mobile, 24px 20px 40px tablet+) */
.jc-page-profile .jc-container {
  padding: 24px 0 32px;
  box-sizing: border-box;
}
@media (min-width: 768px) {
  .jc-page-profile .jc-container {
    padding: 24px 20px 40px;
  }
}

/* Profilo candidato mobile: logo e icone in armonia (come home) */
@media (max-width: 640px) {
  .jc-page-profile .profile-card__hero {
    gap: 16px;
    margin-bottom: 20px;
  }
  .jc-page-profile .profile-card__photo,
  .jc-page-profile .profile-card__photo--fallback {
    width: 72px;
    height: 72px;
  }
  .jc-page-profile .profile-card__photo--fallback {
    font-size: 28px;
  }
  .jc-page-profile .profile-card__name {
    font-size: 1.35rem;
  }
  .jc-page-profile .profile-card__icon {
    width: 18px;
    height: 18px;
  }
  .jc-page-profile .profile-contact {
    padding: 8px 12px;
    gap: 6px;
    font-size: 0.85rem;
  }
  .jc-page-profile .profile-contact svg {
    width: 18px;
    height: 18px;
  }
  .jc-page-profile .profile-skill {
    padding: 6px 10px;
    font-size: 0.8rem;
    gap: 5px;
  }
  .jc-page-profile .profile-skill__icon {
    width: 14px;
    height: 14px;
  }
  .jc-page-profile .profile-cv {
    padding: 12px 14px;
    gap: 10px;
  }
  .jc-page-profile .profile-cv svg {
    width: 20px;
    height: 20px;
  }
  .jc-page-profile .profile-card {
    padding: 20px 16px;
    margin-top: 16px;
  }
  .jc-page-profile .profile-card__section { margin-bottom: 20px; }
  .jc-page-profile .profile-card__contacts { margin-bottom: 20px; gap: 8px; }
  .jc-page-profile .profile-card__actions { margin-top: 24px; padding-top: 16px; }
  .jc-page-profile .profile-card__actions .jc-btn { min-height: 40px; font-size: 14px; }
}

.profile-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 24px;
  margin-top: 20px;
  box-shadow: var(--shadow-sm);
  max-width: 560px;
  width: 100%;
  box-sizing: border-box;
}
/* Desktop: stessi margini di Annunci salvati (max-width 1120px, padding 24px 20px 48px) */
@media (min-width: 900px) {
  body.jc-page-profile:has(.jc-topbar-candidate) main.jc-container {
    max-width: 1120px;
    margin-left: auto;
    margin-right: auto;
    padding: 24px 20px 48px;
    box-sizing: border-box;
  }
  .jc-page-profile .jc-container {
    width: 100%;
  }
  .jc-page-profile .profile-card {
    max-width: none;
    width: 100%;
    padding: 32px 36px;
    box-sizing: border-box;
  }
  .profile-card__layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 36px;
    align-items: start;
    min-width: 0;
  }
  .profile-card__main {
    min-width: 0;
  }
  .profile-card__side {
    /* no min-width: 0 — evita collasso colonna destra (video spariva dopo spostamento) */
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .profile-card__side .profile-card__section--video {
    margin-bottom: 0;
  }
  .profile-card__side .profile-video__wrap--desktop {
    min-height: 240px;
  }
  .profile-card__side-empty {
    padding: 24px;
    border-radius: 14px;
    border: 1px dashed var(--border);
    background: rgba(47,43,42,.02);
    text-align: center;
  }
  .profile-card__side-empty-text {
    margin: 0 0 12px;
    font-size: 0.9rem;
    color: var(--muted);
    font-weight: 600;
  }
}
/* Profilo: adattamento al ridimensionamento — finestra stretta (900–1100px) */
@media (min-width: 900px) and (max-width: 1100px) {
  .jc-page-profile .profile-card {
    padding: 24px 20px;
  }
  .jc-page-profile .profile-card__layout {
    gap: 24px;
  }
}
/* Profilo: colonna singola sotto 900px, nessun overflow */
@media (max-width: 899px) {
  .jc-page-profile .profile-card {
    max-width: 100%;
  }
}
/* Profilo: catena anti-overflow per ridimensionamento finestra */
.jc-page-profile main.jc-container,
.jc-page-profile .profile-card,
.jc-page-profile .profile-card__layout,
.jc-page-profile .profile-card__main,
.jc-page-profile .profile-card__side {
  max-width: 100%;
  box-sizing: border-box;
}
.profile-card__layout--single {
  grid-template-columns: 1fr;
}
.profile-card__layout--single .profile-card__main {
  width: 100%;
}
/* Company applications: profile-card e loadmore a larghezza piena (override max-width 560px) */
body:has(.jc-topbar-company) .profile-card:has(.jc-company-list),
body:has(.jc-topbar-company) .profile-card:has(.jc-annunci-blocks),
body:has(.jc-topbar-company) .profile-card--applications {
  max-width: none;
}
/* Candidature company: profile-card a larghezza piena (mobile + desktop) */
.profile-card--applications {
  max-width: none !important;
}

/* Profilo azienda (/company/view): allineare margini al profilo candidato */
@media (max-width: 767px) {
  body.jc-page-company-view {
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box;
  }
  body.jc-page-company-view main.jc-container {
    padding: 24px 0 32px;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box;
  }
}
@media (min-width: 768px) {
  body.jc-page-company-view main.jc-container {
    padding: 24px 20px 40px;
    box-sizing: border-box;
  }
}
@media (min-width: 900px) {
  body.jc-page-company-view main.jc-container {
    max-width: 1120px;
    margin-left: auto;
    margin-right: auto;
    padding: 24px 20px 48px;
    box-sizing: border-box;
  }
  body.jc-page-company-view .profile-card {
    width: 100%;
  }
}

/* Pagina elimina account */
.jc-page-delete-account__main {
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}
.jc-delete-account-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 28px 24px;
  margin-top: 20px;
  width: 100%;
  max-width: 540px;
  margin-left: auto;
  margin-right: auto;
  box-shadow: var(--shadow-sm);
  box-sizing: border-box;
}
.jc-delete-account__title {
  font-size: 1.35rem;
  font-weight: 600;
  margin: 0 0 24px;
  line-height: 1.3;
  color: var(--text);
}
.jc-delete-account__info {
  margin-bottom: 28px;
  font-size: 0.95rem;
  color: var(--text);
  line-height: 1.5;
}
.jc-delete-account__info p {
  margin: 0 0 8px;
}
.jc-delete-account__info ul {
  margin: 8px 0 0;
  padding-left: 1.25em;
  line-height: 1.6;
}
.jc-delete-account__info li {
  margin-bottom: 6px;
}
.jc-delete-account__form .jc-field {
  margin-bottom: 20px;
}
.jc-delete-account__form .jc-field label {
  display: block;
  font-weight: 500;
  margin-bottom: 8px;
  font-size: 0.9rem;
}
.jc-delete-account__form input[type="password"] {
  width: 100%;
  max-width: 320px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 10px;
  font-size: 1rem;
  box-sizing: border-box;
}
.jc-delete-account__form .jc-field--checkbox {
  margin-bottom: 24px;
}
.jc-delete-account__form .jc-field--checkbox label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-weight: 400;
  font-size: 0.9rem;
  line-height: 1.45;
  cursor: pointer;
}
.jc-delete-account__form .jc-field--checkbox input {
  margin: 3px 0 0;
  flex-shrink: 0;
}
.jc-delete-account__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.jc-delete-account__actions .jc-btn {
  min-height: 44px;
  padding: 12px 20px;
}
/* Elimina account + Annulla centrati (mobile e desktop) */
.jc-delete-account__actions {
  justify-content: center;
}
@media (min-width: 600px) {
  .jc-delete-account-card {
    padding: 32px 36px;
  }
  .jc-delete-account__title {
    font-size: 1.5rem;
    margin-bottom: 28px;
  }
}
/* Profilo candidato visto da azienda: mobile max-width confortevole */
body.jc-page-profile-company .profile-card--candidate-view {
  max-width: 640px;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
body.jc-page-profile-company .profile-card__layout,
body.jc-page-profile-company .profile-card__main {
  min-width: 0;
}
@media (min-width: 900px) {
  /* Desktop: profilo copre tutta la larghezza disponibile, si adatta al resize */
  body.jc-page-profile-company .profile-card--candidate-view {
    max-width: none;
  }
  /* Container a larghezza piena: niente spazio vuoto ai lati */
  body.jc-page-profile-company main.jc-container {
    max-width: none;
    width: 100%;
  }
}

/* Profilo azienda, Statistiche, Cerca candidati: riempiono larghezza a 768–899px (prima di mobile) */
@media (min-width: 768px) and (max-width: 899px) {
  body.jc-page-company-profile main.jc-container,
  body.jc-page-statistiche main.jc-container,
  body.jc-page-candidati main.jc-container {
    width: 100% !important;
    max-width: none !important;
  }
  body.jc-page-company-profile .profile-card,
  body.jc-page-statistiche .profile-card,
  body.jc-page-candidati .profile-card {
    max-width: none !important;
    width: 100% !important;
  }
}

body:has(.jc-topbar-company) .jc-loadmore:has(.jc-company-list) {
  width: 100%;
}
/* Cerca candidati Premium: form allineato in riga come profile */
.jc-page-candidati .jc-form--candidati {
  margin-top: 20px;
  margin-bottom: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: flex-end;
}
.jc-page-candidati .jc-form--candidati .jc-field {
  flex: 1 1 auto;
  min-width: 120px;
}
.jc-page-candidati .jc-form--candidati .jc-field--actions {
  flex-shrink: 0;
}

/* Pagina profili: restyling mobile - form compatto come search bar */
@media (max-width: 767px) {
  .jc-form--candidati-search {
    background: #fafbfc;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 12px;
    padding: 12px 4px;
    margin-top: 4px !important;
    margin-bottom: 0 !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  }
  .jc-page-candidati .jc-form--candidati {
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 8px;
    align-items: stretch;
  }
  .jc-page-candidati .jc-form--candidati .jc-field {
    flex: none;
    min-width: 0;
    width: 100%;
  }
  .jc-page-candidati .jc-form--candidati .jc-field .jc-label {
    display: none;
  }
  .jc-page-candidati .jc-form--candidati .jc-field .jc-input,
  .jc-page-candidati .jc-form--candidati .jc-field .jc-select {
    min-height: 40px;
    padding: 10px 12px;
    font-size: 15px;
    border-radius: 10px;
  }
  .jc-page-candidati .jc-form--candidati .jc-field .jc-help {
    margin-top: 4px;
    font-size: 0.7rem;
    line-height: 1.3;
  }
  .jc-page-candidati .jc-form--candidati .jc-field--actions {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 8px;
    margin-top: 2px;
    padding-top: 8px;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
  }
  .jc-page-candidati .jc-form--candidati .jc-field--actions .jc-btn {
    flex: 1;
    min-width: 0;
    min-height: 40px;
    padding: 10px 14px;
    font-size: 14px;
  }
  .jc-page-candidati .jc-form--candidati .jc-field--actions .jc-btn--ghost {
    flex: 0 0 auto;
  }
  .jc-page-candidati .profile-card__section:has(.jc-form--candidati) {
    margin-bottom: 4px;
  }
  body.jc-page-candidati .profile-card:has(.jc-form--candidati-search) {
    padding-left: 8px;
    padding-right: 8px;
  }
  .jc-page-candidati .profile-card__section-title {
    margin-bottom: 8px;
  }
  .jc-page-candidati .jc-card__meta {
    margin-bottom: 12px;
  }
  .jc-page-candidati .jc-candidate-row {
    flex-direction: row;
    align-items: flex-start;
    padding: 12px 14px;
  }
  .jc-page-candidati .jc-candidate-row > div:first-child {
    flex: 1;
    min-width: 0;
  }
  .jc-page-candidati .jc-candidate-row .jc-row__action {
    flex-shrink: 0;
    align-self: flex-start;
  }
  .jc-page-candidati .jc-candidate-row .jc-btn--primary.jc-btn--sm {
    font-size: 11px;
    padding: 4px 10px;
    min-height: 28px;
  }
}

@media (min-width: 768px) {
  .jc-page-candidati .jc-form--candidati {
    flex-wrap: nowrap;
    gap: 16px;
  }
  .jc-page-candidati .jc-form--candidati .jc-field {
    min-width: 0;
  }
}
.jc-page-candidati .jc-form--candidati .jc-field .jc-label {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.jc-page-candidati .jc-form--candidati .jc-field .jc-input,
.jc-page-candidati .jc-form--candidati .jc-field .jc-select {
  min-height: 44px;
}
.jc-page-candidati .jc-form--candidati .jc-help {
  margin-top: 4px;
  font-size: 0.75rem;
  min-height: 1.25rem;
  display: block;
}
/* Spacer per campi senza help: allineano gli input con Distanza */
.jc-page-candidati .jc-form--candidati .jc-field:not(:has(.jc-help))::after {
  content: '';
  display: block;
  height: 1.25rem;
  margin-top: 4px;
}
@media (max-width: 767px) {
  .jc-page-candidati .jc-form--candidati .jc-field:not(:has(.jc-help))::after {
    height: 0;
    margin-top: 0;
  }
}
.jc-page-candidati.jc-page-profile .profile-card__section {
  overflow: visible;
}
@media (max-width: 767px) {
  .jc-page-candidati .profile-card__section {
    margin-bottom: 12px;
  }
  .jc-page-candidati .profile-card__section:last-child {
    margin-bottom: 0;
  }
  .jc-page-candidati .profile-card__name {
    margin-bottom: 4px;
    font-size: 1.25rem;
  }
  .jc-page-candidati .profile-card__bio {
    margin-bottom: 0;
    font-size: 0.9rem;
    line-height: 1.4;
  }
}
.jc-page-candidati .jc-form--candidati .jc-field--city {
  overflow: visible;
}
.profile-card__hero {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 24px;
}
.profile-card__photo-wrap {
  flex-shrink: 0;
}
.profile-card__photo {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}
.profile-card__photo--fallback {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: linear-gradient(135deg, #E9F0DF 0%, #d4e8c8 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  font-weight: 700;
  color: var(--cta);
}
/* Company logo: quadrato con angoli arrotondati (non rotondo come candidato) */
body.jc-page-company-profile .profile-card__photo,
body.jc-page-company-profile .profile-card__photo--fallback,
body.jc-page-dashboard .jc-premium-dashboard-wrap .profile-card__photo,
body.jc-page-dashboard .jc-premium-dashboard-wrap .profile-card__photo--fallback {
  border-radius: 10px;
}
.profile-card__initial { line-height: 1; }
.profile-card__identity { flex: 1; min-width: 0; }
.profile-card__plan {
  margin: 8px 0 0 0;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.profile-card__plan .jc-annunci-hero__expiry {
  font-size: 13px;
  color: var(--muted);
}
.profile-card__name {
  margin: 0 0 4px;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.3px;
}
.profile-card__location {
  margin: 0;
  font-size: 0.95rem;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 6px;
}
.profile-card__availability-badge {
  display: block;
  margin-top: 12px;
}
.profile-card__icon { flex-shrink: 0; }
.profile-card__contacts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 24px;
}
.profile-card__separator {
  border: none;
  border-top: 1px solid rgba(0,0,0,.08);
  margin: 0 0 24px;
}
.profile-contact {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 12px;
  font-size: 0.9rem;
  font-weight: 600;
  text-decoration: none;
  color: inherit;
  border: 1px solid var(--border);
  background: var(--soft);
  transition: background 0.2s, border-color 0.2s;
}
.profile-contact:hover {
  background: #fff;
  border-color: var(--cta);
  color: var(--cta);
}
.profile-contact--whatsapp:hover { border-color: #25D366; color: #25D366; }
.profile-contact--phone:hover { border-color: var(--cta); color: var(--cta); }
.profile-contact--email:hover { border-color: var(--cta); color: var(--cta); }
.profile-contact--plain {
  cursor: default;
  pointer-events: none;
}
.profile-contact-inline {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.jc-copy-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: var(--muted);
  cursor: pointer;
  flex-shrink: 0;
  transition: background .2s, border-color .2s, color .2s;
}
.jc-copy-btn:hover {
  background: var(--soft);
  border-color: var(--cta);
  color: var(--cta);
}
.jc-copy-btn svg {
  display: block;
}
.jc-copy-btn--done {
  border-color: #22c55e !important;
  color: #22c55e !important;
}
.profile-card__section { margin-bottom: 24px; }
.profile-card__section--candidati-head .profile-card__section-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.profile-card__section--candidati-head .profile-card__section-head > div:first-child {
  flex: 1;
  min-width: 0;
}
.profile-card__section--candidati-head .profile-card__section-head .jc-btn {
  flex-shrink: 0;
}
.profile-card__section-title {
  margin: 0 0 12px;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.profile-card__section-title.jc-title--cta,
.jc-section__title.jc-title--cta {
  color: #1f5a2f;
}
.profile-card__section-title.jc-title--cta {
  font-size: 1.1rem;
}
.jc-section__title.jc-title--cta {
  font-size: 1.5rem;
}
.profile-skills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.profile-skill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  background: #E9F0DF;
  color: #1f5a2f;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 600;
}
.profile-skill__icon { flex-shrink: 0; opacity: 0.85; }
.profile-card__section--video {
  width: 100%;
  min-width: 0;
  flex-shrink: 0; /* evita collasso in flex column su desktop */
}
.profile-video {
  width: 100%;
  min-width: 0;
  flex-shrink: 0; /* evita restringimento dopo layout recalculation */
}
/* Mobile: thumbnail + link (evita schermo nero iframe) */
.profile-video__wrap--desktop {
  display: none;
}
.profile-video__mobile {
  display: block;
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  text-decoration: none;
  background: var(--soft);
}
.profile-video__thumb {
  width: 100%;
  display: block;
  aspect-ratio: 16/9;
  object-fit: cover;
  border-radius: 12px;
  transition: opacity .2s;
}
.profile-video__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 68px;
  height: 48px;
  background: rgba(255,255,255,.9);
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,.25);
  transition: transform .2s;
}
.profile-video__play::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-30%, -50%);
  border-style: solid;
  border-width: 10px 0 10px 18px;
  border-color: transparent transparent transparent #e03;
}
.profile-video__label {
  display: block;
  text-align: center;
  padding: 10px;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--cta);
}
.profile-video__mobile:hover .profile-video__thumb { opacity: .92; }
.profile-video__mobile:hover .profile-video__play { transform: translate(-50%, -50%) scale(1.05); }
/* Desktop: thumbnail + link (stesso comportamento di company, no iframe) */
@media (min-width: 768px) {
  .profile-video__wrap--desktop {
    display: none;
  }
  .profile-video__mobile {
    display: block;
  }
}
.profile-video__embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 12px;
}
.profile-card__link {
  color: var(--cta);
  font-weight: 600;
  text-decoration: none;
}
.profile-card__link:hover { text-decoration: underline; }
.profile-cv {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  border-radius: 12px;
  border: 1px solid var(--border);
}
.profile-cv--ok {
  background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%);
  border-color: #bbf7d0;
}
.profile-cv--ok span { font-weight: 600; color: #047857; }
.profile-cv--missing {
  background: rgba(17,24,39,.04);
  border-style: dashed;
}
.profile-cv--missing span { color: var(--muted); }
.profile-cv svg { flex-shrink: 0; }
.profile-cv--ok svg { color: #047857; }
.profile-cv--missing svg { color: var(--muted); }
.profile-card__bio {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--text);
}
.profile-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
/* Mobile: Modifica profilo + Elimina account centrati */
@media (max-width: 899px) {
  .jc-page-profile .profile-card__actions,
  .jc-page-profile-company .profile-card__actions {
    justify-content: center;
  }
}
/* Desktop: allineamento a sinistra */
@media (min-width: 900px) {
  .jc-page-profile .profile-card__actions,
  .jc-page-profile-company .profile-card__actions {
    justify-content: flex-start;
  }
}
.profile-card__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
}
.profile-card__nav-link {
  color: var(--cta);
  font-weight: 600;
  text-decoration: none;
  font-size: 0.95rem;
}
.profile-card__nav-link:hover { text-decoration: underline; }
.profile-card__nav-link--logout { color: var(--muted); }
.profile-card__meta { margin: 0; font-size: 0.9rem; color: var(--muted); }
.profile-card__meta a { color: var(--cta); font-weight: 600; }
.jc-btn--sm { padding: 8px 14px; font-size: 0.85rem; }
.jc-btn--plan {
  padding: 5px 12px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border-radius: 6px;
  min-height: auto;
  line-height: 1.2;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.2s ease, transform 0.15s ease;
}
.jc-btn--plan:hover {
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
  transform: translateY(-1px);
}
.jc-btn--trial {
  cursor: default;
  pointer-events: none;
}
.jc-btn--trial:hover {
  transform: none;
}

@media (min-width: 600px) {
  .profile-card { padding: 32px; }
  .profile-card__photo,
  .profile-card__photo--fallback {
    width: 120px;
    height: 120px;
  }
  .profile-card__photo--fallback { font-size: 44px; }
  .profile-card__name { font-size: 1.75rem; }
}

/* Cerca candidati: padding come altre pagine (base 24px, no margine extra) */
@media (max-width: 767px) {
  body.jc-page-candidati main.jc-container.jc-page {
    padding-left: 0;
    padding-right: 0;
    box-sizing: border-box;
  }
}

/* Ricerca candidati */
.jc-form--inline {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
@media (min-width: 600px) {
  .jc-form--inline {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    align-items: end;
  }
}
.jc-form--inline .jc-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.jc-form--inline .jc-field .jc-input,
.jc-form--inline .jc-field .jc-select {
  min-height: 44px;
  box-sizing: border-box;
}
.jc-form--inline .jc-field--actions {
  align-self: end;
}
/* Campo città con autocomplete: suggestions in overlay */
.jc-form--inline .jc-field--city {
  position: relative;
}
.jc-form--inline .jc-suggestions {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 4px;
  max-height: 240px;
  overflow-y: auto;
  z-index: 100;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(17, 24, 39, 0.12);
}
.jc-form--inline .jc-suggestions:empty {
  display: none;
}
/* Città in form annunci: max-height per scroll interno */
.jc-form .jc-field--city .jc-suggestions {
  max-height: 240px;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.jc-upgrade-hint {
  margin: 6px 0 0;
  font-size: 0.85rem;
  color: var(--muted);
}
.jc-badge--availability {
  background: rgba(47,92,52,.12);
  color: #2f5c34;
  font-weight: 600;
}
.jc-candidate-row {
  align-items: flex-start;
  gap: 12px;
}
.jc-candidate-row .jc-upgrade-hint + .jc-upgrade-hint { margin-top: 4px; }
.jc-help {
  display: block;
  font-size: 0.8rem;
  color: var(--muted);
  margin-top: 4px;
}

/* DEV badge — solo localhost, da rimuovere in produzione */
.jc-dev-badge {
  position: fixed;
  top: 10px;
  right: 10px;
  z-index: 9999;
  font-size: 10px;
  font-weight: 600;
  padding: 2px 6px;
  background: #eab308;
  color: #1a1a1a;
  border-radius: 4px;
  letter-spacing: 0.05em;
}

/* Pannello suggerimenti CAP: lista verticale scrollabile */
.jc-field--postal .jc-suggestions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 220px;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  margin-top: 6px;
}
.jc-field--postal .jc-suggestion {
  flex-shrink: 0;
  min-height: 48px;
  display: flex;
  align-items: center;
  padding: 12px 14px;
}
