@import 'tailwindcss';

@import 'tw-animate-css';

@import 'tw-animate-css';

@import 'shadcn/tailwind.css';

@import '@fontsource-variable/montserrat';

@source '../views';
@source '../../vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php';

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

@theme {
    --font-sans:
        'Instrument Sans', ui-sans-serif, system-ui, sans-serif,
        'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
        'Noto Color Emoji';

    --radius-lg: var(--radius);
    --radius-md: calc(var(--radius) - 2px);
    --radius-sm: calc(var(--radius) - 4px);

    --color-background: var(--background);
    --color-foreground: var(--foreground);

    --color-card: var(--card);
    --color-card-foreground: var(--card-foreground);

    --color-popover: var(--popover);
    --color-popover-foreground: var(--popover-foreground);

    --color-primary: var(--primary);
    --color-primary-foreground: var(--primary-foreground);

    --color-secondary: var(--secondary);
    --color-secondary-foreground: var(--secondary-foreground);

    --color-muted: var(--muted);
    --color-muted-foreground: var(--muted-foreground);

    --color-accent: var(--accent);
    --color-accent-foreground: var(--accent-foreground);

    --color-destructive: var(--destructive);
    --color-destructive-foreground: var(--destructive-foreground);

    --color-border: var(--border);
    --color-input: var(--input);
    --color-ring: var(--ring);

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

    --color-sidebar: var(--sidebar);
    --color-sidebar-foreground: var(--sidebar-foreground);
    --color-sidebar-primary: var(--sidebar-primary);
    --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
    --color-sidebar-accent: var(--sidebar-accent);
    --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
    --color-sidebar-border: var(--sidebar-border);
    --color-sidebar-ring: var(--sidebar-ring);
}

:root {
    --background: oklch(1 0 0);
    --foreground: oklch(0.147 0.004 49.3);
    --card: oklch(1 0 0);
    --card-foreground: oklch(0.147 0.004 49.3);
    --popover: oklch(1 0 0);
    --popover-foreground: oklch(0.147 0.004 49.3);
    --primary: oklch(0.5 0.134 242.749);
    --primary-foreground: oklch(0.977 0.013 236.62);
    --secondary: oklch(0.967 0.001 286.375);
    --secondary-foreground: oklch(0.21 0.006 285.885);
    --muted: oklch(0.96 0.002 17.2);
    --muted-foreground: oklch(0.547 0.021 43.1);
    --accent: oklch(0.96 0.002 17.2);
    --accent-foreground: oklch(0.214 0.009 43.1);
    --destructive: oklch(0.577 0.245 27.325);
    --destructive-foreground: oklch(0.577 0.245 27.325);
    --border: oklch(0.922 0.005 34.3);
    --input: oklch(0.922 0.005 34.3);
    --ring: oklch(0.714 0.014 41.2);
    --chart-1: oklch(0.905 0.182 98.111);
    --chart-2: oklch(0.795 0.184 86.047);
    --chart-3: oklch(0.681 0.162 75.834);
    --chart-4: oklch(0.554 0.135 66.442);
    --chart-5: oklch(0.476 0.114 61.907);
    --radius: 0.625rem;
    --sidebar: oklch(0.986 0.002 67.8);
    --sidebar-foreground: oklch(0.147 0.004 49.3);
    --sidebar-primary: oklch(0.588 0.158 241.966);
    --sidebar-primary-foreground: oklch(0.977 0.013 236.62);
    --sidebar-accent: oklch(0.96 0.002 17.2);
    --sidebar-accent-foreground: oklch(0.214 0.009 43.1);
    --sidebar-border: oklch(0.922 0.005 34.3);
    --sidebar-ring: oklch(0.714 0.014 41.2);
}

.dark {
    --background: oklch(0.147 0.004 49.3);
    --foreground: oklch(0.986 0.002 67.8);
    --card: oklch(0.214 0.009 43.1);
    --card-foreground: oklch(0.986 0.002 67.8);
    --popover: oklch(0.214 0.009 43.1);
    --popover-foreground: oklch(0.986 0.002 67.8);
    --primary: oklch(0.443 0.11 240.79);
    --primary-foreground: oklch(0.977 0.013 236.62);
    --secondary: oklch(0.274 0.006 286.033);
    --secondary-foreground: oklch(0.985 0 0);
    --muted: oklch(0.268 0.011 36.5);
    --muted-foreground: oklch(0.714 0.014 41.2);
    --accent: oklch(0.268 0.011 36.5);
    --accent-foreground: oklch(0.986 0.002 67.8);
    --destructive: oklch(0.704 0.191 22.216);
    --destructive-foreground: oklch(0.637 0.237 25.331);
    --border: oklch(1 0 0 / 10%);
    --input: oklch(1 0 0 / 15%);
    --ring: oklch(0.547 0.021 43.1);
    --chart-1: oklch(0.905 0.182 98.111);
    --chart-2: oklch(0.795 0.184 86.047);
    --chart-3: oklch(0.681 0.162 75.834);
    --chart-4: oklch(0.554 0.135 66.442);
    --chart-5: oklch(0.476 0.114 61.907);
    --sidebar: oklch(0.214 0.009 43.1);
    --sidebar-foreground: oklch(0.986 0.002 67.8);
    --sidebar-primary: oklch(0.685 0.169 237.323);
    --sidebar-primary-foreground: oklch(0.293 0.066 243.157);
    --sidebar-accent: oklch(0.268 0.011 36.5);
    --sidebar-accent-foreground: oklch(0.986 0.002 67.8);
    --sidebar-border: oklch(1 0 0 / 10%);
    --sidebar-ring: oklch(0.547 0.021 43.1);
}

@layer base {
    * {
        @apply border-border outline-ring/50;
    }

    body {
        @apply bg-background text-foreground;
    }
    html {
        @apply font-sans;
    }
}

@theme inline {
    --font-heading: var(--font-sans);
    --font-sans: 'Montserrat Variable', sans-serif;
    --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);
    --color-foreground: var(--foreground);
    --color-background: var(--background);
    --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);
}

/* =========================================================================
   BAMS Legal — Official brand palette (LOCKED, docs/05-UI-UX §8)
   Defined once as CSS custom properties; never hardcode hex in components.
   The shadcn semantic tokens below are remapped onto these brand tokens.
   ========================================================================= */
:root {
    --brand-gold: #f5b800;
    --brand-gold-light: #ffd54f;
    --brand-gold-muted: #b8891a;
    --brand-charcoal: #1e1e1e;
    --brand-charcoal-2: #2d2d2d;
    --brand-offwhite: #f9f5ec;
    --brand-text: #e8e0cc;
    --brand-text-muted: #a09070;
    /* Status colours (05-UI-UX §4), tuned for filled badges */
    --brand-success: #3fb950;
    --brand-warning: #e3a008;
    --brand-danger: #e5484d;
    --brand-info: #4c8dff;
}

/* Expose brand tokens as Tailwind utilities (bg-brand-gold, text-brand-text, …) */
@theme inline {
    --color-brand-gold: var(--brand-gold);
    --color-brand-gold-light: var(--brand-gold-light);
    --color-brand-gold-muted: var(--brand-gold-muted);
    --color-brand-charcoal: var(--brand-charcoal);
    --color-brand-charcoal-2: var(--brand-charcoal-2);
    --color-brand-offwhite: var(--brand-offwhite);
    --color-brand-text: var(--brand-text);
    --color-brand-text-muted: var(--brand-text-muted);
    --color-brand-success: var(--brand-success);
    --color-brand-warning: var(--brand-warning);
    --color-brand-danger: var(--brand-danger);
    --color-brand-info: var(--brand-info);
}

/* Light surfaces (client portal / print / PDFs): off-white on charcoal, gold accents */
:root {
    --background: var(--brand-offwhite);
    --foreground: var(--brand-charcoal);
    --card: #ffffff;
    --card-foreground: var(--brand-charcoal);
    --popover: #ffffff;
    --popover-foreground: var(--brand-charcoal);
    --primary: var(--brand-gold);
    --primary-foreground: var(--brand-charcoal);
    --secondary: #efe7d4;
    --secondary-foreground: var(--brand-charcoal);
    --muted: #efe7d4;
    --muted-foreground: #6b5f45;
    --accent: #efe7d4;
    --accent-foreground: var(--brand-charcoal);
    --destructive: var(--brand-danger);
    --destructive-foreground: #ffffff;
    --border: #e0d5bc;
    --input: #e0d5bc;
    --ring: var(--brand-gold);
    --chart-1: var(--brand-gold);
    --chart-2: var(--brand-gold-muted);
    --chart-3: var(--brand-text-muted);
    --chart-4: var(--brand-info);
    --chart-5: var(--brand-success);
    --sidebar: #ffffff;
    --sidebar-foreground: var(--brand-charcoal);
    --sidebar-primary: var(--brand-gold);
    --sidebar-primary-foreground: var(--brand-charcoal);
    --sidebar-accent: #efe7d4;
    --sidebar-accent-foreground: var(--brand-charcoal);
    --sidebar-border: #e0d5bc;
    --sidebar-ring: var(--brand-gold);
}

/* Staff app default: dark gold-on-charcoal.
   Body text is Text Light (never gold); gold is accents/headings/interactive only. */
.dark {
    --background: var(--brand-charcoal);
    --foreground: var(--brand-text);
    --card: var(--brand-charcoal-2);
    --card-foreground: var(--brand-text);
    --popover: var(--brand-charcoal-2);
    --popover-foreground: var(--brand-text);
    --primary: var(--brand-gold);
    --primary-foreground: var(--brand-charcoal);
    --secondary: #3a3a3a;
    --secondary-foreground: var(--brand-text);
    --muted: #262626;
    --muted-foreground: var(--brand-text-muted);
    --accent: #3a3a3a;
    --accent-foreground: var(--brand-text);
    --destructive: var(--brand-danger);
    --destructive-foreground: #ffffff;
    --border: #3a352b;
    --input: #453f30;
    --ring: var(--brand-gold);
    --chart-1: var(--brand-gold);
    --chart-2: var(--brand-gold-muted);
    --chart-3: var(--brand-text-muted);
    --chart-4: var(--brand-info);
    --chart-5: var(--brand-success);
    --sidebar: var(--brand-charcoal-2);
    --sidebar-foreground: var(--brand-text);
    --sidebar-primary: var(--brand-gold);
    --sidebar-primary-foreground: var(--brand-charcoal);
    --sidebar-accent: #3a3a3a;
    --sidebar-accent-foreground: var(--brand-text);
    --sidebar-border: #3a352b;
    --sidebar-ring: var(--brand-gold);
}

/* Gold headings — never gold body text (WCAG AA, 05-UI-UX §8) */
.dark h1,
.dark h2,
.dark h3 {
    color: var(--brand-gold);
}
