/* Shared member surfaces: account entry, invitations and the training portal. */
:root { background: #101511; color-scheme: dark; }
:is(body.member-entry, body.client-portal.studio-agenda-member) {
  --paper: #101511; --card: #19201b; --ink: #f2f5ee; --line: #344036;
  --forest: #d5ed83; --forest-deep: #e2f5a7; --citron: #d5ed83;
  --bg: #101511; --surface: #19201b; --panel: #19201b; --panel-2: #222c24;
  --input-bg: #121914; --surface-hover: #263329;
  --accent: #d5ed83; --accent-rgb: 213,237,131; --brand-accent: #d5ed83;
  --accent-2: #d5ed83; --accent-soft: #2b3821; --accent-text: #d5ed83;
  --primary-bg: #d5ed83; --primary-text: #18200e; --primary-hover: #e2f5a7;
  --text: #f2f5ee; --display-text: #f2f5ee; --muted: #acb8ad; --muted-2: #acb8ad;
  --border: #344036; --border-light: #29352c; --control-border: #687b6b;
  --focus: #d5ed83; --danger: #ffaca5; --success: #a8e6b0; --warning: #f2d28b;
  --portal-bg: #101511; --portal-surface: #19201b; --portal-text: #f2f5ee;
  --portal-muted: #acb8ad; --portal-line: #344036; --portal-field: #121914;
  --portal-control-line: #687b6b; --portal-lime: #d5ed83; --portal-danger: #ffaca5;
  color-scheme: dark; background: var(--paper); color: var(--ink); min-height: 100dvh;
}
body.member-entry .page-shell { min-height: 100dvh; }
body.member-entry :is(.auth-panel, .empty-state, .gym-card, .settings-section, .signout-row, .gym-options-popover, .guest-language-panel) {
  background: var(--card); border-color: var(--line); box-shadow: none;
}
body.member-entry :is(.language-switch, .gym-mark, .email-share-row, .web-gym-roles > a, .web-gym-roles > button, .guest-language-toggle) {
  background: var(--panel-2); color: var(--ink); border-color: var(--line);
}
body.member-entry :is(.eyebrow, .empty-mark) { color: var(--citron); }
body.member-entry .empty-mark { background: var(--accent-soft); }
body.member-entry :is(.form-stack label, .email-value, .code-email-row span, .identity-line) { color: var(--muted); }
body.member-entry :is(.form-stack input, .web-gym-entry input) {
  background: var(--input-bg); color: var(--ink); border-color: var(--control-border); font-size: 16px;
}
body.member-entry :is(.outline-button, .back-button) { background: transparent; color: var(--ink); border-color: var(--control-border); }
body.member-entry .primary-button { color: var(--primary-text); background: var(--primary-bg); border-color: var(--primary-bg); box-shadow: none; }
body.member-entry .verified-chip { color: var(--success); background: #203629; border-color: #3c5a44; }
body.member-entry .verified-chip { margin-top: 0; }
body.member-entry :is(.site-footer a, .confirmation, .count-label, .hidden-gyms-panel h2, .gym-options > summary) { color: var(--muted); }
body.member-entry .hidden-gyms-panel .gym-card { background: var(--panel-2); }
body.member-entry .delete-section { background: #291d1c; border-color: #77514b; }
body.member-entry :is(.delete-section summary, .danger-button) { color: var(--danger); }
body.member-entry .danger-button { background: #35201e; border-color: #77514b; }
body.member-entry .error { color: var(--danger); background: #35201e; border-color: #77514b; }
body.member-entry :is(.alternate-login, .code-email-row) { border-color: var(--line); }
body.member-entry .web-gym-roles > .is-selected { background: var(--accent-soft); border-color: var(--citron); }
body.member-entry .entry-view { min-height: 0; padding: 36px 0; }
body.member-entry .account-view { padding-top: 28px; }
body.member-entry .section-heading { align-items: flex-start; flex-wrap: wrap; gap: 12px; }
body.member-entry .section-heading h1 { font-size: clamp(28px, 6vw, 38px); line-height: 1.12; }
body.member-entry .site-footer { padding-bottom: max(20px, env(safe-area-inset-bottom)); }
body.client-portal.studio-agenda-member .client-invite-card { margin-top: 24px; padding: 24px; box-shadow: none; }
body.client-portal.studio-agenda-member .client-invite-card h1 { font-size: 28px; line-height: 1.15; }
body.client-portal.studio-agenda-member .client-invite-card .client-guest-nav { display: flex; flex-wrap: wrap; gap: 8px; }
body.client-portal.studio-agenda-member .client-guest-nav .btn { width: auto; flex: 1 1 180px; font-size: 14px; }
:is(body.member-entry, body.client-portal) :focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
:is(body.member-entry, body.client-portal) :is(button, summary, a) { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
/* Native shell owns the app identity and utilities; page controls remain accessible. */
html[data-fvo-native] body.member-entry .brand,
html[data-fvo-native] body.client-portal .client-platform-brand { display: none; }
html[data-fvo-native] body.member-entry .site-header { justify-content: flex-end; min-height: 48px; }
html[data-fvo-native] body.member-entry .site-footer { display: none; }
@media (max-width: 600px) {
  body.member-entry .page-shell { padding: 12px 20px max(20px, env(safe-area-inset-bottom)); }
  body.member-entry .entry-view { padding: 24px 0; gap: 20px; }
  body.member-entry .entry-copy { padding-bottom: 0; }
  body.member-entry h1 { font-size: 32px; line-height: 1.12; }
  body.member-entry .auth-panel { padding: 20px; }
  body.member-entry .account-view { padding: 24px 0; }
  body.member-entry .empty-state { margin-top: 24px; padding: 20px; }
  body.member-entry .email-share-row { flex-wrap: wrap; padding: 12px; gap: 4px; }
  body.member-entry .email-value { flex-basis: 100%; padding-top: 0; font-size: 14px; }
  body.member-entry .email-share-row .text-button { margin-left: auto; min-height: 44px; }
  body.client-portal.studio-agenda-member .client-invite-card { padding: 20px; margin-top: 16px; }
}
@media (hover: hover) and (pointer: fine) {
  body.member-entry :is(.quiet-button, .text-button, .icon-button, .outline-button, .back-button):hover { background: var(--panel-2); color: var(--ink); }
}
