/* Foundation public apply: Stripe / Vercel product language
   Overrides legacy parchment/crimson inline styles on /apply/* pages. */

:root {
    --fi-dark-text: #09090b !important;
    --fi-deep-crimson: #18181b !important;
    --fi-crimson: #2563eb !important;
    --fi-dark-parchment: #ffffff !important;
    --fi-parchment: #fafafa !important;
    --fi-ig-red: #dc2626 !important;
    --fi-font-title: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
    --fi-font-body: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;

    --fdt-bg: #fafafa;
    --fdt-elev: #ffffff;
    --fdt-muted: #f4f4f5;
    --fdt-border: #e4e4e7;
    --fdt-border-strong: #d4d4d8;
    --fdt-text: #09090b;
    --fdt-text-secondary: #52525b;
    --fdt-text-muted: #71717a;
    --fdt-accent: #18181b;
    --fdt-accent-fg: #fafafa;
    --fdt-focus: #2563eb;
    --fdt-danger: #dc2626;
    --fdt-danger-bg: #fef2f2;
    --fdt-success: #16a34a;
    --fdt-success-bg: #f0fdf4;
    --fdt-warn: #ea580c;
    --fdt-warn-bg: #fff7ed;
    --fdt-radius: 8px;
    --fdt-shadow: 0 1px 2px rgba(0, 0, 0, 0.04), 0 1px 3px rgba(0, 0, 0, 0.06);
    /* Portal token aliases so shared components match apply pages */
    --fdt-portal-bg: var(--fdt-bg);
    --fdt-portal-elev: var(--fdt-elev);
    --fdt-portal-muted-bg: var(--fdt-muted);
    --fdt-portal-border: var(--fdt-border);
    --fdt-portal-border-strong: var(--fdt-border-strong);
    --fdt-portal-text: var(--fdt-text);
    --fdt-portal-secondary: var(--fdt-text-secondary);
    --fdt-portal-muted: var(--fdt-text-muted);
    --fdt-portal-accent: var(--fdt-accent);
    --fdt-portal-accent-fg: var(--fdt-accent-fg);
    --fdt-portal-focus: var(--fdt-focus);
    --fdt-portal-input-bg: var(--fdt-bg);
    --fdt-portal-shadow: var(--fdt-shadow);
}

html[data-theme="dark"] {
    --fi-dark-text: #fafafa !important;
    --fi-deep-crimson: #fafafa !important;
    --fi-crimson: #60a5fa !important;
    --fi-dark-parchment: #18181b !important;
    --fi-parchment: #09090b !important;
    --fdt-bg: #09090b;
    --fdt-elev: #18181b;
    --fdt-muted: #27272a;
    --fdt-border: #27272a;
    --fdt-border-strong: #3f3f46;
    --fdt-text: #fafafa;
    --fdt-text-secondary: #a1a1aa;
    --fdt-text-muted: #71717a;
    --fdt-accent: #fafafa;
    --fdt-accent-fg: #09090b;
    --fdt-focus: #3b82f6;
    --fdt-danger: #f87171;
    --fdt-danger-bg: #450a0a;
    --fdt-success: #4ade80;
    --fdt-success-bg: #14532d;
    --fdt-warn: #fb923c;
    --fdt-warn-bg: #431407;
    --fdt-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
    --fdt-portal-bg: var(--fdt-bg);
    --fdt-portal-elev: var(--fdt-elev);
    --fdt-portal-muted-bg: var(--fdt-muted);
    --fdt-portal-border: var(--fdt-border);
    --fdt-portal-border-strong: var(--fdt-border-strong);
    --fdt-portal-text: var(--fdt-text);
    --fdt-portal-secondary: var(--fdt-text-secondary);
    --fdt-portal-muted: var(--fdt-text-muted);
    --fdt-portal-accent: var(--fdt-accent);
    --fdt-portal-accent-fg: var(--fdt-accent-fg);
    --fdt-portal-focus: var(--fdt-focus);
    --fdt-portal-input-bg: #111113;
    --fdt-portal-shadow: var(--fdt-shadow);
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) {
        --fi-dark-text: #fafafa !important;
        --fi-deep-crimson: #fafafa !important;
        --fi-crimson: #60a5fa !important;
        --fi-dark-parchment: #18181b !important;
        --fi-parchment: #09090b !important;
        --fdt-bg: #09090b;
        --fdt-elev: #18181b;
        --fdt-muted: #27272a;
        --fdt-border: #27272a;
        --fdt-border-strong: #3f3f46;
        --fdt-text: #fafafa;
        --fdt-text-secondary: #a1a1aa;
        --fdt-text-muted: #71717a;
        --fdt-accent: #fafafa;
        --fdt-accent-fg: #09090b;
        --fdt-focus: #3b82f6;
        --fdt-danger: #f87171;
        --fdt-danger-bg: #450a0a;
        --fdt-success: #4ade80;
        --fdt-success-bg: #14532d;
        --fdt-warn: #fb923c;
        --fdt-warn-bg: #431407;
        --fdt-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
    }
}

html, body {
    background: var(--fdt-bg) !important;
    color: var(--fdt-text) !important;
    font-family: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
    -webkit-font-smoothing: antialiased;
}

/* ── Apply gate ── */
.gate-shell {
    padding: 32px 16px 48px !important;
}

.gate-brand img {
    max-height: 36px !important;
    filter: none !important;
}

.gate-card {
    background: var(--fdt-elev) !important;
    border: 1px solid var(--fdt-border) !important;
    border-radius: 12px !important;
    box-shadow: var(--fdt-shadow) !important;
    padding: 28px 24px !important;
}

.gate-card h1,
.gate-disclaimer-heading {
    font-family: inherit !important;
    font-size: 22px !important;
    font-weight: 600 !important;
    letter-spacing: -0.02em !important;
    color: var(--fdt-text) !important;
}

.gate-intro {
    color: var(--fdt-text-secondary) !important;
    opacity: 1 !important;
    font-size: 14px !important;
    font-weight: 400 !important;
}

.gate-disclaimer {
    background: var(--fdt-muted) !important;
    border: 1px solid var(--fdt-border) !important;
    border-radius: 8px !important;
    color: var(--fdt-text-secondary) !important;
    font-size: 13px !important;
    max-height: 280px !important;
}

.gate-disclaimer h1,
.gate-disclaimer h2,
.gate-disclaimer h3,
.gate-disclaimer h4 {
    font-family: inherit !important;
    color: var(--fdt-text) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
}

.gate-disclaimer a,
.gate-check a {
    color: var(--fdt-focus) !important;
    font-weight: 500 !important;
}

.gate-disclaimer strong,
.gate-disclaimer b {
    color: var(--fdt-text) !important;
}

.gate-check {
    border-top-color: var(--fdt-border) !important;
    color: var(--fdt-text) !important;
    font-weight: 500 !important;
    font-size: 13px !important;
}

.gate-check input {
    accent-color: var(--fdt-accent) !important;
}

.gate-error {
    background: var(--fdt-danger-bg) !important;
    border: 1px solid color-mix(in srgb, var(--fdt-danger) 35%, transparent) !important;
    color: var(--fdt-danger) !important;
    border-radius: 8px !important;
}

.gate-warn {
    background: var(--fdt-warn-bg) !important;
    border: 1px solid var(--fdt-border-strong) !important;
    color: var(--fdt-text) !important;
    border-radius: 8px !important;
}

.gate-verify-label,
.gate-hint {
    color: var(--fdt-text-muted) !important;
    opacity: 1 !important;
    font-weight: 500 !important;
}

button.gate-submit {
    background: var(--fdt-accent) !important;
    color: var(--fdt-accent-fg) !important;
    border-radius: 6px !important;
    box-shadow: none !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    padding: 12px 16px !important;
}

button.gate-submit:hover {
    background: var(--fdt-accent) !important;
    filter: brightness(1.08);
}

.gate-lang-bar__label {
    color: var(--fdt-text-muted) !important;
    opacity: 1 !important;
}

.gate-lang-bar__link {
    color: var(--fdt-focus) !important;
    font-weight: 500 !important;
}

.gate-lang-bar__link.is-active {
    color: var(--fdt-text) !important;
}

/* ── Apply start / multi-step wall ── */
.wall {
    background: transparent !important;
}

.brand img {
    max-height: 36px !important;
}

.subtitle {
    color: var(--fdt-text-secondary) !important;
    font-size: 14px !important;
}

.wall h1,
.step-title {
    font-family: inherit !important;
    color: var(--fdt-text) !important;
    font-weight: 600 !important;
    letter-spacing: -0.02em !important;
}

.wrap {
    background: var(--fdt-elev) !important;
    border: 1px solid var(--fdt-border) !important;
    border-radius: 12px !important;
    box-shadow: var(--fdt-shadow) !important;
}

.step-card {
    border: 1px solid var(--fdt-border) !important;
    background: var(--fdt-muted) !important;
    color: var(--fdt-text-muted) !important;
    border-radius: 8px !important;
}

.step-card strong {
    color: var(--fdt-text) !important;
}

.step-card.active {
    border-color: var(--fdt-text) !important;
    background: var(--fdt-elev) !important;
    color: var(--fdt-text) !important;
    box-shadow: inset 0 0 0 1px var(--fdt-text);
}

.step-card.done {
    border-color: color-mix(in srgb, var(--fdt-success) 45%, var(--fdt-border)) !important;
    background: var(--fdt-success-bg) !important;
    color: var(--fdt-success) !important;
}

.step-help,
.assist,
.hint {
    color: var(--fdt-text-muted) !important;
}

label {
    color: var(--fdt-text) !important;
    font-weight: 500 !important;
    font-size: 13px !important;
}

/* Mandatory field marker: always red asterisk */
.req,
span.req,
label .req,
.fi-req-star {
    color: #dc2626 !important;
    font-weight: 700 !important;
}

input,
select,
textarea {
    border: 1px solid var(--fdt-border-strong) !important;
    border-radius: 6px !important;
    background: var(--fdt-bg) !important;
    color: var(--fdt-text) !important;
    font-size: 14px !important;
}

input:focus,
select:focus,
textarea:focus {
    border-color: var(--fdt-focus) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--fdt-focus) 22%, transparent) !important;
}

.cognitive-check,
.spoken-language-box,
.framework-catalog-box,
.legal-consent-wrap {
    background: var(--fdt-muted) !important;
    border: 1px solid var(--fdt-border) !important;
    border-radius: 8px !important;
}

.cognitive-step-callout {
    background: var(--fdt-muted) !important;
    border-left: 3px solid var(--fdt-text) !important;
    color: var(--fdt-text-secondary) !important;
    border-radius: 8px !important;
}

.framework-catalog-box h3,
.legal-consent-title {
    color: var(--fdt-text) !important;
}

.native-language-chip {
    background: var(--fdt-elev) !important;
    border-color: var(--fdt-border) !important;
    color: var(--fdt-text) !important;
}

.native-language-chip button,
.other-language-remove {
    color: var(--fdt-text-secondary) !important;
}

.legal-consent-item {
    border-top-color: var(--fdt-border) !important;
}

.legal-consent-label,
.legal-consent-help {
    color: var(--fdt-text-secondary) !important;
}

.legal-consent-label a {
    color: var(--fdt-focus) !important;
}

.legal-consent-item input[type="checkbox"],
.cognitive-check input {
    accent-color: var(--fdt-accent) !important;
}

.review-table th,
.review-table td {
    border-color: var(--fdt-border) !important;
    color: var(--fdt-text) !important;
}

.review-table th {
    background: var(--fdt-muted) !important;
    font-size: 11px !important;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--fdt-text-muted) !important;
}

.error,
.step-error {
    background: var(--fdt-danger-bg) !important;
    border: 1px solid color-mix(in srgb, var(--fdt-danger) 35%, transparent) !important;
    color: var(--fdt-danger) !important;
    border-radius: 8px !important;
}

/* Form actions only — never paint TinyMCE toolbar/menu buttons (dark accent
   on light mode made editor icons unreadable). */
button:not([class*="tox-"]),
.actions button:not([class*="tox-"]),
.actions .btn,
button[type="submit"]:not([class*="tox-"]),
button.gate-submit {
    background: var(--fdt-accent) !important;
    color: var(--fdt-accent-fg) !important;
    border-radius: 6px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
}

button.secondary:not([class*="tox-"]) {
    background: var(--fdt-elev) !important;
    color: var(--fdt-text) !important;
    border: 1px solid var(--fdt-border-strong) !important;
}

button:not([class*="tox-"]):hover {
    filter: brightness(1.06);
}

/* TinyMCE (motivation letter etc.) — restore readable chrome in light + dark */
.tox-tinymce {
    border-radius: 8px !important;
    border: 1px solid var(--fdt-border-strong, #d4d4d8) !important;
}

.tox .tox-editor-header,
.tox .tox-toolbar,
.tox .tox-toolbar__primary,
.tox .tox-toolbar__overflow,
.tox .tox-menubar,
.tox .tox-statusbar {
    background: var(--fdt-elev, #ffffff) !important;
    border-color: var(--fdt-border, #e4e4e7) !important;
    color: var(--fdt-text, #09090b) !important;
    box-shadow: none !important;
}

.tox .tox-tbtn,
.tox .tox-tbtn--select,
.tox .tox-mbtn,
.tox .tox-split-button,
.tox .tox-split-button__chevron {
    background: transparent !important;
    color: var(--fdt-text, #09090b) !important;
    border: 0 !important;
    box-shadow: none !important;
    filter: none !important;
}

.tox .tox-tbtn svg,
.tox .tox-tbtn__select-chevron svg,
.tox .tox-split-button__chevron svg {
    fill: currentColor !important;
}

.tox .tox-tbtn__select-label,
.tox .tox-mbtn__select-label,
.tox .tox-statusbar__path-item,
.tox .tox-statusbar__wordcount,
.tox .tox-statusbar__text-container {
    color: var(--fdt-text, #09090b) !important;
}

.tox .tox-tbtn:hover:not(:disabled):not(.tox-tbtn--disabled),
.tox .tox-tbtn--enabled,
.tox .tox-tbtn--enabled:hover,
.tox .tox-mbtn:hover:not(:disabled):not(.tox-mbtn--active),
.tox .tox-mbtn--active,
.tox .tox-split-button:hover {
    background: var(--fdt-muted, #f4f4f5) !important;
    color: var(--fdt-text, #09090b) !important;
}

.tox .tox-tbtn:focus::after,
.tox .tox-split-button:focus::after,
.tox .tox-mbtn:focus::after {
    border-color: var(--fdt-focus, #2563eb) !important;
    box-shadow: none !important;
}

.tox .tox-collection__item,
.tox .tox-menu {
    color: var(--fdt-text, #09090b) !important;
}

/* Dark theme: match product shell tokens (explicit data-theme or OS dark without light override) */
html[data-theme="dark"] .tox .tox-editor-header,
html[data-theme="dark"] .tox .tox-toolbar,
html[data-theme="dark"] .tox .tox-toolbar__primary,
html[data-theme="dark"] .tox .tox-menubar,
html[data-theme="dark"] .tox .tox-statusbar {
    background: var(--fdt-elev, #18181b) !important;
    border-color: var(--fdt-border, #27272a) !important;
    color: var(--fdt-text, #fafafa) !important;
}

html[data-theme="dark"] .tox .tox-tbtn,
html[data-theme="dark"] .tox .tox-mbtn,
html[data-theme="dark"] .tox .tox-tbtn__select-label,
html[data-theme="dark"] .tox .tox-mbtn__select-label,
html[data-theme="dark"] .tox .tox-statusbar__wordcount {
    color: var(--fdt-text, #fafafa) !important;
    fill: currentColor !important;
}

html[data-theme="dark"] .tox .tox-tbtn:hover:not(:disabled),
html[data-theme="dark"] .tox .tox-mbtn:hover:not(:disabled),
html[data-theme="dark"] .tox .tox-tbtn--enabled {
    background: var(--fdt-muted, #27272a) !important;
    color: var(--fdt-text, #fafafa) !important;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .tox .tox-editor-header,
    html:not([data-theme="light"]) .tox .tox-toolbar,
    html:not([data-theme="light"]) .tox .tox-toolbar__primary,
    html:not([data-theme="light"]) .tox .tox-menubar,
    html:not([data-theme="light"]) .tox .tox-statusbar {
        background: var(--fdt-elev, #18181b) !important;
        border-color: var(--fdt-border, #27272a) !important;
        color: var(--fdt-text, #fafafa) !important;
    }

    html:not([data-theme="light"]) .tox .tox-tbtn,
    html:not([data-theme="light"]) .tox .tox-mbtn,
    html:not([data-theme="light"]) .tox .tox-tbtn__select-label,
    html:not([data-theme="light"]) .tox .tox-mbtn__select-label,
    html:not([data-theme="light"]) .tox .tox-statusbar__wordcount {
        color: var(--fdt-text, #fafafa) !important;
        fill: currentColor !important;
    }

    html:not([data-theme="light"]) .tox .tox-tbtn:hover:not(:disabled),
    html:not([data-theme="light"]) .tox .tox-mbtn:hover:not(:disabled),
    html:not([data-theme="light"]) .tox .tox-tbtn--enabled {
        background: var(--fdt-muted, #27272a) !important;
        color: var(--fdt-text, #fafafa) !important;
    }
}

/* Language bar (apply walls + public onboarding shells) */
.wall-lang-bar,
.fi-onboarding-lang-bar {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px 12px !important;
    width: min(1360px, 96vw) !important;
    margin: 8px auto 0 !important;
    padding: 0 4px !important;
    box-sizing: border-box !important;
}

.wall-lang-bar__label,
.fi-onboarding-lang-bar__label {
    color: var(--fdt-text-muted) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}

.wall-lang-bar__links,
.fi-onboarding-lang-bar__links {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    align-items: center !important;
}

.wall-lang-bar__link,
.fi-onboarding-lang-bar__link {
    color: var(--fdt-focus) !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    padding: 4px 8px !important;
    border-radius: 999px !important;
    border: 1px solid transparent !important;
}

.wall-lang-bar__link.is-active,
.fi-onboarding-lang-bar__link.is-active {
    color: var(--fdt-text) !important;
    background: var(--fdt-muted) !important;
    border-color: var(--fdt-border) !important;
    font-weight: 650 !important;
    pointer-events: none !important;
}

/* ── Challenge / cognitive / result common ── */
.challenge-shell,
.iq-shell,
.result-shell,
.onboarding-shell,
.role-shell,
.nominate-shell {
    background: var(--fdt-bg) !important;
}

.card,
.panel,
.result-card,
.challenge-card {
    background: var(--fdt-elev) !important;
    border: 1px solid var(--fdt-border) !important;
    border-radius: 12px !important;
    box-shadow: var(--fdt-shadow) !important;
}

/* Theme toggle on apply pages */
.foundation-apply-theme-toggle {
    position: fixed;
    top: 14px;
    right: 14px;
    z-index: 10001;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    border: 1px solid var(--fdt-border-strong);
    background: var(--fdt-elev);
    color: var(--fdt-text);
    box-shadow: var(--fdt-shadow);
    cursor: pointer;
    display: grid;
    place-items: center;
    font-size: 15px;
    line-height: 1;
    padding: 0;
}

.foundation-apply-theme-toggle:hover {
    background: var(--fdt-muted);
}

/* ── Role apply start (mentor / investor / donor / partner) ── */
:root {
    --bg: #fafafa !important;
    --paper: #09090b !important;
    --ink: #09090b !important;
    --accent: #18181b !important;
    --muted: #71717a !important;
}

html[data-theme="dark"] {
    --bg: #09090b !important;
    --paper: #fafafa !important;
    --ink: #fafafa !important;
    --accent: #fafafa !important;
    --muted: #a1a1aa !important;
}

body {
    background: var(--fdt-bg) !important;
    color: var(--fdt-text) !important;
    font-family: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
}

/* Kill dark crimson gradients from role-start / gate inline CSS */
body[style],
html body {
    background-image: none !important;
}

.lang-bar {
    max-width: 1080px !important;
    margin: 16px auto 0 !important;
    padding: 0 16px !important;
    color: var(--fdt-text-muted) !important;
    font-size: 12px !important;
}

.lang-bar a {
    color: var(--fdt-focus) !important;
    opacity: 1 !important;
    font-weight: 500 !important;
    text-decoration: none !important;
}

.lang-bar a.is-active {
    color: var(--fdt-text) !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}

.shell {
    max-width: 1080px !important;
    margin: 8px auto 48px !important;
    padding: 0 16px !important;
}

.brand img {
    height: 36px !important;
    max-height: 36px !important;
    filter: none !important;
}

.card {
    background: var(--fdt-elev) !important;
    color: var(--fdt-text) !important;
    border: 1px solid var(--fdt-border) !important;
    border-radius: 12px !important;
    box-shadow: var(--fdt-shadow) !important;
    padding: 24px !important;
}

.card h2 {
    color: var(--fdt-text) !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    letter-spacing: -0.02em !important;
}

.subtitle {
    color: var(--fdt-text-secondary) !important;
    font-size: 14px !important;
}

.section-title {
    color: var(--fdt-text-muted) !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
}

.section-subtitle {
    color: var(--fdt-text-secondary) !important;
    font-size: 13px !important;
}

.section-divider {
    border-top-color: var(--fdt-border) !important;
}

.investor-stepper {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    align-items: center !important;
    background: var(--fdt-muted) !important;
    border: 1px solid var(--fdt-border) !important;
    border-radius: 14px !important;
    padding: 12px 14px !important;
    margin: 0 0 22px !important;
}

.investor-step-chip {
    background: var(--fdt-elev) !important;
    border: 1px solid var(--fdt-border) !important;
    color: var(--fdt-text-secondary) !important;
    border-radius: 999px !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    letter-spacing: -0.01em !important;
    padding: 8px 14px !important;
    box-shadow: none !important;
    transition: border-color 120ms ease, background 120ms ease, color 120ms ease !important;
}

.investor-step-chip.is-active {
    background: var(--fdt-accent) !important;
    border-color: var(--fdt-accent) !important;
    color: var(--fdt-accent-fg) !important;
}

.investor-step-chip.is-done {
    border-color: color-mix(in srgb, var(--fdt-success) 40%, var(--fdt-border)) !important;
    color: var(--fdt-success) !important;
    background: var(--fdt-success-bg) !important;
}

/* Investor multi-selects: modern list, not giant empty boxes */
.wall select[multiple],
.shell select[multiple],
.wrap select[multiple],
form select[multiple] {
    min-height: 148px !important;
    max-height: 220px !important;
    padding: 8px !important;
    border-radius: 12px !important;
    border: 1px solid var(--fdt-border-strong) !important;
    background: var(--fdt-bg) !important;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.03) !important;
    scrollbar-width: thin;
}

.wall select[multiple] option,
.shell select[multiple] option,
.wrap select[multiple] option,
form select[multiple] option {
    padding: 9px 12px !important;
    margin: 2px 0 !important;
    border-radius: 8px !important;
    color: var(--fdt-text) !important;
    background: transparent !important;
}

.wall select[multiple] option:checked,
.shell select[multiple] option:checked,
.wrap select[multiple] option:checked,
form select[multiple] option:checked {
    background: color-mix(in srgb, var(--fdt-accent) 12%, var(--fdt-elev)) linear-gradient(0deg, color-mix(in srgb, var(--fdt-accent) 12%, var(--fdt-elev)), color-mix(in srgb, var(--fdt-accent) 12%, var(--fdt-elev))) !important;
    color: var(--fdt-text) !important;
    font-weight: 600 !important;
}

.wall .field,
.shell .field,
.wrap .field {
    margin-bottom: 16px !important;
}

.wall .field > label,
.shell .field > label,
.wrap .field > label {
    display: block !important;
    margin-bottom: 6px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: -0.01em !important;
}

.wall .assist,
.shell .assist,
.wrap .assist,
.wall .hint,
.shell .hint {
    margin-top: 6px !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
}

.wall h1,
.shell h1 {
    font-size: clamp(1.45rem, 2.4vw, 1.85rem) !important;
    letter-spacing: -0.03em !important;
    margin-bottom: 6px !important;
}

.wall .subtitle,
.shell .subtitle {
    max-width: 52ch !important;
    margin-bottom: 20px !important;
}

.section-title {
    margin-top: 8px !important;
    margin-bottom: 4px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color: var(--fdt-text-muted) !important;
}

.section-subtitle {
    margin-bottom: 14px !important;
}

/* Single-line controls */
.wall input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.wall select:not([multiple]),
.shell input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.shell select:not([multiple]),
.wrap input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.wrap select:not([multiple]) {
    min-height: 44px !important;
    padding: 10px 12px !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    transition: border-color 120ms ease, box-shadow 120ms ease !important;
}

.wall input:focus,
.wall select:focus,
.wall textarea:focus,
.shell input:focus,
.shell select:focus,
.shell textarea:focus,
.wrap input:focus,
.wrap select:focus,
.wrap textarea:focus {
    border-color: var(--fdt-focus) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--fdt-focus) 18%, transparent) !important;
    outline: none !important;
}

.wall textarea,
.shell textarea,
.wrap textarea {
    min-height: 110px !important;
    padding: 12px !important;
    border-radius: 12px !important;
    line-height: 1.45 !important;
}

.wall .btn.primary,
.shell .btn.primary,
.wrap .btn.primary,
button.btn.primary {
    min-height: 44px !important;
    border-radius: 10px !important;
    padding: 11px 18px !important;
}

.wall .btn,
.shell .btn {
    border-radius: 10px !important;
}

/* Grid fields breathe better on desktop */
@media (min-width: 860px) {
    .wall .grid-2,
    .shell .grid-2,
    .wrap .grid-2 {
        gap: 14px 16px !important;
    }
}

.btn {
    border: 1px solid var(--fdt-border-strong) !important;
    border-radius: 6px !important;
    background: var(--fdt-elev) !important;
    color: var(--fdt-text) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    padding: 10px 14px !important;
}

.btn.primary {
    background: var(--fdt-accent) !important;
    color: var(--fdt-accent-fg) !important;
    border-color: var(--fdt-accent) !important;
}

.btn.primary:hover {
    filter: brightness(1.08);
}

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
    border: 1px solid var(--fdt-border-strong) !important;
    border-radius: 6px !important;
    background: var(--fdt-bg) !important;
    color: var(--fdt-text) !important;
}

.spoken-language-box,
.investor-stepper {
    background: var(--fdt-muted) !important;
    border-color: var(--fdt-border) !important;
}

.native-language-chip {
    background: var(--fdt-elev) !important;
    border-color: var(--fdt-border) !important;
}

.native-language-chip button,
.other-language-remove,
.checks a {
    color: var(--fdt-focus) !important;
}

.checks input[type="checkbox"] {
    accent-color: var(--fdt-accent) !important;
}

.assist {
    color: var(--fdt-text-muted) !important;
}

/* Gate: use standard logo contrast on light bg */
.gate-brand img {
    filter: none !important;
    max-height: 36px !important;
}

/* Prefer dark logo on light product pages if light logo was used for dark gate */
.gate-shell,
.shell,
.wall {
    color: var(--fdt-text);
}

/* ── 100% mobile responsive (apply surfaces) ── */
html, body {
    max-width: 100vw !important;
    overflow-x: hidden !important;
}

.gate-shell,
.shell,
.wall,
.wrap,
.gate-card,
.card {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.gate-brand img,
.brand img {
    height: 48px !important;
    max-height: 48px !important;
    max-width: min(200px, 70vw) !important;
    width: auto !important;
}

@media (max-width: 900px) {
    .gate-shell,
    .shell,
    .wall {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .gate-card,
    .card,
    .wrap {
        width: 100% !important;
        max-width: 100% !important;
        border-radius: 12px !important;
        padding: 16px !important;
    }

    .grid {
        grid-template-columns: 1fr !important;
    }

    .c6, .c4, .c12 {
        grid-column: span 1 !important;
        width: 100% !important;
    }

    button.gate-submit,
    .btn,
    .btn.primary,
    .actions .btn,
    button[type="submit"]:not([class*="tox-"]) {
        width: 100% !important;
        min-height: 44px !important;
        font-size: 16px !important;
    }

    input:not([type="checkbox"]):not([type="radio"]),
    select,
    textarea {
        min-height: 44px !important;
        font-size: 16px !important;
    }

    .step-cards {
        grid-template-columns: 1fr 1fr !important;
    }

    .other-language-row {
        grid-template-columns: 1fr !important;
    }

    .actions {
        flex-direction: column !important;
        align-items: stretch !important;
    }
}

@media (max-width: 480px) {
    .step-cards {
        grid-template-columns: 1fr !important;
    }

    .gate-brand img,
    .brand img {
        height: 40px !important;
        max-height: 40px !important;
    }
}

/* ── Public onboarding / external upload surfaces (kill parchment legacy) ── */
.wrap {
    width: min(1120px, 94vw) !important;
    max-width: 1120px !important;
    margin: 24px auto 48px !important;
    padding: 22px 20px !important;
    background: var(--fdt-elev) !important;
    border: 1px solid var(--fdt-border) !important;
    border-radius: 12px !important;
    box-shadow: var(--fdt-shadow) !important;
    color: var(--fdt-text) !important;
    box-sizing: border-box !important;
}

.wrap h1,
.wrap h2,
.wrap h3 {
    font-family: inherit !important;
    color: var(--fdt-text) !important;
    font-weight: 600 !important;
    letter-spacing: -0.02em !important;
}

.wrap h1 {
    margin: 0 0 8px !important;
    font-size: clamp(1.35rem, 2.5vw, 1.65rem) !important;
}

.wrap h3 {
    margin: 0 0 10px !important;
    font-size: 1.05rem !important;
}

.wrap .muted {
    color: var(--fdt-text-secondary) !important;
    margin: 0 0 14px !important;
    line-height: 1.45 !important;
}

.wrap .ok {
    color: var(--fdt-success) !important;
    font-weight: 600 !important;
}

.wrap .err {
    color: var(--fdt-danger) !important;
    font-weight: 600 !important;
}

.wrap .pill {
    display: inline-block !important;
    padding: 4px 10px !important;
    border-radius: 999px !important;
    background: var(--fdt-muted) !important;
    color: var(--fdt-text-secondary) !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    border: 1px solid var(--fdt-border) !important;
}

.wrap .alerts {
    margin-bottom: 14px !important;
}

.wrap .alert {
    border-radius: 8px !important;
    padding: 10px 12px !important;
    margin: 0 0 8px !important;
    font-weight: 600 !important;
    font-size: 13px !important;
}

.wrap .alert.ok {
    background: var(--fdt-success-bg) !important;
    border: 1px solid color-mix(in srgb, var(--fdt-success) 35%, var(--fdt-border)) !important;
    color: var(--fdt-success) !important;
}

.wrap .alert.err {
    background: var(--fdt-danger-bg) !important;
    border: 1px solid color-mix(in srgb, var(--fdt-danger) 35%, var(--fdt-border)) !important;
    color: var(--fdt-danger) !important;
}

.role-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
    align-items: stretch !important;
}

.role-stack {
    display: flex !important;
    flex-direction: column !important;
    gap: 18px !important;
}

.onboarding-phase-banner {
    margin: 0 0 4px !important;
    padding: 10px 12px !important;
    border-radius: 8px !important;
    border: 1px solid var(--fdt-border) !important;
    background: var(--fdt-muted) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
}

.onboarding-phase-banner.ok {
    background: var(--fdt-success-bg) !important;
    border-color: color-mix(in srgb, var(--fdt-success) 35%, var(--fdt-border)) !important;
    color: var(--fdt-success) !important;
}

.consent-line {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px 14px !important;
    margin: 0 0 12px !important;
}

.consent-line-text {
    margin: 0 !important;
    flex: 1 1 240px !important;
}

.consent-resend-form {
    margin: 0 !important;
    flex: 0 0 auto !important;
}

.btn-consent-resend {
    white-space: nowrap !important;
    min-height: 36px !important;
    padding: 8px 12px !important;
    font-size: 12.5px !important;
}

.consent-resend-wait {
    margin: 0 !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    flex: 0 0 auto !important;
}

.role-card {
    border: 1px solid var(--fdt-border) !important;
    border-radius: 12px !important;
    padding: 14px !important;
    background: var(--fdt-elev) !important;
    color: var(--fdt-text) !important;
}

.role-card-wide {
    padding: 18px !important;
}

.role-card-head {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin-bottom: 8px !important;
}

.role-card-head h3 {
    margin: 0 0 6px !important;
}

.role-card.locked {
    opacity: 0.72 !important;
}

.role-meta {
    margin: 0 0 10px !important;
    color: var(--fdt-text-secondary) !important;
}

.required-list {
    margin: 6px 0 12px 18px !important;
    padding: 0 !important;
    color: var(--fdt-text) !important;
}

.upload-form,
.upload-row {
    border: 1px solid var(--fdt-border) !important;
    border-radius: 10px !important;
    padding: 10px !important;
    background: var(--fdt-muted) !important;
}

/* ---- Card upload slots (public onboarding, all roles) ---- */
.status-chip {
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
    padding: 3px 10px !important;
    border-radius: 999px !important;
    font-size: 11px !important;
    font-weight: 650 !important;
    letter-spacing: 0.01em !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
    border: 1px solid var(--fdt-border) !important;
    background: var(--fdt-muted) !important;
    color: var(--fdt-text-secondary) !important;
}

.status-chip-empty {
    background: var(--fdt-muted) !important;
    color: var(--fdt-text-muted) !important;
    border-color: var(--fdt-border) !important;
}

.status-chip-pending,
.status-chip-pending_review {
    background: var(--fdt-warn-bg) !important;
    color: var(--fdt-warn) !important;
    border-color: color-mix(in srgb, var(--fdt-warn) 40%, var(--fdt-border)) !important;
}

.status-chip-approved {
    background: var(--fdt-success-bg) !important;
    color: var(--fdt-success) !important;
    border-color: color-mix(in srgb, var(--fdt-success) 40%, var(--fdt-border)) !important;
}

.status-chip-rejected_resubmit,
.status-chip-fraudulent {
    background: var(--fdt-danger-bg) !important;
    color: var(--fdt-danger) !important;
    border-color: color-mix(in srgb, var(--fdt-danger) 40%, var(--fdt-border)) !important;
}

.status-chip-optional {
    background: transparent !important;
    color: var(--fdt-text-muted) !important;
    border-style: dashed !important;
}

.status-chip-choose-one {
    background: color-mix(in srgb, var(--fdt-focus) 12%, var(--fdt-elev)) !important;
    color: var(--fdt-focus) !important;
    border-color: color-mix(in srgb, var(--fdt-focus) 40%, var(--fdt-border)) !important;
}

.upload-type-group {
    margin: 14px 0 0 !important;
    padding: 14px !important;
    border-radius: 12px !important;
    border: 1px solid var(--fdt-border) !important;
    background: color-mix(in srgb, var(--fdt-muted) 55%, var(--fdt-elev)) !important;
}

.upload-type-group.status-approved {
    border-color: color-mix(in srgb, var(--fdt-success) 45%, var(--fdt-border)) !important;
    background: color-mix(in srgb, var(--fdt-success-bg) 55%, var(--fdt-elev)) !important;
}

.upload-type-group.status-pending_review {
    border-color: color-mix(in srgb, var(--fdt-warn) 40%, var(--fdt-border)) !important;
}

.upload-type-group.status-rejected_resubmit,
.upload-type-group.status-fraudulent {
    border-color: color-mix(in srgb, var(--fdt-danger) 40%, var(--fdt-border)) !important;
}

.upload-type-head {
    margin-bottom: 12px !important;
}

.upload-type-title-row {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 8px !important;
}

.upload-type-title-row h4 {
    margin: 0 !important;
    font-size: 0.98rem !important;
    font-weight: 650 !important;
    color: var(--fdt-text) !important;
    letter-spacing: -0.015em !important;
}

.upload-type-hint {
    margin: 6px 0 0 !important;
    font-size: 12.5px !important;
}

/* One horizontal row per document category (no multi-line wrap for options) */
.upload-card-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    gap: 10px !important;
    width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 2px !important;
}

.upload-card-grid.card-count-1 {
    overflow-x: visible !important;
}

.upload-slot-card {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    margin: 0 !important;
    padding: 10px !important;
    border-radius: 12px !important;
    border: 1.5px solid var(--fdt-border-strong) !important;
    background: var(--fdt-elev) !important;
    box-shadow: var(--fdt-shadow) !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: none !important;
}

/* When many options, keep equal columns on one line with a compact floor */
.upload-card-grid:not(.card-count-1) .upload-slot-card {
    min-width: 140px !important;
}

.upload-type-group.is-collapsed .upload-card-grid {
    max-width: 420px !important;
}

.upload-slot-card:hover:not(.is-readonly):not(.is-uploading) {
    border-color: var(--fdt-focus) !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07) !important;
    transform: translateY(-1px) !important;
}

.upload-slot-card.status-approved {
    border-color: color-mix(in srgb, var(--fdt-success) 55%, var(--fdt-border)) !important;
    background: color-mix(in srgb, var(--fdt-success-bg) 40%, var(--fdt-elev)) !important;
}

.upload-slot-card.status-pending_review {
    border-color: color-mix(in srgb, var(--fdt-warn) 55%, var(--fdt-border)) !important;
    background: color-mix(in srgb, var(--fdt-warn-bg) 45%, var(--fdt-elev)) !important;
}

.upload-slot-card.status-rejected_resubmit,
.upload-slot-card.status-fraudulent {
    border-color: color-mix(in srgb, var(--fdt-danger) 55%, var(--fdt-border)) !important;
    background: color-mix(in srgb, var(--fdt-danger-bg) 45%, var(--fdt-elev)) !important;
}

.upload-slot-card.is-readonly {
    opacity: 0.85 !important;
}

.upload-slot-card.is-uploading {
    opacity: 0.7 !important;
    pointer-events: none !important;
}

.upload-slot-top {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 8px !important;
}

.upload-slot-title {
    font-weight: 650 !important;
    font-size: 0.92rem !important;
    color: var(--fdt-text) !important;
    line-height: 1.3 !important;
}

.upload-slot-comment {
    margin: 0 !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
}

.dropzone-card {
    min-height: 88px !important;
    border-radius: 10px !important;
    gap: 3px !important;
    padding: 10px 8px !important;
    transition: border-color 0.15s ease, background 0.15s ease !important;
    flex: 1 1 auto !important;
}

.dropzone-card .dropzone-icon {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    color: var(--fdt-focus) !important;
    line-height: 1 !important;
}

.dropzone-card .title {
    font-size: 0.9rem !important;
}

.dropzone-card .sub {
    font-size: 0.78rem !important;
    max-width: 16rem !important;
}

.dropzone-card.is-disabled {
    cursor: not-allowed !important;
    opacity: 0.7 !important;
    border-style: solid !important;
}

.upload-slot-card.status-approved .dropzone-card {
    border-color: color-mix(in srgb, var(--fdt-success) 45%, var(--fdt-border-strong)) !important;
}

.upload-slot-card.status-pending_review .dropzone-card {
    border-color: color-mix(in srgb, var(--fdt-warn) 45%, var(--fdt-border-strong)) !important;
}

.upload-slot-card.status-rejected_resubmit .dropzone-card,
.upload-slot-card.status-fraudulent .dropzone-card {
    border-color: color-mix(in srgb, var(--fdt-danger) 45%, var(--fdt-border-strong)) !important;
}

.btn-upload-slot {
    display: none !important;
}

.upload-slot-status {
    min-height: 1.1em !important;
    margin: 0 !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--fdt-focus) !important;
    text-align: center !important;
}

.upload-slot-card.is-uploading .dropzone-card {
    border-color: var(--fdt-focus) !important;
    background: color-mix(in srgb, var(--fdt-focus) 10%, var(--fdt-muted)) !important;
    opacity: 0.85 !important;
    pointer-events: none !important;
}

.investor-upload-block {
    margin-top: 12px !important;
}

/* Onboarding pages: wider canvas so card grids breathe */
.wrap.wrap-onboarding,
.wrap-onboarding {
    width: min(1360px, 96vw) !important;
    max-width: 1360px !important;
    padding: 28px 28px !important;
}

body:has(.wrap-onboarding) .fi-public-top {
    width: min(1360px, 96vw) !important;
    max-width: 1360px !important;
}

.field {
    margin-bottom: 10px !important;
}

.field label {
    display: block !important;
    font-weight: 500 !important;
    margin-bottom: 4px !important;
    color: var(--fdt-text) !important;
    font-size: 13px !important;
}

.field select,
.field input,
.field textarea {
    width: 100% !important;
    min-height: 36px !important;
    border-radius: 6px !important;
    border: 1px solid var(--fdt-border-strong) !important;
    padding: 6px 10px !important;
    background: var(--fdt-bg) !important;
    color: var(--fdt-text) !important;
    box-sizing: border-box !important;
}

/* Validation highlight: point user at the source of a missing-field error */
.field.field-error,
.nominate-field.field-error,
.gate-consent-item.field-error,
.legal-consent-item.field-error,
.c12.field-error,
.c6.field-error,
.c4.field-error,
.fdt-chip-select.field-error {
    padding: 8px 10px !important;
    border-radius: 8px !important;
    background: rgba(185, 28, 28, 0.06) !important;
    border: 1px solid rgba(185, 28, 28, 0.35) !important;
    box-shadow: 0 0 0 3px rgba(185, 28, 28, 0.08) !important;
    scroll-margin-top: 96px !important;
}
.field.field-error > label,
.c12.field-error > label,
.c6.field-error > label,
.c4.field-error > label {
    color: #991b1b !important;
    font-weight: 600 !important;
}
.field.field-error select,
.field.field-error input,
.field.field-error textarea,
.c12.field-error select,
.c12.field-error input,
.c12.field-error textarea,
.c6.field-error select,
.c6.field-error input,
.c6.field-error textarea,
input.is-invalid-control,
select.is-invalid-control,
textarea.is-invalid-control {
    border-color: #b91c1c !important;
    background: #fff !important;
}
.fdt-chip-select.field-error .fdt-chip {
    border-color: rgba(185, 28, 28, 0.55) !important;
}
.fdt-chip-select.field-error.is-error-focus,
.c12.field-error.is-error-focus,
.c6.field-error.is-error-focus {
    animation: fdt-field-error-pulse 0.9s ease-in-out 0s 2;
}
@keyframes fdt-field-error-pulse {
    0%, 100% { box-shadow: 0 0 0 3px rgba(185, 28, 28, 0.08); }
    50% { box-shadow: 0 0 0 6px rgba(185, 28, 28, 0.18); }
}
.field.field-error select:focus,
.field.field-error input:focus,
.field.field-error textarea:focus,
input.is-invalid-control:focus,
select.is-invalid-control:focus,
textarea.is-invalid-control:focus {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(185, 28, 28, 0.18) !important;
}
.crs-pep-section.is-error-focus,
.fi-onboard-section.is-error-focus,
.card.is-error-focus,
.wrap-onboarding.has-validation-error .err {
    scroll-margin-top: 24px;
}
.pep-details-block.is-error-focus {
    padding: 10px 12px;
    border-radius: 10px;
    border: 1px dashed rgba(185, 28, 28, 0.4);
    background: rgba(254, 242, 242, 0.55);
}
/* Soft pulse so the source is obvious after redirect */
@keyframes fi-field-error-pulse {
    0% { box-shadow: 0 0 0 0 rgba(185, 28, 28, 0.35); }
    70% { box-shadow: 0 0 0 10px rgba(185, 28, 28, 0); }
    100% { box-shadow: 0 0 0 0 rgba(185, 28, 28, 0); }
}
.field.field-error {
    animation: fi-field-error-pulse 1.1s ease-out 1;
}

.field input[type="checkbox"],
.field input[type="radio"] {
    width: auto !important;
    min-height: 0 !important;
}

.field label.checkline {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 0 !important;
}

.field label.checkline-row {
    display: flex !important;
    width: 100% !important;
    margin-bottom: 6px !important;
}

.dropzone {
    border: 2px dashed var(--fdt-border-strong) !important;
    border-radius: 10px !important;
    background: var(--fdt-muted) !important;
    min-height: 120px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    text-align: center !important;
    color: var(--fdt-text-secondary) !important;
    cursor: pointer !important;
    padding: 10px !important;
}

.dropzone.dragover {
    border-color: var(--fdt-focus) !important;
    background: color-mix(in srgb, var(--fdt-focus) 8%, var(--fdt-muted)) !important;
}

.dropzone .title {
    font-weight: 600 !important;
    color: var(--fdt-text) !important;
}

.dropzone .sub {
    font-size: 0.92rem !important;
    color: var(--fdt-text-muted) !important;
}

.dropzone input[type="file"] {
    display: none !important;
}

/* Brief highlight after upload redirect restores this card into view */
.upload-slot-card.is-upload-focus,
.upload-type-group.is-upload-focus {
    outline: 2px solid var(--fdt-accent, #2563eb) !important;
    outline-offset: 3px !important;
    transition: outline-color 0.3s ease !important;
}

.file-name {
    margin-top: 8px !important;
    font-size: 0.92rem !important;
    color: var(--fdt-text) !important;
}

.wrap .btn,
.wrap button.btn,
.btn-secondary {
    border-radius: 6px !important;
    padding: 10px 14px !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    cursor: pointer !important;
    border: 1px solid transparent !important;
}

.wrap .btn,
.wrap button.btn {
    background: var(--fdt-accent) !important;
    color: var(--fdt-accent-fg) !important;
    border-color: var(--fdt-accent) !important;
}

.wrap .btn[disabled],
.wrap button.btn[disabled] {
    opacity: 0.55 !important;
    cursor: not-allowed !important;
}

.btn-secondary {
    background: var(--fdt-muted) !important;
    color: var(--fdt-text) !important;
    border-color: var(--fdt-border-strong) !important;
}

.actions,
.bo-actions {
    display: flex !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
}

.bo-actions {
    margin-top: 8px !important;
    justify-content: flex-end !important;
}

.table-scroll {
    width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
}

.wrap table {
    width: 100% !important;
    min-width: 760px !important;
    border-collapse: collapse !important;
    margin-top: 16px !important;
}

.wrap th,
.wrap td {
    border: 1px solid var(--fdt-border) !important;
    padding: 8px !important;
    text-align: left !important;
    vertical-align: top !important;
    color: var(--fdt-text) !important;
}

.wrap td {
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
}

.wrap th {
    background: var(--fdt-muted) !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    color: var(--fdt-text-secondary) !important;
}

.grid-2,
.grid-3,
.grid-5,
.grid-7 {
    display: grid !important;
    gap: 10px !important;
}

.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
.grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; }
.grid-7 { grid-template-columns: repeat(7, minmax(0, 1fr)) !important; }

/* Identity match: mismatch reason/details only when "mismatch" radio is selected.
   .grid-2 uses display:grid !important, so hide must also use !important. */
.fi-mismatch-fields.is-hidden,
.fi-mismatch-fields[hidden] {
    display: none !important;
}
.fi-mismatch-fields.is-open {
    display: grid !important;
}

/* Narrative character counters (SoF min 40, SoW guidance). */
.fi-charcount-field .fi-charcount-min-help {
    margin: 0 0 0.4rem;
    font-size: 0.85em;
}
.fi-charcount-meter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.75rem;
    margin-top: 0.4rem;
    font-size: 0.85em;
    font-weight: 600;
}
.fi-charcount-meter.is-short {
    color: #b45309;
}
.fi-charcount-meter.is-ok {
    color: #047857;
}
.fi-charcount-meter .fi-charcount-status {
    font-weight: 500;
    opacity: 0.9;
}
.fi-charcount-input.is-short {
    border-color: #f59e0b !important;
}
.fi-charcount-input.is-ok {
    border-color: #34d399 !important;
}

/* Progressive disclosure blocks (US evidence, Israeli QI, SoF other).
   Hidden by default — only .is-open reveals content (prevents false "you seem linked to Israel" leaks). */
.fi-progressive-block {
    display: none !important;
}
.fi-progressive-block.is-hidden,
.field.is-hidden {
    display: none !important;
}
.fi-progressive-block.is-open {
    display: block !important;
    margin: 12px 0 16px;
    padding: 12px 14px;
    border: 1px solid var(--fdt-border);
    border-radius: 10px;
    background: var(--fdt-muted);
}
.fi-risk-card .status-chip {
    display: inline-flex;
    padding: 6px 12px;
    border-radius: 999px;
    font-weight: 600;
    font-size: 13px;
    background: var(--fdt-muted);
    border: 1px solid var(--fdt-border);
}
.fi-risk-card .status-chip-standard { background: #ecfdf5; border-color: #a7f3d0; color: #047857; }
.fi-risk-card .status-chip-medium { background: #fff7ed; border-color: #fed7aa; color: #c2410c; }
.fi-risk-card .status-chip-edd { background: #fef2f2; border-color: #fecaca; color: #b91c1c; }

.option-list .checkline {
    display: flex !important;
    width: 100% !important;
    margin-bottom: 6px !important;
}

.tax-row {
    border: 1px solid var(--fdt-border) !important;
    border-radius: 8px !important;
    padding: 10px !important;
    margin-bottom: 8px !important;
    background: var(--fdt-elev) !important;
}

.tax-row-actions {
    display: flex !important;
    justify-content: flex-end !important;
    margin-top: 6px !important;
}

/* Legacy pill stepper kept as alias → modern journey tracker */
.stepper {
    display: none !important;
}

/* ═══════════════════════════════════════════════════════════
   Unified journey tracker (all public onboardings / roles)
   ═══════════════════════════════════════════════════════════ */
.fi-journey {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    margin: 0 0 22px !important;
    padding: 16px 18px !important;
    background: var(--fdt-elev) !important;
    border: 1px solid var(--fdt-border) !important;
    border-radius: 14px !important;
    box-shadow: var(--fdt-shadow) !important;
    box-sizing: border-box !important;
}

.fi-journey__meta {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: baseline !important;
    justify-content: space-between !important;
    gap: 8px 16px !important;
}

.fi-journey__count {
    font-size: 12px !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
    color: var(--fdt-text-muted) !important;
}

.fi-journey__current {
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--fdt-text) !important;
    letter-spacing: -0.01em !important;
    text-align: right !important;
}

.fi-journey__bar {
    width: 100% !important;
    height: 5px !important;
    border-radius: 999px !important;
    background: var(--fdt-muted) !important;
    overflow: hidden !important;
}

.fi-journey__bar-fill {
    height: 100% !important;
    border-radius: 999px !important;
    background: var(--fdt-text) !important;
    transition: width 220ms ease !important;
    min-width: 0 !important;
}

.fi-journey__steps {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0 !important;
    margin: 4px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: thin !important;
}

.fi-journey__step {
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    flex: 1 1 0 !important;
    min-width: 72px !important;
    max-width: 140px !important;
    margin: 0 !important;
    padding: 0 4px !important;
    text-align: center !important;
}

.fi-journey__step:not(:last-child)::after {
    content: "" !important;
    position: absolute !important;
    top: 15px !important;
    left: calc(50% + 16px) !important;
    right: calc(-50% + 16px) !important;
    height: 2px !important;
    background: var(--fdt-border-strong) !important;
    z-index: 0 !important;
}

.fi-journey__step.is-done:not(:last-child)::after {
    background: var(--fdt-text) !important;
}

.fi-journey__marker {
    position: relative !important;
    z-index: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 999px !important;
    border: 2px solid var(--fdt-border-strong) !important;
    background: var(--fdt-elev) !important;
    color: var(--fdt-text-muted) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
    transition: border-color 140ms ease, background 140ms ease, color 140ms ease, box-shadow 140ms ease !important;
}

.fi-journey__step.is-done .fi-journey__marker {
    border-color: var(--fdt-text) !important;
    background: var(--fdt-text) !important;
    color: var(--fdt-accent-fg) !important;
}

.fi-journey__step.is-current .fi-journey__marker {
    border-color: var(--fdt-text) !important;
    background: var(--fdt-elev) !important;
    color: var(--fdt-text) !important;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--fdt-text) 12%, transparent) !important;
}

.fi-journey__step.is-locked .fi-journey__marker {
    opacity: 0.55 !important;
}

.fi-journey__check {
    display: none !important;
    width: 14px !important;
    height: 14px !important;
}

.fi-journey__step.is-done .fi-journey__num {
    display: none !important;
}

.fi-journey__step.is-done .fi-journey__check {
    display: block !important;
}

.fi-journey__label {
    margin-top: 8px !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    color: var(--fdt-text-muted) !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
}

.fi-journey__step.is-current .fi-journey__label {
    color: var(--fdt-text) !important;
    font-weight: 650 !important;
}

.fi-journey__step.is-done .fi-journey__label {
    color: var(--fdt-text-secondary) !important;
}

.fi-journey__step a,
.fi-journey__step button.fi-journey__hit {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: inherit !important;
    text-decoration: none !important;
    cursor: pointer !important;
    font: inherit !important;
}

.fi-journey__step a:hover .fi-journey__marker,
.fi-journey__step button.fi-journey__hit:hover .fi-journey__marker {
    border-color: var(--fdt-text) !important;
}

.fi-journey__step.is-locked a,
.fi-journey__step.is-locked button.fi-journey__hit {
    cursor: default !important;
    pointer-events: none !important;
}

.fi-journey__step span.fi-journey__hit {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    width: 100% !important;
}

html[data-theme="dark"] .fi-journey__bar-fill,
html[data-theme="dark"] .fi-journey__step.is-done .fi-journey__marker {
    background: var(--fdt-text) !important;
}

html[data-theme="dark"] .fi-journey__step.is-done:not(:last-child)::after {
    background: var(--fdt-text) !important;
}

@media (max-width: 720px) {
    .fi-journey {
        padding: 14px !important;
        gap: 12px !important;
    }

    .fi-journey__step {
        min-width: 64px !important;
    }

    .fi-journey__label {
        font-size: 10px !important;
    }

    .fi-journey__marker {
        width: 28px !important;
        height: 28px !important;
    }

    .fi-journey__step:not(:last-child)::after {
        top: 13px !important;
        left: calc(50% + 14px) !important;
        right: calc(-50% + 14px) !important;
    }
}

/* Builder step-cards legacy hide when journey is present */
.step-cards {
    display: none !important;
}

/* Top brand strip for standalone public pages */
.fi-public-top {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    width: min(1120px, 94vw) !important;
    margin: 20px auto 0 !important;
    box-sizing: border-box !important;
}

.fi-public-top a.fi-public-brand {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0 !important;
    text-decoration: none !important;
    color: inherit !important;
    font-weight: 600 !important;
    font-size: 0.95rem !important;
}

.fi-public-top a.fi-public-brand img {
    height: 40px !important;
    width: auto !important;
    max-width: min(280px, 72vw) !important;
    object-fit: contain !important;
    display: block !important;
    filter: none !important;
}

.fi-public-top a.fi-public-brand span {
    display: none !important;
}

@media (max-width: 900px) {
    .role-grid {
        grid-template-columns: 1fr !important;
    }
    .upload-card-grid {
        flex-wrap: nowrap !important;
        gap: 8px !important;
    }
    .upload-card-grid:not(.card-count-1) .upload-slot-card {
        min-width: 150px !important;
        flex: 0 0 48% !important;
    }
    .upload-type-group.is-collapsed .upload-card-grid {
        max-width: 100% !important;
    }
    .role-card-head {
        flex-direction: column !important;
        align-items: stretch !important;
    }
    .grid-2,
    .grid-3,
    .grid-5,
    .grid-7 {
        grid-template-columns: 1fr !important;
    }
    .wrap {
        margin: 12px auto 32px !important;
        padding: 16px !important;
    }
    .wrap table {
        min-width: 680px !important;
    }
}


/* Chip multi-select (investor / mentor / donor apply) */
.fdt-chip-select {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    padding: 4px 0 2px !important;
}

.fdt-chip {
    display: inline-flex !important;
    margin: 0 !important;
    padding: 0 !important;
    cursor: pointer !important;
    user-select: none !important;
    font-weight: 500 !important;
}

.fdt-chip input {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 1px !important;
    height: 1px !important;
}

.fdt-chip span {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 36px !important;
    padding: 7px 14px !important;
    border: 1px solid var(--fdt-border-strong) !important;
    border-radius: 999px !important;
    background: var(--fdt-elev) !important;
    color: var(--fdt-text) !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: -0.01em !important;
    transition: border-color 120ms ease, background 120ms ease, color 120ms ease, box-shadow 120ms ease !important;
}

.fdt-chip:hover span {
    border-color: var(--fdt-text-muted) !important;
}

.fdt-chip:has(input:checked) span {
    background: var(--fdt-accent) !important;
    border-color: var(--fdt-accent) !important;
    color: var(--fdt-accent-fg) !important;
    font-weight: 600 !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08) !important;
}

.fdt-chip:has(input:focus-visible) span {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--fdt-focus) 22%, transparent) !important;
}
