/* === Gas Eco · Calendario === */
:root{
  --gaseco-primary: #0a5d3e;
  --gaseco-primary-dark: #074a31;
  --gaseco-accent: #f0a500;
  --gaseco-ok: #16a34a;
  --gaseco-aviso: #f59e0b;
  --gaseco-critica: #dc2626;
  --gaseco-info: #0ea5e9;
}
body{ background:#f4f6f8; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; }

.bg-gaseco{ background: linear-gradient(135deg, var(--gaseco-primary), var(--gaseco-primary-dark)) !important; }
.navbar-dark .nav-link.active{ background: rgba(255,255,255,.15); border-radius: .35rem; }

/* === KPIs === */
.kpi-card{ border:0; border-radius:1rem; box-shadow:0 4px 14px rgba(0,0,0,.06); transition:transform .15s ease; }
.kpi-card:hover{ transform: translateY(-2px); }
.kpi-card .kpi-num{ font-size:2.4rem; font-weight:700; line-height:1; }
.kpi-card .kpi-label{ font-size:.85rem; text-transform:uppercase; letter-spacing:.04em; opacity:.85; }
.kpi-card .kpi-icon{ font-size:2.2rem; opacity:.4; }

.kpi-ok      { background:#ecfdf5; color:#065f46; }
.kpi-aviso   { background:#fffbeb; color:#92400e; }
.kpi-critica { background:#fef2f2; color:#991b1b; }
.kpi-info    { background:#eff6ff; color:#1e40af; }
.kpi-neutral { background:#f3f4f6; color:#374151; }

/* === Tablas === */
.table-card{ background:#fff; border-radius:1rem; padding:1rem 1.25rem; box-shadow:0 4px 14px rgba(0,0,0,.05); }
.estado-badge{ font-size:.75rem; padding:.35em .6em; border-radius:.5rem; }

.badge-caducado { background:#fee2e2; color:#991b1b; }
.badge-critica  { background:#fef3c7; color:#92400e; }
.badge-aviso    { background:#fef9c3; color:#854d0e; }
.badge-ok       { background:#dcfce7; color:#166534; }
.badge-sin_fecha{ background:#e5e7eb; color:#374151; }

/* === Calendario === */
.fc{ background:#fff; border-radius:1rem; padding:1rem; box-shadow:0 4px 14px rgba(0,0,0,.05); }
.fc-event{ cursor:pointer; border:0; }
.fc-event-critica { background-color: var(--gaseco-critica) !important; }
.fc-event-aviso   { background-color: var(--gaseco-aviso)   !important; }
.fc-event-ok      { background-color: var(--gaseco-ok)      !important; }
.fc-event-info    { background-color: var(--gaseco-info)    !important; }

/* === Login === */
.login-wrap{ min-height:100vh; display:flex; align-items:center; justify-content:center;
             background: linear-gradient(135deg, var(--gaseco-primary), var(--gaseco-primary-dark)); }
.login-card{ background:#fff; border-radius:1rem; padding:2.5rem; max-width:420px; width:100%;
             box-shadow:0 10px 40px rgba(0,0,0,.2); }

/* === Botones === */
.btn-gaseco{ background: var(--gaseco-primary); color:#fff; border:0; }
.btn-gaseco:hover{ background: var(--gaseco-primary-dark); color:#fff; }
