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

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

/* =============================================================================
   GREYHAVEN DESIGN TOKENS
   Based on Greyhaven Brand Guidelines v1.0
   
   Color Philosophy:
   - Neutral and minimal scheme
   - Off-black, warm grey, and white form the base
   - Single accent (orange) used sparingly for active/important states
   - No gradients, no decorative color
   ============================================================================= */

:root {
  /* Background & Foreground */
  --background: 240 240 236;           /* Grey 1 #F0F0EC */
  --foreground: 22 22 20;              /* Off-black #161614 */

  /* Card */
  --card: 249 249 247;                 /* Off-white #F9F9F7 - elevated from background */
  --card-foreground: 22 22 20;

  /* Popover */
  --popover: 249 249 247;
  --popover-foreground: 22 22 20;

  /* Primary - Orange accent (used sparingly) */
  --primary: 217 94 42;                /* Orange #D95E2A */
  --primary-foreground: 249 249 247;   /* Off-white */

  /* Secondary */
  --secondary: 240 240 236;            /* Grey 1 #F0F0EC */
  --secondary-foreground: 47 47 44;    /* Grey 8 #2F2F2C */

  /* Muted */
  --muted: 240 240 236;                /* Grey 1 #F0F0EC */
  --muted-foreground: 87 87 83;        /* Grey 7 #575753 */

  /* Accent - Subtle grey for hover states */
  --accent: 221 221 215;               /* Grey 2 #DDDDD7 */
  --accent-foreground: 22 22 20;       /* Off-black */

  /* Destructive */
  --destructive: 180 50 50;            /* Muted red for destructive actions */
  --destructive-foreground: 249 249 247;

  /* Borders & Inputs */
  --border: 196 196 189;               /* Grey 3 #C4C4BD */
  --input: 196 196 189;                /* Grey 3 #C4C4BD */

  /* Focus Ring */
  --ring: 217 94 42;                   /* Orange for focus states */

  /* Charts - Warm neutral palette with orange accent */
  --chart-1: 217 94 42;                /* Orange accent */
  --chart-2: 87 87 83;                 /* Grey 7 */
  --chart-3: 127 127 121;              /* Grey 5 */
  --chart-4: 166 166 159;              /* Grey 4 */
  --chart-5: 47 47 44;                 /* Grey 8 */

  /* Radius - Tightened, no playful rounding */
  --radius: 0.375rem;

  /* Sidebar */
  --sidebar: 240 240 236;
  --sidebar-foreground: 22 22 20;
  --sidebar-primary: 217 94 42;
  --sidebar-primary-foreground: 249 249 247;
  --sidebar-accent: 196 196 189;
  --sidebar-accent-foreground: 22 22 20;
  --sidebar-border: 196 196 189;
  --sidebar-ring: 217 94 42;
}

/* =============================================================================
   DARK THEME
   Guidelines: Negative/reverse usage via off-black and greys
   ============================================================================= */

.dark {
  /* Background & Foreground */
  --background: 22 22 20;              /* Off-black #161614 */
  --foreground: 249 249 247;           /* Off-white #F9F9F7 */

  /* Card */
  --card: 47 47 44;                    /* Grey 8 #2F2F2C */
  --card-foreground: 249 249 247;

  /* Popover */
  --popover: 47 47 44;
  --popover-foreground: 249 249 247;

  /* Primary - Orange accent (same in dark mode) */
  --primary: 217 94 42;                /* Orange #D95E2A */
  --primary-foreground: 249 249 247;

  /* Secondary */
  --secondary: 87 87 83;               /* Grey 7 #575753 */
  --secondary-foreground: 249 249 247;

  /* Muted */
  --muted: 87 87 83;                   /* Grey 7 #575753 */
  --muted-foreground: 196 196 189;     /* Grey 3 #C4C4BD */

  /* Accent - Subtle grey for hover states */
  --accent: 87 87 83;                  /* Grey 7 #575753 */
  --accent-foreground: 249 249 247;

  /* Destructive */
  --destructive: 180 50 50;
  --destructive-foreground: 249 249 247;

  /* Borders & Inputs */
  --border: 87 87 83;                  /* Grey 7 */
  --input: 87 87 83;

  /* Focus Ring */
  --ring: 217 94 42;

  /* Charts */
  --chart-1: 217 94 42;
  --chart-2: 196 196 189;
  --chart-3: 166 166 159;
  --chart-4: 127 127 121;
  --chart-5: 240 240 236;

  /* Sidebar */
  --sidebar: 47 47 44;
  --sidebar-foreground: 249 249 247;
  --sidebar-primary: 217 94 42;
  --sidebar-primary-foreground: 249 249 247;
  --sidebar-accent: 87 87 83;
  --sidebar-accent-foreground: 249 249 247;
  --sidebar-border: 87 87 83;
  --sidebar-ring: 217 94 42;
}

/* =============================================================================
   THEME CONFIGURATION
   Typography: Source Serif Pro (primary) + Aspekta (secondary/UI)
   ============================================================================= */

@theme inline {
  /* Typography - Using CSS variables from Next.js font loading */
  --font-sans: 'Aspekta', ui-sans-serif, system-ui, sans-serif;
  --font-serif: var(--font-source-serif), 'Source Serif 4', 'Source Serif Pro', Georgia, serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  
  /* Color mappings */
  --color-background: rgb(var(--background));
  --color-foreground: rgb(var(--foreground));
  --color-card: rgb(var(--card));
  --color-card-foreground: rgb(var(--card-foreground));
  --color-popover: rgb(var(--popover));
  --color-popover-foreground: rgb(var(--popover-foreground));
  --color-primary: rgb(var(--primary));
  --color-primary-foreground: rgb(var(--primary-foreground));
  --color-secondary: rgb(var(--secondary));
  --color-secondary-foreground: rgb(var(--secondary-foreground));
  --color-muted: rgb(var(--muted));
  --color-muted-foreground: rgb(var(--muted-foreground));
  --color-accent: rgb(var(--accent));
  --color-accent-foreground: rgb(var(--accent-foreground));
  --color-destructive: rgb(var(--destructive));
  --color-destructive-foreground: rgb(var(--destructive-foreground));
  --color-border: rgb(var(--border));
  --color-input: rgb(var(--input));
  --color-ring: rgb(var(--ring));
  --color-chart-1: rgb(var(--chart-1));
  --color-chart-2: rgb(var(--chart-2));
  --color-chart-3: rgb(var(--chart-3));
  --color-chart-4: rgb(var(--chart-4));
  --color-chart-5: rgb(var(--chart-5));
  --radius-sm: calc(var(--radius) - 2px);
  --radius-md: var(--radius);
  --radius-lg: calc(var(--radius) + 2px);
  --radius-xl: calc(var(--radius) + 4px);
  --color-sidebar: rgb(var(--sidebar));
  --color-sidebar-foreground: rgb(var(--sidebar-foreground));
  --color-sidebar-primary: rgb(var(--sidebar-primary));
  --color-sidebar-primary-foreground: rgb(var(--sidebar-primary-foreground));
  --color-sidebar-accent: rgb(var(--sidebar-accent));
  --color-sidebar-accent-foreground: rgb(var(--sidebar-accent-foreground));
  --color-sidebar-border: rgb(var(--sidebar-border));
  --color-sidebar-ring: rgb(var(--sidebar-ring));
  
  /* Greyhaven-specific colors for direct use */
  /* Orange: PANTONE 1595 C */
  --color-greyhaven-orange: #D95E2A;
  --color-greyhaven-offblack: #161614;
  --color-greyhaven-offwhite: #F9F9F7;
  --color-greyhaven-grey1: #F0F0EC;
  --color-greyhaven-grey2: #DDDDD7;
  --color-greyhaven-grey3: #C4C4BD;
  --color-greyhaven-grey4: #A6A69F;
  --color-greyhaven-grey5: #7F7F79;
  --color-greyhaven-grey7: #575753;
  --color-greyhaven-grey8: #2F2F2C;

  /* ==========================================================================
     TYPE SCALE — Greyhaven Brand Guidelines v1.1
     Source: brand guidelines deck, slide 22

     Print pt values converted to px at 1pt = 1.333px.
     Web scale is proportionally reduced from print scale.
     Primary typeface: Source Serif Pro (Source Serif 4)
     Secondary typeface: Aspekta (commercial) — Inter used as substitute
     Logo typeface: Circular Medium (logo use only, not loaded here)
     ========================================================================== */
  --type-display:    clamp(3rem, 6vw, 7.5rem);   /* 136pt print reference */
  --type-h1:         clamp(2.25rem, 4vw, 4.25rem); /* 68pt print reference */
  --type-h2:         clamp(1.75rem, 3vw, 3rem);   /* 51pt print reference */
  --type-h3:         clamp(1.375rem, 2vw, 2.25rem); /* 40pt print reference */
  --type-h4:         clamp(1.125rem, 1.5vw, 2rem); /* 36pt print reference */
  --type-body-lg:    1.125rem;                     /* 18px */
  --type-body:       1rem;                         /* 16px */
  --type-body-sm:    0.9375rem;                    /* 15px */
  --type-caption:    0.75rem;                      /* 10pt / 12px */

  --type-tracking-tight: -0.01em;  /* 1% — headings */
  --type-tracking-body:   0.02em;  /* 2% — body text */
}

@layer base {
  * {
    @apply border-border outline-ring/50;
  }
  body {
    @apply bg-background text-foreground;
  }
}
