/* V23: Marketfed entrance and administration, shared with the existing app. */
.portal { min-height:100vh; display:flex; flex-direction:column; background:#f5f7f1; color:#183d2b; }
.portal > header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:30px clamp(20px,6vw,96px); border-bottom:1px solid #dce5d9; }
.marketfed-logo { width:290px; max-width:70vw; height:auto; }
.portal a { color:#256b42; text-underline-offset:4px; }
.portal a.btn.primary { color:white; }
.business-home { flex:1; display:grid; grid-template-columns:1.2fr 1fr; gap:clamp(32px,7vw,110px); align-items:center; padding:64px clamp(20px,8vw,130px); max-width:1550px; width:100%; margin:auto; }
.eyebrow { color:#58734c; font-size:.72rem; letter-spacing:.15em; font-weight:800; margin:0 0 20px; }
.intro h1 { font-size:clamp(36px,4.7vw,70px); line-height:1.07; letter-spacing:-.04em; margin:0 0 24px; }
.intro-copy { max-width:400px; color:#657364; font-size:1.15rem; line-height:1.7; }
.business-chips { display:flex; flex-wrap:wrap; gap:10px; margin-top:32px; }
.business-chips span { padding:8px 12px; border:1px solid #dce5d5; border-radius:30px; font-size:.76rem; color:#57634e; }
.business-card { background:#fff; border:1px solid #dfe6d9; border-radius:20px; padding:clamp(24px,3vw,44px); box-shadow:0 18px 45px #183d2b08; }
.business-card h1 { font-size:2rem; line-height:1.2; margin:12px 0 20px; }
.business-card h2 { font-size:1.65rem; line-height:1.2; margin:0 0 16px; }
.business-card p { line-height:1.65; }
.business-card form { margin-top:24px; }
.business-card .field { margin-bottom:18px; }
.business-card .btn.lg { width:100%; justify-content:center; margin-top:8px; }
.business-card fieldset { border:0; padding:0; margin:0; min-width:0; }
.business-card fieldset:disabled { opacity:.55; }
.business-card .platform-link { display:block; text-align:center; margin-top:28px; font-size:.85rem; }
.portal-footer { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; padding:24px clamp(20px,6vw,96px); color:#6c7868; font-size:.78rem; }
.portal-centered { flex:1; display:grid; place-items:center; padding:40px 20px; }
.portal-centered > section { width:100%; max-width:480px; }
.portal-centered > .setup-card { max-width:720px; }
.status-pill { display:inline-block; padding:6px 10px; background:#edf4e8; color:#42723c; font-size:.7rem; font-weight:700; border-radius:20px; }
.form-error { background:#fff0ef; color:#a02e28; border:1px solid #f0c5c2; padding:12px; border-radius:8px; margin:16px 0; }
.platform-main { padding:40px clamp(20px,4vw,70px); flex:1; }
.business-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr)); gap:20px; }
.business-grid .business-card { padding:24px; }
.card-title { display:flex; align-items:start; justify-content:space-between; gap:12px; }
.allowance-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.allowance-grid small { font-size:.72rem; line-height:1.5; }
.card-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:24px; padding-top:20px; border-top:1px solid #e7ebe4; }
.setup-link { margin-top:20px; }
.platform-audit { margin-top:32px; }
.audit-detail { max-width:420px; overflow-wrap:anywhere; white-space:normal; }
.creation-actions { display:flex; flex-direction:column; align-items:flex-start; gap:8px; }
.creation-balance { font-size:.8rem; color:var(--muted); line-height:1.5; }
/* Keep long labels fully visible; icons and badges must not squeeze the text. */
:root { --sidebar:260px; }
.nav { overflow-x:hidden; }
.nav a { min-height:44px; height:auto; flex-shrink:0; align-items:center; overflow:visible; gap:10px; }
.nav a > .icon { flex:0 0 20px; }
.nav a > span { flex:1; min-width:0; white-space:normal; overflow-wrap:normal; line-height:1.35; }
.nav a > .nav-badge { flex-shrink:0; }
.whoami > a { display:inline-block; margin:8px 10px 0 0; color:#cdddcf; font-size:.75rem; }
.whoami > button { margin-right:10px; }
@media(max-width:800px) { .business-home { grid-template-columns:1fr; padding:36px 20px; gap:28px; } .intro h1 { font-size:42px; } .business-chips { display:none; } .portal > header { padding:22px 20px; } .portal > header > a { font-size:.8rem; } .marketfed-logo { width:230px; } .platform-main { padding:28px 16px; } }
@media print { .portal > header, .portal-footer { display:none; } }

/* V24 subscription state remains visible while browsing or viewing history. */
.subscription-banner, .footer.subscription-expired { background:#a52222; color:#fff; padding:14px 24px; font-size:.85rem; line-height:1.6; }
.subscription-banner[hidden] { display:none; }
.subscription-summary { background:#f1f5ed; padding:16px; border-radius:10px; margin:16px 0; line-height:1.6; }
.subscription-editor .modal { display:flex; flex-direction:column; max-height:calc(100dvh - 32px); }
.subscription-editor .modal-body { overflow-y:auto; }
.subscription-editor .modal-head, .subscription-editor .modal-foot { flex-shrink:0; }
@media print { .subscription-banner { display:none; } }
