/* SIFT design tokens — the only theme.
   Default: green-terminal dark. [data-theme="light"] swaps to warm-paper light.
   Legacy variable aliases (--bg-primary, --primary-color, etc.) are preserved
   so existing Bootstrap overlays in base.css keep working. */

:root, [data-theme="dark"] {
  /* Typography */
  --font-family-sans: 'IBM Plex Mono', ui-monospace, Menlo, monospace;
  --font-family-display: 'Newsreader', 'Iowan Old Style', Georgia, serif;
  --font-family-mono: 'IBM Plex Mono', ui-monospace, Menlo, monospace;
  --mono: var(--font-family-mono);
  --serif: var(--font-family-display);
  --font-size-xs: 0.72rem;
  --font-size-sm: 0.82rem;
  --font-size-base: 0.875rem;
  --font-size-lg: 1.05rem;
  --font-size-xl: 1.2rem;
  --font-size-2xl: 1.5rem;
  --font-size-3xl: 2rem;

  --leading-tight: 1.25;
  --leading-normal: 1.55;
  --leading-relaxed: 1.7;

  /* SIFT palette — dark green terminal */
  --paper:   #0d1117;
  --paper-2: #11171f;
  --paper-3: #1a2230;
  --rule:        #1f2a37;
  --rule-soft:   #1a2230;
  --ink:   #e8edf2;
  --ink-2: #c9d1d9;
  --ink-3: #8b949e;
  --ink-4: #5a6470;
  --accent:      #22c55e;
  --accent-soft: rgba(34,197,94,.12);
  --accent-deep: #16a34a;
  --ok:   #22c55e;
  --warn: #eab308;
  --err:  #ef4444;
  --topbar-bg:   #050709;
  --topbar-fg:   #e8edf2;
  --topbar-rule: #1f2a37;
  --topbar-dim:  #5a6470;

  /* Aliases for base.css / Bootstrap overrides */
  --color-bg:        var(--paper);
  --color-surface:   var(--paper-2);
  --color-surface-2: var(--paper-3);
  --color-text:           var(--ink);
  --color-text-secondary: var(--ink-2);
  --color-text-muted:     var(--ink-3);
  --color-accent:       var(--accent);
  --color-accent-hover: var(--accent-deep);
  --color-accent-light: var(--accent-soft);
  --color-border:       var(--rule);
  --color-border-light: var(--rule-soft);
  --masthead-bg:   var(--topbar-bg);
  --masthead-rule: var(--accent);

  --bg-primary:   var(--paper);
  --bg-secondary: var(--paper-2);
  --bg-tertiary:  var(--paper-3);
  --text-primary:   var(--ink);
  --text-secondary: var(--ink-2);
  --text-muted:     var(--ink-3);
  --border-color: var(--rule);
  --border-light: var(--rule-soft);

  --primary-color: var(--accent);
  --primary-hover: var(--accent-deep);
  --primary-light: var(--accent-soft);
  --primary-dark:  var(--accent-deep);

  --secondary-color: var(--ink-3);
  --secondary-hover: var(--ink-2);
  --secondary-light: var(--paper-3);

  --success-color: var(--ok);
  --success-hover: #16a34a;
  --success-light: rgba(34,197,94,.15);
  --warning-color: var(--warn);
  --warning-hover: #ca8a04;
  --warning-light: rgba(234,179,8,.15);
  --danger-color:  var(--err);
  --danger-hover:  #dc2626;
  --danger-light:  rgba(239,68,68,.15);

  --gray-50:  var(--paper-2);
  --gray-100: var(--paper-3);
  --gray-200: var(--rule);
  --gray-300: var(--ink-4);
  --gray-400: var(--ink-3);
  --gray-500: var(--ink-3);
  --gray-600: var(--ink-2);
  --gray-700: var(--ink-2);
  --gray-800: var(--ink);
  --gray-900: var(--ink);

  /* Shadows: outline-only (no soft glow) */
  --shadow-sm: 0 0 0 1px var(--rule);
  --shadow-md: 0 0 0 1px var(--rule);
  --shadow-lg: 0 0 0 1px var(--rule);
  --shadow-xl: 0 0 0 1px var(--rule);

  /* Border radius: brutalist */
  --radius-sm: 0px;
  --radius-md: 0px;
  --radius-lg: 0px;
  --radius-xl: 0px;

  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;

  --transition-fast:   120ms ease-in-out;
  --transition-normal: 220ms ease-in-out;
  --transition-slow:   320ms ease-in-out;

  --card-bg:   var(--paper-2);
  --text-color: var(--ink);
  --code-bg:   var(--paper-3);
  --info-bg:   var(--accent-soft);
  --info-text: var(--accent);
}

/* Light variant — warm-paper newsprint */
[data-theme="light"] {
  --paper:   #f4f1ea;
  --paper-2: #ebe7dc;
  --paper-3: #e1dccd;
  --rule:        #16140f;
  --rule-soft:   #b9b2a0;
  --ink:   #16140f;
  --ink-2: #2a2620;
  --ink-3: #5a5448;
  --ink-4: #8a836f;
  --accent:      #2e7d4f;
  --accent-soft: rgba(46,125,79,.10);
  --accent-deep: #1f5a37;
  --ok:   #2e7d4f;
  --warn: #b8860b;
  --err:  #b34534;

  /* Topbar matches paper palette in light mode (no more dark slab) */
  --topbar-bg:   var(--paper-2);
  --topbar-fg:   var(--ink);
  --topbar-rule: var(--rule-soft);
  --topbar-dim:  var(--ink-3);

  --color-bg:        var(--paper);
  --color-surface:   var(--paper-2);
  --color-surface-2: var(--paper-3);
  --color-text:           var(--ink);
  --color-text-secondary: var(--ink-2);
  --color-text-muted:     var(--ink-3);
  --color-accent:       var(--accent);
  --color-accent-hover: var(--accent-deep);
  --color-accent-light: var(--accent-soft);
  --color-border:       var(--rule);
  --color-border-light: var(--rule-soft);

  --bg-primary:   var(--paper);
  --bg-secondary: var(--paper-2);
  --bg-tertiary:  var(--paper-3);
  --text-primary:   var(--ink);
  --text-secondary: var(--ink-2);
  --text-muted:     var(--ink-3);
  --border-color: var(--rule);
  --border-light: var(--rule-soft);

  --primary-color: var(--accent);
  --primary-hover: var(--accent-deep);
  --primary-light: var(--accent-soft);
  --primary-dark:  var(--accent-deep);

  --success-color: var(--ok);
  --success-light: rgba(46,125,79,.12);
  --warning-color: var(--warn);
  --warning-light: rgba(184,134,11,.12);
  --danger-color:  var(--err);
  --danger-light:  rgba(179,69,52,.12);

  --gray-50:  var(--paper-2);
  --gray-100: var(--paper-3);
  --gray-200: var(--rule-soft);
  --gray-300: var(--ink-4);
  --gray-400: var(--ink-3);
  --gray-500: var(--ink-3);
  --gray-600: var(--ink-2);
  --gray-700: var(--ink-2);
  --gray-800: var(--ink);
  --gray-900: var(--ink);

  --shadow-sm: 0 1px 0 0 var(--rule-soft);
  --shadow-md: 0 1px 0 0 var(--rule-soft);
  --shadow-lg: 0 0 0 1px var(--rule-soft);
  --shadow-xl: 0 0 0 1px var(--rule-soft);

  --card-bg:   var(--paper);
  --text-color: var(--ink);
  --code-bg:   var(--paper-3);
  --info-bg:   var(--accent-soft);
  --info-text: var(--accent);
}
