        /* Top Movers */
        .movers-container {
            background: var(--surface);
            border-radius: 18px;
            box-shadow: 0 4px 24px rgba(26,35,126,0.10), 0 1.5px 6px rgba(26,35,126,0.06);
            padding: 2.0rem 2.0rem 1.6rem 2.0rem;
            margin: 2.5rem auto 2.5rem auto;
            max-width: 1200px;
            border: 1.5px solid var(--border);
            overflow: hidden; /* keep contents inside the frame */
            box-sizing: border-box;
        }
        .movers-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 1.0rem;
        }
        .movers-title {
            color: #22314a;
            font-weight: 600;
            margin: 0;
            text-align: center;
            width: 100%;
        }
        .movers-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            grid-auto-rows: 1fr;
            gap: 1rem;
        }
        @media (max-width: 720px) {
            .movers-grid {
                gap: 0.8rem;
            }
        }
        @media (max-width: 480px) {
            .movers-grid {
                gap: 0.4rem;
            }
            .mover-card { 
                padding: 0.65rem 0.6rem 0.7rem; 
            }
        }
        .mover-card {
            position: relative;
            background: linear-gradient(135deg, #ffffff 0%, #fafbfd 100%);
            border: 1px solid #e3e8f0;
            padding: 0.9rem 0.85rem 0.95rem;
            border-radius: 16px;
            cursor: pointer;
            box-shadow: 0 4px 16px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04);
            transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
            display: flex; 
            flex-direction: column; 
            gap: 0.55rem;
            min-width: 0;
            max-width: 100%;
            min-height: 9.6rem;
            box-sizing: border-box;
            overflow: hidden;
        }
        .mover-card:hover { 
            box-shadow: 0 12px 32px rgba(40,80,140,0.16), 0 4px 8px rgba(40,80,140,0.08);
            transform: translateY(-4px) scale(1.01);
            border-color: #d0d8e8;
        }
        .mover-card.up { 
            border-left: 4px solid #1fa463;
            background: linear-gradient(135deg, #f0fdf8 0%, #ffffff 65%);
        }
        .mover-card.down { 
            border-left: 4px solid #d63939;
            background: linear-gradient(135deg, #fff5f5 0%, #ffffff 65%);
        }
        .mover-top {
            display: flex;
            justify-content: space-between;
            align-items: start;
            gap: 0.5rem;
            margin-bottom: 0.5rem;
            flex-wrap: wrap;
        }
        .mover-top > div { 
            min-width: 0; 
        }
        .mover-name {
            font-weight: 600;
            color: #1c2c3d;
            line-height: 1.15;
            overflow-wrap: anywhere;
            min-height: 2.3em;
            /* at most two lines; the full name is in the title tooltip */
            display: -webkit-box;
            -webkit-box-orient: vertical;
            -webkit-line-clamp: 2;
            line-clamp: 2;
            overflow: hidden;
        }
        .mover-badge {
            background: #eef3f8; 
            color: #2f4b68; 
            font-weight: 600; 
            letter-spacing: 0.5px; 
            padding: 3px 6px; 
            border-radius: 16px;
            white-space: nowrap;
            font-size: 0.75rem;
        }
        .mover-change {
            font-weight: 700; 
            white-space: nowrap; 
            min-width: 78px; 
            text-align: right;
        }
        .mover-change.up { 
            color: #228b22; 
        }
        .mover-change.down { 
            color: #c62828; 
        }
        .mover-meta {
            font-size: 0.66rem; 
            font-weight: 500; 
            color: #4b5c6f; 
            display: flex; 
            flex-wrap: wrap; 
            gap: 4px; 
            line-height: 1.25;
        }
        .mover-projected {
            color: #5a6a7a;
            font-style: italic;
        }
        .mover-muted {
            color: #8a97a6;
            font-style: italic;
        }
        .projected-val { font-weight: 700; font-style: normal; }
        .projected-val.up   { color: #1fa463; }
        .projected-val.down { color: #d63939; }
        .mover-progress {
            position: relative; 
            width: 100%; 
            height: 5px; 
            background: #e2eaf4; 
            border-radius: 8px; 
            overflow: hidden; 
            margin-top: auto;
        }
        .mover-progress > span {
            display: block; 
            height: 100%; 
            background: linear-gradient(90deg, #1fa463, #16c776);
            box-shadow: 0 0 6px rgba(31, 164, 99, 0.5);
            border-radius: 8px;
        }
        .mover-card.down .mover-progress > span { 
            background: linear-gradient(90deg, #d63939, #f05252);
            box-shadow: 0 0 6px rgba(214, 57, 57, 0.5);
        }
        /* Modal */
        .modal-root { 
            position: fixed; 
            inset: 0; 
            display: none; 
        }
        .modal-root.active { 
            display: block; 
        }
        .modal-backdrop { 
            position: absolute; 
            inset: 0; 
            background: rgba(0,0,0,0.35); 
        }
        .modal-content {
            position: absolute; 
            left: 50%; 
            top: 50%; 
            transform: translate(-50%, -50%);
            width: min(92vw, 780px); 
            background: #fff; 
            border-radius: 16px; 
            padding: 1rem 1.2rem;
            box-shadow: 0 10px 40px rgba(0,0,0,0.25);
            border: 1px solid var(--border);
        }
        .modal-header { 
            display: flex; 
            align-items: center; 
            justify-content: space-between; 
            gap: 0.5rem; 
        }
        .modal-title { 
            font-weight: 700; 
            color: var(--primary); 
            margin: 0.2rem 0; 
        }
        .modal-close { 
            background: none; 
            border: none; 
            line-height: 1; 
            cursor: pointer; 
            color: #666; 
        }
        .modal-body { 
            margin-top: 0.6rem; 
        }
        .modal-meta { 
            color: #666; 
            margin-bottom: 0.6rem; 
        }
        .modal-grid { 
            display: grid; 
            grid-template-columns: 1fr 1fr; 
            gap: 0.75rem; 
            margin-bottom: 0.6rem; 
        }
        .modal-stat { 
            background: #f7fafd; 
            border: 1px solid var(--border); 
            border-radius: 10px; 
            padding: 0.6rem; 
        }
        .modal-stat .label { 
            color: #666; 
        }
        .modal-stat .value { 
            font-weight: 700; 
            color: var(--primary); 
        }
        canvas#mover-chart { 
            width: 100% !important; 
            height: 260px !important; 
        }

        /* Market Clock */
        .market-clock-section {
            margin-top: 1rem;
        }
        .market-clock-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 0.6rem;
            margin-top: 0.55rem;
        }
        .mkt-clock-card {
            background: linear-gradient(135deg, #f8fafb 0%, #ffffff 100%);
            border-radius: 14px;
            padding: 0.6rem 0.5rem 0.55rem;
            box-shadow: 0 3px 10px rgba(60,120,200,0.08), 0 1px 3px rgba(60,120,200,0.04);
            border: 1px solid rgba(208,216,232,0.6);
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 0.3rem;
            position: relative;
            overflow: hidden;
        }
        .mkt-clock-flag {
            font-size: 1.1rem;
            line-height: 1;
        }
        .mkt-clock-name {
            font-size: 0.65rem;
            font-weight: 700;
            color: #22314a;
            letter-spacing: 0.5px;
            text-transform: uppercase;
        }
        .mkt-clock-ring-wrap {
            position: relative;
            width: 52px;
            height: 52px;
        }
        .mkt-clock-ring-wrap canvas {
            position: absolute;
            top: 0; left: 0;
        }
        .mkt-clock-ring-label {
            position: absolute;
            inset: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 0.58rem;
            font-weight: 700;
            letter-spacing: 0.3px;
            border-radius: 50%;
        }
        .mkt-clock-ring-label.open  { color: #1fa463; }
        .mkt-clock-ring-label.closed { color: #e53935; }
        .mkt-clock-time {
            font-size: 0.78rem;
            font-weight: 700;
            color: #1c2c3d;
            letter-spacing: 0.5px;
            font-variant-numeric: tabular-nums;
        }
        .mkt-clock-tz {
            font-size: 0.58rem;
            color: #8a9ab0;
            letter-spacing: 0.3px;
        }
        
        /* VIX + Buffett Indicator widgets */
        .market-indicators-section {
            margin-top: 1rem;
        }
        .market-indicators-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 0.6rem;
            margin-top: 0.55rem;
        }
        .mkt-indicator-card {
            background: linear-gradient(135deg, #f8fafb 0%, #ffffff 100%);
            border-radius: 14px;
            padding: 0.7rem 0.65rem 0.65rem;
            box-shadow: 0 3px 10px rgba(60,120,200,0.08), 0 1px 3px rgba(60,120,200,0.04);
            border: 1px solid rgba(208,216,232,0.6);
            display: flex;
            flex-direction: column;
            gap: 0.25rem;
            position: relative;
            overflow: hidden;
        }
        .mkt-indicator-label {
            font-size: 0.62rem;
            font-weight: 700;
            color: #8a9ab0;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .mkt-indicator-value {
            font-size: 1.25rem;
            font-weight: 800;
            color: #1c2c3d;
            letter-spacing: -0.5px;
            line-height: 1;
        }
        .mkt-indicator-change {
            font-size: 0.68rem;
            font-weight: 600;
        }
        .mkt-indicator-change.up   { color: #1fa463; }
        .mkt-indicator-change.down { color: #e53935; }
        .mkt-indicator-change.flat { color: #8a9ab0; }
        .mkt-indicator-sub {
            font-size: 0.6rem;
            color: #aab;
            margin-top: 0.15rem;
        }
        .mkt-indicator-bar-wrap {
            height: 5px;
            border-radius: 3px;
            background: #e8edf3;
            margin-top: 0.3rem;
            overflow: hidden;
        }
        .mkt-indicator-bar {
            height: 100%;
            border-radius: 3px;
            transition: width 0.6s ease;
        }
        /* VIX color bands */
        .vix-low    { background: #1fa463; }
        .vix-mid    { background: #f59e0b; }
        .vix-high   { background: #e53935; }
        /* Buffett color bands */
        .buff-low   { background: #1fa463; }
        .buff-mid   { background: #f59e0b; }
        .buff-high  { background: #e53935; }

        /* Indicators Section */
        .section-title {
            color: #22314a;
            font-weight: 600;
            margin: 0 0 0.9rem 0;
        }
        .indicators-grid {
            display: grid;
            grid-template-columns: repeat(2, minmax(0, 1fr));
            gap: 12px;
        }
        .indicator-card {
            background: linear-gradient(135deg, #f8fafb 0%, #ffffff 100%);
            border-radius: 16px;
            padding: 14px 16px;
            box-shadow: 0 6px 20px rgba(60,120,200,0.08), 0 2px 6px rgba(60,120,200,0.04);
            border: 1px solid rgba(208,216,232,0.6);
            color: #003366;
            display: flex;
            flex-direction: column;
            gap: 6px;
            height: auto;
            overflow: visible;
            transition: all 0.25s ease;
        }
        
        .indicator-card:hover {
            box-shadow: 0 8px 28px rgba(60,120,200,0.12), 0 3px 8px rgba(60,120,200,0.06);
            transform: translateY(-2px);
            border-color: #a0b0d8;
        }
        #barometer-section { 
            overflow: visible;
        }
        .indicator-header { 
            display: flex; 
            align-items: center; 
            gap: 6px; 
            font-size: 0.62rem;
            font-weight: 700;
            color: #8a9ab0;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .indicator-value { 
            color: #1a3a5d; 
            font-weight: 600; 
        }
        .indicator-note { 
            color: #888; 
            font-weight: 400; 
        }
        
        /* Mobile responsive indicators */
        @media (max-width: 900px) {
            #indicators-section {
                padding: 0.5rem 0.5rem 0.6rem 0.5rem;
            }
            .section-title {
                margin: 0 0 0.5rem 0;
            }
            .indicators-grid {
                gap: 6px;
            }
            .indicator-card {
                padding: 10px 12px;
            }
            .indicator-header {
                gap: 5px;
            }
        }
        @media (max-width: 720px) {
            #indicators-section {
                padding: 0.45rem 0.45rem 0.55rem 0.45rem;
            }
            .indicator-card {
                padding: 10px 10px;
            }
        }
        @media (max-width: 480px) {
            #indicators-section {
                padding: 0.4rem 0.4rem 0.5rem 0.4rem;
                border-radius: 12px;
            }
            .section-title {
                margin: 0 0 0.4rem 0;
            }
            .indicators-grid {
                gap: 5px;
            }
            .indicator-card {
                padding: 8px 8px;
                border-radius: 10px;
            }
            .indicator-header {
                gap: 3px;
            }
            .barometer-table th {
                font-size: 0.9rem;
            }
            .baro-indicator {
                font-size: 0.85rem;
                padding: 0.2em 0.5em;
            }
        }
        
        /* News Section */
        .news-list { 
            display: flex; 
            flex-direction: column; 
            gap: 8px; 
        }
        .news-item {
            display: block;
            background: #fff;
            border: 1px solid #e6eef7;
            border-radius: 12px;
            padding: 10px 12px;
            text-decoration: none;
            transition: box-shadow 0.18s, transform 0.18s, border-color 0.18s;
        }
        .news-item:hover { 
            box-shadow: 0 8px 24px rgba(60,120,200,0.14); 
            transform: translateY(-2px); 
            border-color: #cbd9ee; 
        }
        .news-title { 
            font-weight: 600; 
            color: #22314a; 
            line-height: 1.25; 
            margin-bottom: 4px; 
        }
        .news-meta { 
            display: flex; 
            align-items: center; 
            gap: 10px; 
            color: #4ca585; 
            font-weight: 500; 
        }
        .news-source { 
            display: flex; 
            align-items: center; 
            gap: 6px; 
        }
        .news-arrow { 
            margin-left: auto; 
            color: #9aa9bf; 
        }
        
        /* Fondos Comparison */
        .fondos-compare-container {
            background: #fff;
            border-radius: 18px;
            box-shadow: 0 4px 24px rgba(60,120,200,0.10), 0 1.5px 6px rgba(60,120,200,0.06);
            padding: 2.5rem;
            margin: 2.5rem auto;
            max-width: 1200px;
            border: 1.5px solid #d0d8e8;
            transition: box-shadow 0.18s, transform 0.18s;
        }
        .fondos-compare-container:hover {
            box-shadow: 0 8px 32px rgba(60,120,200,0.16), 0 3px 12px rgba(60,120,200,0.10);
            transform: translateY(-2px) scale(1.012);
        }
        .fondos-compare-bar {
            display: flex;
            align-items: center;
            gap: 1rem;
            margin-bottom: 1.5rem;
        }
        .fondos-compare-bar input {
            min-width: 220px;
            padding: 0.5rem 1rem;
            border: 1px solid #b5c9d6;
            border-radius: 6px;
        }
        .fondos-compare-bar button {
            background: #4ca585;
            color: #fff;
            border: none;
            border-radius: 6px;
            padding: 0.5rem 1.5rem;
            font-weight: 600;
            cursor: pointer;
            transition: background 0.2s;
        }
        .fondos-compare-bar button:hover {
            background: #1976d2;
        }
        .fondos-tabs {
            display: flex;
            gap: 2.5rem;
            border-bottom: 1.5px solid #e6e6e6;
            margin-bottom: 1.2rem;
        }
        .fondos-tab {
            font-size: 1.1rem;
            font-weight: 600;
            color: #4ca585;
            padding: 0.5rem 0;
            cursor: pointer;
            border: none;
            background: none;
            border-bottom: 2.5px solid transparent;
            transition: border 0.2s, color 0.2s;
        }
        .fondos-tab.active {
            color: #1976d2;
            border-bottom: 2.5px solid #1976d2;
        }
        .fondos-compare-cards {
            display: flex;
            gap: 2rem;
            margin-top: 1.5rem;
        }
        .fondos-card {
            flex: 1;
            background: #f8fafb;
            border-radius: 10px;
            box-shadow: 0 1px 4px rgba(0,0,0,0.04);
            padding: 1.2rem 1.5rem 1.2rem 1.5rem;
            min-width: 260px;
        }
        .fondos-card-title {
            font-size: 1.3rem;
            font-weight: 700;
            color: #4ca585;
            margin-bottom: 0.2rem;
        }
        .fondos-card-subtitle {
            font-size: 1rem;
            color: #888;
            margin-bottom: 1.2rem;
        }
        .fondos-card-table {
            width: 100%;
            border-collapse: collapse;
        }
        .fondos-card-table td {
            padding: 0.4rem 0.2rem;
            font-size: 1rem;
            color: #222;
        }
        .fondos-card-table td.label {
            color: #888;
            font-weight: 500;
            width: 48%;
        }
        .fondos-card-table td.value {
            font-weight: 600;
            color: #1976d2;
            width: 52%;
        }
