/* FLEXa unified product layer · web, responsive and accessible */
:root {
    color-scheme: dark;
    --ink: var(--flexa-page);
    --violet: var(--flexa-surface);
    --violet-2: var(--flexa-idle);
    --cream: var(--flexa-page);
    --paper: var(--flexa-surface);
    --lime: var(--flexa-accent);
    --pink: var(--flexa-viz-2);
    --blue: var(--flexa-viz-3);
    --danger: var(--flexa-danger);
    --muted: var(--flexa-muted);
    --line: var(--flexa-line);
    --system-shadow: 0 24px 72px rgba(0,0,0,.28);
    --system-shadow-soft: 0 12px 36px rgba(0,0,0,.18);
}

html { min-width: 0; background: var(--flexa-page); scrollbar-gutter: stable; }
body { min-height: 100vh; background: var(--flexa-page); color: var(--flexa-ink); font: var(--flexa-size-body)/var(--flexa-leading-body) var(--flexa-font-sans); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
::selection { color: var(--flexa-on-accent); background: var(--flexa-accent); }
:where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 3px solid var(--flexa-accent); outline-offset: 3px; }
:where(button, a, input, select, textarea) { -webkit-tap-highlight-color: transparent; }
:where(button, input, select, textarea) { font: inherit; }
:where(button, [type="button"], [type="submit"], a) { transition: color var(--flexa-dur-state) var(--flexa-ease), background-color var(--flexa-dur-state) var(--flexa-ease), border-color var(--flexa-dur-state) var(--flexa-ease), opacity var(--flexa-dur-state) var(--flexa-ease), transform var(--flexa-dur-state) var(--flexa-ease); }
:where(button, [type="button"], [type="submit"]):active:not(:disabled), :where(.primary,.action-link,.public-primary):active { transform: translateY(1px); }
:where(button, input, select, textarea):disabled { cursor: not-allowed; opacity: .5; }

.skip-link { position: fixed; z-index: 9999; top: var(--flexa-space-3); left: var(--flexa-space-3); padding: 12px 16px; color: var(--flexa-on-accent); background: var(--flexa-accent); border-radius: var(--flexa-radius-control); font: 700 12px var(--flexa-font-mono); text-decoration: none; transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

/* The verified F and full wordmark occupy separate, non-overlapping cold-boot phases. */
.flexa-boot { position: fixed; inset: 0; z-index: 99999; display: grid; place-content: center; justify-items: center; color: var(--flexa-ink); background: var(--flexa-page); transition: opacity .25s ease, visibility .25s ease; }
.flexa-boot.is-ready { opacity: 0; visibility: hidden; pointer-events: none; }
.flexa-boot-sequence { display: grid; place-items: center; width: min(320px,82vw); min-height: 150px; }
.flexa-boot-mark,.flexa-boot-wordmark { display: block; grid-area: 1 / 1; height: auto; transform-origin: center; }
.flexa-boot-mark { width: min(132px,32vw); animation: flexa-boot-mark-phase 2.2s ease-in-out both; }
.flexa-boot-wordmark { width: min(280px,74vw); opacity: 0; object-fit: contain; animation: flexa-boot-wordmark-phase 2.2s ease-in-out both; }
.flexa-boot-version { margin-top: 8px; color: var(--flexa-muted); font: 700 9px/1 var(--flexa-font-mono); letter-spacing: .12em; }
@keyframes flexa-boot-mark-phase { 0% { opacity: 0; transform: scale(.88); } 10%,38% { opacity: 1; transform: scale(1); } 48%,100% { opacity: 0; transform: scale(1.05); } }
@keyframes flexa-boot-wordmark-phase { 0%,52% { opacity: 0; transform: translateY(8px); } 62%,100% { opacity: 1; transform: translateY(0); } }
/* A full-document navigation in the same tab (including the post-login redirect) is not a cold boot.
   Keep the authenticated hand-off to the compact animated F and never reveal the wordmark phase. */
.flexa-repeat-load .flexa-boot-sequence { width: 24px; min-height: 24px; }
.flexa-repeat-load .flexa-boot-mark { width: 28px; animation: flexa-page-loader-mark .7s ease-in-out infinite !important; }
.flexa-repeat-load .flexa-boot-wordmark { display: none !important; animation: none !important; }
.flexa-repeat-load .flexa-boot-version { display: none; }
/* Keep the two brand phases for reduced-motion users without introducing movement.
   The scoped important declarations intentionally outrank app.css's global animation reset. */
@media (prefers-reduced-motion: reduce) { .flexa-boot-mark { animation: flexa-boot-mark-static-phase 2.2s step-end both !important; } .flexa-boot-wordmark { animation: flexa-boot-wordmark-static-phase 2.2s step-end both !important; } }
@media (prefers-reduced-motion: reduce) { .flexa-repeat-load .flexa-boot-mark { animation: none !important; opacity: 1; transform: none; } }
@keyframes flexa-boot-mark-static-phase { 0%,48% { opacity: 1; } 49%,100% { opacity: 0; } }
@keyframes flexa-boot-wordmark-static-phase { 0%,51% { opacity: 0; } 52%,100% { opacity: 1; } }

/* Every post-launch web wait uses the compact F + square + trademark lockup only. */
.flexa-page-loader { display: flex; align-items: center; justify-content: center; gap: .7rem; min-height: 72px; color: var(--flexa-muted); }
.flexa-page-loader img { width: 42px; height: 42px; object-fit: contain; animation: flexa-page-loader-mark 1.2s ease-in-out infinite; }
.flexa-page-loader.is-compact { display: inline-flex; min-height: 0; gap: 0; }
.flexa-page-loader.is-compact img { width: 28px; height: 28px; }
@keyframes flexa-page-loader-mark { 0%,100% { opacity: .72; transform: scale(.92); } 50% { opacity: 1; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .flexa-page-loader img { animation: none; opacity: 1; transform: none; } }

/* Enhanced navigation keeps the document alive, so it needs its own compact F wait cue. */
.flexa-navigation-wait { position: fixed; inset: 0; z-index: 99998; display: grid; place-items: center; pointer-events: none; background: rgba(10,10,10,.86); opacity: 0; transition: opacity .12s ease; }
.flexa-navigation-wait[hidden] { display: none !important; }
.flexa-navigation-wait.is-active { opacity: 1; }
.flexa-navigation-wait img { display: block; width: 28px; height: 28px; object-fit: contain; animation: flexa-page-loader-mark 1.2s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce) { .flexa-navigation-wait { transition: none; } .flexa-navigation-wait img { animation: none; opacity: 1; transform: none; } }

/* Authenticated product shell */
.app-shell { grid-template-columns: 264px minmax(0,1fr); align-items: start; background: var(--flexa-page); }
.rail { width: 264px; padding: 26px 18px 18px; border-right: 1px solid var(--flexa-line-soft); background: rgba(10,10,10,.98); }
.brand { min-height: 64px; padding: 0 10px 24px; }
.portal-brand-logo { display: block; width: 148px; max-width: 100%; height: auto; object-fit: contain; object-position: left center; }
.public-footer-brand { display: grid; gap: 8px; }
.public-footer-brand-logo { display: block; width: 132px; max-width: 100%; height: auto; object-fit: contain; object-position: left center; }
.brand small,.rail-status small { color: var(--flexa-muted); }
.rail nav { gap: 20px; }
.nav-group { gap: 4px; }
.nav-group-label { padding: 0 12px 7px; color: var(--flexa-muted); font-size: 9px; }
.rail nav a { min-height: 44px; display: flex; align-items: center; padding: 11px 12px; border: 1px solid transparent; border-radius: var(--flexa-radius-card); color: var(--flexa-body); font-weight: 600; }
.rail nav a span { min-width: 20px; color: var(--flexa-muted); }
.rail nav a:hover { color: var(--flexa-ink); border-color: var(--flexa-line-soft); background: var(--flexa-surface); }
.rail nav a.active { color: var(--flexa-on-accent); border-color: var(--flexa-accent); background: var(--flexa-accent); }
.rail nav a.active span { color: var(--flexa-on-accent); }
.rail-status { border-color: var(--flexa-line-soft); }
.rail-logout { min-height: 44px; border-radius: var(--flexa-radius-card); border-color: var(--flexa-line); color: var(--flexa-body); display:flex; align-items:center; justify-content:center; gap:8px; }
.rail-logout .flexa-icon,.public-login .flexa-icon,.auth-lock-heading .flexa-icon { width:18px; height:18px; flex:0 0 auto; }
.rail-logout:hover { color: var(--flexa-on-accent); background: var(--flexa-accent); }
.workspace { max-width: var(--flexa-max-content); min-height: 100vh; padding: clamp(24px,3vw,48px) clamp(18px,4vw,64px) 88px; margin: 0 auto; }
.workspace > :where(header,main,section,.content) { width: 100%; }
.content { display: grid; gap: var(--flexa-space-5); }

/* Page hierarchy */
.topbar { min-height: 82px; margin: 0 0 var(--flexa-space-6); padding-bottom: var(--flexa-space-5); border-bottom: 1px solid var(--flexa-line); align-items: end; }
.topbar h1 { max-width: 22ch; margin: 5px 0 0; color: var(--flexa-ink); font-size: clamp(30px,4vw,54px); line-height: .96; letter-spacing: var(--flexa-track-display); }
.eyebrow { color: var(--flexa-accent); font: 700 var(--flexa-size-label)/1.3 var(--flexa-font-mono); letter-spacing: var(--flexa-track-label); text-transform: uppercase; }
:where(.content,.workspace) h2 { letter-spacing: var(--flexa-track-title); }
:where(.content,.workspace) p { color: var(--flexa-body); }
:where(.content,.workspace) small { line-height: 1.45; }

/* Cards and states */
.panel { min-width: 0; margin: 0; padding: clamp(18px,2.4vw,28px); border: 1px solid var(--flexa-line); border-radius: var(--flexa-radius-card); background: var(--flexa-surface); box-shadow: none; }
.panel-heading { min-height: 38px; gap: var(--flexa-space-4); margin-bottom: var(--flexa-space-5); padding-bottom: var(--flexa-space-4); border-bottom: 1px solid var(--flexa-line-soft); }
.panel-heading h3 { color: var(--flexa-ink); font-size: var(--flexa-size-heading); }
.panel-heading span { color: var(--flexa-muted); font: 700 10px var(--flexa-font-mono); letter-spacing: .08em; }
:where(.metric,.wallet-pill,.tenant-context-card,.application-review-card,.document-card,.profile-card,.evidence-card) { border-radius: var(--flexa-radius-card); }
.metric { border: 1px solid var(--flexa-line-soft); background: var(--flexa-surface); }
.status-chip,.status-pill { border: 1px solid var(--flexa-line); border-radius: var(--flexa-radius-pill); color: var(--flexa-accent); background: rgba(255,229,0,.08); font: 700 10px var(--flexa-font-mono); letter-spacing: .08em; text-transform: uppercase; }
:where(.notice,.form-alert,.auth-error,.auth-success,.auth-note) { padding: 14px 16px; border-radius: var(--flexa-radius-card); border: 1px solid currentColor; }
.empty-state { min-height: 180px; display: grid; place-content: center; gap: 8px; padding: var(--flexa-space-6); border: 1px dashed var(--flexa-line); border-radius: var(--flexa-radius-card); text-align: center; }

/* Controls, forms, validation */
:where(.workspace,.content,.auth-page) form { min-width: 0; }
:where(.workspace,.content,.auth-page) form label { display: grid; gap: 8px; color: var(--flexa-ink); font: 700 12px/1.35 var(--flexa-font-mono); letter-spacing: .025em; }
:where(.workspace,.content,.auth-page) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea) {
    width: 100%; min-height: 52px; padding: 13px 15px; border: 1px solid rgba(255,255,255,.28); border-radius: var(--flexa-radius-control); color: var(--flexa-ink); background: var(--flexa-surface-alt); caret-color: var(--flexa-accent); font-family: var(--flexa-font-sans); font-size: 16px; font-weight: 600;
}
:where(.workspace,.content,.auth-page) :is(input,select,textarea)::placeholder { color: #77776d; opacity: 1; }
:where(.workspace,.content,.auth-page) :is(input,select,textarea):hover:not(:disabled) { border-color: rgba(255,229,0,.48); }
:where(.workspace,.content,.auth-page) :is(input,select,textarea):focus { border-color: var(--flexa-accent); box-shadow: 0 0 0 3px rgba(255,229,0,.12); }
:where(.workspace,.content,.auth-page) select { color-scheme: dark; }
:where(.workspace,.content,.auth-page) input[type="checkbox"], :where(.workspace,.content,.auth-page) input[type="radio"] { width: 22px; height: 22px; flex: 0 0 22px; margin: 0; accent-color: var(--flexa-accent); cursor: pointer; }
:where(.workspace,.content,.auth-page) label.check { min-height: 44px; display: flex; align-items: center; gap: 12px; color: var(--flexa-body); font-family: var(--flexa-font-sans); font-size: 14px; letter-spacing: 0; cursor: pointer; }
:where(.workspace,.content,.auth-page) :is(.field-help,.hint,form small) { color: var(--flexa-muted); font-size: 12px; font-weight: 500; line-height: 1.5; }
:where(.workspace,.content,.auth-page) :is(input,select,textarea):user-invalid { border-color: var(--flexa-danger); box-shadow: 0 0 0 3px rgba(255,77,90,.12); }
:where(.workspace,.content,.auth-page) input[type="file"]::file-selector-button { min-height: 38px; border: 0; border-radius: var(--flexa-radius-control); color: var(--flexa-on-accent); background: var(--flexa-accent); font: 700 11px var(--flexa-font-mono); }
.password-control { position: relative !important; display: block; width: 100%; }
.password-control input { width: 100%; padding-right: 46px !important; }
.password-control > .password-visibility { position: absolute !important; top: 50% !important; right: 6px !important; bottom: auto !important; left: auto !important; z-index: 2; transform: translateY(-50%); display: inline-grid; place-items: center; box-sizing: border-box; width: 32px !important; min-width: 32px !important; max-width: 32px !important; height: 32px !important; min-height: 32px !important; max-height: 32px !important; margin: 0 !important; padding: 6px !important; flex: 0 0 32px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--flexa-accent); line-height: 1; cursor: pointer; }
.password-eye { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.password-eye-off { display: none; }
.password-visibility[aria-pressed="true"] .password-eye-open { display: none; }
.password-visibility[aria-pressed="true"] .password-eye-off { display: block; }
.password-control > .password-visibility:hover,.password-control > .password-visibility:focus-visible { border-color: var(--flexa-accent); color: var(--flexa-accent); }
.form-grid { gap: var(--flexa-space-4); }
.primary,.public-primary,.action-link,:where(.workspace,.content) button[type="submit"] { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 18px; border: 1px solid var(--flexa-accent); border-radius: var(--flexa-radius-card); color: var(--flexa-on-accent); background: var(--flexa-accent); font: 700 12px var(--flexa-font-mono); letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.primary:hover,.public-primary:hover,.action-link:hover,:where(.workspace,.content) button[type="submit"]:hover { background: #fff06a; border-color: #fff06a; }
.ghost,.ghost-link,.small-button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-color: var(--flexa-line); border-radius: var(--flexa-radius-card); color: var(--flexa-body); background: transparent; }
.ghost:hover,.ghost-link:hover,.small-button:hover { color: var(--flexa-ink); border-color: var(--flexa-accent); }

/* Registers and tables */
.table-wrap,.user-table { border: 1px solid var(--flexa-line); border-radius: var(--flexa-radius-card); background: var(--flexa-surface); scrollbar-color: var(--flexa-accent) var(--flexa-surface-alt); }
.table-wrap table { width: 100%; border-collapse: separate; border-spacing: 0; }
.table-wrap th,.user-head { position: sticky; top: 0; z-index: 1; color: var(--flexa-muted); background: var(--flexa-surface-alt); font: 700 10px var(--flexa-font-mono); letter-spacing: .12em; text-transform: uppercase; }
.table-wrap td,.user-row { border-color: var(--flexa-line-soft); color: var(--flexa-body); }
.table-wrap tbody tr:hover,.user-row:not(.user-head):hover { background: rgba(255,229,0,.035); }
.table-wrap td strong,.user-row strong { color: var(--flexa-ink); }

/* Authentication is a premium product entry, not a detached utility form */
.auth-page { min-height: calc(100svh - 78px); padding: clamp(24px,6vw,72px) 18px; background: linear-gradient(90deg,rgba(10,10,10,.98) 0%,rgba(10,10,10,.76) 55%,rgba(10,10,10,.9) 100%),url('/images/hero-training.jpg') center/cover fixed; }
.public-shell:has(.native-registration-page) .public-nav,
.public-shell:has(.native-registration-page) .public-footer { display: none; }
.native-registration-page { min-height: 100svh; padding: 12px; align-items: start; background-attachment: scroll; }
.native-registration-page .register-card { width: min(100%, 760px); margin-inline: auto; }
.auth-card { width: min(100%,500px); padding: clamp(24px,4vw,44px); border: 1px solid var(--flexa-line); border-radius: var(--flexa-radius-card); background: rgba(15,15,10,.94); box-shadow: var(--system-shadow); backdrop-filter: blur(16px); }
.auth-card h1 { color: var(--flexa-ink); font-size: clamp(38px,6vw,58px); line-height: .95; }
.auth-card > p { color: var(--flexa-body); }
.auth-secondary { min-height: 44px; display: grid; place-items: center; color: var(--flexa-body); text-decoration-color: var(--flexa-line); text-underline-offset: 4px; }
.auth-secondary:hover { color: var(--flexa-accent); }

/* Public navigation polish */
.public-shell { color: var(--flexa-ink); background: var(--flexa-page); }
.public-nav { min-height: 78px; height: auto; position: relative; z-index: 20; border-color: var(--flexa-line-soft); background: rgba(10,10,10,.88); backdrop-filter: blur(18px); }
.public-brand,.public-nav nav a,.public-login,.public-list { color: var(--flexa-ink); }
.public-nav nav a { min-height: 44px; display: inline-flex; align-items: center; font: 700 10px var(--flexa-font-mono); letter-spacing: .1em; text-transform: uppercase; }
.public-nav nav a:hover { color: var(--flexa-accent); }
.public-login,.public-list { min-height: 44px; display: inline-flex; align-items: center; gap:7px; padding: 10px 16px; border: 1px solid var(--flexa-line); border-radius: var(--flexa-radius-card); font: 700 10px var(--flexa-font-mono); letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
.auth-lock-heading { display:inline-flex; align-items:center; gap:8px; }
.public-login { width:44px; min-width:44px; height:44px; padding:0; justify-content:center; gap:0; color: var(--flexa-on-accent); border-color: var(--flexa-accent); background: var(--flexa-accent); }
.public-nav-actions { display: flex; gap: 10px; }
.public-shell:has(.campaign-hero) > .public-nav {
    position: absolute;
    inset: 0 0 auto;
    border-bottom-color: transparent;
    background: linear-gradient(180deg, rgba(10,10,10,.92) 0%, rgba(10,10,10,.58) 58%, transparent 100%);
}

@media (max-width: 1100px) {
    .app-shell { grid-template-columns: 220px minmax(0,1fr); }
    .rail { width: 220px; }
    .workspace { padding-inline: clamp(18px,3vw,34px); }
    .public-nav nav { gap: 16px; }
}

@media (max-width: 820px) {
    .app-shell { display: block; }
    .rail { position: sticky; top: 0; width: 100%; height: auto; max-height: none; padding: calc(10px + env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) 10px max(14px, env(safe-area-inset-left)); display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 10px; align-items: center; border: 0; border-bottom: 1px solid var(--flexa-line); overflow: hidden; }
    .brand { min-height: 44px; padding: 0; }
    .portal-brand-logo { width: 108px; }
    .rail nav { display: flex; gap: 8px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; }
    .rail nav::-webkit-scrollbar { display: none; }
    .nav-group { display: contents; }
    .nav-group-label { display: none; }
    .rail nav a { flex: 0 0 auto; min-height: 42px; padding: 9px 11px; white-space: nowrap; }
    .rail nav a span { display: none; }
    .rail-status { display: none; }
    .rail form { margin: 0; }
    .rail-logout { width: auto; margin: 0; padding-inline: 12px; }
    .workspace { min-height: calc(100vh - 65px); padding-top: 28px; }
    .topbar { align-items: start; }
    .public-nav { padding: calc(10px + env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) 10px max(18px, env(safe-area-inset-left)); }
    .public-nav nav { display: none; }
}

@media (max-width: 620px) {
    .workspace { padding: 22px max(14px, env(safe-area-inset-right)) calc(72px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left)); }
    .topbar { min-height: 0; display: grid; gap: 14px; margin-bottom: 20px; padding-bottom: 18px; }
    .topbar > :last-child:not(:first-child) { justify-self: start; }
    .panel { padding: 18px 15px; }
    .panel-heading { align-items: start; }
    .form-grid { grid-template-columns: 1fr; }
    .public-nav-actions { gap: 6px; }
    .public-list { display: none; }
    .public-login { width:44px; min-width:44px; padding:0; }
    .public-footer { padding-inline: max(18px, env(safe-area-inset-left), env(safe-area-inset-right)); padding-bottom: calc(30px + env(safe-area-inset-bottom)); }
    .auth-page { align-items: start; padding-top: calc(28px + env(safe-area-inset-top)); padding-bottom: calc(28px + env(safe-area-inset-bottom)); }
    .auth-card { padding: 25px 18px; backdrop-filter: blur(10px); }
    .table-wrap { margin-inline: -15px; border-inline: 0; border-radius: 0; }
}

@media (forced-colors: active) {
    :where(button,a,input,select,textarea,.panel,.table-wrap) { forced-color-adjust: auto; }
}

/* Gym tenant registration is an application workspace, not a compact sign-in card. */
.tenant-register-page {
    min-height: calc(100svh - 78px);
    padding: clamp(30px,5vw,72px) clamp(16px,4vw,48px);
    place-items: start center;
}

.tenant-register-card {
    width: min(100%,980px);
    padding: clamp(26px,4vw,50px);
    display: grid;
    gap: clamp(22px,3vw,34px);
    border-radius: 8px;
}

.tenant-register-card > :is(.eyebrow,h1,p,.registration-scope) { margin-block: 0; }
.tenant-register-card > h1 { max-width: 12ch; font-size: clamp(44px,6vw,72px); }
.tenant-register-card > p { max-width: 74ch; font-size: 15px; line-height: 1.65; }

.tenant-registration-progress {
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    border: 1px solid var(--flexa-line-soft);
    list-style: none;
}

.tenant-registration-progress li {
    min-width: 0;
    border-left: 1px solid var(--flexa-line-soft);
}

.tenant-registration-progress li:first-child { border-left: 0; }
.tenant-registration-progress button {
    width: 100%;
    min-height: 68px;
    padding: 13px 16px;
    display: grid;
    gap: 4px;
    justify-items: start;
    border: 0;
    border-radius: 0;
    color: inherit;
    background: transparent;
    text-align: left;
}
.tenant-registration-progress li.active button { background: rgba(255,229,0,.08); box-shadow: inset 0 -3px 0 var(--flexa-accent); }
.tenant-registration-progress button:hover { background: rgba(255,255,255,.04); }
.tenant-registration-progress span,
.tenant-registration-section > header > span,
.tenant-register-card .address-fieldset > legend > span {
    color: var(--flexa-accent);
    font: 700 10px var(--flexa-font-mono);
    letter-spacing: .12em;
}
.tenant-registration-progress strong { color: var(--flexa-body); font: 700 11px var(--flexa-font-mono); text-transform: uppercase; }

.tenant-registration-section {
    min-width: 0;
    padding-top: 24px;
    display: grid;
    gap: 22px;
    border-top: 1px solid var(--flexa-line-soft);
}
.tenant-register-card [data-registration-step][hidden] { display: none !important; }
[data-registration-form] [data-registration-step][hidden] { display: none !important; }

.tenant-registration-section > header {
    display: grid;
    grid-template-columns: 34px minmax(0,1fr);
    gap: 12px;
    align-items: start;
}

.tenant-registration-section h2 { margin: 0; color: var(--flexa-ink); font-size: clamp(22px,3vw,30px); }
.tenant-registration-section header p,
.registration-section-copy { max-width: 68ch; margin: 5px 0 0; color: var(--flexa-muted); font-size: 13px; line-height: 1.55; }

.tenant-register-card .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.tenant-register-card .address-fieldset {
    min-width: 0;
    margin: 0;
    padding: clamp(20px,3vw,28px);
    display: grid;
    gap: 20px;
    border: 1px solid var(--flexa-line-soft);
    border-radius: 6px;
    background: rgba(255,255,255,.018);
}
.tenant-register-card .address-fieldset > legend { padding-inline: 8px; font-size: 15px; }
.tenant-register-card .address-fieldset > legend > span { margin-right: 8px; }
.tenant-register-card .applicant-fieldset .identity-document-picker { grid-column: 1 / -1; }
.tenant-register-card .applicant-fieldset > .registration-section-copy { margin: 0 0 2px; }

.tenant-declarations .check { margin: 0; padding: 14px 16px; border: 1px solid var(--flexa-line-soft); border-radius: 5px; background: rgba(255,255,255,.025); }
.tenant-registration-footer { padding-top: 26px; display: grid; gap: 16px; border-top: 1px solid var(--flexa-line-soft); }
.tenant-registration-footer .public-primary { width: 100%; min-height: 56px; }
.tenant-registration-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.tenant-registration-footer > small { display: block; margin: 0; text-align: center; }
.tenant-step-actions { padding-top: 4px; display: flex; justify-content: flex-end; gap: 12px; }
.tenant-step-actions button { width: auto; min-width: 180px; min-height: 50px; padding-inline: 20px; }

.staged-register-card {
    width: min(100%,900px);
    padding: clamp(26px,4vw,48px);
    display: grid;
    gap: clamp(22px,3vw,32px);
    border-radius: 8px;
}
.staged-register-card > :is(.eyebrow,h1,p,.registration-scope) { margin-block: 0; }
.staged-register-card > h1 { max-width: 14ch; font-size: clamp(42px,6vw,66px); }
.staged-register-card > p { max-width: 68ch; font-size: 15px; line-height: 1.6; }
.staged-register-card .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.staged-register-card .identity-document-picker { width: 100%; }
.staged-register-card .address-fieldset {
    min-width: 0;
    margin: 0;
    padding: clamp(20px,3vw,28px);
    display: grid;
    gap: 20px;
    border: 1px solid var(--flexa-line-soft);
    border-radius: 6px;
    background: rgba(255,255,255,.018);
}
.staged-register-card .address-fieldset > legend { padding-inline: 8px; font-size: 15px; }
.staged-register-card .address-fieldset > legend > span { margin-right: 8px; color: var(--flexa-accent); }

@media (max-width: 700px) {
    .tenant-register-page { padding: 18px 10px 48px; }
    .tenant-register-card { padding: 24px 16px; gap: 24px; border-inline: 0; border-radius: 0; }
    .tenant-register-card > h1 { font-size: clamp(40px,13vw,58px); }
    .tenant-registration-progress { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .tenant-registration-progress li:nth-child(3) { border-left: 0; }
    .tenant-registration-progress li:nth-child(n+3) { border-top: 1px solid var(--flexa-line-soft); }
    .tenant-register-card .form-grid,
    .tenant-registration-links { grid-template-columns: 1fr; }
    .tenant-register-card .address-fieldset { padding: 18px 14px; }
    .tenant-registration-section > header { grid-template-columns: 28px minmax(0,1fr); }
    .tenant-step-actions { display: grid; grid-template-columns: 1fr; }
    .tenant-step-actions button { width: 100%; min-width: 0; }
    .staged-register-card { padding: 24px 16px; gap: 24px; border-inline: 0; border-radius: 0; }
    .staged-register-card .form-grid { grid-template-columns: 1fr; }
}
