body {
    cursor: var(--cursor-padrao, auto);
    min-height: 100vh;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: var(--cor-fundo);
    color: var(--cor-texto);
    transition: background-color var(--transicao-curta), color var(--transicao-curta);
}

body,
button,
input,
select,
textarea {
    color: var(--cor-texto);
}

a {
    cursor: var(--cursor-interativo, pointer);
    color: inherit;
    text-decoration: none;
}

button {
    border: 0;
    background: transparent;
}

input,
select,
textarea {
    width: 100%;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio-pequeno);
    background: var(--cor-superficie);
    outline: none;
}

input:focus,
select:focus,
textarea:focus,
button:focus-visible,
a:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--cor-primaria) 24%, transparent);
    outline-offset: 2px;
}

.texto-secundario {
    color: var(--cor-texto-secundario);
}

.titulo-pagina {
    font-size: clamp(1.65rem, 2.2vw, 2.1rem);
    line-height: 1.1;
}

.subtitulo-pagina {
    margin-top: 8px;
    color: var(--cor-texto-secundario);
    line-height: 1.5;
}

/* Cursores de 24 px: o ponto de clique fica na ponta da seta ou do indicador. */
@media (hover: hover) and (pointer: fine) and (forced-colors: none) {
    :root {
        --cursor-padrao: url('../../recursos/cursores/seta-claro.svg?v=2') 4 3, auto;
        --cursor-interativo: url('../../recursos/cursores/mao-claro.svg?v=2') 10 3, pointer;
    }
    :root[data-tema="escuro"] {
        --cursor-padrao: url('../../recursos/cursores/seta-escuro.svg?v=2') 4 3, auto;
        --cursor-interativo: url('../../recursos/cursores/mao-escuro.svg?v=2') 10 3, pointer;
    }
}

/* Campos de texto mantêm o cursor de edição; estados de espera e bloqueio seguem nativos. */
textarea, input:not([type]), input:is([type="text"], [type="email"], [type="password"], [type="search"], [type="number"], [type="url"], [type="tel"]), [contenteditable="true"] { cursor: text; }
select, summary, input:is([type="checkbox"], [type="radio"], [type="file"]) { cursor: var(--cursor-interativo, pointer); }

/* Um acabamento para a página inteira e para áreas internas, sem alterar sua rolagem. */
@media (forced-colors: none) {
    :root { --cor-rolagem: #839fc1; }
    :root[data-tema="escuro"] { --cor-rolagem: #536e91; }
    ::-webkit-scrollbar { width: 10px; height: 10px; }
    ::-webkit-scrollbar-track, ::-webkit-scrollbar-corner { background: var(--cor-fundo); }
    ::-webkit-scrollbar-thumb {
        background: var(--cor-rolagem);
        border: 2px solid var(--cor-fundo);
        border-radius: 10px;
    }
    ::-webkit-scrollbar-thumb:hover { background: var(--cor-primaria); }
    ::-webkit-scrollbar-button { display: none; }
    /* Firefox usa as propriedades padrão, com espessura definida pelo navegador. */
    @supports not selector(::-webkit-scrollbar) {
        * { scrollbar-width: thin; scrollbar-color: var(--cor-rolagem) var(--cor-fundo); }
    }
}
