@import "tailwindcss";
@import "tw-animate-css";
@import "shadcn/tailwind.css";

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

@theme inline {
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --font-display: var(--font-display);
  --font-sans: var(--font-body);
  --font-mono: var(--font-mono);
  --font-heading: var(--font-display);
  
  --color-navy: var(--color-navy);
  --color-ink: var(--color-ink);
  --color-gold: var(--color-gold);
  --color-off-white: var(--color-off-white);
  --color-green: var(--color-green);
  --color-hairline: var(--color-hairline);
  --color-muted-gray: var(--muted-gray);
  --color-active-dark: var(--active-dark);
  --color-border-gray: var(--border-gray);
  --color-accent-gold: var(--accent-gold);
  
  --color-success: var(--success);
  --color-success-foreground: var(--success-foreground);
  
  --color-sidebar-ring: var(--sidebar-ring);
  --color-sidebar-border: var(--sidebar-border);
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
  --color-sidebar-accent: var(--sidebar-accent);
  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
  --color-sidebar-primary: var(--sidebar-primary);
  --color-sidebar-foreground: var(--sidebar-foreground);
  --color-sidebar: var(--sidebar);
  --color-chart-5: var(--chart-5);
  --color-chart-4: var(--chart-4);
  --color-chart-3: var(--chart-3);
  --color-chart-2: var(--chart-2);
  --color-chart-1: var(--chart-1);
  --color-ring: var(--ring);
  --color-input: var(--input);
  --color-border: var(--border);
  --color-destructive: var(--destructive);
  --color-accent-foreground: var(--accent-foreground);
  --color-accent: var(--accent);
  --color-muted-foreground: var(--muted-foreground);
  --color-muted: var(--muted);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-secondary: var(--secondary);
  --color-primary-foreground: var(--primary-foreground);
  --color-primary: var(--primary);
  --color-popover-foreground: var(--popover-foreground);
  --color-popover: var(--popover);
  --color-card-foreground: var(--card-foreground);
  --color-card: var(--card);
  --radius-sm: calc(var(--radius) * 0.6);
  --radius-md: calc(var(--radius) * 0.8);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) * 1.4);
  --radius-2xl: calc(var(--radius) * 1.8);
  --radius-3xl: calc(var(--radius) * 2.2);
  --radius-4xl: calc(var(--radius) * 2.6);
}

:root {
  /* Raw brand tokens */
  --color-navy: #0D2B55;
  --color-ink: #0A0D14;
  --color-gold: #E8A020;
  --color-off-white: #F7F6F3;
  --color-green: #1A7340;
  --color-hairline: rgba(10, 13, 20, 0.1);
  --muted-gray: #6B6760;
  --active-dark: #1E1C19;
  --border-gray: #C8C3BA;
  --accent-gold: #F5BC50;

  /* shadcn semantic tokens mapped to brand values (light-first) */
  --background: var(--color-off-white);
  --foreground: var(--color-ink);
  
  --card: var(--color-off-white);
  --card-foreground: var(--color-ink);
  
  --popover: var(--color-off-white);
  --popover-foreground: var(--color-ink);
  
  --primary: var(--color-navy);
  --primary-foreground: var(--color-off-white);
  
  --secondary: #ECEAE6; /* slightly darker neutral for secondary components */
  --secondary-foreground: var(--color-ink);
  
  --muted: #ECEAE6;
  --muted-foreground: #5A5D66;
  
  --accent: var(--color-gold);
  --accent-foreground: var(--color-ink);
  
  /* success custom token */
  --success: var(--color-green);
  --success-foreground: var(--color-off-white);
  
  /* destructive - default red */
  --destructive: #D92D20;
  --destructive-foreground: #FFFFFF;
  
  --border: var(--color-hairline);
  --input: var(--color-hairline);
  --ring: var(--color-navy);
  
  --radius: 0.25rem; /* Restrained border radius: 2-4px (4px selected) */

  --chart-1: var(--color-navy);
  --chart-2: var(--color-gold);
  --chart-3: var(--color-green);
  --chart-4: #4B5563;
  --chart-5: #9CA3AF;
  
  --sidebar: var(--color-off-white);
  --sidebar-foreground: var(--color-ink);
  --sidebar-primary: var(--color-navy);
  --sidebar-primary-foreground: var(--color-off-white);
  --sidebar-accent: #ECEAE6;
  --sidebar-accent-foreground: var(--color-ink);
  --sidebar-border: var(--color-hairline);
  --sidebar-ring: var(--color-navy);

  /* Max content width */
  --content-max-width: 1160px;
}

.dark {
  --background: var(--color-ink);
  --foreground: var(--color-off-white);
  
  --card: var(--color-ink);
  --card-foreground: var(--color-off-white);
  
  --popover: var(--color-ink);
  --popover-foreground: var(--color-off-white);
  
  --primary: var(--color-off-white);
  --primary-foreground: var(--color-navy);
  
  --secondary: #1F242F;
  --secondary-foreground: var(--color-off-white);
  
  --muted: #1F242F;
  --muted-foreground: #94A3B8;
  
  --accent: var(--color-gold);
  --accent-foreground: var(--color-ink);
  
  --success: var(--color-green);
  --success-foreground: var(--color-off-white);
  
  --destructive: #EF4444;
  --destructive-foreground: #FFFFFF;
  
  --border: rgba(247, 246, 243, 0.15); /* light hairline border in dark mode */
  --input: rgba(247, 246, 243, 0.15);
  --ring: var(--color-gold);
  
  --sidebar: var(--color-ink);
  --sidebar-foreground: var(--color-off-white);
  --sidebar-primary: var(--color-off-white);
  --sidebar-primary-foreground: var(--color-navy);
  --sidebar-accent: #1F242F;
  --sidebar-accent-foreground: var(--color-off-white);
  --sidebar-border: rgba(247, 246, 243, 0.15);
  --sidebar-ring: var(--color-gold);
}

.container-content {
  width: 100%;
  max-width: var(--content-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}

@layer base {
  * {
    @apply border-border outline-ring/50;
  }
  body {
    @apply bg-background text-foreground;
  }
  html {
    @apply font-sans;
  }
  /* WCAG 2.2 AA — keyboard focus outlines for interactive elements */
  a:focus-visible,
  button:focus-visible,
  [role="button"]:focus-visible,
  input:focus-visible,
  select:focus-visible,
  textarea:focus-visible,
  [tabindex]:focus-visible {
    @apply outline-2 outline-offset-2 outline-navy rounded-sm;
  }
}