/* Base: design tokens (brand colours, §11.1) + resets + typography. */
:root {
  --c-nav: #1A2B4C;
  --c-on-nav: #FFFFFF;
  --c-buy: #FF6B35;
  --c-sell: #2EC4B6;
  --c-bg: #F8F9FA;
  --c-surface: #FFFFFF;
  --c-text: #212529;
  --c-text-2: #6C757D;
  --c-border: #DEE2E6;
  --c-disabled: #ADB5BD;
  --c-muted-bg: #F1F3F5;
  --c-success: #2E7D32;
  --c-warning: #ED6C02;
  --c-error: #D32F2F;
  --c-info: #1565C0;
  --c-success-bg: #E8F5E9;
  --c-warning-bg: #FFF3E0;
  --c-error-bg: #FDECEA;
  --c-info-bg: #E3F2FD;
  --c-primary: var(--c-buy);
  --c-on-primary: #FFFFFF;
  --c-accent: var(--c-sell);
  --c-overlay: rgba(26, 43, 76, 0.45);
  --c-highlight: #FFF8E1;

  --sp-xxs: 2px; --sp-xs: 4px; --sp-sm: 8px; --sp-md: 12px; --sp-lg: 16px; --sp-xl: 24px; --sp-xxl: 32px;
  --r-sm: 6px; --r-md: 12px; --r-lg: 16px; --r-pill: 999px;
  --fs-xs: 11px; --fs-sm: 13px; --fs-md: 15px; --fs-lg: 17px; --fs-xl: 20px; --fs-xxl: 24px;
  --font: "Noto Sans", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  --font-mono: ui-monospace, "Cascadia Mono", Consolas, "Courier New", monospace;
  --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.08);
  --shadow-modal: 0 10px 40px rgba(0, 0, 0, 0.25);
  --sidebar-w: 232px;
  --topbar-h: 56px;
  --touch-min: 36px;
}

*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font);
  font-size: var(--fs-md);
  line-height: 1.45;
  color: var(--c-text);
  background: var(--c-bg);
}
h1 { font-size: var(--fs-xxl); margin: 0; }
h2 { font-size: var(--fs-lg); margin: 0 0 var(--sp-md); }
h3 { font-size: var(--fs-md); margin: var(--sp-md) 0 var(--sp-sm); }
p { margin: 0 0 var(--sp-md); }
a { color: var(--c-nav); }
code, pre, textarea.mono { font-family: var(--font-mono); font-size: var(--fs-sm); }
.muted { color: var(--c-text-2); }
.small { font-size: var(--fs-sm); }
.nowrap { white-space: nowrap; }
.hidden { display: none !important; }
.right { text-align: right; }
