/* ── Docs/Handbuch Prose-Typografie ─────────────────────────────────────────
 * Gemeinsame Render-Styles für Markdown-Inhalte (.docs-rendered). Genutzt von:
 *   - Docs-Page (dist/templates/docs-template.html)
 *   - Dokumentenvorschau-Modal (dist/js/components/docPreview.js, mode=markdown)
 * Quelle der Klassen: docsMarkdown.js. Hier zentral, damit beide Konsumenten
 * identisch aussehen — keine Reimplementierung pro View.
 * Breite/Layout (max-width, Spalten) regelt der jeweilige Container, nicht hier. */

.docs-rendered {
    font-size: 15px;
    line-height: 1.7;
    color: var(--text-1);
}
.docs-rendered h1,
.docs-rendered h2,
.docs-rendered h3,
.docs-rendered h4,
.docs-rendered h5,
.docs-rendered h6 {
    position: relative;
    margin-top: 2em;
    margin-bottom: 0.6em;
    font-weight: 700;
    letter-spacing: -0.01em;
    scroll-margin-top: 80px;
}
.docs-rendered h1 { font-size: 26px; }
.docs-rendered h2 {
    font-size: 22px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border);
}
.docs-rendered h3 { font-size: 18px; }
.docs-rendered h4 { font-size: 15.5px; color: var(--text-2); }
.docs-rendered h5, .docs-rendered h6 { font-size: 14px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.5px; }

.docs-anchor {
    position: absolute;
    left: -22px;
    top: 0;
    color: var(--text-3);
    opacity: 0;
    text-decoration: none;
    font-weight: 400;
    transition: opacity 120ms;
    padding: 0 4px;
}
.docs-rendered h1:hover .docs-anchor,
.docs-rendered h2:hover .docs-anchor,
.docs-rendered h3:hover .docs-anchor,
.docs-rendered h4:hover .docs-anchor,
.docs-rendered h5:hover .docs-anchor,
.docs-rendered h6:hover .docs-anchor { opacity: 0.6; }
.docs-anchor:hover { opacity: 1 !important; color: var(--accent); }

.docs-rendered p { margin: 0.9em 0; }
.docs-rendered ul, .docs-rendered ol { padding-left: 26px; margin: 0.9em 0; }
.docs-rendered li { margin: 0.3em 0; }
.docs-rendered li > p { margin: 0.3em 0; }

.docs-rendered a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 120ms;
}
.docs-rendered a:hover { border-bottom-color: var(--accent); }

.docs-rendered hr {
    border: none;
    border-top: 1px solid var(--border);
    margin: 2.5em 0;
}
.docs-rendered img { max-width: 100%; height: auto; border-radius: var(--r-sm); }

/* ── Inline-Code + Code-Blocks ─────────────────────────────── */
.docs-rendered code {
    background: var(--bg-2);
    padding: 1.5px 6px;
    border-radius: var(--r-xs);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.88em;
    color: var(--text-1);
    border: 1px solid var(--border);
}
.docs-rendered pre {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    padding: 14px 16px;
    overflow-x: auto;
    font-size: 13px;
    line-height: 1.55;
    margin: 0;
}
.docs-rendered pre code {
    background: transparent;
    padding: 0;
    border: none;
    font-size: inherit;
    color: var(--text-1);
}
.docs-rendered .docs-code {
    margin: 1.2em 0;
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    overflow: hidden;
    background: var(--bg-2);
}
.docs-rendered .docs-code pre {
    border: none;
    border-radius: 0;
    margin: 0;
}
.docs-code-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 14px;
    background: var(--bg-1);
    border-bottom: 1px solid var(--border);
    font-size: 11px;
    color: var(--text-3);
}
.docs-code-lang {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

/* ── Tabellen ──────────────────────────────────────────────── */
.docs-rendered table {
    border-collapse: collapse;
    margin: 1.2em 0;
    font-size: 13.5px;
    width: 100%;
    display: block;
    overflow-x: auto;
}
.docs-rendered thead { background: var(--bg-2); }
.docs-rendered th, .docs-rendered td {
    border: 1px solid var(--border);
    padding: 8px 12px;
    text-align: left;
    vertical-align: top;
}
.docs-rendered th { font-weight: 600; color: var(--text-1); }
.docs-rendered tbody tr:nth-child(even) { background: rgba(127, 127, 127, 0.04); }

/* ── Blockquote (generisch) ────────────────────────────────── */
.docs-rendered blockquote {
    border-left: 3px solid var(--border);
    padding: 4px 16px;
    margin: 1em 0;
    color: var(--text-2);
    font-style: italic;
}
.docs-rendered blockquote p { margin: 0.5em 0; }

/* ── GFM-Alerts (NOTE/TIP/WARNING/IMPORTANT/CAUTION) ───────── */
.docs-rendered .docs-alert {
    margin: 1.4em 0;
    padding: 14px 18px;
    border-left: 4px solid var(--alert-color);
    border-radius: var(--r-sm);
    background: var(--bg-2);
}
.docs-rendered .docs-alert-title {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    font-size: 13px;
    color: var(--alert-color);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin-bottom: 4px;
}
.docs-rendered .docs-alert-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--alert-color);
    color: var(--surface);
    font-size: 13px;
    font-weight: 700;
}
.docs-rendered .docs-alert-body p:first-child { margin-top: 0.3em; }
.docs-rendered .docs-alert-body p:last-child { margin-bottom: 0.3em; }

/* ── Mermaid-Diagramme zentriert ───────────────────────────── */
.docs-rendered .docs-mermaid {
    margin: 1.4em 0;
    padding: 16px;
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--r-sm);
    overflow-x: auto;
    text-align: center;
}
.docs-rendered .docs-mermaid svg {
    max-width: 100%;
    height: auto;
    display: inline-block;
}
