/**
 * OpenCPAi 全局主题系统 v1.0
 * ===========================
 * 
 * 设计原则：
 * 1. 科技感 + 专业 + 优雅（适合财税审计人员，女性友好）
 * 2. 参考 ChatGPT/豆包/Notion 的成熟配色
 * 3. 支持三种主题：深色(dark)、浅色(light)、中性(neutral)
 * 
 * 使用方法：
 * 1. 在 HTML 中引入此文件
 * 2. 在 <html> 或 <body> 上添加 data-theme="dark|light|neutral"
 * 3. 使用 CSS 变量，如 var(--bg-primary)
 */

/* ============================================
   一、语义化颜色变量（按用途命名）
   ============================================ */

:root {
    /* ========== 品牌色（固定不变）========== */
    --brand-primary: #3B82F6;
    /* 品牌蓝 - 专业、可信赖 */
    --brand-secondary: #8B5CF6;
    /* 品牌紫 - 科技、优雅 */
    --brand-gradient: linear-gradient(135deg, #3B82F6, #8B5CF6);

    /* ========== 功能色（固定不变）========== */
    --color-success: #10B981;
    /* 成功/通过 - 绿色 */
    --color-warning: #F59E0B;
    /* 警告/注意 - 橙色 */
    --color-error: #EF4444;
    /* 错误/危险 - 红色 */
    --color-info: #3B82F6;
    /* 信息/提示 - 蓝色 */

    /* ========== 微信专用 ========== */
    --wechat-green: #07C160;

    /* ========== 过渡动画 ========== */
    --transition-colors: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}

/* ============================================
   二、深色主题 (Dark) - 默认
   参考: ChatGPT深色模式
   ============================================ */

[data-theme="dark"],
:root {
    /* 背景层级（由深到浅）*/
    --bg-base: #0a0a0a;
    /* 最底层背景 */
    --bg-primary: #0f0f0f;
    /* 主要背景 */
    --bg-secondary: #171717;
    /* 次要背景（卡片、侧边栏）*/
    --bg-tertiary: #1f1f1f;
    /* 第三层（悬浮、输入框）*/
    --bg-elevated: #262626;
    /* 抬升层（下拉菜单、弹窗）*/

    /* 文字层级（由亮到暗）*/
    --text-primary: #FAFAFA;
    /* 主要文字 */
    --text-secondary: #A3A3A3;
    /* 次要文字 */
    --text-tertiary: #737373;
    /* 辅助文字 */
    --text-disabled: #525252;
    /* 禁用文字 */

    /* 边框 */
    --border-default: rgba(255, 255, 255, 0.08);
    --border-hover: rgba(255, 255, 255, 0.15);
    --border-active: rgba(255, 255, 255, 0.25);

    /* 交互状态 */
    --hover-overlay: rgba(255, 255, 255, 0.05);
    --active-overlay: rgba(255, 255, 255, 0.1);
    --focus-ring: rgba(59, 130, 246, 0.5);

    /* 阴影 */
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.5);
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.5);
    --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.5);

    /* 滚动条 */
    --scrollbar-track: #1f1f1f;
    --scrollbar-thumb: #404040;
    --scrollbar-thumb-hover: #525252;

    /* 图标颜色 */
    --color-icon-primary: #FAFAFA;
    --color-icon-secondary: #A3A3A3;
    --color-icon-tertiary: #737373;
    --color-icon-brand: var(--brand-primary);
    --color-icon-success: var(--color-success);
    --color-icon-warning: var(--color-warning);
    --color-icon-error: var(--color-error);

    /* 前景色 (通用) */
    --foreground: #FAFAFA;
    --foreground-muted: #A3A3A3;
}

/* ============================================
   三、浅色主题 (Light)
   参考: ChatGPT浅色模式、豆包
   ============================================ */

[data-theme="light"] {
    /* 背景层级（由浅到深）*/
    --bg-base: #FFFFFF;
    /* 最底层背景 */
    --bg-primary: #FFFFFF;
    /* 主要背景 */
    --bg-secondary: #F7F7F8;
    /* 次要背景（卡片、侧边栏）*/
    --bg-tertiary: #ECECF1;
    /* 第三层（悬浮、输入框）*/
    --bg-elevated: #FFFFFF;
    /* 抬升层（下拉菜单、弹窗）*/

    /* 文字层级（由深到浅）*/
    --text-primary: #1A1A1A;
    /* 主要文字 */
    --text-secondary: #6B6B6B;
    /* 次要文字 */
    --text-tertiary: #8E8E8E;
    /* 辅助文字 */
    --text-disabled: #ABABAB;
    /* 禁用文字 */

    /* 边框 */
    --border-default: rgba(0, 0, 0, 0.08);
    --border-hover: rgba(0, 0, 0, 0.15);
    --border-active: rgba(0, 0, 0, 0.25);

    /* 交互状态 */
    --hover-overlay: rgba(0, 0, 0, 0.04);
    --active-overlay: rgba(0, 0, 0, 0.08);
    --focus-ring: rgba(59, 130, 246, 0.3);

    /* 阴影 */
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);
    --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);

    /* 滚动条 */
    --scrollbar-track: #F7F7F8;
    --scrollbar-thumb: #D1D1D1;
    --scrollbar-thumb-hover: #ABABAB;

    /* 图标颜色 */
    --color-icon-primary: #1A1A1A;
    --color-icon-secondary: #6B6B6B;
    --color-icon-tertiary: #8E8E8E;
    --color-icon-brand: var(--brand-primary);
    --color-icon-success: var(--color-success);
    --color-icon-warning: var(--color-warning);
    --color-icon-error: var(--color-error);

    /* 前景色 (通用) */
    --foreground: #1A1A1A;
    --foreground-muted: #6B6B6B;
}

/* ============================================
   四、中性主题 (Neutral) - 柔和深色
   参考: Notion深色、温柔科技风
   适合女性用户，柔和但不失专业
   ============================================ */

[data-theme="neutral"] {
    /* 背景层级（柔和深色，带一点暖调）*/
    --bg-base: #1A1B1E;
    /* 最底层背景 - 带微暖 */
    --bg-primary: #1E1F23;
    /* 主要背景 */
    --bg-secondary: #25262B;
    /* 次要背景 */
    --bg-tertiary: #2C2D33;
    /* 第三层 */
    --bg-elevated: #37383F;
    /* 抬升层 */

    /* 文字层级（柔和白，不刺眼）*/
    --text-primary: #E8E8ED;
    /* 主要文字 */
    --text-secondary: #9898A0;
    /* 次要文字 */
    --text-tertiary: #6C6C75;
    /* 辅助文字 */
    --text-disabled: #4A4A52;
    /* 禁用文字 */

    /* 边框 */
    --border-default: rgba(255, 255, 255, 0.06);
    --border-hover: rgba(255, 255, 255, 0.12);
    --border-active: rgba(255, 255, 255, 0.2);

    /* 交互状态 */
    --hover-overlay: rgba(255, 255, 255, 0.04);
    --active-overlay: rgba(255, 255, 255, 0.08);
    --focus-ring: rgba(139, 92, 246, 0.4);
    /* 紫色聚焦，更柔和 */

    /* 阴影 */
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4);
    --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.4);

    /* 滚动条 */
    --scrollbar-track: #25262B;
    --scrollbar-thumb: #3D3E45;
    --scrollbar-thumb-hover: #4D4E55;

    /* 图标颜色 */
    --color-icon-primary: #E8E8ED;
    --color-icon-secondary: #9898A0;
    --color-icon-tertiary: #6C6C75;
    --color-icon-brand: var(--brand-secondary);
    --color-icon-success: var(--color-success);
    --color-icon-warning: var(--color-warning);
    --color-icon-error: var(--color-error);

    /* 前景色 (通用) */
    --foreground: #E8E8ED;
    --foreground-muted: #9898A0;
}

/* ============================================
   五、通用基础样式
   ============================================ */

/* 全局页面基色兜底：避免自定义 Tailwind 类失效时出现白底白字 */
html,
body {
    background-color: var(--bg-base);
    color: var(--text-primary);
}

/* 全局过渡 */
*,
*::before,
*::after {
    transition: var(--transition-colors);
}

/* 滚动条样式 */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--scrollbar-track);
}

::-webkit-scrollbar-thumb {
    background: var(--scrollbar-thumb);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--scrollbar-thumb-hover);
}

/* 选中文本颜色 */
::selection {
    background: rgba(139, 92, 246, 0.3);
    color: var(--text-primary);
}

/* 聚焦样式 */
:focus-visible {
    outline: 2px solid var(--focus-ring);
    outline-offset: 2px;
}

/* ============================================
   六、Tailwind CSS 兼容类（!important 防御层）
   说明：Tailwind CDN 注入的 <style> 在 theme.css 之后，
   同名类会被覆盖。加 !important 确保语义色始终生效。
   ============================================ */

/* 背景色 */
.bg-base {
    background-color: var(--bg-base) !important;
}

.bg-primary {
    background-color: var(--bg-primary) !important;
}

.bg-secondary {
    background-color: var(--bg-secondary) !important;
}

.bg-tertiary {
    background-color: var(--bg-tertiary) !important;
}

.bg-elevated {
    background-color: var(--bg-elevated) !important;
}

/* 文字色 */
.text-primary {
    color: var(--text-primary) !important;
}

.text-secondary {
    color: var(--text-secondary) !important;
}

.text-tertiary {
    color: var(--text-tertiary) !important;
}

.text-disabled {
    color: var(--text-disabled) !important;
}

/* 边框色 */
.border-default {
    border-color: var(--border-default) !important;
}

.border-hover {
    border-color: var(--border-hover) !important;
}

/* 品牌色 */
.text-brand {
    color: var(--brand-primary) !important;
}

.bg-brand {
    background-color: var(--brand-primary) !important;
}

.bg-brand-gradient {
    background: var(--brand-gradient) !important;
}

/* 功能色 */
.text-success {
    color: var(--color-success) !important;
}

.text-warning {
    color: var(--color-warning) !important;
}

.text-error {
    color: var(--color-error) !important;
}

.bg-success {
    background-color: var(--color-success) !important;
}

.bg-warning {
    background-color: var(--color-warning) !important;
}

.bg-error {
    background-color: var(--color-error) !important;
}

/* ============================================
   七、Tailwind 自定义类兼容层（系统性修复）
    说明：历史页面大量使用 bg-bg-* / text-accent-* 等类名，
    若未注入对应 Tailwind config，会导致背景/文字失效。
    ============================================ */

/* 背景语义别名 */
.bg-bg-dark {
    background-color: var(--bg-base) !important;
}

.bg-bg-card {
    background-color: var(--bg-secondary) !important;
}

.bg-bg-chat {
    background-color: var(--bg-secondary) !important;
}

.bg-bg-dark\/50 {
    background-color: color-mix(in srgb, var(--bg-base) 50%, transparent) !important;
}

.bg-bg-dark\/80 {
    background-color: color-mix(in srgb, var(--bg-base) 80%, transparent) !important;
}

.bg-bg-dark\/95 {
    background-color: color-mix(in srgb, var(--bg-base) 95%, transparent) !important;
}

.bg-bg-card\/30 {
    background-color: color-mix(in srgb, var(--bg-secondary) 30%, transparent) !important;
}

.bg-bg-card\/50 {
    background-color: color-mix(in srgb, var(--bg-secondary) 50%, transparent) !important;
}

/* 品牌色别名 */
.text-accent-blue {
    color: var(--brand-primary) !important;
}

.bg-accent-blue {
    background-color: var(--brand-primary) !important;
}

.text-accent-purple {
    color: var(--brand-secondary) !important;
}

.bg-accent-purple {
    background-color: var(--brand-secondary) !important;
}

.text-accent-green {
    color: var(--color-success) !important;
}

/* 半透明品牌背景 */
.bg-accent-blue\/10 {
    background-color: color-mix(in srgb, var(--brand-primary) 10%, transparent) !important;
}

.bg-accent-blue\/20 {
    background-color: color-mix(in srgb, var(--brand-primary) 20%, transparent) !important;
}

.bg-accent-blue\/30 {
    background-color: color-mix(in srgb, var(--brand-primary) 30%, transparent) !important;
}

.bg-accent-blue\/40 {
    background-color: color-mix(in srgb, var(--brand-primary) 40%, transparent) !important;
}

.hover\:bg-accent-blue\/20:hover {
    background-color: color-mix(in srgb, var(--brand-primary) 20%, transparent) !important;
}

.hover\:bg-accent-blue\/30:hover {
    background-color: color-mix(in srgb, var(--brand-primary) 30%, transparent) !important;
}

.hover\:bg-accent-blue\/40:hover {
    background-color: color-mix(in srgb, var(--brand-primary) 40%, transparent) !important;
}

/* 边框别名 */
.border-accent-blue\/30 {
    border-color: color-mix(in srgb, var(--brand-primary) 30%, transparent) !important;
}

.border-accent-blue\/40 {
    border-color: color-mix(in srgb, var(--brand-primary) 40%, transparent) !important;
}

.border-accent-blue\/50 {
    border-color: color-mix(in srgb, var(--brand-primary) 50%, transparent) !important;
}

/* 历史白色透明类在浅色主题可读性兜底 */
.border-white\/5,
.border-white\/10 {
    border-color: var(--border-default) !important;
}

.border-white\/20 {
    border-color: var(--border-hover) !important;
}

.bg-white\/5 {
    background-color: color-mix(in srgb, var(--bg-secondary) 70%, transparent) !important;
}

.bg-white\/10 {
    background-color: color-mix(in srgb, var(--bg-tertiary) 70%, transparent) !important;
}

/* 文本可读性修复：避免浅色主题下白字/浅灰字不可见 */
.text-white {
    color: var(--text-primary) !important;
}

.text-gray-100,
.text-gray-200,
.text-gray-300 {
    color: var(--text-secondary) !important;
}

.text-gray-400,
.text-gray-500 {
    color: var(--text-tertiary) !important;
}

/* 输入框聚焦兼容 */
.focus\:border-accent-blue\/50:focus {
    border-color: color-mix(in srgb, var(--brand-primary) 50%, transparent) !important;
}

.focus\:ring-accent-blue\/20:focus {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-primary) 20%, transparent) !important;
}

/* ============================================
   Zinc / Gray 系列浅色主题兼容
   说明：历史页面使用 bg-zinc-* 等 Tailwind 原生暗色类，
   在浅色主题下需要反转为语义化颜色。
   ============================================ */

[data-theme="light"] .bg-zinc-900,
[data-theme="light"] .bg-zinc-900\/90 {
    background-color: #FFFFFF !important;
}

[data-theme="light"] .bg-zinc-800,
[data-theme="light"] .bg-zinc-800\/80 {
    background-color: #F3F4F6 !important;
}

[data-theme="light"] .bg-zinc-700 {
    background-color: #E5E7EB !important;
}

[data-theme="light"] .bg-zinc-600,
[data-theme="light"] .hover\:bg-zinc-600:hover {
    background-color: #D1D5DB !important;
}

[data-theme="light"] .hover\:bg-zinc-700:hover {
    background-color: #E5E7EB !important;
}

[data-theme="light"] .group-hover\:bg-zinc-600:hover,
[data-theme="light"] .group:hover .group-hover\:bg-zinc-600 {
    background-color: #D1D5DB !important;
}

[data-theme="light"] .bg-gray-700 {
    background-color: #E5E7EB !important;
}

/* 浅色主题下登录按钮反转 */
[data-theme="light"] .bg-white.text-black {
    background-color: #1A1A1A !important;
    color: #FFFFFF !important;
}

/* ============================================
   八、（已移除）Jenny 个性化主题色
   说明：v2.0 简化为 dark/light/neutral 三种界面主题
   ============================================ */

/* ============================================
    九、主题切换 JavaScript 辅助
   ============================================ */

/* ============================================
   确认弹窗 (ConfirmDialog) 样式
   ============================================ */

/* 遮罩层 */
.confirm-dialog-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0);
    backdrop-filter: blur(0px);
    transition: background 0.2s ease, backdrop-filter 0.2s ease;
}

.confirm-dialog-overlay.confirm-dialog-visible {
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
}

/* 卡片 */
.confirm-dialog-card {
    background: var(--bg-elevated, #262626);
    border: 1px solid var(--border-default, rgba(255, 255, 255, 0.08));
    border-radius: 16px;
    padding: 24px;
    width: 90%;
    max-width: 380px;
    box-shadow: var(--shadow-lg, 0 10px 15px rgba(0, 0, 0, 0.5));
    transform: scale(0.9) translateY(10px);
    opacity: 0;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.confirm-dialog-visible .confirm-dialog-card {
    transform: scale(1) translateY(0);
    opacity: 1;
}

/* body 区域 */
.confirm-dialog-body {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 24px;
}

/* 图标 */
.confirm-dialog-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.confirm-dialog-icon-danger {
    background: rgba(239, 68, 68, 0.12);
    color: #EF4444;
}

.confirm-dialog-icon-warning {
    background: rgba(245, 158, 11, 0.12);
    color: #F59E0B;
}

.confirm-dialog-icon-info {
    background: rgba(59, 130, 246, 0.12);
    color: #3B82F6;
}

/* 文本 */
.confirm-dialog-text {
    flex: 1;
    min-width: 0;
    padding-top: 2px;
}

.confirm-dialog-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary, #FAFAFA);
    margin-bottom: 6px;
}

.confirm-dialog-message {
    font-size: 14px;
    color: var(--text-secondary, #A3A3A3);
    line-height: 1.5;
}

/* 按钮区域 */
.confirm-dialog-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

.confirm-dialog-btn {
    padding: 8px 20px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    border: none;
    outline: none;
    transition: all 0.15s ease;
    font-family: inherit;
}

.confirm-dialog-btn:focus-visible {
    box-shadow: 0 0 0 2px var(--focus-ring, rgba(59, 130, 246, 0.5));
}

/* 取消按钮 */
.confirm-dialog-btn-cancel {
    background: var(--bg-tertiary, #1f1f1f);
    color: var(--text-secondary, #A3A3A3);
    border: 1px solid var(--border-default, rgba(255, 255, 255, 0.08));
}

.confirm-dialog-btn-cancel:hover {
    background: var(--hover-overlay, rgba(255, 255, 255, 0.05));
    color: var(--text-primary, #FAFAFA);
    border-color: var(--border-hover, rgba(255, 255, 255, 0.15));
}

/* 危险按钮 (删除) */
.confirm-dialog-btn-danger {
    background: #EF4444;
    color: #fff;
}

.confirm-dialog-btn-danger:hover {
    background: #DC2626;
}

/* 警告按钮 */
.confirm-dialog-btn-warning {
    background: #F59E0B;
    color: #fff;
}

.confirm-dialog-btn-warning:hover {
    background: #D97706;
}

/* 主要按钮 */
.confirm-dialog-btn-primary {
    background: var(--brand-primary, #3B82F6);
    color: #fff;
}

.confirm-dialog-btn-primary:hover {
    background: #2563EB;
}

/*
使用方法：

// 获取当前主题
const theme = document.documentElement.getAttribute('data-theme') || 'dark';

// 切换主题
function setTheme(theme) {
    document.documentElement.setAttribute('data-theme', theme);
    localStorage.setItem('opencpai-theme', theme);
}

// 初始化（从 localStorage 读取）
const savedTheme = localStorage.getItem('opencpai-theme') || 'dark';
setTheme(savedTheme);
*/