/*
 * base-ux.css — camada de base compartilhada pelas páginas da plataforma.
 *
 * Carregada ANTES do <style> de cada página, de propósito: é piso, não teto.
 * Qualquer regra daqui pode ser sobrescrita pela página sem !important.
 *
 * Existe porque três coisas se repetiam em todas as páginas:
 *   1. a Geist era declarada no CSS e nunca carregada (o site inteiro caía na fonte do sistema);
 *   2. campos de formulário não herdavam a fonte — o formulário saía com outra tipografia;
 *   3. não havia indicador de foco visível: quem navega por teclado ficava sem saber onde está.
 */

/* 1. Controles de formulário herdam a tipografia da página.
      Sem isto, <input>/<select>/<textarea> caem no default do navegador. */
button,
input,
select,
textarea {
    font-family: inherit;
    font-size: 100%;
    line-height: inherit;
    color: inherit;
}

/* 2. Foco visível para teclado (sem poluir o clique do mouse). */
:focus-visible {
    outline: 2px solid #0F8C64;
    outline-offset: 2px;
    border-radius: 6px;
}

/* 3. Mídia nunca estoura o contêiner — causa comum de rolagem lateral no celular. */
img,
svg,
video,
canvas {
    max-width: 100%;
    height: auto;
}

/* 4. Toque: remove o atraso de 300ms e evita alvo colado na borda. */
a,
button,
[role="button"] {
    touch-action: manipulation;
}

/* 5. Âncoras não param escondidas atrás de header fixo. */
[id] {
    scroll-margin-top: 84px;
}

/* 6. Respeita quem pediu menos movimento no sistema. */
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
        scroll-behavior: auto !important;
    }
}

/* 7. Seleção de texto na cor da marca. */
::selection {
    background: rgba(15, 140, 100, .16);
}

/* 8. Renderização de texto mais limpa (a Geist agrada muito com isto). */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}

/*
 * 9. Alvos de toque nos links auxiliares de autenticação.
 *    "Esqueceu sua senha?", "Cadastre-se", "Faça login" e os links dos termos tinham
 *    15–18px de altura — abaixo do mínimo confortável no celular. O padding cresce a
 *    área clicável sem mexer no tamanho da fonte nem no alinhamento (são centralizados).
 */
.forgot-password a,
.signup-link a,
.login-link a,
.terms a,
.footer-links a {
    display: inline-block;
    padding: 8px 4px;
}

.forgot-password,
.signup-link,
.login-link {
    line-height: 1.2;
}
