@import url('../tokens/tokens.css');
*{box-sizing:border-box}body{margin:var(--espaco-0);font:var(--tipo-corpo)/var(--linha) var(--fonte-corpo);background:var(--cor-fundo);color:var(--cor-texto);padding-block:var(--faixa-altura) calc(var(--nav-altura) + env(safe-area-inset-bottom))}main,.conteudo{max-width:var(--conteudo);margin-inline:auto;padding:var(--espaco-4)}h1,h2{line-height:1.2}h1{font-size:var(--tipo-titulo)}a{color:var(--cor-acao)}button,input,textarea,select{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;min-height:var(--alvo);min-width:var(--alvo)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:var(--espaco-1) solid var(--cor-foco);outline-offset:var(--espaco-1)}.pular{position:absolute;inset-inline-start:var(--espaco-4);transform:translateY(-300%)}.pular:focus{transform:none}img,svg,input,select,textarea,button{max-width:100%}[hidden]{display:none!important}.estado{padding:var(--espaco-4);border-inline-start:var(--espaco-1) solid var(--cor-aviso)}.erro{color:var(--cor-erro)}.sr{position:absolute;inline-size:var(--borda);block-size:var(--borda);overflow:hidden;clip-path:inset(50%)}

h1{margin-block:var(--espaco-2) var(--espaco-3);letter-spacing:-.025em}h2,h3,h4{line-height:var(--linha-titulo)}p{margin-block:var(--espaco-3)}main{min-width:0}main>section{min-width:0}main:focus{outline:none}main>section:focus-visible{outline:var(--espaco-1) solid var(--cor-foco)}main a:not(.cartao-link){text-decoration:none;display:inline-flex;align-items:center;min-height:var(--alvo);padding:var(--espaco-2) var(--espaco-3);border:var(--borda) solid var(--cor-borda);border-radius:var(--raio-pequeno);background:var(--cor-superficie);gap:var(--espaco-2)}main nav{gap:var(--espaco-2)}#conteudo .mosaico:has(>.capa-horizonte){grid-template-columns:1fr;gap:var(--espaco-3);margin-block:var(--espaco-5)}#conteudo .mosaico>.capa-horizonte{min-height:var(--miniatura)}
form{display:grid;gap:var(--espaco-4);padding:var(--espaco-4);background:var(--cor-superficie);border:var(--borda) solid var(--cor-borda);border-radius:var(--raio-medio)}label{font-weight:var(--peso-medio)}input,textarea,select{min-width:0;max-width:100%;min-height:var(--alvo);padding:var(--espaco-3);border:var(--borda) solid var(--cor-borda);border-radius:var(--raio-pequeno);color:var(--cor-texto);background:var(--cor-superficie)}textarea{resize:vertical}input[type=checkbox]{accent-color:var(--cor-marca)}form button[type=submit]{inline-size:100%;background:var(--cor-marca);color:var(--cor-sobre-acao);border:var(--borda) solid var(--cor-marca);border-radius:var(--raio-pequeno);padding:var(--espaco-3);font-weight:var(--peso-forte)}[aria-invalid=true]{border-color:var(--cor-erro)}[role=alert]{color:var(--cor-erro)}details{min-width:0}summary{cursor:pointer}small{font-size:var(--tipo-pequeno);color:var(--cor-suave)}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Permite que os filhos dos contêineres do app encolham em grid/flex. */
:where(main,.conteudo,#cabecalho,.nav-inferior),:where(main,.conteudo,#cabecalho,.nav-inferior) *{min-width:0}

/* Rodapé compacto da capa quando o mosaico está ativo. */
.capa-rodape { display: grid; gap: var(--espaco-2); }
