: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:var(--font-sans,"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:var(--header-shadow,0 1px 3px rgba(16,24,40,.08))}.header-content{max-width:1400px;margin:0 auto;padding:12px 24px;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;grid-gap:12px;gap:12px}.header-left{display:flex;align-items:center;gap:10px;min-width:0;justify-self:start}.header-center{min-width:0;display:flex;justify-content:center}.header-title{font-size:1.2em;font-weight:600;margin:0;min-width:0;text-align:center}.header-banner{display:block;max-height:32px;width:auto;object-fit:contain}.header-buttons{display:flex;gap:8px;align-items:center;min-width:0;justify-self:end}.header-site-btn-icon{display:block;max-height:24px;width:auto;object-fit:contain}.header-button{display:flex;align-items:center;gap:6px;padding:8px 12px;border:1px solid var(--control-border,var(--border));border-radius:6px;background:var(--control-bg,var(--surface-soft));color:var(--control-fg,var(--text));cursor:pointer;font-size:.9em;font-weight:500;transition:all .2s ease}.header-button:hover{background:var(--control-hover-bg,var(--surface));border-color:var(--control-hover-border,var(--link));color:var(--control-hover-fg,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(--control-pressed-border,var(--link));color:var(--control-pressed-fg,var(--link));background:var(--control-pressed-bg,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}}.sidebar{position:-webkit-sticky;position:sticky;top:72px;flex-shrink:0;width:240px;height:-moz-fit-content;height:fit-content;overflow-y:auto;max-height:calc(100vh - 92px);display:flex;flex-direction:column;gap:8px}.table-of-contents{display:contents}.toc-card{background:var(--nav-card-bg,var(--surface-soft));border:1px solid var(--border);border-radius:8px;padding:12px 14px}.toc-section-row{display:flex;align-items:center;gap:6px;margin-bottom:10px}.toc-section-header{display:flex;flex:1 1;align-items:center;justify-content:space-between;min-width:0;background:none;border:1px solid var(--border);border-radius:var(--radius-pill,20px);padding:3px 10px;cursor:pointer;font-size:.8em;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);text-align:left;transition:border-color .15s,color .15s}.toc-section-header:hover{color:var(--nav-hover-fg,var(--text));border-color:var(--chip-hover-border,var(--text))}.toc-section-chevron{font-size:.75em;margin-left:4px;flex-shrink:0}.toc-expand-all{flex-shrink:0;background:none;border:none;padding:2px 4px;cursor:pointer;color:var(--muted);font-size:.6em;line-height:1;border-radius:3px}.toc-expand-all:hover{color:var(--nav-hover-fg,var(--text));background:var(--hover-bg,rgba(0,0,0,.06))}.toc-list{list-style:none;margin:0;padding:0}.toc-children{margin-top:0}.toc-item{margin:0;padding:0}.toc-row,.toc-toggle{display:flex;align-items:center}.toc-toggle{flex-shrink:0;width:16px;height:20px;background:none;border:none;padding:0;cursor:pointer;color:var(--muted);font-size:.65em;justify-content:center}.toc-toggle:hover{color:var(--nav-hover-fg,var(--text))}.toc-toggle-placeholder{flex-shrink:0;width:16px;display:inline-block}.toc-link{display:block;flex:1 1;min-width:0;padding:5px 8px;margin:1px 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:hover{color:var(--nav-hover-fg,var(--link));background:var(--nav-hover-bg,rgba(9,105,218,.05));border-left-color:var(--nav-hover-border,var(--link))}.toc-link.active{color:var(--nav-active-fg,var(--link));border-left-color:var(--nav-active-border,var(--link));background:var(--nav-active-bg,rgba(9,105,218,.05));font-weight:500}.toc-level-1{margin-top:0}.toc-level-2 .toc-link{font-size:.9em}.toc-level-3 .toc-link{font-size:.85em}@media (max-width:1024px){.sidebar{width:200px}}@media (max-width:768px){.sidebar{position:fixed;left:8px;top:64px;width:min(320px,calc(100vw - 16px));max-height:calc(100vh - 76px);z-index:160;gap:0;background:var(--nav-card-bg,var(--surface-soft));border:1px solid var(--border);border-radius:var(--radius-block,10px);padding:12px;box-shadow:var(--overlay-shadow,0 18px 40px rgba(0,0,0,.25))}.sidebar .toc-card{background:transparent;border:none;border-radius:0;padding:0}}.toc-backdrop{position:fixed;inset:0;border:0;padding:0;margin:0;background:var(--backdrop-soft,rgba(0,0,0,.25));z-index:150}@media (min-width:769px){.toc-backdrop{display:none}}.sitemap-row{display:flex;align-items:center}.sitemap-depth-0{padding-left:0}.sitemap-depth-1{padding-left:10px}.sitemap-depth-2{padding-left:20px}.sitemap-depth-3{padding-left:30px}.sitemap-depth-4{padding-left:40px}.sitemap-depth-5{padding-left:50px}.sitemap-toggle{flex-shrink:0;width:16px;height:20px;background:none;border:none;padding:0;cursor:pointer;color:var(--muted);font-size:.65em;display:flex;align-items:center;justify-content:center}.sitemap-toggle:hover{color:var(--nav-hover-fg,var(--text))}.sitemap-toggle-placeholder{flex-shrink:0;width:16px;display:inline-block}.sitemap-link{display:block;flex:1 1;min-width:0;padding:4px 6px;margin:1px 0;color:var(--text);text-decoration:none;font-size:.875em;border-left:2px solid transparent;word-break:break-word;transition:color .15s,border-color .15s,background .15s}.sitemap-link:hover{color:var(--nav-hover-fg,var(--link));background:var(--nav-hover-bg,rgba(9,105,218,.05));border-left-color:var(--nav-hover-border,var(--link))}.sitemap-link.is-root{font-weight:600}.sitemap-link.is-current{color:var(--nav-active-fg,var(--link));border-left-color:var(--nav-active-border,var(--link));background:var(--nav-active-bg,rgba(9,105,218,.05));font-weight:500}.sitemap-link.is-root.is-current{font-weight:700}.sitemap-multiref-badge{margin-left:3px;font-size:.7em;opacity:.5;vertical-align:super;line-height:1;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.sitemap-link.is-multiref{font-style:italic}.sitemap-siteroot-chip{flex-shrink:0;font-size:.72em;color:var(--muted);text-decoration:none;padding:1px 7px;border:1px solid var(--border);border-radius:var(--radius-pill,20px);white-space:nowrap;transition:color .15s,border-color .15s}.sitemap-siteroot-chip:hover{color:var(--nav-hover-fg,var(--link));border-color:var(--chip-hover-border,var(--link))}.sitemap-loading{display:flex;align-items:center;gap:5px;padding:6px 2px;color:var(--muted);font-size:.82em}.sitemap-loading-dot{width:4px;height:4px;border-radius:50%;background:currentColor;flex-shrink:0;animation:sitemap-dot-pulse 1.2s ease-in-out infinite}.sitemap-loading-dot:nth-child(2){animation-delay:.2s}.sitemap-loading-dot:nth-child(3){animation-delay:.4s}@keyframes sitemap-dot-pulse{0%,80%,to{transform:scale(.5);opacity:.35}40%{transform:scale(1);opacity:1}}.sitemap-empty{font-size:.82em;color:var(--muted);padding:6px 2px;margin:0}.markdown-body{flex:1 1;min-width:0;max-width:980px;padding:52px 58px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card,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:var(--radius-card-compact,10px)}.header-content{padding:10px;gap:8px}.header-buttons,.header-left{gap:6px}.header-title{display:none}.header-banner{max-height:26px}.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(--code-inline-fg,var(--text));border-radius:6px;border:1px solid var(--code-inline-border);font-family:var(--font-mono,"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:var(--radius-block,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:var(--radius-block,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:var(--font-mono,"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:var(--font-mono,"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(--control-hover-bg,var(--border));border-color:var(--control-hover-border,var(--code-border));color:var(--control-hover-fg,var(--text))}.markdown-body .copy-button:active{transform:scale(.97)}.markdown-body .copy-button:focus-visible{outline:2px solid var(--accent,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:var(--success,#2da44e);border-color:color-mix(in srgb,var(--success,#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:var(--radius-block,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:var(--radius-block,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(--control-border,var(--border)) 80%,transparent);border-radius:6px;background:color-mix(in srgb,var(--control-bg,var(--surface)) 88%,transparent);color:var(--control-fg,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(--control-hover-border,var(--link));background:color-mix(in srgb,var(--control-hover-bg,var(--surface)) 96%,transparent)}.markdown-body .mermaid-tool-button[data-copied=true]{color:var(--success,#2da44e);border-color:color-mix(in srgb,var(--success,#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:var(--backdrop,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:var(--radius-panel,12px);overflow:hidden;padding:32px 0 0;box-shadow:var(--overlay-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(--control-border,var(--border));border-radius:6px;background:var(--control-bg,var(--surface-soft));color:var(--control-fg,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(--control-hover-bg,var(--border));border-color:var(--control-hover-border,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:var(--font-mono,"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:var(--radius-block,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(--control-hover-bg,var(--border));color:var(--control-hover-fg,var(--text))}html[data-theme=dark] .markdown-body .mermaid-tool-button{background:color-mix(in srgb,var(--control-bg,#0d1117) 88%,transparent);border-color:color-mix(in srgb,var(--control-border,#30363d) 80%,transparent);color:var(--control-fg,#c9d1d9)}html[data-theme=dark] .markdown-body .mermaid-tool-button:hover{background:color-mix(in srgb,var(--control-hover-bg,#161b22) 92%,transparent);border-color:var(--control-hover-border,#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(--blockquote-fg,var(--muted));border-left:.25em solid var(--blockquote-border,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;padding:6px 13px;border:1px solid var(--border);background-color:var(--table-head-bg,var(--surface-soft));color:var(--table-head-fg,var(--text))}.markdown-body table td{padding:6px 13px;border:1px solid var(--border);color:var(--text)}.markdown-body table tr{background-color:var(--table-row-bg,var(--surface));border-top:1px solid var(--border)}.markdown-body table tr:nth-child(2n){background-color:var(--table-row-alt-bg,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(--accent,var(--link));background:var(--accent-soft)}.markdown-body input[type=checkbox]:checked{background:var(--accent,var(--link));border-color:var(--accent,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(--accent,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:var(--radius-panel,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-strong,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(--field-border,var(--border));border-radius:6px;background:var(--field-bg,var(--surface-soft));color:var(--text);font-size:.95em;outline:none;transition:border-color .15s}.security-gate-input:focus{border-color:var(--accent,var(--link))}.security-gate-button{padding:8px 18px;background:var(--button-primary-bg,var(--link));color:var(--button-primary-fg,#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:var(--danger,#cf222e);text-align:center}html[data-theme=dark] .security-gate-error{color:var(--danger,#ff7b72)}@media (prefers-color-scheme:dark){.security-gate-error{color:var(--danger,#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-util-row td{border:none;background:transparent;padding:4px 8px;vertical-align:middle}.admin-util-row-sep-below td{border-bottom:2px solid var(--border)}.admin-util-row-sep td{border-top:2px solid var(--border)}.admin-util-cell{text-align:left}.admin-util-topbar{justify-content:space-between}.admin-util-actions,.admin-util-topbar{display:flex;align-items:center;gap:8px}.admin-util-actions{justify-content:flex-end}.admin-folder-form{display:flex;gap:8px;align-items:center}.admin-folder-form .admin-input-sm{max-width:240px;flex:1 1}.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(--field-border,var(--border));border-radius:6px;font-size:.95em;background:var(--field-bg,var(--surface));color:var(--text);outline:none;width:100%}.admin-input:focus{border-color:var(--accent,var(--link));box-shadow:var(--focus-ring-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(--control-border,var(--border));border-radius:6px;background:var(--control-bg,var(--surface-soft));color:var(--control-fg,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(--control-hover-bg,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:var(--backdrop,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:var(--radius-panel,8px);box-shadow:var(--overlay-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(--button-primary-bg,var(--link));border-color:var(--button-primary-bg,var(--link));color:var(--button-primary-fg,#fff)}.admin-btn-primary:hover{opacity:var(--button-primary-hover-opacity,.88);background:var(--button-primary-hover-bg,var(--link))}.admin-btn-danger{background:transparent;border-color:var(--danger,#cf222e);color:var(--danger,#cf222e)}.admin-btn-danger:hover{background:var(--danger-hover-bg,#cf222e);color:var(--danger-hover-fg,#fff)}html[data-theme=dark] .admin-btn-danger{border-color:var(--danger,#ff7b72);color:var(--danger,#ff7b72)}html[data-theme=dark] .admin-btn-danger:hover{background:var(--danger-hover-bg,#ff7b72);color:var(--danger-hover-fg,#0d1117)}@media (prefers-color-scheme:dark){.admin-btn-danger{border-color:var(--danger,#ff7b72);color:var(--danger,#ff7b72)}.admin-btn-danger:hover{background:var(--danger-hover-bg,#ff7b72);color:var(--danger-hover-fg,#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-error{color:var(--danger,#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:var(--danger-bg,#fff0f0);border:1px solid var(--danger-border,#ffcdd2);color:var(--danger-fg,#b71c1c)}.admin-status-bar{background:var(--success-bg,#e8f5e9);border:1px solid var(--success-border,#c8e6c9);color:var(--success-fg,#1b5e20)}html[data-theme=dark] .admin-error-bar{background:var(--danger-bg,#2a0a0a);border-color:var(--danger-border,#5a1a1a);color:var(--danger-fg,#ff7b72)}html[data-theme=dark] .admin-status-bar{background:var(--success-bg,#0a2a0a);border-color:var(--success-border,#1a5a1a);color:var(--success-fg,#7ee787)}@media (prefers-color-scheme:dark){.admin-error-bar{background:var(--danger-bg,#2a0a0a);border-color:var(--danger-border,#5a1a1a);color:var(--danger-fg,#ff7b72)}.admin-status-bar{background:var(--success-bg,#0a2a0a);border-color:var(--success-border,#1a5a1a);color:var(--success-fg,#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-table tbody tr:last-child td{border-bottom:none}.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}.admin-cell-sec,.admin-th-sec{white-space:nowrap}.admin-cell-sec{width:1px;padding:6px 4px}.sec-strip{gap:3px}.sec-icon,.sec-strip{display:inline-flex;align-items:center}.sec-icon{color:var(--muted);opacity:.9;cursor:default}.sec-icon.sec-green{color:var(--success,#2da44e);opacity:1}.sec-icon.sec-red{color:var(--danger,#cf222e);opacity:1}.sec-icon.sec-muted{color:var(--muted)}html[data-theme=dark] .sec-icon.sec-green{color:var(--success,#3fb950)}html[data-theme=dark] .sec-icon.sec-red{color:var(--danger,#ff7b72)}@media (prefers-color-scheme:dark){.sec-icon.sec-green{color:var(--success,#3fb950)}.sec-icon.sec-red{color:var(--danger,#ff7b72)}}.admin-row-current-dir td{border-bottom:2px solid var(--border);background:var(--surface-soft,rgba(127,127,127,.04));color:var(--muted);padding-top:4px;padding-bottom:4px}.admin-cur-dir-label{font-family:inherit;font-size:inherit}.admin-tab-bar{display:flex;align-items:center;gap:8px;border-bottom:2px solid var(--border);margin-bottom:20px;padding-bottom:0}.admin-tabs{display:flex;gap:2px;flex:1 1}.admin-tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:8px 14px;font-size:.875rem;font-weight:500;color:var(--muted);cursor:pointer;border-radius:4px 4px 0 0;transition:color .15s,border-color .15s}.admin-tab:hover{color:var(--text);background:var(--hover-bg,rgba(127,127,127,.08))}.admin-tab.active{color:var(--text);border-bottom-color:var(--text)}.admin-settings-form{max-width:860px}.admin-settings-section{margin-bottom:28px}.admin-settings-section-title{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 12px;padding-bottom:6px;border-bottom:1px solid var(--border)}.admin-settings-fields{display:flex;flex-direction:column;gap:12px}.admin-settings-row{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.admin-settings-row .admin-field{flex:1 1;min-width:160px}.admin-field{display:flex;flex-direction:column;gap:4px}.admin-field-label{font-size:.8125rem;font-weight:500;color:var(--text)}.admin-field-help{font-size:.75rem;color:var(--muted);margin:2px 0 0}.admin-checkbox-label{display:flex;align-items:center;gap:8px;font-size:.875rem;cursor:pointer}.admin-checkbox-label input[type=checkbox]{width:14px;height:14px;cursor:pointer;flex-shrink:0;margin-top:1px}.admin-settings-actions{padding-top:8px;border-top:1px solid var(--border);display:flex;gap:8px}.admin-sec-match-btn{background:none;border:none;padding:0;cursor:pointer;color:inherit;font:inherit;display:flex;align-items:center;gap:6px;text-align:left;width:100%}.admin-sec-caret{font-size:.6rem;color:var(--muted);flex-shrink:0;transition:transform .15s}.admin-sec-match{font-family:var(--font-mono,monospace);font-size:.8125em}.admin-sec-row-expanded td{background:var(--hover-bg,rgba(127,127,127,.05));border-bottom:none}.admin-sec-edit-row td{padding:0;border-bottom:2px solid var(--border)}.admin-sec-edit-cell{padding:14px 12px!important}.admin-sec-edit-form{display:flex;flex-direction:column;gap:12px}.admin-sec-edit-fields{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.admin-sec-edit-group{display:flex;flex-direction:column;gap:4px;flex:1 1;min-width:160px}.admin-sec-group-header{flex-basis:100%;font-size:.75em;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:10px 0 4px;border-top:1px solid var(--border);margin-top:4px}.admin-sec-date-row{display:flex;flex-wrap:wrap;gap:12px}.admin-sec-date-row .admin-sec-edit-group{flex:0 1 200px}.admin-sec-match-preview{font-family:var(--font-mono,monospace);font-size:.8125em;color:var(--muted);margin-top:2px}.admin-sec-type-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.admin-sec-add-title{font-size:.8125rem;font-weight:600;color:var(--muted);margin:0 0 10px}.admin-sec-wizard-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.admin-sec-wizard-badge{display:inline-flex;align-items:center;background:var(--accent-soft);border:1px solid var(--border);border-radius:var(--radius-pill,99px);padding:1px 9px;font-size:.72em;font-weight:600;color:var(--muted);white-space:nowrap;letter-spacing:.01em}.admin-sec-wizard-label{font-size:.8125rem;font-weight:600;color:var(--muted)}.admin-sec-form-actions{display:flex;gap:8px;align-items:center;padding-top:4px}.admin-sec-subtitle{font-size:.8125rem;color:var(--muted);margin:0 0 16px}.admin-sec-add-row td{padding:14px 12px;border-top:2px solid var(--border);border-bottom:none}.sgw-cookie-backdrop{content:"";position:fixed;top:0;bottom:0;left:0;right:0;z-index:9997;background-color:var(--backdrop,rgba(0,0,0,.5));pointer-events:none;display:none}.sgw-cookie-backdrop.visible{display:block}.sgw-cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:9998;background:var(--surface);border-top:1px solid var(--border);overflow:hidden;opacity:0;pointer-events:none;transition:opacity .5s,transform .5s}.sgw-cookie-banner.sgw-cookie-banner--visible{opacity:1;pointer-events:auto}.sgw-cookie-inner{overflow:auto;position:relative;z-index:1}.sgw-cookie-content{display:flex;flex-direction:row;align-items:center;gap:1.5rem;padding:3.75rem 6.25rem}.sgw-cookie-text-wrap{flex:1 1}.sgw-cookie-heading{font-size:2.125rem;font-weight:600;line-height:1.2;color:var(--text-strong,var(--text));margin:0 0 .5rem}.sgw-cookie-text{margin:0;font-size:1rem;line-height:1.6;color:var(--text)}.sgw-cookie-text+.sgw-cookie-text{margin-top:.25rem}.sgw-cookie-text a{color:inherit;text-decoration:underline}.sgw-cookie-text a:hover{color:var(--consent-accent,#fb6362)}.sgw-cookie-btns{display:inline-flex;flex-direction:row-reverse;gap:1rem;flex-shrink:0;align-items:center}.sgw-cookie-btn{display:inline-block;padding:10px 25px;font-size:.875rem;font-weight:500;line-height:1.4;cursor:pointer;border-radius:8px;white-space:nowrap;transition:background-color .3s,color .3s}.sgw-cookie-accept{background:var(--consent-accent,#fb6362);color:var(--consent-on-accent,#000);border:1px solid var(--consent-accent,#fb6362)}.sgw-cookie-accept:hover{background:var(--consent-accent-hover,transparent);border-color:var(--consent-accent-hover,#fb6362)}.sgw-cookie-outline{background:transparent;color:var(--text);border:1px solid var(--consent-outline-border,#fb6362)}.sgw-cookie-outline:hover{background:var(--consent-outline-hover-bg,#fb6362);color:var(--consent-outline-hover-fg,#000)}.sgw-cookie-settings{position:fixed;left:.75rem;bottom:.75rem;z-index:9996;padding:.3rem .75rem;font:inherit;font-size:.8125rem;line-height:1.3;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill,999px);cursor:pointer;opacity:.85}.sgw-cookie-settings:focus-visible,.sgw-cookie-settings:hover{opacity:1;border-color:var(--consent-accent,#fb6362)}.sgw-cookie-settings:focus-visible{outline:2px solid var(--consent-accent,#fb6362);outline-offset:2px}@media print{.sgw-cookie-settings{display:none}}.sgw-cookie-modal-bg{width:100%;height:100%;position:fixed;top:0;left:0;z-index:9999;flex-direction:column;justify-content:center;background-color:var(--backdrop,rgba(0,0,0,.6));overflow:auto;display:none}.sgw-cookie-modal-bg.visible{display:flex}.sgw-cookie-modal{width:100%;max-width:46.25rem;max-height:90vh;overflow-y:auto;margin:auto;background:var(--surface);position:relative;z-index:1;padding:3.75rem;color:var(--text)}.sgw-modal-close-btn{width:1.625rem;height:1.625rem;display:block;position:absolute;top:2rem;right:2rem;background:none;border:none;cursor:pointer;padding:0}.sgw-modal-close-btn:after,.sgw-modal-close-btn:before{content:"";width:100%;height:.0625rem;position:absolute;top:50%;left:0;background-color:var(--text);border-radius:.0625rem}.sgw-modal-close-btn:before{transform:translateY(-50%) rotate(45deg)}.sgw-modal-close-btn:after{transform:translateY(-50%) rotate(-45deg)}.sgw-modal-title{font-size:2.125rem;font-weight:600;line-height:1.2;color:var(--text-strong,var(--text));margin:0 0 1rem}.sgw-modal-intro{font-size:1rem;line-height:1.6;color:var(--muted);margin:0 0 1.5rem}.sgw-modal-intro a{color:inherit;text-decoration:underline}.sgw-toggle-wrap{margin:1.5rem 0;display:flex;gap:1rem;align-items:flex-start}.sgw-toggle-label{display:block;position:relative;width:3.625rem;height:1.75rem;border-radius:.9375rem;overflow:hidden;cursor:pointer;flex-shrink:0;margin-top:.125rem}.sgw-toggle-label input{clip:rect(0 0 0 0);-webkit-clip-path:inset(100%);clip-path:inset(100%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.sgw-toggle-track{display:block;width:100%;height:100%;background:var(--toggle-track-bg,#fff);border:.125rem solid var(--toggle-track-border,#d3d3d3);border-radius:.9375rem;transition:background-color .3s,border-color .3s;position:relative}.sgw-toggle-track:after{content:"";width:1.25rem;height:1.25rem;border-radius:50%;background-color:var(--toggle-knob,#d3d3d3);position:absolute;top:.125rem;left:.125rem;transition:background-color .3s,transform .3s}.sgw-toggle-label input:checked+.sgw-toggle-track{background-color:var(--toggle-on-bg,#3faa9c);border-color:var(--toggle-on-bg,#3faa9c)}.sgw-toggle-label input:checked+.sgw-toggle-track:after{transform:translateX(1.875rem);background-color:var(--toggle-on-knob,#fff)}.sgw-toggle-label input:disabled+.sgw-toggle-track{background-color:var(--toggle-disabled-bg,#d3d3d3);border-color:var(--toggle-disabled-bg,#d3d3d3);cursor:not-allowed}.sgw-toggle-label input:disabled+.sgw-toggle-track:after{background-color:var(--toggle-disabled-knob,#fff)}.sgw-toggle-info{flex:1 1}.sgw-toggle-title{font-size:1rem;font-weight:500;text-transform:uppercase;letter-spacing:.15em;color:var(--text-strong,var(--text));margin:0 0 .5rem}.sgw-toggle-desc{font-size:.875rem;line-height:1.5;color:var(--muted);margin:0}html[data-theme=dark] .sgw-toggle-track{background:var(--toggle-track-bg,var(--surface-soft));border-color:var(--toggle-track-border,var(--border))}html[data-theme=dark] .sgw-toggle-track:after{background-color:var(--toggle-knob,var(--muted))}html[data-theme=dark] .sgw-toggle-label input:disabled+.sgw-toggle-track{background-color:var(--toggle-disabled-bg,var(--border));border-color:var(--toggle-disabled-bg,var(--border))}.sgw-modal-save-btn{display:inline-block;margin-top:1.5rem;padding:10px 25px;font-size:.875rem;font-weight:500;background:var(--consent-accent,#fb6362);color:var(--consent-on-accent,#000);border:1px solid var(--consent-accent,#fb6362);border-radius:8px;cursor:pointer;transition:background .3s;white-space:nowrap}.sgw-modal-save-btn:hover{background:var(--consent-accent-hover,transparent);border-color:var(--consent-accent-hover,#fb6362)}@media (max-width:900px){.sgw-cookie-content{padding:1.875rem 2rem;flex-direction:column;align-items:flex-start}.sgw-cookie-btns{flex-direction:row;flex-wrap:wrap;width:100%;justify-content:flex-end}}@media (max-width:600px){.sgw-cookie-content{padding:1.5rem 1.25rem}.sgw-cookie-heading{font-size:1.5rem}.sgw-cookie-btns{flex-direction:column;width:100%}.sgw-cookie-btn{width:100%;text-align:center}.sgw-cookie-modal{padding:2rem 1.25rem}.sgw-modal-title{font-size:1.5rem}}:where(html[data-palette]){--code-inline-fg:var(--text-strong);--blockquote-fg:var(--muted);--blockquote-border:var(--border);--header-shadow:none;--nav-card-bg:var(--surface-soft);--nav-hover-fg:var(--text-strong);--nav-hover-bg:var(--hover-bg);--nav-hover-border:var(--border-strong);--nav-active-fg:var(--text-strong);--nav-active-bg:var(--accent-soft);--nav-active-border:var(--accent);--chip-hover-border:var(--border-strong);--hover-bg:color-mix(in srgb,var(--text-strong) 6%,transparent);--control-bg:var(--surface-soft);--control-border:var(--border);--control-fg:var(--text);--control-hover-bg:var(--surface-hover);--control-hover-border:var(--border-strong);--control-hover-fg:var(--text-strong);--control-pressed-bg:var(--accent-soft);--control-pressed-border:var(--accent);--control-pressed-fg:var(--text-strong);--field-bg:var(--surface-soft);--field-border:var(--border-strong);--placeholder:var(--muted);--focus-ring-shadow:none;--button-primary-bg:var(--accent);--button-primary-fg:var(--on-accent);--button-primary-hover-bg:var(--accent-hover);--button-primary-hover-opacity:1;--danger-hover-bg:color-mix(in srgb,var(--danger) 14%,transparent);--danger-hover-fg:var(--danger);--danger-bg:color-mix(in srgb,var(--danger) 12%,transparent);--danger-border:color-mix(in srgb,var(--danger) 45%,transparent);--danger-fg:var(--danger);--success-bg:color-mix(in srgb,var(--success) 12%,transparent);--success-border:color-mix(in srgb,var(--success) 45%,transparent);--success-fg:var(--success);--backdrop:rgba(0,0,0,0.6);--backdrop-soft:rgba(0,0,0,0.3);--overlay-shadow:0 8px 24px rgba(0,0,0,0.35);--table-head-bg:var(--surface-soft);--table-head-fg:var(--text-strong);--table-row-bg:var(--surface);--table-row-alt-bg:var(--surface);--consent-accent:var(--accent);--consent-accent-hover:var(--accent-hover);--consent-on-accent:var(--on-accent);--consent-outline-border:var(--border-strong);--consent-outline-hover-bg:var(--surface-hover);--consent-outline-hover-fg:var(--text-strong);--toggle-track-bg:var(--surface-soft);--toggle-track-border:var(--border-strong);--toggle-knob:var(--muted);--toggle-on-bg:var(--accent);--toggle-on-knob:var(--on-accent);--toggle-disabled-bg:var(--surface-hover);--toggle-disabled-knob:var(--muted);--selection-bg:color-mix(in srgb,var(--accent) 35%,var(--surface));--selection-fg:var(--text-strong);--scrollbar-thumb:var(--border-strong);--mermaid-font:var(--font-sans,"IBM Plex Sans","Segoe UI","Noto Sans",Helvetica,Arial,sans-serif);--mermaid-bg:var(--code-bg);--mermaid-node-bg:var(--surface-soft);--mermaid-node-border:var(--muted);--mermaid-node-text:var(--text-strong);--mermaid-line:var(--muted);--mermaid-text:var(--text);--mermaid-secondary-bg:var(--surface);--mermaid-tertiary-bg:var(--surface-hover);--mermaid-note-bg:var(--surface-hover);--mermaid-note-text:var(--text-strong);--mermaid-note-border:var(--muted);--mermaid-cluster-bg:var(--surface);--mermaid-cluster-border:var(--muted);--mermaid-link:var(--link);--mermaid-task-bg:var(--surface-soft);--mermaid-task-border:var(--accent);--mermaid-task-text:var(--text-strong);--mermaid-active-bg:var(--surface-hover);--mermaid-active-border:var(--accent-hover);--mermaid-done-bg:var(--surface);--mermaid-done-border:var(--muted);--mermaid-crit-bg:var(--surface-soft);--mermaid-crit-border:var(--danger);--mermaid-section-bg:var(--muted);--mermaid-section-bg-2:var(--accent);--mermaid-section-alt-bg:var(--surface-hover);--mermaid-grid:var(--muted)}html[data-palette] .header-title,html[data-palette] .markdown-body :is(h1,h2,h3,h4,h5):not([class]),html[data-palette] .markdown-body :is(strong,b,summary,dt){color:var(--text-strong)}html[data-palette] .markdown-body a :is(strong,b){color:inherit}html[data-palette] .markdown-body pre code{color:var(--hl-fg)}html[data-palette] ::selection{background-color:var(--selection-bg);color:var(--selection-fg)}html[data-palette] ::placeholder{color:var(--placeholder);opacity:1}:where(html[data-palette]) :where(button,input,select,textarea){font-family:inherit}html[data-palette]{scrollbar-color:var(--scrollbar-thumb) transparent}html[data-palette] :is(.sidebar,.markdown-body pre,.mermaid-chart,.markdown-body table){scrollbar-width:thin}html[data-palette] :focus-visible{outline:2px solid var(--accent);outline-offset:2px}html[data-palette] :is(input:not([type=checkbox]),textarea,select):focus-visible{outline-offset:-1px}html[data-palette] .sgw-toggle-label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}html[data-palette] .security-gate-button:hover:not(:disabled){background:var(--button-primary-hover-bg)}html[data-palette] .markdown-body input[type=checkbox]:hover{background:var(--accent-soft)}html[data-palette] .markdown-body input[type=checkbox]:checked{background:var(--accent) 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") center /.85em no-repeat}@media (forced-colors:active){html[data-palette] :is(.toc-link,.sitemap-link){border-left-color:Canvas}html[data-palette] :is(.toc-link.active,.sitemap-link.is-current){border-left-color:Highlight}html[data-palette] .sgw-toggle-label:has(input:focus-visible),html[data-palette] :focus-visible{outline-color:Highlight}}html[data-palette] code.hljs{color:var(--hl-fg);background:transparent;padding:0}html[data-palette] .hljs .hljs-emphasis,html[data-palette] .hljs .hljs-operator,html[data-palette] .hljs .hljs-punctuation,html[data-palette] .hljs .hljs-strong,html[data-palette] .hljs .hljs-subst{color:var(--hl-fg)}html[data-palette] .hljs .hljs-subst{font-weight:var(--hl-keyword-weight,400)}html[data-palette] .hljs .hljs-emphasis{font-style:italic}html[data-palette] .hljs .hljs-strong{font-weight:700}html[data-palette] .hljs .hljs-doctag,html[data-palette] .hljs .hljs-keyword,html[data-palette] .hljs .hljs-meta .hljs-keyword,html[data-palette] .hljs .hljs-template-tag,html[data-palette] .hljs .hljs-variable.language_{color:var(--hl-keyword)}html[data-palette] .hljs .hljs-keyword{font-weight:var(--hl-keyword-weight,400)}html[data-palette] .hljs .hljs-built_in,html[data-palette] .hljs .hljs-builtin,html[data-palette] .hljs .hljs-builtin-name,html[data-palette] .hljs .hljs-class .hljs-title,html[data-palette] .hljs .hljs-title.class_,html[data-palette] .hljs .hljs-title.class_.inherited__,html[data-palette] .hljs .hljs-type{color:var(--hl-type)}html[data-palette] .hljs .hljs-function .hljs-title,html[data-palette] .hljs .hljs-selector-id,html[data-palette] .hljs .hljs-title,html[data-palette] .hljs .hljs-title.function_{color:var(--hl-title)}html[data-palette] .hljs .hljs-title{font-weight:var(--hl-keyword-weight,400)}html[data-palette] .hljs .hljs-attr,html[data-palette] .hljs .hljs-attribute,html[data-palette] .hljs .hljs-property,html[data-palette] .hljs .hljs-selector-attr,html[data-palette] .hljs .hljs-selector-class,html[data-palette] .hljs .hljs-selector-pseudo,html[data-palette] .hljs .hljs-tag .hljs-attr,html[data-palette] .hljs .hljs-template-variable,html[data-palette] .hljs .hljs-variable{color:var(--hl-attr)}html[data-palette] .hljs .hljs-meta .hljs-string,html[data-palette] .hljs .hljs-regexp,html[data-palette] .hljs .hljs-string{color:var(--hl-string)}html[data-palette] .hljs .hljs-bullet,html[data-palette] .hljs .hljs-link,html[data-palette] .hljs .hljs-literal,html[data-palette] .hljs .hljs-number,html[data-palette] .hljs .hljs-symbol{color:var(--hl-constant)}html[data-palette] .hljs .hljs-code,html[data-palette] .hljs .hljs-comment,html[data-palette] .hljs .hljs-formula,html[data-palette] .hljs .hljs-quote{color:var(--hl-comment)}html[data-palette] .hljs .hljs-comment,html[data-palette] .hljs .hljs-quote{font-style:var(--hl-comment-style,italic)}html[data-palette] .hljs .hljs-meta{color:var(--hl-meta);font-weight:var(--hl-keyword-weight,400)}html[data-palette] .hljs .hljs-name,html[data-palette] .hljs .hljs-selector-tag,html[data-palette] .hljs .hljs-tag{color:var(--hl-tag);font-weight:var(--hl-keyword-weight,400)}html[data-palette] .hljs .hljs-section{color:var(--hl-section);font-weight:600}html[data-palette] .hljs .hljs-addition{color:var(--hl-add-fg);background-color:var(--hl-add-bg)}html[data-palette] .hljs .hljs-deletion{color:var(--hl-del-fg);background-color:var(--hl-del-bg)}