/* Heatwave applicant portal + recommendation page (dark, like the interest form). */
.portal-body { background: var(--deep); color: var(--cream); min-height: 100vh; color-scheme: dark; }
.portal-body .nav { background: rgba(43,26,18,0.94); border-bottom-color: rgba(251,241,225,0.12); }
.portal-body .nav-mark { color: var(--gold); }
.portal-body .nav nav a { color: var(--sand); }
@media (max-width: 860px) { .portal-body .nav nav a#signout { display: inline; } }
.portal { padding: 32px 16px 80px; }
.portal-wrap { max-width: 720px; margin: 0 auto; }
.portal-card { background: #3a2519; border: 1px solid rgba(251,241,225,0.12); border-radius: 22px; padding: 28px clamp(18px, 4vw, 36px); }
.portal-h { font-family: var(--display); font-weight: 400; font-size: clamp(30px, 6vw, 44px); color: var(--cream); margin: 0 0 12px; }
.portal-lede { color: rgba(251,241,225,0.85); margin: 0 0 16px; }
.portal-card a { color: var(--gold); }
.portal .muted, .portal-body .muted { color: rgba(251,241,225,0.7); font-size: 15px; }
.linkish { background: none; border: 0; padding: 4px 0; font: inherit; font-size: 14px; font-weight: 700; color: var(--gold); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.linkish.back { text-decoration: none; margin-bottom: 8px; }
.notice { background: rgba(242,165,65,0.12); border: 1px solid rgba(242,165,65,0.4); border-radius: 14px; padding: 12px 14px; font-size: 15px; }
.notice.ok { background: rgba(120,200,140,0.12); border-color: rgba(120,200,140,0.45); }
.btn:disabled { opacity: 0.6; cursor: wait; transform: none; }

/* home list */
.app-list { display: grid; gap: 10px; margin: 8px 0 18px; }
.app-row { text-align: left; display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; background: rgba(251,241,225,0.05); border: 1px solid rgba(251,241,225,0.15); border-radius: 16px; padding: 14px 16px; color: var(--cream); font: inherit; cursor: pointer; }
.app-row:hover { border-color: var(--gold); }
.app-row b { display: block; font-size: 18px; }
.app-row span { font-size: 14px; opacity: 0.75; }
.app-row p { grid-column: 1 / -1; margin: 0; font-size: 14px; opacity: 0.8; }
.portal-body .btn-ghost { border-color: var(--sand); color: var(--sand); }
.pill { align-self: start; font-size: 12px; font-weight: 800; letter-spacing: .04em; padding: 4px 10px; border-radius: 999px; background: rgba(251,241,225,0.12); white-space: nowrap; }
.st-accepted { background: rgba(120,200,140,0.22); } .st-complete { background: rgba(242,165,65,0.25); }
.st-declined, .st-payment_failed { background: rgba(255,120,90,0.2); }

/* form bits */
.sess-pick { width: 100%; }
.sess-pick span { font-weight: 500; }
.total { font-size: 15px; background: rgba(251,241,225,0.06); border-radius: 12px; padding: 10px 14px; }
.deposit-points { padding-left: 20px; margin: 0 0 18px; display: grid; gap: 6px; font-size: 15px; color: rgba(251,241,225,0.9); }
.pe { background: rgba(251,241,225,0.04); border-radius: 14px; padding: 14px; }
.coupon-line { background: rgba(242,165,65,0.12); border-radius: 12px; padding: 10px 14px; font-size: 15px; margin: 0 0 14px; }
.form .coupon input { text-transform: uppercase; letter-spacing: 0.06em; }
.fee { background: rgba(242,165,65,0.14); border: 1px solid rgba(242,165,65,0.45); border-radius: 12px; padding: 10px 14px; font-size: 15px; }

/* application status + checklist */
.status { display: grid; gap: 2px; border-radius: 14px; padding: 12px 14px; margin: 4px 0 16px; background: rgba(251,241,225,0.08); }
.status span { font-size: 14px; opacity: 0.85; }
.portal-card ol.steps { list-style: none; padding: 0; margin: 0 0 8px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; counter-reset: s; }
.portal-card ol.steps li { counter-increment: s; background: rgba(251,241,225,0.05); border: 1px solid rgba(251,241,225,0.14); border-radius: 14px; padding: 12px; display: grid; gap: 2px; }
.portal-card ol.steps li::before { content: counter(s); width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: rgba(251,241,225,0.15); font-size: 13px; font-weight: 800; margin-bottom: 4px; }
.portal-card ol.steps li.done::before { content: "✓"; background: var(--gold); color: var(--deep); }
.portal-card ol.steps li span { font-size: 13px; opacity: 0.8; }
@media (max-width: 560px) { .portal-card ol.steps { grid-template-columns: 1fr; } }
.block { border-top: 1px solid rgba(251,241,225,0.12); margin-top: 20px; padding-top: 18px; }
.block-h { font-family: var(--body); font-weight: 800; font-size: 20px; color: var(--cream); margin: 0 0 4px; }
.items { list-style: none; padding: 0; margin: 10px 0; display: grid; gap: 6px; }
.items li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; background: rgba(251,241,225,0.05); border-radius: 12px; padding: 8px 12px; font-size: 15px; }
.items li span { flex: 1 1 220px; overflow-wrap: anywhere; }
.items li em { font-size: 13px; opacity: 0.7; }
.form.inline { grid-template-columns: 2fr 1.3fr auto; align-items: center; }
@media (max-width: 640px) { .form.inline { grid-template-columns: 1fr; } }
.upload { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; font-weight: 700; font-size: 15px; }
.upload input { font-size: 14px; color: var(--sand); max-width: 100%; }
.upload-title { display: block; width: 100%; margin-top: 8px; font: inherit; font-size: 15px; padding: 10px 12px; border-radius: 12px; border: 1px solid rgba(251,241,225,0.25); background: rgba(251,241,225,0.06); color: var(--cream); }

/* recommendation page */
.rec-player { display: grid; gap: 2px; background: rgba(251,241,225,0.06); border-radius: 14px; padding: 12px 14px; margin-bottom: 14px; }
.rec-player span { font-size: 14px; opacity: 0.8; }
.form fieldset.levels label { font-size: 15px; }
