:root {
  --ak-vert:         #3ab54a;
  --ak-vert-fonce:   #1e6b2e;
  --ak-vert-pale:    #e8f5ea;
  --ak-orange:       #e8920a;
  --ak-orange-pale:  #fff3e0;
  --ak-bg:           #f4f6f4;
  --ak-blanc:        #ffffff;
  --ak-texte:        #2c2c2c;
  --ak-texte-soft:   #6c757d;
  --ak-bordure:      #dde5dd;
  --ak-danger:       #dc3545;
  --ak-succes:       #28a745;
  --ak-warning:      #fd7e14;
  --ak-sidebar-bg:       #1e6b2e;
  --ak-sidebar-hover:    #3ab54a;
  --ak-sidebar-active:   #e8920a;
  --ak-sidebar-texte:    #ffffff;
  --ak-sidebar-width:    240px;
}
html { -webkit-text-size-adjust: 100%; }
body { color: var(--ak-texte); background: var(--ak-bg); font-family: "Segoe UI", sans-serif; overflow-x: hidden; }
a { color: var(--ak-vert); }
img { max-width: 100%; }
table { width: 100%; }
.btn, .form-control, .form-select { min-height: 38px; }
.btn-sm, .form-control-sm, .form-select-sm { min-height: 32px; }
/* Boutons */
.btn-primary { background-color: var(--ak-vert); border-color: var(--ak-vert); color: #fff; }
.btn-primary:hover { background-color: var(--ak-vert-fonce); border-color: var(--ak-vert-fonce); }
.btn-warning { background-color: var(--ak-orange); border-color: var(--ak-orange); color: #fff; }
.btn-warning:hover { background-color: #c97a08; border-color: #c97a08; }
.btn-outline-primary { color: var(--ak-vert); border-color: var(--ak-vert); }
.btn-outline-primary:hover { background-color: var(--ak-vert); color: #fff; }
/* Badges */
.badge.bg-primary { background-color: var(--ak-vert) !important; }
.badge.bg-warning  { background-color: var(--ak-orange) !important; color: #fff !important; }
/* Cards */
.card { border: 1px solid var(--ak-bordure); border-radius: 10px; box-shadow: 0 2px 8px rgba(58,181,74,.07); }
.card-header { background-color: var(--ak-vert-pale); border-bottom: 2px solid var(--ak-vert); color: var(--ak-vert-fonce); font-weight: 600; }
/* Tables */
.table thead th { background-color: var(--ak-vert-fonce); color: #fff; border: none; }
.table tbody tr:hover { background-color: var(--ak-vert-pale); }
/* Sidebar */
.ak-sidebar { width: var(--ak-sidebar-width); background-color: var(--ak-sidebar-bg); min-height: 100vh; position: fixed; top: 0; left: 0; z-index: 100; display: flex; flex-direction: column; }
.ak-sidebar .brand { padding: 16px 12px; border-bottom: 1px solid rgba(255,255,255,.15); display: flex; align-items: center; gap: 10px; }
.ak-sidebar .brand img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.ak-sidebar .brand span { color: #fff; font-weight: 700; font-size: 1rem; line-height: 1.2; }
.ak-sidebar .nav-link { color: var(--ak-sidebar-texte); padding: 10px 20px; border-radius: 6px; margin: 2px 8px; font-size: .9rem; display: flex; align-items: center; gap: 10px; }
.ak-sidebar .nav-link:hover { background-color: var(--ak-sidebar-hover); }
.ak-sidebar .nav-link.active { background-color: var(--ak-sidebar-active); font-weight: 600; }
.ak-sidebar .nav-link .badge { margin-left: auto; }
.ak-sidebar-footer { margin-top: auto; padding: 12px; border-top: 1px solid rgba(255,255,255,.15); }
.ak-sidebar-backdrop { display: none; }
/* Topbar */
.ak-topbar { background-color: var(--ak-blanc); border-bottom: 2px solid var(--ak-vert); margin-left: var(--ak-sidebar-width); padding: 10px 24px; display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 99; }
.ak-topbar-left { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1; }
.ak-sidebar-toggle { flex-shrink: 0; }
.ak-topbar-logo {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid rgba(30, 107, 46, .22);
  flex-shrink: 0;
}
.ak-topbar h5 { margin: 0; font-weight: 600; color: var(--ak-vert-fonce); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Contenu principal */
.ak-content { margin-left: var(--ak-sidebar-width); padding: 24px; background-color: var(--ak-bg); min-height: 100vh; }
/* Stat cards */
.stat-card { border-radius: 12px; padding: 20px; color: #fff; }
.stat-card .stat-value { font-size: 2rem; font-weight: 700; }
.stat-card .stat-label { font-size: .85rem; opacity: .85; }
.stat-card-hover { transition: transform .15s, box-shadow .15s; cursor: pointer; }
.stat-card-hover:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,.25); }
/* Alertes stock */
.stock-critique { color: var(--ak-danger); font-weight: bold; }
.stock-bas      { color: var(--ak-warning); font-weight: bold; }
.stock-ok       { color: var(--ak-succes); }
/* Image thumbnail */
.img-thumb { width: 60px; height: 60px; object-fit: cover; border-radius: 6px; }
/* Caisse */
.pack-card { cursor: pointer; transition: .2s; border: 2px solid var(--ak-bordure); }
.pack-card:hover { border-color: var(--ak-vert); box-shadow: 0 0 0 3px rgba(58,181,74,.15); }
.pack-card.selected { border-color: var(--ak-orange); background: var(--ak-orange-pale); }
.pack-card img { width: 100%; height: 120px; object-fit: cover; border-radius: 6px 6px 0 0; }
/* Print */
@media print {
  .ak-sidebar, .ak-topbar, .no-print { display: none !important; }
  .ak-content { margin-left: 0; padding: 0; }
  body { background: #fff; }
}

@media (max-width: 991.98px) {
  .ak-sidebar {
    transform: translateX(-100%);
    transition: transform .2s ease;
    box-shadow: 0 12px 40px rgba(0, 0, 0, .25);
  }

  .ak-sidebar.is-open {
    transform: translateX(0);
  }

  .ak-sidebar-backdrop {
    display: block;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .4);
    opacity: 0;
    transition: opacity .18s ease;
    z-index: 95;
  }

  .ak-sidebar-backdrop.is-visible {
    opacity: 1;
  }

  .ak-topbar {
    margin-left: 0;
    padding: 8px 12px;
    gap: 8px;
  }

  .ak-topbar h5 {
    font-size: .95rem;
    line-height: 1.2;
    flex: 1;
    min-width: 0;
  }

  #ak-clock {
    font-size: .75rem;
    white-space: nowrap;
    flex-shrink: 0;
  }

  .ak-content {
    margin-left: 0;
    padding: 14px 12px 20px;
  }

  .card,
  .stat-card {
    border-radius: 14px;
  }

  .card-body,
  .card-footer,
  .card-header {
    padding-left: .85rem;
    padding-right: .85rem;
  }

  .card-body {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .table {
    font-size: .85rem;
  }

  .table td,
  .table th {
    padding: .5rem .4rem;
  }

  .row.g-3,
  .row.g-4 {
    --bs-gutter-x: .85rem;
    --bs-gutter-y: .85rem;
  }

  .btn, .form-control, .form-select {
    border-radius: 10px;
  }

  .login-card {
    width: calc(100% - 24px);
    margin: 12px;
  }

  .pack-card img {
    height: 100px;
  }
}

@media (max-width: 575.98px) {
  .ak-topbar-logo {
    display: none;
  }

  .ak-topbar h5 {
    font-size: .9rem;
  }

  #ak-clock {
    font-size: .7rem;
  }

  .card-body,
  .card-footer,
  .card-header {
    padding-left: .75rem;
    padding-right: .75rem;
  }

  .stat-card {
    padding: 14px;
  }

  .stat-card .stat-value {
    font-size: 1.5rem;
  }

  .stat-card .stat-label {
    font-size: .8rem;
  }

  .login-header {
    padding: 18px;
  }
}
