:root {
  --brand-start: #ff7a00;  /* naranja vivo */
  --brand-mid:   #10b981;  /* verde esmeralda */
  --brand-end:   #2563eb;  /* azul vivo */
  --brand:       #2563eb;
  --soft-bg:     #f6f8fb;
  --card:        #ffffff;
  --text:        #111827;
  --muted:       #6b7280;
}
html[data-theme="dark"] {
  --soft-bg:     #0b1220;
  --card:        #0f172a;
  --text:        #e5e7eb;
  --muted:       #94a3b8;
}
*{scrollbar-width:thin}

body.bg-soft { background: var(--soft-bg); color: var(--text); }

.bg-grad-brand{
  background: linear-gradient(135deg, var(--brand-start), var(--brand-mid), var(--brand-end));
}

.card.brand { border: 0; border-radius: 1rem; overflow: hidden; background: var(--card); }
.card.brand .card-header{
  background: linear-gradient(135deg, var(--brand-start), var(--brand-end));
  color: #fff;
}
.card { border-radius: 1rem; }

.btn-brand{
  background: var(--brand);
  border-color: var(--brand);
  color:#fff;
}
.btn-brand:hover{ filter: brightness(0.95); color:#fff; }

.btn-light-strong{
  background: rgba(255,255,255,.9);
  border: 0;
  color: #111;
}
.btn-light-strong:hover{ background: #fff; }

.table thead th{
  background: rgba(37, 99, 235, .08);
  color: var(--text);
  border-bottom: 0;
}
.table-hover tbody tr:hover{
  background: rgba(37,99,235,.06);
  transition: background .2s ease;
}

.badge-soft{
  background: rgba(37,99,235,.12);
  color: var(--brand);
  border: 1px solid rgba(37,99,235,.25);
}
.badge-success-soft{
  background: rgba(16,185,129,.12);
  color: #0f766e;
  border: 1px solid rgba(16,185,129,.25);
}
.badge-warning-soft{
  background: rgba(245,158,11,.12);
  color: #92400e;
  border: 1px solid rgba(245,158,11,.25);
}
.badge-danger-soft{
  background: rgba(239,68,68,.12);
  color: #991b1b;
  border: 1px solid rgba(239,68,68,.25);
}

.form-control, .form-select{
  border-radius: .8rem;
  border-color: rgba(0,0,0,.1);
}
.form-control:focus, .form-select:focus{
  box-shadow: 0 0 0 .25rem rgba(37,99,235,.2);
  border-color: var(--brand);
}

.table-kpis td{ vertical-align: middle; }
.kpi{
  display:flex; gap:.75rem; align-items:center;
  padding: .85rem 1rem; border-radius: .9rem;
  background: var(--card); border:1px solid rgba(0,0,0,.05);
  box-shadow: 0 6px 20px rgba(0,0,0,.05);
}
.kpi .icon{
  width: 40px; height: 40px; display:grid; place-items:center;
  border-radius: .7rem; color:#fff;
  background: linear-gradient(135deg, var(--brand-start), var(--brand-end));
}

.navbar .nav-link{ color: #eef2ff; }
.navbar .nav-link:hover{ color: #fff; text-decoration: underline; }
