/* ===========================================================
   唯一设计令牌源（文档 4.1 + 12.1）。各页禁止手写近似的蓝色/间距。
   =========================================================== */
:root {
  --blue-500: #2f75f5;
  --blue-600: #2167ea;
  --blue-050: #eaf2ff;

  --ink-900: #172233;
  --ink-600: #64748b;
  --ink-400: #94a3b8;

  --page-mobile: #f4f8ff;
  --page-admin: #f5f8fc;
  --surface: #fff;
  --soft-blue: #f1f6ff;
  --line: #e3eaf5;

  --sidebar: #1f2d3f;
  --sidebar-ink: rgba(255, 255, 255, .75);

  --success: #16a36a;
  --success-soft: #dff7eb;
  --danger: #f05252;
  --danger-soft: #fff0f0;
  --warning: #f4a340;

  --radius-mobile: 16px;
  --radius-admin: 8px;
  --radius-control: 10px;
  --shadow-card: 0 4px 18px rgba(33, 76, 140, .07);

  --mobile-gutter: 21px;
  --mobile-max: 430px;
  --admin-sidebar: 184px;
  --admin-topbar: 52px;

  --font-base: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  --key-gradient: linear-gradient(120deg, #2f75f5 0%, #4a6cf0 52%, #6b5ce8 100%);
  --guide-gradient: linear-gradient(120deg, #fff4e5 0%, #ffe9cc 100%);
  --brand-gradient: linear-gradient(180deg, #ffffff 0%, var(--page-mobile) 62%);
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font-base);
  color: var(--ink-900);
  font-size: 14px;
  line-height: 1.5;
  background: var(--page-mobile);
}

.num, input, .tabular { font-variant-numeric: tabular-nums; }

button { font-family: inherit; }
a { color: var(--blue-500); text-decoration: none; }

/* 图标：统一 18-20px、2px 描边（文档 4.1） */
.ic { width: 20px; height: 20px; flex: 0 0 auto; stroke: currentColor; fill: none;
      stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ic-sm { width: 16px; height: 16px; }
.ic-lg { width: 24px; height: 24px; }

.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
