:root{
  --bs-primary:#198754;
  --bs-primary-rgb:25,135,84;
  --bs-danger:#dc3545;
  --bs-danger-rgb:220,53,69;
  --bs-link-color:var(--bs-primary);
  --bs-link-hover-color:#157347;
  --cs-text:#0b1f35;
  --cs-muted:#516579;
  --cs-border:rgba(16,24,40,.10);
  --cs-shadow:0 12px 30px rgba(16,24,40,.08);
  --cs-shadow-hover:0 16px 38px rgba(16,24,40,.10);
}

html,body{height:100%;}
body{
  background:linear-gradient(180deg,#f7f9fc 0%, #f5f7fb 100%);
  color:var(--cs-text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

html[data-bs-theme="dark"]{
  --cs-text:#e6edf7;
  --cs-muted:#a7b6c7;
  --cs-border:rgba(255,255,255,.10);
}

html[data-bs-theme="dark"] body{
  background:linear-gradient(180deg,#0b1422 0%, #09111d 100%);
}

html[data-bs-theme="dark"] .bg-light{
  background-color:#0f1b2b!important;
}

html[data-bs-theme="dark"] .bg-white{
  background-color:#0f1b2b!important;
}

html[data-bs-theme="dark"] .text-dark{color:var(--cs-text)!important;}

html[data-bs-theme="dark"] .form-floating>label{color:rgba(230,237,247,.72)!important;}
html[data-bs-theme="dark"] .form-control::placeholder{color:rgba(167,182,199,.72)!important;}
html[data-bs-theme="dark"] .form-floating>.form-control::placeholder{color:transparent!important;}
html[data-bs-theme="dark"] .form-floating>.form-control:focus::placeholder{color:transparent!important;}
html[data-bs-theme="dark"] .form-select{color:var(--cs-text);}
html[data-bs-theme="dark"] .form-control, html[data-bs-theme="dark"] .form-select{
  border-color:rgba(255,255,255,.12)!important;
}
html[data-bs-theme="dark"] .form-control:focus, html[data-bs-theme="dark"] .form-select:focus{
  border-color:rgba(25,135,84,.55)!important;
  box-shadow:0 0 0 .25rem rgba(25,135,84,.16)!important;
}

html[data-bs-theme="dark"] .navbar.bg-white{background-color:#0f1b2b!important;}
html[data-bs-theme="dark"] .navbar .nav-link{color:var(--cs-text)!important;}
html[data-bs-theme="dark"] .navbar .dropdown-toggle{color:var(--cs-text)!important;}

html[data-bs-theme="dark"] .navbar.navbar-light{
  --bs-navbar-color:rgba(230,237,247,.88);
  --bs-navbar-hover-color:#ffffff;
  --bs-navbar-active-color:#ffffff;
  --bs-navbar-brand-color:#ffffff;
  --bs-navbar-brand-hover-color:#ffffff;
  --bs-navbar-toggler-border-color:rgba(255,255,255,.18);
}

html[data-bs-theme="dark"] .navbar-light .navbar-toggler-icon{
  filter:invert(1) grayscale(1);
  opacity:.9;
}

html[data-bs-theme="dark"] .btn-outline-secondary{
  color:rgba(230,237,247,.88);
  border-color:rgba(255,255,255,.18);
}

html[data-bs-theme="dark"] .btn-outline-secondary:hover{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.22);
  color:#ffffff;
}

html[data-bs-theme="dark"] .card{background:#0f1b2b;}
html[data-bs-theme="dark"] .card .text-muted{color:var(--cs-muted)!important;}

html[data-bs-theme="dark"] .table thead th{background:#0c1a2a;color:var(--cs-text);border-bottom:1px solid rgba(255,255,255,.10);}
html[data-bs-theme="dark"] .table{color:var(--cs-text);}
html[data-bs-theme="dark"] .table-hover>tbody>tr:hover>*{background:rgba(25,135,84,.10);}

html[data-bs-theme="dark"] .dropdown-menu{background:#0f1b2b;border:1px solid rgba(255,255,255,.10);}
html[data-bs-theme="dark"] .dropdown-item{color:var(--cs-text);}
html[data-bs-theme="dark"] .dropdown-item:hover{background:rgba(25,135,84,.14);color:var(--cs-text);}
html[data-bs-theme="dark"] .dropdown-divider{border-top-color:rgba(255,255,255,.10);}

html[data-bs-theme="dark"] .footer.bg-light{background:#0f1b2b!important;color:var(--cs-muted)!important;}
html[data-bs-theme="dark"] .footer{border-top:1px solid rgba(255,255,255,.10);}

/* Typography */
body, .btn, .form-control, .form-select, .dropdown-menu, .table{
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

.text-muted{color:var(--cs-muted)!important;}

/* Common gradient helpers (used in some existing views) */
.bg-gradient-primary{
  background:linear-gradient(135deg, rgba(25,135,84,1), rgba(32,201,151,1))!important;
}
.bg-gradient-danger{
  background:linear-gradient(135deg, rgba(220,53,69,1), rgba(176,42,55,1))!important;
}

/* Layout */
main.container-fluid{padding:20px;}

@media (max-width: 576px){
  main.container-fluid{padding:14px;}
}

/* Micro-interactions */
.hover-card{transition:transform .18s ease, box-shadow .18s ease;}
.hover-card:hover{transform:translateY(-2px);box-shadow:var(--cs-shadow-hover)!important;}

/* Cards */
.card{border-radius:16px;}
.card.shadow, .card.shadow-lg{box-shadow:var(--cs-shadow)!important;}
.card-header{border-top-left-radius:16px;border-top-right-radius:16px;}

.card-body{padding:1.1rem;}
.card-body.p-4{padding:1.25rem!important;}
.card-body.p-md-5{padding:1.5rem!important;}

.card-header{padding:1rem 1.25rem;}
.card-header.py-4{padding-top:1rem!important;padding-bottom:1rem!important;}
.card-header.py-3{padding-top:.85rem!important;padding-bottom:.85rem!important;}

.card, .dropdown-menu, .list-group-item, .table{border-color:var(--cs-border)!important;}

/* Alerts */
.alert{border-radius:14px;box-shadow:0 8px 18px rgba(16,24,40,.06);border:0;}
.alert{padding:.85rem 1rem;}

/* Buttons */
.btn{border-radius:12px;}
.btn{transition:transform .08s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease;}
.btn:active{transform:translateY(1px);}
.btn{padding:.5rem .85rem;}
.btn-sm{padding:.35rem .6rem;}
.btn-lg{padding:.65rem 1rem;}
.btn-primary{box-shadow:0 10px 22px rgba(25,135,84,.22);}
.btn-outline-primary{border-color:rgba(25,135,84,.35);}
.btn-outline-primary:hover{background:rgba(25,135,84,.08);}

/* Tables */
.table{border-color:rgba(16,24,40,.08);}
.table thead th{font-weight:700;color:#213547;background:#f2f6f4;border-bottom:1px solid rgba(16,24,40,.12);}
.table-hover>tbody>tr:hover>*{background:rgba(25,135,84,.06);}

.table>:not(caption)>*>*{padding:.55rem .75rem;}

/* Badges */
.badge{border-radius:999px;}

/* Forms */
.form-control,.form-select{border-radius:12px;}
.form-control:focus,.form-select:focus{border-color:rgba(25,135,84,.45);box-shadow:0 0 0 .25rem rgba(25,135,84,.12);}

/* Navbar */
.navbar{border-bottom:1px solid rgba(16,24,40,.08);}

.navbar .navbar-brand img{display:block;}

.navbar .navbar-brand span{font-size:16px;}

/* Brand utilities */
.cs-brand-icon{height:32px;width:32px;}
.cs-brand-title{font-size:16px;font-weight:700;letter-spacing:.2px;line-height:1.1;}

.dropdown-menu{
  border-radius:14px;
  box-shadow:0 18px 44px rgba(16,24,40,.14);
  border:1px solid rgba(16,24,40,.10);
  padding:8px;
}

.dropdown-item{border-radius:10px;}
.dropdown-item:hover{background:rgba(25,135,84,.08);}

/* Sidebar */
aside.bg-dark{background:linear-gradient(180deg,#0b1f35 0%, #071524 100%)!important;}
.nav-pills .nav-link{border-radius:12px;}
.nav-pills .nav-link.active{background:rgba(25,135,84,.18)!important;color:#fff!important;}
.nav-pills .nav-link.text-white:hover{background:rgba(255,255,255,.08);}

.nav-pills .nav-link{transition:background-color .18s ease, color .18s ease;}

html[data-bs-theme="dark"] aside.bg-dark{background:linear-gradient(180deg,#0f1b2b 0%, #0a1320 100%)!important;}

.cs-sidebar-backdrop{display:none;}

@media (max-width: 991.98px){
  .cs-sidebar{
    position:fixed!important;
    left:0;
    top:0;
    height:100vh!important;
    z-index:1045;
    transform:translateX(-102%);
    transition:transform .22s ease;
    box-shadow:0 24px 70px rgba(0,0,0,.35);
  }

  body.cs-sidebar-open{overflow:hidden;}
  body.cs-sidebar-open .cs-sidebar{transform:translateX(0);}
  body.cs-sidebar-open .cs-sidebar-backdrop{display:block;}

  .cs-sidebar-backdrop{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.40);
    backdrop-filter:blur(2px);
    z-index:1040;
  }
}

/* Footer */
.footer{border-top:1px solid rgba(16,24,40,.08);}

/* Pagination */
.pagination{gap:6px;}
.page-link{border-radius:10px!important;border-color:rgba(16,24,40,.10);color:var(--cs-text);}
.page-link:hover{background:rgba(25,135,84,.08);border-color:rgba(25,135,84,.18);color:var(--cs-text);}
.page-item.active .page-link{background:var(--bs-primary);border-color:var(--bs-primary);}
