@import "tailwindcss";

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

@theme {
  /* Dify / Untitled UI palette */
  --color-bg-primary: #ffffff;
  --color-bg-secondary: #f9fafb;
  --color-bg-tertiary: #f2f4f7;
  --color-bg-section: #f6f7f9;

  --color-text-primary: #101828;
  --color-text-secondary: #354052;
  --color-text-tertiary: #676f83;
  --color-text-quaternary: #98a2b2;
  --color-text-disabled: #d0d5dc;

  --color-border-subtle: rgb(16 24 40 / 0.04);
  --color-border-default: rgb(16 24 40 / 0.08);
  --color-border-hover: rgb(16 24 40 / 0.14);
  --color-border-strong: #d0d5dc;

  --color-card: #ffffff;
  --color-card-hover: #f9fafb;

  /* Dify primary blue */
  --color-primary-50: #eff4ff;
  --color-primary-100: #d1e0ff;
  --color-primary-200: #b2caff;
  --color-primary-500: #2970ff;
  --color-primary-600: #155aef;
  --color-primary-700: #004aeb;
  --color-primary-800: #00359e;

  --color-primary: var(--color-primary-600);
  --color-primary-hover: var(--color-primary-700);
  --color-primary-foreground: #ffffff;

  /* Accent palette for tile icons (also re-declared in :root below so
     Tailwind v4 doesn't tree-shake them — they're only used via inline
     style in tile.tsx, which Tailwind's purger can't see). */
  --color-accent-blue: #155aef;
  --color-accent-indigo: #444ce7;
  --color-accent-violet: #7a5af8;
  --color-accent-cyan: #0ba5ec;
  --color-accent-emerald: #17b26a;
  --color-accent-amber: #f79009;
  --color-accent-rose: #f04438;
  --color-accent-gray: #475467;

  --color-destructive: #d92d20;
  --color-destructive-bg: #fef3f2;
  --color-destructive-border: #fda29b;

  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;

  --shadow-card: 0 1px 2px rgb(16 24 40 / 0.05);
  --shadow-card-hover: 0 12px 24px -8px rgb(16 24 40 / 0.12), 0 4px 8px -4px rgb(16 24 40 / 0.06);

  --font-sans: var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif;
  --font-mono: var(--font-geist-mono), ui-monospace, SFMono-Regular, monospace;
}

/* Re-declare accents in :root so they survive Tailwind v4's purge of unused
   @theme variables. Used by inline styles in tile.tsx (color-mix). */
:root {
  --color-accent-blue: #155aef;
  --color-accent-indigo: #444ce7;
  --color-accent-violet: #7a5af8;
  --color-accent-cyan: #0ba5ec;
  --color-accent-emerald: #17b26a;
  --color-accent-amber: #f79009;
  --color-accent-rose: #f04438;
  --color-accent-gray: #475467;
}

.dark {
  --color-bg-primary: #14181f;
  --color-bg-secondary: #1a1f29;
  --color-bg-tertiary: #232936;
  --color-bg-section: #181d26;

  --color-text-primary: #f5f7fa;
  --color-text-secondary: #c8ccd5;
  --color-text-tertiary: #98a2b2;
  --color-text-quaternary: #676f83;
  --color-text-disabled: #4a525e;

  --color-border-subtle: rgb(255 255 255 / 0.05);
  --color-border-default: rgb(255 255 255 / 0.08);
  --color-border-hover: rgb(255 255 255 / 0.14);
  --color-border-strong: #354052;

  --color-card: #1a1f29;
  --color-card-hover: #232936;

  --color-primary: var(--color-primary-500);
  --color-primary-hover: #4187ff;

  --shadow-card: 0 1px 2px rgb(0 0 0 / 0.4);
  --shadow-card-hover: 0 12px 24px -8px rgb(0 0 0 / 0.5), 0 4px 8px -4px rgb(0 0 0 / 0.3);
}

html,
body {
  height: 100%;
}

body {
  background: var(--color-bg-secondary);
  color: var(--color-text-primary);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Dify-style typography utilities */
.system-2xs-medium-uppercase {
  font-size: 10px;
  line-height: 14px;
  font-weight: 500;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.system-xs-regular {
  font-size: 12px;
  line-height: 16px;
  font-weight: 400;
}
.system-xs-medium {
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
}
.system-sm-medium {
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
}
.system-sm-semibold {
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
}

/* Scrollbar polish */
.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  scrollbar-width: none;
}
