:root{
  --fundo:#f6f7f9; --papel:#fff; --texto:#15181d; --apoio:#5d6672;
  --borda:#dfe3e9; --marca:#1f5f4f; --marca-clara:#e7f2ee;
  --ok:#1a7f4b; --ok-bg:#e6f4ec; --alerta:#8a6116; --alerta-bg:#fdf3dd;
  --erro:#a52a2a; --erro-bg:#fbeaea; --raio:10px;
}
@media (prefers-color-scheme: dark){
  :root{
    --fundo:#12151a; --papel:#1a1e25; --texto:#e8eaed; --apoio:#9aa4b2;
    --borda:#2b323c; --marca:#5fbfa3; --marca-clara:#16302a;
    --ok:#5fbf85; --ok-bg:#15291d; --alerta:#e0b357; --alerta-bg:#2e2716;
    --erro:#e88b8b; --erro-bg:#2e1a1a;
  }
}

*{box-sizing:border-box}
body{
  margin:0; background:var(--fundo); color:var(--texto);
  font:16px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}

/* ---------- estrutura ---------- */
.topo{
  display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  padding:.9rem 1.5rem; background:var(--papel); border-bottom:1px solid var(--borda);
}
.marca{font-weight:700; font-size:1.15rem; color:var(--marca); text-decoration:none; letter-spacing:-.01em}
.topo nav{display:flex; gap:1.25rem; flex-wrap:wrap}
.topo nav a{color:var(--apoio); text-decoration:none; font-size:.94rem}
.topo nav a:hover{color:var(--marca)}
.topo nav .sair{color:var(--erro)}
.conteudo{max-width:900px; margin:2rem auto; padding:0 1.25rem}
.rodape{text-align:center; color:var(--apoio); font-size:.85rem; padding:2.5rem 1rem}

.cabecalho-pagina{
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:1rem; flex-wrap:wrap; margin-bottom:1.5rem;
}
h1{font-size:1.6rem; margin:0 0 .3rem; letter-spacing:-.02em}
h2{font-size:1.15rem; margin:1.6rem 0 .6rem}
h3{font-size:1rem; margin:1.2rem 0 .4rem}
.titulo-secao{margin-top:2rem}
.apoio{color:var(--apoio); font-size:.9rem; margin:.3rem 0}
.opcional{color:var(--apoio); font-weight:400; font-size:.85em}
.centro{text-align:center}

/* ---------- cartões ---------- */
.cartao{
  background:var(--papel); border:1px solid var(--borda); border-radius:var(--raio);
  padding:1.5rem; margin-bottom:1.25rem;
}
.cartao.estreito{max-width:430px; margin:3rem auto}
.cartao.vazio{text-align:center; padding:3rem 1.5rem}
.cartao.inativa{opacity:.55}
.destaque-meu{border-left:4px solid var(--marca)}
blockquote{
  margin:.8rem 0; padding:.7rem 1rem; background:var(--fundo);
  border-left:3px solid var(--borda); border-radius:0 6px 6px 0;
}

/* ---------- formulários ---------- */
label{display:block; margin-bottom:1rem; font-weight:600; font-size:.92rem}
label.inline{display:inline-flex; align-items:center; gap:.45rem; margin:0; font-weight:600}
input[type=text],input[type=email],input[type=password],input[type=number],
input[type=file],select,textarea{
  width:100%; margin-top:.35rem; padding:.6rem .7rem; font:inherit; font-weight:400;
  color:var(--texto); background:var(--fundo);
  border:1px solid var(--borda); border-radius:7px;
}
label.inline input,label.inline select{width:auto; margin-top:0}
input:focus,select:focus,textarea:focus{outline:2px solid var(--marca); outline-offset:1px; border-color:transparent}
textarea{resize:vertical; line-height:1.55; font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace; font-size:.88rem}
fieldset{border:1px solid var(--borda); border-radius:8px; padding:1rem 1.1rem; margin:0 0 1.25rem}
legend{font-weight:700; padding:0 .4rem; font-size:.95rem}
.colunas{display:grid; grid-template-columns:1fr 1fr; gap:1rem}
@media (max-width:620px){.colunas{grid-template-columns:1fr}}

.botao{
  display:inline-block; padding:.62rem 1.15rem; font:inherit; font-weight:600; font-size:.93rem;
  color:#fff; background:var(--marca); border:1px solid var(--marca);
  border-radius:7px; cursor:pointer; text-decoration:none;
}
.botao:hover{filter:brightness(1.1)}
.botao.secundario{background:transparent; color:var(--marca)}
.botao.perigo{background:transparent; color:var(--erro); border-color:var(--erro)}
.botao.pequeno{padding:.35rem .7rem; font-size:.85rem}

.linha-acoes{display:flex; flex-wrap:wrap; gap:.6rem 1rem; align-items:center; margin-top:1rem}
.grupo{display:flex; align-items:center; gap:.4rem; margin:0}
.grupo.largo{margin-top:.8rem}
.grupo.largo input[type=text]{flex:1; margin-top:0}

/* ---------- alertas e etiquetas ---------- */
.alerta{padding:.8rem 1rem; border-radius:8px; margin-bottom:1.25rem; font-size:.92rem; border:1px solid transparent}
.alerta.sucesso{background:var(--ok-bg); color:var(--ok); border-color:currentColor}
.alerta.aviso{background:var(--alerta-bg); color:var(--alerta); border-color:currentColor}
.alerta.erro{background:var(--erro-bg); color:var(--erro); border-color:currentColor}
.etiqueta{
  display:inline-block; padding:.1rem .5rem; border-radius:20px;
  font-size:.74rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em;
  background:var(--fundo); color:var(--apoio); border:1px solid var(--borda); vertical-align:middle;
}
.etiqueta.sucesso{background:var(--ok-bg); color:var(--ok); border-color:currentColor}
.etiqueta.aviso{background:var(--alerta-bg); color:var(--alerta); border-color:currentColor}
.etiqueta.erro{background:var(--erro-bg); color:var(--erro); border-color:currentColor}
.erro-chave{color:var(--erro); font-size:.85rem; margin:.4rem 0 0}

/* ---------- tabelas ---------- */
.tabela{width:100%; border-collapse:collapse; background:var(--papel);
  border:1px solid var(--borda); border-radius:var(--raio); overflow:hidden}
.tabela th,.tabela td{padding:.7rem .9rem; text-align:left; border-bottom:1px solid var(--borda); font-size:.92rem}
.tabela th{background:var(--fundo); font-size:.8rem; text-transform:uppercase; letter-spacing:.04em; color:var(--apoio)}
.tabela tr:last-child td{border-bottom:none}
.tabela .acoes a{color:var(--marca); font-weight:600; text-decoration:none}

/* ---------- Pix ---------- */
.caixa-pix{background:var(--marca-clara); border:1px solid var(--marca); border-radius:8px; padding:1rem 1.2rem; margin-top:1.5rem}
.caixa-pix h2{margin-top:0}
.chave-pix{
  font-family:ui-monospace,Menlo,Consolas,monospace; font-size:1.02rem; font-weight:700;
  word-break:break-all; background:var(--papel); padding:.6rem .8rem; border-radius:6px; margin:.6rem 0;
}

/* ---------- prompts ---------- */
.grade-prompts{display:grid; grid-template-columns:repeat(auto-fill,minmax(255px,1fr)); gap:1rem; margin-bottom:1.5rem}
.cartao-prompt{background:var(--papel); border:1px solid var(--borda); border-radius:var(--raio); padding:1.1rem; display:flex; flex-direction:column}
.cartao-prompt h3{margin-top:0}
.cartao-prompt .apoio{flex:1}

/* ---------- abas ---------- */
.abas{display:flex; gap:.3rem; border-bottom:1px solid var(--borda); margin-bottom:1.5rem; flex-wrap:wrap}
.abas a{padding:.6rem 1rem; text-decoration:none; color:var(--apoio); font-weight:600; font-size:.92rem; border-bottom:2px solid transparent}
.abas a.ativa{color:var(--marca); border-bottom-color:var(--marca)}

/* ---------- admin ---------- */
.usuario-topo{display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; flex-wrap:wrap}
.usuario h2{margin-top:0; font-size:1.05rem}
.projeto-admin{padding:.7rem 0; border-top:1px solid var(--borda)}
.lista-arquivos{margin:.3rem 0 0; padding-left:1.1rem; font-size:.88rem}
.detalhes{background:var(--papel); border:1px solid var(--borda); border-radius:var(--raio); padding:1rem 1.25rem; margin-top:1.25rem}
.detalhes summary{cursor:pointer; font-weight:600; font-size:.92rem}
.detalhes ul{font-size:.88rem; color:var(--apoio)}
code{font-family:ui-monospace,Menlo,Consolas,monospace; font-size:.87em; background:var(--fundo); padding:.1rem .35rem; border-radius:4px}

/* ---------- carregando ---------- */
.carregando{display:flex; gap:.5rem; justify-content:center; margin:2rem 0}
.carregando span{width:11px; height:11px; border-radius:50%; background:var(--marca); animation:pula 1.3s infinite ease-in-out}
.carregando span:nth-child(2){animation-delay:.18s}
.carregando span:nth-child(3){animation-delay:.36s}
@keyframes pula{0%,80%,100%{opacity:.25; transform:translateY(0)}40%{opacity:1; transform:translateY(-9px)}}

/* ---------- resultado ---------- */
.resultado{background:var(--papel); border:1px solid var(--borda); border-radius:var(--raio); padding:2.25rem 2.5rem; line-height:1.75}
.resultado h1{font-size:1.4rem; padding-bottom:.5rem; border-bottom:2px solid var(--marca); margin-top:2.5rem}
.resultado h1:first-child{margin-top:0}
.resultado h2{font-size:1.15rem; color:var(--marca)}
.resultado p{margin:0 0 1rem; text-align:justify}
.resultado ul{margin:0 0 1rem; padding-left:1.4rem}
.resultado li{margin-bottom:.4rem}
.resultado blockquote{font-size:.94rem}
.resultado hr{border:none; border-top:1px solid var(--borda); margin:2rem 0}
table.md{width:100%; border-collapse:collapse; margin:1rem 0; font-size:.9rem}
table.md td{border:1px solid var(--borda); padding:.5rem .7rem; vertical-align:top}
table.md tr:first-child td{background:var(--fundo); font-weight:700}
@media (max-width:620px){
  .resultado{padding:1.35rem}
  .conteudo{padding:0 1rem}
}

/* ---------- impressão ---------- */
@media print{
  .topo,.rodape,.cabecalho-pagina .acoes-topo,.detalhes,.alerta{display:none!important}
  body{background:#fff; color:#000; font-size:11.5pt}
  .conteudo{max-width:none; margin:0}
  .resultado{border:none; padding:0; box-shadow:none}
  .resultado h1,.resultado h2{color:#000}
  a{color:#000; text-decoration:none}
}
