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

a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred."
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* ── Wiki ───────────────────────────────────────────────────────────────── */
.wiki-layout { display: flex; gap: 1.5rem; align-items: flex-start; }
.wiki-sidebar { flex: 0 0 260px; border-right: 1px solid #e0e0e0; padding-right: 1rem; min-height: 60vh; }
.wiki-sidebar-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .5rem; }
.wiki-new { font-size: .85rem; }
.wiki-content { flex: 1 1 auto; min-width: 0; }
.wiki-content-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.wiki-actions { white-space: nowrap; }
.wiki-meta { margin-top: 2rem; color: #888; font-size: .8rem; }
.wiki-missing { color: #555; }

.wiki-tree, .wiki-tree ul { list-style: none; margin: 0; padding-left: .75rem; }
.wiki-tree { padding-left: 0; }
.wiki-node { display: flex; align-items: center; gap: .25rem; padding: .15rem .3rem; border-radius: 4px; }
.wiki-node:hover { background: #f3f3f3; }
.wiki-node-active { background: #e7f1ff; font-weight: 600; }
.wiki-node a { text-decoration: none; flex: 1 1 auto; }
.wiki-node-tools { display: none; gap: .15rem; }
.wiki-node:hover .wiki-node-tools { display: inline-flex; }
.wiki-node-tools button, .wiki-node-tools a { background: none; border: none; cursor: pointer; font-size: .8rem; padding: 0 .2rem; color: #666; text-decoration: none; }
.wiki-drop-over { outline: 2px dashed #4a90d9; outline-offset: -2px; }
.wiki-drop-root { font-size: .8rem; color: #888; padding: .25rem .3rem; margin-bottom: .35rem; border: 1px dashed #ccc; border-radius: 4px; }

.wiki-edit-head { display: flex; justify-content: space-between; align-items: center; }
.wiki-edit-fields { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1rem 0; }
.wiki-edit-fields label { display: flex; flex-direction: column; font-size: .85rem; gap: .25rem; }
.wiki-edit-panes { display: flex; gap: 1rem; align-items: stretch; }
.wiki-edit-editor { flex: 1 1 50%; display: flex; flex-direction: column; }
.wiki-edit-editor :deep(.monaco-editor), .wiki-edit-editor > div:first-child { height: 60vh; }
#wiki-editor { height: 60vh; border: 1px solid #ccc; }
.wiki-vim-status { font-family: monospace; font-size: 12px; line-height: 20px; min-height: 20px; padding: 0 8px; border: 1px solid #ccc; border-top: none; }
.wiki-vim-toggle { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; font-size: 0.9rem; user-select: none; cursor: pointer; }
.wiki-vim-toggle input { cursor: pointer; }
.mmb-avatar { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--rz-primary, #0d6efd); color: #fff; font-size: .8rem; font-weight: 600; flex: 0 0 auto; }
.wiki-edit-preview { flex: 1 1 50%; height: 60vh; overflow: auto; border: 1px solid #ccc; border-radius: 4px; padding: 1rem; }
.wiki-rendered img { max-width: 100%; }
.wiki-rendered table { border-collapse: collapse; }
.wiki-rendered table td, .wiki-rendered table th { border: 1px solid #ccc; padding: .3rem .5rem; }

/* ── Comments ───────────────────────────────────────────────────────────── */
.cmt-section { margin-top: 2.5rem; border-top: 1px solid #e0e0e0; padding-top: 1rem; }
.cmt-title { font-size: 1.1rem; }
.cmt-form { margin: .5rem 0 1rem; }
.cmt-form-top { margin-bottom: 1.5rem; }
.cmt-form-actions { margin-top: .4rem; display: flex; gap: .5rem; align-items: center; }
.cmt-anon-toggle { display: inline-flex; gap: .35rem; align-items: center; font-size: .85rem; color: #555; margin-top: .35rem; }
.cmt-signin { color: #555; }
.cmt-empty { color: #888; font-style: italic; }
.cmt { padding: .6rem 0; border-top: 1px solid #f0f0f0; }
.cmt-deleted { opacity: .65; }
.cmt-head { display: flex; gap: .5rem; align-items: baseline; flex-wrap: wrap; font-size: .85rem; }
.cmt-author { font-weight: 600; }
.cmt-badge { background: #eee; color: #666; border-radius: 3px; padding: 0 .3rem; font-size: .7rem; text-transform: uppercase; }
.cmt-time, .cmt-edited { color: #999; }
.cmt-reveal { color: #b8860b; font-size: .8rem; }
.cmt-body { margin: .3rem 0; }
.cmt-body p:last-child { margin-bottom: 0; }
.cmt-actions { display: flex; gap: .75rem; }
.cmt-link { background: none; border: none; padding: 0; color: #4a90d9; cursor: pointer; font-size: .8rem; }
.cmt-link.cmt-danger { color: #c0392b; }
.cmt-replies { margin-left: 1.5rem; border-left: 2px solid #f0f0f0; padding-left: 1rem; margin-top: .3rem; }

/* ── Blog ───────────────────────────────────────────────────────────────── */
/* (blog list/card styling now handled by Radzen components) */
.blog-post-body { margin-top: 1rem; }
.blog-summary { display: flex; flex-direction: column; font-size: .85rem; gap: .25rem; margin-bottom: 1rem; }
.blog-publish-toggle { flex-direction: row !important; align-items: center; gap: .4rem; }

/* ── Templating (Typst / XSLT) ──────────────────────────────────────────── */
.template-error { background: #fdecea; border: 1px solid #f5c6cb; color: #a12; padding: .5rem .75rem; border-radius: 4px; font-family: monospace; white-space: pre-wrap; }
.typst-doc { display: flex; flex-direction: column; gap: .5rem; }
.typst-page { background: #fff; border: 1px solid #ddd; padding: .5rem; overflow: auto; }
.typst-page svg { max-width: 100%; height: auto; }
.wiki-edit-preview-wrap { flex: 1 1 50%; display: flex; flex-direction: column; }
.wiki-render-btn { align-self: flex-start; margin-bottom: .3rem; }
.wiki-edit-preview-wrap .wiki-edit-preview { flex: 1 1 auto; }

/* ── Folksonomy (toolbar/forms/tables now Radzen; layout + row styling kept) ── */
.folk-layout { display: flex; gap: 1.5rem; align-items: flex-start; }
.folk-topics { flex: 0 0 240px; border-right: 1px solid #e0e0e0; padding-right: 1rem; }
.folk-detail { flex: 1 1 auto; min-width: 0; }
.folk-mid { font-family: monospace; font-size: .75rem; color: #999; }
.folk-superseded { color: #999; }
details summary { cursor: pointer; }
