*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0a0a0b;color:#ededef;min-height:100vh}.app{max-width:1400px;margin:0 auto;padding:clamp(1rem,3vw,2rem) clamp(.75rem,3vw,2rem)}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}header h1{font-size:clamp(1.125rem,2vw,1.5rem);font-weight:600;color:#ededef}.header-link{color:#8a8a8e;font-size:.8125rem;text-decoration:none;transition:color .15s}.header-link:hover{color:#ededef}.plan-input{display:flex;flex-direction:column;gap:.75rem}.plan-input-hint{font-size:.75rem;color:#4a4a4e;line-height:1.5}.plan-input-hint code{font-family:SF Mono,Fira Code,monospace;font-size:.6875rem;color:#6a6a6e;background:#1a1a1c;padding:.1rem .3rem;border-radius:3px}.plan-input textarea{width:100%;min-height:clamp(200px,40vh,400px);padding:1rem;font-family:SF Mono,Fira Code,monospace;font-size:.8125rem;line-height:1.5;background:#141415;color:#ededef;border:1px solid #1e1e20;border-radius:8px;resize:vertical}.plan-input textarea:focus{outline:none;border-color:#6e56cf}.plan-input textarea::placeholder{color:#4a4a4e}.btn-primary{padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;color:#fff;background:#6e56cf;border:none;border-radius:6px;cursor:pointer;transition:background .15s}.btn-primary:hover:not(:disabled){background:#7c66d4}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;color:#8a8a8e;background:transparent;border:1px solid #1e1e20;border-radius:6px;cursor:pointer;transition:border-color .15s,color .15s}.btn-ghost:hover{border-color:#3a3a3e;color:#ededef}.plan-input-actions{display:flex;flex-direction:row;gap:.5rem}.error{color:#f87171;font-size:.875rem;padding:.5rem;background:#f8717114;border-radius:6px}.result-toolbar{margin-bottom:1rem}.result-layout{display:flex;gap:1rem;align-items:flex-start}.result-tree{flex:1;min-width:0;overflow-x:auto}.result-detail{width:clamp(260px,25vw,360px);flex-shrink:0;position:sticky;top:1rem}.plan-tree{font-size:.8125rem}.tree-node-header{display:flex;align-items:center;gap:.4rem;padding:.3rem .5rem;border-radius:4px;cursor:pointer;transition:background .1s}.tree-node-header:hover{background:#ffffff0d}.tree-node-header.selected{background:#6e56cf1a;border-left:2px solid #6e56cf;padding-left:calc(.5rem - 2px)}.tree-toggle{width:1rem;flex-shrink:0;text-align:center;font-size:.625rem;color:#8a8a8e;user-select:none}.tree-node-label{white-space:nowrap;font-weight:500;color:#ededef}.tree-node-stats{display:flex;gap:.5rem;margin-left:auto;white-space:nowrap}.tree-stat{color:#8a8a8e;font-size:.75rem;font-variant-numeric:tabular-nums}.tree-time-bar{width:clamp(40px,5vw,80px);height:4px;flex-shrink:0;background:#1e1e20;border-radius:2px;overflow:hidden}.tree-time-bar-fill{height:100%;border-radius:2px;transition:width .2s}.tree-children{padding-left:1.25rem;border-left:1px solid #1e1e20;margin-left:.5rem}.node-detail{background:#141415;border:1px solid #1e1e20;border-radius:8px;padding:1rem}.node-detail h3{font-size:.875rem;font-weight:600;color:#ededef;margin-bottom:.75rem}.node-detail-empty{color:#8a8a8e;font-size:.8125rem}.detail-section{margin-bottom:.75rem}.detail-section:last-child{margin-bottom:0}.detail-section-title{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#4a4a4e;padding:.25rem 0;margin-bottom:.25rem;border-bottom:1px solid #1e1e20}.node-detail-table{width:100%;border-collapse:collapse;font-size:.8125rem}.node-detail-table tr{border-bottom:1px solid #1e1e20}.node-detail-table tr:last-child{border-bottom:none}.metric-label{padding:.3rem .5rem .3rem 0;color:#8a8a8e;white-space:nowrap;vertical-align:top}.metric-value{padding:.3rem 0;color:#ededef;text-align:right;font-variant-numeric:tabular-nums}@media(max-width:768px){.app{padding:1rem .75rem}header{flex-direction:column;align-items:flex-start;gap:.25rem}header h1{font-size:1.125rem}.result-layout{flex-direction:column}.result-detail{width:100%;position:static}.tree-node-label{white-space:normal;word-break:break-word}.tree-time-bar{width:40px}.plan-input textarea{font-size:.875rem}}
