  /* ============================================================
           主题变量 & 重置
           ============================================================ */
        :root {
            --brand-500: #146ceb;
            --bg-primary: #f5f7fa;
            --bg-surface: #ffffff;
            --bg-elevated: #f8fafc;
            --bg-card-hover: #f0f2f5;
            --bg-input: #ffffff;
            --text-primary: #1a1a2e;
            --text-secondary: #4a4a6a;
            --text-tertiary: #8a8aaa;
            --text-quaternary: #b0b0c8;
            --border-color: #e2e8f0;
            --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.08);
            --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.10);
            --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.14);
            --radius-md: 10px;
            --radius-lg: 16px;
            --radius-sm: 6px;
            --space-1: 4px;
            --space-2: 8px;
            --space-3: 12px;
            --space-4: 16px;
            --text-xs: 0.75rem;
            --text-sm: 0.875rem;
            --text-base: 1rem;
            --text-lg: 1.125rem;
            --transition-fast: 0.15s ease;
            --success: #10b981;
            --danger: #ef4444;
            --warning: #f59e0b;
            --info: #3b82f6;
            --gradient-primary: linear-gradient(135deg, #146ceb 0%, #438aef 100%);
        }
        [data-theme="dark"] {
            --bg-primary: #0f0f1a;
            --bg-surface: #1e1e36;
            --bg-elevated: #2a2a44;
            --bg-card-hover: #2f2f4a;
            --bg-input: #2a2a44;
            --text-primary: #e8e8f0;
            --text-secondary: #b0b0c8;
            --text-tertiary: #7878a0;
            --text-quaternary: #505070;
            --border-color: #2a2a44;
            --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.4);
            --shadow-md: 0 4px 16px rgba(0, 0, 0, 0.5);
            --shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.6);
            --success: #34d399;
            --danger: #f87171;
            --warning: #fbbf24;
            --info: #60a5fa;
            --gradient-primary: linear-gradient(135deg, #2563eb 0%, #60a5fa 100%);
        }
        *,
        *::before,
        *::after {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }
        html,
        body {
            height: 100%;
            margin: 0;
            font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
            background: var(--bg-primary);
            color: var(--text-primary);
            transition: background var(--transition-fast), color var(--transition-fast);
            overflow: hidden;
        }
        button {
            cursor: pointer;
            font-family: inherit;
        }
        input,
        select {
            font-family: inherit;
            font-size: var(--text-sm);
        }
        ::-webkit-scrollbar {
            width: 5px;
            height: 5px;
        }
        ::-webkit-scrollbar-track {
            background: var(--bg-elevated);
        }
        ::-webkit-scrollbar-thumb {
            background: var(--text-quaternary);
            border-radius: 999px;
        }

        /* ---------- 横屏提示覆盖层 ---------- */
        #rotatePrompt {
            display: none;
            position: fixed;
            inset: 0;
            background: var(--bg-primary);
            z-index: 9999;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            text-align: center;
            padding: 24px;
        }
        #rotatePrompt i {
            font-size: 56px;
            margin-bottom: 16px;
            color: var(--brand-500);
        }
        #rotatePrompt h2 {
            font-size: var(--text-xl);
            margin-bottom: 8px;
        }
        #rotatePrompt p {
            font-size: var(--text-base);
            color: var(--text-secondary);
            max-width: 300px;
        }

        @media (max-width: 768px) and (orientation: portrait) {
            #rotatePrompt {
                display: flex !important;
            }
            .app {
                display: none !important;
            }
        }

        /* ---------- 布局 ---------- */
        .app {
            height: 100vh;
            overflow: hidden;
            display: flex;
            flex-direction: column;
        }
        .main-content {
            flex: 1;
            overflow: hidden;
            position: relative;
        }
        #page-market {
            height: 100%;
            display: flex;
            flex-direction: column;
            position: relative;
            background: var(--bg-primary);
        }

        /* ---------- 图表容器 — 极简全屏 ---------- */
        .chart-mode-content {
            flex: 1;
            display: flex;
            flex-direction: column;
            overflow: hidden;
            padding: 0;
            /* 去除外边距，顶满全屏 */
        }
        .market-charts {
            flex: 1;
            display: flex;
            flex-direction: column;
            min-height: 0;
        }
        .chart-section {
            flex: 1;
            display: flex;
            flex-direction: column;
            background: var(--bg-surface);
            border-radius: 0;
            /* 去除圆角，更干净 */
            padding: 2px 4px 4px 4px;
            /* 极小内边距，仅保留一丝呼吸 */
            box-shadow: none;
            border: none;
            min-height: 0;
        }
        .chart-header {
            display: flex;
            justify-content: center;
            align-items: center;
            flex-shrink: 0;
            padding: 2px 0 4px 0;
            margin: 0;
            min-height: 28px;
        }
        .chart-header h3 {
            display: none;
            /* 彻底隐藏标题 */
            ;
        }

        /* 图例在顶部 — 水平居中，小字号 */
        .chart-legend {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 10px 20px;
            padding: 0;
            margin: 0;
            border: none;
            background: transparent;
            flex-shrink: 0;
        }
        .legend-item {
            display: flex;
            align-items: center;
            gap: 4px;
            font-size: 10px;
            /* 极小字号 */
            color: var(--text-secondary);
            font-weight: 500;
            letter-spacing: 0.3px;
        }
        .legend-color {
            width: 10px;
            height: 10px;
            border-radius: 2px;
            flex-shrink: 0;
        }

        .chart-container {
            flex: 1;
            position: relative;
            min-height: 0;
            margin: 0;
            padding: 0;
        }

        /* ---------- 浮动设置按钮 & 面板 ---------- */
        .settings-toggle {
            position: fixed;
            top: 12px;
            right: 12px;
            z-index: 1000;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: var(--bg-surface);
            border: 1px solid var(--border-color);
            box-shadow: var(--shadow-md);
            color: var(--text-primary);
            font-size: 18px;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all var(--transition-fast);
        }
        .settings-toggle:hover {
            transform: rotate(60deg);
            background: var(--bg-card-hover);
        }
        .settings-toggle.active i {
            transform: rotate(60deg);
        }

        .settings-panel {
            position: fixed;
            top: 60px;
            right: 12px;
            z-index: 999;
            background: var(--bg-surface);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-lg);
            box-shadow: var(--shadow-lg);
            padding: 14px 18px;
            width: 300px;
            max-height: calc(100vh - 80px);
            overflow-y: auto;
            display: none;
            backdrop-filter: blur(8px);
            transition: opacity 0.25s ease, transform 0.25s ease;
            transform-origin: top right;
        }
        .settings-panel.open {
            display: block;
            animation: panelIn 0.25s ease;
        }
        @keyframes panelIn {
            from {
                opacity: 0;
                transform: scale(0.95) translateY(-10px);
            }
            to {
                opacity: 1;
                transform: scale(1) translateY(0);
            }
        }
        .settings-panel .form-group {
            margin-bottom: 10px;
        }
        .settings-panel .form-group label {
            display: block;
            font-size: var(--text-xs);
            font-weight: 600;
            color: var(--text-secondary);
            margin-bottom: 2px;
        }
        .settings-panel .form-control {
            width: 100%;
            padding: 5px 8px;
            border-radius: var(--radius-sm);
            border: 1px solid var(--border-color);
            background: var(--bg-input);
            color: var(--text-primary);
            font-size: var(--text-sm);
            outline: none;
        }
        .settings-panel .form-control:focus {
            border-color: var(--brand-500);
            box-shadow: 0 0 0 3px rgba(20, 108, 235, 0.15);
        }
        .settings-panel .btn {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 5px 12px;
            border-radius: var(--radius-sm);
            font-size: var(--text-sm);
            font-weight: 500;
            border: none;
            background: var(--bg-elevated);
            color: var(--text-secondary);
            border: 1px solid var(--border-color);
            transition: all var(--transition-fast);
            cursor: pointer;
        }
        .settings-panel .btn:hover {
            background: var(--bg-card-hover);
            color: var(--text-primary);
        }
        .settings-panel .btn-primary {
            background: var(--gradient-primary);
            color: #fff;
            border: none;
        }
        .settings-panel .btn-primary:hover {
            box-shadow: 0 0 12px rgba(20, 108, 235, 0.3);
        }
        .settings-panel .btn-sm {
            padding: 3px 8px;
            font-size: var(--text-xs);
        }
        .settings-panel .divider {
            border: none;
            border-top: 1px solid var(--border-color);
            margin: 8px 0;
        }

        .settings-panel .theme-toggle {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 2px 0;
        }
        .settings-panel .theme-toggle button {
            flex: 1;
            padding: 3px 6px;
            border: 1px solid var(--border-color);
            border-radius: var(--radius-sm);
            background: var(--bg-elevated);
            color: var(--text-secondary);
            font-size: var(--text-xs);
            transition: all var(--transition-fast);
        }
        .settings-panel .theme-toggle button.active {
            background: var(--brand-500);
            color: white;
            border-color: var(--brand-500);
        }
        .settings-panel .theme-toggle button:hover:not(.active) {
            background: var(--bg-card-hover);
        }

        .settings-panel .chart-tabs {
            display: flex;
            background: var(--bg-elevated);
            border-radius: var(--radius-sm);
            overflow: hidden;
            border: 1px solid var(--border-color);
        }
        .settings-panel .chart-tab {
            flex: 1;
            padding: 4px 6px;
            background: none;
            border: none;
            border-right: 1px solid var(--border-color);
            cursor: pointer;
            font-size: var(--text-xs);
            color: var(--text-tertiary);
            transition: all var(--transition-fast);
            text-align: center;
            font-weight: 500;
        }
        .settings-panel .chart-tab:last-child {
            border-right: none;
        }
        .settings-panel .chart-tab:hover {
            background: var(--bg-card-hover);
            color: var(--text-primary);
        }
        .settings-panel .chart-tab.active {
            background: var(--brand-500);
            color: white;
        }

        .settings-panel .stock-selector {
            background: var(--bg-elevated);
            border-radius: var(--radius-sm);
            padding: 6px 8px;
            margin-top: 4px;
            border: 1px solid var(--border-color);
        }
        .settings-panel .stock-checkbox-group {
            display: flex;
            flex-wrap: wrap;
            gap: 4px 8px;
            align-items: center;
        }
        .settings-panel .stock-checkbox-item {
            display: flex;
            align-items: center;
            gap: 3px;
        }
        .settings-panel .stock-checkbox-item input[type="checkbox"] {
            margin: 0;
            accent-color: var(--brand-500);
            width: 12px;
            height: 12px;
        }
        .settings-panel .stock-checkbox-item label {
            font-size: 10px;
            color: var(--text-secondary);
            cursor: pointer;
        }

        .settings-panel .range-inputs {
            display: flex;
            gap: 6px;
            align-items: flex-end;
            flex-wrap: wrap;
        }
        .settings-panel .range-inputs .form-group {
            flex: 1;
            min-width: 50px;
            margin-bottom: 0;
        }
        .settings-panel .range-inputs .form-group label {
            font-size: 9px;
        }

        /* ---------- Toast ---------- */
        .toast-container {
            position: fixed;
            bottom: 20px;
            left: 50%;
            transform: translateX(-50%);
            z-index: 9999;
            display: flex;
            flex-direction: column;
            gap: 6px;
            max-width: 380px;
            width: 90%;
            pointer-events: none;
        }
        .toast {
            background: var(--bg-surface);
            border-radius: var(--radius-md);
            padding: 8px 14px;
            box-shadow: var(--shadow-lg);
            border-left: 4px solid var(--brand-500);
            display: flex;
            align-items: center;
            gap: 8px;
            animation: slideUp 0.35s ease;
            pointer-events: auto;
            border: 1px solid var(--border-color);
        }
        .toast.hide {
            animation: slideDown 0.3s ease forwards;
        }
        .toast-icon {
            font-size: 16px;
            flex-shrink: 0;
        }
        .toast-message {
            font-size: var(--text-sm);
            color: var(--text-secondary);
        }
        .toast.success {
            border-left-color: var(--success);
        }
        .toast.success .toast-icon {
            color: var(--success);
        }
        .toast.error {
            border-left-color: var(--danger);
        }
        .toast.error .toast-icon {
            color: var(--danger);
        }
        .toast.warning {
            border-left-color: var(--warning);
        }
        .toast.warning .toast-icon {
            color: var(--warning);
        }
        .toast.info {
            border-left-color: var(--info);
        }
        .toast.info .toast-icon {
            color: var(--info);
        }

        @keyframes slideUp {
            from {
                transform: translateY(20px);
                opacity: 0;
            }
            to {
                transform: translateY(0);
                opacity: 1;
            }
        }
        @keyframes slideDown {
            from {
                transform: translateY(0);
                opacity: 1;
            }
            to {
                transform: translateY(20px);
                opacity: 0;
            }
        }

        /* ---------- 响应式 ---------- */
        @media (max-width: 640px) {
            .settings-panel {
                width: 260px;
                right: 8px;
                top: 52px;
                padding: 10px 12px;
                max-height: calc(100vh - 70px);
            }
            .settings-toggle {
                top: 8px;
                right: 8px;
                width: 34px;
                height: 34px;
                font-size: 15px;
            }
            .chart-section {
                padding: 1px 2px 2px 2px;
            }
            .chart-header {
                min-height: 22px;
                padding: 1px 0 2px 0;
            }
            .legend-item {
                font-size: 8px;
                gap: 3px;
            }
            .legend-color {
                width: 8px;
                height: 8px;
            }
            .chart-legend {
                gap: 6px 12px;
            }
            .settings-panel .range-inputs {
                flex-direction: column;
                gap: 4px;
            }
        }
        @media (max-width: 400px) {
            .settings-panel {
                width: 220px;
                right: 4px;
                padding: 8px 10px;
            }
            .settings-panel .chart-tab {
                font-size: 0.6rem;
                padding: 3px 4px;
            }
        }