/* Hub da equipe — estrutura comum (sem cores nem fontes; isso fica em tema-pa.css e tema-sr.css) */
* { box-sizing: border-box; }
html, body { margin: 0; }
body { line-height: 1.55; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; display: block; }
a { color: inherit; }
.visual-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.largura { max-width: 1120px; margin: 0 auto; padding-left: 16px; padding-right: 16px; }

/* porta (senha) */
html:not(.liberado) .conteudo { display: none; }
.porta { min-height: 100vh; display: grid; grid-template-rows: 1fr auto; position: relative; overflow: hidden; }
.porta-centro { display: grid; place-items: center; padding: 40px 16px; position: relative; z-index: 1; }
.porta-caixa { width: min(400px, 100%); }
.porta-caixa .logo { margin-bottom: 44px; }
.porta label { display: block; margin-bottom: 8px; }
.campo { width: 100%; padding: 14px 16px; font-size: 1rem; border-radius: 0; }
.porta-erro { min-height: 1.5em; margin: 10px 0 0; font-size: .95rem; }
.porta-voltar { display: inline-block; margin-top: 18px; font-size: .9rem; }

/* botões */
.botao { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 26px; border: 0; cursor: pointer; text-decoration: none; }
.botao[disabled] { opacity: .45; cursor: not-allowed; }
.botao--largo { width: 100%; margin-top: 16px; }
.link-simples { background: none; border: 0; padding: 0; cursor: pointer; font: inherit; color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* topo */
.topo { position: relative; overflow: hidden; }
.topo-barra { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 18px; padding-bottom: 18px; }
.topo-barra nav { display: flex; gap: 20px; align-items: center; font-size: .92rem; }
.topo-barra nav a { text-decoration: none; }
.abertura { position: relative; z-index: 1; padding-top: 48px; padding-bottom: 72px; }
.abertura p { margin: 18px 0 0; max-width: 48ch; }

/* lista de ferramentas */
.principal { padding-top: 48px; padding-bottom: 80px; }
.secao-titulo { margin: 0 0 20px; }
.ferramenta { display: grid; grid-template-columns: 1fr auto; gap: 24px; align-items: end; text-decoration: none; padding: 34px 36px 30px; }
.ferramenta h3 { margin: 0 0 10px; }
.ferramenta p { margin: 0; max-width: 54ch; }
.ferramenta .botao { pointer-events: none; }
.em-breve { margin-top: 44px; }
.em-breve ul { margin: 0; padding: 0; }
.em-breve li { list-style: none; display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: baseline; padding: 18px 0; }
.em-breve h3 { margin: 0 0 2px; }
.em-breve p { margin: 0; }
.selo { white-space: nowrap; }
.rodape { padding-top: 28px; padding-bottom: 44px; display: flex; gap: 24px; align-items: center; justify-content: space-between; flex-wrap: wrap; font-size: .9rem; }

/* ferramenta: apresentação de orçamento */
.cabeca-ferramenta { position: relative; z-index: 1; padding-top: 32px; padding-bottom: 44px; }
.cabeca-ferramenta h1 { margin: 10px 0 10px; }
.cabeca-ferramenta p { margin: 0; max-width: 62ch; }
.bancada { padding-top: 40px; padding-bottom: 72px; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px; }
@media (max-width: 860px) { .bancada { grid-template-columns: 1fr; } }
.envio { position: relative; display: grid; place-items: center; text-align: center; gap: 14px; min-height: 300px; padding: 32px 24px; cursor: pointer; }
.envio input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.envio strong { display: block; }
.passos { margin: 28px 0 0; padding: 0; counter-reset: passo; }
.passos li { list-style: none; counter-increment: passo; display: grid; grid-template-columns: 34px 1fr; gap: 12px; padding: 10px 0; }
.passos li::before { content: counter(passo); width: 28px; height: 28px; display: grid; place-items: center; }
.resultado { min-width: 0; }
.vazio { padding: 6px 0 6px 20px; }
.vazio h2 { margin: 0 0 6px; }
.estado { display: flex; align-items: center; gap: 14px; margin: 0 0 6px; }
.girando { width: 22px; height: 22px; border-radius: 50%; border: 4px solid; animation: girar .8s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }
.arquivo-nome { margin: 0 0 20px; overflow-wrap: anywhere; }
.tira { display: flex; gap: 12px; overflow-x: auto; padding: 18px; margin: 0 0 24px; scroll-snap-type: x mandatory; }
.tira figure { margin: 0; flex: 0 0 auto; scroll-snap-align: start; animation: entrar .35s ease both; }
.tira canvas { display: block; height: 220px; width: auto; background: #fff; }
.tira figcaption { font-size: .8rem; margin-top: 6px; }
@keyframes entrar { from { opacity: 0; transform: translateY(8px); } }
.bloco { margin: 28px 0 22px; }
.bloco h3 { margin: 0 0 10px; }
.cards-escolhidos { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.cards-escolhidos li { list-style: none; display: inline-flex; align-items: center; gap: 8px; padding: 7px 8px 7px 14px; }
.cards-escolhidos button { border: 0; width: 24px; height: 24px; cursor: pointer; line-height: 1; }
.motivos { margin: 10px 0 0; padding: 0; font-size: .88rem; }
.motivos li { list-style: none; padding: 3px 0; }
.adicionar { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
select { font: inherit; padding: 10px 12px; border-radius: 0; }
.alerta { padding: 14px 16px; margin: 0 0 20px; }
.alerta h3 { margin-top: 0; }
.alerta .item { display: grid; gap: 8px; padding: 10px 0; }
.nota { font-size: .9rem; margin: 0 0 18px; }
.aviso-marca { padding: 14px 16px; margin: 0 0 22px; font-size: .92rem; }
.acoes { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }

@media (max-width: 600px) {
  .ferramenta { grid-template-columns: 1fr; padding: 26px 22px 24px; }
  .tira canvas { height: 170px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
.rotulo-senha { margin-top: 16px; }
