/* Single source for the site's border-radius and box-shadow scales.
   app.css @imports this; every other stylesheet/page gets the tokens either
   transitively (via app.css) or by linking this file directly (mirrors
   font-tokens.css/spacing-tokens.css/color-tokens.css's wiring). Do not
   redeclare these values anywhere else — change them here only.

   app.css's own :root previously declared --radius-lg: 20px and --shadow-lg:
   0 8px 32px rgba(79,70,229,.10); ductusmed-theme.css's :root silently
   redeclared the SAME two names with different values (16px and
   0 12px 32px rgba(79,70,229,.12)) and, loading after app.css, always won —
   so app.css's own declarations had been dead since that override landed.
   The values below are the ones actually taking effect, so consolidating
   them changes nothing on screen.

   Only exact-match values are tokenized. Bespoke one-off radii/shadows tuned
   for a single component are intentionally left as literals — they were
   never duplicated, so there is nothing to consolidate. */
:root {
  --radius-sm: 8px;
  --radius: 12px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-full: 9999px;

  --shadow-xs: 0 1px 2px rgba(15,23,42,.04); /* was hand-copied identically into 3 files (6 rules) as a subtle card shadow, one alpha step below --shadow-sm */
  --shadow: 0 2px 8px rgba(15,23,42,.06);
  --shadow-sm: 0 1px 2px rgba(15,23,42,.05);
  --shadow-md: 0 8px 24px rgba(79,70,229,.08);
  --shadow-lg: 0 12px 32px rgba(79,70,229,.12);
}

/* Global prefers-reduced-motion override. Lives here (not a token, but every
   page already loads this file directly or via app.css) rather than being
   patched into each component's transition rules individually. Shortens
   durations instead of setting `transition: none`, so elements still reach
   their final state (e.g. a dropdown's opacity:1) rather than getting stuck
   mid-transition. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
