/* ═══════════════════════════════════════════════════════════════
   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-05-15 19:33
   ═══════════════════════════════════════════════════════════════ */


/* ─── 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≈77° OKLCH ─── */

  --neutral-100:  #FAF8F5;
  --neutral-200:  #F3F0EB;
  --neutral-300:  #E8E4DD;
  --neutral-400:  #C6C0B8;
  --neutral-500:  #97938C;
  --neutral-600:  #84807B;
  --neutral-700:  #5B5854;
  --neutral-800:  #43413E;
  --neutral-900:  #33312F;
  --neutral-1000: #292827;


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

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


  /* ─── Error ─── H20°→H17° OKLCH ─── */

  --error-100:  #FFEEEE;
  --error-200:  #FFDEDD;
  --error-300:  #FFC6C5;
  --error-400:  #FFA8A8;
  --error-500:  #FA858A;
  --error-600:  #EA666E;
  --error-700:  #D0505C;
  --error-800:  #AE424C;
  --error-900:  #8A343C;
  --error-1000: #6A292F;
  --error-1100: #501F23;


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

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


  /* ─── Warning ─── H42°→H34° OKLCH ─── */

  --warning-100:  #FFF1E8;
  --warning-200:  #FFE4D4;
  --warning-300:  #FFD0B4;
  --warning-400:  #FFB792;
  --warning-500:  #FFA278;
  --warning-600:  #FF9067;
  --warning-700:  #EF7C59;
  --warning-800:  #C05E44;
  --warning-900:  #934734;
  --warning-1000: #743A2C;
  --warning-1100: #582B22;


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

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


  /* ─── Purple ─── H315° OKLCH (magenta-leaning) ─── */
  /* No semantic role — primitive only. Available for categorical/decorative use. */

  --purple-100:  #FAEFFF;
  --purple-200:  #F6E0FF;
  --purple-300:  #F0CAFF;
  --purple-400:  #E4AAFE;
  --purple-500:  #D994F8;
  --purple-600:  #CB81EB;
  --purple-700:  #A65EC4;
  --purple-800:  #7F4497;
  --purple-900:  #5C2E6E;
  --purple-1000: #411F4F;
  --purple-1100: #2D1437;
}


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

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

  /* ─── Backgrounds ─── */
  --bg-primary:           var(--neutral-100);
  --bg-secondary:         var(--neutral-200);
  --bg-tertiary:          var(--neutral-300);
  --bg-inverse:           var(--neutral-1000);
  --bg-inverse-secondary: var(--neutral-800);

  /* ─── Text ─── */
  --text-primary:         var(--neutral-1000);
  /* 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) 70%, transparent);
  --text-tertiary:        color-mix(in srgb, var(--text-primary) 50%, transparent);
  --text-on-inverse:      var(--neutral-100);
  --text-brand:           var(--gold-700);
  --text-error:           var(--error-700);
  --text-success:         var(--success-700);
  --text-warning:         var(--warning-700);
  --text-info:            var(--info-700);
  --text-purple:          var(--purple-700);

  /* ─── Borders ─── */
  --border-primary:       var(--neutral-600);
  --border-secondary:     var(--neutral-400);
  --border-tertiary:      var(--neutral-300);
  --border-interactive:   var(--neutral-1000);
  --border-brand:         var(--gold-300);
  --border-error:         var(--error-300);
  --border-success:       var(--success-300);
  --border-warning:       var(--warning-300);
  --border-info:          var(--info-300);
  --border-purple:        var(--purple-300);

  /* ─── 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 bg-{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);

  /* ─── Functional Backgrounds ─── */
  --bg-brand:             var(--gold-500);
  --bg-error:             var(--error-500);
  --bg-success:           var(--success-500);
  --bg-warning:           var(--warning-500);
  --bg-info:              var(--info-500);
  --bg-purple:            var(--purple-500);

  /* Filled-accent hover — one step deeper on the ramp (light: +100, dark: -100).
     Use on .btn-primary, .btn-destructive, .btn-success, etc. */
  --bg-brand-hover:       var(--gold-600);
  --bg-error-hover:       var(--error-600);
  --bg-success-hover:     var(--success-600);
  --bg-warning-hover:     var(--warning-600);
  --bg-info-hover:        var(--info-600);
  --bg-purple-hover:      var(--purple-600);

  /* Accent surface levels — three steps per accent for tinted backgrounds.
     Mirrors the neutral bg-primary/secondary/tertiary pattern. */
  --bg-brand-1:           var(--gold-100);
  --bg-brand-2:           var(--gold-200);
  --bg-brand-3:           var(--gold-300);
  --bg-error-1:           var(--error-100);
  --bg-error-2:           var(--error-200);
  --bg-error-3:           var(--error-300);
  --bg-success-1:         var(--success-100);
  --bg-success-2:         var(--success-200);
  --bg-success-3:         var(--success-300);
  --bg-warning-1:         var(--warning-100);
  --bg-warning-2:         var(--warning-200);
  --bg-warning-3:         var(--warning-300);
  --bg-info-1:            var(--info-100);
  --bg-info-2:            var(--info-200);
  --bg-info-3:            var(--info-300);
  --bg-purple-1:          var(--purple-100);
  --bg-purple-2:          var(--purple-200);
  --bg-purple-3:          var(--purple-300);

  /* Back-compat aliases — *-subtle now points to *-1.
     New components should use *-1 directly. */
  --bg-brand-subtle:      var(--bg-brand-1);
  --bg-error-subtle:      var(--bg-error-1);
  --bg-success-subtle:    var(--bg-success-1);
  --bg-warning-subtle:    var(--bg-warning-1);
  --bg-info-subtle:       var(--bg-info-1);
  --bg-purple-subtle:     var(--bg-purple-1);
}


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

[data-theme="dark"] {

  /* ─── Backgrounds ─── */
  --bg-primary:           var(--neutral-1000);
  --bg-secondary:         var(--neutral-900);
  --bg-tertiary:          var(--neutral-800);
  --bg-inverse:           var(--neutral-100);
  --bg-inverse-secondary: var(--neutral-200);

  /* ─── Text ─── */
  --text-primary:         var(--neutral-100);
  /* 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) 70%, transparent);
  --text-tertiary:        color-mix(in srgb, var(--text-primary) 50%, transparent);
  --text-on-inverse:      var(--neutral-1000);
  --text-brand:           var(--gold-500);
  --text-error:           var(--error-500);
  --text-success:         var(--success-500);
  --text-warning:         var(--warning-500);
  --text-info:            var(--info-500);
  --text-purple:          var(--purple-500);

  /* ─── Borders ─── */
  --border-primary:       var(--neutral-500);
  --border-secondary:     var(--neutral-700);
  --border-tertiary:      var(--neutral-800);
  --border-interactive:   var(--neutral-100);
  /* Accent borders: solid step 900 — middle ground that stays readable against
     the step-1100 accent fills without overpowering them. Light theme uses
     step 300 (same distance from fill, opposite direction). */
  --border-brand:         var(--gold-900);
  --border-error:         var(--error-900);
  --border-success:       var(--success-900);
  --border-warning:       var(--warning-900);
  --border-info:          var(--info-900);
  --border-purple:        var(--purple-900);

  /* ─── 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);

  /* ─── Functional Backgrounds ─── */
  --bg-brand:             var(--gold-500);
  --bg-error:             var(--error-500);
  --bg-success:           var(--success-500);
  --bg-warning:           var(--warning-500);
  --bg-info:              var(--info-500);
  --bg-purple:            var(--purple-500);

  /* Filled-accent hover — in dark theme, hover lightens (-100 on the ramp). */
  --bg-brand-hover:       var(--gold-400);
  --bg-error-hover:       var(--error-400);
  --bg-success-hover:     var(--success-400);
  --bg-warning-hover:     var(--warning-400);
  --bg-info-hover:        var(--info-400);
  --bg-purple-hover:      var(--purple-400);

  /* 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. */
  --bg-brand-1:           var(--gold-1100);
  --bg-brand-2:           var(--gold-1000);
  --bg-brand-3:           var(--gold-900);
  --bg-error-1:           var(--error-1100);
  --bg-error-2:           var(--error-1000);
  --bg-error-3:           var(--error-900);
  --bg-success-1:         var(--success-1100);
  --bg-success-2:         var(--success-1000);
  --bg-success-3:         var(--success-900);
  --bg-warning-1:         var(--warning-1100);
  --bg-warning-2:         var(--warning-1000);
  --bg-warning-3:         var(--warning-900);
  --bg-info-1:            var(--info-1100);
  --bg-info-2:            var(--info-1000);
  --bg-info-3:            var(--info-900);
  --bg-purple-1:          var(--purple-1100);
  --bg-purple-2:          var(--purple-1000);
  --bg-purple-3:          var(--purple-900);

  /* Back-compat aliases — *-subtle now points to *-1.
     This is a deliberate behaviour change in dark mode: the previous
     low-opacity HSL wash diluted into the warm neutral bg and lost the
     accent hue. The new value is a solid, readable dark accent surface. */
  --bg-brand-subtle:      var(--bg-brand-1);
  --bg-error-subtle:      var(--bg-error-1);
  --bg-success-subtle:    var(--bg-success-1);
  --bg-warning-subtle:    var(--bg-warning-1);
  --bg-info-subtle:       var(--bg-info-1);
  --bg-purple-subtle:     var(--bg-purple-1);
}

/* ─── 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:   400;
  --type-display-lg-tracking: -0.01em;
  --type-display-lg-fluid:    clamp(32px, 5vw, 64px);

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

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


  /* ─── 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:   500;
  --type-heading-xl-tracking: 0;
  --type-heading-xl-fluid:    clamp(24px, 2.5vw, 32px);

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

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

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


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

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

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

  --type-body-sm-font:        var(--font-body);
  --type-body-sm-size:        14px;
  --type-body-sm-lh:          20px;
  --type-body-sm-weight:      400;
  --type-body-sm-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-caption-font:        var(--font-label);
  --type-caption-size:        12px;
  --type-caption-lh:          16px;
  --type-caption-weight:      400;
  --type-caption-tracking:    0;


  /* ─── Emphasis Weight ─── */
  --type-body-emphasis:       500;   /* <strong> in body text */
  --type-label-caps-tracking: 0.08em; /* uppercase treatment */
}


/* ═══════════════════════════════════════════════════════════════
   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-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-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);
}

/* 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-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-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-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);
}

/* Body */
.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);
}

/* Label */
.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-caption {
  font-family: var(--type-caption-font);
  font-size: var(--type-caption-size);
  line-height: var(--type-caption-lh);
  font-weight: var(--type-caption-weight);
  letter-spacing: var(--type-caption-tracking);
}

/* 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.

   13 steps · Base-4 scale with half-steps for fine control
   Scale: 2–4–8–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-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 intentionally binary — sharp or full, nothing in between.

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


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

:root {

  /* ─── Border Radius ───
     Two values only. Sharp is the default. Full is the exception.
  */

  --radius-none: 0;
  --radius-full: 9999px;


  /* ─── Elevation / Shadows ───
     Warm-tinted shadows using warm charcoal (not pure black).
     Shadow colour matches the palette temperature.
     5 levels: xs → xl.
  */

  --shadow-xs:  0 1px 2px  hsl(30 20% 15% / 0.06);
  --shadow-sm:  0 1px 3px  hsl(30 20% 15% / 0.08),
                0 1px 2px  hsl(30 20% 15% / 0.04);
  --shadow-md:  0 4px 8px  hsl(30 20% 15% / 0.08),
                0 2px 4px  hsl(30 20% 15% / 0.04);
  --shadow-lg:  0 8px 24px hsl(30 20% 15% / 0.10),
                0 4px 8px  hsl(30 20% 15% / 0.04);
  --shadow-xl:  0 16px 48px hsl(30 20% 15% / 0.12),
                0 8px 16px  hsl(30 20% 15% / 0.04);


  /* ─── Overlays / Scrims ───
     Warm charcoal base for modals, drawers, tooltips.
  */

  --overlay-light:  hsl(30 20% 15% / 0.20);
  --overlay-medium: hsl(30 20% 15% / 0.40);
  --overlay-heavy:  hsl(30 20% 15% / 0.60);


  /* ─── 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:  #5492F1;  /* info-600 */
  --focus-width:  2px;
  --focus-offset: 2px;


  /* Hover state — see colour-tokens.css for --bg-{accent}-hover (filled accents)
     and --bg-secondary / --bg-tertiary (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;
}


/* ═══════════════════════════════════════════════════════════════
   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 ─── */

  --shadow-xs:  inset 0 1px 0 hsl(0 0% 100% / 0.04),
                0 1px 2px hsl(0 0% 0% / 0.20);
  --shadow-sm:  inset 0 1px 0 hsl(0 0% 100% / 0.06),
                0 2px 8px hsl(0 0% 0% / 0.24);
  --shadow-md:  inset 0 1px 0 hsl(0 0% 100% / 0.06),
                0 4px 16px hsl(0 0% 0% / 0.32);
  --shadow-lg:  inset 0 1px 0 hsl(0 0% 100% / 0.08),
                0 8px 32px hsl(0 0% 0% / 0.36);
  --shadow-xl:  inset 0 1px 0 hsl(0 0% 100% / 0.08),
                0 16px 48px hsl(0 0% 0% / 0.44);


  /* ─── Overlays / Scrims ─── */

  --overlay-light:  hsl(30 20% 8% / 0.40);
  --overlay-medium: hsl(30 20% 8% / 0.60);
  --overlay-heavy:  hsl(30 20% 8% / 0.75);
}

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

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

   4 durations · 4 easing curves
   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 */
}

/* ─── 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(--neutral-400) 1px,
    transparent 1px
  );
  background-size: 16px 16px;
}

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

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

/* ─── Crosshatch ─── */

.pattern-crosshatch::before {
  background-image:
    repeating-linear-gradient(
      45deg,
      transparent,
      transparent 7px,
      var(--neutral-400) 7px,
      var(--neutral-400) 8px
    ),
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 7px,
      var(--neutral-400) 7px,
      var(--neutral-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(--neutral-400) 11px,
    var(--neutral-400) 12px
  );
}

.pattern-sparse.pattern-crosshatch::before {
  background-image:
    repeating-linear-gradient(
      45deg,
      transparent,
      transparent 11px,
      var(--neutral-400) 11px,
      var(--neutral-400) 12px
    ),
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 11px,
      var(--neutral-400) 11px,
      var(--neutral-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(--neutral-400) 4px,
    var(--neutral-400) 5px
  );
}

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


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

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

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

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


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

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

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

/* ─── 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(--bg-primary);
  color: var(--text-primary);
  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);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

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

@font-face {
  font-family: 'Athletics';
  src: local('Athletics-Regular'), local('Athletics'),
       url('data:font/woff2;base64,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') 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,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') 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,d09GMgABAAAAAHNgABMAAAABSpgAAHG6AAEAAAAAciQAAAE8AAADNAAAAAAAAAAAG4GPCByUdBSDXwZgFotgAIpeCE4JgmEREAqC0GSCqjoSv2gBNgIkA45sC4c4AAQgBYx+B5kzDIF6W2oykQTl7e41KRaw9GbVX4zA9z9+DdtlD3pu8JhkqhVdwzzrA/RmJWUb+DXP/v/////PTCoyZpOOtBtDmAdFhZuYTCFQQEBkQq1QEwJCAUKhWsw96vKwsL7ixjJBOCb3DLLZn+12dMhhOwkLpnKDx8JeTzzsbeE6neK7v9rRnXWCny8LPiYjOHnz5mQSkr+8WTxdSd8fkfRXv4pUUp21SHVXZ6JInUTSEBeJZC/8nR9bsbJq8sRfQBI5V7rz1zXZGX8o/yK64Y1CRZm0YYHC0PEMmmIjLFgXCRDPsHFXu8bT/g9I2PKCBmt2TJh9HR9E7l97s3bjCX1WsSy2fIP1Ri/NUxv2YHOjqQl+dzHdZLVMEvKo9EVueC/np+VtzTOYij8ExGNzUpVo0cY4YsW1nl/T8yQX8V/n9uzOA4GUUgjwR2YfT3P283aTTbIRIouHkPiSBEJCCBZokKBaqo7oOX4tUDFKxaCm1Kkhdia0KZxSOTXaf+19BmhuRW8GLTVqQeSCRbH17ba+ZTJg5EaIIFIGYAIGCka/fmD9++8b//gqvPJGfRsf6fsl2k5GWte/eksCmK7h208HxnHXAgm1S4PcO2Ev4ZDzO/VA4Q0D58SX/iC+qnw0V4A3yP2nZur/M+DyHmid5FzrKafWr3VgKLJ20SrCMukFrnC1lNralsE5HQhtfmE6IkwZAwMemte7xw81D2wHDqJvf5SkEdvlE7Agaz2sXF7uRZ/Dr8cVDocf9cgsBn8ztQbAoLv7DsYYATdWY6jyvAYzU1t+DkitXC7iAduiCpeh3/BC3mFz1gRMRS7/u5k3A7tDKIQhcCexfbVj2r4fCPBLSMi6ZVVVhpa54KFhIP2qtFZdpMM5AHz3LKRMM9ouChv7QFDRKlOxySSS+Dn/LYwhbRnO//ZPV4oUCYQQrLIndiaowh3xwNjlx2l9PklPpVqWbbnPeErb7bd7bf9d0gm8BlADKAHoAE5pKIAGNcIOsLQZlmvwFIzXRQW7yAJ2WYo666f/P7VPJJ4eSnO5QpM47KTPhsza7lw0nYsmFY2rmtPz/5tqb/suQFADSP8fAFxtqEw6Uo7SsU9P59Cl0H318+574Jv3HgYEMBQFzJCSAFI2AShQJNcLSPrHmCG1ZwRtJJ1SALmJwYHkrnJHR23lkKuQUhVSlVvn0p3duXXVpdB2rju7Mg9fZ3ImQK83aKf03bKWA6QLGMyE6nycFCyXyqXWf1KzLH0PBfSAPTsSC9yVixQaG4REk9RZE8WNX2gWugpoUg32mga5hma8HHdHxg7Q5IhsUsa47GyQSdk5E8UXJBdHuuMhujd1Ji8Vz8ZwQWN2Sz8/vWIr1kCieGe5mprU+logKwnNhNF49+yVempnmYcB5Nrq/K2yEMS1hxwh51GIrIv4KkBto4tfT3Ecy+XSpDrt6st+lb6yhtD+py08Bpvm5LF1ae4srbEKqMwUFhgaZhiYEByIYJsVy4RuhzylUDPeaGyeVOvyVqtoHVTz017V7ZSEzh6ndUAM4vEfd6Oyjfb+2T7fbB9Z5qyISJAQggQRKy5rWSZQwB4XDUgVNcbId76zB2Rmq63eA+UAEHHL8kH2NNn/7099z5U8ll6yCY7ByCC0EEiMOJi32++w2r+x9Q0/4zqNQkFQ6gXs3i3DWWLS29lPKrRFEjSB8i/R9EBJOhbtVocylt0zbyNktKw8iHPSDaIu7Lm6GGVqVF+4RvxbjYBTafEt7CY3S88HwWMeWF0KUgzAnhngSIl5w3s55WC8cTtfDrbbNtLl4LhTVoYcUu+SmyaH/LAJhP22H8PZjyP3M3D3M/F+IBP4BA9+QlU5FL4c5kcvryyFecXsAIEO5ejWuMI+RmJiksHwbQbHCuHA8OA8UH3jZwiTjanGa/wdcZRWjytod91lNOaeQF8nYi++LGUwYJAnK6GSMYC3j66AgI7PusZu79X1b9OO74zGXXLOeesPoCHCA0TtJVY4W4w/UB2Zqs9jn823OltjlmI7xlZzsq287mq3rzX5qWfTVtmY4dvmAgPNfkuPjVGicWrGbLuVrvddL6bN21vNwYJnptb5J08Snm+KqVY7ZqjxlR8a2bJJbmy4xXhRGS82DUTG9aujre54GQ2kJXmP07K6pXa97OD1dzJ8GD0GPyUGx80M7jsEKRbN62w6JhwhrMRs7CgxYvmKl83fnCLQvBhksSVM1jEr7SwM5xDtiNQpyj52B+5FO+KYGKecFuts6eJFkBP0ItmtcYq7+qQKInSkz/Wruf723Fr/8V9VgAaqYyC5lwoopaPIGXYVHVtn20vZ365yoMPlYLdVfB2HMM1DWUOmJGTZHsq7MWi2Sd8lsxhtL8DealS6+3awDiVwJ0Z8Z9mlS65LAKt8gpbUv0GQXBcrlW5zYH8I4462JGqlUW1AIdKNpNudTIYmSSfLlhJxl95jljRoov+afkcLimWrEINV2YIrKLst9+XUsZRmz2hXocN7iQ/J2kPpciJB+94jCLeHobeyYpxtFOyl0shpG0pbM6JWcEglNamabdOKh163Ydb0z4VTSVYC6kAIRbFNtJF5UreISNCbtC28FZuUyVJ0a5aZtHYW+6aVbOiBsiyqXcnutJPt2o8K0gQKOzRS7TsUpZ7bzh4BNTZhh+HwCH/D8rWNAuQP+UEqJS6wMmXuNCJLo8ObIbGBR6Gs260M+ArozqjUDTT9dtADHUcZaDphuRjhNEodmiCMt7oMwhXBbTS0bzWKghwFTmgj004WETVSrWUHQAG1RxbD2dUUQqvzYR3d05FA1VJ35dZACCIiLkC5uSRMGzIgx0gvYp6aZ/VaHzTk1teYvvcstlbL2Ta6wUou0GAyATzmMjqsgo2w5JsnVIl5QlIUT1LGDZWBLEqVSbMlFzRYTJbEB4AGFjjgtUAmnPIu3BKxKI6oQZcCqjIFRh1UASOnzEfTwwS+DRDStzXs7oABnr9WW7rZwDZsdPnX4f2Ah5zJZF0+eAy7qo+/SdxPep0ZzZ8k381qUI0OYv4HgAx1MlROpEDzZnYuyP37D+pnnxblqJq5OJB5iFCaIskaTgo48b/yuI+Ye2/vLS3bCb8C7SiOv7LV+dY6UrpfdMTfYXT/t/04Id+vT8z+bswWiJt4aRbcX8mU5t4jEpFA8WLtFFbvfALlU7vrOaei5GPlo4jKGZpCX7sHWcSJXD6Cd5IDEjzVqAAT3aYVvgrFk8sXt0D4BKrXKWT5fRXD7usF05br1O74C8h+ZbhqfUbOE2CGbvjp5DFmmo+ruOIUCEyzoDoVSmLpD57lCKw3GjVPYfmEYo2/FPiNI/La6/PzL/rsG1tJT3by+oeTnVsYkyIibtQswLhIHgd2amMrEvdJlGS8lTG76mjPxifJnEQJ74txcuYG6fjsMqAsnREmycYNoRUBtmFcKLBYY1iMfXZGAc4y1aA9M5E1ezueAKHjySPlg8wNsI4aN5Zm52I05d7VrHsaglRVpIBy+4rxcSF9IVq7RS/MoLpSa9PcdQe9ZAXGc44Yz/yQius3fHgFzEiBwQNy8ESCHemOA0xQR7RhYqQNSXTsZ4mE8EKroTwsXOOvAan6cGHkLWAIHwLseUSpFKGLN3XhTbKU+GBFzEYpAzUWUylW8OUa5CuFio0dhJUBC5A8bXE6vupFuXvAkO1YAZWKy+6JTEQsX/yWpacf5h5Kyj3Wq0jgS3ImrSUHqHs4vPzFwb9XnCRPaH8zUGnDYHTx/Nw368ydJo+DrOap92uP3fNIrDUwd3qGec82ryTUIz2KyoJjP5eju6cbhL9GNooy2h1S7OifBeVOAsyfWrbrnv+DoA2n9q4qPOC0OeBCmzVb65Qg3L009Y7tUTtvhqFO8r4dhbrZg0GCWntb6t+iPEKOF3xF4Lfd6C0/eyIQml07XbWKldrCdG3k+Qyxl1GzknnAQYiqcV+rdYxmt6KXquGIdZYuMPE49ERqiiVfQPx+9clQBRsz4PC6AxkHprb7/gLPhJFGMjp+aCCFcrSMJt3wk7cqLFm9qSdYGzoEzh/FTosQziaDM07bfu0pHbTaHNA5W3SVexLmZFjImZA9uo0nNPcchgBz/l+dD3JZJIHW8FYLA6jvOhma4Tihz0oxkyRM7yum5t1I+oSFrrkqDJ4VEoibRYGNWKczA9LKEPDDjHvqaUqUtntR/NnLzsz+ON1/6t7n+3Hyv0vQKz0j4zBiIoHT4CNeepnNo+Lw+gRJSoZLzkzAJpqcQxyaUw6DAgXCFSkWYa557BYUMRa/MstSFRxqvCzLq9bLs1GHRfYVaxzq1v7G9tfWOemMUudcUKnHXTUGDGo27F1v+sg9m33tTzv9awbeHwMFOJ+hUuNZKzdRdEyf5cjhi+Jz+rKkckyV11I/tbntXjTa3hDaDxY6iI0O46AT25UC2DiTmhDHQrMlcOCkSC5wGgH86BRIwFnY3YGzUXoC54jR3r7gPAg/0TIGf+ACWAp2pSiVYLUoDQ+tRB0RzTuAl56bgcDIPRAVhGfqhcHmydASCq4Gdhi/cOCaZJFUUZLsUHT0j5kFbkAeSxEXlfEJ4KZUibCkuSq5SKFOpUmjTcfIoMvEzEJnC8iJBlFuPkjCJwTi6WORicAUSMmSCymArMWIahFIJbztQabLvg3BikgEMRa7WtwaqWulreM7iS8lXSSUc4bbVNwzqFQNPFUtPy8VMi9L8grwLCqvRa3XNdJrek+gZutZbNAOvNhGETbZJtJ2HdLsshcIMSbtdxBocWhyWDfwLklyNKoccwJ4P4tTIp0mcQbfWeAjrM6zuSDKxQg+4RI/l6lckeRqtLjmumA3zNLL4aZZbnG4ze6OBHcjrU8/8A1Wg2yGgG/HYCNGxRjj5y1J3q4e3vHu9Pd8CPzAJ1Q+dY/WfV8BfyCqTHnEz+MqFZ/4jsz3fpjyo18l+c2f/P3lf8B/Q+75Nyu8MAMXKggtgA6IBaqiEAnJcZEA1C1EYpriS6YtpXS6EGWgyyxLQNkh6UOFYgldnsDyy5eSvgLglrGlsvDAMOOIiNGBZ/bhVXgDukHKii0u/c9JfYIS//vmpYpMXIbYMssRV265oDtXILXC5kprXgvFt6jFElrSUs6WtQn00jYLbW1bhLWurUJb3zZhbWg7z4bbCXpNHcxtbBdune1hbqy9jG1tH/BbehjvgLd2sN5eoz4ErgtPXR0HxluT6Ht+eBjh1gFIohTOE8okIpZN4kkOasrobiAq/dNnPLdAyEkF8+NPBpyfhlwkRanEpSKmxqURREtNJwktXIAweqEM0hilCmQTJJmpS/Fe4VlYm6vCyMYsDPgv035JXNmB8VoisMFyCIAA/OBUaDIWjBQ95gJ39p1Gvt+wsuhqLtJpPLCjqGtSaNGFzmIUBQchgbSC1UqkVThW41nD3Vp86wQqIVAqRBk35VGoQiXwZGLvNKr9hhnEYDYEVbC6kQpxkC0/9XlgfCtiUvt+mENXDbUEFjLSB0j4tNxgdiOQxKQoUhQlt5ZB0voQA0wQzMFmiFD15aSQawvAhJK4+hV4rCUCG9yFAPzgVGQYKfqNwkpTKdJRwZ4u98GyL7PogaqwqFqg6xRdjFJUzCecZsV5jPHCQeK0PO74BNxCOFWJyDNDXitaJb/VZblqr2kNe77W7ZJKRFdfxVXSvqqqrppaTTW7tlqzautljB9f6VUFvUZJ6PXi7I17idVZkTdf3nxbEy8GXoACUACKNuCrugNdB32ekltvie1myehWye12yepOievuDPH19Qnox6VkNl5yute9cZ+Snatk9OCkPGeV4Fn/f/YrRvotcFfQpk/uvYSSPOxmq7bNOVId7fbpeWFAcFiMc+XVGuMIPaUqvTl8VmL76nBS5OWnNlgiHEnV1TG4Ym+ZxhgSGZtcXR2TJ/Hx1wZao+JSqgbBp7y/ui4o1B6fmla46L0N4EjvMD+ktKwEvdv+n1C8sdHHh/0xq1cuRr+/w4al69CLodOH+8XjWkoqMewwlz1pWSnGPuxVjyxdgQne1U8tr8Kow/yUa00J5oNFtt7YmPIVAHEHYeN0MHjJHiAke6HJVoNPwG0H7d2LoihERVEqKgZJY3jwBFP4e9cumxL7ru5HCFwNj0oGmeSuGMOq1V9KrypjVY329mHEoq/+/l841PT3Ma/wk0eYsI7WkYXnfxLBCDASIHHKCiCMeEiUvHwEcHZWhV62Ry+Xv4upKEGLerltnehOH/ek6YnCvCZviMOD4x6ePFRGDfkBwPrMNBhwD0PgDBb7AZKHLqg0BRnBXWhA0bEBUwbjPgDOYRGq1AX5Nk7ZJHeIw3SJMe+PfVCjSm7It3HJZNGPHZRMfz+s9TNUMkK+jUOKpdCn2ElMPUasXqh4BnnBXDAl5LqwY4o2zlytUPE25NsY5WU+W4kdlykuY82DigOQb2OSraxKxoO0AstY1oJqCFczyCVXS2kcS84+b2wJZUOyY6WD8QBucPCQ4Ke2g1YCO8Tnnk15A+Bc0IAGAWx2Uzh1GaowLoj6md8DGyr6uvY6vGevK2eRxgKMPoMrY+RUDGa3YHmPyBkpoj2wrAHyafQMq2pY3gHy8T7FLhOWV0s+gTM4aWF5meQTbkB6AWG1e4f2vWpEDJUJyueGAfRdDH2ttyAMzBrA7TIJRco2zyoMJDEfSgK4vgb61Osb5NY31L0XH4MhCIgosfvYltjjzPgedtFyD4Bpmysm6cNum9sYJOta7okQM0KRfpyQEFkvgLrRXTgTlAIV8/EQRNOcFve7L+p6493rfq4etIXv19aWwD10u389YHyQ3SAkIe5kN7vV7e50FwbRMoE21YlPe7NFyv9wxhhJGmtfnW3vcPvb0YEOtrND7Wpr29rdnja3pQ6IhIw/FQ2bHLnyVKhUZZ9zzrvmugGDhiX/UUoTtauJTna6M53tXOe70MV6utSRjnas43VBRHz40tKhBdAzMAoUxGS3PY45q7+ZEOqoCYer85D7OtnJ1Ae71Kb9h0vCOtEpCEbbgSaUFXt4/U3CtHOE53F90qS4+lwb1fgZb7vJ+upvoMGGGm6k0cZ6CwaDw0F1+Mx6tkLMrnely13tGoQJp6T+5bcK/ab7faLsG/vWJ5GN8MoXmGFoo8ZYlFfwRaa/i/aMRDCSeHHiW0gdirTh4qpD32MwizM+Rbo3368g1A1EnTZY0A4zPLmwX/JhYt4cURdUKjP1JjZis7vvc/1jIyQIdQqbH2N0hpQSQUsRCYUoIYI5RIF6iwgGpRtZ9O86t4oTzEFeC6BGfgnVSQckygshW7ivZLFOu++v4+1rEvEhnxNdED7m1mOCedHMBm69usrux1YxmFMzcRzDCAwHcKxlDOPAKuwKOMC/f3v9uDlg/bWnF9jBqwH9x8wAF8CDQIFsAjzPTvHmcQqcfeL0tplNIveBayspaaNoZ2I2lh3H8194OwgikEQo7QzbSJ6C0dVIa0tLL4ZuGnbTYf8/laVq1tBS09Gi6SZg69FNBgFjFMggSOCvSVBj8BvMTP8W5voQVhahQthYGRUBMBAODbFJWB2FQCM/5rUsCofGY7aAqxHxJMLIFBKVPBqdcsZ7qs1UWam0C4c5Lo/F5wi4E4p4YoFEKBXJxHLJV7yilO5KVl7LNQqtcneqsl5t0Bi1Jt2e9aWLwWq0mfZuLjksTqvL5rbvx1H8On1cvu798xT9vSMWgQJgwI2DCgkwEoKCbhpWwMCxCBwSjzqhl3yxkLBk3CkkTy00Ip3EIJ9JklZh0zj0f5eR8PhMAUvIPnMmE+mdKtIoGbHLkl65Ii+pIHVF0rNUlGVV5FTlr0Z61IuGkqbytUj3dtFR01Wf3u5rdBtoGmoZae+xTteJrqmemb65wS1y6bIsVsbWJrchkW2xM7e3cLC8IwmfirMNYHs0CTEF6zAc3vGEdIJiIQFk9CmkQC00HB3PIJxJ8q3CJnMo55I8r/DppYDMQyQXF4Tjwr0rybmVuXsI9hPMfkHesA/i63K/kWQJ8YsAFiIXkYy4SHApISMvJ+lFUQpUwqtJWlO0Ep1UL/uGp45yk8KsuoWkrMWmtesc+jtJylXcE/ETj1S4WtXzQMbyLmuN2t/aGSscuAMHJiFwWnJ1mrU56rizelzVmzmgunY08zr3kObifHm+5bK/5Jb7yGVypVwrj5QnUDm9Qm3ycwqlIp8XJMTTw3vGyVIKTdCVOunCgdfdyhqYejHJ612YifN1y/6US+4ll8rlJRrRV00N+/N4bvf2uB/uabA3AIK+qq296WUc+eO7Btf/gnsb7r36MOlhwsPkKcn3b0zVT73yFUb2QWHfonOjt5EP3M2ckisH/bwvQH/sUT83Dconsee9NoFXc89M7KIzfuiO9up2yHHnHKxOp/2GGenm57kREDmtx9vGXILi4Yh81+m3IOf/brznfR/4+uJJ7+drhzJq+X2+tE6vwWJwBDzRhkQhU2kMOpNlYHM5PAHf3VYkFEt0+w9/OktpKoVHqTxJ49t0vov2TVrfF+CH9H4pyI8Z/FygXzP5KaPfw/qtYH+G90c4f1furwj+F9XTyP6J6FkU0+77N7rnlBp5cYD/x/afnHFVD4zu/9eHIWcIJYSjxAiUEgMlxUTJrrgaG6VFoow4KD0uyoyPsuOhLExEotQJg3JDuXllyj19krR5ZoxKl0eGfLLkl93d/HMmz4WH73HqIlFqApSTOA2Xr0yY9JkvPfBFvlnzzpw0W7IcbrplxA29Ru0yZB9iSAACecLPYxjMokUijcWTF5HW8CXlFzNpOVn2iauoaaIc9Pi15R9jQ+jqRxPB4AgkCk1sUTfAE4gNmUKl65/aYLLYHC4vHnviSCyRyuSKDA+oU61ODk5PtPpzWW12h9Pl9nh9IjlBI2k3cQJpZxQag8XhCUQSmaKLFLQhUjbHdKZLBUK8mFAoI2soqkgiUXe8qkYbHWl5ouATdodEavQNDL9KjYQwsvSmonQRXuh1nImLhss39yQUOgNUEMaeeHqcJ5A/nkIlsrnhadvo3FDIMzfar4D7IxgZ10j+2bt7eHpFm4iMgUmoSA7J0i1X0oYkDshTzKmEiYEMOM3+4/UUb9px5l28mULqQ2ZFLgWygxVyK9iVLR9Fa/WnM2rZ6IfAbVMPyEiUO2ShizxgRiA9e8CNlIfV5NviKBm5SVmbY/K0X6wRaDy6atuv2Zg8IEBHDteP7wrDodbx9EY15YEhQgXDnUOc0TG1Omb2bf5eTGPlP4prm9IStFkLjqxazJTDN02JRXb8sKoHwrws798OEUPB2iX0tmRzFx1XXGSPQU0feNlhNLg7llEpGTDwPX8IlinHy7CanK8bmtSi4eMsPLwN/a5a7/9hWQ8cY6UjuazFrB6mgODYSELMfZ8e0G8A63Ogp4CznQngvNcDONWDwPE24FZ/DyQA7dV0lss21IHCPP7L+XIEFzGP2AEO41uPjR8GXHgRe1yUYPRCPiIW5899L+xAQGGCqRPgGwOuP8ErHJAo920YxRbIT1COY8MsYPZFJqMGCojLFrihc37h6aCM8ubjaLfrHFeQcQhuQJBG4dkILS73rZAGNy9bkOC0ulrxFxByXiuce92AmzkBvJIwtXPYlY30zuvSLw5dwK424V6piQlNizMYQuFAov+urpeLZeve2c653klEOeCHXmGh9aC1M4vD6ER0zlmdUtBnlVR0xihUEnGxpR9K38hu9jUiRoe72rnSlz6du1pFV5sDHofK4dOTc26U96+1C7fOBZ3coCL7OqwzplssOof30qIcmEInnoeUeiMdogO03ruq+liWQ4DfJreItRzR+6XGtv9RXJ9fbO9v5YSI7YDRLT9ank/GmbcLrUWUcsDgDo2KSnuloGKMc5+at8z25XF+dhSz5R3tEL1A3DfkNHKojXoaKpRKoUDawifl8RMePBBoN0T9GARVj2FH8IBAIV/0d4KHWfN0D+U9spNVkDym1RAzo2Pw0DmD8ciep3rPB50y5xMmEnIieHSQNx3xvq/lY8P9MIPaTZHcbQpxGKxTb2luayGCIKQcOO9oOBDYYVPuHzbYTfN2huYvewjSokvIntGxTc33Fva7o/xrdlb5IvD5I90cpTvF4mpWdHTTeam7wKcXJv5852OJ1Oa9VK0FswTKGgONA1N4uL3Hcy9d4hjIdLLxTS2kAl3glM8iZq9YGNBdVsocJXgON83l5oe/3nrsRJ3B6zqfn2SWpHRr07zhgbB3wfYJPATQhV/p4SXt5AvSL4r3GPmry6vQ5G3i4DMwv8aW5gpLPc9ncymdwRIFy2qUIUuSi0aHOefpngxLMlaKN7vEFmNn3VaVGEUTVayAdGDgNNKY+OES3MdaEd7a1NqBmRsOBmiip/OHznTWu7dESvWy+nSvr1j/GOeg3gTORxC+ictc8rigqV1zIq3sxjSmJYgylsi9DgESLMHbIJWoB8z59IcQcp9WRBrL7OKwvI/Nf0z7x+QftvUb9kl96eRpGJlJFXq9Z9EKuA2U8i9z3Mni21TQOP82maDpulrj86afjLV4moz+LuLF+6G8jdkjEyxkTPTO/EXN0dn/2+O2/hXdJUuXgec4+nkh6z3jvSCNHBo6ZPFNutEoTHE6PkebInc8h/FzQsNjZeYG64c9VlNEXR4QTCsShXGMSJE4grmsSiEyzNqTmkH6DlRZdLMsA9joXfoNyzpRVvURNp3Er1dzYxSFDOK7VrGGYF7ZzzGzGQpb5Ao4GMJNdYY3LmJtBDHhePXxb0rOSz+pIPsta7MUT3pl8nUCvWJn5fFhcxTFp4uoje/u83SRv57nPI8lH5mLnxBGOpLorqKwXDGOSRvjoOmVEdZg2DsP3uEiQ10wL5nVBnaTOUveJQf4sqJNpA0CCnazupf3jLkLyhClZ4LUVZHGzf09xHisCp+49i1vT/uod41XyZy0jWNrOd91M/NT8q0iCNvL7YXP+WcDB2eQqkIHR9/g4QsKl52aiQcSWYmKeRqDQ9v6Azmhkp2u1edOoWiqdKE30hwNafUXn0TNQZSjtzPvyxxfsOHKQji+V1dh6T2Xu/uuWrczeBjBkEELX5DWniZPNw4QNm0dCLf/rU55m6yeA2L9jSrMPsfQfmBeG1IMaeMOslJOWIBA1Oo8T2pVz5Ovl04aT9nE3AcSc+Vh55EX1s1JdMyW2SreTEUE1jNd1CBVv2AX5SA7O3fqUKZMzvNyJAMjM0ytzuBlznNvstEqzaojLaG2XFe7AFPQ90Hac/xDkPQgJP31OUO2m7vq5ZiLWKtM6iMaWCjnoQvK17qoHxvR6Zd8r3bInVno1uJR2fWD0thrS2ucPfdu4d6OBki9AA+MvypVrQn1rVtf3LT/mexk52mXLoILequPujvlY2tTP6T5fljEtHATG5xxp3x0G+WAG6O4P3XPeMpPmo8DezFq2B+gj2UlRn3GimooF83RbV7RbS9UFGwXQOHp1QUYhOudOHun2SNCTg3YtsZ9j04y2v/p5cl2R/XyDHZ0N93pql8YgwLZj40fYFfmcBd2o/Ht2APTa4dOEs35+Mfr0Cpe+VNbkcmGTwBAx84EaSqKDA1tYnT6X/zxW4amzcnGx47FHwgk79bOwEJjqfKRQmCZ0NNAGwffQOmgPCJSLNijdDIVr9sN3nY66y7w393Ozfjz3bdo/bQRql/D617PhDdeRYoR8TFbAH82BVLvMeFa74KWV2Cd3GvxfFhsqeiwU+RDcLr4gz7ogEUaky9xLY7kgs/eNKUx6ZuJXc5Au1zo6+Bn3+x7LUy1MpOX8btz/FunfJeefdWb7HNWQ1e+ps/3TzX12YtaEPm85c9nBj4B+38gXK3Zk5X3yrPQqiCDrSrfu7NxBZaZrNVNE6Q6PXl+hSUTB+9Hj1gZs1DvoHtbhBmOwv9pkaow2WMr308l5oQn8gDl4963Tw8bU0EfLayOKbj8cNKfwb+hruUrOsryyeZ23CXTQRzKx4qFf80lvHQd5NLnHPoDLeiQqTUszypUm1yULL4RLKo5RUszjqMPrQlOs0SPIZ/0RPgFUaobHKFvG69btAjV42YBrzPT031sCSQ5iatUPQ27VY3fjAMiz7TUzhOXkd7w1eivbImmTWzhiw0m35DFPKZoMVbz9oJ3+TAQylZ2hIaxR7Gj9xuZw5NKieNFAZvfUNLbPIQMPmHXDX0kUaXEKhuSLPOxcDi9dDJ0f3TKx9avQATGi64kUspQplKAM/byCYGtAm++pEZhAtJXRho6TOASuM+IThWhKwvqEBMPgZrHBelFpns2js5penPGwifY/G12axvZmpyIrsJCOxhj6bM0XGcSU5S9QMPRx7IgfImB79GMGm515YTmpCwlVP3uJza878WY79J5B+7bfrlyXQbZGD5ikr7SDXMu8f6nNCUHpy8ftz2p6IMrhgu6wjdhrAcrbE+aBmdTJfGY/R8Vx3jMXEUE9NPZsK23YMcP6E+D77xnyplUcDQ6suV9j4+dlns+9Yq+CoXx7Cfk9rxz6fDtQyZe2zNOOntOJXVDUyi0aDVzcG8OfOwmu9Cw3N3uENQRzKw+ECSwyLD1CNFmjcJGJpvaHS9MS99mvLbQEaL7CIeuIA7vLN6YGpaxwbtfVHy7BPldgpQ8uG8b2iiB8uNB9w9/ZJrs8FbcDg/PYAQXzgznEdJH79ueRmtOnA7q/rpDB6pOB6e9MAlOERxgItEZ3MRrI9uaFqaGKdS9iwamGzpc+hb95FXY2w0d9wWpuXMdLDjHN4TDpCWO16ccR/z4o852aGDaDmGUElxHZ9niTLFher2jI4kPQTeD2cHx4KNSv/q4ZDunzaQDXC5hWR3S6Ac5/T3olaVF8aMFFm2mGLb97/Oqj8s07zsRmEXYzhB9v2X4WM60i1Gin++CBwkUHrr0E1CvOembF7yw1nLptZOH4up/UgcP4s2lPvReJty047wB9cmPk+ELS94XZ4OlXkqH7ZkcO/FJkAsyXTk9t+hw6PbfGr7rURO8cnlSE6x2eZ25OngQ6TafOuQdRCaOmwZvusplsACj1Wbm3RZNsIUlgGIOE8O5+50B+fX73feJFhxhTYOZsPAkYli8aV8jsGL4WrEN1bbl5XCNXO8ZsH0x6s7Q/r7FfriBNOWKLRgrWIoioNggm0KgNMfe+2hanLdxS1pxfOk+8Shi6aKU3dlD4n1hDABgki/GGXQz/8dURLuN+CU371dE2m+5mC9fXSvQaHCNa0gb7ke53YtdSCFQZsFZFAGVXDBWEOv6oRrMH30rDc8QMegMEJ9ycO8G8cMU4MOXWAYIMOgSkEbjC6mLPmG+kSauLxlOeQm2Rn0n2ZP+FBWNepqe/hyDefFmAh8icBFWQQ4nQeAkUKB4ga3O213XfnxMM6NZcay9p/4ddOoRtYovFKr4aoEKTjIQzTBoGOLQDSSKq3O4pWXpBv8VoapSv0Cv8goBtc9oUvuqYqO6+jb5fH3r21r611Ujf9Fuw3JObyj5tTN3xeHyCPeOhzhD+jN+klAqO/1II4K8JjNUJRKpqsxGqKpKWhDNi4aVjj46fvzEiTdHyL//yDK/C3hW2A3cLpCnceFGLVr2QRr3IB1cfHfh784Fj+Pv1tXWEblXGPNidcdiK/omfe47ufzS0xNAoaX9ww70pu5D/RMRNj7qnO6d7nvnapITG3dCNaXu8VeGu+me2qgVVeFmhU0vAaNgKcZYjUmiXdroDrXS7faoBkcUJHcK6BdD9s0ON3zyBVbFn9/8lBsq51f14S6y4aMgYCgFlx5uZpvNHE402Fz0tje4aeaScPrSWO5Afn57Xv6qgvwBzX6ZsC0LFiwWmDZxgvOWCLD4m2B+wYDvvE8ift5SxK3sr9VWCEy64u/R0nxJjVMNOQ0iKqgxF585259u5IplhS0Vr2LLPi/LhB/KQE4U5489+JKsF7PLzdmsO7e42QTuyfEr9thC6mFKjeqO1KVUOJU36+tUt+S5SeZT3kr5muJ2tJi1uczX1fNUMhWmamuI9+QrqCs68pOW5kuqr4t9Yt8DSfV4cZJbWs978JD38HHL2OGgMlHXxQZBDr7AWFLo+zdRlAi7WufWTOj1KRNcEmW8Er5s/PLevbG8rHtbJttmbLZUjg8OwiCLxbttaOg/iKR3MZuoWlXp1+VXtIV5tyo7WowlORLu651aUiWXL0OtBX7LFVYt75BUcTmqEqZYxOfp9GECZXhlX7dps++ZwsIxrgo0+odaIz3qML5VIZMZRGwGxANkAjEXYNEZUoAn1GtC+coIT2+Hr6qzyVAh1DW3Tzs+GeOPnVefdwocQVUCr/Luz1K9TYqV5bdIc/uHRepFv3fpMCW+FatqfKtWNdatbo/0aML4VgiU6O1K2RprzTuj8axauaiqb2V1/aqB+vaNU7sOTtzstLV74Ub5FZD+eK/E4gRBk0MqM9rEoMUuPdq9RfSE0bqugRR83hj8bhWvEIox9Pqqqrs1DFSGtmVGb6dZhpvaF3d5C21ca6aFoZOR6Wq+UKjhMehgml9kq3nJAxUOEFI7RKwKu1CjtgPCbJoZM8AM4cd3oXdJ7j9qV8bwu59xn71+xnkWWxZYiSj+UZFjkLcqO5qNZKpNxVh7NhNagJV9fLqAh2GKQZ5ApwsVqiIq+5b13qqrqZNKTgpx2dbGdLZiiafr8JY1O7+4tmtievIArSEhoSKpK5V17s+rJwzMiUOHJpjGvdc+Huns3GLJ27ijmI1C8xRmiad1rR6179RoSgGXPmw4VMgvocrcQQIc5j9hlF3Q4j/2WdOOUk3omuUZev9Fe4+3PW3mRXuP04xl6b9lx0iM5zr/PyxTMOl0OUMWTzoXMaTUcZlMA1/ftLq2Y2JgoGNHrcwGzheqY71rAw1rjl7et/fo52sa1gZiver5QhtoME+/Gj97fufOs+fHX71x3wc2tx+kHlyyajOpQgg8nHkArHnmEDmeMo9pZ6aBQLgSUFLb4BuuXt6394PPh/3rA/Fe7QK+SyJr7Nm+amDZjgZzc5UG/RbvlZsX2UrqBP0tFS1tN41c4W7DSQn5P0l5My77rPbKku61jd5lLSEuKFQgl5H2VyGg2voffXN/W18VkeLD34am3u7cC00/NwneB4X4VTPLvzaE3Hz3DOSvN0/XdFJCqNCMYqM9xKE2td7acOzy3r1HLw8PH83muNb6LQ2dE4MDndsbGpZuHxjsqgTbf1XtPMm0ohype6m0IxAkeEqWmMsHX4DyeEVCcVq1QdRpA2UjLAn+69WIMHVAhnk6qwDTIh7o3G44kpWtmYlv76mrlBhqwJipYsfJrNP2lA9VWiGfqwOURg2870BzRDUUAdbKbAo7wMTe5s5b6WOO0ZskhqFAXeuQO9oCDTo4UrFRRMM6hPOHpOY4rUFqWt/cuErbCwN8ALxsZPrA8MbxocFN24f3ad+uqwo4XV5//dvUEWfmtHGuKWSuSc/5zblTF7KryHFp2rTHGrJzgWmXNWT3Aq3vHfcj6u9US2rrm9zN5djLsZYXks7W3Dxt3sJdC79Th9xR2zTWad4pxlmgmHGa9x7A5+1Yc3kN6xvJN6ltvk8xGsvx/O9ryeL+FDQ3/dvxOf62OVnjZONk6XCLn+uH4b4nbSPUbYu5B+ElCS+seBZglLHZWrE2eheFIM1QcJNiRYSoRgPZPSbdz0gF1IShF3H1CnbxqgWsqLR2FZxsIpn0insQR6on3l6/qWTBfT3r2tp619dANQa4Qr77Jg5QVZtMqioAd3O3HK6oNuji4c6lG1paOoddFD1RyoHuKfQmEwlzBVD7TEa1DxCqvAK7V1YdGJEtBBvUirr+Ne6fq/7hKndgVUN2c4hGbRFhWSWtxgq5IhrIChYKlO7Kk6IKkZUrBXkLHuzidO9amF2OttRW1J70IpZKZAopKNYTKO4lg4HGziEn2UQ065XX6pa2Nlr84gUC9VvcPMYlgc4hS5bp7AIAcmu1kGfp4e/5MRoiRWN1G3kQTkAX0NiATpUI3dNN2qwea9h5aA6iHG8kamrpPPYGjuNcpPY7TC6EErK5whj3mT9YzHeVXaCv5h67vr3ZcPh7uKl7SGEITUxIchrIZLXeaeapcUA5j8TkGxSJ3RYIPDJToFcmQnMKc6aGNKR/kj+QDD1ZvavLCfke5kRb3zofwrqW9TUcEVRtMv2zYgJUjVWTvid6kb6lMEtNlPaqMDUzpWbFWxDM3HQFNPouCQTDsU2SJsc8rqZS9xSaU7S90PDFUXB7szpcrGCAeBqRVZKL2H1JHyuaz2ZR2NUapd4DRvCl5c8JuI/RGY1PXXHseRUcCqde2/iMEYcu57XuTxTwuHwSWAF2q7r7K5bj0dm6J0/mlKZMDZGsMbtnEEFIFdAqbhxK1HEsl55odu0N2XoM4mieqJvGQwLjis1PtIFNoU2bdMOfyamax0ObY6Y3TBvOhBz/y7n8ZP9J45G/PolYvLSjGXU6hTP9XLdja8imfdqZcI1TIrgHO3KJ1/O38cITRmE7ibWdWNydw+JDyXgOPuVw6k/lAaqdpch0pfyck5eUlJfzc4orU8GyUwPlP6UeBgI+iVgSL05m2nYKnoNn/pPk98ES1PEkDlZcFMd6GqiJroBMih0E/AZyg/Fv7ZzLwgkBHE4gxGc/nYw/YITj4xFt6YhV6eljb3cxr+f28qug/mZt7ivcoulkLDi2KPVaTLL5OSGpB779nW03jA6y28r3RYx7IFAdknbj+LJu3s/CXAu8bqjuQ1uTeQzy4LYdrxK7yG0vqC9aya1+qh/DFFMVMhpdLn0i9G4yI3ohGrMQjcpED/+2I07sBuAihwGMcFJdNnhgTV1dYK0NvpjaJopwGuEAMLHpsw2fbcodVAqrfl/zu7B6+KxwORANzCujmcH5hUwHR5jJ+S1T3dvhqVmyJNynCJPIVQKOUk6Lb1khdYCznA+LChbgkQbXoQAfm8XxqiFtlSJSKNZxsTjcWQzi7sFWvjCPIiFgbEIeMovjgVR6DxjJl/BZhXjsRG7GpS1tPGE+RYpH57J/8jSyY8zQ6pm0TJqtgbVuWvXNXrJUQiLhAJkkkZC6LLR1Caf9XW6TqftG5H8qEobX4F+zCVTl27yFukawdkWXL/b6Df5uf5zEbpQI7XoZmo8ksxkE3K9kjtQJ/av6t7FjVaWhxlxDfORc3u9w9Pe5XP3ZHGdmOXVNfrUaR3Va9PUxFjCU/V9T+DM6tW8xxV5ersc2S/EpzoR4f7L66O2xO3e3brlzZwxcQcLjyStEIHklnoBdRAUrz5xdteLMmZVQOrNiFXyr7z7A5EEgyFNdnaz2COBcIygyNC1xOJqWGERGEZwn8NSs+Wo4nBVeT0KQ+OHS12Wy16FvknQb75dQ5y9mOvPNq6fv67YRSNtidtg0Hs37brVHjQl/MI1declwfzruB4/z19y/uDSos+KUu2tfnezMXMZQPuDodhWtkHfSXciurGV0+XWWZv2syLt7q16NnuxeLv/wS1Fqkfw7AHO6pqtZdnIaTFkM3mdc26fZd40sk+vy3kO59QY9ZJZufXyDnWRcNy2GnbgzWYA9X1S4fr8XHp+Dy8mwpHJwII3K5Vcw1iShyripBfbgPGUuQhXNe56c/Ptnb2eWZ/Z/0QoabAq5wQaKjDa53GgH8opwLDIVyyouAoNKLjj3ar4Jkx+PSBeAjWoF20u8H7KUwJba5VxRg8zdWUqaIeMnJYoIUbUWomuLTTBzSbm7ebApsyVUrbYAWFZxq4WlUEdJcoJBoTaLmGst5amkXGRHBbv0Wuzzlrp7Hj/xJo61jMC5kWElzW5nvS9fmHTrZUPppxmWR2tBqNqM/u7uD5llwYihky8p31x8kFEa9LIQ/kNuN8WpxwseOxc+1tbWvZooy0dYXfJPlKcb1LKcWR/NF+lU7BhMuPTnz+Ix93sQBxTqx7VTzL4pOIhZPFUzxeifmmLk0Y+E99dOacz1Y3nJg1CZZ25Q0182+T6if3BL+wHqgSUDm7X4oI5I/WIcJ62w0E6rSEmb+FgORnqRjcH0BAYas6T0FYuwr1rNFUooSpwTLBJopoKSlgNA3uZXaFz6/xxnDkZhPWFwGLBNb+CddQ1sEGTjCjqKb81feX/GceC4Q95m3VAdf7scrmt50fzoDy3f9IqX3Q55JAh9gGB9oYzx9gYqfWPrkpeI6byg4D2xMRFcujipY2xdnbfHH+NVzhOqRQK51x1n+fvwowhhbFRw0OejS3Fmr1smhEQTo49rppiSmWImMY5cmLMVk8Q3SW111LpWUqs1nqil1rbVH84q3pQ+IhtxsfBkugkMc9Accj3bMqF7lwhqr72FvAXNLhMsgZdUzioVFcaVPXeaohP5YURW2cqO8pOFDJFSQE1vQKGsCKoAUKaLyMiWY1Jp+YfyCg7l528tyB9bm/gocdF3SUl/JQ3LIHaG/d0lmwrz2TeOowFuGXmbM2ybmbLNkUM7jfkFldK7h7JxSXysKiH6fhNujxP12fcCacLYynnb+udywZ7Tyb0N4McF0Jzs6eL08riNi2XPE5XX+6m7YMkLFS9Fz2Dc0LszRYtevn/2vzGhIb2L401PAmXMsbUA6XKdxc7E3Unax0qBclQ7ujs+qUKgeKzd9dfw7uHBY1s+22fIlD2h82e0M7lQciyUEH0NjP1gHruHj108iykfNoU41DNlyGdqDmBzGibjp/JXVx5pexZA1q2QduP4ROiapE6hNjqd/2UEH8h/quMDjOexo/KFUq96pd6xRIj+BUVHo1Idq/9+4FY6rKY9UCleDWT9XIyIk8KY86qcPltTRiRZ5DgaP6ZGKvDxnPmEvrjpDOW+jMzDn/7dLnKXGTIryArJLwTKZws54I+L/vF+/DAnFvMMmezvuHougpH/cF7Lms/89EukbxyUEH0/IKDn46vZZ3jr94ZEQVJYIEsXqesItX7iQNQr2xPmk70Tc9BcMadeITS+D/0Mmbb33ry5l5STqtVVenB7/N6WlofPoxwiyS4FStfAB5XYL1/DGvd+gBLUB3y8t+SuOejvUlRku4JgPy3luSjtLMZJrkNzpFs2NS3ncbOlz4GKSKsqnMt5m+u0qrQbx7fqRafEhYRfCwMgHWwGGWA31N3PWN7cS+9djspBx6NbIzH9ffx8Tq0NT5NtDH/+POGwMtaN4yt/c8YrKm+OqeeyoPAh2QHzp9BvRav+w6OOf0vj/sif/X0YyVHZZTKVXZVfmEmEkTILi3AcChnHqbqCF+ntcpnBDlBFjDZ2gy2zsIxFppSxCzMVDew2gKE7i99tDQ5y+PdZ/o9c2rfH4/KL8HSmwoxW0eWfKRKMmOnJ3MnaLaaQQaNVLjc4hHyFWZz0HzK3KKNDdAfzt+U9+LFlYlpaCb6EUuLEwh3dxJ2PI5P4i4g8PC/Ne+Wvksdl2FMb0BylSQwqzRzUsW8oXByokctYMvx6fvUq9MpCcWlMqbiwqLi8vHhl1Iji2qwfTa7g0u7wLxaJ0bkncB/wf9QNXRSDYuEtGV9GPG7dJYuMbSwvi4pIzl7k5VfiXgvbacrW0RX1um78krFNinWrG6JGFOOz/xH5aENu9pGFezQkGptxh3+pCJaD3og9KdiQfc18GZc66x/iDrglT+/R+cHSfYH/MaWZ9B8eufubd/hTh5q+PYHiqBxSWcxUA2QYbGqFXXUOzxoy6coc1Ilvadwp/jvf7I7NFwwy1SsqzHDy/8s8Whdxzs4qOzffaC3fyZdxZfs7xWfwHDmJwy78DpXlS44b+exQyjeYYiGFwgDwciZpKAtBT4oNPGHBL53GlIDkgY/qYaqH5T+cj8f9UTaFxWPVPDWEV59apNE5aTzKu340mcmh3xXMFNKQuRvxJ/nqRzRpn1TggoXYYHzO3wNcfliwMIzjlgqFb5DyJmkt5QvDQpovnjR2gl2HW3cplI2KRnHrjmXvKJZaniUfiuzLAJxhwdYwfr+6YbgsKruRGBxsrBjAnf75AiG1+PTvJ8v5B20IJgKm+l7+RUHKF6np64oBN4tIIOSm+mKTO0/WQMUjR8gj+IaRxKQbIw0DIU+vf2naaHqXCGqzrRbPc414mhB+iuKYf4udRlgCN/5WbD2tZkUnqEOJbPjaqShJvRGHrkAvTH7OEKkEzEIrEmktZAgAVXbCnlirx5qYGhqr7TtfUJjCFeAFQlysx+O9MCfJ2zQHeF1GHnGGjZgpI47cXhCsnohuA6Ge6egAKBHTl5n7hXyhtyfg8W1et2iJiM4JYpJsuujgLet8ld2BhZVyAsVllXf9dfiP5OTogrnYfakAArfIpjTdfk+Ym+bxRS2vCjfLbToJGAWPMsaqTRJtZ6Mr1Eqz26PqHVGQjFwoB+8vYuVxiPJerYxf2Ye9xILvbWLeZ3y+D9r3OVkm1+XQ13LTZWrIRarp8QkfZlw2LQbb1+8as1ZtH5QjlyTdDNMPLFJaMnGypiynPfxmiPcYZHPvHbvc2Wl77z7z9p5Bz7jJhD0InQn/Tyb2m1dbLc1qf3Jn5nYqWen8Pr8ks+2nO68Ktnr7eFf4ofx7Dy5RW9wFb6y0wLTrk438jec1580CU1A1WaV83vM+kMhYvquLHnR+XshEfUUh/rvr5uYpo6lRJDI2XszWTQQam8IMQqy0pLQYQuA/iaUlWFnJVawHB8d5/nSXMjB9RbiTa6kgB4c5JCn+vS34y/Ls1HyyiJvfm7cIocrOPhTLokiF8udToZNInIzJYitZAKv0Rwx6dwZiHSoPj8mSIRBQVvaBGGaumM9gCFn4HLvv6xWipwqswlphncJ9GvTJ+g+Aed2aCfQi7if0hC9/I34Ir5t9kEIXiWh0mZjNUnABXszdHPSE63NjMUHFu6JC0kARhS6XVAjUNQarvllIFNL8jFqJ/yv0d0jULBo9i0LN+uaUd8rTcBUy8kSQNzHIaD+INtUQVAwBX8UgZP/4/+d8fxxIp9PFdFzG68+nb2aMILpzcnrSEb3LDeeP+D8oyHuQmXkjv+Ch6URxzi6zThRVBFLpMnE5WOPTWw3NAFFwL7OOFmj6FoU6jcacQa2b6g9NsIxGNtsDLLbJyJ4+Nj57CZh1KxjLrcrL9+bmefPXbsIB9hcMk8kxmr4oX3YieSRP+74z3JArsxjlieH6B67449e9TJ+GVpy2W7+wcHlh98hTNzfGtFKAk715dXhc03q189Vf6SxX80N1mdN16Zgdqq+M5f/x9wAX7yzvuHT6qgSODYwfcNWa4LtmNdRXNQUUuv7fkKLFHRsczg4AA1ZHbe+CaLIWyni8riejMDzUfssYhVk/RCe41t8HnNR+35j2oe+pi0q6LioKvyNc/8G7+QP67D9hrui6lij8hXAdoRvu73e9ec1R4V6wZddebbrjssz6LLA867qyEYV/JVyn5N2jB4Brk+uCKPydcJ1OdX8OF6dug33bO8XJR0B51nQWQ+tvgc7hvYPdTa7aQURO9/9A1rj9Sixe7OkJb8larpo4a37+kWoPH9R0hFn7ze9Zc6xll/p1s/2oaceA87jZNp8vua+hpis8TMsdYK/lng2oK/98En6gQ7TeGjbEIzl2hhkjnD2tbT0ld994C7TFSL++HkSNW68G/ohdNW0D2ADRovXhouVhovFB1PbQGGOTRxFlW3d555TbdsnqBkqP1u914DhqcQhiqfEGEJc1f3hz9Y//0fs3Lvf50aSj///PNeyJgk2YkNzXQiM4s9b7MVrepJU23Gf1KNcx+dw/yHpVC0CN14AU0Xx/0XJ1arwspIo3b0yN14c00Xpvsek5YsM9zzbeE7Pr7wExA+VWrHAut3i/3OTwsP041JRqCR/UFGSL5gdmbVdSsPnEf4Gr7j+Kkx+PuryTUBdX++TaRnx15C41qWA0B4+tr7lTPTURDP+KTe5UF+eb5Axw4DrdWQ2n3TGpFnzXSdRyVlwt7cRe053d5F41jaarsDIuZkmfWS1RvWl+Hw4f0/oLHr1wrDG4PXtJWuv/j8VldOib4rJHZ/3YqVEvPzNx6jNfXNtVd4r0lBLHVcD+aferbwcMoUlnXecyB66/djX+g1qjcvVn0Pgj/ZmHa2kN5uCLq5xVdzrpM3pwmr5EDtABJZnroSAKr5l29w1j1/9C11qDybrOa7Ym//5fJ2FAxmAwKLvAOXXeN4cnZe2X+9jPoIJr6nqdszKKpT/5A3JsHgVU2CrKZzbLye6+JtCeU9HZhxJ9WQo4GxnORcYzUtCpSH0aW/eUp219B7zyr9XFeAT/ZFior1uphnYO80bViFuNQjSm3jIxK7u66odoIBqMhqLhaCQajcaCt/Luq91t6cGRyJHaMJySlhzie6OuC77S3ui/QtOVGZcvifVelsOOY2Y9CFW2YFTgRcet/wh8w323w+b7GZg/nUYSd6rvv/pX/W/TX8789vun8av/J19/DDi+fFuvdveFmRmX33MMa6egPbsyU0RgXuAB6d4NBqHwoAEr6MdWgieXex4YgFoNcbPNZdGChlZ19MQzTvtts6T51FLghw2K33tzqAjMZ1et+X03WDtb37i2sOw5HyNzgdEXjWX/dm+mYqM94y2LAdY9e9ZbGGi2Vgw6qh/wkfz+V/FOy2T+vzwlHE7YuN2dOM5iw8+yDPJXmlsMGY8uBfNAJaWWO40tccijS/uu0XlEcTVK+efXKvLESDkxI4q63DZ1u50xVvYMzrQCH5+OewTwaee5um1O8SIY+/iZb8+7VQcEObPDidjr9UKOaedzGKOOTsw+x6xtXx1qeyExG5ebh4w/7HsY6PTcLQY+/y3e/Xadeyn38d5l1lq8rOOkfqcts3/edVd2ZRfY2wKvB/6NPgMGOJZTsqyDIsE4zshDd14EeQwGbe08ZiCvjAud4atJcySndlkH1VWOjYZPbeENFmdnKDyTWjUtBkunMjx0MBdHgev9Hnmmr3tbnTw+cruQvRo+XUR/jRT6FLxzvwCdUoU3AZ/6qP1sA3G5X7xlYup3Ap15bRo/hSLr2y03yucFYa9vim95KLiSsB0++aHqCbCanZKSw9zWDsihOHjsv1yL+UmRuPOSytnt7Fth1FIq+efewrUp4c5MCBi01xrt1QAbiAEQRA8dGlyU3EibB3nY4n44oOBqe+UlLSOrOr5G1y/eL2UsBFH7OdMKgkdOwSkTASUo9Bxqr9UvLHMzthbMz8r3/YRNt0Qwtx+Xsb1jrN9kgeD6nmPPAaQNCOZdSVIKxEgN3cuA3yqRvfe+LJx9DVJWMkavZcap4pbB76KjJWOrQAsKsEuDiFkw2LgvqonRsi+z+Y/WtaRwUANpoKrVeI62l+nFrlAICmkXGO6ZFwNfUWCVswICdgIyGuiBWGiGSL4JgP81n+YJnAfDp/VCw0IrhEodJTTpUGHsKiXkvs8nuMJPCD7+RIISIXsKfbwExYV2hRyUYUPhBAX/wO6PL1UJ/+5RCHvKP+5hG+1F06ooP6IOfpTi5YImtP13uj+GnnOYesB5jx4307kvuflfr3iK+Gm51ZJIT89DR89BTaD5VckxRwrn/TeZc3WyyHcjrx4JCudNyTGTiAIH5n9i7NWjYZGxsXEUhql4XliRoGKWpCKygSCmwCWSUUTmJxTGTPKuHhFGAVrijnkf6bs62fDNpIXe1BEzqS8URxPAooDltCT8v6MihSQA/VgHBbSlnR7f4dF6n+dVL+to+ejJZaVH/S3LioiM+8KKDuQKLIsHQ+CJ14TBh9F/sAzr45Y10HgLQ9CapobXKzD1RDuJjOyQwmqhU1EYC3GOpfsHbP0rWgWJtxaQaA5FR9zFeqGm1FanvCVv5AH/BE317hqmaXBmrEqI97EBo38LeVLX2JaiJ2hnNp4Qb+GF4CCTc2asPRK1QGEvcan3gdqpDrXTgAsuldswB9nmfmCcu4nJTOKU41jQHw612ASkKPGiYCtHfY0AijL/U1mBbNBKngKVgFczglQ03FA5oZr3qqYISPGhC0Ew4MbJ+xrKvR6rKvJUE/WNlHRXIYzEPQpeVOhVSuA1bgE4CDCiJAGxKINhG+ZdaA1dZWE14SG1IeZrQLRnrWs2KLH21EGYCtZ7nx8vrnG0p8Z6+VKnAjYHb3JiPRQ+KTNHaC9FlBB8EoPaG2FooTGjA3Ojbt2x/wLgjlYT9jU6A/wTQoOLD1uXLDyfQdPYxVgw5Tlkc6u5sfta3a0uPOYGnETtFFsLEa9dhrHX55+rk1uUp14ez4bnZyAJn1/aQAyNK8acys34NEGMWLtLEXRFT2uOXrjlglYPfOXG0fc8RU+w6BWcOEmG4iiv5DZIxVTxAVt/bgXcXaN6xe4QSNe4rI6cirX9y/6b7rBDW60xwnJ5ac9tB9R0KF/7A1oMSrcAx+OR4/PxK477fPnY8EXbP/aHbD9+vDTdFhywc+OByOWQ6777Q793dR95vizQkYaF4a6SIL/2IUsMPzSxeWTnZyTIKVPIxHT1tJ1R0Q43uG8a6NYRgByzKnyahmKDnxCoXq7xNa1naOiMjzxyhMBnodgDORJnzkPldrIDLVXAvUsLWCP5lMEravXaIn/XplkqnTFyX8l2XGKXpJ9HCNUmJeAoZw2RbzL6R0tOooi68PiKfXOFwIhQAXJq5wJomTq2Wo9ulKGkzOxcyaCFaUbn0xlQwgTnWYRwszPnB4QeMLjQitYAGbJRTWEcMO4rPZsyA31Erxes3dEssxZrNl54Em+4467trib2YOemrvuH6c1V0TyHfWDERO/hA124ZH8/XQo6YtiRnpzVbXFleZmBlYUAfkod7sWYoK+ylTP8AE7k2O2/2bC5B0W1fVIsDYoxq/rONxTri+5OofAb30xjuzWmXqILHBIhEcadEoVMXQc3m4BGOTH1hW1LpMvprEq6r9HQ7fXIlrMgVDC4u9FrRRqf1Pr+dbiH+6Jj1egfk/7l0LZB13NMTJ3j7q8iyZo2zL+iqBivYRvDBjExNqEWDnhPhipQEUslmFQtsB2zI+AUCShNSC/6aAyk2foI7LmBhje3RWDmwOG0TvM10xDMSrcmnaIF1AuBk8cLP43BpIHOdM84D8C78U2Ybop5sZlbuaaYokyNl4VtfuZLAVT3WybRezjVcaG++RFCmw/+uP32AvXDJrz4H3l7jeA1+KBikrEjuJSJn9EHtCnBEbUREIY2HstQOD0ANWAVrJ6f9sYPbi6j7w4ZZGRmQtC+u4rNoBDQ+KFLzXzUGa1vaVGQ/e3OalK1Rh94VGM4w0McM4cq1h4x78WYkUXuK1Cr6PV1xYYBdBNJVfctqAdvZD2S24l7659LmMKYJ2ivdtQAAqCg6rQwQgRACQJe7uRjqPaDCtSg2vNojGM1enH6Ef7KXiLotdZeZuF6liweNgw1A9USAgKmZChZYsZ8nsGpAgUDvt3qNWXe2bbnSHrRwa9F7CE19V0FvUKTcvd8KSPEIYOtIZsUEx1n7e3PAXGljslGCByB1nZi552AGM5MgkJ7hAUZEe0SC5qFvIo+8GvYSeCMpoERK66LWtI5i+ffG9yqr81eLUOS1teYAlmlG69tRTde/5mFZ7YjSxTsxCUcMIJ7Vxie9QwytIGzw/U2dANdQ1gj2Iy2hCapIEzoGuM1RRTz1v4qGM2VBNZTXwHM+ZQOMi7wemDNLWONQoIrAkvfFBPmG+YrlFR9Dyb/+QRWh7h2KGjR5VNgzbozd2UtGWMJGXZdM0XG3hlwH7M9StKQsFZtC+erqX0QCCJJUOGjlSwijT6uLnVItVzlgN4P0lDP1AXxpRDXPyI3FD6KJ8LLr49AN2kuGx54DtsEszBtJaOpq/0E21R7HbzJEBCTDQIYM//EvIGtAVR0ANAZVUOl7UglHTg+7Bp6LlJ+AwUhbowkjrS+JjukfAkcKToErWYyP6DYXKceIZJSEwcjs98meoQ8hAG4x/qEWfeSZgckISlpALnI+G35YHM7uJMoeQXwPRgwd5LKAdaPw4p3wvy2MiKC9INbkDCFw+rqAnNsJ4TCEyeHlD5Gg5xfsr/VR8rBUqPrJZIx7YcQ5WsnzLFkipDxThG+9SddfFoMx3PuzxniZQSfFy8utf10djzyv5k1sTtUp/TxRljVLLS0bWL04Ww0WvVY3Ho7sdiBaoYZyGBh6VvRtUevJQr0APiCmJOC6M5pvqaJCjkIM6r/JhEQIBNM2eih3w/7FZCSgqBito7SrkkiPkb+umYk+IyVNOxIcApVoZhGYDQtW5I+wcwSalRuA7O3diKGXk/f8yxvlZF5li/MI5HG35eF6N4PGQ/yTA8u1xigxhle7TWg0hJmGeTBlx5qWxrJkx2FKPSAiLLvHY9gg12AE9J7nGp06kPWkYKHU22jMVW8UGzFmI689OIJKXHoi9aBnobNASuAvCkAui3JouT81CvAxM7s9XQhLFAaSUn4o54w+1rWyvpqTJiqZYJc9VaErwvRVmzEt3BrV9hy0rRtMaowNPrpxXRfSqjs/kKquJJ/FY+jXhbJWDsHPiEdTH7kg7qbAjrsqmax+Nv5C9QLdzNFD8cJdzM0Xp0tnLHsWzGfWLXdBiXt4OExKG11f/791GWwMPlY6Fh0y4BhSTCiHbWJYW5cZCE8Oeq2hRjqJjXQSRnrYF2Zdn6Zqyihh7KS2eXj/3mKrX6gqr0tAQ4AFeC7VbJY/dGJpCSAXgfWvb+bgtG/VNxCPPBwsGujdaHPo/sWu1ioZGNU+GI4zT2uSq/yOXS6Yz7io2rZmGjbzS6wmCTLiViDDgmV+EihmRGjntiGLXdjFmGxdV8W9d0srGbqv4PyEBL6+PFsweCGMa3rlaXRct86DG6/Yi5GwsdNcpuS8ldi3nAn6o7Sm9eaQsf9tM82Oq/hXu7v9wW+EFI1XXfDcUjoX5W7qwWj1JtDkMqKVhFH94ppY2bSIuquUm1NwV4ofSJdhWJfhhEwiw0St4CLEaTo3D1rRCbtQaROfROvyXK1kLfgMoH4arr1jJK+2zvzEdOqWmGB8fhSd94Quogipl7iXXBXxzYWZ9PR4PrsWGgj3O0eHJdcvhtcEOt7GwHvYdto3gHbNKa9cxWP378/ohY2dT2GuqHOBThvHWmS42tJXNFMDXxwkkK4F/K04dO1kWu6rcAddWThzd6ja3ZRnSJ1wHYu0HoMKLH+erL6YJRLpZeQYc8Lg9jiDGuVodSo7C3WUn8hC1eu66re+/BSi24Dxp4nWGvnF7Kr0kshAYaG4ZF91R63lj2P2cUVuVP1esaNfsY7PIP5eZhtqkK+W+xm3KPFL4vDvHUuXEbB/zE4LNalWvgJPTzDmrs3d7ErWHbxlHxkDs1PB74xPaS27BYV9+uO2WdqQrkpIeAtP2hHpiZg2KPNizPsOfcT4VBuT3Wg+DxfPjPo24K7asf5M+Ls1snLU1wYeEazi/m5dNOZTRDd8Z2UdptOd9D7BrZMplNVTCU5xGlxEONzv7b9vBOLY8hO35tQf8/j3Tvkw2lyeveh6Iba5DX1P/G14Fx3Ylv+qtT32UJcBt4qe3QJffIczN3noiupkttrB7fcJ+dvr9ecC19/uzQhlnuF7tQHzVttOFhEqrGoijuLcstKi1E8rLmYrkUwL6q9BCJEg2G84pqq8nssYXzeNuPg5DRHdeACRvFW1eYyY/3EiXtEe538i5WAHNUY1e4JJ0/MeYMvibuuIYBwAehoAeOQQBGPlaoe9OjdKvjDUpFEuywlKB7ISvvowKc3EsUU1XLSfCIKJroTb129etOz+fq6fhOeZ5c3VFC3UNr7oJMvL7Vc7UXimaVu3YwGSA1DwgleAAVK1LhwTCNae+Wr+N81k6vPDCcdO4x9AT3OvnTJTJYcFKPcZcv9Jti3NtQgBwaM4pinU/oe6dTXCX3Gv77i9zKTbp7PRhcbd8f7Plvef2i7lcemoKeKvYTCiaYAhgUOxbzZxdiiOu3x2jyh3OLCAwAHkOKViu7B3j8hOq6ktS5c4rRt2bn9ndvYGQn5CSrYUw4O5Uf8O/qWxSf4zn376fOf6TvxdKcK5HQNqKXMb9O/a5Z89uZ7QbjZbZtwL/2ZPtXpmH+oV8VTGID3Z3ydLUKl/o7r+ne+GT1tM61hmhY5retFDssHo/qaA5nFp2awmT4KFV8AvJNGNObzHmsG0Kn1YKNrupl7qPc6lUnQxUrErB+txqvYVVu5l5ljkgXhGh6oWY/PguVDObEXjsKLMYjPE6bXapa5HZO/zBtwwlB06VEbZBgf8ogWjIsQQazdjs9kQCEnvll9Lj9mj+YWPsjis+91uOx9EwDjlXtUhPn6WWMbDueBugH7UoPoY5Cfrc6KyBUyN8UA8WHABudiRV/5UDFT+347N+SOjVuRISKBWtGmVklMKwEuH5ziCkxohTUeSjK8nxdfLbOvd4h480RfJ1ARJeWhKnvdJ2Z0aj1vF9CZiWMakEfnf+7JjuFgGXPSPXSZwqFGTKcqa++33WCOHtD7HZWEYQ/q0ojf6OVrVNippb6rGmeX54qbzxjm+/yh+Ew9YjO8HNuqdKw/+x6GzEg8O1/Vieh3MYi/SAt395H66HothvFh3sAA2VtlHjKaGswzR4yVRS42wiel9i49usSDXd4euDYtixRzEeU3ZWZe/0lmWHXlB0mEVk1ZQedQDvtb21oQEOnd8vC4BHlRnfG9EAAqMBjdrMlBrQzy3wMBD4Kg69A1yV2oA7WPPLBMK5vL4TruZ01VpnwNBJNugnegQ/Wdu85eEzgEI76qKglPf/e03FORg6/jK40heBZCnRPa9VnU2jjTFxuOE2K4DANkUnLlDYRwAgIXHOIIUT50kCmELTV7JYMuvdENI3jMMH6VdCwIdUi+LrlkvtIv92mtM0opjvnIJEXjnAo796tkVicPXpURQClO30rtuoOZkodsjv/aXuwGGo1UYDZPXcD5YUDGAX7nlXaMcw6FpmeYg1y6hpBYFiax9s34qrmU2Uv6Jg+cbqL1hsfxRJWBCL7cdjpjnAV9s+6wnUSXyMh6UxlChcGvtFAAj2zBLV0yalW6aJwMywOnDPT1eHRAoRvUqC9Zx6NuC0nkrootJJlfHfEmqgL8jNVHX61L/YSd/xBiWP822bFvdR9iHb0bHntHvi1/k9ZXvvExacIeDd7Y48j7ZP1j9Mi68PLxE3DAevwqIvp3q9MXoUiqALEyW+x5r3eQld3/hRozuDT71bRPYL0sVOc+wWH5APlfHAYkjoH1bldNjiOZrjYJpRfB4UXJdcUs0+W1b+t55CuYosS+OYhiqIN+QfXCAR35+7WGzr85cVTH67rVHC30qXmxWhSdeIkvJ/G6Es91ucWukzbVaJP12xBrYP0kS1N/oGhF9ZZfTzmpOTUEzCXJ9s4CglWNNgm0OHQiBDAnYkTfz8IToqyrV7PP5l/2LKJf2tcd4jzjUTZGKnjEyuUrkdClh7KxLyZOPv2oeKxme2Wg+1wq37G+FLLgGVV4238ctIPWGT0cCrBSZ34tEaXJZ+lOdGLLVqonQGT/F4izDsSxuA+D7AesjXdLyYO3CZ3uBNxmPVqLNXJDALgrCPp2fus18fTgyI6d6CTENisY2+7f5qctjeb2VxyJtnkHqw72OkLK71zIHbF4j5WEwbdyQTrLwlLx/R4rOgOK15RvRsxfb2buppDYL+kH0Hmimem3mSX0DDqbUdfW/ZeR9s/FUDHfwjf7kPozVOrvHW/r9emEgs5A866xle7EV6iiRe1+XBF9dSZTFO2HYgG4UfxGa1xC2fkDdA0Hyl1P6C/e72a+/01M83U9br4Nm3cjErxZfrOrrb8R1Bw5+33JQsZ+lu7c1enrNLjEg53/XPn9xsQujPu5Haw1hHOuNc7lLBPOYrMTixEBrUzCyl4sqsQ0bX5yie3FpeRAL+U2mM+JNN34nl+3MSbpg5LfSGCOTepDKqXyxjkUJYqbZEfN3SKUQWKTkU5B81Xmg9tYnrtum22dUgxDKEoUt8RU2mwOJRRlN8nUh1RKpSinZYAobsgUUymVgtdW7UfzqwF9xl9/TKFNKEoUN2TqQyql8oAciBYMlFC8vRSPAflMApUE7huMzLNJpXWvtFOiOBgppD6cdTWdUwxg6kOYFRU3yVRKpVRK5VQekENJieKGTKVUSuUBWcnocDwrFm8ibYDcnChuhl9csnjkfzD+0pbpD8DY25hSaeuv313h61qW2KRSKg3IKVVczxtMMZVSec7fMIOXV/zK1F/anJuU/Yhf+e5b/g2XfZZ9o2TzTKVUCnJ6WCdaM/0eFTsayBQkK9rq2J7x/JRpdFVLFt4MYC4W6+KCE8UBTKVUSqVUfj9lhfW8wRRSqT1B6fzEhOKGTKVUCl5bEYUBSKUop6UnbRg/pntXLqMAqPJz0D0iYL3vQpvZ5uLyLlCmYk3Mz0N3uS+rfsivyfqz7GrL+mYrpGSdqG22TlgM3Xajm9lO8sUQZzfOmyHbM6Vytl35dhf2awVkJwBs/+Lqice2P2qT2QtKVLI9ZDZTpRMQtpV0o8Iiy0yQd4AU+Y3kKr6ANMX/I4fI/5Hg+f8qT68LsB+JRn/YNPK+tLJ9+ZtkOudqNlBG7s8hXVPg9+e0gNszfVSgP81/qc/4l1crf3/yj2etYw+6WxH7Hec8f2PFd3MAynLGQqgjaqGRgOFqfrMOl36iByR/4Y8klmVRVGzPRawXsL1CFmQUbSBYItKJic0P7i+c+iVqlVBg/RDxacYuGIwfmJg2pCb5Fx9YDrAwjXgGRBvBNAl6ymRyXLziYIZUbB0KD4H4e3fLdZMcDr8l2RQpK9llM6ebtUe2p0kTKeggfZIB+sixCRoq2NZx8VuwI0RAVVyUGg4Dwaq+crrAMRHOeJz8P/OfyX5df0vzd/N/M3ymK6HQ5mHOEpmCklZoVXNmbxRKNl7cnFrVObaZhxc7SMYqGQrxaOtYJmZjkxC3VzZFT1WtX1l+a82nVT5AiVYWD7O9CrwQat+wW0zhf/U/g0HFoDH/lf/LIz3X/ymhuFocz8eJU0vu9gSwUdYVUK8w/7g69EcJcb5yRndtn+zxQ6/bY14AyqkYVALiwCLOat82eB7rizijSB7bH3zvZ2h0Ne2F25uQQhHdvRJNrIjslas6JFy7vZbXLzRwLrgKrZ49VmC06t7ILPpSK2mjlrqimrtQVbkycxSqe1i6fdRRiGhUCa2sGnSktmtVhfdaHbWZ6X3Wi4hYGbAAyK9xn11SMDEueITqe0CaXE4hJCDoIA3QpLIySRVEu2cxk3UyUCQBBTHSitiZzFfrynzfeDuNXJUdrD6EIZRHUllEKlNBOBKPyXgN8i3hl22pf/V4IJxnsYB1DkLZ4YhmRBLiSqDfShRCwAcNMNqtIJpczQkQXYZOLGQd4M1Ax1YvGxWyKslrLSOLewm5qbmyli/7bqMFtErdm8i0WOwC15HqNsYN42hUrROlHEHznosBYEBtjOo0tqPUXRMmmjZpCKKEySiujTw5/PCCbnSoGuKe1FwffUNi7u58ITObeYxw3EF4mIQ32OBAoT+Igd6yB4+NXz+uFReTbJqswp6JySRhL62YdS6zxWNIKfZsUQWQPs/BSJBk1oamMHPZTqAr1JZtEf1UQkvQpCXH2valL+/YAyvZAKrtUz9ipoFRLLKmdYZbKhg7L3etbm0zn4jaAKRPRLWA34ePwieIwCREigo2kHR8Wpgfwa/tMFIyMWYhn5fva1qZ0Wu5ULkiidq+xjms8Cg3LD0kAVzfYK/G9Zs/POVIbS8FdTYWzslTKTHL2k4lJVWmlGT8ZHaSwrkVWfQEzW3LkuxrqVACoNgqF+IgpKWf6oSBtbmwH9nJCdm2/FmVINt2ZNc/VZWBsWCSVfc/1xWyX9DyZEXiv+PztSkRsFlhC5+QtgVOz0SKZsxDFDVcEIHf/Ax6gnHurUwroJdMaHt9rFH1RVdPRSvIljwp0NKebtEbfBRJKPy2kFcHd3Prx8cjpZ0sDVOicW/eKlvZ4z1R1dbWdVE8EyJKkXeLXGlwjs6MpiLI78yQ/hbgK5TbZdznoLZVDllzKdJjnSYhQ0JZg6RX4DnkH1wdw/iS8xf++kwPTT2UCOJcyCn7F1ElB5Pb2vKA4xBzkB8wC/PzpQlAxzirxoW11bM+AaxR9YrU8GMEZRzJhL+PuPsaGAwPAnQT6NUl51jbZNn3Yplopzq//P8gYnLi3YOQnBJ+1oYZ+uDZl8F7p8a36B3U5x/sMr9EyxGNN6t2U/CkbZc+Hwqi7MRqW/dI/83dV0qxSMyXD21yKWaIYoqhOGltxKcBzRuID9JmCpZ2WymBxoxgWFceyFJG20i84aqwMjDcbckOLu+BB5GeFWxLrvDUIRTamW7tyGPJjsMMA71K6u/6Iw+3G1PbKsRku29Fuv/7HDNscqSvc8g2b7ETu5lQYG9zUst27oDHUkO5ww3m1mZGkmMtAoFu6KK4asvOOXJUgiptEiktP/UIKKw9usNzFEqAVs56uxGV6haLPOt+9zr6K/ub7dqiGDN8vnYaWRuSdyN+W9od4OmIlVJDzIkN68oD2YKVSLZM3mbsUV3IOIfoSh0nKQLL+72HaGGjyqJY0wne1EGJJwV2plGbNr90mYvszCCAdTLQq3bdYv3Rh/Tzdefyca23aHC9plxE7rY5vGMRsW/e6hQ7w8Bq+/Yx4Z5mmf8Im8SW7pFxfXJJqSqhnc87ZmthzXOoV4YmVHmzRviYjaqI31je8X/ZyGrhMIjN0H3+OzfiAbZYZNXz7e2Woe7qz1jVqa1hcdI6KfEHnCufQfzt6cwVMh34TyEslj0bRDTBsBFkx+QKEDVxjKmuvTjIDNrD3TagvLcdRO7hpxngDiCeFFiyR/1u9EuPu8jJ8qCr+GuQV8P6Brn94CGGH7uMEmkZnni96ps594OPVDr+z5M8epAcu8nwiNwvba+yxaeDe4pX3M0NA8E4B9DAKm5iJ0+4afXaMvqJ5faFkCOoQreGPyHbll9ntvAdsPJ9bf7XmOR2P/Md1Kri/YzLauek5bNW9cBjFRWRuFlOA5HvOsVvSJMdOi2VlFfEmgQAIko4A4bN70YYRGKfb8a5VzLdVkr47O8Ahxa13zRkhUj/ulfEJChuY0QKj+ZvI1j6lRSpw4OApBbk1Yv1SgMHf8hkfHb+ptDe0QVun0/7iHRH1avPLqraBPKWyEb0qkrd7J+hHOFRYuoyTAer6iZydgUixE5SpRvnd8tmTS4Zd9M/Qepzegcx7A5nT+7CJFG5VPX3u8f/xVl/s5O7z57x68a7DI2OXnOO1vApRbfSl0uUQO3y1xB/KW0HOJ2jpGIKBpgICIoabkDS9e9MpChQdwGFcQ7pFYuz1OABzlvoseWN6kDsrbsARPQDUAkaY1Z4tL+49Kcx0rS+WEmKcqC3Pvq/otvtwkM+Hpntv11dJibFUP9+p6/KDBvuuYyiimHjuLRaZIiNZ4T7sFPMc62bt0yl5RwPS3OoWSZBtK5KSX8V5BxamUAHI+7bysyEHCnYhVmyY+2O6xX4pBb8FVpE3Pu+8/PwU4YNJ/V3MStx3DOk5+sXJmoahJEj/nE6U5Dp87mm6mYsiYd15SgfAhFkzM8nRNwXlXHuRabbSgQPdK6PbnmjeqXYG7sRQZAtVXPTwWS24I3e+Q69His3DQIg5u01VMu7RtHKXMh/Z28Acu3jpgLYuqPgwba2NrkCBKESlHQvTM+D0GKL0nnwwYUgBAC4mmJECJgXlwIjAkaImHoEUJt6vWqwwYng73d3r1t2VdJKb9FZq4TaUoqAiFURv6FQbct/nuTqgtchOC7OHQhKsXdi27b0c0p4tjisFQIs/JSEkIuwCRLAntZIibszgjMwxY+YRgTAFOUFWVNiSCIAxChCByAuy1nPJ2RJkNH2Ac7dl7tirGWcpQoe4BTsHY6e6t41H6h+Dlpp3aiCbMlNjyXbi0PR3gqvJ0JuHQSMVZm311BaTYN7Y/jO31yF7knb+6KNzrys1/vapYwRhMbIyCAdhRH2IB9iAA/QH2P0zUi5KdPiE9R8VznolkaKUVlltFfEHRiWxS0tEGVyXnbOaqFtc7DyKajgjAWfPTOldOANvBiVu5w5Kl29F9ao7Uvmq8eZjC6+/nXVGRKLN8DLTOFMODkD3uMUAsenIEMkQYTEQQ4gEhevLh3ARUPPwjgrjfjBUh7Wlj9C5/Uh7lFJ0LpXdPDETW9qypg4h/ilW3QMiaYLpfpgoDfV6KPX+OqWNcb3m4JEnwOmmP2xy0MrxLSagr0sjWfF1a4+a4gYE3y8uRURYaecGRNXAZQmMzIhFToXOzHebBuEFBLIFIUAsW/Zc9Nex8AQvFmNJ8rIXAIBgNgTd0ErSLClBKMDvHA2ZkZYvfd0J+KXI18yrI8h/0xSarF6QkIUECYlIQC1yzOhXsBlRgBOtSqQNSXGhACBogVOyCTEZ0inBJG0Lwr2vnezNOANo6MRGOM+y2x6M0shP8/c02a2bT2IQOgAjpt+7io2my8De3d8PRkjko5hEfgIjVTaF/bD3wgnfgc3AL3515um5sipEHJ8etLPm2Em5Toffd02y8orYIPEmbCQUsyMT41rL9Tnio2uMcqoLyu3l8pswXqHiepGivK6pvWRkWiLW26bc2I/L2itljF6Ilj5CaCcW91MKuiI8DoRPwdbeyEqUHNbWhtfz/zK5kpx4ntTapMqttLKMGINkZ5YEaOVH434Z033UaCn9rkia0pskAoMNdrhBZik+JXSRClC+/LK3ivHFp21GaJhtzb7Y0lQ9txCCaO7dim9yJWbfKFhzjsgpZSCeUo6z69j/NJPDBHtOrslyUfotNl8/um5/kvxfPH3eAMIsv11MzINe25cOr69mTdrW6vaz/Y0pXO+adCpW+LGlWrVurVGr7OPvfF+Kpr15TjaMdrY58fo3SUXAmXOTJqLlCRfS2F2aEs+KKPXHucc7Tj27IBA7ilfH3ajWkJlen4i+u3ozr8U0glxijmP39/7J6LWLff7MMYqjbNRaApykD0hyahkHDP+20jvR4M9dZ0KWVNiBxnQYER3+IBOMjO/U+uECHhKjBjnXm85AA1nowUOjDtrVJH1Lr9UQ3niOxA+qTGIKWkVoH8O8s5rg9fTW8QUvU+YkvNGgd568+69vz2378sNwBL1/83aTppl9jrp69N+eTdnN3DO11MVprVNMnl3tc3W6+jGTG6VP899v0a/njQf/f3xmI99Htf56zFnyOHjV00vnbfelGL10WrvnlwrDy4EBug89/F4XAzxwqASrULbBed41Nh7fX9l/vuxB3ivbDLRsZ7n45+v/TcZGrPM5di1JTpHTQ6trYfJlVBsdDYeZ/zvPX09Blyp5yeNrCmxB9lhwhG94FeYhLPvWc8npMI0YsA4K2CLHyxvICO4aINHoZQ3PLew5KwuRBBjfPuCGa8hlBC8LU0p6m6ndEz7b13L+Zz0evYJFgfhonfD8JLO+y/j8+vrl6/3GfLBEYDCfbqDh3O/8+/7L7T/Gztz/QJ4zkV7GgD46b9tbZgJ23JIXlPASRhAYP315oDDmzpkaUC+Ld9vvh5iGcDvyK++S3ZbPrOeacIgaLYQTQbpDJk/KxVPIutsFTqRYF0HJayDEkpnWJOia6HOSzujnNNhxVTwiWBpR+TMhJhZz7pEEmdCuOdyalVcq6jGKMJbChHfsKIw2c3nLLOPrTreQ0ePjX420oyVeZrYhsZ3ulmnSWgoxlWmw5IGGTOqJ1Tw0npRc4Fodps/F1jml5BNghXWj1NjRcUT1SLwZkRWCfH1inxq+WvWHrJwBKmYfQo9P8tNd8G6zHvOEFFDZYVajZfG5ond5Ndxiin3ztAslIGv9DZSvMNI/KZSyGgUx4S8mDPblHyYGKsdj5BiFkNW5usR8rCjmniMQv7ISecV6RTR8oLQ0k6K8KqjkdjM4+4l910gCvWWg9gRz8JPOg2bH9BSCMRnttyFKxAQkw+2WQVNHropETZt7MPjrJftlqOnRvFECVuVYleWwCn3Lo1dhyQifE07+LeGoSgbVyuYulHOFEES9cXNPK77VJ3zlkpVlEkenXMwsqwTnt6naP3k+4aEpdoZp62SVE66kLMV9e6wOcsUU3TTMXi9NEUhQNJfh7SJnbZEImP/x+GKyIcgaM0AUlaZUNuBl2EH/Fy7MVUmQ9ahv/N5//BJnTGsfHhXAJcsC2H5/ZZJ2FckTi4kn0xLDFJc2B0QdNkx4/54DZ76zkdkn0ooIOA6+BDnHwSqIkBthmxBfBlk9xvSfAG1EHhNilEjP+MO7loZM0cB8gE2McRnatjUotqwbk7cgZfVce1EZ8Gco4ZUkK+ydPRRbQODnojQdCFQWz+xjHQkWFnuzz0hoRbGSBpau67fyDomsLcl+ECsXFadExNjXsVVqEqh9y2vB+RspxpdHO8OcLSZbFBk+bKq1ZzbLGjKbWowCd/C9/A2vBvbDi+HW7Mrd6G6EbpkNETvYQf9w/SRvSLDwwoKz9P/kehHdBV6ivm5PEraIBTKIRHUasz9NGxrQCYUgAO0kAZJ4ISYd7CSSlV2nc0v6J2MbaZqMbruR9RJ0UqGZHUlI3ldJa+ti+5yY41LWD1mrbfj/z7R64jYVS5yRgk5wNyYH/SyVaxJ8zFfw8qpJgO7juIvAtFK2z2rV8zeiS8zQyqdxWgVB+46OMHbaU6iDHFUx8UpiFJzSvyWc2qS/PHTcDrali/OgN9ZY88OHAAPqhdAbJMKJnwU4GZPKwz6uQeTZcEg0IsOy4vlhk15sMPhc+iFS3sYj/MQSD8MbYV8Tky6fOAOk8lrqnqnG7b4VGduLLv6rsB5ZKGoz4YE8bi50sQL0I+9KDe8uxO9MjMRY33PMCEuMgurWWo5ZKD0mv8Ebeb/L4Rqhs9u4ejMMEapwywRPZ1EogmSkRLRtHTARawM4M7i+MSGYIyk2kaPtFAo1neq+ixcgeTu/RYoBz6KRlm1BQ2DWjCP36K+KaiUQvGZo62i8laFh6cQZDa31ZmzckSJzOLPkbN6+oILcNX41Rc2d4UUlUjQ2qNKW+RMlTrz05ZdY0DAPECvS7loXmtedviBXKn0S+fxXhSSfVduOSftVXYIV2myrNcDdnKwaBabkSpWASvdsEhpJEZbSPNmILtcTG9y0KYE2I0bPqRIisP+cc8AKtkg4eiDyjmUZplwMjNCQqYxSK5YvQbl4vXz6tGXGBjByMNV/3AjAmcbHvlXAMp8Nikz2Qr7omJGekc8fFJ5aA5IOfTynGGpoRAYaxfIrh6WGVZ2tk8rwGk88MOkWYstKdat7JabbOZERKzRNAXoh8StejHyXkVoPVsNj5WVxH3xucgjjWz8xz3JwG/ib/EAgAYwuMee+MZPfvaLX/3oW9/52z/+MO0vf/rN7x5Z1f5nW0hETILizqN1x4MPojvbdSCIPtGdwzsb3pnjNbmImOyN8ZkdigkjRjtyUASI4Pn82pSHfviN+JmW3VnguB6vz09E3EKC4s6DJy/efPiSSggRSk1JRR23pqVDC6BnYBQoqJ1JMDOLEMMlZb0w4SJEimIXLWYox0VJ8vDTXWoAETBSEtJD5a2yKalSapqNdfQMjEzMLKxsMkKEsppHJa8q1WoUhCaFDvobNGqi1Ju1aPUOIpTb77RUl2W6iSQyhUqjM5gsNkfMJf1QoXGQ4qUySRdKu9w6ZOyinJ2Ymjm4PrG1ja2Ty93Z+7A+nJOzQmtBa9bPCIVKozOYLDaH6wp7/gEQghEUwwmSxxcIRWKJVCZXKFVqjT/86S9/+8e0p+P/ac/vlpmOxLqu1Ds6DsBnNh8QKbsdB6sJwrBZH54ImPk/UYGZL+FQDVSVmgbP9cCLPybc9EZ000j6LuY65ZiG6znhW1DWqaIBVCOBvzJtxDwWkkwDQSIKWSJJmqXSlDz49TyW2NftZAYmkRONiSI5ixWRRkHlz0RxKDqeqMC1MdGLUaXWtDzVo5/t9E5JaKLJzc+2ghyIpfzvmTV6OYDxswDfo7VILDud2DF17756GSuuevDyxMse977c+QwM8Vfcb6vt05FUSJCBm0EfWAGDp/tgZK/GJLDFhETq0siO59Fg4Pco6pDPKFGeJBd0Uh2BNIvTko5N/TCNaXYbzjvWYY89AgQMGGAARzcQQxpzjIQRQwwB4h35ayyF/zTwYZwOY4DVfO/7ClsyViWOfHy6G5sMzjjfmAuAy83FLHzBHfcbOx78uHHoE887nMdVct28zGUuuPDChz/4bD78ww//zT/Qr31Dlen27YtOD4AQjKAGo8lssdrsDqfL7fH6Fv6t1Fm/6KdQJ5gilzm9jD/XxcR5PsrTA9rCEm3Fv5Dn2UQaCQYbuwn42K55hNjdwE5mEQlMUhvKzoV2l7dL95UjoYcPg0cxVR6N4P3yxqP8fGoTZNJLs3Jgzyz4qJmZTMg4ddkAAm+Sd3QHApN4Hm7M8Z3wdRm5HCbf8QnqzWU2Hx/bun0esHo//q410E48a9V90B5ctt/hnCZgoSbNqws6rWMqXDSMYlnxgSWH2SW/6I7Fz5eNu+RbSoL7UCiDvounNsDk1QXHbL4uE2a9SD4n55nuw3EEE8EyvGDGq/EUlxx4McMoJnsPTMs2kxllGVvvmDpgNWnkJ0LJD2cHnzHgo1EFE5AP6MmxTkW9KB4lomSUitJ15iEH0i9PF2bevAkR8DExxEfE+IYYFiEGDMmPhuSJhBjI9czSUS8ikRTFoniUiJJRKkqrzDOHRCyKR9WoFtVdw56j6vXRCBIbiz0wSeAvfnBu/8fE4HJ8zNDR07Ho4wenS7xWkJoC9qU/7+YLYXY6JEgmRCF6padgJK7txZ03kgYIUb2dNfmWoRstW5/HLtV4cpOxaslceDOrVsGISL2eSVXN8hW2ESQ4YZdVebuNyJBLKdQLrhuPw2IIHnVGPowQfPV5PUXk6eWzciJ7pRDw5Y3ufidO2FZQtAXaY6MudAsAGzMDABwHjttcnEjRHfVc8OTLktPpXMpeqp9Z2OXjizw+OgfMiyrw9ttv7Q02kmbbot41Kyg4S4KYkqk4rvTbXyQ5OPK+ZgO+GWJ18wVDoBlIhFj0K+t05Q+c0D1Y/QMkBdbgUJe/Rd7nbrs5bq+74+ayQ+ClYpgFOMa1C9zwRIR6CsqEPJ9Kt4pKHCJD4yrM65pBdfTlxwmiXwBNAo8N/HdFV2jiwEsl0wIO6K8e9rR+2TeI11J9GBpNHhITdOTLHjYAMrs5QCyAZ/HC5oKGZg06mOqw4d46Fi0ewAwBhdyvR7904S3WbsmoqK67RFvWZOoaoUqxk4EAHtZ6yQWJcxXBcmaVHdAsrwcvsVGR8roeOIGa2BmlGdIT1CHLbJaQQkKqLMyWzAYnRw4/hwONOVRAiEaUcHWKlgb8Cw==') 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,d09GMgABAAAAAHQoABMAAAABTIwAAHKAAAEAAAAAcuwAAAE8AAADMgAAAAAAAAAAG4GSCByUdBSDXwZgFotgAIpeCE4JgmEREAqC0TiCqnYSv2gBNgIkA45sC4c4AAQgBY0fB5kzDIF6W0c0kQHl7W5vVhHKbQMAtrCr87erkc0d0lp6s5hCdv7Ot4R5lvtwO8AlJ/1pZv////+fm0zksOToJdFUwYx/279QjPTwoZOwEiWRT9WwIydiNkhCCmd2LiHV+2qhuEWEnppKV6v3tk/SUSTmkRKySlTI8V94Q6d4iTtKWee3HGvqrllU26kua9IlZdsDBYd2M2SHOyZ1V2YyN7nxco5v4/Enl01t9Z2/j9xHHS2HExNbuRUvLPbWH83xDr181ebKR/KPfL9q1qZd/dkBJll1SiIfsg1tTslQPsknTE3q8lO7HInfVLM2wMHsM7ygr8WtEigCPizwH4XBFEcUFhQXetnredRZ8F9TVafhe6xj8EtAHLdeQIloY4ktjrieLz3P2wVfnft6Zr7WYLYOjViOAGQSos3I/nud+mTJAPwVIEt2GOQgSgHGAsCyPruhMcOovZ07TFlzWTb9L130lcLugD/GVvuEO6FsErQtFnjmvaYlKtBYBqTnf87+VbavLO/3HOttGsXjr/+y7EpbVkBQC1BagAJgAayGCys6z8sVf2CczVGbObS+VCymQkRPsGTB45z3mfum1VvVXerOCq3ckmY0o5m8s7d7uz/tfYfEbMIME6DfgNiAxkTAPX6AOmDn/Xl+bf25b4KZN5EMPUwmDD1ULg4praSduJjNErWiTRmNjVj700KMxihsQFRigOZWKLQKvRE5YESu+xbFxoolMEaM2GCjthEloKCijVHxRv4LqG/0h36VVc+/0+83UWmUgmexSAmEqtefKa7TPG+7hf47g6faL+uB0OyGX4Dabe2E6KvVAZZRCPdPyEQdoDt2bAQZdU73sG1jeu5VaBcZNug/6dL+16wC72nWx+21BDVBlfBIs2Bak85RiI9WrdTGDhIZVLwCsTovghN+krZ7D+9wzoS2m/23iGUOd4DFS55UPEHsAhc4n8fjcrgcDofD5dqam722RQJ8UK1AGzimhelykPOiOt9+fB6c1KEAmzYKjfTvbv6QmX/dGQ54jEA8rf1zs6l9gdawFSgXcgwnlokGkwMOj9TWTl8bAFBgtolT/51Y+yTZaf6aGJSAPoBxF+fcKdwelEDpBgD/61atV9cUvB5fsUqd4cQT/0gyMez/N9Xe9l0AswIobRjs6odIrg/OgSQnnV80XEc6hdOn+FM3774B3rz3ZgAMBuQSGHK1AEktQSiApALDDxiQWg/BHxQcJP0QglMCsZHUJkqWU47Vd/dLp9a5cl+lKraN+86lef7/7/1Xc8cBmqkLc/GP0HF7O7TveBYr3VqhH6evKZ0CFmxFwOL3zf1rkyIIWeWAVevky91NJlBAEBY3u5NwgRQZZTejXp7qqer5PPTcr9eZczfx2TMc0DXL/EWJQUUF8lXX/1w2m+RtKP/q7s4QSXEYt+e+XCfrkCsJpRSF6xZcaSvPSIRF4xT+/6tatvcCJA1iEh+cuy3KLcqUSoeqFh9A/q//AS6HECcQ1IxX1MyGkARwuEcCteuQU9GsXbn12dJF1xiimirV6d5jrECkfX1KY1zFdlqjZuBLakPpCASwRnkoTVCsmk4nv5fQZHVyb7AmTdKa7M0YcCckFhd4bPkmT4phP3h/LFUZSryEKD517r3Vd75WI29rmb2a2RqCMcKIIIQwj2CC8davO798bfJW0O1gqq6JQ/gWnXEWZ9EoGtkY0r7Lsma1ScQFSycOO1KU9r3y6sd+84fLrxeZYoHFrt21nA2pKPdLTTFZzvXXW8J0G5o13iulbHL/qa5gDBJVAmM261BLmLsf0/8bSWlu0c20Y0ZC24bAQLCdBt/zzxsBOAtewH+1MGrvB7Oq7q7DATAA7GkBnCAFlHXbOAGuobefQHFHVzuB2t6uDgKt/b1tBPrjxj1hhDLuxlB3E+C7iWi7Sei/n8kYmI96wqzpkPbrqfzoMTOnQs4+QEChHGriUz2UMo702RDCMMYyOKEjVB1D1wkEP/2JfCQimaOYu512UTjkKJVzztG5qoPe0zis8RKZBgMGfrJC5SAC757xh6ajYKbOkqPvrJuy2TuX59bWMI+2hvrI+1bIsq2cVbAmHySr5KA6lB6C1oZjMhOH1EPBTbl0HZlsr+rQdDh7+LQ6DgOb81Fw9D2Wbr4rsUpGo7bEk4mDRAbFGg5DcL9gG71t2Gq2hokRl20Htrbt/YESQ0oLB65Wj4KD46CCbugp82jnoTTyCY9YNEgcVYBSLYgnZMWefljEgEfRKq1JOzv4U2wgcRSALy7cpJhkHFd16aH2t9Udf534J8lJB6NDtGxgCGgXiewVmSs78k+nUDKi8mTB5c2KL0goF+ESucsK9HIY5M5G+QqYTOZh6t7T+sMWq60ToALBaoSoe16onXYL06BRpOawj/bHxRitiHf6c49wznk2V92R6KlP8vT4bbpBg+YHaGBBRCSyKHVq1Xnnr6bAQtWXEmJ3W2NP5bG3+tjXGSc9Ig0Qp/sGolptq7GT4tvq8oe6lW1733WYLmKilGnLCXeixVF+ZBETEzFjcCfKxewvSdB3EAuoZbbFGRuH5hN61JFRLLvJO5ZR79FnDQ0Fo0Yd/cdEWgQLlUWXWEIW0VV4b+KTb+E3+Nduuo6vPLF6P6hxw5hPIqLih5Pve/n6aImmF16Oks2DAp5jWGgziqi56kV20dXdNWauzHwXRFW0OmDSYRkK1HHKczqrt25QuRXmX2T9RIl6lqlZvbDg01icdwItDaw83qKgIY1oMaqYkgD4NP6LLBnSeKExeOp4g5dTsTDSE+VV2OyKfeqgwDE5oaIzhCAAJCADhVA9wXw0F01wglJgn5zGs6PcGi8whRGNpJX4StwdNn5M5DdxDytRkD2wnriPSIt6lqW0ecFWpZu4m5W9ibrdacqpFH6i3hVwvnqdJs0aOiRUtrCwCUAD0k0IphmTmj178vK+NolAfSONVYANHML1uOlcZOWM10Seet9V98FD7Um2dPptmuQ4NcMOazXyEoUvTMppCiWXfbBAq+bsProeDJmtt8QnScxA4oNpa7MeuvMCTQcAQAMAAABAfff8RcSpKH+G0vID6XAYPuIhT00fm5zD/vMCElCABgzBfl6Gzze/WS7GcaLDlJop2fzrumh0b9podXP+yub+kkiKgzvDa9s+WVgUWueRJBz22R8teNSWq1sOf/J5WCWG1+zUxFbURYvan3QJukeTNUBBF60Ebkkk5pQUSd29YOKn4VVegOAoZW5hZdZwMHm7IVtFpJSJBvhgF9Hm6wl4QI1BU1wO3TE51eKEvr2XGHLWMJNh9plg9wmGL0iac6IJugGFFkN21gjih5xyUe5OCkqjbU5EucytDkvlixDlRrJah48LmdTlC7hmtoAcTyUqUNibJHEGKCkn/TBbrwrjBjnk3QS1GTZwDMB9xbLKUNRsN3zB6smjQMfAUTknYTmkq4/IAk5vgIoy0RP7agXTNAXToC6YTO0Zy5mYl6/Zwb79dKJS5fcCf+UQHr0upzNaObpiC9L+Vm/27JjWoo0mh7uBhTbyN1jb8AeziY/jl2ZsBG0EkQAoerkYqmpH7YpdjZvowcsiNFumkkHwqpG8yojgnbrwwQIw44FafVGMaX9uKJ1g8y4IaziZ5VtTEOtxu1qTLRyiMp+9IVm5sTSLFXFTfm/V/rlDadW2aSZ/uTJj8G4LBCY2+RL+fKTWQzkaTrKIvZZcB5h3v1vlqJ7+R1xfIiEGMGbgB0cZCrsBVXx2nGfEYZBIaFgy7VAcibykl4UceKo9EhE7MulwOTsY8Qlg0AGhUO9Avbf1p8DG7AZiLs4fdF4KTt4qAC+nG4AK12v0Y6K4OHeJ+KbgD7+2da7ZGyDyrfs6qSE+3aqIvyxT8D9uDcN1cSEykirXadIPs4nwyheAe+VqVdjpkKW36H+D9qEJzTGruWYlyM9NFpmtwKQmrZ3UGk+1X3XmjonUTjjOw54Ov2U9MvU/fk2zmdK58pSD3WEq8YXaQ81yfIWGfJqBmRxPndU/78/8HwQ0DCaA6ifVbPaiA0+R5oNXALbX0lQ7Vqdtd3cS6Oi77S6Uv3Xbe6uPSq8b5OgL/vai/tZZvVzTHnAkgzwTmTTyHWI4lxKWKQkvdDvUpFWyXlLn94vxgNH9GGM7QVPlRUdMPJRh9ROiJtJNLBEcxNSNW6vnBG7Eq9NPLeC/46S0Y6A3y4RXu7sjYaCMGt34xesVpqCLQ7PaSn+8bsUGIoOr7Uh93+Aze/t7m7lUwk0k44Ksbsj+Ujdb0L6oAJGVlhu4y9v/Z/IDPeWpNJyFrieA6q5+dMZ0kSPnoWuF3yVvXwlWDJ0M6gIsAXOCw2O5ThWlVJVOuRdq7A15L1qwJtcl2x+s93w3cLF8IduLRyJ/bWkYVnJ3USzyhunL159oDdPhuljVnoCt/1MyuFXk/0NVxfLK+amsxaerL4ZyK4nBqOFs1GGCFomkQ6Xq0r3q6aOZk0ibfq+GKb1ZTQ9gkhnQJg4g2/lB7BGGcEAJ2nk1TA19bBNLYhd/fvj3yEy6iEjtQNqMOrLk5X6BBXlYSCEeF16kJ0WX5HkpFepuY1sNVlZ1GKoFBf2NiurhaO9BGmA6ELGRyJGFs6NGEYmKABeABpxDgzFHYeIBFxTIHrgwKQfgonMQJy7AJZG5CSKk4w5clh2xQBJWUmYyVnIOFKIpcak4U3OiwaLFpCOgZ8+Aznibw8Rsj3vwAm4MCh9CvsDNuPMnEyCGFWpurdmrrQOgy6fHrz8HDAwBUIJG3hkLmoypkJmwuYiFD5aiVj5ai7kRdzsn3aEBMBxYAJwEXsNG2hYAViAoEgFIc51MAaCq0W4D6Hazx/cOGo7466TvbOBizrDwwOnREPo5lZtpIk0XZcbzdGaaDTzVXELzAnfzxVgAPItM8ay0yFJay542WG4Vz89zXwQv4mP8bbBFgK3KxCtXDcriaVytv0FxHDaptwN4i4ixa5bZbS/wTp4aBGjE14ShGXgfL/v5OMDq4Aw+5DChI2SOinFs9nTcCWYnhWgV6pQQp4U6I9BZkc7NauddAD7Dy0U+2oHPz2aXXRHsKqFrYvyz6/7l3+//H/8Hvu0mmVs6KN3xBPg1s8wzXYRe7FzzS2+4e+vd+7z3SYzPvhH57ifwb4j9/vIkBgyTBmgBtCE7kEVBOMRGQ0yQx0Jcing5UuaUK1VuCalzT0STOCltsmQ8k6diSB0iLs0FAJia3TXlCTDztH/eWQFsnvQruGCAnPIKLaz+8dRaVFH/9l2KE9AfjRCWrSThJZcMekAj/VFa2eLLKVdEeeWLrKBCURW1AfSSNvJuU5v4trnNvNvSFr5tbSvHSvsL9OrKeFReOVoVVfGoumr6aqoBkKuurjqv72/b2raR08/xf6W2vT0Ae0PRu7fA44aOmKx7HKAOjpPsS2w2HFyJeCIpJBMBAtI9nTeXgIiZOyDnT4KGi8ZIJpovH17+EMdbjNh0SMvmRp+Njnfjwec/CX5Bniio5MBWkEMGyIAbAikVIQNict6SgQfos1wq3thl+n02HGkEKJEOKZEm76JSPiP9GLWAG8tiHNx4VBPQTWRvEobJ9KZgmsrTNCzTZ7YZZgJPlvssNxtvSEFegQ2ZNOwmCpeGCq+M1GTd5vUISsV7vRDbj6BKZgeP+BXhca60IE0UGY7LFZ8rPglWJeJVZ1yABIK0ghlySCepSdO5A0KCknz/CWCskgNboQsZcEMgJURMzl8Zu+QZ4YgKyjidQZqkTH/1l1bAZwu6ZUtZYCu9oE+oBRfWN+GCCketdPYYmFjBHkvLrzEXpTS28VKb0AQhzxObyNqkJs9TmiKwqc3omdTarGb1bErNac48t7mCm9f8Rxe00MiKiYgWRWR/Al5EVQJFTlw4cakmjrQcATEgBsRV/V3Wvk6APgwlkmuN0E7FiE5HcmciobMR1rkjhHe+m6DvhbB1O5LqKO07RGKdMaK75DsJ34E0OrQUfR38L5M9MRVj5X2K+E4kVhlm26IF3t6XYhGQUDPxESRy8mppMFRsDlxJaZj5ChZ1dnUEOA5HbmS0PPgJEb27OiIaLidCcjqe/IWK2V0dCR2PM3cKehYBwsTuGmQMfOz3VjLwYhUuzh/fHPX5RgO4/OupXGStr/Oebv2fXHyEvW8+1SdbzAbvF5+w3lTrPTv43VN71tpc1+Tj81TuNJVbfQKe6gOLtdJn/qe6ucHmE/lUtlub61AKzBm/5ewjjEn2AWIP7CPnhiF8s5+HUjMsp6FjYGJFKKcQRVGIcqL8KBd4jSHgQOjC7x6rRDPnxrxfZIJsRayxa906tO5tGNGyjd7eHuIP4w9Z5Y9edmg54uS844bj3uPVY89J9c1bPtm9rPncl/8YwTARYyJuSY2EEKMjTgmlIgMXYZFmviqtOvXETldUec1vS3s7241e1jcUzHFU4z0RCGjby311ZFAaAKxyg3nWaQ/eYLMXxbftVO0ZlLgpgt3aHB2XGDrBtotQtzyqth1KLYFi2bpDmKFHbLmAssmoWhGUWoJEzDJoPBTjP89udaOaDkotAYK7Ct0yXlzvbeTViqp+KHG269kit93QAX1jpLWGqv6BUgtTHJnbM43niKdCXDl4u+ogdSyxZipjKM0aYMWXxTWb8GyGKMiWRD0FW18+ttgSIYmtImTiA9y28hHTTUulJGBVYjocvh0AF4fG5cipx7jxOVIqra2d94teBRt+1pP6IoT6P9cX1Y3RiD3A+lh9KAip0zi3rvqIK3JVOKe2+u3Uz67ZOLe6+g1uoWTDuc2t30gTagqcm61+40vgBhCW6Tv4/FMiXCgbKF8CBpx/duhTXYMQDSbAt5aEzV+iHOMR4bicSTARnK+tW/bGi1g3ttfx7FdhyJg4Hu0OlhLnNhvX4U5f/i6wt/lcvE51Rm5j4CwnoqpAUJ5f9xOwsZG7DOpk5xBYMBX4mrOPIJ+iFtzfOqdb3a6jO3V2txSe712V82hVO/88YJzhncTGw621U53uTGc7B4MoGEFJ9WL4kumm8/C/i3V4VVdTRVurr7bS6vq7v9pWeZvbUmVVbWxTZRAeIXdSct6SJEsxw0yz1Gix33EntLnoUsd/n6pw2tG99tVYU821tL8DHexQh9vZrna3p+0QDmcuFJRU1DS0dPQMjCpV2a3ZhTQh/FvdU1xesn5s+9qnv7vDLb3/UXFYe2uAYBTtSyGbazH/JmDWBYRzgt48VzTntY3Kg8xvdfc734Xaulh7l7rcla52DQZDQADxCMi6UjZSJzrakY51HEJCICH79DsFy43WJEaM33CXxlSDOOPATeCAH8oDiiodanIsEPZ+R3NfZFfAw/MTbni7sGdfN95IocYmsUO4DcbP8gXvpyPaj6Jyj3JJtSI5N/ErACrTh6KpQPEBRjImcGePJA7chHhDVT4/t+m59J7PsFoqfFt90QNq3KCUTW4fy4SP64rLeLmsc1pyfD3IA4QJqwcJzAsnA7iH/fb0ULZMYM4mEwgYRsYIAE5AGvzPNmT6IyEE/P3z4f1OBchP+nFZgFfZwX/n389eFh2CIHoJ0PWfMQwU1H0QleDwmYa2D6BjDAYmJhbWYOPgDC4e3sJff7PHJ2DPgcNw5MSRM+fF5ewvrlzqP0jc9p/c9n7C/cfmDjERCTEpCRnpkFcuKCl2UO5950FDRUtNR0NPu4N+790MLKa1h5mJB/PiuX5n4cGLZ3sP2b/xKfjy5sdndJxuqJrqluZ4+iX9vkLodJKmXZx79BsoI0Nj1DJZP1MjM2Nz07GwNLOyWNbr68bKrbU7N+Me7XZm3PVg3ePQeIwNdmxnjO8m2MyibRcJJhMoxFklddLIdKodzZ7eB9LhWDg5ODv2hdQZhQcX9gdS02BSAylAWcHUg2toBKlCFlBs0OyNIRXYAo4DnrMJpIxYIGkfZBQdTT2mhFago2CgNpP0YRXYGDiYzSU9vAIfhwCXEK9FpEtckBCSErWMdMgLClJKslaRNnVBQ0lL1TrSoi8YaBnpmOjbTJosBSvTsLV9mpKj4GTlYms3KXgKXk4+Ln7uDpBcsBDiE+bvCEmihZiQuHAnSJQspMSkxWUkOksacoW8tIJMF0ldqVCWV1HoKqmpFerKGiqaqktr3bXVdNR1Nbq3Sly/MNA21OkRiRkXJvqmBkXRcxK1KCxNrEx7TSI2ha2FnWXvSdihcLRxsu0zCbkUrg7eHX049ScJ+ip8u/rx3r8kIMW+LcY7773sD47s/9Jd+OiNT9767F1/Ifs/vha+6fbdx+4h+zW9hT5f/PC1+8l+1c/CLz1+6zWgrwfJfsVQYdjPq2Ad37okZLU98HmPTn524vIF7isECRs4F5ESy621yx7NDjmmNXMxlVTaMOYyPnNtHl+aCb/PfJGzSCiSiBQif1EEaSCtZEjUIpaIU1ltSnjfexsGnRFbtmy3z4GDJ5zOUpyBcXze1bl3aSj8NvNEjiJXkSgMvxN24jmVwqoVaKC9d3/xhxnkeVTa/Dmbuhiu2YZ/8xb77Xl+GAhtkRXpkR0i7mfBHVqdD34eAuTc9eaviPeUCjxYVjFNB/2oR6Df1FV3faC/96shzfwL4MLvJL+gYej3no6NmUuQaZ/lDBoO3EJeMHEcFtXVFoPiYZOYbtVXkPP/qxkYGrnAuWViKg4vyl5LcwsE/qjqkHRw8aDo4kHHxMDCxsXBw/dgPREhMSmJAi85GQUlCClwZz1P4lliXUm9TO51Sm9SeZXC29TepfExg/dpdaf3KaMP6XzJ7HMm3/L0NQ89efmexc/8/chXb97689Pnjl9Z/S6wIAMFGyrUYCGGd2CZwHvhHTAzNOEWwo6sEltH+wBOxk27WA/v47yRiEa03L3MXwer8Uqs1laF09iIRBOlc340Mz067x9tPjukfgKmTocLaZNVIukJRjKwwvKdctplJ7W6oly7GuTBAQjkAG9rGMyqXV8aiwNHIq3hwpVbyoTB8kWXkJKRJzk44FceOyEHr94+fBuspq6hqUVs0Xagp2/QoIyMCft7nplbWFpZu0nH7prGYHF4G1uZB4i6TBFaK3e0Om0f+OTswvCgqzpW9RoSOU4jKQeBdGVt2nXo5OLmQUPHwKyLBiiu0wWERmu0upQMV+Mq6kCRehKJtgfMLLTRsMMBhYBz9pBIDS8f/z292Q0mln7YPV2EK5VMM7HUsPzmF9zAWSUqCFNPnB9o1yB//I4ukW0GnhoHXeUGboYbRcPxK2ubfUny797B0clZLFmEtPxFSJQiy3hz/am81Slst9oSBcr50wLn7Db0BtBnI8r8G32eIWSBOw9fVQwLOgSuDVXdfIKiPkm31OPLhGBCRU9IPFIcIfElAanJFCo4pHJYHmmONCKd3tgrpkrkHXnXMvuONJLFqVlk0i39cYO5d1KMIPSJS/nkfpHFWsm/mjsnSeU8MvuIMsadhgyT5WdHl+kl7YFPybU9MjqjW+wR8Yngx1pB8rMsiePddQHv4kmsJPGokkdt7GzJI5SoC6qci60JtvqiVXuZBOndO+f2VBafxDv871Kl+v24u+gtBUe3qL0d6fR48p50e60n39JvjN1IBcn/9fNM4FHLtfWJccHPshIPFNCgAR1YQPn4SAHoLwDrGqBdgAvbAC75AM5aBTi1A9xjCiQAOOt1XDRHE9AVLgnrp1ifzrtDc2w4d5YJ23+UYzMb53ALh+5oqYgV+LAsYyF4mDD7BO5tVv/hOrOgaq3fDuLWomVYvowp62czMJnvQcMIMpyvaJs/eKq0KOcwTu+dgyRCtO2DgNqSopzM5Ndwjci5JS9bbFhJ0pvD34DImiucxm/1zXGANfGonKOuqKV3Xhd+duRSCvWRdkr9YTB7dobSNLtH0J+/0vV8tnzdO9s51ztJJCN94hVlWketnZkd5U7kzjmrQ0j1SQWVO2MUKUk028LHwteym3xFRLmjpXKu8IUPp65SuavMng6xdPTw4Jwb5O25cunVuVQHF1XO34R3xnSzJefoJm0WceJ24mO/Qm+kI3JA1tssq1VZxpS/JrdElRzI+7mitv9yvj492d5f5UhEbaTczV+eH4/iehBZSyRlpCpgQjvYWbxTqnPGOHfUveW2N2f4KVEMyh/Wjsjb1N/lrUU2fKGCEAqlUiiQ9v0TZWtDliOA5jYqXIBWoYj8mywlBKzXn0eWgesrRcvWyegNKu5AVEFNIaf98doOuqlEreeubMo6t52QkiuEzRZZOmxhWrnFVsqA0NxHerdpiAtgnHrDYEUbEAQhpUBoR+2byJUvx6cDTGVw0qFjtwWAtjyE/Bkb29ybjoi4+84f6erK/VXMf+vGpZbI201V7VjikpV4Eh923kpktuDFWtxgLYYyxYvuA/3wcDs9d9L1OYjksvWSNtACnVAsd0tK/5zwoDunlPHBYMc0kj/oj661MfOh3hv2eTf6SB4Kp/WPzmf8q7sYoJEsZyKfzvvD231TPzHvWXyncTcO96Djk98e7oLuEN9jo9Zkq/gwFzaSRwyjwaZVYuDSco4BzhXLcbGrwuS3rBQfu3hG4mb5xK+QqxJ3UaYZGyAtKdEfqSW+Qoy/ea0IS5BaMhhnI8AKst09modOizGwWqkaFZPRwoQyC14YdbRszCxZphxBLEJHHTY1jxkMrl3zIm2ZWv+RZVE0rUTuaCugwTLuh+F7+PVtnMEeIEy992pE2iFjTmPyX/b/tMl99pcfP1Eca0BM6C/nFEvArjfiQwrY5PM3c4q9rRuXCPZnWSG92t+n2ZX05V1yrdj5vX7ZwvCsIpQrWNtkmeA6xuffPjJz6/3bwYHOfsj20rOtVs6ej/cKJZtt4z+RRA4ZHWpckudHoRU4WHwsD7ee4TrmOcPChQGOwVRSsp31qKAo1YcMpJmQathRjh0TCRHav2taj+ALxnByGTZAcgpIhAysYQUmOuO2HTAMdDXzEw0nd2+WcqAjClmxazrRjYpb7WIPT0MWB9nXWwAsce2ExS1iIYIEYfvyDZfELrlkIOewtDlFJPHxyXso/HCmj5evo9HwLhyMr7QbJRPy+ZiJQVv5jhBBpWjNWphUrMeEsVggevVddIPwzLpfOB1o1JA2GHvW0gBmiHU2uUYGrFQ1izRDhYKpbK3nuh5OgTJEs8k6EteK1GYxEostL8Qx17d8c7hDxcnpJPO037U23vyKu4e85MdHELbq7bod3dHewzG4Uabee3qsj/mcwhodJzUQjZ9otODlfYM0UL5sZCYZ1VNHnYKgVYYL5oPm1fxj28/cW3N6R16oPxi3GIAh7Kl1wvDXFa0tdLOOXJOlQ4SstOEnkjnrW+DpeioIs7pQrjeI4O8C5eGimDJ+EFVhxo+h+iD4QEgxpehup6Qxo9QUQABnHTv7rUprjK/fE3ldBlV8S0d2u6rSfL00IrIvxRNPzPWgbf0PfhIcZtqoGgCS6Q9MUR5q/7H652IzAdmxro64pIUHzOkcA7rIN08eAXdDpGmlCVUlitFEQWGC7EfF8xiU9Y9Q4Xk2M5VT0hcjgB5ao5ULpGP/5OSpmB4xuWcFAkZrhzVdCTzc1mL+HJRGjsTW2CuMDmN9TlCBAK+S+ivVuld6WPdnZGm80k3ws99sj3urV01/cvH80JUhbXZhI6aFs9gQpkVAcLMoHkzd06IcXGybu5CUuQeclarq/8QbM5QnPmbbOaF6PNtGPBMFIwtN+pufYRau911+/YLGlhftE7TLq83X4pFr08HgfrXRG/M+UhTm/NiYCnOtyU5BiDXKKSZRtIy1WpdFtzL9QjheBVNbkZEHWudguhuMkSRCnJBuE6W7N/EnaBmKPr8S6iL1xA5/B5EV/C230nJIIDCM6RlAMwefQemgfL+qWMimk0m72NR42+G6m+XvfDpc8zPdbb7WcKVHlDDpEfvA4f2zEfGbCewFNQok3bTDeRORz2PPXqdMK/aGxUXPNow+sCUVy/eZkMVEaskX/2AxbfF3vSVysbm3l8g00r4m2VoG2rOnbga/8T1q53tpinpeSSo+Z9b8EzfH5s+ccxzFqPkDOd8d82J3+zPVly+/Gji4DRbPGNFjCF8qUdCso+lZaE1Qg61KP7mXhQLLXSCn64+RePb+2LfJ2MH70vtVkfn2pq1vS5KmBFe5TuvfMtm5endlCSu6/vKfI7V/v6Pv9lDBAC2s9VDw7hWkQHA3pPV6VTtq51S2EmtUmsZCObp0l5Y+POk6yKVnbVhACxPK8YnD3KpCqcl5yRIQYFXn3xUaBj2eMRKXBaeYY45RKILbPQD6K0RpOMOG3y8dOCFuVvA6zZ4/XzwbYNG7b9AqOiJPBrzl5tEoZlpS9sRlJIu+FLrN7tC08WEce0DtghrxL6OAf4KxpVTEjc8TyqMOZKJQn3npOfUcCWKFY+OFi6GvUNznGISsXEL3DT0mUanEyg5JljGvHE5PnQxhcCX/kwEM40XriZIylGm0gi9SuURukHgFCBR2k0AfCgUNqRKcAvfJ27YidGBBHYp4cNScUUnehlUxOl/Rm2M93AbNQ+yTLXEd+0hO+FgBUjFjRGo7AYeMhQntJnBF1XM03LrlBoRP1mKbr6X+qPVjmqMbSqh1c94Ed85pVmO+U+cd2Dn6u3Y2ht+Y2CuZs9MFmpIj6UvxwhyjW/Dejrzgb26sOytsTxyLzq6I07b27/gLHtAP+7DFRi9OchzcBThnkhqNTtt08vhUiGM0UKFAP2A1cAxycgfBvJbMcS1EbmKm9As6bdOpFMueHuPn5oqNaU7vXBfqQaVjBgEYZDg1hKhOjcIlU82y4Yjke4HhtY/5O4C56N52tDf/zbbhHDLHX1V8OwX1nYKSJozy2qQAe5h1bGePpTVJwx3hPx90yic1MdO10B/nMYSwV/uQ0AIr1KYDBXrK6pJHiaoLYw2q50ejhgTuP1aztz2vTYvRLB0Hu2vsFAw3r2qII1Y81AIZ4eBp6VZTfT7LucZI/o5kUoL8ezTqrS42yOtIGB8ibSDgit/Ahf/mkoNvsukA90swq0MafSenvzujsnQLalX8aIVdm8lUc1TnVa+fro1o/1cRVhhi4CZH63P9gbyS6eTEttn7aVOvaa21nHrtZI1OzFunn+Ao0VpGy6OnwZ51Rl9C/25QFd7LIGREkK+f58NmIEkapy5a+O1s5gMIs3JZi9X1G22Dr3/wFLiNBfERUJM+LqA6ym4IBBibxgMzucS8V47tqfE1HGwjB/y19nSD+zmb16goIaHCzBkzYQyAmVH5vKdbHJraVgzDPQ4d6BR7k9m15OXxdYjkMYQEBxPND8/85Cm9vBPww1bUJVNY9qrsTggcQgEoGDjGHvb01BQXOrEyLi+iYCt3WUJnDHhTyjB361wCm03MupIg4A37F5mDu5/weyb0j4S4PzMzHv13SyaTFTeMosZ/CFjwz1mAgWNuADcgcAgoe1V2mOlnC5C1bGccjMAh4AkADLxjyzj3JzD75GwRAWAT8DwAh2OwsDEXiJ9do8byl4Bn41oCvo/fHP9BFgj54Br/SZHx7/Bzm59Wne3ysNXZZeocrMeX2V1bN2TzbBvpnu5u39o1ZNsf9Go1wMYRCGwcwLQGI2TFyjmeJW4UthSGLG9f2tLCgoGjeJqcF87bmvAEhlok4oegKnd+1+gqm210vLVp0Zg1wevZ7NXVC3ONtvS+XUi/pbhOsirBSI9m8/invDwDaQqhODQR8DSlSKj3XyWOD9OFBaEmyeTdu/fsoVAwotENMdEF+KOqwfI2ig02vqRJ+6AbMcY0oP6PqCfLHnnUHxPjE8jmU7IISOdDiCwS4sq8kKnJPTgaaO1uCxM1J7lbw8QduYc0qFF0tYWKHUnutjBRx5GbZo3Kz02PdUY5aLf6lXMqbIEL7f66Nhqb/Pt3aF2YRitS9tmrfXUcvTnIWRVY6gSWou/9qwlT6U7+Bf2DHNw11fue0pBd9vjgrStU1NUfFtINejpDr2fQj6aXDT28qqSL/xAEnpGRlp6eVsfg1SuecA10xR2LNK+Wx8Ah6ZCf8pCaP9f/M6cpnWgdrlMQGFpB1p5UdqbYYS5T12sBHFumyJlcI4kT8RqthY7GBS+hVCj4QAU98WZmWuiV40VcEiaLE+175lTg8hOHTpVGQjyx9zHVkgd8U5vYIL1bXy+GLWwT1IjvgW9hyqPRAj7DYbgeOXif3M1zNWfEsFoy2abr7ApWxbfs8paM6O8NxO26R4+0jx7rHm/fhUVr59DHJ9YDSomYUbArL8f6K6gGFPSsfGIicnONM9LEc0aUBQ9uv7ZlS0wbHNw2s3Vr+kCrpHTI7Tb8pv2PKWpfwBJFqbxwSn2tNwd+r67fqctP4RXR//ippIhOXeC0BMIE5oEOwEzE0qDwvzAYDhfv9qtZ1KPeV0UOEqgoqnFbi3PCGWB2s8VUChXAI2AsFBkwsjHvPIvJeDQOYGDa/CpGXI31vTYNnim310+NHVpUseiw+7Cx0uCF7EaIL/1BZYvIWZRUogO6aI+FH37SIk7Kq+0fqq0bH2pxLG33r+rl8JgEEkckltYLyxa3NOvxpOqhwaq68YX2rnUXN+3acrvP1FMbomk9+HK6jyKUkEl8MZXCF5PIQjF/nb7HElRhGzXHen8x6L3JWpDDDdYM1TU0DNVpkNgS5OoSHU67qtHjWdWoxZXoVh972IthLCwBz8bC0IXAwkTZkBICm10cJF66rByliCYgi3btatvXhrXmVeaVGbwOf6V/ipbDEP0/WHXR2P9zVZtRcM/a16zDEQ3cYs4KkCsEIRhktqfC/kbjONxcj1/14p4t95YPL+cTz5cXJ/PwsXi2zdixc+nI+pkbG9Z8uWcroT4KsRrUG0+/8ubuCTV548zMRpJm5/3zEx7PqvKs29/HUVPTWRKt0OxcrE4d39ETDukdpneVZRaRxDkFA03fD1L3UWn7uhOnJjjuOQ7Yy4xF08b+KhdmOsnVY9IVkBV7bgKqLwzX1pJo8KJiCow8P3vPN3vpLDQCzkErWmt1loUdnZZhHV1CPdcVUb+i3bnixMy2rSenlztXtEU0dJ2TUJWiqYiNly5tNN0inpc7m3qqxz+MVz//NEHJqiy+08ji/kpqkV4l3u+b/sdS9ZhmoWGdwctPzGzbcnZmdduq1qiGnq9lFLqxfri9o27EKDBKqeCF+vm15oCKZDu56ZEefbnW3N7pXqRVufHNTQuWUaklkuu9U52ji9ttQx3eNa4kGhN1d8MnpNH89XKhmVO5MgNRw3ybv8sNDZmXCqcL9TOFPkVt06fPgXzOgY5Nu4usoqk1wo8+n1zT7VaoT5Zb7bq3+tTM1q3FWf2lxyqnsWZhZ0fNsPHA6uR3DN79W92grWubf/d0ZkH/7ZErOSQGDcfiJ/NDc7o4rECNxb8I/U+XMaoymi2k4/klG2MNxI6aYeXtoGA8XewestUCIgsz+lDi+Kag9bJnGwEAh8MBOEClDh7e2hJQ69FqqWK6BAuD1n7THaMLLdOLdBOOFs/SmkBTp7EEQyfxcIWZH0JDhmK1YWqdWLfG2bCr1+Bl6bN4F+6c2jW2bs3SJZNrx3f07dTLjTJZqUm3E3tyGXhq9CHO51HAADViyXCGz3DG+OWpwUVZPguz+hdm+YxmddfcXHEz5mbMSEzT//IVh18feT3yL79jEyS9Lz1iy7IrhT7nTeOy+qnytbObLayyyTlLLAxdb8/yHvX/vP9jG2vKFS3lCNyTUahn3TITri0PaJgIqNdu//yn6IIlXU2apiD2E/hkiW0y9HNxKioyVlFA5JcJaTQ1XxW0IhSUm5SfBU5r9xc1q3XVVpPhchYgtiWNp6PZZGRSQ4jc02oNRiqKMWLXUw8KK59Iv+lZwbbhsVbnyHhTmd0YJG9tJ2ThqCqhiKrEZRHbWoPkk/HSoODQBytHymFYlOepS4xRFIcdDc8R9vjvXtXqdS0LBG0qlW10zOkcXdJQ6xptyqrzpdHYuOzm8kIYGb/qOQJPKddsYGqYbL5MLAIXXTRs9MxLfppCNWvMG8xZJjKFRmVzZMXIirbhpsb24XJkKQyQuqbt/e3tZpd4Htc9Pg67gWNLaFE0thiHZ8gAgCHrvP4ES5DAUKXGSjXTAyUQipE4DiPS87T0lniwc3DOjSWzHszqmxAkHYgYv61rfBqQujsl2gMSCPks2tJt93dM3tnFc/bBo6X379Rff8K36Gma2R/LL6R0quBouaa8jNmVTfimAIbh0KM8yz44euGsSx4vhQ/z/42F3JLrti/dtTTH3zY67mwdGbPbS6HV2ZubtASaUixGEuxBEU2FetfzObrPVYJVwFvfAsPTjC1x7fPMUZ5aJ5T+A2CeG1w0tIx3zafwS3l/eWZdTWAxmRsebOmQ+wvaYL8X5FASQNDtygWcEBYLz7KpVIYGkT/QTJBmQxfEgUDHjaH0YAZAYDmVW2O0YW/4xhXv4sQ8FjeKqWG63e5WTZt3yrNS8L8DLlmuFIaSa8s1rK4cQkgRHA0wI0urRr76t2vE5TPk6qRq/nXonT6VzvbV/3abrHOM1p7V/7ornT72pL2uvUMX5xx7v7R+bcPaoSMvLwcu7bTLoT2wK5+633969LncV+amaQ0iode8+ctvvKn69l9lGD1ee0IaBgRqxfzgPE0e+HrsdQwFQ7Wo2PHSmKvpZ/r6zqRfjZHGs1UWKgWDufU1y66t4TXwInTBvG8uOE+TRw8MnFYHhUsTBTyUsjDCnTluCYwQhQq4aNXgJYSPGd0iD1AN8QguF4EASu94IyXywGBQRHisLDbucCYuVk7aO6K8O6f+ZM1iFCBBH3yxM4ORoHMLovGPKqD98zZ9tXqSWEufSH43w2vH2prmBDk/3Eue+2YaQ+yjdd+tNWmdobT6n8agzgw4f+P/5gAcVr41g80kSEVEokREIIpFJJJERCWkzKSmnkpNOZWaOp2w55A5kFdlEgSY2OWmEOdia51zzBRsZ9sEAVWmQJ5Z9oKpkz8NcDDQqjx1Hlq55FGV25JumZdbJGL5BobbGjLpcYJquLOmscflX98+h0Jl4pAUSnGoyMiLQx/UrPUJCBaSxaZ79tf/xLGbVGpdU0kAt4k8lA31S445SHNRORkEESYLSnH8+Cye3ahU6xrF/pwmUnMO9Nck0Cbqk5cBhVL9m9oopi9N2dKo2LetbeTVhuWRcW+KX06QVUoysfy0JikVJLJCuaDbpTvl6KnSanssDghH97ISFouEwYVuSrjIwqrua7dGX/zJtNGwgCJgEXFiJj3ZFFtoys+h5KGJAsY7z8umvsEGo91YjXxm7Os1GHp7TKZeM3pzsrG0samkREqlcvqhWOeQYd5OzwvIBPcokWXEopLcRkYBiBwerospOXR/1YOHq1c+eLAK6EfBYOh+DoAegMGlGyd74Oy5wf6zZwcGpNA/yCPuOgrHcuk0DJdM/lmsC2FqeTxNU6vRyA+bhl/GDWHpJD+P/tX9n+S/OlY+SxTAfI1jvfZ5w6W3Yb+dQ/q2kS5609b5xDZZAp8MPSFu6Wz5qmO7p4w03yNxTYf7r0wJ320s7Zl7SPawpPFO+UjcG2NKGCHwzlDEY7m9/AdbYCsS12FYewl8T3Z3yRfjc6+CBcIXBa395OjMBdUvjbz5gmf5jt63zoY3/JkdfTuu8a8B1wRrH+HHTyf4nExY9Ai/VjADOH33f9sJhf+cl3vwV31geNx0POj3KA1LRKByuHSqMxGaookDiUNTTqZE0/zv7I2MWH7xUi4z133XJtTpxKISFwoskV2dng9O7y+GDaRDBmBFAw2TOcwc9JMx5nIIlQU5eEMeUV4pYvKcQpspPW9UBMiPgE1dhpalbQwrTSuuc402ZVjnMugcfHZFeTGCQlv0Jg7P/BSZcj8DTSeiEs2wyp9z/yvP32PZQORP2pCy2wlqpHN03JbLi/oFHAI+FKf0aiMxNZK4DuP0n/PXg8o2fp+Dq0VTv4eMOuOC38X6ogdPPkMmOhXfZZglSw3t7A0dwAaxwZiwfb60Qi0Il/va3vaGZ15fHN0rcr2vnVEOznyOKkkzbVQxNMOkAoq88NCITgWMdq9QyPKNFy9t3HTx4sYlb+15qMLZeeZVyIvOTzpCBa0qFUEPS6Hqi3GjUMGGH5fBUnVwbK1rRJtdDKCfSht9Ezty0HuUMtRViXg3reX/9V73PghD/pugIwRt0DB7JhYBSomIUXAy789g5wLVdsJRByjvpxJk4I92R/sULUwXNkVvd7bnDdz3+TFtzo9u2U+c4fWD7bXWNUNgB59P9Z2fTCT8TT4v1rFm0Fo72Bbe4Awisyh4opwfxrkWxLu2jCeS1m+zdo495QIinklZue99zYzqGzOpikZeWBhX77po3bcsp46vc7AcUgfboeVrnWynlLshRpKTUK38eroxBbOe2bROkmG9/esqAZFcIodGlTcqA8MpSSwWTJoXLvRzdDZM0pwVRaIJ5JxJMzg5Cewn5ORifNnMY3ZoLCKfTM4rN+Tnk6w86TIV9Swq+vvo6GfRkOS5En709pvB5Qjg7vt0HRlATPYkT+pvbXcq7kw2NwO8dYxzInVBaGFYcPgm2s+bIV89kchFckC8MvRAoysj7jO1FErcUuYYagL4zYv54GLh2eTkL/u2PDeZQXMqOHmFSuXt9a8ho5zdkcudFcriMe6IMVxsy1hu67GQ323ulL+1vuv9jlPBGewdtA72DZqF3/XVfeu2uhfeLYzfPXx1uAzw+M2U6b5pUQ04lBIW5NMCHw8nYM86kwKpSfTJck/nHF+kXwUifv0FFXxpBTkDRu3+JrpvaR/up9k7yPmxLnZtRSO6F92o1WXu/yIvJ08n1hI1LjcYNSBaCkbKIJK/kyBhzYUL4WXCH613Vzl3gJNy9LfY0JSw4HDjz9v9mr5NSQ+j7CMASoVnFM0h78Xl++j1GiTn/p1d1cJrkXgkbB6bOismhiO9p6f9IkcTOm+e92Pfy6+0mHIovz70j5lsZDCBi4+NCDZR1d8ulc1lSz3SZm7zWiJ997aASHGwPPjLfbOe2TwyXXw9atDykq8T3VKhuruyG+3uYXN/xdOPgeFFSWwWXJoX/oR1jdkEBZfPT72oOPc4+9byjYj9uBsN8CcJ8Y0XT3rhn/pFCpVMh2Y59hfRKBDxK1rN96VKHlBZ4scgufdGb1QqfYKcH+etVa+W1LJKWGqWnEV1/xTlbWpniVOR8iwt7M1c9GxvSDuTTUMzYyeNMn85QYEF0t33A/+i4lwxvI+3dc3iQPDSbPetT5o/9ANzYWldM0j9L4arjxtSaSKDUCjSa2MhEwUhBROQ9JXFxSurbsH4Wr1IqNPzKEJqjRr4G5zmKCo2Q8B/A+oaejiMlp6EnQH9JQy01IbHVw2/6JEzXX6xYXb6XjaoiN6mnJDiiXy9598HnYEHyMp4Mc9zRtNjffHnkgcZy+YA5QxcSB4jLxtxAh1ElnCeHvCLTI3MoDKoIeY7n2uFFn3RAKGJNVxArKFBumYQ+lyBWipjylFL9CVpScOQg1nzsw5A0rvz83uGA++Ip78VQbAUGuGh8ULGr4kphOxjhl9KJ89VKCqM34gMIuTqkdtkwZSNzMIg/5RXVLZBi+xjrcDVVQ3Qyn3dDEl9Q9bhhfWBd8R927+keS/LID4POQjBEGiEh/qLGVcSEvOyjj/d39GEpNzs4waRHjFjGMYNx7Nea+jzxS69C5uTLETNhaU2PN5puHLu/JmuNPWvz5+XP6WuTHvdb+eKYefjBl/E5+X/34zXuN1Nk3LshX92VMFKg0jPOcLhXoKxZGipKkORFPuWN1939CRoAbRQgCNRBQiKDJYJBt2LmC+88unDk6xCIXbsWk9w0SH23LsOGCJ8XwG9oERXwqPz10UVlTpwOsS3ojQskUp8aLicfjkxKTfnmKHEF1fdLTLKX3vLXuuob0cUuGfepGdas8hA/NWb8KvBLNKTnvnYb20X1Jg9u51brHQdXVfl3ODZb+1UBMcv2+vhl8teeZe80nZJXQykJ4BygSUKUHFHaHu+PMrKJu2Z3sESHxIXy4uDap/opokx05Hpy2HSLiyJTKAVxK+EhPY43SNtE/CVwuaVUTF3Jpp/E/j9dn7Sr3LoVgEioUSYF9IzUY1mAaPlmNxNepgpvUEZGE5OnHxLAj/HRC9BftydYKacuSDqwyi8nzgDlJQUkCGupkT95L8djIpb6j8/ruWAD3M/xQ0juDfnA9w3l4tTdf8CiJU9ySv3ie7MzcBPnMcDG4Ef4kwH1gK8BnnAgPvssPq+9uqa5UMgB4tPeO+ysMJngRzLB2uqpxuE1duDKQwyjiCGXIldJj/Nm0I5YgEBt89daZhR9tlrfjuwaWNgv91P10xnkR98B9KEqcJjPbYqP708qJnY3hf03jeqMIXuQPPvfzdONd/HXf6S4E9vvLWVgr5Kf8P/Yod7xyn+KeCUYPFl/NB2sM9WcP9l/JjgC8D5w/JLuSXqMRcl1tJz8utf34UmOJuCzD2nbvz6Vmop3zJ5ratr0m3a5jObPaJBPr84HnSGP/2ASdVC6Ug3KcJUdOl8IDoiwfkbbX3qxbO/Z0nXVZypjKq8u/mswm7K/pxVoZsaP9Rb0XvYc1haKfFCPUeKH+nXWzIquiftSV5b13ovdWTmIH4E3dxzSaVrEAhKSaW23T6r6rLoUGg2nULF4D8IWYz87wk6YhTRcF+Pxfv2kIrPLiIKaYjMxwDUbpx/PSIvORfDpWZ03YwC/RUXjwiR48Ucod8lrw1pxRIinS6jsWXgxUlJeBAInJJJSU/46BTzn3N8YawEKmJQSFwyLEXX9qBf+5pP5Mul8kuki1475m5g+3QlpydGPl8kifr+A/NEgOL6uVg8h43HS3k0howOaOIo8YkZZde56Xk0xG9/JOF5HAxewqMBimqlVmPnonnEJon8vmEmqTIpsTQx6eVXvLn+H8p1RjqTyIOPeRWUeZVg16VX1CDkBA5HRkAkX76/+/94mJBAIgsIsPhna+4f0S0GxyUmxIHBcQmJccHjsZ2QtLrY2Lo0SGfFKXx6Pg3xgZqI43ExOCmPylFWK7Vldi6aS2iSyO8ZZhIrkxJlScnyxKTKcE82bO7hnFB6bFh2dtj0pZXlqpJlUC35ski/bO8Kq8qbVvYdzTmjQsJycsLM6Ld/TX2eqvM3EpBcAU36SeCWxpKNwmynDPvCq/NW3X+49IHc8gF2GzdvzOb//UchFji28lag98pqQuTJH2XCjVPLLXUymual7bd7mcgOpv/5V4GrdAG7cErnmxZ23TYC4IqJtm3BrvYe5kiQSv+dI/+MTl0cjgWgLVSShXdCLnqVEkc1tvNhhJJDWj3CVUSqQCdeDgbpioCr9K50WC9MYHaP0TMQmIwyQM1KBLPvGbsJbNxrlwM/YJ/JcJKmreHKe1ajyxURsYbZb4w9SZDaXQ35ONiwoObFEAQuvAJIxIoImGcCleYbOM1UOkNRYahnxyeh+2VNIgITwg3NiuLs8BCZpEQxHpWK4i/rFdquCQeD1CaH+k6OfW6DulfH+DMLjBniVVP0+KLCEIZ7LgPrAu5IjwoCPX50/ZowqSehdpvCGz7zPKYzlAEjmF0nKSkdsMSYwDFJZAyTVCSwIDDZyGgdQ1Uj5QOxRm1ahfKza8lJq8+tvSLmn+0gx9TrhKP0omSgbpOj1WMBr77hP70dVLRIyJGhV56uFSoDus3xQv4T1KQlqmnrVU6i3G/uBnVg10j1mjEcIQ44jNQySiCEAMCYgBAf3LYsL+RgTcB9oYMxOt+Qq7wcX+aUd4Kt09TrYRp7NQ613+aWoHZNGAQRI2ZSaFVqkAv3jlElI/ftnmyfKioz21/cidiT8yQ7xX0BLiuyYzUofrV75yP9pGJbNCpxo6oXV0an83KmJZdsuC9GP+qIVlwGL5rDe0lpHXcfWwWUV8x0+VBXFQWyow8hWGf4u/tWnfLFPgPUlQnz/3/DFemhHhAUrVx23WipGmPcu4jx6A5RJed3DV2ou7jxSGzNJz+yEux0Xdt+Zep0/jVq6b8w0Sy+UWJt6cdLe+3eZdF5dDtTySWMBxeL3L2gn5IOOIoptc7ngqXdY7TDtzwtNSxR2s8wnW2/wtT9v/52hDa2weCixIAWsb+aJNbi7Hs1rBVSHBcncl8oJO67k3ckIQUzMOvUWxHCyusAVW3U/ChSXY7U54eWdGeRYSPZbErWFHiEFbmNK8uTIFyNHTo/a/HtVl6St/eXXX8F+iqulSHT+1P8Beg2fVG360v6sr6ir6pr1Szs+awrvDjswofV2ThSmbgNe+Vqm5yW/w3W945wdla6cnbRNrI38tIwjLbq4MJTXfmHp81/BD4DwLY/3fvB/PYc3t7f008O93h3ff/8q/d28P/6NwGnl+2W4tyA4R1cfu+ZGaucfO/p3TyDg/kI8/w9ajTSKJ82bwT9ru/HxRo3d60crctideEFzX+YBOYuFmUtbW6RzUSSYKma//seCN8zsT8NzK/WCkk3PniVL/7EqqXZe6ZDRQzQ9Dmj3nsbxp5p12MPqgQe7RmLv1oNNV9nA12TWXsf8C3I90TXgC/2tTExV54HXEvPaox2XX8g1nJmNZDXhzw1X1U+1AzxIRocn9mZPs9rjZ3rmj/3Cunu6G5iSEajdm5Qu0LXscTeD9eFXusGNO1DwI/U7GslwzReCcJVd/9y/u1U44Z8+PB2hdDnbRtMSfmvSoxVt5es8kmcWJkWyXJkeDpdkyO+onUMdCWmE4Afz1is+m+88vcXe3SHVYshJ3e9z+7oO+bf8s4uWkRpd8T1QH2ijYEBzpqadKrWCCWqLhe54XdaDCH7eO60EHGsTieFB94LCmg2te1UrbWTb7Sbs2txwPqJrAxKJjc5cSDa5ww0jPeszNR93uwocv3zuuxzxwQ0jIaNjnaI/c7m0H6rfh8EXXY6DvjebNb+ZY9JxYxtd/ThZh/QtVa9+DBWvF4rN+xP04eYKyd2x+eFkpPQAE/M0NBLCbuk5EilrRXguD8FuHt/O2fozXF02VOcy3YDdi3egnmAD9bFVqtB7nrp5GDgeObX+ViYy3AHd6enx9Hd3jS3Wj/EPZI2rU03q8bW6sQq2z9jP978hcAMSVAAeWAFfxDDDAiEjd98435sjZ8+OXvFhM9yvmAeMp0O7aVjnW6RI9xbeIhIEvAfGDn/5oscYQKKcBa5+I/KRe2ZvsLcXT2gbE+VtRVzm6jwls+/SQsoK6AP8kEMUUIpZCzH5qp9SisignqfXZABMq0nRQARMg2U+nK/SUc/ywAX8kEsogSUjx4bEacoGCssBiWOH4QJWAGeUAzmt7XC/1/UpkWwxpnInxx7JAprT5EKe0yK7HUDh11/O9Rb0CSjI7Sie9YnPwLJDj4hBRv4aqdBzkf9lrdov0fWgpubrat4Z7eebNE7zrGNGA5theDtx3kiH3YxhLiI5pg/YQ5XSxvcO7fn5FxvjlO9KQ4EAx/lsSQixvtS5Dh9XC0T0HzOY8GgzQfG11tljNpqtZWx44oMtHVcJb4giyAzbP4vloJj9esiFhTkNanAXnRifP6K3Ma/xurnTiwo2u5Hk+axboyh/UBLd7sDcXcI23dLpudWDpLrK3P3cnGy90K8iCW39y6a7jN6TtsT4StcRO8UmIs+0ljBj9ffaX9UDAa6Yr0NWUlXSbkBU0+0SuTkB0Sn9zoTmWnFSyTdf7DlUVHo6VoAoS5QQYkrVC4vM2p+m9Ipz8mDSZD8Ww3yw2sESgcxBhLidiXFfntFeaMq8TcUPUE7t+EK6RzdCQ4WueAG6kjUDNb2LCzwrHNzhIsAbnEu3Gs2YTOW/i7Dwo18zCQfmyjP6KaxGMWAriWaHXj/4F4GODLx05tnRllRJ/tYygRYrldYsH8rVm5QSVpVsrim64e2QsMgSTd5qVVtrydTdT3VRH0kI5sO5Gi4xzHJJKzRKIEX2rshWARQlxF7SCLt1GGeQq2o6aI2E04FQ5SsAYqnk4oeBdaebRBGy5X38njh4mhfNJSrMqQCvsCkjhNpaz3Hpl9gWn/YPIbUh2FQeTMYWmhM6MDdMLd0fr4KeNCDgIsSOwH8wwk1zj5944KCFzPAxhQHgzGTkPW5+mD3jboDCke2AVeddkY1QETrYYiRd1ceC+GO9Snz+VLx6eVakn58FbOJHXJZmBc11fCSrmPA2p3XICUb0cxXrzzWgz1fM+Hoe56iJ5j1Mo4cdUFRbh9t6oDtaPEe29nJOoTcYXd1gdFS4XYw4ECV7Z90hwVtscYIi/bCnusOKMwWL/9BlhMWboEEb1YOL8834rDkp/dnPon94+qA2/fvP6uO3YmdG06qlgNet90t8vZRP+/ltQCr8STAcDqUemOMPqfwQxOZc9glEtABeYcL81WDC7zIVNCYiV8OQF6kVw7SjITE55GX15KQ6AkqdsY/rhxQYNOq2305oCNnYbJgogPLVbB9/MzIq9YrQ3iUrHut0dtLU62U1S7dfS03sdQmyd6DQFUnJdiEgzFC9pDRHTUVqbRlptiKtN4CECIUgJrSDcEzDyMbjXcPyo6kHDYloaeVBo1MOAjGMh4d3OTIR5c4HoRpkIreQOeslGMIB+z2lkzGDEEOyDLjeGdQqy5mS0498CT/yIVL3VXTuIPFjWPH6/j5MlOzAL8YMdFePKUzz09fP5szOiKMIz05q1t7pj2vwKhCwT5jA+bVmGAvsYUzfIIbq7Huu1mzfiIFsirJ5hrZLrdipxWL5ad0V6HcxtdyjAdj6AW6wCEQEmHyRSIz790IZ+oddejU1Pk2ahmsNK8qZwMJmXN8P/J2HoAsh8c37rWMcTxwS9czPXrLNFiV/rY/vT4zQ9D1HANDo9jxIpKmD3fbZOmupKq0BM1MWAf7SYtzlZQ5zCWoadqdSt5xkDiBhLhnJbYzCZkjhTRXnwN7YTDAm/s6MDMyvnjj/JqpCGYprZEzbAF1NeX+fPVr/NUCrGY7xngA3u1e5Ox/Ni82Cyuv6cUWXHmamaZ9unsZFDeOCn0Cj2VJRC7f3lf88R+Pp6ugT6rwBOf2yxpOZujmoZZIidghLlXyW/QBdTqwYm0EhKFTj5XSN4loBXAUrK5Mg3x0cxXehIzmNKoSwcXuoTaDTEHj45jCdUuD1beUKGj89Wc5KQejDzzKXejgIQ6Z9Y6zK268FhmNqr2P3YDUTws2DKCbSJq6tKg9eCXLEdwa7uv+OQcZkCg39KpntuWAXQFUjRZG6AJIg4CXvXweqmdRtyCMYbuJxjgUgxenH+Ev7xWCXnT/XVfheoasHrYjhOspUgUCJucoaTEibzI7VaBgkIwHPSWse/g8SxRJ1xz0vUg9op7okJB4cedtSaSKmH1Y4g6FRP11/fEbQDxUh8yHETgCFzvOTSVQw6kUfQjxMGuyIdoWC5q1nIo+8J+kRkFzNmcYteIyK+WcG/H88OjM9tWZq2FHOvgneT/IC3322lakVv+CmU4zUp0ojCRfAlyu4V1ReKuvITs2dOP5ev/p7tKVDKlgH1lNaNp1gu24MjxShJ2elqs9aa5EwLpEBJimdOBuhqcDa64ZaxQSXBZYYpNNuG9YrOBp+h5k7vM6XkbY2hu0k46SsGLVmLey0mzRg8VPq9gN4D7rfh5ye4GkoWEN2xTt20/7IBBUkWDKRwtZQKa+f3uhQ6p2lf95P8s1ptMXfBjg+itODINPmCRC9ZvD0E2ak4YHbmCb4AamtWQ0c2WaYJ9p1QEMIMIdAhRxfd+8gSn/CzYD2JzVmUrscGo6KJLcWud1u5J/ONNDN/WO6HDwT8qGKK+Dw6JD0ZpK8yOKvXbqESIpBd0Ymf0m0RLkM825THvI9b7aGdATCyyGYnTHOb/NTzb3CPXSTe4TfgBnmztp1QDra6hIGjG/qYroQmLWFu0YtsEMeVhGmKITRxDmm3VZYzXsz/WBsl2+E3LfNZIxLNO9z9ducBMMU4SMFof0O3+0O0/r4bhht+Bw77rwzc7FiXaaxpFH/nfYpLG745yjj58QRcVC83FIDLupNMKG5/rB64nFzFRyugKdrVP4dunikUXCogc4Xz2KyrodzUOZcIPTibb/DAoQxACT13oI+2WJlpICUbIxjlKvRyIcIX/NK5px5J8VOxCcXLFJi4jaNZYkR8h5QH3KbWB2W0dg7PX0Pc/iXBHYzJo784BLpPFPyszk/hxwvuprie5LiRFqnODjnRNAFAnZBnnwiXPbWgN5MkLohu6jmH3DZwjOsAtwQnlHqUajPvQ+WvBwKktuzDA/lj2K+Z1z3nv5DVL23Besu1kAFeFSybwpAJotyaBkc+oVUGKneZ7NMaB504g58kcZcegrVYfWlyJhLGYJueqtCN8Ugq2YiG/gVq+uZaRpbDFxNqSsQ2YTh3Q9INr9sVBtZfJ1SRC6JZCxeg6s1ZUgJgnRkAzDgGM+DSx/nL/AeeFuadHD/UniZqi9er12xdqZZb5vlXYTlMRBwyOG2uh+8+5O97sRmo91FLNmFTBtSY1ohE5jmBt3WTjeP+p2z8JT/It3zXNUuBV3x4vEwU2z+D7K5C5+18/T9zTPcLodv/+FL7fr7dj2/zn6fxnuO3/wx2dfL8VSpEdYV0SrX+fKsseiLGS+dLRRFVl3sSzKZA77gOgkzYpcr7XulZijE9xhGK/w/QwNZ7xTuBdh6aGwuh7i9TBJ9x12Ib8ZvrsZMpN9DqRa1h5ZDLUQV38WW61N2xxkie3YfRIaIhTiTCHciJEgOnGAWKNQRlifENqClaSGFd7X97BcieSlfGV/XikkdR8RDZetysh1Onlnd0dHuitSO/HtMNx+ze9sZzzP4DHD3Es9BNwNVcNao6cayedgjanEtYCo8rRa8jW7XFfLz33SqXaz3WG0uKR4Xtho5f2QB18z5Y2vtAq4Q+OdeVeCXRiaq4UGLaXXS+lzfRcbBG4xjue1jsYUXJYfxj2Vg8ZuCtvw0oyjD84TKNIGW60Py50PrRW1s77XGP6Zc9kJm1YTQy/wLrib5XUS8uXweGiLjBtPuJvuh7vk/DXhjLy8tWX0Hs4mzRZgpsa4dyrd0Q/3RRDRhaZPHXe3Li3+v0GS8y2XWJfGtLmSI+UkeLHnVf7xVqq713Rd1rT2uZm8SWBSMaJ8HpYBN0hR6ImYYv3NZGFylO2Sa+xgz+shZO3Y8VC50hHB0Na16fhWGq5ct1TZaXq9RQrJ2PHYAaut1QGtCpm2EmaUAvjpor1cxIFR4a8xzR2Hlwl38ogvTGhHrY4dd4qL4e6gBX0LQrlMyJlzWja8rH8F6xxgirmxIfFFlLz8fByXjHMSj8mn5rr62nTu/TTrjl/r6X6NtTFlygJnyL1yvaWe06ZcY49V+pe23HkxEXHl5lgGWOfp5KntPu64FMsTBZjj5NZ752dxnNIr4ff0S9mNpzaEwsU3Fdhp3eTt91rveCbj1drRJPtwYPfR6NTK9uOl5jbY6RFpZjfxRUWX5oDvr/vPHr/PtGFu8hzn1z9nPJUduZk/FfQRt92xdGcsb+tSaJPHPT3+mGllreT6CLhyl5y+vL7slPn5t/spxjnzovhi4T3YBjWXdcdxzIrsvamPq2uRPDhZxFab0jXlzR6GghbGqyZVUdzEAsY3vjJilR2QFFsTYZSpFVWXw1s/NdI91Ymd7NFPsZNHHY3usZFPyhoOH4p7U6LYQ9e9PVrAbspgyA8VvX2UQXMAum+Fjag/mSVYT8lCa14RB9X8x5b+pL6iAFPsRNuhXL3ibLF+nP3snObn13qitGridyNBrxNtk/c4srM7Hc2tEGAJtlRFYkEHSmFs3U0l7wKUL3cOXK1cOVFMurYydhYUTr6IxgzmWFGdcsqX6Qx0t9WgVPbNNg9HFuEq/yC84MeqefL3DjWhmwxZ0WxL9WjXDv0n7+uu8qnK2KAwHMYm1FkA6dFxR9KfUxxqwk48PqoH+IDGSzwC/D7zx7PtOvb+YR/IFa2wY5dvjf04tw/ehsbiyY/1hT3FulC86C+yefG/vwcf+JP/7R/N17F/9n/+v/e/6J19+9H/zQuPBUi70kJNKUXbVf/GI2D+2nIhXKZtGTdd4uyhbJD95KIwDHEXuC/D+W51HN2DHmcPfk0y7oeiIasWS3nYc4zt0cW+YUSD8uw0zMVCIYXJmh18si6LknnGqzsQDS4APnpDN3cn2O/gVAmSLYc6+SvL8S1v7sDu5cVnejGFq3VF4S1dQn5JlRMJcUQwdiF6BWiUqEkzr6Y9swmccBsplMRgyQ29hG9eF6ELkR4e8RdEINPdQl/bom20az9VV2iaxVffwzrvuQmAYeuuusLm9A2IK443SV2soYU/FI/Bl0vlDYhcoeHGRoj2gg1OdqW/9r7UXs2f8SUmj5V81xeaKFWzLdeeVlMrpPOzNdmHCTVz6pUreb340sy+ihfR3iheJzAQJaXSPI0aczbNns0LaLyYJ50g/ZRXGQsMALZ2eD8b34a21kDVL4DZcuwKSUT2y5EU4h4U0yhv9PIHSizhXN4VxBnzbDk4Y+eLIiMy9it5Xcl7enPY/g5NNA2+HA65X/IPf1YU7lYEevPUDe3/O0kFtupvcFxhZqiCHTAMMq80OPiAZ++awepa9QjzlKvToiEmivv0MjWvHzMklk1PMNIcrZieVrQBLsyDxgAIUIVrTz+14IlVjdm+thBC3/GrTLghKj086A3dSwi8VD6mhV3H3aWLifuWcrBI2j2qXHQAihn6g0lq3+xrb2/QC3ifEnWh0wnKo8VO7BuRXuo2+IofCvnuEvgxJ2zp81iYcUYUQ8wJEdx3JGRSHLdX4IUCghoJxAr2LDtwhiKIppGTRgoNqdnDY4Lxq4JjDekhflO8P22Wvt2XtM6AUtP0yihrco4rC1oVshJ0eHVJBhQStPS1sq6Z1uQJeXPJ/fbib6FR6wCp55QMykeJ0uj3vVdIFRvKQtMzbIImdxMhsLCGWfl6fX7iImJU56lSqLCFQTUEL/WI1Bc+p7HUWSOaiYX1AjqnQ11vBkNaEA3WGSzco1HNxprfnH3Du75Opu3psTTIV+uRFFZqTKhO2KgTHmvb0E0Dm6rmaBeo8iaHAvycy7Mv7VIecO4/2V+448tkOcAr+6TO0bvw0Dvwpf1ls772BZ+Ser9CjRf2OPCWrL/lV6wzn99/7jZgvfscRe7fWafP9vG2ZXScdrtl4HccIAub+HeMS1EqlX6vgt8vxQBbIEEwtsemwfEokSYGVraTeV9DylvX4nV10B/6muTZwCzuXJz6sOcRS0gvbIzNqsAI9/KEeHWPpP3N1tD5lwiOcrUuW+loPcHm3aCoe+U5Ol+VbyUeZ/l213u/ja62vVy/rkZSEfCg0vqPN2vcXtKLVeezn1S0HFJMOWrFhxKpqRp1Hmn9sIkQwAIlXOwnpRpRlFWN2Tfhn/dEpJ/HQtLBLRo8+yb1Ct5g5ZqNeujEvfTsg4TcZ40EaBe5lUa8oV75nvVd+4InlJ1r+EYcBmmQ4ZCB51o71iKkzbfyc7pXtsdbaVwmstfeOhCHcr8OsJ/gaJrrLAJdDaFvTsXTYZfvI1aIcT8EgNuCyNvm0WviGcZRHLuhk96q6WO/3v8bhVtbCDcdZ8/bOjj4Y+bpeI0QUuXPaYDcf+ROEn0tSYLze4y6pASXRn3ZncJ9HoqzFGLRLViasxGD2JvYNFNR7Fv6P9CYfQ83fSxXkUSUDtKY3BTBvxzBf67HivnSeTF73T+f4l/b5hnDrRtWEKpXO64EGb8l6/CI9c+8r54t+gE/fzu+xPPF7z3nuG+f4A/Hnm38pwIsXYrgu7pVdee+RuUKV/+1W8KAno9Ug+17bcIl1yd5obVqyLuRQzDIiPw1t0uH5/uXYFTLxDeJGVavYxi8tF86vjteFFVHM/wVNJTD23fQMrwdPx+MQHFvakfWQPwmDI8NXb75lyZYNmyOnPIpN/hb43pit59I81an19+JgaAoMwLN2wVuqxOxlz2RvkPSwWCpH/4bNwII4/Az/Ar2ueqCc41CHhfiHSJSdTKionRk5JPjzohNlhKWqBNzw7zrWk5PP33pa4O5iFoaUVFOioiuyYgRbR2Jd4iIvUSxWGUlQUTE/DlZ+eDfOLXX20Px7/hvtE9NjxEVZSXxDhHJknJbCHYqNAnLwwP+JbZgSu7umVPQg1h60qko7QTx7gAN6iDOQrwzSal0JCIiIhKSJRkLq6wkIiKSJakdmv6WXLolCVH1LlO68GIx6kmyuORZWMoncE6tE+Lkn3P3405LNQ8ioiVBlGX2CSIiffNvnGw2myf8L/4Pt8+P3/yprOeE6LPfLOvxIebxdTzZh9UPuPn8FO4gIuaJtiSFpnygZKiIEjSMXFgrw3IfzOUx3OxJqnYsHLh0lUxkSgsRERGRpigpy+wTRAxziOnQnLKSiIj5czKicARiL1FKMkA+pY8oKMeEm1B5q0bt92Lf0k3qXO/h/gu3z4cK73fgHyL1JJgfiIO/TVggwwQCHAdJm0RJMjFESluENAoTNwnS7gsrXvq+LkdC6Hjp4SR+vPSOsyc+fOmpkBRPyFuaFOFLGpcATw6/4zY2g8qtv5tIe5EB8BdiOf4KBv29Fnz/v9JZkaF5EY1s3M6asbDwhIOzifGmdEKQgiBpVYwRbg29v0wZWj/M72b3PO+h/gld/qCbys6M+/5EBxZzi4KpFTWfCUFKAP7fmbM3tz///0xb1jIIGbKe75FewPcy8f4o4UDXAt6JsMt2JWBd9nVq8VDQ+Zj4CWcEh/GRtKmjb6rbuLhGwsJU8ht2WgnIraGzZtRJ+CHvmh2GrBnvIRB/d1neG8V8D3neX50nf3EMPvinH+Q1Ff8ekbKQ/yAt4XvarUrPlD4SELxpH084yQyvUDrWqtnx74WMIILQ8jjX6BkIXvQfThc4BsIt2vM/xj+7MYN5XP+sf9X/1f//w7PidISSjXhaIAdy9qGmns7LpXZpzMXlyVWZo3j2EnYwTb2xD0sxaEHaG1c2EZXDpv+Xbj8Mb/mgY/emk17wk/WH0+zv6nbM+j9dDw0vlNy355YmYv7lRrtGodgubIQcOdb9nmYQwNlGOhKIlGhlhcOfVodsTuK0dQKDzW8ytqULfqdVjLfBPFT7edDXxdHGfwUAHqD661c1GCMVEw3544USQUHUuvQsIDZ1mwx9tegWIWEb/VERR9gHvS74LDdoOB2oCCSX5YGyiH5SZubUGfsVPDSJiwhTEbOz00wamJriCxBRLGVaJM2iFT1O4vr52GMSCkmCK6dRUxQThuHKqG+KtJ3xkG0r75QtPZ8vFTHhHzED3WEA3LaERAhtiKjGJjsfZgVhkDhTVMFBXOLN8MzwefJ57PIcUCNCwaZEdNdgVjB2hg4xBaJLpAi1Xaowj9FDx7OqtAfnZBKdBQIQmIw5JG7hsY1ahHEHSS1xhbTrpwxSN7hb3dPN1BGmRwYCA/ZIJVRJqOBR61fcxhiZnqyLmUaslzuz4Z0g3W7MklqlpY8NUzv9Q1HdEQTlaB4HHCeqMmoSiFMvIgWe+meO7b6IhAzhNkjn7AgbtR8rTaGLqViKbZ25PDcypekEcV5tOCArUD9B2PLsMDQVBfy9klGAzeywAaCzNThnV4H8vlQmJbO7kYQj5DKLhNQ5kjkxJsFKXOzhFkEWFwhMmSgushauSS3jgqIY0ZBlI7E5QqIRlp2CkS3XbzFWzcQVyYkVzgKWSu2eEbHS60nk6uzsLcxVBBA4sVdGbf87FgHdZ+EEDvJoQIFTuGWiihH7HxKHHc5xiOWPnxnf5axQYzJNzJi/9YVa/GNQ3Au5cvZ0jNBO4czfoJEJHpzapA2hFgbP0GLr5haJEDVEAWSQ4ob8LPFHJZgjMd0IgB+DJPc6J1UAC1id38Q8LJzDiZy6Dp/C0jYEEfR6KhKQTPaKM19ZRat4+ALYuMrsGiHS7oxLcwK4TKwvjXBMBDVpCBSkAtoUW3wzPrC5SsLQ+JV0LokdFgkTIXYAlgdk3W4WtGTecWqZyyF9J0Vj9lrkH3dv6VQgg6WdLE1WYM79WIIfekeEQRR/bG9kw9YVhw8AFyO0XOAI9H3B1+IlMjdYE51cmgtWdgjnTWpdIGfLBBKRxZGxKjEtZ24+pK6mC0Hyo6FgWeESkVUKM6yemeDAsmTrDEek9oYwbNTt/lBQ7fioutekiYfFbtcclJ+dM7eUHNtMfNUjtyaBOC1V9bVcSrSV3nwibBiR2qD4EWLM/nP5Z3oBrtHtAOlssxFR3DsiEkyA+WfSFFuffQEjnBkEULc1cumtG0cMAD9N0JLAs/jmpG8nNrWPgVj1FWPRNVIDWZ7slcWxdWYBRQaTLfH9hqpLJeAycRESQe5DDEjTiI4gIiqVVKYpZqOVh36sSuB9I9aKuHXSU0qSBZU85nbqekARRM4UUZYolFaFfRxOxde+M8o0Tp1WufqcoTcLJohrAZWt7mZpxyJILe4EFF2iAY2caOlUNyvBlBJEh9Cm6C3Bmyyv2B6cfIuHvxHaGbnRsgjQ47L4WkHOP7sqHl48eq1K8a5t2MxKXKIMWZnIFKkqXKaqM9eS7LzsqlXV3bepsjA3IJGQTGbwQyHTQhMLCBOL7sq1mpEtxeWqsuXxG3D54c+2QmOSF1H3+hz0fX2MFIot2OPQ2ZnMtXrpY+CpceJ+1pjslbCS24qendqK1Y6GGzTB2kv8qGJ8AsDC/iWzkuMabVpk67u0rd8I+0ZEdxd2o9EBOCJCcKluffZLQ0Q8s4EarK1xr4D9Xh85es05Q0faWEnWJfEp9p921l0a2zycXOZoKJZzXlTCj4pqd+ft7Nqmthe19e2c2bbXtp/taoeHZ1ZWapVIyacWNQOrvLp+VT13qrWXQQpkRzWbZVf0uPQRVX511l3AmGTRltTSZD7T3+hctAKak9ts04erjX0ind1g1ZpR5QjDqR+8OFdkOxuJhYYV3TDj3EpI3AoNF7YtwP7nwmEUOKW4W0D+Nu4tBG+EWZvnG5EOiboqpDY5+zN4t4EhqyOavRWwdG9r3HuirYM5agCkgwPoElM3Y01yto51vEzFoB24SMGluVEYNFvuaPTn1g4QRNuAGbSXfHntIyAwMRBgakpMZq5u4H6edn52cydFt7WZEpAWmARwNadXPOKWXBeRCxJOfNv2HnCj2QxEtT8KOAZFOw9iy/cMqGFFoNVKFfZ9GZ5ati2m2IMQhq+UVPqarPOgRPEJ+ozv2NsYQuDc2sAeFpjXxiB2MpeZRPFrphfgGm1a0G8yBovRWE2n6mA4DLCwxzgCvCEYwpQvgx4hCX/amMuc4WMYvfqfJbX7IUK1NTm/7rDdWe9GBa66MPSLWaoKWvdgMBO4YgGUKqJgsxLKaQYTiOqhgm6s4sF7Uk0uEOVmYu7GSU60CYovFZhp0WSveCQpuZfXyJPX4v0Tu78mnS8iupfO51K7Jg76G0Xy0QHN8QUFDrf2QrSveHztOJEXfXE1imBJt6KHsmaZHLO3MYAD51gt8ETMmNeGPjFkLjOJZgYxzBDKz7QQviAnWKci5xOPQw4CEB0ckBW4nZxUqaMTeDf0EEGk0v9X8OGVChIZ66aeMwOv+RhLHr+o/VXbpKxg3Z+jPZ1bUHVLehGRroq+loRCWKRii/Dhqi7wUctwDFc3MbfTVBcX02AQuBUKZHnAwBK9OJh3IQl3leHOKkfRGikunG9O5xRsDc5JdLst8s9cPWh8jpd9P/UkatSsH7sRI4WLi4SsBvtKxI3AE7cm3QU8GaOqIlsMACcGAhZ1OEEJJyYlRTiKWNkzuSBYAZMFIr5wQP6n7d6pPqEcvUqHgGKjLjGf0HSdi9r5yBCVSDOA3V7ilritsZ7lR/Z5pLzWYyzt+PdQ5c0DruJ8nf1dZJs2v+yIama7OaWvra4qpo2S8MN+ho8wjawdemZ4DBsR9xi+5upWUCj60opdXxXVNZeFKeCNrSKVZDtGjiwpnG6LlOm+Fc+nsv4kpq/2FWmxdH5dEX++/aZ/zsb4/PSgGhUWtlqpC/tq4all2iJ9lUjTEMkjq96hkBBkgMGIBtyYdwtgn0XPjqgUYrXRUglrMDqdWW1xG25aiLlg3t3VegmV3Ldzf5gRNO3Rog0WO78VJV2YG3DQs7+N5TQ3jHRahyx5pcYixv1e1P+01/X4lvbz/0NVBkPc1PF99d8q49b98mdSu+F05xrr0mGW8CPfedzlyjHSLWdbYddMz+GR8RPDt9piazGY9G0VV/2Zmm21LjlEoESmWvMwl6KEwkSNbMXLXaVNyU3OU+RvjtVelZ7Uvu878+/tPyLxEXI1KXOn9643jN59teMhctqiruR0gNSP2dBpCjAhMxJGUs3DxQ/h3BKwL2rZEZVBBhJLZeyYfZbJ+JVsqlrf3dXXzEZEG92sOzSWOhPciH1Uvs7UzuKGeGdSey2jHalxS8VfBtm9tcuA9NzHYkCDiTZ4F8wYdDIG4IlMoeJXIQQQSUzkzgcPDoAQAHADY0TwmFeX/MgYMIaEaU8xcMOVsNaLJRT8urp1dvs/U9wwb4uzRhBhECNkREaaHmAmujFmwasAtvVw2hUjF72JaGPK54p+vG5hn08I2Pgp3qONWoRVwuEKsW+18WRltkX6KpgBAPWaV3SaAmTATI5FgijCjnPLgt2LnosffWKaRZrX98wwhSOY8ggF8+5y2Ve+SLER2QXCF9yOjkEYprRxVWTYm/SEEANwSIQIwXsVQR8vShkz7pj0y73BW78MyCn6sThydAUwBXTnyU4hECMzFbe2KqWQaeayDDHHFFJiDBHDWXNpGFsnoaazN2wFS6u3WlA6aRRA8glYioQEcsaQknIiwgjgFFO+5kz01kDl/BUXY1AQuwkOKRpMsO/htFcrUh1NzHo/vpT1t9cFb0sYQyifC7srmgMVK+LhqmEfgXiFeK+JV0m2jtD02Qk6TQE6NFIAoUQb3HBuASQOn0wJImlXJCeEQCgx8k8qpXAEUxFgFADQlbqXa4WqqC+pVY1RQW40OgAWGVskcxgzGm9NekKpE2FIxgjDQe+d5VIoLoRxz8v6PbXju7gMiCL/WoJEDS3WjDXcb+IuZSmZ21HPSQbPHy5ueWg6Yc05lcx5KSXdRmuz5LkxHPm2zTp77XM8R6s6aGdizLC1yJlSpPeMOeugMJa2ZcSXF8ZoZZszItAWD364lIwFXc3xco3x1+zaXDFxH8L+dYz561GfMXJeYvvchVCcx1FGKQyi06axpXthG5j41ZJzKzD1Y2PoNAXYYJIOFXp0wrO/tVojE79XyhFVhhg9AZEy6uSf1FrjmNtGsU4lydhyh/lajHolRsuIuhChiXNn6xPiWnu3ooa0EuEFo4GqV2qElObfk9v9/rhfyru8DMjH/b+AVU8zj1ZGej7lS+veq/D7uB/MWtuFF2maUkdtuTcheu/5uc959HZceNnb8zzGMft27D/3OWyy4DA3bFm2ylhhr1pas0nXfM05Oelw32c/jyPrBGZgfbVA/aHQKrcKo+XHA/GfYzP2W8kipnRZ9/345/v4iShEz/PLJqUWAvcu3M4hetgstnQvnDsm/pnJ4+xw6LcLR6cpwAkHmdBhix7w0/DlYID9reiZo2iPPjE0qMY4A2dZHTYIUtzqaCVXDLacjOslreR1u3ZnZVGzG42LWI2oS5mOkQL8+DnEe8+OH4bMHpH03FfSKGOs1Hr5AM/X6/vr0d/V6A2gm+/X9aQLP5lYrH9T7ust4DlXOrAEgB/8bXjRsNEco2zdBI4wwGZ/rYK7vWZBTBdCmr37+VajyK/kXwLfAz0cf2pJxoF82uEThD+7JM1Ctsmgnb2MI2BcO/itCn6NpF6NTBUTNYtsyoROmZyZzbVomd0UPV18ZhvlSmadPqaYEF2jjBqZayLmU99MeFel47ttBHRzhqFybpNKNpOIppn7TKOaJQwTy2U20HWp52JYdcqMKhDVNGHiqRabGec92rRKmnaa+WZiq8Bc6/cYX06JlPVRGNMl1gLcVamE4c6g19ll4ApqcSU3KeabmHmGtt7hzEM0bSi16hTIpXZpaw8IO0o8FicmiFoz0IuFhQTPKoVginvzVLZcxVHbv00aDOKrGX2oMQshCwvtFIzDFbUSd8aLnWD8pcefWI5xoSzqAHFxplgjcJTSh4w3iNDW4aB0lLPyjdJLC4ICNtEHfM99kdUWKCmAbbacrGkUE0g/K1imkE9dXEk99SximwA+a6zQNYdeI0MaxdtouLzuVzlURV4jxVoRsGuMJYvx3CEjRsrnprYkMlOVD5MMFrZccVebd3qP9PWBx45F5kBUsTIxLVSoXpdqh2vdjf7fNCXzIZRbCZfOQT52h7pxS0tfysTeD71yqD8E1zUD1Kw6FiXANFgBnfWW6Ypmogh43ChZZHDtOgM2fGjnMFMWOaz/oDFTOICpFco1pQUGSXD3Lwb+4RcpHqQPZTECw+GpT4XnAIeZDwHw4bcD5koAqH02b5ACKcjiDfoAwRpY+/4Fv1/FY3+yz6v4PuiKA3Dildg/q28pDGmZfPPSWj++rrzjNyumOeZhhmR8PgZQak9+IniergTM2wCunaCkgJGlffMF1jZSGBVSNWGY03r2aVYP+FOB3g+D+GxEn1vjirRRKSvzsu2UECck6Di/dnCaME7rsmvbmb2IZiyWKlyHe/AQTkKrVgLTwvNSVxQja5DNl+GRUlJAh+WH5Y/oEnI1m4PZMo8lEssjliosU6w8l8s4FVBCDviCizxU+qk5GoIoiAQPEDr+PAgQJgZ8ipMdjjI+9L5/22a2qKWkren7TiBuIyX6K1nU0xVOW5+rnA1WJb91kGXts8s/wbRaeK5JzFOGLhjMUwigyZY4jBuFNA2Ts+YN7JYI7oFLN3V6huuZ61RcmFPDVXxq0Rqf2vD9lTpwsi91xNOWOilxO3UGTkmpMzEqSJ2N17TB56TOTdEycV6v1vDg50PuOAK0UQE8sjNIId7jlsL4TkqKIG3Wp4hU8zxF4rGoKTLFCkjZGVj5KQrJNipF5bwttmhcu1WH6UgxxW8XUmzOB9pRjpf3C+8do7GIDRJlPYkNXFTpkVmH589KB322qBjOiwfsnDKvsP+2V+0x+x3n2haXxqodZMR2pm2d+UrhQEqHQoVyzTM/Qp5lRG/FvRlkqmRR9qN7K4v8sDgtD/OT8gLbsaSNrA2I04YQ6lUteKC6kabAquQOrFNEdn4EKpNVdLeyuna4TreXCSYzUFJM0WZ80VKiU7Vkm9mSkIwylxUUcYIRkmGCAZnDXKK3cfVvM8B8pUCQvEgpVyrEIk+TwjVRufQRO+xg8wx00A+szNblyG2eDhQqNK+Tsp96iv9KH4nnWCbYTLgsqAAX1sT1OOC0PKxVPZth5adtTtVZjFAqoDgdm19B3H7k5YUA93jvTIWXTuH4xvmqzQDQVKOQyvfyXE1qex4qnCr13Ek7Vn56i2T1uU1jFJsBCVagLGxXIoB3bIrwDVCd6SEdb0VaPm9oJs9VeP4L21AOKPGaxGjw00c6sUBNcrKcYS3ZIRzgFVj7fKa5VutPdFrZWw/iTMczLY9Ks0D60lhkEfnOhUB8Jws+Jiy9G1EuvlydSUEr89gDxeSYre1I/hUPNIAheOGlVz7o9tEn7732Ro9eX/X57pvPvuhC2P53m42Di4fPnuDo484PUxXnHhim9n55+M0Rfjzen4OYYWfEL2p7JLjsyn8HxcN4P5JPPfPcu8jIDlEQFQYNhyMaoiMGYiIWYseJqz9e/OwT5JBjTjnnkqtZiFGjkqSj+5YpUqZKnSZtuvQZ/M6YKXMePxcGManuYFw3TOvGjWH0Fj1Dsv/V2TiAdB7+/sI+SiQm0UvIti6loKSiplFGS2cXYlSvCpXMqlhUi4UGt1n99Ro0UjN2zVqYQoz61nfo5OLmgWAExXCCpGiGdbzEODkFCil/aWV6ofFV2ZfAF3X07OJKdr2pZy9eCa/Km3c+6xV8+Ra3VkS23iVWGwBCMIJiOC32I0+QFM2wHC+Ikqyomu5wutwer88wffXNdz169fFo3r/XuHFxl2JQ5TePfCe7orbPdpUTo5w1Dhe4SY/H8aI/Qw6MU+osZJHaurGtNXqmXpWuIlsi1Gm5ov1yg1JVuCZhJmVDW6GlbuQN+kXSHTO5YZngjUbcGL3TNLW7cktkvZnc8edd73E46T3TCB40G3lQKQ94iKL5vmySVB8rfhrBcxwRp75Ze969uD7TPoZXvPLr2+VG5fBm/MG9ybXLx8PaNuE6422ub+46ngvhzuck0/H1ad5VViv3uJpfVzh/DKsxr9Kr7VJS7NUO6LpTg4B6eKtx2xpBDcUYvpn7/AZj85uYwn/+Rsu0uZCs/jjgfozgp4iRn5d0G10/BAmqIMaECCgoGBgxYcJYKEHClywBBAICDrJE/jKu1wK3I2sR3kqeB2/KGLqrEh13w2t3k4GCUspj0FqLZg0LqywcO+V8D9/CV3Mv6CBBggsIGHnEGI48Y8YSLov/uaFU2+SGawTFcIIEGq1OT9HWDMvxgsFoMpc8sihL1rJ31fVbWHPKEF2wsCZPcUiNN0EDD3Ae8iGznaYGbDHYkCiB1dyBsDOSd4DgWs4gxKEk2HG25nHl4MahpwhlUwYRv0mzzo4Xvk3lDDR2oO0Xwrc4UXwzY04gCmF8jaCa2Ns8HSDJSSPrsMU+ch6KtDNYJXJYXdPbrrFFsraVX+N2T75jG8Z16przWOdj6Ub5VJKtceIBmkh80pp8d55zZEaNREfpKfVNr2i+ffRdgNlHhhne9VM5l1K2AhaqxBF1Bznk1rVKK+DH/YpQIkPFWDoCnHqwHUs6OFiJDGivmG/0MamgswW8ybdH0TUpM082fXfUOdaWa4oxI0OCt9Cpf4461URTrWnQzPMSAJ70pyTn2QwpEiWUUcWUzZGaPEgZYdRcMGoyIWXEtDNsdaqRdmusiaZa06BZ1HcXyppoqW3tyB/OzNWrGB9kBthB5f/KW87GxYMQgSSaFBEqaVbp+7wxRzNCLhNoIjeW+V7WysIc4tjLlh72WPV72Sc6q6K+PRxPlkqjgSVwg7e/9vrzd0QVSPI00yTTWudV5JXVe6iEclZoUl3Ms6byGuJqow+M7KXj0gIOQ15vfi+D2aBVM/gnjqJWVe1hSg26LLpngWStVUcQ/hlSz+QkS+3McbhXROp0kCpIfQIAAAAbMQMAHAeO21ycSNEd9Vzw5MuS0+lcyl6qn1nY5eOLPD46B8yLKvD222/tDTaSZtui3jUrKDhLgpiSqTiu9NtfJDk48r5mA74ZYnXzBUOgGUiEWPQr63TlD5zQPVj9AyQ51uBQlz8f3uduuzlur7vj5rJD4KVgmAUYxrUH3OxEBHoKyoT8nkp3ikocIUPjKszrksF09OXFCWJfAD0Cjwz8d0VXaOLASyXTAg7orx72tH7ZN4jWUn0YGkseEhN03MseNv8xuzlALIBn8cLigoZmDToY6rDh3joWHR7ADAGFzK9Hv3ThLdZuyaeorrtEW9Zk6hqhSnKTAQAe1XrJBIkzFcFxZpUd0CyvBy6xUZHyuh44AZrYGaUV0hPUIctclpAyQqorzJbMBidHDj+HA405VD6IRpRwdYqWBPwL') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}


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

/*
 * Cuemath Design System — Accordion Component
 * ----------------------------------------------
 * Collapsible content sections.
 *
 * 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
   ================================================================ */

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


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

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


/* ================================================================
   TRIGGER — the clickable header row
   ================================================================ */

.accordion-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--space-16);
  font-family: var(--font-body);
  font-size: var(--type-body-md-size);
  line-height: var(--type-body-md-lh);
  font-weight: var(--type-label-md-weight); /* 500 */
  color: var(--text-primary);
  background: transparent;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: box-shadow var(--duration-instant) var(--ease-default);
}

.accordion-trigger:hover {
  background: var(--bg-secondary);
}

.accordion-trigger:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}


/* ================================================================
   ICON — +/- crossfade on open. Both icons are absolutely positioned
   inside the same square; opacity + scale swap them seamlessly.
   ================================================================ */

.accordion-icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  margin-left: var(--space-16);
  color: var(--text-tertiary);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.accordion-icon svg {
  width: 20px;
  height: 20px;
  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 .icon-minus {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(-90deg);
}

.accordion-item.is-open .accordion-icon .icon-plus {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg);
}

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

.accordion-item.is-open .accordion-icon {
  color: var(--text-primary);
}


/* ================================================================
   CONTENT PANEL — collapsible body
   ================================================================ */

.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(--space-16) var(--space-16);
  font-family: var(--font-body);
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-lh);
  color: var(--text-secondary);
}


/* ================================================================
   FLUSH VARIANT — no outer borders, no padding
   Used when the accordion lives inside a card or other container
   ================================================================ */

.accordion-flush {
  border-top: none;
}

.accordion-flush .accordion-item:last-child {
  border-bottom: none;
}


/* ================================================================
   BORDERED VARIANT — with full borders and padding
   ================================================================ */

.accordion-bordered .accordion-item {
  border: 1px solid var(--border-secondary);
  margin-bottom: var(--space-8);
}

.accordion-bordered .accordion-trigger {
  padding: var(--space-16);
}

.accordion-bordered .accordion-body {
  padding: 0 var(--space-16) var(--space-16);
}


/* ================================================================
   COMPACT — tighter spacing
   ================================================================ */

.accordion-compact .accordion-trigger {
  padding: var(--space-12);
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-lh);
}

.accordion-compact .accordion-body {
  padding: 0 var(--space-12) var(--space-12);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
}

.accordion-compact .accordion-icon {
  width: 20px;
  height: 20px;
}

.accordion-compact .accordion-icon svg {
  width: 16px;
  height: 16px;
}


/* ================================================================
   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-100);
  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-caption-size); }      /* 10px → caption (12px) closest token */
.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-body-md-size); }       /* 18px → body-md (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-on-inverse);
  background: var(--neutral-700);
}
.avatar-tone-1 .avatar-initials { background: var(--gold-700); }
.avatar-tone-2 .avatar-initials { background: var(--error-700); }
.avatar-tone-3 .avatar-initials { background: var(--success-700); }
.avatar-tone-4 .avatar-initials { background: var(--info-700); }
.avatar-tone-5 .avatar-initials { background: var(--warning-700); }
.avatar-tone-6 .avatar-initials { background: var(--neutral-700); }


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

.avatar-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 100%; height: 100%;
  background: var(--neutral-200);
  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(--bg-primary);
  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(--bg-tertiary);
  color: var(--text-secondary);
  font-family: var(--font-label);
  font-size: var(--type-caption-size); /* 11px → caption (12px) closest token */
  font-weight: var(--type-body-emphasis);
}
.avatar-group-lg > .avatar,
.avatar-group-lg > .avatar-more {
  margin-left: -10px;
  box-shadow: 0 0 0 2px var(--bg-primary);
}


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

.avatar-status {
  position: absolute;
  border-radius: 50%;
  box-shadow: 0 0 0 2px var(--bg-primary);
  background: var(--neutral-400);
  z-index: 1;
}
.avatar-status-online  { background: var(--bg-success); }
.avatar-status-busy    { background: var(--bg-error); }
.avatar-status-away    { background: var(--bg-warning); }
.avatar-status-offline { background: var(--neutral-400); }
/* 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(--bg-primary); }
.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 (--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);
  padding: var(--space-2) var(--space-8);
  border: 1px solid var(--border-secondary);
  border-radius: var(--radius-none);
  background: var(--bg-secondary);
  color: var(--text-primary);
  white-space: nowrap;
  vertical-align: middle;
}


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

.badge-sm {
  font-size: var(--type-caption-size); /* 10px → caption (12px) closest token */
  line-height: 14px;
  padding: 1px var(--space-4);
}

.badge-lg {
  font-size: var(--type-label-md-size);
  line-height: var(--type-label-md-lh);
  padding: var(--space-4) var(--space-12);
}


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

.badge-brand {
  background: var(--bg-brand-1);
  color: var(--text-brand);
  border-color: var(--border-brand);
}

.badge-success {
  background: var(--bg-success-1);
  color: var(--text-success);
  border-color: var(--border-success);
}

.badge-error {
  background: var(--bg-error-1);
  color: var(--text-error);
  border-color: var(--border-error);
}

.badge-warning {
  background: var(--bg-warning-1);
  color: var(--text-warning);
  border-color: var(--border-warning);
}

.badge-info {
  background: var(--bg-info-1);
  color: var(--text-info);
  border-color: var(--border-info);
}


/* ================================================================
   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;
}


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

.badge-brand-strong {
  background: var(--bg-brand);
  color: var(--text-on-inverse);
  border-color: transparent;
}

.badge-success-strong {
  background: var(--bg-success);
  color: var(--text-on-inverse);
  border-color: transparent;
}

.badge-error-strong {
  background: var(--bg-error);
  color: var(--text-on-inverse);
  border-color: transparent;
}

.badge-warning-strong {
  background: var(--bg-warning);
  color: var(--text-on-inverse);
  border-color: transparent;
}

.badge-info-strong {
  background: var(--bg-info);
  color: var(--text-on-inverse);
  border-color: transparent;
}

.badge-neutral-strong {
  background: var(--bg-inverse);
  color: var(--text-on-inverse);
  border-color: transparent;
}


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

.badge-dot::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}


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

.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-caption-size); /* 11px → caption (12px) closest token */
  line-height: 20px;
  font-weight: var(--type-heading-md-weight); /* 700 */
  text-align: center;
  border: none;
}

.badge-count.badge-sm {
  min-width: 16px;
  height: 16px;
  line-height: 16px;
  font-size: var(--type-caption-size); /* 9px → caption (12px) closest token */
  padding: 0 3px;
}


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

.badge svg {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}

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


/* ================================================================
   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(--bg-secondary);
}


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

/* 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(--bg-tertiary);
}

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

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

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

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

.badge.badge-info:has(.badge-remove):hover {
  background: var(--bg-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;
}

/* Thicker stroke matches the checkbox tick treatment — close icons are
   critical affordances and need visual weight. */
.badge-remove svg {
  width: 12px;
  height: 12px;
  fill: currentColor;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linejoin: miter;
  stroke-linecap: butt;
}

/* 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-on-inverse);
  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(--bg-brand); }
.badge-dot-standalone.badge-success { background: var(--bg-success); }
.badge-dot-standalone.badge-error   { background: var(--bg-error); }
.badge-dot-standalone.badge-warning { background: var(--bg-warning); }
.badge-dot-standalone.badge-info    { background: var(--bg-info); }
.badge-dot-standalone-ring { box-shadow: 0 0 0 2px var(--bg-primary); }


/* ================================================================
   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.
   ================================================================ */

[data-theme="dark"] .badge-brand-strong,
[data-theme="dark"] .badge-success-strong,
[data-theme="dark"] .badge-error-strong,
[data-theme="dark"] .badge-warning-strong,
[data-theme="dark"] .badge-info-strong {
  color: var(--neutral-1000);
  border-color: transparent;
}

[data-theme="dark"] .badge-neutral-strong {
  border-color: var(--neutral-100);
}

/* ─── 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: 0;
  border: 1px solid var(--border-interactive);
  text-decoration: none;  /* Allow <a class="btn"> without underline */
  transition:
    box-shadow 100ms cubic-bezier(0.25, 0.1, 0.25, 1),
    transform 100ms cubic-bezier(0.16, 1, 0.3, 1);
  white-space: nowrap;
}

.btn:active,
.btn.is-active {
  transform: scale(0.98);
}

.btn:focus-visible,
.btn.is-focus {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}


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

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


/* ================================================================
   SIZES — with leading icon (reduce icon-side padding)
   ================================================================ */

.btn-sm.has-leading { padding-left: 8px; }
.btn-md.has-leading { padding-left: 12px; }
.btn-lg.has-leading { padding-left: 16px; }


/* ================================================================
   SIZES — with trailing icon (reduce icon-side padding)
   ================================================================ */

.btn-sm.has-trailing { padding-right: 8px; }
.btn-md.has-trailing { padding-right: 12px; }
.btn-lg.has-trailing { padding-right: 16px; }


/* ================================================================
   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; }


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

.btn svg {
  flex-shrink: 0;
}

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


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

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


/* ================================================================
   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(--bg-brand-hover); }
.btn-destructive:hover, .btn-destructive.is-hover { background: var(--bg-error-hover); }
.btn-success:hover,     .btn-success.is-hover     { background: var(--bg-success-hover); }

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

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


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

.btn[disabled],
.btn.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}

.btn.is-loading {
  opacity: 0.45;
  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-interactive (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(--neutral-1000); }
[data-theme="dark"] .btn-neutral     { color: var(--neutral-1000); }
[data-theme="dark"] .btn-destructive { color: var(--neutral-1000); }
[data-theme="dark"] .btn-success     { color: var(--neutral-1000); }

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


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

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

.btn-group .btn {
  border-radius: 0;
}

.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;
}

/* ─── 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(--bg-secondary);
  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);
  color: var(--text-primary);
}

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

.card-content {
  font-family: var(--font-body);
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-lh);
  font-weight: var(--type-body-sm-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
   ================================================================ */

.card-interactive {
  cursor: pointer;
}

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

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

.card-interactive:focus-visible,
.card-interactive.is-focus {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}


/* ================================================================
   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);
}

.card.is-selected:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}


/* ================================================================
   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
   ================================================================ */

.card[aria-disabled="true"],
.card.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}


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

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

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

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

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

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


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

.card-media {
  margin: calc(-1 * var(--space-24)) calc(-1 * var(--space-24)) 0;
  width: calc(100% + var(--space-24) * 2);
  overflow: hidden;
}

.card-compact .card-media {
  margin: calc(-1 * var(--space-16)) calc(-1 * var(--space-16)) 0;
  width: calc(100% + var(--space-16) * 2);
}

.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;
}

.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; }
.card-expand-toggle {
  margin-left: auto;
  flex-shrink: 0;
  width: 24px; height: 24px;
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--text-secondary);
}
.card-expand-toggle::before,
.card-expand-toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: currentColor;
  border-radius: 1px;
  transition: transform 260ms cubic-bezier(.2,.8,.2,1);
}
.card-expand-toggle::before { width: 12px; height: 1.5px; transform: translate(-50%, -50%); }
.card-expand-toggle::after  { width: 1.5px; height: 12px; transform: translate(-50%, -50%); }
.card-expandable[open] > summary .card-expand-toggle::after  { transform: translate(-50%, -50%) rotate(90deg); }
.card-expandable[open] > summary .card-expand-toggle::before { transform: translate(-50%, -50%) rotate(180deg); }
.card-expandable > .card-expand-body {
  padding: var(--space-24);
  background: var(--bg-secondary);
  position: relative;
  font-size: var(--type-body-sm-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-4) 0;
  background: var(--bg-primary);
  border: 1px solid var(--border-secondary);
  border-radius: var(--radius-none);
  box-shadow: var(--shadow-lg);
  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%;
  padding: var(--space-8) var(--space-16);
  font-family: var(--font-body);
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-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.
   --bg-secondary is exactly that in both themes:
     light: --neutral-200 (one step darker than --bg-primary --neutral-100)
     dark:  --neutral-900 (one step lighter than --bg-primary --neutral-1000) */
.dropdown-item:hover {
  background: var(--bg-secondary);
}

.dropdown-item:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: calc(-1 * var(--focus-width));
}

.dropdown-item:active {
  transform: scale(0.98);
}


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

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

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

/* Disabled */
.dropdown-item[disabled],
.dropdown-item.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}

/* All text inside a disabled item collapses to --text-primary. opacity:0.45
   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 — uses the label-scale weight (medium), tick handles primary signal */
.dropdown-item.is-active {
  font-weight: var(--type-label-sm-weight);
}

/* Tick — uses submit.svg from the icon library (single source of truth).
   Negative margin-right compensates for ~5px empty space on the right of the
   glyph within its 24-unit viewBox so the visible tick's right edge aligns
   with the +/− icon on the trigger. */
.dropdown-item.is-active::after {
  content: '';
  display: block;
  width: 22px;
  height: 22px;
  margin-left: auto;
  margin-right: -5px;
  background-color: currentColor;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M18.456 7.38979L9.91075 17.3898L8.85461 17C8.85461 14.6674 7.17887 12.6704 4.85205 12.079L5.14765 10.916C7.48295 11.5096 9.33103 13.2975 9.8844 15.5734L17.5437 6.61021L18.456 7.38979Z' fill='black'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M18.456 7.38979L9.91075 17.3898L8.85461 17C8.85461 14.6674 7.17887 12.6704 4.85205 12.079L5.14765 10.916C7.48295 11.5096 9.33103 13.2975 9.8844 15.5734L17.5437 6.61021L18.456 7.38979Z' fill='black'/%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-label-sm-size);
  line-height: var(--type-label-sm-lh);
  color: var(--text-tertiary);
}


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

.dropdown-item svg {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}


/* ================================================================
   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-16) 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-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-16);
  font-family: var(--font-body);
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-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;

  /* Match the textarea scrollbar treatment (input.css) so all scrollable
     surfaces in the system share a single look. */
  scrollbar-width: thin;
  scrollbar-color: var(--neutral-300) transparent;
}
.dropdown-scroll::-webkit-scrollbar { width: 8px; height: 8px; }
.dropdown-scroll::-webkit-scrollbar-track { background: transparent; }
.dropdown-scroll::-webkit-scrollbar-thumb {
  background: var(--neutral-300);
  border: 2px solid var(--bg-primary);
  border-radius: var(--radius-full);
}
.dropdown-scroll::-webkit-scrollbar-thumb:hover { background: var(--neutral-400); }
[data-theme="dark"] .dropdown-scroll { scrollbar-color: var(--neutral-700) transparent; }
[data-theme="dark"] .dropdown-scroll::-webkit-scrollbar-thumb { background: var(--neutral-700); }
[data-theme="dark"] .dropdown-scroll::-webkit-scrollbar-thumb:hover { background: var(--neutral-600); }

/* 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(--bg-primary));
  pointer-events: none;
}


/* ================================================================
   SEARCHABLE SELECT — composed pattern
   Combines cm-select 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(--bg-primary);
  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-sm-size);
  line-height: var(--type-body-sm-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);
  padding: 0 var(--space-40) 0 var(--_field-padding);
  cursor: pointer;
  text-align: left;
  position: relative;
}

/* +/− icon (mirrors .card-expand-toggle pattern from card.css).
   Right edge of the visible icon sits at --space-16 from the trigger
   right edge — matches the original chevron's inset. */
.cm-field-wrap > .cm-field-trigger::before,
.cm-field-wrap > .cm-field-trigger::after {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(var(--space-16) + 6px); /* +6 = half of the 12px bar width */
  background: var(--text-secondary);
  border-radius: 1px;
  transition: transform var(--duration-normal) var(--ease-m3-standard);
}
.cm-field-wrap > .cm-field-trigger::before { width: 12px; height: 1.5px; transform: translate(50%, -50%); }
.cm-field-wrap > .cm-field-trigger::after  { width: 1.5px; height: 12px; transform: translate(50%, -50%); }
/* Open state — vertical bar rotates flat, leaving "−" */
.cm-field.is-open .cm-field-wrap > .cm-field-trigger::after  { transform: translate(50%, -50%) rotate(90deg); }
.cm-field.is-open .cm-field-wrap > .cm-field-trigger::before { transform: translate(50%, -50%) 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-interactive); }
.cm-field-wrap > .cm-field-trigger:focus ~ .cm-field-label { color: var(--text-primary); }

/* Error overrides */
.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); }

/* 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(--bg-primary);
  border-bottom: 1px solid var(--border-tertiary);
  z-index: 1;
  display: flex;
  align-items: center;
}
.dropdown-search-wrap > .dropdown-search-icon {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  margin-left: var(--space-16);
  color: var(--text-tertiary);
}
.dropdown-search-wrap > .dropdown-search {
  border-bottom: 0;
  padding-left: var(--space-8);
}


/* ================================================================
   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-lg);
}

/* ─── 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(--bg-tertiary);
  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(--bg-secondary);
  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);
  color: var(--text-secondary);
  margin: 0;
}
.empty-state-description {
  font-family: var(--font-body);
  font-size: var(--type-body-sm-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-md-size); font-weight: var(--type-body-emphasis); }
.empty-state-inline .empty-state-description { font-size: var(--type-body-sm-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 {
  display: inline-flex;
  align-items: center;
  gap: var(--space-4);
  height: 32px;
  padding: 0 var(--space-12);
  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);
  background: var(--bg-primary);
  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);
}

.filter-chip svg {
  width: 12px;
  height: 12px;
  flex-shrink: 0;
}

/* Active-state tick — uses the library submit.svg path. Stroke overlay
   matches the checkbox tick treatment so the affordance reads at small
   sizes. Critical affordances need visual weight. */
.filter-chip-tick {
  fill: currentColor;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linejoin: miter;
  stroke-linecap: butt;
}


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

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



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

.filter-chip.is-active {
  background: var(--bg-inverse);
  border-color: var(--bg-inverse);
  color: var(--text-on-inverse);
}

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



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

.filter-chip:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}


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

.filter-chip:disabled,
.filter-chip.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}


/* ================================================================
   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 {
  height: 24px;
  font-size: var(--type-caption-size);
  line-height: 1;
  padding: 0 var(--space-8);
  gap: var(--space-4);
}

/* Square variant — overrides the default pill radius.
   CueDesign chips default to --radius-full (pill). Use .filter-chip-square
   for 0-radius in contexts matching CueDesign's house style. */
.filter-chip-square {
  border-radius: var(--radius-none);
}


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

.filter-chip-removable {
  padding-right: var(--space-8);
}

.filter-chip-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: 0;
  background: transparent;
  color: currentColor;
  cursor: pointer;
  opacity: 0.6;
  margin-left: var(--space-8);
  border-radius: var(--radius-none);
  transition: opacity var(--duration-instant) var(--ease-default);
}

/* Thicker stroke matches the checkbox tick treatment — close icons are
   critical affordances and need visual weight. */
.filter-chip-remove svg {
  width: 14px;
  height: 14px;
  fill: currentColor;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linejoin: miter;
  stroke-linecap: butt;
}

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

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


/* Removable × scales with chip size */
.filter-chip-sm .filter-chip-remove { width: 14px; height: 14px; }

/* ─── 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: 18px;
  height: 18px;
  flex-shrink: 0;
  border: 1px solid var(--border-primary);
  border-radius: var(--radius-none);
  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.svg from icon library + stroke overlay for thickness.
   Both check-icon and dash-icon stack at the centre via absolute positioning. */
.cm-checkbox-box svg {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 14px;
  fill: var(--text-primary);
  stroke: var(--text-primary);
  stroke-width: 1.5;
  stroke-linejoin: miter;
  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. */
.cm-checkbox:hover .cm-checkbox-box {
  border-color: var(--text-primary);
  background: var(--bg-secondary);
}
.cm-checkbox:hover input:checked + .cm-checkbox-box,
.cm-checkbox:hover input:indeterminate + .cm-checkbox-box {
  background: var(--bg-brand-hover);
}

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

.cm-checkbox input:checked + .cm-checkbox-box svg.check-icon {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

/* When fully checked, hide dash-icon (only shows on indeterminate). Required
   when both check-icon + dash-icon are siblings inside the box (master/select-all). */
.cm-checkbox input:checked + .cm-checkbox-box svg.dash-icon {
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.6);
}

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

.cm-checkbox input:indeterminate + .cm-checkbox-box svg.check-icon { opacity: 0; transform: translate(-50%, -50%) scale(0.6); }
.cm-checkbox input:indeterminate + .cm-checkbox-box svg.dash-icon { opacity: 1; transform: translate(-50%, -50%) scale(1); }

/* Focus visible */
.cm-checkbox input:focus-visible + .cm-checkbox-box {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}

/* Disabled */
.cm-checkbox.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}


/* Label — label weight (500) at body-sm size */
.cm-checkbox-label {
  font-family: var(--font-label);
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-lh);
  font-weight: var(--type-label-sm-weight);
  color: var(--text-primary);
  user-select: none;
}

.cm-checkbox-description {
  font-family: var(--font-body);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-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: 18px;
  height: 18px;
  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: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--bg-brand);
  opacity: 0;
  transform: scale(0);
  transition:
    opacity var(--duration-fast) var(--ease-m3-standard),
    transform var(--duration-fast) var(--ease-m3-standard);
}

/* Hover — same rule as checkbox */
.cm-radio:hover .cm-radio-circle {
  border-color: var(--text-primary);
  background: var(--bg-secondary);
}
.cm-radio:hover input:checked ~ .cm-radio-circle {
  background: var(--bg-brand-hover);
}

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

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

/* Focus visible */
.cm-radio input:focus-visible + .cm-radio-circle {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}

/* Disabled */
.cm-radio.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}


/* Label — label weight (500) at body-sm size */
.cm-radio-label {
  font-family: var(--font-label);
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-lh);
  font-weight: var(--type-label-sm-weight);
  color: var(--text-primary);
  user-select: none;
}

.cm-radio-description {
  font-family: var(--font-body);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  color: var(--text-secondary);
  margin-top: var(--space-2);
}


/* ================================================================
   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: 22px;
  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;
  top: 2px;
  left: 2px;
  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 bg-secondary; 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. */
.cm-toggle:hover .cm-toggle-track {
  border-color: var(--text-primary);
  background: var(--bg-secondary);
}
.cm-toggle:hover .cm-toggle-thumb {
  background: var(--text-primary);
}
.cm-toggle:hover input:checked + .cm-toggle-track {
  background: var(--bg-brand-hover);
}

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

.cm-toggle input:checked + .cm-toggle-track .cm-toggle-thumb {
  transform: translateX(18px);
  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(16px);
}

/* Focus visible */
.cm-toggle input:focus-visible + .cm-toggle-track {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}

/* Disabled — track border softens to --border-secondary, matching the input
   notch's disabled treatment. opacity:0.45 handles the "off" feel. */
.cm-toggle.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}
.cm-toggle.is-disabled .cm-toggle-track {
  border-color: var(--border-primary);
}

/* Label — label weight (500) at body-sm size */
.cm-toggle-label {
  font-family: var(--font-label);
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-lh);
  font-weight: var(--type-label-sm-weight);
  color: var(--text-primary);
  user-select: none;
}


/* ================================================================
   SELECT
   ================================================================ */

.cm-select {
  display: inline-flex;
  flex-direction: column;
  width: 100%;
  position: relative;
}

.cm-select-trigger {
  appearance: none;
  -webkit-appearance: none;
  font-family: var(--font-body);
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-lh);
  font-weight: var(--type-body-sm-weight);
  color: var(--text-primary);
  background: transparent;
  border: 1px solid var(--border-secondary);
  border-radius: var(--radius-none);
  height: 40px;
  padding: 10px var(--space-40) 10px var(--space-16);
  width: 100%;
  cursor: pointer;
  transition: border-color var(--duration-instant) var(--ease-default);
  background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M11.4002 17C11.4002 13.6495 8.68402 10.9333 5.3335 10.9333L5.3335 9.73333C8.31742 9.73333 10.8813 11.5319 12.0002 14.104C13.1191 11.5319 15.6829 9.73333 18.6668 9.73333V10.9333C15.3163 10.9333 12.6002 13.6495 12.6002 17H11.4002Z' fill='%2384807B'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
}

.cm-select-trigger:hover {
  border-color: var(--border-primary);
}

.cm-select-trigger:focus {
  border-color: var(--text-primary);
  outline: none;
}

/* Placeholder (unselected) */
.cm-select-trigger.is-placeholder {
  color: var(--text-tertiary);
}

/* Disabled */
.cm-select.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}

/* Error */
.cm-select.is-error .cm-select-trigger {
  border-color: var(--text-error);
}
.cm-select.is-error .cm-select-trigger:hover,
.cm-select.is-error .cm-select-trigger:focus {
  border-color: var(--text-error);
}

/* Static label above */
.cm-select-label {
  font-family: var(--font-body);
  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);
  margin-bottom: var(--space-4);
}

.cm-select.is-error .cm-select-label {
  color: var(--text-error);
}

/* Helper */
.cm-select-helper {
  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);
  min-height: var(--space-20);
  padding-top: var(--space-4);
}

.cm-select.is-error .cm-select-helper {
  color: var(--text-error);
}

/* Select sizes */
.cm-select-sm .cm-select-trigger { height: 32px; font-size: var(--type-label-sm-size); padding: 8px var(--space-32) 8px var(--space-12); background-position: right 12px center; }
.cm-select-lg .cm-select-trigger { height: 48px; padding: 12px var(--space-40) 12px var(--space-16); }


/* ================================================================
   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);
  background: var(--bg-primary);
  cursor: pointer;
  transition:
    background var(--duration-fast) var(--ease-default),
    border-color var(--duration-fast) var(--ease-default);
  min-width: 220px;
}

.cm-radio-card:hover {
  border-color: var(--text-primary);
  background: var(--bg-secondary);
}

.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(--bg-brand);
}

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

/* Selected card — neutral tint (one step from page bg), 1px border */
.cm-radio-card:has(input:checked) {
  border-color: var(--text-primary);
  background: var(--bg-secondary);
}


/* 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-sm-weight);
  font-size: var(--type-body-sm-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 {
  font-family: var(--font-display);
  font-size: var(--type-body-md-size);
  font-weight: var(--type-display-sm-weight);
  color: var(--text-primary);
  margin-top: var(--space-8);
}

/* Focus visible */
.cm-radio-card:has(input:focus-visible) {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}

/* Disabled */
.cm-radio-card.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}

/* 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 — small size modifier
   ================================================================ */

.cm-toggle-sm .cm-toggle-track {
  width: 30px;
  height: 18px;
}

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

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

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

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


/* ================================================================
   SELECT — warning state
   ================================================================ */

/* Mirrors .cm-select.is-error: uses --text-warning (not --border-warning)
   for border, matching how error uses --text-error. */
.cm-select-warning .cm-select-trigger {
  border-color: var(--text-warning);
}

.cm-select-warning .cm-select-trigger:hover,
.cm-select-warning .cm-select-trigger:focus {
  border-color: var(--text-warning);
}

.cm-select-warning .cm-select-label {
  color: var(--text-warning);
}

.cm-select-warning .cm-select-helper {
  color: var(--text-warning);
}

/* Warning chevron — matches --text-warning (warning-700 = #EF7C59) */
.cm-select-warning .cm-select-trigger {
  background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M11.4002 17C11.4002 13.6495 8.68402 10.9333 5.3335 10.9333L5.3335 9.73333C8.31742 9.73333 10.8813 11.5319 12.0002 14.104C13.1191 11.5319 15.6829 9.73333 18.6668 9.73333V10.9333C15.3163 10.9333 12.6002 13.6495 12.6002 17H11.4002Z' fill='%23EF7C59'/%3E%3C/svg%3E");
}

/* Dark theme: warning chevron uses dark-mode warning colour */
[data-theme="dark"] .cm-select-warning .cm-select-trigger {
  background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M11.4002 17C11.4002 13.6495 8.68402 10.9333 5.3335 10.9333L5.3335 9.73333C8.31742 9.73333 10.8813 11.5319 12.0002 14.104C13.1191 11.5319 15.6829 9.73333 18.6668 9.73333V10.9333C15.3163 10.9333 12.6002 13.6495 12.6002 17H11.4002Z' fill='%23FFA278'/%3E%3C/svg%3E");
}


/* ================================================================
   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');
   ═══════════════════════════════════════════════════════════════ */


/* ─── Custom easing (not yet in motion-tokens.css) ─── */
:root {
  --ease-m3-standard: cubic-bezier(0.2, 0, 0, 1);
}


/* ═══ 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)
   ═══════════════════════════════════════════════════════════════ */

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

  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(--bg-brand);
}


/* ═══ 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);
  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);
  padding: 0 var(--space-40) 0 var(--_field-padding);
  cursor: pointer;
  /* Chevron from icon library (chevron-down.svg) */
  background-image: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M11.4002 17C11.4002 13.6495 8.68402 10.9333 5.3335 10.9333L5.3335 9.73333C8.31742 9.73333 10.8813 11.5319 12.0002 14.104C13.1191 11.5319 15.6829 9.73333 18.6668 9.73333V10.9333C15.3163 10.9333 12.6002 13.6495 12.6002 17H11.4002Z' fill='%2384807B'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
}

/* 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-interactive);
}

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


/* ═══ Hover ═══ */

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


/* ═══ Focus ═══ */

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

.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-interactive 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.45;
  pointer-events: none;
}

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

/* Notch border keeps --border-primary in disabled state — opacity:0.45
   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.45
   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 {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  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);
}

.cm-field-wrap 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);
}

/* ─── Icon padding overrides via --_field-padding ─── */
.cm-field-has-leading {
  --_field-padding-left: 40px;
}

.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: 40px; }


/* ═══ Sizes ═══ */

/* LG — 48px height */
.cm-field-lg {
  --_field-h: 48px;
  --_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);
}


/* ═══ 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 0.4s 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(--bg-brand);
  scrollbar-width: thin;
  scrollbar-color: var(--neutral-300) transparent;
}

.cm-field-wrap textarea::-webkit-scrollbar { width: 8px; height: 8px; }
.cm-field-wrap textarea::-webkit-scrollbar-track { background: transparent; }
.cm-field-wrap textarea::-webkit-scrollbar-thumb { background: var(--neutral-300); border: 2px solid var(--bg-primary); border-radius: var(--radius-full); }
.cm-field-wrap textarea::-webkit-scrollbar-thumb:hover { background: var(--neutral-400); }

[data-theme="dark"] .cm-field-wrap textarea { scrollbar-color: var(--neutral-700) transparent; }
[data-theme="dark"] .cm-field-wrap textarea::-webkit-scrollbar-thumb { background: var(--neutral-700); border-color: var(--bg-primary); }
[data-theme="dark"] .cm-field-wrap textarea::-webkit-scrollbar-thumb:hover { background: var(--neutral-600); }

.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-interactive); }
.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 --border-error). 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(--bg-secondary);
  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(--bg-primary);
  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);
  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-sm-size);
  line-height: var(--type-body-sm-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(--border-brand);
}

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


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

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

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

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

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

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

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


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

.kpi-card:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}


/* ================================================================
   DARK THEME
   Status variants auto-flip via semantic tokens.
   ================================================================ */

[data-theme="dark"] .kpi-card {
  background: var(--bg-primary);
  border-color: var(--border-tertiary);
}

[data-theme="dark"] .kpi-card-brand {
  border-color: var(--border-brand);
}

[data-theme="dark"] .kpi-card-success {
  border-color: var(--border-success);
}

[data-theme="dark"] .kpi-card-error {
  border-color: var(--border-error);
}

[data-theme="dark"] .kpi-card-warning {
  border-color: var(--border-warning);
}


/* ================================================================
   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-caption-size);
  font-weight: var(--type-label-sm-weight); /* 500 */
  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-body-emphasis);
  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(--bg-tertiary);
  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).
 * No colour opinion — designer applies colour via class or style.
 * 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.
   Inherits colour from parent — designer controls colour.
   ================================================================ */

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

/* Animated underline — draws left→right on hover
   Uses width animation (0 → 100%) matching cuemath.com pattern. */
.cm-link::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1.5px;
  background-color: currentColor;
  transition: width var(--duration-normal) var(--ease-out);
}

.cm-link:hover::after {
  width: 100%;
}


/* ================================================================
   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: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
  border-radius: 1px;
}

.cm-link[aria-disabled="true"] {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}

/* ─── 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(--overlay-medium);
  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(--bg-primary);
  border: 1px solid var(--border-tertiary);
  border-radius: var(--radius-none);
  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);
  color: var(--text-primary);
  margin: 0;
}

.modal-description {
  font-family: var(--font-body);
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-lh);
  font-weight: var(--type-body-sm-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);
}

.modal-close:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}

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


/* ================================================================
   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-sm-size);
  line-height: var(--type-body-sm-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-none);
    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(--bg-primary);
  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);
  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-sm-size);
  line-height: var(--type-body-sm-lh);
  font-weight: var(--type-body-sm-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(--bg-secondary);
}


.nav-link.is-active {
  color: var(--text-brand);
  font-weight: var(--type-body-emphasis);
}

.nav-link:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}

.nav-link[disabled],
.nav-link.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}

.nav-link svg {
  width: 18px;
  height: 18px;
  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(--bg-secondary);
  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(--bg-tertiary);
  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-caption-size);
  line-height: var(--type-caption-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;
}

.breadcrumb-item a:focus-visible,
.breadcrumb-link:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}

/* 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;
}

.nav-toggle:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}

@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(--bg-primary);
  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-caption-size); /* 11px → caption (12px) closest token */
  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 */
.nav-bottom-item:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: calc(-1 * var(--focus-width));
}

/* 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 --bg-secondary 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);
}


.page-item:active {
  transform: scale(0.98);
}

.page-item:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}


/* ================================================================
   ACTIVE PAGE — current page indicator
   ================================================================ */

.page-item.is-active {
  color: var(--text-brand);
  background: transparent;
  border-color: transparent;
  font-weight: var(--type-body-emphasis);
  cursor: default;
}

.page-item.is-active:hover {
  color: var(--text-brand);
  background: transparent;
  box-shadow: none;
}


/* ================================================================
   DISABLED — prev/next at bounds
   ================================================================ */

.page-item[disabled],
.page-item.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}


/* ================================================================
   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: calc(50% - var(--progress-bar-h, 4px) / 2);
  height: var(--progress-bar-h, 4px);
  width: var(--progress-value, 0%);
  background: var(--bg-brand);
  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(--bg-brand); }
.progress-success .progress-bar { background: var(--bg-success); }
.progress-warning .progress-bar { background: var(--bg-warning); }
.progress-error   .progress-bar { background: var(--bg-error); }


/* ================================================================
   LABELS & CAPTIONS
   ================================================================ */

.progress-row {
  display: flex; align-items: center; gap: var(--space-12);
}
.progress-row .progress { flex: 1; }
.progress-label {
  font-family: var(--font-mono);
  font-size: var(--type-caption-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(--bg-brand); 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(--bg-success); }
.progress-ring-error   .progress-ring-fill  { stroke: var(--bg-error); }
.progress-ring-warning .progress-ring-fill  { stroke: var(--bg-warning); }

.progress-ring-label {
  position: absolute;
  font-family: var(--font-display);
  font-weight: var(--type-display-sm-weight);
  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 cubic-bezier(0.65,0,0.35,1) infinite;
  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(--bg-tertiary);
}
.progress-stepped .progress-step.is-complete { background: var(--bg-brand); }
.progress-stepped .progress-step.is-active {
  background: linear-gradient(to right, var(--bg-brand) 50%, var(--bg-tertiary) 50%);
}
.progress-stepped.progress-success .progress-step.is-complete { background: var(--bg-success); }
.progress-stepped.progress-success .progress-step.is-active {
  background: linear-gradient(to right, var(--bg-success) 50%, var(--bg-tertiary) 50%);
}


/* ================================================================
   BUFFER INDICATOR
   ================================================================ */

.progress-buffered .progress-buffer {
  position: absolute;
  left: 0;
  top: calc(50% - var(--progress-bar-h, 4px) / 2);
  height: var(--progress-bar-h, 4px);
  width: var(--progress-buffer, 0%);
  background: var(--bg-tertiary);
}
.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/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(--bg-tertiary);
  border-radius: var(--radius-none);
  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(--bg-secondary);
  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.
   --bg-tertiary 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(--bg-brand));
  stroke-width: var(--sparkline-stroke, 1.5px);
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sparkline circle {
  fill: var(--sparkline-color, var(--bg-brand));
  r: 2;
}


/* ================================================================
   FILL VARIANT — area under the line
   ================================================================ */

.sparkline-fill polygon,
.sparkline-fill path.sparkline-area {
  fill: var(--sparkline-color, var(--bg-brand));
  opacity: 0.1;
  stroke: none;
}


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

.sparkline-brand {
  --sparkline-color: var(--bg-brand);
}

.sparkline-success {
  --sparkline-color: var(--bg-success);
}

.sparkline-error {
  --sparkline-color: var(--bg-error);
}

.sparkline-warning {
  --sparkline-color: var(--bg-warning);
}

.sparkline-info {
  --sparkline-color: var(--bg-info);
}


/* ================================================================
   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(--bg-primary);
  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 {
  color: var(--neutral-400);
  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(--bg-brand);
}

.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(--bg-brand); }
.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-sm-size);
  line-height: var(--type-body-sm-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(--bg-secondary);
}



/* ================================================================
   ROW SELECTION (opt-in via .table-selectable)
   ================================================================ */

.table-selectable tbody tr {
  cursor: pointer;
}

.table tbody tr.row-selected {
  background: var(--bg-tertiary);
}

.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);
}

.th-sortable:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: calc(-1 * var(--focus-width));
}

/* 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.45;
}

.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(--bg-secondary);
}

/* Hover always shifts one step darker than resting state */
.table-striped tbody tr:nth-child(odd):hover {
  background: var(--bg-secondary);
}
.table-striped tbody tr:nth-child(even):hover {
  background: var(--bg-tertiary);
}


/* ================================================================
   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(--bg-primary);
}

[data-theme="dark"] .table-sticky thead th {
  background: var(--bg-primary);
}


/* ================================================================
   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-sm-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(--bg-primary);
  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-body-emphasis); /* 500 */
}

.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(--bg-secondary);
  color: var(--text-primary);
}

.page-btn[aria-current="page"] {
  color: var(--text-brand);
  font-weight: var(--type-body-emphasis);
}

.page-btn[disabled] {
  opacity: 0.45;
  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(--bg-tertiary);
  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-sm-size);
  line-height: var(--type-body-sm-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); }

.row-expand-toggle svg {
  width: 18px;
  height: 18px;
  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(--bg-brand);
  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(--bg-secondary);
}

.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(--bg-primary);
  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. Both svgs overlay at the
   centre of a 14px box; opacity flips with aria-expanded. */
.col-toggle-icon {
  position: relative;
  display: inline-flex;
  width: 14px;
  height: 14px;
  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: 20;
  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(--bg-secondary); }

.col-toggle-popover .cm-checkbox-label {
  font-size: var(--type-body-sm-size);
  font-weight: var(--type-body-sm-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(--bg-primary);
  }
  .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-display);
    font-size: var(--type-heading-sm-size);
    line-height: var(--type-heading-sm-lh);
    font-weight: var(--type-heading-sm-weight);
    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-sm-size);
    line-height: var(--type-body-sm-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(--bg-primary);
}
.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-display);
  font-size: var(--type-heading-sm-size);
  line-height: var(--type-heading-sm-lh);
  font-weight: var(--type-heading-sm-weight);
  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-sm-size);
  line-height: var(--type-body-sm-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
   ================================================================ */

.table-wrap {
  scrollbar-width: thin;
  scrollbar-color: var(--neutral-300) transparent;
}

.table-wrap::-webkit-scrollbar { width: 8px; height: 8px; }
.table-wrap::-webkit-scrollbar-track { background: transparent; }
.table-wrap::-webkit-scrollbar-thumb {
  background: var(--neutral-300);
  border: 2px solid var(--bg-primary);
  border-radius: var(--radius-full);
}
.table-wrap::-webkit-scrollbar-thumb:hover { background: var(--neutral-400); }

[data-theme="dark"] .table-wrap { scrollbar-color: var(--neutral-700) transparent; }
[data-theme="dark"] .table-wrap::-webkit-scrollbar-thumb {
  background: var(--neutral-700);
  border-color: var(--bg-primary);
}
[data-theme="dark"] .table-wrap::-webkit-scrollbar-thumb:hover { background: var(--neutral-600); }


/* ================================================================
   STICKY FIRST COLUMN — opt-in via .table-sticky-col
   First column freezes during horizontal scroll. Uses --bg-secondary
   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(--bg-secondary);
  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(--bg-tertiary);
}


/* ─── 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(--bg-secondary);
}


.tab.is-active,
.tab[aria-selected="true"] {
  color: var(--text-primary);
  font-weight: var(--type-body-emphasis);
}

.tab.is-active::after,
.tab[aria-selected="true"]::after {
  background: var(--text-primary);
}

.tab:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: calc(-1 * var(--focus-width));
}

.tab[disabled],
.tab.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}


/* ================================================================
   TAB with icon
   ================================================================ */

.tab svg {
  width: 20px;
  height: 20px;
  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-caption-size);
  line-height: var(--type-caption-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);
}


/* ================================================================
   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(--bg-secondary);
  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(--bg-primary);
  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
 * --------------------------------------------------------
 * Feedback messages: success, error, info, warning.
 *
 * 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.
 * Like modals, they genuinely sit above the page surface.
 */


/* ================================================================
   TOAST CONTAINER — positions toasts on screen
   ================================================================ */

.toast-container {
  position: fixed;
  z-index: var(--z-toast);
  display: flex;
  flex-direction: column;
  gap: var(--space-8);
  pointer-events: none;
  max-width: 420px;
  width: 100%;
}

/* Position variants */
.toast-container-top-right {
  top: var(--space-16);
  right: var(--space-16);
}

.toast-container-top-center {
  top: var(--space-16);
  left: 50%;
  transform: translateX(-50%);
}

.toast-container-bottom-right {
  bottom: var(--space-16);
  right: var(--space-16);
}

.toast-container-bottom-center {
  bottom: var(--space-16);
  left: 50%;
  transform: translateX(-50%);
}

@media (max-width: 767px) {
  .toast-container {
    max-width: calc(100vw - var(--space-32));
    left: var(--space-16);
    right: var(--space-16);
  }

  .toast-container-top-right,
  .toast-container-top-center {
    top: var(--space-16);
    transform: none;
  }

  .toast-container-bottom-right,
  .toast-container-bottom-center {
    bottom: var(--space-16);
    transform: none;
  }
}


/* ================================================================
   TOAST
   ================================================================ */

.toast {
  position: relative;          /* anchors the absolute close button */
  display: flex;
  align-items: flex-start;
  padding: var(--space-16) var(--space-40) var(--space-16) var(--space-20);
  background: var(--bg-inverse);
  color: var(--text-on-inverse);
  border: 1px solid transparent;
  border-radius: var(--radius-none);
  box-shadow: var(--shadow-lg);
  pointer-events: auto;
  opacity: 0;
  transform: translateY(-8px);
  transition:
    opacity var(--duration-normal) var(--ease-out),
    transform var(--duration-normal) var(--ease-out);
}

.toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Bottom-positioned toasts slide up instead */
.toast-container-bottom-right .toast,
.toast-container-bottom-center .toast {
  transform: translateY(8px);
}

.toast-container-bottom-right .toast.is-visible,
.toast-container-bottom-center .toast.is-visible {
  transform: translateY(0);
}


/* ================================================================
   TOAST CONTENT
   ================================================================ */

.toast-content {
  flex: 1;
  min-width: 0;
}

.toast-title {
  font-family: var(--font-label);
  font-size: var(--type-label-md-size);
  line-height: var(--type-label-md-lh);
  font-weight: var(--type-body-emphasis);
}

.toast-message {
  font-family: var(--font-body);
  font-size: var(--type-body-sm-size);
  line-height: var(--type-body-sm-lh);
  font-weight: var(--type-body-sm-weight);
  margin-top: var(--space-4);
  opacity: 0.85;
}

/* When there's only a message (no title), remove the top margin */
.toast-message:first-child {
  margin-top: 0;
  opacity: 1;
}


/* ================================================================
   TOAST CLOSE
   ================================================================ */

/* Anchored to top-right of the toast with 8px from edges.
   Always secondary; primary on hover — independent of toast variant. */
.toast-close {
  position: absolute;
  top: var(--space-8);
  right: var(--space-8);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  transition: color var(--duration-instant) var(--ease-default);
}

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

.toast-close:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}

/* Library close.svg at 20px — system's standard filled path. */
.toast-close svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}


/* ================================================================
   TOAST ACTION — inline text button
   ================================================================ */

.toast-action {
  font-family: var(--font-label);
  font-size: var(--type-label-sm-size);
  line-height: var(--type-label-sm-lh);
  font-weight: var(--type-body-emphasis);
  color: currentColor;
  text-decoration: underline;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  margin-top: var(--space-4);
  display: inline-block;
}

.toast-action:hover {
  opacity: 0.8;
}

.toast-action:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}


/* ================================================================
   STATUS VARIANTS
   Neutral (default) is inverse. Status variants use tinted fills.
   ================================================================ */

.toast-success {
  background: var(--bg-success-1);
  color: var(--text-success);
  border-color: var(--border-success);
}

.toast-error {
  background: var(--bg-error-1);
  color: var(--text-error);
  border-color: var(--border-error);
}

.toast-warning {
  background: var(--bg-warning-1);
  color: var(--text-warning);
  border-color: var(--border-warning);
}

.toast-info {
  background: var(--bg-info-1);
  color: var(--text-info);
  border-color: var(--border-info);
}

/* ─── 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
   ================================================================ */

.tooltip {
  position: absolute;
  z-index: var(--z-tooltip);
  padding: var(--space-8) var(--space-12);
  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-on-inverse);
  background: var(--bg-inverse);
  border-radius: var(--radius-none);
  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);
}

/* 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 — CSS triangle pointing toward trigger
   ================================================================ */

.tooltip::after {
  content: '';
  position: absolute;
  border: 4px solid transparent;
}

/* Top arrow (default) — points down */
.tooltip::after,
.tooltip-top::after {
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-top-color: var(--bg-inverse);
}

/* Bottom arrow — points up */
.tooltip-bottom::after {
  bottom: 100%;
  top: auto;
  left: 50%;
  transform: translateX(-50%);
  border-top-color: transparent;
  border-bottom-color: var(--bg-inverse);
}

/* Left arrow — points right */
.tooltip-left::after {
  left: 100%;
  top: 50%;
  transform: translateY(-50%);
  border-top-color: transparent;
  border-left-color: var(--bg-inverse);
}

/* Right arrow — points left */
.tooltip-right::after {
  right: 100%;
  left: auto;
  top: 50%;
  transform: translateY(-50%);
  border-top-color: transparent;
  border-right-color: var(--bg-inverse);
}


/* ================================================================
   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);
}


/* ================================================================
   DARK THEME
   Inverts the tooltip: light surface on dark background
   ================================================================ */

[data-theme="dark"] .tooltip {
  background: var(--neutral-100);
  color: var(--neutral-1000);
}

[data-theme="dark"] .tooltip::after,
[data-theme="dark"] .tooltip-top::after {
  border-top-color: var(--neutral-100);
}

[data-theme="dark"] .tooltip-bottom::after {
  border-top-color: transparent;
  border-bottom-color: var(--neutral-100);
}

[data-theme="dark"] .tooltip-left::after {
  border-top-color: transparent;
  border-left-color: var(--neutral-100);
}

[data-theme="dark"] .tooltip-right::after {
  border-top-color: transparent;
  border-right-color: var(--neutral-100);
}
