/* Solde — estilos base (provisorios ate a fase de UI) */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen,Ubuntu,sans-serif;
  background:#f6f7fb;color:#222;line-height:1.5;
}
a{color:#2563eb;text-decoration:none}
a:hover{text-decoration:underline}

.container{max-width:960px;margin:0 auto;padding:24px}
.container-narrow{max-width:440px;margin:0 auto;padding:24px}

.navbar{background:#111827;color:#fff;padding:14px 24px;display:flex;justify-content:space-between;align-items:center}
.navbar a{color:#fff}
.navbar .brand{font-weight:700;font-size:18px}
.navbar .menu a{margin-left:16px}

.card{background:#fff;border-radius:10px;padding:24px;box-shadow:0 1px 3px rgba(0,0,0,.08);margin-bottom:16px}

h1{margin-top:0}
label{display:block;margin-bottom:4px;font-weight:600;font-size:14px}
input,select,textarea{
  width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;
  font-size:15px;background:#fff;margin-bottom:12px;
}
input:focus{outline:2px solid #2563eb;border-color:transparent}

.btn{
  display:inline-block;padding:10px 18px;background:#2563eb;color:#fff;border:0;
  border-radius:8px;cursor:pointer;font-size:15px;font-weight:600;
}
.btn:hover{background:#1d4ed8;text-decoration:none;color:#fff}
.btn-secundario{background:#e5e7eb;color:#111827}
.btn-secundario:hover{background:#d1d5db;color:#111827}

.alerta{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}
.alerta-erro{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}
.alerta-sucesso{background:#dcfce7;color:#166534;border:1px solid #86efac}

.erro-campo{color:#991b1b;font-size:13px;margin-top:-8px;margin-bottom:10px;display:block}

.muted{color:#6b7280;font-size:14px}
.text-center{text-align:center}
.text-right{text-align:right}

.grid{display:grid;gap:16px}
.grid-3{grid-template-columns:repeat(3,1fr)}
@media (max-width:640px){.grid-3{grid-template-columns:1fr}}

.stat{padding:16px;border-radius:8px;background:#fff}
.stat .rotulo{font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}
.stat .valor{font-size:24px;font-weight:700;margin-top:4px}
.stat.receita .valor{color:#166534}
.stat.despesa .valor{color:#991b1b}
.stat.saldo-positivo .valor{color:#166534}
.stat.saldo-negativo .valor{color:#991b1b}

table{width:100%;border-collapse:collapse;background:#fff}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid #e5e7eb;font-size:14px}
th{font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;background:#f9fafb}

.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:600}
.badge-receita{background:#dcfce7;color:#166534}
.badge-despesa{background:#fee2e2;color:#991b1b}
.badge-transferencia{background:#dbeafe;color:#1e40af}

.row-flex{display:flex;gap:8px;align-items:end;flex-wrap:wrap}
.row-flex > *{flex:1;min-width:150px}

.acoes a, .acoes button{margin-right:6px}
.btn-sm{padding:6px 10px;font-size:13px}
.btn-danger{background:#dc2626;color:#fff}
.btn-danger:hover{background:#b91c1c;color:#fff}

.form-inline{display:inline}
