:root {
  --ch-primary: #55206f; --ch-primary-dark: #361047; --ch-accent: #1589c9;
  --ch-ink: #101b3f; --ch-muted: #64708a; --ch-line: #e3e7f2;
  --ch-soft: #f7f4fb; --ch-sky: #edf7fd; --ch-white: #fff;
  --ch-radius: 20px; --ch-shadow: 0 18px 44px rgba(26,31,54,.09);
}
[hidden] { display: none !important; }
.account-label { color:var(--ch-muted); font-size:.85rem; white-space:nowrap; margin-inline:.6rem; }
.candidate-navigation { border-bottom:1px solid var(--ch-line); background:var(--ch-soft); }
.candidate-links { display:flex; gap:.5rem; flex-wrap:wrap; padding-block:.6rem; }
.candidate-links a { padding:.7rem 1rem; min-height:44px; border-radius:8px; text-decoration:none; color:var(--ch-ink); }
.candidate-links a:hover { background:#ece3f2; }
.candidate-links a.is-current { background:var(--ch-primary); color:#fff; }
.candidate-area .section-block { padding:2.5rem 0 3.5rem; }
.candidate-area .section-heading h2 { font-size:1.5rem; }
.candidate-area .section-heading { margin-bottom:.8rem; align-items:center; gap:1rem; }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.5rem; }
.page-heading h1 { margin:0 0 .6rem; font-size:clamp(1.8rem,4vw,2.5rem); }
.page-heading p { margin:0; color:var(--ch-muted); }
.profile-stepper { display:flex; align-items:stretch; gap:2rem; margin:1.4rem 0 2rem; padding:.35rem .15rem .75rem; overflow-x:auto; list-style:none; scrollbar-width:thin; }
.profile-stepper li { position:relative; flex:0 0 180px; }
.profile-stepper li:not(:last-child)::after { content:"→"; position:absolute; right:-1.45rem; top:1.05rem; color:#8791a8; font-size:1.25rem; font-weight:800; }
.profile-stepper a { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:.35rem .55rem; min-height:74px; padding:.7rem; color:var(--ch-ink); border:1px solid var(--ch-line); border-radius:12px; background:#fff; text-decoration:none; }
.profile-stepper a:hover,.profile-stepper a:focus-visible { border-color:#b89bc6; background:var(--ch-soft); }
.profile-stepper .is-current a { border-color:var(--ch-primary); box-shadow:0 0 0 3px rgba(85,32,111,.12); }
.step-number { display:grid; place-items:center; width:1.75rem; height:1.75rem; color:#fff; background:var(--ch-primary); border-radius:50%; font-size:.78rem; }
.step-state { grid-column:1 / -1; display:inline-flex; align-items:center; gap:.3rem; width:max-content; max-width:100%; padding:.2rem .45rem; border-radius:999px; font-size:.75rem; font-weight:700; }
.profile-checklist { display:grid; gap:.7rem; padding:0; list-style:none; }
.profile-checklist li { margin:0; }
.profile-checklist a { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:1rem; min-height:58px; padding:.8rem 1rem; color:var(--ch-ink); border:1px solid var(--ch-line); border-radius:12px; background:#fff; text-decoration:none; }
.profile-checklist a:hover,.profile-checklist a:focus-visible { border-color:#b89bc6; background:var(--ch-soft); }
.checklist-title { font-weight:750; }
.profile-status { display:inline-flex; align-items:center; gap:.35rem; padding:.3rem .55rem; border-radius:999px; font-size:.8rem; font-weight:750; }
.checklist-arrow { color:var(--ch-primary); font-size:1.25rem; }
.state-complete { color:#155c42; background:#e7f7ef; }
.state-attention { color:#7a4a00; background:#fff2cc; }
.state-progress { color:#075b8a; background:#e5f4fc; }
.state-missing { color:#8f2435; background:#fdecef; }
.profile-photo-panel { display:grid; gap:1rem; justify-items:start; }
.profile-photo { display:block; width:160px; height:160px; max-width:100%; border:3px solid #fff; border-radius:18px; object-fit:cover; box-shadow:0 8px 24px rgba(16,27,63,.16); }
.candidate-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin-block:1.5rem; }
.candidate-steps a { border:1px solid var(--ch-line); border-radius:12px; padding:1rem; text-decoration:none; display:grid; gap:.4rem; background:#fff; }
.candidate-steps span { color:var(--ch-primary); font-size:.8rem; }
.candidate-steps small { font-weight:400; }
.application-state { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem; }
.candidate-area h1,.candidate-area h2,.candidate-area p { overflow-wrap:anywhere; }
.candidate-area input[type=checkbox] { width:1.1rem; height:1.1rem; margin-right:.4rem; }
.candidate-area section[id],.candidate-area form[id] { scroll-margin-top:1.5rem; }
@media(max-width:700px) {
  .candidate-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.3rem; }
  .candidate-links a { padding:.65rem .5rem; font-size:.9rem; }
  .candidate-steps { grid-template-columns:1fr; }
  .page-heading { align-items:flex-start; flex-direction:column; }
  .candidate-area .section-block { padding-top:1.5rem; }
  .candidate-area .section-heading { align-items:flex-start; flex-direction:column; }
  .profile-stepper { display:grid; gap:1.8rem; overflow:visible; }
  .profile-stepper li { width:100%; }
  .profile-stepper li:not(:last-child)::after { content:"↓"; right:auto; left:1rem; top:calc(100% + .2rem); }
  .profile-checklist a { grid-template-columns:minmax(0,1fr) auto; }
  .profile-status { grid-row:2; justify-self:start; }
  .checklist-arrow { grid-column:2; grid-row:1 / span 2; }
  .footer-links { flex-wrap:wrap; }
}
.review-banner { padding:.6rem 1rem; background:#fff4d4; color:#654611; text-align:center; font-size:.8rem; font-weight:650; }
.skip-link { position:absolute; left:1rem; top:-100px; z-index:1000; padding:1rem; background:#fff; }
.skip-link:focus { top:0; }
.surface,.auth-panel { padding:clamp(1.2rem,3vw,2rem); border:1px solid var(--ch-line); border-radius:20px; background:#fff; box-shadow:0 8px 30px #15213a08; }
.auth-panel { max-width:550px; }
label { display:block; margin:1rem 0 .4rem; font-weight:650; }
.check-row { display:flex; align-items:flex-start; gap:.65rem; line-height:1.5; font-weight:400; }
.check-row input { margin-top:.35rem; flex-shrink:0; }
.actions { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; margin-top:1.4rem; }
.notice { padding:1rem 1.2rem; border:1px solid #e4d09a; border-radius:12px; background:#fff9e9; margin:1rem 0; }
.notice.success { border-color:#a8d5c5; background:#edf9f3; color:#205745; }
.validation-summary-errors { color:#a11a31; padding:.8rem; background:#fff1f3; border-radius:10px; }
.validation-summary-valid { display:none; }
.input-validation-error { border-color:#bd2441; }
.filter-bar { display:flex; align-items:end; flex-wrap:wrap; gap:1rem; margin-bottom:2rem; }
.filter-bar>div { flex:1; min-width:190px; }
.vacancy-grid { display:grid; gap:1.3rem; }
.vacancy-card h2 { margin:1rem 0; font-size:1.65rem; }
.vacancy-card h2 a { text-decoration:none; }
.badge-label { display:inline-block; color:var(--ch-primary); background:var(--ch-soft); padding:.35rem .65rem; border-radius:8px; font-size:.8rem; font-weight:650; }
.card-bottom,.application-card { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; margin-top:1.2rem; }
.job-meta,small { color:var(--ch-muted); }
.detail-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr); gap:2rem; align-items:start; }
.prose h2 { font-size:1.4rem; margin:1.7rem 0 .7rem; }
.prose h2:first-child { margin-top:0; }
dt { margin-top:.9rem; font-size:.85rem; color:var(--ch-muted); }
dd { margin-top:.3rem; }
.profile-row { padding:1rem 0; border-top:1px solid var(--ch-line); }
.profile-row h3 { font-size:1.1rem; }
.multiline { white-space:pre-wrap; overflow-wrap:anywhere; }
.break-word { overflow-wrap:anywhere; }
@media(max-width:800px) { .detail-grid { grid-template-columns:1fr; } .brand-lockup strong { font-size:.8rem; } .surface .section-heading { gap:1rem; } .filter-bar .btn { width:100%; } }
html { font-size: 16px; min-height: 100%; }
body { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; margin: 0; color: var(--ch-ink); background: #fff; font-family: Inter,"Segoe UI",Arial,sans-serif; }
.portal-content { flex: 1 0 auto; }
body > header, body > footer, .review-banner { flex-shrink: 0; }
a { color: var(--ch-primary); font-weight: 650; text-underline-offset: .2em; }
a:hover { color: var(--ch-primary-dark); }
.container { width: min(1160px,calc(100% - 2rem)); margin-inline: auto; }
.narrow { width: min(780px,calc(100% - 2rem)); }
.portal-nav { min-height: 84px; padding: .6rem 0; background: rgba(255,255,255,.98); border-bottom: 1px solid var(--ch-line); }
.portal-nav-inner { gap: 1rem; }
.brand-lockup { display: flex; align-items: center; gap: .8rem; color: var(--ch-ink); }
.brand-lockup:hover { color: var(--ch-ink); }
.brand-lockup img { width: 58px; height: 48px; object-fit: contain; border-radius: 6px; }
.brand-lockup span { display: grid; line-height: 1.1; }
.brand-lockup strong { font-size: 1rem; }
.brand-lockup small { margin-top: .3rem; color: var(--ch-muted); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; }
.nav-link { color: #34405f; font-weight: 650; border-radius: 10px; padding: .65rem .85rem !important; }
.nav-link:hover,.nav-link:focus { color: var(--ch-primary); background: var(--ch-soft); }
.btn { border-radius: 11px; font-weight: 700; padding-inline: 1.05rem; }
.btn-primary { background: var(--ch-primary); border-color: var(--ch-primary); }
.btn-primary:hover,.btn-primary:focus { background: var(--ch-primary-dark); border-color: var(--ch-primary-dark); }
.btn-outline-primary { color: var(--ch-primary); border-color: #b89bc6; }
.btn-outline-primary:hover { background: var(--ch-primary); border-color: var(--ch-primary); }
.hero { position: relative; overflow: hidden; padding: clamp(4rem,8vw,7rem) 0; background: linear-gradient(125deg,#f9f4fc 0%,#f1f7fd 58%,#e4f5fb 100%); }
.hero::after { content: ""; position: absolute; width: 440px; height: 440px; right: -180px; top: -220px; border-radius: 50%; border: 70px solid rgba(85,32,111,.08); }
.hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1.35fr) minmax(300px,.65fr); align-items: center; gap: clamp(2rem,6vw,5rem); }
.eyebrow,.card-kicker { display: block; margin-bottom: .75rem; color: var(--ch-primary); font-size: .76rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.hero h1 { max-width: 760px; margin: 0; font-size: clamp(2.7rem,6vw,5.3rem); line-height: .98; letter-spacing: -.045em; }
.hero-copy>p { max-width: 690px; margin: 1.5rem 0 2rem; color: #4d5872; font-size: clamp(1.08rem,2vw,1.3rem); line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.hero-card { padding: 2rem; color: #fff; background: linear-gradient(150deg,var(--ch-primary-dark),var(--ch-primary)); border-radius: var(--ch-radius); box-shadow: var(--ch-shadow); }
.hero-card .card-kicker { color: #9fdcff; }
.hero-card h2 { margin: 0 0 1.2rem; font-size: 1.65rem; }
.hero-card ul { display: grid; gap: .9rem; margin: 0; padding-left: 1.25rem; color: #f1eaf5; line-height: 1.5; }
.section-block { padding: clamp(3.5rem,7vw,6rem) 0; }
.section-muted { background: var(--ch-soft); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 2rem; }
.section-heading h2,.page-hero h1 { margin: 0; font-size: clamp(2rem,4vw,3.2rem); letter-spacing: -.035em; }
.empty-panel { display: flex; align-items: center; gap: 1.3rem; padding: 1.5rem; border: 1px solid var(--ch-line); border-radius: var(--ch-radius); background: linear-gradient(180deg,#fff,#fcfbff); box-shadow: 0 12px 28px rgba(26,31,54,.05); }
.empty-icon { display: grid; place-items: center; flex: 0 0 58px; height: 58px; color: #fff; background: var(--ch-primary); border-radius: 16px; font-weight: 900; }
.empty-panel h3,.empty-panel h2 { margin: 0 0 .35rem; }
.empty-panel p { margin: 0; color: var(--ch-muted); line-height: 1.55; }
.feature-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; }
.feature-grid article { padding: 1.6rem; background: #fff; border: 1px solid #e5ddec; border-radius: 16px; }
.feature-grid article>span { color: var(--ch-accent); font-weight: 850; }
.feature-grid h3 { margin: .7rem 0 .5rem; }
.feature-grid p,.prose p,.prose li { color: var(--ch-muted); line-height: 1.65; }
.prose li { margin-bottom: .5rem; }
.page-hero { padding: 4.5rem 0 3rem; background: linear-gradient(125deg,var(--ch-soft),var(--ch-sky)); }
.page-hero p { max-width: 670px; margin: 1rem 0 0; color: var(--ch-muted); font-size: 1.1rem; line-height: 1.6; }
.portal-footer { padding: 2rem 0; color: #4b5563; background: #f4f5f7; border-top: 1px solid #dfe3e8; }
.portal-footer p { margin: 0 0 .4rem; color: #374151; }
.footer-altair { color: #0d097a; font-weight: 700; }
.footer-ltd { color: #960202; font-weight: 700; }
.footer-grid,.footer-links { display: flex; justify-content: space-between; gap: 1rem; }
.footer-links { align-items: center; }
.footer-links a { color: #374151; }
.form-control:focus,.form-select:focus,.btn:focus-visible,a:focus-visible { outline: 3px solid rgba(21,137,201,.3); outline-offset: 2px; box-shadow: none; }
@media (max-width:800px) { .hero-grid,.feature-grid { grid-template-columns: 1fr; } .hero { padding-top: 3.5rem; } .section-heading,.empty-panel,.footer-grid { align-items: flex-start; flex-direction: column; } .footer-links { align-items: flex-start; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
:root { --form-section-gap: 1.75rem; }
.form-section-title { font-size: 1.15rem; margin-top: var(--form-section-gap); margin-bottom: .75rem; padding-top: 1rem; border-top: 1px solid #dfe5f0; }
.surface > .form-section-title:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.field-help { font-size: .9rem; color: #526a8e; margin: .5rem 0 1rem; }
