/* Career Lab | Approved product system, 8 September 2026.
 * Sole owner of colour, typography and component styling.
 * Layout lives in app.css/public.css. Selected, focus, pending and disabled
 * states are explicit. No catch-all rule may erase a selected state.
 */
/* Both faces are self-hosted from /fonts so no page waits on a Google Fonts
 * round trip (DNS, TLS and a CSS fetch before the font itself). Bricolage is
 * the Google-served variable build (opsz 12..96, wght 200..800), split into the
 * same latin / latin-ext subsets Google uses so a plain English page pulls
 * only the latin file. Outfit is the same variable font as before, as woff2. */
@font-face { font-family:'Bricolage Grotesque'; src:url('/fonts/bricolage-grotesque-latin.woff2') format('woff2'); font-style:normal; font-weight:200 800; font-stretch:100%; font-display:swap; unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family:'Bricolage Grotesque'; src:url('/fonts/bricolage-grotesque-latin-ext.woff2') format('woff2'); font-style:normal; font-weight:200 800; font-stretch:100%; font-display:swap; unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family:'Outfit'; src:url('/fonts/outfit-variable.woff2') format('woff2'); font-style:normal; font-weight:100 900; font-display:swap; }
:root {
 --canvas:#fbf9f3; --surface:#ffffff; --surface-muted:#f1f3f3;
 --text:#0b1825; --text-muted:#536478; --border:#d5e0e4;
 --brand-lime:#c5ef59; --brand-lime-hover:#b5e53e; --brand-soft:#f1fbdc;
 --green:#194438; --mint:#e5f7f3; --mint-border:#a8d7d3;
 --sky:#d8eaff; --yellow:#ffdd7b; --coral:#ffc7c3; --lilac:#e9e2ff;
 --accent:#194438; --accent-hover:#0f2c24; --accent-soft:var(--mint); --on-accent:var(--text);
 --composer-border:#a7b8d1; --focus:#3455db;
 --danger:#a53030; --danger-soft:#fff0ee; --warning:#78561d; --warning-soft:#fff8e7;
 --media:#152624; --on-media:#ffffff;
 --on-lime:#0b1825; --primary-edge:#194438; --bubble:#f0f1f3; --track:#d9e6e4; --stamp-mint:#b7eee5;
 --placeholder:#728196; --border-strong:#b0c2c9; --hero-radius:0px; --hero-filter:none;
 --radius-control:10px; --radius-card:14px; --shadow-popover:0 12px 36px #09142118;
 --font-body:'Outfit','Arial',sans-serif;
 --font-ui:'Outfit','Arial',sans-serif;
 --font-display:'Outfit','Arial',sans-serif;
 --type-page:clamp(38px,4.7vw,66px); --type-section:28px; --type-panel:22px;
 --type-body:16px; --type-title:18px; --type-control:14px; --type-small:12px;
 --page-width:1240px; --flow-width:800px; --reading-width:740px;
 --page-gutter:32px; --card-padding:24px; --dock-h:66px;
 --ink:var(--text); --muted:var(--text-muted); --paper:var(--canvas); --page-background:var(--canvas); --white:var(--surface);
 --blue:#1853bb; --blue-dark:#133c88; --line:var(--border); --lime:var(--brand-lime); --aqua:var(--mint);
 --surface-soft:var(--surface-muted); --scenario-accent:var(--green); --scenario-soft:var(--mint); --journalist-soft:var(--sky);
 --radius:var(--radius-card); --shadow:0 2px 0 var(--ink); --display-font:var(--font-display);
 --text-label:12px; --text-xs:12px; --text-sm:14px; --text-base:16px; --text-lg:18px; --text-xl:22px;
 --heading-sm:26px; --heading-md:36px; --heading-lg:48px; --heading-xl:64px;
 font-family:var(--font-body); color:var(--text); background:var(--canvas); font-synthesis:none;
 color-scheme:light;
}
* { box-sizing:border-box; }
html,body { background:var(--canvas); color:var(--text); }
body { font-family:var(--font-body); font-size:16px; font-weight:400; line-height:1.5; }
button,input,select,textarea { font-family:var(--font-body); color:var(--text); font-size:var(--type-control); line-height:1.4; }
button,.btn,.eyebrow,.category-heading,.suggestion-label,.mm-eyebrow,.meta,.tag-row,.pill,.pills,.jobcard-family,.jobcard-try-label,.nav-label,.sitenav a,.mm-link,.dock-btn,.step-number,.toast { font-family:var(--font-ui); }
button { background:transparent; font-weight:650; }
h1,h2,h3,h4 { font-family:var(--font-display); color:var(--text); font-weight:700; line-height:1.12; letter-spacing:-.035em; }
h1 { font-size:var(--type-page); }
h2 { font-size:var(--type-section); }
h3 { font-size:var(--type-title); letter-spacing:-.022em; }
p { color:var(--text-muted); }
a { color:var(--accent); text-decoration:none; }
a:hover { text-decoration:underline; }
strong,b { font-weight:700; }
.lede { font-size:var(--type-title); line-height:1.42; font-weight:500; color:var(--text-muted); letter-spacing:-.015em; }
.muted,.caption,.helper,.section-subhead,.sub { color:var(--text-muted); }
small,.caption,.helper { font-size:var(--type-small); line-height:1.5; }
.eyebrow,.category-heading,.suggestion-label,.mm-eyebrow { color:var(--text-muted); font-size:var(--type-small); font-weight:750; line-height:1.4; letter-spacing:.07em; text-transform:uppercase; }
.hero-copy .eyebrow { font-size:var(--type-small); }
.page-hero h1 { font-size:clamp(43px,4.9vw,68px); line-height:1.015; letter-spacing:-.035em; font-weight:700; }
.page-hero h1 em,.page-hero h1 span.accent,.page-hero h1 .green { font-style:normal; color:var(--green); }
.home-hero h1 { font-size:clamp(44px,4.85vw,66px); }
.page-hero h1>span { color:var(--green); }
.topbar { background:var(--canvas); }
.brand { background:transparent; box-shadow:none; }
.desktop-nav>button,.mega-trigger { font-size:var(--type-control); font-weight:650; color:var(--text); background:transparent; box-shadow:none; }
.desktop-nav>button.active,.mega-trigger.active,.mega.open>.mega-trigger { background:var(--brand-lime); color:var(--on-lime); }
.desktop-nav>button:hover,.mega-trigger:hover { background:var(--brand-soft); }
.profile-btn { background:var(--yellow); box-shadow:0 2px 0 var(--ink); }
.profile-menu,.mega-panel,.mobile-menu { background:var(--surface); box-shadow:var(--shadow-popover); }
.mega-item { color:var(--text); }
.mega-item small { color:var(--text-muted); font-size:var(--type-control); }
.mega-item:hover,.profile-links button:hover,.mm-link:hover { background:var(--mint); text-decoration:none; }
.pavatar { background:var(--yellow); }
.profile-head strong { font-size:var(--type-body); }.pstatus,.profile-stats,.sync-state { font-size:var(--type-small); color:var(--text-muted); }
.profile-links button { font-size:var(--type-control); background:transparent; }
.danger { color:var(--danger); }
.btn,.back-btn { color:var(--ink); background:var(--surface); font-weight:700; font-size:var(--type-control); line-height:1.3; box-shadow:0 2px 0 var(--ink); transition:background .16s,transform .16s,box-shadow .16s; }
.btn:hover,.back-btn:hover { background:var(--brand-soft); text-decoration:none; transform:translateY(-1px); box-shadow:0 3px 0 var(--ink); }
.btn:active,.back-btn:active { transform:translateY(1px); box-shadow:none; }
.btn.primary,.send { background:var(--brand-lime); color:var(--on-lime); }
.btn.primary:hover,.send:hover { background:var(--brand-lime-hover); color:var(--on-lime); }
.btn.small { font-size:var(--type-control); }
.billing-banner { color:var(--surface); background:var(--danger); font-size:var(--type-control); line-height:1.4; }
.billing-banner p,.billing-banner strong { color:var(--surface); }
.billing-banner strong { font-weight:700; }
.billing-banner .btn { color:var(--danger); background:var(--surface); box-shadow:none; }
button:disabled,.btn[aria-disabled=true] { opacity:.46; box-shadow:none; transform:none; }
.text-link { color:var(--accent); font-weight:700; font-size:var(--type-control); background:transparent; box-shadow:none; }
.text-link:hover { text-decoration:underline; }
.ui-panel,.role-card,.match-question,.question-card,.job-brief-story,.interview-form,.saved-role-open { color:var(--text); background:var(--surface); box-shadow:none; }
.ui-panel h2,.panel-heading h2 { font-size:var(--type-panel); }
.section-head h2 { font-size:var(--type-section); }
.section-head p,.section-subhead { font-size:var(--type-control); line-height:1.5; }
.tone-lime { background:var(--brand-soft); }
.icon-stamp.tone-lime,.step-number.tone-lime { background:var(--brand-lime); color:var(--on-lime); }
.tone-mint { background:var(--mint); }
.icon-stamp.tone-mint { background:var(--stamp-mint); }
.tone-sky { background:var(--sky); }
.tone-yellow { background:var(--warning-soft); }
.icon-stamp.tone-yellow,.step-number.tone-yellow { background:var(--yellow); }
.tone-coral { background:var(--coral); }
.tone-lilac { background:var(--lilac); }
.icon-stamp { color:var(--ink); }
.return-card { background:var(--mint); }
.return-card h2 { font-size:var(--type-section); }
.return-card p { font-size:var(--type-control); }
.return-actions .text-link { color:var(--text); font-size:var(--type-small); }
.progress-track,.progress-dots .progress-dot { background:var(--track); }
.progress-track>i,.progress-dot.complete { background:var(--green); transition:width .3s ease; }
.role-monogram { background:var(--surface); color:var(--ink); font-size:var(--type-control); font-weight:800; box-shadow:0 2px 0 var(--ink); }
.job-visual { background:var(--surface-muted); }
.job-content h2 { font-size:var(--type-panel); line-height:1.12; letter-spacing:-.035em; }
.role-summary { font-size:var(--type-control); line-height:1.35; }
.job-content .card-actions .btn { font-size:var(--type-control); }
.home-job-card .card-actions .btn { font-size:var(--type-control); }
.job-meta { font-size:var(--type-control); line-height:1.4; color:var(--text-muted); }
.save-btn { color:var(--ink); background:var(--surface); }
.save-btn.saved,.save-btn[aria-pressed=true] { background:var(--brand-lime); color:var(--on-lime); border-color:var(--ink); }
.save-btn[aria-pressed=true] svg { fill:var(--ink); }
.job-activities-head { font-size:var(--type-control); font-weight:650; color:var(--text-muted); }
.step-number { font-size:var(--type-title); font-weight:800; }
.toast { color:var(--text); background:var(--surface); box-shadow:var(--shadow-popover); font-size:var(--type-control); font-weight:600; line-height:1.4; }
.toast-icon { color:var(--on-lime); background:var(--brand-lime); }
.toast-link { color:var(--green); background:none; font-weight:700; }
.link-button, .checkout-legal a { color:var(--green); background:none; font-family:inherit; font-size:inherit; font-weight:700; }
.sitenav a { color:var(--text); font-size:14px; font-weight:650; }
.sitenav a:hover { color:var(--green); }
.footer-links a { color:var(--text); font-size:15px; font-weight:500; }
.footer-links a:hover { color:var(--green); text-decoration:underline; }
.how-steps { background:var(--surface); }
.advert-check { background:var(--surface); }
.advert-check h3 { font-size:var(--type-title); }
.advert-check p { color:var(--text-muted); font-size:var(--type-control); }
.advert-flag { background:var(--canvas); font-size:var(--type-control); }
.advert-flag strong { font-size:var(--type-control); }
.advert-flag span { color:var(--text-muted); }
.advert-flag-warn { border-left-color:var(--yellow); }
.advert-flag-info { border-left-color:var(--sky); }
.focus-ideas button { background:var(--surface); color:var(--text); font-size:var(--type-control); font-weight:600; }
.focus-ideas button:hover { background:var(--brand-soft); }
.profile-links button [data-icon] { background:var(--mint); color:var(--green); }
.profile-links button.danger [data-icon] { background:var(--coral); color:var(--danger); }
.pricing-notice { background:var(--brand-soft); color:var(--text); font-size:15px; }
header.site { background:var(--surface); }
.hero-facts { color:var(--text-muted); font-size:14px; font-weight:600; font-family:var(--font-ui); }
.stat b { font-family:var(--font-display); font-size:22px; }
.stat small { color:var(--text-muted); font-size:14px; }
.kinds li { font-size:15px; font-weight:600; color:var(--text); }
.kinds li::before,.pills li::before { background:var(--brand-lime); }
.pills span { font-size:var(--type-control); font-weight:600; }
.btn.primary { box-shadow:0 2px 0 var(--primary-edge); border-color:var(--primary-edge); }
.btn.primary:hover { box-shadow:0 3px 0 var(--primary-edge); }
.jobcard { color:var(--text); background:var(--surface); }
.jobcard:hover { box-shadow:var(--shadow-popover); }
.jobcard-family { color:var(--text-muted); font-size:11px; font-weight:750; letter-spacing:.07em; text-transform:uppercase; }
.jobcard-title { font-family:var(--font-display); font-size:22px; font-weight:700; line-height:1.15; color:var(--text); }
.jobcard-try { font-size:15px; font-weight:650; color:var(--text); }
.jobcard-try-label { background:var(--mint); color:var(--green); font-size:11px; font-weight:750; letter-spacing:.05em; text-transform:uppercase; }
.jobcard p { color:var(--text-muted); font-size:14.5px; line-height:1.5; }
.jobcard .meta span.level { color:var(--text-muted); font-size:12.5px; font-weight:600; }
.jobcard .meta span.cta { background:var(--brand-lime); color:var(--on-lime); font-size:13.5px; font-weight:700; }
.jobcard:hover .meta span.cta { background:var(--brand-lime-hover); color:var(--on-lime); }
.how-steps .step-number { font-family:var(--font-display); font-size:var(--type-body); font-weight:700; color:var(--text); }
.metric strong { font-size:var(--type-section); line-height:1.1; letter-spacing:-.025em; }
.metric-label { color:var(--text-muted); font-size:var(--type-small); font-weight:600; }
.metric small { color:var(--text-muted); font-size:var(--type-small); margin-top:7px; }
.metrics.compact .metric { background:var(--surface); }
.metrics.compact strong { font-size:var(--type-body); }
.metrics.compact .metric-label { color:var(--text); font-size:var(--type-small); }
.app-footer { background:transparent; }
.app-footer nav button,.footer-legal,.footer-legal a { font-size:var(--type-small); color:var(--text-muted); font-weight:400; }
.library-search-panel { background:var(--surface); }
.library-facets label { font-size:var(--type-small); color:var(--text-muted); font-weight:600; }
.library-search-row input { font-size:var(--type-control); }
.view-toggle { background:var(--surface); }
.view-toggle button { color:var(--text-muted); }
.view-toggle button[aria-pressed=true] { background:var(--brand-lime); color:var(--on-lime); }
.category-heading { text-transform:none; letter-spacing:0; font-size:var(--type-control); color:var(--text); }
.tag-row button { color:var(--ink); background:var(--surface); font-size:var(--type-small); font-weight:650; box-shadow:none; }
.tag-row button.active,.tag-row button[aria-pressed=true] { background:var(--brand-lime); color:var(--on-lime); border-color:var(--green); }
.tag-row button:hover { border-color:var(--green); }
.tag { font-size:var(--type-small); font-weight:500; color:var(--ink); }
.sort-control { font-size:var(--type-small); color:var(--text-muted); }
.sort-control select { font-size:var(--type-small); }
/* One state system. These rules intentionally follow all base surfaces. */
input,select,textarea { color:var(--text); background:var(--surface); }
input::placeholder,textarea::placeholder { color:var(--placeholder); opacity:1; }
.field label,label { color:var(--ink); font-weight:600; }
input:hover,select:hover,textarea:hover { border-color:var(--border-strong); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:not(main):focus-visible { outline:3px solid var(--focus); outline-offset:3px; }
.level-choice button,.match-scale button,.scale button,.choice-btn,.difficulty-picker button,.mode-choice button,.mode-tabs button,.pick,.profile-option { background:var(--surface); color:var(--ink); box-shadow:none; }
.match-scale button:hover,.scale button:hover,.difficulty-picker button:hover,.mode-choice button:hover { background:var(--brand-soft); border-color:var(--green); }
.level-choice button[aria-pressed=true],.match-scale button[aria-pressed=true],.scale button[aria-pressed=true],.choice-btn[aria-pressed=true],.difficulty-picker button[aria-pressed=true],.mode-choice button[aria-pressed=true],.mode-tabs button[aria-pressed=true],.pick[aria-pressed=true],.profile-option[aria-pressed=true],.artifact-note[aria-pressed=true],.artifact-note.selected,.decision-option[aria-pressed=true],.selected-note { background:var(--brand-lime); color:var(--on-lime); border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink); }
.match-scale button { font-size:var(--type-control); }.match-scale button b { font-size:var(--type-panel); }.match-question h2,.question-card h2 { font-size:var(--type-section); }
.career-match-panel { background:var(--mint); }.career-match-panel h2 { font-size:var(--type-section); }.career-match-panel p { font-size:var(--type-body); }
.fit-indicator strong { font-size:var(--type-title); }.fit-indicator small { font-size:var(--type-small); color:var(--text-muted); }
.match-evidence-grid .panel-heading h2 { font-size:var(--type-title); }.match-evidence-grid p { font-size:var(--type-control); }.match-reason { font-size:var(--type-small); }.match-reason svg { color:var(--green); }
.job-brief-heading h1 { font-size:clamp(36px,4.2vw,57px); line-height:1.04; letter-spacing:-.047em; }
.brief-block h2 { font-size:var(--type-title); }
.brief-block p { font-size:var(--type-title); line-height:1.6; color:var(--text-muted); }
.brief-objective p { color:var(--text); font-weight:600; background:var(--brand-soft); }
.brief-start { background:var(--surface); }
.brief-start .brief-participant,.brief-start .brief-agenda { font-size:var(--type-body); line-height:1.5; color:var(--text-muted); }
.brief-options h3 { font-size:var(--type-control); font-weight:600; color:var(--text-muted); }
.brief-detail-row { font-size:var(--type-body); }.brief-detail-row dd { font-weight:600; color:var(--text); }.brief-detail-row dt { color:var(--text-muted); }
.brief-launch-note { font-size:var(--type-control); }.experience-option { font-size:var(--type-body); }.experience-option small { color:var(--text-muted); font-size:var(--type-control); font-weight:400; }#screen-briefing .brief-av-note { font-size:var(--type-control); }
#enter-sim { font-size:var(--type-title); }.mode-choice-label { font-size:var(--type-small); color:var(--text-muted); }
.progress-summary { background:var(--mint); }.journey-entry,.recent-win { background:var(--surface); color:var(--ink); }.journey-entry:hover,.recent-win:hover { border-color:var(--green); background:var(--brand-soft); }.journey-entry strong { font-size:var(--type-control); }.journey-entry small { font-size:var(--type-small); color:var(--text-muted); }.journey-entry .eyebrow { font-size:var(--type-small); }
.lock-chip { font-size:var(--type-control); color:var(--text-muted); }
.skill-row-heading { font-size:var(--type-control); }.completion-badge { color:var(--on-lime); background:var(--brand-lime); font-size:var(--type-small); }.completion-badge::before { font-size:var(--type-small); }.interview-progress li strong { line-height:1.25; }.recent-win strong { font-size:var(--type-control); }.recent-win small { font-size:var(--type-small); }.saved-role-open strong { font-size:var(--type-control); }.saved-role-open small { font-size:var(--type-small); color:var(--text-muted); }
.evidence-block { background:var(--surface); }.evidence-block-head h2 { font-size:var(--type-title); }.statement-example { font-size:14px; }
.progress-next { background:transparent; }.progress-next h2 { font-size:var(--type-section); }
.result-hero { background:transparent; }.result-hero h1 { font-size:clamp(40px,4.8vw,63px); }.completion-ring { background:var(--surface); color:var(--ink); }.completion-ring strong { font-size:var(--type-control); }.outcome-summary h3 { font-size:var(--type-title); }.outcome-summary p { font-size:var(--type-control); }.outcome-quote { background:var(--mint); font-size:var(--type-control); }.key-quote { background:var(--mint); }.key-quote p { font-size:var(--type-body); color:var(--ink); }.feedback-line { font-size:var(--type-control); }.feedback-line.tone-mint svg { color:var(--green); }.feedback-line.tone-yellow { background:var(--warning-soft); }.debrief-grid .ui-panel>p { font-size:var(--type-body); }
#screen-rehearse .rehearsal-hero { color:var(--text); background:transparent; box-shadow:none; }.rehearsal-hero h1 { font-size:clamp(43px,4.9vw,68px); }.interview-setup-stack .panel-heading h2 { font-size:var(--type-section); }
/* The interview screen runs on five sizes and nothing else: 26 panel heading,
   19 sub heading, 15 body, 13 label, 11 micro. Boxes inside the white panel are
   drawn with a hairline, never a second background colour. */
#interview-quickstart { background:transparent; }.quickstart-copy { font-size:var(--type-control); }.quickstart-copy small { font-size:var(--type-control); color:var(--text-muted); font-weight:400; }
#rehearsal-form>.card-top { background:transparent; box-shadow:none; }#rehearsal-step-title { font-size:var(--type-title); }#rehearsal-step-hint { font-size:var(--type-control); }#rehearsal-form label { font-size:var(--type-control); }
.interview-progress { font-size:var(--type-small); color:var(--text-muted); }.interview-progress li>span:first-child { background:var(--surface-muted); color:var(--text-muted); }.interview-progress li[aria-current=step] { color:var(--ink); font-weight:700; }.interview-progress li[aria-current=step]>span:first-child,.interview-progress li.complete>span:first-child { background:var(--brand-lime); color:var(--on-lime); }
.interview-how { background:var(--surface); }.interview-how h2 { font-size:var(--type-section); }.interview-how-steps h3 { font-size:var(--type-title); }.interview-how-steps p { font-size:var(--type-body); }.interview-tips .panel-heading h2 { font-size:var(--type-section); }.prep-checklist strong { font-size:var(--type-body); }.prep-checklist small { color:var(--text-muted); font-weight:400; font-size:var(--type-control); }.prep-checklist label:has(input:checked) strong { color:var(--green); }.history-item { background:transparent; }.history-item h3 { font-size:var(--type-body); }.history-item p { font-size:var(--type-control); }
.interview-attachment,.interview-advert-details,.interview-background-details,.interview-cv-upload,.rehearsal-review-summary { background:transparent; border-color:var(--border); }.interview-attachment { font-size:var(--type-control); }.difficulty-picker button { font-size:var(--type-body); }.difficulty-picker button span { font-size:var(--type-control); font-weight:400; }.auth-error { color:var(--danger); background:var(--danger-soft); }.auth-status { color:var(--text-muted); }
/* Supporting surfaces retain their existing behaviour and receive this theme. */
.card:not(.role-card),.surface-card,.auth-card,.question,.result-card,.evidence-card,.notebook-page,.modal,.entry-card,.application-card,.cohort-card,.company-playbook-card,.level-cell,.activity-row,.find-jobs-form,.job-search-result { color:var(--ink); background:var(--surface); border-color:var(--border); border-radius:var(--radius-card); box-shadow:none; }
.card-top,.card-top.plain { color:var(--ink); background:transparent; }
.auth-tabs,.view-toggle,.application-column { background:var(--surface-muted); }
.auth-tab.active,.auth-tabs button[aria-selected=true] { color:var(--on-lime); background:var(--brand-lime); }
.empty-state,.surface-empty { background:transparent; color:var(--text-muted); }.empty-state h3 { font-size:var(--type-title); }.empty-state p { font-size:var(--type-control); }
.pip,.status-chip,.no-score-chip { font-size:var(--type-small); background:var(--surface); border:1px solid var(--border); color:var(--text); }.landing h1 { font-size:56px; }.landing h1 span:last-child { color:var(--green); }.landing-points strong { font-size:var(--type-title); }
.finding,.quote,.artifact-reference,.report-summary>div,.job-guidance { background:var(--mint); color:var(--ink); }
.evidence-card p,.evidence-card blockquote { white-space:pre-line; }.evidence-card h3 { font-size:var(--type-title); }.evidence-card p { font-size:var(--type-control); }
.artifact-note,.queue-item,.seq-item,.triage-btn,.activity-reminder-sticky,.activity-brief-card,.activity-stage .card { background:var(--surface); color:var(--ink); border-color:var(--border); border-radius:12px; box-shadow:none; }
.artifact-note { font-size:var(--type-title); line-height:1.6; }.artifact-note-source { font-size:var(--type-small); }.artifact-selected p { font-size:var(--type-body); }.seq-item { font-size:var(--type-body); }.triage-btn[aria-pressed=true],.queue-item.selected { background:var(--brand-lime); color:var(--on-lime); border-color:var(--ink); }.activity-choice[aria-pressed=true] { background:var(--brand-lime); color:var(--on-lime); }
/* Simulation is the same brand, quieter and denser. */
.sim-shell,.sim-header,.sim-footer,.sim-stage { background:transparent; color:var(--text); box-shadow:none; }
.character,.conversation-workspace,.workspace-support { background:var(--surface); box-shadow:none; }
.workspace-heading h1 { font-size:var(--type-panel); line-height:1.2; letter-spacing:-.025em; }.workspace-kind { font-size:var(--type-small); color:var(--text-muted); background:var(--surface); }
.simulation-brief { background:var(--mint); color:var(--text); }.session-goal-label,.response-progress { font-size:var(--type-small); }.session-goal-copy { font-size:var(--type-control); }
.p-monogram { background:var(--canvas); font-size:var(--type-control); font-weight:700; }.p-id h2 { font-size:var(--type-panel); }.p-id>span { font-size:var(--type-small); text-transform:uppercase; letter-spacing:.05em; font-weight:750; color:var(--text-muted); }.p-id p { font-size:var(--type-control); line-height:1.5; }.scene-still figcaption { font-size:var(--type-small); color:var(--text-muted); }.workspace-context-section h3 { font-size:var(--type-control); }.workspace-context-section p { font-size:var(--type-control); line-height:1.55; }
.studio-state { font-size:var(--type-small); color:var(--text-muted); }.studio-state::before { background:var(--green); }.sim-shell[data-studio-state=thinking] .studio-state::before { background:var(--yellow); }
.transcript { background:transparent; box-shadow:none; }.log-entry { background:var(--bubble); font-size:var(--type-body); line-height:1.55; color:var(--ink); }.log-entry.mine { background:var(--mint); }.log-entry b { color:var(--text-muted); font-size:var(--type-small); letter-spacing:.045em; text-transform:uppercase; }.log-entry p { color:inherit; }
.response-suggestions { background:transparent; box-shadow:none; }.suggestion-label { font-size:var(--type-small); }.response-option { color:var(--ink); background:var(--surface); font-size:var(--type-small); line-height:1.4; font-weight:500; box-shadow:none; }.response-option:hover { background:var(--brand-soft); border-color:var(--green); }
.composer { background:var(--surface); box-shadow:none; }.composer:focus-within { outline:2px solid var(--focus); outline-offset:2px; }.composer textarea { background:transparent; box-shadow:none; font-size:var(--type-body); line-height:1.5; }.composer textarea:focus-visible { outline:none; }.composer .mode-tabs { background:transparent; box-shadow:none; }.composer .mode-tabs button { font-size:var(--type-small); }.send { font-size:24px; font-weight:700; box-shadow:0 2px 0 var(--ink); }
.support-tabs button { font-size:var(--type-small); color:var(--text-muted); }.support-tabs button[aria-selected=true] { background:var(--sky); color:var(--ink); }.support-card h3 { font-size:var(--type-body); }.support-card p { font-size:var(--type-control); line-height:1.6; }.support-reminder { background:var(--warning-soft); font-size:var(--type-small); color:var(--text-muted); }
.completion-card { background:var(--brand-soft); }.completion-card strong { font-size:var(--type-title); }.completion-card p,.studio-recovery p { font-size:var(--type-control); }.studio-recovery { background:var(--warning-soft); }.sim-footer .caption { font-size:var(--type-small); }.video-tile { background:var(--media); color:var(--on-media); }.tile-monogram { font-size:48px; color:var(--on-media); }.captions { font-size:var(--type-body); line-height:1.55; color:var(--text); background:var(--mint); }.voice-console { color:var(--text); background:var(--mint); box-shadow:none; }.voice-console strong { font-size:var(--type-body); }.voice-console p { font-size:var(--type-small); }.voice-console .orb { background:var(--brand-lime); color:var(--on-lime); }.support-panel { background:var(--danger-soft); color:var(--danger); }
.skip-link { background:var(--brand-lime); color:var(--on-lime); }.bottom-dock { background:var(--canvas); }.dock-btn { color:var(--text-muted); font-size:var(--type-small); }.dock-btn.active { background:var(--brand-lime); color:var(--on-lime); }
html.large-text { --type-body:18px; }.large-text .log-entry,.large-text .workspace-context-section p,.large-text .job-brief-story p { font-size:var(--type-title); }.calm-experience *, .calm-experience *::before, .calm-experience *::after { animation:none!important; transition:none!important; }
@media(max-width:740px){body{font-size:15px;}.page-hero h1,.home-hero h1,.rehearsal-hero h1,#screen-rehearse .rehearsal-hero h1{line-height:1.02;}.page-hero .lede{line-height:1.45;}.role-summary{line-height:1.4;}.workspace-heading h1{line-height:1.2;}.composer textarea{font-size:16px;}}
.job-brief-meta span,#screen-briefing .brief-skills .tag,#screen-briefing .tag-row span { background:var(--mint); font-size:var(--type-control); color:var(--ink); }
.brief-details { font-size:var(--type-body); }.brief-details dt { color:var(--text-muted); }.brief-details dd { font-weight:600; }.brief-mode-label { font-size:var(--type-body); font-weight:600; }.brief-intro { font-size:var(--type-title); }.tiny { font-size:var(--type-small); }
.choice-thread>button { background:var(--surface); color:var(--ink); font-size:var(--type-control); }
.choice-thread>button:hover { background:var(--brand-soft); border-color:var(--green); }
.choice-thread>button[aria-pressed=true] { background:var(--brand-lime); color:var(--on-lime); border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink); }
.transcript .bubble { background:var(--bubble); color:var(--ink); font-size:var(--type-title); line-height:1.55; }
.transcript .bubble.me { background:var(--mint); }
.transcript .speaker { color:var(--text-muted); font-size:var(--type-small); font-weight:700; text-transform:uppercase; letter-spacing:.045em; }
.step-number.tone-mint { background:var(--stamp-mint); }

.workspace-support.mobile-open { box-shadow:var(--shadow-popover); }
.reflection-scale>button[aria-pressed=true] { background:var(--brand-lime); color:var(--on-lime); border-color:var(--ink); box-shadow:inset 0 0 0 1px var(--ink); }

.large-text .transcript .bubble,.large-text .composer textarea { font-size:var(--type-title); }

@media(max-width:440px) { .job-card-heading h2,.home-job-card .job-card-heading h2 { font-size:var(--type-title); letter-spacing:-.03em; } }

/* Account and onboarding share the approved product's visual language. */
.header-signin,.auth-submit { background:var(--brand-lime); color:var(--on-lime); border-color:var(--ink); box-shadow:0 2px 0 var(--ink); font-weight:700; }
.header-signin:hover,.auth-submit:hover { background:var(--brand-lime-hover); color:var(--on-lime); text-decoration:none; }
#screen-landing .landing-copy h1 { font-size:clamp(35px,3.6vw,52px); line-height:1.04; }
#screen-landing .landing-copy .lede { font-size:var(--type-title); font-weight:400; }
#screen-landing .landing-points strong { font-size:var(--type-small); font-weight:600; line-height:1.4; }
.auth-heading h2 { font-size:32px; }
.auth-heading p { font-size:var(--type-control); line-height:1.5; }
.auth-card label { font-size:var(--type-control); font-weight:650; }
.auth-card input { font-size:var(--type-body); font-weight:400; }
.auth-connection,.auth-notice { background:var(--mint); color:var(--ink); }
.auth-connection strong { font-size:var(--type-control); }
.auth-connection p,.auth-notice,.connection-actions a { font-size:var(--type-control); line-height:1.5; }
#screen-welcome .age-card { background:transparent; box-shadow:none; }
.onboarding-story h2 { font-size:clamp(32px,3.5vw,48px); line-height:1.08; }
.onboarding-story h2 em { color:var(--green); font-style:normal; }
.onboarding-story p { font-size:var(--type-body); line-height:1.55; }
#profile-stepper li { font-size:var(--type-small); color:var(--text-muted); line-height:1.3; }
#profile-stepper li[aria-current=step] { color:var(--ink); font-weight:700; }
#profile-heading { font-size:clamp(27px,2.7vw,38px); line-height:1.12; }
#profile-copy { font-size:var(--type-control); line-height:1.5; }
#profile-options>button { color:var(--ink); background:var(--surface); transition:background .15s,border-color .15s,transform .15s; }
#profile-options>button:hover { background:var(--brand-soft); border-color:var(--green); transform:translateX(2px); }
#profile-options>button[aria-pressed=true] { background:var(--brand-soft); border-color:var(--green); }
.profile-option-copy>strong { font-family:var(--font-display); font-size:var(--type-title); font-weight:600; line-height:1.25; }
#profile-options .sub { color:var(--text-muted); font-size:var(--type-control); font-weight:400; line-height:1.4; }
.education-choice { background:var(--surface); }
.education-choice label { font-family:var(--font-display); font-weight:600; font-size:var(--type-title); }
.education-choice select { font-size:var(--type-body); background:var(--canvas); }
.education-reassurance { font-size:var(--type-control); line-height:1.5; }
@media(max-width:899px) {
 #screen-landing .landing-copy h1 { font-size:34px; }
 #screen-landing .landing-copy .lede { font-size:var(--type-body); }
 .onboarding-story h2 { font-size:32px; }
 .onboarding-story p { font-size:var(--type-control); }
}
@media(max-width:480px) {
 #screen-landing .landing-copy h1 { font-size:var(--type-section); }
 .auth-heading h2 { font-size:var(--type-section); }
 .auth-heading .eyebrow,.onboarding-story .eyebrow { font-size:var(--type-small); }
 .onboarding-story h2 { font-size:var(--type-section); }
 #profile-heading { font-size:var(--type-section); }
 .profile-option-copy>strong { font-size:var(--type-body); }
}

.tool-hero h1 { font-size:clamp(38px,4vw,56px); line-height:1.06; }
.application-column { background:var(--surface-muted); }
.application-column h2>span { background:var(--surface); color:var(--text-muted); font-size:var(--type-small); }
.application-stage-empty { color:var(--text-muted); font-size:var(--type-control); line-height:1.5; }
.application-card { background:var(--surface); }
.reflection-story>p:not(.lede) { color:var(--text-muted); font-size:var(--type-body); line-height:1.6; }
.reflection-story h1 { font-size:clamp(36px,4vw,52px); }
.plan { background:var(--surface); }
.plan-featured { background:var(--mint); }
.plan .plan-price b { font-family:var(--font-display); font-size:30px; color:var(--ink); }
@media(max-width:600px){.tool-hero h1 { font-size:39px; }}

.confirmation-dialog,.billing-dialog,.checkout-dialog { color:var(--ink); background:var(--surface); box-shadow:var(--shadow-popover); }
.checkout-dialog::backdrop { background:rgba(11,24,37,.36); backdrop-filter:blur(4px); }
.checkout-dialog h2 { font-size:var(--type-panel); }
.checkout-dialog-head { background:var(--canvas); }
.checkout-summary { background:var(--canvas); }
.checkout-summary h3 { font-size:var(--type-title); }
.checkout-price b { font-family:var(--font-display); font-size:34px; line-height:1; color:var(--text); }
.checkout-price span { color:var(--text-muted); font-size:15px; font-weight:600; }
.checkout-includes li { font-size:var(--type-control); color:var(--text); }
.checkout-includes li::before { background:var(--brand-lime); }
.checkout-divider { color:var(--text-muted); font-size:var(--type-control); }
.checkout-divider::before, .checkout-divider::after { background:var(--border); }
.checkout-done h3 { font-size:var(--type-panel); }
.checkout-done p { color:var(--text-muted); }
.confirmation-dialog::backdrop,.billing-dialog::backdrop { background:rgba(11,24,37,.36); backdrop-filter:blur(4px); }
.confirmation-dialog h2,.billing-dialog h2 { font-size:var(--type-section); line-height:1.15; }
.confirmation-dialog p,.billing-dialog-head p { color:var(--text-muted); font-size:var(--type-body); line-height:1.55; }
.billing-dialog-head { background:var(--canvas); }

#staff-content .report-summary>div { background:var(--surface); }
#staff-content .report-summary b { font-family:var(--font-display); font-size:var(--type-section); }
#staff-content .cohort-stats { background:var(--mint); }
.staff-access-panel h2 { font-size:var(--type-section); }
.staff-access-panel p { color:var(--text-muted); line-height:1.6; }

#screen-recovery .landing-copy h1 { font-size:clamp(34px,3.6vw,52px); line-height:1.08; }
#screen-recovery .landing-copy .lede { font-size:var(--type-title); font-weight:400; }
@media(max-width:600px){#screen-recovery .landing-copy h1 { font-size:32px; }#screen-recovery .landing-copy .eyebrow { font-size:var(--type-small); }#screen-recovery .landing-copy .lede { font-size:var(--type-body); }}

#screen-findjobs .find-jobs-form { background:transparent; box-shadow:none; }
.find-jobs-results-toolbar h2 { font-size:var(--type-title); }
#screen-findjobs .find-jobs-suggest button { font-size:var(--type-control); font-weight:600; }
@media(max-width:440px){.find-jobs-results-toolbar h2 { font-size:var(--type-title); }}

/* Jobs index cards and the library sidebar: the shared theme owns their colour,
   type and shadow; app.css and public.css own only their layout. */
.library-facets label>span:not([data-icon]) { font-size:var(--type-control); font-weight:600; }
.rolelist a.rolecard { color:var(--text); background:var(--surface); }
.rolelist a.rolecard:hover { box-shadow:0 3px 0 var(--ink); }
.rolecard-visual i { background:var(--surface); font-size:14px; font-weight:800; box-shadow:0 2px 0 var(--ink); }
.rolecard-visual.tone-lime { background:var(--brand-lime); color:var(--on-lime); }
.rolecard-visual.tone-mint { background:var(--stamp-mint); }
.rolecard-visual.tone-sky { background:var(--sky); }
.rolecard-visual.tone-yellow { background:var(--yellow); }
.rolecard-visual.tone-coral { background:var(--coral); }
.rolecard-body strong { font-size:21px; line-height:1.12; }
.rolecard-summary { font-size:14px; line-height:1.35; color:var(--text-muted); }
.rolecard-meta { font-size:13px; color:var(--text-muted); }

/* ===== Marketing pages: one voice, one scale (19 Sept) ===== */
/* Body copy reads at a comfortable size rather than the old 14px-ish mix. */
body { font-size:17px; }
.section-head h2 { font-size:var(--type-section); }
.section-head p, .section-subhead { font-size:var(--type-body); }
.page-hero .lede { font-size:var(--type-title); line-height:1.45; }
.hero-facts { font-size:15px; }
.jobcard-family { font-size:12px; }
.jobcard-title { font-size:23px; }
.jobcard-try { font-size:16px; font-weight:600; }
.jobcard-try-label { font-size:11px; }
.jobcard p { font-size:15.5px; line-height:1.5; }
.jobcard .meta span.level { font-size:13px; }
.jobcard .meta span.cta { font-size:14px; }
.kinds li { font-size:16px; }
.kinds li svg { color:var(--green); }
.card > h2:first-child { font-size:var(--type-panel); }

/* Footer: column headings are labels, not display type. */
.footer-head { font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); }
.footer-links a { font-size:15px; color:var(--text); }
.footer-brand p { font-size:15px; }
.footer-help { background:var(--surface); }
.footer-help p { font-size:15px; }
.footer-help ul a { font-weight:700; color:var(--text); }
.footer-help ul li { font-weight:700; }
.footer-help small { color:var(--text-muted); font-size:13px; }

/* Blog. The card title matches a job card's, so the two listings read as one
   site rather than two. */
.postcard { color:var(--text); background:var(--surface); }
.postcard:hover { border-color:var(--green); background:var(--brand-soft); }
.postcard h2 { font-size:21px; line-height:1.2; }
.postcard p { font-size:15px; color:var(--text-muted); }
.postcard-meta { font-size:12px; font-weight:650; color:var(--text-muted); letter-spacing:.04em; text-transform:uppercase; }
.post-head h1 { font-size:clamp(32px,4vw,46px); line-height:1.05; }
.post h2 { font-size:26px; }
.post h3 { font-size:19px; }
.post p, .post li { font-size:17px; line-height:1.6; }
.post strong { font-weight:650; }
/* iOS app intro */
.app-intro { background:var(--canvas); }
.app-intro-skip { color:var(--text-muted); font-size:var(--type-control); font-weight:650; }
.app-intro-copy h1 { font-size:34px; line-height:1.06; }
.app-intro-copy p { font-size:var(--type-body); line-height:1.5; }
.app-intro-dots i { background:var(--border); }
.app-intro[data-slide="1"] .app-intro-dots i:nth-child(1),
.app-intro[data-slide="2"] .app-intro-dots i:nth-child(2),
.app-intro[data-slide="3"] .app-intro-dots i:nth-child(3) { background:var(--green); }
.app-intro-actions .btn { font-size:var(--type-body); }
.app-intro-art { -webkit-mask-image:radial-gradient(ellipse 62% 90% at 50% 36%, #000 60%, transparent 100%); mask-image:radial-gradient(ellipse 62% 90% at 50% 36%, #000 60%, transparent 100%); }

/* Cookie consent (public/consent.js). Website only, never in the iOS app. */
.cl-consent { position:fixed; z-index:90; left:16px; right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); max-width:560px; margin-inline:auto; padding:16px 18px; display:flex; flex-wrap:wrap; align-items:center; gap:14px 18px; color:var(--ink); background:var(--surface); border:1px solid var(--border, #d5e0e4); border-radius:var(--radius, 12px); box-shadow:0 18px 48px rgba(11, 24, 37, .18); }
.cl-consent__copy { flex:1 1 280px; margin:0; font-size:14px; line-height:1.5; }
.cl-consent__copy a { color:var(--ink); text-decoration:underline; }
.cl-consent__actions { display:flex; gap:10px; flex:0 0 auto; }
.cl-consent__actions .btn { min-height:44px; min-width:104px; white-space:nowrap; }

/* One type scale on phones: sections and panels step down, everything else holds. */
@media(max-width:740px){ :root { --type-section:24px; --type-panel:20px; } }

/* Clarity pass, 3 October 2026: quiet situation rows, plain step links. */
.job-activities .activity-row { color:var(--text); background:transparent; box-shadow:none; font-family:var(--font-body); font-size:var(--type-control); font-weight:500; line-height:1.3; }
.job-activities .activity-row .ui-icon { color:var(--text-muted); }
.job-activities .activity-row:hover { color:var(--green); }
.job-activities .activity-row.locked { color:var(--text-muted); }
.job-title-link { color:inherit; }
.how-step { color:var(--text); background:transparent; box-shadow:none; }
.how-step .step-number,.interview-how-steps .step-number { background:var(--surface); box-shadow:inset 0 0 0 1.5px var(--ink); font-family:var(--font-display); font-size:var(--type-body); font-weight:700; color:var(--text); }
.how-step-copy>strong { font-family:var(--font-display); font-size:var(--type-title); font-weight:700; line-height:1.2; }
.how-step-copy>span { font-size:var(--type-control); line-height:1.45; color:var(--text-muted); }
.how-step>[data-icon] { color:var(--text-muted); }

/* Design review, 3 October 2026. Lime fills only the one primary action in a
   view and the current selection; everything else is ink, white and border. */
.back-btn { color:var(--text); background:var(--surface); border-color:var(--border); box-shadow:none; font-size:var(--type-control); }
.back-btn:hover { background:var(--surface); border-color:var(--green); box-shadow:none; transform:none; }
.empty-state strong { color:var(--text); font-size:var(--type-body); font-weight:700; }
.empty-state p { color:var(--text-muted); font-size:var(--type-control); }
.p-monogram { background:var(--surface); }


/* Design review, 3 October 2026: page-level visuals. */
.page-hero.compact h1 { font-size:clamp(32px,3.4vw,46px); line-height:1.06; }
.job-brief-meta span,#screen-briefing .job-brief-meta span { background:transparent; color:var(--text-muted); font-size:var(--type-control); }
.brief-options summary { font-size:var(--type-control); font-weight:600; color:var(--text); }
.mode-choice[data-count="1"] button { background:transparent; color:var(--text-muted); box-shadow:none; font-size:var(--type-control); }
.mode-choice[data-count="1"] .mode-icon { display:none; }
.evidence-next { color:var(--text); font-size:var(--type-control); }
#screen-debrief .evidence-card .quote { font-size:var(--type-body); }
#screen-debrief .evidence-card h3 { font-size:var(--type-title); }
.debrief-craft-head { font-size:var(--type-control); color:var(--text-muted); }
.reflection-ends { color:var(--text-muted); font-size:var(--type-small); }
.match-caveat { color:var(--text-muted); font-size:var(--type-control); }
.match-reason { font-size:var(--type-control); color:var(--text); }
.match-evidence-grid p:not(.match-reason) { color:var(--text-muted); }
.journey-entry strong { font-size:var(--type-body); }
.journey-entry .timeline-copy span { font-family:var(--font-body); font-weight:400; font-size:var(--type-control); color:var(--text-muted); }
.journey-entry .timeline-copy small { font-size:var(--type-small); color:var(--text-muted); }
.skill-row strong { font-size:var(--type-control); }
.level-cell:hover { border-color:var(--green); }
.level-cell-head .ui-icon { color:var(--text-muted); }
.transcript .bubble.me { color:var(--text); font-weight:500; }
.history-item .role-icon { display:none; }
.interview-advert-details summary::after { border-color:var(--text-muted); }
#screen-findjobs .cv-job-match { background:var(--surface); }
#screen-findjobs .cv-job-match h2 { font-size:var(--type-body); }
@media(max-width:740px){ #screen-match:not(.has-results) .page-hero h1 { font-size:32px; } }
.mm-link { font-family:var(--font-body); font-size:var(--type-body); font-weight:500; color:var(--text); }
.how-step-copy>span { font-family:var(--font-body); font-weight:400; }
.auth-invite summary,.auth-assurance { font-size:var(--type-small); color:var(--text-muted); }

/* ===== Dark theme (3 October 2026) =====
   Follows the system setting. Only tokens change: deep green-black canvas,
   lifted surfaces, light text, and dark-tinted versions of the supporting
   colours. Lime stays the one action colour, always with dark ink on it. */
@media (prefers-color-scheme: dark) {
 :root {
  color-scheme:dark;
  --canvas:#0e1614; --surface:#16201e; --surface-muted:#1e2a28;
  --text:#edf3f0; --text-muted:#a5b5b3; --border:#2d3c39; --border-strong:#4a5d5a;
  --brand-lime:#c5ef59; --brand-lime-hover:#d3f57c; --brand-soft:#232f19;
  --green:#a7e0c5; --mint:#16302a; --mint-border:#2f5d50;
  --sky:#182a3e; --yellow:#3d3317; --coral:#3d2322; --lilac:#2a2442;
  --accent:#a7e0c5; --accent-hover:#c8eedb;
  --composer-border:#4a5d66; --focus:#8fa8ff;
  --danger:#ff9b91; --danger-soft:#3b1d1b; --warning:#f2d088; --warning-soft:#33290f;
  --media:#0b1312; --primary-edge:#c5ef59;
  --bubble:#1f2b29; --track:#2d3c39; --stamp-mint:#24443b; --placeholder:#7f9290;
  --shadow-popover:0 16px 40px #00000080;
  --hero-radius:22px; --hero-filter:brightness(.94);
 }
 /* Collage art is drawn on white: in dark it sits as a rounded light panel
    instead of multiplying into the canvas (which turned the photos black). */
 html .hero-art, html .home-hero .hero-art, html .auth-art, html .onboarding-story img, html .interview-mountain, html .match-photo { mix-blend-mode:normal; border-radius:var(--hero-radius); filter:var(--hero-filter); }
 html .app-intro-art { filter:var(--hero-filter); }
 /* Chunky outlines stay, softened so every secondary button is not a white box. */
 .btn:not(.primary) { border-color:var(--border-strong); box-shadow:0 2px 0 var(--border-strong); }
 .btn:not(.primary):hover { box-shadow:0 3px 0 var(--border-strong); }
 .profile-btn { box-shadow:none; }
 .billing-banner { color:var(--canvas); }
 .billing-banner p,.billing-banner strong { color:var(--canvas); }
}
/* CP-05: shared stepper visuals. */
.steps li > span:first-child { background:var(--surface-muted); color:var(--text-muted); font-size:var(--type-small); font-weight:700; }
.steps li[aria-current=step] > span:first-child, .steps li.complete > span:first-child { background:var(--brand-lime); color:var(--on-lime); }
.steps li strong { font-size:var(--type-small); font-weight:600; color:var(--text-muted); }
.steps li[aria-current=step] strong { color:var(--text); font-weight:700; }
.saved-role, .history-item { background:var(--surface); color:var(--text); }
.saved-role:hover, .history-item:hover { border-color:var(--green); }
.history-copy strong, .saved-role-open strong { font-size:var(--type-body); }
.history-copy span { font-family:var(--font-body); font-weight:400; font-size:var(--type-control); color:var(--text-muted); }
.history-item .ui-icon, .journey-entry .ui-icon { color:var(--text-muted); }
/* CP-14: one form-label style. */
.field label, .find-jobs-field label { font-size:var(--type-control); font-weight:650; color:var(--text); }

