:root{
  --dml-primary:#1d4ed8;
  --dml-primary-dark:#1e40af;
  --dml-primary-soft:#eff6ff;

  --dml-success:#16a34a;
  --dml-warning:#f59e0b;
  --dml-danger:#dc2626;
  --dml-info:#0891b2;

  --dml-bg:#f3f6fb;
  --dml-card:#ffffff;
  --dml-border:#e5e7eb;
  --dml-text:#111827;
  --dml-muted:#6b7280;

  --dml-radius:18px;
  --dml-shadow:0 10px 30px rgba(15,23,42,.07);
  --dml-shadow-sm:0 4px 14px rgba(15,23,42,.06);
}

body{
  background:var(--dml-bg)!important;
  color:var(--dml-text);
  font-family:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

main.container-fluid{
  padding-top:1.25rem!important;
}

.navbar{
  box-shadow:0 4px 20px rgba(15,23,42,.06);
}

.navbar-brand{
  color:var(--dml-primary)!important;
  font-weight:800!important;
}

.card{
  border:1px solid var(--dml-border)!important;
  border-radius:var(--dml-radius)!important;
  box-shadow:var(--dml-shadow-sm);
}

.card-header{
  border-bottom:1px solid var(--dml-border)!important;
  border-radius:var(--dml-radius) var(--dml-radius) 0 0!important;
}

.btn{
  border-radius:12px!important;
  font-weight:600;
}

.btn-primary{
  background:var(--dml-primary)!important;
  border-color:var(--dml-primary)!important;
}

.btn-primary:hover{
  background:var(--dml-primary-dark)!important;
  border-color:var(--dml-primary-dark)!important;
}

.btn-success{
  background:var(--dml-success)!important;
  border-color:var(--dml-success)!important;
}

.btn-outline-primary{
  color:var(--dml-primary)!important;
  border-color:var(--dml-primary)!important;
}

.btn-outline-primary:hover{
  background:var(--dml-primary)!important;
  color:#fff!important;
}

.form-control,
.form-select,
.input-group-text{
  border-radius:12px!important;
  border-color:#d8dee8!important;
}

.form-control:focus,
.form-select:focus{
  border-color:var(--dml-primary)!important;
  box-shadow:0 0 0 .2rem rgba(29,78,216,.12)!important;
}

.table{
  --bs-table-bg:transparent;
}

.table thead th{
  background:#f8fafc!important;
  color:#374151;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.03em;
  border-bottom:1px solid var(--dml-border)!important;
}

.table td,
.table th{
  padding:.9rem .85rem;
  vertical-align:middle;
}

.table-hover tbody tr:hover{
  background:var(--dml-primary-soft)!important;
}

.badge{
  border-radius:999px;
  padding:.45em .7em;
}

.alert{
  border:0!important;
  border-radius:16px!important;
  box-shadow:var(--dml-shadow-sm);
}

.alert-success{
  background:#dcfce7!important;
  color:#166534!important;
}

.alert-danger{
  background:#fee2e2!important;
  color:#991b1b!important;
}

.alert-warning{
  background:#fef3c7!important;
  color:#92400e!important;
}

.sidebar-pro{
  background:#fff;
  border:1px solid var(--dml-border);
  border-radius:20px;
  overflow:hidden;
  box-shadow:var(--dml-shadow);
}

.sidebar-pro__header{
  padding:1rem;
  border-bottom:1px solid var(--dml-border);
  background:linear-gradient(135deg,#ffffff 0%,#f8fafc 100%);
}

.sidebar-pro__brand{
  font-weight:800;
  font-size:1rem;
  color:var(--dml-text);
}

.sidebar-pro__subtitle{
  font-size:.82rem;
  color:var(--dml-muted);
  margin-top:.2rem;
}

.sidebar-pro__body{
  max-height:calc(100vh - 160px);
  overflow:auto;
  padding:.75rem;
  -webkit-overflow-scrolling:touch;
}

.sidebar-group{
  margin-bottom:.65rem;
}

.sidebar-group__toggle{
  width:100%;
  border:0;
  background:#f8fafc;
  color:#111827;
  border-radius:14px;
  padding:.9rem 1rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-weight:700;
  font-size:.94rem;
  transition:.2s ease;
}

.sidebar-group__toggle:hover{
  background:#eef2ff;
}

.sidebar-group__toggle.is-open{
  background:var(--dml-primary-soft);
  color:var(--dml-primary);
}

.sidebar-group__chevron{
  transition:transform .2s ease;
}

.sidebar-group__toggle.is-open .sidebar-group__chevron{
  transform:rotate(180deg);
}

.sidebar-group__menu{
  display:none;
  padding:.4rem 0 .2rem 0;
}

.sidebar-group__menu.is-open{
  display:block;
}

.sidebar-link{
  display:block;
  text-decoration:none;
  color:#374151;
  padding:.72rem .95rem;
  border-radius:13px;
  font-size:.92rem;
  transition:.18s ease;
  margin-top:.2rem;
}

.sidebar-link:hover{
  background:#f3f4f6;
  color:#111827;
}

.sidebar-link.active{
  background:linear-gradient(135deg,var(--dml-primary),var(--dml-primary-dark));
  color:#fff!important;
  font-weight:700;
  box-shadow:0 8px 20px rgba(29,78,216,.22);
}

.sidebar-divider{
  height:1px;
  background:#edf0f3;
  margin:.45rem .6rem;
}

.shadow-sm{
  box-shadow:var(--dml-shadow-sm)!important;
}

.rounded,
.rounded-3{
  border-radius:var(--dml-radius)!important;
}

.text-muted{
  color:var(--dml-muted)!important;
}

.bg-light{
  background:#f8fafc!important;
}

.modal-content{
  border:0!important;
  border-radius:22px!important;
  box-shadow:0 24px 60px rgba(15,23,42,.22);
}

.modal-header,
.modal-footer{
  border-color:var(--dml-border)!important;
}

.pagination .page-link{
  border-radius:10px!important;
  margin:0 2px;
  color:var(--dml-primary);
}

.pagination .active .page-link{
  background:var(--dml-primary)!important;
  border-color:var(--dml-primary)!important;
}

@media(max-width:991.98px){
  main.container-fluid{
    padding:.85rem!important;
  }

  .card{
    border-radius:16px!important;
  }

  .table-responsive{
    border-radius:16px;
  }

  .sidebar-pro{
    border-radius:16px;
  }

  .sidebar-pro__body{
    max-height:none;
  }

  .btn{
    min-height:40px;
  }
}