/* ═══════════════════════════════════════════════════════════════
   Cuemath Design System — bundle.css
   Auto-generated by build-bundle.sh — do not edit directly.
   Re-run: bash build-bundle.sh

   Contains: tokens + reset + embedded fonts + all components.
   Single <link> import — works from any directory, any machine.
   Generated: 2026-09-20 19:28
   ═══════════════════════════════════════════════════════════════ */


/* ─── colour-tokens.css ─── */

/* ═══════════════════════════════════════════════════════════════
   Cuemath Colour System — CSS Tokens
   Source of truth for all colour variables.

   3 layers: Primitive ramps → Semantic tokens → Theme switching
   Built in OKLCH, exported as hex for compatibility.

   Import: @import url('colour-tokens.css');
   Or link: <link rel="stylesheet" href="colour-tokens.css">
   ═══════════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════════
   LAYER 1 — PRIMITIVE RAMP VALUES
   Raw colour steps. Never used directly in components.
   ═══════════════════════════════════════════════════════════════ */

:root {

  /* ─── Neutral (Warm Charcoal) ─── H 67.8° OKLCH ─── */
  /* Rebuilt 2026-09-03 on a single rule. neutral-200 is the anchor: the hue of
     every step is its hue (67.8°), and its lightness is pinned along with pure
     white at the top and neutral-1100 at the floor. Between those three fixed
     points the lightness spacing rises and falls in one smooth arc (1.9 · 1.9 ·
     2.9 · 4.6 · 6.2 · 7.5 · 8.4 · 8.9 · 8.9 · 8.4 · 7.5 · 6.2 · 4.6 · 2.9 in
     OKLab L), so there is no cliff and no crowding anywhere on the ramp.

     Three steps added — 350, 450, 650 — filling gaps of 12.6, 14.3 and 18.3
     that had nothing usable in them. 600 also carried a chroma dip (0.89 against
     ~1.12 either side) that made it read grey among warm neighbours; corrected.
     Chroma still peaks around L 80 and eases at both ends: a neutral ramp holds
     only a whisper of warmth in the mid-tones or the greys stop reading as grey.

     Contrast verified across all twelve text and border pairs in both themes —
     no WCAG threshold is crossed, and light --border-primary improves 3.67→4.07.
     Supersedes the V8 ramp (2026-05-24). Full working: see the decision log in
     colour-system-reference.md. */

  --raw-stone-0:    #FFFFFF;
  --raw-stone-100:  #FAF8F7;
  --raw-stone-200:  #F5F2EF;
  --raw-stone-300:  #EDE8E3;
  --raw-stone-350:  #DFD9D3;
  --raw-stone-400:  #CBC4BD;
  --raw-stone-450:  #B3ADA6;
  --raw-stone-500:  #99938D;
  --raw-stone-600:  #7E7973;
  --raw-stone-650:  #655F5A;
  --raw-stone-700:  #4D4843;
  --raw-stone-800:  #393530;
  --raw-stone-900:  #292522;
  --raw-stone-1000: #1D1B18;
  --raw-stone-1100: #161412;

  /* ─── Gold (Brand Primary) ─── H72°→H63° OKLCH ─── */

  --raw-gold-100:  #FAF1E6;
  --raw-gold-200:  #FAE6D0;
  --raw-gold-300:  #FAD6AC;
  --raw-gold-400:  #F6BE7C;
  --raw-gold-500:  #F4AB52;
  --raw-gold-600:  #EC9A32;
  --raw-gold-700:  #CE7E12;
  --raw-gold-800:  #A45F00;
  --raw-gold-900:  #7E4800;
  --raw-gold-1000: #603602;
  --raw-gold-1100: #4A2902;

  /* ─── Error ─── H20° OKLCH (v3, 2026-05-24) ─── */

  --raw-red-100:  #FFE9E9;
  --raw-red-200:  #FFD6D5;
  --raw-red-300:  #FFB8B7;
  --raw-red-400:  #FF9595;
  --raw-red-500:  #F97279;
  --raw-red-600:  #E5555E;
  --raw-red-700:  #C8444F;
  --raw-red-800:  #A73941;
  --raw-red-900:  #842D34;
  --raw-red-1000: #652328;
  --raw-red-1100: #4C1B1E;

  /* ─── Success ─── H152°→H155° OKLCH ─── */

  --raw-green-100:  #ECF9EF;
  --raw-green-200:  #DAF3E0;
  --raw-green-300:  #BCEAC8;
  --raw-green-400:  #96DCAA;
  --raw-green-500:  #6AC88A;
  --raw-green-600:  #42B36F;
  --raw-green-700:  #28995A;
  --raw-green-800:  #1C7C48;
  --raw-green-900:  #1A623A;
  --raw-green-1000: #164A2C;
  --raw-green-1100: #103820;

  /* ─── Warning ─── H39°→H26° OKLCH (v6, 2026-05-24) ─── */
  /* Lights stay close to gold's brightness; darks rotate toward red-brown so
     the ramp diverges from gold at the extremes. */

  --raw-orange-100:  #FFEFE1;
  --raw-orange-200:  #FFDDC0;
  --raw-orange-300:  #FFC89B;
  --raw-orange-400:  #FFAB72;
  --raw-orange-500:  #F68D50;
  --raw-orange-600:  #E27535;
  --raw-orange-700:  #BC551F;
  --raw-orange-800:  #964217;
  --raw-orange-900:  #763413;
  --raw-orange-1000: #5B280F;
  --raw-orange-1100: #471F0C;

  /* ─── Info ─── H257°→H260° OKLCH ─── */

  --raw-blue-100:  #EEF6FF;
  --raw-blue-200:  #DEECFF;
  --raw-blue-300:  #C1DCFF;
  --raw-blue-400:  #9CC6FF;
  --raw-blue-500:  #74ACFC;
  --raw-blue-600:  #5492F1;
  --raw-blue-700:  #407BD6;
  --raw-blue-800:  #3464B1;
  --raw-blue-900:  #2B508C;
  --raw-blue-1000: #223E6A;
  --raw-blue-1100: #182D52;

  /* ─── Purple ─── H315° OKLCH (v2, 2026-05-24) ─── */
  /* Modest chroma bump from C≈0.140 → C≈0.155 at peak so the 500 step
     reads in the same saturation register as gold/warning/error. */

  --raw-purple-100:  #FAEDFF;
  --raw-purple-200:  #F4DCFF;
  --raw-purple-300:  #EBC4FF;
  --raw-purple-400:  #E0A6FF;
  --raw-purple-500:  #D386F7;
  --raw-purple-600:  #C26FE2;
  --raw-purple-700:  #A055BE;
  --raw-purple-800:  #80408F;
  --raw-purple-900:  #5F2D6D;
  --raw-purple-1000: #451E50;
  --raw-purple-1100: #311438;
}

/* ═══════════════════════════════════════════════════════════════
   LAYER 2 — SEMANTIC TOKENS (Light Theme)
   These are the tokens components actually use.
   ═══════════════════════════════════════════════════════════════ */

:root,
[data-theme="light"] {

  /* ─── Backgrounds — 4-tier neutral surfaces ─── */
  /* --neutral-0: extreme tier — lifted white card above the warm page (light)
     --neutral-1: primary page bg          (bg-N aligns with neutral-N00, like the other colour -1 steps)
     --neutral-2: secondary sunken surface (cards within page, sidebars)
     --neutral-3: tertiary — wells, input fields, hover states
     bg-4: deepest well — added 2026-09-03 on the new neutral-350 step. The name
           previously meant today's --neutral-3 (pre-2026-06-20 numbering); it now means
           one step BELOW --neutral-3, so re-check any old markup that still cites it. */
  /* Tiers run 0–14, one per palette step, on an exact mirror: tier i is
     raw-stone-STEPS[i] in light and raw-stone-STEPS[14-i] in dark, so tier 7
     (step 500) is the axis and sits on itself in both themes. Tiers 8–14 pair
     with --text-inverse-primary; 5–7 need a per-case contrast check. */
  --neutral-0:            var(--raw-stone-0);
  --neutral-1:            var(--raw-stone-100);
  --neutral-2:            var(--raw-stone-200);
  --neutral-3:            var(--raw-stone-300);
  --neutral-4:            var(--raw-stone-350);
  --neutral-5:            var(--raw-stone-400);
  --neutral-6:            var(--raw-stone-450);
  --neutral-7:            var(--raw-stone-500);
  --neutral-8:            var(--raw-stone-600);
  --neutral-9:            var(--raw-stone-650);
  --neutral-10:           var(--raw-stone-700);
  --neutral-11:           var(--raw-stone-800);
  --neutral-12:           var(--raw-stone-900);
  --neutral-13:           var(--raw-stone-1000);
  --neutral-14:           var(--raw-stone-1100);

  /* ─── Text ─── */
  --text-primary:         var(--neutral-13);
  /* Secondary and tertiary derive from --text-primary via opacity, so they
     pick up tinted-bg hues on tinted cards and read consistently across both
     warm and cool surfaces. Auto-flips with theme. */
  --text-secondary:       color-mix(in srgb, var(--text-primary) 80%, transparent);
  --text-tertiary:        color-mix(in srgb, var(--text-primary) 65%, transparent);
  --text-inverse-primary:      var(--neutral-1);
  /* Same 70/50 derivation the normal pair uses, so both follow whatever
     --text-inverse-primary resolves to in the current theme. */
  --text-inverse-secondary: color-mix(in srgb, var(--text-inverse-primary) 70%, transparent);
  --text-inverse-tertiary:  color-mix(in srgb, var(--text-inverse-primary) 50%, transparent);
  --text-brand:           var(--brand-7);
  --text-error:           var(--error-7);
  --text-success:         var(--success-7);
  --text-warning:         var(--warning-7);
  --text-info:            var(--info-7);
  --text-purple:          var(--purple-accent-7);

  /* ─── Borders ─── */
  --border-primary:       var(--neutral-8);
  --border-secondary:     var(--neutral-5);
  --border-tertiary:      var(--neutral-3);
  --border-selected:   var(--neutral-13);

  /* ─── Borders (opacity-derived, for tinted surfaces) ─── */
  /* Same weight ladder as solid borders, but derives from --text-primary so the
     border picks up the surface hue. Use on cards/badges with {accent}-1 or
     any tinted surface where solid neutral borders feel disconnected. Calibrated
     to match neutral solid borders on a neutral-100 surface. */

  --border-primary-soft:   color-mix(in srgb, var(--text-primary) 55%, transparent);
  --border-secondary-soft: color-mix(in srgb, var(--text-primary) 25%, transparent);
  --border-tertiary-soft:  color-mix(in srgb, var(--text-primary) 10%, transparent);
  /* Accent surface levels — four steps per accent for tinted backgrounds.
     Mirrors the neutral bg tiers: -N tracks accent-N00 in light and counts down
     from the ramp floor in dark (-1=1100, -2=1000, -3=900, -4=800). Tier 4 added
     2026-09-03 alongside --neutral-4. Note the neutral side uses neutral-350 for its
     tier 4, not neutral-400: neutral surfaces sit lighter than tinted ones at
     every tier in light mode (and darker in dark), and 350 preserves that. */
  /* Tiers 5–11 continue the ramp. Tier 5 is the MAIN colour (500 in both
     themes; was --{accent}-5) and tier 6 its hover (600 light, 400 dark; was
     --{accent}-6). Tiers 7–11 mirror (light N00 ↔ dark 1200−N00). Tiers
     8–11 pair with --text-inverse-primary (AA on every hue); tier 7 only clears AA
     with light text for error, warning and purple; 5–7 need a per-hue check.
     Tiers 5 and 6 deliberately do NOT mirror (decided 2026-09-19). Tier 5 is the
     filled-button fill and is identical in both themes so the CTA reads the same
     everywhere; its label is pinned to --raw-stone-1000 and doesn't flip, so
     mirroring tier 5 to step 700 would drop .btn-destructive's label to 3.60:1 in
     dark. Measured before deciding. Tier 6 is tier 5's hover and follows it. The
     cost is that tiers 5/7 and 6/8 share a dark value, and an inverse scope has to
     hand-pick accent values rather than compute them. */
  --brand-1:           var(--raw-gold-100);
  --brand-2:           var(--raw-gold-200);
  --brand-3:           var(--raw-gold-300);
  --brand-4:           var(--raw-gold-400);
  --brand-5:           var(--raw-gold-500);   /* MAIN colour — buttons, brand fills */
  --brand-6:           var(--raw-gold-600);   /* hover for tier 5 */
  --brand-7:           var(--raw-gold-700);
  --brand-8:           var(--raw-gold-800);
  --brand-9:           var(--raw-gold-900);
  --brand-10:          var(--raw-gold-1000);
  --brand-11:          var(--raw-gold-1100);
  --error-1:           var(--raw-red-100);
  --error-2:           var(--raw-red-200);
  --error-3:           var(--raw-red-300);
  --error-4:           var(--raw-red-400);
  --error-5:           var(--raw-red-500);   /* MAIN colour — buttons, brand fills */
  --error-6:           var(--raw-red-600);   /* hover for tier 5 */
  --error-7:           var(--raw-red-700);
  --error-8:           var(--raw-red-800);
  --error-9:           var(--raw-red-900);
  --error-10:          var(--raw-red-1000);
  --error-11:          var(--raw-red-1100);
  --success-1:         var(--raw-green-100);
  --success-2:         var(--raw-green-200);
  --success-3:         var(--raw-green-300);
  --success-4:         var(--raw-green-400);
  --success-5:         var(--raw-green-500);   /* MAIN colour — buttons, brand fills */
  --success-6:         var(--raw-green-600);   /* hover for tier 5 */
  --success-7:         var(--raw-green-700);
  --success-8:         var(--raw-green-800);
  --success-9:         var(--raw-green-900);
  --success-10:        var(--raw-green-1000);
  --success-11:        var(--raw-green-1100);
  --warning-1:         var(--raw-orange-100);
  --warning-2:         var(--raw-orange-200);
  --warning-3:         var(--raw-orange-300);
  --warning-4:         var(--raw-orange-400);
  --warning-5:         var(--raw-orange-500);   /* MAIN colour — buttons, brand fills */
  --warning-6:         var(--raw-orange-600);   /* hover for tier 5 */
  --warning-7:         var(--raw-orange-700);
  --warning-8:         var(--raw-orange-800);
  --warning-9:         var(--raw-orange-900);
  --warning-10:        var(--raw-orange-1000);
  --warning-11:        var(--raw-orange-1100);
  --info-1:            var(--raw-blue-100);
  --info-2:            var(--raw-blue-200);
  --info-3:            var(--raw-blue-300);
  --info-4:            var(--raw-blue-400);
  --info-5:            var(--raw-blue-500);   /* MAIN colour — buttons, brand fills */
  --info-6:            var(--raw-blue-600);   /* hover for tier 5 */
  --info-7:            var(--raw-blue-700);
  --info-8:            var(--raw-blue-800);
  --info-9:            var(--raw-blue-900);
  --info-10:           var(--raw-blue-1000);
  --info-11:           var(--raw-blue-1100);
  --purple-accent-1:          var(--raw-purple-100);
  --purple-accent-2:          var(--raw-purple-200);
  --purple-accent-3:          var(--raw-purple-300);
  --purple-accent-4:          var(--raw-purple-400);
  --purple-accent-5:          var(--raw-purple-500);   /* MAIN colour — buttons, brand fills */
  --purple-accent-6:          var(--raw-purple-600);   /* hover for tier 5 */
  --purple-accent-7:          var(--raw-purple-700);
  --purple-accent-8:          var(--raw-purple-800);
  --purple-accent-9:          var(--raw-purple-900);
  --purple-accent-10:         var(--raw-purple-1000);
  --purple-accent-11:         var(--raw-purple-1100);

}

/* ═══════════════════════════════════════════════════════════════
   LAYER 2 — SEMANTIC TOKENS (Dark Theme)
   Same token names, different ramp mappings.
   Swap is automatic — component code never changes.
   ═══════════════════════════════════════════════════════════════ */

[data-theme="dark"] {

  /* ─── Backgrounds — 4-tier neutral surfaces (dark) ─── */
  /* --neutral-0: extreme tier — deepest void below the standard page (dark mode)
     --neutral-1: primary page bg (same as light mode's role)
     --neutral-2: elevated surface (lighter than page in dark, sunken in light)
     --neutral-3: more elevated tier (wells / hover)
     bg-4: deepest well. neutral-700 sits at OKLab L 40.5, exactly the next step
           in the ramp's spacing arc after --neutral-3 (33.1). Note it is also dark
           --border-secondary, the same overlap light mode has at --neutral-3. */
  --neutral-0:            var(--raw-stone-1100);
  --neutral-1:            var(--raw-stone-1000);
  --neutral-2:            var(--raw-stone-900);
  --neutral-3:            var(--raw-stone-800);
  --neutral-4:            var(--raw-stone-700);
  --neutral-5:            var(--raw-stone-650);
  --neutral-6:            var(--raw-stone-600);
  --neutral-7:            var(--raw-stone-500);
  --neutral-8:            var(--raw-stone-450);
  --neutral-9:            var(--raw-stone-400);
  --neutral-10:           var(--raw-stone-350);
  --neutral-11:           var(--raw-stone-300);
  --neutral-12:           var(--raw-stone-200);
  --neutral-13:           var(--raw-stone-100);
  --neutral-14:           var(--raw-stone-0);

  /* ─── Text ─── */
  --text-primary:         var(--neutral-13);
  /* Same opacity-derived approach in dark — secondary/tertiary fade from the
     light --text-primary, picking up surface hue underneath. */
  --text-secondary:       color-mix(in srgb, var(--text-primary) 80%, transparent);
  --text-tertiary:        color-mix(in srgb, var(--text-primary) 65%, transparent);
  --text-inverse-primary:      var(--neutral-1);
  /* Same 70/50 derivation the normal pair uses, so both follow whatever
     --text-inverse-primary resolves to in the current theme. */
  --text-inverse-secondary: color-mix(in srgb, var(--text-inverse-primary) 70%, transparent);
  --text-inverse-tertiary:  color-mix(in srgb, var(--text-inverse-primary) 50%, transparent);
  --text-brand:           var(--brand-7);
  --text-error:           var(--error-7);
  --text-success:         var(--success-7);
  --text-warning:         var(--warning-7);
  --text-info:            var(--info-7);
  --text-purple:          var(--purple-accent-7);

  /* ─── Borders ─── */
  --border-primary:       var(--neutral-8);
  --border-secondary:     var(--neutral-5);
  --border-tertiary:      var(--neutral-3);
  --border-selected:   var(--neutral-13);
  /* ─── Borders (opacity-derived, for tinted surfaces) ─── */
  /* Slightly different opacity than light because the dark-mode neutral borders
     map to neutral-500/700/800 (closer to surface), not 600/400/300. Same visual
     weight as solid borders on the dark page. */

  --border-primary-soft:   color-mix(in srgb, var(--text-primary) 53%, transparent);
  --border-secondary-soft: color-mix(in srgb, var(--text-primary) 24%, transparent);
  --border-tertiary-soft:  color-mix(in srgb, var(--text-primary) 12%, transparent);

  /* Accent surface levels — solid dark values (one step darker per level).
     Replaces the dilute HSL-overlay pattern that read as "muddy gray" on the
     warm-tinted neutral page bg. Each level uses primitive ramp values for
     consistency with light theme. */
  --brand-1:           var(--raw-gold-1100);
  --brand-2:           var(--raw-gold-1000);
  --brand-3:           var(--raw-gold-900);
  --brand-4:           var(--raw-gold-800);
  --brand-5:           var(--raw-gold-500);   /* MAIN — same in both themes */
  --brand-6:           var(--raw-gold-400);   /* hover — lightens in dark */
  --brand-7:           var(--raw-gold-500);
  --brand-8:           var(--raw-gold-400);
  --brand-9:           var(--raw-gold-300);
  --brand-10:          var(--raw-gold-200);
  --brand-11:          var(--raw-gold-100);
  --error-1:           var(--raw-red-1100);
  --error-2:           var(--raw-red-1000);
  --error-3:           var(--raw-red-900);
  --error-4:           var(--raw-red-800);
  --error-5:           var(--raw-red-500);   /* MAIN — same in both themes */
  --error-6:           var(--raw-red-400);   /* hover — lightens in dark */
  --error-7:           var(--raw-red-500);
  --error-8:           var(--raw-red-400);
  --error-9:           var(--raw-red-300);
  --error-10:          var(--raw-red-200);
  --error-11:          var(--raw-red-100);
  --success-1:         var(--raw-green-1100);
  --success-2:         var(--raw-green-1000);
  --success-3:         var(--raw-green-900);
  --success-4:         var(--raw-green-800);
  --success-5:         var(--raw-green-500);   /* MAIN — same in both themes */
  --success-6:         var(--raw-green-400);   /* hover — lightens in dark */
  --success-7:         var(--raw-green-500);
  --success-8:         var(--raw-green-400);
  --success-9:         var(--raw-green-300);
  --success-10:        var(--raw-green-200);
  --success-11:        var(--raw-green-100);
  --warning-1:         var(--raw-orange-1100);
  --warning-2:         var(--raw-orange-1000);
  --warning-3:         var(--raw-orange-900);
  --warning-4:         var(--raw-orange-800);
  --warning-5:         var(--raw-orange-500);   /* MAIN — same in both themes */
  --warning-6:         var(--raw-orange-400);   /* hover — lightens in dark */
  --warning-7:         var(--raw-orange-500);
  --warning-8:         var(--raw-orange-400);
  --warning-9:         var(--raw-orange-300);
  --warning-10:        var(--raw-orange-200);
  --warning-11:        var(--raw-orange-100);
  --info-1:            var(--raw-blue-1100);
  --info-2:            var(--raw-blue-1000);
  --info-3:            var(--raw-blue-900);
  --info-4:            var(--raw-blue-800);
  --info-5:            var(--raw-blue-500);   /* MAIN — same in both themes */
  --info-6:            var(--raw-blue-400);   /* hover — lightens in dark */
  --info-7:            var(--raw-blue-500);
  --info-8:            var(--raw-blue-400);
  --info-9:            var(--raw-blue-300);
  --info-10:           var(--raw-blue-200);
  --info-11:           var(--raw-blue-100);
  --purple-accent-1:          var(--raw-purple-1100);
  --purple-accent-2:          var(--raw-purple-1000);
  --purple-accent-3:          var(--raw-purple-900);
  --purple-accent-4:          var(--raw-purple-800);
  --purple-accent-5:          var(--raw-purple-500);   /* MAIN — same in both themes */
  --purple-accent-6:          var(--raw-purple-400);   /* hover — lightens in dark */
  --purple-accent-7:          var(--raw-purple-500);
  --purple-accent-8:          var(--raw-purple-400);
  --purple-accent-9:          var(--raw-purple-300);
  --purple-accent-10:         var(--raw-purple-200);
  --purple-accent-11:         var(--raw-purple-100);

}

/* ─── type-tokens.css ─── */

/* ═══════════════════════════════════════════════════════════════
   Cuemath Type System — CSS Tokens
   Source of truth for all typography variables.

   14 tokens · 4 role groups · 2 typefaces
   Athletics (display + heading) · Untitled Sans (body + label)

   Import: @import url('type-tokens.css');
   Or link: <link rel="stylesheet" href="type-tokens.css">
   ═══════════════════════════════════════════════════════════════ */

:root {

  /* ─── Font Families ─── */
  --font-display:  'Athletics', Georgia, serif;
  --font-heading:  'Athletics', Georgia, serif;
  --font-body:     'Untitled Sans', -apple-system, system-ui, sans-serif;
  --font-label:    'Untitled Sans', -apple-system, system-ui, sans-serif;


  /* ─── Display ─── Athletics · Hero headlines · Fluid ─── */

  --type-display-lg-font:     var(--font-display);
  --type-display-lg-size:     64px;
  --type-display-lg-lh:       72px;
  --type-display-lg-weight:   300;
  --type-display-lg-tracking: -0.01em;
  --type-display-lg-fluid:    clamp(32px, 5vw, 64px);
  --type-display-lg-weight-bold:   500;

  --type-display-md-font:     var(--font-display);
  --type-display-md-size:     48px;
  --type-display-md-lh:       56px;
  --type-display-md-weight:   400;
  --type-display-md-tracking: -0.01em;
  --type-display-md-fluid:    clamp(28px, 4vw, 48px);
  --type-display-md-weight-bold:   700;

  --type-display-sm-font:     var(--font-display);
  --type-display-sm-size:     40px;
  --type-display-sm-lh:       48px;
  --type-display-sm-weight:   400;
  --type-display-sm-tracking: -0.005em;
  --type-display-sm-fluid:    clamp(28px, 3.5vw, 40px);
  --type-display-sm-weight-bold:   700;


  /* ─── Heading ─── Athletics · Section structure ─── */
  /* Fluid variants follow the same pattern as Display: clamp(min, vw, max).
     Min is the mobile target (~75% of desktop), max is the static desktop
     size. Crossover happens around 1280px viewport. */

  --type-heading-xl-font:     var(--font-heading);
  --type-heading-xl-size:     32px;
  --type-heading-xl-lh:       40px;
  --type-heading-xl-weight:   400;
  --type-heading-xl-tracking: 0;
  --type-heading-xl-fluid:    clamp(24px, 2.5vw, 32px);
  --type-heading-xl-weight-bold:   700;

  --type-heading-lg-font:     var(--font-heading);
  --type-heading-lg-size:     28px;
  --type-heading-lg-lh:       36px;
  --type-heading-lg-weight:   400;
  --type-heading-lg-tracking: 0;
  --type-heading-lg-fluid:    clamp(22px, 2.2vw, 28px);
  --type-heading-lg-weight-bold:   700;

  --type-heading-md-font:     var(--font-heading);
  --type-heading-md-size:     24px;
  --type-heading-md-lh:       32px;
  --type-heading-md-weight:   400;
  --type-heading-md-tracking: 0;
  --type-heading-md-fluid:    clamp(20px, 1.9vw, 24px);
  --type-heading-md-weight-bold:   700;

  --type-heading-sm-font:     var(--font-heading);
  --type-heading-sm-size:     20px;
  --type-heading-sm-lh:       28px;
  --type-heading-sm-weight:   400;
  --type-heading-sm-tracking: 0;
  --type-heading-sm-fluid:    clamp(18px, 1.6vw, 20px);
  --type-heading-sm-weight-bold:   700;

  --type-heading-xs-font:     var(--font-heading);
  --type-heading-xs-size:     16px;
  --type-heading-xs-lh:       24px;
  --type-heading-xs-weight:   400;
  --type-heading-xs-tracking: 0;
  --type-heading-xs-fluid:    clamp(14px, 1.4vw, 16px);
  --type-heading-xs-weight-bold:   700;


  /* ─── Body ─── Untitled Sans · Reading text ─── */

  --type-body-xl-font:        var(--font-body);
  --type-body-xl-size:        20px;
  --type-body-xl-lh:          28px;
  --type-body-xl-weight:      400;
  --type-body-xl-tracking:    0;

  --type-body-lg-font:        var(--font-body);
  --type-body-lg-size:        16px;
  --type-body-lg-lh:          24px;
  --type-body-lg-weight:      400;
  --type-body-lg-tracking:    0;

  --type-body-md-font:        var(--font-body);
  --type-body-md-size:        14px;
  --type-body-md-lh:          20px;
  --type-body-md-weight:      400;
  --type-body-md-tracking:    0;

  --type-body-sm-font:        var(--font-body);
  --type-body-sm-size:        12px;
  --type-body-sm-lh:          16px;
  --type-body-sm-weight:      400;
  --type-body-sm-tracking:    0;

  --type-body-xs-font:       var(--font-body);
  --type-body-xs-size:       10px;
  --type-body-xs-lh:         14px;
  --type-body-xs-weight:     400;
  --type-body-xs-tracking:   0;


  /* ─── Label ─── Untitled Sans · Interactive + UI chrome ─── */

  --type-label-lg-font:       var(--font-label);
  --type-label-lg-size:       16px;
  --type-label-lg-lh:         24px;
  --type-label-lg-weight:     500;
  --type-label-lg-tracking:   0;

  --type-label-md-font:       var(--font-label);
  --type-label-md-size:       14px;
  --type-label-md-lh:         20px;
  --type-label-md-weight:     500;
  --type-label-md-tracking:   0;

  --type-label-sm-font:       var(--font-label);
  --type-label-sm-size:       12px;
  --type-label-sm-lh:         16px;
  --type-label-sm-weight:     500;
  --type-label-sm-tracking:   0;

  --type-label-xs-font:       var(--font-label);
  --type-label-xs-size:       10px;
  --type-label-xs-lh:         14px;
  --type-label-xs-weight:     500;
  --type-label-xs-tracking:   0;



  /* ─── Emphasis Weight ─── */
  --type-body-emphasis:       500;   /* <strong> in body text */
  --type-label-caps-tracking: 0.05em; /* uppercase treatment (was 0.08em, reduced 2026-05-24) */

}


/* ═══════════════════════════════════════════════════════════════
   Utility Classes
   Apply a complete token bundle with a single class.
   ═══════════════════════════════════════════════════════════════ */

/* Display */
.type-display-lg {
  font-family: var(--type-display-lg-font);
  font-size: var(--type-display-lg-size);
  line-height: var(--type-display-lg-lh);
  font-weight: var(--type-display-lg-weight);
  letter-spacing: var(--type-display-lg-tracking);
}
.type-display-lg-fluid {
  font-family: var(--type-display-lg-font);
  font-size: var(--type-display-lg-fluid);
  line-height: var(--type-display-lg-lh);
  font-weight: var(--type-display-lg-weight);
  letter-spacing: var(--type-display-lg-tracking);
}
.type-display-lg-bold { font-weight: var(--type-display-lg-weight-bold); }

.type-display-md {
  font-family: var(--type-display-md-font);
  font-size: var(--type-display-md-size);
  line-height: var(--type-display-md-lh);
  font-weight: var(--type-display-md-weight);
  letter-spacing: var(--type-display-md-tracking);
}
.type-display-md-fluid {
  font-family: var(--type-display-md-font);
  font-size: var(--type-display-md-fluid);
  line-height: var(--type-display-md-lh);
  font-weight: var(--type-display-md-weight);
  letter-spacing: var(--type-display-md-tracking);
}
.type-display-md-bold { font-weight: var(--type-display-md-weight-bold); }

.type-display-sm {
  font-family: var(--type-display-sm-font);
  font-size: var(--type-display-sm-size);
  line-height: var(--type-display-sm-lh);
  font-weight: var(--type-display-sm-weight);
  letter-spacing: var(--type-display-sm-tracking);
}
.type-display-sm-fluid {
  font-family: var(--type-display-sm-font);
  font-size: var(--type-display-sm-fluid);
  line-height: var(--type-display-sm-lh);
  font-weight: var(--type-display-sm-weight);
  letter-spacing: var(--type-display-sm-tracking);
}
.type-display-sm-bold { font-weight: var(--type-display-sm-weight-bold); }

/* Heading */
.type-heading-xl {
  font-family: var(--type-heading-xl-font);
  font-size: var(--type-heading-xl-size);
  line-height: var(--type-heading-xl-lh);
  font-weight: var(--type-heading-xl-weight);
  letter-spacing: var(--type-heading-xl-tracking);
}
.type-heading-xl-fluid {
  font-family: var(--type-heading-xl-font);
  font-size: var(--type-heading-xl-fluid);
  line-height: var(--type-heading-xl-lh);
  font-weight: var(--type-heading-xl-weight);
  letter-spacing: var(--type-heading-xl-tracking);
}
.type-heading-xl-bold { font-weight: var(--type-heading-xl-weight-bold); }

.type-heading-lg {
  font-family: var(--type-heading-lg-font);
  font-size: var(--type-heading-lg-size);
  line-height: var(--type-heading-lg-lh);
  font-weight: var(--type-heading-lg-weight);
  letter-spacing: var(--type-heading-lg-tracking);
}
.type-heading-lg-fluid {
  font-family: var(--type-heading-lg-font);
  font-size: var(--type-heading-lg-fluid);
  line-height: var(--type-heading-lg-lh);
  font-weight: var(--type-heading-lg-weight);
  letter-spacing: var(--type-heading-lg-tracking);
}
.type-heading-lg-bold { font-weight: var(--type-heading-lg-weight-bold); }

.type-heading-md {
  font-family: var(--type-heading-md-font);
  font-size: var(--type-heading-md-size);
  line-height: var(--type-heading-md-lh);
  font-weight: var(--type-heading-md-weight);
  letter-spacing: var(--type-heading-md-tracking);
}
.type-heading-md-fluid {
  font-family: var(--type-heading-md-font);
  font-size: var(--type-heading-md-fluid);
  line-height: var(--type-heading-md-lh);
  font-weight: var(--type-heading-md-weight);
  letter-spacing: var(--type-heading-md-tracking);
}
.type-heading-md-bold { font-weight: var(--type-heading-md-weight-bold); }

.type-heading-sm {
  font-family: var(--type-heading-sm-font);
  font-size: var(--type-heading-sm-size);
  line-height: var(--type-heading-sm-lh);
  font-weight: var(--type-heading-sm-weight);
  letter-spacing: var(--type-heading-sm-tracking);
}
.type-heading-sm-fluid {
  font-family: var(--type-heading-sm-font);
  font-size: var(--type-heading-sm-fluid);
  line-height: var(--type-heading-sm-lh);
  font-weight: var(--type-heading-sm-weight);
  letter-spacing: var(--type-heading-sm-tracking);
}
.type-heading-sm-bold { font-weight: var(--type-heading-sm-weight-bold); }

.type-heading-xs {
  font-family: var(--type-heading-xs-font);
  font-size: var(--type-heading-xs-size);
  line-height: var(--type-heading-xs-lh);
  font-weight: var(--type-heading-xs-weight);
  letter-spacing: var(--type-heading-xs-tracking);
}
.type-heading-xs-fluid {
  font-family: var(--type-heading-xs-font);
  font-size: var(--type-heading-xs-fluid);
  line-height: var(--type-heading-xs-lh);
  font-weight: var(--type-heading-xs-weight);
  letter-spacing: var(--type-heading-xs-tracking);
}
.type-heading-xs-bold { font-weight: var(--type-heading-xs-weight-bold); }

/* Body */
.type-body-xl {
  font-family: var(--type-body-xl-font);
  font-size: var(--type-body-xl-size);
  line-height: var(--type-body-xl-lh);
  font-weight: var(--type-body-xl-weight);
  letter-spacing: var(--type-body-xl-tracking);
}

.type-body-lg {
  font-family: var(--type-body-lg-font);
  font-size: var(--type-body-lg-size);
  line-height: var(--type-body-lg-lh);
  font-weight: var(--type-body-lg-weight);
  letter-spacing: var(--type-body-lg-tracking);
}

.type-body-md {
  font-family: var(--type-body-md-font);
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
  font-weight: var(--type-body-md-weight);
  letter-spacing: var(--type-body-md-tracking);
}

.type-body-sm {
  font-family: var(--type-body-sm-font);
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-lh);
  font-weight: var(--type-body-sm-weight);
  letter-spacing: var(--type-body-sm-tracking);
}

.type-body-xs {
  font-family: var(--type-body-xs-font);
  font-size: var(--type-body-xs-size);
  line-height: var(--type-body-xs-lh);
  font-weight: var(--type-body-xs-weight);
  letter-spacing: var(--type-body-xs-tracking);
}

/* Body bold — emphasis weight (Medium 500), applied with .type-body-* (mirrors
   Figma Body/*-bold). Weight-only override, like the display/heading -bold classes. */
.type-body-xl-bold,
.type-body-lg-bold,
.type-body-md-bold,
.type-body-sm-bold,
.type-body-xs-bold { font-weight: var(--type-body-emphasis); }

/* Label — text-box-trim mirrors Figma's leadingTrim: CAP_HEIGHT on Label/* text
   styles, so containers (badges, buttons, chips, form-labels) render at the
   same total height as their Figma comps. Modern browsers only (Safari 18.2+
   / Chrome 133+); older browsers ignore the unknown property and render with
   default line-height leading (~7px taller). */
.type-label-lg,
.type-label-md,
.type-label-sm,
.type-label-xs {
  text-box-trim: trim-both;
  text-box-edge: cap alphabetic;
}

.type-label-lg {
  font-family: var(--type-label-lg-font);
  font-size: var(--type-label-lg-size);
  line-height: var(--type-label-lg-lh);
  font-weight: var(--type-label-lg-weight);
  letter-spacing: var(--type-label-lg-tracking);
}

.type-label-md {
  font-family: var(--type-label-md-font);
  font-size: var(--type-label-md-size);
  line-height: var(--type-label-md-lh);
  font-weight: var(--type-label-md-weight);
  letter-spacing: var(--type-label-md-tracking);
}

.type-label-sm {
  font-family: var(--type-label-sm-font);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  letter-spacing: var(--type-label-sm-tracking);
}

.type-label-xs {
  font-family: var(--type-label-xs-font);
  font-size: var(--type-label-xs-size);
  line-height: var(--type-label-xs-lh);
  font-weight: var(--type-label-xs-weight);
  letter-spacing: var(--type-label-xs-tracking);
}

/* Label/xs caps — bundles uppercase + 5% tracking + Medium 500.
   This is the canonical 10px UPPER style (formerly Caption/sm-caps). */
.type-label-xs-caps {
  font-family: var(--type-label-xs-font);
  font-size: var(--type-label-xs-size);
  line-height: var(--type-label-xs-lh);
  font-weight: var(--type-label-xs-weight);
  letter-spacing: var(--type-label-caps-tracking);
  text-transform: uppercase;
}

/* Label caps — uppercase + 5% tracking at each label size (mirrors Figma Label/*-caps). */
.type-label-lg-caps {
  font-family: var(--type-label-lg-font);
  font-size: var(--type-label-lg-size);
  line-height: var(--type-label-lg-lh);
  font-weight: var(--type-label-lg-weight);
  letter-spacing: var(--type-label-caps-tracking);
  text-transform: uppercase;
}
.type-label-md-caps {
  font-family: var(--type-label-md-font);
  font-size: var(--type-label-md-size);
  line-height: var(--type-label-md-lh);
  font-weight: var(--type-label-md-weight);
  letter-spacing: var(--type-label-caps-tracking);
  text-transform: uppercase;
}
.type-label-sm-caps {
  font-family: var(--type-label-sm-font);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  letter-spacing: var(--type-label-caps-tracking);
  text-transform: uppercase;
}

/* Treatments */
.type-caps {
  text-transform: uppercase;
  letter-spacing: var(--type-label-caps-tracking);
}

.type-emphasis {
  font-weight: var(--type-body-emphasis);
}

/* ─── spacing-tokens.css ─── */

/* ═══════════════════════════════════════════════════════════════
   Cuemath Spacing System — CSS Tokens
   Source of truth for all spacing variables.

   14 steps · Base-4 scale with half-steps for fine control
   Scale: 2–4–8–10–12–16–20–24–32–40–48–64–80–96
   Naming: literal pixel values (--space-16 = 16px)

   Import: @import url('spacing-tokens.css');
   Or link: <link rel="stylesheet" href="spacing-tokens.css">
   ═══════════════════════════════════════════════════════════════ */

:root {

  /* ─── Spacing Scale ─── */

  --space-2:   2px;   /* Hairline gaps, optical adjustments */
  --space-4:   4px;   /* Inline icon gap, tight element pairs */
  --space-8:   8px;   /* Default inline gap, compact padding */
  --space-10: 10px;   /* Small-control side padding (e.g. medium badge) */
  --space-12: 12px;   /* Small component padding, list item gap */
  --space-16: 16px;   /* Default component padding, stack gap */
  --space-20: 20px;   /* Medium component padding */
  --space-24: 24px;   /* Section-internal group spacing */
  --space-32: 32px;   /* Large group spacing, card padding */
  --space-40: 40px;   /* Section padding (mobile) */
  --space-48: 48px;   /* Section padding (tablet) */
  --space-64: 64px;   /* Section padding (desktop) */
  --space-80: 80px;   /* Major section breaks */
  --space-96: 96px;   /* Hero / page-level vertical rhythm */
}

/* ─── surface-tokens.css ─── */

/* ═══════════════════════════════════════════════════════════════
   Cuemath Surface System — CSS Tokens
   Border radius, elevation, overlays, z-index.

   Design direction: sharp geometry, warmth through precision.
   Radius is applied deliberately: page chrome stays sharp; controls and
   overlays take a small 2–8px softening; full is the pill.

   Import: @import url('surface-tokens.css');
   Or link: <link rel="stylesheet" href="surface-tokens.css">
   ═══════════════════════════════════════════════════════════════ */


/* ═══════════════════════════════════════════════════════════════
   LIGHT THEME
   ═══════════════════════════════════════════════════════════════ */

:root {

  /* ─── Border Radius ───
     Sharp is the default for read-only page chrome. A small scale softens
     interactive surfaces and floating overlays so they read as crafted, not
     default; full is the pill.
       none  read-only chrome — read-only cards, tabs, table, accordion
       xs    2px — inner / small parts: checkbox, dropdown menu item, single-line tooltip
       sm    4px — controls + overlays: buttons, input fields, dropdown trigger + menu,
                   multiline tooltip, toast
       md    8px — interactive cards (clickable / selectable / expandable)
       lg    16px — modal / dialog, mobile bottom sheet
       full  pills & circles — chips, count badges, toggles, avatars, dots
  */

  --radius-none: 0;
  --radius-xs:   2px;
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   16px;
  --radius-full: 9999px;


  /* ─── Elevation / Shadows ───
     Warm-tinted, never pure black. As of 2026-09-20 the tint comes off the
     ramp instead of a hand-mixed charcoal, and it uses the SAME tier the eight
     alpha-derived colour tokens use: --neutral-13, which is --text-primary's
     tier. One ink for everything the system renders semi-transparently.
     Opacities are unchanged. 5 levels: xs → xl.
  */

  --shadow-color:     var(--neutral-13);   /* the ink tier — #1D1B18 in light */
  --shadow-highlight: var(--neutral-1);    /* its mirror partner — #FAF8F7; the dark catch-light */

  --shadow-xs:  0 1px 2px  color-mix(in srgb, var(--shadow-color) 6%, transparent);
  --shadow-sm:  0 1px 3px  color-mix(in srgb, var(--shadow-color) 8%, transparent),
                0 1px 2px  color-mix(in srgb, var(--shadow-color) 4%, transparent);
  --shadow-md:  0 4px 8px  color-mix(in srgb, var(--shadow-color) 8%, transparent),
                0 2px 4px  color-mix(in srgb, var(--shadow-color) 4%, transparent);
  --shadow-lg:  0 8px 24px color-mix(in srgb, var(--shadow-color) 10%, transparent),
                0 4px 8px  color-mix(in srgb, var(--shadow-color) 4%, transparent);
  --shadow-xl:  0 16px 48px color-mix(in srgb, var(--shadow-color) 12%, transparent),
                0 8px 16px  color-mix(in srgb, var(--shadow-color) 4%, transparent);


  /* ─── Overlays / Scrims ───
     One scrim, on the ramp as of 2026-09-20 (it was a hand-mixed charcoal
     before, the last functional colour that reached no tier at all).
     Tier 13 in light and tier 1 in dark are the same physical colour,
     #1D1B18, so the scrim holds still while everything around it flips.
     That is the same ink --text-primary and the three -soft borders mix from.
     light/heavy were removed 2026-09-19 — only ever used in the explorer demo.
  */
  --scrim: color-mix(in srgb, var(--neutral-13) 40%, transparent);


  /* ─── Focus Ring ───
     WCAG 2.4.7 keyboard focus indicator.
     Uses info-600 — high contrast on both light and dark, warm and cool surfaces.
     Applied via :focus-visible so mouse clicks don't trigger it.
  */

  --focus-color:  var(--raw-blue-600);  /* info-600 */
  --focus-width:  2px;
  --focus-offset: 2px;


  /* Hover state — see colour-tokens.css for --{accent}-6 (filled accents)
     and --neutral-2 / --neutral-3 (neutral surface hovers). The legacy
     --state-hover-darken / --state-hover-lighten tokens were retired
     2026-04-28 in favour of the unified ramp-step rule. */


  /* ─── Z-Index Scale ───
     Named layers for consistent stacking.
     Gaps between values leave room for edge cases.
  */

  --z-base:      0;
  --z-raised:    1;
  --z-dropdown:  100;
  --z-sticky:    200;
  --z-overlay:   300;
  --z-modal:     400;
  --z-toast:     500;
  --z-tooltip:   600;   /* above toast — transient pointer feedback must never be hidden */
}


/* ═══════════════════════════════════════════════════════════════
   DARK THEME
   Shadows shift to: inset white top-edge highlight + dark drop.
   The inset lightens the top edge of any surface (works on any colour).
   Overlays use higher opacity to dim an already-dark page.
   ═══════════════════════════════════════════════════════════════ */

[data-theme="dark"] {

  /* ─── Elevation / Shadows ───
     The drop colour stays pure black here, and it is the one deliberate step
     off the ramp in the whole colour system. Dark surfaces sit between
     #161412 and #292522 while the darkest palette step IS #161412, so a
     ramp-coloured shadow has no darkening power left: on --neutral-0 it would
     be invisible, and on --neutral-2 it reads at roughly half the depth of
     black. A shadow has to be darker than what it falls on. The inset
     catch-light does come off the ramp — tier 13 is dark mode's ink, the
     mirror of the tier the light drop uses.
  */

  --shadow-color:     hsl(0 0% 0%);        /* deliberate exception — see above */
  --shadow-highlight: var(--neutral-13);   /* the ink tier in dark — #FAF8F7 */

  --shadow-xs:  inset 0 1px 0 color-mix(in srgb, var(--shadow-highlight) 4%, transparent),
                0 1px 2px color-mix(in srgb, var(--shadow-color) 20%, transparent);
  --shadow-sm:  inset 0 1px 0 color-mix(in srgb, var(--shadow-highlight) 6%, transparent),
                0 2px 8px color-mix(in srgb, var(--shadow-color) 24%, transparent);
  --shadow-md:  inset 0 1px 0 color-mix(in srgb, var(--shadow-highlight) 6%, transparent),
                0 4px 16px color-mix(in srgb, var(--shadow-color) 32%, transparent);
  --shadow-lg:  inset 0 1px 0 color-mix(in srgb, var(--shadow-highlight) 8%, transparent),
                0 8px 32px color-mix(in srgb, var(--shadow-color) 36%, transparent);
  --shadow-xl:  inset 0 1px 0 color-mix(in srgb, var(--shadow-highlight) 8%, transparent),
                0 16px 48px color-mix(in srgb, var(--shadow-color) 44%, transparent);


  /* ─── Overlays / Scrims ───
     Tier 1 in dark is the same #1D1B18 that tier 13 is in light. */
  --scrim: color-mix(in srgb, var(--neutral-1) 60%, transparent);
}

/* ─── motion-tokens.css ─── */

/* ═══════════════════════════════════════════════════════════════
   Cuemath Motion System — CSS Tokens
   Source of truth for all transition timing.

   4 durations · 6 easing curves · 2 stagger steps
   UI transitions only — not content animations (badges, stickers, Lottie).

   Import: @import url('motion-tokens.css');
   Or link: <link rel="stylesheet" href="motion-tokens.css">
   ═══════════════════════════════════════════════════════════════ */

:root {

  /* ─── Durations ─── */

  --duration-instant: 100ms;  /* Hover states, toggles, colour changes */
  --duration-fast:    150ms;  /* Button transitions, small reveals, tooltips */
  --duration-normal:  250ms;  /* Dropdowns, popovers, accordions */
  --duration-slow:    400ms;  /* Modals, drawers, page transitions */


  /* ─── Easing Curves ───
     Snappy decelerate as default — things arrive confidently, settle quickly.
     No bounce, no overshoot, no lingering.
  */

  --ease-default:  cubic-bezier(0.25, 0.1, 0.25, 1.0);  /* General purpose — slightly softer than ease */
  --ease-out:      cubic-bezier(0.16, 1.0, 0.3, 1.0);    /* Elements entering — fast start, gentle landing */
  --ease-in-out:   cubic-bezier(0.65, 0.0, 0.35, 1.0);   /* Symmetrical — modals, theme switches */
  --ease-m3-standard: cubic-bezier(0.2, 0, 0, 1);       /* M3 standard — label floats, form controls */

  /* ─── Added for flow-level motion (Prototype system) ─── */

  --ease-in:      cubic-bezier(0.4, 0.0, 1.0, 1.0);   /* Exits — accelerate away, no linger */
  --ease-affirm:  cubic-bezier(0.22, 1.0, 0.36, 1.0); /* Affirm mode — confident decelerate, no overshoot */

  /* ─── Stagger (group choreography) ─── */
  --stagger-tight: 40ms;   /* dense lists */
  --stagger-loose: 80ms;   /* cards / larger items */
}

/* ─── pattern-utilities.css ─── */

/* ═══════════════════════════════════════════════════════════════
   Cuemath Pattern Utilities — CSS Background Patterns
   Decorative background textures using CSS gradients + SVG refs.

   Usage: Add `.pattern-bg` + a pattern class to any container.
   Density: `.pattern-sparse` / `.pattern-medium` (default) / `.pattern-dense`

   Import: @import url('pattern-utilities.css');
   ═══════════════════════════════════════════════════════════════ */


/* ─── Base Container ─── */

.pattern-bg {
  position: relative;
  overflow: hidden;
}

.pattern-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0.4;
  transition: opacity var(--duration-normal) var(--ease-default);
}

.pattern-bg > * {
  position: relative;
  z-index: 1;
}


/* ═══════════════════════════════════════════════════════════════
   PATTERN TYPES
   ═══════════════════════════════════════════════════════════════ */

/* ─── Dot Grid ─── */

.pattern-dot-grid::before {
  background-image: radial-gradient(
    circle,
    var(--raw-stone-400) 1px,
    transparent 1px
  );
  background-size: 16px 16px;
}

/* ─── Diagonal Lines ─── */

.pattern-diagonal::before {
  background-image: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 7px,
    var(--raw-stone-400) 7px,
    var(--raw-stone-400) 8px
  );
}

/* ─── Crosshatch ─── */

.pattern-crosshatch::before {
  background-image:
    repeating-linear-gradient(
      45deg,
      transparent,
      transparent 7px,
      var(--raw-stone-400) 7px,
      var(--raw-stone-400) 8px
    ),
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 7px,
      var(--raw-stone-400) 7px,
      var(--raw-stone-400) 8px
    );
}

/* ─── Hexagonal (SVG reference) ─── */

.pattern-hexagonal::before {
  background-image: url('./patterns/hexagonal.svg');
  background-size: 48px 48px;
}


/* ═══════════════════════════════════════════════════════════════
   DENSITY MODIFIERS
   ═══════════════════════════════════════════════════════════════ */

/* Sparse — wider spacing, lower opacity */

.pattern-sparse::before {
  opacity: 0.2;
}

.pattern-sparse.pattern-dot-grid::before {
  background-size: 24px 24px;
}

.pattern-sparse.pattern-diagonal::before {
  background-image: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 11px,
    var(--raw-stone-400) 11px,
    var(--raw-stone-400) 12px
  );
}

.pattern-sparse.pattern-crosshatch::before {
  background-image:
    repeating-linear-gradient(
      45deg,
      transparent,
      transparent 11px,
      var(--raw-stone-400) 11px,
      var(--raw-stone-400) 12px
    ),
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 11px,
      var(--raw-stone-400) 11px,
      var(--raw-stone-400) 12px
    );
}


/* Medium — default (no changes needed) */

.pattern-medium::before {
  opacity: 0.4;
}


/* Dense — tighter spacing, higher opacity */

.pattern-dense::before {
  opacity: 0.6;
}

.pattern-dense.pattern-dot-grid::before {
  background-size: 10px 10px;
}

.pattern-dense.pattern-diagonal::before {
  background-image: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 4px,
    var(--raw-stone-400) 4px,
    var(--raw-stone-400) 5px
  );
}

.pattern-dense.pattern-crosshatch::before {
  background-image:
    repeating-linear-gradient(
      45deg,
      transparent,
      transparent 4px,
      var(--raw-stone-400) 4px,
      var(--raw-stone-400) 5px
    ),
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 4px,
      var(--raw-stone-400) 4px,
      var(--raw-stone-400) 5px
    );
}


/* ═══════════════════════════════════════════════════════════════
   DARK THEME
   ═══════════════════════════════════════════════════════════════ */

[data-theme="dark"] .pattern-dot-grid::before {
  background-image: radial-gradient(
    circle,
    var(--raw-stone-600) 1px,
    transparent 1px
  );
}

[data-theme="dark"] .pattern-diagonal::before {
  background-image: repeating-linear-gradient(
    45deg,
    transparent,
    transparent 7px,
    var(--raw-stone-600) 7px,
    var(--raw-stone-600) 8px
  );
}

[data-theme="dark"] .pattern-crosshatch::before {
  background-image:
    repeating-linear-gradient(
      45deg,
      transparent,
      transparent 7px,
      var(--raw-stone-600) 7px,
      var(--raw-stone-600) 8px
    ),
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 7px,
      var(--raw-stone-600) 7px,
      var(--raw-stone-600) 8px
    );
}


/* ═══════════════════════════════════════════════════════════════
   ACCESSIBILITY
   ═══════════════════════════════════════════════════════════════ */

@media (prefers-contrast: more) {
  .pattern-bg::before {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pattern-bg::before {
    transition: none;
  }
}

/* ─── icons.css ─── */

/*
 * Cuemath Design System — Icon box
 * ----------------------------------------------
 * The single, shared icon primitive. Wrap an inlined library SVG
 * (context/design-resources/icons/library/*.svg — 24×24, currentColor)
 * in a .cm-icon box at a standard size. Components must use this rather
 * than hand-drawing icons or embedding bespoke SVGs.
 *
 *   <span class="cm-icon cm-icon-sm"><svg ...library svg... /></span>
 *
 * Colour comes from the parent (currentColor). Size via the size class
 * or by setting --icon-size directly (e.g. a component's own scale var).
 *
 * NEVER hand-draw an icon. Every icon in the system must come from the library
 * so a library redraw propagates everywhere:
 *   - in markup — inline the library svg and tag it <svg data-icon="<name>">
 *   - in CSS (mask/background affordances with no element of their own, e.g. the
 *     select chevron) — tag the declaration [> icon:<name> <]
 * scripts/icon-sync.js re-inlines library art into both forms; its --check mode
 * runs in the pre-commit hook and REJECTS any untagged svg data URI in CSS.
 *
 * Scaling — READ THIS BEFORE PICKING A SIZE. Library icons are drawn at 1.8px
 * on a 24×24 grid and shipped outlined (strokes converted to fills, no live
 * stroke, viewBox stays "0 0 24 24" — the old 1.25× zoom is gone). The SVG
 * fills the box, so the whole glyph including its stroke scales with it:
 *
 *     effective stroke = 1.8 × box ÷ 24
 *     12px → 0.90    14px → 1.05    16px → 1.20    18px → 1.35    24px → 1.80
 *
 * Choosing a box size IS choosing a stroke weight. The system rule is
 * box = text size + 2px, which lands the stroke at 1.05–1.35px and optically
 * matches the text beside it (Input: 14px text → 16px icon; 16px → 18px).
 *
 * That rule only has an input when there IS text beside the glyph. Two
 * deliberate exceptions, both where the reference is something other than
 * adjacent body text:
 *   · Accordion — icon equals its heading size, because the headings are
 *     bold 700 and carry the heavier stroke.
 *   · Icon-only buttons — icon is half the button (16/20/24 for 32/40/48),
 *     because there is no label to match. A label-sized icon alone in the
 *     box reads small and light. See components/button.css.
 *
 * Requires: base.css
 */

.cm-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: var(--icon-size, 24px);
  height: var(--icon-size, 24px);
  color: inherit;
}

.cm-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Standard sizes (px) — default box is 24. Components may also set
   --icon-size directly for a custom/responsive size. */
.cm-icon-16 { --icon-size: 16px; }
.cm-icon-20 { --icon-size: 20px; }
.cm-icon-24 { --icon-size: 24px; }  /* default */
.cm-icon-28 { --icon-size: 28px; }
.cm-icon-32 { --icon-size: 32px; }
.cm-icon-40 { --icon-size: 40px; }

/* ─── recipes.css ─── */

/* ═══════════════════════════════════════════════════════════════
   Cuemath Design System — Behaviour Recipes
   ----------------------------------------------------------------
   Shared cross-cutting *behaviour* (not colour, not layout). These
   are interaction states that every interactive component repeats
   verbatim: the focus ring, the disabled treatment, the press-down.

   Why a shared file instead of utility classes in markup:
   components keep their existing class hooks (.btn, .card-interactive,
   …), so existing pages render identically with no markup change. The
   canonical rule lives here once; component files no longer repeat it.

   Load order: this file is concatenated in the FOUNDATION block of the
   bundle (after icons.css, before any component CSS). That makes these
   shared defaults; a component file loading later can still override.

   Requires: base.css (focus + motion tokens).
   ═══════════════════════════════════════════════════════════════ */


/* ================================================================
   FOCUS RING — keyboard focus indicator
   One ring, two offsets:
     • default  → sits just outside the control (--focus-offset)
     • inset    → drawn inside the control's box, for items that sit
                  flush inside a bounded container (menu items, tabs,
                  table header cells, bottom-nav items) where an
                  outside ring would be clipped or collide.
   ================================================================ */

.btn:focus-visible,
.btn.is-focus,
.card-interactive:focus-visible,
.card-interactive.is-focus,
.card.is-selected:focus-visible,
.accordion-trigger:focus-visible,
.filter-chip:focus-visible,
.cm-checkbox input:focus-visible + .cm-checkbox-box,
.cm-radio input:focus-visible + .cm-radio-circle,
.cm-toggle input:focus-visible + .cm-toggle-track,
.cm-radio-card:has(input:focus-visible),
.cm-link:focus-visible,
.page-item:focus-visible,
.badge-interactive:focus-visible,
.nav-link:focus-visible,
.breadcrumb-item a:focus-visible,
.breadcrumb-link:focus-visible,
.nav-toggle:focus-visible,
.kpi-card:focus-visible,
.modal-close:focus-visible,
.toast-close:focus-visible,
.toast-action:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}

.dropdown-item:focus-visible,
.nav-bottom-item:focus-visible,
.th-sortable:focus-visible,
.tab:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: calc(-1 * var(--focus-width));
}


/* ================================================================
   DISABLED — uniform "off" treatment
   Fade out, kill pointer events, show the not-allowed cursor.
   Components that need MORE (e.g. collapsing inner text to one
   colour) add those extra rules in their own file; this is the
   shared base every disabled control shares.

   Note: the Input field (.cm-field-disabled) is intentionally NOT
   here — it splits the fade onto the wrapper and the cursor onto an
   inner element, so it stays a special case in input.css.
   ================================================================ */

.btn[disabled],
.btn.is-disabled,
.card[aria-disabled="true"],
.card.is-disabled,
.dropdown-item[disabled],
.dropdown-item.is-disabled,
.filter-chip:disabled,
.filter-chip.is-disabled,
.cm-checkbox.is-disabled,
.cm-radio.is-disabled,
.cm-toggle.is-disabled,
.cm-radio-card.is-disabled,
.nav-link[disabled],
.nav-link.is-disabled,
.page-item[disabled],
.page-item.is-disabled,
.tab[disabled],
.tab.is-disabled,
.cm-link[aria-disabled="true"] {
  opacity: 0.4;
  pointer-events: none;
  cursor: not-allowed;
}


/* ================================================================
   ACTIVE PRESS — tactile press-down on click
   ================================================================ */

.btn:active,
.btn.is-active,
.card-interactive:active,
.card-interactive.is-active,
.dropdown-item:active,
.page-item:active {
  transform: scale(0.98);
}


/* ================================================================
   CUSTOM SCROLLBAR — thin neutral thumb on a 2px page-bg ring
   The shared treatment for every internally-scrolling surface, so
   they all match. The thumb's border uses --neutral-1, which flips
   with the theme, so no separate dark-mode border rule is needed.
   (Tabs deliberately HIDES its scrollbar — it is not included here.)
   ================================================================ */

.cm-field-wrap textarea,
.dropdown-scroll,
.table-wrap {
  scrollbar-width: thin;
  scrollbar-color: var(--raw-stone-300) transparent;
}
.cm-field-wrap textarea::-webkit-scrollbar,
.dropdown-scroll::-webkit-scrollbar,
.table-wrap::-webkit-scrollbar { width: 8px; height: 8px; }
.cm-field-wrap textarea::-webkit-scrollbar-track,
.dropdown-scroll::-webkit-scrollbar-track,
.table-wrap::-webkit-scrollbar-track { background: transparent; }
.cm-field-wrap textarea::-webkit-scrollbar-thumb,
.dropdown-scroll::-webkit-scrollbar-thumb,
.table-wrap::-webkit-scrollbar-thumb {
  background: var(--raw-stone-300);
  border: 2px solid var(--neutral-1);
  border-radius: var(--radius-full);
}
.cm-field-wrap textarea::-webkit-scrollbar-thumb:hover,
.dropdown-scroll::-webkit-scrollbar-thumb:hover,
.table-wrap::-webkit-scrollbar-thumb:hover { background: var(--raw-stone-400); }

[data-theme="dark"] .cm-field-wrap textarea,
[data-theme="dark"] .dropdown-scroll,
[data-theme="dark"] .table-wrap { scrollbar-color: var(--raw-stone-700) transparent; }
[data-theme="dark"] .cm-field-wrap textarea::-webkit-scrollbar-thumb,
[data-theme="dark"] .dropdown-scroll::-webkit-scrollbar-thumb,
[data-theme="dark"] .table-wrap::-webkit-scrollbar-thumb { background: var(--raw-stone-700); }

/* ─── base.css (reset + body defaults) ─── */

/* ═══════════════════════════════════════════════════════════════
   Cuemath Base — Shared foundation for all components
   Import this one file to get tokens, reset, fonts, and defaults.

   Usage: @import url('base.css');
   ═══════════════════════════════════════════════════════════════ */



/* ─── Reset ─── */

*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}


/* ─── Font Faces ─── */







/* ─── Body Defaults ─── */

body {
  background: var(--neutral-1);
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: var(--type-body-lg-size);
  line-height: var(--type-body-lg-lh);
  font-weight: var(--type-body-lg-weight);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ─── Embedded Fonts (base64 WOFF2) ─── */

@font-face {
  font-family: 'Athletics';
  src: local('Athletics-Light'),
       url('data:font/woff2;base64,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') format('woff2');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Athletics';
  src: local('Athletics-Regular'), local('Athletics'),
       url('data:font/woff2;base64,d09GMgABAAAAAIO8ABEAAAABaUAAAINVAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoEUG4GkLBymfgZgAIoaCIEOCZptEQgKg45Ygt9fATYCJAOSXguJPgAEIAWKfQekOAyBMVvXS5ECinLt+PhDAnaTqg3P8HTWslwQ3TCdBd2v5xo49qmtUivYNu1ivVm1EIa+b8j+/////xXJYox5f+o9gKqQalZVtbVBTJDLBqMo4yZ4Uo6mD8OIKSGSyZEdc0CkBbWYk3FvL4qUxZsEyYqL5u6uK5trRtp6E7X7thjH2Jv5jCORi2MnHs1kfaR5RkU5Gw826ZoQESTjLjdVfnPj9+QB0hWPEBTxuDxi3K9GGDCQcjYrMo5AI3f6VGAuGvbeCCoXh+92WQs7jViIMDLNtFJvWOwZLybo6ahw3IsTmbddMpJ9N/jYGz/MY/qhh+gqLs8d+aTT78vUpS9sMpWoizf67dx921BtgCDrVlbcrfPUTrQr71lu8mRLF3LbavuDqgZ/9rqFNxEXNrX87X/ZerzxupgdmQmy//g2Dhho351789iSk5UOHR74jY5SR9YYuzBUG3TIUkeePPG/X+Wten9mtycI6MIWVRSgRJQAqHKiCFTYZRXqMPXPw9x6/2+MRTHYiEPBbVQIDEaPSBFHpOihgBWIiIiAjYWIqBjHUSUCKjmLI9poDnEWcp5SFhYM0HSWAjVJ0zapRxpp3E9yF7vkLvGapGJQQUrBi2oxLTCYwQTS34Dxe8Rm2DOYGEyRiVNRY0D27D0AyS8fIkeeFJBjoYCciIzRYRkFKAzxQZRTbHXnk62zYqUotcIAXhHJ8IqDKqQBLKGhpX2Zefrz7Pv/+fd5b9LNnHRLYhC0UNfuuv3giv97pZeHCVSHgKaWrFC6ECP/dulxUeNTOnvfrlZi2wJL9lmms8g+gZH2PrMC3DX5XQXUZlKlqWPVWu7vzOzf9gRIArB/kGEX+8QB9lQ+OsIiaJCeYAMOcB48IF8xwekfGdz9UGyKZqSEmRCSELKQBcEbtK266qrim/qb/ttvz0w5UV1RVgwWW4IEhlEkTCYZTybZANim5rfg0n7KMquABCPC9l2WsZTq95qmMwAp2X+wDrm02xCLRsoVLwM7u4sTV3d7lx3akMBWbB1jYPA9KlR6LrWYSxsnB2zZgQOKLCt4UGL99/i90m6jB9jL9v5mrFkaCdTWNBl6v1NVyzTemKqW9mUSbCLhu5btTJ2kS6gCkbRAj9vXZX+zZC334pUJGnIv2aZbVCo8h0wP8V8A//0PIBDQvjfT7O5n/p8BQBKG3OHAaA9nvMFiqlBQgoLc3vIKHK6cC3mbLJJUQY7wskQmyaRI52d7Wy4vM9fn//1brsGwQylF4VpVJxVGEISnG40lHocC/h9t/awowdPc4eG7mQ4fLGvg/3uCJiu/qCnq6aqTwQfmOee1sFASfGiA7sE1rgACrBwjFw6SPBWApg7IiBNCFoaNOztrXiECLIazIsAiA2yBKKmkuXsxOdLzft2rOQIalwgB4//UP+z/BDRdRAUfaz0Pnd4pF4MdU/tStY5c/vuypw3712XJEZnIJBL4kNz8/+Y+bWbuQoHGPbtCpl4FSpP7s/QKSQFoalIkqwCnnFO1pKqAhLA9dbXVFaY8z/8yZ/Pnpo+aLUZ9GWHWypT+kq42c3xKBYwZq6EbhcY48A6Jk8x/qauuVZIFpqNpT+jOsCnz5nAhbYpZP1Xp16+SKCUjlWQjyQacaCQ5y02Xqkp0WbZ5Ju2zmwnAJuiIgdkOybJsg0P3YqADzYQQjpugJ4fTnnZvMRznOJfjHvdyXIL65S+7XV99+SVyJXKFgyztQF5CCI5HUChkSsLBCYk7YVau/PJCkv6k4bw7/+NU8GgwFNJ5Pjnbcv6yOz5QMNfzBbQmT6pWRP5VqFjAAmDhH3fp368t1eyptQUtbq0EzugssWM4AAoe3qXT5fKZw23lchWqTo70ulNGLqw1XKk6ieRhJG4tJVGGK11ZOu2zDMRjCF0OEg5zaY7UC3WrPdSacfcMKxNgBABa4wHJiPiv6AH1EQdBTiEFYfTwXy1/72lWGLpqPUKisDyHPBIlX+ghziVFhwYdsuyFH0JyEi8+jOlC7sCTluYOqQYz1/6Z7SgtCJimQai49DlTM3qwrDyloKzKE4124vv55Nz9W3ApIZQSgi/necYTnhDCaEYLuZB7KyNgdt0gpfbULEvmtaQk4HHmW3nSzOxpTyWIEsQggjHGGGOC2//hst8f2dbfw8PmtDEK2FiwhhH6OwfZ9PsLAyZd92RmFQIETSCBiEJ7+j9B20QMH0RQsAkG2/La+lYG57kCrMv/7MVDIIDocIG4CYaEWQGJEQ9JcB5yUSGk2GVInR5In7uQ+15DxkxBPkcAFAUkhmKbFY6HBcq9B0B50EMoT0qgjH90qJYDESrdMgQIWHK1V/CpH/ELBualX0jYBJqIgPlc1+JWyCd90kMbpw8CwdqwZYd8adLn+p0hNZjXLTGfF5ueGliR4YDPVUvdn7gD0R7cU0yfEhhTInOqwJqS2FNFpSmZ8ymKskpcf6U1fhMkD/Y6Itt5hSrVa6nbvrYifj30emjEmOnmV4tI2DT+L0KgQKYMKv5W4vApBXRqDFmwI/FDAuvNfyD/+mnS9PmNRO6T6fSicMlJgG/PYS9Myw7/XnDED4BOfdN9+i3ZkQoVLV6WSreMR0a6CZOnzRycbxuKL7cbjY0zLYX4wRntebJXXazGj9TmhYKvsXWFy2fGNbMn196qMFHLawddMh/9nIWfZ65sSXTSyZHasjjiedHwupYVvLYsRWCYxVj90Prz1s2h2cWjk7bPNj6VX1xqlwQPeiFeNd2LJLORRQ4DDTLWVNQFLSZjdW5eqwXAPjRsZqCwWamFDRcUttbSaGs+aLoN8pBtb2Bnvhm5TbJdXQWfdGeTiotPF5uIFoCDUp9lxDdX+T7PeMajvm4EBBrgIjznrcVOvjzn2cIw4k+q+GgRq9JspVJpvVKttAScYiXqOWzLEmU4NkgzUEhEtpPNJROiYUqUJmU0w0JNaP4K4k/vkuehwa/r66w3AyL/J8qAvH9jt2ZukrARCPiTlgRl7It3ECoxEqgNX4P676Wnsf+n0wz/1ZoPxZYp72FhXiiEgGGCTsDhXX6sKRK2WqqtJQ/lyfr+c6kr8d4snUA9iPbQRSaYora3vvFS3YBi9IEYV41AJv4HN9y7NcgCM5CGtbK+Ntqusik225bbG/ah7dIaQgEZUyil0BHKpVKSUS8BMsljTGTzfLZiVw7nTZzBDdzOeVbY5kSoCmpiKhJZJ+XSIO2SF0VMQUJlRmYdkcRUBPIar+YLYQwnSLESCTiIXFRChkEooGqlyzVD63W4bi1du86uns4YafjSuLcpOKc/Z11ZU/azHyulKA2SYXITeb7LczI3pPQbh5dLz1XnGnNvcZ4rcyg8ipkSoHRSRijnVVJUVvLGQmWQRcxtz4/lL4ud3Pvcp7ysVJpqU0tq513mfcP7R1WFyqdaqSFqt0zPi2iyU6g0OoPJYnO4PL5AKBJLpCmnUKhSpS4u0gbNvSOPnjyXL3j15t2HTz774qtv+U/RL7/98de/7H8zOQIIRkDHwMTCzhdQCJ8gN0SLEWMmTJkxt5AFy79PA0yBDMl1Cm5guoWlHT2widzQO4v+R7neqUcdQnR1pxbc3/EzQQHFqdsl99tb7yAZsut3xg1Kbt25j+4X7cAgowhvb8ecjWNBarG0T3fZmDtJvZehu0Lq4KrLb43rBgGkE7obVIhrpw1FO1roc3I0MfeM2CDOKquL2+5pu26iFLulSvsAVV/D858luo7hBrp2bF1olrkHaZVzcuVbq05XE682WX3+squ1NfROI5niFnVnxkPWD3+H1F7J9E5G+BwhBmX88F/2A25xU0VoEFqkOdzR5/eALcY4DSH4U/+mORA+lP2iU5/K+cTpJ519KPdzeTX5rlxFe5XPq4pcelVNqL7qSunPtq6R0dKgtVT16COumY4tebTtaeTfimHqn79spOnFOvmq12PV7382/oXJXD/L5S++7PdfZv8zt7rY1cL46tm1vOay2qntD+z07kt9cGm2f35gkXHs7c6PXuVcn7s5K0b8BVv5/Cdel/Vy9eni2/5Cnr/lK1CoSLESpcqUq1CpSrVLalxWp94VV13bb5kib7ptkFHSttcp4tK9KffdAw898tgTT/Nnbxvyr2HPjXhB7qVXXntT/XbKu7eNTflPvPd//uEJH9P49yaW5SSmhhn4tLnVkZ6uzkxVJlcYm5iamV9i4uV84oelNiyza4kZJmVYQhO/LchuSRK/nSjuR9TzPy99EcMJR2QfcOqkHE/nHlP1l0vbWuv9Kd3ALW39wkfk2QJbPn4UVQrlrmmdyKh1hFqnoxnO/1HXRiGqxrTaEIY5JBN1k8GZEoS3ZL/h1PtyPnX6RWefkPuFvPzw/KeUv6biFZWy0Kq3XJpS85z6V1x5WmtEhtpiZzakPtSt4d8XDD/l+etG3L/47Cd/yutXvP/R+Icms/xc9vtdZLYo9geFwrWSpnSda/3BHe3f75tlzNMXmceHT/ae82/gpr6ah9lVnSy63nCDHbewyeekzvyyK8PNu4OmJ8XfJIYzsQ7HunzdFmgY2OBPtKG41Hmnhi6syytVVGqdhnVN1DfvaZ3UYUa3dT2iV59+AwbdqX8kGgaj1r2nxqX4yfkcfPHVt2ymImdBW6V2Yu/g6OSc8YnKtDNdHbTC/JQIrqlns8M2L9mu9p4DDeLujQpHdUHJBWiAJpltTrm0+m3doAf0gj7QDwbAILhD1TQyYNwXxhhjjDFuMEKoNyCEEEIItQiHENJzdbGD6CZ6qO8l+oh+YoAYbMo7k9dGCdySuoHHcyR8myf6cCXa2gEk9CYa2tohhBBCCCGEEB6Sf0Ojqm5D2jkdrvR0/kHqcKNbIxT8dybB5/QatmthabBUIYqieBajoNC0WFhYWFhYWC8J3oR1GE+mx49RSobBZq+CtgkRWEC7f0Y29E0cCOA9d9/n4Z8FImUHxhUbkJbB0v9+IJN/KRv02d+Q0Zc3R1MlmLhQJEZgYfP5CoJAjRGpe0nQeYnRJ/WVp7fXBNGCERm1U/sJxFHgG8AnnnuKLSXuhOef7VUcppH2Vx6k41ppaaBDmx8j+DyZwLHQsLCOaFGm0prCIOruFcXDi6dREjqBmdw+FkF1IIqWO9kJjV2paLlUKbz3M71BGTi4ybWNlTtq0c3vL5XpizwuS8dA1aXWt+xeGpAReIYSmo32eEgABs7yP/1hogq6aHiuSOurRucEbK62/wMkFFkSCxQczij+U4CCr46KdITYvOlB1FM4YkJOUa9F/JDgMaO7oCyEvEmkTe+FAzMRSh2gvbK5GT9eWzcNKmOFfBNqcn3Fcp9EkTTTLScsB8lirzG3HgG3LxCWNsVwDjvmlSKnLXH6Why/4wjPX00hHOPlMKOaS5RqUeWUTOI2fUaoaIIV6lFjrSggYp7B63MgUVhQguyCZnDH8S0ZQRQhWuD2mYbuN66eFAsUOAmGeKcswGdp1KI1SmeZJGTfQFVD3FpJZI5bcwTTZTOlF9glfkOZmcwoUdauhMmQhlgDStkL5zftzYrymGt5kXWZmEIUG7S5ztFmLwqW5OmWKbT0FhDEspmpASViDoEOYce0Pp01qzxRV37RLxXFhGXXlOoo5dtZ7WcCS1tQT0KHNhBFkbbfQ7vCEbC8tGcefAPmsnA9Uev6x/ItXxyqcRayAFqQOkWV2OAd42CJlhMwSmjLS8nhiYS4WuFPNk7vK8UlWy5VghrG1MwqVgqLFEhWWo9LWSlDY7Rufj4HSEkzAUvjMZShlEjzz8WB6AJu4XkbEdrjb8Tyma0VXpohIAVljZotBsCkS4pQiHw2Yl6XZQ4IPVmma6YF6Pp6HPpa4XvQJAzx0ntCOZEKfp4Gwg2HFJHP/oRSdM7sTNr2V4JwStqiIwD21BjvNO/NZ5Om3CXDANj4DZizj8POQGby+DzExfoLKHakz7F+DUrzE1M+tajMaLKC/BkwLOsRSGBoEotOuT26SOplaDMX5pVLVqim2ZcUA5rkVul8ll3vJvO6+cOFpbxqAYRXte/9sSKjGiwBotu+Yktj+dTRLih7KqzIds3r2xMtrI4uCdG7F0RdTZNyypU4+eFlWccU5CpnF6QqDDUrs9j1TDWnEXL02PJRu5RjHDNAbW5TRRA+EnFIL2/ALXXdPaxaqehJUw3xAzpPbKLWnYpPl4gk9OWw6xNPImdbREgUJaH9FlsjkkiRemvNq0pO4MhINnMUI6gsRJIyhAMdJNHISBaERNufmXa3qBhRWkj7aSeCXfI4beYL1eViF1xKYHdD3kFPJ677EuuWC35JN0SDKWqV4LA5MBA99VwNyWdqzmhSzAnkPBtpi4hbJEKG6SKwcllRCZa5mqHPTPSz8lIoCFKA9olGj65joIuCcYtJ5hzjuViD99vRMbNOLA5KmCh4aKcr4JpDyrMbarjS0OGI729kPAzGB5iXx25qIh5slgTTVphXxrp+elSfW+/MUhA3RfphcHvx9uSpxBmKaEMIColybQPHM6GabBgPBUUlnX0wIKXVCbEtzeRRXBsd0LG7cSyejILcZXshr23bjCxsOw2KSnL7KAjMCjE/n29GsoJOpMtoA32THCNVUG0Uon9fPoiSlpGEjBCYVKpNTEOV4RJ3MnTMWfEOMUZbM2W/DpkyhLz3D+gMr0kxC4LGAZIPPxOC6Z+JMg2z6uoI4r3LMRaHK632iTPSMeOBSWpPz0bJwAyQ/kRT/S7UQMQ57dYkWgxs854xY4aj0aO6GU+tbTrMEoGwIWe5GSeW1SIVVSYgTVVc2w+pb1IFw0p+ahoNdDajjEWM1GNrpCTSHa4AlKYLXpLhVW6EfAtFPMwMi2ar0ZiUzsiySlgOtyHERtp/Bvtnm2Vy3TctlmBbhjKRTldjOqS66vLsTL5vXShprWYXCTWX8QbLHzLPko4WcyHP9iDcYfNFQzEaFkZRYtkxH6frfiuYhQ2a1KaGSIgFy77GTWtVndJG2FrIPh+I4vbIUMBI4dq5eLJBRGPjGfghhOHZh+RYA4NzsGZpdT2xWYhvaEudBMRiu070Cp1v/98h+qpqOMEVt/avnUGvsPrLvE81Gjy9L0yasQReF5LtjO3osJ4oeN+bSLbkCOMKnsleL9PxikQ8kDAdN6vY/Q5pMeR3fzRhcUfJLHEvVpicEL35FuIox+4DzH8zL5jsKbWMKNspzvqC9qGlidsH4mjfBjdX3lvqUz+cls2at66XVkiyQasGXS6NfGENlzyJFUHdKG+PMAE46/1/OfU82iVKvmuDTp+k7k+RPBDtynibaTdCoSGHjTqfqwd5eI0sTCXbhiyHNttwZ7NdNDYQZsEm8PafNdssC76Mq9Kmvo+iHnn+1eadQM+BH+bDgvW40cqhayzaQwdsU9fiJfkb1b2qf6yStb4Fbo0tgQhs1AxK1w3CjEm6w3GxZqCLgLzp8iZsBsTa64y1U+wrrR1AIgkXvXlxAw7XNw2qdYSa2oYLm2KfVVGeH8hyHn6Fs5QY6h12rfRWf8ti5iyH1zlEu6ilfCYHzwsTTYU/IMsZxbOZHadUc0LZaGPabirVSurd/M3h1DtzRL8eV0AVRLJm0MBcUkFBqbQcoZGqEWbEEZuYjTtPbVbpSi8ZrdKem690I77FGz3govuN7cM1VO3r2CaikXj7wWRgO2jiAsa2JdlXvfIW7GIsvyPjNh0Y6LSSUmSvVwZwRueSoy8N7j6v2dSoBiAV2XmQz/HHa4vVXvuuyHJdpFrbYMOM06dMeMM/AhFs89wfPECwQga04S/Y08J9oaTShBRDKiG1kAaIDNJ2Z9Nt0END9XLgXuBhOPqQUfHBtJl8FgoRFXvohGUOfy584Mn4KgUybRp0G0yth4bCpZytUdN5Due9gBNWpKTbnVyXp3awsdMeZVY7r7fbMpluT8XfWO908s4zO5w9ysQ1aR8BSOZbV9HlnCR40dkvvtnbz+P6qOt4jGEu8hiO6eVvN4h++gjh72DZsAe4TcgXFMMqYbV3UQ1k2nTXDwLXADdBjsEeiqFgExvFB9NmstlmiKgnbOCO+GGGpyrZvYbY0ao+PL3X0NVp/ainNiD+yEHzoVkhNCuHZjXQ7Co0a4Fmt+469bvvaXEEYUkML+kWjcHscWj2xnuTvma/mo2ehpExqdBIK2k3Nq9vkfNnhIS+3c/7fzzfzPj+rjjsV9wb8yqN59Jn5vjP+QEgPh90Kok4qaRGriPMh5B9hmwOnPeYA3asSRXecICrHAl/BLerEJ2zFmhDJT48QzyS9PH9SMW9LBxxeBFnOhSiXDmB8zlqULpqRIvu/T8FnVjE2NLeB1AOQPeN4Np76LnunWQMvxRTvyoHslpVayuIpEwa+UJDVfyM6qqxapMHa+Zoi1z8OEIsOO84kaoyae7qK4eqFK7eNRqlK18l4KtuiuZCyRVZYT9d3d07pgdj5Wm25o5psVZqFJzAmWp7WkmUGoyQ6U7/Om3T2QUcM0gici1qtVNTweoHlHDhAFif/BTehn1ctHHo54SEVg6HZtmz6hg1tgvaOpxDFkPMfBU7aHVCcOJ5x5NPrhhKpKs5C8TmJZVpRoCesTRfsUNLbWcQ2N9L5XJrFA+46hxcMB0EMv4GLILDNduNNbiggyr4oeluz22Inbe0LM4DW3eBiV5AKRupuhKykByqybrlbcq6UAGWrNYM5DxLZlQMDLKG6eQoinGplMFUqAQ2xuLoXUftvoInyY5ksGzNHwuOjfwSxQ8osMC9203Oh6s3DJoNsfw4kDGWpxw0xCcVXCgC4ieWqgq0pHWrrWbhW6uF5p1Pvi3Kr8X5tyRpO0pqZyntLrUT5VbVpS73oMc9gSi1vQvlVVBZsF99t7pdW//UXke99UHIBy0+rf90BoyLajGwHhZEgxCRoaRZjNlhc4ppceVNW7BMes5IbKVCxWLUumaVZolt0OqWjdp02KZL0jv0GZTk3VRK892wOzoCqS1QaS/X2ZYO71duMwSlXqTPgTMbLjLZB+0HOFxAkY6MXDOGnDExC06PN5az05lUCUzBCcXAi58v4rmbHucqszqbJy9wGUbP+fJAni6hkMIXIqWscoqprAoll0rQclnQUycYuSKYuTZDrDTWgt1Ed6hACKViGl4IQbDMhFjLmUFPnCt6pYvEatSW0YA+q3svDMqb6J8ah6B4wDCAng2/e7gXgBcXWcCJ1FLrZTunxA3tHpMrPDoJY4hhCiH6vLShwIKcMkFNlVKst8GpZxpRJFMo8XAblH+WUEi7QOnIcyGbIySYZjzshRjvLWjx2Y+b83UleUwYeUxU85hwMgulvIIXrihIgIg4ACYBT6PS8S1IqRGs1Co2KtIdqGCC2jDTuYRiugQ53Xne0ENOgfOEMhSvw+BjoQiQnwkmBDgc+2wGQRYkIAImRvE4YiabgmB7fN0dk64Kg0llWT81NpfAU6doCKhCCVk6BsoNY7jeJHlTjZHMbLhiW5KdkCxsw8wgs526XJ8gSjCOGuIUQh09bCYofCkjagUnZrXqmni8TeZKTEhS3JlM25XGTt/PO5Cp1Dj8VFBQUFAKJbE1IlKlXCj3PGU1jbImRNmhFOUjm7RdV+H2EuVainIJfgwJVcaPQpkmxGCWQAmmDuqedstOPHVcsHR28UXVHplX95V9Ay5rYtafVrSww7S+ciDDBZ00LeoG3b5ld4mtuueHeeaXeivOjDIrVUyN+WM++B+Zxh35xHnZ9J32XV3gOcEGTzvcwG1u8s7g/W+7Hx554FX46LW34ZZ3PoXD59crwheffQsvfPc7vNc9fmCHIcLBG45KKYbf/OE/8EuQzTf/rXjSuk0xvkpQVhJtaClHiVoG1jCHSWPWKYRprysL7TJa227itNLd5PYeJhdgTYhBiBF5La+rvty8rl1O0HWQPTdwQwTloa0aMJIV0DVduE6BGGbkhFxKzjmPzKDhhXtfACmkw4o6BcUfEpW6jMwsZsF9Ewqbc5rbekTgx10IuvVS1KcfNkBHNBjMKWqh3L/G9YY52VusHw0cj41mxSSDSRJLP37aKIoreeP3JvSj/dc9ls5PAfMKx3CKQpEUIpFiIzlyWCols9bIGCQBS+6usdKFYYQEiKkug1xlu+xidqOdCGMmcQ6X3jPbpZOl6lAd25340LJjkfPFxBwJ27UyeweWO+43VqUJk3Sy8HR8FPMuTWiRP2tNqIaSewUwduJRoB87SPcyk33VZFR6Xqdg7uqSWUFVWlW1qX3BlKqjtEqrwNlkJ0XK4ChnUk86O1stVp1F52y0kBZn0pIoPT0WEC/ESoxEw14j8aWebaVtvaEftXaWkaNWhzMr0XwETMRxEEd+QHgMvbudNqB0qPrTLLGzMh53QnucRnzbyADgFGfrYr+y/ylCwMs6+JrIlRXzs/PucHaLUrxivJEHxSteI+kX731r/me9gHmB3QWrQtmZIZztojea36ZVv5zu1FH1y8/UxldG37J/tTjcYbSgmh/0SQuquFeOYGB1mS6Pd1k9rJcnc9bD+u2VwwytB9nqdI8zoubwYi9G9HwrLxrZBPn6bJUejRm3xzd3NeMXaJJxg5UrNhwTLBYnP334m5W8nSabNOILN95e46KdduevcLfTD8ymmLbjye4G8drGh8/6y098ONkXqOrlOsl0f5M08qeeD9e/JLv579+SVqwo7/K60QDxku11RLbzClXW9akVOxlucUunfvc9NeKN9/VkKqayyV+b2VZImHjm02XKunZKdxdy4slPoHDLxVpni8Q6JV2tVWSvDJlynJevVLX6uikbn0jJDd3uGzZqsvnROiJmrVbuS5Udnz5TVuxIeNZ+1b3KtgsUbrlY62yRKMXeOqMWn666TDnOy1eqWr0mN47b/8Rr1wvuemzYK2PGfW5+zMOw7RdxHSYBOg418wkZMmddO+wMTMuSXXnzFyxStFU2iC9JY3lyqv2OyHLGRYXK1ZSrY0Vyi1s69bvvqRFvvC+TY2Xy1+ZXm4KRManQoE23Nt4ZSu4EFsScuPMlFSrKyoU1C5s2SZAs3UHHZMuVd1m8+y1dB5WgVgOZNt0GPTRUy4/jtmvBqA+mzTSz7RJ4wWLjP7Y1r9m9njOMUE7PXzGdYnJMXBFbyUsfE+eC6HYvo4qtec/YRA/BUIHKVKEWaqUqtVFnCpSnBmJO/sE9E5Q7P8Gmd2eqgzKdiX9RqkaDGzoNemzEqEkzAVqO2NGix0uaNmveSSEg45ZK/DitQgKmEBEvfsZZplU68DEe2aZom6SJVPazt1T6GimlklNJzCe0r038kK+52DQVbWvrIcMM5Z9G+1UB2+CJQPbTwFVR70/LQU/o7JRNQ6bQD1ZCwPaLo1nwVPhA7ucouTNDMUDovLw/AyEUfyMhdPB29PpIp1TSaNRV77BsSnxgC4lP42kNohVWmzLTkSNX0BSOFJxAx8/xRBLSbrLj1GTFqsmU4UsWCOiMiRG2gMU1tdbvNms+ZU/VvuW0XQQh5tQSPb2nQ1ljBkJ2VVnwIgT6AWW6Orbjgr+14nu+ZqF8KRqP7/9vD2dw4fGQVkerrK76rnS1azUk63o3ull/Aw12ZwuHL2CBC1rwQha6sIUvYpFberCgodGLSVV0Q6dEmz5TVuzSI6jVnP1U3ZHDkr5s4UTOcDniCDelnWB90MigBad/vtCoIGq0CiuquJJKK6s8eoyYsaqIHSduvCqLtbQznS23c/DwT2pEw9sFzsyPPjykqA446JAMhx1x1DHHZYZb9RScy2d/rtL4BM4oYaLESZImS54Ch+EnCZTUFFmlSp0mLaKblpGEO1XfAdq7eWsJFWuLFBly5KvWpF23fnc99NQwuTfG4LhkiKDFzXiwzhYgZXUH2tXWolrVme+aDpZSfMtaSiFrO9TutrW8WXZdGaWW0J/Lru9waW0vetkNHSm9xFYsu7Gj7WlHK5fd1LH2llTMsps73r52FvuPiS1ltr/k4qB4QfGG4gPFF8oiKH5QFkPxh7IEihRuMrYWnWSkmgjvY0z5hQiRBE7RA3cuxI1GiUuu9zrxeHOmyRCsWQcM1XIWIHBd5gojDA6bQE+wol1rug28MBPklNwdSymO1h4HAumDoJLbEIfC4Z9WmfBt8bhmGIpXUvDY7p1vSkYJzArQb40pwRPTNh/PghdGFQcU5UALEKJUVQvvaYbkdNaDvkdJNm4oQfPCeRCkFqL84RhZs1vAR7ry0T53MQ+Cd1Op3YJXv1BtRKi1JKAOQzvsa5DvoCO2LfYmgXD4dBzBNN9PWwaAWswnOJo/Hd2qYwxZco9Pxm5R1RbO16nLAgytwDN1BiacoW80KkRjVFgIC1jSigqIYA0bOMIFHvBEQB14lJuZsA85QHuPJTck0EzGahEGEKUDg7G94ZkQzIHzRVMQ+Djh2XF3XULNW6etQ+9ZOHDaNJtcyC/t39lo62nwA/j16x93+6xPaK+ABGOfZwnka+DLaUgP2OgBEsjayXTf5483HMCm/ydM9JsiLpAA3CIdCcbYb7p5U0sru4bm8OvTLL6uPT9EArnJCXSCMulTDlWQjG51jupRzdNP2ir0InoZnUnn0KV0PR2mT6XPoi/P1cZnBBj1jI12zirt6jTmO34jv4VZxCxjCph2ZgOztaK94obwsc6KuT6dm7p6LkVAftd+eQZJeyer1b0oO3Qt9MuqlV9/pwW0hpBEoBI4pPuWfr4eKXFaW5lOo5fQ6V66jIP0+eAvdp2dsQqrBcnazCws2FLRUPE610uyXe9fAVGNT+kGRWa5/17DHHNFvy//7vhd/rvEGICXF9xyOKzycubL2y9PvFx8yfV2fPLupT7YlY/LneULAVj7Ubnfi48Aa34JkCL/8Ysbv/hUgJV/hiuGVw8nr7fvXf8ODn1dmV6DgJuAxxOCrt2rjQG5x6/3YV83ezD4pvr3IQLcGT+9BidU+D7Y1N+QHtp/XQ+///QO5u96K+1Bk6OhvqqqrqRnXaix85UdqLSevOe9qGDv6yrPxtvdPFk6DJkQs+PAlRsfIcKEixJjjW0S7LRLepcrr3a84vN1woVTBOFL1arToK/YDd5r6j7z1jvED2T3PeL5R0V0pNSJcXqxt90tv3s97n5PprxM7D0mcqmz0ZrGwn5T6vMOlTG3xkdHRfPsYK51ldPJTleIjNj8V0iniIZB2QJ/mE+LFTMLWVDlzZ8vP0EW968AG6213gYpQk3LkSVbrlPOOudvl5SpVOWWVtfdUOSpEUOGvfa8YS/N+uGX3zFgNBZQnKbgJKozlPxFRT6uAhx51BRTV4KvhqZy2qoJXDZPBT1X6Kpn4Bp9VxlrYqSRjXYibczJWPuHpRambrPVxV6PXo76ORvkZIDEHS7ucveAp8c8PPKQlyek5Bb51xIvBHsjwn+W+l+k95b5KNqkP01Ybtwq38T5KtYX8RFgcwAX+2lrGDaZgytDkJgi7I4JqfbEsS8Ve1P2yf64mM4L9MoKU1abubioDXZ4MK9LpdYaTXqlwqDRcUJSFNgeCXZEhuRokBb7PJH51skiA+X2VJbfwWaa7nNf+96nvvStd73vQ0M97WOvejlF/MIAPNvI4kgnA30tOZhr7cqdyuLEhFyltTxtvlW5m3kLu9NKTZNX3pPfPUhPlsu3fQgygddxlqS3/1B9eIv09CmyWDB8zmfqX0eolf+K1Hl0ubKlaxpQgps2HUCk5OAhoB9nHgqtxT84LH8ahknnbDVDOokNgqWDz7GxxvXvxLO9vgtPTmweDTbPSTWyalkzVN+ZLCYvdiZR5B/UhSjeF6Hdxzww9cMm7ZFoRVa2nBSVgxoaV+BFBA9/UqgoQPeWrmv3qvwzZbW63/+JcpHSuiSIp2TgWdyk5BGgmWBW1kLkXkTUgKThppUJEh4GuwlXrav4FRRsLqxPdnjh2B0WsxXCtvliLdU7/UPyOqlH92Qe+zHvuXKQoqUmCX4Yy5L7myClJ/KIQOZoAKWVSu0no8EEglCgX2eQb0ggbj0y9Nekxm1wTFJyEp7TjwN5OhxLwSD3pMzC3YapHahgTtYyzETcwE2YZc36oLCIyPXDZyBCfzFeAYWwDYJZmdIfiJ5XJSQYAl+tvDFnQGVeRoPeqZ7ExlmT7jaeCiqtnPBXmXqqgIREhW/ygl2ThkT1jH/BV7M9NQjTHI36x+SyyFcYNWb1v4maBvOYeHsUK/uZputUfu2Hx8Lb/fj28IbqmpHT+aI2KszJscecmSElUPMEbkIt1MqarzZCxiYdonuxGq4RZqEv2ymCQnXbGKQcZZcF0QPUpjRpQRey00WCgZusOO84FRjYFEJwGohQOV3XDxxsVdCTo4ipQTMMDegKi6AMKb/t/jYmsdD/Vu1Gyt++uJY8dVQ4I4+LSmJ5pmpYUNNMFxbVsiTfstpW1LG6RzCbD6Sw7sPUQt5rx9tzlZK8+JenKY7/n+5ii4rr5m3me3yX78OYXgIEOgAINAAINAQINAIINAYINAEIdAgQUhnUVVEuT8/YoYmdsokbkyTI/PSDpgC5k289Y0gLlWDSykPrPq1nSk5z78StyWp0TrysO+NtFdNoFrs+qKF9ahpL2akZdE/q+Bxb0M9JcXuGuBwwKQnvF+Y9jp/ZwzpLrp5HZQF1Wsj+oQRuloeeJdpLnWeFloBwhTrDGpXK6Q21WoCggWx83b8/M0eK4uPlDBJEw7BKZHT+rmcD4GFpgNkSoUxbNTFUjjZ9oVLXsyuyhYDawSbBNGAeV/y2FwXfjz/p/m7fzSx5t5VCMKFQfYB9mDbPMNbRliyI331KUOa1IbCs0xKUxR2l3LUZ4ncvJsGyzcuXGvPEHGpbVMBOs54lA2qJNMcJRCsrQwTADGrETACwkfc6T10x65NnZwePFEfM0Mm6h5797QBKlmcO5AhL0HcwH1QEWzkXvIqtOmvuq+QGoCi6IYJkZ31ev4qAHWjq6aSkgKzDPUcpvHTVmkyKnqkruLfpBFNrwfQ5FuOee4iet7rU1iLVR55zxrc/cHv9czLL2Lf5eszGuaXdGLP1Xi7oX0Aha0EZGFsK99xUF/qmnK3eUtA0qA0rZ3tTp9Yesu54a1yVmgX0rVmdPysWHgz1gV2Y2lk7pfeVUJNk5G7XYjOyCL1z1rAdNRYRTUT1+buyW+f9Axr3/XKuZbH13Lu8o433xxVko7LsEw/GrBfuYXd4M1OreX8HMvofjT+zysOY9ng8qA3mxFOOOPoCxDNox7GLwUI5jjieIVSApIv8BJs8UGl1xskymqkC49TLwJZqnHG6jFADJpnX8cVhwSTZIMkBce5isPKeI86/APEB2rHwTrw5I7iyGMQSEEtBLAOxHMQK0PUlFd73eqwqVDZTRc1vpebBUeB3DS1VOjqX9x3k7FyI62vA0JANBSKPGZInMPIzqcpLgOQDiDvWgLEVOxWIfM6QfAHxV1KVbwGS7yDuUQOmVuxZIPIrQ/IbxH9IVf4GSP6BOvy7Nr7SJOIUmdkpwLGXG3HXBOHazH+es0VhgqD53C/No3rhKE3/tgPLMjt+AGC/twCsv+XvymfAKb+Zm/Nft3M8g2NqQBcMSoM7ytwHU06cDWCSFWFwN0lDwWJK8LosMK+t5GMiyQY5DWLyShkU1iEwQ2pKCTMSYxCIMYjGNBjkh0t0sxnN6LPMnEY0GuK2QI3izwMi3MRgluZTLUbMm6zr6cA3AY9+lj/BC6yIeoI3xe801AyHQII5/Ub5tsWPviCahDoIvXaxK96M5dQvCRRY1XFEwsIvQfT8oZvdatIVZxaVR+uIQCKxelNEtFBKFKWeE+b/cZzAhsHN5UYhQRrG3FqhxypzRutA9FZU7W68FW9bujH7d+dixGofUIQ4jVDB25F5trYyjDf3YqN5+vdR81528jA2Yb26F/YD2cyXz6uxufJCT2jZkatQWhAkgF06TrNg4lECR76wSzfmkTjHRSkuT/98G5b9Xb4Bd5uHxZwo5Zr5xvowj+b96jhPa10tQ/QPZQj4HOOd6x/OjA1+KLNcy2zCHdzzJa5n3ul6zTlpSp7HCu+D1oA5Xrh+r3Az9ySFxyjb2idA/HETdml4+lRrzyhejSvuGx9E7+//XwaW22tFoQVVmk6sajRmBta+1zAiJAQYa7rxIPOnT5OrFBxJTm1nAei732HSO9aeDdNYiFlLrEajAN2GYAt6Hht23wECVoBTzCfBPsBQXyYsOWhNNXWNmTKxKTQ7wvBpgigAxt+POC18OY1Y+LllbssmcuexXhWHR/jIB8lN4+V07D6iO6khI0crldEb1xZ11jdNSEbL9WYugyTrfR1hkUBlX+0SE6UowolwP7IIDQOSaVIplc8Hus2EloWpJdll+9ch3RE+pI0LM5a8CA9hQtuB0YrhWDgnDBIUGfAC4V6tKDapzmJpcEgSAtXy648Guoq9XTAQrJcEZwb8lfDdx2IyKy1Y3LRaWChbxYRwld7Gzeyozjro8em2tArJeGfLhyBR64ReTDL6X3JdVlax5htbGbmYEdV9Xppprd9fy+a2tNBeRHcRJ4BiGFv79GQQFsn7rRRJxysTiOxeoMyugK0BdUFZrVyn/N/ZTcJP6z84WueHP6bKDm6w6y2b7ThXASs0BZ/YRILBuhcsroVQws0RGt8Ak4nYw8dUu4gkfrGooaozyip/MnuYVvlIHUjUsXmtktCVwmcfVqIasSgOUEdxvRghWo0HEMQ+Tgy7yOKOhY1VCpRFy4cM+tKcyku/voAANClRn0sYLAnPE5IQDCxYGPsGcDViSTMHpaCNb9OTMu97X8a0rHpKZBypZQNbT+AVMUiyW5eRnpqrAnHt/aQM7JpuOz6XNjI6RxUsetnkheC/nau0wRmhJeQiozky+UQq974SPkFKFARuBQN+jSHofXwDtP67OxirbA1GrnjmKr+kotM59j+AyYuSg5WblBIgR2Atnz9FkGDdVjH/+ZlBC+b8y88d26cW8yb1/75VgHGy3uT+mcmtRylwJsMjAldaxZPvhxx7VT6XFh7M59yHyEj4G+UrUwfuNzvlDWyGdjArESx8xXqpJsSJWTgni9mxIiMjarMy1ryRacOeHAXMEWMWgf6EBpCBsSEHU+4zyk4GgEIhqfeF8Mj9CoF2JtuIcijqEZ7XPOwnuZlOnyqR5X2rl4D8QOJkmIr8XGB9CO+b79ENbGQBMUyXP7XvZ9oKu5X+UdkLF0uoltMnH7vp4ShyUGlLmcrV3j/spgqjMA1ZWGfxxV3HNiq+RD5LiELvkNdDgc3NNBrYzv79qJcs87EHlLC9GKG4wi+1YHBYjwndV99TPD2MpSOF8/XPHz0wtffzpWN7pw98ofXGT2KSNdj18mbXa3fnlSs3qkFonzi76p7h/0NIVhrPP+OjAm1D9WmFpqNRKNkE5B9EYs2lT5tUj4gHMbIQcRblnzjgDlJwkBsXlsXaRG4YWaIWaJMko8WVA8m+n6jnpCj0Y/YuvXHSttS7gVg/LfdergLe7riFaQP6BXdgmq9MWkrl8adbNwTtTtMDN8/ChQY8bHADWmTcAWkVWLvwxVdzodsD+2WUAtUTjsB1W80lqPj5Jg/muzpgqdIrSbfpki/XHWe0Eq+TJQsyzvGWmjRvNnoHe4xkihxmGDxgPvXydxZp4UrzqKecIQGv7+xXCyobjBGd8LAV2WRIlYBMGzag1VjvtNTLLeF9quEnQt+twQnpVtiS7nvbGCmoUAtrod27JBqIBcgCkItZTMoyKyzUIJ2S/WCrBjIBjGch8ENHhF/xekwVV/XFT3EznfoA7kinc5ruooqigTAHTgg5HogDk8nJsTge4cw2QDyXsCeazN+r70CPEpF7gji/Jlq/Qk60BQ70lJK/qn17p1TxSNUZBvvJeMqgbeU+Hf4AWCQwipr8WTjBOYKdeq+srosRAoGXG1tozkYaFSKWNtK/eouHkJ3YII7xbrA3hf77VGf0l2EwjH9KN1Hjn+Arrw32d3eV/95Rws4ciwodJH2lhL8ZE0Yu2qBQBQmi0xDDBRVp0n4YI9sUlCk79OKP7bdh1qKR8Vk09ACq74GLBFqOZCmUXP7gY1H18DAksHx4ijghDMDhMiIt9jo0sNDg8u+8cVT/kFD2VXIabvSxbAsJQyoE/+AhrnbfyiarP3cgt2ywC2mkitfOKLrpXBiRIauAePeUJHOnYbzYUYMkUW6Pafge7ENDAAb3eNw93tU6ZBynjEje8GMIEkq+dBVpWGhtd8SQ4kDTURE5Inwwmr4Bvq4XQHs1ghCpBabzRqZie5gGNxSC5QR35+iXdHhEphD6J4DajuPb/do+Ww57rT6lYf8I9hYSxjQbVjRslz4ZE3A0DK/axhbHZdg43k72b4GJj0WyLoyKCSpd2pZdKWEwRvYWcmPlnFm/n+o0feGNYhfzI5KSDFv7AML+fqfN/faJqAGzD0jRcyBwbzfc7m3dFaL2nQLhf6D8uiDsMMpjgAq3n7ZuohVKW4EWV9OWkNwuiY9r4ziwkPXkD53AhZZHMT0C4u/BBoILobR5UrclUNL2CLoTJackRk5nZOHdYNNMWUrMDE2IfYXt8XVmIXuAMJAjNLnjKD0dlCDccxFL5Dd0HYX9QDOfPpyPPdV+8hjtMyHCBPHidQkekklzIey6XxrAshvydwQS50NTQz3sKGXZdTliKKpEvscCHHujnbHmsSJ+IuQSPGohTJQaZqHvzVz79W9CAo8sbH+D6M8Xwp9Ukzo3+zWknjCb/0Y45efHmk790OQ2RAIRsqFVHGyCAAkqK1eMNc7fGXCaiOdpojyCSCcsPrSngmXePQQpk3p4AssKhIepwtlvoEL4xHXqzCNJRgYTQnH4gJu0N/IObdWmsEepKW27khJeb3lZ6e8X2q9Rbabx+6mj50GRo4Fw5CLRC38VCX14CzNbhm5dx1Jda2CMCyBHROc8Gbbz8xorbfxDKvbhZ6XvB0MMF880MFuV83lXbZZ5iY7Gpt0nuBw/SVdkxN/2KTijOvkyfaKozhv3Gx89LZ+Uu5GLpoPbyFHJVC0NYKdKeD1fmJt1Qg6enR9XSouusop1oLrv3LwzRVIPXYF+ziIFkTKPdFOHx++Ib8SOSrhT26OnqI4Te145hHS/yEnSF72LVn5eYOp5XCc0VtzEQFn0VyrDTN5Kq0Yjq3CDxxrHNzTx6Dl/66koVZyDFTt9zF5wt8KLbXddKkrDN2UCT48CEoDFZYubE91enc0NKj+/nvOSAa/MxyxfWD3jqqtXWcxR1rUo1Y+vcytrGmjZCq3PxTC7NjP7jJo1gm3Ir27PefmQp8aa8PuK1QHQTkszr/jBdOo+TO89QdIaKVvV3wrr8oeW1muqNbAIPRboU8Y7k8t1VtabthAsGttG0NiWwvG22dEmZnSrqy5VI2NUmK7Td2xA1xqkdkC2YJNJsxBv72J7KQtUZayKMvOCMfr30fphO2wgl9StN2lPhA04RGe2+Ifcuie+a5Uqr32pDih/lV2X3z9RwopQV/pIeBJRJ9/qWcB+yNa3v/RSH2Jo0IbmK3ZLSwm7cMe91N3qfQK3htgtf/ALgCS2VXIvYTLF+H7w+UKndd809ECTrVrDxq4TdJTvXwP2yD1O0W3jnXIb7oQaShL6YrDrxZCe8B2QG7reBd2Bep9/yOGhuZ7ZQ6WvQfIV6GuNTyRovxctJyRQaNtuBrrACcSNoECKDC7fWK5Yv0oD4ueUBKORKsDHtnFw2w49wMmD5TGbsBD4pX4ESLwHhda0m4346JrCQ5DudTG0/APi5xSRXj8OyAyyAzgtmHiYgXfbFjQHMvK20KuBju35gimGLBQNXCn0YPlCKG3PPo0mo8VfMcyZHi5riqHZun6T6jjVa34+GIZUxWtUuhJaoUYasF3Yj7xRlZ+2G9DiE4gvzx154oE7ih83mhylYKou2P4NqIS6snS0ElJSGDQO7xWcRQwEFpTRngUKC7qRNH3OCNz9cw0RnFEh5GpLhJ0qFggG8l/i5C0N0FFzkl3xuGf63C1gfhbduYUP/ry7wrAgHPijC0npKUTku4RU/S6oYxx7ob2EqnrysbuVArqUnETFVFcIJ+PFmc9pJvcrILl0cngRGHhdpcZIQdaLWu0d6cHGyl7Noat9t/sY8fZRT+NAtscgf/Sm8o841+w4zg/zw67hiuGK4RWHV+ePb/SPGxmanuFMUs/bSm8q7CqvdhXG68riEf91W3LCN4sXwotgweX7IHtekDtOS8og4Tqu+pesl4T23fif2OrPW9wtz45jH9/4Y8/16lvF4CUAQOIMc0QsIhTy/q88m4OGaoNGFq6RWeQlqwz/KOWAyXj5s9uA1QZpNTbYcvc3R+X54Piu+phnjo5oz4DdeZne6fVRbKYDmuOKwktHXD5rlwKurfVmpmDR2WvgQOe+2sjBdl6eE0x2+qePop7J9+h/cXhifgW3RJYjJ+dEc7LB7OzYkoyGpA3R3j1Nv3jGf2ocqwm8PI3742esuvGncY9jALYOezDr7AHEsaeMM3lBoD59X3uf9dvBx+bbw+jh79SpSPwBtubzVnfrs0zsQeWZgS2nX6JB4rexpb/VuesEOEt5PqTN0jbPXJ2vwvPa8gw7wbnuCLxkrtOHzwzm2+87JVxXr2MYJGK7asMH2/VIHJeOSfEJ3DpmxRl5ONCFd42tUhbEkn7dLR3gzZ03Ns+AtNkETvls5usnT4TXRmneZKsnzcmoaw47nVW1xA38usvU32u2w/1K21R/ORL3EjG818i3rI9RorXhSV46k+n7lmK3C8kdjVW4eCORfir26fkYFISbwUHibZMa/EK1TeCyH6Sh70QJIpyBxNu3Ol34RNMOIoHAy8azPlYZMC392wL4i1TqW+lkWsobR6w8Fx3f19AW29sQGY+1Rg7trY+17auPHmr1ErYFcxxez2yHbYHPb1s02+nxzHEii33lKfgTNuIilfN7lQvUrfIRnV4zIVI6v1O5CN1KwmvkdSCO62ftUexiqZPOR9XM60Tt14zKc5HxvQ2x6CpMCC1y3TvpAiG0yhWN7a2P8D9hNxLngXUKaVQf7e1tviPEK2YAEKDXdQL46FdDU2Wtv9Pc2xtN4XbwXzt1RX7R9YXqbDgWED42FlY+Z2VNcaZl0mmwVa7WgMo5IpUF3qeIbwVKPwFqJNJ9Xc+8FwdEKPXbvCIm9dGVfNrHzjr4P6DMWq+QVekcWJste71lZJXwqhAXzbDCoE5nAywPfrXoTMusm94TCTS6rOomS1va19QXVaZAt9jWsLKPUo0VZdka/CASNkhUuC6SspixKK7GCjTNUHlm7F1Jmc5NTc39rqRqsLSkTU8fbCRFRkelamSwLeVxQ3zN9yZuPpw77QkF+dNv/hqoXledXlz3qY8ye1qTTdfZZgCbRroKqrDCHCBEAAAeJCHEQqIzu/reHf3UGd0tCfulKReSF6dj3/Thfd8U7yf+awc0Q4pLh6Chv8Yqk3chLcL7RLjO7L5veqxxnPRGtK07GIh1R9cHBie96QFHZiJe7ywEGvEUp2Rt/WS1NSu8RTUqAuETV8KQ3TrsrmiNf1XvbYlkxmMy4gvq4xud25zhbZ6NHuJkvGmjcZOx+apwB+PXi28Ux0i1iG0vHqn1H6jDaY/fi5Cg2uyjHDw386iA7z7NOIMxsThjYlbB5bvPfj/H9trZHy6lcz8cpHPfJxFVuMvMy9gXWK8H1llH2p2TuUommvTaH/MoVP4pjeayInWKOzFdK/cGecq6liocxiygvVKucfJY1gqseKZEh3pB1nAe7RC7JXXelOh8tTuaRbpagxG0uxMFskCEr+p3wGdUxiMaOkUNUAZyYM0lJ+KpGPyDWs0ZRUYilpStlXtCPCUQEjsfVYt11gatsgWsHJyCRWsQvdfW4c4IGoONEh3YpvugqVYP6Fy8CqDi6JECJ2LUE/Ad3QXaJ6SwbT5f6U+1xHHOpYhYB8Yg3SCK6gZiIKgPiy45cG+ch9uFEoldxPMqFDzcIRIffwTiCjlLrR/sBBGiN5ztcBZMRfRqESriYGJ/JOYw+NGoKydkCjZK9fZewNDv4KE+8GR3b5s3+TH99woB3df2a+bPDZCiBz7EUukGYxCoi4jvcvAJ3HEpItKDMVA3gHrlPK9dJJE4hJJ5UvAIh0gidoh4hJSo6qD3F4i26d0lHWHfqCTSzr4z8CwBFgGdnAhRsnLsss+yuN/ttE8FzSw8yPi4SySVuoT8p0A+cbSJ+HSvKvZx37IN3ObBPVbQKiweAdWTDXR06KQotF5ghiuz2eSrE2ntPRYKGdA5J1idOu/MXLMYdoabGZ/7zqIEk4HJrZC6z8bg/LeQH1bL1EK/T6JGq/wJkDMnfVKleLZMOck+aUw6Vi3tp0AeL+iINvjChwm+EoiZdV0gqOuOWQAlITiM4O85Tf09VjvQItPWWb0fBatgOFCFIIEaGA7WIJsrjebCA16u0hNpDOhw3tw+kyPimoRz03vMppnUDnDH8ozIhWaV5SH+CU7pGp9KzHKRsKOmcsV48V4q9ZUia54FVqjM8BT3/265i5TjMcssm8hqO+LCUeFSF+QUUEnUgoTUIxesL/jphI2q/kTVrchqGeoeL5vlsM0CCZvkiheSaNSc3A+ZSkugclbPvId/0ti2y5G4yyH3TAq9Ki3j34XXC01lmeGUt9lZdQvIDTPy7kgzu7vo4+LSJKYJNwBuP6hzAqpyYDxmnYUIM3Ibd3sayowR2bEb19ovX7xV0HT8AfQCXqFmj9evAumWVy1OB7lpmhPPPB7X6KzGy/7TSrc88BggK4cvA4Tf6lCxFHYSBMnl0ev2C2U6D8mZkI4dqzozPWKGvTQZvYOk+NoS9W4t/U8qfCGd+nZJCoK7mqUyD06F7GijqaFPj2mgD7T7vbUcvXWwZ3p4Rm5FvXoUI2x8IXyMyanXeJH5l2gJAsQK81/mENdH+y5SjUQEnJMO/eeft+qBdkrb5bgtimWYgg0SPZzqbhmUokkm1Re4KnB32//2dPO9LpGMnlQpUBXuFFe6xap8o6IBx502ywWihpl9h4+XlzlE9Y/HS7mCMVzO99gFIq3ZtyEbW2Wpa7wDbHPHgZ/D+YQyVNNRW6gnIe0ikOltSiWAAiAe9efhaSk5ig95MgNmI+P8zniHHdErr7DKpkNJ4RS/y8z52MOQga3eLMieP/IKv1JaVPL+6Nu5oyIpEuZoQ4Ntmf7XHbZO76hYa/yuxHst6H+sOFOaW9JdB1MtVKO8pkpuxJoiqFwMzV7wQnKyIGvgBcxn08giEbkOBRgM8A8rOQwr6CuGGQMPTlIpj03E661lXI9IZ4YMNFzWrbx68vCxaiH5Yc0GfMOf9j8/W7LFIhnAwZK4/CAmkvkbGgJPo6RZt7Zxg3UDmn2fbDarrafGmkLlKE124y1AyiPi/rMle+rcT6MmbjUN8SS/G6jVz9TglpDEHm4Z2jwUPPtweQKMtoc9HX0drt6u7i5i80NvT6uP6930kPvWj8d/bBg5Pvt4wws/lqfhut8zN5R35E2BPW6LPVjrIbTuzm/CfRKNoYQyInvekNUVxb7G76CGvrc1jt8sV9eJZRy02Ftin2cv8hbPOFwOOrjCa13St/jSzVqfddkDJHVV8dFX8FfsCWM94lXG5dYsvId50+C1lYyq7qbutO87pQ0/v2wnDYZwzrZbOyvdnvrwWnL8PE2hEgvlAMedzOUHyiFxvZ9Dvn1EWf+Ja3K9niXNaMFik/vFj0YHEHPinzwSnQDvQY9BDLo6U0SOb+CMwUK53yt97OHmGVtmBIvOBqOfnH3IrJD3kQ+VVc9GygR3PfrWKrO6A0VT/+XdGBRCcCvJn+Bjbwy+Wg5fml2DjvTHxE5+PkNj+ejstvKaOWi50FUfJqFCnMMnhZFl9mXoRc7nGRB8Z7d75xQoVQPI+eRqkZ/oNOvBqhYw89P9/221nEVdQAlm5Bb3szjdbGuSCEeNsAPUPQL5t/8U6D7mAdmCcvYXQpor3ZEufsgyCf2EVKnEpUK/Qin04RKlkpAIfUpYZgSkUhMgl5tBicQEymfT4tGU+MZf/c4mnk8UKN3LrSJ0Q7Spev++utbmvbVV+5pq4XV/j2J5gSpax4ZWj23+bIfHO+JA5ntiHeuraYECcb32afjbolB+jevID+n2LoaGl/VzPkQrVvWqBKcStkqjukYn/q/2wMyGquj0hvt3Rev+hdeWLF18bb93VePmqmj9pjXLGjeFo00bl5cXa1EUMfom8J9Pln4IGWrCOphxFRVJQTHkw9CQsxYoDUWSDGSDtLPPFrF1qPXNAKSvCRkAeidYWdi6DPuUPe/rxEzI5/f6GnAIqIMIyGVBHGaFzKmFYJvdQGQkKqNNCtDRLJF5ZRIu1rFdX6MzGmJDpoCn16BpMWXqWJ8E76G3Ol2dO/AdbpLbgf20SDbwO52or/N5olHMHg45lAjjXTuV3b4Sg/JvnLynRDp1hg6bw9Qz1eh0DxqsXUhWE+uv1dfmQx0aYwvJSmQkoL4gSjQuSl78o1FqAHuMlm4Ihnr7LbB7Ogpu6m1YVOlyiqRSTCB0ScR8p5svE7krhU5pAyv+CJuYesH7hDYcyH4hwxfum1MmngzUbt8qcog1ulBMAgJtkkJNg41gywprrcEKNA6p3J7pSn6wBwbIXiME4UaFirCCkNeqoo82un14I2atFFpxlpJo8likkrekVFMqzzaOjzc2N4830n9z8zECvc+3eqXP71/lI1b7/Y2rAFdeG8L+rTXYAIa5B6pqXdM9Hvf0Wo1T4ZFIZJjbrvCIxEqPXU3xSXx5hLeMqV+nLfCbcxrFR17gsclNyb+zmEcqRNNYabLzokwNgjtNTpuWl/+kefH5jtsqqoWq0XzHwtknEtCYjEkCtoplrSss6mZVoKWzpDaLwQLqBNpd/zzTZgpglgxxYjScup5eCL2TLk3Wq/QBbWAirhyfddgnoWGsECRJeA85nPtc6t+Xd4jzb3ylPpXW9ii90ORyGMwet1Vq4zCsVA9dw3lXFTHkNtqRxFkVa9gCOZgI54Xpesyt5/aBFZWQv7kaCD7R4dHZ7Bwum1zhZq6D9/+Pplb7305p0idXo3EpcF0fqG6XUR5iMwtlDqPe0MaxTPHxAxZDG4Ah2AdrnTvWMSvWFRXvYzHXF+fc4vEFPAZdy+fz6HYu27Czux5iVUK+xupefLrbhKIFy6es0eXLoSmW0XKDTdxaGBxOQkXFk2lVynaD7nNH1sNd4xT7zmHvs887o311baQC1LU3kY7V0cd0t7QtNhWChet5qfO/pGJHeFE4HFoY6wiORiKh0Q5LQBdRqbThEKGPKJT6sM9Y3Ct+wAEuWPR1pR+KegZvddbyuJmVijd4GQp4sjjb7K0O2Pweq7Am+PrX1JGnDgase0yQLJeu5nJiUr6Bu3dDaenLPN5OxmO1xw6iLkBm/pThqOByQYynUTl4LButkbXpvlhdCRrBekv9hx8YJpbFZc37GT0qsVLIVwiLLfcn5tMeTzZdSR/606/UFvRBaCTo0GB8tqNEybJXLw7BhLf0j5QPBVKtK8mNnq4Q2LhcWCAUoK5Ksbu2r83ZEOYLt1ZWLhXwZ1TWsN4xml6svZ3WB6S0E++rnY9KxEc6yXNfLNH4bQDY+1Ojl5I72JY6zI3Vuq2Bl77g8p6Vlf/M435Znvt0lVS6k8PeJZXsYofFNcyBV7e3baR6VIIkeLZEt2a7OsLl2QSPlgoEbZWV4ZnU1sqalHnTUNz56LSLcuKaChr6/1musveql00zMtkpqSw7qZBKei30q1lIKuTVSFNopQ5pSiGJRiUVlv5MN5hweXYjJzUVj+PJeE4Xomy2vHsmJdBGPPuWmrMIT8fNxffTdOK2TjDo7wBE9RJZMRTnUcWdZeQgWXp9C+cLz4IKjd2rRTuillx6IOlEGqvhQ7YtwdB56RiTZBRJBKFU1jrQKhOBgFgGgB0BCMpEmtYBzhzLnEGOPsnsTXKzozmOYIBTwpq0Xe3UJsdu2hkP9lOFmwjWO3bQTm107KKd9haefq1ED+rrdtqpp07RTqHMOP5PVaMMxP/ZfTYUpqTwT9h+cm2+a4xa7g0OWh6Yau9CbbZnaUn3jyZtE9mrtJklpJOkQMCuobyeCV7ILrua8LK5ynnhndbf0lcSrpTlbsqEkCJNwE4KkE5KEIsChJNzOE0ZyB9HGha1xplvT+x93N6ElhC6hbRJ/9zved3F7sW01IS5ydkzJk2hitw9GGt40WD5c7FV4NQNslDPGz2nwwkpfGPfHedGuvL1U+yh3pFLmTKO38Qr5CvC3y7rqbb9rxVv+9bve/AOxWNnb2l1ptfhddUZvctb5H2fxVAIBaHpIDCGoq1Wc+zHNhTdBoBtMNQMwZts8IzunWwAYHO5bWMDIxyBA5zfOGBnWoavph3NSO/IjjWQfDKlt152AcWdWGZvZ44HK3oDcv/9clrO1OZQ1eyBWIoDd7amLztE7pr/420g/f+bbVo+5ZLboRWjenvWJA6rUs0tKuarYZjee2J0+ENzH1hoUXWJi5YD0Qozy8Df2dBHZZ6FkaqP7f0ezDu5mNEHjSL6L8rpZ5rRsaUkdGMmlm4LB0Fm0jtN75TTTzdnEqvs29DN6XAkBDKTX7VjzfR8C1u09R0KFIyptDXaFLI/mZyi97gA1Ou0slSya8i4UGZsSmLcO91OzRecKCEypqRLAAznPH68LIXmeDhAh+EKyMWX7J7hfq/7zn7TvQA+gh2BjszGZ49D49g4PP+rbnOqbPS9933vv4dvRM6Xh+f4c7UndSdOrHhxnmzFCfuLy/fjL0/6Eaq7s74wPhmb/N/VV7JQ9ks+PLlKgJMs/zi47kc8T9phZ9DRpfiJL00/4fmyTpTBsC9VyU4vP7j8QPTZ3aWcJFsRV192YNnBE0Xxkt1LdkWf9waYTaUKX/7Vs3ed0V2ju6N3kaQKfy7lyR5KKiVkPp86YzIxy8rhl3nWlKzMK9Dwr52xcvml9XMzXlCmRfSr1dKbv4wGt+zztVyWWn0Q2D8NhHxWKRNmnpJ+zQQgzYXdG3Y8fVapknrEIq9s1osKmUe0i1w99uSpE28DDKvo5xOfb2SpQ1HVzmrmovyk83SwqwDlq1Vev1HZTJyfl67Ip2UX1prty1+5WqnaTaaX8zhjAOozl5x9IGOU03nsbSBCnG3TQ6kgTo1L4u6D44fHWUj88gTey+/F6TLkT56LQp9LR35mRDKCP19IGZ09reLrqnBW/LXycwHh89nmrh4zZGiU/pG8KHqxz05EEyAiI1PX0q63LVp1/Ww3sGnI4UYGLGAv5G0340IXNiaVOoWVbqFY4HKNSqXN34ZijbiKU3t4JC4PAgd4Rwcv49C9JDrNLHkv8ycB/18m/0d+8SI8Lx5yAxwE5IDrZxN85r8sAcLQFhxnNivm8TPxzhk9lnPDZe089D7OZ2z6lMT803Lb/mX1m7rSKYKHz0YvOFV/RaASOT1Lup9shn1+5vT1q2R5X6u/yqfSaVTB7dtV/bBEy7m/fJKPjWPWLOZ5IeftFbj3arx2VUCjUKkql89kz/8S1d8IaFQqnX/7ec3XdM/dU4JIqfKTx9GbkXHBw3wfwM3FhEzW6sQ06Zulh/jPny9sd/c+K46Z5zcJrtWR/2JM+KBu9OSgxfDIQjrJSTa4++TT5m78m/ctIL54OD6nS3L3aUD2XV94iQYjnWeF8RV9YT1pU12dBXii8u/fF0/1qszD7iNCfUAWN29wYedb6cucjJQHqWAB9oy3vbc1v97ZGv8bi2lgbDtej4Lj20fhRaVNFZbLI1qNPHoVKoG1OxKpRFYCVAfjehlSJ4vaxaNU65Ljwddrr9esw37jHTDJH6xirRBKK44vX44TxIrYRhDN4yCI5ccm54SgwkJFUfiRocJPQiw6YZfncqG0oXjwpmEqxAhuw1f+mqsMNoyPN7d0HYhUHegJBFsdXOwo1Ym66m0yXtSjUcM9Ch3l26Q9f4jlDlWtY9kSe7VvhY9Y5ffjq1YQfomXdv7Jl5gybdN4Q66rln/ss0QsznGG+AeRyoSrXmXpqvqJ4kS9JeizmryEVYEQH736xVdSWYEzPwfSVLHB6qH6NzF0TmjECPa5P1IUFZTMpzMiZYwx5ujuttq6xm0fUSAy4jMa8ipV1VUqTRiNhLwkSqh+UydDq9QqznFO2+vDbtSovsahL4WSX1Caw3x08qCDc83DkIPN7izAStvzhUDYXFr+xa2GtChipv9x8hlm6wyGAgPNGd72cdXmV4fu/q5Oh974FHnzUbGAFS/TDHB13H5CjcwsdsLQOt2v7b84tP5IOvOmZEU4EMjh8drGgXYwBzw2AfKe/MNnJoz1A2utisWfMkAGSJQJK3mn/SQQAF4DmKyaaD1QHzVHzwHnogzWe1Gs53PF9m/mFqAlWkOKB2/Uhg7kH8wPMTzPPetzYGytkT/1UOoYfj1oPuSu/XaeMXz8ygvKy6KSke5rkxnSf9SvHf6q/KfiwvLynqGBVxlQaTFMH1oQoGkY9+mkdRGVAapCjllmvSexYH4T6g2DSodJ2pUEtgUdxhqlrMaAjr4YH764RhtSSmq0WklVSKFds0ptdOEWi8tnDDFNtN7gBy7mKR8Mvat6d94DZR4gyopNVv5/wQXlhSPqd2Roi5ll9dVqo60WjfcNPzXnA1wWxLuH6WOY//sH05UvvawweGwVYl1UJas3bJ++gVdf1B67f0y7Xnvy/kktRLoAky9q1msUJLr5bBEjS1nP5SUI0jVpoAcHTAEUJTNUTHTwlouqM++cdpx84dQXtq1vZa0TWckX7FcuaeruqygF6+Kpl+AR97Ab2ajh9XI1vTwSTwUM3tCLLyLvG02a9cBthISo34+m0qpT1NdojIZqzZUNeoW3VDEYa9ToaL0W8IUAKxGEICJktfpD0Hv43F66dEIPAEpVv076ocPaY/eYYHkZyBxYhNBZBQFzt1C+c7MNtWIIIpWv1RjEex69WhDpunQmP7f6ZjKrWcMpmj1ivh2oPVBW2n5r8Qm2xMT3JF48lkWb8Tg/i5zdKHu+8UuvaMHV8o93EMdN7sNdhzUn5J/BAHPGwhAtQ/stUf8jiRBhaDvTljPbJV6DSYubT7UMGZnsB9SSXZ/vyOrSBRDEVuNJg9z4BF5zyaoardPULdaQ6ewNF7W/y4alkk7Z7xrS70i4GrFHqlAqVU5enIV5wTZtWgdvXAc0x6qXzEprZRHpqjVrlb4NZhNvPbfN/g3teNesDV2O3s09mx0X7N14etna3ee6MxeH4n5QW8ae7tbs3Pa8g8tZu/EZ77nKqNrM25ySKrYm04Q6aXJhTiG1vLAksdxoxBXVMiNpAVALcj6F43OpJOqWArjcJ6GAPe1DnGPTwXFwFh6bxR0YH4w9x6D/Mt7dOgu9OqtrjoOwXx9vCM3yrFnjZbw9Xh7PT6mG8CxufLzoSXFJwueRHAeGtWqbjSJ+Za2CXQGlFFzBVlbUKrOz4Kyn12i2MovPGvlpHuUuLVmTWaSSv5NLz7uk+5WTXsIiG6+sugpfpffsNX/3rHdwHfV7av4P1KJb5YJQPCxebfqzS/RvXvF/6ZWW/87jg5+eTP2hQLBg5MPQGwQEJ/IB6lEMS9V3M6b4cR/bTNfhKEdC6jOvXvawUNOwUC9rCobuD3e+Kl99HunZJ0eqL1W+PJkFqq8QFd9S/zv0sVYLfSv8Ra0MfCtcn9d/lcnF1Ez51u7MFbkzuqjVv/Ntje++JkQTB7DNv2zRWF8MT5nPBfkgnCx9Wdim/JTPOx6t/C9TK7YgYpL71JR+TFnD+U8PfDiw9PyXeYBL/gV2RgBGg/qfY1jDDOkNpX1kYAcY2QjDa/CIZozhQSdonD178xk6dYZM1QPqfoIHsgyHNnLnalcaXeR+6ZOvw9C6GFIHpQ0yoEQGtsoju2k6DBubIVOjpLseUI8MK9vYmMkvxEaY2yC/GWacIb5Sao4ByhjoLCNNekRUiRu2uMbOUuQwykwQLs1TkpEMmJJlqChjqnI7TlNu3DITSirziGnLJyfrobBRBt2QJEpn0AZ2e1qW4eDFIHjkNB4LKO4Rs1J4p7lXFTodgUvasxylZ3BQPXcOhtbehtQ2wo4oplyukT62VGsq5yFhWH0M6YGkV2fQBpYw6tt442tebSDp0/BKxCN6VxPk1XnCkDlTOm8PTG47PaBU7Wo/P0AhV2JAaY88sI3d9KH3pgcK6E0HknKVMKyLDKmY0i4xoBAG5sHI8jyippUTozyybuZBhtCuXoqbTsv6KYpKx4K0z+4OLbNzbj3pykVx68YC2ralV7xt1fFYoTtvm0rbt7GmNK+RQbn79Ipp2QZZNRxQlMYdG1qpY1B8RLeuxXByGnq3Tq3BQ0zUlvhtCnSs+Vcd7rLt6M6tziS7pu7rK6712ke5d4ajc6xWIm94L7uhBAvf/SOw9XfvPwLQOn+VFP5i21pKSe7bDrWrZ/n5oNCu7RS3X5azGFAUJJtncSDHO9JjL4u7Q6c0FudpStv65rvWh0mJYwylbQMzxKNOzWjls54450eQUWxh+l45bxbatZLiNspylAFFKWVz9wjoWD/ta60Od7mdEivnn4XintGyH13UJktzqzjKKJC3IHFSQMvWuShVhzz0QqHgVjEa6kwTrVtNuxZV8fAK32bZ0gIUJaRjne7QLjFzzGwVnwZlK3SurZW0fvTUP1iCjfgN29GGn/dQxVqgZQeq6C5QoGNLaN8sd+i0lLXyUqr4bbRQLa+MwlEiOsi0w1/ZeP0FND7PAI3vAWgWPQjQ+D0O0Cx+BKDxfwFolvwTNNL/QItoq6pVvG0SbJdohyQ7S3IUJ+AJmT+N+J5twB86wevtkMgOkthJknxPQrtIVyl2S5Um3R577csEbv8c+I2ADHSi+cBdZJcjykDbRgqqE/rlmlNRvbMdSave3i3XXDmPnElAFtHZQbjOAlNzhka2A4Vr5Hp6ylFTYXQhO7bdRQ6ZDdA0uj9L84G1pQqBVZFQFYvVWe285KxxXuZqU3Aasxubb9f/Z5Vr5DibnM2sJaHUhYcB9miHfGhxdyrQ5YtMcQhFK0HQJVVAFwrIV36lLJDSkEXUKRIpXSI31r3yPaUJqMgAsHtflvXdjbYRDtIZWbc/5Vr9fwMtYiqslbjS1kxsxcBsFVMbdTHggoIK2qmNVmjVheAVpzCbtoNNxba6uGtoydUWq5ZncmKo/OJ13+9w5s3axI601Vfbfvw6vv+Mt2OXdA5e1LabV568zv7vycb0dPwbWOe/m36Zm/3/z9nRc/9+ZAbpjzDl17Y+WifSusBhd+qwcB8m6Ksn1YqleUNcEa6LjqTk+Oikltq1yZk9mRfoHWc3IugDk2l8tzOXYvMwpNgwLFqSDuRghTU8ZELr8zjVcSPgq76djCfw3zR3Cvj+pN13wO/LiY0Ac8K3iIGXTvKVAw/JKd5x4McTcR+DLBGScC9fP2lcqfgj2tS6q0wqExAtmE9M2aoIsOc7G7EkVWZGo8z0oPOG5toDe7Z/GGUnGXTubigtKPdIwspMO3uS0m64lG6217iGhFXQfN8osjITgYaDrVgahrj2uCJcF/EsyC2zYklUPCwQZcSbwgtWjjmTlWzcFEtDwDDFFXH/JIEepne6upVRrFBdx1z/8PmbTx2rjRPyQ+nbyh3FqZ2bDGU61aK4CosVwR9TlErmievje1d85SArTioz4JkVL1dcdqOlMfDljt+s2K753pJL7uFknGffzRUguzSaX7I8hSjHsHTFyoF9NTA3/rgJWEGPMqfnZeqU9c6BCFaXfN+8r5TpudK+KrTCY29iZidVw8ogZGEPOHLPbgJkU7z6tthJ6Z2iiDvOtS9ZAXXQ91ZOQBEvigPy2YppXqU+XTkBRUxZD+RF0hczSrqqbMp7pyiFOy60WPWyM++xEVR4cVItcLJR+MBjeTuDwSONuhPasyLPHefanQtwrlaPtCPSXZFoAvli/fh3aja7wh50B9AUMACD/AdughkaAsZoEoEYdgI9tBA0BIy0md2CHWsnzVuluc2MbtXWUrzRLdzOkghxJyjEvNnkgiXsMYVoMMMDKawEpEVkZrxj66RpRvNkouJba9fByIQIll5oBmQZJ9osj5eQyiKIBjM8ACsBaRGZZW7V4dHMrvnQxSm0tYdrogWB9MLsQM9oqU82N5jKIogGMxyFlUg0zwlu9WSWAcYV2e+3s50YSQ8QarLIfFTL6WG8iW49Qhy6AXFFu7W4uKPUxJ1xpndUvbkKTfBVGrAOKU6kzCW5c6+ve88x3dfeFfeQT0eEq/5i/PNlOTc5n+OKyXss63W3Gz9e1Plb09mWhOIKBPPMfb5Dntf22c9FEy06/6GCFiIV1rHk3Fytr+zpBWtfpKKc0KJyuk7Ud39I32hCJeVMla/rv8c7lW7N5bJRPcGyQHK1upX8XYaawVOWiu7koS9bO9PaVu44v4Lfz2/sXHuNi1H0UsZ72RdZkfuzqFlxDr+ZH19bMh++2I7ruouW8NSP80XWLn7WpVYwX2Z85lU6OIjrCYiuRwAmWUB2Rpl7WvNsMy/d7y7J0gsSHEwq56m0lTUPewRC1FXO5gjvynHVk9mrChJM9aDvJzlZgcgBglXZqKpIrzmCxFx6xlwW0VXza2TcKoOU80evx32QZKcwxEEihCtG2HJly9w5h6Rn57cM5Ic1bnCZwsqs2uOw7yWJmtmwnfvJk1gE4DBDsgVsR3GSmDHSTGng/K30lrA3tb/x4rCKDw8/TH76jmcIK/I/o9PKH5lMm1EZC2QcVOM//LDAd+R/JOZlFfK8YrFb+TjcIU+Rj7gQGVeKgp9Inc71+4Mg01gamtUW2PFaRhrP6O1NJ/f795/Hnv1mmUtEoTlsRAbC34mTrHDXHFJXjFl7tluvluni+XgHnOtRd6kTf/hxDk4SQzCXlTbDM3ZyVb/7TguNhaeYoyYy8ioHV3K6dM3UB+kAKdB/n3WgK+n6dc//TmOttJwHZBoQMDkmMQ8QYtoMKReoPKonsMCMqwa9P14XhBt9pKiOIjLrosCnvWES2kaxgRgNGyi5UUaBfTbL7Oqpy5O5Nk2sT/cCPevDJKacyNxRy1RmvtsWowgOdWqOMFfPhD1J0qZEJQYECUALyDoqJnQ4rVxHXSEXOBA5AwLHpBzb6Ort9Xhp+haJQAaYq7EjbyZOgqV1AV8pE1QuNzLcUOUwzBNwYXZAV2sZL41FhW6CYCy+f1+WRIEZCE47dZQc2z2Zt5TZAEOmK0xcenEvcGz2asPmzRzbkUcmrrtNnXRjUs9nK6eEF7+bdTws0+5EkelUEsymhCeQyC+xVYdZnZD7Euz3WroGGB7mI3bDEVf6J4GMnKOyy1i1LNDlqJkkYgfzqMWxW6dORBoo44jwCol0H7fS351M7w3uTfyxb8GSKYhwxihxuMo1AvnY+NXB3nR2f3h/QrkeyDfL6fxaU1Rlfz62ZUXeVNLL0lfCGbKGK+t82yAsS1eVjT17rFDOgZODoQzRSIdf1qw9mC8ejjOA7MhvyzC2JoQ42BxQvgQIppHlQh3rurh7PGKfYhtCHyh7/88pzLSOdIlLwg6uKPlHmtiW55KR4QuEH5QBwP8jKZarEAd5sFvxOASBEfIRJTz8ikRuAjoLta1vQKf1NNWahoOdgUHKpDFvvZ73VkwCTDjc562bI8I7384uv9uXr9D7hzUFdm2k6cpQj7JiiQp2fzuThWI7OZ6xV7Y/XjhSJGgfLqxCxpClQnQLMqmzivcShZjDEDOjmJIbE1NATtLI/+Vme1kLsqJcHTpOk7oKGW5w8yssdFfjjiL1wSpCres5dAkJDkKhjrIngERuT6PuMi1Ug6aQirG+k1kHYNOpnYkxr7tsDLR2AmYBFumEqdCzsT07knp18Vb7ctCKuqai7kwlEqB0CqA7qJdsXl+bLBsgCh7LTKXA1CnDIJIYUTZNMir9ktUYuJLMBkcpgaRMPaJJZgAFWVFgxWiU1Xw7jl6QeHqlkuPNw5ZdEAHGSoH0mmZk2IIptj35fHAQ7BbpgTvqWXL1cbPkfINESW/6MiDtPhtZTHByLAJPzFSEBggmuwJA/X2mdbWJElwyX61M5eSZQ8QXbhgWgtMjKKwGXWGTkYiliuzaxmnWJdpCMYG7zGZyPrzdvfiRnx6IMSZyTs/7MHWGtsPYVPKQgeGMZiFSuBEUcEMcWGbWgyM3HpS5ucL06XHkCUz311ivKnul8eHM6IuGsFJ2aCFDuURjzOXkCA4A65sd8wEM4W5CVoqnqVxLadZApP3Exnp1nag9XV9QJHZIjd0FijwzwFVkcGwdZ4vLtqmlxYy/9ZkKtjGuhnhcLzHqu3UaJ6ev2nBgFCTEcY4Q6QuKFKJs55qbC4kcJAEqpK4x2T0X8hxMeZQltEyss2yB1Cu+hORQ82JF4QvmasNQ2QCBs3li0fZXJMZNE6QRhveTa1vy9ZgSd8wjoM/TP2U96QGZylg0ipwGgbLlBn1UaiGYyKiM5i4DGHn+GP1fZ0Ca0qzPGQeI+CnkAySI4PJal4EwycWWAyEdc0F3IXNEYQZobGCdETfZTGEkBwrVnUBMFahE6YZYgZIFLaqRgAks5OnJ3rauz92PS72xJKrDMa8AyKGlFFXgeDiciGsA1i2useXk8RQHAj8aMqZDqPJQl4nylI0NgedZbkMgiUUhiw7hufvcpYSRDi73AS65djIjSTnIlRAA50xzdE2eD1AyHAbbrvpu+n9noD/AsPK13KAk78MZigtJRW1NAKiUHEX7ssvvuEwoJ/QSuxGY0+l4j3SqwSx/2Ja4ZQeEnFpOS6OOVPnABsGWMAbd+dy583QMt2s2ibPnH3DH1YGD51kwEvfYRVqEqLstHiDjuIIMOSPd5EsXxkano3jvxhi4OSbHTOyqgzvy5raD84N09NOAzBe4VrakimS+l/VzsRwXFDnNcqUBU53gV5CcgtUx/mr3lXM6it+mxS13BxeAyAWZ176rxomcVyb9t0Wn4Ph8IspW6TDh+fd6FVl7MwgdnhWnFWnkz4czJcxi1Cx5uExCS4P/cUEjl4crB9oMkBWNqkwsQJajMPOFSD7X+TzLYEOMxLdZ1rFKXo/8y9P17BszVrx+nHCRTUtTKbCuI0i9JELRdsmwHcRxlMztsVC5KMikL/I1NtHLtxV6QbGNkiEdFKAyoUk0VaTBLSQjokzncswZIhUGwtgC0vH1PlPH6bt0FTUXe8cbGu8re++3NQsqZgzOEwXgoSvZFEA4AKxvIDCCMbB8wtMiopsWQyCC3lL4gawXuMA8w8iO6ble3d/ut6vMibYdy0jaCS6yyMWhpEPT5bh57VpuHEBwnbSKzwupIE+Zowlgydju6BhVAXs+Db0y0mPUCoUrTYjWfm+/s9eqnsSQS/AWELfOR3hB+vNWPHfYhl2xz9KSK5Hn5fFnBGrxulSRu0G+pPBBPQb2LPtu1VWycz7Kemg0suTVVoojEqn+/XPJsv4jQ+jykNK0gZEvI4Bu3usE0aTZRUB0XQU1yA/SDJ0d9pMkg9TiV7dfnf6W22qZcW7OdsIUhUzTT4BqPGk3Mk9Qm7hjGnYhQAiMnbGv0X71+lAXMWzj/gCfhxXb/N2zeCqlf80EhZLlKmCDLt1nkVTnWLVrR7Y+AqAlkMgcBtjT2InTLOWgIbBupGZJewROwh1DwQTBfZElI9E1krfIlkSkRFTmP65zQKmLJo0nICIaED3CtSBdG5gSPrX9zR0VqqbNsKY6u9zumtq81Y24sMZpLboSd7tu9hU56diH8sOCOs1a5yK6QdSKOhPsSYFUXeQ8eHpBmfOmynhnJJgGjZl8L3uY1UYRmPd7TsPEi+sJ5GmcLBnz6Grriex3ECyvL9FaZV406KMS13XVRPKcvHddkivFMV/45m6nJ1XVBgPREr2jUi4aDlQNe4gLAdyxZyrPq7s9PVwv51PbIGTu2rHgrpnrgIIBo2/YgkAzxQhA44YAdhLXh+w3Kou4NiSL6KQM6eIh4I4VqwVYg/cO5zA71PA1zMscYUkgC1aEDaniY9WAoV1RnH+wZBSplXOS6Y5dcneIH3m9IIL8rpOeIZDeK7hxn+TISt/nsxs7CKNcVxBSuONX99yB3Fy2yo2YNvxe5PU+P8NoBJxYpjvh/SMNMr/cJN3Oy5/qd8Jc1Pe23QH74nV1wIXvht/TIvHAyt5n3BNBJut3D+HNPQ2kLjd+seZu3+jBGO1uyOYhUuAACOtBkbp46irOQfGMKTM9t8fR0ZevvLQK0xAO+pKCGS6iE4DNRQY7aySQsu6fnjNdGSS2mRooEGum03yF9LjG6/i8BOkLBP3c5gYkVzeFYsPQTWVqmrAVkC4KHPER9YOzpGXnNHWUEPTg7K8gVIehD0mLFMQeJTRJ7InQwMSBF8aKXr5U+3U986qZKdmTqFeDQBseA5ANjSaE71B+cUdfKospJ9IKg8l5U4NUiU4ZlwE8ujxblrYB0lgnqMzQnxxewd1/6M419GALBBKSbed9Xbk+7yBAeFsEKB3ILbn6vEFM7nocvUmJW/RA7cS89TLE1/v0HBte4AVa+xJKdwxeuKUR5+DufErxFJKiaO6M4y5IZUluKsXsJ6XpRo0Y9QDQKAm0JaLcaYXhJUWKuB5iaLoBeNKU4Udhar/xHIA5bLmEctiFUMZcUMMw9TBVw3PwUdojzS18hSoqqRUACwRFx4KAfnwx4A7NXjxKAUduVvBI5xfRqCo1eUHxKakancOTe7xaqiqfyJyRMmwAYBVBy0LJ2nqHH3agkTe9iNy5FbGbxD+kMar0pxlJn4rmGhAW5rFCp7J0ifenWOsoKrNEXntSeU6G7CglyByTyofzzPpZkR+juNb18J2x1CwjFsJr237sce8gmeB+HKmKl+xEQ0aKC0ekmppNvx0yitbdvA4j+zw4p/UgKJ4iUxldA9s9ZPhdwKkPGBIZ9+l2PlA7ObCKUDsXK4+1jx6EqqkakHl/Trq+/IPbPDT7NtWb0TNlP9ATkOiIogz4CvaSdmCA+DZI6DULBYVnaBt1tnoRJmtNFkerg9hndNAPP1bpfbsIvgxW34p5NxZcovTq03Pmfny1BfYA2eRW8ZxjCycjCEDn59pgoK1k+HqTPNCVkXDs0AIoLFN/+X3uscpRmsj0EiU7Qj3P2UVdwEC8G4lbxT/bwLeEyRe20ncyDgIlgKBiDIFjumAqngMhiHddHVI4o/Bdtl6HxE3FKZDGiGMbcXSfH2AUYPL5eeX9XuErLtoDIjSmznrw/1asI1c+T1+hzws86qoTxx0CtwJVAXrpM/atTS2y4q4IpCaOhRErwQstHOKHjEkfoaWPXwhPLR108z+mFZ/7/vez4TFDUMz7PoNQmQY49eUWUI34jKcfWhYK25pXWBASeQUW8QyvUnl1c0jqcCt+griMfqFLkyaQQCR1lyHyamA+JQC/PgxjEwAL83vUC7/fzsWiN2I6tEJptg8yY8M3usLMFwuKNIBmke8g0i0OkX3+8pulDS9S/55CVnVOUpSJP+iFI5rpiH9YPSYdbT+HXs2WDvj3mjCEnQyHuRXh6AXveT/+sRWmLeX3Zl/4+BG2nK8wGgyhuxC0NwESl8XrwPMRUS+qJ/nA1bnMDOcmTjbJMFMSnBvjllRKt4qImvGRWVuGrQ01LZpRpEa6GNq2605b6mHrP4PnfgEfgD0+v2l1IO5Rnr0U68Iwgrodq2vtoJv/0Db/z9bfVnzt8ZUsZ5ViS2hX4oDjUFgMIARqCSAMsYTd7RLvvczP3aB1XsGd1bkT2A+k7UK0FBpSMSBgwSluGVBA5uoLKz0R2H6EzHTBMHWyswWnh+vBEE0jCPCCNWuIo60dePPG3Cv4+QbiAiQuvFpx8AyDW3MfpI7d+f95ZRIjmc/lxEgLBduvJNsC0uonvCeSSVFXDGALmdkkzG4ndwjPNIzc4/heMgDWH9Qv0OOXuxFtARa8sdknvaG5jMo23AHL9X3jGALCthLoK+RreDGQNueWnAsIntmrQvVtUVrrMSCR0w6In9XkiNPymcJGx22frptf5D2PKWPJIrrVeHsdztFOWTaIKqLOk42oiG/nJ+fKRQk37AzDZPubxEbM8U5k1MJsW1c8cdTBUjIrC0eCycVMm+ywTRMD8wu3290YB2vk37udrZrVM9RGlN9BPfdSCwYMf3cuqUxssDaoo83UVkJqLnpgq3bTJk971A1M14tUrtGbFtHDTVNye3I5NYQQg+HHqJ62GT6HGYRtkz+hYYNHrv+rWiUeSkr3LPfyzHy/2hP04lelf2Dl+wLyH0UBGnrARyRqibpcVdB5+ifg57AggqT2PvIle0KiXsVqZjXLLHnaX1zv6mQPtFocwb0g2IRUMu0XOe4xJQDhvKAQy9mH9jmCfnbSjum05E7gt3I3+0jDIgZcICIYBG8jHufEk+0CMvZdybYf1PsdRXn7YI45fwIqTdimzeSSZhW3qROBfATTRcjExVMJ5FyWyDMHGtxL2maN/qaJ4QuCT3VPSjcRBbPuOBo7l+ion0o8sjyto108S0DY972D78QVncPgHOT989aQkaJkCSfpD88frXx4i6fGhYj7ayXTAJp4uWY9AbWAqPMwUub1XeIrL1pHC5T4p7AD6wN+PI5iguL1viB3v8KEv5hEcwg6K8uvp86eley1JeHZ5zKbpOnuTNFsUGE2J/P1chmkmZRKEHD2xcKk8tGZbTreQS88OBAo1Eovl7jo5RP2SfpdwQf4k+XgvcwNiluE7jNMAjaY4VJAJmDnkU6O0E/ZZ+SMIsCLxYB1xFlUKiy2R2GPHYFdRBQD8wcK2rRmiSAfsyQHNRtsZiVZC88luIZM1y1TLiwZCijonkFAF4Z7A5j07Yv2EdbP+5pPNCOOPRN6ALGZ7xs53xCIpxAKNljrqvZAPqEND+4g8szohK76VcuDVaA6n09hUZiMOBOW4eFSXNP/f549vwswgi21p4t8i1v35J0gl5lb3GhzoxHQsDrIFmqrdg9mmgNtYSGuKhaZ7Et4663PLwK2k3vPnz68f/vm+fjyxNQPx3xGS+k0MTELwN/nhHG+aixR4KA09ScQ/g/IDUyfG+nwTJJEbPVQm9WVOjPgHhd5pkxKk4BsYU0kjZGAs2ZZBhVsyKJwx8mC6UWQY1Z8zaEIuDAVFonlN1DAYupLA6io94IRKVNST7ZwjVL3ONWJao5U3JzLPYYGt658Qs8GrH9VbMUoFVk26h4YEkEMtpMYtYQBu1hJa2M4u1tp5slSiVS4QPVwvyCu8aN4gJupUJogNAAA2ZvgtVGAF59DWQhnAWjRbi//YNOy40blcJzY14IB7TaAZ2kF8aSapJwYHQY4EiLWG7U9mMr4VzTl+OBOWcQWrpV1wBdlMh898UZXXdEZaxLgq2pKsvVlgD1zS+aBOMMV4FgL83XSZOtChdZIxrryRyPwUvL/i7bQOuoB+uYGt57ptGT0prpKKPQz2a7Rm4cFHxCJF4Y8GH3IWm2iT0a8fDUfrxkc25ftFhmvab6uusDg71yFy2WeN1UKIA25ZAxtWLtUhcgS/DW61nKJLnWBVeq5z2cIa83bVTw4xGOW3Lx5fdh59s7E7/GMi4+qbGa3LrNmfqXGrUfX4O9H6/66E21zJ0Vd7jarJZ9IcvcBkmJodXZ8MyMdJG7hkNf9Nzw8XIplNu+/xlA9ji49ZGovjoniIytN1PVMAAA+6+0JfIqApL3yyBCxxihoHY0YHwYUttt9z6W0d/VKohsNm5SzwTa/7fLE2baqUjCvtangqmecQ1Vg6x2PSHC9d0UZb4Hk0tvvEKBe1XmMVAq2YEP+2hDszPvv/ogs54Cwal5XsuB6RFWTVVTPUJ7aoBIUZJfGdLyn5wm5iY2aKDbqEmM0ie3mepFU48mWrxaX5+tzTehi09M3PuuwuC84OiXIZAVhD0W5cgCuQsx/Sg51seiuQbzipp9sR26W3l2b+/ae6+dHO5JTlfZxMWT/jWpTXEpJIiTc4egHrKJS1ywMSjFecSJ5HaMp9NdTrfhAFTv7HtbY2Zbmz6i4KqxBuFlbaFl5G/X5ptAfaTbtKgGTvu3p4/UFjMcrWiuKc8miE2TEoaob4sYVRhbfZNmqQ8pCj2NjfKArtHzsmy3g6Rbu9p/yhK8LnHIJ6JPncVR6jMo5iNzSPFeylGV14GxU3bqfb9ZGXed2llpTIx1DFR58uiowjJ8DpRGAQkk37H90+wRVe7+ubW2l9VGYCmD0m6hQJKMma/HKldYgsDhfAkCJNO726f7y7OZR2O3za+XmLoUNSJPxFS69WeYHZIlG25R2qWtg0fSn+9PHL58/fv30dSJuAuyFQsXh4T9MSFUOAousye3SqAmu8cbF4/356fIEkN4AGUa4xOX7G9MJEWBKDDHnCH87kfOZYaOoxNsqFsHCWW4yu21xHnEK6SmLK/0VZra5i8TpMsjb54Jca/qg/9X4GEOam+tTt0ZhTpuq2t5sBeoCJXhaAxrzpSL/DjyM2IUM6pYvAZR7wbdp2AlPaZsBd7+PgpgqnY5Yq2f4KB1McF9jQ+WbOujmNx4J+2ihI0/z19vlYuBSS3wFL7fClc5L58J7vrwpZijqBvFxKh7rv20ii6F1gzJMwsNG7cgPnYreayGybAzgje5EUaLr5N2KFxsCZrkVyuXqbCt0DvzpjD69Ei0aV4ZkUqd6rE3opL6jhtmS6CQ0ZIHEFrEzpC86sMbDsaJXWDlOPay2tqceFGmNbOXEmEhdDwZqqA4cWwuM9R24hObNvGTQtE57lmiuEFqz1G3rtGWNpgqhpa1AQwXSzlanGWudNFkp2LFY4yecm6fzeiFbBC1PDqg5uGDpg2ytD+vrgsEBCAjY6/uzlHqWw9+gOMYAX71j0B6AFR8qsJz9b478wMFzEVgG+6kFtO9/0xCB6Y0dLnIkRMbpOcedyE9w+mH3DcyLxqffZON5HSaIbrQJXutDND6sYDifH/CQQNRj7/LaG1zWGCFwdPB4suhO8e+4EZUYKocbV7FoflwvXKpHeK3KsjEUHisZwAg/IseEqPKBN69cK6/NzmKi9ZLPd76B5i/8C17zxf2eGSP5Sc5jjviLm7GqI99xEqOvAf0PuydMLzqR3/RsJFMm5FHFCE9sgwJ+w93HmYZw8wKSaaMDZiFyl5nwEs550f3Ef5bHotT93ZU9HvPkTS+8vlly7V6R6PKRVZmn+CLxQL9FtaDWGYJN4HtERKieN9AQEn5uL8LeJPlJzXuf5jtgdJK8cPpyMW7FKr/BfuLsNvUr+xhHHcO7WUHzB+wavR+RpYDRdXVTB7XzCC3BGDKSwsQwF+V5HhM6+cqVL1qyLdPSaiTohGQvxxzGRGPwuBNrzQaYBdOcmdGCp9xLOI8A2WYHs+3dZgcmomMRbrN8Y8+UATPGxPSmDeuWcTkiwbaNsdgR8l2E7XbA4uUWTyFsHU3hDMqF31VKdR5FGbsRI0ln94kcdHpAzujUbuaPc3pwk7Y0E+qkacl74pgmIcc4NFksJYCMSftKLVvx2zc1J84pwC2MI/mZUQSv3lOPHLvZkmyxZOeXifYcfA9ngKAYJqElM+At5jevOx5r5imfj0hLRyMPfoLuxWh26nfTPNIZrM9ZhPDeKoebEs4C3Ls38p0EbMDavJD6IIN2lkIuVq99s8p8sjLiPWI5E8xWT9hvhFtmPp4T8JAu7xPatu5tEtAuXoKKOK85Basw2+NmozaL8ABEO0Q4B24PCOc5Ki2zU0hYN6E7vMiRHSFrvatcE91WCODRIQj8/y8wz1wS+yT//4eJ/5R8TkD/DX4GVpiNNcfAt27SeGqB49b9ygQyrPc9bIYS6IJ693jw/2/mTuZj2f7/8Sw5jJdw/f//+ay8OfneJAj0QqFIAhBhfFaOAlc/ufG/xrHu8H9NFYD9fN/akOJ8vmgpsqaDJkc6URJBFzCsw8WI20GXEcqgy1FU0xmia3SJnWa6Dp5PdF2cUul61CrG9Vm7AgGaKADObdFCEX6HKMZMFyUQ9xEl4i+TKtCYBElwDqrIe+spGWcnhZ/B7YBSJWyA0hgfgNIJTw9lMD/rkancOU1snPN2Qait77goLSRR/ArC71FanYDxehhAqjXcLI/HnCdChrozZUFqS02WlVlS4TR2cRBJ+v4n6/i+31YeQvHCBTlb6gw3NeSwiurhZCLYDjP6P57VQZMLhOLk+jAXoU7o6LW6Efz5+gInDz816FJa234Lw15PWdBUhqxvKVBNgu5Kn62GJOaAwphDr6WrQdP6jovSQhLFrzCbrASM18MAUm12iGZmNl8y1J0pC1Jbamm2rCL4ZXrhNKqBo/GERbcv/n22hv6+Z1jZQ4El2BbT3RtuarjeBJkZjxSdWo1gFlkVST91T01Omm7eeX2Yi8+m5F9/rW5Y4F8iJx8+G37yAoPptv0WmrNvDpoqptH6Nrh5TlQTZ7puIUc8JEK3bRhrwgB5PxB0a6rj5v/HeL0ISf//Pp3+Riapf8BBVgqgQ9dvc3BRJKQIev6LjCigL47XfMV2640OfTEQEwwYmomF2JEZlRuFcXn64xow6Ic75tcUTCpkWhEzsMvv1T0J8tcrwCoW7iZwz2oPEsZ2Ml2X1bL0kRWR4NWLdXxv/AS+wmziEYg9zMIjazzOUvQ6Plt2adOlz8A+I5vt/xy15sQxi9EkQtah3HLPI0+g+f937tbmZ70N1rU4f5tslN8SHjzNBnBF0gJ4eV9gCLxtKahg8bYVYmuhhfHh63vhRRRpUUuL4ueJhJZJtKPltvdn0a1opcXFFMu/uFZZ0urWtLZ1XpMKaH0b2timNksSaGdb7JIiua3FK2ib3eoEGRcspIS2lyg0meutXyW10+GShbXLf1aF18Y06fbEzOntaW/72i9CZAc6SBi9miztsCgfOqKlo5Z1zLuOl9mJsjpZdqfK6TQ9BnVoiCYtyevv8sepsKKKK6mUZEYSGbSURr9UTZer9cjm01hTzf6SV0utyVygnDUunr66WJ2GoimU5TnSmZ111V2P8CpoZVmf5XIu7zJLJWr6ZQ4q1VodNppKS9V0w7TanW4P9W2MG7+e0m6vPxiOxpkhzpsUfEGZiHMYDihhmWe+KkRF/w2N+Y9DGEg4nDefNwFo6JaL5kQyIlbAJKyIyfhRfrtZGtS7wnU0TMcMzIR2Ha66pkGjCpVuuEkBtSzMHnm5o9jvOsWqKHXAmXExTZikhU/mhAW0nJbjlDIrFI/nhP6ZmKrzzimZmlxknb8EQIQJZVxIpY11PsSUC4c0z3QSAhQZDjrqiGP2+dOYvdq4zHyyyaeYkj2imqC6xAz0UZN5llmFrr+G5jb3ecxzXvOez3y3aH5bPP8tYc+ehOP+9dKIpzINc/PCELnn2K8YaG+FtfUx1z73faHOkJ6MJnJpQm8qLtWgQleXfqEfC7UDz+bHdI60NINOC3pPUmDocQdhgm2WKRYQ5G4eibox1AgU6wRDIQLtG6MPnBPeIVH7Bo0P76dA+569fif/QcqGFPKxIAvHjtof1OZY3Fjq6FGSeAkjdhjz8GF6W56e8WEvJMAMfn2e9aMEtDFFHIubcdzfznLE3JPp5fZ6/vkgbmWpUitRRgljvGO/pOWwViwI6zxWKHs8u03B7o3Y+G6j7szjxljI3EZpH3bcpN3v9a5jMsqcYRcMJyr0XszdAcHA4baBY95Ac3STEuclC05uPj93vpOp3lFJpiBwPGOjLgZHWaCaDk2SmUemilKg+/LzThIaeRhqrMB36GxQ4LhD0lZSgUZVRpHlyQsFSQRB4YsIbouyUioN8NDU/Jerxv6S2407vjhmJ9gAa5Bw6MOs3Ydf/qr9ZzAiiSgde9DVSNazXA66kjr1P9oaB83FdOgJ6grbJHsSjbuhkRvdbW9AqzoT3pxOJ1ol5Afbd1m41ZxzOxzOccKJXu4relcfaZ0XXlzCXqRcJo5VHG7WR8r5rKbjygumInwHeLz/djgymAmlS/KJvvttsGdwogOAIUIM3UcW8QAEOzo+cAw6TWLXAuIqoMsJ/ACB1FQGko7cicDvcFtHHRKDo6jid0DH829HIwI8UadvQz2CEx1EqcWyI8iiepeR83Xc+WJvho//4xE8+qIAngiwp7jOj+fN1ROHZhc48kC6OLFQXReq/oTLOfam+53wjpOH2pyqrbQf/JLrBEAIxhMQdD7WjbjodHUh083XDVzEtgN2flmtbG80WHO5jhYbnrKaDS+rhiaSXZbe0o7BmKs5d65mFV8rPhMQIQYhGE9AUOIPbGJ6Vy+aBHeHpMA2EYepo/ZE4hAJRR6KRDJyb3Qv38nYuwOABxyC9oA4gBB4CEQSgHQZtcnfgaWYCHmAoiiKGk3QhmGFre9tXhy3JIK5dGdQDl3DBC8IHv9Ei4+YOp1lc3me6f39m3JhlasyLy0aSaRzGTpfmSmJ0n7MydATCnTgeKu7Uhko7xe6CBuhMc9tuT4iMEfl6RpN17UkHUp/XJju7uP2m2OkpIx9n5e6CKH8BJklRBQYi9AABzFW5AkJU01pKGumchECKbFnDRWa6TwOKUzajhEjMrswNtCGZFyR4IyALLHcupxErjMAIdjxrQZrHUIC95UQs1NsPtLpjhkak5inj35mFVsNaxKjRBIZozCziLWuAAjBeAKCEklkjMLMcnd1WIJ5knVhxxADo03XveY1neoOP773kpN4kC4xYnJz37iOLTyYsGQUyJLGfuynRdGfAUAMBL4XWfCpKFAeWh87WYFWKCuIM/texM1Ltvvg6yJ/PVIsKq2xATloL/LlC/+6RjMPCsOc1hhbbiAMPkDEnC6S4Zw0Ag8rCnQCbkAkL8/iZUzOxM1z4yn4oZTeTffpkv42ERSuMQSRjlI3gHudEGWsy1RrMsI7XKxDN/pKTrdck+cxwRt7GtHgtUs0Ts+pHp9u+FybO4F4/AaD+xWFWJckdwAAAA==') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Athletics';
  src: local('Athletics-Medium'),
       url('data:font/woff2;base64,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') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Athletics';
  src: local('Athletics-Bold'),
       url('data:font/woff2;base64,d09GMgABAAAAAIREABEAAAABaaAAAIPdAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoEUG4GkThymfgZgAIoaCIEOCZptEQgKg48kguFpATYCJAOSXguJPgAEIAWKbQekOAyBMVvzTHGFmnf9qzKD3qyq4PCNdxglbDpw+tJz451YmmWBCnbsEdAdBNXTzaMg+/////SkIWOWBM1dKQJoQUC3+T6sIiJhKj1KclT3SGNI3AqNU8GMBfekx2AsmdRMcQ+1RqhW8r4N+Wwx7ceMc650lGl89bUXjtdSe0w1+GZ6N3VOd+n+cVTMWGuKkbLyT6cQnmXFQcE/sxxb7BZhGz7hgP1L0ZzC8ac2FDFaOm5IfhVpS+vDXbaOL5ymEcbnE1xiUWuGioLg1vGhT9oK2gqzyXBGCFubrD4Wgd4BIw6qBUnvGFC4/AuYk83WCxK9ni5jrnpTtctXfeELv+V+YFXWeTVfLO5QTfvzmyJM0eFBvtyzn1TTDaEM095tV9lhusRCO/+/4kGf8mZfyRJj14NUyyyOLXkS/7zdU3Xu60H/gRUZC6b68ToDFG0ERusQjMGMyh1PD/Fz+7t722PxFqxg1KgRI1KYiDMasTAKo1DRj9GoiFUgtICItLQIoyYinyixsJAqkRYRi1llZpmZJbpnFsABerDq8XghJYm9CSJABwGq5R4DN7dvUSjrYx2cY9GxYL5l0qXj0SIHaG4NUCIlJLdbsDWMRd3yYl0MxjYqjtZ+UUkjwSzUjzSHCd/61fqBfqUfDf+Ptn5WlOBp7vDw3UyHD5Y18P89QZOVX9QU9XTVyeD0T7/3n9Zrn0nvTvZRTvkpT9ZoHDoJg0VnZdAIRyEMhY7CYP+hf2I/YL/34ZbME4msTTwU8ayR0JgOSSwUQiJRReRH04OFLTbdTzhBgsYjhEB4gQABwePU96QnKbFixxn6cwDYFpWAEloAC+CYndzv/w8BtKXW8QOig1PaYTZEpSt7AQV0PG+Unig0UaSr3LupaplGjCn/al/a5MJL+K5loylIhEOLOhGMjh63/Nhm/38SAkXakgSpGESgLaWiM575nav9IrbbvLdbzVzdPovu97PojwMosn5UgOkNa+r//fQvh3Uba7y5p0mXNe02pkSDiyghYgkYEPtStY7SyrLXYf+6LDkiE5lEAh+Sm9+XM6uSPAu/pAXiwxGAurtkdTLKjCbjhM/L0tW+BonXsHlahkt/33ahSyhPVSJDRdvclQzVqfK+iOclSADYw34TufvyDjybRVKmklwn3hJ1Zom0VNnVXDaxNbbCXS6A1xBuLkDjC5zksYC6Lzu+FqVoAQRQAOv43wMf9IkUwdgYcp38DwBYXLPtIQeoZMKtbJ+NBECzqVWgMQgWkDkuhVgW/9Dbr9rvXC+TPdwsBjRC4ygfM2VqB3hC1MkB/bL9eUrKU1ku3N7Cf+2ahWQjXcOaoCbyr+8DwMGdXwhcLZ3Ns5Px59ZSdnyMOmn/Ps/wl02n1HL0bgxG4Us9SlUZJIOrQqNVcyiyg0Y64XliWrObvAkloe2sOomOYhDmrNxG2fzrOeiuVnnqUE0YjEeoUiWDrOqMh/k3Vaudj2CSstZPVNgQpb0kX9bboiEo2RdyriL+/xPwJwACBiA1CKQAkJIgkhIBkDKT7JnBQB6AoB4t0X6UdV6HpLCBtLx+8tr3HkBQlEg6EJbtZ20IsbxEbcjhYio3VVuUV2555ZVX3pUplM0RVMuUbksZCsCDgg+gMqSjFK6ElfFKGT5WiAAlA2YjAxLTQYdMkBExMjQiMoA2dnHDf7VsnptHDEohDYVRbP++PEtuRUwqZDWFPKFQEs8JD/zb721+s3RHZr7xCMc65HHyl0TtuxK6cl2G0lypTkCFTsxjgG4bpah68vD8/PVVzr3080ehJCNBJDjBDiGkgoiItfSbr2VPMbvh9/Wi+/s4PEopQyki4ooECRKCJ6F4pbc3TpckNf8rYKebZ+Ig2+pmNKenpwgWtYJFAtPvIOBsbikRe9Y2ZqzXZCT9yObbpYVvMtMKgeABEoi8KGXb2WgBTOU+ehHAGIDE5oDmWQNabwdol6Og4yJAUWJB8TJBT1SDar0GvdUJ6jMKGg8DMGQoBTM9CMqCEMybPcC8qwHMx4Nghp4cLLshsFq5MAwEjOTUAZ34idWLY17z8wEMp4UEMCgpZLdHOfozHQnIfgh7SWDxHe4p7XbXXxe63+OwoseDDlv28MMB9H7YbUHpSuIQfYMQMAwkTGQsODYVqig4rnyIiov3i6Y+DOdtXXJLoAixUmQrbJf+KtbXgavRoEWfsfJvk5BskVIP+ceFCihAVqFR8dlKsuXICOokbDmRmI5x2MA7kz/L413fFycZjU9jXOxHnYRwdn6zLtz1u7Tdf4UmvHOXeWZfQmq5NbY6zE+yYgPDoeEks57DnDc32+ORO8te03BkjjxX2JYHstK/yH9s4o8oBZKHvKg8nFxW5qdnEkeAgSLarHrTA21hwz55/iw2DMof3Sl+KgiU1M5qFVLNgqyd9Wbt5tXfd0ogpxBcVLlwXIokISULZFXyvx6hnyIz0CgHAAAB30urqEasGIt1CRawsuNNW2eXtgmWto2Xtut1ISOt9MTwXPxFd145Ze1zXAj/EZvY1U01UhLmIoGjDQgAAwyg3CwCAcmx94AAfm1SrysAqyJKKqIArWFVu6m2VnurNqo9QkuSEEl1U2YdQEURubJePwmXUGShIZRYozpAVQol8Km1wDt4uHz7TVD4fOD5z841ZO465ZmWD2J3ZG7GbrJx6ZtUBFjj6SMUJPe0te2ZiC9IZ2P/XhuQD2vVQr5j1WwG9tlCgG0niYLEhdyH2hqNT8Vm+eVbb4bCp8XnD7BV6Wg95kQ66VEmlOLtnJse67aAWTx2jF2KLQw84+TwvyABHkpj0PzrXN/GF72c1axtE4fA9I/s1J9NJ+IkH/mpO42n70xkN+yfWA50YYn5cMM++CAcFWhAB0YwRYKsQRPKuJLezGEpX7OFAxzjJKccEk7D2Y6GS1AifEM/w6TmYu7mZb4WaPEmtyprtAGb0mx5KljF6otwIuaRhVH1aH9MEfdLbGc/xD7ALmR/ohOMp2qrulIVU92kmqJaxXo4iVPkmHPmcoyczyKwf+Tac124Ue4S7ji3Pj7/HG7ineDJeVUJk1/nH+VP8t8mfclUGiXIFigEFenr9EM63qGp5dUc1FzV6tWWefkvEQX3AC4a7iFcDNwjuFi4OLh4uAS4RLgkuGS4x3ApcKlwaXDpcBlwmXBPGsiGewqXA5cLV+6qSl4+wzVa6/miSbMWrdq069CpS2/xq99+++Ovf6aSsj0AQjAEBiYWNj36DAoJfGbMWbBkxZoNW3Y5oxVI7M8lpyo5DJkC4RmqYppKsJRR99w6qBj1528KeqbtLLdbpd2HqkdPfQ+aoMaF21/7oiwKLM+QFNNTgqK0KWW0VfYHRoGimLYyarsxPIg5HWVyoyphqYdiu5JzufUqZd+49uCBd1ZXzFhJlVIcZfgRylZ0u7put9jDw97aY4U7m49zzvNx4RpUvUurn0zyDFsxdWUEKuGP6q9xMu1fyS2WVlhGblnBspfqOTnJQ6MDMqYKDl43bqxv0flLCRkJHkglCAYn8UOlHJ9NHTDP4IqpKoPvbgYqxl6mEYI7ld4yzgK6JdBWC+q54B4I6aCwNgnPEL1MxpCT2+Mx1VI6JLWT0jsnow2yO+xp+Pssqk1B7Bm+Yo5KqCulqYyNSjTvi/YpuS/5a+qq5h5qKVJrF7V1WWdx+ntmqDwjZftTqL9F+le6qVIplXcDZWBMWZCpTMxSpma7O3N7XrO3aVeXrqk3KKV5t1rEZsuCWtmqdt3vUFTHEkqLtYv05phubr9/+9zrYPU5quMeINpDMR6JFSdegkRJkj2WIlWadBkyPZHtqRy5K4UdJm+lGIu0hYrCiJt84ybfWu80eO+Djz4Vn4vU6IsmzSPEigzadejUlbsL00vuK8xX9PtWDHTZYB5KbthNjmB0qAFD5O+L9CwpspkyZ8GSFWs2bNkhahpRuD7xiGuIZxmJQaQgDkVbF2Rr4sSvE8V2pF7+96ofbGwBvRfYHUGNCLYXhVeX2hPp3VIUGE2RzzAUs1bCpV1/ponK/hrq+WC/mgAHKfWGwaQNiduOnyz+jMhRJd6r4c2GWGfV9r7YXkCXBXZQUPcFd4eT1le5J7q9YlonuWMed1jK8qDUzkvvkoy2j4lyI9VvKlRMrISWUmxlhCrr8yU/TV3S7O7d0gOtXdDWJZ0d6l65hsowUpA//J5KHQtPCJRRMWVyljIjW+u5laRZfdp2TrcqdcMZ/jtvt+5cdvJvoLTMal6sQkHTMyzFJEoQCv//NVKJGmjmHDXu6UnnbxIBO5Fy61TasfNPMw7/EnxwyUFGgkhEchON8BhNFg45N/k8ucA6RaYrt0AVN9VGjVp1Xqr36s3eE2gC/MpNP0dDbH3HMc7YD2PCzzR5h7jsmo6TkzGDs5lkZqXZw5WFkbNHsmhvAjFryoJd6pkrt5SzLK32kD2NpKVihjjurENVJJwcLt+cX4Aa/BZVcNVwNXC1cHVwL+Hq4V7B9cAzIBC9IRAIBAKBQCAaCVRU1J5wVFRUVFRUVNQOKg5NmjS7N8zlBKp61dVraKqlqY6mlzTV0/SKph6zC1H7pK7/8V0ScrmNKu1QJfghhNCTJhZ+CCGEEEIIIYQQjlLY0Gh451JUZfSU26GSk1k8GJ0p7R//gXHwNGPBdieRcKCcCUlISEg2JCUCqmgJCQkJCQkJzyLEm5FynsO05zbSmI2GB4lVgARmIfdPSUGfy57K0cZ/QAK2/LpiHU7Iab24YTNY2PS5b7NyJ+iei26HJWAa4xgleQRi4JWmXKRPpWZxJWiDd354gWUJ0SUpSmiYclGbioKKTuzUskCZAt6GoRc434fS+6+L8lzeJchsp2G4zQR0CIvTiXGQI8dIKWQ8BBYeY1bChIkeE8OQUStEqiZvmvALLdciwE30hCIYN2cxV3qlqR2tij7f3ExcdxciTBu7xHlipO639IOJlPvaPDeYhDqAscy6UGAMQk1B6ad3pRDvAtf1MBCKTzhdGJXtKuIMh9YQMEipZKxtn+BoLIhV7G57Ja9qtWIFXLfSUUhbhGBYpRMBtOMu/wLgKkjjQT5HXsA0EzSWo03t2MszDkpd0Vm97tIeq9StBUxjSmkMNd37Jlo6dVFGxn1BUr5I83EdAq6Axe3hzIqsMZzhG71OxsxnSUki8aDmfoTxOGOFJRCqEhMtgmosL4lwWcSIR/xY+Ny9BQcmZrQoI2mjMdsJ0hviyPCGY+N0tpAwJbjBpbE7lE5RgU/QMl5JCQwdS9NOl4UAf5xcQiwwHJ7xq+pnpNm00h88wBDqBDuvHjhzckCghBKoYkFgEf268KewIiXDgp6jWy0uvC4T00iJITQ2e805QPFVOWWvOfa2LLJDOpggq9EjLhZCnwMYrc2smwoerTeUCTdNmSjUYllEZnLbGWIeNcm8nTkW/0aymaVdT9oqmbbrFoaKCVa9h6dTFqWq9g0r/XQ2LEnRiuhu3aNQJYFDuYN8NEQJgWGaW05BxBMyEdaLRGboSMN6W/34yK0dJPkdx6QJ78i6WQOsZvTj9Lhmgj+9A6kBuyalxiNnEFlvAWmTQ0nKXHoEWCQi6p7uKi4q+ZP+a5w2ztfjbZimxEo2ULSKA4flCcrUDVNjsQh5iReFK+atefR7henEpTduy2O6UlbXKkJ4Ftv8ac7AVTeaVwHX/7W+cA6PVd6Mpf9lI056DHkQN7+nXjhExyNA+BsxW8R+2ZZ6jr4bcTf9U0J6IDJjTiA1SPEn0U95xEqjl6sAMqZDopFhhQ3pegDcMY0Jm7BiG4FaqgKkTcd6tNrQammQw4zMto/uQsP89pEi1IgHJhqUyHpEjOulI19O0jR/BNlZcYjVuw2V9ijs5rOYinRpeJA0gpnu3H7r7Ki2ypi6DRrettIzjYVq71KEfT0tk+kDiVDMTBnDfOU5mzDmVOO1tFa0aDg5t8f2gXZhDVy01d4laR7TY+ygKsqbJqwu0daoP8iMJIQOc4l0RxXka/MQ7QdCFmqbhbiN48YDFq0DQD6qSsFtZewkqjSBtySORvYn1jrU7Ozg3Gyth36D5XbaXXvMDrS2udV2FvhVH5J/bTK1z/PMN7fNC29sSRkBq+TXFUuvP+5Rz+JlUixLTB8TIj1YgsrIEdVy5IgM1lRXm+A2QRtuKELI697clacRJRVNIgSIxkguHIq3PeZRabw0R+Hjve+/d+Od1Kxs1jami8sOq0MiFifStMo0TW9KSd0mHArAiIJy+03IDD02VcyjNUJ2Tprq+omqHnbUDaZGSsHRI85fQ8+o4wa0p753YaImCK5H4lxMl8jCtXLUWRUxIgqaojWeO5tBFFJy71DJNM2LKG7KxD0p1LzJUJgcLTDA/ojy+AGPyBeRmBbCdciwJNxK7QRK0+6z00TIuAI9qNtIvf4n5XvpzU8Bq0Y99uirjNBq6qHSFabQsMkjeKINBrHDg1ENocfQ0lAGnq8FCmXFBo/R5oFcHErgPPeaydS8tNDbpxZES4wvkdXMfBJKUdOqM5x7Sa1fLCOfSpkdgXYjrQVN6y7THczruaTSaR9WHIllbXu7ci4rpsn0nvQUtkWWs7duRLUsBiS3XN5CqeKo/rPuAh6KWz1ZlRKlxtGw0iV63G3y2aqpREioqGmVOFMkcz1KIdiopwYCYOmmgHdCY2MZXS6le/ND/+DsvHz9lRW+koOoYIeH0pLiTt9YZ+RpjOBMx6EJaQkZwg6qxz1hldcBKEZa9EXiBmjTvTxOaReX06GQltNEeqFPAX2/u8KMntH4BGVaitq7de/AhZBilPx4WltsSQJ02g2QpzJDbY/DdTXcMdOEUs8NI0dqgNbrXPfSuRWrn9bMlGohPDOAtdLiio2UHBUq1/2/r/QLk0TlxnaX5t++5Mrft8c/Xlys8Ob1FePaI1D/aUva8ZaI0AJWKyXaUGzIMQ1nemQAOtXmIjYVQtL3HNHI+74Ic/pzqNIbHiuRUc1SshPB2VXVq1sobJ5jzH0DH8kwUxo9IXF6l2vLh8wMzsbP02MnvML10165VRrmm2r5gWKlXYSE5oxoVLP2VXyKNwsq8uFeYrZAsW2xg9+5AT3eLcUc2dCD56pOpMxrlO5d400P+0uKtE4yAaQy9kNEmRcZGRuju9Z/sXgmm9ukqWd1vZybNW2Ld900oaOC+/xYKpg5huk42QVtdnx/ecqMRd/Iu8yLXtO2P+lQW4ltXy6SJ9VLVP+ayoRyZrvnyMCSj95rutQ+PrcIW6VsLo5C62990KnLXUlUVvZeazn9PYSkGb0iN95tshsGDy31gKUxOWHP4SxjJH/VQVjIcjfe4fFhlHDcVcg3UNsddUwv9oP6HnSKWi7lSYh6pGcAOsJOJyqjb70wtMpsk153sm0v0NamXYe7bZXDhR34qFMKY0SaNYUD1Dnlx0vhOWX7A0aV81yiICGV9B3sZiRN673nDa0zzFZpTSaS2tfZ20lHcD83TCY1xc4C8nBlGK+ajmfuN7LH6iV9g0uuACMMlsOTY/JspemVQnM+LBkngdl1+bxNCi/+ujjhJAEJvhfEqSV+28BaL6xVkyu770F6sIE3c2IoxzNPDx9o5v8gAUu+XbIVhID1icOZ/+wngCH40ALFg1JAWSA5SGEAZem7KvUaND65DfA44AkoJqAeY8CYyWIKDAkNmyCyym9EH/Bc/H5kCqXkqtRPokGjm26jpsdYnuahBKBWkaKGe9xTqM42GjwdFm0dP8+HmzdD4SX3y8JdTp4942Ec9tDK8uQ7ACQinmaoNntWHbrpgSY5SbFxNZjpWDom/eVvzdj96ZYDfwIJhBzg9EA+IR6SAsmyZyWnUKrqyfWAWwB3ge5AGoxGbXoMGDOZptpDQltjAx6IHzrhC1NkHezIrq798e5yXJ2mb/+kB+lDrtEB+1iwTwb7DLDPAftCsC+xKtR561NtC2wkhUZGteZA/wzYd+k3YiL9bR8hFEw8GqVu2rJ525T/Z2T4mnvVvPRfFPetUV6vLfno9eE778tXh/R9qvQAHf/vzl8PIEx5kktmh5QZK+WB/dan+AHIR+XcA8552EByePyCPsgjeZQrvI/xsYeiTyhlhyA1F/rU4TKezqdPr/Dro+c0P3jP8OPzHdz23Io/u56o/lMJOO+MY9R3+sx47Aw/8w/Kc/2peApN6NbzNuenAlDzvcd32r2nBQ95vybpmXj+PiP6qUDLi5LeQnmzYwmTTpF4KdjvIl0ZSUNwYAdTsHkq7AqwFTjnSPkFlYtkmr/CXSu17od7aaf2HczbCnU8pIvkW/BTim//Ncm+8wJ15ycUr3BFJylLcqXwqQScJcWespL6Ss8M+Rmu+pxTvRoMpJBGflIG1KaeuMY02X8qAOche/EZ4/kxE9hODvzWt2DVsgNPvnSROR+aG2cj1J3h8lBRt8X0M/aR5h7YXh5asq00oDsBzVGeL5BlCbEJlF8bF7LGhjiIdTSXTBcCTmxOuBwX2HXGYMkqcsjqZ2rhxfVnjziZTgf6QxBFp8szS4bXlcglwkCnavrDJjyPjecSlgkbQqR1XqZ32uTgIYmQQ7bbBb2rzxXgm5lUx84pE7gy8JxBWIcAEyI5LCg1+2nYfF3yIyqDvug/hxPHi9ib558e+vK0ScjUkh4o/3vsM/tAmBXbKmdZWY4cmO9Xa2BkYmZhZWPn4LTUsry/v8pqW4dPnT7zux9+BFO9b+TojyZ5vy97yRdL/79s+Zq1oDYVSs7ppzOfwgyD8NFGGzANC6TBEInERLKYc8Ims4nMtZiuNfwYCzW2nWLF2yVLLg8FxnZQkRL/KVXumEoTeUqteqf1Zs7tpQmcXyYEPiOXuvCyncN8ITQYCVDqLBPOZnE0h58ZoXcPN1tVyK1RTs4geEzEAiETrFzYxONJgJD5iwe82J8l8Dpjs2IFCWuhM2RCiEQUDeSFg8iJPROepJKpJKVU1KQfRE8mIvIEMfIUMZObI1byKsRupld4IKxoiI5sQBAyuZDKbmqgjgxB1MqFsMp9YRpg/5A3vauhjw2BYBZA0AuEgMA9NoT5IiOAHpmVNjsg0H0JipX5oI24nhEIgw0ZWKejp+BRiJIkREtqKZV6q1CyZZFYkkHtukrB/H8ROWUIplwtHm+6cYhW12dAyuLXwaguxPdfZeJ/Vl1ITXUhjhtSzYEEOUtRkQBk2AJAjOGp4/XIK2RUZ7KSVRY2KiYs0IAJtCpmKkIqqUSUVKklqKbwcPZzwSy6Gk7k5spUBOhgkPaOm4TxgjFEgBihOIyUkUZBiNHUZCoPAxMNa7ybOjY+jIAQlQYDNIbGZBEzxRWMw9cWk7YUG86KIz6p6XBOhinMdpguZsppKt8Sq1GtQdCsFWTrBGF9LtAGmzG424Fjl73U7HMUcsw8luS401Sc4Y3urAvYfF0hcJUfVeHA46GioqIW1OyuEYkabkG9I8ClLuH2hHANasFdOE7Tugr+ldm4tRTcYs29tdbh4kfFpQUyXY5RhQiJnSrhLwIhcozUFSWTjqxuI0/kLlqO0JXPuv2nmqmQbj1FylSXI3gqWK8XTeWp8oqu19jMvfGJns+66Og2Qk8P63Yqm44+3+gZMErTGGK672zEm7vq+xUGTFoAqUBcOqQDVgjIXt0+t8XUK4zEOHLl2FFjosX0XsAmdkI6iZIR9z02ag6TWBjXb1GUi6ZdB3pAysgquw5XSkO6VXgSlLLnaBU9yUo5SAYcwRosqqx6BrLsfCnb3uWIap/jSGkzRd5higdgCAwwBEaVoFsh7W4jg15RS/AqVzGjAvqtBGa8UqI+zx/CNw1ixl84VfdFoDTQ4Xc/AsWOAokTZPEmSaJMlMYC00G1+ajNrKZ7IRrDXglTpYaKWnWQlwiSekYtBZpD7e7E10U1RTc8CT46BjaB7t+QnTiwZW/UFWb0GzyvKqaT/0LLT/2je4dofMbg9e3ax4w0Ro4cSSEVoTgyE0ZiV6WrAdMasZoDO/ZMeu+Tuat+sYO0kKa6HPPVoXOHnnHqWdU+d5KOnS+OR89yRbw09Zyp56aDeGeLOYr/wocqZuHjXMvsuqT6hxM2gD1G7jFt73Jd9yQBVBT7oAKIR3FwxWMLRiM8WOxw5RgNbwrfdk2NiXhJ2IvDUDjm0EGJSAiVyVhwkkkfVU1UE1tGpg7sObSfIyPNBBNmZsZOjckpmTl2KpyaCaeJ3KOIHcW2NpljnPCi9Ui7m1XjZJr2G/VeBNU2ZEF5cdKUtO1I04jULUhNfhrCE+jNNrHzEftiHU/LG6PlkUTvQXakYkiPe7VDPMVq27btew0EfJqW+1+CAFr56MUXSe7/XPrbQ+Okw4St+ZbbYKeDTvJ1S7BoybJfNGmrW+RlR83Mmp1q9jjHgZmn8LN8IqbsLLDCRrv855SLbgvx0GNPPy/23V4QBHRJ2HO20Eqb7ObltEvuCBUjRU5cMMp/V4+ZaWZaZJXN9jjkjMvuCvNIqlzYGxImdfrMOZBZzI07D4d5u8JPuFhp5G8fJmMRMmDB0Sz19I0t9jrirKv83fdHns/JM1dwbMk9a0lqNpcXME7b+ulzrrknQrwM+faKClVp/p6V6eZYaq1t9jvmvOsCREqQqQD2hoJDixFrTuZytc52no7zcUOgKImyFL4tqPZD2ozZmGGeZdr+xw844YKbgjyQ5Ikiikd2zHbwXBzl7ZJbAkWIldLOi2R3d2z7KFSiQp23PmnRpb890u3OV5gopxrimAR0GLHk0Jb1Do6HXMiVmw222s3TYSfb53qL5ZyX3OAnWIQYidJkt/MHR9tdFqvyVpMeI+XvxiFhttVnh7ozR58JS/aczLaw7brYzzeOmw222s3TYSedc6l9Y3m0t3D8BIsQI1GabPmKu7I/2Ds14LUPmnToM2S8/H3JBflC9C4OCBzqdBiSsObQdt4ea/BV5lpsuTU22c7DQUeL0yOBio8rbrknVJRYyTKKnJFQpVCJCnXe+qRFl/5iZCRSmSj/NhSEgolHgy6jtvn2RGfr2ZKSmc/FSuu42znYN1jxcpw3X9fcEShc9Gb87pR6LwVkkVMoVaVeg8Z229WezdLrMWDMZDnV+CQ0bKK5EMs/w3sR786EALjgi6w7FWpGDqu+YavLL7rVBt0AKUWbbuh09UDmHUyxQJXFlMWVxZMllKUhS1OWlixtWYQshiy+DPWxeuZztUb1DvdxjZ/Q7iUSZZArVqHeBy16jJgMwMmQXXGkmPGSBWXMCQLSSrrEhZ0HHNCFBAWxU+50RSXcW92msOjHRU6v+HCFS4N8Q5wb5J3KyXxcvpGjNmf8iOQXXSmtgSYa86fo/eJB1JoVN64gJydl73dboe7QRRdIQzfWvk4BAcsPSzrrPaiLfSf8s5MQas0AQETdKwQoOKpJANdyt4eV6nxwwRf/lFYca0++02M/WRp1+5DssNeoSa/upgTsNsDV6mZ1tS60zwa6tU5ktfbsay1JjscWhmBOCkPBpt72+XNoSTvWJS5Ndl0KIiXoiJ/uEF9amwRRzKJ7UA2MDCCNVSesPIASx36QUdW2ArYP99uLQyg+1BqIOlNKT8ruaTnlJk/Rs4p7Xl0vq+/VbOaca+555p1v/gUWXPVCq7lqCMFWg8mrYkfHRZcJS/acksNkKWjGuqQ85+W1TYeizYLCykzoUVoGqQXbDSJo+rMLjQorqriSSisLHyEgYqTIUSqPGi16jJixaq6mXYUV3n2oLU9KwLZYJCfmygRqK9HUfa665robbrrltjvu8tODuq0Jf/ady4234hwVKnFV4eETEOLQ/cQjnJqiPTEJKRmic7chUTs1Z4CnOS8s6+x22Dk3BIuRJl+ZKnVea/BJkzZd+iCH2GEVel4QqiK9cEdGntWrVrNX6bHR5/QJq4nsxNjz+tU9Vj013seAyKpnJl4wKLrquQ19nxRb9cLGF59Sv+qlTS89rWHVK5tffkbjnySubXmlt6YgL8gPCoLCoCgoDkqC0qAsCKAEKm9shSrIiNdJaI7RHyKZDSVus77qj2o7auaEvEtLrjtPdAUIKVAOgWU3DSBQzRkCwVabVEAdTkb/KRE6sL8fkONp3UmJz7tsOwwIqBYES9ZCzoXNbTwM+3k4rAACsygnsMUXX4j79beCuedh1xCnBPuvtUt89s50rwlQqFdcAEyY1LKgKadJSUXViKkls3GDKmi1aYNuRe8PswhCUaAE6HTl0lPrNebFcBNerSFBfUitVUi9UYMQAmfuPvJ6ArJ1sbZQBtdR/RCi9befngdgNbJEBd02QfDoZbgn/EIlv4SaUlNHhUp6GKoNfBZhalhI/CwTs0IxR8WGLbvYU2EaB45mmmOBhVatul3ujguYTK7AaeSsNcFoDiM49QOB6RCGn8F0JghxbvnhqTBL+Pt8AZ7Ayn4zMhDUI9sAOHftljHPUSb4DUd4crYXgL+A/38ze6wvfJikazbGls9b7jX148gzBsx6BwfkzynCPo3e0QBzf2vM7HORJuAAuIcvHML4eNNvXJ+taUfylMhNuvgq13xIGGVSJWUm5Scxkyaxx5gCKwFGgI3AIeAXEo9USgJIFBKdxCPJSVpSD2k5aYL0CJlC9pIj5J3kveSz5GcoiZRkSg4lj1JKASgcipESpTRRW6mvUr+mbaC9THuNLmfkc3K/pyXUAtlHsvrHwECYC/+i4uaPXpH4KQlYeFJ6Ul4S/al2CNjwoD+TuKRiEp5EsoJLBkhDwHP6beRd5DPkJ8DCe+RSSj6vkRqluss2+zi1tivHgX3PqXDHfh//f+U/1xNmvoZPRnrTa0/eHz7YiW8vi/zwUvuLdv/O0nY+T+D73naT74faZn1vA/D9A22urYMAfPc1APvpP2wtdqNcHwC+/nPzjqa9Td7Jid3yVX3jxIcxAAEvA16bIXB8v471AU+H+dMGNqEpc4KBOP5tJAB2yD6Dgw2EYBLm2605/Mbjv4Ocv1d+FPdwNSXuXSOiw9pSl7aEfS5yeYtY0udYjmNtNdfao4MGMCxsgo9uPrvEJCxIOXE21zxLrLXeBu522eeY4xTjjLN8yyy5rAmKz4W/yK8rSE+U5Ql5eCVVgLyZJD7r1gtcA7iXX5Fe+GiQgKo9Ok6P1d3rYnrTh972cdxlocXLhnN6rp7yx0Kuy22+693YvL4fAeO2sNHm9nzBBRQSBMWiIE3+r5Cggo6BS48mHSL2rNiwpWax5Vy4Wm3ZvljlP/sdcNA564wJdk+gcEHC3PdQuiQpUpUo8kyxOJ+0aNSkU/OatJvy21//xgA9YwGqEGQBaEKpeoAnBt8jHNHUxRNKoC+DlmS60hjIpO0xY08ZyWYql4kc5vKZyeOozDSlrCk4+J+dQpZemK7SDNVqzFRnlnoyL832yhyvzffOQh8s8F6DRT5aqc1SX6zQao0uG3212Teb9Nti0HYjthm21RAPP+0xYbcfjg4DhwbAs/44MgS8KEEzCE5OBZwfE/i4OI7L47k0ru+ujI8pgpsOO4zai7iTWzTdtDPNPtscs0w8yWRTTjX5RBNOMelAp5cGTiwZnFoq8F4GuLBFX2EklHyt0cexL8bb4k402VjjTfSr7/3oZ731N1Bjnxqso/apoO/exxty3QvlWfqYAer9uoBBtO+9hyfX92q47LL7r/tev1/L7jmTCPe0Fj/gLE4tqr88AfcWBRYC/hBnSXr7D9oXv8V5+hTZL5g+5zP1f4hgLf/d0F6IGla2dE0D/AU423QABM3Bg0DmZx4MrcVPAEmfhmkMOFvNcHJssDQdfI6NNa7/s/j13nWKSU5cJe1Xz0kVMlrWTAfMhSLWIx9rKOonIk56/RgT/n3MN3yWz/uJ5Ugd1+aUMzmw4nMF/DYCl4oQ4oF0bxmnji/lHw2r0if6PzvUp7QuCWQpGfDruEnJY0EzQbSshc29iC0BR4LUvRPIPQQmRarW1f4KykXyiY5ftO8N8dkK69wUrKN6Jr8kWF3XtUoq2I95z5WDFC01SZjDmM87RTBNT+axQYOjAbBeiXP+qEgwATIU8NcZ6Bvk2GdPA2KTNOWgCC/sGCanYjlPh0dzMTR6AZ2Fu42lduHBcqJPYSZkBpwhmjXrZbEi1q4PBhZQyBYMsuMuWGplSr6QANWLwhgGA7E0C6qJhHkSDUGnmmPjrEl3G08LFVcy/y9TTxsgl2jxDSo8bpaQaF+A34J2uieEoOpI6B8JDU0+xQiZ1f9bhBLMQ/H2KFbyM03Xaf3aDw/D2/349jDD65q5NVqZowKdHLtozQwqgdAScAZrqK1X0E6AxiYZgnuxKi4B0dDbdgpZaJ8bA5WT6MpQdRnriiQpyIJ3ssjRMZMR4x2jAjzYFETgYUCJ7fQiEGGrwiePIlSCZjQlEAjEgzKo/Ob9bciBhP7flTcqfuAsriVPjArRyJOgophKLZjqWCyqayFUz2JTfYtDDSwNamhxqZHFa5rBdK7guHZTTC3ovXWM9swLqlLbX92qqrD9X6fH2GIx2cAEjEGGLFwkhxABIRJCFIRoCCkgpISQKSS+gDpFXJSqkzPcNbFzYWLGGHIWfvo6swS1UZ89K0gLWTBm5aGFT+OlvJPcvTZrrDY72ct6szpXO45mMfQhCc0b1Rgqj2+he1xHdtgCg+Tm9g4yPlCeDOmP6+vb52f2sG5jIue1soc6LXh/fQLO5aHngPZS5zlWi4K4qjrDCRWHwhtqtQBkB9n0uv/RYClF8fFyAgkkYThGNDp/13MFIIVJgOgWV5m2+gHB42jTL0Xqenp5roGsdrpFEAmQxxT/3ovC7MefeLubuXeWtNtPIZhwqV5CX0ObZwjbaHsWyO4+JTDz2rBY1kVRzOJOfA5tuvC9i0mQZHP7EqMenYP1gBvYbdaIN0Asl+Q4iq1lp1sBUkMSCcoA3It7wVPVzIbkudGDS4tgJ3AW6x56brNl3DLXHKoRWdBzpz4kCK3l/sDvY6vOmvsqkwEJcmZQcPQi5/WbCLQBM3o6YynI62jPPRdummpt5pP3TFzWvJsfYGo1mDyHMe65h+hJq0ttXcZ45Hks+ZYHbm9wg2cY+iF+GnNltSX9bMy19Xwh/4ICGRuUgbBlaZ6zuMg3xaT19oIvQWzknN1NnVp7SHvb53F1axqq70h3/qxYeDCSB4Uwb2f9lNpXAk3ikXrTBFcjjZC3F63Xo8YiRhJOfPBOTNq8b4DOfaOca9mfPe/zNn0YV0A/Xg6j6McxJ4ZO6tIb0pmp1byfgdl8Px//Zi+XmPSL8RDHQZuAZAklLyCg4IZSa0FHNJZQukCIAUs26yfg4JVY2RrKFukgDhrlLoYE4rGG8kVCAjQ+fA6glgglPobwCYRKa0EPMkuofAGBAjdCORNArBXKQg0RGojQQoQOIvQQYYBsHati3+cJk8oLv9umQOBnL44DEFvnVeleXCyIdWknatWI/QOFdYWJm4KIWyiCHdMV9wERDxDq2IgDo4RThYnngogXCLgyXfEWEPEOoR6NODhKeFaY+CqI+IaAD9MVvwERf5Bt/iWfpxMJZUfNToFwsrZ7/oIZ/nTZP8/plQCCg/JfzYNqvBxH9wGQM8CKvwO2/haYvvg/0EfAqZP/z5XhNTh6h5Y4A3/QIMm7Kw7Oj+W4XQEoQuc9Qxr25lOC28rC0Y0FtJiYZJ2cOjGaUjqFVQgyIc1IiWBI9IElRieapkEnPzrihwmjGX8WmVOPRl3cBqiR7HNBEM5lyJTmUS16jc8QVtNBP1g86p12RT9QRYQ0oYdEeidkyYSDJSEz/Xr5dsbgsqKJrYOh14yayz30+TQoCWSbqmoR4zeDEAbww4zVpCpOMMmFtO5BhiMxaiRENL2ZICvVxSMk5AZkeNgPHuj5WG7ot9YIPUYbp5f0AtSqpkSVzMOnczGiZSfIRKmGInhbF2lY2xbPgUfZRp7/JkaGeag92Ca0um7ljppLdC+T97oBmuypZ7oxQGpRJgXSBByTkWokWublMU5dQcOYqUY5LJHnv2duDg9pQI8aTGPRSDpV2iX6MIPvpJ3Djic8a7faTkBqUqlF/BfZOTVuCzpAVYusE2FRY2q53CmRHmncUo6v51fQhPfRGIAnK6f6Tbh1ShvkUeMtdQJMJHaYXRHmc2NctQTFBDToYHMcfeuAcXIdZR1IoAqpVdSYG0BLKQPbDUIQvEJuJB4uq9edixCV5IrDLIB+YQSTTtF4UUsiaxHDrzcy+6Qzgwc4dFkJgyPEILnE2alC8HloAiGSVmJEAqRvIokrQdCltCJCtga19yStA1CnkrtoxutpqBn/RfFchIsMGmmS3kobihvaaQqhiOViZvu1FFG88zKGE4ZJFrdsGwo1dXI/tSJRo1XCskhA9WO0MoZWmAtnXU2aSkFh27RlTKtt50NMmlpjYUlWtTUDRZ40szVvsVPMd6hbQtmb2o0wZlJzVBFo5XlgqTVBkEqY1xxiYDoWCYEyBv/qk46w3HAEARgbMAqOA/AB5ntnEsSh1BDCJmXCQvEuLISb5D5M5IiysnHWLqJPavWkVLU6AwpqZ8FQgkJNVmnI0GikhhK1mCJfElRr2EkJ33aZjCSVCBOkSSEZSzCCcSOSPnfFKNKc0al68sYTWQz3bqAsdACtDyQNLiOcsnSxfLNgTi/BhPobp1bSZVj/wBCd4cuoQFYBuiRZr9iqCAJ4RCSjEyNwsCvk/gGzJmEv1E+oCjt1GNEjR0h793+Vjyr0nycPedq2c9Yt4bqqpkttfUc6FTxD6a2lFhpL+kHOFiFuhMLm+hiiqGLUB0WhPBMjtUAuBOiVy8CEECDMriXU0Ic4SkK4joOFZ7+WGp4ijCr7JfGNb5ZKXXObh/ktbhVwGByDcQeYKCPQv33SNBLxdUk9khRZ3ctQgHBYGxFfS0MMukYVLHqx2dAJ5ma+EoJjQiAUrfQ6SfmekZLLLGnm692iaQcE4BX+QBzgEJHNljjA0GRsZvDDX0UQ6SgANwN//3onkSnSb6jRLtCHf2ANnm/yPIv5635A37cJGT1w/FYB6FkFzaTKygvnFZH5GVpsj6RXkE0oop1gy1epgbuDXkPBRHe3Y429akYfPjuv/pIJbgtHsPQihohlUENYY66ATGW5W9oetnisYosXLoWtnu9tcIN/0gQau7lnCrXqguYzMcMoGrm6WLq8lPGej/JiffBSEjQwMT9Tib5a6bVCusXmbrZwBun8v/Nl2AOFm+DFZ4yRIASa1P1+/28RoXhV6nc52rpoX0rea+cM2nqWEfpwRGO9WJNaUa+EdeYfkXX0QMXU4Z4m3wudSmdSgw+F3ltrAvTJMJ+sb0a26/3zCFCnhaWX4G86IqFhsZ4auBscsq077tqCDGs903dsr9rn15YN3FlyL+3T2Onvcehq8oCZjcSe7zL17FHTZphini9HfEFlZgMFjOeih1MGlmOeTqsVtIGx6aiR+ejcAm25UM4NHXrJvAKXZZhjvE/NrorhAN34o1TkFFMrzqA4Py9/OMF8UO6k94uyjzOPOJ23qKfe1U+cXWYeamgXUCR0Szt1v8JDHWqwC7kbhpyZseDCWRir4A7DLciI2z1+0wAtm0PxSZ6gLTNQqb7uJUF6oIdwPn9RK05hHKyxrTeAKSFN607x4JiSgI8fB2iNAfcIQCtNd3OfHB1e/JEVBRVk7lzazDw1TYVCZJ1KV4Fb3nbK8K7CgpCICjJqRs8R4bp1DDQ17+6WS8EP7cI5z7s1UImdZBmxorpVeEMoQbt79f6hgxr6SlayoY0hDFDK0Oez9IXqUU2cawTQaDOBZ1h6JB26j6QPwyyx4PveyV+g4oBdSjMPNsS21+RponLuHuHsu0cpYoi4b2FziNgZj1Gsg3wPklAPwpV2Cy+MrsMLQ/2EZJ+RuBmOqqbNiilVB1Dhj60ylQvhbVNUO72tyNkGfu14ycTYqMDF3bH2DF4Ot9aQQAgEHszDRNt1JuLXxc4T38MsT1FhuPwPIM/Dnih0T+wEMsQ0gw+mvN8ZObkLSjHS+y+/VWbXOVDq+nNQvJq//mr+39yUpAnETHWoG8ySDxUBu7qs7AC6AM0+GWGGoSL76G0fdqhglDjNan2heLamVlhVMildQj7Fbh/y5EUqyl3+qI3y0Kr6yEmSZfndJx/3U4bLDE8tfWj7+Qs2EhE3C+HrCBjKpsqol3Atl7cKwSyn1NBbqRprNrMeTQHzfgpzBIfoRohHYHL+jKTxhs4bY9dt633b0pea/D2H7nxYESxo16pmiWCLzpTFF9q6wmo6Vgt4+bE6gv1Gd8bKzV7nI4fyIcGyJakYzuMZiu1Gqz89tYNhqk1OdOlnwT+XA3MCzWhJlu0d9Lg5omluZ6BjTY3q5zEac1UROKa1TuOq1WHdWE0ZErUBxRCdCgEhR2VHpcGPyiV6od59VP9aVgbwEK1tZ0i5QrnVoIK5LUZexweIzmLx8uMVVFwYPBh7CEUg2DunluurnfJF1CFKjVmRSYA2Rs6LDY9rBGSyW7bDDYSEXoRS8c58GX/Y7ybuucwkDHZDSAlyUZi6PjW2ChnayvRdSGPNnlkW0rXGvu3Mu+q8wApZzFt873QqlOQfvOPFl9F1JPorI7mCGMi6GnuKiZ5LPVPHBn/boPYMbbWbaVSdwPiqqZ02WF+PwgBLJhKi1CRvKjANCgWZ1RP4cJVmdpdGR1dfmVu+JTgvbPqpEK54u8KC5Uok0DGKXk90VfYoq2r6QByyDG2V2yMG8NK9GAuXv7f5GZ1Yg0wIlZEodJTF9NzMDwcAdzXqISxXhdrztLUtrTkIxRI37gRp7jDXWyoqDwZKEcFBOo/4DtY//ixULVgCW4khMZgx6fBD7sbw3MSC2JnUvkYPlgez905Um1kEd9V9CZ+c3idZ42UTP/Flhj3dk9keuoUwE4q+rdNbqUVIZyXS/OxY9ilvlU2l0OCNcCeQWYSR3MyS3gbBGIlNqlZdlDmPNeCTjL/txNz5nvXdYRZritVC1+LGKTQf5AEatTl/nF//4ObviG5GMftp340cU1YnsMmVoa3I+NK2R1299kBSG53Y5rW69H4sAEfjs50xtLW/aJ+WMkkHc65XrxlEZYehLsL7bWgrM78/N+OD2YU9cwMbU1O4elc5CdfQccB/xeqyx2JP2MrB9pY//6N8D+Au5KwYb1Z5s9iYc0VPUNX547zWpDFvtR74kVINIfSPKwtqVPIdBDgwpGvCkcm5zd8L9ny/njN3jmdfbHSiezU4akj2SDg1jubr9OP3GBcgNK7heCAAD1F5ndPR3/IaZaNZglGsw956RCcYGlZLg5hQI3zpG25QYIbcgxDmZPaMt0a2g9GGCa74rLDG5U4h0k3RljwUhXFxaieDXX7/QKMmYspgSiRaZUsmZA9GBrO43miK3LcRNbYl4kZyoEsY02QivPbWZYyGFunXHG3ytSjyYOWJhg0MODfdg+HLy1km9QTpgDpD0ojvZLxtx9sxcGq5I1lzgTQbsDlRfS81PhkNSEelhntf2FGJ/GPghBiEhm657FH4dS2fbeCILoSCcTyL2Vb9ZG33MbTgNlv9h4LfJogJV+ATfIy+a2y+IoWHrfvIW+85gi3DZl7WwefX2xl57jrb11Rh+Ef78id/QOyyY8k1jKatI+T03rgB2MAZfM+3iU/pV+BTrOEknioBDjrneWN/hhRHpLJ6gvU+tHAwGJkNSm8VwFlLnkCXfFOS/ZQlKEOpr/l12jBKYxeNdkXFcMXqyAlMYJIt/JRAj50T4e1k9IBPqaWrgsAHeiGThAGyreei5fTgvGzDPQ6iLx6D7s9vWVl//NZjqmp9iE8/U5o1/WgWptd4ss0I25r105B6AcVsOIaJ3BSuHLqvvHys2eKGolP8lDQZdlV7vX0n0D3bR92/v2Zi13KuAsJZWQva/GMW7hab+lnOFcl6DwWRcEY9dwfvhixYOmsnV1Y6EBZLwPj8kiYL04G6rLPg2/PpzG2LOLEMOUSToP1FJLDzzXkHB83cjpF0/KVvNH58cpuT6BeDcW+BlugXiw/fR/8HH33jc/1M4natBsjflWQknw87eY56RyPX8FdIPzZo56SNSTLtHvpi5tsvhO/M5N3vddPrahDjCrWpsXt+N7Y3d/haTa+swO3RltxzWEha/u6MZkjziDcAV3Zvm7fN2/FqTX5bJRxbc/5DFcS8o2DBe5asWsExTX8vZorOuPxMW1p4+mXpEJ8C5/rVmiNisfeopbg8qNq/mDlMstJP7FE9K4p5Xn+6eTb/rj3/f3uPFp7/UGIlxmY3zVHFhapgFdct5DNt/iJpCJTxg2GBWkffK9BymG7hhfhNgfgMt/KMePZVFfemf/pQpNW+GnS1ZmobyZnGNr9T34koerRO1fJu1AxGuSpvoKMw1RZauUXr6zgWrj7RykS5Kykm95L1BvuCb1xEJqehkhHizuboL8oR5OTwNcfm9HI4mrJjh+Ng/U1V/P9YeK33cH3Mbzl7amL//5ugRqWsU6eTdTWqoG2f0HG3l/OKL82zW25M53FzqnbqpiRNFf9KKTmsCz1dVr5WpYrfb196y95ux2Pl3NnAqSORNsca0C0PaKNan0lGDFX06e3qpb2IBWmDxq42VYL1dYJ+0NZwIOw/2dqkimPkDjI2g/E7+Bg5vRaJYJGOXRypQRJveyUipc0tHS2KSp1msHzZH8mVO8PDM4Ocl6poz5ETfH6rBrbbdbexWxZNf5/GohsQ6Xs8RFW8U4QIdysr5Vs2/zfHYvyzk0SnAvfS9vsludEuO5a/ycK0nYt9eLU2feztRFfFx3+Zycfpxgz285ujx9/4HjfUkFXxzc2LC7GZdd3UBCoGnM+aScA+DePn8s1z2bxlRRnskicAl3sjNH0s2tpyNFo93dxUffJopKX1WCR0ornLqB7sho0GF1UPmM3qJd2owdCDzoiZmAo/edjMEJndCrE5TzLuQEuqtdFFZs/15GTxmL2LDwSfpO5fKH0OX8XJCL0phUD1U9R9Su6N4PThaLNjjepiq/0O13x+jcrRfDgSrL8Ks+mLbVbFBWi9WFinUnv6mFg7V4Sxh2SnBPzz0iuvs5WVGJtD60VFr/lIf3/z3HaM/acsScC7IL3yhqwl7NwhBvlhQlpZ9GuGjkgjGJAqsVwvG1IKNPDqGJT9zrsGqUD0WSdOckg3/wTiuzh10cnzu/MWX5QgqrgMqReL6lRGQ+uvG8qXrSt6pAjjDUme5/Oel8y+LhjKYnmbwjazV51U4RWH0n5UL5BqfN08ff3mzoJQG/OOxwQqLTw6B+XaU0YZ1/ZGEaR5udS19PBIfh8D81qoXbmsNe2fLvhiRIG7Fm6/nN91RfW3dd1WXX1/E6HmfW9Rb3+tXoF1qHSxlU1FwXbGl3pUItMaleZVxp7M4BvvsBqb60LHsGO+vLis/b4bc98vSyb/qDvUjcfwPaGej+6z8kewuK3RubAdpe77q2VxDPfI6tqoy1kT9cRrxwv3qJtu7Rqj1zdk1A15ylLLDrOrfquvDCKwu9AxKpPsSUvM0GoHeyT+rpTrl2fGb2oOeqvio0Ubi5ZuAkaBnqfjIyOpcF2bd4GREf4nvPFSUiF2V1mnRN29V6AId3M3io5SzMmHkpz24qYklwz3h/WGe5q2R/RGlotxbEoo3+f+NtD1usTyvZ8zYB4l7ll6KvUc/TueXlTO+EKvr/nj8w9hXPG3Fa3YoVQev39IpZUChro5hSPy1rClsZawU9ciy0YZXImZVQ5TWzJfpfGVsKQokvM8F/Ci9EYA9qLBohTchxoeoidZshQphWQF484R5yh+9sLDJXGyWlIVQl+YI1N6mU33/UwxXC8Xt2qFDZutejkPBbubF/k03oYqhSom/H51SKwGbSw6Qt36SCksF/J10tsVl16l8eg+AbOuLXVL4125CmMT3KQFBw1GcKAJhVtAo7yr8wmrV6WyehDE5lUq/XEO0gOAyoEu1OjpCeaYYuTWG1y52aM0WAJqgVEFN5f41YEGntLci6gGTEy4o6ZasVZn6tcuPKOyyaEoioX8Qk+BoZSoTtSFrgBk4ECzFm5UGHKxGQyUG5rgZhQcMHbBVq9aZfEisNWnVNl8cBiQqvt7YRP7X32pG1UvqyjT+4nvtUB6VYKrkVqmM5YqdPrpbhe0ftBiYY9o8Gsgh9MlYNjhV6kdPkTckHXwpWpctcO7A8ZghVfBaNCGXB+yBJApBjtRg+rvVBUq6WzK69e4ohWgCUOU/aZmpcoLk8COvdfi74cAlh8chpv/W1Qn7EIxn8janHk309fSFrTWBpIMDYXJKym02wzuL9FfhrFhNw/QyLBmCOKayx+XYW9ZVPEEgkxImxCsy2rPTkH0crXFZdRL4Bq4WQ12ol0Kg1UBmqxKpT9agXKjVfmENI5liOGwM9gQkGHlXXVCpQlKxhhpK2QwBk95p5YUTCsTS+exe1h+27mttSOxRMupIrXiXOljhYVXS50sk0UqN5hLra9nTezmn1uuG/FzoArIb4FJNzK3LsXjx7bOlTRd1oIvWzpeW4aHV7+1rK9u1bnykZhrxISZbmRsmyAQ9m6d/ZqUHPgDv4fd6zYnVImfSNYvuATWZmUl7Jxb8cEf+sKfrubik2B24zLsj8CPFPtLzxaWXMFLMJ4xUGNBXGY1CTm3TDfiq4A4UKBgtIiEtDHdpqee3vLiS28Xj+6/dfYYRpU095kbmSR9m2Ca3NCAAfuDamNoNAaxtPiJSpJ+1i7hzzL5MOsrg5bD1Zlc7gR7h5jHpjHelSUCrWKenM6qgqCcdgfBQYR6zdFm4Yf8qbS8puXJxvKeNYBMM9iHmky+cdSDRqN6oBcxO7ZErDaJSnZWJ9z3s767uGqyMjCjE84kXKZ28QdPfbG0ZBUcmCrB6yUYPHlfCcjUOPMwK2P8jH+285SI23YB+SgYaQkyyUp1Pe/vjFjbT+lD1APGHxy2RsRLGl1t96rVhBTE4WNG8cPvyaRqT25DZ2stxbq2rSWkg5GwXoeeC6WIATBEFEfhJrkBxJ7FShXGxob6MicSNp9KaR0ut3hVaivpafhv1XCtn7B09vrE+s5FyVncOgqTj2oyMMOamTXP8Sr+7xXdGgmkVjsQFhd2UYVwsz0XCePXPzDQbSooKLo3l7eJJzBVM+W+pY3ZbgbCtYCEA5aUv0PdX7HLEWNafSzLtFyaoRHH6iWQ2Mfm2fhVdCidt28h+cXfbV/hITsE8kMhgcIAkSuqW6uYLWzy27vZoiJNYcn5lwaHy4jnaYKQMBNrChBPlzxs2F2RM+/dgm35Pvr9HeYElTaqaU1jcQIurqi6qd7/gZdXdBDrOsc6pPgGaGAHbPVCqSSurSS7uxlN/UeyG8uU5orYPvBu+MzHuTO97twk+SMZehNv3fy4l537b87335gn9zlHjfXGhnpTxITtmu+IaKKarsl5xo7OXVi0/tGfhMvJ2sd+wrPHyDefBWvESpNDq5egEWeoMZgAYOnd9SK1Gf4O+8Co7MEgI9wskNRWCsiRf8unomPRvYtxpIY7YMdoqPXaGQm1Y324I301xNTICeqJaN7wyegF8uVeqWEqP1NXhogD7gw95J1CLvpq9Ku7Sx8FHU058abFKm7NYHL8Zog+hdFzc+lgM8iTZUIkc9QXGPfu+T3BrntdXT0qldULw3f2YXDnnQ9C6bI+2EIs9k2CW1y7bn7MN+Hrx8/1hz67+SnF9y7X+RN/7UOK7N+lukMR8YJWckaBetiD/HvPa3jrdA1NnkSlBepzNDnIJPIp1ZWz0LLWCUNZhbuxzkLBCukbyNQ7DG5jtBE2zzF4I3deI7V53XDVQ2XJuL4AT054BG4OKVbaZ6BbAHyNSKE0S2ZOER4gL15kTal06VR6CwJ+6aQ9/SFJdoflTHuumLyRXgilzyWrzQDqSo+LJxL7xCo8QlGF21UlFjurKt0iL8fIZhkrKkwsVnVF9cco/oAvih/4c//D1x65xuG2Da5SDjtqfUePxDpaD0f9h0Ie+eiq/nbacl9ubH2NTtHTBRlNGKTo1tdE1/nyltO4HRV35btGOv0hBubMqyOd/xWa5mf9Ktp4oFwJGRSZB8DwPv33zH6Q+az8+Ipobc3yqPxE09GR2xvCK2LgyZauNb5hu90zPLTKN2y1+devJhbLDAa9smcGu7OdQL2OVwo7+nQhY6dU0YTowDoXiJbDZIP48472HxRGZSwg15FXfn6GCeoghQlygmX+ZSnMvd/hnBYadAYnIhM7QB3S9Nr1Gyz2D6BKDldhuSmSmhaR3tLKE7oFlRQLmyMMStSKlqVqv2dQI2uvAoEvfW+EX2hoadiMbdbitM3J10g2m/+BJnvAipotGqXFCNHypj5pLGNiU+2CvOObyWxDJ6ho05pUWK/S6luOKnuTtPXAv9tvrW0Z7l3QguVno1o54mtN6/40SBPDHQp1u1av7e5X6VbuPHVyzSr1r2wTuLybSVfDVA4NIj/EiQLxb9oPt14zfJp+qDdr/ymNezAMMBfKquVSup4jV1S387XaDr6yWs5hGAylsmopjDYuk9gdyyVoA7Ilc74IlPuDq4pKnRQEtRJuWbcH1uvciFTiQbQ6LyLhia9w1lPEvR6bno41NGBj7FRjw6nIdAPqdIyPOVwuXNIx7nKBTluqrT02K2ArKdpns1n7anRajpbJwitaHVShZTI5KCypJPiK+NpyxlKKdgxNdqq5+V3j/aJsid5uVpm0Msav17w/dqybg4ooLPon/c8cBwA+iV4KZFcaFixn6XedP1KQLQzadgC/mUpVUX78ax4/BSB/Vgyn485qpUYLcgSRa68CEofFyIXLM/Od1N+RXqW+mij9WzxbbNVan35KMxIddrP4u8JVRYeY5S1k4iAFf/Th1wpv34fPpK3eQlWZdHKV1QIZ7U62neTvLk8Fnb0WpR4tQDJyftMzvGDMB0GLCVS4rRrUFam22TaQKGdIwGkyaQ9gJf0O8IHZPDjF/HTqRl2KV/MYB56R4xfbwfv08Y4qvkmlkPt3kflF+orHXwekbi2i9aAy76ScCMiLiq0EwFqc/fwNGvUogfBUOe0mwehfSTtXe6xqrcTt7c4+i0ofj3YyufxSMOFnrelmE4iS9lBIe4nABIlymmhVtV4Y2F7b9x3Qc6HtI9qlofCZYrj+0wanOHAG2xbIe9KzmOcfuDPTNp2YpuC66qDn2tTuXx8KBYbbHHaBo6pKYHdahHYut/3r16Isxrh36Y45e1WYQKXkql01fr3PAVfadbsar07NmxFGFQMaeI4f2FlcvotaGSvPFHoWokv2M45Wcn6n6H7GZhuYkK2kuLacLsNbM1PsJr3JjggUxxMoFCYDdbBkEguLpiuJAns+YsMUtVkdtAdfe9W0r2cvv+sE4Veu6W069UMG+ZcrhrzS79KWzmZs/5Sp97lQQ9BvkdrZdBNeBBjD6wN6l41gy1pgpbMEUDK8HEECPqSCY7AyefY6rKU69CPNeBGVms2g5ZTXArMqy1b/q2n7HKlR48tCywd45hnmT685gD6DVus1gGWr6j5llUMRu80etUOxRw6Xlx8uxR+lUI7iF33O4LCLyGQmiy0jB5g11BdV2SMlV4aHAzq3jWDNSgo3Px2cjIiayBwtnaHl2Kg5dd4wKvV/zSBSa1M3XdXx6q8vV+efpaapTN33w5DKj7kCM3NoqWlAeDeRsJRAXK4Pzb1EZjkEpZV1d7kyieMAYYxYvoWhN4QVaT8ZUdMMcex7LKcbcp1aemNUSFhOxC8jEHcTcjZ5/Y6piz/IdKpq7tTOXWmDuJEqEcnwtXSTiZLXnycgQCepe7eyubc1eViTJEval3rQg9IAf2hkNxE/jr+4oA7vpXFMfxow3o1QmbQHDhqTivw2iiN0OsLMl3W2Ufrsfa1zibGjHAl9LxcKJ5y7KB7I2C44PhHbVXi2FcLpvXc4dr1oPDZFtdmmix6JLj4+XXjcQIh3/Rex/I3x/46Pb0lqKvVx/c9ok0usDKre7etTf6isdYm1rfrf1iaPJOV+zfd6//SeVS1DVUJcKnD7zAr8Cznr7mVr+Vi4WDuR8/m3hXYRLsHUh8++l7PuBbzCZ8a5cQ/b6VQSxPMvytRJ88XP1bRT2mueo3x4LRFSN5340Yr2iuKqfdD+IDHcPlycljOCxwPMPoI0XjQiaw50ESPqZsVA14WuS4NqkF5ITPSMRcRNC3wD2DwF4MaxbzDPfOlRZ9o2BnMasObHbK6XPmb3BErR1TXqs6NYJJjbNh4TdM8vNsDJJrPNZjYdQ5DDBr3NptMnizfcfiWLpRvWdlst3Se3m8xSqXkHT3mRD36/NS7LXNpSZ+pqDGaYMZtlUWvTIvNHwOdSPbikIcuEWSLZDw3lNogAAa8EjwyB50co7Y8NLftkVnEjpn/pL8Haf/IJouTevPCnv+v5XNhv8dXPrKF0wI5g1bMEYMCJrl8fndyTtayhzsJ89Dmj9hwA9Dse3YSLHEDXZFkbI2bWwefkwDA6pdHI6zqERl2LRBaW56T0pRNS+f+fFLBKBBDxM3VbV9NE1yifdAPQQl1nLiFdYnQGqF9/PZ6qpjnwLqsWokB6FumNQdPHqh/dt/2Y/6j+aOBoH9Z3OHBYf9jf+ZZfncafvDnbM3sT289M508+8HpQ7Ndz8OCBg3bHgQNP5OBGsJ1GJ7c7W/DYV4/kteZdXXOjVPBzUMnYbnaKTekh9egdLEcy2MAl6Tuwi+KLpMvquWRTh5j/Ymwne6588Lr3g9dwm31z3dn6nUBn5W09wfHg6Mpf5rx/eZZK5E1Z8mDubPVo9fiKB8+C/7AHGJOfwu2zG/fr/2sfBHK1Q/oKLmA7+M2GgiKD0qVJsFTwgK6D6RtziwNWMwxW3f0DLZscEtW9/rgVRfp6EdT61/dz4O8vqD6LZfbGXT+9rCfS2FoGQ8fp20PlHAk1Yzo1ccpsAcnzhQvnKHKL+U2NOZrl5ZM0+ptk0GyROQrvFBaaVqwwFUanoj/LThcUPXA714JlHXJwKw7QekC+qbf6USDh1UM4QPt4ItzSWX0o4ce71px4WVy2t221achUrop/NIO5cW6MxA9/9ac6dRqPY7a7P/AF34Y94POmtDg9Lpp5W7AkKX65iaFjU+nqjk6lVuinfpp20NOuVWtMciyfANa3yYyjW1+53oFOLjU7jEs0KKbtotYhVDbzV41Y4XSoNC67UsoMMBCUwWShDAZSSQwUZbCYpxjKytp495iNkb1fRHyYRDxLJO4jFq4og3AddJTJpA+d8DItBTLx4e2Dez/xEXJp5AmDYS8Zwsdk3ixikvfuboJM2nsHOAT3kYgEXjiIt+j61GQE2TW5tm7t1BSCFHBPvInbNogbjLyZw0IQFhAampxC0eTUlFQE3Tm5hhlbmJPzZmRwEBd5E8di0WI1U1No1bsmx09NTkkpuP4U6pvz7b+DJhE0JTU5FUUnp4Yi3M2upydKRgmKrFw1c+NWBefRJ8LSoEgYkkpENSGJNL5yJYp89x2/VVkaXRmXhrKOLZEKQ0GRNPzEo5yKWzdmVq5C6W+/53NxW//5W3AoinC4KBmBE0Ec91RtrbVwSvJLGpnc9Tf4O64Rv/3X7d5EgB+xp04A6ZjciSApWSwZRndP4bI7KQk7y/kqMJoi4UsYQSZ3diB1LN+ft3thysR412FV/ObMzdy3egdQvhT0Ikgf2sECaN8JrnpISD6eICCTuoSPT6qEOiGoC3qCcVH8cKJ9gCcIykBBoPUWgb/Fe2+Fb9W+rlv4bxDH/Cf4H02b6zVrmFgJcjonJpxkQ+yE02TDyTLRebUfLSkRlspZClryyZiUnqHrfzmU8Dqo2HP8sI/l3t608Q+OVTA2PV3f2HEiGDre6fM1mJidl+g6vTWC8pkBm0RSzniDj+R9t2h9IbMS5lXr16/TBRwjdvuYy2kbHba7Kh0lN1cUtRBlDdPR+lONmeKLrCqxsYq1m8mTGqqeAkBPp5XwlKSSZTAyuIg/oBNC7qXbL64CqihNZf8o15Uj9avX2mzKvsAalbbXfo/508KNfWWE//ulEH7JSLXLa6Nf//kgpb4ujyWuCYmlW2qjcAsuf05k523NcjCXWKXpfU/vQOXiymRiyWu7Pzz8FLJqyNPrxXpWJewuF8KNpiwH+XQNnfZdSXHn0vrMsB4m7hnQGj68/ITxDNRmW1YcqkvXigxwHv4bxs7PmZrFXCBOVfeRYFKvR+UYyGeljjr4XnReG/kU1z4QAV6mTsdgs3WMnmgtm7EBs5rJjNmAy8QWDufO1YedNJ/rnHEWHx6bp50e53knBYgEap21fpv/nPNcgAy8GDAFbDfEtHvDHHVGA7yf4723w307/w3+9wjZ+Xri7sx3jhhojQe0yfjTMfEW7mTru1S/O3zsuceEZyrKOhSPfkrkfSe6eOp+6cOFiy+VNcRaT+O/Ly6+g2/v8vL1u8dtsqraoEgOV2sv3fOt4kj1FilksCmqYIkCyU6Gmz1GZUjID8kN3BY9NLtd6hVWVUukVcHZU7p9KyJCjTKZr2KRLVHF5Rvqg7N5mtejl6BLba9r8uBKVl4B52pe67ykvnQI1gjyu8dRJb82JFagNfqz802bOaDRKoVNDmX5mm+aVWefUgoue6U+Ea9Wvo+pN8Ajs8jhZw8jY8jpZ08jKC614ME8hghx3mGeK8xPq/qGQjlLT0QTYYcDUnn0+sVlYirvGG+chc7k4lBqQuiJM4995N3w2OAEBM2u22fnENNrUF7t7xC3zzkwXifPOQ4l1SZC4UQcngWP3hCvnvVeJADImO0qE2cyV41cJCIVhGvECjAknvcEQUHNPUFFjTgJ1MlNVrm/bFIojDZwX9A2xQf93n5Nzz0CIrBYAsPy9n3I9HvAv2Ua/wAePXoy/c0QpeXB5QwjORs8yF4nuTwkEdR+J0X3yKf3FOR3vQE6o80c5SQ96zo2RxJdFXP7Cnj9WEnhC7mZ/6/WbH9gfWTucRmKiJntFdajJv3e2r3I2fcIWaWlWYS2Hr/T/i43e1WMyXgVX1Wbpk1BQXGVQ6GUOpRPQiU95wDisrxC5s69WQdBj06PBk0ZkBFfAY/ModCQCTUNSfHmMjaLfF9JreBQK79HfjAGqo2moHc0jfUXZzv5vE5bNo+6t4w68jvKB+dEudJclSxPnKexj5kE/+/+/7h8zEBk8v+2zgYaxhrGAltmt9xMdrLmef3V2dYz7GTd8e0+dN/Y2Wh4KbL+bmorJIE+Tm2ruDo1o/A9/3tuTxHtueceIuUwZYyl5IokX1nBbpseKxsDlxrD0zZ9urI4SXtOO9LcO8LYcW5n7+pLopxbi41450f2x6TdOtcVGYlZrfXkl85ZLLEfnLsYlzmy/yvVBNhO0GFRKuxmOffG3gkmY4+OtY/B3MB4RbQoW5uTrcvOqWcoW/qEpeDiimuL8Uak4v0J2uJ01u90evaxyzAbnD98L3iPtPZhplH5e/r4nPRSd0mptgyQUzlYvFu6zX4XwudmXuEenNHhzypv5Aam2z7ffE0mdhfZKkwFn7XczCk4HjsjIto61+Y4fi8BOOMBwZtS1+9STjqhBV+8wDOmhRgxTTg2vkRxnnBs3ErIfHNsHC3JnB074KWLeMs3sbwi9Mzy7vFThJI/O2QveAFk0rMof6KV75+hL/7KdDU3Z+cuHYefizYXBAuKS2nnYv4u2V9jh2F/9d2mvt3FtkraX5v2JinHIZT6LwACYADAQp7EHJz3m2Ug4W/6EhPoTFxEd8IhhhJ+ZTDhllcnlhnDPUnNc/beRB79iXT6Eilec5N77bwAcNjal39e3lJt3TTyvPSRsvECa2+w8grBHeZWkerw3k0TsxlJVd0BiXd69pYkhe23mcWfpPplqL+W0KsLGf+I7g0ISplXQFoy+5TeoUlasfWuONlmOddRy4WD7o7o3eEwnyUZat55xiFoHhWvJJ7ybgItSakgbEZjNQ5hctFTHrjmsOVWhdT7Ee9bld276bRhp/UTVX12gRMb5B5V79Crb8LKq05s1y7qiziBaV+++jtszPfqVxD80VGj075NHqK+xoCtZ7xbUjuuL9ftsVqMsB6n/rMzntuvs/XXH2HlM4KfnFojX613UX1PAs89pKtR9SZsPKZqbwHBLHP1pFzsnVb3rmD+b3nbkFxxQNGI0OUIhG9NQE1MSuHAVXvHaSi1NaWitD6llEwvis4JWKwbu6DEDPUJKDtMyclFkchZcnzEUNes1ZPs9QgUnZK+78A5fsnPzhZY4WdcucwK/lauJexa7aqIslpV3S+DVmprvtLg6EiZ43vZJUVU6Xt7ePbo5ttPz4yuSVKPIZIvcNV5fc5Q40g+2EDi+QREzhGzUxjONZvua8/uqjn1hesGkXSJb/ftWwNRdYv26noWRSfE/40DDmtYFdlM4bht+pWvPq6SnxoCik4QOUMMoeABNUNU9GyrLk6fnEPhlyuVJj7rJEQraPiU96dfzaVWbmXWn2TFSZIk+3NT6pg06ckicU7FStFuI3nHKdtB0Z6vIQczEJNQM+CqR0RJMZdR3xaCQsNURyydPveP3eIgdsX27Aq7PkOvXqZXryFcKqBmV1M+35Kmvju/KrqXKU28iUlD749Jk3ZiUKDRp9r71MGjDtXR6vheJ6dOn3X2PRH+8MbclGo0mS0sraxtiu1CJe0S6OeqsZqquVpUy2pVrauN7R2cuW2luHPvwaMnz168Dt426SfcAy5md5Yz71Cvt3Ix03IDo3kp1erKFZNfdztudCIvKp+VeHbUHGAnw7CDqMImbnP3aCKu0XS69CRjHZCuBcHI5KsRCpgd14tH3OIKOR4D+OFdsYDPh8NUtpM06TJkDrKuQctLvlOQ9eatg7wB+QpSGPGpyJMBuLpIxYBXXr95yNLeiIS7iY6qVftTQVPb1dVSeELtbntX2ARfpU29UKWgujQG45QBrqvb1bVTuZPQFgCOQ2j6m/wH4MmIBvZccenMbWKfBIT4YfScHHovYt+F0E2W1gz0luD4fIVulXBBInOzcZC8btQJFgCvfHmwtbP23/r3a1knyy/sfez/7YEp58DuFdnV41r6/P7Hwqry4WNfXwDO+J+m/voelFNvX9LtDx1+nwLfD/5h0jvqCNEFsOOOHiqqRQD1ybnu8t3067tt98h5HPK2zwXmGtlamf02GVCPnWtXCfX0FH5kwxkj3wQs9W1kQ0JzTvIyhVZYYu0bE1itT8da7oeIf0tVZ9FKtxfIhKTbAmQKiddAFmuqDeDdcxuv10PFvwEG7OyOA1knBfeO7kguWEK8QqDW1MKv8WHoFAPGSS9sSS+kmGMU1eiZdPlu+oXc3kJ7Nr8Mob3todyhgyXA6hXCOzo3feBWX7e9hAvUuXuCfmLpZkgFeNEu34QUslHszVVnDkwA7VHJuS0L65lTSoUqBMT5L8C6UZqPU74JP99GWPU0y7VjckfLm1zy5WOPMTeoMnIkQom+fk2BogeOLm8KuQkMY8/PVwSICbGX4KslgCFSi+5HIL/vaT3gTSq952V3psj9B/htMfeKarUppG8s38/63kDmRIFcSIfFG5MZkq5wK36fHDD/Iyi1uaPvoD0WJnCFXAyhPeXWsa8UyBsKa3HyNX5lLyfF5Dg5wS3AXvd2L0DfiT96BekaM0tuvu8ZD9ljPA1bBxYA9YN68qU8C8hfKyK87L6qSSOefDmwPpBXqC0irvpxTeSF5MdUxaTTBnauxY8gPHCuizzFUWAgovIKLhwzk+TL9+0xnobQgdlXtFQx5VMRkO9XR+uOTraX2QG1AWLkAyugt2L3ZkiIJUiBHXAEq4EukQoRA2ynM72x7nSa8KaGsg6ZRKoDLVflkbMQkZKzEFGM5OWkEwLcUSq4isRy4ZiGu7NyQpPKpiA+9+rAnlOGOiuUCOLktGw4L+kEwB2lgqtILBfS0rTp8L8a3qayQwCxe9VxChV1K0OUCOJERDESJtKggFqUCkaQgDWnF4KlmGIxaLfd606cS5Q4/g6OKkQ4UHMyaB+snGyPYD+RAfavLMtW28ntdCelNyB674RcB/3103WNt+JQ/0RSwId7eYeK/1kZ8b0Iw2bg3powuir7nhA8BgTwfmXZPWoB5kJQU1Mltn62tRgwHPHgfmEby8/ZycLRa855IqqBLyodv3ccQ3mpYyWhW6CorKV7uWeser2NR75/QrVToy5KdKZe7x6Oz0Dgpo1OekV9VhfLO3ooV0YZPZhMb32HDxVVezTrlu88HwMOgFPghJJ6tXsPxSdHpfSZ5aucRd7FhZHo3nlnAHefaJFb3Jod8eIuVI0vbaphe8vOQ9Clyb9nQk0gAXjOu9McUEjIA9AfO05WC9nZOFeba0+l1FEXzU0HFRqK6jXjw/DH52Xd0p9AiLpF62Ez6/LdXVe3JxtjsUyoq3E0DwwZ2SNYlQ1JRXrNARJLrAnBPZZBRFfuL0xxXpFtotTXtOGVXULs/fYIVwyYIaU3uHMJu4+e9DnLJ30xEN2U9Xhvkbk6jkZ3O6689ttOYgWYrSDZCrN5vtdFIYh4Ugfmo9L7wt4jf/dRWFW8X1+CX/43C7BW0v9MSSt/pDJtgsx4RMS0XLm8hPCW+iowL5vxec0S9vzkj+Pe5S8muN4U63DPuyoySZ3cn5AmqjuH4+Du3vfM1sUsOwcUmsMGIir8oXiSXO5aInXZ9uH3pt/rpuHPcMSKnHrq4qv40/8HpDIFaJjLLCcwog3GOxanbqortmaFD+HHDWTk7bpXWVJKV6+rYEQsxuBZA3JXEJ+e2jqNJmiKnFNmsg9g1LgFJkfglBaOlXeqvYkRhTAbQUyXKzLn1RbjX0aMq3NRQ5P5jkHBjT5o3q2W8HZfERPaRjFCDLURSo7KYCi0U2ZX7WauTk1pEjn0AEZbmkVDRcL2CQ4U22XSsY2ILYrqO5Xl8U1wfksiSyfRDDHwYogVBbQCafNsl6goKjfyOuQCe8WrbLFmfOKc+rc7rS+k35ML+UBIiVfy/nnLIhMv4NlrWLaeoww3VII9yoKEjWHGvmR1hUiusZOfcQNd9qBhYgWVYHC7qxibY7828xFl1mOQ6TEkbezITio6lxiCMZNuzxXk3F513c2v0r24ruTaVZjw2t2gT1yHE2ZBdSoPixPiAgn/NLMly2JOu1BZv6JwoCrUyxnVgBZL0UQ5GHiYDwkdXzLs6orIVTB2k5hN+Wiahl26mxGo5l0yKpWg1rKilHntc/AbR0ixhptgJHzfmLq0MVDGAfcWgJU3Yds7HLfu/j0qMscEJStQCGcMnoP7uAawo07c9Y8m7c/gM9I5bWj8mI+P13NFqkzGzA9LnW0dJb2sw3hDBL8NmX1k11lNp3Je9jLpKxc5+4YsDETwxjw4yvbhZxp+DTuMdbLmzq6KiFtH7K22ZZYAIOy/17oPGX5f5WifKPv4c2FlWt8LR2vD7J9R8o8EaO1NlCDCH+E+LQbWFoS/CorlZgwHGtjzEz+O0YBMxmTIOB4sapccY3Ji1MlwlC91WNkajxbTz9zDvXPn9PI9KvVUOPyorkXwY9qryDpOWuGgYIDcXTDmetIjNrfKJsPQI6VLam4XkZimiHuABqlTCl9VFAWyWsaKaY6eUc2858FiN2g2AWnpey+RpIFXdtZbKRMUxh6Dm9/CUhGNmJd3BdKNcKCdxxhBsDeZ+s2+AIncG5Pes4Tygiawd7G6v1kPsFV8f8T5mzLxoVfmiqioyElCgI7zaT5GwEGzRtBquV9F3Z/KBqD0EKBLt0i27G7hgTMqd2brITD10GIQSQxVtpwkyLzzwRnPl/QgbkE+iA/pJBHAndVhT99R9RAyR/dsXTozhuNImXvnIsBF5Fmru1baQkCViS3c4G6+9PJdy6gohr6rNb1E4PxDdFh1zGU9gvkW+V4Rvuo/L/aylJ2ikKDSX3GERo3Alo5XPuZWuvf11WQjesDXEclN81ny+1dq3uN18/hwe7051bdQhYhVKdnjlOm92zIGd8Rzy1mj+UAcdJFdRkhsmeedlITNumKB0YBivOuZF8IG++s4atQblg5ny66UZmD6vsX1prI35HTnwK06oqCpeU1H0wWrtGEYpRi/65FOo/itlzH9koHW1u7BHYhF0xo876RE1+pQ9M+7CcbFndo6GNhvIs7ar1Hb1BaLkJZz1p+VuS1lPuwLoiNuvlyDfVV1Mk1QkBAHk3dJMAqTOhteq0YtcIaTQZN6z8cmImTjN7WjoYnsvQAVClV/tFzHuSaRgp18osHYwlOB2/4s11iY9YhG2SZIUNmIrXDzx9TiHRhxLVIq2S+ObZ/LqL2W2juqwx3LAIzXeR2LtKSTpVxeouGYPayYOFUR+yPsbr38VJdiybQoA9+0SjhAXGkS2YxZfeeZJhRy/oorjlPGAiUvQSPAwS18favKIBbuWlqoaIvCGM1DBlBFzhKBnS4RDd2OtHVJZ6+hOh6Yy+TMJjgxth8/YHOaQ6YwPGrzWLm8eD05TwIaURrDHJMcczhtKN8UJl2wbB+AHPrB52pAg/so5JMTDqd8aUunvT58Yzvv+bjrA0/iVyfBnujwFCvhiNlYE5vloMOpr3yX+Xho6NwLOlbDKoNfVZPUR/We1nujiRqfz0amBd0BcGkpJNXAqA7q3M9g2gElw2GwvXJ5TjlnLTN1wtSzNyNo6Hzp2c5JqvJJvclw1jHjoZD6DAuBdvYRKMiptTDQNpkxz/Qz1HcyxE0pWJhvNcHWz2raCH+5XiK07DCj8Mh5so7FRwwdmiOB+gcFieNgJistnmY6MVHZzP4WzuvVjKreGVhr62UiuboWc7eMWySocl3XTMd1y3Aug72InDbHPTKSwRkQzLxgy9q+VcmZFYRCIoZiq0xppFGKS0DPN15PADaTZwkyeMnlNagkRd6vSiQKcYGPDt1sG6EZbpCxUIAAl3u8mXZGxwNa7FBmhMSuJei7pXHmJCebxAwP4wOofSzAoGcDbBirnAcfqqLAoj0+jKX4/X3pqt9zODttrtwjGZ12vMWumXLwyE/2hjuQzEv4FMiKhkRa93OZ+coxikQh51lgmUiwnsuIL5tj1jWrEag1GZ4gF1wSPWOtD7tVratoA0oWgbEAMsedRhf0Z40gREie5ntmXDRQSn1WByyZtmZZRgimLqK6YQw6GsSIhuA3u2CL2AaazkyV9gTSdIeXugbwaM/qQJojBRmFpsqkJdLAwM3X6Bn8HcNRnrPdkqiU+xtVxJHF63C29E5Xcnqf5RKfcli9alhoBQCAioweWoyEYRwakUGlCDE0fZAdsylEf9MYQp5YrmodV0/3kO5DOdP897ffZuNBT2qR/DPDhw1ksIOIjR4sA+J1+JYTOBXBu6QZlpnjsECl5sLkIcFGEjGBggiuwD2Zhl4Z6THkQi2Z5REgbHk/GY8KwutQoJncBCGbpM5beFX6Kzpe3g0tVeoLFeFqxEmV+DOOWryuU+lOrhTMnMJTzwLzynjUTQp1ru/7y0zHvUEG6tavIkySBgj6OYBHzincMQeCQHe0kY/8Bdz+sHW/63twT3FLt/U2kDQ8yLVMImFRn9HxmoyPR/pyOsheI8eJ5LpeDxgFLWveVq7Vq8ZK9kzQINc53IW2LgFg8VPnZOmLrATSt7PP1PGajQNjSFCHLhPwZYD5TfkwQEr2G9R8SKJkuQVBshn2kcfJJtUltXaNsx2KVG68NkoGNphK2OVPnS+dWYQhh0NXT4bdfzxMOEhNnZvl9BqcYk82Nj4wckmKaFdcjKAJSJcWLgomILMn7/fBhLfqeq69refjyNTmveS+KKn/VGVxcnK6jurp6NmeZ8qYFsszUZtEt3Pd4wFN6hf96ECxZBNHIYnBHttLWI2683MG7CRpLj3hshE4OoCZOAhZp8sKSvK5wbi9hbqoz8ygVNlZ8mpFYDl3fDExcQLX+7mmxbScjHf3jbSQ5rcl1K2W+40yFy5dTHB9V+7HueZdstR5RsTSrvrjYWdbXNX6uqTlQUulLNz3vD5WxtEmZjm6nuY61me3qRfVfDYV2ZioJUx6cjnZMNZYVKNTAs9W1zLXIugNCIo8axeGkfheeFATY54ucRbpCjQsnKPcXEo3FdS5OLRAlI6iewrRhJkjGcKy5GhweE1RRXQQLP9KJdHY9uBEACKMd/7WKWxmP3Tw6nwEPqbhHnem3k+kjgXKIniM43Dfx/lZsWbVcd1ctimDy9Bo+ucu4TD3tfk+CTaP8pfvalCaCvtyK90JDK76yPexenL0CcdPzmk4aFC8vSamXOGb6QyuSqY2Ansg3AVF6vpDT3EJxUu75PTcG5JZBGlVHuHjirqcg77WYIbfBTt+WzoGu9yXLC2oM+Nojk2Mu+qrIg3EHaPTfEN4PMXnmXgD6SucfjUKpslwrq/kIbYMpRAyBe16p4sCB74N6CbUE5RdccO1JBltzCS2tGTRGo9Vo8lnwXAT45IdXoM1mnNTnJH1MEvbpmJ9pUlmPnZSbHYOvRE0aP37dIhrzNjZM9N/1PxLPBQqVzK0bJKeNNX7UnTKuMLjqubajt9D2Gs1YWsCP++/4CCnIm5rnYCx4DBDt/P4uC4i+zYLwtvCYqlQ92K8+4UlKjk9qELi1iCH1pde2ZqYKtYKOWPBjfb06r15jaUV7Gn3W6F0vj/cACM+RFI0bZ2dkmhlmqkptli6DDHNSgo3cs6F9GJaUvWm2RYZIk9sAzG0rhaPFC44es659nPuAJjD1tGxcolQxhqRLEQxRvGqDrQG+a5wZxrNLThzC9+QRSW1AbAoIe9QEHKQO0Z0QOR6VhBLlPrnui31GgdSkYXDYtbYF0hs0j7FNKdv1isrvW3ezKL5xfGAq3wpc6GKsP7WUqnqz9pvi19jRyNv+q/8O2tO5Ytn3i8r+VcLlH5md6s9bmEeG0oqi9p3g3JLUZmlaa77ueoQJ/NJaZag+rL11i/+s1c+Es8pgCWsTS+LpWYZqAivbfvhX64Fiyf5UGhc8bory2Eods9Ij7REU7Ppt0V6u6/461EpqfXJnQQqPiRSGaL/XjK8X/IUjzUWODfoTS3wley5jK2divqj+vzxHmo+T/2wRaqvR9pqyrl0U72ZvIyc6/1tUpPqiSQEEu1h34YA4vcBajePPmWfoasejxglrmIzxNyXzKVOeYV++v9r5uYIwU9D1U/57DCtgzm9ljOW6k65kVtLH4E75/Ln0p4V4yyKfz1HWGn5OmWrsjHIQtURp/tUrCeTw/kMm81vurzi0PqG5h2pAz3xLA22r3jWOFrhzL8X4BCEvmDtJl1Us+FL570nt/mGVQeqOvhlHmXUAGzjtfJdT/6fcwCAAtc42gfIh5JEth4BikDDgzX2f9tOdKtTjYJKA2i8w6q9ylsBkXPyvEADggn37S1F7+ly2aFmLBI9BkL7UDiEDjMlOdqR2yumU/srdP9fVjXycSj6Pp8d+xQqK6Nn2RhZY3t6yW1rBBjZnXwwIBo0BWReLlTguQMIy3e05b5DtAx+UXmTJjHShjriEHRNsFuKQ/zWRcXcim36iU/KrnqiEzfCXKeDVMf4OYKMrkbmhKOZwIJnWlAVS2SOwaiTGEkSJCzcihFd/wiUTLSNSKRjcUIBkYydQ+5n23dVzgdgcp+vb6KwEs9i4DC3FehArftR+FP/nMNZe/k+H5TRHEwtbPd7aI/iaq/EsHt77U1hE7VNLRnOLVykMc4nFOYr8uwU0k4RcWZ80odt2B6padEMjoro0dS2XXsv5p0MPXFogyH0K5jji+LWhOG1M/gz601KGGwvr67jFbr/DwODf3d8bsW33/vNox1QCXQgMVUeM2HRQ6Q3qzVAGGKNudsNdQeYX23lQmrl9Wg9jpD7VNqBEy2FhlT0OCzEwYEBBbSpurA0kXTdB2Sma75oll1ewrN8AgYaqAECvOa2kTjb8Qrev7vAsv64nUkAEte+sgh4ScEdeQyxwIj/t63kSVBXCT42KU1U7zAp6tYCbBWYzcJCJPFbntvPiNgCfSnx09hGJuhYbHV03wbG6GL0IvYga7+gQ07QIhTpOJ6dS4Pg5bhC1jK0TeteOl2yjrIZZM1wxso8VASoJOAy3f9G81E2qzrKHG+9dnG6wptetAKEUbKxvSqjh8rMY+tRwg37bZhsskoiQo551JWwuI0xF0pKz7mALgwu/Cbc8NDE1+aJdfTyDTuMl1vNcKPbu8AuL8qh3fou+HlIvgu9/MAN6wOMWBvUwfnp6iC1dN7YGZqmXdG28/a+rOpK0xO2DuN8g7QpQ3ciisL2mD9LVR8yUFBuyfCCm0S9FXL/yYfo2zboxSNO/5DiA1W8p0RGyY2BSg/4sErQELEld8BBFSVL5trLc5y3CIJ9wkoZ9SSw5GbLSNXWmlKvrlyAY6QLe8XzxqtE29EkKDivNcTlCGP7EqdfbrPKODeoCX5OCBjzDMowplJqhN/gfqV4XCVitDKfrSBI2jZKWhCvpC4MOQlxcJCJ6w8lkMsgkZcTNnzLU3cx+DlN3i0IvqQnTrqJKFg02dLZvdFnfVrqCnO1tXf5HMUNI+bhsODAd+APXGzPnyipHEG3BDzpWagiXYfax8lyWUxwISKGB+L9y993/8+P/fPxX7PsNc18h/PC4hrZBTTxJqafTK0QNQdoTdrymvj+BrAm8U8+An6s5MakoMSnPwbK1y3OAY8yt35LeOmq2wnSdDTBmPUJFgPNPJRBtUYqAw85ll/ONJmHnWwCb73BEXvMrVdQCPzQc+mbD36IL+vyCHgvnCMG8GWhbiJuEzo1Xy0r79Wl3wHXMmVG4EIjwOsA/3riMhYLi72piZuRRRdRCq67aIkgNkL55SVuWotEbMczxHchzqLMG0oLRd7aINPTlpmuhUl8YDxD/D54PB6TAfU2CA2BZTPWR90BjrwpvPDL0Svb0syu3fgDERe5qAJR/lrVRkOXX7Q0hDozvjSP2fQld/W2axYX+64Yg90wPilROO//v0YiKScWl4r19e8e+T5vXQDU5peBukFuc9Tm6BqZNfvZKjV6HMomB35EhagqiByNFnPAN956bRH4eOT0N7+6fHhzfry/OhaqH5b2jMxVmphYAP4+EOfcVOGWBPaBLhD+Z+Y6hsc5qDUn0WiyMhhatFI96YiUU3d0o3CRH1iQeEhCA+OEUCtqwi0XVadTIcsi/53MYtCplVXjiq8lo0XXFweoqMe4LYgkQm1PUeoYpWZRiF/ezeeYQ/02xn7ByDpcf58rFgt+mWWTjh0TU3BxfQSj1hhg16tiXQyX7yzNXKRyoMIFnpdgrKUFIJ4OjbTrHrX1QldRQj2CmAMJPjUK8KpTKAvhEtCi3Zv/JWxIR4zKYbkw38kEfFgHX6gqiCTVJMtF3jsasUiYjNleTGXibQexOLlbFolF1yp0yKMzZR477k5VXd4FVzJIajc3zL8PPxQ0AU7410PQSJzgEXDccfO7pMnuChW6QzDuKktJgNfv9X8aF1klfRiFDjsvtlrSvet1CQVkpGu0je7a1/br4nlhyH3DY4aViT4Pg5eXwTpRBT00NpXtNhnvEN9VndzLwdW4WPI8ryoAaci1ZWjD2nUSIkvwB0qt5YZS6opa6pWYLVhrzdtNMjSS5GLo+en+VjCiGFtQiwC9dvluq7pxFL7VuE3gv+nARgHzdgiv8msupi7T/P2uZuNhv1duFjm8BEcxtPm1B5mwUPnhhfY63XjV/WEz7XVD/UZJl+d6NEjj7cYQMncZE9mLQVlPl0uQuP6odh7oywJ4GgzHoMQYP7Gbx5ARYsyqytLUM4/BkwpUqYGnqd7uPLmHhqWiDNT66wPDm3WbA74a3JwSuBQ+wnvmN7xQO19zH2aonT1u1bxugoC1ktR0NdV1M9c8WAkOXPM+H+/tNyW6Cw/ZLjxUUv1yop+u1isdNZG5Nsf96rQ+zVV54eaMG592t9+VBdnUkyEov5eiDMbToWv6dyBxF/PeNAhEp0GyHf0fqu262i12Rf3A25V5qNI8RBguu1FtivP3Q8Km1Gz8O4hFpa4D6BDRX/9h8lq89OBxxx2frEvQG5DGO0HKtjSrQVS4I6zvtC7Rqr8NirkqdJVm025SuOi73d1cnRinK15/iRhHJAex4XDV+0ccgVqiDotnHQvaJmShHxN9euAbvJ7r2cbTVHG0y0554jfP0TSu8rbzflFNBSln77ileW6ClGV1zRNPVuHgI9tGVecyx9GYjuEKycOvx+Vadxch1tohgaMa96vuthS4veZx5XBHrVaiKxaNf4YMRXJqkVq8DklBHIPLRWYq5f1uPwb/eULt8ouv+GpfWWJvjlh4T5hMslDpzlJfK2sK2qa060oDi6ZLs6wff/WLj7+5/EZPy2mhBYNtds0vJarKXmgxsa4RDVl4lXteHnbL4+rIWNpidyAn7nl73m4YISbFJFOOB3A3ckkz6lbPBm41e3/hTM8ww01xHm4RqXmLKoMVhjbJffQhR/nwYAiVFhD+D9CHC5bmpsbx55nKudObmrsdwF+QgGsR5DJPKvYfhnezQlpM6pwnQcT4mXeq1Ql4WZSJo/RbjeJMXRLITliHZ/igHzLQvpGzyre8QvdD4ME8iyVowL/aKt+wUZKreowv9r2P1hvryn21ashloE0C6SbUjs7y+Y57GHxoJnNhbR0SGUKzeu3QekI5zzG7MwwI6HvVJaCMcat54PYbJXG5Fpab7VYIugK/EJNjEzRoOukO08v2MvXMyD7C4sL/szclMwobHJhhmW296k+FYyc7MtagITWWpxrlOY1rNWvehLrOMVB925MWoaqbHoIm9EcI4x+B2d8F3PURBvulKHrP4PyueZccuumDpu5OoE1ZeyZK0EbOvPbuTuv6aXNqnJcN8XA2vGsMEhvmVWM8mg1v7gCezJIXIQ9a/TOSLjkrlVEmQw8zRBGMMUQ9HTyWOKZI84JjqjoDq1WzAVcbIfUFyPbknxVMGQgI8Nqfi7O2sZT/h0rrA/jqu/ovAPD1j456TUXGuqPnDGAS5CUU4GtFrAPds/9Uv3ZPkExQFx8pK2OA/QHXV4iF7ecvsk6SnRRgdY7FyfbSVTpwkDXA+K3/D95KnSXbp+is1c9/RDjV3F7QQr32s6H6fqvBa6uZCy5LtpGtTpKovsU5TgF3+UE5DFbV7xy899rIvMe5gD4N33YH4c/+c7LV4X7nnCL9MeKIFna3Sl5d2Ld+jPhMUNyrHxitiQkXjh4TQ37xJtOTrogIGCSlA66dsJikPsMeqLpMV0o6Klpp3I9amBibtOZ+AwNMKH6HeuNc/9Rgbnnn+72i96cEH6vSMYpFTbqceic2hEshaUaBheU7RUwknyP7l6T8cFHPk/6YFr1N+FIYnzQUu2+Mfi2G+dkWY+8nAqj8A+5VegQOwu+1l+n/oCwBiO/fcrTvWWTAlordRdcTIRXHa6C+qTmLQD5FqVk6yBNTdNbq6HSKaM8gmojVEYC6ygeY5iccQrwA/XmJZqU5H4SlSjvTpb/pkbE6EpYCpBkFhqMLkiFpKbADRkBPkizAEegK4rLknK6aCIRNEndixT6idoNDYKXrMVB1Y+wGZ0R7h+QyxkoG75rles9JSz2c9E4V8alZxvuQuGkyzqaOSAOhq5kmOEXKvVdAiMLeQlCT3v2g4lnY7WiFxKzg1oi9gogGWWGCUHAbW6oXrD5fXmYPgPUYGonaAfKxSF+Lnbx8nJU63RD+zExsIl6fzNZBeGhEw7DnIXpvDW7QWYYRMNts4GfEbmC1TrbS7QQ2CEm2LfCup9M68e64mTPDdA6ifiTagNP1pSW2Pnt9waCa7BpDAfbVklOJ7dYRHRnrPUO0Vbh9ZNBVL1/B9JQS1U2k7nwVWQqBFl1l7j5YJbTTXXY4+aV+aWvRIHDmbwBCq2PWZlLz/1ftHyV+BCAZ5D0lWiLiU3rDOe+bhkfwcapMxVGVwpwR6YW0bJ+8E/j/+/91TVLPXvodz9ehlHXRgNL7Or+PCkGgxtbAuSFB9Nm7Dbj+rK6vz9O4stEnsvptwFId1M6HCokDNUJO1GFaTRMw7KCJmLxoEkPnaDKqGOqRPKYRJ+k0hUAvTcXxj6ZRL8eZfjwDBnZUAFwyjSFIq72EMJNLGNtmNWk7/CuRaSyXcFrjkIrFh4EoONuqpLweQTTHjzNEZ34ITDxl+BCD9enSzCV8kNg45/YTqKK01ouA2saOasNQZPkvWMw2AqbbcQIDa+FnA/+9NXrsPrBMBmwsMmk/dLbMk2yxf1/iJ/UvFPv6rcTLgxl77Dy5Br53Vd8V0GekAu5Uif/naY3gqlcRdS3b01J8W/RKax7106vd1Z9wifBZ9STD3P5N036flribR44tJtoFFq0Wb6/NaynFYFUaeiY9jFwbO6oNQ5Hlv2Ax2wiYbscJDOxohmjBe5Wix+4Dy2TAxpo2Jh3Re+hsuX4k18EqbcuTbDz9v8UWBvuXWvXVcF5hX8HhPbkGhh2aTaCJKEtY0lWJt2oP7R1cdTgq/6zb01J0GQ9566N+OmzwU7lE/Wz4PH4UTOb2bzpae5KIcItJcGw7p4ui3ZBx20COSIqnunPT2Aw9+2BaJzqYL9cX3zj+6dnCOIWh6iFQaaf0YZAEdslwb2QgZuQfJaiGQxVg7OsokApM7Gnhcw5VakaA2jEgE5iSmNy5/eypMoszLvN46sb3Ur3fXjU4NgWLhCzTYNVamE/HebHNjs3Ag63XM/DGXu/aDbtJATOSKYudQfamNR82gEMSXf60LtbAsbsFUkVvQ7a9t8+H7JoTO3bTOZUBySmaUVmzfWtmRWXNrKmn2c1zjYXS0tG3Ev1vjObb39oBB3m2seflPzFXtMBCUwF4d3K1SH9uEvYWO9zD21HH+jrSL9ASLn7doFqopWvU5uqj48OddGpdJ0ZExdS3bIPGlm/S3IotWrVpr9NKq3bo1AXT3WluzuzprHO89+rr0WOd98RqQ9ZYe8CgJa27tG5/n7a8m71bf2Uj1MGH2tA01W3O10UXDr340suv2GjTkdfaT3o62XyCu4FuKXzblpv0drdf//cGDBw0eEi7Z6iNatRi0/LoD8dMMHbc+AkTG4bGzaChhpzGT58xc1ZjaJXkzV/ggeiFiypE4mqIT9AGbK2QhqTVPJqmNevUipWrVrczyzaVlvb1N9+2Ds2/b/D6Sf7Tzxt/2bR5y9Zt23fs3LV7z959v+7/7cDBQ4ebWCb/LPdnw/E/Tvx58q+/Kf4x/u9/fpg4VbmUaAsFqGLRpiMVSdzfRFX0f9cx4DhmbcePATrCVtvJzD4WIDLCkQqiIOovwl48sj0198hABGIgJihTLkcuuTyPpSj2HBmtWIi93OUt3xXPqBRPoqtCx8c0bKSBY5+/H8UnDhEsSJId4idopPQZPjUR7kuYunAUFU9y0x8MR+NJlgupdFFOZ/NqURNGwSxX5cmA6oZrbrvljsu26XNJqTkHb/wJJpyozSUi7QiIoGh3abN6mkHNg70PGjrtdNPPMONMM88y62yzz9Hm2qPgri/atfjET5N5WjVq0+xzA2wvhKtbZNHFVr+GNa5pzfuzWr+ZN4LBzagjN0joTcUNNKjQ0w2+0LeF5iPP5tt0jzTMRpUW9J6kwNijHiHhIc0UCwh8J3BG40xUCThB0SaGzV8pHcUF4RMx969g0cfbbdj8rbz9Tf6D5M0ubfKRBVk4VjT/TywuDlOunQ/mhMlR6t60Dj/Ms+vO+6ntCgmwADe5XNStBLQ2RWyLW9TYdb7IEXONJ60PavQWc9hoKt+GlSBTipPOR/lobyvYcNiiBJzLwwV2DTvubDu/24kb/dwZMynshPbDobY6h5ueHiomo8wZDsGwo0YvkcpwqiDDKVuGM+qw2dlMmJ1y1UAePj9POshC5oQ5w2DYekYHXzXMskG8alwkNQYPN4WBNNqPOaMlYiDwAgM/KGPblU2FnSJp6+hhM+2MtlJEL7RhHbSjHeuvv5n0tcXUMTLQTJ7S/+wK/4fdjjd6OKJnIxlIAtqgly0xXP3yJmN8D0YkEaViD9aN6tqYHOxZJ7U2r8a8wUZzMW1qgsZha30Xbc7R2V1dJ3UHDVga4Ov3ffO+VQn5gycObJelFYJjsAd7sAZbsPV1+6reof/mdYi2aLvXe1/sQF6aMlsi5XzROJDzwhUHvhVa778FzQTXrHUZNM53vxmNBM9UAEJwIExwLWM8AINdrQ81+sHimC2DtAuoEKEfYMB3zsAUY3Ni4AN1aOZBYcMTJ+K3wuv5t+BZQThOpm/Go4JnKhDkXtmOqcyJt5ghNssQm70QWf8Xe8gcm4JwHCglbXW9H66eOMyOw648rfOwRvfk1j2ZRFzFMbPqGoRPkhUsLHlBPbjvRY/Ku27GEYIRFMOJy9Q6MdHX5k6mh68buKoOu9w/30+4Npo+uEpbi/e4K1v0PNx76kiOPXzPugIHrmHk/pSWvaqeI0wYQzCCYjhBypnqxdWLJsZ1NE4N5FlkaX8aeWKRYCwS8EipR6qkSImii5fvZPR1NGCgCSx14IkBwRgQcKDUgSoJGHBZ+qGTqxPWHMNNQBAEQexFBitkx0joqHPvSVrqKi6Mj6JjVs8C/19w8BFTpb0cLs8zbd+/KRdWuflj1aKRRLqXWWPdNyFVtOZi6EmDAoxsTp5UpvX2qohcCXflcG7GR4TXWC9utTqdo1So69NY+m13+80xUlLKW/vrIlKVdTJLiBp8z8IV7onWkYcy5RZTU8ZM5SrQLbbaGmWmfdtcUI5+IUrN9VTqTIfNRcq2boLs8UzJqcxUhGCkocsVj2cIHXaIpQKazUc6f3SInU9c5z76dQT1GjHJEEmMFBkgMAgoWnRJP4Py4CNAiAgxEqTIAIFBQNGi+6lPiVkwC3i94gl5ssGeNC10PzR0d9WnBXxLmvktOAQ1GiPZg9PuGyV0EsF3TW4AQQik8b4sc4XLJPNnyAYGnmxe6HOOIU21HOTMQeCAOkissCebXU2+WTT46nzh1xBIaVYJ7n/5U15YB78Pjmz5X8rof8urSM+TuJS553AQj9T4+emIULouUZxKS12cuiD16kEMOBVemUxInihj7pXcoSxfqi/Z9+sf4ZLKCeCgFwx6JYHnJ6kJ46v+Way148GD2m2hBy+n+v5DsrHxBm+wmFRvEN3lUpyRXBTNZF9M+Da9IgvuPkkEz08v3J1cvBYAAAA=') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Untitled Sans';
  src: local('UntitledSansTest-Regular'), local('Untitled Sans'), local('UntitledSansApp-Regular'),
       url('data:font/woff2;base64,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') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Untitled Sans';
  src: local('UntitledSansTest-Medium'), local('UntitledSansApp-Medium'),
       url('data:font/woff2;base64,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') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}


/* ─── components/accordion.css ─── */

/*
 * Cuemath Design System — Accordion Component
 * ----------------------------------------------
 * Collapsible content sections. One style in three responsive sizes:
 * Desktop (default), Tablet (.accordion-tablet), Mobile (.accordion-mobile).
 *
 * Full-bleed: no left/right padding — the question sits flush-left and the
 * +/- icon flush-right. Top/bottom padding, the question→body gap, the icon
 * size and type all scale per size (see the size tokens below).
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * All colour values reference semantic tokens defined in base.css.
 * Never hardcode hex values in this file.
 */


/* ================================================================
   ACCORDION GROUP — size tokens default to Desktop
   ================================================================ */

.accordion {
  width: 100%;
  border-top: 1px solid var(--border-tertiary);

  --acc-pad: var(--space-32);        /* top/bottom boundary padding */
  --acc-gap: var(--space-20);        /* question → body gap (open, vertical) */
  --acc-gap-x: 56px;                 /* question → icon gap (horizontal) */
  --acc-icon: 24px;                  /* +/- icon size */
  --acc-body-right: var(--space-80); /* keeps body clear of the icon column */
}

.accordion-tablet {
  --acc-pad: var(--space-24);
  --acc-gap: var(--space-16);
  --acc-gap-x: var(--space-40);
  --acc-icon: 20px;
  --acc-body-right: 68px;
}

.accordion-mobile {
  --acc-pad: var(--space-16);
  --acc-gap: var(--space-12);
  --acc-gap-x: var(--space-24);
  --acc-icon: 16px;
  --acc-body-right: var(--space-48);
}


/* ================================================================
   ACCORDION ITEM
   ================================================================ */

.accordion-item {
  border-bottom: 1px solid var(--border-tertiary);
}


/* ================================================================
   TRIGGER — the clickable question row (Athletics, bold)
   ================================================================ */

.accordion-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--acc-pad) 0;          /* top/bottom only — full-bleed left/right */
  font-family: var(--font-heading);
  font-size: var(--type-heading-md-size);
  line-height: var(--type-heading-md-lh);
  font-weight: var(--type-heading-md-weight-bold);   /* 700 */
  color: var(--text-primary);
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: background var(--duration-instant) var(--ease-default);
}

.accordion-tablet .accordion-trigger {
  font-size: var(--type-heading-sm-size);
  line-height: var(--type-heading-sm-lh);
}

.accordion-mobile .accordion-trigger {
  font-size: var(--type-heading-xs-size);
  line-height: var(--type-heading-xs-lh);
}

.accordion-trigger:hover {
  background: var(--neutral-2);
}

/* Focus ring comes from recipes.css. */

/* When open, the trigger's bottom padding becomes the question→body gap */
.accordion-item.is-open .accordion-trigger {
  padding-bottom: var(--acc-gap);
}


/* ================================================================
   ICON — +/- crossfade in brand colour, scales with size.
   Both icons share one square; opacity + rotate swap them.
   ================================================================ */

/* Box comes from .cm-icon (see icons.css). These are accordion-specifics:
   per-size box via --icon-size, brand colour, and a positioning context so
   the +/- crossfade can overlay. Markup: <span class="cm-icon accordion-icon">. */
.accordion-icon {
  --icon-size: var(--acc-icon);
  margin-left: var(--acc-gap-x);
  color: var(--text-brand);
  position: relative;
}

.accordion-icon svg {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: opacity var(--duration-normal) var(--ease-default),
              transform var(--duration-normal) var(--ease-default);
}

.accordion-icon [data-icon="minus"] {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(-90deg);
}

.accordion-item.is-open .accordion-icon [data-icon="add"] {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg);
}

.accordion-item.is-open .accordion-icon [data-icon="minus"] {
  opacity: 1;
  transform: translate(-50%, -50%) rotate(0);
}


/* ================================================================
   CONTENT PANEL — collapsible body (Untitled Sans, regular)
   ================================================================ */

.accordion-content {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition:
    max-height var(--duration-normal) var(--ease-default),
    opacity var(--duration-normal) var(--ease-default);
}

.accordion-item.is-open .accordion-content {
  opacity: 1;
  /* max-height set via JS or inline style for dynamic content */
}

.accordion-body {
  padding: 0 var(--acc-body-right) var(--acc-pad) 0;  /* flush-left; right clears icon + icon-size margin */
  font-family: var(--font-body);
  font-size: var(--type-body-xl-size);
  line-height: var(--type-body-xl-lh);
  color: var(--text-primary);
}

.accordion-tablet .accordion-body {
  font-size: var(--type-body-lg-size);
  line-height: var(--type-body-lg-lh);
}

.accordion-mobile .accordion-body {
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
}


/* ================================================================
   DARK THEME
   Semantic tokens auto-flip. No explicit overrides needed.
   ================================================================ */

/* ─── components/avatar.css ─── */

/*
 * Cuemath Design System — Avatar
 * --------------------------------
 * User identity display: photo, initials, icon fallback.
 * Sizes: xs (24px), sm (32px), md (40px), lg (56px), xl (80px).
 * Tones: 6 palette-based backgrounds for initials.
 *
 * Requires: base.css
 */


/* ================================================================
   BASE
   ================================================================ */

.avatar {
  position: relative;
  display: inline-flex;
  align-items: center; justify-content: center;
  flex-shrink: 0;
  border-radius: 50%;
  overflow: visible;
  background: var(--neutral-1);
  color: var(--text-secondary);
  font-family: var(--font-label);
  font-weight: var(--type-body-emphasis);
  user-select: none;
  vertical-align: middle;
  line-height: 1;
}
.avatar > img,
.avatar > .avatar-initials,
.avatar > .avatar-icon { border-radius: inherit; overflow: hidden; }
.avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Broken image fallback */
.avatar img[src=""],
.avatar img:not([src]) { display: none; }
.avatar img.is-error { display: none; }


/* ================================================================
   SIZES
   ================================================================ */

.avatar-xs { width: 24px; height: 24px; font-size: var(--type-label-xs-size); }    /* 10px */
.avatar-sm { width: 32px; height: 32px; font-size: var(--type-label-sm-size); }
.avatar-md { width: 40px; height: 40px; font-size: var(--type-label-md-size); }
.avatar-lg { width: 56px; height: 56px; font-size: var(--type-label-lg-size); }       /* 18px → body-lg (16px) closest token */
.avatar-xl { width: 80px; height: 80px; font-size: var(--type-heading-md-size); }    /* 26px → heading-md (24px) closest token */


/* ================================================================
   INITIALS — coloured background with white text
   ================================================================ */

.avatar-initials {
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 100%; height: 100%;
  letter-spacing: 0.02em;
  color: var(--text-inverse-primary);
  background: var(--neutral-10);
}
.avatar-tone-1 .avatar-initials { background: var(--brand-7); }
.avatar-tone-2 .avatar-initials { background: var(--error-7); }
.avatar-tone-3 .avatar-initials { background: var(--success-7); }
.avatar-tone-4 .avatar-initials { background: var(--info-7); }
.avatar-tone-5 .avatar-initials { background: var(--warning-7); }
.avatar-tone-6 .avatar-initials { background: var(--neutral-10); }


/* ================================================================
   ICON FALLBACK — generic person silhouette
   ================================================================ */

.avatar-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 100%; height: 100%;
  background: var(--neutral-2);
  color: var(--text-tertiary);
}
.avatar-icon svg { width: 60%; height: 60%; }


/* ================================================================
   GROUP / STACK
   ================================================================ */

.avatar-group {
  display: inline-flex;
  padding-left: 6px;
}
.avatar-group > .avatar,
.avatar-group > .avatar-more {
  margin-left: -6px;
  box-shadow: 0 0 0 2px var(--neutral-1);
  position: relative;
}
.avatar-group > .avatar:hover { z-index: 2; }
.avatar-more {
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0; border-radius: 50%;
  background: var(--neutral-3);
  color: var(--text-secondary);
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size); /* 12px */
  font-weight: var(--type-label-sm-weight);
}
.avatar-group-lg > .avatar,
.avatar-group-lg > .avatar-more {
  margin-left: -10px;
  box-shadow: 0 0 0 2px var(--neutral-1);
}


/* ================================================================
   STATUS INDICATOR — bottom-right dot
   ================================================================ */

.avatar-status {
  position: absolute;
  border-radius: 50%;
  box-shadow: 0 0 0 2px var(--neutral-1);
  background: var(--neutral-7);
  z-index: 1;
}
.avatar-status-online  { background: var(--success-5); }
.avatar-status-busy    { background: var(--error-5); }
.avatar-status-away    { background: var(--warning-5); }
.avatar-status-offline { background: var(--neutral-7); }
/* Per-size positioning on circle edge */
.avatar-xs .avatar-status { width: 7px;  height: 7px;  bottom: 0px;  right: -1px; box-shadow: 0 0 0 1.5px var(--neutral-1); }
.avatar-sm .avatar-status { width: 9px;  height: 9px;  bottom: 0px;  right: 0px; }
.avatar-md .avatar-status { width: 10px; height: 10px; bottom: 1px;  right: 1px; }
.avatar-lg .avatar-status { width: 12px; height: 12px; bottom: 2px;  right: 2px; }
.avatar-xl .avatar-status { width: 16px; height: 16px; bottom: 3px;  right: 3px; }


/* ================================================================
   SQUARE VARIANT
   ================================================================ */

.avatar-square { border-radius: 0; }


/* ================================================================
   DARK THEME — automatic via semantic tokens.
   Primitive ramp colours (--raw-gold-700 etc.) stay constant across themes.
   ================================================================ */

/* ─── components/badge.css ─── */

/*
 * Cuemath Design System — Badge / Tag Component
 * ------------------------------------------------
 * Status indicators, labels, counts.
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * All colour values reference semantic tokens defined in base.css.
 * Never hardcode hex values in this file.
 */


/* ================================================================
   BASE BADGE
   ================================================================ */

.badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-4);
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  height: 20px;
  padding: 0 var(--space-10) 1px;
  /* Transparent stroke: tinted badges show fill only. Width reserved (1px) so the
     content box is identical to ghost badges, which make this border visible. */
  border: 1px solid transparent;
  border-radius: var(--radius-full);
  background: var(--neutral-2);
  color: var(--text-primary);
  white-space: nowrap;
  vertical-align: middle;
  box-sizing: border-box;
}


/* ================================================================
   SIZES
   Fixed per-size heights. Vertical centering handled by inline-flex
   align-items:center; horizontal padding scales with size.
   ================================================================ */

.badge-sm {
  font-size: var(--type-label-xs-size);
  line-height: var(--type-label-xs-lh);
  font-weight: var(--type-label-xs-weight);
  height: 18px;
  padding: 0 var(--space-8) 1px;
}

.badge-lg {
  font-size: var(--type-label-md-size);
  line-height: var(--type-label-md-lh);
  font-weight: var(--type-label-md-weight);
  height: 24px;
  padding: 0 var(--space-12) 1px;
}


/* ================================================================
   STATUS VARIANTS — tinted backgrounds with matching text
   ================================================================ */

.badge-brand {
  background: var(--brand-2);
  color: var(--text-brand);
}

.badge-success {
  background: var(--success-2);
  color: var(--text-success);
}

.badge-error {
  background: var(--error-2);
  color: var(--text-error);
}

.badge-warning {
  background: var(--warning-2);
  color: var(--text-warning);
}

.badge-info {
  background: var(--info-2);
  color: var(--text-info);
}

.badge-purple {
  background: var(--purple-accent-2);
  color: var(--text-purple);
}


/* ================================================================
   GHOST VARIANT — transparent background, border + text only
   Opt-in when a badge needs to feel lighter inline (e.g. inside
   an accordion trigger or table cell). Never use as the default.
   ================================================================ */

.badge-ghost {
  background: transparent;
  border-color: var(--border-secondary);
}

/* Coloured ghost keeps a matching outline. Tinted and strong have no stroke,
   so the border-color lives here (on the ghost combo), not on .badge-{color}. */
.badge-brand.badge-ghost   { border-color: var(--brand-3); }
.badge-success.badge-ghost { border-color: var(--success-3); }
.badge-error.badge-ghost   { border-color: var(--error-3); }
.badge-warning.badge-ghost { border-color: var(--warning-3); }
.badge-info.badge-ghost    { border-color: var(--info-3); }
.badge-purple.badge-ghost  { border-color: var(--purple-accent-3); }


/* ================================================================
   STRONG VARIANTS — filled with high contrast
   ================================================================ */

/* Strong = 400 fill in light / 600 in dark (via --{accent}-4), with
   --text-primary which flips black (light) → white (dark). The badge inverts
   cleanly with the theme — no manual dark overrides needed. */
.badge-brand-strong {
  background: var(--brand-4);
  color: var(--text-primary);
  border-color: transparent;
}

.badge-success-strong {
  background: var(--success-4);
  color: var(--text-primary);
  border-color: transparent;
}

.badge-error-strong {
  background: var(--error-4);
  color: var(--text-primary);
  border-color: transparent;
}

.badge-warning-strong {
  background: var(--warning-4);
  color: var(--text-primary);
  border-color: transparent;
}

.badge-info-strong {
  background: var(--info-4);
  color: var(--text-primary);
  border-color: transparent;
}

.badge-neutral-strong {
  background: var(--neutral-4);
  color: var(--text-primary);
  border-color: transparent;
}

.badge-purple-strong {
  background: var(--purple-accent-4);
  color: var(--text-primary);
  border-color: transparent;
}


/* ================================================================
   DOT INDICATOR — colour dot before text
   ================================================================ */

/* Dot scales per size: 4 / 5 / 6px (SM / MD / LG). Base = MD. */
.badge-dot::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}

.badge-sm.badge-dot::before { width: 4px; height: 4px; }
.badge-lg.badge-dot::before { width: 6px; height: 6px; }


/* ================================================================
   COUNT — numeric counter (pill shape)
   ================================================================ */

/* Count = numeric pill. Composes with .badge-{color} (Tinted),
   .badge-{color}.badge-ghost (Ghost), or .badge-{color}-strong (Strong).
   Tinted and Strong show fill only (no stroke); only Ghost shows a border. */
.badge-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 var(--space-4);
  border-radius: var(--radius-full);
  font-size: var(--type-label-sm-size); /* 12px */
  line-height: 20px; /* matches pill height for vertical centring (not a type-style lh) */
  font-weight: var(--type-label-sm-weight); /* 500 — coherent label-sm (was heading-md bold 700) */
  text-align: center;
}

.badge-count.badge-sm {
  min-width: 16px;
  height: 16px;
  line-height: 16px;
  font-size: var(--type-label-xs-size); /* 10px */
  padding: 0 var(--space-4);
}


/* ================================================================
   ICON IN BADGE
   ================================================================ */

/* Icon scales per size: 12 / 14 / 16px (SM / MD / LG). Base = MD. */
.badge svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.badge-sm svg {
  width: 12px;
  height: 12px;
}

.badge-lg svg {
  width: 16px;
  height: 16px;
}


/* ================================================================
   INTERACTIVE BADGE (removable / clickable)
   ================================================================ */

.badge-interactive {
  cursor: pointer;
  transition:
    box-shadow var(--duration-instant) var(--ease-default),
    border-color var(--duration-instant) var(--ease-default);
}

.badge-interactive:hover {
  background: var(--neutral-2);
}


/* Focus ring comes from recipes.css (badge-remove keeps its own offset:0 below). */

/* Hover effect on a badge containing a removable × — bumps the fill
   one ramp step deeper so the user sees the badge respond as a unit.
   Tinted variants step from -1 to -2; neutral steps from secondary
   to tertiary. */
.badge:has(.badge-remove):hover {
  background: var(--neutral-3);
}

.badge.badge-brand:has(.badge-remove):hover {
  background: var(--brand-2);
}

.badge.badge-success:has(.badge-remove):hover {
  background: var(--success-2);
}

.badge.badge-error:has(.badge-remove):hover {
  background: var(--error-2);
}

.badge.badge-warning:has(.badge-remove):hover {
  background: var(--warning-2);
}

.badge.badge-info:has(.badge-remove):hover {
  background: var(--info-2);
}

/* Remove button inside badge — uses library close.svg */
.badge-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  padding: 0;
  margin-left: var(--space-4);
  border: none;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  flex-shrink: 0;
}

.badge-remove:hover {
  color: var(--text-primary);
}

.badge-remove:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: 0;
}

/* The × scales with the badge, matching its content icon (12 / 14 / 16). It used
   to sit at a flat 12px with .cm-icon-bold on top, which pushed its stroke to
   1.65px — heavier than the label beside it. The 1.8px library carries the
   weight now, so the bold is gone. Button grows with it to keep a 1px inset. */
.badge-remove svg {
  width: 14px;
  height: 14px;
}

.badge-sm .badge-remove { width: 14px; height: 14px; }
.badge-sm .badge-remove svg { width: 12px; height: 12px; }

.badge-lg .badge-remove { width: 18px; height: 18px; }
.badge-lg .badge-remove svg { width: 16px; height: 16px; }

/* Removable badges need a touch more right padding for the × */
.badge:has(.badge-remove) {
  padding-right: var(--space-4);
}


/* ================================================================
   COUNT — centering + legibility fixes
   ================================================================ */

/* White number on strong count badges */
.badge-count.badge-brand-strong,
.badge-count.badge-error-strong,
.badge-count.badge-success-strong {
  color: var(--text-primary);
  border-color: transparent;
}


/* ================================================================
   OVERLAY POSITIONING — badge on icon buttons / avatars
   ================================================================ */

.badge-wrapper { position: relative; display: inline-flex; }
.badge-overlay {
  position: absolute;
  pointer-events: none;
  top: 0; right: 0;
  transform: translate(40%, -40%);
  z-index: 1;
}
/* On avatars — badge center on circle edge at 45° */
.badge-wrapper[data-avatar] .badge-overlay {
  top: 14%; right: 14%;
  transform: translate(50%, -50%);
}


/* ================================================================
   STANDALONE NOTIFICATION DOT
   ================================================================ */

.badge-dot-standalone {
  display: inline-block;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--text-secondary);
  vertical-align: middle;
}
.badge-dot-standalone-sm { width: 6px; height: 6px; }
.badge-dot-standalone-lg { width: 10px; height: 10px; }
.badge-dot-standalone.badge-brand   { background: var(--brand-5); }
.badge-dot-standalone.badge-success { background: var(--success-5); }
.badge-dot-standalone.badge-error   { background: var(--error-5); }
.badge-dot-standalone.badge-warning { background: var(--warning-5); }
.badge-dot-standalone.badge-info    { background: var(--info-5); }
.badge-dot-standalone-ring { box-shadow: 0 0 0 2px var(--neutral-1); }


/* ================================================================
   ANIMATED ENTRANCE
   ================================================================ */

@keyframes badge-pop-in {
  0%   { transform: scale(0); opacity: 0; }
  70%  { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}
.badge-animated-in {
  animation: badge-pop-in var(--duration-slow) var(--ease-out) both;
  transform-origin: center;
}
@keyframes badge-overlay-pop-in {
  0%   { transform: translate(40%, -40%) scale(0); opacity: 0; }
  70%  { transform: translate(40%, -40%) scale(1.15); opacity: 1; }
  100% { transform: translate(40%, -40%) scale(1); opacity: 1; }
}
.badge-overlay.badge-animated-in {
  animation: badge-overlay-pop-in var(--duration-slow) var(--ease-out) both;
  transform-origin: center;
}


/* ================================================================
   DARK THEME
   Status variants auto-flip via semantic tokens.
   Strong variants need explicit overrides for border.
   ================================================================ */

/* Strong badges flip automatically via --{accent}-4 (400→600) and
   --text-primary (black→white) — no manual dark overrides needed. */

/* ─── components/button.css ─── */

/*
 * Cuemath Design System — Button Component
 * ------------------------------------------
 * Requires: base.css (or colour-tokens.css + spacing-tokens.css)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * All colour values reference semantic tokens defined in base.css.
 * Never hardcode hex values in this file.
 */


/* ================================================================
   BASE
   ================================================================ */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-label);
  font-weight: var(--type-label-md-weight); /* 500 */
  cursor: pointer;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-selected);
  text-decoration: none;  /* Allow <a class="btn"> without underline */
  transition:
    box-shadow var(--duration-instant) var(--ease-default),
    transform var(--duration-instant) var(--ease-out);
  white-space: nowrap;
}

/* Press (scale) + focus ring come from recipes.css. */


/* ================================================================
   SIZES — text-only
   ================================================================ */

/* Horizontal padding is two rules, not six numbers:
     text pad = 16 at sm, +4 per size  (16 / 20 / 24)
     icon pad = text pad - 4           (12 / 16 / 20)
   The icon side is always one step tighter because a glyph carries its own
   optical whitespace, and the step stays constant so the two never drift
   apart by size (they used to differ by 4 / 8 / 8). */
.btn { padding: 0 var(--btn-pad); }
.btn.has-leading  { padding-left: calc(var(--btn-pad) - var(--space-4)); }
.btn.has-trailing { padding-right: calc(var(--btn-pad) - var(--space-4)); }

.btn-sm { --btn-pad: var(--space-16); height: 32px; font-size: var(--type-label-sm-size); line-height: 16px; gap: 6px; }
.btn-md { --btn-pad: var(--space-20); height: 40px; font-size: var(--type-label-md-size); line-height: 16px; gap: 8px; }
.btn-lg { --btn-pad: var(--space-24); height: 48px; font-size: var(--type-label-lg-size); line-height: 20px; gap: 8px; }


/* ================================================================
   SIZES — icon-only (square)
   ================================================================ */

.btn-icon-only.btn-sm { width: 32px; height: 32px; padding: 0; }
.btn-icon-only.btn-md { width: 40px; height: 40px; padding: 0; }
.btn-icon-only.btn-lg { width: 48px; height: 48px; padding: 0; }


/* ================================================================
   SHAPE — full-radius modifiers. Figma: Button / Shape=Pill,
   Icon Button / Shape=Circle.
   .btn-pill  — any button, fully rounded ends (Shape=Pill).
   .btn-round — icon-only buttons, a circle (Shape=Circle). Kept as the
                icon-only name; it is the same rule.
   ================================================================ */

.btn-pill,
.btn-icon-only.btn-round { border-radius: var(--radius-full); }


/* ================================================================
   ICONS
   ================================================================ */

.btn svg {
  flex-shrink: 0;
}

.btn-sm svg { width: 14px; height: 14px; }
.btn-md svg { width: 16px; height: 16px; }
.btn-lg svg { width: 18px; height: 18px; }

/* Icon-only buttons size the icon to the BUTTON, not to an absent label.
   The `box = text size + 2px` rule (see icons.css) is defined relative to the
   text sitting beside the glyph. An icon-only button has no label, so that
   reference doesn't exist, and a label-sized icon reads small and light alone
   in the box — an isolated mark also looks smaller than the same mark tucked
   next to a word. Icon-only therefore takes half the button: 16 / 20 / 24.
   That also lands the stroke on 1.20 / 1.50 / 1.80px, and at lg the glyph
   renders at the size it was drawn (24px), with no downscaling. */
.btn-icon-only.btn-sm svg { width: 16px; height: 16px; }
.btn-icon-only.btn-md svg { width: 20px; height: 20px; }
.btn-icon-only.btn-lg svg { width: 24px; height: 24px; }


/* ================================================================
   VARIANTS
   ================================================================ */

.btn-primary     { background: var(--brand-5);   color: var(--text-primary); }
.btn-neutral     { background: var(--neutral-13);          color: var(--text-inverse-primary); }
.btn-secondary   { background: transparent;                color: var(--text-primary); }
.btn-ghost       { background: transparent;                color: var(--text-primary); border-color: transparent; }
.btn-destructive { background: var(--error-5);   color: var(--text-primary); }
.btn-success     { background: var(--success-5); color: var(--text-primary); }

/* Filled neutral variants — same shape as secondary/ghost, but sitting on the lifted
   surface (--neutral-0) instead of transparent. Use when a quiet button needs to read as a
   solid control on a busy or tinted background. --neutral-0 + text-primary both auto-flip by theme,
   so no dark override is needed. secondary-fill keeps the border; ghost-fill has none. */
.btn-secondary-fill { background: var(--neutral-0); color: var(--text-primary); }
.btn-ghost-fill     { background: var(--neutral-0); color: var(--text-primary); border-color: transparent; }


/* ================================================================
   HOVER — ramp-step bg swap. Each variant shifts to the next step
   on its colour family. Theme-flip is automatic via semantic tokens
   (light: +100 step / dark: −100 step).
   ================================================================ */

.btn-primary:hover,     .btn-primary.is-hover     { background: var(--brand-6); }
.btn-destructive:hover, .btn-destructive.is-hover { background: var(--error-6); }
.btn-success:hover,     .btn-success.is-hover     { background: var(--success-6); }

/* Neutral (filled with text-primary) — flip to --neutral-12 which is the step
   one closer to the page bg */
.btn-neutral:hover,     .btn-neutral.is-hover     { background: var(--neutral-12); }

/* Transparent variants — promote to next neutral surface step */
.btn-secondary:hover, .btn-secondary.is-hover,
.btn-ghost:hover,     .btn-ghost.is-hover {
  background: var(--neutral-2);
}

/* Filled neutral variants — start at --neutral-0, darken one surface step on hover */
.btn-secondary-fill:hover, .btn-secondary-fill.is-hover,
.btn-ghost-fill:hover,     .btn-ghost-fill.is-hover {
  background: var(--neutral-1);
}


/* ================================================================
   STATES — disabled, loading
   ================================================================ */

/* Disabled treatment comes from recipes.css. */

.btn.is-loading {
  opacity: 0.4;
  pointer-events: none;
  position: relative;
}

.btn.is-loading .btn-text {
  visibility: hidden;
}

.btn.is-loading::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: btn-spin 0.6s linear infinite;
}

@keyframes btn-spin {
  to { transform: rotate(360deg); }
}


/* ================================================================
   FULL-WIDTH MODIFIER
   ================================================================ */

.btn-full { width: 100%; }


/* ================================================================
   DARK THEME OVERRIDES
   Border handled by --border-selected (neutral-1000/neutral-100).
   Only text colour overrides remain — filled buttons need dark text
   on their coloured fills in dark mode (text-primary flips to light).
   ================================================================ */

[data-theme="dark"] .btn-primary     { color: var(--raw-stone-1000); }
[data-theme="dark"] .btn-neutral     { color: var(--raw-stone-1000); }
[data-theme="dark"] .btn-destructive { color: var(--raw-stone-1000); }
[data-theme="dark"] .btn-success     { color: var(--raw-stone-1000); }

/* Dark theme hover overrides removed — semantic tokens above auto-flip. */


/* ================================================================
   BUTTON GROUP — connected sibling buttons
   ================================================================ */

.btn-group {
  display: inline-flex;
}

/* Connected group: inner corners square, outer corners follow the group. */
.btn-group .btn {
  border-radius: var(--radius-none);
}

.btn-group .btn:first-child { border-radius: var(--radius-sm) var(--radius-none) var(--radius-none) var(--radius-sm); }
.btn-group .btn:last-child  { border-radius: var(--radius-none) var(--radius-sm) var(--radius-sm) var(--radius-none); }
.btn-group .btn:only-child  { border-radius: var(--radius-sm); }

.btn-group .btn + .btn {
  margin-left: -1px;
}

.btn-group .btn:hover,
.btn-group .btn:focus {
  position: relative;
  z-index: 1;
}

/* Vertical button group */
.btn-group-vertical {
  display: inline-flex;
  flex-direction: column;
}

.btn-group-vertical .btn + .btn {
  margin-left: 0;
  margin-top: -1px;
}

.btn-group-vertical .btn { border-radius: var(--radius-none); }
.btn-group-vertical .btn:first-child { border-radius: var(--radius-sm) var(--radius-sm) var(--radius-none) var(--radius-none); }
.btn-group-vertical .btn:last-child  { border-radius: var(--radius-none) var(--radius-none) var(--radius-sm) var(--radius-sm); }
.btn-group-vertical .btn:only-child  { border-radius: var(--radius-sm); }

/* ─── components/card.css ─── */

/*
 * Cuemath Design System — Card Component
 * ----------------------------------------
 * Requires: base.css (or colour-tokens.css + spacing-tokens.css
 *           + surface-tokens.css + motion-tokens.css)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * One card. No variants. The designer picks fill and border to suit
 * the surface the card sits on. Shadow is reserved for interaction —
 * it appears on hover to signal "this is clickable."
 */


/* ================================================================
   BASE
   ================================================================ */

.card {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
  padding: var(--space-24);
  background: var(--neutral-2);
  border: 1px solid var(--border-secondary);
  border-radius: var(--radius-none);
  box-shadow: none;
  transition:
    box-shadow var(--duration-instant) var(--ease-default),
    border-color var(--duration-instant) var(--ease-default);
}


/* ================================================================
   COMPACT PADDING
   ================================================================ */

.card-compact {
  padding: var(--space-16);
}


/* ================================================================
   CONTENT ZONES
   All zones are optional. Use what the card needs.
   ================================================================ */

.card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-12);
}

.card-header-text {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
  flex: 1;
}

.card-title {
  font-family: var(--font-heading);
  font-size: var(--type-heading-sm-size);
  line-height: var(--type-heading-sm-lh);
  font-weight: var(--type-heading-sm-weight-bold);
  color: var(--text-primary);
}

.card-description {
  font-family: var(--font-body);
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
  font-weight: var(--type-body-md-weight);
  color: var(--text-secondary);
}

.card-content {
  font-family: var(--font-body);
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
  font-weight: var(--type-body-md-weight);
  color: var(--text-primary);
}

.card-footer {
  display: flex;
  align-items: center;
  gap: var(--space-12);
  padding-top: var(--space-8);
  border-top: 1px solid var(--border-secondary);
}

.card-footer-borderless {
  border-top: none;
  padding-top: 0;
}

/* Stacked footers — only the first gets a border so consecutive
   .card-footer siblings don't double-up the separator. Use :not(:first-of-type)
   so the rule fires regardless of any non-footer siblings between footers. */
.card > .card-footer:not(:first-of-type) {
  border-top: none;
}


/* ================================================================
   INTERACTIVE CARD
   ================================================================ */

/* Interactive cards (clickable / selectable) round to 8px — the rounding is
   the cue that the whole card is a target. Read-only info cards stay sharp
   (base .card). overflow:hidden clips full-bleed .card-media to the rounded
   corners; box-shadow and the focus/selected rings render outside the border
   box, so they're unaffected. */
.card-interactive {
  cursor: pointer;
  border-radius: var(--radius-md);
  overflow: hidden;
}

.card-interactive:hover,
.card-interactive.is-hover {
  box-shadow: var(--shadow-sm);
  border-color: var(--border-primary);
}

/* Press (scale) + focus ring come from recipes.css. */


/* ================================================================
   SELECTED STATE
   Brand-coloured ring to mark the active / chosen card.
   Pairs with card-interactive for selectable card groups.
   ================================================================ */

.card.is-selected {
  border-color: var(--text-brand);
  box-shadow: 0 0 0 1px var(--text-brand);
}

/* Selected-card focus ring comes from recipes.css. */


/* ================================================================
   HORIZONTAL LAYOUT
   Thumbnail left, content right. For mobile lists.
   ================================================================ */

.card-horizontal {
  flex-direction: row;
  gap: var(--space-16);
}

.card-horizontal .card-thumb {
  width: 80px;
  height: 80px;
  flex-shrink: 0;
  overflow: hidden;
}

.card-horizontal .card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.card-horizontal .card-body {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  min-width: 0;
  flex: 1;
}


/* ================================================================
   DISABLED
   ================================================================ */

/* Disabled treatment comes from recipes.css. */


/* ================================================================
   TINTED CARDS — Status communication
   These are the only cards with prescribed fill + border.
   ================================================================ */

.card-brand-tint {
  background: var(--brand-1);
  border-color: var(--brand-3);
  box-shadow: none;
}

.card-error-tint {
  background: var(--error-1);
  border-color: var(--error-3);
  box-shadow: none;
}

.card-success-tint {
  background: var(--success-1);
  border-color: var(--success-3);
  box-shadow: none;
}

.card-warning-tint {
  background: var(--warning-1);
  border-color: var(--warning-3);
  box-shadow: none;
}

.card-info-tint {
  background: var(--info-1);
  border-color: var(--info-3);
  box-shadow: none;
}


/* ================================================================
   MEDIA — top-bleed images
   Place .card-media as the first child. It bleeds to card edges.
   ================================================================ */

.card-media {
  /* Full-bleed via negative margins only. The card is a column flex, so the
     media stretches to the card's inner width on its own; an explicit
     width: calc(100% + padding*2) was redundant (verified) and is omitted. */
  margin: calc(-1 * var(--space-24)) calc(-1 * var(--space-24)) 0;
  overflow: hidden;
}

.card-compact .card-media {
  margin: calc(-1 * var(--space-16)) calc(-1 * var(--space-16)) 0;
}

.card-media img,
.card-media video {
  display: block;
  width: 100%;
  height: auto;
}


/* ================================================================
   SKELETON SLOT — loading placeholder inside card shell
   ================================================================ */

.card > .card-skel {
  padding: var(--space-20);
  display: flex; flex-direction: column; gap: var(--space-12);
}
.card-compact > .card-skel { padding: var(--space-16); }
.card-loading { position: relative; min-height: 160px; }
.card-loading > *:not(.card-loading-skel) { visibility: hidden; }
.card-loading-skel {
  position: absolute; inset: 0;
  padding: var(--space-24);
  display: flex; flex-direction: column; gap: var(--space-8);
}
/* Title→body rhythm: more breathing room after the heading bar */
.card-loading-skel > .skeleton-heading { margin-bottom: var(--space-8); }


/* ================================================================
   GRID LAYOUT HELPER
   ================================================================ */

.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--card-grid-min, 240px), 1fr));
  gap: var(--space-16);
}
.card-grid > .card { height: 100%; }


/* ================================================================
   EXPANDABLE — native details/summary
   ================================================================ */

/* Reset .card padding — summary + body manage their own padding.
   !important here because details.card.card-expandable composes two
   classes that both set padding; some build pipelines and aggressive
   browser caches have shown the base `.card { padding: 24 }` winning
   in the wild. !important makes this deterministic. */
details.card.card-expandable,
.card.card-expandable {
  padding: 0 !important;
  gap: 0 !important;
  /* Expandable cards are interactive (click to reveal), so they round to 8px
     like other interactive cards; overflow clips the expand-body to the corner. */
  border-radius: var(--radius-md);
  overflow: hidden;
}

.card-expandable > summary {
  list-style: none;
  cursor: pointer;
  display: flex; align-items: center;
  padding: var(--space-24);
  gap: var(--space-16);
}
/* Optical centring: align the title's line-box height to the chevron (24px) so
   font leading sits symmetrically inside the row. */
.card-expandable > summary > .type-label-lg,
.card-expandable > summary > .type-label-md,
.card-expandable > summary > .type-label-sm {
  display: inline-flex;
  align-items: center;
  height: 24px;
  line-height: 1;
}
.card-expandable > summary::-webkit-details-marker { display: none; }
/* Box comes from .cm-icon (icons.css). These are card-toggle specifics:
   push to the row's right edge, brand-neutral colour, and the +/- crossfade.
   Markup: <span class="cm-icon card-expand-toggle"><svg .icon-plus/><svg .icon-minus/></span>
   Glyphs are add.svg / minus.svg from the icon library. */
.card-expand-toggle {
  /* Summary text is 16px, so the toggle is 18px (icons.css: icon = text + 2).
     Without this it falls back to .cm-icon's bare 24px default, which was never
     sized against this label. */
  --icon-size: 18px;
  margin-left: auto;
  color: var(--text-secondary);
  position: relative;
}
.card-expand-toggle svg {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: opacity var(--duration-normal) var(--ease-default),
              transform var(--duration-normal) var(--ease-default);
}
.card-expand-toggle .icon-minus {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(-90deg);
}
.card-expandable[open] > summary .card-expand-toggle .icon-plus {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg);
}
.card-expandable[open] > summary .card-expand-toggle .icon-minus {
  opacity: 1;
  transform: translate(-50%, -50%) rotate(0);
}
.card-expandable > .card-expand-body {
  padding: var(--space-24);
  background: var(--neutral-2);
  position: relative;
  font-size: var(--type-body-md-size);
  color: var(--text-secondary);
}
.card-expandable > .card-expand-body::before {
  content: "";
  position: absolute;
  top: 0;
  left: var(--space-24);
  right: var(--space-24);
  height: 1px;
  background: var(--border-secondary);
}

/* ─── components/dropdown.css ─── */

/*
 * Cuemath Design System — Dropdown / Menu Component
 * ---------------------------------------------------
 * Action menus, context menus, and select-with-search.
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * All colour values reference semantic tokens defined in base.css.
 * Never hardcode hex values in this file.
 */


/* ================================================================
   DROPDOWN CONTAINER — positions the menu relative to trigger
   ================================================================ */

.dropdown {
  position: relative;
  display: inline-flex;
}


/* ================================================================
   MENU SURFACE
   ================================================================ */

.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: var(--z-dropdown);
  min-width: 180px;
  max-width: 320px;
  margin-top: var(--space-4);
  padding: var(--space-8);
  background: var(--neutral-1);
  border: 1px solid var(--border-secondary);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition:
    opacity var(--duration-fast) var(--ease-default),
    transform var(--duration-fast) var(--ease-default),
    visibility var(--duration-fast) var(--ease-default);
}

.dropdown-menu.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}


/* ================================================================
   PLACEMENT VARIANTS
   ================================================================ */

.dropdown-menu-right {
  left: auto;
  right: 0;
}

.dropdown-menu-up {
  top: auto;
  bottom: 100%;
  margin-top: 0;
  margin-bottom: var(--space-4);
  transform: translateY(4px);
}

.dropdown-menu-up.is-open {
  transform: translateY(0);
}


/* ================================================================
   MENU ITEMS
   ================================================================ */

.dropdown-item {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  width: 100%;
  /* Text-only default: l12 / r12. A leading icon hugs the left edge at 8px
     (rule below); right held at 12 so the active tick lands at the padding edge. */
  padding: var(--space-8) var(--space-12);
  border-radius: var(--radius-xs);
  font-family: var(--font-body);
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
  color: var(--text-primary);
  background: transparent;
  border: none;
  text-align: left;
  cursor: pointer;
  transition:
    box-shadow var(--duration-instant) var(--ease-default),
    color var(--duration-instant) var(--ease-default);
}

/* Hover — neutral +1 / -1 step from page bg.
   --neutral-2 is exactly that in both themes:
     light: --raw-stone-200 (one step darker than --neutral-1 --raw-stone-100)
     dark:  --raw-stone-900 (one step lighter than --neutral-1 --raw-stone-1000) */
.dropdown-item:hover {
  background: var(--neutral-2);
}

/* Focus ring (inset) + press (scale) come from recipes.css. */


/* ================================================================
   ITEM VARIANTS
   ================================================================ */

/* Destructive action */
.dropdown-item-danger {
  color: var(--text-error);
}

.dropdown-item-danger:hover {
  background: var(--error-1);
}

/* Disabled — fade/cursor come from recipes.css; text-collapse stays below. */

/* All text inside a disabled item collapses to --text-primary. opacity:0.4
   handles the disabled feel; uniform colour avoids tier-stacking. */
.dropdown-item[disabled],
.dropdown-item.is-disabled,
.dropdown-item[disabled] .dropdown-item-desc,
.dropdown-item.is-disabled .dropdown-item-desc {
  color: var(--text-primary);
}

/* Active / selected — body-emphasis weight (medium), coherent with the item's
   body family; the tick handles the primary signal */
.dropdown-item.is-active {
  font-weight: var(--type-body-emphasis);
}

/* Tick — submit.svg from the icon library, masked so it takes currentColor.
   Rendered in a 16px box at the item's right padding — the same size and inset
   as the trigger's library chevron — so the two align with no magic offset
   (both glyphs sit centred in their 24-unit viewBox). */
.dropdown-item.is-active::after {
  content: '';
  display: block;
  width: 16px;
  height: 16px;
  margin-left: auto;
  /* Sits at the row's 12px right padding edge (item padding-right = --space-12). */
  margin-right: 0;
  background-color: currentColor;
  /* [> icon:submit <] art below is generated by scripts/icon-sync.js — do not hand-edit */
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.134 6.28251L10.0256 18.8483L8.4416 18.2829C8.4416 15.4101 6.30538 12.9428 3.32832 12.2114L3.77168 10.5256C6.77013 11.2622 9.16316 13.4453 9.95821 16.2449L19.7658 5.15166L21.134 6.28251Z' fill='%23000'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21.134 6.28251L10.0256 18.8483L8.4416 18.2829C8.4416 15.4101 6.30538 12.9428 3.32832 12.2114L3.77168 10.5256C6.77013 11.2622 9.16316 13.4453 9.95821 16.2449L19.7658 5.15166L21.134 6.28251Z' fill='%23000'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  flex-shrink: 0;
}


/* ================================================================
   ITEM DESCRIPTION — secondary text below the label
   ================================================================ */

.dropdown-item-content {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.dropdown-item-desc {
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-lh);
  color: var(--text-tertiary);
}


/* ================================================================
   ICONS IN ITEMS
   ================================================================ */

/* Leading-icon items hug the icon to the left at 8px; text-only items keep the
   12px text inset — so an icon-less menu reads with 12px text padding. */
.dropdown-item:has(> svg:first-child),
.dropdown-item:has(> .cm-icon:first-child) {
  padding-left: var(--space-8);
}

/* Item icons use a .cm-icon-16 box in markup (.cm-icon supplies size +
   flex-shrink + colour:inherit). This legacy rule is kept as a safety net for
   any bare <svg> not yet wrapped. */
.dropdown-item svg {
  width: 1em;
  height: 1em;
  flex-shrink: 0;
}

/* Leading icon sits at the item's left padding — the row is now a rounded-rect
   highlight inset within the menu's 8px padding (matching Figma's Basic Menu),
   so the icon aligns to the padding edge with no negative outdent. The 8px gap
   (the item's gap) then separates it from the label. */


/* ================================================================
   DIVIDER — horizontal rule between groups
   ================================================================ */

.dropdown-divider {
  height: 1px;
  margin: var(--space-4) 0;
  background: var(--border-tertiary);
}


/* ================================================================
   GROUP LABEL — section heading inside menu
   ================================================================ */

.dropdown-label {
  padding: var(--space-8) var(--space-12) var(--space-4) var(--space-8);
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  color: var(--text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.02em;
}


/* ================================================================
   SEARCH INPUT — for searchable selects
   ================================================================ */

.dropdown-search {
  display: block;
  width: 100%;
  padding: var(--space-8) var(--space-12) var(--space-8) var(--space-8);
  font-family: var(--font-body);
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
  color: var(--text-primary);
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--border-tertiary);
  outline: none;
}

.dropdown-search::placeholder {
  color: var(--text-tertiary);
}

.dropdown-search:focus {
  border-bottom-color: var(--text-primary);
}


/* ================================================================
   SCROLLABLE MENU — max height with overflow
   ================================================================ */

.dropdown-scroll {
  position: relative;
  max-height: 280px;
  overflow-y: auto;
  /* Custom scrollbar comes from recipes.css (.dropdown-scroll). */
}

/* Scroll fade — signals more content below */
.dropdown-scroll::after {
  content: '';
  position: sticky;
  bottom: 0;
  display: block;
  height: 28px;
  margin-top: -28px;
  background: linear-gradient(to bottom, transparent, var(--neutral-1));
  pointer-events: none;
}


/* ================================================================
   SEARCHABLE SELECT — composed pattern
   Combines the cm-field field-trigger with dropdown-menu + search.
   The trigger opens a dropdown that filters items on type.
   ================================================================ */

.select-searchable {
  position: relative;
  width: 100%;
}

/* Menu stretches to match trigger width, opens with slight gap */
.select-searchable .dropdown-menu {
  left: 0;
  right: 0;
  min-width: auto;
  max-width: none;
  margin-top: var(--space-8);
}

/* Centre-aligned menu variant */
.dropdown-menu-center {
  left: 50%;
  transform: translateX(-50%) translateY(-4px);
}

.dropdown-menu-center.is-open {
  transform: translateX(-50%) translateY(0);
}

.select-searchable .dropdown-search {
  position: sticky;
  top: 0;
  background: var(--neutral-1);
  z-index: 1;
}

/* Empty state when no results match the search */
.dropdown-empty {
  padding: var(--space-16) var(--space-16);
  font-family: var(--font-body);
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
  color: var(--text-tertiary);
  text-align: center;
}


/* ================================================================
   DROPDOWN AS A FORM FIELD
   The trigger is a <button class="cm-field-trigger"> sitting inside
   the existing .cm-field-wrap. Inherits floating label, notch,
   helper, focus ring, error/success/disabled, hover, and dark theme
   from cm-field — zero new chrome. The custom .dropdown-menu opens
   below the wrap on click; native browser <select> is replaced.

   Markup:
     <div class="cm-field">
       <div class="cm-field-wrap">
         <button class="cm-field-trigger">Mathematics</button>
         <span class="cm-field-label">Subject</span>
         <fieldset class="cm-field-notch"><legend><span>Subject</span></legend></fieldset>
       </div>
       <div class="dropdown-menu">…</div>
       <div class="cm-field-helper"></div>
     </div>

   Add .is-placeholder to the trigger when nothing is selected (label
   rests centred). Add .is-open to .cm-field when the menu is visible
   (flips the +/− icon).
   ================================================================ */

.cm-field { position: relative; }

/* Trigger — same chrome as .cm-field-wrap select */
.cm-field-wrap > .cm-field-trigger {
  appearance: none;
  -webkit-appearance: none;
  font-family: var(--_field-font);
  font-weight: var(--_field-weight);
  font-size: var(--_field-size);
  line-height: var(--_field-lh);
  color: var(--text-primary);
  background: transparent;
  border: 0;
  outline: 0;
  width: 100%;
  height: var(--_field-h);
  /* Right padding clears the 16px chevron (at 12px) by 4px = 32px (matches the field). */
  padding: 0 var(--space-32) 0 var(--_field-padding);
  cursor: pointer;
  text-align: left;
  position: relative;
}

/* Chevron — the same scoop glyph as the native <select>, in a 16px .cm-icon
   box, rotating 180° when the field is open (the conventional "open" cue for a
   picker). 16px matches the native select chevron in the same field family;
   the box's right edge sits at --space-12 from the wrap's right edge (same as the
   field's leading/trailing icons and the native select chevron). Markup:
   a sibling after the trigger button —
   <span class="cm-icon cm-field-trigger-icon"><svg>{chevron}</svg></span>
   Size comes from the field (--_field-icon-size: 16 md / 18 lg) so the trigger
   chevron tracks the leading/trailing icons and the native select chevron.
   Do NOT add a .cm-icon-16 box class — that pins it and breaks .cm-field-lg. */
.cm-field-wrap > .cm-field-trigger-icon {
  --icon-size: var(--_field-icon-size);
  position: absolute;
  top: 50%;
  right: var(--space-12);
  transform: translateY(-50%);
  color: var(--text-secondary);
  pointer-events: none;
}

/* Chevron state colours — mirrors the native select chevron in input.css so the
   two dropdowns behave identically. Without these the trigger chevron stayed
   --text-secondary in every state while the select chevron went red/green/amber. */
.cm-field-wrap:has(> .cm-field-trigger:focus) > .cm-field-trigger-icon,
.cm-field.is-open .cm-field-wrap > .cm-field-trigger-icon { color: var(--text-primary); }
.cm-field-error .cm-field-wrap > .cm-field-trigger-icon { color: var(--text-error); }
.cm-field-success .cm-field-wrap > .cm-field-trigger-icon { color: var(--text-success); }
.cm-field-warning .cm-field-wrap > .cm-field-trigger-icon { color: var(--text-warning); }
.cm-field-disabled .cm-field-wrap > .cm-field-trigger-icon { color: var(--text-primary); }

.cm-field-wrap > .cm-field-trigger-icon svg {
  width: 100%;
  height: 100%;
  transition: transform var(--duration-normal) var(--ease-m3-standard);
}
.cm-field.is-open .cm-field-wrap > .cm-field-trigger-icon svg {
  transform: rotate(180deg);
}

/* Float label for filled trigger (mirror of .cm-field-wrap select sibling rule) */
.cm-field-wrap > .cm-field-trigger ~ .cm-field-label {
  top: 0px;
  transform: translateY(-50%);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  pointer-events: auto;
  user-select: none;
}
.cm-field-wrap > .cm-field-trigger ~ .cm-field-notch legend {
  max-width: 100%;
  transition: max-width var(--duration-fast) var(--ease-m3-standard);
}

/* Placeholder — empty trigger, label rests centred */
.cm-field-wrap > .cm-field-trigger.is-placeholder { color: transparent; }
.cm-field-wrap > .cm-field-trigger.is-placeholder ~ .cm-field-label {
  top: 50%;
  font-size: var(--_field-size);
  line-height: var(--_field-lh);
  font-weight: var(--_field-weight);
}
.cm-field-wrap > .cm-field-trigger.is-placeholder ~ .cm-field-notch legend { max-width: 0.01px; }

/* Focus */
.cm-field-wrap > .cm-field-trigger:focus ~ .cm-field-notch { border-color: var(--border-selected); }
.cm-field-wrap > .cm-field-trigger:focus ~ .cm-field-label { color: var(--text-primary); }

/* Error / success / warning overrides (trigger focus — mirrors the input field) */
.cm-field-error .cm-field-wrap > .cm-field-trigger:focus ~ .cm-field-notch { border-color: var(--text-error); }
.cm-field-error .cm-field-wrap > .cm-field-trigger:focus ~ .cm-field-label { color: var(--text-error); }
.cm-field-success .cm-field-wrap > .cm-field-trigger:focus ~ .cm-field-notch { border-color: var(--text-success); }
.cm-field-success .cm-field-wrap > .cm-field-trigger:focus ~ .cm-field-label { color: var(--text-success); }
.cm-field-warning .cm-field-wrap > .cm-field-trigger:focus ~ .cm-field-notch { border-color: var(--text-warning); }
.cm-field-warning .cm-field-wrap > .cm-field-trigger:focus ~ .cm-field-label { color: var(--text-warning); }

/* Menu — sized to the field, opens directly below the wrap */
.cm-field .dropdown-menu {
  left: 0;
  right: 0;
  min-width: 100%;
  max-width: none;
  margin-top: var(--space-4);
}


/* ================================================================
   SEARCH INPUT WITH LEADING ICON
   Wraps the <input class="dropdown-search"> with a leading search
   icon. Icon on the left — standard convention.
   ================================================================ */

.dropdown-search-wrap {
  position: sticky;
  top: 0;
  background: var(--neutral-1);
  border-bottom: 1px solid var(--border-tertiary);
  z-index: 1;
  display: flex;
  align-items: center;
}
/* Search icon — library search.svg in a .cm-icon-16 box.
   Markup: <span class="cm-icon cm-icon-16 dropdown-search-icon">{search.svg}</span>
   Size + flex-shrink come from .cm-icon-16; this rule adds the inset + colour. */
.dropdown-search-wrap > .dropdown-search-icon {
  margin-left: var(--space-12);
  color: var(--text-tertiary);
}
.dropdown-search-wrap > .dropdown-search {
  border-bottom: 0;
  padding-left: var(--space-4);
}


/* ================================================================
   DARK THEME
   Semantic tokens auto-flip. Shadow and border adapt.
   Checkmark uses CSS mask with currentColor — no overrides needed.
   ================================================================ */

[data-theme="dark"] .dropdown-menu {
  box-shadow: var(--shadow-md);
}

/* ─── components/empty-state.css ─── */

/*
 * Cuemath Design System — Empty State
 * --------------------------------------
 * Zero-data pattern: illustration + message + action.
 * Variants: default, inline (card-embedded), fullpage.
 *
 * Requires: base.css
 */


/* ================================================================
   BASE
   ================================================================ */

.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0;
  padding: var(--space-64) var(--space-24);
  max-width: 480px;
  margin: 0 auto;
}
.empty-state-icon {
  width: 48px; height: 48px;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--text-tertiary);
  background: var(--neutral-3);
  margin-bottom: var(--space-16);
}
.empty-state-icon svg { width: 24px; height: 24px; stroke-width: 1.5; }
.empty-state-illustration {
  width: 160px; height: 120px;
  display: flex; align-items: center; justify-content: center;
  color: var(--text-tertiary);
  background: var(--neutral-2);
  border: 1px dashed var(--border-tertiary);
  margin-bottom: var(--space-16);
}
.empty-state-title {
  font-family: var(--font-heading);
  font-size: var(--type-heading-md-size);
  line-height: var(--type-heading-md-lh);
  font-weight: var(--type-heading-md-weight-bold);
  color: var(--text-secondary);
  margin: 0;
}
.empty-state-description {
  font-family: var(--font-body);
  font-size: var(--type-body-md-size);
  color: var(--text-tertiary);
  line-height: 1.55;
  margin: var(--space-2) 0 0;
}
.empty-state-actions {
  display: flex; gap: var(--space-8);
  margin-top: var(--space-20);
}


/* ================================================================
   INLINE — compact, card-embedded
   ================================================================ */

.empty-state-inline { padding: var(--space-32) var(--space-16); }
.empty-state-inline .empty-state-icon { width: 40px; height: 40px; margin-bottom: var(--space-12); }
.empty-state-inline .empty-state-icon svg { width: 20px; height: 20px; }
.empty-state-inline .empty-state-title { font-size: var(--type-body-lg-size); font-weight: var(--type-body-emphasis); }
.empty-state-inline .empty-state-description { font-size: var(--type-body-md-size); }


/* ================================================================
   FULL-PAGE
   ================================================================ */

.empty-state-fullpage { padding: var(--space-96) var(--space-24); }


/* ================================================================
   DARK THEME — automatic via semantic tokens.
   ================================================================ */

/* ─── components/filter-chip.css ─── */

/*
 * Cuemath Design System — Filter Chip Component
 * ------------------------------------------------
 * Pill-shaped toggle buttons for sort/filter controls.
 * Use above tables and content lists.
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * All colour values reference semantic tokens defined in base.css.
 * Never hardcode hex values in this file.
 */


/* ================================================================
   BASE FILTER CHIP
   ================================================================ */

.filter-chip {
  /* Three sizes, all derived from the height. The chip is a pill, so its
     radius IS height / 2 — and every horizontal value keys off that radius,
     which is why the numbers land where they do:

              height   R    text pad   icon pad   × pad    label→×
       sm       24     12      12        10         6         8
       md       28     14      14        12         8        10
       lg       32     16      16        14        10        12

       text pad = R         a pill wants its content inset by the radius
       icon pad = R - 2     a glyph carries its own optical whitespace
       × pad    = R - 6     the × is lighter still and sits nearer the edge
       label→×  = R - 4

     Only --fc-h and --fc-gap-icon change per size; the rest follow. */
  --fc-h: 28px;
  --fc-r: calc(var(--fc-h) / 2);
  --fc-text: var(--type-label-md-size);
  --fc-icon: 16px;                       /* label + 2, the system icon rule */
  --fc-gap-icon: 4px;                    /* icon → label */

  --fc-pad-text: var(--fc-r);
  --fc-pad-icon: calc(var(--fc-r) - 2px);
  --fc-pad-remove: calc(var(--fc-r) - 6px);
  --fc-gap-remove: calc(var(--fc-r) - 4px);

  display: inline-flex;
  align-items: center;
  gap: var(--fc-gap-icon);
  height: var(--fc-h);
  padding: 0 var(--fc-pad-text);
  font-family: var(--font-label);
  font-size: var(--fc-text);
  line-height: 1;
  font-weight: var(--type-label-sm-weight);
  color: var(--text-secondary);
  background: var(--neutral-1);
  border: 1px solid var(--border-secondary);
  border-radius: var(--radius-full);
  cursor: pointer;
  white-space: nowrap;
  transition:
    background var(--duration-instant) var(--ease-default),
    border-color var(--duration-instant) var(--ease-default),
    color var(--duration-instant) var(--ease-default),
    box-shadow var(--duration-instant) var(--ease-default);
}

/* Icon is the label size + 2 (the system rule in icons.css): 14 / 16 / 18. */
.filter-chip svg {
  width: var(--fc-icon);
  height: var(--fc-icon);
  flex-shrink: 0;
}

/* A leading icon (direct-child svg, first) sits at the icon edge, not the text
   edge — tighter by one step. Also covers the active-state tick, which is a
   leading svg. */
.filter-chip:has(> svg:first-child) {
  padding-left: var(--fc-pad-icon);
}

/* Active-state tick — the library submit.svg path. Size (14px) comes from
   `.filter-chip svg` above; the 1.8px library carries the weight, so it no
   longer needs .cm-icon-bold. */


/* ================================================================
   HOVER
   ================================================================ */

.filter-chip:hover {
  border-color: var(--border-primary);
  color: var(--text-primary);
  background: var(--neutral-2);
}



/* ================================================================
   ACTIVE / SELECTED
   ================================================================ */

.filter-chip.is-active {
  background: var(--neutral-13);
  border-color: var(--neutral-13);
  color: var(--text-inverse-primary);
}

/* Active hover — one ramp step lighter than --neutral-13 so the user
   sees the chip respond. Light theme: 1000 → 900 (--neutral-12).
   Dark theme: 100 → 200. We lean on the existing semantic
   --neutral-12 token, which already maps to the right neutral
   in each theme — no new tokens needed. */
.filter-chip.is-active:hover {
  background: var(--neutral-12);
  border-color: var(--neutral-12);
}



/* ================================================================
   FOCUS
   ================================================================ */

/* Focus ring comes from recipes.css. */


/* ================================================================
   DISABLED
   ================================================================ */

/* Disabled treatment comes from recipes.css. */


/* ================================================================
   FILTER CHIP GROUP — flex container for chip sets
   ================================================================ */

.filter-chip-group {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-8);
}


/* ================================================================
   SIZES — sm (24px). Default is md (implicit, 32px).
   Heights align one rung below button sizes.
   ================================================================ */

.filter-chip-sm {
  --fc-h: 24px;
  --fc-text: var(--type-label-sm-size);   /* 12 */
  --fc-icon: 14px;
  --fc-gap-icon: 3px;
}

/* Explicit alias for the unsuffixed default, so the scale reads sm / md / lg
   with no size left unnamed (same convention as form-primitives). */
.filter-chip-md {
  --fc-h: 28px;
  --fc-text: var(--type-label-md-size);   /* 14 */
  --fc-icon: 16px;
  --fc-gap-icon: 4px;
}

.filter-chip-lg {
  --fc-h: 32px;
  --fc-text: var(--type-label-lg-size);   /* 16 */
  --fc-icon: 18px;
  --fc-gap-icon: 5px;
}

/* ================================================================
   REMOVABLE — chip with trailing × remove button
   ================================================================ */

.filter-chip-removable {
  padding-right: var(--fc-pad-remove);
}

/* The remove control's box matches the glyph (14px) so the × lands exactly at
   the icon edge; --fc-gap-remove is the true label↔× gap. */
.filter-chip-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--fc-icon);
  height: var(--fc-icon);
  /* flex `gap` is uniform, but label→× is wider than icon→label. Top up the
     difference here rather than splitting the row into two flex containers. */
  margin-left: calc(var(--fc-gap-remove) - var(--fc-gap-icon));
  border: 0;
  background: transparent;
  color: currentColor;
  cursor: pointer;
  opacity: 0.6;
  border-radius: var(--radius-none);
  transition: opacity var(--duration-instant) var(--ease-default);
}

/* Matches the leading icon so the chip's two icons stay uniform. */
.filter-chip-remove svg {
  width: var(--fc-icon);
  height: var(--fc-icon);
}

.filter-chip-remove:hover {
  opacity: 1;
  color: var(--text-primary);
  background: transparent;
}

.filter-chip.is-active .filter-chip-remove:hover {
  color: var(--text-inverse-primary);
  background: transparent;
}

/* ─── components/form-primitives.css ─── */

/*
 * Cuemath Design System — Form Primitives
 * ----------------------------------------
 * Checkbox, Radio, Toggle/Switch, Select
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * Shares DNA with Input: focus ring, disabled pattern,
 * error states, label typography, motion tokens.
 */


/* ================================================================
   CHECKBOX
   ================================================================ */

.cm-checkbox {
  display: inline-flex;
  align-items: flex-start;
  gap: var(--space-8);
  cursor: pointer;
  position: relative;
}

.cm-checkbox input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.cm-checkbox-box {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  border: 1px solid var(--border-primary);
  border-radius: var(--radius-xs);
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px; /* align with first line of text */
  transition:
    background var(--duration-instant) var(--ease-default),
    border-color var(--duration-instant) var(--ease-default),
    box-shadow var(--duration-instant) var(--ease-default);
}

/* Checkbox box becomes positioning context so check + dash svgs overlay at centre.
   Without this, both svgs would lay out as flex siblings (side-by-side) and the
   dash-icon would visually escape when only check-icon is meant to show. */
.cm-checkbox-box { position: relative; overflow: hidden; }

/* Checkmark: submit-thick.svg from the icon library. The library ships a
   purpose-drawn heavy pair (submit-thick / minus-thick at 3.2 units on the 24
   grid) for exactly this job, so the tick no longer needs a stroke overlay
   painted on top of a lighter glyph. Same rendered weight as the old hack
   (3.2 vs 3.3) with correct terminals and elbow.
   Both check-icon and dash-icon stack at the centre via absolute positioning. */
.cm-checkbox-box svg {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 12px;
  height: 12px;
  fill: var(--text-primary);
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.6);
  transition:
    opacity var(--duration-fast) var(--ease-m3-standard),
    transform var(--duration-fast) var(--ease-m3-standard);
}

/* Hover — ramp-step bg fill + stronger border darken (border → text-primary).
   Small targets (18×18) need a more visible border signal than the field-hover
   rule, plus the checked state already lands on text-primary so this previews it.
   Shared by the checkbox box, radio circle and toggle track. */
.cm-checkbox:hover .cm-checkbox-box,
.cm-radio:hover .cm-radio-circle,
.cm-toggle:hover .cm-toggle-track {
  border-color: var(--text-primary);
  background: var(--neutral-2);
}
.cm-checkbox:hover input:checked + .cm-checkbox-box,
.cm-checkbox:hover input:indeterminate + .cm-checkbox-box {
  background: var(--brand-6);
}

/* Checked — brand gold fill, border-coloured checkmark */
.cm-checkbox input:checked + .cm-checkbox-box {
  background: var(--brand-5);
  border-color: var(--text-primary);
}

/* Check (submit) shows when checked; dash (minus) shows when indeterminate.
   Keyed off data-icon — the reliable discriminator present on every library
   glyph — so a plain checkbox (just the submit svg, no extra class) still shows
   its check, and select-all boxes with both glyphs swap correctly. */
.cm-checkbox input:checked + .cm-checkbox-box svg:is([data-icon="submit-thick"],[data-icon="submit"]) {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

/* When fully checked, keep the dash hidden (only shows on indeterminate). */
.cm-checkbox input:checked + .cm-checkbox-box svg:is([data-icon="minus-thick"],[data-icon="minus"]) {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.6);
}

/* Indeterminate */
.cm-checkbox input:indeterminate + .cm-checkbox-box {
  background: var(--brand-5);
  border-color: var(--text-primary);
}

.cm-checkbox input:indeterminate + .cm-checkbox-box svg:is([data-icon="submit-thick"],[data-icon="submit"]) { opacity: 0; transform: translate(-50%, -50%) scale(0.6); }
.cm-checkbox input:indeterminate + .cm-checkbox-box svg:is([data-icon="minus-thick"],[data-icon="minus"]) { opacity: 1; transform: translate(-50%, -50%) scale(1); }

/* ================================================================
   DESTRUCTIVE CHECKBOX — .cm-checkbox-destructive
   ----------------------------------------------------------------
   Marks an option whose consequence is destructive: deleting data,
   revoking access, permanently removing something. It says "this
   choice is dangerous", NOT "you made a mistake" — nothing here is
   invalid, and no message follows it.

   Mirrors .btn-destructive exactly: --error-5 fill with a
   --text-primary glyph, stepping to --error-6 on hover. The
   red is present at rest too, on the border, so the stakes read
   before the user commits rather than after.

   Because red is used here for consequence, it is NOT available on
   this component for validation. A required checkbox that was not
   ticked is a form-level error — put the message on the field group,
   not a second red treatment on the box.
   ================================================================ */

.cm-checkbox-destructive .cm-checkbox-box {
  border-color: var(--error-5);
}

.cm-checkbox-destructive:hover .cm-checkbox-box {
  border-color: var(--error-6);
  background: var(--error-1);
}

/* Selected keeps the same dark ring the standard checked box uses, and that
   .btn-destructive carries too (--border-selected resolves to the same
   value as --text-primary). Every filled control in the system is ringed;
   without it the destructive box was the only one that wasn't. */
.cm-checkbox-destructive input:checked + .cm-checkbox-box,
.cm-checkbox-destructive input:indeterminate + .cm-checkbox-box {
  background: var(--error-5);
  border-color: var(--text-primary);
}

/* Hover moves the fill only — the ring is already correct, same as the
   standard checked hover. */
.cm-checkbox-destructive:hover input:checked + .cm-checkbox-box,
.cm-checkbox-destructive:hover input:indeterminate + .cm-checkbox-box {
  background: var(--error-6);
}

/* Glyph matches the destructive button's label colour, in both themes. */
.cm-checkbox-destructive .cm-checkbox-box svg { fill: var(--text-primary); }
[data-theme="dark"] .cm-checkbox-destructive .cm-checkbox-box svg { fill: var(--raw-stone-1000); }

/* The checked/indeterminate glyph sits on a brand or error fill, and both fills
   are the SAME colour in either theme. So the glyph must stay dark in dark mode
   too — following --text-primary would flip it light and leave a light mark on
   gold at 1.82:1, under the 3:1 bar for a graphical object. Pinning it to
   --raw-stone-1000 holds 8.99:1 on gold and 6.42:1 on red, in both themes. */
[data-theme="dark"] .cm-checkbox input:checked + .cm-checkbox-box svg,
[data-theme="dark"] .cm-checkbox input:indeterminate + .cm-checkbox-box svg {
  fill: var(--raw-stone-1000);
}


/* Sizes — box + glyph scale together. Default (no modifier) = 16px (sm). */
/* Size variants.
   The unsuffixed default IS the small step; .cm-checkbox-sm is an explicit
   alias for it so the scale reads sm / md / lg like every other component
   (no size is left unnamed). Default stays 16px — do not repoint it. */
.cm-checkbox-sm .cm-checkbox-box { width: 16px; height: 16px; }
.cm-checkbox-sm .cm-checkbox-box svg { width: 12px; height: 12px; }
.cm-checkbox-md .cm-checkbox-box { width: 20px; height: 20px; }
.cm-checkbox-md .cm-checkbox-box svg { width: 16px; height: 16px; }
.cm-checkbox-lg .cm-checkbox-box { width: 24px; height: 24px; }
.cm-checkbox-lg .cm-checkbox-box svg { width: 20px; height: 20px; }

/* Focus ring + disabled treatment come from recipes.css. */


/* Control label typography (label weight 500, body-md) — shared by
   checkbox, radio and toggle. */
.cm-checkbox-label,
.cm-radio-label,
.cm-toggle-label {
  font-family: var(--font-label);
  font-size: var(--type-label-md-size);
  line-height: var(--type-label-md-lh);
  font-weight: var(--type-label-md-weight);
  color: var(--text-primary);
  user-select: none;
}

/* Control description typography — shared by checkbox and radio. */
.cm-checkbox-description,
.cm-radio-description {
  font-family: var(--font-body);
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-lh);
  color: var(--text-secondary);
  margin-top: var(--space-2);
}


/* ================================================================
   RADIO
   ================================================================ */

.cm-radio {
  display: inline-flex;
  align-items: flex-start;
  gap: var(--space-8);
  cursor: pointer;
  position: relative;
}

.cm-radio input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.cm-radio-circle {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  border: 1px solid var(--border-primary);
  border-radius: 50%;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 1px;
  transition:
    border-color var(--duration-instant) var(--ease-default),
    box-shadow var(--duration-instant) var(--ease-default);
}

.cm-radio-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--brand-5);
  opacity: 0;
  transform: scale(0);
  transition:
    opacity var(--duration-fast) var(--ease-m3-standard),
    transform var(--duration-fast) var(--ease-m3-standard);
}

/* Hover border-darken is shared (see CHECKBOX section). */
.cm-radio:hover input:checked ~ .cm-radio-circle {
  background: var(--brand-6);
}

/* Selected — brand gold fill, border-coloured dot */
.cm-radio input:checked + .cm-radio-circle {
  border-color: var(--text-primary);
  background: var(--brand-5);
}

.cm-radio input:checked + .cm-radio-circle .cm-radio-dot {
  opacity: 1;
  transform: scale(1);
  background: var(--text-primary);
}

/* Sizes — circle + dot scale together. Default (no modifier) = 16px (sm). */
/* .cm-radio-sm is an explicit alias for the unsuffixed default (16px), so the
   scale reads sm / md / lg. Default stays 16px — do not repoint it. */
.cm-radio-sm .cm-radio-circle { width: 16px; height: 16px; }
.cm-radio-sm .cm-radio-dot { width: 6px; height: 6px; }
.cm-radio-md .cm-radio-circle { width: 20px; height: 20px; }
.cm-radio-md .cm-radio-dot { width: 8px; height: 8px; }
.cm-radio-lg .cm-radio-circle { width: 24px; height: 24px; }
.cm-radio-lg .cm-radio-dot { width: 10px; height: 10px; }

/* Focus ring + disabled treatment come from recipes.css. */


/* .cm-radio-label / .cm-radio-description typography is shared —
   defined once in the CHECKBOX section above. */


/* ================================================================
   TOGGLE / SWITCH
   ================================================================ */

.cm-toggle {
  display: inline-flex;
  align-items: center;
  gap: var(--space-12);
  cursor: pointer;
  position: relative;
}

.cm-toggle input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.cm-toggle-track {
  width: 40px;
  height: 24px;
  flex-shrink: 0;
  border: 1px solid var(--border-primary);
  border-radius: var(--radius-full);
  background: transparent;
  position: relative;
  transition:
    background var(--duration-fast) var(--ease-m3-standard),
    border-color var(--duration-fast) var(--ease-m3-standard),
    box-shadow var(--duration-instant) var(--ease-default);
}

.cm-toggle-thumb {
  position: absolute;
  /* 3px inset + the track's 1px border = 4px visual gap → thumb centred in the 24px track. */
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--border-primary);
  transition:
    transform var(--duration-fast) var(--ease-m3-standard),
    background var(--duration-fast) var(--ease-m3-standard);
}

/* Hover — same rule. Unchecked track gets --neutral-2; checked track steps gold-500 → gold-600.
   Thumb advances border-primary → text-primary on the unchecked side; checked thumb is already
   text-primary so it stays put. */
/* Hover track border-darken is shared (see CHECKBOX section). */
.cm-toggle:hover .cm-toggle-thumb {
  background: var(--text-primary);
}
.cm-toggle:hover input:checked + .cm-toggle-track {
  background: var(--brand-6);
}

/* Checked — gold track, neutral border */
.cm-toggle input:checked + .cm-toggle-track {
  background: var(--brand-5);
  border-color: var(--text-primary);
}

.cm-toggle input:checked + .cm-toggle-track .cm-toggle-thumb {
  transform: translateX(16px);
  background: var(--text-primary);
}

/* Active press */
.cm-toggle:active .cm-toggle-thumb {
  width: 18px;
}
.cm-toggle:active input:checked + .cm-toggle-track .cm-toggle-thumb {
  transform: translateX(14px);
}

/* Focus ring + disabled fade/cursor come from recipes.css. */

/* Disabled — track border treatment (opacity/cursor come from recipes.css). */
.cm-toggle.is-disabled .cm-toggle-track {
  border-color: var(--border-primary);
}

/* .cm-toggle-label typography is shared — defined once in the CHECKBOX section. */


/* ================================================================
   SELECT — retired
   The native <select> now uses the shared .cm-field chrome (floating
   label + notch) — see input.css / input.md. Searchable / rich selects
   use the dropdown field-trigger (.cm-field-trigger) — see dropdown.css.
   ================================================================ */


/* ================================================================
   RADIO CARD / TILE — oversized selectable card
   ================================================================ */

.cm-radio-card-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}

.cm-radio-card-group-row {
  flex-direction: row;
  gap: var(--space-12);
  flex-wrap: wrap;
}

.cm-radio-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--space-16);
  padding: var(--space-16);
  border: 1px solid var(--border-secondary);
  border-radius: var(--radius-sm);
  background: var(--neutral-0);
  cursor: pointer;
  transition:
    background var(--duration-fast) var(--ease-default),
    border-color var(--duration-fast) var(--ease-default);
  min-width: 220px;
}

/* Hover: darken the border only — keep the surface white so there's no grey
   flash before the warm selected tint. */
.cm-radio-card:hover {
  border-color: var(--text-primary);
}

.cm-radio-card input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* Radio dot indicator — matches standalone .cm-radio style */
.cm-radio-card-indicator {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1px solid var(--border-primary);
  flex-shrink: 0;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  transition:
    border-color var(--duration-instant) var(--ease-default),
    background var(--duration-instant) var(--ease-default);
}

.cm-radio-card-indicator::after {
  content: '';
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--text-primary);
  opacity: 0;
  transform: scale(0);
  transition:
    opacity var(--duration-fast) var(--ease-m3-standard),
    transform var(--duration-fast) var(--ease-m3-standard);
}

.cm-radio-card input:checked ~ .cm-radio-card-indicator {
  border-color: var(--text-primary);
  background: var(--brand-5);
}

.cm-radio-card input:checked ~ .cm-radio-card-indicator::after {
  opacity: 1;
  transform: scale(1);
}

/* Selected card — warm brand tint + dark border (matches Figma Radio Card/Tile). */
.cm-radio-card:has(input:checked) {
  border-color: var(--text-primary);
  background: var(--brand-1);
}


/* Content slots */
.cm-radio-card-content { flex: 1; min-width: 0; }

.cm-radio-card-title {
  font-family: var(--font-label);
  font-weight: var(--type-label-md-weight);
  font-size: var(--type-label-md-size);
  color: var(--text-primary);
  margin-bottom: var(--space-2);
}

.cm-radio-card-desc {
  font-family: var(--font-body);
  font-size: var(--type-label-sm-size);
  color: var(--text-tertiary);
  line-height: 1.5;
}

.cm-radio-card-price {
  /* heading-xs bold = Athletics / 16px / 700 — identical pixels to the old
     font-display + body-lg-size + display-sm-bold mix, now one coherent style.
     Line-height left inherited (unchanged) to avoid any layout shift. */
  font-family: var(--font-heading);
  font-size: var(--type-heading-xs-size);
  font-weight: var(--type-heading-xs-weight-bold);
  color: var(--text-primary);
  margin-top: var(--space-8);
}

/* Focus ring + disabled treatment come from recipes.css. */

/* Tile variation — centered, with icon, no radio indicator */
.cm-radio-tile {
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--space-8);
  min-width: 140px;
  padding: var(--space-20) var(--space-16);
}

.cm-radio-tile .cm-radio-card-indicator {
  display: none;
}

.cm-radio-tile-glyph {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text-primary);
}


/* ================================================================
   TOGGLE — size modifiers
   Default (no modifier) = 40×24 (lg). Thumb inset accounts for the
   track's 1px border (CSS top/left + 1px = visual gap).
   ================================================================ */

/* md — 32×20, thumb 12 (base top/left:3 = 4px visual gap, already centred) */
/* Size variants.
   The unsuffixed default IS the large step (a toggle needs a bigger hit area
   than a checkbox); .cm-toggle-lg is an explicit alias for it so the scale
   reads sm / md / lg. Default stays 40x24 — do not repoint it. */
.cm-toggle-lg .cm-toggle-track { width: 40px; height: 24px; }
.cm-toggle-lg .cm-toggle-thumb { width: 16px; height: 16px; }
.cm-toggle-lg input:checked + .cm-toggle-track .cm-toggle-thumb { transform: translateX(16px); }
.cm-toggle-lg:active .cm-toggle-thumb { width: 18px; }
.cm-toggle-lg:active input:checked + .cm-toggle-track .cm-toggle-thumb { transform: translateX(14px); }

.cm-toggle-md .cm-toggle-track {
  width: 32px;
  height: 20px;
}

.cm-toggle-md .cm-toggle-thumb {
  width: 12px;
  height: 12px;
}

.cm-toggle-md input:checked + .cm-toggle-track .cm-toggle-thumb {
  transform: translateX(12px);
}

.cm-toggle-md:active .cm-toggle-thumb {
  width: 14px;
}

.cm-toggle-md:active input:checked + .cm-toggle-track .cm-toggle-thumb {
  transform: translateX(10px);
}

/* sm — 24×16, thumb 10 (reduced from 12 per Figma) */
.cm-toggle-sm .cm-toggle-track {
  width: 24px;
  height: 16px;
}

.cm-toggle-sm .cm-toggle-thumb {
  top: 2px;   /* 2px inset + 1px border = 3px visual gap → centred in the 16px sm track */
  left: 2px;
  width: 10px;
  height: 10px;
}

.cm-toggle-sm input:checked + .cm-toggle-track .cm-toggle-thumb {
  transform: translateX(8px);
}

.cm-toggle-sm:active .cm-toggle-thumb {
  width: 12px;
}

.cm-toggle-sm:active input:checked + .cm-toggle-track .cm-toggle-thumb {
  transform: translateX(6px);
}



/* ================================================================
   FIELD GROUP — vertical / horizontal arrangement
   ================================================================ */

.cm-field-group {
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}

/* ─── components/input.css ─── */

/* ═══════════════════════════════════════════════════════════════
   Input Component — M3 Outlined
   Cuemath Design System

   Single-template architecture: one HTML structure, all states
   via CSS classes. Internal custom properties keep label, notch,
   and content padding in sync across sizes and icon variants.

   Requires: base.css (imports colour, type, spacing, surface,
   and motion tokens). Import base.css before this file:

     @import url('base.css');
     @import url('input.css');
   ═══════════════════════════════════════════════════════════════ */



/* ═══ Internal custom properties ═══
   Single source of truth for alignment. Variants override these;
   label, notch, and input padding all derive from them.

   --_field-h:       input height
   --_field-padding:  horizontal padding (label left, input padding, notch offset)
   --_field-font:     input + resting label font-family
   --_field-weight:   input + resting label font-weight
   --_field-size:     input + resting label font-size
   --_field-lh:       input + resting label line-height
   --_notch-inset:    legend span padding (constant 6px)
   --_field-icon-size: leading / trailing / chevron icon box — the field owns
                       this, so every icon (incl. the select chevron) matches
   --_field-icon-gap:  gap between an icon and the text it sits beside
   ═══════════════════════════════════════════════════════════════ */

.cm-field {
  --_field-h: 40px;
  --_field-padding: var(--space-16);
  --_field-font: var(--type-body-md-font);
  --_field-weight: var(--type-body-md-weight);
  --_field-size: var(--type-body-md-size);
  --_field-lh: var(--type-body-md-lh);
  --_notch-inset: 6px;
  --_field-icon-size: 16px;
  --_field-icon-gap: var(--space-8);

  display: inline-flex;
  flex-direction: column;
  width: 100%;
}


/* ═══ Wrap ═══ */

.cm-field-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: text;
}


/* ═══ Input ═══ */

.cm-field-wrap input {
  font-family: var(--_field-font);
  font-weight: var(--_field-weight);
  font-size: var(--_field-size);
  line-height: var(--_field-lh);
  color: var(--text-primary);
  background: transparent;
  border: 0;
  outline: 0;
  width: 100%;
  height: var(--_field-h);
  padding: 0 var(--_field-padding);
  caret-color: var(--brand-5);
}


/* ═══ Placeholder — M3 content fade-in ═══ */

.cm-field-wrap input::placeholder {
  opacity: 0;
  color: var(--text-tertiary);
  transition: opacity 83ms var(--ease-m3-standard);
}

.cm-field-wrap input:focus::placeholder {
  opacity: 1;
  transition-delay: 67ms;
}


/* ═══ Label — derives from --_field-* ═══ */

.cm-field-label {
  position: absolute;
  left: var(--_field-padding);
  top: 50%;
  transform: translateY(-50%);
  z-index: 1;
  pointer-events: none;
  font-family: var(--_field-font);
  font-weight: var(--_field-weight);
  font-size: var(--_field-size);
  line-height: var(--_field-lh);
  color: var(--text-secondary);
  max-width: calc(100% - var(--_field-padding) * 2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition:
    color var(--duration-instant) var(--ease-default),
    top var(--duration-fast) var(--ease-m3-standard),
    font-size var(--duration-fast) var(--ease-m3-standard),
    line-height var(--duration-fast) var(--ease-m3-standard);
}


/* ═══ Fieldset notch — derives from --_field-padding ═══ */

.cm-field-notch {
  text-align: left;
  position: absolute;
  bottom: 0;
  right: 0;
  top: -5px;
  left: 0;
  margin: 0;
  padding: 0 calc(var(--_field-padding) - var(--_notch-inset));
  pointer-events: none;
  border-style: solid;
  border-width: 1px;
  border-color: var(--border-primary);
  border-radius: var(--radius-sm);
  overflow: hidden;
  min-width: 0%;
  transition: border-color var(--duration-instant) var(--ease-default);
}

/* Legend — hidden text that creates notch gap */
.cm-field-notch legend {
  float: unset;
  width: auto;
  overflow: hidden;
  display: block;
  padding: 0;
  height: 11px;
  font-size: 0.75em;
  visibility: hidden;
  max-width: 0.01px;
  white-space: nowrap;
  transition: max-width 50ms var(--ease-m3-standard) 0ms;
}

/* Legend span — must match floated label size */
.cm-field-notch legend span {
  padding-left: var(--_notch-inset);
  padding-right: var(--_notch-inset);
  display: inline-block;
  opacity: 0;
  visibility: visible;
  font-family: var(--_field-font);
  font-weight: var(--type-label-sm-weight);
  font-size: var(--type-label-sm-size);
}


/* ═══ Float: label moves to floated position ═══ */

.cm-field-wrap input:focus ~ .cm-field-label,
.cm-field-wrap input:not(:placeholder-shown) ~ .cm-field-label {
  top: 0px;
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  pointer-events: auto;
  user-select: none;
}

.cm-field-wrap input:focus ~ .cm-field-notch legend,
.cm-field-wrap input:not(:placeholder-shown) ~ .cm-field-notch legend {
  max-width: 100%;
  transition: max-width var(--duration-fast) var(--ease-m3-standard);
}


/* ═══ Select inside .cm-field ═══
   Reuses the floating-label notch pattern from input.
   Two states controlled by .is-placeholder on the <select>:
     - .is-placeholder → label rests at centre (like empty input)
     - no class → label floats, value shown (like filled input)
   JS toggles .is-placeholder when user picks a value. */

.cm-field-wrap select {
  appearance: none;
  -webkit-appearance: none;
  font-family: var(--_field-font);
  font-weight: var(--_field-weight);
  font-size: var(--_field-size);
  line-height: var(--_field-lh);
  color: var(--text-primary);
  background: transparent;
  border: 0;
  outline: 0;
  width: 100%;
  height: var(--_field-h);
  /* Right padding clears the chevron: 12px inset + icon box + icon gap. */
  padding: 0 calc(var(--space-12) + var(--_field-icon-size) + var(--_field-icon-gap)) 0 var(--_field-padding);
  cursor: pointer;
  /* Chevron is drawn by .cm-field-wrap:has(select)::after (a real token-coloured
     icon), NOT a background-image — so it themes and matches the other icons. */
}

/* ═══ Select chevron ═══
   A real icon (masked SVG tinted with a colour token), so it matches the
   leading / trailing icons, tracks --_field-icon-size, flips in dark mode, and
   picks up focus / error / success / warning colours. Drawn on the wrap so it
   overlays the native <select> without needing extra markup. */
.cm-field-wrap:has(select)::after {
  content: "";
  position: absolute;
  right: var(--space-12);
  top: 50%;
  transform: translateY(-50%);
  width: var(--_field-icon-size);
  height: var(--_field-icon-size);
  pointer-events: none;
  background-color: var(--text-secondary);
  /* [> icon:chevron-down <] art below is generated by scripts/icon-sync.js — do not hand-edit */
  -webkit-mask: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.7326 10.7674Q11.5033 11.5381 12 12.4224Q12.4967 11.5381 13.2674 10.7674Q15.4348 8.6 18.5 8.6L18.5 10.4Q16.1804 10.4 14.5402 12.0402Q12.9 13.6804 12.9 16L11.1 16Q11.1 13.6804 9.4598 12.0402Q7.81961 10.4 5.5 10.4L5.5 8.6Q8.56519 8.6 10.7326 10.7674Z' fill='%23000'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10.7326 10.7674Q11.5033 11.5381 12 12.4224Q12.4967 11.5381 13.2674 10.7674Q15.4348 8.6 18.5 8.6L18.5 10.4Q16.1804 10.4 14.5402 12.0402Q12.9 13.6804 12.9 16L11.1 16Q11.1 13.6804 9.4598 12.0402Q7.81961 10.4 5.5 10.4L5.5 8.6Q8.56519 8.6 10.7326 10.7674Z' fill='%23000'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: background-color var(--duration-instant) var(--ease-default);
}

.cm-field-wrap:has(select:focus)::after { background-color: var(--text-primary); }
.cm-field-error .cm-field-wrap:has(select)::after { background-color: var(--text-error); }
.cm-field-success .cm-field-wrap:has(select)::after { background-color: var(--text-success); }
.cm-field-warning .cm-field-wrap:has(select)::after { background-color: var(--text-warning); }
.cm-field-disabled .cm-field-wrap:has(select)::after { background-color: var(--text-primary); }

/* State A: value selected → label floated (default) */
.cm-field-wrap select ~ .cm-field-label {
  top: 0px;
  transform: translateY(-50%);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  pointer-events: auto;
  user-select: none;
}

.cm-field-wrap select ~ .cm-field-notch legend {
  max-width: 100%;
  transition: max-width var(--duration-fast) var(--ease-m3-standard);
}

/* State B: empty / placeholder → label rests at centre.
   Native <select> always shows selected option text — hide it
   so the floating label acts as the visible placeholder. */
.cm-field-wrap select.is-placeholder {
  color: transparent;
}

.cm-field-wrap select.is-placeholder ~ .cm-field-label {
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--_field-font);
  font-weight: var(--_field-weight);
  font-size: var(--_field-size);
  line-height: var(--_field-lh);
}

.cm-field-wrap select.is-placeholder ~ .cm-field-notch legend {
  max-width: 0.01px;
  transition: max-width 50ms var(--ease-m3-standard) 0ms;
}

/* Placeholder → focus: show option text + label floats up */
.cm-field-wrap select.is-placeholder:focus {
  color: var(--text-primary);
}

.cm-field-wrap select.is-placeholder:focus ~ .cm-field-label {
  top: 0px;
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
}

.cm-field-wrap select.is-placeholder:focus ~ .cm-field-notch legend {
  max-width: 100%;
  transition: max-width var(--duration-fast) var(--ease-m3-standard);
}

/* Select focus */
.cm-field-wrap select:focus ~ .cm-field-notch {
  border-color: var(--border-selected);
}

.cm-field-wrap select:focus ~ .cm-field-label {
  color: var(--text-primary);
}


/* ═══ Hover ═══ */

.cm-field-wrap:hover .cm-field-notch {
  border-color: var(--border-selected);
}


/* ═══ Focus ═══ */

.cm-field-wrap input:focus ~ .cm-field-notch {
  border-color: var(--border-selected);
}

.cm-field-wrap input:focus ~ .cm-field-label {
  color: var(--text-primary);
}


/* ═══ Focus-visible ═══
   Text inputs always match :focus-visible (even on mouse click) because
   the browser anticipates keyboard input. The border-colour shift from
   --border-secondary → --border-selected is the focus indicator.
   No outline ring — it fires on every click and is visually noisy.
   Buttons and non-text controls keep their own focus-visible rings. */


/* ═══ Error ═══ */

.cm-field-error .cm-field-notch { border-color: var(--text-error); }
.cm-field-error .cm-field-label { color: var(--text-error); }
.cm-field-error .cm-field-helper { color: var(--text-error); }
.cm-field-error .cm-field-wrap:hover .cm-field-notch { border-color: var(--text-error); }
.cm-field-error .cm-field-wrap input:focus ~ .cm-field-notch,
.cm-field-error .cm-field-wrap select:focus ~ .cm-field-notch { border-color: var(--text-error); }
.cm-field-error .cm-field-wrap input:focus ~ .cm-field-label,
.cm-field-error .cm-field-wrap select:focus ~ .cm-field-label { color: var(--text-error); }


/* ═══ Success ═══ */

.cm-field-success .cm-field-notch { border-color: var(--text-success); }
.cm-field-success .cm-field-label { color: var(--text-success); }
.cm-field-success .cm-field-helper { color: var(--text-success); }
.cm-field-success .cm-field-wrap:hover .cm-field-notch { border-color: var(--text-success); }
.cm-field-success .cm-field-wrap input:focus ~ .cm-field-notch,
.cm-field-success .cm-field-wrap select:focus ~ .cm-field-notch { border-color: var(--text-success); }
.cm-field-success .cm-field-wrap input:focus ~ .cm-field-label,
.cm-field-success .cm-field-wrap select:focus ~ .cm-field-label { color: var(--text-success); }


/* ═══ Disabled ═══ */

.cm-field-disabled {
  opacity: 0.4;
  pointer-events: none;
}

.cm-field-disabled .cm-field-wrap {
  cursor: not-allowed;
}

/* Notch border keeps --border-primary in disabled state — opacity:0.4
   handles the "off" feel; the strong border keeps the field bounded. */
.cm-field-disabled .cm-field-notch {
  border-color: var(--border-primary);
}

/* All text inside a disabled field collapses to --text-primary. opacity:0.4
   on the wrapper does the disabled-feel work; once everything is primary the
   fade reads as a single uniform "off" state instead of compounding tiers. */
.cm-field-disabled .cm-field-label,
.cm-field-disabled input,
.cm-field-disabled select,
.cm-field-disabled textarea,
.cm-field-disabled .cm-field-helper,
.cm-field-disabled .cm-field-counter,
.cm-field-disabled .cm-field-affix,
.cm-field-disabled .cm-field-inset,
.cm-field-disabled .cm-field-wrap input::placeholder,
.cm-field-disabled .cm-field-wrap select.is-placeholder {
  color: var(--text-primary);
}


/* ═══ Read-only ═══ */

/* Read-only — non-editable but still focusable for copy / keyboard nav.
   Suppress hover AND focus visual cues so the field doesn't masquerade as editable. */
.cm-field-readonly .cm-field-notch { border-color: var(--border-secondary); }
.cm-field-readonly .cm-field-label { color: var(--text-tertiary); }
.cm-field-readonly .cm-field-wrap:hover .cm-field-notch,
.cm-field-readonly .cm-field-wrap input:focus ~ .cm-field-notch,
.cm-field-readonly .cm-field-wrap select:focus ~ .cm-field-notch,
.cm-field-readonly .cm-field-wrap textarea:focus ~ .cm-field-notch { border-color: var(--border-secondary); }
.cm-field-readonly .cm-field-wrap input:focus ~ .cm-field-label,
.cm-field-readonly .cm-field-wrap select:focus ~ .cm-field-label,
.cm-field-readonly .cm-field-wrap textarea:focus ~ .cm-field-label { color: var(--text-tertiary); }
.cm-field-readonly input { cursor: default; }


/* ═══ Helper text ═══ */

.cm-field-helper {
  font-family: var(--type-label-sm-font);
  font-size: var(--type-label-sm-size);
  font-weight: var(--type-label-sm-weight);
  line-height: var(--type-label-sm-lh);
  color: var(--text-tertiary);
  min-height: var(--space-20);
  padding: var(--space-4) var(--_field-padding) 0;
  display: flex;
  align-items: center;
  gap: var(--space-4);
}

/* Hide helper when empty — reserve space but no visible content */
.cm-field-helper:empty {
  visibility: hidden;
}


/* ═══ Icons ═══ */

/* ─── Shared base ─── */
.cm-field-icon-leading,
.cm-field-icon-trailing {
  /* Box size comes from the field (--_field-icon-size); the .cm-icon in the
     markup gives centering. This rule positions the box inside the field. */
  --icon-size: var(--_field-icon-size);
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  z-index: 1;
}

/* ─── Hide icon slots when empty ─── */
.cm-field-icon-leading:empty,
.cm-field-icon-trailing:empty {
  display: none;
}

/* ─── Leading icon ─── */
.cm-field-icon-leading {
  left: var(--space-12);
  color: var(--text-secondary);
  transition: color var(--duration-instant) var(--ease-default);
}

/* The leading icon PRECEDES the input in the DOM, so a sibling combinator (~)
   can never reach it. Scope from the wrap with :has() instead. */
.cm-field-wrap:has(input:focus) .cm-field-icon-leading { color: var(--text-primary); }

/* ─── Trailing icon base ─── */
.cm-field-icon-trailing {
  right: var(--space-12);
  color: var(--text-secondary);
  pointer-events: auto;
  cursor: pointer;
  border: 0;
  background: none;
  padding: 0;
  transition: color var(--duration-instant) var(--ease-default),
              opacity var(--duration-instant) var(--ease-default);
}

.cm-field-icon-trailing:hover { color: var(--text-primary); }

/* ─── Toggle: persistent, always visible (e.g. password eye) ─── */
.cm-field-icon-toggle {
  /* Inherits trailing base. Always visible. */
}

/* ─── Clear: conditional, visible only when field has value ─── */
.cm-field-icon-clear {
  opacity: 1;
}

.cm-field-wrap input:placeholder-shown ~ .cm-field-icon-clear {
  opacity: 0;
  pointer-events: none;
}

/* ─── Status: non-interactive, driven by error/success state ─── */
.cm-field-icon-status {
  pointer-events: none;
  cursor: default;
  opacity: 0;
}

.cm-field-error .cm-field-icon-status {
  opacity: 1;
  color: var(--text-error);
}

.cm-field-success .cm-field-icon-status {
  opacity: 1;
  color: var(--text-success);
}

/* Warning gets a status icon too — error and success both had one, warning did
   not, so a warning field carried no icon signal at all. Use alert.svg in the
   markup (error uses exclamation, success uses submit). */
.cm-field-warning .cm-field-icon-status {
  opacity: 1;
  color: var(--text-warning);
}

/* ─── Icon padding overrides ─── */
/* Text clears the icon: 12px edge inset + icon box + --_field-icon-gap. Derived,
   so the gap holds whatever the icon size is. */
.cm-field-has-leading {
  --_field-padding-left: calc(var(--space-12) + var(--_field-icon-size) + var(--_field-icon-gap));
}

.cm-field-has-leading input { padding-left: var(--_field-padding-left); }
.cm-field-has-leading .cm-field-label { left: var(--_field-padding-left); }
.cm-field-has-leading .cm-field-notch { padding-left: calc(var(--_field-padding-left) - var(--_notch-inset)); }

.cm-field-has-trailing input { padding-right: calc(var(--space-12) + var(--_field-icon-size) + var(--_field-icon-gap)); }


/* ═══ Sizes ═══ */

/* LG — 48px height */
.cm-field-lg {
  --_field-h: 48px;
  --_field-padding: var(--space-16);
  --_field-font: var(--type-body-lg-font);
  --_field-weight: var(--type-body-lg-weight);
  --_field-size: var(--type-body-lg-size);
  --_field-lh: var(--type-body-lg-lh);
  --_field-icon-size: 18px;
}


/* ═══ Error shake ═══
   Pair with .cm-field-error — applies a horizontal shake animation
   to draw attention to the field. Remove the class after animation
   ends (JS: el.addEventListener('animationend', ...)) or it replays
   on any reflow. */

@keyframes cm-shake {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-6px); }
  40%, 80% { transform: translateX(6px); }
}

.cm-field-shake {
  animation: cm-shake var(--duration-slow) var(--ease-default);
}


/* ═══ OTP / Digit input ═══
   Standard cm-field with letter-spaced digits for verification codes.
   Uses tabular-nums for even spacing. Add to any cm-field input via
   the .cm-field-otp-input class on the <input>. */

.cm-field-otp-input {
  letter-spacing: 0.5em;
  font-variant-numeric: tabular-nums;
}


/* ═══ Textarea ═══
   Reuses .cm-field floating-label + notch system.
   Label anchors to top of box (not vertical-center). */

.cm-field-wrap textarea {
  font-family: var(--_field-font);
  font-weight: var(--_field-weight);
  font-size: var(--_field-size);
  line-height: 1.5;
  color: var(--text-primary);
  background: transparent;
  border: 0;
  outline: 0;
  width: 100%;
  padding: var(--space-20) var(--_field-padding) var(--space-12);
  resize: vertical;
  min-height: 96px;
  caret-color: var(--brand-5);
}

/* Custom scrollbar (thin neutral thumb + dark) comes from recipes.css. */

.cm-field-wrap textarea::placeholder {
  opacity: 0;
  color: var(--text-tertiary);
  transition: opacity 83ms var(--ease-m3-standard);
}

.cm-field-wrap textarea:focus::placeholder {
  opacity: 1;
  transition-delay: 67ms;
}

/* Textarea label anchors to top so it sits above the first line */
.cm-field:has(textarea) .cm-field-label {
  top: 18px;
  transform: none;
}

/* Float label up on focus / when filled — textarea variant.
   Must restore translateY(-50%) that :has(textarea) override removed,
   so the floated label centres on the top border (same as <input>). */
.cm-field-wrap textarea:focus ~ .cm-field-label,
.cm-field-wrap textarea:not(:placeholder-shown) ~ .cm-field-label {
  top: 0px;
  transform: translateY(-50%);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  pointer-events: auto;
  user-select: none;
}

/* Notch legend opens for textarea */
.cm-field-wrap textarea:focus ~ .cm-field-notch legend,
.cm-field-wrap textarea:not(:placeholder-shown) ~ .cm-field-notch legend {
  max-width: 100%;
  transition: max-width var(--duration-fast) var(--ease-m3-standard);
}

/* Textarea focus — border + label colour */
.cm-field-wrap textarea:focus ~ .cm-field-notch { border-color: var(--border-selected); }
.cm-field-wrap textarea:focus ~ .cm-field-label { color: var(--text-primary); }


/* ═══ Character counter ═══
   Sits in .cm-field-helper row, right-aligned.
   Goes error colour at/over the limit. */

.cm-field-counter {
  font-family: var(--font-label);
  font-variant-numeric: tabular-nums;
  font-size: var(--type-label-sm-size);
  color: var(--text-tertiary);
  margin-left: auto;
  flex-shrink: 0;
}

.cm-field-counter-over {
  color: var(--text-error);
}


/* ═══ Warning state ═══
   Mirrors .cm-field-error using warning palette. */

/* Warning mirrors error exactly: --text-warning for border, label, helper.
   Error uses --text-error (not --error-3). Same pattern here. */
.cm-field-warning .cm-field-notch { border-color: var(--text-warning); }
.cm-field-warning .cm-field-label { color: var(--text-warning); }
.cm-field-warning .cm-field-helper { color: var(--text-warning); }
/* Caret stays brand gold in warning (same as error/default) */
.cm-field-warning .cm-field-wrap:hover .cm-field-notch { border-color: var(--text-warning); }
.cm-field-warning .cm-field-wrap input:focus ~ .cm-field-notch,
.cm-field-warning .cm-field-wrap select:focus ~ .cm-field-notch { border-color: var(--text-warning); }
.cm-field-warning .cm-field-wrap input:focus ~ .cm-field-label,
.cm-field-warning .cm-field-wrap select:focus ~ .cm-field-label { color: var(--text-warning); }
.cm-field-warning .cm-field-wrap textarea:focus ~ .cm-field-notch { border-color: var(--text-warning); }
.cm-field-warning .cm-field-wrap textarea:focus ~ .cm-field-label { color: var(--text-warning); }


/* ═══ Input prefix / suffix ═══
   Two patterns:
   A — segmented affix (boxed, border separator)
   B — inline inset (no border, joined visually) */

/* A — segmented affix */
.cm-field-affix {
  display: flex;
  align-items: center;
  padding: 0 var(--space-12);
  background: var(--neutral-2);
  font-family: var(--_field-font);
  font-size: var(--_field-size);
  color: var(--text-tertiary);
  white-space: nowrap;
  align-self: stretch;
}

.cm-field-affix-trailing {
  /* No additional border — fill-only separation */
}

.cm-field-has-prefix input {
  padding-left: var(--space-12);
}

/* B — inline inset prefix */
.cm-field-inset {
  display: flex;
  align-items: center;
  font-family: var(--_field-font);
  font-size: var(--_field-size);
  color: var(--text-tertiary);
  padding-left: var(--_field-padding);
  padding-right: 0;
}

.cm-field-inset + input {
  padding-left: var(--space-4);
}


/* ═══ Form stack ═══ */

.form-stack {
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
}

/* ─── components/kpi-card.css ─── */

/*
 * Cuemath Design System — KPI Card Component
 * ------------------------------------------------
 * A single meaningful number with trend, sparkline, and context.
 * Hero element for dashboards and parent reports.
 *
 * Requires: base.css
 * All colour values reference semantic tokens. Never hardcode hex.
 */


/* ================================================================
   BASE KPI CARD
   ================================================================ */

.kpi-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-16) var(--space-20);
  background: var(--neutral-1);
  border: 1px solid var(--border-tertiary);
  border-radius: var(--radius-none);
  font-family: var(--font-body);
}


/* ─── Badge slot — absolute top-right ─── */

.kpi-card > .badge {
  position: absolute;
  top: var(--space-16);
  right: var(--space-20);
}


/* ─── Label ─── */

.kpi-card-label {
  display: inline-flex;
  align-items: center;
  gap: var(--space-8);
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  color: var(--text-secondary);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}


/* ─── Value row — value left, trend right ─── */

.kpi-card-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}


/* ─── Value ─── */

.kpi-card-value {
  font-family: var(--font-display);
  font-size: var(--type-display-lg-size);
  line-height: var(--type-display-lg-lh);
  font-weight: var(--type-display-lg-weight-bold);
  color: var(--text-primary);
  letter-spacing: var(--type-display-lg-tracking);
}


/* ─── Trend ─── */

.kpi-card-trend {
  display: inline-flex;
  align-items: center;
  gap: var(--space-4);
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  color: var(--text-secondary);
  padding-bottom: var(--space-4);
}

.kpi-card-trend svg {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}

.kpi-card-trend-up {
  color: var(--text-success);
}

.kpi-card-trend-down {
  color: var(--text-error);
}


/* ─── Sparkline Slot — flush to card edges ─── */

.kpi-card-sparkline {
  display: flex;
  align-items: center;
  min-height: 80px;
  margin-left: calc(-1 * var(--space-20));
  margin-right: calc(-1 * var(--space-20));
  margin-bottom: calc(-1 * var(--space-16));
  overflow: hidden;
}

.kpi-card-sparkline svg {
  display: block;
  width: 100%;
}


/* ─── Context ─── */

.kpi-card-context {
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
  color: var(--text-tertiary);
}


/* ================================================================
   SIZES
   ================================================================ */

/* Compact — no sparkline slot, tighter padding */
.kpi-card-compact {
  padding: var(--space-12) var(--space-16);
}

.kpi-card-compact .kpi-card-value {
  font-size: var(--type-display-md-size);
  line-height: var(--type-display-md-lh);
}

/* Expanded — with sparkline, more breathing room */
.kpi-card-expanded {
  padding: var(--space-20) var(--space-24);
  gap: var(--space-8);
}

.kpi-card-expanded > .badge {
  top: var(--space-20);
  right: var(--space-24);
}

.kpi-card-expanded .kpi-card-sparkline {
  margin-left: calc(-1 * var(--space-24));
  margin-right: calc(-1 * var(--space-24));
  margin-bottom: calc(-1 * var(--space-20));
}


/* ================================================================
   BRAND VARIANT — gold accent
   ================================================================ */

.kpi-card-brand {
  border-color: var(--brand-3);
}

.kpi-card-brand .kpi-card-value {
  color: var(--text-brand);
}


/* ================================================================
   STATUS VARIANTS
   ================================================================ */

.kpi-card-success {
  border-color: var(--success-3);
}

.kpi-card-success .kpi-card-value {
  color: var(--text-success);
}

.kpi-card-error {
  border-color: var(--error-3);
}

.kpi-card-error .kpi-card-value {
  color: var(--text-error);
}

.kpi-card-warning {
  border-color: var(--warning-3);
}

.kpi-card-warning .kpi-card-value {
  color: var(--text-warning);
}


/* ================================================================
   FOCUS & INTERACTIVE
   ================================================================ */

/* Focus ring comes from recipes.css. */


/* Dark theme needs no overrides — every colour above is a semantic
   token (--neutral-1, --border-tertiary, --brand-3, …) that flips
   automatically. The old [data-theme="dark"] block just re-stated them. */


/* ================================================================
   LOADING SKELETON — mirrors anatomy of a loaded card
   Plain skeleton (no shimmer variant); uses the standard .skeleton primitive.
   ================================================================ */

.kpi-card-skel {
  padding: var(--space-16) var(--space-20);
  display: flex;
  flex-direction: column;
  gap: var(--space-12);
}

.kpi-card-skel .skeleton { border-radius: 0; }
.kpi-card-skel .skel-label { height: 10px; width: 40%; }
.kpi-card-skel .skel-value { height: 28px; width: 55%; margin-top: var(--space-4); }
.kpi-card-skel .skel-context { height: 10px; width: 70%; }


/* ================================================================
   GOAL / TARGET BAR — uses the existing .progress component for the
   bar; .kpi-card-target wraps the progress + label.
   ================================================================ */

.kpi-card-target {
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  margin-top: var(--space-12);
}

.kpi-card-target-label {
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  font-weight: var(--type-label-sm-weight);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-tertiary);
  display: flex;
  justify-content: space-between;
}

.kpi-card-target-label strong {
  color: var(--text-primary);
  font-weight: var(--type-label-sm-weight);
  font-variant-numeric: tabular-nums;
}


/* ================================================================
   ACTION SLOT — corner icon-button cluster
   For inline view-details links, use the existing .cm-link.
   Card host must be position:relative for the corner cluster.
   ================================================================ */

.kpi-card-actions {
  position: absolute;
  top: var(--space-12);
  right: var(--space-12);
  display: inline-flex;
  gap: var(--space-2);
}

.kpi-card-action {
  appearance: none;
  width: 28px;
  height: 28px;
  border: 0;
  background: transparent;
  color: var(--text-tertiary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background var(--duration-instant) var(--ease-default),
              color var(--duration-instant) var(--ease-default);
}

.kpi-card-action:hover {
  background: var(--neutral-3);
  color: var(--text-primary);
}

.kpi-card-action svg {
  width: 18px;
  height: 18px;
}

/* ─── components/layout.css ─── */

/*
 * Cuemath Design System — Layout & Grid
 * ----------------------------------------
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * A 1200px container, 12-column CSS Grid, responsive margins
 * and gutters. Design for 3 sizes, engineer for 5 breakpoints.
 */


/* ================================================================
   LAYOUT TOKENS
   ================================================================ */

:root {
  --container-max: 1200px;
  --grid-columns: 12;
  --gutter: var(--space-24);
  --margin: var(--space-32);
}

@media (max-width: 1023px) {
  :root {
    --margin: var(--space-24);
  }
}

@media (max-width: 767px) {
  :root {
    --margin: var(--space-16);
    --gutter: var(--space-16);
  }
}


/* ================================================================
   CONTAINER
   Max-width 1200px, centered, with responsive page margins.
   Content is 1200px — margins sit outside.
   ================================================================ */

.container {
  max-width: var(--container-max);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--margin);
  padding-right: var(--margin);
  width: 100%;
}


/* ================================================================
   12-COLUMN GRID
   ================================================================ */

.grid {
  display: grid;
  grid-template-columns: repeat(var(--grid-columns), minmax(0, 1fr));
  gap: var(--gutter);
}

/* Column spans */
.col-1  { grid-column: span 1; }
.col-2  { grid-column: span 2; }
.col-3  { grid-column: span 3; }
.col-4  { grid-column: span 4; }
.col-5  { grid-column: span 5; }
.col-6  { grid-column: span 6; }
.col-7  { grid-column: span 7; }
.col-8  { grid-column: span 8; }
.col-9  { grid-column: span 9; }
.col-10 { grid-column: span 10; }
.col-11 { grid-column: span 11; }
.col-12 { grid-column: span 12; }


/* ================================================================
   RESPONSIVE COLUMN OVERRIDES
   ================================================================ */

/* Mobile: stack to full width */
@media (max-width: 767px) {
  .col-sm-12 { grid-column: span 12; }
}

/* Tablet */
@media (min-width: 768px) and (max-width: 1023px) {
  .col-md-4  { grid-column: span 4; }
  .col-md-6  { grid-column: span 6; }
  .col-md-8  { grid-column: span 8; }
  .col-md-12 { grid-column: span 12; }
}


/* ================================================================
   DIVIDER — Horizontal and vertical separators
   For cardless layouts (settings, lists, detail pages).
   ================================================================ */

.divider {
  border: none;
  border-bottom: 1px solid var(--border-tertiary);
  margin: 0;
}

.divider-strong {
  border-bottom-color: var(--border-secondary);
}

.divider-vertical {
  width: 1px;
  background: var(--border-tertiary);
  flex-shrink: 0;
  align-self: stretch;
}

.divider-vertical-strong {
  background: var(--border-secondary);
}


/* ================================================================
   SECTION SPACING — Vertical rhythm between page sections
   ================================================================ */

/* Product UI (dashboards, settings, lists) */
.section-gap       { margin-bottom: var(--space-48); }
.section-gap-tight  { margin-bottom: var(--space-32); }

/* Marketing pages (landing, features, about) */
.section-gap-loose  { margin-bottom: var(--space-96); }

@media (max-width: 1023px) {
  .section-gap       { margin-bottom: var(--space-40); }
  .section-gap-loose  { margin-bottom: var(--space-64); }
}

@media (max-width: 767px) {
  .section-gap       { margin-bottom: var(--space-32); }
  .section-gap-loose  { margin-bottom: var(--space-48); }
}

/* ─── components/link.css ─── */

/*
 * Cuemath Design System — Link Component
 * ----------------------------------------
 * Content links with animated underline (draws left→right on hover).
 * Primary text colour by default; override for inline/brand treatments.
 * Navigation links (.nav-link, .breadcrumb-link) are in navigation.css.
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../base.css';
 *
 * All values reference semantic tokens defined in base.css.
 * Never hardcode hex values in this file.
 */


/* ================================================================
   BASE
   Medium weight, position context for ::after underline.
   Primary text colour — the default for every link. Override with a
   colour utility or inline style where a different treatment is
   wanted (e.g. --text-brand for inline links inside running text).
   ================================================================ */

.cm-link {
  color: var(--text-primary);
  font-weight: var(--type-body-emphasis);
  text-decoration: none;
  position: relative;
  cursor: pointer;
  transition: color var(--duration-instant) var(--ease-default);
}

/* Persistent underline at rest: the link signifier. Visible without
   hover (works on touch) and without relying on colour (safe for
   colour-blind users). currentColor matches whatever colour is set.
   Inline links use this solid line as-is. */
.cm-link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1.5px;
  background-color: currentColor;
}

/* Standalone links — hover re-draw.
   The resting underline (::after) is held at half strength; on hover a
   full-strength line (::before) of the SAME thickness draws in left→right
   and retracts on leave. The base must be fainter than the redraw for the
   draw to read — inline links stay fully solid (no ::before). Thickness
   always follows the size token (1px sm / 1.5px md+lg), never changes. */
.cm-link-sm::after,
.cm-link-md::after,
.cm-link-lg::after { opacity: 0.5; }

.cm-link-sm::before,
.cm-link-md::before,
.cm-link-lg::before {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1.5px;
  background-color: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--duration-normal) var(--ease-out);
}

.cm-link-sm::before { height: 1px; }

.cm-link-sm:hover::before,
.cm-link-md:hover::before,
.cm-link-lg:hover::before { transform: scaleX(1); }

@media (prefers-reduced-motion: reduce) {
  .cm-link-sm::before,
  .cm-link-md::before,
  .cm-link-lg::before { transition: none; }
}


/* ================================================================
   SIZES — standalone links (label token bundles)
   Without a size class, links inherit parent typography (inline use).
   ================================================================ */

.cm-link-sm {
  font-family: var(--type-label-sm-font);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  letter-spacing: var(--type-label-sm-tracking);
}

/* Small links use a 1px underline — proportional to the smaller text */
.cm-link-sm::after { height: 1px; }

.cm-link-md {
  font-family: var(--type-label-md-font);
  font-size: var(--type-label-md-size);
  line-height: var(--type-label-md-lh);
  font-weight: var(--type-label-md-weight);
  letter-spacing: var(--type-label-md-tracking);
}

.cm-link-lg {
  font-family: var(--type-label-lg-font);
  font-size: var(--type-label-lg-size);
  line-height: var(--type-label-lg-lh);
  font-weight: var(--type-label-lg-weight);
  letter-spacing: var(--type-label-lg-tracking);
}


/* ================================================================
   SHARED STATES — focus-visible + disabled
   ================================================================ */

.cm-link:focus-visible {
  /* Outline ring comes from recipes.css. */
  border-radius: 1px;
}

/* Disabled treatment comes from recipes.css. */

/* ─── components/modal.css ─── */

/*
 * Cuemath Design System — Modal / Dialog Component
 * ---------------------------------------------------
 * Overlay dialog with backdrop, sizes, close behaviour.
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * Shadow is used at rest — modals genuinely float above the page.
 * This is the one exception to the "no shadow at rest" card principle.
 */


/* ================================================================
   BACKDROP
   ================================================================ */

.modal-backdrop {
  position: fixed;
  inset: 0;
  background: var(--scrim);
  z-index: var(--z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-24);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity var(--duration-slow) var(--ease-in-out),
    visibility var(--duration-slow) var(--ease-in-out);
}

.modal-backdrop.is-open {
  opacity: 1;
  visibility: visible;
}


/* ================================================================
   MODAL SURFACE
   ================================================================ */

.modal {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--neutral-1);
  border: 1px solid var(--border-tertiary);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-xl);
  width: 100%;
  max-height: calc(100vh - var(--space-48));
  overflow: hidden;
  transform: scale(0.96) translateY(8px);
  transition:
    transform var(--duration-slow) var(--ease-out),
    opacity var(--duration-slow) var(--ease-out);
  opacity: 0;
}

.modal-backdrop.is-open .modal {
  transform: scale(1) translateY(0);
  opacity: 1;
}


/* ================================================================
   SIZES
   ================================================================ */

.modal-sm  { max-width: 400px; }
.modal-md  { max-width: 560px; }
.modal-lg  { max-width: 720px; }
.modal-xl  { max-width: 960px; }
.modal-full {
  max-width: calc(100vw - var(--space-48));
  max-height: calc(100vh - var(--space-48));
}


/* ================================================================
   HEADER
   ================================================================ */

.modal-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-16);
  padding: var(--space-24);
  flex-shrink: 0;
}

.modal-header-text {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  min-width: 0;
  flex: 1;
}

.modal-title {
  font-family: var(--font-heading);
  font-size: var(--type-heading-sm-size);
  line-height: var(--type-heading-sm-lh);
  font-weight: var(--type-heading-sm-weight-bold);
  color: var(--text-primary);
  margin: 0;
}

.modal-description {
  font-family: var(--font-body);
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
  font-weight: var(--type-body-md-weight);
  color: var(--text-secondary);
  margin: 0;
}

.modal-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  flex-shrink: 0;
  transition: color var(--duration-instant) var(--ease-default);
}

.modal-close:hover {
  color: var(--text-primary);
}

/* Focus ring comes from recipes.css. */

/* Thicker stroke matches the checkbox tick treatment — close icons are
   critical affordances and need visual weight. */
.modal-close svg {
  width: 18px;
  height: 18px;
}


/* ================================================================
   BODY — scrollable content area
   ================================================================ */

.modal-body {
  padding: 0 var(--space-24);
  overflow-y: auto;
  flex: 1;
  font-family: var(--font-body);
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
  color: var(--text-primary);
}

/* When no header, add top padding */
.modal-body:first-child {
  padding-top: var(--space-24);
}


/* ================================================================
   FOOTER — action buttons
   ================================================================ */

.modal-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--space-12);
  padding: var(--space-16) var(--space-24);
  border-top: 1px solid var(--border-tertiary);
  flex-shrink: 0;
}

/* Left-aligned secondary action */
.modal-footer-start {
  margin-right: auto;
}


/* ================================================================
   DIVIDER VARIANT — header + body separated by border
   ================================================================ */

.modal-header-bordered {
  border-bottom: 1px solid var(--border-tertiary);
}


/* ================================================================
   RESPONSIVE — full-screen on mobile
   ================================================================ */

@media (max-width: 767px) {
  .modal-backdrop {
    padding: 0;
    align-items: flex-end;
  }

  .modal {
    max-width: 100%;
    max-height: 90vh;
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    border-bottom: none;
  }

  .modal-backdrop.is-open .modal {
    transform: translateY(0);
  }

  .modal {
    transform: translateY(100%);
  }
}


/* ================================================================
   DARK THEME — automatic via semantic tokens.
   Shadow switches to dark variant via --shadow-xl.
   ================================================================ */

/* ─── components/navigation.css ─── */

/*
 * Cuemath Design System — Navigation Component
 * -----------------------------------------------
 * Header/navbar, sidebar navigation, breadcrumb.
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * All colour values reference semantic tokens defined in base.css.
 * Never hardcode hex values in this file.
 */


/* ================================================================
   HEADER / NAVBAR
   Fixed-height horizontal bar at the top of the page.
   ================================================================ */

.nav-header {
  display: flex;
  align-items: center;
  height: 56px;
  padding: 0 var(--space-24);
  background: var(--neutral-1);
  border-bottom: 1px solid var(--border-tertiary);
  gap: var(--space-16);
  position: relative;
  z-index: var(--z-sticky);
}

.nav-header-brand {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  flex-shrink: 0;
  text-decoration: none;
  color: var(--text-primary);
}

.nav-header-brand img,
.nav-header-brand svg {
  height: 24px;
  width: auto;
}

.nav-header-brand-name {
  font-family: var(--font-heading);
  font-size: var(--type-heading-sm-size);
  font-weight: var(--type-heading-sm-weight-bold);
  line-height: var(--type-heading-sm-lh);
  color: var(--text-primary);
}

.nav-header-links {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-left: auto;
}

.nav-header-actions {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  margin-left: auto;
}

/* When both links and actions exist, links take center, actions go right */
.nav-header-links + .nav-header-actions {
  margin-left: 0;
}


/* ================================================================
   NAV LINK — used in header and sidebar
   ================================================================ */

.nav-link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-8);
  font-family: var(--font-body);
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
  font-weight: var(--type-body-md-weight);
  color: var(--text-primary);
  text-decoration: none;
  padding: var(--space-8) var(--space-12);
  border-radius: var(--radius-none);
  cursor: pointer;
  transition:
    color var(--duration-instant) var(--ease-default),
    box-shadow var(--duration-instant) var(--ease-default);
  border: none;
  background: transparent;
}

.nav-link:hover {
  color: var(--text-primary);
  background: var(--neutral-2);
}


.nav-link.is-active {
  color: var(--text-brand);
  font-weight: var(--type-body-emphasis);
}

/* Focus ring + disabled treatment come from recipes.css. */

/* Icon = label size + 2 (icons.css rule): nav-link text is body-md 14px. */
.nav-link svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}


/* ================================================================
   SIDEBAR NAVIGATION
   Vertical nav for product dashboards and settings.
   ================================================================ */

.nav-sidebar {
  display: flex;
  flex-direction: column;
  width: 240px;
  flex-shrink: 0;
  background: var(--neutral-2);
  border-right: 1px solid var(--border-tertiary);
  padding: var(--space-16) 0;
  overflow-y: auto;
}

.nav-sidebar .nav-link {
  width: 100%;
  padding: var(--space-8) var(--space-16);
  border-radius: 0;
}

.nav-sidebar .nav-link.is-active {
  background: var(--neutral-3);
  color: var(--text-brand);
  font-family: var(--font-body);
  font-weight: var(--type-body-emphasis);
}

.nav-sidebar-section {
  padding: var(--space-16) 0 var(--space-4);
}

.nav-sidebar-section:first-child {
  padding-top: 0;
}

.nav-sidebar-section-title {
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  text-transform: uppercase;
  letter-spacing: var(--type-label-caps-tracking);
  color: var(--text-tertiary);
  padding: 0 var(--space-16) var(--space-8);
}


/* ================================================================
   BREADCRUMB
   Horizontal path navigation.
   ================================================================ */

.breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  list-style: none;
  margin: 0;
  padding: 0;
}

.breadcrumb-item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-4);
}

.breadcrumb-item a,
.breadcrumb-link {
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  color: var(--text-secondary);
  text-decoration: none;
  transition: color var(--duration-instant) var(--ease-default);
}

.breadcrumb-item a:hover,
.breadcrumb-link:hover {
  color: var(--text-primary);
  text-decoration: underline;
}

/* Focus ring comes from recipes.css. */

/* Current page — not a link */
.breadcrumb-item.is-current {
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  color: var(--text-primary);
}

/* Separator — chevron between items */
.breadcrumb-separator {
  color: var(--text-tertiary);
  font-size: var(--type-label-sm-size);
  line-height: 1;
  user-select: none;
}

.breadcrumb-separator svg {
  width: 12px;
  height: 12px;
}


/* ================================================================
   MOBILE TOGGLE (hamburger trigger)
   ================================================================ */

.nav-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--text-primary);
  cursor: pointer;
}

.nav-toggle svg {
  width: 20px;
  height: 20px;
}

/* Focus ring comes from recipes.css. */

@media (max-width: 767px) {
  .nav-toggle {
    display: inline-flex;
  }

  .nav-header-links {
    display: none;
  }
}


/* ================================================================
   BOTTOM NAVIGATION BAR — mobile fixed footer nav
   3-5 items, icon + label, active state indicator.
   ================================================================ */

.nav-bottom {
  display: flex;
  align-items: stretch;
  justify-content: space-around;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 56px;
  background: var(--neutral-1);
  border-top: 1px solid var(--border-tertiary);
  z-index: var(--z-sticky);
  padding: 0 var(--space-4);
}

.nav-bottom-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  flex: 1;
  padding: var(--space-4) 0;
  background: transparent;
  border: none;
  color: var(--text-tertiary);
  text-decoration: none;
  cursor: pointer;
  transition:
    color var(--duration-instant) var(--ease-default);
}

.nav-bottom-item svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

.nav-bottom-item span {
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size); /* 12px */
  line-height: 1;
  font-weight: var(--type-label-sm-weight);
}

/* Active */
.nav-bottom-item.is-active {
  color: var(--text-brand);
}

/* Hover */
.nav-bottom-item:hover {
  color: var(--text-primary);
}

/* Focus ring (inset) comes from recipes.css. */

/* Safe area for devices with home indicator */
@supports (padding-bottom: env(safe-area-inset-bottom)) {
  .nav-bottom {
    padding-bottom: env(safe-area-inset-bottom);
    height: calc(56px + env(safe-area-inset-bottom));
  }
}


/* ================================================================
   DARK THEME — automatic via semantic tokens, no overrides needed.
   Sidebar border and bg switch via --neutral-2 and --border-tertiary.
   ================================================================ */

/* ─── components/pagination.css ─── */

/*
 * Cuemath Design System — Pagination Component
 * -----------------------------------------------
 * Page navigation for lists and tables.
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * All colour values reference semantic tokens defined in base.css.
 * Never hardcode hex values in this file.
 */


/* ================================================================
   PAGINATION CONTAINER
   ================================================================ */

.pagination {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  font-family: var(--font-label);
  font-size: var(--type-label-md-size);
  line-height: var(--type-label-md-lh);
  font-weight: var(--type-label-md-weight);
}


/* ================================================================
   PAGE ITEMS — buttons for page numbers, prev/next
   ================================================================ */

.page-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 var(--space-8);
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  color: var(--text-secondary);
  background: transparent;
  border: 1px solid transparent;
  border-radius: var(--radius-none);
  cursor: pointer;
  transition:
    box-shadow var(--duration-instant) var(--ease-default),
    border-color var(--duration-instant) var(--ease-default),
    color var(--duration-instant) var(--ease-default);
}

.page-item:hover {
  background: transparent;
  color: var(--text-primary);
}


/* Press (scale) + focus ring come from recipes.css. */


/* ================================================================
   ACTIVE PAGE — current page indicator
   ================================================================ */

.page-item.is-active {
  color: var(--text-brand);
  background: transparent;
  border-color: transparent;
  font-weight: var(--type-label-md-weight);
  cursor: default;
}

.page-item.is-active:hover {
  color: var(--text-brand);
  background: transparent;
  box-shadow: none;
}


/* ================================================================
   DISABLED — prev/next at bounds
   ================================================================ */

/* Disabled treatment comes from recipes.css. */


/* ================================================================
   PREV / NEXT ARROWS
   ================================================================ */

.page-item svg {
  width: 16px;
  height: 16px;
}


/* ================================================================
   ELLIPSIS — truncation indicator
   ================================================================ */

.page-ellipsis {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  color: var(--text-tertiary);
  font-family: inherit;
  font-size: inherit;
  cursor: default;
  user-select: none;
}


/* ================================================================
   COMPACT — smaller for tight spaces
   ================================================================ */

.pagination-compact .page-item {
  min-width: 28px;
  height: 28px;
  font-size: var(--type-label-sm-size);
}

.pagination-compact .page-ellipsis {
  min-width: 28px;
  height: 28px;
  font-size: var(--type-label-sm-size);
}

.pagination-compact .page-item svg {
  width: 14px;
  height: 14px;
}


/* ================================================================
   INFO — "Page 1 of 10" or "Showing 1–10 of 100"
   ================================================================ */

.pagination-info {
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  color: var(--text-tertiary);
  margin-right: var(--space-8);
}


/* ================================================================
   DARK THEME
   Semantic tokens auto-flip. Active border uses --text-primary.
   ================================================================ */

/* ─── components/progress.css ─── */

/*
 * Cuemath Design System — Progress
 * -----------------------------------
 * Linear bar, circular ring, indeterminate, stepped, buffer.
 * Sizes: md (8px), lg (12px). Ring: sm (48px), md (80px), lg (120px).
 * Tones: neutral, brand, success, warning, error.
 *
 * Requires: base.css
 */


/* ================================================================
   LINEAR PROGRESS BAR
   Thin centre line (frame) + coloured rectangle on top (fill).
   Mirrors the ring treatment: 1px frame + thicker fill.
   ================================================================ */

.progress {
  display: block;
  width: 100%;
  height: var(--progress-h, 8px);
  position: relative;
  background: transparent;
  border: 0;
  overflow: visible;
}
/* Centre rail — equivalent to the ring's 1px frame circle */
.progress::before {
  content: "";
  position: absolute;
  left: 0; right: 0;
  top: 50%;
  height: 1px;
  background: var(--border-secondary);
  transform: translateY(-50%);
}
.progress-bar {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  height: var(--progress-bar-h, 4px);
  width: var(--progress-value, 0%);
  background: var(--brand-5);
  transition: width var(--duration-normal) var(--ease-default);
}
.progress-md { --progress-h: 8px;  --progress-bar-h: 4px; }
.progress-lg { --progress-h: 12px; --progress-bar-h: 6px; }


/* ================================================================
   TONES
   ================================================================ */

.progress-neutral .progress-bar { background: var(--text-tertiary); }
.progress-brand   .progress-bar { background: var(--brand-5); }
.progress-success .progress-bar { background: var(--success-5); }
.progress-warning .progress-bar { background: var(--warning-5); }
.progress-error   .progress-bar { background: var(--error-5); }


/* ================================================================
   LABELS & CAPTIONS
   ================================================================ */

.progress-row {
  display: flex; align-items: center; gap: var(--space-12);
}
.progress-row .progress { flex: 1; }
.progress-label {
  font-family: var(--font-body);
  font-variant-numeric: tabular-nums;
  font-size: var(--type-body-sm-size);
  color: var(--text-secondary);
  flex-shrink: 0;
  min-width: 40px; text-align: right;
}
.progress-caption {
  display: flex; justify-content: space-between;
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  color: var(--text-secondary);
  margin-bottom: var(--space-8);
}


/* ================================================================
   CIRCULAR / RING PROGRESS
   ================================================================ */

.progress-ring {
  position: relative;
  display: inline-flex;
  align-items: center; justify-content: center;
  vertical-align: middle;
}
.progress-ring svg { transform: rotate(-90deg); display: block; }
.progress-ring-frame { fill: none; stroke: var(--border-secondary); stroke-width: 1; }
.progress-ring-track { fill: none; stroke: transparent; }
.progress-ring-fill  { fill: none; stroke: var(--brand-5); stroke-linecap: butt; transition: stroke-dashoffset var(--duration-normal) var(--ease-default); }

.progress-ring-neutral .progress-ring-fill  { stroke: var(--text-tertiary); }
.progress-ring-success .progress-ring-fill  { stroke: var(--success-5); }
.progress-ring-error   .progress-ring-fill  { stroke: var(--error-5); }
.progress-ring-warning .progress-ring-fill  { stroke: var(--warning-5); }

.progress-ring-label {
  position: absolute;
  font-family: var(--font-display);
  font-weight: var(--type-display-sm-weight-bold);
  color: var(--text-primary);
  line-height: 1;
  text-align: center;
}
.progress-ring-sm { width: 48px; height: 48px; }
.progress-ring-sm .progress-ring-label { font-size: var(--type-label-md-size); }     /* 13px → label-md (14px) closest token */
.progress-ring-md { width: 80px; height: 80px; }
.progress-ring-md .progress-ring-label { font-size: var(--type-heading-sm-size); }   /* 20px → heading-sm exact */
.progress-ring-lg { width: 120px; height: 120px; }
.progress-ring-lg .progress-ring-label { font-size: var(--type-heading-xl-size); }   /* 30px → heading-xl (32px) closest token */


/* ================================================================
   INDETERMINATE
   ================================================================ */

@keyframes progress-indet {
  0%   { transform: translateX(-40%); }
  100% { transform: translateX(240%); }
}
/* Clip the indeterminate sweep so it doesn't extend past the rail.
   Base .progress uses overflow: visible to allow target-bar markers
   on determinate variants — the indeterminate modifier overrides it. */
.progress-indet {
  overflow: hidden;
}

.progress-indet .progress-bar {
  width: 40%;
  animation: progress-indet 1.6s var(--ease-in-out) infinite; /* curve = --ease-in-out; 1.6s loader duration stays raw (no duration token that long) */
  transform-origin: left;
}


/* ================================================================
   STEPPED / SEGMENT
   ================================================================ */

.progress-stepped {
  display: flex;
  gap: var(--space-4);
  width: 100%;
}
.progress-stepped .progress-step {
  flex: 1;
  height: var(--progress-h, 6px);
  background: var(--neutral-3);
}
.progress-stepped .progress-step.is-complete { background: var(--brand-5); }
.progress-stepped .progress-step.is-active {
  background: linear-gradient(to right, var(--brand-5) 50%, var(--neutral-3) 50%);
}
.progress-stepped.progress-success .progress-step.is-complete { background: var(--success-5); }
.progress-stepped.progress-success .progress-step.is-active {
  background: linear-gradient(to right, var(--success-5) 50%, var(--neutral-3) 50%);
}


/* ================================================================
   BUFFER INDICATOR
   ================================================================ */

.progress-buffered .progress-buffer {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  height: var(--progress-bar-h, 4px);
  width: var(--progress-buffer, 0%);
  background: var(--neutral-3);
}
.progress-buffered .progress-bar { z-index: 1; }


/* ================================================================
   REDUCED MOTION
   ================================================================ */

@media (prefers-reduced-motion: reduce) {
  .progress-indet .progress-bar { animation: none; width: 100%; }
}


/* ================================================================
   DARK THEME — automatic via semantic tokens.
   ================================================================ */

/* ─── components/search.css ─── */

/* ═══════════════════════════════════════════════════════════════
   Cuemath Design System — Search
   ----------------------------------------------------------------
   Search is a composition, not a new field. It layers `.cm-search`
   on top of `.cm-field` (input.css) and changes three things:

     1. No visible label. The magnifier + placeholder carry the
        affordance, which is how search is handled across the
        industry. The <label> stays in the markup, visually hidden,
        so the field still has an accessible name.
     2. The native placeholder becomes visible. input.css keeps it
        at opacity 0 because the floating label does that job —
        with the label gone, the placeholder has to show.
     3. `.cm-search-pill` swaps the 4px corner for a full radius and
        widens the horizontal inset so text clears the curve.

   Everything else — sizes, focus, disabled, the clear button — is
   inherited from `.cm-field` unchanged.

   Load order: concatenated after input.css (alphabetical glob in
   build-bundle.sh), so these overrides land on top.

   Requires: input.css.
   ═══════════════════════════════════════════════════════════════ */


/* ================================================================
   LABEL — hidden by default
   Add `.cm-search-labelled` to bring the floating label back. That
   is only for a search field sitting in a form beside other
   labelled fields, where a bare field looks misaligned.
   The pill never shows a label: a notch cannot cut a round edge.
   ================================================================ */

.cm-search:not(.cm-search-labelled) .cm-field-label,
.cm-search-pill .cm-field-label {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* Keep the notch closed — nothing floats into it. */
.cm-search:not(.cm-search-labelled) .cm-field-wrap input:focus ~ .cm-field-notch legend,
.cm-search:not(.cm-search-labelled) .cm-field-wrap input:not(:placeholder-shown) ~ .cm-field-notch legend,
.cm-search-pill .cm-field-wrap input:focus ~ .cm-field-notch legend,
.cm-search-pill .cm-field-wrap input:not(:placeholder-shown) ~ .cm-field-notch legend {
  max-width: 0.01px;
}

/* Placeholder does the label's job, so it must be visible at rest.
   input.css holds it at opacity 0 for the floating-label pattern.

   It also takes the LABEL's colour, not the placeholder's. In input.css a
   placeholder is a supplementary hint that appears once the label has floated
   away, so --text-tertiary is right there. Here it IS the prompt, so it must
   match the resting label of an input and the placeholder label of a dropdown
   (--text-secondary) — otherwise a search sitting in a form beside them reads
   a tier lighter than its neighbours. Tertiary is 50% of --text-primary, which
   is also weak for the only text in an empty field. */
.cm-search:not(.cm-search-labelled) .cm-field-wrap input::placeholder,
.cm-search-pill .cm-field-wrap input::placeholder {
  opacity: 1;
  color: var(--text-secondary);
}


/* ================================================================
   PILL — full radius
   A deliberate exception to the radius foundation, which otherwise
   reserves --radius-full for chips, badges and circular controls.
   Use it for prominent standalone search; keep the square default
   for search inside a form.
   ================================================================ */

.cm-search-pill .cm-field-notch {
  border-radius: var(--radius-full);
}

/* Icon inset — the pill's own rule, and the one place it differs from the
   square variant (which keeps the field's flat 12px at both sizes).
   A rounded cap has no corner to give the icon shoulder, so the icon sits
   EQUIDISTANT from the edge: the horizontal inset equals the vertical
   breathing room, (height - icon) / 2. Derived, not pinned, so it stays true
   if either value moves:
       md  (40 - 16) / 2 = 12px
       lg  (48 - 18) / 2 = 15px
   Text then follows input.css's own formula with this inset substituted. */
.cm-search-pill {
  --_pill-icon-inset: calc((var(--_field-h) - var(--_field-icon-size)) / 2);
}

.cm-search-pill .cm-field-icon-leading  { left: var(--_pill-icon-inset); }
.cm-search-pill .cm-field-icon-trailing { right: var(--_pill-icon-inset); }

.cm-search-pill.cm-field-has-leading {
  --_field-padding-left: calc(var(--_pill-icon-inset) + var(--_field-icon-size) + var(--_field-icon-gap));
}

.cm-search-pill.cm-field-has-trailing .cm-field-wrap input {
  padding-right: calc(var(--_pill-icon-inset) + var(--_field-icon-size) + var(--_field-icon-gap));
}

/* ─── components/skeleton.css ─── */

/*
 * Cuemath Design System — Skeleton Loading
 * -------------------------------------------
 * Placeholder pulse animation for loading states.
 * Apply .skeleton to any element, add shape modifiers.
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 */


/* ================================================================
   BASE — pulsing placeholder
   ================================================================ */

.skeleton {
  background: var(--neutral-3);
  border-radius: var(--radius-none);
  /* Bare ease-in-out keyword (0.42,0,0.58,1) is intentional — deliberately softer
     than the --ease-in-out token (0.65,0,0.35,1). A loading pulse is content, not a
     UI transition, so it's exempt from the motion-token rule. Do not "tokenize". */
  animation: skeleton-pulse 1.5s ease-in-out infinite;
  pointer-events: none;
  user-select: none;
}

@keyframes skeleton-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}


/* ================================================================
   SHAPE VARIANTS
   ================================================================ */

/* Text line — single line placeholder */
.skeleton-text {
  height: 10px;
  width: 100%;
  border-radius: var(--radius-none);
}

/* Short text — labels, metadata */
.skeleton-text-short {
  height: 10px;
  width: 40%;
  border-radius: var(--radius-none);
}

/* Heading — slightly taller than body lines */
.skeleton-heading {
  height: 14px;
  width: 60%;
  border-radius: var(--radius-none);
}

/* Circle — avatars, icons */
.skeleton-circle {
  border-radius: 50%;
}

.skeleton-circle-sm  { width: 32px; height: 32px; }
.skeleton-circle-md  { width: 40px; height: 40px; }
.skeleton-circle-lg  { width: 56px; height: 56px; }

/* Rectangle — images, cards, thumbnails */
.skeleton-rect {
  width: 100%;
  height: 120px;
}

/* Button — button-shaped placeholder */
.skeleton-btn {
  height: 40px;
  width: 120px;
  border-radius: var(--radius-none);
}


/* ================================================================
   COMPOSED: SKELETON CARD
   A full card placeholder with image + heading + text lines.
   ================================================================ */

.skeleton-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-4); /* tight default — adjacent body lines pack closely */
  padding: var(--space-24);
  background: var(--neutral-2);
  border: 1px solid var(--border-secondary);
  border-radius: var(--radius-none);
}
/* Hierarchy spacing: big break after image, breath after heading,
   tight between body lines (inherited from gap-4 above). */
.skeleton-card > .skeleton-rect    { margin-bottom: var(--space-20); }
.skeleton-card > .skeleton-heading { margin-bottom: var(--space-8); }


/* ================================================================
   COMPOSED: TABLE ROW SKELETON
   ================================================================ */

.skeleton-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--border-tertiary);
}
.skeleton-table th,
.skeleton-table td {
  padding: var(--space-12) var(--space-16);
  border-bottom: 1px solid var(--border-tertiary);
  text-align: left;
}
.skeleton-table-row td { padding: var(--space-16); }
.skeleton-table-row td .skeleton { height: 12px; }


/* ================================================================
   COMPOSED: LIST ITEM SKELETON
   ================================================================ */

.skeleton-list-item {
  display: flex; align-items: center; gap: var(--space-12);
  padding: var(--space-12) 0;
}
.skeleton-list-item + .skeleton-list-item {
  border-top: 1px solid var(--border-tertiary);
}
.skeleton-list-item-body {
  flex: 1; display: flex; flex-direction: column; gap: var(--space-4);
  min-width: 0;
}
.skeleton-list-item-meta { width: 48px; flex-shrink: 0; }
.skeleton-list-item-meta .skeleton { height: 12px; }


/* ================================================================
   DARK THEME — automatic via semantic tokens.
   --neutral-3 auto-adapts.
   ================================================================ */

/* ─── components/sparkline.css ─── */

/*
 * Cuemath Design System — Sparkline Component
 * ------------------------------------------------
 * Tiny inline SVG chart. Pairs with KPI Card but usable standalone.
 *
 * Requires: base.css
 * All colour values reference semantic tokens. Never hardcode hex.
 */


/* ================================================================
   BASE SPARKLINE
   ================================================================ */

.sparkline {
  display: inline-flex;
  align-items: center;
  width: var(--sparkline-width, 80px);
  height: var(--sparkline-height, 24px);
  vertical-align: middle;
}

.sparkline svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.sparkline polyline,
.sparkline path {
  fill: none;
  stroke: var(--sparkline-color, var(--brand-5));
  stroke-width: var(--sparkline-stroke, 1.5px);
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sparkline circle {
  fill: var(--sparkline-color, var(--brand-5));
  r: 2;
}


/* ================================================================
   FILL VARIANT — area under the line
   ================================================================ */

.sparkline-fill polygon,
.sparkline-fill path.sparkline-area {
  fill: var(--sparkline-color, var(--brand-5));
  opacity: 0.1;
  stroke: none;
}


/* ================================================================
   COLOUR VARIANTS
   ================================================================ */

.sparkline-brand {
  --sparkline-color: var(--brand-5);
}

.sparkline-success {
  --sparkline-color: var(--success-5);
}

.sparkline-error {
  --sparkline-color: var(--error-5);
}

.sparkline-warning {
  --sparkline-color: var(--warning-5);
}

.sparkline-info {
  --sparkline-color: var(--info-5);
}


/* ================================================================
   SIZE VARIANTS
   ================================================================ */

.sparkline-sm {
  --sparkline-width: 48px;
  --sparkline-height: 16px;
  --sparkline-stroke: 1px;
}

.sparkline-lg {
  --sparkline-width: 120px;
  --sparkline-height: 32px;
  --sparkline-stroke: 2px;
}


/* ================================================================
   DARK THEME
   Colours auto-flip via semantic token dark overrides.
   ================================================================ */


/* ================================================================
   INTERACTIVE — hover crosshair, hover dot, dark tooltip chip.
   Tooltip uses --text-primary as background; flips with theme.
   Author drives tooltip + dot positioning via pointermove.
   ================================================================ */

.sparkline-interactive {
  position: relative;
  cursor: crosshair;
  overflow: visible;
}

.sparkline-interactive .sl-crosshair {
  stroke: var(--text-primary);
  stroke-width: 1;
  stroke-dasharray: 2 2;
  opacity: 0;
  transition: opacity var(--duration-fast) var(--ease-default);
}

.sparkline-interactive:hover .sl-crosshair { opacity: 0.5; }

.sparkline-interactive .sl-hover-dot {
  fill: currentColor;
  stroke: var(--neutral-1);
  stroke-width: 1.5;
  opacity: 0;
  transition: opacity var(--duration-fast) var(--ease-default);
}

.sparkline-interactive:hover .sl-hover-dot { opacity: 1; }

/* Visual styling comes from .tooltip; this rule is positioning + sparkline-
   specific visibility trigger only. Markup composes `.tooltip .sl-tooltip`. */
.sl-tooltip {
  bottom: calc(100% + 10px);
  left: auto;
  margin-bottom: 0;
  transform: translateX(-50%);
  z-index: 5;
}

/* Sparkline drives visibility via parent hover (no .tooltip-wrap parent). */
.sparkline-interactive:hover .sl-tooltip {
  opacity: 1;
  visibility: visible;
}

.sl-tooltip strong {
  font-weight: var(--type-body-emphasis);
  font-variant-numeric: tabular-nums;
}

.sl-tooltip .muted {
  /* Sits on .tooltip's --neutral-13 surface, so it has to flip with it.
     Same 70% derivation --text-secondary uses against --text-primary. */
  color: color-mix(in srgb, var(--text-inverse-primary) 70%, transparent);
  margin-left: var(--space-4);
}


/* ================================================================
   GRADIENT FILL — pairs with inline SVG <linearGradient> defs.
   Use a horizontal mask to soften the first/last 6% of the area.
   ================================================================ */

.sparkline-gradient .sparkline-area {
  fill: url(#spark-grad-1);
  stroke: none;
}

.spark-area-faded {
  mask: url(#spark-edge-fade);
  -webkit-mask: url(#spark-edge-fade);
}


/* ================================================================
   ANIMATED DRAW-ON — line draws left-to-right via stroke-dashoffset.
   Set --spark-len on the host SVG to match the path length.
   End-point dot fades in 1800ms after start.
   Honours prefers-reduced-motion.
   ================================================================ */

@keyframes spark-draw {
  from { stroke-dashoffset: var(--spark-len, 300); }
  to { stroke-dashoffset: 0; }
}

@keyframes spark-dot-in {
  to { opacity: 1; }
}

.sparkline-animate polyline {
  stroke-dasharray: var(--spark-len, 300);
  stroke-dashoffset: var(--spark-len, 300);
  animation: spark-draw 1800ms var(--ease-out) forwards;
}

.sparkline-animate circle {
  opacity: 0;
  animation: spark-dot-in var(--duration-fast) var(--ease-default) forwards;
  animation-delay: 1800ms;
}

@media (prefers-reduced-motion: reduce) {
  .sparkline-animate polyline {
    stroke-dasharray: none;
    stroke-dashoffset: 0;
    animation: none;
  }
  .sparkline-animate circle {
    opacity: 1;
    animation: none;
  }
}


/* ================================================================
   REFERENCE LINE — dashed horizontal guide (target / avg / threshold)
   ================================================================ */

.sparkline-ref {
  stroke: var(--text-tertiary);
  stroke-width: 1;
  stroke-dasharray: 3 3;
  opacity: 0.7;
}


/* ================================================================
   MULTI-SERIES — solid primary brand line + dashed secondary line.
   Legend swatches mirror line styles for non-colour differentiation.
   ================================================================ */

.sparkline-multi-wrap {
  display: inline-flex;
  flex-direction: column;
  gap: var(--space-8);
}

.sparkline-multi .series-line {
  fill: none;
  stroke-width: 1.5;
}

.sparkline-multi .series-primary {
  stroke: var(--brand-5);
}

.sparkline-multi .series-secondary {
  stroke: var(--text-tertiary);
  stroke-dasharray: 3 3;
}

.sparkline-multi-legend {
  display: inline-flex;
  gap: var(--space-16);
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  color: var(--text-secondary);
}

.sparkline-multi-legend span {
  display: inline-flex;
  align-items: center;
  gap: var(--space-8);
}

.sparkline-multi-legend .swatch {
  width: 16px;
  height: 2px;
  background: currentColor;
}

.sparkline-multi-legend .swatch.is-dashed {
  background-image: linear-gradient(to right, currentColor 50%, transparent 50%);
  background-size: 5px 2px;
  background-repeat: repeat-x;
  background-color: transparent;
}

.sparkline-multi-legend .is-primary { color: var(--brand-5); }
.sparkline-multi-legend .is-secondary { color: var(--text-tertiary); }

/* ─── components/table.css ─── */

/*
 * Cuemath Design System — Table Component
 * -----------------------------------------
 * Data table with sorting, alignment, and responsive behaviour.
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * All colour values reference semantic tokens defined in base.css.
 * Never hardcode hex values in this file.
 */


/* ================================================================
   TABLE WRAPPER — enables horizontal scroll on narrow screens
   ================================================================ */

.table-wrap {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}


/* ================================================================
   BASE TABLE
   ================================================================ */

.table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-body);
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
  color: var(--text-primary);
}


/* ================================================================
   HEAD
   ================================================================ */

.table thead {
  border-bottom: 1px solid var(--border-primary);
}

.table th {
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  color: var(--text-secondary);
  text-align: left;
  padding: var(--space-12) var(--space-16);
  white-space: nowrap;
  vertical-align: bottom;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}


/* ================================================================
   BODY ROWS
   ================================================================ */

.table td {
  padding: var(--space-16);
  vertical-align: middle;
  border-bottom: 1px solid var(--border-tertiary);
}

.table tbody tr:last-child td {
  border-bottom: none;
}


/* ================================================================
   ROW HOVER — default behaviour for all .table rows.
   Previously opt-in via .table-hoverable; now on by default since
   tabular data almost always benefits from row affordance. The
   .table-hoverable class is retained as a no-op alias for legacy
   markup and won't cause harm if left in place.
   ================================================================ */

.table tbody tr {
  transition:
    background var(--duration-instant) var(--ease-default),
    box-shadow var(--duration-instant) var(--ease-default);
}

.table tbody tr:hover {
  background: var(--neutral-2);
}



/* ================================================================
   ROW SELECTION (opt-in via .table-selectable)
   ================================================================ */

.table-selectable tbody tr {
  cursor: pointer;
}

.table tbody tr.row-selected {
  background: var(--neutral-3);
}

.table tbody tr.row-selected td {
  border-bottom: 1px solid var(--border-tertiary);
}

/* Table bottom boundary — visible at the end of the data, matches row separator colour */
.table {
  border-bottom: 1px solid var(--border-tertiary);
}


/* ================================================================
   ALIGNMENT
   ================================================================ */

.cell-right {
  text-align: right;
}

.cell-centre {
  text-align: center;
}


/* ================================================================
   SORTABLE COLUMNS
   ================================================================ */

.th-sortable {
  cursor: pointer;
  user-select: none;
  transition: color var(--duration-instant) var(--ease-default);
}

.th-sortable:hover {
  color: var(--text-primary);
}

/* Focus ring (inset) comes from recipes.css. */

/* Sort indicator icon */
.sort-icon {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-left: var(--space-4);
  vertical-align: middle;
  opacity: 0;
  transition: opacity var(--duration-instant) var(--ease-default);
}

.th-sortable:hover .sort-icon {
  opacity: 0.4;
}

.th-sortable[aria-sort] .sort-icon {
  opacity: 1;
}

.th-sortable[aria-sort="ascending"] .sort-icon {
  transform: rotate(0deg);
}

.th-sortable[aria-sort="descending"] .sort-icon {
  transform: rotate(180deg);
}


/* ================================================================
   COMPACT — tighter padding
   ================================================================ */

.table-compact th {
  padding: var(--space-4) var(--space-12);
}

.table-compact td {
  padding: var(--space-8) var(--space-12);
}


/* ================================================================
   STRIPED — alternating row background
   ================================================================ */

.table-striped tbody tr:nth-child(even) {
  background: var(--neutral-2);
}

/* Hover always shifts one step darker than resting state */
.table-striped tbody tr:nth-child(odd):hover {
  background: var(--neutral-2);
}
.table-striped tbody tr:nth-child(even):hover {
  background: var(--neutral-3);
}


/* ================================================================
   BORDERED — all cell borders visible
   ================================================================ */

.table-bordered th,
.table-bordered td {
  border: 1px solid var(--border-tertiary);
}

.table-bordered thead th {
  border-bottom-color: var(--border-primary);
}


/* ================================================================
   STICKY HEADER
   ================================================================ */

.table-sticky thead th {
  position: sticky;
  top: 0;
  z-index: var(--z-sticky);
  background: var(--neutral-1);
}

[data-theme="dark"] .table-sticky thead th {
  background: var(--neutral-1);
}


/* ================================================================
   EMPTY STATE
   ================================================================ */

.table-empty {
  padding: var(--space-48) var(--space-24);
  text-align: center;
  color: var(--text-tertiary);
  font-family: var(--font-body);
  font-size: var(--type-body-md-size);
}


/* ================================================================
   CAPTION
   ================================================================ */

.table caption {
  caption-side: bottom;
  padding: var(--space-8) var(--space-16);
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  color: var(--text-tertiary);
  text-align: left;
}


/* ================================================================
   LOADING SKELETON ROWS — opt-in via .table-loading
   Skeleton bars sit inside real <td> so columns don't shift.
   Stagger via inline style="--skel-i:N" on each .skeleton-row.
   ================================================================ */

.table-loading tbody tr { background: transparent !important; }
.table-loading tbody tr:hover { box-shadow: none !important; }
.table-loading .skeleton-row { height: 44px; }
.table-loading .skeleton-row td { padding: var(--space-12) var(--space-16); }
.table-loading .skeleton-row .skeleton {
  height: 10px;
  border-radius: 0;
  animation-delay: calc(var(--skel-i, 0) * 120ms);
}


/* ================================================================
   PAGINATION DOCK — sits inside .table-wrap below the <table>
   ================================================================ */

.table-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-12) var(--space-16);
  border-top: 1px solid var(--border-tertiary);
  background: var(--neutral-1);
  gap: var(--space-16);
  flex-wrap: wrap;
}

.table-pagination-info {
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  color: var(--text-tertiary);
  font-variant-numeric: tabular-nums;
}

.table-pagination-info strong {
  color: var(--text-primary);
  font-weight: var(--type-label-sm-weight);
}

.table-pagination-pages {
  display: inline-flex;
  gap: var(--space-2);
}

.page-btn {
  appearance: none;
  min-width: 32px;
  height: 32px;
  padding: 0 var(--space-8);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid transparent;
  color: var(--text-secondary);
  font-family: var(--font-label);
  font-size: var(--type-label-md-size);
  cursor: pointer;
  font-variant-numeric: tabular-nums;
  transition: background var(--duration-instant) var(--ease-default),
              color var(--duration-instant) var(--ease-default),
              border-color var(--duration-instant) var(--ease-default);
}

.page-btn:hover {
  background: var(--neutral-2);
  color: var(--text-primary);
}

.page-btn[aria-current="page"] {
  color: var(--text-brand);
  font-weight: var(--type-label-md-weight);
}

.page-btn[disabled] {
  opacity: 0.4;
  cursor: not-allowed;
}

.page-btn[disabled]:hover { background: transparent; }

.page-btn svg {
  width: 16px;
  height: 16px;
}

.page-btn.is-ellipsis {
  color: var(--text-tertiary);
  cursor: default;
}

.page-btn.is-ellipsis:hover { background: transparent; }


/* ================================================================
   ROW SELECTION + BULK ACTION BAR
   Per-row + master checkbox use the existing .cm-checkbox primitive.
   .table-bulk-bar docks above the <table> when rows are selected.
   ================================================================ */

.table-checkbox-cell {
  width: 48px;
  padding: 0 !important;
  vertical-align: middle;
  text-align: center;
}

th.table-checkbox-cell {
  vertical-align: middle;
  text-align: center;
}

.table-checkbox-cell .cm-checkbox {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  margin: 0 auto !important;
}

.table-checkbox-cell .cm-checkbox-box { margin-top: 0; }

.table-bulk-bar {
  display: flex;
  align-items: center;
  gap: var(--space-16);
  padding: var(--space-12) var(--space-20);
  background: var(--neutral-3);
  color: var(--text-primary);
  font-family: var(--font-body);
  border-bottom: 1px solid var(--border-tertiary);
}

.table-bulk-bar-count {
  font-family: var(--font-label);
  font-size: var(--type-label-md-size);
  font-weight: var(--type-label-md-weight); /* 500 */
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}

.table-bulk-bar .spacer { flex: 1; }

.table-bulk-bar-actions { display: inline-flex; }

/* Bulk-bar action buttons compose .btn .btn-secondary .btn-sm
   (or .btn .btn-danger .btn-sm for the destructive variant).
   No bespoke rule needed — see snippet-library and table.md. */


/* ================================================================
   EXPANDABLE ROWS
   Always render the .row-expansion <tr> alongside its parent so the
   layout stays put when toggling. The inner .row-expansion-content
   animates max-height + opacity + padding — never the <tr>.
   ================================================================ */

.row-expansion {
  display: table-row;
  background: transparent;
}

.row-expansion > td {
  padding: 0 !important;
  border: 0 !important;
  color: var(--text-secondary);
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
}

.row-expansion-content {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  padding: 0 var(--space-16) 0 var(--space-48);
  transition: max-height var(--duration-normal) var(--ease-default),
              opacity var(--duration-normal) var(--ease-default),
              padding var(--duration-normal) var(--ease-default),
              border-color var(--duration-normal) var(--ease-default);
  border-bottom: 1px solid transparent;
}

.row-expanded + .row-expansion .row-expansion-content {
  max-height: 200px;
  opacity: 1;
  padding: var(--space-16) var(--space-16) var(--space-16) var(--space-48);
  border-bottom-color: var(--border-tertiary);
}

/* When expanded, drop the row's bottom border so content flows into expansion */
.row-expanded > td { border-bottom: 0 !important; }

/* +/- toggle with cross-fade rotation */
.row-expand-toggle {
  appearance: none;
  width: 24px;
  height: 24px;
  border: 0;
  background: transparent;
  color: var(--text-tertiary);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  transition: color var(--duration-instant) var(--ease-default);
}

.row-expand-toggle:hover { color: var(--text-primary); }
.row-expanded .row-expand-toggle { color: var(--text-primary); }

/* Icon box: .cm-icon-16 in markup, inside the 24px tap-target button. The box
   is the positioning context so the +/- glyphs (add.svg / minus.svg) overlay
   for the crossfade; each svg fills the 16px box. */
.row-expand-toggle .cm-icon { position: relative; }
.row-expand-toggle svg {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: opacity var(--duration-normal) var(--ease-default),
              transform var(--duration-normal) var(--ease-default);
}

.row-expand-toggle .icon-minus {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(-90deg);
}

.row-expanded .row-expand-toggle .icon-plus {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg);
}

.row-expanded .row-expand-toggle .icon-minus {
  opacity: 1;
  transform: translate(-50%, -50%) rotate(0);
}


/* ================================================================
   FILTERABLE COLUMNS + CHIPS STRIP
   Column header gets an inline filter button. Active filter = gold
   dot with --text-primary stroke. Applied filters surface as
   removable .filter-chip elements above the table.
   ================================================================ */

.th-filter-wrap {
  display: inline-flex;
  align-items: center;
  gap: var(--space-4);
}

.th-filter-btn {
  appearance: none;
  width: 22px;
  height: 22px;
  border: 0;
  background: transparent;
  padding: 0;
  color: var(--text-tertiary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: color var(--duration-instant) var(--ease-default);
}

.th-filter-btn:hover { color: var(--text-primary); }

.th-filter-btn svg {
  width: 16px;
  height: 16px;
}

.th-filter-btn.is-active { color: var(--text-primary); }

.th-filter-btn.is-active::after {
  content: "";
  position: absolute;
  top: 1px;
  right: 1px;
  width: 7px;
  height: 7px;
  background: var(--brand-5);
  border: 1.5px solid var(--text-primary);
  border-radius: 50%;
}

.table-filter-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-8);
  padding: var(--space-12) var(--space-16);
  border-bottom: 1px solid var(--border-tertiary);
  background: var(--neutral-2);
}

.table-filter-chips .spacer { flex: 1; }

/* ================================================================
   COLUMN VISIBILITY TOGGLE — toolbar + popover
   Trigger uses .btn .btn-secondary; .chev rotates on
   [aria-expanded="true"]. Popover is absolutely positioned and
   should not push table content.
   ================================================================ */

.table-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-12) var(--space-16);
  border-bottom: 1px solid var(--border-tertiary);
  background: var(--neutral-1);
  gap: var(--space-16);
}

.table-toolbar-title {
  font-family: var(--font-label);
  font-size: var(--type-label-md-size);
  color: var(--text-primary);
  font-weight: var(--type-label-md-weight); /* 500 */
}

.table-toolbar-actions {
  display: inline-flex;
  gap: var(--space-8);
  position: relative;
}

.table-toolbar-actions .btn .chev {
  transition: transform var(--duration-normal) var(--ease-default);
  margin-left: var(--space-8);
}

.table-toolbar-actions .btn[aria-expanded="true"] .chev {
  transform: rotate(180deg);
}

/* Column toggle button: + by default, − when open. Library add.svg / minus.svg
   in a .cm-icon-16 box (markup); both svgs overlay and opacity flips with
   aria-expanded. .cm-icon supplies the box + size; this adds the inline inset
   and positioning context. */
.col-toggle-icon {
  position: relative;
  margin-left: var(--space-8);
}
.col-toggle-icon .icon-plus,
.col-toggle-icon .icon-minus {
  position: absolute;
  top: 0;
  left: 0;
  transition: opacity var(--duration-normal) var(--ease-default);
}
.table-toolbar-actions .btn[aria-expanded="false"] .col-toggle-icon .icon-plus  { opacity: 1; }
.table-toolbar-actions .btn[aria-expanded="false"] .col-toggle-icon .icon-minus { opacity: 0; }
.table-toolbar-actions .btn[aria-expanded="true"]  .col-toggle-icon .icon-plus  { opacity: 0; }
.table-toolbar-actions .btn[aria-expanded="true"]  .col-toggle-icon .icon-minus { opacity: 1; }
.table-toolbar-actions .btn[aria-expanded="false"] + .col-toggle-popover { display: none; }

/* Visual styling comes from .dropdown-menu; this rule is positioning only.
   Visibility is controlled by the trigger's aria-expanded (via the
   `+ .col-toggle-popover { display: none }` rule above), not via .is-open,
   so override the default .dropdown-menu hidden state. */
.col-toggle-popover {
  position: absolute;
  top: calc(100% + var(--space-8));
  right: 0;
  left: auto;
  margin-top: 0;
  z-index: var(--z-dropdown);
  opacity: 1;
  visibility: visible;
  transform: none;
}

.col-toggle-popover .cm-checkbox {
  width: 100%;
  padding: var(--space-8) var(--space-16);
  box-sizing: border-box;
  transition: background var(--duration-instant) var(--ease-default);
}

.col-toggle-popover .cm-checkbox:hover { background: var(--neutral-2); }

.col-toggle-popover .cm-checkbox-label {
  font-size: var(--type-body-md-size);
  font-weight: var(--type-body-md-weight); /* 400 */
}


/* ================================================================
   RESPONSIVE CARDS — opt-in via .table-responsive-cards
   Each <td> needs a data-label attr. Below 640px (or when the
   .force-cards demo helper is applied) rows stack into cards:
   first <td> becomes the heading, the rest become label/value rows.
   ================================================================ */

@media (max-width: 640px) {
  .table-responsive-cards,
  .table-responsive-cards thead,
  .table-responsive-cards tbody,
  .table-responsive-cards tr,
  .table-responsive-cards td { display: block; width: 100%; }
  .table-responsive-cards thead { display: none; }
  .table-responsive-cards tbody tr {
    border: 1px solid var(--border-secondary);
    margin-bottom: var(--space-16);
    padding: var(--space-20) var(--space-20) var(--space-16);
    background: var(--neutral-1);
  }
  .table-responsive-cards tbody tr:last-child { margin-bottom: 0; }
  .table-responsive-cards tbody td:first-child {
    padding: 0 0 var(--space-12) 0;
    border: 0;
    border-bottom: 1px solid var(--border-secondary);
    margin-bottom: var(--space-12);
    display: block;
    font-family: var(--font-heading);
    font-size: var(--type-heading-sm-size);
    line-height: var(--type-heading-sm-lh);
    font-weight: var(--type-heading-sm-weight-bold);
    color: var(--text-primary);
  }
  .table-responsive-cards tbody td:first-child::before { display: none; }
  .table-responsive-cards tbody td {
    padding: var(--space-8) 0;
    border: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-16);
    font-size: var(--type-body-md-size);
    line-height: var(--type-body-md-lh);
    color: var(--text-primary);
  }
  .table-responsive-cards tbody td:last-child { padding-bottom: 0; }
  .table-responsive-cards tbody td::before {
    content: attr(data-label);
    font-family: var(--font-label);
    font-size: var(--type-label-sm-size);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-tertiary);
    font-weight: var(--type-label-sm-weight); /* 500 */
  }
}

/* .force-cards — demo helper that mirrors the mobile state at any width */
.force-cards .table-responsive-cards,
.force-cards .table-responsive-cards thead,
.force-cards .table-responsive-cards tbody,
.force-cards .table-responsive-cards tr,
.force-cards .table-responsive-cards td { display: block; width: 100%; }
.force-cards .table-responsive-cards thead { display: none; }
.force-cards .table-responsive-cards tbody tr {
  border: 1px solid var(--border-secondary);
  margin-bottom: var(--space-16);
  padding: var(--space-20) var(--space-20) var(--space-16);
  background: var(--neutral-1);
}
.force-cards .table-responsive-cards tbody tr:last-child { margin-bottom: 0; }
.force-cards .table-responsive-cards tbody td:first-child {
  padding: 0 0 var(--space-12) 0;
  border: 0;
  border-bottom: 1px solid var(--border-secondary);
  margin-bottom: var(--space-12);
  display: block;
  font-family: var(--font-heading);
  font-size: var(--type-heading-sm-size);
  line-height: var(--type-heading-sm-lh);
  font-weight: var(--type-heading-sm-weight-bold);
  color: var(--text-primary);
}
.force-cards .table-responsive-cards tbody td:first-child::before { display: none; }
.force-cards .table-responsive-cards tbody td {
  padding: var(--space-8) 0;
  border: 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-16);
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
  color: var(--text-primary);
}
.force-cards .table-responsive-cards tbody td:last-child { padding-bottom: 0; }
.force-cards .table-responsive-cards tbody td::before {
  content: attr(data-label);
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-tertiary);
  font-weight: var(--type-label-sm-weight); /* 500 */
}


/* ================================================================
   SCROLLBAR — shared with .dropdown-scroll treatment
   ================================================================ */

/* Custom scrollbar comes from recipes.css (.table-wrap). */


/* ================================================================
   STICKY FIRST COLUMN — opt-in via .table-sticky-col
   First column freezes during horizontal scroll. Uses --neutral-2
   as the fixed-column indicator + 1px shadow on the right edge.
   ================================================================ */

.table-sticky-col td:first-child,
.table-sticky-col th:first-child {
  position: sticky;
  left: 0;
  background: var(--neutral-2);
  z-index: 1;
  box-shadow: 1px 0 0 var(--border-secondary);
  font-weight: var(--type-body-emphasis); /* 500 */
}

.table-sticky-col tbody tr:hover td:first-child {
  background: var(--neutral-3);
}

/* Corner cell when BOTH sticky header + sticky column are on: it matches the
   sticky-col rule (z-index 1) on higher specificity than the header rule, which
   would drop it below the --z-sticky header so a scrolling first-column cell
   could paint over the header corner. Lift the corner to the header layer. */
.table-sticky.table-sticky-col thead th:first-child {
  z-index: var(--z-sticky);
}


/* ─── components/tabs.css ─── */

/*
 * Cuemath Design System — Tabs Component
 * ----------------------------------------
 * Tab bar with content panels.
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * All colour values reference semantic tokens defined in base.css.
 * Never hardcode hex values in this file.
 */


/* ================================================================
   TAB GROUP — wrapper for tab list + panels
   ================================================================ */

.tabs {
  display: flex;
  flex-direction: column;
}


/* ================================================================
   TAB LIST — horizontal row of tab triggers
   ================================================================ */

.tab-list {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid var(--border-tertiary);
  gap: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.tab-list::-webkit-scrollbar {
  display: none;
}


/* ================================================================
   TAB — individual trigger
   Underline indicator on the active tab.
   ================================================================ */

.tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-8);
  font-family: var(--font-label);
  font-size: var(--type-label-md-size);
  line-height: var(--type-label-md-lh);
  font-weight: var(--type-label-md-weight);
  color: var(--text-secondary);
  padding: var(--space-12) var(--space-16);
  border: none;
  background: transparent;
  cursor: pointer;
  white-space: nowrap;
  position: relative;
  transition:
    color var(--duration-instant) var(--ease-default),
    box-shadow var(--duration-instant) var(--ease-default);
}

/* Active indicator — 2px bottom border inside the tab */
.tab::after {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 0;
  right: 0;
  height: 2px;
  background: transparent;
  transition: background var(--duration-instant) var(--ease-default);
}


/* ================================================================
   STATES
   ================================================================ */

.tab:hover {
  color: var(--text-primary);
  background: var(--neutral-2);
}


.tab.is-active,
.tab[aria-selected="true"] {
  color: var(--text-primary);
  font-weight: var(--type-label-md-weight);
}

.tab.is-active::after,
.tab[aria-selected="true"]::after {
  background: var(--text-primary);
}

/* Focus ring (inset) + disabled treatment come from recipes.css. */


/* ================================================================
   TAB with icon
   ================================================================ */

/* Icon = label size + 2 (the system rule in icons.css): md 14->16, lg 16->18,
   sm 12->14. Icon-only tabs keep 20px — no label to size against. */
.tab svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}


/* ================================================================
   ICON-ONLY TAB
   Hides label, enlarges icon. Use aria-label for accessibility.
   ================================================================ */

.tab-icon-only {
  padding: var(--space-12);
}

.tab-icon-only svg {
  width: 20px;
  height: 20px;
}


/* ================================================================
   TAB with badge / count
   ================================================================ */

.tab-count {
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  color: var(--text-tertiary);
  /* Pull the count closer to the label — tab parent uses gap: var(--space-8)
     for icons, so a negative margin reduces the visible gap to var(--space-4). */
  margin-left: calc(-1 * var(--space-4));
}

.tab.is-active .tab-count,
.tab[aria-selected="true"] .tab-count {
  color: var(--text-secondary);
}


/* ================================================================
   TAB PANEL — content container
   ================================================================ */

.tab-panel {
  padding: var(--space-24) 0;
}

.tab-panel[hidden] {
  display: none;
}


/* ================================================================
   SIZE VARIANTS
   ================================================================ */

/* Small tabs — compact for toolbars and secondary navigation */
.tab-list-sm .tab {
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  padding: var(--space-8) var(--space-12);
}

.tab-list-sm .tab svg {
  width: 14px;
  height: 14px;
}

/* Large tabs — for primary page-level navigation */
.tab-list-lg .tab {
  font-size: var(--type-label-lg-size);
  line-height: var(--type-label-lg-lh);
  padding: var(--space-16) var(--space-20) var(--space-12);
}

.tab-list-lg .tab svg {
  width: 18px;
  height: 18px;
}


/* ================================================================
   CONTAINED VARIANT — tabs with background fill
   For tabs inside cards or panels where underline is too subtle.
   ================================================================ */

.tab-list-contained {
  border-bottom: none;
  background: var(--neutral-2);
  padding: var(--space-4);
  gap: var(--space-4);
}

.tab-list-contained .tab {
  border-radius: var(--radius-none);
  padding: var(--space-8) var(--space-16);
}

.tab-list-contained .tab::after {
  display: none;
}

.tab-list-contained .tab.is-active,
.tab-list-contained .tab[aria-selected="true"] {
  background: var(--neutral-1);
  box-shadow: var(--shadow-xs);
}


/* ================================================================
   FULL-WIDTH — tabs stretch to fill container
   ================================================================ */

.tab-list-full .tab {
  flex: 1;
}


/* ================================================================
   DARK THEME — automatic via semantic tokens.
   ================================================================ */

/* ─── components/toast.css ─── */

/*
 * Cuemath Design System — Toast / Notification Component
 * --------------------------------------------------------
 * Transient feedback: neutral, success, error.
 * Figma: CueDesign → Toast (node 3992:116); reference layout 4044:1326.
 * Four optional parts — leading icon, progress, close, action button — each
 * on or off independently. Progress is a 3px line along the top edge in the
 * brand (neutral) or selected-border colour (success, error); close is a chip off the top-right
 * corner; the icon is sized to the text's line-height (24 desktop / 20 mobile).
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * Toasts float above the page. Shadow at rest is correct here.
 * The toast is an INVERSE surface: a translucent fill (90%) with a
 * background blur that is dark in light theme and light in dark theme.
 * Everything on it uses the --*-inverse / --*-on-inverse tokens, so the
 * flip is automatic and nothing is pinned to a hex or a primitive.
 */


/* ================================================================
   TOAST CONTAINER — one fixed stack, placement is responsive
   ----------------------------------------------------------------
   Desktop (≥1024px):  top-right, 16px from top and right; enters from the top.
   Tablet + mobile:    bottom, 16px above the bottom nav bar (56px + safe
                       area); enters from the bottom. Tablet centres the
                       stack; mobile stretches it with 16px side margins.
   ================================================================ */

.toast-container {
  position: fixed;
  z-index: var(--z-toast);
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  pointer-events: none;
  width: 100%;
  max-width: 400px;                  /* Desktop + tablet: fixed 400 */
  top: var(--space-16);
  right: var(--space-16);
  /* Bottom nav clearance, used by the tablet/mobile rule below. */
  --toast-nav-clearance: 56px;
}

@media (max-width: 1023px) {
  .toast-container {
    top: auto;
    right: auto;
    left: 50%;
    transform: translateX(-50%);
    bottom: calc(var(--toast-nav-clearance) + var(--space-16) + env(safe-area-inset-bottom, 0px));
  }
}

@media (max-width: 767px) {
  .toast-container {
    left: var(--space-16);
    right: var(--space-16);
    transform: none;
    width: auto;
    max-width: none;
  }
}


/* ================================================================
   TOAST — the surface
   ================================================================ */

.toast {
  /* Device tokens — overridden by .toast-mobile / the mobile media query */
  --toast-pad: var(--space-16);
  --toast-gap: var(--space-16);
  --toast-font-size: var(--type-body-lg-size);      /* 16px */
  --toast-line-height: var(--type-body-lg-lh);      /* 24px */
  /* Nature fill — overridden by .toast-success / .toast-error */
  --toast-fill: var(--neutral-11);

  position: relative;                /* anchors progress + close */
  display: flex;
  align-items: center;
  gap: var(--toast-gap);
  padding: var(--toast-pad);
  /* No overflow clipping: progress and close sit on / past the edge. */
  background: color-mix(in srgb, var(--toast-fill) 90%, transparent);
  -webkit-backdrop-filter: blur(2.5px);
  backdrop-filter: blur(2.5px);      /* Figma background blur 5 ≈ CSS 2.5px */
  color: var(--text-inverse-primary);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  pointer-events: auto;
  opacity: 0;
  transform: translateY(-8px);       /* desktop: slides down from the top */
  transition:
    opacity var(--duration-normal) var(--ease-out),
    transform var(--duration-normal) var(--ease-out);
}

.toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Tablet + mobile: slides up from the bottom */
@media (max-width: 1023px) {
  .toast { transform: translateY(8px); }
  .toast.is-visible { transform: translateY(0); }
}

/* ----------------------------------------------------------------
   DEVICE — two fixed widths, so toasts never resize with content.
   Desktop + tablet (default): 400px wide, body-lg 16/24, 24px icon.
   Mobile (≤767px, automatic):  screen − 32px, body-md 14/20, 20px icon.
   Padding, gap and the 32px controls are the same on both. Figma:
   Toast / Device=Desktop (400) and Device=Mobile (343 on a 375 frame).
   .toast-mobile forces the mobile treatment at any viewport (explorer,
   docs, embedded previews).
   ---------------------------------------------------------------- */
.toast-mobile,
.toast-mobile.toast {
  --toast-font-size: var(--type-body-md-size);      /* 14px */
  --toast-line-height: var(--type-body-md-lh);      /* 20px */
}

@media (max-width: 767px) {
  .toast {
    --toast-font-size: var(--type-body-md-size);
    --toast-line-height: var(--type-body-md-lh);
  }
}


/* ================================================================
   TOAST ICON — optional leading icon, sized to the line-height so it
   sits on the first line of text: 24px desktop, 20px mobile. 12px to the
   text (tighter than the 16px row gap), same colour as the text.
   ================================================================ */

.toast-icon {
  flex-shrink: 0;
  width: var(--toast-line-height);
  height: var(--toast-line-height);
  margin-right: calc(var(--space-12) - var(--toast-gap));   /* 16 → 12 */
  color: inherit;                    /* = --text-inverse-primary */
}

.toast-icon svg { width: 100%; height: 100%; display: block; }


/* ================================================================
   TOAST CONTENT
   ================================================================ */

.toast-content {
  flex: 1;
  min-width: 0;
}

.toast-message {
  font-family: var(--font-body);
  font-size: var(--toast-font-size);
  line-height: var(--toast-line-height);
  font-weight: var(--type-body-lg-weight);
  overflow-wrap: break-word;
}

/* Inline emphasis inside the message, e.g. a countdown number. Medium weight. */
.toast-accent {
  color: var(--brand-3);   /* was a brand-on-inverse token at 2.14:1 on the dark toast, under AA */
  font-weight: var(--type-label-md-weight);
}


/* ================================================================
   TOAST ACTION — Button / Secondary Fill, SM in Figma: page-surface fill
   with the interactive border. Light button on the dark toast in light
   theme, and vice versa.
   ================================================================ */

.toast-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  height: 32px;
  padding: 0 var(--space-16);
  gap: 6px;
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  white-space: nowrap;
  color: var(--text-primary);
  background: var(--neutral-0);
  border: 1px solid var(--border-selected);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: background var(--duration-instant) var(--ease-default);
}

.toast-action:hover {
  background: var(--neutral-2);
}

/* Focus ring comes from recipes.css. */


/* ================================================================
   TOAST CLOSE — 20px light chip floating off the top-right corner
   (6px outside on both axes), 12px close-thick glyph, small shadow.
   Reads as "peel this off" rather than a control inside the message.
   ================================================================ */

.toast-close {
  position: absolute;
  top: -6px;
  right: -6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: var(--space-4);
  border: 1px solid var(--border-selected);
  border-radius: var(--radius-full);
  background: var(--neutral-0);
  color: var(--text-primary);
  box-shadow: var(--shadow-sm);
  z-index: var(--z-raised);          /* above the progress line */
  cursor: pointer;
  transition: background var(--duration-instant) var(--ease-default);
}

.toast-close .cm-icon { --icon-size: 12px; }

.toast-close:hover {
  background: var(--neutral-2);
}

/* Focus ring comes from recipes.css. */


/* ================================================================
   TOAST PROGRESS + AUTO-DISMISS
   A 3px line along the top edge, inset 8px each side, that fills
   left → right over --toast-duration (default 5s).
   When it reaches 100% the toast fades out and stops taking clicks.
   Hover pauses both, so a reader isn't racing the bar.
   A runtime should remove the node on `animationend` of `toast-dismiss`.
   Opt in by adding .toast-progress-auto to the track; a toast without it
   (e.g. an error with Retry) stays until acted on.
   ================================================================ */

.toast-progress {
  position: absolute;
  top: -1.5px;                                 /* centred on the top edge */
  left: var(--space-8);
  height: 3px;
  width: calc(100% - var(--space-16));
  background: var(--brand-5);
  transform-origin: left;
  transform: scaleX(0);
  pointer-events: none;
}

.toast.is-visible .toast-progress-auto {
  animation: toast-progress var(--toast-duration, 5s) linear forwards;
}

/* The toast itself exits when the bar completes. */
.toast.is-visible:has(.toast-progress-auto) {
  animation: toast-dismiss var(--duration-fast) var(--ease-in) var(--toast-duration, 5s) forwards;
}

.toast:hover .toast-progress-auto,
.toast.is-visible:has(.toast-progress-auto):hover {
  animation-play-state: paused;
}

@keyframes toast-progress {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

@keyframes toast-dismiss {
  to { opacity: 0; pointer-events: none; }
}

@media (prefers-reduced-motion: reduce) {
  .toast { transition: opacity var(--duration-normal) var(--ease-out); transform: none; }
  /* Keep the timer, drop the moving bar: it jumps to full at the end. */
  .toast.is-visible .toast-progress-auto { animation-duration: 1ms; animation-delay: var(--toast-duration, 5s); }
}


/* ================================================================
   NATURE VARIANTS — deep surface tiers, 90% over the page. The tiers
   mirror across themes, so the toast is dark on light and light on dark.
   Light theme: neutral-800 / success-800 / error-700 (the Figma values).
   Dark theme:  neutral-300 / success-400 / error-500.
   ================================================================ */

.toast-success { --toast-fill: var(--success-8); }
.toast-error   { --toast-fill: var(--error-7); }

/* Progress: brand on neutral; the selected-border colour on success and
   error, where a tinted line would fight the coloured surface. */
.toast-success .toast-progress,
.toast-error   .toast-progress { background: var(--border-selected); }

/* ─── components/tooltip.css ─── */

/*
 * Cuemath Design System — Tooltip Component
 * --------------------------------------------
 * Contextual hints on hover or focus.
 *
 * Requires: base.css (or the underlying token files)
 *   @import '../../../context/design-resources/design-system/base.css';
 *
 * All colour values reference semantic tokens defined in base.css.
 * Never hardcode hex values in this file.
 */


/* ================================================================
   TOOLTIP WRAPPER — positions the tooltip relative to trigger
   ================================================================ */

.tooltip-wrap {
  position: relative;
  display: inline-flex;
}


/* ================================================================
   TOOLTIP SURFACE
   ================================================================ */

/* Base = SMALL tooltip (Figma "Default" variant, node 291:35).
   Asymmetric top/bottom padding (less on top) optically centres the
   single label line. Figma: padding 2 / 8 / 4 / 8, radius 2. */
.tooltip {
  position: absolute;
  z-index: var(--z-tooltip);
  padding: var(--space-2) var(--space-8) var(--space-4);
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-label-sm-weight);
  color: var(--text-inverse-primary);
  background: var(--neutral-13);
  border-radius: var(--radius-xs);
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity var(--duration-fast) var(--ease-default),
    visibility var(--duration-fast) var(--ease-default);
}

/* BIG tooltip (Figma "Multiline" variant). Larger radius and roomier
   padding; top still lighter than bottom to keep text optically centred.
   Figma: padding 6 / 8 / 8 / 8, radius 4 (mapped 6 -> --space-4 to keep
   the top-lighter optical correction on the spacing scale). */
.tooltip-lg {
  padding: var(--space-4) var(--space-8) var(--space-8);
  border-radius: var(--radius-sm);
}

/* Big tooltip uses a larger pointer to match its surface (Figma 12x6). */
.tooltip-lg::after {
  width: 12px;
  height: 12px;
}

/* Show on hover/focus of wrapper */
.tooltip-wrap:hover .tooltip,
.tooltip-wrap:focus-within .tooltip {
  opacity: 1;
  visibility: visible;
}


/* ================================================================
   PLACEMENT
   ================================================================ */

/* Top (default) */
.tooltip,
.tooltip-top {
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-bottom: var(--space-4);
}

/* Bottom */
.tooltip-bottom {
  top: 100%;
  bottom: auto;
  left: 50%;
  transform: translateX(-50%);
  margin-top: var(--space-4);
  margin-bottom: 0;
}

/* Left */
.tooltip-left {
  right: 100%;
  left: auto;
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  margin-right: var(--space-4);
  margin-bottom: 0;
}

/* Right */
.tooltip-right {
  left: 100%;
  right: auto;
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  margin-left: var(--space-4);
  margin-bottom: 0;
}


/* ================================================================
   ARROW — rotated square (diamond) so the tip can carry the 1px
   rounding Figma uses on the pointer's apex (a pure CSS
   border-triangle has perfectly sharp corners and cannot be rounded).
   The 8px square is rotated 45deg and pushed half-out past the surface
   edge, so only the outer triangular point shows (≈8px wide × 4px tall,
   matching Figma's arrow vector). It inherits the surface fill so it
   reads as one continuous shape. The arrow geometry below uses raw px
   (control dimensions, not spacing tokens).
   ================================================================ */

.tooltip::after {
  content: '';
  position: absolute;
  width: 8px;
  height: 8px;
  background: var(--neutral-13);
  border-radius: 1px; /* 1px roundness on the pointer tip, per Figma */
}

/* Top arrow (default) — points down */
.tooltip::after,
.tooltip-top::after {
  top: 100%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
}

/* Bottom arrow — points up */
.tooltip-bottom::after {
  bottom: 100%;
  top: auto;
  left: 50%;
  transform: translate(-50%, 50%) rotate(45deg);
}

/* Left arrow — points right */
.tooltip-left::after {
  left: 100%;
  top: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
}

/* Right arrow — points left */
.tooltip-right::after {
  right: 100%;
  left: auto;
  top: 50%;
  transform: translate(50%, -50%) rotate(45deg);
}


/* ================================================================
   MULTILINE — allows wrapping for longer content
   ================================================================ */

.tooltip-multiline {
  white-space: normal;
  max-width: 240px;
  text-align: left;
}


/* ================================================================
   DELAY — slight show delay to prevent flicker on mouse pass
   Hidden state: no delay (disappears instantly).
   Visible state: delay before appearing (prevents flash on pass-through).
   ================================================================ */

.tooltip-delay {
  transition-delay: 0ms;
}

.tooltip-wrap:hover .tooltip-delay,
.tooltip-wrap:focus-within .tooltip-delay {
  transition-delay: var(--duration-fast);
}


/* No dark-theme block needed: --neutral-13 and --text-inverse-primary already flip
   (neutral-1000/neutral-100 → neutral-100/neutral-1000), so the tooltip inverts
   on its own. The old override hardcoded exactly those values by hand. */
