/**
 * ResearchWindow design tokens — logo-aligned, enterprise-grade palette.
 * Derived from brand mark: royal blue, violet, navy (text/chrome only), red accent.
 * Surfaces: cool slate ash on white — never large navy fills (WCAG AA body text).
 */
:root {
    /* Logo brand hues */
    --rw-brand-blue: #0056b3;
    --rw-brand-blue-hover: #004494;
    --rw-brand-blue-light: #2b7cd3;
    --rw-brand-purple: #6b3fa0;
    --rw-brand-purple-hover: #5a3388;
    --rw-brand-navy: #002244;
    --rw-brand-red: #d32f2f;

    /* Cool slate ash — neutral canvas (blue undertone, not green) */
    --rw-slate-25: #fafbfc;
    --rw-slate-50: #f4f6f9;
    --rw-slate-100: #eef1f6;
    --rw-slate-200: #d8dee9;
    --rw-slate-300: #b8c2d1;
    --rw-slate-500: #6b7789;
    --rw-slate-600: #5c6778;
    --rw-slate-700: #3d4756;
    --rw-slate-800: #252f3d;
    --rw-slate-900: #1a2332;

    /* Legacy aliases */
    --rw-ash-50: var(--rw-slate-50);
    --rw-ash-100: var(--rw-slate-100);
    --rw-ash-200: var(--rw-slate-200);
    --rw-ash-300: var(--rw-slate-300);
    --rw-ash-500: var(--rw-slate-500);
    --rw-ash-600: var(--rw-slate-600);
    --rw-ash-700: var(--rw-slate-700);
    --rw-ash-800: var(--rw-slate-800);
    --rw-ash-900: var(--rw-slate-900);
    --rw-sage-25: var(--rw-slate-25);
    --rw-sage-50: var(--rw-slate-50);
    --rw-sage-100: var(--rw-slate-100);
    --rw-sage-200: var(--rw-slate-200);
    --rw-neutral-50: var(--rw-slate-25);
    --rw-neutral-100: var(--rw-slate-50);
    --rw-neutral-200: var(--rw-slate-200);
    --rw-neutral-300: var(--rw-slate-300);
    --rw-neutral-500: var(--rw-slate-500);
    --rw-neutral-600: var(--rw-slate-600);
    --rw-neutral-700: var(--rw-slate-700);
    --rw-neutral-800: var(--rw-slate-800);
    --rw-neutral-900: var(--rw-slate-900);

    /* Primary = logo royal blue */
    --rw-primary: var(--rw-brand-blue);
    --rw-primary-hover: var(--rw-brand-blue-hover);
    --rw-primary-subtle: #e8f1fb;
    --rw-primary-muted: #c5d9f0;
    --rw-primary-border: #8bb8e8;

    /* Secondary = logo violet */
    --rw-accent: var(--rw-brand-purple);
    --rw-accent-subtle: #f3edf8;
    --rw-accent-muted: #dcc9eb;

    --rw-success: #0d7a4e;
    --rw-warning: #9a6700;
    --rw-danger: var(--rw-brand-red);
    --rw-info: var(--rw-brand-blue-light);

    --rw-surface: #ffffff;
    --rw-surface-muted: var(--rw-slate-50);
    --rw-border: var(--rw-slate-200);
    --rw-text: var(--rw-brand-navy);
    --rw-text-secondary: var(--rw-slate-700);
    --rw-text-muted: var(--rw-slate-600);
    --rw-text-on-dark: #f4f6f9;

    --researchwindow-primary: var(--rw-brand-navy);
    --researchwindow-blue: var(--rw-brand-blue);
    --researchwindow-purple: var(--rw-brand-purple);
    --researchwindow-green: var(--rw-success);
    --researchwindow-accent: var(--rw-brand-purple);
    --researchwindow-dark: var(--rw-brand-navy);

    --portal-primary: var(--rw-brand-blue);
    --portal-accent: var(--rw-brand-purple);
    --portal-highlight: var(--rw-brand-purple);
    --portal-chrome: var(--rw-surface);
    --portal-chrome-border: var(--rw-slate-200);
    --portal-sidebar: var(--rw-slate-25);
    --portal-sidebar-border: var(--rw-slate-200);
    --portal-canvas: var(--rw-slate-50);
    --portal-card-border: var(--rw-slate-200);

    /* Footer — light blue surface, strong green type */
    --rw-footer-bg: #d9ecfb;
    --rw-footer-bg-deep: #c5dff5;
    --rw-footer-border: #a8cce8;
    --rw-footer-text: #0a6b42;
    --rw-footer-text-strong: #05472c;
    --rw-footer-text-muted: #0d7a4e;

    /* Join free / register CTA — solid fill (pure green; alt: --rw-join-cta-blue) */
    --rw-join-cta-bg: #008000;
    --rw-join-cta-hover: #006600;
    --rw-join-cta-blue: #0056b3;
    --rw-join-cta-blue-hover: #004494;

    --rw-font-sans: 'Segoe UI', system-ui, -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;
    --rw-radius-sm: 0.375rem;
    --rw-radius: 0.5rem;
    --rw-radius-lg: 0.75rem;
    --rw-shadow-sm: 0 1px 2px rgba(0, 34, 68, 0.06);
    --rw-shadow: 0 4px 14px rgba(0, 34, 68, 0.08);
    --rw-shadow-lg: 0 12px 32px rgba(0, 34, 68, 0.1);

    --bs-primary: var(--rw-primary);
    --bs-primary-rgb: 0, 86, 179;
    --bs-body-color: var(--rw-text-secondary);
    --bs-body-bg: var(--rw-surface);
    --bs-link-color: var(--rw-primary);
    --bs-link-hover-color: var(--rw-primary-hover);
}

body {
    font-family: var(--rw-font-sans);
    color: var(--rw-text-secondary);
    -webkit-font-smoothing: antialiased;
}

.text-muted {
    color: var(--rw-text-muted) !important;
}

.text-primary {
    color: var(--rw-primary) !important;
}

.btn-primary {
    --bs-btn-bg: var(--rw-primary);
    --bs-btn-border-color: var(--rw-primary);
    --bs-btn-hover-bg: var(--rw-primary-hover);
    --bs-btn-hover-border-color: var(--rw-primary-hover);
    --bs-btn-active-bg: var(--rw-primary-hover);
    --bs-btn-active-border-color: var(--rw-primary-hover);
}

.card {
    border-color: var(--rw-border);
    box-shadow: var(--rw-shadow-sm);
}

.card-header {
    background: var(--rw-surface-muted);
    border-bottom-color: var(--rw-border);
    color: var(--rw-text);
    font-weight: 600;
}

.alert-warning {
    --bs-alert-color: #6b4f0a;
    --bs-alert-bg: #faf6eb;
    --bs-alert-border-color: #e8d9a8;
}

.alert-info {
    --bs-alert-color: #003d7a;
    --bs-alert-bg: var(--rw-primary-subtle);
    --bs-alert-border-color: var(--rw-primary-muted);
}

.alert-danger {
    --bs-alert-color: #7f1d1d;
    --bs-alert-bg: #fef2f2;
    --bs-alert-border-color: #fecaca;
}
