@import 'tailwindcss';
@import 'tw-animate-css';

@import './styling/setup.css';
@import './styling/overrides.css';
@import './styling/utilities.css';
@import './styling/components.css';

@custom-variant dark (&:is(.dark *));

/* Uncomment to debug layering and overflow */
/* *,
*::after,
*::before {
  :focus,
  :focus-visible,
  :focus-within {
    outline: 2px solid hotpink !important;
  }
} */

/* *,
*::after,
*::before {
  background: hsla(135, 50%, 50%, 0.05) !important;
  outline: 2px solid hotpink !important;
} */

@theme inline {
  /* stylelint-disable-next-line custom-property-pattern */
  --color-*: initial;
  --color-transparent: transparent;
  --color-inherit: inherit;

  --color-prim-0: var(--clr-prim-0);
  --color-prim-100: var(--clr-prim-100);
  --color-prim-200: var(--clr-prim-200);
  --color-prim-400: var(--clr-prim-400);
  --color-prim-600: var(--clr-prim-600);
  --color-prim-999: var(--clr-prim-999);

  --color-sec-0: var(--clr-sec-0);
  --color-sec-100: var(--clr-sec-100);
  --color-sec-200: var(--clr-sec-200);
  --color-sec-400: var(--clr-sec-400);
  --color-sec-600: var(--clr-sec-600);

  --color-graph-selected: var(--clr-select-node);

  --color-accent-red: var(--acc-bg-red);
  --color-accent-green: var(--acc-bg-green);
  --color-accent-green25: var(--acc-bg-green25);
  --color-accent-green50: var(--acc-bg-green50);
  --color-accent-blue: var(--acc-bg-blue);
  --color-accent-purple: var(--acc-bg-purple);
  --color-accent-teal: var(--acc-bg-teal);
  --color-accent-orange: var(--acc-bg-orange);
  --color-accent-orange50: var(--acc-bg-orange50);

  --color-accent-red-foreground: var(--acc-fg-red);
  --color-accent-green-foreground: var(--acc-fg-green);
  --color-accent-blue-foreground: var(--acc-fg-blue);
  --color-accent-purple-foreground: var(--acc-fg-purple);
  --color-accent-teal-foreground: var(--acc-fg-teal);
  --color-accent-orange-foreground: var(--acc-fg-orange);

  /* stylelint-disable-next-line custom-property-pattern */
  --z-index-*: initial;
  --z-index-bottom: 0;
  --z-index-topmost: 99;
  --z-index-pop: 10;
  --z-index-sticky: 20;
  --z-index-tooltip: 30;
  --z-index-navigation: 50;
  --z-index-modal: 60;

  /* stylelint-disable-next-line custom-property-pattern */
  --breakpoint-*: initial;
  --breakpoint-xs: 475px;
  --breakpoint-sm: 640px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 1024px;
  --breakpoint-xl: 1280px;
  --breakpoint-2xl: 1536px;

  --ease-bezier: cubic-bezier(0.4, 0, 0.2, 1);

  /* Animation durations */
  --duration-select: 100ms;
  --duration-dropdown: 200ms;
  --duration-modal: 300ms;
  --duration-fade: 300ms;
  --duration-move: 500ms;
  --duration-transform: 1000ms;
  --duration-cycle: 1000ms;

  /* Custom animations */
  --animate-pulse-scale: pulse-scale 1s infinite;

  @keyframes pulse-scale {
    0% {
      transform: scale(1);
    }

    70% {
      transform: scale(1.2);
    }

    100% {
      transform: scale(1);
    }
  }

  /* ========= shadcn theme ============ */
  --color-background: var(--clr-prim-100);
  --color-foreground: var(--clr-prim-999);
  --color-card: var(--clr-prim-0);
  --color-card-foreground: var(--color-foreground);
  --color-popover: var(--color-card);
  --color-popover-foreground: var(--color-card-foreground);

  --color-primary: var(--clr-sec-600);
  --color-primary-foreground: var(--clr-sec-0);
  --color-primary-border: var(--clr-sec-400);
  --color-secondary: var(--clr-prim-200);
  --color-secondary-foreground: var(--color-foreground);
  --color-muted: var(--clr-prim-100);
  --color-muted-foreground: var(--clr-prim-600);
  --color-accent: var(--clr-sec-100);
  --color-accent-foreground: var(--color-foreground);
  --color-selected: var(--clr-sec-200);
  --color-selected-foreground: var(--clr-prim-999);
  --color-destructive: var(--clr-warn-600);
  --color-constructive: var(--clr-ok-600);

  --color-border: var(--clr-prim-400);
  --color-input: var(--color-card);
  --color-ring: var(--color-primary);
}
