:root{--paper: #FBFBF9;--paper-2: #F2F2EE;--paper-3: #EAEAE4;--ink: #16181A;--ink-2: #3B4145;--hair: #E0E0D9;--hair-2: #CFCFC6;--sev-critical: #B4322A;--sev-medium: #8A5F00;--sev-low: #14636F;--sev-ok: #15653F;--bg: var(--paper);--bg-soft: var(--paper-2);--card: var(--paper-2);--card-2: var(--paper-3);--line: var(--hair);--line-2: var(--hair-2);--text: var(--ink);--muted: var(--ink-2);--dim: #767C82;--brand: #B85309;--brand-2: #7C3705;--green: var(--sev-ok);--blue: var(--sev-low);--purple: var(--dim);--red: var(--sev-critical);--sidebar: 260px;--mono: ui-monospace, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", "Liberation Mono", monospace;--ui-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;--display: "Instrument Serif", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--r: 3px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #0E1011;--paper-2: #16191B;--paper-3: #1D2123;--ink: #E7EAE7;--ink-2: #B6BDBF;--hair: #24292C;--hair-2: #333A3E;--dim: #848C93;--sev-critical: #FF7466;--sev-medium: #E3AC42;--sev-low: #63C9D9;--sev-ok: #4CE0A0;--brand: #FF8C42;--brand-2: #EA7D04}}:root[data-theme=dark]{--paper: #0E1011;--paper-2: #16191B;--paper-3: #1D2123;--ink: #E7EAE7;--ink-2: #B6BDBF;--hair: #24292C;--hair-2: #333A3E;--dim: #848C93;--sev-critical: #FF7466;--sev-medium: #E3AC42;--sev-low: #63C9D9;--sev-ok: #4CE0A0;--brand: #FF8C42;--brand-2: #EA7D04}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.topnav{position:fixed;top:0;left:0;right:0;z-index:50;height:56px;background:#080a0fe6;backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 24px;gap:20px}.topnav .logo{font-weight:800;font-size:17px;letter-spacing:-.03em;display:flex;align-items:center;gap:8px;color:var(--text);margin-right:16px}.topnav .logo .forge{color:var(--brand)}.topnav .logo .mark{display:inline-flex}.topnav .logo svg{width:22px;height:22px;display:block}.topnav a{color:var(--muted);font-size:13.5px;transition:color .15s}.topnav a:hover{color:var(--text)}.topnav .badge{margin-left:auto;background:#b853091f;color:var(--brand-2);font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;border:1px solid rgba(184,83,9,.2)}.topnav .btn-buy{background:var(--brand);color:var(--paper);font-size:12.5px;font-weight:700;padding:6px 14px;border-radius:7px;transition:background .15s}.topnav .btn-buy:hover{background:var(--brand-2)}.layout{padding-top:56px;min-height:100vh}.sidebar{position:fixed;top:56px;left:0;width:var(--sidebar);height:calc(100vh - 56px);overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--line);background:var(--bg-soft);padding:24px 0 48px}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:4px}.nav-group{margin-bottom:6px}.nav-group-title{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);padding:8px 20px 4px}.nav-group a{display:block;padding:7px 20px 7px 28px;font-size:13.5px;color:var(--muted);border-left:2px solid transparent;transition:color .12s,border-color .12s,background .12s}.nav-group a:hover{color:var(--text);background:#ffffff05}.nav-group a.active{color:var(--brand-2);border-left-color:var(--brand);background:#b853090d}.content{margin-left:var(--sidebar);max-width:860px;padding:56px 60px 96px}@media(max-width:900px){.content{padding:40px 24px 80px}}.content h1{font-size:34px;letter-spacing:-.03em;font-weight:800;margin:0 0 10px;color:var(--text)}.content h2{font-size:22px;letter-spacing:-.02em;font-weight:750;margin:52px 0 12px;color:var(--text);padding-top:52px;border-top:1px solid var(--line)}.content h2:first-of-type{border-top:none;margin-top:32px}.content h3{font-size:16px;font-weight:720;margin:28px 0 10px;color:var(--text)}.content p{margin:0 0 16px;color:var(--muted);font-size:15px}.content p strong{color:var(--text)}.content ul,.content ol{margin:0 0 16px;padding-left:20px;color:var(--muted);font-size:15px}.content li{margin-bottom:6px}.content li strong{color:var(--text)}.content a{color:var(--brand)}.content a:hover{text-decoration:underline}.content code{font-family:var(--mono);font-size:13px;background:#b8530914;color:var(--brand-2);border:1px solid rgba(184,83,9,.15);padding:1px 6px;border-radius:5px}.codeblock{margin:16px 0 24px;background:#060810;border:1px solid var(--line);border-radius:10px;overflow:hidden}.codeblock .cb-bar{display:flex;align-items:center;justify-content:space-between;padding:9px 16px;background:var(--bg-soft);border-bottom:1px solid var(--line)}.codeblock .cb-lang{font-family:var(--mono);font-size:11px;color:var(--dim);letter-spacing:.04em}.codeblock pre{margin:0;padding:20px 22px;font-family:var(--mono);font-size:13px;line-height:1.72;overflow-x:auto;color:#b8c2d4}.ck{color:#8a96aa}.cv{color:#2dd4a0}.cm{color:#4a5468}.cc{color:#ffd166}.cb{color:#60a5fa}.cp{color:#f5a524}.cg{color:#2dd4a0}.cr{color:#fb7185}.cw{color:#a78bfa}.tblwrap{overflow-x:auto;margin:16px 0 28px;max-width:100%}.tblwrap>table,.tblwrap>.param-table{margin:0;min-width:520px}.content pre{overflow-x:auto;max-width:100%}@media(max-width:560px){.content p code,.content li code,.content td code{white-space:normal;overflow-wrap:break-word}}.content table{width:100%;border-collapse:collapse;font-size:14px;margin:16px 0 28px}.content th{text-align:left;padding:9px 14px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);background:var(--bg-soft);border-bottom:1px solid var(--line-2)}.content td{padding:10px 14px;color:var(--muted);border-bottom:1px solid var(--line);vertical-align:top}.content td:first-child{color:var(--brand-2);font-family:var(--mono);font-size:13px}.content tr:hover td{background:#ffffff04}.callout{border-radius:10px;padding:14px 18px;margin:16px 0 24px;font-size:14px;display:flex;gap:12px;align-items:flex-start}.callout .ico{flex-shrink:0;font-size:16px;margin-top:1px}.callout p{margin:0;line-height:1.65}.callout-info{background:#60a5fa14;border:1px solid rgba(96,165,250,.2);color:#93c5fd}.callout-warn{background:#8a5f0014;border:1px solid rgba(138,95,0,.2);color:var(--sev-medium)}.callout-tip{background:#2dd4a014;border:1px solid rgba(45,212,160,.2);color:#6ee7b7}.callout-danger{background:#fb718514;border:1px solid rgba(251,113,133,.2);color:#fda4af}.section-intro{padding:20px 24px;background:var(--bg-soft);border:1px solid var(--line);border-radius:10px;margin-bottom:32px;font-size:14.5px;color:var(--muted);line-height:1.7}.section-intro strong{color:var(--text)}.field-req{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:1px 6px;border-radius:4px;margin-left:6px;vertical-align:middle}.req{background:#fb718526;color:var(--red)}.opt{background:#60a5fa1f;color:var(--blue)}.param-table{width:100%;border-collapse:collapse;margin:12px 0 28px;font-size:13.5px}.param-table th{text-align:left;padding:8px 12px;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--line)}.param-table td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.param-table td:first-child{color:var(--brand-2);font-family:var(--mono);font-size:12.5px;white-space:nowrap}.param-table td:nth-child(2){color:var(--muted);font-size:12px;white-space:nowrap}.param-table td:nth-child(3){color:var(--muted);font-size:13px}.badge{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:5px}.badge-web{background:#60a5fa1f;color:var(--blue)}.badge-worker{background:#2dd4a01f;color:var(--green)}.badge-static{background:#a78bfa1f;color:var(--purple)}.badge-mig{background:#fb71851a;color:var(--red)}.badge-int{background:#b853091f;color:var(--brand)}.badge-cron{background:#b853091a;color:var(--brand-2)}.page-header{margin-bottom:40px}.page-header .tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:6px;margin-bottom:12px;background:#b853091f;color:var(--brand)}.page-header p{font-size:17px;color:var(--muted);max-width:600px;line-height:1.7;margin:10px 0 0}@media(max-width:768px){.sidebar{display:none}.content{margin-left:0;padding:32px 20px 80px}}@media(max-width:900px){.topnav a:not(.logo):not(.btn-buy){display:none}.topnav .search-trigger{min-width:0}.topnav .search-trigger .st-label,.topnav .search-trigger kbd{display:none}.topnav .btn-buy{margin-left:auto}}@media(max-width:560px){.topnav{padding:0 16px;gap:12px}.topnav .badge{display:none}.topnav .logo{margin-right:0}}hr{border:none;border-top:1px solid var(--line);margin:40px 0}.step-list{list-style:none;padding:0;margin:16px 0 24px;counter-reset:steps}.step-list li{counter-increment:steps;padding:14px 16px 14px 52px;position:relative;border-bottom:1px solid var(--line);color:var(--muted);font-size:14.5px}.step-list li:last-child{border-bottom:none}.step-list li:before{content:counter(steps);position:absolute;left:16px;top:14px;width:22px;height:22px;background:#b8530926;color:var(--brand);border-radius:50%;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}.step-list li strong{color:var(--text);display:block;margin-bottom:3px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0 24px}@media(max-width:660px){.two-col{grid-template-columns:1fr}}.search-trigger{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--line-2);color:var(--muted);font-family:var(--sans);font-size:13px;padding:6px 10px;border-radius:8px;cursor:text;min-width:180px;transition:border-color .15s,color .15s}.search-trigger:hover{border-color:var(--brand);color:var(--text)}.search-trigger svg{width:14px;height:14px;flex-shrink:0}.search-trigger .st-label{flex:1;text-align:left}.search-trigger kbd{font-family:var(--mono);font-size:10.5px;color:var(--dim);background:var(--bg-soft);border:1px solid var(--line-2);border-radius:5px;padding:1px 6px}.search-modal{position:fixed;inset:0;z-index:100;display:none;background:#04060ab3;backdrop-filter:blur(4px);padding-top:12vh}.search-modal.open{display:block}.search-box{max-width:600px;margin:0 auto;background:var(--card);border:1px solid var(--line-2);border-radius:14px;overflow:hidden;box-shadow:0 24px 80px #0009}.search-box-input{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.search-box-input svg{width:18px;height:18px;color:var(--muted);flex-shrink:0}.search-box-input input{flex:1;background:none;border:none;outline:none;color:var(--text);font-family:var(--sans);font-size:16px}.search-box-input input::placeholder{color:var(--dim)}.search-box-input .esc-hint{font-family:var(--mono);font-size:10.5px;color:var(--dim);border:1px solid var(--line-2);border-radius:5px;padding:2px 6px}.search-results{max-height:58vh;overflow-y:auto;padding:6px}.search-results::-webkit-scrollbar{width:6px}.search-results::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:6px}.search-result{display:block;padding:10px 12px;border-radius:8px;cursor:pointer;border:1px solid transparent}.search-result.sel,.search-result:hover{background:#b8530912;border-color:#b8530940}.search-result .sr-crumb{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.search-result .sr-title{font-size:14.5px;font-weight:650;color:var(--text)}.search-result .sr-snippet{font-size:12.5px;color:var(--muted);margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-result mark{background:#b8530940;color:var(--brand-2);border-radius:3px;padding:0 1px}.search-empty{padding:28px 16px;text-align:center;color:var(--dim);font-size:13.5px}.release{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:22px 24px;margin:0 0 20px}.release-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:4px}.release-ver{font-family:var(--mono);font-size:15px;font-weight:800;color:var(--brand-2);background:#b853091a;border:1px solid rgba(184,83,9,.25);border-radius:7px;padding:2px 10px}.release-date{font-size:12.5px;color:var(--dim)}.release-tag{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px}.release-tag.latest{color:var(--green);background:#2dd4a01f;border:1px solid rgba(45,212,160,.25)}.release h3{margin:18px 0 8px;font-size:13px}.release h3.cl-add{color:var(--green)}.release h3.cl-fix{color:var(--blue)}.release h3.cl-chg{color:var(--brand-2)}.release h3.cl-rem{color:var(--red)}.release ul{margin:0 0 4px;padding-left:18px}.release li{font-size:14px;color:var(--muted);margin-bottom:6px}.release li strong{color:var(--text);font-weight:650}body{font-size:16px;line-height:1.62;font-variant-numeric:tabular-nums}.content h1,.content h2,.content h3{font-family:var(--display);letter-spacing:-.01em}.content h1{font-size:clamp(28px,3.6vw,38px);font-weight:400;line-height:1.12}.content h2{font-size:clamp(21px,2.4vw,26px);font-weight:400}.content h3{font-size:19px;font-weight:400;line-height:1.3}.content a{color:var(--brand);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hair-2)}.content a:hover{text-decoration-color:var(--brand)}.content a code{text-decoration:none}.content code{font-family:var(--ui-mono);font-size:12.6px;background:var(--paper-2);color:var(--ink);border:1px solid var(--hair);border-radius:3px;padding:.5px 5px}.codeblock{border-radius:3px;border-color:var(--hair);background:#111315}.codeblock .cb-bar{background:transparent;border-bottom:1px solid #262A2C;font-family:var(--ui-mono)}.codeblock .cb-lang,.codeblock .cb-bar *{color:#6b7378;font-family:var(--ui-mono)}.codeblock pre{color:#c9cfcc;font-size:12.6px;line-height:1.62}.ck{color:#8a9199}.cv{color:var(--sev-ok)}.cm{color:#5e666b}.cc{color:#c9cfcc}.cb{color:var(--sev-low)}.cp{color:#c9cfcc}.cg{color:var(--sev-ok)}.cr{color:var(--sev-critical)}.cw{color:#8a9199}.callout{border-radius:0;background:var(--paper-2)!important;border:1px solid var(--hair)!important;border-left-width:2px!important;color:var(--ink-2)!important}.callout-info{border-left-color:var(--sev-low)!important}.callout-warn{border-left-color:var(--sev-medium)!important}.callout-tip{border-left-color:var(--sev-ok)!important}.callout-danger{border-left-color:var(--sev-critical)!important}.section-intro{border-radius:3px}.badge,.field-req{background:var(--paper-2)!important;color:var(--ink-2)!important;border:1px solid var(--hair);border-radius:3px;font-family:var(--ui-mono);font-weight:500}.req{color:var(--sev-critical)!important}.content td:first-child,.param-table td:first-child{color:var(--ink);font-family:var(--ui-mono)}.content tr:hover td{background:var(--paper-2)}.content th,.param-table th{font-family:var(--ui-mono);font-weight:500}.topnav{background:var(--paper);border-bottom:1px solid var(--hair)}.topnav .logo{font-family:var(--display);font-weight:700;font-size:15px}.topnav .logo .forge{color:var(--ink)}.topnav a{font-family:var(--ui-mono);font-size:12.5px}.sidebar{background:var(--paper)}.nav-group-title{font-family:var(--ui-mono);font-weight:500;letter-spacing:.08em;color:var(--dim)}.nav-group a{font-family:var(--ui-mono);font-size:12.5px}.nav-group a:hover{background:var(--paper-2)}.nav-group a.active{color:var(--ink);border-left-color:var(--ink);background:var(--paper-2)}.page-header .tag{background:var(--paper-2);color:var(--ink-2);border:1px solid var(--hair);border-radius:3px;font-family:var(--ui-mono);font-weight:500}.release{border-radius:3px}.release-ver{font-family:var(--display);font-weight:500}.release-date{font-family:var(--ui-mono)}.release-tag{background:var(--paper-2)!important;color:var(--ink-2)!important;border:1px solid var(--hair);border-radius:3px;font-family:var(--ui-mono)}.release-tag.latest{color:var(--ink)!important;border-color:var(--hair-2)}.release h3{font-family:var(--ui-mono);font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding-top:14px;border-top:1px solid var(--hair);color:var(--ink)!important}.release li{font-size:14px;line-height:1.6}.release li code{white-space:nowrap}@media(max-width:560px){.release li code{white-space:normal;overflow-wrap:break-word}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
