/**
 * 中台系统配色方案
 * 低饱和度 · 高对比度 · 办公场景 · 深浅适配
 */

:root {
    /* ========== 主色调 Primary ========== */
    --primary-50: #F0F7FF;
    --primary-100: #E0EFFF;
    --primary-200: #B8D9FF;
    --primary-300: #8AC2FF;
    --primary-400: #5CABFF;
    --primary-500: #3D8EF8;
    --primary-600: #2B7DE8;
    --primary-700: #1E6AD4;
    --primary-800: #1559B8;
    --primary-900: #0D4796;
    
    /* ========== 中性色 Neutral ========== */
    --neutral-50: #FAFAFA;
    --neutral-100: #F5F5F5;
    --neutral-200: #E8E8E8;
    --neutral-300: #D4D4D4;
    --neutral-400: #A3A3A3;
    --neutral-500: #737373;
    --neutral-600: #525252;
    --neutral-700: #404040;
    --neutral-800: #262626;
    --neutral-900: #171717;
    
    /* ========== 功能色 Functional ========== */
    /* Success - 成功 */
    --success-50: #F0FDF4;
    --success-100: #DCFCE7;
    --success-200: #BBF7D0;
    --success-300: #86EFAC;
    --success-400: #4ADE80;
    --success-500: #22A45D;
    --success-600: #178344;
    --success-700: #166534;
    
    /* Warning - 警告 */
    --warning-50: #FFFBEB;
    --warning-100: #FEF3C7;
    --warning-200: #FDE68A;
    --warning-300: #FCD34D;
    --warning-400: #FBBF24;
    --warning-500: #D97706;
    --warning-600: #B45309;
    --warning-700: #92400E;
    
    /* Error - 危险 */
    --error-50: #FEF2F2;
    --error-100: #FEE2E2;
    --error-200: #FECACA;
    --error-300: #FCA5A5;
    --error-400: #F87171;
    --error-500: #DC4446;
    --error-600: #B91C1C;
    --error-700: #991B1B;
    
    /* Info - 信息 */
    --info-50: #F0F9FF;
    --info-100: #E0F2FE;
    --info-200: #BAE6FD;
    --info-300: #7DD3FC;
    --info-400: #38BDF8;
    --info-500: #0EA5E9;
    --info-600: #0284C7;
    --info-700: #0369A1;
    
    /* ========== DaisyUI 主题变量映射 ========== */
    /* 主色 */
    --p: 217 91% 60%;           /* primary-500 */
    --pf: 217 82% 55%;          /* primary-600 */
    --pc: 0 0% 100%;            /* primary-content */
    
    /* 次色 */
    --s: 217 91% 60%;           /* secondary-500 */
    --sf: 217 82% 55%;          /* secondary-600 */
    --sc: 0 0% 100%;            /* secondary-content */
    
    /* 强调色 */
    --a: 217 91% 60%;           /* accent-500 */
    --af: 217 82% 55%;          /* accent-600 */
    --ac: 0 0% 100%;            /* accent-content */
    
    /* 中性色 */
    --n: 0 0% 45%;              /* neutral-500 */
    --nf: 0 0% 32%;             /* neutral-600 */
    --nc: 0 0% 100%;            /* neutral-content */
    
    /* 基础色 */
    --b1: 0 0% 98%;             /* neutral-50 - 页面背景 */
    --b2: 0 0% 96%;             /* neutral-100 - 卡片背景 */
    --b3: 0 0% 91%;             /* neutral-200 - 边框 */
    --bc: 0 0% 15%;             /* neutral-900 - 文本 */
    
    /* 基础变体 */
    --in: 199 89% 48%;          /* info-500 */
    --inc: 0 0% 100%;
    --su: 145 63% 39%;          /* success-500 */
    --suc: 0 0% 100%;
    --wa: 32 95% 44%;           /* warning-500 */
    --wac: 0 0% 100%;
    --er: 0 84% 60%;            /* error-500 */
    --erc: 0 0% 100%;
    
    /* 圆角 */
    --rounded-box: 0.75rem;
    --rounded-btn: 0.5rem;
    --rounded-badge: 9999px;
    
    /* 动画 */
    --animation-btn: 0.2s;
    --animation-input: 0.2s;
    
    /* 按钮 */
    --btn-text-case: none;
    --navbar-padding: 0.5rem;
    --border-btn: 1px;

    /* ========== DaisyUI 主题色变量 hex 兜底 ==========
       若不覆盖，--color-primary 等会落到 main.css 里的 oklch() 值。
       部分旧内核（如安卓企业微信 X5/TBS、低版本 WebView）不支持 oklch()，
       color:var(--color-primary) 会解析为非法值回退成继承色（黑色）。
       此处用无层级的 hex 覆盖，保证所有内核颜色一致。 */
    --color-primary: #3D8EF8;
    --color-primary-content: #FFFFFF;
    --color-secondary: #3D8EF8;
    --color-secondary-content: #FFFFFF;
    --color-accent: #3D8EF8;
    --color-accent-content: #FFFFFF;
    --color-neutral: #737373;
    --color-neutral-content: #FFFFFF;
    --color-base-100: #FFFFFF;
    --color-base-200: #F5F5F5;
    --color-base-300: #E8E8E8;
    --color-base-content: #171717;
    --color-info: #0EA5E9;
    --color-info-content: #FFFFFF;
    --color-success: #22A45D;
    --color-success-content: #FFFFFF;
    --color-warning: #D97706;
    --color-warning-content: #FFFFFF;
    --color-error: #DC4446;
    --color-error-content: #FFFFFF;
}

/* ========== 表格行分隔线 hex 兜底 ==========
   DaisyUI .table 的行分隔线由 color-mix(in oklch, var(--color-base-content) 5%, #0000) 绘制，
   比 oklch() 更小众；不支持的内核里 border-bottom-color 变成非法值 → 回退 currentColor（纯黑），
   且表头/表体分隔线宽度不同导致粗细不一。变量兜底管不到 color-mix，这里直接以无层级规则
   重写为统一样式（无层级的声明优先于 @layer components，覆盖 DaisyUI 的 color-mix 声明）。 */
.table :where(tbody) :where(tr:not(:last-child) > :where(td, th)),
.table :where(thead) :where(tr > :where(th, td)) {
    border-bottom: 1px solid #E8E8E8;
}

/* ========== 深色主题 ========== */
[data-theme="dark"] {
    /* 主色 - 更亮 */
    --primary-500: #4080FF;
    --primary-600: #5C9DFF;
    --primary-700: #85B8FF;
    
    /* 中性色 - 反转 */
    --neutral-50: #0F0F0F;
    --neutral-100: #1A1A1A;
    --neutral-200: #262626;
    --neutral-300: #404040;
    --neutral-400: #525252;
    --neutral-500: #737373;
    --neutral-600: #A3A3A3;
    --neutral-700: #D4D4D4;
    --neutral-800: #E8E8E8;
    --neutral-900: #F5F5F5;
    
    /* DaisyUI 深色变量 */
    --p: 217 100% 62%;          /* primary-500 */
    --pf: 217 100% 68%;         /* primary-600 */
    --pc: 0 0% 100%;
    
    --b1: 0 0% 6%;              /* neutral-50 - 深色背景 */
    --b2: 0 0% 10%;             /* neutral-100 */
    --b3: 0 0% 15%;             /* neutral-200 */
    --bc: 0 0% 96%;             /* neutral-900 - 浅色文本 */
}

/* ========== 工具类 ========== */

/* 背景色 */
.bg-primary-50 { background-color: var(--primary-50); }
.bg-primary-100 { background-color: var(--primary-100); }
.bg-primary-500 { background-color: var(--primary-500); }
.bg-primary-600 { background-color: var(--primary-600); }

.bg-neutral-50 { background-color: var(--neutral-50); }
.bg-neutral-100 { background-color: var(--neutral-100); }
.bg-neutral-200 { background-color: var(--neutral-200); }

.bg-success-50 { background-color: var(--success-50); }
.bg-success-500 { background-color: var(--success-500); }

.bg-warning-50 { background-color: var(--warning-50); }
.bg-warning-500 { background-color: var(--warning-500); }

.bg-error-50 { background-color: var(--error-50); }
.bg-error-500 { background-color: var(--error-500); }

/* 文本色 */
.text-primary-500 { color: var(--primary-500); }
.text-primary-600 { color: var(--primary-600); }
.text-primary-700 { color: var(--primary-700); }

.text-neutral-500 { color: var(--neutral-500); }
.text-neutral-600 { color: var(--neutral-600); }
.text-neutral-700 { color: var(--neutral-700); }
.text-neutral-800 { color: var(--neutral-800); }
.text-neutral-900 { color: var(--neutral-900); }

.text-success-500 { color: var(--success-500); }
.text-success-600 { color: var(--success-600); }

.text-warning-500 { color: var(--warning-500); }
.text-warning-600 { color: var(--warning-600); }

.text-error-500 { color: var(--error-500); }
.text-error-600 { color: var(--error-600); }

/* 边框色 */
.border-primary-100 { border-color: var(--primary-100); }
.border-primary-200 { border-color: var(--primary-200); }
.border-primary-500 { border-color: var(--primary-500); }

.border-neutral-200 { border-color: var(--neutral-200); }
.border-neutral-300 { border-color: var(--neutral-300); }

/* 阴影 */
.shadow-primary {
    --tw-shadow-color: var(--primary-200);
    --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

/* 渐变 */
.gradient-primary {
    background: linear-gradient(135deg, var(--primary-500) 0%, var(--primary-700) 100%);
}

.gradient-subtle {
    background: linear-gradient(180deg, var(--neutral-50) 0%, var(--neutral-100) 100%);
}

/* 状态徽章 */
.badge-success {
    background-color: var(--success-50);
    color: var(--success-600);
    border: 1px solid var(--success-100);
}

.badge-warning {
    background-color: var(--warning-50);
    color: var(--warning-600);
    border: 1px solid var(--warning-100);
}

.badge-error {
    background-color: var(--error-50);
    color: var(--error-600);
    border: 1px solid var(--error-100);
}

.badge-primary {
    background-color: var(--primary-50);
    color: var(--primary-600);
    border: 1px solid var(--primary-100);
}

.badge-neutral {
    background-color: var(--neutral-100);
    color: var(--neutral-600);
    border: 1px solid var(--neutral-200);
}

/* 悬停效果 */
.hover-primary:hover {
    background-color: var(--primary-50);
}

.hover-neutral:hover {
    background-color: var(--neutral-100);
}

/* 聚焦效果 */
.focus-primary:focus {
    outline: 2px solid var(--primary-200);
    outline-offset: 2px;
}

/* 禁用状态 */
.disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
