:root,
:root[data-theme="dark"] {
  --rb-bg: #14171f;
  --rb-surface: #1c2130;
  --rb-surface-2: #222838;
  --rb-border: #2a3146;
  --rb-text: #edeff5;
  --rb-muted: #aeb5ca;
  --rb-subtle: #8b92a8;
  --rb-primary: #f2b705;
  --rb-on-primary: #14171f;
  --rb-link: #8eb2ff;
  --rb-shadow: 0 18px 50px rgba(0,0,0,.22);
}

:root[data-theme="light"] {
  --rb-bg: #f6f7fb;
  --rb-surface: #ffffff;
  --rb-surface-2: #f0f2f7;
  --rb-border: #dfe3ec;
  --rb-text: #171a21;
  --rb-muted: #4f596c;
  --rb-subtle: #687287;
  --rb-primary: #f2b705;
  --rb-on-primary: #14171f;
  --rb-link: #245fc7;
  --rb-shadow: 0 18px 50px rgba(24,31,45,.10);
}

html { background: var(--rb-bg); color: var(--rb-text); }
body { background: var(--rb-bg); color: var(--rb-text); min-height: 100vh; }
a { color: var(--rb-link); }
::selection { background: rgba(242,183,5,.35); }

/* Privacy controls shared by app/legal pages. */
.contact-footer-btn,
.privacy-choice-inline {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* Shared rhythm and controls for the app, legal pages, and public pages. */
:root { --rb-space-control: 8px; --rb-space-section: 16px; --rb-card-padding: 24px; --rb-card-radius: 16px; }
.inline-link, .contact-footer-btn, .privacy-choice-inline {
  appearance: none; background: transparent; border: 0; border-radius: 0;
  padding: 0; font: inherit; line-height: inherit; cursor: pointer;
}
.inline-link { color: var(--rb-link); text-decoration: underline; text-underline-offset: 3px; }
:where(a, button, input, textarea, select):focus-visible { outline: 2px solid var(--rb-link); outline-offset: 3px; }
.v-card .v-card-text { padding: var(--rb-card-padding); }
.v-card-title, .v-card-subtitle { white-space: normal; overflow-wrap: anywhere; }
.v-messages__message { line-height: 16px; }
.v-alert__content { min-width: 0; line-height: 1.5; overflow-wrap: anywhere; }
@media (max-width: 800px) { :root { --rb-card-padding: 16px; } }
