/* Style général */
body {
  background: linear-gradient(135deg, #f8f9fb 0%, #eaf3ff 100%); /* dégradé gris clair -> bleu clair */
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  color: #333;
  min-height: 100vh;
}

/* Logo navbar */
.logo {
  max-height: 75px; /* agrandi */
}

/* Navbar claire moderne */
.navbar {
  background-color: #ffffff !important;
  border-bottom: 2px solid #e0e0e0;
  padding: 0.7rem 1rem;
  box-shadow: 0px 2px 6px rgba(0,0,0,0.08);
}

.navbar .brand-text {
  font-size: 1.5rem;
  color: #2a73d9;
}

.nav-link {
  color: #333 !important;
  transition: color 0.2s ease-in-out;
  font-size: 1rem;
}

.nav-link:hover {
  color: #2a73d9 !important;
}

.nav-link.active {
  color: #2a73d9 !important;
  font-weight: bold;
  border-bottom: 2px solid #2a73d9;
}

/* Cartes / tableaux */
.card {
  border-radius: 8px;
  box-shadow: 0px 2px 6px rgba(0,0,0,0.1);
  
}

.table {
  background: white;
  border-radius: 6px;
  overflow: hidden;
}

/* Clients = Orange */
.btn-client {
  background-color: #ff9e1e; 
  color: white;
  border: none;
}
.btn-client:hover {
  background-color: #e68a00;
  color: white;
}

.text-client {
  color: #e68a00 !important;
}
.border-client {
  border-color: #e68a00 !important;
}

/* Commandes = Bleu */
.btn-order {
  background-color: #cf7f07; 
  color: white;
  border: none;
}
.btn-order:hover {
  background-color: #0099cc;
  color: white;
}

/* Livraisons = Vert */
.btn-delivery {
  background-color: #4CAF50; 
  color: white;
  border: none;
}
.btn-delivery:hover {
  background-color: #3e8e41;
  color: white;
}

/* Espacement du menu utilisateur */
.navbar .nav-item.dropdown:last-child {
  margin-left: 1rem;
}

/* Style particulier pour Administration */
.navbar .nav-item .nav-link.admin-link {
  font-weight: 600;
  color: #0d6efd;
}
.navbar .nav-item .nav-link.admin-link:hover {
  color: #0a58ca;
}

/* Uniformisation hover */
.navbar .nav-link:hover,
.navbar .dropdown-item:hover {
  background-color: rgba(0,123,255,0.05);
  border-radius: 0.3rem;
}

/* Menu Analyses et Administration du Dashboard */

/* Empêche les liens actifs de devenir blancs au survol */
.navbar .dropdown-item.active:hover {
  background-color: #e7f1ff !important;
  color: #0a58ca !important;
}

/* Administration = Rouge */
.text-admin {
  color: #dc3545 !important;
}
.border-admin {
  border-color: #dc3545 !important;
}
.btn-admin {
  background-color: #dc3545; 
  color: white;
  border: none;
}
.btn-admin:hover {
  background-color: #b02a37;
  color: white;
}

.text-admin-connexion {
  color: #35dc3bcc !important;
}

/* Icons des sous-menu de Administration  */
.text-admin-user {
  color: #be8407 !important;  /* bleu Administration */
}
.text-admin-create {
  color: #d44d0a !important;  /* rouge Administration */
}

/* --- Hamburger custom --- */
.navbar-toggler {
  background-color: #ff691e;
  border: none;
  padding: 6px 10px;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.navbar-toggler-icon {
  background-image: none !important;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 20px;
  height: 16px;
}

.navbar-toggler-icon::before,
.navbar-toggler-icon::after,
.navbar-toggler-icon div {
  content: "";
  display: block;
  height: 2px;
  width: 100%;
  background-color: white;
  border-radius: 2px;
}

html, body {
  height: 100%;
}

body {
  display: flex;
  flex-direction: column;
}

/* Contenu principal */
main {
  flex: 1;
}

/* Pagination spacing responsive */
.pagination {
  margin-bottom: 30px; /* mobile */
}

@media (min-width: 768px) {
  .pagination {
    margin-bottom: 50px; /* tablette */
  }
}

@media (min-width: 1200px) {
  .pagination {
    margin-bottom: 70px; /* desktop large */
  }
}

/* Footer */
footer {
  background-color: #222 !important; /* gris anthracite */
  color: #f1f1f1 !important;        /* texte adouci */
  flex-shrink: 0;
  border-top: 1px solid #444;       /* fine bordure claire */
  box-shadow: 0 -2px 6px rgba(0,0,0,0.3); /* ombre subtile en haut */
}

/* Effet hover sur "MobiPrint" */
footer .brand-signature {
  color: #ffc107;
  transition: text-shadow 0.5s ease-in-out;
}

footer .brand-signature:hover {
  color: #ffda44; /* plus lumineux */
  text-shadow: 0 0 8px rgba(255, 218, 68, 0.8); /* halo doré */
  cursor: pointer;
}

/* Glow permanent quand la classe "glow" est activée */
footer .brand-signature.glow {
  text-shadow: 0 0 10px #ffc107,
               0 0 20px #ffdd57,
               0 0 30px #fff176;
}

/* Animation "glow-once" pour MobiPrint */
@keyframes glow-once {
  0%   { text-shadow: none; }
  20%  { text-shadow: 0 0 6px #ffc107, 0 0 12px #ffdd57; }
  50%  { text-shadow: 0 0 12px #ffc107, 0 0 24px #ffdd57, 0 0 36px #fff176; }
  100% { text-shadow: none; }
}

footer .brand-signature.glow-once {
  animation: glow-once 0.3s ease-in-out forwards;
}

.container, .row, main, body, html {
  max-width: 100%;
  overflow-x: hidden;
}

/* Alignement vertical des labels non-floating (comme Select2) */
.form-label.fw-semibold {
  margin-bottom: 0.3rem;
}
.select2-container {
  margin-top: 0.1rem;
}

/* === Cartes === */
.card {
  border-radius: 12px;
  transition: all 0.3s ease;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}
.chart-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 14px rgba(0,0,0,0.1);
}

/* === Barre verticale colorée discrète === */
.border-client {
  border-left: 4px solid #0d6efd;
}
.border-info {
  border-left: 4px solid #0dcaf0;
}
.border-success {
  border-left: 4px solid #198754;
}

/* === Tableau de statuts (Commandes) === */
.stats-table {
  background: transparent;
  border-collapse: separate;
  border-spacing: 0 4px;
}
.stats-table td {
  padding: 6px 10px;
  background: transparent;
  font-size: 0.95rem;
}
.stats-table i {
  font-size: 1rem;
  vertical-align: middle;
  opacity: 0.9;
}

/* couleurs icônes */
.icon-livree { color: #28a745; }
.icon-livraison { color: #0dcaf0; }
.icon-encours { color: #ffc107; }

/* effet hover léger sur les lignes */
.stats-table tr:hover td {
  background-color: rgba(0, 0, 0, 0.03);
  border-radius: 6px;
  transition: background-color 0.2s ease;
}

/* === Boutons dashboard === */
.btn-client,
.btn-info,
.btn-success {
  font-size: 0.85rem;
  font-weight: 500;
  border-radius: 8px;
  transition: all 0.25s ease;
}

.btn-info:hover {
  background-color: #0bb8d7;
}
.btn-success:hover {
  background-color: #146c43;
}

/* Effet lumière au survol des boutons */
.btn-client,
.btn-info,
.btn-success {
  position: relative;
  overflow: hidden;
}
.btn-client::before,
.btn-info::before,
.btn-success::before {
  content: "";
  position: absolute;
  top: 0;
  left: -80px;
  width: 50px;
  height: 100%;
  background: rgba(255, 255, 255, 0.3);
  transform: skewX(-20deg);
  transition: left 0.4s ease;
}
.btn-client:hover::before,
.btn-info:hover::before,
.btn-success:hover::before {
  left: 120%;
}

/* === Chiffres bien lisibles === */
.display-6 {
  color: #212529;
  font-weight: 700;
}

/* === Impression = Violet === */
.border-impression {
  border-left: 4px solid #6f42c1; /* Violet indigo */
}

.btn-impression {
  background-color: #6f42c1;
  color: white;
  border: none;
  font-size: 0.85rem;
  font-weight: 500;
  border-radius: 8px;
  transition: all 0.25s ease;
}

.btn-impression:hover {
  background-color: #5a32a3; /* plus foncé au survol */
}

/* effet lumière */
.btn-impression {
  position: relative;
  overflow: hidden;
  color: white !important;
}
.btn-impression::before {
  content: "";
  position: absolute;
  top: 0;
  left: -80px;
  width: 50px;
  height: 100%;
  background: rgba(255, 255, 255, 0.3);
  transform: skewX(-20deg);
  transition: left 0.4s ease;
}
.btn-impression:hover::before {
  left: 120%;
}

.text-impression {
  color: #6f42c1 !important;
}