/* Shared dashboard design tokens and UI primitives for Job50 bridges */
:root{
  --j50-red:#ed1c24;
  --j50-green:#22b573;
  --j50-orange:#f9922d;
  --j50-ink:#3a393d;
  --j50-muted:#67656f;
  --j50-line:#d8d7db;
  --j50-bg:#f3f3f7;
  --j50-card:#ffffff;
  --j50-radius-lg:22px;
  --j50-radius-md:18px;
}

.no-capitalize{
  text-transform:none !important;
}

.job50-dashboard-shell,
.job50-dashboard{
  display:grid;
  gap:24px;
  font-family:Inter, system-ui, sans-serif;
}

.job50-avatar{
  position:relative;
  overflow:hidden;
  background:#fff;
  border:solid 1px #ececec;
}

.job50-avatar--circle{
  border-radius:9999em;
}

.job50-avatar--xl{
  width:112px;
  height:112px;
}

.job50-dashboard-avatar,
.job50-dashboard-logo,
.job50-dashboard-panel__join-image{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.job50-avatar-fallback{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  border-radius:9999em;
  background-color:var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24));
  color:#fff;
  text-transform:uppercase;
}

.job50-dashboard-card__header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:20px;
}

.job50-overline{
  margin:0 0 6px;
  font-family:"Google Sans Flex", "Google Sans", Inter, system-ui, sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#8f8f8f;
}

.job50-dashboard-badges,
.job50-dashboard-actions,
.job50-dashboard-quick-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.job50-dashboard-quick-actions--two > *{
  flex:1 1 280px;
}

.job50-badge{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border-radius:9999em;
  font-size:13px;
  font-weight:700;
  background-color:#f4f4f4;
  color:#333333;
}

.job50-badge--role{
  background-color:#ffecee;
  color:var(--wp--preset--color--accent-1, #ed1c24);
}

.job50-badge--success{
  background-color:#edf8f1;
  color:#1d7a3e;
}

.job50-badge--warning{
  background-color:#fff4e8;
  color:#b85a00;
}

.job50-dashboard-title{
  margin:16px 0 8px;
  font-size:clamp(2rem,3vw,3rem);
  line-height:1;
  text-transform:none;
}

.job50-dashboard-subtitle{
  margin:0 0 18px;
  color:#5d5d5d;
}

.job50-action-tile{
  display:grid;
  gap:8px;
  padding:20px;
  border-radius:22px;
  border:solid 1px #ececec;
  background:#fff;
  text-decoration:none;
  box-shadow:0 8px 20px rgba(0,0,0,.03);
}

.job50-action-tile.is-disabled{
  opacity:.82;
  cursor:default;
}

.job50-action-tile strong{
  font-family:"Google Sans Flex", "Google Sans", Inter, system-ui, sans-serif;
  font-size:1rem;
  text-transform:uppercase;
}

.job50-action-tile span:last-child{
  font-size:14px;
  color:#666;
}

.job50-action-tile__eyebrow{
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--wp--preset--color--accent-1, #ed1c24);
}

.job50-dashboard-meta-list{
  display:grid;
  gap:12px;
  margin:0;
}

.job50-dashboard-meta-list > div{
  display:grid;
  grid-template-columns:minmax(120px,150px) minmax(0,1fr);
  gap:12px;
  padding-bottom:12px;
  border-bottom:solid 1px #efefef;
}

.job50-dashboard-meta-list dt{
  font-size:13px;
  font-weight:700;
  text-transform:uppercase;
  color:#8f8f8f;
}

.job50-dashboard-meta-list dd{
  margin:0;
  word-break:break-word;
}

.job50-dashboard-list{
  display:grid;
  gap:10px;
  margin:0;
  padding-left:18px;
}

.job50-toast{
  display:flex;
  gap:12px;
}

.job50-toast__message{
  line-height:1.4;
}

.job50-toast__close{
  appearance:none;
  border:0;
  background:transparent;
  cursor:pointer;
}

@media (max-width: 781px){
  .job50-dashboard-actions .buttons{
    width:100%;
    justify-content:center;
  }

  .job50-dashboard-meta-list > div{
    grid-template-columns:1fr;
    gap:6px;
  }
}

.job50-seeker-dashboard .job50-dashboard-card{
  max-width:none;
  margin:0;
  padding:28px;
  background:#fff;
  border:1px solid #dedede;
  border-radius:16px;
  background:linear-gradient(180deg,#FFF 0%, #FFF 80%, #F5F5F5 100%);
  box-shadow:0 10px 30px rgba(0,0,0,.04);
}

.job50-dashboard-panel{
  background: rgba(255,255,255,.78);
  border: 1px solid var(--j50-line);
  border-radius: var(--j50-radius-lg);
  padding: 0;
  overflow:hidden;
}

.job50-dashboard-panel--jobs,
.job50-dashboard-panel--matches,
.job50-dashboard-panel--extra{
  padding: 30px 30px 24px;
}

.job50-dashboard-panel__heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.job50-dashboard-panel__title-wrap{
  display:grid;
  grid-template-columns: 42px minmax(0,1fr);
  gap: 16px;
  align-items:start;
}

.job50-dashboard-v2__extras .job50-dashboard-panel__title-wrap{
  display: block;
}

.job50-dashboard-panel__title-wrap--stacked{
  grid-template-columns: 1fr;
  gap: 10px;
}

.job50-dashboard-panel__icon{
  width: 36px;
  height: 36px;
  display:block;
}

.job50-dashboard-panel__icon--match{
  width: 54px;
  height: 54px;
}

.job50-dashboard-panel__heading p{
  margin: 4px 0 0;
  color: #4d4b53;
  font-size: 1rem;
}

.job50-dashboard-counter{
  min-width: 36px;
  height: 36px;
  border-radius:999px;
  background:var(--j50-red);
  color:#fff;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
}

.job50-dashboard-members{
  display:grid;
  gap: 14px;
}

.job50-dashboard-member{
  display:grid;
  grid-template-columns: 52px minmax(0,1fr);
  gap: 14px;
  align-items:center;
  padding: 12px 14px;
  border:1px solid var(--j50-line);
  border-radius: 16px;
  background:#fbfbfd;
}

.job50-dashboard-member__avatar{
  width:52px;
  height:52px;
}



/* Hero / identity / heading systems */
.job50-dashboard-v2__hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) 150px;
  gap:36px;
  align-items:start;
}

.job50-dashboard-v2__identity{
  display:grid;
  grid-template-columns:132px minmax(0,1fr);
  gap:22px;
  align-items:center;
}

.job50-dashboard-v2__avatar{
  width:92px;
  height:92px;
  overflow:hidden;
  border-radius:999px;
}

.job50-dashboard-v2__copy{
  display:grid;
  align-content:center;
  gap:5px;
}

.job50-dashboard-v2__title{
  margin:0;
  display:flex;
  align-items:baseline;
  gap:14px;
  line-height:.9;
  flex-wrap:wrap;
  font-family:"Google Sans Flex", "Google Sans", Inter, system-ui, sans-serif;
}

.job50-dashboard-v2__title-light{
  font-family:"Google Sans Flex", "Google Sans", Inter, system-ui, sans-serif;
  font-size:clamp(2.45rem, 4.35vw, 3.7rem);
  font-weight:300;
  font-variation-settings:"wght" 300;
  letter-spacing:-.045em;
}

.job50-dashboard-v2__title-strong{
  font-family:"Google Sans Flex", "Google Sans", Inter, system-ui, sans-serif;
  font-size:clamp(2.45rem, 4.35vw, 3.7rem);
  font-weight:700;
  letter-spacing:-.045em;
}

.job50-dashboard-v2__email{
  margin:0;
  font-size:1.05rem;
  line-height:1.15;
  color:var(--j50-ink);
}

.job50-dashboard-v2__status-line{
  display:flex;
  flex-wrap:wrap;
  gap:6px 18px;
  margin-top:1px;
}

.job50-dashboard-v2__status{
  font-size:.98rem;
  line-height:1.2;
}

.job50-dashboard-v2__status--role{ color:var(--j50-red); }
.job50-dashboard-v2__status--ok{ color:var(--j50-green); }
.job50-dashboard-v2__status--warn{ color:var(--j50-orange); }

.job50-dashboard-v2__hero-side{
  display:flex;
  justify-content:flex-end;
}

.job50-dashboard-v2__logo-box{
  width:170px;
  height:145px;
  border:1px solid var(--j50-line);
  background:rgba(255,255,255,.72);
  border-radius:18px;
  padding:18px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.job50-dashboard-v2__logo-box .job50-dashboard-logo{
  object-fit:contain;
}

.job50-dashboard-v2__section-heading{
  margin-bottom:18px;
}

.job50-dashboard-v2__eyebrow{
  margin:0 0 4px;
  font-family:"Google Sans Flex", "Google Sans", Inter, system-ui, sans-serif;
  font-size:.86rem;
  text-transform:uppercase;
  letter-spacing:.01em;
  color:#8a888f;
  font-weight:700;
}

.job50-dashboard-v2__section-heading h2,
.job50-dashboard-panel__heading h2{
  margin:0;
  font-family:"Google Sans Flex", "Google Sans", Inter, system-ui, sans-serif;
  font-size:clamp(1.85rem, 2vw, 2.3rem);
  line-height:1;
  letter-spacing:-.03em;
  text-transform:uppercase;
  font-weight:800;
}

.job50-dashboard__hero--simple,
.job50-dashboard__identity,
.job50-dashboard__main{
  display:grid;
  gap:24px;
}

.job50-dashboard__identity{
  grid-template-columns:112px minmax(0,1fr);
  align-items:start;
}

.job50-dashboard__main--simple{
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
}

@media (max-width:1100px){
  .job50-dashboard-v2{
    width:min(100%, 96vw);
  }
}

@media (max-width:980px){
  .job50-dashboard-v2__hero,
  .job50-dashboard-v2__actions-grid,
  .job50-dashboard-v2__bottom-grid,
  .job50-dashboard-v2__extras,
  .job50-dashboard-panel--join,
  .job50-dashboard-v2__identity{
    grid-template-columns:1fr;
  }

  .job50-dashboard-v2__hero-side{
    justify-content:flex-start;
  }

  .job50-dashboard-v2__logo-box{
    width:140px;
    height:120px;
  }

  .job50-dashboard__main--simple{
    grid-template-columns:1fr;
  }
}

@media (max-width:781px){
  .job50-dashboard__identity{
    grid-template-columns:1fr;
  }
}


/* Shared recruiter offer cards ------------------------------------------------ */
:root{
  --job50-text-muted:#666666;
  --job50-card-width:360px;
  --job50-helper-bubble-bg:#ffffff;
  --job50-helper-bubble-border:#e6e6e6;
  --job50-helper-bubble-shadow:0 8px 20px rgba(0,0,0,.08);
  --job50-helper-bubble-text:#333333;
}

.job50-org-job-cards,
.job50-match-offer-list--cards{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(var(--job50-card-width), var(--job50-card-width)));
  justify-content:center;
  gap:24px;
  isolation:isolate;
}

.job50-shared-offer-card, .job50-org-job-card, .job50-match-offer-card {
  position: relative;
  z-index:1;
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: min(100%, var(--job50-card-width));
  max-width: var(--job50-card-width);
  min-height: 232px;
  margin: 0 auto;
  padding: 20px 22px;
  border: 1px solid #dedede;
  border-radius: 8px;
  background: #FFF;
  box-shadow: 0 8px 16px rgba(0, 0, 0, .03);
  transition: border-color .22s ease, box-shadow .22s ease;
  overflow: visible;
}

/* Card stacking: the hovered/focused card and its grid item must sit above siblings. */
.job50-org-job-cards > *,
.job50-match-offer-list--cards > *{
  position:relative;
  z-index:1;
}

.job50-org-job-cards > .job50-shared-offer-card,
.job50-org-job-cards > .job50-org-job-card,
.job50-match-offer-list--cards > .job50-shared-offer-card,
.job50-match-offer-list--cards > .job50-match-offer-card{
  z-index:1;
  opacity:0;
  animation:job50ParallelSoftIn 640ms cubic-bezier(.22, .74, .18, 1) forwards;
}

.job50-org-job-cards > .job50-shared-offer-card:hover,
.job50-org-job-cards > .job50-shared-offer-card:focus-within,
.job50-org-job-cards > .job50-org-job-card:hover,
.job50-org-job-cards > .job50-org-job-card:focus-within,
.job50-match-offer-list--cards > .job50-shared-offer-card:hover,
.job50-match-offer-list--cards > .job50-shared-offer-card:focus-within,
.job50-match-offer-list--cards > .job50-match-offer-card:hover,
.job50-match-offer-list--cards > .job50-match-offer-card:focus-within{
  z-index:200;
  border-color:#cfcfcf;
  box-shadow:0 10px 18px rgba(0,0,0,.06);
}

.job50-org-job-cards > *:nth-child(1),
.job50-match-offer-list--cards > *:nth-child(1){ animation-delay:140ms; }
.job50-org-job-cards > *:nth-child(2),
.job50-match-offer-list--cards > *:nth-child(2){ animation-delay:220ms; }
.job50-org-job-cards > *:nth-child(3),
.job50-match-offer-list--cards > *:nth-child(3){ animation-delay:300ms; }
.job50-org-job-cards > *:nth-child(4),
.job50-match-offer-list--cards > *:nth-child(4){ animation-delay:380ms; }
.job50-org-job-cards > *:nth-child(5),
.job50-match-offer-list--cards > *:nth-child(5){ animation-delay:460ms; }
.job50-org-job-cards > *:nth-child(n+6),
.job50-match-offer-list--cards > *:nth-child(n+6){ animation-delay:540ms; }

@keyframes job50ParallelSoftIn {
  0% { opacity: 0; transform: translate3d(0, 18px, 0); }
  100% { opacity: 1; transform: translate3d(0, 0, 0); }
}

@media (prefers-reduced-motion: reduce){
  .job50-org-job-cards > .job50-shared-offer-card,
  .job50-org-job-cards > .job50-org-job-card,
  .job50-match-offer-list--cards > .job50-shared-offer-card,
  .job50-match-offer-list--cards > .job50-match-offer-card{
    opacity:1;
    transform:none;
    animation:none;
  }
}

.job50-org-job-card__actions,
.job50-match-offer-card__actions,
.job50-org-job-card__metrics,
.job50-match-offer-card__metrics,
.job50-org-job-card__header,
.job50-match-offer-card__header{
  overflow:visible;
}

.job50-org-job-card__status,
.job50-match-offer-card__status{
  position:absolute;
  top:22px;
  right:22px;
  z-index:3;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  overflow:visible;
}

.job50-org-job-card__status-dot,
.job50-match-offer-card__status-dot{
  display:inline-flex;
  width:18px;
  height:18px;
  border-radius:9999px;
  background:#22b573;
}

.job50-org-job-card__status-dot--pending,
.job50-match-offer-card__status-dot--pending{ background:#f59e0b; }
.job50-org-job-card__status-dot--rejected,
.job50-org-job-card__status-dot--draft,
.job50-org-job-card__status-dot--neutral,
.job50-match-offer-card__status-dot--rejected,
.job50-match-offer-card__status-dot--draft,
.job50-match-offer-card__status-dot--neutral{ background:#d1d5db; }
.job50-org-job-card__status-dot--approved,
.job50-match-offer-card__status-dot--approved{ background:#22b573; }
.job50-org-job-card__status-dot--unavailable,
.job50-match-offer-card__status-dot--unavailable{
  background:var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24));
  box-shadow:0 0 0 5px rgba(237,28,36,.08);
}

.job50-org-job-card--application-unavailable,
.job50-match-offer-card--application-unavailable{
  border-color:rgba(237,28,36,.20);
  background:
    radial-gradient(circle at 100% 0%, rgba(237,28,36,.055) 0 76px, transparent 77px),
    linear-gradient(180deg, #fff 0%, #fff 66%, #fff8f8 100%);
}

.job50-match-offer-card__notice{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  margin:-4px 0 0;
  padding:10px 12px 10px 13px;
  border:1px solid rgba(237,28,36,.14);
  border-left:4px solid var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24));
  border-radius:14px;
  background:
    radial-gradient(circle at 100% 0%, rgba(237,28,36,.08) 0 54px, transparent 55px),
    linear-gradient(135deg, rgba(255,255,255,.99) 0%, rgba(255,248,248,.98) 100%);
  box-shadow:0 10px 22px rgba(237,28,36,.055);
  color:#333;
  overflow:hidden;
}

.job50-match-offer-card__notice-icon,
.job50-match-offer-card__notice-icon.material-symbols-outlined{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  margin-top:0;
  color:var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24));
  font-size:22px;
  line-height:1;
  font-variation-settings:'FILL' 0,'wght' 500,'GRAD' 0,'opsz' 24;
}

.job50-match-offer-card__notice-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:2px;
  min-width:0;
  min-height:24px;
}

.job50-match-offer-card__notice-title{
  font-family:var(--j50-font-display, "Google Sans Flex", Inter, system-ui, sans-serif) !important;
  font-weight:700;
  font-size:12px;
  line-height:1.12;
  text-transform:uppercase;
  letter-spacing:.01em;
  color:#333333;
}

.job50-match-offer-card__notice-text{
  font-size:12px;
  line-height:1.28;
  font-weight:500;
  color:#666666;
}

.job50-org-job-card__header,
.job50-match-offer-card__header{
  display:grid;
  gap:12px;
  align-items:start;
}

.job50-org-job-card__icon,
.job50-org-job-card__icon.material-symbols-outlined,
.job50-match-offer-card__icon,
.job50-match-offer-card__icon.material-symbols-outlined{
  color:var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24));
  font-size:40px;
  line-height:1;
}

.job50-org-job-card__header-main, .job50-match-offer-card__header-main {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding-right: 36px;
  padding-left: 6px;
}

.job50-org-job-card__title,
.job50-match-offer-card__title{
  margin:0;
  font-family:var(--j50-font-display, "Google Sans Flex", Inter, system-ui, sans-serif) !important;
  font-size:24px;
  font-weight:700;
  line-height:.95;
  color:#333333;
  word-break:break-word;
  max-width:calc(100% - 4px);
}

.job50-org-job-card__region,
.job50-org-job-card__meta,
.job50-org-job-card__by,
.job50-org-job-card__updated,
.job50-match-offer-card__region,
.job50-match-offer-card__meta,
.job50-match-offer-card__by,
.job50-match-offer-card__updated{
  color:var(--job50-text-muted);
  font-size:14px;
  line-height:1.2;
}

.job50-org-job-card__region,
.job50-org-job-card__meta,
.job50-match-offer-card__region,
.job50-match-offer-card__meta{
  margin:0;
}


.job50-match-offer-card__region,
.job50-match-offer-card__updated,
.job50-match-offer-card__by {
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.job50-match-offer-card__meta{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
}

.job50-match-offer-card__meta-icon,
.job50-match-offer-card__meta-icon.material-symbols-outlined{
  color:var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24));
  font-size:16px;
  line-height:1;
  font-variation-settings:'FILL' 0, 'wght' 500, 'GRAD' 0, 'opsz' 20;
}

.job50-match-offer-card__meta-text{
  min-width:0;
}

.job50-org-job-card__metrics,
.job50-match-offer-card__metrics{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
}

.job50-org-job-card__metric,
.job50-match-offer-card__metric{
  display:inline-flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  border: solid 1px #e1e1e1;
  padding: 4px 8px 4px 16px;
  border-radius: 999em;
  background-color: #FFF;
  box-shadow: 0 4px 8px rgba(0, 0, 0, .03);
}

.job50-org-job-card__metric-label,
.job50-match-offer-card__metric-label{
  font-family:var(--j50-font-display, "Google Sans Flex", Inter, system-ui, sans-serif) !important;
  font-weight:700;
  font-size:14px;
  line-height:1;
  color:#333333;
}

.job50-org-job-card__metric-badge,
.job50-match-offer-card__metric-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  height:28px;
  padding:0 7px;
  border-radius:999px;
  background:var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24));
  color:#fff;
  font-family:var(--j50-font-display, "Google Sans Flex", Inter, system-ui, sans-serif) !important;
  font-weight:700;
  font-size:14px;
  line-height:1;
}

.job50-org-job-card__actions,
.job50-match-offer-card__actions{
  margin-top:auto;
  display:flex;
  justify-content:flex-end;
  gap:10px;
  min-height:24px;
}

.job50-org-job-card__action,
.job50-org-job-card__actions a,
.job50-org-job-card__actions button,
.job50-match-offer-card__action,
.job50-match-offer-card__actions a,
.job50-match-offer-card__actions button{
  display:inline-flex !important;
  transform:none !important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  align-items:center !important;
  justify-content:center !important;
  width:24px;
  height:24px;
  min-height:24px;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24)) !important;
  box-shadow:none !important;
  text-decoration:none !important;
}

.job50-org-job-card__action .material-symbols-outlined,
.job50-org-job-card__actions .material-symbols-outlined,
.job50-match-offer-card__action .material-symbols-outlined,
.job50-match-offer-card__actions .material-symbols-outlined{
  font-size:22px;
  line-height:1;
  transform:none !important;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-variation-settings:'FILL' 0,'wght' 450,'GRAD' 0,'opsz' 24;
}

.job50-org-job-card__action:hover,
.job50-org-job-card__action:focus-visible,
.job50-org-job-card__actions a:hover,
.job50-org-job-card__actions button:hover,
.job50-match-offer-card__action:hover,
.job50-match-offer-card__action:focus-visible{
  opacity:1;
  outline:none;
  cursor:pointer;
}

/* Shared Job50 tooltip — one real DOM label for every recruiter/seeker tooltip. */
.job50-tooltip{
  position:relative !important;
  overflow:visible !important;
  -webkit-tap-highlight-color:transparent;
}

.job50-tooltip:focus,
.job50-tooltip:focus-visible,
.job50-tooltip:active,
.job50-org-job-card__actions button:focus,
.job50-org-job-card__actions button:focus-visible,
.job50-org-job-card__actions button:active,
.job50-profile-editor__actions button:focus,
.job50-profile-editor__actions button:focus-visible,
.job50-profile-editor__actions button:active,
.job50-match-offer-card__actions button:focus,
.job50-match-offer-card__actions button:focus-visible,
.job50-match-offer-card__actions button:active{
  outline:none !important;
  box-shadow:none !important;
}

.job50-org-job-card__actions button::-moz-focus-inner,
.job50-profile-editor__actions button::-moz-focus-inner,
.job50-match-offer-card__actions button::-moz-focus-inner{
  border:0;
}

.job50-tooltip__label{
  position:absolute;
  left:-50vw;
  right:-50vw;
  top:calc(100% + 8px);
  display:block;
  width:max-content;
  max-width:calc(100vw - 32px);
  margin-inline:auto;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  white-space:nowrap;
  padding:6px 10px;
  border-radius:999px;
  background:var(--job50-helper-bubble-bg);
  border:1px solid var(--job50-helper-bubble-border);
  box-shadow:var(--job50-helper-bubble-shadow);
  font-family:var(--j50-font-body, Inter, system-ui, sans-serif);
  font-size:11px;
  line-height:1;
  font-weight:600;
  letter-spacing:0;
  text-transform:none;
  color:var(--job50-helper-bubble-text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  transition:opacity 0.16s ease, visibility 0.16s ease;
  z-index:1000;
}

.job50-tooltip__label::before{
  content:"";
  position:absolute;
  left:50%;
  top:-5px;
  width:8px;
  height:8px;
  margin-left:-4px;
  background:var(--job50-helper-bubble-bg);
  border-left:1px solid var(--job50-helper-bubble-border);
  border-top:1px solid var(--job50-helper-bubble-border);
  transform:rotate(45deg);
  pointer-events:none;
}

.job50-tooltip:hover > .job50-tooltip__label,
.job50-tooltip:focus-visible > .job50-tooltip__label,
.job50-tooltip:focus-within > .job50-tooltip__label{
  opacity:1;
  visibility:visible;
}

.job50-match-offer-card__actions .job50-tooltip__label,
.job50-org-job-card__actions .job50-tooltip__label{
  top:auto;
  bottom:calc(100% + 8px);
  z-index:5000;
}

.job50-match-offer-card__actions .job50-tooltip__label::before,
.job50-org-job-card__actions .job50-tooltip__label::before{
  top:auto;
  bottom:-5px;
  border-top:0;
  border-left:0;
  border-right:1px solid var(--job50-helper-bubble-border);
  border-bottom:1px solid var(--job50-helper-bubble-border);
}

.job50-match-offer-card__status{
  position:absolute !important;
}

@media (max-width: 781px){
  .job50-org-job-cards,
  .job50-match-offer-list--cards{
    grid-template-columns:1fr;
  }

  .job50-shared-offer-card,
  .job50-org-job-card,
  .job50-match-offer-card{
    width:min(100%, var(--job50-card-width));
    max-width:none;
  }
}

/* Shared parallel dashboard styles for recruiter + seeker bridges */
.job50-dashboard-parallel {
  --job50-parallel-intro-fade-duration: 680ms;
  --job50-parallel-intro-fade-delay: 80ms;
  --job50-parallel-subtitle-fade-duration: 520ms;
  --job50-parallel-subtitle-fade-delay: 430ms;
  --job50-parallel-action-slide-duration: 520ms;
  --job50-parallel-action-base-delay: 980ms;
  --job50-parallel-action-step-delay: 135ms;
  --job50-parallel-title-slot-height: clamp(47px, 6.86vw, 71px);
  --job50-parallel-subtitle-slot-height: 24px;
  --job50-parallel-stage-min-height: calc(var(--job50-parallel-logo-slot-height) + 12px + var(--job50-parallel-title-slot-height) + 16px + var(--job50-parallel-subtitle-slot-height) + 34px + 54px);
  --job50-parallel-action-1-delay: var(--job50-parallel-action-base-delay);
  --job50-parallel-action-2-delay: calc(var(--job50-parallel-action-base-delay) + var(--job50-parallel-action-step-delay));
  --job50-parallel-action-3-delay: calc(var(--job50-parallel-action-base-delay) + 270ms);
  --job50-parallel-action-4-delay: calc(var(--job50-parallel-action-base-delay) + 405ms);
  --job50-parallel-action-5-delay: calc(var(--job50-parallel-action-base-delay) + 540ms);
  --job50-parallel-action-6-delay: calc(var(--job50-parallel-action-base-delay) + 675ms);
  --job50-parallel-action-7-delay: calc(var(--job50-parallel-action-base-delay) + 810ms);
  --job50-parallel-action-8-delay: calc(var(--job50-parallel-action-base-delay) + 945ms);
  --job50-parallel-action-9-delay: calc(var(--job50-parallel-action-base-delay) + 1080ms);
  --job50-parallel-action-10-delay: calc(var(--job50-parallel-action-base-delay) + 1215ms);
  --job50-parallel-logo-slot-height: 76px;
  --job50-parallel-button-gap: 18px;
  --job50-parallel-shell-bg: transparent;
  --job50-parallel-button-bg: #ffffff;
  --job50-parallel-button-border: #d9d9d9;
  --job50-parallel-button-text: #2f2f2f;
  --job50-parallel-subtitle: #8f8f8f;
  width: 100%;
  min-height: calc(100svh - 132px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px 24px 48px;
  background: var(--job50-parallel-shell-bg);
}

.job50-dashboard-parallel__stage {
  width: 100%;
  max-width: 1040px;
  min-height: var(--job50-parallel-stage-min-height);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  opacity: 1;
  transform: none;
  animation: none;
  overflow-anchor: none;
}

.job50-dashboard-parallel__hero,
.job50-dashboard-parallel__actions {
  width: 100%;
}

.job50-dashboard-parallel__hero {
  min-height: calc(var(--job50-parallel-logo-slot-height) + 12px + var(--job50-parallel-title-slot-height) + 16px + var(--job50-parallel-subtitle-slot-height));
  display: grid;
  justify-items: center;
}

.job50-dashboard-parallel__intro {
  min-height: calc(var(--job50-parallel-logo-slot-height) + 12px + var(--job50-parallel-title-slot-height));
  display: inline-grid;
  align-content: start;
  justify-items: center;
  row-gap: 12px;
  max-width: 100%;
  opacity: 0;
  transform: none;
  animation: none;
}

.job50-dashboard-parallel__logo-wrap {
  width: 100%;
  min-height: var(--job50-parallel-logo-slot-height);
  display: flex;
  align-items: center;
  justify-content: center;
}

.job50-dashboard-parallel__logo-shell {
  opacity: 1;
  transform: none;
  animation: none;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: var(--job50-parallel-logo-slot-height);
  padding: 7px 14px 8px;
  border: 1px solid #dfdfdf;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.04);
}

.job50-dashboard-parallel--seeker .job50-dashboard-parallel__logo-shell {
  border: none;
  background: transparent;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0);
}

.job50-dashboard-parallel__logo {
  display: block;
  max-width: 146px;
  max-height: 42px;
  width: auto;
  height: auto;
  object-fit: contain;
}

.job50-dashboard-parallel__organization-name {
  display: block;
  max-width: 146px;
  font-family: var(--j50-font-display, "Google Sans Flex", Inter, system-ui, sans-serif);
  font-size: 10px;
  line-height: 1.05;
  font-weight: 700;
  font-variation-settings: "wght" 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #2f2f2f;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.job50-dashboard-parallel__title {
  min-height: var(--job50-parallel-title-slot-height);
  margin: 0;
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.18em;
  font-family: var(--j50-font-display, "Google Sans Flex", Inter, system-ui, sans-serif);
  font-size: clamp(3rem, 7vw, 72px);
  line-height: .98;
  letter-spacing: -0.05em;
  text-transform: none !important;
}

.job50-dashboard-parallel__hello,
.job50-dashboard-parallel__firstname {
  opacity: 1;
  transform: none;
  animation: none;
}

.job50-dashboard-parallel__hello {
  font-weight: 300;
  font-variation-settings: "wght" 120;
  text-transform: none !important;
}

.job50-dashboard-parallel__firstname {
  font-weight: 700;
  font-variation-settings: "wght" 700;
  text-transform: none !important;
}

.job50-dashboard-parallel__subtitle {
  min-height: var(--job50-parallel-subtitle-slot-height);
  margin: 16px 0 0;
  opacity: 0;
  transform: none;
  animation: none;
  font-family: var(--j50-font-display, "Google Sans Flex", Inter, system-ui, sans-serif);
  font-size: clamp(16px, 2vw, 19px);
  line-height: 1.25;
  font-weight: 700;
  font-variation-settings: "wght" 700;
  text-transform: uppercase;
  letter-spacing: -0.02em;
}

.job50-dashboard-parallel__actions {
  min-height: 54px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-content: flex-start;
  gap: var(--job50-parallel-button-gap);
  margin-top: 34px;
}

.job50-dashboard-parallel__action {
  position: relative;
  display: inline-flex;
  overflow: visible;
  opacity: 0;
  transform: translate3d(0, 8px, 0);
  min-width: 0;
  min-height: 54px;
  flex: 0 0 auto;
  justify-content: flex-start;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border: 1px solid var(--job50-parallel-button-border);
  border-radius: 8px;
  background: var(--job50-parallel-button-bg);
  color: var(--job50-parallel-button-text);
  font-family: var(--j50-font-display, "Google Sans Flex", Inter, system-ui, sans-serif);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.15;
  text-transform: none;
  text-decoration: none;
  box-shadow: none;
  animation: none;
}

.job50-dashboard-parallel .job50-dashboard-parallel__action.buttons {
  display: inline-flex !important;
  transform: translate3d(0, 8px, 0);
  align-items: center !important;
  justify-content: flex-start !important;
  flex-wrap: nowrap !important;
  vertical-align: middle;
  min-width: 0 !important;
  width: auto !important;
  flex: 0 0 auto !important;
  min-height: 54px !important;
  padding: 14px 18px !important;
  border: 1px solid var(--job50-parallel-button-border) !important;
  border-radius: 8px !important;
  background: var(--job50-parallel-button-bg) !important;
  color: var(--job50-parallel-button-text) !important;
  font-family: var(--j50-font-display, "Google Sans Flex", Inter, system-ui, sans-serif) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  text-transform: none !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition-property: border-color, box-shadow, color, background-color !important;
}

.job50-dashboard-parallel__actions > .job50-dashboard-parallel__action:nth-child(1),
.job50-dashboard-parallel__action.is-delay-1 {
  --job50-parallel-current-action-delay: var(--job50-parallel-action-1-delay);
}

.job50-dashboard-parallel__actions > .job50-dashboard-parallel__action:nth-child(2),
.job50-dashboard-parallel__action.is-delay-2 {
  --job50-parallel-current-action-delay: var(--job50-parallel-action-2-delay);
}

.job50-dashboard-parallel__actions > .job50-dashboard-parallel__action:nth-child(3),
.job50-dashboard-parallel__action.is-delay-3 {
  --job50-parallel-current-action-delay: var(--job50-parallel-action-3-delay);
}

.job50-dashboard-parallel__actions > .job50-dashboard-parallel__action:nth-child(4),
.job50-dashboard-parallel__action.is-delay-4 {
  --job50-parallel-current-action-delay: var(--job50-parallel-action-4-delay);
}

.job50-dashboard-parallel__actions > .job50-dashboard-parallel__action:nth-child(5),
.job50-dashboard-parallel__action.is-delay-5 {
  --job50-parallel-current-action-delay: var(--job50-parallel-action-5-delay);
}

.job50-dashboard-parallel__actions > .job50-dashboard-parallel__action:nth-child(6),
.job50-dashboard-parallel__action.is-delay-6 {
  --job50-parallel-current-action-delay: var(--job50-parallel-action-6-delay);
}

.job50-dashboard-parallel__actions > .job50-dashboard-parallel__action:nth-child(7),
.job50-dashboard-parallel__action.is-delay-7 {
  --job50-parallel-current-action-delay: var(--job50-parallel-action-7-delay);
}

.job50-dashboard-parallel__actions > .job50-dashboard-parallel__action:nth-child(8),
.job50-dashboard-parallel__action.is-delay-8 {
  --job50-parallel-current-action-delay: var(--job50-parallel-action-8-delay);
}

.job50-dashboard-parallel__actions > .job50-dashboard-parallel__action:nth-child(9),
.job50-dashboard-parallel__action.is-delay-9 {
  --job50-parallel-current-action-delay: var(--job50-parallel-action-9-delay);
}

.job50-dashboard-parallel__actions > .job50-dashboard-parallel__action:nth-child(10),
.job50-dashboard-parallel__action.is-delay-10 {
  --job50-parallel-current-action-delay: var(--job50-parallel-action-10-delay);
}

.job50-dashboard-parallel__action-icon {
  color: var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24));
  font-size: 22px;
  line-height: 1;
  flex: 0 0 auto;
}

.job50-dashboard-parallel__action.is-matches .job50-dashboard-parallel__action-icon {
  font-variation-settings:
    'FILL' 1,
    'wght' 700,
    'GRAD' 0,
    'opsz' 24;
  transform-origin: center;
  animation: job50ParallelMatchHeartbeat 1.8s ease-in-out infinite;
}

.job50-dashboard-parallel__action-label {
  display: inline-block;
  flex: 0 1 auto;
  min-width: 0;
  text-align: left;
}

.job50-dashboard-parallel__action-metrics {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  flex: 0 0 auto;
}

.job50-dashboard-parallel__action.is-priority {
  border-color: rgba(237, 28, 36, 0.18);
  box-shadow: 0 10px 24px rgba(237, 28, 36, 0.08);
}

.job50-dashboard-parallel__action-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  padding: 0 7px;
  border-radius: 999px;
  background: var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24));
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

@keyframes job50ParallelMatchHeartbeat {
  0%, 100% { opacity: 1; }
  48% { opacity: .78; }
}

.material-symbols-outlined {
  font-family: 'Material Symbols Outlined';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: 'liga';
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

.job50-dashboard-parallel__action:hover,
.job50-dashboard-parallel__action:focus-visible,
.job50-dashboard-parallel .job50-dashboard-parallel__action.buttons:hover,
.job50-dashboard-parallel .job50-dashboard-parallel__action.buttons:focus-visible {
  color: var(--job50-parallel-button-text) !important;
  border-color: #cfcfcf !important;
  box-shadow: 0 10px 18px rgba(0, 0, 0, 0.06) !important;
  transform: translate3d(0, 0, 0) !important;
}

.job50-dashboard-parallel__action.is-disabled {
  animation: none !important;
  opacity: 0 !important;
  transform: none !important;
  cursor: default;
  pointer-events: none;
  color: #9f9f9f;
  background: #f7f7f7;
}

.job50-dashboard-parallel--has-six-actions {
  --job50-parallel-stage-min-height: calc(var(--job50-parallel-logo-slot-height) + 12px + var(--job50-parallel-title-slot-height) + 16px + var(--job50-parallel-subtitle-slot-height) + 34px + 126px);
}

.job50-dashboard-parallel--has-six-actions .job50-dashboard-parallel__actions {
  min-height: 126px;
}

.job50-dashboard-parallel--no-logo {
  --job50-parallel-stage-min-height: calc(var(--job50-parallel-title-slot-height) + 16px + var(--job50-parallel-subtitle-slot-height) + 34px + 54px);
}

.job50-dashboard-parallel--no-logo.job50-dashboard-parallel--has-six-actions {
  --job50-parallel-stage-min-height: calc(var(--job50-parallel-title-slot-height) + 16px + var(--job50-parallel-subtitle-slot-height) + 34px + 126px);
}

.job50-dashboard-parallel--no-logo .job50-dashboard-parallel__hero {
  min-height: calc(var(--job50-parallel-title-slot-height) + 16px + var(--job50-parallel-subtitle-slot-height));
}

.job50-dashboard-parallel--no-logo .job50-dashboard-parallel__intro {
  min-height: var(--job50-parallel-title-slot-height);
}

.job50-dashboard-parallel--no-logo .job50-dashboard-parallel__logo-wrap {
  display: none;
}

@keyframes job50ParallelIntroFade {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes job50ParallelSubtitleFade {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes job50ParallelFadeSoft {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes job50ParallelActionSlide {
  0% { opacity: 0; transform: translate3d(0, 8px, 0); }
  100% { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* Start the dashboard entrance only after the bridge JS marks the layout as stable.
   This keeps the centered block invisible but present in the layout while fonts/images settle. */
.job50-dashboard-parallel.is-job50-ready .job50-dashboard-parallel__intro {
  animation: job50ParallelIntroFade var(--job50-parallel-intro-fade-duration) ease-out var(--job50-parallel-intro-fade-delay) both;
}

.job50-dashboard-parallel.is-job50-ready .job50-dashboard-parallel__subtitle {
  animation: job50ParallelSubtitleFade var(--job50-parallel-subtitle-fade-duration) ease-out var(--job50-parallel-subtitle-fade-delay) both;
}

.job50-dashboard-parallel.is-job50-ready .job50-dashboard-parallel__actions > .job50-dashboard-parallel__action {
  animation-name: job50ParallelActionSlide;
  animation-duration: var(--job50-parallel-action-slide-duration);
  animation-timing-function: cubic-bezier(.22, .74, .18, 1);
  animation-fill-mode: both;
  animation-delay: var(--job50-parallel-current-action-delay, var(--job50-parallel-action-base-delay));
}

@media (max-width: 781px) {
  .job50-dashboard-parallel {
    --job50-parallel-logo-slot-height: 70px;
    min-height: calc(100svh - 112px);
    padding: 20px 18px 40px;
  }

  .job50-dashboard-parallel__stage {
    min-height: auto;
    justify-content: center;
    margin-top: 0;
  }

  .job50-dashboard-parallel__intro {
    row-gap: 10px;
  }

  .job50-dashboard-parallel__logo-wrap {
    justify-content: center;
    padding-left: 0;
  }

  .job50-dashboard-parallel__logo-shell {
    padding: 7px 12px;
  }

  .job50-dashboard-parallel__logo {
    max-width: 130px;
    max-height: 36px;
  }

  .job50-dashboard-parallel__organization-name {
    max-width: 130px;
    font-size: 9px;
  }

  .job50-dashboard-parallel__actions {
    flex-direction: column;
    gap: 12px;
    margin-top: 28px;
  }

  .job50-dashboard-parallel__action,
  .job50-dashboard-parallel .job50-dashboard-parallel__action.buttons {
    min-width: min(100%, 320px) !important;
    width: 100% !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .job50-dashboard-parallel__intro,
  .job50-dashboard-parallel__subtitle,
  .job50-dashboard-parallel__action {
    opacity: 1;
    transform: none;
    animation: none !important;
  }
}



/* ==========================================================
   Seeker jobs page wrapper — mirrors .job50-recruiter-jobs-page
   (recruiter rules live in job50-members-bridge/dashboard.css;
   seeker rules live here so both are centralised in job50-core)
   ========================================================== */

.job50-seeker-jobs-page {
  max-width: 1240px;
  padding-bottom: clamp(48px, 8vh, 96px);
}

.job50-seeker-jobs-page #job50-card-seeker-job-searches {
  width: 100%;
}

/* Transparent shell — no card chrome, same as recruiter */
#job50-card-seeker-job-searches.job50-seeker-job-card-shell {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}

/* "Add new job search" button row above the card grid */
.job50-job-searches-list-header {
  position: relative;
  z-index: 10050;
  display: flex;
  justify-content: flex-end;
  margin-bottom: 16px;
  pointer-events: none;
}

.job50-job-searches-list-header .job50-fab {
  pointer-events: auto;
}
/* ========================================================== */

/* Status dot as a button (deactivate trigger on active seeker cards) */
.job50-match-offer-card__status--btn {
  appearance: none;
  -webkit-appearance: none;
  background: transparent;
  border: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
  line-height: 0;
}
.job50-match-offer-card__status--btn:focus-visible {
  outline: 2px solid var(--j50-red, #e03131);
  outline-offset: 3px;
  border-radius: 9999px;
}

/* ── Confirmation modals now use the shared job50-modal shell ─────── */
.job50-confirm-modal__box {
  width: min(460px, calc(100vw - 40px));
}

.job50-confirm-modal__message {
  margin: 0;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--wp--preset--color--contrast, #222);
}

.job50-confirm-modal__actions {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  flex-wrap: wrap;
  margin-top: 24px;
}
/* ================================================================== */

/* ── Fix: header padding-right so status dot never overlaps title ─────── */
.job50-match-offer-card__header {
  padding-right: 28px;
}

/* ── FAB button (64 px red circle + Material "add" icon) ─────────────── */
.job50-fab {
  position: absolute !important;
  z-index: 10060;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border-radius: 9999px;
  background: var(--j50-red, #e03131);
  color: #fff;
  text-decoration: none;
  box-shadow: 0 4px 16px rgba(224,49,49,.30);
  transition: background .22s ease, box-shadow .22s ease;
  position: relative;
  overflow: visible;
  flex-shrink: 0;
  -webkit-tap-highlight-color: transparent;
}
.job50-fab .material-symbols-outlined {
  font-size: 32px;
  transform: none !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-variation-settings: 'FILL' 0, 'wght' 350, 'GRAD' 0, 'opsz' 32;
  color: #fff;
}
.job50-fab:hover,
.job50-fab:focus-visible {
  outline: none;
  color: #fff;
}

/* ── Breadcrumb — see job50-core/assets/shared-wizard.css (single source) ─── */

/* ================================================================== */


/**
 * ── Migrated from style-front.css (Pass 1) ─────────────────────────────────
 * Dashboard layout, cards, hero, badges, meta-list, responsive.
 * Previously declared in the child theme — moved here so core owns its CSS.
 */
/* ── 23. Dashboard ───────────────────────────────────────── */
.job50-dashboard-shell,
.job50-dashboard { display: grid; gap: 24px; }

.job50-dashboard { margin: 32px auto 64px; }

.job50-dashboard .job50-dashboard-card {
	max-width: none;
	margin: 0;
	padding: 28px;
	box-shadow: var(--j50-shadow-card);
}

/* En-tête carte */
.job50-dashboard-card__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 20px;
}
.job50-dashboard-card__header h3 { margin: 0; }
.job50-dashboard-card__header a {
	font-size: 14px;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-1);
}

/* Overline */
.job50-overline {
	margin: 0 0 6px;
	font-family: var(--j50-font-display);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--j50-gray-600);
}

/* Hero */
#job50-card-hero { overflow: hidden; position: relative; }
.job50-dashboard__hero {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(280px, .85fr);
	gap: 24px;
	align-items: stretch;
}
.job50-dashboard__hero-main,
.job50-dashboard__hero-side { position: relative; z-index: 1; }

.job50-dashboard__identity {
	display: grid;
	grid-template-columns: 112px minmax(0, 1fr);
	gap: 24px;
}

/* Avatar */
.job50-avatar {
	position: relative;
	overflow: hidden;
	background: var(--wp--preset--color--base);
	border: solid 1px #ececec;
}
.job50-avatar--circle { border-radius: var(--j50-radius-pill); }
.job50-avatar--xl     { width: 112px; height: 112px; }
.job50-dashboard-avatar { width: 100%; height: 100%; object-fit: cover; }

/* Badges */
.job50-dashboard-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.job50-badge {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 0 12px;
	border-radius: var(--j50-radius-pill);
	font-size: 13px;
	font-weight: 700;
	background-color: var(--j50-gray-100);
	color: var(--wp--preset--color--contrast);
}
.job50-badge--role    { background-color: var(--j50-color-role-bg); color: var(--wp--preset--color--accent-1); }
.job50-badge--success { background-color: var(--j50-color-success-bg); color: var(--j50-color-success-text); }
.job50-badge--warning { background-color: var(--j50-color-warning-bg); color: var(--j50-color-warning-text); }

/* Titre / méta */
.job50-dashboard-title {
	margin: 16px 0 8px;
	font-size: clamp(2rem, 3vw, 3rem);
	line-height: 1;
	text-transform: none;
}
.job50-dashboard-subtitle,
.job50-dashboard-meta,
.job50-dashboard-text { color: var(--j50-gray-800); }
.job50-dashboard-subtitle { margin: 0 0 18px; font-size: 1rem; }

/* Actions */
.job50-dashboard-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.job50-dashboard-actions .buttons { display: inline-flex; align-items: center; justify-content: center; }

/* Côté hero */
.job50-dashboard__hero-side { display: flex; flex-direction: column; align-items: flex-end; }
.job50-logo {
	display: grid;
	place-items: center;
	background-color: var(--wp--preset--color--base);
	border: solid 1px #ececec;
}
.job50-logo--org { width: 96px; height: 96px; border-radius: 24px; padding: 14px; }
.job50-dashboard-logo { max-width: 100%; max-height: 100%; object-fit: contain; }
.job50-dashboard__hero-side-copy h3 { margin: 0 0 8px; font-size: 1.25rem; }
.job50-dashboard__hero-side-copy p  { margin: 0; }

/* Actions rapides */
#job50-card-quick-actions h3 { margin: 0; }
.job50-dashboard-quick-actions {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}
.job50-action-tile {
	display: grid;
	gap: 8px;
	padding: 20px;
	border-radius: var(--j50-radius-xl);
	border: solid 1px #ececec;
	background: var(--wp--preset--color--base);
	text-decoration: none;
	box-shadow: var(--j50-shadow-card);
	transition: border-color .25s ease, box-shadow .25s ease;
}
.job50-action-tile:hover {
	border-color: #d6d6d6;
	box-shadow: 0 14px 28px rgba(0, 0, 0, .07);
}
.job50-action-tile strong {
	font-family: var(--j50-font-display);
	font-size: 1rem;
	text-transform: uppercase;
}
.job50-action-tile span:last-child { font-size: 14px; color: var(--j50-gray-700); }
.job50-action-tile__eyebrow {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-1);
}
.job50-action-tile.is-disabled { opacity: .82; cursor: default; pointer-events: none; }

/* Grille principale */
.job50-dashboard__main {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(320px, .9fr);
	gap: 24px;
	align-items: start;
}
.job50-dashboard__stack { display: grid; gap: 24px; font-size: 16px; }

/* Liste méta */
.job50-dashboard-meta-list { display: grid; gap: 12px; margin: 0; }
.job50-dashboard-meta-list > div {
	display: grid;
	grid-template-columns: minmax(120px, 150px) minmax(0, 1fr);
	gap: 12px;
	padding-bottom: 12px;
	border-bottom: solid 1px var(--j50-gray-200);
}
.job50-dashboard-meta-list dt {
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--j50-gray-600);
}
.job50-dashboard-meta-list dd { margin: 0; word-break: break-word; }

.job50-dashboard-list,
.job50-dashboard-steps { display: grid; gap: 10px; margin: 0; padding-left: 18px; }

/* Alertes */
.job50-dashboard-alert { margin-top: 18px; padding: 14px 16px; border-radius: var(--j50-radius-lg); }
.job50-dashboard-alert--warning { background-color: var(--j50-color-warning-bg); color: var(--j50-color-warning-text); }
.job50-dashboard-alert--success { background-color: var(--j50-color-success-bg); color: var(--j50-color-success-text); }


/* Empty states shared by recruiter/seeker dashboard pages. */
.job50-empty-state {
	box-sizing: border-box;
	display: grid;
	justify-items: center;
	gap: 18px;
	width: min(100%, 720px);
	margin: 18px auto 0;
	padding: 28px 24px;
	border: 1px solid var(--j50-gray-300, #dedede);
	border-radius: var(--j50-radius-lg, 18px);
	background: var(--wp--preset--color--base, #fff);
	box-shadow: var(--j50-shadow-card, 0 8px 20px rgba(0, 0, 0, .04));
	text-align: center;
	color: var(--j50-gray-900, #2a2a2a);
}

.job50-empty-state__message {
	max-width: 560px;
	margin: 0;
	font-family: var(--j50-font-display, "Google Sans Flex", Inter, system-ui, sans-serif);
	font-size: clamp(20px, 2vw, 28px);
	font-weight: 700;
	line-height: 1.24;
	letter-spacing: -0.02em;
	color: var(--j50-gray-900, #2a2a2a);
}

.job50-empty-state__action.buttons,
.job50-empty-state .buttons.job50-empty-state__action {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	min-width: 0;
	margin: 0;
	padding: 12px 22px;
	border-radius: var(--j50-radius-pill, 9999px);
	font-size: 14px;
	line-height: 1.15;
	text-decoration: none;
	white-space: nowrap;
}

@media (max-width: 640px) {
	.job50-empty-state {
		padding: 24px 18px;
	}

	.job50-empty-state__message {
		font-size: 20px;
	}
}

/* Liste membres */
.job50-dashboard-members { display: grid; gap: 12px; }
.job50-dashboard-member {
	padding: 16px 18px;
	border-radius: var(--j50-radius-lg);
	border: solid 1px #ececec;
	background: var(--wp--preset--color--base);
}
.job50-dashboard-member__copy p { margin: 6px 0 0; font-size: 14px; color: var(--j50-gray-700); }

/* Tableau shortcode */
.job50-dashboard-shortcode-wrap table { width: 100%; border-collapse: collapse; }
.job50-dashboard-shortcode-wrap th,
.job50-dashboard-shortcode-wrap td {
	padding: 14px 12px;
	border-bottom: solid 1px var(--j50-gray-200);
	text-align: left;
	vertical-align: middle;
}
.job50-dashboard-shortcode-wrap .buttons,
.job50-dashboard-shortcode-wrap button { margin-right: 8px; }
.job50-dashboard-shortcode-wrap .job-wizard-panel,
.job50-dashboard-shortcode-wrap .job50-dashboard-card { background: transparent; }

/* Responsive dashboard */
@media screen and (max-width: 1080px) {
	.job50-dashboard__main,
	.job50-dashboard__hero { grid-template-columns: 1fr; }
}
@media screen and (max-width: 781px) {
	.job50-toast-container             { top: 16px; right: 16px; left: 16px; }
	.job50-dashboard .job50-dashboard-card { padding: 22px; border-radius: var(--j50-radius-xl); }
	.job50-dashboard__identity         { grid-template-columns: 1fr; }
	.job50-dashboard-quick-actions     { grid-template-columns: 1fr; }
	.job50-dashboard-meta-list > div   { grid-template-columns: 1fr; gap: 6px; }
	.job50-dashboard-actions           { flex-direction: column; }
	.job50-dashboard-actions .buttons  { width: 100%; }
}



/* Shared matching recalculation notice for parallel dashboards */
.job50-dashboard-parallel__matching-status {
  opacity: 0;
  width: min(100%, 520px);
  margin: 22px auto 0;
  padding: 14px 18px;
  display: flex;
  align-items: flex-start;
  gap: 13px;
  border: 1px solid rgba(217, 217, 217, .94);
  border-radius: 12px;
  background: #fff;
  color: var(--job50-parallel-button-text, #2f2f2f);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .045);
  text-align: left;
  animation: job50ParallelFadeSoft 420ms cubic-bezier(.2, .72, .19, 1) forwards;
  animation-delay: calc(var(--job50-parallel-action-base-delay) + 120ms);
}

.job50-dashboard-parallel__matching-spinner {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  margin-top: 2px;
  border-radius: 999px;
  border: 2px solid rgba(237, 28, 36, .18);
  border-top-color: var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24));
  animation: job50DashboardMatchingSpin .85s linear infinite;
}

.job50-dashboard-parallel__matching-copy {
  min-width: 0;
}

.job50-dashboard-parallel__matching-title {
  margin: 0 0 3px;
  font-family: var(--j50-font-display, "Google Sans Flex", Inter, system-ui, sans-serif);
  font-size: 14px;
  line-height: 1.2;
  font-weight: 700;
  color: var(--job50-parallel-button-text, #2f2f2f);
}

.job50-dashboard-parallel__matching-message {
  margin: 0;
  font-size: 13px;
  line-height: 1.42;
  color: #67656f;
}

.job50-dashboard-parallel__matching-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}

.job50-dashboard-parallel__matching-actions [hidden] {
  display: none !important;
}

.job50-dashboard-parallel__matching-status.is-ready .job50-dashboard-parallel__matching-spinner,
.job50-dashboard-parallel__matching-status.is-empty .job50-dashboard-parallel__matching-spinner,
.job50-dashboard-parallel__matching-status.is-timeout .job50-dashboard-parallel__matching-spinner,
.job50-dashboard-parallel__matching-status.is-error .job50-dashboard-parallel__matching-spinner {
  animation: none;
  border-color: rgba(237, 28, 36, .22);
  border-top-color: rgba(237, 28, 36, .22);
  background: radial-gradient(circle, var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24)) 0 4px, transparent 5px);
}

.job50-dashboard-parallel__matching-status .buttons {
  min-height: 38px;
  padding: 9px 15px;
  border-radius: 999px;
  font-size: 13px;
  text-decoration: none;
}

@keyframes job50DashboardMatchingSpin {
  to { transform: rotate(360deg); }
}

@media (max-width: 781px) {
  .job50-dashboard-parallel__matching-status {
    width: min(100%, 340px);
    margin-top: 18px;
  }
}


/* Shared empty states for dashboards, matching and application pages */
.job50-empty-state{
  width:min(620px, calc(100% - 32px));
  margin:48px auto 0;
  padding:30px 34px;
  border:1px solid rgba(222,222,222,.95);
  border-radius:24px;
  background:rgba(255,255,255,.92);
  box-shadow:0 18px 48px rgba(0,0,0,.06);
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:20px;
  align-items:center;
  text-align:left;
}

.job50-empty-state__icon{
  width:64px;
  height:64px;
  border-radius:999px;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  padding:0;
  color:#fff;
  background:var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24));
  border:1px solid var(--wp--preset--color--accent-1, var(--j50-red, #ed1c24));
  font-family:'Material Symbols Outlined';
  font-size:32px;
  line-height:1;
  text-align:center;
  vertical-align:middle;
  font-variation-settings:'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 32;
}
.job50-empty-state__body{
  display:grid;
  gap:10px;
}

.job50-empty-state__title{
  margin:0;
  font-family:"Google Sans Flex", "Google Sans", Inter, system-ui, sans-serif;
  font-size:clamp(1.35rem, 2vw, 1.85rem);
  line-height:1.08;
  color:var(--j50-ink, #3a393d);
  text-transform:none;
}

.job50-empty-state__message{
  margin:0;
  max-width:48ch;
  color:var(--j50-muted, #67656f);
  font-size:15px;
  line-height:1.5;
}

.job50-empty-state__action{
  justify-self:start;
  margin-top:8px;
  text-decoration:none;
}

.job50-empty-state a.buttons.job50-empty-state__action,
.job50-empty-state .buttons.job50-empty-state__action{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto;
  height:auto;
  min-width:0;
  min-height:0;
  padding:12px 22px;
  border-radius:999px;
  background:var(--j50-red, #ed1c24);
  background-image:none;
  color:#fff !important;
  font-size:14px;
  font-weight:700;
  line-height:1.15;
  overflow:visible;
  text-decoration:none;
  text-transform:uppercase;
  white-space:nowrap;
}

.job50-empty-state--centered{
  text-align:center;
  grid-template-columns:1fr;
  justify-items:center;
}

.job50-empty-state--centered .job50-empty-state__message{
  margin-inline:auto;
}

.job50-empty-state--centered .job50-empty-state__action{
  justify-self:center;
}

@media (max-width: 640px){
  .job50-empty-state{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
    padding:26px 22px;
  }

  .job50-empty-state__action{
    justify-self:center;
  }
}

/* Shared offer-card description and PDF link ----------------------------- */
.job50-match-offer-card__description-wrap {
  display: grid;
  gap: 10px;
  margin: 2px 0 0;
}

.job50-match-offer-card__description-wrap.job50-match-sidebar-section--description {
  display: grid;
  gap: 8px;
}

.job50-match-offer-card__description,
.job50-match-offer-card__description.job50-match-sidebar-description {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #333333;
}

.job50-match-offer-card__pdf-link {
  margin-top: 2px;
}

.job50-seeker-application-card .job50-match-offer-card__metrics {
  margin-top: 0;
}

/* Recruiter job ads + match summary: remove the intrusive add-job FAB on mobile.
   The dedicated header row contains only that action, so hiding the row also
   avoids leaving an empty 16px gap. Archive pages remain unchanged. */
@media (max-width: 781px) {
  .job50-recruiter-jobs-page:not(.job50-recruiter-jobs-page--archive) .job50-job-searches-list-header {
    display: none !important;
  }
}
