/* 设计令牌：**全项目颜色与字体的唯一定义处**（票 U4，327A）。

   此前 `static/css/style.css` 的 `:root` 与 `/auth/` 四个页面各自内联的
   `<style>` 各写了一份十六进制值，靠注释要求"两处必须同步"——这正是本文件
   要消灭的重复。

   为什么单独成文件、而不是让 auth 页面直接引 `style.css`：登录页**刻意
   不继承 `base.html`**（188A⑤，大门不该依赖只有登录之后才有意义的页头），
   而 `style.css` 有 3400 行、开头就在设 `html, body`，整个引进来等于把
   登录后才用得上的样式一起拖进大门。

   引用方式（**只有这两种**）：
   - 应用内页面：`base.html` 先引本文件、再引 `style.css`；
   - `/auth/` 页面：`auth/_layout.html` 先引本文件、再引 `auth.css`。
   `tests/test_auth_layout.py` 钉住"凡引 style.css 者必先引本文件"。

   青绿 `#009E73` / 朱红 `#D55E00` 是全项目统一的色盲友好方向色（见根
   CLAUDE.md），**不得在任何地方引入普通红绿组合**。 */

:root {
    --color-bg: #F2F4F7;                    /* 页面底：白卡片不描边，靠底色立住（page-style-S-v1 第一节） */
    --color-surface: #FFFFFF;
    --color-border: #E4E7EC;
    --color-text: #1A2233;
    --color-text-muted: #6B7280;
    --color-navy: #0B2545;
    --color-accent: #0F5FA6;
    --color-accent-soft: #EAF2FA;

    --color-direction-up: #009E73;
    --color-direction-down: #D55E00;

    /* 以下是 E41 第 1 项从 style.css 收进来的现有颜色：值一个不改，命名 S 定（S-display-rulings-2026-10-02-e）。 */
    --color-text-inverse: #FFFFFF;          /* 彩色底上的文字（与 surface 同值不同义：换深色主题时 surface 会变） */
    --color-text-subtle: #7b8595;           /* 灰色文字由深到浅：muted → subtle → faint */
    --color-text-faint: #9aa3b0;
    --color-direction-down-soft: #FBEDE0;   /* 跌橙浅底（卖点类标签、跌的数据） */
    --color-direction-up-soft: #E0F3EE;
    --color-direction-down-strong: #8A3D00; /* 浅底上的跌橙深字 */
    --color-direction-up-strong: #00654B;
    --color-accent-hover: #0c4d87;
    --color-border-strip: #c6cdd6;          /* 运行目标横条里链接的虚线下划线 */
    --color-error: #B3261E;                 /* 错误文字、破坏性按钮的字与描边（有文字说明，不靠颜色传意） */
    --color-error-soft: #FDECEA;            /* 破坏性按钮悬停底 */
    --color-warning-soft: #FFF4E5;
    --color-warning-text: #92400E;
    --color-warning-border: #FED7AA;        /* 警示框边框（S 720d0186：不借用跌色） */
    --color-nodata-stripe-a: #D3D8E0;       /* 宏观时间轴「无数据」条纹 */
    --color-nodata-stripe-b: #EEF0F4;

    /* 页面样式（page-style-S-v1 第一节＋补充 1，dec-507）：线、控件、浅底、焦点、浮层阴影。 */
    --color-hairline: #EDF0F4;              /* 表格、列表的横向细线 */
    --color-control-border: #D5DBE3;        /* 装饰性的边：短标记、卡片里的分组线（不用来辨认控件，对比度不要求） */
    --color-input-border: #7B8595;          /* 输入框、下拉、分段控件选中项的边：放在哪种浅底上都 ≥ 3:1（page-style-S-v2 补充 1） */
    --color-neutral-soft: #EEF1F5;          /* 中性标签、分段控件、骨架的底 */
    --color-row-hover: #F5F7FA;             /* 行悬停、展开行、空状态、卡片里的分组底 */
    --shadow-pop: 0 6px 20px rgba(16, 24, 40, 0.10), 0 1px 3px rgba(16, 24, 40, 0.06);  /* 只给浮层 */

    --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
        "Microsoft YaHei", Helvetica, Arial, sans-serif;

    /* 字号五档（E41 第 1 项，S 定）：只给下面的文字角色引用，组件不直接引用这五档。 */
    --font-size-title: 20px;
    --font-size-section: 16px;
    --font-size-body: 14px;
    --font-size-caption: 12px;
    --font-size-chart: 11px;

    /* 文字角色（page-style-S-v2 第二节及补充，dec-514 由 S 定）：每个角色把字号、字重、默认字色、行高绑在一起，
       组件的 font-size 只引用 `--type-*-size`。字色只在等于角色默认字色时引用角色变量；状态色、强调蓝、反白、
       涨跌深一档照用各自的 token。meta 没有固定字色：白卡上用 muted，页面底和其它浅底上用正文色。
       判断规则：一句完整的话归 body；只用来定位、计数、标注时间的归 meta（封闭清单见规范）；拿不准按 body。 */
    --type-page-title-size: var(--font-size-title);     /* 页头代码、页面名 */
    --type-page-title-weight: 700;
    --type-page-title-color: var(--color-text);
    --type-page-title-line: 1.3;
    --type-section-title-size: var(--font-size-section); /* 卡片标题 */
    --type-section-title-weight: 650;
    --type-section-title-color: var(--color-text);
    --type-section-title-line: 1.4;
    --type-body-size: var(--font-size-body);            /* 一切要读的内容；卡内小标题＝body 600 */
    --type-body-weight: 400;
    --type-body-color: var(--color-text);
    --type-body-line: 1.6;
    --type-meta-size: var(--font-size-caption);         /* 截至日、条数、段头、表头、徽章、图注等封闭清单 */
    --type-meta-weight: 400;
    --type-meta-line: 1.5;
    --type-control-size: var(--font-size-caption);      /* 控件沿用现有字号：多数 12 */
    --type-control-form-size: var(--font-size-body);    /* 输入框、下拉、表单 label、主按钮 */
    --type-control-large-size: var(--font-size-section);
    --type-control-glyph-size: var(--font-size-title);  /* 只给关闭用的 × 这类字形，不给文字 */
    --type-control-weight: 500;
    --type-figure-size: var(--font-size-title);         /* 大号数字（现价、读数块的值、结论） */
    --type-figure-small-size: var(--font-size-section);
    --type-chart-size: var(--font-size-chart);          /* 图内坐标与标签 */

    --header-height: 56px;

    /* 间距只用这六档；圆角：标签 sm、控件 md、卡片 lg、短标记 pill；过渡一律 --motion-fast。 */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 24px;
    --space-6: 32px;
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-pill: 999px;
    --motion-fast: 150ms;

    /* Ourbase Lens 标志色（E48，S 使用说明 v1）：只用在标志里，不做按钮、链接、标签、涨跌或任何状态色；
       品牌橙与「跌」色几乎同色相。标志 SVG 自带填色，这里登记色值，供以后的标志用途引用。 */
    --brand-plum: #422040;
    --brand-orange: #F28A37;
    --brand-amber: #C77B12;
    --brand-plate: #FFFFFF;
}
