        /* Gauge Gradient */
        .gauge-gradient {
            background: linear-gradient(90deg, #3730a3 0%, #4f46e5 50%, #818cf8 100%);
        }

        /* Premium Modal */
        .modal-overlay { backdrop-filter: blur(6px); }
        .modal-card { animation: slideUp 0.28s cubic-bezier(0.16, 1, 0.3, 1); }
        @keyframes slideUp {
            from { opacity: 0; transform: translateY(20px) scale(0.96); }
            to   { opacity: 1; transform: translateY(0)   scale(1);    }
        }
        /* DCF param card */
        .dcf-param-card { cursor: pointer; user-select: none; transition: box-shadow 0.15s; }
        .dcf-param-card:hover { box-shadow: 0 0 0 2px #6366f1; }
        /* Data table rows */
        .data-table td, .data-table th { padding: 10px 12px; font-size: 0.85rem; white-space: nowrap; }
        .data-table thead th { background: #f8fafc; font-weight: 600; color: #64748b; text-transform: uppercase; letter-spacing: 0.05em; }
        .data-table tbody tr:hover td { background: #f8fafc; }
        .row-header { color: #334155; min-width: 180px; }

        .period-btn-active {
            background: #ffffff;
            color: #1e293b;
            box-shadow: 0 0 0 1px rgba(148, 163, 184, 0.35);
        }

        .period-btn-inactive {
            color: #94a3b8;
        }

        .period-btn-inactive:hover {
            color: #e2e8f0;
        }

        /* Traffic-light signals */
        .signal-panel { position: relative; }
        .signal-badge {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 2px 8px;
            border-radius: 9999px;
            font-size: 10px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.02em;
            border: 1px solid transparent;
        }
        .signal-dot {
            width: 7px;
            height: 7px;
            border-radius: 9999px;
        }
        .signal-green {
            color: #065f46;
            background: #d1fae5;
            border-color: #a7f3d0;
        }
        .signal-yellow {
            color: #92400e;
            background: #fef3c7;
            border-color: #fde68a;
        }
        .signal-red {
            color: #991b1b;
            background: #fee2e2;
            border-color: #fecaca;
        }
        .signal-neutral {
            color: #64748b;
            background: #f1f5f9;
            border-color: #e2e8f0;
        }
        .signal-badge-dark {
            background: rgba(15, 23, 42, 0.65);
            color: #e2e8f0;
            border-color: rgba(148, 163, 184, 0.45);
        }
        .signal-badge-dark.signal-green { border-color: rgba(16, 185, 129, 0.55); }
        .signal-badge-dark.signal-yellow { border-color: rgba(251, 191, 36, 0.55); }
        .signal-badge-dark.signal-red { border-color: rgba(248, 113, 113, 0.55); }

        .signal-border-green {
            border-color: rgba(16, 185, 129, 0.45);
            box-shadow: inset 4px 0 0 rgba(16, 185, 129, 0.6);
        }
        .signal-border-yellow {
            border-color: rgba(251, 191, 36, 0.45);
            box-shadow: inset 4px 0 0 rgba(251, 191, 36, 0.6);
        }
        .signal-border-red {
            border-color: rgba(248, 113, 113, 0.45);
            box-shadow: inset 4px 0 0 rgba(248, 113, 113, 0.6);
        }
        .signal-border-neutral {
            border-color: rgba(148, 163, 184, 0.4);
            box-shadow: inset 4px 0 0 rgba(148, 163, 184, 0.35);
        }

        /* ── Assumption Studio (Valuation page centerpiece) ─────────── */
        .studio-row { display: grid; grid-template-columns: 1fr auto; gap: 8px 14px; align-items: center; padding: 10px 0; border-bottom: 1px dashed #eef2f7; }
        .studio-row:last-child { border-bottom: 0; }
        .studio-label { font-size: 14px; font-weight: 600; color: #0f172a; display: flex; align-items: center; gap: 6px; letter-spacing: -0.01em; }
        .studio-meta  { font-size: 12px; color: #94a3b8; font-weight: 500; margin-top: 2px; }
        .studio-input {
            width: 100px; text-align: right; font-family: 'JetBrains Mono', monospace;
            font-weight: 700; font-size: 15px; color: #0f172a;
            background: #ffffff; border: 1px solid #e2e8f0; border-radius: 8px;
            padding: 6px 10px; outline: none; transition: all 0.15s ease;
        }
        .studio-input:focus { border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99,102,241,0.18); }
        .studio-input.is-overridden { border-color: #f59e0b; background: #fffbeb; color: #b45309; }
        .studio-suffix { font-size: 13px; color: #94a3b8; margin-left: 4px; font-family: 'JetBrains Mono', monospace; }
        .studio-slider {
            grid-column: 1 / -1; -webkit-appearance: none; appearance: none;
            height: 4px; border-radius: 2px; background: linear-gradient(90deg, #e0e7ff 0%, #6366f1 100%);
            outline: none; cursor: pointer; width: 100%;
        }
        .studio-slider::-webkit-slider-thumb {
            -webkit-appearance: none; appearance: none;
            width: 14px; height: 14px; border-radius: 50%;
            background: #ffffff; border: 2px solid #6366f1; cursor: pointer;
            box-shadow: 0 1px 4px rgba(99,102,241,0.4);
        }
        .studio-slider::-moz-range-thumb {
            width: 14px; height: 14px; border-radius: 50%;
            background: #ffffff; border: 2px solid #6366f1; cursor: pointer;
            box-shadow: 0 1px 4px rgba(99,102,241,0.4);
        }
        .studio-section-title {
            font-size: 12px; font-weight: 700; color: #64748b;
            text-transform: uppercase; letter-spacing: 0.08em;
            display: flex; align-items: center; gap: 8px;
            padding: 6px 0 8px; margin-top: 14px;
            border-bottom: 1px solid #f1f5f9;
        }
        .studio-section-title:first-child { margin-top: 0; }
        .studio-section-title .dot { width: 6px; height: 6px; border-radius: 50%; }
        .studio-tooltip { color: #cbd5e1; cursor: help; transition: color 0.15s; }
        .studio-tooltip:hover { color: #6366f1; }

        .reset-btn {
            display: inline-flex; align-items: center; justify-content: center;
            width: 22px; height: 22px; border-radius: 6px; border: 1px solid #e2e8f0;
            background: #f8fafc; color: #94a3b8; cursor: pointer; transition: all 0.15s;
            font-size: 11px;
        }
        .reset-btn:hover { background: #fef3c7; border-color: #fde68a; color: #b45309; }

        .preset-pill {
            padding: 6px 10px; border-radius: 9999px; border: 1px solid #e2e8f0;
            background: #ffffff; font-size: 13px; font-weight: 600; color: #475569;
            cursor: pointer; transition: all 0.15s ease;
        }
        .preset-pill:hover { border-color: #6366f1; color: #4f46e5; background: #eef2ff; }
        .preset-pill.is-active { background: #4f46e5; border-color: #4f46e5; color: #ffffff; }

        .override-badge {
            display: inline-flex; align-items: center; gap: 3px;
            padding: 1px 6px; border-radius: 99910px;
            background: #fef3c7; color: #b45309;
            font-size: 10px; font-weight: 700; letter-spacing: 0.04em;
            border: 1px solid #fde68a;
        }

        /* ── Sensitivity Heatmap ─────────────────────────────────────── */
        .sens-grid { display: grid; grid-template-columns: 60px repeat(5, 1fr); gap: 2px; }
        .sens-cell {
            font-family: 'JetBrains Mono', monospace; font-size: 13px;
            padding: 8px 4px; text-align: center; border-radius: 4px;
            font-weight: 600; transition: all 0.15s ease; position: relative;
        }
        .sens-axis { color: #94a3b8; font-size: 12px; font-weight: 600; padding: 6px 4px; text-align: center; }
        .sens-cell.is-current { box-shadow: 0 0 0 2px #1e293b; z-index: 1; }

        /* ── Build-up Bar (waterfall-lite) ───────────────────────────── */
        .buildup-bar { height: 24px; border-radius: 4px; transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1); }
        .buildup-row { display: grid; grid-template-columns: 110px 1fr 90px; align-items: center; gap: 12px; padding: 6px 0; }
        .buildup-label { font-size: 13px; font-weight: 600; color: #475569; text-align: right; }
        .buildup-value { font-family: 'JetBrains Mono', monospace; font-size: 14px; font-weight: 700; color: #0f172a; text-align: right; }

        /* ── Scenario Tiles ──────────────────────────────────────────── */
        .scenario-tile {
            position: relative; padding: 14px; border-radius: 12px;
            border: 1px solid #e2e8f0; background: #ffffff; cursor: pointer;
            transition: all 0.2s ease;
        }
        .scenario-tile:hover { transform: translateY(-2px); box-shadow: 0 8px 20px -8px rgba(15,23,42,0.18); }
        .scenario-tile.is-active { border-color: #4f46e5; box-shadow: 0 0 0 3px rgba(79,70,229,0.12); }

        /* sticky for desktop only */
        @media (min-width: 1024px) {
            .studio-sticky { position: sticky; top: 88px; }
        }
