@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2) format("woff2-variations");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:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2) format("woff2-variations");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}:root{--octave-grid-bg: #f6f7fb;--octave-grid-surface: rgba(255, 255, 255, .9);--octave-grid-surface-strong: rgba(255, 255, 255, .98);--octave-grid-surface-muted: rgba(244, 246, 252, .96);--octave-grid-border: rgba(20, 28, 45, .1);--octave-grid-border-strong: rgba(20, 28, 45, .16);--octave-grid-text: #102036;--octave-grid-text-muted: #5f6b84;--octave-grid-accent: #0e7490;--octave-grid-accent-soft: rgba(14, 116, 144, .12);--octave-grid-focus: rgba(14, 116, 144, .45);--octave-grid-selection: rgba(37, 99, 235, .12);--octave-grid-hover: rgba(15, 23, 42, .035);--octave-grid-shadow: 0 18px 60px rgba(15, 23, 42, .1);--octave-grid-radius-xl: 18px;--octave-grid-radius-lg: 12px;--octave-grid-radius-md: 10px;--octave-grid-radius-sm: 7px;--octave-grid-header-height: 38px;--octave-grid-font: "Figtree Variable", "Figtree", "Avenir Next", "Segoe UI", sans-serif;--octave-grid-font-mono: "SF Mono", "JetBrains Mono", "Fira Code", ui-monospace, Menlo, Consolas, monospace;--octave-grid-pinned-bg: #f7f8fc;--octave-grid-pinned-header-bg: #f2f4f9;--octave-grid-danger: #b91c1c;--octave-grid-danger-soft: rgba(220, 38, 38, .12);--octave-grid-success: #15803d;--octave-grid-success-soft: rgba(22, 163, 74, .12);--octave-grid-z-dropdown: 1000;--octave-grid-z-preview: 1100;--octave-grid-z-modal-backdrop: 1200;--octave-grid-z-modal: 1201;--octave-grid-z-toast: 1300}[data-theme=dark]{--octave-grid-bg: #08111f;--octave-grid-surface: rgba(10, 19, 34, .9);--octave-grid-surface-strong: rgba(9, 17, 31, .98);--octave-grid-surface-muted: rgba(12, 22, 38, .96);--octave-grid-border: rgba(148, 163, 184, .16);--octave-grid-border-strong: rgba(148, 163, 184, .22);--octave-grid-text: #ecf2ff;--octave-grid-text-muted: #9aa7bd;--octave-grid-accent: #38bdf8;--octave-grid-accent-soft: rgba(56, 189, 248, .14);--octave-grid-focus: rgba(56, 189, 248, .45);--octave-grid-selection: rgba(56, 189, 248, .14);--octave-grid-hover: rgba(148, 163, 184, .07);--octave-grid-shadow: 0 24px 70px rgba(2, 6, 23, .42);--octave-grid-pinned-bg: #080f1c;--octave-grid-pinned-header-bg: #060d18;--octave-grid-danger: #f87171;--octave-grid-danger-soft: rgba(220, 38, 38, .18);--octave-grid-success: #4ade80;--octave-grid-success-soft: rgba(22, 163, 74, .18)}.octave-grid{display:flex;flex-direction:column;gap:16px;min-width:0;color:var(--octave-grid-text);font-family:var(--octave-grid-font)}.octave-grid__shell{display:flex;flex-direction:column;min-width:0;overflow:visible;border:1px solid var(--octave-grid-border);border-radius:var(--octave-grid-radius-xl);background:radial-gradient(circle at top left,rgba(14,116,144,.08),transparent 28%),linear-gradient(180deg,var(--octave-grid-surface-strong),var(--octave-grid-surface));box-shadow:var(--octave-grid-shadow)}.octave-grid__shell[data-fullscreen=true]{width:100%;height:100dvh;max-width:none;border-radius:0}.octave-grid[data-fullscreen=true]{width:100%;height:100dvh;background:var(--octave-grid-surface)}.octave-grid__toolbar,.octave-grid__statusbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px}.octave-grid__toolbar{border-bottom:1px solid var(--octave-grid-border);background:linear-gradient(180deg,transparent,rgba(255,255,255,.03))}.octave-grid__toolbar-action{margin-left:auto;flex:0 0 auto}.octave-grid__statusbar-group{display:inline-flex;align-items:center;gap:10px;min-width:0}.octave-grid__formula-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--octave-grid-border);background:color-mix(in srgb,var(--octave-grid-surface-muted) 92%,transparent);font-size:12px}.octave-grid__find-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--octave-grid-border);background:color-mix(in srgb,var(--octave-grid-surface-muted) 88%,transparent);animation:octave-grid-find-in .12s ease-out both}@keyframes octave-grid-find-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.octave-grid__find-fields{display:flex;gap:8px;flex:1 1 auto;min-width:0}.octave-grid__find-field{display:flex;align-items:center;gap:6px;flex:1 1 160px;min-width:0}.octave-grid__find-label{flex:0 0 auto;font-size:11px;font-weight:600;color:var(--octave-grid-text-muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.octave-grid__find-input{flex:1 1 auto;min-width:0;height:32px;padding:0 10px}.octave-grid__find-options{display:flex;align-items:center;gap:10px;flex-shrink:0}.octave-grid__find-check{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--octave-grid-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.octave-grid__find-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.octave-grid__find-count{font-size:11px;font-variant-numeric:tabular-nums;color:var(--octave-grid-text-muted);padding:0 6px}.octave-grid__formula-reference{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;min-width:86px;height:34px;padding:0 9px;border:1px solid var(--octave-grid-border);border-radius:var(--octave-grid-radius-sm);background:var(--octave-grid-surface-strong);color:var(--octave-grid-text);font-variant-numeric:tabular-nums}.octave-grid__formula-reference-label{font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--octave-grid-text-muted)}.octave-grid__formula-reference-value{font-family:var(--octave-grid-font-mono);font-size:12px;font-weight:700}.octave-grid__formula-editor{display:flex;align-items:stretch;flex:1 1 260px;min-width:220px}.octave-grid__formula-label{display:inline-flex;align-items:center;justify-content:center;width:34px;min-height:34px;border:1px solid var(--octave-grid-border);border-right:0;border-radius:var(--octave-grid-radius-sm) 0 0 var(--octave-grid-radius-sm);background:var(--octave-grid-accent-soft);color:var(--octave-grid-accent);font-size:12px;font-weight:800}.octave-grid__formula-zones{display:inline-flex;flex-wrap:wrap;gap:8px;flex:0 1 auto}.octave-grid__formula-dropzone{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:4px 8px;border:1px dashed var(--octave-grid-border-strong);border-radius:10px;background:color-mix(in srgb,var(--octave-grid-surface-muted) 72%,transparent)}.octave-grid__formula-dropzone[data-dragging=true]{border-color:var(--octave-grid-accent);background:color-mix(in srgb,var(--octave-grid-accent-soft) 40%,var(--octave-grid-surface-strong))}.octave-grid__formula-dropzone-label{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--octave-grid-text-muted)}.octave-grid__formula-chip{display:inline-flex;align-items:center;padding:5px 8px;border:1px solid color-mix(in srgb,var(--octave-grid-accent) 24%,transparent);border-radius:999px;background:color-mix(in srgb,var(--octave-grid-accent-soft) 55%,var(--octave-grid-surface-strong));color:var(--octave-grid-text);font:inherit;font-size:12px;cursor:pointer}.octave-grid__formula-input{flex:1 1 auto;min-width:0;min-height:34px;max-height:112px;padding:8px 10px;border:1px solid var(--octave-grid-border);border-radius:0 var(--octave-grid-radius-sm) var(--octave-grid-radius-sm) 0;background:var(--octave-grid-surface-strong);color:var(--octave-grid-text);font:inherit;font-size:12px;line-height:16px;resize:vertical}.octave-grid__formula-actions{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.octave-grid__formula-bar .octave-grid__button{font-size:12px}.octave-grid__formula-input:focus{outline:none;border-color:var(--octave-grid-accent);box-shadow:0 0 0 3px var(--octave-grid-accent-soft)}.octave-grid__statusbar{border-top:1px solid var(--octave-grid-border);color:var(--octave-grid-text-muted);font-size:12px;position:relative;overflow:visible}.octave-grid__surface{position:relative;overflow:auto;min-height:320px;overscroll-behavior:contain;scroll-behavior:auto;scrollbar-gutter:stable both-edges;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent 12%),var(--octave-grid-surface-strong)}@supports (-webkit-touch-callout: none){.octave-grid__surface{scroll-behavior:auto;-webkit-overflow-scrolling:touch}.octave-grid__header,.octave-grid__summary-panel,.octave-ctx{-webkit-backdrop-filter:none;backdrop-filter:none}}.octave-grid__surface[data-scrolled=true] .octave-grid__header{box-shadow:0 8px 30px #0f172a14}.octave-grid__header{position:sticky;top:0;z-index:20;display:flex;height:var(--octave-grid-header-height);min-height:var(--octave-grid-header-height);background:color-mix(in srgb,var(--octave-grid-surface-strong) 82%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in srgb,var(--octave-grid-border-strong) 86%,transparent);box-shadow:inset 0 -1px color-mix(in srgb,var(--octave-grid-border) 76%,transparent)}.octave-grid__header-cell,.octave-grid__cell{display:flex;align-items:center;gap:10px;min-width:0;border-right:1px solid var(--octave-grid-border);box-sizing:border-box}.octave-grid__header-cell{position:absolute;top:0;justify-content:space-between;height:var(--octave-grid-header-height);padding:0 10px;font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--octave-grid-text-muted);text-transform:uppercase;background:inherit}.octave-grid__header-cell[data-dragging=true]{opacity:.42;background:var(--octave-grid-accent-soft);box-shadow:inset 0 0 0 2px var(--octave-grid-accent);cursor:grabbing}.octave-grid__header-cell[data-drag-over=true]{background:var(--octave-grid-accent-soft);box-shadow:-3px 0 0 0 var(--octave-grid-accent);transition:box-shadow 80ms ease,background 80ms ease}.octave-grid__header-button{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;flex:1 1 auto;min-width:0;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit}.octave-grid__pin-button{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:0;border-radius:8px;background:transparent;color:var(--octave-grid-text-muted);cursor:pointer;opacity:0;transition:opacity .12s ease,background .12s ease,color .12s ease}.octave-grid__header-cell:hover .octave-grid__pin-button,.octave-grid__pin-button[data-active=true]{opacity:1}.octave-grid__pin-button:hover,.octave-grid__pin-button[data-active=true]{background:color-mix(in srgb,var(--octave-grid-accent-soft) 55%,var(--octave-grid-surface-strong));color:var(--octave-grid-accent)}.octave-grid__header-icon-group{display:inline-flex;align-items:center;gap:6px;margin-left:8px}.octave-grid__header-icon{flex:0 0 auto;color:var(--octave-grid-text-muted)}.octave-grid__sort-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;border-radius:999px;background:var(--octave-grid-accent-soft);color:var(--octave-grid-accent);font-size:10px;font-weight:700}.octave-grid__header-cell[data-pinned=true],.octave-grid__cell[data-pinned=true]{position:sticky;z-index:16;background:var(--octave-grid-pinned-bg);background-clip:border-box}.octave-grid__header-cell[data-pinned=true]{z-index:17;background:var(--octave-grid-pinned-header-bg);box-shadow:inset -1px 0 0 var(--octave-grid-border),inset 0 -1px color-mix(in srgb,var(--octave-grid-border) 76%,transparent)}.octave-grid__header-actions{position:relative;z-index:2;display:inline-flex;align-items:center;margin-left:auto}.octave-grid__header-cell[data-pinned=right],.octave-grid__cell[data-pinned=right]{position:sticky;z-index:16;left:auto;background:var(--octave-grid-pinned-bg)}.octave-grid__header-cell[data-pinned=right]{z-index:17;background:var(--octave-grid-pinned-header-bg)}.octave-grid__header-cell[data-pinned=right][data-pinned-last=true],.octave-grid__cell[data-pinned=right][data-pinned-last=true]{box-shadow:-10px 0 24px #0f172a14,inset 1px 0 0 var(--octave-grid-border)}.octave-grid__row-resize{position:absolute;left:0;width:100%;bottom:-3px;height:6px;padding:0;border:0;background:transparent;cursor:row-resize;z-index:4}.octave-grid__header-cell[data-pinned-last=true],.octave-grid__cell[data-pinned-last=true]{box-shadow:10px 0 24px #0f172a14,inset -1px 0 0 var(--octave-grid-border),inset 0 -1px color-mix(in srgb,var(--octave-grid-border) 78%,transparent)}.octave-grid__row{position:absolute;top:0;left:0;width:100%;display:flex;border-bottom:1px solid color-mix(in srgb,var(--octave-grid-border) 78%,transparent);will-change:transform}.octave-grid__row[data-zebra=true]{background:#0f172a04}.octave-grid__row:hover{background:var(--octave-grid-hover)}.octave-grid__row[data-selected=true]{background:var(--octave-grid-selection)}.octave-grid__row[data-frozen=true]{background:var(--octave-grid-surface-strong);box-shadow:0 4px 12px #0f172a0f;will-change:auto}.octave-grid__row[data-frozen=true][data-zebra=true]{background:color-mix(in srgb,var(--octave-grid-surface-strong) 96%,rgba(15,23,42,.016))}.octave-grid__row--aggregation{position:sticky;bottom:0;z-index:18;background:color-mix(in srgb,var(--octave-grid-surface-strong) 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid color-mix(in srgb,var(--octave-grid-border-strong) 86%,transparent);box-shadow:inset 0 1px color-mix(in srgb,var(--octave-grid-border) 76%,transparent);font-weight:600;font-variant-numeric:tabular-nums}.octave-grid__row--loading{background:linear-gradient(90deg,#94a3b80f,#94a3b81a,#94a3b80f)}.octave-grid__row-loading{width:100%;height:100%;box-sizing:border-box;overflow:hidden}.octave-grid__row-loading--positioned{position:relative}.octave-grid__row-loading--spinner{display:flex;align-items:center;justify-content:center;gap:10px}.octave-grid__row-loading-label{color:var(--octave-grid-text-muted);font-size:12px;font-weight:600}.octave-grid__cell{position:absolute;inset-block:0;padding:0 10px;font-size:12px;line-height:1.2;color:var(--octave-grid-text);background:transparent}.octave-grid__cell[data-pinned=true],.octave-grid__cell--row-gutter[data-pinned=true]{background:var(--octave-grid-pinned-bg)!important;box-shadow:0 0 0 1px var(--octave-grid-pinned-bg),inset -1px 0 0 var(--octave-grid-border),inset 0 -1px color-mix(in srgb,var(--octave-grid-border) 78%,transparent)}.octave-grid__row:hover .octave-grid__cell[data-pinned=true]{background:color-mix(in srgb,var(--octave-grid-pinned-bg) 85%,var(--octave-grid-hover))!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--octave-grid-pinned-bg) 85%,var(--octave-grid-hover)),inset -1px 0 0 var(--octave-grid-border),inset 0 -1px color-mix(in srgb,var(--octave-grid-border) 78%,transparent)}.octave-grid__row[data-selected=true] .octave-grid__cell[data-pinned=true]{background:color-mix(in srgb,var(--octave-grid-pinned-bg) 72%,var(--octave-grid-selection))!important;box-shadow:0 0 0 1px color-mix(in srgb,var(--octave-grid-pinned-bg) 72%,var(--octave-grid-selection)),inset -1px 0 0 var(--octave-grid-border),inset 0 -1px color-mix(in srgb,var(--octave-grid-border) 78%,transparent)}.octave-grid__cell[data-pinned-last=true]{box-shadow:10px 0 24px #0f172a14,0 0 0 1px var(--octave-grid-pinned-bg),inset -1px 0 0 var(--octave-grid-border),inset 0 -1px color-mix(in srgb,var(--octave-grid-border) 78%,transparent)}.octave-grid__loading-bar{background:linear-gradient(90deg,#94a3b81a,#94a3b842,#94a3b81a);background-size:300% 100%;animation:octave-grid-shimmer 1.4s ease-in-out infinite}.octave-grid__loading-pill{background:color-mix(in srgb,var(--octave-grid-accent-soft) 72%,var(--octave-grid-surface-muted));animation:octave-grid-pulse 1.1s ease-in-out infinite alternate}.octave-grid__spinner{width:18px;height:18px;border:2px solid color-mix(in srgb,var(--octave-grid-border-strong) 80%,transparent);border-top-color:var(--octave-grid-accent);border-radius:999px;animation:octave-grid-spin .85s linear infinite}.octave-grid__cell-content{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.octave-grid__cell-content--wrap{white-space:normal;overflow:visible}.octave-grid__header-cell--row-number,.octave-grid__cell--row-number{justify-content:flex-end;font-variant-numeric:tabular-nums;color:var(--octave-grid-text-muted);font-weight:600;font-size:11px;-webkit-user-select:none;user-select:none;cursor:default}.octave-grid__header-cell--row-gutter,.octave-grid__cell--row-gutter{position:absolute;justify-content:flex-end;padding:0 12px}.octave-grid__header-cell--row-gutter[data-pinned=true],.octave-grid__cell--row-gutter[data-pinned=true]{position:sticky}.octave-grid__row-number-label{padding-right:0;transition:opacity .12s ease}.octave-grid__row-expand-button{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-right:6px;padding:0;border:none;background:transparent;color:var(--octave-grid-text-muted);cursor:pointer;border-radius:4px;opacity:0;transition:opacity .12s ease,background .12s ease,color .12s ease}.octave-grid__row-expand-button:hover{background:var(--octave-grid-accent-soft);color:var(--octave-grid-accent)}.octave-grid__row:hover .octave-grid__row-expand-button{opacity:1}.octave-grid__selection-checkbox{width:16px;height:16px;margin:0;flex:0 0 auto;appearance:none;border:1.5px solid var(--octave-grid-border-strong);background:transparent;border-radius:4px;color:var(--octave-grid-surface-strong);display:inline-grid;place-items:center}.octave-grid__selection-checkbox:after{content:"";width:8px;height:8px;transform:scale(0);transition:transform .12s ease;clip-path:polygon(14% 44%,0 59%,40% 100%,100% 19%,84% 5%,39% 63%);background:currentColor}.octave-grid__selection-checkbox:checked{border-color:var(--octave-grid-accent);background:var(--octave-grid-accent)}.octave-grid__selection-checkbox:checked:after{transform:scale(1)}.octave-grid__selection-checkbox--gutter{position:absolute;right:12px;opacity:0;pointer-events:none;transition:opacity .12s ease}.octave-grid__header-cell--row-gutter[data-selection-enabled=true]:hover .octave-grid__selection-checkbox--gutter,.octave-grid__header-cell--row-gutter[data-all-selected=true] .octave-grid__selection-checkbox--gutter,.octave-grid__cell--row-gutter[data-row-selected=true] .octave-grid__selection-checkbox--gutter,.octave-grid__row:hover .octave-grid__cell--row-gutter[data-selection-enabled=true] .octave-grid__selection-checkbox--gutter{opacity:1;pointer-events:auto}.octave-grid__header-cell--row-gutter[data-selection-enabled=true]:hover .octave-grid__row-number-label,.octave-grid__header-cell--row-gutter[data-all-selected=true] .octave-grid__row-number-label,.octave-grid__cell--row-gutter[data-row-selected=true] .octave-grid__row-number-label,.octave-grid__row:hover .octave-grid__cell--row-gutter[data-selection-enabled=true] .octave-grid__row-number-label{opacity:0}.octave-grid__header-cell--row-gutter[data-has-row-number=false],.octave-grid__cell--row-gutter[data-has-row-number=false]{justify-content:center}.octave-grid__header-cell--row-gutter[data-has-row-number=false] .octave-grid__selection-checkbox--gutter,.octave-grid__cell--row-gutter[data-has-row-number=false] .octave-grid__selection-checkbox--gutter{position:static;opacity:1;pointer-events:auto}.octave-grid__cell[data-focused=true]{box-shadow:inset 0 0 0 2px var(--octave-grid-focus)}.octave-grid__cell[data-in-range=true]{background:color-mix(in srgb,var(--octave-grid-selection) 92%,transparent)}.octave-grid__cell[data-editing=true]{background:color-mix(in srgb,var(--octave-grid-accent-soft) 24%,var(--octave-grid-surface-strong));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--octave-grid-accent) 38%,transparent)}.octave-grid__cell[data-pinned=true][data-editing=true]{background:var(--octave-grid-pinned-bg)!important;box-shadow:0 0 0 1px var(--octave-grid-pinned-bg),inset 0 0 0 1px color-mix(in srgb,var(--octave-grid-accent) 38%,transparent)}.octave-grid__cell[data-formula-cell=true]{font-variant-numeric:tabular-nums}.octave-grid__cell[data-formula-error=true]{color:#b91c1c;background:#dc262614}[data-theme=dark] .octave-grid__cell[data-formula-error=true]{color:#f87171;background:#dc262624}.octave-grid__cell[data-fill-preview=true]{background:color-mix(in srgb,var(--octave-grid-accent-soft) 40%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--octave-grid-accent) 55%,transparent)}.octave-grid__fill-handle{position:absolute;right:-1px;bottom:-1px;width:7px;height:7px;background:var(--octave-grid-accent);border:1px solid var(--octave-grid-surface, #fff);border-radius:1px;cursor:crosshair;z-index:2}.octave-grid__fill-handle:hover{width:9px;height:9px;right:-2px;bottom:-2px}.octave-grid__editor-input{width:100%;height:100%;min-width:0;box-sizing:border-box;border:0;border-radius:4px;padding:0;background:transparent;color:var(--octave-grid-text);outline:none;font:inherit}.octave-grid__editor-input:focus{box-shadow:none}.octave-grid__checkbox-editor{display:inline-flex;align-items:center;gap:8px}.octave-grid__badge{display:inline-flex;align-items:center;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:600;letter-spacing:.01em;white-space:nowrap;background:var(--octave-grid-accent-soft);color:var(--octave-grid-accent)}.octave-grid__multiselect-pills{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}.octave-grid__badge--pill{gap:5px}.octave-grid__attachments{display:inline-flex;align-items:center;gap:4px}.octave-grid__attachment-thumb{width:22px;height:22px;object-fit:cover;border-radius:3px}.octave-grid__comment-mark{position:absolute;top:0;right:0;border-top:7px solid var(--octave-grid-accent);border-left:7px solid transparent}.octave-grid__comments-popover{position:absolute;right:12px;bottom:12px;z-index:30;width:min(320px,calc(100% - 24px));background:var(--octave-grid-surface, #fff);border:1px solid var(--octave-grid-border);border-radius:8px;box-shadow:0 8px 24px #0000001f}.octave-grid__comments{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-top:1px solid var(--octave-grid-border)}.octave-grid__comments-title{font-size:12px;font-weight:650}.octave-grid__comments-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.octave-grid__comments-author{margin-right:6px;color:var(--octave-grid-text-muted)}.octave-grid__comments-empty{color:var(--octave-grid-text-muted)}.octave-grid__comments-form{display:flex;gap:6px}.octave-grid__comments-form input{flex:1;min-width:0}.octave-grid__badge-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.octave-grid__badge[data-tone=neutral]{background:color-mix(in srgb,var(--octave-grid-text) 8%,transparent);color:var(--octave-grid-text-muted)}.octave-grid__badge[data-tone=success]{background:#16a34a1f;color:#15803d}.octave-grid__badge[data-tone=warning]{background:#eab30824;color:#a16207}.octave-grid__badge[data-tone=danger]{background:#dc26261f;color:#b91c1c}.octave-grid__badge[data-tone=info]{background:var(--octave-grid-accent-soft);color:var(--octave-grid-accent)}[data-theme=dark] .octave-grid__badge[data-tone=success]{background:#16a34a2e;color:#4ade80}[data-theme=dark] .octave-grid__badge[data-tone=warning]{background:#eab3082e;color:#fde047}[data-theme=dark] .octave-grid__badge[data-tone=danger]{background:#dc26262e;color:#f87171}[data-theme=dark] .octave-grid__badge[data-tone=neutral]{background:color-mix(in srgb,var(--octave-grid-text) 10%,transparent);color:var(--octave-grid-text-muted)}.octave-grid__avatar{display:inline-flex;align-items:center;gap:10px}.octave-grid__avatar-dot{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:linear-gradient(135deg,#0e749029,#0f172a1f);font-size:12px;font-weight:700}.octave-grid__menu-row,.octave-grid__controls{display:inline-flex;align-items:center;gap:10px}.octave-grid__controls{flex-wrap:wrap;justify-content:flex-end}.octave-grid__menu-panel,.octave-grid__popover{position:absolute;top:calc(100% + 8px);right:0;z-index:40;display:grid;gap:10px;min-width:220px;padding:12px;border:1px solid var(--octave-grid-border);border-radius:16px;background:var(--octave-grid-surface-strong);box-shadow:var(--octave-grid-shadow)}.octave-grid__menu-panel{min-width:240px}.octave-grid__filter-anchor{position:relative;display:inline-flex}.octave-grid__filter-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:50;display:flex;flex-direction:column;gap:8px;min-width:220px;padding:12px;border:1px solid var(--octave-grid-border);border-radius:var(--octave-grid-radius-md);background:var(--octave-grid-surface-strong);box-shadow:var(--octave-grid-shadow);animation:octave-ctx-in .12s cubic-bezier(.16,1,.3,1) both}.octave-grid__filter-panel__label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--octave-grid-text-muted);-webkit-user-select:none;user-select:none}.octave-grid__filter-panel__actions{display:flex;gap:6px;margin-top:4px}.octave-grid__filter-panel__clear{flex:1 1 auto;font-size:12px;background:transparent;border-color:var(--octave-grid-border);color:var(--octave-grid-text-muted)}.octave-grid__filter-panel__apply{flex:1 1 auto;font-size:12px;background:var(--octave-grid-accent);border-color:var(--octave-grid-accent);color:#fff;font-weight:600}.octave-grid__filter-panel__apply:hover{opacity:.88}.octave-grid__group-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.octave-grid__button,.octave-grid__menu,.octave-grid__input{border:1px solid var(--octave-grid-border);border-radius:10px;background:var(--octave-grid-surface-strong);color:var(--octave-grid-text);font:inherit}.octave-grid__button,.octave-grid__menu{padding:7px 10px;cursor:pointer}.octave-grid__icon-button{position:relative;display:inline-flex;align-items:center;gap:6px;padding:7px 8px;border:1px solid var(--octave-grid-border);border-radius:10px;background:var(--octave-grid-surface-strong);cursor:pointer;list-style:none}.octave-grid__icon-button--filter{gap:0;padding:6px;border-color:transparent;background:color-mix(in srgb,var(--octave-grid-surface-muted) 72%,transparent);color:var(--octave-grid-text-muted)}.octave-grid__icon-button--filter:hover,.octave-grid__icon-button--filter:focus-visible,.octave-grid__icon-button--filter[data-active=true]{background:color-mix(in srgb,var(--octave-grid-accent-soft) 55%,var(--octave-grid-surface-strong))}.octave-grid__icon-button--filter:focus-visible{outline:none;box-shadow:0 0 0 2px var(--octave-grid-focus)}.octave-grid__icon-button--filter .octave-grid__header-icon{color:currentColor}.octave-grid__icon-button::-webkit-details-marker{display:none}.octave-grid__indicator-dot{position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:999px;background:var(--octave-grid-accent)}.octave-grid__input{min-width:160px;padding:7px 10px}.octave-grid__placeholder{display:grid;place-items:center;gap:12px;min-height:280px;padding:32px;color:var(--octave-grid-text-muted);text-align:center}.octave-grid__status-selector{position:relative}.octave-grid__status-selector>summary{list-style:none}.octave-grid__status-selector>summary::-webkit-details-marker{display:none}.octave-grid__status-selector-trigger{display:inline-flex;align-items:center;gap:8px;min-width:0;padding:6px 10px;border:1px solid var(--octave-grid-border);border-radius:10px;background:color-mix(in srgb,var(--octave-grid-surface-muted) 60%,var(--octave-grid-surface-strong));color:var(--octave-grid-text);cursor:pointer;-webkit-user-select:none;user-select:none}.octave-grid__status-selector-label{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.octave-grid__status-selector-value{color:var(--octave-grid-text-muted);font-size:11px;white-space:nowrap}.octave-grid__status-selector-icon{color:var(--octave-grid-text-muted);transition:transform .12s ease}.octave-grid__status-selector[open] .octave-grid__status-selector-icon{transform:rotate(180deg)}.octave-grid__status-selector-panel{left:0;right:auto;min-width:220px;top:auto;bottom:calc(100% + 8px)}.octave-grid__status-selector-title{color:var(--octave-grid-text)}.octave-grid__status-selector-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;color:var(--octave-grid-text-muted);font-size:12px}.octave-grid__status-selector-row strong{color:var(--octave-grid-text);font-weight:600}.octave-ctx{min-width:200px;max-width:280px;padding:4px;border:1px solid var(--octave-grid-border);border-radius:var(--octave-grid-radius-md);background:var(--octave-grid-surface-strong);contain:layout paint;box-shadow:0 2px 8px #00000014,0 10px 24px #0000001a,0 0 0 1px #0000000a;font-family:var(--octave-grid-font);font-size:13px;color:var(--octave-grid-text);opacity:0;transform:scale(.96) translateY(-4px);transform-origin:top left}.octave-ctx--visible{animation:octave-ctx-in .13s cubic-bezier(.16,1,.3,1) both}@keyframes octave-ctx-in{0%{opacity:0;transform:scale(.95) translateY(-6px)}to{opacity:1;transform:scale(1) translateY(0)}}[data-theme=dark] .octave-ctx{box-shadow:0 2px 8px #00000047,0 10px 24px #0000006b,0 0 0 1px #ffffff0f}.octave-ctx__separator{height:1px;margin:4px 0;background:var(--octave-grid-border)}.octave-ctx__group{display:flex;flex-direction:column}.octave-ctx__group-label{padding:6px 10px 2px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--octave-grid-text-muted);-webkit-user-select:none;user-select:none}.octave-ctx__item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:0;border-radius:6px;background:transparent;color:var(--octave-grid-text);font:inherit;font-size:13px;text-align:left;cursor:pointer;transition:background 80ms ease;outline:none;-webkit-user-select:none;user-select:none}.octave-ctx__item:hover:not(:disabled),.octave-ctx__item:focus-visible:not(:disabled){background:var(--octave-grid-hover)}.octave-ctx__item:focus-visible{box-shadow:inset 0 0 0 2px var(--octave-grid-focus)}.octave-ctx__item:disabled{opacity:.4;cursor:not-allowed}.octave-ctx__item[data-destructive]{color:#dc2626}[data-theme=dark] .octave-ctx__item[data-destructive]{color:#f87171}.octave-ctx__item[data-destructive]:hover:not(:disabled){background:#dc262614}.octave-ctx__item-icon{flex:0 0 16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;color:var(--octave-grid-text-muted)}.octave-ctx__item-label{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.octave-ctx__item-shortcut{flex:0 0 auto;margin-left:auto;font-size:11px;color:var(--octave-grid-text-muted);font-variant-numeric:tabular-nums}.octave-grid-workbook{display:flex;flex-direction:column;gap:12px}.octave-grid-workbook__surface{min-width:0}.octave-grid__dock{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:12px;align-items:start;padding:12px;border:1px solid var(--octave-grid-border);border-radius:var(--octave-grid-radius-xl);background:radial-gradient(circle at bottom left,rgba(14,116,144,.1),transparent 28%),linear-gradient(180deg,var(--octave-grid-surface-strong),var(--octave-grid-surface-muted));box-shadow:var(--octave-grid-shadow)}.octave-grid__dock[data-drop-active=true]{border-color:var(--octave-grid-accent);box-shadow:0 0 0 3px var(--octave-grid-accent-soft),var(--octave-grid-shadow)}.octave-grid__dock-metrics{display:flex;flex-wrap:wrap;gap:10px;align-items:center;color:var(--octave-grid-text-muted);font-size:12px}.octave-grid__dock-dropzone{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;padding:12px 14px;border:1px dashed color-mix(in srgb,var(--octave-grid-accent) 36%,var(--octave-grid-border));border-radius:16px;background:color-mix(in srgb,var(--octave-grid-accent-soft) 55%,var(--octave-grid-surface-strong))}.octave-grid__dock-dropzone strong,.octave-grid__sheet-button span{display:block;color:var(--octave-grid-text)}.octave-grid__dock-dropzone span,.octave-grid__sheet-button small{display:block;color:var(--octave-grid-text-muted);font-size:12px}.octave-grid__sheet-strip{display:flex;gap:10px;overflow-x:auto;padding-top:4px}.octave-grid__sheet-tab{display:flex;align-items:center;gap:8px;padding:4px;border:1px solid transparent;border-radius:14px;background:transparent}.octave-grid__sheet-tab[data-active=true]{border-color:var(--octave-grid-border-strong);background:color-mix(in srgb,var(--octave-grid-surface-strong) 92%,transparent)}.octave-grid__sheet-tab--add{align-items:center;padding:10px 14px;background:color-mix(in srgb,var(--octave-grid-surface-muted) 80%,transparent);color:var(--octave-grid-text-muted);cursor:pointer}.octave-grid__sheet-add-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:var(--octave-grid-accent-soft);color:var(--octave-grid-accent);font-size:16px;font-weight:700;line-height:1}.octave-grid__sheet-add-label{font-size:12px;font-weight:600}.octave-grid__sheet-button{display:inline-flex;flex-direction:column;min-width:160px;padding:10px 12px;border:0;border-radius:12px;background:transparent;text-align:left;cursor:pointer}.octave-grid__sheet-actions{display:flex;gap:6px}.octave-grid__sheet-actions .octave-grid__icon-button{padding:6px 8px;font-size:11px}.octave-grid__sheet-input{min-width:160px}.octave-grid__group-header{position:absolute;top:0;left:0;will-change:transform;display:inline-flex;align-items:center;gap:10px;border:0;border-bottom:1px solid color-mix(in srgb,var(--octave-grid-border) 84%,transparent);background:color-mix(in srgb,var(--octave-grid-accent-soft) 65%,var(--octave-grid-surface-strong));color:var(--octave-grid-text);font:inherit;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.octave-grid__group-count{margin-left:auto;color:var(--octave-grid-text-muted);font-size:11px}.octave-grid__skeleton-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;width:min(680px,100%)}.octave-grid__skeleton-cell{height:16px;border-radius:999px;background:linear-gradient(90deg,#94a3b81f,#94a3b84d,#94a3b81f);background-size:200% 100%;animation:octave-grid-shimmer 1.25s linear infinite}.octave-grid__resize-handle{position:absolute;top:0;bottom:0;width:14px;cursor:col-resize;z-index:8;touch-action:none}.octave-grid__resize-handle:after{content:"";position:absolute;top:6px;bottom:6px;left:50%;width:2px;border-radius:999px;transform:translate(-50%);background:transparent;transition:background 80ms ease,box-shadow 80ms ease}.octave-grid__resize-handle--left{left:-7px}.octave-grid__resize-handle--right{right:-7px}.octave-grid__resize-handle:hover:after,.octave-grid__resize-handle:active:after{background:#0e74902e;box-shadow:0 0 0 1px #0e74901f}.octave-grid__link{color:var(--octave-grid-accent);text-decoration:none}.octave-grid__link:hover{text-decoration:underline}.octave-grid__rating{display:inline-flex;gap:2px;color:#94a3b8b3}.octave-grid__rating [data-filled=true]{color:#f59e0b}.octave-grid__progress{display:inline-flex;align-items:center;gap:8px;width:100%}.octave-grid__progress-track{position:relative;flex:1 1 auto;min-width:68px;height:8px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--octave-grid-border) 85%,transparent)}.octave-grid__progress-fill{position:absolute;inset:0 auto 0 0;border-radius:inherit;background:linear-gradient(90deg,var(--octave-grid-accent),color-mix(in srgb,var(--octave-grid-accent) 70%,white))}.octave-grid__progress-label{flex:0 0 auto;color:var(--octave-grid-text-muted);font-size:11px;font-weight:600}.octave-grid__json{display:inline-flex;max-width:100%;overflow:hidden;padding:2px 6px;border:1px solid var(--octave-grid-border);border-radius:8px;background:var(--octave-grid-surface-muted);color:var(--octave-grid-text-muted);font-size:11px;white-space:nowrap;text-overflow:ellipsis}@keyframes octave-grid-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes octave-grid-pulse{0%{opacity:.45;transform:scaleX(.98)}to{opacity:.92;transform:scaleX(1)}}@keyframes octave-grid-spin{to{transform:rotate(360deg)}}.octave-link-preview{position:fixed;z-index:9998;width:280px;border:1px solid var(--octave-grid-border);border-radius:var(--octave-grid-radius-lg);background:var(--octave-grid-surface-strong);box-shadow:var(--octave-grid-shadow);font-family:var(--octave-grid-font);font-size:12px;color:var(--octave-grid-text);overflow:hidden;opacity:0;transform:translateY(4px) scale(.98);transition:opacity .13s cubic-bezier(.16,1,.3,1),transform .13s cubic-bezier(.16,1,.3,1);pointer-events:auto}.octave-link-preview--visible{opacity:1;transform:translateY(0) scale(1)}.octave-link-preview__image-wrap{width:100%;height:110px;overflow:hidden;background:var(--octave-grid-surface-muted)}.octave-link-preview__image{width:100%;height:100%;object-fit:cover}.octave-link-preview__body{display:flex;flex-direction:column;gap:4px;padding:10px 12px}.octave-link-preview__meta{display:flex;align-items:center;gap:5px}.octave-link-preview__favicon{flex:0 0 14px;width:14px;height:14px;border-radius:3px;object-fit:cover}.octave-link-preview__host{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--octave-grid-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.octave-link-preview__title{margin:0;font-size:12px;font-weight:600;line-height:1.35;color:var(--octave-grid-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.octave-link-preview__desc{margin:0;font-size:11px;line-height:1.45;color:var(--octave-grid-text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.octave-link-preview__open{display:inline-block;margin-top:2px;font-size:11px;font-weight:600;color:var(--octave-grid-accent);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.octave-link-preview__open:hover{text-decoration:underline}.octave-link-preview__error{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px}.octave-link-preview__error-host{font-size:12px;color:var(--octave-grid-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.octave-link-preview__skeleton{display:flex;gap:10px;padding:10px 12px;align-items:flex-start}.octave-link-preview__sk-image{flex:0 0 56px;height:56px;border-radius:8px;background:linear-gradient(90deg,#94a3b81a,#94a3b838,#94a3b81a);background-size:300% 100%;animation:octave-grid-shimmer 1.4s ease-in-out infinite}.octave-link-preview__sk-body{flex:1 1 auto;display:flex;flex-direction:column;gap:6px;min-width:0}.octave-link-preview__sk-line{border-radius:4px;background:linear-gradient(90deg,#94a3b81a,#94a3b838,#94a3b81a);background-size:300% 100%;animation:octave-grid-shimmer 1.4s ease-in-out infinite}.octave-link-preview__sk-line--title{height:12px;width:80%;animation-delay:0s}.octave-link-preview__sk-line--desc{height:10px;width:95%;animation-delay:.1s}.octave-link-preview__sk-line--url{height:9px;width:55%;animation-delay:.2s}.octave-dialog__backdrop{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px;background:#0000;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);transition:background .18s ease,backdrop-filter .18s ease}.octave-dialog__backdrop--visible{background:#0f172a7a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.octave-dialog{position:relative;width:100%;max-width:400px;padding:20px;border:1px solid var(--octave-grid-border);border-radius:12px;background:var(--octave-grid-surface-strong);box-shadow:0 24px 70px #0f172a3d,0 0 0 1px #0f172a0a;font-family:var(--octave-grid-font);color:var(--octave-grid-text);opacity:0;transform:scale(.96) translateY(8px);transition:opacity .18s cubic-bezier(.16,1,.3,1),transform .18s cubic-bezier(.16,1,.3,1)}.octave-dialog--visible{opacity:1;transform:scale(1) translateY(0)}.octave-dialog__header{margin-bottom:6px}.octave-dialog__title{margin:0;font-size:14px;font-weight:650;line-height:1.3;color:var(--octave-grid-text)}.octave-dialog__description{margin:0 0 14px;font-size:13px;line-height:1.5;color:var(--octave-grid-text-muted)}.octave-dialog__fields{display:flex;flex-direction:column;gap:10px;margin-top:14px}.octave-dialog__field{display:flex;flex-direction:column;gap:5px}.octave-dialog__label{font-size:12px;font-weight:600;color:var(--octave-grid-text);-webkit-user-select:none;user-select:none}.octave-dialog__required{color:#dc2626}.octave-dialog__input{height:36px;padding:0 10px;border:1px solid var(--octave-grid-border);border-radius:6px;background:var(--octave-grid-surface-strong);color:var(--octave-grid-text);font:inherit;font-size:13px;outline:none;transition:box-shadow .1s ease,border-color .1s ease}.octave-dialog__input:focus{border-color:var(--octave-grid-accent);box-shadow:0 0 0 2px var(--octave-grid-focus)}.octave-dialog__input--error{border-color:#dc2626}.octave-dialog__input--error:focus{box-shadow:0 0 0 3px #dc262633}.octave-dialog__field-error{font-size:11px;color:#dc2626}.octave-dialog__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.octave-dialog__btn{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 14px;border:1px solid transparent;border-radius:6px;font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .1s ease,box-shadow .1s ease,opacity .1s ease;outline:none;-webkit-user-select:none;user-select:none}.octave-dialog__btn:focus-visible{box-shadow:0 0 0 2px var(--octave-grid-focus)}.octave-dialog__btn--primary{background:var(--octave-grid-accent);color:#fff;border-color:var(--octave-grid-accent)}.octave-dialog__btn--primary:hover{opacity:.88}.octave-dialog__btn--secondary{background:var(--octave-grid-surface-muted);color:var(--octave-grid-text);border-color:var(--octave-grid-border-strong)}.octave-dialog__btn--secondary:hover{background:var(--octave-grid-hover)}.octave-grid-record{position:fixed;inset:0;z-index:9999;display:flex;pointer-events:none}.octave-grid-record--open{pointer-events:auto}.octave-grid-record__backdrop{position:absolute;inset:0;background:#0f172a66;opacity:0;transition:opacity .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.octave-grid-record--open .octave-grid-record__backdrop{opacity:1}.octave-grid-record__content{position:relative;display:flex;flex-direction:column;background:var(--octave-grid-surface);box-shadow:0 24px 48px #0f172a29;transition:transform .3s cubic-bezier(.16,1,.3,1),opacity .3s ease;overflow:hidden}.octave-grid-record--sheet{justify-content:flex-end}.octave-grid-record--sheet .octave-grid-record__content{width:400px;height:100%;border-left:1px solid var(--octave-grid-border);transform:translate(100%)}.octave-grid-record--open.octave-grid-record--sheet .octave-grid-record__content{transform:translate(0)}.octave-grid-record--drawer{align-items:flex-end}.octave-grid-record--drawer .octave-grid-record__content{width:100%;height:60vh;border-top:1px solid var(--octave-grid-border);border-radius:16px 16px 0 0;transform:translateY(100%)}.octave-grid-record--open.octave-grid-record--drawer .octave-grid-record__content{transform:translateY(0)}.octave-grid-record--full-screen .octave-grid-record__content{width:100%;height:100%;opacity:0;transform:scale(.98)}.octave-grid-record--open.octave-grid-record--full-screen .octave-grid-record__content{opacity:1;transform:scale(1)}.octave-grid-record--compact{align-items:center;justify-content:center;padding:24px}.octave-grid-record--compact .octave-grid-record__content{width:100%;max-width:600px;max-height:80vh;border-radius:12px;border:1px solid var(--octave-grid-border);opacity:0;transform:translateY(20px) scale(.98)}.octave-grid-record--open.octave-grid-record--compact .octave-grid-record__content{opacity:1;transform:translateY(0) scale(1)}.octave-grid-record__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--octave-grid-border);background:var(--octave-grid-surface-strong)}.octave-grid-record__title{font-size:16px;font-weight:600;color:var(--octave-grid-text);margin:0}.octave-grid-record__close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:none;background:transparent;color:var(--octave-grid-text-muted);cursor:pointer;font-size:16px}.octave-grid-record__close:hover{background:var(--octave-grid-hover);color:var(--octave-grid-text)}.octave-grid-record__body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.octave-grid-record__field{display:flex;flex-direction:column;gap:6px}.octave-grid-record__label{font-size:12px;font-weight:600;color:var(--octave-grid-text-muted);text-transform:uppercase;letter-spacing:.04em}.octave-grid-record__input{width:100%;padding:8px 12px;border-radius:6px;border:1px solid var(--octave-grid-border);background:var(--octave-grid-surface);color:var(--octave-grid-text);font-size:14px;box-sizing:border-box}.octave-grid-record__input:focus{outline:none;border-color:var(--octave-grid-accent);box-shadow:0 0 0 3px var(--octave-grid-accent-soft)}.octave-dialog__btn--danger{background:#dc2626;color:#fff;border-color:#dc2626}.octave-dialog__btn--danger:hover{opacity:.88}@media(max-width:860px){.octave-grid__toolbar,.octave-grid__statusbar{flex-direction:column;align-items:stretch}.octave-grid__controls{justify-content:flex-start}.octave-grid__dock{grid-template-columns:1fr}}.octave-grid__portal-root{font-family:var(--octave-grid-font);color:var(--octave-grid-text)}.octave-grid__portal-root *{box-sizing:border-box}.octave-preview-card{width:380px;max-width:calc(100vw - 16px);border-radius:var(--octave-grid-radius-lg);border:1px solid var(--octave-grid-border-strong);background:var(--octave-grid-surface-strong);box-shadow:0 12px 40px #0f172a29,0 2px 8px #0f172a14;padding:14px 16px;opacity:0;transform:scale(.97);transform-origin:top left;transition:opacity .14s ease-out,transform .14s ease-out}.octave-preview-card--visible{opacity:1;transform:scale(1)}.octave-preview-card__title{font-size:15px;font-weight:700;color:var(--octave-grid-text);margin-bottom:10px;word-break:break-word}.octave-preview-card__title-empty{color:var(--octave-grid-text-muted);font-weight:500;font-style:italic}.octave-preview-card__fields{display:flex;flex-direction:column;gap:8px;max-height:280px;overflow-y:auto}.octave-preview-card__field{display:flex;flex-direction:column;gap:2px}.octave-preview-card__field-label{font-size:10.5px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--octave-grid-text-muted)}.octave-preview-card__field-value{font-size:13px;color:var(--octave-grid-text);word-break:break-word}.octave-preview-card__empty{font-size:12px;color:var(--octave-grid-text-muted);font-style:italic}.octave-preview-card__open{margin-top:12px;width:100%;height:32px;border-radius:var(--octave-grid-radius-sm);border:1px solid var(--octave-grid-border-strong);background:var(--octave-grid-accent-soft);color:var(--octave-grid-accent);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.octave-preview-card__open:hover{background:color-mix(in srgb,var(--octave-grid-accent-soft) 70%,var(--octave-grid-accent) 15%)}.octave-preview-card__open:focus-visible{outline:none;box-shadow:0 0 0 3px var(--octave-grid-focus)}.octave-record-modal__backdrop{position:fixed;inset:0;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;background:#080c166b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;transition:opacity .18s ease-out;overflow-y:auto}.octave-record-modal__backdrop--visible{opacity:1}@media(prefers-reduced-motion:reduce){.octave-record-modal__backdrop{transition:none}}.octave-record-modal{width:700px;max-width:100%;max-height:85vh;display:flex;flex-direction:column;border-radius:var(--octave-grid-radius-lg);border:1px solid var(--octave-grid-border-strong);background:var(--octave-grid-surface-strong);box-shadow:0 30px 90px #0f172a47,0 4px 16px #0f172a1f;opacity:0;transform:translateY(10px) scale(.98);transition:opacity .18s ease-out,transform .18s ease-out}.octave-record-modal--visible{opacity:1;transform:translateY(0) scale(1)}@media(prefers-reduced-motion:reduce){.octave-record-modal{transition:none;transform:none}}.octave-record-modal__header{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--octave-grid-border);background:var(--octave-grid-surface-strong);border-radius:var(--octave-grid-radius-lg) var(--octave-grid-radius-lg) 0 0}.octave-record-modal__nav{display:flex;align-items:center;gap:6px}.octave-record-modal__nav-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--octave-grid-radius-sm);border:1px solid var(--octave-grid-border);background:var(--octave-grid-surface);color:var(--octave-grid-text-muted);cursor:pointer;font-size:13px}.octave-record-modal__nav-btn:hover:not(:disabled){background:var(--octave-grid-hover);color:var(--octave-grid-text)}.octave-record-modal__nav-btn:disabled{opacity:.35;cursor:not-allowed}.octave-record-modal__position{margin-left:4px;font-size:12px;color:var(--octave-grid-text-muted)}.octave-record-modal__close{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:var(--octave-grid-radius-sm);border:none;background:transparent;color:var(--octave-grid-text-muted);cursor:pointer;font-size:13px}.octave-record-modal__close:hover{background:var(--octave-grid-hover);color:var(--octave-grid-text)}.octave-record-modal__title-row{padding:16px 20px 8px}.octave-record-modal__title-input{width:100%;border:none;background:transparent;font-size:22px;font-weight:700;color:var(--octave-grid-text);font-family:inherit;padding:4px 0;border-radius:var(--octave-grid-radius-sm)}.octave-record-modal__title-input:focus{outline:none;background:var(--octave-grid-hover);padding-left:6px}.octave-record-modal__title-input:disabled{color:var(--octave-grid-text-muted)}.octave-record-modal__body{flex:1 1 auto;overflow-y:auto;padding:8px 20px 24px;display:flex;flex-direction:column}.octave-record-modal__field{display:grid;grid-template-columns:180px 1fr;gap:12px;align-items:start;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--octave-grid-border) 70%,transparent)}.octave-record-modal__field-label{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--octave-grid-text-muted);padding-top:4px}.octave-record-modal__field-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;background:var(--octave-grid-accent-soft);color:var(--octave-grid-accent);font-size:10px;font-weight:700;flex-shrink:0}.octave-record-modal__fx-badge{display:inline-flex;align-items:center;justify-content:center;padding:1px 5px;border-radius:4px;background:var(--octave-grid-accent-soft);color:var(--octave-grid-accent);font-size:9.5px;font-weight:700;font-style:italic;cursor:default}.octave-record-modal__field-value{font-size:13.5px;color:var(--octave-grid-text);min-height:26px;display:flex;align-items:center;padding:4px 8px;border-radius:var(--octave-grid-radius-sm);word-break:break-word}.octave-record-modal__field-value--editable{cursor:text}.octave-record-modal__field-value--editable:hover{background:var(--octave-grid-hover)}.octave-record-modal__field-value--editable:focus-visible{outline:none;box-shadow:0 0 0 2px var(--octave-grid-focus)}.octave-record-modal__field[data-editing=true] .octave-record-modal__field-value{padding:0;background:transparent}.octave-record-modal__field-readonly-hint{margin-left:6px;font-size:11px;opacity:.5}.octave-record-modal__extra{margin-top:16px;padding-top:16px;border-top:1px solid var(--octave-grid-border)}.octave-select{position:relative;width:100%}.octave-select__trigger{display:flex;align-items:center;justify-content:space-between;gap:6px;width:100%;height:34px;padding:0 10px;border-radius:var(--octave-grid-radius-sm);border:1px solid var(--octave-grid-border-strong);background:var(--octave-grid-surface-strong);color:var(--octave-grid-text);font:inherit;font-size:13px;cursor:pointer;text-align:left}.octave-select[data-size=sm] .octave-select__trigger{height:28px;font-size:12px;padding:0 8px}.octave-select__trigger:hover:not(:disabled){border-color:var(--octave-grid-accent)}.octave-select__trigger:focus-visible{outline:none;border-color:var(--octave-grid-accent);box-shadow:0 0 0 3px var(--octave-grid-focus)}.octave-select__trigger:disabled{opacity:.5;cursor:not-allowed}.octave-select__placeholder{color:var(--octave-grid-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.octave-select__value{display:inline-flex;align-items:center;gap:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.octave-select__chevron{flex-shrink:0;color:var(--octave-grid-text-muted)}.octave-select__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.octave-select__pills{display:flex;align-items:center;gap:4px;overflow:hidden;flex-wrap:nowrap}.octave-select__pill{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;background:var(--octave-grid-accent-soft);color:var(--octave-grid-accent);font-size:11.5px;font-weight:600;white-space:nowrap;flex-shrink:0}.octave-select__pill--overflow{background:var(--octave-grid-hover);color:var(--octave-grid-text-muted)}.octave-select__popover{position:fixed;min-width:180px;max-height:280px;display:flex;flex-direction:column;border-radius:var(--octave-grid-radius-md);border:1px solid var(--octave-grid-border-strong);background:var(--octave-grid-surface-strong);box-shadow:0 12px 32px #0f172a29,0 2px 8px #0f172a14;opacity:0;transform:scale(.98) translateY(-2px);transform-origin:top;transition:opacity .13s ease-out,transform .13s ease-out;overflow:hidden}.octave-select__popover--visible{opacity:1;transform:scale(1) translateY(0)}.octave-select__search{flex-shrink:0;height:32px;padding:0 10px;border:none;border-bottom:1px solid var(--octave-grid-border);background:transparent;color:var(--octave-grid-text);font:inherit;font-size:12.5px}.octave-select__search:focus{outline:none}.octave-select__options{overflow-y:auto;padding:4px}.octave-select__empty{padding:10px 8px;font-size:12.5px;color:var(--octave-grid-text-muted);text-align:center}.octave-select__option{display:flex;align-items:center;gap:7px;padding:6px 8px;border-radius:var(--octave-grid-radius-sm);font-size:13px;color:var(--octave-grid-text);cursor:pointer}.octave-select__option[data-highlighted=true]{background:var(--octave-grid-accent-soft)}.octave-select__option-check{display:inline-flex;align-items:center;justify-content:center;width:14px;flex-shrink:0;color:var(--octave-grid-accent);font-size:11px}.octave-select__option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.octave-select__option--create{color:var(--octave-grid-accent);font-style:italic}:root{color:#0a0f1f;background:#f6f7fb;font-family:Figtree Variable,Figtree,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:#0866ff;text-decoration:none}a:hover{text-decoration:underline}.site-header{display:flex;align-items:center;gap:28px;padding:16px 28px;background:#fff;border-bottom:1px solid #e6e8f0;position:sticky;top:0;z-index:20}.site-header img{height:28px;width:auto}.site-header nav{display:flex;gap:18px;font-size:14px;font-weight:600}.site-header nav a{color:#0a0f1f}.story{height:420vh;position:relative}.story-sticky{position:sticky;top:61px;height:calc(100vh - 61px);display:grid;place-items:center;overflow:hidden;background:#070b16;color:#fff}.story-sticky canvas{width:100%;height:100%;display:block}.story-copy{position:absolute;left:8vw;bottom:10vh;max-width:460px;pointer-events:none}.story-copy h1,.story-copy h2{margin:0 0 8px;font-size:40px;letter-spacing:-.03em}.story-copy p{margin:0;color:#c9d0e6;font-size:18px}.static-frames{display:grid;gap:16px;padding:28px}.static-frames article{background:#fff;border:1px solid #e6e8f0;border-radius:16px;padding:24px}.static-frames h2{margin:0 0 8px}.live-sheet,.page{padding:40px 28px 80px;max-width:1100px;margin:0 auto}.live-sheet h2{margin:0 0 8px;font-size:32px;letter-spacing:-.03em}.docs-layout{display:grid;grid-template-columns:220px 1fr;gap:32px;padding:28px}.docs-nav{display:flex;flex-direction:column;gap:8px;position:sticky;top:88px;align-self:start}.docs-nav a{color:#0a0f1f;font-size:14px}.docs-article h1{margin:0 0 8px;letter-spacing:-.03em}.docs-article p{max-width:68ch}.prop{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;background:#eef2ff;padding:2px 6px;border-radius:6px}pre{background:#0a0f1f;color:#e8edff;padding:16px;border-radius:12px;overflow:auto;font-size:13px}.example{margin-top:20px;background:#fff;border:1px solid #e6e8f0;border-radius:12px;overflow:hidden}.controls{display:flex;flex-wrap:wrap;gap:12px 18px;margin:16px 0 20px;font-size:14px}.controls label{display:flex;align-items:center;gap:6px}.pattern{margin-bottom:48px}.pattern h2{margin-bottom:8px}@media(max-width:800px){.docs-layout{grid-template-columns:1fr}.docs-nav{position:static;flex-direction:row;flex-wrap:wrap}.story-copy h1,.story-copy h2{font-size:28px}}
