/* ====== 颜色系统 ======
 * 所有页面的颜色必须通过此系统引用，禁止硬编码颜色值。
 * 切换主题只需替换 colors.css 文件。
 */

:root {
    /* 背景色 */
    --c-background: #1a1a2e;
    --c-block: #16213e;
    --c-secondary: #1e293b;

    /* 字体颜色 */
    --c-font: #e4e4e7;
    --c-font-secondary: #a1a1aa;

    /* 按钮文字颜色 */
    --c-btn_font: #ffffff;

    /* 列表颜色 */
    --c-listBackground: #16213e;
    --c-listItemBackground: #1a1a2e;
    --c-listItemFont: #e4e4e7;

    /* 边框 */
    --c-border: #334155;

    /* 主色 */
    --c-primary: #7c3aed;

    /* 功能色 */
    --c-red: #ef4444;
    --c-orange: #f59e0b;
    --c-yellow: #eab308;
    --c-green: #22c55e;
    --c-blue: #3b82f6;
    --c-purple: #8b5cf6;
    --c-cyan: #06b6d4;
    --c-pink: #ec4899;
    --c-gray: #6b7280;

    /* 状态颜色 */
    --c-success: #22c55e;
    --c-danger: #ef4444;
    --c-warning: #f59e0b;

    /* 前景色（背景为 X 色时文字的对比色） */
    --c-primary_font: #ffffff;
    --c-secondary_font: #e4e4e7;

    --c-red_font: #ffffff;
    --c-orange_font: #ffffff;
    --c-yellow_font: #1a1a2e;
    --c-green_font: #1a1a2e;
    --c-blue_font: #ffffff;
    --c-purple_font: #ffffff;
    --c-cyan_font: #1a1a2e;
    --c-pink_font: #ffffff;
    --c-gray_font: #ffffff;

    --c-success_font: #1a1a2e;
    --c-danger_font: #ffffff;
    --c-warning_font: #1a1a2e;

    /* 兼容旧变量名 */
    --bg-primary: var(--c-background);
    --bg-secondary: var(--c-block);
    --bg-chat: #0f3460;
    --text-primary: var(--c-font);
    --text-secondary: var(--c-font-secondary);
    --accent: var(--c-primary);
    --accent-hover: #6d28d9;
    --user-bubble: var(--c-primary);
    --assistant-bubble: var(--c-secondary);
    --border: var(--c-border);
    --input-bg: var(--c-secondary);
    --danger: var(--c-danger);
    --danger-hover: #dc2626;
    --success: var(--c-success);
}

/* ====== 文字颜色工具类 ====== */
.c_primary { color: var(--c-primary); }
.c_secondary { color: var(--c-secondary); }
.c_font { color: var(--c-font); }
.c_font_secondary { color: var(--c-font-secondary); }
.c_btn_font { color: var(--c-btn_font); }
.c_listItemFont { color: var(--c-listItemFont); }

.c_red { color: var(--c-red); }
.c_orange { color: var(--c-orange); }
.c_yellow { color: var(--c-yellow); }
.c_green { color: var(--c-green); }
.c_blue { color: var(--c-blue); }
.c_purple { color: var(--c-purple); }
.c_cyan { color: var(--c-cyan); }
.c_pink { color: var(--c-pink); }
.c_gray { color: var(--c-gray); }

.c_success { color: var(--c-success); }
.c_danger { color: var(--c-danger); }
.c_warning { color: var(--c-warning); }

/* ====== 背景色工具类 ====== */
.b_background { background-color: var(--c-background); color: var(--c-font); }
.b_block { background-color: var(--c-block); color: var(--c-font); }
.b_secondary { background-color: var(--c-secondary); color: var(--c-secondary_font); }

.b_listBackground { background-color: var(--c-listBackground); color: var(--c-listItemFont); }
.b_listItemBackground { background-color: var(--c-listItemBackground); color: var(--c-listItemFont); }

.b_primary { background-color: var(--c-primary); color: var(--c-primary_font); }
.b_red { background-color: var(--c-red); color: var(--c-red_font); }
.b_orange { background-color: var(--c-orange); color: var(--c-orange_font); }
.b_yellow { background-color: var(--c-yellow); color: var(--c-yellow_font); }
.b_green { background-color: var(--c-green); color: var(--c-green_font); }
.b_blue { background-color: var(--c-blue); color: var(--c-blue_font); }
.b_purple { background-color: var(--c-purple); color: var(--c-purple_font); }
.b_cyan { background-color: var(--c-cyan); color: var(--c-cyan_font); }
.b_pink { background-color: var(--c-pink); color: var(--c-pink_font); }
.b_gray { background-color: var(--c-gray); color: var(--c-gray_font); }

.b_success { background-color: var(--c-success); color: var(--c-success_font); }
.b_danger { background-color: var(--c-danger); color: var(--c-danger_font); }
.b_warning { background-color: var(--c-warning); color: var(--c-warning_font); }

/* ====== 代码高亮（绑定到颜色系统，切换主题自动适配） ====== */
.hljs {
    background: var(--c-secondary);
    color: var(--c-secondary_font);
}

.hljs-keyword,
.hljs-selector-tag,
.hljs-literal,
.hljs-built_in {
    color: var(--c-primary);
}

.hljs-string,
.hljs-title,
.hljs-section,
.hljs-attribute,
.hljs-template-tag,
.hljs-template-variable,
.hljs-addition {
    color: var(--c-green);
}

.hljs-comment,
.hljs-quote,
.hljs-meta,
.hljs-doctag {
    color: var(--c-gray);
}

.hljs-number,
.hljs-symbol,
.hljs-bullet,
.hljs-link {
    color: var(--c-blue);
}

.hljs-title.class_,
.hljs-type,
.hljs-variable,
.hljs-selector-class {
    color: var(--c-cyan);
}

.hljs-strong {
    font-weight: bold;
    color: var(--c-font);
}

.hljs-emphasis {
    font-style: italic;
}

.hljs-attr,
.hljs-selector-attr {
    color: var(--c-purple);
}

.hljs-subst,
.hljs-regexp {
    color: var(--c-pink);
}

.hljs-tag,
.hljs-name,
.hljs-selector-id {
    color: var(--c-red);
}

.hljs-template-pseudo,
.hljs-selector-pseudo {
    color: var(--c-orange);
}

.hljs-deletion {
    background-color: var(--c-danger);
    color: var(--c-danger_font);
}

.hljs-meta .hljs-string {
    color: var(--c-yellow);
}

.hljs-code {
    color: var(--c-font);
}
