/* ============================================================================
   走进新天地·Railway —— 设计规范（Design Tokens）
   ----------------------------------------------------------------------------
   用法：在页面 <head> 的 viewport meta 之后引入

       <link rel="stylesheet" href="theme.css">

   之后写样式请优先用这里的变量，不要再写死色值 / 字号 / 圆角：

       color: var(--c-text);
       font-size: var(--fs-base);
       border-radius: var(--r-md);

   ⚠️ 本文件**只定义变量**，不设任何全局元素样式（不会写 body{...} 之类），
      因此引入它对现有页面零影响，页面自己的样式可以放心覆盖。

   所有取值均来自站点现有 CSS 的实际统计（不是凭空定的），
   所以把写死的值换成变量不会改变外观。
   ============================================================================ */

:root {
  /* ======================= 颜色 ======================= */

  /* 文字层级：从主到弱 */
  --c-text:        #111827;  /* 主文字 / 深色按钮底色（原 #111827，158 处） */
  --c-text-2:      #374151;  /* 次级文字（原 #374151，97 处） */
  --c-text-3:      #6b7280;  /* 说明文字（原 #6b7280，87 处） */
  --c-text-4:      #9ca3af;  /* 弱化文字 / 占位符（原 #9ca3af，71 处） */
  --c-text-inv:    #ffffff;  /* 深色底上的文字 */
  --c-text-legacy: #333333;  /* 旧页面遗留的中性文字，后续逐步换成 --c-text-2 */

  /* 主色 */
  --c-primary:    #2563eb;   /* 主色蓝（91 处） */
  --c-primary-d:  #1d4ed8;   /* 主色加深，用于 hover / 渐变尾 */
  --c-primary-bg: #eff6ff;   /* 主色浅底 */

  /* 背景与边框 */
  --c-bg:        #f5f5f5;    /* 页面背景 */
  --c-surface:   #ffffff;    /* 卡片 / 面板 */
  --c-surface-2: #f3f4f6;    /* 次级面：表头、浅底按钮 */
  --c-border:    #e5e7eb;    /* 常规边框 */
  --c-border-2:  #d1d5db;    /* 重一点的边框：输入框、描边按钮 */

  /* 语义色 */
  --c-danger:   #dc2626;
  --c-success:  #01af55;
  --c-warn-bg:  #fffbeb;
  --c-warn-fg:  #92400e;
  --c-warn-bd:  #fde68a;
  --c-info-bg:  #eff6ff;

  /* ======================= 字号 =======================
     ★ 可读性下限（本项目约定）：
         --fs-base 14px  正文
         --fs-sm   13px  说明文字的下限
         --fs-xs   12px  只用于角标 / 装饰，不得再小
       历史遗留的 8~11px 写法属于可读性隐患，新代码不要再出现。 */

  --fs-xs:   12px;
  --fs-sm:   13px;
  --fs-base: 14px;
  --fs-md:   15px;
  --fs-lg:   16px;
  --fs-xl:   18px;
  --fs-2xl:  24px;
  --fs-3xl:  28px;

  /* ======================= 行高 ======================= */
  --lh-tight: 1.35;   /* 标题 */
  --lh-base:  1.6;    /* 正文 */
  --lh-loose: 1.75;   /* 大段说明 */

  /* ======================= 圆角 ======================= */
  --r-sm:   6px;      /* 小按钮、标签 */
  --r-md:   8px;      /* 常规按钮、输入框 */
  --r-lg:   12px;     /* 卡片 */
  --r-xl:   16px;     /* 大面板、弹窗 */
  --r-full: 999px;    /* 胶囊、圆形 */

  /* ======================= 间距 ======================= */
  --sp-1:  4px;
  --sp-2:  8px;
  --sp-3:  12px;
  --sp-4:  16px;
  --sp-5:  20px;
  --sp-6:  24px;
  --sp-8:  32px;

  /* ======================= 阴影 ======================= */
  --sh-sm:      0 1px 3px rgba(0, 0, 0, .08);
  --sh-md:      0 2px 8px rgba(0, 0, 0, .08);
  --sh-lg:      0 4px 20px rgba(0, 0, 0, .08);
  --sh-primary: 0 4px 12px rgba(37, 99, 235, .4);

  /* ======================= 字体 ======================= */
  --font:     'HarmonyOS Sans', -apple-system, BlinkMacSystemFont,
              "Microsoft YaHei", sans-serif;
  --font-num: Bahnschrift, 'HarmonyOS Sans', -apple-system, sans-serif;

  /* ======================= 布局 ======================= */
  --page-max: 1200px;   /* 内容最大宽度（页面常用 min(90%, 1200px)） */
  --z-float:  10001;    /* 右下角浮动按钮层级 */
}

/* ============================================================================
   全站文本不可选中
   ----------------------------------------------------------------------------
   与 navbar.js 里注入的那份一致：navbar.js 只覆盖引用了它的 51 个页面，
   这里再放一份是为了覆盖没引 navbar 的页面（ai.html、票价计算器等 7 个），
   两边重复声明无害，效果相同。

   ⚠️ 必须排除表单控件与可编辑区，否则打字、选中、复制会全部失效；
      .allow-select 是给「确实需要让人复制」的元素预留的逃生口。
   ============================================================================ */
body {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
input, textarea, select, [contenteditable], .allow-select,
input *, textarea *, select *, [contenteditable] * {
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text;
}

/* ============================================================================
   全站字体锁定为 HarmonyOS Sans
   ----------------------------------------------------------------------------
   上面第 96 行定义的 --font 之前只是个「死变量」—— 只声明、从没被应用，
   所以各页面仍各写各的 font-family（有的甚至不含 HarmonyOS Sans）。
   这里统一锁死：theme.css 在 <head> 里排在页面自己的 <style> 之前，
   同优先级下后写的会赢，因此必须用 !important 才能真正覆盖全站。

   子元素若自己声明了 font-family（代码块用等宽字体、数字用 Bahnschrift、
   字体收集页的预览字体等）不受影响，只锁定 body 这一层。
   ============================================================================ */
body {
  font-family: var(--font) !important;
}
