:root {
    --ft-page: #f8f7fc;
    --ft-paper: #fff;
    --ft-ink: #29204d;
    --ft-muted: #6e6680;
    --ft-line: #e5e0f0;
    --ft-brand: #2d1d5a;
    --ft-brand-strong: #201440;
    --ft-soft: #eeebfa;
    --ft-focus: rgba(45, 29, 90, .16);
    --ft-danger: #b4233d;
    --ft-success: #18794e;
    --bs-body-font-family: Inter, "Segoe UI", Tahoma, Arial, sans-serif;
    --bs-body-bg: var(--ft-page);
    --bs-body-color: var(--ft-ink);
    --bs-primary: var(--ft-brand);
    --bs-primary-rgb: 45, 29, 90;
    --bs-link-color: var(--ft-brand);
    --bs-link-hover-color: var(--ft-brand-strong);
    --bs-border-color: var(--ft-line);
}

* { box-sizing: border-box; }

html { min-width: 320px; background: var(--ft-page); }

body.ft-app {
    min-height: 100vh;
    background: radial-gradient(circle at 94% -10%, #e7e2ff 0, transparent 27rem), radial-gradient(circle at 0 30%, #f0edff 0, transparent 30rem), var(--ft-page);
    color: var(--ft-ink);
    line-height: 1.55;
}

a { text-decoration: none; }

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible {
    outline: 3px solid #aa9ce0;
    outline-offset: 3px;
}

.ft-page { padding-bottom: 3.5rem; }
.ft-shell { width: min(1180px, calc(100% - 2rem)); margin-inline: auto; }
.ft-topbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.5rem 0; }
.ft-brand { display: inline-flex; align-items: center; flex: none; }
.ft-logo { display: block; width: min(154px, 38vw); height: auto; }

.ft-language {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.5rem;
    padding: .45rem .75rem;
    border: 1px solid var(--ft-line);
    border-radius: 999px;
    background: rgba(255, 255, 255, .78);
    color: var(--ft-muted);
    font-size: .85rem;
    font-weight: 750;
}

.ft-language:hover { border-color: #c0b5df; color: var(--ft-brand); }

.ft-button,
.ft-provider {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .55rem;
    min-height: 3.1rem;
    padding: .7rem 1rem;
    border: 1px solid transparent;
    border-radius: .9rem;
    background: var(--ft-brand);
    color: #fff;
    font-weight: 800;
    line-height: 1.2;
    transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.ft-button:hover,
.ft-provider:hover { background: var(--ft-brand-strong); color: #fff; transform: translateY(-1px); box-shadow: 0 .65rem 1.4rem rgba(45, 29, 90, .16); }
.ft-button.secondary { border-color: #cfc6e8; background: #fff; color: var(--ft-brand); }
.ft-button.secondary:hover { background: #faf9ff; color: var(--ft-brand); }
.ft-button.danger { border-color: #f0bcc7; background: #fff; color: var(--ft-danger); }
.ft-button.danger:hover { background: #fff5f6; color: var(--ft-danger); }
.ft-button[disabled], .ft-provider[disabled] { cursor: not-allowed; opacity: .52; pointer-events: none; }

.ft-field { display: grid; gap: .42rem; margin-bottom: .9rem; color: var(--ft-ink); font-size: .92rem; font-weight: 750; }
.ft-field input, .ft-field select, .ft-field textarea {
    width: 100%;
    min-height: 3.1rem;
    padding: .68rem .85rem;
    border: 1px solid #d0c9e4;
    border-radius: .82rem;
    background: #fff;
    color: var(--ft-ink);
    font-weight: 600;
    transition: border-color .16s ease, box-shadow .16s ease;
}
.ft-field textarea { min-height: 7rem; resize: vertical; }
.ft-field input:focus, .ft-field select:focus, .ft-field textarea:focus { border-color: var(--ft-brand); box-shadow: 0 0 0 .25rem var(--ft-focus); outline: 0; }

.ft-notice, .ft-errors {
    margin: 0 0 1rem;
    padding: .78rem .9rem;
    border: 1px solid;
    border-radius: .9rem;
    font-size: .9rem;
    font-weight: 650;
}
.ft-notice { border-color: #b9ddc4; background: #eef9f0; color: #175e37; }
.ft-errors { border-color: #efbcc7; background: #fff3f5; color: #8d2137; }
.ft-muted { color: var(--ft-muted); }
.muted { color: var(--ft-muted); }
.ft-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.ft-login-page { display: grid; min-height: 100vh; place-items: center; padding: 1.25rem; }
.ft-login-shell { width: min(100%, 31rem); }
.ft-login-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.35rem; }
.ft-login-card { padding: clamp(1.35rem, 5vw, 2rem); border: 1px solid rgba(221, 216, 237, .9); border-radius: 1.55rem; background: rgba(255, 255, 255, .94); box-shadow: 0 1.35rem 3.5rem rgba(45, 29, 90, .1); }
.ft-login-card h1 { margin: 0 0 1.25rem; font-size: 1.45rem; font-weight: 850; letter-spacing: -.04em; text-align: center; }
.ft-current-account { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; margin-bottom: 1rem; padding: .75rem; border: 1px solid #d8d0ed; border-radius: 1rem; background: #faf9ff; }
.ft-current-account-copy { display: grid; min-width: 0; gap: .04rem; }
.ft-current-account-copy > span, .ft-current-account-copy small { overflow: hidden; color: var(--ft-muted); font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.ft-current-account-copy strong { overflow: hidden; font-size: .93rem; text-overflow: ellipsis; white-space: nowrap; }
.ft-current-account-button { min-height: 2.45rem; padding: .45rem .65rem; border: 1px solid #c9bfe6; border-radius: .7rem; background: #fff; color: var(--ft-brand); font-size: .8rem; font-weight: 850; }
.ft-current-account-button:hover { border-color: var(--ft-brand); background: #f5f2ff; }
.ft-recent-accounts { margin: 0 0 1.05rem; }
.ft-recent-accounts > p { margin: 0 0 .45rem; color: var(--ft-muted); font-size: .77rem; font-weight: 750; }
.ft-recent-account-list { display: flex; flex-wrap: wrap; gap: .45rem; }
.ft-recent-account { display: flex; min-width: 0; align-items: center; gap: .45rem; padding: .38rem .55rem; border: 1px solid var(--ft-line); border-radius: .75rem; background: #fff; }
.ft-recent-account > span { display: grid; min-width: 0; }
.ft-recent-account strong, .ft-recent-account small { overflow: hidden; max-width: 10rem; text-overflow: ellipsis; white-space: nowrap; }
.ft-recent-account strong { font-size: .78rem; }
.ft-recent-account small { color: var(--ft-muted); font-size: .7rem; }
.ft-avatar.small { width: 1.8rem; height: 1.8rem; font-size: .76rem; }
.ft-login-provider-stack { display: grid; gap: .65rem; }
.ft-provider { width: 100%; border-color: #ddd8e9; background: #fff; color: var(--ft-ink); box-shadow: none; }
.ft-provider:hover { border-color: #bfb5dc; background: #fff; color: var(--ft-ink); box-shadow: 0 .55rem 1.2rem rgba(45, 29, 90, .08); }
.ft-provider.apple { background: var(--ft-brand); border-color: var(--ft-brand); color: #fff; }
.ft-provider.apple:hover { background: var(--ft-brand-strong); color: #fff; }
.ft-provider-symbol { display: grid; width: 1.35rem; height: 1.35rem; place-items: center; border-radius: 50%; color: inherit; font-size: 1rem; font-weight: 900; }
.ft-login-divider { display: flex; align-items: center; gap: .7rem; margin: 1.25rem 0; color: var(--ft-muted); font-size: .8rem; font-weight: 700; }
.ft-login-divider::before, .ft-login-divider::after { height: 1px; flex: 1; background: var(--ft-line); content: ""; }
.ft-login-phone { display: grid; grid-template-columns: minmax(8.9rem, .84fr) minmax(0, 1.16fr); gap: .6rem; }
.ft-login-card .ft-button { width: 100%; }
.ft-login-email { margin-top: .75rem; border-top: 1px solid var(--ft-line); }
.ft-login-email summary { display: flex; align-items: center; justify-content: space-between; min-height: 3.15rem; color: var(--ft-brand); font-size: .92rem; font-weight: 800; cursor: pointer; list-style: none; }
.ft-login-email summary::-webkit-details-marker { display: none; }
.ft-login-email summary::after { font-size: 1.2rem; content: "+"; }
.ft-login-email[open] summary::after { content: "−"; }
.ft-login-email-content { padding: .35rem 0 .1rem; }
.ft-otp-form { margin-top: .25rem; }
.ft-otp-cells { display: flex; direction: ltr; justify-content: center; gap: .45rem; margin: 1.35rem 0 .75rem; }
.ft-otp-cell { width: clamp(2.45rem, 9vw, 3.2rem) !important; min-height: 3.35rem !important; padding: 0 !important; border: 1px solid #c9c0e8 !important; border-radius: .78rem !important; color: var(--ft-brand) !important; font-size: 1.45rem !important; font-weight: 900 !important; line-height: 1 !important; text-align: center !important; }
.ft-otp-cell:focus { border-color: var(--ft-brand) !important; box-shadow: 0 0 0 .25rem var(--ft-focus) !important; outline: 0; }
.ft-otp-error { min-height: 1.25rem; margin: 0; color: var(--ft-danger); font-size: .83rem; font-weight: 700; text-align: center; }
.ft-otp-error[hidden] { display: none; }
.ft-otp-retry { margin: 1rem 0 0; color: var(--ft-muted); font-size: .87rem; text-align: center; }
.ft-change-identifier, .ft-rescue { display: block; width: 100%; margin-top: 1rem; border: 0; background: transparent; color: var(--ft-brand); font-size: .88rem; font-weight: 800; text-align: center; text-decoration: underline; text-underline-offset: .25rem; }

.ft-hero { position: relative; overflow: hidden; padding: clamp(1.6rem, 5vw, 3.25rem); border: 1px solid #ded8ef; border-radius: 1.75rem; background: linear-gradient(135deg, #fff, #f4f1ff); box-shadow: 0 1rem 2.9rem rgba(45, 29, 90, .08); }
.ft-eyebrow { color: var(--ft-brand); font-size: .74rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.ft-title { margin: .55rem 0 .75rem; font-size: clamp(2rem, 5vw, 4.5rem); font-weight: 900; letter-spacing: -.06em; line-height: 1; }
.ft-title.compact { font-size: clamp(1.7rem, 4vw, 3rem); }
.ft-subtitle { max-width: 44rem; margin: 0; color: var(--ft-muted); font-size: 1.03rem; }
.ft-actions { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.4rem; }
.ft-value-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .9rem; margin-top: 1rem; }
.ft-value-card, .ft-card { border: 1px solid var(--ft-line); border-radius: 1.25rem; background: rgba(255, 255, 255, .9); box-shadow: 0 .6rem 1.75rem rgba(45, 29, 90, .05); }
.ft-value-card { padding: 1.25rem; }
.ft-value-card h2 { margin: .25rem 0 .35rem; font-size: 1.05rem; }
.ft-value-card p { margin: 0; color: var(--ft-muted); font-size: .92rem; }
.ft-value-number { color: var(--ft-brand); font-size: .8rem; font-weight: 900; }
.ft-footer { padding: 1.5rem 0 .5rem; color: var(--ft-muted); font-size: .86rem; }

.identity-shell { padding-bottom: 3rem; }
.identity-bar { border-bottom: 1px solid var(--ft-line); }
.identity-user, .identity-name, .identity-account { display: flex; align-items: center; gap: .75rem; }
.identity-account { justify-content: space-between; padding: 1.1rem 1.2rem; }
.identity-name h1 { margin: 0; font-size: 1.22rem; font-weight: 850; letter-spacing: -.035em; }
.identity-name p { margin: .1rem 0 0; color: var(--ft-muted); font-size: .88rem; }
.ft-avatar { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; overflow: hidden; border-radius: 50%; background: var(--ft-soft); color: var(--ft-brand); font-weight: 900; }
.ft-avatar img { width: 100%; height: 100%; object-fit: cover; }
.ft-badge { display: inline-flex; align-items: center; gap: .35rem; padding: .33rem .55rem; border: 1px solid #dad3ec; border-radius: 999px; background: #f8f7ff; color: #574b80; font-size: .75rem; font-weight: 800; white-space: nowrap; }
.ft-badge::before { width: .4rem; height: .4rem; border-radius: 50%; background: currentColor; content: ""; }
.ft-badge.neutral { color: var(--ft-muted); }
.identity-main { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(17rem, .8fr); gap: .9rem; margin-top: 1.35rem; }
.identity-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: .65rem; }
.identity-stat { padding: 1rem; border: 1px solid var(--ft-line); border-radius: 1rem; background: rgba(255, 255, 255, .82); }
.identity-stat strong { display: block; font-size: 1.45rem; line-height: 1.1; }
.identity-stat span { display: block; margin-top: .3rem; color: var(--ft-muted); font-size: .8rem; }
.identity-section { margin-top: 1.75rem; }
.identity-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.identity-section-head h2 { margin: 0; font-size: 1.1rem; font-weight: 850; letter-spacing: -.03em; }
.identity-apps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.identity-app { display: flex; min-height: 8.8rem; flex-direction: column; justify-content: space-between; padding: 1rem; border: 1px solid var(--ft-line); border-radius: 1.1rem; background: #fff; color: var(--ft-ink); transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.identity-app:not(.unavailable):hover { border-color: #b5a9dc; box-shadow: 0 .8rem 1.6rem rgba(45, 29, 90, .1); color: var(--ft-ink); transform: translateY(-2px); }
.identity-app.unavailable { background: #fbfaff; color: var(--ft-muted); }
.identity-app-logo { display: grid; width: 3rem; height: 3rem; place-items: center; overflow: hidden; border: 1px solid #e7e2f1; border-radius: .8rem; background: #faf9ff; }
.identity-app-logo img { width: 2.6rem; height: 2.6rem; object-fit: contain; }
.identity-app-logo img[src$="luxpay.png"] { width: 5rem; }
.identity-app h3 { margin: .7rem 0 0; font-size: .98rem; font-weight: 800; }
.identity-app-status { color: var(--ft-brand); font-size: .81rem; font-weight: 800; }
.identity-app.unavailable .identity-app-status { color: var(--ft-muted); }
.identity-work { padding: 1rem 1.1rem; }
.identity-work-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 0; border-top: 1px solid var(--ft-line); }
.identity-work-row:first-child { padding-top: 0; border-top: 0; }
.identity-work-row:last-child { padding-bottom: 0; }
.identity-work-row small, .identity-journey small { display: block; margin-top: .18rem; color: var(--ft-muted); }
.identity-work-row a { color: var(--ft-brand); font-size: .88rem; font-weight: 800; }
.identity-empty { padding: 1.1rem; border: 1px dashed #cfc7e6; border-radius: 1rem; color: var(--ft-muted); text-align: center; }
.identity-journey { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.identity-journey a { padding: 1rem; border: 1px solid var(--ft-line); border-radius: 1rem; background: #fff; color: var(--ft-ink); font-size: .92rem; font-weight: 800; }
.identity-journey a:hover { border-color: #b9afe0; color: var(--ft-brand); }
.identity-funds { margin-inline-start: auto; }

.dashboard-nav { display: flex; flex-wrap: wrap; gap: .45rem; padding: 1rem 0; border-bottom: 1px solid var(--ft-line); }
.dashboard-nav a { min-height: 2.5rem; padding: .55rem .75rem; border-radius: .75rem; color: var(--ft-muted); font-size: .9rem; font-weight: 800; }
.dashboard-nav a:hover, .dashboard-nav a.active { background: #efecfb; color: var(--ft-brand); }
.dashboard-main { padding-top: 1.45rem; }
.dashboard-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; }
.dashboard-heading h1 { margin: 0; font-size: clamp(1.7rem, 4vw, 2.55rem); font-weight: 900; letter-spacing: -.055em; }
.dashboard-heading p { margin: .3rem 0 0; color: var(--ft-muted); }
.dashboard-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; margin-top: 1.25rem; }
.dashboard-stat { display: grid; gap: .25rem; padding: 1.05rem; border: 1px solid var(--ft-line); border-radius: 1rem; background: rgba(255, 255, 255, .9); color: var(--ft-ink); transition: border-color .16s ease, transform .16s ease; }
.dashboard-stat:hover { border-color: #b9afe0; color: var(--ft-brand); transform: translateY(-1px); }
.dashboard-stat strong { font-size: 1.5rem; line-height: 1.1; }
.dashboard-stat span { color: var(--ft-muted); font-size: .82rem; font-weight: 700; }
.dashboard-section { margin-top: 1.7rem; }
.dashboard-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .7rem; }
.dashboard-section-head h2, .dashboard-panel h2 { margin: 0; font-size: 1.05rem; font-weight: 850; letter-spacing: -.025em; }
.dashboard-section-head a { color: var(--ft-brand); font-size: .87rem; font-weight: 800; }
.dashboard-preview-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem; }
.dashboard-preview-card, .dashboard-security-card, .dashboard-panel { border: 1px solid var(--ft-line); border-radius: 1rem; background: rgba(255, 255, 255, .9); }
.dashboard-preview-card { display: grid; gap: .65rem; min-height: 6.5rem; padding: .9rem; }
.dashboard-preview-card .ft-badge { justify-self: start; }
.dashboard-security-card { padding: 1rem; }
.dashboard-security-card p { margin: 0; color: var(--ft-muted); font-size: .9rem; }
.dashboard-security-card strong { display: block; margin-bottom: .3rem; color: var(--ft-ink); }
.dashboard-assurance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: 1.2rem; }
.dashboard-assurance-grid.compact { margin-top: 0; }
.dashboard-assurance-panel { display: grid; align-content: start; gap: .75rem; }
.dashboard-assurance-panel h2 { margin: 0; }
.dashboard-assurance-panel > p { margin: 0; color: var(--ft-muted); font-size: .88rem; }
.dashboard-assurance-link { display: grid; min-height: 9.5rem; align-content: start; gap: .45rem; padding: 1rem; border: 1px solid var(--ft-line); border-radius: 1rem; background: rgba(255, 255, 255, .9); color: var(--ft-ink); transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.dashboard-assurance-link:hover { border-color: #b5a9dc; box-shadow: 0 .75rem 1.6rem rgba(45, 29, 90, .08); color: var(--ft-ink); transform: translateY(-1px); }
.dashboard-assurance-link .ft-badge { justify-self: start; }
.dashboard-assurance-link small { color: var(--ft-muted); font-size: .84rem; }
.dashboard-form { display: grid; gap: .1rem; margin-top: .15rem; }
.dashboard-form .ft-button { width: 100%; margin-top: .2rem; }
.dashboard-oauth-note { display: grid; gap: .5rem; margin-top: 1.2rem; padding: 1rem; border: 1px solid #dcd5f0; border-radius: 1rem; background: #f8f6ff; }
.dashboard-oauth-note .ft-badge { justify-self: start; }
.dashboard-oauth-note p { margin: 0; color: var(--ft-muted); font-size: .9rem; }
.dashboard-apps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: 1.2rem; }
.dashboard-app { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .85rem; min-height: 6.5rem; padding: 1rem; border: 1px solid var(--ft-line); border-radius: 1.1rem; background: #fff; color: var(--ft-ink); transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.dashboard-app:not(.unavailable):hover { border-color: #b5a9dc; box-shadow: 0 .75rem 1.6rem rgba(45, 29, 90, .09); color: var(--ft-ink); transform: translateY(-1px); }
.dashboard-app.unavailable { background: #fbfaff; color: var(--ft-muted); }
.dashboard-app strong, .dashboard-app small { display: block; }
.dashboard-app small { margin-top: .18rem; color: var(--ft-muted); font-size: .83rem; }
.dashboard-list { display: grid; gap: .6rem; }
.dashboard-list-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.5rem; padding: .85rem 1rem; border: 1px solid var(--ft-line); border-radius: .95rem; background: rgba(255, 255, 255, .9); }
.dashboard-list-row > div { min-width: 0; max-width: 100%; }
.dashboard-list-row strong, .dashboard-list-row small { display: block; }
.dashboard-list-row strong { overflow-wrap: anywhere; }
.dashboard-list-row small { margin-top: .16rem; color: var(--ft-muted); font-size: .82rem; }
.dashboard-list.compact { margin-top: .85rem; }
.dashboard-list.compact .dashboard-list-row { min-height: 3.8rem; }
.dashboard-security-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: 1.2rem; }
.dashboard-panel { padding: 1rem; }
.dashboard-panel > p { margin: .25rem 0 0; color: var(--ft-muted); font-size: .88rem; }
.dashboard-onboarding-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(17rem, .85fr); gap: .75rem; margin-top: 1.2rem; }
.dashboard-onboarding-steps { align-self: start; }
.dashboard-onboarding-steps ol { display: grid; gap: .8rem; margin: 1rem 0; padding-inline-start: 1.35rem; }
.dashboard-onboarding-steps li span { display: block; margin-top: .14rem; color: var(--ft-muted); font-size: .84rem; }
.dashboard-completion-card { display: grid; justify-items: start; gap: .75rem; max-width: 42rem; margin-top: 1.2rem; }
.dashboard-completion-card h2, .dashboard-completion-card p { margin: 0; }

.identity-support-dock { position: fixed; z-index: 20; inset-inline: max(1rem, calc((100vw - 1180px) / 2)); bottom: .75rem; display: flex; width: fit-content; max-width: calc(100vw - 2rem); align-items: center; flex-wrap: wrap; gap: .4rem; margin-inline-start: auto; padding: .5rem; border: 1px solid #d9d2ec; border-radius: 1rem; background: rgba(255, 255, 255, .96); box-shadow: 0 .85rem 2rem rgba(45, 29, 90, .14); backdrop-filter: blur(12px); }
.identity-support-dock a, .identity-support-dock span { display: inline-flex; min-height: 2.4rem; align-items: center; padding: .45rem .65rem; border-radius: .7rem; color: var(--ft-brand); font-size: .78rem; font-weight: 850; }
.identity-support-dock a:hover { background: var(--ft-soft); }
.identity-support-dock span[aria-disabled="true"] { color: var(--ft-muted); cursor: not-allowed; opacity: .65; }
.identity-support-dock .urgent { background: #fff1f3; color: var(--ft-danger); }
.support-disabled-panel { display: grid; justify-items: start; gap: .75rem; max-width: 42rem; margin-top: 1.2rem; }
.support-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(17rem, .75fr); gap: .75rem; margin-top: 1.2rem; }
.support-compose h2, .support-compose p { margin: 0 0 .65rem; }
.support-compose > p { color: var(--ft-muted); font-size: .88rem; }
.support-human-option { display: flex; align-items: flex-start; gap: .65rem; margin: .25rem 0 .85rem; padding: .8rem; border: 1px solid #ddd7ee; border-radius: .85rem; background: #faf9ff; cursor: pointer; }
.support-human-option input { margin-top: .28rem; }
.support-human-option strong, .support-human-option small { display: block; }
.support-human-option small, .support-authority-note { color: var(--ft-muted); }
.support-authority-note { display: block; margin-top: .55rem; font-size: .78rem; }
.support-conversation-list { align-self: start; }
.support-conversation-link { display: grid; gap: .12rem; margin-top: .55rem; padding: .7rem; border: 1px solid var(--ft-line); border-radius: .8rem; color: var(--ft-ink); }
.support-conversation-link:hover, .support-conversation-link.active { border-color: #b5a9dc; background: #f8f6ff; color: var(--ft-ink); }
.support-conversation-link span { color: var(--ft-muted); font-size: .76rem; }
.support-urgent-card { display: grid; gap: .15rem; margin-top: .9rem; padding: .75rem; border-radius: .8rem; background: #fff1f3; color: var(--ft-danger); }
.support-urgent-card a { color: inherit; font-weight: 900; }
.support-thread { margin-top: .75rem; }
.support-thread-head { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.support-thread-head h2 { margin-bottom: .4rem; }
.support-messages { display: grid; gap: .65rem; margin: 1rem 0; }
.support-message { width: min(85%, 42rem); padding: .8rem; border: 1px solid var(--ft-line); border-radius: .9rem; background: #f8f7fc; }
.support-message.author-customer { margin-inline-start: auto; background: #efecfb; }
.support-message.author-human { border-color: #bbdec8; background: #eff9f2; }
.support-message strong, .support-message time { display: block; font-size: .74rem; }
.support-message p { margin: .25rem 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.support-message time { color: var(--ft-muted); direction: ltr; }
.support-reply { max-width: 42rem; }

.ft-consent { width: min(42rem, calc(100% - 2rem)); margin: 0 auto; }
.ft-consent-list { margin-top: .85rem; padding: 1.15rem; }
.ft-consent-list h2 { margin: 0 0 .7rem; font-size: 1.05rem; }
.ft-consent-list ul { display: grid; gap: .45rem; margin: 0; padding-inline-start: 1.2rem; color: var(--ft-muted); }
.ft-context { margin: .75rem 0 0; color: var(--ft-muted); }
.ft-consent-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1rem; }

.ft-hub-shell { padding-bottom: 2rem; }
.ft-hub-nav { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; }
.ft-hub-nav a, .ft-hub-logout { min-height: 2.5rem; padding: .55rem .75rem; border: 1px solid var(--ft-line); border-radius: .75rem; background: rgba(255, 255, 255, .8); color: var(--ft-muted); font-size: .9rem; font-weight: 750; }
.ft-hub-nav a:hover, .ft-hub-nav a.active, .ft-hub-logout:hover { border-color: #b9afe0; background: #fff; color: var(--ft-brand); }
.ft-hub-logout { cursor: pointer; }
.ft-hub .grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1rem; }
.ft-hub .card { grid-column: span 12; padding: 1.25rem; border: 1px solid var(--ft-line); border-radius: 1.25rem; background: rgba(255, 255, 255, .9); box-shadow: 0 .7rem 1.7rem rgba(45, 29, 90, .05); }
.ft-hub .span-8 { grid-column: span 8; }
.ft-hub .span-4 { grid-column: span 4; }
.ft-hub .hero h1 { margin: .55rem 0 .65rem; font-size: clamp(1.75rem, 4vw, 3rem); letter-spacing: -.05em; }
.ft-hub .eyebrow { color: var(--ft-brand); font-size: .75rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.ft-hub .items { display: grid; gap: .55rem; }
.ft-hub .item { display: flex; align-items: center; justify-content: space-between; gap: .9rem; padding: .85rem; border: 1px solid #ebe7f4; border-radius: .85rem; background: #fff; }
.ft-hub .amount { font-variant-numeric: tabular-nums; font-size: 1.1rem; font-weight: 900; white-space: nowrap; }
.ft-hub .stat { margin: .35rem 0; font-size: 1.75rem; font-weight: 900; }
.ft-hub .field { display: grid; gap: .4rem; margin: 0; font-weight: 750; }
.ft-hub .field input, .ft-hub .field select { min-height: 3rem; padding: .65rem .8rem; border: 1px solid #d0c9e4; border-radius: .78rem; }
.ft-hub .actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.2rem; }
.ft-hub .btn { display: inline-flex; align-items: center; justify-content: center; min-height: 3rem; padding: .65rem .9rem; border: 1px solid transparent; border-radius: .8rem; background: var(--ft-brand); color: #fff; font-weight: 800; }
.ft-hub .btn:hover { background: var(--ft-brand-strong); color: #fff; }
.ft-hub .btn.secondary { border-color: #cfc6e8; background: #fff; color: var(--ft-brand); }
.ft-hub .badge { display: inline-flex; align-items: center; padding: .27rem .5rem; border: 1px solid #ddd7ee; border-radius: 999px; background: #f6f4ff; color: #564987; font-size: .75rem; font-weight: 800; }
.ft-hub .badge.ok { color: var(--ft-success); }
.ft-hub .badge.off { color: var(--ft-danger); }
.ft-hub-section { margin-top: 1rem; }
.ft-hub-section-narrow { max-width: 42.5rem; }
.ft-hub-form { margin-top: 1.35rem; }
.ft-hub-end { text-align: end; }

@media (max-width: 820px) {
    .ft-value-grid, .identity-apps, .dashboard-preview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .identity-main { grid-template-columns: 1fr; }
    .dashboard-apps, .dashboard-security-grid, .dashboard-assurance-grid, .dashboard-onboarding-grid, .support-grid { grid-template-columns: 1fr; }
    .ft-hub .span-8, .ft-hub .span-4 { grid-column: span 12; }
}

@media (max-width: 520px) {
    .ft-shell { width: min(100% - 1.25rem, 1180px); }
    .ft-login-page { padding: .75rem; }
    .identity-bar { gap: .4rem; }
    .identity-bar .ft-logo { width: min(120px, 30vw); }
    .identity-user { gap: .35rem; }
    .identity-user .ft-avatar { width: 2.1rem; height: 2.1rem; }
    .identity-user .ft-language { min-height: 2.25rem; padding: .35rem .55rem; font-size: .76rem; }
    .ft-login-phone, .ft-value-grid, .identity-apps, .identity-journey, .dashboard-stats, .dashboard-preview-grid { grid-template-columns: 1fr; }
    .ft-current-account { grid-template-columns: auto minmax(0, 1fr); }
    .ft-current-account form { grid-column: 1 / -1; }
    .ft-current-account-button { width: 100%; }
    .ft-otp-cells { gap: .3rem; }
    .ft-otp-cell { width: 2.35rem !important; min-height: 3.1rem !important; }
    .identity-account, .identity-work-row { align-items: flex-start; flex-direction: column; }
    .identity-funds { margin-inline-start: 0; }
    .dashboard-heading { align-items: flex-start; flex-direction: column; }
    .dashboard-section-head { align-items: flex-start; flex-direction: column; gap: .25rem; }
    .dashboard-nav { flex-wrap: nowrap; overflow-x: auto; }
    .dashboard-nav a { white-space: nowrap; }
    .dashboard-list-row { align-items: flex-start; flex-direction: column; }
    .dashboard-list-row .ft-button { width: 100%; }
    .dashboard-app { grid-template-columns: auto minmax(0, 1fr); }
    .dashboard-app .identity-app-status { grid-column: 2; }
    .identity-support-dock { inset-inline: .625rem; bottom: .5rem; width: auto; overflow-x: auto; flex-wrap: nowrap; }
    .identity-support-dock a, .identity-support-dock span { flex: none; white-space: nowrap; }
    .support-thread-head { flex-direction: column; }
    .support-message { width: 94%; }
    .ft-hub .item { align-items: flex-start; flex-direction: column; }
    .ft-hub-end { width: 100%; text-align: start; }
    .ft-hub-nav { width: 100%; }
}
