@import 'tailwindcss';

@import 'tw-animate-css';

@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 {
    /* Monily brand: sampled from public/branding/monily-logo.png */
    --background: oklch(1 0 0); /* #FFFFFF */
    --foreground: oklch(0.274 0.026 230.576); /* #1A2A32 */
    --card: oklch(1 0 0); /* #FFFFFF */
    --card-foreground: oklch(0.274 0.026 230.576); /* #1A2A32 */
    --popover: oklch(1 0 0); /* #FFFFFF */
    --popover-foreground: oklch(0.274 0.026 230.576); /* #1A2A32 */
    --primary: oklch(0.425 0.18 288.482); /* #5030A8 */
    --primary-foreground: oklch(1 0 0); /* #FFFFFF */
    --secondary: oklch(0.948 0.018 303.412); /* #F0EBF8 */
    --secondary-foreground: oklch(0.425 0.18 288.482); /* #5030A8 */
    --muted: oklch(0.948 0.018 303.412); /* #F0EBF8 */
    --muted-foreground: oklch(0.517 0.023 229.423); /* #5B6B73 */
    --accent: oklch(0.948 0.018 303.412); /* #F0EBF8 */
    --accent-foreground: oklch(0.425 0.18 288.482); /* #5030A8 */
    --destructive: oklch(0.577 0.245 27.325);
    --destructive-foreground: oklch(0.577 0.245 27.325);
    --border: oklch(0.92 0.015 288);
    --input: oklch(0.92 0.015 288);
    --ring: oklch(0.425 0.18 288.482); /* #5030A8 */
    --chart-1: oklch(0.425 0.18 288.482); /* #5030A8 */
    --chart-2: oklch(0.293 0.073 265.061); /* #1A2A50 */
    --chart-3: oklch(0.769 0.165 70.08); /* #F59E0B */
    --chart-4: oklch(0.637 0.208 25.331); /* #EF4444 */
    --chart-5: oklch(0.715 0.126 215.221); /* #06B6D4 */
    --radius: 0.625rem;
    --sidebar: oklch(0.985 0.01 303);
    --sidebar-foreground: oklch(0.274 0.026 230.576); /* #1A2A32 */
    --sidebar-primary: oklch(0.425 0.18 288.482); /* #5030A8 */
    --sidebar-primary-foreground: oklch(1 0 0); /* #FFFFFF */
    --sidebar-accent: oklch(0.948 0.018 303.412); /* #F0EBF8 */
    --sidebar-accent-foreground: oklch(0.425 0.18 288.482); /* #5030A8 */
    --sidebar-border: oklch(0.92 0.015 288);
    --sidebar-ring: oklch(0.425 0.18 288.482); /* #5030A8 */
}

.dark {
    --background: oklch(0.216 0.04 288); /* purple-navy */
    --foreground: oklch(0.985 0.01 303);
    --card: oklch(0.25 0.04 288);
    --card-foreground: oklch(0.985 0.01 303);
    --popover: oklch(0.25 0.04 288);
    --popover-foreground: oklch(0.985 0.01 303);
    --primary: oklch(0.573 0.187 290.817); /* #7C5CDC */
    --primary-foreground: oklch(1 0 0); /* #FFFFFF */
    --secondary: oklch(0.3 0.04 288);
    --secondary-foreground: oklch(0.985 0.01 303);
    --muted: oklch(0.3 0.04 288);
    --muted-foreground: oklch(0.72 0.02 288);
    --accent: oklch(0.3 0.04 288);
    --accent-foreground: oklch(0.985 0.01 303);
    --destructive: oklch(0.396 0.141 25.723);
    --destructive-foreground: oklch(0.637 0.237 25.331);
    --border: oklch(0.32 0.04 288);
    --input: oklch(0.32 0.04 288);
    --ring: oklch(0.573 0.187 290.817); /* #7C5CDC */
    --chart-1: oklch(0.573 0.187 290.817); /* #7C5CDC */
    --chart-2: oklch(0.55 0.08 265);
    --chart-3: oklch(0.769 0.165 70.08); /* #F59E0B */
    --chart-4: oklch(0.637 0.208 25.331); /* #EF4444 */
    --chart-5: oklch(0.715 0.126 215.221); /* #06B6D4 */
    --sidebar: oklch(0.25 0.05 288);
    --sidebar-foreground: oklch(0.985 0.01 303);
    --sidebar-primary: oklch(0.573 0.187 290.817); /* #7C5CDC */
    --sidebar-primary-foreground: oklch(1 0 0); /* #FFFFFF */
    --sidebar-accent: oklch(0.3 0.04 288);
    --sidebar-accent-foreground: oklch(0.985 0.01 303);
    --sidebar-border: oklch(0.32 0.04 288);
    --sidebar-ring: oklch(0.573 0.187 290.817); /* #7C5CDC */
}

@layer base {
    * {
        @apply border-border;
    }

    body {
        @apply bg-background text-foreground;
    }
}

/*
 * Scoped "dashboard" building blocks the AI agent is instructed to use when
 * it presents kind=html artifacts (see App\Ai\Tools\PresentArtifact and
 * FinancialAnalystAgent::instructions()). Keeping these first-class means the
 * agent's freeform markup always renders as a consistent, styled dashboard
 * instead of relying on the model to invent its own utility classes.
 */
@layer components {
    .agent-html-content .kpi-grid {
        @apply my-3 grid grid-cols-2 gap-3 sm:grid-cols-3;
    }

    .agent-html-content .kpi-card {
        @apply rounded-lg border border-border bg-muted/40 p-3;
    }

    .agent-html-content .kpi-label {
        @apply text-xs font-medium tracking-wide text-muted-foreground uppercase;
    }

    .agent-html-content .kpi-value {
        @apply mt-1 text-lg font-semibold text-foreground;
    }

    .agent-html-content .kpi-value-positive {
        @apply text-emerald-600 dark:text-emerald-400;
    }

    .agent-html-content .kpi-value-negative {
        @apply text-red-600 dark:text-red-400;
    }

    .agent-html-content .callout {
        @apply my-3 rounded-lg border-l-4 border-primary bg-accent/50 p-3 text-sm text-foreground;
    }
}
