/* GENERATED FILE — DO NOT EDIT.
 *
 * Doc 3.2 rule zero: parisar.tokens.json is the single source of truth,
 * and this file is generated from it. Hand-edited values are caught by
 * tests/acceptance/test_design_tokens.py, which resolves the JSON and
 * compares, so an edit here fails the build rather than shipping a web
 * surface that quietly disagrees with the app.
 *
 * Regenerate:  python scripts/sync_design_tokens.py --write
 * Token version: 1.1.0
 */

:root {
  --focus-offset: 2px;
  --focus-width: 2px;
  --font-base: 'Noto Sans', 'Noto Sans Devanagari', system-ui, sans-serif;
  --font-mono: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  --motion-duration-base: 200ms;
  --motion-duration-fast: 150ms;
  --motion-duration-slow: 250ms;
  --motion-ease-exit: cubic-bezier(0.3, 0, 1, 1);
  --motion-ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --radius-full: 9999px;
  --radius-lg: 16px;
  --radius-md: 12px;
  --radius-sm: 8px;
  --radius-xs: 4px;
  --space-2xl: 40px;
  --space-3xl: 48px;
  --space-4xl: 64px;
  --space-lg: 24px;
  --space-md: 16px;
  --space-sm: 12px;
  --space-xl: 32px;
  --space-xs: 8px;
  --space-xxs: 4px;
  --text-body-lg-line: 28px;
  --text-body-lg-size: 18px;
  --text-body-lg-weight: 400;
  --text-body-line: 24px;
  --text-body-size: 16px;
  --text-body-weight: 400;
  --text-caption-line: 16px;
  --text-caption-size: 12px;
  --text-caption-tracking: 0.2px;
  --text-caption-weight: 400;
  --text-display-line: 42px;
  --text-display-size: 34px;
  --text-display-tracking: -0.2px;
  --text-display-weight: 700;
  --text-headline-line: 32px;
  --text-headline-size: 24px;
  --text-headline-weight: 600;
  --text-label-line: 20px;
  --text-label-size: 14px;
  --text-label-tracking: 0.1px;
  --text-label-weight: 500;
  --text-title-line: 28px;
  --text-title-size: 20px;
  --text-title-weight: 600;
  --touch-guard-target: 56px;
  --touch-min-target: 48px;

  /* Light theme — the default, defined on bare :root so a
     colour never has its only definition inside a media query. */
  --accent-default: #9C4F21;
  --accent-fill: #9C4F21;
  --accent-on: #FFFFFF;
  --accent-on-inverse: #DC9F7C;
  --accent-pressed: #7F3F1A;
  --accent-tint: #FBF2EC;
  --action-approve: #2A7145;
  --action-approve-pressed: #23603A;
  --action-deny: #B3362B;
  --action-deny-pressed: #8E2A22;
  --action-on-decision: #FFFFFF;
  --border-default: #E0DCD1;
  --border-hairline: #EBE7DD;
  --border-strong: #858C79;
  --error-default: #B3362B;
  --error-strong: #8E2A22;
  --error-tint: #FBE9E7;
  --focus-ring: #2E6247;
  --info-default: #2F5D7C;
  --info-tint: #E7F0F7;
  --ink-default: #21251F;
  --ink-disabled: #9AA08F;
  --ink-inverse: #FFFFFF;
  --ink-secondary: #545B4E;
  --ink-tertiary: #6B7263;
  --primary-default: #2E6247;
  --primary-fill: #2E6247;
  --primary-on: #FFFFFF;
  --primary-pressed: #24503A;
  --primary-tint: #EFF5EF;
  --scrim: rgba(20,22,19,0.44);
  --success-default: #2A7145;
  --success-strong: #23603A;
  --success-tint: #E4F2E9;
  --surface-default: #FAF8F4;
  --surface-inverse: #21251F;
  --surface-raised: #FFFFFF;
  --surface-sunken: #F1EEE7;
  --warn-default: #8A5A00;
  --warn-icon: #B87A00;
  --warn-tint: #FAF0DC;
}

/* Dark theme. Only the variables that actually differ are
   redefined, so the diff shows what dark mode changes. The
   :not([data-theme="light"]) guard lets an explicit light
   choice win over the system preference. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --accent-default: #C97A50;
    --accent-on-inverse: #7F3F1A;
    --accent-pressed: #B26234;
    --accent-tint: #2E2018;
    --action-approve-pressed: #3C9059;
    --action-deny: #C24438;
    --action-deny-pressed: #A93A2E;
    --border-default: #30362E;
    --border-hairline: #262B24;
    --border-strong: #6F776B;
    --error-default: #E58275;
    --error-strong: #F0A297;
    --error-tint: #33201D;
    --focus-ring: #9DC0A9;
    --info-default: #85B3D3;
    --info-tint: #1C2833;
    --ink-default: #ECEBE4;
    --ink-disabled: #5F665A;
    --ink-inverse: #21251F;
    --ink-secondary: #BCC1B4;
    --ink-tertiary: #939A8A;
    --primary-default: #9DC0A9;
    --primary-pressed: #4C8465;
    --primary-tint: #21362B;
    --scrim: rgba(0,0,0,0.60);
    --success-default: #7CC299;
    --success-strong: #A5D8BB;
    --success-tint: #1B2E23;
    --surface-default: #141613;
    --surface-inverse: #FAF8F4;
    --surface-raised: #1C1F1B;
    --surface-sunken: #101210;
    --warn-default: #D9A43F;
    --warn-icon: #D9A43F;
    --warn-tint: #322817;
  }
}

:root[data-theme="dark"] {
  --accent-default: #C97A50;
  --accent-on-inverse: #7F3F1A;
  --accent-pressed: #B26234;
  --accent-tint: #2E2018;
  --action-approve-pressed: #3C9059;
  --action-deny: #C24438;
  --action-deny-pressed: #A93A2E;
  --border-default: #30362E;
  --border-hairline: #262B24;
  --border-strong: #6F776B;
  --error-default: #E58275;
  --error-strong: #F0A297;
  --error-tint: #33201D;
  --focus-ring: #9DC0A9;
  --info-default: #85B3D3;
  --info-tint: #1C2833;
  --ink-default: #ECEBE4;
  --ink-disabled: #5F665A;
  --ink-inverse: #21251F;
  --ink-secondary: #BCC1B4;
  --ink-tertiary: #939A8A;
  --primary-default: #9DC0A9;
  --primary-pressed: #4C8465;
  --primary-tint: #21362B;
  --scrim: rgba(0,0,0,0.60);
  --success-default: #7CC299;
  --success-strong: #A5D8BB;
  --success-tint: #1B2E23;
  --surface-default: #141613;
  --surface-inverse: #FAF8F4;
  --surface-raised: #1C1F1B;
  --surface-sunken: #101210;
  --warn-default: #D9A43F;
  --warn-icon: #D9A43F;
  --warn-tint: #322817;
}
