/* versevid v2 Design Tokens (2026-05-30)
   source of truth: docs/05-design-system-v2.md（衍生自 docs/05-prototype-v2/.../app/theme.jsx）
   v1 brand-primary / neutral-* 已废弃；admin 区色调一并切到 dimensional theme。
   改这里的同时请同步 lib/theme.ts 的 DIMENSIONAL_THEME 数值（手工，无 runtime 桥接）。 */

:root {
  /* ===== 1. dimensional theme（consumer 主题） ===== */
  --dim-bg: #F4F3F0;
  --dim-scene: radial-gradient(120% 80% at 50% -10%, #FFFFFF 0%, #F7F6F3 55%, #F1F0EC 100%);
  --dim-paper-base: #FFFFFF;
  --dim-surface: #FFFFFF;
  --dim-ink: #2E2A22;
  --dim-sub: #9B9488;
  --dim-accent: #B5654A;          /* terracotta；v1 #2C2A4A 已废弃，禁止回填 */
  --dim-accent-soft: #F0E6DC;
  --dim-line: rgba(46, 42, 34, 0.10);
  --dim-nav-tint: rgba(255, 255, 255, 0.82);
  --dim-sentence-weight: 600;

  /* ===== 2. 字体 ===== */
  --font-display: "Noto Serif SC", serif;
  --font-serif:   "Noto Serif SC", serif;
  --font-sans:    "Noto Serif SC", -apple-system, system-ui, sans-serif;
  --font-mono:    "Space Mono", monospace;
  --font-brush:   "Ma Shan Zheng", "Noto Serif SC", serif;

  /* ===== 3. radius / shadow / spacing ===== */
  --radius-card: 16px;        --radius-card-hero: 20px;
  --radius-button: 12px;      --radius-button-cta: 14px;
  --radius-chip: 999px;       --radius-modal: 22px;
  --shadow-card-rest:  0 8px 22px rgba(50, 38, 24, 0.12);
  --shadow-card-hover: 0 16px 34px rgba(50, 38, 24, 0.20);
  --shadow-modal:      0 40px 100px rgba(0, 0, 0, 0.40);
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px;  --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-8: 32px;  --space-10: 40px;
}

/* ===== 4. 断点（设计稿 v2 §5）— CSS @media 不能用 var()，仅作文档约定 =====
   xl: ≥1180  → world 三列, sidebar 244 展开
   lg: 1080-1179 → world 二列, sidebar 244
   md:  900-1079 → sidebar 折叠 76, search 仍 220
   sm:  820-899 → 同 md
   xs:  <820  → feed 单列, search 折叠 44 icon
*/

/* ===== 5. admin compat aliases（Phase 3 改色） =====
   admin 区 1017 行代码 + 456 行 components.css 大量引用 v1 命名（--brand-primary /
   --surface / --text-* / --border-* / --neutral-N / --text-xs..2xl / --space-N /
   --radius-N / --shadow-N / --fw-N）。
   策略：保留 v1 token 名作 alias，**值**全部指向 v2 dimensional 调色板。这样：
   - admin .tsx / components.css 零改动
   - 一处 alias 翻译完成，所有 admin 颜色立即从企业蓝切到暖墨 + terracotta
   - spec §7 硬规：v1 #2C2A4A 已废弃，下方 --brand-primary 显式映射到 dim-accent
   - Phase 4 cleanup 时如果 admin 全部迁出 v1 名，可整体删除本节 */
:root {
  /* --- brand → terracotta accent --- */
  --brand-primary:        var(--dim-accent);
  --brand-primary-hover:  #9A573F;        /* dim-accent 稍深；hover 加深 */
  --brand-secondary:      var(--dim-sub);
  --brand-secondary-soft: var(--dim-accent-soft);
  --brand-accent:         var(--dim-accent);

  /* --- neutrals → 暖墨系（与 dim-bg / dim-ink 谱系对齐） --- */
  --neutral-50:   var(--dim-bg);
  --neutral-100:  #EAE7E0;
  --neutral-200:  rgba(46, 42, 34, 0.10);  /* = --dim-line */
  --neutral-300:  rgba(46, 42, 34, 0.18);
  --neutral-400:  var(--dim-sub);
  --neutral-500:  #6F665D;
  --neutral-600:  #5A5048;
  --neutral-700:  #443B33;
  --neutral-800:  #38302A;
  --neutral-900:  var(--dim-ink);

  /* --- semantic --- */
  --success:  #2F9E63;
  --warning:  #D9A431;
  --error:    #C9433A;
  --info:     #3B6E8F;

  /* --- surfaces / text / borders --- */
  --surface:         var(--dim-surface);
  --surface-muted:   var(--dim-bg);
  --surface-strong:  #EAE7E0;
  --surface-inverse: var(--dim-ink);

  --text-primary:    var(--dim-ink);
  --text-secondary:  #5A5048;
  --text-muted:      var(--dim-sub);
  --text-inverse:    #FFFFFF;
  --text-brand:      var(--dim-accent);

  --border-default:  var(--dim-line);
  --border-strong:   rgba(46, 42, 34, 0.18);
  --border-brand:    var(--dim-accent);

  /* --- type scale（admin / components.css 用） --- */
  --text-xs:    12px; --leading-xs:    18px;
  --text-sm:    14px; --leading-sm:    22px;
  --text-base:  16px; --leading-base:  26px;
  --text-lg:    18px; --leading-lg:    30px;
  --text-xl:    22px; --leading-xl:    34px;
  --text-2xl:   28px; --leading-2xl:   40px;
  --text-3xl:   36px; --leading-3xl:   48px;
  --text-4xl:   48px; --leading-4xl:   60px;

  /* --- font weights --- */
  --fw-regular:  400;
  --fw-medium:   500;
  --fw-semibold: 600;
  --fw-bold:     700;

  /* --- v1 spacing 补全（v2 已有 1-10；admin 还用到 12/16/20/24） --- */
  --space-0:   0;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;

  /* --- v1 radius 别名（v2 已有 card/button/chip/modal；admin 还用 sm/md/lg/xl/2xl/full） --- */
  --radius-sm:    4px;
  --radius-md:    8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-2xl:  24px;
  --radius-full: 9999px;

  /* --- shadow scale --- */
  --shadow-sm:  0 1px 2px  rgba(36, 30, 20, 0.06);
  --shadow-md:  0 4px 12px rgba(36, 30, 20, 0.08);
  --shadow-lg:  0 12px 32px rgba(36, 30, 20, 0.12);
  --shadow-xl:  0 24px 64px rgba(36, 30, 20, 0.16);

  /* --- v1 motion（components.css 偶尔引用） --- */
  --duration-instant: 100ms;
  --duration-fast:    180ms;
  --duration-normal:  250ms;
  --duration-slow:    400ms;
  --easing-out:    cubic-bezier(0, 0, 0.2, 1);
  --easing-both:   cubic-bezier(0.4, 0, 0.2, 1);
  --easing-spring: cubic-bezier(0.34, 1.56, 0.64, 1);

  /* --- 旧 font-body（components.css 用了一处） --- */
  --font-body: var(--font-sans);
}

/* ===== global reset（替代 v1 顶层 body / a / img / svg / button / input 规则） ===== */
* { box-sizing: border-box; }

html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.55;
  color: var(--dim-ink);
  background: var(--dim-bg);
  text-wrap: pretty;
}

a { color: var(--dim-accent); text-decoration: none; }
img, svg { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
input, textarea, select { font-family: inherit; font-size: inherit; }
