* { box-sizing: border-box; }
body { font-family: 'Segoe UI', Arial, sans-serif; margin: 0; background: #f4f6f9; color: #222; }

.login-body { display:flex; align-items:center; justify-content:center; height:100vh; }
.login-box { background:#fff; padding:2rem; border-radius:8px; box-shadow:0 2px 10px rgba(0,0,0,.1); width:320px; }
.login-box h1 { font-size:1.3rem; margin-bottom:1rem; text-align:center; }
.login-box label { display:block; margin-top:.8rem; font-size:.9rem; }
.login-box input, .login-box select { width:100%; padding:.5rem; margin-top:.3rem; border:1px solid #ccc; border-radius:4px; }
.login-box button { width:100%; margin-top:1.2rem; padding:.6rem; background:#2563eb; color:#fff; border:none; border-radius:4px; cursor:pointer; }
.error { color:#c0392b; font-size:.85rem; }
.ok { color:#1e8449; font-size:.85rem; }

.topbar { display:flex; justify-content:space-between; align-items:center; background:#1e293b; color:#fff; padding:.8rem 1.5rem; }
.topbar a { color:#fff; margin-left:1rem; text-decoration:none; }

.menu { display:flex; gap:1rem; background:#334155; padding:.6rem 1.5rem; }
.menu a { color:#e2e8f0; text-decoration:none; font-size:.9rem; }
.menu a:hover { text-decoration:underline; }

.contenido { padding:1.5rem; }
.tarjetas-resumen { display:flex; gap:1rem; flex-wrap:wrap; margin-top:1rem; }
.card { background:#fff; padding:1rem 1.5rem; border-radius:8px; box-shadow:0 1px 4px rgba(0,0,0,.08); min-width:200px; }
.card h3 { margin:0 0 .5rem 0; font-size:.85rem; color:#64748b; }
.card p { margin:0; font-size:1.4rem; font-weight:bold; }
.card.ingreso p { color:#16a34a; }
.card.egreso p { color:#dc2626; }
.card.deuda p { color:#b45309; }

.nota { margin-top:2rem; color:#64748b; font-size:.85rem; }

/* --- Formularios de módulos --- */
.panel-form, .panel-filtros, .panel-listado {
  background:#fff; padding:1.2rem 1.5rem; border-radius:8px;
  box-shadow:0 1px 4px rgba(0,0,0,.08); margin-top:1.5rem;
}
.panel-form h3, .panel-filtros h3, .panel-listado h3 { margin-top:0; }

.form-grid {
  display:grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap:1rem 1.5rem; align-items:end;
}
.form-grid-filtro {
  display:flex; gap:1rem; flex-wrap:wrap; align-items:end;
}
.form-grid label, .form-grid-filtro label { display:block; font-size:.85rem; margin-bottom:.3rem; color:#475569; }
.form-grid input, .form-grid select,
.form-grid-filtro input, .form-grid-filtro select {
  width:100%; padding:.5rem; border:1px solid #cbd5e1; border-radius:4px;
}
.form-grid button, .form-grid-filtro button {
  padding:.55rem 1.2rem; background:#2563eb; color:#fff; border:none; border-radius:4px; cursor:pointer;
}
.checkbox-row { display:flex; align-items:center; }
.checkbox-row label { display:flex; align-items:center; gap:.5rem; font-size:.9rem; }
.checkbox-row input { width:auto; }
.ayuda { display:block; margin-top:.3rem; color:#94a3b8; font-size:.75rem; }
.card.metodo p { color:#2563eb; }

.tabla-datos { width:100%; border-collapse:collapse; margin-top:1rem; font-size:.9rem; }
.tabla-datos th, .tabla-datos td { padding:.5rem .6rem; border-bottom:1px solid #e2e8f0; text-align:left; }
.tabla-datos thead th { background:#f1f5f9; color:#334155; }
.tabla-datos tr.ingreso td:nth-child(3) { color:#16a34a; font-weight:600; }
.tabla-datos tr.egreso td:nth-child(3) { color:#dc2626; font-weight:600; }
.tabla-datos a { color:#dc2626; text-decoration:none; font-size:.85rem; }
.tabla-datos a:hover { text-decoration:underline; }

