:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--odd-page:#f6f6f3;--odd-surface:#fcfcfb;--odd-surface-2:#f0efec;--odd-sidebar:#f0efeb;--odd-ink:#0b0b0b;--odd-ink-2:#52514e;--odd-muted:#6f6d68;--odd-tick:#898781;--odd-grid:#e8e7e1;--odd-axis:#c3c2b7;--odd-border:#0b0b0b1a;--odd-border-strong:#0b0b0b2e;--odd-accent:#2a78d6;--odd-accent-ink:#1c5cab;--odd-hover:#0b0b0b0b;--odd-good:#006300;--odd-bad:#b42f2f;--odd-critical:#d03b3b;--odd-warning:#fab219;--odd-warning-bg:#fff4dc;--odd-shadow:0 1px 2px #0b0b0b0a, 0 8px 24px #0b0b0b0f;--odd-lift:0 2px 6px #0b0b0b14, 0 22px 48px #0b0b0b2e;--odd-series-1:#2a78d6;--odd-series-2:#eb6834;--odd-series-3:#1baf7a;--odd-series-4:#eda100;--odd-series-5:#e87ba4;--odd-series-6:#008300;--odd-series-7:#4a3aa7;--odd-series-8:#e34948;--odd-series-1-ink:#0b0b0b;--odd-series-2-ink:#0b0b0b;--odd-series-3-ink:#0b0b0b;--odd-series-4-ink:#0b0b0b;--odd-series-5-ink:#0b0b0b;--odd-series-6-ink:#fff;--odd-series-7-ink:#fff;--odd-series-8-ink:#0b0b0b;--odd-font:system-ui, -apple-system, "Segoe UI", "Noto Sans TC", "PingFang TC", sans-serif;--odd-mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--odd-radius:10px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--odd-page:#0d0d0d;--odd-surface:#1a1a19;--odd-surface-2:#242422;--odd-sidebar:#141413;--odd-ink:#fff;--odd-ink-2:#c3c2b7;--odd-muted:#9a988f;--odd-tick:#898781;--odd-grid:#2c2c2a;--odd-axis:#45453f;--odd-border:#ffffff1a;--odd-border-strong:#ffffff2e;--odd-accent:#3987e5;--odd-accent-ink:#86b6ef;--odd-hover:#ffffff0f;--odd-good:#0ca30c;--odd-bad:#e66767;--odd-critical:#e66767;--odd-warning:#fab219;--odd-warning-bg:#3a2e12;--odd-shadow:0 1px 2px #0006, 0 8px 24px #00000059;--odd-lift:0 2px 8px #00000080, 0 24px 56px #0009;--odd-series-1:#3987e5;--odd-series-2:#d95926;--odd-series-3:#199e70;--odd-series-4:#c98500;--odd-series-5:#d55181;--odd-series-6:#008300;--odd-series-7:#9085e9;--odd-series-8:#e66767;--odd-series-1-ink:#0b0b0b;--odd-series-2-ink:#0b0b0b;--odd-series-3-ink:#0b0b0b;--odd-series-4-ink:#0b0b0b;--odd-series-5-ink:#0b0b0b;--odd-series-6-ink:#fff;--odd-series-7-ink:#0b0b0b;--odd-series-8-ink:#0b0b0b}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--odd-page:#0d0d0d;--odd-surface:#1a1a19;--odd-surface-2:#242422;--odd-sidebar:#141413;--odd-ink:#fff;--odd-ink-2:#c3c2b7;--odd-muted:#9a988f;--odd-tick:#898781;--odd-grid:#2c2c2a;--odd-axis:#45453f;--odd-border:#ffffff1a;--odd-border-strong:#ffffff2e;--odd-accent:#3987e5;--odd-accent-ink:#86b6ef;--odd-hover:#ffffff0f;--odd-good:#0ca30c;--odd-bad:#e66767;--odd-critical:#e66767;--odd-warning:#fab219;--odd-warning-bg:#3a2e12;--odd-shadow:0 1px 2px #0006, 0 8px 24px #00000059;--odd-lift:0 2px 8px #00000080, 0 24px 56px #0009;--odd-series-1:#3987e5;--odd-series-2:#d95926;--odd-series-3:#199e70;--odd-series-4:#c98500;--odd-series-5:#d55181;--odd-series-6:#008300;--odd-series-7:#9085e9;--odd-series-8:#e66767;--odd-series-1-ink:#0b0b0b;--odd-series-2-ink:#0b0b0b;--odd-series-3-ink:#0b0b0b;--odd-series-4-ink:#0b0b0b;--odd-series-5-ink:#0b0b0b;--odd-series-6-ink:#fff;--odd-series-7-ink:#0b0b0b;--odd-series-8-ink:#0b0b0b}*,:before,:after{box-sizing:border-box}html,body{background:var(--odd-page);color:var(--odd-ink);font-family:var(--odd-font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}a{color:inherit}code,pre{font-family:var(--odd-mono);font-size:12.5px}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--odd-accent);outline-offset:2px}.odd-muted{color:var(--odd-muted)}.odd-shell{background:linear-gradient(to right, var(--odd-sidebar) 231px, var(--odd-border) 231px 232px, transparent 232px);grid-template-columns:232px minmax(0,1fr);min-height:100vh;display:grid}.odd-sidebar{background:var(--odd-sidebar);border-right:1px solid var(--odd-border);flex-direction:column;gap:16px;height:100vh;padding:16px 12px;display:flex;position:sticky;top:0}.odd-brand{justify-content:space-between;align-items:center;padding:0 8px;display:flex}.odd-brand-link{letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:8px;font-weight:650;text-decoration:none;display:inline-flex}.odd-menu-toggle{cursor:pointer;background:0 0;border:0;font-size:18px;display:none}.odd-nav{flex-direction:column;flex:1;gap:1px;display:flex;overflow-y:auto}.odd-nav a{color:var(--odd-ink-2);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;padding:6px 10px;text-decoration:none;display:block;overflow:hidden}.odd-nav a:hover{background:var(--odd-hover);color:var(--odd-ink)}.odd-nav a[aria-current=page]{background:var(--odd-surface);color:var(--odd-ink);box-shadow:0 0 0 1px var(--odd-border);font-weight:560}.odd-nav-group{position:relative}.odd-nav-group>a{padding-right:34px}.odd-nav-toggle{width:24px;height:24px;color:var(--odd-muted);cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.odd-nav-toggle:hover{background:var(--odd-hover);color:var(--odd-ink)}.odd-nav-toggle svg{transition:transform .14s;transform:rotate(90deg)}.odd-nav-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.odd-nav-sub{box-shadow:inset 1px 0 0 var(--odd-border);flex-direction:column;gap:1px;margin:1px 0 2px 12px;padding-left:8px;display:flex}.odd-nav .odd-nav-sub a{align-items:baseline;gap:8px;padding:5px 8px;font-size:13px;display:flex}.odd-nav-sub .odd-status{flex:none;font-size:8px}.odd-nav-sub-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.odd-nav-sub-type{color:var(--odd-muted);flex:none;margin-left:auto;font-size:11.5px}@media (prefers-reduced-motion:reduce){.odd-nav-toggle svg{transition:none}}.odd-nav-heading{color:var(--odd-ink-2);justify-content:space-between;align-items:center;gap:8px;margin:18px 4px 6px 10px;font-size:12.5px;font-weight:600;display:flex}.odd-nav-heading .odd-count{min-width:24px}.odd-count{background:var(--odd-hover);min-width:20px;color:var(--odd-muted);text-align:center;font-variant-numeric:tabular-nums;border-radius:999px;padding:0 6px;font-size:11px;font-weight:560;line-height:18px}.odd-settings{position:relative}.odd-settings-trigger{width:100%;color:var(--odd-ink-2);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;display:flex}.odd-settings-trigger:hover,.odd-settings-trigger[aria-expanded=true]{background:var(--odd-hover);color:var(--odd-ink)}.odd-settings-label{font-weight:560}.odd-settings-current{color:var(--odd-muted);align-items:center;gap:4px;margin-left:auto;font-size:12px;display:inline-flex}.odd-settings-current svg{width:13px;height:13px}.odd-settings-trigger>svg:last-child{color:var(--odd-muted);transition:transform .16s}.odd-settings-trigger[aria-expanded=false]>svg:last-child{transform:rotate(180deg)}.odd-settings-panel{z-index:30;background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border-strong), var(--odd-shadow);transform-origin:bottom;border-radius:10px;flex-direction:column;gap:14px;padding:12px;animation:.14s ease-out odd-pop;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;right:0}@keyframes odd-pop{0%{opacity:0;transform:translateY(4px)scale(.98)}}.odd-settings-group{border:0;min-width:0;margin:0;padding:0}.odd-settings-group legend{color:var(--odd-muted);margin-bottom:6px;padding:0;font-size:12px;font-weight:600}.odd-segmented{background:var(--odd-hover);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;padding:2px;display:grid}.odd-segment{color:var(--odd-muted);cursor:pointer;border-radius:6px;flex-direction:column;align-items:center;gap:3px;padding:6px 0 5px;font-size:11.5px;display:flex}.odd-segment:hover{color:var(--odd-ink)}.odd-segment:has(input:checked){background:var(--odd-surface);color:var(--odd-ink);box-shadow:0 0 0 1px var(--odd-border)}:is(.odd-segment:has(input:focus-visible),.odd-option:has(input:focus-visible)){outline:2px solid var(--odd-accent);outline-offset:1px}.odd-segment input,.odd-option input{opacity:0;pointer-events:none;position:absolute}.odd-options{flex-direction:column;display:flex}.odd-option{color:var(--odd-ink-2);cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;padding:6px 8px;display:flex}.odd-option:hover{background:var(--odd-hover);color:var(--odd-ink)}.odd-option svg{color:var(--odd-accent);visibility:hidden}.odd-option:has(input:checked){color:var(--odd-ink);font-weight:560}.odd-option:has(input:checked) svg{visibility:visible}.odd-main{min-width:0}.odd-page{max-width:1320px;padding:32px 32px 64px}.odd-page-head{margin-bottom:28px}.odd-page-head h1{letter-spacing:-.018em;margin:0;font-size:26px;font-weight:650;line-height:1.2}.odd-home-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:32px;display:grid}.odd-home-grid[data-single]{grid-template-columns:minmax(0,1fr)}.odd-boards{border-radius:var(--odd-radius);background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border);margin:0;padding:0;list-style:none;overflow:hidden}.odd-boards li+li{border-top:1px solid var(--odd-grid)}.odd-board{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;padding:18px 20px;text-decoration:none;display:grid}.odd-board:hover{background:var(--odd-hover)}.odd-board:focus-visible{outline-offset:-2px}.odd-board-main{flex-direction:column;gap:4px;min-width:0;display:flex}.odd-board-title{letter-spacing:-.005em;font-size:15.5px;font-weight:620}.odd-board-desc{max-width:68ch;color:var(--odd-ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13.5px;display:-webkit-box;overflow:hidden}.odd-board-meta{grid-template-columns:56px 112px 116px;gap:16px;margin:0;display:grid}.odd-board-meta div{min-width:0}.odd-board-meta dt{color:var(--odd-muted);font-size:11.5px}.odd-board-meta dd{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:13px;overflow:hidden}.odd-source-title{align-items:baseline;gap:12px;display:flex}.odd-source-title span{color:var(--odd-muted);letter-spacing:0;font-size:15px;font-weight:500}.odd-collectors{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.odd-collector{border-radius:var(--odd-radius);background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 8px 8px 12px;display:flex}.odd-collector code{font-family:var(--odd-mono);color:var(--odd-ink);font-size:12.5px}.odd-collector-status{min-width:0;color:var(--odd-muted);flex:1;font-size:13px}.odd-collector[data-state=failed] .odd-collector-status{color:var(--odd-bad)}.odd-collector .odd-button{align-items:center;gap:6px;font-size:13px;display:inline-flex}.odd-collector .odd-button svg{width:14px;height:14px}.odd-collector[data-state=running] .odd-button svg{animation:1s linear infinite odd-spin}@keyframes odd-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.odd-collector[data-state=running] .odd-button svg{animation:none}}.odd-collector .odd-button:disabled{cursor:default;opacity:.6}.odd-collector pre{background:var(--odd-surface-2);max-height:200px;font-family:var(--odd-mono);white-space:pre-wrap;border-radius:6px;flex-basis:100%;margin:0;padding:8px 10px;font-size:12px;overflow:auto}.odd-source-error{flex-direction:column;align-items:flex-start;gap:16px;max-width:560px;display:flex}.odd-source-error-body{box-shadow:inset 2px 0 0 var(--odd-critical);flex-direction:column;gap:4px;padding-left:12px;display:flex}.odd-source-error-body strong{color:var(--odd-critical);font-size:14px;font-weight:620}.odd-source-error-body code{color:var(--odd-ink-2);overflow-wrap:anywhere;font-size:13px}.odd-source-error .odd-command{width:auto;min-width:240px}.odd-setup{flex-direction:column;max-width:440px;margin:0;padding:0;list-style:none;display:flex}.odd-setup>li{grid-template-columns:28px minmax(0,1fr);column-gap:14px;padding-bottom:28px;display:grid;position:relative}.odd-setup>li:last-child{padding-bottom:0}.odd-setup>li:not(:last-child):before{content:"";background:var(--odd-border-strong);width:1px;position:absolute;top:32px;bottom:4px;left:13.5px}.odd-setup-mark{width:28px;height:28px;box-shadow:inset 0 0 0 1px var(--odd-border-strong);color:var(--odd-muted);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-size:13px;font-weight:620;display:grid}.odd-setup>li[data-state=current] .odd-setup-mark{background:var(--odd-accent);box-shadow:none;color:#fff}.odd-setup>li[data-state=done] .odd-setup-mark{box-shadow:inset 0 0 0 1px var(--odd-good);color:var(--odd-good)}.odd-setup-body{flex-direction:column;gap:10px;min-width:0;padding-top:3px;display:flex}.odd-setup-body h2{margin:0;font-size:16px;font-weight:620}.odd-setup>li[data-state=next] h2{color:var(--odd-muted);font-weight:520}.odd-setup-done{color:var(--odd-ink-2);font-size:13px;text-decoration:none}.odd-setup-done:hover{text-decoration:underline}.odd-rail{flex-direction:column;gap:28px;display:flex}.odd-rail-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.odd-rail-head h2{margin:0;font-size:15px;font-weight:620}.odd-rail-head a{color:var(--odd-accent-ink);font-size:12.5px;text-decoration:none}.odd-rail-head a:hover{text-decoration:underline}.odd-sources,.odd-commands{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.odd-source{background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border);border-radius:8px;grid-template-columns:12px minmax(0,1fr) auto;align-items:baseline;gap:2px 8px;padding:10px 12px;text-decoration:none;display:grid}.odd-source:hover{box-shadow:0 0 0 1px var(--odd-border-strong)}.odd-source-name{font-weight:600}.odd-source-type{color:var(--odd-muted);font-size:12px}.odd-source-detail{color:var(--odd-muted);overflow-wrap:anywhere;grid-column:2/-1;align-items:center;gap:6px;font-size:12.5px;display:flex}.odd-status{color:var(--odd-good);font-size:10px}.odd-status[data-ok=false]{color:var(--odd-critical)}.odd-command{background:var(--odd-surface);width:100%;box-shadow:0 0 0 1px var(--odd-border);text-align:left;cursor:pointer;border:0;border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.odd-command:hover{box-shadow:0 0 0 1px var(--odd-border-strong)}.odd-command-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.odd-command code{color:var(--odd-ink);font-size:13px;font-weight:560}.odd-command-copy{color:var(--odd-muted);opacity:0;align-items:center;gap:4px;font-size:12px;transition:opacity .12s;display:inline-flex}.odd-command:hover .odd-command-copy,.odd-command:focus-visible .odd-command-copy,.odd-command-copy[data-copied]{opacity:1}.odd-command-copy svg{width:13px;height:13px}.odd-command-text{color:var(--odd-ink-2);font-size:13px}@media (hover:none){.odd-command-copy{opacity:1}}.odd-callout{background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border);border-radius:8px;padding:12px 14px}.odd-callout-error{box-shadow:inset 3px 0 0 var(--odd-critical), 0 0 0 1px var(--odd-border)}.odd-callout pre{white-space:pre-wrap;margin:8px 0 0}.odd-tabs{flex-wrap:wrap;gap:4px;margin-bottom:16px;display:flex}.odd-tabs a,.odd-tabs button{color:var(--odd-ink-2);cursor:pointer;box-shadow:0 0 0 1px var(--odd-border);background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;text-decoration:none;display:inline-flex}.odd-tabs [aria-selected=true]{background:var(--odd-ink);color:var(--odd-surface);box-shadow:none}.odd-tabs [aria-selected=true] .odd-muted{color:inherit;opacity:.7}.odd-tabs-small{margin:12px 0 8px}.odd-tabs-small button{padding:3px 10px;font-size:12.5px}.odd-button{background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border-strong);cursor:pointer;border:0;border-radius:7px;padding:5px 12px}.odd-button:hover{background:var(--odd-surface-2)}.odd-button-primary{background:var(--odd-ink);color:var(--odd-surface);box-shadow:none}.odd-button-primary:hover{background:var(--odd-ink);opacity:.88}.odd-icon-button{width:26px;height:26px;color:var(--odd-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;display:inline-grid}.odd-icon-button:hover{background:var(--odd-hover);color:var(--odd-ink)}.odd-search{background:var(--odd-surface);width:100%;max-width:320px;box-shadow:0 0 0 1px var(--odd-border-strong);font:inherit;color:inherit;border:0;border-radius:7px;margin-bottom:16px;padding:7px 10px}.odd-badge{background:var(--odd-surface-2);color:var(--odd-ink-2);border-radius:4px;margin-left:6px;padding:0 5px;font-size:10.5px;font-weight:600}.odd-schema{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;display:grid}.odd-schema-table{border-radius:var(--odd-radius);background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border);padding:12px 14px}.odd-schema-table header{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.odd-schema-table h2{font-size:14px;font-family:var(--odd-mono);margin:0;font-weight:600}.odd-schema-table table{border-collapse:collapse;width:100%;font-size:12.5px}.odd-schema-table td{border-top:1px solid var(--odd-grid);vertical-align:top;padding:3px 0}.odd-schema-col{font-family:var(--odd-mono)}.odd-schema-table tr td+td{white-space:nowrap}.odd-data-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.odd-origin{border-radius:var(--odd-radius);background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border);margin-bottom:32px;padding:16px 18px}.odd-origin>header{flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin-bottom:12px;display:flex}.odd-origin>header h2{margin:0;font-size:15px;font-weight:620}.odd-origin>header code{color:var(--odd-ink-2);font-family:var(--odd-mono);font-size:12.5px}.odd-origin-note{color:var(--odd-muted);font-size:12px}.odd-safety{color:var(--odd-ink-2);white-space:nowrap;align-items:center;gap:5px;font-size:11.5px;font-weight:560;display:inline-flex}.odd-safety:before{content:"";background:var(--odd-muted);border-radius:50%;width:7px;height:7px}.odd-safety[data-tone=good]:before{background:var(--odd-good)}.odd-safety[data-tone=warning]:before{background:var(--odd-warning)}.odd-safety[data-tone=critical]:before{background:var(--odd-critical)}.odd-origin-list{margin:0;padding:0;list-style:none}.odd-origin-list li{border-top:1px solid var(--odd-grid);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:baseline;column-gap:14px;padding:7px 0;font-size:13px;display:grid}.odd-method{background:color-mix(in srgb, var(--odd-good) 14%, transparent);color:var(--odd-ink);font-family:var(--odd-mono);border-radius:4px;padding:1px 6px;font-size:11px;font-weight:650}.odd-origin-call{min-width:0;color:var(--odd-ink);font-family:var(--odd-mono);overflow-wrap:anywhere;font-size:12.5px}.odd-origin-args{color:var(--odd-muted)}.odd-origin-call mark{background:color-mix(in srgb, var(--odd-accent) 18%, transparent);color:var(--odd-accent-ink);border-radius:3px;padding:0 2px}.odd-origin-table{color:var(--odd-accent-ink);font-family:var(--odd-mono);font-size:12.5px;text-decoration:none}.odd-origin-table:before{content:"→ ";color:var(--odd-muted)}.odd-origin-table:hover{text-decoration:underline}.odd-origin-meta{color:var(--odd-muted);white-space:nowrap;gap:10px;font-size:12px;display:flex}.odd-origin-error{color:var(--odd-critical);margin:0 0 8px;font-size:12.5px}.odd-origin-more{margin-top:12px}.odd-origin-more summary{color:var(--odd-ink-2);cursor:pointer;font-size:12.5px}.odd-origin-more .odd-search{margin:10px 0 6px}.odd-tool-list{max-height:360px;margin:0;padding:0;list-style:none;overflow-y:auto}.odd-tool-list li{border-top:1px solid var(--odd-grid);grid-template-columns:96px minmax(160px,260px) minmax(0,1fr);align-items:baseline;column-gap:12px;padding:5px 0;font-size:12.5px;display:grid}.odd-tool-list code{font-family:var(--odd-mono);overflow-wrap:anywhere}.odd-tool-list li>span:last-child{color:var(--odd-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.odd-table-origin{color:var(--odd-muted);flex-wrap:wrap;gap:4px 10px;margin:-2px 0 10px;font-size:12px;display:flex}.odd-table-origin code{color:var(--odd-ink-2);font-family:var(--odd-mono)}@media (width<=640px){.odd-origin-list li{grid-template-columns:auto minmax(0,1fr);row-gap:2px}.odd-origin-table,.odd-origin-meta{grid-column:2}.odd-tool-list li{grid-template-columns:auto minmax(0,1fr)}.odd-tool-list li>span:last-child{grid-column:2}}.odd-db{grid-template-columns:minmax(0,1fr);gap:32px;display:grid}@media (width>=1100px){.odd-db{grid-template-columns:minmax(0,820px) 220px;align-items:start}.odd-db-toc{max-height:calc(100vh - 48px);position:sticky;top:24px;overflow-y:auto}}@media (width<=1099px){.odd-db-toc{order:-1}.odd-db-toc ul{display:none}}.odd-db-main{min-width:0}.odd-db-intro{max-width:68ch;margin-bottom:40px;font-size:14px}.odd-db-section{box-shadow:inset 2px 0 0 var(--odd-accent);margin-top:20px;padding-left:14px}.odd-db-section h2{color:var(--odd-ink);margin:0 0 6px;font-size:14px;font-weight:620}.odd-db-table{border-top:1px solid var(--odd-border);padding:28px 0 8px;scroll-margin-top:16px}.odd-db-table header{align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.odd-db-table h2{font-family:var(--odd-mono);margin:0;font-size:16px;font-weight:600}.odd-db-table header span{color:var(--odd-muted);font-variant-numeric:tabular-nums;font-size:12.5px}.odd-db-table>.odd-prose{max-width:68ch;margin-bottom:12px;font-size:13.5px}.odd-db-columns{margin:0}.odd-db-column{border-top:1px solid var(--odd-grid);grid-template-columns:minmax(120px,200px) 150px minmax(0,1fr);column-gap:16px;padding:5px 0;font-size:13px;line-height:1.5;display:grid}.odd-db-column dt,.odd-db-column dd{min-width:0;margin:0}.odd-db-column dt code{color:var(--odd-ink);font-family:var(--odd-mono);overflow-wrap:anywhere;font-size:12.5px}.odd-db-type{color:var(--odd-muted);flex-wrap:wrap;align-items:baseline;gap:6px;font-size:12px;display:flex}.odd-db-nullable{color:var(--odd-muted);font-size:11px}.odd-db-note{color:var(--odd-ink-2)}.odd-db-note code{background:var(--odd-hover);font-family:var(--odd-mono);border-radius:3px;padding:0 3px;font-size:.92em}.odd-db-fk{color:var(--odd-accent-ink);margin-right:8px;font-size:12px;text-decoration:none}.odd-db-fk:hover{text-decoration:underline}@media (width<=640px){.odd-db-column{grid-template-columns:minmax(0,1fr) auto}.odd-db-note{grid-column:1/-1}.odd-db-note:empty{display:none}}.odd-db-toc .odd-search{width:100%;margin:0 0 8px}.odd-db-toc ul{margin:0;padding:0;list-style:none}.odd-db-toc a{color:var(--odd-ink-2);font-family:var(--odd-mono);border-radius:6px;justify-content:space-between;gap:8px;padding:4px 8px;font-size:12.5px;text-decoration:none;display:flex}.odd-db-toc a:hover{background:var(--odd-hover);color:var(--odd-ink)}.odd-db-toc a[aria-current=location]{background:var(--odd-hover);color:var(--odd-ink);font-weight:600}.odd-db-count{color:var(--odd-muted);font-family:var(--odd-sans,inherit);font-variant-numeric:tabular-nums;font-size:11.5px}.odd-dashboard-page{padding:20px 24px 96px}.odd-themed{background:var(--odd-page);min-height:100vh;color:var(--odd-ink);font-family:var(--odd-font)}.odd-header{z-index:15;background:color-mix(in srgb, var(--odd-page) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--odd-border);justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:8px 24px;display:flex;position:sticky;top:0}.odd-header[data-mode=edit]{box-shadow:inset 0 -2px 0 var(--odd-accent)}.odd-crumbs{align-items:center;gap:8px;min-width:0;font-size:13.5px;display:flex}.odd-crumbs a{color:var(--odd-muted);white-space:nowrap;text-decoration:none}.odd-crumbs a:hover{color:var(--odd-ink)}.odd-crumbs>span[aria-hidden]{color:var(--odd-axis)}.odd-crumbs [aria-current]{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.odd-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.odd-header-updated{color:var(--odd-muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12.5px}.odd-header-icon{width:30px;height:30px;box-shadow:0 0 0 1px var(--odd-border-strong);background:var(--odd-surface);color:var(--odd-ink-2)}.odd-mode{background:var(--odd-hover);border:0;border-radius:8px;gap:2px;min-width:0;margin:0 0 0 4px;padding:2px;display:flex}.odd-mode button{color:var(--odd-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-size:12.5px;display:inline-flex}.odd-mode button:hover{color:var(--odd-ink)}.odd-mode button[aria-pressed=true]{background:var(--odd-surface);color:var(--odd-ink);box-shadow:0 0 0 1px var(--odd-border);font-weight:560}.odd-header[data-mode=edit] .odd-mode button[aria-pressed=true]{background:var(--odd-accent);color:#fff;box-shadow:none}.odd-dashboard-page[data-editing] .odd-panel[data-editing]{box-shadow:0 0 0 1px var(--odd-border), 0 0 0 4px transparent;outline:1px dashed var(--odd-border-strong);outline-offset:3px}.odd-dashboard-page[data-editing] .odd-panel[data-editing]:hover,.odd-panel[data-resizing],.odd-panel[data-dragging]{outline-color:var(--odd-accent)}.odd-panel[data-dragging]{z-index:20;outline-color:var(--odd-accent);box-shadow:0 0 0 1px var(--odd-border-strong), var(--odd-lift);cursor:grabbing;will-change:transform}.odd-panel[data-resizing]{z-index:6;box-shadow:0 0 0 1px var(--odd-accent), var(--odd-shadow)}.odd-row{position:relative}.odd-row-grip{z-index:3;background:var(--odd-surface);width:18px;height:28px;box-shadow:0 0 0 1px var(--odd-border-strong);color:var(--odd-muted);cursor:grab;touch-action:none;opacity:.55;border:0;border-radius:5px;place-items:center;margin-top:-14px;padding:0;transition:opacity .12s;display:grid;position:absolute;top:50%;left:-22px}.odd-row-grip svg{transform:rotate(90deg)}.odd-row:hover>.odd-row-grip,.odd-row-grip:focus-visible,.odd-row[data-dragging]>.odd-row-grip{opacity:1;color:var(--odd-ink)}.odd-row[data-dragging]{z-index:20;opacity:.88;border-radius:calc(var(--odd-radius) + 4px);background:color-mix(in srgb, var(--odd-page) 70%, transparent);box-shadow:var(--odd-lift);outline:1px dashed var(--odd-accent);outline-offset:4px;will-change:transform}.odd-insert-caret{z-index:30;background:var(--odd-accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--odd-accent) 22%, transparent);pointer-events:none;border-radius:2px;transition:left .12s ease-out,top .12s ease-out;position:fixed}.odd-drop-target{z-index:4;border:2px dashed var(--odd-accent);border-radius:var(--odd-radius);background:color-mix(in srgb, var(--odd-accent) 8%, transparent);pointer-events:none;transition:left .16s cubic-bezier(.2,.8,.2,1),top .16s cubic-bezier(.2,.8,.2,1),width .12s ease-out,height .12s ease-out;position:fixed}.odd-drop-target[data-kind=size]{z-index:30;background:0 0}.odd-panel[data-editing] .odd-panel-actions{opacity:1}.odd-grip{width:18px;height:22px;color:var(--odd-muted);cursor:grab;touch-action:none;background:0 0;border:0;border-radius:4px;place-items:center;margin:-2px 2px 0 -6px;padding:0;display:inline-grid}.odd-grip:hover{background:var(--odd-hover);color:var(--odd-ink)}.odd-handle{z-index:4;touch-action:none;position:absolute}.odd-handle-e{cursor:ew-resize;width:10px;top:12px;bottom:12px;right:-4px}.odd-handle-s{cursor:ns-resize;height:10px;bottom:-4px;left:12px;right:12px}.odd-handle-se{cursor:nwse-resize;width:16px;height:16px;bottom:-4px;right:-4px}.odd-handle-se:after{content:"";border-right:2px solid var(--odd-muted);border-bottom:2px solid var(--odd-muted);border-radius:0 0 2px;width:7px;height:7px;position:absolute;bottom:7px;right:7px}.odd-handle-e:hover,.odd-handle-s:hover{background:color-mix(in srgb, var(--odd-accent) 18%, transparent);border-radius:4px}.odd-size-badge{z-index:5;background:var(--odd-accent);color:#fff;font-variant-numeric:tabular-nums;pointer-events:none;border-radius:999px;padding:2px 8px;font-size:12px;font-weight:560;position:absolute;top:10px;right:12px}body.odd-dragging,body.odd-dragging *{-webkit-user-select:none;user-select:none;cursor:grabbing}.odd-savebar{z-index:25;background:var(--odd-surface);max-width:calc(100vw - 280px);box-shadow:0 0 0 1px var(--odd-border-strong), var(--odd-shadow);border-radius:12px;align-items:center;gap:8px;padding:8px 8px 8px 16px;font-size:13px;display:flex;position:fixed;bottom:20px;left:calc(50vw + 116px);transform:translate(-50%)}.odd-savebar-message{color:var(--odd-ink-2);padding-right:8px}.odd-savebar[data-dirty] .odd-savebar-message{color:var(--odd-ink);font-weight:560}.odd-savebar[data-status=error],.odd-savebar[data-status=blocked]{box-shadow:inset 3px 0 0 var(--odd-critical), 0 0 0 1px var(--odd-border-strong), var(--odd-shadow)}.odd-savebar[data-status=blocked]{animation:.26s odd-nudge}@keyframes odd-nudge{25%{transform:translate(calc(-50% - 6px))}75%{transform:translate(calc(6px - 50%))}}.odd-savebar .odd-button{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.odd-button-ghost{box-shadow:none;background:0 0}.odd-button-ghost:hover{background:var(--odd-hover)}.odd-savebar kbd{font-family:var(--odd-font);background:#ffffff2e;border-radius:4px;padding:0 4px;font-size:10.5px}.odd-chart-settings{flex-direction:column;gap:14px;padding:4px 2px 8px;display:flex}.odd-chart-settings .odd-callout{color:var(--odd-ink-2);margin:0;font-size:13px}.odd-field{border:0;flex-direction:column;gap:5px;min-width:0;margin:0;padding:0;font-size:12.5px;display:flex}.odd-field>span,.odd-field>legend{color:var(--odd-muted);align-items:baseline;gap:8px;margin-bottom:2px;padding:0;font-weight:560;display:flex}.odd-field select,.odd-field input[type=number]{background:var(--odd-page);width:100%;box-shadow:0 0 0 1px var(--odd-border-strong);color:var(--odd-ink);font:inherit;border:0;border-radius:7px;padding:6px 10px;font-size:13px}.odd-field select:disabled,.odd-field input:disabled{opacity:.6}.odd-field-note{color:var(--odd-muted);margin-left:auto;font-style:normal;font-weight:400}.odd-field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.odd-types{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;display:grid}.odd-types legend{grid-column:1/-1}.odd-type{box-shadow:0 0 0 1px var(--odd-border);color:var(--odd-ink-2);cursor:pointer;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:8px 0 6px;font-size:11.5px;display:flex}.odd-type:hover{box-shadow:0 0 0 1px var(--odd-border-strong);color:var(--odd-ink)}.odd-type:has(input:checked){box-shadow:0 0 0 2px var(--odd-accent);color:var(--odd-ink);font-weight:560}:is(.odd-type:has(input:focus-visible),.odd-check:has(input:focus-visible)){outline:2px solid var(--odd-accent);outline-offset:2px}.odd-type input{opacity:0;pointer-events:none;position:absolute}.odd-types:disabled .odd-type{cursor:default;opacity:.6}.odd-checks{flex-wrap:wrap;gap:6px 16px;display:flex}.odd-check{color:var(--odd-ink-2);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.odd-check input{accent-color:var(--odd-accent)}.odd-cell,.odd-tile{transition:opacity .12s}.odd-cell[data-dim],[data-dim]>.odd-tile{opacity:.45}.odd-dot[data-dim]{opacity:.25}.odd-scale{color:var(--odd-muted);font-variant-numeric:tabular-nums;justify-content:flex-end;align-items:center;gap:8px;font-size:11px;display:flex}.odd-scale-bar{border-radius:4px;width:120px;height:8px}.odd-funnel{flex-direction:column;flex:1;justify-content:center;gap:2px;margin:0;padding:0;list-style:none;display:flex}.odd-funnel li{flex-direction:column;transition:opacity .12s;display:flex}.odd-funnel li[data-dim]{opacity:.45}.odd-funnel-row{width:100%;color:inherit;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:minmax(80px,28%) minmax(0,1fr) auto 3.4em;align-items:center;gap:10px;padding:4px 0;display:grid}.odd-funnel-row:not(:disabled){cursor:pointer}.odd-funnel-row:disabled{cursor:default}.odd-funnel-label{text-overflow:ellipsis;white-space:nowrap;color:var(--odd-ink-2);font-size:13px;overflow:hidden}.odd-funnel-track{background:color-mix(in srgb, var(--odd-series-1) 12%, var(--odd-surface));border-radius:4px;height:22px}.odd-funnel-bar{background:var(--odd-series-1);border-radius:4px;height:100%;display:block}.odd-funnel-value{font-variant-numeric:tabular-nums;font-size:13px;font-weight:560}.odd-funnel-share{color:var(--odd-muted);text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.odd-funnel-step{color:var(--odd-muted);padding-left:calc(28% + 10px);font-size:11.5px;line-height:1.2}.odd-funnel-step:before{content:"↓ "}.odd-gauge,.odd-treemap{flex:1;min-height:0;position:relative}.odd-gauge svg,.odd-treemap svg{position:absolute;inset:0}.odd-gauge-track{fill:none;stroke:color-mix(in srgb, var(--odd-series-1) 16%, var(--odd-surface));stroke-linecap:round}.odd-gauge-fill{fill:none;stroke:var(--odd-series-1);stroke-linecap:round}.odd-gauge-target{stroke:var(--odd-ink);stroke-width:2.5px;stroke-linecap:round}.odd-gauge-value{fill:var(--odd-ink);font-variant-numeric:normal;font-weight:620}.odd-gauge-caption{fill:var(--odd-muted);font-size:12px}.odd-tile-label{font-size:12.5px;font-weight:600}.odd-tile-value{opacity:.85;font-variant-numeric:tabular-nums;font-size:12px}.odd-drillable,.odd-slice[data-drillable]{cursor:pointer}.odd-table tbody tr.odd-drillable:focus-visible{outline:2px solid var(--odd-accent);outline-offset:-2px}.odd-table tbody tr[data-active] td{background:color-mix(in srgb, var(--odd-accent) 12%, transparent)}.odd-refresh select{background:var(--odd-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23898781' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 9px center;box-shadow:0 0 0 1px var(--odd-border-strong);color:var(--odd-ink);font:inherit;appearance:none;cursor:pointer;border:0;border-radius:7px;padding:4px 26px 4px 10px;font-size:12.5px}.odd-sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.odd-notes-pill{background:var(--odd-warning-bg);color:var(--odd-ink);font:inherit;cursor:pointer;border:0;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;display:inline-flex}.odd-notes-pill code{font-family:var(--odd-mono);font-size:11.5px}.odd-notes-pill svg{width:13px;height:13px;color:var(--odd-muted)}.odd-note-saved{color:var(--odd-good);align-items:center;gap:6px;display:inline-flex}.odd-note-saved code{color:var(--odd-ink-2);font-family:var(--odd-mono);font-size:11.5px}.odd-chart-settings-edit{align-self:flex-start;align-items:center;gap:6px;display:inline-flex}@keyframes odd-hint{0%,to{color:var(--odd-muted);background:0 0}40%{color:var(--odd-accent);background:color-mix(in srgb, var(--odd-accent) 14%, transparent)}}@keyframes odd-hint-corner{0%,to{border-color:var(--odd-muted);transform:none}40%{border-color:var(--odd-accent);transform:translate(2px,2px)}}.odd-dashboard-page[data-editing] .odd-grip{animation:.9s ease-in-out .2s 2 odd-hint}.odd-dashboard-page[data-editing] .odd-handle-se:after{animation:.9s ease-in-out .2s 2 odd-hint-corner}@media (prefers-reduced-motion:reduce){.odd-dashboard-page[data-editing] .odd-grip,.odd-dashboard-page[data-editing] .odd-handle-se:after{animation:none}}.odd-dash-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin:4px 0 20px;display:flex}.odd-dash-titles h1{letter-spacing:-.015em;margin:0;font-size:24px;font-weight:650}.odd-dash-titles p{color:var(--odd-ink-2);max-width:72ch;margin:4px 0 0}.odd-dash-filters,.odd-filters{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.odd-filter{color:var(--odd-muted);flex-direction:column;gap:3px;font-size:12px;display:flex}.odd-filter select{background:var(--odd-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23898781' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 10px center;min-width:150px;box-shadow:0 0 0 1px var(--odd-border-strong);color:var(--odd-ink);font:inherit;appearance:none;cursor:pointer;border:0;border-radius:7px;padding:6px 28px 6px 10px;font-size:13.5px}.odd-filter-error{color:var(--odd-critical);font-style:normal}.odd-grid,.odd-row{grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;display:grid}.odd-grid{align-items:start}.odd-row{grid-column:1/-1;align-items:stretch}.odd-row:has(>.odd-panel[data-sized])>.odd-panel:not([data-sized]){align-self:start}.odd-section{grid-column:1/-1;margin-top:16px}.odd-section-head{margin-bottom:10px}.odd-section-head h2{margin:0;font-size:15px;font-weight:620}.odd-section-head p{color:var(--odd-muted);margin:2px 0 0}.odd-panel{grid-column:span var(--odd-span,12);border-radius:var(--odd-radius);background:var(--odd-surface);min-width:0;box-shadow:0 0 0 1px var(--odd-border);flex-direction:column;padding:14px 16px 12px;display:flex;position:relative;overflow:hidden}.odd-panel-head{align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.odd-panel-titles{flex:1;min-width:0}.odd-panel-titles h3{color:var(--odd-ink);margin:0;font-size:13.5px;font-weight:600}.odd-panel-titles p{color:var(--odd-muted);margin:1px 0 0;font-size:12.5px}.odd-panel-actions{opacity:0;align-items:center;margin:-4px -6px 0 0;transition:opacity .12s;display:flex}.odd-download{position:relative}.odd-icon-button:disabled{opacity:.35;cursor:default;background:0 0}.odd-download-menu{z-index:30;background:var(--odd-surface);min-width:96px;box-shadow:0 0 0 1px var(--odd-border-strong), var(--odd-shadow);border-radius:8px;flex-direction:column;padding:4px;animation:.14s ease-out odd-pop;display:flex;position:absolute;top:calc(100% + 4px);right:0}.odd-download-error{z-index:30;background:var(--odd-surface);width:max-content;max-width:280px;box-shadow:0 0 0 1px var(--odd-border-strong), var(--odd-shadow);color:var(--odd-bad);border-radius:8px;margin:0;padding:8px 10px;font-size:12.5px;line-height:1.4;animation:.14s ease-out odd-pop;position:absolute;top:calc(100% + 4px);right:0}.odd-download [data-busy] svg{animation:1s ease-in-out infinite odd-pulse}@keyframes odd-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.odd-download [data-busy] svg{animation:none}}.odd-download-menu button{color:var(--odd-ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:6px 10px;font-size:12.5px}.odd-download-menu button:hover,.odd-download-menu button:focus-visible{background:var(--odd-hover)}.odd-panel:hover .odd-panel-actions,.odd-panel:focus-within .odd-panel-actions{opacity:1}@media (hover:none){.odd-panel-actions{opacity:1}}.odd-panel-body{flex-direction:column;flex:1;min-height:0;transition:opacity .16s;display:flex;position:relative}.odd-panel[data-refreshing] .odd-panel-body{opacity:.55}.odd-panel-progress{height:2px;position:absolute;top:0;left:0;right:0;overflow:hidden}.odd-panel-progress:after{content:"";background:var(--odd-accent);width:30%;height:100%;animation:1s ease-in-out infinite odd-slide;position:absolute;top:0}@keyframes odd-slide{0%{left:-30%}to{left:100%}}.odd-panel-skeleton{background:linear-gradient(90deg, var(--odd-surface-2) 0%, var(--odd-hover) 50%, var(--odd-surface-2) 100%);opacity:.6;background-size:200% 100%;border-radius:6px;flex:1;min-height:48px;animation:1.4s linear infinite odd-shimmer}@keyframes odd-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion:reduce){.odd-insert-caret,.odd-drop-target{transition:none}.odd-savebar[data-status=blocked],.odd-settings-panel,.odd-panel-skeleton,.odd-panel-progress:after{animation:none}}.odd-panel-message{text-align:center;color:var(--odd-muted);flex:1;place-content:center;gap:6px;padding:12px;display:grid}.odd-panel-error{text-align:left;color:var(--odd-ink);place-content:start}.odd-panel-error code{color:var(--odd-ink-2);white-space:pre-wrap;overflow-wrap:anywhere}.odd-panel-error strong:before{content:"▲ ";color:var(--odd-critical)}.odd-stat{flex-direction:column;gap:4px;display:flex}.odd-stat-value{white-space:nowrap;letter-spacing:-.02em;font-size:30px;font-weight:620;line-height:1.1;overflow:hidden}.odd-stat-delta{align-items:baseline;gap:6px;font-size:12.5px;font-weight:560;display:flex}.odd-stat-delta[data-good=true]>span:first-child{color:var(--odd-good)}.odd-stat-delta[data-good=false]>span:first-child{color:var(--odd-bad)}.odd-stat-delta[data-good=flat]>span:first-child{color:var(--odd-muted)}.odd-stat-delta .odd-muted{font-weight:400}.odd-spark{height:36px;margin-top:6px}.odd-spark-line{fill:none;stroke:var(--odd-axis);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.odd-spark-dot{fill:var(--odd-accent);stroke:var(--odd-surface);stroke-width:2px}.odd-chart{flex-direction:column;flex:1;gap:6px;min-height:0;display:flex}.odd-plot{flex:1;min-height:0;position:relative}.odd-plot svg{position:absolute;inset:0;overflow:visible}.odd-legend{color:var(--odd-ink-2);flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.odd-legend li{align-items:center;gap:6px;display:inline-flex}.odd-key{flex:none;display:inline-block}.odd-key-box{border-radius:2px;width:8px;height:8px}.odd-key-line{border-radius:1px;width:12px;height:2px}.odd-grid-line{stroke:var(--odd-grid);stroke-width:1px;shape-rendering:crispedges}.odd-baseline{stroke:var(--odd-axis);stroke-width:1px;shape-rendering:crispedges}.odd-tick{fill:var(--odd-tick);font-variant-numeric:tabular-nums;font-size:11px}.odd-tick-category{fill:var(--odd-ink-2);font-variant-numeric:normal;font-size:12px}.odd-value-label{fill:var(--odd-ink-2);font-variant-numeric:tabular-nums;font-size:11px}.odd-line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.odd-area{fill-opacity:.1}.odd-area-stacked{fill-opacity:.28}.odd-dot{stroke:var(--odd-surface);stroke-width:2px}.odd-crosshair{stroke:var(--odd-axis);stroke-width:1px}.odd-hover-band{fill:var(--odd-hover)}.odd-bar,.odd-slice{transition:opacity .12s}.odd-bar[data-dim],.odd-slice[data-dim]{opacity:.35}.odd-slice{stroke:var(--odd-surface);stroke-width:2px}.odd-tooltip{z-index:5;background:var(--odd-surface);min-width:160px;max-width:280px;box-shadow:0 0 0 1px var(--odd-border-strong), var(--odd-shadow);pointer-events:none;border-radius:8px;padding:8px 10px;font-size:12px;position:absolute}.odd-tooltip-title{margin-bottom:4px;font-weight:600}.odd-tooltip-row{grid-template-columns:auto 1fr auto;align-items:center;gap:6px;line-height:1.7;display:grid}.odd-tooltip-label{color:var(--odd-ink-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.odd-tooltip-value{font-variant-numeric:tabular-nums;font-weight:560}.odd-donut{flex:1;align-items:center;gap:16px;min-height:0;display:flex}.odd-donut svg{flex:none}.odd-donut-total{fill:var(--odd-ink);font-size:18px;font-weight:620}.odd-donut-caption{fill:var(--odd-muted);font-size:11.5px}.odd-donut-legend{flex-direction:column;flex:1;gap:2px;min-width:0;margin:0;padding:0;font-size:12.5px;list-style:none;display:flex}.odd-donut-legend li{border-radius:5px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:3px 6px;display:grid}.odd-donut-legend li[data-active]{background:var(--odd-hover)}.odd-donut-legend[data-narrow] li{grid-template-columns:auto minmax(0,1fr) auto}.odd-donut-label{text-overflow:ellipsis;white-space:nowrap;color:var(--odd-ink-2);overflow:hidden}.odd-donut-value{font-variant-numeric:tabular-nums;font-weight:560}.odd-donut-share{text-align:right;font-variant-numeric:tabular-nums;min-width:3.2em;color:var(--odd-muted)}.odd-table-wrap{flex:1;min-height:0;margin:0 -16px -12px;overflow:auto}.odd-table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.odd-table th{z-index:1;background:var(--odd-surface);border-bottom:1px solid var(--odd-axis);color:var(--odd-muted);white-space:nowrap;padding:0;font-size:12px;font-weight:560;position:sticky;top:0}.odd-table th button{width:100%;text-align:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:6px 16px}.odd-table th button:hover{color:var(--odd-ink)}.odd-sort{width:1em;margin-left:2px;display:inline-block}.odd-table td{border-bottom:1px solid var(--odd-grid);white-space:nowrap;padding:6px 16px;position:relative}.odd-table td[data-numeric]{font-variant-numeric:tabular-nums}.odd-table tbody tr:hover td{background:var(--odd-hover)}.odd-cell-bar{height:3px;position:absolute;bottom:3px;left:16px;right:16px}.odd-cell-bar span{background:var(--odd-series-1);opacity:.55;border-radius:2px;height:100%;margin-left:auto;display:block}.odd-table-dense{font-size:12px}.odd-table-dense th,.odd-table-dense td{padding:4px 10px}.odd-col-type{opacity:.7;margin-left:6px;font-size:10.5px;font-weight:400}.odd-table-note{color:var(--odd-muted);margin:8px 16px;font-size:12px}.odd-text{color:var(--odd-ink-2)}.odd-text>:first-child{margin-top:0}.odd-text>:last-child{margin-bottom:0}.odd-inspector{z-index:20;background:var(--odd-surface);width:min(560px,100vw);box-shadow:-1px 0 0 var(--odd-border), -16px 0 48px #0000001f;flex-direction:column;padding:16px 20px;display:flex;position:fixed;top:0;bottom:0;right:0}.odd-inspector-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.odd-inspector-head h2{margin:2px 0 0;font-size:17px;font-weight:620}.odd-facts{grid-template-columns:repeat(4,auto);gap:10px 16px;margin:16px 0 0;display:grid}.odd-facts div{min-width:0}.odd-facts-wide{grid-column:1/-1}.odd-facts dt{color:var(--odd-muted);font-size:11.5px}.odd-facts dd{overflow-wrap:anywhere;margin:1px 0 0}.odd-inspector-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.odd-inspector-body .odd-table-wrap{box-shadow:0 0 0 1px var(--odd-border);border-radius:8px;margin:0}.odd-code{background:var(--odd-surface-2);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;margin:0;padding:12px;line-height:1.55}.odd-note{border-top:1px solid var(--odd-grid);flex-direction:column;gap:6px;margin-top:16px;padding-top:14px;display:flex}.odd-note label{font-size:13px;font-weight:600}.odd-note textarea{background:var(--odd-page);width:100%;box-shadow:0 0 0 1px var(--odd-border-strong);font:inherit;color:inherit;resize:vertical;border:0;border-radius:8px;padding:8px 10px}.odd-note-actions{justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}@media (width<=1100px){.odd-home-grid{grid-template-columns:minmax(0,1fr)}.odd-rail{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;display:grid}}@media (width<=860px){.odd-table th:first-child,.odd-table td:first-child{z-index:1;background:var(--odd-surface);box-shadow:inset -1px 0 0 var(--odd-grid);position:sticky;left:0}.odd-table th:first-child{z-index:2}.odd-table tbody tr:hover td:first-child{background:linear-gradient(var(--odd-hover), var(--odd-hover)), var(--odd-surface)}.odd-shell{background:0 0;grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr)}.odd-sidebar{border-right:0;border-bottom:1px solid var(--odd-border);gap:8px;height:auto;position:static}.odd-menu-toggle{display:block}.odd-shell:not([data-menu]) .odd-nav,.odd-shell:not([data-menu]) .odd-settings{display:none}.odd-page{padding:20px 16px 48px}.odd-dashboard-page{padding:12px 16px 96px}.odd-header{flex-direction:column;align-items:stretch;padding:10px 16px;position:static}.odd-header-actions{justify-content:flex-start}.odd-header-updated{display:none}.odd-row-grip{margin-top:0;top:-10px;left:auto;right:-8px}.odd-savebar{flex-wrap:wrap;max-width:calc(100vw - 24px);left:50%}.odd-board{grid-template-columns:minmax(0,1fr);gap:12px;padding:16px}.odd-board-meta{grid-template-columns:auto auto auto;justify-content:start;gap:20px}.odd-grid>*,.odd-row>*,.odd-panel{grid-column:1/-1}.odd-row>.odd-panel-stat{grid-column:span 6}.odd-facts{grid-template-columns:repeat(2,auto)}}.odd-studio-page{max-width:none;padding-bottom:96px}.odd-studio-head{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.odd-studio-head h1{letter-spacing:-.018em;margin:0;font-size:26px;font-weight:650;line-height:1.2}.odd-studio-actions{align-items:center;gap:8px;display:flex}.odd-studio-select select,.odd-studio-panel .odd-field select{background:var(--odd-surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23898781' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 10px center;min-width:160px;height:32px;box-shadow:0 0 0 1px var(--odd-border-strong);color:var(--odd-ink);font:inherit;appearance:none;cursor:pointer;border:0;border-radius:7px;padding:0 28px 0 10px;font-size:13px}.odd-studio-panel .odd-field select{background-color:var(--odd-page);width:100%}.odd-studio-actions .odd-button{height:32px;padding:0 14px}.odd-button:disabled{opacity:.45;cursor:default}.odd-popover-anchor{position:relative}.odd-popover{z-index:30;background:var(--odd-surface);width:260px;box-shadow:0 0 0 1px var(--odd-border-strong), var(--odd-shadow);border-radius:10px;flex-direction:column;gap:10px;padding:14px;animation:.14s ease-out odd-pop;display:flex;position:absolute;top:calc(100% + 6px);right:0}.odd-popover .odd-button{align-self:flex-end}.odd-field input[type=text],.odd-field select{background:var(--odd-page);width:100%;box-shadow:0 0 0 1px var(--odd-border-strong);color:var(--odd-ink);font:inherit;border:0;border-radius:7px;padding:7px 10px;font-size:13px}.odd-field input[type=text]:focus-visible,.odd-field select:focus-visible{outline:2px solid var(--odd-accent);outline-offset:1px}.odd-field input[aria-invalid=true]{box-shadow:0 0 0 1px var(--odd-bad)}.odd-field-error{color:var(--odd-bad);margin:0;font-size:12px}.odd-studio{grid-template-columns:320px minmax(0,1fr);align-items:start;gap:24px;display:grid}.odd-studio-panel{background:var(--odd-surface);max-height:calc(100vh - 32px);box-shadow:0 0 0 1px var(--odd-border);border-radius:12px;flex-direction:column;display:flex;position:sticky;top:16px;overflow:auto}.odd-studio-section{border-bottom:1px solid var(--odd-border);flex-direction:column;gap:10px;padding:16px 18px;display:flex}.odd-studio-section h2{color:var(--odd-muted);letter-spacing:.02em;margin:0;font-size:12px;font-weight:650}.odd-studio-section-head{justify-content:space-between;align-items:center;display:flex}.odd-text-button{color:var(--odd-accent-ink);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.odd-text-button:hover{text-decoration:underline}.odd-studio-mode{background:var(--odd-hover);border:0;border-radius:9px;grid-template-columns:1fr 1fr;gap:3px;min-width:0;margin:0;padding:3px;display:grid}.odd-studio-mode button{color:var(--odd-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:6px 8px;font-size:12.5px;transition:background .12s,color .12s;display:inline-flex}.odd-studio-mode button:hover{color:var(--odd-ink)}.odd-studio-mode button[aria-pressed=true]{background:var(--odd-surface);color:var(--odd-ink);box-shadow:0 0 0 1px var(--odd-border);font-weight:560}.odd-palette{grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;display:grid}.odd-palette-chip{aspect-ratio:1;cursor:pointer;border-radius:8px;align-items:flex-end;padding:3px 5px;transition:transform .12s;display:flex;position:relative;box-shadow:inset 0 0 0 1px #00000014}.odd-palette-chip:hover{transform:translateY(-1px)}.odd-palette-chip:focus-within{outline:2px solid var(--odd-accent);outline-offset:2px}.odd-palette-chip input,.odd-color-swatch input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.odd-palette-chip span{color:#ffffffeb;text-shadow:0 0 3px #00000073;font-size:10px;font-weight:650}.odd-color-row{justify-content:space-between;align-items:center;gap:10px;min-height:32px;display:flex}.odd-color-label{color:var(--odd-ink-2);font-size:13px}.odd-color-control{align-items:center;gap:6px;display:flex}.odd-color-swatch{width:26px;height:26px;box-shadow:inset 0 0 0 1px var(--odd-border-strong);cursor:pointer;border-radius:7px;flex:none;position:relative}.odd-color-swatch:focus-within{outline:2px solid var(--odd-accent);outline-offset:2px}.odd-color-hex{background:var(--odd-page);width:80px;box-shadow:0 0 0 1px var(--odd-border);color:var(--odd-muted);font-family:var(--odd-mono);border:0;border-radius:6px;padding:4px 8px;font-size:12px}.odd-color-row[data-set] .odd-color-hex{color:var(--odd-ink);box-shadow:0 0 0 1px var(--odd-border-strong)}.odd-color-reset{width:22px;height:22px;font-size:13px}.odd-color-reset:disabled{visibility:hidden}.odd-range{width:100%;accent-color:var(--odd-accent)}.odd-studio-foot{flex-direction:column;gap:10px;padding:14px 18px 18px;display:flex}.odd-studio-foot code{color:var(--odd-muted);font-family:var(--odd-mono);font-size:11.5px}.odd-studio-preview{background:var(--odd-surface);min-width:0;box-shadow:0 0 0 1px var(--odd-border);border-radius:14px;overflow:hidden}.odd-studio-preview-bar{border-bottom:1px solid var(--odd-border);justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.odd-studio-preview-label{color:var(--odd-muted);font-size:12px;font-weight:650}.odd-themed[data-preview]{min-height:0}.odd-studio-empty{border:1px dashed var(--odd-border-strong);color:var(--odd-muted);text-align:center;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:72px 24px;display:flex}.odd-studio-empty p{margin:0}.odd-chips{flex-wrap:wrap;gap:6px;display:flex}.odd-chips code,.odd-chips a{background:var(--odd-hover);color:var(--odd-ink-2);border-radius:6px;padding:2px 8px;font-size:12px;text-decoration:none}.odd-chips code{font-family:var(--odd-mono)}.odd-chips a:hover{color:var(--odd-ink);background:var(--odd-border)}.odd-gallery{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:24px;display:grid}.odd-gallery-list{flex-direction:column;gap:2px;max-height:calc(100vh - 32px);padding:2px 4px 16px 2px;display:flex;position:sticky;top:16px;overflow:auto}.odd-gallery-list a{color:var(--odd-ink-2);border-radius:8px;align-items:center;gap:10px;padding:5px 8px;text-decoration:none;display:flex}.odd-gallery-list a:hover{background:var(--odd-hover)}.odd-gallery-list a[aria-current=page]{background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border);color:var(--odd-ink)}.odd-gallery-name{font-size:13px}.odd-gallery-list a[aria-current=page] .odd-gallery-name{font-weight:600}.odd-gallery-head .odd-chart-icon{align-self:center}.odd-gallery-list code{color:var(--odd-muted);font-family:var(--odd-mono);font-size:11.5px}.odd-gallery-detail{flex-direction:column;gap:16px;min-width:0;display:flex}.odd-gallery-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.odd-gallery-head h2{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:650}.odd-gallery-head code{color:var(--odd-muted);font-family:var(--odd-mono);font-size:12px}.odd-gallery-stage{background:var(--odd-page);background-image:radial-gradient(var(--odd-border) 1px, transparent 1px);box-shadow:0 0 0 1px var(--odd-border);background-size:16px 16px;border-radius:14px;padding:24px;display:grid}.odd-gallery-facts{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin:0;display:grid}.odd-gallery-facts>div{background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border);border-radius:10px;padding:12px 14px}.odd-gallery-facts dt{color:var(--odd-muted);margin-bottom:8px;font-size:12px;font-weight:650}.odd-gallery-facts dd{margin:0}.odd-code-block{background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border);border-radius:10px;position:relative}.odd-code-block pre{font-family:var(--odd-mono);white-space:pre;margin:0;padding:14px 48px 14px 16px;font-size:12.5px;line-height:1.7;overflow-x:auto}.odd-code-block .odd-icon-button{position:absolute;top:8px;right:8px}.odd-copy-chip{background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border-strong);color:var(--odd-ink-2);cursor:pointer;border:0;border-radius:8px;align-items:center;gap:8px;padding:6px 12px;display:inline-flex}.odd-copy-chip:hover{color:var(--odd-ink)}.odd-copy-chip code{font-family:var(--odd-mono);font-size:13px}.odd-gallery-search{background:var(--odd-surface);width:100%;box-shadow:0 0 0 1px var(--odd-border-strong);color:var(--odd-ink);font:inherit;border:0;border-radius:8px;margin-bottom:8px;padding:7px 10px;font-size:13px}.odd-gallery-search:focus-visible{outline:2px solid var(--odd-accent);outline-offset:1px}.odd-gallery-group{flex-direction:column;gap:1px;margin-top:12px;display:flex}.odd-gallery-group h2{color:var(--odd-muted);margin:0 0 4px;padding:0 12px;font-size:11.5px;font-weight:650}.odd-gallery-group .odd-command{margin:2px 0}.odd-chart-icon{background:var(--odd-hover);width:26px;height:26px;color:var(--odd-ink-2);border-radius:7px;flex:none;place-items:center;display:inline-grid}.odd-gallery-count{background:var(--odd-hover);color:var(--odd-muted);font-variant-numeric:tabular-nums;border-radius:999px;margin-left:auto;padding:0 6px;font-size:11px}.odd-gallery-placeholder{place-items:center;min-height:240px;display:grid}.odd-gallery-placeholder .odd-chart-icon{width:88px;height:88px;color:var(--odd-muted);border-radius:22px}.odd-gallery-placeholder .odd-chart-icon svg{width:44px;height:44px}.odd-charts-page{box-sizing:border-box;flex-direction:column;height:100vh;padding-bottom:24px;display:flex}.odd-charts-page .odd-gallery{flex:1;align-items:stretch;min-height:0}.odd-charts-page .odd-gallery-list{overscroll-behavior:contain;min-height:0;max-height:none;position:static;overflow:auto}.odd-charts-page .odd-gallery-search{z-index:1;box-shadow:0 0 0 1px var(--odd-border-strong), 0 -4px 0 4px var(--odd-page), 0 6px 8px 2px var(--odd-page);position:sticky;top:0}.odd-charts-page .odd-gallery-detail{overscroll-behavior:contain;min-height:0;padding:2px 4px 2px 2px;overflow:auto}@media (width<=960px){.odd-studio,.odd-gallery{grid-template-columns:minmax(0,1fr)}.odd-studio-panel,.odd-gallery-list{max-height:none;position:static}.odd-charts-page{height:auto}.odd-charts-page .odd-gallery-list{max-height:320px}.odd-charts-page .odd-gallery-detail{overflow:visible}}.odd-chat-fab{z-index:40;background:var(--odd-ink);width:48px;height:48px;color:var(--odd-surface);box-shadow:var(--odd-lift);cursor:pointer;border:0;border-radius:50%;place-items:center;transition:transform .14s;display:grid;position:fixed;bottom:24px;right:24px}.odd-chat-fab:hover{transform:translateY(-1px)scale(1.04)}.odd-chat-fab:focus-visible{outline:2px solid var(--odd-accent);outline-offset:3px}.odd-chat{z-index:40;background:var(--odd-surface);width:min(400px,100vw - 32px);height:min(560px,100vh - 120px);box-shadow:0 0 0 1px var(--odd-border-strong), var(--odd-lift);transform-origin:100% 100%;border-radius:14px;flex-direction:column;animation:.16s ease-out odd-pop;display:flex;position:fixed;bottom:84px;right:24px;overflow:hidden}.odd-chat-head{border-bottom:1px solid var(--odd-border);align-items:center;gap:4px;padding:10px 10px 10px 16px;display:flex}.odd-chat-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.odd-chat-messages{overscroll-behavior:contain;flex-direction:column;flex:1;gap:10px;min-height:0;padding:14px;display:flex;overflow:auto}.odd-chat-message{overflow-wrap:anywhere;border-radius:12px;max-width:88%;padding:8px 12px;font-size:13.5px;line-height:1.55}.odd-chat-message[data-role=user]{background:var(--odd-ink);color:var(--odd-surface);white-space:pre-wrap;border-bottom-right-radius:4px;align-self:flex-end}.odd-chat-message[data-role=assistant]{background:var(--odd-surface-2);color:var(--odd-ink);border-bottom-left-radius:4px;align-self:flex-start}.odd-chat-message[data-error]{background:color-mix(in srgb, var(--odd-bad) 12%, var(--odd-surface));color:var(--odd-ink)}.odd-chat-message p,.odd-chat-message ul,.odd-chat-message ol{margin:0 0 6px}.odd-chat-message>:last-child{margin-bottom:0}.odd-chat-message ul,.odd-chat-message ol{padding-left:18px}.odd-chat-thinking{margin:-2px 0 6px}.odd-chat-thinking:last-child{margin-bottom:0}.odd-chat-thinking-toggle{max-width:100%;color:var(--odd-muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:2px 0;font-size:12.5px;display:flex}.odd-chat-thinking-toggle:disabled{cursor:default}.odd-chat-thinking-toggle:not(:disabled):hover{color:var(--odd-ink)}.odd-chat-thinking-toggle:focus-visible{outline:2px solid var(--odd-accent);outline-offset:2px;border-radius:4px}.odd-chat-thinking-label{flex:none}.odd-chat-thinking[data-active] .odd-chat-thinking-label{background:linear-gradient(90deg, var(--odd-muted) 0%, var(--odd-muted) 35%, var(--odd-ink) 50%, var(--odd-muted) 65%, var(--odd-muted) 100%) 0 0 / 250% 100%;color:#0000;-webkit-background-clip:text;background-clip:text;animation:1.8s linear infinite odd-thinking}.odd-chat-thinking-step{text-overflow:ellipsis;white-space:nowrap;min-width:0;animation:.24s ease-out odd-step-in;overflow:hidden}.odd-history-pending{color:var(--odd-ink-2);margin:0 0 8px;font-size:12.5px}.odd-history-list{margin:0;padding:0;list-style:none}.odd-history-list li+li{border-top:1px solid var(--odd-border)}.odd-history-list summary{cursor:pointer;flex-direction:column;gap:2px;padding:8px 2px;list-style:none;display:flex}.odd-history-list summary::-webkit-details-marker{display:none}.odd-history-subject{color:var(--odd-ink);font-size:13px}.odd-history-meta{color:var(--odd-muted);font-size:12px}.odd-history-meta code{font-family:var(--odd-mono)}.odd-diff [data-kind=add]{color:var(--odd-good)}.odd-diff [data-kind=del]{color:var(--odd-bad)}.odd-diff [data-kind=hunk]{color:var(--odd-muted)}.odd-chat-switched{color:var(--odd-ink-2);flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 6px;font-size:12.5px;display:flex}.odd-chat-switched button{background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border-strong);color:var(--odd-ink);font:inherit;cursor:pointer;border:0;border-radius:6px;padding:1px 8px}.odd-chat-switched button:hover{background:var(--odd-hover)}.odd-chat-read{color:var(--odd-muted);margin:2px 0 0;font-size:12px;line-height:1.45}.odd-chat-thought{border-left:2px solid var(--odd-grid);overscroll-behavior:contain;max-height:220px;color:var(--odd-muted);margin-top:4px;padding:2px 0 2px 10px;font-size:12.5px;overflow:auto}.odd-chat-thought p{margin:0 0 6px}@keyframes odd-thinking{0%{background-position:100% 0}to{background-position:-150% 0}}@keyframes odd-step-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.odd-chat-suggestions{flex-direction:column;align-items:flex-end;gap:8px;margin-top:auto;display:flex}.odd-chat-suggestions button{background:var(--odd-surface);box-shadow:0 0 0 1px var(--odd-border-strong);color:var(--odd-ink-2);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:7px 12px;font-size:13px}.odd-chat-suggestions button:hover{background:var(--odd-hover);color:var(--odd-ink)}.odd-chat-input{border-top:1px solid var(--odd-border);align-items:flex-end;gap:8px;padding:10px;display:flex}.odd-chat-input textarea{background:var(--odd-page);max-height:120px;box-shadow:0 0 0 1px var(--odd-border-strong);color:var(--odd-ink);font:inherit;resize:none;field-sizing:content;border:0;border-radius:10px;flex:1;padding:8px 10px;font-size:13.5px;line-height:1.45}.odd-chat-input textarea:focus-visible{outline:2px solid var(--odd-accent);outline-offset:1px}.odd-chat-send{background:var(--odd-ink);width:34px;height:34px;color:var(--odd-surface);cursor:pointer;border:0;border-radius:10px;flex:none;place-items:center;display:grid}.odd-chat-send:disabled{opacity:.35;cursor:default}@media (prefers-reduced-motion:reduce){.odd-chat,.odd-chat-thinking-step,.odd-chat-thinking[data-active] .odd-chat-thinking-label{animation:none}}.odd-key-dot{border-radius:50%;width:8px;height:8px}.odd-row-mark,.odd-slope{transition:opacity .12s}.odd-row-mark[data-dim],.odd-slope[data-dim]{opacity:.35}.odd-slope[data-active] .odd-line{stroke-width:3px}.odd-connector{stroke:var(--odd-axis);stroke-width:1px}.odd-connector-strong{stroke-width:2px;stroke-linecap:round}.odd-target-mark{stroke:var(--odd-ink);stroke-width:2.5px;stroke-linecap:round}.odd-waterfall-connector{stroke:var(--odd-axis);stroke-width:1px;shape-rendering:crispedges}.odd-multiples{flex:1;align-content:start;gap:12px;min-height:0;display:grid}.odd-facet{min-width:0;margin:0;transition:opacity .12s;position:relative}.odd-facet[data-dim]{opacity:.4}.odd-facet figcaption{text-overflow:ellipsis;white-space:nowrap;color:var(--odd-ink-2);font-size:12px;font-weight:600;position:absolute;top:0;left:0;right:0;overflow:hidden}.odd-multiples-note,.odd-band{fill:color-mix(in srgb, var(--odd-series-1) 22%, transparent)}.odd-band-outer{fill:color-mix(in srgb, var(--odd-series-1) 10%, transparent)}.odd-band-key{background:color-mix(in srgb, var(--odd-series-1) 30%, var(--odd-surface))}.odd-band-key-outer{background:color-mix(in srgb, var(--odd-series-1) 14%, var(--odd-surface))}.odd-control-center{fill:none;stroke:var(--odd-ink-2);stroke-width:1px}.odd-control-limit{fill:none;stroke:var(--odd-muted);stroke-width:1px}.odd-control-out{fill:var(--odd-critical);stroke:var(--odd-surface);stroke-width:2px}.odd-horizon,.odd-timeline{overflow-y:auto}.odd-horizon svg,.odd-timeline svg{position:static}.odd-timeline-now{stroke:var(--odd-critical);stroke-width:1.5px}.odd-gantt{overflow-y:auto}.odd-gantt svg{position:static}.odd-gantt-off{fill:var(--odd-hover)}.odd-gantt-holiday{fill:var(--odd-surface-2)}.odd-gantt-group-label{fill:var(--odd-ink);font-weight:600}.odd-gantt-summary{fill:none;stroke:var(--odd-ink-2);stroke-width:2px}.odd-gantt-remaining{fill-opacity:.35}.odd-gantt-link{fill:none;stroke:var(--odd-axis);stroke-width:1.25px}.odd-gantt-arrowhead{fill:var(--odd-axis)}.odd-gantt-link.odd-gantt-late{stroke:var(--odd-critical);stroke-dasharray:3 2}.odd-gantt-arrowhead.odd-gantt-late{fill:var(--odd-critical)}.odd-gantt-milestone{stroke:var(--odd-surface);stroke-width:1.5px}.odd-gantt-late-key{border-top:1.5px dashed var(--odd-critical);width:14px;height:0}.odd-sample-note{color:var(--odd-muted);margin:4px 0 0;font-size:11.5px}.odd-whisker{stroke:var(--odd-ink-2);stroke-width:1.5px}.odd-box-body{fill-opacity:.22;stroke:var(--odd-series-1);stroke-width:1.5px}.odd-median{stroke:var(--odd-ink);stroke-width:2px;stroke-linecap:round}.odd-box,.odd-upset-column{transition:opacity .12s}.odd-box[data-dim],.odd-upset-column[data-dim]{opacity:.4}.odd-reference{stroke:var(--odd-axis);stroke-width:1px}.odd-reference-label{fill:var(--odd-muted);font-variant-numeric:tabular-nums;font-size:11px}.odd-callout-label{fill:var(--odd-ink);font-size:12.5px;font-weight:600}.odd-sankey-link{fill-opacity:.35;transition:fill-opacity .12s}.odd-sankey-link[data-lit]{fill-opacity:.6}.odd-sankey-link[data-dim]{fill-opacity:.1}.odd-sankey-node{stroke:var(--odd-surface);stroke-width:1px}.odd-sankey-label{fill:var(--odd-ink-2);font-size:12px}.odd-sankey-value{fill:var(--odd-muted);font-variant-numeric:tabular-nums}.odd-cohort th,.odd-cohort td{text-align:right}.odd-cohort-head{padding:6px 10px;display:block}.odd-cohort tbody th{text-align:left;white-space:nowrap;border-bottom:1px solid var(--odd-grid);padding:6px 16px;font-weight:560}.odd-cohort td{padding:6px 10px}.odd-cohort-cell{font-variant-numeric:tabular-nums;border-bottom:2px solid var(--odd-surface);border-right:2px solid var(--odd-surface)}.odd-cohort-cell[data-strong]{color:#fff}.odd-cohort-empty{background:0 0}.odd-upset-stripe{fill:var(--odd-hover)}.odd-upset-total{fill:var(--odd-axis)}.odd-upset-on{fill:var(--odd-ink)}.odd-upset-off{fill:var(--odd-grid)}.odd-upset-link{stroke:var(--odd-ink);stroke-width:2px}.odd-region{stroke:var(--odd-surface);stroke-width:.75px;transition:opacity .12s}.odd-region[data-dim]{opacity:.45}.odd-region:hover{stroke:var(--odd-ink);stroke-width:1.25px}.odd-map-outline{fill:var(--odd-grid);stroke:var(--odd-axis);stroke-width:.75px}.odd-map-note{min-width:0;color:var(--odd-muted);flex:auto;margin-right:auto}.odd-scale:has(.odd-map-note){flex-wrap:wrap;row-gap:4px}.odd-scale:has(.odd-map-note)>span:not(.odd-map-note){white-space:nowrap}.odd-tile-map-label{pointer-events:none;font-size:12px;font-weight:600}.odd-tile-map-value{font-variant-numeric:tabular-nums;opacity:.9;pointer-events:none;font-size:11px}.odd-state{transition:opacity .12s}.odd-state[data-dim]{opacity:.5}.odd-legend .odd-muted{font-variant-numeric:tabular-nums;margin-left:2px}.odd-pivot th.odd-pivot-key{z-index:1;background:var(--odd-surface);color:var(--odd-ink);text-align:left;white-space:nowrap;padding:6px 16px;font-weight:560;position:sticky;left:0}.odd-pivot thead th.odd-pivot-key{z-index:2;color:var(--odd-muted);font-size:12px}.odd-pivot th.odd-pivot-key[data-level="1"]{color:var(--odd-ink-2);font-weight:400;position:static;left:auto}.odd-pivot th.odd-pivot-key[data-repeat]{color:#0000}.odd-pivot tbody th.odd-pivot-key{border-bottom:1px solid var(--odd-grid)}.odd-pivot th:not(.odd-pivot-key),.odd-pivot th:not(.odd-pivot-key) button{text-align:right}.odd-pivot td,.odd-pivot th:not(.odd-pivot-key){min-width:72px}.odd-pivot td{text-align:right}.odd-pivot .odd-pivot-total{box-shadow:inset 1px 0 0 var(--odd-axis);font-weight:600}.odd-pivot tfoot td,.odd-pivot tfoot th{background:var(--odd-surface);border-top:1px solid var(--odd-axis);padding:6px 16px;font-weight:600;position:sticky;bottom:0}
