:root {
  /* ── Brand · Indigo ── */
  --indigo-50:  #EEEFFE;
  --indigo-100: #E0E2FD;
  --indigo-200: #C4C7FB;
  --indigo-300: #9EA4F8;
  --indigo-400: #7880F4;
  --indigo-500: #5B62EF;
  --indigo-600: #4447E0;
  --indigo-700: #3535C8;
  --indigo-800: #2828A3;
  --indigo-900: #1C1C7A;

  /* ── Accent · Amber ── */
  --amber-50:  #FFFBEB;
  --amber-100: #FEF3C7;
  --amber-200: #FDE58A;
  --amber-300: #FDD24E;
  --amber-400: #FBBF24;
  --amber-500: #F59E0B;
  --amber-600: #D97706;
  --amber-700: #B45309;

  /* ── Neutrals · Warm Stone ── */
  --stone-0:   #FFFFFF;
  --stone-50:  #FAFAF7;
  --stone-100: #F5F4EF;
  --stone-200: #ECEBE4;
  --stone-300: #D9D7CE;
  --stone-400: #B5B3A8;
  --stone-500: #807E72;
  --stone-600: #57554A;
  --stone-700: #3D3C32;
  --stone-800: #28271E;
  --stone-900: #17160F;

  /* ── Status ── */
  --green-50:  #ECFDF5;
  --green-500: #10B981;
  --green-600: #059669;
  --red-50:    #FEF2F2;
  --red-500:   #EF4444;
  --red-600:   #DC2626;
  --blue-50:   #EFF6FF;
  --blue-500:  #3B82F6;

  /* ── Semantic aliases ── */
  --color-bg:              var(--stone-50);
  --color-bg-subtle:       var(--stone-100);
  --color-surface:         var(--stone-0);
  --color-surface-raised:  var(--stone-100);
  --color-border:          var(--stone-200);
  --color-border-strong:   var(--stone-300);

  --color-text-primary:    var(--stone-900);
  --color-text-secondary:  var(--stone-600);
  --color-text-muted:      var(--stone-400);
  --color-text-inverse:    var(--stone-0);
  --color-text-link:       var(--indigo-600);

  --color-brand:           var(--indigo-600);
  --color-brand-hover:     var(--indigo-700);
  --color-brand-subtle:    var(--indigo-50);
  --color-brand-border:    var(--indigo-200);

  --color-accent:          var(--amber-500);
  --color-accent-hover:    var(--amber-600);
  --color-accent-subtle:   var(--amber-50);

  --color-success:         var(--green-600);
  --color-success-subtle:  var(--green-50);
  --color-error:           var(--red-600);
  --color-error-subtle:    var(--red-50);
  --color-info:            var(--blue-500);
  --color-info-subtle:     var(--blue-50);
  --color-warning:         var(--amber-600);
  --color-warning-subtle:  var(--amber-50);
}

@import url('/static/css/bounded.css');
@import url('/static/css/jakarta-jetbrains.css');


:root {
  /* ── Families ── */
  --font-display: 'Bounded', 'Plus Jakarta Sans', system-ui, sans-serif;
  --font-body:    'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  --font-mono:    'JetBrains Mono', 'Courier New', monospace;

  /* ── Scale ── */
  --text-xs:   0.6875rem;  /* 11px */
  --text-sm:   0.8125rem;  /* 13px */
  --text-base: 0.9375rem;  /* 15px */
  --text-md:   1.0625rem;  /* 17px */
  --text-lg:   1.1875rem;  /* 19px */
  --text-xl:   1.375rem;   /* 22px */
  --text-2xl:  1.625rem;   /* 26px */
  --text-3xl:  2rem;       /* 32px */
  --text-4xl:  2.5rem;     /* 40px */
  --text-5xl:  3.25rem;    /* 52px */
  --text-6xl:  4rem;       /* 64px */
  --text-7xl:  5rem;       /* 80px */

  /* ── Weights ── */
  --weight-light:     300;
  --weight-regular:   400;
  --weight-medium:    500;
  --weight-semibold:  600;
  --weight-bold:      700;
  --weight-extrabold: 800;

  /* ── Line heights ── */
  --leading-none:     1;
  --leading-tight:    1.15;
  --leading-snug:     1.3;
  --leading-normal:   1.5;
  --leading-relaxed:  1.65;
  --leading-loose:    1.8;

  /* ── Letter spacing ── */
  --tracking-tightest: -0.04em;
  --tracking-tight:    -0.02em;
  --tracking-normal:    0;
  --tracking-wide:      0.02em;
  --tracking-wider:     0.06em;
  --tracking-widest:    0.14em;
}

:root {
  /* ── Base scale (4px unit) ── */
  --space-0:   0;
  --space-px:  1px;
  --space-0-5: 2px;
  --space-1:   4px;
  --space-2:   8px;
  --space-3:   12px;
  --space-4:   16px;
  --space-5:   20px;
  --space-6:   24px;
  --space-7:   28px;
  --space-8:   32px;
  --space-10:  40px;
  --space-12:  48px;
  --space-14:  56px;
  --space-16:  64px;
  --space-20:  80px;
  --space-24:  96px;
  --space-32:  128px;
  --space-40:  160px;
  --space-48:  192px;

  /* ── Component height tokens ── */
  --h-xs:  28px;
  --h-sm:  36px;
  --h-md:  44px;
  --h-lg:  52px;
  --h-xl:  60px;

  /* ── Layout ── */
  --container-sm:   640px;
  --container-md:   768px;
  --container-lg:   1024px;
  --container-xl:   1280px;
  --container-2xl:  1440px;
  --sidebar-width:  280px;
  --nav-height:     72px;
}

:root {
  /* ── Border radius ── */
  --radius-xs:   3px;
  --radius-sm:   6px;
  --radius-md:   10px;
  --radius-lg:   14px;
  --radius-xl:   18px;
  --radius-2xl:  24px;
  --radius-3xl:  32px;
  --radius-full: 9999px;

  /* ── Shadows · warm stone-tinted ── */
  --shadow-xs:  0 1px 2px rgba(23,22,15,0.05);
  --shadow-sm:  0 1px 3px rgba(23,22,15,0.06), 0 2px 8px rgba(23,22,15,0.04);
  --shadow-md:  0 2px 6px rgba(23,22,15,0.06), 0 6px 20px rgba(23,22,15,0.06);
  --shadow-lg:  0 4px 12px rgba(23,22,15,0.07), 0 16px 40px rgba(23,22,15,0.08);
  --shadow-xl:  0 8px 20px rgba(23,22,15,0.08), 0 28px 64px rgba(23,22,15,0.10);
  --shadow-2xl: 0 16px 40px rgba(23,22,15,0.10), 0 48px 96px rgba(23,22,15,0.14);

  /* ── Brand glow ── */
  --shadow-brand:  0 4px 20px rgba(68,71,224,0.28);
  --shadow-accent: 0 4px 20px rgba(245,158,11,0.32);

  /* ── Transitions ── */
  --duration-fast:   110ms;
  --duration-normal: 190ms;
  --duration-slow:   340ms;

  --ease-std:    cubic-bezier(0.4, 0, 0.2, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --ease-in:     cubic-bezier(0.4, 0, 1, 1);
  --ease-out:    cubic-bezier(0, 0, 0.2, 1);

  --transition-fast:   all var(--duration-fast)   var(--ease-std);
  --transition:        all var(--duration-normal)  var(--ease-std);
  --transition-slow:   all var(--duration-slow)    var(--ease-std);

  /* ── Blur ── */
  --blur-sm:   6px;
  --blur-md:   14px;
  --blur-lg:   32px;
  --blur-xl:   64px;

  /* ── Z-index ── */
  --z-base:    0;
  --z-raised:  10;
  --z-dropdown: 100;
  --z-sticky:  200;
  --z-overlay: 300;
  --z-modal:   400;
  --z-toast:   500;
}
