/**
 * GEO 系统 — 全局 CSS 变量
 *
 * 所有设计 token 统一定义为 CSS 自定义属性。
 * 组件样式中直接使用 var(--geo-primary) 等变量。
 * 未来暗色模式只需添加 [data-theme="dark"] 映射即可。
 */

:root {
  /* ======== 品牌色 — 暖陶土 ======== */
  --geo-primary: #C2410C;
  --geo-primary-hover: #9A3412;
  --geo-primary-active: #7C2D12;
  --geo-primary-light: #FFF7ED;

  /* ======== 功能色 ======== */
  --geo-success: #16A34A;
  --geo-success-light: #DCFCE7;
  --geo-warning: #D97706;
  --geo-warning-light: #FFFBEB;
  --geo-error: #DC2626;
  --geo-error-light: #FEF2F2;
  --geo-info: #0EA5E9;
  --geo-info-light: #F0F9FF;

  /* ======== 中性色 — 暖陶土配色 ======== */
  --geo-text-primary: #1C1917;
  --geo-text-secondary: #78716C;
  --geo-text-disabled: #A8A29E;
  --geo-text-inverse: #FFFFFF;

  /* 浅色侧边栏 */
  --geo-sidebar-bg: #F5F5F4;
  --geo-sidebar-hover: #EEEDEB;

  /* 内容区 */
  --geo-bg-page: #FAFAF9;
  --geo-bg-card: #FFFFFF;
  --geo-border: #E7E5E4;
  --geo-border-light: #F0EFED;
  --geo-bg-disabled: #E7E5E4;
  --geo-bg-muted: #F5F0EB;

  /* ======== 语义色 ======== */
  /* 排名徽章 */
  --geo-rank-gold: #b8860b;
  --geo-rank-gold-bg: #fff3cd;
  --geo-rank-silver: #5f6368;
  --geo-rank-silver-bg: #e8eaed;
  --geo-rank-bronze: #c0615b;
  --geo-rank-bronze-bg: #fce8e6;

  /* GEO 评分等级 */
  --geo-score-excellent: #34a853;    /* >= 90 */
  --geo-score-good: #6366f1;         /* 75-89 */
  --geo-score-fair: #fbbc04;         /* 60-74 */
  --geo-score-poor: #ea4335;         /* < 60 */

  /* 代码块 */
  --geo-code-bg: #1e1e1e;
  --geo-code-text: #d4d4d4;
  --geo-code-inline-bg: #f1f3f4;

  /* 趋势 */
  --geo-trend-up: #34a853;
  --geo-trend-down: #ea4335;
  --geo-trend-flat: #fbbc04;

  /* ======== 引擎色（9 引擎） ======== */
  /* 国内 */
  --geo-engine-deepseek: #6366f1;
  --geo-engine-wenxin: #8e24aa;
  --geo-engine-doubao: #059669;
  --geo-engine-tongyi: #ff7043;
  --geo-engine-yuanbao: #0891b2;
  --geo-engine-kimi: #4f46e5;
  /* 国际 */
  --geo-engine-chatgpt: #34a853;
  --geo-engine-gemini: #2563eb;
  --geo-engine-claude: #ea4335;

  /* 图表色（向后兼容旧变量名） */
  --geo-chart-chatgpt: var(--geo-engine-deepseek);
  --geo-chart-gemini: var(--geo-engine-chatgpt);
  --geo-chart-claude: var(--geo-engine-claude);
  --geo-chart-deepseek: var(--geo-engine-wenxin);
  --geo-chart-wenxin: var(--geo-engine-doubao);
  --geo-chart-qianwen: var(--geo-engine-tongyi);

  /* ======== 字体 ======== */
  --geo-font-base: 'PingFang SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --geo-font-number: 'DIN Alternate', 'Roboto Mono', monospace;

  /* ======== 字号（12 级） ======== */
  --geo-font-size-2xs: 10px;    /* 极小：标签角标 */
  --geo-font-size-xs: 11px;     /* 超小：辅助说明、时间戳 */
  --geo-font-size-sm: 12px;     /* 小：表格内容、描述文字 */
  --geo-font-size-base: 14px;   /* 基准：正文、菜单 */
  --geo-font-size-md: 15px;     /* 中：编辑器正文 */
  --geo-font-size-lg: 16px;     /* 大：卡片标题 */
  --geo-font-size-xl: 18px;     /* 超大：弹窗标题 */
  --geo-font-size-2xl: 20px;    /* 2XL：页面标题 */
  --geo-font-size-3xl: 24px;    /* 3XL：区块标题 */
  --geo-font-size-4xl: 28px;    /* 4XL：KPI 数值 */
  --geo-font-size-5xl: 36px;    /* 5XL：大屏核心数字 */

  /* 向后兼容旧字号变量 */
  --geo-font-size-h1: var(--geo-font-size-3xl);
  --geo-font-size-h2: var(--geo-font-size-2xl);
  --geo-font-size-h3: var(--geo-font-size-lg);
  --geo-font-size-body: var(--geo-font-size-base);
  --geo-font-size-caption: var(--geo-font-size-sm);
  --geo-font-size-kpi: var(--geo-font-size-4xl);

  /* ======== 字重 ======== */
  --geo-font-regular: 400;
  --geo-font-medium: 500;
  --geo-font-semibold: 600;
  --geo-font-bold: 600;  /* 保持兼容，等同 semibold */

  /* ======== 行高 ======== */
  --geo-line-height-tight: 1.25;    /* 标题、KPI */
  --geo-line-height-heading: 1.4;
  --geo-line-height-caption: 1.5;
  --geo-line-height-body: 1.6;
  --geo-line-height-relaxed: 1.75;  /* 长文本、编辑器 */
  --geo-line-height-number: 1.2;

  /* ======== 间距（4px 基数，10 级） ======== */
  --geo-space-0: 0;
  --geo-space-0_5: 2px;
  --geo-space-1: 4px;
  --geo-space-1_5: 6px;
  --geo-space-2: 8px;
  --geo-space-3: 12px;
  --geo-space-4: 16px;
  --geo-space-5: 20px;
  --geo-space-6: 24px;
  --geo-space-8: 32px;
  --geo-space-10: 40px;
  --geo-space-12: 48px;

  /* 向后兼容旧间距变量 */
  --geo-spacing-xs: var(--geo-space-1);
  --geo-spacing-sm: var(--geo-space-2);
  --geo-spacing-md: var(--geo-space-4);
  --geo-spacing-lg: var(--geo-space-6);
  --geo-spacing-xl: var(--geo-space-8);
  --geo-spacing-xxl: var(--geo-space-12);

  /* ======== 圆角（6 级，Stripe风格） ======== */
  --geo-radius-none: 0;
  --geo-radius-xs: 4px;
  --geo-radius-sm: 8px;
  --geo-radius-md: 10px;
  --geo-radius-lg: 14px;
  --geo-radius-full: 50%;

  /* ======== 阴影 ======== */
  --geo-shadow-none: none;
  --geo-shadow-xs: 0 1px 2px rgba(0,0,0,0.03);
  --geo-shadow-sm: 0 1px 2px rgba(0,0,0,0.04);
  --geo-shadow-card: 0 1px 3px rgba(0,0,0,0.04);
  --geo-shadow-card-hover: 0 6px 24px rgba(0,0,0,0.1);
  --geo-shadow-dialog: 0 8px 32px rgba(0,0,0,0.08);
  --geo-shadow-focus: 0 0 0 3px rgba(194,65,12,0.15);

  /* ======== 动效（4 级） ======== */
  --geo-ease-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --geo-ease-normal: 250ms cubic-bezier(0.4, 0, 0.2, 1);
  --geo-ease-slow: 400ms cubic-bezier(0.4, 0, 0.2, 1);
  --geo-ease-spring: 500ms cubic-bezier(0.34, 1.56, 0.64, 1);

  /* 向后兼容旧过渡变量 */
  --geo-transition-fast: var(--geo-ease-fast);
  --geo-transition-normal: var(--geo-ease-normal);
  --geo-transition-slow: var(--geo-ease-slow);

  /* ======== 组件尺寸 ======== */
  --geo-button-height: 36px;
  --geo-button-height-sm: 28px;
  --geo-button-height-lg: 44px;
  --geo-button-min-width: 80px;
  --geo-input-height: 36px;
  --geo-input-height-sm: 32px;
  --geo-input-height-lg: 40px;
  --geo-table-row-height: 48px;
  --geo-header-height: 56px;
  --geo-sidebar-width: 220px;
  --geo-sidebar-collapsed-width: 64px;
  --geo-menu-item-height: 48px;

  /* Avatar */
  --geo-avatar-sm: 24px;
  --geo-avatar-md: 28px;
  --geo-avatar-lg: 48px;
  --geo-avatar-xl: 64px;

  /* Icon */
  --geo-icon-sm: 14px;
  --geo-icon-md: 16px;
  --geo-icon-lg: 20px;
  --geo-icon-xl: 24px;
}

/* ======== 暗色模式 ======== */
[data-theme='dark'] {
  /* 品牌色（暗色模式下略微提亮） */
  --geo-primary: #818cf8;
  --geo-primary-hover: #a5b4fc;
  --geo-primary-active: #6366f1;
  --geo-primary-light: #1e1b4b;

  /* 功能色（暗色适配） */
  --geo-success: #4ade80;
  --geo-success-light: #052e16;
  --geo-warning: #fbbf24;
  --geo-warning-light: #451a03;
  --geo-error: #f87171;
  --geo-error-light: #450a0a;

  /* 中性色反转 */
  --geo-text-primary: #e8eaed;
  --geo-text-secondary: #9aa0a6;
  --geo-text-disabled: #5f6368;
  --geo-text-inverse: #202124;
  --geo-bg-page: #14141e;
  --geo-bg-card: #16213e;
  --geo-border: #2d3748;
  --geo-bg-disabled: #2d3748;
  --geo-bg-muted: #1e293b;

  /* 语义色调整 */
  --geo-rank-gold: #fbbf24;
  --geo-rank-gold-bg: #451a03;
  --geo-rank-silver: #9aa0a6;
  --geo-rank-silver-bg: #1e293b;
  --geo-rank-bronze: #f87171;
  --geo-rank-bronze-bg: #450a0a;

  --geo-code-bg: #0f172a;
  --geo-code-text: #e2e8f0;
  --geo-code-inline-bg: #1e293b;

  /* 阴影（暗色下更淡） */
  --geo-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.2);
  --geo-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
  --geo-shadow-card: 0 1px 3px rgba(0, 0, 0, 0.4);
  --geo-shadow-card-hover: 0 4px 12px rgba(0, 0, 0, 0.5);
  --geo-shadow-dialog: 0 4px 24px rgba(0, 0, 0, 0.6);
  --geo-shadow-focus: 0 0 0 2px rgba(129, 140, 248, 0.3);
}
