/* ============================================================
   Sylink Leaks — Enterprise enhancement layer.
   Loads AFTER dashboard.css. Adds depth, contrast and "ops center"
   richness without changing the layout/IA.
   ============================================================ */

/* Ambient ops-grid glow behind the workspace */
#main-content { position: relative; }
#main-content::before {
  content: ""; position: fixed; inset: 0 0 0 0; pointer-events: none; z-index: 0;
  background:
    radial-gradient(1000px 520px at 88% -8%, rgba(159, 198, 67, 0.07), transparent 60%),
    radial-gradient(760px 460px at -5% 110%, rgba(6, 182, 212, 0.055), transparent 60%),
    linear-gradient(0deg, rgba(0,0,0,0.18), rgba(0,0,0,0));
}
.content-wrapper { position: relative; z-index: 1; }

/* ── Cards: depth + top accent line + hover lift ─────────── */
.data-card, .stat-card {
  position: relative; overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.028), rgba(255, 255, 255, 0.008)),
    var(--card-bg, #111);
  box-shadow: 0 1px 0 rgba(255,255,255,0.03) inset, 0 12px 34px rgba(0, 0, 0, 0.28);
  transition: transform .25s cubic-bezier(.4,0,.2,1), box-shadow .25s, border-color .25s;
}
.data-card::after {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(159, 198, 67, 0.55), rgba(6,182,212,.4), transparent);
  opacity: .7;
}
.data-card:hover, .stat-card:hover {
  transform: translateY(-3px);
  border-color: rgba(159, 198, 67, 0.28);
  box-shadow: 0 18px 46px rgba(0, 0, 0, 0.4), 0 0 26px rgba(159, 198, 67, 0.07);
}

/* ── KPI numbers: bold, tight, glowing ───────────────────── */
.stat-value {
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 800 !important; font-size: 1.7rem !important; letter-spacing: -.02em;
  line-height: 1.05;
}
.stat-label { text-transform: uppercase; letter-spacing: .09em; font-size: .72rem; font-weight: 600; }
.stat-icon { box-shadow: 0 0 0 1px rgba(255,255,255,0.05), 0 6px 18px rgba(0,0,0,.3); }

/* ── Headers / section titles ────────────────────────────── */
.card-header h5 { font-family: 'Space Grotesk', sans-serif; letter-spacing: -.01em; font-weight: 600; }
.content-wrapper > .mb-4 h4, h4 { font-family: 'Space Grotesk', sans-serif; letter-spacing: -.01em; }

/* ── Tables: ops readout feel ────────────────────────────── */
.table-dark-custom thead th {
  text-transform: uppercase; letter-spacing: .06em; font-size: .68rem; font-weight: 600;
  color: var(--text-muted); background: rgba(255,255,255,0.02);
}
.table-dark-custom tbody tr { transition: background .15s; }
.table-dark-custom tbody tr:hover { background: rgba(159, 198, 67, 0.06); }

/* ── Sidebar active accent + brand glow ──────────────────── */
.sidebar .nav-link.active { box-shadow: inset 3px 0 0 #9fc643; }
.sidebar-logo { filter: drop-shadow(0 0 10px rgba(159,198,67,.25)); }

/* ── Buttons: subtle gradient ────────────────────────────── */
.btn-primary {
  background: linear-gradient(135deg, #a9d24e, #7da82f) !important;
  border: none !important; color: #0a0e07 !important; font-weight: 600;
  box-shadow: 0 6px 18px rgba(159, 198, 67, 0.18);
}
.btn-primary:hover { box-shadow: 0 8px 26px rgba(159, 198, 67, 0.32); transform: translateY(-1px); }

/* ── Severity helpers (richer badges) ────────────────────── */
.badge.bg-danger  { box-shadow: 0 0 0 1px rgba(239,68,68,.25) inset; }
.badge.bg-warning { box-shadow: 0 0 0 1px rgba(245,158,11,.25) inset; }

/* ── Live operations panel ───────────────────────────────── */
.ops-card { position: relative; }
.ops-live { display:inline-flex; align-items:center; gap:.45rem; font-size:.72rem; text-transform:uppercase;
  letter-spacing:.08em; color:#9fc643; font-weight:600; }
.ops-live .dot { width:8px; height:8px; border-radius:50%; background:#9fc643; box-shadow:0 0 0 0 rgba(159,198,67,.6); animation:opsPulse 1.6s infinite; }
@keyframes opsPulse { 0%{box-shadow:0 0 0 0 rgba(159,198,67,.5)} 70%{box-shadow:0 0 0 8px rgba(159,198,67,0)} 100%{box-shadow:0 0 0 0 rgba(159,198,67,0)} }
.ops-scan { height:6px; border-radius:4px; background:rgba(255,255,255,.06); overflow:hidden; position:relative; }
.ops-scan::after { content:""; position:absolute; top:0; left:-40%; width:40%; height:100%;
  background:linear-gradient(90deg, transparent, rgba(159,198,67,.8), transparent); animation:opsScan 1.8s linear infinite; }
@keyframes opsScan { to { left:120%; } }
.ops-feed { font-family:'IBM Plex Mono','Courier New',monospace; font-size:.78rem; }
.ops-feed .row-line { display:flex; gap:.6rem; padding:6px 0; border-bottom:1px solid rgba(255,255,255,.04); color:var(--text-muted); animation:opsIn .35s ease; }
.ops-feed .row-line .t { color:#9fc643; }
@keyframes opsIn { from{opacity:0; transform:translateY(-4px)} to{opacity:1; transform:translateY(0)} }

/* Segmentation du menu CTI (Externe/Interne) — ajout 08/09/2026 */
.sidebar .nav-section{margin:14px 0 4px;padding:0 12px;}
.sidebar .nav-section-label{font-size:10px;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:#8a93a6;opacity:.8;}
.sidebar .nav-link.disabled{opacity:.5;pointer-events:none;}
.sidebar .nav-link .badge{font-size:9px;vertical-align:middle;margin-left:4px;}

/* sidebar defilante (correctif menu 08/09) */
.sidebar .nav.flex-column{max-height:calc(100vh - 120px);overflow-y:auto;overflow-x:hidden;}
.sidebar .nav-section:first-child{margin-top:4px;}

/* ═══════════════════════════════════════════════════════════════════════
   Restyle cohérent CTI (08/09/2026) — additif, tokens partagés, dark+light.
   ═══════════════════════════════════════════════════════════════════════ */
:root{
  --sev-critical:#ef4444; --sev-high:#f97316; --sev-medium:#eab308;
  --sev-low:#3b82f6; --sev-info:#64748b;
  --r-card:14px;
}

/* — Palette de sévérité unifiée (pills) — */
.badge.bg-danger{background:rgba(239,68,68,.16)!important;color:#f87171!important;border:1px solid rgba(239,68,68,.35)}
.badge.bg-warning{background:rgba(234,179,8,.15)!important;color:#eab308!important;border:1px solid rgba(234,179,8,.32)}
.badge.bg-info{background:rgba(59,130,246,.15)!important;color:#60a5fa!important;border:1px solid rgba(59,130,246,.32)}
.badge.bg-success{background:rgba(34,197,94,.15)!important;color:#4ade80!important;border:1px solid rgba(34,197,94,.32)}
.badge.bg-secondary{background:rgba(148,163,184,.14)!important;color:#cbd5e1!important;border:1px solid rgba(148,163,184,.28)}
.badge{font-weight:600;letter-spacing:.01em;padding:.34em .6em;border-radius:7px}

/* — Cartes : bord + élévation homogènes — */
.data-card,.kpix{border-radius:var(--r-card)!important}
.data-card{transition:border-color .2s,box-shadow .2s}
.data-card:hover{border-color:var(--border-glow)!important;box-shadow:0 10px 30px rgba(0,0,0,.28)}
.data-card .card-header{border-bottom:1px solid var(--border-color);letter-spacing:.01em}

/* — Tables : en-tête discret, survol net, respiration — */
.table-dark-custom thead th{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;
  color:var(--text-muted);font-weight:700;border-bottom:1px solid var(--border-color)}
.table-dark-custom td,.table-dark-custom th{padding:.62rem .8rem;vertical-align:middle}
.table-dark-custom tbody tr{transition:background .12s}
.table-dark-custom tbody tr:hover{background:rgba(159,198,67,.06)}
.table-dark-custom tbody tr+tr td{border-top:1px solid var(--border-color)}

/* — Tuiles KPI : chiffre plus présent, libellé calme — */
.kpix .n{letter-spacing:-.01em}
.kpix .l{opacity:.85}

/* — En-têtes de section du menu : plus lisibles — */
.sidebar .nav-section-label{color:var(--text-muted);opacity:.7}
.sidebar .nav-link{border-radius:9px}
.sidebar .nav-link.active{background:linear-gradient(90deg,rgba(159,198,67,.16),transparent);
  box-shadow:inset 2px 0 0 #9fc643}

/* — Boutons d'action compacts alignés — */
.btn-sm .bi{vertical-align:-1px}

/* ── Menu : padding gauche + compact (correctif 08/09 soir) ── */
.sidebar .nav.flex-column{max-height:none;overflow:visible}     /* plus de scroll force */
.sidebar .nav-section{margin:10px 0 2px}
.sidebar .nav-section-label{padding-left:6px;display:block}
.sidebar .nav-link{padding:5px 10px 5px 6px;font-size:.86rem;line-height:1.25;border-radius:8px}
.sidebar .nav-link .bi{margin-right:8px;font-size:.95rem}
.sidebar .nav-link .badge{font-size:8px;padding:.18em .4em}
.sidebar .sidebar-logo{margin-bottom:6px!important}

/* --- Espace a gauche du menu : les titres/liens ne collent plus au bord --- */
.sidebar .nav.flex-column{padding-left:16px;padding-right:10px;box-sizing:border-box}
.sidebar .nav-section{padding-left:2px}
.sidebar .nav-section-label{padding-left:2px}
.sidebar .nav-link{padding-left:10px}
.sidebar .sidebar-logo,.sidebar .brand,.sidebar-header{padding-left:16px}

/* ==== Menu AÉRÉ (fait autorité — remplace les reglages compacts) v=air2 ==== */
.sidebar .nav.flex-column{padding:8px 12px 24px 18px !important;max-height:calc(100vh - 92px);overflow-y:auto;overflow-x:hidden}
.sidebar .nav-section{margin:20px 0 6px !important}
.sidebar .nav-section:first-child{margin-top:8px !important}
.sidebar .nav-section-label{padding-left:6px !important;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;opacity:.6}
.sidebar .nav-link{padding:9px 12px !important;font-size:.9rem !important;line-height:1.3 !important;border-radius:10px;margin-bottom:3px;display:flex;align-items:center;gap:11px}
.sidebar .nav-link .bi{margin-right:0 !important;font-size:1.02rem !important;width:18px;text-align:center;flex-shrink:0}
.sidebar .nav-link span{flex:1}
.sidebar .nav-link .badge{font-size:9px !important;padding:.2em .45em !important;margin-left:auto}
.sidebar .nav-link.active{box-shadow:inset 3px 0 0 #9fc643}

/* Couleur des titres de section du menu (etaient en blanc, illisibles) v=air3 */
.sidebar .nav-section-label{color:#7f8ea3 !important}
:root:not([data-theme="dark"]) .sidebar .nav-section-label{color:#6b7688 !important}
