/* ================================================================
   SKLEUR — Design System v4
   European Venture Intelligence
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600&family=Geist+Mono:wght@400;500;600&display=swap');

/* ────────────────────────────────────────────────────────────────
   1. TOKENS — Light Theme
   ──────────────────────────────────────────────────────────────── */

:root {
  /* Surfaces */
  --paper:    #f5f5f7;
  --paper2:   #ffffff;
  --paper3:   #ececef;
  --surface:  #ffffff;

  /* Ink */
  --ink:      #0d0d10;
  --ink2:     #1a1a22;
  --muted:    #696977;
  --muted2:   #6e6e80;   /* WCAG AA : 4.59:1 sur --paper (était #a0a0b0 → 2.37:1, échec) */

  /* Accent — Rust */
  --rust:        #ea4e4d;
  --rust2:       #c73837;
  --rust-bg:     rgba(234, 78, 77, 0.07);
  --rust-border: rgba(234, 78, 77, 0.18);

  /* Secondary — Teal / Armor */
  --teal:        #07603b;
  --teal2:       #0a7849;
  --teal-bg:     rgba(7, 96, 59, 0.07);
  --teal-border: rgba(7, 96, 59, 0.16);

  /* Premium — Gold */
  --gold:        #8e6210;
  --gold2:       #a87418;
  --gold-bg:     rgba(142, 98, 16, 0.07);
  --gold-border: rgba(142, 98, 16, 0.16);

  /* Semantic */
  --positive:        #158a40;
  --positive-bg:     rgba(21, 138, 64, 0.07);
  --negative:        var(--rust);
  --negative-bg:     var(--rust-bg);
  --warning:         #b05200;
  --warning-bg:      rgba(176, 82, 0, 0.07);
  --warning-border:  rgba(176, 82, 0, 0.16);
  --info:            var(--teal);
  --info-bg:         var(--teal-bg);

  /* Borders */
  --border:   rgba(13, 13, 16, 0.08);
  --border2:  rgba(13, 13, 16, 0.14);

  /* Typography */
  --font-display: 'Geist', system-ui, sans-serif;
  --font-ui:      'Geist', system-ui, sans-serif;
  --font-mono:    'Geist Mono', 'JetBrains Mono', ui-monospace, monospace;

  /* Radius */
  --radius-xs:   4px;
  --radius-sm:   6px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-2xl:  20px;
  --radius-pill: 999px;

  /* Shadows */
  --shadow-xs: 0 1px 2px rgba(0,0,0,0.04);
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 8px rgba(0,0,0,0.04);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.08), 0 1px 3px rgba(0,0,0,0.04);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.06);
  --shadow-inset: inset 0 1px 0 rgba(255,255,255,0.7);

  /* Glow / ambient */
  --glow-rust:  rgba(234, 78, 77, 0.14);
  --glow-teal:  rgba(7, 96, 59, 0.14);
  --glow-gold:  rgba(142, 98, 16, 0.14);

  /* Gradients */
  --gradient-rust: linear-gradient(135deg, var(--rust) 0%, #f07040 100%);
  --gradient-teal: linear-gradient(135deg, var(--teal) 0%, #0db870 100%);
  --gradient-gold: linear-gradient(135deg, var(--gold) 0%, #d4a030 100%);
  --gradient-hero: linear-gradient(160deg, #0a0c10 0%, #15080e 50%, #080f14 100%);

  /* Transitions */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in:  cubic-bezier(0.4, 0, 1, 1);
  --t-fast:   0.12s;
  --t-base:   0.2s;
  --t-slow:   0.35s;
}

/* ────────────────────────────────────────────────────────────────
   2. TOKENS — Dark Theme
   ──────────────────────────────────────────────────────────────── */

[data-theme="dark"] {
  --paper:    #0e0e12;
  --paper2:   #161619;
  --paper3:   #1e1e24;
  --surface:  #0a0a0d;

  --ink:      #f2f2f6;
  --ink2:     #dddde8;
  --muted:    #8080a0;
  --muted2:   #8a8aa8;   /* WCAG AA : 5.76:1 sur --paper dark (était #56566a, trop faible) */

  --rust:        #f06060;
  --rust2:       #f57878;
  --rust-bg:     rgba(240, 96, 96, 0.11);
  --rust-border: rgba(240, 96, 96, 0.24);

  --teal:        #30c070;
  --teal2:       #44d480;
  --teal-bg:     rgba(48, 192, 112, 0.10);
  --teal-border: rgba(48, 192, 112, 0.22);

  --gold:        #cc9828;
  --gold2:       #e0aa38;
  --gold-bg:     rgba(204, 152, 40, 0.10);
  --gold-border: rgba(204, 152, 40, 0.22);

  --positive:        #30c070;
  --positive-bg:     rgba(48, 192, 112, 0.10);
  --warning:         #e89020;
  --warning-bg:      rgba(232, 144, 32, 0.10);
  --warning-border:  rgba(232, 144, 32, 0.22);

  --border:   rgba(242, 242, 246, 0.07);
  --border2:  rgba(242, 242, 246, 0.13);

  --shadow-xs: 0 1px 2px rgba(0,0,0,0.25);
  --shadow-sm: 0 1px 3px rgba(0,0,0,0.32), 0 1px 8px rgba(0,0,0,0.24);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.40), 0 1px 3px rgba(0,0,0,0.24);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.55), 0 2px 8px rgba(0,0,0,0.30);
  --shadow-inset: inset 0 1px 0 rgba(255,255,255,0.04);

  --glow-rust:  rgba(240, 96, 96, 0.22);
  --glow-teal:  rgba(48, 192, 112, 0.20);
  --glow-gold:  rgba(204, 152, 40, 0.20);
}

/* ────────────────────────────────────────────────────────────────
   3. RESET + BODY
   ──────────────────────────────────────────────────────────────── */

*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  background: var(--paper);
  background-image:
    radial-gradient(ellipse 80% 50% at 15% -10%, var(--glow-teal), transparent 60%),
    radial-gradient(ellipse 60% 40% at 85% 110%, var(--glow-rust), transparent 60%);
  background-attachment: fixed;
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

/* Grain texture overlay */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  opacity: 0.022;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
  background-repeat: repeat;
  background-size: 128px;
  pointer-events: none;
}

a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
h1, h2, h3, h4, p { margin: 0; }
img { display: block; max-width: 100%; }

/* Scrollbar */
* { scrollbar-width: thin; scrollbar-color: var(--muted2) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: var(--muted2);
  border-radius: var(--radius-pill);
  border: 3px solid transparent;
  background-clip: padding-box;
  transition: background-color .15s;
}
::-webkit-scrollbar-thumb:hover { background: var(--muted); background-clip: padding-box; }
::-webkit-scrollbar-corner { background: transparent; }

/* Selection */
::selection {
  background: var(--rust-bg);
  color: var(--rust);
}

/* Focus */
:focus-visible {
  outline: 2px solid var(--rust);
  outline-offset: 3px;
  border-radius: var(--radius-xs);
}

/* ────────────────────────────────────────────────────────────────
   4. TYPOGRAPHY
   ──────────────────────────────────────────────────────────────── */

h1, .h1 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 20px;
  line-height: 1.15;
  letter-spacing: -0.04em;
  color: var(--ink);
}

h2, .h2 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 18px;
  line-height: 1.25;
  letter-spacing: -0.045em;
}

h3, .h3 {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: -0.025em;
}

.section-title {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 500;
  color: var(--teal);
  text-transform: uppercase;
  letter-spacing: 0.13em;
  margin-bottom: 14px;
  background: var(--teal-bg);
  border: 0.5px solid var(--teal-border);
  padding: 3px 10px 3px 8px;
  border-radius: var(--radius-pill);
}
.section-title::before {
  content: '';
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--teal);
  flex-shrink: 0;
}

.mono   { font-family: var(--font-mono); }
.text-muted    { color: var(--muted); }
.text-rust     { color: var(--rust); }
.text-teal     { color: var(--teal); }
.text-gold     { color: var(--gold); }
.text-positive { color: var(--positive); }
.text-warning  { color: var(--warning); }

/* ────────────────────────────────────────────────────────────────
   5. LAYOUT
   ──────────────────────────────────────────────────────────────── */

.container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 24px 32px;
}

.dash-grid   { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.dash-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 16px; }
.dash-2col   { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.dash-3col   { display: grid; grid-template-columns: 3fr 1.5fr 1.5fr; gap: 16px; margin-bottom: 16px; }

/* ────────────────────────────────────────────────────────────────
   6. NAVIGATION
   ──────────────────────────────────────────────────────────────── */

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 32px;
  height: 56px;
  border-bottom: 1px solid rgba(255,255,255,0.55);
  background: rgba(245,245,247,0.72);
  position: sticky;
  top: 0;
  z-index: 100;
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  box-shadow: 0 1px 0 rgba(0,0,0,0.05), 0 4px 24px rgba(0,0,0,0.04);
  transition: background var(--t-base), border-color var(--t-base);
}

[data-theme="dark"] .nav {
  background: rgba(14,14,18,0.72);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  box-shadow: 0 1px 0 rgba(0,0,0,0.4), 0 4px 24px rgba(0,0,0,0.24);
}

/* Wordmark — équerre + skouer · Geist 600 */
.nav-logo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Geist', system-ui, sans-serif;
  font-weight: 600;
  font-size: 20px;
  letter-spacing: -0.05em;
  color: var(--rust);
  text-transform: none;
  background: none;
  -webkit-text-fill-color: unset;
  text-decoration: none;
  line-height: 1;
  transition: opacity var(--t-base);
}
.nav-logo:hover { opacity: 0.75; }

[data-theme="dark"] .nav-logo { color: var(--rust); }

.nav-tabs { display: flex; gap: 2px; }

.nav-tab {
  position: relative;
  padding: 6px 14px;
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 500;
  color: var(--muted);
  text-decoration: none;
  border-radius: var(--radius-md);
  transition: color var(--t-base), background var(--t-base), transform var(--t-fast);
}
.nav-tab:hover {
  color: var(--ink);
  background: var(--paper3);
  transform: translateY(-1px);
}
.nav-tab.active {
  color: var(--rust);
  background: var(--rust-bg);
  font-weight: 600;
}
.nav-tab.active::after {
  content: '';
  position: absolute;
  bottom: 2px;
  left: 50%;
  transform: translateX(-50%);
  width: 14px;
  height: 2px;
  background: var(--rust);
  border-radius: 2px;
}

.nav-right {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nav-search {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--paper3);
  border: 1px solid var(--border2);
  border-radius: var(--radius-lg);
  padding: 7px 12px;
  transition: border-color var(--t-base), box-shadow var(--t-base), background var(--t-base);
}
.nav-search:hover {
  border-color: var(--border2);
  background: var(--paper2);
}
.nav-search:focus-within {
  border-color: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-bg);
  background: var(--paper2);
}
.nav-search input {
  background: none;
  border: none;
  outline: none;
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: 13px;
  width: 200px;
}
.nav-search input::placeholder { color: var(--muted2); }
.nav-search span { color: var(--muted); font-size: 12px; }

/* ────────────────────────────────────────────────────────────────
   7. THEME TOGGLE + AVATAR
   ──────────────────────────────────────────────────────────────── */

.theme-toggle,
.nav-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--border2);
  border-radius: var(--radius-md);
  background: var(--paper3);
  color: var(--muted);
  cursor: pointer;
  font-size: 15px;
  transition: background var(--t-base), color var(--t-base), border-color var(--t-base), transform var(--t-fast);
}
.theme-toggle:hover,
.nav-avatar:hover,
.nav-avatar[aria-expanded="true"] {
  color: var(--ink);
  background: var(--paper2);
  border-color: var(--teal);
  transform: scale(1.04);
}

.nav-avatar-wrap { position: relative; }
.nav-avatar-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 164px;
  background: var(--paper2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  z-index: 1000;
  overflow: hidden;
  animation: menuFadeIn 0.16s var(--ease-out) both;
}
@keyframes menuFadeIn {
  from { opacity: 0; transform: translateY(-6px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.nav-avatar-menu[hidden] { display: none; }

.nav-avatar-menu-item {
  display: block;
  padding: 9px 14px;
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 500;
  color: var(--ink);
  text-decoration: none;
  transition: background var(--t-fast), color var(--t-fast);
}
.nav-avatar-menu-item:hover { background: var(--paper3); color: var(--teal); }
.nav-avatar-menu-item + .nav-avatar-menu-item { border-top: 0.5px solid var(--border); }

/* ────────────────────────────────────────────────────────────────
   8. CARDS
   ──────────────────────────────────────────────────────────────── */

.card {
  position: relative;
  background: var(--paper2);
  border: 1px solid rgba(255,255,255,0.55);
  border-radius: var(--radius-xl);
  padding: 20px;
  box-shadow: var(--shadow-sm), var(--shadow-inset);
  backdrop-filter: blur(8px);
  transition: box-shadow var(--t-base), border-color var(--t-base), transform var(--t-base);
  animation: cardFadeUp var(--t-slow) var(--ease-out) both;
  overflow: hidden;
  min-width: 0;
}
.card:hover {
  box-shadow: var(--shadow-md);
  border-color: rgba(255,255,255,0.8);
  transform: translateY(-2px);
}

[data-theme="dark"] .card {
  background: linear-gradient(145deg, rgba(26,26,32,0.96), rgba(20,20,26,0.99));
  border: 1px solid rgba(255,255,255,0.05);
  box-shadow: var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,0.04);
}
[data-theme="dark"] .card:hover {
  border-color: rgba(255,255,255,0.09);
  box-shadow: var(--shadow-md);
}

.card-sm {
  position: relative;
  background: var(--paper2);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 14px;
  box-shadow: var(--shadow-xs);
  transition: box-shadow var(--t-base), border-color var(--t-base);
}

@keyframes cardFadeUp {
  from { opacity: 0; transform: translateY(10px) scale(0.99); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* ────────────────────────────────────────────────────────────────
   9. TICKER
   ──────────────────────────────────────────────────────────────── */

.ticker {
  background: linear-gradient(90deg,
    rgba(7,96,59,0.04) 0%,
    var(--paper2) 20%,
    var(--paper2) 80%,
    rgba(217,26,46,0.04) 100%);
  border-bottom: 1px solid var(--border);
  padding: 10px 32px;
  display: flex;
  gap: 32px;
  overflow-x: auto;
  white-space: nowrap;
}
.ticker::-webkit-scrollbar { height: 0; }

.ticker-item { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.ticker-label { font-size: 11px; color: var(--muted); letter-spacing: 0.02em; }
.ticker-val { font-family: var(--font-mono); font-size: 12px; font-weight: 600; color: var(--ink); }
.ticker-delta { font-size: 11px; font-family: var(--font-mono); }
.ticker-sep { width: 1px; height: 18px; background: var(--border2); flex-shrink: 0; }
.t-up   { color: var(--positive); }
.t-down { color: var(--rust); }

/* ────────────────────────────────────────────────────────────────
   10. PAGE TITLE
   ──────────────────────────────────────────────────────────────── */

.page-title {
  position: relative;
  margin-bottom: 20px;
  padding-bottom: 16px;
}
.page-title h1 {
  font-size: 26px;
  color: var(--ink);
}
.page-title p { font-size: 13px; color: var(--muted); margin-top: 4px; }
.page-title::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 36px; height: 3px;
  background: var(--gradient-rust);
  border-radius: 2px;
}

.page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 20px;
}

/* Live dot */
.live-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  background: var(--positive);
  border-radius: 50%;
  margin-right: 5px;
  animation: livePulse 2.2s ease-in-out infinite;
}
@keyframes livePulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(21,138,64,0.5); opacity: 1; }
  50%       { box-shadow: 0 0 0 6px rgba(21,138,64,0); opacity: 0.8; }
}

/* ────────────────────────────────────────────────────────────────
   11. KPI CARDS
   ──────────────────────────────────────────────────────────────── */

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}

.kpi-card {
  background: var(--paper2);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 16px;
  box-shadow: var(--shadow-xs);
  position: relative;
  overflow: hidden;
  transition: box-shadow var(--t-base), transform var(--t-base);
  animation: cardFadeUp var(--t-slow) var(--ease-out) both;
}

/* Staggered animation delays */
.kpi-card:nth-child(1) { animation-delay: 0.04s; --kpi-accent: var(--gradient-teal); --kpi-glow: var(--glow-teal); }
.kpi-card:nth-child(2) { animation-delay: 0.08s; --kpi-accent: var(--gradient-rust); --kpi-glow: var(--glow-rust); }
.kpi-card:nth-child(3) { animation-delay: 0.12s; --kpi-accent: var(--gradient-gold); --kpi-glow: var(--glow-gold); }
.kpi-card:nth-child(4) { animation-delay: 0.16s; --kpi-accent: var(--gradient-teal); --kpi-glow: var(--glow-teal); }
.kpi-card:nth-child(5) { animation-delay: 0.20s; --kpi-accent: var(--gradient-rust); --kpi-glow: var(--glow-rust); }
.kpi-card:nth-child(6) { animation-delay: 0.24s; --kpi-accent: var(--gradient-gold); --kpi-glow: var(--glow-gold); }

.kpi-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2.5px;
  background: var(--kpi-accent, var(--gradient-teal));
  opacity: 0.5;
  transition: opacity var(--t-base), height var(--t-base);
}
.kpi-card:hover { box-shadow: var(--shadow-md), 0 0 20px var(--kpi-glow, transparent); transform: translateY(-3px); }
.kpi-card:hover::before { opacity: 1; height: 3px; }

.kpi-label {
  font-family: var(--font-ui);
  font-size: 11.5px;
  color: var(--muted);
  margin-bottom: 7px;
  font-weight: 400;
  letter-spacing: 0.01em;
}
.kpi-val {
  font-family: var(--font-mono);
  font-size: 24px;
  font-weight: 600;
  color: var(--ink);
}
.kpi-delta { font-size: 12px; margin-top: 5px; display: flex; align-items: center; gap: 3px; font-family: var(--font-mono); }
.kpi-delta--up   { color: var(--positive); }
.kpi-delta--down { color: var(--rust); }
.kpi-delta--flat { color: var(--warning); }

/* ────────────────────────────────────────────────────────────────
   12. ALERTS
   ──────────────────────────────────────────────────────────────── */

.alert-strip {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.alert-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  font-size: 12px;
  font-weight: 500;
  font-family: var(--font-ui);
  border: 1px solid;
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: opacity var(--t-fast), box-shadow var(--t-base), transform var(--t-fast);
}
.alert-chip:hover { transform: translateY(-1px); }

.alert-chip--danger  { background: var(--rust-bg);     border-color: var(--rust-border);     color: var(--rust);     }
.alert-chip--warning { background: var(--warning-bg);  border-color: var(--warning-border);  color: var(--warning); }
.alert-chip--success { background: var(--positive-bg); border-color: rgba(21,138,64,0.2);    color: var(--positive);}
.alert-chip--info    { background: var(--teal-bg);     border-color: var(--teal-border);     color: var(--teal);    }

.alert-chip--danger:hover  { box-shadow: 0 4px 16px var(--glow-rust); }
.alert-chip--success:hover { box-shadow: 0 4px 16px var(--glow-teal); }
.alert-chip--info:hover    { box-shadow: 0 4px 16px var(--glow-teal); }
.alert-chip--warning:hover { box-shadow: 0 4px 16px var(--glow-gold); }

/* ────────────────────────────────────────────────────────────────
   13. FLUX (Activity Feed)
   ──────────────────────────────────────────────────────────────── */

.flux-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 0;
  margin: 0;
  min-width: 0;
  border-bottom: 0.5px solid var(--border);
  border-radius: var(--radius-md);
  border-left: 2px solid transparent;
  transition: background var(--t-base), border-left-color var(--t-base), padding-left var(--t-base);
}
.flux-item:last-child { border-bottom: none; }
.flux-item:hover {
  background: linear-gradient(90deg, var(--paper3), transparent);
  border-left-color: var(--teal);
  padding-left: 14px;
}

.flux-dot {
  width: 8px; height: 8px;
  flex-shrink: 0; margin-top: 5px;
  border-radius: 50%;
}
.flux-dot--positive { background: var(--positive); }
.flux-dot--danger   { background: var(--rust); }
.flux-dot--info     { background: var(--teal); }
.flux-dot--gold     { background: var(--gold); }
.flux-dot--warning  { background: var(--warning); }

.flux-time {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--muted);
  white-space: nowrap;
  margin-top: 2px;
}
.flux-content { flex: 1; min-width: 0; overflow: hidden; }
.flux-title { font-size: 13px; color: var(--ink); font-weight: 500; margin-bottom: 2px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; white-space: normal; }
.flux-sub   { font-size: 12px; color: var(--muted); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: block; width: 100%; }

.flux-badge {
  display: inline-block;
  padding: 2px 8px;
  font-size: 10px;
  font-family: var(--font-mono);
  margin-left: 6px;
  border: 0.5px solid;
  border-radius: var(--radius-pill);
}
.flux-badge--positive { background: var(--positive-bg); border-color: rgba(21,138,64,0.15); color: var(--positive); }
.flux-badge--danger   { background: var(--rust-bg);     border-color: var(--rust-border);    color: var(--rust); }
.flux-badge--info     { background: var(--teal-bg);     border-color: var(--teal-border);    color: var(--teal); }
.flux-badge--gold     { background: var(--gold-bg);     border-color: var(--gold-border);    color: var(--gold); }
.flux-badge--warning  { background: var(--warning-bg);  border-color: var(--warning-border); color: var(--warning); }

/* ────────────────────────────────────────────────────────────────
   14. TOP LIST
   ──────────────────────────────────────────────────────────────── */

.top-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 0.5px solid var(--border);
  cursor: pointer;
  transition: padding-left var(--t-base);
}
.top-item:last-child { border-bottom: none; }
.top-item:hover { padding-left: 4px; }

.top-rank  { font-family: var(--font-mono); font-size: 11px; color: var(--muted); width: 18px; flex-shrink: 0; }
.top-icon  { width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 600; flex-shrink: 0; border: 0.5px solid var(--border); border-radius: var(--radius-md); background: var(--paper3); }
.top-name  { flex: 1; font-size: 13px; color: var(--ink); font-weight: 500; }
.top-score { font-family: var(--font-mono); font-size: 12px; font-weight: 600; }
.top-delta { font-size: 10px; margin-left: 4px; }

/* ────────────────────────────────────────────────────────────────
   15. FOND MINI CARDS
   ──────────────────────────────────────────────────────────────── */

.fond-mini {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 0.5px solid var(--border);
  cursor: pointer;
  transition: padding-left var(--t-base);
}
.fond-mini:last-child { border-bottom: none; }
.fond-mini:hover { padding-left: 4px; }

.fond-logo-sm {
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 600;
  border: 0.5px solid var(--border);
  border-radius: var(--radius-md);
  background: var(--paper3);
}
.fond-nm    { font-size: 13px; font-weight: 500; color: var(--ink); }
.fond-stats { margin-left: auto; text-align: right; }
.fond-aum   { font-family: var(--font-mono); font-size: 12px; color: var(--ink); }
.fond-perf  { font-size: 11px; }

/* ────────────────────────────────────────────────────────────────
   16. DATA TABLE
   ──────────────────────────────────────────────────────────────── */

.data-table { width: 100%; border-collapse: collapse; }

.data-table th {
  font-family: var(--font-ui);
  font-size: 11px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 500;
  padding: 9px 12px;
  text-align: left;
  border-bottom: 1px solid var(--border2);
}
.data-table td {
  padding: 11px 12px;
  border-bottom: 0.5px solid var(--border);
  font-size: 13px;
}
.data-table tr:last-child td { border-bottom: none; }
.data-table tr:hover td { background: var(--teal-bg); }

/* ────────────────────────────────────────────────────────────────
   17. TAGS
   ──────────────────────────────────────────────────────────────── */

.tag {
  display: inline-block;
  padding: 3px 10px;
  font-size: 11px;
  font-weight: 500;
  font-family: var(--font-ui);
  border: 0.5px solid;
  border-radius: var(--radius-pill);
  transition: transform var(--t-fast), box-shadow var(--t-fast);
}
.tag:hover { transform: scale(1.04); }

.tag--positive { background: var(--positive-bg); border-color: rgba(21,138,64,0.2);  color: var(--positive); }
.tag--danger   { background: var(--rust-bg);     border-color: var(--rust-border);    color: var(--rust); }
.tag--warning  { background: var(--warning-bg);  border-color: var(--warning-border); color: var(--warning); }
.tag--teal     { background: var(--teal-bg);     border-color: var(--teal-border);    color: var(--teal); }
.tag--gold     { background: var(--gold-bg);     border-color: var(--gold-border);    color: var(--gold); }

/* ────────────────────────────────────────────────────────────────
   18. BUTTONS
   ──────────────────────────────────────────────────────────────── */

.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  font-family: var(--font-ui);
  font-size: 13px;
  font-weight: 600;
  border: 1px solid;
  border-radius: var(--radius-md);
  cursor: pointer;
  transition: background var(--t-base), color var(--t-base), box-shadow var(--t-base), transform var(--t-fast);
  letter-spacing: -0.025em;
}
.btn:active { transform: scale(0.97); }

.btn--primary {
  background: var(--rust);
  border-color: var(--rust);
  color: #fff;
  box-shadow: 0 1px 3px rgba(217,26,46,0.25), inset 0 1px 0 rgba(255,255,255,0.12);
}
.btn--primary:hover {
  background: var(--rust2);
  border-color: var(--rust2);
  box-shadow: 0 4px 14px rgba(217,26,46,0.35), inset 0 1px 0 rgba(255,255,255,0.12);
  transform: translateY(-1px);
}

.btn--secondary {
  background: transparent;
  border-color: var(--border2);
  color: var(--ink);
}
.btn--secondary:hover {
  background: var(--paper3);
  border-color: var(--border2);
  transform: translateY(-1px);
}

.btn--teal {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
  box-shadow: 0 1px 3px rgba(7,96,59,0.25), inset 0 1px 0 rgba(255,255,255,0.12);
}
.btn--teal:hover {
  background: var(--teal2);
  box-shadow: 0 4px 14px rgba(7,96,59,0.35);
  transform: translateY(-1px);
}

/* ────────────────────────────────────────────────────────────────
   19. PROGRESS BARS
   ──────────────────────────────────────────────────────────────── */

.bar-track {
  height: 5px;
  background: var(--paper3);
  border-radius: var(--radius-pill);
  overflow: hidden;
}
.bar-fill {
  height: 100%;
  border-radius: var(--radius-pill);
}
@keyframes growbar { from { width: 0; } }
.grow-bar { animation: growbar 0.9s var(--ease-out) forwards; }

/* ────────────────────────────────────────────────────────────────
   20. SEARCH
   ──────────────────────────────────────────────────────────────── */

.search-big {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--paper2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-xl);
  padding: 12px 18px;
  margin-bottom: 20px;
  transition: border-color var(--t-base), box-shadow var(--t-base);
  box-shadow: var(--shadow-xs);
}
.search-big:focus-within {
  border-color: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-bg), var(--shadow-sm);
}
.search-big input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: 14px;
}
.search-big input::placeholder { color: var(--muted2); }

/* ────────────────────────────────────────────────────────────────
   21. EMAIL WIDGET
   ──────────────────────────────────────────────────────────────── */

.email-widget {
  background: var(--teal-bg);
  border: 1px solid var(--teal-border);
  border-radius: var(--radius-xl);
  padding: 20px;
}
.email-title { font-size: 13px; font-weight: 600; color: var(--ink); margin-bottom: 4px; letter-spacing: -0.025em; }
.email-sub   { font-size: 12px; color: var(--muted); margin-bottom: 16px; }
.email-input { display: flex; gap: 8px; }
.email-input input {
  flex: 1;
  background: var(--paper2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-md);
  padding: 9px 12px;
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: 13px;
  outline: none;
  transition: border-color var(--t-base), box-shadow var(--t-base);
}
.email-input input:focus {
  border-color: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-bg);
}
.email-btn {
  padding: 9px 16px;
  background: var(--rust);
  color: #fff;
  border: none;
  border-radius: var(--radius-md);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: var(--font-ui);
  transition: background var(--t-base), box-shadow var(--t-base), transform var(--t-fast);
}
.email-btn:hover {
  background: var(--rust2);
  box-shadow: 0 4px 12px rgba(217,26,46,0.3);
  transform: translateY(-1px);
}

/* ────────────────────────────────────────────────────────────────
   22. CHART HELPERS
   ──────────────────────────────────────────────────────────────── */

.chart-area { position: relative; }
.chart-svg  { width: 100%; overflow: visible; }
.chart-axis { font-family: var(--font-mono); font-size: 9px; fill: var(--muted); }

/* ────────────────────────────────────────────────────────────────
   23. SELECTS / FORM ELEMENTS
   ──────────────────────────────────────────────────────────────── */

.select {
  background: var(--paper2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-md);
  color: var(--muted);
  font-size: 13px;
  padding: 8px 12px;
  outline: none;
  font-family: var(--font-ui);
  appearance: none;
  cursor: pointer;
  transition: border-color var(--t-base), box-shadow var(--t-base);
}
.select:focus {
  border-color: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-bg);
  color: var(--ink);
}

/* ────────────────────────────────────────────────────────────────
   24. STAT GRID
   ──────────────────────────────────────────────────────────────── */

.stat-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 14px;
}
.stat-box {
  background: var(--paper3);
  padding: 14px;
  text-align: center;
  border-radius: var(--radius-lg);
}
.stat-val   { font-family: var(--font-mono); font-size: 24px; font-weight: 600; }
.stat-label { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.07em; margin-top: 3px; }

/* ────────────────────────────────────────────────────────────────
   25. PRICING CARDS
   ──────────────────────────────────────────────────────────────── */

.pricing-item {
  padding: 14px;
  border: 1px solid;
  border-radius: var(--radius-lg);
  transition: box-shadow var(--t-base), transform var(--t-base);
}
.pricing-item:hover { box-shadow: var(--shadow-sm); transform: translateY(-1px); }
.pricing-item--teal    { background: var(--teal-bg);    border-color: var(--teal-border); }
.pricing-item--gold    { background: var(--gold-bg);    border-color: var(--gold-border); }
.pricing-item--warning { background: var(--warning-bg); border-color: var(--warning-border); }
.pricing-name { font-size: 13px; font-weight: 600; margin-bottom: 3px; }
.pricing-desc { font-size: 12px; color: var(--muted); }

/* ────────────────────────────────────────────────────────────────
   26. UTILITY HELPERS
   ──────────────────────────────────────────────────────────────── */

.flex          { display: flex; }
.flex-col      { display: flex; flex-direction: column; }
.items-center  { align-items: center; }
.justify-between { justify-content: space-between; }
.gap-xs   { gap: 4px; }
.gap-sm   { gap: 8px; }
.gap-md   { gap: 16px; }
.gap-lg   { gap: 24px; }
.mb-sm    { margin-bottom: 8px; }
.mb-md    { margin-bottom: 16px; }
.mt-md    { margin-top: 14px; }

.cell-flex {
  display: flex;
  align-items: center;
  gap: 8px;
}

.avatar-sm {
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 600;
  border: 0.5px solid var(--border);
  border-radius: 50%;
  background: var(--paper3);
}

/* ────────────────────────────────────────────────────────────────
   28. PAGE HEADERS (Startup, Fond)
   ──────────────────────────────────────────────────────────────── */

.entity-header {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: start;
  padding: 28px 32px;
  background: var(--paper2);
  border-bottom: 0.5px solid var(--border);
}
.entity-logo {
  width: 60px; height: 60px;
  background: var(--paper3);
  border: 1px solid var(--border2);
  border-radius: var(--radius-xl);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-mono);
  font-size: 18px;
  font-weight: 600;
  color: var(--teal);
}
.entity-name { font-family: var(--font-display); font-size: 20px; font-weight: 600; color: var(--ink); margin-bottom: 4px; letter-spacing: -0.035em; }
.entity-sub  { font-size: 13px; color: var(--muted); margin-bottom: 10px; }
.entity-tags { display: flex; gap: 6px; flex-wrap: wrap; }

/* Mini-header compact : logo réduit + nom + actions, sans sub ni tags */
.entity-header--compact {
  padding: 12px 24px;
  gap: 14px;
  align-items: center;
}
.entity-header--compact .entity-logo {
  width: 38px;
  height: 38px;
  font-size: 13px;
  border-radius: var(--radius-md);
}
.entity-header--compact .entity-name { font-size: 17px; margin-bottom: 0; }

/* Bloc d'intro Overview (startup) : sub + tags */
.overview-intro { margin-bottom: 16px; }
.overview-intro .entity-sub  { font-size: 13px; color: var(--muted); margin-bottom: 8px; line-height: 1.55; }
.overview-intro .entity-tags { display: flex; gap: 6px; flex-wrap: wrap; }

/* Bloc d'intro Accueil (fond) : sub + tags + AUM */
.fund-accueil-intro {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  align-items: start;
  margin-bottom: 20px;
}
.fund-accueil-intro-text .entity-sub { font-size: 13px; color: var(--muted); margin-bottom: 0; line-height: 1.55; }
@media (max-width: 768px) {
  .fund-accueil-intro { grid-template-columns: 1fr; }
  .entity-header--compact { padding: 10px 16px; gap: 10px; }
  .entity-header--compact .entity-logo { width: 32px; height: 32px; font-size: 12px; }
  .entity-header--compact .entity-name { font-size: 15px; }
}

/* ────────────────────────────────────────────────────────────────
   29. HEALTH SCORE WIDGET
   ──────────────────────────────────────────────────────────────── */

.health-widget { display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.health-score {
  font-family: var(--font-mono);
  font-size: 42px;
  font-weight: 600;
  line-height: 1;
  color: var(--teal);
}
.health-label { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.1em; }
.health-bar {
  width: 160px; height: 4px;
  background: var(--paper3);
  border-radius: var(--radius-pill);
  overflow: hidden;
}
.health-bar-fill { height: 100%; background: var(--teal); border-radius: var(--radius-pill); }

/* ────────────────────────────────────────────────────────────────
   30. METRICS GRID
   ──────────────────────────────────────────────────────────────── */

.metrics-grid   { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-bottom: 24px; }
.metrics-grid-5 { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 24px; }

.metric-card {
  background: var(--paper2);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 16px;
  box-shadow: var(--shadow-xs);
  transition: border-color var(--t-base), box-shadow var(--t-base), transform var(--t-base);
}
.metric-card:hover { border-color: var(--border2); box-shadow: var(--shadow-sm); transform: translateY(-2px); }

.metric-label { font-family: var(--font-ui); font-size: 11.5px; color: var(--muted); margin-bottom: 6px; font-weight: 400; }
.metric-value { font-family: var(--font-mono); font-size: 20px; font-weight: 600; color: var(--ink); margin-bottom: 4px; }
.metric-delta { font-size: 12px; }

/* ────────────────────────────────────────────────────────────────
   31. MAIN GRID (content + sidebar)
   ──────────────────────────────────────────────────────────────── */

.main-grid    { display: grid; grid-template-columns: 1fr 360px; gap: 24px; }
.main-grid-sm { display: grid; grid-template-columns: 1fr 340px; gap: 24px; }
.sidebar      { display: flex; flex-direction: column; gap: 16px; }

.section        { margin-bottom: 24px; }
.section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.section-action { font-size: 12px; color: var(--muted); cursor: pointer; transition: color var(--t-fast); }
.section-action:hover { color: var(--ink); }

/* ────────────────────────────────────────────────────────────────
   32. TIMELINE
   ──────────────────────────────────────────────────────────────── */

.timeline { position: relative; }

/* Ancien trait global supprimé : on relie maintenant les dots un par un via
   `.timeline-event::before` pour que le trait passe ENTRE les carrés au lieu
   de les traverser. */
.timeline-line { display: none; }


.timeline-event {
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 12px;
  margin-bottom: 16px;
  position: relative;
}

/* Trait vertical sous chaque dot, jusqu'au dot suivant.
   left: 16px = centre du dot 32×32. top: 32px = juste en dessous du dot.
   bottom: -16px = comble la margin-bottom de 16px jusqu'au dot d'après. */
.timeline-event::before {
  content: "";
  position: absolute;
  left: 16px;
  top: 32px;
  bottom: -16px;
  width: 1px;
  background: var(--teal);
  opacity: 0.4;
  pointer-events: none;
}
.timeline-event:last-child::before { display: none; }


.timeline-dot {
  width: 32px; height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  position: relative;
  z-index: 1;
  transition: box-shadow var(--t-base);
}
.timeline-dot:hover { box-shadow: var(--shadow-sm); }
.dot-raise  { background: var(--positive-bg); border-color: rgba(21,138,64,0.3); color: var(--positive); }
.dot-gov    { background: var(--gold-bg);     border-color: var(--gold-border);   color: var(--gold); }
.dot-press  { background: var(--teal-bg);     border-color: var(--teal-border);   color: var(--teal); }
.dot-legal  { background: var(--rust-bg);     border-color: var(--rust-border);   color: var(--rust); }
.dot-social { background: var(--warning-bg);  border-color: var(--warning-border); color: var(--warning); }
.dot-invest { background: var(--positive-bg); border-color: rgba(21,138,64,0.3); color: var(--positive); }
.dot-exit   { background: var(--teal-bg);     border-color: var(--teal-border);   color: var(--teal); }
.dot-dead   { background: var(--rust-bg);     border-color: var(--rust-border);   color: var(--rust); }

.event-card {
  background: var(--paper2);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 14px 16px;
  box-shadow: var(--shadow-xs);
  transition: border-color var(--t-base), box-shadow var(--t-base), transform var(--t-base);
  cursor: pointer;
}
.event-card:hover { border-color: var(--border2); box-shadow: var(--shadow-sm); transform: translateY(-1px); }

.event-top    { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin-bottom: 4px; }
.event-title  { font-size: 13px; font-weight: 500; color: var(--ink); }
.event-date   { font-family: var(--font-mono); font-size: 10px; color: var(--muted); white-space: nowrap; }
.event-desc   { font-size: 12px; color: var(--muted); line-height: 1.5; }
.event-amount { font-family: var(--font-mono); font-size: 13px; font-weight: 600; color: var(--positive); margin-top: 4px; }
.event-badges { display: flex; gap: 4px; margin-top: 8px; flex-wrap: wrap; }

.badge          { padding: 3px 9px; font-size: 11px; font-weight: 500; border: 0.5px solid; border-radius: var(--radius-pill); }
.badge-positive { background: var(--positive-bg); color: var(--positive); border-color: rgba(21,138,64,0.15); }
.badge-danger   { background: var(--rust-bg);     color: var(--rust);     border-color: var(--rust-border); }
.badge-gold     { background: var(--gold-bg);     color: var(--gold);     border-color: var(--gold-border); }
.badge-warning  { background: var(--warning-bg);  color: var(--warning);  border-color: var(--warning-border); }
.badge-teal     { background: var(--teal-bg);     color: var(--teal);     border-color: var(--teal-border); }
.sk-badge     { font-size:10px; padding:2px 7px; border-radius:99px; font-weight:600; white-space:nowrap; display:inline-block; }
.badge-purple { background:rgba(127,119,221,0.12); color:#534AB7; }
.badge-gray   { background:rgba(136,135,128,0.12); color:var(--muted); }
.badge-red    { background:var(--rust-bg); color:var(--rust); }

/* ────────────────────────────────────────────────────────────────
   33. FILTER BUTTONS
   ──────────────────────────────────────────────────────────────── */

.filter-row { display: flex; gap: 6px; margin-bottom: 14px; flex-wrap: wrap; }

.filter-btn {
  padding: 6px 14px;
  font-size: 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: none;
  color: var(--muted);
  cursor: pointer;
  transition: all var(--t-base);
  font-family: var(--font-ui);
  font-weight: 500;
}
.filter-btn:hover  { border-color: var(--border2); color: var(--ink); background: var(--paper3); }
.filter-btn.active { background: var(--teal-bg);  color: var(--teal); border-color: var(--teal-border); font-weight: 600; }

/* ────────────────────────────────────────────────────────────────
   34. INDEX ROWS
   ──────────────────────────────────────────────────────────────── */

.index-row       { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 0.5px solid var(--border); }
.index-row:last-child { border-bottom: none; }
.index-name      { font-size: 13px; color: var(--ink); }
.index-bar-wrap  { flex: 1; margin: 0 12px; height: 4px; background: var(--paper3); border-radius: var(--radius-pill); overflow: hidden; }
.index-bar-inner { height: 100%; border-radius: var(--radius-pill); }
.index-val       { font-family: var(--font-mono); font-size: 12px; font-weight: 600; min-width: 28px; text-align: right; }

/* ────────────────────────────────────────────────────────────────
   35. SHAREHOLDERS
   ──────────────────────────────────────────────────────────────── */

.shareholder-row       { display: flex; align-items: center; justify-content: space-between; padding: 10px 0; border-bottom: 0.5px solid var(--border); }
.shareholder-row:last-child { border-bottom: none; }
.sh-info   { display: flex; align-items: center; gap: 10px; }
.sh-avatar { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600; border: 0.5px solid var(--border); border-radius: 50%; background: var(--paper3); }
.sh-name   { font-size: 13px; color: var(--ink); font-weight: 500; }
.sh-type   { font-size: 11px; color: var(--muted); }
.sh-pct    { font-family: var(--font-mono); font-size: 13px; font-weight: 600; color: var(--ink); }
.sh-bar    { width: 100%; height: 3px; background: var(--paper3); margin-top: 4px; border-radius: var(--radius-pill); overflow: hidden; }
.sh-bar-fill { height: 100%; border-radius: var(--radius-pill); }

/* ────────────────────────────────────────────────────────────────
   36. ALERTS (sidebar)
   ──────────────────────────────────────────────────────────────── */

.alert {
  display: flex;
  gap: 10px;
  padding: 10px 14px;
  margin-bottom: 8px;
  font-size: 12px;
  line-height: 1.5;
  border: 1px solid;
  border-radius: var(--radius-lg);
}
.alert:last-child { margin-bottom: 0; }
.alert-warn   { background: var(--warning-bg);  border-color: var(--warning-border); color: var(--warning); }
.alert-ok     { background: var(--positive-bg); border-color: rgba(21,138,64,0.15);  color: var(--positive); }
.alert-danger { background: var(--rust-bg);     border-color: var(--rust-border);    color: var(--rust); }
.alert-icon   { font-size: 14px; flex-shrink: 0; margin-top: 1px; }

/* ────────────────────────────────────────────────────────────────
   37. VEHICULE SELECTOR
   ──────────────────────────────────────────────────────────────── */

.vehicule-selector { display: flex; gap: 10px; margin: 24px 0 20px; overflow-x: auto; padding-bottom: 6px; }

.vehicule-card {
  min-width: 220px;
  background: var(--paper2);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 16px;
  cursor: pointer;
  transition: border-color var(--t-base), box-shadow var(--t-base), transform var(--t-base);
  flex-shrink: 0;
  box-shadow: var(--shadow-xs);
}
.vehicule-card.active { border-color: var(--teal); background: var(--teal-bg); box-shadow: 0 0 0 3px var(--teal-bg); }
.vehicule-card:hover  { border-color: var(--border2); box-shadow: var(--shadow-sm); transform: translateY(-2px); }

.vehicule-name    { font-size: 13px; font-weight: 600; color: var(--ink); margin-bottom: 2px; }
.vehicule-vintage { font-family: var(--font-mono); font-size: 11px; color: var(--muted); margin-bottom: 10px; }
.vehicule-mini-stats { display: flex; gap: 12px; }
.vms-item  { text-align: center; }
.vms-val   { font-family: var(--font-mono); font-size: 14px; font-weight: 600; }
.vms-label { font-size: 10px; color: var(--muted); }

.age-badge { display: inline-block; padding: 3px 10px; font-size: 11px; font-family: var(--font-ui); border: 0.5px solid; border-radius: var(--radius-pill); font-weight: 500; }
.age-young { background: var(--positive-bg); color: var(--positive); border-color: rgba(21,138,64,0.15); }
.age-mid   { background: var(--warning-bg);  color: var(--warning);  border-color: var(--warning-border); }
.age-old   { background: var(--rust-bg);     color: var(--rust);     border-color: var(--rust-border); }

/* ────────────────────────────────────────────────────────────────
   38. PORTFOLIO TABLE
   ──────────────────────────────────────────────────────────────── */

.portfolio-table { width: 100%; border-collapse: collapse; }
.portfolio-table th { font-family: var(--font-ui); font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; font-weight: 500; padding: 9px 14px; text-align: left; border-bottom: 0.5px solid var(--border); }
.portfolio-table td { padding: 12px 14px; border-bottom: 0.5px solid var(--border); font-size: 13px; vertical-align: middle; }
.portfolio-table tr:last-child td { border-bottom: none; }
.portfolio-table tr:hover td { background: var(--teal-bg); }

.startup-cell { display: flex; align-items: center; gap: 10px; }
.startup-icon { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600; flex-shrink: 0; border: 0.5px solid var(--border); border-radius: var(--radius-md); background: var(--paper3); }
.startup-nm   { font-size: 13px; font-weight: 500; color: var(--ink); }
.startup-sec  { font-size: 11px; color: var(--muted); }

.status-pill    { padding: 4px 10px; font-size: 11px; font-weight: 500; border: 0.5px solid; border-radius: var(--radius-pill); }
.status-alive   { background: var(--positive-bg); color: var(--positive); border-color: rgba(21,138,64,0.15); }
.status-exit-hi { background: var(--teal-bg);     color: var(--teal);     border-color: var(--teal-border); }
.status-exit-lo { background: var(--paper3);      color: var(--muted);    border-color: var(--border); }
.status-dead    { background: var(--rust-bg);     color: var(--rust);     border-color: var(--rust-border); }
.status-watch   { background: var(--warning-bg);  color: var(--warning);  border-color: var(--warning-border); }

.health-mini { display: flex; align-items: center; gap: 6px; }
.hm-bar  { width: 60px; height: 4px; background: var(--paper3); border-radius: var(--radius-pill); overflow: hidden; }
.hm-fill { height: 100%; border-radius: var(--radius-pill); }
.hm-val  { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }

/* ────────────────────────────────────────────────────────────────
   39. GP TEAM
   ──────────────────────────────────────────────────────────────── */

.gp-card        { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 0.5px solid var(--border); transition: padding-left var(--t-base); }
.gp-card:last-child { border-bottom: none; }
.gp-card:hover  { padding-left: 4px; }
.gp-avatar      { width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; flex-shrink: 0; border: 0.5px solid var(--border); border-radius: 50%; background: var(--paper3); }
.gp-name        { font-size: 13px; font-weight: 500; color: var(--ink); }
.gp-role        { font-size: 12px; color: var(--muted); }
.gp-track       { margin-left: auto; text-align: right; }
.gp-exits       { font-family: var(--font-mono); font-size: 13px; font-weight: 600; color: var(--positive); }
.gp-exits-label { font-size: 10px; color: var(--muted); }

/* ────────────────────────────────────────────────────────────────
   40. CONTENTIEUX
   ──────────────────────────────────────────────────────────────── */

.contentieux-item      { padding: 14px; border: 1px solid var(--border); border-radius: var(--radius-lg); margin-bottom: 8px; background: var(--paper2); transition: box-shadow var(--t-base); }
.contentieux-item:last-child { margin-bottom: 0; }
.contentieux-item:hover { box-shadow: var(--shadow-sm); }
.c-header   { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.c-title    { font-size: 13px; font-weight: 500; color: var(--ink); }
.c-status-pill { padding: 3px 10px; font-size: 11px; border: 0.5px solid; border-radius: var(--radius-pill); font-weight: 500; }
.c-en-cours { background: var(--rust-bg);     color: var(--rust);     border-color: var(--rust-border); }
.c-clos     { background: var(--positive-bg); color: var(--positive); border-color: rgba(21,138,64,0.15); }
.c-desc     { font-size: 12px; color: var(--muted); line-height: 1.5; }

/* ────────────────────────────────────────────────────────────────
   41. PORTFOLIO SUMMARY
   ──────────────────────────────────────────────────────────────── */

.portfolio-summary { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 14px; }
.ps-item  { background: var(--paper3); padding: 12px; text-align: center; border-radius: var(--radius-lg); }
.ps-val   { font-family: var(--font-mono); font-size: 20px; font-weight: 600; }
.ps-label { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.07em; margin-top: 3px; }

.perf-row       { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 0.5px solid var(--border); }
.perf-row:last-child { border-bottom: none; }
.perf-label     { font-size: 13px; color: var(--ink); }
.perf-val       { font-family: var(--font-mono); font-size: 13px; font-weight: 600; }

/* ────────────────────────────────────────────────────────────────
   42. PROFILE HERO
   ──────────────────────────────────────────────────────────────── */

.profile-hero {
  background: var(--paper2);
  border-bottom: 0.5px solid var(--border);
  padding: 48px 40px 36px;
  position: relative;
  overflow: hidden;
}
.profile-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 80% at 100% -20%, var(--glow-teal), transparent);
  pointer-events: none;
}

.hero-grid { display: grid; grid-template-columns: auto 1fr auto; gap: 32px; align-items: start; }

.avatar {
  width: 96px; height: 96px;
  background: var(--ink);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 32px;
  font-weight: 600;
  color: var(--paper2);
  letter-spacing: -0.035em;
}
.avatar-wrap { position: relative; }
.avatar-status {
  position: absolute;
  bottom: 4px; right: 4px;
  width: 18px; height: 18px;
  background: var(--positive);
  border-radius: 50%;
  border: 2.5px solid var(--paper2);
}

.hero-name  { font-family: var(--font-display); font-size: 36px; font-weight: 600; color: var(--ink); line-height: 1; letter-spacing: -0.045em; margin-bottom: 6px; }
.hero-title { font-size: 15px; color: var(--muted); margin-bottom: 12px; font-style: italic; }
.hero-tags  { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; }

.htag        { padding: 5px 12px; font-size: 12px; font-weight: 500; font-family: var(--font-ui); border: 0.5px solid; border-radius: var(--radius-pill); letter-spacing: -0.025em; }
.htag-vc     { background: var(--ink);    color: var(--paper2); border-color: var(--ink); }
.htag-stage  { background: var(--rust-bg); color: var(--rust);  border-color: var(--rust-border); }
.htag-sector { background: var(--teal-bg); color: var(--teal);  border-color: var(--teal-border); }

.hero-contact   { display: flex; gap: 16px; font-size: 12px; color: var(--muted); }
.hero-contact a { color: var(--teal); text-decoration: none; transition: color var(--t-fast); }
.hero-contact a:hover { color: var(--teal2); text-decoration: underline; }

.hero-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--border2);
  border-radius: var(--radius-xl);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.hstat { background: var(--paper2); padding: 16px 18px; border-right: 0.5px solid var(--border); }
.hstat:last-child { border-right: none; }
.hstat-val       { font-family: var(--font-display); font-size: 28px; font-weight: 600; color: var(--ink); line-height: 1; letter-spacing: -0.035em; }
.hstat-val span  { font-size: 14px; color: var(--muted); font-family: var(--font-ui); font-weight: 400; }
.hstat-label     { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.07em; margin-top: 4px; font-family: var(--font-ui); }
.hstat-sub       { font-size: 11px; color: var(--positive); margin-top: 2px; }

/* ────────────────────────────────────────────────────────────────
   43. PAGE GRID
   ──────────────────────────────────────────────────────────────── */

.page-grid { display: grid; grid-template-columns: 1fr 320px; gap: 0; max-width: 1280px; margin: 0 auto; }
.main-col  { padding: 32px 40px; border-right: 0.5px solid var(--border); min-width: 0; }
.side-col  { padding: 28px; min-width: 0; }

/* ────────────────────────────────────────────────────────────────
   44. BREADCRUMB
   ──────────────────────────────────────────────────────────────── */

.breadcrumb {
  padding: 10px 40px;
  font-size: 12px;
  color: var(--muted);
  border-bottom: 0.5px solid var(--border);
  background: var(--paper2);
  display: flex;
  align-items: center;
  gap: 6px;
}
.breadcrumb a         { color: var(--muted); text-decoration: none; transition: color var(--t-fast); }
.breadcrumb a:hover   { color: var(--ink); }
.breadcrumb-sep       { opacity: 0.35; }

/* ────────────────────────────────────────────────────────────────
   45. FOND CARDS
   ──────────────────────────────────────────────────────────────── */

.fond-cards { display: flex; flex-direction: column; gap: 0; border: 1px solid var(--border2); border-radius: var(--radius-xl); overflow: hidden; }

.fond-card {
  background: var(--paper2);
  padding: 22px 24px;
  border-bottom: 0.5px solid var(--border);
  cursor: pointer;
  transition: background var(--t-base);
  position: relative;
}
.fond-card:last-child { border-bottom: none; }
.fond-card:hover { background: var(--paper3); }
.fond-card.current { border-left: 3px solid var(--rust); padding-left: 21px; }
.fond-card.exited  { border-left: 3px solid var(--positive); padding-left: 21px; }
.fond-card.failed  { border-left: 3px solid var(--muted2); padding-left: 21px; }

.fc-top     { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.fc-name    { font-family: var(--font-display); font-size: 18px; font-weight: 600; color: var(--ink); letter-spacing: -0.035em; }
.fc-vintage { font-family: var(--font-mono); font-size: 11px; color: var(--muted); margin-top: 2px; }
.fc-status  { padding: 4px 12px; font-family: var(--font-ui); font-size: 11px; font-weight: 500; white-space: nowrap; border: 0.5px solid; border-radius: var(--radius-pill); }
.fcs-current { background: var(--rust-bg);     color: var(--rust);     border-color: var(--rust-border); }
.fcs-exit    { background: var(--positive-bg); color: var(--positive); border-color: rgba(21,138,64,0.15); }
.fcs-end     { background: var(--paper3);      color: var(--muted);    border-color: var(--border); }

.fc-metrics { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 12px; }
.fcm-val    { font-family: var(--font-mono); font-size: 16px; font-weight: 600; color: var(--ink); }
.fcm-label  { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.07em; margin-top: 2px; }

.fc-bar-row   { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.fc-bar-label { font-size: 10px; color: var(--muted); white-space: nowrap; width: 60px; }
.fc-bar-track { flex: 1; height: 5px; background: var(--paper3); border-radius: var(--radius-pill); overflow: hidden; }
.fc-bar-fill  { height: 100%; border-radius: var(--radius-pill); }
.fc-bar-val   { font-size: 10px; font-family: var(--font-mono); font-weight: 600; min-width: 32px; text-align: right; }

.fc-exits  { display: flex; gap: 6px; margin-top: 12px; flex-wrap: wrap; }
.exit-chip { display: flex; align-items: center; gap: 5px; padding: 4px 12px; font-size: 12px; background: var(--paper3); border: 0.5px solid var(--border); border-radius: var(--radius-pill); transition: background var(--t-fast), border-color var(--t-fast); }
.exit-chip:hover { background: var(--paper2); border-color: var(--border2); }
.exit-chip-name { font-weight: 500; color: var(--ink); }
.exit-chip-mult { font-family: var(--font-mono); font-size: 11px; }

/* ────────────────────────────────────────────────────────────────
   46. SIDEBAR SECTIONS
   ──────────────────────────────────────────────────────────────── */

.side-section       { margin-bottom: 28px; border-bottom: 0.5px solid var(--border); padding-bottom: 24px; }
.side-section:last-child { border-bottom: none; }
.side-title         { font-family: var(--font-display); font-size: 13px; font-weight: 600; color: var(--ink); letter-spacing: -0.025em; margin-bottom: 12px; }

.mini-timeline      { position: relative; padding-left: 18px; }
.mini-timeline::before { content: ''; position: absolute; left: 4px; top: 6px; bottom: 6px; width: 1px; background: var(--border2); }
.mt-item            { position: relative; margin-bottom: 16px; }
.mt-item:last-child { margin-bottom: 0; }
.mt-dot             { position: absolute; left: -16px; top: 4px; width: 8px; height: 8px; border: 2px solid var(--border2); background: var(--paper2); border-radius: 50%; }
.mt-dot.active      { background: var(--rust);     border-color: var(--rust); }
.mt-dot.exited      { background: var(--positive); border-color: var(--positive); }
.mt-date            { font-family: var(--font-mono); font-size: 10px; color: var(--muted); margin-bottom: 1px; }
.mt-text            { font-size: 13px; color: var(--ink); font-weight: 500; }
.mt-sub             { font-size: 12px; color: var(--muted); }

.bio-text { font-size: 13px; color: var(--ink); line-height: 1.75; font-style: italic; border-left: 3px solid var(--rust); padding-left: 14px; }

.data-row         { display: flex; align-items: center; justify-content: space-between; padding: 7px 0; border-bottom: 0.5px solid var(--border); }
.data-row:last-child { border-bottom: none; }
.dr-label         { font-size: 12px; color: var(--muted); }
.dr-val           { font-size: 13px; color: var(--ink); font-weight: 500; font-family: var(--font-mono); }

.signal-row          { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 0.5px solid var(--border); }
.signal-row:last-child { border-bottom: none; }
.signal-icon         { font-size: 13px; flex-shrink: 0; }
.signal-text         { font-size: 12px; color: var(--ink); flex: 1; line-height: 1.4; }
.signal-badge        { font-family: var(--font-mono); font-size: 10px; padding: 2px 8px; border: 0.5px solid; border-radius: var(--radius-pill); }

.similar-item         { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 0.5px solid var(--border); cursor: pointer; transition: padding-left var(--t-base); }
.similar-item:last-child { border-bottom: none; }
.similar-item:hover   { padding-left: 4px; }
.sim-av   { width: 34px; height: 34px; border: 0.5px solid var(--border2); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--font-display); font-size: 11px; font-weight: 600; background: var(--paper3); }
.sim-name { font-size: 13px; font-weight: 500; color: var(--ink); }
.sim-role { font-size: 11px; color: var(--muted); }
.sim-dpi  { font-family: var(--font-mono); font-size: 13px; font-weight: 600; margin-left: auto; }

.tag-cloud  { display: flex; flex-wrap: wrap; gap: 5px; }
.tcloud-tag { padding: 4px 10px; font-size: 11px; background: var(--paper3); color: var(--ink); border: 0.5px solid var(--border); border-radius: var(--radius-pill); font-family: var(--font-ui); transition: background var(--t-fast), border-color var(--t-fast); }
.tcloud-tag:hover { background: var(--paper2); border-color: var(--border2); }

/* ────────────────────────────────────────────────────────────────
   47. INVESTISSEUR TABLE
   ──────────────────────────────────────────────────────────────── */

.inv-table { width: 100%; border-collapse: collapse; border: 1px solid var(--border2); border-radius: var(--radius-xl); overflow: hidden; }
.inv-table th { font-family: var(--font-ui); font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; padding: 10px 14px; text-align: left; background: var(--paper3); border-bottom: 0.5px solid var(--border2); font-weight: 500; }
.inv-table td { padding: 12px 14px; border-bottom: 0.5px solid var(--border); font-size: 13px; background: var(--paper2); }
.inv-table tr:last-child td { border-bottom: none; }
.inv-table tr:hover td { background: var(--paper3); }

.startup-chip    { display: flex; align-items: center; gap: 8px; }
.startup-logo-sm { width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 600; flex-shrink: 0; border: 0.5px solid var(--border2); border-radius: var(--radius-md); background: var(--paper3); }
.s-nm  { font-size: 13px; font-weight: 500; color: var(--ink); }
.s-sec { font-size: 11px; color: var(--muted); }

.mult-pill { padding: 3px 10px; font-family: var(--font-mono); font-size: 11px; font-weight: 600; border: 0.5px solid; border-radius: var(--radius-pill); }
.m-win   { background: var(--positive-bg); color: var(--positive); border-color: rgba(21,138,64,0.15); }
.m-loss  { background: var(--paper3);      color: var(--muted);    border-color: var(--border); }
.m-live  { background: var(--teal-bg);     color: var(--teal);     border-color: var(--teal-border); }
.m-watch { background: var(--warning-bg);  color: var(--warning);  border-color: var(--warning-border); }

.network-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.netw-item  { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: var(--paper2); border: 0.5px solid var(--border); border-radius: var(--radius-md); transition: background var(--t-fast), border-color var(--t-fast); }
.netw-item:hover { background: var(--paper3); border-color: var(--border2); }
.netw-count { font-family: var(--font-mono); font-size: 12px; font-weight: 600; color: var(--ink); min-width: 24px; }
.netw-name  { font-size: 12px; color: var(--ink); }
.netw-deals { font-size: 11px; color: var(--muted); margin-left: auto; }

/* ────────────────────────────────────────────────────────────────
   48. FONDATEUR HERO
   ──────────────────────────────────────────────────────────────── */

.hero { background: var(--paper2); border-bottom: 0.5px solid var(--border); position: relative; overflow: hidden; }
.hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 50% 100% at 100% 50%, var(--glow-rust), transparent);
  pointer-events: none;
}
.hero-inner { display: grid; grid-template-columns: 300px 1fr; min-height: 300px; }

.hero-left {
  padding: 40px 32px;
  border-right: 0.5px solid var(--border);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: var(--paper3);
  position: relative;
  z-index: 1;
}

.avatar-zone    { text-align: center; margin-bottom: 20px; }
.avatar-md {
  width: 80px; height: 80px;
  background: var(--ink);
  border: 0.5px solid var(--border2);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-size: 28px;
  font-style: italic;
  color: var(--paper2);
  margin: 0 auto 12px;
}
.founder-name  { font-family: var(--font-display); font-size: 28px; font-weight: 600; color: var(--ink); line-height: 1.1; text-align: center; margin-bottom: 4px; letter-spacing: -0.035em; }
.founder-title { font-size: 13px; color: var(--muted); text-align: center; font-style: italic; margin-bottom: 14px; }

.id-chip          { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 0.5px solid var(--border); }
.id-chip:last-child { border-bottom: none; }
.id-icon { font-size: 12px; opacity: 0.5; width: 16px; text-align: center; }
.id-val  { font-size: 12px; color: var(--muted); }
.id-val strong { color: var(--ink); font-weight: 500; }

.hero-right     { padding: 40px; position: relative; z-index: 1; }
.hero-right-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.hs-val   { font-family: var(--font-display); font-size: 56px; font-weight: 600; color: var(--ink); line-height: 1; margin-bottom: 2px; letter-spacing: -0.04em; }
.hs-label { font-size: 13px; color: var(--muted); font-style: italic; }

.rep-score  { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.rep-label  { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.1em; font-family: var(--font-ui); }
.rep-val    { font-family: var(--font-mono); font-size: 36px; font-weight: 600; color: var(--gold); line-height: 1; }
.rep-sub    { font-size: 12px; color: var(--gold); opacity: 0.7; }

.kpi-strip { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0; border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; }
.kpi-cell  { background: var(--paper3); padding: 14px 16px; border-right: 0.5px solid var(--border); }
.kpi-cell:last-child { border-right: none; }
.kpi-v     { font-family: var(--font-mono); font-size: 18px; font-weight: 600; color: var(--ink); margin-bottom: 3px; }
.kpi-l     { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.07em; }

.body-grid  { display: grid; grid-template-columns: 1fr 340px; }

.sec-head   { display: flex; align-items: baseline; gap: 12px; margin-bottom: 20px; }
.sec-title  { font-family: var(--font-display); font-size: 20px; font-weight: 600; color: var(--ink); letter-spacing: -0.035em; }
.sec-count  { font-family: var(--font-mono); font-size: 11px; color: var(--muted); }

/* ────────────────────────────────────────────────────────────────
   49. STARTUP BLOCK
   ──────────────────────────────────────────────────────────────── */

.startup-block {
  margin-bottom: 20px;
  background: var(--paper2);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  overflow: hidden;
  cursor: pointer;
  transition: border-color var(--t-base), box-shadow var(--t-base), transform var(--t-base);
  box-shadow: var(--shadow-xs);
}
.startup-block:hover { border-color: var(--border2); box-shadow: var(--shadow-sm); transform: translateY(-1px); }
.startup-block.active-co { border-color: var(--gold-border); }

.sb-header { display: flex; align-items: center; gap: 14px; padding: 16px 20px; border-bottom: 0.5px solid var(--border); background: var(--paper3); }
.sb-logo   { width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; border: 0.5px solid var(--border2); border-radius: var(--radius-md); flex-shrink: 0; background: var(--paper2); }
.sb-name   { font-size: 16px; font-weight: 600; color: var(--ink); margin-bottom: 1px; letter-spacing: -0.025em; }
.sb-sector { font-size: 12px; color: var(--muted); }
.sb-role-badge { margin-left: auto; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }

.role-pill  { padding: 4px 12px; font-size: 11px; font-family: var(--font-ui); font-weight: 500; border: 0.5px solid; border-radius: var(--radius-pill); }
.rp-ceo     { background: var(--gold-bg);     color: var(--gold);     border-color: var(--gold-border); }
.rp-cto     { background: var(--teal-bg);     color: var(--teal);     border-color: var(--teal-border); }
.rp-exit    { background: var(--positive-bg); color: var(--positive); border-color: rgba(21,138,64,0.15); }
.rp-removed { background: var(--rust-bg);     color: var(--rust);     border-color: var(--rust-border); }
.period-label { font-family: var(--font-mono); font-size: 10px; color: var(--muted); }

.sb-timeline { padding: 16px 20px 4px; position: relative; padding-left: 28px; }
.sb-tl-line  { position: absolute; left: 10px; top: 0; bottom: 0; width: 1px; background: var(--border); }

.ev       { display: grid; grid-template-columns: 80px 1fr; gap: 12px; margin-bottom: 14px; position: relative; }
.ev-dot   { position: absolute; left: -22px; top: 4px; width: 8px; height: 8px; border: 1.5px solid var(--border2); background: var(--paper2); border-radius: 50%; }
.ev-dot.r { background: var(--positive); border-color: var(--positive); }
.ev-dot.g { background: var(--gold);     border-color: var(--gold); }
.ev-dot.l { background: var(--warning);  border-color: var(--warning); }
.ev-dot.p { background: var(--muted);    border-color: var(--muted); }
.ev-dot.a { background: var(--rust);     border-color: var(--rust); }
.ev-dot.x { background: var(--teal);     border-color: var(--teal); }

.ev-date   { font-family: var(--font-mono); font-size: 10px; color: var(--muted); padding-top: 2px; }
.ev-title  { font-size: 13px; color: var(--ink); font-weight: 500; margin-bottom: 2px; }
.ev-desc   { font-size: 12px; color: var(--muted); line-height: 1.5; }
.ev-amount { font-family: var(--font-mono); font-size: 12px; color: var(--positive); font-weight: 600; margin-top: 3px; }
.ev-tags   { display: flex; gap: 4px; margin-top: 6px; flex-wrap: wrap; }
.etag      { padding: 3px 9px; font-size: 11px; border: 0.5px solid; border-radius: var(--radius-pill); font-weight: 500; }
.etag-g    { background: var(--positive-bg); color: var(--positive); border-color: rgba(21,138,64,0.15); }
.etag-r    { background: var(--rust-bg);     color: var(--rust);     border-color: var(--rust-border); }
.etag-b    { background: var(--teal-bg);     color: var(--teal);     border-color: var(--teal-border); }
.etag-p    { background: var(--gold-bg);     color: var(--gold);     border-color: var(--gold-border); }
.etag-y    { background: var(--warning-bg);  color: var(--warning);  border-color: var(--warning-border); }
.etag-n    { background: var(--paper3);      color: var(--muted);    border-color: var(--border); }

.sb-footer { padding: 12px 20px; border-top: 0.5px solid var(--border); display: flex; align-items: center; gap: 16px; background: var(--paper3); }
.sf-stat   { text-align: center; }
.sf-val    { font-family: var(--font-mono); font-size: 14px; font-weight: 600; color: var(--ink); }
.sf-label  { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.07em; }
.sf-sep    { width: 1px; height: 28px; background: var(--border2); }

/* ────────────────────────────────────────────────────────────────
   50. FONDATEUR SIDEBAR
   ──────────────────────────────────────────────────────────────── */

.s-section          { margin-bottom: 24px; padding-bottom: 24px; border-bottom: 0.5px solid var(--border); }
.s-section:last-child { border-bottom: none; padding-bottom: 0; }
.s-title            { font-size: 11px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 12px; font-family: var(--font-ui); }

.score-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sc-item    { padding: 12px; background: var(--paper3); border: 0.5px solid var(--border); border-radius: var(--radius-lg); }
.sc-val     { font-family: var(--font-mono); font-size: 16px; font-weight: 600; margin-bottom: 2px; }
.sc-label   { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.07em; }
.sc-bar     { height: 3px; margin-top: 8px; border-radius: var(--radius-pill); overflow: hidden; }

.alert-item         { display: flex; gap: 8px; padding: 10px 12px; margin-bottom: 7px; font-size: 12px; line-height: 1.4; border: 1px solid; border-radius: var(--radius-lg); }
.alert-item:last-child { margin-bottom: 0; }
.ai-warn    { background: var(--warning-bg);  border-color: var(--warning-border); color: var(--warning); }
.ai-ok      { background: var(--positive-bg); border-color: rgba(21,138,64,0.15);  color: var(--positive); }
.ai-danger  { background: var(--rust-bg);     border-color: var(--rust-border);    color: var(--rust); }
.ai-icon    { flex-shrink: 0; font-size: 12px; }

.social-row          { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 0.5px solid var(--border); }
.social-row:last-child { border-bottom: none; }
.soc-platform { font-size: 13px; width: 20px; text-align: center; }
.soc-name     { font-size: 12px; color: var(--muted); flex: 1; }
.soc-val      { font-family: var(--font-mono); font-size: 12px; font-weight: 500; color: var(--ink); }
.soc-delta    { font-size: 11px; margin-left: 4px; }
.soc-up       { color: var(--positive); }
.soc-down     { color: var(--rust); }

.verbatim       { padding: 10px 14px; background: var(--paper3); border-left: 2px solid var(--border2); border-radius: 0 var(--radius-md) var(--radius-md) 0; margin-bottom: 8px; }
.verbatim:last-child { margin-bottom: 0; }
.vb-text        { font-size: 12px; color: var(--muted); line-height: 1.6; font-style: italic; margin-bottom: 5px; }
.vb-meta        { font-size: 10px; color: var(--muted); }

.gov-item          { display: flex; align-items: center; gap: 8px; padding: 8px 0; border-bottom: 0.5px solid var(--border); }
.gov-item:last-child { border-bottom: none; }
.gov-icon { font-size: 13px; }
.gov-text { font-size: 13px; color: var(--ink); flex: 1; }
.gov-badge { padding: 3px 9px; font-size: 11px; font-family: var(--font-ui); border: 0.5px solid; border-radius: var(--radius-pill); font-weight: 500; }
.gb-ami   { background: var(--positive-bg); color: var(--positive); border-color: rgba(21,138,64,0.15); }
.gb-hos   { background: var(--rust-bg);     color: var(--rust);     border-color: var(--rust-border); }
.gb-dou   { background: var(--warning-bg);  color: var(--warning);  border-color: var(--warning-border); }

/* ────────────────────────────────────────────────────────────────
   51. PRESS & REVIEWS
   ──────────────────────────────────────────────────────────────── */

.tab-strip      { display: flex; gap: 2px; background: var(--paper3); padding: 3px; border-radius: var(--radius-lg); margin-bottom: 14px; }
.tab-strip-btn  { flex: 1; padding: 6px 10px; font-size: 12px; color: var(--muted); cursor: pointer; text-align: center; transition: all var(--t-base); border: none; background: none; font-family: var(--font-ui); border-radius: var(--radius-md); }
.tab-strip-btn.active { background: var(--paper2); color: var(--ink); box-shadow: var(--shadow-sm); font-weight: 500; }

.press-item         { padding: 12px 0; border-bottom: 0.5px solid var(--border); transition: padding-left var(--t-base); }
.press-item:last-child { border-bottom: none; }
.press-item:hover   { padding-left: 4px; }
.press-top          { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
.press-source       { font-size: 11px; color: var(--teal); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
.press-date         { font-size: 11px; color: var(--muted); }
.press-title        { font-size: 13px; color: var(--ink); line-height: 1.4; margin-bottom: 4px; font-weight: 500; }
.press-summary      { font-size: 12px; color: var(--muted); line-height: 1.4; }

.sentiment-pill { padding: 3px 9px; font-size: 11px; border: 0.5px solid; border-radius: var(--radius-pill); font-weight: 500; }
.sent-pos { background: var(--positive-bg); color: var(--positive); border-color: rgba(21,138,64,0.15); }
.sent-neg { background: var(--rust-bg);     color: var(--rust);     border-color: var(--rust-border); }
.sent-neu { background: var(--paper3);      color: var(--muted);    border-color: var(--border); }

.review-item         { padding: 10px 0; border-bottom: 0.5px solid var(--border); }
.review-item:last-child { border-bottom: none; }
.review-meta         { display: flex; justify-content: space-between; margin-bottom: 4px; }
.review-role         { font-size: 12px; color: var(--muted); }
.review-date         { font-size: 11px; color: var(--muted); }
.review-text         { font-size: 13px; color: var(--ink); line-height: 1.4; }

.stars { color: var(--warning); font-size: 15px; letter-spacing: 1px; }

.avis-summary  { display: flex; align-items: baseline; gap: 10px; margin-bottom: 12px; }
.avis-note     { font-family: var(--font-mono); font-size: 32px; font-weight: 600; color: var(--warning); }
.avis-count    { font-size: 12px; color: var(--muted); }
.avis-trend-item { font-size: 11px; padding: 3px 10px; border: 0.5px solid var(--border); border-radius: var(--radius-pill); }

/* ────────────────────────────────────────────────────────────────
   52. RH / TRAFFIC
   ──────────────────────────────────────────────────────────────── */

.rh-row          { display: flex; align-items: center; gap: 12px; padding: 8px 0; border-bottom: 0.5px solid var(--border); }
.rh-row:last-child { border-bottom: none; }
.rh-label        { font-size: 13px; color: var(--ink); flex: 1; }
.rh-val          { font-family: var(--font-mono); font-size: 13px; color: var(--ink); min-width: 40px; text-align: right; }
.rh-delta        { font-size: 11px; margin-left: 4px; }

.traffic-item    { display: flex; align-items: center; justify-content: space-between; padding: 7px 0; }
.traffic-source  { font-size: 13px; color: var(--ink); }
.traffic-pct     { font-family: var(--font-mono); font-size: 12px; color: var(--muted); }
.traffic-bar-w   { flex: 1; margin: 0 12px; height: 4px; background: var(--paper3); border-radius: var(--radius-pill); overflow: hidden; }
.traffic-bar-f   { height: 100%; background: var(--teal); border-radius: var(--radius-pill); }

/* ────────────────────────────────────────────────────────────────
   53. COMPETITOR
   ──────────────────────────────────────────────────────────────── */

.competitor-row          { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 0.5px solid var(--border); }
.competitor-row:last-child { border-bottom: none; }
.comp-name   { font-size: 13px; color: var(--ink); }
.comp-raised { font-family: var(--font-mono); font-size: 12px; color: var(--muted); }
.comp-dots   { display: flex; gap: 4px; }
.comp-dot    { width: 6px; height: 6px; background: var(--paper3); border-radius: 50%; }
.comp-dot.fill { background: var(--teal); }

/* ────────────────────────────────────────────────────────────────
   54. COMPAT CHECK
   ──────────────────────────────────────────────────────────────── */

.compat-title       { font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.compat-item        { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 0.5px solid var(--border); font-size: 13px; }
.compat-item:last-child { border-bottom: none; }
.compat-icon        { font-size: 12px; }
.compat-name        { flex: 1; color: var(--ink); }
.compat-status      { font-size: 11px; padding: 3px 8px; border: 0.5px solid; border-radius: var(--radius-pill); font-weight: 500; }
.cs-ok   { background: var(--positive-bg); color: var(--positive); border-color: rgba(21,138,64,0.15); }
.cs-warn { background: var(--warning-bg);  color: var(--warning);  border-color: var(--warning-border); }
.cs-ko   { background: var(--rust-bg);     color: var(--rust);     border-color: var(--rust-border); }
.incompat-warn { margin-top: 8px; padding: 10px 12px; background: var(--rust-bg); border: 0.5px solid var(--rust-border); border-radius: var(--radius-md); font-size: 12px; color: var(--rust); }

/* ────────────────────────────────────────────────────────────────
   55. NAV BADGE
   ──────────────────────────────────────────────────────────────── */

.nav-badge { padding: 4px 10px; font-size: 12px; background: var(--paper3); color: var(--muted); border: 0.5px solid var(--border); border-radius: var(--radius-pill); }

/* ────────────────────────────────────────────────────────────────
   56. ANIMATIONS
   ──────────────────────────────────────────────────────────────── */

@keyframes fadeIn   { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes slideIn  { from { opacity: 0; transform: translateX(-8px); } to { opacity: 1; transform: none; } }
@keyframes scaleIn  { from { opacity: 0; transform: scale(0.95); } to { opacity: 1; transform: scale(1); } }

.animate-fade  { animation: fadeIn  0.25s var(--ease-out) both; }
.animate-slide { animation: slideIn 0.30s var(--ease-out) both; }
.animate-scale { animation: scaleIn 0.25s var(--ease-out) both; }

/* ────────────────────────────────────────────────────────────────
   57. CONTEXTUAL LINKS
   ──────────────────────────────────────────────────────────────── */

a.entity-link {
  position: relative;
  color: var(--ink);
  text-decoration: none;
  font-weight: 500;
}
a.entity-link::after {
  content: '';
  position: absolute;
  bottom: -1px; left: 0;
  width: 0; height: 1px;
  background: var(--teal);
  transition: width var(--t-base) var(--ease-out);
}
a.entity-link:hover { color: var(--teal); }
a.entity-link:hover::after { width: 100%; }

a.action-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--teal);
  font-size: 12px;
  text-decoration: none;
  cursor: pointer;
  font-weight: 500;
  transition: gap var(--t-base) var(--ease-out), color var(--t-fast);
}
a.action-link:hover { gap: 8px; }

/* ────────────────────────────────────────────────────────────────
   58. FOOTNOTES / SOURCES
   ──────────────────────────────────────────────────────────────── */

.fn-ref {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--muted);
  vertical-align: super;
  line-height: 0;
  cursor: help;
  border-bottom: 1px dotted var(--muted);
  padding: 0 1px;
  text-decoration: none;
  transition: color var(--t-fast), border-color var(--t-fast);
}
.fn-ref:hover { color: var(--teal); border-bottom-color: var(--teal); }

.sources { margin-top: 40px; padding-top: 20px; border-top: 0.5px solid var(--border); }
.sources-title { font-family: var(--font-mono); font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.13em; margin-bottom: 10px; }

.source-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 4px; }
.source-item { display: flex; gap: 6px; font-size: 11px; line-height: 1.5; color: var(--muted); }
.source-num  { font-family: var(--font-mono); font-size: 9px; color: var(--muted); min-width: 16px; flex-shrink: 0; }
.source-item a { color: var(--muted); text-decoration: none; border-bottom: 1px dotted var(--muted); word-break: break-all; transition: color var(--t-fast), border-color var(--t-fast); }
.source-item a:hover { color: var(--teal); border-bottom-color: var(--teal); }

.src-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-family: var(--font-mono);
  font-size: 8px;
  color: var(--muted2);
  text-decoration: none;
  opacity: 0.7;
  transition: opacity var(--t-fast);
}
.src-badge:hover { opacity: 1; color: var(--teal); }
.src-badge::before { content: '↗'; font-size: 7px; }

/* ────────────────────────────────────────────────────────────────
   59. LIST PAGES
   ──────────────────────────────────────────────────────────────── */

.list-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 24px;
}
.list-title { font-family: var(--font-display); font-size: 28px; font-weight: 600; color: var(--ink); letter-spacing: -0.045em; }
.list-count { font-family: var(--font-mono); font-size: 12px; color: var(--muted); }

.list-search {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--paper2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-2xl);
  padding: 12px 18px;
  margin-bottom: 20px;
  transition: border-color var(--t-base), box-shadow var(--t-base);
  box-shadow: var(--shadow-xs);
}
.list-search:focus-within {
  border-color: var(--teal);
  box-shadow: 0 0 0 3px var(--teal-bg), var(--shadow-sm);
}
.list-search input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: var(--ink);
  font-family: var(--font-ui);
  font-size: 15px;
}
.list-search input::placeholder { color: var(--muted2); }
.list-search-icon  { color: var(--muted); font-size: 16px; }
.list-search-count { font-family: var(--font-mono); font-size: 12px; color: var(--muted); white-space: nowrap; }

.list-filters {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
  flex-wrap: wrap;
  align-items: center;
}

.list-filter {
  padding: 7px 16px;
  font-size: 12px;
  font-family: var(--font-ui);
  font-weight: 500;
  border: 1px solid var(--border);
  border-radius: var(--radius-pill);
  background: none;
  color: var(--muted);
  cursor: pointer;
  transition: all var(--t-base);
}
.list-filter:hover  { border-color: var(--border2); color: var(--ink); background: var(--paper3); }
.list-filter.active { background: var(--teal-bg); color: var(--teal); border-color: var(--teal-border); font-weight: 600; }
.list-filter-sep    { width: 1px; height: 20px; background: var(--border); }

.list-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.list-card {
  position: relative;
  background: var(--paper2);
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 20px;
  cursor: pointer;
  transition: border-color var(--t-base), box-shadow var(--t-base), transform var(--t-base);
  text-decoration: none;
  color: var(--ink);
  display: block;
  box-shadow: var(--shadow-xs);
}
.list-card:hover { border-color: var(--teal-border); box-shadow: var(--shadow-md); transform: translateY(-3px); }

.list-card-header { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.list-card-logo {
  width: 42px; height: 42px;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-mono);
  font-size: 14px; font-weight: 600;
  flex-shrink: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--paper3);
}
.list-card-name { font-family: var(--font-display); font-size: 16px; font-weight: 600; color: var(--ink); letter-spacing: -0.025em; }
.list-card-sub  { font-size: 12px; color: var(--muted); margin-top: 1px; }
.list-card-tags    { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 12px; }
.list-card-metrics { display: flex; gap: 16px; }
.lcm-val   { font-family: var(--font-mono); font-size: 15px; font-weight: 600; color: var(--ink); }
.lcm-label { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.07em; }
.list-card-score {
  position: absolute; top: 20px; right: 20px;
  font-family: var(--font-mono); font-size: 18px; font-weight: 600;
}

.list-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin-top: 32px;
}
.list-page-btn {
  display: flex; align-items: center; justify-content: center;
  min-width: 36px; height: 36px;
  padding: 0 10px;
  font-family: var(--font-mono); font-size: 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  background: none; color: var(--muted);
  cursor: pointer;
  transition: all var(--t-base);
}
.list-page-btn:hover    { border-color: var(--border2); color: var(--ink); background: var(--paper3); }
.list-page-btn.active   { background: var(--teal); color: #fff; border-color: var(--teal); box-shadow: 0 2px 8px var(--glow-teal); }
.list-page-btn:disabled { opacity: 0.3; cursor: default; }
.list-page-info { font-family: var(--font-mono); font-size: 12px; color: var(--muted); margin: 0 12px; }

.list-empty { text-align: center; padding: 60px 20px; color: var(--muted); }
.list-empty-icon { font-size: 32px; margin-bottom: 12px; opacity: 0.3; }
.list-empty-text { font-size: 14px; }

/* ────────────────────────────────────────────────────────────────
   60. AUDIENCE GATING
   ──────────────────────────────────────────────────────────────── */

.gate-premium { display: none; }
.gate-lp      { display: none; }
body.user-premium .gate-premium { display: block; }
body.user-lp .gate-lp           { display: block; }
body.user-lp .gate-premium      { display: block; }

.gate-premium-teaser {
  filter: blur(6px);
  pointer-events: none;
  user-select: none;
  position: relative;
}
.gate-premium-teaser::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, transparent 30%, var(--paper) 90%);
}
.gate-cta { text-align: center; padding: 24px; margin-top: -40px; position: relative; z-index: 2; }
.gate-cta-text { font-size: 13px; color: var(--muted); margin-bottom: 10px; }

/* ────────────────────────────────────────────────────────────────
   61. MOCKUP MARKERS
   ──────────────────────────────────────────────────────────────── */

.mockup {
  text-decoration: line-through;
  text-decoration-color: var(--rust);
  text-decoration-thickness: 1.5px;
  opacity: 0.5;
}
.mockup-badge {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 8px;
  color: var(--rust);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-decoration: none;
  opacity: 0.65;
  margin-left: 4px;
  vertical-align: super;
}
.mockup-section { position: relative; opacity: 0.4; }
.mockup-section::after {
  content: 'MOCKUP — PAS DE SOURCE';
  position: absolute; top: 8px; right: 8px;
  font-family: var(--font-mono); font-size: 8px;
  color: var(--rust); text-transform: uppercase; letter-spacing: 0.1em; opacity: 0.75;
}

/* ────────────────────────────────────────────────────────────────
   62. EMPTY STATES
   ──────────────────────────────────────────────────────────────── */

.card:empty,
.dash-2col:empty,
.dash-3col:empty,
.section:empty,
.flux-item:empty { display: none; }

.container > *:last-child { margin-bottom: 0; }

/* ────────────────────────────────────────────────────────────────
   63. SEARCH DROPDOWN
   ──────────────────────────────────────────────────────────────── */

#nav-search-suggestions {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 360px;
  background: var(--paper2);
  border: 1px solid var(--border2);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
  z-index: 200;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  animation: menuFadeIn 0.16s var(--ease-out) both;
}
[data-theme="dark"] #nav-search-suggestions {
  background: var(--paper2);
  border-color: var(--border2);
  box-shadow: var(--shadow-lg);
}

.search-suggestion {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 14px;
  background: none;
  border: none;
  border-bottom: 0.5px solid var(--border);
  cursor: pointer;
  text-align: left;
  transition: background var(--t-fast);
  color: var(--ink);
}
.search-suggestion:last-child { border-bottom: none; }
.search-suggestion:hover,
.search-suggestion.is-active  { background: var(--paper3); }

.search-suggestion-copy         { display: flex; flex-direction: column; gap: 2px; }
.search-suggestion-copy strong  { font-size: 13px; font-weight: 600; color: var(--ink); }
.search-suggestion-copy span    { font-size: 11px; color: var(--muted); }

.search-suggestion-type {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--teal);
  background: var(--teal-bg);
  border: 0.5px solid var(--teal-border);
  border-radius: var(--radius-pill);
  padding: 2px 8px;
  flex-shrink: 0;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

.search-empty {
  padding: 16px 14px;
  font-size: 13px;
  color: var(--muted);
  text-align: center;
  background: var(--paper2);
  position: relative;
  z-index: 201;
}

/* Fix transparence */
#nav-search-suggestions,
.yuka-search-dropdown {
  z-index: 201;
  background: var(--paper2) !important;
  background-color: var(--paper2) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
#nav-search-suggestions *,
.yuka-search-dropdown * { background-color: var(--paper2) !important; }
#nav-search-suggestions a:hover,
.yuka-search-dropdown a:hover,
#nav-search-suggestions a.yuka-search-item:hover { background-color: var(--paper3) !important; }

[data-theme="dark"] #nav-search-suggestions,
[data-theme="dark"] #nav-search-suggestions *,
[data-theme="dark"] .yuka-search-dropdown,
[data-theme="dark"] .yuka-search-dropdown * { background-color: var(--paper2) !important; }
[data-theme="dark"] #nav-search-suggestions a:hover,
[data-theme="dark"] .yuka-search-dropdown a:hover { background-color: var(--paper3) !important; }

/* ────────────────────────────────────────────────────────────────
   64. YUKA SEARCH ITEMS
   ──────────────────────────────────────────────────────────────── */

.yuka-search-item {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 10px 14px;
  background-color: var(--paper2) !important;
  border-bottom: 0.5px solid var(--border);
  color: var(--ink);
  text-decoration: none;
  font-size: 13px;
  transition: background var(--t-fast);
}
.yuka-search-item:last-child { border-bottom: none; }
.yuka-search-item:hover { background-color: var(--paper3) !important; }
[data-theme="dark"] .yuka-search-item { background-color: var(--paper2) !important; }
[data-theme="dark"] .yuka-search-item:hover { background-color: var(--paper3) !important; }
/* Les enfants d'un item ne doivent pas garder de fond fixe : sinon ils restent
   blancs (--paper2) quand la ligne passe en gris (--paper3) au survol → "carré blanc". */
#nav-search-suggestions .yuka-search-item *,
.yuka-search-dropdown .yuka-search-item * { background-color: transparent !important; }

/* ────────────────────────────────────────────────────────────────
   65. MOBILE NAV — Hamburger + Drawer
   ──────────────────────────────────────────────────────────────── */

.nav-hamburger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 34px; height: 34px;
  border: 1px solid var(--border2);
  border-radius: var(--radius-md);
  background: var(--paper3);
  color: var(--muted);
  cursor: pointer;
  padding: 0;
  transition: background var(--t-base), color var(--t-base);
  -webkit-tap-highlight-color: transparent;
}
.nav-hamburger:hover { background: var(--paper2); color: var(--ink); }

.nav-hamburger-icon { display: flex; flex-direction: column; gap: 5px; width: 18px; }
.nav-hamburger-icon span {
  display: block; height: 1.5px;
  background: currentColor; border-radius: 2px;
  transition: transform 0.25s var(--ease-out), opacity 0.2s, width 0.2s;
  transform-origin: center;
}
.nav-hamburger-icon span:nth-child(2) { width: 12px; }
.nav--open .nav-hamburger-icon span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav--open .nav-hamburger-icon span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nav--open .nav-hamburger-icon span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); width: 18px; }

.nav-drawer {
  display: none;
  position: fixed;
  top: 56px; left: 0; right: 0; bottom: 0;
  z-index: 99;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.nav-drawer-backdrop {
  display: none;
  position: fixed; inset: 0; top: 56px;
  background: rgba(0,0,0,0.3);
  z-index: 98;
  animation: fadeIn 0.2s ease;
}
.nav--open + .nav-drawer-backdrop { display: block; }

.nav-drawer-inner {
  background: var(--paper);
  border-bottom: 1px solid var(--border);
  padding: 8px 0 20px;
  box-shadow: var(--shadow-lg);
  animation: slideDownFast 0.22s var(--ease-out);
}
[data-theme="dark"] .nav-drawer-inner { background: var(--paper2); }
@keyframes slideDownFast {
  from { transform: translateY(-10px); opacity: 0; }
  to   { transform: translateY(0);     opacity: 1; }
}

.nav-drawer-search {
  display: flex; align-items: center; gap: 8px;
  margin: 8px 16px;
  background: var(--paper3);
  border: 1px solid var(--border2);
  border-radius: var(--radius-lg);
  padding: 10px 14px;
}
.nav-drawer-search:focus-within { border-color: var(--teal); box-shadow: 0 0 0 3px var(--teal-bg); }
.nav-drawer-search input { flex:1; background:none; border:none; outline:none; color:var(--ink); font-family:var(--font-ui); font-size:14px; }
.nav-drawer-search input::placeholder { color: var(--muted2); }
.nav-drawer-search-icon { color: var(--muted); flex-shrink: 0; }

.nav-drawer-sep { height: 1px; background: var(--border); margin: 8px 0; }

.nav-drawer-link {
  display: flex; align-items: center;
  padding: 12px 20px;
  font-family: var(--font-ui); font-size: 14px; font-weight: 500;
  color: var(--muted); text-decoration: none;
  border-left: 2px solid transparent;
  transition: color var(--t-fast), background var(--t-fast), border-color var(--t-fast);
}
.nav-drawer-link:hover       { color: var(--ink); background: var(--paper3); }
.nav-drawer-link.active      { color: var(--teal); background: var(--teal-bg); border-left-color: var(--teal); font-weight: 600; }
.nav-drawer-link--user       { color: var(--ink); font-size: 13px; }

/* ────────────────────────────────────────────────────────────────
   66. HERO STATS ROW
   ──────────────────────────────────────────────────────────────── */

.hero-stats-row {
  margin-top: 14px;
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.hero-stats-sep {
  width: 1px;
  background: var(--border);
  align-self: stretch;
}

/* ════════════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════════════ */

@media (max-width: 1100px) {
  .kpi-grid   { grid-template-columns: repeat(3, 1fr); }
  .dash-3col  { grid-template-columns: 1fr 1fr; }
  .dash-grid  { grid-template-columns: 1fr 1fr; }
  .nav        { padding: 0 20px; }
  .nav-tab    { padding: 6px 10px; font-size: 12px; white-space: nowrap; }
  .nav-search input { width: 140px; }
}

@media (max-width: 960px) {
  .nav        { padding: 0 16px; }
  .nav-tab    { padding: 6px 7px; font-size: 11px; white-space: nowrap; }
  .nav-tabs   { gap: 0; }
  .nav-search { display: none; }
}

@media (max-width: 768px) {
  body { overflow-x: hidden; }

  .nav-tabs     { display: none; }
  .nav-search   { display: none; }
  .nav-hamburger { display: flex !important; }
  .nav--open .nav-drawer { display: block !important; }
  .nav          { padding: 0 16px; }

  .container    { padding: 16px; }

  .kpi-grid,
  .dash-grid,
  .dash-grid-4,
  .dash-2col,
  .dash-3col    { grid-template-columns: 1fr; }

  .main-grid,
  .main-grid-sm,
  .page-grid    { grid-template-columns: 1fr; }

  .ticker {
    padding: 10px 16px;
    gap: 20px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .ticker::-webkit-scrollbar { display: none; }

  .table-wrap,
  table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }

  .page-header  { flex-direction: column; align-items: flex-start; gap: 12px; }
  .list-header  { flex-direction: column; align-items: flex-start; gap: 10px; }
  .list-filters { flex-wrap: wrap; gap: 6px; }
  .breadcrumb   { padding: 8px 16px; font-size: 12px; }

  h1, .h1       { font-size: 20px; }
  h2, .h2       { font-size: 16px; }
  .page-title h1 { font-size: 20px; }
  .list-title   { font-size: 20px; }

  .kanban       { grid-template-columns: 1fr !important; }
  .pipeline-stats { flex-wrap: wrap; gap: 12px; }

  /* Profile hero — fondateur */
  .hero-inner { grid-template-columns: 1fr !important; min-height: unset; }
  .hero-left  { padding: 20px 16px; border-right: none; border-bottom: 0.5px solid var(--border); }
  .hero-right { padding: 20px 16px; overflow-x: hidden; }
  .hero-right-top { flex-direction: column; gap: 14px; align-items: flex-start; }
  .hero-stats-row  { gap: 10px; flex-wrap: wrap; }
  .hero-stats-sep  { display: none; }
  .hs-val   { font-size: 32px; }
  .rep-score { align-items: flex-start; }
  .rep-val   { font-size: 26px; }

  .kpi-strip { grid-template-columns: repeat(2, 1fr) !important; }
  .kpi-cell  { border-bottom: 0.5px solid var(--border); }
  .kpi-cell:nth-child(2n) { border-right: none; }
  .kpi-cell:nth-last-child(-n+2) { border-bottom: none; }

  .body-grid { grid-template-columns: 1fr !important; }
  .body-grid > .main-col,
  .body-grid > div:first-child { padding: 20px 16px; border-right: none; min-width: 0; overflow-x: hidden; }
  .body-grid > .side-col,
  .body-grid > div:last-child  { padding: 20px 16px; border-top: 0.5px solid var(--border); min-width: 0; }

  .sb-header { flex-wrap: wrap; gap: 10px; }
  .sb-role-badge { margin-left: 0; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 6px; width: 100%; }
  .sb-footer { overflow-x: auto; -webkit-overflow-scrolling: touch; gap: 10px; padding: 10px 16px; }
  .sf-stat   { flex-shrink: 0; }
  .sb-timeline { padding-left: 22px; }
  .ev        { grid-template-columns: 56px 1fr; gap: 8px; }
  .ev-dot    { left: -16px; }

  /* Profile hero — investisseur */
  .profile-hero { padding: 20px 16px; overflow: hidden; }
  .hero-grid    { grid-template-columns: auto 1fr !important; gap: 12px 14px; align-items: start; }
  .hero-grid > #fav-slot { display: none !important; }
  .avatar     { width: 64px; height: 64px; font-size: 20px; }
  .hero-name  { font-size: 20px; word-break: break-word; }
  .hero-title { font-size: 12px; white-space: normal; word-break: break-word; }
  .hero-tags  { flex-wrap: wrap; }
  .hero-contact { flex-wrap: wrap; gap: 4px 8px; font-size: 11px; }
  .hero-contact > span:not(:has(*)) { display: none; }

  .page-grid { grid-template-columns: 1fr !important; overflow: hidden; }
  .page-grid > .main-col { padding: 20px 16px; border-right: none; border-bottom: 0.5px solid var(--border); min-width: 0; overflow-x: hidden; }
  .page-grid > .side-col { padding: 20px 16px; min-width: 0; }

  .fond-card { padding: 16px; min-width: 0; }
  .fc-top    { flex-wrap: wrap; gap: 8px; }
  .fc-top > div:last-child { flex-direction: row; align-items: center; gap: 8px; width: 100%; }
  .fc-name    { font-size: 15px; white-space: normal; word-break: break-word; }
  .fc-vintage { white-space: normal; word-break: break-word; }
  .fc-metrics { grid-template-columns: repeat(3, 1fr) !important; gap: 8px; }

  .section:has(#inv-table) { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  #inv-table { display: table !important; white-space: normal; min-width: 460px; width: 100%; }
  .inv-table th { white-space: nowrap; font-size: 10px; padding: 8px; }
  .inv-table td { font-size: 11px; padding: 8px; }
  .inv-table th:nth-child(3), .inv-table td:nth-child(3),
  .inv-table th:nth-child(4), .inv-table td:nth-child(4) { display: none; }

  .network-grid { grid-template-columns: 1fr !important; }
  .netw-name    { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .side-section { min-width: 0; }
  .data-row     { flex-wrap: wrap; gap: 4px; }
  .dr-val       { max-width: 100%; word-break: break-word; }
  .section-header { flex-wrap: wrap; gap: 4px; }

  .sources      { padding-left: 16px; padding-right: 16px; margin-top: 24px; }
  .container .sources { padding-left: 0; padding-right: 0; }

  #nav-search-suggestions { position: absolute; top: calc(100% + 4px); left: 0; right: 0; width: auto; z-index: 1100; }

  .list-pagination { flex-wrap: wrap; gap: 4px; padding: 0 16px; }
  .list-page-btn   { min-width: 32px; height: 32px; padding: 0 8px; font-size: 11px; }
}

@media (max-width: 480px) {
  .kpi-grid   { grid-template-columns: 1fr; }
  h1, .h1     { font-size: 18px; }
  .nav        { padding: 0 14px; }
  .container  { padding: 12px; }
  .kpi-strip  { grid-template-columns: 1fr !important; }
  .kpi-cell   { border-right: none !important; border-bottom: 0.5px solid var(--border); }
  .kpi-cell:last-child { border-bottom: none; }
  .hs-val     { font-size: 26px; }
  .rep-val    { font-size: 20px; }
  .hero-stats-row { gap: 8px; }
  .fc-metrics { grid-template-columns: repeat(2, 1fr) !important; }
  .hero-name  { font-size: 18px; }
  .profile-hero { padding: 16px 14px; }
  .sb-header  { padding: 12px 14px; }
}

/* ════════════════════════════════════════════════════════════════
   REDUCED MOTION
   ════════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  body::before { display: none; }

}

/* ═══════════════════════════════════════════════════════════════════════
   Exit Intelligence — faisceau d'indices (faits, pas jugement)
   Classes partagées par les widgets embarqués (track record, positionnement)
   et les pages comparables-sortie / exit-operation.
   ▲ = fait positif · ▼ = fait négatif · · = neutre. Aucune couleur verdict.
   ═══════════════════════════════════════════════════════════════════════ */
.ei-facts { display: flex; flex-direction: column; gap: 3px; }
.ei-fact { display: block; font-size: 12px; color: var(--ink2); line-height: 1.6; }
.ei-g { font-family: var(--font-mono); font-weight: 600; margin-right: 7px;
  display: inline-block; width: 12px; text-align: center; }
.ei-up { color: var(--teal); }
.ei-dn { color: var(--rust); }
.ei-nt { color: var(--muted); }
.ei-indet { display: block; font-size: 11px; font-style: italic; color: var(--muted); margin-bottom: 4px; }
.ei-crew { font-family: var(--font-mono); font-size: 13.5px; color: var(--ink2); }
.ei-nc { color: var(--muted); font-style: italic; }
.ei-empty { color: var(--muted); font-style: italic; text-align: center; padding: 18px 10px; }
