/* ============================================================
   创业Spark — Color tokens
   Extracted verbatim from the Figma source (创业spark.fig).
   Base palette + semantic aliases. Do not snap to a grid.
   ============================================================ */

:root {
  /* ---- Brand ---- */
  --spark-red: rgb(255, 26, 26);          /* #ff1a1a — Spark mark, primary brand red */
  --spark-red-soft: rgba(255, 26, 26, 0.2);
  --spark-blue: rgb(48, 124, 246);        /* #307cf6 — primary action blue (most surfaces) */
  --spark-blue-press: rgb(34, 105, 220);  /* pressed/active state of primary blue */
  --spark-blue-deep: rgb(5, 77, 156);     /* #054d9c — ribbon shadow / deep accent */
  --spark-blue-ink: rgb(14, 85, 124);     /* #0e557c — dark cyan accent */
  --spark-cyan: rgb(5, 172, 245);         /* #05acf5 — bright cyan stroke */
  --spark-cyan-bright: rgb(19, 198, 255); /* #13c6ff */
  --spark-cyan-edge: rgb(88, 225, 255);   /* #58e1ff stroke */

  /* ---- Brand tints (fills for chips, soft cards) ---- */
  --blue-50: rgb(229, 240, 254);          /* #e5f0fe — category chip fill */
  --blue-100: rgb(231, 239, 255);         /* #e7efff — role badge fill */
  --blue-150: rgb(216, 240, 255);         /* #d8f0ff */
  --blue-200: rgb(186, 237, 255);         /* #baedff */
  --blue-300: rgb(116, 190, 255);         /* #74beff */

  /* ---- Accent: warm ---- */
  --orange: rgb(250, 117, 22);            /* #fa7516 — service price / buy buttons */
  --amber: rgb(255, 182, 46);             /* #ffb62e — highlight / crown */

  /* ---- Neutrals (text) ---- */
  --ink-900: rgb(0, 0, 0);                /* primary text */
  --ink-800: rgb(25, 25, 25);             /* #191919 — strong heading on light surfaces */
  --ink-700: rgb(51, 51, 51);             /* #333 — body strong */
  --ink-600: rgb(69, 69, 69);             /* #454545 — announcement body */
  --ink-500: rgb(102, 102, 102);          /* #666 — secondary text */
  --ink-450: rgb(105, 105, 105);          /* #696969 — caption/description */
  --ink-400: rgb(153, 153, 153);          /* #999 — tertiary / placeholder */
  --ink-300: rgb(204, 204, 204);          /* #ccc — disabled text */

  /* ---- Neutrals (surfaces & lines) ---- */
  --bg-app: rgb(251, 251, 251);           /* #fbfbfb — mini-program page bg */
  --surface: rgb(255, 255, 255);          /* card / nav surface */
  --surface-raised: rgb(253, 253, 253);   /* #fdfdfd — raised card */
  --placeholder: rgb(184, 184, 184);      /* #b8b8b8 — image placeholder block */
  --placeholder-icon: rgb(154, 154, 154); /* #9a9a9a — icon placeholder */
  --tag-grey: rgb(93, 93, 93);            /* #5d5d5d — 公告 badge fill */
  --pill-dark: rgb(67, 67, 67);           /* #434343 — "Go" pill on entry cards */

  --line-100: rgb(238, 238, 238);         /* #eee — hairline */
  --line-200: rgb(233, 233, 233);         /* #e9e9e9 — divider */
  --line-300: rgb(217, 217, 217);         /* #d9d9d9 — input border */
  --line-400: rgb(207, 207, 207);         /* #cfcfcf — capsule border */
  --line-500: rgb(186, 186, 186);         /* #bababa */

  /* ---- Shadows ---- */
  --shadow-card: 0px 3px 12.2px 0px rgba(221, 221, 221, 0.25);
  --shadow-img: 0px 0px 30px 0px rgba(0, 0, 0, 0.08);
  --shadow-float: 0px 4px 16px 0px rgba(0, 46, 88, 0.12);
  --overlay-ink: rgba(0, 46, 88, 0.69);   /* image text-protection overlay */

  /* ============================================================
     SEMANTIC ALIASES — prefer these in components
     ============================================================ */
  --color-primary: var(--spark-blue);
  --color-primary-press: var(--spark-blue-press);
  --color-on-primary: var(--surface);
  --color-brand: var(--spark-red);
  --color-accent: var(--orange);

  --text-primary: var(--ink-900);
  --text-heading: var(--ink-800);
  --text-body: var(--ink-700);
  --text-secondary: var(--ink-500);
  --text-caption: var(--ink-450);
  --text-muted: var(--ink-400);
  --text-disabled: var(--ink-300);
  --text-link: var(--spark-blue);
  --text-on-fill: var(--surface);

  --bg-page: var(--bg-app);
  --bg-card: var(--surface);
  --bg-card-raised: var(--surface-raised);
  --bg-chip: var(--blue-50);
  --bg-chip-strong: var(--blue-100);

  --border-hairline: var(--line-200);
  --border-input: var(--line-300);
  --border-capsule: var(--line-400);

  --chip-text: var(--spark-blue);
}
