/* Charte graphique Mdad Facturation — dérivée du logo officiel */
:root {
  --mdad-green-50: #f3faf0;
  --mdad-green-100: #e3f5db;
  --mdad-green-200: #c4e9b0;
  --mdad-green-300: #8fd86a;
  --mdad-green-400: #58c000;
  --mdad-green-500: #2db000;
  --mdad-green-600: #1b9a00;
  --mdad-green-700: #0f7a00;
  --mdad-green-800: #0a5e00;
  --mdad-green-900: #064400;

  --mdad-primary: var(--mdad-green-600);
  --mdad-primary-hover: var(--mdad-green-700);
  --mdad-primary-active: var(--mdad-green-800);
  --mdad-accent: var(--mdad-green-400);
  --mdad-ink: #1a2e16;
  --mdad-muted: #5f6f5a;
  --mdad-border: #d7e3d1;
  --mdad-surface: #ffffff;
  --mdad-bg: #f5f8f3;

  --mdad-success: #198754;
  --mdad-warning: #c9a227;
  --mdad-danger: #c62828;
  --mdad-info: #0277bd;

  /* Tabler theme overrides */
  --tblr-primary: #1b9a00;
  --tblr-primary-rgb: 27, 154, 0;
  --tblr-primary-fg: #fff;
  --tblr-link-color: #1b9a00;
  --tblr-link-hover-color: #0f7a00;
  --tblr-body-bg: var(--mdad-bg);
  --tblr-body-color: var(--mdad-ink);
  --tblr-border-color: var(--mdad-border);
  --tblr-font-sans-serif: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

body {
  background:
    radial-gradient(circle at top left, rgba(27, 154, 0, 0.08), transparent 40%),
    radial-gradient(circle at bottom right, rgba(88, 192, 0, 0.06), transparent 35%),
    linear-gradient(180deg, #f7fbf5 0%, #eef3ec 100%);
  color: var(--mdad-ink);
}

/* Sidebar branding */
.navbar-vertical[data-bs-theme="dark"] {
  background: linear-gradient(180deg, #064400 0%, #0a5e00 45%, #0f7a00 100%) !important;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
}

.navbar-vertical .navbar-brand {
  padding-top: 0.85rem;
  padding-bottom: 0.85rem;
}

.brand-lockup {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  text-decoration: none !important;
}

.brand-logo {
  width: 42px;
  height: 42px;
  object-fit: contain;
  background: #fff;
  border-radius: 10px;
  padding: 3px;
  flex-shrink: 0;
}

.brand-text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
  min-width: 0;
}

.brand-name {
  color: #fff;
  font-weight: 700;
  font-size: 0.98rem;
  letter-spacing: 0.01em;
}

.brand-tagline {
  color: rgba(227, 245, 219, 0.85);
  font-size: 0.68rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 150px;
}

.navbar-vertical .nav-link.active,
.navbar-vertical .nav-link:hover {
  background: rgba(255, 255, 255, 0.1);
}

.navbar-vertical .nav-link-title {
  color: rgba(255, 255, 255, 0.92);
}

/* Top bar */
.page-wrapper > .navbar {
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--mdad-border);
}

.page-title {
  color: var(--mdad-ink);
  font-weight: 700;
}

.stat-card {
  border: 1px solid var(--mdad-border);
  box-shadow: 0 8px 24px rgba(26, 46, 22, 0.05);
  background: var(--mdad-surface);
}

.stat-card .h1 {
  color: var(--mdad-green-700);
}

.btn-primary {
  --tblr-btn-bg: var(--mdad-primary);
  --tblr-btn-border-color: var(--mdad-primary);
  --tblr-btn-hover-bg: var(--mdad-primary-hover);
  --tblr-btn-hover-border-color: var(--mdad-primary-hover);
  --tblr-btn-active-bg: var(--mdad-primary-active);
  --tblr-btn-active-border-color: var(--mdad-primary-active);
  background-color: var(--mdad-primary) !important;
  border-color: var(--mdad-primary) !important;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--mdad-primary-hover) !important;
  border-color: var(--mdad-primary-hover) !important;
}

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

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

.badge.bg-blue-lt,
.badge.bg-green-lt {
  background: var(--mdad-green-100) !important;
  color: var(--mdad-green-800) !important;
}

.badge-test {
  background: #fff8e1;
  color: #8a6d1d;
  border: 1px solid #ffe082;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--mdad-green-400);
  box-shadow: 0 0 0 0.2rem rgba(27, 154, 0, 0.18);
}

.card {
  border-color: var(--mdad-border);
}

.table thead th {
  color: var(--mdad-muted);
  font-weight: 600;
}

.footer {
  border-top: 1px solid var(--mdad-border);
  background: transparent;
}

/* Login */
.login-shell {
  min-height: 100vh;
  display: flex;
  align-items: center;
  background:
    radial-gradient(circle at 15% 20%, rgba(88, 192, 0, 0.16), transparent 42%),
    radial-gradient(circle at 85% 80%, rgba(27, 154, 0, 0.12), transparent 40%),
    linear-gradient(160deg, #f7fbf5 0%, #e8f3e2 100%);
}

.login-brand-logo {
  width: min(180px, 55vw);
  height: auto;
  object-fit: contain;
  margin: 0 auto 0.75rem;
  display: block;
}

.login-app-name {
  font-size: 1.45rem;
  font-weight: 800;
  color: var(--mdad-green-800);
  margin: 0;
}

.login-slogan {
  color: var(--mdad-muted);
  font-size: 0.95rem;
  margin-top: 0.35rem;
}

.login-card {
  border: 1px solid var(--mdad-border);
  box-shadow: 0 18px 40px rgba(26, 46, 22, 0.08);
  border-radius: 1rem;
}

.empty-state {
  text-align: center;
  padding: 2.5rem 1rem;
  color: var(--mdad-muted);
}

.table-responsive {
  overflow-x: auto;
}

@media (max-width: 768px) {
  .brand-tagline {
    display: none;
  }
  .brand-logo {
    width: 36px;
    height: 36px;
  }
  .btn-group-mobile {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
  }
  .btn-group-mobile .btn {
    width: 100%;
  }
  .login-app-name {
    font-size: 1.25rem;
  }
}
