/* Design system tokens */
:root {
  --color-bg: #f8f9fa;
  --color-surface: #ffffff;
  --color-surface-2: #f1f3f5;
  --color-border: #dee2e6;
  --color-text: #212529;
  --color-text-muted: #6c757d;
  --color-accent: #4f46e5;
  --color-accent-hover: #4338ca;
  --color-accent-fg: #ffffff;
  --color-success: #198754;
  --radius: 6px;
  --radius-lg: 12px;
  --shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
  --shadow-lg: 0 10px 25px rgba(0,0,0,.12);
  --transition: 150ms ease;
  --font-mono: 'Cascadia Code', 'Fira Code', 'Consolas', monospace;
}

[data-theme="dark"] {
  --color-bg: #0d1117;
  --color-surface: #161b22;
  --color-surface-2: #21262d;
  --color-border: #30363d;
  --color-text: #e6edf3;
  --color-text-muted: #8b949e;
  --color-accent: #7c6ff7;
  --color-accent-hover: #9d95f8;
  --color-accent-fg: #ffffff;
  --shadow: 0 1px 3px rgba(0,0,0,.3);
  --shadow-lg: 0 10px 25px rgba(0,0,0,.4);
}

/* Reset */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  font-family: system-ui, -apple-system, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  color: var(--color-text);
  background: var(--color-bg);
}

/* Utilities */
.visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.flex { display: flex; }
.grid { display: grid; }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--color-border); border-radius: 3px; }

/* Markdown preview typography */
.md-preview {
  font-size: 15px;
  line-height: 1.7;
  color: var(--color-text);
}
.md-preview h1,
.md-preview h2,
.md-preview h3,
.md-preview h4,
.md-preview h5,
.md-preview h6 {
  margin: 1.25em 0 .5em;
  line-height: 1.3;
  font-weight: 600;
}
.md-preview h1 { font-size: 2em; border-bottom: 1px solid var(--color-border); padding-bottom: .3em; }
.md-preview h2 { font-size: 1.5em; border-bottom: 1px solid var(--color-border); padding-bottom: .2em; }
.md-preview h3 { font-size: 1.25em; }
.md-preview p { margin-bottom: 1em; }
.md-preview a { color: var(--color-accent); text-decoration: underline; }
.md-preview ul, .md-preview ol { margin: .75em 0 .75em 1.5em; }
.md-preview li { margin-bottom: .25em; }
.md-preview blockquote {
  margin: 1em 0;
  padding: .5em 1em;
  border-left: 4px solid var(--color-accent);
  background: var(--color-surface-2);
  color: var(--color-text-muted);
  border-radius: 0 var(--radius) var(--radius) 0;
}
.md-preview code {
  font-family: var(--font-mono);
  font-size: .875em;
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: 3px;
  padding: .1em .35em;
}
.md-preview pre {
  margin: 1em 0;
  padding: 1em 1.25em;
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  overflow-x: auto;
}
.md-preview pre code {
  background: none;
  border: none;
  padding: 0;
  font-size: .875em;
  line-height: 1.6;
}
.md-preview table {
  width: 100%;
  border-collapse: collapse;
  margin: 1em 0;
}
.md-preview th, .md-preview td {
  border: 1px solid var(--color-border);
  padding: .5em .75em;
  text-align: left;
}
.md-preview th { background: var(--color-surface-2); font-weight: 600; }
.md-preview hr {
  border: none;
  border-top: 2px solid var(--color-border);
  margin: 1.5em 0;
}
.md-preview img { max-width: 100%; border-radius: var(--radius); }
