/* tokens.css kit v1.8 (Oct 18): palette «کرم و آسمان» — sky blue / lemon / peach-cream neutrals (Ala). v1.5: --font-brand. */
/* AUTO-GENERATED by scripts/generate-tokens-css.mjs from
   app/components/ui/tokens.ts -- do not hand-edit. Run
   `npm run generate:tokens` instead (it also runs automatically before
   dev/build -- see package.json's predev/prebuild). A committed copy that
   doesn't match a fresh run fails CI -- see
   scripts/check-generated-assets.mjs. */

:root {
  /* colors -- app/components/ui/tokens.ts `colors` */
  --canvas: #FFF4E6;
  --surface: #FFFFFF;
  --surface-warm: #FFF8EE;
  --ink: #2E2B26;
  --ink-soft: #6B6158;
  --ink-faint: #A69A8D;
  --border: #EEDFCB;
  --teal: #2E73B0;
  --teal-soft: #DCEAF7;
  --teal-deep: #21568A;
  --orange: #B03A68;
  --orange-soft: #F8E4EC;
  --accent-ink: #862A4E;
  --gold: #F6D32D;
  --gold-soft: #FFF9D2;
  --gold-ink: #2E2B26;
  --gold-line: #F0D24E;
  --gold-sep: #EAC93A;
  --warning: #B57F35;
  --warning-soft: #F7E2C4;
  --success: #2E73B0;
  --disabled: #DCCFBF;
  --sage: #A39585;
  --sage-soft: #F3ECE3;
  --rose: #B03A68;
  --rose-soft: #F8E4EC;
  --deepteal: #4A8BC7;
  --deepteal-soft: #E3F0FA;
  --terracotta: #862A4E;
  --terracotta-soft: #F8E4EC;
  --attention: #B03A68;
  --attention-soft: #F8E4EC;
  --attention-ink: #862A4E;
  --pastel-green: #EFF8EA;
  --backdrop: rgba(46,43,38,0.38);
  --selection: rgba(46,115,176,0.18);

  /* radius */
  --radius-box: 12px;
  --radius-list: 18px;
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 20px;
  --radius-xl: 24px;
  --radius-pill: 999px;

  /* shadow -- ink-tinted, not pure black, per tokens.ts's own comment */
  --shadow-sm: 0 2px 8px rgba(46,43,38,0.06);
  --shadow-md: 0 6px 9px rgba(46,43,38,0.12);
  --shadow-lg: 0 12px 28px rgba(46,43,38,0.14);

  /* component sizes and layers (UX spec §0.1–§0.3) */
  --size-tap-min: 44px;
  --size-home-button: 44px;
  --size-home-button-wide: 56px;
  --size-button-filled: 54px;
  --size-button-outlined: 48px;
  --size-row: 52px;
  --size-sheet-max: 480px;
  --size-dialog-breakpoint: 700px;
  --size-result-burst: 108px;
  --size-level-step: 34px;
  --layer-sheet: 60;

  /* brand font (spec §0.12) -- tokens.ts `fonts` */
  --font-brand: 'Vazirmatn', Tahoma, sans-serif;
}

/* Vazirmatn, self-hosted so no request ever leaves this document at
   runtime (Iran connectivity constraint -- students are on National
   Internet and can't reach any international host, including
   fonts.gstatic.com). One variable file (weights 100-900), the same file
   app/layout.tsx loads for the app shell, so exercises and app pages
   share one font. Persian + Latin subset, both digit sets. */
@font-face {
  font-family: Vazirmatn;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('./fonts/vazirmatn.woff2') format('woff2');
  unicode-range: U+0020-007E, U+00A0-00FF, U+0600-06FF, U+200C-200F, U+2010-2027, U+2030-205E, U+2212, U+2E41, U+FB50-FDFF, U+FE70-FEFF;
}

html, body {
  margin: 0;
  padding: 0;
  font-family: var(--font-brand);
  color: var(--ink);
  background: transparent;
}

/* Report beef9580 (Ala, Oct 16): tapping a word inside an exercise must not open
   the phone's "tap to search" panel or its copy menu. Typing boxes stay selectable. */
html, body {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: transparent;
}
input, textarea, [contenteditable="true"] {
  -webkit-user-select: text;
  user-select: text;
}
