/* 阿里巴巴普惠体 */
@font-face {
  font-family: 'Alibaba PuHuiTi';
  src: url('https://static.cdn.sunmi.com/assets/fonts/Alibaba-PuHuiTi-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Alibaba PuHuiTi';
  src: url('https://static.cdn.sunmi.com/assets/fonts/Alibaba-PuHuiTi-Light.ttf') format('truetype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Alibaba PuHuiTi';
  src: url('https://static.cdn.sunmi.com/assets/fonts/Alibaba-PuHuiTi-Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Alibaba PuHuiTi';
  src: url('https://static.cdn.sunmi.com/assets/fonts/Alibaba-PuHuiTi-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* 霞鹜文楷 GB — 由 lxgw-wenkai-gb-web CDN 提供 @font-face */

/* ================================================================
   色彩变量系统 — 温暖人文 x 精炼信息
   暖调中性底色 + 琥珀茶色主调 + 清晰的层级梯度
   ================================================================ */
:root {
  --font-body: 'Alibaba PuHuiTi', "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  --font-heading: 'Alibaba PuHuiTi', "PingFang SC", "Microsoft YaHei", serif;
  --font-ui: 'Alibaba PuHuiTi', "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-mono: "Cascadia Code", "JetBrains Mono", "SF Mono", "Fira Code", "Consolas", "Menlo", monospace;
  --color-primary: #DA7A3A;
  --color-primary-hover: #B85E28;
  --color-primary-light: #F2DFCC;
  --color-primary-subtle: #F8EFE5;
  --color-bg-app: #EDE2D0;
  --color-bg-surface: #F8F4EE;
  --color-bg-hover: #F0EBE3;
  --color-bg-muted: #D9CBB2;
  --color-text-primary: #2D241A;
  --color-text-secondary: #7A6E5F;
  --color-text-tertiary: #A89A87;
  --color-text-inverse: #FFFFFF;
  --color-border: #D9CBB2;
  --color-border-light: #EBE1D2;
  --color-success: #4A8A5A;
  --color-success-bg: #EEF6EE;
  --color-error: #D14343;
  --color-error-bg: #FDF0F0;
  --color-warning: #C48A20;
  --color-warning-bg: #FDF6ED;
  --color-info: #5B7F9A;
  --color-info-bg: #EEF3F7;
  --color-train: #5B8A9A;
  --color-station: #8A735B;
  --color-mileage: #7B9A5B;
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-base: 8px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-full: 9999px;
  --shadow-xs: 0 1px 2px rgba(0,0,0,0.04);
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.05), 0 1px 2px rgba(0,0,0,0.03);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.05);
  --shadow-lg: 0 8px 24px rgba(0,0,0,0.07);
  --space-unit: 4px;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --text-xs: 11px;
  --text-sm: 13px;
  --text-base: 15px;
  --text-md: 16px;
  --text-lg: 18px;
  --text-xl: 22px;
  --text-2xl: 28px;
  --text-3xl: 36px;
  --font-normal: 400;
  --font-medium: 500;
  --font-semibold: 600;
  --font-bold: 700;
  --z-header: 20;
  --z-dropdown: 100;
  --z-modal-backdrop: 1000;
  --z-modal: 2000;
  --z-detail-overlay: 9999;
  --z-toast: 10000;
  --z-tooltip: 10001;
  --z-popup: 10002;
  --primary: var(--color-primary);
  --primary-dark: var(--color-primary-hover);
  --secondary: var(--color-primary);
  --background: var(--color-bg-app);
  --card-background: var(--color-bg-surface);
  --text-primary: var(--color-text-primary);
  --text-secondary: var(--color-text-secondary);
  --text-muted: var(--color-text-secondary);
  --text-tertiary: var(--color-text-secondary);
  --border: var(--color-border);
  --success: var(--color-success);
  --error: var(--color-error);
  --info: var(--color-info);
  --warning: var(--color-warning);
  --section-bg: var(--color-bg-muted);
  --primary-light: var(--color-primary-light);
  --error-light: var(--color-error-bg);
  --background-light: var(--color-bg-hover);
  --base-unit: var(--space-unit);
  --card-padding: var(--space-6);
  --card-margin: var(--space-4);
  --page-margin: var(--space-6);
  --border-radius: var(--radius-md);
  --border-radius-sm: var(--radius-sm);
  --border-radius-lg: var(--radius-xl);
  color-scheme: light;
}

/* 应用级错误横幅 — 主题兼容 */
.app-error-banner {
  position: fixed; top: 0; left: 0; right: 0;
  background: var(--color-error-bg);
  border-bottom: 2px solid var(--color-error);
  color: var(--color-error);
  padding: 12px 20px;
  z-index: 9999;
  font-size: 14px;
  text-align: center;
}
.app-error-close {
  margin-left: 16px;
  background: none;
  border: none;
  color: var(--color-error);
  cursor: pointer;
  font-size: 16px;
}
.app-error-close:hover {
  opacity: 0.8;
}

[data-theme="dark"] {
  --color-primary: #D89860;
  --color-primary-hover: #E0A870;
  --color-primary-light: #3D2E1F;
  --color-primary-subtle: #252018;
  --color-bg-app: #181613;
  --color-bg-surface: #1F1D1B;
  --color-bg-hover: #2D2A27;
  --color-bg-muted: #302D29;
  --color-text-primary: #ECECEE;
  --color-text-secondary: #9898A0;
  --color-text-tertiary: #6E6E73;
  --color-text-inverse: #1A1A1C;
  --color-border: #383530;
  --color-border-light: #2C2926;
  --color-success: #6BAE6B;
  --color-success-bg: #1E2E1E;
  --color-error: #E06060;
  --color-error-bg: #2A1A1A;
  --color-warning: #D4A040;
  --color-warning-bg: #2A2418;
  --color-info: #6B96AE;
  --color-info-bg: #18222A;
  --color-train: #6B96AE;
  --color-station: #A08868;
  --color-mileage: #8AAE68;
  --shadow-xs: 0 1px 2px rgba(0,0,0,0.2);
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.3);
  --shadow-md: 0 4px 12px rgba(0,0,0,0.4);
  --shadow-lg: 0 8px 24px rgba(0,0,0,0.5);
  --primary: var(--color-primary);
  --primary-dark: var(--color-primary-hover);
  --secondary: var(--color-primary);
  --background: var(--color-bg-app);
  --card-background: var(--color-bg-surface);
  --text-primary: var(--color-text-primary);
  --text-secondary: var(--color-text-secondary);
  --text-muted: var(--color-text-secondary);
  --text-tertiary: var(--color-text-secondary);
  --border: var(--color-border);
  --success: var(--color-success);
  --error: var(--color-error);
  --info: var(--color-info);
  --warning: var(--color-warning);
  --section-bg: var(--color-bg-muted);
  --primary-light: var(--color-primary-light);
  --error-light: var(--color-error-bg);
  --background-light: var(--color-bg-hover);
  color-scheme: dark;
}

/* ================================================================
   配色方案系统 — 5套预设主题色
   通过 data-color-scheme 属性切换
   ================================================================ */

/* 靛蓝配色 - 蓝紫色调 */
[data-color-scheme="indigo"] {
  --color-primary: #5B6B9A;
  --color-primary-hover: #4A5A8A;
  --color-primary-light: #D8DCE8;
  --color-primary-subtle: #EDEFF5;
  --color-border: #C0C5D5;
  --color-border-light: #D8DCE8;
  --color-bg-app: #E8EBF0;
  --color-bg-surface: #F4F6FA;
  --color-bg-hover: #E8ECEF;
  --color-bg-muted: #EAEDF3;
  --color-text-primary: #1A1E2E;
  --color-text-secondary: #4A4E68;
  --color-text-tertiary: #6E7088; /* 中性灰蓝 */
  --color-station: #3A5070;
  --color-success: #2E6B5A;
  --color-success-bg: #E5F0EA;
  --color-warning: #B8941E;
  --color-warning-bg: #F5F0E0;
  --color-info-bg: #DFECF0;
  --color-error-bg: #F5EEEE;
  --border: var(--color-border);
}
[data-color-scheme="indigo"][data-theme="dark"] {
  --color-primary: #7B8BB8;
  --color-primary-hover: #8B9BC8;
  --color-primary-light: #2A2F42;
  --color-primary-subtle: #1E2130;
  --color-border: #3A4050;
  --color-border-light: #2A2F42;
  --color-bg-app: #151820;
  --color-bg-surface: #1C1F2A;
  --color-bg-hover: #262A38;
  --color-bg-muted: #222633;
  --color-text-primary: #D0D0E0;
  --color-text-secondary: #7880A0;
  --color-text-tertiary: #8A8DA0;
  --color-station: #5070A0;
  --color-success: #5AB080;
  --color-success-bg: #1A2820;
  --color-warning: #C9A82A;
  --color-warning-bg: #2E2D20;
  --color-info-bg: #1A2030;
  --color-error-bg: #301E1E;
  --border: var(--color-border);
}

/* 翠绿配色 - 青绿色调 */
[data-color-scheme="emerald"] {
  --color-primary: #4A8A7A;
  --color-primary-hover: #3A7A6A;
  --color-primary-light: #D4E5DF;
  --color-primary-subtle: #EAF3EF;
  --color-border: #C4D5CF;
  --color-border-light: #D4E5DF;
  --color-bg-app: #E8F0EC;
  --color-bg-surface: #F4FAF7;
  --color-bg-hover: #E8EEEA;
  --color-bg-muted: #EAEFEB;
  --color-text-primary: #1A2E28;
  --color-text-secondary: #4A5E56;
  --color-text-tertiary: #5E7068; /* 中性灰绿 */
  --color-station: #3A6B5A;
  --color-success: #2E7D5A;
  --color-success-bg: #E5F2EA;
  --color-warning: #B8941E;
  --color-warning-bg: #F5F0E0;
  --color-info-bg: #DFECF0;
  --color-error-bg: #F5EDED;
  --border: var(--color-border);
}
[data-color-scheme="emerald"][data-theme="dark"] {
  --color-primary: #6BA898;
  --color-primary-hover: #7BB8A8;
  --color-primary-light: #24332E;
  --color-primary-subtle: #1A2522;
  --color-border: #2D3A35;
  --color-border-light: #24332E;
  --color-bg-app: #141A18;
  --color-bg-surface: #1C2320;
  --color-bg-hover: #242C28;
  --color-bg-muted: #1F2724;
  --color-text-primary: #D0DDD8;
  --color-text-secondary: #789088;
  --color-text-tertiary: #7A8A85;
  --color-station: #4A8068;
  --color-success: #5AB070;
  --color-success-bg: #1A3028;
  --color-warning: #C9A82A;
  --color-warning-bg: #2E2D20;
  --color-info-bg: #1A2830;
  --color-error-bg: #301E1E;
  --border: var(--color-border);
}

/* 莓红配色 - 玫红色调 */
[data-color-scheme="berry"] {
  --color-primary: #B95B7A;
  --color-primary-hover: #A94B6A;
  --color-primary-light: #ECD8E0;
  --color-primary-subtle: #F5EBF0;
  --color-border: #DCC8D0;
  --color-border-light: #ECD8E0;
  --color-bg-app: #F5EEE4;
  --color-bg-surface: #FAF5F7;
  --color-bg-hover: #F2ECEA;
  --color-bg-muted: #F7F0F3;
  --color-text-primary: #2E1A24;
  --color-text-secondary: #684A56;
  --color-text-tertiary: #8A6670; /* 中性灰玫红 */
  --color-station: #804A60;
  --color-success: #3A7A5A;
  --color-success-bg: #EAF0E5;
  --color-warning: #C98A1E;
  --color-warning-bg: #F5F0E0;
  --color-info-bg: #ECF0F5;
  --color-error-bg: #F5EEEE;
  --border: var(--color-border);
}
[data-color-scheme="berry"][data-theme="dark"] {
  --color-primary: #D07B98;
  --color-primary-hover: #E08BA8;
  --color-primary-light: #3A2630;
  --color-primary-subtle: #2A1C23;
  --color-border: #3D2D35;
  --color-border-light: #3A2630;
  --color-bg-app: #1A1518;
  --color-bg-surface: #231C21;
  --color-bg-hover: #2D252A;
  --color-bg-muted: #261F23;
  --color-text-primary: #E0D0D8;
  --color-text-secondary: #A08090;
  --color-text-tertiary: #A0808A;
  --color-station: #A05070;
  --color-success: #60B080;
  --color-success-bg: #1A2820;
  --color-warning: #C9A82A;
  --color-warning-bg: #2E2D20;
  --color-info-bg: #201A28;
  --color-error-bg: #301E20;
  --border: var(--color-border);
}

/* 石墨配色 - 灰黑色调，极简风 */
[data-color-scheme="graphite"] {
  --color-primary: #5A5A5A;
  --color-primary-hover: #4A4A4A;
  --color-primary-light: #D8D8D8;
  --color-primary-subtle: #EFEFEF;
  --color-border: #C0C0C0;
  --color-border-light: #D8D8D8;
  --color-bg-app: #E8E8E8;
  --color-bg-surface: #F4F4F4;
  --color-bg-hover: #ECECEC;
  --color-bg-muted: #EFEFEF;
  --color-text-primary: #1E1E1E;
  --color-text-secondary: #5A5A5A;
  --color-text-tertiary: #6E6E6E; /* 中性灰 */
  --color-station: #606060;
  --color-success: #3A7A4A;
  --color-success-bg: #EAF0EA;
  --color-warning: #B8941E;
  --color-warning-bg: #F5F0E0;
  --color-info-bg: #EEF0F5;
  --color-error-bg: #F5EEEE;
  --border: var(--color-border);
}
[data-color-scheme="graphite"][data-theme="dark"] {
  --color-primary: #9A9A9A;
  --color-primary-hover: #AAAAAA;
  --color-primary-light: #303030;
  --color-primary-subtle: #222222;
  --color-border: #3A3A3A;
  --color-border-light: #303030;
  --color-bg-app: #151515;
  --color-bg-surface: #1C1C1C;
  --color-bg-hover: #262626;
  --color-bg-muted: #222222;
  --color-text-primary: #D0D0D0;
  --color-text-secondary: #808080;
  --color-text-tertiary: #8A8A8A;
  --color-station: #909090;
  --color-success: #50A060;
  --color-success-bg: #182818;
  --color-warning: #C9A82A;
  --color-warning-bg: #282820;
  --color-info-bg: #181828;
  --color-error-bg: #281818;
  --border: var(--color-border);
}

