/* Prospera: tema claro e escuro por tokens */
:root {
  --bg: #f6f5f1;
  --sup: #ffffff;
  --sup2: #eeece5;
  --tx: #1f2a24;
  --tx2: #5b6660;
  --borda: #dcd9cf;
  --pri: #1f5c45;
  --pri-tx: #ffffff;
  --ouro: #a07b1f;
  --pos: #1d7a4f;
  --neg: #b23b2e;
  --s1: #1f5c45; --s2: #c48a12; --s3: #3a6fb0; --s4: #8b4fa6; --s5: #c4553a; --s6: #2e8f8a; --s7: #6b6f76; --s8: #9aa13a;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root {
    --bg: #121714;
    --sup: #1a211d;
    --sup2: #232c27;
    --tx: #e7ece8;
    --tx2: #9fada5;
    --borda: #2f3a34;
    --pri: #4fb08a;
    --pri-tx: #0d1411;
    --ouro: #d9b45a;
    --pos: #5cc28f;
    --neg: #ef7f70;
    --s1: #5cc28f; --s2: #e0b04a; --s3: #6fa3e6; --s4: #c08ad8; --s5: #ef8a6c; --s6: #57c2bb; --s7: #a3a8ae; --s8: #c4cc5a;
    color-scheme: dark;
  }
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--tx); font: 16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }
a { color: var(--pri); }
h1 { font-size: 1.6rem; margin: .4rem 0 1rem; }
h2 { font-size: 1.15rem; margin: 0 0 .8rem; }
h3 { font-size: 1rem; margin: 1.4rem 0 .3rem; }
small { color: var(--tx2); }

.topo { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.2rem; padding: .7rem 16px; background: var(--sup); border-bottom: 1px solid var(--borda); position: sticky; top: 0; z-index: 2; }
.marca { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; font-size: 1.15rem; color: var(--tx); text-decoration: none; letter-spacing: .01em; }
.marca.grande { font-size: 1.6rem; margin-bottom: 1rem; }
.topo nav { display: flex; gap: .2rem; flex-wrap: wrap; flex: 1; }
.topo nav a { padding: .35rem .7rem; border-radius: 6px; text-decoration: none; color: var(--tx2); }
.topo nav a[aria-current] { background: var(--sup2); color: var(--tx); font-weight: 600; }
.sair { margin-left: auto; }

main { max-width: 1080px; margin: 0 auto; padding: 1rem 16px 2rem; }
.rodape { max-width: 1080px; margin: 0 auto; padding: 1rem 16px 2rem; color: var(--tx2); font-size: .82rem; }

.cartao { background: var(--sup); border: 1px solid var(--borda); border-radius: 10px; padding: 1rem 1.1rem; margin: 0 0 1rem; }
.cartao.destaque { border-color: var(--pri); }
.discreto { color: var(--tx2); font-size: .9rem; }
.cartao.discreto { background: transparent; }
.ajuda { color: var(--tx2); font-size: .9rem; margin: .4rem 0 1rem; }
.vazio { color: var(--tx2); font-style: italic; }

.indicadores { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .7rem; margin-bottom: .3rem; }
.ind { background: var(--sup); border: 1px solid var(--borda); border-radius: 10px; padding: .8rem 1rem; display: flex; flex-direction: column; }
.ind span { color: var(--tx2); font-size: .85rem; }
.ind strong { font-size: 1.45rem; font-variant-numeric: tabular-nums; }

.numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .8rem; }
.numeros div { display: flex; flex-direction: column; }
.numeros span { color: var(--tx2); font-size: .85rem; }
.numeros strong { font-size: 1.2rem; font-variant-numeric: tabular-nums; }

.pos { color: var(--pos); }
.neg { color: var(--neg); }

.tabela { overflow-x: auto; margin: 0 -4px; }
table { width: 100%; border-collapse: collapse; font-size: .92rem; font-variant-numeric: tabular-nums; }
th, td { text-align: left; padding: .5rem .5rem; border-bottom: 1px solid var(--borda); vertical-align: top; white-space: nowrap; }
td:first-child { white-space: normal; min-width: 9rem; }
th { color: var(--tx2); font-weight: 600; font-size: .8rem; }
td.botoes { display: flex; gap: .3rem; align-items: center; }

.selo { font-size: .72rem; font-weight: 600; background: var(--sup2); color: var(--ouro); padding: .1rem .45rem; border-radius: 99px; vertical-align: middle; }

.alerta { background: var(--sup2); border-left: 4px solid var(--pri); padding: .6rem .9rem; border-radius: 6px; }
.alerta.erro { border-left-color: var(--neg); }

.form { display: grid; gap: .8rem; max-width: 480px; }
.form.grade2 { max-width: none; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); align-items: end; }
label { display: flex; flex-direction: column; gap: .25rem; font-size: .9rem; color: var(--tx2); }
label.check { flex-direction: row; align-items: center; gap: .4rem; }
input, select { font: inherit; color: var(--tx); background: var(--bg); border: 1px solid var(--borda); border-radius: 6px; padding: .55rem .65rem; width: 100%; }
input[type=checkbox] { width: auto; }
input:focus, select:focus, button:focus-visible, a:focus-visible { outline: 2px solid var(--pri); outline-offset: 1px; }

button, .botao { font: inherit; font-weight: 600; background: var(--pri); color: var(--pri-tx); border: 0; border-radius: 6px; padding: .6rem 1rem; cursor: pointer; text-decoration: none; display: inline-block; }
button.sec, .botao.sec { background: var(--sup2); color: var(--tx); }
button.link { background: none; color: var(--tx2); padding: .2rem .3rem; font-weight: 400; text-decoration: underline; }
button[disabled] { opacity: .45; cursor: not-allowed; }
.acoes { display: flex; gap: .5rem; flex-wrap: wrap; }
.linha { display: flex; gap: .8rem; flex-wrap: wrap; align-items: center; }

.abas { display: flex; gap: .3rem; flex-wrap: wrap; margin-bottom: .3rem; }
.abas a { padding: .4rem .8rem; border-radius: 99px; border: 1px solid var(--borda); text-decoration: none; color: var(--tx2); }
.abas a[aria-current] { background: var(--pri); border-color: var(--pri); color: var(--pri-tx); }

.grafico { width: 100%; height: auto; display: block; }
.grafico .grade { stroke: var(--borda); stroke-width: 1; }
.grafico .eixo { fill: var(--tx2); font-size: 11px; }
.legenda { list-style: none; display: flex; flex-wrap: wrap; gap: .3rem 1rem; padding: 0; margin: .5rem 0 0; font-size: .85rem; color: var(--tx2); }
.legenda span { display: inline-block; width: 14px; height: 3px; margin-right: .35rem; vertical-align: middle; border-radius: 2px; }
.legenda span.tr { height: 0; border-top: 3px dashed; background: none !important; }

body.centro { display: grid; place-items: center; min-height: 100vh; padding: 16px; }
.caixa { width: 100%; max-width: 380px; background: var(--sup); border: 1px solid var(--borda); border-radius: 12px; padding: 1.6rem; }

@media (max-width: 560px) {
  h1 { font-size: 1.35rem; }
  .ind strong { font-size: 1.2rem; }
}
