:root{--bg: #f8f9fb;--surface: #ffffff;--surface-alt: #f0f2f5;--border: #e2e5ea;--border-focus: #3b82f6;--text: #1a1d23;--text-secondary: #6b7280;--text-muted: #9ca3af;--accent: #3b82f6;--accent-hover: #2563eb;--accent-bg: rgba(59, 130, 246, .06);--danger: #ef4444;--danger-hover: #dc2626;--success: #10b981;--info: #3b82f6;--warning: #f59e0b;--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;--shadow: 0 1px 3px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .03);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .06);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", "Fira Code", "Fira Mono", Menlo, monospace;--sidebar-w: 260px;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--bg: #0d1117;--surface: #161b22;--surface-alt: #1c2128;--border: #30363d;--text: #e6edf3;--text-secondary: #8b949e;--text-muted: #6e7681;--accent-bg: rgba(59, 130, 246, .1);--shadow: 0 1px 3px rgba(0, 0, 0, .3);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .4)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}.docs-layout{display:flex;min-height:100vh}.docs-sidebar{position:fixed;top:0;left:0;width:var(--sidebar-w);height:100vh;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:100;overflow-y:auto}.sidebar-header{padding:24px 20px 16px;border-bottom:1px solid var(--border)}.sidebar-logo{font-size:18px;font-weight:800;letter-spacing:-.5px;cursor:pointer;transition:color .15s}.sidebar-logo:hover{color:var(--accent)}.sidebar-version{display:inline-block;margin-top:4px;font-size:11px;font-weight:600;color:var(--accent);background:var(--accent-bg);padding:2px 8px;border-radius:99px}.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto}.nav-group{margin-bottom:20px}.nav-group-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);padding:0 8px;margin-bottom:6px}.nav-item{display:block;width:100%;padding:7px 12px;font-size:14px;font-weight:500;border:none;border-radius:var(--radius-xs);background:transparent;color:var(--text-secondary);text-align:left;cursor:pointer;transition:all .12s}.nav-item:hover{background:var(--surface-alt);color:var(--text)}.nav-item.active{background:var(--accent-bg);color:var(--accent);font-weight:600}.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border);display:flex;gap:16px;font-size:13px}.sidebar-footer a{color:var(--text-muted);text-decoration:none;transition:color .15s}.sidebar-footer a:hover{color:var(--accent)}.docs-main{flex:1;margin-left:var(--sidebar-w);padding:40px 48px 80px;max-width:900px}.mobile-menu-btn{display:none;position:fixed;top:14px;left:14px;z-index:200;width:40px;height:40px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);cursor:pointer;align-items:center;justify-content:center}.hamburger{display:block;width:18px;height:2px;background:var(--text);position:relative}.hamburger:before,.hamburger:after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--text)}.hamburger:before{top:-6px}.hamburger:after{top:6px}.sidebar-overlay{display:none}@media (max-width: 768px){.mobile-menu-btn{display:flex}.docs-sidebar{transform:translate(-100%);transition:transform .25s ease;box-shadow:var(--shadow-lg)}.docs-sidebar.open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:90}.docs-main{margin-left:0;padding:60px 20px}}.doc-page h1{font-size:32px;font-weight:800;letter-spacing:-1px;margin-bottom:8px}.doc-lead{font-size:16px;color:var(--text-secondary);line-height:1.7;margin-bottom:32px}.doc-lead code{background:var(--surface-alt);padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:14px}.doc-section{margin-bottom:40px}.doc-section h2{font-size:22px;font-weight:700;margin-bottom:12px;padding-top:16px;border-top:1px solid var(--border)}.doc-section h2:first-child{border-top:none;padding-top:0}.doc-section h2 code{font-family:var(--font-mono);font-size:18px;font-weight:600}.doc-section h3{font-size:16px;font-weight:600;margin-top:20px;margin-bottom:8px;color:var(--text-secondary)}.doc-section p{margin-bottom:12px;color:var(--text-secondary);line-height:1.7}.doc-section p code{background:var(--surface-alt);padding:1px 5px;border-radius:4px;font-family:var(--font-mono);font-size:13px}.doc-note{font-size:13px;color:var(--text-muted);padding:10px 14px;background:var(--accent-bg);border-radius:var(--radius-sm);border-left:3px solid var(--accent);margin:12px 0}.doc-note strong{color:var(--accent)}.doc-note code{font-family:var(--font-mono);font-size:12px}.doc-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0}@media (max-width: 640px){.doc-info-grid{grid-template-columns:1fr}}.doc-info-card{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px}.doc-info-card h4{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:4px}.doc-info-card code{font-family:var(--font-mono);font-size:13px;color:var(--accent)}.code-block{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin:12px 0 16px}.code-block-header{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:var(--surface-alt);border-bottom:1px solid var(--border)}.code-block-title{font-size:12px;font-weight:600;color:var(--text-secondary)}.code-block-lang{font-size:11px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.code-block-body{position:relative}.code-block-body pre{padding:16px;font-family:var(--font-mono);font-size:13px;line-height:1.6;overflow-x:auto;background:var(--surface);color:var(--text);white-space:pre;-moz-tab-size:2;tab-size:2;margin:0}.copy-btn{position:absolute;top:8px;right:8px;padding:4px 10px;font-size:11px;font-weight:600;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text-muted);cursor:pointer;opacity:0;transition:opacity .15s,background .15s}.code-block-body:hover .copy-btn{opacity:1}.copy-btn:hover{background:var(--surface-alt);color:var(--text)}.options-table-wrap{overflow-x:auto;margin:12px 0 16px;border:1px solid var(--border);border-radius:var(--radius-sm)}.options-table{width:100%;border-collapse:collapse;font-size:13px}.options-table thead{background:var(--surface-alt)}.options-table th{text-align:left;padding:10px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border)}.options-table td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:top}.options-table tbody tr:last-child td{border-bottom:none}.options-table code{font-family:var(--font-mono);font-size:12px;background:var(--surface-alt);padding:1px 5px;border-radius:3px}.options-table code.type{color:var(--accent);background:var(--accent-bg)}.text-muted{color:var(--text-muted)}.framework-tabs{display:flex;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px;margin-bottom:28px;overflow-x:auto}.framework-tab{flex:1;padding:10px 16px;font-size:14px;font-weight:600;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap}.framework-tab:hover{color:var(--text);background:var(--surface-alt)}.framework-tab.active{background:var(--accent);color:#fff}.tab-nav{display:flex;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px}.tab-btn{flex:1;padding:10px 16px;font-size:14px;font-weight:600;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s}.tab-btn:hover{color:var(--text);background:var(--surface-alt)}.tab-btn.active{background:var(--accent);color:#fff}.handler-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}.section-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:16px}.section-header h2{font-size:20px;font-weight:700;border:none;padding:0;margin:0}.section-sub{color:var(--text-secondary);font-size:13px;margin-top:2px}.section-sub code{background:var(--surface-alt);padding:1px 5px;border-radius:4px;font-family:var(--font-mono);font-size:12px}.toggle-btn{padding:6px 14px;font-size:13px;font-weight:500;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface-alt);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all .15s}.toggle-btn:hover{border-color:var(--accent);color:var(--accent)}.options-panel{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:20px;margin-bottom:20px;display:flex;flex-direction:column;gap:20px}.options-group h4{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:12px}.options-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.options-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:500;color:var(--text-secondary)}.options-grid input[type=number],.options-grid input[type=text],.options-grid select{padding:7px 10px;font-size:13px;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);outline:none;transition:border-color .15s}.options-grid input:focus,.options-grid select:focus{border-color:var(--border-focus)}.options-grid input[type=range]{width:100%;accent-color:var(--accent)}.checkbox-label{flex-direction:row!important;align-items:center;gap:8px!important;font-size:13px!important;cursor:pointer}.checkbox-label.inline{display:inline-flex}.checkbox-label input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.hint{font-size:11px;color:var(--text-muted);font-weight:400}.preset-buttons{display:flex;gap:6px;flex-wrap:wrap}.preset-btn{padding:7px 14px;font-size:13px;font-weight:500;border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .15s}.preset-btn:hover{border-color:var(--accent);color:var(--accent)}.preset-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.preset-btn:disabled{opacity:.5;cursor:not-allowed}.handler-section>input[type=file]{display:block;width:100%;padding:12px 16px;font-size:14px;border:2px dashed var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text);cursor:pointer;margin-bottom:16px;transition:border-color .15s}.handler-section>input[type=file]:hover{border-color:var(--accent)}.handler-section>input[type=file]:disabled{opacity:.5;cursor:not-allowed}.message{padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;margin-bottom:16px}.message.error{color:var(--danger);background:#ef444414;border:1px solid rgba(239,68,68,.2)}.message.success{color:var(--success);background:#10b98114;border:1px solid rgba(16,185,129,.2)}.message.info{color:var(--info);background:#3b82f614;border:1px solid rgba(59,130,246,.2)}.progress-section{margin-bottom:16px}.loading-text{font-size:13px;color:var(--text-muted);margin-bottom:8px}.progress-bar{position:relative;height:32px;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:12px}.progress-fill{height:100%;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--accent),#8b5cf6,var(--accent));background-size:200% 100%;animation:shimmer 1.5s linear infinite;transition:width .3s ease}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.progress-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--text)}.preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}@media (max-width: 640px){.preview-grid{grid-template-columns:1fr}}.preview-card{display:flex;flex-direction:column;gap:8px}.preview-card h3{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.preview-box{aspect-ratio:16 / 10;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-alt);display:flex;align-items:center;justify-content:center}.preview-box img,.preview-box video{width:100%;height:100%;object-fit:contain}.placeholder{font-size:13px;color:var(--text-muted)}.stat-list{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:13px}.stat-good{color:var(--success);font-weight:600}.stat-bad{color:var(--danger);font-weight:600}.stat-muted{color:var(--text-muted)}.actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:6px;padding:10px 22px;font-size:14px;font-weight:600;border:none;border-radius:var(--radius-sm);cursor:pointer;text-decoration:none;transition:all .15s}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--surface-alt);color:var(--text-secondary);border:1px solid var(--border)}.btn-secondary:hover{border-color:var(--text-secondary)}.btn-danger{background:transparent;color:var(--danger);border:1px solid var(--danger);padding:7px 16px;font-size:13px}.btn-danger:hover{background:#ef444414}.code-preview{margin-top:20px;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.code-preview summary{padding:10px 16px;font-size:13px;font-weight:600;color:var(--text-secondary);background:var(--surface-alt);cursor:pointer;-webkit-user-select:none;user-select:none}.code-preview summary:hover{color:var(--accent)}.code-preview pre{padding:16px;font-family:var(--font-mono);font-size:12px;line-height:1.6;overflow-x:auto;background:var(--surface);color:var(--text);white-space:pre;-moz-tab-size:2;tab-size:2}
