:root {
  --psb-forest: #123d32;
  --psb-forest-dark: #0c2c24;
  --psb-gold: #d9a441;
  --psb-cream: #f7f8f4;
  --psb-ink: #1d2a27;
  --psb-muted: #61706b;
  --psb-line: #dce5df;
}

body.applicant-page { background: var(--psb-cream); color: var(--psb-ink); }
.applicant-header { background: linear-gradient(115deg, var(--psb-forest-dark), var(--psb-forest)); padding: 1rem 0; box-shadow: 0 2px 12px rgba(12, 44, 36, .14); }
.brand { color: #fff; display: flex; align-items: center; gap: .75rem; text-decoration: none; }
.brand:hover { color: #fff; }
.brand-mark { background: #fff; border-radius: 50%; display: grid; height: 48px; padding: 5px; place-items: center; width: 48px; }
.brand-mark img { height: 100%; max-width: 100%; object-fit: contain; }
.brand-eyebrow { display: block; font-size: .72rem; letter-spacing: .08em; opacity: .75; text-transform: uppercase; }
.brand strong { display: block; font-size: 1rem; }
.applicant-main { min-height: calc(100vh - 144px); padding: 2.5rem 0; }
.applicant-footer { color: var(--psb-muted); font-size: .875rem; padding: 1.5rem 0; text-align: center; }

.journey-card, .document-card { background: #fff; border: 1px solid var(--psb-line); border-radius: 1rem; box-shadow: 0 8px 25px rgba(28, 56, 45, .06); }
.journey-card { padding: 1.5rem; }
.page-kicker { color: #9a6d16; font-size: .75rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.page-title { font-size: clamp(1.65rem, 3vw, 2.2rem); font-weight: 700; letter-spacing: -.03em; margin: .25rem 0 .5rem; }
.page-description { color: var(--psb-muted); margin-bottom: 0; }
.progress { background: #e8eeea; border-radius: 999px; height: .65rem; }
.progress-bar { background: var(--psb-forest); }
.progress-copy { color: var(--psb-muted); font-size: .9rem; }

.document-card { height: 100%; overflow: hidden; padding: 1.25rem; transition: border-color .2s ease, transform .2s ease; }
.document-card:hover { border-color: #aebfb5; transform: translateY(-2px); }
.document-card.is-complete { border-color: #8cb9a1; }
.document-icon { align-items: center; background: #edf4ef; border-radius: .75rem; color: var(--psb-forest); display: inline-flex; font-size: 1.15rem; height: 42px; justify-content: center; width: 42px; }
.document-card.is-complete .document-icon { background: #e3f3e8; color: #16824a; }
.document-title { font-size: 1rem; font-weight: 700; margin: 0; }
.document-help { color: var(--psb-muted); font-size: .84rem; margin: .25rem 0 1rem; min-height: 2.5rem; }
.status-pill { border-radius: 999px; display: inline-flex; font-size: .75rem; font-weight: 700; gap: .35rem; padding: .35rem .6rem; }
.status-pill.pending { background: #fff4dc; color: #8b5d00; }
.status-pill.complete { background: #e5f5e9; color: #14743f; }
.file-link { color: var(--psb-forest); font-size: .82rem; font-weight: 600; text-decoration: none; }
.file-link:hover { text-decoration: underline; }
.btn-primary { --bs-btn-bg: var(--psb-forest); --bs-btn-border-color: var(--psb-forest); --bs-btn-hover-bg: var(--psb-forest-dark); --bs-btn-hover-border-color: var(--psb-forest-dark); --bs-btn-active-bg: var(--psb-forest-dark); --bs-btn-active-border-color: var(--psb-forest-dark); }
.upload-summary { background: #eef5f0; border: 1px solid #d2e4d8; border-radius: .85rem; color: var(--psb-forest); padding: 1rem 1.25rem; }
.complete-panel { background: var(--psb-forest); border-radius: 1rem; color: #fff; padding: 1.5rem; }
.complete-panel p { color: rgba(255,255,255,.78); }
.complete-panel .form-check-input:checked { background-color: var(--psb-gold); border-color: var(--psb-gold); }

.journey-steps { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; margin: 0; padding: 0; }
.journey-steps li { align-items: center; color: var(--psb-muted); display: inline-flex; font-size: .8rem; font-weight: 600; gap: .4rem; }
.journey-steps li::before { background: #dbe6df; border-radius: 50%; color: var(--psb-muted); content: counter(list-item); counter-increment: list-item; display: grid; height: 1.5rem; place-items: center; width: 1.5rem; }
.journey-steps { counter-reset: list-item; }
.journey-steps li.is-active, .journey-steps li.is-done { color: var(--psb-forest); }
.journey-steps li.is-active::before, .journey-steps li.is-done::before { background: var(--psb-forest); color: #fff; }
.form-section { background: #fff; border: 1px solid var(--psb-line); border-radius: 1rem; box-shadow: 0 8px 25px rgba(28, 56, 45, .05); margin-bottom: 1rem; overflow: hidden; }
.form-section-header { align-items: center; background: #f4f8f5; border-bottom: 1px solid var(--psb-line); display: flex; gap: .75rem; padding: 1rem 1.25rem; }
.form-section-header span { background: #e1eee5; border-radius: .65rem; color: var(--psb-forest); display: grid; height: 2.25rem; place-items: center; width: 2.25rem; }
.form-section-header h2 { font-size: 1rem; font-weight: 700; margin: 0; }
.form-section-body { padding: 1.25rem; }
.form-label { color: #31433d; font-size: .9rem; font-weight: 600; }
.form-control, .form-select { border-color: #cad8cf; min-height: 2.7rem; }
.form-control:focus, .form-select:focus { border-color: #5b9073; box-shadow: 0 0 0 .2rem rgba(18, 61, 50, .12); }
.select2-container .select2-selection--single { border-color: #cad8cf; height: 2.7rem; padding-top: .38rem; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 2.6rem; }
.status-card { background: #fff; border: 1px solid var(--psb-line); border-radius: 1rem; box-shadow: 0 8px 25px rgba(28, 56, 45, .06); padding: 1.5rem; }
.registration-number { background: #edf4ef; border: 1px dashed #8db19a; border-radius: .75rem; color: var(--psb-forest); font-size: clamp(1.35rem, 4vw, 2rem); font-weight: 800; letter-spacing: .07em; padding: .8rem 1rem; text-align: center; }
.process-list { list-style: none; margin: 1.5rem 0 0; padding: 0; }
.process-list li { align-items: center; border-bottom: 1px solid var(--psb-line); display: flex; gap: .75rem; padding: .8rem 0; }
.process-list li:last-child { border-bottom: 0; }
.process-list i { color: var(--psb-muted); width: 1.2rem; }
.process-list .is-done i { color: #16824a; }
.process-list .is-current { color: var(--psb-forest); font-weight: 700; }
.process-list .is-current i { color: var(--psb-gold); }

.landing-page { background: var(--psb-cream); color: var(--psb-ink); }
.landing-nav { background: rgba(255,255,255,.92); border-bottom: 1px solid rgba(18,61,50,.08); backdrop-filter: blur(10px); }
.landing-brand { align-items: center; color: var(--psb-forest); display: inline-flex; font-weight: 800; gap: .65rem; text-decoration: none; }
.landing-brand img { height: 38px; width: 38px; object-fit: contain; }
.landing-hero { background: linear-gradient(100deg, rgba(7,37,29,.93), rgba(18,61,50,.76)), url('../assets/img/bg-masthead2.jpg') center/cover; color: #fff; padding: clamp(5rem, 11vw, 9rem) 0; }
.landing-hero h1 { font-size: clamp(2.35rem, 6vw, 4.7rem); font-weight: 800; letter-spacing: -.05em; max-width: 740px; }
.landing-hero p { color: rgba(255,255,255,.8); font-size: 1.1rem; max-width: 560px; }
.landing-hero .btn-light { color: var(--psb-forest); font-weight: 700; }
.landing-section { padding: clamp(3.5rem, 7vw, 6rem) 0; }
.feature-card { background: #fff; border: 1px solid var(--psb-line); border-radius: 1rem; height: 100%; padding: 1.35rem; }
.feature-card i { color: var(--psb-gold); font-size: 1.4rem; }
.status-search { background: var(--psb-forest); border-radius: 1rem; color: #fff; padding: clamp(1.5rem, 4vw, 2.5rem); }
.status-search p { color: rgba(255,255,255,.75); }
.landing-footer { background: var(--psb-forest-dark); color: rgba(255,255,255,.68); font-size: .875rem; padding: 1.4rem 0; }

@media (max-width: 575.98px) {
  .applicant-header { padding: .75rem 0; }
  .brand-mark { height: 40px; width: 40px; }
  .brand strong { font-size: .85rem; }
  .applicant-header .btn { font-size: 0; padding: .42rem .55rem; }
  .applicant-header .btn i { font-size: .9rem; margin: 0 !important; }
  .applicant-main { padding: 1.5rem 0; }
}
