:root{--page-bg:radial-gradient(circle at 10% 0%,#eef6ff 0%,#f8fbff 26%,#f9fafb 58%,#ffffff 100%);--text:#1f2328;--muted:#57606a;--surface:#ffffff;--surface-soft:#f6f8fa;--border:#d0d7de;--border-strong:#b7c0c8;--link:#0969da;--shadow:0 1px 2px rgba(16,24,40,0.05),0 8px 24px rgba(16,24,40,0.06);--accent-soft:#eef6ff;--mark-bg:#fff0b2;--mark-text:#3f2d00;--code-inline-bg:#eff2f6;--code-inline-border:#e3e8ee;--code-bg:#fafafa;--code-border:#d0d7de;--code-header-bg:#f0f2f4}@media (prefers-color-scheme:dark){:root{--page-bg:radial-gradient(circle at 10% 0%,#0b1a2a 0%,#0b1220 30%,#0b0f17 62%,#090c12 100%);--text:#e6edf3;--muted:#9ba7b4;--surface:#0f1722;--surface-soft:#111b29;--border:#2f3e52;--border-strong:#4b6078;--link:#78b7ff;--shadow:0 1px 2px rgba(0,0,0,0.35),0 12px 26px rgba(0,0,0,0.28);--accent-soft:#152436;--mark-bg:#614700;--mark-text:#fff4cc;--code-inline-bg:#161b22;--code-inline-border:#30363d;--code-bg:#0d1117;--code-border:#30363d;--code-header-bg:#161b22}}html[data-theme=dark]{--page-bg:radial-gradient(circle at 10% 0%,#0b1a2a 0%,#0b1220 30%,#0b0f17 62%,#090c12 100%);--text:#e6edf3;--muted:#9ba7b4;--surface:#0f1722;--surface-soft:#111b29;--border:#2f3e52;--border-strong:#4b6078;--link:#78b7ff;--shadow:0 1px 2px rgba(0,0,0,0.35),0 12px 26px rgba(0,0,0,0.28);--accent-soft:#152436;--mark-bg:#614700;--mark-text:#fff4cc;--code-inline-bg:#161b22;--code-inline-border:#30363d;--code-bg:#0d1117;--code-border:#30363d;--code-header-bg:#161b22}html[data-theme=light]{--page-bg:radial-gradient(circle at 10% 0%,#eef6ff 0%,#f8fbff 26%,#f9fafb 58%,#ffffff 100%);--text:#1f2328;--muted:#57606a;--surface:#ffffff;--surface-soft:#f6f8fa;--border:#d0d7de;--border-strong:#b7c0c8;--link:#0969da;--shadow:0 1px 2px rgba(16,24,40,0.05),0 8px 24px rgba(16,24,40,0.06);--accent-soft:#eef6ff;--mark-bg:#fff0b2;--mark-text:#3f2d00;--code-inline-bg:#eff2f6;--code-inline-border:#e3e8ee;--code-bg:#fafafa;--code-border:#d0d7de;--code-header-bg:#f0f2f4}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:IBM Plex Sans,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.65;color:var(--text);background:var(--page-bg);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;min-height:100vh}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 1px 3px rgba(16,24,40,.08)}.header-content{max-width:1400px;margin:0 auto;padding:12px 24px;justify-content:space-between}.header-content,.header-left{display:flex;align-items:center}.header-left{gap:10px;min-width:0}.header-title{font-size:1.2em;font-weight:600;margin:0}.header-buttons{gap:8px}.header-button,.header-buttons{display:flex;align-items:center}.header-button{gap:6px;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface-soft);color:var(--text);cursor:pointer;font-size:.9em;font-weight:500;transition:all .2s ease}.header-button:hover{background:var(--surface);border-color:var(--link);color:var(--link)}.header-button:active{transform:scale(.98)}.github-button,.theme-button{display:flex;align-items:center}.download-button,.github-button,.theme-button{width:36px;height:36px;padding:0;justify-content:center}.download-button svg{width:18px;height:18px}.back-button,.home-button{text-decoration:none}.back-button,.home-button,.toc-toggle-button{width:36px;height:36px;padding:0;justify-content:center}.toc-toggle-button{flex-shrink:0}.toc-toggle-button svg{width:18px;height:18px}.toc-toggle-button.is-open{border-color:var(--link);color:var(--link);background:color-mix(in srgb,var(--link) 10%,var(--surface))}.page-layout{display:flex;flex:1 1;max-width:1400px;margin:0 auto;width:100%;gap:24px;padding:24px}.page-layout.no-toc,.page-layout.without-toc{justify-content:center}.page-layout.no-toc .markdown-body,.page-layout.without-toc .markdown-body{margin-inline:auto}@media (max-width:1024px){.page-layout{gap:16px;padding:16px}}@media (max-width:768px){.page-layout{flex-direction:column;gap:12px;padding:8px}}.table-of-contents{position:-webkit-sticky;position:sticky;top:72px;flex-shrink:0;width:240px;height:-moz-fit-content;height:fit-content;padding:16px;background:var(--surface-soft);border:1px solid var(--border);border-radius:10px;overflow-y:auto;max-height:calc(100vh - 92px)}.table-of-contents.is-closed{display:none}.toc-header{font-size:.85em;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.toc-list{list-style:none}.toc-item,.toc-list{margin:0;padding:0}.toc-link{display:block;padding:6px 8px;margin:2px 0;color:var(--text);text-decoration:none;font-size:.9em;border-left:2px solid transparent;transition:all .15s ease;word-break:break-word}.toc-link.active,.toc-link:hover{color:var(--link);background:rgba(9,105,218,.05);border-left-color:var(--link)}.toc-link.active{font-weight:500}.toc-level-1{margin-top:0}.toc-level-2 .toc-link{padding-left:16px;font-size:.85em}.toc-level-3 .toc-link{padding-left:24px;font-size:.8em}@media (max-width:1024px){.table-of-contents{width:200px}}@media (max-width:768px){.table-of-contents{position:fixed;left:8px;top:64px;width:min(320px,calc(100vw - 16px));max-height:calc(100vh - 76px);margin-bottom:0;z-index:160;box-shadow:0 18px 40px rgba(0,0,0,.25)}.table-of-contents.is-closed{display:none}}.toc-backdrop{position:fixed;inset:0;border:0;padding:0;margin:0;background:rgba(0,0,0,.25);z-index:150}@media (min-width:769px){.toc-backdrop{display:none}}.markdown-body{flex:1 1;min-width:0;max-width:980px;padding:52px 58px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}@media (max-width:1024px){.markdown-body{padding:34px 26px}}@media (max-width:768px){.markdown-body{max-width:none;width:100%;padding:20px 12px;border-radius:10px}.header-content{padding:10px;gap:8px}.header-title{font-size:1.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-buttons{gap:6px;flex-shrink:0}.header-button{padding:7px 10px;font-size:.88em}.download-button{width:34px;height:34px;padding:0}.download-button svg{width:16px;height:16px}}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-body h1{font-size:2em}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid var(--border)}.markdown-body h2{font-size:1.5em}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h5{font-size:.875em}.markdown-body h6{font-size:.85em;color:var(--muted)}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{scroll-margin-top:88px}.markdown-body h1>a[aria-hidden=true],.markdown-body h2>a[aria-hidden=true],.markdown-body h3>a[aria-hidden=true],.markdown-body h4>a[aria-hidden=true],.markdown-body h5>a[aria-hidden=true],.markdown-body h6>a[aria-hidden=true]{margin-left:.4rem;color:var(--muted);text-decoration:none;opacity:0;transition:opacity .12s ease-in-out;font-weight:500}.markdown-body h1:hover>a[aria-hidden=true],.markdown-body h2:hover>a[aria-hidden=true],.markdown-body h3:hover>a[aria-hidden=true],.markdown-body h4:hover>a[aria-hidden=true],.markdown-body h5:hover>a[aria-hidden=true],.markdown-body h6:hover>a[aria-hidden=true]{opacity:1}.markdown-body p{margin-top:0;margin-bottom:16px}.markdown-body a{color:var(--link);text-decoration:none;text-underline-offset:2px}.markdown-body a:hover{text-decoration:underline}.markdown-body strong{font-weight:600}.markdown-body ol,.markdown-body ul{margin-top:0;margin-bottom:16px;padding-left:2em}.markdown-body li,.markdown-body li+li{margin-top:.25em}.markdown-body code{padding:.2em .4em;margin:0;font-size:85%;white-space:break-spaces;background-color:var(--code-inline-bg);color:var(--text);border-radius:6px;border:1px solid var(--code-inline-border);font-family:JetBrains Mono,Cascadia Mono,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.markdown-body pre{margin-top:0;margin-bottom:16px;padding:16px;overflow:auto;font-size:85%;line-height:1.45;color:var(--text);background-color:var(--surface-soft);border-radius:10px;border:1px solid var(--border)}.markdown-body pre code{padding:0;margin:0;font-size:100%;background-color:transparent;border-radius:0;white-space:pre}.markdown-body .code-block{position:relative;margin-bottom:16px;border:1px solid var(--code-border);border-radius:10px;overflow:hidden}.markdown-body .code-block-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--code-header-bg);border-bottom:1px solid var(--code-border);min-height:34px;gap:8px}.markdown-body .code-lang{font-family:JetBrains Mono,Cascadia Mono,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;font-size:11px;color:var(--muted);letter-spacing:.03em;text-transform:lowercase;flex:1 1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.markdown-body .code-block pre{margin:0;padding:16px;border:none;border-radius:0;background-color:var(--code-bg)}.markdown-body .code-block code{padding:0;background-color:transparent;border:none;font-family:JetBrains Mono,Cascadia Mono,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace}.markdown-body .copy-button{width:28px;height:26px;flex-shrink:0;border:1px solid transparent;border-radius:6px;padding:0;background:transparent;color:var(--muted);line-height:0;cursor:pointer;transition:all .15s ease;opacity:0;display:inline-flex;align-items:center;justify-content:center}.markdown-body .code-block-header:hover .copy-button,.markdown-body .copy-button[data-copied=true]{opacity:1}.markdown-body .copy-button:hover{background:var(--border);border-color:var(--code-border);color:var(--text)}.markdown-body .copy-button:active{transform:scale(.97)}.markdown-body .copy-button:focus-visible{outline:2px solid var(--link);outline-offset:2px;opacity:1}.markdown-body .copy-button-check,.markdown-body .copy-button-icon{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center}.markdown-body .copy-button-check svg,.markdown-body .copy-button-icon svg{width:14px;height:14px}.markdown-body .copy-button-check{display:none}.markdown-body .copy-button[data-copied=true]{color:#2da44e;border-color:color-mix(in srgb,#2da44e 65%,var(--border))}.markdown-body .copy-button[data-copied=true] .copy-button-icon{display:none}.markdown-body .copy-button[data-copied=true] .copy-button-check{display:inline-flex}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.markdown-body .mermaid-loading{margin:0 0 16px;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft);color:var(--muted);font-size:14px}.markdown-body .mermaid-block{margin-bottom:16px;border:1px solid var(--code-border);border-radius:10px;overflow:hidden}.markdown-body .mermaid-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:6px;padding:6px 10px;background:var(--code-header-bg);border-bottom:1px solid var(--code-border)}.markdown-body .mermaid-tool-button{height:28px;min-width:28px;padding:0 8px;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:6px;background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--text);font-size:11px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.markdown-body .mermaid-tool-button:disabled{opacity:.55;cursor:not-allowed}.markdown-body .mermaid-tool-button svg{width:14px;height:14px}.markdown-body .mermaid-tool-button:hover{border-color:var(--link);background:color-mix(in srgb,var(--surface) 96%,transparent)}.markdown-body .mermaid-tool-button[data-copied=true]{color:#2da44e;border-color:color-mix(in srgb,#2da44e 65%,var(--border))}.markdown-body .mermaid-chart{margin-bottom:0;padding:16px;background:var(--code-bg);overflow:auto}.markdown-body .mermaid-chart-inner{width:-moz-fit-content;width:fit-content;min-width:100%}.markdown-body .mermaid-chart svg{display:block;max-width:100%;height:auto;margin:0 auto}.mermaid-overlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;padding:24px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:overlay-in .15s ease}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.mermaid-overlay-inner{position:relative;width:min(96vw,1400px);max-width:96vw;max-height:90vh;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;padding:32px 0 0;box-shadow:0 24px 80px rgba(0,0,0,.45);animation:overlay-scale-in .15s ease}@keyframes overlay-scale-in{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.mermaid-overlay-close{position:absolute;top:10px;right:10px;width:30px;height:30px;border:1px solid var(--border);border-radius:6px;background:var(--surface-soft);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:0;transition:all .12s ease}.mermaid-overlay-close:hover{background:var(--border);border-color:var(--border-strong)}.mermaid-overlay-close svg{width:14px;height:14px}.mermaid-overlay-body{flex:1 1;overflow:auto;padding:14px 24px 18px}.mermaid-overlay-svg svg{display:block;width:calc(var(--mermaid-overlay-zoom, 1) * 100%)!important;max-width:none!important;height:auto!important;min-width:calc(var(--mermaid-overlay-zoom, 1) * 640px);margin:0 auto}.mermaid-overlay-toolbar{display:flex;justify-content:center;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--border);background:var(--code-header-bg)}.mermaid-overlay-zoom-label{font-size:12px;color:var(--muted);min-width:46px;text-align:right}@media (max-width:900px){.mermaid-overlay{padding:12px}.mermaid-overlay-inner{width:100%;max-width:100%;padding-top:28px}.mermaid-overlay-body{padding:10px 14px 14px}.mermaid-overlay-svg svg{min-width:0}.mermaid-overlay-toolbar{flex-wrap:wrap;justify-content:center}}.markdown-body .katex-display{margin:1.1em 0 1.25em;overflow-x:auto;overflow-y:hidden;padding-bottom:.2em;display:flex;justify-content:center}.markdown-body .katex-display>.katex{display:block!important;text-align:center!important;margin:0 auto}.markdown-body p>.katex:only-child{display:block;text-align:center;overflow-x:auto;overflow-y:hidden;padding-bottom:.2em}.markdown-body p>.katex:only-child>.katex-html{display:block;width:-moz-fit-content;width:fit-content;margin:0 auto}.markdown-body kbd{display:inline-block;padding:.12em .45em;margin:0 .08em;border:solid var(--border-strong);border-width:1px 1px 2px;border-radius:6px;background:var(--surface-soft);font-family:JetBrains Mono,Cascadia Mono,monospace;font-size:.86em;line-height:1.2}.markdown-body mark{background:var(--mark-bg);color:var(--mark-text);border-radius:4px;padding:.05em .2em}.markdown-body abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-underline-offset:2px;cursor:help}.markdown-body details{margin:0 0 16px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-soft)}.markdown-body summary{cursor:pointer;font-weight:600}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-emphasis,.hljs-strong,.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-addition{background-color:#f0fff4}.hljs-deletion{background-color:#ffeef0}@media (prefers-color-scheme:dark){.hljs{color:#c9d1d9;background:transparent;padding:0}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-emphasis,.hljs-strong,.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}}html[data-theme=dark] .markdown-body .copy-button{color:var(--muted)}html[data-theme=dark] .markdown-body .copy-button:hover{background:var(--border);color:var(--text)}html[data-theme=dark] .markdown-body .mermaid-tool-button{background:color-mix(in srgb,#0d1117 88%,transparent);border-color:color-mix(in srgb,#30363d 80%,transparent);color:#c9d1d9}html[data-theme=dark] .markdown-body .mermaid-tool-button:hover{background:color-mix(in srgb,#161b22 92%,transparent);border-color:#3b82f6}html[data-theme=dark] .hljs{color:#c9d1d9;background:transparent;padding:0}html[data-theme=dark] .hljs-doctag,html[data-theme=dark] .hljs-keyword,html[data-theme=dark] .hljs-meta .hljs-keyword,html[data-theme=dark] .hljs-template-tag,html[data-theme=dark] .hljs-template-variable,html[data-theme=dark] .hljs-type,html[data-theme=dark] .hljs-variable.language_{color:#ff7b72}html[data-theme=dark] .hljs-title,html[data-theme=dark] .hljs-title.class_,html[data-theme=dark] .hljs-title.class_.inherited__,html[data-theme=dark] .hljs-title.function_{color:#d2a8ff}html[data-theme=dark] .hljs-attr,html[data-theme=dark] .hljs-attribute,html[data-theme=dark] .hljs-literal,html[data-theme=dark] .hljs-meta,html[data-theme=dark] .hljs-number,html[data-theme=dark] .hljs-operator,html[data-theme=dark] .hljs-selector-attr,html[data-theme=dark] .hljs-selector-class,html[data-theme=dark] .hljs-selector-id,html[data-theme=dark] .hljs-variable{color:#79c0ff}html[data-theme=dark] .hljs-link,html[data-theme=dark] .hljs-meta .hljs-string,html[data-theme=dark] .hljs-regexp,html[data-theme=dark] .hljs-string{color:#a5d6ff}html[data-theme=dark] .hljs-built_in,html[data-theme=dark] .hljs-builtin,html[data-theme=dark] .hljs-builtin-name,html[data-theme=dark] .hljs-symbol{color:#ffa657}html[data-theme=dark] .hljs-code,html[data-theme=dark] .hljs-comment,html[data-theme=dark] .hljs-formula,html[data-theme=dark] .hljs-quote{color:#8b949e}html[data-theme=dark] .hljs-name,html[data-theme=dark] .hljs-selector-pseudo,html[data-theme=dark] .hljs-selector-tag{color:#7ee787}html[data-theme=dark] .hljs-emphasis,html[data-theme=dark] .hljs-strong,html[data-theme=dark] .hljs-subst{color:#c9d1d9}html[data-theme=dark] .hljs-section{color:#1f6feb;font-weight:700}html[data-theme=dark] .hljs-bullet{color:#f2cc60}html[data-theme=dark] .hljs-emphasis{font-style:italic}html[data-theme=dark] .hljs-strong{font-weight:700}html[data-theme=dark] .hljs-deletion{color:#ffdcd7;background-color:#67060c}html[data-theme=dark] .hljs-addition{color:#aff5b4;background-color:#033a16}.markdown-body blockquote{margin:0 0 16px;padding:0 1em;color:var(--muted);border-left:.25em solid var(--border)}.markdown-body hr{height:.25em;padding:0;margin:24px 0;background-color:var(--border);border:0}.markdown-body table{border-spacing:0;border-collapse:collapse;margin-top:0;margin-bottom:16px;display:block;width:max-content;max-width:100%;overflow:auto}.markdown-body table th{font-weight:600;background-color:var(--surface-soft)}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid var(--border);color:var(--text)}.markdown-body table tr{background-color:var(--surface);border-top:1px solid var(--border)}.markdown-body table tr:nth-child(2n){background-color:var(--surface-soft)}.markdown-body img{max-width:100%;box-sizing:content-box;background-color:var(--surface);border:1px solid var(--border);border-radius:8px}.markdown-body input[type=checkbox]{appearance:none;-webkit-appearance:none;-moz-appearance:none;margin:0 .5em 0 -1.5em;padding:0;width:1.1em;height:1.1em;border:2px solid var(--border-strong);border-radius:4px;background:var(--surface);cursor:pointer;vertical-align:middle;position:relative;transition:all .15s ease-in-out}.markdown-body input[type=checkbox]:hover{border-color:var(--link);background:var(--accent-soft)}.markdown-body input[type=checkbox]:checked{background:var(--link);border-color:var(--link);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='white' d='M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z'/%3e%3c/svg%3e");background-size:.85em;background-position:50%;background-repeat:no-repeat}.markdown-body input[type=checkbox]:checked:hover{opacity:.85}.markdown-body input[type=checkbox]:focus-visible{outline:2px solid var(--link);outline-offset:2px}@media (prefers-color-scheme:dark){.markdown-body input[type=checkbox]:hover{background:var(--surface-soft)}}.hljs{color:#24292e;background:transparent;padding:0}.hljs-comment,.hljs-quote{color:#6a737d}.hljs-keyword,.hljs-section,.hljs-selector-tag,.hljs-subst,.hljs-title{color:#d73a49;font-weight:600}.hljs-attr,.hljs-attribute{color:#6f42c1}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:#005cc5}.hljs-doctag,.hljs-regexp,.hljs-string{color:#032f62}.hljs-class .hljs-title,.hljs-type{color:#6f42c1}.hljs-name,.hljs-tag{color:#22863a;font-weight:400}.hljs-builtin{color:#005cc5}.hljs-function .hljs-title,.hljs-meta{color:#6f42c1}.hljs-link,.hljs-regexp{color:#032f62}.hljs-bullet,.hljs-symbol{color:#e36209}.hljs-built_in,.hljs-builtin-name{color:#005cc5}.hljs-meta{color:#735c0f;font-weight:600}.hljs-deletion{background:#ffeef0;color:#b31d28}.hljs-addition{background:#e6ffed;color:#22863a}.error-page{min-height:100vh;color:var(--muted);font-size:1.2em}.error-page,.security-gate-wrap{display:flex;align-items:center;justify-content:center}.security-gate-wrap{min-height:calc(100vh - 64px);padding:24px}.security-gate{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:40px 48px;max-width:420px;width:100%;display:flex;flex-direction:column;align-items:center;gap:16px}.security-gate-icon{color:var(--muted);margin-bottom:4px}.security-gate-heading{font-size:1.1em;font-weight:600;color:var(--text);text-align:center}.security-gate-sub{font-size:.9em;color:var(--muted);text-align:center}.security-gate-row{display:flex;gap:8px;width:100%}.security-gate-input{flex:1 1;min-width:0;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--surface-soft);color:var(--text);font-size:.95em;outline:none;transition:border-color .15s}.security-gate-input:focus{border-color:var(--link)}.security-gate-button{padding:8px 18px;background:var(--link);color:#fff;border:none;border-radius:6px;font-size:.95em;font-weight:500;cursor:pointer;white-space:nowrap;transition:opacity .15s}.security-gate-button:disabled{opacity:.5;cursor:not-allowed}.security-gate-error{font-size:.875em;color:#cf222e;text-align:center}html[data-theme=dark] .security-gate-error{color:#ff7b72}@media (prefers-color-scheme:dark){.security-gate-error{color:#ff7b72}}@media (max-width:480px){.security-gate{padding:32px 24px}.security-gate-row{flex-direction:column}.security-gate-button{width:100%;padding:10px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.admin-login{padding-top:16px}.admin-login-form{display:flex;flex-direction:column;gap:12px;max-width:320px;margin-top:16px}.admin-topbar{gap:12px;margin-bottom:8px}.admin-topbar,.admin-topbar-right{display:flex;align-items:center;flex-wrap:wrap}.admin-topbar-right{gap:8px;margin-left:auto}.admin-actions-inline{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.admin-breadcrumb{display:flex;align-items:center;gap:0;font-size:.95em;color:var(--muted);flex-wrap:wrap}.admin-breadcrumb-part{background:none;border:none;padding:2px 4px;cursor:pointer;color:var(--link);font-size:inherit;border-radius:4px}.admin-breadcrumb-part:hover{text-decoration:underline}.admin-breadcrumb-sep{color:var(--muted);margin:0 2px}.admin-input{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:.95em;background:var(--surface);color:var(--text);outline:none;width:100%}.admin-input:focus{border-color:var(--link);box-shadow:0 0 0 3px rgba(9,105,218,.15)}.admin-input-sm{padding:5px 10px;font-size:.875em}.admin-btn{padding:6px 14px;border:1px solid var(--border);border-radius:6px;background:var(--surface-soft);color:var(--text);cursor:pointer;font-size:.875em;font-weight:500;white-space:nowrap;transition:background .12s,opacity .12s;display:inline-flex;align-items:center;justify-content:center;line-height:1.4}.admin-btn:hover{background:var(--border)}.admin-btn:disabled{opacity:.5;cursor:not-allowed}.admin-btn-table{padding:3px 10px;font-size:.8em}.admin-protected-label{display:inline-block;padding:3px 10px;font-size:1.1em;color:var(--muted,#888);cursor:help}.admin-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.admin-modal{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;box-shadow:0 12px 40px rgba(0,0,0,.5);max-width:480px;width:100%;padding:20px 24px}.admin-modal-title{margin:0 0 12px;font-size:1.15em}.admin-modal-body p{margin:8px 0}.admin-modal-body code{background:var(--code-bg,rgba(127,127,127,.15));padding:1px 6px;border-radius:3px;font-size:.95em}.admin-modal-input{display:block;width:100%;margin-top:6px}.admin-modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.admin-btn-primary{background:var(--link);border-color:var(--link);color:#fff}.admin-btn-primary:hover{opacity:.88;background:var(--link)}.admin-btn-danger{background:transparent;border-color:#cf222e;color:#cf222e}.admin-btn-danger:hover{background:#cf222e;color:#fff}html[data-theme=dark] .admin-btn-danger{border-color:#ff7b72;color:#ff7b72}html[data-theme=dark] .admin-btn-danger:hover{background:#ff7b72;color:#0d1117}@media (prefers-color-scheme:dark){.admin-btn-danger{border-color:#ff7b72;color:#ff7b72}.admin-btn-danger:hover{background:#ff7b72;color:#0d1117}}.admin-readonly-badge{font-size:.75em;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:3px 8px}.admin-new-folder-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.admin-new-folder-row .admin-input-sm{max-width:240px;flex:1 1}.admin-error{color:#cf222e;font-size:.875em}.admin-error-bar,.admin-status-bar{padding:8px 12px;border-radius:6px;font-size:.875em;margin-bottom:12px}.admin-error-bar{background:#fff0f0;border:1px solid #ffcdd2;color:#b71c1c}.admin-status-bar{background:#e8f5e9;border:1px solid #c8e6c9;color:#1b5e20}html[data-theme=dark] .admin-error-bar{background:#2a0a0a;border-color:#5a1a1a;color:#ff7b72}html[data-theme=dark] .admin-status-bar{background:#0a2a0a;border-color:#1a5a1a;color:#7ee787}@media (prefers-color-scheme:dark){.admin-error-bar{background:#2a0a0a;border-color:#5a1a1a;color:#ff7b72}.admin-status-bar{background:#0a2a0a;border-color:#1a5a1a;color:#7ee787}}.admin-loading{color:var(--muted);font-size:.875em;padding:12px 0}.admin-table{width:100%;border-collapse:collapse;font-size:.875em}.admin-table,.admin-table th{border-bottom:2px solid var(--border)}.admin-table th{text-align:left;padding:6px 8px;color:var(--muted);font-weight:600}.admin-table td{padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:middle}.admin-action-row td,.admin-table tbody tr:last-child td{border-bottom:none}.admin-action-row .admin-action-cell{padding:6px 8px}.admin-table tfoot .admin-action-row td{border-top:1px solid var(--border);padding-top:8px;padding-bottom:8px}.admin-entry-name{font-family:inherit;font-size:inherit}.admin-dir-link{background:none;border:none;padding:0;cursor:pointer;color:var(--link)}.admin-dir-link:hover .admin-entry-text{text-decoration:underline}.admin-file-link{color:var(--link);text-decoration:none}.admin-file-link:hover .admin-entry-text{text-decoration:underline}.admin-cell-meta{color:var(--muted);white-space:nowrap}.admin-empty{color:var(--muted);font-style:italic;text-align:center;padding:24px}