:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,PingFang SC,sans-serif;font-synthesis:none;color-scheme:dark;color:var(--text);background:var(--page);font-size:13px;--page: #212121;--sidebar: #171717;--surface: #212121;--surface-alt: #262626;--editor-bg: #1c1c1c;--hover: #2b2b2b;--selected: #343434;--text: #e8e8e8;--secondary: #b3b3b3;--muted: #969696;--border: #363636;--accent: #8ab4f8;--accent-strong: #a7c9ff;--accent-soft: #293340;--active-line: #252525;--selection: #3d4e68;--purple: #b1a6c6;--purple-soft: #302c38;--amber: #d3ae74;--amber-soft: #373125;--danger: #f09696;--success: #9abc9e;--mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;--sidebar-width: 224px}:root[data-theme=light]{color-scheme:light;--page: #fff;--sidebar: #f7f7f7;--surface: #fff;--surface-alt: #f8f8f8;--editor-bg: #fcfcfc;--hover: #eee;--selected: #e7e7e7;--text: #242424;--secondary: #616161;--muted: #777;--border: #e4e4e4;--accent: #3169b1;--accent-strong: #235a9e;--accent-soft: #edf2f8;--active-line: #f1f1f1;--selection: #dce8f8;--purple: #756885;--purple-soft: #f2eff6;--amber: #916b2e;--amber-soft: #f8f2e8;--danger: #ba3e3e;--success: #4d7553}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#6666 transparent}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px}#app{height:100dvh}[hidden]{display:none!important}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button,a,select,input[type=range]{-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.4}button,select{transition:background-color .12s,border-color .12s,color .12s}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[role=separator]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:inherit;text-decoration:none}input,select{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:4px}select{cursor:pointer}button svg{pointer-events:none}code,pre,kbd{font-family:var(--mono)}button,input,select,summary{touch-action:manipulation}.icon{width:18px;height:18px;flex-shrink:0;vertical-align:middle}.muted{color:var(--muted)}kbd{font:11px var(--mono);color:var(--muted);white-space:nowrap}.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);display:flex;flex-direction:column;background:var(--sidebar);border-right:1px solid var(--border);z-index:30}.sidebar-header{height:52px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 14px 0 18px}.sidebar-header strong{font-size:18px;font-weight:600;letter-spacing:-.4px}.sidebar-actions{padding:5px 10px 12px}.sidebar-action{display:flex;align-items:center;gap:11px;width:100%;min-height:36px;padding:8px;border:0;border-radius:6px;background:transparent;text-align:left;font-size:13px}.sidebar-action:hover{background:var(--hover)}.sidebar-action .icon{width:17px;height:17px;color:var(--secondary)}.sidebar-action kbd{margin-left:auto;font-size:10px}.sidebar-scroll{flex:1;min-height:0;overflow:auto;padding:0 10px 12px}.sidebar-section+.sidebar-section{margin-top:20px}.sidebar-section-heading{display:flex;align-items:center;justify-content:space-between;height:34px;padding:0 8px;color:var(--muted);font-size:12px}.sidebar-section-heading .icon-button,.sidebar-section-heading .text-button{width:24px;height:24px;padding:3px}.sidebar-section-heading .icon{width:14px;height:14px}.script-row{display:flex;align-items:center;min-height:36px;border-radius:6px;padding-right:3px}.script-row:hover{background:var(--hover)}.script-row.current,.script-row.active,.script-row:has(.script-open[aria-current=true]){background:var(--selected)}.script-open{display:flex;align-items:center;gap:7px;min-width:0;flex:1;align-self:stretch;padding:8px;border:0;background:transparent;border-radius:6px;text-align:left;font-size:13px}.script-open>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.script-open .icon{width:14px;height:14px;color:var(--muted)}.script-row .script-rename,.script-row .script-delete{width:25px;height:28px;padding:4px;opacity:0}.script-row:hover .script-rename,.script-row:hover .script-delete,.script-row:focus-within .script-rename,.script-row:focus-within .script-delete{opacity:1}.script-row .script-delete:hover{color:var(--danger)}.sidebar-examples details{margin:2px 0}.sidebar-examples summary{padding:8px;cursor:pointer;color:var(--secondary);font-size:12px;border-radius:5px}.sidebar-examples summary:hover{background:var(--hover)}.sidebar-examples summary::marker{font-size:10px}.sidebar-example{display:flex;align-items:center;gap:8px;width:100%;min-width:0;min-height:34px;padding:7px 8px 7px 20px;border:0;border-radius:5px;background:transparent;text-align:left;font-size:12px}.sidebar-example:hover,.sidebar-example.active{background:var(--hover)}.sidebar-example>span:first-child{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.example-op{color:var(--muted);font:10px var(--mono);margin-left:auto;white-space:nowrap}.sidebar-bottom{flex-shrink:0;padding:8px 10px 10px;border-top:1px solid var(--border)}.sidebar-bottom .sidebar-action{color:var(--secondary);min-height:34px;font-size:12px}.sidebar-backdrop{display:none}.app-shell{height:100%;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-width:0}.sidebar-collapsed .app-sidebar{display:none}.sidebar-collapsed .app-shell{margin-left:0}.topbar{flex-shrink:0;height:52px;padding:0 18px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--border);background:var(--surface)}.document-heading{display:flex;align-items:center;gap:9px;min-width:0}.document-title{display:flex;align-items:center;gap:8px;min-width:0;padding:6px 4px;border:0;border-radius:4px;background:transparent;font-size:14px;font-weight:550}.document-title:hover{background:var(--hover)}.document-title>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.document-title .icon{width:12px;height:12px;transform:rotate(90deg);color:var(--muted)}.document-state{color:var(--muted);font-size:11px;white-space:nowrap}.heading-actions{display:flex;align-items:center;gap:17px;flex-shrink:0}.auto-control{display:inline-flex;align-items:center;gap:7px;border:0;background:transparent;color:var(--secondary);font-size:12px;padding:5px 0;white-space:nowrap}.switch{display:block;width:26px;height:15px;background:#666;border-radius:10px;padding:2px}.switch:after{content:"";display:block;width:11px;height:11px;background:#fff;border-radius:50%;transition:transform .15s}.switch.on{background:#6487b6}.switch.on:after{transform:translate(11px)}.run-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:32px;padding:7px 12px;border:0;border-radius:6px;background:#ececec;color:#202020;font-size:12px;font-weight:550}.run-button:hover:not(:disabled){background:#fff}.run-button .icon{width:14px;height:14px}.run-button kbd{color:#646464;margin-left:5px}:root[data-theme=light] .run-button{background:#292929;color:#fff}:root[data-theme=light] .run-button:hover:not(:disabled){background:#444}:root[data-theme=light] .run-button kbd{color:#c3c3c3}.mobile-view-switch{display:none}.workspace{display:grid;grid-template-columns:minmax(300px,var(--editor-width, 32%)) 6px minmax(0,1fr);flex:1;min-height:0;min-width:0}.panel{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:var(--surface)}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px;height:42px;flex-shrink:0;padding:0 14px;border-bottom:1px solid var(--border)}.panel-title{font-size:12px;font-weight:550}.file-tab{display:flex;align-items:center;gap:8px;min-width:0;font:12px var(--mono);color:var(--secondary)}.file-tab>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-tab .icon{width:15px;height:15px;color:var(--muted)}.toolbar-group{display:inline-flex;align-items:center;gap:3px;flex-shrink:0}.icon-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;padding:5px;border:0;background:transparent;color:var(--secondary);border-radius:5px}.icon-button:hover:not(:disabled){background:var(--hover);color:var(--text)}.icon-button .icon{width:16px;height:16px}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;background:transparent;border:0;border-radius:4px;padding:6px;color:var(--secondary);font-size:12px;white-space:nowrap}.text-button:hover:not(:disabled){background:var(--hover);color:var(--text)}.text-button .icon{width:15px;height:15px}.compare-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:5px 8px;border:1px solid var(--border);border-radius:4px;font-size:12px;color:var(--secondary);background:transparent;white-space:nowrap}.compare-button .icon{width:14px;height:14px}.compare-button.active{background:var(--selected);color:var(--text)}.compare-button:hover{background:var(--hover)}.panel-resizer{display:flex;align-items:center;justify-content:center;width:6px;background:var(--sidebar);border-left:1px solid var(--border);border-right:1px solid var(--border);cursor:col-resize;touch-action:none}.panel-resizer span{width:2px;height:28px;border-radius:1px;background:var(--muted);opacity:.3}.panel-resizer:hover,.panel-resizer:focus-visible{background:var(--accent-soft)}.panel-resizer:hover span{opacity:1}.resizing,.resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.workspace.focus-mode{grid-template-columns:minmax(0,1fr)}.focus-mode .editor-panel,.focus-mode .panel-resizer{display:none}.statusbar{display:flex;align-items:center;gap:18px;height:25px;flex-shrink:0;padding:0 14px;border-top:1px solid var(--border);color:var(--muted);font-size:11px;background:var(--surface)}.runtime{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.runtime i{width:5px;height:5px;background:var(--success);border-radius:50%}.runtime[data-state=connecting] i{background:var(--amber)}.runtime[data-state=error] i{background:var(--danger)}.statusbar button{margin-left:auto;border:0;padding:3px 0;background:transparent;color:var(--muted);font-size:11px}.statusbar button:hover{color:var(--text)}#editor{flex:1;min-height:80px;overflow:hidden;background:var(--editor-bg)}.cm-editor{height:100%;color:var(--text);background:var(--editor-bg)}.cm-scroller{overflow:auto}.cm-line.executed-line{background:var(--accent-soft)!important;box-shadow:inset 2px 0 0 var(--accent)}.cm-tooltip{max-width:330px;color:var(--text)!important;background:var(--surface-alt)!important;border:1px solid var(--border)!important}.cm-tooltip-autocomplete ul li[aria-selected]{color:var(--text)!important;background:var(--selected)!important}.cm-panels{background:var(--surface-alt)!important;color:var(--text)!important;border-color:var(--border)!important}.cm-textfield{background:var(--editor-bg)!important;color:var(--text)!important;border-color:var(--border)!important}.cm-button{background:var(--hover)!important;color:var(--text)!important;border-color:var(--border)!important}.tv-syntax-keyword{color:#c5a4d7}.tv-syntax-comment{color:#89918a}.tv-syntax-string{color:#ceb18e}.tv-syntax-number{color:#9dbca9}.tv-syntax-function{color:#9ebddd}.tv-syntax-operator{color:var(--secondary)}:root[data-theme=light] .tv-syntax-keyword{color:#7b468d}:root[data-theme=light] .tv-syntax-comment{color:#777c73}:root[data-theme=light] .tv-syntax-string{color:#98602d}:root[data-theme=light] .tv-syntax-number{color:#337a66}:root[data-theme=light] .tv-syntax-function{color:#365d8a}.editor-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;min-height:28px;padding:5px 13px;border-top:1px solid var(--border);color:var(--muted);font-size:11px}#execution-status{display:flex;align-items:center;gap:6px}#execution-status i{width:5px;height:5px;border-radius:50%;background:var(--muted)}#execution-status.success i{background:var(--success)}#execution-status.pending i{background:var(--amber)}#execution-status.error{color:var(--danger)}#execution-status.error i{background:var(--danger)}#cursor-position{font:11px var(--mono);white-space:nowrap}#error-box{flex-shrink:0;max-height:30%;padding:12px 14px;overflow:auto;border-top:1px solid var(--border);color:var(--danger);background:color-mix(in srgb,var(--danger) 6%,var(--surface));font-size:12px;line-height:1.7}#error-box strong{font-weight:600}#error-box p{margin:7px 0;font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}#error-box small{font-size:12px}.console-section{flex-shrink:0;border-top:1px solid var(--border);min-height:0;max-height:35%;overflow:auto}#console-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;border:0;padding:8px 14px;background:var(--surface);color:var(--secondary);font-size:12px;text-align:left}#console-toggle:hover{background:var(--hover)}#output-count{margin-left:7px;color:var(--muted);font:11px var(--mono)}#console{margin:0;padding:8px 14px 14px;max-height:220px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--editor-bg);color:var(--secondary);font:12px/1.7 var(--mono)}.trace-section{flex-shrink:0;padding:8px 16px 9px;border-bottom:1px solid var(--border);background:var(--surface)}.trace-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.section-label{display:flex;align-items:center;gap:8px;color:var(--secondary);font-size:12px}.section-label .icon{width:14px;height:14px}#step-count{margin-left:4px;color:var(--muted);font:11px var(--mono)}.playback-controls{display:inline-flex;align-items:center;gap:2px}.playback-controls .icon-button{width:25px;height:25px}.playback-controls .icon{width:13px;height:13px}.playback-controls select{margin-left:4px;padding:2px 3px;background:transparent;border:0;color:var(--secondary);font:11px var(--mono)}.timeline{display:flex;align-items:center;gap:5px;overflow:auto;padding:6px 1px 2px}.trace-step{flex-shrink:0;display:flex;align-items:center;gap:7px;padding:6px 8px;border:1px solid transparent;border-radius:4px;background:transparent;text-align:left}.trace-step:hover{background:var(--hover)}.trace-step.selected{background:var(--selected);border-color:var(--border)}.trace-number{display:grid;place-items:center;width:23px;height:25px;color:var(--muted);font:11px var(--mono)}.trace-step.selected .trace-number{color:var(--text)}.trace-step strong{display:block;color:var(--text);font:12px var(--mono);white-space:nowrap}.trace-step small{display:block;margin-top:3px;color:var(--muted);font-size:11px;white-space:nowrap}.trace-step>.icon{width:11px;height:11px;margin-left:6px;color:var(--muted)}.trace-step:last-child>.icon{display:none}.timeline-placeholder{color:var(--muted);padding:8px 0;font-size:12px}.inspector-content{flex:1;min-height:0;overflow:auto;padding:16px 18px 18px}.step-caption{display:flex;align-items:center;justify-content:space-between;gap:10px}.line-label{font:11px var(--mono);color:var(--muted)}.operation-code{display:block;margin:9px 0 13px;padding:9px 11px;border:1px solid var(--border);border-radius:4px;background:var(--editor-bg);color:var(--text);font:12px/1.7 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}.view-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px;border-bottom:1px solid var(--border)}.view-tabs{display:flex;align-items:stretch;gap:16px}.view-tabs button{display:inline-flex;align-items:center;padding:8px 0 10px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:12px;white-space:nowrap}.view-tabs button:hover{color:var(--text)}.view-tabs button[aria-selected=true]{border-bottom-color:var(--text);color:var(--text)}.view-options{display:flex;align-items:center;gap:5px;margin-left:auto}.view-options select{border:0;background:transparent;color:var(--secondary);padding:4px 2px;font-size:11px}#heatmap{font-size:11px}#heatmap[aria-pressed=true]{color:var(--accent)}.canvases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.canvases.single{grid-template-columns:minmax(0,1fr)}.canvases.stale:before,.stale-analysis:before{content:"代码已更改，当前显示上次运行结果";display:block;grid-column:1 / -1;margin-bottom:1px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--amber) 25%,var(--border));border-radius:4px;background:var(--amber-soft);color:var(--amber);font-size:12px}.stale-analysis:before{margin-bottom:12px}.tensor-card{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:5px;background:var(--surface)}.tensor-card-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px 7px}.before-after{display:inline-flex;align-items:center;gap:6px;color:var(--secondary);font-size:12px;white-space:nowrap}.before-after i{width:5px;height:5px;border-radius:1px;background:#a69abb}.after .before-after i{background:#89aca0}.tensor-select{max-width:70%;min-width:0;padding:4px 5px;border:0;background:var(--surface-alt);color:var(--text);font:12px var(--mono)}.shape-chips{display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-height:37px;padding:4px 11px 10px}.dim-chip{display:inline-flex;align-items:baseline;gap:4px;color:var(--secondary)}.dim-chip small{font:10px var(--mono);color:var(--muted)}.dim-chip strong{font:13px var(--mono);color:var(--text)}.shape-times{color:var(--muted);font-size:11px}.element-count{margin-left:auto;color:var(--muted);font-size:11px;white-space:nowrap}.scalar-chip{color:var(--secondary);font:12px var(--mono)}.axis-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:7px 11px;border-top:1px solid var(--border);background:var(--surface-alt);font-size:11px}.axis-controls label{display:inline-flex;align-items:center;gap:5px;color:var(--secondary)}.axis-controls select{max-width:100px;padding:3px 4px;color:var(--secondary);font-size:11px}.axis-dot{width:4px;height:4px;border-radius:50%;opacity:.7}.fixed-controls{padding:0 11px;background:var(--surface-alt)}.fixed-controls:not(:empty){padding-bottom:8px;border-bottom:1px solid var(--border)}.fixed-axis{display:flex;align-items:center;gap:8px;padding:5px 0;color:var(--secondary);font-size:11px}.fixed-axis>span:first-child{min-width:31px;font-family:var(--mono)}input[type=range]{flex:1;min-width:0;height:14px;accent-color:var(--accent)}.index-input{width:40px;padding:3px;text-align:center;font:11px var(--mono);appearance:textfield;-moz-appearance:textfield}.index-input::-webkit-inner-spin-button{-webkit-appearance:none}.index-max{color:var(--muted);white-space:nowrap;font:11px var(--mono)}.grid-viewport{overflow:auto;padding:12px 8px 16px;min-height:156px;max-height:440px}.grid-viewport[aria-busy=true]{opacity:.55;pointer-events:none}.tensor-grid{margin:auto;border-spacing:3px;font-family:var(--mono)}.tensor-grid th{min-width:20px;padding:4px 3px;text-align:center;font-size:10px;font-weight:400}.tensor-grid .grid-corner,.grid-corner span{color:var(--muted);font-size:10px;white-space:nowrap}.tensor-grid td{padding:0}.tensor-cell{position:relative;min-width:34px;height:33px;padding:0 6px;border:1px solid color-mix(in srgb,var(--cell-color) 16%,var(--border));border-radius:3px;background:color-mix(in srgb,var(--cell-color) var(--cell-strength),var(--surface));color:var(--text);font:12px var(--mono)}.tensor-cell:hover{border-color:var(--secondary)}.tensor-cell.changed{border-color:var(--amber)}.tensor-cell.linked{outline:2px solid var(--accent);outline-offset:-1px;background:var(--accent-soft);color:var(--text);z-index:1}.grid-paging{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:5px;padding:0 11px 9px;color:var(--muted);font-size:11px}.paging-dots{color:var(--muted)}.page-control{display:inline-flex;align-items:center;gap:5px}.page-control button{width:24px;height:23px;padding:0;border:1px solid var(--border);border-radius:3px;background:var(--surface);color:var(--secondary)}.page-control button:hover:not(:disabled){background:var(--hover)}.tensor-card-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px;padding:8px 11px;border-top:1px solid var(--border);background:var(--surface-alt);color:var(--secondary);font:10px/1.5 var(--mono)}.storage-dot{display:inline-block;width:4px;height:4px;margin-right:5px;vertical-align:middle;border-radius:50%;background:var(--muted)}.canvas-legend{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding-top:10px;color:var(--muted);font-size:11px}.canvas-legend>span{display:inline-flex;align-items:center;gap:6px}.canvas-legend i{width:7px;height:7px;border-radius:1px}.legend-before{border:1px solid #a69abb;background:color-mix(in srgb,#a69abb 15%,var(--surface))}.legend-after{border:1px solid #89aca0;background:color-mix(in srgb,#89aca0 15%,var(--surface))}.legend-changed{border:1px solid var(--amber)}.metadata-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:19px 0 9px}.metadata-heading code{font-size:12px;color:var(--text)}.memory-badge{padding:3px 0;color:var(--secondary);font-size:11px;white-space:nowrap}.memory-badge.copied{color:var(--secondary)}.metadata-grid{display:grid;grid-template-columns:1.1fr 1.1fr 1fr 1fr;border:1px solid var(--border);border-radius:4px}.metadata-grid>div{min-width:0;padding:10px}.metadata-grid>div+div{border-left:1px solid var(--border)}.metadata-grid small{display:block;color:var(--muted);font:10px var(--mono)}.metadata-grid strong{display:block;margin-top:7px;color:var(--text);font:12px/1.5 var(--mono);overflow-wrap:anywhere}.metadata-grid .green-text{color:var(--text)}.metadata-grid .amber-text{color:var(--amber)}.hover-readout{display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-height:35px;padding:8px 0;margin-top:7px;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.hover-readout .icon{width:14px;height:14px}.hover-readout code,.hover-readout strong{color:var(--text);font:12px var(--mono)}.hover-readout.pinned{padding-left:8px;border-left:2px solid var(--accent)}.readout-storage{margin-left:auto;font-size:11px}.operation-help{margin-top:5px;border-top:1px solid var(--border);color:var(--secondary);font-size:12px}.operation-help summary{padding:11px 0;cursor:pointer;color:var(--secondary)}.operation-help summary:hover{color:var(--text)}.operation-help strong{display:block;padding:1px 0 0;color:var(--text);font-size:12px;font-weight:550}.operation-help p{margin:6px 0 4px;line-height:1.85}.inspector-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;min-height:26px;padding:5px 16px;border-top:1px solid var(--border);color:var(--muted);font-size:11px}#timing{font-family:var(--mono)}.empty-state{grid-column:1 / -1;padding:58px 12px;color:var(--muted);text-align:center;font-size:12px}.empty-state>.icon{width:30px;height:30px;color:var(--muted)}.empty-state h3{color:var(--secondary);font-size:14px;font-weight:500}.empty-state p{margin:8px 0;line-height:1.9}.empty-tensor,.slice-error,.unavailable{padding:28px 12px;color:var(--muted);text-align:center;font-size:12px;line-height:1.8}.slice-error{color:var(--amber)}.unavailable{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center}.spinner{display:inline-block;width:13px;height:13px;border:2px solid #8886;border-top-color:currentColor;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.analysis-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 14px}.analysis-heading h3{margin:0;font-size:13px;font-weight:550}.analysis-heading h3 span{color:var(--secondary)}.analysis-heading p{margin:7px 0 0;color:var(--muted);font-size:12px;line-height:1.6}.memory-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:4px;background:var(--surface-alt);font-size:12px;color:var(--secondary)}.memory-summary>span{display:flex;align-items:center;gap:7px}.memory-summary .icon{width:14px;height:14px}.memory-summary strong{color:var(--text);font-weight:550}.memory-summary code{font-size:11px}.memory-cells{display:grid;grid-template-columns:repeat(auto-fill,minmax(70px,1fr));gap:6px;max-height:375px;overflow:auto;padding:13px 0}.memory-cell{min-width:0;padding:8px 4px;border:1px solid var(--border);border-radius:3px;background:var(--surface-alt);color:var(--secondary)}.memory-cell:hover{background:var(--hover)}.memory-cell small,.memory-cell strong,.memory-cell span{display:block}.memory-cell small{color:var(--muted);font:10px var(--mono)}.memory-cell strong{margin:8px 0;color:var(--text);font:13px var(--mono);overflow-wrap:anywhere}.memory-cell span{color:var(--muted);font-size:10px}.memory-cell.aliased{border-color:var(--purple);background:var(--purple-soft)}.memory-cell.selected{outline:2px solid var(--accent);outline-offset:-1px}.analysis-footnote{padding:11px 0;color:var(--muted);font-size:11px;line-height:1.8;overflow-wrap:anywhere}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--border);border-radius:4px;overflow:hidden}.stats-grid>div{padding:13px;background:var(--surface-alt);border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.stats-grid>div:nth-child(3n){border-right:0}.stats-grid>div:nth-child(n+4){border-bottom:0}.stats-grid small{display:block;color:var(--muted);font-size:12px}.stats-grid strong{display:block;margin-top:10px;color:var(--text);font:19px var(--mono);overflow-wrap:anywhere}.distribution-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 0 16px;font-size:12px}.distribution-heading strong{font-weight:550}.distribution-heading>span{color:var(--muted);font-size:11px}.histogram{display:flex;gap:6px;height:153px;border-bottom:1px solid var(--border)}.histogram-column{display:flex;flex:1;min-width:0;flex-direction:column;justify-content:flex-end;text-align:center;color:var(--muted);font:11px var(--mono)}.histogram-column>span{margin-bottom:6px}.histogram-column>div{min-height:2px;background:color-mix(in srgb,var(--accent) 55%,var(--surface));border-radius:2px 2px 0 0}.histogram-column>small{overflow:hidden;padding:8px 0;text-overflow:ellipsis;font-size:10px}dialog{width:min(680px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:22px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);overflow:auto;box-shadow:0 18px 70px #0004}dialog::backdrop{background:#0008}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.dialog-header h2{margin:0;font-size:17px;font-weight:600}.search-field{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--editor-bg);color:var(--muted)}.search-field .icon{width:16px;height:16px}.search-field input{min-width:0;flex:1;padding:3px 0;border:0;outline:none;background:transparent;color:var(--text);font-size:13px}.search-field:focus-within{border-color:var(--accent)}.category-filters{display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:13px 0}.category-filters button{padding:5px 8px;border:0;border-radius:4px;background:transparent;color:var(--secondary);font-size:12px}.category-filters button:hover{background:var(--hover)}.category-filters button.active{color:var(--text);background:var(--selected)}.library-grid{display:block;max-height:48dvh;overflow:auto}.library-card{display:flex;align-items:center;gap:14px;width:100%;padding:13px 9px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;text-align:left}.library-card:hover{background:var(--hover)}.library-card-main{flex:1;min-width:0}.library-card h3{display:inline;margin:0;font-size:13px;font-weight:550}.library-card code{margin-left:10px;color:var(--muted);font-size:11px}.library-card p{margin:6px 0 0;color:var(--secondary);font-size:12px;line-height:1.65}.library-card>.icon{width:15px;height:15px;color:var(--muted)}.level-badge{color:var(--muted);font-size:11px;white-space:nowrap}.dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border);color:var(--muted);font-size:11px;line-height:1.8}.library-empty{padding:35px 10px;text-align:center;color:var(--muted);font-size:12px}.library-empty h3{font-size:14px;font-weight:500;color:var(--secondary)}.command-dialog{width:min(560px,calc(100vw - 32px));padding:12px;margin-top:15dvh}.command-dialog .search-field{border:0;background:transparent;padding:4px 7px}#command-results{max-height:48dvh;overflow:auto;margin-top:10px;padding-top:6px;border-top:1px solid var(--border)}.command-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:11px 9px;border:0;border-radius:4px;background:transparent;color:var(--text);text-align:left;font-size:13px}.command-item.selected{background:var(--selected)}.command-item>span{display:flex;align-items:center;gap:9px}.command-item .icon{width:14px;height:14px;color:var(--secondary)}.command-item small{font-size:11px;color:var(--muted);text-align:right}.command-empty{padding:22px 0;text-align:center;color:var(--muted);font-size:12px}.command-dialog .dialog-footer{margin-top:8px;padding:10px 7px 0}.help-dialog{width:min(570px,calc(100vw - 32px))}.shortcut-list{display:flex;flex-direction:column;gap:0;padding-bottom:14px}.shortcut-list>span{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);font-size:12px;color:var(--secondary)}.shortcut-list kbd{padding:3px 6px;border:1px solid var(--border);border-radius:4px}.help-topics{margin:8px 0 0;font-size:12px}.help-topics dt{color:var(--text);font-weight:550;margin-top:15px}.help-topics dd{margin:6px 0 0;color:var(--secondary);line-height:1.8}.help-note{margin:20px 0 0;padding-top:14px;border-top:1px solid var(--border);color:var(--muted);font-size:11px;line-height:1.8}.export-description{margin:0 0 15px;color:var(--secondary);font-size:12px;line-height:1.8}.export-actions{display:flex;flex-direction:column;gap:8px}.export-card{display:grid;grid-template-columns:20px 48px 1fr;align-items:center;gap:12px;padding:14px 12px;border:1px solid var(--border);border-radius:5px;background:var(--surface-alt);text-align:left}.export-card:hover{background:var(--hover)}.export-card .icon{width:18px;height:18px;color:var(--secondary)}.export-card strong{font-size:13px;font-weight:550}.export-card span{font-size:12px;line-height:1.6;color:var(--muted)}.script-dialog{width:min(420px,calc(100vw - 32px))}.field-label{display:block;margin-bottom:9px;color:var(--secondary);font-size:12px}#script-name{width:100%;padding:10px;font-size:13px;background:var(--editor-bg)}.dialog-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:23px}.primary-button,.secondary-button,.danger-button{min-width:64px;padding:8px 14px;border:1px solid var(--border);border-radius:5px;font-size:12px}.secondary-button{color:var(--text);background:transparent}.secondary-button:hover{background:var(--hover)}.primary-button{background:var(--text);border-color:var(--text);color:var(--surface)}.primary-button:hover{opacity:.88}.danger-button{color:#fff;background:#ae3f3f;border-color:#ae3f3f}.danger-button:hover{background:#c54b4b}.form-error{font-size:12px;color:var(--danger);line-height:1.7}#delete-description{color:var(--secondary);font-size:13px;line-height:1.8;overflow-wrap:anywhere}.toast{position:fixed;z-index:100;left:50%;bottom:42px;transform:translate(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:11px 15px;border:1px solid var(--border);border-radius:7px;color:var(--text);background:var(--surface-alt);box-shadow:0 6px 24px #0003;font-size:12px}.toast .icon{width:16px;height:16px}.toast button{padding:2px 0 2px 10px;border:0;border-left:1px solid var(--border);background:transparent;color:var(--accent);white-space:nowrap}@media(max-width:1200px){:root{--sidebar-width: 204px}.inspector-content{padding:14px}.canvases{gap:9px}.tensor-card-heading,.axis-controls{padding-left:9px;padding-right:9px}.shape-chips{padding-left:9px;padding-right:9px;gap:5px}.element-count{display:none}.view-tabs{gap:12px}.document-state{display:none}.grid-viewport{padding-left:5px;padding-right:5px}.metadata-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metadata-grid>div:nth-child(3){border-left:0}.metadata-grid>div:nth-child(n+3){border-top:1px solid var(--border)}}@media(max-width:1040px)and (min-width:761px){.canvases:not(.single){grid-template-columns:minmax(0,1fr)}.focus-mode .canvases:not(.single){grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid>div:nth-child(3n){border-right:1px solid var(--border)}.stats-grid>div:nth-child(2n){border-right:0}.stats-grid>div:nth-child(4){border-bottom:1px solid var(--border)}}@media(max-width:900px){:root{--sidebar-width: 240px}.app-sidebar{display:none}.app-shell,.sidebar-collapsed .app-shell{margin-left:0}.sidebar-open .app-sidebar{display:flex}.sidebar-open .sidebar-backdrop:not([hidden]){display:block;position:fixed;inset:0;z-index:25;width:100%;height:100%;border:0;background:#0008}.script-row .script-rename,.script-row .script-delete{opacity:1}}@media(max-width:760px){.topbar{padding:0 12px 0 8px;gap:10px}.heading-actions{gap:12px}.document-title{font-size:13px}.auto-control{font-size:11px;gap:5px}.run-button kbd{display:none}.run-button{min-height:31px;padding:7px 10px}.mobile-view-switch{display:flex;align-items:stretch;flex-shrink:0;gap:20px;min-height:38px;padding:0 15px;border-bottom:1px solid var(--border)}.mobile-view-switch button{padding:8px 2px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--secondary);font-size:12px}.mobile-view-switch button[aria-pressed=true]{border-bottom-color:var(--text);color:var(--text)}.workspace,.workspace.focus-mode{grid-template-columns:minmax(0,1fr)}.panel-resizer,.workspace[data-mobile-view=editor] .inspector-panel{display:none}.workspace[data-mobile-view=editor] .editor-panel{display:flex}.workspace[data-mobile-view=inspector] .editor-panel{display:none}.workspace[data-mobile-view=inspector] .inspector-panel{display:flex}#focus-view{display:none}.inspector-content{padding:14px}.trace-section{padding-left:14px;padding-right:14px}.element-count{display:inline}.statusbar{gap:12px;padding:0 12px;font-size:10px}#script-storage-status{display:none}.metadata-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.metadata-grid>div:nth-child(3){border-left:1px solid var(--border)}.metadata-grid>div:nth-child(n+3){border-top:0}}@media(max-width:520px){.auto-control{font-size:11px;gap:5px;padding:5px 0}.heading-actions{gap:8px}.document-heading{gap:5px}.canvases:not(.single),.focus-mode .canvases:not(.single){grid-template-columns:minmax(0,1fr)}.panel-header{padding-left:12px;padding-right:12px}.file-tab{font-size:11px;gap:6px}.toolbar-group{gap:1px}.toolbar-group .icon-button{width:27px}.inspector-content{padding:12px}.view-toolbar{gap:0}.view-tabs{gap:19px}.view-options{width:100%;justify-content:flex-end;padding:5px 0;border-top:1px solid var(--border)}.metadata-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metadata-grid>div:nth-child(3){border-left:0}.metadata-grid>div:nth-child(n+3){border-top:1px solid var(--border)}.metadata-heading .section-label{gap:6px}.readout-storage{margin-left:0}.analysis-heading{flex-wrap:wrap}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid>div:nth-child(3n){border-right:1px solid var(--border)}.stats-grid>div:nth-child(2n){border-right:0}.stats-grid>div:nth-child(4){border-bottom:1px solid var(--border)}.distribution-heading{flex-direction:column;align-items:flex-start;gap:6px}dialog{padding:18px;max-height:calc(100dvh - 32px)}.command-dialog{padding:10px}.library-card{padding:12px 3px;gap:8px}.library-card code{display:block;margin:5px 0 0}.level-badge{display:none}.dialog-footer{flex-wrap:wrap;gap:5px}.export-card{grid-template-columns:18px 44px 1fr;gap:9px;padding:12px 9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation-duration:1ms!important}}@media(min-width:901px){#app:not(.sidebar-collapsed) #sidebar-toggle{display:none}}.shape-diagnostic{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);color:var(--secondary)}.shape-diagnostic>strong{color:var(--text);font-size:12px}.diagnostic-table-wrap{width:100%;margin:8px 0;overflow:auto}.shape-diagnostic table{width:max-content;min-width:180px;border-spacing:4px;margin-left:-4px;font:12px var(--mono)}.shape-diagnostic th{padding:3px 6px;color:var(--muted);font-size:10px;font-weight:400;text-align:center}.shape-diagnostic th:first-child{max-width:140px;text-align:left;overflow-wrap:anywhere}.shape-diagnostic tbody th{color:var(--text);font-size:12px}.shape-diagnostic td{min-width:42px;padding:4px 8px;border:1px solid var(--border);border-radius:3px;text-align:center;color:var(--text);background:var(--surface)}.shape-diagnostic .diagnostic-conflict{border-color:var(--danger);color:var(--danger);font-weight:600;background:color-mix(in srgb,var(--danger) 8%,var(--surface))}.shape-diagnostic .diagnostic-implicit{color:var(--muted);border-style:dashed}.shape-diagnostic .diagnostic-empty{border-color:transparent;background:transparent;color:var(--muted)}.diagnostic-target{padding:4px 0;font-size:12px}.diagnostic-target code{color:var(--text);overflow-wrap:anywhere}.diagnostic-scalar{display:block;color:var(--muted);font-size:10px}#error-box .shape-diagnostic p{margin:8px 0;font-family:inherit;white-space:normal}.shape-diagnostic ul{margin:6px 0 0;padding-left:18px}.shape-diagnostic li+li{margin-top:5px}.diagnostic-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.reference-control{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;white-space:nowrap}.reference-control select{max-width:150px;height:28px;padding:0 5px;font-size:11px}#reveal-source{display:flex;align-items:center;gap:4px;margin-left:auto}#reveal-source .icon{width:13px;height:13px}body.vscode-workspace{--page: var(--vscode-editor-background, #212121);--surface: var(--vscode-editor-background, #212121);--sidebar: var(--vscode-sideBar-background, #171717);--surface-alt: var(--vscode-sideBar-background, #262626);--editor-bg: var(--vscode-editor-background, #1c1c1c);--text: var(--vscode-editor-foreground, #e8e8e8);--secondary: var(--vscode-foreground, #b3b3b3);--muted: var(--vscode-descriptionForeground, #969696);--border: var(--vscode-panel-border, #363636);--accent: var(--vscode-textLink-foreground, #8ab4f8);--hover: var(--vscode-list-hoverBackground, #2b2b2b);--selected: var(--vscode-list-inactiveSelectionBackground, #343434);--selection: var(--vscode-editor-selectionBackground, #3d4e68);--danger: var(--vscode-errorForeground, #f09696);padding:0;font-family:var(--vscode-font-family, sans-serif);color:var(--text);background:var(--page)}.vscode-workspace #theme,.vscode-workspace #vscode-download{display:none}.vscode-workspace .topbar{height:43px}.vscode-workspace .document-state{display:none}.source-bar{display:flex;align-items:center;gap:12px;flex-shrink:0;padding:7px 12px;border-bottom:1px solid var(--border);background:var(--surface-alt);font-size:11px}#source-state{flex-shrink:0;color:var(--secondary)}#source-file{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}#edit-source{white-space:nowrap;margin-left:auto}@media(max-width:560px){.reference-control{font-size:0;gap:0}.reference-control select{max-width:106px}}.share-button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:5px;padding:6px 9px;color:var(--secondary);background:transparent;font-size:12px;white-space:nowrap}.share-button:hover{background:var(--hover)}.share-button .icon{width:15px;height:15px}.share-dialog{width:min(560px,calc(100vw - 28px))}.share-dialog p{color:var(--secondary);line-height:1.7;font-size:12px}.share-dialog #share-summary{color:var(--text);overflow-wrap:anywhere}.share-link-row{display:flex;gap:8px;margin-top:7px}#share-link{min-width:0;flex:1;padding:8px;font-family:var(--mono);font-size:12px}#share-link-status{min-height:20px;margin:7px 0 16px}.share-privacy{padding-top:12px;border-top:1px solid var(--border)}.experiment-notice{flex-shrink:0;padding:9px 16px;font-size:12px;line-height:1.6;border-bottom:1px solid var(--border);background:var(--accent-soft);color:var(--text)}@media(max-width:600px){.heading-actions{gap:8px}.share-button{padding:7px}.share-button span{display:none}.share-link-row{flex-wrap:wrap}}
