/* ═══════════════════════════════════════════════════════════════════════════
   DESIGN SYSTEM UTILITIES
   Layer 4: Curated utility classes (Tailwind v4 output + custom tc tokens).
   Loaded LAST so utilities win over components via source order.
   ═══════════════════════════════════════════════════════════════════════════ */
:root,
:host {
  --color-red-500: oklch(63.7% 0.237 25.331);
  --color-yellow-500: oklch(79.5% 0.184 86.047);
  --color-emerald-600: oklch(59.6% 0.145 163.225);
  --color-blue-300: oklch(80.9% 0.105 251.813);
  --color-blue-400: oklch(70.7% 0.165 254.624);
  --color-gray-300: oklch(87.2% 0.01 258.338);
  --color-gray-400: oklch(70.7% 0.022 261.325);
  --color-gray-500: oklch(55.1% 0.027 264.364);
  --color-black: #000;
  --color-white: #fff;
  --spacing: 0.25rem;
  --container-3xl: 48rem;
  --container-6xl: 72rem;
  --text-xs: 0.75rem;
  --text-xs--line-height: calc(1 / 0.75);
  --text-sm: 0.875rem;
  --text-sm--line-height: calc(1.25 / 0.875);
  --text-lg: 1.125rem;
  --text-lg--line-height: calc(1.75 / 1.125);
  --text-xl: 1.25rem;
  --text-xl--line-height: calc(1.75 / 1.25);
  --text-2xl: 1.5rem;
  --text-2xl--line-height: calc(2 / 1.5);
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --tracking-tight: -0.025em;
  --tracking-wider: 0.05em;
  --leading-tight: 1.25;
  --leading-relaxed: 1.625;
  --radius-md: 0.375rem;
  --radius-lg: 0.5rem;
  --radius-xl: 0.75rem;
  --radius-2xl: 1rem;
  --blur-sm: 8px;
  --blur-md: 12px;
  --default-transition-duration: 150ms;
  --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.pointer-events-auto {
  pointer-events: auto;
}
.pointer-events-none {
  pointer-events: none;
}
.absolute {
  position: absolute;
}
.fixed {
  position: fixed;
}
.relative {
  position: relative;
}
.inset-0 {
  inset: calc(var(--spacing) * 0);
}
.inset-x-0 {
  inset-inline: calc(var(--spacing) * 0);
}
.top-0 {
  top: calc(var(--spacing) * 0);
}
.top-1\.5 {
  top: calc(var(--spacing) * 1.5);
}
.top-1\/2 {
  top: calc(1 / 2 * 100%);
}
.top-8 {
  top: calc(var(--spacing) * 8);
}
.top-12 {
  top: calc(var(--spacing) * 12);
}
.right-0 {
  right: calc(var(--spacing) * 0);
}
.right-1\.5 {
  right: calc(var(--spacing) * 1.5);
}
.right-2\.5 {
  right: calc(var(--spacing) * 2.5);
}
.bottom-0 {
  bottom: calc(var(--spacing) * 0);
}
.left-0 {
  left: calc(var(--spacing) * 0);
}
.left-3 {
  left: calc(var(--spacing) * 3);
}
.z-10 {
  z-index: 10;
}
.z-40 {
  z-index: 40;
}
.z-50 {
  z-index: 50;
}
.z-\[60\] {
  z-index: 60;
}
.z-\[100\] {
  z-index: 100;
}
.z-\[101\] {
  z-index: 101;
}
.z-\[110\] {
  z-index: 110;
}
.mx-auto {
  margin-inline: auto;
}
.mt-0 {
  margin-top: calc(var(--spacing) * 0);
}
.mt-0\.5 {
  margin-top: calc(var(--spacing) * 0.5);
}
.mt-1 {
  margin-top: calc(var(--spacing) * 1);
}
.mt-1\.5 {
  margin-top: calc(var(--spacing) * 1.5);
}
.mt-2 {
  margin-top: calc(var(--spacing) * 2);
}
.mt-3 {
  margin-top: calc(var(--spacing) * 3);
}
.mt-4 {
  margin-top: calc(var(--spacing) * 4);
}
.mb-0\.5 {
  margin-bottom: calc(var(--spacing) * 0.5);
}
.mb-1 {
  margin-bottom: calc(var(--spacing) * 1);
}
.mb-1\.5 {
  margin-bottom: calc(var(--spacing) * 1.5);
}
.mb-2 {
  margin-bottom: calc(var(--spacing) * 2);
}
.mb-3 {
  margin-bottom: calc(var(--spacing) * 3);
}
.mb-4 {
  margin-bottom: calc(var(--spacing) * 4);
}
.mb-6 {
  margin-bottom: calc(var(--spacing) * 6);
}
.ml-1 {
  margin-left: calc(var(--spacing) * 1);
}
.line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.block {
  display: block;
}
.flex {
  display: flex;
}
.grid {
  display: grid;
}
.hidden {
  display: none;
}
.inline-block {
  display: inline-block;
}
.h-2 {
  height: calc(var(--spacing) * 2);
}
.h-3 {
  height: calc(var(--spacing) * 3);
}
.h-3\.5 {
  height: calc(var(--spacing) * 3.5);
}
.h-4 {
  height: calc(var(--spacing) * 4);
}
.h-5 {
  height: calc(var(--spacing) * 5);
}
.h-6 {
  height: calc(var(--spacing) * 6);
}
.h-8 {
  height: calc(var(--spacing) * 8);
}
.h-9 {
  height: calc(var(--spacing) * 9);
}
.h-10 {
  height: calc(var(--spacing) * 10);
}
.h-12 {
  height: calc(var(--spacing) * 12);
}
.h-14 {
  height: calc(var(--spacing) * 14);
}
.h-16 {
  height: calc(var(--spacing) * 16);
}
.h-32 {
  height: calc(var(--spacing) * 32);
}
.h-48 {
  height: calc(var(--spacing) * 48);
}
.h-full {
  height: 100%;
}
.max-h-\[85vh\] {
  max-height: 85vh;
}
.max-h-\[300px\] {
  max-height: 300px;
}
.min-h-screen {
  min-height: 100vh;
}
.w-2 {
  width: calc(var(--spacing) * 2);
}
.w-3 {
  width: calc(var(--spacing) * 3);
}
.w-3\.5 {
  width: calc(var(--spacing) * 3.5);
}
.w-4 {
  width: calc(var(--spacing) * 4);
}
.w-5 {
  width: calc(var(--spacing) * 5);
}
.w-6 {
  width: calc(var(--spacing) * 6);
}
.w-8 {
  width: calc(var(--spacing) * 8);
}
.w-9 {
  width: calc(var(--spacing) * 9);
}
.w-10 {
  width: calc(var(--spacing) * 10);
}
.w-12 {
  width: calc(var(--spacing) * 12);
}
.w-14 {
  width: calc(var(--spacing) * 14);
}
.w-16 {
  width: calc(var(--spacing) * 16);
}
.w-24 {
  width: calc(var(--spacing) * 24);
}
.w-72 {
  width: calc(var(--spacing) * 72);
}
.w-80 {
  width: calc(var(--spacing) * 80);
}
.w-full {
  width: 100%;
}
.w-px {
  width: 1px;
}
.max-w-3xl {
  max-width: var(--container-3xl);
}
.max-w-6xl {
  max-width: var(--container-6xl);
}
.min-w-0 {
  min-width: calc(var(--spacing) * 0);
}
.flex-1 {
  flex: 1;
}
.shrink-0 {
  flex-shrink: 0;
}
.origin-top-right {
  transform-origin: 100% 0;
}
.-translate-y-1\/2 {
  --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
  translate: var(--tw-translate-x) var(--tw-translate-y);
}
.translate-y-full {
  --tw-translate-y: 100%;
  translate: var(--tw-translate-x) var(--tw-translate-y);
}
.scale-95 {
  --tw-scale-x: 95%;
  --tw-scale-y: 95%;
  --tw-scale-z: 95%;
  scale: var(--tw-scale-x) var(--tw-scale-y);
}
.transform {
  transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
}
.cursor-default {
  cursor: default;
}
.cursor-pointer {
  cursor: pointer;
}
.appearance-none {
  -webkit-appearance: none;
  appearance: none;
}
.grid-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.grid-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.flex-col {
  flex-direction: column;
}
.flex-wrap {
  flex-wrap: wrap;
}
.items-center {
  align-items: center;
}
.items-end {
  align-items: flex-end;
}
.items-start {
  align-items: flex-start;
}
.items-stretch {
  align-items: stretch;
}
.justify-around {
  justify-content: space-around;
}
.justify-between {
  justify-content: space-between;
}
.justify-center {
  justify-content: center;
}
.gap-1 {
  gap: calc(var(--spacing) * 1);
}
.gap-1\.5 {
  gap: calc(var(--spacing) * 1.5);
}
.gap-2 {
  gap: calc(var(--spacing) * 2);
}
.gap-3 {
  gap: calc(var(--spacing) * 3);
}
.gap-4 {
  gap: calc(var(--spacing) * 4);
}
:where(.space-y-1 > :not(:last-child)) {
  --tw-space-y-reverse: 0;
  margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
  margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
}
:where(.space-y-2 > :not(:last-child)) {
  --tw-space-y-reverse: 0;
  margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
  margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
}
:where(.space-y-3 > :not(:last-child)) {
  --tw-space-y-reverse: 0;
  margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
  margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
}
:where(.space-y-4 > :not(:last-child)) {
  --tw-space-y-reverse: 0;
  margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
  margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
}
:where(.space-y-5 > :not(:last-child)) {
  --tw-space-y-reverse: 0;
  margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));
  margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)));
}
:where(.space-y-6 > :not(:last-child)) {
  --tw-space-y-reverse: 0;
  margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
  margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
}
.gap-x-3 {
  column-gap: calc(var(--spacing) * 3);
}
.gap-y-1\.5 {
  row-gap: calc(var(--spacing) * 1.5);
}
.self-center {
  align-self: center;
}
.self-start {
  align-self: flex-start;
}
.truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.overflow-hidden {
  overflow: hidden;
}
.overflow-x-auto {
  overflow-x: auto;
}
.overflow-y-auto {
  overflow-y: auto;
}
.rounded {
  border-radius: 0.25rem;
}
.rounded-full {
  border-radius: calc(infinity * 1px);
}
.rounded-lg {
  border-radius: var(--radius-lg);
}
.rounded-md {
  border-radius: var(--radius-md);
}
.rounded-xl {
  border-radius: var(--radius-xl);
}
.rounded-t-2xl {
  border-top-left-radius: var(--radius-2xl);
  border-top-right-radius: var(--radius-2xl);
}
.rounded-t-none {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.rounded-r-lg {
  border-top-right-radius: var(--radius-lg);
  border-bottom-right-radius: var(--radius-lg);
}
.rounded-b-none {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.border {
  border-style: var(--tw-border-style);
  border-width: 1px;
}
.border-t {
  border-top-style: var(--tw-border-style);
  border-top-width: 1px;
}
.border-t-\[3px\] {
  border-top-style: var(--tw-border-style);
  border-top-width: 3px;
}
.border-b {
  border-bottom-style: var(--tw-border-style);
  border-bottom-width: 1px;
}
.border-b-0 {
  border-bottom-style: var(--tw-border-style);
  border-bottom-width: 0px;
}
.border-l-\[3px\] {
  border-left-style: var(--tw-border-style);
  border-left-width: 3px;
}
.border-dashed {
  --tw-border-style: dashed;
  border-style: dashed;
}
.border-black\/10 {
  border-color: color-mix(in srgb, #000 10%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .border-black\/10 {
    border-color: color-mix(in oklab, var(--color-black) 10%, transparent);
  }
}
.border-black\/20 {
  border-color: color-mix(in srgb, #000 20%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .border-black\/20 {
    border-color: color-mix(in oklab, var(--color-black) 20%, transparent);
  }
}
.border-red-500\/20 {
  border-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 20%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .border-red-500\/20 {
    border-color: color-mix(in oklab, var(--color-red-500) 20%, transparent);
  }
}
.border-transparent {
  border-color: transparent;
}
.border-white {
  border-color: var(--color-white);
}
.border-white\/5 {
  border-color: color-mix(in srgb, #fff 5%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .border-white\/5 {
    border-color: color-mix(in oklab, var(--color-white) 5%, transparent);
  }
}
.border-white\/10 {
  border-color: color-mix(in srgb, #fff 10%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .border-white\/10 {
    border-color: color-mix(in oklab, var(--color-white) 10%, transparent);
  }
}
.border-yellow-500\/20 {
  border-color: color-mix(in srgb, oklch(79.5% 0.184 86.047) 20%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .border-yellow-500\/20 {
    border-color: color-mix(in oklab, var(--color-yellow-500) 20%, transparent);
  }
}
.border-yellow-500\/30 {
  border-color: color-mix(in srgb, oklch(79.5% 0.184 86.047) 30%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .border-yellow-500\/30 {
    border-color: color-mix(in oklab, var(--color-yellow-500) 30%, transparent);
  }
}
.border-yellow-500\/40 {
  border-color: color-mix(in srgb, oklch(79.5% 0.184 86.047) 40%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .border-yellow-500\/40 {
    border-color: color-mix(in oklab, var(--color-yellow-500) 40%, transparent);
  }
}
.bg-black\/5 {
  background-color: color-mix(in srgb, #000 5%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .bg-black\/5 {
    background-color: color-mix(in oklab, var(--color-black) 5%, transparent);
  }
}
.bg-black\/10 {
  background-color: color-mix(in srgb, #000 10%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .bg-black\/10 {
    background-color: color-mix(in oklab, var(--color-black) 10%, transparent);
  }
}
.bg-black\/40 {
  background-color: color-mix(in srgb, #000 40%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .bg-black\/40 {
    background-color: color-mix(in oklab, var(--color-black) 40%, transparent);
  }
}
.bg-black\/50 {
  background-color: color-mix(in srgb, #000 50%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .bg-black\/50 {
    background-color: color-mix(in oklab, var(--color-black) 50%, transparent);
  }
}
.bg-black\/60 {
  background-color: color-mix(in srgb, #000 60%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .bg-black\/60 {
    background-color: color-mix(in oklab, var(--color-black) 60%, transparent);
  }
}
.bg-black\/90 {
  background-color: color-mix(in srgb, #000 90%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .bg-black\/90 {
    background-color: color-mix(in oklab, var(--color-black) 90%, transparent);
  }
}
.bg-black\/\[0\.02\] {
  background-color: color-mix(in srgb, #000 2%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .bg-black\/\[0\.02\] {
    background-color: color-mix(in oklab, var(--color-black) 2%, transparent);
  }
}
.bg-red-500 {
  background-color: var(--color-red-500);
}
.bg-red-500\/10 {
  background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 10%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .bg-red-500\/10 {
    background-color: color-mix(in oklab, var(--color-red-500) 10%, transparent);
  }
}
.bg-transparent {
  background-color: transparent;
}
.bg-white {
  background-color: var(--color-white);
}
.bg-white\/5 {
  background-color: color-mix(in srgb, #fff 5%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .bg-white\/5 {
    background-color: color-mix(in oklab, var(--color-white) 5%, transparent);
  }
}
.bg-white\/10 {
  background-color: color-mix(in srgb, #fff 10%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .bg-white\/10 {
    background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
  }
}
.bg-white\/20 {
  background-color: color-mix(in srgb, #fff 20%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .bg-white\/20 {
    background-color: color-mix(in oklab, var(--color-white) 20%, transparent);
  }
}
.bg-yellow-500\/10 {
  background-color: color-mix(in srgb, oklch(79.5% 0.184 86.047) 10%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .bg-yellow-500\/10 {
    background-color: color-mix(in oklab, var(--color-yellow-500) 10%, transparent);
  }
}
.bg-yellow-500\/20 {
  background-color: color-mix(in srgb, oklch(79.5% 0.184 86.047) 20%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .bg-yellow-500\/20 {
    background-color: color-mix(in oklab, var(--color-yellow-500) 20%, transparent);
  }
}
.bg-gradient-to-r {
  --tw-gradient-position: to right in oklab;
  background-image: linear-gradient(var(--tw-gradient-stops));
}
.bg-gradient-to-t {
  --tw-gradient-position: to top in oklab;
  background-image: linear-gradient(var(--tw-gradient-stops));
}
.from-black\/5 {
  --tw-gradient-from: color-mix(in srgb, #000 5%, transparent);
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
@supports (color: color-mix(in lab, red, red)) {
  .from-black\/5 {
    --tw-gradient-from: color-mix(in oklab, var(--color-black) 5%, transparent);
  }
}
.from-black\/80 {
  --tw-gradient-from: color-mix(in srgb, #000 80%, transparent);
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
@supports (color: color-mix(in lab, red, red)) {
  .from-black\/80 {
    --tw-gradient-from: color-mix(in oklab, var(--color-black) 80%, transparent);
  }
}
.to-transparent {
  --tw-gradient-to: transparent;
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
.object-cover {
  object-fit: cover;
}
.p-1 {
  padding: calc(var(--spacing) * 1);
}
.p-1\.5 {
  padding: calc(var(--spacing) * 1.5);
}
.p-2 {
  padding: calc(var(--spacing) * 2);
}
.p-2\.5 {
  padding: calc(var(--spacing) * 2.5);
}
.p-3 {
  padding: calc(var(--spacing) * 3);
}
.p-4 {
  padding: calc(var(--spacing) * 4);
}
.p-5 {
  padding: calc(var(--spacing) * 5);
}
.px-1 {
  padding-inline: calc(var(--spacing) * 1);
}
.px-2 {
  padding-inline: calc(var(--spacing) * 2);
}
.px-3 {
  padding-inline: calc(var(--spacing) * 3);
}
.px-4 {
  padding-inline: calc(var(--spacing) * 4);
}
.py-0\.5 {
  padding-block: calc(var(--spacing) * 0.5);
}
.py-1 {
  padding-block: calc(var(--spacing) * 1);
}
.py-1\.5 {
  padding-block: calc(var(--spacing) * 1.5);
}
.py-2 {
  padding-block: calc(var(--spacing) * 2);
}
.py-2\.5 {
  padding-block: calc(var(--spacing) * 2.5);
}
.py-3 {
  padding-block: calc(var(--spacing) * 3);
}
.py-4 {
  padding-block: calc(var(--spacing) * 4);
}
.pt-4 {
  padding-top: calc(var(--spacing) * 4);
}
.pt-24 {
  padding-top: calc(var(--spacing) * 24);
}
.pr-3 {
  padding-right: calc(var(--spacing) * 3);
}
.pr-8 {
  padding-right: calc(var(--spacing) * 8);
}
.pb-3 {
  padding-bottom: calc(var(--spacing) * 3);
}
.pb-\[calc\(1rem\+env\(safe-area-inset-bottom\)\)\] {
  padding-bottom: calc(1rem + env(safe-area-inset-bottom));
}
.pb-\[env\(safe-area-inset-bottom\,0px\)\] {
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.pl-4 {
  padding-left: calc(var(--spacing) * 4);
}
.pl-9 {
  padding-left: calc(var(--spacing) * 9);
}
.text-center {
  text-align: center;
}
.text-2xl {
  font-size: var(--text-2xl);
  line-height: var(--tw-leading, var(--text-2xl--line-height));
}
.text-lg {
  font-size: var(--text-lg);
  line-height: var(--tw-leading, var(--text-lg--line-height));
}
.text-sm {
  font-size: var(--text-sm);
  line-height: var(--tw-leading, var(--text-sm--line-height));
}
.text-xl {
  font-size: var(--text-xl);
  line-height: var(--tw-leading, var(--text-xl--line-height));
}
.text-xs {
  font-size: var(--text-xs);
  line-height: var(--tw-leading, var(--text-xs--line-height));
}
.text-\[9px\] {
  font-size: 9px;
}
.text-\[10px\] {
  font-size: 10px;
}
.text-\[11px\] {
  font-size: 11px;
}
.text-\[13px\] {
  font-size: 13px;
}
.text-\[15px\] {
  font-size: 15px;
}
.leading-none {
  --tw-leading: 1;
  line-height: 1;
}
.leading-relaxed {
  --tw-leading: var(--leading-relaxed);
  line-height: var(--leading-relaxed);
}
.leading-tight {
  --tw-leading: var(--leading-tight);
  line-height: var(--leading-tight);
}
.font-bold {
  --tw-font-weight: var(--font-weight-bold);
  font-weight: var(--font-weight-bold);
}
.font-medium {
  --tw-font-weight: var(--font-weight-medium);
  font-weight: var(--font-weight-medium);
}
.font-semibold {
  --tw-font-weight: var(--font-weight-semibold);
  font-weight: var(--font-weight-semibold);
}
.tracking-tight {
  --tw-tracking: var(--tracking-tight);
  letter-spacing: var(--tracking-tight);
}
.tracking-wider {
  --tw-tracking: var(--tracking-wider);
  letter-spacing: var(--tracking-wider);
}
.whitespace-nowrap {
  white-space: nowrap;
}
.text-gray-300 {
  color: var(--color-gray-300);
}
.text-gray-400 {
  color: var(--color-gray-400);
}
.text-gray-500 {
  color: var(--color-gray-500);
}
.text-red-500 {
  color: var(--color-red-500);
}
.text-white {
  color: var(--color-white);
}
.text-white\/70 {
  color: color-mix(in srgb, #fff 70%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .text-white\/70 {
    color: color-mix(in oklab, var(--color-white) 70%, transparent);
  }
}
.text-yellow-500 {
  color: var(--color-yellow-500);
}
.uppercase {
  text-transform: uppercase;
}
.antialiased {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.placeholder-gray-500::placeholder {
  color: var(--color-gray-500);
}
.opacity-0 {
  opacity: 0%;
}
.opacity-50 {
  opacity: 50%;
}
.opacity-80 {
  opacity: 80%;
}
.shadow-2xl {
  --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));
  box-shadow:
    var(--tw-inset-shadow),
    var(--tw-inset-ring-shadow),
    var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow),
    var(--tw-shadow);
}
.shadow-sm {
  --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
  box-shadow:
    var(--tw-inset-shadow),
    var(--tw-inset-ring-shadow),
    var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow),
    var(--tw-shadow);
}
.backdrop-blur-md {
  --tw-backdrop-blur: blur(var(--blur-md));
  -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
  backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
}
.backdrop-blur-sm {
  --tw-backdrop-blur: blur(var(--blur-sm));
  -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
  backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);
}
.transition {
  transition-property:
    color,
    background-color,
    border-color,
    outline-color,
    text-decoration-color,
    fill,
    stroke,
    --tw-gradient-from,
    --tw-gradient-via,
    --tw-gradient-to,
    opacity,
    box-shadow,
    transform,
    translate,
    scale,
    rotate,
    filter,
    -webkit-backdrop-filter,
    backdrop-filter,
    display,
    content-visibility,
    overlay,
    pointer-events;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}
.transition-all {
  transition-property: all;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}
.transition-colors {
  transition-property:
    color,
    background-color,
    border-color,
    outline-color,
    text-decoration-color,
    fill,
    stroke,
    --tw-gradient-from,
    --tw-gradient-via,
    --tw-gradient-to;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}
.transition-opacity {
  transition-property: opacity;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}
.transition-transform {
  transition-property:
    transform,
    translate,
    scale,
    rotate;
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
  transition-duration: var(--tw-duration, var(--default-transition-duration));
}
.duration-200 {
  --tw-duration: 200ms;
  transition-duration: 200ms;
}
.duration-300 {
  --tw-duration: 300ms;
  transition-duration: 300ms;
}
.outline-none {
  --tw-outline-style: none;
  outline-style: none;
}
@media (hover: hover) {
  .group-hover\:scale-100:is(:where(.group):hover *) {
    --tw-scale-x: 100%;
    --tw-scale-y: 100%;
    --tw-scale-z: 100%;
    scale: var(--tw-scale-x) var(--tw-scale-y);
  }
}
@media (hover: hover) {
  .group-hover\:opacity-100:is(:where(.group):hover *) {
    opacity: 100%;
  }
}
@media (hover: hover) {
  .hover\:bg-black\/5:hover {
    background-color: color-mix(in srgb, #000 5%, transparent);
  }
  @supports (color: color-mix(in lab, red, red)) {
    .hover\:bg-black\/5:hover {
      background-color: color-mix(in oklab, var(--color-black) 5%, transparent);
    }
  }
}
@media (hover: hover) {
  .hover\:bg-black\/10:hover {
    background-color: color-mix(in srgb, #000 10%, transparent);
  }
  @supports (color: color-mix(in lab, red, red)) {
    .hover\:bg-black\/10:hover {
      background-color: color-mix(in oklab, var(--color-black) 10%, transparent);
    }
  }
}
@media (hover: hover) {
  .hover\:bg-black\/20:hover {
    background-color: color-mix(in srgb, #000 20%, transparent);
  }
  @supports (color: color-mix(in lab, red, red)) {
    .hover\:bg-black\/20:hover {
      background-color: color-mix(in oklab, var(--color-black) 20%, transparent);
    }
  }
}
@media (hover: hover) {
  .hover\:bg-emerald-600:hover {
    background-color: var(--color-emerald-600);
  }
}
@media (hover: hover) {
  .hover\:bg-red-500\/5:hover {
    background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 5%, transparent);
  }
  @supports (color: color-mix(in lab, red, red)) {
    .hover\:bg-red-500\/5:hover {
      background-color: color-mix(in oklab, var(--color-red-500) 5%, transparent);
    }
  }
}
@media (hover: hover) {
  .hover\:bg-red-500\/20:hover {
    background-color: color-mix(in srgb, oklch(63.7% 0.237 25.331) 20%, transparent);
  }
  @supports (color: color-mix(in lab, red, red)) {
    .hover\:bg-red-500\/20:hover {
      background-color: color-mix(in oklab, var(--color-red-500) 20%, transparent);
    }
  }
}
@media (hover: hover) {
  .hover\:bg-white\/20:hover {
    background-color: color-mix(in srgb, #fff 20%, transparent);
  }
  @supports (color: color-mix(in lab, red, red)) {
    .hover\:bg-white\/20:hover {
      background-color: color-mix(in oklab, var(--color-white) 20%, transparent);
    }
  }
}
@media (hover: hover) {
  .hover\:text-blue-300:hover {
    color: var(--color-blue-300);
  }
}
@media (hover: hover) {
  .hover\:text-blue-400:hover {
    color: var(--color-blue-400);
  }
}
@media (hover: hover) {
  .hover\:opacity-80:hover {
    opacity: 80%;
  }
}
@media (hover: hover) {
  .hover\:opacity-90:hover {
    opacity: 90%;
  }
}
.focus\:ring-1:focus {
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
  box-shadow:
    var(--tw-inset-shadow),
    var(--tw-inset-ring-shadow),
    var(--tw-ring-offset-shadow),
    var(--tw-ring-shadow),
    var(--tw-shadow);
}
.active\:scale-\[0\.99\]:active {
  scale: 0.99;
}
@media (min-width: 40rem) {
  .sm\:inset-0 {
    inset: calc(var(--spacing) * 0);
  }
}
@media (min-width: 40rem) {
  .sm\:w-\[400px\] {
    width: 400px;
  }
}
@media (min-width: 40rem) {
  .sm\:translate-y-4 {
    --tw-translate-y: calc(var(--spacing) * 4);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }
}
@media (min-width: 40rem) {
  .sm\:scale-95 {
    --tw-scale-x: 95%;
    --tw-scale-y: 95%;
    --tw-scale-z: 95%;
    scale: var(--tw-scale-x) var(--tw-scale-y);
  }
}
@media (min-width: 40rem) {
  .sm\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 40rem) {
  .sm\:items-center {
    align-items: center;
  }
}
@media (min-width: 40rem) {
  .sm\:rounded-2xl {
    border-radius: var(--radius-2xl);
  }
}
@media (min-width: 40rem) {
  .sm\:rounded-b-2xl {
    border-bottom-right-radius: var(--radius-2xl);
    border-bottom-left-radius: var(--radius-2xl);
  }
}
@media (min-width: 40rem) {
  .sm\:border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }
}
@media (min-width: 40rem) {
  .sm\:pb-4 {
    padding-bottom: calc(var(--spacing) * 4);
  }
}
@media (min-width: 48rem) {
  .md\:flex {
    display: flex;
  }
}
@media (min-width: 48rem) {
  .md\:grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (min-width: 48rem) {
  .md\:justify-start {
    justify-content: flex-start;
  }
}
@media (min-width: 48rem) {
  .md\:border-t-0 {
    border-top-style: var(--tw-border-style);
    border-top-width: 0px;
  }
}
@media (min-width: 48rem) {
  .md\:border-l-\[3px\] {
    border-left-style: var(--tw-border-style);
    border-left-width: 3px;
  }
}
@media (min-width: 48rem) {
  .md\:p-6 {
    padding: calc(var(--spacing) * 6);
  }
}
@media (min-width: 48rem) {
  .md\:p-8 {
    padding: calc(var(--spacing) * 8);
  }
}
@media (min-width: 48rem) {
  .md\:py-5 {
    padding-block: calc(var(--spacing) * 5);
  }
}
@media (min-width: 48rem) {
  .md\:pb-0 {
    padding-bottom: calc(var(--spacing) * 0);
  }
}
@media (min-width: 64rem) {
  .lg\:grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.dark\:block:is(.dark *) {
  display: block;
}
.dark\:hidden:is(.dark *) {
  display: none;
}
.dark\:border-\[\#111\]:is(.dark *) {
  border-color: #111;
}
.dark\:border-transparent:is(.dark *) {
  border-color: transparent;
}
.dark\:border-white\/10:is(.dark *) {
  border-color: color-mix(in srgb, #fff 10%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .dark\:border-white\/10:is(.dark *) {
    border-color: color-mix(in oklab, var(--color-white) 10%, transparent);
  }
}
.dark\:border-white\/20:is(.dark *) {
  border-color: color-mix(in srgb, #fff 20%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .dark\:border-white\/20:is(.dark *) {
    border-color: color-mix(in oklab, var(--color-white) 20%, transparent);
  }
}
.dark\:bg-\[\#111\]:is(.dark *) {
  background-color: #111;
}
.dark\:bg-black:is(.dark *) {
  background-color: var(--color-black);
}
.dark\:bg-black\/40:is(.dark *) {
  background-color: color-mix(in srgb, #000 40%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .dark\:bg-black\/40:is(.dark *) {
    background-color: color-mix(in oklab, var(--color-black) 40%, transparent);
  }
}
.dark\:bg-white\/5:is(.dark *) {
  background-color: color-mix(in srgb, #fff 5%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .dark\:bg-white\/5:is(.dark *) {
    background-color: color-mix(in oklab, var(--color-white) 5%, transparent);
  }
}
.dark\:bg-white\/10:is(.dark *) {
  background-color: color-mix(in srgb, #fff 10%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .dark\:bg-white\/10:is(.dark *) {
    background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
  }
}
.dark\:bg-white\/\[0\.02\]:is(.dark *) {
  background-color: color-mix(in srgb, #fff 2%, transparent);
}
@supports (color: color-mix(in lab, red, red)) {
  .dark\:bg-white\/\[0\.02\]:is(.dark *) {
    background-color: color-mix(in oklab, var(--color-white) 2%, transparent);
  }
}
.dark\:from-white\/10:is(.dark *) {
  --tw-gradient-from: color-mix(in srgb, #fff 10%, transparent);
  --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
@supports (color: color-mix(in lab, red, red)) {
  .dark\:from-white\/10:is(.dark *) {
    --tw-gradient-from: color-mix(in oklab, var(--color-white) 10%, transparent);
  }
}
@media (hover: hover) {
  .dark\:hover\:bg-white\/5:is(.dark *):hover {
    background-color: color-mix(in srgb, #fff 5%, transparent);
  }
  @supports (color: color-mix(in lab, red, red)) {
    .dark\:hover\:bg-white\/5:is(.dark *):hover {
      background-color: color-mix(in oklab, var(--color-white) 5%, transparent);
    }
  }
}
@media (hover: hover) {
  .dark\:hover\:bg-white\/10:is(.dark *):hover {
    background-color: color-mix(in srgb, #fff 10%, transparent);
  }
  @supports (color: color-mix(in lab, red, red)) {
    .dark\:hover\:bg-white\/10:is(.dark *):hover {
      background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
    }
  }
}
@media (hover: hover) {
  .dark\:hover\:bg-white\/20:is(.dark *):hover {
    background-color: color-mix(in srgb, #fff 20%, transparent);
  }
  @supports (color: color-mix(in lab, red, red)) {
    .dark\:hover\:bg-white\/20:is(.dark *):hover {
      background-color: color-mix(in oklab, var(--color-white) 20%, transparent);
    }
  }
}
@property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }
@property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }
@property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }
@property --tw-scale-x { syntax: "*"; inherits: false; initial-value: 1; }
@property --tw-scale-y { syntax: "*"; inherits: false; initial-value: 1; }
@property --tw-scale-z { syntax: "*"; inherits: false; initial-value: 1; }
@property --tw-rotate-x { syntax: "*"; inherits: false; }
@property --tw-rotate-y { syntax: "*"; inherits: false; }
@property --tw-rotate-z { syntax: "*"; inherits: false; }
@property --tw-skew-x { syntax: "*"; inherits: false; }
@property --tw-skew-y { syntax: "*"; inherits: false; }
@property --tw-space-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }
@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }
@property --tw-gradient-position { syntax: "*"; inherits: false; }
@property --tw-gradient-from { syntax: "<color>"; inherits: false; initial-value: #0000; }
@property --tw-gradient-via { syntax: "<color>"; inherits: false; initial-value: #0000; }
@property --tw-gradient-to { syntax: "<color>"; inherits: false; initial-value: #0000; }
@property --tw-gradient-stops { syntax: "*"; inherits: false; }
@property --tw-gradient-via-stops { syntax: "*"; inherits: false; }
@property --tw-gradient-from-position { syntax: "<length-percentage>"; inherits: false; initial-value: 0%; }
@property --tw-gradient-via-position { syntax: "<length-percentage>"; inherits: false; initial-value: 50%; }
@property --tw-gradient-to-position { syntax: "<length-percentage>"; inherits: false; initial-value: 100%; }
@property --tw-leading { syntax: "*"; inherits: false; }
@property --tw-font-weight { syntax: "*"; inherits: false; }
@property --tw-tracking { syntax: "*"; inherits: false; }
@property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }
@property --tw-shadow-color { syntax: "*"; inherits: false; }
@property --tw-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }
@property --tw-inset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }
@property --tw-inset-shadow-color { syntax: "*"; inherits: false; }
@property --tw-inset-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }
@property --tw-ring-color { syntax: "*"; inherits: false; }
@property --tw-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }
@property --tw-inset-ring-color { syntax: "*"; inherits: false; }
@property --tw-inset-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }
@property --tw-ring-inset { syntax: "*"; inherits: false; }
@property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0px; }
@property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }
@property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }
@property --tw-backdrop-blur { syntax: "*"; inherits: false; }
@property --tw-backdrop-brightness { syntax: "*"; inherits: false; }
@property --tw-backdrop-contrast { syntax: "*"; inherits: false; }
@property --tw-backdrop-grayscale { syntax: "*"; inherits: false; }
@property --tw-backdrop-hue-rotate { syntax: "*"; inherits: false; }
@property --tw-backdrop-invert { syntax: "*"; inherits: false; }
@property --tw-backdrop-opacity { syntax: "*"; inherits: false; }
@property --tw-backdrop-saturate { syntax: "*"; inherits: false; }
@property --tw-backdrop-sepia { syntax: "*"; inherits: false; }
@property --tw-duration { syntax: "*"; inherits: false; }
/* Tailwind v4 custom property fallback for browsers without @property support */
@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
  *,
  ::before,
  ::after,
  ::backdrop {
    --tw-translate-x: 0;
    --tw-translate-y: 0;
    --tw-translate-z: 0;
    --tw-scale-x: 1;
    --tw-scale-y: 1;
    --tw-scale-z: 1;
    --tw-rotate-x: initial;
    --tw-rotate-y: initial;
    --tw-rotate-z: initial;
    --tw-skew-x: initial;
    --tw-skew-y: initial;
    --tw-space-y-reverse: 0;
    --tw-border-style: solid;
    --tw-gradient-position: initial;
    --tw-gradient-from: #0000;
    --tw-gradient-via: #0000;
    --tw-gradient-to: #0000;
    --tw-gradient-stops: initial;
    --tw-gradient-via-stops: initial;
    --tw-gradient-from-position: 0%;
    --tw-gradient-via-position: 50%;
    --tw-gradient-to-position: 100%;
    --tw-leading: initial;
    --tw-font-weight: initial;
    --tw-tracking: initial;
    --tw-shadow: 0 0 #0000;
    --tw-shadow-color: initial;
    --tw-shadow-alpha: 100%;
    --tw-inset-shadow: 0 0 #0000;
    --tw-inset-shadow-color: initial;
    --tw-inset-shadow-alpha: 100%;
    --tw-ring-color: initial;
    --tw-ring-shadow: 0 0 #0000;
    --tw-inset-ring-color: initial;
    --tw-inset-ring-shadow: 0 0 #0000;
    --tw-ring-inset: initial;
    --tw-ring-offset-width: 0px;
    --tw-ring-offset-color: #fff;
    --tw-ring-offset-shadow: 0 0 #0000;
    --tw-backdrop-blur: initial;
    --tw-backdrop-brightness: initial;
    --tw-backdrop-contrast: initial;
    --tw-backdrop-grayscale: initial;
    --tw-backdrop-hue-rotate: initial;
    --tw-backdrop-invert: initial;
    --tw-backdrop-opacity: initial;
    --tw-backdrop-saturate: initial;
    --tw-backdrop-sepia: initial;
    --tw-duration: initial;
  }
}
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */

/* ═══════════════════════════════════════════════════════════════════════════
   CUSTOM UTILITIES
   Token-mapped color utilities + classes not generated by Tailwind v4.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ---------------------------------------------------------------------------
   Pseudo-element utilities (toggle switch)
   --------------------------------------------------------------------------- */
.after\:absolute::after{content:var(--tw-content);position:absolute}
.after\:left-1::after{content:var(--tw-content);left:0.25rem}
.after\:top-1::after{content:var(--tw-content);top:0.25rem}
.after\:h-4::after{content:var(--tw-content);height:1rem}
.after\:w-4::after{content:var(--tw-content);width:1rem}
.after\:rounded-full::after{content:var(--tw-content);border-radius:9999px}
.after\:bg-white::after{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}
.after\:transition-transform::after{content:var(--tw-content);transition-property:transform;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}
.after\:content-\[\'\'\]::after{--tw-content:'';content:var(--tw-content)}

/* ---------------------------------------------------------------------------
   TC token-mapped color utilities
   --------------------------------------------------------------------------- */
/* Text */
.text-tc-text { color: var(--text); }
.text-tc-text\/70 { color: color-mix(in srgb, var(--text) 70%, transparent); }
.text-tc-muted { color: var(--muted); }
.text-tc-blue { color: #60a5fa; }
.text-tc-green { color: #10b981; }
.text-tc-panel { color: var(--panel); }
.text-yellow-600 { color: rgb(202 138 4); }
.text-red-400 { color: #f87171; }

/* Background */
.bg-tc-panel { background-color: var(--panel); }
.bg-tc-border { background-color: var(--border); }
.bg-tc-text { background-color: var(--text); }
.bg-tc-blue { background-color: #60a5fa; }
.bg-tc-blue\/10 { background-color: rgb(96 165 250 / 0.1); }
.bg-tc-blue\/20 { background-color: rgb(96 165 250 / 0.2); }
.bg-tc-green { background-color: #10b981; }
.bg-tc-green\/10 { background-color: rgb(16 185 129 / 0.1); }
.bg-tc-green\/20 { background-color: rgb(16 185 129 / 0.2); }
.bg-yellow-500\/10 { background-color: rgb(234 179 8 / 0.1); }
.bg-black\/95 { background-color: rgb(0 0 0 / 0.95); }

/* Border */
.border-tc-border { border-color: var(--border); }
.border-tc-blue { border-color: #60a5fa; }
.border-tc-blue\/20 { border-color: rgb(96 165 250 / 0.2); }
.border-tc-blue\/30 { border-color: rgb(96 165 250 / 0.3); }
.border-tc-green { border-color: #10b981; }
.border-tc-green\/20 { border-color: rgb(16 185 129 / 0.2); }
.border-tc-green\/30 { border-color: rgb(16 185 129 / 0.3); }
.border-yellow-500 { border-color: rgb(234 179 8); }
.border-red-500 { border-color: rgb(239 68 68); }
.border-none { border-style: none; }

/* Gradient from */
.from-tc-blue\/10 { --tw-gradient-from: rgb(96 165 250 / 0.1); }
.from-tc-green\/10 { --tw-gradient-from: rgb(16 185 129 / 0.1); }
.from-yellow-500\/10 { --tw-gradient-from: rgb(234 179 8 / 0.1); }
.from-red-500\/10 { --tw-gradient-from: rgb(239 68 68 / 0.1); }

/* ---------------------------------------------------------------------------
   Hover/focus/active state utilities (tc tokens + extras)
   --------------------------------------------------------------------------- */
.hover\:bg-tc-blue:hover { background-color: #60a5fa; }
.hover\:text-tc-text:hover { color: var(--text); }
.hover\:underline:hover { text-decoration: underline; }
@media (hover: hover) {
  .hover\:scale-105:hover { transform: scale(1.05); }
  .hover\:scale-\[1\.02\]:hover { transform: scale(1.02); }
}
.active\:scale-95:active { transform: scale(0.95); }
.focus\:ring-tc-blue:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250 / var(--tw-ring-opacity, 1))}
.focus\:border-tc-blue:focus { border-color: #60a5fa; }

/* Group hover */
.group:hover .group-hover\:bg-black\/5{background-color:rgb(0 0 0 / 0.05)}
.group:hover .group-hover\:bg-tc-blue { background-color: #60a5fa; }
.group:hover .group-hover\:text-tc-text{color:var(--text)}

/* Disabled */
.disabled\:cursor-not-allowed:disabled { cursor: not-allowed; }
.disabled\:opacity-50:disabled { opacity: 0.5; }

/* ---------------------------------------------------------------------------
   Dark mode utilities (tc tokens + extras)
   --------------------------------------------------------------------------- */
.dark\:bg-gray-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}
.dark\:bg-tc-panel:is(.dark *){background-color:var(--panel)}
.dark\:text-tc-blue:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}
.dark\:text-yellow-500:is(.dark *) { color: rgb(234 179 8); }
.dark\:hover\:bg-white\/5:hover:is(.dark *){background-color:rgb(255 255 255 / 0.05)}
.group:hover .dark\:group-hover\:bg-white\/5:is(.dark *){background-color:rgb(255 255 255 / 0.05)}

/* ---------------------------------------------------------------------------
   Responsive utilities (extras not in Tailwind v4 output)
   --------------------------------------------------------------------------- */
@media (min-width: 640px) {
  .sm\:flex { display: flex; }
  .sm\:hidden { display: none; }
  .sm\:h-64 { height: 16rem; }
  .sm\:w-\[480px\] { width: 480px; }
  .sm\:w-\[500px\] { width: 500px; }
  .sm\:w-\[720px\] { width: 720px; }
  .sm\:w-\[980px\] { width: 980px; }
}

@media (min-width: 768px) {
  .md\:pb-0 { padding-bottom: 0; }
  .md\:pb-2 { padding-bottom: 0.5rem; }
}

@media (min-width: 1024px) {
  /* lg breakpoint placeholder */
}

/* ---------------------------------------------------------------------------
   Additional layout utilities not in Tailwind v4 output
   --------------------------------------------------------------------------- */
.m-0 { margin: 0; }
.p-0 { padding: 0; }
.p-6 { padding: 1.5rem; }
.text-left { text-align: left; }
.justify-end { justify-content: flex-end; }
.gap-2\.5 { gap: 0.625rem; }
.pb-24 { padding-bottom: 6rem; }
.bottom-6 { bottom: 1.5rem; }
.right-6 { right: 1.5rem; }
.z-\[120\] { z-index: 120; }
.z-\[500\] { z-index: 500; }
.max-w-\[420px\] { max-width: 420px; }
.min-h-\[calc\(100vh-2rem\)\] { min-height: calc(100vh - 2rem); }
.min-w-\[15\.25rem\] { min-width: 15.25rem; }
.rounded-\[10px\] { border-radius: 10px; }
.top-\[calc\(100\%\+0\.5rem\)\] { top: calc(100% + 0.5rem); }
.tracking-widest { letter-spacing: 0.1em; }
.backdrop-blur-xl {
  -webkit-backdrop-filter: blur(24px);
  backdrop-filter: blur(24px);
}

