/* ===== Reset básico ===== */
* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, sans-serif;
  background: #f6f7f9;
  color: #222;
}

a {
  color: #0b5ed7;
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
}

/* ===== Layout ===== */
.container {
  max-width: 960px;
  margin: 20px auto;
  padding: 16px;
  background: #fff;
  border-radius: 14px;
  border: 1px solid #eee;
}

.nav {
  margin-bottom: 14px;
}

.nav a {
  margin-right: 12px;
  font-size: 14px;
}

/* ===== Alertas ===== */
.alert {
  padding: 10px 12px;
  border-radius: 10px;
  margin: 12px 0;
}

.alert-error {
  background: #ffe8e8;
  border: 1px solid #ffb3b3;
}

/* ===== Formulários ===== */
label {
  display: block;
  margin-top: 12px;
  font-size: 14px;
}

input,
select,
button {
  width: 100%;
  padding: 10px 12px;
  margin-top: 6px;
  border-radius: 10px;
  border: 1px solid #ddd;
  font-size: 14px;
}

button {
  margin-top: 16px;
  background: #0b5ed7;
  color: #fff;
  border: none;
  cursor: pointer;
}

button:hover {
  opacity: 0.9;
}

/* ===== Tabelas ===== */
table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 14px;
}

th,
td {
  border-bottom: 1px solid #eee;
  padding: 10px 8px;
  text-align: left;
  vertical-align: top;
}

th {
  font-size: 13px;
  color: #444;
}

/* ===== Badges / Pills ===== */
.badge,
.pill {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 12px;
  border: 1px solid #ddd;
}

.ok {
  background: #e9ffe9;
  border-color: #b7ffb7;
}

.no {
  background: #ffe8e8;
  border-color: #ffb3b3;
}

.PENDING {
  background: #fff8e6;
  border-color: #ffe0a3;
}

.APPROVED {
  background: #e9ffe9;
  border-color: #b7ffb7;
}

.REJECTED {
  background: #ffe8e8;
  border-color: #ffb3b3;
}

/* ===== Cards ===== */
.card {
  padding: 12px;
  border: 1px solid #eee;
  border-radius: 12px;
  margin-top: 12px;
  background: #fff;
}

/* ===== Grid ===== */
.grid {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr 1fr;
}

@media (max-width: 720px) {
  .grid {
    grid-template-columns: 1fr;
  }
}

/* ===== Saldo ===== */
.saldo-card {
  margin-top: 10px;
  padding: 12px;
  border: 1px solid #eee;
  border-radius: 12px;
  background: #fff;
}

.saldo-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
}

.saldo-item {
  padding: 10px;
  border: 1px solid #f0f0f0;
  border-radius: 10px;
  background: #fafafa;
}

.saldo-item small {
  display: block;
  color: #555;
}

.saldo-item strong {
  font-size: 18px;
}

@media (max-width: 720px) {
  .saldo-grid {
    grid-template-columns: 1fr;
  }
}

/* ===== Password toggle ===== */
.pwline {
  display: flex;
  gap: 8px;
  align-items: flex-end;
}

.pwbtn {
  width: auto;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid #ddd;
  background: #fff;
  cursor: pointer;
}

/* ===== Auditoria ===== */
.row-actions form {
  display: inline;
}

input.note {
  width: 220px;
}

/* ===== Detalhes ===== */
details summary {
  cursor: pointer;
  font-size: 13px;
}

/* ===== Aviso de lançamento negativo ===== */
.warn-box {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid #ffb3b3;
  background: #ffe8e8;
}

.warn-box strong {
  display: block;
  margin-bottom: 4px;
}

.btn-warning {
  background: #b02a37;
}

/* ===== Relatório: botões export ===== */
.actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 12px;
}

.btnlink {
  display: inline-block;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid #ddd;
  background: #fff;
}

.btnlink:hover {
  text-decoration: none;
  opacity: 0.9;
}

/* ===== Dashboard (Melhoria 5) ===== */
.page-title {
  margin-bottom: 6px;
}

.muted {
  color: #666;
  font-size: 13px;
}

.dash-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
  margin-top: 12px;
}

@media (max-width: 900px) {
  .dash-grid {
    grid-template-columns: 1fr;
  }
}

.dash-card {
  border: 1px solid #eee;
  border-radius: 14px;
  background: #fff;
  padding: 14px;
  transition: transform .06s ease, box-shadow .06s ease;
}

.dash-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
}

.dash-card h3 {
  margin: 0 0 6px 0;
  font-size: 14px;
  color: #444;
}

.dash-card .big {
  font-size: 22px;
  font-weight: 700;
}

.dash-card .hint {
  margin-top: 6px;
  font-size: 12px;
  color: #666;
}

.dash-links {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
}

@media (max-width: 720px) {
  .dash-links {
    grid-template-columns: 1fr;
  }
}

.dash-link {
  display: block;
  padding: 12px;
  border-radius: 12px;
  border: 1px solid #eee;
  background: #fafafa;
}

.dash-link:hover {
  text-decoration: none;
  opacity: 0.95;
}
