﻿
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        /* ========== CSS变量系统 - 极简商务 v3.0 ========== */
        :root {
            /* 主题色 - 精致商务蓝
               桥接到 shared/design-tokens.css 的 --color-primary 体系（其 :root 已定义
               --primary: var(--color-primary)）。此前此处硬编码 hex 会覆盖 design-tokens，
               导致改令牌真源不生效；改为 var() 引用后，编辑 design-tokens.css 即可统一驱动品牌色，
               同时 [data-color] 换肤仍由 base.css 自身的皮肤块接管（加载顺序在后，优先级更高）。 */
            --primary: var(--color-primary, #2563eb);
            --primary-light: var(--color-primary-light, #3b82f6);
            --primary-dark: var(--color-primary-dark, #1d4ed8);
            --primary-glow: var(--color-primary-glow, rgba(37, 99, 235, 0.15));
            --primary-glow-strong: var(--color-primary-glow-lg, rgba(37, 99, 235, 0.3));
            --primary-gradient: var(--color-primary-gradient, linear-gradient(135deg, #2563eb 0%, #3b82f6 100%));
            --primary-gradient-soft: linear-gradient(135deg, rgba(37,99,235,0.1) 0%, rgba(59,130,246,0.08) 100%);
            
            /* 辅助色 - 低饱和度 */
            --gold: #f59e0b;
            --cyan: #06b6d4;
            
            /* 背景 - 深色模式（默认深色） */
            --bg-primary: #0f172a;
            --bg-secondary: #1e293b;
            --bg-tertiary: #334155;
            --bg-card: #1e293b;
            --bg-card-hover: #334155;
            --bg-sidebar: #0f172a;
            --bg-header: #1e293b;
            --bg-overlay: rgba(0, 0, 0, 0.7);
            --bg-float: #1e293b;
            
            /* 边框 - 深色细线 */
            --border-color: #334155;
            --border-color-light: #1e293b;
            --border-color-hover: #475569;
            
            /* 文字 - 清晰层级 */
            --text-primary: #f1f5f9;
            --text-secondary: #cbd5e1;
            --text-tertiary: #94a3b8;
            --text-muted: #64748b;
            
            /* 功能色 - 柔和版 */
            --success: var(--color-success);
            --success-light: var(--color-success-light);
            --success-bg: var(--color-success-bg);
            --success-glow: rgba(34, 197, 94, 0.3);
            --warning: var(--color-warning);
            --warning-light: var(--color-warning-light);
            --warning-bg: var(--color-warning-bg);
            --warning-glow: rgba(245, 158, 11, 0.3);
            --danger: var(--color-danger);
            --danger-light: var(--color-danger-light);
            --danger-bg: var(--color-danger-bg);
            --danger-glow: rgba(239, 68, 68, 0.3);
            --info: var(--color-info);                  /* 修正：原 #3b82f6 蓝，与品牌色混淆 */
            --info-bg: var(--color-info-bg);
            
            /* 阴影系统 - 深色版本 */
            --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4), 0 1px 2px rgba(0, 0, 0, 0.3);
            --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.5), 0 2px 4px rgba(0, 0, 0, 0.3);
            --shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.6), 0 4px 10px rgba(0, 0, 0, 0.4);
            --shadow-xl: 0 20px 40px rgba(0, 0, 0, 0.7), 0 8px 16px rgba(0, 0, 0, 0.5);
            --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
            --shadow-glow: 0 0 20px rgba(37, 99, 235, 0.2);
            
            /* 圆角 - 精致圆润 */
            --radius-xs: 4px;
            --radius-sm: 6px;
            --radius-md: 8px;
            --radius-lg: 12px;
            --radius-xl: 14px;
            --radius-full: 9999px;
            
            /* 间距 */
            
            /* 过渡动效 - 精致克制 */
            --transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);
            --transition-normal: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
            --transition-bounce: 0.3s cubic-bezier(0.34, 1.3, 0.64, 1);
            
            /* 玻璃拟态 - 极轻量 */
            --glass-blur: 12px;
            --glass-border: rgba(255, 255, 255, 0.08);
            --glass-highlight: rgba(255, 255, 255, 0.05);
            
            /* 字体权重 */
            --font-regular: 400;
            --font-medium: 500;
            --font-semibold: 600;
            --font-bold: 700;

            /* 字体大小基准（可通过JS动态调整） */
            --font-size-base: 14px;
            --font-size-sm: 12px;
            --font-size-md: 14px;
            --font-size-lg: 16px;
            --font-size-xl: 18px;
            
            /* Z-index 层级 */
        }

        /* 浅色模式 v3.0 - 完整变量覆盖
           作用域同时覆盖 [data-theme="light"] 与「未显式指定深色」的 :root，
           确保首帧（data-theme 尚未由 JS 写入）也按浅色渲染，消除启动骨架屏深色闪烁(FOUC) */
        :root:not([data-theme="dark"]), [data-theme="light"] {
            /* 背景 - 极简浅色 */
            --bg-primary: #f8fafc;
            --bg-secondary: #fff;
            --bg-tertiary: #f1f5f9;
            --bg-card: #fff;
            --bg-card-hover: #f8fafc;
            --bg-sidebar: #fff;
            --bg-header: rgba(255, 255, 255, 0.98);
            --bg-overlay: rgba(15, 23, 42, 0.5);
            --bg-float: #fff;
            
            /* 边框 - 精致细线 */
            --border-color: #e2e8f0;
            --border-color-light: #f1f5f9;
            --border-color-hover: #cbd5e1;
            
            /* 文字 - 清晰层级 */
            --text-primary: #0f172a;
            --text-secondary: #475569;
            --text-tertiary: #64748b;
            --text-muted: #64748b;
            
            /* 功能色 - 柔和版（浅色背景下降低不透明度） */
            --success-bg: rgba(34, 197, 94, 0.1);
            --success-glow: rgba(34, 197, 94, 0.2);
            --warning-bg: rgba(245, 158, 11, 0.1);
            --warning-glow: rgba(245, 158, 11, 0.2);
            --danger-bg: rgba(239, 68, 68, 0.1);
            --danger-glow: rgba(239, 68, 68, 0.2);
            --info-bg: rgba(59, 130, 246, 0.1);
            
            /* 阴影系统 - 精致柔和 */
            --shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.06), 0 1px 2px rgba(15, 23, 42, 0.04);
            --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.08), 0 2px 4px rgba(15, 23, 42, 0.04);
            --shadow-lg: 0 10px 25px rgba(15, 23, 42, 0.1), 0 4px 10px rgba(15, 23, 42, 0.06);
            --shadow-xl: 0 20px 40px rgba(15, 23, 42, 0.12), 0 8px 16px rgba(15, 23, 42, 0.08);
            --shadow-card: 0 1px 3px rgba(15, 23, 42, 0.05), 0 1px 2px rgba(15, 23, 42, 0.03);
            --shadow-glow: 0 0 20px rgba(37, 99, 235, 0.1);
            
            /* 玻璃拟态 - 极轻量 */
            --glass-border: rgba(226, 232, 240, 0.8);
            --glass-highlight: rgba(255, 255, 255, 0.9);
        }

        /* 深色模式 v3.0 - 完整变量定义（与 :root 默认值一致） */
        [data-theme="dark"] {
            /* 背景 - 深色模式 */
            --bg-primary: #0f172a;
            --bg-secondary: #1e293b;
            --bg-tertiary: #334155;
            --bg-card: #1e293b;
            --bg-card-hover: #334155;
            --bg-sidebar: #0f172a;
            --bg-header: #1e293b;
            --bg-overlay: rgba(0, 0, 0, 0.7);
            --bg-float: #1e293b;
            
            /* 边框 - 深色细线 */
            --border-color: #334155;
            --border-color-light: #1e293b;
            --border-color-hover: #475569;
            
            /* 文字 - 清晰层级 */
            --text-primary: #f1f5f9;
            --text-secondary: #cbd5e1;
            --text-tertiary: #94a3b8;
            --text-muted: #64748b;
            
            /* 功能色 - 柔和版 */
            --success-bg: rgba(34, 197, 94, 0.15);
            --success-glow: rgba(34, 197, 94, 0.3);
            --warning-bg: rgba(245, 158, 11, 0.15);
            --warning-glow: rgba(245, 158, 11, 0.3);
            --danger-bg: rgba(239, 68, 68, 0.15);
            --danger-glow: rgba(239, 68, 68, 0.3);
            --info-bg: rgba(59, 130, 246, 0.15);
            
            /* 阴影系统 - 深色版本 */
            --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.4), 0 1px 2px rgba(0, 0, 0, 0.3);
            --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.5), 0 2px 4px rgba(0, 0, 0, 0.3);
            --shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.6), 0 4px 10px rgba(0, 0, 0, 0.4);
            --shadow-xl: 0 20px 40px rgba(0, 0, 0, 0.7), 0 8px 16px rgba(0, 0, 0, 0.5);
            --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2);
            --shadow-glow: 0 0 20px rgba(37, 99, 235, 0.2);
            
            /* 玻璃拟态 - 极轻量 */
            --glass-border: rgba(255, 255, 255, 0.08);
            --glass-highlight: rgba(255, 255, 255, 0.05);
        }

        /* 主题色变体 v2.0 - 完整变量覆盖 */
        [data-color="blue"] { --primary: #007dff; --primary-light: #3398ff; --primary-dark: #06c; --primary-glow: rgba(0, 125, 255, 0.2); --primary-glow-strong: rgba(0, 125, 255, 0.35); --primary-gradient: linear-gradient(135deg, #007dff 0%, #3398ff 100%); }
        [data-color="indigo"] { --primary: #5e5ce6; --primary-light: #7b79ed; --primary-dark: #4a48d9; --primary-glow: rgba(94, 92, 230, 0.2); --primary-glow-strong: rgba(94, 92, 230, 0.35); --primary-gradient: linear-gradient(135deg, #5e5ce6 0%, #7b79ed 100%); }
        [data-color="purple"] { --primary: #bf5af2; --primary-light: #cc7df5; --primary-dark: #a845e0; --primary-glow: rgba(191, 90, 242, 0.2); --primary-glow-strong: rgba(191, 90, 242, 0.35); --primary-gradient: linear-gradient(135deg, #bf5af2 0%, #cc7df5 100%); }
        [data-color="pink"] { --primary: #ff375f; --primary-light: #ff5d7d; --primary-dark: #e8254d; --primary-glow: rgba(255, 55, 95, 0.2); --primary-glow-strong: rgba(255, 55, 95, 0.35); --primary-gradient: linear-gradient(135deg, #ff375f 0%, #ff5d7d 100%); }
        [data-color="red"] { --primary: #ff453a; --primary-light: #ff6b62; --primary-dark: #e0352d; --primary-glow: rgba(255, 69, 58, 0.2); --primary-glow-strong: rgba(255, 69, 58, 0.35); --primary-gradient: linear-gradient(135deg, #ff453a 0%, #ff6b62 100%); }
        [data-color="orange"] { --primary: #ff9f0a; --primary-light: #ffb340; --primary-dark: #e88d00; --primary-glow: rgba(255, 159, 10, 0.2); --primary-glow-strong: rgba(255, 159, 10, 0.35); --primary-gradient: linear-gradient(135deg, #ff9f0a 0%, #ffb340 100%); }
        [data-color="yellow"] { --primary: #ffd60a; --primary-light: #ffe04d; --primary-dark: #e6c000; --primary-glow: rgba(255, 214, 10, 0.2); --primary-glow-strong: rgba(255, 214, 10, 0.35); --primary-gradient: linear-gradient(135deg, #ffd60a 0%, #ffe04d 100%); }
        [data-color="green"] { --primary: #30d158; --primary-light: #5edb7e; --primary-dark: #22b547; --primary-glow: rgba(48, 209, 88, 0.2); --primary-glow-strong: rgba(48, 209, 88, 0.35); --primary-gradient: linear-gradient(135deg, #30d158 0%, #5edb7e 100%); }
        [data-color="teal"] { --primary: #64d2ff; --primary-light: #85dcff; --primary-dark: #45c5f5; --primary-glow: rgba(100, 210, 255, 0.2); --primary-glow-strong: rgba(100, 210, 255, 0.35); --primary-gradient: linear-gradient(135deg, #64d2ff 0%, #85dcff 100%); }
        [data-color="cyan"] { --primary: #32ade6; --primary-light: #5cc0ed; --primary-dark: #2595c9; --primary-glow: rgba(50, 173, 230, 0.2); --primary-glow-strong: rgba(50, 173, 230, 0.35); --primary-gradient: linear-gradient(135deg, #32ade6 0%, #5cc0ed 100%); }
        [data-color="mint"] { --primary: #00c7be; --primary-light: #33d2cb; --primary-dark: #00a89f; --primary-glow: rgba(0, 199, 190, 0.2); --primary-glow-strong: rgba(0, 199, 190, 0.35); --primary-gradient: linear-gradient(135deg, #00c7be 0%, #33d2cb 100%); }
        [data-color="brown"] { --primary: #a2845e; --primary-light: #b79d7d; --primary-dark: #8b6d48; --primary-glow: rgba(162, 132, 94, 0.2); --primary-glow-strong: rgba(162, 132, 94, 0.35); --primary-gradient: linear-gradient(135deg, #a2845e 0%, #b79d7d 100%); }
        [data-color="gray"] { --primary: #8e8e93; --primary-light: #a6a6ab; --primary-dark: #76767a; --primary-glow: rgba(142, 142, 147, 0.2); --primary-glow-strong: rgba(142, 142, 147, 0.35); --primary-gradient: linear-gradient(135deg, #8e8e93 0%, #a6a6ab 100%); }
        [data-color="gold"] { --primary: #c9a063; --primary-light: #d4af37; --primary-dark: #b08b4a; --primary-glow: rgba(201, 160, 99, 0.2); --primary-glow-strong: rgba(201, 160, 99, 0.35); --primary-gradient: linear-gradient(135deg, #c9a063 0%, #d4af37 100%); }
        [data-color="rose"] { --primary: #ff2d55; --primary-light: #ff5d7d; --primary-dark: #e81e47; --primary-glow: rgba(255, 45, 85, 0.2); --primary-glow-strong: rgba(255, 45, 85, 0.35); --primary-gradient: linear-gradient(135deg, #ff2d55 0%, #ff5d7d 100%); }
        [data-color="violet"] { --primary: #af52de; --primary-light: #c278e6; --primary-dark: #9a3dcc; --primary-glow: rgba(175, 82, 222, 0.2); --primary-glow-strong: rgba(175, 82, 222, 0.35); --primary-gradient: linear-gradient(135deg, #af52de 0%, #c278e6 100%); }
        [data-color="navy"] { --primary: #0040dd; --primary-light: #3366e4; --primary-dark: #03a; --primary-glow: rgba(0, 64, 221, 0.2); --primary-glow-strong: rgba(0, 64, 221, 0.35); --primary-gradient: linear-gradient(135deg, #0040dd 0%, #3366e4 100%); }
        [data-color="steel"] { --primary: #4a90d9; --primary-light: #6ba8e2; --primary-dark: #3a7bc8; --primary-glow: rgba(74, 144, 217, 0.2); --primary-glow-strong: rgba(74, 144, 217, 0.35); --primary-gradient: linear-gradient(135deg, #4a90d9 0%, #6ba8e2 100%); }

        /* ========== VIP专属主题：晨曦·金 ========== */
        [data-color="morning-gold"] {
            --primary: #E8C547;
            --primary-light: #F4D03F;
            --primary-dark: #B8960C;
            --primary-glow: rgba(232, 197, 71, 0.18);
            --primary-glow-strong: rgba(232, 197, 71, 0.3);
            --primary-gradient: linear-gradient(135deg, #E8C547 0%, #F4D03F 100%);
            --primary-gradient-soft: linear-gradient(135deg, rgba(232,197,71,0.12) 0%, rgba(244,208,63,0.06) 100%);
            --vip-accent: #E8C547;
            --vip-accent-light: #FFF5DB;
            --vip-accent-dark: #8B7355;
            --vip-bg-tint: #FFFBF2;
            --vip-border: rgba(232, 197, 71, 0.15);
        }

        /* 浅色模式下晨曦金 - 温润奶金基底 */
        [data-theme="light"][data-color="morning-gold"] {
            --bg-primary: #FFFBF2;
            --bg-secondary: #FFFDF8;
            --bg-tertiary: #FFF8E7;
            --bg-card: rgba(255, 255, 255, 0.85);
            --bg-sidebar: #FFFDF8;
            --bg-header: rgba(255, 253, 248, 0.95);
            --border-color: rgba(232, 197, 71, 0.15);
            --border-color-light: rgba(232, 197, 71, 0.08);
            --text-primary: #5C4D32;
            --text-secondary: #8B7355;
            --text-tertiary: #B8A88A;
        }

        /* 深色模式下晨曦金 - 暖调黑金 */
        [data-theme="dark"][data-color="morning-gold"] {
            --bg-primary: #1a1507;
            --bg-secondary: #252010;
            --bg-tertiary: #2d2615;
            --bg-card: #252010;
            --bg-sidebar: #1a1507;
            --bg-header: #252010;
            --border-color: rgba(232, 197, 71, 0.15);
            --border-color-light: rgba(232, 197, 71, 0.08);
            --primary: #F4D03F;
            --primary-light: #FFE066;
            --primary-dark: #E8C547;
            --primary-glow: rgba(244, 208, 63, 0.25);
            --primary-glow-strong: rgba(244, 208, 63, 0.4);
            --text-primary: #f0e6c8;
            --text-secondary: #d4c8a0;
            --text-tertiary: #a89870;
        }

        /* ========== VIP专属主题：薄雾·蓝 ========== */
        [data-color="mist-blue"] {
            --primary: #60A5FA;
            --primary-light: #93C5FD;
            --primary-dark: #3B82F6;
            --primary-glow: rgba(96, 165, 250, 0.18);
            --primary-glow-strong: rgba(96, 165, 250, 0.3);
            --primary-gradient: linear-gradient(135deg, #60A5FA 0%, #3B82F6 100%);
            --primary-gradient-soft: linear-gradient(135deg, rgba(96,165,250,0.12) 0%, rgba(59,130,246,0.06) 100%);
            --vip-accent: #60A5FA;
            --vip-accent-light: #DBEAFE;
            --vip-accent-dark: #1E40AF;
            --vip-bg-tint: #F0F7FF;
            --vip-border: rgba(96, 165, 250, 0.15);
        }

        /* 浅色模式下薄雾蓝 - 清冷雾霾基底 */
        [data-theme="light"][data-color="mist-blue"] {
            --bg-primary: #F0F7FF;
            --bg-secondary: #F8FBFF;
            --bg-tertiary: #EFF6FF;
            --bg-card: rgba(255, 255, 255, 0.85);
            --bg-sidebar: #F8FBFF;
            --bg-header: rgba(248, 251, 255, 0.95);
            --border-color: rgba(96, 165, 250, 0.15);
            --border-color-light: rgba(96, 165, 250, 0.08);
            --text-primary: #1E3A8A;
            --text-secondary: #3B5998;
            --text-tertiary: #64748B;
        }

        /* 深色模式下薄雾蓝 - 深邃雾蓝 */
        [data-theme="dark"][data-color="mist-blue"] {
            --bg-primary: #0f172a;
            --bg-secondary: #1e293b;
            --bg-tertiary: #334155;
            --bg-card: #1e293b;
            --bg-sidebar: #0f172a;
            --bg-header: #1e293b;
            --border-color: rgba(96, 165, 250, 0.2);
            --border-color-light: rgba(96, 165, 250, 0.1);
            --primary: #60A5FA;
            --primary-light: #93C5FD;
            --primary-dark: #3B82F6;
            --primary-glow: rgba(96, 165, 250, 0.25);
            --primary-glow-strong: rgba(96, 165, 250, 0.4);
        }

        /* ========== VIP专属主题：暮光·紫 ========== */
        [data-color="twilight-purple"] {
            --primary: #A855F7;
            --primary-light: #C084FC;
            --primary-dark: #7C3AED;
            --primary-glow: rgba(168, 85, 247, 0.18);
            --primary-glow-strong: rgba(168, 85, 247, 0.3);
            --primary-gradient: linear-gradient(135deg, #A855F7 0%, #7C3AED 100%);
            --primary-gradient-soft: linear-gradient(135deg, rgba(168,85,247,0.12) 0%, rgba(124,58,237,0.06) 100%);
            --vip-accent: #A855F7;
            --vip-accent-light: #F3E8FF;
            --vip-accent-dark: #581C87;
            --vip-bg-tint: #FAF5FF;
            --vip-border: rgba(168, 85, 247, 0.15);
        }

        /* VIP专属：渐变文字（三款通用） */

        /* VIP专属：柔光边框卡片 */

        /* ========== 深色模式组件覆盖 ========== */
        [data-theme="dark"] body::before {
            background: radial-gradient(ellipse at center, rgba(37, 99, 235, 0.15) 0%, transparent 60%);
            opacity: 1;
        }

        [data-theme="dark"] body::after {
            background: radial-gradient(ellipse at center, rgba(37, 99, 235, 0.1) 0%, transparent 55%);
            opacity: 1;
        }

        [data-theme="dark"] .grid-bg {
            background-image: radial-gradient(rgba(148, 163, 184, 0.25) 1px, transparent 1px);
        }

        [data-theme="dark"] .app-container::before {
            background: radial-gradient(circle, rgba(37, 99, 235, 0.1) 0%, transparent 65%);
        }

        [data-theme="dark"] .app-container::after {
            background: radial-gradient(circle, rgba(37, 99, 235, 0.07) 0%, transparent 60%);
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', 'HarmonyOS Sans', sans-serif;
            background: var(--bg-primary);
            color: var(--text-primary);
            overflow: hidden;
            height: 100vh;
            user-select: none;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            text-rendering: optimizeLegibility;
            position: relative;
            font-weight: var(--font-regular);
            font-size: var(--font-size-base);
            line-height: 1.6;
            letter-spacing: 0.01em;
            /* 性能优化：减少重绘区域 */
            contain: layout style;
            /* UI chrome 防误选；内容区与输入框在下文放开，恢复复制单号/店铺名/聊天记录 */
            user-select: none;
        }

        /* 内容区/输入框放开文本选择：复制运单号、店铺名、聊天记录是揽收工具刚需，
           全局 user-select:none 会阻断这一核心操作，故在内容容器与表单控件上恢复 */
        .content-area,
        .chat-messages,
        .shop-list,
        .waybill-list,
        textarea,
        input {
            -webkit-user-select: text;
            user-select: text;
        }

        /* 字体大小模式 */
        body[data-font-size="small"] {
            --font-size-base: 12px;
            --font-size-sm: 11px;
            --font-size-md: 12px;
            --font-size-lg: 14px;
            --font-size-xl: 16px;
        }

        body[data-font-size="large"] {
            --font-size-base: 16px;
            --font-size-sm: 13px;
            --font-size-md: 15px;
            --font-size-lg: 17px;
            --font-size-xl: 20px;
        }

        /* 排版系统 v2.0 - 更清晰的层级 */
        h1, h2, h3, h4, h5, h6 {
            font-weight: var(--font-semibold);
            line-height: 1.3;
            letter-spacing: -0.01em;
        }

        /* 极简微光晕 - 极简商务风 */
        body::before {
            content: '';
            position: fixed;
            top: -10%;
            right: -5%;
            width: 40%;
            height: 40%;
            background: radial-gradient(ellipse at center, rgba(37, 99, 235, 0.08) 0%, transparent 60%);
            opacity: 1;
            pointer-events: none;
            z-index: 0;
            filter: blur(80px);
        }

        body::after {
            content: '';
            position: fixed;
            bottom: -15%;
            left: -10%;
            width: 35%;
            height: 35%;
            background: radial-gradient(ellipse at center, rgba(37, 99, 235, 0.05) 0%, transparent 55%);
            opacity: 1;
            pointer-events: none;
            z-index: 0;
            filter: blur(70px);
        }

        /* 粒子背景画布 */
        #particlesCanvas {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 1;
            opacity: 0.25;
        }

        /* 点阵网格背景 - 极简商务风 */
        .grid-bg {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 0;
            background-image: radial-gradient(rgba(148, 163, 184, 0.15) 1px, transparent 1px);
            background-size: 24px 24px;
            mask-image: radial-gradient(ellipse at 60% 40%, black 30%, transparent 80%);
            -webkit-mask-image: radial-gradient(ellipse at 60% 40%, black 30%, transparent 80%);
            opacity: 1;
        }

        /* 细微噪点纹理 - 增加质感 */
        body > .noise-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            pointer-events: none;
            z-index: 3;
            opacity: 0.015;
            background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
        }

        /* 鼠标跟随光晕 - 极简商务风 */
        .cursor-glow {
            position: fixed;
            width: 300px;
            height: 300px;
            border-radius: 50%;
            background: radial-gradient(circle, rgba(37, 99, 235, 0.08) 0%, transparent 70%);
            pointer-events: none;
            z-index: 2;
            transform: translate(-50%, -50%);
            opacity: 0;
            transition: opacity 0.3s ease;
        }

        /* ========== 背景动效等级控制系统 ========== */
        /* 默认（低等级）：网格 + 噪点 */
        body::before,
        body::after {
            transition: opacity 0.5s ease;
        }
        .grid-bg,
        .noise-overlay,
        #particlesCanvas,
        .cursor-glow {
            transition: opacity 0.5s ease;
        }

        /* 等级: minimal - 极简（纯色背景） */
        [data-bg-level="minimal"] body::before { opacity: 0; }
        [data-bg-level="minimal"] body::after { opacity: 0; }
        [data-bg-level="minimal"] .grid-bg { opacity: 0; }
        [data-bg-level="minimal"] .noise-overlay { opacity: 0; }
        [data-bg-level="minimal"] #particlesCanvas { opacity: 0; }
        [data-bg-level="minimal"] .cursor-glow { opacity: 0 !important; }

        /* 等级: low - 低（网格 + 噪点，推荐） */
        [data-bg-level="low"] body::before { opacity: 0; }
        [data-bg-level="low"] body::after { opacity: 0; }
        [data-bg-level="low"] .grid-bg { opacity: 1; }
        [data-bg-level="low"] .noise-overlay { opacity: 0.015; }
        [data-bg-level="low"] #particlesCanvas { opacity: 0; }
        [data-bg-level="low"] .cursor-glow { opacity: 0 !important; }

        /* 等级: medium - 中（网格 + 噪点 + 鼠标光晕 + 微弱光晕） */
        [data-bg-level="medium"] body::before { opacity: 0.5; }
        [data-bg-level="medium"] body::after { opacity: 0.4; }
        [data-bg-level="medium"] .grid-bg { opacity: 1; }
        [data-bg-level="medium"] .noise-overlay { opacity: 0.015; }
        [data-bg-level="medium"] #particlesCanvas { opacity: 0; }
        [data-bg-level="medium"] .cursor-glow { opacity: 1; }

        /* 等级: high - 高（全部动效） */
        [data-bg-level="high"] body::before { opacity: 1; }
        [data-bg-level="high"] body::after { opacity: 1; }
        [data-bg-level="high"] .grid-bg { opacity: 1; }
        [data-bg-level="high"] .noise-overlay { opacity: 0.015; }
        [data-bg-level="high"] #particlesCanvas { opacity: 0.25; }
        [data-bg-level="high"] .cursor-glow { opacity: 1; }

        @keyframes auraOrbit1 {
            0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.6; }
            25% { transform: translate(40px, -30px) scale(1.1); opacity: 0.7; }
            50% { transform: translate(-20px, 20px) scale(0.95); opacity: 0.5; }
            75% { transform: translate(30px, 10px) scale(1.05); opacity: 0.65; }
        }

        @keyframes auraOrbit2 {
            0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.5; }
            33% { transform: translate(-30px, -20px) scale(1.15); opacity: 0.6; }
            66% { transform: translate(20px, 25px) scale(0.9); opacity: 0.4; }
        }

        /* ========== 自定义标题栏 ========== */
        .titlebar {
            height: 36px;
            background: var(--bg-primary);
            border-bottom: 1px solid var(--border-color);
            display: flex;
            align-items: center;
            flex-shrink: 0;
            position: relative;
            z-index: 100;
        }

        .titlebar-left {
            display: flex;
            align-items: center;
            padding: 0 8px;
            gap: 8px;
            flex-shrink: 0;
        }

        .titlebar-text {
            font-size: 12px;
            font-weight: 500;
            color: var(--text-secondary);
            letter-spacing: 0.5px;
        }

        .titlebar-drag {
            flex: 1;
            height: 100%;
            cursor: default;
            -webkit-app-region: drag;
        }

        .titlebar-right {
            display: flex;
            align-items: center;
            height: 100%;
            flex-shrink: 0;
        }

        .titlebar-btn {
            width: 36px;
            height: 36px;
            background: transparent;
            border: none;
            color: var(--text-secondary);
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            border-radius: 6px;
            transition: all var(--transition-fast);
            position: relative;
            flex-shrink: 0;
        }

        .titlebar-btn:hover {
            background: var(--bg-tertiary);
            color: var(--text-primary);
        }

        .titlebar-btn:active {
            transform: scale(0.92);
        }

        .titlebar-btn.close:hover {
            background: var(--danger);
            color: white;
        }

        .titlebar-btn svg {
            display: block;
        }

        .titlebar-btn.icon-btn {
            width: 36px;
            height: 36px;
        }

        /* 任务中心按钮：图标 + 文字，明确可识别 */
        .titlebar-btn.task-center-btn {
            width: auto;
            height: 36px;
            padding: 0 10px;
            gap: 5px;
            font-size: 13px;
            font-weight: 500;
            color: var(--text-secondary);
        }

        .titlebar-btn.task-center-btn:hover {
            color: var(--primary);
            background: var(--bg-tertiary);
        }

        .titlebar-btn.task-center-btn span {
            line-height: 1;
        }

        .titlebar-btn.icon-btn:hover {
            color: var(--primary);
        }

        /* 标题栏侧边栏折叠按钮 */
        .titlebar-sidebar-toggle {
            width: 36px;
            height: 36px;
            background: transparent;
            border: none;
            color: var(--text-secondary);
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            border-radius: 6px;
            margin-right: 0;
            transition: all 0.15s ease;
            flex-shrink: 0;
        }

        .titlebar-sidebar-toggle:hover {
            background: var(--bg-tertiary);
            color: var(--text-primary);
        }

        .titlebar-sidebar-toggle:active {
            transform: scale(0.92);
        }

        .titlebar-sidebar-toggle svg {
            transition: transform 0.2s ease;
            display: block;
        }

        /* 折叠状态：箭头翻转指向右侧 */
        body.sidebar-collapsed .titlebar-sidebar-toggle svg,
        body.chat-sidebar-collapsed .titlebar-sidebar-toggle svg {
            transform: scaleX(-1);
        }

        .titlebar-sidebar-toggle:active svg {
            transform: scale(0.9);
        }

        body.sidebar-collapsed .titlebar-sidebar-toggle:active svg,
        body.chat-sidebar-collapsed .titlebar-sidebar-toggle:active svg {
            transform: scaleX(-1) scale(0.9);
        }

        /* 主题切换时禁用过渡 */
        body.theme-switching * {
            transition: none !important;
        }

        /* ========== 整体布局 ========== */
        .app-container {
            display: flex;
            flex-direction: column;
            height: 100vh;
            background: var(--bg-primary);
            position: relative;
            overflow: hidden;
        }

        /* 氛围光晕 - 极简版 */
        .app-container::before {
            content: '';
            position: absolute;
            top: -150px;
            left: -100px;
            width: 400px;
            height: 400px;
            background: radial-gradient(circle, rgba(37, 99, 235, 0.06) 0%, transparent 65%);
            border-radius: 50%;
            pointer-events: none;
            z-index: 0;
        }

        .app-container::after {
            content: '';
            position: absolute;
            bottom: -150px;
            right: -100px;
            width: 500px;
            height: 500px;
            background: radial-gradient(circle, rgba(37, 99, 235, 0.04) 0%, transparent 60%);
            border-radius: 50%;
            pointer-events: none;
            z-index: 0;
        }

        .app-body {
            display: flex;
            flex: 1;
            overflow: hidden;
            position: relative;
            z-index: 1;
        }

        /* ========== 侧边栏 - 极简商务风 ========== */
        .sidebar {
            width: 280px;
            background: var(--bg-sidebar);
            border-right: 1px solid var(--border-color);
            display: flex;
            flex-direction: column;
            flex-shrink: 0;
            position: relative;
            overflow: hidden;
            transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .sidebar.collapsed {
            width: 0;
            border-right: none;
        }

        .sidebar.collapsed .sidebar-header,
        .sidebar.collapsed .shop-list,
        .sidebar.collapsed .sidebar-footer {
            opacity: 0;
            pointer-events: none;
        }

        /* 侧边栏切换按钮（统一位置，左侧垂直居中） */
        .sidebar-toggle-btn {
            position: absolute;
            top: 50%;
            left: 280px;
            transform: translateY(-50%);
            width: 22px;
            height: 44px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-left: none;
            border-radius: 0 8px 8px 0;
            color: var(--text-tertiary);
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            z-index: 50;
            box-shadow: 2px 2px 8px rgba(0,0,0,0.1);
            transition: left 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                        background 0.2s, color 0.2s, box-shadow 0.2s;
        }

        .sidebar-toggle-btn:hover {
            background: var(--primary);
            color: white;
            border-color: var(--primary);
            box-shadow: 2px 4px 12px var(--primary-glow);
        }

        .sidebar-toggle-btn:active {
            transform: translateY(-50%) scale(0.95);
        }

        /* 折叠状态：按钮移到最左侧，箭头翻转 */
        .sidebar.collapsed ~ .sidebar-toggle-btn {
            left: 0;
        }

        .sidebar.collapsed ~ .sidebar-toggle-btn svg {
            transform: rotate(180deg);
        }

        .sidebar-toggle-btn svg {
            transition: transform 0.3s ease;
        }

        /* 侧边栏右边界 - 极简版 */
        .sidebar::after {
            display: none;
        }

        /* 精致滚动条 */
        ::-webkit-scrollbar {
            width: 6px;
            height: 6px;
        }

        ::-webkit-scrollbar-track {
            background: transparent;
        }

        ::-webkit-scrollbar-thumb {
            background: var(--border-color-light);
            border-radius: 3px;
            transition: all var(--transition-fast);
        }

        ::-webkit-scrollbar-thumb:hover {
            background: var(--primary);
            box-shadow: 0 0 8px var(--primary-glow);
        }

        ::-webkit-scrollbar-corner {
            background: transparent;
        }

        .sidebar-header {
            padding: 20px 16px 16px;
            border-bottom: 1px solid var(--border-color);
            position: relative;
        }

        .sidebar-header::after {
            content: '';
            position: absolute;
            bottom: -1px;
            left: 16px;
            right: 16px;
            height: 1px;
            background: linear-gradient(90deg, transparent, var(--glass-highlight), transparent);
            opacity: 0.5;
        }

        .add-shop-btn {
            width: 100%;
            height: 42px;
            margin-top: 14px;
            border: 1px dashed var(--border-color-hover);
            background: transparent;
            color: var(--text-secondary);
            border-radius: var(--radius-lg);
            font-size: 13px;
            font-weight: var(--font-medium);
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 8px;
            transition: all var(--transition-bounce);
            position: relative;
            overflow: hidden;
        }

        .add-shop-btn:hover {
            background: var(--bg-card);
            border-color: var(--primary);
            color: var(--primary);
            transform: translateY(-1px);
            box-shadow: var(--shadow-sm);
            border-style: solid;
        }

        .add-shop-btn:active {
            transform: translateY(0) scale(0.98);
            transition-duration: 0.1s;
        }

        .add-shop-btn::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, var(--primary-glow), transparent);
            transition: left 0.5s ease;
        }

        .add-shop-btn:hover {
            border-color: var(--primary);
            color: var(--primary);
            background: var(--primary-glow);
            transform: translateY(-1px);
        }

        .add-shop-btn:hover::before {
            left: 100%;
        }

        .add-shop-icon {
            font-size: 16px;
            font-weight: 300;
        }

        /* 搜索框 - 极简商务风 */
        .search-box {
            position: relative;
        }

        .search-input {
            width: 100%;
            height: 40px;
            padding: 0 12px 0 40px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            color: var(--text-primary);
            font-size: 13px;
            outline: none;
            transition: all var(--transition-fast);
        }

        .search-input:hover {
            border-color: var(--border-color-hover);
        }

        .search-input:focus {
            border-color: var(--primary);
            box-shadow: 0 0 0 3px var(--primary-glow);
            background: var(--bg-card);
        }

        .search-input::placeholder {
            color: var(--text-tertiary);
        }

        .search-icon {
            position: absolute;
            left: 14px;
            top: 50%;
            transform: translateY(-50%);
            color: var(--text-tertiary);
            font-size: 14px;
            transition: color var(--transition-fast);
            pointer-events: none;
        }

        .search-box:hover .search-icon {
            color: var(--text-secondary);
        }

        .search-input:focus + .search-icon {
            color: var(--primary);
        }

        /* 店铺列表 */
        .shop-list {
            flex: 1;
            overflow-y: auto;
            padding: 12px 8px;
        }

        .shop-list::-webkit-scrollbar {
            width: 4px;
        }

        .shop-list::-webkit-scrollbar-track {
            background: transparent;
        }

        .shop-list::-webkit-scrollbar-thumb {
            background: var(--border-color-light);
            border-radius: 2px;
        }

        .shop-group-title {
            font-size: 11px;
            font-weight: 600;
            color: var(--text-tertiary);
            padding: 8px 8px 6px;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            display: flex;
            align-items: center;
            gap: 6px;
        }

        .shop-group-title::before {
            content: '';
            width: 3px;
            height: 12px;
            background: linear-gradient(180deg, var(--primary), var(--gold));
            border-radius: 2px;
        }

        .shop-card {
            display: flex;
            align-items: center;
            padding: 10px 104px 10px 12px;
            margin-bottom: 6px;
            border-radius: var(--radius-lg);
            cursor: pointer;
            transition: all var(--transition-bounce);
            position: relative;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
        }

        /* 顶部高光 - 极简版 */
        .shop-card::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 1px;
            background: rgba(255, 255, 255, 0.5);
            opacity: 0;
            transition: opacity var(--transition-normal);
            pointer-events: none;
        }

        /* 扫光效果 - 已隐藏 */
        .shop-card::before {
            display: none;
        }

        .shop-card:hover {
            background: var(--bg-tertiary);
            border-color: var(--border-color);
            transform: translateX(2px);
        }

        .shop-card:hover::after {
            opacity: 0.4;
        }

        .shop-card:hover .shop-avatar {
            transform: scale(1.04);
        }

        .shop-card.active {
            background: var(--bg-tertiary);
            border-color: var(--border-color);
            transform: translateX(2px);
            box-shadow: none;
        }

        .shop-card.active::after {
            opacity: 0.5;
        }

        /* 选中指示器 */
        .shop-card .active-indicator {
            position: absolute;
            left: 0;
            top: 50%;
            transform: translateY(-50%) scaleY(0);
            width: 3px;
            height: 24px;
            background: var(--primary);
            border-radius: 0 3px 3px 0;
            transition: transform var(--transition-normal);
            transform-origin: center;
        }

        .shop-card.active .active-indicator {
            transform: translateY(-50%) scaleY(1);
        }

        .shop-avatar {
            width: 36px;
            height: 36px;
            border-radius: var(--radius-lg);
            background: linear-gradient(135deg, var(--primary), var(--primary-dark));
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 13px;
            font-weight: 600;
            color: white;
            margin-right: 12px;
            flex-shrink: 0;
            position: relative;
            box-shadow: 0 1px 3px rgba(37, 99, 235, 0.15);
            overflow: hidden;
            transition: all var(--transition-normal);
        }

        .shop-avatar img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
            border-radius: inherit;
        }

        .shop-avatar-text {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 100%;
            height: 100%;
            font-size: 14px;
            font-weight: 600;
            color: white;
            text-shadow: 0 1px 2px rgba(0,0,0,0.2);
        }

        .shop-avatar::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(135deg, rgba(255,255,255,0.25) 0%, transparent 50%);
            border-radius: inherit;
            pointer-events: none;
        }

        .shop-avatar::before {
            display: none;
        }

        .shop-avatar .status-dot {
            position: absolute;
            bottom: -2px;
            right: -2px;
            width: 10px;
            height: 10px;
            border-radius: 50%;
            border: 2px solid var(--bg-sidebar);
        }

        .status-dot.online { background: var(--success); }
        .status-dot.offline { background: var(--text-muted); }
        .status-dot.loading { 
            background: var(--warning);
            animation: pulse 1.5s ease-in-out infinite;
        }
        .status-dot.login-required {
            background: var(--warning);
            animation: pulse 1s ease-in-out infinite;
            box-shadow: 0 0 0 2px rgba(245, 158, 11, 0.25);
        }

        @keyframes pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.5; }
        }

        .shop-info {
            flex: 1;
            min-width: 0;
        }

        .shop-name {
            font-size: 13px;
            font-weight: var(--font-medium);
            color: var(--text-primary);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            line-height: 1.4;
            display: flex;
            align-items: center;
            gap: 6px;
        }

        .shop-platform-tag {
            display: inline-block;
            font-size: 10px;
            font-weight: var(--font-medium);
            color: #fff;
            padding: 1px 5px;
            border-radius: 3px;
            line-height: 1.4;
            flex-shrink: 0;
        }

        .shop-remark {
            font-size: 11px;
            color: var(--text-tertiary);
            margin-top: 3px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            line-height: 1.4;
        }

        .shop-badge {
            position: absolute;
            right: 76px;
            top: 50%;
            transform: translateY(-50%);
            min-width: 20px;
            height: 18px;
            padding: 0 6px;
            background: var(--danger);
            color: white;
            font-size: 11px;
            font-weight: 600;
            border-radius: 9px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .shop-badge.zero {
            background: var(--danger);
            color: white;
        }

        .shop-badge.dots {
            gap: 3px;
            min-width: 26px;
        }

        .shop-badge .bd-dot {
            width: 4px;
            height: 4px;
            border-radius: 50%;
            background: currentColor;
            animation: bdBounce 1.1s ease-in-out infinite;
        }

        .shop-badge .bd-dot:nth-child(2) { animation-delay: 0.15s; }
        .shop-badge .bd-dot:nth-child(3) { animation-delay: 0.3s; }

        @keyframes bdBounce {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-3px); }
        }

        .shop-card .shop-actions {
            position: absolute;
            right: 12px;
            top: 50%;
            transform: translateY(-50%);
            display: flex;
            gap: 3px;
            align-items: center;
        }

        .shop-more {
            width: 22px;
            height: 22px;
            border-radius: var(--radius-sm);
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            color: var(--text-secondary);
            position: relative;
            flex-shrink: 0;
        }

        .shop-more:hover {
            color: var(--primary);
            background: var(--bg-tertiary);
        }

        /* 更多菜单：挂载在 body 的浮层（fixed 定位由 JS 计算坐标），不受卡片层叠上下文与列表 overflow 裁剪影响 */
        .shop-menu {
            position: fixed;
            z-index: 10000;
            min-width: 130px;
            background: var(--bg-primary);
            border: 1px solid var(--border-color);
            border-radius: 10px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.14);
            padding: 5px;
            display: none;
        }

        .shop-menu-item {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 7px 10px;
            border-radius: 7px;
            font-size: 13px;
            color: var(--text-primary);
            cursor: pointer;
            white-space: nowrap;
        }

        .shop-menu-item:hover {
            background: var(--bg-tertiary);
        }

        .shop-menu-item.danger {
            color: var(--danger);
        }

        .shop-menu-item svg {
            flex-shrink: 0;
        }

        .shop-action-btn {
            width: 22px;
            height: 22px;
            border-radius: var(--radius-sm);
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            font-size: 11px;
            color: var(--text-secondary);
            transition: all var(--transition-normal);
            flex-shrink: 0;
            opacity: 0.85;
        }

        .shop-action-btn svg {
            width: 12px;
            height: 12px;
        }

        .shop-action-btn.stop-btn {
            width: 28px;
            height: 28px;
            background: linear-gradient(135deg, #ef4444, #dc2626) !important;
            color: white !important;
            border: none !important;
            border-radius: var(--radius-sm);
            box-shadow: 0 2px 6px rgba(239, 68, 68, 0.3);
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 1;
        }

        .shop-action-btn.stop-btn:hover {
            background: linear-gradient(135deg, var(--danger), #dc2626);
            color: white;
            border-color: transparent;
            opacity: 1;
        }

        .shop-action-btn:hover {
            background: var(--bg-card-hover);
            color: var(--primary);
            border-color: var(--primary);
            opacity: 1;
            transform: scale(1.08);
        }

        .shop-action-btn.primary {
            width: 24px;
            height: 24px;
            background: linear-gradient(135deg, var(--primary), var(--primary-dark));
            color: white;
            border: none;
            font-size: 12px;
            font-weight: 600;
            box-shadow: 0 2px 6px var(--primary-glow);
            opacity: 1;
        }

        .shop-action-btn.primary:hover {
            transform: scale(1.1) translateY(-1px);
            box-shadow: 0 3px 10px var(--primary-glow);
        }

        .shop-action-btn.relogin-btn {
            width: 24px;
            height: 24px;
            background: var(--warning);
            color: white;
            border: none;
            box-shadow: 0 2px 6px rgba(245, 158, 11, 0.4);
            opacity: 1;
        }

        .shop-action-btn.relogin-btn:hover {
            transform: scale(1.1) translateY(-1px);
            box-shadow: 0 3px 10px rgba(245, 158, 11, 0.55);
        }

        /* 置顶标记 */
        .top-icon {
            position: absolute;
            top: 6px;
            left: 6px;
            font-size: 10px;
            color: var(--gold);
        }

        /* 侧边栏底部 */
        .sidebar-footer {
            padding: 0; /* 内部 sidebar-auth-entry 已有 padding 和 border-top，避免双线 */
        }

        /* ========== 主内容区 ========== */
        .main-content {
            flex: 1;
            display: flex;
            flex-direction: column;
            overflow: hidden;
            background: var(--bg-primary);
            position: relative;
        }

        /* 顶部栏 - 极简商务风 */
        .top-bar {
            height: 64px;
            padding: 0 28px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            background: var(--bg-header);
            border-bottom: 1px solid var(--border-color);
            flex-shrink: 0;
            position: relative;
        }

        .page-title {
            font-size: 18px;
            font-weight: var(--font-bold);
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 12px;
            letter-spacing: 0.02em;
        }

        .page-title .title-accent {
            width: 3px;
            height: 20px;
            background: var(--primary);
            border-radius: 2px;
            position: relative;
        }

        .top-actions {
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .top-action-btn {
            width: 38px;
            height: 38px;
            border-radius: var(--radius-lg);
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            font-size: 16px;
            color: var(--text-secondary);
            transition: all var(--transition-bounce);
            position: relative;
            overflow: hidden;
        }

        .top-action-btn::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 50%;
            background: linear-gradient(180deg, rgba(255,255,255,0.06) 0%, transparent 100%);
            pointer-events: none;
            border-radius: var(--radius-lg) var(--radius-lg) 0 0;
        }

        .top-action-btn:hover {
            background: var(--bg-card);
            color: var(--primary);
            border-color: var(--border-color-hover);
            transform: translateY(-1px) scale(1.05);
            box-shadow: var(--shadow-sm);
        }

        .top-action-btn:active {
            transform: translateY(0) scale(0.95);
            transition-duration: 0.1s;
        }

        .notification-bell-btn {
            position: relative;
        }

        .notification-badge {
            position: absolute;
            top: 4px;
            right: 4px;
            min-width: 16px;
            height: 16px;
            padding: 0 4px;
            background: var(--danger);
            color: white;
            font-size: 10px;
            font-weight: 600;
            border-radius: 8px;
            display: flex;
            align-items: center;
            justify-content: center;
            line-height: 1;
            animation: badgePulse 2s ease-in-out infinite;
        }

        @keyframes badgePulse {
            0%, 100% { transform: scale(1); }
            50% { transform: scale(1.1); }
        }

        .top-action-btn.primary {
            width: auto;
            padding: 0 18px;
            background: var(--primary-gradient);
            color: white;
            border: none;
            font-size: 13px;
            font-weight: var(--font-medium);
            gap: 6px;
            box-shadow: 0 2px 8px var(--primary-glow);
        }

        .top-action-btn.primary::before {
            background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
        }

        .top-action-btn.primary:hover {
            transform: translateY(-2px) scale(1.02);
            box-shadow: 0 6px 20px var(--primary-glow), 0 2px 8px var(--primary-glow-strong);
        }

        /* 内容区域 v2.0 - 呼吸感增强 */
        .content-area {
            flex: 1;
            overflow-y: auto;
            padding: 16px 20px;
            scroll-behavior: smooth;
        }

        .content-area::-webkit-scrollbar {
            width: 8px;
        }

        .content-area::-webkit-scrollbar-track {
            background: transparent;
            margin: 4px 0;
        }

        /* 经典模式下：彻底隐藏所有对话模式的浮动元素，防止切换后残留 */
        body:not(.chat-mode-body) .chat-sidebar,
        body:not(.chat-mode-body) .chat-mascot,
        body:not(.chat-mode-body) .chat-shop-suggest-floating,
        body:not(.chat-mode-body) .chat-float-actions-fixed,
        body:not(.chat-mode-body) #mascotSuggestPortal {
            display: none !important;
            visibility: hidden !important;
            opacity: 0 !important;
            pointer-events: none !important;
        }

        .content-area::-webkit-scrollbar-thumb {
            background: var(--border-color-light);
            border-radius: 4px;
            transition: background var(--transition-normal);
        }

        .content-area::-webkit-scrollbar-thumb:hover {
            background: var(--border-color);
        }

        /* 数据标签HUD风格 */

        /* ========== 统计卡片 - 极简商务风 ========== */
        .stats-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
            gap: 14px;
            margin-bottom: 20px;
        }

        .stat-card {
            padding: 16px 18px;
            position: relative;
            overflow: hidden;
            display: flex;
            align-items: center;
            gap: 14px;
            cursor: default;
        }

        /* 左侧色条 */
        .stat-card::before {
            content: '';
            position: absolute;
            left: 0;
            top: 0;
            bottom: 0;
            width: 3px;
            background: var(--stat-accent, var(--primary));
            opacity: 0.8;
            transition: width .2s;
        }

        .stat-card:hover::before {
            width: 4px;
            opacity: 1;
        }

        .stat-icon-wrap {
            width: 46px;
            height: 46px;
            border-radius: var(--radius-lg);
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            position: relative;
            transition: all .25s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .stat-card:hover .stat-icon-wrap {
            transform: scale(1.08);
        }

        .stat-icon-wrap.blue {
            background: var(--color-primary-glow);
            color: var(--primary);
            --stat-accent: var(--primary);
        }

        .stat-icon-wrap.green {
            background: var(--color-success-bg);
            color: var(--success);
            --stat-accent: var(--success);
        }

        .stat-icon-wrap.orange {
            background: var(--color-warning-bg);
            color: var(--warning);
            --stat-accent: var(--warning);
        }

        .stat-icon-wrap.red {
            background: var(--color-danger-bg);
            color: var(--danger);
            --stat-accent: var(--danger);
        }

        .stat-icon {
            font-size: 22px;
            line-height: 1;
            position: relative;
            z-index: 1;
        }

        .stat-info {
            flex: 1;
            min-width: 0;
            position: relative;
            z-index: 1;
        }

        .stat-value {
            font-size: 30px;
            font-weight: var(--font-bold);
            color: var(--text-primary);
            line-height: 1.1;
            letter-spacing: -0.01em;
            transition: all var(--transition-normal);
            font-variant-numeric: tabular-nums;
            position: relative;
            background: var(--stat-gradient, var(--primary-gradient));
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            display: flex;
            align-items: center;
            gap: 2px;
        }

        /* 数字翻牌器 - 极简版（普通渐变文字） */
        .flip-digit {
            position: relative;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 0.6em;
            height: 1em;
        }

        .flip-digit-inner {
            width: 100%;
            height: 100%;
        }

        .flip-digit.flipping .flip-digit-inner {
            animation: flipFade 0.3s ease-out;
        }

        @keyframes flipFade {
            0% { opacity: 1; transform: translateY(0); }
            50% { opacity: 0.4; transform: translateY(-2px); }
            100% { opacity: 1; transform: translateY(0); }
        }

        .flip-digit-card {
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            background: var(--stat-gradient, var(--primary-gradient));
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }

        .flip-digit-card.top {
            position: relative;
            align-items: center;
        }

        .flip-digit-card.bottom {
            display: none;
        }

        .flip-digit-card .digit-text {
            font-size: 30px;
            font-weight: var(--font-bold);
            line-height: 1;
            position: relative;
        }

        .flip-digit-card.top .digit-text {
            transform: none;
        }

        .flip-digit-card.bottom .digit-text {
            display: none;
        }

        /* 翻牌分割线 - 已隐藏 */
        .flip-divider {
            display: none;
        }

        /* 静态数字显示（简化版 - 没有翻牌效果时使用） */

        .stat-label {
            font-size: 13px;
            color: var(--text-secondary);
            margin-top: 6px;
            font-weight: var(--font-medium);
            letter-spacing: 0.02em;
        }

        /* ========== 筛选栏 ========== */
        .filter-bar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 16px;
            flex-wrap: wrap;
            gap: 12px;
        }

        .filter-left {
            display: flex;
            align-items: center;
            gap: 12px;
        }

        .section-title {
            font-size: 16px;
            font-weight: 600;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 10px;
            letter-spacing: 0.5px;
        }

        .section-title::before {
            content: '';
            width: 3px;
            height: 16px;
            background: var(--primary);
            border-radius: 2px;
        }

        .filter-tabs {
            display: flex;
            gap: 4px;
            border-bottom: 1px solid var(--border-color);
            padding: 0 4px;
        }

        .filter-tab {
            padding: 8px 16px;
            font-size: 12px;
            color: var(--text-secondary);
            cursor: pointer;
            transition: all var(--transition-fast);
            font-weight: 500;
            position: relative;
            border-bottom: 2px solid transparent;
            margin-bottom: -1px;
        }

        .filter-tab:hover {
            color: var(--text-primary);
        }

        .filter-tab.active {
            color: var(--primary);
            border-bottom-color: var(--primary);
            font-weight: 600;
        }

        .filter-right {
            display: flex;
            align-items: center;
            gap: 12px;
        }

        .copy-all-btn {
            padding: 6px 14px;
            font-size: 12px;
            font-weight: 500;
            color: var(--text-secondary);
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-sm);
            cursor: pointer;
            transition: all var(--transition-normal);
            display: flex;
            align-items: center;
            gap: 6px;
        }

        .copy-all-btn:hover {
            color: var(--primary);
            border-color: var(--primary);
            background: var(--primary-glow);
            transform: translateY(-1px);
        }

        .filter-action-btn {
            padding: 5px 10px;
            font-size: 11px;
            font-weight: 500;
            color: var(--text-secondary);
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-sm);
            cursor: pointer;
            transition: all var(--transition-normal);
            display: flex;
            align-items: center;
            gap: 4px;
        }

        .filter-action-btn:hover {
            color: var(--primary);
            border-color: var(--primary);
            background: var(--primary-glow);
            transform: translateY(-1px);
        }

        .company-filter {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            margin-bottom: 16px;
            padding: 12px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            backdrop-filter: blur(10px);
        }

        .company-tag {
            padding: 4px 12px;
            font-size: 12px;
            color: var(--text-secondary);
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-full);
            cursor: pointer;
            transition: all var(--transition-normal);
            font-weight: 500;
        }

        .company-tag:hover {
            color: var(--primary);
            border-color: var(--primary);
            transform: translateY(-1px);
        }

        .company-tag.active {
            background: linear-gradient(135deg, var(--primary), var(--primary-dark));
            color: white;
            border-color: transparent;
            box-shadow: 0 2px 8px var(--primary-glow);
        }

        .company-tag:hover {
            border-color: var(--primary);
            color: var(--primary);
        }

        .company-tag.active {
            background: var(--primary);
            color: white;
            border-color: var(--primary);
        }

        /* ========== 运单列表 ========== */
        .waybill-section {
            margin-bottom: 24px;
            background: transparent;
        }

        .waybill-list {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-lg);
            overflow: hidden;
            box-shadow: var(--shadow-card);
        }

        .waybill-header {
            display: grid;
            grid-template-columns: 50px 1fr 120px 120px 100px;
            padding: 12px 16px;
            background: var(--bg-tertiary);
            border-bottom: 1px solid var(--border-color);
            font-size: 12px;
            font-weight: 600;
            color: var(--text-secondary);
        }

        /* 按快递公司分组 */
        .waybill-company-group {
            margin-bottom: 16px;
            border-radius: var(--radius-md);
            overflow: hidden;
            border: 1px solid var(--border-color);
        }

        .waybill-company-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 12px 16px;
            background: var(--bg-tertiary);
            border-bottom: 1px solid var(--border-color);
        }

        .waybill-company-title {
            display: flex;
            align-items: center;
            gap: 8px;
            font-size: 14px;
            font-weight: 600;
            color: var(--text-primary);
        }

        .company-dot {
            width: 8px;
            height: 8px;
            border-radius: 50%;
            background: linear-gradient(135deg, var(--primary), var(--primary-light));
            box-shadow: 0 0 8px var(--primary-glow);
        }

        .company-count {
            font-size: 12px;
            font-weight: 500;
            color: var(--text-tertiary);
            background: var(--bg-secondary);
            padding: 2px 8px;
            border-radius: var(--radius-full);
        }

        .waybill-company-actions {
            display: flex;
            gap: 8px;
        }

        .company-action-btn {
            padding: 6px 12px;
            font-size: 12px;
            font-weight: 500;
            color: var(--text-secondary);
            background: var(--bg-secondary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-sm);
            cursor: pointer;
            transition: all var(--transition-normal);
            display: flex;
            align-items: center;
            gap: 4px;
        }

        .company-action-btn:hover {
            color: var(--primary);
            border-color: var(--primary);
            background: var(--primary-glow);
            transform: translateY(-1px);
        }

        .company-action-btn.primary {
            background: linear-gradient(135deg, var(--primary), var(--primary-dark));
            color: white;
            border: none;
            box-shadow: 0 2px 8px var(--primary-glow);
        }

        .company-action-btn.primary:hover {
            transform: translateY(-1px);
            box-shadow: 0 4px 12px var(--primary-glow);
            color: white;
        }

        .company-action-btn.sending {
            opacity: 0.85;
            animation: pulse 1.5s infinite;
            cursor: pointer;
        }

        @keyframes pulse {
            0%, 100% { opacity: 1; }
            50% { opacity: 0.7; }
        }

        .waybill-item {
            display: grid;
            grid-template-columns: 50px 1fr 120px 120px 100px;
            padding: 14px 16px;
            border-bottom: 1px solid var(--border-color-light);
            transition: background-color var(--transition-fast);
            align-items: center;
            background: var(--bg-card);
        }

        .waybill-item:last-child {
            border-bottom: none;
        }

        .waybill-item:hover {
            background: var(--bg-card-hover);
        }

        .waybill-index {
            font-size: 13px;
            font-weight: 600;
            color: var(--text-tertiary);
        }

        .waybill-info {
            min-width: 0;
        }

        .waybill-number {
            font-size: 13px;
            font-weight: 500;
            color: var(--text-primary);
            font-family: 'SF Mono', 'Consolas', monospace;
            letter-spacing: 0.5px;
        }

        .waybill-company {
            font-size: 11px;
            color: var(--text-tertiary);
            margin-top: 3px;
            display: inline-block;
            padding: 2px 6px;
            background: var(--bg-tertiary);
            border-radius: var(--radius-xs);
        }

        .waybill-time {
            font-size: 12px;
            color: var(--text-secondary);
        }

        .waybill-status {
            font-size: 12px;
            padding: 4px 10px;
            border-radius: var(--radius-full);
            text-align: center;
            display: inline-flex;
            align-items: center;
            gap: 4px;
            font-weight: 500;
        }

        .waybill-status svg {
            width: 12px;
            height: 12px;
            flex-shrink: 0;
        }

        .waybill-status.warning {
            background: var(--warning-bg);
            color: var(--warning);
        }

        .waybill-status.danger {
            background: var(--danger-bg);
            color: var(--danger);
        }

        .waybill-status.info {
            background: var(--info-bg);
            color: var(--info);
        }

        .waybill-status.success {
            background: var(--success-bg);
            color: var(--success);
        }

        .waybill-actions {
            display: flex;
            gap: 6px;
            justify-content: flex-end;
        }

        .waybill-action-btn {
            width: 28px;
            height: 28px;
            border-radius: var(--radius-sm);
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            font-size: 13px;
            color: var(--text-secondary);
            transition: all var(--transition-fast);
        }

        .waybill-action-btn:hover {
            background: var(--primary);
            color: white;
            border-color: var(--primary);
        }

        .waybill-empty {
            padding: 60px 20px;
            text-align: center;
            color: var(--text-tertiary);
            font-size: 14px;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 12px;
        }

        .waybill-empty-icon {
            width: 72px;
            height: 72px;
            border-radius: 50%;
            background: var(--bg-secondary);
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 0.6;
            margin-bottom: 4px;
        }

        .waybill-empty-icon svg {
            width: 36px;
            height: 36px;
        }

        .waybill-empty-text {
            font-size: 14px;
            color: var(--text-secondary);
        }

        .waybill-empty-hint {
            font-size: 12px;
            color: var(--text-tertiary);
        }

        .waybill-empty-action {
            margin-top: 8px;
            padding: 8px 20px;
            font-size: 13px;
            font-weight: 500;
            color: white;
            background: linear-gradient(135deg, var(--primary), var(--primary-dark));
            border: none;
            border-radius: var(--radius-md);
            cursor: pointer;
            transition: all var(--transition-normal);
            box-shadow: 0 2px 8px var(--primary-glow);
        }

        .waybill-empty-action:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 16px var(--primary-glow);
        }

        /* ========== 统一运单列表 v2 ========== */

        /* 通用卡片 */
        .wb-card {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-lg);
            transition: border-color .2s, box-shadow .2s, transform .2s;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
        }

        .wb-card:hover {
            border-color: var(--border-color-hover);
            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08), 0 4px 8px rgba(0, 0, 0, 0.04);
            transform: translateY(-1px);
        }

        /* 统计卡行 */
        .wb-stats-row {
            display: flex;
            gap: 12px;
            margin-bottom: 14px;
        }

        .wb-stat-card {
            flex: 1;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-lg);
            padding: 14px 16px;
            display: flex;
            align-items: center;
            gap: 12px;
            position: relative;
            overflow: hidden;
            transition: border-color .2s, transform .2s;
            cursor: default;
        }

        .wb-stat-card:hover {
            border-color: var(--border-color-hover);
            transform: translateY(-1px);
        }

        .wb-stat-bar {
            position: absolute;
            left: 0;
            top: 0;
            bottom: 0;
            width: 3px;
            transition: width .25s ease;
        }

        .wb-stat-card:hover .wb-stat-bar {
            width: 4px;
        }

        .wb-stat-bar-total { background: linear-gradient(180deg, #6366f1, #8b5cf6); }
        .wb-stat-bar-danger { background: linear-gradient(180deg, #ef4444, #dc2626); }
        .wb-stat-bar-warning { background: linear-gradient(180deg, #f59e0b, #d97706); }
        .wb-stat-bar-success { background: linear-gradient(180deg, #10b981, #059669); }

        .wb-stat-icon {
            width: 40px;
            height: 40px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            transition: transform .25s ease;
        }

        .wb-stat-card:hover .wb-stat-icon {
            transform: scale(1.08);
        }

        .wb-stat-icon-total {
            background: rgba(99, 102, 241, 0.12);
            color: #818cf8;
        }

        .wb-stat-icon-danger {
            background: rgba(239, 68, 68, 0.12);
            color: #f87171;
        }

        .wb-stat-icon-warning {
            background: rgba(245, 158, 11, 0.12);
            color: #fbbf24;
        }

        .wb-stat-icon-success {
            background: rgba(16, 185, 129, 0.12);
            color: #34d399;
        }

        .wb-stat-info {
            min-width: 0;
            flex: 1;
        }

        .wb-stat-num {
            font-size: 22px;
            font-weight: 700;
            line-height: 1.2;
            color: var(--text-primary);
            font-family: 'JetBrains Mono', 'SF Mono', Consolas, monospace;
        }

        .wb-stat-label {
            font-size: 12px;
            color: var(--text-tertiary);
            margin-top: 2px;
        }

        /* 快递分布 + 活动日志 左右布局 */
        .dist-log-row {
            display: flex;
            gap: 14px;
            margin-bottom: 16px;
            height: 200px;
        }

        .dist-col {
            min-width: 0;
        }

        .dist-col-left {
            flex: 0 0 60%;
        }

        .dist-col-right {
            flex: 0 0 calc(40% - 14px);
        }

        .wb-dist-chart {
            width: 100%;
            height: 100%;
            background: var(--bg-card);
            border-radius: var(--radius-lg);
            padding: 14px 16px 12px;
            border: 1px solid var(--border-color);
            display: flex;
            flex-direction: column;
            box-sizing: border-box;
        }

        .wb-dist-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 10px;
            gap: 16px;
        }

        .wb-dist-title-row {
            display: flex;
            align-items: baseline;
            gap: 10px;
        }

        .wb-dist-title {
            font-size: 14px;
            font-weight: 700;
            color: var(--text-primary);
        }

        .wb-dist-hint {
            font-size: 11px;
            color: var(--text-tertiary);
            opacity: 0.6;
        }

        .wb-dist-mini-stats {
            display: flex;
            align-items: center;
            gap: 14px;
        }

        .wb-mini-stat {
            display: flex;
            align-items: baseline;
            gap: 4px;
            font-size: 11px;
            color: var(--text-tertiary);
        }

        .wb-mini-stat b {
            font-size: 15px;
            font-weight: 700;
            color: var(--text-primary);
        }

        .wb-mini-stat.danger b { color: var(--danger); }
        .wb-mini-stat.warning b { color: var(--warning); }
        .wb-mini-stat.success b { color: var(--success); }

        #wbDistChart {
            width: 100%;
            flex: 1;
            min-height: 120px;
            cursor: pointer;
        }

        /* 搜索筛选栏 */
        .wb-list-card {
            overflow: hidden;
            display: flex;
            flex-direction: column;
        }

        .wb-list-card .waybill-toolbar {
            border: none;
            border-bottom: 1px solid var(--border-color-light);
            background: var(--bg-card);
        }

        .waybill-toolbar {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 16px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-bottom: none;
        }

        .wb-search {
            position: relative;
            flex: 0 0 220px;
        }

        .wb-search svg {
            position: absolute;
            left: 10px;
            top: 50%;
            transform: translateY(-50%);
            color: var(--text-tertiary);
            pointer-events: none;
            z-index: 1;
        }

        .wb-search input {
            width: 100%;
            height: 32px;
            padding: 0 12px 0 32px;
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            color: var(--text-primary);
            font-size: 13px;
            outline: none;
            transition: border-color .2s;
            box-sizing: border-box;
        }

        .wb-search input:focus {
            border-color: var(--primary);
        }

        .wb-filters {
            flex: 1;
            display: flex;
            align-items: center;
            gap: 8px;
            justify-content: flex-end;
        }

        /* 自定义下拉 */
        .wb-dropdown {
            position: relative;
            display: inline-block;
        }

        .wb-dropdown-trigger {
            height: 32px;
            padding: 0 30px 0 12px;
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            color: var(--text-primary);
            font-size: 13px;
            font-weight: 500;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 6px;
            transition: border-color .2s, background-color .2s, box-shadow .2s;
            position: relative;
            user-select: none;
            min-width: 100px;
        }

        .wb-dropdown-trigger:hover {
            border-color: var(--primary-light, #6366f1);
            background: var(--bg-secondary);
        }

        .wb-dropdown.open .wb-dropdown-trigger {
            border-color: var(--primary);
            box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
        }

        .wb-dropdown-label {
            flex: 1;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .wb-dropdown-arrow {
            position: absolute;
            right: 10px;
            top: 50%;
            transform: translateY(-50%);
            color: var(--text-secondary, #94a3b8);
            transition: transform .2s ease, color .2s ease;
            pointer-events: none;
        }

        .wb-dropdown.open .wb-dropdown-arrow {
            transform: translateY(-50%) rotate(180deg);
            color: var(--primary);
        }

        .wb-dropdown-menu {
            position: absolute;
            top: calc(100% + 6px);
            left: 0;
            min-width: 100%;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.06);
            padding: 6px;
            z-index: 1000;
            opacity: 0;
            visibility: hidden;
            transform: translateY(-6px);
            transition: opacity .15s ease, transform .15s ease, visibility .15s;
            max-height: 280px;
            overflow-y: auto;
        }

        .wb-dropdown.open .wb-dropdown-menu {
            opacity: 1;
            visibility: visible;
            transform: translateY(0);
        }

        .wb-dropdown-menu::-webkit-scrollbar {
            width: 6px;
        }

        .wb-dropdown-menu::-webkit-scrollbar-track {
            background: transparent;
        }

        .wb-dropdown-menu::-webkit-scrollbar-thumb {
            background: var(--border-color);
            border-radius: 3px;
        }

        .wb-dropdown-item {
            padding: 8px 12px;
            font-size: 13px;
            color: var(--text-primary);
            border-radius: 6px;
            cursor: pointer;
            transition: background-color .15s, color .15s;
            white-space: nowrap;
            position: relative;
            padding-right: 28px;
        }

        .wb-dropdown-item:hover {
            background: var(--bg-secondary);
        }

        .wb-dropdown-item.active {
            background: rgba(99, 102, 241, 0.1);
            color: var(--primary);
            font-weight: 500;
        }

        .wb-dropdown-item.active::after {
            content: '';
            position: absolute;
            right: 10px;
            top: 50%;
            transform: translateY(-50%);
            width: 14px;
            height: 14px;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236366f1' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
            background-size: contain;
            background-repeat: no-repeat;
        }

        .wb-tool-btn-sm {
            height: 28px;
            padding: 0 10px;
            font-size: 12px;
            gap: 4px;
        }

        .wb-tool-btn-sm svg {
            width: 12px;
            height: 12px;
        }

        .wb-tool-btn {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            height: 32px;
            padding: 0 12px;
            background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
            border: none;
            border-radius: 8px;
            color: #fff;
            font-size: 12px;
            font-weight: 500;
            cursor: pointer;
            transition: all .18s;
            white-space: nowrap;
        }

        .wb-tool-btn:hover {
            transform: translateY(-1px);
            box-shadow: 0 4px 12px var(--primary-glow);
        }

        .wb-tool-btn:active {
            transform: translateY(0);
        }

        .wb-stats-bar {
            display: flex;
            align-items: center;
            gap: 0;
            padding: 10px 16px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-bottom: none;
        }

        .wb-stat {
            flex: 1;
            display: flex;
            align-items: baseline;
            gap: 6px;
            justify-content: center;
        }

        .wb-stat-num {
            font-size: 18px;
            font-weight: 700;
            color: var(--text-primary);
        }

        .wb-stat-num.wb-danger { color: var(--danger); }
        .wb-stat-num.wb-warning { color: var(--warning); }
        .wb-stat-num.wb-success { color: var(--success); }

        .wb-stat-label {
            font-size: 12px;
            color: var(--text-tertiary);
        }

        .waybill-list-v2 {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-bottom: none;
            overflow: hidden;
        }

        .waybill-header-v2 {
            display: flex;
            align-items: center;
            padding: 0 16px;
            height: 40px;
            background: linear-gradient(180deg, var(--bg-secondary) 0%, var(--bg-card) 100%);
            border-bottom: 1px solid var(--border-color);
            font-size: 12px;
            font-weight: 600;
            color: var(--text-secondary);
            position: sticky;
            top: 0;
            z-index: 2;
        }

        .wb-col-check { width: 40px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
        .wb-col-index { width: 44px; flex-shrink: 0; text-align: center; color: var(--text-tertiary); font-weight: 500; }
        .wb-col-number { flex: 1.5; min-width: 0; padding-left: 4px; font-weight: 500; }
        .wb-col-shop { flex: 1.2; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-secondary); }
        .wb-col-company { flex: 0.9; min-width: 0; }
        .wb-col-time { flex: 0.9; min-width: 0; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
        .wb-col-status { flex: 1.1; min-width: 0; }
        .wb-col-actions { width: 130px; flex-shrink: 0; display: flex; gap: 6px; justify-content: flex-end; opacity: 0.8; transition: opacity .2s; }
        .wb-row:hover .wb-col-actions { opacity: 1; }

        .wb-scroll-container {
            position: relative;
            height: 420px;
            overflow-y: auto;
            overflow-x: hidden;
            scrollbar-width: thin;
            scrollbar-color: var(--border-color) transparent;
        }

        .wb-scroll-container::-webkit-scrollbar {
            width: 6px;
        }

        .wb-scroll-container::-webkit-scrollbar-track {
            background: transparent;
        }

        .wb-scroll-container::-webkit-scrollbar-thumb {
            background: var(--border-color);
            border-radius: 3px;
        }

        .wb-scroll-container::-webkit-scrollbar-thumb:hover {
            background: var(--text-tertiary);
        }

        .wb-spacer {
            width: 100%;
            pointer-events: none;
        }

        .wb-viewport {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            will-change: transform;
        }

        .wb-row {
            display: flex;
            align-items: center;
            padding: 0 16px;
            border-bottom: 1px solid var(--border-color-light);
            font-size: 13px;
            color: var(--text-primary);
            transition: background-color .15s ease;
            box-sizing: border-box;
            position: relative;
        }

        .wb-row::before {
            content: '';
            position: absolute;
            left: 0;
            top: 0;
            bottom: 0;
            width: 3px;
            background: transparent;
            transition: background-color .15s;
        }

        .wb-row:hover {
            background: var(--bg-hover);
        }

        .wb-row:hover::before {
            background: var(--primary);
        }

        .wb-row.selected {
            background: rgba(0, 122, 255, 0.06);
        }

        .wb-row.selected::before {
            background: var(--primary);
        }

        .wb-row.processed {
            opacity: 0.55;
        }

        .wb-row.processed .wb-number-text {
            text-decoration: line-through;
        }

        .wb-number-text {
            font-family: 'JetBrains Mono', 'Consolas', 'SF Mono', monospace;
            font-size: 12.5px;
            font-weight: 600;
            letter-spacing: 0.2px;
        }

        .wb-badge {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            padding: 3px 10px;
            border-radius: 12px;
            font-size: 11px;
            font-weight: 600;
            line-height: 1.4;
        }

        .wb-badge.danger {
            background: rgba(255, 69, 58, 0.1);
            color: var(--danger);
            border: 1px solid rgba(255, 69, 58, 0.2);
        }

        .wb-badge.warning {
            background: rgba(255, 159, 10, 0.1);
            color: var(--warning);
            border: 1px solid rgba(255, 159, 10, 0.2);
        }

        .wb-row-btn {
            width: 28px;
            height: 28px;
            display: flex;
            align-items: center;
            justify-content: center;
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: 7px;
            color: var(--text-secondary);
            cursor: pointer;
            transition: all .18s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .wb-row-btn:hover {
            background: var(--primary);
            border-color: var(--primary);
            color: #fff;
            transform: translateY(-1px);
            box-shadow: 0 2px 8px var(--primary-glow);
        }

        .wb-row-btn:active {
            transform: translateY(0);
        }

        .wb-row-btn.active {
            background: var(--success);
            border-color: var(--success);
            color: #fff;
        }

        .wb-empty {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            padding: 60px 20px;
            color: var(--text-tertiary);
        }

        .wb-empty-text {
            font-size: 14px;
            color: var(--text-secondary);
            margin-bottom: 4px;
        }

        .wb-empty-hint {
            font-size: 12px;
            opacity: 0.7;
        }

        /* 批量操作栏 */
        .wb-batch-bar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 12px 16px;
            background: linear-gradient(180deg, var(--bg-card) 0%, var(--bg-secondary) 100%);
            border: 1px solid var(--border-color);
            border-radius: 0 0 var(--radius-lg) var(--radius-lg);
            box-shadow: 0 -1px 0 var(--border-color-light) inset;
        }

        .wb-batch-left {
            display: flex;
            align-items: center;
            gap: 16px;
        }

        .wb-batch-check {
            display: flex;
            align-items: center;
            gap: 7px;
            font-size: 13px;
            color: var(--text-secondary);
            cursor: pointer;
            user-select: none;
            transition: color .15s;
        }

        .wb-batch-check:hover {
            color: var(--text-primary);
        }

        .wb-batch-count {
            font-size: 13px;
            color: var(--text-tertiary);
            padding: 4px 12px;
            background: var(--bg-input);
            border-radius: 12px;
            border: 1px solid var(--border-color-light);
        }

        .wb-batch-count b {
            color: var(--primary);
            font-weight: 700;
            font-size: 14px;
            margin: 0 2px;
        }

        .wb-batch-right {
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .wb-batch-btn {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            height: 34px;
            padding: 0 16px;
            background: var(--bg-input);
            border: 1px solid var(--border-color);
            border-radius: 8px;
            color: var(--text-secondary);
            font-size: 13px;
            font-weight: 500;
            cursor: pointer;
            transition: all .18s cubic-bezier(0.4, 0, 0.2, 1);
        }

        .wb-batch-btn:hover {
            border-color: var(--primary);
            color: var(--primary);
            background: rgba(0, 122, 255, 0.05);
            transform: translateY(-1px);
        }

        .wb-batch-btn:active {
            transform: translateY(0);
        }

        .wb-batch-btn.primary {
            background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
            border-color: transparent;
            color: #fff;
            font-weight: 600;
            box-shadow: 0 2px 8px var(--primary-glow);
        }

        .wb-batch-btn.primary:hover {
            transform: translateY(-1.5px);
            box-shadow: 0 6px 16px var(--primary-glow);
            color: #fff;
        }

        /* 旧列表隐藏（新列表已替代） */
        .company-filter,
        .waybill-list .waybill-header,
        #waybillList {
            display: none !important;
        }

        /* ========== 活动日志 ========== */
        .log-box {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-lg);
            height: 100%;
            display: flex;
            flex-direction: column;
            overflow: hidden;
            box-sizing: border-box;
        }

        .log-box-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 12px 14px 10px;
            border-bottom: 1px solid var(--border-color-light);
            flex-shrink: 0;
            gap: 10px;
        }

        .log-box-title {
            font-size: 14px;
            font-weight: 700;
            color: var(--text-primary);
            flex-shrink: 0;
        }

        .log-filter-tabs.small {
            display: flex;
            gap: 2px;
            background: var(--bg-secondary);
            padding: 3px;
            border-radius: 7px;
        }

        .log-filter-tabs.small .log-filter-tab {
            padding: 3px 8px;
            font-size: 11px;
            border-radius: 5px;
        }

        .log-box .log-container {
            flex: 1;
            max-height: none;
            border: none;
            border-radius: 0;
        }

        .log-section {
            margin-bottom: 20px;
        }

        .log-container {
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 0 0 var(--radius-lg) var(--radius-lg);
            border-top: none;
            max-height: 240px;
            overflow-y: auto;
            position: relative;
            scrollbar-width: thin;
            scrollbar-color: var(--border-color) transparent;
        }

        .log-container::-webkit-scrollbar {
            width: 6px;
        }

        .log-container::-webkit-scrollbar-track {
            background: transparent;
        }

        .log-container::-webkit-scrollbar-thumb {
            background: var(--border-color);
            border-radius: 3px;
        }

        .log-container::-webkit-scrollbar-thumb:hover {
            background: var(--text-tertiary);
        }

        .log-item {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 9px 16px;
            border-bottom: 1px solid var(--border-color-light);
            font-size: 12.5px;
            transition: background-color .15s;
            position: relative;
        }

        .log-item::before {
            content: '';
            position: absolute;
            left: 0;
            top: 0;
            bottom: 0;
            width: 2px;
            background: transparent;
            transition: background-color .15s;
        }

        .log-item:last-child {
            border-bottom: none;
        }

        .log-item:hover {
            background: var(--bg-hover);
        }

        .log-item.new-entry {
            animation: logFadeIn 0.35s ease-out;
        }

        @keyframes logFadeIn {
            0% {
                background: rgba(0, 122, 255, 0.08);
                opacity: 0;
            }
            100% {
                background: transparent;
                opacity: 1;
            }
        }

        .log-item.success::before { background: var(--success); }
        .log-item.warning::before { background: var(--warning); }
        .log-item.error::before { background: var(--danger); }
        .log-item.info::before { background: var(--primary); }

        .log-time {
            color: var(--text-tertiary);
            flex-shrink: 0;
            font-family: 'SF Mono', 'Consolas', 'JetBrains Mono', monospace;
            font-size: 11.5px;
            font-variant-numeric: tabular-nums;
            min-width: 62px;
        }

        .log-type {
            flex-shrink: 0;
            padding: 2px 8px;
            border-radius: 10px;
            font-size: 11px;
            font-weight: 600;
            border: 1px solid transparent;
        }

        .log-type.info { background: rgba(0, 122, 255, 0.1); color: var(--primary); border-color: rgba(0, 122, 255, 0.15); }
        .log-type.success { background: rgba(48, 209, 88, 0.1); color: var(--success); border-color: rgba(48, 209, 88, 0.15); }
        .log-type.warning { background: rgba(255, 159, 10, 0.1); color: var(--warning); border-color: rgba(255, 159, 10, 0.15); }
        .log-type.error { background: rgba(255, 69, 58, 0.1); color: var(--danger); border-color: rgba(255, 69, 58, 0.15); }

        .log-message {
            color: var(--text-primary);
            flex: 1;
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
        }

        /* ========== 设置弹窗 ========== */
        .modal-overlay {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: var(--bg-overlay);
            backdrop-filter: blur(4px);
            -webkit-backdrop-filter: blur(4px);
            display: none;
            align-items: center;
            justify-content: center;
            z-index: 1000;
            animation: fadeIn 0.2s ease;
        }

        .modal-overlay.show {
            display: flex;
        }

        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }

        @keyframes slideUp {
            from { 
                opacity: 0;
                transform: translateY(20px);
            }
            to { 
                opacity: 1;
                transform: translateY(0);
            }
        }

        .modal {
            background: var(--bg-secondary, #ffffff);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-xl);
            width: 480px;
            max-height: 80vh;
            overflow: hidden;
            display: flex;
            flex-direction: column;
            box-shadow: var(--shadow-xl), 0 0 60px var(--primary-glow);
            animation: slideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1);
            backdrop-filter: blur(30px);
            -webkit-backdrop-filter: blur(30px);
            position: relative;
        }

        .modal::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 1px;
            background: linear-gradient(90deg, transparent, var(--primary), var(--gold), transparent);
            opacity: 0.6;
        }

        .modal-header {
            padding: 20px 24px;
            border-bottom: 1px solid var(--border-color);
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-shrink: 0;
            position: relative;
        }

        .modal-title {
            font-size: 16px;
            font-weight: 600;
            color: var(--text-primary, #0f172a);
            display: flex;
            align-items: center;
            gap: 10px;
            letter-spacing: 0.5px;
        }

        .modal-title::before {
            content: '';
            width: 4px;
            height: 18px;
            background: linear-gradient(180deg, var(--primary), var(--gold));
            border-radius: 2px;
            box-shadow: 0 0 10px var(--primary-glow);
        }

        .modal-close {
            width: 32px;
            height: 32px;
            border-radius: var(--radius-md);
            background: transparent;
            border: none;
            color: var(--text-secondary);
            font-size: 18px;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all var(--transition-fast);
        }

        .modal-close:hover {
            background: var(--bg-tertiary);
            color: var(--text-primary);
        }

        .modal-body {
            flex: 1;
            overflow-y: auto;
            padding: 20px 24px;
        }

        .modal-body::-webkit-scrollbar {
            width: 4px;
        }

        .modal-body::-webkit-scrollbar-track {
            background: transparent;
        }

        .modal-body::-webkit-scrollbar-thumb {
            background: var(--border-color-light);
            border-radius: 2px;
        }

        .settings-section {
            margin-bottom: 24px;
            background: var(--bg-secondary);
            border-radius: 12px;
            padding: 16px;
            border: 1px solid var(--border-color-light);
            transition: border-color 0.2s;
            display: none;
        }

        .settings-section.active {
            display: block;
        }

        .settings-section:hover {
            border-color: var(--border-color);
        }

        .settings-section-title {
            font-size: 13px;
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: 14px;
            display: flex;
            align-items: center;
            gap: 10px;
            padding-bottom: 10px;
            border-bottom: 1px solid var(--border-color-light);
        }

        .settings-section-title svg {
            width: 18px;
            height: 18px;
            color: var(--primary);
            opacity: 0.9;
        }

        /* 关于卡片 */
        .about-card {
            display: flex;
            align-items: center;
            gap: 14px;
            padding: 16px;
            background: linear-gradient(135deg, var(--primary-gradient-soft), var(--bg-tertiary));
            border-radius: 12px;
            margin-bottom: 14px;
            border: 1px solid var(--border-color-light);
            position: relative;
            overflow: hidden;
        }

        .about-card::before {
            content: '';
            position: absolute;
            top: -50%;
            right: -20%;
            width: 120px;
            height: 120px;
            background: radial-gradient(circle, var(--primary-glow) 0%, transparent 60%);
            border-radius: 50%;
        }

        .about-icon {
            width: 56px;
            height: 56px;
            border-radius: 14px;
            background: linear-gradient(135deg, var(--primary), var(--primary-light));
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            flex-shrink: 0;
            position: relative;
            box-shadow: 0 4px 15px var(--primary-glow);
        }

        .about-info {
            flex: 1;
        }

        .about-name {
            font-size: 18px;
            font-weight: 700;
            color: var(--text-primary);
            margin-bottom: 4px;
        }

        .about-version {
            font-size: 13px;
            color: var(--text-tertiary);
        }

        /* 设置弹窗底部版权信息 */
        .settings-copyright {
            text-align: center;
            font-size: 12px;
            color: var(--text-tertiary);
            padding: 16px 0 4px;
            margin-top: 8px;
            border-top: 1px solid var(--border-color-light);
        }

        .settings-copyright-link {
            color: var(--primary);
            text-decoration: none;
            margin-left: 6px;
            transition: opacity 0.2s;
        }

        /* 关于页版权信息 */
        .about-copyright {
            text-align: center;
            margin-top: 24px;
            padding-top: 20px;
            border-top: 1px solid var(--border-color-light);
        }
        .about-copyright-text {
            font-size: 12px;
            color: var(--text-tertiary);
            margin-bottom: 6px;
        }
        .about-copyright-link {
            font-size: 12px;
            color: var(--primary);
            text-decoration: none;
            transition: opacity 0.2s;
        }
        .about-copyright-link:hover {
            opacity: 0.8;
        }

        .settings-copyright-link:hover {
            opacity: 0.8;
            text-decoration: underline;
        }

        /* 更新信息卡片 */
        .update-info-card {
            background: var(--bg-secondary);
            border-radius: 12px;
            padding: 16px;
            border: 1px solid var(--border-color);
            position: relative;
            overflow: hidden;
        }

        .update-info-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 2px;
            background: linear-gradient(90deg, var(--primary), var(--primary-light));
        }

        .update-info-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 8px;
        }

        .update-version {
            font-size: 16px;
            font-weight: 700;
            color: var(--text-primary);
        }

        .update-date {
            font-size: 12px;
            color: var(--text-tertiary);
        }

        .update-badge {
            display: inline-block;
            padding: 3px 10px;
            background: linear-gradient(135deg, rgba(34, 197, 94, 0.15) 0%, rgba(34, 197, 94, 0.15) 100%);
            color: #22c55e;
            font-size: 11px;
            font-weight: 600;
            border-radius: 6px;
            margin-bottom: 12px;
        }

        .update-badge.force {
            background: linear-gradient(135deg, rgba(239, 68, 68, 0.15) 0%, rgba(220, 38, 38, 0.15) 100%);
            color: #ef4444;
        }

        .changelog-title {
            font-size: 12px;
            font-weight: 600;
            color: var(--text-secondary);
            margin-bottom: 8px;
        }

        .changelog-list {
            margin: 0;
            padding-left: 16px;
            font-size: 12px;
            color: var(--text-tertiary);
            line-height: 1.8;
        }

        .changelog-list li {
            margin-bottom: 2px;
        }

        /* 旋转动画 */
        .spin {
            animation: spin 1s linear infinite;
        }

        @keyframes spin {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
        }

        /* ========== 云同步弹窗 ========== */
        .sync-status-card {
            background: linear-gradient(135deg, var(--primary-gradient-soft), var(--bg-tertiary));
            border-radius: 12px;
            padding: 24px;
            text-align: center;
            margin-bottom: 16px;
            border: 1px solid var(--border-color-light);
        }

        .sync-status-icon {
            width: 64px;
            height: 64px;
            margin: 0 auto 12px;
            background: var(--bg-card);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--primary);
            box-shadow: 0 4px 15px var(--primary-glow);
        }

        .sync-status-icon.syncing {
            animation: spin 2s linear infinite;
        }

        .sync-status-text {
            font-size: 16px;
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: 4px;
        }

        .sync-status-desc {
            font-size: 12px;
            color: var(--text-tertiary);
        }

        .sync-info-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 10px 12px;
            background: var(--bg-secondary);
            border-radius: 8px;
            margin-bottom: 8px;
            font-size: 13px;
        }

        .sync-info-row span {
            color: var(--text-secondary);
        }

        .sync-info-row strong {
            color: var(--text-primary);
            font-weight: 600;
        }

        .sync-actions {
            display: flex;
            gap: 10px;
            margin-top: 16px;
        }

        .sync-actions .btn {
            flex: 1;
        }

        /* 上传内容选择区域 */
        .sync-fields-select {
            margin-bottom: 16px;
            border: 1px solid var(--border-color-light);
            border-radius: 10px;
            overflow: hidden;
        }

        .sync-fields-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 10px 14px;
            background: var(--bg-secondary);
            border-bottom: 1px solid var(--border-color-light);
        }

        .sync-fields-title {
            font-size: 13px;
            font-weight: 600;
            color: var(--text-primary);
        }

        .sync-fields-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 4px;
            padding: 10px;
        }

        .sync-field-item {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 6px 8px;
            border-radius: 6px;
            cursor: pointer;
            transition: background 0.2s;
        }

        .sync-field-item:hover {
            background: var(--bg-secondary);
        }

        .sync-field-checkbox {
            width: 16px;
            height: 16px;
            cursor: pointer;
            accent-color: var(--primary);
            flex-shrink: 0;
        }

        .sync-field-checkbox:disabled {
            cursor: not-allowed;
            opacity: 0.7;
        }

        .sync-field-name {
            font-size: 13px;
            color: var(--text-primary);
        }

        .sync-field-hint {
            font-size: 10px;
            color: var(--text-tertiary);
            background: var(--bg-tertiary);
            padding: 1px 6px;
            border-radius: 4px;
            margin-left: auto;
        }

        /* 店铺选择区域 */
        .sync-shop-select {
            margin-bottom: 16px;
            border: 1px solid var(--border-color-light);
            border-radius: 10px;
            overflow: hidden;
        }

        .sync-shop-select-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 10px 14px;
            background: var(--bg-secondary);
            border-bottom: 1px solid var(--border-color-light);
        }

        .sync-shop-select-title {
            font-size: 13px;
            font-weight: 600;
            color: var(--text-primary);
        }

        .sync-shop-select-actions {
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .sync-selected-count {
            font-size: 12px;
            color: var(--text-tertiary);
        }

        .sync-select-all-btn {
            background: none;
            border: none;
            color: var(--primary);
            font-size: 12px;
            cursor: pointer;
            padding: 2px 6px;
            border-radius: 4px;
            transition: background 0.2s;
        }

        .sync-select-all-btn:hover {
            background: var(--primary-gradient-soft);
        }

        .sync-shop-list {
            max-height: 220px;
            overflow-y: auto;
            padding: 6px;
        }

        .sync-shop-list::-webkit-scrollbar {
            width: 4px;
        }

        .sync-shop-list::-webkit-scrollbar-thumb {
            background: var(--border-color);
            border-radius: 2px;
        }

        .sync-shop-group {
            margin-bottom: 4px;
        }

        .sync-shop-group-name {
            font-size: 11px;
            color: var(--text-tertiary);
            padding: 6px 8px 4px;
            font-weight: 500;
        }

        .sync-shop-item {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 8px 10px;
            border-radius: 8px;
            cursor: pointer;
            transition: background 0.2s;
        }

        .sync-shop-item:hover {
            background: var(--bg-secondary);
        }

        .sync-shop-checkbox {
            width: 16px;
            height: 16px;
            cursor: pointer;
            accent-color: var(--primary);
            flex-shrink: 0;
        }

        .sync-shop-avatar {
            width: 32px;
            height: 32px;
            border-radius: 50%;
            object-fit: cover;
            flex-shrink: 0;
        }

        .sync-shop-avatar-placeholder {
            width: 32px;
            height: 32px;
            border-radius: 50%;
            background: var(--primary-gradient-soft);
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--primary);
            font-size: 14px;
            font-weight: 600;
            flex-shrink: 0;
        }

        .sync-shop-info {
            flex: 1;
            min-width: 0;
        }

        .sync-shop-name {
            font-size: 13px;
            color: var(--text-primary);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .sync-shop-remark {
            font-size: 11px;
            color: var(--text-tertiary);
            margin-top: 2px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .sync-shop-empty {
            text-align: center;
            padding: 24px;
            color: var(--text-tertiary);
            font-size: 13px;
        }

        /* ========== 反馈弹窗 ========== */
        .feedback-type-row {
            display: flex;
            gap: 8px;
        }

        .feedback-type-btn {
            flex: 1;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 6px;
            padding: 14px 8px;
            background: var(--bg-secondary);
            border: 2px solid var(--border-color);
            border-radius: 10px;
            cursor: pointer;
            color: var(--text-secondary);
            transition: all 0.2s;
            font-size: 12px;
        }

        .feedback-type-btn:hover {
            border-color: var(--primary-light);
            color: var(--text-primary);
        }

        .feedback-type-btn.active {
            background: var(--primary-soft);
            border-color: var(--primary);
            color: var(--primary);
        }

        .feedback-hint {
            text-align: center;
            font-size: 12px;
            color: #f59e0b;
            margin: 12px 0;
        }
        .feedback-vip-tip {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
            padding: 14px 16px;
            margin-bottom: 16px;
            background: linear-gradient(135deg, rgba(212,175,55,0.1), rgba(244,208,63,0.1));
            border: 1px solid rgba(212,175,55,0.3);
            border-radius: 10px;
            font-size: 13px;
            color: #B8860B;
            font-weight: 500;
        }
        .feedback-vip-tip.trial {
            background: linear-gradient(135deg, rgba(96,165,250,0.1), rgba(59,130,246,0.1));
            border-color: rgba(96,165,250,0.3);
            color: #2563eb;
        }
        .feedback-vip-tip-left {
            display: flex;
            align-items: center;
            gap: 8px;
            font-weight: 700;
            font-size: 14px;
        }
        .feedback-vip-tip-left svg {
            color: #d4af37;
        }
        .feedback-vip-tip.trial .feedback-vip-tip-left svg {
            color: #3b82f6;
        }
        .feedback-vip-tip-right {
            display: flex;
            flex-direction: column;
            gap: 4px;
            text-align: right;
        }
        .feedback-vip-feature {
            font-size: 11px;
            font-weight: 500;
            display: flex;
            align-items: center;
            justify-content: flex-end;
            gap: 4px;
            opacity: 0.9;
        }
        .feedback-vip-dot {
            width: 4px;
            height: 4px;
            border-radius: 50%;
            background: currentColor;
        }

        /* VIP反馈提交按钮 */
        .feedback-vip-btn {
            background: linear-gradient(135deg, #f59e0b, #d97706) !important;
            box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3) !important;
        }
        .feedback-vip-btn:hover {
            box-shadow: 0 4px 12px rgba(245, 158, 11, 0.4) !important;
        }

        /* ========== 使用统计弹窗 ========== */
        .stats-range-tabs {
            display: flex;
            gap: 4px;
            background: var(--bg-secondary);
            padding: 3px;
            border-radius: 8px;
        }

        .stats-tab {
            padding: 4px 12px;
            border: none;
            background: transparent;
            color: var(--text-secondary);
            font-size: 12px;
            border-radius: 6px;
            cursor: pointer;
            transition: all 0.2s;
        }

        .stats-tab.active {
            background: var(--bg-card);
            color: var(--text-primary);
            font-weight: 500;
        }

        .stats-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
            gap: 8px;
            margin-bottom: 14px;
        }

        .stats-card {
            position: relative;
            overflow: hidden;
            background: var(--bg-card);
            border-radius: var(--radius-lg);
            padding: 12px 4px 10px;
            text-align: center;
            border: 1px solid var(--border-color-light);
            transition: transform .22s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .22s ease;
        }

        .stats-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 2.5px;
            background: var(--card-accent, var(--primary));
            opacity: 0.85;
            transition: opacity .2s ease;
        }

        .stats-card:hover {
            transform: translateY(-2px);
            box-shadow: var(--shadow-md);
        }

        .stats-card:hover::before {
            opacity: 1;
        }

        .stats-card-icon {
            width: 30px;
            height: 30px;
            margin: 0 auto 6px;
            border-radius: 9px;
            display: flex;
            align-items: center;
            justify-content: center;
            background: var(--card-accent-bg, var(--primary-gradient-soft));
            color: var(--card-accent, var(--primary));
            transition: transform .25s cubic-bezier(0.22, 1, 0.36, 1);
        }

        .stats-card:hover .stats-card-icon {
            transform: scale(1.08);
        }

        .stats-card-value {
            font-size: 15px;
            font-weight: 700;
            color: var(--text-primary);
            margin-bottom: 1px;
            letter-spacing: -0.2px;
        }

        .stats-card-label {
            font-size: 10px;
            color: var(--text-tertiary);
        }

        .stats-detail {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 13px 14px;
            background: var(--primary-gradient-soft);
            border: 1px solid var(--border-color-light);
            border-radius: var(--radius-lg);
            margin-bottom: 14px;
        }

        .stats-detail-main {
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .stats-detail-icon {
            width: 32px;
            height: 32px;
            border-radius: 9px;
            display: flex;
            align-items: center;
            justify-content: center;
            background: var(--bg-card);
            color: var(--primary);
            box-shadow: var(--shadow-sm);
        }

        .stats-detail-title {
            font-size: 13px;
            font-weight: 600;
            color: var(--text-primary);
        }

        .stats-detail-sub {
            font-size: 11px;
            color: var(--text-tertiary);
            margin-top: 1px;
        }

        .stats-detail-value {
            font-size: 18px;
            font-weight: 700;
            color: var(--primary);
        }

        .stats-chart {
            position: relative;
            background: var(--bg-card);
            border-radius: var(--radius-lg);
            padding: 14px;
            border: 1px solid var(--border-color-light);
        }

        .stats-chart-head {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 12px;
        }

        .stats-chart-title {
            font-size: 13px;
            font-weight: 600;
            color: var(--text-primary);
        }

        .stats-chart-sub {
            font-size: 11px;
            color: var(--text-tertiary);
            background: var(--bg-secondary);
            padding: 2px 8px;
            border-radius: 6px;
        }

        .stats-chart-canvas {
            position: relative;
            height: 96px;
            display: flex;
            align-items: flex-end;
        }

        .stats-grid-lines {
            position: absolute;
            inset: 0;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            pointer-events: none;
        }

        .stats-grid-line {
            width: 100%;
            height: 1px;
            background: var(--border-color-light);
            opacity: 0.65;
        }

        .stats-bars {
            position: relative;
            z-index: 1;
            display: flex;
            align-items: flex-end;
            justify-content: space-between;
            gap: 4px;
            width: 100%;
            height: 96px;
            padding-top: 6px;
        }

        .stats-bar-col {
            flex: 1 1 0;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: flex-end;
            height: 100%;
            min-width: 0;
            cursor: pointer;
            position: relative;
        }

        .stats-bar {
            width: 100%;
            max-width: 16px;
            border-radius: 6px 6px 2px 2px;
            background: var(--primary-gradient);
            opacity: 0.8;
            transition: opacity .25s ease, transform .25s cubic-bezier(0.22, 1, 0.36, 1), box-shadow .25s ease;
            min-height: 3px;
            box-shadow: 0 2px 6px var(--primary-glow, rgba(37,99,235,0.15));
        }

        .stats-bar-col:hover .stats-bar {
            opacity: 1;
            transform: scaleY(1.05) scaleX(1.1);
            box-shadow: 0 3px 10px var(--primary-glow-strong, rgba(37,99,235,0.25));
        }

        .stats-bar.is-max {
            opacity: 1;
            background: linear-gradient(180deg, var(--primary-light, #3b82f6) 0%, var(--primary) 100%);
            box-shadow: 0 2px 10px var(--primary-glow-strong, rgba(37,99,235,0.3));
        }

        .stats-bar-label {
            margin-top: 6px;
            font-size: 9px;
            line-height: 1;
            color: var(--text-tertiary);
            white-space: nowrap;
            transform: scale(0.9);
            transform-origin: center top;
            height: 10px;
        }

        .stats-chart-empty {
            width: 100%;
            text-align: center;
            font-size: 12px;
            color: var(--text-tertiary);
            align-self: center;
            padding: 30px 0;
        }

        .stats-tooltip {
            position: absolute;
            pointer-events: none;
            opacity: 0;
            transform: translateY(4px);
            transition: opacity .18s ease, transform .18s ease;
            background: var(--bg-float);
            border: 1px solid var(--border-color);
            box-shadow: var(--shadow-lg);
            border-radius: var(--radius-md);
            padding: 6px 10px;
            font-size: 11px;
            z-index: 20;
            min-width: 92px;
            text-align: center;
        }

        .stats-tooltip.show {
            opacity: 1;
            transform: translateY(0);
        }

        .stats-tooltip-date {
            color: var(--text-tertiary);
            margin-bottom: 2px;
        }

        .stats-tooltip-dur {
            color: var(--text-primary);
            font-weight: 700;
            font-size: 12px;
        }

        /* ========== 积分商城 ========== */
        .rewards-points-badge {
            display: flex;
            align-items: center;
            gap: 6px;
            padding: 4px 12px;
            background: linear-gradient(135deg, rgba(251, 191, 36, 0.15), rgba(249, 115, 22, 0.15));
            color: #fbbf24;
            border-radius: 20px;
            font-size: 13px;
            font-weight: 600;
            margin-right: 10px;
        }

        .rewards-list {
            display: flex;
            flex-direction: column;
            gap: 10px;
        }

        .rewards-tip {
            text-align: center;
            font-size: 12px;
            color: var(--text-tertiary);
            margin-top: 16px;
            padding-top: 12px;
            border-top: 1px dashed var(--border-color);
        }

        /* 旧版 settings-item 样式已移除，统一使用新版 .settings-item（第6049行） */

        .settings-item-info {
            flex: 1;
        }

        .settings-item-name {
            font-size: 14px;
            font-weight: 500;
            color: var(--text-primary);
        }

        .settings-item-desc {
            font-size: 12px;
            color: var(--text-tertiary);
            margin-top: 3px;
        }

        /* 邮箱通知 UI（修改邮箱 / 测试邮件） */
        .qn-email-btn {
            padding: 8px 18px;
            border-radius: var(--radius-md);
            font-size: 13px;
            font-weight: 500;
            cursor: pointer;
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-secondary);
            transition: all var(--transition-fast);
            white-space: nowrap;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            gap: 4px;
        }
        .qn-email-btn:hover { filter: brightness(1.05); }
        .qn-email-btn:active { transform: translateY(1px); }
        .qn-email-btn-primary {
            background: var(--primary-gradient);
            color: #fff;
            border-color: transparent;
            box-shadow: 0 1px 2px rgba(37, 99, 235, 0.2);
        }
        .qn-email-btn-primary:hover { box-shadow: 0 2px 8px rgba(37, 99, 235, 0.3); }
        .qn-email-input {
            width: 100%;
            padding: 10px 12px;
            border-radius: var(--radius-md);
            border: 1px solid var(--border-color);
            background: var(--bg-card);
            color: var(--text-primary);
            font-size: 13px;
            outline: none;
            box-sizing: border-box;
            transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
        }
        .qn-email-input:focus {
            border-color: var(--primary);
            box-shadow: 0 0 0 3px var(--primary-glow);
        }
        /* 横向行：输入 + 按钮并排（紧凑） */
        .qn-email-row {
            display: flex;
            gap: 10px;
            align-items: center;
            width: 100%;
        }
        .qn-email-row .qn-email-input { flex: 1; min-width: 0; }
        .qn-email-row .qn-email-btn { flex-shrink: 0; }

        .qn-email-actions { display: flex; gap: 8px; flex-shrink: 0; }
        .qn-email-tip {
            margin: 0;
            padding: 10px 12px;
            font-size: 12px;
            color: var(--text-tertiary);
            line-height: 1.5;
            background: var(--bg-primary);
            border-radius: var(--radius-sm);
            border-left: 3px solid var(--primary);
        }
        .qn-email-tip span { color: var(--text-primary); font-weight: 500; word-break: break-all; }
        #emailChangeModal .modal { width: 440px; }
        #emailChangeModal .modal-body { display: flex; flex-direction: column; gap: 14px; padding: 24px 28px 28px; }
        #emailChangeModal .modal-header { padding: 18px 24px 14px; }

        .settings-group-title {
            font-size: 12px;
            font-weight: 600;
            color: var(--text-tertiary);
            text-transform: none;
            letter-spacing: 0;
            margin: 20px 0 8px;
            padding-left: 2px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .settings-group-title:first-child {
            margin-top: 4px;
        }

        .settings-group-title::before {
            content: '';
            width: 3px;
            height: 12px;
            background: var(--primary);
            border-radius: 2px;
        }

        .settings-item-block {
            flex-direction: column;
            align-items: stretch;
            gap: 10px;
        }

        .settings-item-block .settings-item-info {
            flex: none;
        }

        /* 开关按钮 */
        .toggle-switch {
            position: relative;
            width: 44px;
            height: 24px;
            flex-shrink: 0;
        }

        .toggle-switch input {
            opacity: 0;
            width: 0;
            height: 0;
        }

        .toggle-slider {
            position: absolute;
            cursor: pointer;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            transition: all var(--transition-fast);
            border-radius: 24px;
        }

        .toggle-slider:before {
            position: absolute;
            content: "";
            height: 18px;
            width: 18px;
            left: 2px;
            bottom: 2px;
            background: var(--text-tertiary);
            transition: all var(--transition-fast);
            border-radius: 50%;
        }

        .toggle-switch input:checked + .toggle-slider {
            background: var(--primary);
            border-color: var(--primary);
            box-shadow: 0 0 12px var(--primary-glow);
        }

        .toggle-switch input:checked + .toggle-slider:before {
            transform: translateX(20px);
            background: white;
            box-shadow: 0 0 8px rgba(255,255,255,0.5);
        }

        /* 设置下拉框 */
        .settings-select {
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            color: var(--text-primary);
            padding: 6px 12px;
            border-radius: 8px;
            font-size: 13px;
            cursor: pointer;
            outline: none;
            transition: all var(--transition-fast);
        }
        .settings-select:hover {
            border-color: var(--primary);
        }
        .settings-select:focus {
            border-color: var(--primary);
            box-shadow: 0 0 0 3px var(--primary-glow);
        }

        /* 主题色选择 */
        .theme-colors {
            display: grid;
            grid-template-columns: repeat(9, 1fr);
            gap: 8px;
            margin-top: 8px;
        }

        .theme-color-btn {
            width: 100%;
            aspect-ratio: 1;
            border-radius: 50%;
            cursor: pointer;
            transition: all var(--transition-fast);
            border: 2px solid transparent;
            position: relative;
        }

        .theme-color-btn:hover {
            transform: scale(1.1);
        }

        .theme-color-btn.active {
            border-color: var(--text-primary);
        }

        .theme-color-btn.active::after {
            content: '✓';
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            color: white;
            font-size: 12px;
            font-weight: bold;
        }

        /* 背景动效等级选择 */
        .bg-level-options {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 10px;
            margin-top: 12px;
        }

        .bg-level-btn {
            background: var(--bg-tertiary);
            border: 1.5px solid var(--border-color);
            border-radius: var(--radius-md);
            padding: 14px 10px;
            cursor: pointer;
            transition: all var(--transition-fast);
            text-align: center;
            display: flex;
            flex-direction: column;
            gap: 4px;
            position: relative;
        }

        .bg-level-btn:hover {
            border-color: var(--primary);
            background: var(--bg-hover);
            transform: translateY(-2px);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
        }

        .bg-level-btn.active {
            border-color: var(--primary);
            background: var(--primary-glow);
            box-shadow: 0 0 0 3px var(--primary-glow);
        }

        .bg-level-btn.active::before {
            content: '✓';
            position: absolute;
            top: 6px;
            right: 8px;
            color: var(--primary);
            font-size: 12px;
            font-weight: bold;
        }

        .bg-level-btn .level-name {
            font-size: 15px;
            font-weight: 600;
            color: var(--text-primary);
        }

        .bg-level-btn.active .level-name {
            color: var(--primary);
        }

        .bg-level-btn .level-desc {
            font-size: 11px;
            color: var(--text-secondary);
            line-height: 1.4;
        }

        /* 路径选择 */
        .settings-path-row {
            display: flex;
            align-items: center;
            gap: 8px;
            min-width: 180px;
        }

        .settings-path-text {
            flex: 1;
            padding: 6px 10px;
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            color: var(--text-primary);
            font-size: 12px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            font-family: "Consolas", "Monaco", monospace;
        }

        .settings-path-btn {
            padding: 6px 14px;
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            color: var(--text-primary);
            font-size: 12px;
            cursor: pointer;
            transition: all var(--transition-fast);
            white-space: nowrap;
        }

        .settings-path-btn:hover {
            border-color: var(--primary);
            color: var(--primary);
            background: var(--primary-glow);
        }

        /* 下拉选择 */
        .settings-select {
            padding: 6px 12px;
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            color: var(--text-primary);
            font-size: 13px;
            outline: none;
            cursor: pointer;
            transition: all var(--transition-fast);
        }

        .settings-select:focus {
            border-color: var(--primary);
        }

        /* 文本域 */
        .settings-textarea {
            width: 100%;
            padding: 10px 14px;
            background: var(--bg-tertiary);
            border: 1.5px solid var(--border-color);
            border-radius: var(--radius-md);
            color: var(--text-primary);
            font-size: 13px;
            line-height: 1.6;
            outline: none;
            resize: vertical;
            transition: all var(--transition-fast);
            font-family: inherit;
            min-height: 56px;
            max-height: 200px;
        }

        .settings-textarea:focus {
            border-color: var(--primary);
            background: var(--bg-hover);
            box-shadow: 0 0 0 3px var(--primary-glow);
        }

        .settings-textarea::placeholder {
            color: var(--text-muted);
        }

        /* 按钮 v3.0 - 赛博霓虹脉冲 */
        .btn {
            padding: 9px 18px;
            border-radius: var(--radius-lg);
            font-size: 13px;
            font-weight: var(--font-medium);
            cursor: pointer;
            transition: all var(--transition-bounce);
            border: none;
            display: inline-flex;
            align-items: center;
            gap: 6px;
            position: relative;
            overflow: hidden;
            user-select: none;
            -webkit-user-select: none;
        }

        /* 按钮顶部高光 */
        .btn::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 50%;
            background: linear-gradient(180deg, rgba(255,255,255,0.18) 0%, transparent 100%);
            pointer-events: none;
            border-radius: var(--radius-lg) var(--radius-lg) 0 0;
            z-index: 1;
        }

        /* 按钮光泽扫过 */
        .btn::after {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 50%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
            transition: left 0.6s cubic-bezier(0.4, 0, 0.2, 1);
            pointer-events: none;
            z-index: 1;
        }

        .btn:hover::after {
            left: 100%;
        }

        /* 点击波纹效果 */
        .btn .ripple {
            position: absolute;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.4);
            transform: scale(0);
            animation: rippleEffect 0.6s ease-out forwards;
            pointer-events: none;
            z-index: 2;
        }

        @keyframes rippleEffect {
            to {
                transform: scale(4);
                opacity: 0;
            }
        }

        .btn-primary {
            background: var(--primary-gradient);
            color: white;
            border: 1px solid transparent;
            border-radius: var(--radius-md);
            box-shadow: 0 1px 2px rgba(37, 99, 235, 0.2);
            transition: all var(--transition-fast);
        }

        .btn-primary:hover {
            filter: brightness(1.05);
            box-shadow: 0 2px 6px rgba(37, 99, 235, 0.3);
        }

        .btn-primary:active {
            filter: brightness(0.98);
            box-shadow: 0 1px 2px rgba(37, 99, 235, 0.2);
            transition-duration: 0.1s;
        }

        .btn-secondary {
            background: var(--bg-card);
            color: var(--text-secondary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            transition: all var(--transition-fast);
        }

        .btn-secondary:hover {
            background: var(--bg-card-hover);
            color: var(--primary);
            border-color: var(--border-color-hover);
        }

        .btn-secondary:active {
            background: var(--bg-tertiary);
            transition-duration: 0.1s;
        }

        .btn-danger {
            background: linear-gradient(135deg, #ef4444, #dc2626);
            color: white;
            border: 1px solid transparent;
            border-radius: var(--radius-md);
            box-shadow: 0 1px 2px rgba(239, 68, 68, 0.2);
            transition: all var(--transition-fast);
        }

        .btn-danger:hover {
            filter: brightness(1.05);
            box-shadow: 0 2px 6px rgba(239, 68, 68, 0.3);
        }

        .btn-danger:active {
            filter: brightness(0.98);
            box-shadow: 0 1px 2px rgba(239, 68, 68, 0.2);
            transition-duration: 0.1s;
        }

        .btn-warning {
            background: linear-gradient(135deg, #f59e0b, #d97706);
            color: white;
            border: 1px solid transparent;
            border-radius: var(--radius-md);
            box-shadow: 0 1px 2px rgba(245, 158, 11, 0.2);
            transition: all var(--transition-fast);
        }

        .btn-warning:hover {
            filter: brightness(1.05);
            box-shadow: 0 2px 6px rgba(245, 158, 11, 0.3);
        }

        .btn-warning:active {
            filter: brightness(0.98);
            box-shadow: 0 1px 2px rgba(245, 158, 11, 0.2);
            transition-duration: 0.1s;
        }

        .btn-sm {
            padding: 4px 10px;
            font-size: 12px;
        }

        /* 快捷键按钮 */
        .hotkey-btn {
            padding: 6px 12px;
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            color: var(--text-primary);
            font-size: 12px;
            font-family: 'SF Mono', 'Consolas', monospace;
            cursor: pointer;
            transition: all var(--transition-fast);
        }

        .hotkey-btn:hover {
            border-color: var(--primary);
        }

        .hotkey-btn.recording {
            background: var(--primary-glow);
            border-color: var(--primary);
            color: var(--primary);
            animation: pulse 1s ease-in-out infinite;
        }

        /* ========== 预留组件 - 登录弹窗 ========== */
        .login-modal .modal {
            width: 400px;
        }

        .login-logo {
            text-align: center;
            margin-bottom: 24px;
        }

        .login-logo-icon {
            width: 64px;
            height: 64px;
            background: linear-gradient(135deg, var(--primary), var(--gold));
            border-radius: var(--radius-lg);
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-size: 28px;
            font-weight: bold;
            color: white;
            margin-bottom: 12px;
            box-shadow: var(--shadow-glow);
        }

        .login-title {
            font-size: 20px;
            font-weight: 600;
            color: var(--text-primary);
        }

        .login-subtitle {
            font-size: 13px;
            color: var(--text-tertiary);
            margin-top: 4px;
        }

        .form-group {
            margin-bottom: 16px;
        }

        .form-label {
            display: block;
            font-size: 13px;
            font-weight: 500;
            color: var(--text-secondary);
            margin-bottom: 6px;
        }

        .form-input {
            width: 100%;
            height: 40px;
            padding: 0 12px;
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            color: var(--text-primary);
            font-size: 14px;
            outline: none;
            transition: all var(--transition-normal);
            box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
        }

        .form-input:focus {
            border-color: var(--primary);
            box-shadow: 0 0 0 3px var(--primary-glow), inset 0 1px 2px rgba(0,0,0,0.1);
            background: var(--bg-secondary);
        }

        .form-input::placeholder {
            color: var(--text-tertiary);
        }

        .login-btn {
            width: 100%;
            height: 44px;
            margin-top: 8px;
            font-size: 15px;
        }

        .login-footer {
            text-align: center;
            margin-top: 16px;
            font-size: 12px;
            color: var(--text-tertiary);
        }

        .login-footer a {
            color: var(--primary);
            text-decoration: none;
            cursor: pointer;
        }

        .login-footer a:hover {
            text-decoration: underline;
        }

        /* ========== 通知中心 ========== */
        .notification-panel {
            position: fixed;
            top: 42px;
            right: 110px;
            width: 340px;
            max-height: 420px;
            background: var(--bg-float);
            border: 1px solid var(--border-color);
            border-radius: 12px;
            box-shadow: var(--shadow-xl);
            z-index: 250;
            display: none;
            flex-direction: column;
            overflow: hidden;
            animation: panelSlideIn 0.25s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .notification-panel.show {
            display: flex;
        }

        @keyframes panelSlideIn {
            from { opacity: 0; transform: translateY(-10px) scale(0.95); }
            to { opacity: 1; transform: translateY(0) scale(1); }
        }

        .notification-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 14px 16px;
            border-bottom: 1px solid var(--border-color-light);
            flex-shrink: 0;
        }

        .notification-title {
            font-size: 14px;
            font-weight: 600;
            color: var(--text-primary);
            display: flex;
            align-items: center;
            gap: 6px;
        }

        .notification-title::before {
            content: '';
            width: 3px;
            height: 14px;
            background: var(--primary);
            border-radius: 2px;
        }

        .notification-list {
            flex: 1;
            overflow-y: auto;
            padding: 6px;
        }

        .notification-item {
            display: flex;
            gap: 10px;
            padding: 12px;
            border-radius: 8px;
            cursor: pointer;
            transition: background 0.15s;
            position: relative;
        }

        .notification-item:hover {
            background: var(--bg-tertiary);
        }

        .notification-item.unread {
            background: var(--primary-glow);
        }

        .notification-item.unread::before {
            content: '';
            position: absolute;
            left: 6px;
            top: 18px;
            width: 6px;
            height: 6px;
            background: var(--primary);
            border-radius: 50%;
        }

        .notification-icon {
            width: 36px;
            height: 36px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }

        .notification-icon.info {
            background: rgba(59, 130, 246, 0.1);
            color: #3b82f6;
        }

        .notification-icon.success {
            background: rgba(34, 197, 94, 0.1);
            color: #22c55e;
        }

        .notification-icon.warning {
            background: rgba(245, 158, 11, 0.1);
            color: #f59e0b;
        }

        .notification-icon.danger {
            background: rgba(239, 68, 68, 0.1);
            color: #ef4444;
        }

        .notification-content {
            flex: 1;
            min-width: 0;
        }

        .notification-item-title {
            font-size: 13px;
            font-weight: 500;
            color: var(--text-primary);
            margin-bottom: 3px;
        }

        .notification-item-desc {
            font-size: 12px;
            color: var(--text-tertiary);
            line-height: 1.4;
            overflow: hidden;
            text-overflow: ellipsis;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
        }

        .notification-item-time {
            font-size: 11px;
            color: var(--text-muted);
            margin-top: 4px;
        }

        .notification-empty {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-tertiary);
            font-size: 12px;
        }

        .notification-empty svg {
            width: 48px;
            height: 48px;
            margin-bottom: 10px;
            opacity: 0.5;
        }

        /* 加载更多 */
        .notification-load-more {
            padding: 12px;
            text-align: center;
            flex-shrink: 0;
            border-top: 1px solid var(--border-color-light);
        }
        .notification-load-more-btn {
            padding: 6px 20px;
            font-size: 12px;
            color: var(--text-secondary);
            background: var(--bg-hover);
            border: none;
            border-radius: 6px;
            cursor: pointer;
            transition: all 0.2s;
        }
        .notification-load-more-btn:hover {
            background: var(--primary-color);
            color: #fff;
        }
        .notification-load-more-btn:disabled {
            opacity: 0.5;
            cursor: not-allowed;
        }

        /* 筛选 tabs */
        .notification-filter {
            display: flex;
            gap: 4px;
            padding: 8px 12px;
            border-bottom: 1px solid var(--border-color-light);
            flex-shrink: 0;
        }
        .notification-filter-item {
            flex: 1;
            text-align: center;
            padding: 6px 10px;
            font-size: 12px;
            color: var(--text-secondary);
            border-radius: 6px;
            cursor: pointer;
            transition: all 0.15s;
            white-space: nowrap;
        }
        .notification-filter-item:hover {
            background: var(--bg-tertiary);
            color: var(--text-primary);
        }
        .notification-filter-item.active {
            background: var(--primary-glow);
            color: var(--primary);
            font-weight: 500;
        }

        /* 图标颜色变量化 */
        .notification-icon.info {
            background: color-mix(in srgb, var(--primary) 12%, transparent);
            color: var(--primary);
        }
        .notification-icon.success {
            background: color-mix(in srgb, var(--success, #22c55e) 12%, transparent);
            color: var(--success, #22c55e);
        }
        .notification-icon.warning {
            background: color-mix(in srgb, var(--warning, #f59e0b) 12%, transparent);
            color: var(--warning, #f59e0b);
        }
        .notification-icon.danger {
            background: color-mix(in srgb, var(--danger, #ef4444) 12%, transparent);
            color: var(--danger, #ef4444);
        }

        /* 未读红点优化：左侧边条 */
        .notification-item.unread {
            background: var(--primary-glow);
        }
        .notification-item.unread::before {
            content: '';
            position: absolute;
            left: 0;
            top: 12px;
            bottom: 12px;
            width: 3px;
            height: auto;
            background: var(--primary);
            border-radius: 0 2px 2px 0;
        }

        /* 操作按钮 hover */
        .notification-action-btn {
            width: 28px;
            height: 28px;
            border-radius: 6px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            color: var(--text-secondary);
            transition: all 0.15s;
        }
        .notification-action-btn:hover {
            background: var(--bg-tertiary);
            color: var(--text-primary);
        }
        .notification-action-btn:active {
            transform: scale(0.92);
        }

        /* 未读数字徽章 */
        .notification-unread-count {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            min-width: 18px;
            height: 18px;
            padding: 0 5px;
            border-radius: 9px;
            background: var(--primary);
            color: #fff;
            font-size: 11px;
            font-weight: 500;
            line-height: 1;
        }

        /* 删除按钮 */
        .notification-item-delete {
            width: 24px;
            height: 24px;
            border-radius: 4px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            color: var(--text-muted);
            opacity: 0;
            transition: all 0.15s;
            flex-shrink: 0;
            align-self: flex-start;
            margin-top: 2px;
        }
        .notification-item:hover .notification-item-delete {
            opacity: 1;
        }
        .notification-item-delete:hover {
            background: var(--danger-glow, rgba(239,68,68,0.1));
            color: var(--danger);
        }

        /* 小屏适配 */
        @media (max-width: 768px) {
            .notification-panel {
                right: 12px !important;
                left: 12px !important;
                width: auto !important;
                max-width: none;
                top: 48px;
                max-height: calc(100vh - 120px);
            }
        }

        /* chat 页通知中心精简版 */
        .notification-panel.notification-chat-minimal .notification-filter {
            display: none;
        }
        .notification-panel.notification-chat-minimal .notification-action-btn[data-action="open-notification-settings"] {
            display: none;
        }

        /* 积分显示 */
        .points-display {
            display: flex;
            align-items: center;
            gap: 4px;
            padding: 4px 10px;
            background: linear-gradient(135deg, #f59e0b, #fbbf24);
            color: white;
            border-radius: 20px;
            font-size: 12px;
            font-weight: 600;
            cursor: pointer;
            transition: transform 0.2s;
        }

        .points-display:hover {
            transform: scale(1.05);
        }

        .points-display svg {
            width: 14px;
            height: 14px;
        }

        /* 积分弹窗 */
        .points-modal {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(15, 23, 42, 0.5);
            backdrop-filter: blur(6px);
            z-index: 1002;
            display: none;
            align-items: center;
            justify-content: center;
            opacity: 0;
            transition: opacity 0.25s ease;
        }

        .points-modal.show {
            display: flex;
            opacity: 1;
        }

        .points-card {
            width: 100%;
            max-width: 420px;
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-2xl);
            box-shadow: var(--shadow-xl);
            overflow: hidden;
            transform: translateY(20px) scale(0.96);
            transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
            padding-bottom: 20px;
        }

        .points-modal.show .points-card {
            transform: translateY(0) scale(1);
        }

        .points-banner {
            background: linear-gradient(135deg, #1a1a2e 0%, #16213e 30%, #0f3460 60%, #1a1a2e 100%);
            padding: 28px 24px 32px;
            color: white;
            position: relative;
            overflow: hidden;
        }

        .points-banner::before {
            content: '';
            position: absolute;
            top: -50%;
            right: -20%;
            width: 280px;
            height: 280px;
            background: radial-gradient(circle, rgba(251, 191, 36, 0.15) 0%, transparent 60%);
            border-radius: 50%;
            filter: blur(20px);
        }

        .points-banner::after {
            content: '';
            position: absolute;
            bottom: -40%;
            left: -15%;
            width: 200px;
            height: 200px;
            background: radial-gradient(circle, rgba(59, 130, 246, 0.2) 0%, transparent 60%);
            border-radius: 50%;
            filter: blur(30px);
        }

        .points-banner-close {
            position: absolute;
            top: 16px;
            right: 16px;
            width: 32px;
            height: 32px;
            background: rgba(255, 255, 255, 0.1);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 10px;
            color: white;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            z-index: 2;
            transition: all 0.2s;
        }

        .points-banner-close:hover {
            background: rgba(255, 255, 255, 0.2);
            transform: scale(1.05);
        }

        .points-banner-title {
            font-size: 12px;
            opacity: 0.7;
            margin-bottom: 6px;
            position: relative;
            z-index: 1;
            letter-spacing: 2px;
            text-transform: uppercase;
            font-weight: 500;
        }

        .points-banner-num {
            font-size: 38px;
            font-weight: 700;
            display: flex;
            align-items: center;
            gap: 10px;
            position: relative;
            z-index: 1;
            background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 50%, #f97316 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            text-shadow: 0 0 40px rgba(251, 191, 36, 0.3);
        }

        .points-banner-num svg {
            width: 28px;
            height: 28px;
            color: #fbbf24;
            filter: drop-shadow(0 0 8px rgba(251, 191, 36, 0.5));
        }

        .points-banner-desc {
            font-size: 12px;
            opacity: 0.6;
            margin-top: 8px;
            position: relative;
            z-index: 1;
            font-weight: 400;
        }

        /* 签到区域 */
        .points-checkin {
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-wrap: wrap;
            padding: 20px 24px;
            background: var(--bg-card);
            position: relative;
            margin: -16px 16px 0;
            border-radius: 16px;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
            border: 1px solid var(--border-color);
            z-index: 2;
        }

        .points-checkin-info {
            display: flex;
            align-items: center;
            gap: 14px;
        }

        .points-checkin-icon {
            width: 52px;
            height: 52px;
            border-radius: 14px;
            background: linear-gradient(135deg, rgba(251, 191, 36, 0.15) 0%, rgba(249, 115, 22, 0.15) 100%);
            display: flex;
            align-items: center;
            justify-content: center;
            color: #fbbf24;
            position: relative;
        }

        .points-checkin-icon::after {
            content: '';
            position: absolute;
            inset: -2px;
            border-radius: 16px;
            background: linear-gradient(135deg, #fbbf24, #f97316);
            opacity: 0.2;
            z-index: -1;
            filter: blur(8px);
        }

        .points-checkin-icon svg {
            width: 26px;
            height: 26px;
        }

        .points-checkin-text {
            font-size: 15px;
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: 2px;
        }

        .points-checkin-sub {
            font-size: 12px;
            color: var(--text-tertiary);
            margin-top: 2px;
        }

        .checkin-btn {
            padding: 12px 28px;
            background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 50%, #f97316 100%);
            color: #1a1a2e;
            border: none;
            border-radius: 12px;
            font-size: 14px;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
            position: relative;
            overflow: hidden;
            box-shadow: 0 4px 15px rgba(251, 191, 36, 0.3);
        }

        .checkin-btn::before {
            content: '';
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
            transition: left 0.5s;
        }

        .checkin-btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 25px rgba(251, 191, 36, 0.4);
        }

        .checkin-btn:hover::before {
            left: 100%;
        }

        .checkin-btn:active {
            transform: translateY(0);
        }

        .checkin-btn:disabled {
            background: var(--bg-tertiary);
            color: var(--text-tertiary);
            opacity: 1;
            cursor: not-allowed;
            transform: none;
            box-shadow: none;
            border: 1px solid var(--border-color);
        }

        .checkin-btn:disabled::before {
            display: none;
        }

        /* 签到券展示（嵌入签到卡片底部） */
        .points-checkin-coupon {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            width: 100%;
            margin-top: 14px;
            padding-top: 12px;
            border-top: 1px dashed var(--border-color-light);
            font-size: 12px;
            color: var(--text-secondary);
        }
        .points-checkin-coupon .checkin-coupon-main {
            display: flex;
            align-items: center;
            gap: 6px;
        }
        .points-checkin-coupon .checkin-coupon-icon-svg {
            width: 16px;
            height: 16px;
            color: var(--primary);
            opacity: 0.9;
        }
        .points-checkin-coupon .checkin-coupon-counts { display: inline-flex; flex-wrap: wrap; gap: 12px; margin-left: 4px; }
        .points-checkin-coupon .checkin-coupon-counts > span { font-size: 12px; color: var(--text-secondary); }
        .points-checkin-coupon .checkin-coupon-count { font-weight: 700; }
        .points-checkin-coupon .c-time { color: var(--primary); }
        .points-checkin-coupon .c-point { color: #e8590c; }
        .points-checkin-coupon .c-extra { color: #2f9e44; }
        .points-checkin-coupon .checkin-coupon-count { color: var(--primary); font-weight: 700; }
        .points-checkin-coupon .checkin-coupon-tip { color: var(--text-tertiary); font-size: 12px; }
        .points-checkin-coupon .checkin-coupon-help {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 15px;
            height: 15px;
            margin-left: 5px;
            border-radius: 50%;
            background: var(--text-tertiary);
            color: #fff;
            font-size: 10px;
            font-weight: 700;
            line-height: 1;
            cursor: help;
            position: relative;
            flex: 0 0 auto;
            transition: background .15s ease;
        }
        .points-checkin-coupon .checkin-coupon-help:hover,
        .points-checkin-coupon .checkin-coupon-help:focus {
            background: var(--primary);
            outline: none;
        }
        .points-checkin-coupon .checkin-coupon-help::after {
            content: attr(data-tip);
            position: absolute;
            bottom: 150%;
            left: 50%;
            transform: translateX(-50%);
            width: max-content;
            max-width: 220px;
            padding: 8px 10px;
            background: rgba(0, 0, 0, 0.85);
            color: #fff;
            font-size: 12px;
            font-weight: 400;
            line-height: 1.5;
            border-radius: 8px;
            white-space: normal;
            text-align: left;
            opacity: 0;
            visibility: hidden;
            transition: opacity .15s ease;
            z-index: 30;
            pointer-events: none;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
        }
        .points-checkin-coupon .checkin-coupon-help:hover::after,
        .points-checkin-coupon .checkin-coupon-help:focus::after {
            opacity: 1;
            visibility: visible;
        }

        /* 连续签到 */
        .points-streak {
            display: flex;
            justify-content: space-between;
            padding: 20px 24px;
            margin: 16px 16px 0;
            background: var(--bg-card);
            border-radius: 16px;
            border: 1px solid var(--border-color);
            position: relative;
            align-items: flex-start;
        }

        .points-streak::before {
            content: '';
            position: absolute;
            top: 32px;
            left: 40px;
            right: 40px;
            height: 2px;
            background: var(--border-color);
            z-index: 0;
        }

        .points-streak-item {
            text-align: center;
            position: relative;
            z-index: 1;
            flex: 1;
        }

        .points-streak-day {
            width: 36px;
            height: 36px;
            border-radius: 50%;
            background: var(--bg-card);
            border: 2px solid var(--border-color);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 11px;
            font-weight: 700;
            color: var(--text-tertiary);
            margin: 0 auto 6px;
            transition: all 0.3s;
            position: relative;
        }

        .points-streak-item.checked .points-streak-day {
            background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
            border-color: #fbbf24;
            color: #1a1a2e;
            box-shadow: 0 0 15px rgba(251, 191, 36, 0.4);
        }

        .points-streak-item.checked .points-streak-day::after {
            content: '✓';
            position: absolute;
            top: -6px;
            right: -6px;
            width: 16px;
            height: 16px;
            background: #22c55e;
            color: white;
            border-radius: 50%;
            font-size: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            border: 2px solid var(--bg-card);
        }

        .points-streak-item.today .points-streak-day {
            border-color: #fbbf24;
            color: #fbbf24;
            animation: pulse-glow 2s ease-in-out infinite;
        }

        @keyframes pulse-glow {
            0%, 100% {
                box-shadow: 0 0 0 0 rgba(251, 191, 36, 0.4);
            }
            50% {
                box-shadow: 0 0 0 8px rgba(251, 191, 36, 0);
            }
        }

        .points-streak-reward {
            font-size: 10px;
            color: var(--text-muted);
            font-weight: 500;
        }

        .points-streak-item.checked .points-streak-reward {
            color: #fbbf24;
        }

        /* 积分明细 */
        .points-records {
            padding: 20px 24px 24px;
            margin: 16px 16px 0;
            background: var(--bg-card);
            border-radius: 16px;
            border: 1px solid var(--border-color);
            max-height: 260px;
            overflow-y: auto;
        }

        .points-records-title {
            font-size: 13px;
            font-weight: 600;
            color: var(--text-primary);
            margin-bottom: 14px;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .points-records-title::before {
            content: '';
            display: inline-block;
            width: 3px;
            height: 14px;
            background: linear-gradient(180deg, #fbbf24, #f97316);
            border-radius: 2px;
            margin-right: 8px;
            vertical-align: middle;
        }

        .points-record-item {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 12px 0;
            border-bottom: 1px solid var(--border-color-light);
            transition: background 0.2s;
        }

        .points-record-item:hover {
            background: var(--bg-card-hover);
            margin: 0 -8px;
            padding: 12px 8px;
            border-radius: 8px;
            border-bottom-color: transparent;
        }

        .points-record-item:last-child {
            border-bottom: none;
        }

        .points-record-icon {
            width: 38px;
            height: 38px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }

        .points-record-icon.earn {
            background: linear-gradient(135deg, rgba(34, 197, 94, 0.15) 0%, rgba(34, 197, 94, 0.15) 100%);
            color: #22c55e;
        }

        .points-record-icon.spend {
            background: linear-gradient(135deg, rgba(239, 68, 68, 0.15) 0%, rgba(239, 68, 68, 0.1) 100%);
            color: #ef4444;
        }

        .points-record-icon.refund {
            background: linear-gradient(135deg, rgba(34, 197, 94, 0.15) 0%, rgba(34, 197, 94, 0.15) 100%);
            color: #22c55e;
        }

        .points-record-info {
            flex: 1;
        }

        .points-record-title {
            font-size: 13px;
            color: var(--text-primary);
            margin-bottom: 3px;
        }

        .points-record-time {
            font-size: 11px;
            color: var(--text-tertiary);
        }

        .points-record-num {
            font-size: 14px;
            font-weight: 600;
        }

        .points-record-num.earn,
        .points-record-num.refund {
            color: #22c55e;
        }

        .points-record-num.spend {
            color: #ef4444;
        }

        .points-empty {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            padding: 32px 0;
            color: var(--text-tertiary);
            gap: 10px;
        }

        .points-empty svg {
            opacity: 0.4;
        }

        .points-empty span {
            font-size: 12px;
        }

        .points-load-more {
            text-align: center;
            padding: 12px 0;
            font-size: 12px;
            color: var(--text-secondary);
            cursor: pointer;
            transition: color var(--transition-fast);
        }

        .points-load-more:hover {
            color: var(--primary);
        }

        .points-load-end {
            text-align: center;
            padding: 12px 0;
            font-size: 11px;
            color: var(--text-tertiary);
        }

        /* 积分明细移至积分商城后的容器微调 */
        #detailContent .points-records {
            margin: 12px 0 0;
            max-height: 440px;
            padding: 16px;
            background: var(--bg-card);
            border-radius: 12px;
            border: 1px solid var(--border-color);
            overflow-y: auto;
        }

        /* 积分弹窗内的「查看积分明细」入口 */
        .points-detail-entry {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin: 12px 16px 4px;
            padding: 14px 16px;
            background: var(--bg-card);
            border: 1px solid var(--border-color);
            border-radius: 12px;
            cursor: pointer;
            font-size: 13px;
            font-weight: 500;
            color: var(--text-primary);
            transition: background 0.2s;
        }
        .points-detail-entry:hover {
            background: var(--bg-card-hover);
        }
        .points-detail-entry-arrow {
            color: var(--text-tertiary);
            font-size: 18px;
            line-height: 1;
        }

/* ========== 工具类：字号 & 字重 ========== */
.text-xs   { font-size: var(--font-size-xs); }
.text-sm   { font-size: var(--font-size-sm); }
.text-base { font-size: var(--font-size-base); }
.text-md   { font-size: var(--font-size-md); }
.text-lg   { font-size: var(--font-size-lg); }
.text-xl   { font-size: var(--font-size-xl); }
.text-2xl  { font-size: var(--font-size-2xl); }

.font-normal  { font-weight: var(--font-weight-normal); }
.font-medium  { font-weight: var(--font-weight-medium); }
.font-semibold { font-weight: var(--font-weight-semibold); }
.font-bold    { font-weight: var(--font-weight-bold); }

.text-primary   { color: var(--text-primary); }
.text-success   { color: #22c55e; }
.text-warning   { color: #f59e0b; }
.text-danger    { color: #ef4444; }
.text-secondary { color: var(--text-secondary); }
.text-tertiary  { color: var(--text-tertiary); }
.text-muted     { color: var(--text-muted); }


/* ========== 交互反馈统一：active 状态 ========== */
/* 图标按钮按压效果 */
.icon-btn:active,
.titlebar-btn:active {
    transform: scale(0.92);
    opacity: 0.8;
}

/* 顶部操作按钮按压效果 */
.top-action-btn:active {
    transform: translateY(1px);
    box-shadow: inset 0 1px 2px rgba(0,0,0,0.08);
}

/* 快捷按钮按压效果 */
.chat-quick-btn:active {
    transform: scale(0.96) translateY(1px);
    background: var(--bg-tertiary);
}

/* 侧边栏店铺项按压效果 */
.shop-item:active {
    background: var(--bg-tertiary);
    transform: scale(0.99);
}

/* 设置导航项按压效果 */
.settings-nav-item:active {
    background: var(--bg-tertiary);
}

/* 卡片 hover 去掉上移，改为边框/阴影变化（防止布局跳动） */
.chart-card:active {
    transform: translateY(0);
    box-shadow: var(--shadow-sm);
}

/* ============================================================
   VIP专属动效与元素
   ============================================================ */

/* 1. VIP头像框 - 渐变发光边框 + 精致皇冠 */
.vip-avatar-ring {
    position: relative;
    display: inline-block;
}
.vip-avatar-ring::before {
    content: '';
    position: absolute;
    top: -2px; left: -2px; right: -2px; bottom: -2px;
    border-radius: 50%;
    background: linear-gradient(135deg, #F5D76E 0%, #D4AF37 40%, #B8860B 70%, #F5D76E 100%);
    background-size: 200% 200%;
    opacity: 0.9;
    z-index: -1;
    box-shadow: 0 0 10px rgba(212, 175, 55, 0.4),
                0 0 20px rgba(212, 175, 55, 0.2);
    animation: vip-avatar-ring-shine 3s ease-in-out infinite;
}
.vip-avatar-ring::after {
    content: '';
    position: absolute;
    top: -13px;
    left: 50%;
    transform: translateX(-50%);
    width: 24px;
    height: 16px;
    z-index: 2;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 22' fill='none'%3E%3Cdefs%3E%3ClinearGradient id='cg' x1='16' y1='1' x2='16' y2='20' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23FFF3B0'/%3E%3Cstop offset='0.35' stop-color='%23FFE066'/%3E%3Cstop offset='0.7' stop-color='%23E6B800'/%3E%3Cstop offset='1' stop-color='%23B8860B'/%3E%3C/linearGradient%3E%3ClinearGradient id='cg2' x1='16' y1='15' x2='16' y2='20' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23D4AF37'/%3E%3Cstop offset='1' stop-color='%238B6914'/%3E%3C/linearGradient%3E%3CradialGradient id='gem1' cx='50%25' cy='40%25' r='60%25'%3E%3Cstop stop-color='%23FF6B6B'/%3E%3Cstop offset='0.6' stop-color='%23E63946'/%3E%3Cstop offset='1' stop-color='%239D0208'/%3E%3C/radialGradient%3E%3CradialGradient id='gem2' cx='50%25' cy='40%25' r='60%25'%3E%3Cstop stop-color='%2374C0FC'/%3E%3Cstop offset='0.6' stop-color='%23339AF0'/%3E%3Cstop offset='1' stop-color='%231864AB'/%3E%3C/radialGradient%3E%3CradialGradient id='gem3' cx='50%25' cy='40%25' r='60%25'%3E%3Cstop stop-color='%2369DB7C'/%3E%3Cstop offset='0.6' stop-color='%2337B24D'/%3E%3Cstop offset='1' stop-color='%232B8A3E'/%3E%3C/radialGradient%3E%3C/defs%3E%3Cpath d='M2 17L5.5 6L10 11L16 2L22 11L26.5 6L30 17H2Z' fill='url(%23cg)' stroke='%238B6914' stroke-width='0.8' stroke-linejoin='round'/%3E%3Crect x='1' y='17' width='30' height='4' rx='1.5' fill='url(%23cg2)' stroke='%238B6914' stroke-width='0.6'/%3E%3Ccircle cx='16' cy='8' r='2.8' fill='url(%23gem1)' stroke='%238B6914' stroke-width='0.5'/%3E%3Ccircle cx='16' cy='7.5' r='1' fill='white' opacity='0.6'/%3E%3Ccircle cx='7.5' cy='11' r='2' fill='url(%23gem2)' stroke='%238B6914' stroke-width='0.4'/%3E%3Ccircle cx='7.5' cy='10.6' r='0.7' fill='white' opacity='0.5'/%3E%3Ccircle cx='24.5' cy='11' r='2' fill='url(%23gem3)' stroke='%238B6914' stroke-width='0.4'/%3E%3Ccircle cx='24.5' cy='10.6' r='0.7' fill='white' opacity='0.5'/%3E%3Ccircle cx='11.5' cy='18.5' r='0.6' fill='%23FFF3B0'/%3E%3Ccircle cx='16' cy='18.5' r='0.6' fill='%23FFF3B0'/%3E%3Ccircle cx='20.5' cy='18.5' r='0.6' fill='%23FFF3B0'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    filter: drop-shadow(0 2px 4px rgba(139, 105, 20, 0.5));
}

@keyframes vip-avatar-ring-shine {
    0%, 100% { background-position: 0% 50%; opacity: 0.85; }
    50% { background-position: 100% 50%; opacity: 1; }
}

/* 2. VIP消息气泡 - 柔光描边 */
[data-color="morning-gold"] .chat-msg-bubble.user-bubble,
[data-color="mist-blue"] .chat-msg-bubble.user-bubble,
[data-color="twilight-purple"] .chat-msg-bubble.user-bubble {
    box-shadow: 0 2px 8px var(--primary-glow);
}

/* VIP聊天气泡入场光晕动画 */
@keyframes vip-msg-glow {
    0% { box-shadow: 0 0 0 0 var(--primary-glow-strong); }
    70% { box-shadow: 0 0 0 8px rgba(0,0,0,0); }
    100% { box-shadow: 0 2px 8px var(--primary-glow); }
}
.vip-msg-enter {
    animation: vip-msg-glow 0.6s ease-out;
}

/* 3. VIP加载动画 - 渐变旋转环 */
.vip-loading {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    position: relative;
    display: inline-block;
}
.vip-loading::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border-radius: 50%;
    background: conic-gradient(from 0deg, transparent 0%, var(--primary-light) 40%, var(--primary) 100%);
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
            mask: radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
    animation: vip-spin 0.8s linear infinite;
}
@keyframes vip-spin {
    to { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
    .vip-loading::before { animation: none; }
}

/* 4. VIP入场光扫动画 */
.vip-shine-effect {
    position: relative;
    overflow: hidden;
}
.vip-shine-effect::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 50%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    animation: vip-shine 1.5s ease-in-out;
    pointer-events: none;
}
@keyframes vip-shine {
    0% { left: -100%; }
    100% { left: 150%; }
}

/* 5. 皇冠/图标浮动呼吸效果 */
.vip-crown-float {
    display: inline-block;
    animation: vip-float 3s ease-in-out infinite;
}
@keyframes vip-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-2px); }
}

/* 6. 签到粒子效果容器 */
.vip-checkin-particles {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    pointer-events: none;
    z-index: 9999;
    overflow: hidden;
}
.vip-particle {
    position: absolute;
    font-size: 16px;
    animation: vip-particle-fall 2s ease-out forwards;
    opacity: 0;
}
@keyframes vip-particle-fall {
    0% {
        opacity: 1;
        transform: translateY(0) rotate(0deg) scale(1);
    }
    100% {
        opacity: 0;
        transform: translateY(200px) rotate(360deg) scale(0.5);
    }
}

/* 7. VIP标签徽章样式 */
.vip-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    background: var(--primary-gradient-soft);
    color: var(--primary);
    border: 1px solid var(--vip-border);
    white-space: nowrap;
}

/* 8. VIP按钮渐变样式 */
.vip-btn {
    background: var(--primary-gradient);
    color: #fff;
    border: none;
    border-radius: var(--radius-md);
    padding: 8px 16px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 2px 8px var(--primary-glow);
}
.vip-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px var(--primary-glow-strong);
}
.vip-btn:active {
    transform: translateY(0);
}

/* 浅色模式下晨曦金按钮文字颜色 */
[data-theme="light"][data-color="morning-gold"] .vip-btn {
    color: #6B5A3D;
}

/* 减少动画偏好 */
@media (prefers-reduced-motion: reduce) {
    .vip-avatar-ring::after,
    .vip-crown-float,
    .vip-loading::before,
    .vip-shine-effect::after {
        animation: none;
    }
}

/* 徽标/状态徽章按压效果 */
.status-badge:active {
    transform: scale(0.95);
}


/* ===== Settings Page Enhancements ===== */
.settings-content .settings-group-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-tertiary);
    margin: 20px 0 8px;
    padding-left: 2px;
    display: flex;
    align-items: center;
    gap: 8px;
    text-align: left;
}

.settings-content .settings-group-title:first-child {
    margin-top: 4px;
}

.settings-content .settings-group-title::before {
    content: '';
    width: 3px;
    height: 12px;
    background: var(--primary);
    border-radius: 2px;
    flex-shrink: 0;
}

.settings-content .settings-item-block {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
}

.settings-content .settings-item-block .settings-item-info {
    flex: none;
}
/* ========================================
   Premium Settings Modal - Card Design
   ======================================== */

/* Modal overall - 绝对定位方案，确保滚动稳定 */
.settings-modal .modal {
    width: 720px;
    max-width: 90vw;
    height: 85vh;
    display: flex;
    flex-direction: column;
}

.settings-modal .modal-body.settings-body {
    position: relative;
    flex: 1 1 auto;
    padding: 0 !important;
    overflow: hidden !important;
    min-height: 0;
    background: var(--bg-secondary);
}

.settings-modal .settings-nav {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 180px;
    overflow-y: auto;
    flex-shrink: 0;
    box-sizing: border-box;
}

.settings-modal .settings-content {
    position: absolute;
    left: 180px;
    right: 0;
    top: 0;
    bottom: 0;
    padding: 24px 32px;
    overflow-y: overlay;
    overflow-x: hidden;
    min-width: 0;
    min-height: 0;
    box-sizing: border-box;
}

/* Left Navigation */
.settings-nav {
    width: 180px;
    background: var(--bg-primary);
    border-right: 1px solid var(--border-color-light);
    padding: 16px 0;
    display: flex;
    flex-direction: column;
    flex-shrink: 0;
    overflow-y: auto;
}

.settings-nav-group {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: 14px;
}

.settings-nav-group:last-child {
    margin-bottom: 0;
}

.settings-nav-group-label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    color: var(--text-tertiary);
    padding: 6px 22px;
    user-select: none;
}

.settings-nav-item {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 10px;
    padding: 9px 14px;
    font-size: 13px;
    color: var(--text-secondary);
    cursor: pointer;
    position: relative;
    border-radius: 10px;
    transition: background 0.18s cubic-bezier(0.4, 0, 0.2, 1), color 0.18s ease;
    user-select: none;
}

.settings-nav-item svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    stroke-width: 1.8;
    transition: stroke 0.18s ease;
}

.settings-nav-item:hover {
    color: var(--text-primary);
    background: var(--bg-hover);
}

.settings-nav-item:hover svg {
    stroke: var(--text-primary);
}

.settings-nav-item.active {
    color: var(--primary);
    background: var(--primary-lightest);
    font-weight: 600;
}

.settings-nav-item.active svg {
    stroke: var(--primary);
}

/* Right Content Area */
.settings-content {
    flex: 1;
    padding: 28px 32px;
    overflow-y: auto;
    overflow-x: hidden;
}

.settings-content::-webkit-scrollbar {
    width: 6px;
}

.settings-content::-webkit-scrollbar-track {
    background: transparent;
}

.settings-content::-webkit-scrollbar-thumb {
    background: var(--border-color);
    border-radius: 3px;
}

.settings-content::-webkit-scrollbar-thumb:hover {
    background: var(--text-tertiary);
}

/* Section (page) visibility */
.settings-section {
    display: none;
    padding: 0;
    border: none;
    margin: 0;
    background: none;
}

.settings-section.active {
    display: block;
    animation: settingsSectionIn 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes settingsSectionIn {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .settings-section.active { animation: none; }
}

/* 确保 settings-content 内所有元素不超出宽度 */
.settings-content * {
    box-sizing: border-box;
}

.settings-content .settings-section,
.settings-content .settings-card,
.settings-content .settings-item {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

/* Page Header */
.settings-page-header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-color-light);
}

.settings-page-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--primary-lightest);
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.settings-page-icon svg {
    width: 22px;
    height: 22px;
    stroke-width: 1.8;
}

.settings-page-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.3;
}

.settings-page-subtitle {
    font-size: 12px;
    color: var(--text-tertiary);
    margin-top: 3px;
}

/* Settings Card */
.settings-card {
    background: var(--bg-primary);
    border: 1px solid var(--border-color-light);
    border-radius: var(--radius-lg);
    margin-bottom: 16px;
    overflow: hidden;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.settings-card:hover {
    border-color: var(--border-color);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    transform: translateY(-2px);
}

.settings-card-header {
    padding: 14px 18px;
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid var(--border-color-light);
    background: var(--bg-secondary);
}

.settings-card-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--primary);
    flex-shrink: 0;
}

.settings-card-body {
    padding: 4px 0;
}

/* Settings Item */
.settings-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    margin: 0;
    border-bottom: 1px solid var(--border-color-light);
    transition: background 0.15s ease;
    box-sizing: border-box;
    width: 100%;
}

.settings-item:hover {
    background: var(--bg-hover);
}

.settings-item:last-child,
.settings-item.settings-item-last {
    border-bottom: none;
}

.settings-item-info {
    flex: 1;
    min-width: 0;
    padding-right: 16px;
}

.settings-item-name {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 8px;
}

.settings-item-desc {
    font-size: 12px;
    color: var(--text-tertiary);
    margin-top: 3px;
    line-height: 1.5;
}

/* Block layout (item content below label) */
.settings-item-block {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
}

.settings-item-block .settings-item-info {
    padding-right: 0;
}

/* Select dropdown */
.settings-select {
    padding: 7px 28px 7px 12px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background: var(--bg-primary);
    color: var(--text-primary);
    font-size: 12px;
    cursor: pointer;
    outline: none;
    transition: all 0.18s ease;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2386909c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 8px center;
    background-size: 12px;
    min-width: 120px;
}

.settings-select:hover {
    border-color: var(--primary);
}

.settings-select:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-lightest);
}

/* Toggle Switch - Premium */
.toggle-switch {
    position: relative;
    display: inline-block;
    width: 42px;
    height: 24px;
    flex-shrink: 0;
}

.toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--border-color);
    transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 24px;
}

.toggle-slider::before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 50%;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}

.toggle-switch input:checked + .toggle-slider {
    background-color: var(--primary);
}

.toggle-switch input:checked + .toggle-slider::before {
    transform: translateX(18px);
}

.toggle-switch input:active + .toggle-slider::before {
    width: 22px;
}

.toggle-switch input:checked:active + .toggle-slider::before {
    transform: translateX(14px);
    width: 22px;
}

/* Textarea */
.settings-textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background: var(--bg-primary);
    color: var(--text-primary);
    font-size: 12px;
    font-family: inherit;
    resize: vertical;
    outline: none;
    transition: all 0.18s ease;
    line-height: 1.6;
    box-sizing: border-box;
}

.settings-textarea:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-lightest);
}

.settings-textarea:hover {
    border-color: var(--text-tertiary);
}

.settings-textarea::placeholder {
    color: var(--text-placeholder);
}

/* Hotkey button */
.hotkey-btn {
    padding: 6px 14px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    background: var(--bg-primary);
    color: var(--text-secondary);
    font-size: 12px;
    font-family: 'Consolas', 'Monaco', monospace;
    cursor: pointer;
    transition: all 0.18s ease;
    min-width: 140px;
    text-align: center;
}

.hotkey-btn:hover {
    border-color: var(--primary);
    color: var(--primary);
    background: var(--primary-lightest);
}

.hotkey-btn.recording {
    border-color: var(--warning-color, #ff9f0a);
    color: var(--warning-color, #ff9f0a);
    background: rgba(255, 159, 10, 0.1);
    animation: hotkeyPulse 1.2s ease-in-out infinite;
}

@keyframes hotkeyPulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255, 159, 10, 0.3); }
    50% { box-shadow: 0 0 0 6px rgba(255, 159, 10, 0); }
}

/* Theme color buttons */
.theme-colors {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 4px 0;
}

.theme-color-btn {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    cursor: pointer;
    position: relative;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid transparent;
}

.theme-color-btn:hover {
    transform: scale(1.15);
}

.theme-color-btn.active {
    border-color: var(--text-primary);
    transform: scale(1.1);
}

.theme-color-btn.active::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    background: white;
    border-radius: 50%;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

/* VIP Theme Section */
.vip-theme-section {
    margin-top: 4px;
}

.vip-theme-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.vip-theme-card {
    position: relative;
    border: 1px solid var(--border-color-light);
    border-radius: 10px;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg-primary);
}

.vip-theme-card:hover {
    border-color: var(--primary);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
}

.vip-theme-preview {
    height: 80px;
    position: relative;
    overflow: hidden;
}

.vip-theme-preview-bar {
    height: 16px;
    background: rgba(255, 255, 255, 0.3);
    margin: 8px;
    border-radius: 4px;
}

.vip-theme-preview-dots {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    gap: 3px;
}

.vip-theme-preview-dots span {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
}

.vip-theme-preview-body {
    padding: 4px 8px;
}

.vip-theme-preview-line {
    height: 6px;
    background: rgba(255, 255, 255, 0.25);
    border-radius: 3px;
    margin-bottom: 4px;
}

.vip-theme-preview-line.short {
    width: 60%;
}

.vip-theme-info {
    padding: 10px;
    text-align: center;
}

.vip-theme-name {
    font-size: 12px;
    font-weight: 500;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}

.vip-theme-badge {
    font-size: 9px;
    padding: 1px 5px;
    border-radius: 3px;
    font-weight: 600;
    line-height: 1.4;
}

.vip-theme-badge.gold {
    background: linear-gradient(135deg, #f5d98e, #c9a063);
    color: #5c4821;
}

.vip-theme-badge.blue {
    background: linear-gradient(135deg, #b0d4ff, #4a90d9);
    color: #1a3a5c;
}

.vip-theme-badge.purple {
    background: linear-gradient(135deg, #d4a5ff, #8b5cf6);
    color: #3d1a6e;
}

.vip-theme-desc {
    font-size: 11px;
    color: var(--text-tertiary);
    margin-top: 3px;
}

.vip-theme-lock-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(2px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    opacity: 1;
    transition: opacity 0.2s ease;
}

.vip-theme-card:not(.vip-locked) .vip-theme-lock-overlay {
    opacity: 0;
    pointer-events: none;
}

.vip-theme-lock-icon {
    font-size: 20px;
}

.vip-theme-lock-text {
    font-size: 11px;
    color: white;
    font-weight: 500;
}

.vip-theme-status {
    position: absolute;
    top: 6px;
    left: 6px;
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 4px;
    background: rgba(48, 209, 88, 0.9);
    color: white;
    font-weight: 500;
    z-index: 2;
    display: none;
}

.vip-theme-card.active .vip-theme-status {
    display: block;
}

/* Background level options */
.bg-level-options {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.bg-level-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 14px 8px;
    border: 1px solid var(--border-color);
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--bg-primary);
    text-align: center;
}

.bg-level-btn:hover {
    border-color: var(--primary);
    background: var(--primary-lightest);
}

.bg-level-btn.active {
    border-color: var(--primary);
    background: var(--primary-lightest);
    color: var(--primary);
    transform: translateY(-1px);
    box-shadow: 0 4px 14px var(--primary-lightest);
}

.bg-level-btn .level-name {
    font-size: 13px;
    font-weight: 600;
}

.bg-level-btn .level-desc {
    font-size: 11px;
    color: var(--text-tertiary);
}

.bg-level-btn.active .level-desc {
    color: var(--primary);
    opacity: 0.8;
}

/* Task/Points badge */
.settings-task-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    background: linear-gradient(135deg, #fff4e0, #ffe0b2);
    color: #d48806;
    font-size: 11px;
    font-weight: 600;
    border-radius: 10px;
    margin-left: 8px;
}

/* About section */
.settings-card.about-card .settings-card-body {
    padding: 0;
}

.about-hero {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 24px 20px;
}

.about-hero-icon {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--primary), var(--primary-dark, #0056b3));
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(0, 125, 255, 0.3);
}

.about-hero-icon svg {
    width: 28px;
    height: 28px;
}

.about-hero-name {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary);
}

.about-hero-version {
    font-size: 12px;
    color: var(--text-tertiary);
    margin-top: 4px;
}

.about-copyright {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    font-size: 12px;
    color: var(--text-tertiary);
}

.about-copyright-link {
    color: var(--primary);
    text-decoration: none;
    font-weight: 500;
    transition: opacity 0.15s ease;
}

.about-copyright-link:hover {
    opacity: 0.8;
}

/* Update info card */
.update-info-card {
    background: var(--bg-secondary);
    border-radius: 10px;
    padding: 14px;
    border: 1px solid var(--border-color-light);
}

.update-info-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.update-version {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-primary);
}

.update-date {
    font-size: 11px;
    color: var(--text-tertiary);
}

.update-badge {
    display: inline-block;
    padding: 3px 10px;
    background: var(--danger-color, #ff4d4f);
    color: white;
    font-size: 11px;
    font-weight: 600;
    border-radius: 10px;
    margin-bottom: 10px;
}

.update-changelog {
    font-size: 12px;
    color: var(--text-secondary);
    line-height: 1.7;
    max-height: 120px;
    overflow-y: auto;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .settings-nav {
        width: 60px;
    }

    .settings-nav-group-label {
        display: none;
    }

    .settings-nav-group {
        margin-bottom: 8px;
    }

    .settings-nav-item {
        margin: 0 8px;
        padding: 10px 0;
        justify-content: center;
    }

    .settings-nav-item span:not(.settings-nav-item svg) {
        display: none;
    }
    
    .settings-content {
        padding: 20px;
    }
    
    .vip-theme-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .bg-level-options {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* 邮箱通知开关旁的说明提示图标（hover/focus 显示气泡） */
.qn-help-tip {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    margin-left: 6px;
    border-radius: 50%;
    background: var(--color-primary, #409eff);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    cursor: help;
    vertical-align: middle;
    user-select: none;
    flex: 0 0 auto;
}

.qn-help-tip-pop {
    position: absolute;
    left: 0;
    top: calc(100% + 8px);
    width: 240px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #1f2533;
    color: #e8ecf3;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.6;
    text-align: left;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
    opacity: 0;
    visibility: hidden;
    transform: translateY(4px);
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 9999;
    pointer-events: none;
    white-space: normal;
    word-break: break-word;
}

.qn-help-tip-pop::after {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 8px;
    border: 6px solid transparent;
    border-bottom-color: #1f2533;
}

.qn-help-tip:hover .qn-help-tip-pop,
.qn-help-tip:focus .qn-help-tip-pop,
.qn-help-tip:focus-visible .qn-help-tip-pop {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* 通知设置页介绍条 */
.settings-intro {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 var(--space-4, 16px);
    padding: 12px 14px;
    border-radius: var(--radius-md, 10px);
    background: color-mix(in srgb, var(--color-primary, #2563eb) 8%, var(--bg-elevated, #fff));
    border: 1px solid color-mix(in srgb, var(--color-primary, #2563eb) 18%, transparent);
    color: var(--text-secondary, #475569);
    font-size: 13px;
    line-height: 1.65;
}
.settings-intro-icon {
    flex: 0 0 auto;
    margin-top: 2px;
    color: var(--color-primary, #2563eb);
}
.settings-intro-text { flex: 1; }
.settings-intro-text b { color: var(--text-primary, #0f172a); font-weight: 600; }
}