/* OpenVibe.Wiki — small, readable, works without JavaScript. Colours follow the network theme
   variables (set by theme-loader.js) with dark defaults matching the critical canvas. */
:root {
  --wk-bg: var(--bg-primary, #0a0f1c);
  --wk-panel: var(--bg-secondary, #111a2c);
  --wk-text: var(--text-primary, #e6edf7);
  --wk-muted: var(--text-secondary, #9fb0c8);
  --wk-line: var(--border-color, rgba(255, 255, 255, .12));
  --wk-accent: var(--accent, #60a5fa);
  --wk-red: #f87171;
  --wk-ok: #34d399;
  --wk-warn: #fbbf24;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--wk-bg); color: var(--wk-text); font: 16px/1.6 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
a { color: var(--wk-accent); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--wk-accent); outline-offset: 2px; }
.wk-skip { position: absolute; left: -9999px; }
.wk-skip:focus { left: 16px; top: 8px; background: var(--wk-panel); padding: 6px 10px; z-index: 10; }
.wk-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.wk-bar { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; max-width: 1100px; margin: 0 auto; padding: 12px 16px; border-bottom: 1px solid var(--wk-line); }
.wk-brand { font-weight: 700; color: var(--wk-text); text-decoration: none; }
.wk-search { display: flex; gap: 6px; flex: 1 1 240px; }
.wk-search input { flex: 1; min-width: 0; }
.wk-account { font-size: 14px; color: var(--wk-muted); }
.wk-main { max-width: 1100px; margin: 0 auto; padding: 16px 16px 48px; overflow-wrap: anywhere; }
h1 { font-size: 1.9rem; line-height: 1.25; margin: .4em 0 .3em; }
h2 { font-size: 1.3rem; margin: 1.6em 0 .5em; border-bottom: 1px solid var(--wk-line); padding-bottom: .2em; }
.wk-muted { color: var(--wk-muted); }
.wk-tag { display: inline-block; font-size: 12px; padding: 0 6px; border: 1px solid var(--wk-line); border-radius: 10px; color: var(--wk-muted); }
.wk-notice { padding: 8px 12px; border-left: 4px solid var(--wk-accent); background: var(--wk-panel); }
.wk-notice.wk-warn { border-color: var(--wk-warn); }
.wk-notice.wk-error { border-color: var(--wk-red); }
.wk-notice.wk-ok { border-color: var(--wk-ok); }
.wk-notice.wk-ai { border-color: #a78bfa; }
.wk-button, button { display: inline-block; background: var(--wk-accent); color: #0a0f1c; border: 0; border-radius: 6px; padding: 6px 14px; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none; }
input, select, textarea { font: inherit; color: var(--wk-text); background: var(--wk-panel); border: 1px solid var(--wk-line); border-radius: 6px; padding: 6px 8px; max-width: 100%; }
textarea { width: 100%; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 14px; }
.wk-form label { display: block; margin: 10px 0; }
.wk-form label > input[type=text], .wk-form label > input[type=url], .wk-form label > input[type=search], .wk-form label > select { display: block; width: 100%; margin-top: 4px; }
.wk-form .wk-check { display: block; }
.wk-inline { display: inline; }
fieldset { border: 1px solid var(--wk-line); border-radius: 6px; margin: 12px 0; }
.ov-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; padding: 0; margin: 0 0 8px; font-size: 14px; }
.ov-breadcrumbs li + li::before { content: "›"; margin-right: 4px; color: var(--wk-muted); }
.wk-article header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px; }
.wk-actions { font-size: 14px; }
.wk-infobox { float: right; clear: right; width: min(320px, 100%); margin: 0 0 16px 16px; background: var(--wk-panel); border: 1px solid var(--wk-line); border-radius: 6px; }
.wk-infobox table { width: 100%; border-collapse: collapse; font-size: 14px; }
.wk-infobox th, .wk-infobox td { text-align: left; vertical-align: top; padding: 6px 8px; border-top: 1px solid var(--wk-line); }
.wk-infobox tr:first-child th, .wk-infobox tr:first-child td { border-top: 0; }
.wk-content pre, .ov-diff { overflow-x: auto; background: var(--wk-panel); padding: 10px; border-radius: 6px; }
.ov-diff { white-space: pre-wrap; }
.ov-diff ins { background: rgba(52, 211, 153, .22); text-decoration: underline; }
.ov-diff del { background: rgba(248, 113, 113, .22); }
.ov-redlink { color: var(--wk-red); }
.ov-media { margin: 12px 0; }
.ov-media img { max-width: 100%; height: auto; }
.ov-media-missing { padding: 24px; border: 1px dashed var(--wk-red); color: var(--wk-red); border-radius: 6px; }
.wk-sources blockquote { margin: 4px 0 0 12px; color: var(--wk-muted); font-style: italic; }
.wk-meta { clear: both; font-size: 14px; color: var(--wk-muted); border-top: 1px solid var(--wk-line); margin-top: 24px; }
table { border-collapse: collapse; }
.wk-history, .wk-fields { width: 100%; font-size: 14px; display: block; overflow-x: auto; }
.wk-history th, .wk-history td, .wk-fields th, .wk-fields td { padding: 4px 8px; border-bottom: 1px solid var(--wk-line); text-align: left; vertical-align: top; }
.wk-history tr.wk-live { background: var(--wk-panel); }
.wk-tree { padding-left: 1.2em; }
.wk-comments { list-style: none; padding: 0; }
.wk-comments li { border-top: 1px solid var(--wk-line); padding: 8px 0; }
@media (max-width: 640px) {
  .wk-infobox { float: none; margin: 0 0 16px; width: 100%; }
  h1 { font-size: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
