@page {
  size: A4;
  margin: 12mm;
}

.printable-quote-page {
  min-height: 100vh;
  background-color: #ffffff;
  color: #000000;
  font-family: system-ui, -apple-system, sans-serif;
}

.print-controls {
  position: fixed;
  top: 1rem;
  right: 1rem;
  display: flex;
  gap: 0.5rem;
  z-index: 1000;
  background: white;
  padding: 0.5rem;
  border-radius: 0.5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.quote-document {
  max-width: 210mm;
  margin: 0 auto;
  padding: 2rem;
  background: white;
}

.quote-header {
  display: flex;
  justify-content: space-between;
  align-items: start;
  margin-bottom: 2rem;
  break-inside: avoid;
}

.quote-title {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 0.5rem;
  color: #000000;
}

.quote-reference {
  color: #666666;
  margin-bottom: 0.25rem;
}

.quote-date {
  font-size: 0.875rem;
  color: #666666;
}

.quote-content {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.section-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.client-info-section {
  break-inside: avoid;
  margin-bottom: 1.5rem;
}

.print-details-section {
  break-inside: avoid;
  margin-bottom: 1.5rem;
}

.info-section {
  break-inside: avoid;
}

.section-title {
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #e5e7eb;
  color: #000000;
}

.info-group {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.info-item {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.info-label {
  font-size: 0.875rem;
  color: #666666;
  margin: 0;
}

.info-value {
  font-weight: 500;
  color: #000000;
  margin: 0;
}

.pricing-section {
  break-inside: avoid;
  background-color: #f9fafb;
  padding: 1.5rem;
  border: 2px solid #e5e7eb;
  border-radius: 0.5rem;
  margin-top: 1rem;
}

.pricing-content {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.price-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 0;
  border-bottom: 2px solid #3b82f6;
}

.total-label {
  font-size: 1.25rem;
  font-weight: bold;
  color: #000000;
}

.total-amount {
  font-size: 1.875rem;
  font-weight: bold;
  color: #3b82f6;
}

.price-per-part {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 0;
}

.per-part-label {
  font-size: 1.125rem;
  font-weight: 600;
  color: #000000;
}

.per-part-amount {
  font-size: 1.25rem;
  font-weight: 600;
  color: #3b82f6;
}

.terms-section {
  break-inside: avoid;
  font-size: 0.875rem;
  color: #666666;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding-top: 1rem;
  border-top: 1px solid #e5e7eb;
}

.terms-section p {
  margin: 0;
}

@media print {
  * {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .no-print {
    display: none !important;
  }

  .printable-quote-page {
    background: white;
    margin: 0;
    padding: 0;
  }

  .quote-document {
    max-width: 100%;
    margin: 0;
    padding: 0;
    box-shadow: none;
  }

  .pricing-section {
    background-color: #f9fafb !important;
    border: 2px solid #e5e7eb !important;
    border-radius: 0 !important;
  }

  .client-info-section,
  .print-details-section,
  .pricing-section,
  .terms-section {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .quote-header {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .section-title {
    break-after: avoid;
    page-break-after: avoid;
  }
}

@media screen {
  .quote-document {
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
    margin-top: 2rem;
    margin-bottom: 2rem;
  }
}
/* ================================================================
   NB3D — Centralized Design Tokens  v2
   Single source of truth for all colors, shadows, glow, spacing.
   Every other CSS file and inline style MUST reference these vars.
   ================================================================ */

:root,
.dark {

  /* ── Layer stack (background depth) ──────────────────────────── */
  --nb-bg-app:       #070B0F;   /* outermost app shell */
  --nb-bg-base:      #090D11;   /* page canvas */
  --nb-bg-subtle:    #0D1118;   /* very slight lift */
  --nb-bg-surface:   #10151D;   /* panels, sections */
  --nb-bg-raised:    #141A24;   /* cards — bottom layer */
  --nb-bg-elevated:  #1B2431;   /* cards — top layer / modals */
  --nb-bg-overlay:   #202C3C;   /* tooltips, top-layer */

  /* ── Glass surfaces ───────────────────────────────────────────── */
  --nb-glass-base:      rgba(20,25,34,0.28);
  --nb-glass-raised:    rgba(22,30,42,0.32);
  --nb-glass-elevated:  rgba(28,38,54,0.36);
  --nb-glass-overlay:   rgba(14,19,27,0.72);
  --nb-glass-sidebar:   rgba(10,14,22,0.55);
  --nb-glass-modal:     rgba(18,24,33,0.62);
  --nb-glass-blur:      blur(34px);
  --nb-glass-blur-sm:   blur(18px);
  --nb-glass-blur-lg:   blur(54px);
  --nb-glass-border:    rgba(255,255,255,0.07);
  --nb-glass-border-top:rgba(255,255,255,0.14);
  --nb-glass-border-hover: rgba(255,255,255,0.13);
  --nb-glass-border-active: rgba(59,130,246,0.35);

  /* ── Sidebar ─────────────────────────────────────────────────── */
  --nb-sidebar-bg:            #07090D;
  --nb-sidebar-bg-hover:      rgba(255,255,255,0.05);
  --nb-sidebar-bg-active:     rgba(47,111,237,0.16);
  --nb-sidebar-border:        rgba(255,255,255,0.06);
  --nb-sidebar-separator:     rgba(255,255,255,0.04);

  /* ── Text ────────────────────────────────────────────────────── */
  --nb-text-primary:   #E6EAF0;
  --nb-text-secondary: #A7B0BD;
  --nb-text-muted:     #7E8A9B;
  --nb-text-faint:     #5F6B7A;
  --nb-text-inverse:   #0D1117;

  /* ── Brand / Accent — petrol blue ────────────────────────────── */
  --nb-accent:          #2F6FED;
  --nb-accent-soft:     #3B82F6;
  --nb-accent-hover:    #4F93FF;
  --nb-accent-active:   #2563EB;
  --nb-accent-dim:      rgba(59,130,246,0.12);
  --nb-accent-subtle:   rgba(59,130,246,0.07);
  --nb-accent-muted:    rgba(59,130,246,0.20);
  --nb-accent-text:     #93C5FD;
  --nb-petrol:          #1F3A4A;
  --nb-petrol-dim:      rgba(31,58,74,0.40);

  --nb-teal:            #0EA5E9;
  --nb-teal-dim:        rgba(14,165,233,0.12);

  /* ── Status — Success ────────────────────────────────────────── */
  --nb-success:         #22C55E;
  --nb-success-text:    #4ADE80;
  --nb-success-dim:     rgba(34,197,94,0.10);
  --nb-success-subtle:  rgba(34,197,94,0.06);
  --nb-success-border:  rgba(34,197,94,0.25);
  --nb-success-glow:    rgba(34,197,94,0.25);

  /* ── Status — Warning ────────────────────────────────────────── */
  --nb-warning:         #F59E0B;
  --nb-warning-text:    #FCD34D;
  --nb-warning-dim:     rgba(245,158,11,0.10);
  --nb-warning-subtle:  rgba(245,158,11,0.06);
  --nb-warning-border:  rgba(245,158,11,0.25);
  --nb-warning-glow:    rgba(245,158,11,0.25);

  /* ── Status — Error / Danger ─────────────────────────────────── */
  --nb-error:           #EF4444;
  --nb-error-text:      #F87171;
  --nb-error-dim:       rgba(239,68,68,0.10);
  --nb-error-subtle:    rgba(239,68,68,0.06);
  --nb-error-border:    rgba(239,68,68,0.25);
  --nb-error-glow:      rgba(239,68,68,0.25);

  /* ── Status — Info ───────────────────────────────────────────── */
  --nb-info:            #3B82F6;
  --nb-info-text:       #93C5FD;
  --nb-info-dim:        rgba(59,130,246,0.10);
  --nb-info-border:     rgba(59,130,246,0.22);

  /* ── Semantic aliases ─────────────────────────────────────────── */
  --nb-stock-ok:        var(--nb-success);
  --nb-stock-ok-text:   var(--nb-success-text);
  --nb-stock-ok-dim:    var(--nb-success-dim);
  --nb-stock-ok-border: var(--nb-success-border);

  --nb-stock-low:       var(--nb-warning);
  --nb-stock-low-text:  var(--nb-warning-text);
  --nb-stock-low-dim:   var(--nb-warning-dim);
  --nb-stock-low-border:var(--nb-warning-border);

  --nb-stock-out:       var(--nb-error);
  --nb-stock-out-text:  var(--nb-error-text);
  --nb-stock-out-dim:   var(--nb-error-dim);
  --nb-stock-out-border:var(--nb-error-border);

  /* ── Borders ─────────────────────────────────────────────────── */
  --nb-border:          rgba(255,255,255,0.06);
  --nb-border-raised:   rgba(255,255,255,0.09);
  --nb-border-top:      rgba(255,255,255,0.11);
  --nb-border-focus:    rgba(59,130,246,0.60);
  --nb-border-strong:   rgba(255,255,255,0.15);
  --nb-border-subtle:   rgba(255,255,255,0.04);

  /* ── Shadows ─────────────────────────────────────────────────── */
  --nb-shadow-xs:   0 1px 3px rgba(0,0,0,0.45);
  --nb-shadow-sm:   0 2px 10px rgba(0,0,0,0.55);
  --nb-shadow-md:   0 8px 28px rgba(0,0,0,0.65);
  --nb-shadow-lg:   0 20px 56px rgba(0,0,0,0.75);
  --nb-shadow-xl:   0 32px 80px rgba(0,0,0,0.85);
  --nb-shadow-inner: inset 0 1px 0 rgba(255,255,255,0.06);

  /* ── Glass shadows ───────────────────────────────────────────── */
  --nb-glass-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 20px 60px rgba(0,0,0,0.65);
  --nb-glass-shadow-hover:
    0 0 0 1px rgba(59,130,246,0.25),
    0 0 28px rgba(59,130,246,0.18),
    0 0 80px rgba(59,130,246,0.10),
    0 12px 40px rgba(0,0,0,0.65);
  --nb-glass-shadow-active:
    0 0 0 1px rgba(59,130,246,0.55),
    0 0 44px rgba(59,130,246,0.35),
    0 0 100px rgba(59,130,246,0.20),
    0 14px 52px rgba(0,0,0,0.65);
  --nb-glass-modal-shadow:
    0 0 0 1px rgba(255,255,255,0.08),
    0 40px 100px rgba(0,0,0,0.90),
    0 0 120px rgba(59,130,246,0.12),
    inset 0 1px 0 rgba(255,255,255,0.12);

  /* ── Glow effects ────────────────────────────────────────────── */
  --nb-glow-accent:        0 0 0 1px rgba(59,130,246,0.20), 0 0 18px rgba(59,130,246,0.18), 0 0 50px rgba(59,130,246,0.10);
  --nb-glow-accent-strong: 0 0 0 1px rgba(59,130,246,0.35), 0 0 30px rgba(59,130,246,0.25), 0 0 80px rgba(59,130,246,0.15);
  --nb-glow-success:       0 0 12px rgba(34,197,94,0.60), 0 0 30px rgba(34,197,94,0.30);
  --nb-glow-warning:       0 0 12px rgba(245,158,11,0.60), 0 0 30px rgba(245,158,11,0.30);
  --nb-glow-error:         0 0 12px rgba(239,68,68,0.60),  0 0 30px rgba(239,68,68,0.30);

  /* ── Card shadows ────────────────────────────────────────────── */
  --nb-card-shadow:
    0 2px 1px rgba(255,255,255,0.04) inset,
    0 20px 70px rgba(0,0,0,0.60),
    0 1px 0 rgba(255,255,255,0.09) inset;
  --nb-card-shadow-hover:
    0 0 0 1px rgba(59,130,246,0.25),
    0 0 28px rgba(59,130,246,0.18),
    0 0 80px rgba(59,130,246,0.10),
    0 12px 40px rgba(0,0,0,0.65);
  --nb-card-shadow-selected:
    0 0 0 1px rgba(59,130,246,0.55),
    0 0 40px rgba(59,130,246,0.35),
    0 0 100px rgba(59,130,246,0.20),
    0 10px 40px rgba(0,0,0,0.65);
  --nb-card-shadow-active:
    0 0 0 1px rgba(59,130,246,0.55),
    0 0 40px rgba(59,130,246,0.35),
    0 0 100px rgba(59,130,246,0.20),
    0 10px 40px rgba(0,0,0,0.65);
  --nb-card-shadow-ok:
    0 0 0 1px rgba(34,197,94,0.30),
    0 0 24px rgba(34,197,94,0.20),
    0 0 60px rgba(34,197,94,0.10),
    0 10px 40px rgba(0,0,0,0.60);
  --nb-card-shadow-low:
    0 0 0 1px rgba(245,158,11,0.30),
    0 0 24px rgba(245,158,11,0.20),
    0 0 60px rgba(245,158,11,0.10),
    0 10px 40px rgba(0,0,0,0.60);
  --nb-card-shadow-out:
    0 0 0 1px rgba(239,68,68,0.30),
    0 0 24px rgba(239,68,68,0.20),
    0 0 60px rgba(239,68,68,0.10),
    0 10px 40px rgba(0,0,0,0.60);

  /* ── Dialog / Modal shadows ──────────────────────────────────── */
  --nb-dialog-shadow:
    0 0 0 1px rgba(255,255,255,0.06),
    0 32px 80px rgba(0,0,0,0.90),
    0 0 80px rgba(59,130,246,0.08);

  /* ── Button shadows ──────────────────────────────────────────── */
  --nb-btn-primary-shadow:       0 2px 10px rgba(47,111,237,0.40), inset 0 1px 0 rgba(255,255,255,0.12);
  --nb-btn-primary-shadow-hover: 0 4px 16px rgba(59,130,246,0.50), inset 0 1px 0 rgba(255,255,255,0.16);
  --nb-btn-danger-shadow:        0 2px 8px rgba(220,38,38,0.35);
  --nb-btn-danger-shadow-hover:  0 4px 16px rgba(239,68,68,0.45);

  /* ── Focus ring ──────────────────────────────────────────────── */
  --nb-focus-ring: 0 0 0 2px var(--nb-bg-base), 0 0 0 4px rgba(59,130,246,0.55);

  /* ── Progress bar track ──────────────────────────────────────── */
  --nb-progress-track: #2A3340;

  /* ── Spacing scale ───────────────────────────────────────────── */
  --nb-space-1:  0.25rem;
  --nb-space-2:  0.5rem;
  --nb-space-3:  0.75rem;
  --nb-space-4:  1rem;
  --nb-space-5:  1.25rem;
  --nb-space-6:  1.5rem;
  --nb-space-8:  2rem;
  --nb-space-10: 2.5rem;
  --nb-space-12: 3rem;

  /* ── Border radius scale ─────────────────────────────────────── */
  --nb-radius-xs:   0.25rem;
  --nb-radius-sm:   0.375rem;
  --nb-radius-md:   0.5rem;
  --nb-radius-lg:   0.625rem;
  --nb-radius-xl:   0.75rem;
  --nb-radius-2xl:  0.875rem;
  --nb-radius-3xl:  1rem;
  --nb-radius-full: 9999px;

  /* ── Typography scale ────────────────────────────────────────── */
  --nb-text-2xs:  0.625rem;
  --nb-text-xs:   0.75rem;
  --nb-text-sm:   0.875rem;
  --nb-text-base: 1rem;
  --nb-text-lg:   1.125rem;
  --nb-text-xl:   1.25rem;
  --nb-text-2xl:  1.5rem;

  /* ── Font weight ─────────────────────────────────────────────── */
  --nb-weight-regular: 400;
  --nb-weight-medium:  500;
  --nb-weight-semibold:600;
  --nb-weight-bold:    700;

  /* ── Z-index stack ───────────────────────────────────────────── */
  --nb-z-base:    0;
  --nb-z-raised:  10;
  --nb-z-sticky:  20;
  --nb-z-nav:     40;
  --nb-z-overlay: 50;
  --nb-z-modal:   60;
  --nb-z-toast:   70;
  --nb-z-top:     9999;

  /* ── Motion ──────────────────────────────────────────────────── */
  --nb-duration-fast:   0.12s;
  --nb-duration-normal: 0.16s;
  --nb-duration-slow:   0.28s;
  --nb-ease-standard:   cubic-bezier(0.4, 0, 0.2, 1);
  --nb-ease-enter:      cubic-bezier(0.16, 1, 0.3, 1);
  --nb-ease-exit:       cubic-bezier(0.4, 0, 1, 1);

  /* ── Glass gradients ────────────────────────────────────────── */
  --nb-glass-gradient-card:
    linear-gradient(180deg,
      rgba(27,36,49,0.32) 0%,
      rgba(20,26,36,0.22) 100%);
  --nb-glass-gradient-modal:
    linear-gradient(160deg,
      rgba(27,36,49,0.46) 0%,
      rgba(16,21,29,0.38) 100%);
  --nb-glass-gradient-sidebar:
    linear-gradient(180deg,
      rgba(10,14,22,0.58) 0%,
      rgba(8,11,18,0.52) 100%);
  --nb-glass-gradient-panel:
    linear-gradient(160deg,
      rgba(27,36,49,0.30) 0%,
      rgba(14,19,27,0.22) 100%);
  --nb-glass-gradient-header:
    linear-gradient(90deg,
      rgba(47,111,237,0.10) 0%,
      rgba(14,165,233,0.04) 60%,
      transparent 100%);
  --nb-glass-shine:
    linear-gradient(135deg,
      rgba(255,255,255,0.07) 0%,
      transparent 50%,
      rgba(255,255,255,0.03) 100%);

  /* ── Gradients ───────────────────────────────────────────────── */
  --nb-gradient-card:              linear-gradient(180deg, #1B2431 0%, #141A24 100%);
  --nb-gradient-card-elevated:     linear-gradient(180deg, #202C3C 0%, #181F2C 100%);
  --nb-gradient-sidebar:           linear-gradient(180deg, #0A0D12 0%, #070A0E 100%);
  --nb-gradient-page:
    radial-gradient(circle at 12% 18%, rgba(59,130,246,0.20), transparent 32%),
    radial-gradient(circle at 50% -10%, rgba(59,130,246,0.24), transparent 38%),
    radial-gradient(circle at 82% 22%, rgba(99,102,241,0.16), transparent 30%),
    radial-gradient(circle at 22% 78%, rgba(30,64,175,0.12), transparent 34%),
    radial-gradient(circle at 88% 82%, rgba(59,130,246,0.10), transparent 28%),
    linear-gradient(180deg, #0B0F14 0%, #0A0E13 100%);
  --nb-gradient-btn-primary:       linear-gradient(180deg, #4189FF 0%, #2563EB 100%);
  --nb-gradient-btn-primary-hover: linear-gradient(180deg, #5A9AFF 0%, #3B82F6 100%);
  --nb-gradient-btn-danger:        linear-gradient(180deg, #F05252 0%, #DC2626 100%);
  --nb-gradient-btn-danger-hover:  linear-gradient(180deg, #F87171 0%, #EF4444 100%);
  --nb-gradient-text:              linear-gradient(135deg, #60A5FA 0%, #34D399 100%);
  --nb-gradient-avatar:            linear-gradient(135deg, rgba(47,111,237,0.40) 0%, rgba(14,165,233,0.22) 100%);
  --nb-gradient-logo:              linear-gradient(135deg, rgba(47,111,237,0.35) 0%, rgba(14,165,233,0.18) 100%);
  --nb-gradient-gold:              linear-gradient(135deg, #F59E0B 0%, #D97706 100%);
  --nb-gradient-petrol:            linear-gradient(135deg, rgba(31,58,74,0.7) 0%, rgba(12,22,32,0.9) 100%);
  --nb-gradient-header:            linear-gradient(90deg, rgba(47,111,237,0.08) 0%, transparent 60%);

  /* ── Subscription tier accents ───────────────────────────────── */
  --nb-tier-gold-bg:     rgba(245,158,11,0.15);
  --nb-tier-gold-text:   #F59E0B;
  --nb-tier-gold-border: rgba(245,158,11,0.30);
  --nb-tier-silver-bg:   rgba(255,255,255,0.08);
  --nb-tier-silver-text: #7E8A9B;

  /* ── Chart colors ────────────────────────────────────────────── */
  --nb-chart-1: #3B82F6;
  --nb-chart-2: #22C55E;
  --nb-chart-3: #F59E0B;
  --nb-chart-4: #EF4444;
  --nb-chart-5: #A78BFA;
  --nb-chart-6: #0EA5E9;

  /* ── Patreon brand ───────────────────────────────────────────── */
  --nb-patreon: #FF424D;

  /* ── Sidebar shadow ──────────────────────────────────────────── */
  --nb-sidebar-shadow: 2px 0 32px rgba(0,0,0,0.60), 1px 0 0 rgba(255,255,255,0.04);

  /* ── Mobile nav backdrop ─────────────────────────────────────── */
  --nb-mobile-nav-backdrop: rgba(8,12,18,0.72);

  /* ================================================================
     theme.* — semantic aliases matching the requested design system
     structure. All values reference existing --nb-* tokens.
     Use these when building new components or in JS via the `theme`
     object from utils/tokens.ts.
     ================================================================ */

  /* theme.background — page/app canvas layers */
  --theme-background:         var(--nb-bg-app);
  --theme-background-base:    var(--nb-bg-base);
  --theme-background-subtle:  var(--nb-bg-subtle);

  /* theme.surface — panels, sections one step above background */
  --theme-surface:            var(--nb-bg-surface);
  --theme-surface-raised:     var(--nb-bg-raised);
  --theme-surface-elevated:   var(--nb-bg-elevated);
  --theme-surface-overlay:    var(--nb-bg-overlay);

  /* theme.card — card backgrounds */
  --theme-card:               var(--nb-bg-raised);
  --theme-card-elevated:      var(--nb-bg-elevated);
  --theme-card-gradient:      var(--nb-gradient-card);
  --theme-card-gradient-elevated: var(--nb-gradient-card-elevated);

  /* theme.sidebar — sidebar-specific tokens */
  --theme-sidebar:            var(--nb-sidebar-bg);
  --theme-sidebar-hover:      var(--nb-sidebar-bg-hover);
  --theme-sidebar-active:     var(--nb-sidebar-bg-active);
  --theme-sidebar-border:     var(--nb-sidebar-border);
  --theme-sidebar-gradient:   var(--nb-gradient-sidebar);

  /* theme.text.* — text hierarchy */
  --theme-text-primary:       var(--nb-text-primary);
  --theme-text-secondary:     var(--nb-text-secondary);
  --theme-text-muted:         var(--nb-text-muted);
  --theme-text-faint:         var(--nb-text-faint);
  --theme-text-inverse:       var(--nb-text-inverse);

  /* theme.accent.* — blue accent */
  --theme-accent:             var(--nb-accent-soft);
  --theme-accent-dim:         var(--nb-accent-dim);
  --theme-accent-text:        var(--nb-accent-text);
  --theme-accent-petrol:      var(--nb-petrol);

  /* theme.success / warning / danger — status */
  --theme-success:            var(--nb-success);
  --theme-success-text:       var(--nb-success-text);
  --theme-success-dim:        var(--nb-success-dim);
  --theme-success-border:     var(--nb-success-border);

  --theme-warning:            var(--nb-warning);
  --theme-warning-text:       var(--nb-warning-text);
  --theme-warning-dim:        var(--nb-warning-dim);
  --theme-warning-border:     var(--nb-warning-border);

  --theme-danger:             var(--nb-error);
  --theme-danger-text:        var(--nb-error-text);
  --theme-danger-dim:         var(--nb-error-dim);
  --theme-danger-border:      var(--nb-error-border);

  /* theme.glow.* — glow effects */
  --theme-glow-primary:       var(--nb-glow-accent);
  --theme-glow-primary-strong:var(--nb-glow-accent-strong);
  --theme-glow-success:       var(--nb-glow-success);
  --theme-glow-warning:       var(--nb-glow-warning);
  --theme-glow-danger:        var(--nb-glow-error);

  /* theme.shadow.* — shadow scale */
  --theme-shadow-sm:          var(--nb-shadow-sm);
  --theme-shadow-md:          var(--nb-shadow-md);
  --theme-shadow-lg:          var(--nb-shadow-lg);
  --theme-shadow-card:        var(--nb-card-shadow);
  --theme-shadow-dialog:      var(--nb-dialog-shadow);

  /* theme.gradient.* — gradient presets */
  --theme-gradient-page:      var(--nb-gradient-page);
  --theme-gradient-card:      var(--nb-gradient-card);
  --theme-gradient-sidebar:   var(--nb-gradient-sidebar);
  --theme-gradient-text:      var(--nb-gradient-text);

  /* theme.border.* — border hierarchy */
  --theme-border:             var(--nb-border);
  --theme-border-raised:      var(--nb-border-raised);
  --theme-border-focus:       var(--nb-border-focus);
}
/* ================================================================
   NB3D — Theme  v2
   All values reference design tokens from tokens.css.
   Do NOT hard-code hex values here — use var(--nb-*) tokens.
   ================================================================ */

/* ── shadcn/ui token bridge ──────────────────────────────────── */
:root,
.dark {
  --radius: var(--nb-radius-lg);

  --background:          var(--nb-bg-base);
  --foreground:          var(--nb-text-primary);

  --card:                var(--nb-bg-raised);
  --card-foreground:     var(--nb-text-primary);

  --popover:             var(--nb-bg-elevated);
  --popover-foreground:  var(--nb-text-primary);

  --primary:             var(--nb-accent-soft);
  --primary-foreground:  #ffffff;

  --secondary:           var(--nb-bg-elevated);
  --secondary-foreground:var(--nb-text-secondary);

  --muted:               var(--nb-bg-elevated);
  --muted-foreground:    var(--nb-text-muted);

  --accent:              var(--nb-bg-elevated);
  --accent-foreground:   var(--nb-text-primary);

  --destructive:         var(--nb-error);
  --destructive-foreground: #ffffff;

  --border:              var(--nb-border);
  --input:               rgba(255,255,255,0.06);
  --ring:                var(--nb-border-focus);

  --chart-1: var(--nb-chart-1);
  --chart-2: var(--nb-chart-2);
  --chart-3: var(--nb-chart-3);
  --chart-4: var(--nb-chart-4);
  --chart-5: var(--nb-chart-5);

  --sidebar:                   var(--nb-sidebar-bg);
  --sidebar-foreground:        var(--nb-text-secondary);
  --sidebar-primary:           var(--nb-accent-soft);
  --sidebar-primary-foreground:#ffffff;
  --sidebar-accent:            var(--nb-sidebar-bg-hover);
  --sidebar-accent-foreground: var(--nb-text-primary);
  --sidebar-border:            var(--nb-sidebar-border);
  --sidebar-ring:              rgba(59,130,246,0.40);

  /* Semantic helpers kept for legacy consumers */
  --stock-ok:        var(--nb-stock-ok);
  --stock-ok-bg:     var(--nb-stock-ok-dim);
  --stock-ok-border: var(--nb-stock-ok-border);
  --stock-low:       var(--nb-stock-low);
  --stock-low-bg:    var(--nb-stock-low-dim);
  --stock-low-border:var(--nb-stock-low-border);
  --stock-out:       var(--nb-stock-out);
  --stock-out-bg:    var(--nb-stock-out-dim);
  --stock-out-border:var(--nb-stock-out-border);
  --success:         var(--nb-success);
  --success-bg:      var(--nb-success-dim);
  --warning:         var(--nb-warning);
  --warning-bg:      var(--nb-warning-dim);
  --error:           var(--nb-error);
  --error-bg:        var(--nb-error-dim);
  --info:            var(--nb-info);
  --info-bg:         var(--nb-info-dim);
  --glow-primary:        var(--nb-glow-accent);
  --glow-primary-strong: var(--nb-glow-accent-strong);
  --glow-orange:         var(--nb-glow-warning);
  --glow-green:          var(--nb-glow-success);
  --glow-red:            var(--nb-glow-error);
  --surface-raised:      var(--nb-bg-raised);
  --surface-overlay:     var(--nb-bg-overlay);
}

/* ── Base ────────────────────────────────────────────────────── */
html, body {
  background:
    radial-gradient(circle at 12% 18%, rgba(59,130,246,0.16), transparent 32%),
    radial-gradient(circle at 50% -10%, rgba(59,130,246,0.30), transparent 40%),
    radial-gradient(circle at 82% 22%, rgba(99,102,241,0.13), transparent 30%),
    radial-gradient(circle at 22% 78%, rgba(30,64,175,0.10), transparent 34%),
    radial-gradient(circle at 88% 82%, rgba(59,130,246,0.08), transparent 28%),
    radial-gradient(circle at 50% 52%, rgba(79,70,229,0.05), transparent 42%),
    linear-gradient(180deg, #0B0F14 0%, #0A0E13 100%);
  background-attachment: fixed;
  min-height: 100vh;
}

body {
  color: var(--nb-text-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "kern" 1, "liga" 1;
  position: relative;
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 180px 180px;
  opacity: 0.028;
  pointer-events: none;
  z-index: 1;
  mix-blend-mode: overlay;
}

#root {
  isolation: isolate;
}

* {
  transition-timing-function: var(--nb-ease-standard);
}

/* ── Scrollbar ───────────────────────────────────────────────── */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: rgba(59,130,246,0.20);
  border-radius: var(--nb-radius-full);
}
::-webkit-scrollbar-thumb:hover { background: rgba(59,130,246,0.35); }

/* ── Selection ───────────────────────────────────────────────── */
::selection {
  background: rgba(59,130,246,0.30);
  color: inherit;
}

/* ── Focus ───────────────────────────────────────────────────── */
:focus-visible {
  outline: none;
  box-shadow: var(--nb-focus-ring);
}

/* ── Dialog / Modal ──────────────────────────────────────────── */
[data-slot="dialog-overlay"] {
  background: rgba(4,6,10,0.80) !important;
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
}

[data-slot="dialog-content"] {
  background: var(--nb-glass-gradient-modal) !important;
  backdrop-filter: blur(32px) saturate(1.4) !important;
  -webkit-backdrop-filter: blur(32px) saturate(1.4) !important;
  background-clip: padding-box !important;
  border: 1px solid var(--nb-glass-border-hover) !important;
  border-top-color: rgba(255,255,255,0.16) !important;
  box-shadow: var(--nb-glass-modal-shadow) !important;
  border-radius: var(--nb-radius-3xl) !important;
  transition: all 160ms ease !important;
}

[data-slot="dialog-content"]::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(59,130,246,0.18), transparent 56%),
    var(--nb-glass-shine) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

[data-slot="dialog-content"]::after {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 8% !important;
  right: 8% !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.18) 30%, rgba(59,130,246,0.35) 50%, rgba(255,255,255,0.18) 70%, transparent) !important;
  pointer-events: none !important;
  z-index: 1 !important;
}

[data-slot="dialog-header"] {
  border-bottom: 1px solid var(--nb-border-subtle);
  padding-bottom: var(--nb-space-4);
  margin-bottom: var(--nb-space-1);
}

[data-slot="dialog-title"] {
  color: var(--nb-text-primary);
  font-size: var(--nb-text-base);
  font-weight: var(--nb-weight-semibold);
  letter-spacing: -0.018em;
}

[data-slot="dialog-description"] {
  color: var(--nb-text-muted) !important;
  font-size: var(--nb-text-sm);
}

[data-slot="dialog-footer"] {
  border-top: 1px solid var(--nb-border-subtle);
  padding-top: var(--nb-space-4);
  margin-top: var(--nb-space-1);
}

[data-slot="dialog-content"] button.border-b-2.border-transparent {
  color: var(--nb-text-muted) !important;
  transition: color var(--nb-duration-fast) var(--nb-ease-standard);
}
[data-slot="dialog-content"] button.border-b-2.border-transparent:hover {
  color: var(--nb-text-secondary) !important;
}

/* ── Tabs ────────────────────────────────────────────────────── */
[data-slot="tabs-list"] {
  background: rgba(11,15,20,0.60) !important;
  backdrop-filter: var(--nb-glass-blur-sm);
  -webkit-backdrop-filter: var(--nb-glass-blur-sm);
  border: 1px solid var(--nb-glass-border) !important;
  border-radius: var(--nb-radius-lg);
  padding: 3px;
}

[data-slot="tabs-trigger"][data-state="active"] {
  background: linear-gradient(135deg, rgba(59,130,246,0.22), rgba(47,111,237,0.14)) !important;
  color: var(--nb-accent-text) !important;
  border: 1px solid rgba(59,130,246,0.30) !important;
  box-shadow:
    var(--nb-glow-accent),
    inset 0 1px 0 rgba(255,255,255,0.10) !important;
  border-radius: var(--nb-radius-md);
  transition: all 160ms ease;
}

[data-slot="tabs-trigger"]:not([data-state="active"]) {
  color: var(--nb-text-muted);
  transition: all 160ms ease;
  border-radius: var(--nb-radius-md);
}

[data-slot="tabs-trigger"]:not([data-state="active"]):hover {
  background: rgba(255,255,255,0.06) !important;
  color: var(--nb-text-secondary) !important;
}

/* ── Cards ───────────────────────────────────────────────────── */
[data-slot="card"] {
  position: relative;
  background:
    linear-gradient(180deg, rgba(27,36,49,0.28), rgba(20,26,36,0.18)),
    radial-gradient(circle at 50% 0%, rgba(255,255,255,0.06), transparent 60%),
    radial-gradient(circle at top, rgba(59,130,246,0.10), transparent 60%);
  backdrop-filter: blur(34px) saturate(1.6);
  -webkit-backdrop-filter: blur(34px) saturate(1.6);
  border: 1px solid var(--nb-glass-border);
  border-top-color: var(--nb-glass-border-top);
  border-radius: var(--nb-radius-2xl);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 20px 60px rgba(0,0,0,0.65);
  background-clip: padding-box;
  overflow: hidden;
  transition: all 160ms ease;
}

[data-slot="card"]::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 0%, rgba(59,130,246,0.16), transparent 58%),
    radial-gradient(circle at 20% 50%, rgba(99,102,241,0.06), transparent 50%),
    linear-gradient(180deg, rgba(255,255,255,0.055) 0%, transparent 38%),
    var(--nb-glass-shine);
  pointer-events: none;
  z-index: 0;
}

[data-slot="card"]::after {
  content: "";
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.12) 40%, rgba(255,255,255,0.12) 60%, transparent);
  pointer-events: none;
  z-index: 1;
}

[data-slot="card"] > * {
  position: relative;
  z-index: 1;
}

[data-slot="card"]:hover {
  border-color: rgba(255,255,255,0.13);
  border-top-color: rgba(59,130,246,0.35);
  box-shadow:
    0 0 0 1px rgba(59,130,246,0.22),
    0 0 28px rgba(59,130,246,0.18),
    0 18px 50px rgba(0,0,0,0.65);
  transform: translateY(-1px);
}

[data-slot="card"]:hover::before {
  background:
    radial-gradient(circle at 50% 0%, rgba(59,130,246,0.26), transparent 52%),
    radial-gradient(circle at 20% 50%, rgba(99,102,241,0.09), transparent 48%),
    linear-gradient(180deg, rgba(255,255,255,0.065) 0%, transparent 38%),
    var(--nb-glass-shine);
}

[data-slot="card-header"] {
  padding: var(--nb-space-5) var(--nb-space-5) var(--nb-space-3);
}

[data-slot="card-content"] {
  padding: var(--nb-space-3) var(--nb-space-5) var(--nb-space-5);
}

[data-slot="card-title"] {
  color: var(--nb-text-primary);
  font-size: var(--nb-text-sm);
  font-weight: var(--nb-weight-semibold);
  letter-spacing: -0.012em;
}

[data-slot="card-description"] {
  color: var(--nb-text-muted);
  font-size: var(--nb-text-sm);
}

/* ── Buttons ─────────────────────────────────────────────────── */
[data-slot="button"] {
  font-weight: var(--nb-weight-medium);
  letter-spacing: -0.01em;
  transition: all var(--nb-duration-fast) var(--nb-ease-standard);
  border-radius: var(--nb-radius-md);
}

[data-slot="button"][data-variant="default"] {
  background: var(--nb-gradient-btn-primary) !important;
  border: 1px solid var(--nb-accent-muted) !important;
  box-shadow: var(--nb-btn-primary-shadow);
  color: #ffffff !important;
}

[data-slot="button"][data-variant="default"]:hover {
  background: var(--nb-gradient-btn-primary-hover) !important;
  box-shadow: var(--nb-btn-primary-shadow-hover);
  transform: translateY(-1px);
}

[data-slot="button"][data-variant="default"]:active {
  transform: translateY(0);
  box-shadow: var(--nb-shadow-xs);
}

[data-slot="button"][data-variant="outline"] {
  border: 1px solid rgba(255,255,255,0.10) !important;
  background: rgba(27,36,49,0.55) !important;
  backdrop-filter: var(--nb-glass-blur-sm);
  -webkit-backdrop-filter: var(--nb-glass-blur-sm);
  color: var(--nb-text-secondary) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.40), inset 0 1px 0 rgba(255,255,255,0.05);
}

[data-slot="button"][data-variant="outline"]:hover {
  background: rgba(32,44,60,0.70) !important;
  border-color: rgba(255,255,255,0.16) !important;
  color: var(--nb-text-primary) !important;
  box-shadow: 0 4px 14px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.08);
}

[data-slot="button"][data-variant="ghost"] {
  color: var(--nb-text-muted);
  background: transparent !important;
}

[data-slot="button"][data-variant="ghost"]:hover {
  background: var(--nb-sidebar-bg-hover) !important;
  color: var(--nb-text-secondary) !important;
}

[data-slot="button"][data-variant="secondary"] {
  background: rgba(27,36,49,0.55) !important;
  backdrop-filter: var(--nb-glass-blur-sm);
  -webkit-backdrop-filter: var(--nb-glass-blur-sm);
  border: 1px solid rgba(255,255,255,0.08) !important;
  color: var(--nb-text-secondary) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.40), inset 0 1px 0 rgba(255,255,255,0.05);
}

[data-slot="button"][data-variant="secondary"]:hover {
  background: rgba(32,44,60,0.70) !important;
  color: var(--nb-text-primary) !important;
  box-shadow: 0 4px 14px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.08);
}

[data-slot="button"][data-variant="destructive"] {
  background: var(--nb-gradient-btn-danger) !important;
  border: 1px solid var(--nb-error-border) !important;
  box-shadow: var(--nb-btn-danger-shadow);
  color: #ffffff !important;
}

[data-slot="button"][data-variant="destructive"]:hover {
  background: var(--nb-gradient-btn-danger-hover) !important;
  box-shadow: var(--nb-btn-danger-shadow-hover);
  transform: translateY(-1px);
}

[data-slot="button"]:disabled {
  opacity: 0.36;
  pointer-events: none;
}

/* ── Inputs / Forms ──────────────────────────────────────────── */
[data-slot="input"],
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]),
textarea,
select {
  background: #0D1119 !important;
  border: 1px solid rgba(255,255,255,0.09) !important;
  color: var(--nb-text-primary) !important;
  border-radius: var(--nb-radius-md) !important;
  transition: border-color var(--nb-duration-fast) var(--nb-ease-standard),
              box-shadow var(--nb-duration-fast) var(--nb-ease-standard);
}

[data-slot="input"]:focus,
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="submit"]):not([type="button"]):focus,
textarea:focus,
select:focus {
  border-color: rgba(59,130,246,0.55) !important;
  box-shadow: 0 0 0 3px rgba(59,130,246,0.12), 0 0 12px rgba(59,130,246,0.18) !important;
  outline: none !important;
  background: #0D1119 !important;
}

input::placeholder,
textarea::placeholder { color: var(--nb-text-faint) !important; }

[data-slot="select-trigger"] {
  background: #0D1119 !important;
  border: 1px solid rgba(255,255,255,0.09) !important;
  color: var(--nb-text-primary) !important;
  border-radius: var(--nb-radius-md) !important;
}

[data-slot="select-trigger"]:focus,
[data-slot="select-trigger"][data-state="open"] {
  border-color: var(--nb-accent-soft) !important;
  box-shadow: 0 0 0 3px rgba(59,130,246,0.15), 0 0 8px rgba(59,130,246,0.20) !important;
}

[data-radix-popper-content-wrapper] {
  z-index: 9999 !important;
}

[data-slot="select-content"],
[role="listbox"],
[data-radix-popper-content-wrapper] > div {
  background: rgba(20,26,36,0.88) !important;
  border: 1px solid var(--nb-glass-border-hover) !important;
  color: var(--nb-text-primary) !important;
  border-radius: var(--nb-radius-xl) !important;
  box-shadow:
    var(--nb-shadow-lg),
    0 0 1px rgba(0,0,0,0.3),
    inset 0 1px 0 rgba(255,255,255,0.07) !important;
  backdrop-filter: var(--nb-glass-blur) saturate(1.3);
  -webkit-backdrop-filter: var(--nb-glass-blur) saturate(1.3);
}

[data-slot="select-item"] {
  color: var(--nb-text-secondary) !important;
  border-radius: var(--nb-radius-sm);
  transition: background var(--nb-duration-fast) var(--nb-ease-standard),
              color var(--nb-duration-fast) var(--nb-ease-standard);
}

[data-slot="select-item"]:hover,
[data-slot="select-item"][data-highlighted] {
  background: var(--nb-accent-dim) !important;
  color: var(--nb-text-primary) !important;
}

label {
  color: var(--nb-text-muted);
  font-size: var(--nb-text-sm);
  font-weight: var(--nb-weight-medium);
}

/* ── Table ───────────────────────────────────────────────────── */
[data-slot="table"] {
  border-collapse: separate;
  border-spacing: 0;
}

[data-slot="table-head"] {
  font-size: 0.68rem;
  font-weight: var(--nb-weight-semibold);
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--nb-text-faint);
  padding: var(--nb-space-2) var(--nb-space-4);
  background: rgba(4,7,10,0.60);
  border-bottom: 1px solid rgba(255,255,255,0.05);
  backdrop-filter: var(--nb-glass-blur-sm);
  -webkit-backdrop-filter: var(--nb-glass-blur-sm);
}

tbody tr {
  border-bottom: 1px solid var(--nb-border-subtle);
  transition: background-color var(--nb-duration-fast) var(--nb-ease-standard);
}

tbody tr:hover {
  background: rgba(59,130,246,0.06) !important;
}

tbody tr:last-child { border-bottom: none; }

[data-slot="table-cell"] {
  padding: var(--nb-space-3) var(--nb-space-4);
  font-size: var(--nb-text-sm);
  color: var(--nb-text-secondary);
}

/* ── Badges ──────────────────────────────────────────────────── */
[data-slot="badge"] {
  font-weight: var(--nb-weight-semibold);
  letter-spacing: 0.025em;
  font-size: 0.68rem;
  border-radius: var(--nb-radius-full);
}

[data-slot="badge"][data-variant="default"] {
  background: var(--nb-accent-dim) !important;
  color: var(--nb-accent-text) !important;
  border: 1px solid var(--nb-accent-muted) !important;
}

[data-slot="badge"][data-variant="secondary"] {
  background: rgba(255,255,255,0.06) !important;
  color: var(--nb-text-secondary) !important;
  border: 1px solid var(--nb-border) !important;
}

[data-slot="badge"][data-variant="destructive"] {
  background: var(--nb-error-dim) !important;
  color: var(--nb-error-text) !important;
  border: 1px solid var(--nb-error-border) !important;
}

[data-slot="badge"][data-variant="outline"] {
  background: transparent !important;
  color: var(--nb-text-secondary) !important;
  border: 1px solid var(--nb-border-raised) !important;
}

.badge-gold {
  background: var(--nb-gradient-gold);
  color: var(--nb-text-inverse);
  border: none;
  box-shadow: var(--nb-glow-warning);
}

.badge-admin {
  background: var(--nb-accent-dim);
  color: var(--nb-accent-text);
  border: 1px solid var(--nb-accent-muted);
}

/* ── Status pills ────────────────────────────────────────────── */
.status-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--nb-space-1);
  padding: 0.2rem 0.65rem;
  border-radius: var(--nb-radius-full);
  font-size: var(--nb-text-2xs);
  font-weight: var(--nb-weight-semibold);
  letter-spacing: 0.03em;
  border: 1px solid;
}

.stock-ok {
  background: var(--nb-stock-ok-dim);
  color: var(--nb-stock-ok-text);
  border-color: var(--nb-stock-ok-border);
}

.stock-low {
  background: var(--nb-stock-low-dim);
  color: var(--nb-stock-low-text);
  border-color: var(--nb-stock-low-border);
}

.stock-out {
  background: var(--nb-stock-out-dim);
  color: var(--nb-stock-out-text);
  border-color: var(--nb-stock-out-border);
}

/* ── Alert semantic ──────────────────────────────────────────── */
.alert-success {
  background: var(--nb-success-dim);
  border: 1px solid var(--nb-success-border);
  color: var(--nb-success-text);
  border-radius: var(--nb-radius-xl);
}

.alert-warning {
  background: var(--nb-warning-dim);
  border: 1px solid var(--nb-warning-border);
  color: var(--nb-warning-text);
  border-radius: var(--nb-radius-xl);
}

.alert-error {
  background: var(--nb-error-dim);
  border: 1px solid var(--nb-error-border);
  color: var(--nb-error-text);
  border-radius: var(--nb-radius-xl);
}

.alert-info {
  background: var(--nb-info-dim);
  border: 1px solid var(--nb-info-border);
  color: var(--nb-info-text);
  border-radius: var(--nb-radius-xl);
}

/* ── Page header ─────────────────────────────────────────────── */
.page-header {
  padding-bottom: var(--nb-space-5);
  border-bottom: 1px solid var(--nb-border-subtle);
  margin-bottom: var(--nb-space-6);
  background: var(--nb-gradient-header);
}

/* ── Sidebar nav active state ────────────────────────────────── */
.sidebar-nav-active {
  background: var(--nb-sidebar-bg-active);
  color: #ffffff;
  border-left: 3px solid var(--nb-accent-soft);
}

/* ── Glow utilities ──────────────────────────────────────────── */
.glow-primary        { box-shadow: var(--nb-glow-accent); }
.glow-primary-strong { box-shadow: var(--nb-glow-accent-strong); }
.glow-orange         { box-shadow: var(--nb-glow-warning); }
.glow-green          { box-shadow: var(--nb-glow-success); }
.glow-red            { box-shadow: var(--nb-glow-error); }
.glow-ok             { box-shadow: 0 0 12px rgba(34,197,94,0.60), 0 0 30px rgba(34,197,94,0.25); }
.glow-low            { box-shadow: 0 0 12px rgba(245,158,11,0.60), 0 0 30px rgba(245,158,11,0.25); }
.glow-out            { box-shadow: 0 0 12px rgba(239,68,68,0.60), 0 0 30px rgba(239,68,68,0.25); }

.card-glow {
  transition: box-shadow var(--nb-duration-normal) var(--nb-ease-standard),
              border-color var(--nb-duration-normal) var(--nb-ease-standard);
}
.card-glow:hover {
  box-shadow: var(--nb-card-shadow-hover);
  border-color: rgba(59,130,246,0.35) !important;
}
.card-glow.card-selected,
.card-glow[data-selected="true"] {
  box-shadow: var(--nb-card-shadow-selected);
  border-color: rgba(59,130,246,0.55) !important;
}

.glow-card {
  position: relative;
  transition: box-shadow var(--nb-duration-normal) var(--nb-ease-standard),
              border-color var(--nb-duration-normal) var(--nb-ease-standard);
}
.glow-card:hover {
  box-shadow: var(--nb-card-shadow-hover);
  border-color: rgba(59,130,246,0.35) !important;
}
.glow-card.selected,
.glow-card[aria-selected="true"],
.glow-card[data-selected="true"] {
  box-shadow: var(--nb-card-shadow-selected);
  border-color: rgba(59,130,246,0.55) !important;
}

[data-slot="card"][data-selected="true"],
[data-slot="card"].card-selected {
  border-color: rgba(59,130,246,0.50) !important;
  border-top-color: rgba(59,130,246,0.70) !important;
  box-shadow: var(--nb-card-shadow-selected);
}

[data-slot="card"][data-selected="true"]::before,
[data-slot="card"].card-selected::before {
  background: radial-gradient(circle at 50% 0%, rgba(59,130,246,0.38), transparent 55%);
}

[data-slot="card"].card-glow-ok {
  border-color: rgba(34,197,94,0.30) !important;
  border-top-color: rgba(34,197,94,0.45) !important;
  box-shadow: var(--nb-card-shadow-ok);
}

[data-slot="card"].card-glow-ok::before {
  background: radial-gradient(circle at 50% 0%, rgba(34,197,94,0.20), transparent 55%);
}

[data-slot="card"].card-glow-low {
  border-color: rgba(245,158,11,0.30) !important;
  border-top-color: rgba(245,158,11,0.45) !important;
  box-shadow: var(--nb-card-shadow-low);
}

[data-slot="card"].card-glow-low::before {
  background: radial-gradient(circle at 50% 0%, rgba(245,158,11,0.20), transparent 55%);
}

[data-slot="card"].card-glow-out {
  border-color: rgba(239,68,68,0.30) !important;
  border-top-color: rgba(239,68,68,0.45) !important;
  box-shadow: var(--nb-card-shadow-out);
}

[data-slot="card"].card-glow-out::before {
  background: radial-gradient(circle at 50% 0%, rgba(239,68,68,0.20), transparent 55%);
}

/* ── Toast ───────────────────────────────────────────────────── */
[data-slot="toast"] {
  background: rgba(18,24,33,0.85) !important;
  backdrop-filter: var(--nb-glass-blur) saturate(1.4) !important;
  -webkit-backdrop-filter: var(--nb-glass-blur) saturate(1.4) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-top-color: rgba(255,255,255,0.18) !important;
  border-radius: var(--nb-radius-xl) !important;
  box-shadow:
    0 12px 48px rgba(0,0,0,0.65),
    0 0 0 1px rgba(255,255,255,0.05),
    inset 0 1px 0 rgba(255,255,255,0.10) !important;
}

/* ── Separator ───────────────────────────────────────────────── */
[data-slot="separator"] {
  background: var(--nb-border-subtle) !important;
}

/* ── Surface helpers ─────────────────────────────────────────── */
.surface-raised {
  background: var(--nb-glass-base);
  backdrop-filter: blur(34px) saturate(1.6);
  -webkit-backdrop-filter: blur(34px) saturate(1.6);
  border: 1px solid var(--nb-glass-border);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), 0 20px 60px rgba(0,0,0,0.65);
  background-clip: padding-box;
}

.surface-overlay {
  background: var(--nb-glass-elevated);
  backdrop-filter: blur(34px) saturate(1.6);
  -webkit-backdrop-filter: blur(34px) saturate(1.6);
  border: 1px solid var(--nb-glass-border-hover);
  background-clip: padding-box;
}

/* ── Stock / progress bars ───────────────────────────────────── */
.stock-bar-track {
  background: var(--nb-progress-track);
  border-radius: var(--nb-radius-full);
  overflow: hidden;
}

.stock-bar-ok {
  background: linear-gradient(90deg, #22C55E, #4ADE80);
  box-shadow: 0 0 12px rgba(34,197,94,0.60), 0 0 30px rgba(34,197,94,0.25);
  border-radius: var(--nb-radius-full);
  transition: width var(--nb-duration-slow) var(--nb-ease-standard),
              box-shadow var(--nb-duration-normal) var(--nb-ease-standard);
}

.stock-bar-low {
  background: linear-gradient(90deg, #F59E0B, #FCD34D);
  box-shadow: 0 0 12px rgba(245,158,11,0.60), 0 0 30px rgba(245,158,11,0.25);
  border-radius: var(--nb-radius-full);
  transition: width var(--nb-duration-slow) var(--nb-ease-standard),
              box-shadow var(--nb-duration-normal) var(--nb-ease-standard);
}

.stock-bar-out {
  background: linear-gradient(90deg, #EF4444, #F87171);
  box-shadow: 0 0 12px rgba(239,68,68,0.60), 0 0 30px rgba(239,68,68,0.25);
  border-radius: var(--nb-radius-full);
  transition: width var(--nb-duration-slow) var(--nb-ease-standard),
              box-shadow var(--nb-duration-normal) var(--nb-ease-standard);
}

.progress-bar {
  border-radius: var(--nb-radius-full);
  transition: width var(--nb-duration-slow) var(--nb-ease-standard),
              box-shadow var(--nb-duration-normal) var(--nb-ease-standard);
}

.progress-bar-ok {
  background: linear-gradient(90deg, #22C55E, #4ADE80);
  box-shadow: 0 0 12px rgba(34,197,94,0.60), 0 0 30px rgba(34,197,94,0.25);
}

.progress-bar-low {
  background: linear-gradient(90deg, #F59E0B, #FCD34D);
  box-shadow: 0 0 12px rgba(245,158,11,0.60), 0 0 30px rgba(245,158,11,0.25);
}

.progress-bar-out {
  background: linear-gradient(90deg, #EF4444, #F87171);
  box-shadow: 0 0 12px rgba(239,68,68,0.60), 0 0 30px rgba(239,68,68,0.25);
}

.progress-bar-accent {
  background: linear-gradient(90deg, #2F6FED, #3B82F6);
  box-shadow: 0 0 12px rgba(59,130,246,0.60), 0 0 30px rgba(59,130,246,0.25);
}

/* ── Tailwind color remaps for dark backgrounds ──────────────── */
.text-green-600, .text-green-500 { color: var(--nb-success-text) !important; }
.text-red-600,   .text-red-500   { color: var(--nb-error-text)   !important; }
.text-yellow-600,.text-yellow-700{ color: var(--nb-warning-text) !important; }
.text-orange-600,.text-orange-500{ color: #FB923C !important; }
.text-blue-600,  .text-blue-700  { color: var(--nb-accent-text)  !important; }
.text-purple-600                  { color: #C084FC !important; }
.text-amber-600                   { color: var(--nb-warning-text) !important; }
.text-gray-600                    { color: var(--nb-text-muted)  !important; }

.bg-green-50, .bg-green-100   { background-color: var(--nb-success-dim)  !important; }
.bg-yellow-50,.bg-yellow-100  { background-color: var(--nb-warning-dim)  !important; }
.bg-blue-50,  .bg-blue-100    { background-color: var(--nb-info-dim)     !important; }
.bg-red-50,   .bg-red-100     { background-color: var(--nb-error-dim)    !important; }
.bg-gray-100                   { background-color: var(--nb-bg-elevated)  !important; }
.bg-gray-200                   { background-color: var(--nb-bg-overlay)   !important; }

.bg-green-50  .text-green-800,
.bg-green-100 .text-green-800  { color: var(--nb-success-text) !important; }
.bg-yellow-100 .text-yellow-800,
.bg-yellow-50  .text-yellow-800{ color: var(--nb-warning-text) !important; }
.bg-gray-100  .text-gray-800,
.bg-gray-200  .text-gray-800   { color: var(--nb-text-secondary) !important; }

.dark .text-green-600  { color: var(--nb-success-text) !important; }
.dark .text-green-500  { color: var(--nb-success-text) !important; }
.dark .text-red-600    { color: var(--nb-error-text)   !important; }
.dark .text-red-500    { color: var(--nb-error-text)   !important; }
.dark .text-yellow-600 { color: var(--nb-warning-text) !important; }
.dark .text-yellow-500 { color: var(--nb-warning-text) !important; }
.dark .text-orange-600 { color: #FB923C !important; }
.dark .text-orange-500 { color: #FB923C !important; }
.dark .text-blue-600   { color: var(--nb-accent-text)  !important; }
.dark .text-blue-700   { color: var(--nb-accent-text)  !important; }
.dark .text-purple-600 { color: #C084FC !important; }
.dark .text-amber-600  { color: var(--nb-warning-text) !important; }

.bg-yellow-500.text-black { color: var(--nb-text-inverse) !important; }
.bg-yellow-600 { background-color: rgba(245,158,11,0.75) !important; }
.bg-green-600  { background-color: rgba(34,197,94,0.60)  !important; }

/* ── PrintableQuote — restore light-mode page ────────────────── */
.printable-quote-page { color: #000 !important; background: #fff !important; }
.printable-quote-page * { color: inherit; }

/* ── Subscription page ───────────────────────────────────────── */
.dark\:text-blue-100 { color: #DBEAFE !important; }
.text-blue-900       { color: #DBEAFE !important; }

/* ── PriceCalculator profit panel ────────────────────────────── */
.dark\:bg-green-950,
.bg-green-950 { background-color: var(--nb-success-dim) !important; }

/* ── Loading spinner ─────────────────────────────────────────── */
.nb-spinner {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2px solid rgba(59,130,246,0.15);
  border-top-color: var(--nb-accent-soft);
  animation: nb-spin 0.7s linear infinite;
}

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

/* ── Stat metric card ────────────────────────────────────────── */
.metric-card {
  position: relative;
  overflow: hidden;
}

/* ── Section divider accent ──────────────────────────────────── */
.section-accent-line {
  height: 2px;
  background: linear-gradient(90deg, var(--nb-accent-soft), transparent);
  border-radius: var(--nb-radius-full);
  margin-bottom: var(--nb-space-5);
}

/* ── Elevated container ──────────────────────────────────────── */
.elevated-container {
  position: relative;
  background: var(--nb-glass-gradient-panel);
  backdrop-filter: blur(34px) saturate(1.6);
  -webkit-backdrop-filter: blur(34px) saturate(1.6);
  border: 1px solid var(--nb-glass-border);
  border-top-color: var(--nb-glass-border-top);
  border-radius: var(--nb-radius-2xl);
  box-shadow: var(--nb-glass-shadow);
  background-clip: padding-box;
  overflow: hidden;
  transition: all 160ms ease;
}

.elevated-container::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 0%, rgba(59,130,246,0.14), transparent 58%),
    var(--nb-glass-shine);
  pointer-events: none;
  z-index: 0;
}

.elevated-container:hover {
  border-color: var(--nb-glass-border-hover);
  border-top-color: rgba(59,130,246,0.28);
  box-shadow: var(--nb-glass-shadow-hover);
}

/* ── Petrol glow accent ──────────────────────────────────────── */
.petrol-accent {
  background: var(--nb-gradient-petrol);
  border: 1px solid rgba(31,58,74,0.6);
}

/* ── Cinematic page ambient glow ─────────────────────────────── */
#root::before {
  content: "";
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 75vh;
  background:
    radial-gradient(ellipse 80% 48% at 50% -6%, rgba(59,130,246,0.38), transparent 54%),
    radial-gradient(ellipse 50% 38% at 14% -2%, rgba(99,102,241,0.17), transparent 50%),
    radial-gradient(ellipse 44% 32% at 84% 2%, rgba(59,130,246,0.14), transparent 48%),
    radial-gradient(ellipse 30% 22% at 50% 28%, rgba(79,70,229,0.08), transparent 52%),
    radial-gradient(ellipse 20% 15% at 30% 12%, rgba(147,197,253,0.05), transparent 45%);
  pointer-events: none;
  z-index: 0;
}

#root::after {
  content: "";
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55vh;
  background:
    radial-gradient(ellipse 65% 50% at 18% 118%, rgba(47,111,237,0.18), transparent 60%),
    radial-gradient(ellipse 45% 38% at 78% 108%, rgba(99,102,241,0.13), transparent 55%),
    radial-gradient(ellipse 35% 28% at 50% 102%, rgba(59,130,246,0.10), transparent 52%);
  pointer-events: none;
  z-index: 0;
}

/* ── Ensure content sits above ambient layers ────────────────── */
#root > * {
  position: relative;
  z-index: 1;
}
/* ================================================================
   NB3D — Glass UI System
   Reusable glass morphism utility classes and component overrides.
   All values reference --nb-glass-* tokens from tokens.css.
   ================================================================ */

/* ── Base glass surface ───────────────────────────────────────── */
.glass {
  background: var(--nb-glass-base);
  backdrop-filter: blur(34px) saturate(1.6);
  -webkit-backdrop-filter: blur(34px) saturate(1.6);
  border: 1px solid var(--nb-glass-border);
  border-top-color: var(--nb-glass-border-top);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 20px 60px rgba(0,0,0,0.65);
  background-clip: padding-box;
  transition: all 160ms ease;
}

.glass-raised {
  background: var(--nb-glass-raised);
  backdrop-filter: blur(34px) saturate(1.6);
  -webkit-backdrop-filter: blur(34px) saturate(1.6);
  border: 1px solid var(--nb-glass-border);
  border-top-color: var(--nb-glass-border-top);
  box-shadow: var(--nb-glass-shadow);
  background-clip: padding-box;
  transition: all 160ms ease;
}

.glass-elevated {
  background: var(--nb-glass-elevated);
  backdrop-filter: blur(54px) saturate(1.7);
  -webkit-backdrop-filter: blur(54px) saturate(1.7);
  border: 1px solid var(--nb-glass-border-hover);
  border-top-color: rgba(255,255,255,0.16);
  box-shadow: var(--nb-glass-shadow);
  background-clip: padding-box;
  transition: all 160ms ease;
}

.glass-modal {
  background: var(--nb-glass-gradient-modal);
  backdrop-filter: blur(32px) saturate(1.4);
  -webkit-backdrop-filter: blur(32px) saturate(1.4);
  border: 1px solid var(--nb-glass-border-hover);
  border-top-color: rgba(255,255,255,0.16);
  box-shadow: var(--nb-glass-modal-shadow);
  background-clip: padding-box;
  transition: all 160ms ease;
}

.glass-sidebar {
  background: rgba(10,14,22,0.55);
  backdrop-filter: blur(30px) saturate(1.6);
  -webkit-backdrop-filter: blur(30px) saturate(1.6);
  border-right: 1px solid rgba(255,255,255,0.06);
  background-clip: padding-box;
}

/* ── Glass panel with inner glow accent ──────────────────────── */
.glass-panel {
  position: relative;
  background:
    linear-gradient(180deg, rgba(27,36,49,0.28), rgba(20,26,36,0.18)),
    radial-gradient(circle at 50% 0%, rgba(59,130,246,0.18), transparent 58%),
    radial-gradient(circle at 15% 60%, rgba(99,102,241,0.07), transparent 50%),
    radial-gradient(circle at 50% 0%, rgba(255,255,255,0.06), transparent 60%);
  backdrop-filter: blur(34px) saturate(1.6);
  -webkit-backdrop-filter: blur(34px) saturate(1.6);
  border: 1px solid rgba(255,255,255,0.06);
  border-top-color: rgba(255,255,255,0.13);
  border-radius: 14px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 20px 60px rgba(0,0,0,0.65);
  background-clip: padding-box;
  overflow: hidden;
  transition: all 160ms ease;
}

.glass-panel::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 55%;
  height: 100%;
  pointer-events: none;
  z-index: 2;
  overflow: hidden;
  border-radius: inherit;
  background: linear-gradient(
    115deg,
    transparent 0%,
    transparent 30%,
    rgba(255,255,255,0.025) 42%,
    rgba(255,255,255,0.06) 50%,
    rgba(255,255,255,0.025) 58%,
    transparent 70%,
    transparent 100%
  );
  transform: translateX(-120%);
  opacity: 0;
  will-change: transform, opacity;
}

.glass-panel > * { position: relative; z-index: 1; }

.glass-panel:hover {
  border-color: rgba(255,255,255,0.12);
  border-top-color: rgba(59,130,246,0.32);
  box-shadow:
    0 0 0 1px rgba(59,130,246,0.22),
    0 0 28px rgba(59,130,246,0.18),
    0 18px 50px rgba(0,0,0,0.65);
  transform: translateY(-1px);
}

/* ── Glass stat card ─────────────────────────────────────────── */
.glass-stat {
  position: relative;
  background:
    linear-gradient(180deg, rgba(27,36,49,0.28) 0%, rgba(20,26,36,0.18) 100%),
    radial-gradient(circle at 50% 0%, rgba(59,130,246,0.16), transparent 58%),
    radial-gradient(circle at 80% 80%, rgba(99,102,241,0.06), transparent 45%),
    radial-gradient(circle at 50% 0%, rgba(255,255,255,0.055), transparent 38%);
  backdrop-filter: blur(34px) saturate(1.6);
  -webkit-backdrop-filter: blur(34px) saturate(1.6);
  border: 1px solid rgba(255,255,255,0.07);
  border-top-color: rgba(255,255,255,0.14);
  border-radius: var(--nb-radius-2xl);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.05),
    0 20px 60px rgba(0,0,0,0.65);
  background-clip: padding-box;
  overflow: hidden;
  transition: all 160ms ease;
}

.glass-stat::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 55%;
  height: 100%;
  pointer-events: none;
  z-index: 2;
  overflow: hidden;
  border-radius: inherit;
  background: linear-gradient(
    115deg,
    transparent 0%,
    transparent 30%,
    rgba(255,255,255,0.03) 42%,
    rgba(255,255,255,0.07) 50%,
    rgba(255,255,255,0.03) 58%,
    transparent 70%,
    transparent 100%
  );
  transform: translateX(-120%);
  opacity: 0;
  will-change: transform, opacity;
}

.glass-stat > * { position: relative; z-index: 1; }

.glass-stat:hover {
  border-color: rgba(255,255,255,0.12);
  border-top-color: rgba(59,130,246,0.32);
  box-shadow:
    0 0 0 1px rgba(59,130,246,0.22),
    0 0 28px rgba(59,130,246,0.18),
    0 18px 50px rgba(0,0,0,0.65);
  transform: translateY(-1px);
}

/* ── Glass input group ───────────────────────────────────────── */
.glass-input-group {
  background: rgba(13,17,25,0.70);
  backdrop-filter: var(--nb-glass-blur-sm);
  -webkit-backdrop-filter: var(--nb-glass-blur-sm);
  border: 1px solid var(--nb-glass-border);
  border-radius: var(--nb-radius-lg);
  transition: all 160ms ease;
}

.glass-input-group:focus-within {
  border-color: rgba(59,130,246,0.40);
  box-shadow: 0 0 0 3px rgba(59,130,246,0.10), 0 0 16px rgba(59,130,246,0.16);
}

/* ── Glass badge / pill ──────────────────────────────────────── */
.glass-badge {
  background: rgba(255,255,255,0.06);
  backdrop-filter: var(--nb-glass-blur-sm);
  -webkit-backdrop-filter: var(--nb-glass-blur-sm);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: var(--nb-radius-full);
  transition: all 160ms ease;
}

.glass-badge:hover {
  background: rgba(255,255,255,0.10);
  border-color: rgba(255,255,255,0.16);
}

/* ── Glass accent pill (blue) ────────────────────────────────── */
.glass-accent {
  background: rgba(59,130,246,0.14);
  backdrop-filter: var(--nb-glass-blur-sm);
  -webkit-backdrop-filter: var(--nb-glass-blur-sm);
  border: 1px solid rgba(59,130,246,0.25);
  border-radius: var(--nb-radius-full);
  color: var(--nb-accent-text);
  transition: all 160ms ease;
}

/* ── Glass section header ────────────────────────────────────── */
.glass-section-header {
  background: rgba(20,25,34,0.32);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--nb-glass-border);
  background-clip: padding-box;
  transition: all 160ms ease;
}

/* ── Glass table wrapper ─────────────────────────────────────── */
.glass-table-wrapper {
  background: var(--nb-glass-gradient-card);
  backdrop-filter: blur(34px) saturate(1.4);
  -webkit-backdrop-filter: blur(34px) saturate(1.4);
  border: 1px solid var(--nb-glass-border);
  border-top-color: var(--nb-glass-border-top);
  border-radius: var(--nb-radius-2xl);
  box-shadow: var(--nb-glass-shadow);
  background-clip: padding-box;
  overflow: hidden;
}

/* ── Glass hover effect for interactive rows ─────────────────── */
tbody tr {
  transition: all 160ms ease;
}

tbody tr:hover {
  background: rgba(59,130,246,0.07) !important;
  backdrop-filter: var(--nb-glass-blur-sm);
}

/* ── Glow colors on glass cards ──────────────────────────────── */
.glass-glow-blue:hover {
  box-shadow:
    0 0 0 1px rgba(59,130,246,0.22),
    0 0 28px rgba(59,130,246,0.18),
    0 18px 50px rgba(0,0,0,0.65);
  border-color: rgba(59,130,246,0.30) !important;
  border-top-color: rgba(59,130,246,0.48) !important;
}

.glass-glow-green:hover {
  box-shadow:
    0 0 0 1px rgba(34,197,94,0.28),
    0 0 24px rgba(34,197,94,0.18),
    0 0 60px rgba(34,197,94,0.10),
    0 12px 40px rgba(0,0,0,0.55);
  border-color: rgba(34,197,94,0.28) !important;
  border-top-color: rgba(34,197,94,0.42) !important;
}

.glass-glow-amber:hover {
  box-shadow:
    0 0 0 1px rgba(245,158,11,0.28),
    0 0 24px rgba(245,158,11,0.18),
    0 0 60px rgba(245,158,11,0.10),
    0 12px 40px rgba(0,0,0,0.55);
  border-color: rgba(245,158,11,0.28) !important;
  border-top-color: rgba(245,158,11,0.42) !important;
}

.glass-glow-red:hover {
  box-shadow:
    0 0 0 1px rgba(239,68,68,0.28),
    0 0 24px rgba(239,68,68,0.18),
    0 0 60px rgba(239,68,68,0.10),
    0 12px 40px rgba(0,0,0,0.55);
  border-color: rgba(239,68,68,0.28) !important;
  border-top-color: rgba(239,68,68,0.42) !important;
}

/* ── Glass active/selected state ─────────────────────────────── */
.glass-active,
[data-slot="card"][data-selected="true"],
[data-slot="card"].card-selected {
  border-color: rgba(59,130,246,0.40) !important;
  border-top-color: rgba(59,130,246,0.60) !important;
  box-shadow: var(--nb-glass-shadow-active) !important;
}

[data-slot="card"][data-selected="true"]::before,
[data-slot="card"].card-selected::before {
  background:
    radial-gradient(circle at 50% 0%, rgba(59,130,246,0.36), transparent 52%),
    var(--nb-glass-shine);
}

/* ── Status glow overrides ───────────────────────────────────── */
[data-slot="card"].card-glow-ok {
  border-color: rgba(34,197,94,0.28) !important;
  border-top-color: rgba(34,197,94,0.44) !important;
  box-shadow:
    0 0 0 1px rgba(34,197,94,0.22),
    0 0 24px rgba(34,197,94,0.16),
    0 0 60px rgba(34,197,94,0.08),
    0 12px 40px rgba(0,0,0,0.55);
}

[data-slot="card"].card-glow-ok::before {
  background:
    radial-gradient(circle at 50% 0%, rgba(34,197,94,0.18), transparent 55%),
    var(--nb-glass-shine);
}

[data-slot="card"].card-glow-low {
  border-color: rgba(245,158,11,0.28) !important;
  border-top-color: rgba(245,158,11,0.44) !important;
  box-shadow:
    0 0 0 1px rgba(245,158,11,0.22),
    0 0 24px rgba(245,158,11,0.16),
    0 0 60px rgba(245,158,11,0.08),
    0 12px 40px rgba(0,0,0,0.55);
}

[data-slot="card"].card-glow-low::before {
  background:
    radial-gradient(circle at 50% 0%, rgba(245,158,11,0.18), transparent 55%),
    var(--nb-glass-shine);
}

[data-slot="card"].card-glow-out {
  border-color: rgba(239,68,68,0.28) !important;
  border-top-color: rgba(239,68,68,0.44) !important;
  box-shadow:
    0 0 0 1px rgba(239,68,68,0.22),
    0 0 24px rgba(239,68,68,0.16),
    0 0 60px rgba(239,68,68,0.08),
    0 12px 40px rgba(0,0,0,0.55);
}

[data-slot="card"].card-glow-out::before {
  background:
    radial-gradient(circle at 50% 0%, rgba(239,68,68,0.18), transparent 55%),
    var(--nb-glass-shine);
}

/* ── Glass card hover overrides (combining with existing) ─────── */
.card-glow:hover {
  box-shadow:
    0 0 0 1px rgba(59,130,246,0.22),
    0 0 28px rgba(59,130,246,0.18),
    0 18px 50px rgba(0,0,0,0.65);
  border-color: rgba(59,130,246,0.28) !important;
  transform: translateY(-1px);
}

.glow-card:hover {
  box-shadow:
    0 0 0 1px rgba(59,130,246,0.22),
    0 0 28px rgba(59,130,246,0.18),
    0 18px 50px rgba(0,0,0,0.65);
  border-color: rgba(59,130,246,0.28) !important;
  transform: translateY(-1px);
}

/* ── Glass page header ───────────────────────────────────────── */
.page-header {
  background: var(--nb-glass-gradient-header) !important;
  backdrop-filter: var(--nb-glass-blur-sm);
  -webkit-backdrop-filter: var(--nb-glass-blur-sm);
}

/* ── Sidebar nav active state — glass version ────────────────── */
.sidebar-nav-active {
  background: linear-gradient(135deg, rgba(47,111,237,0.22) 0%, rgba(47,111,237,0.10) 100%) !important;
  backdrop-filter: var(--nb-glass-blur-sm);
  -webkit-backdrop-filter: var(--nb-glass-blur-sm);
  border-left: 2px solid var(--nb-accent-soft);
  border-radius: var(--nb-radius-md);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08);
}

/* ── Glass mobile nav ────────────────────────────────────────── */
.glass-mobile-nav {
  background: rgba(7,9,13,0.90);
  backdrop-filter: blur(24px) saturate(1.8);
  -webkit-backdrop-filter: blur(24px) saturate(1.8);
  border-top: 1px solid var(--nb-glass-border);
}

/* ── Glow utilities with glass ───────────────────────────────── */
.glow-primary {
  box-shadow:
    0 0 0 1px rgba(59,130,246,0.20),
    0 0 18px rgba(59,130,246,0.18),
    0 0 50px rgba(59,130,246,0.10);
}

/* ── Metric card glass ───────────────────────────────────────── */
.metric-card {
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(34px) saturate(1.6);
  -webkit-backdrop-filter: blur(34px) saturate(1.6);
  background-clip: padding-box;
}

/* ================================================================
   Light Sweep — premium reflective glass effect
   Uses ::before pseudo-element on .glass-stat, .glass-panel, .glass-sweep
   Runs once on initial render with staggered delays between cards.
   Hover triggers a repeat pass.
   ================================================================ */

@keyframes glassSweepPass {
  0%   { transform: translateX(-120%); opacity: 1; }
  100% { transform: translateX(220%);  opacity: 1; }
}

@keyframes glassSweepOnce {
  0%   { transform: translateX(-120%); opacity: 1; }
  80%  { transform: translateX(220%);  opacity: 1; }
  100% { transform: translateX(220%);  opacity: 0; }
}

.glass-stat:hover::before,
.glass-panel:hover::before,
.glass-sweep:hover::before {
  animation: glassSweepPass 1.8s ease-in-out forwards;
}

.glass-stat:nth-child(1)::before   { animation: glassSweepOnce 3.2s 0.4s ease-in-out both; }
.glass-stat:nth-child(2)::before   { animation: glassSweepOnce 3.2s 0.9s ease-in-out both; }
.glass-stat:nth-child(3)::before   { animation: glassSweepOnce 3.2s 1.4s ease-in-out both; }
.glass-stat:nth-child(4)::before   { animation: glassSweepOnce 3.2s 1.9s ease-in-out both; }
.glass-stat:nth-child(5)::before   { animation: glassSweepOnce 3.2s 2.4s ease-in-out both; }
.glass-stat:nth-child(6)::before   { animation: glassSweepOnce 3.2s 2.9s ease-in-out both; }
.glass-stat:nth-child(n+7)::before { animation: glassSweepOnce 3.2s 3.4s ease-in-out both; }

.glass-panel:nth-child(1)::before   { animation: glassSweepOnce 3.2s 0.6s ease-in-out both; }
.glass-panel:nth-child(2)::before   { animation: glassSweepOnce 3.2s 1.1s ease-in-out both; }
.glass-panel:nth-child(3)::before   { animation: glassSweepOnce 3.2s 1.6s ease-in-out both; }
.glass-panel:nth-child(n+4)::before { animation: glassSweepOnce 3.2s 2.1s ease-in-out both; }

/* ── Standalone .glass-sweep cards ──────────────────────────── */
.glass-sweep {
  position: relative;
  overflow: hidden;
}

.glass-sweep::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 55%;
  height: 100%;
  pointer-events: none;
  z-index: 2;
  overflow: hidden;
  border-radius: inherit;
  background: linear-gradient(
    115deg,
    transparent 0%,
    transparent 30%,
    rgba(255,255,255,0.025) 42%,
    rgba(255,255,255,0.06) 50%,
    rgba(255,255,255,0.025) 58%,
    transparent 70%,
    transparent 100%
  );
  transform: translateX(-120%);
  opacity: 0;
  will-change: transform, opacity;
}

.glass-sweep:nth-child(1)::before   { animation: glassSweepOnce 3.2s 0.5s ease-in-out both; }
.glass-sweep:nth-child(2)::before   { animation: glassSweepOnce 3.2s 1.0s ease-in-out both; }
.glass-sweep:nth-child(3)::before   { animation: glassSweepOnce 3.2s 1.5s ease-in-out both; }
.glass-sweep:nth-child(4)::before   { animation: glassSweepOnce 3.2s 2.0s ease-in-out both; }
.glass-sweep:nth-child(5)::before   { animation: glassSweepOnce 3.2s 2.5s ease-in-out both; }
.glass-sweep:nth-child(n+6)::before { animation: glassSweepOnce 3.2s 3.0s ease-in-out both; }
[data-slot="table-row"] {
  min-height: 3.5rem;
}

@media (max-width: 768px) {
  [data-slot="table-head"],
  [data-slot="table-cell"] {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-top: 0.875rem;
    padding-bottom: 0.875rem;
    font-size: 0.813rem;
    line-height: 1.125rem;
  }

  [data-slot="table-row"] {
    min-height: 4rem;
  }

  [role="dialog"] {
    max-width: calc(100vw - 1.5rem);
    max-height: calc(100vh - 1.5rem);
    margin: 0.75rem;
  }

  [role="dialog"] > div {
    max-height: calc(100vh - 3rem);
    overflow-y: auto;
  }

  input,
  textarea,
  select {
    font-size: 1rem;
  }

  .touch-manipulation {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }
}
/* ================================================================
   NB3D — Global Animations & Motion
   All color values reference tokens from tokens.css via var(--nb-*)
   ================================================================ */

/* ── Keyframes ───────────────────────────────────────────────── */
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInDown {
  from { opacity: 0; transform: translateY(-10px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.96); }
  to   { opacity: 1; transform: scale(1); }
}

@keyframes slideInFromRight {
  from { opacity: 0; transform: translateX(14px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes slideInFromLeft {
  from { opacity: 0; transform: translateX(-14px); }
  to   { opacity: 1; transform: translateX(0); }
}

@keyframes shimmer {
  0%   { background-position: -800px 0; }
  100% { background-position:  800px 0; }
}

@keyframes pulseSoft {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.50; }
}

@keyframes glowPulseAccent {
  0%, 100% {
    box-shadow:
      0 0 0 1px rgba(59,130,246,0.20),
      0 0 18px rgba(59,130,246,0.15),
      0 0 50px rgba(59,130,246,0.08);
  }
  50% {
    box-shadow:
      0 0 0 1px rgba(59,130,246,0.40),
      0 0 30px rgba(59,130,246,0.28),
      0 0 80px rgba(59,130,246,0.16);
  }
}

@keyframes glowPulseSuccess {
  0%, 100% { box-shadow: 0 0 8px rgba(34,197,94,0.35), 0 0 20px rgba(34,197,94,0.15); }
  50%       { box-shadow: 0 0 14px rgba(34,197,94,0.70), 0 0 40px rgba(34,197,94,0.30); }
}

@keyframes glowPulseWarning {
  0%, 100% { box-shadow: 0 0 8px rgba(245,158,11,0.35), 0 0 20px rgba(245,158,11,0.15); }
  50%       { box-shadow: 0 0 14px rgba(245,158,11,0.70), 0 0 40px rgba(245,158,11,0.30); }
}

@keyframes glowPulseError {
  0%, 100% { box-shadow: 0 0 8px rgba(239,68,68,0.35), 0 0 20px rgba(239,68,68,0.15); }
  50%       { box-shadow: 0 0 14px rgba(239,68,68,0.70), 0 0 40px rgba(239,68,68,0.30); }
}

@keyframes glowPulseCardHover {
  0%, 100% {
    box-shadow:
      0 0 0 1px rgba(59,130,246,0.25),
      0 0 20px rgba(59,130,246,0.18),
      0 0 60px rgba(59,130,246,0.10),
      0 10px 40px rgba(0,0,0,0.60);
  }
  50% {
    box-shadow:
      0 0 0 1px rgba(59,130,246,0.45),
      0 0 35px rgba(59,130,246,0.30),
      0 0 90px rgba(59,130,246,0.18),
      0 10px 40px rgba(0,0,0,0.65);
  }
}

@keyframes borderGlow {
  0%, 100% { border-color: var(--nb-accent-dim, rgba(59,130,246,0.16)); }
  50%       { border-color: var(--nb-accent-muted, rgba(59,130,246,0.42)); }
}

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

/* ── Animation utility classes ───────────────────────────────── */
.animate-fade-in        { animation: fadeIn           var(--nb-duration-fast,   0.12s) var(--nb-ease-standard, ease-out); }
.animate-fade-in-up     { animation: fadeInUp         var(--nb-duration-slow,   0.28s) var(--nb-ease-standard, ease-out); }
.animate-fade-in-down   { animation: fadeInDown       var(--nb-duration-slow,   0.28s) var(--nb-ease-standard, ease-out); }
.animate-scale-in       { animation: scaleIn          var(--nb-duration-normal, 0.18s) var(--nb-ease-enter,    cubic-bezier(0.16,1,0.3,1)); }
.animate-slide-in-right { animation: slideInFromRight var(--nb-duration-normal, 0.18s) var(--nb-ease-standard, ease-out); }
.animate-slide-in-left  { animation: slideInFromLeft  var(--nb-duration-normal, 0.18s) var(--nb-ease-standard, ease-out); }
.animate-glow-pulse     { animation: glowPulseAccent  2.6s ease-in-out infinite; }
.animate-glow-success   { animation: glowPulseSuccess 2.6s ease-in-out infinite; }
.animate-glow-warning   { animation: glowPulseWarning 2.6s ease-in-out infinite; }
.animate-border-glow    { animation: borderGlow       2.6s ease-in-out infinite; }
.animate-stock-alert    { animation: glowPulseError   2.2s ease-in-out infinite; }
.animate-spin           { animation: spin             1s   linear      infinite; }
.animate-pulse          { animation: pulseSoft        2s   cubic-bezier(0.4,0,0.6,1) infinite; }

.animate-shimmer {
  animation: shimmer 2.2s infinite linear;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--nb-accent-subtle, rgba(59,130,246,0.05)) 45%,
    var(--nb-accent-dim,    rgba(59,130,246,0.10)) 50%,
    var(--nb-accent-subtle, rgba(59,130,246,0.05)) 55%,
    transparent 100%
  );
  background-size: 800px 100%;
}

/* ── Transitions ─────────────────────────────────────────────── */
.transition-smooth {
  transition: all 160ms ease;
}
.transition-fast {
  transition: all var(--nb-duration-fast, 0.12s) var(--nb-ease-standard, cubic-bezier(0.4,0,0.2,1));
}

/* ── Hover lift ──────────────────────────────────────────────── */
.hover-lift {
  transition: all 160ms ease;
}
.hover-lift:hover {
  transform: translateY(-2px);
  box-shadow:
    0 0 0 1px rgba(59,130,246,0.35),
    0 0 30px rgba(59,130,246,0.25),
    0 0 80px rgba(59,130,246,0.15),
    0 10px 40px rgba(0,0,0,0.60);
}

.hover-scale { transition: all 160ms ease; }
.hover-scale:hover { transform: scale(1.015); }

/* ── Glass hover lift ────────────────────────────────────────── */
.hover-glass {
  transition: all 160ms ease;
}
.hover-glass:hover {
  transform: translateY(-1px);
  backdrop-filter: blur(18px) saturate(1.5);
  -webkit-backdrop-filter: blur(18px) saturate(1.5);
  border-color: rgba(255,255,255,0.11) !important;
  box-shadow:
    0 0 0 1px rgba(59,130,246,0.22),
    0 0 24px rgba(59,130,246,0.18),
    0 0 60px rgba(59,130,246,0.10),
    0 12px 40px rgba(0,0,0,0.55),
    inset 0 1px 0 rgba(255,255,255,0.10);
}

/* ── Focus ring ──────────────────────────────────────────────── */
*:focus-visible {
  outline: none;
  box-shadow: var(--nb-focus-ring, 0 0 0 2px #0D1117, 0 0 0 4px rgba(59,130,246,0.55));
  border-radius: var(--nb-radius-sm, 0.375rem);
}

/* ── Page transition ─────────────────────────────────────────── */
.page-transition-enter {
  animation: fadeInUp var(--nb-duration-slow, 0.28s) var(--nb-ease-standard, ease-out);
}

/* ── Interactive element defaults ────────────────────────────── */
button, a, [role="button"] {
  transition: all 160ms ease;
}

/* ── Stagger children ────────────────────────────────────────── */
.stagger-children > * {
  opacity: 0;
  animation: fadeInUp 0.30s var(--nb-ease-standard, ease-out) forwards;
}
.stagger-children > *:nth-child(1) { animation-delay: 0.03s; }
.stagger-children > *:nth-child(2) { animation-delay: 0.07s; }
.stagger-children > *:nth-child(3) { animation-delay: 0.11s; }
.stagger-children > *:nth-child(4) { animation-delay: 0.15s; }
.stagger-children > *:nth-child(5) { animation-delay: 0.19s; }
.stagger-children > *:nth-child(6) { animation-delay: 0.23s; }
.stagger-children > *:nth-child(7) { animation-delay: 0.27s; }
.stagger-children > *:nth-child(8) { animation-delay: 0.31s; }

/* ── Card glow on hover ──────────────────────────────────────── */
.card-glow:hover {
  box-shadow: var(--nb-card-shadow-hover);
}

.animate-glow-card { animation: glowPulseCardHover 2.8s ease-in-out infinite; }
.animate-glow-ok   { animation: glowPulseSuccess   2.6s ease-in-out infinite; }
.animate-glow-low  { animation: glowPulseWarning   2.6s ease-in-out infinite; }
.animate-glow-out  { animation: glowPulseError     2.2s ease-in-out infinite; }

/* ── Spinner ─────────────────────────────────────────────────── */
.spinner-glow {
  border-color: var(--nb-accent-dim);
  border-top-color: var(--nb-accent);
  box-shadow: var(--nb-glow-accent);
}

/* ── Notification dot ────────────────────────────────────────── */
.notification-dot {
  background: var(--nb-warning);
  box-shadow: 0 0 8px 1px var(--nb-warning-glow);
}

/* ── Gradient text ───────────────────────────────────────────── */
.gradient-text {
  background: var(--nb-gradient-text);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Surface helpers ─────────────────────────────────────────── */
.surface-raised {
  background: var(--nb-bg-raised);
  border: 1px solid var(--nb-border);
}
.surface-overlay {
  background: var(--nb-bg-overlay);
  border: 1px solid var(--nb-border-raised);
}
/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties {
  @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-space-y-reverse: 0;
      --tw-space-x-reverse: 0;
      --tw-divide-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-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
      --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;
      --tw-ease: initial;
      --tw-content: "";
      --tw-animation-delay: 0s;
      --tw-animation-direction: normal;
      --tw-animation-duration: initial;
      --tw-animation-fill-mode: none;
      --tw-animation-iteration-count: 1;
      --tw-enter-blur: 0;
      --tw-enter-opacity: 1;
      --tw-enter-rotate: 0;
      --tw-enter-scale: 1;
      --tw-enter-translate-x: 0;
      --tw-enter-translate-y: 0;
      --tw-exit-blur: 0;
      --tw-exit-opacity: 1;
      --tw-exit-rotate: 0;
      --tw-exit-scale: 1;
      --tw-exit-translate-x: 0;
      --tw-exit-translate-y: 0;
    }
  }
}

@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
      "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --color-red-50: oklch(97.1% .013 17.38);
    --color-red-100: oklch(93.6% .032 17.717);
    --color-red-200: oklch(88.5% .062 18.334);
    --color-red-300: oklch(80.8% .114 19.571);
    --color-red-400: oklch(70.4% .191 22.216);
    --color-red-500: oklch(63.7% .237 25.331);
    --color-red-600: oklch(57.7% .245 27.325);
    --color-red-700: oklch(50.5% .213 27.518);
    --color-red-800: oklch(44.4% .177 26.899);
    --color-red-900: oklch(39.6% .141 25.723);
    --color-red-950: oklch(25.8% .092 26.042);
    --color-orange-50: oklch(98% .016 73.684);
    --color-orange-100: oklch(95.4% .038 75.164);
    --color-orange-200: oklch(90.1% .076 70.697);
    --color-orange-300: oklch(83.7% .128 66.29);
    --color-orange-400: oklch(75% .183 55.934);
    --color-orange-500: oklch(70.5% .213 47.604);
    --color-orange-600: oklch(64.6% .222 41.116);
    --color-orange-700: oklch(55.3% .195 38.402);
    --color-orange-800: oklch(47% .157 37.304);
    --color-orange-900: oklch(40.8% .123 38.172);
    --color-orange-950: oklch(26.6% .079 36.259);
    --color-amber-400: oklch(82.8% .189 84.429);
    --color-amber-500: oklch(76.9% .188 70.08);
    --color-yellow-50: oklch(98.7% .026 102.212);
    --color-yellow-100: oklch(97.3% .071 103.193);
    --color-yellow-200: oklch(94.5% .129 101.54);
    --color-yellow-300: oklch(90.5% .182 98.111);
    --color-yellow-400: oklch(85.2% .199 91.936);
    --color-yellow-500: oklch(79.5% .184 86.047);
    --color-yellow-600: oklch(68.1% .162 75.834);
    --color-yellow-700: oklch(55.4% .135 66.442);
    --color-yellow-800: oklch(47.6% .114 61.907);
    --color-yellow-900: oklch(42.1% .095 57.708);
    --color-yellow-950: oklch(28.6% .066 53.813);
    --color-green-50: oklch(98.2% .018 155.826);
    --color-green-400: oklch(79.2% .209 151.711);
    --color-green-500: oklch(72.3% .219 149.579);
    --color-green-600: oklch(62.7% .194 149.214);
    --color-green-700: oklch(52.7% .154 150.069);
    --color-green-950: oklch(26.6% .065 152.934);
    --color-emerald-400: oklch(76.5% .177 163.223);
    --color-emerald-500: oklch(69.6% .17 162.48);
    --color-blue-50: oklch(97% .014 254.604);
    --color-blue-100: oklch(93.2% .032 255.585);
    --color-blue-200: oklch(88.2% .059 254.128);
    --color-blue-300: oklch(80.9% .105 251.813);
    --color-blue-400: oklch(70.7% .165 254.624);
    --color-blue-500: oklch(62.3% .214 259.815);
    --color-blue-600: oklch(54.6% .245 262.881);
    --color-blue-700: oklch(48.8% .243 264.376);
    --color-blue-800: oklch(42.4% .199 265.638);
    --color-blue-900: oklch(37.9% .146 265.522);
    --color-blue-950: oklch(28.2% .091 267.935);
    --color-violet-400: oklch(70.2% .183 293.541);
    --color-violet-500: oklch(60.6% .25 292.717);
    --color-purple-400: oklch(71.4% .203 305.504);
    --color-purple-500: oklch(62.7% .265 303.9);
    --color-purple-600: oklch(55.8% .288 302.321);
    --color-purple-900: oklch(38.1% .176 304.987);
    --color-slate-900: oklch(20.8% .042 265.755);
    --color-gray-300: oklch(87.2% .01 258.338);
    --color-gray-400: oklch(70.7% .022 261.325);
    --color-gray-500: oklch(55.1% .027 264.364);
    --color-gray-600: oklch(44.6% .03 256.802);
    --color-black: #000;
    --color-white: #fff;
    --spacing: .25rem;
    --container-xs: 20rem;
    --container-sm: 24rem;
    --container-md: 28rem;
    --container-lg: 32rem;
    --container-2xl: 42rem;
    --container-3xl: 48rem;
    --container-4xl: 56rem;
    --container-5xl: 64rem;
    --container-6xl: 72rem;
    --container-7xl: 80rem;
    --text-xs: .75rem;
    --text-xs--line-height: calc(1 / .75);
    --text-sm: .875rem;
    --text-sm--line-height: calc(1.25 / .875);
    --text-base: 1rem;
    --text-base--line-height: calc(1.5 / 1);
    --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);
    --text-3xl: 1.875rem;
    --text-3xl--line-height: calc(2.25 / 1.875);
    --text-4xl: 2.25rem;
    --text-4xl--line-height: calc(2.5 / 2.25);
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --tracking-tight: -.025em;
    --tracking-wide: .025em;
    --tracking-wider: .05em;
    --leading-tight: 1.25;
    --leading-snug: 1.375;
    --leading-relaxed: 1.625;
    --radius-xs: .125rem;
    --radius-2xl: 1rem;
    --ease-out: cubic-bezier(0, 0, .2, 1);
    --animate-spin: spin 1s linear infinite;
    --blur-sm: 8px;
    --blur-md: 12px;
    --blur-3xl: 64px;
    --default-transition-duration: .15s;
    --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
  }
}

@layer base {
  *, :after, :before, ::backdrop {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  ::file-selector-button {
    box-sizing: border-box;
    border: 0 solid;
    margin: 0;
    padding: 0;
  }

  html, :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }

  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }

  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }

  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }

  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }

  b, strong {
    font-weight: bolder;
  }

  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }

  small {
    font-size: 80%;
  }

  sub, sup {
    vertical-align: baseline;
    font-size: 75%;
    line-height: 0;
    position: relative;
  }

  sub {
    bottom: -.25em;
  }

  sup {
    top: -.5em;
  }

  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }

  :-moz-focusring {
    outline: auto;
  }

  progress {
    vertical-align: baseline;
  }

  summary {
    display: list-item;
  }

  ol, ul, menu {
    list-style: none;
  }

  img, svg, video, canvas, audio, iframe, embed, object {
    vertical-align: middle;
    display: block;
  }

  img, video {
    max-width: 100%;
    height: auto;
  }

  button, input, select, optgroup, textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }

  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }

  ::file-selector-button {
    margin-inline-end: 4px;
  }

  ::placeholder {
    opacity: 1;
  }

  @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentColor;
    }

    @supports (color: color-mix(in lab, red, red)) {
      ::placeholder {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }

  textarea {
    resize: vertical;
  }

  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }

  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }

  ::-webkit-datetime-edit {
    display: inline-flex;
  }

  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }

  ::-webkit-datetime-edit {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-year-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-month-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-day-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-hour-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-minute-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-second-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-millisecond-field {
    padding-block: 0;
  }

  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }

  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }

  :-moz-ui-invalid {
    box-shadow: none;
  }

  button, input:where([type="button"], [type="reset"], [type="submit"]) {
    appearance: button;
  }

  ::file-selector-button {
    appearance: button;
  }

  ::-webkit-inner-spin-button {
    height: auto;
  }

  ::-webkit-outer-spin-button {
    height: auto;
  }

  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }

  * {
    border-color: var(--border);
    outline-color: var(--ring);
  }

  @supports (color: color-mix(in lab, red, red)) {
    * {
      outline-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
  }

  body {
    background-color: var(--background);
    color: var(--foreground);
  }
}

@layer components;

@layer utilities {
  .\@container\/card-header {
    container: card-header / inline-size;
  }

  .pointer-events-auto {
    pointer-events: auto;
  }

  .pointer-events-none {
    pointer-events: none;
  }

  .visible {
    visibility: visible;
  }

  .sr-only {
    clip-path: inset(50%);
    white-space: nowrap;
    border-width: 0;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    position: absolute;
    overflow: hidden;
  }

  .absolute {
    position: absolute;
  }

  .fixed {
    position: fixed;
  }

  .relative {
    position: relative;
  }

  .static {
    position: static;
  }

  .sticky {
    position: sticky;
  }

  .inset-0 {
    inset: calc(var(--spacing) * 0);
  }

  .start {
    inset-inline-start: var(--spacing);
  }

  .end {
    inset-inline-end: var(--spacing);
  }

  .top-0 {
    top: calc(var(--spacing) * 0);
  }

  .top-1 {
    top: calc(var(--spacing) * 1);
  }

  .top-1\/2 {
    top: 50%;
  }

  .top-2 {
    top: calc(var(--spacing) * 2);
  }

  .top-4 {
    top: calc(var(--spacing) * 4);
  }

  .top-\[50\%\] {
    top: 50%;
  }

  .right-0 {
    right: calc(var(--spacing) * 0);
  }

  .right-1 {
    right: calc(var(--spacing) * 1);
  }

  .right-2 {
    right: calc(var(--spacing) * 2);
  }

  .right-3 {
    right: calc(var(--spacing) * 3);
  }

  .right-4 {
    right: calc(var(--spacing) * 4);
  }

  .bottom-0 {
    bottom: calc(var(--spacing) * 0);
  }

  .bottom-4 {
    bottom: calc(var(--spacing) * 4);
  }

  .left-0 {
    left: calc(var(--spacing) * 0);
  }

  .left-3 {
    left: calc(var(--spacing) * 3);
  }

  .left-\[50\%\] {
    left: 50%;
  }

  .z-10 {
    z-index: 10;
  }

  .z-40 {
    z-index: 40;
  }

  .z-50 {
    z-index: 50;
  }

  .z-\[100\] {
    z-index: 100;
  }

  .col-span-1 {
    grid-column: span 1 / span 1;
  }

  .col-span-2 {
    grid-column: span 2 / span 2;
  }

  .col-span-3 {
    grid-column: span 3 / span 3;
  }

  .col-start-2 {
    grid-column-start: 2;
  }

  .row-span-2 {
    grid-row: span 2 / span 2;
  }

  .row-start-1 {
    grid-row-start: 1;
  }

  .container {
    width: 100%;
  }

  @media (min-width: 40rem) {
    .container {
      max-width: 40rem;
    }
  }

  @media (min-width: 48rem) {
    .container {
      max-width: 48rem;
    }
  }

  @media (min-width: 64rem) {
    .container {
      max-width: 64rem;
    }
  }

  @media (min-width: 80rem) {
    .container {
      max-width: 80rem;
    }
  }

  @media (min-width: 96rem) {
    .container {
      max-width: 96rem;
    }
  }

  .m-0 {
    margin: calc(var(--spacing) * 0);
  }

  .container {
    margin-inline: auto;
    padding-inline: 1rem;
  }

  @media (min-width: 40rem) {
    .container {
      padding-inline: 2rem;
    }
  }

  .-mx-1 {
    margin-inline: calc(var(--spacing) * -1);
  }

  .-mx-6 {
    margin-inline: calc(var(--spacing) * -6);
  }

  .mx-auto {
    margin-inline: auto;
  }

  .my-1 {
    margin-block: calc(var(--spacing) * 1);
  }

  .-mt-2 {
    margin-top: calc(var(--spacing) * -2);
  }

  .mt-0\.5 {
    margin-top: calc(var(--spacing) * .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);
  }

  .mt-6 {
    margin-top: calc(var(--spacing) * 6);
  }

  .mr-1 {
    margin-right: calc(var(--spacing) * 1);
  }

  .mr-1\.5 {
    margin-right: calc(var(--spacing) * 1.5);
  }

  .mr-2 {
    margin-right: calc(var(--spacing) * 2);
  }

  .mb-0\.5 {
    margin-bottom: calc(var(--spacing) * .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-5 {
    margin-bottom: calc(var(--spacing) * 5);
  }

  .mb-6 {
    margin-bottom: calc(var(--spacing) * 6);
  }

  .mb-8 {
    margin-bottom: calc(var(--spacing) * 8);
  }

  .ml-0\.5 {
    margin-left: calc(var(--spacing) * .5);
  }

  .ml-1 {
    margin-left: calc(var(--spacing) * 1);
  }

  .ml-2 {
    margin-left: calc(var(--spacing) * 2);
  }

  .ml-4 {
    margin-left: calc(var(--spacing) * 4);
  }

  .ml-auto {
    margin-left: auto;
  }

  .line-clamp-2 {
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden;
  }

  .block {
    display: block;
  }

  .flex {
    display: flex;
  }

  .grid {
    display: grid;
  }

  .hidden {
    display: none;
  }

  .inline {
    display: inline;
  }

  .inline-block {
    display: inline-block;
  }

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

  .table {
    display: table;
  }

  .table-caption {
    display: table-caption;
  }

  .table-cell {
    display: table-cell;
  }

  .table-row {
    display: table-row;
  }

  .field-sizing-content {
    field-sizing: content;
  }

  .size-3\.5 {
    width: calc(var(--spacing) * 3.5);
    height: calc(var(--spacing) * 3.5);
  }

  .size-4 {
    width: calc(var(--spacing) * 4);
    height: calc(var(--spacing) * 4);
  }

  .size-6 {
    width: calc(var(--spacing) * 6);
    height: calc(var(--spacing) * 6);
  }

  .size-8 {
    width: calc(var(--spacing) * 8);
    height: calc(var(--spacing) * 8);
  }

  .size-9 {
    width: calc(var(--spacing) * 9);
    height: calc(var(--spacing) * 9);
  }

  .size-10 {
    width: calc(var(--spacing) * 10);
    height: calc(var(--spacing) * 10);
  }

  .h-1 {
    height: calc(var(--spacing) * 1);
  }

  .h-1\.5 {
    height: calc(var(--spacing) * 1.5);
  }

  .h-2\.5 {
    height: calc(var(--spacing) * 2.5);
  }

  .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-7 {
    height: calc(var(--spacing) * 7);
  }

  .h-8 {
    height: calc(var(--spacing) * 8);
  }

  .h-9 {
    height: calc(var(--spacing) * 9);
  }

  .h-10 {
    height: calc(var(--spacing) * 10);
  }

  .h-11 {
    height: calc(var(--spacing) * 11);
  }

  .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-64 {
    height: calc(var(--spacing) * 64);
  }

  .h-\[calc\(100\%-1px\)\] {
    height: calc(100% - 1px);
  }

  .h-\[var\(--radix-select-trigger-height\)\] {
    height: var(--radix-select-trigger-height);
  }

  .h-full {
    height: 100%;
  }

  .h-px {
    height: 1px;
  }

  .h-screen {
    height: 100vh;
  }

  .max-h-\(--radix-select-content-available-height\) {
    max-height: var(--radix-select-content-available-height);
  }

  .max-h-48 {
    max-height: calc(var(--spacing) * 48);
  }

  .max-h-64 {
    max-height: calc(var(--spacing) * 64);
  }

  .max-h-96 {
    max-height: calc(var(--spacing) * 96);
  }

  .max-h-\[60vh\] {
    max-height: 60vh;
  }

  .max-h-\[80vh\] {
    max-height: 80vh;
  }

  .max-h-\[85vh\] {
    max-height: 85vh;
  }

  .max-h-\[90vh\] {
    max-height: 90vh;
  }

  .max-h-\[400px\] {
    max-height: 400px;
  }

  .max-h-\[500px\] {
    max-height: 500px;
  }

  .max-h-\[calc\(90vh-200px\)\] {
    max-height: calc(90vh - 200px);
  }

  .max-h-screen {
    max-height: 100vh;
  }

  .min-h-16 {
    min-height: calc(var(--spacing) * 16);
  }

  .min-h-20 {
    min-height: calc(var(--spacing) * 20);
  }

  .min-h-\[60vh\] {
    min-height: 60vh;
  }

  .min-h-\[70vh\] {
    min-height: 70vh;
  }

  .min-h-\[200px\] {
    min-height: 200px;
  }

  .min-h-screen {
    min-height: 100vh;
  }

  .w-1\/2 {
    width: 50%;
  }

  .w-2\.5 {
    width: calc(var(--spacing) * 2.5);
  }

  .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-7 {
    width: calc(var(--spacing) * 7);
  }

  .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-20 {
    width: calc(var(--spacing) * 20);
  }

  .w-24 {
    width: calc(var(--spacing) * 24);
  }

  .w-32 {
    width: calc(var(--spacing) * 32);
  }

  .w-40 {
    width: calc(var(--spacing) * 40);
  }

  .w-48 {
    width: calc(var(--spacing) * 48);
  }

  .w-60 {
    width: calc(var(--spacing) * 60);
  }

  .w-64 {
    width: calc(var(--spacing) * 64);
  }

  .w-\[180px\] {
    width: 180px;
  }

  .w-\[200px\] {
    width: 200px;
  }

  .w-fit {
    width: fit-content;
  }

  .w-full {
    width: 100%;
  }

  .max-w-2xl {
    max-width: var(--container-2xl);
  }

  .max-w-3xl {
    max-width: var(--container-3xl);
  }

  .max-w-4xl {
    max-width: var(--container-4xl);
  }

  .max-w-5xl {
    max-width: var(--container-5xl);
  }

  .max-w-6xl {
    max-width: var(--container-6xl);
  }

  .max-w-7xl {
    max-width: var(--container-7xl);
  }

  .max-w-\[120px\] {
    max-width: 120px;
  }

  .max-w-\[380px\] {
    max-width: 380px;
  }

  .max-w-\[1600px\] {
    max-width: 1600px;
  }

  .max-w-\[1800px\] {
    max-width: 1800px;
  }

  .max-w-\[calc\(100\%-2rem\)\] {
    max-width: calc(100% - 2rem);
  }

  .max-w-lg {
    max-width: var(--container-lg);
  }

  .max-w-md {
    max-width: var(--container-md);
  }

  .max-w-sm {
    max-width: var(--container-sm);
  }

  .max-w-xs {
    max-width: var(--container-xs);
  }

  .min-w-0 {
    min-width: calc(var(--spacing) * 0);
  }

  .min-w-5 {
    min-width: calc(var(--spacing) * 5);
  }

  .min-w-\[8rem\] {
    min-width: 8rem;
  }

  .min-w-\[32px\] {
    min-width: 32px;
  }

  .min-w-\[var\(--radix-select-trigger-width\)\] {
    min-width: var(--radix-select-trigger-width);
  }

  .flex-1 {
    flex: 1;
  }

  .flex-shrink-0, .shrink-0 {
    flex-shrink: 0;
  }

  .caption-bottom {
    caption-side: bottom;
  }

  .origin-\(--radix-select-content-transform-origin\) {
    transform-origin: var(--radix-select-content-transform-origin);
  }

  .-translate-x-full {
    --tw-translate-x: -100%;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .translate-x-0 {
    --tw-translate-x: calc(var(--spacing) * 0);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .translate-x-\[-50\%\] {
    --tw-translate-x: -50%;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .-translate-y-1\/2 {
    --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .translate-y-\[-50\%\] {
    --tw-translate-y: -50%;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .animate-spin {
    animation: var(--animate-spin);
  }

  .cursor-default {
    cursor: default;
  }

  .cursor-grab {
    cursor: grab;
  }

  .cursor-not-allowed {
    cursor: not-allowed;
  }

  .cursor-pointer {
    cursor: pointer;
  }

  .scroll-my-1 {
    scroll-margin-block: calc(var(--spacing) * 1);
  }

  .list-inside {
    list-style-position: inside;
  }

  .list-disc {
    list-style-type: disc;
  }

  .auto-rows-min {
    grid-auto-rows: min-content;
  }

  .grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .grid-cols-4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .grid-rows-\[auto_auto\] {
    grid-template-rows: auto auto;
  }

  .flex-col {
    flex-direction: column;
  }

  .flex-col-reverse {
    flex-direction: column-reverse;
  }

  .flex-row {
    flex-direction: row;
  }

  .flex-wrap {
    flex-wrap: wrap;
  }

  .items-center {
    align-items: center;
  }

  .items-end {
    align-items: flex-end;
  }

  .items-start {
    align-items: flex-start;
  }

  .justify-around {
    justify-content: space-around;
  }

  .justify-between {
    justify-content: space-between;
  }

  .justify-center {
    justify-content: center;
  }

  .justify-end {
    justify-content: flex-end;
  }

  .gap-0\.5 {
    gap: calc(var(--spacing) * .5);
  }

  .gap-1 {
    gap: calc(var(--spacing) * 1);
  }

  .gap-1\.5 {
    gap: calc(var(--spacing) * 1.5);
  }

  .gap-2 {
    gap: calc(var(--spacing) * 2);
  }

  .gap-2\.5 {
    gap: calc(var(--spacing) * 2.5);
  }

  .gap-3 {
    gap: calc(var(--spacing) * 3);
  }

  .gap-4 {
    gap: calc(var(--spacing) * 4);
  }

  .gap-6 {
    gap: calc(var(--spacing) * 6);
  }

  :where(.space-y-0\.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-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-1\.5 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 1.5) * 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-2\.5 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 2.5) * 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)));
  }

  :where(.space-y-8 > :not(:last-child)) {
    --tw-space-y-reverse: 0;
    margin-block-start: calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));
    margin-block-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)));
  }

  :where(.space-x-2 > :not(:last-child)) {
    --tw-space-x-reverse: 0;
    margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));
    margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));
  }

  :where(.divide-y > :not(:last-child)) {
    --tw-divide-y-reverse: 0;
    border-bottom-style: var(--tw-border-style);
    border-top-style: var(--tw-border-style);
    border-top-width: calc(1px * var(--tw-divide-y-reverse));
    border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  }

  .self-start {
    align-self: flex-start;
  }

  .justify-self-end {
    justify-self: flex-end;
  }

  .truncate {
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }

  .overflow-auto {
    overflow: auto;
  }

  .overflow-hidden {
    overflow: hidden;
  }

  .overflow-x-auto {
    overflow-x: auto;
  }

  .overflow-x-hidden {
    overflow-x: hidden;
  }

  .overflow-y-auto {
    overflow-y: auto;
  }

  .rounded {
    border-radius: .25rem;
  }

  .rounded-2xl {
    border-radius: var(--radius-2xl);
  }

  .rounded-\[14px\] {
    border-radius: 14px;
  }

  .rounded-full {
    border-radius: 3.40282e38px;
  }

  .rounded-lg {
    border-radius: var(--radius);
  }

  .rounded-md {
    border-radius: calc(var(--radius) - 2px);
  }

  .rounded-sm {
    border-radius: calc(var(--radius) - 4px);
  }

  .rounded-xl {
    border-radius: calc(var(--radius) + 4px);
  }

  .rounded-xs {
    border-radius: var(--radius-xs);
  }

  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }

  .border-0 {
    border-style: var(--tw-border-style);
    border-width: 0;
  }

  .border-2 {
    border-style: var(--tw-border-style);
    border-width: 2px;
  }

  .border-4 {
    border-style: var(--tw-border-style);
    border-width: 4px;
  }

  .border-t {
    border-top-style: var(--tw-border-style);
    border-top-width: 1px;
  }

  .border-t-2 {
    border-top-style: var(--tw-border-style);
    border-top-width: 2px;
  }

  .border-r {
    border-right-style: var(--tw-border-style);
    border-right-width: 1px;
  }

  .border-b {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }

  .border-b-2 {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 2px;
  }

  .border-dashed {
    --tw-border-style: dashed;
    border-style: dashed;
  }

  .\[border-color\:oklch\(0\.58_0\.185_248_\/_30\%\)\] {
    border-color: oklch(58% .185 248 / .3);
  }

  .\[border-color\:var\(--stock-low-border\)\] {
    border-color: var(--stock-low-border);
  }

  .\[border-color\:var\(--stock-ok-border\)\] {
    border-color: var(--stock-ok-border);
  }

  .\[border-color\:var\(--stock-out-border\)\] {
    border-color: var(--stock-out-border);
  }

  .border-\[--stock-low-border\] {
    border-color: --stock-low-border;
  }

  .border-\[--stock-ok-border\] {
    border-color: --stock-ok-border;
  }

  .border-\[--stock-out-border\] {
    border-color: --stock-out-border;
  }

  .border-\[oklch\(0\.58_0\.185_248_\/_30\%\)\] {
    border-color: oklch(58% .185 248 / .3);
  }

  .border-blue-200 {
    border-color: var(--color-blue-200);
  }

  .border-blue-500\/20 {
    border-color: #3080ff33;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-blue-500\/20 {
      border-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent);
    }
  }

  .border-blue-500\/30 {
    border-color: #3080ff4d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-blue-500\/30 {
      border-color: color-mix(in oklab, var(--color-blue-500) 30%, transparent);
    }
  }

  .border-border, .border-border\/20 {
    border-color: var(--border);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-border\/20 {
      border-color: color-mix(in oklab, var(--border) 20%, transparent);
    }
  }

  .border-border\/40 {
    border-color: var(--border);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-border\/40 {
      border-color: color-mix(in oklab, var(--border) 40%, transparent);
    }
  }

  .border-border\/50 {
    border-color: var(--border);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-border\/50 {
      border-color: color-mix(in oklab, var(--border) 50%, transparent);
    }
  }

  .border-border\/60 {
    border-color: var(--border);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-border\/60 {
      border-color: color-mix(in oklab, var(--border) 60%, transparent);
    }
  }

  .border-border\/80 {
    border-color: var(--border);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-border\/80 {
      border-color: color-mix(in oklab, var(--border) 80%, transparent);
    }
  }

  .border-destructive, .border-destructive\/20 {
    border-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-destructive\/20 {
      border-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }

  .border-destructive\/50 {
    border-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-destructive\/50 {
      border-color: color-mix(in oklab, var(--destructive) 50%, transparent);
    }
  }

  .border-emerald-500\/20 {
    border-color: #00bb7f33;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-emerald-500\/20 {
      border-color: color-mix(in oklab, var(--color-emerald-500) 20%, transparent);
    }
  }

  .border-gray-300 {
    border-color: var(--color-gray-300);
  }

  .border-green-500\/20 {
    border-color: #00c75833;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-green-500\/20 {
      border-color: color-mix(in oklab, var(--color-green-500) 20%, transparent);
    }
  }

  .border-green-500\/40 {
    border-color: #00c75866;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-green-500\/40 {
      border-color: color-mix(in oklab, var(--color-green-500) 40%, transparent);
    }
  }

  .border-green-500\/50 {
    border-color: #00c75880;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-green-500\/50 {
      border-color: color-mix(in oklab, var(--color-green-500) 50%, transparent);
    }
  }

  .border-input {
    border-color: var(--input);
  }

  .border-orange-200 {
    border-color: var(--color-orange-200);
  }

  .border-orange-300 {
    border-color: var(--color-orange-300);
  }

  .border-orange-500\/20 {
    border-color: #fe6e0033;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-orange-500\/20 {
      border-color: color-mix(in oklab, var(--color-orange-500) 20%, transparent);
    }
  }

  .border-orange-500\/30 {
    border-color: #fe6e004d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-orange-500\/30 {
      border-color: color-mix(in oklab, var(--color-orange-500) 30%, transparent);
    }
  }

  .border-orange-500\/40 {
    border-color: #fe6e0066;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-orange-500\/40 {
      border-color: color-mix(in oklab, var(--color-orange-500) 40%, transparent);
    }
  }

  .border-orange-500\/50 {
    border-color: #fe6e0080;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-orange-500\/50 {
      border-color: color-mix(in oklab, var(--color-orange-500) 50%, transparent);
    }
  }

  .border-primary {
    border-color: var(--primary);
  }

  .border-primary-foreground\/30 {
    border-color: var(--primary-foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-primary-foreground\/30 {
      border-color: color-mix(in oklab, var(--primary-foreground) 30%, transparent);
    }
  }

  .border-primary\/15 {
    border-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-primary\/15 {
      border-color: color-mix(in oklab, var(--primary) 15%, transparent);
    }
  }

  .border-primary\/20 {
    border-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-primary\/20 {
      border-color: color-mix(in oklab, var(--primary) 20%, transparent);
    }
  }

  .border-primary\/30 {
    border-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-primary\/30 {
      border-color: color-mix(in oklab, var(--primary) 30%, transparent);
    }
  }

  .border-purple-500\/30 {
    border-color: #ac4bff4d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-purple-500\/30 {
      border-color: color-mix(in oklab, var(--color-purple-500) 30%, transparent);
    }
  }

  .border-red-200 {
    border-color: var(--color-red-200);
  }

  .border-red-300 {
    border-color: var(--color-red-300);
  }

  .border-red-500 {
    border-color: var(--color-red-500);
  }

  .border-red-500\/20 {
    border-color: #fb2c3633;
  }

  @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: #0000;
  }

  .border-white\/5 {
    border-color: #ffffff0d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-white\/5 {
      border-color: color-mix(in oklab, var(--color-white) 5%, transparent);
    }
  }

  .border-white\/30 {
    border-color: #ffffff4d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-white\/30 {
      border-color: color-mix(in oklab, var(--color-white) 30%, transparent);
    }
  }

  .border-yellow-200 {
    border-color: var(--color-yellow-200);
  }

  .border-yellow-300 {
    border-color: var(--color-yellow-300);
  }

  .border-yellow-500 {
    border-color: var(--color-yellow-500);
  }

  .border-yellow-500\/20 {
    border-color: #edb20033;
  }

  @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: #edb2004d;
  }

  @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\/50 {
    border-color: #edb20080;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .border-yellow-500\/50 {
      border-color: color-mix(in oklab, var(--color-yellow-500) 50%, transparent);
    }
  }

  .border-t-primary {
    border-top-color: var(--primary);
  }

  .border-t-primary-foreground {
    border-top-color: var(--primary-foreground);
  }

  .border-t-transparent {
    border-top-color: #0000;
  }

  .border-t-white {
    border-top-color: var(--color-white);
  }

  .bg-\[oklch\(0\.14_0\.008_240\)\] {
    background-color: oklch(14% .008 240);
  }

  .bg-accent\/50 {
    background-color: var(--accent);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-accent\/50 {
      background-color: color-mix(in oklab, var(--accent) 50%, transparent);
    }
  }

  .bg-amber-500\/10 {
    background-color: #f99c001a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-amber-500\/10 {
      background-color: color-mix(in oklab, var(--color-amber-500) 10%, transparent);
    }
  }

  .bg-background, .bg-background\/50 {
    background-color: var(--background);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-background\/50 {
      background-color: color-mix(in oklab, var(--background) 50%, transparent);
    }
  }

  .bg-background\/60 {
    background-color: var(--background);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-background\/60 {
      background-color: color-mix(in oklab, var(--background) 60%, transparent);
    }
  }

  .bg-black\/50 {
    background-color: #00000080;
  }

  @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: #0009;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-black\/60 {
      background-color: color-mix(in oklab, var(--color-black) 60%, transparent);
    }
  }

  .bg-blue-50 {
    background-color: var(--color-blue-50);
  }

  .bg-blue-500 {
    background-color: var(--color-blue-500);
  }

  .bg-blue-500\/10 {
    background-color: #3080ff1a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-blue-500\/10 {
      background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);
    }
  }

  .bg-blue-500\/15 {
    background-color: #3080ff26;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-blue-500\/15 {
      background-color: color-mix(in oklab, var(--color-blue-500) 15%, transparent);
    }
  }

  .bg-blue-500\/20 {
    background-color: #3080ff33;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-blue-500\/20 {
      background-color: color-mix(in oklab, var(--color-blue-500) 20%, transparent);
    }
  }

  .bg-blue-600 {
    background-color: var(--color-blue-600);
  }

  .bg-border, .bg-border\/50 {
    background-color: var(--border);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-border\/50 {
      background-color: color-mix(in oklab, var(--border) 50%, transparent);
    }
  }

  .bg-card, .bg-card\/50 {
    background-color: var(--card);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-card\/50 {
      background-color: color-mix(in oklab, var(--card) 50%, transparent);
    }
  }

  .bg-destructive, .bg-destructive\/5 {
    background-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-destructive\/5 {
      background-color: color-mix(in oklab, var(--destructive) 5%, transparent);
    }
  }

  .bg-destructive\/10 {
    background-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-destructive\/10 {
      background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
    }
  }

  .bg-destructive\/15 {
    background-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-destructive\/15 {
      background-color: color-mix(in oklab, var(--destructive) 15%, transparent);
    }
  }

  .bg-emerald-500\/10 {
    background-color: #00bb7f1a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-emerald-500\/10 {
      background-color: color-mix(in oklab, var(--color-emerald-500) 10%, transparent);
    }
  }

  .bg-emerald-500\/15 {
    background-color: #00bb7f26;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-emerald-500\/15 {
      background-color: color-mix(in oklab, var(--color-emerald-500) 15%, transparent);
    }
  }

  .bg-gray-400 {
    background-color: var(--color-gray-400);
  }

  .bg-gray-500 {
    background-color: var(--color-gray-500);
  }

  .bg-green-50 {
    background-color: var(--color-green-50);
  }

  .bg-green-500 {
    background-color: var(--color-green-500);
  }

  .bg-green-500\/10 {
    background-color: #00c7581a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-green-500\/10 {
      background-color: color-mix(in oklab, var(--color-green-500) 10%, transparent);
    }
  }

  .bg-green-500\/20 {
    background-color: #00c75833;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-green-500\/20 {
      background-color: color-mix(in oklab, var(--color-green-500) 20%, transparent);
    }
  }

  .bg-green-600 {
    background-color: var(--color-green-600);
  }

  .bg-muted, .bg-muted\/20 {
    background-color: var(--muted);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-muted\/20 {
      background-color: color-mix(in oklab, var(--muted) 20%, transparent);
    }
  }

  .bg-muted\/30 {
    background-color: var(--muted);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-muted\/30 {
      background-color: color-mix(in oklab, var(--muted) 30%, transparent);
    }
  }

  .bg-muted\/50 {
    background-color: var(--muted);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-muted\/50 {
      background-color: color-mix(in oklab, var(--muted) 50%, transparent);
    }
  }

  .bg-muted\/60 {
    background-color: var(--muted);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-muted\/60 {
      background-color: color-mix(in oklab, var(--muted) 60%, transparent);
    }
  }

  .bg-orange-50 {
    background-color: var(--color-orange-50);
  }

  .bg-orange-500 {
    background-color: var(--color-orange-500);
  }

  .bg-orange-500\/5 {
    background-color: #fe6e000d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-orange-500\/5 {
      background-color: color-mix(in oklab, var(--color-orange-500) 5%, transparent);
    }
  }

  .bg-orange-500\/10 {
    background-color: #fe6e001a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-orange-500\/10 {
      background-color: color-mix(in oklab, var(--color-orange-500) 10%, transparent);
    }
  }

  .bg-orange-500\/15 {
    background-color: #fe6e0026;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-orange-500\/15 {
      background-color: color-mix(in oklab, var(--color-orange-500) 15%, transparent);
    }
  }

  .bg-orange-600 {
    background-color: var(--color-orange-600);
  }

  .bg-popover {
    background-color: var(--popover);
  }

  .bg-primary, .bg-primary\/3 {
    background-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-primary\/3 {
      background-color: color-mix(in oklab, var(--primary) 3%, transparent);
    }
  }

  .bg-primary\/5 {
    background-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-primary\/5 {
      background-color: color-mix(in oklab, var(--primary) 5%, transparent);
    }
  }

  .bg-primary\/10 {
    background-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-primary\/10 {
      background-color: color-mix(in oklab, var(--primary) 10%, transparent);
    }
  }

  .bg-primary\/15 {
    background-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-primary\/15 {
      background-color: color-mix(in oklab, var(--primary) 15%, transparent);
    }
  }

  .bg-primary\/20 {
    background-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-primary\/20 {
      background-color: color-mix(in oklab, var(--primary) 20%, transparent);
    }
  }

  .bg-purple-500 {
    background-color: var(--color-purple-500);
  }

  .bg-purple-500\/10 {
    background-color: #ac4bff1a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-purple-500\/10 {
      background-color: color-mix(in oklab, var(--color-purple-500) 10%, transparent);
    }
  }

  .bg-purple-500\/20 {
    background-color: #ac4bff33;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-purple-500\/20 {
      background-color: color-mix(in oklab, var(--color-purple-500) 20%, transparent);
    }
  }

  .bg-purple-600 {
    background-color: var(--color-purple-600);
  }

  .bg-red-50 {
    background-color: var(--color-red-50);
  }

  .bg-red-500 {
    background-color: var(--color-red-500);
  }

  .bg-red-500\/10 {
    background-color: #fb2c361a;
  }

  @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-red-500\/15 {
    background-color: #fb2c3626;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-red-500\/15 {
      background-color: color-mix(in oklab, var(--color-red-500) 15%, transparent);
    }
  }

  .bg-red-600 {
    background-color: var(--color-red-600);
  }

  .bg-red-700 {
    background-color: var(--color-red-700);
  }

  .bg-secondary {
    background-color: var(--secondary);
  }

  .bg-transparent {
    background-color: #0000;
  }

  .bg-violet-500\/10 {
    background-color: #8d54ff1a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-violet-500\/10 {
      background-color: color-mix(in oklab, var(--color-violet-500) 10%, transparent);
    }
  }

  .bg-white {
    background-color: var(--color-white);
  }

  .bg-white\/\[0\.06\] {
    background-color: #ffffff0f;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-white\/\[0\.06\] {
      background-color: color-mix(in oklab, var(--color-white) 6%, transparent);
    }
  }

  .bg-yellow-50 {
    background-color: var(--color-yellow-50);
  }

  .bg-yellow-500 {
    background-color: var(--color-yellow-500);
  }

  .bg-yellow-500\/5 {
    background-color: #edb2000d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .bg-yellow-500\/5 {
      background-color: color-mix(in oklab, var(--color-yellow-500) 5%, transparent);
    }
  }

  .bg-yellow-500\/10 {
    background-color: #edb2001a;
  }

  @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: #edb20033;
  }

  @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-yellow-600 {
    background-color: var(--color-yellow-600);
  }

  .bg-gradient-to-br {
    --tw-gradient-position: to bottom right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }

  .bg-gradient-to-r {
    --tw-gradient-position: to right in oklab;
    background-image: linear-gradient(var(--tw-gradient-stops));
  }

  .from-amber-500 {
    --tw-gradient-from: var(--color-amber-500);
    --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));
  }

  .from-background {
    --tw-gradient-from: var(--background);
    --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));
  }

  .from-foreground {
    --tw-gradient-from: var(--foreground);
    --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));
  }

  .from-primary {
    --tw-gradient-from: var(--primary);
    --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));
  }

  .from-primary\/5 {
    --tw-gradient-from: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-primary\/5 {
      --tw-gradient-from: color-mix(in oklab, var(--primary) 5%, transparent);
    }
  }

  .from-primary\/5 {
    --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));
  }

  .from-slate-900 {
    --tw-gradient-from: var(--color-slate-900);
    --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));
  }

  .from-yellow-500 {
    --tw-gradient-from: var(--color-yellow-500);
    --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));
  }

  .from-yellow-500\/10 {
    --tw-gradient-from: #edb2001a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .from-yellow-500\/10 {
      --tw-gradient-from: color-mix(in oklab, var(--color-yellow-500) 10%, transparent);
    }
  }

  .from-yellow-500\/10 {
    --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));
  }

  .via-purple-900 {
    --tw-gradient-via: var(--color-purple-900);
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }

  .via-transparent {
    --tw-gradient-via: transparent;
    --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
    --tw-gradient-stops: var(--tw-gradient-via-stops);
  }

  .to-muted {
    --tw-gradient-to: var(--muted);
    --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));
  }

  .to-muted-foreground {
    --tw-gradient-to: var(--muted-foreground);
    --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));
  }

  .to-orange-500 {
    --tw-gradient-to: var(--color-orange-500);
    --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));
  }

  .to-orange-500\/10 {
    --tw-gradient-to: #fe6e001a;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .to-orange-500\/10 {
      --tw-gradient-to: color-mix(in oklab, var(--color-orange-500) 10%, transparent);
    }
  }

  .to-orange-500\/10 {
    --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));
  }

  .to-primary\/80 {
    --tw-gradient-to: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .to-primary\/80 {
      --tw-gradient-to: color-mix(in oklab, var(--primary) 80%, transparent);
    }
  }

  .to-primary\/80 {
    --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));
  }

  .to-slate-900 {
    --tw-gradient-to: var(--color-slate-900);
    --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));
  }

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

  .bg-clip-text {
    -webkit-background-clip: text;
    background-clip: text;
  }

  .fill-current {
    fill: currentColor;
  }

  .p-0 {
    padding: calc(var(--spacing) * 0);
  }

  .p-1 {
    padding: calc(var(--spacing) * 1);
  }

  .p-1\.5 {
    padding: calc(var(--spacing) * 1.5);
  }

  .p-2 {
    padding: calc(var(--spacing) * 2);
  }

  .p-3 {
    padding: calc(var(--spacing) * 3);
  }

  .p-3\.5 {
    padding: calc(var(--spacing) * 3.5);
  }

  .p-4 {
    padding: calc(var(--spacing) * 4);
  }

  .p-5 {
    padding: calc(var(--spacing) * 5);
  }

  .p-6 {
    padding: calc(var(--spacing) * 6);
  }

  .p-8 {
    padding: calc(var(--spacing) * 8);
  }

  .p-12 {
    padding: calc(var(--spacing) * 12);
  }

  .p-\[3px\] {
    padding: 3px;
  }

  .px-1 {
    padding-inline: calc(var(--spacing) * 1);
  }

  .px-1\.5 {
    padding-inline: calc(var(--spacing) * 1.5);
  }

  .px-2 {
    padding-inline: calc(var(--spacing) * 2);
  }

  .px-2\.5 {
    padding-inline: calc(var(--spacing) * 2.5);
  }

  .px-3 {
    padding-inline: calc(var(--spacing) * 3);
  }

  .px-4 {
    padding-inline: calc(var(--spacing) * 4);
  }

  .px-6 {
    padding-inline: calc(var(--spacing) * 6);
  }

  .py-0 {
    padding-block: calc(var(--spacing) * 0);
  }

  .py-0\.5 {
    padding-block: calc(var(--spacing) * .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);
  }

  .py-6 {
    padding-block: calc(var(--spacing) * 6);
  }

  .py-8 {
    padding-block: calc(var(--spacing) * 8);
  }

  .py-12 {
    padding-block: calc(var(--spacing) * 12);
  }

  .py-16 {
    padding-block: calc(var(--spacing) * 16);
  }

  .pt-0 {
    padding-top: calc(var(--spacing) * 0);
  }

  .pt-1 {
    padding-top: calc(var(--spacing) * 1);
  }

  .pt-2 {
    padding-top: calc(var(--spacing) * 2);
  }

  .pt-3 {
    padding-top: calc(var(--spacing) * 3);
  }

  .pt-4 {
    padding-top: calc(var(--spacing) * 4);
  }

  .pt-6 {
    padding-top: calc(var(--spacing) * 6);
  }

  .pt-14 {
    padding-top: calc(var(--spacing) * 14);
  }

  .pr-1 {
    padding-right: calc(var(--spacing) * 1);
  }

  .pr-2 {
    padding-right: calc(var(--spacing) * 2);
  }

  .pr-6 {
    padding-right: calc(var(--spacing) * 6);
  }

  .pr-8 {
    padding-right: calc(var(--spacing) * 8);
  }

  .pr-9 {
    padding-right: calc(var(--spacing) * 9);
  }

  .pb-1\.5 {
    padding-bottom: calc(var(--spacing) * 1.5);
  }

  .pb-2 {
    padding-bottom: calc(var(--spacing) * 2);
  }

  .pb-3 {
    padding-bottom: calc(var(--spacing) * 3);
  }

  .pb-4 {
    padding-bottom: calc(var(--spacing) * 4);
  }

  .pb-16 {
    padding-bottom: calc(var(--spacing) * 16);
  }

  .pl-2 {
    padding-left: calc(var(--spacing) * 2);
  }

  .pl-9 {
    padding-left: calc(var(--spacing) * 9);
  }

  .text-center {
    text-align: center;
  }

  .text-left {
    text-align: left;
  }

  .text-right {
    text-align: right;
  }

  .align-middle {
    vertical-align: middle;
  }

  .font-mono {
    font-family: var(--font-mono);
  }

  .text-2xl {
    font-size: var(--text-2xl);
    line-height: var(--tw-leading, var(--text-2xl--line-height));
  }

  .text-3xl {
    font-size: var(--text-3xl);
    line-height: var(--tw-leading, var(--text-3xl--line-height));
  }

  .text-base {
    font-size: var(--text-base);
    line-height: var(--tw-leading, var(--text-base--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;
  }

  .leading-none {
    --tw-leading: 1;
    line-height: 1;
  }

  .leading-relaxed {
    --tw-leading: var(--leading-relaxed);
    line-height: var(--leading-relaxed);
  }

  .leading-snug {
    --tw-leading: var(--leading-snug);
    line-height: var(--leading-snug);
  }

  .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-normal {
    --tw-font-weight: var(--font-weight-normal);
    font-weight: var(--font-weight-normal);
  }

  .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-wide {
    --tw-tracking: var(--tracking-wide);
    letter-spacing: var(--tracking-wide);
  }

  .tracking-wider {
    --tw-tracking: var(--tracking-wider);
    letter-spacing: var(--tracking-wider);
  }

  .break-all {
    word-break: break-all;
  }

  .whitespace-nowrap {
    white-space: nowrap;
  }

  .whitespace-pre-wrap {
    white-space: pre-wrap;
  }

  .\[color\:var\(--info\)\] {
    color: var(--info);
  }

  .\[color\:var\(--primary\)\] {
    color: var(--primary);
  }

  .\[color\:var\(--stock-low\)\] {
    color: var(--stock-low);
  }

  .\[color\:var\(--stock-ok\)\] {
    color: var(--stock-ok);
  }

  .\[color\:var\(--stock-out\)\] {
    color: var(--stock-out);
  }

  .text-amber-400 {
    color: var(--color-amber-400);
  }

  .text-amber-500 {
    color: var(--color-amber-500);
  }

  .text-black {
    color: var(--color-black);
  }

  .text-blue-200 {
    color: var(--color-blue-200);
  }

  .text-blue-300 {
    color: var(--color-blue-300);
  }

  .text-blue-400 {
    color: var(--color-blue-400);
  }

  .text-blue-500 {
    color: var(--color-blue-500);
  }

  .text-blue-600 {
    color: var(--color-blue-600);
  }

  .text-blue-700 {
    color: var(--color-blue-700);
  }

  .text-blue-900 {
    color: var(--color-blue-900);
  }

  .text-card-foreground {
    color: var(--card-foreground);
  }

  .text-destructive {
    color: var(--destructive);
  }

  .text-emerald-400 {
    color: var(--color-emerald-400);
  }

  .text-emerald-500 {
    color: var(--color-emerald-500);
  }

  .text-foreground, .text-foreground\/50 {
    color: var(--foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-foreground\/50 {
      color: color-mix(in oklab, var(--foreground) 50%, transparent);
    }
  }

  .text-foreground\/60 {
    color: var(--foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-foreground\/60 {
      color: color-mix(in oklab, var(--foreground) 60%, transparent);
    }
  }

  .text-gray-600 {
    color: var(--color-gray-600);
  }

  .text-green-400 {
    color: var(--color-green-400);
  }

  .text-green-500 {
    color: var(--color-green-500);
  }

  .text-green-600 {
    color: var(--color-green-600);
  }

  .text-muted-foreground, .text-muted-foreground\/30 {
    color: var(--muted-foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-muted-foreground\/30 {
      color: color-mix(in oklab, var(--muted-foreground) 30%, transparent);
    }
  }

  .text-muted-foreground\/40 {
    color: var(--muted-foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-muted-foreground\/40 {
      color: color-mix(in oklab, var(--muted-foreground) 40%, transparent);
    }
  }

  .text-muted-foreground\/50 {
    color: var(--muted-foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-muted-foreground\/50 {
      color: color-mix(in oklab, var(--muted-foreground) 50%, transparent);
    }
  }

  .text-muted-foreground\/60 {
    color: var(--muted-foreground);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .text-muted-foreground\/60 {
      color: color-mix(in oklab, var(--muted-foreground) 60%, transparent);
    }
  }

  .text-orange-400 {
    color: var(--color-orange-400);
  }

  .text-orange-500 {
    color: var(--color-orange-500);
  }

  .text-orange-600 {
    color: var(--color-orange-600);
  }

  .text-orange-700 {
    color: var(--color-orange-700);
  }

  .text-orange-900 {
    color: var(--color-orange-900);
  }

  .text-popover-foreground {
    color: var(--popover-foreground);
  }

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

  .text-primary-foreground {
    color: var(--primary-foreground);
  }

  .text-purple-400 {
    color: var(--color-purple-400);
  }

  .text-purple-500 {
    color: var(--color-purple-500);
  }

  .text-purple-600 {
    color: var(--color-purple-600);
  }

  .text-red-400 {
    color: var(--color-red-400);
  }

  .text-red-500 {
    color: var(--color-red-500);
  }

  .text-red-600 {
    color: var(--color-red-600);
  }

  .text-red-700 {
    color: var(--color-red-700);
  }

  .text-red-900 {
    color: var(--color-red-900);
  }

  .text-secondary-foreground {
    color: var(--secondary-foreground);
  }

  .text-transparent {
    color: #0000;
  }

  .text-violet-400 {
    color: var(--color-violet-400);
  }

  .text-white {
    color: var(--color-white);
  }

  .text-yellow-300 {
    color: var(--color-yellow-300);
  }

  .text-yellow-400 {
    color: var(--color-yellow-400);
  }

  .text-yellow-500 {
    color: var(--color-yellow-500);
  }

  .text-yellow-600 {
    color: var(--color-yellow-600);
  }

  .text-yellow-700 {
    color: var(--color-yellow-700);
  }

  .text-yellow-900 {
    color: var(--color-yellow-900);
  }

  .capitalize {
    text-transform: capitalize;
  }

  .uppercase {
    text-transform: uppercase;
  }

  .italic {
    font-style: italic;
  }

  .line-through {
    text-decoration-line: line-through;
  }

  .underline-offset-4 {
    text-underline-offset: 4px;
  }

  .opacity-0 {
    opacity: 0;
  }

  .opacity-40 {
    opacity: .4;
  }

  .opacity-50 {
    opacity: .5;
  }

  .opacity-60 {
    opacity: .6;
  }

  .opacity-70 {
    opacity: .7;
  }

  .opacity-80 {
    opacity: .8;
  }

  .opacity-90 {
    opacity: .9;
  }

  .opacity-100 {
    opacity: 1;
  }

  .shadow {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-2xl {
    --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, #00000040);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-lg {
    --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-md {
    --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), 0 2px 4px -2px var(--tw-shadow-color, #0000001a);
    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, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-xl {
    --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, #0000001a), 0 8px 10px -6px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .shadow-xs {
    --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, #0000000d);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .ring, .ring-1 {
    --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);
  }

  .ring-primary\/30 {
    --tw-ring-color: var(--primary);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .ring-primary\/30 {
      --tw-ring-color: color-mix(in oklab, var(--primary) 30%, transparent);
    }
  }

  .ring-offset-background {
    --tw-ring-offset-color: var(--background);
  }

  .outline-hidden {
    --tw-outline-style: none;
    outline-style: none;
  }

  @media (forced-colors: active) {
    .outline-hidden {
      outline-offset: 2px;
      outline: 2px solid #0000;
    }
  }

  .outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }

  .blur-3xl {
    --tw-blur: blur(var(--blur-3xl));
    filter: var(--tw-blur,  ) var(--tw-brightness,  ) var(--tw-contrast,  ) var(--tw-grayscale,  ) var(--tw-hue-rotate,  ) var(--tw-invert,  ) var(--tw-saturate,  ) var(--tw-sepia,  ) var(--tw-drop-shadow,  );
  }

  .filter {
    filter: var(--tw-blur,  ) var(--tw-brightness,  ) var(--tw-contrast,  ) var(--tw-grayscale,  ) var(--tw-hue-rotate,  ) var(--tw-invert,  ) var(--tw-saturate,  ) var(--tw-sepia,  ) var(--tw-drop-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-\[color\,box-shadow\] {
    transition-property: color, box-shadow;
    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-150 {
    --tw-duration: .15s;
    transition-duration: .15s;
  }

  .duration-200 {
    --tw-duration: .2s;
    transition-duration: .2s;
  }

  .duration-250 {
    --tw-duration: .25s;
    transition-duration: .25s;
  }

  .\[transition-duration\:160ms\] {
    transition-duration: .16s;
  }

  .ease-out {
    --tw-ease: var(--ease-out);
    transition-timing-function: var(--ease-out);
  }

  .\[transition-timing-function\:ease\] {
    transition-timing-function: ease;
  }

  .outline-none {
    --tw-outline-style: none;
    outline-style: none;
  }

  .select-none {
    -webkit-user-select: none;
    user-select: none;
  }

  .\[background\:var\(--info-bg\)\] {
    background: var(--info-bg);
  }

  .\[background\:var\(--stock-low\)\] {
    background: var(--stock-low);
  }

  .\[background\:var\(--stock-low-bg\)\] {
    background: var(--stock-low-bg);
  }

  .\[background\:var\(--stock-ok\)\] {
    background: var(--stock-ok);
  }

  .\[background\:var\(--stock-ok-bg\)\] {
    background: var(--stock-ok-bg);
  }

  .\[background\:var\(--stock-out\)\] {
    background: var(--stock-out);
  }

  .\[background\:var\(--stock-out-bg\)\] {
    background: var(--stock-out-bg);
  }

  .running {
    animation-play-state: running;
  }

  @media (hover: hover) {
    .group-hover\:translate-x-0\.5:is(:where(.group):hover *) {
      --tw-translate-x: calc(var(--spacing) * .5);
      translate: var(--tw-translate-x) var(--tw-translate-y);
    }

    .group-hover\:bg-amber-500\/15:is(:where(.group):hover *) {
      background-color: #f99c0026;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .group-hover\:bg-amber-500\/15:is(:where(.group):hover *) {
        background-color: color-mix(in oklab, var(--color-amber-500) 15%, transparent);
      }
    }

    .group-hover\:bg-blue-500\/15:is(:where(.group):hover *) {
      background-color: #3080ff26;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .group-hover\:bg-blue-500\/15:is(:where(.group):hover *) {
        background-color: color-mix(in oklab, var(--color-blue-500) 15%, transparent);
      }
    }

    .group-hover\:bg-emerald-500\/15:is(:where(.group):hover *) {
      background-color: #00bb7f26;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .group-hover\:bg-emerald-500\/15:is(:where(.group):hover *) {
        background-color: color-mix(in oklab, var(--color-emerald-500) 15%, transparent);
      }
    }

    .group-hover\:bg-violet-500\/15:is(:where(.group):hover *) {
      background-color: #8d54ff26;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .group-hover\:bg-violet-500\/15:is(:where(.group):hover *) {
        background-color: color-mix(in oklab, var(--color-violet-500) 15%, transparent);
      }
    }

    .group-hover\:opacity-100:is(:where(.group):hover *) {
      opacity: 1;
    }

    .group-hover\/btn\:translate-x-0\.5:is(:where(.group\/btn):hover *) {
      --tw-translate-x: calc(var(--spacing) * .5);
      translate: var(--tw-translate-x) var(--tw-translate-y);
    }
  }

  .group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled="true"] *) {
    pointer-events: none;
  }

  .group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled="true"] *) {
    opacity: .5;
  }

  .group-data-\[orientation\=horizontal\]\/tabs\:h-9:is(:where(.group\/tabs)[data-orientation="horizontal"] *) {
    height: calc(var(--spacing) * 9);
  }

  .group-data-\[orientation\=vertical\]\/tabs\:h-fit:is(:where(.group\/tabs)[data-orientation="vertical"] *) {
    height: fit-content;
  }

  .group-data-\[orientation\=vertical\]\/tabs\:w-full:is(:where(.group\/tabs)[data-orientation="vertical"] *) {
    width: 100%;
  }

  .group-data-\[orientation\=vertical\]\/tabs\:flex-col:is(:where(.group\/tabs)[data-orientation="vertical"] *) {
    flex-direction: column;
  }

  .group-data-\[orientation\=vertical\]\/tabs\:justify-start:is(:where(.group\/tabs)[data-orientation="vertical"] *) {
    justify-content: flex-start;
  }

  .group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant="line"] *) {
    background-color: #0000;
  }

  .group-\[\.destructive\]\:border-muted\/40:is(:where(.group).destructive *) {
    border-color: var(--muted);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .group-\[\.destructive\]\:border-muted\/40:is(:where(.group).destructive *) {
      border-color: color-mix(in oklab, var(--muted) 40%, transparent);
    }
  }

  .group-\[\.destructive\]\:text-red-300:is(:where(.group).destructive *) {
    color: var(--color-red-300);
  }

  .peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled ~ *) {
    cursor: not-allowed;
  }

  .peer-disabled\:opacity-50:is(:where(.peer):disabled ~ *) {
    opacity: .5;
  }

  .selection\:bg-primary ::selection {
    background-color: var(--primary);
  }

  .selection\:bg-primary::selection {
    background-color: var(--primary);
  }

  .selection\:text-primary-foreground ::selection {
    color: var(--primary-foreground);
  }

  .selection\:text-primary-foreground::selection {
    color: var(--primary-foreground);
  }

  .file\:inline-flex::file-selector-button {
    display: inline-flex;
  }

  .file\:h-7::file-selector-button {
    height: calc(var(--spacing) * 7);
  }

  .file\:border-0::file-selector-button {
    border-style: var(--tw-border-style);
    border-width: 0;
  }

  .file\:bg-transparent::file-selector-button {
    background-color: #0000;
  }

  .file\:text-sm::file-selector-button {
    font-size: var(--text-sm);
    line-height: var(--tw-leading, var(--text-sm--line-height));
  }

  .file\:font-medium::file-selector-button {
    --tw-font-weight: var(--font-weight-medium);
    font-weight: var(--font-weight-medium);
  }

  .file\:text-foreground::file-selector-button {
    color: var(--foreground);
  }

  .placeholder\:text-muted-foreground::placeholder {
    color: var(--muted-foreground);
  }

  .after\:absolute:after {
    content: var(--tw-content);
    position: absolute;
  }

  .after\:bg-foreground:after {
    content: var(--tw-content);
    background-color: var(--foreground);
  }

  .after\:opacity-0:after {
    content: var(--tw-content);
    opacity: 0;
  }

  .after\:transition-opacity:after {
    content: var(--tw-content);
    transition-property: opacity;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }

  .group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0:is(:where(.group\/tabs)[data-orientation="horizontal"] *):after {
    content: var(--tw-content);
    inset-inline: calc(var(--spacing) * 0);
  }

  .group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs)[data-orientation="horizontal"] *):after {
    content: var(--tw-content);
    bottom: -5px;
  }

  .group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5:is(:where(.group\/tabs)[data-orientation="horizontal"] *):after {
    content: var(--tw-content);
    height: calc(var(--spacing) * .5);
  }

  .group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0:is(:where(.group\/tabs)[data-orientation="vertical"] *):after {
    content: var(--tw-content);
    inset-block: calc(var(--spacing) * 0);
  }

  .group-data-\[orientation\=vertical\]\/tabs\:after\:-right-1:is(:where(.group\/tabs)[data-orientation="vertical"] *):after {
    content: var(--tw-content);
    right: calc(var(--spacing) * -1);
  }

  .group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5:is(:where(.group\/tabs)[data-orientation="vertical"] *):after {
    content: var(--tw-content);
    width: calc(var(--spacing) * .5);
  }

  @media (hover: hover) {
    .hover\:-translate-y-0\.5:hover {
      --tw-translate-y: calc(var(--spacing) * -.5);
      translate: var(--tw-translate-x) var(--tw-translate-y);
    }

    .hover\:border-blue-500\/50:hover {
      border-color: #3080ff80;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-blue-500\/50:hover {
        border-color: color-mix(in oklab, var(--color-blue-500) 50%, transparent);
      }
    }

    .hover\:border-border:hover, .hover\:border-border\/40:hover {
      border-color: var(--border);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-border\/40:hover {
        border-color: color-mix(in oklab, var(--border) 40%, transparent);
      }
    }

    .hover\:border-emerald-500\/50:hover {
      border-color: #00bb7f80;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-emerald-500\/50:hover {
        border-color: color-mix(in oklab, var(--color-emerald-500) 50%, transparent);
      }
    }

    .hover\:border-green-500\/50:hover {
      border-color: #00c75880;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-green-500\/50:hover {
        border-color: color-mix(in oklab, var(--color-green-500) 50%, transparent);
      }
    }

    .hover\:border-orange-500\/50:hover {
      border-color: #fe6e0080;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-orange-500\/50:hover {
        border-color: color-mix(in oklab, var(--color-orange-500) 50%, transparent);
      }
    }

    .hover\:border-primary\/50:hover {
      border-color: var(--primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-primary\/50:hover {
        border-color: color-mix(in oklab, var(--primary) 50%, transparent);
      }
    }

    .hover\:border-primary\/60:hover {
      border-color: var(--primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-primary\/60:hover {
        border-color: color-mix(in oklab, var(--primary) 60%, transparent);
      }
    }

    .hover\:border-purple-500\/50:hover {
      border-color: #ac4bff80;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-purple-500\/50:hover {
        border-color: color-mix(in oklab, var(--color-purple-500) 50%, transparent);
      }
    }

    .hover\:border-red-500\/50:hover {
      border-color: #fb2c3680;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-red-500\/50:hover {
        border-color: color-mix(in oklab, var(--color-red-500) 50%, transparent);
      }
    }

    .hover\:border-yellow-500\/50:hover {
      border-color: #edb20080;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:border-yellow-500\/50:hover {
        border-color: color-mix(in oklab, var(--color-yellow-500) 50%, transparent);
      }
    }

    .hover\:bg-accent:hover {
      background-color: var(--accent);
    }

    .hover\:bg-blue-500\/10:hover {
      background-color: #3080ff1a;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-blue-500\/10:hover {
        background-color: color-mix(in oklab, var(--color-blue-500) 10%, transparent);
      }
    }

    .hover\:bg-destructive\/10:hover {
      background-color: var(--destructive);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-destructive\/10:hover {
        background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
      }
    }

    .hover\:bg-destructive\/15:hover {
      background-color: var(--destructive);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-destructive\/15:hover {
        background-color: color-mix(in oklab, var(--destructive) 15%, transparent);
      }
    }

    .hover\:bg-destructive\/90:hover {
      background-color: var(--destructive);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-destructive\/90:hover {
        background-color: color-mix(in oklab, var(--destructive) 90%, transparent);
      }
    }

    .hover\:bg-emerald-500\/15:hover {
      background-color: #00bb7f26;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-emerald-500\/15:hover {
        background-color: color-mix(in oklab, var(--color-emerald-500) 15%, transparent);
      }
    }

    .hover\:bg-emerald-500\/25:hover {
      background-color: #00bb7f40;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-emerald-500\/25:hover {
        background-color: color-mix(in oklab, var(--color-emerald-500) 25%, transparent);
      }
    }

    .hover\:bg-green-500\/10:hover {
      background-color: #00c7581a;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-green-500\/10:hover {
        background-color: color-mix(in oklab, var(--color-green-500) 10%, transparent);
      }
    }

    .hover\:bg-green-700:hover {
      background-color: var(--color-green-700);
    }

    .hover\:bg-muted\/30:hover {
      background-color: var(--muted);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-muted\/30:hover {
        background-color: color-mix(in oklab, var(--muted) 30%, transparent);
      }
    }

    .hover\:bg-muted\/50:hover {
      background-color: var(--muted);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-muted\/50:hover {
        background-color: color-mix(in oklab, var(--muted) 50%, transparent);
      }
    }

    .hover\:bg-orange-100:hover {
      background-color: var(--color-orange-100);
    }

    .hover\:bg-orange-500\/10:hover {
      background-color: #fe6e001a;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-orange-500\/10:hover {
        background-color: color-mix(in oklab, var(--color-orange-500) 10%, transparent);
      }
    }

    .hover\:bg-orange-500\/25:hover {
      background-color: #fe6e0040;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-orange-500\/25:hover {
        background-color: color-mix(in oklab, var(--color-orange-500) 25%, transparent);
      }
    }

    .hover\:bg-primary\/10:hover {
      background-color: var(--primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-primary\/10:hover {
        background-color: color-mix(in oklab, var(--primary) 10%, transparent);
      }
    }

    .hover\:bg-primary\/90:hover {
      background-color: var(--primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-primary\/90:hover {
        background-color: color-mix(in oklab, var(--primary) 90%, transparent);
      }
    }

    .hover\:bg-purple-500\/10:hover {
      background-color: #ac4bff1a;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-purple-500\/10:hover {
        background-color: color-mix(in oklab, var(--color-purple-500) 10%, transparent);
      }
    }

    .hover\:bg-red-100:hover {
      background-color: var(--color-red-100);
    }

    .hover\:bg-red-500\/10:hover {
      background-color: #fb2c361a;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-red-500\/10:hover {
        background-color: color-mix(in oklab, var(--color-red-500) 10%, transparent);
      }
    }

    .hover\:bg-red-500\/25:hover {
      background-color: #fb2c3640;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-red-500\/25:hover {
        background-color: color-mix(in oklab, var(--color-red-500) 25%, transparent);
      }
    }

    .hover\:bg-secondary:hover, .hover\:bg-secondary\/80:hover {
      background-color: var(--secondary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-secondary\/80:hover {
        background-color: color-mix(in oklab, var(--secondary) 80%, transparent);
      }
    }

    .hover\:bg-white\/5:hover {
      background-color: #ffffff0d;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-white\/5:hover {
        background-color: color-mix(in oklab, var(--color-white) 5%, transparent);
      }
    }

    .hover\:bg-white\/10:hover {
      background-color: #ffffff1a;
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:bg-white\/10:hover {
        background-color: color-mix(in oklab, var(--color-white) 10%, transparent);
      }
    }

    .hover\:bg-yellow-100:hover {
      background-color: var(--color-yellow-100);
    }

    .hover\:from-amber-400:hover {
      --tw-gradient-from: var(--color-amber-400);
      --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));
    }

    .hover\:from-yellow-600:hover {
      --tw-gradient-from: var(--color-yellow-600);
      --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));
    }

    .hover\:to-orange-400:hover {
      --tw-gradient-to: var(--color-orange-400);
      --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));
    }

    .hover\:to-orange-600:hover {
      --tw-gradient-to: var(--color-orange-600);
      --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));
    }

    .hover\:text-accent-foreground:hover {
      color: var(--accent-foreground);
    }

    .hover\:text-blue-500:hover {
      color: var(--color-blue-500);
    }

    .hover\:text-destructive:hover {
      color: var(--destructive);
    }

    .hover\:text-emerald-400:hover {
      color: var(--color-emerald-400);
    }

    .hover\:text-foreground:hover {
      color: var(--foreground);
    }

    .hover\:text-green-500:hover {
      color: var(--color-green-500);
    }

    .hover\:text-primary:hover, .hover\:text-primary\/80:hover {
      color: var(--primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .hover\:text-primary\/80:hover {
        color: color-mix(in oklab, var(--primary) 80%, transparent);
      }
    }

    .hover\:text-purple-500:hover {
      color: var(--color-purple-500);
    }

    .hover\:text-red-500:hover {
      color: var(--color-red-500);
    }

    .hover\:underline:hover {
      text-decoration-line: underline;
    }

    .hover\:opacity-100:hover {
      opacity: 1;
    }

    .hover\:shadow-md:hover {
      --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, #0000001a), 0 2px 4px -2px var(--tw-shadow-color, #0000001a);
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }

    .hover\:shadow-xl:hover {
      --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, #0000001a), 0 8px 10px -6px var(--tw-shadow-color, #0000001a);
      box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
    }

    .group-\[\.destructive\]\:hover\:border-destructive\/30:is(:where(.group).destructive *):hover {
      border-color: var(--destructive);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .group-\[\.destructive\]\:hover\:border-destructive\/30:is(:where(.group).destructive *):hover {
        border-color: color-mix(in oklab, var(--destructive) 30%, transparent);
      }
    }

    .group-\[\.destructive\]\:hover\:bg-destructive:is(:where(.group).destructive *):hover {
      background-color: var(--destructive);
    }

    .group-\[\.destructive\]\:hover\:text-red-50:is(:where(.group).destructive *):hover {
      color: var(--color-red-50);
    }
  }

  .focus\:border-primary:focus {
    border-color: var(--primary);
  }

  .focus\:bg-accent:focus {
    background-color: var(--accent);
  }

  .focus\:text-accent-foreground:focus {
    color: var(--accent-foreground);
  }

  .focus\:opacity-100:focus {
    opacity: 1;
  }

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

  .focus\:ring-2:focus {
    --tw-ring-shadow: var(--tw-ring-inset,  ) 0 0 0 calc(2px + 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);
  }

  .focus\:ring-ring:focus {
    --tw-ring-color: var(--ring);
  }

  .focus\:ring-offset-2:focus {
    --tw-ring-offset-width: 2px;
    --tw-ring-offset-shadow: var(--tw-ring-inset,  ) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  }

  .focus\:outline-hidden:focus {
    --tw-outline-style: none;
    outline-style: none;
  }

  @media (forced-colors: active) {
    .focus\:outline-hidden:focus {
      outline-offset: 2px;
      outline: 2px solid #0000;
    }
  }

  .focus\:outline-none:focus {
    --tw-outline-style: none;
    outline-style: none;
  }

  .group-\[\.destructive\]\:focus\:ring-destructive:is(:where(.group).destructive *):focus {
    --tw-ring-color: var(--destructive);
  }

  .group-\[\.destructive\]\:focus\:ring-red-400:is(:where(.group).destructive *):focus {
    --tw-ring-color: var(--color-red-400);
  }

  .group-\[\.destructive\]\:focus\:ring-offset-red-600:is(:where(.group).destructive *):focus {
    --tw-ring-offset-color: var(--color-red-600);
  }

  .focus-visible\:border-ring:focus-visible {
    border-color: var(--ring);
  }

  .focus-visible\:ring-\[3px\]:focus-visible {
    --tw-ring-shadow: var(--tw-ring-inset,  ) 0 0 0 calc(3px + 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);
  }

  .focus-visible\:ring-destructive\/20:focus-visible {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus-visible\:ring-destructive\/20:focus-visible {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }

  .focus-visible\:ring-ring\/50:focus-visible {
    --tw-ring-color: var(--ring);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .focus-visible\:ring-ring\/50:focus-visible {
      --tw-ring-color: color-mix(in oklab, var(--ring) 50%, transparent);
    }
  }

  .focus-visible\:outline-1:focus-visible {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }

  .focus-visible\:outline-ring:focus-visible {
    outline-color: var(--ring);
  }

  .active\:cursor-grabbing:active {
    cursor: grabbing;
  }

  .disabled\:pointer-events-none:disabled {
    pointer-events: none;
  }

  .disabled\:cursor-not-allowed:disabled {
    cursor: not-allowed;
  }

  .disabled\:opacity-30:disabled {
    opacity: .3;
  }

  .disabled\:opacity-50:disabled {
    opacity: .5;
  }

  .has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot="card-action"]) {
    grid-template-columns: 1fr auto;
  }

  .has-\[\>svg\]\:px-1\.5:has( > svg) {
    padding-inline: calc(var(--spacing) * 1.5);
  }

  .has-\[\>svg\]\:px-2\.5:has( > svg) {
    padding-inline: calc(var(--spacing) * 2.5);
  }

  .has-\[\>svg\]\:px-3:has( > svg) {
    padding-inline: calc(var(--spacing) * 3);
  }

  .has-\[\>svg\]\:px-4:has( > svg) {
    padding-inline: calc(var(--spacing) * 4);
  }

  .aria-invalid\:border-destructive[aria-invalid="true"] {
    border-color: var(--destructive);
  }

  .aria-invalid\:ring-destructive\/20[aria-invalid="true"] {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .aria-invalid\:ring-destructive\/20[aria-invalid="true"] {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 20%, transparent);
    }
  }

  .data-\[disabled\]\:pointer-events-none[data-disabled] {
    pointer-events: none;
  }

  .data-\[disabled\]\:opacity-50[data-disabled] {
    opacity: .5;
  }

  .data-\[orientation\=horizontal\]\:flex-col[data-orientation="horizontal"] {
    flex-direction: column;
  }

  .data-\[placeholder\]\:text-muted-foreground[data-placeholder] {
    color: var(--muted-foreground);
  }

  .data-\[side\=bottom\]\:translate-y-1[data-side="bottom"] {
    --tw-translate-y: calc(var(--spacing) * 1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[side\=bottom\]\:slide-in-from-top-2[data-side="bottom"] {
    --tw-enter-translate-y: calc(2*var(--spacing)*-1);
  }

  .data-\[side\=left\]\:-translate-x-1[data-side="left"] {
    --tw-translate-x: calc(var(--spacing) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[side\=left\]\:slide-in-from-right-2[data-side="left"] {
    --tw-enter-translate-x: calc(2*var(--spacing));
  }

  .data-\[side\=right\]\:translate-x-1[data-side="right"] {
    --tw-translate-x: calc(var(--spacing) * 1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[side\=right\]\:slide-in-from-left-2[data-side="right"] {
    --tw-enter-translate-x: calc(2*var(--spacing)*-1);
  }

  .data-\[side\=top\]\:-translate-y-1[data-side="top"] {
    --tw-translate-y: calc(var(--spacing) * -1);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[side\=top\]\:slide-in-from-bottom-2[data-side="top"] {
    --tw-enter-translate-y: calc(2*var(--spacing));
  }

  .data-\[size\=default\]\:h-9[data-size="default"] {
    height: calc(var(--spacing) * 9);
  }

  .data-\[size\=sm\]\:h-8[data-size="sm"] {
    height: calc(var(--spacing) * 8);
  }

  :is(.\*\:data-\[slot\=select-value\]\:line-clamp-1 > *)[data-slot="select-value"] {
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    display: -webkit-box;
    overflow: hidden;
  }

  :is(.\*\:data-\[slot\=select-value\]\:flex > *)[data-slot="select-value"] {
    display: flex;
  }

  :is(.\*\:data-\[slot\=select-value\]\:items-center > *)[data-slot="select-value"] {
    align-items: center;
  }

  :is(.\*\:data-\[slot\=select-value\]\:gap-2 > *)[data-slot="select-value"] {
    gap: calc(var(--spacing) * 2);
  }

  .data-\[state\=active\]\:bg-background[data-state="active"] {
    background-color: var(--background);
  }

  .data-\[state\=active\]\:text-foreground[data-state="active"] {
    color: var(--foreground);
  }

  .group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm:is(:where(.group\/tabs-list)[data-variant="default"] *)[data-state="active"] {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant="line"] *)[data-state="active"] {
    background-color: #0000;
  }

  .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none:is(:where(.group\/tabs-list)[data-variant="line"] *)[data-state="active"] {
    --tw-shadow: 0 0 #0000;
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }

  .group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant="line"] *)[data-state="active"]:after {
    content: var(--tw-content);
    opacity: 1;
  }

  .data-\[state\=closed\]\:animate-out[data-state="closed"] {
    animation: exit var(--tw-animation-duration, var(--tw-duration, .15s))var(--tw-ease, ease)var(--tw-animation-delay, 0s)var(--tw-animation-iteration-count, 1)var(--tw-animation-direction, normal)var(--tw-animation-fill-mode, none);
  }

  .data-\[state\=closed\]\:fade-out-0[data-state="closed"] {
    --tw-exit-opacity: 0;
  }

  .data-\[state\=closed\]\:fade-out-80[data-state="closed"] {
    --tw-exit-opacity: .8;
  }

  .data-\[state\=closed\]\:zoom-out-95[data-state="closed"] {
    --tw-exit-scale: .95;
  }

  .data-\[state\=closed\]\:slide-out-to-right-full[data-state="closed"] {
    --tw-exit-translate-x: calc(1*100%);
  }

  .data-\[state\=open\]\:animate-in[data-state="open"] {
    animation: enter var(--tw-animation-duration, var(--tw-duration, .15s))var(--tw-ease, ease)var(--tw-animation-delay, 0s)var(--tw-animation-iteration-count, 1)var(--tw-animation-direction, normal)var(--tw-animation-fill-mode, none);
  }

  .data-\[state\=open\]\:bg-accent[data-state="open"] {
    background-color: var(--accent);
  }

  .data-\[state\=open\]\:text-muted-foreground[data-state="open"] {
    color: var(--muted-foreground);
  }

  .data-\[state\=open\]\:fade-in-0[data-state="open"] {
    --tw-enter-opacity: 0;
  }

  .data-\[state\=open\]\:zoom-in-95[data-state="open"] {
    --tw-enter-scale: .95;
  }

  .data-\[state\=open\]\:slide-in-from-bottom-full[data-state="open"] {
    --tw-enter-translate-y: calc(1*100%);
  }

  .data-\[state\=open\]\:slide-in-from-top-full[data-state="open"] {
    --tw-enter-translate-y: calc(1*-100%);
  }

  .data-\[state\=selected\]\:bg-muted[data-state="selected"] {
    background-color: var(--muted);
  }

  .data-\[swipe\=cancel\]\:translate-x-0[data-swipe="cancel"] {
    --tw-translate-x: calc(var(--spacing) * 0);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe="end"] {
    --tw-translate-x: var(--radix-toast-swipe-end-x);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[swipe\=end\]\:animate-out[data-swipe="end"] {
    animation: exit var(--tw-animation-duration, var(--tw-duration, .15s))var(--tw-ease, ease)var(--tw-animation-delay, 0s)var(--tw-animation-iteration-count, 1)var(--tw-animation-direction, normal)var(--tw-animation-fill-mode, none);
  }

  .data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe="move"] {
    --tw-translate-x: var(--radix-toast-swipe-move-x);
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .data-\[swipe\=move\]\:transition-none[data-swipe="move"] {
    transition-property: none;
  }

  .data-\[variant\=line\]\:rounded-none[data-variant="line"] {
    border-radius: 0;
  }

  @media (min-width: 40rem) {
    .sm\:top-auto {
      top: auto;
    }

    .sm\:right-0 {
      right: calc(var(--spacing) * 0);
    }

    .sm\:bottom-0 {
      bottom: calc(var(--spacing) * 0);
    }

    .sm\:w-48 {
      width: calc(var(--spacing) * 48);
    }

    .sm\:w-52 {
      width: calc(var(--spacing) * 52);
    }

    .sm\:w-72 {
      width: calc(var(--spacing) * 72);
    }

    .sm\:w-auto {
      width: auto;
    }

    .sm\:max-w-lg {
      max-width: var(--container-lg);
    }

    .sm\:flex-col {
      flex-direction: column;
    }

    .sm\:flex-row {
      flex-direction: row;
    }

    .sm\:items-center {
      align-items: center;
    }

    .sm\:justify-between {
      justify-content: space-between;
    }

    .sm\:justify-end {
      justify-content: flex-end;
    }

    .sm\:text-left {
      text-align: left;
    }

    .data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state="open"] {
      --tw-enter-translate-y: calc(1*100%);
    }
  }

  @media (min-width: 48rem) {
    .md\:mb-6 {
      margin-bottom: calc(var(--spacing) * 6);
    }

    .md\:flex {
      display: flex;
    }

    .md\:hidden {
      display: none;
    }

    .md\:w-auto {
      width: auto;
    }

    .md\:max-w-\[420px\] {
      max-width: 420px;
    }

    .md\:grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .md\:grid-cols-3 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .md\:grid-cols-4 {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .md\:grid-cols-5 {
      grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .md\:flex-row {
      flex-direction: row;
    }

    .md\:items-center {
      align-items: center;
    }

    .md\:justify-between {
      justify-content: space-between;
    }

    .md\:gap-4 {
      gap: calc(var(--spacing) * 4);
    }

    .md\:gap-6 {
      gap: calc(var(--spacing) * 6);
    }

    .md\:p-4 {
      padding: calc(var(--spacing) * 4);
    }

    .md\:p-5 {
      padding: calc(var(--spacing) * 5);
    }

    .md\:p-6 {
      padding: calc(var(--spacing) * 6);
    }

    .md\:p-8 {
      padding: calc(var(--spacing) * 8);
    }

    .md\:px-6 {
      padding-inline: calc(var(--spacing) * 6);
    }

    .md\:pt-0 {
      padding-top: calc(var(--spacing) * 0);
    }

    .md\:pb-0 {
      padding-bottom: calc(var(--spacing) * 0);
    }

    .md\:text-2xl {
      font-size: var(--text-2xl);
      line-height: var(--tw-leading, var(--text-2xl--line-height));
    }

    .md\:text-4xl {
      font-size: var(--text-4xl);
      line-height: var(--tw-leading, var(--text-4xl--line-height));
    }

    .md\:text-base {
      font-size: var(--text-base);
      line-height: var(--tw-leading, var(--text-base--line-height));
    }

    .md\:text-sm {
      font-size: var(--text-sm);
      line-height: var(--tw-leading, var(--text-sm--line-height));
    }
  }

  @media (min-width: 64rem) {
    .lg\:col-span-2 {
      grid-column: span 2 / span 2;
    }

    .lg\:flex {
      display: flex;
    }

    .lg\:hidden {
      display: none;
    }

    .lg\:w-64 {
      width: calc(var(--spacing) * 64);
    }

    .lg\:grid-cols-2 {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lg\:grid-cols-3 {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lg\:grid-cols-4 {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .lg\:grid-cols-5 {
      grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .lg\:grid-cols-6 {
      grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .lg\:p-8 {
      padding: calc(var(--spacing) * 8);
    }
  }

  @media (min-width: 80rem) {
    .xl\:sticky {
      position: sticky;
    }

    .xl\:w-\[360px\] {
      width: 360px;
    }

    .xl\:shrink-0 {
      flex-shrink: 0;
    }

    .xl\:grid-cols-4 {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .xl\:flex-row {
      flex-direction: row;
    }

    .xl\:items-start {
      align-items: flex-start;
    }

    .xl\:self-start {
      align-self: flex-start;
    }
  }

  .dark\:border-blue-800:is(.dark *) {
    border-color: var(--color-blue-800);
  }

  .dark\:border-input:is(.dark *) {
    border-color: var(--input);
  }

  .dark\:border-orange-800:is(.dark *) {
    border-color: var(--color-orange-800);
  }

  .dark\:border-red-800:is(.dark *) {
    border-color: var(--color-red-800);
  }

  .dark\:border-yellow-800:is(.dark *) {
    border-color: var(--color-yellow-800);
  }

  .dark\:bg-blue-950:is(.dark *) {
    background-color: var(--color-blue-950);
  }

  .dark\:bg-blue-950\/30:is(.dark *) {
    background-color: #1624564d;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-blue-950\/30:is(.dark *) {
      background-color: color-mix(in oklab, var(--color-blue-950) 30%, transparent);
    }
  }

  .dark\:bg-destructive\/60:is(.dark *) {
    background-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-destructive\/60:is(.dark *) {
      background-color: color-mix(in oklab, var(--destructive) 60%, transparent);
    }
  }

  .dark\:bg-green-950\/20:is(.dark *) {
    background-color: #032e1533;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-green-950\/20:is(.dark *) {
      background-color: color-mix(in oklab, var(--color-green-950) 20%, transparent);
    }
  }

  .dark\:bg-input\/30:is(.dark *) {
    background-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-input\/30:is(.dark *) {
      background-color: color-mix(in oklab, var(--input) 30%, transparent);
    }
  }

  .dark\:bg-orange-950:is(.dark *) {
    background-color: var(--color-orange-950);
  }

  .dark\:bg-red-950:is(.dark *) {
    background-color: var(--color-red-950);
  }

  .dark\:bg-red-950\/20:is(.dark *) {
    background-color: #46080933;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-red-950\/20:is(.dark *) {
      background-color: color-mix(in oklab, var(--color-red-950) 20%, transparent);
    }
  }

  .dark\:bg-yellow-950:is(.dark *) {
    background-color: var(--color-yellow-950);
  }

  .dark\:bg-yellow-950\/20:is(.dark *) {
    background-color: #43200433;
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:bg-yellow-950\/20:is(.dark *) {
      background-color: color-mix(in oklab, var(--color-yellow-950) 20%, transparent);
    }
  }

  .dark\:text-blue-100:is(.dark *) {
    color: var(--color-blue-100);
  }

  .dark\:text-blue-300:is(.dark *) {
    color: var(--color-blue-300);
  }

  .dark\:text-blue-400:is(.dark *) {
    color: var(--color-blue-400);
  }

  .dark\:text-muted-foreground:is(.dark *) {
    color: var(--muted-foreground);
  }

  .dark\:text-orange-100:is(.dark *) {
    color: var(--color-orange-100);
  }

  .dark\:text-orange-300:is(.dark *) {
    color: var(--color-orange-300);
  }

  .dark\:text-orange-400:is(.dark *) {
    color: var(--color-orange-400);
  }

  .dark\:text-purple-400:is(.dark *) {
    color: var(--color-purple-400);
  }

  .dark\:text-red-100:is(.dark *) {
    color: var(--color-red-100);
  }

  .dark\:text-red-300:is(.dark *) {
    color: var(--color-red-300);
  }

  .dark\:text-yellow-100:is(.dark *) {
    color: var(--color-yellow-100);
  }

  .dark\:text-yellow-300:is(.dark *) {
    color: var(--color-yellow-300);
  }

  @media (hover: hover) {
    .dark\:hover\:bg-accent\/50:is(.dark *):hover {
      background-color: var(--accent);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .dark\:hover\:bg-accent\/50:is(.dark *):hover {
        background-color: color-mix(in oklab, var(--accent) 50%, transparent);
      }
    }

    .dark\:hover\:bg-input\/50:is(.dark *):hover {
      background-color: var(--input);
    }

    @supports (color: color-mix(in lab, red, red)) {
      .dark\:hover\:bg-input\/50:is(.dark *):hover {
        background-color: color-mix(in oklab, var(--input) 50%, transparent);
      }
    }

    .dark\:hover\:text-foreground:is(.dark *):hover {
      color: var(--foreground);
    }
  }

  .dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);
    }
  }

  .dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid="true"] {
    --tw-ring-color: var(--destructive);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid="true"] {
      --tw-ring-color: color-mix(in oklab, var(--destructive) 40%, transparent);
    }
  }

  .dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state="active"] {
    border-color: var(--input);
  }

  .dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state="active"] {
    background-color: var(--input);
  }

  @supports (color: color-mix(in lab, red, red)) {
    .dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state="active"] {
      background-color: color-mix(in oklab, var(--input) 30%, transparent);
    }
  }

  .dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state="active"] {
    color: var(--foreground);
  }

  .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant="line"] *)[data-state="active"] {
    border-color: #0000;
  }

  .dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant="line"] *)[data-state="active"] {
    background-color: #0000;
  }

  .\[\&_svg\]\:pointer-events-none svg {
    pointer-events: none;
  }

  .\[\&_svg\]\:shrink-0 svg {
    flex-shrink: 0;
  }

  .\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*="size-"]) {
    width: calc(var(--spacing) * 3);
    height: calc(var(--spacing) * 3);
  }

  .\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*="size-"]) {
    width: calc(var(--spacing) * 4);
    height: calc(var(--spacing) * 4);
  }

  .\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*="text-"]) {
    color: var(--muted-foreground);
  }

  .\[\&_tr\]\:border-b tr {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 1px;
  }

  .\[\&_tr\:last-child\]\:border-0 tr:last-child {
    border-style: var(--tw-border-style);
    border-width: 0;
  }

  .\[\&\+div\]\:text-xs + div {
    font-size: var(--text-xs);
    line-height: var(--tw-leading, var(--text-xs--line-height));
  }

  .\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role="checkbox"]) {
    padding-right: calc(var(--spacing) * 0);
  }

  .\[\.border-b\]\:pb-6.border-b {
    padding-bottom: calc(var(--spacing) * 6);
  }

  .\[\.border-t\]\:pt-6.border-t {
    padding-top: calc(var(--spacing) * 6);
  }

  :is(.\*\:\[span\]\:last\:flex > *):is(span):last-child {
    display: flex;
  }

  :is(.\*\:\[span\]\:last\:items-center > *):is(span):last-child {
    align-items: center;
  }

  :is(.\*\:\[span\]\:last\:gap-2 > *):is(span):last-child {
    gap: calc(var(--spacing) * 2);
  }

  .\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\] > [role="checkbox"] {
    --tw-translate-y: 2px;
    translate: var(--tw-translate-x) var(--tw-translate-y);
  }

  .\[\&\>svg\]\:pointer-events-none > svg {
    pointer-events: none;
  }

  .\[\&\>svg\]\:size-3 > svg {
    width: calc(var(--spacing) * 3);
    height: calc(var(--spacing) * 3);
  }

  .\[\&\>tr\]\:last\:border-b-0 > tr:last-child {
    border-bottom-style: var(--tw-border-style);
    border-bottom-width: 0;
  }

  @media (hover: hover) {
    a.\[a\&\]\:hover\:bg-accent:hover {
      background-color: var(--accent);
    }

    a.\[a\&\]\:hover\:bg-destructive\/90:hover {
      background-color: var(--destructive);
    }

    @supports (color: color-mix(in lab, red, red)) {
      a.\[a\&\]\:hover\:bg-destructive\/90:hover {
        background-color: color-mix(in oklab, var(--destructive) 90%, transparent);
      }
    }

    a.\[a\&\]\:hover\:bg-primary\/90:hover {
      background-color: var(--primary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      a.\[a\&\]\:hover\:bg-primary\/90:hover {
        background-color: color-mix(in oklab, var(--primary) 90%, transparent);
      }
    }

    a.\[a\&\]\:hover\:bg-secondary\/90:hover {
      background-color: var(--secondary);
    }

    @supports (color: color-mix(in lab, red, red)) {
      a.\[a\&\]\:hover\:bg-secondary\/90:hover {
        background-color: color-mix(in oklab, var(--secondary) 90%, transparent);
      }
    }

    a.\[a\&\]\:hover\:text-accent-foreground:hover {
      color: var(--accent-foreground);
    }

    a.\[a\&\]\:hover\:underline:hover {
      text-decoration-line: underline;
    }
  }
}

@property --tw-animation-delay {
  syntax: "*";
  inherits: false;
  initial-value: 0s;
}

@property --tw-animation-direction {
  syntax: "*";
  inherits: false;
  initial-value: normal;
}

@property --tw-animation-duration {
  syntax: "*";
  inherits: false
}

@property --tw-animation-fill-mode {
  syntax: "*";
  inherits: false;
  initial-value: none;
}

@property --tw-animation-iteration-count {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-enter-blur {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-enter-opacity {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-enter-rotate {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-enter-scale {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-enter-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-enter-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-exit-blur {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-exit-opacity {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-exit-rotate {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-exit-scale {
  syntax: "*";
  inherits: false;
  initial-value: 1;
}

@property --tw-exit-translate-x {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-exit-translate-y {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

:root {
  --radius: .625rem;
  --background: oklch(100% 0 0);
  --foreground: oklch(14.5% 0 0);
  --card: oklch(100% 0 0);
  --card-foreground: oklch(14.5% 0 0);
  --popover: oklch(100% 0 0);
  --popover-foreground: oklch(14.5% 0 0);
  --primary: oklch(20.5% 0 0);
  --primary-foreground: oklch(98.5% 0 0);
  --secondary: oklch(97% 0 0);
  --secondary-foreground: oklch(20.5% 0 0);
  --muted: oklch(97% 0 0);
  --muted-foreground: oklch(55.6% 0 0);
  --accent: oklch(97% 0 0);
  --accent-foreground: oklch(20.5% 0 0);
  --destructive: oklch(57.7% .245 27.325);
  --border: oklch(92.2% 0 0);
  --input: oklch(92.2% 0 0);
  --ring: oklch(70.8% 0 0);
  --chart-1: oklch(64.6% .222 41.116);
  --chart-2: oklch(60% .118 184.704);
  --chart-3: oklch(39.8% .07 227.392);
  --chart-4: oklch(82.8% .189 84.429);
  --chart-5: oklch(76.9% .188 70.08);
  --sidebar: oklch(98.5% 0 0);
  --sidebar-foreground: oklch(14.5% 0 0);
  --sidebar-primary: oklch(20.5% 0 0);
  --sidebar-primary-foreground: oklch(98.5% 0 0);
  --sidebar-accent: oklch(97% 0 0);
  --sidebar-accent-foreground: oklch(20.5% 0 0);
  --sidebar-border: oklch(92.2% 0 0);
  --sidebar-ring: oklch(70.8% 0 0);
}

.dark {
  --background: oklch(14.5% 0 0);
  --foreground: oklch(98.5% 0 0);
  --card: oklch(20.5% 0 0);
  --card-foreground: oklch(98.5% 0 0);
  --popover: oklch(26.9% 0 0);
  --popover-foreground: oklch(98.5% 0 0);
  --primary: oklch(92.2% 0 0);
  --primary-foreground: oklch(20.5% 0 0);
  --secondary: oklch(26.9% 0 0);
  --secondary-foreground: oklch(98.5% 0 0);
  --muted: oklch(26.9% 0 0);
  --muted-foreground: oklch(70.8% 0 0);
  --accent: oklch(37.1% 0 0);
  --accent-foreground: oklch(98.5% 0 0);
  --destructive: oklch(70.4% .191 22.216);
  --border: oklch(100% 0 0 / .1);
  --input: oklch(100% 0 0 / .15);
  --ring: oklch(55.6% 0 0);
  --chart-1: oklch(48.8% .243 264.376);
  --chart-2: oklch(69.6% .17 162.48);
  --chart-3: oklch(76.9% .188 70.08);
  --chart-4: oklch(62.7% .265 303.9);
  --chart-5: oklch(64.5% .246 16.439);
  --sidebar: oklch(20.5% 0 0);
  --sidebar-foreground: oklch(98.5% 0 0);
  --sidebar-primary: oklch(48.8% .243 264.376);
  --sidebar-primary-foreground: oklch(98.5% 0 0);
  --sidebar-accent: oklch(26.9% 0 0);
  --sidebar-accent-foreground: oklch(98.5% 0 0);
  --sidebar-border: oklch(100% 0 0 / .1);
  --sidebar-ring: oklch(43.9% 0 0);
}

@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-space-y-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-space-x-reverse {
  syntax: "*";
  inherits: false;
  initial-value: 0;
}

@property --tw-divide-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: 0;
}

@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-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}

@property --tw-blur {
  syntax: "*";
  inherits: false
}

@property --tw-brightness {
  syntax: "*";
  inherits: false
}

@property --tw-contrast {
  syntax: "*";
  inherits: false
}

@property --tw-grayscale {
  syntax: "*";
  inherits: false
}

@property --tw-hue-rotate {
  syntax: "*";
  inherits: false
}

@property --tw-invert {
  syntax: "*";
  inherits: false
}

@property --tw-opacity {
  syntax: "*";
  inherits: false
}

@property --tw-saturate {
  syntax: "*";
  inherits: false
}

@property --tw-sepia {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false
}

@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}

@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false
}

@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
}

@property --tw-ease {
  syntax: "*";
  inherits: false
}

@property --tw-content {
  syntax: "*";
  inherits: false;
  initial-value: "";
}

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

@keyframes enter {
  from {
    opacity: var(--tw-enter-opacity, 1);
    transform: translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0)scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1))rotate(var(--tw-enter-rotate, 0));
    filter: blur(var(--tw-enter-blur, 0));
  }
}

@keyframes exit {
  to {
    opacity: var(--tw-exit-opacity, 1);
    transform: translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0)scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1))rotate(var(--tw-exit-rotate, 0));
    filter: blur(var(--tw-exit-blur, 0));
  }
}
