:root{
  --brand:#0ea5e9; /* sky-500 */
  --ok:#16a34a;    /* green-600 */
  --warn:#f59e0b;  /* amber-500 */
  --bad:#dc2626;   /* red-600 */
  --muted:#6b7280; /* gray-500 */
}

*{font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;}

.page-title{
  font-weight:600;
  font-size:1.25rem;
}

.kpi-card{
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:16px;
  background:#fff;
}
.kpi-value{ font-weight:700; font-size:1.25rem; }
.kpi-sub{ color:#6b7280; font-size:.85rem; }

.badge-soft{
  border-radius:999px;
  padding:.35rem .65rem;
  font-weight:600;
  font-size:.75rem;
}
.badge-soft.ok{ color:var(--ok); background:rgba(22,163,74,.1); border:1px solid rgba(22,163,74,.2); }
.badge-soft.warn{ color:var(--warn); background:rgba(245,158,11,.1); border:1px solid rgba(245,158,11,.2);}
.badge-soft.bad{ color:var(--bad); background:rgba(220,38,38,.08); border:1px solid rgba(220,38,38,.18);}
.badge-soft.muted{ color:#374151; background:#f3f4f6; border:1px solid #e5e7eb;}

.card-clean{
  border:1px solid #e5e7eb;
  border-radius:12px;
  background:#fff;
}
.card-clean .card-header{
  border-bottom:1px solid #e5e7eb;
  background:#fff;
  padding:14px 16px;
  font-weight:600;
}

.table-clean thead th{
  background:#f9fafb;
  border-bottom:1px solid #e5e7eb !important;
  color:#374151; font-weight:600;
}
.table-clean tbody td{ vertical-align:middle; }
.table-clean tr:hover{ background:#fcfcfd; }

.form-clean .form-control,
.form-clean .form-select{
  border-radius:10px;
  border-color:#e5e7eb;
}
.btn-primary{
  background:var(--brand); border-color:var(--brand);
}