:root{--app-text: #064E3B;--app-accent: #065F46;--app-surface: #ECFDF5;--vendor-text: #64748B;--vendor-border: #CBD5E1;--vendor-surface: #F8FAFC;--entry-accent: #1D4ED8;--thrown-accent: #B91C1C;--edge: #94A3B8}.vendor,.vendor-branch,.vendor-file{color:var(--vendor-text)}.app-branch{color:#1f2937}.app-file{color:var(--app-accent);font-weight:600}.subtitle{font-weight:700}.toggle-content{display:none!important}.toggle-content.is-visible{display:block!important}.strong{font-weight:700}#options{display:flex;justify-content:space-between}#error-view{margin-top:10px}#textarea{margin-bottom:10px}#views{display:flex;align-items:flex-start;gap:24px}#tree-container,#graph-container,#table-container{flex:1 1 auto;min-width:0;max-height:75vh;overflow:auto}#detail-panel{flex:0 0 clamp(420px,34%,620px);position:sticky;top:10px;max-height:75vh;overflow-y:auto}.graph-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:10px}.order-toggle{margin-left:auto;border:1px solid #E2E8F0;border-radius:3px;background:none;cursor:pointer;padding:3px 10px;font-size:12px;color:#64748b;white-space:nowrap}.order-toggle:after{content:" \21c5";color:#94a3b8}.order-toggle:hover{background-color:#f8fafc;color:#334155}#graph-legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:#475569}.legend-item{display:flex;align-items:center}.legend-item:before{content:"";display:inline-block;width:12px;height:12px;margin-right:6px;border-radius:3px;border:2px solid var(--vendor-border);background-color:var(--vendor-surface)}.legend-item.is-app:before{border-color:var(--app-accent);background-color:var(--app-surface)}.legend-item.is-entry:before{border-color:var(--entry-accent);background-color:#fff}.legend-item.is-thrown:before{border-color:var(--thrown-accent);background-color:#fff}.graph-svg{display:block;font-family:inherit}.graph-arrow path{fill:var(--edge)}.graph-edge line,.graph-edge path{fill:none;stroke:var(--edge);stroke-width:1.5}.graph-edge.is-arc path{stroke:var(--vendor-border)}.graph-edge.is-back path{stroke-dasharray:4 3}.graph-edge-count{fill:#64748b;font-size:10px;text-anchor:end;dominant-baseline:middle}.graph-node{cursor:pointer}.graph-node:focus{outline:none}.graph-node-box{fill:var(--vendor-surface);stroke:var(--vendor-border);stroke-width:1.5}.graph-node-badge{fill:var(--vendor-border)}.graph-node-index,.graph-node-calls{text-anchor:middle;fill:#334155}.graph-node-index{font-size:12px;font-weight:700}.graph-node-calls{font-size:10px}.graph-node-file{font-size:13px;font-weight:600;fill:var(--vendor-text)}.graph-node-folder{font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;fill:#94a3b8}.graph-node-recursive{font-size:14px;fill:#94a3b8;text-anchor:middle}.graph-node.is-app .graph-node-box{fill:var(--app-surface);stroke:var(--app-accent);stroke-width:2}.graph-node.is-app .graph-node-badge{fill:var(--app-accent)}.graph-node.is-app .graph-node-index,.graph-node.is-app .graph-node-calls{fill:#fff}.graph-node.is-app .graph-node-file{fill:var(--app-text)}.graph-node.is-app .graph-node-folder{fill:#059669}.graph-node.is-entry .graph-node-box{stroke:var(--entry-accent);stroke-width:2}.graph-node.is-thrown .graph-node-box{stroke:var(--thrown-accent);stroke-width:2.5}.graph-node:hover .graph-node-box,.graph-node:focus .graph-node-box{stroke-width:3}.graph-node.is-selected .graph-node-box{stroke:#1e293b;stroke-width:3}#detail-panel{font-size:13px}#stack-detail{border:1px solid #E2E8F0;border-left:4px solid var(--vendor-border);border-radius:4px;padding:12px 14px;background-color:#fff}#stack-detail.is-app{border-left-color:var(--app-accent)}#stack-detail.is-thrown{border-left-color:var(--thrown-accent)}#detail-placeholder{color:#94a3b8}#stack-detail.is-empty #detail-body,#stack-detail:not(.is-empty) #detail-placeholder{display:none}.detail-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}.frame-index{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:700;color:#334155;background-color:#f1f5f9;border-radius:3px;padding:2px 7px}.scope-tag{border-radius:3px;padding:2px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;background-color:var(--vendor-border);color:#334155}#stack-detail.is-app .scope-tag{background-color:var(--app-accent);color:#fff}.copy-button{margin-left:auto;display:inline-flex;align-items:center;gap:5px;border:1px solid #E2E8F0;border-radius:3px;background:none;cursor:pointer;padding:2px 8px;font-size:11px;color:#64748b}.copy-button:hover{background-color:#f8fafc;color:#334155}.copy-button.is-copied{border-color:var(--app-accent);color:var(--app-accent)}.detail-folder{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:#94a3b8;overflow-wrap:anywhere;line-height:1.4}.detail-file{font-size:16px;font-weight:700;color:#0f172a;overflow-wrap:anywhere;line-height:1.3;margin-bottom:8px}#stack-detail.is-app .detail-file{color:var(--app-text)}.detail-line{color:#64748b;font-weight:500}.detail-method{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;overflow-wrap:anywhere;line-height:1.5}.method-namespace{color:#94a3b8}.method-call{color:#0f172a;font-weight:700}.detail-heading{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin:16px 0 6px}.neighbours{list-style:none;margin:0;padding:0}.neighbour{display:grid;grid-template-columns:auto 1fr;gap:0 8px;padding:6px 9px;border-left:3px solid var(--vendor-border);background-color:#f8fafc;margin-bottom:2px;cursor:pointer}.neighbour:hover{background-color:#f1f5f9}.neighbour.is-app{border-left-color:var(--app-accent)}.neighbour.is-internal{border-left-color:#e2e8f0}.neighbour.is-current{background-color:#1e293b;cursor:default}.neighbour-index{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:700;color:#94a3b8;grid-row:span 2}.neighbour.is-current .neighbour-index{color:#94a3b8}.neighbour-call{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:600;color:#1e293b;overflow-wrap:anywhere}.neighbour.is-app .neighbour-call{color:var(--app-text)}.neighbour.is-current .neighbour-call{color:#fff}.neighbour-path{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:#94a3b8;overflow-wrap:anywhere}@media (max-width: 1100px){#views{display:block}#detail-panel{position:static;margin-top:16px}}.table-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:10px}#table-search{max-width:340px}.table-count,.table-order{font-size:12px;color:#64748b;white-space:nowrap}.table-order{margin-left:auto}#order-header.sortable{cursor:pointer;user-select:none;white-space:nowrap}#order-header.sortable:hover{background-color:#e2e8f0}#order-header.sortable:after{content:" \2193";color:#94a3b8}#order-header.sortable[aria-sort=ascending]:after{content:" \2191"}#stack-table{font-size:12px}#stack-table tbody tr{cursor:pointer}#stack-table td{vertical-align:middle}.cell-index,.cell-line{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap;color:#64748b}.cell-path,.cell-method{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}.cell-path{color:#475569}#stack-table tbody tr.is-app td{background-color:var(--app-surface);color:var(--app-text)}#stack-table tbody tr.is-app .cell-method,#stack-table tbody tr.is-app .cell-path{font-weight:600}#stack-table tbody tr:hover td{background-color:#e2e8f0}#stack-table tbody tr.is-selected td{background-color:#1e293b;color:#fff}#stack-table tbody tr.is-selected .cell-index,#stack-table tbody tr.is-selected .cell-line,#stack-table tbody tr.is-selected .cell-path{color:#cbd5e1}.is-filtered-out{display:none}ul[role=tree]{margin:0;padding:0;list-style:none;font-size:120%}ul[role=tree] li{margin:0;padding:0;list-style:none}ul[role=group]{margin-left:20px}[role=treeitem][aria-expanded=false]+[role=group]{display:none}[role=treeitem][aria-expanded=true]+[role=group]{display:block}[role=treeitem].file:before{font-family:"Font Awesome 5 Free";content:"\f1c9";display:inline-block;padding-right:2px;padding-left:5px;vertical-align:middle}[role=treeitem][aria-expanded=false]>ul{display:none}[role=treeitem][aria-expanded=true]>ul{display:block}[role=treeitem][aria-expanded=false]>span:before{font-family:"Font Awesome 5 Free";content:"\f07b";display:inline-block;padding-right:3px;vertical-align:middle;font-weight:900}[role=treeitem][aria-expanded=true]>span:before{font-family:"Font Awesome 5 Free";content:"\f07c";display:inline-block;padding-right:3px;vertical-align:middle;font-weight:900}[role=treeitem],[role=treeitem] span{margin:0;padding:.125em;display:block}[role=treeitem]:focus{outline:0}[role=treeitem][aria-selected=true]{padding-left:4px;border-left:3px solid #005a9c}[role=treeitem].focus,[role=treeitem] span.focus{border-color:#000;background-color:#eee}[role=treeitem].hover,[role=treeitem] span:hover{padding-left:4px;background-color:#ddd;cursor:pointer}[role=treeitem].app-file{color:#065f46;font-weight:600}[role=treeitem].app-file:before{color:#059669}[role=treeitem].vendor-file{color:#64748b}
