/* generated by @inimark/site-render — do not edit */

/* ========== 主题 CSS 变量 ========== */

/*
 * Shared chrome (fonts / radii / spacing) comes from Ocean.
 * Per-theme blocks override colors; Dark Modern also overrides a few chrome sizes.
 */

/* ── Base (:root) — Ocean chrome + dark color fallback ── */
:root {
  /* Colors (Ocean) */
  --bg-primary: #1b1d24;
  --bg-secondary: #111217;
  --bg-surface: #1b1d24;
  --bg-menu: #101116;
  --bg-hover: rgba(255, 255, 255, 0.08);
  --bg-tertiary: #1b1d24;
  --bg-code: #1f2129;
  --bg-code-inline: #181a21;
  --bg-input: #0c0c10;
  --text-primary: #c1c3c2;
  --text-secondary: #818286;
  --text-tertiary: #5c5e63;
  --text-strong: #ffffff;
  --text-code: #ebebeb;
  --accent: #74a7fe;
  --accent-rgb: 116, 167, 254;
  --accent-hover: #3a88fe;
  --border: rgba(145, 145, 145, 0.159);
  --danger: #e06c75;
  --code-inline-border: rgba(110, 115, 121, 0.277);
  --blockquote-border: rgba(255, 255, 255, 0.15);
  --blockquote-bg: #21232b;
  --blockquote-text: #9e9e9e;
  --metadata-bg: #1f2129;
  --metadata-border: rgba(68, 68, 68, 0.509);
  --table-header-bg: #17191e;
  --table-cell-bg: #1f2129;
  --tag-bg: rgba(16, 111, 255, 0.171);
  --tag-text: #6390d4;
  --tag-border: rgba(16, 111, 255, 0.345);
  --scrollbar-thumb: #aaaaaa;
  --scrollbar-thumb-hover: #6b6b6b;
  --scrollbar-track: transparent;
  --tree-indent-hint-color: rgba(145, 145, 145, 0.159);

  /* Non-color chrome (Ocean) — shared by light / grey / ocean */
  --font-mono: "Cascadia Code", "JetBrains Mono", "Fira Code", "Consolas", monospace;
  --font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --editor-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --editor-font-size: 16px;
  --font-mono-size: 14px;
  --sidebar-chrome-opacity: 0.21;
  --sidebar-tab-active-opacity-delta: 0.18;
  --radius-control: 4px;
  --control-height: 32px;
  --control-padding-x: 10px;
  --control-font-size: 13px;
  --menu-item-padding-y: 6px;
  --tree-item-padding-y: 5px;
  --tree-indent-hint-width: 1px;
  --tree-indent-hint-size: 14px;
  --tree-indent-hint-visible: 1;
  --radius-code-block: 2px;
  --radius-code-inline: 2px;
  --padding-code-inline-y: 1px;
  --padding-code-inline-x: 3px;
  --code-inline-border-width: 1px;
  --radius-metadata: 2px;
  --margin-metadata-bottom: 40px;
  --blockquote-border-width: 3px;
  --padding-blockquote-y: 4px;
  --padding-blockquote-x: 16px;
  --radius-table: 2px;
  --radius-tag: 20px;
  --padding-tag-y: 2px;
  --padding-tag-x: 7px;
  --radius-scrollbar: 2px;
  --scrollbar-size: 6px;

  /* CodeMirror syntax — overridden by active code theme */
  --tw-code-comment: var(--hljs-comment, #9a9690);
  --tw-code-keyword: var(--hljs-keyword, #c9a7e8);
  --tw-code-string: var(--hljs-string, #e5aa7a);
  --tw-code-literal: var(--hljs-number, #c9c277);
  --tw-code-type: var(--hljs-keyword, #8bc8bd);
  --tw-code-function: var(--hljs-built_in, #9fbee8);
  --tw-code-name: inherit;
  --tw-code-punctuation: var(--hljs-comment, #c3bdb4);
  --tw-code-meta: var(--hljs-comment, #a8a29a);
  --tw-code-invalid: var(--danger, #ff8f86);
}

/* ── Light — colors only (chrome inherited from :root / Ocean) ── */
[data-theme="light"] {
  --bg-primary: #ffffff;
  --bg-secondary: #f5f7fa;
  --bg-surface: #f1f5f9;
  --bg-menu: #e8ecf1;
  --bg-hover: rgba(0, 0, 0, 0.06);
  --bg-tertiary: #e8ecf1;
  --bg-code: #f6f8fa;
  --bg-code-inline: rgba(0, 0, 0, 0.06);
  --bg-input: #ffffff;
  --text-primary: #1e293b;
  --text-secondary: #64748b;
  --text-tertiary: #94a3b8;
  --text-strong: #bd387d;
  --text-code: #e83e8c;
  --accent: #2563eb;
  --accent-rgb: 37, 99, 235;
  --accent-hover: #1d4ed8;
  --border: #d1d9e6;
  --danger: #dc2626;
  --code-inline-border: #d1d9e6;
  --blockquote-border: #d1d9e6;
  --blockquote-bg: transparent;
  --blockquote-text: #64748b;
  --metadata-bg: #f6f8fa;
  --metadata-border: #d1d9e6;
  --table-header-bg: #f5f7fa;
  --table-cell-bg: transparent;
  --tag-bg: rgba(37, 99, 235, 0.15);
  --tag-text: #2563eb;
  --tag-border: rgba(37, 99, 235, 0.2);
  --scrollbar-thumb: #d1d9e6;
  --scrollbar-thumb-hover: #94a3b8;
  --scrollbar-track: transparent;
  --tree-indent-hint-color: #d1d9e6;
}

/* ── Grey — colors only ── */
[data-theme="grey"] {
  --bg-primary: #f8fafc;
  --bg-secondary: #f1f5f9;
  --bg-surface: #f8fafc;
  --bg-menu: #e2e8f0;
  --bg-hover: rgba(71, 85, 105, 0.08);
  --bg-tertiary: #e2e8f0;
  --bg-code: #f1f5f9;
  --bg-code-inline: rgba(100, 116, 139, 0.08);
  --bg-input: #f8fafc;
  --text-primary: #0f172a;
  --text-secondary: #64748b;
  --text-tertiary: #94a3b8;
  --text-strong: #bd387d;
  --text-code: #e83e8c;
  --accent: #475569;
  --accent-rgb: 71, 85, 105;
  --accent-hover: #334155;
  --border: #e2e8f0;
  --danger: #dc2626;
  --code-inline-border: #e2e8f0;
  --blockquote-border: #e2e8f0;
  --blockquote-bg: transparent;
  --blockquote-text: #64748b;
  --metadata-bg: #f1f5f9;
  --metadata-border: #e2e8f0;
  --table-header-bg: #f1f5f9;
  --table-cell-bg: transparent;
  --tag-bg: rgba(71, 85, 105, 0.15);
  --tag-text: #475569;
  --tag-border: rgba(71, 85, 105, 0.2);
  --scrollbar-thumb: #e2e8f0;
  --scrollbar-thumb-hover: #94a3b8;
  --scrollbar-track: transparent;
  --tree-indent-hint-color: #e2e8f0;
}

/* ── Ocean — promoted from Dark (fork); chrome already on :root ── */
[data-theme="ocean"] {
  --bg-primary: #1b1d24;
  --bg-secondary: #111217;
  --bg-surface: #1b1d24;
  --bg-menu: #101116;
  --bg-hover: rgba(255, 255, 255, 0.08);
  --bg-tertiary: #1b1d24;
  --bg-code: #1f2129;
  --bg-code-inline: #181a21;
  --bg-input: #0c0c10;
  --text-primary: #c1c3c2;
  --text-secondary: #818286;
  --text-tertiary: #5c5e63;
  --text-strong: #ffffff;
  --text-code: #ebebeb;
  --accent: #74a7fe;
  --accent-rgb: 116, 167, 254;
  --accent-hover: #3a88fe;
  --border: rgba(145, 145, 145, 0.159);
  --danger: #e06c75;
  --code-inline-border: rgba(110, 115, 121, 0.277);
  --blockquote-border: rgba(255, 255, 255, 0.15);
  --blockquote-bg: #21232b;
  --blockquote-text: #9e9e9e;
  --metadata-bg: #1f2129;
  --metadata-border: rgba(68, 68, 68, 0.509);
  --table-header-bg: #17191e;
  --table-cell-bg: #1f2129;
  --tag-bg: rgba(16, 111, 255, 0.171);
  --tag-text: #6390d4;
  --tag-border: rgba(16, 111, 255, 0.345);
  --scrollbar-thumb: #aaaaaa;
  --scrollbar-thumb-hover: #6b6b6b;
  --scrollbar-track: transparent;
  --tree-indent-hint-color: rgba(145, 145, 145, 0.159);
}

/* ── Dark Modern — colors + chrome size deltas ── */
[data-theme="dark-modern"] {
  --bg-primary: #1f1f1f;
  --bg-secondary: #181818;
  --bg-surface: #181818;
  --bg-menu: #181818;
  --bg-hover: rgba(255, 255, 255, 0.08);
  --bg-tertiary: #1b1d24;
  --bg-code: #27292c;
  --bg-code-inline: #34373b;
  --bg-input: #181818;
  --text-primary: #e0e0e0;
  --text-secondary: #c4c4c6;
  --text-tertiary: #5c5e63;
  --text-strong: #ffffff;
  --text-code: #ebebeb;
  --accent: #74a7fe;
  --accent-rgb: 116, 167, 254;
  --accent-hover: #3a88fe;
  --border: rgba(164, 164, 164, 0.092);
  --danger: #e06c75;
  --code-inline-border: rgba(110, 115, 121, 0.277);
  --blockquote-border: rgba(255, 255, 255, 0.15);
  --blockquote-bg: rgba(48, 51, 55, 0.327);
  --blockquote-text: #9e9e9e;
  --metadata-bg: #27292c;
  --metadata-border: rgba(68, 68, 68, 0.509);
  --table-header-bg: #1c1c1c;
  --table-cell-bg: #262626;
  --tag-bg: rgba(16, 111, 255, 0.171);
  --tag-text: #6390d4;
  --tag-border: rgba(16, 111, 255, 0.345);
  --scrollbar-thumb: rgba(107, 107, 107, 0.294);
  --scrollbar-thumb-hover: rgba(107, 107, 107, 0.294);
  --scrollbar-track: transparent;
  --tree-indent-hint-color: rgba(145, 145, 145, 0.159);
  --padding-code-inline-y: 0px;
  --blockquote-border-width: 4px;
  --padding-blockquote-y: 13px;
  --scrollbar-size: 9px;
}

/* ── Slate — cool zinc light (distinct from Grey) ── */
[data-theme="slate"] {
  --bg-primary: #fafafa;
  --bg-secondary: #f4f4f5;
  --bg-surface: #f4f4f5;
  --bg-menu: #e4e4e7;
  --bg-hover: rgba(24, 24, 27, 0.06);
  --bg-tertiary: #e4e4e7;
  --bg-code: #f4f4f5;
  --bg-code-inline: rgba(63, 63, 70, 0.08);
  --bg-input: #fafafa;
  --text-primary: #18181b;
  --text-secondary: #71717a;
  --text-tertiary: #a1a1aa;
  --text-strong: #bd387d;
  --text-code: #e83e8c;
  --accent: #52525b;
  --accent-rgb: 82, 82, 91;
  --accent-hover: #3f3f46;
  --border: #e4e4e7;
  --danger: #dc2626;
  --code-inline-border: #e4e4e7;
  --blockquote-border: #d4d4d8;
  --blockquote-bg: transparent;
  --blockquote-text: #71717a;
  --metadata-bg: #f4f4f5;
  --metadata-border: #e4e4e7;
  --table-header-bg: #f4f4f5;
  --table-cell-bg: transparent;
  --tag-bg: rgba(82, 82, 91, 0.15);
  --tag-text: #52525b;
  --tag-border: rgba(82, 82, 91, 0.2);
  --scrollbar-thumb: #d4d4d8;
  --scrollbar-thumb-hover: #a1a1aa;
  --scrollbar-track: transparent;
  --tree-indent-hint-color: #e4e4e7;
}

/* ── Claude Code — warm Anthropic light ── */
[data-theme="claude-code"] {
  --bg-primary: #faf8f5;
  --bg-secondary: #f0ece6;
  --bg-surface: #f5f1eb;
  --bg-menu: #e8e2d8;
  --bg-hover: rgba(196, 122, 42, 0.1);
  --bg-tertiary: #e8e2d8;
  --bg-code: #f0ece6;
  --bg-code-inline: rgba(196, 122, 42, 0.08);
  --bg-input: #faf8f5;
  --text-primary: #1a1a1a;
  --text-secondary: #6b6560;
  --text-tertiary: #9a948c;
  --text-strong: #bd387d;
  --text-code: #c47a2a;
  --accent: #c47a2a;
  --accent-rgb: 196, 122, 42;
  --accent-hover: #a86420;
  --border: #ddd6cc;
  --danger: #c94432;
  --code-inline-border: #ddd6cc;
  --blockquote-border: #ddd6cc;
  --blockquote-bg: transparent;
  --blockquote-text: #6b6560;
  --metadata-bg: #f0ece6;
  --metadata-border: #ddd6cc;
  --table-header-bg: #f0ece6;
  --table-cell-bg: transparent;
  --tag-bg: rgba(196, 122, 42, 0.15);
  --tag-text: #c47a2a;
  --tag-border: rgba(196, 122, 42, 0.2);
  --scrollbar-thumb: #ddd6cc;
  --scrollbar-thumb-hover: #9a948c;
  --scrollbar-track: transparent;
  --tree-indent-hint-color: #ddd6cc;
}

/* ── Mint — green eye-care light ── */
[data-theme="mint"] {
  --bg-primary: #ffffff;
  --bg-secondary: #d9ede5;
  --bg-surface: #ecf6f2;
  --bg-menu: #c5e3d7;
  --bg-hover: rgba(78, 178, 137, 0.12);
  --bg-tertiary: #c5e3d7;
  --bg-code: #f0f7f4;
  --bg-code-inline: rgba(78, 178, 137, 0.08);
  --bg-input: #ffffff;
  --text-primary: #1e293b;
  --text-secondary: #6b6b6b;
  --text-tertiary: #9ca3af;
  --text-strong: #bd387d;
  --text-code: #e83e8c;
  --accent: #4eb289;
  --accent-rgb: 78, 178, 137;
  --accent-hover: #3a9e6e;
  --border: #a5cfc0;
  --danger: #e06c75;
  --code-inline-border: #a5cfc0;
  --blockquote-border: #a5cfc0;
  --blockquote-bg: transparent;
  --blockquote-text: #6b6b6b;
  --metadata-bg: #f0f7f4;
  --metadata-border: #a5cfc0;
  --table-header-bg: #d9ede5;
  --table-cell-bg: transparent;
  --tag-bg: rgba(78, 178, 137, 0.15);
  --tag-text: #4eb289;
  --tag-border: rgba(78, 178, 137, 0.2);
  --scrollbar-thumb: #a5cfc0;
  --scrollbar-thumb-hover: #6b6b6b;
  --scrollbar-track: transparent;
  --tree-indent-hint-color: #a5cfc0;
}

/* ── Purple — soft violet light ── */
[data-theme="purple"] {
  --bg-primary: #faf5ff;
  --bg-secondary: #f3e8ff;
  --bg-surface: #f5f0ff;
  --bg-menu: #ebe0ff;
  --bg-hover: rgba(124, 58, 237, 0.1);
  --bg-tertiary: #ebe0ff;
  --bg-code: #f3f0ff;
  --bg-code-inline: rgba(124, 58, 237, 0.08);
  --bg-input: #faf5ff;
  --text-primary: #1e1b2e;
  --text-secondary: #6b6580;
  --text-tertiary: #9b95b0;
  --text-strong: #bd387d;
  --text-code: #7c3aed;
  --accent: #7c3aed;
  --accent-rgb: 124, 58, 237;
  --accent-hover: #6d28d9;
  --border: #ddd6ee;
  --danger: #dc2626;
  --code-inline-border: #ddd6ee;
  --blockquote-border: #ddd6ee;
  --blockquote-bg: transparent;
  --blockquote-text: #6b6580;
  --metadata-bg: #f3f0ff;
  --metadata-border: #ddd6ee;
  --table-header-bg: #f3e8ff;
  --table-cell-bg: transparent;
  --tag-bg: rgba(124, 58, 237, 0.15);
  --tag-text: #7c3aed;
  --tag-border: rgba(124, 58, 237, 0.2);
  --scrollbar-thumb: #ddd6ee;
  --scrollbar-thumb-hover: #9b95b0;
  --scrollbar-track: transparent;
  --tree-indent-hint-color: #ddd6ee;
}

/* ── Hermes — Nous Research blue light ── */
[data-theme="hermes"] {
  --bg-primary: #f0f1ff;
  --bg-secondary: #e4e6ff;
  --bg-surface: #eaeaff;
  --bg-menu: #d8dbff;
  --bg-hover: rgba(0, 0, 242, 0.08);
  --bg-tertiary: #d8dbff;
  --bg-code: #eaeaff;
  --bg-code-inline: rgba(0, 0, 242, 0.08);
  --bg-input: #f0f1ff;
  --text-primary: #1a1a4e;
  --text-secondary: #5a5a8a;
  --text-tertiary: #8a8ab0;
  --text-strong: #bd387d;
  --text-code: #0000f2;
  --accent: #0000f2;
  --accent-rgb: 0, 0, 242;
  --accent-hover: #2020ff;
  --border: rgba(0, 0, 242, 0.12);
  --danger: #dc2626;
  --code-inline-border: rgba(0, 0, 242, 0.12);
  --blockquote-border: rgba(0, 0, 242, 0.12);
  --blockquote-bg: transparent;
  --blockquote-text: #5a5a8a;
  --metadata-bg: #eaeaff;
  --metadata-border: rgba(0, 0, 242, 0.12);
  --table-header-bg: #e4e6ff;
  --table-cell-bg: transparent;
  --tag-bg: rgba(0, 0, 242, 0.12);
  --tag-text: #0000f2;
  --tag-border: rgba(0, 0, 242, 0.2);
  --scrollbar-thumb: #d8dbff;
  --scrollbar-thumb-hover: #8a8ab0;
  --scrollbar-track: transparent;
  --tree-indent-hint-color: rgba(0, 0, 242, 0.12);
}

/* ── Cursor — near-black IDE dark ── */
[data-theme="cursor"] {
  --bg-primary: #141414;
  --bg-secondary: #0f0f0f;
  --bg-surface: #1a1a1a;
  --bg-menu: #1a1a1a;
  --bg-hover: rgba(255, 255, 255, 0.08);
  --bg-tertiary: #222222;
  --bg-code: #1e1e1e;
  --bg-code-inline: #2a2a2a;
  --bg-input: #0f0f0f;
  --text-primary: #c1c3c2;
  --text-secondary: #a1a1aa;
  --text-tertiary: #71717a;
  --text-strong: #ffffff;
  --text-code: #e4e4e7;
  --accent: #3b82f6;
  --accent-rgb: 59, 130, 246;
  --accent-hover: #2563eb;
  --border: rgba(161, 161, 170, 0.14);
  --danger: #ef4444;
  --code-inline-border: rgba(110, 115, 121, 0.277);
  --blockquote-border: rgba(255, 255, 255, 0.12);
  --blockquote-bg: rgba(59, 130, 246, 0.08);
  --blockquote-text: #a1a1aa;
  --metadata-bg: #1e1e1e;
  --metadata-border: rgba(68, 68, 68, 0.509);
  --table-header-bg: #0f0f0f;
  --table-cell-bg: #1a1a1a;
  --tag-bg: rgba(59, 130, 246, 0.171);
  --tag-text: #60a5fa;
  --tag-border: rgba(59, 130, 246, 0.345);
  --scrollbar-thumb: rgba(161, 161, 170, 0.35);
  --scrollbar-thumb-hover: rgba(161, 161, 170, 0.55);
  --scrollbar-track: transparent;
  --tree-indent-hint-color: rgba(161, 161, 170, 0.14);
}

/* ── Dracula — classic dark ── */
[data-theme="dracula"] {
  --bg-primary: #282a36;
  --bg-secondary: #21222c;
  --bg-surface: #343746;
  --bg-menu: #21222c;
  --bg-hover: rgba(255, 255, 255, 0.08);
  --bg-tertiary: #44475a;
  --bg-code: #21222c;
  --bg-code-inline: #44475a;
  --bg-input: #21222c;
  --text-primary: #f8f8f2;
  --text-secondary: #bd93f9;
  --text-tertiary: #6272a4;
  --text-strong: #ffffff;
  --text-code: #f1fa8c;
  --accent: #bd93f9;
  --accent-rgb: 189, 147, 249;
  --accent-hover: #ff79c6;
  --border: rgba(68, 71, 90, 0.85);
  --danger: #ff5555;
  --code-inline-border: rgba(98, 114, 164, 0.45);
  --blockquote-border: #6272a4;
  --blockquote-bg: rgba(68, 71, 90, 0.45);
  --blockquote-text: #bd93f9;
  --metadata-bg: #21222c;
  --metadata-border: rgba(68, 71, 90, 0.85);
  --table-header-bg: #21222c;
  --table-cell-bg: #282a36;
  --tag-bg: rgba(189, 147, 249, 0.18);
  --tag-text: #bd93f9;
  --tag-border: rgba(189, 147, 249, 0.35);
  --scrollbar-thumb: #44475a;
  --scrollbar-thumb-hover: #6272a4;
  --scrollbar-track: transparent;
  --tree-indent-hint-color: rgba(68, 71, 90, 0.85);
}


[data-theme="custom-iynqdisf"] {
  --bg-secondary: #181818;
  --bg-surface: #181818;
  --bg-menu: #181818;
  --bg-hover: rgba(255, 255, 255, 0.08);
  --bg-tertiary: #1b1d24;
  --bg-input: #181818;
  --border: rgba(164, 164, 164, 0.233);
  --accent: #74a7fe;
  --accent-hover: #3a88fe;
  --accent-rgb: 116, 167, 254;
  --danger: #e06c75;
  --tree-indent-hint-color: rgba(145, 145, 145, 0.159);
  --bg-primary: #1d1f21;
  --text-primary: #e0e0e0;
  --text-secondary: #c4c4c6;
  --text-tertiary: #5c5e63;
  --text-strong: #ffffff;
  --bg-code: #27292c;
  --bg-code-inline: #333437;
  --text-code: #ebebeb;
  --code-inline-border: rgba(110, 115, 121, 0.277);
  --blockquote-border: rgba(255, 255, 255, 0.15);
  --blockquote-bg: rgba(48, 51, 55, 0.327);
  --blockquote-text: #9e9e9e;
  --metadata-bg: #27292c;
  --metadata-border: rgba(68, 68, 68, 0.509);
  --table-header-bg: transparent;
  --table-cell-bg: transparent;
  --tag-bg: rgba(16, 111, 255, 0.171);
  --tag-text: #6390d4;
  --tag-border: rgba(16, 111, 255, 0.345);
  --scrollbar-thumb: rgba(107, 107, 107, 0.294);
  --scrollbar-thumb-hover: rgba(107, 107, 107, 0.294);
  --scrollbar-track: transparent;
  --font-mono: "Cascadia Code", "JetBrains Mono", "Fira Code", "Consolas", monospace;
  --font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --editor-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --editor-font-size: 16px;
  --font-mono-size: 14px;
  --sidebar-chrome-opacity: 0.21;
  --radius-control: 4px;
  --control-height: 32px;
  --control-padding-x: 10px;
  --control-font-size: 13px;
  --menu-item-padding-y: 6px;
  --tree-item-padding-y: 5px;
  --tree-indent-hint-width: 1px;
  --tree-indent-hint-size: 14px;
  --tree-indent-hint-visible: 1;
  --radius-code-block: 2px;
  --radius-code-inline: 4px;
  --padding-code-inline-y: 2px;
  --padding-code-inline-x: 5px;
  --code-inline-border-width: 0px;
  --radius-metadata: 2px;
  --margin-metadata-bottom: 40px;
  --blockquote-border-width: 4px;
  --padding-blockquote-y: 13px;
  --padding-blockquote-x: 16px;
  --radius-table: 2px;
  --radius-tag: 20px;
  --padding-tag-y: 2px;
  --padding-tag-x: 7px;
  --radius-scrollbar: 2px;
  --scrollbar-size: 9px;
}

@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;position:relative;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.47"}.katex .katex-mathml{border:0;-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-webkit-min-content;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{display:inline;line-height:0}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}


html[data-appearance="light"] {
  --hljs-keyword: #0d7a6c;
  --hljs-string: #a33d9a;
  --hljs-comment: #6b7280;
  --hljs-number: #9a6b20;
  --hljs-built_in: #b45a20;
  --tw-code-keyword: #0d7a6c;
  --tw-code-string: #a33d9a;
  --tw-code-comment: #6b7280;
  --tw-code-literal: #9a6b20;
  --tw-code-function: #b45a20;
  --tw-code-type: #0d7a6c;
  --tw-code-name: inherit;
  --tw-code-punctuation: #6b7280;
  --tw-code-meta: #6b7280;
  --tw-code-invalid: #b42318;
}

html[data-appearance="dark"] {
  --hljs-keyword: #83d6c5;
  --hljs-string: #e394dc;
  --hljs-comment: #6d6d6d;
  --hljs-number: #ebc88d;
  --hljs-built_in: #efb080;
  --tw-code-keyword: #83d6c5;
  --tw-code-string: #e394dc;
  --tw-code-comment: #6d6d6d;
  --tw-code-literal: #ebc88d;
  --tw-code-function: #efb080;
  --tw-code-type: #83d6c5;
  --tw-code-name: inherit;
  --tw-code-punctuation: #6d6d6d;
  --tw-code-meta: #6d6d6d;
  --tw-code-invalid: #b42318;
}

/*
 * Editor chrome — required for the editor's interactive UI to work.
 *
 * Everything in this file is "ours": cursor decoration, syntax-hint
 * dimming, NodeView innards, structured-block chrome (ref-def, yaml,
 * toc, code-fence lang input, table toolbar, emoji popup, etc.).
 *
 * Not in this file:
 *   - Markdown content typography (h1-h6 sizes, link colors,
 *     blockquote border, etc.) — that's a swappable theme; see
 *     ./theme-github.css.
 *   - Website-only chrome (nav, page, specs catalog, etc.) — see
 *     website/style.css.
 *
 * Lib consumers should import this file once. Themes are imported on
 * top of it.
 */

/* ─── createEditor() façade scaffolding ──────────────────────────── */
/* Rendered editor and source CodeMirror share a wrapper so toggling
 * `editor.toggleSource()` keeps layout stable. The source editor baseline
 * here is just enough to make source mode usable out of the box;
 * consumers can override with their own font / colors. */
.typora-web-wrap {
  display: block;
  min-height: 100%;
  cursor: text;
}
.typora-web-editor-host {
  display: block;
  min-height: 100%;
  cursor: text;
}
.typora-web-editor-host[hidden] { display: none; }
.typora-web-source-editor {
  display: block;
  width: 100%;
  border: none;
  outline: none;
  font: 14px/1.65 ui-monospace, SFMono-Regular, Menlo, monospace;
  background: transparent;
  color: inherit;
  white-space: pre-wrap;
  word-break: break-word;
  tab-size: 2;
  box-sizing: border-box;
  padding: 0;
}
.typora-web-source-editor[hidden] { display: none; }
.typora-web-source-editor .cm-editor,
.typora-web-code-editor .cm-editor,
.typora-web-html-source.cm-editor {
  background: transparent;
  color: inherit;
}
.typora-web-source-editor .cm-scroller,
.typora-web-code-editor .cm-scroller,
.typora-web-html-source .cm-scroller {
  overflow: visible;
}
.typora-web-source-editor .cm-content,
.typora-web-code-editor .cm-content,
.typora-web-html-source .cm-content {
  min-height: 1.5em;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.typora-web-source-editor .cm-line,
.typora-web-code-editor .cm-line,
.typora-web-html-source .cm-line {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Source mode: Typora-style sparse line numbers outside the writing column. */
.typora-web-cm-source.cm-editor {
  position: relative;
}
.typora-web-cm-source .cm-gutters {
  position: absolute;
  right: 100%;
  top: 0;
  width: 0;
  min-width: 0;
  overflow: visible;
  display: flex;
  font-size: inherit;
  line-height: inherit;
  font-family: var(
    --tw-source-line-number-font,
    ui-monospace,
    SFMono-Regular,
    Menlo,
    monospace
  );
}
.typora-web-cm-source .cm-lineNumbers {
  position: absolute;
  right: 0;
  top: 0;
  width: max-content;
  min-width: 2.75em;
}
.typora-web-cm-source .cm-scroller {
  width: 100%;
  flex: 1 1 auto;
  min-width: 0;
}
.typora-web-cm-source .cm-lineNumbers .cm-gutterElement {
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  color: var(--tw-source-line-number, #888);
  font-size: inherit;
  line-height: inherit;
  font-family: inherit;
  min-width: 2.75em;
  padding: 0 var(--tw-source-line-number-gap, 0.75em) 0 0;
  text-align: right;
}

/* ─── PM root reset ──────────────────────────────────────────────── */
.ProseMirror {
  outline: none;
  min-height: 100%;
  cursor: text;
}
.ProseMirror > p:last-child {
  /* Keep the trailing sentinel (and empty docs) clickable. */
  min-height: 1.5em;
}
.ProseMirror[contenteditable="true"]:focus { outline: none; }
.ProseMirror a { cursor: pointer; }

/* ─── method-B syntax hints ──────────────────────────────────────── */
.ProseMirror .syntax-hint {
  color: #b0b0b0;
  font-weight: normal;
  font-style: normal;
  user-select: none;
}
.ProseMirror .syntax-hint-italic {
  color: #b0b0b0;
  font-style: italic;
  font-weight: normal;
  user-select: none;
}
/* Delim char is present in the doc text but visually absent when the
 * cursor is outside the mark's surrounding span. PM pos still tracks
 * it; arrow keys may briefly land on a hidden delim and the char
 * becomes visible as soon as the cursor enters the span. */
.ProseMirror .syntax-hidden { font-size: 0; }

.typora-web-wrap.tw-focus-mode .ProseMirror .tw-focus-muted {
  opacity: 0.32;
  transition: opacity 0.16s ease-out;
}
.typora-web-wrap.tw-focus-mode .ProseMirror .tw-focus-active {
  opacity: 1;
}
/* Always allow scrolling the last line to mid-viewport; typewriter also
 * pads the top so the first line can sit at center. */
.typora-web-wrap .ProseMirror,
.typora-web-wrap .typora-web-source-editor .cm-content {
  padding-bottom: var(--editor-scroll-pad, 0px);
}
.typora-web-wrap.tw-typewriter-mode .ProseMirror {
  padding-top: var(--editor-scroll-pad, 0px);
}

/* HTML comment — wraps the entire `<!-- ... -->` source. The chars
 * stay visible (no decoration hides them); the wrapper just dims so
 * the user can see at a glance that this is a comment. */
.ProseMirror mark-comment {
  color: #999;
  font-style: italic;
}

/* Heading-draft contour: while the cursor is inside a paragraph that
 * starts with `# ` (etc), the whole paragraph reads as bold so the
 * user sees the heading-to-be. The `# ` itself has .syntax-hint and
 * stays at the paragraph's normal font-weight. */
.ProseMirror .heading-draft-1,
.ProseMirror .heading-draft-2,
.ProseMirror .heading-draft-3,
.ProseMirror .heading-draft-4,
.ProseMirror .heading-draft-5,
.ProseMirror .heading-draft-6 {
  font-weight: bold;
  color: var(--text-strong, inherit);
}

/* ─── Math preview widgets ───────────────────────────────────────── */
.ProseMirror math-inline {
  display: inline-block;
  vertical-align: baseline;
  margin: 0 1px;
}
.ProseMirror .math-source-hidden { font-size: 0; }
.ProseMirror math-inline[data-math-state="error"],
.ProseMirror math-preview[data-math-state="error"] {
  color: #b42318;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
}
.ProseMirror math-block {
  display: block;
  margin: 12px 0 16px;
}
.ProseMirror math-source {
  display: block;
  white-space: pre-wrap;
  word-break: break-word;
  font: 14px/1.55 ui-monospace, SFMono-Regular, Menlo, monospace;
  padding: 8px 10px;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.035);
}
.ProseMirror math-block.math-success:not(.math-source-open):not(.math-empty) > math-source {
  display: none;
}
.ProseMirror math-block.math-source-open > math-source,
.ProseMirror math-block.math-error > math-source,
.ProseMirror math-block.math-empty > math-source {
  display: block;
}
.ProseMirror math-block.math-source-open > math-source {
  margin-bottom: 10px;
}
.ProseMirror math-preview {
  display: block;
  overflow-x: auto;
  padding: 10px 0 2px;
}

/* ─── play caret + selection marker (test-pretty / fakeView) ─────── */
.ProseMirror .play-caret {
  display: inline-block;
  width: 2px;
  height: 1.15em;
  margin: 0 -1px;
  background: #1f1f1f;
  vertical-align: text-bottom;
  animation: play-caret-blink 1s step-end infinite;
  user-select: none;
  pointer-events: none;
}
@keyframes play-caret-blink { 50% { opacity: 0; } }
.ProseMirror-focused .play-caret { display: none; }
.ProseMirror .selection-marker {
  color: #1f1f1f;
  font-weight: bold;
  user-select: none;
}
.ProseMirror-focused .selection-marker { display: none; }

/* ─── reference link def — structured editable block ─────────────── */
.ProseMirror ref-def {
  display: block;
  margin: 4px 0;
  font: 13px/1.5 ui-monospace, SFMono-Regular, Menlo, monospace;
  color: #444;
}
.ProseMirror ref-label,
.ProseMirror ref-url,
.ProseMirror ref-title {
  display: inline-block;
  min-width: 1em;
}
.ProseMirror ref-label::before { content: "[ "; color: #b0b0b0; user-select: none; }
.ProseMirror ref-label::after  { content: " ]: "; color: #b0b0b0; user-select: none; }
.ProseMirror ref-url { color: #0969da; }
.ProseMirror ref-url[data-placeholder]::before {
  content: attr(data-placeholder);
  color: #b0b0b0;
  font-style: italic;
  text-decoration: underline;
  user-select: none;
}
.ProseMirror ref-title { color: #555; padding-left: 0.6em; }
.ProseMirror ref-title::before { content: '" '; color: #b0b0b0; user-select: none; }
.ProseMirror ref-title::after  { content: ' "'; color: #b0b0b0; user-select: none; }
.ProseMirror ref-title[data-placeholder]::before {
  content: '" ' attr(data-placeholder) ' "';
  color: #b0b0b0;
  font-style: italic;
  user-select: none;
}
.ProseMirror ref-title[data-placeholder]::after { content: ""; }
.ProseMirror ref-label > .ProseMirror-trailingBreak,
.ProseMirror ref-url   > .ProseMirror-trailingBreak,
.ProseMirror ref-title > .ProseMirror-trailingBreak { display: none; }

/* ─── YAML front matter ──────────────────────────────────────────── */
.ProseMirror yaml-block {
  display: block;
  white-space: pre-wrap;
  word-break: break-word;
  font: var(--font-mono-size, 13px) / 1.5 var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
  background: var(--metadata-bg, var(--bg-code, #fbf6e8));
  color: var(--text-secondary, #444);
  padding: 10px 14px;
  margin: 8px 0 var(--margin-metadata-bottom, 16px);
  border: 1px solid var(--metadata-border, var(--border, transparent));
  border-radius: var(--radius-metadata, 4px);
}

/* ─── TOC NodeView ───────────────────────────────────────────────── */
.ProseMirror .toc {
  border: 1px solid #e3e3e3;
  border-radius: 6px;
  padding: 8px 14px;
  margin: 8px 0;
  background: #fafafa;
  font-size: 0.95em;
}
.ProseMirror .toc-empty { color: #999; font-style: italic; }
.ProseMirror .toc-list { list-style: none; padding: 0; margin: 0; }
.ProseMirror .toc-item { cursor: pointer; padding: 2px 0; color: #555; }
.ProseMirror .toc-item:hover { color: #1f1f1f; text-decoration: underline; }
.ProseMirror .toc-h1 { padding-left: 0; font-weight: 600; }
.ProseMirror .toc-h2 { padding-left: 1.2em; }
.ProseMirror .toc-h3 { padding-left: 2.4em; }
.ProseMirror .toc-h4 { padding-left: 3.6em; }
.ProseMirror .toc-h5 { padding-left: 4.8em; }
.ProseMirror .toc-h6 { padding-left: 6em; }

/* ─── More tag (`<!--more-->`) ───────────────────────────────────── */

.ProseMirror .more-break {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 1.1rem 0;
  user-select: none;
  pointer-events: none;
}

.ProseMirror .more-break__rule {
  flex: 1 1 auto;
  height: 1px;
  background: color-mix(in srgb, var(--fg, #1f1f1f) 18%, transparent);
}

.ProseMirror .more-break__label {
  flex: 0 0 auto;
  color: var(--muted-fg, #888);
  font-size: 0.82rem;
  line-height: 1;
  letter-spacing: 0.02em;
}

.ProseMirror .more-break__label::after {
  content: var(--more-break-label, "more");
}

.ProseMirror .more-break-draft,
.ProseMirror mark-more-source {
  color: var(--muted-fg, #888);
  font-style: italic;
}

/* ─── CommonMark HTML blocks ────────────────────────────────────── */
.ProseMirror html-block {
  display: block;
  margin: 0 0 1em;
}
.ProseMirror html-block .html-block-preview {
  display: flow-root;
  margin: 0;
  padding: 0;
}
.ProseMirror html-block .html-block-preview > :first-child {
  margin-top: 0;
}
.ProseMirror html-block .html-block-preview > :last-child {
  margin-bottom: 0;
}
.ProseMirror html-block .html-summary {
  font-weight: 600;
  margin: 0 0 0.45em;
}
.ProseMirror html-block .html-block-source {
  display: block;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  white-space: pre-wrap;
  word-break: break-word;
  font: inherit;
  outline: none;
}
.ProseMirror html-block .html-block-source[hidden] { display: none; }
.ProseMirror html-block.html-source-open .html-block-source { margin-bottom: 10px; }
.ProseMirror html-block .html-comment-source {
  color: #999;
  font-style: italic;
}

/* ─── Emoji autocomplete (fixed-position popup) ──────────────────── */
.ProseMirror .emoji-completion {
  position: fixed;
  z-index: 10;
  min-width: 200px;
  max-height: 240px;
  overflow-y: auto;
  padding: 4px 0;
  border: 1px solid #d0d0d0;
  border-radius: 6px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  font: 13px/1.3 -apple-system, system-ui, sans-serif;
  user-select: none;
}
.ProseMirror .emoji-completion-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 10px;
  cursor: pointer;
}
.ProseMirror .emoji-completion-row:hover { background: #f5f5f5; }
.ProseMirror .emoji-completion-row.selected { background: #f0eaff; }
.ProseMirror .emoji-completion-glyph {
  font-size: 16px;
  line-height: 1;
  width: 20px;
  text-align: center;
}
.ProseMirror .emoji-completion-name {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  color: #555;
}

/* ─── Image edit-mode UI ─────────────────────────────────────────── */
.ProseMirror .image-icon { display: inline-block; user-select: none; }
.ProseMirror .image-icon::before { content: "🖼️"; font-size: 0.9em; margin-right: 2px; }
.ProseMirror .image-icon.broken::before {
  content: "🖼️"; filter: grayscale(1) brightness(0.7); opacity: 0.6;
}
.ProseMirror .image-icon.broken::after {
  content: "⚠"; color: #c43; font-size: 0.8em; margin-right: 2px;
}
.ProseMirror .file-input {
  display: inline-block;
  cursor: pointer;
  user-select: none;
  font-size: 0.9em;
  margin: 0 2px;
  opacity: 0.6;
}
.ProseMirror .file-input:hover { opacity: 1; }
.ProseMirror img.image-render {
  display: block;
  max-width: 100%;
  margin: 4px 0;
}

/* ─── Task-list checkbox NodeView ────────────────────────────────── */
.ProseMirror li.has-task-marker {
  list-style-type: none;
}

.ProseMirror li.has-task-marker > p:first-child {
  position: relative;
}

.ProseMirror li.has-task-marker .checkbox-frame {
  position: absolute;
  left: calc(-1 * var(--list-indent, 1.6em));
  top: 50%;
  transform: translateY(-50%);
}

/* Outer wrapper — extends the inline box to the right with transparent
 * padding so the native caret ends up visually separated from the glyph. */
.ProseMirror .checkbox-frame {
  display: inline-block;
  width: 1.2em;
  height: 1.2em;
  line-height: 0;
  padding-right: 1.35em;
  vertical-align: middle;
  user-select: none;
  flex-shrink: 0;
}
.ProseMirror .checkbox {
  display: block;
  width: 1.2em;
  height: 1.2em;
  aspect-ratio: 1 / 1;
  border: max(1px, 0.085em) solid var(--border, #888);
  border-radius: 50%;
  background: var(--bg-primary, #fff);
  cursor: pointer;
  user-select: none;
  position: relative;
  box-sizing: border-box;
  transition: background 150ms ease, border-color 150ms ease;
}
.ProseMirror .checkbox[data-checked="1"] {
  background: var(--accent, #4078c0);
  border-color: var(--border, #888);
}
.ProseMirror .checkbox[data-checked="1"]::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0.36em;
  height: 0.65em;
  border: solid #fff;
  border-width: 0 0.17em 0.17em 0;
  transform: translate(-50%, -58%) rotate(45deg);
  box-sizing: border-box;
}

/* ─── Fenced code NodeView chrome ────────────────────────────────── */
.ProseMirror .code-block-node {
  display: block;
  position: relative;
  cursor: text;
}
.ProseMirror .code-block-node > pre {
  position: relative;
  cursor: text;
}
.ProseMirror .code-block-node .pm-code-content {
  display: none;
}
.ProseMirror .code-block-node .typora-web-code-editor {
  display: block;
  min-height: 1.5em;
}
.cb-chrome {
  position: fixed;
  z-index: 59;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 6px;
  width: auto;
  user-select: none;
  pointer-events: auto;
}
.cb-chrome[hidden] {
  display: none !important;
}
.cb-chrome .cb-toolbar {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.cb-chrome .cb-action {
  display: inline-grid;
  place-items: center;
  box-sizing: border-box;
  width: var(--inimark-menu-row-height, 28px);
  height: var(--inimark-menu-row-height, 28px);
  padding: 0;
  border-radius: var(--radius-code-block, 4px);
  color: var(--inimark-fg, #1f1f1f);
  cursor: pointer;
  outline: none;
}
.cb-chrome .cb-action:focus-visible {
  outline: 2px solid var(--inimark-focus-ring, color-mix(in srgb, var(--inimark-accent, #4a90d9) 45%, transparent));
  outline-offset: 0;
}
.cb-chrome .cb-action:hover {
  background: var(--inimark-hover, #f0f0f0);
}
.cb-chrome .cb-action svg {
  width: 1rem;
  height: 1rem;
  display: block;
}
.cb-chrome .cb-lang-input {
  box-sizing: border-box;
  width: 160px;
  padding: var(--inimark-menu-item-padding-y, 4px) var(--inimark-control-padding-x, 8px);
  min-height: var(--inimark-menu-row-height, 28px);
  font-family: var(--inimark-font-ui, system-ui, -apple-system, "Segoe UI", sans-serif);
  font-size: var(--inimark-control-font-size, 13px);
  line-height: 1.25;
  border-radius: var(--radius-code-block, 4px);
  color: var(--inimark-fg, #1f1f1f);
  outline: none;
}
.cb-chrome .cb-lang-input::placeholder {
  color: var(--inimark-muted-fg, #888);
}
.cb-chrome .cb-lang-input:focus-visible {
  outline: 2px solid var(--inimark-focus-ring, color-mix(in srgb, var(--inimark-accent, #4a90d9) 45%, transparent));
  outline-offset: 0;
}
.cb-lang-menu {
  position: fixed;
  box-sizing: border-box;
  z-index: 1000;
  width: 220px;
  max-height: 220px;
  overflow-y: auto;
  padding: var(--inimark-menu-padding, 4px);
  border-radius: var(--inimark-radius-menu, 8px);
  font-family: var(--inimark-font-ui, system-ui, -apple-system, "Segoe UI", sans-serif);
  font-size: var(--inimark-control-font-size, 13px);
  color: var(--inimark-fg, #1f1f1f);
}
.cb-lang-menu[hidden] { display: none; }
.cb-lang-option {
  display: block;
  width: 100%;
  border: 0;
  border-radius: var(--inimark-radius-menu-item, 6px);
  padding: var(--inimark-menu-item-padding-y, 4px) var(--inimark-control-padding-x, 8px);
  background: transparent;
  color: inherit;
  text-align: left;
  font: inherit;
  line-height: 1.25;
  cursor: pointer;
  transition: background var(--inimark-control-transition, 150ms ease);
}
.cb-lang-option:hover,
.cb-lang-option.is-active {
  background: var(--inimark-hover, #f0f0f0);
}
.cb-lang-empty {
  padding: var(--inimark-menu-item-padding-y, 4px) var(--inimark-control-padding-x, 8px);
  color: var(--inimark-muted-fg, #888);
  font: inherit;
}
.ProseMirror .code-block-node.cb-lang-focus .play-caret { display: none; }
.ProseMirror .code-block-node .diagram-panel {
  display: none;
  margin: 8px 0 16px;
  padding: 10px;
  overflow-x: auto;
  border-radius: 4px;
  background: transparent;
  white-space: normal;
  text-align: center;
}
.ProseMirror .code-block-node.has-diagram .diagram-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
.ProseMirror .code-block-node .diagram-panel > svg {
  display: block;
  margin-inline: auto;
  width: auto;
  max-width: 100%;
  height: auto;
  background: transparent;
}
.ProseMirror .code-block-node.has-diagram.diagram-success:not(.diagram-source-open) > pre {
  display: none;
}
.ProseMirror .code-block-node.has-diagram.diagram-source-open > pre,
.ProseMirror .code-block-node.has-diagram.diagram-error > pre {
  display: block;
  margin-bottom: 10px;
}
.ProseMirror .code-block-node .diagram-panel[data-diagram-state="loading"]::before {
  content: "Rendering diagram";
  color: #888;
  font: 12px/1.4 -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}
.ProseMirror .code-block-node .diagram-panel[data-diagram-state="error"] {
  color: #b42318;
  white-space: pre-wrap;
}

/* ─── Table layout (structural — always on; theme styles cells) ──── */
/* Tables default to full editor width with a fixed layout so columns
 * are predictable and the toolbar's anchor rect spans the editor.
 * The cell border / padding / header bg come from the theme. */
.ProseMirror table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  margin: 0 0 16px;
}
.ProseMirror table th,
.ProseMirror table td {
  word-break: break-word;
}

/* ─── Floating editor chrome (shared with table toolbars) ────────── */
/* Mirrors apps/desktop app.css context-menu tokens so body-mounted
   editor UI matches the right-click menu in every theme. */
.inimark-glass {
  background: var(--inimark-glass-bg, var(--inimark-surface-raised, var(--inimark-surface, #fff)));
  border: 1px solid var(--inimark-glass-border, var(--inimark-border, #e3e3e3));
  box-shadow: var(--inimark-glass-shadow, 0 8px 28px color-mix(in srgb, #000 14%, transparent));
}

html[data-glass="true"] .inimark-glass {
  backdrop-filter: blur(var(--inimark-glass-blur, 18px)) saturate(var(--inimark-glass-saturate, 180%));
  -webkit-backdrop-filter: blur(var(--inimark-glass-blur, 18px)) saturate(var(--inimark-glass-saturate, 180%));
}

.inimark-editor-context-menu,
.inimark-editor-context-submenu {
  padding: var(--inimark-menu-padding, 4px);
  border-radius: var(--inimark-radius-menu, 8px);
  font-family: var(--inimark-font-ui, system-ui, -apple-system, sans-serif);
  font-size: var(--inimark-control-font-size, 13px);
  color: var(--inimark-fg, #1f1f1f);
}

.inimark-editor-context-icon-row {
  display: flex;
  align-items: center;
  gap: 2px;
  padding: 0;
}

.inimark-editor-context-icon-btn {
  display: inline-grid;
  place-items: center;
  width: var(--inimark-menu-row-height, 28px);
  height: var(--inimark-menu-row-height, 28px);
  border: 0;
  border-radius: var(--inimark-radius-menu-item, var(--inimark-radius-control, 6px));
  padding: 0;
  background: transparent;
  color: var(--inimark-fg, #1f1f1f);
  cursor: pointer;
  transition: background var(--inimark-control-transition, 150ms ease);
}

.inimark-editor-context-icon-btn:hover,
.inimark-editor-context-icon-btn:focus-visible,
.inimark-editor-context-icon-btn.is-active {
  background: var(--inimark-hover, #f0f0f0);
}

.inimark-editor-context-icon-btn.is-active {
  background: color-mix(in srgb, var(--inimark-accent, #4078c0) 14%, transparent);
}

.inimark-editor-context-icon-btn.is-danger {
  color: #e5484d;
}

.inimark-editor-context-icon-btn.is-danger:hover,
.inimark-editor-context-icon-btn.is-danger:focus-visible {
  background: color-mix(in srgb, #e5484d 14%, transparent);
}

.inimark-editor-context-icon-btn svg {
  width: 1rem;
  height: 1rem;
}

.inimark-editor-context-divider {
  height: 1px;
  margin: 4px 2px;
  background: var(--inimark-border, #e3e3e3);
}

.inimark-editor-context-item {
  display: flex;
  align-items: center;
  width: 100%;
  gap: 0.5rem;
  min-height: var(--inimark-menu-row-height, 28px);
  padding: var(--inimark-menu-item-padding-y, 4px) var(--inimark-control-padding-x, 8px);
  border: 0;
  border-radius: var(--inimark-radius-menu-item, var(--inimark-radius-control, 6px));
  background: transparent;
  color: var(--inimark-fg, #1f1f1f);
  font: inherit;
  font-size: inherit;
  text-align: left;
  cursor: pointer;
  transition: background var(--inimark-control-transition, 150ms ease);
}

.inimark-editor-context-item:hover,
.inimark-editor-context-item:focus-visible {
  background: var(--inimark-hover, #f0f0f0);
}

.inimark-editor-context-item.is-danger {
  color: #e5484d;
}

.inimark-editor-context-item.is-danger:hover,
.inimark-editor-context-item.is-danger:focus-visible {
  background: color-mix(in srgb, #e5484d 14%, transparent);
}

.inimark-editor-context-item-label {
  flex: 1;
  min-width: 0;
}

.inimark-editor-context-item-shortcut {
  margin-left: 0.75rem;
  color: var(--inimark-muted-fg, #666);
  font-size: 11px;
  white-space: nowrap;
}

.inimark-menu__heading {
  margin: 4px 8px 2px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--inimark-muted-fg, #666);
}

/* ─── Table toolbar (body-mounted floating UI) ───────────────────── */
.table-toolbar.inimark-editor-context-menu,
.table-rc-toolbar.inimark-editor-context-menu {
  position: fixed;
  display: none;
  z-index: 60;
  min-width: auto;
}

.table-toolbar__sep {
  width: 1px;
  align-self: stretch;
  margin: 4px 2px;
  background: var(--inimark-border, #e3e3e3);
}

.table-resize-popup.inimark-editor-context-menu {
  position: fixed;
  display: none;
  z-index: 61;
  min-width: auto;
  box-sizing: border-box;
  overflow: visible;
  padding: var(--inimark-menu-padding, 4px);
  padding-bottom: var(--inimark-space-2, 8px);
}

.table-insert-dialog {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  padding: var(--inimark-space-4, 1rem);
  background: color-mix(in srgb, #000 35%, transparent);
}

.table-insert-dialog__panel {
  width: min(18rem, 100%);
  padding: var(--inimark-space-4, 1rem);
  border-radius: var(--inimark-radius-md, 0.5rem);
  color: var(--inimark-fg, #1f1f1f);
  font-family: var(--inimark-font-ui, system-ui, -apple-system, sans-serif);
  font-size: var(--inimark-control-font-size, 13px);
}

.table-insert-dialog__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
}

.table-insert-dialog__form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--inimark-space-3, 0.75rem);
  margin: var(--inimark-space-3, 0.75rem) 0 var(--inimark-space-4, 1rem);
}

.table-insert-dialog__field {
  display: flex;
  flex-direction: column;
  gap: var(--inimark-space-1, 0.25rem);
}

.table-insert-dialog__label {
  color: var(--inimark-muted-fg, #666);
  font-size: 0.85rem;
}

.table-insert-dialog__input {
  box-sizing: border-box;
  width: 100%;
  min-height: var(--inimark-control-height, 28px);
  height: var(--inimark-control-height, 28px);
  padding: 0 var(--inimark-control-padding-x, 8px);
  border: 1px solid var(--inimark-border, #d0d0d0);
  border-radius: var(--inimark-radius-control, 6px);
  background: var(--inimark-input-bg, var(--inimark-content-bg, #fff));
  color: var(--inimark-fg, #1f1f1f);
  font: inherit;
  line-height: 1.25;
  appearance: textfield;
  -moz-appearance: textfield;
}

.table-insert-dialog__input:focus {
  outline: none;
  border-color: var(--inimark-accent, #4078c0);
  box-shadow: 0 0 0 2px var(--inimark-focus-ring, color-mix(in srgb, var(--inimark-accent, #4078c0) 45%, transparent));
}

.table-insert-dialog__input[type="number"]::-webkit-inner-spin-button,
.table-insert-dialog__input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.table-insert-dialog__actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--inimark-space-2, 0.5rem);
}

.table-insert-dialog__btn {
  min-width: 4.5rem;
  min-height: var(--inimark-control-height, 28px);
  padding: 0 var(--inimark-control-padding-x, 8px);
  border: 1px solid var(--inimark-border, #d0d0d0);
  border-radius: var(--inimark-radius-control, 6px);
  background: var(--inimark-surface, #fff);
  color: var(--inimark-fg, #1f1f1f);
  font: inherit;
  cursor: pointer;
  transition: background var(--inimark-control-transition, 150ms ease);
}

.table-insert-dialog__btn:hover {
  background: var(--inimark-hover, #f0f0f0);
}

.table-insert-dialog__btn--primary {
  border-color: var(--inimark-accent, #4078c0);
  background: var(--inimark-accent, #4078c0);
  color: var(--inimark-accent-fg, #fff);
}

.table-insert-dialog__btn--primary:hover {
  background: var(--accent-hover, var(--inimark-accent, #4078c0));
}

.table-rc-popup.inimark-editor-context-submenu {
  position: fixed;
  display: none;
  z-index: 61;
  min-width: 11.5rem;
}

.cb-action.inimark-glass,
.cb-lang-input.inimark-glass,
.cb-lang-menu.inimark-glass {
  background: var(--inimark-glass-bg, var(--inimark-surface-raised, var(--inimark-surface, #fff)));
  border: 1px solid var(--inimark-glass-border, var(--inimark-border, #e3e3e3));
  box-shadow: var(--inimark-glass-shadow, 0 8px 28px color-mix(in srgb, #000 14%, transparent));
}

html[data-glass="true"] .cb-action.inimark-glass,
html[data-glass="true"] .cb-lang-input.inimark-glass,
html[data-glass="true"] .cb-lang-menu.inimark-glass {
  backdrop-filter: blur(var(--inimark-glass-blur, 18px)) saturate(var(--inimark-glass-saturate, 180%));
  -webkit-backdrop-filter: blur(var(--inimark-glass-blur, 18px)) saturate(var(--inimark-glass-saturate, 180%));
}

.table-resize-grid {
  display: grid;
  grid-template-columns: repeat(10, 18px);
  gap: 3px;
  margin: var(--inimark-menu-padding, 4px);
  margin-bottom: var(--inimark-space-1, 4px);
}

.table-resize-cell {
  width: 18px;
  height: 18px;
  border: 1px solid var(--inimark-border, #ccc);
  border-radius: calc(var(--inimark-radius-control, 6px) * 0.5);
  background: var(--inimark-input-bg, var(--inimark-content-bg, #fff));
  cursor: pointer;
  transition:
    background var(--inimark-control-transition, 150ms ease),
    border-color var(--inimark-control-transition, 150ms ease);
}

.table-resize-cell.hover {
  background: color-mix(in srgb, var(--inimark-accent, #4078c0) 55%, transparent);
  border-color: var(--inimark-accent, #4078c0);
}

.table-resize-inputs {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--inimark-space-2, 6px);
  margin: 0;
  padding: var(--inimark-space-2, 8px) var(--inimark-menu-padding, 4px) 0;
  border-top: 1px solid var(--inimark-border, #eee);
  color: var(--inimark-muted-fg, #555);
  flex-shrink: 0;
}

.table-resize-inputs input {
  box-sizing: border-box;
  width: 2.75rem;
  min-height: var(--inimark-control-height, 28px);
  height: var(--inimark-control-height, 28px);
  padding: 0 var(--inimark-space-1, 4px);
  border: 1px solid var(--inimark-border, #d0d0d0);
  border-radius: var(--inimark-radius-control, 6px);
  background: var(--inimark-input-bg, var(--inimark-content-bg, #fff));
  color: var(--inimark-fg, #1f1f1f);
  text-align: center;
  font: inherit;
  line-height: 1.25;
  appearance: textfield;
  -moz-appearance: textfield;
  transition:
    border-color var(--inimark-control-transition, 150ms ease),
    background var(--inimark-control-transition, 150ms ease);
}

.table-resize-inputs input[type="number"]::-webkit-inner-spin-button,
.table-resize-inputs input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.table-resize-inputs input:focus {
  outline: none;
  border-color: var(--inimark-accent, #4078c0);
  box-shadow: 0 0 0 2px var(--inimark-focus-ring, color-mix(in srgb, var(--inimark-accent, #4078c0) 45%, transparent));
}

/* ─── built-in dark appearance for editor chrome ────────────────── */
:root[data-appearance="dark"] .ProseMirror .syntax-hint,
:root[data-appearance="dark"] .ProseMirror .syntax-hint-italic {
  color: #6f747b;
}
:root[data-appearance="dark"] .ProseMirror .play-caret {
  background: #ece7dd;
}
:root[data-appearance="dark"] .ProseMirror .selection-marker {
  color: #ece7dd;
}
:root[data-appearance="dark"] .ProseMirror mark-comment {
  color: #858a91;
}
:root[data-appearance="dark"] .ProseMirror html-block .html-comment-source {
  color: #858a91;
}
:root[data-appearance="dark"] .ProseMirror html-block .html-block-source {
  background: transparent;
  color: #e4ded4;
}
:root[data-appearance="dark"] .ProseMirror math-inline[data-math-state="error"],
:root[data-appearance="dark"] .ProseMirror math-preview[data-math-state="error"] {
  color: #ff8f86;
}
:root[data-appearance="dark"] .ProseMirror math-source {
  background: rgba(232, 225, 214, 0.08);
}
:root[data-appearance="dark"] .ProseMirror ref-def {
  color: #bbb4aa;
}
:root[data-appearance="dark"] .ProseMirror ref-label::before,
:root[data-appearance="dark"] .ProseMirror ref-label::after,
:root[data-appearance="dark"] .ProseMirror ref-title::before,
:root[data-appearance="dark"] .ProseMirror ref-title::after {
  color: #6f747b;
}
:root[data-appearance="dark"] .ProseMirror ref-url {
  color: #8ab4e7;
}
:root[data-appearance="dark"] .ProseMirror ref-title {
  color: #aaa399;
}
:root[data-appearance="dark"] .ProseMirror yaml-block {
  color: var(--text-secondary, #d8d3ca);
  background: var(--metadata-bg, var(--bg-code, #292722));
  border-color: var(--metadata-border, var(--border, #3c3f43));
}
:root[data-appearance="dark"] .ProseMirror .toc {
  background: #24262a;
  border-color: #34373c;
}
:root[data-appearance="dark"] .ProseMirror .toc-empty,
:root[data-appearance="dark"] .ProseMirror .toc-item {
  color: #aaa399;
}
:root[data-appearance="dark"] .ProseMirror .toc-item:hover {
  color: #ece7dd;
}
:root[data-appearance="dark"] .ProseMirror .more-break__rule {
  background: color-mix(in srgb, var(--fg, #ece7dd) 22%, transparent);
}
:root[data-appearance="dark"] .ProseMirror .more-break__label {
  color: #aaa399;
}
:root[data-appearance="dark"] .ProseMirror .emoji-completion {
  background: #25272b;
  border-color: #3c3f43;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.32);
}
:root[data-appearance="dark"] .ProseMirror .emoji-completion-row:hover {
  background: #303339;
}
:root[data-appearance="dark"] .ProseMirror .emoji-completion-row.selected {
  background: #343044;
}
:root[data-appearance="dark"] .ProseMirror .emoji-completion-name {
  color: #bbb4aa;
}
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel {
  background: transparent;
}
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg {
  color: #ece7dd;
}
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .nodeLabel,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .edgeLabel,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .markdown-node-label,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .section-root span {
  color: #ece7dd !important;
}
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .branch-label0,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .branch-label1,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .branch-label2,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .branch-label3,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .branch-label4,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .branch-label5,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .branch-label6,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .branch-label7,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .branch-label8,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .branch-label9,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .branch-label10,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .branch-label11,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .packetByte,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .packetLabel,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .packetTitle,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .treeView-node-label,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg text.actor,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .section-root text,
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .wardley-node-label[fill="#000"] {
  fill: #ece7dd !important;
}
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .treeView-node-line {
  stroke: #aeb6c2 !important;
}
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel svg .packetBlock {
  fill: #25272b !important;
  stroke: #6e7681 !important;
}
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel[data-diagram-state="loading"]::before {
  color: #8b8f95;
}
:root[data-appearance="dark"] .ProseMirror .code-block-node .diagram-panel[data-diagram-state="error"] {
  color: #ff8f86;
}

/* ── Wiki links ──────────────────────────────────────────────────── */

.ProseMirror .wiki-link-widget {
  color: var(--accent, #3b82f6);
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}
.ProseMirror .wiki-link-widget.is-unresolved {
  color: var(--danger, #ef4444);
  text-decoration-style: dashed;
}
.ProseMirror .wiki-embed-image {
  display: block;
  max-width: 100%;
  margin: 0.4em 0;
  border-radius: 4px;
}
.ProseMirror .wiki-embed-image.is-unresolved {
  display: inline;
  color: var(--danger, #ef4444);
  text-decoration: underline dashed;
  cursor: pointer;
}
.ProseMirror .wiki-embed-note {
  margin: 0.5em 0;
  padding: 0.55em 0.75em;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 6px;
  background: color-mix(in srgb, var(--accent, #3b82f6) 6%, transparent);
  cursor: pointer;
}
.ProseMirror .wiki-embed-note.is-unresolved {
  border-style: dashed;
  color: var(--danger, #ef4444);
}
.ProseMirror .wiki-embed-note-title {
  font-weight: 600;
  font-size: 0.92em;
}

/* Wiki-link autocomplete — body-mounted fixed popup, chrome matches .inimark-menu */
.wiki-link-autocomplete.inimark-menu {
  position: fixed;
  z-index: 60;
  display: flex;
  flex-direction: column;
  min-width: 14rem;
  max-width: 26rem;
  max-height: 14rem;
  overflow: hidden;
  opacity: 1;
  transform: none;
  pointer-events: auto;
  font-family: var(--inimark-font-ui, system-ui, -apple-system, sans-serif);
  user-select: none;
}

.wiki-link-autocomplete__viewport {
  max-height: 14rem;
  overflow: auto;
}

.wiki-link-autocomplete__heading {
  display: flex;
  align-items: center;
  margin: 0;
  box-sizing: border-box;
}

.wiki-link-autocomplete__spacer {
  position: relative;
  width: 100%;
}

.wiki-link-autocomplete__window {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
}

.wiki-link-autocomplete__row {
  display: flex;
  width: 100%;
  height: 30px;
  min-height: 30px;
  box-sizing: border-box;
}

.wiki-link-autocomplete .inimark-menu-item {
  width: 100%;
}

.wiki-link-autocomplete .inimark-menu-item__content {
  width: 100%;
  min-width: 0;
  gap: 0.75rem;
}

.wiki-link-autocomplete .inimark-menu-item__name-row {
  flex: 1;
  min-width: 0;
}

.wiki-link-autocomplete .inimark-menu-item__name {
  font-weight: 500;
}

.wiki-link-autocomplete .inimark-menu-item__meta {
  flex-shrink: 0;
  margin-left: auto;
  max-width: 58%;
  font-size: 0.85em;
  text-align: right;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wiki-link-preview {
  position: fixed;
  z-index: 1000;
  display: flex;
  flex-direction: column;
  width: min(32rem, calc(100vw - 1.5rem));
  max-height: min(28rem, 70vh);
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--inimark-border, var(--border, #e5e7eb));
  border-radius: 10px;
  background: var(--inimark-content-bg, var(--bg-primary, var(--bg, #fff)));
  color: var(--inimark-fg, var(--text-primary, var(--fg, #111)));
  box-shadow:
    0 12px 36px rgba(0, 0, 0, 0.22),
    0 0 0 1px color-mix(in srgb, var(--inimark-border, var(--border, #000)) 35%, transparent);
  font-size: 13px;
  line-height: 1.55;
  white-space: normal;
}

.wiki-link-preview-toolbar {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
  padding: 0.45rem 0.55rem 0.45rem 0.75rem;
  border-bottom: 1px solid var(--inimark-border, var(--border, #e5e7eb));
  background: color-mix(
    in srgb,
    var(--inimark-surface, var(--bg-surface, #f3f4f6)) 70%,
    var(--inimark-content-bg, var(--bg-primary, #fff))
  );
}

.wiki-link-preview-path {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--inimark-muted-fg, var(--text-secondary, #6b7280));
  font-size: 11px;
  font-weight: 500;
}

.wiki-link-preview-open {
  display: inline-grid;
  place-items: center;
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: var(--inimark-muted-fg, var(--text-secondary, #6b7280));
  cursor: pointer;
}

.wiki-link-preview-open:hover {
  color: var(--inimark-fg, var(--text-primary, #111));
  background: var(--inimark-hover, var(--bg-hover, rgba(0, 0, 0, 0.06)));
}

.wiki-link-preview-open .inimark-icon,
.wiki-link-preview-open svg {
  width: 0.875rem;
  height: 0.875rem;
}

.wiki-link-preview-body {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 0.65rem 0.95rem 0.9rem;
  overscroll-behavior: contain;
}

/* Read-only PM surface — inherit editor theme typography; drop editor min-height. */
.wiki-link-preview-body .ProseMirror {
  min-height: 0;
  padding: 0;
  font-size: var(--inimark-editor-font-size, 15px);
  font-family: var(--editor-font, var(--inimark-font-ui, inherit));
  line-height: 1.65;
  cursor: default;
}

.wiki-link-preview-body .ProseMirror-focused {
  outline: none;
}

.wiki-link-preview-missing {
  width: auto;
  max-width: min(24rem, calc(100vw - 1.5rem));
  max-height: none;
  padding: 0.55rem 0.8rem;
  cursor: default;
}

.wiki-link-preview-missing-action {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 13px;
  line-height: 1.45;
  text-align: left;
  cursor: pointer;
}

.wiki-link-preview-missing-action:hover {
  color: var(--accent, #3b82f6);
}

/* ─── callouts (MPE / mkdocs-material admonition style — theme-independent) ─── */
/* Icons: Material Design Icons via mkdocs-material (Apache-2.0). Colors: Material A-tones. */

.ProseMirror blockquote.md-alert {
  --md-alert-color: #448aff;
  --md-alert-bg: color-mix(in srgb, var(--md-alert-color) 14%, transparent);
  display: grid;
  grid-template-columns: 1.25em minmax(0, 1fr);
  column-gap: 0.5em;
  row-gap: 0.5em;
  margin: 0 0 1em;
  padding: 0.78em 1em 0.82em;
  color: var(--text-primary, #2d333b);
  background: var(--md-alert-bg);
  /* Obsidian-like: no border; soft color glow only on hover. */
  border: none;
  border-radius: 4px;
  box-shadow: 0 0 0 0 transparent;
  transition: box-shadow 180ms ease;
}

.ProseMirror blockquote.md-alert:hover {
  box-shadow: 0 0 12px color-mix(in srgb, var(--md-alert-color) 16%, transparent);
}

@media (prefers-reduced-motion: reduce) {
  .ProseMirror blockquote.md-alert {
    transition: none;
  }
}

.ProseMirror blockquote.md-alert::before {
  content: "";
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  width: 1.25em;
  height: 1.25em;
  background-color: var(--md-alert-color);
  mask-image: var(--md-alert-icon);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
  -webkit-mask-image: var(--md-alert-icon);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
}

.ProseMirror blockquote.md-alert::after {
  content: var(--md-alert-label);
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  color: var(--md-alert-color);
  font-size: 0.9em;
  font-weight: 700;
  line-height: 1.35;
}

.ProseMirror blockquote.md-alert > * {
  grid-column: 1 / -1;
}

.ProseMirror blockquote.md-alert > :first-child { margin-top: 0; }
.ProseMirror blockquote.md-alert > :last-child { margin-bottom: 0; }

.ProseMirror blockquote.md-alert-note {
  --md-alert-color: #448aff;
  --md-alert-label: "Note";
  --md-alert-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20fill%3D'black'%20d%3D'M12%202C6.47%202%202%206.47%202%2012s4.47%2010%2010%2010%2010-4.47%2010-10S17.53%202%2012%202m3.1%205.07c.14%200%20.28.05.4.16l1.27%201.27c.23.22.23.57%200%20.78l-1%201-2.05-2.05%201-1c.1-.11.24-.16.38-.16m-1.97%201.74%202.06%202.06-6.06%206.06H7.07v-2.06z'%2F%3E%3C%2Fsvg%3E");
}

.ProseMirror blockquote.md-alert-tip {
  --md-alert-color: #00bfa5;
  --md-alert-label: "Tip";
  --md-alert-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20fill%3D'black'%20d%3D'M17.66%2011.2c-.23-.3-.51-.56-.77-.82-.67-.6-1.43-1.03-2.07-1.66C13.33%207.26%2013%204.85%2013.95%203c-.95.23-1.78.75-2.49%201.32-2.59%202.08-3.61%205.75-2.39%208.9.04.1.08.2.08.33%200%20.22-.15.42-.35.5-.23.1-.47.04-.66-.12a.6.6%200%200%201-.14-.17c-1.13-1.43-1.31-3.48-.55-5.12C5.78%2010%204.87%2012.3%205%2014.47c.06.5.12%201%20.29%201.5.14.6.41%201.2.71%201.73%201.08%201.73%202.95%202.97%204.96%203.22%202.14.27%204.43-.12%206.07-1.6%201.83-1.66%202.47-4.32%201.53-6.6l-.13-.26c-.21-.46-.77-1.26-.77-1.26m-3.16%206.3c-.28.24-.74.5-1.1.6-1.12.4-2.24-.16-2.9-.82%201.19-.28%201.9-1.16%202.11-2.05.17-.8-.15-1.46-.28-2.23-.12-.74-.1-1.37.17-2.06.19.38.39.76.63%201.06.77%201%201.98%201.44%202.24%202.8.04.14.06.28.06.43.03.82-.33%201.72-.93%202.27'%2F%3E%3C%2Fsvg%3E");
}

.ProseMirror blockquote.md-alert-important {
  --md-alert-color: #00bfa5;
  --md-alert-label: "Important";
  --md-alert-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20fill%3D'black'%20d%3D'M17.66%2011.2c-.23-.3-.51-.56-.77-.82-.67-.6-1.43-1.03-2.07-1.66C13.33%207.26%2013%204.85%2013.95%203c-.95.23-1.78.75-2.49%201.32-2.59%202.08-3.61%205.75-2.39%208.9.04.1.08.2.08.33%200%20.22-.15.42-.35.5-.23.1-.47.04-.66-.12a.6.6%200%200%201-.14-.17c-1.13-1.43-1.31-3.48-.55-5.12C5.78%2010%204.87%2012.3%205%2014.47c.06.5.12%201%20.29%201.5.14.6.41%201.2.71%201.73%201.08%201.73%202.95%202.97%204.96%203.22%202.14.27%204.43-.12%206.07-1.6%201.83-1.66%202.47-4.32%201.53-6.6l-.13-.26c-.21-.46-.77-1.26-.77-1.26m-3.16%206.3c-.28.24-.74.5-1.1.6-1.12.4-2.24-.16-2.9-.82%201.19-.28%201.9-1.16%202.11-2.05.17-.8-.15-1.46-.28-2.23-.12-.74-.1-1.37.17-2.06.19.38.39.76.63%201.06.77%201%201.98%201.44%202.24%202.8.04.14.06.28.06.43.03.82-.33%201.72-.93%202.27'%2F%3E%3C%2Fsvg%3E");
}

.ProseMirror blockquote.md-alert-warning {
  --md-alert-color: #ff9100;
  --md-alert-label: "Warning";
  --md-alert-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20fill%3D'black'%20d%3D'M13%2014h-2V9h2m0%209h-2v-2h2M1%2021h22L12%202z'%2F%3E%3C%2Fsvg%3E");
}

.ProseMirror blockquote.md-alert-danger {
  --md-alert-color: #ff1744;
  --md-alert-label: "Danger";
  --md-alert-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%3E%3Cpath%20fill%3D'black'%20d%3D'm11.5%2020%204.86-9.73H13V4l-5%209.73h3.5zM12%202c2.75%200%205.1%201%207.05%202.95S22%209.25%2022%2012s-1%205.1-2.95%207.05S14.75%2022%2012%2022s-5.1-1-7.05-2.95S2%2014.75%202%2012s1-5.1%202.95-7.05S9.25%202%2012%202'%2F%3E%3C%2Fsvg%3E");
}

/*
 * Typora-flavored minimal theme.
 *
 * Aesthetic only. Light, thin, restrained — closer to a manuscript
 * than a GitHub README. No heading underlines, light borders, soft
 * code background, generous line-height.
 *
 * Colors / radii / paddings read theme CSS variables so the theme
 * editor and code themes actually affect the live editor.
 *
 * All rules scope to `.ProseMirror` — the theme only styles the
 * editor body, never the surrounding website chrome.
 */

.ProseMirror {
  font-family: var(
    --editor-font,
    -apple-system,
    "PingFang SC",
    "Helvetica Neue",
    Helvetica,
    Arial,
    sans-serif,
    "Apple Color Emoji",
    "Segoe UI Emoji"
  );
  /* Comfortable long-form measure: slightly larger type, open leading.
   * Column width is controlled by the host paper (.page-home), not here,
   * so wide blocks (tables, Mermaid) can still use full editor width. */
  font-size: var(--editor-font-size, 17px);
  line-height: var(--editor-line-height, 1.78);
  color: var(--text-primary, #2c2c2c);
  word-wrap: break-word;
  letter-spacing: 0.005em;
}

/* ─── headings ───────────────────────────────────────────────────── */
.ProseMirror h1,
.ProseMirror h2,
.ProseMirror h3,
.ProseMirror h4,
.ProseMirror h5,
.ProseMirror h6 {
  margin: 1.75em 0 0.7em;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text-strong, var(--text-primary, #1f1f1f));
  letter-spacing: -0.01em;
}
.ProseMirror > :first-child { margin-top: 0; }
.ProseMirror h1 { font-size: 1.7em; margin-top: 0.4em; }
.ProseMirror h2 { font-size: 1.38em; }
.ProseMirror h3 { font-size: 1.18em; }
.ProseMirror h4 { font-size: 1.05em; }
.ProseMirror h5 { font-size: 1em; }
.ProseMirror h6 { font-size: 0.95em; }

/* ─── paragraphs ─────────────────────────────────────────────────── */
.ProseMirror p { margin: 0 0 var(--editor-paragraph-spacing, 1.05em); }

/* Display-only first-line indent (~2 CJK character widths). Markdown unchanged. */
html[data-first-line-indent="true"] .ProseMirror > p {
  text-indent: 2em;
}
.ProseMirror p:last-child { margin-bottom: 0; }

/* ─── links ──────────────────────────────────────────────────────── */
.ProseMirror a {
  color: var(--accent, #4078c0);
  text-decoration: none;
  border-bottom: 1px solid color-mix(in srgb, var(--accent, #4078c0) 25%, transparent);
}
.ProseMirror a:hover {
  color: var(--accent-hover, var(--accent, #4078c0));
  border-bottom-color: var(--accent-hover, var(--accent, #4078c0));
}

/* ─── strong ─────────────────────────────────────────────────────── */
.ProseMirror strong,
.ProseMirror b {
  color: var(--text-strong, inherit);
  font-weight: 600;
}

/* ─── inline code / pre ──────────────────────────────────────────── */
.ProseMirror code {
  font-family: var(
    --font-mono,
    "SF Mono",
    "Source Code Pro",
    Consolas,
    ui-monospace,
    monospace
  );
  font-size: var(--font-mono-size, 0.9em);
  padding: var(--padding-code-inline-y, 0.15em) var(--padding-code-inline-x, 0.35em);
  margin: 0;
  background: var(--bg-code-inline, rgba(0, 0, 0, 0.04));
  color: var(--text-code, inherit);
  border: var(--code-inline-border-width, 1px) solid
    var(--code-inline-border, var(--border, transparent));
  border-radius: var(--radius-code-inline, 3px);
  white-space: break-spaces;
}
.ProseMirror pre {
  font-family: var(
    --font-mono,
    "SF Mono",
    "Source Code Pro",
    Consolas,
    ui-monospace,
    monospace
  );
  font-size: var(--font-mono-size, 0.88em);
  line-height: var(--code-line-height, 1.5);
  background: var(--bg-code, #f8f8f8);
  color: var(--text-primary, inherit);
  padding: 12px 14px;
  margin: 0 0 1em;
  border-radius: var(--radius-code-block, 4px);
  overflow-x: hidden;
  overflow-y: visible;
  border: 1px solid var(--border, #ececec);
  overflow-wrap: anywhere;
  word-break: break-word;
}
.ProseMirror pre code {
  display: inline;
  padding: 0;
  margin: 0;
  background: transparent;
  border: none;
  color: inherit;
  border-radius: 0;
  font-size: 100%;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* ─── blockquote ─────────────────────────────────────────────────── */
.ProseMirror blockquote {
  margin: 0 0 1em;
  padding: var(--padding-blockquote-y, 0) var(--padding-blockquote-x, 1em);
  color: var(--blockquote-text, var(--text-secondary, #666));
  background: var(--blockquote-bg, transparent);
  border-left: var(--blockquote-border-width, 3px) solid
    var(--blockquote-border, var(--border, #ddd));
}
.ProseMirror blockquote > :first-child { margin-top: 0; }
.ProseMirror blockquote > :last-child { margin-bottom: 0; }

/* ─── lists ──────────────────────────────────────────────────────── */
.ProseMirror ul,
.ProseMirror ol {
  --list-indent: 1.6em;
  margin: 0 0 1em;
  padding-left: var(--list-indent);
}
.ProseMirror ul ul,
.ProseMirror ul ol,
.ProseMirror ol ul,
.ProseMirror ol ol { margin-bottom: 0; }
.ProseMirror li > p { margin-bottom: 0; }

/* ─── horizontal rule ────────────────────────────────────────────── */
.ProseMirror hr {
  height: 1px;
  padding: 0;
  margin: 1.6em 0;
  background: var(--border, #ddd);
  border: 0;
}

/* ─── tables (cells; layout from widgets.css) ────────────────────── */
.ProseMirror table {
  border-radius: var(--radius-table, 0);
  overflow: hidden;
}
.ProseMirror table th,
.ProseMirror table td {
  padding: 6px 10px;
  border: 1px solid var(--border, #ddd);
  vertical-align: top;
  background: var(--table-cell-bg, transparent);
}
.ProseMirror table th {
  font-weight: 600;
  background: var(--table-header-bg, var(--bg-secondary, #fafafa));
}

/* ─── tags (when present) ────────────────────────────────────────── */
.ProseMirror .tag,
.ProseMirror [data-type="tag"] {
  display: inline-block;
  /* Parent line-height (often ~1.6–1.8) would otherwise inflate the chip. */
  line-height: 1.2;
  vertical-align: baseline;
  background: var(--tag-bg, color-mix(in srgb, var(--accent, #4078c0) 15%, transparent));
  color: var(--tag-text, var(--accent, #4078c0));
  border: 1px solid var(--tag-border, color-mix(in srgb, var(--accent, #4078c0) 20%, transparent));
  border-radius: var(--radius-tag, 20px);
  padding: var(--padding-tag-y, 2px) var(--padding-tag-x, 7px);
  font-size: 0.9em;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

/* ─── extension marks ────────────────────────────────────────────── */
.ProseMirror mark {
  background: #fff3a3;
  color: inherit;
  padding: 0 0.1em;
  border-radius: 2px;
}
.ProseMirror del { color: inherit; }

/* Vault / find search hits */
.ProseMirror .tw-search-hit {
  background: #e6c07b;
  color: #1a1a1a;
  border-radius: 2px;
  padding: 0 1px;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
.ProseMirror .tw-search-hit--active {
  background: #f0a202;
  outline: 1px solid color-mix(in srgb, #f0a202 55%, #000);
}

/* Outline / TOC jump flash */
.ProseMirror .tw-heading-flash {
  border-radius: 4px;
  animation: tw-heading-flash-fade 1s ease-out;
  background: color-mix(in srgb, var(--accent, #0969da) 22%, transparent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent, #0969da) 35%, transparent);
}

@keyframes tw-heading-flash-fade {
  0% {
    background: color-mix(in srgb, var(--accent, #0969da) 34%, transparent);
  }
  100% {
    background: transparent;
    box-shadow: 0 0 0 2px transparent;
  }
}

/* Inimark published site layout */
*, *::before, *::after { box-sizing: border-box; }
html {
  margin: 0;
  background: var(--bg-primary);
  color: var(--text-primary);
  font-family: var(--font-ui, system-ui, sans-serif);
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb, #888) transparent;
}
body {
  margin: 0;
  min-height: 100%;
  background: var(--bg-primary);
  color: var(--text-primary);
  font-family: var(--font-ui, system-ui, sans-serif);
}
/* Keep native / hover scrollbars in sync with the active theme.
   Without this, macOS WebKit can flash a light legacy scrollbar when
   the pointer sits on the bar (overlay -> always-visible switch). */
html { color-scheme: dark; }
html[data-theme="light"],
html[data-theme="grey"],
html[data-theme="slate"],
html[data-theme="claude-code"],
html[data-theme="mint"],
html[data-theme="purple"],
html[data-theme="hermes"] { color-scheme: light; }
html[data-theme="ocean"],
html[data-theme="dark-modern"],
html[data-theme="cursor"],
html[data-theme="dracula"] { color-scheme: dark; }

html::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
html::-webkit-scrollbar-track {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}
html::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb, #888);
  border-radius: var(--radius-scrollbar, 4px);
  border: 2px solid transparent;
  background-clip: padding-box;
}
html::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover, #aaa);
  border: 2px solid transparent;
  background-clip: padding-box;
}
html::-webkit-scrollbar-corner {
  background: transparent;
}
.site-nav::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.site-nav::-webkit-scrollbar-track {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
}
.site-nav::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb, #888);
  border-radius: var(--radius-scrollbar, 4px);
  border: 2px solid transparent;
  background-clip: padding-box;
}
.site-nav::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover, #aaa);
  border: 2px solid transparent;
  background-clip: padding-box;
}
.site-nav::-webkit-scrollbar-corner {
  background: transparent;
}

.site-body {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}
/* Centered three-column cluster; sidebars are fixed on wide screens. */
.site-layout {
  --site-gutter: 20px;
  --site-sidebar-w: 260px;
  --site-rail-w: 312px;
  --site-main-max: 48rem;
  --site-main-w: min(var(--site-main-max), calc(100vw - var(--site-sidebar-w) - var(--site-rail-w) - 2 * var(--site-gutter)));
  --site-cluster-w: calc(var(--site-sidebar-w) + var(--site-main-w) + var(--site-rail-w));
  --site-cluster-left: max(var(--site-gutter), calc((100vw - var(--site-cluster-w)) / 2));
  --site-cluster-right: max(var(--site-gutter), calc((100vw - var(--site-cluster-w)) / 2));
  --site-sidebar-gap: 32px;
  --site-rail-inset: 32px;
  flex: 1;
  display: grid;
  grid-template-columns: var(--site-sidebar-w) minmax(0, var(--site-main-w)) var(--site-rail-w);
  justify-content: center;
  align-items: start;
  column-gap: 0;
  row-gap: 14px;
  width: 100%;
  max-width: 100%;
  margin: 0 auto;
  padding: 14px var(--site-gutter) 48px;
  background: var(--bg-primary);
}
.site-sidebar,
.site-rail,
.site-graph,
.site-outline {
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  min-height: 0;
}
.site-sidebar {
  display: flex;
  flex-direction: column;
  padding: 0 10px 0 0;
  margin-right: var(--site-sidebar-gap);
  border-right: 1px solid var(--border);
  overflow: hidden;
}
.site-sidebar-head {
  flex-shrink: 0;
  padding: 16px 4px 14px;
  border-bottom: none;
}
.site-home-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 0 10px 8px;
  padding: 4px 8px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--text-secondary);
  text-decoration: none;
}
.site-home-link::before {
  content: "←";
  font-weight: 700;
}
.site-home-link:hover {
  color: var(--accent);
  background: var(--bg-hover, transparent);
}
.site-sidebar-head-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding-right: 6px;
}
.site-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
  color: var(--text-strong, var(--text-primary));
  text-decoration: none;
  font-weight: 700;
  font-size: 17px;
  line-height: 1.3;
  letter-spacing: -0.01em;
  padding: 2px 10px 10px;
}
.site-brand-icon {
  display: block;
  width: 28px;
  height: 28px;
  border-radius: 7px;
  flex-shrink: 0;
  object-fit: cover;
}
.site-brand span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.site-brand:hover { color: var(--accent); }
.site-theme-toggle {
  flex-shrink: 0;
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  margin-top: 0;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
}
.site-theme-toggle:hover {
  color: var(--text-primary);
  border-color: color-mix(in srgb, var(--accent) 40%, var(--border));
  background: var(--bg-hover, transparent);
}
.site-theme-toggle .site-theme-icon {
  display: none;
}
html[data-appearance="dark"] .site-theme-toggle .site-theme-icon-sun,
html:not([data-appearance="dark"]) .site-theme-toggle .site-theme-icon-moon {
  display: block;
}
.site-lang {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 10px 10px 12px;
}
.site-lang-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  color: var(--text-secondary);
  text-decoration: none;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.2;
  background: transparent;
}
.site-lang-btn:hover {
  color: var(--accent);
  background: var(--bg-hover);
}
.site-lang-btn.is-active {
  color: var(--accent);
  border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
  background: rgba(var(--accent-rgb, 116, 167, 254), 0.12);
}
.site-nav {
  flex: 1;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 10px 4px 16px;
  min-height: 0;
  visibility: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb, #888) transparent;
}
html[data-tree-ready] .site-nav {
  visibility: visible;
}
.site-rail {
  display: flex;
  flex-direction: column;
  gap: 18px;
  min-height: 0;
  overflow: hidden;
  padding: 14px 0 16px var(--site-rail-inset);
  margin-left: 16px;
  border: none;
}
.site-graph {
  flex: 0 0 auto;
}
.site-graph-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
.site-graph-head .site-rail-title {
  margin-bottom: 0;
}
.site-graph-actions {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.site-graph-btn {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
}
.site-graph-btn:hover {
  color: var(--accent);
  border-color: color-mix(in srgb, var(--accent) 45%, var(--border));
  background: var(--bg-hover);
}
.site-graph-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}
.site-graph-host {
  position: relative;
  width: 100%;
  height: 280px;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
  background: transparent;
}

/* Match desktop graph color tokens (tokens.css) for published themes. */
html {
  --inimark-accent: var(--accent);
  --inimark-graph-node: #b4b4b4;
  --inimark-graph-node-active: #d0d0d0;
  --inimark-graph-label: #dcdcdc;
  --inimark-graph-link: #3c3c3c;
  --inimark-graph-highlight: color-mix(in srgb, var(--accent) 62%, #6b7280 38%);
}
html[data-theme="light"],
html[data-theme="grey"] {
  --inimark-graph-node: #6e6e6e;
  --inimark-graph-node-active: #4a4a4a;
  --inimark-graph-label: #333333;
  --inimark-graph-link: #c4c4c4;
  --inimark-graph-highlight: color-mix(in srgb, var(--accent) 55%, #64748b 45%);
}
.site-graph-canvas {
  display: block;
  width: 100%;
  height: 100%;
  cursor: default;
  touch-action: none;
}
.site-graph-host[data-graph-preview] .site-graph-canvas,
.site-graph-host[data-graph-preview] .site-graph-canvas:active {
  cursor: default;
}
.site-graph-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: color-mix(in srgb, var(--bg-primary) 55%, transparent);
  backdrop-filter: blur(6px);
}
.site-graph-modal-dialog {
  width: min(1100px, 100%);
  height: min(780px, 100%);
  display: flex;
  flex-direction: column;
  background: var(--bg-primary);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);
  overflow: hidden;
}
.site-graph-modal-head {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--border);
}
.site-graph-modal-title {
  font-size: 14px;
  font-weight: 650;
  color: var(--text-strong, var(--text-primary));
}
.site-graph-modal-close {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--text-secondary);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.site-graph-modal-close:hover {
  color: var(--text-primary);
  background: var(--bg-hover);
}
.site-graph-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 10px;
}
.site-graph-modal-host {
  width: 100%;
  height: 100%;
  border: 1px solid var(--border);
  border-radius: 10px;
  overflow: hidden;
}
html.site-graph-modal-open,
html.site-graph-modal-open body {
  overflow: hidden;
}
.site-outline {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.site-outline::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
.site-main {
  overflow: visible;
  padding: 8px 16px 64px;
  min-width: 0;
  align-self: start;
}
.site-article {
  max-width: none;
  width: 100%;
  margin: 0;
}
/* Build-time Lezer token colors (same --tw-code-* vars as the editor). */
.site-article pre code .tok-comment { color: var(--tw-code-comment); }
.site-article pre code .tok-keyword { color: var(--tw-code-keyword); }
.site-article pre code .tok-string { color: var(--tw-code-string); }
.site-article pre code .tok-literal { color: var(--tw-code-literal); }
.site-article pre code .tok-type { color: var(--tw-code-type); }
.site-article pre code .tok-function { color: var(--tw-code-function); }
.site-article pre code .tok-name { color: var(--tw-code-name); }
.site-article pre code .tok-punctuation { color: var(--tw-code-punctuation); }
.site-article pre code .tok-meta { color: var(--tw-code-meta); }
.site-article pre code .tok-invalid { color: var(--tw-code-invalid); }
.site-article .code-block-node.has-diagram .diagram-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin: 8px 0 16px;
  overflow-x: auto;
  text-align: center;
}
.site-article .code-block-node.has-diagram .diagram-panel > svg,
.site-article .code-block-node.has-diagram .diagram-panel .mermaid > svg {
  display: block;
  margin-inline: auto;
  width: auto;
  max-width: 100%;
  height: auto;
}
.site-article .code-block-node.has-diagram .diagram-panel pre.mermaid {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  overflow: visible;
  width: auto;
  max-width: 100%;
  font: inherit;
  color: inherit;
  white-space: pre-wrap;
}
.site-article :is(h1, h2, h3, h4, h5, h6) {
  scroll-margin-top: 12px;
}
.site-links-footer {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid var(--border);
}
.site-links-footer-title {
  margin: 0 0 16px;
  font-size: 1.15rem;
  font-weight: 650;
  color: var(--text-strong, var(--text-primary));
  letter-spacing: -0.01em;
}
.site-links-footer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 28px;
}
@media (max-width: 640px) {
  .site-links-footer-grid {
    grid-template-columns: 1fr;
  }
}
.site-tree {
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-tree .site-tree {
  padding-left: 14px;
  margin-top: 4px;
}
.site-tree-toggle {
  display: flex;
  align-items: center;
  gap: 4px;
  width: 100%;
  text-align: left;
  background: transparent;
  border: 0;
  color: var(--text-secondary);
  font: inherit;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.4;
  padding: 7px 10px;
  border-radius: 8px;
  cursor: pointer;
}
.site-tree-toggle:hover { background: var(--bg-hover); }
.site-tree-chevron {
  display: inline-grid;
  place-items: center;
  width: 0.875rem;
  height: 0.875rem;
  flex-shrink: 0;
  color: var(--text-tertiary, var(--text-secondary));
  opacity: 0.85;
  transition: transform 0.15s ease;
}
.site-tree-chevron.is-expanded {
  transform: rotate(90deg);
}
.site-tree-chevron svg {
  width: 0.75rem;
  height: 0.75rem;
  display: block;
}
.site-tree-chevron-spacer {
  width: 0.875rem;
  flex-shrink: 0;
}
.site-tree-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.site-tree-dir.is-collapsed > .site-tree { display: none; }
.site-tree-file a {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 7px 10px;
  border-radius: 8px;
  color: var(--text-primary);
  text-decoration: none;
  font-size: 13.5px;
  line-height: 1.45;
}
.site-tree-file a:hover { background: var(--bg-hover); }
.site-tree-file.is-active a {
  background: rgba(var(--accent-rgb, 116, 167, 254), 0.15);
  color: var(--accent);
}
.site-rail-title {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-tertiary);
  margin-bottom: 10px;
  padding: 0 10px;
}
.site-links-footer .site-links-group + .site-links-group {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.site-links-subtitle {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-secondary);
  margin-bottom: 6px;
  padding: 0;
}
.site-links-count {
  font-weight: 500;
  color: var(--text-tertiary);
  font-variant-numeric: tabular-nums;
}
.site-links-list,
.site-outline-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-links-item a,
.site-outline-item a {
  display: block;
  padding: 6px 10px;
  color: var(--text-secondary);
  text-decoration: none;
  font-size: 13.5px;
  line-height: 1.45;
  border-radius: 8px;
}
.site-links-footer .site-links-item a {
  padding-left: 0;
  padding-right: 0;
}
.site-links-item a:hover,
.site-outline-item a:hover {
  color: var(--accent);
  background: var(--bg-hover);
}
.site-links-footer .site-links-item a:hover {
  background: transparent;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.site-outline-item.level-1 a { font-weight: 600; color: var(--text-primary); }
.site-outline-item.level-3 { padding-left: 10px; }
.site-outline-item.level-4 { padding-left: 20px; }
.site-outline-item.level-5 { padding-left: 30px; }
.site-outline-item.level-6 { padding-left: 40px; }
.site-rail-empty {
  margin: 0;
  padding: 0 10px;
  font-size: 13px;
  color: var(--text-tertiary);
}
a.wiki-link-widget {
  color: var(--accent);
  text-decoration: none;
  border-bottom: 1px solid rgba(var(--accent-rgb, 116, 167, 254), 0.35);
}
a.wiki-link-widget:hover { border-bottom-color: var(--accent); }
.wiki-link-widget.is-unresolved {
  color: var(--text-tertiary);
  border-bottom-style: dashed;
}
.site-article yaml-block { display: none !important; }

/* Desktop: fixed sidebars; document scroll carries the article (scrollbar at viewport right). */
@media (min-width: 721px) {
  .site-layout {
    display: grid;
    grid-template-columns: var(--site-sidebar-w) minmax(0, var(--site-main-w)) var(--site-rail-w);
    justify-content: center;
    align-items: start;
    padding: 14px var(--site-gutter) 48px;
  }
  .site-sidebar {
    position: fixed;
    top: 0;
    left: var(--site-cluster-left);
    width: var(--site-sidebar-w);
    height: 100vh;
    max-height: 100vh;
    z-index: 2;
    background: var(--bg-primary);
  }
  .site-rail {
    position: fixed;
    top: 0;
    right: var(--site-cluster-right);
    width: var(--site-rail-w);
    height: 100vh;
    max-height: 100vh;
    margin-left: 0;
    z-index: 2;
    background: var(--bg-primary);
  }
  .site-main {
    grid-column: 2;
    position: relative;
    z-index: 1;
    overflow: visible;
    margin-left: var(--site-sidebar-gap);
    padding: 8px 16px 64px;
  }
  .site-article {
    max-width: none;
    width: 100%;
    margin: 0;
  }
}

@media (max-width: 1100px) {
  .site-layout {
    --site-sidebar-w: 240px;
    --site-rail-w: 273px;
    --site-main-max: 44rem;
    --site-main-w: min(var(--site-main-max), calc(100vw - var(--site-sidebar-w) - var(--site-rail-w) - 2 * var(--site-gutter)));
    --site-gutter: 14px;
  }
}
@media (max-width: 960px) {
  .site-layout {
    --site-rail-w: 0px;
    --site-main-w: min(var(--site-main-max), calc(100vw - var(--site-sidebar-w) - 2 * var(--site-gutter)));
  }
  .site-rail { display: none; }
}
@media (max-width: 720px) {
  html,
  body {
    height: auto;
    overflow: visible;
  }
  html {
    overflow-y: auto;
  }
  .site-body {
    height: auto;
    min-height: 100vh;
    overflow: visible;
  }
  .site-layout {
    display: grid;
    grid-template-columns: 1fr;
    height: auto;
    overflow: visible;
    padding: 10px;
    gap: 10px;
  }
  .site-sidebar {
    position: static;
    width: auto;
    height: auto;
    max-height: 45vh;
    margin-right: 0;
    padding-right: 0;
    border-right: none;
    border-bottom: 1px solid var(--border);
    padding-bottom: 8px;
    overflow: hidden;
  }
  .site-nav {
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .site-rail {
    position: static;
    width: auto;
    height: auto;
    max-height: none;
    overflow: hidden;
  }
  .site-outline {
    max-height: 40vh;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .site-main {
    position: static;
    overflow: visible;
    margin-left: 0;
    padding: 12px 8px 48px;
  }
  .site-article {
    max-width: none;
    margin: 0;
  }
}