*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:monospace;font-size:13px;background:#0d0d0d;color:#d4d4d4;display:flex;flex-direction:column;height:100vh;overflow:hidden}#metrics-bar{display:flex;background:#0a0a0a;border-bottom:1px solid #2a2a2a;flex-shrink:0;align-items:stretch;width:100%}.metric-card{display:flex;flex-direction:column;padding:5px 10px;border-right:1px solid #181818;width:160px;flex-shrink:0;gap:3px;overflow:hidden}.metric-card:last-child{border-right:none;width:auto;flex:1}.metric-top{display:flex;justify-content:space-between;align-items:baseline;width:100%}.metric-label{font-size:9px;color:#555;text-transform:uppercase;letter-spacing:.5px}.metric-value{font-size:13px;color:#4ec9b0;font-weight:700;min-width:5ch;text-align:right;font-variant-numeric:tabular-nums}.metric-value.warn{color:#ce9178}.metric-value.dim{color:#888}.metric-canvas{display:block;margin-top:2px;width:100%;height:28px}#ws-dot{width:7px;height:7px;border-radius:50%;background:#555;display:inline-block;margin-left:4px;vertical-align:middle}#ws-dot.live{background:#4ec9b0;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}#main{display:flex;flex:1;overflow:hidden}#tree-pane{width:28%;border-right:1px solid #2a2a2a;display:flex;flex-direction:column;min-width:180px}#tree-header{padding:6px 10px;background:#161616;border-bottom:1px solid #2a2a2a;display:flex;justify-content:space-between;align-items:center}#tree-header span{color:#555;font-size:11px}#tree-container{flex:1;overflow-y:auto;padding:4px}#tree-container details{margin-left:12px}#tree-container summary{cursor:pointer;padding:2px 4px;border-radius:3px;color:#4ec9b0;list-style:none;display:flex;align-items:center;white-space:nowrap;overflow:hidden}#tree-container summary:before{content:"▶";font-size:10px;color:#666;margin-right:5px;flex-shrink:0;display:inline-block;transition:transform .15s}details[open]>summary:before{transform:rotate(90deg);color:#aaa}#tree-container summary .tree-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}#tree-container summary .ttl-badge,#tree-container summary .count-badge{flex-shrink:0;margin-left:4px}#tree-container summary:hover{background:#1e1e1e}.tree-leaf{padding:2px 4px 2px 16px;cursor:pointer;border-radius:3px;color:#9cdcfe;display:flex;gap:4px;align-items:baseline;overflow:hidden}.tree-leaf:hover{background:#1e1e1e}.tree-val{color:#ce9178;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.tree-key{color:#4ec9b0;flex-shrink:0}.ttl-badge{font-size:9px;padding:0 4px;border-radius:3px;background:#4d3519;color:#d4a054;flex-shrink:0}.count-badge{font-size:9px;padding:0 4px;border-radius:3px;background:#1e2d3d;color:#569cd6;flex-shrink:0}@keyframes treeFlash{0%,to{background:transparent}30%{background:#569cd640}}.flash{animation:treeFlash 1.2s ease-out;border-radius:3px}#right-pane{flex:1;display:flex;flex-direction:column;overflow:hidden}.tabs{display:flex;background:#161616;border-bottom:1px solid #2a2a2a;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{padding:7px 16px;cursor:pointer;border-bottom:2px solid transparent;color:#666;font-size:12px;white-space:nowrap;flex-shrink:0}.tab.active{color:#fff;border-bottom-color:#569cd6}.panel{display:none;flex:1;overflow-y:auto;padding:12px;flex-direction:column;gap:10px}.panel.active{display:flex}label{color:#666;font-size:10px;margin-bottom:2px;display:block;text-transform:uppercase;letter-spacing:.3px}input[type=text],textarea,select{width:100%;background:#1a1a1a;border:1px solid #333;color:#d4d4d4;padding:5px 8px;border-radius:3px;font-family:monospace;font-size:12px}input[type=text]:focus,textarea:focus{outline:none;border-color:#569cd6}textarea{resize:vertical;min-height:80px}.row{display:flex;gap:6px;align-items:flex-end}.row input{flex:1}button{padding:5px 11px;border:none;border-radius:3px;cursor:pointer;font-family:monospace;font-size:12px;background:#264f78;color:#ccc;white-space:nowrap}button:hover{background:#3a6fa8;color:#fff}button.danger{background:#4a1e1e;color:#f48771}button.danger:hover{background:#7a2e2e}button.success{background:#1e4a1e;color:#4ec9b0}button.success:hover{background:#2e7a2e}button.sub{background:#3a2e5a;color:#c5b8f0}button.sub:hover{background:#5a4a8a}button.sm{padding:3px 7px;font-size:11px}button.icon{display:inline-flex;align-items:center;justify-content:center;padding:3px 5px;vertical-align:middle}.result{background:#111;border:1px solid #222;border-radius:3px;padding:8px;overflow:auto;max-height:280px;white-space:pre;color:#9cdcfe;font-size:12px}.status{font-size:11px;padding:3px 8px;border-radius:3px}.status.ok{background:#1a3a1a;color:#4ec9b0}.status.err{background:#3a1a1a;color:#f48771}.filter-row{display:flex;gap:5px;align-items:center;margin-bottom:4px}.filter-row input{flex:2}.filter-row select{flex:1}table{width:100%;border-collapse:collapse;font-size:12px}th{background:#1a1a1a;padding:4px 8px;text-align:left;color:#666;border-bottom:1px solid #222}td{padding:4px 8px;border-bottom:1px solid #1a1a1a;color:#d4d4d4;word-break:break-all}tr:hover td{background:#161616}.sub-item{background:#111;border:1px solid #222;border-radius:3px;padding:8px}.sub-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;color:#4ec9b0}.sub-log{max-height:130px;overflow-y:auto;font-size:11px;background:#0a0a0a;padding:5px;border-radius:2px}.sub-log div{padding:2px 0;border-bottom:1px solid #161616;color:#9cdcfe}.sub-log div span{color:#555;margin-right:6px}.stress-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stress-card{background:#111;border:1px solid #222;border-radius:3px;padding:10px}.stress-card h4{color:#888;font-size:11px;text-transform:uppercase;margin-bottom:8px;letter-spacing:.5px}.stress-result{margin-top:8px;font-size:11px;background:#0a0a0a;border-radius:2px;padding:6px;color:#4ec9b0;min-height:60px;white-space:pre-wrap}.progress-bar{height:4px;background:#222;border-radius:2px;margin-top:6px;overflow:hidden}.progress-fill{height:100%;background:#569cd6;border-radius:2px;width:0%;transition:width .1s}input[type=number]{width:80px;background:#1a1a1a;border:1px solid #333;color:#d4d4d4;padding:4px 6px;border-radius:3px;font-family:monospace;font-size:12px}
