html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

/* Background image is owned by ThemeHost (driven by the site theme's
   BackgroundUrl). app.css only provides the fallback color underneath in case
   no theme bg is set. */
body {
    background-color: transparent;
}

html {
    background-color: var(--color-bg);
}


.alert-danger {
    color: var(--color-danger);
}

.alert-success {
    color: var(--color-success);
}

.markdown-body {
    color: var(--color-text);
    line-height: var(--line-height-body);
    word-wrap: break-word;
}

.markdown-body > :first-child { margin-top: 0; }
.markdown-body > :last-child { margin-bottom: 0; }

.markdown-body h1,
.markdown-body h2,
.markdown-body h3,
.markdown-body h4,
.markdown-body h5,
.markdown-body h6 {
    margin-top: 1.25em;
    margin-bottom: 0.5em;
    font-weight: 600;
    line-height: 1.25;
}

.markdown-body h1 { font-size: 1.75em; border-bottom: 1px solid var(--color-border); padding-bottom: 0.25em; }
.markdown-body h2 { font-size: 1.4em; border-bottom: 1px solid var(--color-border); padding-bottom: 0.2em; }
.markdown-body h3 { font-size: 1.2em; }
.markdown-body h4 { font-size: 1.05em; }

.markdown-body p { margin: 0.5em 0; }

.markdown-body a { color: var(--color-accent); text-decoration: underline; }
.markdown-body a:hover { color: var(--color-accent-hi); }

.markdown-body ul,
.markdown-body ol { padding-left: 1.5em; margin: 0.5em 0; }

.markdown-body blockquote {
    margin: 0.75em 0;
    padding: 0.25em 1em;
    border-left: 3px solid var(--color-accent);
    color: var(--color-muted);
    background-color: rgba(255, 255, 255, 0.02);
}

.markdown-body code {
    padding: 0.15em 0.35em;
    border-radius: 4px;
    background-color: rgba(255, 255, 255, 0.06);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 0.9em;
}

.markdown-body pre {
    padding: 0.75em 1em;
    overflow: auto;
    border-radius: 6px;
    background-color: rgba(0, 0, 0, 0.35);
    border: 1px solid var(--color-border);
}

.markdown-body pre code {
    padding: 0;
    background: transparent;
}

.markdown-body table {
    border-collapse: collapse;
    width: 100%;
    margin: 0.75em 0;
}

.markdown-body th,
.markdown-body td {
    border: 1px solid var(--color-border);
    padding: 0.4em 0.6em;
    text-align: left;
}

.markdown-body img {
    max-width: 100%;
    height: auto;
    border-radius: 4px;
}

.markdown-body mark {
    background-color: color-mix(in srgb, var(--color-accent) 22%, transparent);
    color: inherit;
    padding: 0 0.15em;
    border-radius: 2px;
}

.markdown-body ul.contains-task-list {
    list-style: none;
    padding-left: 0.25em;
}

.markdown-body li.task-list-item {
    display: flex;
    align-items: flex-start;
    gap: 0.5em;
    margin: 0.15em 0;
}

.markdown-body li.task-list-item input[type="checkbox"] {
    margin-top: 0.35em;
    accent-color: var(--color-accent);
}

.markdown-body details {
    border: 1px solid var(--color-border);
    border-radius: 4px;
    padding: 0.5em 0.75em;
    margin: 0.75em 0;
    background-color: var(--color-surface);
}

.markdown-body details > summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--color-accent);
    list-style: none;
}

.markdown-body details > summary::-webkit-details-marker { display: none; }
.markdown-body details[open] > summary { margin-bottom: 0.5em; }

.markdown-body section.footnotes {
    margin-top: 2em;
    padding-top: 1em;
    border-top: 1px solid var(--color-border);
    font-size: 0.9em;
    color: var(--color-muted);
}

.markdown-body section.footnotes ol { padding-left: 1.25em; }

.markdown-body .markdown-alert {
    border-left: 4px solid var(--alert-color, var(--color-accent));
    background-color: color-mix(in srgb, var(--alert-color, var(--color-accent)) 8%, transparent);
    padding: 0.5em 1em;
    margin: 0.75em 0;
    border-radius: 0 4px 4px 0;
}

.markdown-body .markdown-alert > .markdown-alert-title {
    font-weight: 700;
    color: var(--alert-color, var(--color-accent));
    margin: 0 0 0.25em 0;
    text-transform: capitalize;
}

.markdown-body .markdown-alert-note      { --alert-color: #1f6feb; }
.markdown-body .markdown-alert-tip       { --alert-color: #1a7f37; }
.markdown-body .markdown-alert-important { --alert-color: #8250df; }
.markdown-body .markdown-alert-warning   { --alert-color: #bf8700; }
.markdown-body .markdown-alert-caution   { --alert-color: #cf222e; }

.markdown-body hr {
    border: 0;
    border-top: 1px solid var(--color-border);
    margin: 1.25em 0;
}