.rbp-portal-screen {
  --rbp-ink: var(--ink, #102321);
  --rbp-soft: var(--ink-soft, #37514e);
  --rbp-teal: var(--teal, #08756d);
  --rbp-deep: var(--teal-950, #042e2c);
  --rbp-gold: var(--gold, #d8b665);
  --rbp-mist: var(--mist, #edf5f2);
  --rbp-line: var(--line, rgba(16, 35, 33, .13));
  --rbp-radius: 22px;
}

.rbp-container { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.rbp-portal-screen .content-page { max-width: none; padding-top: 160px; }
.rbp-portal-screen .entry-content { color: var(--rbp-ink); }
.rbp-portal-screen .entry-content > * { margin-block: 0; }
.rbp-kicker { margin: 0 0 12px; color: var(--rbp-teal); font-size: .75rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.rbp-button { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0 23px; color: #fff; background: var(--rbp-teal); border: 1px solid var(--rbp-teal); border-radius: 999px; font-weight: 700; cursor: pointer; }
.rbp-button:hover, .rbp-button:focus-visible { color: #fff; background: var(--rbp-deep); }
.rbp-button-secondary { color: var(--rbp-teal); background: transparent; }
.rbp-button-secondary:hover, .rbp-button-secondary:focus-visible { color: #fff; }
.rbp-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.rbp-link-button { padding: 0; color: var(--rbp-teal); background: transparent; border: 0; font: inherit; font-weight: 700; cursor: pointer; }

.rbp-jobs-hero { padding: 190px 0 80px; color: #fff; background: linear-gradient(135deg, var(--rbp-deep), #08756d); }
.rbp-jobs-hero .rbp-kicker { color: var(--rbp-gold); }
.rbp-jobs-hero h1 { max-width: 850px; font-size: clamp(3rem, 7vw, 6rem); }
.rbp-jobs-hero p:last-child { max-width: 630px; margin-top: 22px; color: #c7dbd8; font-size: 1.15rem; }
.rbp-jobs-layout { display: grid; grid-template-columns: minmax(250px, .33fr) minmax(0, 1fr); gap: 52px; padding-block: 72px 110px; }
.rbp-filters { position: sticky; top: 110px; align-self: start; padding: 25px; background: #fff; border: 1px solid var(--rbp-line); border-radius: var(--rbp-radius); box-shadow: 0 18px 50px rgba(5, 53, 49, .08); }
.rbp-filters h2 { margin-bottom: 20px; font-size: 1.35rem; }
.rbp-filters label, .rbp-form label { display: grid; gap: 7px; margin-bottom: 16px; color: var(--rbp-ink); font-size: .82rem; font-weight: 700; }
.rbp-filters input, .rbp-filters select, .rbp-form input, .rbp-form select, .rbp-form textarea { width: 100%; min-height: 48px; padding: 11px 13px; color: var(--rbp-ink); background: #f8faf9; border: 1px solid var(--rbp-line); border-radius: 10px; font: inherit; }
.rbp-filters input:focus, .rbp-filters select:focus, .rbp-form input:focus, .rbp-form select:focus, .rbp-form textarea:focus { border-color: var(--rbp-teal); outline: 3px solid rgba(8, 117, 109, .13); }
.rbp-filters .rbp-button { width: 100%; }
.rbp-clear { display: block; margin-top: 13px; color: var(--rbp-teal); text-align: center; font-weight: 700; }
.rbp-results-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 22px; }
.rbp-results-heading h2 { font-size: 1.55rem; }
.rbp-job-list { display: grid; gap: 18px; }
.rbp-job-card { display: grid; grid-template-columns: 1fr auto; gap: 28px; padding: 28px; background: #fff; border: 1px solid var(--rbp-line); border-radius: var(--rbp-radius); transition: border-color .2s, transform .2s, box-shadow .2s; }
.rbp-job-card:hover { border-color: rgba(8, 117, 109, .45); transform: translateY(-2px); box-shadow: 0 18px 50px rgba(5, 53, 49, .08); }
.rbp-job-card h2, .rbp-job-card h3 { margin: 0 0 10px; font-size: clamp(1.35rem, 2.5vw, 1.8rem); }
.rbp-job-card p:not(.rbp-kicker) { margin-bottom: 13px; color: var(--rbp-soft); }
.rbp-job-card-action { display: flex; flex-direction: column; gap: 20px; align-items: flex-end; justify-content: space-between; }
.rbp-job-card-action time { color: var(--rbp-soft); font-size: .78rem; }
.rbp-job-meta { display: flex; flex-wrap: wrap; gap: 9px; padding: 0; margin: 0; list-style: none; }
.rbp-job-meta li { padding: 5px 10px; color: var(--rbp-soft); background: var(--rbp-mist); border-radius: 999px; font-size: .75rem; font-weight: 700; }
.rbp-pagination { margin-top: 30px; }
.rbp-pagination .page-numbers { display: inline-flex; gap: 8px; padding: 0; list-style: none; }
.rbp-pagination a, .rbp-pagination span { display: grid; place-items: center; min-width: 42px; min-height: 42px; padding: 6px; border: 1px solid var(--rbp-line); border-radius: 10px; }
.rbp-pagination .current { color: #fff; background: var(--rbp-teal); }

.rbp-job-detail { padding: 150px 0 110px; }
.rbp-breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 38px; color: var(--rbp-soft); font-size: .82rem; }
.rbp-breadcrumbs a { color: var(--rbp-teal); }
.rbp-job-header { display: flex; justify-content: space-between; gap: 40px; align-items: flex-end; padding-bottom: 48px; border-bottom: 1px solid var(--rbp-line); }
.rbp-job-header h1 { max-width: 850px; font-size: clamp(2.9rem, 6vw, 5.8rem); }
.rbp-job-header .rbp-job-meta { margin-top: 25px; }
.rbp-job-content { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 70px; padding-block: 60px; }
.rbp-job-content article section + section { padding-top: 42px; margin-top: 42px; border-top: 1px solid var(--rbp-line); }
.rbp-job-content h2, .rbp-apply-section h2 { margin-bottom: 20px; font-size: clamp(1.8rem, 3vw, 2.6rem); }
.rbp-prose { color: var(--rbp-soft); }
.rbp-prose > *:first-child { margin-top: 0; }
.rbp-job-summary { position: sticky; top: 110px; align-self: start; padding: 26px; background: var(--rbp-mist); border-radius: var(--rbp-radius); }
.rbp-job-summary h2 { font-size: 1.35rem; }
.rbp-job-summary dl { margin: 20px 0 0; }
.rbp-job-summary dl div { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; padding: 13px 0; border-top: 1px solid var(--rbp-line); }
.rbp-job-summary dt { color: var(--rbp-soft); }
.rbp-job-summary dd { margin: 0; font-weight: 700; text-align: right; }
.rbp-apply-section { padding: clamp(34px, 6vw, 65px); background: #f8faf9; border: 1px solid var(--rbp-line); border-radius: 30px; scroll-margin-top: 120px; }
.rbp-apply-gate { max-width: 700px; }

.rbp-auth-shell { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(45px, 8vw, 110px); align-items: start; }
.rbp-auth-shell h1, .rbp-form-page h1, .rbp-dashboard h1, .rbp-callout h1 { font-size: clamp(2.5rem, 5vw, 4.6rem); }
.rbp-form { max-width: 760px; padding: clamp(22px, 4vw, 38px); background: #fff; border: 1px solid var(--rbp-line); border-radius: var(--rbp-radius); box-shadow: 0 20px 60px rgba(5, 53, 49, .08); }
.rbp-form textarea { resize: vertical; }
.rbp-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.rbp-form .rbp-button { margin-top: 8px; }
.rbp-form > p:last-child { margin: 18px 0 0; }
.rbp-form a { color: var(--rbp-teal); font-weight: 700; }
.rbp-check { display: flex !important; grid-template-columns: auto 1fr; gap: 10px !important; align-items: flex-start; }
.rbp-check input { width: auto; min-height: auto; margin-top: 5px; }
.rbp-password-field { display: grid; grid-template-columns: 1fr auto; }
.rbp-password-field input { border-radius: 10px 0 0 10px; }
.rbp-password-field button { padding-inline: 14px; color: var(--rbp-teal); background: var(--rbp-mist); border: 1px solid var(--rbp-line); border-left: 0; border-radius: 0 10px 10px 0; font-weight: 700; }
.rbp-honeypot { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.rbp-privacy-note { color: var(--rbp-soft); font-size: .82rem; }
.rbp-notice { padding: 13px 16px; margin-bottom: 20px; border-radius: 10px; }
.rbp-notice-success { color: #075f42; background: #dcf7eb; }
.rbp-notice-error { color: #842525; background: #fde7e7; }
.rbp-callout, .rbp-empty { padding: clamp(28px, 5vw, 55px); background: var(--rbp-mist); border-radius: var(--rbp-radius); }
.rbp-callout p { max-width: 680px; }
.rbp-empty { text-align: center; }
.rbp-empty h2, .rbp-empty h3 { margin-bottom: 12px; }

.rbp-dashboard-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 35px; margin-bottom: 38px; }
.rbp-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-bottom: 32px; }
.rbp-stats > div { display: flex; flex-direction: column; padding: 24px; background: var(--rbp-mist); border-radius: 16px; }
.rbp-stats strong { color: var(--rbp-teal); font-size: 2.3rem; line-height: 1; }
.rbp-stats span { margin-top: 10px; color: var(--rbp-soft); font-size: .82rem; }
.rbp-account-nav { display: flex; gap: 20px; padding-block: 17px; margin-bottom: 30px; border-block: 1px solid var(--rbp-line); }
.rbp-account-nav a { color: var(--rbp-teal); font-weight: 700; }
.rbp-application-list { display: grid; gap: 16px; }
.rbp-application-card { position: relative; padding: 25px; border: 1px solid var(--rbp-line); border-radius: 16px; }
.rbp-application-card h2 { padding-right: 160px; font-size: 1.35rem; }
.rbp-application-card .rbp-status { position: absolute; top: 24px; right: 24px; }
.rbp-application-card details { margin-top: 15px; }
.rbp-application-card summary { color: var(--rbp-teal); font-weight: 700; cursor: pointer; }
.rbp-timeline { padding-left: 20px; }
.rbp-timeline li { padding: 8px 0; }
.rbp-timeline time { display: block; color: var(--rbp-soft); font-size: .78rem; }
.rbp-status { display: inline-flex; padding: 7px 11px; color: #254a46; background: #dff2ef; border-radius: 999px; font-size: .74rem; font-weight: 800; }
.rbp-status-rejected, .rbp-status-withdrawn, .rbp-status-closed { color: #7a2b2b; background: #fae4e4; }
.rbp-status-hired, .rbp-status-offered { color: #614a11; background: #f8edca; }

.rbp-candidate-hub { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.rbp-dashboard-sidebar { position: sticky; top: 110px; padding: 26px; background: linear-gradient(160deg, var(--rbp-deep), #07675f); border-radius: 22px; color: #fff; box-shadow: 0 24px 60px rgba(4, 46, 44, .18); }
.rbp-profile-avatar { display: grid; place-items: center; width: 58px; height: 58px; margin-bottom: 16px; color: var(--rbp-deep); background: var(--rbp-gold); border-radius: 18px; font-size: 1.5rem; font-weight: 800; }
.rbp-dashboard-sidebar > strong, .rbp-dashboard-sidebar > span { display: block; }
.rbp-dashboard-sidebar > span { margin-top: 5px; color: #c7dbd8; font-size: .82rem; }
.rbp-dashboard-sidebar nav { display: grid; gap: 6px; margin-top: 25px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .15); }
.rbp-dashboard-sidebar nav a { padding: 10px 12px; color: #e9f3f1; border-radius: 9px; font-size: .88rem; font-weight: 700; }
.rbp-dashboard-sidebar nav a:hover, .rbp-dashboard-sidebar nav a:focus-visible { color: #fff; background: rgba(255, 255, 255, .11); }
.rbp-dashboard-main { min-width: 0; }
.rbp-dashboard-header p:not(.rbp-kicker) { max-width: 650px; margin-top: 12px; color: var(--rbp-soft); }
.rbp-dashboard-panel { padding: clamp(22px, 4vw, 34px); margin-top: 24px; background: #fff; border: 1px solid var(--rbp-line); border-radius: 22px; box-shadow: 0 16px 50px rgba(5, 53, 49, .06); scroll-margin-top: 120px; }
.rbp-panel-heading { display: flex; justify-content: space-between; gap: 24px; align-items: flex-end; margin-bottom: 25px; }
.rbp-panel-heading h2 { margin: 0; font-size: clamp(1.45rem, 3vw, 2rem); }
.rbp-panel-heading > span { color: var(--rbp-soft); font-size: .8rem; }
.rbp-panel-heading a { color: var(--rbp-teal); font-weight: 700; }
.rbp-profile-form { max-width: none; padding: 0; border: 0; box-shadow: none; }
.rbp-profile-form input[readonly] { color: #647571; background: #edf2f0; cursor: not-allowed; }
.rbp-profile-form fieldset { padding: 24px; margin: 28px 0; border: 1px solid var(--rbp-line); border-radius: 16px; }
.rbp-profile-form legend { padding: 0 9px; color: var(--rbp-deep); font-size: 1.05rem; font-weight: 800; }

@media (max-width: 900px) {
  .rbp-jobs-layout, .rbp-job-content, .rbp-auth-shell, .rbp-candidate-hub { grid-template-columns: 1fr; }
  .rbp-filters, .rbp-job-summary { position: static; }
  .rbp-dashboard-sidebar { position: static; }
  .rbp-dashboard-sidebar nav { grid-template-columns: repeat(3, 1fr); }
  .rbp-filters { display: grid; grid-template-columns: 1fr 1fr; gap: 0 15px; }
  .rbp-filters h2, .rbp-filters .rbp-button, .rbp-filters .rbp-clear { grid-column: 1 / -1; }
}

@media (max-width: 650px) {
  .rbp-container { width: calc(100% - 28px); }
  .rbp-jobs-hero { padding: 140px 0 58px; }
  .rbp-jobs-layout { gap: 30px; padding-block: 40px 75px; }
  .rbp-filters { grid-template-columns: 1fr; padding: 20px; }
  .rbp-filters h2, .rbp-filters .rbp-button, .rbp-filters .rbp-clear { grid-column: auto; }
  .rbp-job-card { grid-template-columns: 1fr; padding: 22px; }
  .rbp-job-card-action { align-items: flex-start; }
  .rbp-job-detail { padding: 125px 0 75px; }
  .rbp-job-header, .rbp-dashboard-header { align-items: flex-start; flex-direction: column; }
  .rbp-job-header h1 { font-size: clamp(2.5rem, 13vw, 4.2rem); }
  .rbp-form-grid, .rbp-stats { grid-template-columns: 1fr; }
  .rbp-dashboard-sidebar nav { grid-template-columns: 1fr 1fr; }
  .rbp-panel-heading { align-items: flex-start; flex-direction: column; }
  .rbp-apply-section { padding: 26px 18px; border-radius: 18px; }
  .rbp-form { padding: 22px 16px; }
  .rbp-application-card h2 { padding-right: 0; }
  .rbp-application-card .rbp-status { position: static; margin: 12px 0; }
}

@media (prefers-reduced-motion: reduce) {
  .rbp-job-card { transition: none; }
}

