html, body {
  min-height: 100vh;
  overflow-x: hidden;
}

body {
  margin: 0;
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
  overflow-x: hidden;
}

/* Wrapper principal (si utilisé) */
.app-wrapper {
  display: flex;
  flex-direction: row;
}

/* ==== Ancienne palette Bootstrap 3 réappliquée ==== */
:root {
  --bs-primary: #337ab7;
  --bs-primary-rgb: 51, 122, 183;

  --bs-success: #5cb85c;
  --bs-success-rgb: 92, 184, 92;

  --bs-info: #5bc0de;
  --bs-info-rgb: 91, 192, 222;

  --bs-warning: #f0ad4e;
  --bs-warning-rgb: 240, 173, 78;

  --bs-danger: #d9534f;
  --bs-danger-rgb: 217, 83, 79;

  /* Lien par défaut adapté */
  --bs-link-color: #337ab7;
  --bs-link-hover-color: #23527c;
}

/* Ajustement boutons pour se rapprocher des rendus v3 */
.btn-primary {
  --bs-btn-bg: #337ab7;
  --bs-btn-border-color: #2e6da4;
  --bs-btn-hover-bg: #286090;
  --bs-btn-hover-border-color: #204d74;
  --bs-btn-active-bg: #204d74;
  --bs-btn-active-border-color: #122b40;
}

.btn-success {
  --bs-btn-bg: #5cb85c;
  --bs-btn-border-color: #4cae4c;
  --bs-btn-hover-bg: #449d44;
  --bs-btn-hover-border-color: #398439;
  --bs-btn-active-bg: #398439;
  --bs-btn-active-border-color: #255625;
}

.btn-info {
  --bs-btn-bg: #5bc0de;
  --bs-btn-border-color: #46b8da;
  --bs-btn-hover-bg: #31b0d5;
  --bs-btn-hover-border-color: #269abc;
  --bs-btn-active-bg: #269abc;
  --bs-btn-active-border-color: #1b6d85;
}

.btn-warning {
  --bs-btn-bg: #f0ad4e;
  --bs-btn-border-color: #eea236;
  --bs-btn-hover-bg: #ec971f;
  --bs-btn-hover-border-color: #d58512;
  --bs-btn-active-bg: #d58512;
  --bs-btn-active-border-color: #985f0d;
}

.btn-danger {
  --bs-btn-bg: #d9534f;
  --bs-btn-border-color: #d43f3a;
  --bs-btn-hover-bg: #c9302c;
  --bs-btn-hover-border-color: #ac2925;
  --bs-btn-active-bg: #ac2925;
  --bs-btn-active-border-color: #761c19;
}

/* Alertes (légère adaptation pour nuance v3) */
.alert-info {
  color: #31708f;
  background-color: #d9edf7;
  border-color: #bcdff1;
}
.alert-info hr { border-top-color: #a6d5ec; }
.alert-info .alert-link { color: #245269; }

.alert-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #faf2cc;
}
.alert-danger {
  color: #a94442;
  background-color: #f2dede;
  border-color: #ebcccc;
}
.alert-success {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #d0e9c6;
}

/* Liens */
a {
  color: var(--bs-link-color);
  text-decoration: none;
}
a:hover {
  color: var(--bs-link-hover-color);
  text-decoration: underline;
}

/* ==== Simulation d’anciens "panels" via cards ==== */
.card-panel-primary {
  border: 1px solid #337ab7;
}
.card-panel-primary > .card-header {
  background-color: #337ab7;
  color: #fff;
  font-weight: 600;
}

.card-panel-info {
  border: 1px solid #5bc0de;
}
.card-panel-info > .card-header {
  background-color: #5bc0de;
  color: #fff;
  font-weight: 600;
}

.card-panel-success {
  border: 1px solid #5cb85c;
}
.card-panel-success > .card-header {
  background-color: #5cb85c;
  color: #fff;
  font-weight: 600;
}

.card-panel-warning {
  border: 1px solid #f0ad4e;
}
.card-panel-warning > .card-header {
  background-color: #f0ad4e;
  color: #fff;
  font-weight: 600;
}

.card-panel-danger {
  border: 1px solid #d9534f;
}
.card-panel-danger > .card-header {
  background-color: #d9534f;
  color: #fff;
  font-weight: 600;
}

/* Sidebar styles (déjà fournis précédemment) */
.app-sidebar {
  width: 210px;
  min-width: 210px;
  flex-shrink: 0;
  background-color: var(--bs-body-bg);
  border-right: 1px solid var(--bs-border-color);
  transition: transform .25s ease;
}
.app-sidebar .nav-link {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-weight: 500;
  color: var(--bs-body-color);
  border-radius: .375rem;
}
.app-sidebar .nav-link.active {
  background: var(--bs-primary);
  color: #fff;
}
.app-sidebar .nav-link:not(.active):hover {
  background: rgba(var(--bs-primary-rgb), 0.12);
}

/* Main area */
.app-main {
  flex: 1;
  padding: 2rem 5rem 3rem;
  max-width: 960px;
}

.sidebar-toggle-btn {
  display: none;
  margin-bottom: 1rem;
}

@media (max-width: 991.98px) {
  .app-sidebar {
    position: fixed;
    top: 0; left: 0;
    height: 100vh;
    z-index: 1050;
    transform: translateX(-100%);
  }
  .app-sidebar.sidebar-open {
    transform: translateX(0);
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.15);
  }
  .sidebar-backdrop {
    display: none;
  }
  .sidebar-backdrop.active {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.4);
    z-index: 1045;
  }
  .sidebar-toggle-btn {
    display: inline-flex;
  }
  .app-main {
    padding: 1.5rem 1rem 2.5rem;
  }
}

/* Footer */
footer {
  margin-top: auto;
  border-top: 1px solid var(--bs-border-color);
  padding: 1.5rem 0;
  background-color: #f8f9fa;
}

footer .container p {
  text-align: center;
  color: var(--bs-primary);
  margin: 0;
  font-size: 0.9rem;
}

/* Accountant specific styles (yellow/warning theme) */
.app-sidebar .nav-link.active.bg-warning {
  background-color: var(--bs-warning) !important;
  color: #fff !important;
  box-shadow: 0 4px 6px rgba(var(--bs-warning-rgb), 0.2);
}

.app-sidebar .nav-link.text-warning:hover {
  background: rgba(var(--bs-warning-rgb), 0.1);
  color: #8a6d3b !important;
}

.border-warning {
  border-color: var(--bs-warning) !important;
}

.text-warning {
  color: #8a6d3b !important; /* Slightly darker for better readability */
}

.bg-warning {
  background-color: var(--bs-warning) !important;
}

/* Visitor specific styles (blue theme) */
.card-visitor {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  border-width: 1px;
}

.card-visitor:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1) !important;
}

.card-visitor .card-header {
  background-color: var(--bs-primary);
  color: #fff;
  border-bottom: none;
}

.text-primary {
  color: var(--bs-primary) !important;
}

.border-primary {
  border-color: var(--bs-primary) !important;
}

/* Utilities */
.x-small {
  font-size: 0.75rem;
}

.table-hover tbody tr:hover {
  background-color: rgba(var(--bs-primary-rgb), 0.03);
}

/* Code inline */
code {
  font-size: 80%;
}