:root{--color-primary: #3b82f6;--color-primary-dark: #2563eb;--color-primary-light: #60a5fa;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-text-on-primary: #ffffff;--font-family-sans: "Inter", system-ui, -apple-system, sans-serif;--font-family-mono: "JetBrains Mono", "Fira Code", monospace;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--transition-fast: .15s ease-in-out;--transition-normal: .3s ease-in-out}:root,[data-theme=light]{--color-bg-body: #f8fafc;--color-bg-card: #ffffff;--color-bg-muted: #f1f5f9;--color-text-main: #1e293b;--color-text-muted: #64748b;--color-text-light: #94a3b8;--color-border: #e2e8f0;--color-input-bg: #ffffff;--color-input-border: #cbd5e1}[data-theme=dark]{--color-bg-body: #0f172a;--color-bg-card: #1e293b;--color-bg-muted: #334155;--color-text-main: #f1f5f9;--color-text-muted: #94a3b8;--color-text-light: #64748b;--color-border: #334155;--color-input-bg: #0f172a;--color-input-border: #475569}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--color-bg-body: #0f172a;--color-bg-card: #1e293b;--color-bg-muted: #334155;--color-text-main: #f1f5f9;--color-text-muted: #94a3b8;--color-text-light: #64748b;--color-border: #334155;--color-input-bg: #0f172a;--color-input-border: #475569}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family-sans);background-color:var(--color-bg-body);color:var(--color-text-main);line-height:1.5;-webkit-font-smoothing:antialiased}code,kbd,samp,pre{font-family:var(--font-family-mono)}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}.graph-container{overflow-x:auto;padding:var(--spacing-xl);display:flex;justify-content:center;margin-top:var(--spacing-md);background:var(--color-bg-muted);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.tf-tree{display:flex;justify-content:center}.tf-nc{display:flex;flex-direction:column;align-items:center;position:relative}.tf-children{display:flex;margin-top:var(--spacing-lg);position:relative}.tf-nc:after{content:"";position:absolute;top:100%}.tf-child-wrapper{padding:0 var(--spacing-md);position:relative}.tf-children:before{display:none}.tf-child-wrapper:after{content:"";position:absolute;top:calc(var(--spacing-lg) / -2);border-top:2px solid var(--color-text-muted);height:2px}.tf-child-wrapper:first-child:after{left:50%;width:50%}.tf-child-wrapper:last-child:after{left:0;width:50%}.node-card{position:relative;margin-bottom:0;z-index:2}.node-card:after{display:none}.node-split:after{display:block;content:"";position:absolute;bottom:calc(var(--spacing-lg) * -1 / 2);left:50%;height:calc(var(--spacing-lg) / 2);width:0;border-left:2px solid var(--color-text-muted)}.tf-child-wrapper:before{content:"";position:absolute;top:calc(var(--spacing-lg) / -2);left:50%;height:calc(var(--spacing-lg) / 2);width:0;border-left:2px solid var(--color-text-muted)}.node-card{border:1px solid var(--color-border);background:var(--color-bg-card);padding:var(--spacing-sm);border-radius:var(--radius-sm);min-width:180px;text-align:left;box-shadow:var(--shadow-sm);transition:all var(--transition-normal)}.node-split{background:var(--color-bg-muted);border-style:dashed;opacity:.8}.node-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border);padding-bottom:4px}.node-addr{font-weight:700;font-size:.9rem}.node-stat{font-size:.8rem;color:var(--color-text-muted)}.mono{font-family:var(--font-family-mono)}.btn-split{background:var(--color-primary-light);color:#fff;border:none;border-radius:4px;padding:2px 6px;font-size:.7rem;cursor:pointer}.btn-join{background:var(--color-text-muted);color:#fff;border:none;border-radius:4px;padding:2px 6px;font-size:.7rem;cursor:pointer}
