/* ═══════════════════════════════════════════════════════════════
   Revue Scientifique IGA — Feuille de style principale v2.1
   Toutes les tailles/polices viennent des variables CSS
   définies dynamiquement par header.php depuis tbl_parametres
   ═══════════════════════════════════════════════════════════════ */

/* ── Variables par défaut (écrasées par header.php) ─────────── */
:root {
  --iga-primary:        #008080;
  --iga-primary-dark:   #005f5f;
  --iga-primary-light:  #e0f5f5;
  --iga-sidebar-bg:     #f8fffe;
  --iga-border:         #e2ecec;
  --iga-text:           #1a2a2a;
  --iga-text-muted:     #6b7c7c;

  /* Typographie — toutes remplacées par header.php */
  --iga-font-body:      'Segoe UI', system-ui, sans-serif;
  --iga-font-titre:     'Segoe UI', system-ui, sans-serif;
  --iga-font-base:      14px;
  --iga-font-h1:        28px;
  --iga-font-h2:        22px;
  --iga-font-h3:        18px;
  --iga-line-height:    1.6;
  --iga-radius:         8px;

  /* Tailles dérivées automatiquement de la base */
  --iga-font-sm:        calc(var(--iga-font-base) * 0.875);
  --iga-font-xs:        calc(var(--iga-font-base) * 0.75);
  --iga-font-lg:        calc(var(--iga-font-base) * 1.125);
  --iga-font-xl:        calc(var(--iga-font-base) * 1.25);
}

/* ── Global ──────────────────────────────────────────────────── */
body {
  font-family:  var(--iga-font-body);
  font-size:    var(--iga-font-base);
  line-height:  var(--iga-line-height);
  color:        var(--iga-text);
  background:   #f5f7f7;
}

h1, .h1 { font-family: var(--iga-font-titre); font-size: var(--iga-font-h1); line-height: 1.2; }
h2, .h2 { font-family: var(--iga-font-titre); font-size: var(--iga-font-h2); line-height: 1.3; }
h3, .h3 { font-family: var(--iga-font-titre); font-size: var(--iga-font-h3); line-height: 1.3; }
h4, .h4 { font-family: var(--iga-font-titre); font-size: calc(var(--iga-font-h3) * 0.9); }
h5, .h5 { font-family: var(--iga-font-titre); font-size: calc(var(--iga-font-base) * 1.1); }
h6, .h6 { font-family: var(--iga-font-titre); font-size: var(--iga-font-base); }

a { color: var(--iga-primary); }
a:hover { color: var(--iga-primary-dark); }

small, .small { font-size: var(--iga-font-sm) !important; }
.x-small      { font-size: var(--iga-font-xs) !important; }
.fw-medium    { font-weight: 500; }

/* ── PAGE PUBLIQUE ═══════════════════════════════════════════ */

/* Header public */
header .nav-public { background: transparent; }
header .nav-public .nav-link {
  color:          rgba(255,255,255,.85) !important;
  font-family:    var(--iga-font-menu);
  font-size:      var(--iga-font-menu-size);
  font-weight:    var(--iga-font-menu-weight);
  text-transform: var(--iga-font-menu-case);
  letter-spacing: var(--iga-font-menu-spacing);
  border-radius:  .3rem;
  transition:     background .15s;
  padding:        var(--iga-menu-py) var(--iga-menu-px);
}
header .nav-public .nav-link:hover,
header .nav-public .nav-link.active {
  background: rgba(255,255,255,.18) !important;
  color: #fff !important;
}

/* Dropdown menus publics */
header .nav-public .dropdown-menu {
  font-family:    var(--iga-font-menu);
  font-size:      var(--iga-font-menu-size);
  font-weight:    var(--iga-font-menu-weight);
  letter-spacing: var(--iga-font-menu-spacing);
}
header .nav-public .dropdown-item {
  font-family: var(--iga-font-menu);
  font-size:   var(--iga-font-menu-size);
  padding:     calc(var(--iga-menu-py) * 0.7) var(--iga-menu-px);
}

/* Titre revue dans le header */
header .iga-site-name {
  font-family: var(--iga-font-titre);
  font-size:   calc(var(--iga-font-h2) * 1.1);
  font-weight: 700;
  line-height: 1;
}
header .iga-site-slogan {
  font-family: var(--iga-font-body);
  font-size:   var(--iga-font-sm);
  opacity:     .82;
}

/* Barre de recherche header */
header .form-control {
  font-family: var(--iga-font-body);
  font-size:   var(--iga-font-sm);
}
header .btn {
  font-family: var(--iga-font-body);
  font-size:   var(--iga-font-sm);
}

/* ── SIDEBAR GAUCHE ──────────────────────────────────────────── */
.public-layout { min-height: calc(100vh - 200px); }

.sidebar-left {
  background:    var(--iga-sidebar-bg);
  border-right:  1px solid var(--iga-border);
  position:      sticky;
  top:           0;
  height:        100vh;
  overflow-y:    auto;
}

/* Titre des sections sidebar (ex: "Volumes", "Domaines") */
.sidebar-title {
  font-family:    var(--iga-font-titre);
  font-size:      var(--iga-font-xs);
  text-transform: uppercase;
  letter-spacing: .08em;
  color:          var(--iga-text-muted);
  font-weight:    700;
  margin-bottom:  .6rem;
  padding:        0 .5rem;
  background:     var(--iga-primary);
  color:          #fff;
  border-radius:  calc(var(--iga-radius) * 0.5);
  padding:        .35rem .75rem;
  display:        block;
}

/* Liens dans le sidebar */
.sidebar-link {
  display:         flex;
  align-items:     center;
  padding:         .45rem .75rem;
  border-radius:   calc(var(--iga-radius) * 0.5);
  text-decoration: none;
  color:           var(--iga-text);
  font-family:     var(--iga-font-body);
  font-size:       var(--iga-font-sm);
  line-height:     var(--iga-line-height);
  transition:      background .12s;
  margin-bottom:   .1rem;
}
.sidebar-link:hover  { background: var(--iga-primary-light); color: var(--iga-primary); }
.sidebar-link.active { background: var(--iga-primary-light); color: var(--iga-primary); font-weight: 600; }

/* Badges dans le sidebar (nb articles) */
.sidebar-link .badge {
  font-family: var(--iga-font-body);
  font-size:   calc(var(--iga-font-xs) * 0.9);
}

.sidebar-section { padding: 0 .25rem; }

/* ── CONTENU PRINCIPAL (articles, listes) ────────────────────── */
main .card-body {
  font-family: var(--iga-font-body);
  font-size:   var(--iga-font-base);
  line-height: var(--iga-line-height);
}

/* Titre d'article dans la liste */
.article-title-hover {
  font-family: var(--iga-font-titre);
  font-size:   var(--iga-font-lg) !important;
  line-height: 1.35;
}
.article-title-hover:hover { color: var(--iga-primary) !important; }

/* Méta (auteur, date, domaine) */
main .card-body .small,
main .card-body small {
  font-family: var(--iga-font-body);
  font-size:   var(--iga-font-sm) !important;
}

/* Badges domaine / volume sur les cartes */
main .badge {
  font-family: var(--iga-font-body);
  font-size:   var(--iga-font-xs);
}

/* ── ARTICLE COMPLET ─────────────────────────────────────────── */
.article-content {
  font-family: var(--iga-font-body);
  font-size:   var(--iga-font-base);
  line-height: calc(var(--iga-line-height) * 1.1);
}
.article-content h1 { font-family: var(--iga-font-titre); font-size: var(--iga-font-h1); color: var(--iga-primary); margin-top: 1.5rem; }
.article-content h2 { font-family: var(--iga-font-titre); font-size: var(--iga-font-h2); color: var(--iga-primary); margin-top: 1.5rem; }
.article-content h3 { font-family: var(--iga-font-titre); font-size: var(--iga-font-h3); color: var(--iga-primary); margin-top: 1.2rem; }
.article-content p  { margin-bottom: 1rem; }
.article-content blockquote {
  border-left: 3px solid var(--iga-primary);
  padding-left: 1rem;
  color: var(--iga-text-muted);
  font-style: italic;
  font-size: var(--iga-font-sm);
}

/* Méta d'article complet */
article .card-body .small {
  font-family: var(--iga-font-body);
  font-size:   var(--iga-font-sm) !important;
}

/* ── FOOTER PUBLIC ───────────────────────────────────────────── */
footer {
  font-family: var(--iga-font-body);
  font-size:   var(--iga-font-sm);
}
footer .fw-bold {
  font-family: var(--iga-font-titre);
  font-size:   var(--iga-font-base);
}
footer small,
footer .small {
  font-size: var(--iga-font-xs) !important;
}

/* ── NAVBAR PRIVÉE ───────────────────────────────────────────── */
.iga-navbar {
  background: var(--iga-primary) !important;
  min-height: 58px;
}
.iga-navbar .nav-link {
  color:          rgba(255,255,255,.85) !important;
  font-family:    var(--iga-font-menu);
  font-size:      var(--iga-font-menu-size);
  font-weight:    var(--iga-font-menu-weight);
  text-transform: var(--iga-font-menu-case);
  letter-spacing: var(--iga-font-menu-spacing);
  border-radius:  .375rem;
  padding:        var(--iga-menu-py) var(--iga-menu-px) !important;
  transition:     background .15s;
}
.iga-navbar .nav-link:hover,
.iga-navbar .nav-link.active { background: rgba(255,255,255,.15) !important; color: #fff !important; }
.iga-navbar .navbar-brand {
  color:       #fff !important;
  font-family: var(--iga-font-titre);
  font-size:   var(--iga-font-base);
}
.iga-navbar .dropdown-menu {
  font-family:    var(--iga-font-menu);
  font-size:      var(--iga-font-menu-size);
  font-weight:    var(--iga-font-menu-weight);
  letter-spacing: var(--iga-font-menu-spacing);
}
.iga-navbar .dropdown-item {
  font-family: var(--iga-font-menu);
  font-size:   var(--iga-font-menu-size);
}

/* ── AVATAR ──────────────────────────────────────────────────── */
.iga-avatar {
  width: 40px; height: 40px;
  background: var(--iga-primary);
  color: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700;
  font-family: var(--iga-font-titre);
  font-size: var(--iga-font-sm);
  flex-shrink: 0;
  user-select: none;
}

/* ── STAT CARDS (dashboard) ──────────────────────────────────── */
.stat-card { border-radius: var(--iga-radius) !important; transition: transform .2s, box-shadow .2s; }
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 4px 18px rgba(0,128,128,.12) !important; }
.stat-num {
  font-family: var(--iga-font-titre);
  font-size:   calc(var(--iga-font-h1) * 1.1);
  font-weight: 700;
  line-height: 1;
}
.stat-lbl {
  font-family:    var(--iga-font-body);
  font-size:      var(--iga-font-xs);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-top: .15rem;
}
.stat-icon { width: 46px; height: 46px; border-radius: .6rem; display: flex; align-items: center; justify-content: center; font-size: var(--iga-font-h3); }

/* ── GMAIL-STYLE INBOX ───────────────────────────────────────── */
.gmail-row { transition: background .12s; cursor: default; }
.gmail-row:hover { background: #f0fafa; }
.gmail-row.unread { background: #f8fffe; border-left: 3px solid var(--iga-primary) !important; }
.gmail-row.unread .text-dark { font-weight: 600; }
.gmail-row .fw-medium { font-size: var(--iga-font-sm); }
.gmail-row .x-small   { font-size: var(--iga-font-xs); }

/* ── TIMELINE TRAÇABILITÉ ────────────────────────────────────── */
.timeline { position: relative; padding-left: 24px; }
.timeline::before { content: ''; position: absolute; left: 7px; top: 6px; bottom: 6px; width: 2px; background: var(--iga-border); }
.timeline-item { position: relative; margin-bottom: 1.2rem; }
.timeline-dot { position: absolute; left: -21px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: var(--iga-primary); border: 2px solid #fff; box-shadow: 0 0 0 2px var(--iga-primary); }
.timeline-content {
  background: #fff;
  border: 1px solid var(--iga-border);
  border-radius: var(--iga-radius);
  padding: .75rem 1rem;
  font-family: var(--iga-font-body);
  font-size: var(--iga-font-sm);
}

/* ── CHAT WHATSAPP ÉVALUATEURS ───────────────────────────────── */
.chat-bubble {
  max-width: 78%;
  padding: .6rem .9rem;
  border-radius: 1rem;
  font-family: var(--iga-font-body);
  font-size: var(--iga-font-sm);
  word-break: break-word;
}
.chat-bubble.mine  { background: #dcf8c6; border-bottom-right-radius: .2rem; }
.chat-bubble.other { background: #fff; border: 1px solid #e2e8e8; border-bottom-left-radius: .2rem; }

/* ── CARDS & ROUNDED ─────────────────────────────────────────── */
.card           { border-radius: var(--iga-radius) !important; }
.card-header h6,
.card-header h5 {
  font-family: var(--iga-font-titre);
  font-size:   var(--iga-font-base);
}

/* ── TABLES ──────────────────────────────────────────────────── */
table {
  font-family: var(--iga-font-body);
  font-size:   var(--iga-font-sm);
}
thead th {
  font-family: var(--iga-font-titre);
  font-size:   var(--iga-font-xs);
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* ── FORM CONTROLS ───────────────────────────────────────────── */
.form-control,
.form-select,
.form-label,
.btn {
  font-family: var(--iga-font-body);
  font-size:   var(--iga-font-sm) !important;
}
.form-label { font-size: var(--iga-font-sm) !important; }
.form-control:focus, .form-select:focus {
  border-color: var(--iga-primary);
  box-shadow: 0 0 0 .2rem rgba(0,128,128,.15);
}

/* ── BUTTONS ─────────────────────────────────────────────────── */
.btn-primary { background: var(--iga-primary) !important; border-color: var(--iga-primary) !important; }
.btn-primary:hover { background: var(--iga-primary-dark) !important; border-color: var(--iga-primary-dark) !important; }
.btn-outline-primary { color: var(--iga-primary) !important; border-color: var(--iga-primary) !important; }
.btn-outline-primary:hover { background: var(--iga-primary) !important; color: #fff !important; }

/* ── LIST GROUP ──────────────────────────────────────────────── */
.list-group-item {
  font-family: var(--iga-font-body);
  font-size:   var(--iga-font-sm);
}
.list-group-item .fw-medium { font-size: var(--iga-font-base); }
.list-group-item .small { font-size: var(--iga-font-xs) !important; }

/* ── NOTIFICATIONS ───────────────────────────────────────────── */
.notification-dropdown { border-radius: var(--iga-radius) !important; font-size: var(--iga-font-sm); }

/* ── HOVER HELPERS ───────────────────────────────────────────── */
.hover-bg:hover  { background: #f0fafa !important; }
.hover-lift      { transition: transform .2s, box-shadow .2s; }
.hover-lift:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,.1) !important; }

/* ── BADGE ───────────────────────────────────────────────────── */
.badge { font-family: var(--iga-font-body); font-size: var(--iga-font-xs); }
.bg-danger-light { background: #fff3f3 !important; color: #dc3545 !important; }

/* ── QUILL EDITOR ────────────────────────────────────────────── */
.ql-container { font-family: var(--iga-font-body) !important; font-size: var(--iga-font-base) !important; }
.ql-toolbar { border-radius: 0 !important; }
.ql-container { border-radius: 0 0 calc(var(--iga-radius) * 0.5) calc(var(--iga-radius) * 0.5) !important; }

/* ── SCROLLBAR ───────────────────────────────────────────────── */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #f1f1f1; }
::-webkit-scrollbar-thumb { background: var(--iga-primary); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--iga-primary-dark); }

/* ── RESPONSIVE ──────────────────────────────────────────────── */
@media (max-width: 768px) {
  .sidebar-left {
    position: relative; height: auto;
    width: 100% !important; max-width: 100% !important;
    border-right: none; border-bottom: 1px solid var(--iga-border);
  }
  .public-layout { flex-direction: column; }
  .stat-num { font-size: calc(var(--iga-font-h2) * 1.1); }
  .sidebar-section { margin-bottom: .5rem !important; }
}

@media (max-width: 576px) {
  .iga-navbar .navbar-brand span { display: none; }
  .gmail-row { padding: .75rem 1rem; }
  header .iga-site-name { font-size: var(--iga-font-h3); }
}

/* ── PRINT ───────────────────────────────────────────────────── */
@media print {
  .iga-navbar, .sidebar-left, footer, .btn { display: none !important; }
  .card { box-shadow: none !important; border: 1px solid #ddd !important; }
  body, p, td { font-size: 12pt !important; }
  h1 { font-size: 18pt !important; }
  h2 { font-size: 15pt !important; }
}