:root{ --bg:#f5f7fa; --ink:#1f2a44; --gold:#d4af37; --green:#2e7d32; --yellow:#fbc02d; --red:#c62828; }
*{ box-sizing:border-box; }
body{ margin:0; background:var(--bg); color:var(--ink); font:16px/1.5 "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Arial; }
.topbar{ background:#003366; color:#fff; padding:12px 16px; display:flex; justify-content:space-between; align-items:center; }
.topbar .brand{ font-weight:700; letter-spacing:.5px; }
.container{ max-width:1100px; margin:20px auto; padding:0 16px; }
.card{ background:#fff; border-radius:12px; padding:16px; box-shadow:0 4px 14px rgba(0,0,0,.06); margin-bottom:16px; }
.card-center{ max-width:420px; margin:40px auto; }
label{ display:block; margin:.5rem 0 .25rem; font-weight:600; }
input,button,select,textarea{ width:100%; padding:10px 12px; border:1px solid #dfe3eb; border-radius:10px; }
button{ background:#003366; color:#fff; font-weight:600; cursor:pointer; }
button:hover{ background:#224a7a; }
.alert{ background:#ffe8e8; color:#8a1f1f; padding:10px 12px; border-radius:8px; }
.ok{ background:#e7f7ee; color:#1e4620; padding:10px 12px; border-radius:8px; }
.row{ display:flex; gap:12px; align-items:flex-end; }
.filters{ display:flex; gap:12px; align-items:flex-end; }
.kpis{ display:grid; grid-template-columns: repeat(4,1fr); gap:12px; margin:12px 0; }
.kpis .card .label{ font-size:.8rem; color:#4b5563; }
.kpis .card .val{ font-size:1.8rem; font-weight:700; }
.kpis .card.green{ border-left:6px solid var(--green); }
.kpis .card.yellow{ border-left:6px solid var(--yellow); }
.kpis .card.red{ border-left:6px solid var(--red); }
.table-wrap{ overflow:auto; }
.table{ width:100%; border-collapse:collapse; background:#fff; border-radius:12px; overflow:hidden; }
.table th, .table td{ padding:10px 12px; border-bottom:1px solid #eef1f6; text-align:left; }
.badge{ padding:4px 8px; border-radius:999px; font-size:.85rem; }
.b-green{ background:#e6f4ea; color:#1b5e20; }
.b-red{ background:#fdecea; color:#7f1d1d; }
.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.mt{ margin-top:12px; }
.footer{ text-align:center; color:#667; padding:20px; font-size:.85rem; }

.chart-wrap {
  height: 320px;
  width: 100%;
  position: relative;
  margin-top: 8px;
}
.chart-wrap canvas {
  display: block;
  width: 100% !important;
  height: 100% !important;
}

.table tfoot th {
  font-weight: 700;
  border-top: 2px solid #ddd;
}


/* --- MENÚ PRINCIPAL --- */
.menu {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.menu a {
  background: #fff;
  color: #0044cc;                /* azul corporativo FH MTTO */
  padding: 6px 10px;
  border-radius: 6px;
  text-decoration: none;
  font-weight: 600;
  border: 1px solid #c5d8ff;
  transition: all 0.2s ease-in-out;
}

.menu a:hover {
  background: #0044cc;
  color: #fff;
  border-color: #0044cc;
  box-shadow: 0 0 6px rgba(0,68,204,0.3);
}

.menu a:active {
  transform: scale(0.97);
}
