/* =========================================================
   MOCURVE SAAS — BASE
   Variáveis, reset e elementos globais
   ========================================================= */

:root {
    --color-primary: #111111;
    --color-primary-soft: #242424;
    --color-accent: #9d00ff;

    --color-background: #f5f5f3;
    --color-surface: #ffffff;
    --color-surface-soft: #fafafa;

    --color-text: #171717;
    --color-text-secondary: #666666;
    --color-text-muted: #929292;

    --color-border: #e7e7e4;
    --color-border-strong: #d9d9d5;

    --color-success: #228653;
    --color-success-soft: #eaf7ef;
    --color-warning: #b77a17;
    --color-warning-soft: #fff6e5;
    --color-danger: #c94a4a;

    --radius-xs: 6px;
    --radius-sm: 10px;
    --radius-md: 14px;
    --radius-lg: 20px;
    --radius-xl: 26px;

    --shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);
    --shadow-md: 0 8px 30px rgba(0, 0, 0, .06);

    --sidebar-width: 250px;
    --topbar-height: 82px;

    --font-family: Inter, ui-sans-serif, system-ui, -apple-system,
        BlinkMacSystemFont, "Segoe UI", sans-serif;

    --transition: 180ms ease;
}

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

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scrollbar-gutter: stable; /* Evita trepidação (Layout Shift) com scrollbars */
}

body {
    margin: 0;
    min-width: 320px;
    background: var(--color-background);
    color: var(--color-text);
    font-family: var(--font-family);
    font-size: 14px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

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

button,
a {
    -webkit-tap-highlight-color: transparent;
}

/* A11y: Estado de foco visível e elegante para navegação por teclado */
:focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 2px;
    border-radius: 4px;
}

button {
    border: 0;
    cursor: pointer;
}

a {
    color: inherit;
    text-decoration: none;
}

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

h1,
h2,
h3,
p {
    margin-top: 0;
}

h1,
h2,
h3,
strong {
    letter-spacing: -.025em;
}

::selection {
    background: var(--color-accent);
    color: var(--color-primary);
}