/* ==================================================================
   Theme harmonise bleu nuit "da-" — design system partage
   Modules referentiel + administration (et futurs modules)
   Palette : navy #10243f / accent #2f6fed / fond #f3f5f9 / statuts pastel
   ================================================================== */
.da-wrap {
  --da-navy: #10243f;
  --da-navy-2: #16345c;
  --da-accent: #2f6fed;
  --da-accent-soft: #eaf1fe;
  --da-bg: #f3f5f9;
  --da-border: #e3e8f0;
  --da-text: #1c2b3a;
  --da-muted: #64748b;
  font-family: "Segoe UI", system-ui, Roboto, Helvetica, Arial, sans-serif;
  background: var(--da-bg);
  color: var(--da-text);
  border-radius: 16px;
  padding: 24px;
}
.da-section-title {
  display: flex; align-items: center; gap: 10px;
  font-weight: 700; font-size: 1.02rem; color: var(--da-navy);
  margin: 0 0 4px 0; letter-spacing: .2px;
}
.da-section-sub { color: var(--da-muted); font-size: 13px; margin-bottom: 14px; }
.da-card {
  background: #fff; border: 1px solid var(--da-border);
  border-radius: 14px; padding: 18px;
  box-shadow: 0 1px 2px rgba(16,36,63,.05);
  height: 100%;
}
.da-card-header {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 8px 12px; padding-bottom: 12px; margin-bottom: 14px;
  border-bottom: 1px solid var(--da-border);
}
.da-card-title {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 700; font-size: 15px; color: var(--da-navy); margin: 0;
}
.da-bandeau {
  background: linear-gradient(120deg, var(--da-navy) 0%, var(--da-navy-2) 60%, #1d4a8c 100%);
  border-radius: 16px;
  color: #fff;
  padding: 22px 24px;
  box-shadow: 0 8px 24px rgba(16,36,63,.22);
}
.da-bandeau .da-logo {
  width: 64px; height: 64px; border-radius: 14px;
  background: rgba(255,255,255,.96);
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; flex-shrink: 0;
}
.da-bandeau h3 { font-weight: 800; margin: 0; }
.da-bandeau .da-infos { color: rgba(255,255,255,.82); font-size: 13.5px; }
.da-badge {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.24);
  padding: 4px 12px; border-radius: 999px; font-size: 12.5px;
}
.da-pill-stat {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 12px; padding: 8px 14px; min-width: 120px;
}
.da-pill-stat b { display: block; font-size: 16px; font-weight: 800; }
.da-pill-stat small { color: rgba(255,255,255,.78); font-size: 11.5px; }
.da-kpi {
  background: #fff; border: 1px solid var(--da-border);
  border-radius: 14px; padding: 16px; color: var(--da-text); height: 100%;
  text-decoration: none; display: block; transition: all .15s ease;
}
.da-kpi:hover {
  border-color: var(--da-accent); transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(47,111,237,.12); color: var(--da-text);
}
.da-kpi-head { display: flex; justify-content: space-between; align-items: flex-start; }
.da-kpi-ic { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; }
.da-kpi-txt { flex: 1; min-width: 0; }
.da-kpi-val { font-size: 18px; font-weight: 800; line-height: 1.25; font-variant-numeric: tabular-nums; }
.da-kpi-val small { font-size: 11px; font-weight: 600; color: var(--da-muted); }
.da-kpi-lbl { color: var(--da-muted); font-size: 12.5px; margin-top: 2px; }

/* ---- Boutons ---- */
.da-btn-sm {
  display: inline-flex; align-items: center; gap: 6px;
  font-weight: 700; font-size: 12.5px; padding: 7px 14px;
  border-radius: 9px; text-decoration: none; border: none; cursor: pointer;
  transition: all .15s ease; line-height: 1;
}
.da-btn-sm:hover { transform: translateY(-1px); text-decoration: none; }
.da-btn-lg {
  display: inline-flex; align-items: center; gap: 6px;
  font-weight: 700; font-size: 13.5px; padding: 10px 18px;
  border-radius: 10px; text-decoration: none; border: none; cursor: pointer;
  transition: all .15s ease;
}
.da-btn-lg:hover { transform: translateY(-1px); text-decoration: none; }
.da-btn-primary { background: var(--da-accent); color: #fff; }
.da-btn-primary:hover { background: #2456c4; color: #fff; }
.da-btn-green { background: #11998e; color: #fff; }
.da-btn-green:hover { background: #0b7a5e; color: #fff; }

/* ---- Chips / badges statut ---- */
.da-chip {
  display: inline-flex; align-items: center; white-space: nowrap;
  font-size: 12px; font-weight: 700; padding: 4px 10px; border-radius: 999px;
}
.da-idx {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 26px; height: 26px; border-radius: 8px;
  font-size: 12.5px; font-weight: 800;
}
.da-idx-blue { background: var(--da-accent-soft); color: var(--da-accent); }
.da-idx-green { background: #f0fdf4; color: #11998e; }
.da-acct {
  display: inline-block; background: #eef1f6; color: var(--da-navy-2);
  font-weight: 700; font-size: 12px; padding: 3px 9px; border-radius: 7px;
}

/* ---- Boutons d'action dans les tables ---- */
.da-ia {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 8px; border: none; cursor: pointer;
  background: var(--da-accent-soft); color: var(--da-accent); font-size: 13px;
  transition: all .15s ease; padding: 0;
}
.da-ia:hover { transform: translateY(-1px); box-shadow: 0 3px 8px rgba(47,111,237,.25); }
.da-ia-danger { background: #fef2f2; color: #ef4444; }
.da-ia-danger:hover { box-shadow: 0 3px 8px rgba(239,68,68,.25); }
.da-ia-warn { background: #fff8ec; color: #b8730f; }
.da-ia-warn:hover { box-shadow: 0 3px 8px rgba(217,164,6,.28); }
.da-chip-blue { background: var(--da-accent-soft); color: var(--da-accent); }
.da-chip-green { background: #f0fdf4; color: #11998e; }
.da-chip-on { background: #f0fdf4; color: #11998e; }
.da-chip-off { background: #fef2f2; color: #ef4444; }
.article-title { font-weight: 700; font-size: 13.5px; color: var(--da-text); }
.article-sub { display: block; font-size: 11.5px; color: var(--da-muted); }
.price-main { font-weight: 700; color: var(--da-text); font-variant-numeric: tabular-nums; }
.price-sub { font-size: 11px; color: var(--da-muted); font-variant-numeric: tabular-nums; }
.desc-cell { font-size: 12px; color: var(--da-muted); max-width: 220px; }

/* ---- Tables cartes categories ---- */
.da-table thead th {
  border-top: none; border-bottom: 1px solid var(--da-border);
  font-size: 11.5px; text-transform: uppercase; letter-spacing: .5px;
  color: var(--da-muted); font-weight: 700; white-space: nowrap;
  background: #fafbfc;
}
.da-table tbody td { font-size: 13px; color: var(--da-text); }
.da-table tbody tr { transition: background .12s ease; }
.da-table tbody tr:hover { background: #f6f9ff; }
.da-empty { text-align: center; color: var(--da-muted); padding: 34px 10px; }
.da-empty i { font-size: 34px; opacity: .4; display: block; margin-bottom: 8px; }
.da-empty div { font-weight: 700; color: var(--da-text); margin-bottom: 4px; }
.da-empty p { font-size: 13px; margin-bottom: 14px; }

/* ---- Table catalogue ---- */
.da-cat .table thead th,
.da-wrap .table thead th {
  border-top: none; border-bottom: 1px solid var(--da-border);
  font-size: 11.5px; text-transform: uppercase; letter-spacing: .5px;
  color: var(--da-muted); font-weight: 700; white-space: nowrap;
  background: #fafbfc;
}
.da-cat .table tbody td,
.da-wrap .table tbody td { font-size: 13px; vertical-align: middle; }
.da-cat .table tbody tr,
.da-wrap .table tbody tr { transition: background .12s ease; }
.da-cat .table tbody tr:hover,
.da-wrap .table tbody tr:hover { background: #f6f9ff; }
.da-cat .table .badge,
.da-wrap .table .badge {
  font-weight: 700; font-size: .72rem; padding: .3rem .55rem; border-radius: 8px;
}
.da-cat .table .badge.bg-primary,
.da-wrap .table .badge.bg-primary { background: #eaf1fe !important; color: #2f6fed !important; }
.da-cat .table .badge.bg-success,
.da-wrap .table .badge.bg-success { background: #f0fdf4 !important; color: #11998e !important; }
.da-cat .table .badge.bg-danger,
.da-wrap .table .badge.bg-danger { background: #fef2f2 !important; color: #ef4444 !important; }
.da-cat .table .badge.bg-warning,
.da-wrap .table .badge.bg-warning { background: #fef9ec !important; color: #d9a406 !important; }
.da-cat .table .badge.bg-info,
.da-wrap .table .badge.bg-info { background: #eef6ff !important; color: #0ea5e9 !important; }
.da-cat .table .badge.bg-purple,
.da-wrap .table .badge.bg-purple { background: #eef3ff !important; color: #5b21b6 !important; }
.da-cat .table .badge.bg-secondary,
.da-wrap .table .badge.bg-secondary { background: #eef2f7 !important; color: #4b5d6e !important; }
.da-cat .table img, .da-cat .table .bg-light,
.da-wrap .table img, .da-wrap .table .bg-light {
  border-radius: 8px; border: 1px solid var(--da-border);
}
.da-cat .table .btn,
.da-wrap .table .btn {
  border-radius: 8px; font-size: .72rem; padding: .2rem .45rem;
  font-weight: 700; transition: all .15s ease;
}
.da-cat .table .btn-outline-primary,
.da-wrap .table .btn-outline-primary { border-color: #d5e3ff; color: #2f6fed; background: #f4f8ff; }
.da-cat .table .btn-outline-primary:hover,
.da-wrap .table .btn-outline-primary:hover { background: #2f6fed; color: #fff; }
.da-cat .table .btn-outline-success,
.da-wrap .table .btn-outline-success { border-color: #c4ecdd; color: #11998e; background: #f5fcf9; }
.da-cat .table .btn-outline-success:hover,
.da-wrap .table .btn-outline-success:hover { background: #11998e; color: #fff; }
.da-cat .table .btn-outline-danger,
.da-wrap .table .btn-outline-danger { border-color: #ffd2d2; color: #ef4444; background: #fff6f6; }
.da-cat .table .btn-outline-danger:hover,
.da-wrap .table .btn-outline-danger:hover { background: #ef4444; color: #fff; }
.da-cat .table .btn-outline-warning,
.da-wrap .table .btn-outline-warning { border-color: #ffe8c2; color: #b8730f; background: #fff8ec; }
.da-cat .table .btn-outline-warning:hover,
.da-wrap .table .btn-outline-warning:hover { background: #d9a406; color: #fff; }
.da-cat .table td.text-end,
.da-wrap .table td.text-end { font-variant-numeric: tabular-nums; }
.da-cat .table small.text-muted,
.da-wrap .table small.text-muted { display: block; font-size: 11.5px; }
.da-cat-body { margin-top: 4px; }

/* ---- Onglets ---- */
.da-tabs {
  gap: 6px; border-bottom: 1px solid var(--da-border); padding-bottom: 12px;
  display: flex; flex-wrap: wrap; margin-top: -4px;
}
.da-tabs .nav-link {
  border-radius: 10px; font-weight: 600; font-size: 13px;
  color: var(--da-muted); padding: 8px 16px; background: transparent;
  border: 1px solid transparent; transition: all .15s ease;
}
.da-tabs .nav-link:hover { background: var(--da-accent-soft); color: var(--da-accent); }
.da-tabs .nav-link.active {
  background: var(--da-navy); color: #fff; border-color: var(--da-navy);
  box-shadow: 0 4px 10px rgba(16,36,63,.2);
}

/* ---- Modals ---- */
.modal-content {
  border: none !important; border-radius: 16px !important;
  box-shadow: 0 20px 60px rgba(16,36,63,.35) !important;
}
.modal-header {
  background: var(--da-navy, #10243f); color: #fff;
  border-radius: 16px 16px 0 0 !important; border-bottom: none !important;
}
.modal-header .modal-title { font-weight: 700; color: #fff; }
.modal-header .btn-close { filter: invert(1); }
.modal-body { padding: 20px; }
.modal-body .form-label { font-weight: 600; color: var(--da-navy, #10243f); font-size: 13px; }
.modal .btn { border-radius: 8px !important; font-weight: 600 !important; }

/* ==================================================================
   Restyle "legacy Hyper" pour la coherence sur les pages da- :
   ne s'applique qu'aux contenus enveloppes dans .da-wrap
   ================================================================== */
.da-wrap .breadcrumb { display: none !important; }
.da-wrap .page-header {
  font-size: 1.3rem; color: var(--da-navy); font-weight: 700;
  letter-spacing: .2px; margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--da-accent);
}
.da-wrap .page-header small { color: var(--da-muted); font-size: .8rem; display: block; margin-top: 4px; }
.da-wrap .card {
  border-radius: 14px; background: #fff;
  border: 1px solid var(--da-border);
  box-shadow: 0 1px 2px rgba(16,36,63,.05);
}
.da-wrap .card-body { }
.da-wrap .text-primary { color: var(--da-accent) !important; }
.da-wrap .text-info { color: #0ea5e9 !important; }

/* Carres d'icones statistiques -> pastel da- */
.da-wrap .rounded-circle { border-radius: 10px !important; }
.da-wrap .bg-primary { background-color: var(--da-accent) !important; }
.da-wrap .text-bg-primary { background-color: var(--da-accent) !important; }
.da-wrap .bg-primary.bg-opacity-10,
.da-wrap .bg-primary.bg-opacity-25 { background-color: var(--da-accent-soft) !important; color: var(--da-accent) !important; }
.da-wrap .bg-success.bg-opacity-10,
.da-wrap .bg-success.bg-opacity-25 { background-color: #f0fdf4 !important; color: #11998e !important; }
.da-wrap .bg-danger.bg-opacity-10,
.da-wrap .bg-danger.bg-opacity-25 { background-color: #fef2f2 !important; color: #ef4444 !important; }
.da-wrap .bg-warning.bg-opacity-10,
.da-wrap .bg-warning.bg-opacity-25 { background-color: #fef9ec !important; color: #d9a406 !important; }
.da-wrap .bg-info.bg-opacity-10,
.da-wrap .bg-info.bg-opacity-25 { background-color: #eef6ff !important; color: #0ea5e9 !important; }

/* Boutons generiques -> palette da- */
.da-wrap .btn-primary { background: var(--da-accent); border-color: var(--da-accent); }
.da-wrap .btn-primary:hover, .da-wrap .btn-primary:focus { background: #2456c4; border-color: #2456c4; }
.da-wrap .btn-info { background: #0ea5e9; border-color: #0ea5e9; }
.da-wrap .btn-info:hover { background: #0284c7; border-color: #0284c7; }
.da-wrap .btn-light { background: #fff; border-color: var(--da-border); color: var(--da-navy); }
.da-wrap .btn-success { background: #11998e; border-color: #11998e; }
.da-wrap .btn-success:hover { background: #0b7a5e; border-color: #0b7a5e; }
.da-wrap .btn-outline-primary { border-color: #d5e3ff; color: #2f6fed; background: #f4f8ff; }
.da-wrap .btn-outline-primary:hover { background: #2f6fed; color: #fff; border-color: #2f6fed; }
.da-wrap .btn-outline-success { border-color: #c4ecdd; color: #11998e; background: #f5fcf9; }
.da-wrap .btn-outline-success:hover { background: #11998e; color: #fff; border-color: #11998e; }
.da-wrap .btn-outline-danger { border-color: #ffd2d2; color: #ef4444; background: #fff6f6; }
.da-wrap .btn-outline-danger:hover { background: #ef4444; color: #fff; border-color: #ef4444; }
.da-wrap .btn-outline-warning { border-color: #ffe8c2; color: #b8730f; background: #fff8ec; }
.da-wrap .btn-outline-warning:hover { background: #d9a406; color: #fff; border-color: #d9a406; }
.da-wrap .btn-danger { background: #ef4444; border-color: #ef4444; }
.da-wrap .btn-danger:hover { background: #b91c1c; border-color: #b91c1c; }
.da-wrap .btn-warning { background: #d9a406; border-color: #d9a406; color: #fff; }
.da-wrap .btn-warning:hover { background: #b57f02; border-color: #b57f02; color: #fff; }
.da-wrap .btn-secondary { background: #64748b; border-color: #64748b; }
.da-wrap .btn-secondary:hover { background: #475569; border-color: #475569; }
.da-wrap .card-header.bg-primary,
.da-wrap .card-header.bg-warning { background: var(--da-navy) !important; color: #fff; border-radius: 14px 14px 0 0; }
.da-wrap .card-header.bg-light,
.da-wrap .card-header.bg-white { background: #fff; border-bottom: 1px solid var(--da-border); }
.da-btn-danger { background: #ef4444; color: #fff; }
.da-btn-danger:hover { background: #b91c1c; color: #fff; }

/* Formulaires */
.da-wrap .form-control, .da-wrap .form-select {
  border-radius: 8px; border-color: var(--da-border); font-size: 13.5px;
}
.da-wrap .form-control:focus, .da-wrap .form-select:focus {
  border-color: var(--da-accent); box-shadow: 0 0 0 .2rem rgba(47,111,237,.15);
}
.da-wrap .form-label { font-weight: 600; color: var(--da-navy); font-size: 13px; }

/* Alerts */
.da-wrap .alert { border-radius: 12px; }
.da-wrap .alert-info { background: #eef6ff; border-color: #d5e8ff; color: #1d4a8c; }
.da-wrap .alert-success { background: #f0fdf4; border-color: #c4ecdd; color: #0b7a5e; }
.da-wrap .alert-danger { background: #fef2f2; border-color: #ffd2d2; color: #b91c1c; }
.da-wrap .alert-warning { background: #fef9ec; border-color: #ffe8c2; color: #92400e; }

@media (max-width: 768px) { .da-wrap { padding: 14px; } .da-bandeau { padding: 18px; } }