/* Coach Hub CGP: one palette, semantic roles, one theme switch. */
:root {
  color-scheme: dark;
  --ch-bg: #07110f;
  --ch-surface: #0d1b18;
  --ch-surface-raised: #142521;
  --ch-border: #263a34;
  --ch-green: #25a66a;
  --ch-green-light: #59c58b;
  --ch-green-dark: #075b42;
  --ch-text: #f4f7f5;
  --ch-text-muted: #aab8b1;
  --ch-light-bg: #f5f7f4;
  --ch-light-surface: #ffffff;
  --ch-light-text: #17231f;
  --ch-light-muted: #62716a;
  --ch-light-border: #dce4de;
  --ch-neutral: #718078;
  --ch-on-primary: #07110f;
  --ch-link: #59c58b;
  --ch-control-border: #718078;
  --ch-selected: #153c2d;
  --ch-focus: #59c58b;
  --ch-success: #74d5a3;
  --ch-success-bg: #123b2c;
  --ch-warning: #f4cf83;
  --ch-warning-bg: #382d19;
  --ch-danger: #ffa7a0;
  --ch-danger-bg: #3d2525;
  --ch-info: #a7cff7;
  --ch-info-bg: #1b3042;
  --ch-overlay: #000000aa;
  --ch-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ch-space-1: 4px;
  --ch-space-2: 8px;
  --ch-space-3: 12px;
  --ch-space-4: 16px;
  --ch-space-5: 20px;
  --ch-space-6: 24px;
  --ch-space-8: 32px;
  --ch-space-10: 40px;
  --ch-space-12: 48px;
  --ch-radius-control: 9px;
  --ch-radius-card: 13px;
}

[data-theme="light"] {
  color-scheme: light;
  --ch-bg: var(--ch-light-bg);
  --ch-surface: var(--ch-light-surface);
  --ch-surface-raised: var(--ch-light-surface);
  --ch-border: var(--ch-light-border);
  --ch-text: var(--ch-light-text);
  --ch-text-muted: var(--ch-light-muted);
  --ch-link: #075b42;
  --ch-control-border: #7c8c82;
  --ch-selected: #e3f2e8;
  --ch-focus: #075b42;
  --ch-success: #075b42;
  --ch-success-bg: #e5f4ea;
  --ch-warning: #715000;
  --ch-warning-bg: #fff3d5;
  --ch-danger: #a62c30;
  --ch-danger-bg: #fff0ef;
  --ch-info: #20527e;
  --ch-info-bg: #eaf3ff;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-padding-top: 24px; }
body { margin: 0; background: var(--ch-bg); color: var(--ch-text); font-family: var(--ch-font); font-size: 16px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; }
a { color: var(--ch-link); text-underline-offset: 4px; }
img, svg { max-width: 100%; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: clamp(26px, 2.5vw, 32px); line-height: 1.2; letter-spacing: -.8px; font-weight: 750; margin-bottom: 12px; }
h2 { font-size: 20px; line-height: 1.35; letter-spacing: -.35px; font-weight: 650; margin-bottom: 12px; }
h3 { font-size: 17px; line-height: 1.4; font-weight: 600; }
p { margin-bottom: 16px; }
strong { font-weight: 650; }
:focus-visible { outline: 3px solid var(--ch-focus); outline-offset: 4px; }
[hidden] { display: none !important; }
::selection { color: var(--ch-text); background: var(--ch-selected); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
