/* Shared site controls and the comparison presentation, moved from VC Investment. */
* { box-sizing: border-box; }
body { margin: 0; font-family: var(--font-sans); line-height: 1.6; color: var(--white); background: var(--navy); }
main { padding-top: 116px; }
.section-inner { max-width: 1280px; margin: 0 auto; }
.chart-card {
            border: 1px solid var(--border-light);
            border-radius: 14px;
            padding: 1.3rem 1.5rem 1.4rem;
            position: relative;
            background: var(--surface-card);
            border-color: var(--border-light);
            box-shadow: 0 24px 60px var(--border-light), 0 1px 0 var(--surface-card) inset; }
nav.site-nav {
            position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
            padding: 0 2rem; background: var(--navy-light);
            backdrop-filter: blur(20px);
            border-bottom: 1px solid var(--border-light);
        }
        .nav-inner { max-width: 1280px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; height: 64px; }
        .logo { display: flex; align-items: center; text-decoration: none; }
        .logo img { height: 28px; width: auto; }
        .logo .logo-on-light { display: none; }
        .nav-center { display: flex; gap: 0.25rem; }
        .nav-link {
            text-decoration: none; color: var(--text-light);
            padding: 0.5rem 1rem; border-radius: 999px;
            font-size: 0.875rem; font-weight: 500;
            transition: color 0.15s ease, background 0.15s ease;
        }
        .nav-link:hover { color: var(--white); background: var(--border-light); }
        .nav-right { display: flex; gap: 0.5rem; align-items: center; }
        .btn {
            display: inline-flex; align-items: center; justify-content: center;
            border-radius: 999px; font-weight: 600; font-size: 0.875rem;
            padding: 0.55rem 1.25rem; text-decoration: none; cursor: pointer;
            border: 1px solid transparent;
            transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
        }
        .btn-primary { background: var(--blue); color: var(--surface-card); }
        .btn-primary:hover { background: var(--blue-hover); }
        .btn-ghost { color: var(--text-light); }
        .btn-ghost:hover { color: var(--white); }
        .full-text { display: inline; }
        .short-text { display: none; }
        @media (max-width: 720px) {
            .nav-center { display: none; }
            .full-text { display: none; }
            .short-text { display: inline; }
        }

        .nav-link:hover,
.nav-link.active { color: var(--white); background: var(--navy-light); }

        .section-title em { font-style: normal; color: var(--blue); }

        .chart-card:hover .png-btn { opacity: 1; }

        .filter-row {
            display: flex; align-items: center;
            gap: 0.55rem; flex-wrap: wrap;
        }

        .filter-label {
            min-width: 88px;
            color: var(--text-lighter);
            font-size: 0.68rem;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            font-weight: 700;
        }

        .filter-pill {
            display: inline-flex; align-items: center; gap: 0.35rem;
            color: var(--text-light);
            background: var(--border-light);
            border: 1px solid var(--border-light);
            border-radius: 999px;
            padding: 0.4rem 0.78rem;
            font: 600 0.81rem var(--font-sans);
            cursor: pointer;
            transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
            white-space: nowrap;
        }

        .filter-pill:hover { color: var(--white); border-color: var(--border-light); }

        .filter-pill.active {
            color: var(--white);
            background: var(--blue);
            border-color: var(--blue);
        }

        .filter-pill.disabled {
            opacity: 0.45; cursor: not-allowed;
        }

        .filter-pill.active .pill-count { color: var(--surface-card); }

        .filter-row.expanded .sector-toggle svg { transform: rotate(180deg); }

        .filter-row .filter-pill.sector-pill[data-extra="1"] { display: none; }

        .filter-row.expanded .filter-pill.sector-pill[data-extra="1"] { display: inline-flex; }

        .filter-row[data-dropdownized="1"] > .filter-pill,
.filter-row[data-dropdownized="1"] > .sector-toggle {
            display: none !important;
        }
        .filter-select,
.filter-multi-trigger,
.filter-combo-input {
            min-width: 184px;
            min-height: 40px;
            color: var(--white);
            background: var(--vc-control-background);
            border: 1px solid var(--vc-control-border);
            border-radius: 8px;
            padding: 0.46rem 2rem 0.46rem 0.82rem;
            font: 700 0.81rem var(--font-sans, var(--font-sans));
            cursor: pointer;
            box-shadow: var(--vc-control-shadow);
            transition: background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease, color 0.16s ease;
        }
        .filter-select {
            appearance: none;
            background:
                linear-gradient(45deg, transparent 50%, currentColor 50%),
                linear-gradient(135deg, currentColor 50%, transparent 50%),
                var(--vc-control-background);
            background-position: calc(100% - 16px) 52%, calc(100% - 11px) 52%, 0 0;
            background-size: 5px 5px, 5px 5px, 100% 100%;
            background-repeat: no-repeat;
        }

        .filter-select:hover,
.filter-select:focus {
            border-color: var(--vc-control-focus-border);
            box-shadow: var(--vc-control-focus-shadow);
            outline: none;
            background:
                linear-gradient(45deg, transparent 50%, currentColor 50%),
                linear-gradient(135deg, currentColor 50%, transparent 50%),
                var(--vc-control-hover-background);
            background-position: calc(100% - 16px) 52%, calc(100% - 11px) 52%, 0 0;
            background-size: 5px 5px, 5px 5px, 100% 100%;
            background-repeat: no-repeat;
        }

        .filter-multi-trigger:hover,
.filter-multi.open .filter-multi-trigger,
.filter-combo-input:hover,
.filter-combo-input:focus,
.filter-combo.open .filter-combo-input {
            border-color: var(--vc-control-focus-border);
            background: var(--vc-control-hover-background);
            box-shadow: var(--vc-control-focus-shadow);
            outline: none;
        }

        .filter-select option {
            color: var(--white);
            background: var(--surface-card);
        }

        .filter-combo { position: relative; min-width: 184px; }

        .filter-combo-input {
            width: 100%;
            text-align: left;
            cursor: text;
        }

        .filter-combo-input::placeholder { color: var(--text-faint); }

        .filter-combo-chevron {
            position: absolute;
            right: 0.85rem;
            top: 50%;
            width: 0.45rem;
            height: 0.45rem;
            border-right: 1.7px solid currentColor;
            border-bottom: 1.7px solid currentColor;
            transform: translateY(-65%) rotate(45deg);
            opacity: 0.72;
            cursor: pointer;
            transition: transform 0.16s ease, opacity 0.16s ease;
        }

        .filter-combo.open .filter-combo-chevron {
            transform: translateY(-30%) rotate(225deg);
            opacity: 0.92;
        }

        .filter-combo-menu {
            position: absolute;
            z-index: 60;
            top: calc(100% + 0.5rem);
            left: 0;
            margin: 0;
            width: min(320px, calc(100vw - 3rem));
            max-height: 300px;
            overflow: auto;
            padding: 0.42rem;
            border: 1px solid var(--border-light);
            border-radius: 8px;
            background: var(--surface-card);
            box-shadow: 0 20px 48px var(--border-light), inset 0 1px 0 var(--surface-card);
            display: none;
            scrollbar-width: thin;
        }

        .filter-combo.open .filter-combo-menu { display: block; }

        .filter-combo-option {
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto;
            align-items: center;
            gap: 0.55rem;
            width: 100%;
            border: 0;
            border-radius: 6px;
            background: transparent;
            color: var(--white);
            padding: 0.52rem 0.58rem;
            font: 600 0.8rem var(--font-sans, var(--font-sans));
            text-align: left;
            cursor: pointer;
            list-style: none;
            transition: background 0.14s ease, color 0.14s ease;
        }

        .filter-combo-option:hover,
.filter-combo-option.is-active,
.filter-combo-option[aria-selected="true"] {
            background: var(--blue-light);
        }

        .filter-combo-option[aria-selected="true"]::after {
            content: '✓';
            color: var(--blue);
            font-weight: 700;
        }

        .filter-combo-empty {
            padding: 0.7rem 0.6rem;
            color: var(--navy);
            opacity: 0.55;
            font: 600 0.78rem var(--font-sans, var(--font-sans));
            text-align: center;
        }


        .chart-filters:has(.filter-row[data-dropdownized="1"]) {
            grid-template-columns: repeat(auto-fit, minmax(218px, 1fr));
            align-items: end;
            column-gap: 0.85rem;
            row-gap: 0.72rem;
        }

        .chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-row {
            display: grid;
            align-content: start;
            gap: 0.42rem;
            min-width: 0;
        }

        .chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-label {
            min-width: 0;
        }

        .chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-select,
.chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-multi,
.chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-combo {
            width: 100%;
            min-width: 0;
            max-width: none;
        }
        .chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-row[data-multi="1"] {
            grid-column: 1 / -1;
            order: 1;
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 0.45rem;
        }

        .chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-row[data-multi="1"] .filter-label {
            margin-right: 0.3rem;
        }

        .filter-row[data-multi="1"] > .filter-pill { display: inline-flex; }

        .chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-row[data-axis="sector"] {
            grid-column: span 2;
            grid-template-columns: minmax(0, 1fr) auto;
            align-items: end;
        }

        .chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-row[data-axis="sector"] .filter-label {
            grid-column: 1 / -1;
        }

        .chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-row[data-axis="sector"] .filter-multi {
            grid-column: 1;
        }

        .chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-row[data-axis="sector"] .reset-btn {
            grid-column: 2;
            align-self: stretch;
            margin-left: 0;
            padding-inline: 0.7rem;
            white-space: nowrap;
        }

        @media (min-width: 1024px) {
            .chart-filters[data-chart="stack"]:has(.filter-row[data-dropdownized="1"]) {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }
            .chart-filters[data-chart="treemap"]:has(.filter-row[data-dropdownized="1"]) {
                grid-template-columns: repeat(4, minmax(0, 1fr));
            }
            .chart-filters:is([data-chart="stack"], [data-chart="treemap"]):has(.filter-row[data-dropdownized="1"]) .filter-row[data-axis="sector"] {
                grid-column: auto;
                grid-template-columns: minmax(0, 1fr);
            }
            .chart-filters:is([data-chart="stack"], [data-chart="treemap"]):has(.filter-row[data-dropdownized="1"]) .filter-row[data-axis="sector"] .filter-multi,
.chart-filters:is([data-chart="stack"], [data-chart="treemap"]):has(.filter-row[data-dropdownized="1"]) .filter-row[data-axis="sector"] .reset-btn {
                grid-column: 1;
            }
            .chart-filters:is([data-chart="stack"], [data-chart="treemap"]):has(.filter-row[data-dropdownized="1"]) .filter-row[data-axis="sector"] .reset-btn {
                justify-self: start;
                align-self: auto;
                min-height: 38px;
            }
        }

        @media (max-width: 720px) {
            .chart-filters:has(.filter-row[data-dropdownized="1"]) {
                grid-template-columns: 1fr;
            }
            .chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-row[data-axis="sector"] {
                grid-column: auto;
                grid-template-columns: minmax(0, 1fr);
            }
            .chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-row[data-axis="sector"] .filter-multi,
.chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-row[data-axis="sector"] .reset-btn {
                grid-column: 1;
            }
            .chart-filters:has(.filter-row[data-dropdownized="1"]) .filter-row[data-axis="sector"] .reset-btn {
                justify-self: start;
                min-height: 38px;
            }
        }

        @media (max-width: 720px) {
            .chart-filters:not(.is-open) .filter-row { display: none !important; }
        }
        .section { padding: 4rem 2rem 3rem;
            background: var(--navy-light); }

        .section-head { margin-bottom: 1.5rem; }

        .section-eyebrow {
            font-family: var(--font-sans);
            color: var(--eyebrow);
            font-size: 0.9375rem; margin-bottom: 0.45rem;
        }

        .section-title {
            font-family: var(--font-sans);
            font-size: clamp(1.6rem, 3vw, 2.4rem);
            font-weight: 600; line-height: 1.12; letter-spacing: -0.015em;
        }

        .section-sub { color: var(--text-light); max-width: 740px; font-size: 0.9875rem; line-height: 1.7; margin-top: 0.6rem; }

        .subsection-head .section-eyebrow { margin-bottom: 0.4rem; }

        .chart-card-head {
            display: flex; justify-content: space-between; align-items: flex-start;
            gap: 1rem; flex-wrap: wrap;
            margin-bottom: 1rem;
        }

        .chart-card-titles h3 {
            font-size: 1.05rem; font-weight: 700;
            margin-bottom: 0.25rem; color: var(--white);
        }

        .chart-card-titles .chart-sub {
            font-size: 0.82rem; color: var(--text-light);
        }

        .chart-meta {
            display: inline-flex; align-items: center; gap: 0.55rem;
            font-size: 0.78rem;
            font-variant-numeric: tabular-nums; color: var(--text-light);
        }

        .chart-meta strong { font-weight: 700; color: var(--white); }

        .chart-card-foot {
            position: relative;
            margin-top: 1rem;
            padding-top: 0.9rem;
            border-top: 1px solid var(--border-light);
            display: flex; justify-content: space-between; align-items: center;
            gap: 1rem; flex-wrap: wrap;
            font-size: 0.78rem; color: var(--text-lighter);
            border-color: var(--border-light);
        }

        .chart-card-foot .source-status { display: inline-flex; align-items: center; gap: 0.45rem; }

        .chart-watermark {
            display: block;
            width: 96px;
            height: 24px;
            margin-left: auto;
            background: url('/dealroom-logo-white.svg') center / contain no-repeat;
            filter: grayscale(1);
            pointer-events: none;
            flex: 0 0 auto;
            background-image: url('/dealroom-logo-darkblue.svg');
            opacity: 0.18;
        }

        .source-dot {
            width: 7px; height: 7px; border-radius: 50%;
            background: var(--mint);
            box-shadow: 0 0 6px var(--blue);
        }

        .source-dot.stale { background: var(--orange); box-shadow: 0 0 6px var(--text-faint); }

        .source-dot.fallback { background: var(--text-muted); box-shadow: none; }
        .chart-state {
            position: absolute; inset: 0;
            display: flex; align-items: center; justify-content: center;
            flex-direction: column; gap: 0.5rem;
            color: var(--text-light);
            font-size: 0.92rem;
            pointer-events: none;
            z-index: 6;
        }

        .chart-state.hidden { display: none; }
        .chart-state:has(.load-badge) {
            background: var(--load-scrim);
            -webkit-backdrop-filter: blur(2px);
            backdrop-filter: blur(2px);
            border-radius: 12px;
            opacity: 0;
            animation: chartLoadIn 0.22s ease 0.12s forwards;
        }

        .load-badge {
            display: inline-flex; align-items: center; gap: 0.6rem;
            padding: 0.72rem 1.15rem;
            background: var(--load-badge-bg);
            border: 1px solid var(--load-badge-border);
            border-radius: 999px;
            box-shadow: var(--load-badge-shadow);
            color: var(--load-badge-text);
            font-size: 0.9rem; font-weight: 600;
            letter-spacing: -0.01em;
        }

        .chart-state .spinner {
            width: 20px; height: 20px;
            border: 2.5px solid var(--load-track);
            border-top-color: var(--blue);
            border-radius: 50%;
            animation: spin 0.7s linear infinite;
            flex: none;
        }

        .chart-state .empty-icon {
            font-size: 28px;
        }
        .chart-controls {
            display: flex; flex-wrap: wrap;
            gap: 0.55rem 1.6rem;
            margin-bottom: 0.85rem;
            background: transparent;
            border: 0;
            border-bottom: 1px solid var(--border-light);
            border-radius: 0;
            padding: 0.6rem 0 0.85rem;
            margin: 0 0 0.9rem;
        }

        .ctrl-row {
            display: flex; align-items: center;
            gap: 0.4rem; flex-wrap: wrap;
            flex: 0 1 auto;
        }

        .ctrl-label {
            min-width: 84px;
            font-size: 0.66rem;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            font-weight: 700;
            color: var(--text-faint);
        }

        .ctrl-pill {
            display: inline-flex; align-items: center; gap: 0.3rem;
            color: var(--text-light);
            background: var(--border-light);
            border: 1px solid var(--border-light);
            border-radius: 999px;
            padding: 0.32rem 0.7rem;
            font: 600 0.76rem var(--font-sans);
            cursor: pointer;
            transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, opacity 0.15s ease;
            white-space: nowrap;
        }

        .ctrl-pill:hover:not([disabled]) {
            color: var(--white);
            border-color: var(--border-light);
        }

        .ctrl-pill.active {
            color: var(--white);
            background: var(--blue);
            border-color: var(--blue);
        }

        .ctrl-pill[disabled] {
            opacity: 0.4;
            cursor: not-allowed;
        }
        .ctrl-row.is-disabled { opacity: 0.4; pointer-events: none; }

        .ctrl-pill[hidden] { display: none; }
        .year-range {
            position: relative;
            width: 240px;
            max-width: 56vw;
            height: 28px;
            flex: 0 0 auto;
        }

        .year-range-track {
            position: absolute; left: 8px; right: 8px; top: 50%;
            height: 4px; transform: translateY(-50%);
            border-radius: 999px;
            background: var(--border-mid);
        }

        .year-range-fill {
            position: absolute; top: 0; bottom: 0;
            left: var(--p0, 0%); right: calc(100% - var(--p1, 100%));
            border-radius: 999px;
            background: var(--blue);
        }

        .year-range input[type="range"] {
            position: absolute; inset: 0;
            width: 100%; height: 100%;
            margin: 0; padding: 0;
            -webkit-appearance: none;
            appearance: none;
            background: transparent;
            pointer-events: none;
        }

        .year-range input[type="range"]:focus { outline: none; }

        .year-range input[type="range"]::-webkit-slider-runnable-track { height: 4px; background: transparent; border: none; }

        .year-range input[type="range"]::-moz-range-track { height: 4px; background: transparent; border: none; }

        .year-range input[type="range"]::-webkit-slider-thumb {
            -webkit-appearance: none;
            appearance: none;
            pointer-events: auto;
            width: 16px; height: 16px;
            margin-top: -6px;
            border-radius: 50%;
            background: var(--blue);
            border: 2.5px solid var(--panel);
            box-shadow: 0 0 0 1px var(--border-mid), 0 1px 4px var(--border-mid);
            cursor: grab;
            transition: transform 0.12s ease;
        }

        .year-range input[type="range"]::-moz-range-thumb {
            pointer-events: auto;
            width: 16px; height: 16px;
            border-radius: 50%;
            background: var(--blue);
            border: 2.5px solid var(--panel);
            box-shadow: 0 0 0 1px var(--border-mid), 0 1px 4px var(--border-mid);
            cursor: grab;
        }

        .year-range input[type="range"]:active::-webkit-slider-thumb { cursor: grabbing; transform: scale(1.12); }

        .year-range input[type="range"]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px var(--blue); }
        .year-range input[type="range"]:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 3px var(--blue); }
        .year-range-value {
            color: var(--text-light);
            font: 600 0.76rem var(--font-sans);
            font-variant-numeric: tabular-nums;
            white-space: nowrap;
            min-width: 86px;
        }

        @media (max-width: 720px) {
            .ctrl-label { min-width: 100%; }
        }

        .loc-heatmap.hidden { display: none; }

        @media (max-width: 600px) {
            .chart-watermark { width: 84px; height: 21px; margin-left: 0; }
        }

        body.vc-dashboard-page .chart-filters:has(.reset-btn:not([hidden])) .filter-row[data-axis="sector"] .reset-btn {
            grid-column: auto;
            justify-self: end;
            align-self: auto;
        }
        .ctrl-pill:not(.active),
.filter-pill:not(.active) {
            color: var(--white);
            background: var(--navy);
            border-color: var(--border-mid);
        }

        .ctrl-pill:not(.active):not([disabled]):hover,
.filter-pill:not(.active):not(.disabled):hover {
            color: var(--white);
            background: var(--blue-light);
            border-color: var(--blue);
        }

        .ctrl-pill.active,
.filter-pill.active {
            color: var(--navy);
            background: var(--blue);
            border-color: var(--blue);
        }
        .section-sub,
.chart-state { color: var(--text-light); }
        .filter-label,
.year-range-value,
.chart-card-foot { color: var(--text-faint); }
        @media (min-width: 1366px) and (max-width: 1819.98px) {
            .section-inner {
                max-width: min(1280px, calc(100vw - 440px));
            }
        }


        @media (max-width: 720px) {
            .section { padding: 2.6rem 1.25rem 2rem; }
            .filter-inner { padding: 0.85rem 1.25rem; }
            .filter-label { min-width: 100%; }
        }

@keyframes deck-spin { to { transform: rotate(360deg); } }
        @keyframes chartLoadIn { to { opacity: 1; } }
        @keyframes spin { to { transform: rotate(360deg); } }
        .cmp-slot-remove:hover {
            color: var(--white);
            background: var(--status-negative);
            border-color: var(--status-negative); }
        .cmp-slot-error {
            margin-top: 0.6rem;
            display: none;
            align-items: center; gap: 0.45rem;
            color: var(--status-negative);
            font: 600 0.75rem var(--font-sans); }
        .cmp-slots {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(236px, 1fr));
            gap: 0.9rem;
            margin-bottom: 1.1rem;
        }
        .cmp-slot {
            position: relative;
            border: 1px solid var(--border-light);
            border-radius: 12px;
            padding: 0.9rem 1rem 1.05rem;
            min-width: 0;
            background: var(--surface-card);
            border-color: var(--border-light);
        }
        .cmp-slot-head {
            display: flex; align-items: center; gap: 0.5rem;
            margin-bottom: 0.7rem;
        }
        .cmp-slot-dot {
            width: 9px; height: 9px; border-radius: 50%;
            background: var(--slot-clr, var(--blue));
            flex: 0 0 auto;
        }
        .cmp-slot-title {
            flex: 1; min-width: 0;
            font: 700 0.95rem var(--font-sans);
            color: var(--white);
            overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
        }
        .cmp-slot-remove {
            flex: 0 0 auto;
            display: inline-flex; align-items: center; justify-content: center;
            width: 26px; height: 26px;
            border: 1px solid transparent;
            border-radius: 8px;
            background: transparent;
            color: var(--text-lighter);
            font-size: 1rem; line-height: 1;
            cursor: pointer;
            transition: color 0.14s ease, background 0.14s ease, border-color 0.14s ease;
        }
        .cmp-field { margin-top: 0.6rem; }
        .cmp-field-label {
            display: block;
            margin-bottom: 0.3rem;
            color: var(--text-lighter);
            font-size: 0.64rem;
            text-transform: uppercase;
            letter-spacing: 0.12em;
            font-weight: 700;
        }
        .cmp-slot .filter-combo { min-width: 0; width: 100%; }
        .cmp-slot .filter-combo-input { min-width: 0; width: 100%; }
        .cmp-slot .filter-select { min-width: 0; width: 100%; }
        .cmp-combo-badge {
            color: var(--text-lighter);
            font-size: 0.68rem;
            font-weight: 600;
            white-space: nowrap;
            margin-left: 0.6rem;
        }
        .cmp-slot.has-error .cmp-slot-error { display: flex; }
        .cmp-slot-error button {
            border: 1px solid var(--status-negative);
            background: var(--status-negative);
            color: inherit;
            border-radius: 999px;
            padding: 0.15rem 0.6rem;
            font: 700 0.72rem var(--font-sans);
            cursor: pointer;
        }
        .cmp-slot + .cmp-slot::before {
            content: 'vs';
            position: absolute;
            left: -0.45rem; top: 1.05rem;
            transform: translateX(-50%);
            z-index: 2;
            padding: 0.12rem 0.4rem;
            border-radius: 999px;
            border: 1px solid var(--border-light);
            font: 700 0.62rem var(--font-sans);
            text-transform: uppercase;
            letter-spacing: 0.08em;
            background: var(--surface-card);
            border-color: var(--vc-control-border);
            color: var(--text-faint);
        }
        .cmp-add {
            display: flex; flex-direction: column;
            align-items: center; justify-content: center;
            gap: 0.4rem;
            min-height: 148px;
            border: 1.5px dashed var(--border-light);
            border-radius: 12px;
            background: transparent;
            font: 700 0.85rem var(--font-sans);
            cursor: pointer;
            transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
            border-color: var(--border-mid);
            color: var(--text-faint);
        }
        .cmp-add:hover {
            color: var(--blue);
            border-color: var(--blue);
            background: var(--blue-light);
        }
        .cmp-add .cmp-add-plus { font-size: 1.4rem; font-weight: 400; line-height: 1; }
        .cmp-controls { margin-bottom: 0.4rem; }
        .cmp-chart-wrap {
            position: relative;
            height: 330px;
            margin-top: 0.5rem;
        }
        .cmp-chart-wrap canvas { width: 100% !important; height: 100% !important; }
        .cmp-board { margin-top: 1.2rem; overflow-x: auto; }
        .cmp-table {
            width: 100%;
            min-width: 560px;
            border-collapse: collapse;
        }
        .cmp-table th,
.cmp-table td {
            padding: 0.52rem 0.75rem 0.52rem 0;
            text-align: left;
            vertical-align: top;
            border-top: 1px solid var(--border-light);
            border-top-color: var(--border-light);
        }
        .cmp-table thead th {
            border-top: 0;
            padding-top: 0;
            font: 700 0.8rem var(--font-sans);
            color: var(--white);
        }
        .cmp-table thead th .cmp-col-dot {
            display: inline-block;
            width: 8px; height: 8px; border-radius: 50%;
            margin-right: 0.4rem;
            background: var(--col-clr, var(--blue));
        }
        .cmp-table .cmp-group-row th {
            padding-top: 1.05rem;
            border-top: 0;
            color: var(--text-lighter);
            font-size: 0.64rem;
            text-transform: uppercase;
            letter-spacing: 0.14em;
            font-weight: 700;
        }
        .cmp-metric-name {
            font: 600 0.82rem var(--font-sans);
            white-space: nowrap; color: var(--text-light);
        }
        .cmp-metric-hint {
            display: block;
            color: var(--text-muted);
            font-size: 0.68rem;
            font-weight: 500;
            white-space: nowrap;
        }
        .cmp-val {
            color: var(--white);
            font: 600 0.95rem var(--font-sans);
            font-variant-numeric: tabular-nums;
            white-space: nowrap;
        }
        td.cmp-lead .cmp-val { font-weight: 800; }
        .cmp-lead-dot {
            display: inline-block;
            width: 7px; height: 7px; border-radius: 50%;
            margin-left: 0.4rem;
            vertical-align: 1px;
            background: var(--col-clr, var(--blue));
        }
        .cmp-bar {
            display: block;
            margin-top: 0.3rem;
            width: min(150px, 100%);
            height: 4px;
            border-radius: 999px;
            background: var(--load-track);
            overflow: hidden;
        }
        .cmp-bar i {
            display: block; height: 100%;
            width: var(--w, 0%);
            border-radius: 999px;
            background: var(--col-clr, var(--blue));
        }
        .cmp-delta-up { color: var(--status-positive); }
        .cmp-delta-down { color: var(--status-negative); }
        .cmp-muted .cmp-val { font-weight: 500; color: var(--text-light); }
        .cmp-foot-note {
            color: var(--text-muted);
            font-size: 0.72rem;
        }
        @media (max-width: 760px) {
            .cmp-slots { grid-template-columns: 1fr; }
            .cmp-slot + .cmp-slot::before {
                left: 50%; top: -0.62rem;
                transform: translateX(-50%);
            }
            .cmp-chart-wrap { height: 260px; }
            .cmp-table { min-width: 480px; }
            .cmp-table th,
.cmp-table td { padding-right: 0.55rem; }
            .cmp-metric-hint { white-space: normal; }
        }
        .cmp-slot-title,
.cmp-table thead th,
.cmp-val { color: var(--white); }
        .cmp-metric-hint,
.cmp-combo-badge,
.cmp-slot-remove,
.cmp-foot-note { color: var(--text-faint); }
        .cmp-field-label,
.cmp-table .cmp-group-row th { color: var(--text-faint); }
