@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800;900&family=Space+Mono:wght@400;700&display=swap');

:root {
    --ink: #0a0a0a;
    --violet: #17170f;
    --violet-2: #2e2e22;
    --cream: #0a0a0a;
    --paper: #17170f;
    --lime: #ffe500;
    --pink: #b99c1e;
    --blue: #4f5b4a;
    --danger: #ff3b2f;
    --muted: #8a8a7c;
    --line: rgba(255, 229, 0, .2);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: #fff; background: var(--cream); font-family: "Archivo", sans-serif; }
button, input { font: inherit; }
button { cursor: pointer; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 232px 1fr; }
.rail { position: sticky; top: 0; height: 100vh; padding: 28px 18px; color: white; background: var(--ink); display: flex; flex-direction: column; z-index: 5; }
.brand { color: white; text-decoration: none; display: flex; align-items: center; gap: 12px; padding: 0 10px 34px; }
.brand-mark { width: 36px; height: 36px; border-radius: 50%; color: var(--ink); background: var(--lime); display: grid; place-items: center; font: 700 19px "Space Mono"; }
.brand strong { display: block; font-size: 20px; letter-spacing: -.04em; }
.brand small, .rail-status small { display: block; color: #aaa1bc; font: 8px "Space Mono"; letter-spacing: .12em; }
.rail nav { display: grid; gap: 16px; overflow-y: auto; padding-right: 3px; scrollbar-width: thin; }
.nav-group { display: grid; gap: 5px; }
.nav-group-label {
    padding: 0 12px 4px;
    color: #776e86;
    font: 700 8px "Space Mono";
    letter-spacing: .16em;
    text-transform: uppercase;
}
.rail nav a { padding: 13px 12px; border-radius: 10px; color: #afa8bd; text-decoration: none; font-size: 13px; }
.rail nav a span { margin-right: 9px; color: #6f667c; font: 10px "Space Mono"; }
.rail nav a:hover, .rail nav a.active { color: white; background: #2a2140; }
.nav-ai-badge { float: right; padding: 2px 5px; border: 1px solid currentColor; border-radius: 3px; color: var(--lime); font: 700 8px var(--flexa-font-mono, "Space Mono", monospace); letter-spacing: .08em; }
.rail-status { margin-top: auto; padding: 14px 10px; display: flex; align-items: center; gap: 10px; border-top: 1px solid #342b46; font-size: 12px; }
.live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 0 5px #d9ff7215; }
.workspace { min-width: 0; padding: 34px 44px 80px; max-width: 1480px; width: 100%; margin: auto; }
.topbar, .section-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; }
.topbar { margin-bottom: 28px; }
.topbar h1 { margin: 4px 0 0; font-size: clamp(27px, 3vw, 46px); letter-spacing: -.055em; }
.eyebrow { font: 700 10px "Space Mono"; letter-spacing: .16em; color: #7e758c; }
.top-actions { display: flex; align-items: center; gap: 12px; }
.ghost, .ghost-link { border: 1px solid #cfc8d2; border-radius: 999px; padding: 10px 15px; background: transparent; color: var(--ink); font-size: 12px; text-decoration: none; }
.avatar { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--violet); color: white; font: 11px "Space Mono"; }
.toast-message { position: sticky; top: 12px; z-index: 10; margin-bottom: 18px; padding: 13px 16px; border: 1px solid #b3d75b; border-radius: 10px; background: #efffc8; font-size: 13px; box-shadow: 0 10px 30px #2d273614; }
.hero-grid { display: grid; grid-template-columns: 1.8fr 1fr; gap: 14px; }
.hero-card { min-height: 330px; padding: 34px; border-radius: 18px; }
.hero-card .eyebrow { color: #aaa1ba; }
.hero-card.ink { color: white; background: radial-gradient(circle at 85% 10%, #573984 0, transparent 30%), var(--ink); display: flex; flex-direction: column; }
.hero-card.ink h2 { max-width: 720px; margin: 26px 0 13px; font-size: clamp(35px, 5vw, 68px); line-height: .95; letter-spacing: -.065em; }
.hero-card.ink p { color: #bcb5c8; max-width: 610px; }
.hero-stats { margin-top: auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.hero-stats div { border-top: 1px solid #403650; padding-top: 14px; }
.hero-stats strong, .hero-stats small { display: block; }
.hero-stats strong { font: 700 18px "Space Mono"; }
.hero-stats small { margin-top: 5px; color: #9e96ac; font-size: 10px; }
.hero-card.signal { background: var(--lime); display: flex; flex-direction: column; }
.score-ring { flex: 1; display: grid; place-content: center; text-align: center; }
.score-ring strong { font: 700 43px "Space Mono"; letter-spacing: -.08em; }
.score-ring small { display: block; font-size: 11px; }
.signal-row { display: flex; justify-content: space-between; padding: 11px 0; border-top: 1px solid #b8dc54; font-size: 12px; }
.readiness-row { color: inherit; text-decoration: none; gap: 16px; align-items: flex-start; }
.readiness-row > span { display: grid; gap: 3px; min-width: 0; }
.readiness-row small { font-size: 10px; line-height: 1.35; opacity: .72; overflow-wrap: anywhere; }
.readiness-row strong { flex: 0 0 auto; }
.approved { color: #12612f; }
.not-attested { color: #761d17; }
.readiness-policy-note { margin: 10px 0 0; padding-top: 10px; border-top: 1px solid rgba(10,10,10,.24); font-size: 10px; line-height: 1.45; }
.readiness-audit-summary { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0,1fr)); margin-bottom: 18px; }
.readiness-audit-summary > div { display: grid; gap: 4px; }
.readiness-audit-summary > div:last-child { grid-column: 1 / -1; }
.readiness-audit-summary code, .readiness-blockers code, .readiness-audit-card code { overflow-wrap: anywhere; white-space: normal; }
.readiness-audit-grid { align-items: stretch; }
.readiness-audit-card { display: block; }
.readiness-audit-card ul { padding-left: 18px; }
.readiness-blockers { margin-top: 18px; }
.readiness-blockers ol { padding-left: 22px; display: grid; gap: 10px; }
.readiness-blockers li { padding-left: 5px; }
.readiness-blockers li span { display: block; margin-top: 3px; color: var(--muted); }
@media (max-width: 640px) {
  .readiness-row { align-items: stretch; flex-direction: column; gap: 5px; }
  .readiness-row strong { align-self: flex-start; }
  .readiness-audit-summary { grid-template-columns: 1fr; }
  .readiness-audit-summary > div:last-child { grid-column: auto; }
}
.section-block { padding-top: 78px; scroll-margin-top: 20px; }
.section-heading { margin-bottom: 22px; }
.section-heading h2 { margin: 4px 0 0; font-size: clamp(28px, 3vw, 42px); letter-spacing: -.05em; }
.wallet-pill { min-width: 166px; padding: 12px 17px; border-radius: 12px; color: white; background: var(--violet); text-align: right; }
.wallet-pill small, .wallet-pill strong { display: block; }
.wallet-pill small { color: #aaa1ba; font: 9px "Space Mono"; }
.wallet-pill strong { font: 700 20px "Space Mono"; }
.member-grid, .operator-grid, .admin-grid { display: grid; grid-template-columns: 1.6fr .8fr; gap: 14px; }
.panel { padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: var(--paper); }
.panel-heading { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.panel-heading h3 { margin: 0; font-size: 16px; }
.panel-heading span { color: var(--muted); font-size: 10px; }
.venue-row { width: 100%; display: grid; grid-template-columns: 44px 1fr 130px 90px; align-items: center; gap: 12px; padding: 14px 8px; border: 0; border-top: 1px solid #ebe7dd; color: inherit; background: transparent; text-align: left; }
.venue-row:hover, .venue-row.selected { background: #f1ecff; }
.venue-avatar { width: 38px; height: 38px; border-radius: 9px; display: grid; place-items: center; background: var(--violet); color: var(--lime); font: 700 14px "Space Mono"; }
.venue-copy strong, .venue-copy small, .price small, .settlement-row small, .alert-row small { display: block; }
.venue-copy small, .price small, .settlement-row small, .alert-row small { margin-top: 3px; color: var(--muted); font-size: 10px; }
.occupancy { display: grid; gap: 6px; }
.occupancy:before { content: ""; height: 4px; border-radius: 4px; background: #e7e1e9; grid-area: 1/1; }
.occupancy i { height: 4px; border-radius: 4px; background: var(--pink); grid-area: 1/1; }
.occupancy small { font-size: 9px; }
.price { text-align: right; font: 700 12px "Space Mono"; }
.access-panel { color: white; background: var(--violet); }
.access-panel .eyebrow { color: var(--pink); }
.access-panel h3 { margin: 30px 0 8px; font-size: 24px; }
.access-panel p { color: #b9b0c6; font-size: 12px; line-height: 1.6; }
.access-price, .access-code { margin: 20px 0; font: 700 42px "Space Mono"; letter-spacing: -.08em; }
.access-code { padding: 16px; border: 1px dashed #766389; border-radius: 12px; color: var(--lime); text-align: center; letter-spacing: .12em; }
.primary { border: 0; border-radius: 9px; padding: 12px 16px; color: var(--ink); background: var(--lime); font-weight: 700; font-size: 12px; }
.full { width: 100%; }
.text-action { width: 100%; margin-top: 10px; padding: 9px; border: 0; color: #c3b7d4; background: transparent; font-size: 11px; }
.status-chip { padding: 9px 13px; border-radius: 999px; color: #506d15; background: #e8ffc0; font-size: 11px; }
.status-chip.secure { color: #46305d; background: #e8d7ff; }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px; }
.metric { padding: 18px; border-radius: 12px; color: white; background: var(--violet); }
.metric small, .metric strong, .metric em { display: block; }
.metric small { color: #a99db8; font: 9px "Space Mono"; }
.metric strong { margin: 17px 0 8px; font: 700 24px "Space Mono"; }
.metric em { color: #bdb3c8; font-size: 10px; font-style: normal; }
.operator-grid { grid-template-columns: 1.4fr .6fr; }
.bars { height: 220px; display: flex; align-items: end; justify-content: space-around; gap: 14px; padding-top: 24px; border-bottom: 1px solid var(--line); }
.bars div { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: end; align-items: center; gap: 8px; }
.bars i { width: 100%; max-width: 36px; min-height: 8px; border-radius: 5px 5px 0 0; background: linear-gradient(var(--pink), #ba8bff); }
.bars small { font: 9px "Space Mono"; }
.pricing-card { display: grid; gap: 12px; }
.pricing-card label { display: grid; grid-template-columns: 1fr 80px; align-items: center; font-size: 12px; }
.pricing-card input { width: 80px; padding: 9px; border: 1px solid var(--line); border-radius: 8px; background: white; }
.admin-grid { grid-template-columns: 1.35fr .65fr; }
.settlement-row { display: grid; grid-template-columns: 1fr 130px 92px; align-items: center; gap: 12px; padding: 16px 0; border-top: 1px solid #ebe7dd; font-size: 12px; }
.small-button { padding: 8px 10px; border: 1px solid #bdb2c3; border-radius: 8px; background: white; font-size: 10px; }
.small-button:disabled { color: #73962d; border-color: #c6de93; background: #f3ffdd; }
.alert-row { display: flex; gap: 10px; padding: 12px 0; border-top: 1px solid #ebe7dd; }
.alert-row > span { flex: 0 0 8px; height: 8px; margin-top: 4px; border-radius: 50%; }
.alert-row .watch { background: #e5a51f; }
.alert-row .info { background: #6282df; }
.control-line { display: flex; justify-content: space-between; padding: 11px 0; border-top: 1px solid #ebe7dd; font-size: 11px; }
.good { color: #66881d; }
.endpoint-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.endpoint { display: grid; grid-template-columns: 60px 1fr; align-items: center; gap: 10px; padding: 15px; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); }
.endpoint > span { padding: 5px 7px; border-radius: 5px; text-align: center; font: 700 9px "Space Mono"; }
.endpoint .get { color: #2c5f49; background: #d7f5e5; }
.endpoint .post { color: #533d74; background: #eadcff; }
.endpoint .put { color: #755716; background: #fff0bd; }
.endpoint code { font-size: 11px; }
.endpoint small { grid-column: 2; color: var(--muted); font-size: 10px; }
#blazor-error-ui { display: none; position: fixed; z-index: 1000; bottom: 0; width: 100%; padding: 12px; background: #fff0bd; }
#blazor-error-ui .dismiss { float: right; cursor: pointer; }
#blazor-error-ui .dismiss .flexa-icon { width: 1rem; height: 1rem; }
.rail-logout { width: 100%; margin-top: 8px; padding: 10px; border: 1px solid #403650; border-radius: 8px; color: #aaa1ba; background: transparent; font-size: 11px; }

/* FLEXa Assist — role-bound, advisory AI workspace */
.portal-ai-topbar p { max-width: 66ch; margin: .75rem 0 0; color: var(--muted); }
.ai-availability { display: inline-flex; align-items: center; gap: .55rem; min-height: 36px; padding: .55rem .75rem; border: 1px solid var(--line); border-radius: 4px; font: 700 .62rem var(--flexa-font-mono); letter-spacing: .1em; }
.ai-availability i { width: 7px; height: 7px; background: #ff3b30; }
.ai-availability.ready i { background: var(--lime); }
.portal-ai-workspace { gap: 1rem; }
.ai-context-strip { display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); background: var(--paper); }
.ai-context-strip div { min-width: 0; padding: 1rem 1.2rem; }
.ai-context-strip div + div { border-left: 1px solid var(--line); }
.ai-context-strip small, .ai-context-strip strong { display: block; }
.ai-context-strip small { color: var(--muted); font: 700 .58rem var(--flexa-font-mono); letter-spacing: .12em; }
.ai-context-strip strong { margin-top: .35rem; overflow-wrap: anywhere; font-size: .85rem; }
.ai-console { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .5fr); min-height: 420px; border: 1px solid var(--line); background: var(--paper); }
.ai-conversation { display: grid; align-content: start; gap: 1.5rem; padding: clamp(1.25rem, 4vw, 2.5rem); border-right: 1px solid var(--line); }
.ai-introduction { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.ai-mark { display: grid; width: 52px; height: 52px; place-items: center; color: var(--ink); background: var(--lime); font: 900 1.5rem var(--flexa-font-sans); }
.ai-introduction h2 { max-width: 15ch; margin: .35rem 0 .8rem; font-size: clamp(2rem, 5vw, 4rem); line-height: .93; letter-spacing: -.055em; }
.ai-introduction p { max-width: 58ch; margin: 0; color: var(--muted); }
.ai-answer { border-left: 3px solid var(--lime); padding: 1rem 1.15rem; background: #0e0e0b; }
.ai-answer header { display: flex; justify-content: space-between; gap: 1rem; color: var(--lime); font: 700 .6rem var(--flexa-font-mono); letter-spacing: .08em; }
.ai-answer header small { color: var(--muted); }
.ai-answer p { white-space: pre-wrap; line-height: 1.7; }
.ai-answer footer { padding-top: .8rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .7rem; }
.ai-prompts { display: grid; align-content: start; padding: 1.25rem; }
.ai-prompts > .eyebrow { padding: .35rem .5rem 1rem; }
.ai-prompts button { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: .9rem .5rem; border: 0; border-top: 1px solid var(--line); color: #fff; background: transparent; text-align: left; }
.ai-prompts button:hover { color: var(--ink); background: var(--lime); }
.ai-composer { display: grid; gap: .55rem; padding: 1rem; border: 1px solid var(--line); background: var(--paper); }
.ai-composer label { font: 700 .6rem var(--flexa-font-mono); letter-spacing: .12em; }
.ai-composer textarea { width: 100%; min-height: 92px; padding: 1rem; resize: vertical; border: 1px solid var(--line); border-radius: 4px; color: #fff; background: var(--ink); }
.ai-composer textarea:focus { outline: 2px solid var(--lime); outline-offset: 2px; }
.ai-composer > div { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.ai-composer small { color: var(--muted); }

@media (max-width: 900px) {
    .ai-console { grid-template-columns: 1fr; }
    .ai-conversation { border-right: 0; border-bottom: 1px solid var(--line); }
}

@media (max-width: 620px) {
    .ai-context-strip { grid-template-columns: 1fr; }
    .ai-context-strip div + div { border-left: 0; border-top: 1px solid var(--line); }
    .ai-introduction { grid-template-columns: 1fr; }
    .ai-answer header, .ai-composer > div { align-items: stretch; flex-direction: column; }
    .ai-composer .primary { width: 100%; }
}
.public-shell { min-height: 100vh; background: #f7f4ec; }
.public-nav { height: 78px; padding: 0 5vw; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #ded9ce; }
.public-brand { display: flex; align-items: center; gap: 9px; color: var(--ink); text-decoration: none; font-size: 20px; }
.public-brand span { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--lime); font: 700 14px "Space Mono"; }
.public-nav nav { display: flex; gap: 28px; }
.public-nav nav a, .public-login { color: var(--ink); text-decoration: none; font-size: 12px; }
.public-login { padding: 10px 17px; border: 1px solid var(--ink); border-radius: 999px; }
.public-hero { min-height: 700px; padding: 90px 8vw; display: grid; grid-template-columns: 1.3fr .7fr; align-items: center; gap: 8vw; color: white; background: radial-gradient(circle at 80% 25%, #50317c 0, transparent 28%), var(--ink); overflow: hidden; }
.public-hero h1 { margin: 22px 0; font-size: clamp(62px, 9vw, 132px); line-height: .82; letter-spacing: -.075em; }
.public-hero p { max-width: 620px; color: #beb6c9; font-size: 18px; }
.public-actions { display: flex; gap: 18px; align-items: center; margin: 34px 0; }
.public-actions > a:not(.public-primary) { color: white; font-size: 12px; }
.public-primary { display: inline-block; padding: 13px 20px; border: 0; border-radius: 9px; color: var(--ink); background: var(--lime); font-weight: 700; font-size: 12px; text-decoration: none; }
.public-proof { display: flex; gap: 28px; padding-top: 28px; border-top: 1px solid #403650; }
.public-proof span { color: #a79eb4; font-size: 10px; }
.public-proof strong { display: block; color: white; font: 700 15px "Space Mono"; }
.phone-mock { width: min(100%, 360px); min-height: 590px; justify-self: center; padding: 22px; border: 8px solid #443954; border-radius: 40px; color: var(--ink); background: #f7f4ec; transform: rotate(3deg); box-shadow: 0 30px 80px #0008; }
.phone-top { display: flex; justify-content: space-between; margin-bottom: 48px; font: 9px "Space Mono"; }
.phone-mock h2 { margin: 8px 0 24px; font-size: 31px; letter-spacing: -.05em; }
.mock-balance { padding: 18px; border-radius: 14px; color: white; background: var(--violet); }
.mock-balance small, .mock-balance strong { display: block; }
.mock-balance strong { margin-top: 8px; font: 700 25px "Space Mono"; }
.mock-gym { display: flex; align-items: center; gap: 10px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.mock-gym > span { width: 35px; height: 35px; border-radius: 8px; display: grid; place-items: center; color: var(--lime); background: var(--ink); }
.mock-gym div { flex: 1; }
.mock-gym strong, .mock-gym small { display: block; }
.mock-gym small { color: var(--muted); font-size: 9px; }
.mock-gym b { font: 700 12px "Space Mono"; }
.phone-mock button { width: 100%; margin-top: 24px; padding: 13px; border: 0; border-radius: 9px; background: var(--lime); font-weight: 700; }
.public-section { padding: 100px 8vw; }
.public-section > h2, .public-dark h2, .global-band h2 { max-width: 900px; margin: 15px 0 50px; font-size: clamp(42px, 6vw, 78px); line-height: .95; letter-spacing: -.06em; }
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--line); }
.steps article { padding: 28px; background: #f7f4ec; }
.steps b { color: #978aa4; font: 10px "Space Mono"; }
.steps h3 { margin-top: 45px; font-size: 25px; }
.steps p { color: var(--muted); font-size: 13px; }
.public-dark { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; color: white; background: var(--violet); }
.public-dark .eyebrow { color: var(--pink); }
.public-dark p { color: #bdb3c8; }
.public-numbers { display: grid; }
.public-numbers span { padding: 25px 0; border-bottom: 1px solid #4b3567; }
.public-numbers strong, .public-numbers small { display: block; }
.public-numbers strong { font: 700 35px "Space Mono"; }
.public-numbers small { color: #bdb3c8; }
.global-band { text-align: center; }
.global-band h2 { margin-inline: auto; }
.public-footer { padding: 30px 5vw; display: flex; justify-content: space-between; border-top: 1px solid var(--line); font-size: 11px; }
.auth-page { min-height: calc(100vh - 160px); padding: 60px 20px; display: grid; place-items: center; background: radial-gradient(circle at 50% 10%, #3d2861, transparent 35%), var(--ink); }
.auth-card { width: min(100%, 450px); padding: 38px; border-radius: 18px; background: var(--paper); box-shadow: 0 25px 80px #0007; }
.auth-card h1 { margin: 12px 0; font-size: 42px; letter-spacing: -.06em; }
.auth-card > p { color: var(--muted); font-size: 13px; }
.auth-card label { display: grid; gap: 7px; margin: 18px 0; font-size: 11px; font-weight: 700; }
.auth-card input { width: 100%; padding: 13px; border: 1px solid var(--line); border-radius: 9px; background: white; }
.auth-card select { width: 100%; padding: 13px; border: 1px solid var(--line); border-radius: 9px; background: white; }
.auth-card .check { display: flex; align-items: center; grid-template-columns: 20px 1fr; font-weight: 400; }
.auth-card .check input { width: auto; }
.auth-card button { width: 100%; }
.auth-card > small { display: block; margin-top: 18px; color: var(--muted); text-align: center; }
.auth-error { padding: 11px; border-radius: 7px; color: #7e2020; background: #ffe3e3; font-size: 11px; }
.auth-note { padding: 11px; border-radius: 7px; color: #41620b; background: #edffc9; font-size: 11px; }
.auth-secondary { display: block; margin-top: 14px; color: var(--violet); text-align: center; font-size: 11px; }
.register-card { width: min(100%, 620px); }
.form-grid { display: grid; grid-template-columns: 1.4fr .6fr; gap: 12px; }
.password-hint { margin-top: -10px; color: var(--muted); font-size: 9px; }
.terms-check { line-height: 1.45; }
.user-table { overflow-x: auto; }
.user-row { min-width: 760px; display: grid; grid-template-columns: 2fr 1.3fr 1fr .7fr .7fr; gap: 14px; padding: 14px 8px; border-top: 1px solid #ebe7dd; align-items: center; font-size: 11px; }
.user-row strong, .user-row small { display: block; }
.user-row small { color: var(--muted); }
.user-head { color: var(--muted); font: 9px "Space Mono"; border-top: 0; }
.role-card strong { font-size: 12px; }

@media (max-width: 980px) {
    .app-shell { grid-template-columns: 1fr; }
    .rail { position: static; height: auto; padding: 16px 20px; flex-direction: row; align-items: center; overflow-x: auto; }
    .brand { padding: 0 18px 0 0; }
    .rail nav { display: flex; }
    .nav-group { display: flex; align-items: center; }
    .nav-group-label { display: none; }
    .rail nav a { white-space: nowrap; }
    .rail-status { display: none; }
    .workspace { padding: 28px 22px 60px; }
    .hero-grid, .member-grid, .operator-grid, .admin-grid { grid-template-columns: 1fr; }
    .metric-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 620px) {
    .rail nav a span { display: none; }
    .top-actions .ghost { display: none; }
    .workspace { padding-inline: 14px; }
    .hero-card { padding: 24px; }
    .hero-stats { grid-template-columns: 1fr; }
    .section-heading { align-items: start; }
    .wallet-pill { min-width: auto; }
    .venue-row { grid-template-columns: 40px 1fr 70px; }
    .occupancy { display: none; }
    .metric-grid, .endpoint-grid { grid-template-columns: 1fr; }
    .settlement-row { grid-template-columns: 1fr 90px; }
    .settlement-row button { grid-column: 1 / -1; }
    .public-nav nav { display: none; }
    .public-hero, .public-dark { grid-template-columns: 1fr; }
    .phone-mock { margin-top: 30px; }
    .steps { grid-template-columns: 1fr; }
    .public-proof, .public-footer { flex-direction: column; gap: 12px; }
}

.legal-review-workspace { display: grid; gap: 1rem; }
.legal-review-hero { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(290px, .65fr); gap: clamp(1.25rem, 3vw, 2.5rem); align-items: stretch; overflow: hidden; }
.legal-review-hero-copy { display: grid; align-content: center; }
.legal-review-hero h2 { max-width: 18ch; margin: .45rem 0 .7rem; font-size: clamp(1.65rem, 3vw, 2.8rem); line-height: 1.03; letter-spacing: -.035em; }
.legal-review-hero p { max-width: 72ch; margin: 0; color: var(--muted); line-height: 1.7; }
.legal-control-note { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .8rem; align-items: start; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); font-size: .7rem; }
.legal-control-note strong { color: var(--flexa-accent, #ffe500); text-transform: uppercase; }
.legal-control-note span { color: var(--muted); }
.legal-review-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
.legal-review-metrics a { min-width: 0; min-height: 108px; padding: .85rem; display: grid; align-content: space-between; border: 1px solid var(--line); border-radius: 6px; color: inherit; background: color-mix(in srgb, var(--paper, #111) 96%, var(--flexa-accent, #ffe500)); text-decoration: none; }
.legal-review-metrics a:hover, .legal-review-metrics a:focus-visible { border-color: var(--flexa-accent, #ffe500); outline: none; }
.legal-review-metrics span, .legal-review-metrics small { color: var(--muted); font-size: .65rem; }
.legal-review-metrics strong { color: var(--flexa-accent, #ffe500); font-size: 1.6rem; line-height: 1; }
.legal-workflow-nav { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .55rem; }
.legal-workflow-nav a { display: flex; gap: .65rem; align-items: center; min-height: 48px; padding: .7rem .85rem; border: 1px solid var(--line); color: inherit; text-decoration: none; font-size: .72rem; }
.legal-workflow-nav a:hover, .legal-workflow-nav a:focus-visible { border-color: var(--flexa-accent, #ffe500); outline: none; }
.legal-workflow-nav span { color: var(--flexa-accent, #ffe500); font: 700 .64rem/1 var(--flexa-font-mono, monospace); }
.legal-review-workspace :is(#compliance-evidence, #instrument-register, #new-instrument, #acceptance-evidence, #tenant-contracts) { scroll-margin-block-start: 1rem; }
.legal-evidence-layout { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); gap: 1.25rem; align-items: start; }
.legal-evidence-summary { display: grid; gap: .75rem; }
.legal-evidence-summary > strong { font-size: 1.05rem; }
.legal-evidence-summary p { margin: 0; color: var(--muted); font-size: .74rem; line-height: 1.65; }
.legal-evidence-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }
.legal-evidence-metadata { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.legal-evidence-metadata div { min-width: 0; padding: .65rem; border: 1px solid var(--line); }
.legal-evidence-metadata dt { color: var(--muted); font: 700 .62rem/1.4 var(--flexa-font-mono, monospace); text-transform: uppercase; }
.legal-evidence-metadata dd { margin: .3rem 0 0; overflow-wrap: anywhere; font-size: .72rem; }
.legal-evidence-hash { grid-column: 1 / -1; }
.legal-evidence-hash code { font-size: .66rem; word-break: break-all; }
.legal-evidence-boundary { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .75rem; margin-top: 1rem; padding: .75rem; border-left: 2px solid var(--flexa-accent, #ffe500); background: #ffffff06; color: var(--muted); font-size: .68rem; line-height: 1.55; }
.legal-evidence-boundary strong { color: var(--flexa-accent, #ffe500); text-transform: uppercase; }
.legal-review-layout { display: grid; grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr); gap: 1rem; align-items: start; }
.legal-instrument-builder { position: sticky; top: 1rem; }
.legal-instrument-builder > details > summary { min-height: 58px; display: flex; justify-content: space-between; gap: 1rem; align-items: center; cursor: pointer; list-style: none; }
.legal-instrument-builder > details > summary::-webkit-details-marker { display: none; }
.legal-instrument-builder > details > summary span:first-child { display: grid; gap: .25rem; }
.legal-instrument-builder > details > summary small { color: var(--flexa-accent, #ffe500); font-size: .62rem; letter-spacing: .08em; }
.legal-instrument-builder > details > summary strong { font-size: 1rem; }
.legal-summary-action { color: var(--muted); font-size: .66rem; }
.legal-instrument-builder > details[open] .legal-summary-action { color: var(--flexa-accent, #ffe500); }
.legal-builder-guidance { margin: .8rem 0 0; padding: .7rem; border-left: 2px solid var(--flexa-accent, #ffe500); color: var(--muted); font-size: .7rem; line-height: 1.55; }
.legal-review-registers { min-width: 0; display: grid; gap: 1rem; }
.legal-instrument-card { padding: 1rem 0; display: grid; gap: .8rem; border-top: 1px solid var(--line); }
.legal-instrument-card > header { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.legal-instrument-card h4 { margin: .35rem 0 .2rem; }
.legal-instrument-card p { margin: 0; color: var(--muted); font-size: .7rem; }
.legal-instrument-card dl { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.legal-instrument-card dl div { min-width: 0; display: grid; gap: .2rem; font-size: .68rem; }
.legal-instrument-card dt { color: var(--muted); }
.legal-instrument-card dd { margin: 0; overflow-wrap: anywhere; }
.legal-instrument-card details { border: 1px solid var(--line); border-radius: 5px; }
.legal-instrument-card summary { padding: .65rem; color: var(--flexa-accent, #ffe500); cursor: pointer; font-size: .7rem; }
.legal-controlled-content { max-height: 340px; padding: .8rem; overflow: auto; border-top: 1px solid var(--line); white-space: pre-wrap; font-size: .72rem; line-height: 1.65; }
.legal-decision-form { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .55rem; align-items: end; }
.legal-decision-form label { display: grid; gap: .3rem; color: var(--muted); font-size: .68rem; }
.legal-decision-form textarea { min-height: 72px; }
.legal-decision-event { padding: .6rem; display: grid; gap: .2rem; border-left: 2px solid var(--flexa-accent, #ffe500); background: #ffffff06; font-size: .68rem; }
.legal-decision-event small { color: var(--muted); }
.legal-terminal-state, .legal-empty-state { padding: .8rem; display: grid; gap: .25rem; border: 1px dashed var(--line); color: var(--muted); font-size: .7rem; }
.legal-terminal-state strong, .legal-empty-state strong { color: inherit; font-size: .76rem; }
.legal-empty-state { min-height: 108px; place-content: center; text-align: center; }
.legal-acceptance-table td { min-width: 180px; vertical-align: top; }
.legal-acceptance-table :is(strong, span, small) { display: block; overflow-wrap: anywhere; }
.legal-acceptance-table small { margin-top: .25rem; color: var(--muted); }
.tenant-contract-row { padding: .8rem 0; display: grid; grid-template-columns: minmax(200px, 1fr) minmax(160px, .5fr) auto; gap: 1rem; align-items: center; border-top: 1px solid var(--line); }
.tenant-contract-row div { min-width: 0; }
.tenant-contract-row :is(strong, span, small) { display: block; overflow-wrap: anywhere; }
.tenant-contract-row small { margin-top: .25rem; color: var(--muted); }
@media (max-width: 980px) { .legal-review-hero, .legal-review-layout { grid-template-columns: 1fr; } .legal-instrument-builder { position: static; } }
@media (max-width: 620px) {
    .legal-review-hero { padding: 1rem; }
    .legal-review-metrics { width: 100%; grid-template-columns: 1fr 1fr; }
    .legal-review-metrics a { min-height: 94px; }
    .legal-workflow-nav { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
    .legal-workflow-nav a { min-width: 150px; scroll-snap-align: start; }
    .legal-control-note { grid-template-columns: 1fr; }
    .legal-evidence-layout, .legal-evidence-metadata { grid-template-columns: 1fr; }
    .legal-evidence-hash { grid-column: auto; }
    .legal-evidence-actions > * { width: 100%; justify-content: center; text-align: center; }
    .legal-evidence-boundary { grid-template-columns: 1fr; }
    .legal-instrument-card > header { align-items: flex-start; flex-direction: column; }
    .legal-instrument-card dl, .legal-decision-form, .tenant-contract-row { grid-template-columns: 1fr; }
    .legal-decision-form button { width: 100%; min-height: 46px; }
    .legal-acceptance-table { display: block; min-width: 0; }
    .legal-acceptance-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
    .legal-acceptance-table tbody, .legal-acceptance-table tr, .legal-acceptance-table td { display: block; width: 100%; min-width: 0; }
    .legal-acceptance-table tr { margin-bottom: .75rem; padding: .4rem .75rem; border: 1px solid var(--line); }
    .legal-acceptance-table td { display: grid; grid-template-columns: minmax(94px, .38fr) minmax(0, 1fr); gap: .65rem; padding: .55rem 0; border: 0; border-bottom: 1px solid var(--line); }
    .legal-acceptance-table td:last-child { border-bottom: 0; }
    .legal-acceptance-table td::before { content: attr(data-label); color: var(--muted); font: 700 .62rem/1.4 var(--flexa-font-mono, monospace); text-transform: uppercase; }
}

/* Application-wide typography and page-layout normalization */
:root {
    --flexa-font-sans: "Archivo", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
    --flexa-font-mono: "Space Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    --flexa-content-width: 1440px;
    --flexa-reading-width: 72ch;
}

html { font-size: 16px; text-size-adjust: 100%; }
body { font-family: var(--flexa-font-sans); font-size: 1rem; line-height: 1.5; -webkit-font-smoothing: antialiased; }
:where(button, input, select, textarea) { font-family: inherit; }
:where(code, kbd, samp, .eyebrow, .nav-group-label, .status-chip) { font-family: var(--flexa-font-mono); }

.workspace {
    max-width: var(--flexa-content-width);
    padding: clamp(1.25rem, 3vw, 2.75rem) clamp(1rem, 3vw, 2.75rem) 5rem;
}

.workspace > :where(.topbar, .content, .section-block, .section-heading, .panel, .auth-note, .auth-error, .auth-success) {
    width: 100%;
    min-width: 0;
}

.content,
:where(.profile-workspace, .finance-workspace, .onboarding-workspace, .campaign-workspace) {
    display: grid;
    gap: 1.25rem;
}

.topbar { align-items: flex-start; flex-wrap: wrap; }
.topbar > :first-child { min-width: 0; flex: 1 1 28rem; }
.topbar h1,
.section-heading h2 {
    max-width: 22ch;
    overflow-wrap: anywhere;
    line-height: 1.02;
    text-wrap: balance;
}

:where(.panel, .metric-card, .tenant-context-card, .auth-card) { min-width: 0; }
:where(.panel, .auth-card) > :first-child { margin-top: 0; }
:where(.panel, .auth-card) > :last-child { margin-bottom: 0; }
:where(.panel, .auth-card) p { max-width: var(--flexa-reading-width); line-height: 1.65; }

.section-heading { padding-top: clamp(1.25rem, 3vw, 2.5rem); align-items: flex-end; flex-wrap: wrap; }
.section-block { padding-top: clamp(2rem, 6vw, 4.5rem); }

:where(.table-wrap, .user-table) {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-gutter: stable;
}

:where(.table-wrap table) {
    width: 100%;
    min-width: 760px;
    border-collapse: collapse;
    table-layout: auto;
}

:where(.table-wrap th, .table-wrap td) { padding: .85rem 1rem; vertical-align: top; text-align: left; }
:where(.table-wrap th) { white-space: nowrap; }
:where(.table-wrap td) { overflow-wrap: anywhere; }

@media (max-width: 980px) {
    .workspace { width: 100%; margin: 0; }
    .topbar > :first-child { flex-basis: 100%; }
}

@media (max-width: 620px) {
    html { font-size: 15px; }
    .workspace { padding: 1.1rem .85rem 3rem; }
    .topbar { margin-bottom: 1.25rem; }
    .topbar h1 { font-size: clamp(2rem, 10vw, 2.75rem); }
    .panel { padding: 1rem; }
    .section-heading { align-items: flex-start; }
}

/* FLEXa Design Law v1.0 — production alignment */
a { color: var(--lime); }
a:hover { color: #fff; }
button, a, input, select { min-height: 44px; }
.primary, .public-primary { min-height: 56px; text-transform: uppercase; letter-spacing: .06em; font-weight: 900; }
.app-shell { background: var(--ink); }
.rail { color: #fff; background: var(--ink); border-right: 1px solid var(--line); }
.brand-mark, .public-brand span {
    border-radius: 4px;
    color: var(--ink);
    background: var(--lime);
}
.brand small, .rail-status small, .rail nav a, .topbar .eyebrow { color: var(--muted); }
.rail nav a { border-radius: 4px; }
.rail nav a:hover, .rail nav a.active { color: #fff; background: var(--paper); }
.rail-status, .rail-logout { border-color: var(--line); }
.live-dot { box-shadow: none; }
.workspace { color: #fff; background: var(--ink); max-width: 1440px; }
.topbar h1, .section-heading h2, .hero-card h2, .public-hero h1,
.public-section > h2, .public-dark h2, .global-band h2, .auth-card h1 {
    font-weight: 900;
}
.ghost, .ghost-link {
    border: 2px solid var(--line);
    border-radius: 6px;
    color: #fff;
}
.avatar { border-radius: 4px; color: var(--ink); background: var(--lime); }
.toast-message {
    border: 1px solid var(--lime);
    border-radius: 6px;
    color: var(--ink);
    background: var(--lime);
    box-shadow: none;
}
.hero-card, .panel, .metric, .wallet-pill, .endpoint, .auth-card {
    border-radius: 6px;
    box-shadow: none;
}
.hero-card.ink, .access-panel, .metric, .wallet-pill {
    color: #fff;
    background: var(--paper);
}
.hero-card.ink {
    border: 1px solid var(--line);
    background-image: none;
}
.hero-card.ink p, .hero-stats small, .access-panel p, .metric em { color: var(--muted); }
.hero-stats div { border-color: var(--line); }
.hero-card.signal { color: var(--ink); background: var(--lime); }
.signal-row { border-color: rgba(10, 10, 10, .24); }
.panel, .endpoint { color: #fff; background: var(--paper); border-color: var(--line); }
.panel-heading span, .venue-copy small, .price small, .settlement-row small,
.alert-row small, .endpoint small { color: var(--muted); }
.venue-row { color: #fff; border-color: var(--line); }
.venue-row:hover { background: var(--violet-2); }
.venue-row.selected { color: var(--ink); background: var(--lime); }
.venue-row.selected small { color: rgba(10, 10, 10, .7); }
.venue-avatar { border-radius: 4px; color: var(--ink); background: var(--lime); }
.venue-row.selected .venue-avatar { color: #fff; background: var(--ink); }
.occupancy:before { background: var(--violet-2); }
.occupancy i { border-radius: 2px; background: var(--pink); }
.access-panel .eyebrow { color: var(--lime); }
.access-code { border-radius: 6px; border-color: var(--line); color: var(--lime); }
.primary { border-radius: 6px; color: var(--ink); background: var(--lime); }
.text-action { color: #d6d6c6; }
.status-chip {
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--ink);
    background: var(--lime);
}
.status-chip.secure { color: #fff; background: transparent; }
.metric { border: 1px solid var(--line); }
.metric small { color: var(--muted); }
.bars { border-color: var(--line); }
.bars i {
    border-radius: 2px 2px 0 0;
    background: var(--lime);
}
.pricing-card input, .auth-card input, .auth-card select {
    border: 1px solid var(--line);
    border-radius: 4px;
    color: #fff;
    background: var(--ink);
}
.settlement-row, .alert-row, .control-line, .user-row { border-color: var(--line); }
.small-button { border-radius: 4px; color: #fff; border-color: var(--line); background: transparent; }
.small-button:disabled { color: var(--ink); border-color: var(--lime); background: var(--lime); }
.alert-row > span { border-radius: 2px; }
.alert-row .watch { background: var(--pink); }
.alert-row .info { background: var(--blue); }
.good { color: var(--lime); }
.endpoint { border-radius: 6px; }
.endpoint .get, .endpoint .post, .endpoint .put {
    color: var(--ink);
    background: var(--lime);
}
.public-shell { color: #fff; background: var(--ink); }
.public-nav { border-color: var(--line); background: var(--ink); }
.public-brand, .public-nav nav a, .public-login { color: #fff; }
.public-login { border: 2px solid var(--line); border-radius: 6px; }
.public-hero {
    color: #fff;
    background: var(--ink);
    background-image: none;
}
.public-hero p, .public-proof span { color: var(--muted); }
.public-actions > a:not(.public-primary) { color: #fff; }
.public-primary { border-radius: 6px; color: var(--ink); background: var(--lime); }
.public-proof, .public-footer { border-color: var(--line); }
.phone-mock {
    border: 8px solid var(--violet-2);
    border-radius: 34px;
    color: #fff;
    background: var(--paper);
    box-shadow: none;
}
.mock-balance { border: 1px solid var(--line); border-radius: 6px; background: var(--ink); }
.mock-gym { border-color: var(--line); }
.mock-gym > span { border-radius: 4px; color: var(--ink); background: var(--lime); }
.phone-mock button { min-height: 56px; border-radius: 6px; color: var(--ink); background: var(--lime); }
.steps { background: var(--line); }
.steps article { background: var(--ink); }
.steps b, .steps p { color: var(--muted); }
.public-dark { background: var(--paper); }
.public-dark .eyebrow { color: var(--lime); }
.public-dark p, .public-numbers small { color: var(--muted); }
.public-numbers span { border-color: var(--line); }
.auth-page { background: var(--ink); background-image: none; }
.auth-card { color: #fff; border: 1px solid var(--line); background: var(--paper); }
.auth-card > p, .password-hint, .user-row small, .user-head { color: var(--muted); }
.auth-error { border: 1px solid var(--danger); border-radius: 6px; color: #fff; background: var(--danger); }
.auth-note { border: 1px solid var(--lime); border-radius: 6px; color: var(--ink); background: var(--lime); }
.auth-secondary { color: var(--lime); }
#blazor-error-ui { color: var(--ink); background: var(--lime); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Public hero — supplied FLEXa campaign photography */
.public-hero {
    position: relative;
    isolation: isolate;
    min-height: clamp(680px, 84vh, 900px);
    grid-template-columns: minmax(0, 820px);
    align-items: end;
    padding: clamp(80px, 10vw, 140px) 8vw;
    background-color: var(--ink);
    background-image: url("/images/flexa-hero.jpeg");
    background-size: cover;
    background-position: center 42%;
}
.public-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: rgba(10, 10, 10, .66);
}
.public-hero-copy {
    max-width: 820px;
    padding-left: 22px;
    border-left: 4px solid var(--lime);
}
.public-hero h1 {
    max-width: 780px;
    text-wrap: balance;
    text-shadow: 0 2px 18px rgba(0, 0, 0, .55);
}
.public-hero p {
    color: #fff;
    text-shadow: 0 1px 10px rgba(0, 0, 0, .7);
}
.public-hero .phone-mock { display: none; }
.public-hero .public-proof { max-width: 680px; }

@media (max-width: 720px) {
    .public-hero {
        min-height: 720px;
        padding: 90px 22px 58px;
        background-position: 44% center;
    }
    .public-hero-copy { padding-left: 14px; }
    .public-hero h1 { font-size: clamp(54px, 18vw, 82px); }
    .public-actions { align-items: stretch; flex-direction: column; }
    .public-actions a { text-align: center; }
}

/* FLEXa UI/UX package Rev 1.0 — exact public campaign surface */
.public-nav {
    position: absolute;
    inset: 0 0 auto;
    z-index: 20;
    height: auto;
    min-height: 86px;
    padding: calc(24px + env(safe-area-inset-top)) max(56px, env(safe-area-inset-right)) 24px max(56px, env(safe-area-inset-left));
    border: 0;
    background: linear-gradient(#0a0a0ad9, transparent);
}
.public-brand strong { font-size: 27px; font-weight: 900; letter-spacing: -.03em; }
.public-brand-logo { display: block; width: clamp(118px, 9vw, 148px); height: auto; }
.brand-lower {
    display: inline !important;
    width: auto !important;
    height: auto !important;
    color: inherit !important;
    background: none !important;
    font: inherit !important;
    font-size: .68em !important;
    text-transform: lowercase !important;
    letter-spacing: inherit;
}
.brand-dot, .campaign-hero h1 span,
.campaign-section h2 span, .operator-campaign h2 span { color: var(--flexa-accent); }
.public-brand span { width: auto; height: auto; display: inline; background: none; color: var(--flexa-accent); }
.public-nav nav a { font: 700 10.5px var(--flexa-font-mono); letter-spacing: .16em; text-transform: uppercase; color: #ffffffb8; }
.public-nav-actions { display: flex; align-items: center; gap: 10px; }
.public-list, .public-login {
    min-height: 44px; padding: 12px 16px; border-radius: var(--flexa-radius-control);
    font: 700 10.5px var(--flexa-font-mono); letter-spacing: .12em; text-transform: uppercase; text-decoration: none;
}
.public-list { border: 1px solid #ffffff3d; color: #fff; }
.public-login { width: 44px; min-width: 44px; height: 44px; padding: 0; justify-content: center; gap: 0; border: 0; color: var(--flexa-on-accent); background: var(--flexa-accent); }

.campaign-hero {
    position: relative; min-height: max(860px, 100svh); display: flex; flex-direction: column; justify-content: flex-end;
    overflow: hidden; isolation: isolate; padding: calc(clamp(112px, 12vh, 140px) + env(safe-area-inset-top)) max(56px, env(safe-area-inset-right)) 0 max(56px, env(safe-area-inset-left));
    background: url("/images/hero-training.jpg") 42% 40% / cover no-repeat;
}
.campaign-hero-media { position: absolute; inset: 0; z-index: -2; overflow: hidden; background: #0a0a0a; }
.campaign-hero-asset { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; }
.campaign-hero-asset:first-child { opacity: 1; }
.campaign-hero-media:has(.campaign-hero-asset:nth-child(2)) .campaign-hero-asset {
    animation: flexa-hero-rotate calc(var(--hero-count) * var(--hero-step)) infinite;
    animation-delay: var(--hero-delay);
}
@media (prefers-reduced-motion: reduce) {
    .campaign-hero-media .campaign-hero-asset { animation: none !important; opacity: 0; }
    .campaign-hero-media .campaign-hero-asset:first-child { opacity: 1; }
}
.campaign-hero::before, .campaign-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; }
.campaign-hero::before { background: linear-gradient(180deg, #0a0a0adb 0%, #0a0a0a6b 34%, #0a0a0a94 62%, #0a0a0a 100%); }
.campaign-hero::after { background: linear-gradient(96deg, #0a0a0aeb 0%, #0a0a0a8c 44%, transparent 72%); }
.campaign-hero-copy { max-width: 720px; display: grid; gap: clamp(18px, 2.4vh, 26px); margin: 0 0 auto; }
.live-pill {
    justify-self: start; display: flex; align-items: center; gap: 10px; padding: 9px 14px;
    border: 1px solid #ffe50073; border-radius: var(--flexa-radius-pill); background: #0a0a0a80;
    color: var(--flexa-accent); font: 700 10px var(--flexa-font-mono); letter-spacing: .18em;
}
.live-pill span { width: 7px; height: 7px; border-radius: 50%; background: var(--flexa-accent); animation: flexa-live-pulse 1.5s infinite; }
.campaign-hero h1 {
    margin: 0; font-size: clamp(72px, 8vw, 104px); font-weight: 900; letter-spacing: -.052em;
    line-height: .86; text-wrap: balance;
}
.campaign-hero p { max-width: 560px; margin: 0; color: #ffffffd1; font-size: 20px; line-height: 1.5; }
.campaign-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.campaign-actions .public-primary, .campaign-secondary { min-height: 62px; padding: 20px 28px; display: grid; place-items: center; }
.campaign-secondary {
    border: 2px solid #ffffff52; border-radius: var(--flexa-radius-card); color: #fff;
    font-size: 15px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; text-decoration: none;
}
.campaign-actions small { color: #ffffff99; font: 10.5px/1.7 var(--flexa-font-mono); letter-spacing: .1em; }
.campaign-stats { display: grid; grid-template-columns: repeat(4, 1fr); margin: clamp(24px, 4vh, 40px) -56px 0; border-top: 1px solid #ffffff24; background: #0a0a0a9e; }
.campaign-stats div { padding: 24px 28px; border-right: 1px solid #ffffff1f; display: grid; gap: 5px; }
.campaign-stats strong { font-size: 34px; font-weight: 900; letter-spacing: -.035em; }
.campaign-stats div:first-child strong, .campaign-stats div:last-child strong { color: var(--flexa-accent); }
.campaign-stats small { color: #ffffff99; font: 9.5px var(--flexa-font-mono); letter-spacing: .16em; }

.campaign-marquee { overflow: hidden; padding: 13px 0; background: var(--flexa-accent); color: var(--flexa-on-accent); }
.campaign-marquee div { width: max-content; font: 700 11px var(--flexa-font-mono); letter-spacing: .18em; animation: flexa-marquee 24s linear infinite; }
.campaign-marquee i { width: 5px; height: 5px; margin: 0 22px; display: inline-block; border-radius: 50%; background: #0a0a0a66; vertical-align: middle; }
@keyframes flexa-marquee { to { transform: translateX(-25%); } }

.campaign-section { padding: 84px 56px; background: var(--flexa-page); }
.campaign-intro { display: grid; grid-template-columns: 1fr minmax(280px, 560px); gap: 48px; align-items: end; margin-bottom: 44px; }
.campaign-intro h2, .section-rule h2 { margin: 14px 0 0; font-size: clamp(40px, 5vw, 52px); font-weight: 900; letter-spacing: -.038em; line-height: .96; }
.campaign-intro > p { margin: 0; color: var(--flexa-muted); font-size: 16.5px; line-height: 1.55; }
.moment-grid { display: grid; grid-template-columns: repeat(4, minmax(250px, 1fr)); gap: 16px; }
.moment-card { min-width: 0; padding: 22px; display: flex; flex-direction: column; gap: 16px; border: 1px solid var(--flexa-line); border-radius: 7px; background: var(--flexa-surface); }
.moment-kicker { color: var(--flexa-accent); font: 700 9.5px var(--flexa-font-mono); letter-spacing: .18em; }
.moment-card h4 { margin: 4px 0 0; font-size: 21px; font-weight: 900; letter-spacing: -.025em; }
.moment-card p { margin: 0; color: #b9b9a8; font-size: 13.5px; line-height: 1.55; }
.moment-visual.photo { position: relative; min-height: 230px; margin: 0 -22px; padding: 22px; display: flex; flex-direction: column; justify-content: end; overflow: hidden; background: url("/images/hero-training-sm.jpg") 46% 36% / cover; }
.moment-visual.photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 20%, #17170f 100%); }
.moment-visual > * { position: relative; z-index: 1; }
.moment-visual h3 { margin: 10px 0 0; font-size: 40px; font-weight: 900; line-height: .9; }
.gps { color: #ffffffbf; font: 8px var(--flexa-font-mono); letter-spacing: .12em; }
.balance-badge { position: absolute; z-index: 2; top: 18px; right: 18px; padding: 8px 11px; border-radius: var(--flexa-radius-pill); color: #0a0a0a; background: var(--flexa-accent); font: 9px var(--flexa-font-mono); }
.gym-preview { display: grid; grid-template-columns: 38px 1fr auto; gap: 10px; align-items: center; padding: 10px; border: 1px solid var(--flexa-line); border-radius: var(--flexa-radius-card); }
.gym-preview b { width: 38px; height: 38px; display: grid; place-items: center; color: #0a0a0a; background: var(--flexa-accent); }
.gym-preview span, .gym-preview small { display: block; }
.gym-preview strong { font-size: 12px; }.gym-preview small { color: var(--flexa-muted); font: 7.5px var(--flexa-font-mono); }.gym-preview em { font-style: normal; font-weight: 900; }
.wallet-hero { padding: 22px; display: grid; gap: 5px; color: var(--flexa-on-accent); background: var(--flexa-accent); border-radius: var(--flexa-radius-card); }
.wallet-hero small, .wallet-hero span { font: 8.5px var(--flexa-font-mono); letter-spacing: .16em; }.wallet-hero strong { font-size: 48px; line-height: 1; }
.topup-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }.topup-grid div { padding: 14px; border: 2px solid var(--flexa-line); font-size: 20px; font-weight: 900; }.topup-grid small { display: block; color: var(--flexa-muted); font: 7.5px var(--flexa-font-mono); }.topup-grid .selected { border-color: var(--flexa-accent); }
.moment-action { min-height: 56px; display: grid; place-items: center; color: #0a0a0a; background: var(--flexa-accent); font-weight: 900; text-transform: uppercase; text-decoration: none; }
.access-ring { position: relative; width: 200px; height: 200px; align-self: center; display: grid; place-items: center; }.access-ring > svg:first-child { position: absolute; inset: 0; transform: rotate(-90deg); }.access-ring circle { fill: none; stroke: var(--flexa-line); stroke-width: 5; }.access-ring .deplete { stroke: var(--flexa-accent); stroke-dasharray: 578; animation: flexa-code-deplete 30s linear infinite; }.moment-icon { width: 82px; height: 82px; fill: none; stroke: var(--flexa-accent); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.countdown { text-align: center; font-size: 28px; }.guard-row { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; }.guard-row span { padding: 7px 9px; border: 1px solid var(--flexa-line); border-radius: var(--flexa-radius-pill); color: var(--flexa-muted); font: 7px var(--flexa-font-mono); }
.door-result { min-height: 440px; margin: 0 -22px; padding: 28px 22px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; color: #0a0a0a; background: var(--flexa-accent); }.door-result > svg { width: 48px; height: 48px; fill: none; stroke: currentColor; stroke-width: 2; }.door-result > strong { font-size: 58px; font-weight: 900; line-height: .84; text-align: center; }.door-result > small { font: 8.5px var(--flexa-font-mono); letter-spacing: .12em; }.door-result dl { width: 100%; margin: 0; }.door-result dl div { padding: 9px 0; display: flex; justify-content: space-between; border-top: 2px solid #0003; font: 8.5px var(--flexa-font-mono); }.door-result dd { margin: 0; }
.section-rule { display: flex; align-items: center; gap: 16px; }.section-rule h2 { white-space: nowrap; }.section-rule span { flex: 1; height: 2px; background: var(--flexa-line); }.section-rule small { color: var(--flexa-muted); font: 9px var(--flexa-font-mono); letter-spacing: .14em; }
.proof-grid { margin-top: 28px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }.proof-grid article { padding: 24px; display: grid; gap: 11px; border: 1px solid var(--flexa-line); border-radius: 7px; background: var(--flexa-surface); }.proof-grid b { color: var(--flexa-accent); font: 9.5px var(--flexa-font-mono); }.proof-grid h3 { margin: 0; font-size: 21px; font-weight: 900; }.proof-grid p { margin: 0; color: #b9b9a8; font-size: 14px; line-height: 1.6; }.proof-grid small { padding-top: 10px; border-top: 1px solid var(--flexa-line-soft); color: var(--flexa-muted); font: 8px/1.7 var(--flexa-font-mono); letter-spacing: .08em; }
.operator-campaign { position: relative; min-height: 560px; padding: 80px 56px; display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: end; isolation: isolate; overflow: hidden; background: url("/images/hero-training-grey.jpg") 70% 60% / cover; }.operator-campaign::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #0a0a0a 0%, #0a0a0ae6 46%, #0a0a0a9e 100%); }.operator-campaign > div:first-child { max-width: 620px; display: grid; gap: 18px; }.operator-campaign h2 { margin: 0; font-size: clamp(46px, 5vw, 62px); font-weight: 900; line-height: .94; letter-spacing: -.042em; }.operator-campaign p { margin: 0; color: #ffffffd1; font-size: 17px; line-height: 1.55; }.operator-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }.operator-stats div { padding: 20px; display: grid; gap: 5px; border: 1px solid #ffe5003d; border-radius: 6px; background: #17170fdb; }.operator-stats strong { color: var(--flexa-accent); font-size: 32px; }.operator-stats small { color: var(--flexa-muted); font: 8px var(--flexa-font-mono); letter-spacing: .14em; }
.public-footer { padding: 46px 56px 60px; align-items: flex-start; background: var(--flexa-page); }.public-footer > div:first-child { display: grid; gap: 9px; }.public-footer strong { font-size: 25px; }.public-footer small, .public-attribution { color: var(--flexa-muted); font: 9px/1.8 var(--flexa-font-mono); letter-spacing: .1em; text-transform: uppercase; }

.install-page { align-items: flex-start; padding: clamp(1rem, 4vw, 3rem); }
.install-page .install-card { width: min(100%, 980px); max-width: 980px; gap: 1.5rem; padding: clamp(1.25rem, 4vw, 3rem); }
.install-hero { display: grid; gap: .8rem; }
.install-hero h1 { max-width: 11ch; margin: 0; font-size: clamp(2.6rem, 8vw, 5.5rem); line-height: .88; text-wrap: balance; }
.install-hero > p { max-width: 690px; margin: 0; color: var(--muted); }
.install-release-line { display: flex; flex-wrap: wrap; gap: .5rem; }
.install-release-line span { padding: .4rem .55rem; border: 1px solid #ffffff25; color: #d9d9ca; font: 800 .64rem/1 'Courier New',monospace; letter-spacing: .08em; }
.install-release-line .install-staged { border-color: #f0b35c66; color: #f0b35c; }
.install-release-line .install-verified { border-color: #79d89966; color: #79d899; }
.install-release-notice { max-width: 720px; padding: .8rem 1rem; border-left: 3px solid #f0b35c; background: #f0b35c0c; color: var(--muted); font-size: .85rem; line-height: 1.5; }
.install-release-notice strong { color: #f0b35c; }
.install-platform-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.install-platform { display: grid; align-content: start; gap: 1rem; min-width: 0; padding: clamp(1rem,3vw,1.5rem); border: 1px solid #ffffff24; border-radius: 8px; background: linear-gradient(145deg,#15160f,#0b0c09); }
.install-platform.android { border-color: #ffe50055; }
.install-platform-icon { display: grid; width: 4rem; height: 4rem; place-items: center; border-radius: 12px; background: #ffe500; color: #0a0a0a; }
.install-platform.ios .install-platform-icon { background: #f2f2ed; }
.install-platform-icon svg { width: 2.25rem; height: 2.25rem; fill: currentColor; }
.install-platform h2 { margin: .35rem 0 .25rem; font-size: clamp(1.7rem,4vw,2.5rem); }
.install-platform p { margin: 0; color: var(--muted); }
.install-status { display: inline-flex; width: fit-content; padding: .35rem .5rem; color: #0a0a0a; font: 900 .62rem/1 'Courier New',monospace; letter-spacing: .08em; }
.install-status.available { background: #79d899; }
.install-status.web { background: #f2f2ed; }
.install-status.pending { background: #f0b35c; }
.install-feature-list,.ios-install-steps { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.install-feature-list li { padding-left: 1.35rem; position: relative; color: #deded2; }
.install-feature-list li::before { position: absolute; left: 0; color: #ffe500; content: '✓'; font-weight: 900; }
.ios-install-steps li { display: flex; gap: .65rem; align-items: center; color: #deded2; }
.ios-install-steps span { display: grid; flex: 0 0 1.65rem; height: 1.65rem; place-items: center; border: 1px solid #ffffff45; border-radius: 50%; font-size: .7rem; font-weight: 900; }
.install-download { display: grid !important; gap: .18rem; text-align: center; }
.install-download small { color: inherit; opacity: .72; font-size: .65rem; }
.install-platform details { border-top: 1px solid #ffffff20; padding-top: .8rem; }
.install-platform summary { cursor: pointer; color: #ffe500; font-weight: 800; }
.install-platform details p { margin-top: .6rem; font-size: .8rem; }
.install-platform code { display: block; max-width: 100%; margin-top: .65rem; padding: .65rem; overflow-wrap: anywhere; border: 1px solid #ffffff1c; background: #050604; color: #d9d9ca; font-size: .68rem; }
.install-unavailable { display: grid; gap: .35rem; padding: .85rem; border: 1px solid #f0b35c55; background: #f0b35c0c; }
.install-unavailable strong { color: #f0b35c; }
.install-unavailable span { color: var(--muted); font-size: .82rem; line-height: 1.5; }
.install-web-app { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(260px,.8fr); gap: 1rem 2rem; align-items: center; padding: clamp(1rem,3vw,1.5rem); border: 1px solid #ffffff24; border-radius: 8px; background: #0b0c09; }
.install-web-app > div { display: grid; gap: .65rem; }
.install-web-app h2 { margin: 0; font-size: clamp(1.45rem,3vw,2.2rem); line-height: 1; text-wrap: balance; }
.install-web-app p { margin: 0; color: var(--muted); line-height: 1.55; }
.install-web-actions { justify-items: start; }
.install-web-actions small { color: var(--muted); line-height: 1.45; }
.install-security { display: flex; gap: .85rem; align-items: flex-start; padding: 1rem; border-left: 3px solid #79d899; background: #79d8990c; }
.install-security > span { display: grid; flex: 0 0 2rem; height: 2rem; place-items: center; border-radius: 50%; background: #79d899; color: #07110a; font-weight: 950; }
.install-security > span .flexa-icon { width: 1.15rem; height: 1.15rem; }
.install-security p { margin: .25rem 0 0; color: var(--muted); }
.install-footer { display: flex; flex-wrap: wrap; gap: .75rem 1.25rem; }
.install-gym-tablet { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(300px,.8fr); gap: clamp(1.25rem,4vw,3rem); padding: clamp(1.25rem,4vw,2.5rem); border: 1px solid #ffe50066; border-radius: 8px; background: radial-gradient(circle at 90% 5%,#ffe5001f,transparent 34%),#10100c; }
.install-gym-tablet-copy { display: grid; align-content: start; gap: 1rem; }
.install-gym-tablet h2 { max-width: 15ch; margin: 0; font-size: clamp(2rem,5vw,3.8rem); line-height: .94; text-wrap: balance; }
.install-gym-tablet p { max-width: 65ch; margin: 0; color: var(--muted); line-height: 1.65; }
.install-gym-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.install-gym-devices { display: grid; gap: .8rem; }
.install-gym-devices article { padding: 1rem; border: 1px solid #ffffff24; border-radius: 7px; background: #0a0a0acc; }
.install-gym-devices article > strong { display: block; margin-bottom: .8rem; color: #ffe500; font: 900 .72rem/1 'Courier New',monospace; letter-spacing: .12em; }
.install-gym-devices small { color: var(--muted); line-height: 1.5; }
.scanner-capability { display: block; margin-top: 8px; color: #ffe500; font-weight: 800; letter-spacing: .08em; }
.scanner-audit { margin-top: 18px; }
.scanner-audit-list { display: grid; gap: 8px; }
.scanner-audit-list article { display: grid; grid-template-columns: 90px minmax(0,1fr) minmax(160px,auto) auto; gap: 12px; align-items: center; padding: 12px; border: 1px solid #ffffff1f; border-radius: 6px; }
.scanner-audit-list article > strong { color: #ffe500; }
.scanner-audit-list code { overflow-wrap: anywhere; }
.scanner-audit-list time { color: #aaa; font-size: .75rem; }
@media (max-width: 720px) {
    .install-page { padding: .75rem; }
    .install-page .install-card { padding: 1.1rem; }
    .install-platform-grid { grid-template-columns: 1fr; }
    .install-platform .public-primary { width: 100%; }
    .install-web-app { grid-template-columns: 1fr; }
    .install-web-actions { justify-items: stretch; }
    .install-web-actions .public-primary { width: 100%; }
    .install-gym-tablet { grid-template-columns: 1fr; }
    .install-gym-actions { align-items: stretch; flex-direction: column; }
    .install-gym-actions > * { width: 100%; text-align: center; }
    .scanner-audit-list article { grid-template-columns: 1fr; }
    .scanner-audit-list time { grid-row: 1; justify-self: end; }
}

@media (max-width: 1100px) {
    .moment-grid, .proof-grid { grid-template-columns: repeat(2, 1fr); }
    .public-nav nav { display: none; }
}
@media (max-width: 720px) {
    .public-nav { padding: calc(18px + env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) 18px max(22px, env(safe-area-inset-left)); }.public-list { display: none; }
    .campaign-hero { min-height: max(760px, 100svh); padding: calc(112px + env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) 0 max(22px, env(safe-area-inset-left)); background-position: 44% center; }
    .campaign-hero h1 { max-width: 100%; font-size: clamp(48px, 16vw, 68px); overflow-wrap: normal; }.campaign-hero p { font-size: 16px; }
    .campaign-actions { align-items: stretch; flex-direction: column; }.campaign-actions > :is(a, small) { width: 100%; }.campaign-actions small { text-align: center; }
    .campaign-stats { grid-template-columns: 1fr 1fr; margin-inline: -22px; }.campaign-stats div { min-width: 0; padding: 18px 22px; }.campaign-stats strong { font-size: 26px; }.campaign-stats small { overflow-wrap: anywhere; }
    .campaign-section { padding: 64px max(22px, env(safe-area-inset-right)) 64px max(22px, env(safe-area-inset-left)); }.campaign-intro, .moment-grid, .proof-grid, .operator-campaign { grid-template-columns: 1fr; }
    .campaign-intro { gap: 20px; }.section-rule { align-items: flex-start; flex-direction: column; }.section-rule span { width: 100%; flex: none; }
    .operator-campaign { padding: 72px 22px; }.operator-stats { grid-template-columns: 1fr; }
    .public-footer { padding: 36px max(22px, env(safe-area-inset-right)) calc(36px + env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left)); }
}

.campaign-topbar p { margin: .35rem 0 0; color: var(--muted); max-width: 62ch; }
.campaign-workspace { display: grid; gap: 1.25rem; }
.tenant-context-card { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.35rem 1.5rem; border-radius: 18px; color: #fff; background: linear-gradient(120deg, #111 0%, #242424 70%, #333 100%); }
.tenant-context-card h2 { margin: .25rem 0 0; font-size: 1.65rem; }
.tenant-context-card select { min-width: 280px; margin-top: .4rem; border-color: #666; background: #1f1f1f; color: #fff; }
.campaign-kpis { display: flex; gap: 2rem; }
.campaign-kpis div { min-width: 110px; }
.campaign-kpis small { display: block; color: #aaa; font-size: .68rem; letter-spacing: .1em; }
.campaign-kpis strong { display: block; margin-top: .2rem; font-size: 1.25rem; }
.campaign-grid { display: grid; grid-template-columns: minmax(340px, .9fr) minmax(420px, 1.1fr); gap: 1.25rem; align-items: start; }
.campaign-builder form { display: grid; gap: 1rem; }
.campaign-builder label { display: grid; gap: .4rem; font-weight: 700; }
.campaign-builder input, .campaign-builder select, .campaign-builder textarea { width: 100%; }
.campaign-builder textarea { min-height: 110px; resize: vertical; }
.form-intro { color: var(--muted); margin-top: 0; }
.campaign-form-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid var(--line); padding-top: 1rem; }
.campaign-form-footer small { max-width: 48ch; color: var(--muted); }
.campaign-empty { padding: 2.5rem 1.25rem; text-align: center; border: 1px dashed var(--line); border-radius: 14px; color: var(--muted); }
.campaign-empty strong { display: block; color: var(--ink); font-size: 1.05rem; }
.campaign-empty span { display: inline-block; margin-top: .6rem; font-size: .75rem; letter-spacing: .06em; }
.campaign-register { display: grid; gap: 1rem; }
.campaign-media-workspace { display: grid; gap: 1.1rem; overflow: hidden; }
.campaign-upload-panel { padding: 1rem; display: grid; grid-template-columns:minmax(220px,1fr) minmax(190px,.8fr) minmax(220px,1fr) auto; align-items:end; gap:.85rem; border:1px solid var(--line); border-radius:14px; background:var(--surface); }
.campaign-upload-panel>div { display:grid; gap:.25rem; }
.campaign-upload-panel>div small { color:var(--muted); }
.campaign-upload-panel label { display:grid; gap:.4rem; font-size:.72rem; font-weight:700; }
.campaign-upload-panel input[type="file"] { max-width:100%; }
.campaign-card-media { width:100%; margin:0 0 1rem; padding:0; overflow:hidden; display:block; border:0; border-radius:10px; background:#090909; }
.campaign-card-media img { width:100%; max-height:260px; aspect-ratio:16/7; display:block; object-fit:cover; }
.campaign-media-categories { display: flex; gap: .55rem; overflow-x: auto; padding-bottom: .25rem; scrollbar-width: thin; }
.campaign-media-categories button { min-height: 42px; padding: .65rem .85rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); color: var(--ink); white-space: nowrap; font: 700 .72rem var(--flexa-font-mono); letter-spacing: .05em; }
.campaign-media-categories button.active { border-color: var(--flexa-accent); background: var(--flexa-accent); color: var(--flexa-on-accent); }
.campaign-media-categories span { margin-left: .3rem; opacity: .65; }
.campaign-thumbnail-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .85rem; }
.campaign-thumbnail-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); transition: border-color .2s, transform .2s; }
.campaign-thumbnail-card.selected { border-color: var(--flexa-accent); box-shadow: 0 0 0 1px var(--flexa-accent); }
.campaign-thumbnail-card:hover { transform: translateY(-2px); }
.campaign-thumbnail-preview { position: relative; width: 100%; padding: 0; display: block; border: 0; border-radius: 0; background: #090909; overflow: hidden; }
.campaign-thumbnail-preview img { width: 100%; aspect-ratio: 16 / 10; display: block; object-fit: cover; }
.media-type-badge { position: absolute; right: .55rem; bottom: .55rem; padding: .3rem .45rem; border-radius: 5px; background: #080808d9; color: #fff; font: 700 .58rem var(--flexa-font-mono); letter-spacing: .1em; }
.campaign-thumbnail-meta { padding: .8rem; display: grid; gap: .7rem; }
.campaign-thumbnail-meta > div { min-width: 0; display: grid; gap: .2rem; }
.campaign-thumbnail-meta strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.campaign-thumbnail-meta small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; font: .62rem var(--flexa-font-mono); }
.campaign-thumbnail-meta .toggle-row { margin: 0; }
.mobile-push-console { margin-top: .4rem; padding: 1rem; display: grid; gap: 1rem; border: 1px solid color-mix(in srgb, var(--flexa-accent) 45%, var(--line)); border-radius: 14px; background: color-mix(in srgb, var(--surface) 94%, var(--flexa-accent)); }
.mobile-push-console .span-all { grid-column: 1 / -1; }
.campaign-placement-strip { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(240px, 300px); gap: .75rem; overflow-x: auto; padding: .25rem 0 .65rem; scroll-snap-type: x proximity; scrollbar-width: thin; }
.campaign-placement-card { padding: .7rem; display: grid; gap: .65rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); scroll-snap-align: start; }
.campaign-placement-card.paused { opacity: .68; }
.campaign-placement-card > button:first-child { width: 100%; padding: 0; border: 0; overflow: hidden; border-radius: 8px; background: #090909; }
.campaign-placement-card img { width: 100%; aspect-ratio: 16 / 8; display: block; object-fit: cover; }
.campaign-placement-card > div { display: grid; gap: .25rem; }
.campaign-placement-card strong { line-height: 1.2; }
.mobile-push-publish { display: flex; align-items: end; justify-content: flex-end; gap: 1rem; flex-wrap: wrap; padding-top: .9rem; border-top: 1px solid var(--line); }
.mobile-push-publish > label:not(.toggle-row) { display: grid; gap: .35rem; font-size: .72rem; font-weight: 700; }
.mobile-push-publish input[type="number"] { width: 90px; }
.mobile-push-publish .primary { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; }
.mobile-publication-status { min-height: 44px; padding: .75rem .9rem; border: 1px solid color-mix(in srgb, var(--flexa-accent) 55%, var(--line)); border-radius: 10px; background: color-mix(in srgb, var(--surface) 92%, var(--flexa-accent)); color: var(--ink); font-size: .78rem; font-weight: 700; }
.mobile-publication-status.error { border-color: #c84a4a; background: #fff0f0; color: #7e2020; }
.billboard-admin { min-width: 0; }
.billboard-admin .panel { min-width: 0; overflow: hidden; }
.billboard-admin .campaign-placement-strip {
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
    overflow: visible;
    align-items: stretch;
}
.billboard-admin .campaign-placement-card { min-width: 0; grid-template-rows: auto auto 1fr auto; }
.billboard-admin .campaign-placement-card > div { min-width: 0; overflow-wrap: anywhere; }
.billboard-admin .campaign-placement-card > .text-action { align-self: end; text-align: left; }
.mobile-experience-thumbnail-card { cursor: pointer; grid-template-rows: auto 1fr auto; }
.mobile-experience-thumbnail-card :is(img, video) { width: 100%; aspect-ratio: 16 / 8; display: block; object-fit: cover; border-radius: 8px; background: #090909; }
.mobile-experience-thumbnail-card > .toggle-row { align-self: end; margin: 0; }
.marketing-admin { min-width: 0; }
.marketing-admin > .panel { width: 100%; min-width: 0; }
.marketing-admin .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 1rem; }
.marketing-admin .form-grid > * { min-width: 0; }
.marketing-admin .form-grid > label { display: grid; align-content: start; gap: .45rem; margin: 0; }
.marketing-admin .form-grid :is(input:not([type="checkbox"]), select, textarea) { box-sizing: border-box; width: 100%; min-width: 0; min-height: 50px; }
.marketing-admin .form-grid textarea { min-height: 112px; resize: vertical; }
.marketing-admin .span-all { grid-column: 1 / -1; }
.marketing-admin > .panel > .primary,
.marketing-admin .mobile-push-publish .primary,
.marketing-admin .campaign-upload-panel > button { min-height: 50px; padding-inline: 1.25rem; }
.marketing-admin > .panel > .primary { width: 100%; margin-top: 1rem; }
.marketing-admin .campaign-upload-panel { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; }
.marketing-admin .campaign-upload-panel > div { grid-column: 1 / -1; }
.marketing-admin .campaign-upload-panel > button { width: 100%; }
.marketing-publish-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.marketing-publish-bar > div { display: grid; gap: .25rem; min-width: 0; }
.marketing-publish-bar small { color: var(--muted); }
.marketing-publish-bar .primary { min-width: 220px; }

@media (max-width: 700px) {
    .marketing-admin .form-grid { grid-template-columns: minmax(0, 1fr); }
    .marketing-admin .span-all { grid-column: auto; }
    .marketing-admin .mobile-push-publish { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
    .marketing-admin .mobile-push-publish > * { width: 100%; }
    .marketing-admin .mobile-push-publish input[type="number"] { width: 100%; }
    .marketing-admin .campaign-upload-panel,
    .marketing-publish-bar { grid-template-columns: minmax(0, 1fr); }
    .marketing-publish-bar .primary { width: 100%; min-width: 0; }
    .billboard-admin .panel { padding: 1rem; }
    .billboard-admin .campaign-placement-strip { grid-template-columns: minmax(0, 1fr); }
    .billboard-admin .campaign-placement-card { width: 100%; }
    .billboard-admin .campaign-placement-card img { aspect-ratio: 16 / 9; }
    .billboard-admin .campaign-placement-card .toggle-row,
    .billboard-admin .campaign-placement-card > .text-action { width: 100%; }
}
.campaign-media-modal { position: fixed; inset: 0; z-index: 1000; padding: clamp(12px, 3vw, 36px); display: grid; place-items: center; background: #000c; backdrop-filter: blur(8px); }
.campaign-media-modal-card { width: min(1100px, 100%); max-height: calc(100dvh - 24px); overflow: hidden; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; border: 1px solid #ffffff2b; border-radius: 16px; background: #10100e; color: #fff; box-shadow: 0 30px 90px #000b; }
.campaign-media-modal-card header { padding: 1rem 1.15rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid #ffffff1f; }
.campaign-media-modal-card h2 { margin: .2rem 0 0; font-size: clamp(1.2rem, 3vw, 2rem); }
.campaign-media-modal-card header button { width: 44px; height: 44px; border: 1px solid #ffffff38; border-radius: 50%; background: transparent; color: #fff; font-size: 1.8rem; }
.campaign-media-modal-card header button .flexa-icon { width: 1.25rem; height: 1.25rem; margin: auto; }
.campaign-media-fullview { min-height: 0; overflow: auto; display: grid; place-items: start center; background: #050505; scrollbar-width: thin; }
.campaign-media-fullview :is(img, video) { width: auto; max-width: 100%; min-width: min(100%, 420px); height: auto; max-height: none; display: block; object-fit: contain; }
.campaign-media-modal-card footer { padding: .75rem 1.15rem; display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid #ffffff1f; color: #ffffffa6; }
.campaign-card { padding: 1.1rem; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.campaign-card-head { display: flex; justify-content: space-between; gap: 1rem; }
.campaign-card h4 { margin: .55rem 0 .25rem; font-size: 1.1rem; }
.campaign-card p { color: var(--muted); }
.campaign-card dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0; }
.campaign-card dl div:last-child { grid-column: 1 / -1; }
.campaign-card dt { color: var(--muted); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.campaign-card dd { margin: .2rem 0 0; font-weight: 650; }
.campaign-card .campaign-actions { display: flex; gap: .65rem; align-items: center; border-top: 1px solid var(--line); padding-top: .8rem; }
.billboard-activation-card { overflow: hidden; transition: opacity .2s ease, border-color .2s ease; }
.billboard-activation-card.paused { opacity: .62; border-style: dashed; }
.billboard-activation-card > :is(img, video) { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.billboard-activation-state { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.billboard-activation-state .toggle-row { margin: 0; }
.status-chip.draft { background: #eee; color: #333; }
.status-chip.scheduled { background: #fff1c2; color: #6b5100; }
.status-chip.active { background: #dff8ea; color: #086b39; }
.status-chip.completed { background: #e5edff; color: #174ea6; }
.status-chip.cancelled { background: #f6e6e6; color: #8c1c1c; }
.validation-errors, .validation-message { color: #a52323; font-size: .78rem; }

@media (max-width: 980px) {
    .campaign-grid { grid-template-columns: 1fr; }
    .tenant-context-card { align-items: flex-start; flex-direction: column; }
    .campaign-kpis { width: 100%; flex-wrap: wrap; gap: 1rem; }
}

@media (max-width: 620px) {
    .campaign-kpis { display: grid; grid-template-columns: repeat(2, 1fr); }
    .campaign-card dl { grid-template-columns: 1fr; }
    .campaign-card dl div:last-child { grid-column: auto; }
    .campaign-form-footer { align-items: stretch; flex-direction: column; }
}

/* FLEXa application form system — public, applicant, operator and global review */
:where(.auth-card, .onboarding-form, .evidence-card, .review-actions form, .campaign-builder form) {
    --form-border: #ffffff2b;
    --form-focus: var(--flexa-accent, #ffe500);
}

:where(.auth-card, .onboarding-form, .evidence-card, .review-actions form, .campaign-builder form) label {
    min-width: 0;
    display: grid;
    gap: .5rem;
    color: #f6f6ed;
    font: 700 .72rem/1.35 var(--flexa-font-mono, "Space Mono", monospace);
    letter-spacing: .05em;
}

:where(.auth-card, .onboarding-form, .evidence-card, .review-actions form, .campaign-builder form)
    :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding: .8rem .9rem;
    border: 1px solid var(--form-border);
    border-radius: 5px;
    outline: 0;
    color: #fff;
    background: #0a0a0a;
    font: 500 .92rem/1.35 var(--flexa-font-sans, Arial, sans-serif);
    transition: border-color 120ms ease, box-shadow 120ms ease, background 120ms ease;
}

:where(.auth-card, .onboarding-form, .evidence-card, .review-actions form, .campaign-builder form)
    :is(input, select, textarea):focus-visible {
    border-color: var(--form-focus);
    box-shadow: 0 0 0 3px #ffe50026;
    background: #11110d;
}

:where(.auth-card, .onboarding-form, .evidence-card, .review-actions form, .campaign-builder form)
    :is(input, select, textarea):invalid:not(:placeholder-shown):not(:focus) {
    border-color: var(--flexa-danger-surface, #c81e12);
}

:where(.auth-card, .onboarding-form, .evidence-card, .review-actions form, .campaign-builder form) textarea {
    min-height: 112px;
    resize: vertical;
}

:where(.auth-card, .onboarding-form, .evidence-card, .review-actions form, .campaign-builder form) input[type="file"] {
    padding: .65rem;
    color: var(--flexa-muted, #a8a897);
}

:where(.auth-card, .onboarding-form, .evidence-card, .review-actions form, .campaign-builder form) input[type="file"]::file-selector-button {
    min-height: 36px;
    margin-right: .75rem;
    padding: .5rem .7rem;
    border: 1px solid #ffe50066;
    border-radius: 4px;
    color: #0a0a0a;
    background: var(--form-focus);
    font-weight: 800;
}

:where(.auth-card, .onboarding-form) label > small {
    color: var(--flexa-muted, #a8a897);
    font: 500 .66rem/1.45 var(--flexa-font-sans, Arial, sans-serif);
    letter-spacing: 0;
}

:where(.auth-card, .onboarding-form) .check {
    min-height: 44px;
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    align-items: start;
    gap: .7rem;
    margin-block: .8rem;
    color: #d6d6c6;
    font: 500 .82rem/1.5 var(--flexa-font-sans, Arial, sans-serif);
    letter-spacing: 0;
}

:where(.auth-card, .onboarding-form) .check input {
    width: 18px;
    height: 18px;
    min-height: 18px;
    margin: .1rem 0 0;
    accent-color: var(--form-focus);
}

.tenant-register-card { width: min(100%, 880px); }
.tenant-register-card .form-grid,
.onboarding-form .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.onboarding-workspace { display: grid; gap: 1.25rem; }
.onboarding-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.onboarding-form { display: grid; gap: .9rem; margin-top: 1rem; }
.onboarding-form > button { justify-self: start; }
.requirement-chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.requirement-chips span { padding: .45rem .65rem; border: 1px solid #ffe50042; border-radius: 999px; color: #d6d6c6; font-size: .72rem; }
.evidence-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.evidence-card { min-width: 0; padding: 1rem; display: grid; gap: .7rem; border: 1px solid var(--form-border); border-radius: 6px; background: #0a0a0a4d; }
.evidence-card small { min-height: 2.5em; overflow-wrap: anywhere; color: var(--flexa-muted, #a8a897); }
.payment-reference { padding: 1rem; display: grid; gap: .3rem; border-left: 3px solid var(--form-focus); background: #0a0a0a66; }
.payment-reference small { color: var(--flexa-muted, #a8a897); }
.submit-application { display: flex; justify-content: flex-end; }
.submit-application button { width: min(100%, 520px); }
.application-review-card { padding: 1.1rem 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .8fr); gap: 1.5rem; border-top: 1px solid var(--line); }
.application-review-card p { color: var(--muted); overflow-wrap: anywhere; }
.review-actions, .review-actions form { display: grid; gap: .65rem; }
.review-actions form textarea { min-height: 90px; }
.auth-success { padding: 11px; border: 1px solid var(--form-focus); border-radius: 6px; color: #0a0a0a; background: var(--form-focus); font-size: 11px; }
.auth-inline-form { width: min(100%, 450px); margin-top: .75rem; }
.auth-inline-form button { width: 100%; border: 1px solid #ffe50066; background: transparent; }

@media (max-width: 900px) {
    .onboarding-columns, .application-review-card { grid-template-columns: 1fr; }
    .evidence-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .auth-page { align-content: start; padding: 28px 14px 48px; }
    .auth-card { padding: 24px 18px; }
    .auth-card h1 { font-size: clamp(32px, 11vw, 42px); }
    .tenant-register-card .form-grid,
    .onboarding-form .form-grid,
    .evidence-grid { grid-template-columns: 1fr; }
    .onboarding-form > button, .review-actions button { width: 100%; }
    .tenant-context-card select { min-width: 0; width: 100%; }
}

.legal-page {
    width: min(100% - 32px, 920px);
    margin: 0 auto;
    padding: 72px 0 96px;
    color: #f6f6ed;
}
.legal-page header { padding-bottom: 2rem; border-bottom: 2px solid var(--flexa-accent, #ffe500); }
.legal-page h1 { margin: .75rem 0; font-size: clamp(42px, 7vw, 72px); line-height: .92; letter-spacing: -.05em; }
.legal-page header p, .legal-page section p { color: #c5c5b7; line-height: 1.7; }
.legal-page section { padding: 1.7rem 0; border-bottom: 1px solid #ffffff20; }
.legal-page h2 { margin: 0 0 .75rem; font-size: 1.3rem; }
.legal-version { display: grid; gap: .55rem; margin: 1.25rem 0 0; }
.legal-version div { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 1rem; }
.legal-version dt { color: var(--flexa-muted); font: 700 .68rem/1.5 var(--flexa-font-mono); text-transform: uppercase; }
.legal-version dd { min-width: 0; margin: 0; color: var(--flexa-body); overflow-wrap: anywhere; }
.legal-version code { font-size: .72rem; }
.legal-topic-nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 1.5rem 0; }
.legal-topic-nav a { display: grid; gap: .45rem; min-height: 96px; padding: 1rem; border: 1px solid var(--flexa-line); color: var(--flexa-ink); background: var(--flexa-surface); text-decoration: none; }
.legal-topic-nav a:hover, .legal-topic-nav a:focus-visible { border-color: var(--flexa-accent); }
.legal-topic-nav span, .legal-related > span { color: var(--flexa-accent); font: 700 .65rem/1.4 var(--flexa-font-mono); letter-spacing: .08em; text-transform: uppercase; }
.legal-topic-nav strong { line-height: 1.35; }
.legal-index { margin: 1.5rem 0; padding: 1rem 1.25rem; border: 1px solid var(--flexa-line); background: var(--flexa-surface); }
.legal-index summary { color: var(--flexa-accent); cursor: pointer; font-weight: 800; }
.legal-index ol { padding-left: 1.3rem; }
.legal-index ol ol { display: flex; flex-wrap: wrap; gap: .35rem 1rem; margin: .4rem 0 .75rem; }
.legal-index a, .legal-heading-link, .legal-related a { color: var(--flexa-body); text-underline-offset: 3px; }
.legal-heading-link { color: inherit; text-decoration: none; }
.legal-paragraph, .legal-page section[id] { scroll-margin-top: 24px; }
.legal-paragraph-link { margin-left: .35rem; color: var(--flexa-accent); font-weight: 800; text-decoration: none; }
.legal-related { display: flex; flex-wrap: wrap; gap: .55rem 1rem; align-items: center; margin-top: 1rem; }
.legal-related a { color: var(--flexa-accent); font-size: .82rem; }
.legal-warning, .legal-acceptance-note {
    margin: 1.5rem 0;
    padding: 1.1rem 1.25rem;
    border-left: 4px solid var(--flexa-accent, #ffe500);
    color: #d6d6c6;
    background: #17170f;
    line-height: 1.6;
}
.legal-warning strong, .legal-acceptance-note strong { display: block; margin-bottom: .35rem; color: var(--flexa-accent, #ffe500); }
.terms-check a, .tenant-register-card .check a { min-height: 0; color: var(--flexa-accent, #ffe500); text-decoration: underline; }

@media (max-width: 720px) {
    .legal-topic-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 430px) {
    .legal-topic-nav { grid-template-columns: 1fr; }
}

.agreement-gate {
    margin: 1.25rem 0;
    padding: 1rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    border: 1px solid #ffe5005c;
    border-radius: 7px;
    background: #0a0a0a99;
}
.agreement-gate > div { min-width: 0; display: grid; gap: .25rem; }
.agreement-gate strong { color: #fff; font-size: .95rem; }
.agreement-gate small { color: #ff9a91; font: .68rem/1.45 var(--flexa-font-mono, "Space Mono", monospace); }
.agreement-gate.accepted { border-color: var(--flexa-accent, #ffe500); background: #ffe5000d; }
.agreement-gate.accepted small { color: var(--flexa-accent, #ffe500); }
.agreement-review-button {
    min-height: 46px;
    padding: .7rem 1rem;
    border: 1px solid var(--flexa-accent, #ffe500);
    border-radius: 5px;
    color: var(--flexa-accent, #ffe500);
    background: transparent;
    font-weight: 800;
}
.agreement-dialog {
    width: min(94vw, 900px);
    max-width: none;
    height: min(92vh, 900px);
    max-height: none;
    margin: auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid #ffe50066;
    border-radius: 8px;
    color: #fff;
    background: #10100c;
    box-shadow: 0 30px 120px #000d;
}
.agreement-dialog:not([open]) { display: none; }
.agreement-dialog.dialog-fallback[open] {
    position: fixed;
    inset: 4vh 3vw;
    z-index: 1100;
    display: block;
    box-shadow: 0 0 0 100vmax #000d, 0 30px 120px #000d;
}
body.agreement-dialog-open { overflow: hidden; }
.agreement-dialog::backdrop { background: #000d; backdrop-filter: blur(5px); }
.agreement-dialog-shell { height: 100%; display: grid; grid-template-rows: auto minmax(220px, 1fr) auto auto; }
.agreement-dialog header {
    padding: 1.1rem 1.25rem;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid #ffffff21;
}
.agreement-dialog h2 { margin: .3rem 0; font-size: clamp(1.55rem, 4vw, 2.25rem); }
.agreement-dialog header p { margin: 0; max-width: 62ch; color: #b9b9a8; font-size: .8rem; }
.agreement-version { align-self: start; padding: .45rem .6rem; border: 1px solid #ffffff2b; color: #b9b9a8; font: .62rem var(--flexa-font-mono, monospace); white-space: nowrap; }
.agreement-document { width: 100%; height: 100%; padding: 1.25rem; overflow-y: auto; border: 0; background: #0a0a0a; }
.agreement-document h3 { margin: 0 0 1rem; color: #fff; }
.agreement-document p { max-width: 90ch; color: #c8c8bc; font-size: .82rem; line-height: 1.65; }
.agreement-instrument-list { margin: 1rem 0 0; padding: 0; display: grid; gap: 1rem; list-style: none; }
.agreement-instrument-list > li { padding: 1rem; border: 1px solid #ffffff21; background: #11110d; }
.agreement-instrument-heading { display: grid; gap: .35rem; }
.agreement-instrument-heading strong { color: #fff; }
.agreement-instrument-heading small { color: #aaa99b; font: .62rem/1.45 var(--flexa-font-mono, monospace); overflow-wrap: anywhere; }
.agreement-instrument-heading a { width: fit-content; color: var(--flexa-accent, #ffe500); font-size: .72rem; }
.agreement-signature { padding: 1rem 1.25rem; display: grid; gap: .7rem; border-top: 1px solid #ffffff21; background: #17170f; }
.agreement-party { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.agreement-party span { min-width: 0; padding: .65rem; border: 1px solid #ffffff1f; background: #0a0a0a; }
.agreement-party strong { display: block; margin-bottom: .25rem; color: #8a8a7c; font: .58rem var(--flexa-font-mono, monospace); text-transform: uppercase; }
.agreement-party b { display: block; overflow-wrap: anywhere; color: #fff; font-size: .76rem; }
.agreement-confirmation { display: grid; gap: .45rem; color: #e6e6db; font-size: .78rem; line-height: 1.45; }
.agreement-confirmation input { min-height: 44px; }
.agreement-signature-options { display: grid; gap: .65rem; margin: 0; padding: .85rem; border: 1px solid #ffffff2b; border-radius: 12px; color: #e6e6db; }
.agreement-signature-options legend { padding: 0 .35rem; font-weight: 800; }
.agreement-signature-options > label { display: flex; align-items: center; gap: .55rem; }
.agreement-signature-options > label[data-agreement-typed-signature] { display: grid; align-items: stretch; }
.agreement-signature-options > label[hidden] { display: none; }
.agreement-signature .check {
    min-height: 0;
    margin: 0;
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: .7rem;
    align-items: start;
    color: #e6e6db;
    font-size: .78rem;
    line-height: 1.45;
}
.agreement-signature .check input { width: 18px; height: 18px; min-height: 18px; margin-top: .1rem; accent-color: var(--flexa-accent, #ffe500); }
.agreement-signature p { margin: 0; color: #8a8a7c; font: .62rem/1.45 var(--flexa-font-mono, monospace); }
.agreement-requirement { color: #eacb86; }
.agreement-requirement[data-state="ready"] { color: #9fe0b2; }
.agreement-dialog footer { padding: .9rem 1.25rem; display: flex; justify-content: flex-end; gap: .75rem; border-top: 1px solid #ffffff21; }
.agreement-dialog footer button { width: auto; min-width: 190px; }
.agreement-cancel { border: 1px solid #ffffff38; border-radius: 5px; color: #fff; background: transparent; }
.agreement-dialog [data-agreement-accept]:disabled { opacity: .38; cursor: not-allowed; }
@media (max-width: 680px) {
    .agreement-party { grid-template-columns: 1fr; }
    .agreement-dialog footer { flex-direction: column-reverse; }
    .agreement-dialog footer button { width: 100%; min-width: 0; }
}
.registration-scope {
    margin: 1rem 0 1.25rem;
    padding: .8rem .9rem;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    border-left: 3px solid var(--flexa-accent, #ffe500);
    background: #ffe5000d;
}
.registration-scope strong { color: var(--flexa-accent, #ffe500); font: .72rem var(--flexa-font-mono, monospace); text-transform: uppercase; }
.registration-scope span { color: #b9b9a8; font-size: .75rem; }
.registration-scope.tenant { border-left-color: #86a8ff; background: #86a8ff0d; }
.registration-scope.tenant strong { color: #a9bdff; }
.document-workspace { display: grid; gap: 1.25rem; }
.gym-map-workspace { margin: 1rem 0 1.25rem; display: grid; gap: .85rem; }
.gym-map-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: end; }
.gym-map-heading h3 { margin: .25rem 0; }
.gym-map-heading p { margin: 0; color: var(--muted); font-size: .75rem; }
.gym-map-heading label { min-width: 130px; }
.gym-map-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(240px, .65fr); gap: .85rem; }
.gym-map-canvas { min-height: 420px; border: 1px solid #ffffff21; border-radius: 7px; background: #171717; }
.gym-map-results { max-height: 420px; overflow-y: auto; display: grid; align-content: start; gap: .55rem; }
.gym-map-result-summary { display: flex; gap: .5rem; align-items: baseline; color: var(--muted); }
.gym-map-result-summary strong { color: var(--flexa-accent, #ffe500); font-size: 1.25rem; }
.gym-map-card { border: 1px solid #ffffff1f; border-radius: 6px; background: #101010; overflow: hidden; }
.gym-map-card.expanded { border-color: #ffe50080; }
.gym-map-card > button { width: 100%; padding: .8rem; display: flex; justify-content: space-between; gap: .75rem; border: 0; color: #fff; background: transparent; text-align: left; }
.gym-map-card > button span { display: grid; gap: .2rem; }
.gym-map-card > button span:last-child { text-align: right; }
.gym-map-card small { color: var(--muted); font-size: .66rem; }
.gym-map-card-detail { padding: 0 .8rem .8rem; border-top: 1px solid #ffffff14; }
.gym-map-card-detail p { color: #d3d3c8; font-size: .72rem; }
.gym-map-card-detail dl { margin: 0; display: grid; gap: .35rem; }
.gym-map-card-detail dl div { display: flex; justify-content: space-between; gap: .75rem; font-size: .66rem; }
.gym-map-card-detail dt { color: var(--muted); }
.gym-map-card-detail dd { margin: 0; text-align: right; }
.gym-map-message { padding: .85rem; border: 1px solid #ffffff21; border-radius: 6px; color: #d3d3c8; background: #ffffff08; font-size: .75rem; }
.gym-map-message.warning { border-color: #ffb34755; color: #ffd29b; background: #ffb3470d; }
@media (max-width: 900px) {
    .gym-map-layout { grid-template-columns: 1fr; }
    .gym-map-results { max-height: none; }
}
.document-intro { display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; }
.document-intro h2 { margin: .4rem 0; }
.document-intro p { max-width: 70ch; color: var(--muted); }
.member-document-overview { display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; }
.member-document-overview h2 { margin: .4rem 0; }
.member-document-overview p { max-width: 72ch; margin-bottom: 0; color: var(--muted); }
.member-document-count { min-width: 96px; padding: .8rem; display: grid; text-align: center; border-left: 2px solid var(--flexa-accent, #ffe500); }
.member-document-count strong { color: var(--flexa-accent, #ffe500); font-size: 1.8rem; line-height: 1; }
.member-document-count span { margin-top: .3rem; color: var(--muted); font: .62rem var(--flexa-font-mono, monospace); text-transform: uppercase; }
.member-document-layout { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); gap: 1rem; align-items: start; }
.member-document-upload-panel { position: sticky; top: 1rem; }
.member-document-section-heading { margin-bottom: 1rem; display: flex; gap: .8rem; align-items: flex-start; }
.member-document-section-heading > span { color: var(--flexa-accent, #ffe500); font: 700 .68rem var(--flexa-font-mono, monospace); }
.member-document-section-heading h3 { margin: 0; }
.member-document-section-heading p { margin: .25rem 0 0; color: var(--muted); font-size: .68rem; }
.member-document-form { max-width: none; }
.member-document-form .field-help { margin-top: -.35rem; color: var(--muted); font-size: .68rem; line-height: 1.55; }
.member-document-card {
    padding: 1rem 0;
    display: grid;
    gap: .85rem;
    border-top: 1px solid var(--line);
}
.member-document-card-header { display: flex; justify-content: space-between; gap: .75rem; align-items: center; }
.member-document-card-header .status-chip { flex: 0 0 auto; }
.member-document-primary { min-width: 0; }
.member-document-primary h4 { margin: .35rem 0 .25rem; font-size: 1rem; }
.member-document-primary p { margin: 0; color: var(--muted); font-size: .72rem; overflow-wrap: anywhere; }
.member-document-meta { margin: 0; padding-top: .65rem; display: grid; grid-template-columns: 1.15fr 1fr .55fr; gap: .75rem; border-top: 1px solid #ffffff12; }
.member-document-meta div { min-width: 0; display: grid; gap: .2rem; font-size: .68rem; }
.member-document-meta dt { color: var(--muted); }
.member-document-meta dd { margin: 0; overflow-wrap: anywhere; }
.linked-document-row {
    padding: .9rem 0;
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto;
    gap: 1rem;
    align-items: center;
    border-top: 1px solid var(--line);
}
.linked-document-row div { min-width: 0; }
.linked-document-row strong, .linked-document-row small, .linked-document-row span { display: block; overflow-wrap: anywhere; }
.linked-document-row small { margin-top: .25rem; color: var(--muted); }
.gym-search-tools {
    padding: .9rem;
    display: grid;
    grid-template-columns: minmax(180px, 1fr) 110px auto;
    gap: .75rem;
    align-items: end;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: #ffffff05;
}
.gym-search-tools label { display: grid; gap: .35rem; color: var(--muted); font: .62rem var(--flexa-font-mono, monospace); text-transform: uppercase; }
.gym-search-tools input, .gym-search-tools select { min-height: 42px; margin: 0; }
.location-button {
    min-height: 42px;
    padding: .65rem .8rem;
    border: 1px solid var(--flexa-accent, #ffe500);
    border-radius: 4px;
    color: var(--flexa-accent, #ffe500);
    background: transparent;
    font-weight: 800;
    white-space: nowrap;
}
.location-button:disabled { opacity: .55; cursor: wait; }
.location-status { padding: .55rem .9rem; color: var(--muted); font: .62rem/1.45 var(--flexa-font-mono, monospace); background: #0b0b08; }
.location-status.ready { color: #9fe0b2; }
.location-status.warning { color: #eacb86; }
.empty-gym-results { padding: 1.5rem 1rem; display: grid; gap: .4rem; color: var(--muted); text-align: center; }
.empty-gym-results strong { color: #fff; }
.empty-gym-results .text-action { justify-self: center; }
.profile-workspace { display: grid; gap: 1rem; }
.profile-card { padding: 1.25rem; display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.profile-photo { width: 150px; height: 150px; border: 2px solid var(--flexa-accent, #ffe500); border-radius: 50%; object-fit: cover; background: #202018; }
.profile-card form { max-width: 520px; display: grid; gap: .75rem; }
.profile-card form small { color: var(--muted); }
.address-fieldset {
    margin: .9rem 0;
    padding: 1rem;
    display: grid;
    gap: .8rem;
    border: 1px solid var(--line, #ffffff22);
    border-radius: 6px;
}
.address-fieldset legend { width: auto; margin: 0; padding: 0 .4rem; color: #fff; font-size: .82rem; font-weight: 800; }
.address-fieldset label > span { color: var(--muted); font-size: .7rem; font-weight: 400; }
.international-phone { display: grid; grid-template-columns: minmax(150px, .42fr) minmax(150px, 1fr); gap: .5rem; }
.international-phone :where(input, select) { margin: 0; }
.international-phone [data-phone-prefix] { color: var(--flexa-accent, #ffe500); background: #ffffff08; }

@media (max-width: 620px) {
    .agreement-gate { grid-template-columns: 1fr; }
    .agreement-review-button { width: 100%; }
    .agreement-dialog { width: 100vw; height: 100dvh; border: 0; border-radius: 0; }
    .agreement-dialog.dialog-fallback[open] { inset: 0; }
    .agreement-dialog-shell { min-height: 0; grid-template-rows: auto minmax(80px, 1fr) auto auto; }
    .agreement-dialog header { display: grid; padding: .9rem 1rem; }
    .agreement-version { white-space: normal; }
    .agreement-signature { max-height: 43dvh; padding: .8rem 1rem; overflow-y: auto; }
    .agreement-dialog footer { position: sticky; bottom: 0; z-index: 2; padding: .8rem 1rem calc(.8rem + env(safe-area-inset-bottom)); display: grid; grid-template-columns: 1fr; background: #10100c; }
    .agreement-dialog footer button { width: 100%; min-width: 0; }
    .registration-scope, .linked-document-row, .member-document-card { grid-template-columns: 1fr; }
    .member-document-overview { align-items: flex-start; flex-direction: column; }
    .member-document-count { width: 100%; grid-template-columns: auto auto; justify-content: start; align-items: baseline; gap: .4rem; text-align: left; }
    .member-document-meta { grid-template-columns: 1fr; }
    .member-document-card-header { align-items: flex-start; flex-direction: column; }
    .document-intro { align-items: flex-start; flex-direction: column; }
    .gym-search-tools { grid-template-columns: 1fr; }
    .location-button { width: 100%; }
    .profile-card { grid-template-columns: 1fr; }
    .profile-photo { width: 120px; height: 120px; }
}

@media (max-width: 900px) {
    .member-document-layout { grid-template-columns: 1fr; }
    .member-document-upload-panel { position: static; }
}

.audit-workspace { display: grid; gap: 1rem; }
.audit-overview { display: flex; justify-content: space-between; gap: 1.5rem; align-items: center; }
.audit-overview h2 { margin: .4rem 0; }
.audit-overview p { max-width: 72ch; margin-bottom: 0; color: var(--muted); }
.audit-count { min-width: 110px; display: grid; text-align: right; }
.audit-count strong { color: var(--flexa-accent, #ffe500); font-size: 1.8rem; }
.audit-count span { color: var(--muted); font: .62rem var(--flexa-font-mono, monospace); text-transform: uppercase; }
.audit-filters { margin-bottom: 1rem; display: grid; grid-template-columns: minmax(180px, .4fr) minmax(240px, 1fr); gap: .8rem; }
.audit-filters label { display: grid; gap: .35rem; color: var(--muted); font-size: .68rem; }
.audit-table td { min-width: 150px; vertical-align: top; }
.audit-table td:nth-child(2) { min-width: 240px; }
.audit-table :is(strong, span, small) { display: block; overflow-wrap: anywhere; }
.audit-table small { margin-top: .3rem; color: var(--muted); }
@media (max-width: 620px) {
    .audit-overview { align-items: flex-start; flex-direction: column; }
    .audit-count { text-align: left; }
    .audit-filters { grid-template-columns: 1fr; }
}

/* Unified production forms — final cascade shared by every FLEXa workflow */
:where(
    .auth-card,
    .onboarding-form,
    .campaign-builder form,
    .evidence-card,
    .review-actions form,
    .profile-card form,
    .submit-application
) {
    --form-control-height: 50px;
    --form-control-bg: #0d0d09;
    --form-control-border: #ffffff30;
    --form-control-border-hover: #ffffff5c;
    --form-control-focus: var(--flexa-accent, #ffe500);
    --form-control-disabled: #ffffff08;
    --form-label: #f4f4e9;
    --form-help: var(--flexa-muted, #a8a897);
    --form-danger: #ff8a80;
    min-width: 0;
}

:where(
    .auth-card,
    .onboarding-form,
    .campaign-builder form,
    .evidence-card,
    .review-actions form,
    .profile-card form
) label {
    min-width: 0;
    margin: 0;
    display: grid;
    align-content: start;
    gap: .5rem;
    color: var(--form-label);
    font: 700 .7rem/1.4 var(--flexa-font-mono, "Space Mono", monospace);
    letter-spacing: .055em;
}

:where(
    .auth-card,
    .onboarding-form,
    .campaign-builder form,
    .evidence-card,
    .review-actions form,
    .profile-card form
) :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    select,
    textarea
) {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: var(--form-control-height);
    margin: 0;
    padding: .82rem .9rem;
    border: 1px solid var(--form-control-border);
    border-radius: 6px;
    outline: 0;
    color: #fff;
    background-color: var(--form-control-bg);
    color-scheme: dark;
    font: 500 .92rem/1.35 var(--flexa-font-sans, Arial, sans-serif);
    letter-spacing: 0;
    transition: border-color 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}

:where(
    .auth-card,
    .onboarding-form,
    .campaign-builder form,
    .evidence-card,
    .review-actions form,
    .profile-card form
) :is(input, select, textarea):hover:not(:disabled):not(:focus) {
    border-color: var(--form-control-border-hover);
}

:where(
    .auth-card,
    .onboarding-form,
    .campaign-builder form,
    .evidence-card,
    .review-actions form,
    .profile-card form
) :is(input, select, textarea):focus-visible {
    border-color: var(--form-control-focus);
    box-shadow: 0 0 0 3px #ffe50024;
    background-color: #13130e;
}

:where(
    .auth-card,
    .onboarding-form,
    .campaign-builder form,
    .evidence-card,
    .review-actions form,
    .profile-card form
) :is(input, select, textarea):disabled {
    cursor: not-allowed;
    opacity: .72;
    color: #b8b8aa;
    border-color: #ffffff1c;
    background-color: var(--form-control-disabled);
}

:where(
    .auth-card,
    .onboarding-form,
    .campaign-builder form,
    .evidence-card,
    .review-actions form,
    .profile-card form
) :is(input, textarea)::placeholder {
    color: #8f8f82;
    opacity: 1;
}

:where(
    .auth-card,
    .onboarding-form,
    .campaign-builder form,
    .evidence-card,
    .review-actions form,
    .profile-card form
) select {
    padding-right: 2.4rem;
}

:where(
    .auth-card,
    .onboarding-form,
    .campaign-builder form,
    .evidence-card,
    .review-actions form,
    .profile-card form
) textarea {
    min-height: 118px;
    line-height: 1.55;
    resize: vertical;
}

:where(
    .auth-card,
    .onboarding-form,
    .campaign-builder form,
    .evidence-card,
    .review-actions form,
    .profile-card form
) input[type="file"] {
    min-height: 58px;
    padding: .55rem;
    overflow: hidden;
    color: var(--form-help);
}

:where(
    .auth-card,
    .onboarding-form,
    .campaign-builder form,
    .evidence-card,
    .review-actions form,
    .profile-card form
) input[type="file"]::file-selector-button {
    min-height: 38px;
    margin: 0 .75rem 0 0;
    padding: .55rem .8rem;
    border: 0;
    border-radius: 4px;
    color: #0a0a0a;
    background: var(--form-control-focus);
    font-weight: 900;
    cursor: pointer;
}

:where(.auth-card, .onboarding-form, .campaign-builder form, .profile-card form)
    :is(.form-grid, .campaign-dates) {
    align-items: start;
    gap: 1rem;
}

:where(.auth-card, .onboarding-form, .profile-card form) .address-fieldset {
    min-width: 0;
    margin: .25rem 0;
    padding: 1rem;
    gap: 1rem;
    border-color: #ffffff2b;
    background: #ffffff03;
}

:where(.auth-card, .onboarding-form, .profile-card form) .address-fieldset legend {
    padding-inline: .45rem;
    color: var(--form-label);
    font: 800 .76rem/1.3 var(--flexa-font-mono, "Space Mono", monospace);
    letter-spacing: .055em;
}

.international-phone {
    min-width: 0;
    grid-template-columns: minmax(150px, .42fr) minmax(0, 1fr);
    gap: .6rem;
}

.international-phone [data-phone-prefix] {
    text-align: center;
    font-family: var(--flexa-font-mono, "Space Mono", monospace);
    font-weight: 800;
}

:where(.auth-card, .onboarding-form) .check {
    margin: 0;
    padding: .65rem .7rem;
    border: 1px solid transparent;
    border-radius: 5px;
}

:where(.auth-card, .onboarding-form) .check:hover {
    border-color: #ffffff20;
    background: #ffffff04;
}

:where(.auth-card, .onboarding-form) .check:focus-within {
    border-color: #ffe50055;
    background: #ffe50008;
}

.validation-errors,
.validation-summary-errors {
    margin: 0;
    padding: .8rem 1rem .8rem 2rem;
    border-left: 3px solid var(--form-danger, #ff8a80);
    color: #ffd4d0;
    background: #ff453a12;
    font-size: .78rem;
    line-height: 1.5;
}

.validation-message {
    margin-top: -.15rem;
    color: var(--form-danger, #ff8a80);
    font: 600 .68rem/1.4 var(--flexa-font-sans, Arial, sans-serif);
    letter-spacing: 0;
}

:where(.auth-card, .onboarding-form, .campaign-builder form)
    :is(input.invalid, select.invalid, textarea.invalid) {
    border-color: var(--form-danger, #ff8a80);
    box-shadow: 0 0 0 1px #ff8a8026;
}

:where(.auth-card, .onboarding-form, .campaign-builder form)
    :is(input.valid, select.valid, textarea.valid):not(:focus) {
    border-color: #66c98580;
}

:where(.auth-card, .onboarding-form, .campaign-builder form, .profile-card form)
    input:-webkit-autofill {
    -webkit-text-fill-color: #fff;
    box-shadow: 0 0 0 1000px var(--form-control-bg) inset;
    caret-color: #fff;
}

.campaign-form-footer,
.submit-application {
    margin-top: .25rem;
}

.campaign-draft-recovery {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin: 0 0 1rem;
    padding: .75rem .85rem;
    border: 1px solid var(--line, #ffffff20);
    border-left: 3px solid var(--flexa-accent, #ffe500);
    border-radius: 5px;
    background: rgba(255, 229, 0, .045);
}

.campaign-draft-recovery > div { display: flex; align-items: center; gap: .5rem; }
.campaign-draft-recovery > div:first-child { min-width: 0; align-items: flex-start; flex-direction: column; gap: .15rem; }
.campaign-draft-recovery strong { font-size: .75rem; }
.campaign-draft-recovery small { color: var(--muted); font-size: .65rem; }
.campaign-draft-recovery .small-button { min-height: 34px; padding: .4rem .65rem; font-size: .62rem; }

@media (max-width: 620px) {
    .campaign-draft-recovery { align-items: stretch; flex-direction: column; }
    .campaign-draft-recovery > div:last-child { justify-content: flex-end; }
}

.onboarding-form > button,
.campaign-form-footer button,
.submit-application button,
.review-actions button {
    min-height: 48px;
}

@media (max-width: 620px) {
    :where(.auth-card, .onboarding-form, .campaign-builder form, .profile-card form)
        :is(.form-grid, .campaign-dates) {
        grid-template-columns: 1fr;
        gap: .85rem;
    }

    :where(.auth-card, .onboarding-form, .campaign-builder form, .profile-card form)
        input[type="file"] {
        min-height: 92px;
    }

    :where(.auth-card, .onboarding-form, .campaign-builder form, .profile-card form)
        input[type="file"]::file-selector-button {
        width: 100%;
        margin: 0 0 .55rem;
    }

    .international-phone {
        grid-template-columns: 86px minmax(0, 1fr);
    }
}

.document-admin-workspace { display: grid; gap: 1rem; }
.document-filter { display: grid; gap: .25rem; min-width: 220px; color: var(--muted); font-size: .68rem; }
.verification-document-card { padding: 1rem 0; border-top: 1px solid #ffffff18; }
.verification-document-card:first-of-type { border-top: 0; }
.verification-document-summary { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(320px, 1.3fr); gap: 1rem; }
.verification-document-summary h3 { margin: .4rem 0 .2rem; }
.verification-document-summary p { color: var(--muted); }
.verification-document-summary dl { margin: 0; display: grid; gap: .35rem; }
.verification-document-summary dl div { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: .75rem; font-size: .72rem; }
.verification-document-summary dt { color: var(--muted); }
.verification-document-summary dd { margin: 0; overflow-wrap: anywhere; }

.processing-flexa-f {
    display: inline-block;
    width: 1.35rem;
    height: 1.35rem;
    margin-inline: .1rem;
    overflow: hidden;
    color: transparent;
    background: url('/images/brand/flexa-preloader-mark.svg') center / contain no-repeat;
    font-size: 0;
    vertical-align: -.2rem;
    animation: flexa-processing-f-roll 780ms linear infinite;
}

form[aria-busy="true"] {
    cursor: progress;
}

form[aria-busy="true"] button:disabled,
form[aria-busy="true"] input[type="submit"]:disabled {
    cursor: wait;
    opacity: .78;
}

form[aria-busy="true"] [data-processing-control] {
    pointer-events: none;
}

.form-draft-status {
    display: block;
    width: 100%;
    margin-top: .5rem;
    color: var(--muted, #a8a897);
    font: 700 .58rem var(--flexa-font-mono, monospace);
    letter-spacing: .06em;
}

.form-draft-status[data-state="restored"] { color: var(--flexa-accent, #ffe500); }

@keyframes flexa-processing-f-roll {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .processing-flexa-f { animation: none !important; opacity: 1; transform: none; }
}
.document-preview { margin-top: .8rem; border: 1px solid #ffffff20; border-radius: 6px; background: #0d0d0d; }
.document-preview summary { padding: .7rem .85rem; color: var(--flexa-accent, #ffe500); font-size: .72rem; font-weight: 700; }
.document-preview-frame { min-height: 420px; padding: .65rem; border-top: 1px solid #ffffff18; }
.document-preview-frame img, .document-preview-frame object { display: block; width: 100%; height: 70vh; min-height: 400px; object-fit: contain; background: #fff; }
.application-document-register { grid-column: 1 / -1; padding-top: .8rem; border-top: 1px solid #ffffff18; }
.application-document-item { display: grid; grid-template-columns: minmax(220px, .5fr) minmax(0, 1.5fr); gap: .8rem; padding: .55rem 0; }
.application-document-item > span { display: grid; align-content: start; gap: .2rem; font-size: .75rem; }
.application-document-item small { color: var(--muted); }

@media (max-width: 800px) {
    .verification-document-summary, .application-document-item { grid-template-columns: 1fr; }
    .document-preview-frame, .document-preview-frame img, .document-preview-frame object { min-height: 320px; height: 55vh; }
}

/* Unified data tables and register rows */
.table-wrap,
.user-table {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    border: 1px solid var(--line, #ffffff20);
    border-radius: 7px;
    background: var(--paper, #17170f);
    scrollbar-color: var(--flexa-accent, #ffe500) #11110d;
}

.table-wrap table {
    width: 100%;
    min-width: 760px;
    border: 0;
    border-collapse: collapse;
    table-layout: auto;
    color: #f6f6ed;
    font-variant-numeric: tabular-nums;
}

.table-wrap :is(th, td) {
    padding: .9rem 1rem;
    vertical-align: middle;
    text-align: left;
    border-bottom: 1px solid var(--line, #ffffff20);
}

.table-wrap th {
    position: sticky;
    top: 0;
    z-index: 1;
    color: var(--flexa-muted, #a8a897);
    background: #11110d;
    font: 700 .64rem/1.35 var(--flexa-font-mono, "Space Mono", monospace);
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.table-wrap td {
    font-size: .82rem;
    line-height: 1.45;
}

.table-wrap tbody tr {
    transition: background-color 120ms ease;
}

.table-wrap tbody tr:hover {
    background: #ffffff05;
}

.table-wrap tbody tr:last-child td {
    border-bottom: 0;
}

.table-wrap :is(th, td):last-child {
    text-align: right;
    white-space: nowrap;
}

.table-wrap td form {
    display: inline-flex;
    justify-content: flex-end;
    margin: 0;
}

.table-wrap td button {
    min-height: 38px;
    padding: .5rem .75rem;
}

.user-table {
    padding: 0;
}

.user-row {
    min-width: 820px;
    grid-template-columns:
        minmax(220px, 2fr)
        minmax(150px, 1.15fr)
        minmax(140px, 1fr)
        minmax(90px, .6fr)
        minmax(100px, .65fr);
    gap: 1rem;
    padding: .9rem 1rem;
    border-top: 0;
    border-bottom: 1px solid var(--line, #ffffff20);
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
}

.user-row:last-child {
    border-bottom: 0;
}

.user-head {
    position: sticky;
    top: 0;
    z-index: 1;
    color: var(--flexa-muted, #a8a897);
    background: #11110d;
    font: 700 .64rem/1.35 var(--flexa-font-mono, "Space Mono", monospace);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.user-row:not(.user-head):hover {
    background: #ffffff05;
}

.user-row > :nth-last-child(-n + 2) {
    text-align: right;
}

.settlement-row {
    grid-template-columns: minmax(0, 1fr) minmax(130px, auto) minmax(96px, auto);
    gap: 1rem;
    border-color: var(--line, #ffffff20);
    font-variant-numeric: tabular-nums;
}

.settlement-row > :nth-child(2) {
    text-align: right;
}

.settlement-row button {
    justify-self: end;
    min-width: 96px;
}

.control-line {
    gap: 1rem;
    align-items: baseline;
    border-color: var(--line, #ffffff20);
    font-variant-numeric: tabular-nums;
}

.control-line > :last-child {
    flex: 0 0 auto;
    text-align: right;
}

.ocr-status {
    min-height: 1.45em;
    padding-left: .65rem;
    border-left: 2px solid #ffffff30;
}

.ocr-status[data-state="working"] { color: #eacb86 !important; border-color: #eacb86; }
.ocr-status[data-state="success"] { color: #9fe0b2 !important; border-color: #66c985; }
.ocr-status[data-state="error"] { color: #ff9a91 !important; border-color: #ff6b61; }
.ocr-status[data-state="review"] { color: #eacb86 !important; border-color: #eacb86; }
.identity-document-picker { display: grid; gap: .65rem; padding: .85rem; border: 1px solid #ffffff22; border-radius: 6px; }
.identity-document-picker legend { float: none; width: auto; margin: 0; padding: 0 .2rem; color: inherit; font-size: .78rem; }
.identity-document-option { display: grid; gap: .35rem; align-content: start; padding: .75rem; border: 1px solid #ffffff20; border-radius: 5px; background: #ffffff08; }
.identity-document-option span { color: var(--muted); font-size: .68rem; }
.identity-document-option input { width: 100%; }
.identity-document-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.identity-document-actions button { min-height: 48px; padding: .7rem; border: 1px solid #ffe500; border-radius: 5px; color: #0a0a0a; background: #ffe500; font-weight: 900; }
.identity-document-actions button + button { color: #ffe500; background: transparent; }
.identity-document-native-input { position: absolute; width: 1px !important; height: 1px; min-height: 1px !important; padding: 0 !important; opacity: 0; pointer-events: none; }
.identity-document-selection { padding: .55rem .65rem; overflow-wrap: anywhere; border-left: 2px solid #ffe500; color: #e6e6db !important; }
@media (max-width: 520px) { .identity-document-actions { grid-template-columns: 1fr; } }
.identity-capture-page { padding: clamp(1rem, 4vw, 3rem); }
.identity-capture-card { width: min(100%, 680px); gap: 1.25rem; padding: clamp(1.25rem, 5vw, 3rem); }
.identity-capture-header { display: grid; gap: .75rem; }
.identity-capture-header h1 { max-width: 12ch; margin: 0; text-wrap: balance; }
.identity-capture-header p { margin: 0; }
.identity-capture-greeting { color: #ffe500 !important; font-weight: 800; }
.identity-capture-reference { display: grid; grid-template-columns: minmax(0, 2fr) minmax(100px, 1fr); gap: 1px; margin: 0; overflow: hidden; border: 1px solid #ffffff20; border-radius: 6px; background: #ffffff20; }
.identity-capture-reference div { min-width: 0; padding: .8rem; background: #11120e; }
.identity-capture-reference dt { color: var(--muted); font-size: .65rem; letter-spacing: .08em; text-transform: uppercase; }
.identity-capture-reference dd { margin: .25rem 0 0; overflow-wrap: anywhere; font-weight: 800; }
.identity-capture-step { display: grid; gap: .85rem; }
.identity-capture-step-heading { display: flex; gap: .75rem; align-items: center; }
.identity-capture-step-heading > span { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid #ffe500; color: #ffe500; font-size: .7rem; font-weight: 900; }
.identity-capture-step-heading div { display: grid; gap: .1rem; }
.identity-capture-step-heading small { color: var(--muted); }
.identity-capture-control { min-height: 148px; justify-items: center; justify-content: stretch; text-align: center; cursor: pointer; border-color: #ffe50055; transition: border-color .18s ease, background .18s ease, transform .18s ease; }
.identity-capture-control:hover, .identity-capture-control:focus-within { border-color: #ffe500; background: #ffe5000c; transform: translateY(-1px); }
.identity-capture-camera-icon { display: grid; width: 3.25rem; height: 3.25rem; place-items: center; border-radius: 50%; background: #ffe500; color: #0a0a0a !important; }
.identity-capture-camera-icon svg { width: 1.65rem; height: 1.65rem; fill: currentColor; }
.identity-capture-native-input { position: absolute; width: 1px !important; height: 1px !important; min-height: 1px !important; padding: 0 !important; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; border: 0; }
.identity-capture-feedback { min-height: 2.75rem; padding: .75rem; border-left: 2px solid #ffe500; background: #ffffff08; color: #e6e6db; }
.identity-capture-complete { display: grid; justify-items: center; gap: 1rem; padding: clamp(1.25rem, 4vw, 2rem); text-align: center; border: 1px solid #79d89955; border-radius: 8px; background: #79d8990d; }
.identity-capture-complete > div { display: grid; gap: .45rem; }
.identity-capture-complete strong { font-size: clamp(1.1rem, 4vw, 1.4rem); }
.identity-capture-complete p { margin: 0; color: var(--muted); }
.identity-capture-success-icon { display: grid; width: 3.75rem; height: 3.75rem; place-items: center; border-radius: 50%; background: #79d899; color: #07110a; font-size: 2rem; font-weight: 950; }
.identity-capture-success-icon .flexa-icon { width: 2rem; height: 2rem; }
.identity-capture-status { display: grid; gap: .25rem; min-height: 1.5rem; }
.identity-capture-status[data-state="waiting"] { padding: .7rem; border-left: 2px solid #ffe500; background: #ffe5000a; color: #e9df9b; }
.identity-capture-status[data-state="success"] { padding: .85rem; border: 1px solid #79d89955; border-left: 3px solid #79d899; border-radius: 5px; background: #79d8990d; color: #dff8e7; }
.identity-capture-status[data-state="success"] strong { color: #79d899; }
.identity-capture-status[data-state="success"] span { color: #d7dfd9; }
.identity-capture-status[data-state="error"] { padding: .7rem; border-left: 2px solid #ff635a; background: #ff635a0a; color: #ffaaa4; }
.registration-draft-controls { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: center; padding: .85rem; border: 1px solid #ffffff20; border-radius: 6px; background: #ffffff08; }
.registration-draft-controls button { min-height: 44px; padding: .65rem .9rem; border: 1px solid #ffe500; border-radius: 4px; background: transparent; color: #ffe500; font-weight: 850; }
.registration-draft-controls span { flex: 1 1 240px; color: var(--muted); font-size: .78rem; }
.registration-draft-controls span[data-state="success"] { color: #79d899; }
.registration-draft-controls span[data-state="error"] { color: #ff8c84; }
.registration-draft-controls span[data-state="working"] { color: #ffe500; }
.application-queue-summary article { min-width: 0; }
.application-draft-card { border-left: 3px solid #ffe500; }
@media (max-width: 520px) {
    .identity-capture-page { padding: .75rem; align-items: start; }
    .identity-capture-card { padding: 1.1rem; border-radius: 8px; }
    .identity-capture-reference { grid-template-columns: 1fr; }
    .identity-capture-card .public-primary { width: 100%; min-height: 54px; }
}
.identity-document-preview { width: min(100%, 520px); max-height: 320px; margin-inline: auto; object-fit: contain; border: 1px solid #ffffff20; background: #111; }
.document-verify-action { padding: .75rem; border-top: 1px solid #ffffff18; }
.document-review-counts { display: grid; justify-items: end; gap: .25rem; }
.document-review-counts strong { color: #ff3b30; }
.document-review-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: .75rem; }
.danger-button { border: 1px solid #ff3b30; background: transparent; color: #ff635a; padding: .75rem 1rem; font-weight: 800; }
.status-chip.manual-review-required { background: #ff3b30; border-color: #ff3b30; color: #fff; }
.status-chip.document-verified { background: #ffe500; border-color: #ffe500; color: #0a0a0a; }
.status-chip.document-rejected { background: #5b1111; border-color: #ff3b30; color: #fff; }
.status-chip.document-pending { background: #ecece5; color: #0a0a0a; }
.manual-review-approve { background: #ffe500; border-color: #ffe500; color: #0a0a0a; }

/* Unified application forms — registration, profile, tenant, member and administration */
:where(.workspace, .content, .auth-page) form,
:where(.campaign-builder, .pricing-card) {
    --control-height: 50px;
    --control-bg: #0d0d09;
    --control-border: #ffffff30;
    --control-focus: #ffe500;
    min-width: 0;
}

:where(.workspace, .content, .auth-page) form label,
:where(.campaign-builder, .pricing-card, .gym-search-tools, .topup-custom, .document-filter) label {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: .45rem;
    margin: 0;
    color: #f4f4e9;
    font: 700 .7rem/1.4 var(--flexa-font-mono, "Space Mono", monospace);
    letter-spacing: .045em;
}

:where(.workspace, .content, .auth-page) form :is(
    input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    select,
    textarea
),
:where(.campaign-builder, .pricing-card, .gym-search-tools, .topup-custom, .document-filter) :is(input, select, textarea) {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: var(--control-height, 50px);
    margin: 0;
    padding: .8rem .9rem;
    border: 1px solid var(--control-border, #ffffff30);
    border-radius: 6px;
    outline: 0;
    color: #fff;
    background: var(--control-bg, #0d0d09);
    color-scheme: dark;
    font: 500 .9rem/1.4 var(--flexa-font-sans, Arial, sans-serif);
    letter-spacing: 0;
}

:where(.workspace, .content, .auth-page) form :is(input, select, textarea):focus-visible,
:where(.campaign-builder, .pricing-card, .gym-search-tools, .topup-custom, .document-filter) :is(input, select, textarea):focus-visible {
    border-color: var(--control-focus, #ffe500);
    box-shadow: 0 0 0 3px #ffe50024;
    background: #15150f;
}

:where(.workspace, .content, .auth-page) form textarea { min-height: 112px; resize: vertical; }
:where(.workspace, .content, .auth-page) form input[type="file"] { min-height: 60px; padding: .55rem; color: #b5b5a8; }
:where(.workspace, .content, .auth-page) form input[type="file"]::file-selector-button {
    min-height: 38px;
    margin-right: .75rem;
    padding: .55rem .85rem;
    border: 0;
    border-radius: 4px;
    color: #0a0a0a;
    background: #ffe500;
    font-weight: 900;
}

:where(.workspace, .content, .auth-page) form :is(button, input[type="submit"]),
:where(.campaign-builder, .pricing-card) button {
    min-height: 48px;
}

:where(.workspace, .content) :is(.form-grid, .campaign-dates) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
    gap: 1rem;
}

.panel-heading {
    flex-wrap: wrap;
    gap: .8rem 1rem;
}

.panel-heading > label,
.panel-heading > .document-filter {
    flex: 1 1 210px;
    max-width: 320px;
}

.document-verify-action {
    margin-top: 1rem;
    display: grid;
    gap: .8rem;
    border: 1px solid #ffffff20;
    border-radius: 6px;
    background: #ffffff04;
}

.document-verify-action textarea { min-height: 96px; }
.review-actions { min-width: 0; }
.review-actions > :is(input, select, textarea, button) { width: 100%; }
.evidence-card, .payment-card form, .submit-application { min-width: 0; }
.ghost-link.active { border-color: #ffe500; color: #0a0a0a; background: #ffe500; }

@media (max-width: 700px) {
    :where(.workspace, .content) :is(.form-grid, .campaign-dates) { grid-template-columns: 1fr; }
    .panel-heading > label, .panel-heading > .document-filter { max-width: none; flex-basis: 100%; }
    .document-review-actions { display: grid; grid-template-columns: 1fr; }
    .document-review-actions button { width: 100%; }
    :where(.workspace, .content, .auth-page) form input[type="file"] { min-height: 92px; }
    :where(.workspace, .content, .auth-page) form input[type="file"]::file-selector-button {
        width: 100%;
        margin: 0 0 .55rem;
    }
}

/* FLEXa Tick: red means action required; verified is CI accent yellow, never green. */
.flexa-tick-workspace { width: min(100%, 760px); margin-inline: auto; }
.flexa-tick-panel {
    --tick-color: #ff3b2f;
    display: grid;
    gap: 1rem;
    padding: clamp(1rem, 3vw, 1.5rem);
    border: 2px solid var(--tick-color);
    border-radius: 6px;
    background: var(--paper, #17170f);
}
.flexa-tick-panel.verified,
.flexa-tick-compact.verified { --tick-color: var(--flexa-accent, #ffe500); }
.flexa-tick-panel.pending,
.flexa-tick-panel.restricted,
.flexa-tick-compact.pending,
.flexa-tick-compact.restricted { --tick-color: #ff3b2f; }
.flexa-tick-hero { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; align-items: center; }
.flexa-tick-hero h2 { margin: .3rem 0; font-size: clamp(1.6rem, 4vw, 2.35rem); }
.flexa-tick-hero p { margin: 0; color: var(--muted); }
.flexa-tick-hero .eyebrow { color: var(--tick-color); }
.flexa-tick-ring {
    position: relative;
    --angle: calc(var(--tick-progress) * 3.6deg);
    display: grid;
    width: 84px;
    height: 84px;
    place-items: center;
    border-radius: 50%;
    background: conic-gradient(var(--tick-color) var(--angle), #ffffff18 0);
    box-shadow: inset 0 0 0 5px transparent;
}

.flexa-icon {
    width: 1.25rem;
    height: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    flex: 0 0 auto;
}

.member-screen { max-width: 64rem; margin: 0 auto; padding: clamp(1rem, 3vw, 3rem); }
.member-screen > h1 { max-width: 18ch; font-size: clamp(2.2rem, 5vw, 4.8rem); line-height: .98; }
.member-screen > p { max-width: 44rem; color: var(--muted, #686862); }
.journey-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .9rem;
    padding: 1rem 0;
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid var(--line, #d9d9d2);
}
.journey-row span { display: grid; }
.journey-row small { color: var(--muted, #686862); }
.referral-card, .passport-card {
    display: grid;
    gap: 1rem;
    padding: clamp(1.25rem, 4vw, 3rem);
    margin: 1.5rem 0;
    background: #0a0a0a;
    color: #fff;
}
.referral-card > .flexa-icon, .passport-card > .flexa-icon { width: 3rem; height: 3rem; color: #ffe500; }
.referral-card > strong { font-size: clamp(2.4rem, 7vw, 5rem); letter-spacing: .08em; }
.passport-card { grid-template-columns: repeat(3, 1fr); align-items: center; }
.passport-card > div { display: grid; gap: .3rem; }
.passport-card small { color: #aaa; }
.screen-hero-icon { width: 5rem; height: 5rem; color: #ffe500; }
.access-outcome { text-align: center; display: grid; justify-items: center; gap: 1rem; }
.access-outcome.refused .screen-hero-icon { color: #ff3b30; }
.refusal-code { padding: .55rem .8rem; background: #f2f2ec; font-weight: 800; }
.action-link { display: inline-flex; text-decoration: none; width: fit-content; }

@media (max-width: 900px) {
    .passport-card { grid-template-columns: 1fr; }
}

@media (max-width: 540px) {
    .journey-row { grid-template-columns: auto 1fr; }
    .journey-row > b { grid-column: 2; }
}
.flexa-tick-ring::before {
    content: "";
    position: absolute;
    width: 72px;
    height: 72px;
    border-radius: 50%;
    background: var(--paper, #17170f);
}
.flexa-tick-ring .flexa-tick-mark { position: relative; z-index: 1; width: 42px; }
.flexa-tick-mark { width: 24px; fill: none; stroke: var(--tick-color); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.flexa-tick-clock { display: grid; gap: .45rem; }
.flexa-tick-clock > div:first-child { display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); font: .65rem var(--flexa-font-mono, "Space Mono", monospace); letter-spacing: .12em; }
.flexa-tick-clock strong { color: var(--tick-color); }
.flexa-tick-progress { height: 8px; overflow: hidden; border-radius: 999px; background: #ffffff18; }
.flexa-tick-progress i { display: block; height: 100%; border-radius: inherit; background: var(--tick-color); }
.flexa-tick-documents { display: grid; gap: .55rem; }
.flexa-tick-document {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: center;
    padding: .75rem .85rem;
    border: 1px solid var(--line, #ffffff20);
    border-radius: 6px;
}
.flexa-tick-document.needed { border-color: var(--tick-color); }
.flexa-tick-document span { min-width: 0; }
.flexa-tick-document strong, .flexa-tick-document small { display: block; }
.flexa-tick-document small { margin-top: .15rem; color: var(--muted); font: .58rem var(--flexa-font-mono, "Space Mono", monospace); letter-spacing: .07em; overflow-wrap: anywhere; }
.flexa-tick-document b { color: var(--tick-color); font: .58rem var(--flexa-font-mono, "Space Mono", monospace); letter-spacing: .08em; }
.flexa-tick-consequence { padding: .8rem .9rem; border-left: 3px solid var(--tick-color); background: color-mix(in srgb, var(--tick-color) 9%, transparent); color: var(--muted); font-size: .78rem; line-height: 1.55; }
.flexa-tick-action { width: 100%; text-align: center; text-decoration: none; }
.flexa-tick-compact {
    --tick-color: #ff3b2f;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .75rem;
    align-items: center;
    width: 100%;
    padding: .7rem .85rem;
    border: 1px solid var(--tick-color);
    border-radius: 6px;
    color: inherit;
    background: var(--paper, #17170f);
    text-decoration: none;
}
.flexa-tick-compact:hover { background: #ffffff09; }
.flexa-tick-compact span, .flexa-tick-compact strong, .flexa-tick-compact small { display: block; min-width: 0; }
.flexa-tick-compact small { margin-top: .15rem; color: var(--muted); font: .57rem var(--flexa-font-mono, "Space Mono", monospace); letter-spacing: .06em; }
.flexa-tick-compact b { color: var(--tick-color); font: 700 .85rem var(--flexa-font-mono, "Space Mono", monospace); }

@media (max-width: 520px) {
    .flexa-tick-hero { grid-template-columns: 1fr; justify-items: center; text-align: center; }
    .flexa-tick-document { grid-template-columns: auto minmax(0, 1fr); }
    .flexa-tick-document b { grid-column: 2; }
}

@media (max-width: 620px) {
    .table-wrap,
    .user-table {
        margin-inline: 0;
        border-radius: 5px;
    }

    .table-wrap :is(th, td),
    .user-row {
        padding: .75rem .8rem;
    }

    .settlement-row {
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .settlement-row button {
        width: 100%;
        grid-column: 1 / -1;
        justify-self: stretch;
    }
}
/* Live member discovery and tenant-scoped door access */
.discover-screen{max-width:860px;margin:0 auto}.discover-kicker,.discover-hero,.discover-gym,.discover-note{display:flex;align-items:center;justify-content:space-between;gap:1rem}.discover-kicker{padding-bottom:1rem;border-bottom:1px solid var(--line,#d8d8d0);font-size:.72rem;font-weight:800;letter-spacing:.12em}.gps-state{color:#777}.gps-state.on{color:#16834a}.discover-hero{padding:2.4rem 0 1.5rem;align-items:flex-end}.discover-hero h1{font-size:clamp(3.4rem,10vw,7rem);line-height:.8;letter-spacing:-.07em;margin:0}.discover-hero h1 em{font-family:Georgia,serif;font-weight:400}.discover-balance{text-align:right}.discover-balance small{display:block;font-weight:800;letter-spacing:.14em}.discover-balance strong{font-size:clamp(2.5rem,7vw,5rem);line-height:1}.discover-price-list{border-top:2px solid currentColor}.discover-gym{padding:1rem 0;border-bottom:1px solid var(--line,#d8d8d0)}.gym-monogram{width:3.25rem;height:3.25rem;border-radius:50%;display:grid;place-items:center;background:#111;color:#fff;font-weight:900}.gym-copy{flex:1;display:grid}.gym-copy strong{font-size:1.05rem}.gym-copy small{font-size:.7rem;font-weight:800;letter-spacing:.08em}.gym-rate{min-width:5.5rem;min-height:3.25rem;border:0;background:transparent;text-align:right}.gym-rate span{font-size:.62rem;font-weight:800;margin-right:.25rem}.gym-rate b{font-family:Georgia,serif;font-style:italic;font-size:1.8rem}.gym-rate:not(:disabled){cursor:pointer}.gym-rate:not(:disabled):hover{background:#ffe500}.access-code-card{margin:1.5rem 0;padding:1.5rem;background:#111;color:#fff;display:grid;text-align:center}.access-code-card strong{font-size:clamp(3rem,10vw,6rem);letter-spacing:.16em}.discover-note{margin-top:2rem;padding-top:1rem;border-top:2px solid currentColor;align-items:flex-start}.discover-note span{max-width:34rem}.discover-status{padding:1rem 0;display:flex;align-items:center;gap:.75rem}
.access-config-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:1.5rem 0}.provisioning-secret{display:grid;gap:.4rem;margin-top:1rem;padding:1rem;background:#111;color:#fff;overflow-wrap:anywhere}.provisioning-secret code{color:#ffe500}.table-panel td small{display:block}.status-pill.pending{background:#fff0c2;color:#6d4c00}@media(max-width:760px){.discover-hero{align-items:flex-start}.discover-balance{margin-top:.5rem}.discover-gym{gap:.65rem}.gym-monogram{width:2.6rem;height:2.6rem}.discover-note,.access-config-grid{display:grid;grid-template-columns:1fr}.access-code-card strong{letter-spacing:.08em}}
.wallet-screen{display:grid;gap:1.5rem}.wallet-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;padding-bottom:1.5rem;border-bottom:2px solid currentColor}.wallet-page-heading h1{margin:.35rem 0 0;font-size:clamp(2.5rem,7vw,5.75rem);line-height:.9;letter-spacing:-.06em}.wallet-page-heading h1 span{display:block;font:800 .72rem var(--flexa-font-mono,"Space Mono",monospace);letter-spacing:.15em}.wallet-page-heading h1 em{font-family:Georgia,serif;font-weight:400}.wallet-context-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:1rem}.wallet-reference-card,.wallet-balance-card{padding:clamp(1.25rem,3vw,2rem);border:1px solid var(--line,#d8d8d0)}.wallet-reference-card{display:grid;gap:.35rem;background:#111;color:#fff}.wallet-reference-card>span,.wallet-balance-card span{font:800 .65rem var(--flexa-font-mono,"Space Mono",monospace);letter-spacing:.13em}.wallet-reference-card strong{color:#ffe500;font-size:clamp(1.8rem,4vw,3.2rem);letter-spacing:.08em}.wallet-reference-card small{color:#c8c8c2}.wallet-balance-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.wallet-balance-card div{display:grid;align-content:center;gap:.4rem}.wallet-balance-card div+div{padding-left:1rem;border-left:1px solid var(--line,#d8d8d0)}.wallet-balance-card strong{font-size:clamp(1.2rem,3vw,2rem)}.wallet-ledger-copy{max-width:45rem;margin:0;color:var(--muted,#686862)}.wallet-ledger-panel{margin:0}.wallet-ledger-panel .panel-heading h2{margin:.15rem 0 0}.wallet-entry b.credit{color:#16834a}.wallet-entry b.debit{color:#b22626}.wallet-empty{min-height:12rem;display:grid;place-items:center;text-align:center;align-content:center;gap:.35rem}.wallet-empty svg{width:2rem;height:2rem}@media(max-width:760px){.wallet-page-heading{align-items:flex-start;display:grid}.wallet-context-grid,.wallet-balance-card{grid-template-columns:1fr}.wallet-balance-card div+div{padding:1rem 0 0;border-left:0;border-top:1px solid var(--line,#d8d8d0)}.wallet-page-heading .action-link{width:100%;justify-content:center}}
.topup-screen{display:grid;gap:1.5rem}.topup-page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;padding-bottom:1.5rem;border-bottom:2px solid currentColor}.topup-page-heading h1{max-width:14ch;margin:.35rem 0;font-size:clamp(2.5rem,6vw,5rem);line-height:.92;letter-spacing:-.055em}.topup-page-heading p{margin:0;color:var(--muted,#686862)}.topup-balance{min-width:13rem;padding:1rem 1.25rem;background:#111;color:#fff;text-align:right}.topup-balance span,.topup-reference span{display:block;font:800 .65rem var(--flexa-font-mono,"Space Mono",monospace);letter-spacing:.13em}.topup-balance strong{font-size:1.35rem}.topup-screen-options{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.topup-screen-options button{min-height:7.5rem;padding:1rem;border:1px solid var(--line,#d8d8d0);background:transparent;text-align:left;display:grid;align-content:space-between}.topup-screen-options button strong{font-size:clamp(1.4rem,3vw,2.2rem)}.topup-screen-options button small{font-weight:800;letter-spacing:.1em}.topup-screen-options button.selected{border:3px solid #111;background:#ffe500}.topup-custom-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(15rem,.7fr);gap:1rem;align-items:end}.topup-custom{display:grid;gap:.45rem;font-weight:800}.money-input{display:flex;align-items:center;border:1px solid var(--line,#d8d8d0);background:#fff}.money-input b{padding-left:1rem}.money-input input{width:100%;border:0!important}.topup-reference{padding:1rem 1.25rem;border:1px solid var(--line,#d8d8d0)}.topup-reference strong{display:block;margin-top:.35rem;font-size:1.25rem;letter-spacing:.07em}.topup-submit{width:100%;justify-content:center;min-height:3.5rem}.topup-screen>.panel{margin:0}@media(max-width:760px){.topup-page-heading{display:grid;align-items:start}.topup-balance{width:100%;text-align:left}.topup-screen-options{grid-template-columns:repeat(2,minmax(0,1fr))}.topup-custom-row{grid-template-columns:1fr}}
.refer-screen{display:grid;gap:1.5rem}.refer-heading{padding-bottom:1.5rem;border-bottom:2px solid currentColor}.refer-heading h1{max-width:14ch;margin:.35rem 0;font-size:clamp(2.8rem,7vw,5.8rem);line-height:.88;letter-spacing:-.065em}.refer-heading h1 em{font-family:Georgia,serif;font-weight:400}.refer-heading p{max-width:48rem;margin:1rem 0 0;color:var(--muted,#686862)}.referral-code-card{margin:0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.25rem;padding:clamp(1.25rem,3vw,2rem);background:#111;color:#fff}.referral-code-label{display:grid;gap:.45rem}.referral-code-label .flexa-icon{width:2.4rem;height:2.4rem;color:#ffe500}.referral-code-label small{font-weight:800;letter-spacing:.12em}.referral-code-card>strong{color:#ffe500;font-size:clamp(2rem,6vw,4.5rem);letter-spacing:.1em}.referral-code-card .primary{white-space:nowrap}.referral-share-status{grid-column:1/-1;color:#c8c8c2}.referral-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line,#d8d8d0)}.referral-metrics article{min-height:10rem;padding:1.25rem;display:grid;align-content:space-between;gap:.5rem}.referral-metrics article+article{border-left:1px solid var(--line,#d8d8d0)}.referral-metrics small{font-weight:800;letter-spacing:.12em}.referral-metrics strong{font-size:clamp(2.2rem,5vw,4rem)}.referral-metrics strong i{font:800 .65rem var(--flexa-font-mono,"Space Mono",monospace);font-style:normal}.referral-metrics span{color:var(--muted,#686862);font-size:.8rem}.referral-metrics .earned{background:#ffe500}.referral-metrics .earned span{color:#111}.referral-rule{display:flex;justify-content:space-between;gap:1.5rem;padding-top:1rem;border-top:1px solid var(--line,#d8d8d0)}.referral-rule span{max-width:42rem;color:var(--muted,#686862)}@media(max-width:760px){.referral-code-card{grid-template-columns:1fr}.referral-code-card .primary{width:100%;justify-content:center}.referral-metrics{grid-template-columns:1fr}.referral-metrics article+article{border-left:0;border-top:1px solid var(--line,#d8d8d0)}.referral-rule{display:grid}}
.member-access-screen{display:grid;gap:1.5rem}.access-code-heading{padding-bottom:1.5rem;border-bottom:2px solid currentColor}.access-code-heading h1{max-width:14ch;margin:.35rem 0;font-size:clamp(2.8rem,7vw,5.5rem);line-height:.9;letter-spacing:-.06em}.access-code-heading p{margin:0;color:var(--muted,#686862)}.active-access-card{padding:clamp(1.25rem,4vw,2.5rem);background:#111;color:#fff}.active-access-meta,.active-access-footer{display:flex;justify-content:space-between;gap:1rem;font:800 .68rem var(--flexa-font-mono,"Space Mono",monospace);letter-spacing:.1em}.active-access-meta strong{color:#ffe500;font-size:1.4rem}.active-access-code{text-align:center;padding:clamp(2rem,7vw,5rem) 0;font-size:clamp(3.5rem,12vw,8rem);line-height:.8;font-weight:900;letter-spacing:.16em}.active-access-footer{color:#bbb}.access-countdown{height:.35rem;margin-top:1.5rem;background:#3b3b37}.access-countdown i{display:block;height:100%;background:#ffe500;transition:width 1s linear}.access-security-note{display:flex;align-items:center;gap:.75rem;color:var(--muted,#686862)}.access-security-note .flexa-icon{width:1.5rem;height:1.5rem}.access-empty-state{min-height:20rem;padding:clamp(1.5rem,5vw,3rem);border:1px solid var(--line,#d8d8d0);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.5rem}.access-empty-state>.flexa-icon{width:3.5rem;height:3.5rem}.access-empty-state h2{margin:.25rem 0;font-size:clamp(2rem,5vw,4rem);letter-spacing:-.05em}.access-empty-state p{max-width:42rem;margin:.5rem 0 0;color:var(--muted,#686862)}@media(max-width:760px){.access-empty-state{grid-template-columns:1fr}.access-empty-state .action-link{width:100%;justify-content:center}.active-access-code{letter-spacing:.08em}.active-access-footer{display:grid}}
@media(max-width:1000px){.campaign-upload-panel{grid-template-columns:1fr 1fr}.campaign-upload-panel>div{grid-column:1/-1}}
@media(max-width:700px){.campaign-upload-panel{grid-template-columns:1fr}.campaign-upload-panel>div{grid-column:auto}.campaign-upload-panel button{width:100%}.campaign-thumbnail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.campaign-thumbnail-meta{padding:.65rem}.campaign-thumbnail-meta .text-action{text-align:left}.mobile-push-console{padding:.8rem}.mobile-push-publish{align-items:stretch;flex-direction:column}.mobile-push-publish>*{width:100%}.campaign-media-modal{padding:0}.campaign-media-modal-card{width:100%;max-height:100dvh;min-height:100dvh;border-radius:0}.campaign-media-modal-card footer{align-items:flex-start;flex-direction:column}}

/* Server-issued access-pass QR and canonical action icon alignment */
.access-qr-image{display:block;width:min(280px,72vw);height:auto;margin:1rem auto;padding:.75rem;background:#fff;border:2px solid #ffe500;border-radius:.5rem;image-rendering:pixelated}.wallet-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.65rem}.wallet-actions .flexa-icon,.access-empty-state .action-link .flexa-icon{width:1.15rem;height:1.15rem}.gym-rate .flexa-icon{display:inline-block;width:1rem;height:1rem;margin-right:.35rem;vertical-align:middle}.topup-screen-options button .flexa-icon{width:1.35rem;height:1.35rem}.active-access-card .access-qr-image{margin:1.5rem auto}.access-code-card .access-qr-image{margin:.75rem auto 1rem}@media(max-width:760px){.wallet-actions{display:grid;width:100%}.wallet-actions .action-link{justify-content:center}}
.payment-legal-links{display:block;color:var(--muted,#686862);line-height:1.6}.payment-legal-links a{color:inherit;font-weight:800;text-underline-offset:3px}
.legal-governed-instrument{position:relative}.legal-governed-instrument .agreement-published-content,.agreement-document .agreement-published-content{display:block;max-width:100%;margin:1rem 0;padding:1rem;overflow:auto;border:1px solid var(--line,#d8d8d0);background:var(--paper,#fff);color:inherit;font:inherit;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
