/*
 * Design tokens from the v2 design handoff. Geist and Geist Mono are served
 * from app/assets/fonts (SIL Open Font License, Geist-OFL.txt), never from a
 * font CDN, so no third party learns who uses DoseClose or which pages.
 */

@font-face {
  font-family: "Geist";
  src: url("/assets/Geist-Variable-b11a6485.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Geist Mono";
  src: url("/assets/GeistMono-Variable-6dd1dc09.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root {
  /* Type */
  --font-sans: "Geist", system-ui, sans-serif;
  --font-mono: "Geist Mono", ui-monospace, Menlo, monospace;
  --text-xs: 11px;
  --text-sm: 12px;
  --text-meta: 12.5px;
  --text-base: 13px;
  --text-table: 13.5px;
  --text-md: 14px;
  --text-lg: 16px;
  --text-xl: 17px;
  --text-2xl: 24px;
  --text-3xl: 28px;
  --tracking-tight: -0.02em;

  /* Neutrals */
  --bg-page: #fcfcfb;
  --bg-surface: #ffffff;
  --bg-subtle: #fafaf8;
  --bg-muted: #f4f4f1;
  --bg-muted-2: #f7f7f4;
  --bg-muted-3: #f1f0ec;
  --border-card: #ecebe7;
  --border-row: #f0efeb;
  --border-input: #dedcd6;
  --border-disabled: #cfcdc6;
  --border-divider: #e6e5e0;
  --text-primary: #18191b;
  --text-body: #3a3b3e;
  --text-secondary: #55565a;
  --text-tertiary: #6b6c70;
  --text-muted: #8a8b8f;
  --text-faint: #9a9a9e;

  /* Accent */
  --accent: #1f5f63;
  --accent-hover: #123c3f;
  --accent-soft: oklch(0.96 0.02 195);
  --focus-ring: inset 0 0 0 1.5px #1f5f63, 0 0 0 3px oklch(0.92 0.04 195);

  /* Flag tiers: background, text, bar. Always shown with their glyph. */
  --tier-high-bg: oklch(0.96 0.025 27);
  --tier-high-fg: oklch(0.46 0.17 27);
  --tier-high-bar: oklch(0.55 0.18 27);
  --tier-low-bg: #f1f1ee;
  --tier-low-fg: #4a4b4f;
  --tier-low-bar: #c9c7c0;
  --carried-bg: oklch(0.96 0.02 195);
  --carried-fg: #1f5f63;

  /* Status */
  --status-done: oklch(0.6 0.12 155);
  --status-sent: oklch(0.75 0.08 155);
  --status-running: #1f5f63;
  --status-running-halo: oklch(0.9 0.04 195);
  --status-failed: oklch(0.55 0.18 27);
  --status-pending-ring: #9a9a9e;
  --success-bg: oklch(0.97 0.025 155);
  --success-fg: oklch(0.38 0.08 155);
  --warning-bg: oklch(0.965 0.035 85);
  --warning-fg: oklch(0.42 0.09 75);
  --danger: oklch(0.5 0.18 27);
  --danger-fg: oklch(0.46 0.17 27);
  --danger-bg: oklch(0.96 0.025 27);
  --caution-fg: oklch(0.48 0.13 55);
  --danger-tile-bg: oklch(0.97 0.018 27);

  /* Radius */
  --radius-chip: 6px;
  --radius-control-sm: 7px;
  --radius-control: 8px;
  --radius-control-lg: 9px;
  --radius-tile: 10px;
  --radius-card: 12px;
  --radius-dialog: 14px;

  /* Shadows */
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.03);
  --shadow-float: 0 8px 24px rgba(0, 0, 0, 0.18);
  --shadow-dialog: 0 24px 60px rgba(0, 0, 0, 0.25);
  --scrim: rgba(24, 25, 27, 0.42);
}
