.ha-logo[data-astro-cid-tvrurpns]{display:block}.ha-logo[data-astro-cid-tvrurpns] img[data-astro-cid-tvrurpns]{height:var(--logo-h);width:auto;display:block}.ha-logo[data-astro-cid-tvrurpns] .on-dark[data-astro-cid-tvrurpns],.dark .ha-logo[data-astro-cid-tvrurpns] .on-light[data-astro-cid-tvrurpns]{display:none}.dark .ha-logo[data-astro-cid-tvrurpns] .on-dark[data-astro-cid-tvrurpns]{display:block}.nav-burger[data-astro-cid-mmnn6jm5]{display:none;margin-left:auto;width:38px;height:38px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line);border-radius:8px;cursor:pointer;color:var(--fg);padding:0}.nav-burger-box[data-astro-cid-mmnn6jm5]{display:flex;flex-direction:column;justify-content:center;gap:4px;width:16px}.nav-burger-box[data-astro-cid-mmnn6jm5] span[data-astro-cid-mmnn6jm5]{display:block;height:1.5px;width:100%;background:currentColor;border-radius:1px;transition:transform .2s ease,opacity .15s ease}.nav-burger[data-astro-cid-mmnn6jm5][aria-expanded=true] .nav-burger-box[data-astro-cid-mmnn6jm5] span[data-astro-cid-mmnn6jm5]:nth-child(1){transform:translateY(5.5px) rotate(45deg)}.nav-burger[data-astro-cid-mmnn6jm5][aria-expanded=true] .nav-burger-box[data-astro-cid-mmnn6jm5] span[data-astro-cid-mmnn6jm5]:nth-child(2){opacity:0}.nav-burger[data-astro-cid-mmnn6jm5][aria-expanded=true] .nav-burger-box[data-astro-cid-mmnn6jm5] span[data-astro-cid-mmnn6jm5]:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}.nav-mobile[data-astro-cid-mmnn6jm5]{display:none;position:fixed;inset:56px 0 0;z-index:49;background:var(--bg);overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--line)}.nav-mobile[data-astro-cid-mmnn6jm5][hidden]{display:none}.nav-mobile[data-astro-cid-mmnn6jm5].open{display:block}.nav-mobile-inner[data-astro-cid-mmnn6jm5]{display:flex;flex-direction:column;padding:8px 20px 32px;max-width:560px}.nav-m-group[data-astro-cid-mmnn6jm5]{border-bottom:1px solid var(--line)}.nav-m-group[data-astro-cid-mmnn6jm5]>summary[data-astro-cid-mmnn6jm5]{display:flex;align-items:center;justify-content:space-between;padding:15px 2px;font-size:16px;font-weight:500;color:var(--fg);cursor:pointer;list-style:none}.nav-m-group[data-astro-cid-mmnn6jm5]>summary[data-astro-cid-mmnn6jm5]::-webkit-details-marker{display:none}.nav-m-group[data-astro-cid-mmnn6jm5]>summary[data-astro-cid-mmnn6jm5] .chev[data-astro-cid-mmnn6jm5]{width:12px;height:12px;color:var(--fg-3);transition:transform .18s ease}.nav-m-group[data-astro-cid-mmnn6jm5][open]>summary[data-astro-cid-mmnn6jm5] .chev[data-astro-cid-mmnn6jm5]{transform:rotate(180deg)}.nav-m-links[data-astro-cid-mmnn6jm5]{display:flex;flex-direction:column;padding:0 0 10px 2px}.nav-m-links[data-astro-cid-mmnn6jm5] a[data-astro-cid-mmnn6jm5]{display:flex;align-items:center;justify-content:space-between;padding:10px 0;font-size:14.5px;color:var(--fg-2);text-decoration:none}.nav-m-links[data-astro-cid-mmnn6jm5] a[data-astro-cid-mmnn6jm5] .count[data-astro-cid-mmnn6jm5]{font-family:var(--font-mono);font-size:10px;color:var(--fg-4)}.nav-m-all[data-astro-cid-mmnn6jm5]{color:var(--fg-3)!important;font-size:13.5px!important}.nav-m-top[data-astro-cid-mmnn6jm5]{padding:15px 2px;font-size:16px;font-weight:500;color:var(--fg);text-decoration:none;border-bottom:1px solid var(--line)}.nav-m-top[data-astro-cid-mmnn6jm5].current,.nav-m-group[data-astro-cid-mmnn6jm5]>summary[data-astro-cid-mmnn6jm5].current{color:var(--fg);box-shadow:inset 2px 0 0 currentColor;padding-left:10px}.nav-m-actions[data-astro-cid-mmnn6jm5]{display:flex;flex-direction:column;gap:10px;margin-top:24px}.nav-m-signin[data-astro-cid-mmnn6jm5]{padding:10px 2px;font-size:15px;color:var(--fg-2);text-decoration:none}@media(max-width:900px){.nav-burger[data-astro-cid-mmnn6jm5]{display:flex}}@media(prefers-reduced-motion:reduce){.nav-burger-box[data-astro-cid-mmnn6jm5] span[data-astro-cid-mmnn6jm5],.nav-m-group[data-astro-cid-mmnn6jm5]>summary[data-astro-cid-mmnn6jm5] .chev[data-astro-cid-mmnn6jm5]{transition:none}}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Geist-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Geist-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/GeistMono-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/GeistMono-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", Menlo, monospace;--bg: oklch(99% .003 240);--bg-2: oklch(97.5% .004 240);--bg-3: oklch(95% .005 240);--panel: oklch(100% 0 0);--line: oklch(91% .006 240);--line-2: oklch(94% .005 240);--fg: oklch(20% .01 240);--fg-2: oklch(40% .012 240);--fg-3: oklch(58% .012 240);--fg-4: oklch(72% .01 240);--ok: oklch(68% .16 150);--ok-bg: oklch(95% .05 150);--warn: oklch(75% .16 75);--warn-bg: oklch(96% .05 75);--crit: oklch(63% .18 25);--crit-bg: oklch(96% .04 25);--info: oklch(60% .15 250);--info-bg: oklch(96% .03 250);--accent: oklch(55% .16 260);--r-sm: 4px;--r-md: 6px;--r-lg: 10px;--shadow-sm: 0 1px 0 oklch(20% .01 240 / .04), 0 1px 2px oklch(20% .01 240 / .04);--shadow-md: 0 2px 4px oklch(20% .01 240 / .06), 0 8px 24px oklch(20% .01 240 / .06);--edge: 32px}.dark{--bg: oklch(15% .008 240);--bg-2: oklch(18% .009 240);--bg-3: oklch(22% .01 240);--panel: oklch(17% .008 240);--line: oklch(26% .012 240);--line-2: oklch(22% .01 240);--fg: oklch(96% .005 240);--fg-2: oklch(78% .008 240);--fg-3: oklch(60% .01 240);--fg-4: oklch(45% .01 240);--ok: oklch(76% .18 150);--ok-bg: oklch(28% .08 150);--warn: oklch(80% .16 75);--warn-bg: oklch(28% .07 75);--crit: oklch(70% .2 25);--crit-bg: oklch(28% .08 25);--info: oklch(70% .16 250);--info-bg: oklch(28% .06 250);--accent: oklch(72% .16 260);--shadow-sm: 0 1px 0 oklch(0% 0 0 / .4), 0 1px 2px oklch(0% 0 0 / .3);--shadow-md: 0 2px 4px oklch(0% 0 0 / .4), 0 8px 24px oklch(0% 0 0 / .4)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);font-size:13px;line-height:1.45;color:var(--fg);background:var(--bg-2);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss01"}.app{display:flex;height:100%;background:var(--bg);color:var(--fg)}.sidebar{width:220px;flex-shrink:0;background:var(--bg-2);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:12px 8px;gap:4px}.sidebar.collapsed{width:56px}.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-section,.sidebar.collapsed .sidebar-footer span{display:none}.sidebar.collapsed .nav-item{justify-content:center;padding:8px}.brand{display:flex;align-items:center;gap:8px;padding:6px 10px;margin-bottom:8px;font-weight:600;font-size:14px;letter-spacing:-.01em}.brand-logo-full{max-height:50px;height:auto;width:auto;display:block}.brand-logo-mark{max-height:50px;height:auto;width:50px;display:none;object-fit:contain;object-position:left}.sidebar.collapsed .brand-logo-full{display:none}.sidebar.collapsed .brand-logo-mark{display:block}.sidebar.collapsed .brand{padding:6px;justify-content:center}.dark .brand-logo-full,.dark .brand-logo-mark{filter:invert(1) hue-rotate(180deg) brightness(1.1)}.brand-mark{width:22px;height:22px;border-radius:5px;background:linear-gradient(135deg,var(--fg) 0%,var(--fg-2) 100%);display:grid;place-items:center;color:var(--bg);font-family:var(--font-mono);font-size:11px;font-weight:700;flex-shrink:0}.nav-section{text-transform:uppercase;font-size:10px;letter-spacing:.08em;color:var(--fg-4);padding:12px 10px 4px;font-weight:500}.nav-item{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--r-sm);font-size:13px;color:var(--fg-2);cursor:pointer;text-decoration:none;position:relative}.nav-item:hover{background:var(--bg-3);color:var(--fg)}.nav-item.active{background:var(--bg-3);color:var(--fg);font-weight:500}.nav-item.active:before{content:"";position:absolute;left:-8px;top:6px;bottom:6px;width:2px;background:var(--fg);border-radius:2px}.nav-item .badge{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--fg-3);background:var(--bg-3);padding:1px 6px;border-radius:10px}.nav-icon{width:16px;height:16px;flex-shrink:0;stroke:currentColor;stroke-width:1.5;fill:none}.sidebar-footer{margin-top:auto;padding:8px 6px;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px;font-size:12px;color:var(--fg-3)}.avatar{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#8d92f9,oklch(70% .15 200));flex-shrink:0}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:48px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 16px;gap:12px;background:var(--bg)}.crumbs{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--fg-3)}.crumbs strong{color:var(--fg);font-weight:500}.crumbs-sep{color:var(--fg-4)}.search{flex:1;max-width:480px;margin:0 auto;position:relative}.search input{width:100%;height:30px;padding:0 10px 0 30px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);font-family:inherit;font-size:12px;color:var(--fg);outline:none}.search input:focus{border-color:var(--fg-3)}.search .kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:10px;color:var(--fg-3);background:var(--bg);border:1px solid var(--line);padding:1px 5px;border-radius:3px}.search-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--fg-3);width:14px;height:14px}.topbar-right{display:flex;align-items:center;gap:6px}.icon-btn{width:30px;height:30px;border:1px solid transparent;background:transparent;border-radius:var(--r-md);display:grid;place-items:center;cursor:pointer;color:var(--fg-3)}.icon-btn:hover{background:var(--bg-2);color:var(--fg)}.content{flex:1;overflow:auto;padding:20px 24px}.content.no-pad{padding:0;overflow:hidden;display:flex;flex-direction:column}@keyframes blink{50%{opacity:0}}.page-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px;gap:16px}.page-title{font-size:20px;font-weight:600;letter-spacing:-.015em;margin:0 0 2px}.page-sub{color:var(--fg-3);font-size:13px;margin:0}.page-actions{display:flex;gap:6px}.btn{height:30px;padding:0 12px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:var(--r-md);font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.btn:hover{background:var(--bg-2)}.btn.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}.btn.primary:hover{background:var(--fg-2)}.btn.ghost{border-color:transparent}.btn.ghost:hover{background:var(--bg-2)}.btn svg{width:14px;height:14px;stroke-width:1.6}.kpi-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:16px}.kpi{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;display:flex;flex-direction:column;gap:6px}.kpi-label{font-size:11px;color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em;font-weight:500;display:flex;align-items:center;gap:6px}.kpi-val{font-family:var(--font-mono);font-size:22px;font-weight:500;letter-spacing:-.02em;color:var(--fg);line-height:1}.kpi-meta{font-size:11px;color:var(--fg-3);display:flex;align-items:center;gap:6px}.kpi.ok .kpi-meta{color:var(--ok)}.kpi.warn .kpi-meta{color:var(--warn)}.kpi.crit .kpi-meta,.kpi.crit .kpi-val{color:var(--crit)}.kpi.warn .kpi-val{color:var(--warn)}.dot{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}.dot.ok{background:var(--ok);box-shadow:0 0 0 3px oklch(from var(--ok) l c h / .18)}.dot.warn{background:var(--warn);box-shadow:0 0 0 3px oklch(from var(--warn) l c h / .18)}.dot.crit{background:var(--crit);box-shadow:0 0 0 3px oklch(from var(--crit) l c h / .18)}.dot.idle{background:var(--fg-4)}@keyframes pulse{0%,to{box-shadow:0 0 oklch(from var(--ok) l c h / .5)}50%{box-shadow:0 0 0 6px oklch(from var(--ok) l c h / 0)}}.dot.live{animation:pulse 2s infinite}.badge-pill{display:inline-flex;align-items:center;gap:5px;padding:1px 7px 1px 6px;border-radius:10px;font-size:11px;font-weight:500;background:var(--bg-2);color:var(--fg-2);border:1px solid var(--line)}.badge-pill.ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}.badge-pill.warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}.badge-pill.crit{background:var(--crit-bg);color:var(--crit);border-color:transparent}.badge-pill.info{background:var(--info-bg);color:var(--info);border-color:transparent}.tag{font-family:var(--font-mono);font-size:10.5px;padding:1px 6px;border-radius:3px;background:var(--bg-3);color:var(--fg-2)}.filter-bar{display:flex;align-items:center;gap:6px;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md) var(--r-md) 0 0;border-bottom:0;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 9px;background:var(--bg-2);border:1px solid var(--line);border-radius:13px;font-size:12px;color:var(--fg-2);cursor:pointer}.chip svg{width:12px;height:12px;opacity:.6}.chip:hover{background:var(--bg-3);color:var(--fg)}.chip.active{background:var(--fg);color:var(--bg);border-color:var(--fg)}.filter-bar .spacer{flex:1}.tbl-wrap{background:var(--panel);border:1px solid var(--line);border-radius:0 0 var(--r-md) var(--r-md);overflow:hidden}.tbl{width:100%;border-collapse:collapse;font-size:12.5px}.tbl thead th{text-align:left;font-weight:500;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);padding:8px 12px;border-bottom:1px solid var(--line);background:var(--bg-2);position:sticky;top:0;white-space:nowrap}.tbl tbody td{padding:9px 12px;border-bottom:1px solid var(--line-2);vertical-align:middle;white-space:nowrap}.tbl tbody tr:hover{background:var(--bg-2)}.tbl tbody tr:last-child td{border-bottom:0}.mono{font-family:var(--font-mono);font-size:12px}.muted{color:var(--fg-3)}.host{display:inline-flex;align-items:center;gap:6px;font-weight:500}.host .copy{opacity:0;color:var(--fg-3);cursor:pointer}tr:hover .host .copy{opacity:1}.spark{display:inline-block;vertical-align:middle}.swatch{width:10px;height:10px;border-radius:2px;display:inline-block}.check{width:14px;height:14px;border:1px solid var(--line);border-radius:3px;background:var(--panel);display:inline-block;vertical-align:middle}.variant-switcher{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:100;background:#080c0eeb;backdrop-filter:blur(12px);border:1px solid oklch(28% .012 240);border-radius:999px;padding:4px;display:flex;gap:2px;box-shadow:0 8px 32px #00000040}.variant-switcher button{background:transparent;border:0;color:#9a9fa3;font-family:var(--font-sans);font-size:11.5px;font-weight:500;padding:5px 12px;border-radius:999px;cursor:pointer;white-space:nowrap}.variant-switcher button:hover{color:#fff}.variant-switcher button.active{background:#fff;color:#080c0e}.dual-frame{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:56px 24px 24px;min-height:100vh;background:radial-gradient(ellipse at top,#eff2f5,#e4e8eb)}.frame{background:var(--bg);border-radius:12px;overflow:hidden;box-shadow:0 10px 40px #00000014,0 2px 8px #0000000a;border:1px solid oklch(88% .006 240);display:flex;flex-direction:column;height:calc(100vh - 80px);min-height:720px}.frame.dark{border-color:#1d2227}.frame-label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#50565b;margin:0 0 8px;padding-left:4px;display:flex;align-items:center;gap:6px}.frame-label .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.4}.single-frame{padding:56px 24px 24px;min-height:100vh;background:radial-gradient(ellipse at top,#eff2f5,#e4e8eb)}.single-frame .frame{max-width:1480px;margin:0 auto;height:calc(100vh - 80px)}.variant{display:none}.variant.active{display:block}.ed-root{--ed-serif: "Fraunces", "Times New Roman", serif;--ed-mono: "JetBrains Mono", ui-monospace, monospace;--ed-ink: var(--fg);--ed-paper: var(--bg);--ed-rule: var(--fg);--ed-mute: var(--fg-3);font-family:var(--ed-mono);color:var(--ed-ink);padding:4px 8px 32px;margin:-16px -24px 0;background:var(--ed-paper);min-height:100%}.frame.dark .ed-root{--ed-rule: var(--fg)}.ed-masthead{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end;padding:28px 24px 24px;border-bottom:2px solid var(--ed-rule)}.ed-eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--ed-mono);font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ed-ink);margin-bottom:12px}.ed-rule{width:16px;height:1px;background:var(--ed-ink);display:inline-block}.ed-title{font-family:var(--ed-serif);font-weight:400;font-size:84px;line-height:.92;letter-spacing:-.03em;margin:0;font-variation-settings:"opsz" 144;font-style:italic}.ed-title .ed-period{color:var(--crit);font-style:normal}.ed-lede{font-family:var(--ed-serif);font-weight:300;font-style:italic;font-size:15px;line-height:1.5;margin:14px 0 0;max-width:560px;color:var(--fg-2);font-variation-settings:"opsz" 14}.ed-mast-right{padding-bottom:4px}.ed-bignum{text-align:right;border-left:1px solid var(--line);padding-left:24px}.ed-bignum-label{display:block;font-family:var(--ed-mono);font-size:10px;letter-spacing:.18em;color:var(--ed-mute);margin-bottom:4px}.ed-bignum-val{font-family:var(--ed-serif);font-weight:600;font-size:96px;line-height:.85;letter-spacing:-.04em;font-variation-settings:"opsz" 144;color:var(--ed-ink);font-feature-settings:"tnum"}.ed-ledger{display:grid;grid-template-columns:repeat(6,1fr);border-bottom:1px solid var(--ed-rule)}.ed-ledger-cell{padding:18px 18px 16px;border-right:1px solid var(--line);position:relative;display:flex;flex-direction:column;gap:2px}.ed-ledger-cell:last-child{border-right:0}.ed-ledger-idx{position:absolute;top:8px;right:10px;font-family:var(--ed-mono);font-size:9px;letter-spacing:.1em;color:var(--ed-mute)}.ed-ledger-label{font-family:var(--ed-mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--ed-mute);margin-bottom:6px}.ed-ledger-val{font-family:var(--ed-serif);font-weight:500;font-size:38px;line-height:1;letter-spacing:-.02em;font-variation-settings:"opsz" 72;font-feature-settings:"tnum";color:var(--ed-ink)}.ed-ledger-suffix{font-family:var(--ed-serif);font-style:italic;font-size:12px;color:var(--ed-mute);margin-top:4px;font-variation-settings:"opsz" 14}.ed-ledger-ok .ed-ledger-val{color:var(--ok)}.ed-ledger-warn .ed-ledger-val{color:var(--warn)}.ed-ledger-crit .ed-ledger-val{color:var(--crit)}.ed-filters{display:flex;align-items:baseline;gap:18px;padding:14px 24px;border-bottom:1px solid var(--line);font-family:var(--ed-mono);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.ed-filter{cursor:pointer;color:var(--ed-mute);transition:color .1s;position:relative}.ed-filter sup{font-size:9px;margin-left:3px;vertical-align:super;color:var(--fg-4)}.ed-filter:hover{color:var(--ed-ink)}.ed-filter.active{color:var(--ed-ink);border-bottom:2px solid var(--ed-ink);padding-bottom:4px}.ed-filter.active sup{color:var(--ed-ink)}.ed-divider{color:var(--line);font-size:14px}.ed-spacer{flex:1}.ed-meta{font-family:var(--ed-mono);font-size:10px;color:var(--ed-mute);text-transform:none;letter-spacing:.04em;font-style:italic}.ed-register{padding:0}.ed-register-head{display:flex;align-items:center;gap:14px;padding:24px 24px 12px}.ed-register-title{font-family:var(--ed-serif);font-style:italic;font-weight:400;font-size:22px;letter-spacing:-.01em;font-variation-settings:"opsz" 36}.ed-register-rule{flex:1;height:1px;background:var(--ed-ink)}.ed-register-meta{font-family:var(--ed-mono);font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--ed-mute)}.ed-tbl{width:100%;border-collapse:collapse;font-family:var(--ed-mono);font-size:12px}.ed-tbl thead th{text-align:left;font-family:var(--ed-mono);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--ed-mute);padding:10px 12px 8px;border-bottom:2px solid var(--ed-ink);border-top:1px solid var(--line);background:var(--bg-2);white-space:nowrap}.ed-tbl thead th.ed-right{text-align:right}.ed-tbl thead th.ed-num-col{width:40px;padding-left:24px;font-style:italic;font-family:var(--ed-serif);font-size:11px;letter-spacing:0;text-transform:none}.ed-tbl tbody td{padding:14px 12px;border-bottom:1px solid var(--line);vertical-align:middle;color:var(--ed-ink)}.ed-tbl tbody td.ed-num-col{padding-left:24px;font-family:var(--ed-serif);font-style:italic;font-size:14px;color:var(--ed-mute);font-feature-settings:"tnum";width:40px}.ed-row{transition:background .1s;position:relative}.ed-row:hover{background:var(--bg-2)}.ed-row-crit td.ed-num-col{color:var(--crit)}.ed-row-warn td.ed-num-col{color:var(--warn)}.ed-mono{font-family:var(--ed-mono);font-feature-settings:"tnum"}.ed-muted{color:var(--ed-mute)}.ed-bold{font-weight:600;color:var(--ed-ink)}.ed-right{text-align:right}.ed-host{display:flex;flex-direction:column;gap:2px}.ed-host-name{font-family:var(--ed-serif);font-weight:500;font-size:16px;letter-spacing:-.01em;color:var(--ed-ink);font-variation-settings:"opsz" 24}.ed-host-group{display:inline-flex;align-items:center;gap:5px;font-family:var(--ed-mono);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--ed-mute)}.ed-group-bar{width:8px;height:2px;display:inline-block}.ed-status{font-family:var(--ed-serif);font-style:italic;font-weight:500;font-size:14px;letter-spacing:-.01em;font-variation-settings:"opsz" 14}.ed-status-ok{color:var(--ok)}.ed-status-warn{color:var(--warn)}.ed-status-crit{color:var(--crit);font-weight:600}.ed-status-mini{display:inline-flex;align-items:center;justify-content:center;min-width:22px;padding:2px 6px;border-radius:2px;font-size:10px;font-weight:600;margin-right:4px;color:#fff}.ed-status-mini.ok{background:var(--ok)}.ed-status-mini.warn{background:var(--warn)}.ed-status-mini.crit{background:var(--crit)}.ed-bar-wrap{display:inline-flex;align-items:center;gap:8px;justify-content:flex-end}.ed-bar-track{width:56px;height:4px;background:var(--line);border-radius:0;overflow:hidden}.ed-bar-fill{height:100%;display:block;border-radius:0}.ed-bar-num{font-family:var(--ed-mono);font-size:12px;min-width:36px;text-align:right;font-feature-settings:"tnum"}.ed-total-row td{padding:16px 12px;border-top:2px solid var(--ed-ink);border-bottom:4px double var(--ed-ink);background:var(--bg-2);font-weight:500}.ed-total-row td.ed-num-col{font-family:var(--ed-serif);font-size:18px;font-style:normal;color:var(--ed-ink)}.ed-total-label{font-family:var(--ed-serif);font-style:italic;font-size:14px;color:var(--ed-ink);font-variation-settings:"opsz" 18}.ed-colophon{display:flex;align-items:center;gap:16px;padding:18px 24px 8px;border-top:1px solid var(--line);margin-top:8px;font-family:var(--ed-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--ed-mute)}.ed-colophon em{font-family:var(--ed-serif);font-style:italic;font-weight:500;text-transform:none;letter-spacing:0;color:var(--ed-ink);font-size:12px}.frame.dark .ed-root{--ed-paper: oklch(13% .008 240)}.frame.dark .ed-tbl thead th{background:var(--bg-2)}.frame.dark .ed-total-row td{background:var(--bg-3)}@media(min-width:1441px){:root{--edge: 64px}}@media(min-width:1800px){:root{--edge: 96px}}@media(max-width:900px){:root{--edge: 20px}}@media(max-width:420px){:root{--edge: 16px}}.site-nav{position:sticky;top:0;z-index:50;height:56px;display:flex;align-items:center;gap:24px;padding:0 var(--edge);background:oklch(from var(--bg) l c h / .75);backdrop-filter:blur(16px) saturate(180%);border-bottom:1px solid var(--line)}.site-nav .logo{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;letter-spacing:-.01em;text-decoration:none;color:var(--fg)}.site-nav .logo .mark{width:24px;height:24px;border-radius:6px;background:linear-gradient(135deg,var(--fg) 0%,var(--fg-2) 100%);color:var(--bg);display:grid;place-items:center;font-family:var(--font-mono);font-weight:700;font-size:12px}.site-nav nav{display:flex;gap:4px;margin-left:8px}.site-nav nav a{padding:6px 10px;font-size:13px;color:var(--fg-2);text-decoration:none;border-radius:5px}.site-nav nav a:hover{color:var(--fg);background:var(--bg-2)}.site-nav>nav>a,.site-nav .menu-trigger{display:inline-flex;align-items:center;height:32px;padding:0 10px;line-height:1;font-size:15px}.site-nav>nav>a.current,.site-nav .menu-trigger.current{color:var(--fg);font-weight:500;position:relative}.site-nav>nav>a.current:after,.site-nav .menu-trigger.current:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:1px;background:currentColor}.site-nav .right{margin-left:auto;display:flex;gap:6px;align-items:center}.site-nav .right a{text-decoration:none}.site-nav .right .nav-signin{font-size:15px;color:var(--fg-2);padding:6px 10px}.site-nav .right .btn-primary-sm{font-size:15px}.menu-hover{position:static}.menu-trigger{padding:6px 10px;font-size:15px;color:var(--fg-2);cursor:pointer;border-radius:5px;display:flex;align-items:center;gap:4px;background:transparent;border:0;font-family:inherit}.menu-trigger:hover,.menu-hover.open .menu-trigger{color:var(--fg);background:var(--bg-2)}.menu-trigger .chev{width:10px;height:10px;transition:transform .15s;opacity:.6}.menu-hover.open .menu-trigger .chev{transform:rotate(180deg)}.mega-panel{position:absolute;top:calc(100% + 8px);left:var(--edge);right:var(--edge);width:auto;max-width:1120px;background:oklch(from var(--panel) l c h);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px oklch(from var(--bg) l c h / .5) inset,0 24px 60px #0006,0 4px 12px #0003;overflow:hidden;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s ease,transform .15s ease,visibility .15s;pointer-events:none;z-index:60}.menu-hover.open .mega-panel{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.mega{display:grid;grid-template-columns:260px 1fr;min-height:440px}.mega-rail{background:var(--bg-2);border-right:1px solid var(--line);padding:18px 12px}.mega-rail-section{font-family:var(--font-mono);font-size:10px;color:var(--fg-4);text-transform:uppercase;letter-spacing:.12em;padding:6px 12px 8px;font-weight:500}.mega-rail-item{padding:8px 12px;display:flex;align-items:center;gap:10px;border-radius:6px;cursor:pointer;color:var(--fg-2);font-size:13px;position:relative;text-decoration:none}.mega-rail-item:hover{background:var(--bg-3);color:var(--fg)}.mega-rail-item.active{background:var(--bg-3);color:var(--fg);font-weight:500}.mega-rail-item.active:before{content:"";position:absolute;left:-12px;top:9px;bottom:9px;width:2px;background:var(--ok);border-radius:2px}.mega-rail-item .label{flex:1;min-width:0}.mega-rail-item .count{font-family:var(--font-mono);font-size:10px;color:var(--fg-4);background:var(--bg-4, var(--bg-3));padding:1px 5px;border-radius:8px}.mega-rail-item.active .count,.mega-rail-item:hover .count{background:var(--bg)}.mega-rail-item svg{width:15px;height:15px;flex-shrink:0}.mega-all-features{margin-top:14px;display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-top:1px solid var(--line);text-decoration:none;color:var(--fg-2);font-size:12.5px;font-weight:500}.mega-all-features .arrow{color:var(--fg-4);transition:transform .12s,color .12s}.mega-all-features:hover{color:var(--fg)}.mega-all-features:hover .arrow{color:var(--fg-2);transform:translate(2px)}.mega-body{padding:22px 24px}.mega-body-inner{display:flex;flex-direction:column;min-height:100%}.mega-body-foot{margin-top:auto;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--fg-2);text-decoration:none;transition:color .15s}.mega-body-foot .label{display:flex;align-items:center;gap:6px}.mega-body-foot .role{color:var(--accent, oklch(50% .13 250));font-weight:500}.mega-body-foot .arrow{color:var(--fg-4);transition:transform .15s,color .15s;font-size:14px}.mega-body-foot:hover{color:var(--fg)}.mega-body-foot:hover .arrow{color:var(--fg-2);transform:translate(3px)}.mega-items{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;margin-top:14px}.mega-item-badge{font-family:var(--font-mono);font-size:9px;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.mega-item-badge.spotlight{color:var(--ok);background:oklch(from var(--ok) l c h / .12)}.mega-item-badge.ent{color:var(--info);background:oklch(from var(--info) l c h / .12)}.mega-item-badge.soon{color:var(--fg-3);background:var(--bg-3)}.tools-panel{position:absolute;top:calc(100% + 8px);transform:translateY(-4px);left:var(--edge);right:var(--edge);width:auto;max-width:1180px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 24px 60px #0000002e,0 0 0 1px #ffffff05 inset;opacity:0;visibility:hidden;transition:opacity .15s,transform .15s,visibility .15s;pointer-events:none;z-index:60;overflow:hidden}.menu-hover.open .tools-panel{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.tools-section{padding:28px 32px 24px}.tools-section+.tools-section{border-top:1px solid var(--line)}.tools-section-eyebrow{font-family:var(--font-mono);font-size:10px;color:var(--fg-3);text-transform:uppercase;letter-spacing:.12em;margin:0 0 6px}.tools-section-lede{margin:0 0 22px;font-size:13.5px;color:var(--fg-2)}.tools-section-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:28px 24px}.tools-section.community .tools-section-grid{grid-template-columns:repeat(4,1fr)}.tools-panel-item{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit;min-width:0;padding:4px;margin:-4px;border-radius:6px}.tools-panel-item:hover{background:var(--bg-2)}.tools-panel-head-row{display:flex;align-items:center;gap:8px}.tools-panel-icon{color:#2171cc;flex-shrink:0;display:grid;place-items:center}.tools-panel-title{font-size:14px;font-weight:600;color:var(--fg);letter-spacing:-.005em}.tools-panel-sub{font-size:12.5px;color:var(--fg-3);line-height:1.5}.tools-panel-badge{font-family:var(--font-mono);font-size:9px;padding:1px 5px;border-radius:3px;background:oklch(from var(--ok) l c h / .14);color:var(--ok);text-transform:uppercase;letter-spacing:.05em}.tools-panel-foot{padding:14px 32px;border-top:1px solid var(--line);background:var(--bg-2);display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--fg-3);gap:24px;flex-wrap:wrap}.tools-panel-foot-links{display:flex;gap:22px}.tools-panel-foot a{color:var(--fg-2);text-decoration:none}.tools-panel-foot a:hover{color:var(--fg)}.tools-panel-foot .install{font-family:var(--font-mono);font-size:12px;background:#070a0c;color:#c9ced2;padding:8px 14px;border-radius:6px}.tools-panel-foot .install .dollar{color:#7c8185;margin-right:6px}.mega-category-title{font-size:17px;font-weight:600;letter-spacing:-.015em;margin:0 0 4px}.mega-category-sub{font-size:13px;color:var(--fg-3);margin:0 0 16px}.mega-item{padding:10px 12px;border-radius:7px;cursor:pointer;display:block;color:inherit;text-decoration:none;transition:background .12s}.mega-item:hover{background:var(--bg-2)}.mega-item-body{display:block}.mega-item-title{font-size:13px;font-weight:500;color:var(--fg);display:flex;align-items:center;gap:6px;line-height:1.3;letter-spacing:-.005em}.mega-item-sub{font-size:11.5px;color:var(--fg-3);margin-top:3px;line-height:1.45}.badge-new,.badge-beta{font-family:var(--font-mono);font-size:9px;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.mega-preview{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px}.mega-preview-visual{aspect-ratio:16 / 10;background:linear-gradient(135deg,var(--bg-3),var(--bg-2));border:1px solid var(--line);border-radius:6px;padding:10px;display:flex;flex-direction:column;gap:4px;overflow:hidden}.mega-preview-title{font-size:13.5px;font-weight:600;letter-spacing:-.01em}.mega-preview-desc{font-size:11.5px;color:var(--fg-3);line-height:1.5}.mega-preview-link{font-size:12px;color:var(--ok);font-weight:500;display:flex;align-items:center;gap:4px;text-decoration:none}.pv-row{display:flex;justify-content:space-between;gap:8px;align-items:center;font-family:var(--font-mono);font-size:10px;padding:3px 6px;background:var(--bg);border-radius:3px;border:1px solid var(--line)}.pv-chart{flex:1;position:relative;min-height:0}.pv-chart svg{width:100%;height:100%;display:block}section{padding:0 var(--edge)}.container{max-width:1440px;margin:0 auto}@media(max-width:900px){.site-nav{gap:12px;backdrop-filter:none;background:var(--bg)}.site-nav>nav{display:none}.site-nav .right{display:none}}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans)}.btn-primary-sm{height:32px;padding:0 14px;border-radius:7px;background:var(--fg);color:var(--bg);font-size:13px;font-weight:500;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none}.btn-secondary-sm{height:32px;padding:0 12px;border-radius:7px;background:var(--panel);border:1px solid var(--line);color:var(--fg);font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:6px;font-family:inherit;text-decoration:none}.btn-primary-lg{height:40px;padding:0 18px;border-radius:8px;background:var(--fg);color:var(--bg);font-size:14px;font-weight:500;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;text-decoration:none}.btn-secondary-lg{height:40px;padding:0 16px;border-radius:8px;background:var(--panel);border:1px solid var(--line);color:var(--fg);font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-family:inherit;text-decoration:none}.hero-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.hero-pattern{position:relative}.hero-pattern:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 0,transparent calc(100% - 1px),var(--line-2) 100%),linear-gradient(90deg,transparent 0,transparent calc(100% - 1px),var(--line-2) 100%);background-size:48px 48px,48px 48px;opacity:.6;z-index:0}.hero-pattern>.container,.hero-pattern>*{position:relative;z-index:1}.sub-hero{padding:88px 32px 64px;border-bottom:1px solid var(--line);background:radial-gradient(ellipse 900px 460px at 50% 0%,oklch(from var(--ok) l c h / .06) 0%,transparent 60%),linear-gradient(transparent 0,transparent calc(100% - 1px),var(--line-2) 100%),linear-gradient(90deg,transparent 0,transparent calc(100% - 1px),var(--line-2) 100%);background-size:100% 100%,48px 48px,48px 48px}.sub-hero .container{max-width:1440px;margin:0 auto}.container{max-width:1440px;margin:0 auto;padding:0 32px}.sub-hero .container,section.block .container{padding:0}.crumbs-line{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:11px;color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:22px}.crumbs-line a{color:var(--fg-3);text-decoration:none}.crumbs-line a:hover{color:var(--fg)}.crumbs-line .sep{color:var(--fg-4)}.sub-eyebrow{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-size:12px;color:var(--fg-2);margin-bottom:22px}.sub-eyebrow .tag{background:var(--ok-bg);color:var(--ok);padding:1px 8px;border-radius:999px;font-size:10.5px;font-weight:500;font-family:var(--font-mono)}.hero-h1{font-weight:800;overflow-wrap:break-word}.hero-h1 em{font-style:normal;font-family:var(--font-sans);font-weight:600;color:var(--fg-3)}.sub-hero h1{font-size:56px;letter-spacing:-.035em;line-height:1.02;margin:0 0 16px;max-width:880px;text-wrap:pretty}.sub-hero h1 em{color:var(--fg-3)}.sub-hero p.lede{font-size:17px;color:var(--fg-2);line-height:1.5;max-width:640px;margin:0 0 24px}section.block{padding:80px 32px;border-bottom:1px solid var(--line)}section.block .container{max-width:1440px;margin:0 auto}section.block.tight{padding:56px 32px}section.block.alt{background:var(--bg-2)}.section-eyebrow{display:inline-block;font-size:11px;font-family:var(--font-mono);color:var(--fg-3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px}h2,.section-title{font-weight:700}h2 em,.section-title em{font-style:normal;font-family:var(--font-sans);font-weight:500}.section-title{font-size:36px;letter-spacing:-.025em;line-height:1.1;margin:0 0 12px;max-width:760px;text-wrap:pretty}.section-lede{font-size:15px;color:var(--fg-2);max-width:640px;margin:0 0 32px;line-height:1.55}footer.site-footer{padding:56px var(--edge) 40px;border-top:1px solid var(--line);background:var(--bg-2)}.footer-grid{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:40px}.footer-col h4{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);margin:0 0 12px;font-weight:500}.footer-col ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.footer-col a{font-size:13px;color:var(--fg-2);text-decoration:none}.footer-col a:hover{color:var(--fg)}.footer-meta{margin:40px 0 0;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:12px;color:var(--fg-3);font-family:var(--font-mono)}.kbd-inline{font-family:var(--font-mono);font-size:10px;padding:1px 5px;background:var(--panel);border:1px solid var(--line);border-radius:3px;color:var(--fg-3)}.badge-new,.badge-beta,.badge-soon,.badge-ent{font-family:var(--font-mono);font-size:9px;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.badge-new{color:var(--ok);background:oklch(from var(--ok) l c h / .15)}.badge-beta{color:#ecaa0b;background:#ecaa0b26}.badge-soon{color:var(--fg-3);background:var(--bg-3)}.badge-ent{color:var(--info);background:oklch(from var(--info) l c h / .12)}.cta-foot{padding:96px 32px;text-align:center;background:radial-gradient(ellipse 700px 360px at 50% 50%,oklch(from var(--ok) l c h / .07) 0%,transparent 60%),var(--bg)}.cta-foot h2{font-size:40px;letter-spacing:-.03em;line-height:1.05;margin:0 0 12px;max-width:700px;margin-inline:auto;text-wrap:balance}.cta-foot p{font-size:15px;color:var(--fg-2);max-width:500px;margin:0 auto 22px}.cta-foot .ctas{display:flex;gap:10px;justify-content:center}@media(max-width:900px){footer.site-footer{padding-block:48px 36px}.footer-grid{grid-template-columns:1fr 1fr 1fr;gap:28px}}@media(max-width:560px){.footer-grid{grid-template-columns:1fr 1fr;gap:24px}}@media(max-width:420px){footer.site-footer{padding-block:40px 32px}}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.cols-3,.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.cols-2,.cols-3,.cols-4{grid-template-columns:1fr}}
