:root {
            --mvr-tree-bg: #f8f9fa;
            --mvr-tree-line-color: #cbd5e1;
            --mvr-tree-text-main: #1e293b;
            --mvr-tree-text-sub: #64748b;
            
            /* Material Colors (Blue theme) */
            --mvr-tree-mat-bg: #ffffff;
            --mvr-tree-mat-border: #3b82f6;
            --mvr-tree-mat-fill: #eff6ff;

            /* Operation Colors (Orange/Amber theme) */
            --mvr-tree-op-bg: #ffffff;
            --mvr-tree-op-border: #f59e0b;
            --mvr-tree-op-fill: #fffbeb;
        }
		
.mvr-tree-wrapper {
            width: 100%;
            height: 100%;
            overflow: hidden;
            cursor: grab;
            user-select: none;
        }

        .mvr-tree-wrapper:active {
            cursor: grabbing;
        }

        /* SVG Styles */
        .mvr-tree-link {
            fill: none;
            stroke: var(--mvr-tree-line-color);
            stroke-width: 2px;
            transition: opacity 0.3s; 
        }

        .mvr-tree-node {
            cursor: pointer;
        }

        /* Content Group Wrapper - Handles the Pop Effect */
        .mvr-tree-content {
            transition: filter 0.2s, transform 0.2s;
            transform-box: fill-box;
            transform-origin: center;
        }

        /* Hover Effect on the Content Group */
        .mvr-tree-node:hover .mvr-tree-content {
            filter: drop-shadow(0px 4px 8px rgba(0,0,0,0.1));
            transform: scale(1.02); 
        }

        .mvr-tree-node rect {
            transition: stroke 0.2s; 
            filter: drop-shadow(0px 2px 4px rgba(0,0,0,0.05));
        }

        /* Specific Node Types */
        .mvr-tree-node.type-material rect {
            stroke: var(--mvr-tree-mat-border);
            stroke-width: 2px;
            fill: var(--mvr-tree-mat-bg);
        }

        .mvr-tree-node.type-operation rect {
            stroke: var(--mvr-tree-op-border);
            stroke-width: 2px;
            fill: var(--mvr-tree-op-bg);
        }

        /* Text Styling */
        .mvr-tree-text-name {
            font-size: 14px;
            font-weight: 600;
            fill: var(--mvr-tree-text-main);
            pointer-events: none;
        }

        .mvr-tree-text-detail {
            font-size: 11px;
            fill: var(--mvr-tree-text-sub);
            pointer-events: none;
        }

        /* Collapse/Expand Button Circle */
        .mvr-tree-collapse-circle {
            fill: white;
            stroke: var(--mvr-tree-line-color);
            stroke-width: 2px;
            cursor: pointer;
            transition: fill 0.2s, stroke 0.2s;
        }
        
        .mvr-tree-collapse-circle:hover {
            stroke: var(--mvr-tree-mat-border);
            fill: #f1f5f9;
        }

        /* Loading Spinner */
        .mvr-tree-spinner {
            fill: none;
            stroke: var(--mvr-tree-mat-border);
            stroke-width: 2px;
            animation: mvr-spin 1s linear infinite;
            transform-origin: center;
            transform-box: fill-box;
        }

        @keyframes mvr-spin {
            100% { transform: rotate(360deg); }
        }

        /* Badge for type indicator */
        .mvr-tree-badge {
            font-size: 9px;
            font-weight: bold;
            text-transform: uppercase;
        }