:root{color:#202423;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f7f3;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100svh;margin:0}button,input{font:inherit}button{cursor:pointer}:root{--surface:#fff;--surface-subtle:#fbfcfb;--surface-muted:#f8fbf9;--surface-notice:#fbfcf3;--border:#dce2d9;--border-strong:#cfd8cf;--border-soft:#edf0eb;--text:#202423;--text-muted:#637069;--text-subtle:#657069;--accent:#227c68;--accent-strong:#145f4f;--danger:#c94e43;--warning:#c88c1e}.app-shell{width:min(1180px,100% - 32px);min-height:100svh;margin:0 auto;padding:30px 0 54px}.app-shell[data-debug-focus=true]{width:calc(100% - 16px);padding:8px 0}.app-shell[data-debug-focus=true]>.header,.app-shell[data-debug-focus=true]>.import-status,.app-shell[data-debug-focus=true]>.control-band,.app-shell[data-debug-focus=true]>.summary-grid,.app-shell[data-debug-focus=true]>.program-tabs,.app-shell[data-debug-focus=true]>.empty-panel{display:none}.header{justify-content:space-between;align-items:start;gap:22px;padding-bottom:22px;display:flex}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.hidden-file-input{display:none}.header h1{letter-spacing:0;margin:0;font-size:25px;line-height:1.2}.header p{color:var(--text-subtle);margin:7px 0 0;font-size:14px}.connection-badge{background:var(--surface);border:1px solid #d6ddd4;border-radius:8px;align-items:center;gap:10px;min-width:148px;min-height:46px;padding:8px 11px;display:inline-flex}.connection-badge>span{background:#9ba49e;border-radius:999px;flex:none;width:10px;height:10px}.connection-badge[data-state=open]>span{background:#24875f;box-shadow:0 0 0 4px #24875f1f}.connection-badge[data-state=connecting]>span{background:var(--warning);box-shadow:0 0 0 4px #c88c1e1f}.connection-badge[data-state=error]>span{background:var(--danger);box-shadow:0 0 0 4px #c94e4321}.connection-badge strong{display:block}.control-band{border:1px solid var(--border);background:var(--surface);border-radius:8px;gap:14px;padding:16px;display:grid}.import-status{background:var(--surface-notice);color:#5e6843;border:1px solid #d9dfca;border-radius:8px;gap:8px;margin-bottom:14px;padding:12px 14px;font-size:13px;line-height:1.45;display:grid}.import-status[data-tone=error]{color:#9c3930;background:#fff7f6;border-color:#ead1cd}.import-status div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.import-status strong{color:#26302b}.import-status ul{gap:3px;margin:0;padding-left:18px;display:grid}.app-input-stack,.app-id-field,.app-name-field{gap:7px;display:grid}.app-input-stack{grid-template-columns:minmax(260px,1.4fr) minmax(220px,1fr);align-items:end}.app-id-field>label,.app-name-field span,.metric span,.program-meta span,.execution-select span{color:var(--text-muted);letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:700}input,select{border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:43px;color:var(--text);border-radius:7px;outline:none;padding:8px 10px;font:15px/1.4 ui-monospace,Consolas,monospace}select{font:14px/1.4 ui-monospace,Consolas,monospace}.app-name-field input{font:15px/1.4 Inter,ui-sans-serif,system-ui,sans-serif}.app-id-combobox{position:relative}.app-id-suggestions{z-index:30;border:1px solid var(--border-strong);background:var(--surface);border-radius:8px;max-height:230px;padding:5px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow:auto;box-shadow:0 14px 32px #26302b24}.app-id-suggestions button{text-align:left;background:0 0;border:0;border-radius:5px;gap:3px;width:100%;min-height:0;padding:9px 10px;display:grid}.app-id-suggestions button:hover,.app-id-suggestions button:focus,.app-id-suggestions button[data-active=true]{background:#edf4f0}.app-id-suggestions strong,.app-id-suggestions span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.app-id-suggestions strong{font:14px/1.35 ui-monospace,Consolas,monospace}.app-id-suggestions span{color:var(--text-subtle);font-size:13px}input:disabled{color:#858f88;background:#f7f9f6}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #227c6821}input[data-validity=valid]{border-color:#72b892}input[data-validity=invalid]{border-color:#cf6b61;box-shadow:0 0 0 3px #cf6b611a}button{border:1px solid var(--border-strong);background:var(--surface);color:#26302b;border-radius:7px;min-height:38px;padding:0 13px}button:hover{border-color:var(--accent)}button:disabled{cursor:not-allowed;color:#8a948e;border-color:var(--border);background:#f5f7f3}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.metric{border:1px solid var(--border);background:var(--surface);border-radius:8px;align-content:center;gap:8px;min-height:76px;padding:13px;display:grid}.metric strong{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:0;font-size:20px;overflow:hidden}.empty-panel{border:1px solid var(--border);background:var(--surface);color:var(--text-subtle);border-radius:8px;margin-top:16px;padding:24px}.empty-panel[data-tone=error]{color:#9c3930;background:#fff7f6;border-color:#d6938d}.program-tabs{gap:8px;margin-top:16px;display:flex}.program-tabs button[data-active=true]{border-color:var(--accent);color:var(--accent-strong);background:#e7f2ed;font-weight:700}.selection-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px;padding:12px 16px;display:grid}.app-shell[data-debug-focus=true] .selection-panel{margin-top:0}.code-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin-top:12px;overflow:hidden}.app-shell[data-debug-focus=true] .code-panel{margin-top:0}.program-meta{border-bottom:1px solid var(--border);grid-template-columns:minmax(160px,.7fr) minmax(0,1.4fr) repeat(2,minmax(120px,.4fr));gap:14px;padding:14px 16px;display:grid}.program-meta div{gap:6px;min-width:0;display:grid}.program-meta strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:13px/1.35 ui-monospace,Consolas,monospace;overflow:hidden}.mapping-warning{color:#9c3930;background:#fff7f6;border-bottom:1px solid #ead1cd;padding:12px 16px;font-size:14px}.mapping-warning[data-tone=notice]{background:var(--surface-notice);color:#5e6843;border-bottom-color:#d9dfca}.execution-errors{background:snow;border-bottom:1px solid #ead1cd;gap:10px;padding:12px 16px 14px;display:grid}.execution-errors-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.execution-errors-header span{color:#9c3930;letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:700}.execution-errors-header strong{color:#9c3930;font-variant-numeric:tabular-nums;font:12px/1.35 ui-monospace,Consolas,monospace}.execution-errors-list{gap:6px;display:grid}.execution-error-item{background:var(--surface);text-align:left;border:1px solid #ead1cd;border-radius:7px;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:12px;min-height:40px;padding:8px 10px;display:grid}button.execution-error-item{cursor:pointer}button.execution-error-item:hover,button.execution-error-item:focus{border-color:var(--danger);box-shadow:0 0 0 3px #c94e431f}.execution-error-item[data-disabled=true]{color:var(--text-subtle);background:#fffdfd}.execution-error-location{color:#9c3930;font-variant-numeric:tabular-nums;white-space:nowrap;font:12px/1.35 ui-monospace,Consolas,monospace}.execution-error-message{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;line-height:1.45;overflow:hidden}.debugger-panel{border-bottom:1px solid var(--border);background:var(--surface-muted);gap:10px;padding:12px 16px;display:grid}.debugger-panel[data-playing=true]{box-shadow:inset 3px 0 0 var(--accent);background:#f3faf6}.debugger-controls{justify-content:space-between;align-items:center;gap:12px;display:flex}.debugger-button-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.debugger-step-button{min-height:32px;padding:0 10px;font-size:13px}.debugger-export-button{min-width:104px}.debugger-preset-field{background:var(--surface);color:#46524d;border:1px solid #cfd8d1;border-radius:7px;align-items:center;gap:6px;height:32px;padding:0 7px 0 9px;display:inline-flex}.debugger-preset-field span{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:700}.debugger-preset-field select{width:auto;min-width:118px;max-width:142px;min-height:30px;color:var(--text);background:0 0;border:0;border-radius:0;padding:0 18px 0 0;font:13px/1.35 Inter,ui-sans-serif,system-ui,sans-serif}.debugger-preset-field select:focus{box-shadow:none}.debugger-export-status{background:var(--surface);color:#46524d;border:1px solid #cfd8d1;border-radius:7px;padding:8px 10px;font-size:13px}.debugger-export-status[data-tone=error]{color:#9a3228;background:#fff7f6;border-color:#f0c6c2}.debugger-counter{min-width:max-content;color:var(--accent-strong);font-variant-numeric:tabular-nums;font:13px/1.35 ui-monospace,Consolas,monospace}.trace-step-summary{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.trace-step-summary span{background:var(--surface);min-height:30px;color:var(--text);font-variant-numeric:tabular-nums;border:1px solid #d6ddd4;border-radius:7px;align-items:center;gap:7px;padding:5px 9px;font:13px/1.35 ui-monospace,Consolas,monospace;display:inline-flex}.trace-step-summary strong{color:var(--text-muted);letter-spacing:0;text-transform:uppercase;font:700 11px/1.35 Inter,ui-sans-serif,system-ui,sans-serif}.debugger-detail,.debugger-empty{background:var(--surface);color:#4f5c55;border:1px solid #d6ddd4;border-radius:7px;min-width:0;padding:9px 10px;font-size:14px;line-height:1.45}.debugger-detail{overflow-wrap:anywhere}.debugger-detail[data-tone=error]{color:#9c3930;background:snow;border-color:#ead1cd}.execution-bar{border-bottom:1px solid var(--border);background:var(--surface);align-items:end;padding:12px 16px;display:grid}.execution-select{gap:7px;min-width:0;display:grid}.code-toolbar{border-bottom:1px solid var(--border);background:var(--surface-subtle);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.code-toolbar-actions{flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.source-file-select{align-items:center;gap:6px;display:inline-flex}.source-file-select span{color:var(--text-muted);text-transform:uppercase;font-size:11px;font-weight:700}.source-file-select select{width:min(280px,34vw);min-height:32px;padding:4px 8px;font-size:12px}.code-toolbar button[data-active=true]{border-color:var(--accent);color:var(--accent-strong);background:#e7f2ed;font-weight:700}.debugger-body{min-width:0;display:grid}.debugger-body[data-stack-panel=true]{grid-template-columns:minmax(0, 1fr) 10px minmax(220px, var(--stack-panel-width,300px))}.source-table{min-width:0;max-height:min(70svh,760px);display:grid;overflow:auto}.app-shell[data-debug-focus=true] .source-table{max-height:calc(100svh - 228px)}.stack-panel{border-left:1px solid var(--border);background:var(--surface);align-content:start;gap:10px;min-width:0;max-height:min(70svh,760px);padding:12px;display:grid;overflow:auto}.app-shell[data-debug-focus=true] .stack-panel{max-height:calc(100svh - 228px)}.stack-panel-splitter{border:0;border-left:1px solid var(--border);background:var(--surface-muted);cursor:col-resize;touch-action:none;border-radius:0;align-self:stretch;place-items:center;min-width:10px;min-height:0;padding:0;display:grid}.stack-panel-splitter span{background:#b9c7bf;border-radius:999px;width:2px;height:42px}.stack-panel-splitter:hover,.stack-panel-splitter:focus{background:#eef6f2;box-shadow:inset 0 0 0 2px #227c6829}.stack-panel-splitter:hover span,.stack-panel-splitter:focus span{background:var(--accent)}.stack-panel-resize-preview{z-index:1000;background:var(--accent);pointer-events:none;will-change:transform;border-radius:999px;width:2px;position:fixed;left:0;box-shadow:0 0 0 3px #227c6824}.stack-panel-header{grid-template-columns:minmax(0,1fr) max-content;align-items:start;gap:10px;display:grid}.stack-panel-header div{gap:4px;min-width:0;display:grid}.stack-panel-header span,.stack-type{color:var(--text-muted);letter-spacing:0;text-transform:uppercase;font-size:11px;font-weight:700}.stack-panel-header strong{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:0;font:13px/1.35 ui-monospace,Consolas,monospace;overflow:hidden}.stack-panel-warning,.stack-panel-empty{background:var(--surface-notice);color:#5e6843;border:1px solid #d9dfca;border-radius:7px;padding:9px 10px;font-size:13px;line-height:1.45}.stack-panel-empty{background:var(--surface-muted);color:var(--text-subtle);border-color:#d6ddd4}.stack-list{gap:6px;display:grid}.stack-item{border:1px solid var(--border);background:var(--surface-subtle);border-radius:7px;grid-template-columns:42px 56px minmax(0,1fr);align-items:center;gap:8px;min-width:0;min-height:34px;padding:7px 8px;display:grid}.stack-index{color:var(--accent-strong);font-variant-numeric:tabular-nums;font:700 12px/1.35 ui-monospace,Consolas,monospace}.stack-item code{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;font:12px/1.35 ui-monospace,Consolas,monospace;overflow:hidden}.source-row-block{min-width:820px;display:grid}.source-row{--heat:0;border-bottom:1px solid var(--border-soft);background:linear-gradient(90deg, rgba(214, 74, 54, calc(var(--heat) * .32)), rgba(241, 172, 58, calc(var(--heat) * .18)) 58%, transparent), var(--surface);grid-template-columns:68px minmax(360px,1fr) 170px 116px;align-items:center;min-width:820px;min-height:32px;display:grid}.source-row[data-view=execution]{grid-template-columns:68px minmax(360px,1fr) 170px}.source-row[data-hot=true]{background-color:#fffdf7}.source-row[data-error=true]{box-shadow:inset 3px 0 0 var(--danger)}.source-row[data-current-step=true]{outline:2px solid var(--accent);outline-offset:-2px;background-color:#eef7f2}.source-row[data-highlighted=true]{outline:2px solid var(--danger);outline-offset:-2px;background-color:#fff4f1}.inner-call-row{border-bottom:1px solid var(--border-soft);background:var(--surface-muted);grid-template-columns:68px minmax(0,1fr);align-items:center;min-height:34px;display:grid}.inner-call-row[data-direction=back]{background:#fbfaf6}.inner-call-spacer{border-left:2px solid #bfd6cb;align-self:stretch;margin-left:32px}.inner-call-row[data-direction=back] .inner-call-spacer{border-left-color:#d9cfa9}.inner-call-cell{min-width:0;padding:4px 10px 4px 12px}.inner-call-link{width:100%;min-height:26px;color:var(--accent-strong);text-align:left;background:0 0;border-color:#0000;justify-content:flex-start;align-items:center;padding:0 10px;font:12px/1.35 ui-monospace,Consolas,monospace;display:inline-flex}.inner-call-link:before{content:"->";color:#5f8073;margin-right:8px}.inner-call-link[data-direction=back]{color:#6b5a22}.inner-call-link[data-direction=back]:before{content:"<-";color:#8a7838}.inner-call-link:hover,.inner-call-link:focus{box-shadow:none;background:#eef6f2;border-color:#7faf9a}.inner-call-link[data-direction=back]:hover,.inner-call-link[data-direction=back]:focus{background:#f4f0dd;border-color:#c6b66e}.line-number,.pc-list,.hit-count{color:var(--text-subtle);font-variant-numeric:tabular-nums;font:12px/1.35 ui-monospace,Consolas,monospace}.line-number{padding-left:16px}.source-row code{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:pre;padding:6px 12px;font:13px/1.45 ui-monospace,Consolas,monospace;overflow:hidden}.source-current-range{color:#1f2522;background:#ffe08a;border-radius:3px;padding:1px 0;box-shadow:0 0 0 1px #9c68002e}.pc-list{min-width:0;padding:4px 10px;overflow:hidden}.pc-span-list{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex;overflow:hidden}.pc-span-chip{background:var(--surface);min-height:20px;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;border:1px solid #d6ddd4;border-radius:6px;align-items:center;padding:1px 6px;font:11px/1.35 ui-monospace,Consolas,monospace;display:inline-flex}.pc-span-chip[data-current-span=true]{border-color:var(--accent);color:var(--accent-strong);background:#dff0e9;font-weight:700}.hit-count{text-align:right;padding-right:16px}.source-empty{min-height:96px;color:var(--text-subtle);place-items:center;padding:20px;font-size:14px;display:grid}@media (width<=860px){.app-shell{width:min(100% - 22px,1180px);padding-top:22px}.header{display:grid}.header-actions{justify-content:start}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-input-stack,.program-meta,.selection-panel{grid-template-columns:1fr}.execution-error-item{grid-template-columns:1fr;gap:4px}.debugger-controls{flex-direction:column;align-items:stretch}.debugger-counter{min-width:0}.debugger-body[data-stack-panel=true]{grid-template-columns:1fr}.stack-panel-splitter{display:none}.stack-panel{border-top:1px solid var(--border);border-left:0;max-height:320px}}@media (width<=520px){.summary-grid{grid-template-columns:1fr}}
