        /* ========== 全局变量 & 重置 ========== */
        :root {
            --bg-light: #f8fafc;
            --bg-card: #ffffff;
            --bg-card-alt: #f1f5f9;
            --border-light: #e2e8f0;
            --text-primary: #0f172a;
            --text-secondary: #475569;
            --accent-blue: #2563eb;
            --accent-blue-light: #3b82f6;
            --accent-teal: #0d9488;
            --shadow-sm: 0 1px 2px 0 rgba(0,0,0,0.05);
            --shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -1px rgba(0,0,0,0.06);
            --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -2px rgba(0,0,0,0.05);
        }
        * { margin:0; padding:0; box-sizing:border-box; }
        body {
            font-family: 'PingFang SC', 'Inter', 'Noto Sans SC', system-ui, sans-serif;
            background: var(--bg-light);
            color: var(--text-primary);
            line-height: 1.5;
            min-height: 100vh;
            display: flex;
            flex-direction: column;
        }

        /* ========== 导航 ========== */
        nav {
            background: rgba(255,255,255,0.96);
            backdrop-filter: blur(8px);
            border-bottom: 1px solid var(--border-light);
            position: sticky;
            top: 0;
            z-index: 100;
            padding: 0 5%;
            flex-shrink: 0;
        }
        .nav-inner {
            max-width: 1200px;
            margin: 0 auto;
            display: flex;
            align-items: center;
            justify-content: space-between;
            height: 70px;
        }
        .logo {
            display: flex;
            align-items: center;
            gap: 10px;
            text-decoration: none;
        }
        .logo-mark {
            width: 40px;
            height: 40px;
            background: linear-gradient(135deg, var(--accent-blue), var(--accent-teal));
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 800;
            font-size: 16px;
            color: white;
        }
        .logo-text {
            font-size: 20px;
            font-weight: 700;
            color: var(--text-primary);
            letter-spacing: 1px;
        }
        .logo-sub {
            font-size: 10px;
            color: var(--text-secondary);
            letter-spacing: 1px;
        }
        .nav-links {
            display: flex;
            gap: 20px;
            list-style: none;
            align-items: center;
        }
        .nav-links a {
            text-decoration: none;
            color: var(--text-secondary);
            font-size: 15px;
            transition: color 0.2s;
        }
        .nav-links a:hover {
            color: var(--accent-blue);
        }
        .btn-nav {
            background: linear-gradient(135deg, #2563eb, #0d9488);
            color: white !important;
            padding: 8px 20px;
            border-radius: 30px;
            font-weight: 500;
            transition: all 0.2s;
        }
        .btn-nav:hover {
            background: linear-gradient(135deg, #1d4ed8, #0f766e);
            transform: translateY(-1px);
            box-shadow: 0 4px 12px rgba(37,99,235,0.3);
        }
        .btn-outline-nav {
            background: transparent;
            border: 1px solid var(--border-light);
            color: var(--text-primary) !important;
            padding: 8px 20px;
            border-radius: 30px;
            font-weight: 500;
        }
        .btn-outline-nav:hover {
            border-color: var(--accent-blue);
            color: var(--accent-blue) !important;
        }

        /* 国税申报直达按钮高亮 */
        .nav-links a[href*="chinatax"] {
            background: #fef2f2;
            padding: 6px 14px;
            border-radius: 20px;
            font-size: 14px;
            transition: 0.2s;
        }
        .nav-links a[href*="chinatax"]:hover {
            background: #fee2e2;
            color: #dc2626 !important;
        }
        /* 登录按钮在深色导航下保持可见 */
        body.logged-in .btn-nav {
            background: linear-gradient(135deg, #2563eb, #0d9488);
            color: white !important;
        }
        body.logged-in .nav-links a { color: #cbd5e1; }
        body.logged-in .nav-links a[href*="chinatax"] {
            background: rgba(239,68,68,0.15);
            color: #fca5a5 !important;
        }
        body.logged-in .nav-links a[href*="chinatax"]:hover {
            background: rgba(239,68,68,0.25);
            color: #f87171 !important;
        }
        .user-badge {
            font-size: 14px;
            color: var(--text-secondary);
            display: flex;
            align-items: center;
            gap: 12px;
        }
        .user-badge .logout-btn {
            background: none;
            border: 1px solid var(--border-light);
            padding: 4px 12px;
            border-radius: 20px;
            cursor: pointer;
            font-size: 13px;
        }

        /* ========== 通用区块 ========== */
        section { padding: 60px 5%; }
        .container { max-width: 1200px; margin: 0 auto; }
        .section-label {
            font-size: 12px;
            letter-spacing: 3px;
            color: var(--accent-teal);
            text-transform: uppercase;
            margin-bottom: 12px;
        }
        .section-title {
            font-size: clamp(28px, 4vw, 40px);
            font-weight: 800;
            line-height: 1.2;
            margin-bottom: 20px;
            color: var(--text-primary);
        }

        /* ========== Hero ========== */
        .hero {
            background: linear-gradient(135deg, #eef2ff 0%, #ffffff 100%);
            padding: 60px 5% 40px;
        }
        .hero .container {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 48px;
            align-items: center;
            max-width: 1200px;
            margin: 0 auto;
        }
        .hero-badge {
            background: rgba(37,99,235,0.1);
            color: var(--accent-blue);
            display: inline-block;
            padding: 6px 14px;
            border-radius: 30px;
            font-size: 12px;
            margin-bottom: 20px;
        }
        .hero h1 {
            font-size: clamp(32px, 5vw, 52px);
            font-weight: 800;
            line-height: 1.2;
            margin-bottom: 20px;
        }
        .hero .gradient-text {
            background: linear-gradient(135deg, var(--accent-blue), var(--accent-teal));
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
        }
        .hero p {
            font-size: 16px;
            color: var(--text-secondary);
            margin-bottom: 32px;
            max-width: 500px;
        }
        .btn-group {
            display: flex;
            gap: 16px;
            flex-wrap: wrap;
        }
        .btn-primary {
            background: var(--accent-blue);
            color: white;
            padding: 12px 28px;
            border-radius: 40px;
            text-decoration: none;
            font-weight: 600;
            transition: all 0.2s;
            border: none;
            cursor: pointer;
            display: inline-flex;
            align-items: center;
            gap: 8px;
        }
        .btn-primary:hover {
            background: #1d4ed8;
            transform: translateY(-2px);
        }
        .btn-outline {
            background: transparent;
            border: 1px solid var(--border-light);
            color: var(--text-primary);
            padding: 12px 28px;
            border-radius: 40px;
            text-decoration: none;
            font-weight: 500;
            transition: all 0.2s;
        }
        .btn-outline:hover {
            border-color: var(--accent-blue);
            color: var(--accent-blue);
        }
        .hero-stats {
            display: flex;
            gap: 32px;
            margin-top: 48px;
        }
        .stat-item h3 {
            font-size: 28px;
            font-weight: 800;
            color: var(--text-primary);
        }
        .stat-item p {
            font-size: 13px;
            color: var(--text-secondary);
            margin: 0;
        }
        .hero-image img {
            max-width: 100%;
            border-radius: 24px;
            box-shadow: var(--shadow-lg);
        }

        /* ========== 功能卡片 ========== */
        .features {
            background: white;
            padding: 60px 5%;
        }
        .features-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            gap: 30px;
            margin-top: 20px;
        }
        .feature-card {
            background: var(--bg-card);
            border: 1px solid var(--border-light);
            border-radius: 20px;
            padding: 24px;
            transition: all 0.3s;
            box-shadow: var(--shadow-sm);
        }
        .feature-card:hover {
            transform: translateY(-4px);
            box-shadow: var(--shadow-lg);
            border-color: var(--accent-blue-light);
        }
        .feature-icon {
            width: 56px;
            height: 56px;
            background: #eff6ff;
            border-radius: 16px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 28px;
            margin-bottom: 16px;
        }
        .feature-card h3 { font-size: 18px; margin-bottom: 8px; }
        .feature-card p { color: var(--text-secondary); font-size: 14px; line-height: 1.6; }

                /* ========== V3.2 工作台全新设计 ========== */
        .workbench-section {
            background: linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
            padding: 20px 3% 40px;
            flex: 1;
            display: flex;
            flex-direction: column;
            transition: all 0.3s ease;
        }
        /* 未登录时工作台缩小 */
        .workbench-container {
            max-width: 1100px;
            margin: 0 auto;
            width: 100%;
            flex: 1;
            min-height: 500px;
            transition: max-width 0.4s ease;
        }
        body.logged-in .workbench-container { max-width: 100%; }
        body.logged-in .workbench-section { padding: 20px 2% 40px; }

        .workbench-title {
            font-size: 20px; font-weight: 700;
            margin-bottom: 16px; color: var(--text-primary);
            display: flex; align-items: center; gap: 8px;
        }
        .workbench-title .preview-badge {
            font-size: 11px; font-weight: 500;
            background: #fef3c7; color: #92400e;
            padding: 2px 10px; border-radius: 12px;
            display: none;
        }
        body:not(.logged-in) .workbench-title .preview-badge { display: inline-block; }

        /* 两栏布局 */
        .wb-2col {
            display: flex; gap: 0; height: calc(100vh - 220px);
            min-height: 550px; max-height: 800px;
            position: relative;
        }
        @media (max-width: 768px) {
            /* T-20260808-002: 移动端 workbench 布局——解除桌面 max-height 挤压，列方向自然堆叠，消除交叠 */
            .wb-2col { flex-direction: column; height: auto; min-height: auto; max-height: none; }
            .workbench-container { height: auto; min-height: auto; max-height: none; }
            .wb-left { flex: none; min-height: 400px; }
            .wb-right { flex: none; min-height: auto; }
            .wb-right-content { overflow: visible; }
        }

        /* 左栏：对话交互 */
        .wb-left {
            flex: 7; min-width: 280px;
            background: white; border-radius: 18px 0 0 18px;
            box-shadow: var(--shadow-md); border: 1px solid var(--border-light);
            display: flex; flex-direction: column; overflow: hidden;
            transition: flex 0.3s ease;
        }
        @media (max-width: 768px) {
            .wb-left { border-radius: 18px 18px 0 0; flex: none; min-height: 400px; }
        }

        /* 右栏：结果预览 */
        .wb-right {
            flex: 3; min-width: 200px;
            background: white; border-radius: 0 18px 18px 0;
            box-shadow: var(--shadow-md); border: 1px solid var(--border-light);
            border-left: none; display: flex; flex-direction: column;
            overflow: hidden; transition: flex 0.3s ease;
        }
        @media (max-width: 768px) {
            .wb-right { border-radius: 0 0 18px 18px; flex: none; min-height: 300px; border-left: 1px solid var(--border-light); }
        }

        /* 拖拽分隔条 */
        .wb-splitter {
            width: 8px; background: #f1f5f9; cursor: col-resize;
            flex-shrink: 0; position: relative; z-index: 10;
            transition: background 0.15s;
            display: flex; align-items: center; justify-content: center;
        }
        .wb-splitter:hover, .wb-splitter.active { background: #2563eb; }
        .wb-splitter::after {
            content: ''; width: 2px; height: 32px;
            background: #cbd5e1; border-radius: 1px;
        }
        .wb-splitter:hover::after, .wb-splitter.active::after { background: white; }
        @media (max-width: 768px) { .wb-splitter { display: none; } }

        /* 左右对调按钮 */
        .wb-swap-btn {
            position: absolute; top: 50%; right: -10px;
            transform: translateY(-50%);
            width: 28px; height: 28px; border-radius: 50%;
            background: white; border: 1px solid #e2e8f0;
            cursor: pointer; font-size: 12px; display: flex;
            align-items: center; justify-content: center;
            z-index: 20; transition: 0.15s;
            box-shadow: 0 2px 8px rgba(0,0,0,0.08);
        }
        .wb-swap-btn:hover { background: #2563eb; color: white; border-color: #2563eb; }

        /* 左栏内部 */
        .wb-left-header {
            background: linear-gradient(135deg, #1e40af, #0d9488);
            padding: 10px 16px; color: white; display: flex;
            align-items: center; gap: 8px; flex-shrink: 0;
            min-height: 48px;
        }
        .wb-left-header .wb-avatar {
            width: 34px; height: 34px; border-radius: 50%;
            background: rgba(255,255,255,0.2);
            display: flex; align-items: center; justify-content: center;
            font-size: 18px;
        }
        .wb-left-header .wb-title { font-weight: 700; font-size: 14px; }
        .wb-left-header .wb-sub { font-size: 10px; opacity: 0.8; }

        /* 上传区嵌入对话顶部 */
        .wb-upload-strip {
            padding: 8px 14px; background: #f8fafc;
            border-bottom: 1px solid #e2e8f0; flex-shrink: 0;
            display: flex; align-items: center; gap: 8px;
        }
        .wb-upload-strip .upload-btn {
            border: 1px dashed #cbd5e1; border-radius: 8px;
            padding: 4px 12px; cursor: pointer; font-size: 12px;
            background: white; display: flex; align-items: center; gap: 4px;
            transition: 0.15s; white-space: nowrap;
        }
        .wb-upload-strip .upload-btn:hover { border-color: #2563eb; background: #eff6ff; }
        .wb-upload-strip input[type="file"] { display: none; }

        .wb-msgs {
            flex: 1; overflow-y: auto; padding: 12px 14px;
            background: #f8fafc; display: flex; flex-direction: column;
            gap: 8px; min-height: 0;
        }
        .wb-msg {
            max-width: 88%; padding: 8px 12px; border-radius: 12px;
            font-size: 13px; line-height: 1.6; word-break: break-word;
        }
        .wb-msg.user { align-self: flex-end; background: #2563eb; color: white; border-bottom-right-radius: 4px; }
        .wb-msg.bot { align-self: flex-start; background: white; border: 1px solid #e2e8f0; border-bottom-left-radius: 4px; }
        .wb-msg .entries-table { width: 100%; font-size: 11px; border-collapse: collapse; margin: 6px 0; }
        .wb-msg .entries-table th { background: #f1f5f9; padding: 3px 6px; text-align: left; font-weight: 600; }
        .wb-msg .entries-table td { padding: 3px 6px; border-bottom: 1px solid #f1f5f9; }

        .wb-input-area {
            flex-shrink: 0; border-top: 1px solid #e2e8f0;
            padding: 8px 14px; background: white;
            display: flex; gap: 6px; align-items: flex-end;
        }
        .wb-input-area input {
            flex: 1; border: 1px solid #e2e8f0; border-radius: 20px;
            padding: 8px 14px; font-size: 13px; font-family: inherit;
            outline: none; min-width: 0;
        }
        .wb-input-area input:focus { border-color: #2563eb; }
        #wbPlusBtn:hover { border-color: #2563eb; color: #2563eb; background: #eff6ff; }
        .wb-send-btn {
            background: #2563eb; color: white; border: none;
            border-radius: 20px; padding: 8px 18px; cursor: pointer;
            font-size: 13px; font-weight: 600; white-space: nowrap;
            transition: 0.15s;
        }
        .wb-send-btn:hover { background: #1d4ed8; }
        .wb-send-btn:disabled { opacity: 0.5; cursor: not-allowed; }

        /* 快捷按钮 */
        .wb-quick-btns {
            display: flex; gap: 5px; flex-wrap: wrap;
            padding: 4px 14px; flex-shrink: 0;
            border-top: 1px solid #f1f5f9;
        }
        .wb-quick-btns button {
            background: white; border: 1px solid #e2e8f0;
            border-radius: 14px; padding: 2px 10px; cursor: pointer;
            font-size: 11px; white-space: nowrap; transition: 0.15s;
        }
        .wb-quick-btns button:hover { border-color: #2563eb; background: #eff6ff; }

        /* 右栏内部 */
        .wb-right-header {
            background: #f8fafc; padding: 8px 16px;
            border-bottom: 1px solid #e2e8f0; flex-shrink: 0;
            display: flex; align-items: center; gap: 8px;
        }
        .wb-right-header .wb-rtab {
            padding: 4px 12px; border-radius: 14px; cursor: pointer;
            font-size: 11px; font-weight: 600; color: #64748b;
            transition: 0.15s; white-space: nowrap;
        }
        .wb-right-header .wb-rtab:hover { background: #e2e8f0; }
        .wb-right-header .wb-rtab.active { background: #2563eb; color: white; }
        .wb-right-content { flex: 1; overflow-y: auto; padding: 12px 16px; }

        /* 右侧: 账目总览 */
        .wb-ledger { display: flex; flex-direction: column; gap: 4px; }
        .wb-ledger-row { display: flex; justify-content: space-between; padding: 4px 0; font-size: 13px; }
        .wb-ledger-row .wb-lbl { color: #64748b; }
        .wb-ledger-row .wb-amt { font-weight: 600; font-family: monospace; font-size: 14px; }
        .wb-ledger-row .wb-amt.pos { color: #059669; }
        .wb-ledger-row .wb-amt.neg { color: #dc2626; }
        .wb-ledger-total {
            display: flex; justify-content: space-between;
            padding: 6px 0; margin-top: 4px;
            border-top: 2px solid #e2e8f0;
            font-weight: 700; font-size: 15px;
        }

        /* 右侧: 报表区 */
        .wb-reports { display: flex; flex-direction: column; gap: 8px; }
        .wb-report-card {
            display: flex; justify-content: space-between; align-items: center;
            padding: 10px 12px; background: #f8fafc; border-radius: 10px;
            border: 1px solid #e2e8f0; cursor: pointer; transition: 0.15s;
        }
        .wb-report-card:hover { border-color: #2563eb; background: #eff6ff; }
        .wb-report-card .wb-rc-title { font-size: 13px; font-weight: 600; }
        .wb-report-card .wb-rc-status { font-size: 10px; color: #64748b; }

        /* 右侧: 政策列表 */
        .wb-policy-item {
            padding: 6px 0; border-bottom: 1px solid #f1f5f9;
            cursor: pointer; font-size: 12px; transition: 0.15s;
        }
        .wb-policy-item:hover { color: #2563eb; }
        .wb-policy-item .wb-policy-title { font-weight: 500; }
        .wb-policy-item .wb-policy-date { font-size: 10px; color: #94a3b8; }

        /* 右侧: 风控卡片 */
        .wb-risk-score {
            text-align: center; padding: 12px;
            background: #f8fafc; border-radius: 10px; margin-bottom: 8px;
        }
        .wb-risk-score .wb-risk-num { font-size: 40px; font-weight: 800; }
        .wb-risk-meta { font-size: 11px; color: #64748b; margin-top: 4px; }

        /* 未登录遮罩 */
        .wb-blur-overlay { display: none !important; /* disabled per user request */ 
            position: absolute; inset: 0; z-index: 5;
            backdrop-filter: blur(6px); background: rgba(255,255,255,0.4);
            display: flex; flex-direction: column; align-items: center;
            justify-content: center; border-radius: 18px;
        }
        body.logged-in .wb-blur-overlay { display: none !important; /* disabled per user request */  display: none !important; }
        @media (max-width: 768px) {
            .wb-blur-overlay { display: none !important; /* disabled per user request */  display: none; }
        }
        .wb-blur-overlay .wb-blur-msg {
            background: white; border-radius: 16px; padding: 20px 28px;
            text-align: center; box-shadow: 0 8px 30px rgba(0,0,0,0.12);
        }
        .wb-blur-overlay .wb-blur-msg h3 {
            font-size: 16px; color: #1e293b; margin-bottom: 6px;
        }
        .wb-blur-overlay .wb-blur-msg p {
            font-size: 12px; color: #64748b; margin-bottom: 12px;
            line-height: 1.6;
        }
        .wb-blur-overlay .wb-blur-btn {
            display: inline-block; background: #2563eb; color: white;
            padding: 10px 28px; border-radius: 24px; text-decoration: none;
            font-size: 14px; font-weight: 600; cursor: pointer;
            transition: 0.15s;
        }
        .wb-blur-overlay .wb-blur-btn:hover { background: #1d4ed8; transform: translateY(-1px); }

        /* 登录后全幅 */
        body.logged-in .wb-2col { max-height: none; height: calc(100vh - 200px); }
        body.logged-in .wb-2col .wb-blur-overlay { display: none !important; /* disabled per user request */  display: none; }

        /* ========== 统一工作台（AI对话常驻+右侧Tab切换） ========== */
        .unified-workbench {
            display: none;
            padding: 20px 3% 40px;
            background: #f1f5f9;
            flex: 1;
        }
        body.logged-in .unified-workbench { display: flex; }
        body.logged-in .workbench-section { display: none; }
        body.logged-in .module-section { display: none; }

        .uw-container {
            max-width: 1500px; margin: 0 auto; width: 100%;
            display: grid;
            grid-template-columns: 380px 1fr;
            gap: 20px;
            min-height: 75vh;
        }
        @media (max-width: 900px) {
            .uw-container { grid-template-columns: 1fr; }
        }

        /* 左侧: AI军师对话框 */
        .uw-ai-panel {
            background: white;
            border-radius: 18px;
            box-shadow: var(--shadow-md);
            border: 1px solid var(--border-light);
            display: flex;
            flex-direction: column;
            overflow: hidden;
            min-height: 600px;
        }
        .uw-ai-header {
            background: linear-gradient(135deg, #1e40af, #0d9488);
            padding: 14px 18px;
            color: white;
            display: flex;
            align-items: center;
            gap: 10px;
            flex-shrink: 0;
        }
        .uw-ai-header .ai-avatar {
            width: 42px; height: 42px;
            border-radius: 50%;
            background: rgba(255,255,255,0.2);
            display: flex; align-items: center; justify-content: center;
            font-size: 22px;
        }
        .uw-ai-header .ai-title { font-weight: 700; font-size: 15px; }
        .uw-ai-header .ai-sub { font-size: 11px; opacity: 0.8; }
        .uw-ai-msgs {
            flex: 1; overflow-y: auto; padding: 14px;
            background: #f8fafc;
            display: flex; flex-direction: column; gap: 10px;
        }
        .uw-ai-input-area {
            flex-shrink: 0;
            border-top: 1px solid var(--border-light);
            padding: 10px 14px; background: white;
            display: flex; flex-direction: column; gap: 6px;
        }
        .uw-ai-input-area textarea {
            border: 1px solid var(--border-light);
            border-radius: 10px; padding: 8px 10px;
            font-size: 13px; font-family: inherit; resize: none;
            min-height: 44px;
        }
        .uw-ai-input-area textarea:focus { outline: none; border-color: #2563eb; }
        .uw-ai-toolbar {
            display: flex; justify-content: space-between; align-items: center;
        }
        .uw-ai-toolbar .hint { font-size: 11px; color: #94a3b8; }
        .uw-send-btn {
            background: #2563eb; color: white; border: none;
            padding: 5px 18px; border-radius: 20px; font-size: 13px;
            font-weight: 500; cursor: pointer;
        }
        .uw-send-btn:hover { background: #1d4ed8; }
        .uw-send-btn:disabled { opacity: 0.5; cursor: not-allowed; }

        /* 右侧: Tab切换面板 */
        .uw-tab-panel {
            background: white;
            border-radius: 18px;
            box-shadow: var(--shadow-md);
            border: 1px solid var(--border-light);
            display: flex; flex-direction: column;
            overflow: hidden;
        }
        .uw-tabs {
            display: flex; border-bottom: 2px solid #e2e8f0;
            background: #f8fafc; flex-shrink: 0; overflow-x: auto;
        }
        .uw-tab {
            padding: 12px 20px; cursor: pointer; font-size: 13px; font-weight: 600;
            color: #64748b; border-bottom: 2px solid transparent;
            margin-bottom: -2px; white-space: nowrap;
            transition: 0.15s;
        }
        .uw-tab:hover { color: #2563eb; }
        .uw-tab.active { color: #2563eb; border-bottom-color: #2563eb; }

        .uw-tab-content {
            flex: 1; overflow-y: auto; padding: 16px;
            display: none;
        }
        .uw-tab-content.active { display: block; }

        @media (max-width: 768px) {
            .module-grid { grid-template-columns: 1fr; }
            .search-box { flex-direction: column; }
        }


        /* ========== 登录/未登录状态切换 ========== */
        .guest-only { display: block; }
        .user-only { display: none; }
        body.logged-in .guest-only { display: none !important; }
        body.logged-in .user-only { display: block !important; }
        body.logged-in .user-only-flex { display: flex !important; }
        body.logged-in .user-only-grid { display: grid !important; }

        /* 登录后导航变为深色专业风 */
        body.logged-in nav {
            background: #0f172a;
            border-bottom: 1px solid #1e293b;
        }
        body.logged-in nav .logo-text { color: #f1f5f9; }
        body.logged-in nav .logo-sub { color: #94a3b8; }
        body.logged-in .nav-links a { color: #cbd5e1; }
        body.logged-in .nav-links a:hover { color: #60a5fa; }
        body.logged-in .btn-nav {
            background: #1d4ed8;
            color: white !important;
        }
        body.logged-in .btn-outline-nav {
            border-color: #334155;
            color: #cbd5e1 !important;
        }

        /* 登录后Hero收起为窄条 */
        .hero-guest { display: block; }
        .hero-user { display: none; }
        body.logged-in .hero-guest { display: none !important; }
        body.logged-in .hero-user { display: block !important; }
        body.logged-in .hero {
            padding: 20px 5% 16px;
            background: #0f172a;
        }
        body.logged-in .hero-user-bar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 16px;
            max-width: 1200px;
            margin: 0 auto;
        }
        body.logged-in .hero-user-greeting {
            font-size: 18px;
            font-weight: 700;
            color: #f1f5f9;
        }
        body.logged-in .hero-user-greeting span {
            color: #60a5fa;
        }

        /* 工作台在登录后全宽放大 */
        /* removed for v3.2 */
        /* removed for v3.2 */
        /* removed for v3.2 */

        /* 登录后模块section间距收紧 */
        body.logged-in .module-section { padding: 28px 3%; }

        /* 数据卡片行 */
        .stats-row {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 16px;
        }
        @media (max-width: 768px) { .stats-row { grid-template-columns: repeat(2, 1fr); } }
        .stat-card {
            background: white;
            border: 1px solid var(--border-light);
            border-radius: 14px;
            padding: 16px;
            text-align: center;
        }
        .stat-card .stat-num {
            font-size: 32px;
            font-weight: 800;
            color: var(--accent-blue);
        }
        .stat-card .stat-label {
            font-size: 13px;
            color: var(--text-secondary);
            margin-top: 4px;
        }

        /* 快捷操作区 */
        .quick-actions {
            display: flex; gap: 10px; flex-wrap: wrap;
        }
        .quick-action-btn {
            padding: 8px 16px;
            border: 1px solid var(--border-light);
            border-radius: 20px;
            background: white;
            cursor: pointer;
            font-size: 13px;
            transition: 0.15s;
        }
        .quick-action-btn:hover {
            background: var(--accent-blue);
            color: white;
            border-color: var(--accent-blue);
        }


        /* ========== 国税快捷入口下拉菜单 ========== */
        .tax-dropdown {
            position: relative;
            display: inline-block;
        }
        .tax-dropdown-btn {
            color: #e53e3e !important;
            font-weight: 600;
            font-size: 14px;
            text-decoration: none;
            padding: 6px 14px;
            border-radius: 20px;
            background: #fef2f2;
            cursor: pointer;
            display: flex;
            align-items: center;
            gap: 4px;
            transition: 0.2s;
            border: none;
            font-family: inherit;
        }
        .tax-dropdown-btn:hover { background: #fee2e2; color: #dc2626 !important; }
        .tax-dropdown-btn .arrow { font-size: 10px; transition: transform 0.2s; }
        .tax-dropdown.open .tax-dropdown-btn .arrow { transform: rotate(180deg); }

        .tax-dropdown-menu {
            display: none;
            position: absolute;
            top: 100%;
            left: 50%;
            transform: translateX(-50%);
            background: white;
            border: 1px solid var(--border-light);
            border-radius: 16px;
            box-shadow: 0 20px 60px rgba(0,0,0,0.15);
            z-index: 999;
            min-width: 380px;
            padding: 8px 0;
            margin-top: 8px;
        }
        .tax-dropdown.open .tax-dropdown-menu { display: block; }

        .tax-menu-section {
            padding: 8px 16px 4px;
            font-size: 11px;
            font-weight: 700;
            color: #94a3b8;
            text-transform: uppercase;
            letter-spacing: 1px;
            border-top: 1px solid var(--border-light);
            margin-top: 4px;
        }
        .tax-menu-section:first-child { border-top: none; margin-top: 0; }

        .tax-menu-item {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 10px 16px;
            text-decoration: none;
            color: var(--text-primary);
            font-size: 13px;
            transition: 0.1s;
            cursor: pointer;
        }
        .tax-menu-item:hover { background: #f8fafc; }
        .tax-menu-item .city-name { font-weight: 500; }
        .tax-menu-item .city-badge {
            font-size: 10px;
            color: var(--text-secondary);
            background: var(--bg-card-alt);
            padding: 2px 6px;
            border-radius: 8px;
        }
        .tax-menu-item.overseas .city-name { color: var(--accent-teal); }
        .tax-menu-item.overseas .overseas-info {
            font-size: 10px;
            color: #64748b;
        }

        /* 暗色导航下的适配 */
        body.logged-in .tax-dropdown-btn {
            background: rgba(239,68,68,0.15);
            color: #fca5a5 !important;
        }
        body.logged-in .tax-dropdown-btn:hover {
            background: rgba(239,68,68,0.25);
            color: #f87171 !important;
        }
        body.logged-in .tax-dropdown-menu {
            background: #1e293b;
            border-color: #334155;
            color: #e2e8f0;
        }
        body.logged-in .tax-dropdown-menu .tax-menu-item {
            color: #e2e8f0;
        }
        body.logged-in .tax-dropdown-menu .tax-menu-item:hover {
            background: #334155;
        }
        body.logged-in .tax-menu-section {
            color: #64748b;
            border-color: #334155;
        }

        @media (max-width: 768px) {
            .tax-dropdown-menu { min-width: 300px; left: 0; transform: none; }
        }

    
        /* ===== V3.1 Conversational Entry ===== */
        .conv-workbench { display: flex; flex-direction: column; overflow: hidden; }
        .conv-header { background: linear-gradient(135deg,#7c3aed,#6d28d9); padding: 10px 16px; color: white; display: flex; align-items: center; gap: 8px; flex-shrink: 0; border-radius: 16px 16px 0 0; }
        .conv-upload-area { margin: 10px 12px; padding: 14px; border: 2px dashed #cbd5e1; border-radius: 12px; text-align: center; cursor: pointer; transition: all 0.2s; background: #fafbfc; flex-shrink: 0; }
        .conv-upload-area:hover { border-color: #7c3aed; background: #f5f3ff; }
        .conv-upload-area input[type="file"] { display: none; }
        .conv-messages { flex: 1; overflow-y: auto; padding: 10px 12px; background: #f8fafc; display: flex; flex-direction: column; gap: 8px; min-height: 200px; max-height: 300px; }
        .conv-msg { max-width: 95%; padding: 10px 12px; border-radius: 12px; font-size: 12px; line-height: 1.6; word-break: break-word; }
        .conv-msg-user { align-self: flex-end; background: #7c3aed; color: white; border-bottom-right-radius: 4px; }
        .conv-msg-bot { align-self: flex-start; background: white; border: 1px solid #e2e8f0; border-bottom-left-radius: 4px; }
        .conv-msg-bot table { font-size: 11px; width: 100%; border-collapse: collapse; }
        .conv-msg-bot table th { background: #f1f5f9; padding: 3px 5px; text-align: left; font-weight: 600; }
        .conv-msg-bot table td { padding: 3px 5px; border-bottom: 1px solid #f1f5f9; }
        .conv-quick-btns { display: flex; gap: 6px; flex-wrap: wrap; padding: 6px 12px; flex-shrink: 0; border-top: 1px solid #f1f5f9; }
        .conv-input-area { display: flex; gap: 6px; padding: 8px 12px; border-top: 1px solid #e2e8f0; background: white; flex-shrink: 0; }
        .conv-input-area input { flex: 1; border: 1px solid #e2e8f0; border-radius: 20px; padding: 6px 14px; font-size: 12px; font-family: inherit; outline: none; }
        .conv-input-area input:focus { border-color: #7c3aed; }
        .conv-send-btn { background: #7c3aed; color: white; border: none; border-radius: 20px; padding: 6px 16px; cursor: pointer; font-size: 12px; font-weight: 600; white-space: nowrap; }
        .conv-send-btn:hover { background: #6d28d9; }
        .conv-ledger { padding: 8px 12px; font-size: 11px; color: #64748b; background: #f8fafc; border-top: 1px solid #f1f5f9; flex-shrink: 0; }
        .conv-ledger-row { display: flex; justify-content: space-between; padding: 2px 0; }
        .conv-ledger-total { font-weight: 700; color: #1e293b; font-size: 13px; padding-top: 4px; border-top: 1px solid #e2e8f0; margin-top: 2px; display: flex; justify-content: space-between; }


        /* Footer links */
        footer a { transition: color 0.15s ease; }
        footer a:hover { color: #f1f5f9 !important; }


        .site-footer { margin-top: 0; padding: 48px 5% 32px; background: #0f172a; border-top: 1px solid #1e293b; }
        .site-footer .footer-inner { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 32px; }
        .site-footer .footer-links { display: flex; gap: 48px; flex-wrap: wrap; }
        .site-footer .footer-links h4 { color: #f1f5f9; font-size: 14px; font-weight: 600; margin-bottom: 12px; }
        .site-footer .footer-links ul { list-style: none; display: flex; flex-direction: column; gap: 8px; }
        .site-footer .footer-links a { color: #94a3b8; text-decoration: none; font-size: 13px; transition: color 0.15s; }
        .site-footer .footer-links a:hover { color: #f1f5f9; }
        .site-footer .footer-logo { display: flex; flex-direction: column; }
        .site-footer .footer-bottom { max-width: 1200px; margin: 24px auto 0; padding-top: 16px; border-top: 1px solid #1e293b; text-align: center; font-size: 11px; color: #64748b; }

        /* ===== 智能填表助手弹窗 ===== */
        .wb-sm-overlay { display:none; position:fixed; inset:0; background:rgba(15,23,42,0.6); z-index:10000; align-items:center; justify-content:center; padding:20px }
        .wb-sm-overlay.active { display:flex }
        .wb-sm-modal { background:#fff; border-radius:20px; box-shadow:0 24px 80px rgba(0,0,0,0.25); max-width:600px; width:100%; max-height:90vh; overflow-y:auto; position:relative; padding:36px 32px 28px }
        .wb-sm-close { position:absolute; top:12px; right:16px; width:32px;height:32px; border:none; background:#f1f5f9; border-radius:50%; font-size:18px; cursor:pointer; color:#64748b; display:flex; align-items:center; justify-content:center; transition:all 0.2s }
        .wb-sm-close:hover { background:#e2e8f0; color:#1e293b }
        .wb-sm-modal h2 { font-size:22px; font-weight:800; color:#1e293b; margin:0 0 6px; display:flex; align-items:center; gap:10px }
        .wb-sm-modal .wb-sm-sub { color:#64748b; font-size:13px; line-height:1.6; margin-bottom:20px }
        .wb-sm-flow { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:14px 10px; background:#f8fafc; border-radius:12px; margin-bottom:16px; font-size:12px; justify-content:center }
        .wb-sm-flow-item { background:#fff; border:1px solid #e2e8f0; border-radius:10px; padding:8px 14px; text-align:center; font-weight:600; color:#1e293b; white-space:nowrap }
        .wb-sm-flow-arrow { color:#94a3b8; font-size:18px; font-weight:700 }
        .wb-sm-note { padding:10px 14px; border-radius:10px; font-size:12px; line-height:1.7; margin-bottom:14px }
        .wb-sm-note-warn { background:#fefce8; border:1px solid #fde68a; color:#92400e }
        .wb-sm-note-info { background:#f0fdf4; border:1px solid #bbf7d0; color:#166534 }
        .wb-sm-steps { display:flex; flex-direction:column; gap:14px; margin-bottom:20px }
        .wb-sm-step { display:flex; gap:12px; align-items:flex-start }
        .wb-sm-step-num { width:28px;height:28px;min-width:28px;border-radius:50%;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px }
        .wb-sm-step-text h4 { margin:0 0 3px;font-size:13px;color:#1e293b }
        .wb-sm-step-text p { margin:0;font-size:12px;color:#64748b;line-height:1.5 }
        .wb-sm-step-text code { background:#f1f5f9; padding:2px 6px; border-radius:4px; font-size:11px; color:#475569 }
        .wb-sm-drag-area { text-align:center; margin-bottom:16px }
        .wb-sm-drag-btn { display:inline-block; background:linear-gradient(135deg,#2563eb,#7c3aed); color:#fff!important; padding:12px 32px; border-radius:40px; font-size:16px; font-weight:700; text-decoration:none; cursor:grab; box-shadow:0 4px 16px rgba(37,99,235,0.35); transition:all 0.2s }
        .wb-sm-drag-btn:hover { transform:translateY(-2px); box-shadow:0 6px 24px rgba(37,99,235,0.45) }
        .wb-sm-drag-hint { font-size:11px; color:#94a3b8; margin-top:6px }
        .wb-sm-features { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; justify-content:center }
        .wb-sm-feature { font-size:11px; color:#2563eb; background:#eff6ff; padding:3px 10px; border-radius:20px; font-weight:500 }
        .wb-sm-footer { text-align:center; font-size:11px; color:#94a3b8; margin-top:16px; padding-top:14px; border-top:1px solid #e2e8f0 }
        .wb-sm-footer a { color:#2563eb; text-decoration:none }

    
/* ========== 注册/登录模态框 ========== */
        .modal-overlay {
            visibility: hidden;
            opacity: 0;
            display: flex;
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,0.5);
            backdrop-filter: blur(4px);
            justify-content: center;
            align-items: center;
            z-index: 1000;
            padding: 20px;
        }
        .modal-overlay.active {
            visibility: visible;
            opacity: 1;
            transition: opacity 0.2s;
        }
        .modal-box {
            background: white;
            border-radius: 32px;
            max-width: 480px;
            width: 100%;
            padding: 32px 28px;
            box-shadow: 0 30px 60px rgba(0,0,0,0.3);
            position: relative;
            max-height: 90vh;
            overflow-y: auto;
        }
        .modal-close {
            position: absolute;
            top: 16px;
            right: 20px;
            font-size: 24px;
            cursor: pointer;
            color: var(--text-secondary);
            background: none;
            border: none;
        }
        .modal-close:hover { color: var(--text-primary); }
        .modal-box h2 {
            text-align: center;
            margin-bottom: 24px;
            font-size: 24px;
        }
        .modal-tabs {
            display: flex;
            gap: 12px;
            margin-bottom: 24px;
            border-bottom: 2px solid var(--border-light);
            padding-bottom: 12px;
        }
        .modal-tab {
            flex: 1;
            text-align: center;
            padding: 8px 0;
            font-weight: 600;
            cursor: pointer;
            color: var(--text-secondary);
            border-bottom: 3px solid transparent;
            transition: 0.2s;
        }
        .modal-tab.active {
            color: var(--accent-blue);
            border-bottom-color: var(--accent-blue);
        }
        .modal-tab:hover { color: var(--accent-blue); }
        .form-group {
            margin-bottom: 16px;
        }
        .form-group label {
            display: block;
            font-size: 14px;
            font-weight: 500;
            margin-bottom: 4px;
        }
        .form-group input {
            width: 100%;
            padding: 10px 14px;
            border: 1px solid var(--border-light);
            border-radius: 12px;
            font-size: 15px;
        }
        .form-group .pwd-wrap {
            position: relative;
            display: block;
        }
        .form-group .pwd-wrap input {
            padding-right: 44px;
        }
        .form-group .pwd-toggle {
            position: absolute;
            right: 4px;
            top: 50%;
            transform: translateY(-50%);
            background: none;
            border: none;
            font-size: 16px;
            cursor: pointer;
            padding: 6px 8px;
            opacity: 0.55;
            line-height: 1;
        }
        .form-group .pwd-toggle:hover { opacity: 0.85; }
        .form-group input:focus {
            outline: none;
            border-color: var(--accent-blue);
        }
        .form-row {
            display: flex;
            gap: 12px;
        }
        .form-row .form-group { flex: 1; }
        .captcha-btn {
            background: var(--bg-card-alt);
            border: 1px solid var(--border-light);
            padding: 0 16px;
            border-radius: 12px;
            cursor: pointer;
            font-size: 14px;
            white-space: nowrap;
            height: 44px;
            align-self: flex-end;
        }
        .captcha-btn:hover {
            background: var(--border-light);
        }
        .social-login {
            display: flex;
            gap: 16px;
            justify-content: center;
            margin-top: 16px;
        }
        .social-btn {
            width: 56px;
            height: 56px;
            border-radius: 50%;
            border: 1px solid var(--border-light);
            background: white;
            font-size: 28px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: 0.2s;
        }
        .social-btn:hover {
            border-color: var(--accent-blue);
            box-shadow: var(--shadow-md);
        }
        .social-btn.wechat { color: #07c160; }
        .social-btn.alipay { color: #1677ff; }

        /* ========== 页脚 ========== */
        footer {
            background: #0f172a;
            color: #94a3b8;
            padding: 32px 5% 20px;
            border-top: 1px solid #1e293b;
            flex-shrink: 0;
        }
        .footer-inner {
            max-width: 1200px;
            margin: 0 auto;
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            flex-wrap: wrap;
            gap: 24px;
        }
        .footer-logo { display: flex; flex-direction: column; }
        .footer-logo .logo-text { color: white; }
        .footer-links {
            display: flex;
            gap: 32px;
            flex-wrap: wrap;
        }
        .footer-links h4 { color: white; font-size: 14px; margin-bottom: 8px; }
        .footer-links ul { list-style: none; }
        .footer-links li { margin-bottom: 6px; }
        .footer-links a {
            color: #94a3b8;
            text-decoration: none;
            font-size: 13px;
        }
        .footer-links a:hover { color: white; }
        .copyright {
            text-align: center;
            padding-top: 20px;
            font-size: 12px;
            border-top: 1px solid #1e293b;
            margin-top: 20px;
        }

        /* ========== 响应式 ========== */
        @media (max-width: 768px) {
            .hero .container { grid-template-columns: 1fr; text-align: center; }
            .hero p { margin-left: auto; margin-right: auto; }
            .hero-stats { justify-content: center; }
            .workbench-grid { grid-template-columns: 1fr; height: auto; }
            .left-panel { min-height: 300px; }
            .right-panel { min-height: 450px; }
            .modal-box { padding: 24px 16px; }
            .form-row { flex-direction: column; }
            .captcha-btn { align-self: stretch; }
        }
        @media (max-width: 768px) {
            /* T-20260808-002: 736 档与参照页一致——隐藏 .nav-links（含税务申报下拉），nav 单行紧凑 */
            .nav-links { display: none; }
            .nav-inner { height: 71px; flex-wrap: nowrap; padding: 0; }
            .btn-outline-nav { display: inline-block; white-space: nowrap; }
            .tax-dropdown-menu { min-width: 280px; left: 0; transform: none; }
        }
        @media (max-width: 480px) {
            .ledger-summary { grid-template-columns: 1fr; }
        }

        /* ========== 模块面板通用样式 ========== */
        .module-section {
            background: white;
            padding: 40px 5%;
            border-top: 1px solid var(--border-light);
        }
        .module-section:nth-child(even) { background: #fafbfc; }
        .module-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 24px;
            flex-wrap: wrap;
            gap: 12px;
        }
        .module-header .module-icon { font-size: 28px; }
        .module-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
        .module-card {
            background: var(--bg-card);
            border: 1px solid var(--border-light);
            border-radius: 16px;
            padding: 20px;
            box-shadow: var(--shadow-sm);
        }
        .module-card.full { grid-column: 1 / -1; }
        .module-card h4 { font-size: 15px; font-weight: 600; margin-bottom: 12px; display:flex; align-items:center; gap:8px; }
        .module-card .card-body { font-size: 13px; color: var(--text-secondary); max-height: 300px; overflow-y: auto; }

        .upload-drop {
            border: 2px dashed var(--border-light);
            border-radius: 12px;
            padding: 24px;
            text-align: center;
            cursor: pointer;
            transition: 0.2s;
            background: var(--bg-card-alt);
        }
        .upload-drop:hover { border-color: var(--accent-blue); background: #f0f4ff; }
        .upload-drop input[type=file] { display: none; }

        .data-table { width: 100%; border-collapse: collapse; font-size: 13px; }
        .data-table th {
            background: var(--bg-card-alt);
            padding: 10px 8px;
            text-align: left;
            font-weight: 600;
            border-bottom: 2px solid var(--border-light);
            position: sticky; top: 0;
        }
        .data-table td { padding: 8px; border-bottom: 1px solid var(--border-light); }
        .data-table tr:hover { background: #f8faff; }

        .tag { display: inline-block; padding: 2px 8px; border-radius: 12px; font-size: 11px; font-weight: 600; }
        .tag-ok { background: #dcfce7; color: #166534; }
        .tag-warn { background: #fef3c7; color: #92400e; }
        .tag-err { background: #fee2e2; color: #991b1b; }
        .tag-info { background: #dbeafe; color: #1e40af; }

        .indicator-bar {
            display: flex; align-items: center; gap: 10px; margin-bottom: 8px;
        }
        .indicator-bar .bar-label { width: 100px; font-size: 13px; font-weight: 500; flex-shrink: 0; }
        .indicator-bar .bar-track { flex: 1; height: 8px; background: #e2e8f0; border-radius: 4px; overflow: hidden; }
        .indicator-bar .bar-fill { height: 100%; border-radius: 4px; transition: width 0.5s; }
        .bar-good { background: #22c55e; } .bar-warn { background: #f59e0b; } .bar-bad { background: #ef4444; }

        .alert-item {
            padding: 10px 14px; border-radius: 10px; margin-bottom: 8px;
            border-left: 4px solid; font-size: 13px;
        }
        .alert-critical { background: #fef2f2; border-color: #ef4444; }
        .alert-warning { background: #fffbeb; border-color: #f59e0b; }
        .alert-info { background: #eff6ff; border-color: #3b82f6; }
        .alert-item .alert-title { font-weight: 600; margin-bottom: 2px; }
        .alert-item .alert-desc { color: var(--text-secondary); font-size: 12px; }

        .search-box {
            display: flex; gap: 10px; margin-bottom: 16px;
        }
        .search-box input {
            flex: 1; padding: 10px 14px; border: 1px solid var(--border-light);
            border-radius: 12px; font-size: 14px; outline: none;
        }
        .search-box input:focus { border-color: var(--accent-blue); }
        .search-box button {
            padding: 10px 20px; background: var(--accent-blue); color: white;
            border: none; border-radius: 12px; cursor: pointer; font-weight: 500;
        }
        .search-box button:hover { background: #1d4ed8; }

        .policy-item {
            padding: 12px 14px; border: 1px solid var(--border-light); border-radius: 10px;
            margin-bottom: 8px; cursor: pointer; transition: 0.15s;
        }
        .policy-item:hover { border-color: var(--accent-blue); background: #f8faff; }
        .policy-item .policy-title { font-weight: 600; font-size: 14px; margin-bottom: 4px; }
        .policy-item .policy-meta { font-size: 12px; color: var(--text-secondary); display: flex; gap: 12px; }

        .spinner {
            display: inline-block; width: 16px; height: 16px;
            border: 2px solid #e2e8f0; border-top-color: var(--accent-blue);
            border-radius: 50%; animation: spin 0.6s linear infinite;
        }
        @keyframes spin { to { transform: rotate(360deg); } }


.tf-panel{background:#fff;border-radius:16px;box-shadow:0 4px 24px rgba(0,0,0,0.06);border:1px solid #e2e8f0;padding:20px 24px;margin-bottom:20px}
.tf-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.tf-panel-title{font-size:16px;font-weight:700;color:#1e293b;display:flex;align-items:center;gap:8px}
.tf-month-badge{font-size:12px;background:linear-gradient(135deg,#2563eb,#4338ca);color:#fff;padding:3px 10px;border-radius:20px;font-weight:500}
.tf-progress-bar{display:flex;align-items:center;gap:0;margin-bottom:20px}
.tf-step{flex:1;text-align:center;position:relative;cursor:pointer;transition:transform 0.2s}
.tf-step:hover{transform:translateY(-2px)}
.tf-step-icon{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 6px;font-size:20px;background:#f1f5f9;color:#94a3b8;border:3px solid #e2e8f0;transition:all 0.3s}
.tf-step-label{font-size:11px;color:#64748b;font-weight:500}
.tf-step-sub{font-size:10px;color:#94a3b8}
.tf-step.done .tf-step-icon{background:#dcfce7;color:#16a34a;border-color:#86efac}
.tf-step.done .tf-step-label{color:#16a34a}
.tf-step.in_progress .tf-step-icon{background:#dbeafe;color:#2563eb;border-color:#93c5fd;animation:tfPulse 2s infinite}
.tf-step.in_progress .tf-step-label{color:#2563eb;font-weight:700}
.tf-step.pending .tf-step-icon{background:#f1f5f9;color:#94a3b8;border-color:#e2e8f0}
@keyframes tfPulse{0%,100%{box-shadow:0 0 0 0 rgba(37,99,235,0.4)}50%{box-shadow:0 0 0 8px rgba(37,99,235,0)}}
.tf-connector{height:3px;background:#e2e8f0;flex:0.3;margin:0 -4px;margin-top:-28px;border-radius:2px;transition:background 0.3s}
.tf-connector.done{background:#86efac}
.tf-step-info{margin-top:12px;padding:10px 14px;background:#f8fafc;border-radius:10px;font-size:12px;color:#475569;min-height:36px;display:flex;align-items:center;gap:8px}
.tf-action-hint{margin-left:auto;font-size:11px;color:#2563eb;font-weight:600;cursor:pointer;white-space:nowrap}
.tf-action-hint:hover{text-decoration:underline}
.tf-all-done{text-align:center;padding:12px;background:linear-gradient(135deg,#dcfce7,#f0fdf4);border-radius:10px;color:#16a34a;font-weight:600;font-size:14px}
