:root{--canvas: #0a0b0e;--panel: #131419;--panel-2: #181a20;--border: rgba(255, 255, 255, .07);--border-strong: rgba(255, 255, 255, .14);--text: #f5f5f7;--body: rgba(245, 245, 247, .92);--muted-strong: rgba(235, 235, 245, .78);--muted: rgba(235, 235, 245, .6);--accent: #e3a533;--accent-soft: rgba(227, 165, 51, .15);--on-accent: #0a0b0e;--pos: #22c55e;--neg: #f87171;--warn: #fbbf24;--code-builtin: #8ab4c9;--code-string: #c9a38a;--radius: 14px;--radius-sm: 8px;--radius-pill: 100px;--ease: cubic-bezier(.2, 0, 0, 1);--font-sans: -apple-system, BlinkMacSystemFont, "Inter", "Helvetica Neue", "Segoe UI", sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "Menlo", "Cascadia Code", Consolas, monospace;--chart-bg: var(--canvas);--rail-width: 52px;--rail-open-width: 220px;--tabs-height: 40px;--rail-title-height: 17px;--topbar-height: 48px;--gutter-x: 16px;color-scheme:dark}[data-theme=light]{--canvas: #e3e3e4;--panel: #ffffff;--panel-2: #f4f5f7;--border: #e4e4e7;--border-strong: #d4d4d8;--text: #18181b;--body: #2c2c30;--muted-strong: #4b4b4f;--muted: #71717a;--accent: #a87a10;--accent-soft: rgba(168, 122, 16, .12);--on-accent: #ffffff;--pos: #15803d;--neg: #b83227;--warn: #d4a82c;--code-builtin: #3f6f88;--code-string: #8a5a3c;--chart-bg: var(--panel);color-scheme:light}.btn{display:inline-flex;align-items:center;gap:7px;font:500 13px/1 var(--font-sans);border-radius:var(--radius-sm);padding:8px 14px;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background .14s var(--ease),border-color .14s var(--ease),transform .1s var(--ease)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:color-mix(in srgb,var(--accent) 88%,#fff)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border-strong)}.btn-ghost:hover:not(:disabled){background:color-mix(in srgb,var(--text) 5%,transparent)}.btn-sm{padding:6px 11px;font-size:12.5px;border-radius:7px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted-strong);cursor:pointer}.icon-btn:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text)}.input{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 10px;color:var(--text);font:400 13px var(--font-sans)}.input:focus{outline:none;border-color:var(--accent)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.input.mono{font-family:var(--font-mono)}.select{min-width:190px;cursor:pointer}select.select{appearance:none;background-color:var(--panel-2);background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 28px 7px 10px;color:var(--text);font:400 13px var(--font-sans)}select.select:hover{border-color:var(--border-strong)}select.select:focus{outline:none;border-color:var(--accent)}.select option{background:var(--panel);color:var(--text)}.checkbox{position:relative;display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--body);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox input{position:absolute;opacity:0;pointer-events:none}.checkbox-box{width:16px;height:16px;border-radius:4px;border:1px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center;color:var(--canvas);flex-shrink:0;transition:background .12s,border-color .12s}.checkbox input:checked+.checkbox-box{background:var(--text);border-color:var(--text)}.checkbox input:focus-visible+.checkbox-box{outline:1px solid var(--accent);outline-offset:2px}.menu{position:absolute;z-index:30;min-width:220px;padding:5px;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:0 12px 40px #00000073;animation:palette-in .12s var(--ease) backwards}.menu-item{display:flex;align-items:center;gap:10px;width:100%;height:32px;padding:0 10px 0 8px;border:0;border-radius:6px;background:transparent;color:var(--body);font-size:13px;text-align:left;cursor:pointer}.menu-item:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text)}.menu-item .ico{width:20px;display:inline-flex;justify-content:center;color:var(--muted)}.menu-item .label{flex:1}.menu-kbd{font-family:var(--font-mono);font-size:11px;color:var(--muted)}.menu-sep{height:1px;background:var(--border);margin:5px 4px}.dialog-backdrop{position:fixed;inset:0;z-index:100;background:#0506088c;display:flex;align-items:center;justify-content:center;padding:16px}.dialog{position:relative;display:flex;flex-direction:column;max-height:calc(100vh - 32px);background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 12px 40px #00000073;animation:palette-in .12s var(--ease) backwards}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 18px 14px 22px;border-bottom:1px solid var(--border)}.dialog-head h3{margin:6px 0 0;font-size:17px;font-weight:600;letter-spacing:-.01em}.dialog-foot{display:flex;align-items:center;gap:8px;padding:14px 18px;border-top:1px solid var(--border)}.dialog-foot .spacer{flex:1}.dialog.settings{width:min(760px,100%);height:min(600px,calc(100vh - 32px))}.settings-body{flex:1;min-height:0;display:flex}.settings-nav{width:200px;flex-shrink:0;padding:12px 10px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:2px}.settings-tab{display:flex;align-items:center;gap:11px;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted-strong);font-size:13.5px;text-align:left;cursor:pointer}.settings-tab svg{color:var(--muted)}.settings-tab:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text)}.settings-tab.active{color:var(--text);font-weight:700;background:color-mix(in srgb,var(--text) 6%,transparent)}.settings-tab.active svg{color:var(--text)}.settings-content{flex:1;min-width:0;overflow-y:auto;padding:6px 24px 20px}.settings-section{padding:16px 0 6px}.settings-section+.settings-section{border-top:1px solid var(--border)}.settings-section-title{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px}.row-label{font-size:13px;color:var(--body)}.row-controls{display:flex;align-items:center;gap:16px}.settings-note{font-size:12px;color:var(--muted);margin:10px 0 0}.swatches{display:flex;gap:8px}.swatch{width:30px;height:30px;padding:3px;border:1px solid var(--border-strong);border-radius:7px;cursor:pointer;background:repeating-conic-gradient(color-mix(in srgb,var(--text) 18%,transparent) 0 25%,transparent 0 50%) 50% / 8px 8px,var(--panel-2)}.swatch span{display:block;width:100%;height:100%;border-radius:4px}.swatch:hover,.swatch.active{border-color:var(--text)}.color-picker{position:absolute;z-index:5;width:248px;padding:12px;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:0 12px 40px #00000073;display:flex;flex-direction:column;gap:10px}.color-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:5px}.color-cell{aspect-ratio:1;border:1px solid var(--border);border-radius:4px;cursor:pointer;padding:0}.color-cell:hover,.color-cell.active{outline:1px solid var(--text);outline-offset:1px}.color-row{display:flex;align-items:center;gap:10px}.color-row .input{flex:1;min-width:0;padding:5px 8px}.color-row input[type=range]{flex:1;accent-color:var(--text)}.color-label{width:52px;font-size:12px;color:var(--muted)}.color-pct{width:36px;text-align:right;font-size:12px;color:var(--muted-strong)}.color-reset{align-self:flex-start}@media(max-width:640px){.settings-body{flex-direction:column}.settings-nav{width:auto;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--border)}.settings-tab{white-space:nowrap}.settings-content{padding:4px 16px 16px}.select{min-width:0;max-width:55vw}}.legend-stack{position:absolute;top:9px;left:var(--gutter-x);z-index:5;display:flex;flex-direction:column;gap:3px;max-width:calc(100% - 100px);pointer-events:none}.legend-stack .legend{position:static;max-width:none}.ind-legend{display:flex;flex-direction:column;gap:1px;font-size:12px}.ind-legend.pane{position:absolute;z-index:5;max-width:calc(100% - 100px)}.ind-line{display:flex;align-items:baseline;gap:8px;min-height:22px;padding-right:4px;border-radius:var(--radius-sm);pointer-events:auto;width:max-content;max-width:100%}.ind-name{color:var(--muted-strong);white-space:nowrap}.ind-inputs{font-family:var(--font-mono);color:var(--muted);white-space:nowrap}.ind-version-wrap{position:relative;align-self:center}.ind-version{height:18px;padding:0 6px;border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--muted);font:500 10.5px var(--font-mono);cursor:pointer}.ind-version:hover,.ind-version[aria-expanded=true]{color:var(--text);border-color:var(--border-strong)}.ind-version.pinned{color:var(--muted-strong)}.ind-version-menu{top:calc(100% + 4px);left:0;width:260px}.ind-version-date{font-family:var(--font-mono);font-size:11px;color:var(--muted)}.ind-version-note{padding:6px 10px 8px;font-size:12px;color:var(--muted)}.ind-version-note.bad{color:var(--neg)}.ind-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.ind-line.hidden .ind-name,.ind-line.hidden .ind-inputs{opacity:.5}.ind-error{display:inline-flex;align-items:center;gap:5px;color:var(--neg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:420px;align-self:center}.ind-actions{display:inline-flex;gap:1px;align-self:center;opacity:0;transition:opacity .12s var(--ease)}.ind-line:hover .ind-actions,.ind-line:focus-within .ind-actions{opacity:1}@media(hover:none){.ind-actions{opacity:1}}.icon-btn.sm{width:22px;height:22px;border-radius:6px;background:color-mix(in srgb,var(--chart-bg) 70%,transparent)}.icon-btn:disabled{opacity:.4;cursor:default}.topbar-btn{flex-shrink:0}@media(max-width:760px){.topbar-btn-text{display:none}}.dialog.picker{width:min(620px,100%);height:min(640px,calc(100vh - 32px))}.picker-search{display:flex;align-items:center;gap:10px;padding:12px 22px;border-bottom:1px solid var(--border);color:var(--muted)}.picker-input{flex:1;border:0;outline:none;background:transparent;color:var(--text);font:inherit;font-size:14px}.picker-list{flex:1;overflow-y:auto;padding:8px}.picker-group{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding:10px 14px 6px}.picker-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:9px 14px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--body);text-align:left;cursor:pointer;font:inherit}.picker-item:hover,.picker-item:focus-visible{background:color-mix(in srgb,var(--text) 6%,transparent);outline:none}.picker-name{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--text)}.picker-desc{font-size:12px;color:var(--muted)}.picker-empty{padding:24px 14px;color:var(--muted)}.picker-more{display:flex;justify-content:center;padding:10px 0 14px}.picker-hint{font-size:12px;color:var(--muted)}.dialog.inputs{width:min(460px,100%)}.inputs-body{overflow-y:auto;padding:14px 22px}.dialog-tabs{display:flex;gap:4px;padding:8px 18px 0;border-bottom:1px solid var(--border)}.dialog-tab{padding:8px 12px 9px;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;background:transparent;color:var(--muted-strong);font:inherit;font-size:13px;cursor:pointer}.dialog-tab:hover{color:var(--text)}.dialog-tab.active{color:var(--text);border-bottom-color:var(--accent)}.style-row .checkbox{gap:10px}.style-row .row-controls{display:grid;grid-template-columns:52px 76px 118px;gap:8px;align-items:center;justify-items:start}.style-row .select{min-width:0}.width-select{width:76px}.type-select{width:118px}.style-note{font-family:var(--font-mono);font-size:11px;color:var(--muted)}.dialog.inputs .inputs-body{min-height:220px}.num-input{width:120px;text-align:right}.inline-row .row-label{white-space:nowrap}.inline-row .row-controls{gap:6px}.inline-row .num-input{width:76px}.inline-row .select{min-width:0}.editor{position:relative;flex-shrink:0;height:min(380px,45vh);max-height:calc(100% - 180px);display:flex;flex-direction:column;background:var(--panel);border-top:1px solid var(--border-strong);min-height:0}.editor-resize{position:absolute;left:0;right:0;top:-4px;height:8px;z-index:5;cursor:row-resize;touch-action:none}.editor-resize:after{content:"";position:absolute;left:0;right:0;top:3px;height:2px;background:transparent;transition:background .16s var(--ease)}.editor-resize:hover:after,.editor-resize:active:after,.editor-resize:focus-visible:after{background:var(--border-strong)}.editor-resize:focus-visible{outline:none}.editor-head{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 16px;border-bottom:1px solid var(--border)}.editor-head .spacer{flex:1}.editor-title{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.editor-body{flex:1;display:flex;min-height:0;background:var(--panel-2)}.editor-gutter{flex-shrink:0;width:52px;overflow:hidden;padding:10px 0;font-family:var(--font-mono);font-size:11px;line-height:calc(13px * 1.55);color:var(--muted);text-align:right;border-right:1px solid var(--border);-webkit-user-select:none;user-select:none}.gutter-line{position:relative;padding-right:10px}.gutter-dot{position:absolute;left:9px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--neg)}.gutter-dot.warning{background:var(--warn)}.editor-code{position:relative;flex:1;min-width:0}.code-hl,.code-input{position:absolute;inset:0;margin:0;padding:10px 14px;font-family:var(--font-mono);font-size:13px;line-height:1.55;tab-size:4;white-space:pre;overflow:auto;border:0}.code-hl{color:var(--body);pointer-events:none;overflow:hidden}.code-input{color:transparent;background:transparent;caret-color:var(--text);resize:none;outline:none}.code-input::selection{background:color-mix(in srgb,var(--accent) 30%,transparent);color:transparent}.t-kw,.t-type{color:var(--muted-strong);font-weight:600}.t-builtin{color:var(--code-builtin)}.t-str{color:var(--code-string)}.t-num,.t-color{color:var(--text)}.t-comment{color:var(--muted);font-style:italic}.code-hl .err{text-decoration:wavy underline var(--neg);text-decoration-skip-ink:none;text-underline-offset:3px}.code-hl .warn{text-decoration:wavy underline var(--warn);text-decoration-skip-ink:none;text-underline-offset:3px}.complete{position:absolute;z-index:10;min-width:260px;max-width:420px;padding:4px;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:0 8px 24px #00000059}.complete-item{display:flex;align-items:baseline;justify-content:space-between;gap:16px;width:100%;padding:4px 8px;border:0;border-radius:6px;background:transparent;color:var(--body);font-family:var(--font-mono);font-size:12.5px;text-align:left;cursor:pointer}.complete-item.active{background:var(--accent-soft);color:var(--text)}.complete-detail{color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.complete-doc{padding:6px 8px 4px;margin-top:4px;border-top:1px solid var(--border);font-size:12px;color:var(--muted-strong)}.problems{display:flex;flex-direction:column;gap:2px;max-height:96px;overflow-y:auto;padding:6px 10px;border-top:1px solid var(--border);font-size:12.5px}.problems-ok{color:var(--muted);padding:2px 6px}.problem{display:flex;align-items:center;gap:8px;padding:3px 6px;border:0;border-radius:6px;background:transparent;color:var(--body);font:inherit;text-align:left;cursor:pointer}.problem:hover{background:color-mix(in srgb,var(--text) 5%,transparent)}.problem.error svg{color:var(--neg)}.problem.warning svg{color:var(--warn)}.problem .mono{color:var(--muted)}.tag.neg{color:var(--neg);border-color:color-mix(in srgb,var(--neg) 40%,transparent)}.picker-tabs{display:flex;gap:2px;padding:0 14px;border-bottom:1px solid var(--border);overflow-x:auto}.picker-tab{padding:10px 10px 9px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted-strong);font:inherit;font-size:13px;white-space:nowrap;cursor:pointer}.picker-tab:hover{color:var(--text)}.picker-tab.active{color:var(--text);font-weight:700;border-bottom-color:var(--text)}.picker-filters{display:flex;gap:8px;padding:10px 22px;border-bottom:1px solid var(--border)}.script-row{border-radius:var(--radius-sm);padding-bottom:8px}.script-row:hover{background:color-mix(in srgb,var(--text) 4%,transparent)}.script-open:hover{background:transparent}.script-open .tag{font-size:9.5px}.script-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.script-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:0 14px;font-size:12px;color:var(--muted)}.script-author{padding:0;border:0;background:transparent;color:var(--muted-strong);font:inherit;cursor:pointer}.script-author:hover{color:var(--text);text-decoration:underline}.script-author.static{cursor:default}.script-stat{display:inline-flex;align-items:center;gap:4px}.script-page-wrap{padding:4px 6px 12px}.script-back{margin:0 0 8px}.script-page{padding:0 8px}.script-title-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}.script-title{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em}.script-page .script-meta{padding:0}.script-description{margin:12px 0 0;font-size:13px;line-height:1.5;color:var(--body);white-space:pre-wrap}.script-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0 4px}.script-actions .select{flex:1;min-width:220px}.btn.liked{color:var(--text)}.btn.liked svg{fill:currentColor}.script-version{display:grid;grid-template-columns:44px 110px 1fr;gap:8px;padding:5px 0;font-size:12.5px}.script-version-date{color:var(--muted)}.script-version-log{color:var(--body);white-space:pre-wrap}.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.form-label{font-size:12px;color:var(--muted-strong)}.form-textarea{resize:vertical;font-family:var(--font-sans);line-height:1.45}.form-actions{display:flex;align-items:center;gap:8px}.form-actions .spacer{flex:1}.form-msg{font-size:12px;color:var(--muted)}.visibility-choice{display:flex;flex-direction:column;gap:6px;margin:0 0 12px;padding:0;border:0}.visibility-choice legend{margin-bottom:6px}.visibility-option{display:grid;grid-template-columns:auto 1fr;column-gap:10px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.visibility-option input{grid-row:span 2;margin:2px 0 0;accent-color:var(--accent)}.visibility-option.active{border-color:var(--border-strong);background:color-mix(in srgb,var(--text) 4%,transparent)}.visibility-name{font-size:13px;color:var(--text)}.visibility-help{font-size:12px;color:var(--muted)}.invite-form{display:flex;flex-wrap:wrap;gap:8px}.invite-form .input:first-child{flex:1;min-width:180px}.invite-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:13px}.invite-who{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.invite-until{font-size:12px;color:var(--muted)}.script-danger{color:var(--neg);border-color:color-mix(in srgb,var(--neg) 40%,transparent)}.dialog.publish{width:min(520px,100%);z-index:1}.publish-body{overflow-y:auto;padding:8px 22px 12px}.publish-as{margin:8px 0 14px}.publish-version-note{margin:0 0 12px}.publish-error{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--neg) 40%,transparent);border-radius:var(--radius-sm);color:var(--neg);font-size:12.5px}.publish-diag{color:var(--body);font-size:11.5px}@media(max-width:720px){.script-version{grid-template-columns:40px 1fr}.script-version-log{grid-column:1 / -1}}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}html,body,#root{height:100%;margin:0}body{background:var(--canvas);color:var(--text);font:400 15px/1.5 var(--font-sans);overscroll-behavior:none;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted-strong)}.kbd{font-family:var(--font-mono);font-size:11px;line-height:1;color:var(--muted-strong);border:1px solid var(--border-strong);border-radius:5px;padding:2px 6px;white-space:nowrap}.app{position:relative;height:100%;isolation:isolate;display:flex;flex-direction:column}.app-main{flex:1;min-height:0;display:flex}.rail{position:relative;z-index:15;flex-shrink:0;width:var(--rail-width);display:flex;flex-direction:column;padding:0 0 8px;background:color-mix(in srgb,var(--canvas) 62%,var(--panel));border-right:1px solid var(--border);overflow:hidden;transition:width .16s var(--ease)}.rail.open{width:var(--rail-open-width)}.rail-brand{display:flex;align-items:center;gap:9px;height:var(--topbar-height);padding-left:14px;flex-shrink:0;color:var(--text);white-space:nowrap}.rail-mark{width:24px;height:15px;flex-shrink:0}.rail-name{height:17px;width:auto;flex-shrink:0;visibility:hidden;opacity:0;transition:opacity .16s}.rail.open .rail-name{visibility:visible;opacity:1}.rail-scroll{flex:1;overflow:hidden auto;padding:1px 6px 2px}.rail-scroll>.rail-group:first-child>.rail-sec-title{display:none}.rail-sec-title{height:var(--rail-title-height);font-family:var(--font-mono);font-size:9px;line-height:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:0 10px 6px;white-space:nowrap;opacity:0;transition:opacity .16s}.rail-item{display:flex;align-items:center;gap:14px;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted-strong);font:400 13.5px var(--font-sans);text-align:left;white-space:nowrap;cursor:pointer;transition:background .12s,color .12s}.rail-item:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text)}.rail-item.active{color:var(--text);font-weight:700}.rail-ico{width:20px;display:inline-flex;justify-content:center;flex-shrink:0;color:var(--muted)}.rail-item:hover .rail-ico{color:var(--text)}.rail-label{opacity:0;transition:opacity .16s}.rail.open .rail-label{opacity:1}.rail.open .rail-sec-title{opacity:.8}.rail-bottom{padding:6px 6px 0;border-top:1px solid var(--border)}.workspace{flex:1;min-width:0;display:flex;flex-direction:column}.chart-tabs{position:relative;z-index:21;flex-shrink:0;display:flex;align-items:stretch;height:var(--tabs-height);padding:0 8px 0 0;background:color-mix(in srgb,var(--canvas) 62%,var(--panel));border-bottom:1px solid var(--border)}.chart-tab-row{display:flex;align-items:stretch;min-width:0}.chart-tab{position:relative;display:flex;align-items:center;gap:9px;min-width:72px;max-width:280px;flex:0 1 auto;margin-bottom:-1px;padding:0 10px 0 16px;border:solid transparent;border-width:0 1px;color:var(--muted-strong);font-size:13.5px;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.chart-tab:hover{color:var(--text)}.chart-tab.active{color:var(--text);background:color-mix(in srgb,var(--canvas) 45%,var(--panel));border-color:var(--border)}.chart-tab-row>.chart-tab:first-child{border-left-color:transparent}.chart-tab.active .chart-tab-sym{font-weight:600}.chart-tab.dragging{opacity:.5}.chart-tab:focus-visible{outline:1px solid var(--border-strong);outline-offset:-3px}.chart-tab-sym{overflow:hidden;text-overflow:ellipsis;font-size:13px}.chart-tab-quote{display:inline-flex;gap:7px;font-size:12.5px;color:var(--muted-strong);white-space:nowrap}.chart-tab-quote.up{color:var(--pos)}.chart-tab-quote.down{color:var(--neg)}.chart-tab-close{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:2px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer;opacity:0}.chart-tab:hover .chart-tab-close,.chart-tab.active .chart-tab-close,.chart-tab-close:focus-visible{opacity:1}.chart-tab-close:hover{color:var(--text);background:color-mix(in srgb,var(--text) 8%,transparent)}.chart-tab-add{align-self:center;margin-left:6px;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:var(--muted-strong);cursor:pointer}.chart-tab-add:hover:not(:disabled){color:var(--text);background:color-mix(in srgb,var(--text) 6%,transparent)}.chart-tab-add:disabled{opacity:.4;cursor:default}.chart-tab-confirm{top:calc(100% + 4px);left:0;width:280px;padding:10px;cursor:default;font-weight:400}.chart-tab-confirm-text{margin:0 0 10px;font-size:12.5px;color:var(--body);white-space:normal}.chart-tab-confirm-text.bad{color:var(--neg)}.chart-tab-confirm-row{display:flex;gap:6px}.chart-tab-msg{align-self:center;margin-left:10px;font-size:12px;color:var(--neg)}.chart-tab-select{display:none}@media(max-width:720px){.chart-tab-row{display:none}select.chart-tab-select{display:block;align-self:center;min-width:0;max-width:70vw;height:26px;padding-top:0;padding-bottom:0;line-height:24px;font-size:12.5px}}.topbar{position:relative;z-index:20;flex-shrink:0;display:flex;align-items:center;gap:14px;height:var(--topbar-height);padding:0 14px 0 var(--gutter-x);background:color-mix(in srgb,var(--canvas) 45%,var(--panel));border-bottom:1px solid var(--border);backdrop-filter:blur(14px) saturate(130%);-webkit-backdrop-filter:blur(14px) saturate(130%)}.crumb{display:flex;align-items:center;gap:9px;flex-shrink:0;padding:6px 8px;margin-left:-8px;border:0;border-radius:var(--radius-sm);background:transparent;font-weight:600;font-size:14px;letter-spacing:-.01em;white-space:nowrap;cursor:pointer;transition:background .12s}.crumb:hover{background:color-mix(in srgb,var(--text) 6%,transparent)}.crumb-text{display:flex;align-items:baseline;gap:9px}.crumb-sym{font-family:var(--font-mono);font-weight:500;color:var(--text)}.crumb-desc{color:var(--muted);font-weight:400}.crumb-chev{color:var(--muted)}.tf-group{display:flex;gap:2px;padding-left:12px;border-left:1px solid var(--border)}.tf-btn,.tf-select{font-family:var(--font-mono);font-size:12px;color:var(--muted-strong);background:transparent;border:0;border-radius:6px;padding:5px 8px;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s}.tf-btn:hover{color:var(--text);background:color-mix(in srgb,var(--text) 5%,transparent)}.tf-btn.active{color:var(--text);background:color-mix(in srgb,var(--text) 8%,transparent)}.tf-select{display:none;border:1px solid var(--border)}.tf-select option{background:var(--panel)}.cmdbar{display:flex;align-items:center;gap:10px;flex:1;min-width:0;max-width:540px;margin-left:auto;padding:7px 10px 7px 12px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--muted);font-size:13px;cursor:text;transition:border-color .14s var(--ease)}.cmdbar:hover{border-color:var(--border-strong)}.cmdbar-text{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .user{display:flex;align-items:center;gap:12px;flex-shrink:0}.save-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--warn);white-space:nowrap}@media(max-width:720px){.save-status-text{display:none}}.chart-wrap{position:relative;flex:1;min-height:0;background:var(--chart-bg)}.chart{position:absolute;inset:0}.chart:focus{outline:none}.legend{position:absolute;top:9px;left:var(--gutter-x);z-index:5;pointer-events:none;display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;max-width:calc(100% - 100px);font-size:12px}.legend{align-items:baseline}.legend .sym{font-weight:600;font-size:13px;color:var(--text)}.legend .desc{color:var(--muted-strong)}.legend .tf{font-family:var(--font-mono);color:var(--muted-strong)}.legend .kv{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.legend .k{color:var(--muted);margin-right:4px}.legend .pos{color:var(--pos)}.legend .neg{color:var(--neg)}.legend .v{color:var(--muted-strong)}.tag{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;line-height:1;padding:4px 9px;border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--muted-strong);background:var(--panel);white-space:nowrap}.tag.warn{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.tag.live{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 38%,transparent)}button.tag{pointer-events:auto;cursor:pointer}button.tag:hover{background:var(--accent-soft)}.pulse-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 2.4s ease-out infinite}@keyframes pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--accent) 55%,transparent)}70%{box-shadow:0 0 0 7px transparent}to{box-shadow:0 0 0 0 transparent}}@media(prefers-reduced-motion:reduce){.pulse-dot{animation:none}}.chart-status{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:13px;pointer-events:none}.chart-controls{position:absolute;right:76px;bottom:32px;z-index:5;display:flex;align-items:center;gap:2px;padding:3px;background:color-mix(in srgb,var(--panel) 85%,transparent);border:1px solid var(--border);border-radius:var(--radius-sm);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:.35;transition:opacity .15s var(--ease)}.chart-wrap:hover .chart-controls,.chart-controls:focus-within{opacity:1}@media(hover:none){.chart-controls{opacity:.85}}.chart-controls button{display:inline-flex;align-items:center;gap:5px;background:transparent;border:0;color:var(--muted-strong);padding:4px 8px;border-radius:5px;cursor:pointer;font-family:var(--font-mono);font-size:12px;line-height:1.3;white-space:nowrap;transition:background .12s,color .12s}.chart-controls button:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text)}.chart-controls button.active{color:var(--text);background:color-mix(in srgb,var(--text) 9%,transparent)}.chart-controls .sep{width:1px;height:14px;background:var(--border);margin:0 3px}.palette-backdrop{position:fixed;inset:0;z-index:100;background:#0506088c;display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px}.palette{width:min(640px,100%);max-height:70vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 12px 40px #00000073;overflow:hidden;animation:palette-in .12s var(--ease) backwards}@keyframes palette-in{0%{opacity:0;transform:translateY(4px)}}.palette-input{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);color:var(--muted)}.palette-input input{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--text);font:400 15px var(--font-sans)}.palette-input input::placeholder{color:var(--muted)}.palette-list{overflow-y:auto;padding:6px}.palette-group{font-family:var(--font-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:10px 10px 6px}.palette-row{position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:34px;padding:6px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--body);font-size:13px;text-align:left;cursor:pointer}.palette-row.selected{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text)}.palette-row.selected:before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:2px;border-radius:2px;background:var(--accent)}.palette-row .ico{width:20px;display:inline-flex;justify-content:center;color:var(--muted);flex-shrink:0}.palette-row .pair{display:flex;align-items:baseline;gap:12px}.palette-row .sym{font-family:var(--font-mono);font-weight:500;color:var(--text);min-width:44px}.palette-row .label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette-row .meta{font-family:var(--font-mono);font-size:11px;color:var(--muted)}.palette-row .check{color:var(--muted-strong)}.palette-empty{padding:22px 12px;text-align:center;color:var(--muted);font-size:13px}.palette-foot{display:flex;gap:16px;padding:9px 14px;border-top:1px solid var(--border);color:var(--muted);font-size:11.5px}.palette-foot span{display:inline-flex;align-items:center;gap:6px}.signin-page{position:relative;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:24px 16px;background:var(--canvas)}.signin-page:before{content:"";position:absolute;inset:0 0 auto;height:480px;pointer-events:none;background:radial-gradient(78% 62% at 50% -24%,color-mix(in srgb,var(--text) 5%,transparent),transparent 72%)}.signin-head{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px}.signin-brand{display:block;height:34px;width:auto;color:var(--text)}.onboard-card{position:relative;width:min(400px,100%);padding:22px 22px 16px;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius);display:flex;flex-direction:column}.onboard-card h3{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em}.onboard-card .settings-note{margin:8px 0 16px}.onboard-input{display:flex;align-items:center;gap:6px}.onboard-input .input{flex:1}.onboard-at{color:var(--muted)}.onboard-rule{font-size:12px;color:var(--muted)}.onboard-rule.bad,.onboard-error{color:var(--neg)}.onboard-error{margin:0 0 10px;font-size:12.5px}.onboard-continue{justify-content:center}.onboard-signout{align-self:center;margin-top:10px}.username-dialog{width:min(440px,calc(100vw - 32px))}.username-body{padding:4px 18px 14px}.username-body .settings-note{margin:0 0 14px}.username-saved{margin:10px 0 0;font-size:12.5px;color:var(--pos)}.config-error{max-width:560px;margin:15vh auto 0;padding:0 16px}.config-error h1{font-size:20px;font-weight:600;letter-spacing:-.01em}.config-error code{font-family:var(--font-mono);font-size:13px;background:var(--panel-2);border:1px solid var(--border);padding:1px 5px;border-radius:4px}@media(max-width:1100px){.crumb-desc{display:none}}@media(max-width:760px){.tf-group{display:none}.tf-select{display:block}.cmdbar-text,.cmdbar .kbd{display:none}.cmdbar{flex:0 0 auto;padding:7px 9px}}@media(max-width:720px){.rail{display:none}:root{--gutter-x: 10px}.topbar{padding:0 10px 0 var(--gutter-x);gap:8px}}.rail-group+.rail-group{margin-top:8px}.rail-item:disabled{opacity:.45;cursor:default;background:transparent}.rail-kbd{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:var(--muted);opacity:0;transition:opacity .16s}.rail.open .rail-kbd{opacity:1}.draw-bar{position:absolute;top:8px;right:76px;z-index:6;display:flex;align-items:center;gap:2px;padding:3px;max-width:calc(100% - 96px);background:color-mix(in srgb,var(--panel) 92%,transparent);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:0 8px 24px #0000004d;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.draw-bar-name{padding:0 6px 0 8px;font-size:12px;color:var(--muted-strong);white-space:nowrap}.draw-bar button{display:inline-flex;align-items:center;gap:5px;background:transparent;border:0;color:var(--muted-strong);padding:4px 7px;border-radius:5px;cursor:pointer;font-family:var(--font-mono);font-size:12px;line-height:1.3;white-space:nowrap;transition:background .12s,color .12s}.draw-bar button:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text)}.draw-bar button.active{color:var(--text);background:color-mix(in srgb,var(--text) 9%,transparent)}.draw-bar .sep{width:1px;height:14px;background:var(--border);margin:0 3px}.draw-bar .draw-color span{display:block;width:14px;height:14px;border-radius:3px;border:1px solid var(--border-strong)}.draw-bar .color-picker{top:40px;left:auto!important;right:0}.draw-text-editor{position:absolute;z-index:7;min-width:160px;margin:-3px 0 0 -3px;padding:2px 4px;resize:none;font:14px/1.3 var(--font-sans);color:var(--text);background:var(--panel);border:1px solid var(--accent);border-radius:4px;outline:none;box-shadow:0 8px 24px #0000004d}.menu.draw-menu,.draw-pop{top:44px;right:76px;left:auto;z-index:8}.menu.draw-menu .menu-item:disabled{opacity:.45;cursor:default;background:transparent}.draw-pop{position:absolute;padding:5px 10px 10px;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:0 12px 40px #00000073;animation:palette-in .12s var(--ease) backwards}.draw-pop .menu-title{padding-left:0}.fib-rows{display:flex;flex-direction:column;gap:4px;max-height:min(360px,60vh);overflow-y:auto}.fib-row{display:flex;align-items:center;gap:8px}.fib-row .fib-value{width:84px;padding:4px 8px;font-size:12px}.fib-row .swatch.fib-color{width:24px;height:24px;padding:3px;border-radius:6px}.fib-row .fib-remove{width:24px;height:24px}.fib-actions{display:flex;gap:8px;margin-top:10px}.fib-levels .color-picker{z-index:9}.fib-row .select.fib-dash{width:76px;min-width:0;padding-top:4px;padding-bottom:4px;font-size:12px}.draw-bar .select.draw-select{width:auto;min-width:0;height:24px;padding-top:0;padding-bottom:0;font-family:var(--font-mono);font-size:12px}.draw-text-editor.callout{margin:1px 0 0 1px}@media(max-width:760px){.draw-bar-name{display:none}}.chart-grid{flex:1;min-height:0;display:grid;gap:1px;background:var(--border)}.chart-cell{position:relative;min-width:0;min-height:0;display:flex;flex-direction:column;container-type:inline-size}.chart-grid{position:relative}.chart-grid.has-max{overflow:hidden}.chart-grid.has-max>.chart-cell:not(.maximized){visibility:hidden}.chart-cell.maximized{position:absolute;inset:0;z-index:20}.chart-cell.maximized:after{display:none}.chart-cell.active:after{content:"";position:absolute;inset:0;z-index:8;border:1px solid var(--border-strong);pointer-events:none}@container (max-width: 460px){.legend .desc,.draw-bar-name{display:none}}@container (max-width: 340px){.chart-controls{display:none}}.layout-menu-wrap{position:relative;flex-shrink:0}.layout-menu{top:calc(100% + 6px);right:0;width:264px}.menu-title{padding:6px 8px;font-family:var(--font-mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.layout-saved-title{display:flex;align-items:baseline;justify-content:space-between}.layout-saved-hint{font-family:var(--font-sans);font-size:11px;letter-spacing:0;text-transform:none}.layout-save-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:2px 8px 6px}.layout-save-row .menu-kbd{margin-left:auto}.layout-conflict{display:flex;flex-direction:column;gap:6px;margin:2px 4px 6px;padding:8px 4px 2px 8px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:12px;color:var(--body)}.layout-conflict .layout-save-row{padding:0 0 6px}.unsaved-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0}.layout-row{display:flex;align-items:center;gap:2px}.layout-row.editing{padding:2px 4px}.layout-open .label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layout-action{width:28px;height:28px;flex-shrink:0;opacity:0}.layout-row:hover .layout-action,.layout-action:focus-visible{opacity:1}@media(hover:none){.layout-action{opacity:1}}.layout-delete-confirm{flex-shrink:0;color:var(--neg)}.layout-name-input{width:100%;height:30px}.layout-tiles{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:0 4px 6px}.layout-tile{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 0 5px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted-strong);font-size:11px;cursor:pointer}.layout-tile:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text)}.layout-tile.active{color:var(--text);font-weight:700;border-color:var(--border-strong)}@media(max-width:720px){.chart-grid.multi{grid-template-columns:minmax(0,1fr)!important;grid-template-rows:none!important;grid-auto-rows:minmax(280px,1fr);overflow-y:auto}}
