:root{--primary:#059669;--primary-dark:#047857;--primary-darker:#065f46;--primary-light:#ecfdf5;--primary-wash:#d1fae5;--accent:#8b5cf6;--accent-light:#f5f3ff;--text:#1e293b;--text-secondary:#2d3a4a;--text-muted:#94a3b8;--text-inverse:#f8fafc;--bg:#ffffff;--bg-alt:#f8fafc;--bg-sidebar:#ffffff;--bg-code-inline:#f1f5f9;--bg-code-block:#0f172a;--border:#e2e8f0;--border-light:#f1f5f9;--shadow-sm:0 1px 2px rgba(0, 0, 0, 0.05);--shadow:0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);--shadow-md:0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -2px rgba(0, 0, 0, 0.05);--shadow-lg:0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -4px rgba(0, 0, 0, 0.04);--radius:8px;--radius-lg:12px;--radius-xl:16px;--sidebar-width:280px;--header-height:64px;--max-content:900px;--max-container:1400px;--font:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;--font-mono:'JetBrains Mono', 'SF Mono', 'Fira Code', 'Consolas', monospace;--ease:cubic-bezier(0.4, 0, 0.2, 1)}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 24px)}body{margin:0;font-family:var(--font);color:var(--text);background:var(--bg);line-height:1.7;font-size:16px;font-weight:450}.site-header{position:fixed;top:0;left:0;right:0;height:var(--header-height);background:#1e293b;z-index:100;display:flex;align-items:center;justify-content:center}.header-inner{width:100%;max-width:var(--max-container);padding:0 32px;display:flex;align-items:center;gap:32px}.site-header .logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;font-weight:700;font-size:18px;flex-shrink:0}.site-header .logo-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#fff;border-radius:8px;padding:2px}.site-header .logo-icon svg{width:32px;height:32px}.site-header .logo-text{font-size:18px;letter-spacing:-.3px;font-weight:700}.logo-ecg{color:#fff}.logo-dk{color:#6ee7b7}.site-header .version-badge{background:rgba(255,255,255,.12);color:#94a3b8}.version-badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;font-weight:500;background:var(--primary-light);color:var(--primary-dark);letter-spacing:.2px}.site-header nav{margin-left:auto;display:flex;gap:8px;align-items:center}.site-header nav a{color:#cbd5e1;text-decoration:none;font-size:14px;font-weight:500;padding:6px 14px;border-radius:6px;transition:color .15s var(--ease),background .15s var(--ease)}.site-header nav a:hover{color:#fff;background:rgba(255,255,255,8%)}.site-header nav a.active{color:#6ee7b7;background:rgba(255,255,255,8%);font-weight:600}.header-lab{display:flex;align-items:center;justify-content:center;text-decoration:none;transition:opacity .15s var(--ease)}.header-lab:hover{opacity:.8}.header-lab-logo{height:44px;width:auto;border-radius:8px;background:#fff;padding:4px}.header-github{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;color:#94a3b8;transition:color .15s var(--ease),background .15s var(--ease);text-decoration:none}.header-github:hover{color:#fff;background:rgba(255,255,255,8%)}.header-github svg{width:20px;height:20px}.hamburger{display:none;background:0 0;border:none;cursor:pointer;padding:8px;border-radius:8px;margin-left:auto;transition:background .15s var(--ease)}.hamburger:hover{background:rgba(255,255,255,8%)}.hamburger svg{width:22px;height:22px;color:#cbd5e1}.doc-container{display:flex;max-width:var(--max-container);margin:var(--header-height)auto 0;min-height:calc(100vh - var(--header-height))}.sidebar{position:sticky;top:var(--header-height);width:var(--sidebar-width);height:calc(100vh - var(--header-height));flex-shrink:0;background:var(--bg);overflow-y:auto;padding:28px 16px 28px 24px;overscroll-behavior:contain}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.sidebar-section{margin-bottom:24px}.sidebar-section h3{font-size:13px;font-weight:700;color:var(--text);padding:0 8px;margin:0 0 6px;letter-spacing:0;text-transform:none}.sidebar-section a{display:block;padding:6px 12px;color:var(--text-secondary);text-decoration:none;font-size:14px;font-weight:450;transition:all .15s var(--ease);border-radius:6px;margin:1px 0}.sidebar-section a:hover{color:var(--primary);background:0 0;text-decoration:underline}.sidebar-section a.active{color:var(--primary);background:var(--primary-light);text-decoration:underline;font-weight:600}.main{flex:1;min-width:0;padding:48px 56px;margin-top:var(--header-height)}.doc-container .main{margin-top:0;border-left:1px solid var(--border)}.main-content{max-width:var(--max-content);min-width:0;overflow-x:auto}.breadcrumbs{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-muted);margin-bottom:16px}.breadcrumbs a{color:var(--text-muted);text-decoration:none;transition:color .15s var(--ease)}.breadcrumbs a:hover{color:var(--primary);text-decoration:none}.breadcrumbs .sep{color:var(--border);font-size:12px;user-select:none}.breadcrumbs .current{color:var(--text-secondary);font-weight:500}.page-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:64px;padding-top:32px;border-top:1px solid var(--border)}.page-nav a{display:flex;flex-direction:column;gap:4px;padding:16px 20px;border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;transition:all .15s var(--ease)}.page-nav a:hover{border-color:var(--primary);background:var(--primary-light);text-decoration:none}.page-nav a.next{text-align:right;grid-column:2}.page-nav .page-nav-label{font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.page-nav .page-nav-title{font-size:15px;font-weight:600;color:var(--primary)}h1{font-size:36px;font-weight:700;color:var(--text);margin:0 0 12px;letter-spacing:-.5px;line-height:1.2}h2{font-size:26px;font-weight:600;color:var(--text);margin:56px 0 20px;letter-spacing:-.3px;line-height:1.3}h3{font-size:20px;font-weight:600;color:var(--text);margin:40px 0 12px;line-height:1.4}h4{font-size:16px;font-weight:600;color:var(--text);margin:24px 0 8px}p{margin:0 0 20px;color:var(--text-secondary);font-size:16px;line-height:1.75}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-dark);text-decoration:underline}strong{color:var(--text);font-weight:600}ul,ol{padding-left:24px;margin:0 0 20px;color:var(--text-secondary);font-size:16px;line-height:1.75}li{margin-bottom:6px}li::marker{color:var(--text-muted)}code{font-family:var(--font-mono);font-size:.875em;background:var(--bg-code-inline);padding:2px 7px;border-radius:5px;color:#e11d48;font-weight:450}pre{background:var(--bg-code-block);color:#e2e8f0;padding:24px;border-radius:var(--radius-lg);overflow-x:auto;font-size:14px;line-height:1.65;margin:0 0 28px;border:1px solid rgba(255,255,255,6%);position:relative}pre code{background:0 0;padding:0;color:inherit;font-size:inherit;font-weight:400}.copy-btn{position:absolute;top:10px;right:10px;background:rgba(255,255,255,8%);border:1px solid rgba(255,255,255,.1);color:#94a3b8;padding:5px 10px;border-radius:6px;font-size:12px;font-family:var(--font);cursor:pointer;opacity:0;transition:all .15s var(--ease);z-index:2}.copy-btn:hover{background:rgba(255,255,255,.15);color:#e2e8f0}pre:hover .copy-btn,.highlight:hover .copy-btn{opacity:1}.copy-btn.copied{color:#86efac;opacity:1}.highlight{margin:0 0 28px;position:relative}.highlight pre{margin:0}.table-wrap{overflow-x:auto;margin:0 0 28px;border:1px solid var(--border);border-radius:var(--radius)}.table-wrap table{margin:0;border:none;border-radius:0}table{width:100%;border-collapse:collapse;margin:0 0 28px;font-size:14px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;table-layout:auto;word-break:break-word}.table-responsive{overflow-x:auto;margin:0 0 28px;-webkit-overflow-scrolling:touch}.table-responsive table{margin:0}th,td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border)}th{font-weight:600;color:var(--text);background:var(--bg-alt);font-size:13px}tr:last-child td{border-bottom:none}tr:nth-child(even) td{background:var(--bg-alt)}tr:hover td{background:var(--primary-light)}td code{font-size:.85em;white-space:normal;word-break:break-word}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin:28px 0}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;transition:all .2s var(--ease);box-shadow:var(--shadow-sm)}.card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card h4{margin:0 0 6px;font-size:15px;color:var(--primary-dark)}.card p{margin:0;font-size:14px;color:var(--text-secondary)}.hero-section{background:linear-gradient(180deg,var(--bg-alt) 0%,var(--bg) 100%);padding:80px 32px 56px;text-align:center}.hero-inner{max-width:780px;margin:0 auto}.hero-logo{display:inline-flex;align-items:center;gap:18px;margin-bottom:8px}.hero-logo-icon{width:72px;height:72px;flex-shrink:0}.hero-inner h1{font-size:56px;letter-spacing:-1px;margin:0;line-height:1.1}.hero-inner h1 .logo-ecg{color:#1b4f72}.hero-inner h1 .logo-dk{color:#2e7d32}.hero-version{display:inline-block;padding:4px 14px;border-radius:20px;font-size:13px;font-weight:500;background:var(--primary-light);color:var(--primary-dark);margin-bottom:20px}.hero-tagline{font-size:20px;color:var(--text-secondary);margin-bottom:32px;line-height:1.6}.hero-badges{display:flex;justify-content:center;gap:10px;margin-bottom:36px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;border-radius:24px;font-size:13px;font-weight:500;border:1px solid transparent}.badge-blue{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.badge-green{background:#f0fdf4;color:#16a34a;border-color:#bbf7d0}.badge-purple{background:#faf5ff;color:#9333ea;border-color:#e9d5ff}.badge-orange{background:#fff7ed;color:#ea580c;border-color:#fed7aa}.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:40px}.hero-install{display:flex;align-items:center;justify-content:center;gap:12px;max-width:420px;margin:0 auto;background:var(--bg-code-block);border-radius:var(--radius);padding:12px 20px;font-family:var(--font-mono);font-size:14px;color:#e2e8f0;border:1px solid rgba(255,255,255,6%)}.hero-install .prompt{color:var(--text-muted);user-select:none}.hero-install code{background:0 0;color:#e2e8f0;padding:0;font-weight:400}.hero-install .copy-install{background:0 0;border:none;color:#64748b;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;transition:color .15s var(--ease);flex-shrink:0}.hero-install .copy-install:hover{color:#e2e8f0}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 28px;border-radius:var(--radius);font-size:15px;font-weight:600;text-decoration:none;transition:all .2s var(--ease);border:none;cursor:pointer}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 2px 8px rgba(5,150,105,.25)}.btn-primary:hover{background:var(--primary-dark);box-shadow:0 4px 12px rgba(5,150,105,.35);transform:translateY(-1px);color:#fff;text-decoration:none}.btn-outline{background:var(--bg);color:var(--text-secondary);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.btn-outline:hover{background:var(--bg-alt);border-color:var(--primary);color:var(--primary);text-decoration:none}.features-section{padding:0 32px 64px}.features-inner{max-width:1080px;margin:0 auto}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.feature-card{padding:32px;border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--bg);box-shadow:var(--shadow-sm);transition:all .25s var(--ease)}.feature-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);border-color:var(--border)}.feature-icon{width:52px;height:52px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin-bottom:20px}.feature-icon svg{width:26px;height:26px}.feature-icon-blue{background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#2563eb}.feature-icon-green{background:linear-gradient(135deg,#f0fdf4,#dcfce7);color:#16a34a}.feature-icon-purple{background:linear-gradient(135deg,#faf5ff,#f3e8ff);color:#9333ea}.feature-card h3{margin:0 0 10px;font-size:18px;color:var(--text)}.feature-card p{margin:0;font-size:15px;color:var(--text-secondary);line-height:1.6}.home-section{padding:0 32px 64px}.home-inner{max-width:860px;margin:0 auto}.section-heading{font-size:28px;font-weight:700;letter-spacing:-.3px;margin:0 0 24px;color:var(--text)}.formats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.format-item{padding:14px 18px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);transition:all .15s var(--ease)}.format-item:hover{border-color:var(--primary);background:var(--primary-light)}.format-item strong{display:block;font-size:14px;color:var(--text);margin-bottom:2px}.format-item span{font-size:13px;color:var(--text-muted)}.site-footer{border-top:1px solid var(--border);padding:24px 32px;display:flex;justify-content:center}.footer-inner{width:100%;max-width:var(--max-container);display:flex;align-items:center;justify-content:space-between;color:var(--text-muted);font-size:13px}.footer-inner a{color:var(--text-muted);text-decoration:none;transition:color .15s var(--ease)}.footer-inner a:hover{color:var(--primary);text-decoration:none}@media(max-width:1024px){.sidebar{display:none}.sidebar.open{display:block;position:fixed;top:var(--header-height);left:0;bottom:0;width:300px;z-index:95;box-shadow:var(--shadow-lg)}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.3);z-index:94}.sidebar-overlay.open{display:block}.doc-container{display:block}.main{padding:32px 24px;margin-top:var(--header-height)}.hamburger{display:flex}.site-header nav{display:none}.features-grid{grid-template-columns:1fr}.hero-inner h1{font-size:40px}.formats-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}@media(max-width:640px){.hero-section{padding:48px 20px 40px}.hero-inner h1{font-size:32px}.hero-tagline{font-size:17px}.home-section,.features-section{padding-left:20px;padding-right:20px}.main{padding:24px 16px}.header-inner{padding:0 16px}}.no-sidebar .main{margin:var(--header-height)auto 0;max-width:var(--max-container)}.toc-sidebar{position:sticky;top:var(--header-height);width:240px;height:calc(100vh - var(--header-height));flex-shrink:0;overflow-y:auto;padding:28px 16px 28px 20px;border-left:1px solid var(--border);overscroll-behavior:contain}.toc-sidebar::-webkit-scrollbar{width:4px}.toc-sidebar::-webkit-scrollbar-track{background:0 0}.toc-sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.toc-heading{font-size:12px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;display:flex;align-items:center;gap:6px}.toc-heading svg{width:14px;height:14px;color:var(--text-muted)}.toc-sidebar nav ul{list-style:none;padding:0;margin:0;font-size:13px;line-height:1.5}.toc-sidebar nav li{margin:0}.toc-sidebar nav ul ul{padding-left:12px}.toc-sidebar nav a{display:block;padding:4px 8px;color:var(--text-muted);text-decoration:none;border-left:2px solid transparent;border-radius:0;transition:all .15s var(--ease);font-weight:400}.toc-sidebar nav a:hover{color:var(--primary);text-decoration:none}.toc-sidebar nav a.active{color:var(--primary);border-left-color:var(--primary);font-weight:500}@media(max-width:1280px){.toc-sidebar{display:none}}.text-muted{color:var(--text-muted)}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.chroma .k,.chroma .kn,.chroma .kd,.chroma .kp,.chroma .kr,.chroma .kt,.chroma .kc{color:#c084fc}.chroma .nf{color:#67e8f9}.chroma .nb{color:#67e8f9}.chroma .s,.chroma .s1,.chroma .s2,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx{color:#86efac}.chroma .c,.chroma .c1,.chroma .cm,.chroma .cs,.chroma .cp,.chroma .cpf{color:#64748b}.chroma .mi,.chroma .mf,.chroma .mh,.chroma .mo,.chroma .il{color:#fbbf24}.chroma .o,.chroma .p{color:#94a3b8}.chroma .nn{color:#67e8f9}.chroma .nc{color:#fbbf24}.chroma .nd{color:#67e8f9}.chroma .err{color:inherit;background:0 0;border:none}