/* Beyond Limits - base global opt-in.
   Carregar antes dos componentes e do CSS específico da página. */

:root {
    --bl-color-primary: #193569;
    --bl-color-primary-deep: #0f2346;
    --bl-color-primary-hover: #12284d;
    --bl-color-accent: #00d4ff;
    --bl-color-surface: #ffffff;
    --bl-color-background: #f5f7fb;
    --bl-color-text: #1f2937;
    --bl-color-muted: #6b7280;
    --bl-color-border: #d5dae3;
    --bl-color-success: #1e8e5a;
    --bl-color-warning: #d68910;
    --bl-color-danger: #c0392b;
    --bl-radius-sm: 4px;
    --bl-radius-md: 8px;
    --bl-radius-lg: 15px;
    --bl-shadow-card: 0 10px 30px rgba(11, 24, 48, 0.16);
    --bl-font-body: "Inter", "Segoe UI", sans-serif;
    --bl-font-heading: "Poppins", "Segoe UI", sans-serif;
    --bl-focus-ring: 0 0 0 3px rgba(0, 212, 255, 0.24);

    /* Compatibilidade temporária com os nomes usados pelos CSS antigos. */
    --bl-navy: var(--bl-color-primary);
    --bl-navy-deep: var(--bl-color-primary-deep);
    --bl-cyan: var(--bl-color-accent);
    --bl-bg: var(--bl-color-background);
    --bl-ink: var(--bl-color-text);
    --bl-muted: var(--bl-color-muted);
    --bl-radius: 1.1rem;
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
}

body {
    min-width: 0;
    margin: 0;
    color: var(--bl-color-text);
    font-family: var(--bl-font-body);
}

img,
svg,
video {
    display: block;
    max-width: 100%;
    height: auto;
}

button,
input,
select,
textarea {
    font: inherit;
}

:where(a, button, input, select, textarea):focus-visible {
    outline: 2px solid var(--bl-color-accent);
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
    }
}
