/* ===== Base Typography ===== */
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  line-height: 1.7;
  color: #2c3e50;
}

/* ===== Headings ===== */
h1, h2, h3, h4, h5, h6 {
  font-weight: 600;
  color: #1a1a2e;
  margin-top: 1.5em;
  margin-bottom: 0.5em;
}

h1 { font-size: 2em; border-bottom: 2px solid #e8f4fd; padding-bottom: 0.3em; }
h2 { font-size: 1.5em; border-bottom: 1px solid #f0f0f0; padding-bottom: 0.2em; }
h3 { font-size: 1.25em; }

/* ===== Code Blocks ===== */
pre {
  background: #f8f9fa;
  border-radius: 6px;
  border: 1px solid #e9ecef;
  padding: 1em;
  overflow-x: auto;
}

code {
  font-family: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, monospace;
  font-size: 0.9em;
}

/* Inline code */
:not(pre) > code {
  background: #f1f3f5;
  padding: 0.15em 0.35em;
  border-radius: 3px;
  color: #c7254e;
}

/* ===== Blockquotes ===== */
blockquote {
  border-left: 4px solid #3498db;
  background: #f8fbff;
  padding: 1em 1.5em;
  margin: 1em 0;
  color: #555;
}

/* ===== Tables ===== */
table {
  width: 100%;
  border-collapse: collapse;
  margin: 1em 0;
}

th, td {
  border: 1px solid #dee2e6;
  padding: 0.6em 0.8em;
  text-align: left;
}

th {
  background: #f8f9fa;
  font-weight: 600;
}

tr:nth-child(even) {
  background: #fcfcfd;
}

/* ===== Mermaid ===== */
:root {
  --mermaid-bg-color: #ffffff;
  --mermaid-node-bg-color: #e8f4fd;
  --mermaid-node-fg-color: #2980b9;
  --mermaid-edge-color: #34495e;
  --mermaid-label-bg-color: #ecf0f1;
  --mermaid-label-fg-color: #2c3e50;
  --mermaid-fg-color: #2c3e50;
}

/* ===== Callouts ===== */
.callout {
  border-radius: 8px;
  margin: 1em 0;
}

.callout-tip {
  background: #e8f8f5;
  border-left: 4px solid #1abc9c;
}

.callout-note {
  background: #ebf5fb;
  border-left: 4px solid #3498db;
}

.callout-warning {
  background: #fef9e7;
  border-left: 4px solid #f39c12;
}

/* ===== Links ===== */
a {
  color: #2980b9;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/* ===== Book Layout ===== */
.book .book-body .page-wrapper .page-inner {
  max-width: 900px;
}

/* Chapter title */
.chapter .title {
  font-size: 2.2em;
}
