/**
 * Escola 360 - fonte única de tokens semânticos.
 * Pares de texto e superfície foram escolhidos para WCAG AA.
 */

:root {
    color-scheme: light;

    /* Marca e ações */
    --color-primary-50: #eff6ff;
    --color-primary-100: #dbeafe;
    --color-primary-200: #bfdbfe;
    --color-primary-300: #93c5fd;
    --color-primary-400: #60a5fa;
    --color-primary-500: #2563eb;
    --color-primary-600: #1d4ed8;
    --color-primary-700: #1e40af;
    --color-primary-800: #1e3a8a;
    --color-primary-900: #172554;
    --color-primary: var(--color-primary-600);
    --color-primary-hover: var(--color-primary-700);
    --color-primary-active: var(--color-primary-800);
    --color-primary-light: var(--color-primary-50);
    --color-on-primary: #ffffff;

    --color-secondary-50: #f5f3ff;
    --color-secondary-100: #ede9fe;
    --color-secondary-200: #ddd6fe;
    --color-secondary-300: #c4b5fd;
    --color-secondary-400: #a78bfa;
    --color-secondary-500: #8b5cf6;
    --color-secondary-600: #7c3aed;
    --color-secondary-700: #6d28d9;
    --color-secondary-800: #5b21b6;
    --color-secondary-900: #4c1d95;
    --color-secondary: var(--color-secondary-700);
    --color-on-secondary: #ffffff;

    /* Estados: tons escuros para texto/ícone, tons claros para superfície */
    --color-success-50: #ecfdf5;
    --color-success-100: #d1fae5;
    --color-success-200: #a7f3d0;
    --color-success-300: #6ee7b7;
    --color-success-400: #34d399;
    --color-success-500: #10b981;
    --color-success-600: #059669;
    --color-success-700: #047857;
    --color-success: var(--color-success-700);
    --color-success-light: var(--color-success-50);
    --color-on-success: #ffffff;

    --color-warning-50: #fffbeb;
    --color-warning-100: #fef3c7;
    --color-warning-200: #fde68a;
    --color-warning-300: #fcd34d;
    --color-warning-400: #fbbf24;
    --color-warning-500: #f59e0b;
    --color-warning-600: #b45309;
    --color-warning-700: #92400e;
    --color-warning: var(--color-warning-700);
    --color-warning-light: var(--color-warning-50);
    --color-on-warning: #ffffff;

    --color-error-50: #fef2f2;
    --color-error-100: #fee2e2;
    --color-error-200: #fecaca;
    --color-error-300: #fca5a5;
    --color-error-400: #f87171;
    --color-error-500: #ef4444;
    --color-error-600: #dc2626;
    --color-error-700: #b91c1c;
    --color-error: var(--color-error-700);
    --color-danger: var(--color-error-700);
    --color-error-light: var(--color-error-50);
    --color-danger-light: var(--color-error-50);
    --color-on-danger: #ffffff;

    --color-info-50: #eff6ff;
    --color-info-100: #dbeafe;
    --color-info-200: #bfdbfe;
    --color-info-300: #93c5fd;
    --color-info-400: #60a5fa;
    --color-info-500: #3b82f6;
    --color-info-600: #2563eb;
    --color-info-700: #1d4ed8;
    --color-info: var(--color-info-700);
    --color-info-light: var(--color-info-50);
    --color-on-info: #ffffff;

    /* Neutros e superfícies */
    --color-gray-50: #f8fafc;
    --color-gray-100: #f1f5f9;
    --color-gray-200: #e2e8f0;
    --color-gray-300: #cbd5e1;
    --color-gray-400: #94a3b8;
    --color-gray-500: #64748b;
    --color-gray-600: #475569;
    --color-gray-700: #334155;
    --color-gray-800: #1e293b;
    --color-gray-900: #0f172a;

    --color-surface: #ffffff;
    --color-surface-muted: var(--color-gray-50);
    --color-surface-subtle: var(--color-gray-100);
    --color-surface-inverse: var(--color-gray-900);
    --color-background: var(--color-gray-50);
    --color-foreground: var(--color-gray-900);
    --color-muted: var(--color-gray-100);
    --color-border: var(--color-gray-300);
    --color-ring: var(--color-primary-600);

    --color-text-primary: var(--color-gray-900);
    --color-text-secondary: var(--color-gray-600);
    --color-text-tertiary: var(--color-gray-600);
    --color-text-disabled: var(--color-gray-500);
    --color-text-inverse: #ffffff;
    --color-text-link: var(--color-primary-700);
    --color-text-link-hover: var(--color-primary-800);

    --color-bg-primary: var(--color-surface);
    --color-bg-secondary: var(--color-surface-muted);
    --color-bg-tertiary: var(--color-surface-subtle);
    --color-bg-sidebar: #172554;
    --color-bg-sidebar-hover: #1e3a8a;
    --color-bg-overlay: rgb(15 23 42 / 55%);
    --color-bg-modal: rgb(15 23 42 / 70%);

    --color-border-light: var(--color-gray-200);
    --color-border-default: var(--color-gray-300);
    --color-border-dark: var(--color-gray-500);
    --color-border-focus: var(--color-ring);

    /* Tipografia */
    --font-family-primary: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --font-family-mono: "Fira Code", Consolas, monospace;
    --font-size-xs: 0.75rem;
    --font-size-sm: 0.875rem;
    --font-size-base: 1rem;
    --font-size-lg: 1.125rem;
    --font-size-xl: 1.25rem;
    --font-size-2xl: 1.5rem;
    --font-size-3xl: 1.875rem;
    --font-size-4xl: 2.25rem;
    --font-size-5xl: 3rem;
    --font-weight-light: 300;
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --line-height-tight: 1.25;
    --line-height-snug: 1.375;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.625;
    --line-height-loose: 2;
    --letter-spacing-tight: -0.025em;
    --letter-spacing-normal: 0;
    --letter-spacing-wide: 0.025em;
    --letter-spacing-wider: 0.05em;

    /* Espaçamento */
    --spacing-0: 0;
    --spacing-1: 0.25rem;
    --spacing-2: 0.5rem;
    --spacing-3: 0.75rem;
    --spacing-4: 1rem;
    --spacing-5: 1.25rem;
    --spacing-6: 1.5rem;
    --spacing-8: 2rem;
    --spacing-10: 2.5rem;
    --spacing-12: 3rem;
    --spacing-16: 4rem;
    --spacing-20: 5rem;
    --spacing-24: 6rem;

    /* Forma, elevação, movimento e camadas */
    --border-width-thin: 1px;
    --border-width-default: 2px;
    --border-width-thick: 3px;
    --border-radius-none: 0;
    --border-radius-sm: 0.25rem;
    --border-radius-default: 0.5rem;
    --border-radius-md: 0.75rem;
    --border-radius-lg: 1rem;
    --border-radius-xl: 1.5rem;
    --border-radius-full: 9999px;
    --shadow-xs: 0 1px 2px rgb(15 23 42 / 5%);
    --shadow-sm: 0 1px 3px rgb(15 23 42 / 10%), 0 1px 2px rgb(15 23 42 / 6%);
    --shadow-default: 0 4px 12px rgb(15 23 42 / 8%);
    --shadow-md: 0 10px 24px rgb(15 23 42 / 10%);
    --shadow-lg: 0 20px 40px rgb(15 23 42 / 12%);
    --shadow-xl: 0 28px 60px rgb(15 23 42 / 18%);
    --shadow-inner: inset 0 1px 2px rgb(15 23 42 / 8%);
    --shadow-primary: 0 4px 14px rgb(29 78 216 / 25%);
    --shadow-success: 0 4px 14px rgb(4 120 87 / 22%);
    --shadow-error: 0 4px 14px rgb(185 28 28 / 22%);
    --shadow-glow-primary: var(--shadow-primary);
    --shadow-glow-success: var(--shadow-success);
    --shadow-glow-danger: var(--shadow-error);
    --shadow-3d: var(--shadow-lg);
    --shadow-float: var(--shadow-xl);
    --shadow-card-hover: var(--shadow-md);
    --transition-fast: 150ms var(--ease-out);
    --transition-default: 200ms var(--ease-out);
    --transition-slow: 250ms var(--ease-out);
    --transition-slower: 300ms var(--ease-out);
    --animation-duration-fast: 150ms;
    --animation-duration-default: 200ms;
    --animation-duration-slow: 250ms;
    --animation-duration-slower: 300ms;
    --ease-in: cubic-bezier(0.4, 0, 1, 1);
    --ease-out: cubic-bezier(0, 0, 0.2, 1);
    --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
    --ease-bounce: var(--ease-out);
    --ease-spring: var(--ease-out);
    --ease-smooth: var(--ease-out);
    --ease-elastic: var(--ease-out);
    --ease-back: var(--ease-out);
    --scale-hover: 1;
    --scale-active: 0.98;
    --scale-card-hover: 1;
    --translate-hover: 0;
    --rotate-hover: 0;
    --z-dropdown: 10;
    --z-sticky: 20;
    --z-fixed: 30;
    --z-modal-backdrop: 40;
    --z-modal: 50;
    --z-popover: 60;
    --z-tooltip: 70;
    --z-toast: 80;

    /* Efeitos compatíveis com componentes legados */
    --glass-bg: rgb(255 255 255 / 96%);
    --glass-bg-dark: rgb(15 23 42 / 96%);
    --glass-blur: blur(12px);
    --glass-border: var(--color-border-light);
    --gradient-primary: linear-gradient(135deg, var(--color-primary-700), var(--color-secondary-700));
    --gradient-secondary: linear-gradient(135deg, var(--color-secondary-700), var(--color-error-700));
    --gradient-success: linear-gradient(135deg, var(--color-success-700), #065f46);
    --gradient-warning: linear-gradient(135deg, var(--color-warning-700), #78350f);
    --gradient-danger: linear-gradient(135deg, var(--color-error-700), #991b1b);
    --gradient-dark: linear-gradient(135deg, var(--color-gray-900), #172554);
    --gradient-shine: linear-gradient(45deg, transparent 30%, rgb(255 255 255 / 20%) 50%, transparent 70%);
    --gradient-mesh: radial-gradient(at 40% 20%, var(--color-primary-700) 0, transparent 50%), radial-gradient(at 80% 0%, var(--color-secondary-700) 0, transparent 50%);

    /* Layout */
    --sidebar-width: 260px;
    --sidebar-width-collapsed: 72px;
    --header-height: 64px;
    --content-max-width: 1440px;
    --breakpoint-sm: 480px;
    --breakpoint-md: 768px;
    --breakpoint-lg: 1024px;
    --breakpoint-xl: 1280px;
    --breakpoint-2xl: 1536px;
}

[data-theme="dark"] {
    color-scheme: dark;
    --color-surface: #111827;
    --color-surface-muted: #0f172a;
    --color-surface-subtle: #1e293b;
    --color-surface-inverse: #f8fafc;
    --color-background: #0f172a;
    --color-foreground: #f8fafc;
    --color-muted: #1e293b;
    --color-border: #475569;
    --color-text-primary: #f8fafc;
    --color-text-secondary: #cbd5e1;
    --color-text-tertiary: #cbd5e1;
    --color-text-disabled: #94a3b8;
    --color-text-inverse: #0f172a;
    --color-text-link: #93c5fd;
    --color-text-link-hover: #bfdbfe;
    --color-bg-primary: var(--color-surface);
    --color-bg-secondary: var(--color-surface-muted);
    --color-bg-tertiary: var(--color-surface-subtle);
    --color-bg-sidebar: #020617;
    --color-bg-sidebar-hover: #1e293b;
    --color-border-light: #334155;
    --color-border-default: #475569;
    --color-border-dark: #94a3b8;
    --glass-bg: rgb(17 24 39 / 96%);
    --glass-border: var(--color-border-light);
}
