:root{
  --app-bg: #f6f7fb;
  --card-bg:#ffffff;
  --border:#e9ecef;
  --text:#0f172a;
  --muted:#64748b;
  --primary:#2563eb;
  --primary-600:#1d4ed8;
  --success:#16a34a;
  --danger:#dc2626;
  --warning:#f59e0b;
}
body{
  background: var(--app-bg) !important;
  color: var(--text);
}
.navbar{
  box-shadow: 0 6px 18px rgba(15,23,42,.06);
}
.container{
  max-width: 1180px;
}
.card{
  border: 1px solid var(--border) !important;
  border-radius: 16px !important;
  background: var(--card-bg) !important;
}
.card .card-body{
  padding: 1.25rem;
}
.page-title{
  font-size: 1.85rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.subtle{
  color: var(--muted);
}
.btn{
  border-radius: 12px !important;
}
.btn-primary{
  background: var(--primary) !important;
  border-color: var(--primary) !important;
}
.btn-primary:hover{
  background: var(--primary-600) !important;
  border-color: var(--primary-600) !important;
}
.btn-outline-primary{
  border-color: rgba(37,99,235,.35) !important;
  color: var(--primary) !important;
}
.btn-outline-primary:hover{
  background: rgba(37,99,235,.08) !important;
  color: var(--primary-600) !important;
}
.table{
  border-color: var(--border) !important;
}
.table thead th{
  font-weight: 700;
  color: #334155;
  background: #f8fafc !important;
}
.table-hover tbody tr:hover{
  background: rgba(15, 23, 42, .03) !important;
}
.badge-soft{
  border: 1px solid var(--border);
  background: #f8fafc;
  color: #334155;
}
.badge-status{
  border-radius: 999px;
  padding: .35rem .6rem;
  font-weight: 700;
  border: 1px solid transparent;
}
.badge-success{ background: rgba(22,163,74,.12); color: var(--success); border-color: rgba(22,163,74,.25);}
.badge-danger{ background: rgba(220,38,38,.10); color: var(--danger); border-color: rgba(220,38,38,.25);}
.badge-warning{ background: rgba(245,158,11,.12); color: var(--warning); border-color: rgba(245,158,11,.25);}
.badge-info{ background: rgba(37,99,235,.12); color: var(--primary); border-color: rgba(37,99,235,.25);}
.badge-neutral{ background: rgba(100,116,139,.12); color: #475569; border-color: rgba(100,116,139,.25);}

.input-group .form-control, .form-control, .form-select{
  border-radius: 12px !important;
  border-color: var(--border) !important;
}
.form-control:focus, .form-select:focus{
  border-color: rgba(37,99,235,.55) !important;
  box-shadow: 0 0 0 .2rem rgba(37,99,235,.12) !important;
}
.section-title{
  font-weight: 800;
  font-size: 1.05rem;
}
.kbd-hint{
  font-size: .85rem;
  color: var(--muted);
}
.hr-soft{
  border-top: 1px solid var(--border);
  opacity: 1;
}
