/* ==================== 1. 全局基础样式 (Fintech风格) ==================== */
        :root {
            /* 深灰蓝背景体系 - 降低视觉疲劳 */
            --bg-dark: #0F1216;
            --bg-panel: #161A1E;
            --bg-card: #1E2329;
            --bg-header: #15181C;
            --border-color: #2B3139;
            
            /* 文字色 */
            --text-main: #EAECEF;
            --text-sub: #848E9C;
            --text-dim: #5E6673;
            
            /* 金融色 - 降低饱和度 */
            --color-red: #F6465D;
            --color-green: #0ECB81;
            --color-blue: #4A90E2;
            --color-gold: #F0B90B;
            --color-orange: #F7931A;
            --color-purple: #A855F7;
            
            --scrollbar-width: 8px;
            --accent-dragon: #F0B90B;
            --accent-info: #4A90E2;
            --accent-risk: #F6465D;
            --accent-node: #00D1C1;
            --accent-text-strong: #EAECEF;
            --accent-panel: #1E2329;
            --accent-border-strong: #2B3139;
            
            /* 简化阴影和圆角 */
            --card-radius: 8px;
            --card-shadow: 0 2px 4px rgba(0,0,0,0.2);
            --transition-smooth: all 0.15s ease;

            /* 顶部 Meta 卡固定高度（高密度模式） */
            --meta-card-height: 170px;
        }

        html {
            overflow-y: auto !important;
            overflow-x: hidden;
        }

        body {
            margin: 0;
            font-family: "SF Pro SC", "Microsoft YaHei", sans-serif;
            background-color: var(--bg-dark);
            color: var(--text-main);
            min-height: 100vh;
            overflow-x: hidden;
            overflow-y: auto !important;
        }

        [v-cloak] { display: none !important; }

        #app {
            display: flex;
            flex-direction: column;
            min-height: 100vh;
            width: 100%;
            overflow-y: visible !important;
        }

        /* 纵向滚动条样式 */
        ::-webkit-scrollbar {
            width: 12px;
            height: 16px;
        }

        ::-webkit-scrollbar-track {
            background: #0a0a0a;
        }

        ::-webkit-scrollbar-thumb {
            background: linear-gradient(180deg, #666, #444);
            border-radius: 6px;
            border: 2px solid #0a0a0a;
        }

        ::-webkit-scrollbar-thumb:hover {
            background: linear-gradient(180deg, #888, #666);
        }

        ::-webkit-scrollbar-corner {
            background: #0a0a0a;
        }

        /* 横向滚动条样式 - 默认细，悬浮放大便于拖拽 */
        .scroll-wrapper::-webkit-scrollbar {
            height: 8px;
            transition: height 0.2s;
        }

        .scroll-wrapper:hover::-webkit-scrollbar {
            height: 12px;
        }

        .scroll-wrapper::-webkit-scrollbar-track {
            background: #111;
            border: none;
        }

        .scroll-wrapper::-webkit-scrollbar-thumb {
            background: #444;
            border-radius: 4px;
            border: none;
            min-width: 40px;
        }

        .scroll-wrapper::-webkit-scrollbar-thumb:hover {
            background: #666;
        }



        /* 回到今日悬浮按钮 */
        .fab-back-today {
            position: fixed;
            bottom: 30px;
            right: 30px;
            width: 44px;
            height: 44px;
            background: linear-gradient(135deg, #ff4d4d, #c0392b);
            border-radius: 50%;
            color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            box-shadow: 0 4px 12px rgba(0,0,0,0.5);
            z-index: 100;
            transition: transform 0.2s, box-shadow 0.2s;
            font-size: 20px;
        }
        .fab-back-today:hover {
            transform: scale(1.06);
            box-shadow: 0 6px 16px rgba(0,0,0,0.6);
        }
        /* 回到最早悬浮按钮 */
        .fab-back-first {
            position: fixed;
            bottom: 30px;
            left: 30px;
            width: 44px;
            height: 44px;
            background: linear-gradient(135deg, #4a90e2, #2c5282);
            border-radius: 50%;
            color: #fff;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            box-shadow: 0 4px 12px rgba(0,0,0,0.5);
            z-index: 100;
            transition: transform 0.2s, box-shadow 0.2s;
            font-size: 20px;
        }
        .fab-back-first:hover {
            transform: scale(1.06);
            box-shadow: 0 6px 16px rgba(0,0,0,0.6);
        }

        /* ==================== 2. 顶部导航栏 ==================== */
        .header {
            height: 45px;
            background: var(--bg-panel);
            border-bottom: 1px solid var(--border-color);
            display: flex;
            align-items: center;
            padding: 0 20px;
            /* justify-content: space-between; Removed to allow custom spacing */
            flex-shrink: 0;
            position: relative;
            gap: 10px;
            overflow: visible;
        }

        .header-title {
            font-size: 16px;
            font-weight: bold;
            color: var(--color-gold);
            margin-right: 20px;
        }

        .header-btn {
            background: #333;
            border: 1px solid #555;
            color: #ccc;
            padding: 2px 8px;
            border-radius: 4px;
            cursor: pointer;
            font-size: 12px;
            margin-left: 10px;
        }

        .header-btn:hover {
            background: #444;
            color: #fff;
        }

        .header-core {
            display: flex;
            align-items: center;
            gap: 8px;
            min-width: 0;
        }

        .header-date-icon {
            color: #8a95a6;
            font-size: 12px;
        }

        .header-date-input {
            background: #101521;
            color: #e8edf6;
            border: 1px solid #3a4660;
            height: 30px;
            padding: 0 8px;
            border-radius: 6px;
            font-family: inherit;
            font-size: 12px;
            min-width: 155px;
        }

        .header-date-input:focus {
            outline: none;
            border-color: #4a90e2;
            box-shadow: 0 0 0 1px rgba(74, 144, 226, 0.25);
        }

        .header-date-select {
            background: #101521;
            color: #e8edf6;
            border: 1px solid #3a4660;
            height: 30px;
            padding: 0 8px;
            border-radius: 6px;
            font-family: inherit;
            font-size: 12px;
            min-width: 88px;
        }

        .header-date-select:focus {
            outline: none;
            border-color: #4a90e2;
            box-shadow: 0 0 0 1px rgba(74, 144, 226, 0.25);
        }

        .header-date-go-btn {
            margin-left: 0;
            height: 30px;
            padding: 0 10px;
            border-radius: 6px;
            background: #223046;
            border-color: #425a80;
            color: #d8e5ff;
        }

        .header-date-tip {
            font-size: 11px;
            color: #8394af;
            white-space: nowrap;
        }

        .header-mode-btn,
        .header-latest-btn {
            margin-left: 0;
            padding: 4px 10px;
            border-radius: 6px;
            font-size: 12px;
        }

        .header-mode-btn {
            background: #1d2433;
            color: #c8d2e3;
            border-color: #3c4b66;
        }

        .header-latest-btn {
            background: #2a2220;
            color: #ffd08a;
            border-color: rgba(255, 183, 77, 0.55);
        }

        .header-anchor-chip {
            font-size: 10px;
            color: #ffc67c;
            border: 1px solid rgba(255, 183, 77, 0.35);
            background: rgba(255, 183, 77, 0.09);
            padding: 3px 7px;
            border-radius: 999px;
            white-space: nowrap;
        }

        .header-spacer {
            flex: 1;
        }

        .header-history-wrap {
            position: relative;
        }

        .header-history-status {
            max-width: 460px;
            min-height: 28px;
            padding: 0 10px;
            border-radius: 999px;
            border: 1px solid rgba(92, 116, 158, 0.55);
            background: rgba(18, 28, 43, 0.95);
            color: #94a8ca;
            display: inline-flex;
            align-items: center;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            font-size: 11px;
            line-height: 1;
        }

        .header-history-wrap > summary {
            list-style: none;
            cursor: pointer;
            user-select: none;
        }

        .header-history-wrap > summary::-webkit-details-marker {
            display: none;
        }

        .header-history-wrap[open] .header-history-status {
            border-color: rgba(111, 138, 185, 0.85);
            box-shadow: 0 0 0 1px rgba(96, 122, 165, 0.35);
        }

        .header-history-status.is-loading {
            border-color: rgba(76, 175, 80, 0.65);
            color: #b6e7ba;
            background: rgba(22, 52, 28, 0.85);
        }

        .header-history-status.is-fetched {
            border-color: rgba(255, 193, 7, 0.6);
            color: #ffe08b;
            background: rgba(68, 52, 20, 0.85);
        }

        .header-history-status.is-error {
            border-color: rgba(255, 107, 107, 0.75);
            color: #ffd1d1;
            background: rgba(74, 20, 20, 0.82);
        }

        .header-history-panel {
            position: absolute;
            right: 0;
            top: calc(100% + 8px);
            width: min(520px, 90vw);
            z-index: 55;
            background: #151a22;
            border: 1px solid #2c3a52;
            border-radius: 10px;
            box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
            padding: 10px;
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .header-history-panel-row {
            display: flex;
            align-items: flex-start;
            gap: 8px;
            font-size: 11px;
            line-height: 1.45;
        }

        .header-history-panel-row .label {
            color: #8495b1;
            min-width: 52px;
            flex-shrink: 0;
        }

        .header-history-panel-row .value {
            color: #ced9ec;
            word-break: break-all;
        }

        .header-history-panel-tip {
            font-size: 10px;
            line-height: 1.4;
            color: #8ca0c2;
            padding: 6px 8px;
            border-radius: 6px;
            background: rgba(42, 53, 72, 0.55);
            border: 1px dashed rgba(106, 124, 155, 0.45);
        }

        .header-history-panel-title {
            font-size: 10px;
            color: #778bab;
            letter-spacing: 0.02em;
            padding-top: 2px;
            border-top: 1px solid rgba(95, 116, 151, 0.35);
        }

        .header-history-panel-list {
            max-height: 180px;
            overflow: auto;
            display: flex;
            flex-direction: column;
            gap: 6px;
            padding-right: 2px;
        }

        .header-history-item {
            display: flex;
            align-items: flex-start;
            gap: 8px;
            font-size: 10px;
            line-height: 1.35;
        }

        .header-history-item .badge {
            flex-shrink: 0;
            font-size: 9px;
            line-height: 1;
            padding: 2px 5px;
            border-radius: 999px;
            color: #d8e7ff;
            background: rgba(61, 97, 150, 0.55);
            border: 1px solid rgba(113, 145, 194, 0.65);
        }

        .header-history-item .time {
            color: #7c8da8;
            min-width: 52px;
            flex-shrink: 0;
        }

        .header-history-item .desc {
            color: #b7c7df;
            word-break: break-all;
        }

        .header-history-item.is-loading .desc {
            color: #b6e7ba;
        }

        .header-history-item.is-error .desc {
            color: #ffc9c9;
        }

        .header-history-item.is-success .desc {
            color: #ffe49b;
        }

        .header-history-empty {
            font-size: 10px;
            color: #7d90ad;
        }

        .header-more {
            position: relative;
        }

        .header-more-summary {
            margin-left: 0;
            list-style: none;
            user-select: none;
            background: #1d2433;
            border-color: #39475f;
            color: #c8d2e3;
            width: 32px;
            height: 30px;
            padding: 0;
            border-radius: 6px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 16px;
            line-height: 1;
        }

        .header-more-summary::-webkit-details-marker {
            display: none;
        }

        .header-more[open] .header-more-summary {
            background: #253047;
            color: #f0f5ff;
            border-color: #4a5f86;
        }

        .header-more-panel {
            position: absolute;
            right: 0;
            top: calc(100% + 8px);
            min-width: 250px;
            z-index: 40;
            background: #151a22;
            border: 1px solid #2c3a52;
            border-radius: 10px;
            box-shadow: 0 10px 24px rgba(0, 0, 0, 0.35);
            padding: 10px;
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .header-more-panel .header-btn {
            margin-left: 0;
            width: 100%;
            text-align: left;
            padding: 5px 10px;
            border-radius: 6px;
            border-color: #3a465e;
            background: #1e2633;
        }

        .header-source-line {
            margin-top: 2px;
            border-top: 1px solid rgba(95, 116, 151, 0.35);
            padding-top: 8px;
            font-size: 11px;
            color: #9fb0cb;
            display: flex;
            align-items: center;
            gap: 6px;
            flex-wrap: wrap;
        }

        .header-source-line .label {
            color: #8495b1;
        }

        .header-source-line .value {
            color: #9ad14f;
            font-weight: 600;
        }

        .header-source-line .tip {
            color: #6d7f9e;
        }

        @media (max-width: 1080px) {
            .header {
                height: auto;
                min-height: 45px;
                padding: 6px 10px;
                flex-wrap: wrap;
                gap: 8px;
            }

            .header-title {
                margin-right: 8px;
            }

            .header-core {
                order: 2;
                width: 100%;
                flex-wrap: wrap;
            }

            .header-date-input {
                min-width: 140px;
            }

            .header-date-select {
                min-width: 72px;
            }

            .header-date-tip {
                display: none;
            }

            .header-spacer {
                display: none;
            }

            .header-history-wrap {
                order: 3;
                width: 100%;
            }

            .header-history-status {
                width: 100%;
                max-width: none;
            }

            .header-history-panel {
                right: 0;
                left: 0;
                width: auto;
                max-width: none;
            }

            .header-more {
                margin-left: auto;
            }

            .header-more-panel {
                right: 0;
                left: auto;
                min-width: min(85vw, 270px);
            }
        }

        .chart-legend {
            display: flex;
            gap: 15px;
            font-size: 11px;
            color: #888;
        }

        .legend-item {
            display: flex;
            align-items: center;
            gap: 5px;
        }

        .leg-line {
            width: 12px;
            height: 2px;
            background: var(--color-orange);
        }

        .leg-bar {
            width: 10px;
            height: 10px;
            background: rgba(52, 152, 219, 0.5);
            border: 1px solid var(--color-blue);
        }

        /* ==================== 2.5 指数周期判断条 ==================== */
        .cycle-bar {
            background: linear-gradient(90deg, #0a0a0a, #151515, #0a0a0a);
            border-top: 2px solid #ff4d4d;
            border-bottom: 1px solid #333;
            padding: 8px 20px;
            display: flex;
            align-items: center;
            gap: 20px;
            flex-shrink: 0;
        }
        .cycle-bar-state {
            font-size: 16px;
            font-weight: bold;
            min-width: 100px;
        }
        .cycle-bar-action {
            font-size: 12px;
            color: #aaa;
            padding: 4px 12px;
            background: rgba(255,255,255,0.05);
            border-radius: 4px;
            border: 1px solid #333;
        }
        .cycle-bar-factors {
            display: flex;
            gap: 8px;
            flex: 1;
        }
        .cycle-bar-factors span {
            font-size: 11px;
            padding: 4px 10px;
            border-radius: 4px;
            background: #1a1a1a;
            border: 1px solid #333;
        }
        .cycle-bar-factors .factor-bull { color: #ff4d4d; border-color: #ff4d4d; background: rgba(255, 77, 77, 0.15); }
        .cycle-bar-factors .factor-bear { color: #2ecc71; border-color: #2ecc71; background: rgba(46, 204, 113, 0.15); }
        .cycle-bar-factors .factor-shock { color: #f39c12; border-color: #f39c12; background: rgba(243, 156, 18, 0.15); }
        .cycle-bar-scores {
            font-size: 10px;
            color: #666;
            padding: 4px 8px;
            background: #111;
            border-radius: 3px;
        }
        
        /* ==================== 2.6 周期状态条 - 玻璃拟态风格 ==================== */
        .cycle-status-bar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 10px 15px;
            margin: 8px 0;
            border-radius: var(--card-radius);
            background: rgba(255, 255, 255, 0.03);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.08);
            transition: var(--transition-smooth);
        }
        .cycle-status-bar:hover {
            background: rgba(255, 255, 255, 0.05);
        }
        /* 顺周期/牛市 */
        .cycle-status-bar.phase-bull {
            border-left: 3px solid var(--color-red);
            background: linear-gradient(90deg, rgba(246, 70, 93, 0.12), transparent);
        }
        /* 震荡期 */
        .cycle-status-bar.phase-shock {
            border-left: 3px solid var(--color-orange);
            background: linear-gradient(90deg, rgba(247, 147, 26, 0.12), transparent);
        }
        /* 逆周期/熊市 */
        .cycle-status-bar.phase-bear {
            border-left: 3px solid var(--color-green);
            background: linear-gradient(90deg, rgba(14, 203, 129, 0.12), transparent);
        }
        /* 默认状态 */
        .cycle-status-bar.phase-default {
            border-left: 3px solid var(--text-sub);
            background: linear-gradient(90deg, rgba(132, 142, 156, 0.08), transparent);
        }
        .cycle-signal {
            font-size: 14px;
            font-weight: 700;
            letter-spacing: 0.5px;
        }
        .cycle-desc {
            font-size: 11px;
            color: var(--text-sub);
            font-weight: 500;
        }

        /* ==================== 2.7 综合信息面板 - 美化版 ==================== */
        .info-panel {
            font-size: 9px;
            padding: 10px 12px;
            margin: 8px 0;
            border-radius: 10px;
            background: linear-gradient(135deg, rgba(0,0,0,0.5) 0%, rgba(20,20,30,0.4) 100%);
            border: 1px solid rgba(255,255,255,0.08);
            min-height: 56px;
            line-height: 1.5;
            backdrop-filter: blur(4px);
        }
        .info-panel .info-row {
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            display: flex;
            align-items: center;
            gap: 6px;
            margin-bottom: 4px;
        }
        .info-panel .info-icon {
            opacity: 0.7;
        }
        .info-panel .info-status {
            font-weight: 700;
        }
        .info-panel .info-sub {
            color: #8888a0;
            font-size: 8px;
        }
        .info-panel .info-desc {
            color: #6a6a80;
            font-size: 8px;
        }
        .info-panel .tech-row {
            display: flex;
            gap: 10px;
            color: #8888a0;
        }
        .info-panel .tech-item {
            display: inline-flex;
            align-items: center;
            gap: 2px;
        }
        .info-panel .tech-val {
            font-weight: 600;
            padding: 1px 4px;
            border-radius: 4px;
            margin-left: 2px;
        }
        .info-panel .tech-val.tech-high {
            color: #ff6b6b;
            background: rgba(255, 107, 107, 0.15);
        }
        .info-panel .tech-val.tech-low {
            color: var(--color-green);
            background: rgba(0, 221, 119, 0.15);
        }
        .info-panel .tech-val.tech-positive {
            color: #ff6b6b;
        }
        .info-panel .tech-val.tech-negative {
            color: var(--color-green);
        }
        .info-panel .tech-ma {
            color: var(--color-purple);
            font-weight: 600;
            margin-left: auto;
        }

        /* ==================== 3. 主体滚动区域 ==================== */
        .scroll-wrapper {
            flex: 1;
            overflow-y: auto !important;  /* 允许纵向滚动 */
            overflow-x: auto !important;  /* 允许横向滚动 */
            display: block;  /* 改为block布局，让内容自然流动 */
            position: relative;
            cursor: default;
            /* 【性能优化】提升滚动性能 */
            will-change: scroll-position;
            -webkit-overflow-scrolling: touch;
        }

        /* 滚动过程中临时关闭高开销效果（毛玻璃/阴影），提升左右滑动顺滑度 */
        .scroll-wrapper.is-scrolling .day-header-wrapper,
        .scroll-wrapper.is-scrolling .stat-box,
        .scroll-wrapper.is-scrolling .ladder-tier,
        .scroll-wrapper.is-dragging .day-header-wrapper,
        .scroll-wrapper.is-dragging .stat-box,
        .scroll-wrapper.is-dragging .ladder-tier {
            backdrop-filter: none !important;
            -webkit-backdrop-filter: none !important;
        }

        .scroll-wrapper.is-scrolling .day-column,
        .scroll-wrapper.is-dragging .day-column {
            box-shadow: none !important;
        }

        /* 拖拽/滚动时禁用过渡和动画，减少每帧样式计算开销 */
        .scroll-wrapper.is-scrolling .day-column,
        .scroll-wrapper.is-scrolling .day-column *,
        .scroll-wrapper.is-dragging .day-column,
        .scroll-wrapper.is-dragging .day-column * {
            transition: none !important;
            animation: none !important;
            filter: none !important;
        }

        .scroll-wrapper.is-dragging {
            cursor: grabbing !important;
        }

        /* 让横向滚动条固定在底部可见区域 */
        .scroll-wrapper::after {
            content: '';
            display: block;
            height: 18px;
            width: 100%;
        }

        /* ==================== 4. 双轴图表区域 (升级重点) ==================== */
        .chart-container {
            height: 160px;
            background: #0e0e0e;
            border-bottom: 1px solid var(--border-color);
            flex-shrink: 0;
            position: relative;
            overflow: hidden;
        }

        .chart-tooltip {
            position: absolute;
            top: 10px;
            background: rgba(20, 20, 20, 0.95);
            border: 1px solid #444;
            padding: 8px;
            border-radius: 4px;
            font-size: 11px;
            pointer-events: none;
            z-index: 20;
            white-space: nowrap;
        }

        /* ==================== 4.5 ECharts 仪表盘面板 ==================== */
        .dashboard-panel {
            background: linear-gradient(180deg, #0a0a0a 0%, #111 100%);
            border-bottom: 1px solid var(--border-color);
            padding: 10px 15px;
            flex-shrink: 0;
        }

        .dashboard-toggle {
            display: flex;
            align-items: center;
            gap: 10px;
            cursor: pointer;
            padding: 5px 0;
            user-select: none;
        }

        .dashboard-toggle-icon {
            transition: transform 0.3s;
            color: #888;
        }

        .dashboard-toggle-icon.expanded {
            transform: rotate(90deg);
        }

        .dashboard-toggle-title {
            font-size: 13px;
            font-weight: bold;
            color: var(--color-gold);
        }

        .dashboard-content {
            overflow: hidden;
            transition: max-height 0.3s ease-out, opacity 0.3s;
        }

        .dashboard-content.collapsed {
            max-height: 0;
            opacity: 0;
        }

        .dashboard-content.expanded {
            max-height: 12000px;
            opacity: 1;
            overflow: visible;
        }

        /* 可折叠小节（仪表盘内部） */
        .collapsible-head {
            cursor: pointer;
            user-select: none;
        }
        .section-toggle-icon {
            margin-right: 6px;
            font-size: 11px;
        }
        .collapsible-body {
            overflow: hidden;
            transition: max-height 0.3s ease-out, opacity 0.3s;
        }
        .collapsible-body.collapsed {
            max-height: 0;
            opacity: 0;
            pointer-events: none;
        }
        .collapsible-body.expanded {
            max-height: 40000px;
            opacity: 1;
            pointer-events: auto;
            overflow: visible;
        }

        .dashboard-grid {
            display: grid;
            grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
            grid-template-rows: 100px 100px;
            gap: 8px;
            margin-top: 10px;
        }

        .dashboard-chart {
            background: #181818;
            border: 1px solid #2a2a2a;
            border-radius: 6px;
            position: relative;
            overflow: hidden;
            height: 100%;
            min-height: 90px;
        }

        .dashboard-chart-main {
            grid-row: span 2;
            min-height: 200px;
            height: auto;
        }

        .dashboard-chart-title {
            position: absolute;
            top: 5px;
            left: 8px;
            font-size: 10px;
            color: #888;
            z-index: 10;
            pointer-events: none;
        }

        .dashboard-chart-value {
            position: absolute;
            top: 5px;
            right: 8px;
            font-size: 11px;
            font-weight: bold;
            z-index: 10;
        }

        /* 长周期趋势图样式 */
        .trend-chart-section {
            margin-top: 15px;
            background: #181818;
            border: 1px solid #2a2a2a;
            border-radius: 8px;
            padding: 12px;
        }
        .trend-chart-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 10px;
        }
        .trend-chart-title {
            font-size: 13px;
            font-weight: bold;
            color: #eee;
        }
        .trend-chart-range-tip {
            font-size: 11px;
            color: #8ea0bc;
            background: rgba(74, 144, 226, 0.12);
            border: 1px solid rgba(74, 144, 226, 0.35);
            padding: 3px 8px;
            border-radius: 999px;
        }
        .trend-chart-controls {
            display: flex;
            gap: 6px;
        }
        .trend-btn {
            background: #252525;
            border: 1px solid #333;
            color: #888;
            padding: 4px 12px;
            border-radius: 4px;
            font-size: 11px;
            cursor: pointer;
            transition: all 0.2s;
        }
        .trend-btn:hover {
            background: #333;
            color: #fff;
        }
        .trend-btn.active {
            background: #4A90E2;
            border-color: #4A90E2;
            color: #fff;
        }
        .trend-chart-container {
            height: 200px;
            width: 100%;
        }

        /* 市场核心数据表 */
        .core-metrics-tip {
            font-size: 11px;
            color: #888;
            padding: 8px 2px 2px;
        }
        .core-metrics-tip.core-metrics-error {
            color: #ff6b6b;
        }
        .core-metrics-table-wrap {
            overflow-x: auto;
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
            border: 1px solid #2a2a2a;
            border-radius: 8px;
            background: rgba(0, 0, 0, 0.18);
            max-height: 560px;
        }
        .core-metrics-table {
            width: 100%;
            border-collapse: collapse;
            min-width: 980px;
            font-size: 11px;
            font-variant-numeric: tabular-nums;
        }
        .core-metrics-table th {
            position: sticky;
            top: 0;
            z-index: 1;
            text-align: left;
            padding: 7px 8px;
            background: #1b1b1b;
            color: #c9d1d9;
            border-bottom: 1px solid #2a2a2a;
            white-space: nowrap;
            font-weight: 600;
        }
        .core-metrics-table td {
            padding: 6px 8px;
            border-bottom: 1px solid #222;
            color: #ddd;
            white-space: nowrap;
        }
        .core-metrics-table tr:hover td {
            background: rgba(255, 255, 255, 0.03);
        }
        .core-metrics-table tr.is-selected td {
            background: rgba(74, 144, 226, 0.14);
        }
        .core-metrics-foot {
            margin-top: 6px;
            font-size: 10px;
            color: #666;
        }
        .cm-date { color: #9aa4b2; }
        .cm-muted { color: #666; }
        .cm-up { color: #e74c3c; }
        .cm-down { color: #2ecc71; }
        .cm-blue { color: #4A90E2; }

        /* 晋级率对比图：题材速览矩阵（Top5） */
        .promo-theme-matrix {
            margin-top: 10px;
            padding-top: 8px;
            border-top: 1px dashed #2a2a2a;
        }
        .promo-theme-matrix-head {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 10px;
            flex-wrap: wrap;
            margin-bottom: 6px;
        }
        .promo-theme-matrix-controls {
            display: flex;
            align-items: center;
            gap: 6px;
            flex-wrap: wrap;
            justify-content: flex-end;
        }
        .promo-theme-matrix-title {
            font-size: 11px;
            font-weight: bold;
            color: #eee;
        }
        .promo-theme-matrix-hint {
            font-size: 10px;
            color: #666;
        }
        .promo-theme-matrix-scroll {
            overflow-x: auto;
            overflow-y: hidden;
            padding-bottom: 4px;
            cursor: grab;
            -webkit-overflow-scrolling: touch;
        }
        .pt-mini-btn {
            background: #252525;
            border: 1px solid #333;
            color: #888;
            padding: 2px 8px;
            border-radius: 4px;
            font-size: 10px;
            cursor: pointer;
            transition: all 0.2s;
        }
        .pt-mini-btn:hover {
            background: #333;
            color: #fff;
        }
        .pt-mini-btn.primary {
            background: rgba(255, 183, 77, 0.12);
            border-color: rgba(255, 183, 77, 0.55);
            color: #ffb74d;
        }
        .pt-mini-btn.primary:hover {
            background: rgba(255, 183, 77, 0.2);
            border-color: rgba(255, 183, 77, 0.8);
            color: #ffd08a;
        }
        .promo-theme-matrix-grid {
            display: grid;
            grid-auto-rows: 40px;
            gap: 3px;
            align-items: stretch;
            width: max-content;
        }
        .pt-cell {
            background: #141414;
            border: 1px solid #2a2a2a;
            border-radius: 6px;
            padding: 3px 5px;
            box-sizing: border-box;
            display: flex;
            flex-direction: column;
            justify-content: center;
            color: #ddd;
            font-size: 10px;
        }
        .pt-cell.pt-head {
            background: #101010;
            color: #888;
            font-weight: 600;
            align-items: center;
            justify-content: center;
            text-align: center;
        }
        .pt-cell.pt-rank {
            background: #101010;
            color: #bbb;
            font-weight: bold;
            align-items: center;
            justify-content: center;
            text-align: center;
            padding: 0;
            position: sticky;
            left: 0;
            z-index: 3;
            box-shadow: 2px 0 0 rgba(0, 0, 0, 0.25);
        }
        .pt-cell.pt-head.pt-rank {
            z-index: 4;
        }
        .pt-cell.pt-body:hover {
            border-color: rgba(74, 144, 226, 0.8);
            background: rgba(74, 144, 226, 0.08);
        }
        .pt-cell.pt-body {
            cursor: pointer;
            gap: 1px;
        }
        .pt-line {
            display: flex;
            align-items: center;
            min-width: 0;
        }
        .pt-line1 {
            gap: 6px;
        }
        .pt-line2 {
            gap: 6px;
        }
        .pt-name {
            font-size: 10px;
            font-weight: 600;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            line-height: 1.1;
            flex: 1 1 auto;
            min-width: 0;
        }
        .pt-meta {
            display: flex;
            align-items: center;
            flex-wrap: nowrap;
            gap: 6px;
            justify-content: space-between;
            margin-top: 0;
            font-size: 8px;
            color: #888;
            line-height: 1.1;
            white-space: nowrap;
            width: 100%;
            min-width: 0;
        }
        .pt-strength {
            flex: 0 0 auto;
            color: var(--color-gold);
        }
        .pt-zt {
            flex: 0 0 auto;
            color: var(--color-red);
        }
        .pt-amt {
            flex: 1 1 auto;
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
            text-align: right;
            color: var(--color-blue);
        }

        /* 市场主题矩阵：题材连板梯队悬浮窗（极简/高密度） */
        .theme-ladder-popover {
            position: fixed;
            z-index: 99998;
            width: 820px;
            max-width: min(96vw, 820px);
            background: rgba(16, 20, 26, 0.96);
            border: 1px solid rgba(255, 255, 255, 0.12);
            border-radius: 10px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.55);
            backdrop-filter: blur(8px);
            color: #eaecef;
            overflow: hidden;
        }

        .theme-ladder-popover-header {
            display: flex;
            align-items: flex-start;
            justify-content: space-between;
            gap: 10px;
            padding: 10px 12px 8px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        }

        .theme-ladder-popover-title {
            min-width: 0;
        }

        .tlp-title-main {
            font-weight: 700;
            font-size: 13px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            max-width: 440px;
        }

        .tlp-title-sub {
            margin-top: 2px;
            font-size: 11px;
            color: rgba(255, 255, 255, 0.55);
        }

        .theme-ladder-popover-close {
            border: 0;
            background: transparent;
            color: rgba(255, 255, 255, 0.65);
            cursor: pointer;
            font-size: 18px;
            line-height: 1;
            padding: 2px 6px;
            border-radius: 6px;
            flex: 0 0 auto;
        }

        .theme-ladder-popover-close:hover {
            background: rgba(255, 255, 255, 0.08);
            color: #fff;
        }

        .theme-ladder-popover-body {
            padding: 10px 12px 12px;
            max-height: min(70vh, 560px);
            overflow: auto;
        }

        /* 悬浮窗内：名称列需要容纳“成/败”标签，避免把股票名挤没 */
        .theme-ladder-popover .tq-col-name {
            width: 82px;
        }

        .theme-ladder-popover-empty {
            padding: 18px 0;
            text-align: center;
            color: rgba(255, 255, 255, 0.55);
            font-size: 12px;
        }

        .theme-ladder-group {
            border: 1px solid rgba(255, 255, 255, 0.08);
            border-radius: 8px;
            background: rgba(255, 255, 255, 0.03);
            margin-bottom: 8px;
            overflow: hidden;
        }

        .theme-ladder-group-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            padding: 6px 8px;
            font-size: 12px;
            background: rgba(255, 255, 255, 0.04);
            border-bottom: 1px solid rgba(255, 255, 255, 0.07);
        }

        .theme-ladder-tip {
            color: #ffb74d;
            font-weight: 700;
        }

        .theme-ladder-count {
            font-size: 11px;
            color: rgba(255, 255, 255, 0.55);
            flex: 0 0 auto;
        }

        .theme-ladder-chips {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            padding: 8px 8px 10px;
        }

        .tl-chip {
            display: inline-flex;
            align-items: center;
            padding: 3px 6px;
            border-radius: 6px;
            font-size: 11px;
            cursor: pointer;
            border: 1px solid rgba(255, 255, 255, 0.12);
            background: rgba(255, 255, 255, 0.04);
            color: #eaecef;
            user-select: none;
            white-space: nowrap;
        }

        .tl-chip.ok {
            border-color: rgba(255, 77, 77, 0.35);
            background: rgba(255, 77, 77, 0.08);
        }

        .tl-chip.failed {
            border-color: rgba(0, 230, 118, 0.35);
            background: rgba(0, 230, 118, 0.08);
            color: rgba(220, 255, 234, 0.95);
        }

        .tl-chip:hover {
            border-color: rgba(255, 255, 255, 0.22);
            filter: brightness(1.12);
        }

        /* 复用题材速览股票池：标记“晋级失败” */
        .tq-stock-item.is-ladder-failed {
            border-left-color: rgba(0, 230, 118, 0.75);
            background: rgba(0, 230, 118, 0.06);
        }

        .tq-stock-group-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            padding: 6px 8px;
            margin-top: 6px;
            background: rgba(255, 255, 255, 0.04);
            border: 1px solid rgba(255, 255, 255, 0.08);
            border-radius: 8px;
        }

        .tq-stock-group-label {
            font-size: 12px;
            font-weight: 700;
            color: #ffb74d;
        }

        .tq-stock-group-meta {
            font-size: 11px;
            color: rgba(255, 255, 255, 0.55);
            flex: 0 0 auto;
        }

        .tq-stock-item.is-ladder-linked .tq-col-name::before {
            content: "梯";
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 16px;
            height: 14px;
            margin-right: 4px;
            border-radius: 4px;
            font-size: 10px;
            color: rgba(255, 255, 255, 0.8);
            background: rgba(255, 255, 255, 0.08);
            border: 1px solid rgba(255, 255, 255, 0.12);
        }

        .tq-stock-item.is-limit-up .tq-col-name::before {
            content: "成";
            color: rgba(255, 255, 255, 0.9);
            background: rgba(255, 77, 77, 0.18);
            border-color: rgba(255, 77, 77, 0.35);
        }

        .tq-stock-item.is-ladder-failed .tq-col-name::before {
            content: "败";
            color: rgba(220, 255, 234, 0.95);
            background: rgba(0, 230, 118, 0.14);
            border-color: rgba(0, 230, 118, 0.35);
        }
        .trend-chart-legend {
            display: flex;
            justify-content: center;
            gap: 20px;
            margin-top: 8px;
            font-size: 11px;
            color: #888;
        }
        .legend-item {
            display: flex;
            align-items: center;
            gap: 5px;
        }
        .legend-dot {
            width: 8px;
            height: 8px;
            border-radius: 50%;
        }
        .legend-line {
            width: 20px;
            height: 2px;
            border-top: 2px dashed;
        }

        /* ==================== 5. 数据列布局 ==================== */
        .table-body {
            position: relative;
            display: flex;
            flex-direction: row;  /* 横向排列日期列 */
            min-height: 100%;
            height: auto;
            width: fit-content;  /* 宽度自适应内容 */
        }

        .day-column {
            width: 850px;
            min-width: 850px;
            box-sizing: border-box;
            min-height: 100%;
            border-right: 1px solid var(--border-color);
            display: flex;
            flex-direction: column;
            flex-shrink: 0;
            background: var(--bg-panel);
            margin-right: 4px;
            box-shadow: 4px 0 10px rgba(0,0,0,0.1);
            position: relative;  /* 改为相对定位，让内容自然流动 */
        }

        .day-column.today {
            background: #1A1E24;
            border-right: 2px solid var(--color-red);
        }

        .day-lite-bar {
            display: none;
            align-items: center;
            gap: 10px;
            padding: 10px 12px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.08);
            background: rgba(0, 0, 0, 0.28);
            color: #aab2bf;
            font-size: 11px;
            font-family: monospace;
            white-space: nowrap;
        }

        .day-lite-bar .lite-date {
            color: #ffd54f;
            font-weight: 700;
            font-family: "Microsoft YaHei", sans-serif;
        }

        .scroll-wrapper.is-dragging .day-column > * {
            pointer-events: none !important;
        }

        .scroll-wrapper.is-dragging .day-column > .day-lite-bar {
            display: none !important;
        }

        /* 日期头 - Fintech风格 */
        .day-header-wrapper {
            background: rgba(22, 26, 30, 0.95);
            backdrop-filter: blur(8px);
            border-bottom: 1px solid var(--border-color);
            padding: 8px 8px;
            display: flex;
            flex-direction: column;
            gap: 5px;
            flex-shrink: 0;
            position: sticky;
            top: 0;
            z-index: 10;
            max-height: 360px;
            overflow-y: auto;
        }

        .date-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-weight: 600;
            font-size: 16px;
            color: var(--text-main);
            letter-spacing: 0.5px;
        }

        /* 统计数据网格 - 扁平化 */
        .stat-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 6px;
        }

        .stat-box {
            background: var(--bg-card);
            padding: 8px 6px;
            border-radius: 6px;
            text-align: center;
            border: 1px solid var(--border-color);
            transition: var(--transition-smooth);
        }

        .stat-box:hover {
            background: #252A30;
            border-color: var(--color-blue);
        }

        .stat-lbl {
            font-size: 10px;
            color: var(--text-sub);
            display: block;
            margin-bottom: 2px;
        }

        .stat-val {
            font-size: 16px;
            font-weight: 600;
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
        }

        .stat-grid.integrated-kpi-grid {
            margin-top: 2px;
            grid-template-columns: repeat(9, minmax(0, 1fr));
            gap: 4px;
        }

        .integrated-kpi-grid .stat-box {
            min-height: 38px;
            padding: 4px 6px;
            border-radius: 5px;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: flex-start;
            text-align: left;
        }

        .integrated-kpi-grid .stat-lbl {
            font-size: 9px;
            line-height: 1.05;
            margin-bottom: 2px;
        }

        .integrated-kpi-grid .stat-val {
            width: 100%;
            font-size: 13px;
            line-height: 1.1;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .integrated-kpi-grid .stat-sub {
            font-size: 9px;
            line-height: 1;
            color: #8d96a3;
        }

        .kpi-band-list {
            margin-top: 3px;
            display: flex;
            flex-direction: column;
            gap: 3px;
        }

        .kpi-band {
            min-height: 24px;
            display: flex;
            align-items: center;
            gap: 4px;
            padding: 3px 6px;
            border-radius: 5px;
            border: 1px solid rgba(255,255,255,0.06);
            background: rgba(20, 24, 30, 0.62);
            overflow-x: auto;
            overflow-y: hidden;
            white-space: nowrap;
            scrollbar-width: none;
        }

        .kpi-band::-webkit-scrollbar {
            display: none;
        }

        .kpi-band-tag {
            flex: 0 0 auto;
            font-size: 9px;
            color: #9aa4b2;
            padding: 1px 4px;
            border-radius: 4px;
            background: rgba(255,255,255,0.08);
        }

        .kpi-chip {
            min-width: 0;
            font-size: 9px;
            color: #dce4ee;
            padding: 1px 4px;
            border-radius: 4px;
            background: rgba(255,255,255,0.05);
            overflow: hidden;
            text-overflow: ellipsis;
        }

        @media (max-width: 1200px) {
            .stat-grid.integrated-kpi-grid {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }
        }

        /* 让浏览器跳过视口外的大块内容绘制，降低横向滑动时的 paint 压力 */
        .stat-box,
        .limit-broken-block,
        .ths-move-timeline {
            content-visibility: auto;
            contain-intrinsic-size: auto 360px;
        }

        .ladder-tier {
            content-visibility: auto;
            contain-intrinsic-size: auto 160px;
        }

        /* THS 异动汇总条（低噪声，高集成） */
        .ths-move-card {
            border: 1px solid rgba(0, 210, 255, 0.22);
            border-left: 3px solid rgba(0, 210, 255, 0.75);
            background: linear-gradient(135deg, rgba(0, 210, 255, 0.10), rgba(0, 0, 0, 0.18));
            border-radius: 6px;
            overflow: hidden;
            flex-shrink: 0;
        }

        .ths-move-strip {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 7px 8px;
            cursor: pointer;
            user-select: none;
            transition: var(--transition-smooth);
        }

        .ths-move-strip:hover {
            background: rgba(255, 255, 255, 0.03);
        }

        .ths-move-strip.is-loading {
            opacity: 0.78;
        }

        .ths-move-strip.has-error {
            border-bottom: 1px solid rgba(231, 76, 60, 0.35);
        }

        .ths-move-left {
            display: flex;
            align-items: baseline;
            gap: 8px;
            min-width: 0;
        }

        .ths-badge {
            font-size: 10px;
            font-weight: 700;
            color: rgba(0, 210, 255, 0.95);
            background: rgba(0, 210, 255, 0.10);
            border: 1px solid rgba(0, 210, 255, 0.22);
            padding: 2px 6px;
            border-radius: 4px;
        }

        .ths-main {
            font-size: 12px;
            font-weight: 700;
            color: var(--text-main);
        }

        .ths-sub {
            font-size: 10px;
            color: var(--text-sub);
        }

        .ths-move-right {
            margin-left: auto;
            display: flex;
            align-items: center;
            gap: 6px;
            flex-wrap: wrap;
            justify-content: flex-end;
        }

        .ths-chip {
            font-size: 9px;
            padding: 2px 7px;
            border-radius: 999px;
            border: 1px solid rgba(255, 255, 255, 0.10);
            background: rgba(0, 0, 0, 0.22);
            color: rgba(255, 255, 255, 0.86);
            line-height: 1.1;
        }

        .ths-chip.ths-b1 { border-color: rgba(63, 81, 181, 0.35); background: rgba(63, 81, 181, 0.12); color: rgba(190, 198, 255, 0.95); }
        .ths-chip.ths-b2 { border-color: rgba(156, 39, 176, 0.35); background: rgba(156, 39, 176, 0.12); color: rgba(241, 189, 252, 0.95); }
        .ths-chip.ths-b3 { border-color: rgba(233, 30, 99, 0.35); background: rgba(233, 30, 99, 0.12); color: rgba(255, 188, 214, 0.95); }
        .ths-chip.ths-bh { border-color: rgba(255, 152, 0, 0.35); background: rgba(255, 152, 0, 0.12); color: rgba(255, 221, 168, 0.95); }

        .ths-move-action {
            margin-left: 8px;
            font-size: 10px;
            color: rgba(255, 255, 255, 0.55);
            flex: 0 0 auto;
        }

        .ths-move-loading {
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
            letter-spacing: 1px;
        }

        .ths-move-timeline {
            padding: 6px 8px 8px 8px;
            border-top: 1px solid rgba(255, 255, 255, 0.06);
        }

        /* THS 异动面板内：上证指数分时 + 日K（按日期对齐） */
        .ths-index-block {
            margin-bottom: 0;
            padding: 6px 6px 8px 6px;
            border-radius: 6px;
            background: rgba(0, 0, 0, 0.18);
            border: 1px solid rgba(255, 255, 255, 0.08);
            flex-shrink: 0;
        }

        .ths-index-head {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            margin-bottom: 6px;
        }

        .ths-index-title {
            font-size: 11px;
            font-weight: 700;
            color: rgba(255, 255, 255, 0.88);
            display: flex;
            align-items: baseline;
            gap: 6px;
            min-width: 0;
        }

        .ths-index-date {
            font-size: 10px;
            color: rgba(255, 255, 255, 0.55);
            font-weight: 500;
        }

        .ths-index-cache {
            font-size: 9px;
            color: rgba(0, 210, 255, 0.95);
            border: 1px solid rgba(0, 210, 255, 0.22);
            background: rgba(0, 210, 255, 0.08);
            padding: 1px 6px;
            border-radius: 999px;
            line-height: 1.2;
        }

        .ths-index-tip {
            font-size: 10px;
            color: rgba(255, 255, 255, 0.60);
            display: flex;
            align-items: center;
            gap: 8px;
            margin-bottom: 6px;
        }

        .ths-index-charts {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }

        .ths-index-chart {
            border-radius: 6px;
            overflow: hidden;
            border: 1px solid rgba(255, 255, 255, 0.08);
            background: rgba(0, 0, 0, 0.16);
        }

        .ths-index-chart-label {
            font-size: 10px;
            color: rgba(255, 255, 255, 0.65);
            padding: 4px 6px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.06);
        }

        .ths-index-chart-canvas {
            height: 140px;
            width: 100%;
        }

        .ths-index-chart-canvas.ths-index-kline {
            height: 250px;
        }

        .ths-move-tip {
            font-size: 10px;
            color: rgba(255, 255, 255, 0.60);
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .ths-move-retry {
            font-size: 10px;
            padding: 2px 10px;
            border-radius: 6px;
            border: 1px solid rgba(0, 210, 255, 0.28);
            background: rgba(0, 0, 0, 0.18);
            color: rgba(0, 210, 255, 0.95);
            cursor: pointer;
        }

        .ths-move-retry:hover {
            background: rgba(0, 210, 255, 0.08);
        }

        .ths-move-empty {
            font-size: 10px;
            color: rgba(255, 255, 255, 0.45);
            text-align: center;
            padding: 6px 0;
        }

        /* 游资明细（hm_detail，本地汇总） */
        .ths-move-card.hm-detail-card {
            border-color: rgba(139, 92, 246, 0.24);
            border-left-color: rgba(139, 92, 246, 0.78);
            background: linear-gradient(135deg, rgba(139, 92, 246, 0.12), rgba(0, 0, 0, 0.18));
        }

        .ths-move-card.hm-detail-card .ths-badge {
            color: rgba(139, 92, 246, 0.95);
            background: rgba(139, 92, 246, 0.10);
            border-color: rgba(139, 92, 246, 0.22);
        }

        .ths-move-card.hm-detail-card .ths-move-retry {
            border-color: rgba(139, 92, 246, 0.28);
            color: rgba(139, 92, 246, 0.95);
        }

        .ths-move-card.hm-detail-card .ths-move-retry:hover {
            background: rgba(139, 92, 246, 0.08);
        }

        .hm-detail-list {
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .hm-detail-hm {
            padding-top: 6px;
            border-top: 1px solid rgba(255, 255, 255, 0.06);
        }

        .hm-detail-hm:first-child {
            padding-top: 0;
            border-top: 0;
        }

        .hm-detail-head {
            display: flex;
            align-items: baseline;
            flex-wrap: wrap;
            gap: 6px;
        }

        .hm-detail-name {
            font-size: 12px;
            font-weight: 800;
            color: rgba(255, 255, 255, 0.92);
        }

        .hm-detail-hm.pinned .hm-detail-name {
            color: rgba(255, 213, 79, 0.95);
        }

        .hm-detail-hm.hm-detail-chen {
            margin: 2px 0 4px 0;
            padding: 8px 10px 10px 10px;
            border: 1px solid rgba(255, 213, 79, 0.20);
            border-radius: 10px;
            background: linear-gradient(135deg, rgba(255, 213, 79, 0.08), rgba(0, 0, 0, 0.08));
        }

        .hm-detail-chen-sub {
            color: rgba(255, 213, 79, 0.78);
        }

        .hm-detail-totals {
            font-size: 10px;
            color: rgba(255, 255, 255, 0.72);
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
        }

        .hm-detail-count {
            font-size: 9px;
            color: rgba(255, 255, 255, 0.55);
        }

        .hm-detail-stocks {
            margin-top: 6px;
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }

        .hm-stock-chip {
            display: inline-flex;
            align-items: baseline;
            gap: 6px;
            padding: 2px 8px;
            border-radius: 999px;
            border: 1px solid rgba(255, 255, 255, 0.10);
            background: rgba(0, 0, 0, 0.18);
            color: rgba(255, 255, 255, 0.86);
            font-size: 10px;
            cursor: pointer;
            max-width: 170px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .hm-stock-chip:hover {
            border-color: rgba(139, 92, 246, 0.35);
            background: rgba(255, 255, 255, 0.03);
        }

        .hm-stock-name {
            font-weight: 700;
        }

        .hm-stock-amt {
            font-size: 9px;
            opacity: 0.75;
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
        }

        /* 严重异动提醒（偏离值） */
        .ths-move-card.serious-abnormal-card {
            border-color: rgba(255, 152, 0, 0.24);
            border-left-color: rgba(255, 152, 0, 0.78);
            background: linear-gradient(135deg, rgba(255, 152, 0, 0.10), rgba(0, 0, 0, 0.18));
        }

        .ths-move-card.serious-abnormal-card .ths-badge {
            color: rgba(255, 152, 0, 0.95);
            background: rgba(255, 152, 0, 0.10);
            border-color: rgba(255, 152, 0, 0.22);
        }

        .ths-move-card.serious-abnormal-card .ths-move-retry {
            border-color: rgba(255, 152, 0, 0.28);
            color: rgba(255, 152, 0, 0.95);
        }

        .ths-move-card.serious-abnormal-card .ths-move-retry:hover {
            background: rgba(255, 152, 0, 0.08);
        }

        .sa-list {
            display: flex;
            flex-direction: column;
            gap: 6px;
            margin-top: 6px;
        }

        .sa-body {
            display: flex;
            flex-direction: column;
        }

        .sa-suspend-bar {
            margin-top: 6px;
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 6px;
            padding: 6px 6px;
            background: rgba(231, 76, 60, 0.08);
            border: 1px dashed rgba(231, 76, 60, 0.26);
            border-radius: 6px;
        }

        .sa-suspend-badge {
            font-size: 9px;
            font-weight: 800;
            color: rgba(255, 188, 188, 0.95);
            border: 1px solid rgba(231, 76, 60, 0.35);
            background: rgba(231, 76, 60, 0.12);
            padding: 1px 6px;
            border-radius: 999px;
            line-height: 1.2;
            flex: 0 0 auto;
        }

        .sa-suspend-text {
            font-size: 10px;
            color: rgba(255, 255, 255, 0.78);
            white-space: nowrap;
        }

        .sa-suspend-chips {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
        }

        .sa-suspend-chip {
            display: inline-flex;
            align-items: baseline;
            gap: 4px;
            padding: 2px 8px;
            border-radius: 999px;
            border: 1px solid rgba(255, 255, 255, 0.10);
            background: rgba(0, 0, 0, 0.18);
            color: rgba(255, 255, 255, 0.86);
            font-size: 10px;
            cursor: pointer;
            max-width: 120px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .sa-suspend-chip:hover {
            border-color: rgba(231, 76, 60, 0.35);
            background: rgba(255, 255, 255, 0.03);
        }

        .sa-suspend-chip small {
            font-size: 9px;
            opacity: 0.75;
            white-space: nowrap;
        }

        .sa-tag.sa-sus {
            color: rgba(255, 188, 188, 0.95);
            border-color: rgba(231, 76, 60, 0.35);
            background: rgba(231, 76, 60, 0.12);
        }

        .sa-resume-bar {
            margin-top: 6px;
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 6px;
            padding: 6px 6px;
            background: rgba(46, 204, 113, 0.08);
            border: 1px dashed rgba(46, 204, 113, 0.26);
            border-radius: 6px;
        }

        .sa-resume-badge {
            font-size: 9px;
            font-weight: 800;
            color: rgba(190, 255, 210, 0.95);
            border: 1px solid rgba(46, 204, 113, 0.35);
            background: rgba(46, 204, 113, 0.12);
            padding: 1px 6px;
            border-radius: 999px;
            line-height: 1.2;
            flex: 0 0 auto;
        }

        .sa-resume-bar .sa-suspend-chip:hover {
            border-color: rgba(46, 204, 113, 0.35);
        }

        .sa-row {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 6px 6px;
            background: rgba(0, 0, 0, 0.20);
            border: 1px solid rgba(255, 255, 255, 0.08);
            border-radius: 6px;
        }

        .sa-row:hover {
            background: rgba(255, 255, 255, 0.03);
            border-color: rgba(255, 152, 0, 0.24);
        }

        .sa-left {
            display: flex;
            align-items: baseline;
            gap: 6px;
            min-width: 0;
            flex: 1 1 auto;
        }

        .sa-name {
            font-size: 11px;
            font-weight: 700;
            color: rgba(255, 255, 255, 0.88);
            cursor: pointer;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .sa-code {
            font-size: 9px;
            color: rgba(255, 255, 255, 0.55);
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
            flex: 0 0 auto;
        }

        .sa-tag {
            font-size: 9px;
            color: rgba(255, 152, 0, 0.95);
            border: 1px solid rgba(255, 152, 0, 0.22);
            background: rgba(255, 152, 0, 0.08);
            padding: 1px 6px;
            border-radius: 999px;
            line-height: 1.2;
            flex: 0 0 auto;
        }

        .sa-mid {
            display: flex;
            flex-direction: column;
            align-items: flex-end;
            gap: 2px;
            flex: 0 0 auto;
            min-width: 120px;
        }

        .sa-val {
            font-size: 10px;
            color: rgba(255, 255, 255, 0.80);
            white-space: nowrap;
        }

        .sa-pair {
            font-size: 9px;
            color: rgba(255, 255, 255, 0.55);
            white-space: nowrap;
        }

        .sa-right {
            flex: 0 0 auto;
        }

        .sa-dist {
            font-size: 10px;
            font-weight: 700;
            padding: 2px 8px;
            border-radius: 999px;
            border: 1px solid rgba(255, 255, 255, 0.10);
            background: rgba(0, 0, 0, 0.22);
            color: rgba(255, 255, 255, 0.86);
            white-space: nowrap;
        }

        .sa-dist.level-0 { border-color: rgba(231, 76, 60, 0.35); background: rgba(231, 76, 60, 0.12); color: rgba(255, 188, 188, 0.95); }
        .sa-dist.level-1 { border-color: rgba(255, 152, 0, 0.35); background: rgba(255, 152, 0, 0.12); color: rgba(255, 221, 168, 0.95); }
        .sa-dist.level-2 { border-color: rgba(255, 193, 7, 0.35); background: rgba(255, 193, 7, 0.10); color: rgba(255, 233, 170, 0.95); }
        .sa-dist.level-3 { border-color: rgba(0, 210, 255, 0.25); background: rgba(0, 210, 255, 0.08); color: rgba(190, 240, 255, 0.90); }
        .sa-dist.level-4 { border-color: rgba(255, 255, 255, 0.10); background: rgba(0, 0, 0, 0.10); color: rgba(255, 255, 255, 0.70); }

        .ths-move-events {
            display: flex;
            flex-direction: column;
            gap: 6px;
            margin-top: 4px;
        }

        .ths-move-event {
            background: rgba(0, 0, 0, 0.20);
            border: 1px solid rgba(255, 255, 255, 0.08);
            border-radius: 6px;
            padding: 6px 6px;
        }

        .ths-move-event-head {
            display: flex;
            align-items: center;
            gap: 6px;
        }

        .ths-time {
            font-size: 10px;
            color: rgba(149, 165, 166, 0.95);
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
        }

        .ths-title {
            font-size: 10px;
            color: rgba(255, 255, 255, 0.88);
            flex: 1;
            min-width: 0;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .ths-link {
            font-size: 10px;
            color: rgba(0, 210, 255, 0.95);
            text-decoration: none;
            border: 1px solid rgba(0, 210, 255, 0.24);
            background: rgba(0, 0, 0, 0.14);
            padding: 1px 8px;
            border-radius: 999px;
        }

        .ths-link:hover {
            background: rgba(0, 210, 255, 0.08);
        }

        .ths-move-event-stocks {
            margin-top: 4px;
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
        }

        .ths-stock-chip {
            font-size: 9px;
            padding: 1px 8px;
            border-radius: 999px;
            background: rgba(255, 255, 255, 0.06);
            border: 1px solid rgba(255, 255, 255, 0.12);
            color: rgba(255, 255, 255, 0.86);
            cursor: pointer;
            transition: var(--transition-smooth);
        }

        .ths-stock-chip:hover {
            border-color: rgba(0, 210, 255, 0.35);
            background: rgba(0, 210, 255, 0.06);
        }

        .ths-stock-chip.ths-b1 { border-color: rgba(63, 81, 181, 0.30); background: rgba(63, 81, 181, 0.10); }
        .ths-stock-chip.ths-b2 { border-color: rgba(156, 39, 176, 0.30); background: rgba(156, 39, 176, 0.10); }
        .ths-stock-chip.ths-b3 { border-color: rgba(233, 30, 99, 0.30); background: rgba(233, 30, 99, 0.10); }
        .ths-stock-chip.ths-bh { border-color: rgba(255, 152, 0, 0.30); background: rgba(255, 152, 0, 0.10); }

        .ths-analysis {
            margin-top: 4px;
            font-size: 10px;
            line-height: 1.35;
            color: rgba(255, 255, 255, 0.62);
            background: rgba(0, 0, 0, 0.14);
            border: 1px solid rgba(255, 255, 255, 0.06);
            border-radius: 6px;
            padding: 5px 6px;
            white-space: pre-wrap;
            word-break: break-word;
        }

        /* 列表滚动区 */
        .col-scroll-area {
            flex: 1;
            overflow-y: auto;
            padding: 8px;
            display: flex;
            flex-direction: column;
            gap: 8px;
            /* 【V3.2修复】内容靠上对齐，避免底部大片空白 */
            justify-content: flex-start;
            align-content: flex-start;
            align-items: stretch;
        }

        /* 梯队 & 题材卡片 */
        .ladder-section,
        .theme-card {
            border: 1px solid #2a2a2a;
            border-radius: 6px;
            padding: 6px;
            background: #161616;
            /* 【V3.3修复】防止flex拉伸 */
            flex-shrink: 0;
            flex-grow: 0;
        }

        .ladder-section {
            border-style: dashed;
        }

        /* 市场梯队样式 */
        .ladder-tier {
            display: flex;
            align-items: flex-start;
            margin-bottom: 8px;
            padding: 6px 8px;
            background: #1a1a1a;
            border-radius: 6px;
            border-left: 3px solid #444;
        }
        /* 打开高度(最高板>5) 使用深红色 */
        .ladder-tier.tier-6,
        .ladder-tier.tier-6plus { border-left-color: #ff1744; background: linear-gradient(90deg, rgba(255,23,68,0.08) 0%, #1a1a1a 30%); }
        .ladder-tier.tier-5 { border-left-color: #ffd700; background: linear-gradient(90deg, rgba(255,215,0,0.08) 0%, #1a1a1a 30%); }
        .ladder-tier.tier-4 { border-left-color: #ff9800; background: linear-gradient(90deg, rgba(255,152,0,0.08) 0%, #1a1a1a 30%); }
        .ladder-tier.tier-3 { border-left-color: #e91e63; background: linear-gradient(90deg, rgba(233,30,99,0.08) 0%, #1a1a1a 30%); }
        .ladder-tier.tier-2 { border-left-color: #9c27b0; background: linear-gradient(90deg, rgba(156,39,176,0.08) 0%, #1a1a1a 30%); }
        .ladder-tier.tier-1 { border-left-color: #3f51b5; background: linear-gradient(90deg, rgba(63,81,181,0.08) 0%, #1a1a1a 30%); }
        .ladder-tier.tier-reverse { border-left-color: #00bcd4; background: linear-gradient(90deg, rgba(0,188,212,0.08) 0%, #1a1a1a 30%); }
        .tier-badge {
            font-size: 12px;
            font-weight: bold;
            padding: 4px 10px;
            border-radius: 4px;
            color: #fff;
            min-width: 40px;
            text-align: center;
            margin-right: 10px;
            flex-shrink: 0;
        }
        /* 打开高度badge - 使用6板的样式(深红色) */
        .tier-badge.tier-6,
        .tier-badge.tier-6plus { background: linear-gradient(135deg, #ff1744, #d50000); }
        .tier-badge.tier-5 { background: linear-gradient(135deg, #ffd700, #ff9800); }
        .tier-badge.tier-4 { background: linear-gradient(135deg, #ff9800, #f57c00); }
        .tier-badge.tier-3 { background: linear-gradient(135deg, #e91e63, #c2185b); }
        .tier-badge.tier-2 { background: linear-gradient(135deg, #9c27b0, #7b1fa2); }
        .tier-badge.tier-1 { background: linear-gradient(135deg, #3f51b5, #303f9f); }
        .tier-badge.tier-reverse { background: linear-gradient(135deg, #00bcd4, #0097a7); }
        .tier-stocks {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            flex: 1;
        }
        .tier-stock {
            display: inline-flex;
            align-items: center;
            background: #252525;
            padding: 3px 8px;
            border-radius: 4px;
            font-size: 11px;
            cursor: pointer;
            transition: all 0.15s;
            border: 1px solid transparent;
        }
        .tier-stock:hover {
            background: #333;
            border-color: #555;
        }
        .tier-stock.is-highlighted {
            background: rgba(255,193,7,0.2);
            border-color: #ffc107;
        }
        .tier-stock .stock-name {
            color: #fff;
            font-weight: 500;
        }
        .tier-stock .stock-tips {
            color: #ffd700;
            font-size: 9px;
            margin-left: 4px;
        }
        /* 纯连板/反包类区分样式 */
        .tier-stock.board-pure .stock-name {
            color: #ff4d4d;  /* 纯连板: 红色 */
        }
        .tier-stock.board-mixed {
            border-color: #00bcd4;
        }
        .tier-stock.board-mixed .stock-name {
            color: #00bcd4;  /* 反包类: 青色 */
        }
        .tier-stock.board-mixed .stock-tips {
            color: #00bcd4;
        }
        
        /* 梯队增强版样式 */
        .ladder-tier-enhanced {
            margin-bottom: 8px;
            border: 1px solid #2a2a2a;
            border-radius: 6px;
            overflow: hidden;
        }
        .tier-header-enhanced {
            display: flex;
            align-items: center;
            padding: 6px 10px;
            background: #1a1a1a;
            cursor: pointer;
            transition: background 0.2s;
        }
        .tier-header-enhanced:hover {
            background: #222;
        }
        .tier-theme-tags {
            display: flex;
            align-items: center;
            gap: 4px;
            flex-wrap: wrap;
            margin-left: 10px;
            max-width: 260px;
        }
        .tier-theme-tag {
            font-size: 9px;
            line-height: 1.2;
            color: #8ab4f8;
            background: rgba(138, 180, 248, 0.12);
            border: 1px solid rgba(138, 180, 248, 0.25);
            padding: 1px 4px;
            border-radius: 4px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            max-width: 72px;
        }
        .tier-stocks-table {
            background: #141414;
            /* 不做内部滚动：展开后成功/失败全部展示，交给外层列滚动区滚动 */
            max-height: none;
            overflow-y: visible;
            overflow-x: auto;
        }
        .tier-stocks-table table {
            min-width: 580px;
        }
        .tier-stocks-table table tr:hover {
            background: rgba(255,255,255,0.03);
            cursor: pointer;
        }
        .tier-stocks-table table tr.is-highlighted {
            background: rgba(255,193,7,0.15);
        }
        .tier-stocks-table table tr.is-theme-highlighted td {
            box-shadow: inset 0 0 0 1px rgba(64, 169, 255, 0.28);
        }
        .tier-stocks-table table tr.is-theme-highlighted td:first-child {
            box-shadow: inset 3px 0 0 rgba(64, 169, 255, 0.95), inset 0 0 0 1px rgba(64, 169, 255, 0.28);
        }
        .tier-stocks-table table th {
            position: sticky;
            top: 0;
            background: #1a1a1a;
            z-index: 1;
        }
        
        /* 板块核心样式 */
        .plate-core-item {
            background: #1a1a1a;
            border-radius: 6px;
            margin-bottom: 8px;
            padding: 8px 10px;
            border: 1px solid #2a2a2a;
        }
        .plate-core-header {
            display: flex;
            align-items: center;
            margin-bottom: 6px;
        }
        .plate-core-name {
            font-size: 12px;
            font-weight: bold;
            color: #e67e22;
        }
        .plate-core-count {
            font-size: 10px;
            color: #888;
            margin-left: 6px;
        }
        .plate-core-tiers {
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
        }
        .plate-tier-group {
            display: flex;
            align-items: center;
            background: #222;
            padding: 2px 6px;
            border-radius: 3px;
            font-size: 10px;
        }
        .plate-tier-label {
            color: #888;
            margin-right: 4px;
        }
        .plate-tier-stocks {
            display: flex;
            gap: 4px;
        }
        .plate-stock {
            color: #fff;
            cursor: pointer;
        }
        .plate-stock:hover {
            color: #ffc107;
        }
        .plate-stock.is-highlighted {
            color: #ffc107;
            font-weight: bold;
        }
        .plate-stock .tips {
            color: #ffd700;
            font-size: 9px;
        }

        .ladder-row {
            display: flex;
            margin-bottom: 5px;
            align-items: stretch;
            min-height: 24px;
        }

        .board-badge {
            background: #252525;
            color: #e0e0e0;
            font-size: 11px;
            padding: 4px 8px;
            min-width: 32px;
            min-height: 24px;
            text-align: center;
            margin-right: 6px;
            border: 1px solid #444;
            border-radius: 3px;
            flex-shrink: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.15s ease;
            user-select: none;
        }

        .board-badge:hover {
            background: #333;
            border-color: #555;
            color: #fff;
        }

        .board-badge:active {
            transform: scale(0.95);
        }

        .board-badge.is-collapsed {
            background: #1a1a2e;
            border-color: #3498db;
            color: #3498db;
        }

        .board-badge.is-collapsed::after {
            content: '+';
            font-size: 8px;
            margin-left: 1px;
            opacity: 0.7;
        }

                
                
        
        .stock-pool {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
            gap: 8px;
            flex: 1;
            align-items: stretch;
            align-content: flex-start;
            transition: all 0.2s ease;
        }

        /* 收缩状态：只显示摘要信息 */
        .stock-pool.is-collapsed {
            display: flex;
            flex-wrap: nowrap;
            overflow: hidden;
            align-items: center;
            /* 【V3.3修复】收缩时限制高度，避免占用过多空间 */
            max-height: 28px;
            min-height: auto;
        }

        .stock-pool.is-collapsed .st-tag {
            display: none;
        }

        .collapse-summary {
            display: none;
            font-size: 10px;
            color: #dce6ff;
            padding: 4px 8px;
            background: rgba(93, 173, 226, 0.18);
            border: 1px dashed var(--accent-info);
            border-radius: 3px;
            white-space: nowrap;
        }

        .stock-pool.is-collapsed .collapse-summary {
            display: flex;
            align-items: center;
            gap: 8px;
        }

        /* 【V3.3新增】收缩状态下整行也要紧凑 */
        .ladder-row:has(.stock-pool.is-collapsed) {
            min-height: auto;
            margin-bottom: 3px;
        }

        .collapse-summary .count {
            color: var(--accent-info);
            font-weight: bold;
        }

        .collapse-summary .has-node {
            color: var(--accent-node);
            display: flex;
            align-items: center;
            gap: 3px;
        }

        .collapse-summary .has-node::before {
            content: '';
            width: 5px;
            height: 5px;
            background: var(--accent-node);
            border-radius: 50%;
            box-shadow: 0 0 4px var(--accent-node);
        }

        .st-tag {
            font-size: 11px;
            line-height: 1.35;
            padding: 8px 10px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            color: var(--text-main);
            border-radius: 6px;
            cursor: grab;
            display: flex;
            flex-direction: column;
            align-items: stretch;
            gap: 6px;
            min-width: 0;
            box-shadow: var(--card-shadow);
            transition: var(--transition-smooth);
        }

        .st-row-main {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            flex-wrap: wrap;
        }

        .st-role-wrap {
            display: flex;
            align-items: center;
            gap: 6px;
            flex-wrap: wrap;
        }

        .st-row-metrics {
            display: flex;
            align-items: center;
            gap: 5px;
            flex-wrap: wrap;
        }

        .metric-chip {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            padding: 3px 7px;
            border-radius: 6px;
            background: rgba(255, 255, 255, 0.14);
            border: 1px solid rgba(255, 255, 255, 0.2);
            font-size: 10px;
            color: var(--accent-text-strong);
            line-height: 1.35;
            text-shadow: 0 0 4px rgba(0,0,0,0.45);
        }

                .metric-chip.time-chip {
            padding: 1px 5px;
            min-width: 38px;
        }

        .metric-chip.pill-up { color: #ff94aa; border-color: rgba(255,148,170,0.6); }
        .metric-chip.pill-down { color: #70e39a; border-color: rgba(112,227,154,0.6); }
        .metric-chip.pill-warn { color: #ffce7a; border-color: rgba(255,206,122,0.65); }
        .metric-chip.pill-good { color: #4ff3b1; border-color: rgba(79,243,177,0.65); }
.st-foot {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 6px;
            flex-wrap: wrap;
        }

        .st-foot-left,
        .st-foot-right {
            display: flex;
            align-items: center;
            gap: 4px;
            flex-wrap: wrap;
        }

        .st-tag > span:first-of-type {
            margin-left: 0 !important;
        }

        .st-tag:hover {
            border-color: var(--color-blue);
            background: #252A30;
            transform: translateY(-1px);
        }

        .st-name { min-width: 56px; font-weight: 700; color: #fff; }
        .st-price { font-size: 10px; color: #ffd700; min-width: 42px; text-align: right; font-weight: 500; }
        .st-board { font-size: 9px; color: #dce6ff; min-width: 38px; text-align: center; font-weight: 600; }
        .st-float { font-size: 9px; color: #8ab4ff; min-width: 34px; text-align: center; }
        .st-time { font-size: 9px; color: #a0a0a0; min-width: 36px; text-align: center; }
        .st-bid { font-size: 9px; min-width: 36px; text-align: center; }
        .st-ratio { font-size: 9px; color: #999; min-width: 28px; text-align: center; }
        .st-turn { font-size: 9px; color: #b18bff; min-width: 32px; text-align: center; }
        .st-real-turn { font-size: 9px; color: #26d0c9; min-width: 32px; text-align: center; }
        .st-real-turn.turn-high { color: #ff6b6b; }  /* 换手>15% 红色警示 */
        .st-real-turn.turn-low { color: #4ecdc4; }   /* 换手<5% 青色健康 */

        /* 突破标识样式 */
        .st-breakout {
            font-size: 9px;
            padding: 2px 5px;
            border-radius: 4px;
            font-weight: 700;
            margin-left: 2px;
            display: inline-flex;
            align-items: center;
            white-space: nowrap;
            box-shadow: 0 0 6px rgba(0,0,0,0.35);
        }
        .st-breakout.real { background: linear-gradient(135deg, #00c853, #00e676); color: #000; border: 1px solid #00b248; }
        .st-breakout.fake { background: linear-gradient(135deg, #ff1744, #ff5252); color: #fff; border: 1px solid #ff6b81; }
        .st-breakout.uncertain { background: linear-gradient(135deg, #ffc107, #ffca28); color: #000; border: 1px solid #ffb300; }

        .st-action {
            font-size: 9px;
            padding: 2px 4px;
            border-radius: 3px;
            background: rgba(0,150,255,0.25);
            color: #69c9ff;
            margin-left: 2px;
            font-weight: 600;
            white-space: nowrap;
        }
        .st-action.bid { background: linear-gradient(135deg, rgba(156,39,176,0.35), rgba(233,30,99,0.35)); color: #f8bbd0; font-weight: 700; }
        .st-action.chase { background: rgba(0,200,83,0.25); color: #8df5c0; }
        .st-action.dip { background: rgba(255,193,7,0.25); color: #ffe082; }
        .st-action.wait { background: rgba(158,158,158,0.25); color: #bdbdbd; }
        .st-action.avoid { background: rgba(255,23,68,0.25); color: #ff9aa2; }
        .st-action.unknown { background: rgba(100,100,100,0.2); color: #888; border: 1px dashed #555; }
        /* 【V3.3新增】持仓守 - 高位票适合持有者 */
        .st-action.hold { background: rgba(33,150,243,0.25); color: #90caf9; font-style: italic; }
        /* 【V3.3新增】诱多板 - 假弱转强警告 */
        .st-action.danger {
            background: linear-gradient(135deg, rgba(255,0,0,0.4), rgba(139,0,0,0.4));
            color: #ff6b6b;
            font-weight: 700;
            animation: danger-pulse 1.5s ease-in-out infinite;
        }
        @keyframes danger-pulse {
            0%, 100% { opacity: 1; box-shadow: 0 0 5px rgba(255,0,0,0.3); }
            50% { opacity: 0.8; box-shadow: 0 0 12px rgba(255,0,0,0.6); }
        }

        /* 【V3.3】周期预期与真伪修复判定样式 - Fintech风格 */
        .repair-bar {
            font-size: 8px;
            padding: 0;
            margin: 6px 4px;
            border-radius: var(--card-radius);
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            overflow: hidden;
            transition: var(--transition-smooth);
        }
        .repair-bar:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 12px rgba(0,0,0,0.3);
        }

        /* ============ 顶部 Meta 卡（信息块高度集成，固定展开） ============ */
        .day-header-wrapper .meta-card.repair-bar {
            margin: 0;
            cursor: default;
            height: auto;
            max-height: none;
            display: flex;
            flex-direction: column;
        }

        .meta-card .meta-details {
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto;
            gap: 4px 8px;
            align-items: center;
            flex: 0 0 auto;
            min-height: 0;
            overflow: visible;
            padding: 3px 8px 5px 8px;
            border-top: 1px solid rgba(255,255,255,0.05);
        }

        .meta-card .meta-compact {
            flex: 0 0 auto;
            display: grid;
            grid-template-columns: minmax(0, 1fr) auto;
            grid-template-areas:
                "header header"
                "subline action";
            row-gap: 2px;
            align-items: center;
            padding-bottom: 2px;
        }

        .meta-card.repair-bar:hover {
            transform: none;
            box-shadow: none;
        }

        .meta-card .meta-header {
            grid-area: header;
            padding: 4px 8px 3px 8px;
        }
        .meta-card .meta-label {
            flex: 1;
            min-width: 0;
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;
        }
        .meta-card .meta-pin {
            opacity: 0.5;
            margin-right: 6px;
            flex: 0 0 auto;
        }
        .meta-card .meta-pin.on {
            opacity: 1;
        }
        .meta-card .meta-title {
            margin-right: 6px;
        }
        .meta-card .meta-date,
        .meta-card .meta-cycle {
            opacity: 0.9;
        }
        .meta-card .meta-yesterday {
            color: #888;
            margin-left: 4px;
        }

        .meta-card .meta-subline {
            grid-area: subline;
            display: flex;
            gap: 6px;
            align-items: center;
            padding: 0 8px;
            font-size: 8px;
            color: #bbb;
            min-width: 0;
        }
        .meta-card .meta-roles {
            flex: 1;
            min-width: 0;
            overflow: hidden;
            white-space: nowrap;
            text-overflow: ellipsis;
        }
        .meta-card .meta-signal {
            flex: 0 0 auto;
            white-space: nowrap;
            opacity: 0.9;
        }
        .meta-card .meta-muted {
            color: #777;
        }

        .meta-card .meta-action-row {
            grid-area: action;
            position: static;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            gap: 4px;
            min-width: 0;
            max-width: 152px;
            padding: 0 8px 0 0;
        }
        .meta-card .meta-compact .repair-action {
            white-space: normal;
            overflow: hidden;
            text-overflow: ellipsis;
            padding: 0;
            font-size: 10px;
            line-height: 1.15;
            text-align: right;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
        }
        .meta-card .meta-verify-chip {
            position: static;
            transform: none;
            font-size: 10px;
            line-height: 1;
            opacity: 0.9;
            pointer-events: none;
            flex: 0 0 auto;
        }

        .meta-card .meta-detail-block {
            grid-column: 1 / -1;
            padding: 0;
            min-width: 0;
        }
        .meta-card .meta-detail-row {
            display: flex;
            align-items: center;
            gap: 4px;
            min-width: 0;
            font-size: 8px;
            line-height: 1.2;
            overflow: hidden;
        }
        .meta-card .meta-trend-chip {
            flex: 0 0 auto;
            white-space: nowrap;
        }
        .meta-card .meta-inline-signal {
            min-width: 0;
            flex: 1;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            opacity: 0.95;
        }
        .meta-card .meta-role-item {
            margin-right: 6px;
        }
        .meta-card .meta-sector {
            font-size: 9px;
            padding: 6px 8px;
            margin: 6px 8px 0 8px;
            background: rgba(0,0,0,0.25);
            border-radius: 6px;
        }
        .meta-card .meta-sector-action {
            color: #aaa;
            font-size: 8px;
            margin-top: 2px;
        }
        .meta-card .meta-unified {
            font-size: 8px;
            padding: 4px 8px;
            margin: 6px 0 0 0;
            border-bottom: 1px solid rgba(255,255,255,0.05);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .meta-card .meta-unified-sug {
            opacity: 0.8;
            margin-left: 6px;
        }
        .meta-card .meta-unified-reasons {
            color: #aaa;
            margin-left: 6px;
        }
        .repair-bar.is-extreme {
            border-color: var(--color-red);
        }
        .repair-bar.is-high {
            border-color: var(--color-orange);
        }
        .repair-bar.is-low {
            border-color: var(--border-color);
        }
        .expect-score.low {
            color: #888;
            background: rgba(100,100,100,0.2);
            padding: 1px 4px;
            border-radius: 3px;
        }
        .repair-bar.is-fake {
            background: linear-gradient(135deg, rgba(192, 57, 43, 0.4), rgba(120, 40, 31, 0.3));
            border: 2px solid #c0392b;
            animation: fake-shake 0.5s ease-in-out;
        }
        @keyframes extreme-glow {
            0%, 100% { box-shadow: 0 0 12px rgba(231, 76, 60, 0.5); }
            50% { box-shadow: 0 0 20px rgba(231, 76, 60, 0.8); }
        }
        @keyframes fake-shake {
            0%, 100% { transform: translateX(0); }
            25% { transform: translateX(-2px); }
            75% { transform: translateX(2px); }
        }
        .repair-bar .expect-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 5px 8px;
            background: rgba(255,255,255,0.03);
            border-bottom: 1px solid rgba(255,255,255,0.05);
        }
        .repair-bar .expect-label {
            color: var(--text-sub);
            font-size: 8px;
            font-weight: 500;
            display: flex;
            align-items: center;
            gap: 4px;
        }
        .repair-bar .expect-score {
            font-weight: 600;
            font-size: 8px;
            padding: 1px 6px;
            border-radius: 4px;
            white-space: nowrap;
            background: var(--bg-panel);
        }
        .repair-bar .expect-score.extreme { 
            color: var(--color-red); 
            background: rgba(246, 70, 93, 0.15);
        }
        .repair-bar .expect-score.high { 
            color: var(--color-orange); 
            background: rgba(247, 147, 26, 0.15);
        }
        .repair-bar .expect-score.medium { 
            color: var(--color-blue); 
            background: rgba(74, 144, 226, 0.15);
        }
        .repair-bar .expect-score.low {
            color: var(--text-sub);
            background: rgba(132, 142, 156, 0.15);
        }
        /* V4.0 Z-Score预测样式 */
        .repair-bar.is-zscore {
            border: 2px solid #9b59b6;
            background: linear-gradient(135deg, rgba(155, 89, 182, 0.1), rgba(142, 68, 173, 0.05));
        }
        .repair-bar.is-zscore .expect-label {
            color: #9b59b6;
        }
        .repair-bar .factor-chip.zscore-factor {
            background: rgba(155, 89, 182, 0.2);
            color: #bb8fce;
            border-color: rgba(155, 89, 182, 0.3);
        }
        .repair-bar .repair-action.danger {
            color: #e74c3c;
            background: rgba(231, 76, 60, 0.1);
            border-left: 3px solid #e74c3c;
        }
        .repair-bar .expect-factors {
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
            padding: 4px 8px;
        }
        .meta-card .expect-factors {
            grid-column: 1 / 2;
            flex-wrap: nowrap;
            gap: 3px;
            padding: 0;
            overflow: hidden;
            min-width: 0;
        }
        .meta-card .expect-factors .factor-chip {
            max-width: 100%;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            font-size: 7px;
        }
        .repair-bar .factor-chip {
            font-size: 7px;
            padding: 1px 4px;
            background: rgba(255,255,255,0.08);
            color: var(--text-sub);
            border-radius: 4px;
            border: 1px solid rgba(255,255,255,0.08);
            font-weight: 500;
        }
        .repair-bar .repair-quality {
            margin: 4px 0;
        }
        .repair-bar .fake-warning {
            display: flex;
            align-items: center;
            gap: 4px;
            padding: 4px 6px;
            background: rgba(192, 57, 43, 0.3);
            border-radius: 4px;
            border: 1px solid #c0392b;
        }
        .repair-bar .warning-icon { font-size: 12px; }
        .repair-bar .warning-text {
            color: #e74c3c;
            font-weight: bold;
            font-size: 9px;
        }
        .repair-bar .hero-badge {
            padding: 5px 6px;
            border-radius: 5px;
            text-align: center;
        }
        .repair-bar .hero-badge.true_hero {
            background: linear-gradient(135deg, rgba(255, 215, 0, 0.3), rgba(255, 193, 7, 0.2));
            border: 1px solid #ffd700;
            box-shadow: 0 0 10px rgba(255, 215, 0, 0.4);
        }
        .repair-bar .hero-badge.potential_hero {
            background: linear-gradient(135deg, rgba(52, 152, 219, 0.3), rgba(41, 128, 185, 0.2));
            border: 1px solid #3498db;
        }
        .repair-bar .hero-label {
            display: block;
            font-weight: bold;
            font-size: 10px;
            margin-bottom: 2px;
        }
        .repair-bar .hero-badge.true_hero .hero-label { color: #ffd700; }
        .repair-bar .hero-badge.potential_hero .hero-label { color: #5dade2; }
        .repair-bar .hero-name {
            display: block;
            color: #fff;
            font-weight: bold;
            font-size: 11px;
        }
        .repair-bar .hero-desc {
            display: block;
            color: #aaa;
            font-size: 8px;
            margin-top: 2px;
        }
        .repair-bar .repair-action {
            margin: 0;
            padding: 6px 8px;
            border-radius: 0;
            text-align: center;
            font-weight: 600;
            font-size: 13px;
            color: var(--text-main);
            background: transparent;
            border: none;
        }
        .repair-bar .repair-action.true-hero {
            color: var(--color-green);
        }
        .repair-bar .repair-action.fake-repair {
            color: var(--color-red);
        }
        .repair-bar .repair-action.wait-confirm {
            color: var(--color-gold);
        }
        .repair-bar .repair-action.wait-hero {
            color: var(--color-blue);
        }
        .repair-bar .repair-action.wait {
            color: var(--text-sub);
        }
        .repair-bar .repair-action.can-buy {
            color: var(--color-red);
            font-weight: 700;
        }
        .repair-bar .repair-action.normal {
            color: var(--text-sub);
        }
        /* 英雄区域 */
        .repair-bar .hero-section {
            margin: 5px 0;
            padding: 4px;
            background: rgba(255, 215, 0, 0.1);
            border-radius: 4px;
            border: 1px dashed #f39c12;
        }
        .repair-bar .hero-strategy {
            font-size: 8px;
            color: #f1c40f;
            margin-bottom: 3px;
        }
        .repair-bar .hero-strategy.warn {
            color: #e74c3c;
            padding: 3px;
            background: rgba(231, 76, 60, 0.15);
            border-radius: 3px;
            margin: 4px 0;
        }
        .repair-bar .hero-list {
            display: flex;
            flex-wrap: wrap;
            gap: 3px;
        }
        .repair-bar .hero-chip {
            font-size: 9px;
            padding: 2px 5px;
            background: linear-gradient(135deg, rgba(255, 215, 0, 0.3), rgba(255, 193, 7, 0.2));
            color: #ffd700;
            border-radius: 4px;
            font-weight: bold;
        }
        /* 复盘验证区域 - 左侧色条风格 */
        .repair-bar .verification-box {
            margin: 0;
            padding: 4px 8px;
            border-radius: 0;
            border-top: 1px solid rgba(255,255,255,0.05);
            display: flex;
            align-items: center;
            justify-content: space-between;
        }
        .meta-card .verification-box {
            grid-column: 2 / 3;
            grid-row: 2 / 3;
            min-height: 0;
            max-width: 120px;
            padding: 3px 6px;
            border-top: none;
            border-radius: 6px;
            align-self: stretch;
        }
        .meta-card .verification-box .verify-result {
            width: 100%;
            text-transform: none;
            letter-spacing: 0;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            text-align: center;
            font-size: 7px;
            line-height: 1.15;
        }
        .meta-card .verification-box .verify-lesson {
            display: none;
        }
        .repair-bar .verification-box.correct {
            background: linear-gradient(90deg, rgba(14, 203, 129, 0.15), transparent);
            border-left: 3px solid var(--color-green);
        }
        .repair-bar .verification-box.wrong {
            background: linear-gradient(90deg, rgba(246, 70, 93, 0.15), transparent);
            border-left: 3px solid var(--color-red);
        }
        .repair-bar .verify-result {
            font-size: 8px;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }
        .repair-bar .verification-box.correct .verify-result { 
            color: var(--color-green); 
        }
        .repair-bar .verification-box.wrong .verify-result { 
            color: var(--color-red); 
        }
        .repair-bar .verification-box.pending {
            background: rgba(132, 142, 156, 0.08);
            border-left: 3px solid var(--text-sub);
        }
        .repair-bar .verification-box.pending .verify-result { 
            color: var(--text-sub); 
        }
        .repair-bar .verify-lesson {
            font-size: 8px;
            color: var(--text-sub);
            opacity: 0.8;
        }

        /* 【V3.3】抗分歧标签样式 */
        .st-resilience {
            font-size: 8px;
            padding: 1px 4px;
            border-radius: 3px;
            margin-left: 3px;
            background: linear-gradient(135deg, rgba(52, 73, 94, 0.5), rgba(44, 62, 80, 0.4));
            color: #5dade2;
            border: 1px solid #34495e;
        }
        .st-resilience.strong {
            background: linear-gradient(135deg, rgba(155, 89, 182, 0.4), rgba(142, 68, 173, 0.3));
            color: #bb8fce;
            border: 1px solid #9b59b6;
            box-shadow: 0 0 6px rgba(155, 89, 182, 0.4);
        }
        .st-resilience.medium {
            background: rgba(52, 152, 219, 0.3);
            color: #5dade2;
            border: 1px solid #3498db;
        }

        /* 【V3.1新增】情绪转折点标签 - 流光动效 */
        .st-pivot {
            font-size: 9px;
            padding: 2px 5px;
            border-radius: 4px;
            margin-left: 3px;
            font-weight: 700;
            white-space: nowrap;
            animation: pivotGlow 1.5s ease-in-out infinite;
        }
        .st-pivot.savior {
            background: linear-gradient(135deg, #9c27b0, #e040fb);
            color: #fff;
            border: 1px solid #ce93d8;
            box-shadow: 0 0 8px rgba(156,39,176,0.6);
        }
        .st-pivot.rock {
            background: linear-gradient(135deg, #1565c0, #42a5f5);
            color: #fff;
            border: 1px solid #64b5f6;
            box-shadow: 0 0 8px rgba(21,101,192,0.6);
        }
        .st-pivot.breakout_dragon {
            background: linear-gradient(135deg, #ff6f00, #ffab00);
            color: #000;
            border: 1px solid #ffc107;
            box-shadow: 0 0 10px rgba(255,111,0,0.7);
        }
        @keyframes pivotGlow {
            0%, 100% { opacity: 1; transform: scale(1); }
            50% { opacity: 0.85; transform: scale(1.02); }
        }

        /* 龙头特征标签 */
        .st-dragon-trait {
            font-size: 8px;
            padding: 1px 3px;
            border-radius: 2px;
            margin-left: 2px;
            background: rgba(156,39,176,0.2);
            color: #ce93d8;
            white-space: nowrap;
        }

        /* 压力位/支撑位标签 */
        .st-level {
            font-size: 9px;
            padding: 1px 4px;
            border-radius: 3px;
            margin-left: 3px;
            font-weight: 500;
            white-space: nowrap;
        }
        .st-resistance {
            background: rgba(255,77,77,0.2);
            color: #ff7a7a;
            border: 1px solid rgba(255,77,77,0.4);
        }
        .st-support {
            background: rgba(46,204,113,0.2);
            color: #5dde9a;
            border: 1px solid rgba(46,204,113,0.4);
        }

        .st-risk {
            font-size: 8px;
            padding: 2px 4px;
            border-radius: 3px;
            background: rgba(231, 76, 60, 0.3);
            color: #ffb0b7;
            margin-left: 2px;
            white-space: nowrap;
        }

        .st-bellwether {
            font-size: 7px;
            padding: 1px 4px;
            border-radius: 3px;
            font-weight: bold;
            margin-left: 2px;
        }
        .st-bellwether.space-dragon { background: linear-gradient(135deg, #ffd700, #ff9800); color: #000; }
        .st-bellwether.trend-anchor { background: linear-gradient(135deg, #ff9800, #ff5722); color: #fff; }
        .st-bellwether.switch-vanguard { background: linear-gradient(135deg, #9c27b0, #673ab7); color: #fff; }

        /* 题材Tier徽章样式 */
        .theme-tier {
            font-size: 8px;
            padding: 1px 4px;
            border-radius: 3px;
            margin-left: 4px;
            font-weight: bold;
        }
        .theme-tier.tier-1 { background: linear-gradient(135deg, #ffd700, #ff9800); color: #000; }
        .theme-tier.tier-2 { background: linear-gradient(135deg, #ff9800, #ff5722); color: #fff; }
        .theme-tier.tier-3 { background: linear-gradient(135deg, #2196f3, #03a9f4); color: #fff; }
        .theme-tier.tier-4 { background: linear-gradient(135deg, #9e9e9e, #757575); color: #fff; }

        /* 市场相位指示条样式 */
        .market-phase-bar {
            background: linear-gradient(90deg, #0a0a0a, #151515, #0a0a0a);
            border-bottom: 1px solid #333;
            padding: 6px 20px;
            display: flex;
            align-items: center;
            gap: 15px;
            flex-shrink: 0;
        }
        .market-phase-label {
            font-size: 11px;
            color: #888;
        }
        .market-phase-badge {
            font-size: 14px;
            font-weight: bold;
            padding: 4px 12px;
            border-radius: 4px;
        }
        .market-phase-badge.mainline { background: linear-gradient(135deg, #ff4d4d, #ff6b6b); color: #fff; border: 1px solid #ff4d4d; }
        .market-phase-badge.rotation { background: linear-gradient(135deg, #f39c12, #f1c40f); color: #000; border: 1px solid #f39c12; }
        .market-phase-badge.oscillation { background: linear-gradient(135deg, #3498db, #5dade2); color: #fff; border: 1px solid #3498db; }
        .market-phase-badge.unknown { background: #333; color: #888; border: 1px solid #555; }
        .market-phase-strategy {
            font-size: 11px;
            color: #aaa;
            flex: 1;
        }
        .market-phase-confidence {
            font-size: 10px;
            color: #666;
            padding: 2px 8px;
            background: rgba(255,255,255,0.05);
            border-radius: 3px;
        }

        /* 竞价信号区域样式 */
        .auction-signals {
            background: rgba(0,0,0,0.3);
            border: 1px solid #333;
            border-radius: 4px;
            padding: 6px 8px;
            margin-top: 8px;
        }
        .auction-signals-title {
            font-size: 10px;
            color: #888;
            margin-bottom: 4px;
        }
        .auction-signal-item {
            display: inline-block;
            font-size: 9px;
            padding: 2px 6px;
            border-radius: 3px;
            margin: 2px;
        }
        .auction-signal-item.weak-to-strong { background: rgba(0,200,83,0.3); color: #69f0ae; }
        .auction-signal-item.strong-to-weak { background: rgba(255,23,68,0.3); color: #ff8a80; }
        .auction-signal-item.nuclear-button { background: rgba(156,39,176,0.5); color: #e040fb; border: 1px solid #9c27b0; }
        .auction-signal-item.continuation { background: rgba(255,152,0,0.3); color: #ffb74d; }

        .st-signal {
            font-size: 7px;
            padding: 1px 3px;
            border-radius: 2px;
            background: rgba(0,255,0,0.15);
            color: #81c784;
            margin-left: 2px;
        }

        /* 首板评分样式 */
        .st-grade {
            font-size: 9px;
            font-weight: bold;
            padding: 1px 4px;
            border-radius: 3px;
            margin-left: 3px;
        }
        .st-grade.grade-S { background: linear-gradient(135deg, #ffd700, #ffec8b); color: #000; }
        .st-grade.grade-A { background: linear-gradient(135deg, #00c853, #69f0ae); color: #000; }
        .st-grade.grade-B { background: linear-gradient(135deg, #2196f3, #64b5f6); color: #fff; }
        .st-grade.grade-C { background: linear-gradient(135deg, #ff9800, #ffb74d); color: #000; }
        .st-grade.grade-D { background: linear-gradient(135deg, #f44336, #ef5350); color: #fff; }

        .st-score {
            font-size: 8px;
            color: #aaa;
            margin-left: 2px;
        }

        .st-fund {
            font-size: 8px;
            padding: 1px 3px;
            border-radius: 2px;
            margin-left: 2px;
        }
        .st-fund.inflow { background: rgba(255,0,0,0.2); color: #ff6b6b; }
        .st-fund.outflow { background: rgba(0,255,0,0.2); color: #69f0ae; }

        /* T+1预期值样式 */
        .st-expect {
            font-size: 8px;
            padding: 1px 4px;
            border-radius: 2px;
            margin-left: 3px;
            background: rgba(255,255,255,0.1);
            color: #aaa;
            cursor: help;
        }
        .st-expect.high { background: rgba(255,215,0,0.2); color: #ffd700; }
        .st-expect.medium { background: rgba(100,181,246,0.2); color: #64b5f6; }
        .st-expect.low { background: rgba(158,158,158,0.2); color: #9e9e9e; }

        /* ==================== 新增容器样式 ==================== */
        /* 连板晋级表现容器 */
        .promotion-section {
            border-color: #e67e22 !important;
            background: rgba(230, 126, 34, 0.05) !important;
        }
        .promotion-board {
            margin-bottom: 6px;
            padding: 4px 6px;
            background: #1a1a1a;
            border-radius: 4px;
        }
        .promotion-board-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding-bottom: 3px;
            margin-bottom: 3px;
            border-bottom: 1px dashed #333;
            font-size: 10px;
        }
        .promotion-stock {
            display: flex;
            align-items: center;
            gap: 6px;
            padding: 2px 4px;
            font-size: 10px;
            border-radius: 2px;
            cursor: pointer;
            transition: background 0.15s;
        }
        .promotion-stock.success { background: rgba(14, 203, 129, 0.1); }
        .promotion-stock.fail { background: rgba(246, 70, 93, 0.1); }
        .promotion-stock:hover { background: rgba(230, 126, 34, 0.2); }
        .promotion-stock.is-highlighted {
            background: rgba(255, 0, 102, 0.2) !important;
            box-shadow: 0 0 4px rgba(255, 0, 102, 0.4);
        }
        .ps-name { width: 52px; font-weight: 600; color: #eee; overflow: hidden; text-overflow: ellipsis; }
        .ps-change { width: 50px; text-align: right; }
        .ps-change.up { color: #F6465D; }
        .ps-change.down { color: #0ECB81; }
        .ps-main { width: 50px; text-align: right; }
        .ps-main.up { color: #F6465D; }
        .ps-main.down { color: #0ECB81; }
        .ps-amount { width: 45px; color: #4A90E2; text-align: right; }
        .ps-turn { width: 38px; color: #e67e22; text-align: right; }
        .ps-theme { flex: 1; color: #888; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }

        /* 竞价表现容器 */
        .auction-section {
            border-color: #9b59b6 !important;
            background: rgba(155, 89, 182, 0.05) !important;
        }
        /* 竞价列表 - 一行一个股票 */
        .auction-list {
            display: flex;
            flex-direction: column;
            gap: 1px;
            max-height: 400px;
            overflow-y: auto;
        }
        .auction-row {
            display: flex;
            align-items: center;
            gap: 6px;
            padding: 2px 4px;
            font-size: 10px;
            background: rgba(155, 89, 182, 0.06);
            border-radius: 2px;
            cursor: pointer;
            transition: background 0.15s;
            white-space: nowrap;
        }
        .auction-row:hover {
            background: rgba(155, 89, 182, 0.18);
        }
        .auction-row.is-highlighted {
            background: rgba(255, 0, 102, 0.2) !important;
            box-shadow: 0 0 4px rgba(255, 0, 102, 0.4);
        }
        .auction-idx {
            width: 20px;
            color: #666;
            font-size: 9px;
            text-align: right;
        }
        .auction-code {
            width: 48px;
            color: #888;
            font-size: 9px;
        }
        .auction-name {
            width: 52px;
            font-weight: 600;
            color: #eee;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .auction-board {
            width: 50px;
            font-size: 9px;
            color: #ffd700;
            font-weight: bold;
        }
        .auction-zt {
            width: 45px;
            color: #f39c12;
            text-align: right;
        }
        .auction-bid {
            width: 52px;
            text-align: right;
        }
        .auction-bid.up { color: #F6465D; }
        .auction-bid.down { color: #0ECB81; }
        .auction-bid.na { color: #666; }
        .auction-theme {
            width: 56px;
            color: #9b59b6;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .auction-now {
            width: 52px;
            text-align: right;
        }
        .auction-now.up { color: #ff8a8a; }
        .auction-now.down { color: #6ee6a8; }
        .auction-net {
            width: 50px;
            text-align: right;
        }
        .auction-net.up { color: #F6465D; }
        .auction-net.down { color: #0ECB81; }
        .auction-amount {
            width: 50px;
            color: #4A90E2;
            text-align: right;
        }
        .auction-turn {
            width: 42px;
            color: #9b59b6;
            text-align: right;
        }
        .auction-float {
            width: 45px;
            color: #888;
            text-align: right;
        }

        /* 炸板容器 */
        .broken-section {
            border-color: #e74c3c !important;
            background: rgba(231, 76, 60, 0.05) !important;
        }
        .limit-broken-wrap {
            display: flex;
            flex-direction: column;
            gap: 6px;
        }
        .limit-broken-block {
            display: flex;
            flex-direction: column;
            gap: 4px;
        }
        .limit-broken-subhead {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            padding: 2px 4px;
        }
        .limit-broken-subtitle {
            font-size: 10px;
            color: #ffb0a8;
            font-weight: 700;
        }
        .limit-broken-subtip {
            font-size: 9px;
            color: #caa39f;
            white-space: nowrap;
        }
        .limit-broken-divider {
            border-top: 1px dashed rgba(231, 76, 60, 0.35);
            margin: 2px 0;
        }
        .limit-broken-empty {
            font-size: 10px;
            color: #888;
            padding: 4px 6px;
            background: rgba(0, 0, 0, 0.18);
            border-radius: 3px;
        }
	        /* 炸板列表 - 一行一个股票 */
	        .broken-list {
	            display: flex;
	            flex-direction: column;
	            gap: 1px;
	            max-height: 220px;
	            overflow-y: auto;
	            overflow-x: auto;
	        }
	        .broken-head {
	            position: sticky;
	            top: 0;
	            z-index: 2;
	            display: flex;
	            align-items: center;
	            gap: 6px;
	            padding: 2px 4px;
	            font-size: 9px;
	            color: #aaa;
	            background: rgba(0, 0, 0, 0.45);
	            border-bottom: 1px solid rgba(231, 76, 60, 0.25);
	            white-space: nowrap;
	            cursor: default;
	        }
	        .broken-head .sortable {
	            cursor: pointer;
	            user-select: none;
	        }
	        .broken-head .sortable:hover {
	            color: #fff;
	        }
	        .broken-head .sortable.active {
	            color: #fff;
	            font-weight: 700;
	        }
	        .broken-head .sort-icon {
	            margin-left: 2px;
	            color: #ffb74d;
	            font-size: 9px;
	        }
	        .broken-head .broken-label {
	            background: transparent;
	            padding: 0;
	            color: #aaa;
	        }
	        .broken-row {
	            display: flex;
	            align-items: center;
	            gap: 6px;
	            padding: 2px 4px;
            font-size: 10px;
            background: rgba(231, 76, 60, 0.06);
            border-radius: 2px;
            cursor: pointer;
            transition: background 0.15s;
            white-space: nowrap;
        }
        .broken-row:hover {
            background: rgba(231, 76, 60, 0.18);
        }
        .broken-row.is-highlighted {
            background: rgba(255, 0, 102, 0.2) !important;
            box-shadow: 0 0 4px rgba(255, 0, 102, 0.4);
        }
        .broken-idx {
            width: 20px;
            color: #666;
            font-size: 9px;
            text-align: right;
        }
        .broken-code {
            width: 48px;
            color: #888;
            font-size: 9px;
        }
        .broken-name {
            width: 74px;
            font-weight: 600;
            color: #eee;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .broken-row .broken-name {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            overflow: visible;
        }
        .broken-name-text {
            display: inline-block;
            min-width: 0;
            max-width: 54px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .broken-watch-btn {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 14px;
            height: 14px;
            border-radius: 3px;
            border: 1px solid rgba(255, 213, 79, 0.45);
            background: rgba(255, 213, 79, 0.08);
            color: #ffd54f;
            font-size: 11px;
            line-height: 1;
            cursor: pointer;
            flex: 0 0 auto;
        }
        .broken-watch-btn.active {
            background: rgba(255, 213, 79, 0.85);
            color: #111;
        }
        .broken-change {
            width: 52px;
            text-align: right;
        }
        .broken-change.up { color: #F6465D; }
        .broken-change.down { color: #0ECB81; }
        .broken-bid {
            width: 56px;
            text-align: right;
            color: #9fa8da;
        }
        .broken-bid.up { color: #F6465D; }
        .broken-bid.down { color: #0ECB81; }
        .broken-bid-turn {
            width: 50px;
            text-align: right;
            color: #64b5f6;
        }
        .broken-bid-amount {
            width: 56px;
            text-align: right;
            color: #90caf9;
        }
        .broken-zt-time {
            width: 50px;
            color: #f39c12;
            text-align: center;
            font-size: 9px;
        }
        .broken-open-time {
            width: 50px;
            color: #e74c3c;
            text-align: center;
            font-size: 9px;
        }
        .broken-last-time {
            width: 50px;
            color: #ff8a80;
            text-align: center;
            font-size: 9px;
        }
        .broken-open-count {
            width: 42px;
            color: #ffab40;
            text-align: right;
            font-size: 9px;
        }
        .broken-theme {
            width: 62px;
            color: #e74c3c;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .broken-net {
            width: 50px;
            text-align: right;
        }
        .broken-net.up { color: #F6465D; }
        .broken-net.down { color: #0ECB81; }
        .broken-amount {
            width: 50px;
            color: #4A90E2;
            text-align: right;
        }
        .broken-turn {
            width: 42px;
            color: #e67e22;
            text-align: right;
        }
        .broken-float {
            width: 45px;
            color: #888;
            text-align: right;
        }
        .broken-label {
            width: 58px;
            font-size: 9px;
            color: #ff6b6b;
            padding: 0 4px;
            background: rgba(231, 76, 60, 0.2);
            border-radius: 2px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        /* 分歧容器 */
        .diverge-section {
            border-color: #f39c12 !important;
            background: rgba(243, 156, 18, 0.05) !important;
        }
        .diverge-section .st-tag {
            border-color: rgba(243, 156, 18, 0.3);
        }
        .diverge-section .st-tag:hover {
            border-color: #f39c12;
            background: rgba(243, 156, 18, 0.15);
        }

        /* 跌停容器 */
        .limitdown-section {
            border-color: #27ae60 !important;
            background: rgba(39, 174, 96, 0.05) !important;
        }
        .limitdown-section .st-tag {
            border-color: rgba(39, 174, 96, 0.3);
        }
        .limitdown-section .st-tag:hover {
            border-color: #27ae60;
            background: rgba(39, 174, 96, 0.15);
        }

        /* 高位自然涨停容器 */
        .natural-section {
            border-color: #3498db !important;
            background: rgba(52, 152, 219, 0.05) !important;
        }
        .natural-section .st-tag {
            border-color: rgba(52, 152, 219, 0.3);
        }
        .natural-section .st-tag:hover {
            border-color: #3498db;
            background: rgba(52, 152, 219, 0.15);
        }

        /* 晋级失败区域样式 */
        .failed-section {
            margin-top: 8px;
            padding: 6px;
            background: #161616;
            border: 1px dashed #2a2a2a;
            border-radius: 6px;
            /* 【V3.3修复】防止flex拉伸，与ladder-section保持一致 */
            flex-shrink: 0;
            flex-grow: 0;
        }
        .failed-section-head {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 6px;
            cursor: pointer;
            user-select: none;
        }
        .failed-section.is-collapsed .failed-section-head {
            margin-bottom: 0;
        }
        .failed-section-title {
            font-size: 10px;
            color: #ff6b6b;
            font-weight: bold;
        }
        /* 晋级失败行：与连板梯队保持一致 */
        .failed-row {
            display: flex;
            margin-bottom: 5px;
            align-items: stretch;
            min-height: 24px;
        }
        /* 失败徽章：类似board-badge */
        .failed-badge {
            background: #2a1a1a;
            color: #ff6b6b;
            font-size: 10px;
            padding: 4px 6px;
            min-width: 44px;
            min-height: 24px;
            text-align: center;
            margin-right: 6px;
            border: 1px solid #ff4444;
            border-radius: 3px;
            flex-shrink: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.15s ease;
            user-select: none;
            white-space: nowrap;
        }
        .failed-badge:hover {
            background: #3a2020;
            border-color: #ff6666;
        }
        .failed-badge.is-collapsed {
            background: #1a1a2e;
            border-color: #666;
            color: #888;
        }
        .failed-badge.is-collapsed::after {
            content: '+';
            font-size: 8px;
            margin-left: 2px;
            opacity: 0.7;
        }
        /* 失败股票池 */
        .failed-pool {
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
            flex: 1;
            align-items: flex-start;
            align-content: flex-start;
            transition: all 0.2s ease;
        }
        .failed-pool.is-collapsed {
            flex-wrap: nowrap;
            overflow: hidden;
        }
        .failed-pool.is-collapsed .failed-stock {
            display: none;
        }
        .failed-pool.is-collapsed::before {
            content: attr(data-summary);
            font-size: 10px;
            color: #666;
            padding: 2px 6px;
        }
        .failed-stock {
            display: inline-flex;
            align-items: center;
            gap: 2px;
            padding: 1px 4px;
            border-radius: 3px;
            font-size: 10px;
            background: rgba(255,255,255,0.05);
            border: 1px solid rgba(255,100,100,0.2);
            color: #bbb;
            cursor: pointer;
        }
        .failed-stock:hover {
            background: rgba(255,100,100,0.1);
            border-color: rgba(255,100,100,0.4);
        }
        .failed-stock .zf {
            font-size: 9px;
            padding: 0 2px;
            border-radius: 2px;
        }
        .failed-stock .zf.up { color: #ff6b6b; }
        .failed-stock .zf.down { color: #4caf50; }
        .failed-stock .zf.flat { color: #888; }

        /* 状态修饰 */
        .is-dragon {
            border-color: var(--color-gold);
            color: var(--color-gold);
            background: rgba(255, 215, 0, 0.1);
        }

        .is-dead {
            text-decoration: line-through;
            color: #777;
            border-color: #333;
            opacity: 0.85;
        }

        .is-highlighted {
            border: 2px solid #ff0066 !important;
            background: rgba(255, 0, 102, 0.2) !important;
            box-shadow: 0 0 8px rgba(255, 0, 102, 0.5) !important;
        }

        /* 角色标签样式 */
        .role-tag {
            font-size: 9px;
            padding: 1px 4px;
            border-radius: 2px;
            margin-left: 4px;
            font-weight: normal;
        }

        /* 游资(柚子)净买标签（hm_detail_*.csv） */
        .hm-tags {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            margin-left: 4px;
            vertical-align: middle;
            flex-wrap: nowrap;
        }
        .hm-tag {
            font-size: 9px;
            padding: 1px 4px;
            border-radius: 2px;
            border: 1px solid rgba(255, 183, 77, 0.35);
            background: rgba(255, 183, 77, 0.10);
            color: #ffcc80;
            max-width: 72px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .hm-tag:hover {
            border-color: rgba(255, 183, 77, 0.6);
            background: rgba(255, 183, 77, 0.16);
            color: #ffd699;
        }


        /* 连板信号/倍数标签 */
        .sig-multi {
            border: 1px solid #9c27b0;
            background: rgba(156, 39, 176, 0.12);
            color: #e1bee7;
        }

        .sig-multi-first {
            border: 1px solid #ffd700;
            background: rgba(255, 215, 0, 0.12);
            color: #ffd700;
        }

        .sig-breakout {
            border: 1px solid #00e5ff;
            background: rgba(0, 229, 255, 0.12);
            color: #00e5ff;
        }

        .sig-daban {
            border: 1px solid #ff4d4d;
            background: rgba(255, 77, 77, 0.12);
            color: #ff4d4d;
        }


        .sig-relay2 {
            border: 1px solid #4caf50;
            background: rgba(76, 175, 80, 0.12);
            color: #66ff99;
        }


        .sig-firstseal {
            border: 1px solid #ff9800;
            background: rgba(255, 152, 0, 0.12);
            color: #ffcc80;
        }


        .sig-yao {
            border: 1px solid #9d4edd;
            background: rgba(157, 78, 221, 0.12);
            color: #d7b5ff;
        }

        .sig-resonance {
            border: 1px solid #ffeb3b;
            background: rgba(255, 235, 59, 0.12);
            color: #ffeb3b;
        }

        .sig-qibao {
            border: 1px solid #ff1744;
            background: rgba(255, 23, 68, 0.12);
            color: #ff1744;
        }


        .sig-huangpao {
            border: 1px solid #ffeb3b;
            background: rgba(255, 235, 59, 0.12);
            color: #ffeb3b;
        }

        .sig-yao2 {
            border: 1px solid #2ecc71;
            background: rgba(46, 204, 113, 0.12);
            color: #2ecc71;
        }

        .sig-fourgold {
            border: 1px solid #00e676;
            background: rgba(0, 230, 118, 0.12);
            color: #00e676;
        }

        .role-dragon {
            border: 1px solid #ffd700;
            background: linear-gradient(90deg, #332b00, #000);
            color: #ffd700;
            /* 【V3.2优化】移除小元素box-shadow提升性能 */
        }

        .role-starter {
            border: 1px solid #ff0066;
            background: linear-gradient(90deg, #330011, #000);
            color: #ff3388;
            /* 【V3.2优化】移除小元素box-shadow提升性能 */
        }

        /* 节点股标识 */
        .role-node {
            border: 1px solid #00ccff;
            background: rgba(0, 204, 255, 0.1);
            color: #00ccff;
        }

        /* 补涨股标识 */
        .role-followup {
            border: 1px solid #ff9900;
            background: rgba(255, 153, 0, 0.1);
            color: #ff9900;
        }

        /* 👑 市场总龙/太上皇 - 金光万丈（一将功成万骨枯）*/
        /* 【V3.2优化】总龙保留阴影（重要视觉标识）*/
        .role-king {
            border: 2px solid #fff;
            background: linear-gradient(135deg, #ffd700, #ffaa00, #ffd700);
            color: #000;
            font-weight: bold;
            box-shadow: 0 0 8px rgba(255, 215, 0, 0.6);
        }

        /* 💤 龙王盘整 - 金色虚线框（断板但威慑力犹存）*/
        .role-king-rest {
            border: 2px dashed #ffd700;
            background: #332b00;
            color: #ffd700;
            font-weight: bold;
            /* 【V3.2优化】移除次要阴影 */
        }

        /* 🐲 新周期龙 - 极其实在的红金 */
        .role-new-king,
        .tag-new-king {
            background: linear-gradient(45deg, #ff0000, #ff6600);
            border: 1px solid #fff;
            color: #fff;
            font-weight: bold;
            box-shadow: 0 0 6px rgba(255, 100, 0, 0.6);
        }


        /* 🚀 补涨龙 - 橙红警示（虽是当日最高但受历史天花板压制，空间有限）*/
        .role-supp-high {
            border: 2px solid #ff6347;
            background: linear-gradient(135deg, #331100, #4d1a00);
            color: #ff6347;
            font-weight: bold;
            /* 【V3.2优化】移除次要阴影 */
        }

        /* 🚀 补涨龙（死后版本）- 橙色系（老龙死后的补涨，空间中等）*/
        .role-supplement {
            border: 2px solid #ff9900;
            background: linear-gradient(135deg, #2b1a00, #4d2e00);
            color: #ff9900;
            font-weight: bold;
            /* 【V3.2优化】移除次要阴影 */
        }

        /* 🔶 过渡龙 - 暗橙灰（老龙死后但高度太低，只是过渡性质）*/
        .role-transition {
            border: 2px solid #cc7700;
            background: linear-gradient(135deg, #221100, #331a00);
            color: #cc7700;
            font-weight: normal;
            /* 【V3.2优化】移除次要阴影 */
        }

        /* 🌙 影生补涨龙 - 暗紫灰（生于老龙阴影下的跟风，篡位不正统）*/
        .role-shadow-born {
            border: 2px solid #8b7ba8;
            background: linear-gradient(135deg, #1a1520, #2a2030);
            color: #9d8bb5;
            font-weight: normal;
            /* 【V3.2优化】移除次要阴影 */
            font-style: italic;
            /* 斜体强调不正统 */
        }

        /* 👻 独食龙 - 幽灵紫/半透明 */
        .role-solo,
        .tag-solo {
            background: rgba(100, 0, 255, 0.1);
            border: 1px dashed #9933cc;
            color: #cc66ff;
            font-style: italic;
            /* 【V3.2优化】移除次要阴影 */
            position: relative;
        }

        .role-solo::before,
        .tag-solo::before {
            content: '虚高';
            position: absolute;
            right: -2px;
            top: -10px;
            font-size: 8px;
            background: #9933cc;
            color: #fff;
            padding: 1px 3px;
            border-radius: 2px;
        }


        /* 🎯 冰点转折·先锋 */
        .tag-node-point,
        .role-node-point {
            background: linear-gradient(135deg, #ff00ff, #aa00ff);
            border: 1px solid #fff;
            color: #fff;
            font-weight: bold;
            /* 【V3.2优化】移除次要阴影 */
        }


        /* 🛡️ 伴生跟风 - 暗灰色（高位但非最高板）*/
        .role-suppressed {
            border: 1px solid #555;
            background: #2c3e50;
            color: #ffffff;
            font-style: italic;
        }

        /* 🚀 低位补涨 - 亮红色希望 */
        .role-new-supp {
            border: 1px solid #ff4d4d;
            background: #2b0000;
            color: #ff4d4d;
            font-weight: bold;
        }

        /* 🔄 普通反包 - 紫色 */
        .role-reversal {
            border: 1px solid #9b59b6;
            background: #2c1a30;
            color: #d7bde2;
        }

        /* 🔥 助攻补涨 - 橙红色（龙头强，我喝汤）*/
        .role-assist {
            border: 1px solid #ff6666;
            background: #2a1a1a;
            color: #ff9999;
        }

        /* 🌰 竞争种子 - 绿色闪烁（龙头死，我上位）*/
        .role-seed {
            border: 1px solid #00cc66;
            background: #0f2b1d;
            color: #00cc66;
            font-weight: bold;
        }

        .role-mid-army {
            border: 1px solid #9b59b6;
            background: #2c1a30;
            color: #d7bde2;
            font-weight: bold;
        }

        .role-supplement {
            border: 1px solid #ff4d4d;
            background: #301515;
            color: #ff4d4d;
        }

        .role-follower {
            border: 1px solid #555;
            background: #222;
            color: #ffffff;
        }

        .role-dead {
            text-decoration: line-through;
            color: #888;
            border: 1px dashed #333;
        }


        /* ========== 数字链条复盘 (ICU) ========== */
        .chain-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.75);
            z-index: 999;
            display: flex;
            justify-content: center;
            align-items: flex-start;
            padding: 20px;
            backdrop-filter: blur(2px);
        }

        .chain-panel {
            width: 95%;
            height: 90%;
            background: #0a0a0a;
            border: 1px solid #222;
            border-radius: 8px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
            display: flex;
            flex-direction: column;
            overflow: hidden;
        }

        .chain-header {
            height: 42px;
            background: #111;
            border-bottom: 1px solid #222;
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 0 12px;
            font-weight: bold;
        }

        .chain-scroll {
            flex: 1;
            overflow: auto;
            display: flex;
            gap: 10px;
            padding: 10px;
        }

        .chain-day {
            min-width: 340px;
            background: #0f0f0f;
            border: 1px solid #1f1f1f;
            border-radius: 6px;
            display: flex;
            flex-direction: column;
            overflow: hidden;
        }

        .chain-day-header {
            padding: 8px 10px;
            background: #161616;
            border-bottom: 1px solid #222;
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-weight: bold;
            font-size: 13px;
        }

        .chain-heaven {
            padding: 8px;
            background: linear-gradient(180deg, rgba(255, 50, 50, 0.08) 0%, transparent 100%);
            border-bottom: 1px solid #111;
        }

        .chain-ladder-row {
            display: flex;
            align-items: center;
            margin-bottom: 4px;
        }

        .chain-board {
            width: 24px;
            height: 18px;
            background: #222;
            color: #888;
            border-radius: 3px;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-right: 6px;
            font-size: 11px;
        }

        .chain-tag {
            padding: 2px 6px;
            background: #1c1c1c;
            border: 1px solid #2a2a2a;
            color: #ddd;
            font-size: 11px;
            border-radius: 3px;
            margin-right: 4px;
        }

        .chain-icu {
            padding: 8px;
            background: #070b08;
        }

        .chain-icu-head {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 6px;
        }

        .chain-icu-avg {
            font-family: 'Consolas', monospace;
            font-weight: bold;
            font-size: 12px;
        }

        .chain-icu-avg.bad {
            color: #00ff80;
        }

        .chain-icu-avg.good {
            color: #ff3333;
        }

        .chain-icu-avg.neutral {
            color: #888;
        }

        .chain-patient {
            background: #0d0d0d;
            border: 1px solid #1f1f1f;
            border-radius: 4px;
            margin-bottom: 6px;
            padding: 6px;
        }

        .chain-p-top {
            display: flex;
            justify-content: space-between;
            font-size: 12px;
            color: #ccc;
            margin-bottom: 4px;
        }

        .chain-box-row {
            display: flex;
            align-items: center;
            gap: 2px;
            flex-wrap: wrap;
        }

        .chain-box {
            width: 48px;
            min-width: 48px;
            height: 18px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 11px;
            font-family: 'Consolas', monospace;
            font-weight: bold;
            border-radius: 2px;
            padding: 0 4px;
        }

        .chain-box.today {
            border: 1px solid #fff;
        }

        .chain-arrow {
            font-size: 10px;
            color: #333;
        }

        .c-limit-down {
            background: #00ff80;
            color: #000;
        }

        .c-drop {
            background: #1a3326;
            color: #00ff80;
            border: 1px solid #1a3326;
        }

        .c-flat {
            background: #222;
            color: #666;
        }

        .c-rise {
            background: #5c2222;
            color: #ff3333;
            border: 1px solid #5c2222;
        }

        .c-limit-up {
            background: #ff3333;
            color: #fff;
        }

        .c-na {
            background: #333;
            color: #666;
            border: 1px dashed #444;
            font-size: 10px;
        }

        .chain-status {
            margin-top: 4px;
            font-size: 11px;
            text-align: right;
            color: #666;
        }

        .btn-chain {
            background: #222;
            color: #aaa;
            border: 1px solid #444;
            padding: 2px 8px;
            cursor: pointer;
        }


        /* ============ 统一信号条样式 ============ */
        .unified-signal-bar {
            background: linear-gradient(135deg, #1a1a1a 0%, #0e0e0e 100%);
            border: 1px solid #333;
            border-radius: 8px;
            padding: 12px 16px;
            margin: 10px 0;
            box-shadow: 0 2px 8px rgba(0,0,0,0.3);
        }
        .unified-signal-content {
            display: flex;
            align-items: center;
            gap: 20px;
        }
        .signal-main {
            display: flex;
            align-items: center;
            gap: 12px;
        }
        .signal-emoji {
            font-size: 28px;
            line-height: 1;
        }
        .signal-info {
            display: flex;
            flex-direction: column;
            gap: 4px;
        }
        .signal-title {
            font-size: 16px;
            font-weight: bold;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .signal-level-badge {
            font-size: 10px;
            padding: 2px 6px;
            border-radius: 3px;
            background: rgba(255,255,255,0.1);
        }
        .signal-suggestion {
            font-size: 12px;
            color: #aaa;
        }
        .signal-reasons {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            flex: 1;
        }
        .signal-reason-tag {
            font-size: 11px;
            padding: 3px 8px;
            border-radius: 4px;
            background: rgba(255,255,255,0.08);
            border: 1px solid rgba(255,255,255,0.15);
            white-space: nowrap;
        }
        .signal-score {
            font-size: 13px;
            font-weight: bold;
            padding: 4px 10px;
            border-radius: 4px;
            background: rgba(255,255,255,0.1);
            min-width: 60px;
            text-align: center;
        }

        /* ICU 内嵌区块 (情绪六沙盘内联显示) */
        .icu-inline {
            margin-top: 8px;
            padding: 8px;
            background: #0e0e0e;
            border: 1px solid #222;
            border-radius: 6px;
            /* 【V3.3修复】防止flex拉伸 */
            flex-shrink: 0;
            flex-grow: 0;
            max-width: 100%;  /* 不超过父容器 */
        }

        .icu-inline-head {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 6px;
            padding: 4px;
            border-radius: 4px;
            transition: all 0.15s ease;
        }

        .icu-inline-head:hover {
            background: rgba(0, 255, 128, 0.1);
            box-shadow: 0 0 8px rgba(0, 255, 128, 0.3);
        }

        .icu-inline-head:active {
            background: rgba(0, 255, 128, 0.2);
            transform: scale(0.98);
        }

        .icu-inline-title {
            font-size: 12px;
            color: #aaa;
            font-weight: bold;
        }

        .icu-inline-avg {
            font-family: 'Consolas', monospace;
            font-size: 12px;
        }

        .icu-inline-empty {
            color: #444;
            font-size: 12px;
            text-align: center;
            padding: 10px 0;
        }

        .icu-inline .chain-patient {
            margin-bottom: 8px;
        }

        .icu-inline .chain-patient:last-child {
            margin-bottom: 0;
        }

        .icu-compact {
            background: #0d0d0d;
            border: 1px solid #222;
            border-radius: 4px;
            padding: 6px;
            display: flex;
            flex-direction: row;  /* 改为横向布局 */
            flex-wrap: nowrap;  /* 防止换行 */
            gap: 12px;  /* 左右列间距 */
            width: 100%;  /* 占满父容器宽度（现在是680px） */
        }

        /* ICU双列布局：左列（急诊室）和右列（住院部）*/
        .icu-column-left,
        .icu-column-right {
            flex: 1 1 50%;  /* 各占50%宽度 */
            min-width: 0;  /* 允许收缩 */
            display: flex;
            flex-direction: column;
            gap: 4px;
        }

        .icu-column-left {
            border-right: 2px solid #444;
            padding-right: 8px;
        }

        .icu-column-right {
            padding-left: 8px;
        }

        .icu-column-title {
            font-size: 10px;
            font-weight: bold;
            margin-bottom: 6px;
            padding-bottom: 4px;
            border-bottom: 1px solid #333;
        }

        /* 刚转入ward的高亮区域 */
        .ward-just-transferred {
            background: rgba(255, 215, 0, 0.08);
            padding: 4px;
            border-radius: 4px;
            margin-bottom: 6px;
            border-left: 2px solid #ffd700;
        }

        .ward-section {
            margin-bottom: 6px;
        }

        .ward-section-title {
            font-size: 8px;
            color: #888;
            margin-bottom: 2px;
        }

        .icu-compact-row {
            display: flex;
            align-items: center;
            gap: 4px;  /* 从6px缩小到4px */
            flex-wrap: nowrap;
            font-size: 10px;  /* 从11px缩小到10px */
            color: #ccc;
            white-space: nowrap;
        }

        .icu-name {
            font-weight: bold;
            color: #fff;
            display: inline-block;
            min-width: 65px;  /* 从48px大幅增加到65px */
            max-width: 85px;  /* 从65px增加到85px */
            font-size: 10px;
            overflow: hidden;
            text-overflow: ellipsis;  /* 超长显示... */
        }

        .icu-peak {
            color: #777;
            font-size: 9px;
            min-width: 42px;  /* 从36px增加到42px */
        }

        .hb-failed-row {
            display: flex;
            align-items: center;
            gap: 4px;
            flex-wrap: nowrap;
            min-width: 0;
            color: #ccc;
            white-space: nowrap;
            margin: 2px 0;
            font-size: 10px;
            line-height: 1.1;
        }

        .hb-failed-name {
            display: inline-flex;
            align-items: center;
            flex: 0 0 4em;
            min-width: 4em;
            max-width: 4em;
            color: #ff4d4d;
            font-weight: bold;
            overflow: hidden;
            font-size: 10px;
        }

        .hb-failed-name .hover-stock-name {
            display: inline-block;
            width: 100%;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            color: inherit;
        }

        .hb-failed-date {
            flex: 0 0 6.2em;
            min-width: 6.2em;
            max-width: 6.2em;
            color: #666;
            font-size: 8px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        .hb-failed-code {
            flex: 0 0 6ch;
            min-width: 6ch;
            color: #888;
            font-size: 8px;
            font-family: 'Consolas', monospace;
        }

        .hb-failed-peak {
            flex: 0 0 4em;
            min-width: 4em;
            color: #777;
            font-size: 9px;
        }

        .hb-failed-theme {
            flex: 0 0 6em;
            min-width: 6em;
            max-width: 6em;
            color: #9b59b6;
            font-size: 8px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        .hb-failed-values {
            flex: 1 1 auto;
            min-width: 0;
        }

        .hb-failed-values .icu-val {
            width: 44px;
            min-width: 44px;
            font-size: 9px;
        }

        .hb-failed-risk {
            flex: 0 0 auto;
            font-size: 7px;
            padding: 1px 4px;
            border-radius: 2px;
            white-space: nowrap;
        }

        .hb-failed-risk.level-big {
            background: rgba(255, 102, 0, 0.2);
            color: #ff6600;
            border: 1px solid rgba(255, 102, 0, 0.3);
        }

        .hb-failed-risk.level-extreme {
            background: rgba(255, 51, 0, 0.2);
            color: #ff3300;
            border: 1px solid rgba(255, 51, 0, 0.3);
        }

        .hb-failed-risk.level-nuclear {
            background: rgba(157, 78, 221, 0.2);
            color: #9d4edd;
            border: 1px solid rgba(157, 78, 221, 0.3);
        }

        /* 【V3.2】大面回撤标记样式 */
        .icu-bigface {
            font-size: 10px;
            padding: 1px 3px;
            border-radius: 2px;
            background: rgba(255, 102, 0, 0.15);
            margin-left: 2px;
            white-space: nowrap;
            /* 【V3.3修复】统一图标大小 */
            line-height: 1;
        }

        /* ==================== 核按钮样式 ==================== */
        .nuclear-section {
            margin-top: 8px;
            padding: 6px;
            background: rgba(255, 0, 0, 0.05);
            border: 1px solid rgba(255, 0, 0, 0.2);
            border-radius: 6px;
        }
        .nuclear-header {
            font-size: 10px;
            color: #ff4d4d;
            font-weight: bold;
            margin-bottom: 4px;
            display: flex;
            align-items: center;
            gap: 4px;
        }
        .nuclear-row {
            display: flex;
            align-items: center;
            gap: 6px;
            font-size: 11px;
            color: #ccc;
            padding: 2px 0;
            border-bottom: 1px dashed rgba(255,255,255,0.05);
        }
        .nuclear-row:last-child { border-bottom: none; }
        .nuclear-name {
            font-weight: bold;
            color: #ff6b6b;
            min-width: 64px;
        }
        .nuclear-tag {
            font-size: 9px;
            padding: 1px 4px;
            border-radius: 2px;
            background: rgba(255,77,77,0.2);
            color: #ff4d4d;
        }
        .nuclear-tag.extreme {
            background: linear-gradient(135deg, rgba(255,0,0,0.4), rgba(139,0,0,0.4));
            color: #ff0000;
            font-weight: bold;
            animation: nuclear-pulse 1s infinite;
        }
        .nuclear-tag.severe {
            background: rgba(255,69,0,0.3);
            color: #ff4500;
        }
        @keyframes nuclear-pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.6; }
        }
        .nuclear-loss {
            font-size: 10px;
            color: #00ff00;
            font-weight: bold;
        }
        .nuclear-total {
            font-size: 9px;
            color: #888;
        }
        /* ICU中的核按钮标记 */
        .icu-nuclear-badge {
            font-size: 9px;
            padding: 1px 4px;
            border-radius: 3px;
            background: linear-gradient(135deg, rgba(255,0,0,0.3), rgba(139,0,0,0.3));
            color: #ff4d4d;
            margin-left: 4px;
            font-weight: bold;
        }
        /* 炸板预警 */
        .broken-warning-section {
            margin-top: 6px;
            padding: 4px 6px;
            background: rgba(255, 165, 0, 0.08);
            border: 1px dashed rgba(255, 165, 0, 0.3);
            border-radius: 4px;
        }
        .broken-warning-header {
            font-size: 9px;
            color: #ffa500;
            margin-bottom: 2px;
        }
        .broken-warning-item {
            font-size: 10px;
            color: #ccc;
            display: inline-block;
            margin-right: 8px;
        }
        .broken-warning-item .name { color: #ffa500; font-weight: bold; }

        /* ==================== 指数技术面面板 ==================== */
        .index-tech-panel {
            margin-top: 8px;
            padding: 8px;
            background: rgba(52,152,219,0.08);
            border: 1px solid rgba(52,152,219,0.25);
            border-radius: 6px;
        }
        .index-tech-header {
            display: flex;
            align-items: center;
            gap: 8px;
            margin-bottom: 6px;
            font-size: 10px;
        }
        .index-trend-tag {
            padding: 2px 6px;
            border-radius: 3px;
            font-weight: bold;
        }
        .index-trend-tag.bullish { background: rgba(46,204,113,0.3); color: #2ecc71; }
        .index-trend-tag.bearish { background: rgba(231,76,60,0.3); color: #e74c3c; }
        .index-trend-tag.shock { background: rgba(149,165,166,0.3); color: #95a5a6; }
        .index-phase-tag {
            padding: 2px 6px;
            border-radius: 3px;
            font-size: 9px;
        }
        .index-phase-tag.pro_cyclical { background: rgba(255,215,0,0.2); color: #ffd700; }
        .index-phase-tag.counter_cyclical { background: rgba(155,89,182,0.2); color: #9b59b6; }
        .index-phase-tag.weak_pro { background: rgba(230,126,34,0.2); color: #e67e22; }
        .index-position-tag {
            padding: 2px 6px;
            border-radius: 3px;
            font-size: 9px;
        }
        .index-position-tag.high { background: rgba(231,76,60,0.2); color: #e74c3c; }
        .index-position-tag.low { background: rgba(46,204,113,0.2); color: #2ecc71; }
        .index-position-tag.mid { background: rgba(149,165,166,0.2); color: #95a5a6; }
        /* 压力支撑位 */
        .index-levels {
            display: flex;
            gap: 12px;
            font-size: 9px;
            margin-bottom: 4px;
        }
        .index-levels-col { flex: 1; }
        .index-levels-title {
            font-size: 9px;
            color: #888;
            margin-bottom: 2px;
        }
        .index-level-item {
            display: flex;
            justify-content: space-between;
            padding: 1px 0;
            color: #ccc;
        }
        .index-level-item.resistance .level-price { color: #e74c3c; }
        .index-level-item.support .level-price { color: #2ecc71; }
        .level-dist { color: #888; font-size: 8px; }
        /* 转折信号 */
        .index-signals {
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
            margin-top: 4px;
        }
        .index-signal-tag {
            font-size: 9px;
            padding: 2px 5px;
            border-radius: 3px;
        }
        .index-signal-tag.warning { background: rgba(231,76,60,0.2); color: #e74c3c; }
        .index-signal-tag.opportunity { background: rgba(46,204,113,0.2); color: #2ecc71; }
        .index-signal-tag.bullish { background: rgba(255,215,0,0.2); color: #ffd700; }
        .index-signal-tag.bearish { background: rgba(155,89,182,0.2); color: #9b59b6; }

        /* 情绪背离面板 */
        .divergence-panel {
            margin-top: 6px;
            padding: 6px;
            border-radius: 4px;
            font-size: 10px;
        }
        .divergence-panel.bottom_divergence {
            background: rgba(46,204,113,0.1);
            border: 1px solid rgba(46,204,113,0.3);
        }
        .divergence-panel.top_divergence {
            background: rgba(231,76,60,0.1);
            border: 1px solid rgba(231,76,60,0.3);
        }
        .divergence-signal { font-weight: bold; margin-right: 8px; }
        .divergence-desc { color: #aaa; font-size: 9px; }

        /* 龙头抗跌标签 */
        .dragon-test-tag {
            font-size: 8px;
            padding: 1px 4px;
            border-radius: 2px;
            margin-left: 3px;
        }
        .dragon-test-tag.true_dragon {
            background: linear-gradient(135deg, rgba(255,215,0,0.3), rgba(255,69,0,0.3));
            color: #ffd700;
            font-weight: bold;
        }
        .dragon-test-tag.core {
            background: rgba(46,204,113,0.25);
            color: #2ecc71;
        }
        .dragon-test-tag.follower {
            background: rgba(149,165,166,0.2);
            color: #95a5a6;
        }

        /* 涨停质量标签 */
        .limit-quality-tag {
            font-size: 8px;
            padding: 1px 4px;
            border-radius: 2px;
            margin-left: 2px;
        }
        .limit-quality-tag.quality-S {
            background: linear-gradient(135deg, rgba(255,215,0,0.4), rgba(255,140,0,0.4));
            color: #ffd700;
            font-weight: bold;
        }
        .limit-quality-tag.quality-A {
            background: rgba(46,204,113,0.3);
            color: #2ecc71;
        }
        .limit-quality-tag.quality-B {
            background: rgba(52,152,219,0.25);
            color: #3498db;
        }
        .limit-quality-tag.quality-C {
            background: rgba(149,165,166,0.2);
            color: #95a5a6;
        }
        .limit-quality-tag.quality-D {
            background: rgba(231,76,60,0.2);
            color: #e74c3c;
        }
        /* 断板风险标签 */
        .break-risk-tag {
            font-size: 8px;
            padding: 1px 4px;
            border-radius: 2px;
            margin-left: 2px;
        }
        .break-risk-tag.risk-high {
            background: rgba(231,76,60,0.3);
            color: #e74c3c;
            animation: riskPulse 1.5s infinite;
        }
        .break-risk-tag.risk-medium {
            background: rgba(230,126,34,0.25);
            color: #e67e22;
        }
        .break-risk-tag.risk-low {
            background: rgba(46,204,113,0.2);
            color: #2ecc71;
        }
        @keyframes riskPulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.6; }
        }

        /* 连板概率标签 */
        .lb-predict-tag {
            font-size: 8px;
            padding: 1px 5px;
            border-radius: 3px;
            margin-left: 3px;
            font-weight: bold;
        }
        .lb-predict-tag.grade-S {
            background: linear-gradient(135deg, rgba(255,215,0,0.5), rgba(255,69,0,0.4));
            color: #ffd700;
            box-shadow: 0 0 4px rgba(255,215,0,0.5);
        }
        .lb-predict-tag.grade-A {
            background: rgba(46,204,113,0.35);
            color: #2ecc71;
        }
        .lb-predict-tag.grade-B {
            background: rgba(52,152,219,0.3);
            color: #3498db;
        }
        .lb-predict-tag.grade-C {
            background: rgba(149,165,166,0.25);
            color: #95a5a6;
        }
        .lb-predict-tag.grade-D {
            background: rgba(231,76,60,0.25);
            color: #e74c3c;
        }

        .icu-values {
            display: flex;
            gap: 3px;  /* 从2px增加到3px */
            flex-wrap: nowrap;
            overflow: hidden;
        }

        /* ⭐ 自选观察：允许涨幅格子“更多”后按10个/行换行展示（不影响其它icu-values） */
        .hbw-row {
            align-items: flex-start;
        }

        .hbw-values {
            display: flex;
            flex-direction: column;
            gap: 3px;
            flex: 1 1 auto;
            overflow: visible;
        }

        .hbw-values-row {
            display: flex;
            gap: 3px;
            flex-wrap: nowrap;
            overflow: visible;
        }

        .icu-val {
            padding: 1px 3px;
            border-radius: 2px;
            font-family: 'Consolas', monospace;
            font-size: 10px;  /* 从9px恢复到10px，更清晰 */
            border: 1px solid #222;
            width: 50px;  /* 从44px增加到50px */
            min-width: 50px;
            text-align: center;
            white-space: nowrap;
        }

        .icu-val.today {
            border-color: #fff;
            position: relative;
            box-shadow: 0 0 0 1px rgba(255,255,255,0.25) inset, 0 0 8px rgba(255,255,255,0.12);
            font-weight: bold;
        }

        /* 让“今日”更醒目，避免把历史涨幅误认为今日 */
        .icu-val.today::before {
            content: '今';
            position: absolute;
            left: 2px;
            top: -1px;
            font-size: 9px;
            opacity: 0.85;
        }

        /* ICU链条涨跌幅颜色样式（参考ICU全周期追踪系统设计） */
        .chain-box {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 50px;  /* 与.icu-val保持一致 */
            min-width: 50px;
            height: 20px;  /* 从18px增加到20px */
            border-radius: 2px;
            font-size: 10px;  /* 从9px增加到10px */
            font-family: 'Arial', 'Consolas', monospace;
            font-weight: bold;
            color: #eee;
            opacity: 0.7;
            /* 历史数据半透明 */
        }

        /* 跌停（亮绿色）：≤-9% */
        .chain-box.c-limit-down {
            background: #00e676;
            color: #000;
        }

        /* 下跌（暗绿色）：-9% ~ 0% */
        .chain-box.c-drop {
            background: #1a4d33;
            color: #00e676;
            border: 1px solid #1a4d33;
        }

        /* 平盘（灰色）：0% */
        .chain-box.c-flat {
            background: #333;
            color: #888;
        }

        /* 修复/上涨（暗红色）：0% ~ +9% */
        .chain-box.c-rise {
            background: #4d1a1a;
            color: #ff3333;
            border: 1px solid #4d1a1a;
        }

        /* 反包/涨停（亮红色）：≥+9% */
        .chain-box.c-limit-up {
            background: #ff3333;
            color: #fff;
        }

        /* 今日数据：完全不透明+白色边框+高亮 */
        .chain-box.today {
            opacity: 1;
            border: 1px solid #fff;
            transform: scale(1.05);
            box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
            z-index: 1;
        }

        .chain-arrow {
            display: inline-block;
            margin: 0 4px;
            color: #444;
            font-size: 14px;
        }

        .chain-p-top {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 4px;
            font-size: 12px;
            color: #ccc;
        }

        .chain-box-row {
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            gap: 2px;
            margin-bottom: 4px;
        }

        .chain-status {
            font-size: 10px;
            margin-top: 2px;
        }

        /* ==================== 节点特殊标识 (起涨点含金量) ==================== */

        /* 🌰 补涨节点 - 绿色荧光 (老龙死，新龙生) */
        .node-supp {
            border: 2px dashed #00cc66 !important;
            background: rgba(0, 204, 102, 0.15) !important;
            position: relative;
        }

        .node-supp::after {
            content: '补涨点';
            position: absolute;
            right: -2px;
            top: -10px;
            font-size: 9px;
            background: #00cc66;
            color: #000;
            padding: 1px 4px;
            border-radius: 3px;
            font-weight: bold;
            /* 【V3.2优化】移除小标签阴影 */
        }

        /* ✨ 共振节点 - 红金边框 (天时地利人和) */
        .node-res {
            border: 2px solid #ff4d4d !important;
            background: linear-gradient(135deg, rgba(255, 77, 77, 0.15), rgba(255, 170, 0, 0.1)) !important;
            position: relative;
        }

        .node-res::after {
            content: '共振点';
            position: absolute;
            right: -2px;
            top: -10px;
            font-size: 9px;
            background: linear-gradient(90deg, #ff4d4d, #ffaa00);
            color: #fff;
            padding: 1px 4px;
            border-radius: 3px;
            font-weight: bold;
            /* 【V3.2优化】移除小标签阴影 */
        }


        /* 🛡️ 跟风节点 - 灰色虚线 (地位低，给大哥抬轿) */
        .node-follow {
            border: 1px dashed #666 !important;
            background: rgba(102, 102, 102, 0.1) !important;
            opacity: 0.85;
            position: relative;
        }

        .node-follow::after {
            content: '跟风点';
            position: absolute;
            right: -2px;
            top: -10px;
            font-size: 9px;
            background: #666;
            color: #ccc;
            padding: 1px 4px;
            border-radius: 3px;
        }

        /* ⚡ 转折节点票 (Critical) - 紫金渐变强光 (市场情绪转折点的先锋) */
        .node-turning-critical {
            border: 3px solid #9d4edd !important;
            background: linear-gradient(135deg, rgba(157, 78, 221, 0.25), rgba(255, 215, 0, 0.15)) !important;
            position: relative;
        }

        .node-turning-critical::after {
            content: '⚡转折点';
            position: absolute;
            right: -2px;
            top: -12px;
            font-size: 10px;
            background: linear-gradient(90deg, #9d4edd, #ffd700);
            color: #fff;
            padding: 2px 5px;
            border-radius: 4px;
            font-weight: bold;
            /* 【V3.2优化】移除小标签阴影 */
            text-shadow: 0 0 3px rgba(0, 0, 0, 0.8);
        }


        /* ✨ 转折节点票 (Strong) - 紫色荧光 (市场情绪转折点的先锋) */
        .node-turning-strong {
            border: 2px solid #a855f7 !important;
            background: linear-gradient(135deg, rgba(168, 85, 247, 0.2), rgba(217, 70, 239, 0.1)) !important;
            position: relative;
        }

        .node-turning-strong::after {
            content: '✨转折点';
            position: absolute;
            right: -2px;
            top: -11px;
            font-size: 9px;
            background: linear-gradient(90deg, #a855f7, #d946ef);
            color: #fff;
            padding: 1px 4px;
            border-radius: 3px;
            font-weight: bold;
            /* 【V3.2优化】移除小标签阴影 */
        }


        /* 突破信号标签样式 */
        .st-tag span {
            font-weight: bold;
            text-shadow: 0 0 3px rgba(255, 255, 255, 0.3);
        }

        /* ==================== 🎨 题材展示分层优化 (一超多强) ==================== */

        /* 通用题材卡片容器 */
        .theme-card {
            background: #1a1a1a;
            border: 1px solid #333;
            border-radius: 4px;
            margin-bottom: 4px;
            overflow: hidden;
            transition: all 0.2s ease;
            /* 【V3.2修复】防止flex拉伸 */
            flex-shrink: 0;
            flex-grow: 0;
        }

        /* 题材高亮样式 */
        .is-theme-highlighted {
            border: 2px solid #00ffff !important;
            background: rgba(0, 255, 255, 0.15) !important;
            box-shadow: 0 0 10px rgba(0, 255, 255, 0.6) !important;
        }

        /* 🌟 模式A：主线旗舰卡 (只给排序第一的题材用) */
        .theme-card.is-hero {
            background: linear-gradient(160deg, #2a1a1a 0%, #1a1a1a 60%);
            border: 1px solid #ff4d4d;
            /* 【V3.2优化】简化阴影 */
            box-shadow: 0 2px 6px rgba(255, 77, 77, 0.1);
            margin-bottom: 12px;
            margin-top: 4px;
            border-radius: 6px;
        }
        .is-hero .th-name {
            font-size: 15px !important;
            color: #ff9999 !important;
            text-shadow: 0 0 5px rgba(255, 0, 0, 0.5);
        }
        .is-hero .th-header-new {
            padding: 8px 10px;
            background: rgba(255, 50, 50, 0.05);
            border-bottom: 1px solid rgba(255, 50, 50, 0.2);
        }
        .is-hero .th-sub-row { display: flex !important; }

        /* 🏷 题材排名标签 */
        .th-rank-badge {
            display: inline-block;
            padding: 1px 4px;
            font-size: 9px;
            font-weight: bold;
            border-radius: 3px;
            background: #333;
            color: #888;
            margin-right: 4px;
        }
        .th-rank-badge.is-top {
            background: linear-gradient(135deg, #ff6b6b, #ee5a24);
            color: #fff;
            text-shadow: 0 1px 2px rgba(0,0,0,0.3);
        }
        .is-hero .th-rank-badge {
            font-size: 10px;
            padding: 2px 6px;
        }

        /* 主线类型标记 */
        .mainline-type-badge {
            font-size: 9px;
            padding: 1px 4px;
            border-radius: 3px;
            margin-left: 4px;
        }
        .mainline-type-badge.type-mainline {
            background: linear-gradient(135deg, #ff4757, #ff6348);
            color: #fff;
            font-weight: bold;
        }
        .mainline-type-badge.type-secondary {
            background: linear-gradient(135deg, #3742fa, #5352ed);
            color: #fff;
        }
        .mainline-type-badge.type-branch {
            background: linear-gradient(135deg, #ffa502, #eccc68);
            color: #333;
        }
        .mainline-type-badge.type-minor {
            background: #666;
            color: #ddd;
        }

        /* 📊 题材评级标签 */
        .theme-eval-badge {
            display: inline-flex;
            align-items: center;
            gap: 3px;
            font-size: 9px;
            padding: 1px 4px;
            border-radius: 3px;
            margin-left: 4px;
        }
        .eval-tier {
            font-weight: bold;
            padding: 1px 3px;
            border-radius: 2px;
        }
        .eval-tier.tier-1 { background: #ff4757; color: #fff; }
        .eval-tier.tier-2 { background: #ff6348; color: #fff; }
        .eval-tier.tier-3 { background: #ffa502; color: #333; }
        .eval-tier.tier-4 { background: #666; color: #ddd; }
        .eval-grade {
            font-weight: bold;
            padding: 1px 3px;
            border-radius: 2px;
        }
        .eval-grade.grade-S { background: linear-gradient(135deg, #ff4757, #ff0000); color: #fff; }
        .eval-grade.grade-A { background: linear-gradient(135deg, #ff6348, #ff9500); color: #fff; }
        .eval-grade.grade-B { background: #3498db; color: #fff; }
        .eval-grade.grade-C { background: #95a5a6; color: #fff; }
        .eval-grade.grade-D { background: #444; color: #999; }
        .eval-signal {
            font-size: 8px;
            padding: 1px 3px;
            border-radius: 2px;
        }
        .eval-signal.signal-mainline { background: #ff4757; color: #fff; font-weight: bold; }
        .eval-signal.signal-rotation { background: #3498db; color: #fff; }
        .eval-signal.signal-oneday { background: #555; color: #aaa; }
        .eval-phase {
            font-size: 8px;
            color: #888;
        }

        /* 📊 题材层级标签（新版 - 直接使用API tier数据） */
        .theme-tier-badge {
            display: inline-flex;
            align-items: center;
            gap: 3px;
            font-size: 9px;
            padding: 1px 4px;
            border-radius: 3px;
            margin-left: 4px;
            cursor: help;
        }
        .tier-level {
            font-weight: bold;
            padding: 1px 4px;
            border-radius: 2px;
            font-size: 8px;
        }
        .tier-level.tier-1 { background: #ff4757; color: #fff; }
        .tier-level.tier-2 { background: #ffa502; color: #333; }
        .tier-level.tier-3 { background: #3498db; color: #fff; }
        .tier-level.tier-4 { background: #666; color: #ddd; }
        .tier-name {
            font-weight: bold;
            font-size: 9px;
        }
        .tier-duration {
            font-size: 8px;
            color: #888;
            margin-left: 2px;
        }

        /* 📦 梯队分布样式 */
        .th-ladder-dist {
            margin-top: 6px;
            border-top: 1px dashed rgba(255,255,255,0.1);
            padding-top: 6px;
        }
        .th-board-row {
            display: flex;
            align-items: flex-start;
            flex-wrap: wrap;
            margin-bottom: 3px;
            gap: 2px;
        }
        .th-board-label {
            font-size: 10px;
            color: #ff9900;
            font-weight: bold;
            min-width: 28px;
            flex-shrink: 0;
        }
        .th-board-stocks {
            display: flex;
            flex-wrap: wrap;
            gap: 3px;
        }

        /* 📦 模式B：轮动紧凑卡 (给后面的题材用) */
        .theme-card.is-compact {
            border-left: 3px solid #444;
            opacity: 0.95;
            border-radius: 2px;
        }
        .is-compact .th-header-new {
            padding: 3px 6px;
            min-height: 24px;
            display: grid;
            grid-template-columns: 90px 1fr auto;
            align-items: center;
            gap: 6px;
        }
        .is-compact .th-left { display: contents; }
        .is-compact .th-title-row { grid-column: 1; overflow: hidden; }
        .is-compact .th-sub-row { display: none !important; }
        .is-compact .th-name { font-size: 11px; }

        /* 紧凑模式中间龙头预览区 */
        .compact-preview-area {
            grid-column: 2;
            display: flex;
            align-items: center;
            gap: 4px;
            overflow: hidden;
        }

        /* 动态左侧边框颜色 */
        .theme-card.th-rot.is-compact { border-left-color: #3498db; }
        .theme-card.th-new.is-compact { border-left-color: #00e676; }
        .theme-card.th-main.is-compact { border-left-color: #ff6b6b; }

        /* 展开后样式 */
        .theme-card.is-open.is-compact {
            margin-bottom: 6px;
            border-color: #555;
            /* 【V3.2优化】简化阴影 */
            box-shadow: 0 2px 8px rgba(0,0,0,0.3);
            opacity: 1;
        }

        /* 龙头微缩标签 */
        .dragon-micro-tag {
            font-size: 10px;
            background: #2a2a2a;
            border: 1px solid #444;
            color: #bbb;
            padding: 1px 4px;
            border-radius: 2px;
            white-space: nowrap;
        }
        .dragon-micro-tag.is-king {
            border-color: #ffd700;
            color: #ffd700;
            background: rgba(255, 215, 0, 0.08);
        }

        /* 2. 头部区域：分为左右两部分 */
        .th-header-new {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 6px 8px;
            cursor: pointer;
            min-height: 32px;
            transition: all 0.15s ease;
            user-select: none;
        }

        .th-header-new:hover {
            background: rgba(255, 255, 255, 0.03);
        }

        .th-left {
            display: flex;
            flex-direction: column;
            gap: 2px;
            flex: 1;
            min-width: 0;
        }

        .th-title-row {
            display: flex;
            align-items: center;
            gap: 6px;
        }

        .th-name {
            font-size: 13px;
            font-weight: bold;
            color: #eee;
            white-space: nowrap;
        }

        /* 身份标签 (主线/轮动) */
        .th-identity-badge {
            font-size: 9px;
            padding: 1px 4px;
            border-radius: 3px;
            font-weight: normal;
            background: #333;
            color: #aaa;
            border: 1px solid #444;
        }

        .th-sub-row {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 9px;
            color: #666;
        }

        /* 进度条/生命条 */
        .th-progress-mini {
            flex: 1;
            height: 3px;
            background: #333;
            border-radius: 2px;
            overflow: hidden;
            max-width: 60px;
        }
        .th-progress-bar {
            height: 100%;
            background: #555;
            transition: width 0.3s ease;
        }
        .th-progress-bar.phase-newborn { background: #888; }
        .th-progress-bar.phase-start { background: #3498db; }
        /* 【V3.2优化】移除进度条阴影 */
        .th-progress-bar.phase-main { background: #ff4d4d; }
        .th-progress-bar.phase-fade { background: #00e676; }

        /* 3. 右侧龙头预览 (收缩时显示) */
        .th-right-preview {
            display: flex;
            align-items: center;
            gap: 4px;
        }
        /* 迷你龙标签 */
        .dragon-mini-tag {
            font-size: 10px;
            padding: 1px 5px;
            background: rgba(255, 215, 0, 0.1);
            border: 1px solid rgba(255, 215, 0, 0.4);
            color: #ffd700;
            border-radius: 3px;
            display: flex;
            align-items: center;
        }

        /* 4. 展开后的内容区域：梯队分层 */
        .th-content-expanded {
            border-top: 1px dashed #333;
            padding: 6px;
            background: rgba(0,0,0,0.2);
            display: none;
        }

        /* 核心层 (龙头+中军) */
        .th-tier-core {
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
            margin-bottom: 6px;
            padding-bottom: 6px;
            border-bottom: 1px dashed #2a2a2a;
        }

        /* 辅助层 (跟风) */
        .th-tier-normal {
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
        }

        /* 占位提示 */
        .th-empty-tip {
            font-size: 10px;
            color: #444;
            text-align: center;
            padding: 10px;
            border: 1px dashed #333;
            border-radius: 4px;
        }

        /* 箭头 */
        .th-arrow {
            font-size: 9px;
            color: #555;
            transition: transform 0.2s;
        }
        .theme-card.is-open .th-arrow {
            transform: rotate(180deg);
        }

        /* 保留旧版兼容 */
        .th-header {
            display: flex;
            justify-content: space-between;
            font-size: 12px;
            font-weight: bold;
            margin-bottom: 4px;
            cursor: pointer;
            padding: 4px;
            border-radius: 4px;
            transition: all 0.15s ease;
            user-select: none;
        }
        .th-header:hover {
            background: rgba(0, 255, 255, 0.1);
            box-shadow: 0 0 8px rgba(0, 255, 255, 0.3);
        }
        .th-header:active {
            background: rgba(0, 255, 255, 0.2);
            transform: scale(0.98);
        }

        /* ==================== 🔥 题材归类样式 (新增) ==================== */
        .th-parent-tag {
            font-size: 9px;
            padding: 1px 4px;
            border-radius: 3px;
            margin-right: 6px;
            color: #000;
            font-weight: bold;
            text-transform: uppercase;
            /* 【V3.2优化】移除小标签阴影 */
            display: inline-block;
        }

        .th-dragon-icon {

            /* 动态颜色类 */
            .theme-ai {
                border-left-color: var(--color-purple) !important;
            }

            .theme-hw {
                border-left-color: var(--color-red) !important;
            }

            .theme-new {
                border-left-color: var(--color-green) !important;
            }

            .theme-cy {
                border-left-color: var(--color-blue) !important;
            }

            margin-top: 4px;
            border-radius: 2px;
            overflow: hidden;
            display: flex;
        }

        .th-life-fill {
            height: 100%;
            transition: width 0.3s ease;
        }

        /* 阶段颜色 */
        .phase-newborn {
            background: #888;
        }

        /* Day1 新面孔 (灰) */
        .phase-start {
            background: #3498db;
        }

        /* Day2 启动/轮动 (蓝) */
        /* 【V3.2优化】移除阶段标签阴影 */
        .phase-main {
            background: #ff4d4d;
        }

        /* 主升 (红光) */
        .phase-fade {
            background: #00e676;
        }

        /* 退潮 (绿) */

        /* 趋势角标 */
        /* ==================== 📊 题材持续性分析面板 ==================== */
        .theme-analysis-panel {
            margin-bottom: 10px;
            padding: 8px;
            background: linear-gradient(135deg, rgba(52,73,94,0.4), rgba(44,62,80,0.3));
            border: 1px solid rgba(52,152,219,0.3);
            border-radius: 6px;
        }
        .theme-analysis-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 8px;
            padding-bottom: 6px;
            border-bottom: 1px solid rgba(255,255,255,0.1);
        }
        .theme-analysis-title {
            font-size: 11px;
            font-weight: bold;
            color: #3498db;
        }
        .market-phase-badge {
            padding: 2px 8px;
            border-radius: 4px;
            font-size: 10px;
            font-weight: bold;
        }
        .market-phase-badge.mainline { background: linear-gradient(135deg, #e74c3c, #c0392b); color: #fff; }
        .market-phase-badge.rotation { background: linear-gradient(135deg, #f39c12, #e67e22); color: #fff; }
        .market-phase-badge.chaos { background: linear-gradient(135deg, #7f8c8d, #95a5a6); color: #fff; }
        .market-phase-badge.transition { background: linear-gradient(135deg, #9b59b6, #8e44ad); color: #fff; }

        .theme-analysis-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
            gap: 6px;
        }
        .theme-analysis-card {
            padding: 6px 8px;
            background: rgba(0,0,0,0.3);
            border-radius: 4px;
            border-left: 3px solid #555;
            cursor: pointer;
            transition: all 0.2s;
        }
        .theme-analysis-card:hover {
            background: rgba(0,0,0,0.5);
            transform: translateY(-1px);
        }
        .theme-analysis-card.signal-mainline { border-left-color: #e74c3c; }
        .theme-analysis-card.signal-rotation { border-left-color: #f39c12; }
        .theme-analysis-card.signal-oneday { border-left-color: #7f8c8d; }

        .theme-card-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 4px;
        }
        .theme-card-name {
            font-size: 11px;
            font-weight: bold;
            color: #fff;
            max-width: 80px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .theme-tier-badge {
            font-size: 8px;
            padding: 1px 4px;
            border-radius: 2px;
            font-weight: bold;
        }
        .theme-tier-badge.tier-1 { background: #e74c3c; color: #fff; }
        .theme-tier-badge.tier-2 { background: #e67e22; color: #fff; }
        .theme-tier-badge.tier-3 { background: #3498db; color: #fff; }
        .theme-tier-badge.tier-4 { background: #7f8c8d; color: #fff; }

        .theme-card-meta {
            display: flex;
            gap: 4px;
            flex-wrap: wrap;
            font-size: 9px;
            color: #888;
        }
        .theme-grade-badge {
            font-size: 9px;
            font-weight: bold;
            padding: 0 3px;
            border-radius: 2px;
        }
        .theme-grade-badge.grade-S { background: linear-gradient(135deg, #ffd700, #ffec8b); color: #000; }
        .theme-grade-badge.grade-A { background: linear-gradient(135deg, #00c853, #69f0ae); color: #000; }
        .theme-grade-badge.grade-B { background: linear-gradient(135deg, #2196f3, #64b5f6); color: #fff; }
        .theme-grade-badge.grade-C { background: linear-gradient(135deg, #ff9800, #ffb74d); color: #000; }
        .theme-grade-badge.grade-D { background: linear-gradient(135deg, #9e9e9e, #bdbdbd); color: #fff; }

        .theme-phase-tag {
            font-size: 8px;
            padding: 0 3px;
            border-radius: 2px;
        }
        .theme-phase-tag.phase-incubation { background: #555; color: #aaa; }
        .theme-phase-tag.phase-fermentation { background: #e67e22; color: #fff; }
        .theme-phase-tag.phase-explosion { background: #e74c3c; color: #fff; }
        .theme-phase-tag.phase-divergence { background: #9b59b6; color: #fff; }

        .theme-card-signals {
            margin-top: 4px;
            font-size: 8px;
            color: #69f0ae;
        }
        .theme-card-risks {
            font-size: 8px;
            color: #ff6b6b;
        }
        .theme-card-action {
            margin-top: 3px;
            font-size: 8px;
            color: #64b5f6;
            font-style: italic;
        }

        /* 🎯 题材周期阶段标签 */
        .phase-badge {
            display: inline-block;
            padding: 2px 6px;
            font-size: 10px;
            font-weight: bold;
            border-radius: 4px;
            margin-right: 6px;
        }
        .phase-newborn { background: #555; color: #aaa; }
        .phase-ferment { background: #e67e22; color: #fff; }
        .phase-strengthen { background: #27ae60; color: #fff; }
        /* 【V3.2优化】移除高潮阶段阴影 */
        .phase-climax { background: linear-gradient(135deg, #ff4757, #ff6b81); color: #fff; }
        .phase-diverge { background: #9b59b6; color: #fff; }
        .phase-repair { background: #3498db; color: #fff; }
        .phase-fade { background: #7f8c8d; color: #fff; }

        .day-tag {
            display: inline-block;
            padding: 1px 4px;
            font-size: 9px;
            background: #333;
            color: #888;
            border-radius: 3px;
            margin-right: 6px;
        }

        /* 迷你阶段标签（紧凑模式用） */
        .phase-mini {
            display: inline-block;
            padding: 0px 3px;
            font-size: 8px;
            border-radius: 2px;
            margin-left: 3px;
            opacity: 0.9;
        }
        .phase-mini.phase-newborn { background: #444; color: #888; }
        .phase-mini.phase-ferment { background: #e67e22; color: #fff; }
        .phase-mini.phase-strengthen { background: #27ae60; color: #fff; }
        .phase-mini.phase-climax { background: #ff4757; color: #fff; }
        .phase-mini.phase-diverge { background: #9b59b6; color: #fff; }
        .phase-mini.phase-repair { background: #3498db; color: #fff; }
        .phase-mini.phase-fade { background: #7f8c8d; color: #ddd; }

        .trend-badge {
            font-size: 9px;
            padding: 1px 5px;
            border-radius: 3px;
            margin-left: 6px;
            font-weight: bold;
            white-space: nowrap;
        }

        .trend-up {
            background: rgba(255, 51, 51, 0.2);
            color: #ff4d4d;
            border: 1px solid #ff4d4d;
        }

        .trend-down {
            background: rgba(0, 230, 118, 0.2);
            color: #00e676;
            border: 1px solid #00e676;
        }

        .trend-flat {
            background: rgba(136, 136, 136, 0.2);
            color: #888;
            border: 1px solid #555;
        }

        /* 天数标签 */
        .days-tag {
            font-family: 'Consolas', monospace;
            font-size: 9px;
            color: #888;
            margin-left: auto;
            padding: 1px 4px;
            background: #1a1a1a;
            border-radius: 2px;
        }

        .days-tag.is-main {
            color: #ff4d4d;
            background: rgba(255, 77, 77, 0.15);
        }

        .days-tag.is-newborn {
            color: #3498db;
        }


        /* 辅助类 */
        .c-red {
            color: var(--color-red);
        }

        .c-green {
            color: var(--color-green);
        }

        .c-blue {
            color: var(--color-blue);
        }

        .c-orange {
            color: var(--color-orange);
        }

        /* ==================== 总龙头详情弹窗 ==================== */
        .dragon-detail-modal {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0, 0, 0, 0.85);
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 9999;
        }

        .dragon-detail-content {
            background: linear-gradient(135deg, #1a1a1a, #0a0a0a);
            border: 2px solid #ffd700;
            border-radius: 12px;
            width: 90%;
            max-width: 800px;
            max-height: 85vh;
            overflow-y: auto;
            padding: 30px;
            /* 【V3.2优化】简化模态框阴影 */
            box-shadow: 0 0 20px rgba(255, 215, 0, 0.3);
            position: relative;
        }

        .dragon-detail-close {
            position: absolute;
            top: 15px;
            right: 15px;
            background: #333;
            border: 1px solid #666;
            color: #fff;
            width: 32px;
            height: 32px;
            border-radius: 50%;
            cursor: pointer;
            font-size: 20px;
            line-height: 30px;
            text-align: center;
            transition: all 0.2s;
        }

        .dragon-detail-close:hover {
            background: #ff4d4d;
            border-color: #ff4d4d;
            transform: rotate(90deg);
        }

        .dragon-detail-title {
            font-size: 28px;
            font-weight: bold;
            color: #ffd700;
            margin-bottom: 20px;
            text-align: center;
            text-shadow: 0 0 10px rgba(255, 215, 0, 0.5);
        }

        .dragon-detail-section {
            margin-bottom: 25px;
            padding: 15px;
            background: rgba(255, 255, 255, 0.02);
            border-left: 3px solid #ffd700;
            border-radius: 6px;
        }

        .dragon-detail-section h3 {
            color: #ffd700;
            font-size: 16px;
            margin: 0 0 12px 0;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .dragon-timeline {
            display: flex;
            flex-direction: column;
            gap: 10px;
        }

        .dragon-timeline-item {
            display: flex;
            align-items: flex-start;
            gap: 12px;
            padding: 10px;
            background: rgba(255, 255, 255, 0.03);
            border-radius: 6px;
            transition: all 0.2s;
        }

        .dragon-timeline-item:hover {
            background: rgba(255, 255, 255, 0.06);
            transform: translateX(5px);
        }

        .dragon-timeline-date {
            min-width: 80px;
            color: #888;
            font-size: 12px;
        }

        .dragon-timeline-content {
            flex: 1;
            line-height: 1.6;
        }

        .dragon-stat-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
            gap: 15px;
            margin-top: 10px;
        }

        .dragon-stat-item {
            padding: 12px;
            background: rgba(255, 215, 0, 0.05);
            border: 1px solid rgba(255, 215, 0, 0.3);
            border-radius: 6px;
            text-align: center;
        }

        .dragon-stat-label {
            font-size: 12px;
            color: #888;
            margin-bottom: 5px;
        }

        .dragon-stat-value {
            font-size: 20px;
            font-weight: bold;
            color: #ffd700;
        }

        /* 日期选择器样式 */
        .date-picker-wrapper {
            display: flex;
            align-items: center;
            gap: 8px;
            background: #1a1a1a;
            padding: 4px 12px;
            border-radius: 6px;
            border: 1px solid #333;
        }

        .date-picker-wrapper label {
            font-size: 12px;
            color: #888;
        }

        .date-picker-wrapper input[type="date"] {
            background: #0a0a0a;
            color: #e0e0e0;
            border: 1px solid #444;
            padding: 4px 8px;
            border-radius: 4px;
            font-size: 12px;
            cursor: pointer;
            transition: all 0.2s;
        }

        .date-picker-wrapper input[type="date"]:hover {
            border-color: #666;
            background: #111;
        }

        .date-picker-wrapper input[type="date"]:focus {
            outline: none;
            border-color: #3498db;
            box-shadow: 0 0 5px rgba(52, 152, 219, 0.3);
        }

        /* 日期选择器日历图标颜色 */
        .date-picker-wrapper input[type="date"]::-webkit-calendar-picker-indicator {
            filter: invert(0.7);
            cursor: pointer;
        }

        /* ==================== 选股宝热点风向标样式 ==================== */
                .hot-topics-section {
            background: var(--accent-panel);
            border: 1px solid var(--accent-border-strong);
            border-radius: 10px;
            padding: 10px;
            /* 【V3.2优化】简化卡片阴影 */
            box-shadow: 0 4px 10px rgba(0,0,0,0.2);
        }
                .hot-topics-header { display:flex; justify-content: space-between; align-items:center; margin-bottom:6px; }
                .hot-topics-title { font-size:12px; font-weight:800; color: var(--accent-text-strong); letter-spacing:0.5px; }
                .hot-topics-title::before { content:'🔥'; margin-right:6px; color: var(--accent-risk); }
                .hot-topics-source { font-size:10px; color: #bcd7ff; background: rgba(93,173,226,0.15); padding:2px 6px; border-radius:4px; border:1px solid rgba(93,173,226,0.4); }
                .hot-topic-list { display:flex; flex-direction:column; gap:6px; }
                .hot-topic-item { position:relative; padding:8px 10px; border:1px solid var(--accent-border-strong); border-radius:8px; background: linear-gradient(90deg, rgba(93,173,226,0.08), rgba(0,0,0,0.05)); cursor:pointer; transition: all .15s ease; }
                .hot-topic-item:hover { border-color: var(--accent-info); box-shadow: 0 0 10px rgba(93,173,226,0.35); }
        .hot-topic-rank {
            font-size: 12px;
            font-weight: bold;
            min-width: 20px;
            text-align: center;
        }
                .hot-topic-rank.rank-1 { color: var(--accent-risk); text-shadow: 0 0 8px rgba(231,76,60,0.4); }
                .hot-topic-rank.rank-2 { color: #ffa502; }
                .hot-topic-rank.rank-3 { color: var(--accent-dragon); }
                .hot-topic-rank.rank-other { color: #9aa0b0; }
                .hot-topic-name { font-size:11px; font-weight:700; color: var(--accent-text-strong); }
        .hot-topic-item.rank-1 .hot-topic-name {
            color: #ff4d4d;
            font-weight: bold;
        }
        .hot-topic-stocks {
            font-size: 9px;
            color: #666;
            background: #222;
            padding: 2px 5px;
            border-radius: 3px;
        }
        /* 热点风向标层级标签 */
        .hot-topic-tier {
            font-size: 8px;
            font-weight: bold;
            padding: 1px 4px;
            border-radius: 3px;
            margin-left: auto;
            cursor: help;
        }
                .hot-topic-tier.tier-1 { background: var(--accent-dragon); color: #000; }
                .hot-topic-tier.tier-2 { background: #ffa502; color: #1a0b00; }
                .hot-topic-tier.tier-3 { background: var(--accent-info); color: #fff; }
                .hot-topic-tier.tier-4 { background: #666; color: #eee; }
        /* 热点行tier背景色 */
                .hot-topic-item.tier-bg-1 { background: linear-gradient(90deg, rgba(231,76,60,0.15) 0%, transparent 100%); border-left: 3px solid var(--accent-risk); }
                .hot-topic-item.tier-bg-2 { background: linear-gradient(90deg, rgba(255,165,2,0.12) 0%, transparent 100%); border-left: 3px solid #ffa502; }
                .hot-topic-item.tier-bg-3 { background: linear-gradient(90deg, rgba(93,173,226,0.12) 0%, transparent 100%); border-left: 3px solid var(--accent-info); }
        /* 龙头股预览 */
                .hot-topic-dragon { font-size:10px; color: var(--accent-dragon); border:1px solid rgba(255,215,0,0.5); padding:2px 6px; border-radius:4px; background: rgba(255,215,0,0.15); font-weight:700; }
        .hot-topic-leaders {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            margin-left: 6px;
        }
        .hot-topic-leader-chip {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            font-size: 9px;
            color: #ffd700;
            background: rgba(255, 215, 0, 0.08);
            border: 1px solid rgba(255, 215, 0, 0.22);
            padding: 1px 6px;
            border-radius: 999px;
            max-width: 110px;
        }
        .hot-topic-leader-board {
            flex: 0 0 auto;
            font-size: 8px;
            font-weight: 800;
            color: #0c0c0c;
            background: rgba(255, 215, 0, 0.28);
            border: 1px solid rgba(255, 215, 0, 0.35);
            padding: 0 4px;
            border-radius: 999px;
            line-height: 14px;
        }
        .hot-topic-leader-name {
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }
        .hot-topic-dragon .dragon-board {
            color: #ff4757;
            font-weight: bold;
            margin-left: 2px;
        }
        .hot-topic-max-board {
            font-size: 8px;
            color: #ff9500;
            margin-left: 4px;
        }
        .hot-topic-empty {
            font-size: 10px;
            color: #666;
            text-align: center;
            padding: 10px;
        }
                .hot-topic-item.is-expanded { background: rgba(93,173,226,0.12); border: 1px solid rgba(93,173,226,0.35); }
        .hot-topic-arrow {
            font-size: 10px;
            color: #666;
            transition: transform 0.2s;
        }
        .hot-topic-item.is-expanded .hot-topic-arrow {
            transform: rotate(90deg);
        }
                .hot-topic-stocks-detail { margin-top: 6px; padding: 6px 8px; background: rgba(0, 0, 0, 0.35); border-radius: 6px; border: 1px solid var(--accent-border-strong); }
                .hot-topic-cycle-info { width: 100%; font-size: 9px; color: #bcd7ff; padding: 3px 6px; background: rgba(93,173,226,0.12); border-radius: 4px; margin-bottom: 4px; border-left: 2px solid var(--accent-info); }

                .hot-topic-section-title { display:flex; justify-content: space-between; align-items:center; font-size: 9px; color: #aaa; margin: 4px 0 2px; padding: 0 2px; }
                .hot-topic-section-meta { color: #6a9eff; font-weight: 800; }

                /* 热点风向标：连板梯队分组（极简高密度） */
                .hot-topic-board-groups { display: flex; flex-direction: column; gap: 6px; }
                .hot-topic-board-group { display: flex; align-items: flex-start; gap: 6px; padding-top: 6px; border-top: 1px dashed rgba(255,255,255,0.08); }
                .hot-topic-board-group:first-child { padding-top: 0; border-top: none; }
                .hot-topic-board-head { width: 40px; flex: 0 0 40px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 4px 0; border-radius: 6px; border: 1px solid rgba(255,255,255,0.10); background: rgba(255,255,255,0.03); }
                .hot-topic-board-head.lvl-high { border-color: rgba(255,77,77,0.35); background: rgba(255,77,77,0.12); }
                .hot-topic-board-head.lvl-mid { border-color: rgba(255,165,2,0.35); background: rgba(255,165,2,0.10); }
                .hot-topic-board-head.lvl-low { border-color: rgba(93,173,226,0.35); background: rgba(93,173,226,0.10); }
                .hot-topic-board-num { font-size: 10px; font-weight: 900; color: #e0e0e0; line-height: 14px; }
                .hot-topic-board-head.lvl-high .hot-topic-board-num { color: #ff6b6b; }
                .hot-topic-board-head.lvl-mid .hot-topic-board-num { color: #ffb142; }
                .hot-topic-board-head.lvl-low .hot-topic-board-num { color: #6a9eff; }
                .hot-topic-board-count { font-size: 8px; color: #888; line-height: 12px; }
                .hot-topic-board-stocks { flex: 1; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
                .hot-stock-tag { display: inline-flex; align-items: center; gap: 3px; padding: 3px 6px; background: #1b1b1b; border-radius: 4px; font-size: 10px; border: 1px solid var(--accent-border-strong); transition: all 0.15s; }
                .hot-stock-tag:hover { background: #242424; border-color: var(--accent-info); }
        .hot-stock-name {
            color: #e0e0e0;
        }
        .hot-stock-pct {
            font-weight: bold;
            font-size: 9px;
        }
                .hot-stock-pct.is-up { color: var(--accent-risk); }
                .hot-stock-pct.is-down { color: #00d68f; }
        .hot-stock-pct.is-zt { color: #ff4d4d; background: rgba(255,77,77,0.2); padding: 1px 3px; border-radius: 2px; }
        .hot-stock-float { font-size: 8px; color: #888; padding: 0 2px; }
        .hot-stock-time { font-size: 8px; color: #6a9eff; padding: 0 2px; }
        /* 股票分类标签: 龙>气>连>首>军>跟 */
        .hot-stock-tag.cat-1 { border-color: #ffd700; background: linear-gradient(135deg, #332b00, #1a1500); }
        .hot-stock-tag.cat-1 .hot-stock-name { color: #ffd700; font-weight: bold; }
        .hot-stock-tag.cat-2 { border-color: #ff5500; background: linear-gradient(135deg, #331100, #1a0800); }
        .hot-stock-tag.cat-2 .hot-stock-name { color: #ff6633; font-weight: bold; }
        .hot-stock-tag.cat-3 { border-color: #ff9900; background: linear-gradient(135deg, #331f00, #1a1000); }
        .hot-stock-tag.cat-3 .hot-stock-name { color: #ff9900; }
        .hot-stock-tag.cat-4 { border-color: #ff4d4d; }
        .hot-stock-tag.cat-5 { border-color: #3498db; }
        .hot-stock-tag.cat-6 { border-color: #555; }
        .hot-stock-tag.cat-7 { border-color: #c0a000; background: linear-gradient(135deg, #2a2400, #151200); }
        .hot-stock-tag.cat-7 .hot-stock-name { color: #c0a000; font-weight: bold; }
        .hot-stock-board {
            font-size: 8px;
            color: #ffd700;
            background: rgba(255, 215, 0, 0.2);
            padding: 1px 3px;
            border-radius: 2px;
            margin-left: 2px;
        }
        .hot-stock-hist {
            font-size: 7px;
            color: #888;
            background: rgba(136, 136, 136, 0.2);
            padding: 1px 3px;
            border-radius: 2px;
            margin-left: 2px;
        }
        .hot-stock-fire {
            font-size: 9px;
            margin-left: 2px;
            animation: fire-pulse 1s ease-in-out infinite;
        }
        @keyframes fire-pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.6; }
        }
        .hot-stock-role {
            font-size: 8px;
            padding: 1px 4px;
            border-radius: 2px;
            margin-left: 2px;
        }
        .role-dragon { background: linear-gradient(90deg, #ffd700, #ff9900); color: #000; font-weight: bold; }
        .role-old-dragon { background: linear-gradient(90deg, #c0a000, #907000); color: #000; font-weight: bold; font-size: 7px; }
        .role-hot { background: linear-gradient(90deg, #ff6600, #ff3300); color: #fff; font-weight: bold; }
        .role-ladder { background: rgba(255, 153, 0, 0.3); color: #ff9900; }
        .role-first { background: rgba(255, 77, 77, 0.3); color: #ff4d4d; }
        .role-army { background: rgba(52, 152, 219, 0.3); color: #3498db; }

        /* ============================================================
           V2.3 题材生命周期样式 - 最终版
           ============================================================ */

        /* 基础样式 */
        .hot-topic-item {
            display: flex;
            align-items: center;
            padding: 4px 8px;
            min-height: 28px;
            border-radius: 4px;
            margin-bottom: 2px;
            cursor: pointer;
            transition: all 0.2s ease;
            /* V2.3修正: 允许内容换行 */
            flex-wrap: wrap !important;
            align-content: flex-start;
        }

        /* 操作定性背景 */
        .hot-topic-item.op-mainline {
            background: linear-gradient(90deg, rgba(255,71,87,0.25) 0%, rgba(255,71,87,0.08) 100%) !important;
            border-left: 3px solid #ff4757 !important;
        }
        .hot-topic-item.op-divergence {
            background: linear-gradient(90deg, rgba(255,165,2,0.2) 0%, rgba(255,165,2,0.05) 100%) !important;
            border-left: 3px solid #ffa502 !important;
        }
        .hot-topic-item.op-rotation {
            background: linear-gradient(90deg, rgba(52,152,219,0.15) 0%, transparent 100%) !important;
            border-left: 3px dashed #3498db !important;
        }
        .hot-topic-item.op-new {
            background: linear-gradient(90deg, rgba(46,213,115,0.15) 0%, transparent 100%) !important;
            border-left: 3px solid #2ed573 !important;
        }
        .hot-topic-item.op-rising {
            background: linear-gradient(90deg, rgba(155,89,182,0.15) 0%, transparent 100%) !important;
            border-left: 3px solid #9b59b6 !important;
        }
        .hot-topic-item.op-fade {
            background: rgba(127,140,141,0.1) !important;
            border-left: 3px solid #7f8c8d !important;
            opacity: 0.6;
        }
        .hot-topic-item.op-fake {
            background: rgba(99,110,114,0.08) !important;
            border-left: 3px solid #636e72 !important;
            opacity: 0.4;
        }
        .hot-topic-item.op-fake .hot-topic-name {
            text-decoration: line-through;
            color: #7f8c8d;
        }
        .hot-topic-item.op-unknown,
        .hot-topic-item.op-unmatched,
        .hot-topic-item.op-unknown-strong {
            background: rgba(149,165,166,0.1) !important;
            border-left: 3px dotted #95a5a6 !important;
        }
        .hot-topic-item.op-normal {
            background: rgba(149,165,166,0.05) !important;
            border-left: 3px solid #95a5a6 !important;
        }

        /* 状态胶囊 */
        .status-pill {
            display: inline-flex;
            align-items: center;
            padding: 1px 5px;
            border-radius: 8px;
            font-size: 9px;
            font-weight: bold;
            color: white;
            margin-left: 4px;
            white-space: nowrap;
        }

        /* 涨停数标签 */
        .zt-badge {
            font-size: 9px;
            color: #ff4757;
            margin-left: 4px;
            padding: 1px 4px;
            background: rgba(255,71,87,0.15);
            border-radius: 3px;
        }

        /* 星级 */
        .stars-mini {
            font-size: 9px;
            color: #f39c12;
            letter-spacing: -1px;
            margin-left: 4px;
        }

        /* 持续性标签 */
        .persistence-badge {
            font-size: 9px;
            padding: 1px 4px;
            border-radius: 3px;
            margin-left: 4px;
            font-weight: bold;
            cursor: help;
        }
        .persistence-badge.level-S {
            background: linear-gradient(135deg, #e74c3c, #c0392b);
            color: #fff;
            box-shadow: 0 0 4px rgba(231,76,60,0.5);
        }
        .persistence-badge.level-A {
            background: linear-gradient(135deg, #e67e22, #d35400);
            color: #fff;
        }
        .persistence-badge.level-B {
            background: rgba(52, 152, 219, 0.3);
            color: #3498db;
            border: 1px solid rgba(52, 152, 219, 0.5);
        }
        .persistence-badge.level-C {
            background: rgba(149, 165, 166, 0.2);
            color: #95a5a6;
        }
        .persistence-badge.level-D {
            background: rgba(127, 140, 141, 0.15);
            color: #7f8c8d;
            font-weight: normal;
        }

        /* 持续性详情区 */
        .persistence-detail {
            margin-top: 6px;
            padding: 6px;
            background: rgba(0,0,0,0.3);
            border-radius: 4px;
            border-left: 3px solid #3498db;
        }
        .persistence-header {
            display: flex;
            gap: 8px;
            align-items: center;
            font-size: 10px;
            margin-bottom: 4px;
        }
        .persistence-level {
            font-weight: bold;
            padding: 1px 6px;
            border-radius: 3px;
        }
        .persistence-level.level-S { background: #e74c3c; color: #fff; }
        .persistence-level.level-A { background: #e67e22; color: #fff; }
        .persistence-level.level-B { background: #3498db; color: #fff; }
        .persistence-level.level-C { background: #95a5a6; color: #fff; }
        .persistence-level.level-D { background: #7f8c8d; color: #fff; }
        .persistence-phase {
            color: #f39c12;
            font-weight: bold;
        }
        .persistence-score { color: #888; }
        .persistence-days { color: #69f0ae; }
        .persistence-signals {
            display: flex;
            gap: 4px;
            flex-wrap: wrap;
            margin-bottom: 4px;
        }
        .persistence-signals .signal-tag {
            font-size: 9px;
            padding: 1px 4px;
            background: rgba(255,255,255,0.1);
            border-radius: 2px;
            color: #aaa;
        }
        .persistence-action {
            font-size: 9px;
            display: flex;
            gap: 6px;
            align-items: center;
        }
        .persistence-action .action-label { color: #666; }
        .persistence-action .action-text { color: #69f0ae; font-weight: bold; }
        .persistence-action .risk-text { color: #ff6b6b; }

        /* ==================== 题材速览 ==================== */
        .theme-quick-panel {
            /* 继承 ladder-section 样式 */
        }
        .theme-quick-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 8px;
            font-size: 11px;
            color: #bbb;
        }
        .theme-quick-meta { font-size: 10px; color: #666; }
        .theme-quick-list { display: flex; flex-direction: column; gap: 6px; }
        .theme-quick-item {
            padding: 6px;
            border: 1px solid #2B3139;
            border-radius: 6px;
            background: rgba(0, 0, 0, 0.2);
        }
        .tq-row {
            display: flex;
            flex-wrap: nowrap;
            gap: 8px;
            align-items: center;
            font-size: 11px;
            color: #ccc;
        }
        .tq-row.tq-main {
            padding: 4px 0;
        }
        .tq-rank {
            width: 18px;
            height: 18px;
            border-radius: 3px;
            background: linear-gradient(135deg, #3a3a3a, #222);
            text-align: center;
            line-height: 18px;
            font-weight: bold;
            color: #f0b90b;
            font-size: 11px;
            flex-shrink: 0;
        }
        .tq-name {
            font-weight: bold;
            color: #eaecef;
            font-size: 12px;
            min-width: 60px;
        }
        .tq-identity {
            padding: 1px 6px;
            border: 1px solid #4A90E2;
            border-radius: 4px;
            font-size: 9px;
        }
        .tq-stats-group {
            display: flex;
            gap: 4px;
            align-items: center;
            padding: 2px 6px;
            background: rgba(255,255,255,0.03);
            border-radius: 4px;
            font-size: 10px;
        }
        .tq-stats-group .up-num { color: #ff6b6b; }
        .tq-stats-group .down-num { color: #2ecc71; }
        .tq-stats-group .flat-num { color: #888; }
        .tq-count, .tq-board, .tq-days, .tq-turnover, .tq-limit-up, .tq-seal, .tq-amount, .tq-main-net, .tq-main-buy, .tq-main-sell, .tq-volume-ratio, .tq-pe, .tq-amplitude {
            padding: 2px 6px;
            background: #1a1a1a;
            border-radius: 3px;
            color: #bdbdbd;
            font-size: 10px;
            white-space: nowrap;
        }
        .tq-days { color: #f0b90b; background: rgba(240, 185, 11, 0.1); }
        .tq-turnover { color: #8b8bff; background: rgba(139, 139, 255, 0.1); }
        .tq-limit-up { color: #ff6b6b; background: rgba(255, 107, 107, 0.15); }
        .tq-seal { color: #00d1c1; background: rgba(0, 209, 193, 0.1); }
        .tq-amount { color: #ffa500; background: rgba(255, 165, 0, 0.1); }
        .tq-main-buy { color: #ff6b6b; background: rgba(255, 107, 107, 0.1); }
        .tq-main-sell { color: #2ecc71; background: rgba(46, 204, 113, 0.1); }
        .tq-main-net { background: rgba(100, 100, 100, 0.1); }
        .tq-main-net.up { color: #ff6b6b; }
        .tq-main-net.down { color: #2ecc71; }
        .tq-volume-ratio { color: #a855f7; background: rgba(168, 85, 247, 0.1); }
        .tq-pe { color: #888; }
        .tq-amplitude { color: #4a90e2; background: rgba(74, 144, 226, 0.1); }
        .tq-sub { color: #999; font-size: 10px; margin-top: 2px; }
        .tq-trend { padding: 1px 5px; border-radius: 3px; font-size: 9px; }
        .tq-dragon { font-size: 10px; color: #f0b90b; }
        .tq-pct { font-size: 11px; font-weight: bold; min-width: 50px; }
        .tq-pct.up { color: #ff6b6b; }
        .tq-pct.down { color: #2ecc71; }
        
        /* 题材展开样式 */
        .tq-header { cursor: pointer; overflow-x: auto; overflow-y: hidden; }
        .tq-header:hover { background: rgba(255,255,255,0.03); }
        .tq-arrow { font-size: 8px; color: #666; margin-right: 4px; transition: transform 0.2s; }
        .tq-expanded { background: rgba(74, 144, 226, 0.1); border-color: #4A90E2 !important; }
        .tq-detail { 
            margin-top: 8px; 
            padding-top: 8px; 
            border-top: 1px dashed #333;
        }
        .tq-section-title { 
            font-size: 10px; 
            color: #888; 
            margin-bottom: 6px;
            font-weight: bold;
        }
        .tq-sub-plates { margin-bottom: 8px; }
        .tq-sub-list { display: flex; flex-wrap: wrap; gap: 4px; }
        .tq-sub-tag {
            font-size: 9px;
            padding: 2px 6px;
            background: #1a1a1a;
            border: 1px solid #333;
            border-radius: 3px;
            color: #aaa;
        }
        .tq-sub-tag.sub-hot { border-color: #e67e22; color: #e67e22; }
        .tq-stock-list { display: flex; flex-direction: column; gap: 4px; }
        .tq-stock-item {
            display: flex;
            align-items: center;
            gap: 6px;
            font-size: 10px;
            padding: 4px 6px;
            background: rgba(0,0,0,0.3);
            border-radius: 3px;
            border-left: 2px solid #333;
        }
        .tq-stock-item.is-dragon { border-left-color: #ffd700; background: rgba(255,215,0,0.08); }
        .tq-stock-item.is-limit-up { border-left-color: #e74c3c; }
        .tq-stock-board { 
            background: #e74c3c; 
            color: #fff; 
            padding: 1px 4px; 
            border-radius: 2px; 
            font-size: 9px;
            font-weight: bold;
        }
        .tq-stock-name { color: #fff; font-weight: 500; }
        .tq-stock-name.dragon-name { color: #ffd700; }
        .tq-stock-code { color: #666; font-size: 9px; }
        
        /* 股票池容器 - 支持横向滚动 */
        .tq-stocks {
            overflow-x: auto;
            overflow-y: auto;
            max-height: 60vh;
            -webkit-overflow-scrolling: touch;
        }
        .tq-stock-header, .tq-stock-list {
            min-width: 760px;
        }
        .tq-stock-header {
            display: flex;
            gap: 4px;
            padding: 4px 6px;
            background: rgba(255,255,255,0.08);
            border-radius: 3px;
            margin-bottom: 4px;
            font-size: 10px;
            color: #888;
            position: sticky;
            top: 0;
        }
        .tq-stock-item {
            display: flex;
            gap: 4px;
            padding: 4px 6px;
            border-bottom: 1px solid rgba(255,255,255,0.05);
        }
        .tq-stock-item:hover {
            background: rgba(255,255,255,0.05);
        }
        .tq-stock-item.is-dragon {
            background: rgba(255,215,0,0.1);
        }
        
        /* 股票池列宽定义 - 固定宽度确保对齐 */
        .tq-col-rank { width: 32px; flex-shrink: 0; color: #e74c3c; font-weight: bold; font-size: 10px; }
        .tq-col-rank.dragon-rank { color: #ffd700; }
        .tq-col-name { width: 58px; flex-shrink: 0; color: #fff; font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
        .tq-col-fund { width: 32px; flex-shrink: 0; font-size: 9px; text-align: center; color: #888; }
        .tq-col-fund.fund-yz { color: #e74c3c; }  /* 游资红色 */
        .tq-col-fund.fund-jg { color: #f39c12; }  /* 机构橙色 */
        .tq-col-price { width: 40px; flex-shrink: 0; color: #ccc; font-size: 10px; text-align: right; }
        .tq-col-pct { width: 46px; flex-shrink: 0; font-weight: bold; font-size: 10px; text-align: right; }
        .tq-col-pct.up { color: #e74c3c; }
        .tq-col-pct.down { color: #27ae60; }
        .tq-col-bid { width: 40px; flex-shrink: 0; font-size: 10px; text-align: right; }  /* 竞价涨幅 */
        .tq-col-bid.up { color: #e74c3c; }
        .tq-col-bid.down { color: #27ae60; }
        .tq-col-seal { width: 46px; flex-shrink: 0; font-size: 10px; text-align: right; color: #888; } /* 封单 */
        .tq-col-board { width: 52px; flex-shrink: 0; color: #f39c12; font-size: 10px; text-align: center; }
        .tq-col-amount { width: 45px; flex-shrink: 0; color: #3498db; font-size: 10px; text-align: right; }
        .tq-col-turnover { width: 40px; flex-shrink: 0; color: #9b59b6; font-size: 10px; text-align: right; }
        .tq-col-main { width: 48px; flex-shrink: 0; font-size: 10px; text-align: right; }
        .tq-col-main.up { color: #e74c3c; }
        .tq-col-main.down { color: #27ae60; }
        .tq-col-float { width: 42px; flex-shrink: 0; color: #888; font-size: 10px; text-align: right; }
        .tq-col-ratio { width: 32px; flex-shrink: 0; color: #f39c12; font-size: 10px; text-align: right; }
        
        .tq-stock-main { font-size: 9px; }
        .tq-stock-main.main-in { color: #e74c3c; }
        .tq-stock-main.main-out { color: #27ae60; }
        .tq-stock-theme { color: #888; font-size: 9px; flex: 1; text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

        /* ==================== 轮动预警面板 ==================== */
        .rotation-warning-panel {
            background: linear-gradient(135deg, rgba(255,107,107,0.15), rgba(255,193,7,0.1));
            border: 1px solid rgba(255,107,107,0.4);
            border-radius: 8px;
            padding: 8px;
            margin-bottom: 8px;
        }
        .rotation-warning-header {
            display: flex;
            align-items: center;
            gap: 6px;
            margin-bottom: 6px;
        }
        .rotation-icon { font-size: 14px; }
        .rotation-title { font-size: 11px; font-weight: bold; color: #ff6b6b; }
        .rotation-pressure {
            font-size: 9px;
            padding: 2px 6px;
            border-radius: 3px;
            margin-left: auto;
        }
        .rotation-pressure.high { background: #e74c3c; color: #fff; }
        .rotation-pressure.medium { background: #f39c12; color: #fff; }
        .rotation-warning-content { font-size: 10px; }
        .rotation-source, .rotation-targets {
            display: flex;
            align-items: center;
            gap: 6px;
            margin-bottom: 4px;
        }
        .rotation-source .label, .rotation-targets .label { color: #888; }
        .rotation-source .source-name { color: #ff6b6b; font-weight: bold; }
        .reason-tag {
            font-size: 9px;
            padding: 1px 4px;
            background: rgba(255,107,107,0.2);
            color: #ff9999;
            border-radius: 2px;
        }
        .target-tag {
            font-size: 9px;
            padding: 2px 6px;
            background: rgba(105,240,174,0.2);
            color: #69f0ae;
            border-radius: 3px;
            cursor: help;
        }

        /* ==================== 主线板块面板 ==================== */
        .mainline-sectors-panel {
            background: rgba(52,152,219,0.08);
            border: 1px solid rgba(52,152,219,0.3);
            border-radius: 8px;
            padding: 8px;
            margin-bottom: 8px;
        }
        .mainline-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 6px;
        }
        .mainline-title { font-size: 11px; font-weight: bold; color: #3498db; }
        .mainline-source { font-size: 9px; color: #666; }
        .mainline-list { display: flex; flex-direction: column; gap: 4px; }
        .mainline-item {
            display: flex;
            align-items: center;
            gap: 6px;
            padding: 4px 6px;
            background: rgba(255,255,255,0.03);
            border-radius: 4px;
            font-size: 10px;
        }
        .mainline-item.is-mainline {
            background: rgba(231,76,60,0.1);
            border-left: 3px solid #e74c3c;
        }
        .sector-rank {
            width: 16px;
            height: 16px;
            display: flex;
            align-items: center;
            justify-content: center;
            background: rgba(255,255,255,0.1);
            border-radius: 50%;
            font-size: 9px;
            font-weight: bold;
        }
        .mainline-item.is-mainline .sector-rank { background: #e74c3c; color: #fff; }
        .sector-name { flex: 1; color: #ddd; font-weight: 500; }
        .sector-days { color: #69f0ae; font-size: 9px; }
        .sector-stat { color: #f39c12; font-size: 9px; }
        .sector-density { color: #888; font-size: 9px; }
        .sector-density.high { color: #ff6b6b; font-weight: bold; }

        /* Beta标签 */
        .beta-tag {
            font-size: 8px;
            padding: 1px 4px;
            border-radius: 2px;
            font-weight: bold;
        }
        .beta-tag.pro { background: rgba(231,76,60,0.3); color: #ff6b6b; }
        .beta-tag.counter { background: rgba(46,204,113,0.3); color: #2ecc71; }
        .beta-tag.dead { background: rgba(127,140,141,0.3); color: #95a5a6; }

        /* 出生标记 */
        .birth-tag { font-size: 10px; }
        .birth-tag.golden { color: #f1c40f; }
        .birth-tag.silver { color: #bdc3c7; }

        /* 信号标记 */
        .signal-tag {
            font-size: 8px;
            padding: 1px 4px;
            border-radius: 2px;
        }
        .signal-tag.lurking { background: rgba(155,89,182,0.3); color: #9b59b6; }
        .signal-tag.dist { background: rgba(231,76,60,0.3); color: #e74c3c; }

        /* ==================== 筹码博弈标签 ==================== */
        .chip-tag {
            font-size: 8px;
            padding: 1px 3px;
            border-radius: 2px;
            margin-left: 2px;
            font-weight: 500;
        }
        .chip-tag.level-S {
            background: linear-gradient(135deg, rgba(231,76,60,0.4), rgba(192,57,43,0.4));
            color: #ff6b6b;
            font-weight: bold;
        }
        .chip-tag.level-A {
            background: rgba(230,126,34,0.3);
            color: #e67e22;
        }
        .chip-tag.level-B {
            background: rgba(52,152,219,0.25);
            color: #3498db;
        }
        .chip-tag.level-C {
            background: rgba(149,165,166,0.2);
            color: #95a5a6;
        }
        .chip-tag.level-D {
            background: rgba(127,140,141,0.15);
            color: #7f8c8d;
        }
        /* 筹码信号 */
        .chip-signal {
            font-size: 8px;
            padding: 1px 3px;
            border-radius: 2px;
            margin-left: 2px;
        }
        .chip-signal.winner-high { background: rgba(46,204,113,0.3); color: #2ecc71; }
        .chip-signal.winner-low { background: rgba(231,76,60,0.3); color: #e74c3c; }
        .chip-signal.macd-golden { background: rgba(255,193,7,0.3); color: #ffc107; }
        .chip-signal.cost-support { background: rgba(155,89,182,0.3); color: #9b59b6; }
        .chip-signal.oversold { background: rgba(52,152,219,0.3); color: #3498db; }

        /* ICU筹码详情 */
        .icu-chip-info {
            display: flex;
            gap: 4px;
            align-items: center;
            margin-left: auto;
        }
        .icu-chip-score {
            font-size: 9px;
            padding: 1px 4px;
            border-radius: 3px;
        }
        .icu-chip-score.strong { background: rgba(46,204,113,0.3); color: #2ecc71; }
        .icu-chip-score.healthy { background: rgba(52,152,219,0.3); color: #3498db; }
        .icu-chip-score.oversold { background: rgba(155,89,182,0.3); color: #9b59b6; }
        .icu-chip-score.danger { background: rgba(231,76,60,0.3); color: #e74c3c; }
        .icu-chip-score.normal { background: rgba(149,165,166,0.2); color: #95a5a6; }
        .icu-chip-score.wait { background: rgba(127,140,141,0.15); color: #7f8c8d; }

        /* ==================== 题材天花板（尺子）标签 ==================== */
        .ruler-bar {
            margin-top: 4px;
            padding: 3px 6px;
            background: rgba(255, 255, 255, 0.05);
            border-radius: 4px;
            border-left: 2px solid #666;
            font-size: 9px;
            display: flex;
            align-items: center;
            gap: 4px;
        }
        .ruler-bar.has-breakout {
            border-left-color: #ff00ff;
            background: rgba(255, 0, 255, 0.1);
        }
        .ruler-icon { font-size: 10px; }
        .ruler-label { color: #888; }
        .ruler-val {
            color: #fff;
            font-weight: bold;
            font-family: Consolas, monospace;
        }
        .ruler-stock {
            color: #aaa;
            font-size: 8px;
        }
        .breakout-badge {
            margin-left: auto;
            background: linear-gradient(90deg, #ff00ff, #9900ff);
            color: #fff;
            padding: 1px 5px;
            border-radius: 3px;
            font-weight: bold;
            font-size: 8px;
            animation: pulse-ruler 1.5s infinite;
        }
        @keyframes pulse-ruler {
            0% { opacity: 1; }
            50% { opacity: 0.7; }
            100% { opacity: 1; }
        }
        /* 升级信号 */
        .upgrade-signal {
            display: inline-block;
            background: linear-gradient(135deg, #ff6b6b, #ff00ff);
            color: #fff;
            padding: 1px 4px;
            border-radius: 3px;
            font-size: 8px;
            font-weight: bold;
            margin-left: 4px;
            animation: glow-upgrade 2s infinite;
        }
        @keyframes glow-upgrade {
            0%, 100% { box-shadow: 0 0 2px #ff00ff; }
            50% { box-shadow: 0 0 8px #ff00ff, 0 0 12px #ff6b6b; }
        }
        /* 紧凑尺子标签 */
        .ruler-compact {
            display: inline-flex;
            align-items: center;
            gap: 2px;
            font-size: 8px;
            padding: 1px 3px;
            border-radius: 2px;
            background: rgba(100,100,100,0.2);
            color: #888;
            margin-left: 3px;
        }
        .ruler-compact.has-breakout {
            background: rgba(255,0,255,0.2);
            color: #ff00ff;
        }
        .ruler-compact.is-decayed {
            background: rgba(46,204,113,0.15);
            border: 1px dashed rgba(46,204,113,0.4);
        }
        .ruler-compact .ruler-num {
            font-weight: bold;
            color: #fff;
        }
        /* 升级信号类型 */
        .upgrade-signal.new_king {
            background: linear-gradient(135deg, #ff4d4d, #ff0000);
            box-shadow: 0 0 6px #ff0000;
        }
        .upgrade-signal.ice_breaker {
            background: linear-gradient(135deg, #3498db, #2980b9);
            box-shadow: 0 0 6px #3498db;
        }
        /* 尺子详情栏 */
        .ruler-bar.is-decayed {
            border-left-color: #2ecc71;
            background: rgba(46,204,113,0.08);
        }
        .ruler-abs-old {
            color: #666;
            text-decoration: line-through;
            margin-right: 2px;
        }
        .ruler-val.is-decayed {
            color: #2ecc71;
        }
        /* 破局横幅 */
        .breakout-badge.bg-red {
            background: linear-gradient(90deg, #ff4d4d, #ff0000);
            box-shadow: 0 0 5px #ff0000;
        }
        .breakout-badge.bg-blue {
            background: linear-gradient(90deg, #3498db, #2980b9);
            border: 1px solid #3498db;
        }

        /* 排名变化箭头 */
        .rank-change-arrow {
            font-size: 9px;
            margin-left: 2px;
            min-width: 18px;
        }
        .rank-change-arrow.up { color: #ff4757; }
        .rank-change-arrow.down { color: #2ed573; }
        .rank-change-arrow.new { color: #f39c12; }

        /* 展开状态 */
        .hot-topic-item.is-expanded {
            min-height: auto;
            background: #1a1a1a !important;
            border: 1px solid #444 !important;
            z-index: 10;
            position: relative;
            /* 【V3.2优化】简化展开阴影 */
            box-shadow: 0 4px 12px rgba(0,0,0,0.3);
        }

        /* V2.3修正: 详情区域独占一行 + 动画 */
        .topic-detail-v2 {
            flex-basis: 100%;
            width: 100%;
            padding-top: 6px;
            margin-top: 6px;
            border-top: 1px solid rgba(255,255,255,0.1);
            font-size: 10px;
            animation: slideDown 0.2s ease-out;
        }

        @keyframes slideDown {
            from { opacity: 0; transform: translateY(-5px); }
            to { opacity: 1; transform: translateY(0); }
        }

        /* 双源得分条 */
        .dual-score-bar {
            display: flex;
            height: 4px;
            border-radius: 2px;
            overflow: hidden;
            background: rgba(0,0,0,0.3);
            margin: 4px 0;
        }
        .dual-score-bar .heat { background: linear-gradient(90deg, #fdcb6e, #e17055); }
        .dual-score-bar .strength { background: linear-gradient(90deg, #00b894, #00cec9); }

        /* 风险提示 - V2.4增强 */
        .warnings-row {
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
            margin-top: 4px;
        }
        .warning-tag {
            font-size: 8px;
            padding: 2px 5px;
            border-radius: 3px;
            font-weight: 500;
            display: inline-flex;
            align-items: center;
            gap: 2px;
        }
        /* 正面机会 - 绿色系 */
        /* 【V3.2优化】移除小标签阴影 */
        .warning-tag.opportunity {
            background: linear-gradient(135deg, rgba(0,184,148,0.25), rgba(0,184,148,0.1));
            color: #00b894;
            border: 1px solid rgba(0,184,148,0.3);
        }
        /* 高危风险 - 红色系 */
        .warning-tag.danger {
            background: linear-gradient(135deg, rgba(255,71,87,0.25), rgba(255,71,87,0.1));
            color: #ff4757;
            border: 1px solid rgba(255,71,87,0.3);
        }
        /* 中度警告 - 橙色系 */
        .warning-tag.warning {
            background: linear-gradient(135deg, rgba(243,156,18,0.2), rgba(243,156,18,0.08));
            color: #f39c12;
            border: 1px solid rgba(243,156,18,0.25);
        }
        /* 信息提示 - 蓝色系 */
        .warning-tag.info {
            background: rgba(52,152,219,0.15);
            color: #3498db;
            border: 1px solid rgba(52,152,219,0.2);
        }
        /* 禁止操作 - 灰红色 */
        .warning-tag.forbidden {
            background: linear-gradient(135deg, rgba(99,110,114,0.2), rgba(255,71,87,0.1));
            color: #636e72;
            border: 1px dashed rgba(255,71,87,0.3);
            text-decoration: line-through;
        }

        /* 悬停效果 */
        .hot-topic-item:hover {
            transform: translateX(2px);
            box-shadow: 0 2px 8px rgba(0,0,0,0.3);
        }
        .hot-topic-item.op-mainline:hover {
            box-shadow: 0 2px 12px rgba(255,71,87,0.4);
        }

        /* V2.3修正: 排名数字在展开时保持顶部 */
        .hot-topic-item .hot-topic-rank {
            align-self: flex-start;
            margin-top: 4px;
        }

        /* ============================================================
           V2.4 火花线 + 梯队分布图样式
           ============================================================ */

        
        .mini-dual-line {
            width: 100%;
            height: calc(100% - 20px);
            min-height: 70px;
        }
        .mini-dual-line .chart-placeholder { height: 70px; }

        /* 热点风向标涨停趋势火花线 */
        .sparkline-container {
            display: inline-flex;
            align-items: flex-end;
            gap: 1px;
            height: 14px;
            margin-left: 6px;
            padding: 1px 3px;
            background: rgba(0,0,0,0.2);
            border-radius: 3px;
        }
        .sparkline-container.sparkline-28 {
            padding: 1px 2px;
        }
        .sparkline-bar {
            width: 3px;
            min-height: 2px;
            border-radius: 1px;
            transition: height 0.2s ease;
        }
        .sparkline-container.sparkline-28 .sparkline-bar {
            width: 2px;
        }
        .sparkline-bar.trend-up { background: linear-gradient(to top, #ff4757, #ff6b7a); }
        .sparkline-bar.trend-down { background: linear-gradient(to top, #2ed573, #7bed9f); }
        .sparkline-bar.trend-flat { background: linear-gradient(to top, #95a5a6, #bdc3c7); }
        .sparkline-bar.is-empty { background: rgba(148,163,184,0.45); }
        /* 【V3.2优化】简化当前柱子高亮 */
        .sparkline-bar.current { border: 1px solid rgba(255,255,255,0.5); }

        /* 梯队分布小柱状图 */
        .ladder-dist-container {
            display: inline-flex;
            align-items: flex-end;
            gap: 1px;
            height: 12px;
            margin-left: 6px;
            padding: 1px 2px;
            background: rgba(0,0,0,0.15);
            border-radius: 2px;
        }
        .ladder-dist-bar {
            width: 4px;
            min-height: 2px;
            border-radius: 1px;
        }
        .ladder-dist-bar.board-1 { background: #95a5a6; }
        .ladder-dist-bar.board-2 { background: #f39c12; }
        .ladder-dist-bar.board-3 { background: #e74c3c; }
        .ladder-dist-bar.board-4 { background: #9b59b6; }
        .ladder-dist-bar.board-5 { background: #3498db; }
        .ladder-dist-bar.board-6plus { background: linear-gradient(to top, #ffd700, #ff6b6b); }

        /* 悬停提示优化 */
        .sparkline-container:hover,
        .ladder-dist-container:hover {
            transform: scale(1.1);
            box-shadow: 0 2px 6px rgba(0,0,0,0.3);
        }

        /* 趋势标签 */
        .trend-indicator {
            font-size: 8px;
            padding: 1px 3px;
            border-radius: 2px;
            margin-left: 4px;
        }
        .trend-indicator.accel { background: rgba(255,71,87,0.2); color: #ff4757; }
        .trend-indicator.decel { background: rgba(46,213,115,0.2); color: #2ed573; }
        .trend-indicator.stable { background: rgba(149,165,166,0.2); color: #95a5a6; }

        /* ==================== Fintech Pro 视觉升级 v2.0 ==================== */
        /*
         * 优化目标：
         * 1. 深蓝灰基调替代纯黑，降低视觉疲劳
         * 2. 毛玻璃质感增加层次
         * 3. 数字专用字体提升专业感
         * 4. 关键信号视觉强化
         * 5. 龙头/主线流光效果
         */

        /* === 1. 引入数字专用字体 === */
        @import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400;500;700&display=swap');

        /* === 2. 全局颜色变量升级 === */
        :root {
            /* 深蓝灰背景体系 - 更高级的基调 */
            --bg-dark: #0b0c10 !important;
            --bg-panel: #131519 !important;
            --bg-card: #1c1f26 !important;
            --bg-header: #13171c !important;

            /* 更醒目的涨跌色 */
            --color-red: #ff4d4f !important;
            --color-green: #00b578 !important;
            --color-gold: #ffc60b !important;

            /* 玻璃拟态基础 */
            --glass-bg: rgba(30, 35, 41, 0.7);
            --glass-border: rgba(255, 255, 255, 0.08);
            --glass-blur: blur(12px);
        }

        /* === 3. Body 背景渐变 === */
        body {
            background: linear-gradient(180deg, #0b0c10 0%, #0d1117 50%, #0b0c10 100%) !important;
            overflow-y: auto !important;
            overflow-x: hidden !important;
        }

        /* === 4. 极简滚动条 (Mac OS 风格) === */
        ::-webkit-scrollbar {
            width: 6px !important;
            height: 6px !important;
        }
        ::-webkit-scrollbar-track {
            background: transparent !important;
        }
        ::-webkit-scrollbar-thumb {
            background: rgba(255, 255, 255, 0.15) !important;
            border-radius: 3px !important;
            border: none !important;
        }
        ::-webkit-scrollbar-thumb:hover {
            background: rgba(255, 255, 255, 0.3) !important;
        }
        ::-webkit-scrollbar-corner {
            background: transparent !important;
        }

        /* === 5. 日期列背景升级 === */
        .day-column {
            background: linear-gradient(180deg, #191c22 0%, #111316 100%) !important;
            border-right: 1px solid #000 !important;
            box-shadow: 5px 0 15px rgba(0,0,0,0.3) !important;
        }

        /* 高亮"今天"列 */
        .day-column.today {
            background: linear-gradient(180deg, #1f242b 0%, #14161a 100%) !important;
            box-shadow: 0 0 25px rgba(0, 0, 0, 0.5), inset 0 0 30px rgba(255, 77, 79, 0.03) !important;
            border-right: 2px solid var(--color-red) !important;
            z-index: 5;
        }

        /* === 6. 统计框 (stat-box) 毛玻璃升级 === */
        .stat-box {
            background: rgba(255, 255, 255, 0.03) !important;
            border: 1px solid rgba(255, 255, 255, 0.05) !important;
            backdrop-filter: blur(5px);
            -webkit-backdrop-filter: blur(5px);
            position: relative;
            overflow: hidden;
        }

        .stat-box:hover {
            background: rgba(255, 255, 255, 0.06) !important;
            border-color: rgba(74, 144, 226, 0.4) !important;
        }

        /* 涨停数据高亮 - 红色发光条 */
        .stat-box:has(.c-red) {
            background: linear-gradient(180deg, rgba(255, 77, 79, 0.05) 0%, rgba(255, 77, 79, 0.12) 100%) !important;
            border-bottom: 2px solid var(--color-red) !important;
        }

        /* 跌停/大面数据 - 绿色发光条 */
        .stat-box:has(.c-green) {
            background: linear-gradient(180deg, rgba(0, 181, 120, 0.05) 0%, rgba(0, 181, 120, 0.12) 100%) !important;
            border-bottom: 2px solid var(--color-green) !important;
        }

        /* === 7. 数字字体统一 === */
        .stat-val,
        .st-price,
        .st-pct,
        .ruler-val,
        .icu-val,
        .icu-inline-avg,
        .nuclear-loss,
        .metric-chip,
        .th-stats-val,
        .index-pct {
            font-family: 'Roboto Mono', 'Consolas', 'SF Mono', monospace !important;
            font-variant-numeric: tabular-nums;
            letter-spacing: 0.5px;
        }

        /* === 8. 股票标签 (st-tag) 精致化 === */
        .st-tag {
            background: #1e2229 !important;
            border: 1px solid #2b3139 !important;
            box-shadow: 0 4px 6px rgba(0,0,0,0.2);
            transition: transform 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                        box-shadow 0.2s ease,
                        border-color 0.2s ease !important;
        }

        .st-tag:hover {
            transform: translateY(-2px) scale(1.01) !important;
            box-shadow: 0 8px 15px rgba(0,0,0,0.4) !important;
            border-color: var(--color-blue) !important;
            z-index: 10;
        }

        /* 股票名称强化 */
        .st-name {
            font-size: 13px !important;
            letter-spacing: 0.5px;
            text-shadow: 0 1px 2px rgba(0,0,0,0.5);
        }

        /* === 9. 角色标签贴纸化 === */
        .role-tag,
        .st-pivot,
        .st-breakout {
            box-shadow: 0 2px 4px rgba(0,0,0,0.3) !important;
        }

        /* 龙头标识 - 金光闪耀 */
        .role-dragon {
            background: linear-gradient(135deg, #ffd700, #fdb931) !important;
            color: #1a1400 !important;
            font-weight: 800 !important;
            border: none !important;
            text-shadow: 0 1px 1px rgba(255,255,255,0.3);
        }

        /* 总龙/市场龙王 - 极致金光 */
        .role-king {
            background: linear-gradient(135deg, #ffd700, #ffaa00, #ffd700) !important;
            color: #000 !important;
            font-weight: bold !important;
            box-shadow: 0 0 12px rgba(255, 215, 0, 0.7), 0 2px 4px rgba(0,0,0,0.3) !important;
            animation: king-glow 2s ease-in-out infinite;
        }

        @keyframes king-glow {
            0%, 100% { box-shadow: 0 0 12px rgba(255, 215, 0, 0.7), 0 2px 4px rgba(0,0,0,0.3); }
            50% { box-shadow: 0 0 20px rgba(255, 215, 0, 0.9), 0 2px 4px rgba(0,0,0,0.3); }
        }

        /* === 10. ICU 区域警示感增强 === */
        .icu-inline {
            background: repeating-linear-gradient(
                45deg,
                #0e0e0e,
                #0e0e0e 10px,
                #121212 10px,
                #121212 20px
            ) !important;
            border: 1px solid rgba(255, 77, 77, 0.2) !important;
            position: relative;
        }

        .icu-inline::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 2px;
            background: linear-gradient(90deg, transparent, rgba(255, 77, 77, 0.5), transparent);
        }

        .icu-inline-head {
            background: rgba(20, 0, 0, 0.6) !important;
            border-bottom: 1px solid rgba(255, 77, 77, 0.3) !important;
        }

        /* 核按钮票高亮 */
        .icu-compact-row:has(.nuclear-tag),
        .icu-compact-row:has(.icu-nuclear-badge) {
            background: rgba(255, 0, 0, 0.08) !important;
            border-left: 2px solid #ff0000 !important;
            padding-left: 4px;
        }

        /* 核按钮区域强化 */
        .nuclear-section {
            background: linear-gradient(135deg, rgba(255, 0, 0, 0.08), rgba(139, 0, 0, 0.05)) !important;
            border: 1px solid rgba(255, 0, 0, 0.25) !important;
            box-shadow: inset 0 0 20px rgba(255, 0, 0, 0.05);
        }

        /* === 11. 主线旗舰卡 - 流光效果 === */
        .theme-card.is-hero {
            background: linear-gradient(160deg, #2b1111 0%, #1a1a1a 60%) !important;
            border: 1px solid #ff4d4d !important;
            box-shadow: 0 4px 20px rgba(255, 77, 77, 0.15) !important;
            position: relative;
            overflow: hidden;
        }

        /* 扫光动画 */
        .theme-card.is-hero::after {
            content: "";
            position: absolute;
            top: 0;
            left: -100%;
            width: 50%;
            height: 100%;
            background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.05), transparent);
            transform: skewX(-25deg);
            animation: hero-shine 6s infinite;
            pointer-events: none;
        }

        @keyframes hero-shine {
            0% { left: -100%; }
            20% { left: 200%; }
            100% { left: 200%; }
        }

        /* === 12. 梯队卡片升级 === */
        .ladder-section,
        .theme-card {
            background: linear-gradient(180deg, #181818 0%, #141414 100%) !important;
            border: 1px solid #2a2a2a !important;
            box-shadow: 0 2px 8px rgba(0,0,0,0.2);
        }

        .ladder-tier {
            background: linear-gradient(90deg, rgba(26, 26, 26, 0.9), #1a1a1a) !important;
            backdrop-filter: blur(4px);
        }

        /* === 13. 顶部导航栏玻璃效果 === */
        .header {
            background: rgba(19, 23, 28, 0.85) !important;
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
        }

        /* === 14. 日期头部玻璃效果 === */
        .day-header-wrapper {
            background: rgba(19, 21, 25, 0.92) !important;
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
        }

        /* === 15. 周期状态条增强 === */
        .cycle-status-bar {
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
        }

        .cycle-status-bar.phase-bull {
            box-shadow: inset 0 0 30px rgba(246, 70, 93, 0.08);
        }

        .cycle-status-bar.phase-bear {
            box-shadow: inset 0 0 30px rgba(14, 203, 129, 0.08);
        }

        /* === 16. 回到今日按钮升级 === */
        .fab-back-today {
            background: linear-gradient(135deg, #ff4d4f, #c41d1d) !important;
            box-shadow: 0 4px 15px rgba(255, 77, 79, 0.4) !important;
        }

        .fab-back-today:hover {
            transform: scale(1.08) !important;
            box-shadow: 0 6px 20px rgba(255, 77, 79, 0.5) !important;
        }

        /* === 17. 图表容器背景 === */
        .chart-container,
        .dashboard-panel {
            background: linear-gradient(180deg, #0a0a0a 0%, #0d0d0d 100%) !important;
        }

        .dashboard-chart {
            background: linear-gradient(180deg, #181818 0%, #141414 100%) !important;
            border: 1px solid #252525 !important;
        }

        /* === 18. 信息面板玻璃效果 === */
        .info-panel {
            background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, rgba(20,20,30,0.5) 100%) !important;
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
            border: 1px solid rgba(255,255,255,0.06) !important;
        }

        /* === 19. 悬浮提示框升级 === */
        .chart-tooltip {
            background: rgba(20, 20, 25, 0.95) !important;
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.1) !important;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
        }

        /* === 20. 分歧/跌停/自然涨停区块颜色深化 === */
        .diverge-section {
            background: linear-gradient(180deg, rgba(255, 165, 0, 0.06), rgba(255, 165, 0, 0.02)) !important;
        }

        .limitdown-section {
            background: linear-gradient(180deg, rgba(0, 181, 120, 0.06), rgba(0, 181, 120, 0.02)) !important;
        }

        .natural-section {
            background: linear-gradient(180deg, rgba(74, 144, 226, 0.06), rgba(74, 144, 226, 0.02)) !important;
        }

        /* === 21. 连板梯队悬浮分时/日K预览 === */
        .hover-stock-name {
            cursor: pointer;
            text-decoration: underline;
            text-decoration-thickness: 1px;
            text-underline-offset: 2px;
            text-decoration-color: rgba(255, 255, 255, 0.25);
        }

        .hover-stock-name:hover {
            text-decoration-color: rgba(240, 185, 11, 0.85);
        }

        .hover-popover {
            position: fixed;
            z-index: 99999;
            width: 680px;
            max-width: min(92vw, 680px);
            background: rgba(16, 20, 26, 0.96);
            border: 1px solid rgba(255, 255, 255, 0.12);
            border-radius: 10px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.55);
            backdrop-filter: blur(8px);
            display: none;
            color: #eaecef;
        }

        .hover-popover.show {
            display: block;
        }

        .hover-popover-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 10px 12px 8px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        }

        .hover-popover-title {
            display: flex;
            align-items: baseline;
            gap: 10px;
            min-width: 0;
        }

        .hover-popover-title span:first-child {
            font-weight: 700;
            font-size: 13px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            max-width: 360px;
        }

        .hover-popover-limit-time {
            color: #ffd166 !important;
            font-weight: 700;
            margin-left: 6px;
            text-shadow: 0 0 6px rgba(255, 209, 102, 0.18);
        }

        .hover-popover-meta {
            font-size: 11px;
            color: rgba(255, 255, 255, 0.55);
        }

        .hover-popover-info {
            display: flex;
            flex-direction: column;
            gap: 6px;
            padding: 8px 12px 10px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.06);
            background: rgba(255, 255, 255, 0.02);
        }

        .hover-popover-info.hidden {
            display: none;
        }

        .hover-theme-trend-wrap {
            padding: 10px 12px 12px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.06);
            background: linear-gradient(180deg, rgba(255,255,255,0.025), rgba(255,255,255,0.015));
        }

        .hover-theme-trend-wrap.hidden {
            display: none;
        }

        .hover-theme-trend-summary {
            display: flex;
            align-items: center;
            gap: 6px;
            flex-wrap: wrap;
            margin-bottom: 8px;
        }

        .hover-theme-trend-chip {
            display: inline-flex;
            align-items: center;
            height: 20px;
            padding: 0 8px;
            border-radius: 999px;
            font-size: 10px;
            color: #dbeafe;
            background: rgba(255, 255, 255, 0.06);
            border: 1px solid rgba(255, 255, 255, 0.1);
        }

        .hover-theme-trend-chip.is-up {
            color: #ffcc80;
            background: rgba(255, 152, 0, 0.16);
            border-color: rgba(255, 152, 0, 0.32);
        }

        .hover-theme-trend-chip.is-down {
            color: #9be7b1;
            background: rgba(46, 204, 113, 0.14);
            border-color: rgba(46, 204, 113, 0.28);
        }

        .hover-theme-trend-chip.is-flat {
            color: #c7d2da;
            background: rgba(148, 163, 184, 0.14);
            border-color: rgba(148, 163, 184, 0.24);
        }

        .hover-theme-trend-hint {
            font-size: 10px;
            color: rgba(255, 255, 255, 0.52);
            margin-left: auto;
        }

        .hover-theme-trend-empty {
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 96px;
            font-size: 12px;
            color: rgba(255, 255, 255, 0.5);
            background: rgba(255, 255, 255, 0.025);
            border: 1px dashed rgba(255, 255, 255, 0.1);
            border-radius: 8px;
        }

        .hover-theme-trend-empty.hidden {
            display: none;
        }

        .hover-theme-trend-chart {
            width: 100%;
            height: 220px;
        }

        .hover-theme-trend-svg {
            display: block;
            width: 100%;
            height: 100%;
        }

        .hover-popover-info-row {
            display: flex;
            align-items: flex-start;
            gap: 8px;
            min-width: 0;
        }

        .hover-popover-info-label {
            flex: 0 0 52px;
            font-size: 11px;
            color: rgba(255, 255, 255, 0.58);
            line-height: 1.45;
        }

        .hover-popover-info-value {
            flex: 1 1 auto;
            min-width: 0;
            font-size: 11px;
            color: #dbeafe;
            line-height: 1.5;
            white-space: pre-wrap;
            word-break: break-all;
        }

        .hover-popover-quote-row {
            align-items: center;
            padding: 4px 6px;
            border: 1px solid rgba(255, 255, 255, 0.08);
            border-radius: 6px;
            background: rgba(255, 255, 255, 0.03);
        }

        .hover-popover-quote-value {
            font-family: "Consolas", "SFMono-Regular", monospace;
            font-size: 10px;
            line-height: 1.35;
            white-space: nowrap;
            overflow-x: auto;
            overflow-y: hidden;
            word-break: normal;
            color: #cbd5e1;
            scrollbar-width: none;
        }

        .hover-popover-quote-value::-webkit-scrollbar {
            display: none;
        }

        .hover-popover-quote-row.is-up .hover-popover-quote-value {
            color: #ff8a8a;
        }

        .hover-popover-quote-row.is-down .hover-popover-quote-value {
            color: #8ff3bf;
        }

        .hover-popover-quote-row.is-flat .hover-popover-quote-value {
            color: #d1d5db;
        }

        .hover-popover-close {
            border: 0;
            background: transparent;
            color: rgba(255, 255, 255, 0.65);
            cursor: pointer;
            font-size: 18px;
            line-height: 1;
            padding: 2px 6px;
            border-radius: 6px;
        }

        .hover-popover-close:hover {
            background: rgba(255, 255, 255, 0.08);
            color: #fff;
        }

        .hover-popover-tabs {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            padding: 8px 12px 0;
        }

        .hover-popover-tab {
            padding: 6px 10px;
            border-radius: 8px 8px 0 0;
            font-size: 12px;
            color: rgba(255, 255, 255, 0.6);
            cursor: pointer;
            background: rgba(255, 255, 255, 0.04);
            border: 1px solid rgba(255, 255, 255, 0.08);
            border-bottom: 0;
        }

        .hover-popover-tab.active {
            color: #eaecef;
            background: rgba(255, 255, 255, 0.08);
        }

        .hover-popover-content {
            padding: 10px 12px 12px;
        }

        .hover-panel {
            position: relative;
        }

        .hover-panel.hidden {
            display: none;
        }

        .hover-chart {
            width: 100%;
            height: 320px;
        }

        .hover-loading {
            position: absolute;
            left: 0;
            top: 0;
            right: 0;
            bottom: 0;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            font-size: 12px;
            color: rgba(255, 255, 255, 0.6);
            background: rgba(0, 0, 0, 0.25);
            z-index: 2;
            border-radius: 8px;
        }

        .hover-spinner {
            width: 18px;
            height: 18px;
            border-radius: 50%;
            border: 2px solid rgba(255, 255, 255, 0.25);
            border-top-color: rgba(255, 255, 255, 0.75);
            animation: hoverSpin 0.8s linear infinite;
        }

        @keyframes hoverSpin {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }

        .hover-error {
            position: absolute;
            left: 12px;
            right: 12px;
            top: 12px;
            padding: 10px 12px;
            border: 1px solid rgba(246, 70, 93, 0.35);
            background: rgba(246, 70, 93, 0.08);
            color: #ffb3b3;
            border-radius: 8px;
            font-size: 12px;
            z-index: 3;
            display: none;
        }

        /* Mobile layout: keep each day readable while wide data tables scroll inside their own panel. */
        @media (max-width: 767px) {
            html,
            body {
                width: 100%;
                min-width: 0;
            }

            body {
                min-height: 100vh;
                min-height: 100dvh;
            }

            .header {
                box-sizing: border-box;
                align-items: center;
                gap: 6px;
                padding: calc(6px + env(safe-area-inset-top, 0px)) max(8px, env(safe-area-inset-right, 0px)) 6px max(8px, env(safe-area-inset-left, 0px));
            }

            .header-title {
                order: 0;
                flex: 1 1 auto;
                min-width: 0;
                margin-right: 0;
                font-size: 14px;
                line-height: 30px;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }

            /* The same destinations remain available in the gear menu, leaving the first row usable. */
            .header > .header-btn {
                display: none;
            }

            .header-more {
                order: 0;
                flex: 0 0 auto;
                margin-left: 0;
            }

            .header-more-summary {
                width: 34px;
                height: 32px;
                font-size: 16px;
            }

            .header-more-panel {
                right: 0;
                left: auto;
                width: min(300px, calc(100vw - 16px));
                min-width: 0;
                max-height: min(70vh, 420px);
                overflow-y: auto;
                box-sizing: border-box;
            }

            .header-more-panel .header-btn {
                min-height: 34px;
                margin-left: 0;
            }

            .header-core {
                order: 1;
                flex: 0 0 100%;
                width: 100%;
                display: grid;
                grid-template-columns: 16px repeat(3, minmax(0, 1fr)) auto;
                align-items: center;
                gap: 6px;
            }

            .header-date-icon {
                text-align: center;
            }

            .header-date-select,
            .header-date-input {
                box-sizing: border-box;
                width: 100%;
                min-width: 0;
                height: 34px;
                padding: 0 4px;
                font-size: 12px;
            }

            .header-date-go-btn {
                min-width: 48px;
                height: 34px;
                padding: 0 8px;
            }

            .header-date-tip {
                display: none;
            }

            .header-history-wrap {
                order: 2;
                flex: 0 0 100%;
                width: 100%;
                min-width: 0;
            }

            .header-history-status {
                box-sizing: border-box;
                width: 100%;
                min-width: 0;
                min-height: 28px;
                justify-content: center;
                padding: 0 8px;
                font-size: 10px;
            }

            .header-history-panel {
                left: 0;
                right: 0;
                width: auto;
                max-width: none;
                max-height: min(65vh, 380px);
                overflow-y: auto;
            }

            .dashboard-panel {
                padding: 8px max(10px, env(safe-area-inset-right, 0px)) 8px max(10px, env(safe-area-inset-left, 0px));
            }

            .dashboard-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                grid-template-rows: auto;
            }

            .dashboard-chart-main {
                grid-column: 1 / -1;
                grid-row: auto;
                min-height: 180px;
            }

            .trend-chart-header {
                align-items: flex-start;
                flex-wrap: wrap;
                gap: 6px;
            }

            .trend-chart-title {
                font-size: 12px;
            }

            .trend-chart-range-tip {
                margin-left: 0;
            }

            .trend-chart-container {
                height: 220px !important;
            }

            .market-phase-bar {
                align-items: flex-start;
                flex-wrap: wrap;
                gap: 6px 8px;
                padding: 7px max(10px, env(safe-area-inset-right, 0px)) 7px max(10px, env(safe-area-inset-left, 0px));
            }

            .market-phase-strategy {
                flex: 1 1 100%;
                min-width: 0;
                line-height: 1.35;
            }

            .scroll-wrapper {
                width: 100%;
                max-width: 100vw;
                overscroll-behavior-x: contain;
            }

            .day-column {
                width: max(320px, calc(100vw - 8px));
                min-width: max(320px, calc(100vw - 8px));
                margin-right: 4px;
                overflow: hidden;
            }

            .day-header-wrapper {
                max-height: none;
                overflow: visible;
                padding: 7px 6px;
            }

            .date-row {
                font-size: 14px;
            }

            .stat-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }

            .stat-grid.integrated-kpi-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
                gap: 4px;
            }

            .integrated-kpi-grid .stat-box {
                min-height: 42px;
                padding: 5px;
            }

            .integrated-kpi-grid .stat-lbl {
                line-height: 1.2;
                white-space: normal;
            }

            .integrated-kpi-grid .stat-val {
                font-size: 12px;
            }

            .core-metrics-table-wrap {
                max-height: 380px;
                scrollbar-width: thin;
            }

            .core-metrics-table {
                min-width: 760px;
            }

            .core-metrics-table th:first-child,
            .core-metrics-table td:first-child {
                position: sticky;
                left: 0;
                z-index: 2;
                background: #1b1b1b;
            }

            .tier-stocks-table,
            .theme-board-card__table-wrap,
            .opening-auction-card__table-wrap,
            .tq-stocks {
                max-width: 100%;
                overflow-x: auto;
                -webkit-overflow-scrolling: touch;
                scrollbar-width: thin;
            }

            .tier-stocks-table table {
                min-width: 560px;
            }

            .theme-board-card__table {
                min-width: 620px;
            }

            .opening-auction-card__table {
                min-width: 820px;
            }

            .tq-stock-header,
            .tq-stock-list {
                min-width: 720px;
            }

            .restored-analysis-head {
                align-items: flex-start;
                flex-wrap: wrap;
            }

            .restored-analysis-meta {
                flex: 1 1 100%;
                min-width: 0;
                overflow: hidden;
                text-overflow: ellipsis;
                white-space: nowrap;
            }

            .restored-analysis-actions {
                margin-left: auto;
            }

            .theme-ladder-popover,
            .hover-popover {
                box-sizing: border-box;
                left: max(8px, env(safe-area-inset-left, 0px)) !important;
                right: max(8px, env(safe-area-inset-right, 0px)) !important;
                width: auto !important;
                max-width: none !important;
                max-height: calc(100vh - 16px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
                overflow: auto;
            }

            .theme-ladder-popover-body {
                max-height: calc(100vh - 100px);
            }

            .theme-ladder-popover-header,
            .hover-popover-header {
                padding: 8px 10px;
            }

            .tlp-title-main,
            .hover-popover-title span:first-child {
                max-width: min(70vw, 260px);
            }

            .hover-theme-trend-chart {
                height: 160px;
            }

            .hover-chart {
                height: 220px;
            }

            .chain-overlay {
                box-sizing: border-box;
                padding: max(8px, env(safe-area-inset-top, 0px)) max(8px, env(safe-area-inset-right, 0px)) max(8px, env(safe-area-inset-bottom, 0px)) max(8px, env(safe-area-inset-left, 0px));
            }

            .chain-panel {
                width: 100%;
                height: 100%;
                max-height: none;
                border-radius: 6px;
            }

            .dragon-detail-content {
                box-sizing: border-box;
                width: calc(100% - 16px);
                max-width: none;
                max-height: calc(100vh - 16px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
                padding: 18px 14px;
            }

            .fab-back-first,
            .fab-back-today {
                bottom: calc(14px + env(safe-area-inset-bottom, 0px));
                width: 40px;
                height: 40px;
            }

            .fab-back-first {
                left: max(10px, env(safe-area-inset-left, 0px));
            }

            .fab-back-today {
                right: max(10px, env(safe-area-inset-right, 0px));
            }
        }
