/* ============================================================
   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;}
