:root{--bg:#0d0f12;--bg-panel:#14171c;--bg-elev:#1a1e25;--fg:#f0f3f8;--fg-dim:#c1c8d4;--fg-muted:#8a93a3;--accent:#5cc8ff;--accent-2:#ffb86c;--accent-3:#ff79c6;--good:#50fa7b;--warn:#ffb86c;--bad:#f55;--border:#2a2f38;--grid:#1f242c;--matrix-index-font-size:13px;--matrix-input-font-size:11px;--chamber-a:#5cc8ff0f;--chamber-b:#ffb86c0d;--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);font-family:var(--font-ui);margin:0;padding:0;font-size:13px;overflow:hidden}:root{--left-w:380px;--right-w:420px;--handle-w:6px}#app{grid-template-columns:var(--left-w) var(--handle-w) 1fr var(--handle-w) var(--right-w);background:var(--border);height:100vh;display:grid}#left-panel,#right-panel{background:var(--bg-panel);min-width:0;padding:16px 14px;overflow:hidden auto}.resize-handle{background:var(--bg-elev);cursor:ew-resize;-webkit-user-select:none;user-select:none;touch-action:none;z-index:5;position:relative}.resize-handle:hover{background:var(--accent)}.resize-handle:after{content:"";background:var(--fg-muted);opacity:.35;pointer-events:none;border-radius:1px;width:2px;height:28px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.resize-handle:hover:after{opacity:1;background:var(--accent)}.resize-handle.dragging{background:var(--accent)}#canvas-wrap{background:var(--bg);position:relative;overflow:hidden}#canvas{cursor:grab;width:100%;height:100%;display:block}#canvas:active{cursor:grabbing}#canvas.interaction-locked{cursor:not-allowed}.canvas-overlay-btn{background:var(--bg-elev);border:1px solid var(--border);width:28px;height:28px;color:var(--fg);cursor:pointer;opacity:.7;border-radius:4px;justify-content:center;align-items:center;font-size:16px;line-height:1;transition:opacity .15s;display:flex;position:absolute;top:8px}.canvas-overlay-btn:hover:not(:disabled){opacity:1;border-color:var(--accent)}.canvas-overlay-btn:disabled{opacity:.3;cursor:not-allowed}#zoom-reset{right:8px}#undo-btn{right:44px}h2{letter-spacing:.02em;color:var(--fg);margin:0 0 10px;font-size:13px;font-weight:600}h2.app-title{margin:0 0 14px;font-size:15px}h2.app-title a{color:var(--fg);border-bottom:1px dashed var(--fg-muted);padding-bottom:1px;text-decoration:none}h2.app-title a:hover{color:var(--accent);border-bottom-color:var(--accent)}h2.app-title a .katex{color:inherit}h3{letter-spacing:.02em;color:var(--fg-dim);margin:16px 0 6px;font-size:11px;font-weight:500}[data-tex],.katex{text-transform:none!important;letter-spacing:normal!important}.katex{font-size:1em}.dim{color:var(--fg-dim);font-weight:400}.mono{font-family:var(--font-mono);color:var(--fg);font-size:12px}#entry-grid{grid-template-columns:repeat(4,1fr);gap:3px;margin-bottom:4px;display:grid}#entry-grid .cell{aspect-ratio:1;background:var(--bg-elev);font-family:var(--font-mono);color:var(--fg-muted);cursor:pointer;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;font-size:10px;transition:all .12s;display:flex}#entry-grid .cell:hover{color:var(--fg);background:#232932}#entry-grid .cell.diag{cursor:default;color:var(--fg-muted);opacity:.4;background:0 0}#entry-grid .cell.selected{background:var(--accent);color:var(--bg);border-color:var(--accent)}#d-input-wrap,.n-input-wrap,.precision-wrap,.dataset-wrap{align-items:center;gap:6px;margin-bottom:6px;display:flex}.precision-wrap label,.dataset-wrap label{color:var(--fg-muted);font-size:12px}#dataset-select{background:var(--bg-elev);border:1px solid var(--border);color:var(--fg);font-family:var(--font-mono);border-radius:3px;flex:1;min-width:0;padding:3px 6px;font-size:12px}#dataset-select:focus{border-color:var(--accent);outline:none}#precision-select{background:var(--bg-elev);border:1px solid var(--border);color:var(--fg);font-family:var(--font-mono);border-radius:3px;padding:3px 6px;font-size:12px}#precision-select:focus{border-color:var(--accent);outline:none}#n-input{background:var(--bg-elev);border:1px solid var(--border);color:var(--fg);font-family:var(--font-mono);field-sizing:content;text-align:right;border-radius:3px;outline:none;min-width:3ch;padding:4px 6px;font-size:12px}#n-input:focus{border-color:var(--accent)}@supports not (field-sizing:content){#n-input{width:4ch}}#d-input{background:var(--bg-elev);border:1px solid var(--border);color:var(--fg);font-family:var(--font-mono);field-sizing:content;text-align:right;border-radius:3px;outline:none;min-width:4ch;padding:4px 6px;font-size:12px}@supports not (field-sizing:content){#d-input{width:7ch}}#d-input:focus{border-color:var(--accent)}#d-input.invalid{border-color:var(--bad)}#d-slider-wrap{height:28px;margin-bottom:8px;position:relative}#d-slider-wrap input[type=range]{width:100%;accent-color:var(--accent);z-index:2;background:0 0;margin:0;position:absolute;top:6px;left:0}#d-marker-strip{pointer-events:none;z-index:1;position:absolute;inset:0 8px}#d-marker-strip .d-mark{width:1px;position:absolute;top:0;bottom:0}#d-marker-strip .d-mark.ray{background:var(--accent-3);opacity:.85;width:2px;margin-left:-1px}#d-readout{margin-top:6px;line-height:1.5}#stokes-display{background:var(--bg-elev);font-family:var(--font-mono);border-radius:4px;min-height:60px;padding:14px;font-size:12px;line-height:1.6}#stokes-display .label{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px}#stokes-display .value{color:var(--fg);margin-top:4px;font-size:14px}#stokes-display .complex-re{color:var(--accent)}#stokes-display .complex-im{color:var(--accent-2)}.im-unit{margin-left:.05em;font-family:Latin Modern Roman,Computer Modern Roman,STIX Two Math,Times New Roman,serif;font-style:normal;font-weight:500}#hud{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--border);pointer-events:none;background:#14171cd9;border-radius:4px;padding:6px 10px;position:absolute;bottom:12px;left:12px}#path-info{background:var(--bg-elev);white-space:pre-wrap;border-radius:4px;padding:10px}#path-info .provenance-chip{border:1px solid var(--border);max-width:100%;color:var(--fg-dim);overflow-wrap:anywhere;background:#ffffff0a;border-radius:4px;padding:3px 6px;display:inline-block}.state-table-wrap{max-width:100%;margin-bottom:6px;overflow-x:auto}.state-table-wrap::-webkit-scrollbar{-webkit-appearance:none;height:8px}.matrix-grid::-webkit-scrollbar{-webkit-appearance:none;height:8px}.state-table-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.matrix-grid::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.state-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--fg-dim)}.matrix-grid::-webkit-scrollbar-thumb:hover{background:var(--fg-dim)}.state-table-wrap::-webkit-scrollbar-track{background:0 0}.matrix-grid::-webkit-scrollbar-track{background:0 0}.state-table-wrap,.matrix-grid{scrollbar-width:thin}.state-table{border-collapse:separate;border-spacing:2px;width:auto;font-family:var(--font-mono);font-size:var(--matrix-index-font-size);table-layout:auto}.state-table th{color:var(--fg-muted);text-align:center;padding:2px 0;font-weight:500}.state-table td{background:var(--bg-elev);border-radius:2px;padding:0}.state-table input.cx{color:var(--fg);font-family:var(--font-mono);font-size:var(--matrix-input-font-size);box-sizing:border-box;font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:2px;outline:none;padding:3px 4px}.state-table input.cx:focus{border-color:var(--accent);background:var(--bg)}.state-table input.cx.invalid{border-color:var(--bad)}.state-table .cx-pair{grid-template-columns:max-content 1.25ch;align-items:center;gap:1px 2px;display:grid}.state-table .cx-pair input.cx{field-sizing:content;text-align:right;grid-column:1/2;width:100%;min-width:5ch}@supports not (field-sizing:content){.state-table .cx-pair input.cx{width:8ch;min-width:8ch}}.state-table .cx-pair .im-unit-suffix{color:var(--fg-dim);grid-area:2/2/auto/3;justify-self:center;font-size:11px}.state-table .cx-pair input.cx[data-axis=im]{color:var(--fg-dim)}.state-table .row-label{color:var(--fg-muted);text-align:right;font-size:var(--matrix-index-font-size);background:var(--bg-panel);z-index:2;padding-right:4px;position:sticky;left:0}.state-table thead th:first-child{background:var(--bg-panel);z-index:3;position:sticky;left:0}.state-table.a-table input.cx,.state-table.u-table input.cx{font-size:var(--matrix-input-font-size)}.state-table.u-table .mk-input{text-align:center;width:44px}.state-table .cx-expr-cell{flex-direction:column;align-items:stretch;gap:2px;padding:2px 3px;display:flex}.state-table input.cx.cx-expr{field-sizing:content;text-align:left;width:100%;min-width:14ch}@supports not (field-sizing:content){.state-table input.cx.cx-expr{width:18ch;min-width:18ch}}.state-table .cx-preview{color:var(--fg-dim);text-align:center;min-height:14px;font-size:11px;line-height:1.2;overflow-x:auto}.state-table .cx-preview:empty{display:none}.state-table .cx-preview .katex{font-size:12px}.input-mode-toggle{vertical-align:middle;font-family:var(--font-mono);align-items:center;gap:8px;margin-left:8px;display:inline-flex}.input-mode-toggle .mode-group{border:1px solid var(--border,#444);border-radius:3px;display:inline-flex;overflow:hidden}.input-mode-toggle .mode-btn{color:var(--fg-muted);cursor:pointer;background:0 0;border:0;padding:1px 6px;font-family:inherit;font-size:10px}.input-mode-toggle .mode-btn:hover{color:var(--fg)}.input-mode-toggle .mode-btn.active{background:var(--accent);color:var(--bg)}.input-mode-toggle .source-toggle{border:1px solid var(--border,#444);color:var(--fg-muted);cursor:pointer;background:0 0;border-radius:3px;padding:1px 6px;font-family:inherit;font-size:10px}.input-mode-toggle .source-toggle:hover{color:var(--fg)}.input-mode-toggle .source-toggle[hidden]{display:none}.state-table.source-hidden .cx-expr-cell{cursor:pointer}.state-table.source-hidden .cx-expr-cell input.cx-expr{display:none}.state-table.source-hidden .cx-expr-cell.editing input.cx-expr{display:block}.state-table.source-hidden .cx-expr-cell.editing{cursor:text}.state-table.source-hidden .cx-expr-cell .cx-preview{min-height:18px;padding:2px 4px}.state-table.source-hidden .cx-expr-cell .cx-preview:empty:before{content:"0";color:var(--fg-dim)}.state-actions{flex-direction:column;gap:8px;margin-top:12px;display:flex}.btn-secondary{background:var(--bg-elev);color:var(--fg);border:1px solid var(--border);font-family:var(--font-ui);cursor:pointer;border-radius:3px;padding:6px 10px;font-size:11px;transition:all .1s}.btn-secondary:hover{background:var(--border)}.btn-primary{background:var(--accent);color:var(--bg);font-family:var(--font-ui);cursor:pointer;border:none;border-radius:3px;padding:8px 12px;font-size:12px;font-weight:500;transition:all .1s}.btn-primary:hover:not(:disabled){background:#82d6ff}.btn-primary:disabled{background:var(--bg-elev);color:var(--fg-muted);cursor:not-allowed}.btn-primary.computing{background:var(--accent-2);color:var(--bg)}#recompute-status{min-height:14px;font-size:11px;line-height:1.4}.progress-bar{background:var(--bg-elev);border-radius:2px;width:100%;height:4px;margin-bottom:4px;overflow:hidden}.progress-bar>div{background:var(--accent);height:100%;transition:width .2s}.stale-banner{color:var(--warn);background:#ffb86c1a;border:1px solid #ffb86c40;border-radius:3px;padding:6px 8px;font-size:10px;line-height:1.4}.sd-view-selector{flex-wrap:wrap;gap:4px;margin:0 0 8px;display:flex}.sd-view-selector .sd-view-btn{background:var(--bg-elev);color:var(--fg-muted);border:1px solid var(--border);font-family:var(--font-ui);cursor:pointer;border-radius:3px;padding:4px 10px;font-size:12px;line-height:1;transition:background .1s,color .1s,border-color .1s}.sd-view-selector .sd-view-btn .katex{color:inherit;font-size:1em}.sd-view-selector .sd-view-btn:hover{color:var(--fg);background:#232932}.sd-view-selector .sd-view-btn.active{background:var(--accent);color:var(--bg);border-color:var(--accent)}.matrix-grid{font-family:var(--font-mono);font-size:var(--matrix-input-font-size);gap:2px;max-width:100%;margin-bottom:12px;display:grid;overflow-x:auto}.matrix-grid .sm-header{background:var(--bg-panel);color:var(--fg-muted);font-family:KaTeX_Main,Times New Roman,serif;font-size:var(--matrix-index-font-size);justify-content:center;align-items:center;padding:4px 6px;display:flex}.matrix-grid .sm-row-header{z-index:2;justify-content:flex-end;min-width:28px;padding-right:8px;position:sticky;left:0}.matrix-grid .sm-corner{z-index:3;background:var(--bg-panel);position:sticky;left:0}.matrix-grid .sm-cell{background:var(--bg-elev);cursor:pointer;min-width:calc(var(--cs-int-w,1ch) + var(--cs-frac-w,0ch) + 4ch);border:1px solid #0000;border-radius:2px;justify-content:center;align-items:center;min-height:40px;padding:4px 6px;font-family:KaTeX_Main,Times New Roman,serif;font-size:12px;line-height:1.15;display:flex}.cs-grid{grid-template-columns:var(--cs-int-w,max-content) var(--cs-frac-w,max-content) max-content;font-variant-numeric:tabular-nums;place-items:baseline center;gap:0;display:grid}.cs-int{justify-self:end;align-items:baseline;display:inline-flex}.cs-sign{color:var(--fg);margin-right:.05ch}.cs-frac{justify-self:start}.cs-i{justify-self:start;margin-left:3px}.cs-zero{color:var(--fg-muted)}.cs-zero .katex{font-size:inherit;color:inherit}.matrix-grid .sm-cell:hover{background:#232932}.matrix-grid .sm-cell.diag{cursor:default;color:var(--fg-muted);text-align:center;pointer-events:none;background:0 0;align-items:center;font-size:12px}.matrix-grid .sm-cell.block-top{border-top:2px solid var(--accent);border-top-color:#5cc8ff66}.matrix-grid .sm-cell.block-left{border-left:2px solid var(--accent);border-left-color:#5cc8ff66}.a-table td.block-left,.a-table th.block-left{border-left:2px solid #5cc8ff66}.a-table tr.block-top td,.a-table tr.block-top th{border-top:2px solid #5cc8ff66}.block-sub-cell{background:var(--bg-elev);border-radius:2px;padding:4px 6px;font-family:KaTeX_Main,Times New Roman,serif;font-size:11px}.matrix-grid .sm-cell.selected{border-color:var(--accent);background:#5cc8ff1a}.matrix-grid .sm-mag{color:var(--accent);font-size:11px;font-weight:500}.matrix-grid .sm-arg{color:var(--fg-muted);font-size:9px}.axis-line{stroke:var(--fg-muted);stroke-width:1px;opacity:.18}.axis-tick{fill:var(--fg-muted);opacity:.6}.axis-label{fill:var(--fg-muted);font-family:var(--font-mono);opacity:.55;pointer-events:none;font-size:11px}.cut-line{stroke:var(--fg-muted);stroke-width:1px;opacity:.4;stroke-dasharray:4 3}.puncture{fill:var(--accent);stroke:#fff;stroke-width:1.5px;cursor:grab}.puncture:hover{fill:var(--accent-2)}.puncture.dragging{cursor:grabbing}.puncture-label{fill:var(--fg);font-family:var(--font-mono);pointer-events:none;font-size:11px}.path-line{fill:none;stroke:var(--accent-3);stroke-width:2px;stroke-linejoin:round}.path-arrow{fill:var(--accent-3);stroke:none}.path-start-dot{fill:var(--accent-3);stroke:var(--bg);stroke-width:1.5px}.path-vertex{fill:var(--accent-3);stroke:var(--bg);stroke-width:1.5px;cursor:grab}.path-vertex.dragging{cursor:grabbing}.intersection-dot{fill:var(--good);stroke:var(--bg);stroke-width:1px}.axis{stroke:var(--grid);stroke-width:1px}.tick-label{fill:var(--fg-muted);font-family:var(--font-mono);font-size:10px}.interaction-locked .puncture,.interaction-locked .path-vertex{cursor:wait;opacity:.65;pointer-events:none}body.computing-lock input:disabled,body.computing-lock select:disabled,body.computing-lock button:disabled{opacity:.45;cursor:not-allowed}.isc-launcher{font-size:11px;font-family:var(--font-mono);vertical-align:middle;align-items:center;gap:4px;margin-left:10px;display:inline-flex}.isc-launcher .isc-scope{background:var(--bg-elev);color:var(--fg);border:1px solid var(--border,#444);cursor:pointer;border-radius:3px;padding:1px 4px;font-family:inherit;font-size:10px}.isc-launcher .isc-btn{background:var(--accent);color:var(--bg);cursor:pointer;letter-spacing:.5px;border:0;border-radius:3px;padding:2px 8px;font-family:inherit;font-size:10px;font-weight:600}.isc-launcher .isc-btn:disabled{opacity:.45;cursor:not-allowed}.isc-launcher .isc-btn:hover:not(:disabled){filter:brightness(1.1)}.isc-launcher .isc-clear{color:var(--fg-muted);border:1px solid var(--border,#444);background:0 0;padding:0 6px;font-weight:400}.isc-launcher .isc-clear:hover{color:var(--fg)}.isc-results{border-top:1px solid var(--border,#333);font-size:12px;line-height:1.5;font-family:var(--font-sans,inherit);margin-top:10px;padding:8px 10px}.isc-results .dim{color:var(--fg-dim)}.isc-results .mono{font-family:var(--font-mono)}.isc-results .isc-hint,.isc-results .isc-loading{color:var(--fg-muted)}.isc-results .isc-error{color:var(--bad)}.isc-results .isc-entry-head{margin-bottom:6px;font-weight:600}.isc-results .isc-cell{color:var(--accent);font-family:var(--font-mono)}.isc-results .isc-groups{flex-direction:column;gap:8px;display:flex}.isc-results .isc-axis{font-size:11px}.isc-results .isc-axis-name{color:var(--fg-muted);font-weight:600}.isc-results .isc-list{margin:3px 0 0;padding-left:10px;list-style:none}.isc-results .isc-list li{flex-wrap:wrap;align-items:baseline;gap:6px;padding:1px 0;display:flex}.isc-results .isc-engine{letter-spacing:.5px;text-transform:uppercase;font-size:9px;font-family:var(--font-mono);border-radius:2px;padding:0 4px}.isc-results .isc-eng-ries{color:#8fc0f0;background:#78b4f02e}.isc-results .isc-eng-wolfram{color:#f0b88f;background:#f0a0782e}.isc-results .isc-eng-trivial{color:var(--fg-muted);background:#8c8c8c2e}.isc-results .isc-form{font-family:var(--font-mono);font-size:12px}.isc-results .isc-err{color:var(--fg-dim);font-size:10px}.isc-results .isc-err.exact{color:var(--good)}.isc-results .isc-cache-summary{border-top:1px dashed var(--border,#333);color:var(--fg-muted);margin-top:8px;padding-top:6px;font-size:11px}.isc-results .isc-jump{background:var(--bg-elev);border:1px solid var(--border,#444);color:var(--fg);cursor:pointer;border-radius:2px;margin:1px 2px;padding:1px 5px;font-size:10px}.isc-results .isc-jump:hover{border-color:var(--accent)}.sm-cell .cs-symbolic{color:var(--accent);cursor:help;justify-content:center;align-items:center;padding:2px 4px;font-size:14px;display:inline-flex}.sm-cell .cs-symbolic .katex{font-size:1em}
