@charset "UTF-8";
/**
 * themes.css - 全站主题 token
 * 默认 dark，对齐门户页黑白灰；light 仅预留接口位。
 */

:root,
[data-theme="dark"] {
    --bg-rgb: 5 5 5;
    --bg-soft-rgb: 7 7 7;
    --panel-rgb: 10 10 10;
    --panel-soft-rgb: 16 16 16;
    --line-rgb: 34 34 34;
    --line-soft-rgb: 22 22 22;
    --text-rgb: 245 245 245;
    --muted-rgb: 136 136 136;
    --muted-soft-rgb: 85 85 85;
    --brand-rgb: 255 255 255;
    --brand-soft-rgb: 216 216 216;
    --brand-fg-rgb: 5 5 5;
    --success-rgb: 34 197 94;
    --warning-rgb: 245 158 11;
    --danger-rgb: 239 68 68;
    --info-rgb: 156 163 175;

    --bg: rgb(var(--bg-rgb));
    --bg-soft: rgb(var(--bg-soft-rgb));
    --panel: rgb(var(--panel-rgb));
    --panel-soft: rgb(var(--panel-soft-rgb));
    --line: rgb(var(--line-rgb));
    --line-soft: rgb(var(--line-soft-rgb));
    --text: rgb(var(--text-rgb));
    --muted: rgb(var(--muted-rgb));
    --muted-soft: rgb(var(--muted-soft-rgb));
    --brand: rgb(var(--brand-rgb));
    --brand-soft: rgb(var(--brand-soft-rgb));
    --brand-fg: rgb(var(--brand-fg-rgb));
    --success: rgb(var(--success-rgb));
    --warning: rgb(var(--warning-rgb));
    --danger: rgb(var(--danger-rgb));
    --info: rgb(var(--info-rgb));

    --bg-image:
        radial-gradient(circle at 22% 10%, rgba(255, 255, 255, 0.08), transparent 24%),
        radial-gradient(circle at 78% 0%, rgba(255, 255, 255, 0.05), transparent 28%),
        linear-gradient(180deg, #050505 0%, #070707 46%, #050505 100%);
}

[data-theme="light"] {
    /* 后续填充 light 色值；当前回退到 :root 的 dark token。 */
}

:root {
    --color-primary: var(--brand);
    --color-accent: var(--brand);
    --color-success: var(--success);
    --color-warning: var(--warning);
    --color-danger: var(--danger);
    --bg-dark: var(--bg-image);
    --bg-gradient: var(--bg-image);

    --bg-card: rgb(var(--text-rgb) / 0.05);
    --bg-card-hover: rgb(var(--text-rgb) / 0.10);
    --text-primary: rgb(var(--text-rgb) / 0.90);
    --text-secondary: rgb(var(--text-rgb) / 0.80);
    --text-muted: rgb(var(--text-rgb) / 0.50);
    --text-disabled: rgb(var(--text-rgb) / 0.30);
    --border-color: rgb(var(--text-rgb) / 0.10);
    --border-color-hover: rgb(var(--text-rgb) / 0.30);

    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 24px;
    --radius-full: 9999px;

    --spacing-xs: 4px;
    --spacing-sm: 8px;
    --spacing-md: 16px;
    --spacing-lg: 24px;
    --spacing-xl: 32px;

    --font-family: PingFang SC, PingFangSC-Regular, SFUIText, Helvetica Neue, Helvetica, Arial, sans-serif;
    --font-size-xs: 10px;
    --font-size-sm: 12px;
    --font-size-md: 14px;
    --font-size-lg: 16px;
    --font-size-xl: 18px;

    --el-color-primary: var(--brand);
    --el-color-success: var(--success);
    --el-color-warning: var(--warning);
    --el-color-danger: var(--danger);
    --el-color-error: var(--danger);
    --el-color-info: var(--info);

    --el-bg-color: var(--panel);
    --el-bg-color-page: var(--bg);
    --el-bg-color-overlay: var(--panel-soft);

    --el-text-color-primary: var(--text);
    --el-text-color-regular: var(--muted);
    --el-text-color-secondary: var(--muted-soft);
    --el-text-color-placeholder: var(--muted-soft);
    --el-text-color-disabled: rgb(var(--text-rgb) / 0.30);

    --el-border-color: var(--line);
    --el-border-color-light: var(--line-soft);
    --el-border-color-lighter: var(--line-soft);
    --el-border-color-extra-light: rgb(var(--text-rgb) / 0.05);

    --el-fill-color: rgb(var(--text-rgb) / 0.06);
    --el-fill-color-light: rgb(var(--text-rgb) / 0.04);
    --el-fill-color-blank: var(--panel);
}
