:root,:root[data-theme=dark]{--tc-bg: hsl(220 16% 12%);--tc-bg-elevated: hsl(220 14% 16%);--tc-bg-sunken: hsl(220 18% 8%);--tc-fg: hsl(220 12% 88%);--tc-fg-muted: hsl(220 10% 65%);--tc-accent: hsl(195 80% 60%);--tc-accent-fg: hsl(220 18% 8%);--tc-border: hsl(220 10% 25%);--tc-error: hsl(0 70% 65%);--tc-warning: hsl(40 90% 65%);--tc-ok: hsl(140 70% 60%);--tc-syn-comment: hsl(220 10% 52%);--tc-syn-keyword: hsl(280 65% 72%);--tc-syn-property: hsl(195 70% 68%);--tc-syn-string: hsl(95 45% 65%);--tc-syn-number: hsl(30 85% 68%);--tc-syn-unit: hsl(30 45% 58%);--tc-syn-atom: hsl(340 70% 72%);--tc-syn-variable: hsl(220 12% 88%);--tc-syn-operator: hsl(220 10% 60%)}:root[data-theme=light]{--tc-bg: hsl(220 20% 97%);--tc-bg-elevated: hsl(220 18% 93%);--tc-bg-sunken: hsl(0 0% 100%);--tc-fg: hsl(220 25% 16%);--tc-fg-muted: hsl(220 12% 40%);--tc-accent: hsl(205 85% 40%);--tc-accent-fg: hsl(0 0% 100%);--tc-border: hsl(220 14% 80%);--tc-error: hsl(0 70% 42%);--tc-warning: hsl(35 85% 35%);--tc-ok: hsl(140 60% 30%);--tc-syn-comment: hsl(220 10% 48%);--tc-syn-keyword: hsl(280 60% 42%);--tc-syn-property: hsl(205 80% 34%);--tc-syn-string: hsl(120 45% 28%);--tc-syn-number: hsl(25 85% 36%);--tc-syn-unit: hsl(25 50% 42%);--tc-syn-atom: hsl(340 70% 40%);--tc-syn-variable: hsl(220 25% 16%);--tc-syn-operator: hsl(220 10% 45%)}@media(prefers-color-scheme:light){:root:not([data-theme]){--tc-bg: hsl(220 20% 97%);--tc-bg-elevated: hsl(220 18% 93%);--tc-bg-sunken: hsl(0 0% 100%);--tc-fg: hsl(220 25% 16%);--tc-fg-muted: hsl(220 12% 40%);--tc-accent: hsl(205 85% 40%);--tc-accent-fg: hsl(0 0% 100%);--tc-border: hsl(220 14% 80%);--tc-error: hsl(0 70% 42%);--tc-warning: hsl(35 85% 35%);--tc-ok: hsl(140 60% 30%);--tc-syn-comment: hsl(220 10% 48%);--tc-syn-keyword: hsl(280 60% 42%);--tc-syn-property: hsl(205 80% 34%);--tc-syn-string: hsl(120 45% 28%);--tc-syn-number: hsl(25 85% 36%);--tc-syn-unit: hsl(25 50% 42%);--tc-syn-atom: hsl(340 70% 40%);--tc-syn-variable: hsl(220 25% 16%);--tc-syn-operator: hsl(220 10% 45%)}}:root{--tc-font: ui-monospace, SFMono-Regular, "JetBrains Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--tc-bg);color:var(--tc-fg);font-family:var(--tc-font);font-size:14px;line-height:1.45}body{overflow:hidden}tc-app,tc-viewer,tc-editor{display:block}tc-app{height:100vh;width:100vw;display:flex;flex-direction:column;overflow:hidden}tc-viewer{display:flex;flex-direction:column;width:100%;height:100%;min-width:0;background:var(--tc-bg-sunken);position:relative;overflow:hidden;min-height:0}tc-editor{display:flex;flex-direction:column;width:100%;flex:1 1 0;min-height:0;background:var(--tc-bg-sunken);color:var(--tc-fg)}tc-app .picker{margin-left:10px;flex:0 1 34ch;min-width:16ch;max-width:46ch;font-family:inherit;font-size:11px;text-transform:none;letter-spacing:0;background:var(--tc-bg-sunken);color:var(--tc-fg);border:1px solid var(--tc-border);border-radius:3px;padding:2px 6px}tc-app .counts{margin-right:4px;text-transform:none;letter-spacing:0;font-size:11px}tc-app .pane{flex:1 1 0;min-height:0;display:flex;flex-direction:row;overflow:hidden;position:relative}:root{--tc-split-left: 20%}tc-app .side{display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}tc-app .side.source{border-right:1px solid var(--tc-border)}tc-app .splitter{flex:0 0 6px;cursor:col-resize;background:transparent;position:relative;align-self:stretch;z-index:1;display:flex;align-items:center;justify-content:center}tc-app .splitter:hover>.splitter-grip,tc-app .pane.resizing .splitter>.splitter-grip{background:var(--tc-accent);width:2px}tc-app .splitter-grip{width:1px;height:100%;background:var(--tc-border);pointer-events:none;transition:background .1s ease-out,width .1s ease-out}tc-app .pane.resizing,tc-app .pane.resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}tc-app .pane.resizing .tc-curve{transition:none}tc-app .tabs-group{display:flex;align-items:center;gap:6px;margin-left:14px;padding-left:14px;border-left:1px solid var(--tc-border)}tc-app .tabs-group .side-btn{margin-left:0}tc-viewer .help-popover{top:8px}tc-app .diagnostics{flex:0 0 auto;max-height:45%;overflow:auto;overscroll-behavior:contain;margin:0;padding:6px 0;list-style:none;background:var(--tc-bg-sunken);border-top:1px solid var(--tc-border);font-family:var(--tc-font);font-size:11.5px;line-height:1.5;scrollbar-width:thin;scrollbar-color:var(--tc-border) transparent}tc-app .diagnostics::-webkit-scrollbar{width:9px}tc-app .diagnostics::-webkit-scrollbar-track{background:transparent}tc-app .diagnostics::-webkit-scrollbar-thumb{background:var(--tc-border);border-radius:5px;border:2px solid var(--tc-bg-sunken)}tc-app .diagnostics::-webkit-scrollbar-thumb:hover{background:var(--tc-fg-muted)}tc-app .diagnostics li{display:grid;grid-template-columns:14px auto 1fr;gap:0 8px;padding:2px 10px;align-items:baseline}tc-app .diagnostics li.error{color:var(--tc-error)}tc-app .diagnostics li.warning{color:var(--tc-warning)}tc-app .diagnostics li.info{color:var(--tc-fg-muted)}tc-app .diagnostics li+li{border-top:1px solid color-mix(in srgb,var(--tc-border) 45%,transparent)}tc-app .diag-icon{text-align:center}tc-app .diag-where{background:none;border:none;padding:0;font:inherit;color:inherit;opacity:.85;cursor:pointer;text-decoration:underline dotted}tc-app .diag-where:hover{opacity:1}tc-app .diag-code{opacity:.55;font-size:.9em;margin-left:6px}tc-app .verdict.unevaluated{color:var(--tc-fg-muted)}tc-app .diag-msg{color:var(--tc-fg);min-width:0;overflow-wrap:anywhere}tc-app .side-title{flex:0 0 auto;min-height:32px;background:var(--tc-bg-elevated);color:var(--tc-fg-muted);border-bottom:1px solid var(--tc-border);padding:4px 10px 2px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;display:flex;align-items:center;flex-wrap:wrap;gap:4px;row-gap:4px;white-space:nowrap}tc-app .side-title-label{flex:0 0 auto}tc-app .side-title-spacer{flex:1 1 0;min-width:0}tc-app .side-btn{flex:0 0 auto;margin-left:6px;text-transform:none;letter-spacing:0;font-family:inherit;font-size:11px;background:var(--tc-bg-sunken);color:var(--tc-fg);border:1px solid var(--tc-border);border-radius:3px;padding:1px 8px;cursor:pointer}tc-app .side-btn:hover{background:var(--tc-accent);color:var(--tc-accent-fg)}tc-viewer .tc-curve-snap{stroke-width:3.2}tc-viewer .pane-host svg .tc-curve{transition:stroke-width .1s ease-out}.cm-editor{min-height:0!important}tc-editor .cm-editor{height:100%}tc-editor .cm-scroller{overflow:auto}tc-editor .cm-cursor,tc-editor .cm-dropCursor{border-left-color:var(--tc-accent);border-left-width:2px}tc-editor .cm-selectionBackground,tc-editor .cm-content ::selection,tc-editor .cm-line ::selection{background:color-mix(in srgb,var(--tc-accent) 38%,transparent)!important}tc-editor .cm-focused .cm-selectionBackground{background:color-mix(in srgb,var(--tc-accent) 50%,transparent)!important}tc-editor .cm-selectionMatch{background:color-mix(in srgb,var(--tc-accent) 22%,transparent);border-radius:2px}tc-editor .cm-activeLine{background:color-mix(in srgb,var(--tc-accent) 7%,transparent)}tc-editor .cm-completionDetail{color:var(--tc-fg-muted);font-style:normal;margin-left:12px}tc-editor li[aria-selected] .cm-completionDetail{color:var(--tc-accent-fg);opacity:.85}tc-editor .cm-completionInfo{background:var(--tc-bg-elevated);color:var(--tc-fg);border:1px solid var(--tc-border);border-radius:4px;padding:6px 10px;max-width:360px;font-size:11.5px;line-height:1.5}tc-viewer .toolbar{display:flex;gap:6px;padding:4px 10px;flex:0 0 28px;background:var(--tc-bg-elevated);border-bottom:1px solid var(--tc-border);font-family:var(--tc-font);font-size:11px;color:var(--tc-fg);align-items:center;overflow:hidden;white-space:nowrap}tc-viewer .pane-host{flex:1 1 0;min-height:0;min-width:0;width:100%;overflow:auto;overscroll-behavior:contain;position:relative}tc-viewer .sheet{position:relative;flex:none}tc-viewer .pane-host.panning,tc-viewer .pane-host.panning svg{cursor:grabbing}tc-viewer .pane-host.panning *{-webkit-user-select:none!important;user-select:none!important}tc-viewer svg{width:100%;height:100%;display:block;cursor:default}tc-viewer .pane-host.over-curve svg{cursor:crosshair}tc-viewer .export-error{color:var(--tc-error);font-size:11px;margin-left:8px;max-width:40ch;overflow:hidden;text-overflow:ellipsis}tc-viewer button[disabled]{opacity:.6;cursor:default}tc-viewer .help-btn{margin-left:auto;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;padding:0;font-weight:600}tc-viewer .help-popover{position:absolute;top:34px;right:10px;z-index:5;background:var(--tc-bg-elevated);color:var(--tc-fg);border:1px solid var(--tc-border);border-radius:6px;padding:10px 14px;font-size:12px;line-height:1.6;box-shadow:0 6px 20px #00000040;min-width:260px}tc-viewer .help-popover h4{margin:0 0 6px;font-size:12px}tc-viewer .help-popover dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:2px 12px}tc-viewer .help-popover dt{color:var(--tc-accent);white-space:nowrap}tc-viewer .help-popover dd{margin:0;color:var(--tc-fg-muted)}tc-viewer .help-guide{margin-top:10px;font-family:inherit;font-size:11px;cursor:pointer;padding:3px 8px;color:var(--tc-fg);background:var(--tc-bg-sunken);border:1px solid var(--tc-border);border-radius:4px}tc-viewer .help-guide:hover{background:var(--tc-accent);color:var(--tc-accent-fg)}h1,h2,h3,h4{margin:.4em 0;font-weight:600}h1{font-size:1.15rem}h2{font-size:1rem}h3{font-size:.95rem}h4{font-size:.9rem;color:var(--tc-fg-muted)}a{color:var(--tc-accent);text-decoration:none}a:hover{text-decoration:underline}tc-app .side[hidden]{display:none!important}tc-app .pane.source .side.source,tc-app .pane.plot .side.source{border-right:none}tc-app .pane-switch{display:flex;flex:0 0 auto;gap:0;padding:6px 8px;background:var(--tc-bg-elevated);border-bottom:1px solid var(--tc-border)}tc-app .pane-switch button{flex:1 1 0;font-family:inherit;font-size:13px;min-height:44px;cursor:pointer;color:var(--tc-fg-muted);background:var(--tc-bg-sunken);border:1px solid var(--tc-border)}tc-app .pane-switch button:first-child{border-radius:5px 0 0 5px}tc-app .pane-switch button:last-child{border-radius:0 5px 5px 0;border-left:none}tc-app .pane-switch button.on{background:var(--tc-accent);color:var(--tc-accent-fg);border-color:var(--tc-accent);font-weight:600}@media(max-width:860px){tc-app .pane{flex-direction:column}tc-app .side-title{flex-wrap:wrap;height:auto;row-gap:4px;padding:6px 8px}tc-app .side-title-spacer{display:none}tc-app .picker{order:-1;flex:1 1 100%;min-width:0;max-width:none;margin-left:0;min-height:36px;font-size:13px}tc-app .side-btn{min-height:36px;padding:4px 10px;font-size:12px}tc-editor{font-size:14px}tc-app .diagnostics{max-height:40vh}}@media(max-width:520px){tc-app .side-title-label{display:none}tc-app .counts{flex:1 1 100%}tc-app .diagnostics li{grid-template-columns:14px 1fr;row-gap:2px}tc-app .diag-msg{grid-column:2}}@media(hover:none){tc-viewer .pane-host svg{cursor:default}tc-viewer .help-popover{max-width:88vw}}tc-viewer .pane-host{touch-action:none}tc-app .source-body{flex:1 1 0;min-height:0;display:flex;flex-direction:column}tc-app .source-body tc-editor{flex:1 1 0;min-height:0;min-width:0}tc-app .help-dock{flex:0 0 auto;max-height:30%;overflow:auto;padding:8px 12px;border-top:1px solid var(--tc-border);background:var(--tc-bg-elevated);font-family:var(--tc-font);font-size:12px;line-height:1.45;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}tc-app .help-dock-name{font-weight:600;color:var(--tc-fg);flex:0 0 auto}tc-app .help-dock-scope{font-weight:400;color:var(--tc-fg-muted);margin-left:6px}tc-app .help-dock-scope:before{content:"·"}tc-app .help-dock-summary{color:var(--tc-fg-muted);flex:1 1 240px;min-width:0}tc-app .help-dock-example{margin:0;padding:4px 8px;background:var(--tc-bg-sunken);border-radius:3px;color:var(--tc-fg);font-size:11px;white-space:pre-wrap;overflow-x:auto;flex:0 1 auto;max-width:100%}tc-app .help-dock-close{flex:0 0 auto;margin-left:auto;border:1px solid var(--tc-border);background:var(--tc-bg);color:var(--tc-fg-muted);border-radius:3px;cursor:pointer;font:inherit;line-height:1;padding:2px 6px}tc-app .help-dock-close:hover{color:var(--tc-fg);border-color:var(--tc-accent, #3b6ea5)}tc-viewer .plot-stale{position:absolute;left:12px;right:12px;bottom:12px;z-index:5;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;padding:8px 12px;border-radius:4px;border:1px solid var(--tc-error);background:color-mix(in srgb,var(--tc-error) 12%,var(--tc-bg-elevated));color:var(--tc-fg);font-family:var(--tc-font);font-size:12px}tc-viewer .plot-stale code{flex-basis:100%;opacity:.8;font-size:11px;word-break:break-word}tc-app .zoom-group{display:inline-flex;gap:2px;align-items:center}tc-app .zoom-group .side-btn{min-width:34px;padding-left:6px;padding-right:6px}@media(max-width:860px){tc-app .zoom-group .side-btn{min-width:40px;min-height:40px}}tc-app .report{flex:0 0 auto;max-height:30vh;overflow:auto;margin:0;padding:10px 14px;background:var(--tc-bg-sunken);color:var(--tc-fg);border-bottom:1px solid var(--tc-border);font-family:var(--tc-font);font-size:12px;line-height:1.45;white-space:pre}tc-app .report-toggle{margin-right:10px;white-space:nowrap}tc-app .err-count,tc-app .warn-count,tc-app .info-count,tc-app .verdict{padding:1px 6px;border-radius:8px;font-weight:600;font-size:11px;margin-left:6px;color:var(--tc-bg-sunken)}tc-app .err-count{background:var(--tc-error)}tc-app .warn-count{background:var(--tc-warning, #c78a2a)}tc-app .info-count{background:var(--tc-fg-muted, #7a7a78)}tc-app .verdict.pass{background:var(--tc-ok, #3f9d58)}tc-app .verdict.fail{background:var(--tc-error)}tc-app .spacer{flex:1 1 auto}tc-editor .cm-tooltip-autocomplete>ul>li[aria-selected]{background:var(--tc-accent);color:var(--tc-accent-fg)}tc-editor .tc-help-tooltip{background:var(--tc-bg-elevated);color:var(--tc-fg);border:1px solid var(--tc-border);border-radius:4px;padding:6px 10px;max-width:420px;font-family:var(--tc-font);font-size:12px}tc-editor .tc-help-tooltip .cm-help-line{font-weight:600;color:var(--tc-accent)}tc-editor .tc-help-tooltip .cm-help-scope{color:var(--tc-fg-muted);font-weight:400}tc-editor .tc-help-tooltip .cm-help-summary{margin:4px 0;color:var(--tc-fg)}tc-editor .tc-help-tooltip .cm-help-example{background:var(--tc-bg-sunken);border:1px solid var(--tc-border);border-radius:3px;padding:4px 6px;margin:4px 0 0;white-space:pre-wrap;font-family:var(--tc-font);font-size:11px;color:var(--tc-accent)}tc-viewer .empty{padding:24px;color:var(--tc-fg-muted);font-family:var(--tc-font)}tc-app .tabs-shell{display:flex;align-items:center;gap:4px}tc-app .tabs-shell .active,tc-app .active{font-weight:600;color:var(--tc-accent)}
