:root {
  /* ===== Identité MDE — métal / bronze / béton noir ===== */
  --bg: #0c0c0e;
  --bg-deep: #070708;
  --surface: #161618;
  --surface2: rgba(255,255,255,0.025);
  --surface2-solid: #1a1a1d;
  --surface3: #212124;
  --border: rgba(208,196,168,0.13);
  --border2: rgba(208,196,168,0.22);
  --text: #ededec;
  --muted: #8a857c;
  --muted2: #b3afa5;

  /* Bronze & chrome */
  --bronze: #b89a6a;
  --bronze-2: #8c6f4a;
  --bronze-bright: #e6d6b3;
  --chrome: #d8d9de;

  /* Compat anciens noms (réassignés vers la palette MDE) */
  --gold: #b89a6a;
  --gold-bright: #e6d6b3;
  --gold-dim: rgba(184,154,106,0.10);
  --gold-glow: rgba(184,154,106,0.30);
  --emerald: #37c26a;
  --emerald-dim: rgba(55,194,106,0.10);
  --emerald-glow: rgba(190,190,196,0.16);

  --green: #37c26a;
  --green-dim: rgba(55,194,106,0.10);
  --red: #e5544b;
  --red-dim: rgba(229,84,75,0.10);
  --amber: #c9a24a;
  --amber-dim: rgba(201,162,74,0.10);
  --blue: #9aa0a8;
  --blue-dim: rgba(154,160,168,0.10);

  --accent: var(--bronze);
  --accent-dim: var(--gold-dim);
  --accent2: #e8c97e;

  /* ── Aliases nouvelle charte (évite les variables fantômes) ── */
  --text2: var(--muted2);
  --text3: var(--muted);
  --bg2: var(--surface);
  --bg3: var(--surface2-solid);
  --border-med: var(--border2);
  --text-primary: var(--text);
  --text-secondary: var(--muted2);
  --gunmetal: var(--surface);
}

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

body {
  font-family: 'Space Grotesk', system-ui, sans-serif;
  background: var(--bg);
  color: var(--text);
  min-height: 100vh;
  font-size: 15px;
  position: relative;
  overflow-x: hidden;
}

/* ====== AURA ANIMÉE EN ARRIÈRE-PLAN ====== */
/* Lueur de forge — aura bronze chaude, lente, basse */
body::before {
  content: '';
  position: fixed;
  top: -28%; left: -18%;
  width: 68%; height: 78%;
  background: radial-gradient(circle, rgba(184,154,106,0.22) 0%, transparent 62%);
  filter: blur(90px);
  opacity: 0.42;
  z-index: -2;
  /* animation auraFloat1 gelée : un fond mouvant sous N cartes translucides
     force un repaint GPU permanent pour un drift imperceptible (56s) */
  pointer-events: none;
}
/* Vignettage "chambre forte" — profondeur sombre sur les bords + lueur de forge bas-droite */
body::after {
  content: '';
  position: fixed; inset: 0;
  background:
    radial-gradient(72% 52% at 88% 92%, rgba(184,154,106,0.10) 0%, transparent 60%),
    radial-gradient(135% 100% at 50% 26%, transparent 52%, rgba(0,0,0,0.42) 100%);
  z-index: -2;
  pointer-events: none;
}

@keyframes auraFloat1 {
  0%, 100% { transform: translate(0,0) scale(1); opacity: 0.5; }
  33% { transform: translate(15vw, 10vh) scale(1.15); opacity: 0.65; }
  66% { transform: translate(5vw, 20vh) scale(0.95); opacity: 0.4; }
}
@keyframes auraFloat2 {
  0%, 100% { transform: translate(0,0) scale(1); opacity: 0.35; }
  50% { transform: translate(-15vw, -12vh) scale(1.2); opacity: 0.5; }
}

/* Grain subtil */
.grain-overlay {
  position: fixed; inset: 0;
  z-index: -1;
  opacity: 0.045;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100' height='100' filter='url(%23n)'/%3E%3C/svg%3E");
}

.mono { font-family: 'JetBrains Mono', monospace; }

/* ====== LAYOUT ====== */
.shell { display: flex; min-height: 100vh; position: relative; z-index: 1; }

.sidebar {
  width: 230px;
  flex-shrink: 0;
  border-right: 0.5px solid var(--border);
  padding: 2rem 0;
  position: fixed;
  top: 0; left: 0; bottom: 0;
  display: flex;
  flex-direction: column;
  background: rgba(6,8,7,0.85);
  backdrop-filter: blur(12px);
  z-index: 10;
}

.logo {
  padding: 0 1.5rem 2rem;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  background: linear-gradient(135deg, var(--gold-bright), var(--gold));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.logo span {
  display: block; font-size: 10px; color: var(--muted);
  font-weight: 400; letter-spacing: 0.1em; margin-top: 3px;
  -webkit-text-fill-color: var(--muted);
}

nav { flex: 1; }

/* Sidebar desktop : si la fenêtre est trop courte (fenêtré non plein écran), la nav scrolle en
   interne et le bas (compte actif + stats du jour + déconnexion) reste épinglé et visible,
   au lieu d'être coupé et inaccessible. N'affecte pas la barre mobile (≤700px). */
@media (min-width: 701px) {
  .sidebar { overflow: hidden; }
  .sidebar > nav { overflow-y: auto; min-height: 0; }
  .sidebar > .logo,
  .sidebar > .account-selector,
  .sidebar > .sidebar-pnl-today,
  .sidebar > .btn-ghost { flex-shrink: 0; }
}
.nav-item {
  display: flex; align-items: center; gap: 11px;
  padding: 11px 1.5rem;
  font-size: 13px;
  color: var(--muted);
  cursor: pointer;
  border-left: 2px solid transparent;
  transition: all 0.2s cubic-bezier(0.4,0,0.2,1);
  letter-spacing: 0.03em;
  user-select: none;
  position: relative;
}
.nav-item:hover { color: var(--text); background: rgba(184,154,106,0.07); }
.nav-item.active {
  color: var(--gold-bright);
  border-left-color: var(--gold);
  background: linear-gradient(90deg, rgba(184,154,106,0.12), transparent);
}
.nav-item.active::after {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
  background: var(--gold);
  box-shadow: 0 0 12px var(--gold-glow), 0 0 4px var(--gold);
}
.nav-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; transition: box-shadow 0.2s; }
.nav-item.active .nav-dot { box-shadow: 0 0 8px var(--gold); }

/* Nav group collapsible */
.nav-group { margin-bottom: 2px; }
.nav-group-header {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 1.5rem;
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.1em;
  color: var(--muted);
  cursor: pointer; user-select: none;
  transition: color 0.18s;
}
.nav-group-header:hover { color: var(--text); }
.nav-group-icon { flex-shrink: 0; opacity: 0.6; }
.nav-group-chevron {
  margin-left: auto; flex-shrink: 0;
  transition: transform 0.25s cubic-bezier(0.16,1,0.3,1);
  transform: rotate(-90deg);
}
.nav-group-body {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.32s cubic-bezier(0.16,1,0.3,1);
}
.nav-group-body.open { max-height: 600px; }
.nav-group-body .nav-item { padding-left: 2.4rem; }
html[data-theme="light"] .nav-group-header { color: var(--muted); }
html[data-theme="light"] .nav-group-header:hover { color: var(--text); }

.account-selector {
  padding: 1rem 1.5rem;
  border-top: 0.5px solid var(--border);
}
.account-selector-label {
  font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 7px;
}
.account-selector select { width: 100%; }

.main {
  margin-left: 230px;
  padding: 2.5rem;
  max-width: 940px;
  flex: 1;
}
/* Grands écrans (≥1400px : 24" / 27" / 32"...) : centrer le contenu au lieu de le coller
   à gauche avec un vide à droite (la sidebar reste fixe à 230px). Aucun effet <1400px. */
@media (min-width: 1400px) {
  .main { margin-left: max(230px, calc((100vw - 940px) / 2)); margin-right: auto; }
}

/* ====== SECTIONS ====== */
.section { display: none; }
.section.active { display: block; animation: sectionIn 0.45s cubic-bezier(0.16,1,0.3,1); }

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

.section-header { margin-bottom: 2rem; display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; }
.section-header-text { flex: 1; }
.section-title {
  font-size: 24px; font-weight: 700; color: var(--text);
  letter-spacing: -0.01em;
}
.section-sub { font-size: 13px; color: var(--muted); margin-top: 5px; }

/* ====== CARDS ====== */
.card {
  background:
    repeating-linear-gradient(118deg, rgba(230,214,179,0.016) 0 2px, transparent 2px 5px),
    linear-gradient(145deg, var(--surface), var(--bg-deep));
  border: 0.5px solid var(--border);
  border-radius: 12px;
  padding: 1.35rem 1.6rem;
  margin-bottom: 14px;
  position: relative;
  transition: border-color 0.25s, box-shadow 0.3s;
  box-shadow: 0 4px 24px -8px rgba(0,0,0,0.5), inset 0 1px 0 rgba(230,214,179,0.05), inset 0 -1px 0 rgba(0,0,0,0.35);
}
.card:hover { border-color: rgba(184,154,106,0.3); box-shadow: 0 8px 32px -8px rgba(0,0,0,0.6), 0 0 0 1px rgba(184,154,106,0.08); }

.card-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 12px;
}
.card-label.accent { color: var(--gold); }
.card-label.gold { color: var(--gold); }
.card-label.red { color: var(--red); }
.card-label.green { color: var(--emerald); }
.card-label.amber { color: var(--amber); }

.plan-list { list-style: none; }
.plan-list li {
  padding: 7px 0;
  font-size: 14px;
  color: var(--text);
  border-bottom: 0.5px solid var(--border);
  display: flex; align-items: flex-start; gap: 10px;
}
.plan-list li:last-child { border-bottom: none; }
.plan-list li::before { content: '◆'; color: var(--gold); flex-shrink: 0; font-size: 9px; margin-top: 5px; }

.rule-block {
  border-left: 2px solid var(--red);
  padding-left: 13px;
  background: var(--red-dim);
  border-radius: 0 6px 6px 0;
}
.rule-block.ok { border-left-color: var(--emerald); background: var(--emerald-dim); }
.rule-item { padding: 6px 0; font-size: 14px; color: var(--text); }

.badge {
  display: inline-block;
  font-size: 11px;
  font-family: 'Space Grotesk', system-ui, sans-serif;
  font-weight: 500;
  padding: 2px 9px;
  border-radius: 5px;
  border: 0.5px solid var(--border2);
  color: var(--muted);
}
.badge.red { color: var(--red); border-color: var(--red); background: var(--red-dim); }
.badge.green { color: var(--emerald); border-color: var(--emerald); background: var(--emerald-dim); }
.badge.amber { color: var(--amber); border-color: var(--amber); background: var(--amber-dim); }
.badge.blue { color: var(--blue); border-color: var(--blue); background: var(--blue-dim); }
.badge.gold { color: var(--gold-bright); border-color: var(--gold); background: var(--gold-dim); }
.badge.be { color: var(--muted); border-color: var(--border2); background: rgba(180,180,190,.10); font-weight: 600; letter-spacing: .04em; }

/* Case à cocher Breakeven (formulaire trade + saisie rapide) */
.be-check {
  display: flex; align-items: center; gap: 7px;
  margin-top: 8px; font-size: 12.5px; color: var(--muted);
  cursor: pointer; user-select: none;
}
.be-check input { width: 15px; height: 15px; accent-color: var(--gold, #b89a6a); cursor: pointer; margin: 0; }
.ql-be-check { justify-content: center; margin: 4px 0 2px; }

/* ====== MINDSET ====== */
.aff-daily {
  background: linear-gradient(135deg, var(--gold-dim), var(--emerald-dim));
  border: 0.5px solid var(--gold);
  border-radius: 14px;
  padding: 1.6rem;
  margin-bottom: 1.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
  box-shadow: 0 0 40px -10px var(--gold-glow);
}
.aff-daily::before {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 0%, var(--gold-glow), transparent 70%);
  opacity: 0.4;
  animation: pulse 8s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 0.25; }
  50% { opacity: 0.5; }
}
.aff-daily-label { font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold-bright); margin-bottom: 12px; position: relative; }
.aff-daily-text { font-size: 19px; font-weight: 600; line-height: 1.5; color: var(--text); position: relative; }

.aff-card {
  background: var(--surface);
  border: 0.5px solid var(--border);
  border-radius: 10px;
  padding: 1.1rem 1.3rem;
  margin-bottom: 9px;
  display: flex; gap: 14px; align-items: flex-start;
  transition: transform 0.2s, border-color 0.2s;
}
.aff-card:hover { transform: translateX(4px); border-color: var(--gold); }
.aff-marker { width: 3px; background: linear-gradient(var(--gold), var(--emerald)); border-radius: 3px; flex-shrink: 0; align-self: stretch; }
.aff-main { font-size: 14px; font-weight: 500; color: var(--text); margin-bottom: 4px; }
.aff-sub { font-size: 12px; color: var(--muted); }

/* ====== FORMS ====== */
.form-grid { display: grid; gap: 12px; margin-bottom: 12px; }
.form-grid.cols-2 { grid-template-columns: 1fr 1fr; }
.form-grid.cols-3 { grid-template-columns: 1fr 1fr 1fr; }
.form-grid.cols-4 { grid-template-columns: 1fr 1fr 1fr 1fr; }

.form-field { display: flex; flex-direction: column; gap: 6px; }
.field-label { font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); font-weight: 500; }
.field-label .req { color: var(--gold); }

input[type="date"], input[type="time"], input[type="number"], input[type="text"], textarea, select {
  background: var(--bg-deep);
  border: 0.5px solid var(--border2);
  border-radius: 7px;
  color: var(--text);
  font-family: 'Space Grotesk', system-ui, sans-serif;
  font-size: 13px;
  padding: 9px 11px;
  width: 100%;
  transition: border-color 0.2s, box-shadow 0.2s;
}
input:focus, textarea:focus, select:focus {
  outline: none; border-color: var(--gold);
  box-shadow: 0 0 0 3px var(--gold-dim);
}
textarea { resize: vertical; min-height: 80px; font-family: 'Space Grotesk', system-ui, sans-serif; font-size: 13px; }
select { cursor: pointer; }

/* ====== CHIPS ====== */
.chip-row { display: flex; gap: 6px; flex-wrap: wrap; }
.chip {
  background: var(--bg-deep);
  border: 0.5px solid var(--border2);
  border-radius: 7px;
  color: var(--muted);
  font-size: 12px;
  font-family: 'Space Grotesk', system-ui, sans-serif;
  padding: 6px 13px;
  cursor: pointer;
  transition: all 0.18s;
}
.chip:hover { color: var(--text); border-color: var(--gold); }
.chip.sel { background: var(--gold-dim); border-color: var(--gold); color: var(--gold-bright); box-shadow: 0 0 12px -4px var(--gold-glow); }
.chip.sel.red { background: var(--red-dim); border-color: var(--red); color: var(--red); box-shadow: none; }
.chip.sel.green { background: var(--emerald-dim); border-color: var(--emerald); color: var(--emerald); }
.chip.sel.blue { background: var(--blue-dim); border-color: var(--blue); color: var(--blue); }

/* ── Filtre par période — Vue d'ensemble ── */
.overview-period { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin: 4px 0 14px; }
.overview-period:empty { display: none; }
.ov-period-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.ov-period-chip {
  background: var(--bg-deep);
  border: 0.5px solid var(--border2);
  border-radius: 7px;
  color: var(--muted);
  font-size: 12px;
  font-family: 'Space Grotesk', system-ui, sans-serif;
  padding: 5px 12px;
  cursor: pointer;
  transition: all 0.18s;
}
.ov-period-chip:hover { color: var(--text); border-color: var(--gold); }
.ov-period-chip.sel { background: var(--gold-dim); border-color: var(--gold); color: var(--gold-bright); box-shadow: 0 0 12px -4px var(--gold-glow); }
.ov-period-summary { font-size: 12.5px; color: var(--muted2); font-family: 'Space Grotesk', system-ui, sans-serif; }
.ov-period-summary .pos { color: var(--emerald); }
.ov-period-summary .neg { color: var(--red); }
.stat-period-tag {
  font-size: 9.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase;
  color: var(--gold-bright); background: var(--gold-dim); border: 0.5px solid var(--gold);
  border-radius: 5px; padding: 1px 6px; margin-left: 5px; vertical-align: middle;
}

.btn-primary {
  background: linear-gradient(135deg, var(--gold-bright), var(--gold));
  color: #1a1303;
  border: none;
  border-radius: 7px;
  font-family: 'Space Grotesk', system-ui, sans-serif;
  font-weight: 700;
  font-size: 13px;
  padding: 10px 20px;
  cursor: pointer;
  letter-spacing: 0.03em;
  transition: transform 0.15s, box-shadow 0.2s;
  box-shadow: 0 4px 20px -6px var(--gold-glow);
}
.btn-primary:hover { transform: translateY(-1px); box-shadow: 0 6px 28px -6px var(--gold-glow); }
.btn-primary.full { width: 100%; }

.btn-ghost {
  background: none;
  border: 0.5px solid var(--border2);
  color: var(--muted);
  padding: 6px 14px;
  border-radius: 7px;
  font-size: 12px;
  font-family: 'Space Grotesk', system-ui, sans-serif;
  cursor: pointer;
  transition: all 0.18s;
  letter-spacing: 0.05em;
}
.btn-ghost:hover { color: var(--gold-bright); border-color: var(--gold); }

.btn-secondary {
  background: var(--surface2-solid);
  border: 0.5px solid var(--border2);
  color: var(--text);
  padding: 9px 16px;
  border-radius: 7px;
  font-family: 'Space Grotesk', system-ui, sans-serif;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.18s;
}
.btn-secondary:hover { border-color: var(--gold); color: var(--gold-bright); }

/* ====== ENTRIES ====== */
.entry-card {
  background: var(--surface);
  border: 0.5px solid var(--border);
  border-left: 2px solid transparent;
  border-radius: 10px;
  padding: 1.05rem 1.3rem;
  margin-bottom: 9px;
  transition: border-color 0.2s, border-left-color 0.25s, transform 0.2s, box-shadow 0.25s;
}
.entry-card:hover {
  border-color: var(--border2);
  border-left-color: var(--bronze);
  transform: translateX(3px);
  box-shadow: -2px 0 16px -4px rgba(184,154,106,0.2);
}
.entry-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; gap: 12px; flex-wrap: wrap; }
.entry-date-block { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.entry-date { font-family: 'JetBrains Mono', monospace; font-size: 11.5px; color: var(--muted); letter-spacing: -0.02em; }
.entry-pnl-block { display: flex; align-items: center; gap: 10px; }
.entry-pnl { font-family: 'JetBrains Mono', monospace; font-size: 18px; font-weight: 600; letter-spacing: -0.03em; }
.entry-pnl.pos { color: var(--emerald); text-shadow: 0 0 20px rgba(55,194,106,0.3); }
.entry-pnl.neg { color: var(--red); text-shadow: 0 0 20px rgba(229,84,75,0.25); }
.entry-pnl.zero { color: var(--muted); }
.entry-r { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--muted2); letter-spacing: -0.02em; }
.entry-r.pos { color: var(--emerald); }
.entry-r.neg { color: var(--red); }
.entry-meta { font-size: 12px; color: var(--muted); margin-bottom: 6px; display: flex; gap: 8px; flex-wrap: wrap; }
.entry-context { font-size: 13px; color: var(--muted2); font-style: italic; margin-bottom: 4px; }
.entry-notes { font-size: 13px; color: var(--text); line-height: 1.5; }

.icon-btn {
  background: none; border: none; color: var(--muted2);
  cursor: pointer; font-size: 15px; padding: 2px 4px;
  transition: color 0.15s;
}
.icon-btn:hover { color: var(--text); }
.icon-btn.danger:hover { color: var(--red); }
.icon-btn.edit:hover { color: var(--gold-bright); }

.empty-state { text-align: center; padding: 3rem; color: var(--muted); font-size: 13px; }

/* ====== STATS ====== */
.stats-bar { display: grid; gap: 12px; margin-bottom: 1.5rem; }
.stats-bar.cols-3 { grid-template-columns: repeat(3, 1fr); }
.stats-bar.cols-4 { grid-template-columns: repeat(4, 1fr); }

.stat-card {
  background: linear-gradient(145deg, var(--surface), var(--bg-deep));
  border: 0.5px solid var(--border);
  border-radius: 11px;
  padding: 1.1rem;
  position: relative;
  overflow: hidden;
  transition: border-color 0.25s, box-shadow 0.3s;
  box-shadow: 0 4px 20px -8px rgba(0,0,0,0.5);
}
.stat-card:hover {
  border-color: rgba(184,154,106,0.25);
  box-shadow: 0 6px 28px -6px rgba(0,0,0,0.6), 0 0 16px -6px var(--gold-glow);
}
.stat-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  opacity: 0.55;
}
.stat-label { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted2); margin-bottom: 7px; }
.stat-value { font-family: 'JetBrains Mono', monospace; font-size: 26px; font-weight: 600; letter-spacing: -0.04em; line-height: 1; }
.stat-value.pos { color: var(--emerald); text-shadow: 0 0 12px rgba(55,194,106,0.22); }
.stat-value.neg { color: var(--red); text-shadow: 0 0 12px rgba(229,84,75,0.18); }
.stat-value.neutral { color: var(--text); }
.stat-sub { font-size: 11px; color: var(--muted2); margin-top: 6px; font-family: 'JetBrains Mono', monospace; letter-spacing: -0.01em; }

/* ====== ACCOUNT CARDS ====== */
.account-card {
  background: linear-gradient(145deg, var(--surface), var(--bg-deep));
  border: 0.5px solid var(--border);
  border-radius: 12px;
  padding: 1.35rem 1.6rem;
  margin-bottom: 14px;
  position: relative;
  transition: border-color 0.3s, box-shadow 0.35s, transform 0.2s;
  box-shadow: 0 4px 28px -8px rgba(0,0,0,0.55);
}
.account-card:hover {
  border-color: rgba(184,154,106,0.45);
  box-shadow: 0 8px 40px -10px rgba(0,0,0,0.65), 0 0 24px -8px var(--gold-glow);
  transform: translateY(-1px);
}
.account-card-top {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: 14px;
}
.account-name { font-size: 17px; font-weight: 700; color: var(--text); margin-bottom: 5px; letter-spacing: -0.01em; }
.account-meta { font-size: 12px; color: var(--muted); display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }

.account-stats {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  padding-top: 14px; border-top: 0.5px solid var(--border);
}
.account-stat-label { font-size: 10px; color: var(--muted); letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 5px; }
.account-stat-value { font-family: 'JetBrains Mono', monospace; font-size: 16px; font-weight: 500; letter-spacing: -0.03em; }
/* Bloc DD pleine largeur (sorti de la grille pour ne pas la déséquilibrer) */
.account-dd-row { margin-top: 12px; padding-top: 12px; border-top: 0.5px solid var(--border); }
.account-dd-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 7px; }
.account-dd-head .account-stat-label { margin-bottom: 0; }
.account-dd-pct { font-family: 'JetBrains Mono', monospace; font-size: 15px; font-weight: 600; letter-spacing: -0.03em; }

.dd-bar {
  height: 5px;
  background: var(--surface3);
  border-radius: 3px;
  margin-top: 5px;
  overflow: hidden;
}
.dd-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--emerald), var(--gold));
  transition: width 0.4s cubic-bezier(0.16,1,0.3,1);
  border-radius: 3px;
}
.dd-bar-fill.warn { background: linear-gradient(90deg, var(--amber), var(--gold)); }
.dd-bar-fill.danger { background: linear-gradient(90deg, var(--red), #ff8a4d); }

/* Rules pills */
.account-rules-row {
  display: flex; gap: 7px; flex-wrap: wrap;
  margin-top: 14px; padding-top: 14px;
  border-top: 0.5px solid var(--border);
}
.rule-pill {
  font-size: 11px;
  font-family: 'Space Grotesk', system-ui, sans-serif;
  font-weight: 500;
  padding: 3px 10px;
  border-radius: 6px;
  background: var(--surface2-solid);
  border: 0.5px solid var(--border2);
  color: var(--muted2);
}
.rule-pill.done {
  color: var(--emerald);
  border-color: var(--emerald);
  background: var(--emerald-dim);
  box-shadow: 0 0 12px -4px var(--emerald-glow);
}
.rule-pill.gold {
  color: var(--gold-bright);
  border-color: var(--gold);
  background: var(--gold-dim);
}

/* Détails / accordéons */
.account-notes-details, .payout-details, .eval-details { margin-top: 11px; }
.account-notes-details summary, .payout-details summary, .eval-details summary {
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  user-select: none;
  padding: 5px 0;
  transition: color 0.2s;
}
.account-notes-details summary { color: var(--muted); }
.account-notes-details summary:hover { color: var(--text); }
.payout-details summary { color: var(--gold); }
.payout-details summary:hover { color: var(--gold-bright); }
.eval-details summary { color: var(--emerald); }
.eval-details summary:hover { color: var(--emerald); opacity: 0.8; }

.account-notes-text {
  font-size: 12px;
  color: var(--muted2);
  line-height: 1.65;
  margin-top: 9px;
  padding: 12px 14px;
  background: var(--bg-deep);
  border-radius: 8px;
  border: 0.5px solid var(--border);
}

/* Tracker bodies */
.payout-body, .eval-body {
  margin-top: 11px;
  padding: 14px;
  background: var(--bg-deep);
  border-radius: 8px;
  border: 0.5px solid var(--border);
}
.wb-card {
  margin-bottom: 18px; padding: 16px 18px; border-radius: 12px;
  border: 1px solid rgba(55,194,106,.3); background: rgba(55,194,106,.06);
}
.wb-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.wb-title { font-family: 'Oswald', sans-serif; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--text); }
.wb-total { font-family: 'JetBrains Mono', monospace; font-size: 24px; font-weight: 700; color: var(--green); }
.wb-list { display: flex; flex-direction: column; gap: 6px; }
.wb-row { display: flex; align-items: center; gap: 10px; font-size: 13px; }
.wb-acct { flex: 1; min-width: 0; color: var(--text2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wb-amt { font-family: 'JetBrains Mono', monospace; font-weight: 600; }
.wb-amt.ok { color: var(--green); }
.wb-amt.muted { color: var(--muted); }
.wb-badge { font-size: 10px; font-weight: 600; letter-spacing: .04em; padding: 2px 8px; border-radius: 20px; border: 1px solid var(--border); }
.wb-badge.ok { color: var(--green); border-color: rgba(55,194,106,.35); }
.wb-badge.blocked { color: var(--muted); }
html[data-theme="light"] .wb-card { border-color: rgba(35,138,72,.3); background: rgba(35,138,72,.06); }
html[data-theme="light"] .wb-badge.ok { border-color: rgba(35,138,72,.35); }
.payout-row { margin-bottom: 14px; }
.payout-row:last-child { margin-bottom: 0; }
.payout-row-head {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 6px;
}
.payout-row-label { font-size: 12px; color: var(--muted2); }
.payout-row-val {
  font-family: 'JetBrains Mono', monospace; font-size: 12px;
  color: var(--text); font-weight: 500; letter-spacing: -0.02em;
}
.payout-row-val.ok { color: var(--emerald); }
.payout-row-val.warn { color: var(--amber); }
.payout-bar {
  height: 5px; background: var(--surface3);
  border-radius: 3px; overflow: hidden;
}
.payout-bar-fill {
  height: 100%; background: linear-gradient(90deg, var(--blue), var(--emerald));
  transition: width 0.4s cubic-bezier(0.16,1,0.3,1);
  border-radius: 3px;
}
.payout-bar-fill.ok { background: linear-gradient(90deg, var(--emerald), var(--gold)); box-shadow: 0 0 10px -2px var(--emerald-glow); }
.payout-hint {
  font-size: 11px; color: var(--amber);
  font-family: 'Space Grotesk', sans-serif; margin-top: 5px; line-height: 1.5;
}
.payout-pills {
  display: flex; gap: 7px; flex-wrap: wrap;
  margin-top: 11px; padding-top: 11px;
  border-top: 0.5px solid var(--border);
}
.payout-step {
  font-size: 11px;
  font-family: 'Space Grotesk', sans-serif;
  color: var(--muted2);
  padding: 7px 11px;
  background: var(--surface);
  border-radius: 7px;
  border: 0.5px solid var(--border);
  margin-bottom: 6px;
  display: flex; justify-content: space-between; align-items: center;
}
.payout-step.done { border-color: var(--emerald); color: var(--emerald); background: var(--emerald-dim); }
.payout-step:last-child { margin-bottom: 0; }
.payout-step-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px; border-radius: 50%;
  background: var(--surface3); color: var(--muted);
  font-size: 10px; margin-right: 8px; flex-shrink: 0;
}
.payout-step.done .payout-step-num { background: var(--emerald); color: var(--bg-deep); }

/* Level-up flash quand target atteint */
@keyframes levelUp {
  0% { box-shadow: 0 0 0 0 var(--gold-glow); }
  50% { box-shadow: 0 0 30px 4px var(--gold-glow); }
  100% { box-shadow: 0 0 0 0 var(--gold-glow); }
}
/* pulse box-shadow gelé (repaint CPU/frame) → glow statique équivalent */
.level-up { box-shadow: 0 0 18px 2px var(--gold-glow); }

/* ====== MODAL ====== */
.modal-overlay {
  display: none;
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(3,5,4,0.8);
  backdrop-filter: blur(6px);
  z-index: 100;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.modal-overlay.show { display: flex; animation: fadeIn 0.2s; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.modal {
  background: linear-gradient(160deg, var(--surface), var(--bg-deep));
  border: 0.5px solid var(--gold);
  border-radius: 16px;
  padding: 1.6rem;
  max-width: 540px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 20px 80px -20px var(--gold-glow), 0 0 0 1px var(--border);
  animation: modalIn 0.3s cubic-bezier(0.16,1,0.3,1);
}
@keyframes modalIn {
  from { opacity: 0; transform: translateY(20px) scale(0.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.modal-title { font-size: 19px; font-weight: 700; margin-bottom: 1.1rem; }
.modal-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 1.1rem; }

/* ====== EXPORT ====== */
.export-output {
  background: var(--bg-deep);
  border: 0.5px solid var(--border2);
  border-radius: 8px;
  padding: 1rem;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  white-space: pre-wrap;
  color: var(--muted2);
  max-height: 400px;
  overflow-y: auto;
  margin-top: 12px;
}

.sep { border: none; border-top: 0.5px solid var(--border); margin: 1.5rem 0; }

/* Scrollbar */
::-webkit-scrollbar { width: 4px; height: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(184,154,106,0.25); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: rgba(184,154,106,0.55); }

/* ====== MOBILE ====== */
@media (max-width: 700px) {
  /* Shell en colonne : sidebar en haut, contenu en dessous */
  .shell {
    flex-direction: column;
    min-height: 100vh;
  }

  /* Sidebar → 2 rangées : (1) logo + compte + déconnexion, (2) barre d'onglets pleine largeur.
     Le scroll horizontal vit désormais UNIQUEMENT sur <nav> (pas sur la sidebar). */
  .sidebar {
    position: sticky;
    top: 0;
    width: 100%;
    height: auto;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    padding: 0;
    overflow-x: visible;
    overflow-y: visible;
    border-right: none;
    border-bottom: 1px solid var(--border);
    z-index: 100;
  }

  /* Logo réduit */
  .logo {
    order: 0;
    padding: 0 14px;
    font-size: 13px;
    letter-spacing: 0.1em;
    flex-shrink: 0;
    white-space: nowrap;
    border-right: 1px solid var(--border);
    height: 52px;
    display: flex;
    align-items: center;
  }
  .logo span { display: none; }

  /* Rangée 2 : la barre d'onglets occupe TOUTE la largeur sur sa propre ligne
     et reste le SEUL conteneur scrollable horizontalement (+ dégradé d'affordance à droite). */
  nav {
    order: 2;
    flex: 0 0 100%;
    width: 100%;
    display: flex;
    flex-direction: row;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    border-top: 1px solid var(--border);
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 26px), transparent);
    mask-image: linear-gradient(to right, #000 calc(100% - 26px), transparent);
  }
  nav::-webkit-scrollbar { display: none; }

  .nav-item {
    padding: 0 16px;
    height: 52px;
    display: flex;
    align-items: center;
    border-left: none !important;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
    font-size: 10px;
    flex-shrink: 0;
  }
  .nav-item .nav-dot { display: none; }
  .nav-item.active {
    border-bottom-color: var(--gold);
    background: rgba(201,169,110,0.06);
  }
  .nav-item.active::after { display: none; }

  /* Tous les items deviennent enfants flex DIRECTS de <nav> (rangée scrollable) */
  .nav-group, .nav-group-body { display: contents; }
  .nav-group-header { display: none; }

  /* Rangée 1 (à droite du logo) : sélecteur de compte extensible + déconnexion */
  .account-selector {
    order: 1;
    border-top: none;
    border-left: none;
    padding: 0 12px;
    height: 52px;
    display: flex;
    align-items: center;
    flex: 1 1 auto;
    min-width: 0;
  }
  .account-selector-label { display: none; }
  .account-selector select {
    font-size: 11px;
    padding: 4px 6px;
    max-width: 100%;
    width: 100%;
  }

  /* P&L du jour masqué sur mobile (info déjà dans l'Overview) — libère la barre */
  .sidebar-pnl-today { display: none !important; }

  /* Déconnexion : compacte, à droite de la rangée 1 */
  #logout-btn {
    order: 1;
    display: inline-flex !important; align-items: center; justify-content: center;
    width: auto !important; min-width: auto; margin: 0 12px 0 4px !important; padding: 7px 13px;
    font-size: 11px; white-space: nowrap; flex-shrink: 0;
    border-radius: 8px;
  }

  /* Contenu principal — pleine largeur */
  .main {
    margin-left: 0;
    padding: 1rem;
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
  }

  /* Grilles responsive */
  .form-grid.cols-2, .form-grid.cols-3, .form-grid.cols-4 { grid-template-columns: 1fr 1fr; }
  .stats-bar.cols-3, .stats-bar.cols-4 { grid-template-columns: 1fr 1fr; }
  .account-stats { grid-template-columns: repeat(3, 1fr); }

  /* Section header en colonne sur mobile */
  .section-header { flex-direction: column; align-items: flex-start; gap: 10px; }
  .section-header > div:last-child { display: flex; flex-wrap: wrap; gap: 6px; }

  /* Titre section plus petit */
  .section-title { font-size: 20px; }

  /* Cards padding réduit */
  .card { padding: 14px; }

  /* Stat value plus petit */
  .stat-value { font-size: 22px; }

  /* Modal plein écran */
  .modal { max-height: 90vh; overflow-y: auto; margin: 5vh auto; width: 94%; }
  .modal-overlay { align-items: flex-end; padding: 0; }

  /* Theme toggle repositionné */
  .theme-toggle { top: 8px; right: 8px; width: 36px; height: 36px; }

  /* FAB */
  .fab { bottom: 1.2rem; right: 1.2rem; width: 50px; height: 50px; font-size: 26px; }

  /* Promo panel : dispo sur mobile (le trafic TikTok arrive là), largeur adaptée aux petits écrans */
  .promo-panel { width: min(300px, 86vw); }

  /* Overflow global bloqué */
  body { overflow-x: hidden; }
}

/* ============================================================
   FINITIONS IDENTITÉ MDE — métal / bronze / Oswald
   ============================================================ */
.logo, .section-title, .card-label, .stat-label, .account-stat-label,
.modal-title, .aff-daily-label { font-family: 'Oswald', sans-serif; }

.nav-item { font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: 0.09em; font-size: 12.5px; font-weight: 500; }

.section-title {
  font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: 0.05em;
  font-weight: 600; font-size: 22px; position: relative; padding-bottom: 12px;
}
.section-title::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 44px; height: 2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--bronze), var(--chrome));
}
.modal-title { text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600; }

/* Logo MDE — chrome + signature bronze */
.logo {
  background: linear-gradient(180deg, var(--chrome), #9a9ba1);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  font-weight: 700; letter-spacing: 0.14em;
}
.logo span {
  background: linear-gradient(90deg, var(--bronze-2), var(--bronze-bright), var(--bronze-2));
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
  letter-spacing: 0.26em; font-weight: 500;
}

/* Chiffres alignés (tabular) */
.mono, .stat-value, .stat-sub, .entry-pnl, .entry-r, .entry-date,
.account-stat-value, input { font-variant-numeric: tabular-nums; }

/* Bouton principal : noir brillant 3D */
.btn-primary {
  background: linear-gradient(180deg, #1e1e1e 0%, #000000 100%);
  color: #ffffff;
  text-shadow: 0 1px 2px rgba(0,0,0,0.8);
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.1),
    0 2px 8px rgba(0,0,0,0.6),
    0 4px 16px rgba(0,0,0,0.4),
    inset 0 1px 0 rgba(255,255,255,0.16),
    inset 0 -1px 0 rgba(0,0,0,0.9);
}
.btn-primary:hover {
  background: linear-gradient(180deg, #2a2a2a 0%, #0d0d0d 100%);
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.15),
    0 4px 16px rgba(0,0,0,0.7),
    0 8px 28px rgba(0,0,0,0.5),
    0 0 24px rgba(255,255,255,0.06),
    inset 0 1px 0 rgba(255,255,255,0.22),
    inset 0 -1px 0 rgba(0,0,0,0.9);
  transform: translateY(-2px);
}
.btn-primary:active {
  background: linear-gradient(180deg, #0d0d0d 0%, #000 100%);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.06), 0 1px 2px rgba(0,0,0,0.9), inset 0 1px 3px rgba(0,0,0,0.8);
  transform: translateY(0);
}

/* Liseré bronze en haut de chaque carte */
.card { border-top: 1px solid rgba(184,154,106,0.16); }

/* Filet bronze sous le logo de la sidebar */
.logo { border-bottom: 1px solid var(--border); margin-bottom: 0.5rem; }

/* CTA Ouvrir le calculateur — visible et premium */
.btn-calc {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 10px 18px;
  background: linear-gradient(145deg, #1e1a12, #141008);
  color: var(--bronze-bright);
  font-family: 'Space Grotesk', sans-serif; font-weight: 600;
  font-size: 13px; text-decoration: none;
  border-radius: 10px;
  border: 1px solid rgba(201,169,110,.3);
  box-shadow: 0 2px 10px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.06);
  transition: all .2s; white-space: nowrap;
}
.btn-calc:hover {
  border-color: rgba(201,169,110,.55);
  color: var(--accent2);
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(0,0,0,.4), 0 0 14px -4px var(--gold-glow), inset 0 1px 0 rgba(255,255,255,.08);
}
.btn-calc-icon { color: var(--bronze); flex-shrink: 0; }
.btn-calc:hover .btn-calc-icon { color: var(--accent2); }
.btn-calc-arrow { opacity: .7; flex-shrink: 0; }
html[data-theme="light"] .btn-calc {
  background: linear-gradient(145deg, #fff8ec, #f5ecd8);
  color: #8b6914; border-color: rgba(139,105,20,.3);
}
html[data-theme="light"] .btn-calc-icon { color: #8b6914; }

/* ── Bannière CTA calculateur (remplace l'iframe) ── */
.calc-cta-banner {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 20px 24px; margin-top: 4px;
  background: linear-gradient(135deg, rgba(201,169,110,0.08), rgba(201,169,110,0.02));
  border: 1px solid rgba(201,169,110,0.22);
  border-radius: 16px; text-decoration: none;
  transition: all .25s cubic-bezier(.16,1,.3,1);
}
.calc-cta-banner:hover {
  border-color: rgba(201,169,110,0.5);
  background: linear-gradient(135deg, rgba(201,169,110,0.13), rgba(201,169,110,0.04));
  transform: translateY(-2px);
  box-shadow: 0 8px 28px -8px rgba(0,0,0,.5), 0 0 20px -6px var(--gold-glow);
}
.calc-cta-left { display: flex; align-items: center; gap: 16px; }
.calc-cta-icon {
  display: flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; flex-shrink: 0;
  background: rgba(201,169,110,0.12);
  border: 1px solid rgba(201,169,110,0.2);
  border-radius: 12px; color: var(--accent);
}
.calc-cta-title {
  font-family: 'Oswald', sans-serif; font-size: 16px; font-weight: 600;
  letter-spacing: 0.03em; color: var(--text); text-transform: uppercase;
}
.calc-cta-sub { font-size: 12.5px; color: var(--text2); margin-top: 3px; line-height: 1.45; }
.calc-cta-arrow {
  display: flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; flex-shrink: 0;
  background: var(--accent); color: #0c0c0e;
  border-radius: 50%; transition: transform .25s;
}
.calc-cta-banner:hover .calc-cta-arrow { transform: translateX(4px); }
html[data-theme="light"] .calc-cta-icon { color: #8b6914; background: rgba(139,105,20,0.08); border-color: rgba(139,105,20,0.18); }

/* Badges Note de setup (A+ A B+ B C) */
.badge.grade { font-family: 'Oswald', sans-serif; font-weight: 600; letter-spacing: 0.06em; }
.badge.grade-Aplus { color: #e6d6b3; border-color: var(--bronze); background: rgba(184,154,106,.16); }
.badge.grade-A     { color: var(--bronze); border-color: var(--bronze); background: rgba(184,154,106,.10); }
.badge.grade-Bplus { color: var(--chrome); border-color: rgba(216,217,222,.45); background: rgba(216,217,222,.08); }
.badge.grade-B     { color: var(--muted2); border-color: rgba(179,175,165,.35); background: rgba(179,175,165,.06); }
.badge.grade-C     { color: var(--muted); border-color: var(--border2); background: rgba(255,255,255,.03); }
.badge.setup { font-family: 'Oswald', sans-serif; letter-spacing: 0.08em; color: var(--muted2); border-color: var(--border2); }

/* Table "Stats par setup" */
.setup-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.setup-table th { font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: 0.06em;
  font-size: 11px; font-weight: 500; color: var(--muted); text-align: left;
  padding: 10px 12px; border-bottom: 1px solid var(--border); }
.setup-table td { padding: 12px; border-bottom: 1px solid var(--border); color: var(--text); }
.setup-table td.num { font-variant-numeric: tabular-nums; }
.setup-table tr:last-child td { border-bottom: none; }
.setup-table tr:hover td { background: rgba(184,154,106,.04); }
.setup-table .muted { color: var(--muted); font-size: 11.5px; }
.setup-table .pos { color: var(--green); } .setup-table .neg { color: var(--red); }

/* Filtres journal */
.filter-label { font-family: 'Oswald', sans-serif; font-size: 12px; text-transform: uppercase;
  letter-spacing: 0.10em; color: var(--bronze); padding-right: 4px; }
.filter-group { display: flex; align-items: center; gap: 8px; }
.filter-sub { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }

/* ====== Barre de recherche de preset prop firm ====== */
.preset-search-block {
  background: linear-gradient(180deg, rgba(184,154,106,.06), rgba(184,154,106,.02));
  border: 1px solid rgba(184,154,106,.18);
  border-radius: 12px;
  padding: 14px 14px 10px;
  margin-bottom: 18px;
}
.preset-search-block .field-label {
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase; letter-spacing: 0.07em;
  font-size: 11.5px; color: var(--bronze);
  margin-bottom: 8px; display: block;
}
.preset-search-wrap {
  position: relative; display: flex; gap: 6px; align-items: center;
}
#preset-search {
  flex: 1;
  background: rgba(0,0,0,.25);
  border: 1px solid rgba(184,154,106,.22);
  border-radius: 9px;
  color: var(--text);
  padding: 11px 13px;
  font-size: 14px;
  font-family: 'Space Grotesk', sans-serif;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
#preset-search:focus {
  border-color: var(--bronze);
  box-shadow: 0 0 0 3px rgba(184,154,106,.15);
}
#preset-search::placeholder { color: rgba(255,255,255,.55); }
#preset-clear {
  background: rgba(255,255,255,.05);
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 8px;
  padding: 8px 10px;
  cursor: pointer;
  font-size: 12px;
}
#preset-clear:hover { color: var(--bronze); border-color: var(--bronze); }

.preset-results {
  max-height: 280px; overflow-y: auto;
  margin-top: 8px;
}
.preset-results:empty { margin-top: 0; }
.preset-empty {
  padding: 12px; color: var(--muted); font-size: 12.5px;
  font-style: italic; text-align: center;
}
.preset-item {
  display: flex; align-items: center; gap: 11px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: 9px;
  margin-bottom: 6px;
  cursor: pointer;
  transition: background .12s, border-color .12s;
  background: rgba(0,0,0,.18);
}
.preset-item:hover,
.preset-item:focus {
  background: rgba(184,154,106,.08);
  border-color: var(--bronze);
  outline: none;
}
.preset-item-body { flex: 1; min-width: 0; }
.preset-logo {
  flex: 0 0 auto;
  width: 56px; height: 34px;
  display: flex; align-items: center; justify-content: center;
  padding: 4px;
  background: rgba(12,12,14,.7);
  border: 1px solid var(--border);
  border-radius: 7px;
  overflow: hidden;
}
.preset-logo img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
.preset-logo--fallback {
  font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 16px;
  color: var(--bronze-bright); text-transform: uppercase;
}
.preset-item-main {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.preset-firm {
  font-family: 'Oswald', sans-serif;
  font-weight: 600; font-size: 13px;
  color: var(--chrome);
  text-transform: uppercase; letter-spacing: 0.04em;
}
.preset-plan {
  font-size: 12.5px; color: var(--muted2);
}
.preset-size {
  font-family: 'Oswald', sans-serif;
  background: linear-gradient(135deg, var(--bronze), var(--bronze-bright));
  -webkit-background-clip: text; background-clip: text; color: transparent;
  font-weight: 600; font-size: 12.5px;
}
.preset-badge {
  font-family: 'Oswald', sans-serif;
  font-size: 9.5px; font-weight: 500; letter-spacing: 0.08em;
  padding: 2px 6px; border-radius: 4px;
  border: 1px solid var(--border);
  color: var(--muted);
}
.preset-badge.fixed { color: var(--chrome); border-color: rgba(216,217,222,.35); }
.preset-badge.eod { color: var(--bronze-bright); border-color: rgba(184,154,106,.35); }
.preset-badge.intra { color: var(--red); border-color: rgba(229,84,75,.35); }
.preset-item-meta {
  margin-top: 4px;
  font-size: 11.5px; color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.preset-applied {
  display: flex; align-items: center; gap: 10px;
  margin-top: 8px;
  padding: 10px 12px;
  background: rgba(55,194,106,.10);
  border: 1px solid rgba(55,194,106,.30);
  border-radius: 9px;
}
.preset-applied-icon {
  color: var(--green); font-weight: 700;
}
.preset-applied-logo {
  flex: 0 0 auto;
  width: 52px; height: 30px;
  display: flex; align-items: center; justify-content: center;
  padding: 3px;
  background: rgba(12,12,14,.7);
  border: 1px solid var(--border);
  border-radius: 6px;
  overflow: hidden;
}
.preset-applied-logo img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }
#preset-applied-text {
  flex: 1; font-size: 13px; color: var(--text); font-weight: 500;
}
.preset-reset-btn {
  background: none; border: 1px solid var(--border);
  color: var(--muted); padding: 6px 10px; border-radius: 6px;
  cursor: pointer; font-size: 11px;
  font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: 0.06em;
}
.preset-reset-btn:hover { color: var(--bronze); border-color: var(--bronze); }

.field-label .opt {
  font-size: 9.5px; font-weight: 500; letter-spacing: 0.05em;
  color: var(--muted); text-transform: uppercase;
  margin-left: 4px; padding: 1px 5px;
  border: 1px solid var(--border); border-radius: 4px;
  vertical-align: middle;
}

/* ============= Onboarding ============= */
.onboarding-overlay {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
  background: rgba(8,8,9,.85); backdrop-filter: blur(10px);
}
.onboarding-card {
  width: min(94%, 460px);
  background: linear-gradient(180deg, #18181b, #0e0e10);
  border: 1px solid rgba(184,154,106,.22);
  border-radius: 18px;
  padding: 32px 28px 24px;
  text-align: center;
  box-shadow: 0 30px 80px rgba(0,0,0,.7);
  position: relative; overflow: hidden;
}
.onboarding-card::before {
  content:""; position:absolute; left:0; right:0; top:0; height:2px;
  background: linear-gradient(90deg, transparent, var(--bronze), transparent);
}
.onboarding-step {
  font-family: 'Oswald', sans-serif; font-size: 11px; letter-spacing: 0.18em;
  color: var(--bronze); text-transform: uppercase; margin-bottom: 18px;
}
.onboarding-logo {
  font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 34px;
  letter-spacing: 4px; line-height: 1;
  background: linear-gradient(180deg, var(--chrome), #9a9ba1);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.onboarding-logo span {
  display: block; font-size: 11px; font-weight: 500; letter-spacing: 8px; margin-top: 6px;
  background: linear-gradient(90deg, var(--bronze-2), var(--bronze-bright), var(--bronze-2));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.onboarding-card h2 {
  font-family: 'Oswald', sans-serif; font-weight: 600; font-size: 22px;
  text-transform: uppercase; letter-spacing: 2px;
  color: var(--text); margin: 22px 0 12px;
}
.onboarding-card p {
  color: var(--muted2); font-size: 14.5px; line-height: 1.6;
  margin: 0 0 24px;
}
.onboarding-actions {
  display: flex; gap: 10px; justify-content: center; align-items: center;
}
.onboarding-skip {
  background: none; border: 1px solid var(--border); color: var(--muted);
  border-radius: 9px; padding: 10px 18px; cursor: pointer; font-size: 13px;
  font-family: inherit;
}
.onboarding-skip:hover { color: var(--bronze); border-color: var(--bronze); }
.onboarding-next {
  background: linear-gradient(135deg, #e7e8ec, #b9bac0 50%, #8f9096);
  color: #15140f; border: none; border-radius: 9px;
  padding: 11px 22px; cursor: pointer; font-weight: 700; font-size: 13px;
  font-family: 'Oswald', sans-serif; text-transform: uppercase; letter-spacing: 0.06em;
  box-shadow: 0 6px 16px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.5);
}
.onboarding-next:hover { filter: brightness(1.06); }

/* ============= Toast ============= */
#toast-container {
  position: fixed; top: 20px; right: 20px; z-index: 10000;
  display: flex; flex-direction: column; gap: 8px;
  pointer-events: none;
}
.toast {
  background: var(--gunmetal); border: 1px solid var(--border);
  border-left: 3px solid var(--bronze);
  border-radius: 10px; padding: 12px 16px;
  color: var(--text); font-size: 13px; font-weight: 500;
  box-shadow: 0 12px 28px rgba(0,0,0,.5);
  min-width: 240px; max-width: 360px;
  pointer-events: auto;
  animation: toastIn .3s cubic-bezier(.22,1,.36,1);
  display: flex; align-items: flex-start; gap: 10px;
}
.toast.warn { border-left-color: var(--amber); }
.toast.danger, .toast.error { border-left-color: var(--red); }
.toast.success { border-left-color: var(--green); }
.toast.info { border-left-color: var(--bronze); }
.toast-icon { font-size: 16px; line-height: 1; }
.toast-msg { flex: 1; }
.toast-close { background: none; border: none; color: var(--muted); cursor: pointer; padding: 0 4px; font-size: 14px; }
.toast-close:hover { color: var(--text); }
@keyframes toastIn { from { opacity: 0; transform: translateX(40px); } to { opacity: 1; transform: translateX(0); } }
.toast.out { animation: toastOut .25s ease forwards; }
@keyframes toastOut { to { opacity: 0; transform: translateX(40px); } }

/* ============= Mini equity chart ============= */
.equity-mini {
  margin-top: 12px;
  padding: 10px 12px 6px;
  background: rgba(0,0,0,.18);
  border: 1px solid var(--border);
  border-radius: 10px;
}
.equity-mini-label {
  font-family: 'Oswald', sans-serif; text-transform: uppercase;
  letter-spacing: 0.08em; font-size: 10px; color: var(--muted);
  margin-bottom: 4px;
}
.equity-mini svg { width: 100%; height: auto; display: block; }

/* ============= Heatmap ============= */
.heatmap-section {
  margin-top: 18px;
}
.heatmap-section-label {
  font-family: 'Oswald', sans-serif; text-transform: uppercase;
  letter-spacing: 0.08em; font-size: 10.5px; color: var(--muted);
  margin-bottom: 10px;
}
.heatmap-grid {
  display: grid;
  grid-template-rows: repeat(7, 12px);
  grid-auto-flow: column;
  grid-auto-columns: 12px;
  gap: 3px;
  overflow-x: auto;
  padding-bottom: 4px;
}
.heatmap-cell {
  width: 12px; height: 12px; border-radius: 2px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.04);
  cursor: default;
}
.heatmap-cell.g1 { background: rgba(55,194,106,.22); }
.heatmap-cell.g2 { background: rgba(55,194,106,.42); }
.heatmap-cell.g3 { background: rgba(55,194,106,.62); }
.heatmap-cell.g4 { background: rgba(55,194,106,.85); }
.heatmap-cell.r1 { background: rgba(229,84,75,.22); }
.heatmap-cell.r2 { background: rgba(229,84,75,.42); }
.heatmap-cell.r3 { background: rgba(229,84,75,.62); }
.heatmap-cell.r4 { background: rgba(229,84,75,.85); }
.heatmap-legend {
  display: flex; gap: 12px; align-items: center; margin-top: 8px;
  font-size: 10.5px; color: var(--muted);
}
.heatmap-legend .swatch { display: inline-flex; gap: 2px; }
.heatmap-legend .swatch i { width: 10px; height: 10px; border-radius: 2px; display: inline-block; }

.preset-tag-card {
  font-family: 'Oswald', sans-serif;
  font-size: 11px; font-weight: 500; letter-spacing: 0.06em;
  background: linear-gradient(90deg, var(--bronze-2), var(--bronze-bright));
  -webkit-background-clip: text; background-clip: text; color: transparent;
  text-transform: uppercase;
}

/* Tag de type de DD dans la carte compte */
.dd-type-tag {
  display: inline-block; margin-left: 6px; padding: 1px 7px;
  background: rgba(184,154,106,0.10); border: 1px solid rgba(184,154,106,0.24);
  border-radius: 6px; font-size: 9.5px; font-family: 'Oswald', sans-serif;
  text-transform: uppercase; letter-spacing: 0.06em; color: var(--bronze-bright);
  font-weight: 500; vertical-align: middle;
}
.dd-sub { font-size: 11px; color: var(--muted); margin-top: 4px; font-variant-numeric: tabular-nums; line-height: 1.5; }
.dd-sub b { color: var(--bronze-bright); font-weight: 600; }
.dd-active { color: var(--green); font-weight: 600; font-size: 10px; padding: 1px 5px;
  background: rgba(55,194,106,.10); border: 1px solid rgba(55,194,106,.30); border-radius: 4px; }
.dd-type-tag.locked {
  background: rgba(140,111,74,.16); border-color: rgba(140,111,74,.32); color: var(--bronze-bright);
}

/* ============ EDGE ANALYSIS ============ */
.edge-analysis-card { background: var(--surface); border: 1px solid var(--border2); }
.edge-analysis-title {
  font-family: 'Oswald', sans-serif; font-size: 13px; font-weight: 500;
  letter-spacing: .08em; text-transform: uppercase;
  background: linear-gradient(90deg, var(--bronze-2), var(--bronze-bright));
  -webkit-background-clip: text; background-clip: text; color: transparent;
  margin-bottom: 12px;
}
.edge-summary { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.edge-sum-line {
  font-size: 13px; line-height: 1.5; padding: 9px 12px; border-radius: 8px;
  border: 1px solid var(--border); background: rgba(255,255,255,0.02);
}
.edge-sum-line b { font-weight: 700; }
.edge-sum-line.pos  { border-color: rgba(55,194,106,.3); background: rgba(55,194,106,.06); }
.edge-sum-line.neg  { border-color: rgba(229,84,75,.3);  background: rgba(229,84,75,.06); }
.edge-sum-line.warn { border-color: rgba(184,154,106,.3); background: rgba(184,154,106,.06); }
.edge-sum-line.muted { color: var(--muted); font-style: italic; }
.edge-tabs { display: flex; flex-direction: column; gap: 8px; }
.edge-section {
  background: var(--surface2); border: 1px solid var(--border);
  border-radius: 8px; overflow: hidden;
}
.edge-section > summary {
  padding: 10px 14px; cursor: pointer; font-size: 12.5px; font-weight: 600;
  color: var(--text-secondary); user-select: none; list-style: none;
  display: flex; align-items: center; gap: 6px;
}
.edge-section > summary::-webkit-details-marker { display: none; }
.edge-section[open] > summary { color: var(--text-primary); border-bottom: 1px solid var(--border); }
.edge-table { margin: 0; }
.edge-empty { padding: 12px 14px; font-size: 12px; color: var(--muted); }

/* ============ TAGS ============ */
.entry-tags { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0; }
.tag-pill {
  font-size: 10.5px; padding: 2px 8px; border-radius: 12px;
  font-weight: 600; letter-spacing: .03em;
  background: rgba(208,196,168,.08); border: 1px solid rgba(208,196,168,.18);
  color: var(--text-secondary);
}
.tag-pill.tag-plan-respecté, .tag-pill.tag-patient { background: rgba(55,194,106,.12); border-color: rgba(55,194,106,.28); color: var(--green); }
.tag-pill.tag-fomo, .tag-pill.tag-revenge, .tag-pill.tag-hors-plan, .tag-pill.tag-oversize { background: rgba(229,84,75,.12); border-color: rgba(229,84,75,.28); color: var(--red); }
.tag-pill.tag-early-exit, .tag-pill.tag-news { background: rgba(255,190,60,.10); border-color: rgba(255,190,60,.25); color: #fbbe3c; }
.chip.tag-chip { font-size: 11px; }
.chip.tag-chip.sel { background: rgba(184,154,106,.22); border-color: var(--bronze-bright); color: var(--bronze-bright); }

/* ============ CSV IMPORT ============ */
.modal-wide { max-width: 680px; }
.csv-drop-zone {
  border: 2px dashed var(--border2); border-radius: 12px;
  padding: 32px 20px; text-align: center; cursor: pointer;
  color: var(--muted); font-size: 14px; transition: border-color .2s, background .2s;
}
.csv-drop-zone.active, .csv-drop-zone:hover { border-color: var(--bronze-bright); background: rgba(184,154,106,.05); color: var(--text-primary); }
.csv-formats-hint { font-size: 11px; opacity: .5; margin-top: 6px; }
.csv-msg { padding: 10px 12px; border-radius: 8px; font-size: 12.5px; background: var(--surface2); margin-bottom: 8px; }
.csv-msg.ok { background: rgba(55,194,106,.08); border: 1px solid rgba(55,194,106,.2); }
.csv-table-wrap { max-height: 280px; overflow-y: auto; border-radius: 8px; border: 1px solid var(--border); }

/* Option « remplacer la période » */
.csv-replace { display: flex; align-items: flex-start; gap: 8px; margin: 8px 0; padding: 9px 11px; border-radius: 8px;
  background: rgba(184,154,106,.07); border: 1px solid rgba(184,154,106,.22); font-size: 12.5px; color: var(--text-primary); cursor: pointer; }
.csv-replace input { width: 15px; height: 15px; margin: 1px 0 0; accent-color: var(--bronze-bright, #b89a6a); cursor: pointer; flex-shrink: 0; }

/* Liste des imports précédents */
.csv-imports-list { margin-top: 12px; }
.csv-imports-head { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); margin-bottom: 8px; }
.csv-import-row { display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 9px 11px; border-radius: 8px; border: 1px solid var(--border); background: var(--surface2); margin-bottom: 6px; }
.csv-import-name { font-size: 13px; font-weight: 600; color: var(--text-primary); word-break: break-all; }
.csv-import-sub { font-size: 11.5px; color: var(--muted); margin-top: 2px; }
.csv-import-del { flex-shrink: 0; padding: 5px 11px; border-radius: 7px; font-size: 12px; cursor: pointer;
  background: transparent; color: var(--red); border: 1px solid rgba(229,72,77,.35); transition: background .12s, color .12s; }
.csv-import-del:hover { background: var(--red); color: #fff; }

/* ============ TRADE FORM ============ */
.chip-dir { font-size: 13px; font-weight: 700; padding: 8px 20px; }
.chip-dir.long.sel { background: rgba(55,194,106,.2); border-color: var(--green); color: var(--green); }
.chip-dir.short.sel { background: rgba(229,84,75,.2); border-color: var(--red); color: var(--red); }
.trade-details-section { margin-bottom: 12px; border-radius: 8px; border: 1px solid var(--border); overflow: hidden; }
.trade-details-section > summary { padding: 10px 14px; cursor: pointer; font-size: 12px; color: var(--muted); user-select: none; list-style: none; }
.trade-details-section > summary::-webkit-details-marker { display: none; }
.trade-details-section[open] > summary { color: var(--text-secondary); border-bottom: 1px solid var(--border); }
.trade-details-body { padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.form-grid.cols-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }

/* ============ SETUP NAMES ============ */
.setup-names-grid { display: flex; flex-direction: column; gap: 8px; }
.setup-name-row { display: flex; align-items: center; gap: 10px; }
.setup-name-num {
  width: 28px; height: 28px; border-radius: 6px; flex-shrink: 0;
  background: var(--surface2); border: 1px solid var(--border);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; color: var(--bronze-bright);
}
.setup-name-row input { flex: 1; }

/* ============ SAMPLE SIZE WARNING ============ */
.sig-warning {
  font-size: 11.5px; color: #fbbe3c; padding: 7px 12px;
  background: rgba(255,190,60,.07); border-radius: 6px; margin-bottom: 8px;
  border: 1px solid rgba(255,190,60,.18);
}
.insig-row { opacity: .65; }
.insig-badge {
  display: inline-block; font-size: 9px; background: rgba(255,190,60,.15);
  border: 1px solid rgba(255,190,60,.3); color: #fbbe3c;
  border-radius: 4px; padding: 0 4px; margin-left: 4px; vertical-align: middle;
  font-weight: 700;
}

/* ============ CHART THUMBNAIL ============ */
.entry-chart { margin: 6px 0; }
.chart-thumb {
  max-width: 100%; max-height: 200px; border-radius: 8px;
  border: 1px solid var(--border2); cursor: zoom-in;
  transition: transform .2s; display: block;
}
.chart-thumb:hover { transform: scale(1.02); }
.chart-link { font-size: 12px; color: var(--bronze-bright); }

/* ============ PLAYBOOK ============ */
.playbook-card {
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 14px; margin-bottom: 16px; overflow: hidden;
  transition: border-color .2s;
}
.playbook-card:hover { border-color: var(--border2); }
.playbook-header {
  display: flex; align-items: center; gap: 14px;
  padding: 16px 18px; border-bottom: 1px solid var(--border);
  background: var(--surface2); flex-wrap: wrap;
}
.playbook-num {
  width: 36px; height: 36px; flex-shrink: 0; border-radius: 10px;
  background: linear-gradient(135deg, var(--bronze-2), var(--bronze-bright));
  display: flex; align-items: center; justify-content: center;
  font-family: 'Oswald', sans-serif; font-size: 17px; font-weight: 700; color: #0c0c0e;
}
.playbook-title-block { flex: 1; min-width: 180px; }
.playbook-name-input {
  width: 100%; background: transparent; border: none; border-bottom: 1px solid var(--border);
  color: var(--text-primary); font-size: 15px; font-weight: 600; padding: 4px 0;
  outline: none; transition: border-color .2s;
}
.playbook-name-input:focus { border-color: var(--bronze-bright); }
.playbook-name-input::placeholder { color: var(--muted); font-weight: 400; }
.playbook-live-stats { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.pstat {
  font-size: 11.5px; font-weight: 600; padding: 3px 9px;
  border-radius: 20px; background: var(--surface); border: 1px solid var(--border);
  color: var(--text-secondary);
}
.pstat.pos { background: rgba(55,194,106,.1); border-color: rgba(55,194,106,.25); color: var(--green); }
.pstat.neg { background: rgba(229,84,75,.1); border-color: rgba(229,84,75,.25); color: var(--red); }
.pstat.warn { background: rgba(255,190,60,.1); border-color: rgba(255,190,60,.25); color: #fbbe3c; }
.playbook-body {
  display: grid; grid-template-columns: 1fr 260px; gap: 0;
}
@media (max-width: 720px) { .playbook-body { grid-template-columns: 1fr; } }
.playbook-fields { padding: 16px 18px; display: flex; flex-direction: column; gap: 12px; }
.playbook-field label { display: block; font-size: 11.5px; font-weight: 600; color: var(--muted); margin-bottom: 5px; letter-spacing: .04em; }
.pb-edit {
  width: 100%; background: var(--surface2); border: 1px solid var(--border);
  border-radius: 8px; color: var(--text-primary); font-size: 12.5px;
  padding: 8px 10px; resize: vertical; outline: none;
  transition: border-color .2s; font-family: inherit; line-height: 1.5;
}
.pb-edit:focus { border-color: var(--bronze-bright); }
.playbook-chart-block {
  padding: 16px 18px; border-left: 1px solid var(--border);
  display: flex; flex-direction: column; gap: 8px;
}
.playbook-chart-block label { font-size: 11.5px; font-weight: 600; color: var(--muted); display: block; }
.pb-chart-input {
  width: 100%; background: var(--surface2); border: 1px solid var(--border);
  border-radius: 8px; padding: 6px 10px; color: var(--text-primary);
  font-size: 11.5px; outline: none;
}
.pb-chart-input:focus { border-color: var(--bronze-bright); }
.pb-chart-thumb {
  width: 100%; border-radius: 8px; border: 1px solid var(--border2);
  margin-top: 6px; cursor: zoom-in;
}
.pb-chart-empty {
  margin-top: 8px; padding: 24px 12px; text-align: center;
  border-radius: 8px; border: 1px dashed var(--border);
  font-size: 11.5px; color: var(--muted);
}

/* ============ VUE PAR JOUR ============ */
.view-toggle {
  display: flex; border: 1px solid var(--border); border-radius: 8px;
  overflow: hidden; height: 36px;
}
.vtbtn {
  padding: 0 13px; background: transparent; border: none; cursor: pointer;
  font-size: 12px; color: var(--muted); font-family: inherit;
  transition: background .15s, color .15s;
}
.vtbtn.active { background: var(--surface2); color: var(--text-primary); font-weight: 600; }
.day-group { margin-bottom: 10px; border-radius: 12px; overflow: hidden; border: 1px solid var(--border); }
.day-group-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 12px 16px; cursor: pointer; background: var(--surface2);
  list-style: none; user-select: none;
}
.day-group-header::-webkit-details-marker { display: none; }
.day-group[open] .day-group-header { border-bottom: 1px solid var(--border); }
.day-date { font-weight: 700; font-size: 13px; color: var(--text-primary); }
.day-stats { display: flex; gap: 12px; align-items: center; }
.day-pnl { font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; }
.day-meta { font-size: 12px; color: var(--muted); }
.day-trades { padding: 8px; display: flex; flex-direction: column; gap: 6px; }

/* ================================================================
   INSTRUMENT AUTOCOMPLETE
   ================================================================ */
.instrument-suggestions {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 200;
  background: var(--surface);
  border: 1px solid var(--border2);
  border-radius: 8px;
  margin-top: 3px;
  overflow: hidden;
  box-shadow: 0 8px 24px -6px rgba(0,0,0,0.6);
}
.instr-item {
  padding: 8px 12px; font-size: 13px; cursor: pointer;
  color: var(--text); display: flex; align-items: center; justify-content: space-between;
  transition: background 0.12s;
  font-family: 'JetBrains Mono', monospace; letter-spacing: -0.02em;
}
.instr-item:hover,
.instr-item.hl { background: rgba(184,154,106,0.1); }
.instr-used {
  font-size: 10px; color: var(--bronze); font-family: 'Space Grotesk', sans-serif;
  background: rgba(184,154,106,0.1); padding: 1px 6px; border-radius: 4px;
}

/* ================================================================
   FAB — bouton flottant ajout rapide
   ================================================================ */
.fab {
  position: fixed;
  bottom: 2rem; right: 2rem;
  width: 54px; height: 54px;
  border-radius: 50%;
  background: linear-gradient(145deg, #e7e8ec, #b9bac0 50%, #8f9096);
  color: #15140f;
  border: 1px solid rgba(255,255,255,0.28);
  font-size: 28px; font-weight: 300; line-height: 1;
  cursor: pointer;
  z-index: 50;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 8px 28px -6px rgba(0,0,0,0.65), inset 0 1px 0 rgba(255,255,255,0.55);
  transition: transform 0.22s cubic-bezier(0.16,1,0.3,1), box-shadow 0.22s;
  overflow: hidden;
  position: fixed;
}
.fab::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, var(--bronze), transparent);
  opacity: 0.9;
}
.fab:hover {
  transform: scale(1.1) translateY(-2px);
  box-shadow: 0 14px 36px -6px rgba(0,0,0,0.7), 0 0 24px -8px var(--gold-glow), inset 0 1px 0 rgba(255,255,255,0.6);
}
.fab:active { transform: scale(0.94); }
@media (max-width: 700px) { .fab { bottom: 1.2rem; right: 1.2rem; width: 50px; height: 50px; font-size: 26px; } }

/* ================================================================
   SEARCH JOURNAL
   ================================================================ */
.journal-search-wrap { margin-bottom: 12px; }
.journal-search {
  width: 100%;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text);
  font-family: 'Space Grotesk', system-ui, sans-serif;
  font-size: 13.5px;
  padding: 10px 16px;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.journal-search:focus {
  outline: none;
  border-color: rgba(184,154,106,0.45);
  box-shadow: 0 0 0 2px rgba(184,154,106,0.1);
}
.journal-search::placeholder { color: var(--muted); }

/* ================================================================
   PREMIUM DETAILS — micro-finitions visuelles
   ================================================================ */

/* Bordure gauche colorée par direction de trade */
.entry-card.dir-long  { border-left: 2.5px solid rgba(55,194,106,0.5); }
.entry-card.dir-short { border-left: 2.5px solid rgba(229,84,75,0.45); }
.entry-card.dir-long:hover  { border-left-color: var(--green); box-shadow: -3px 0 22px -4px rgba(55,194,106,0.28); transform: translateX(3px); }
.entry-card.dir-short:hover { border-left-color: var(--red);   box-shadow: -3px 0 22px -4px rgba(229,84,75,0.24);  transform: translateX(3px); }

/* Teinte de fond selon P&L */
.entry-card.pnl-pos { background: linear-gradient(160deg, rgba(55,194,106,0.04) 0%, var(--surface) 45%); }
.entry-card.pnl-neg { background: linear-gradient(160deg, rgba(229,84,75,0.035) 0%, var(--surface) 45%); }

/* Shimmer sur bouton chrome au hover */
.btn-primary { overflow: hidden; }
.btn-primary::after {
  content: '';
  position: absolute; top: -50%; left: -80%;
  width: 42%; height: 200%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.32), transparent);
  transform: skewX(-18deg);
  transition: left 0.9s ease;
  pointer-events: none;
}
.btn-primary:hover::after { left: 140%; }

/* Shimmer sur btn-calc aussi */
.btn-calc::after {
  content: '';
  position: absolute; top: -50%; left: -80%;
  width: 42%; height: 200%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
  transform: skewX(-18deg);
  transition: left 0.9s ease;
  pointer-events: none;
}
.btn-calc:hover::after { left: 140%; }

/* Stat card — top border qui shimmer en boucle */
@keyframes shimmerLine {
  0%   { background-position: -300% center; }
  100% { background-position:  300% center; }
}
.stat-card::before {
  background: linear-gradient(90deg, transparent, var(--gold-bright), transparent);
  opacity: 0.55;
}

/* DD bar danger — pulse rouge */
@keyframes dangerPulse {
  0%, 100% { box-shadow: 0 0 4px rgba(229,84,75,0.35); }
  50%       { box-shadow: 0 0 16px rgba(229,84,75,0.75); }
}
.dd-bar-fill.danger { animation: dangerPulse 6s ease-in-out infinite; }

/* Payout bar validée — shimmer vert-or */
@keyframes barShimmer {
  0%   { background-position: -200% center; }
  100% { background-position:  200% center; }
}
.payout-bar-fill.ok {
  background: linear-gradient(90deg, var(--emerald), var(--gold-bright));
  box-shadow: 0 0 10px -2px rgba(55,194,106,0.45);
}

/* Section title underline — slide-in au changement d'onglet */
.section-title::after { width: 0; opacity: 0; transition: none; }
@keyframes titleUnderline {
  from { width: 0; opacity: 0; }
  to   { width: 44px; opacity: 1; }
}
.section.active .section-title::after {
  animation: titleUnderline 0.6s cubic-bezier(0.16,1,0.3,1) 0.1s forwards;
}

/* Nav active — glow texte bronze */
.nav-item.active { text-shadow: 0 0 20px rgba(184,154,106,0.55); }

/* Affirmation card hover — box-shadow en plus */
.aff-card:hover { box-shadow: -2px 0 16px -4px rgba(184,154,106,0.22); }

/* Modal — ombre plus profonde */
.modal {
  box-shadow: 0 32px 100px -20px rgba(0,0,0,0.85),
              0 0 0 1px var(--border),
              0 0 60px -30px var(--gold-glow);
}

/* Focus — ring plus fin et plus élégant */
input:focus, textarea:focus, select:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 2px rgba(184,154,106,0.14), inset 0 0 0 1px rgba(184,154,106,0.07);
}

/* Playbook card hover */
.playbook-card:hover {
  border-color: rgba(184,154,106,0.32);
  box-shadow: 0 8px 32px -8px rgba(0,0,0,0.55), 0 0 24px -10px var(--gold-glow);
}

/* Account name — espacement négatif pour look terminal */
.account-name { letter-spacing: -0.02em; }

/* Day group header — JetBrains Mono sur les chiffres */
.day-pnl { font-family: 'JetBrains Mono', monospace; letter-spacing: -0.03em; }

/* View toggle bouton actif */
.vtbtn.active {
  background: linear-gradient(135deg, var(--surface2), rgba(184,154,106,0.08));
  color: var(--gold-bright);
  border-right: 1px solid rgba(184,154,106,0.2);
}

/* ================================================================
   DATE INPUT — WEBKIT PREMIUM STYLING
   ================================================================ */
input[type="date"]::-webkit-calendar-picker-indicator {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23b89a6a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 14px;
  cursor: pointer;
  opacity: 0.7;
  transition: opacity 0.2s;
}
input[type="date"]:hover::-webkit-calendar-picker-indicator { opacity: 1; }
input[type="date"]::-webkit-datetime-edit { color: var(--text); padding: 0 2px; }
input[type="date"]::-webkit-datetime-edit-text { color: var(--muted); padding: 0 2px; }
input[type="date"]::-webkit-datetime-edit-month-field,
input[type="date"]::-webkit-datetime-edit-day-field,
input[type="date"]::-webkit-datetime-edit-year-field {
  color: var(--text); padding: 1px 3px; border-radius: 3px;
}
input[type="date"]::-webkit-datetime-edit-month-field:focus,
input[type="date"]::-webkit-datetime-edit-day-field:focus,
input[type="date"]::-webkit-datetime-edit-year-field:focus {
  background: rgba(184,154,106,0.15); outline: none;
}

/* ================================================================
   LIGHT MODE
   ================================================================ */
html[data-theme="light"] {
  --bg: #edeae4;          /* fond page plus sombre → contraste chips/cards accru */
  --bg-deep: #e4e0d8;
  --surface: #faf8f4;     /* cards/modals clairement distinctes du fond */
  --surface2: rgba(0,0,0,0.03);
  --surface2-solid: #f5f2ec;
  --surface3: #e8e4dc;    /* chips/filtres nettement différents du fond */
  --border: rgba(30,25,18,0.1);
  --border2: rgba(30,25,18,0.18);
  --text: #1a1714;
  --muted: #645d54;   /* AA : ~6:1 sur fond clair (était #7a736b = 3,65:1, échec) */
  --muted2: #4e4840;
  --bronze: #7d6437;  /* AA : ~5,3:1 sur blanc (était #9a7d4e = 3,89:1, échec) */
  --bronze-2: #7a6038;
  --bronze-bright: #c9a46a;
  --chrome: #4a4b50;
  --gold: #7d6437;
  --gold-bright: #c9a46a;
  --gold-dim: rgba(154,125,78,0.1);
  --gold-glow: rgba(154,125,78,0.22);
  --emerald: #238a48;
  --emerald-dim: rgba(35,138,72,0.1);
  --emerald-glow: rgba(35,138,72,0.14);
  --green: #238a48;
  --green-dim: rgba(35,138,72,0.1);
  --red: #c43228;
  --red-dim: rgba(196,50,40,0.09);
  --amber: #a87218;
  --amber-dim: rgba(168,114,24,0.1);
  --accent: var(--bronze);
  --accent-dim: var(--gold-dim);
}
html[data-theme="light"] body { background: var(--bg); }
html[data-theme="light"] body::before { opacity: 0.18; }
html[data-theme="light"] body::after  { opacity: 0.12; }
html[data-theme="light"] .sidebar {
  background: #f5f2ec;    /* plus clair que --bg edeae4 → sidebar ressort clairement */
  border-right: 1px solid rgba(30,25,18,0.12);
}
html[data-theme="light"] .card,
html[data-theme="light"] .stat-card,
html[data-theme="light"] .account-card {
  background: linear-gradient(145deg, #ffffff, #f8f4ee);
  box-shadow: 0 2px 12px rgba(0,0,0,0.06), 0 0 0 0.5px var(--border);
}
html[data-theme="light"] .modal {
  background: linear-gradient(160deg, #ffffff, #f5f0e8);
  border-color: rgba(154,125,78,0.25);
}
html[data-theme="light"] .modal-overlay { background: rgba(200,195,185,0.7); }
html[data-theme="light"] input,
html[data-theme="light"] textarea,
html[data-theme="light"] select { background: #faf8f4; border-color: var(--border2); color: var(--text); }
html[data-theme="light"] .chip { background: #faf8f4; border-color: rgba(30,25,18,0.16); color: var(--muted); }
html[data-theme="light"] .entry-card { background: #ffffff; }
html[data-theme="light"] .aff-daily { box-shadow: 0 0 40px -10px var(--gold-glow); }
html[data-theme="light"] .btn-primary { background: linear-gradient(180deg, #1e1e1e, #000); color: #fff; }
html[data-theme="light"] .btn-ghost { border-color: var(--border2); color: var(--muted); }
html[data-theme="light"] .btn-ghost:hover { border-color: var(--bronze); color: var(--bronze); }
html[data-theme="light"] .section-title { color: var(--text); }
html[data-theme="light"] ::-webkit-scrollbar-track { background: var(--bg-deep); }
html[data-theme="light"] ::-webkit-scrollbar-thumb { background: rgba(154,125,78,0.3); }

/* ================================================================
   THEME TOGGLE BUTTON
   ================================================================ */
.theme-toggle {
  position: fixed;
  top: 18px; right: 18px;
  z-index: 999;
  width: 42px; height: 42px;
  border-radius: 50%;
  border: 1px solid var(--border2);
  background: linear-gradient(145deg, var(--surface), var(--bg-deep));
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  color: var(--text2);
  transition: all 0.3s cubic-bezier(0.16,1,0.3,1);
  box-shadow: 0 2px 12px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.05);
  overflow: hidden;
}
.theme-toggle:hover {
  border-color: rgba(201,169,110,0.5);
  color: var(--accent);
  box-shadow: 0 4px 20px rgba(0,0,0,0.35), 0 0 16px -4px var(--gold-glow), inset 0 1px 0 rgba(255,255,255,0.08);
  transform: translateY(-1px) rotate(15deg);
}
.theme-toggle:active { transform: translateY(0) scale(0.94); }
.theme-toggle svg { display: block; }
.theme-icon {
  position: absolute;
  display: flex; align-items: center; justify-content: center;
  transition: opacity 0.35s cubic-bezier(0.16,1,0.3,1), transform 0.35s cubic-bezier(0.16,1,0.3,1);
}
html[data-theme="dark"]  .theme-icon.sun  { opacity: 0; transform: rotate(-90deg) scale(0.5); }
html[data-theme="dark"]  .theme-icon.moon { opacity: 1; transform: rotate(0) scale(1); }
html[data-theme="light"] .theme-icon.moon { opacity: 0; transform: rotate(90deg) scale(0.5); }
html[data-theme="light"] .theme-icon.sun  { opacity: 1; transform: rotate(0) scale(1); }
html[data-theme="light"] .theme-toggle {
  background: linear-gradient(145deg, #fff8ec, #f0e8d6);
  border-color: rgba(139,105,20,0.25);
}

/* ================================================================
   PANNEAU AFFILIÉS PROP FIRMS
   ================================================================ */
.promo-tab {
  position: fixed;
  right: -1px; top: 50%;
  transform: translateY(-50%);
  z-index: 40;
  writing-mode: vertical-rl;
  background: linear-gradient(180deg, #1e1e1e, #000);
  color: rgba(255,255,255,0.85);
  border: 1px solid rgba(255,255,255,0.12);
  border-right: none;
  border-radius: 8px 0 0 8px;
  padding: 14px 8px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: -4px 0 16px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.12);
}
.promo-tab:hover { background: linear-gradient(180deg, #2a2a2a, #0d0d0d); color: var(--gold-bright); }
.promo-tab .promo-tab-icon { writing-mode: horizontal-tb; font-size: 14px; margin-bottom: 4px; }

.promo-panel {
  position: fixed;
  right: -320px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 41;
  width: 300px;
  background: linear-gradient(160deg, #131313, #000);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 14px 0 0 14px;
  padding: 20px 18px;
  box-shadow: -8px 0 40px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,255,0.08);
  transition: right 0.4s cubic-bezier(0.16,1,0.3,1);
}
.promo-panel.open { right: 0; }
.promo-panel-title {
  font-family: 'Oswald', sans-serif;
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: rgba(255,255,255,0.4); margin-bottom: 14px;
}
.promo-close {
  position: absolute; top: 14px; right: 14px;
  background: none; border: none; color: rgba(255,255,255,0.3);
  cursor: pointer; font-size: 14px; padding: 4px;
  transition: color 0.15s;
}
.promo-close:hover { color: rgba(255,255,255,0.8); }
.promo-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.09);
  border-radius: 10px;
  padding: 14px;
  margin-bottom: 10px;
  position: relative;
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.promo-card:hover {
  border-color: rgba(184,154,106,0.35);
  box-shadow: 0 0 20px -8px var(--gold-glow);
}
.promo-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(184,154,106,0.4), transparent);
}
.promo-firm { font-size: 13px; font-weight: 700; color: rgba(255,255,255,0.9); margin-bottom: 4px; }
.promo-deal {
  font-family: 'JetBrains Mono', monospace;
  font-size: 28px; font-weight: 600; letter-spacing: -0.04em;
  background: linear-gradient(135deg, var(--bronze), var(--gold-bright));
  -webkit-background-clip: text; background-clip: text; color: transparent;
  line-height: 1; margin: 6px 0 2px;
}
.promo-label { font-size: 11px; color: rgba(255,255,255,0.4); margin-bottom: 10px; }
.promo-cta {
  display: block; width: 100%;
  background: linear-gradient(180deg, #1e1e1e, #000);
  color: rgba(255,255,255,0.85);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 7px; padding: 8px;
  font-size: 12px; font-weight: 600; cursor: pointer;
  letter-spacing: 0.05em; text-align: center;
  transition: all 0.2s;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.06), inset 0 1px 0 rgba(255,255,255,0.1);
  text-decoration: none;
}
.promo-cta:hover {
  border-color: rgba(184,154,106,0.4);
  color: var(--gold-bright);
  box-shadow: 0 0 16px -4px var(--gold-glow), inset 0 1px 0 rgba(255,255,255,0.14);
}
@media (max-width: 900px) {
  /* Panel dispo sur mobile : largeur plafonnée + caché hors-écran quand fermé, slide-in à l'ouverture */
  .promo-panel { width: min(300px, 86vw); right: calc(-1 * (min(300px, 86vw) + 24px)); }
  .promo-panel.open { right: 0; }
}

/* ================================================================
   DISCRETIONARY PLAYBOOK
   ================================================================ */
.playbook-tabs { display: flex; gap: 0; margin-bottom: 20px; border-radius: 10px; overflow: hidden; border: 1px solid var(--border2); }
.pb-tab {
  flex: 1; padding: 11px; background: transparent; border: none;
  color: var(--muted); font-family: 'Oswald', sans-serif;
  font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.1em;
  cursor: pointer; transition: all 0.18s; position: relative;
}
.pb-tab.active {
  background: linear-gradient(180deg, #1e1e1e, #000);
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.12);
}
.pb-tab:not(.active):hover { background: var(--gold-dim); color: var(--text); }

.pb-add-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 12px;
  background: rgba(184,154,106,0.05);
  border: 1px dashed rgba(184,154,106,0.25);
  border-radius: 10px; cursor: pointer;
  color: var(--bronze); font-size: 13px; font-weight: 600;
  transition: all 0.2s; margin-top: 8px;
}
.pb-add-btn:hover { background: rgba(184,154,106,0.1); border-color: rgba(184,154,106,0.45); }

.pb-delete-btn {
  background: none; border: none; color: var(--muted); cursor: pointer;
  font-size: 14px; padding: 4px 7px; border-radius: 5px; transition: all 0.15s;
}
.pb-delete-btn:hover { color: var(--red); background: var(--red-dim); }

/* Discretionary grade section */
.disc-grade-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 18px; }
@media (max-width: 700px) { .disc-grade-grid { grid-template-columns: repeat(3, 1fr); } }
.disc-grade-card {
  border-radius: 10px; padding: 14px 12px;
  border-left: 3px solid var(--border2);
  background: var(--surface);
  border: 1px solid var(--border);
  border-left-width: 3px;
  position: relative; overflow: hidden;
  transition: box-shadow 0.2s;
}
.disc-grade-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.3); }
.disc-grade-badge {
  font-family: 'Oswald', sans-serif; font-size: 22px; font-weight: 700;
  margin-bottom: 10px; display: block;
}
.disc-grade-stat { font-size: 11px; color: var(--muted); margin-bottom: 3px; }
.disc-grade-val { font-family: 'JetBrains Mono', monospace; font-size: 14px; font-weight: 600; letter-spacing: -0.02em; }
.disc-grade-card.ga { border-left-color: #37c26a; }
.disc-grade-card.ga .disc-grade-badge { color: #37c26a; }
.disc-grade-card.ga2 { border-left-color: #5ed68a; }
.disc-grade-card.ga2 .disc-grade-badge { color: #5ed68a; }
.disc-grade-card.gbp { border-left-color: var(--bronze); }
.disc-grade-card.gbp .disc-grade-badge { color: var(--bronze-bright); }
.disc-grade-card.gb  { border-left-color: var(--muted); }
.disc-grade-card.gb  .disc-grade-badge { color: var(--muted2); }
.disc-grade-card.gc  { border-left-color: var(--red); }
.disc-grade-card.gc  .disc-grade-badge { color: var(--red); }

.disc-edge-score {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 18px; border-radius: 10px;
  background: linear-gradient(135deg, var(--gold-dim), rgba(55,194,106,0.05));
  border: 1px solid var(--border2); margin-bottom: 16px;
}
.disc-edge-score-num {
  font-family: 'JetBrains Mono', monospace; font-size: 36px; font-weight: 600;
  letter-spacing: -0.04em; line-height: 1;
}
.disc-edge-score-label { font-size: 12px; color: var(--muted); line-height: 1.5; }
.disc-edge-verdict { font-size: 14px; font-weight: 600; }

.disc-empty {
  text-align: center; padding: 40px 20px;
  border: 1px dashed var(--border2); border-radius: 12px; margin: 12px 0;
}
.disc-empty-num {
  font-family: 'JetBrains Mono', monospace; font-size: 48px; font-weight: 700;
  color: var(--bronze); opacity: 0.3; line-height: 1; margin-bottom: 8px;
}
.disc-empty-bar {
  width: 100%; height: 6px; background: var(--surface3);
  border-radius: 3px; overflow: hidden; margin: 14px 0 8px;
}
.disc-empty-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--bronze), var(--gold-bright));
  border-radius: 3px; transition: width 0.5s cubic-bezier(0.16,1,0.3,1);
}

/* ================================================================
   THEME TRANSITION — switch fluide light/dark
   ================================================================ */
body, .sidebar, .card, .stat-card, .account-card, .modal,
.entry-card, .playbook-card, .aff-card, .aff-daily,
input, textarea, select, .chip, .badge {
  transition: background-color 0.35s ease, color 0.25s ease,
              border-color 0.25s ease, box-shadow 0.25s ease;
}

/* ================================================================
   PROMO TAB — glow pulsant "unseen"
   ================================================================ */
@keyframes promoGlow {
  0%, 100% {
    box-shadow: -4px 0 16px rgba(0,0,0,0.4);
    border-color: rgba(255,255,255,0.12);
    color: rgba(255,255,255,0.85);
  }
  50% {
    box-shadow: -6px 0 28px rgba(0,0,0,0.5), -2px 0 20px rgba(184,154,106,0.5);
    border-color: rgba(184,154,106,0.6);
    color: var(--gold-bright);
  }
}
.promo-tab.unseen {
  /* glow statique : le pulse box-shadow repaintait en continu un onglet fixe */
  box-shadow: -6px 0 28px rgba(0,0,0,0.5), -2px 0 20px rgba(184,154,106,0.5);
  border-color: rgba(184,154,106,0.6);
  color: var(--gold-bright);
}
/* Petit point rouge "nouveau" */
.promo-tab.unseen::after {
  content: '';
  position: absolute;
  top: 8px; right: 6px;
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 6px var(--red);
  animation: pulse 2s ease-in-out infinite;
}

/* ================================================================
   LIGHT MODE — OVERRIDE COMPLET (remplace les hardcodes)
   ================================================================ */

/* Auras : bien plus subtiles sur fond clair */
html[data-theme="light"] body::before {
  background: radial-gradient(circle, rgba(184,154,106,0.12) 0%, transparent 65%);
  opacity: 0.4;
}
html[data-theme="light"] body::after {
  background: radial-gradient(circle, rgba(154,125,78,0.08) 0%, transparent 65%);
  opacity: 0.25;
}

/* Sidebar */
html[data-theme="light"] .sidebar {
  background: rgba(248,245,240,0.96) !important;
  border-right-color: rgba(30,25,18,0.1);
}
html[data-theme="light"] .nav-item { color: var(--muted); }
html[data-theme="light"] .nav-item:hover { color: var(--text); background: rgba(154,125,78,0.07); }
html[data-theme="light"] .nav-item.active { color: var(--bronze); background: linear-gradient(90deg, rgba(154,125,78,0.12), transparent); }

/* Cards */
html[data-theme="light"] .card {
  background: linear-gradient(145deg, #ffffff, #f9f6f1) !important;
  border-color: rgba(30,25,18,0.09);
  box-shadow: 0 2px 12px rgba(0,0,0,0.05);
}
html[data-theme="light"] .card:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,0.08);
}
html[data-theme="light"] .account-card {
  background: linear-gradient(145deg, #ffffff, #f9f6f1) !important;
  border-color: rgba(30,25,18,0.09);
  box-shadow: 0 2px 14px rgba(0,0,0,0.05);
}
html[data-theme="light"] .stat-card {
  background: linear-gradient(145deg, #ffffff, #f9f6f1) !important;
  border-color: rgba(30,25,18,0.09);
  box-shadow: 0 2px 10px rgba(0,0,0,0.04);
}
html[data-theme="light"] .entry-card {
  background: #ffffff !important;
  border-color: rgba(30,25,18,0.08);
}
html[data-theme="light"] .entry-card.pnl-pos { background: linear-gradient(160deg, rgba(35,138,72,0.04), #ffffff) !important; }
html[data-theme="light"] .entry-card.pnl-neg { background: linear-gradient(160deg, rgba(196,50,40,0.03), #ffffff) !important; }
html[data-theme="light"] .playbook-card {
  background: #ffffff !important;
  border-color: rgba(30,25,18,0.09);
}
html[data-theme="light"] .playbook-header { background: #f8f5f0; }

/* Modal */
html[data-theme="light"] .modal-overlay { background: rgba(180,170,155,0.7); }
html[data-theme="light"] .modal {
  background: linear-gradient(160deg, #ffffff, #f8f4ee) !important;
  border-color: rgba(154,125,78,0.2);
  box-shadow: 0 24px 80px rgba(0,0,0,0.15), 0 0 0 1px rgba(154,125,78,0.12);
}

/* Formulaires */
html[data-theme="light"] input[type="text"],
html[data-theme="light"] input[type="number"],
html[data-theme="light"] input[type="url"],
html[data-theme="light"] input[type="time"],
html[data-theme="light"] input[type="date"],
html[data-theme="light"] textarea,
html[data-theme="light"] select {
  background: #faf8f4 !important;
  border-color: rgba(30,25,18,0.16) !important;
  color: var(--text) !important;
}
html[data-theme="light"] input::placeholder,
html[data-theme="light"] textarea::placeholder { color: rgba(30,25,18,0.35); }
html[data-theme="light"] input[type="date"]::-webkit-datetime-edit { color: var(--text); }
html[data-theme="light"] input[type="date"]::-webkit-datetime-edit-month-field,
html[data-theme="light"] input[type="date"]::-webkit-datetime-edit-day-field,
html[data-theme="light"] input[type="date"]::-webkit-datetime-edit-year-field { color: var(--text); }

/* Preset search */
html[data-theme="light"] .preset-search-block {
  background: linear-gradient(180deg, rgba(154,125,78,0.07), rgba(154,125,78,0.02));
}
html[data-theme="light"] #preset-search {
  background: #faf8f4 !important;
  border-color: rgba(154,125,78,0.25) !important;
  color: var(--text) !important;
}
html[data-theme="light"] .preset-item {
  background: #faf8f4 !important;
  border-color: rgba(30,25,18,0.09);
}
html[data-theme="light"] .preset-item:hover { background: rgba(154,125,78,0.08) !important; }

/* Plan / textareas */
html[data-theme="light"] .plan-edit {
  background: #faf8f4 !important;
  border-color: rgba(30,25,18,0.12) !important;
  color: var(--text) !important;
}
html[data-theme="light"] .plan-edit::placeholder { color: rgba(30,25,18,0.3); }

/* Affirmations */
html[data-theme="light"] .aff-row {
  background: #f8f5f0 !important;
  border-color: rgba(30,25,18,0.1);
}
html[data-theme="light"] .aff-daily {
  background: linear-gradient(135deg, rgba(154,125,78,0.08), rgba(35,138,72,0.04)) !important;
}
html[data-theme="light"] .aff-card:hover { border-color: rgba(154,125,78,0.3); }

/* Equity / payout panels */
html[data-theme="light"] .account-notes-text,
html[data-theme="light"] .payout-body,
html[data-theme="light"] .eval-body {
  background: #faf8f4 !important;
  border-color: rgba(30,25,18,0.1);
}
html[data-theme="light"] .equity-mini { background: var(--surface3) !important; }

/* Journal */
html[data-theme="light"] .day-group { border-color: rgba(30,25,18,0.1); }
html[data-theme="light"] .day-group-header { background: #f8f5f0; }
html[data-theme="light"] .journal-search {
  background: #ffffff !important;
  border-color: rgba(30,25,18,0.12) !important;
  color: var(--text) !important;
}

/* Instrument autocomplete */
html[data-theme="light"] .instrument-suggestions { background: #ffffff !important; border-color: rgba(30,25,18,0.12); }
html[data-theme="light"] .instr-item:hover { background: rgba(154,125,78,0.07); }

/* Chips & badges */
html[data-theme="light"] .chip {
  background: #f0ede7 !important;
  border-color: rgba(30,25,18,0.14) !important;
  color: var(--muted) !important;
}
html[data-theme="light"] .chip:hover { color: var(--text) !important; border-color: var(--bronze) !important; }
html[data-theme="light"] .chip.sel { background: rgba(154,125,78,0.12) !important; border-color: var(--bronze) !important; color: var(--bronze) !important; }
html[data-theme="light"] .badge {
  background: rgba(30,25,18,0.06) !important;
  border-color: rgba(30,25,18,0.14) !important;
  color: var(--muted2) !important;
}
html[data-theme="light"] .badge.green { background: rgba(35,138,72,0.1) !important; color: var(--green) !important; border-color: var(--green) !important; }
html[data-theme="light"] .badge.red   { background: rgba(196,50,40,0.08) !important; color: var(--red) !important; border-color: var(--red) !important; }
html[data-theme="light"] .badge.gold  { background: rgba(154,125,78,0.1) !important; color: var(--bronze) !important; border-color: var(--bronze) !important; }

/* Boutons */
html[data-theme="light"] .btn-ghost { background: transparent; border-color: rgba(30,25,18,0.18); color: var(--muted); }
html[data-theme="light"] .btn-ghost:hover { border-color: var(--bronze); color: var(--bronze); }
html[data-theme="light"] .btn-secondary { background: var(--surface3); border-color: rgba(30,25,18,0.14); color: var(--text); }
html[data-theme="light"] .btn-secondary:hover { border-color: var(--bronze); color: var(--bronze); }

/* Onboarding */
html[data-theme="light"] .onboarding-overlay { background: rgba(200,195,185,0.75); }
html[data-theme="light"] .onboarding-card {
  background: linear-gradient(180deg, #ffffff, #f8f4ee) !important;
  border-color: rgba(154,125,78,0.22);
  box-shadow: 0 24px 60px rgba(0,0,0,0.1);
}
html[data-theme="light"] .onboarding-card h2,
html[data-theme="light"] .onboarding-card p { color: var(--text); }

/* Scrollbar light */
html[data-theme="light"] ::-webkit-scrollbar-track { background: #eeece6; }
html[data-theme="light"] ::-webkit-scrollbar-thumb { background: rgba(154,125,78,0.3); }

/* Theme toggle in light mode */
html[data-theme="light"] .theme-toggle {
  background: linear-gradient(145deg, #fff8ec, #f0e8d6);
  border-color: rgba(139,105,20,0.25);
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

/* Setup table */
html[data-theme="light"] .setup-table th,
html[data-theme="light"] .setup-table td { border-color: rgba(30,25,18,0.08); }
html[data-theme="light"] .setup-table tr:hover td { background: rgba(154,125,78,0.04); }

/* Edge analysis */
html[data-theme="light"] .edge-section {
  background: #f8f5f0;
  border-color: rgba(30,25,18,0.08);
}
html[data-theme="light"] .edge-section > summary { color: var(--muted2); }

/* ================================================================
   FIRM BADGES — prop firm color-coded labels
   ================================================================ */
.firm-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 7px;
  border-radius: 5px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  font-family: 'Oswald', sans-serif;
  border: 1px solid transparent;
  vertical-align: middle;
  margin-right: 4px;
}

/* Journal search with icon */
.journal-search-wrap {
  position: relative;
}
.journal-search-wrap::before {
  content: '';
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 14px;
  height: 14px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239a9590' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
  pointer-events: none;
  opacity: 0.7;
  z-index: 1;
}
.journal-search {
  padding-left: 36px !important;
}

/* CSV drop zone vertical layout */
.csv-drop-zone {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

/* ICO helper */
.ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  flex-shrink: 0;
  margin-right: 4px;
}
.ico svg { display: block; }

/* FAB icon */
.fab {
  font-size: 22px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ================================================================
   PERFORMANCE : prefers-reduced-motion + mobile GPU
   ================================================================ */

/* Coupe toutes les animations décoratives si l'utilisateur préfère */
@media (prefers-reduced-motion: reduce) {
  body::before, body::after { animation: none !important; }
  .grain-overlay { animation: none !important; }
  .promo-tab { animation: none !important; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.15s !important;
  }
}

/* Mobile : auras floutées désactivées (trop lourdes pour GPU mobile) */
@media (max-width: 700px) {
  body::before, body::after {
    animation: none;
    filter: none;
    opacity: 0.15;
    transform: none;
  }
}

/* will-change sur les auras pour forcer la couche GPU (réduit les repaints) */
body::before, body::after {
  will-change: transform, opacity;
}

/* Transition de thème : limite aux propriétés essentielles uniquement */
/* (évite le pic de jank sur les 13 sélecteurs larges actuels) */
body { transition: background-color 0.35s ease, color 0.35s ease; }
.sidebar { transition: background 0.35s ease, border-color 0.2s ease; }
.card, .stat-card, .account-card, .modal { transition: background 0.35s ease, border-color 0.2s ease; }
input, select, textarea { transition: border-color 0.15s ease, box-shadow 0.15s ease; }

/* ================================================================
   EMPTY STATES RICH
   ================================================================ */
.empty-state-rich {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 3.5rem 1.5rem;
  text-align: center;
  color: var(--muted);
}
.empty-state-rich svg { margin-bottom: 4px; }
.empty-state-title {
  font-family: 'Oswald', sans-serif;
  font-size: 15px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text2);
}
.empty-state-sub { font-size: 13px; line-height: 1.6; max-width: 300px; }
.empty-state-sub b { color: var(--accent); }

/* ================================================================
   TOUCH TARGETS — minimum 44px pour mobile
   ================================================================ */
.icon-btn {
  min-width: 36px;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  padding: 0;
}
.toast-close {
  min-width: 32px;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.chip { min-height: 32px; }
.vtbtn { min-height: 36px; padding: 0 14px; }
.pb-delete-btn { min-width: 32px; min-height: 32px; display:inline-flex; align-items:center; justify-content:center; }
/* Filtres/onglets prop firms : cibles tactiles confortables en mobile (zone tapée par tous) */
@media (max-width: 700px) {
  .pf-filter-chip { min-height: 44px; display: inline-flex; align-items: center; }
  .pf-market-tab  { min-height: 40px; display: inline-flex; align-items: center; }
  .pf-market-tabs { gap: 8px; }
}

/* ================================================================
   MOBILE : theme-toggle ne recouvre plus la nav
   ================================================================ */
@media (max-width: 700px) {
  .theme-toggle {
    top: auto;
    bottom: 92px;
    right: 12px;
    width: 36px;
    height: 36px;
  }
}

/* ================================================================
   TRADING COACH
   ================================================================ */
.coach-btn {
  position: fixed;
  bottom: 100px;
  right: 32px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1a1a20, #0e0e12);
  border: 1px solid rgba(201,169,110,0.4);
  color: var(--accent);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(0,0,0,0.5), 0 1px 0 rgba(255,255,255,0.06) inset;
  transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
  z-index: 90;
}
.coach-btn:hover {
  transform: translateY(-2px) scale(1.05);
  border-color: var(--accent);
  box-shadow: 0 8px 24px rgba(0,0,0,0.5), 0 0 16px rgba(201,169,110,0.2);
}
@media (max-width: 700px) {
  .coach-btn { bottom: 88px; right: 16px; width: 44px; height: 44px; }
}

.coach-overlay {
  position: fixed; inset: 0; z-index: 94;
  background: rgba(0,0,0,0.5);
  backdrop-filter: blur(2px);
  opacity: 0; pointer-events: none;
  transition: opacity 0.3s;
}
.coach-panel.open ~ .coach-overlay { opacity: 1; pointer-events: auto; }

.coach-panel {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: min(440px, 100vw);
  background: linear-gradient(180deg, #141416, #0f0f12);
  border-left: 1px solid rgba(201,169,110,0.15);
  z-index: 95;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.38s cubic-bezier(0.16,1,0.3,1);
  box-shadow: -8px 0 40px rgba(0,0,0,0.6);
}
.coach-panel.open { transform: translateX(0); }

.coach-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 22px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  flex-shrink: 0;
}
.coach-panel-title {
  font-family: 'Oswald', sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  display: flex;
  align-items: center;
  gap: 8px;
}
.coach-close {
  background: none; border: none;
  color: var(--text2); cursor: pointer;
  width: 32px; height: 32px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 8px;
  transition: background 0.15s, color 0.15s;
}
.coach-close:hover { background: rgba(255,255,255,0.06); color: var(--text); }

.coach-content {
  flex: 1;
  overflow-y: auto;
  padding: 20px;
  scrollbar-width: thin;
  scrollbar-color: rgba(201,169,110,0.25) transparent;
}

.coach-empty {
  display: flex; flex-direction: column; align-items: center;
  gap: 12px; padding: 3rem 1rem; text-align: center;
  color: var(--text2); font-size: 14px;
}

.coach-header-row {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: 20px; gap: 12px;
}
.coach-account-label { font-size: 12px; color: var(--text2); margin-bottom: 4px; }
.coach-style-badge {
  display: inline-block;
  padding: 4px 12px;
  background: rgba(201,169,110,0.12);
  border: 1px solid rgba(201,169,110,0.3);
  border-radius: 20px;
  color: var(--accent);
  font-family: 'Oswald', sans-serif;
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.coach-edge-ring {
  width: 80px; height: 80px; flex-shrink: 0;
  background: conic-gradient(var(--edge-color, var(--accent)) calc(var(--edge-pct, 0) * 1%), rgba(255,255,255,0.06) 0);
  border-radius: 50%;
  padding: 6px;
  display: flex; align-items: center; justify-content: center;
}
.coach-edge-inner {
  background: #141416;
  border-radius: 50%;
  width: 100%; height: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 1px;
}
.coach-edge-score {
  font-family: 'JetBrains Mono', monospace;
  font-size: 16px; font-weight: 600;
  color: var(--edge-color, var(--accent));
}
.coach-edge-label {
  font-size: 9px; color: var(--text2);
  text-align: center; letter-spacing: 0.04em;
  text-transform: uppercase;
}

.coach-stats-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 8px; margin-bottom: 20px;
}
.coach-stat {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px; padding: 10px 8px; text-align: center;
}
.coach-stat-val {
  font-family: 'JetBrains Mono', monospace;
  font-size: 15px; font-weight: 600; color: var(--text);
}
.coach-stat-val.pos { color: var(--green); }
.coach-stat-val.neg { color: var(--red); }
.coach-stat-lbl { font-size: 10px; color: var(--text2); margin-top: 3px; }

.coach-section { margin-bottom: 18px; }
.coach-section-title {
  font-family: 'Oswald', sans-serif;
  font-size: 11px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--text2); margin-bottom: 10px;
  display: flex; align-items: center;
}

.coach-grades { display: flex; flex-direction: column; gap: 6px; }
.coach-grade-row {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px;
  background: rgba(255,255,255,0.025);
  border-radius: 8px;
}
.coach-grade-label { min-width: 32px; }
.coach-grade-wr { font-family: 'JetBrains Mono', monospace; font-size: 12px; min-width: 60px; }
.coach-grade-pnl { font-family: 'JetBrains Mono', monospace; font-size: 12px; flex: 1; }
.coach-grade-pnl.pos { color: var(--green); }
.coach-grade-pnl.neg { color: var(--red); }
.coach-grade-n { font-size: 11px; color: var(--text2); }

.coach-emo-bar {
  height: 6px; background: rgba(255,255,255,0.07);
  border-radius: 3px; overflow: hidden; margin-bottom: 8px;
}
.coach-emo-fill { height: 100%; border-radius: 3px; transition: width 0.6s ease; }
.coach-emo-fill.danger { background: var(--red); }
.coach-emo-fill.warn { background: var(--accent); }
.coach-emo-label { font-size: 12px; color: var(--text2); margin-bottom: 8px; }
.coach-emo-compare { display: flex; gap: 12px; font-size: 12px; flex-wrap: wrap; }
.coach-emo-compare .pos { color: var(--green); }
.coach-emo-compare .neg { color: var(--red); }

.coach-brutal {
  background: rgba(229,84,75,0.06);
  border: 1px solid rgba(229,84,75,0.2);
  border-radius: 12px; padding: 14px;
}
.coach-brutal .coach-section-title { color: var(--red); }
.coach-brutal-item {
  font-size: 13px; line-height: 1.6;
  color: var(--text2); padding: 8px 0;
  border-bottom: 1px solid rgba(229,84,75,0.1);
}
.coach-brutal-item:last-child { border-bottom: none; padding-bottom: 0; }

.coach-prompt-btn {
  width: 100%; margin-top: 8px; padding: 12px 16px;
  background: rgba(201,169,110,0.08);
  border: 1px solid rgba(201,169,110,0.25);
  border-radius: 10px; color: var(--accent);
  font-family: 'Space Grotesk', sans-serif; font-size: 13px; font-weight: 600;
  cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px;
  transition: background 0.2s, border-color 0.2s;
}
.coach-prompt-btn:hover { background: rgba(201,169,110,0.15); border-color: rgba(201,169,110,0.45); }

/* Light mode coach */
html[data-theme="light"] .coach-panel { background: linear-gradient(180deg, #f8f5f0, #f2ede5); border-left-color: rgba(154,125,78,0.2); }
html[data-theme="light"] .coach-edge-inner { background: #f8f5f0; }
html[data-theme="light"] .coach-stat { background: rgba(0,0,0,0.03); border-color: rgba(0,0,0,0.08); }
html[data-theme="light"] .coach-grade-row { background: rgba(0,0,0,0.03); }
html[data-theme="light"] .coach-brutal { background: rgba(229,84,75,0.05); }

/* Coach account picker */
.coach-account-picker {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  flex-shrink: 0;
  color: var(--text2);
}
.coach-account-picker select {
  flex: 1;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 8px;
  color: var(--text);
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  padding: 6px 10px;
  outline: none;
  cursor: pointer;
}
.coach-account-picker select:focus {
  border-color: rgba(201,169,110,0.4);
}
html[data-theme="light"] .coach-account-picker select {
  background: #fff;
  border-color: rgba(0,0,0,0.12);
  color: var(--text);
}

/* ================================================================
   MENTORS & FORMATEURS
   ================================================================ */
.mentors-filters {
  margin-bottom: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.mentors-filter-row { display: flex; gap: 28px; flex-wrap: wrap; }
.mentors-filter-group { display: flex; flex-direction: column; gap: 8px; }
.mentors-filter-label {
  font-family: 'Oswald', sans-serif;
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--text2);
}
.mentors-chip { display: inline-flex; align-items: center; gap: 5px; }
.mentors-chip .ico { margin-right: 2px; }
.mentors-chip-count {
  background: rgba(255,255,255,0.1);
  border-radius: 8px; padding: 0 5px;
  font-size: 10px; font-family: 'JetBrains Mono', monospace;
  opacity: 0.8;
}
.mentors-chip.sel .mentors-chip-count { background: rgba(0,0,0,0.2); }

.mentors-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
}

.mentor-card {
  background: var(--bg2, rgba(255,255,255,0.025));
  border: 1px solid var(--border, rgba(255,255,255,0.07));
  border-radius: 16px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
  overflow: hidden;
  transition: transform 0.25s cubic-bezier(0.16,1,0.3,1), border-color 0.25s, box-shadow 0.25s;
}
.mentor-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  opacity: 0.5;
  transition: opacity 0.25s;
}
.mentor-card:hover {
  transform: translateY(-3px);
  border-color: color-mix(in oklab, var(--accent) 40%, transparent);
  box-shadow: 0 12px 32px -12px rgba(0,0,0,0.5);
}
.mentor-card:hover::before { opacity: 1; }
.mentor-card.placeholder { opacity: 0.55; border-style: dashed; }

.mentor-card-top { display: flex; gap: 12px; align-items: center; }
.mentor-avatar {
  width: 46px; height: 46px; flex-shrink: 0;
  border-radius: 12px;
  border: 1px solid;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Oswald', sans-serif;
  font-size: 16px; font-weight: 600;
  letter-spacing: 0.02em;
}
.mentor-head { flex: 1; min-width: 0; }
.mentor-name {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14.5px; font-weight: 600;
  color: var(--text); line-height: 1.3;
  margin-bottom: 4px;
}
.mentor-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mentor-lang { font-size: 13px; }
.mentor-platform { font-size: 11px; color: var(--text2); }
.mentor-type {
  font-size: 9px; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase;
  padding: 2px 7px; border-radius: 5px;
}
.mentor-type.free { background: rgba(55,194,106,0.14); color: #37c26a; }
.mentor-type.paid { background: rgba(201,169,110,0.14); color: var(--accent); }

.mentor-badges { display: flex; gap: 6px; }
.mentor-verified {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 10px; font-weight: 600;
  letter-spacing: 0.04em;
  padding: 3px 9px; border-radius: 20px;
  background: rgba(55,194,106,0.12);
  border: 1px solid rgba(55,194,106,0.3);
  color: #37c26a;
}

.mentor-strats { display: flex; flex-wrap: wrap; gap: 5px; }
.mentor-strat-tag {
  font-size: 10.5px;
  padding: 3px 9px;
  border-radius: 6px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  color: var(--text2);
}

.mentor-desc {
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--text2);
  flex: 1;
}

.mentor-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 9px 14px;
  border-radius: 9px;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--accent);
  color: var(--accent);
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12.5px; font-weight: 600;
  text-decoration: none;
  transition: background 0.2s, transform 0.15s;
  margin-top: auto;
}
.mentor-link:hover { background: color-mix(in oklab, var(--accent) 14%, transparent); transform: translateY(-1px); }
.mentor-link.disabled {
  border-color: rgba(255,255,255,0.1);
  color: var(--text3, var(--text2));
  opacity: 0.5;
  cursor: default;
}

.mentors-disclaimer {
  margin-top: 24px;
  padding: 14px 16px;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 10px;
  font-size: 11.5px;
  line-height: 1.6;
  color: var(--text2);
  opacity: 0.7;
}

/* Light mode mentors */
html[data-theme="light"] .mentor-card { background: #fff; border-color: rgba(0,0,0,0.08); }
html[data-theme="light"] .mentor-strat-tag { background: rgba(0,0,0,0.04); border-color: rgba(0,0,0,0.07); color: var(--text2); }
html[data-theme="light"] .mentor-link { background: rgba(0,0,0,0.02); }
html[data-theme="light"] .mentors-chip-count { background: rgba(0,0,0,0.08); }

@media (max-width: 700px) {
  .mentors-cards { grid-template-columns: 1fr; }
  .mentors-filter-row { gap: 16px; }
}

/* ================================================================
   MENTORS V2 — 3 zones, prop firm badges, match quiz, YT embed
   ================================================================ */

/* Header éditorial */
.mentors-editorial {
  display: flex; align-items: center; gap: 8px;
  font-size: 12.5px; color: var(--text2);
  padding: 10px 14px;
  background: rgba(55,194,106,0.06);
  border: 1px solid rgba(55,194,106,0.15);
  border-radius: 10px;
  margin-bottom: 18px;
}
.mentors-editorial strong { color: var(--text); }

/* Prop firm dot in chip */
.mentor-pf-dot {
  width: 8px; height: 8px; border-radius: 50%;
  display: inline-block; flex-shrink: 0;
}

/* Card 3 zones */
.mentor-zone-header {
  display: flex; align-items: flex-start; gap: 12px;
  position: relative;
}
.mentor-zone-body { flex: 1; display: flex; flex-direction: column; gap: 8px; }
.mentor-zone-footer {
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px; margin-top: auto; padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,0.06);
}

/* Verified icon in header */
.mentor-verified-icon {
  position: absolute; top: 0; right: 0;
  display: flex; align-items: center; justify-content: center;
}

/* Meta row */
.mentor-meta-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 3px; }
.mentor-platform-tag { font-size: 11px; color: var(--text2); }
.mentor-private { color: var(--accent); opacity: 0.7; display: inline-flex; align-items: center; }

/* Prop firm badges */
.mentor-pf-row { display: flex; flex-wrap: wrap; gap: 5px; }
.mentor-pf-badge {
  font-size: 9.5px; font-weight: 700;
  letter-spacing: 0.05em; text-transform: uppercase;
  padding: 2px 8px; border-radius: 5px; border: 1px solid;
  font-family: 'Oswald', sans-serif;
}

/* Level tag */
.mentor-level-tag {
  font-size: 10px; padding: 2px 8px; border-radius: 5px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  color: var(--text2);
}

/* Footer CTA */
.mentor-cta {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 8px 14px; border-radius: 8px;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--accent);
  color: var(--accent);
  font-size: 12.5px; font-weight: 600;
  text-decoration: none;
  transition: background 0.2s, transform 0.15s;
}
.mentor-cta:hover { background: color-mix(in oklab, var(--accent) 14%, transparent); transform: translateY(-1px); }
.mentor-cta.disabled { border-color: rgba(255,255,255,0.1); color: var(--text2); opacity: 0.45; cursor: default; }

.mentor-footer-badge {
  font-size: 10px; color: var(--text2);
  font-style: italic; opacity: 0.7;
}

/* YouTube embed */
.mentor-yt-embed { margin: 2px 0 4px; }
.mentor-yt-link {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 8px; border-radius: 8px;
  background: rgba(255,0,0,0.05);
  border: 1px solid rgba(255,0,0,0.12);
  text-decoration: none;
  transition: background 0.2s;
}
.mentor-yt-link:hover { background: rgba(255,0,0,0.1); }
.mentor-yt-thumb { width: 60px; height: 34px; object-fit: cover; border-radius: 4px; flex-shrink: 0; }
.mentor-yt-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mentor-yt-title { font-size: 11px; color: var(--text2); line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mentor-yt-age { font-size: 10px; color: var(--text2); opacity: 0.6; }

/* Mentor Match quiz */
.mentor-match-quiz {
  background: linear-gradient(135deg, rgba(201,169,110,0.07), rgba(201,169,110,0.03));
  border: 1px solid rgba(201,169,110,0.2);
  border-radius: 14px; padding: 18px 20px;
  margin-bottom: 20px;
}
.mentor-match-quiz-title {
  display: flex; align-items: center; gap: 7px;
  font-family: 'Oswald', sans-serif;
  font-size: 12px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 16px;
}
.mentor-match-steps { display: flex; flex-direction: column; gap: 12px; }
.mentor-match-step { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.mentor-match-q { font-size: 12.5px; color: var(--text2); min-width: 110px; flex-shrink: 0; }
.mentor-match-opts { display: flex; gap: 6px; flex-wrap: wrap; }
.mm-opt {
  padding: 5px 12px; border-radius: 7px; font-size: 12px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.10);
  color: var(--text2); cursor: pointer;
  font-family: 'Space Grotesk', sans-serif;
  transition: all 0.15s;
}
.mm-opt:hover { border-color: var(--accent); color: var(--text); }
.mm-opt.sel { background: rgba(201,169,110,0.15); border-color: var(--accent); color: var(--accent); }
.mentor-match-go {
  margin-top: 16px; padding: 10px 20px;
  background: linear-gradient(135deg, #0a0a0a, #141414);
  border: 1px solid rgba(201,169,110,0.4);
  border-radius: 9px; color: var(--accent);
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px; font-weight: 600; cursor: pointer;
  transition: all 0.2s;
}
.mentor-match-go:not(:disabled):hover { border-color: var(--accent); box-shadow: 0 0 16px rgba(201,169,110,0.2); }
.mentor-match-go:disabled { opacity: 0.35; cursor: default; }

.mentor-match-result {
  background: rgba(55,194,106,0.06);
  border: 1px solid rgba(55,194,106,0.2);
  border-radius: 12px; padding: 14px 18px;
  margin-bottom: 20px;
}
.mentor-match-result-title {
  display: flex; align-items: center; gap: 7px;
  font-size: 12.5px; font-weight: 600; color: var(--green);
  margin-bottom: 10px;
}
.mentor-match-reset {
  margin-left: auto; background: none; border: none;
  font-size: 11px; color: var(--text2); cursor: pointer;
  text-decoration: underline;
}
.mentor-match-names { display: flex; flex-wrap: wrap; gap: 7px; }
.mentor-match-name {
  padding: 4px 12px; border-radius: 6px;
  background: rgba(55,194,106,0.1);
  border: 1px solid rgba(55,194,106,0.25);
  color: var(--green); font-size: 12px; font-weight: 500;
}

/* Light mode */
html[data-theme="light"] .mentor-match-quiz { background: rgba(140,111,74,0.06); }
html[data-theme="light"] .mentor-match-result { background: rgba(55,194,106,0.05); }
html[data-theme="light"] .mentor-yt-link { background: rgba(255,0,0,0.04); border-color: rgba(255,0,0,0.1); }
html[data-theme="light"] .mentor-zone-footer { border-top-color: rgba(0,0,0,0.07); }
html[data-theme="light"] .mentors-editorial { background: rgba(55,194,106,0.05); }

/* ================================================================
   VUE CALENDRIER JOURNAL
   ================================================================ */
.cal-view-wrap {
  padding: 8px 0 16px;
}
.heatmap-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 4px;
  padding: 8px 0;
}
.heatmap-cell {
  aspect-ratio: 1;
  border-radius: 4px;
  cursor: default;
  transition: transform 0.15s, box-shadow 0.15s;
  min-width: 0;
}
.heatmap-cell:hover { transform: scale(1.15); box-shadow: 0 2px 8px rgba(0,0,0,0.4); }
.heatmap-empty { background: transparent; }
.heatmap-pos-3 { background: #37c26a; }
.heatmap-pos-2 { background: rgba(55,194,106,0.7); }
.heatmap-pos-1 { background: rgba(55,194,106,0.4); }
.heatmap-zero  { background: rgba(255,255,255,0.06); }
.heatmap-neg-1 { background: rgba(229,84,75,0.35); }
.heatmap-neg-2 { background: rgba(229,84,75,0.6); }
.heatmap-neg-3 { background: #e5544b; }
.cal-legend {
  display: flex; align-items: center; gap: 16px;
  margin-top: 12px; padding: 0 4px;
}
.cal-leg-item {
  display: flex; align-items: center; gap: 6px;
  font-size: 11px; color: var(--muted);
}
.cal-dot {
  width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0;
}
.cal-dot.pos  { background: #37c26a; }
.cal-dot.zero { background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); }
.cal-dot.neg  { background: #e5544b; }

html[data-theme="light"] .heatmap-zero { background: rgba(0,0,0,0.07); }
html[data-theme="light"] .cal-dot.zero { background: rgba(0,0,0,0.07); border-color: rgba(0,0,0,0.12); }

/* ================================================================
   LIEN SETUP → PLAYBOOK
   ================================================================ */
a.setup-pb-link {
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
a.setup-pb-link:hover {
  background: rgba(201,169,110,0.18) !important;
  border-color: var(--accent) !important;
  color: var(--accent) !important;
}

/* ================================================================
   EXPORT PDF — @media print
   ================================================================ */
@media print {
  /* Cache tout sauf le contenu principal */
  .sidebar, .theme-toggle, .fab, .coach-btn, .promo-tab,
  .promo-panel, .toast-container, #onboarding, .view-toggle,
  .btn-primary, .btn-secondary, .icon-btn, #journal-view-toggle,
  .section:not(#journal) { display: none !important; }

  body, html { background: #fff !important; color: #111 !important; }

  .main { margin: 0 !important; padding: 16px !important; max-width: 100% !important; }

  .entry-card {
    break-inside: avoid;
    border: 1px solid #ddd !important;
    background: #fff !important;
    box-shadow: none !important;
    margin-bottom: 8px;
  }

  .entry-pnl.pos { color: #1a7a40 !important; }
  .entry-pnl.neg { color: #c0392b !important; }

  .stat-card {
    border: 1px solid #ddd !important;
    background: #f9f9f9 !important;
    box-shadow: none !important;
  }

  /* Header print */
  #journal::before {
    content: 'Journal MDE Trading — ' attr(data-print-date);
    display: block;
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 16px;
    border-bottom: 2px solid #c9a96e;
    padding-bottom: 8px;
  }
}

/* ================================================================
   HINT RACCOURCIS (tooltip bas de page)
   ================================================================ */
.shortcut-hint {
  position: fixed;
  bottom: 8px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(20,20,24,0.92);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  padding: 6px 14px;
  font-size: 11px;
  color: var(--muted);
  pointer-events: none;
  z-index: 800;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 0.2s;
}
.shortcut-hint.visible { opacity: 1; }

/* ================================================================
   LOGO IMAGE — SIDEBAR + LOGIN + ONBOARDING
   ================================================================ */

/* Sidebar logo */
.logo-img-wrap {
  padding: 0 1rem 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sidebar-logo-img {
  width: 118px;
  height: auto;
  display: block;
  margin: 0 auto;
  filter: invert(1) brightness(1.15) sepia(.12) saturate(1.3);
  transition: filter .3s, opacity .3s;
  opacity: .92;
}
.sidebar-logo-img:hover { opacity: 1; }

/* ── Lockup TeradeOS by MDE ── */
.brand-block { display: flex; flex-direction: column; align-items: center; gap: 9px; width: 100%; }
.brand-os {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 11px 4px 5px;
  border: 1px solid rgba(216,217,222,0.1);
  border-radius: 99px;
  background: linear-gradient(180deg, rgba(255,255,255,0.035), rgba(255,255,255,0.008));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), 0 2px 8px -3px rgba(0,0,0,0.55);
}
.brand-os-glyph {
  /* mark officiel TeradeOS (SVG avec fond dégradé intégré) */
  width: 17px; height: 17px; border-radius: 4px;
  display: block;
  box-shadow: 0 0 10px -2px rgba(0,212,170,0.55);
  flex-shrink: 0;
}
.brand-os-name {
  font-family: 'Space Grotesk', system-ui, sans-serif;
  font-size: 11px; font-weight: 600; letter-spacing: 0.01em;
  color: var(--chrome);
  -webkit-text-fill-color: var(--chrome);
}
.brand-os-name b { font-weight: 700; color: #00d4aa; -webkit-text-fill-color: #00d4aa; }
.brand-os-by {
  font-family: 'JetBrains Mono', monospace;
  font-size: 8px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--bronze);
  -webkit-text-fill-color: var(--bronze);
  padding-left: 6px;
  border-left: 1px solid rgba(216,217,222,0.12);
}
html[data-theme="light"] .sidebar-logo-img { filter: brightness(.85) contrast(1.1); }

/* Onboarding logo */
.onboarding-logo-img {
  width: 110px;
  height: auto;
  margin: 0 auto 18px;
  display: block;
  filter: invert(1) brightness(1.1) sepia(.15) saturate(1.2);
}
html[data-theme="light"] .onboarding-logo-img { filter: brightness(.85); }

/* ================================================================
   SIDEBAR — MINI STAT PNL DU JOUR
   ================================================================ */
.sidebar-pnl-today {
  margin: 14px 12px 6px;
  padding: 10px 12px;
  background: rgba(255,255,255,.025);
  border: 1px solid var(--border);
  border-radius: 10px;
  font-size: 11px;
}
.sidebar-pnl-today .spnl-label {
  font-family: 'Oswald', sans-serif;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: 9px;
  color: var(--muted);
  margin-bottom: 4px;
}
.sidebar-pnl-today .spnl-value {
  font-family: 'JetBrains Mono', monospace;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1;
}
.sidebar-pnl-today .spnl-value.pos { color: var(--green); }
.sidebar-pnl-today .spnl-value.neg { color: var(--red); }
.sidebar-pnl-today .spnl-value.zero { color: var(--muted); }
.sidebar-pnl-today .spnl-trades {
  font-size: 10px;
  color: var(--muted);
  margin-top: 3px;
}

html[data-theme="light"] .sidebar-pnl-today { background: rgba(0,0,0,.03); }

/* ================================================================
   INPUTS — FOCUS GLOW RENFORCÉ
   ================================================================ */
input:focus, textarea:focus, select:focus {
  outline: none;
  border-color: rgba(201,169,110,.55) !important;
  box-shadow: 0 0 0 3px rgba(201,169,110,.12), 0 0 12px rgba(201,169,110,.08) !important;
}

/* ================================================================
   TOASTS — ICÔNES SVG
   ================================================================ */
.toast-icon svg { display: block; }

/* ================================================================
   LOGIN — QUOTE STYLE
   ================================================================ */
.gate-quote {
  font-size: 11px;
  color: rgba(201,169,110,.4);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-family: 'Oswald', sans-serif;
  margin-bottom: 2px;
}

/* CTA "pas encore membre -> page d'offre" sur le login */
.gate-offer {
  display: block;
  margin: 14px auto 0;
  padding: 9px 14px;
  max-width: 270px;
  text-align: center;
  text-decoration: none;
  font-size: 12.5px;
  letter-spacing: .02em;
  color: rgba(201,169,110,.75);
  border: 1px solid rgba(184,154,106,.30);
  border-radius: 9px;
  background: rgba(184,154,106,.06);
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.gate-offer .go-lead { display: block; color: rgba(201,169,110,.75); }
.gate-offer .go-cta { display: block; margin-top: 3px; color: var(--gold-bright); font-weight: 600; white-space: nowrap; }
.gate-offer:hover {
  border-color: rgba(184,154,106,.6);
  background: rgba(184,154,106,.12);
  box-shadow: 0 0 14px rgba(184,154,106,.18);
}

/* ================================================================
   SECTION TRANSITION — AMÉLIORÉE
   ================================================================ */
.section.active {
  animation: sectionIn 0.38s cubic-bezier(0.16,1,0.3,1);
}
@keyframes sectionIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ================================================================
   HERO STAT CARD — P&L DOMINANT
   ================================================================ */
.stats-bar .stat-card-hero {
  grid-column: span 1;
  background: linear-gradient(135deg, rgba(55,194,106,.07) 0%, var(--surface) 60%);
  border-color: rgba(55,194,106,.18);
  position: relative;
}
.stats-bar .stat-card-hero.neg-card {
  background: linear-gradient(135deg, rgba(229,84,75,.06) 0%, var(--surface) 60%);
  border-color: rgba(229,84,75,.16);
}
.stat-card-hero .stat-value {
  font-size: 32px !important;
  letter-spacing: -.05em !important;
}
.stat-card-hero::before {
  background: linear-gradient(90deg, transparent, var(--emerald), transparent) !important;
  opacity: .4 !important;
}

/* Grille 3 colonnes pour l'overview (plus aéré) */
#overview-stats.stats-bar.cols-4 {
  grid-template-columns: 1.4fr 1fr 1fr;
}

/* ================================================================
   SCROLLBARS PREMIUM — Coach panel + modales
   ================================================================ */
.coach-panel, .modal, .main {
  scrollbar-width: thin;
  scrollbar-color: rgba(201,169,110,.2) transparent;
}
.coach-panel::-webkit-scrollbar,
.modal::-webkit-scrollbar { width: 3px; }
.coach-panel::-webkit-scrollbar-track,
.modal::-webkit-scrollbar-track { background: transparent; }
.coach-panel::-webkit-scrollbar-thumb,
.modal::-webkit-scrollbar-thumb {
  background: rgba(201,169,110,.22);
  border-radius: 2px;
}
.coach-panel::-webkit-scrollbar-thumb:hover,
.modal::-webkit-scrollbar-thumb:hover {
  background: rgba(201,169,110,.4);
}

/* ================================================================
   GRAIN — légèrement plus visible sur login
   ================================================================ */
.mde-gate .grain-overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .025;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
}

/* ================================================================
   BADGE SETUP — hover vers playbook plus visible
   ================================================================ */
a.setup-pb-link {
  cursor: pointer;
  text-decoration: none;
}
a.setup-pb-link::after {
  content: ' ↗';
  font-size: 9px;
  opacity: 0;
  transition: opacity .15s;
}
a.setup-pb-link:hover::after { opacity: .6; }

/* ================================================================
   LIGHT MODE — hero stat card
   ================================================================ */
html[data-theme="light"] .stat-card-hero {
  background: linear-gradient(135deg, rgba(35,138,72,.06), #ffffff) !important;
  border-color: rgba(35,138,72,.18) !important;
}

/* ================================================================
   PROP FIRMS SECTION
   ================================================================ */
.pf-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}

.pf-card {
  background: var(--bg2, rgba(255,255,255,.025));
  border: 1px solid color-mix(in srgb, var(--pf-color) 22%, var(--border));
  border-radius: 16px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
  overflow: hidden;
  transition: transform .25s cubic-bezier(.16,1,.3,1), border-color .25s, box-shadow .25s;
  /* glow statique : ~10 cartes pulsaient leur box-shadow en simultané */
  box-shadow: 0 0 16px -4px color-mix(in srgb, var(--pf-color) 38%, transparent);
}
.pf-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, var(--pf-color), transparent);
  opacity: .6;
}
.pf-card:hover {
  transform: translateY(-3px);
  border-color: color-mix(in oklab, var(--pf-color) 55%, transparent);
  box-shadow: 0 12px 32px -12px rgba(0,0,0,.5), 0 0 30px -8px var(--pf-color) !important;
}
@keyframes pfCardGlow {
  0%, 100% { box-shadow: 0 0 10px -5px color-mix(in srgb, var(--pf-color) 28%, transparent); }
  50%       { box-shadow: 0 0 22px -4px color-mix(in srgb, var(--pf-color) 48%, transparent); }
}

.pf-card-header {
  display: flex;
  align-items: center;
  gap: 14px;
}
.pf-logo-circle {
  width: 52px; height: 52px;
  border-radius: 14px;
  border: 1px solid;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pf-name {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 15px; font-weight: 600;
  color: var(--text); margin-bottom: 5px;
}
.pf-promo-badge {
  display: inline-block;
  font-size: 10px; font-weight: 700;
  letter-spacing: .04em; text-transform: uppercase;
  padding: 3px 9px; border-radius: 5px; border: 1px solid;
  font-family: 'Oswald', sans-serif;
}
.pf-promo-badge.muted {
  background: rgba(255,255,255,.04) !important;
  border-color: rgba(255,255,255,.08) !important;
  color: var(--muted) !important;
}

.pf-desc {
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--text2);
}

.pf-features {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.pf-feature {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  color: var(--text2);
}

.pf-card-footer {
  display: flex;
  gap: 8px;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,.06);
}
.pf-btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 9px 12px;
  border-radius: 9px;
  border: 1px solid;
  font-size: 12px; font-weight: 600;
  text-decoration: none;
  font-family: 'Space Grotesk', sans-serif;
  transition: opacity .2s, transform .15s;
  background: transparent;
}
.pf-btn:hover { opacity: .8; transform: translateY(-1px); }
.pf-btn.disabled {
  border-color: rgba(255,255,255,.1) !important;
  color: var(--muted) !important;
  opacity: .45; cursor: default;
}
.pf-btn.promo { font-weight: 700; }

/* Light mode */
html[data-theme="light"] .pf-card { background: #fff; border-color: rgba(0,0,0,.08); }
html[data-theme="light"] .pf-card-footer { border-top-color: rgba(0,0,0,.07); }
html[data-theme="light"] .pf-promo-badge.muted {
  background: rgba(0,0,0,.04) !important;
  border-color: rgba(0,0,0,.08) !important;
}

@media (max-width: 700px) {
  .pf-grid { grid-template-columns: 1fr; }
}

/* ================================================================
   PROP FIRMS — LOGO HEADER (logo officiel centré pleine largeur)
   ================================================================ */
.pf-illustration-wrap {
  margin: -20px -20px 0;
  border-radius: 16px 16px 0 0;
  overflow: hidden;
  height: 88px;
  flex-shrink: 0;
  /* Fond toujours sombre pour les logos blancs/clairs */
  background: linear-gradient(135deg, rgba(14,14,22,.95) 0%, rgba(22,22,34,.9) 100%);
  border-bottom: 1px solid rgba(255,255,255,.07);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px 22px;
}
.pf-logo-img {
  max-height: 46px;
  max-width: 78%;
  width: auto;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 1px 6px rgba(0,0,0,.4));
  display: block;
}
.pf-logo-initial {
  font-family: 'Oswald', sans-serif;
  font-size: 32px; font-weight: 700;
  letter-spacing: .04em;
  display: flex;
  align-items: center;
  justify-content: center;
  text-shadow: 0 2px 12px rgba(0,0,0,.5);
}
/* Light mode : on garde quand même le fond sombre pour que les logos restent visibles */
html[data-theme="light"] .pf-illustration-wrap {
  background: linear-gradient(135deg, rgba(18,18,28,.92) 0%, rgba(26,26,40,.88) 100%);
  border-bottom-color: rgba(0,0,0,.12);
}

.pf-sub-desc {
  font-size: 11px;
  color: var(--muted);
  margin-top: 2px;
}

/* Promo badge grand format — effet néon subtil */
.pf-promo-big {
  font-family: 'Oswald', sans-serif;
  font-size: 22px; font-weight: 700;
  letter-spacing: .02em;
  padding: 6px 14px;
  border-radius: 10px;
  border: 1px solid;
  white-space: nowrap;
  flex-shrink: 0;
  color: #5aa2ff !important;
  background: rgba(58, 130, 246, 0.10) !important;
  border-color: rgba(58, 130, 246, 0.45) !important;
  text-shadow: 0 0 8px rgba(58,130,246,0.55);
  box-shadow: 0 0 12px -2px rgba(58,130,246,0.35);
}

/* Bouton promo coloré — effet néon subtil */
.pf-btn-promo {
  font-weight: 700 !important;
  letter-spacing: .05em !important;
  color: var(--gold-bright) !important;
  background: rgba(230, 210, 140, 0.06) !important;
  border: 1px solid rgba(184, 154, 106, 0.4) !important;
  text-shadow: 0 0 8px rgba(184,154,106,0.5);
  box-shadow: 0 0 10px -2px rgba(184,154,106,0.3) !important;
  transition: background .2s, border-color .2s, box-shadow .2s, transform .15s !important;
}
.pf-btn-promo:hover {
  opacity: 1 !important;
  background: rgba(0, 245, 212, 0.1) !important;
  border-color: rgba(0, 245, 212, 0.7) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 0 18px -4px rgba(0,245,212,0.45), inset 0 0 12px rgba(0,245,212,0.06) !important;
  text-shadow: 0 0 10px rgba(0,245,212,0.85) !important;
}

/* Keyframe animation néon pulse — version douce */
@keyframes neonPulse {
  0%, 100% {
    box-shadow: 0 0 8px -2px rgba(0,245,212,0.2);
    text-shadow: 0 0 6px rgba(0,245,212,0.55);
  }
  50% {
    box-shadow: 0 0 14px -2px rgba(0,245,212,0.38);
    text-shadow: 0 0 10px rgba(0,245,212,0.8);
  }
}

/* Grille 3 colonnes sur grand écran */
.pf-grid {
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}

/* (pf-illustration-wrap light mode handled above) */

/* ── Filtre Tout / Futures / Forex ── */
.pf-filter-bar {
  display: flex;
  gap: 8px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.pf-filter-chip {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px; font-weight: 600;
  padding: 7px 18px;
  border-radius: 9px;
  border: 1px solid rgba(255,255,255,.12);
  background: transparent;
  color: var(--text2);
  cursor: pointer;
  transition: all .18s;
}
.pf-filter-chip:hover {
  border-color: var(--gold);
  color: var(--gold);
}
.pf-filter-chip.active {
  background: var(--gold);
  color: #000;
  border-color: transparent;
  font-weight: 700;
}
html[data-theme="light"] .pf-filter-chip { border-color: rgba(0,0,0,.12); }

/* ── Badges de marché (Futures / Forex CFD) ── */
.pf-market-badges {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  margin: 4px 0 2px;
}
.pf-market-badge {
  font-size: 9px; font-weight: 700; letter-spacing: .08em;
  padding: 2px 8px; border-radius: 4px;
  font-family: 'Oswald', sans-serif; text-transform: uppercase;
  border: 1px solid;
}
.pf-market-badge--futures {
  background: rgba(212,175,55,.1);
  color: #d4af37;
  border-color: rgba(212,175,55,.25);
}
.pf-market-badge--forex {
  background: rgba(56,189,248,.1);
  color: #38bdf8;
  border-color: rgba(56,189,248,.25);
}

/* ── Tabs de marché (dans les cards multi-marchés) ── */
.pf-market-tabs {
  display: flex;
  gap: 5px;
  margin-bottom: 6px;
}
.pf-market-tab {
  font-size: 11px; font-weight: 600;
  padding: 5px 13px; border-radius: 7px;
  border: 1px solid rgba(255,255,255,.12);
  background: transparent;
  color: var(--text2);
  cursor: pointer;
  font-family: 'Space Grotesk', sans-serif;
  transition: all .18s;
}
.pf-market-tab:hover { border-color: var(--pf-color); color: var(--pf-color); }
.pf-market-tab.active {
  background: var(--pf-color);
  color: #000;
  border-color: transparent;
  font-weight: 700;
}
html[data-theme="light"] .pf-market-tab { border-color: rgba(0,0,0,.12); }

/* ── Badge BETA dans la nav ── */
.nav-beta {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 5px;
  font-size: 8px;
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--accent);
  border: 1px solid rgba(201,169,110,0.35);
  border-radius: 4px;
  vertical-align: middle;
  opacity: 0.75;
  line-height: 1.5;
}
.nav-item.active .nav-beta {
  opacity: 1;
  color: var(--accent2);
  border-color: rgba(201,169,110,0.55);
}

/* ── Bannière beta en haut des sections ── */
.beta-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  margin-bottom: 20px;
  background: rgba(201,169,110,0.06);
  border: 1px solid rgba(201,169,110,0.18);
  border-radius: 10px;
  font-size: 13px;
  color: var(--text2);
  font-family: 'Space Grotesk', sans-serif;
}
.beta-banner svg {
  flex-shrink: 0;
  color: var(--accent);
  opacity: 0.8;
}

html[data-theme="light"] .beta-banner {
  background: rgba(139,105,20,0.05);
  border-color: rgba(139,105,20,0.15);
}

/* ── Bouton ? Playbook ── */
.pb-style-help-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 13px;
  background: rgba(201,169,110,0.08);
  border: 1px solid rgba(201,169,110,0.25);
  border-radius: 8px;
  color: var(--accent);
  font-size: 12px;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
}
.pb-style-help-btn:hover {
  background: rgba(201,169,110,0.14);
  border-color: rgba(201,169,110,0.45);
  transform: translateY(-1px);
}

/* ── Modal Systématique vs Discrétionnaire ── */
.pbstyle-modal {
  position: relative;
  background: #111115;
  border: 1px solid rgba(201,169,110,0.2);
  border-radius: 18px;
  padding: 32px;
  max-width: 700px;
  width: 100%;
  max-height: 85vh;
  overflow-y: auto;
  box-shadow: 0 32px 80px rgba(0,0,0,0.75), 0 4px 16px rgba(0,0,0,0.5);
}
.pbstyle-close {
  position: absolute;
  top: 16px; right: 16px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 7px;
  color: var(--text2);
  cursor: pointer;
  padding: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
  line-height: 0;
}
.pbstyle-close:hover { background: rgba(255,255,255,0.12); color: var(--text); }

.pbstyle-header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 18px;
  color: var(--accent);
}
.pbstyle-header svg { margin-top: 3px; flex-shrink: 0; }
.pbstyle-title {
  font-family: 'Oswald', sans-serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: #e8e6e3;
  text-transform: uppercase;
  line-height: 1.2;
}
.pbstyle-sub {
  font-size: 13px;
  color: var(--accent);
  font-family: 'Space Grotesk', sans-serif;
  margin-top: 3px;
}
.pbstyle-intro {
  font-size: 14px;
  line-height: 1.75;
  color: #9a9590;
  margin-bottom: 22px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
}
.pbstyle-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 20px;
}
@media (max-width: 580px) { .pbstyle-cards { grid-template-columns: 1fr; } }

.pbstyle-card {
  background: #16161b;
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 13px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pbstyle-card-header {
  display: flex;
  align-items: center;
  gap: 10px;
}
.pbstyle-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  background: rgba(201,169,110,0.12);
  border-radius: 8px;
  color: var(--accent);
  flex-shrink: 0;
}
.pbstyle-card-title {
  font-family: 'Oswald', sans-serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #e8e6e3;
}
.pbstyle-card-desc {
  font-size: 13px;
  line-height: 1.7;
  color: #9a9590;
  margin: 0;
}
/* FIX CLEF : block au lieu de flex pour éviter la fragmentation */
.pbstyle-card-rule {
  display: block;
  font-size: 13px;
  line-height: 1.75;
  color: #9a9590;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,0.06);
}
.pbstyle-card-rule svg {
  display: inline;
  vertical-align: middle;
  margin-right: 6px;
  color: var(--accent);
  position: relative;
  top: -1px;
}
.pbstyle-card-rule strong { color: #e8e6e3; font-weight: 600; }
.pbstyle-card-rule em { color: #e8c97e; font-style: normal; font-weight: 500; }

.pbstyle-footer {
  text-align: center;
  font-size: 13px;
  color: #5a5650;
  font-style: italic;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.06);
}

/* ======================================================
   ROI TRACKER
   ====================================================== */
.roi-card { padding: 20px 24px; }
.roi-card-header { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.roi-card-hint { font-size: 12px; color: var(--text3); }
.roi-empty { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: var(--text3); padding: 4px 0 2px; line-height: 1.6; }
.roi-empty svg { flex-shrink: 0; color: var(--accent); opacity: .6; margin-top: 2px; }
.roi-empty strong { color: var(--text2); }
.roi-cols { display: flex; align-items: center; flex-wrap: wrap; gap: 0; }
.roi-col { flex: 1; min-width: 90px; padding: 6px 20px; }
.roi-col:first-child { padding-left: 0; }
.roi-col-label { font-size: 11px; color: var(--text3); text-transform: uppercase; letter-spacing: .08em; font-family: 'Oswald', sans-serif; margin-bottom: 5px; }
.roi-col-value { font-family: 'JetBrains Mono', monospace; font-size: 22px; font-weight: 600; letter-spacing: -0.03em; }
.roi-col-value.pos { color: var(--green); }
.roi-col-value.neg { color: var(--red); }
.roi-col-pct { font-size: 12px; margin-top: 3px; }
.roi-col-pct.pos { color: var(--green); }
.roi-col-pct.neg { color: var(--red); }
.roi-col-main .roi-main-num { font-size: 28px; }
.roi-arrow { font-size: 18px; color: var(--text3); padding: 0 4px; align-self: center; flex-shrink: 0; }

/* Account ROI section */
.acc-roi-cta { display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--text3); cursor: pointer; padding: 9px 0 4px; border-top: 1px solid var(--border); margin-top: 10px; transition: color .2s; }
.acc-roi-cta:hover { color: var(--accent); }
.acc-roi-cta svg { color: var(--accent); flex-shrink: 0; opacity: .7; }
.acc-roi-details { margin-top: 10px; border-top: 1px solid var(--border); padding-top: 10px; }
.acc-roi-details > summary { font-size: 12px; color: var(--text2); cursor: pointer; display: flex; align-items: center; gap: 8px; list-style: none; padding: 2px 0; user-select: none; }
.acc-roi-details > summary::-webkit-details-marker { display: none; }
.acc-roi-badge { font-family: 'JetBrains Mono', monospace; font-size: 11.5px; font-weight: 600; padding: 2px 7px; border-radius: 5px; }
.acc-roi-badge.pos { background: rgba(55,194,106,.12); color: var(--green); }
.acc-roi-badge.neg { background: rgba(229,84,75,.1); color: var(--red); }
.acc-roi-body { padding: 10px 0 4px; display: flex; flex-direction: column; gap: 5px; }
.acc-roi-row { display: flex; justify-content: space-between; align-items: center; font-size: 12.5px; color: var(--text2); padding: 3px 0; }
.acc-roi-row .pos { color: var(--green); font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 500; }
.acc-roi-row .neg { color: var(--red); font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 500; }
.acc-roi-total { border-top: 1px solid var(--border); margin-top: 5px; padding-top: 7px; font-weight: 600; }
.acc-roi-del { background: none; border: none; color: var(--text3); cursor: pointer; font-size: 15px; padding: 0 2px; line-height: 1; transition: color .15s; }
.acc-roi-del:hover { color: var(--red); }
.acc-roi-add-btn { display: inline-flex; align-items: center; gap: 5px; margin-top: 6px; background: none; border: 1px dashed rgba(201,169,110,.3); border-radius: 7px; color: var(--accent); font-size: 12px; cursor: pointer; padding: 6px 12px; transition: all .2s; font-family: 'Space Grotesk', sans-serif; }
.acc-roi-add-btn:hover { background: rgba(201,169,110,.07); border-color: rgba(201,169,110,.55); }

/* Light mode ROI */
html[data-theme="light"] .acc-roi-cta { border-top-color: rgba(0,0,0,.08); }
html[data-theme="light"] .acc-roi-details { border-top-color: rgba(0,0,0,.08); }

/* ======================================================
   CHECKLIST MANAGEMENT (Plan page)
   ====================================================== */
.cl-mgmt-header { margin-bottom: 14px; }
.cl-mgmt-sub { font-size: 12px; color: var(--text3); margin-top: 3px; line-height: 1.5; }
.cl-mgmt-empty { font-size: 13px; color: var(--text3); padding: 8px 0 4px; line-height: 1.6; }
.cl-mgmt-item { display: flex; align-items: center; gap: 10px; padding: 9px 12px; background: rgba(255,255,255,.025); border: 1px solid var(--border); border-radius: 9px; margin-bottom: 7px; transition: border-color .2s; }
.cl-mgmt-item:hover { border-color: rgba(201,169,110,.25); }
.cl-mgmt-text { flex: 1; font-size: 13.5px; color: var(--text); }
.cl-mgmt-req { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--text3); cursor: pointer; white-space: nowrap; }
.cl-mgmt-req input { accent-color: var(--accent); cursor: pointer; }
.cl-mgmt-del { background: none; border: none; color: var(--text3); cursor: pointer; padding: 4px; line-height: 0; border-radius: 5px; transition: all .15s; flex-shrink: 0; }
.cl-mgmt-del:hover { background: rgba(229,84,75,.12); color: var(--red); }
.cl-mgmt-add-row { display: flex; align-items: center; gap: 8px; margin-top: 14px; flex-wrap: wrap; }
.cl-new-input { flex: 1; min-width: 180px; background: var(--bg3); border: 1px solid var(--border-med); border-radius: 9px; padding: 9px 13px; font-size: 13.5px; color: var(--text); font-family: 'Space Grotesk', sans-serif; transition: all .2s; }
.cl-new-input:focus { outline: 2px solid rgba(201,169,110,.4); border-color: transparent; }
.cl-new-input::placeholder { color: var(--text3); }
.cl-req-label { display: flex; align-items: center; gap: 5px; font-size: 12px; color: var(--text2); cursor: pointer; white-space: nowrap; }
.cl-req-label input { accent-color: var(--accent); cursor: pointer; }
.cl-add-btn { display: inline-flex; align-items: center; gap: 5px; padding: 9px 16px; background: rgba(201,169,110,.1); border: 1px solid rgba(201,169,110,.28); border-radius: 9px; color: var(--accent); font-size: 13px; font-weight: 600; cursor: pointer; font-family: 'Space Grotesk', sans-serif; transition: all .2s; white-space: nowrap; }
.cl-add-btn:hover { background: rgba(201,169,110,.18); border-color: rgba(201,169,110,.5); transform: translateY(-1px); }

html[data-theme="light"] .cl-mgmt-item { background: rgba(0,0,0,.02); }
html[data-theme="light"] .cl-new-input { background: #fff; }

/* ======================================================
   CHECKLIST MODAL (pré-trade)
   ====================================================== */
.cl-modal-box { background: #111115; border: 1px solid rgba(201,169,110,.15); border-radius: 20px; width: 100%; max-width: 500px; overflow: hidden; box-shadow: 0 32px 80px rgba(0,0,0,.75), 0 4px 16px rgba(0,0,0,.5); }
.cl-modal-header { padding: 24px 28px 20px; border-bottom: 1px solid rgba(255,255,255,.06); }
.cl-modal-title { display: flex; align-items: center; gap: 10px; font-family: 'Oswald', sans-serif; font-size: 18px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: #e8e6e3; margin-bottom: 16px; }
.cl-modal-title svg { color: var(--accent); flex-shrink: 0; }
.cl-modal-progress-row { display: flex; align-items: center; gap: 12px; }
.cl-modal-bar { flex: 1; height: 4px; background: rgba(255,255,255,.08); border-radius: 2px; overflow: hidden; }
.cl-modal-bar-fill { height: 100%; background: var(--accent); border-radius: 2px; transition: width .35s cubic-bezier(.4,0,.2,1); }
.cl-modal-counter { font-size: 12px; color: var(--text3); font-family: 'JetBrains Mono', monospace; white-space: nowrap; }
.cl-modal-list { padding: 14px 28px 18px; display: flex; flex-direction: column; gap: 8px; max-height: 52vh; overflow-y: auto; }
.cl-modal-item { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06); border-radius: 11px; cursor: pointer; transition: all .2s; user-select: none; }
.cl-modal-item:hover { background: rgba(255,255,255,.06); border-color: rgba(201,169,110,.2); transform: translateX(2px); }
.cl-modal-item.checked { background: rgba(201,169,110,.07); border-color: rgba(201,169,110,.28); }
.cl-modal-check { width: 22px; height: 22px; border-radius: 50%; border: 2px solid rgba(255,255,255,.18); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all .25s cubic-bezier(.4,0,.2,1); }
.cl-modal-check.checked { background: var(--accent); border-color: var(--accent); transform: scale(1.1); box-shadow: 0 0 10px rgba(201,169,110,.4); }
.cl-modal-check svg { color: #0c0c0e; }
.cl-modal-text { flex: 1; font-size: 14px; color: var(--text2); transition: color .2s; line-height: 1.4; }
.cl-modal-text.checked { color: var(--text3); }
.cl-modal-tag { font-size: 9px; font-weight: 700; padding: 2px 6px; border-radius: 4px; text-transform: uppercase; letter-spacing: .06em; flex-shrink: 0; font-family: 'Oswald', sans-serif; }
.cl-modal-tag.req { background: rgba(229,84,75,.14); color: #e5544b; }
.cl-modal-tag.opt { background: rgba(255,255,255,.06); color: var(--text3); }
.cl-modal-footer { padding: 16px 28px 24px; display: flex; flex-direction: column; align-items: stretch; gap: 10px; border-top: 1px solid rgba(255,255,255,.06); }
.cl-modal-action-btn { padding: 14px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); border-radius: 12px; color: var(--text3); font-size: 14px; font-weight: 600; font-family: 'Space Grotesk', sans-serif; cursor: not-allowed; transition: all .35s cubic-bezier(.4,0,.2,1); text-align: center; }
.cl-modal-action-btn.ready { background: var(--accent); border-color: var(--accent); color: #0c0c0e; cursor: pointer; box-shadow: 0 4px 24px rgba(201,169,110,.35); }
.cl-modal-action-btn.ready:hover { background: var(--accent2); box-shadow: 0 6px 32px rgba(201,169,110,.5); transform: translateY(-2px); }
.cl-modal-skip { background: none; border: none; color: var(--text3); font-size: 12px; cursor: pointer; font-family: 'Space Grotesk', sans-serif; transition: color .2s; text-align: center; padding: 4px; }
.cl-modal-skip:hover { color: var(--text2); }

html[data-theme="light"] .cl-modal-box { background: #faf7f2; border-color: rgba(139,105,20,.15); }
html[data-theme="light"] .cl-modal-item { background: rgba(0,0,0,.02); border-color: rgba(0,0,0,.07); }
html[data-theme="light"] .cl-modal-item.checked { background: rgba(139,105,20,.05); border-color: rgba(139,105,20,.2); }
html[data-theme="light"] .cl-modal-title { color: #1a1714; }
html[data-theme="light"] .cl-modal-check { border-color: rgba(0,0,0,.2); }

html[data-theme="light"] .pbstyle-modal {
  background: #faf7f2;
  border-color: rgba(139,105,20,0.2);
  box-shadow: 0 24px 64px rgba(0,0,0,0.15);
}
html[data-theme="light"] .pbstyle-card {
  background: #f0ede7;
  border-color: rgba(0,0,0,0.08);
}
html[data-theme="light"] .pbstyle-card-rule {
  border-top-color: rgba(0,0,0,0.08);
  color: #5c5650;
}
html[data-theme="light"] .pbstyle-title { color: #1a1714; }
html[data-theme="light"] .pbstyle-card-title { color: #1a1714; }
html[data-theme="light"] .pbstyle-card-rule strong { color: #1a1714; }
html[data-theme="light"] .pbstyle-footer { color: #9a9590; border-top-color: rgba(0,0,0,0.08); }

/* ── Lien FX Replay — glow doré ── */
.fxreplay-link {
  color: #c9a96e;
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px solid rgba(201,169,110,0.4);
  text-shadow: 0 0 8px rgba(201,169,110,0.5);
  transition: color 0.2s, text-shadow 0.2s, border-color 0.2s;
  white-space: nowrap;
}
.fxreplay-link:hover {
  color: #e8c97e;
  border-bottom-color: rgba(232,201,126,0.8);
  text-shadow: 0 0 12px rgba(232,201,126,0.7), 0 0 24px rgba(201,169,110,0.3);
}

/* ======================================================
   UPGRADE ESTHÉTIQUE — SÉLECTEURS & BOUTONS
   ====================================================== */

/* ── SELECT — custom bronze chevron, apparence premium ── */
select {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-color: #16161b !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23c9a96e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  padding-right: 36px !important;
  border: 1px solid rgba(255,255,255,0.09) !important;
  border-radius: 10px !important;
  color: var(--text) !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 13px !important;
  padding-top: 9px !important;
  padding-bottom: 9px !important;
  padding-left: 12px !important;
  cursor: pointer !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.04) !important;
}
select:hover {
  border-color: rgba(201,169,110,0.35) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.04), 0 0 0 3px rgba(201,169,110,0.08) !important;
}
select:focus {
  outline: none !important;
  border-color: rgba(201,169,110,0.55) !important;
  box-shadow: 0 0 0 3px rgba(201,169,110,0.15), 0 1px 3px rgba(0,0,0,0.3) !important;
}

/* Light mode select */
html[data-theme="light"] select {
  background-color: #faf7f2 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b6914' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  border-color: rgba(0,0,0,0.12) !important;
  color: #1a1714 !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.06) !important;
}
html[data-theme="light"] select:hover {
  border-color: rgba(139,105,20,0.4) !important;
}

/* ── VIEW TOGGLE (Liste / Par jour / Calendrier) ── */
.view-toggle {
  display: flex !important;
  background: #16161b !important;
  border: 1px solid rgba(255,255,255,0.09) !important;
  border-radius: 10px !important;
  padding: 3px !important;
  gap: 2px !important;
  height: auto !important;
  overflow: visible !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.04) !important;
}
.vtbtn {
  padding: 6px 14px !important;
  background: transparent !important;
  border: none !important;
  border-radius: 7px !important;
  cursor: pointer !important;
  font-size: 12px !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-weight: 500 !important;
  color: var(--text3) !important;
  transition: all 0.18s !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  white-space: nowrap !important;
}
.vtbtn:hover:not(.active) {
  background: rgba(255,255,255,0.05) !important;
  color: var(--text2) !important;
}
.vtbtn.active {
  background: linear-gradient(145deg, #1e1a12, #141008) !important;
  color: var(--accent) !important;
  font-weight: 600 !important;
  box-shadow: 0 1px 0 rgba(255,255,255,0.08) inset, 0 2px 8px rgba(0,0,0,0.4) !important;
  border: 1px solid rgba(201,169,110,0.25) !important;
}
html[data-theme="light"] .view-toggle {
  background: #f0ede7 !important;
  border-color: rgba(0,0,0,0.1) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.06) !important;
}
html[data-theme="light"] .vtbtn.active {
  background: linear-gradient(145deg, #fff8ec, #fdf4e3) !important;
  border-color: rgba(139,105,20,0.3) !important;
  color: #8b6914 !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.08) !important;
}
html[data-theme="light"] .vtbtn:hover:not(.active) { color: var(--text2) !important; }

/* ── PLAYBOOK TABS (Systématique / Discrétionnaire) ── */
.playbook-tabs {
  background: #16161b !important;
  border: 1px solid rgba(255,255,255,0.09) !important;
  border-radius: 12px !important;
  padding: 4px !important;
  gap: 3px !important;
  display: flex !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3) !important;
  margin-bottom: 20px !important;
}
.pb-tab {
  flex: 1 !important;
  padding: 10px 16px !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  color: var(--text3) !important;
  font-family: 'Oswald', sans-serif !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 7px !important;
}
.pb-tab:hover:not(.active) {
  background: rgba(201,169,110,0.07) !important;
  color: var(--text2) !important;
  border-color: rgba(201,169,110,0.15) !important;
}
.pb-tab.active {
  background: linear-gradient(145deg, #1e1a12, #141008) !important;
  border-color: rgba(201,169,110,0.3) !important;
  color: var(--accent) !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 10px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.07) !important;
}
html[data-theme="light"] .playbook-tabs {
  background: #f0ede7 !important;
  border-color: rgba(0,0,0,0.09) !important;
}
html[data-theme="light"] .pb-tab.active {
  background: linear-gradient(145deg, #fff8ec, #fdf4e3) !important;
  border-color: rgba(139,105,20,0.3) !important;
  color: #8b6914 !important;
}

/* ── BTN-SECONDARY — plus de présence ── */
.btn-secondary {
  background: #16161b !important;
  border: 1px solid rgba(255,255,255,0.09) !important;
  border-radius: 9px !important;
  color: var(--text2) !important;
  font-family: 'Space Grotesk', sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  padding: 8px 14px !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.04) !important;
  white-space: nowrap !important;
}
.btn-secondary:hover {
  background: #1e1e26 !important;
  border-color: rgba(201,169,110,0.3) !important;
  color: var(--accent) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 3px 10px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.06) !important;
}
.btn-secondary:active { transform: translateY(0) !important; }

html[data-theme="light"] .btn-secondary {
  background: #faf7f2 !important;
  border-color: rgba(0,0,0,0.1) !important;
  color: var(--text) !important;
  box-shadow: 0 1px 2px rgba(0,0,0,0.06) !important;
}
html[data-theme="light"] .btn-secondary:hover {
  background: #fff8ec !important;
  border-color: rgba(139,105,20,0.35) !important;
  color: #8b6914 !important;
}

/* ── ACCOUNT SELECTOR SIDEBAR ── */
.account-selector select,
#active-account-select {
  background-color: rgba(12,12,18,0.9) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%23c9a96e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  background-size: 13px 13px !important;
  border: 1px solid rgba(201,169,110,0.25) !important;
  border-radius: 10px !important;
  padding: 9px 34px 9px 12px !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  color: var(--text) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  cursor: pointer !important;
  box-shadow: 0 2px 10px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.04) !important;
  transition: border-color 0.18s !important;
  width: 100% !important;
}
.account-selector select:hover,
#active-account-select:hover {
  border-color: rgba(201,169,110,0.45) !important;
  background-color: rgba(16,16,24,0.95) !important;
}
.account-selector select:focus,
#active-account-select:focus {
  outline: none !important;
  border-color: rgba(201,169,110,0.6) !important;
  box-shadow: 0 0 0 2px rgba(201,169,110,0.1), 0 2px 10px rgba(0,0,0,0.35) !important;
}

html[data-theme="light"] .account-selector select,
html[data-theme="light"] #active-account-select {
  background-color: #fff8ec !important;
  border-color: rgba(139,105,20,0.25) !important;
  color: #1a1714 !important;
}

/* ======================================================
   CORRECTIFS AUDIT — batch 2
   ====================================================== */

/* ── Promo panel light mode ── */
html[data-theme="light"] .promo-tab {
  background: linear-gradient(180deg, #f5f0e8, #e8e3d8);
  color: #5c5650;
  border-color: rgba(139,105,20,0.2);
}
html[data-theme="light"] .promo-panel {
  background: linear-gradient(160deg, #faf7f2, #f0ede7);
  border-color: rgba(139,105,20,0.2);
  box-shadow: -4px 0 24px rgba(0,0,0,0.1);
}
html[data-theme="light"] .promo-card {
  background: rgba(0,0,0,0.03);
  border-color: rgba(0,0,0,0.1);
}
html[data-theme="light"] .promo-firm { color: #1a1714; }
html[data-theme="light"] .promo-deal { color: var(--accent); }
html[data-theme="light"] .promo-label { color: #9a9590; }

/* ── Séparateur navigation ── */
.nav-sep {
  height: 1px;
  background: var(--border);
  margin: 8px 16px;
  opacity: 0.6;
}

/* ── Confirm modal ── */
.btn-danger {
  background: rgba(229,84,75,0.1);
  border: 1px solid rgba(229,84,75,0.35);
  border-radius: 9px;
  color: var(--red);
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 600;
  padding: 9px 18px;
  cursor: pointer;
  transition: all 0.2s;
}
.btn-danger:hover {
  background: rgba(229,84,75,0.18);
  border-color: rgba(229,84,75,0.6);
  transform: translateY(-1px);
}

/* ── Tooltips CSS ── */
[data-tooltip] { position: relative; }
[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  background: #1a1a22;
  border: 1px solid var(--border);
  border-radius: 7px;
  padding: 5px 9px;
  font-size: 11px;
  font-family: 'Space Grotesk', sans-serif;
  color: var(--muted2);
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s;
  z-index: 100;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
[data-tooltip]:hover::after { opacity: 1; }
html[data-theme="light"] [data-tooltip]::after {
  background: #faf7f2;
  border-color: rgba(0,0,0,0.12);
  color: #5c5650;
}

/* ── Heatmap cellules cliquables ── */
.heatmap-cell[data-date] {
  cursor: pointer;
  transition: transform 0.15s, box-shadow 0.15s;
}
.heatmap-cell[data-date]:hover {
  transform: scale(1.35);
  z-index: 2;
  box-shadow: 0 0 0 2px rgba(201,169,110,0.5);
  border-radius: 2px;
}

/* ── Sidebar DD gauge ── */
.sidebar-dd-wrap {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--border);
}
.sidebar-dd-label {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--muted);
  margin-bottom: 5px;
  font-family: 'Oswald', sans-serif;
}
.sidebar-dd-bar-wrap {
  height: 4px;
  background: rgba(255,255,255,0.07);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 4px;
}
.sidebar-dd-bar-fill {
  height: 100%;
  border-radius: 2px;
  transition: width 0.35s ease;
}
.sidebar-dd-bar-fill.safe { background: var(--green); }
.sidebar-dd-bar-fill.warn { background: var(--amber); }
.sidebar-dd-bar-fill.danger { background: var(--red); }
.sidebar-dd-val {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  display: flex;
  justify-content: space-between;
}
.sidebar-dd-val .safe { color: var(--green); }
.sidebar-dd-val .warn { color: var(--amber); }
.sidebar-dd-val .danger { color: var(--red); }

/* ── Affirmation Overview ── */
.overview-aff {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  background: rgba(201,169,110,0.05);
  border: 1px solid rgba(201,169,110,0.15);
  border-radius: 12px;
  margin-bottom: 18px;
}
.overview-aff-icon { color: var(--accent); opacity: 0.7; flex-shrink: 0; }
.overview-aff-text {
  font-size: 13.5px;
  color: var(--muted2);
  font-style: italic;
  line-height: 1.5;
}
html[data-theme="light"] .overview-aff {
  background: rgba(139,105,20,0.04);
  border-color: rgba(139,105,20,0.12);
}

/* ======================================================
   CAPITAL HERO (Overview)
   ====================================================== */
.capital-hero {
  display: flex; align-items: stretch; justify-content: space-between; gap: 18px;
  padding: 16px 22px; margin-bottom: 16px;
  background: linear-gradient(145deg, var(--surface), var(--bg-deep));
  border: 1px solid rgba(201,169,110,0.18);
  border-radius: 14px;
  box-shadow: 0 6px 20px -10px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.04);
  position: relative; overflow: hidden;
}
.capital-hero::before {
  content:""; position:absolute; left:0; top:0; right:0; height:1px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent); opacity:.5;
}
.capital-hero-label {
  font-family: 'Oswald', sans-serif; font-size: 11px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.12em; color: var(--accent);
  margin-bottom: 5px;
}
.capital-hero-value {
  font-family: 'JetBrains Mono', monospace; font-size: 30px; font-weight: 600;
  letter-spacing: -0.03em; color: var(--text); line-height: 1;
}
.capital-hero-sub { font-size: 12px; color: var(--text2); margin-top: 6px; font-family: 'Space Grotesk', sans-serif; }
.capital-hero-pnl {
  display: flex; flex-direction: column; justify-content: center; align-items: flex-end;
  padding-left: 18px; border-left: 1px solid var(--border); flex-shrink: 0;
}
.capital-hero-pnl-label {
  font-family: 'Oswald', sans-serif; font-size: 10px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.1em; color: var(--text3); margin-bottom: 4px;
}
.capital-hero-pnl-value {
  font-family: 'JetBrains Mono', monospace; font-size: 22px; font-weight: 600; letter-spacing: -0.03em;
}
.capital-hero-pnl.pos .capital-hero-pnl-value { color: var(--green); text-shadow: 0 0 18px rgba(55,194,106,0.35); }
.capital-hero-pnl.neg .capital-hero-pnl-value { color: var(--red); text-shadow: 0 0 18px rgba(229,84,75,0.3); }
.capital-hero-pnl-pct { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 600; margin-top: 3px; }
.capital-hero-pnl.pos .capital-hero-pnl-pct { color: var(--green); }
.capital-hero-pnl.neg .capital-hero-pnl-pct { color: var(--red); }
.capital-hero-pnl-pct-cap { color: var(--text3); font-weight: 500; }
@media (max-width: 640px) {
  .capital-hero { flex-direction: column; gap: 14px; }
  .capital-hero-value { font-size: 26px; }
  .capital-hero-pnl { border-left: none; border-top: 1px solid var(--border); padding-left: 0; padding-top: 14px; align-items: flex-start; }
}
html[data-theme="light"] .capital-hero { background: linear-gradient(145deg, #ffffff, #f5f0e8); }

/* ======================================================
   JOURNAL — sélecteur de compte dans le header
   ====================================================== */
.journal-acc-select {
  width: auto !important;
  min-width: 150px;
  max-width: 220px;
  height: 38px;
  font-weight: 600 !important;
}

/* ======================================================
   CYCLE DE VIE COMPTE — validé / funded
   ====================================================== */
.account-card.validated { opacity: 0.82; border-color: rgba(55,194,106,0.25); }
.account-card.validated:hover { opacity: 1; }
.acc-name-validated {
  font-family: 'Oswald', sans-serif; font-size: 10px; font-weight: 600;
  color: var(--green); background: rgba(55,194,106,0.12);
  padding: 2px 7px; border-radius: 5px; letter-spacing: 0.05em;
  vertical-align: middle; margin-left: 6px;
}
/* Compte cramé (symétrique au validé) */
.account-card.blown { opacity: 0.6; filter: grayscale(0.35); border-color: rgba(229,84,75,0.3); }
.account-card.blown:hover { opacity: 1; filter: none; }
.acc-name-blown {
  font-family: 'Oswald', sans-serif; font-size: 10px; font-weight: 600;
  color: var(--red); background: rgba(229,84,75,0.12);
  padding: 2px 7px; border-radius: 5px; letter-spacing: 0.05em;
  vertical-align: middle; margin-left: 6px;
}
.acc-blown {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border);
}
.acc-blown-badge {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 13px; color: var(--red); font-weight: 600;
}
.acc-validated {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border);
}
.acc-validated-badge {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 13px; color: var(--green); font-weight: 600;
}
.acc-funded-btn {
  display: inline-flex; align-items: center; gap: 5px;
  background: rgba(201,169,110,0.1); border: 1px solid rgba(201,169,110,0.3);
  border-radius: 8px; color: var(--accent); font-size: 12.5px; font-weight: 600;
  padding: 7px 13px; cursor: pointer; font-family: 'Space Grotesk', sans-serif; transition: all .2s;
}
.acc-funded-btn:hover { background: rgba(201,169,110,0.18); border-color: rgba(201,169,110,0.55); transform: translateY(-1px); }
.acc-validate-cta {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  margin-top: 12px; padding: 12px 14px;
  background: rgba(55,194,106,0.07); border: 1px solid rgba(55,194,106,0.22); border-radius: 10px;
}
.acc-validate-msg { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--green); }
.acc-validate-btn {
  background: var(--green); border: none; border-radius: 8px; color: #0c0c0e;
  font-size: 12.5px; font-weight: 700; padding: 8px 14px; cursor: pointer;
  font-family: 'Space Grotesk', sans-serif; transition: all .2s; white-space: nowrap;
}
.acc-validate-btn:hover { filter: brightness(1.1); transform: translateY(-1px); box-shadow: 0 4px 14px -4px rgba(55,194,106,0.5); }

/* ======================================================
   PAYOUTS — liste
   ====================================================== */
.payout-item {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 13px 16px; background: rgba(255,255,255,.025);
  border: 1px solid var(--border); border-radius: 11px; margin-bottom: 8px;
  transition: border-color .2s;
}
.payout-item:hover { border-color: rgba(201,169,110,0.25); }
.payout-item-left { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.payout-item-firm { font-size: 14px; font-weight: 600; color: var(--text); }
.payout-item-note { font-size: 12px; color: var(--text3); }
.payout-item-right { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.payout-item-date { font-size: 12px; color: var(--text3); font-family: 'JetBrains Mono', monospace; }
.payout-item-amount {
  font-family: 'JetBrains Mono', monospace; font-size: 16px; font-weight: 600;
  color: var(--green); letter-spacing: -0.02em;
}
.payout-item-del {
  background: none; border: none; color: var(--text3); cursor: pointer;
  padding: 4px; line-height: 0; border-radius: 5px; transition: all .15s;
}
.payout-item-del:hover { background: rgba(229,84,75,.12); color: var(--red); }
html[data-theme="light"] .payout-item { background: rgba(0,0,0,.02); }

/* ======================================================
   LANG BADGE (Mentors — remplace les drapeaux emoji)
   ====================================================== */
.lang-badge {
  display: inline-block;
  font-family: 'Oswald', sans-serif;
  font-size: 10px; font-weight: 600; letter-spacing: 0.06em;
  color: var(--text2);
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 1px 5px;
  margin-right: 3px;
}
html[data-theme="light"] .lang-badge { background: rgba(0,0,0,0.04); }

/* ======================================================
   TOOLTIP CUE — labels de métriques explicables
   ====================================================== */
.stat-label.has-tip {
  cursor: help;
  border-bottom: 1px dotted rgba(201,169,110,0.5);
  display: inline-block;
  padding-bottom: 1px;
}
.stat-label.has-tip::before {
  content: "?";
  display: inline-flex; align-items: center; justify-content: center;
  width: 12px; height: 12px; margin-left: 4px;
  font-size: 8px; font-weight: 700;
  color: var(--accent); background: rgba(201,169,110,0.14);
  border-radius: 50%; vertical-align: middle;
}

/* ======================================================
   TOP CONTROLS (réglages + thème)
   ====================================================== */
.top-controls {
  position: fixed; top: 18px; right: 18px; z-index: 999;
  display: flex; gap: 10px;
}
.top-controls .theme-toggle { position: static; top: auto; right: auto; }
@media (max-width: 700px) {
  .top-controls { top: 10px; right: 10px; gap: 7px; }
}

/* ======================================================
   MINI STATS (capital challenge / brûlé)
   ====================================================== */
.mini-stats-row {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px; margin-bottom: 16px;
}
.mini-stat {
  padding: 12px 16px;
  background: rgba(255,255,255,0.025);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.mini-stat-label {
  font-family: 'Oswald', sans-serif; font-size: 10px; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.1em; color: var(--text3); margin-bottom: 5px;
}
.mini-stat-value {
  font-family: 'JetBrains Mono', monospace; font-size: 20px; font-weight: 600;
  letter-spacing: -0.03em; color: var(--text);
}
.mini-stat-value.neg { color: var(--red); }
.mini-stat-value.pos { color: var(--green); }
.mini-stat-sub { font-size: 11px; color: var(--text3); margin-top: 4px; }
html[data-theme="light"] .mini-stat { background: rgba(0,0,0,0.02); }

/* ======================================================
   BOUTON "?" discret
   ====================================================== */
.info-q-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px; flex-shrink: 0;
  font-size: 10px; font-weight: 700; font-family: 'Space Grotesk', sans-serif;
  color: var(--accent); background: rgba(201,169,110,0.14);
  border: 1px solid rgba(201,169,110,0.3); border-radius: 50%;
  cursor: pointer; transition: all .2s; line-height: 1;
}
.info-q-btn:hover { background: rgba(201,169,110,0.28); transform: scale(1.12); }

/* ======================================================
   SETTINGS MODAL
   ====================================================== */
.settings-modal {
  position: relative;
  background: #111115;
  border: 1px solid rgba(201,169,110,0.18);
  border-radius: 18px;
  padding: 24px 30px;
  max-width: 640px; width: 100%;
  box-shadow: 0 32px 80px rgba(0,0,0,0.7);
}
#settings-toggles {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 24px;
}
.settings-group-title {
  grid-column: 1 / -1;
  font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--bronze); margin: 14px 0 4px;
}
.settings-group-title:first-child { margin-top: 0; }
.settings-title {
  font-family: 'Oswald', sans-serif; font-size: 18px; font-weight: 600;
  letter-spacing: 0.04em; text-transform: uppercase; color: #e8e6e3;
}
.settings-sub { font-size: 13px; color: var(--text2); margin-top: 4px; margin-bottom: 18px; }
.settings-row {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.06);
}
.settings-row:last-child { border-bottom: none; }
.settings-row-label { font-size: 14px; color: var(--text); }
.settings-switch {
  position: relative; width: 42px; height: 24px; flex-shrink: 0;
  background: rgba(255,255,255,0.1); border: 1px solid var(--border-med);
  border-radius: 13px; cursor: pointer; transition: all .25s cubic-bezier(.4,0,.2,1);
}
.settings-switch.on { background: var(--accent); border-color: var(--accent); }
.settings-switch-knob {
  position: absolute; top: 2px; left: 2px;
  width: 18px; height: 18px; border-radius: 50%;
  background: #e8e6e3; transition: transform .25s cubic-bezier(.4,0,.2,1);
  box-shadow: 0 1px 3px rgba(0,0,0,0.4);
}
.settings-switch.on .settings-switch-knob { transform: translateX(18px); background: #0c0c0e; }
.settings-lang-row {
  grid-column: 1 / -1;
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.06);
}
.settings-lang-pills { display: flex; gap: 6px; }
.settings-lang-pill {
  padding: 4px 14px; border-radius: 99px; font-size: 12px; font-weight: 600;
  letter-spacing: 0.06em; cursor: pointer;
  border: 1px solid rgba(255,255,255,0.12);
  background: transparent; color: var(--text2);
  transition: all .18s;
}
.settings-lang-pill.active {
  background: var(--accent); border-color: var(--accent); color: #0c0c0e;
}
html[data-theme="light"] .settings-lang-pill { border-color: rgba(0,0,0,0.15); color: #555; }
html[data-theme="light"] .settings-lang-pill.active { color: #fff; }
html[data-theme="light"] .settings-modal { background: #faf7f2; border-color: rgba(139,105,20,0.18); }
html[data-theme="light"] .settings-title { color: #1a1714; }

/* ======================================================
   FILTRES COMPTES (par état du cycle de vie)
   ====================================================== */
.accounts-filter-row {
  display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px;
}
.acc-filter-chip {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 7px 13px;
  background: #16161b;
  border: 1px solid rgba(255,255,255,0.09);
  border-radius: 9px;
  color: var(--text2);
  font-family: 'Space Grotesk', sans-serif; font-size: 12.5px; font-weight: 500;
  cursor: pointer; transition: all 0.18s; white-space: nowrap;
}
.acc-filter-chip:hover { border-color: rgba(201,169,110,0.3); color: var(--text); }
.acc-filter-chip.sel {
  background: linear-gradient(145deg, #1e1a12, #141008);
  border-color: rgba(201,169,110,0.35);
  color: var(--accent);
  box-shadow: 0 1px 0 rgba(255,255,255,0.06) inset, 0 2px 8px rgba(0,0,0,0.35);
}
.acc-filter-count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 18px; height: 18px; padding: 0 5px;
  font-family: 'JetBrains Mono', monospace; font-size: 10.5px; font-weight: 600;
  background: rgba(255,255,255,0.06); border-radius: 9px;
  color: var(--text3);
}
.acc-filter-chip.sel .acc-filter-count { background: rgba(201,169,110,0.18); color: var(--accent); }
html[data-theme="light"] .acc-filter-chip { background: #faf7f2; border-color: rgba(0,0,0,0.1); }
html[data-theme="light"] .acc-filter-chip.sel { background: linear-gradient(145deg, #fff8ec, #fdf4e3); border-color: rgba(139,105,20,0.3); color: #8b6914; }

/* ======================================================
   QUICK LOG — saisie ultra-rapide
   ====================================================== */
.ql-box {
  background: #111115;
  border: 1px solid rgba(201,169,110,0.18);
  border-radius: 18px;
  width: 100%; max-width: 380px;
  box-shadow: 0 32px 80px rgba(0,0,0,0.7);
  overflow: hidden;
}
.ql-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 18px 22px 14px;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.ql-title {
  display: flex; align-items: center; gap: 9px;
  font-family: 'Oswald', sans-serif; font-size: 16px; font-weight: 600;
  letter-spacing: 0.05em; text-transform: uppercase; color: #e8e6e3;
}
.ql-title svg { color: var(--accent); }
.ql-close {
  background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1);
  border-radius: 7px; color: var(--text2); cursor: pointer; padding: 5px;
  display: flex; line-height: 0; transition: all .2s;
}
.ql-close:hover { background: rgba(255,255,255,0.12); color: var(--text); }
.ql-body { padding: 18px 22px 22px; display: flex; flex-direction: column; gap: 12px; }
.ql-toprow { display: flex; gap: 10px; }
.ql-toprow .ql-account { flex: 1 1 auto !important; min-width: 0; width: auto !important; font-weight: 600 !important; }
.ql-toprow .ql-date { flex: 0 0 140px !important; width: 140px !important; }
.ql-instrument {
  font-size: 15px !important; text-transform: uppercase; letter-spacing: 0.04em;
}
.ql-dir { display: flex; gap: 10px; }
.ql-dir-btn {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 12px; background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1); border-radius: 11px;
  color: var(--text2); font-family: 'Space Grotesk', sans-serif; font-size: 14px; font-weight: 600;
  cursor: pointer; transition: all .18s;
}
.ql-dir-btn:hover { border-color: rgba(255,255,255,0.2); color: var(--text); }
.ql-dir-btn.long { background: rgba(55,194,106,0.14); border-color: var(--green); color: var(--green); }
.ql-dir-btn.short { background: rgba(229,84,75,0.14); border-color: var(--red); color: var(--red); }
.ql-pnl {
  font-family: 'JetBrains Mono', monospace !important;
  font-size: 22px !important; font-weight: 600; text-align: center;
  letter-spacing: -0.02em; padding: 14px !important;
}
.ql-save {
  margin-top: 4px; padding: 14px;
  background: var(--accent); border: none; border-radius: 12px;
  color: #0c0c0e; font-family: 'Space Grotesk', sans-serif; font-size: 15px; font-weight: 700;
  cursor: pointer; transition: all .2s;
  box-shadow: 0 4px 20px rgba(201,169,110,0.3);
}
.ql-save:hover { background: var(--accent2); transform: translateY(-1px); box-shadow: 0 6px 28px rgba(201,169,110,0.45); }
.ql-save:active { transform: translateY(0); }
.ql-details {
  background: none; border: none; color: var(--text3); font-size: 12.5px;
  cursor: pointer; font-family: 'Space Grotesk', sans-serif; padding: 4px; transition: color .2s;
}
.ql-details:hover { color: var(--accent); }
html[data-theme="light"] .ql-box { background: #faf7f2; border-color: rgba(139,105,20,0.15); }
html[data-theme="light"] .ql-title { color: #1a1714; }
html[data-theme="light"] .ql-dir-btn { background: rgba(0,0,0,0.03); border-color: rgba(0,0,0,0.1); }

/* Titre de groupe dans les réglages */
.settings-group-title {
  font-family: 'Oswald', sans-serif; font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.1em; color: var(--accent);
  margin: 18px 0 4px; opacity: 0.85;
}
.settings-group-title:first-child { margin-top: 0; }

/* ======================================================
   MARGE AVANT CRAMAGE (hero Overview)
   ====================================================== */
.cramage-card { padding: 20px 24px; margin-bottom: 16px; border-color: rgba(201,169,110,0.18); }
.cramage-header { display: flex; align-items: baseline; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.cramage-title {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: 'Oswald', sans-serif; font-size: 13px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.08em; color: var(--accent);
}
.cramage-hint { font-size: 12px; color: var(--text3); }
.cramage-list { display: flex; flex-direction: column; gap: 14px; }
.cramage-row-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.cramage-name { font-size: 14px; font-weight: 600; color: var(--text); }
.cramage-remaining { font-family: 'JetBrains Mono', monospace; font-size: 15px; font-weight: 600; letter-spacing: -0.02em; }
.cramage-remaining.safe { color: var(--green); }
.cramage-remaining.warn { color: var(--amber); }
.cramage-remaining.danger { color: var(--red); }
.cramage-remaining.blown { color: var(--red); }
.cramage-bar { height: 6px; background: rgba(255,255,255,0.07); border-radius: 3px; overflow: hidden; }
.cramage-bar-fill { height: 100%; border-radius: 3px; transition: width .4s ease; }
.cramage-bar-fill.safe { background: var(--green); }
.cramage-bar-fill.warn { background: var(--amber); }
.cramage-bar-fill.danger { background: var(--red); }
.cramage-bar-fill.blown { background: var(--red); width: 100% !important; }
.cramage-sub { font-size: 11.5px; color: var(--text3); margin-top: 5px; font-family: 'Space Grotesk', sans-serif; }
html[data-theme="light"] .cramage-bar { background: rgba(0,0,0,0.06); }

/* ============================================================
   COACHING
   ============================================================ */

/* Nav badge */
.nav-coach-badge {
  font-size: 9px; font-weight: 700; letter-spacing: 0.08em;
  background: var(--gold); color: #000;
  padding: 1px 5px; border-radius: 3px; margin-left: 6px;
  vertical-align: middle;
}
.nav-item--coach .nav-dot { background: var(--gold); }

/* Top bar */
.coaching-bar {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 18px;
}
.coaching-bar-title {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 600; color: var(--text);
}
.coaching-readonly-tag {
  font-size: 10.5px; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase;
  background: rgba(251,191,36,0.12); color: var(--gold);
  border: 1px solid rgba(251,191,36,0.25); border-radius: 4px;
  padding: 3px 8px;
}

/* Grid of student cards */
.coaching-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 16px;
}

/* Student card */
.csc-card {
  background: var(--card); border: 1px solid var(--border);
  border-radius: 14px; padding: 18px 18px 14px;
  cursor: pointer; transition: border-color .2s, transform .15s, box-shadow .2s;
  display: flex; flex-direction: column; gap: 14px;
}
.csc-card:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 24px rgba(212,175,55,0.1);
  transform: translateY(-2px);
}

.csc-top { display: flex; align-items: center; gap: 12px; }
.csc-avatar-wrap { position: relative; flex-shrink: 0; }
.csc-avatar {
  width: 42px; height: 42px; border-radius: 50%;
  background: linear-gradient(135deg, rgba(212,175,55,0.2), rgba(212,175,55,0.05));
  border: 1.5px solid rgba(212,175,55,0.3);
  display: flex; align-items: center; justify-content: center;
  font-size: 17px; font-weight: 700; color: var(--gold);
}
.csc-online-dot {
  position: absolute; bottom: 1px; right: 1px;
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--green); border: 2px solid var(--card);
}
.csc-identity { flex: 1; min-width: 0; }
.csc-name { font-size: 14px; font-weight: 600; color: var(--text); }
.csc-meta { font-size: 11.5px; color: var(--text3); margin-top: 2px; }
.csc-login { font-size: 11px; color: var(--text3); opacity: .75; margin-top: 3px; }
.csc-login-count { opacity: .85; }
.csc-pnl { font-size: 15px; font-weight: 700; font-family: 'JetBrains Mono', monospace; }
.csc-pnl.pos { color: var(--green); }
.csc-pnl.neg { color: var(--red); }

.csc-stats-row {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
  gap: 8px;
}
.csc-stat-box {
  background: rgba(255,255,255,0.03); border: 1px solid var(--border);
  border-radius: 8px; padding: 8px 10px; text-align: center;
}
.csc-stat-val { font-size: 12px; font-weight: 700; color: var(--text); font-family: 'JetBrains Mono', monospace; }
.csc-stat-val.pos { color: var(--green); }
.csc-stat-val.neg { color: var(--red); }
.csc-stat-lbl { font-size: 10px; color: var(--text3); margin-top: 2px; }

.csc-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; }
.csc-spark { flex: 1; min-width: 0; overflow: hidden; }
.csc-spark svg { display: block; }

.csc-open-btn {
  display: flex; align-items: center; gap: 5px; flex-shrink: 0;
  background: rgba(212,175,55,0.1); color: var(--gold);
  border: 1px solid rgba(212,175,55,0.25); border-radius: 7px;
  padding: 7px 12px; font-size: 12px; font-weight: 600;
  cursor: pointer; transition: background .15s;
}
.csc-open-btn:hover { background: rgba(212,175,55,0.18); }

/* ——— Student detail view ——— */
.sd-header {
  display: flex; align-items: center; gap: 14px;
  margin-bottom: 22px; flex-wrap: wrap;
}
.sd-back {
  display: flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,0.05); border: 1px solid var(--border);
  border-radius: 7px; padding: 7px 12px; font-size: 12px;
  font-weight: 600; color: var(--text2); cursor: pointer;
  transition: border-color .15s; flex-shrink: 0;
}
.sd-back:hover { border-color: var(--accent); color: var(--accent); }

.sd-identity { display: flex; align-items: center; gap: 12px; flex: 1; }
.sd-avatar {
  width: 48px; height: 48px; border-radius: 50%; flex-shrink: 0;
  background: linear-gradient(135deg, rgba(212,175,55,0.25), rgba(212,175,55,0.06));
  border: 2px solid rgba(212,175,55,0.35);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; font-weight: 700; color: var(--gold);
}
.sd-name { font-size: 16px; font-weight: 700; color: var(--text); }
.sd-sub { font-size: 12px; color: var(--text3); margin-top: 2px; }

/* KPI row */
.sd-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 10px; margin-bottom: 24px;
}
.sd-kpi {
  background: var(--card); border: 1px solid var(--border);
  border-radius: 10px; padding: 14px 14px 10px; text-align: center;
}
.sd-kpi-val {
  font-size: 17px; font-weight: 700; letter-spacing: -0.02em;
  font-family: 'JetBrains Mono', monospace; color: var(--text);
}
.sd-kpi-val.pos { color: var(--green); }
.sd-kpi-val.neg { color: var(--red); }
.sd-kpi-lbl { font-size: 11px; color: var(--text3); margin-top: 4px; }

/* Sections */
.sd-section { margin-bottom: 20px; }
.sd-section-title {
  font-size: 12px; font-weight: 600; letter-spacing: 0.05em;
  text-transform: uppercase; color: var(--text3); margin-bottom: 10px;
}
.sd-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 700px) { .sd-row { grid-template-columns: 1fr; } }

/* Equity curve */
.sd-equity {
  background: var(--card); border: 1px solid var(--border);
  border-radius: 10px; padding: 12px 8px; overflow: hidden;
}

/* PnL heatmap by day */
.sd-heatmap { display: flex; flex-direction: column; gap: 6px; }
.sd-heat-row { display: flex; align-items: center; gap: 8px; }
.sd-heat-date { font-size: 11px; color: var(--text3); width: 82px; flex-shrink: 0; font-family: 'JetBrains Mono', monospace; }
.sd-heat-bar-wrap { flex: 1; height: 6px; background: rgba(255,255,255,0.07); border-radius: 3px; overflow: hidden; }
.sd-heat-bar { height: 100%; border-radius: 3px; min-width: 3px; transition: width .3s; }
.sd-heat-bar.pos { background: var(--green); }
.sd-heat-bar.neg { background: var(--red); }
.sd-heat-val { font-size: 11.5px; font-weight: 600; width: 68px; text-align: right; font-family: 'JetBrains Mono', monospace; flex-shrink: 0; }
.sd-heat-val.pos { color: var(--green); }
.sd-heat-val.neg { color: var(--red); }

/* Trades table */
.sd-trades-wrap { overflow-x: auto; }
.sd-trades-table {
  width: 100%; border-collapse: collapse; font-size: 12px;
}
.sd-trades-table th {
  text-align: left; color: var(--text3); font-size: 10.5px;
  text-transform: uppercase; letter-spacing: 0.04em; font-weight: 600;
  padding: 0 8px 8px; border-bottom: 1px solid var(--border);
}
.sd-trades-table td {
  padding: 7px 8px; border-bottom: 1px solid rgba(255,255,255,0.04);
  color: var(--text2); font-family: 'JetBrains Mono', monospace;
}
.sd-trades-table tbody tr:last-child td { border-bottom: none; }
.coach-trade-selected td { background: rgba(212,175,55,.08); }
.pos-text { color: var(--green) !important; }
.neg-text { color: var(--red) !important; }
.sd-empty { font-size: 13px; color: var(--text3); padding: 12px 0; }

/* Light theme tweaks */
html[data-theme="light"] .csc-card { background: #fff; }
html[data-theme="light"] .csc-avatar { background: rgba(180,140,20,0.1); }
html[data-theme="light"] .csc-stat-box { background: rgba(0,0,0,0.02); }
html[data-theme="light"] .sd-kpi { background: #fff; }
html[data-theme="light"] .sd-equity { background: #fff; }
html[data-theme="light"] .sd-heat-bar-wrap { background: rgba(0,0,0,0.06); }
html[data-theme="light"] .sd-trades-table td { border-bottom-color: rgba(0,0,0,0.05); }

/* ============================================================
   COACHING — extensions v2
   ============================================================ */

/* Invite button */
.csc-invite-btn {
  display: flex; align-items: center; gap: 6px; flex-shrink: 0;
  background: rgba(212,175,55,0.08); color: var(--gold);
  border: 1px solid rgba(212,175,55,0.2); border-radius: 7px;
  padding: 6px 12px; font-size: 12px; font-weight: 600; cursor: pointer;
  transition: background .15s;
}
.csc-invite-btn:hover { background: rgba(212,175,55,0.16); }

/* Account filter chips */
.sd-acct-filter {
  display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px;
}
.sd-acct-chip {
  padding: 5px 12px; border-radius: 20px; font-size: 12px; font-weight: 600;
  background: rgba(255,255,255,0.05); border: 1px solid var(--border);
  color: var(--text2); cursor: pointer; transition: all .15s;
}
.sd-acct-chip.active, .sd-acct-chip:hover {
  background: rgba(212,175,55,0.12); border-color: rgba(212,175,55,0.35); color: var(--gold);
}
.sd-acct-chip-count {
  display: inline-block; margin-left: 4px; padding: 0 5px;
  background: rgba(255,255,255,0.08); border-radius: 10px;
  font-size: 10px; font-weight: 600; color: var(--muted);
}
.sd-acct-chip.active .sd-acct-chip-count { background: rgba(212,175,55,0.18); color: var(--gold-bright); }
.sd-trade-acct-badge {
  display: inline-block; padding: 2px 7px; border-radius: 5px;
  font-size: 10px; font-weight: 600; letter-spacing: 0.02em;
  background: rgba(255,255,255,0.06); border: 1px solid var(--border);
  color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%;
}

/* Tab bar */
.sd-tabs {
  display: flex; gap: 4px; margin-bottom: 18px;
  border-bottom: 1px solid var(--border); padding-bottom: 0;
}
.sd-tab {
  padding: 8px 16px; font-size: 13px; font-weight: 600;
  background: none; border: none; border-bottom: 2px solid transparent;
  color: var(--text3); cursor: pointer; margin-bottom: -1px;
  transition: color .15s, border-color .15s;
}
.sd-tab:hover { color: var(--text); }
.sd-tab.active { color: var(--gold); border-bottom-color: var(--gold); }

.sd-tab-content { /* wrapper for tab content */ }

/* Setups tab */
.sd-setup-card {
  background: var(--card); border: 1px solid var(--border);
  border-radius: 12px; padding: 16px; margin-bottom: 14px;
}
.sd-setup-header {
  display: flex; align-items: center; gap: 10px; margin-bottom: 12px;
}
.sd-setup-num {
  width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0;
  background: rgba(212,175,55,0.15); border: 1px solid rgba(212,175,55,0.3);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; color: var(--gold);
}
.sd-setup-name { font-size: 14px; font-weight: 700; color: var(--text); flex: 1; }
.sd-setup-stats { display: flex; gap: 6px; flex-wrap: wrap; }
.sd-setup-fields { display: flex; flex-direction: column; gap: 10px; }
.sd-setup-field-label { font-size: 11px; font-weight: 600; margin-bottom: 3px; }
.sd-setup-field-val { font-size: 13px; color: var(--text2); line-height: 1.5; }
.sd-setup-chart { margin-top: 12px; border-radius: 8px; overflow: hidden; }
.sd-setup-chart img { width: 100%; max-height: 200px; object-fit: cover; border-radius: 8px; }

/* Plan tab */
.sd-plan-sections { display: flex; flex-direction: column; gap: 14px; }
.sd-plan-block {
  background: var(--card); border: 1px solid var(--border);
  border-radius: 10px; padding: 14px 16px;
}
.sd-plan-block-title {
  font-size: 12px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.05em; color: var(--text3); margin-bottom: 8px;
}
.sd-plan-block-content { font-size: 13px; color: var(--text2); line-height: 1.6; }

/* ---- Student "Mon coach" panel ---- */
.my-coach-grid { display: flex; flex-direction: column; gap: 14px; }
.my-coach-card {
  background: var(--card); border: 1px solid rgba(184,154,106,0.2);
  border-radius: 14px; padding: 18px;
}
.my-coach-header {
  display: flex; align-items: center; gap: 12px; margin-bottom: 16px;
}
.my-coach-avatar {
  width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0;
  background: rgba(184,154,106,0.15); border: 1.5px solid rgba(184,154,106,0.3);
  display: flex; align-items: center; justify-content: center;
  font-size: 17px; font-weight: 700; color: #b89a6a;
}
.my-coach-name { font-size: 14px; font-weight: 700; color: var(--text); }
.my-coach-sub { font-size: 12px; color: var(--text3); margin-top: 2px; }

.perm-list { display: flex; flex-direction: column; gap: 0; }
.perm-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,0.05);
}
.perm-row:last-child { border-bottom: none; padding-bottom: 0; }
.perm-info { display: flex; align-items: center; gap: 10px; }
.perm-icon { font-size: 18px; flex-shrink: 0; }
.perm-label { font-size: 13px; font-weight: 600; color: var(--text); }
.perm-sub { font-size: 11px; color: var(--text3); margin-top: 1px; }
.perm-control { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.perm-state { font-size: 10.5px; font-weight: 600; letter-spacing: .02em; color: var(--text3); min-width: 48px; text-align: right; }
.perm-state.on { color: #10b981; }

/* Toggle switch */
.perm-toggle {
  position: relative; width: 42px; height: 24px; border-radius: 12px; flex-shrink: 0;
  background: rgba(255,255,255,0.1); border: none; cursor: pointer;
  transition: background .2s; padding: 0;
}
.perm-toggle.on { background: #10b981; }
.perm-toggle-knob {
  position: absolute; top: 3px; left: 3px;
  width: 18px; height: 18px; border-radius: 50%;
  background: #fff; transition: transform .2s; display: block;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
.perm-toggle.on .perm-toggle-knob { transform: translateX(18px); }

/* Light theme */
html[data-theme="light"] .sd-setup-card,
html[data-theme="light"] .sd-plan-block,
html[data-theme="light"] .my-coach-card { background: #fff; }
html[data-theme="light"] .perm-row { border-bottom-color: rgba(0,0,0,0.06); }
html[data-theme="light"] .perm-toggle { background: rgba(0,0,0,0.12); }

/* ============================================================
   AVATAR SYSTEM — emoji + ornement de rang + statut
   ============================================================ */
.av-outer {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.av-ring-inner {
  border-radius: 50%;
  overflow: hidden;
  position: relative;
  flex-shrink: 0;
}
.av-emoji {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
  line-height: 1;
  user-select: none;
}
.av-img {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  object-fit: cover;
  z-index: 1;
  user-select: none;
  width: 100% !important;
  height: 100% !important;
}

/* Rangs — ring via ::before conic-gradient (le bg de l'anneau) */
/* none : pas de ring */
.av-ring-inner.rank-none .av-emoji { inset: 0; }

/* bronze */
.av-ring-inner.rank-bronze { box-shadow: 0 0 0 2px #b89a6a; }
.av-ring-inner.rank-bronze .av-emoji { inset: 0; }

/* argent */
.av-ring-inner.rank-argent { box-shadow: 0 0 0 2px #d8d9de, 0 0 8px rgba(216,217,222,0.35); }
.av-ring-inner.rank-argent .av-emoji { inset: 0; }

/* or */
.av-ring-inner.rank-or { box-shadow: 0 0 0 2.5px #e6d6b3, 0 0 12px rgba(230,214,179,0.5); }
.av-ring-inner.rank-or .av-emoji { inset: 0; }

/* diamant — anneau tournant conic-gradient */
.av-ring-inner.rank-diamant::before {
  content: '';
  position: absolute;
  inset: 0;
  background: conic-gradient(#a78bfa 0%, #60a5fa 33%, #c4b5fd 66%, #818cf8 83%, #a78bfa 100%);
  border-radius: 50%;
  animation: spinRing 4s linear infinite;
}
.av-ring-inner.rank-diamant .av-emoji, .av-ring-inner.rank-diamant .av-img { inset: 2px; }

/* elite — anneau or tournant + légèrement plus épais */
.av-ring-inner.rank-elite::before {
  content: '';
  position: absolute;
  inset: 0;
  background: conic-gradient(#fbbf24 0%, #f59e0b 25%, #fcd34d 50%, #d97706 75%, #fbbf24 100%);
  border-radius: 50%;
  animation: spinRing 3s linear infinite;
  box-shadow: 0 0 14px rgba(251,191,36,0.55);
}
.av-ring-inner.rank-elite .av-emoji, .av-ring-inner.rank-elite .av-img { inset: 3px; }

@keyframes spinRing { to { transform: rotate(360deg); } }

/* Glow externe sur av-outer pour or / diamant / elite */
.av-outer:has(.rank-or)      { filter: drop-shadow(0 0 5px rgba(230,214,179,0.4)); }
.av-outer:has(.rank-diamant) { filter: drop-shadow(0 0 6px rgba(167,139,250,0.4)); }
.av-outer:has(.rank-elite)   { filter: drop-shadow(0 0 8px rgba(251,191,36,0.5)); }

/* Rangs ACADÉMIQUES — insignes métal sobres (dé-gamifié : ni gemme ni anneau qui tourne) */
.av-ring-inner.rank-diamant::before, .av-ring-inner.rank-elite::before { animation: none !important; background: none !important; box-shadow: none !important; }
.av-ring-inner.rank-bronze  { box-shadow: 0 0 0 1.5px #9a8a6e !important; }
.av-ring-inner.rank-argent  { box-shadow: 0 0 0 1.5px #b9b3a6 !important; }
.av-ring-inner.rank-or      { box-shadow: 0 0 0 2px #c9a96e, 0 0 7px rgba(201,169,110,.35) !important; }
.av-ring-inner.rank-diamant { box-shadow: 0 0 0 2px #d9bd7d, 0 0 9px rgba(217,189,125,.4) !important; }
.av-ring-inner.rank-elite   { box-shadow: 0 0 0 2.5px #e6d6b3, 0 0 13px rgba(230,214,179,.5) !important; }
.av-ring-inner.rank-diamant .av-emoji, .av-ring-inner.rank-diamant .av-img,
.av-ring-inner.rank-elite .av-emoji, .av-ring-inner.rank-elite .av-img { inset: 0 !important; }
.av-outer:has(.rank-diamant) { filter: drop-shadow(0 0 6px rgba(217,189,125,.4)) !important; }
.av-outer:has(.rank-elite)   { filter: drop-shadow(0 0 8px rgba(230,214,179,.5)) !important; }

/* Status dot */
.av-status {
  position: absolute;
  bottom: 1px;
  right: 1px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  border: 2.5px solid var(--surface);
  z-index: 3;
  pointer-events: none;
}
.av-status.s-online  { background: #22c55e; }
.av-status.s-away    { background: #eab308; }
.av-status.s-busy    { background: #ef4444; }
.av-status.s-offline { background: #6b7280; }

/* Badge rang inline (dans le nom) */
.csc-rank-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 4px;
  vertical-align: middle;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.rank-badge-bronze  { background: rgba(154,138,110,.14); color: #b3a384; }
.rank-badge-argent  { background: rgba(185,179,166,.12); color: #c4bfb2; }
.rank-badge-or      { background: rgba(201,169,110,.16); color: #d4b878; }
.rank-badge-diamant { background: rgba(217,189,125,.16); color: #e0c98a; }
.rank-badge-elite   { background: rgba(230,214,179,.18); color: #eddca0; }

/* ============================================================
   MON PROFIL BAR (haut de la section coaching)
   ============================================================ */
.my-profile-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.my-profile-left {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  min-width: 0;
}
.my-profile-left:hover .av-ring-inner { opacity: .85; }
.my-profile-info { min-width: 0; }
.my-profile-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  display: flex;
  align-items: center;
  gap: 6px;
  max-width: 240px;
}
.my-profile-name .mpn-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.my-profile-name .csc-rank-badge { flex-shrink: 0; }
.my-profile-next { font-size: 11px; color: var(--bronze); margin-top: 2px; }
.my-profile-status-row {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: 2px;
}
.my-status-dot {
  width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0;
}
.my-status-dot.s-online  { background: #22c55e; }
.my-status-dot.s-away    { background: #eab308; }
.my-status-dot.s-busy    { background: #ef4444; }
.my-status-dot.s-offline { background: #6b7280; }
.my-profile-status-text { font-size: 11px; color: var(--muted); }
.my-profile-pills {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.my-status-pill {
  font-size: 11px;
  padding: 4px 10px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.1);
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  transition: all .15s;
}
.my-status-pill:hover { border-color: rgba(255,255,255,0.25); color: var(--text); }
.my-status-pill.active { font-weight: 600; }
.my-status-pill.auto { color: var(--muted2); border-style: dashed; }

/* ============================================================
   AVATAR PICKER PANEL (inline dans coaching)
   ============================================================ */
.av-picker-panel {
  background: var(--surface);
  border: 1px solid var(--border2);
  border-radius: 14px;
  padding: 18px;
  margin-bottom: 20px;
}
.av-picker-top {
  display: flex;
  gap: 20px;
  align-items: flex-start;
}
.av-picker-grids { flex: 1; }
.av-picker-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--muted);
  margin-bottom: 6px;
}
.av-img-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}
.av-img-btn {
  aspect-ratio: 1;
  border-radius: 10px;
  border: 2px solid transparent;
  background: none;
  padding: 0;
  cursor: pointer;
  overflow: hidden;
  transition: all .15s;
}
.av-img-btn img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 8px; }
.av-img-btn:hover { border-color: rgba(208,196,168,0.4); transform: scale(1.05); }
.av-img-btn.selected { border-color: var(--gold); box-shadow: 0 0 0 1px var(--gold), 0 0 10px rgba(208,196,168,0.3); transform: scale(1.04); }
.av-col-grid {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.av-col-btn {
  width: 28px; height: 28px;
  border-radius: 50%;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform .12s, border-color .12s;
}
.av-col-btn:hover { transform: scale(1.15); }
.av-col-btn.selected { border-color: var(--gold); transform: scale(1.1); }
.av-picker-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}
.btn-sm { padding: 6px 14px !important; font-size: 12px !important; }

/* Light theme updates */
html[data-theme="light"] .my-profile-bar,
html[data-theme="light"] .av-picker-panel { background: #fff; }
html[data-theme="light"] .av-ring-inner.rank-bronze { box-shadow: 0 0 0 2px #b89a6a; }
html[data-theme="light"] .av-status { border-color: #fff; }
html[data-theme="light"] .my-status-pill { border-color: rgba(0,0,0,0.15); color: #555; }
html[data-theme="light"] .av-img-btn { border-color: rgba(0,0,0,0.08); }
html[data-theme="light"] .av-img-btn:hover { border-color: rgba(0,0,0,0.2); }

/* ============================================================
   PAYOUT VÉRIFICATIONS
   ============================================================ */
.pv-total-badge {
  display: inline-block;
  background: rgba(34,197,94,.15);
  color: #22c55e;
  border: 1px solid rgba(34,197,94,.3);
  border-radius: 20px;
  padding: 2px 10px;
  font-size: 12px;
  font-weight: 600;
  margin-left: 10px;
  vertical-align: middle;
}

/* ? tooltip */
.verif-q-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
}
.info-q-btn {
  width: 18px; height: 18px;
  border-radius: 50%;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  font-size: 11px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  padding: 0;
  transition: border-color .15s, color .15s;
}
.info-q-btn:hover { border-color: var(--gold); color: var(--gold); }
.verif-tooltip {
  display: none;
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  width: 260px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
  z-index: 120;
  box-shadow: 0 4px 20px rgba(0,0,0,.3);
}
.verif-q-wrap:hover .verif-tooltip,
.verif-q-wrap:focus-within .verif-tooltip { display: block; }

/* ── Certificats de payout (vérifications) — mini-documents premium ── */
.pv-cert {
  position: relative;
  display: flex; align-items: center; gap: 16px;
  padding: 15px 18px;
  margin-bottom: 10px;
  border-radius: 11px;
  border: 1px solid var(--border);
  background: linear-gradient(150deg, rgba(255,255,255,0.025), rgba(0,0,0,0.18));
  overflow: hidden;
}
.pv-cert:last-child { margin-bottom: 0; }
.pv-cert::before {
  content: ''; position: absolute; inset: 5px;
  border: 1px solid rgba(216,217,222,0.06); border-radius: 7px;
  pointer-events: none;
}
.pv-cert-seal {
  flex-shrink: 0; width: 40px; height: 40px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  border: 1.5px solid var(--border); color: var(--muted);
  background: radial-gradient(circle at 35% 30%, rgba(255,255,255,0.06), transparent);
}
.pv-cert-main { flex: 1; min-width: 0; }
.pv-cert-firm {
  font-size: 14px; font-weight: 700; color: var(--text);
  letter-spacing: -0.01em; margin-bottom: 3px;
}
.pv-cert-meta { font-size: 11.5px; color: var(--muted); font-family: 'JetBrains Mono', monospace; }
.pv-cert-note { font-size: 11px; color: #ef4444; margin-top: 4px; font-style: italic; }
.pv-cert-right {
  display: flex; flex-direction: column; align-items: flex-end; gap: 4px;
  flex-shrink: 0; position: relative; z-index: 1;
}
.pv-cert-stamp {
  font-size: 9px; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase;
  padding: 3px 10px; border: 1.5px solid; border-radius: 4px;
  transform: rotate(-2deg);
  font-family: 'JetBrains Mono', monospace;
}
.pv-cert-amt {
  font-size: 17px; font-weight: 800; color: #2ecc71;
  font-family: 'JetBrains Mono', monospace; letter-spacing: -0.02em;
  text-shadow: 0 0 18px rgba(46,204,113,0.35);
}
.pv-cert-ref {
  font-size: 8.5px; letter-spacing: 0.1em; color: var(--muted2);
  font-family: 'JetBrains Mono', monospace;
}

/* statut : en attente */
.pv-cert--pending { border-style: dashed; border-color: rgba(234,179,8,0.28); }
.pv-cert--pending .pv-cert-seal { border-color: rgba(234,179,8,0.4); color: #eab308; }
.pv-cert--pending .pv-cert-stamp { color: #eab308; border-color: rgba(234,179,8,0.55); }

/* statut : vérifié — cachet doré */
.pv-cert--verified {
  border-color: rgba(184,154,106,0.38);
  background:
    radial-gradient(120% 100% at 0% 0%, rgba(184,154,106,0.1), transparent 55%),
    linear-gradient(150deg, rgba(255,255,255,0.03), rgba(0,0,0,0.2));
  box-shadow: 0 6px 24px -10px rgba(0,0,0,0.6), inset 0 1px 0 rgba(230,214,179,0.07);
}
.pv-cert--verified::before { border-color: rgba(184,154,106,0.16); }
.pv-cert--verified .pv-cert-seal {
  border-color: rgba(46,204,113,0.55); color: #2ecc71;
  background: radial-gradient(circle at 35% 30%, rgba(46,204,113,0.16), transparent);
  box-shadow: 0 0 16px -4px rgba(46,204,113,0.5);
}
.pv-cert--verified .pv-cert-stamp { color: #2ecc71; border-color: rgba(46,204,113,0.6); }

/* statut : refusé */
.pv-cert--rejected { opacity: 0.72; }
.pv-cert--rejected .pv-cert-seal { border-color: rgba(239,68,68,0.4); color: #ef4444; }
.pv-cert--rejected .pv-cert-stamp { color: #ef4444; border-color: rgba(239,68,68,0.5); }

/* file input */
.verif-file-input {
  display: block;
  width: 100%;
  padding: 8px 10px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-size: 13px;
  cursor: pointer;
  margin-top: 4px;
}
.verif-file-input::file-selector-button {
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 4px 12px;
  font-size: 12px;
  cursor: pointer;
  margin-right: 10px;
}

/* admin panel */
.admin-pv-card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 12px;
}
.admin-pv-meta {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 10px;
  font-size: 13px;
  color: var(--muted);
}
.admin-pv-firm { font-weight: 700; color: var(--text); }
.admin-pv-uid { font-family: monospace; font-size: 11px; }
.admin-pv-detail {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 13px;
  margin-bottom: 14px;
}
.admin-pv-detail strong { color: var(--text); }
.admin-view-cert-btn {
  background: none;
  border: 1px solid var(--border);
  color: var(--accent);
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 12px;
  cursor: pointer;
  transition: border-color .15s;
}
.admin-view-cert-btn:hover { border-color: var(--accent); }
.admin-pv-actions {
  display: flex;
  gap: 10px;
  align-items: flex-end;
  flex-wrap: wrap;
}
.admin-amt-input {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text);
  font-size: 13px;
  padding: 6px 10px;
  width: 100%;
}
.admin-verify-btn {
  padding: 8px 18px;
  border-radius: 8px;
  border: none;
  background: #22c55e;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity .15s;
}
.admin-verify-btn:hover { opacity: .85; }
.admin-reject-btn {
  padding: 8px 18px;
  border-radius: 8px;
  border: 1px solid #ef4444;
  background: transparent;
  color: #ef4444;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s;
}
.admin-reject-btn:hover { background: rgba(239,68,68,.1); }

/* nav admin badge */
.nav-admin-badge {
  font-size: 11px;
  margin-left: 6px;
  opacity: .7;
}

/* ============================================================
   COLLABORATION MENTOR-ÉLÈVE
   ============================================================ */

/* Nav badge annotations non lues */
.coach-unread-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ef4444;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  border-radius: 8px;
  padding: 0 4px;
  margin-left: 6px;
}

/* Toggle synthèse/liste */
.synth-toggle-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 12px;
  cursor: pointer;
  transition: border-color .15s, color .15s, background .15s;
}
.synth-toggle-btn:hover,
.synth-toggle-btn.active {
  border-color: var(--gold);
  color: var(--gold);
  background: rgba(201,169,110,.08);
}

/* ---- Grille synthèse RAG ---- */
.synth-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 14px;
  margin-top: 4px;
}
.synth-card {
  border: 1.5px solid var(--border);
  border-radius: 14px;
  padding: 16px;
  cursor: pointer;
  transition: transform .13s, box-shadow .13s;
}
.synth-card:hover { transform: translateY(-2px); box-shadow: 0 6px 24px rgba(0,0,0,.25); }
.synth-card-top {
  display: flex;
  align-items: center;
  gap: 12px;
}
.synth-card-info { flex: 1; min-width: 0; }
.synth-name { font-size: 15px; font-weight: 700; color: var(--text); }
.synth-week-stats { font-size: 12px; color: var(--muted); margin-top: 2px; }
.synth-rag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}
.synth-rag-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.synth-obj { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.synth-obj-title { font-size: 12px; color: var(--muted); }
.synth-unread {
  margin-top: 10px;
  font-size: 12px;
  color: #b89a6a;
  background: rgba(184,154,106,.1);
  border-radius: 6px;
  padding: 4px 10px;
  display: inline-block;
}

/* ---- Bouton annotation sur trade ---- */
.ann-trade-btn {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--muted);
  border-radius: 6px;
  padding: 3px 7px;
  font-size: 12px;
  cursor: pointer;
  transition: border-color .13s, color .13s;
  white-space: nowrap;
}
.ann-trade-btn:hover { border-color: #b89a6a; color: #b89a6a; }
.ann-trade-btn.has-ann { border-color: #22c55e; color: #22c55e; background: rgba(34,197,94,.08); }

/* ---- Annotation modal ---- */
.ann-trade-ctx-wrap {
  display: flex;
  align-items: center;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 8px 12px;
  margin-top: 4px;
}
.ann-ctx-item {
  font-size: 13px;
  color: var(--muted);
  padding: 0 6px;
  border-right: 1px solid var(--border);
}
.ann-ctx-item:last-child { border-right: none; }
.ann-ctx-val { font-size: 13px; font-weight: 700; padding-left: 6px; }
.ann-type-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}
.ann-type-btn {
  padding: 5px 12px;
  border-radius: 20px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  cursor: pointer;
  transition: all .13s;
}
.ann-type-btn:hover { border-color: #b89a6a; color: #b89a6a; }
.ann-type-btn.selected { font-weight: 600; }

/* ---- Annotation cards ---- */
.ann-card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  margin-bottom: 10px;
  transition: border-color .13s;
}
.ann-card.ann-unread { border-color: #b89a6a; background: rgba(184,154,106,.05); cursor: pointer; }
.ann-card-top {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.ann-type-chip {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 20px;
  font-weight: 600;
}
.ann-trade-ref { font-size: 11px; color: var(--muted); font-family: monospace; }
.ann-date { font-size: 11px; color: var(--muted); margin-left: auto; }
.ann-delete-btn {
  background: none; border: none; color: var(--muted); cursor: pointer; font-size: 13px;
  padding: 0 4px; transition: color .12s;
}
.ann-delete-btn:hover { color: #ef4444; }
.ann-unread-dot {
  width: 8px; height: 8px; border-radius: 50%; background: #b89a6a; flex-shrink: 0;
}
.ann-message { font-size: 13px; color: var(--text); line-height: 1.6; }
.ann-reply {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--border);
  font-size: 12px;
  color: var(--muted);
}
.ann-reply-label { font-weight: 600; color: var(--gold); margin-right: 6px; }
.ann-no-reply { margin-top: 8px; font-size: 12px; color: var(--muted); font-style: italic; }
.ann-reply-input-wrap {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed var(--border);
}
.ann-reply-input {
  flex: 1;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-size: 13px;
  padding: 6px 10px;
}

/* ---- Objectifs KPI ---- */
.obj-metric-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 8px;
  margin-top: 6px;
}
.obj-metric-btn {
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--text);
  font-size: 12px;
  cursor: pointer;
  text-align: left;
  transition: all .13s;
}
.obj-metric-btn:hover { border-color: #b89a6a; }
.obj-metric-btn.selected {
  border-color: #b89a6a;
  background: rgba(184,154,106,.12);
  color: #b89a6a;
}
.obj-metric-name { font-weight: 600; margin-bottom: 3px; }
.obj-metric-desc { font-size: 11px; color: var(--muted); line-height: 1.4; }
.obj-tab-header { display: flex; justify-content: flex-end; margin-bottom: 16px; }
.obj-section-title { font-size: 12px; color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 8px; }

.obj-card {
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 10px;
  transition: border-color .15s;
}
.obj-card.obj-validated { border-color: rgba(34,197,94,.3); background: rgba(34,197,94,.04); }
.obj-card.obj-failed    { border-color: rgba(239,68,68,.3); opacity: .7; }
.obj-card-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 6px; }
.obj-card-title { font-size: 14px; font-weight: 700; color: var(--text); }
.obj-card-status { font-size: 12px; font-weight: 600; white-space: nowrap; }
.obj-metric-tag {
  display: inline-block;
  font-size: 11px;
  color: var(--muted);
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: 2px 8px;
  margin-bottom: 10px;
}
.obj-progress-wrap { display: flex; flex-direction: column; gap: 4px; }
.obj-progress-bar {
  height: 6px;
  background: var(--border);
  border-radius: 3px;
  overflow: hidden;
}
.obj-progress-fill {
  height: 100%;
  border-radius: 3px;
  transition: width .4s ease;
}
.obj-progress-label { font-size: 12px; color: var(--muted); }
.obj-mentor-note {
  margin-top: 10px;
  font-size: 12px;
  color: var(--gold);
  font-style: italic;
  padding: 8px;
  background: rgba(201,169,110,.06);
  border-radius: 6px;
}
.obj-actions { display: flex; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--border); }
.obj-delete-btn {
  padding: 5px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  cursor: pointer;
  transition: border-color .13s, color .13s;
}
.obj-delete-btn:hover { border-color: #ef4444; color: #ef4444; }
.obj-validated-date { font-size: 11px; color: var(--muted); margin-top: 8px; }
.btn-success {
  padding: 5px 14px;
  border-radius: 8px;
  border: none;
  background: #22c55e;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity .13s;
}
.btn-success:hover { opacity: .85; }

/* ---- Revue hebdomadaire ---- */
.wr-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}
.wr-week-label { font-size: 13px; font-weight: 600; color: var(--text); }
.wr-card {
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 12px;
}
.wr-student { background: rgba(184,154,106,.08); border: 1px solid rgba(184,154,106,.25); }
.wr-mentor  { background: rgba(201,169,110,.08); border: 1px solid rgba(201,169,110,.25); }
.wr-history { background: var(--bg); border: 1px solid var(--border); }
.wr-card-label { font-size: 11px; font-weight: 700; color: var(--muted); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 10px; }
.wr-field { display: flex; flex-direction: column; gap: 3px; margin-bottom: 8px; font-size: 13px; }
.wr-field:last-child { margin-bottom: 0; }
.wr-field-l { font-size: 11px; color: var(--muted); font-weight: 600; }
.wr-empty { font-size: 13px; color: var(--muted); font-style: italic; padding: 8px 0; }
.wr-history-title { font-size: 12px; color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; margin: 16px 0 8px; }

/* ---- Bloc collaboration élève ---- */
.collab-section {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-top: 24px;
}
.collab-block {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 18px 20px;
}
.collab-block-title {
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
}

/* ── Message élève → mentor ── */
.intro-msg-card { display: flex; flex-direction: column; gap: 12px; }
.intro-msg-hint { font-size: 12.5px; color: var(--text2); line-height: 1.5; }
.intro-msg-textarea {
  width: 100%; box-sizing: border-box; resize: vertical;
  background: rgba(255,255,255,0.03); border: 1px solid var(--border);
  border-radius: 10px; padding: 12px 14px;
  color: var(--text); font-family: inherit; font-size: 13.5px; line-height: 1.55;
  outline: none; transition: border-color .15s;
}
.intro-msg-textarea:focus { border-color: rgba(184,154,106,0.5); box-shadow: 0 0 0 3px rgba(184,154,106,0.12); }
.intro-msg-textarea::placeholder { color: var(--muted); }
.intro-msg-btn {
  align-self: flex-start;
  background: linear-gradient(135deg, #b89a6a, #d8d9de);
  color: #15140f; border: none; border-radius: 10px;
  padding: 10px 18px; font-size: 13px; font-weight: 700; cursor: pointer;
  font-family: inherit; transition: opacity .15s, transform .1s;
}
.intro-msg-btn:hover { opacity: 0.92; }
.intro-msg-btn:active { transform: scale(0.98); }
.intro-msg-btn:disabled { opacity: 0.6; cursor: default; }

/* ── Affichage du message côté mentor ── */
.sd-intro-msg {
  background: linear-gradient(145deg, rgba(184,154,106,0.07), rgba(12,12,14,0.4));
  border: 1px solid rgba(184,154,106,0.28);
  border-radius: 12px; padding: 14px 16px; margin-bottom: 16px;
}
.sd-intro-head { display: flex; align-items: center; gap: 8px; margin-bottom: 9px; }
.sd-intro-icon { font-size: 15px; }
.sd-intro-title { font-size: 12.5px; font-weight: 700; color: var(--gold-bright); letter-spacing: 0.01em; }
.sd-intro-new {
  font-size: 9.5px; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
  color: #0A0C10; background: #2FE7C2; padding: 2px 7px; border-radius: 5px;
}
.sd-intro-date { font-size: 11px; color: var(--muted); margin-left: auto; font-family: 'JetBrains Mono', monospace; }
.sd-intro-export {
  background: rgba(255,255,255,0.05); border: 1px solid var(--border);
  color: var(--text2); border-radius: 6px; padding: 4px 6px; cursor: pointer;
  display: inline-flex; align-items: center; transition: all .15s;
}
.sd-intro-export:hover { color: var(--gold-bright); border-color: rgba(184,154,106,0.4); background: rgba(184,154,106,0.1); }
.sd-dossier-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(255,255,255,0.05); border: 1px solid var(--border);
  color: var(--text2); border-radius: 8px; padding: 6px 12px; cursor: pointer;
  font-size: 12px; font-weight: 600; font-family: inherit; transition: all .15s;
  margin-left: auto; margin-right: 10px;
}
.sd-dossier-btn:hover { color: var(--gold-bright); border-color: rgba(184,154,106,0.4); background: rgba(184,154,106,0.1); }
.sd-intro-body { font-size: 13.5px; color: var(--text); line-height: 1.6; }
.sd-intro-history { margin-top: 12px; border-top: 1px solid rgba(184,154,106,0.18); padding-top: 10px; }
.sd-intro-history summary {
  font-size: 11.5px; font-weight: 600; color: var(--text2); cursor: pointer;
  list-style: none; user-select: none; padding: 2px 0;
}
.sd-intro-history summary::-webkit-details-marker { display: none; }
.sd-intro-history summary::before { content: '▸ '; color: var(--muted); }
.sd-intro-history[open] summary::before { content: '▾ '; }
.sd-intro-old { margin-top: 10px; padding: 10px 12px; background: rgba(255,255,255,0.03); border-radius: 8px; border-left: 2px solid rgba(184,154,106,0.3); }
.sd-intro-old.unread { border-left-color: #2FE7C2; background: rgba(0,212,170,0.05); }
.sd-intro-old-date { font-size: 10.5px; color: var(--muted); margin-bottom: 5px; font-family: 'JetBrains Mono', monospace; }
.sd-intro-old-date b { color: #2FE7C2; }
.sd-intro-old-body { font-size: 12.5px; color: var(--text2); line-height: 1.55; }

/* Liste des messages envoyés (côté élève) */
.intro-sent-list { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 12px; }
.intro-sent-title { font-size: 11.5px; font-weight: 700; color: var(--text2); margin-bottom: 10px; }
.intro-sent-item { padding: 10px 12px; background: rgba(255,255,255,0.025); border-radius: 8px; margin-bottom: 8px; }
.intro-sent-date { font-size: 10.5px; color: var(--muted); margin-bottom: 4px; font-family: 'JetBrains Mono', monospace; }
.intro-sent-body { font-size: 12.5px; color: var(--text2); line-height: 1.55; }

/* Badge "nouveaux messages" sur la nav Mentoring */
.coach-msg-badge {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 17px; height: 17px; padding: 0 5px; margin-left: auto;
  background: #2FE7C2; color: #0A0C10; font-size: 10px; font-weight: 800;
  border-radius: 9px;
}

/* ---- Humeur revue hebdo élève ---- */
.swr-mood-grid {
  display: flex;
  gap: 8px;
  margin-top: 6px;
}
.swr-mood-btn {
  width: 44px; height: 44px;
  border-radius: 10px;
  border: 2px solid var(--border);
  background: transparent;
  font-size: 20px;
  cursor: pointer;
  transition: border-color .13s, transform .1s;
}
.swr-mood-btn:hover { transform: scale(1.1); }
.swr-mood-btn.selected { border-color: var(--gold); transform: scale(1.12); }

/* ============================================================
   DESIGN v3 — UPGRADE PREMIUM
   Surcharge ciblée des composants haute visibilité
   ============================================================ */

/* ---- Variables supplémentaires ---- */
:root {
  --glass-bg:       rgba(18, 18, 20, 0.72);
  --glass-border:   rgba(208, 196, 168, 0.11);
  --shadow-card:    0 0 0 0.5px rgba(255,255,255,0.04) inset,
                    0 1px 0 rgba(255,255,255,0.07) inset,
                    0 8px 32px -8px rgba(0,0,0,0.55),
                    0 24px 56px -16px rgba(0,0,0,0.4);
  --shadow-card-hover: 0 0 0 0.5px rgba(255,255,255,0.06) inset,
                       0 1px 0 rgba(255,255,255,0.09) inset,
                       0 16px 48px -8px rgba(0,0,0,0.65),
                       0 32px 80px -16px rgba(0,0,0,0.5),
                       0 0 0 1px rgba(184,154,106,0.12);
  --radius-lg: 18px;
  --radius-md: 13px;
  --radius-sm: 9px;
  --transition-smooth: 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ============================================================
   SCROLLBAR — slim premium
   ============================================================ */
::-webkit-scrollbar { width: 3px; height: 3px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--bronze), var(--bronze-2));
  border-radius: 3px;
  opacity: 0.5;
}
::-webkit-scrollbar-thumb:hover { opacity: 1; }

/* ============================================================
   CARDS — glass morphism upgrade
   ============================================================ */
.card, .stat-card, .account-card {
  /* backdrop-filter supprimé : blur(24px) × dizaines de cartes = poste GPU n°1.
     Fond quasi-uni → une opacité légèrement montée donne le même rendu. */
  background: rgba(17, 17, 19, 0.92) !important;
  border: 0.5px solid var(--glass-border) !important;
  border-radius: var(--radius-lg) !important;
  box-shadow: var(--shadow-card) !important;
  transition: box-shadow var(--transition-smooth), border-color var(--transition-smooth), transform var(--transition-smooth) !important;
}
.card:hover, .account-card:hover {
  border-color: rgba(184,154,106,0.22) !important;
  box-shadow: var(--shadow-card-hover) !important;
  transform: translateY(-2px) !important;
}
.stat-card:hover {
  border-color: rgba(184,154,106,0.22) !important;
  box-shadow: var(--shadow-card-hover) !important;
}

/* Filet doré en haut — plus prononcé */
.card::before, .stat-card::before, .account-card::before {
  background: linear-gradient(90deg, transparent 0%, rgba(184,154,106,0.45) 40%, rgba(216,217,222,0.25) 60%, transparent 100%) !important;
  height: 1px !important;
  opacity: 1 !important;
}
.card { border-top: none !important; }

/* ============================================================
   STAT CARDS — valeurs plus dramatiques
   ============================================================ */
.stat-value {
  font-size: 30px !important;
  letter-spacing: -0.05em !important;
  line-height: 1 !important;
}
.stat-value.pos {
  color: transparent !important;
  background: linear-gradient(135deg, #37c26a 0%, #7ee8a2 60%, #37c26a 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  text-shadow: none !important;
  filter: drop-shadow(0 0 18px rgba(55,194,106,0.45));
}
.stat-value.neg {
  color: transparent !important;
  background: linear-gradient(135deg, #e5544b 0%, #ff8f86 60%, #e5544b 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  text-shadow: none !important;
  filter: drop-shadow(0 0 16px rgba(229,84,75,0.4));
}
.stat-value.neutral {
  color: transparent !important;
  background: linear-gradient(135deg, var(--chrome) 0%, #ffffff 50%, var(--chrome) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
}

.stat-label {
  font-size: 9.5px !important;
  letter-spacing: 0.14em !important;
  color: rgba(138,133,124,0.9) !important;
}
.stat-sub { color: rgba(138,133,124,0.75) !important; margin-top: 8px !important; }

/* ============================================================
   NAVIGATION — pill active + polish
   ============================================================ */
.sidebar {
  background: rgba(5, 6, 5, 0.9) !important;
  backdrop-filter: blur(32px) !important;
  -webkit-backdrop-filter: blur(32px) !important;
  border-right: 0.5px solid rgba(208,196,168,0.08) !important;
}
.nav-item {
  border-left: none !important;
  border-radius: 0 10px 10px 0 !important;
  margin: 1px 10px 1px 0 !important;
  padding: 10px 16px !important;
  transition: background var(--transition-smooth), color var(--transition-smooth) !important;
}
.nav-item::after { display: none !important; }
.nav-item:hover {
  background: rgba(184,154,106,0.08) !important;
  color: var(--chrome) !important;
}
.nav-item.active {
  background: linear-gradient(90deg, rgba(184,154,106,0.18), rgba(184,154,106,0.06)) !important;
  color: var(--bronze-bright) !important;
  border-left: 2px solid var(--bronze) !important;
  border-radius: 0 10px 10px 0 !important;
  box-shadow: inset 2px 0 12px -4px rgba(184,154,106,0.2) !important;
}
.nav-item.active .nav-dot {
  background: var(--bronze) !important;
  box-shadow: 0 0 8px var(--gold-glow), 0 0 16px rgba(184,154,106,0.4) !important;
}

/* En mobile (barre horizontale) : neutralise le liseré gauche/arrondi pensé pour
   la sidebar verticale → un seul indicateur d'actif = soulignement bas doré.
   Placé APRÈS le bloc polish pour gagner par ordre de cascade. */
@media (max-width: 700px) {
  .nav-item {
    margin: 0 !important;
    border-radius: 0 !important;
    padding: 0 16px !important;
  }
  .nav-item.active {
    border-left: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: rgba(201,169,110,0.06) !important;
    border-bottom: 2px solid var(--gold) !important;
  }
}

/* ============================================================
   BUTTONS — système unifié premium
   ============================================================ */
.btn-primary {
  border-radius: var(--radius-sm) !important;
  letter-spacing: 0.04em !important;
  transition: transform var(--transition-smooth), box-shadow var(--transition-smooth), background var(--transition-smooth) !important;
}
.btn-secondary {
  background: rgba(255,255,255,0.04) !important;
  border: 0.5px solid rgba(208,196,168,0.18) !important;
  border-radius: var(--radius-sm) !important;
  transition: all var(--transition-smooth) !important;
}
.btn-secondary:hover {
  background: rgba(184,154,106,0.1) !important;
  border-color: rgba(184,154,106,0.4) !important;
  color: var(--bronze-bright) !important;
}
.btn-ghost {
  border-radius: var(--radius-sm) !important;
  transition: all var(--transition-smooth) !important;
}

/* ============================================================
   FORMULAIRES — focus ring premium
   ============================================================ */
input[type="text"],
input[type="number"],
input[type="email"],
input[type="password"],
input[type="date"],
textarea,
select,
.text-input,
.textarea-input {
  background: rgba(10, 11, 10, 0.7) !important;
  border: 0.5px solid rgba(208,196,168,0.14) !important;
  border-radius: var(--radius-sm) !important;
  color: var(--text) !important;
  transition: border-color var(--transition-smooth), box-shadow var(--transition-smooth) !important;
  font-size: 13.5px !important;
  padding: 9px 12px !important;
}
input:focus, input:focus-visible,
textarea:focus, textarea:focus-visible,
select:focus {
  outline: none !important;
  border-color: rgba(184,154,106,0.5) !important;
  box-shadow: 0 0 0 3px rgba(184,154,106,0.1), 0 0 20px -6px rgba(184,154,106,0.2) !important;
}

/* ============================================================
   JOURNAL — entrées plus premium
   ============================================================ */
.entry-card {
  /* blur supprimé : c'est la liste la plus longue du site (1 carte / trade) */
  background: rgba(16, 17, 16, 0.9) !important;
  border-radius: var(--radius-md) !important;
  border: 0.5px solid rgba(208,196,168,0.09) !important;
  padding: 0.9rem 1.2rem !important;
  transition: all var(--transition-smooth) !important;
}
.entry-card:hover {
  background: rgba(20, 21, 20, 0.8) !important;
  border-color: rgba(184,154,106,0.25) !important;
  border-left-color: var(--bronze) !important;
  transform: translateX(4px) !important;
  box-shadow: -4px 0 24px -8px rgba(184,154,106,0.15), var(--shadow-card) !important;
}
.entry-card.win {
  border-left-color: var(--emerald) !important;
  box-shadow: -2px 0 20px -6px rgba(55,194,106,0.15), var(--shadow-card) !important;
}
.entry-card.loss {
  border-left-color: var(--red) !important;
  box-shadow: -2px 0 20px -6px rgba(229,84,75,0.12), var(--shadow-card) !important;
}
.entry-pnl { font-size: 19px !important; letter-spacing: -0.04em !important; }
.entry-pnl.pos { filter: drop-shadow(0 0 10px rgba(55,194,106,0.35)); }
.entry-pnl.neg { filter: drop-shadow(0 0 10px rgba(229,84,75,0.3)); }

/* ============================================================
   MODALS — plus dramatique
   ============================================================ */
.modal-overlay {
  background: rgba(2, 3, 2, 0.88) !important;
  backdrop-filter: blur(16px) saturate(0.8) !important;
  -webkit-backdrop-filter: blur(16px) saturate(0.8) !important;
}
.modal {
  background: linear-gradient(160deg, rgba(20,20,22,0.98), rgba(10,10,12,0.99)) !important;
  border: 0.5px solid rgba(184,154,106,0.28) !important;
  border-radius: 20px !important;
  box-shadow:
    0 0 0 0.5px rgba(255,255,255,0.06) inset,
    0 1px 0 rgba(255,255,255,0.08) inset,
    0 32px 80px -16px rgba(0,0,0,0.8),
    0 0 64px -24px rgba(184,154,106,0.2) !important;
  padding: 1.8rem 1.9rem !important;
}
.modal-title {
  font-size: 20px !important;
  letter-spacing: 0.04em !important;
  margin-bottom: 1.4rem !important;
  padding-bottom: 1rem !important;
  border-bottom: 0.5px solid rgba(208,196,168,0.1) !important;
}

/* ============================================================
   BADGES — plus propres
   ============================================================ */
.badge {
  border-radius: 6px !important;
  font-size: 10.5px !important;
  letter-spacing: 0.05em !important;
  padding: 2px 8px !important;
  font-weight: 600 !important;
}
.badge.green {
  background: rgba(55,194,106,0.1) !important;
  border-color: rgba(55,194,106,0.35) !important;
  color: #6ee49a !important;
}
.badge.red {
  background: rgba(229,84,75,0.1) !important;
  border-color: rgba(229,84,75,0.35) !important;
  color: #ff8f86 !important;
}
.badge.gold {
  background: rgba(184,154,106,0.1) !important;
  border-color: rgba(184,154,106,0.35) !important;
  color: var(--bronze-bright) !important;
}

/* ============================================================
   TEXTES P&L globaux — couleurs vives
   ============================================================ */
.pos-text { color: #5de88a !important; }
.neg-text { color: #ff7d74 !important; }

/* ============================================================
   SECTION HEADER — meilleure hiérarchie
   ============================================================ */
.section-title {
  font-size: 23px !important;
  letter-spacing: 0.04em !important;
  background: linear-gradient(90deg, var(--chrome) 0%, rgba(216,217,222,0.75) 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  padding-bottom: 14px !important;
}
.section-title::after {
  width: 36px !important;
  height: 2px !important;
  background: linear-gradient(90deg, var(--bronze), var(--bronze-2), transparent) !important;
  opacity: 0.9 !important;
}

/* ============================================================
   TABLES — journal + coaching
   ============================================================ */
.sd-trades-table {
  border-collapse: separate !important;
  border-spacing: 0 !important;
}
.sd-trades-table thead tr th {
  background: rgba(10,10,12,0.8) !important;
  font-size: 10px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: rgba(138,133,124,0.8) !important;
  padding: 8px 10px !important;
  border-bottom: 0.5px solid rgba(208,196,168,0.1) !important;
}
.sd-trades-table tbody tr td {
  padding: 9px 10px !important;
  border-bottom: 0.5px solid rgba(208,196,168,0.05) !important;
  font-size: 12.5px !important;
  transition: background var(--transition-smooth) !important;
}
.sd-trades-table tbody tr:hover td {
  background: rgba(184,154,106,0.05) !important;
}

/* ============================================================
   EQUITY CHART — fond plus sombre pour contraste
   ============================================================ */
.sd-equity svg, .account-equity svg {
  filter: drop-shadow(0 2px 12px rgba(55,194,106,0.15));
}

/* ============================================================
   AFFIRMATION CARD — plus de drama
   ============================================================ */
.aff-daily {
  background: linear-gradient(135deg,
    rgba(184,154,106,0.08) 0%,
    rgba(10,10,12,0.7) 40%,
    rgba(55,194,106,0.06) 100%) !important;
  border-radius: var(--radius-lg) !important;
  border: 0.5px solid rgba(184,154,106,0.2) !important;
  box-shadow: 0 0 60px -20px rgba(184,154,106,0.15), var(--shadow-card) !important;
}

/* ============================================================
   RANK / ORNEMENTS — glow plus marqué
   ============================================================ */
.rank-diamant.av-ring-inner {
  box-shadow: 0 0 0 2.5px rgba(125,211,252,0.5), 0 0 20px rgba(125,211,252,0.3) !important;
}
.rank-elite.av-ring-inner {
  box-shadow: 0 0 0 2.5px rgba(184,154,106,0.7), 0 0 24px rgba(184,154,106,0.4) !important;
}

/* ============================================================
   COACHING — synthèse cards upgrade
   ============================================================ */
.synth-card {
  background: rgba(17, 17, 19, 0.92) !important;
  border-radius: var(--radius-md) !important;
  box-shadow: var(--shadow-card) !important;
  transition: all var(--transition-smooth) !important;
}
.synth-card:hover {
  box-shadow: var(--shadow-card-hover) !important;
  transform: translateY(-3px) !important;
}

/* ============================================================
   EMPTY STATES — plus visuels
   ============================================================ */
.empty-state {
  padding: 36px 24px !important;
  text-align: center !important;
  color: var(--muted);
  font-size: 13.5px;
  line-height: 1.55;
  border: 1px dashed var(--border);
  border-radius: 12px;
  background: rgba(255,255,255,0.012);
}
.empty-state-icon {
  font-size: 36px !important;
  margin-bottom: 12px !important;
  opacity: 0.4 !important;
  display: block !important;
}

/* ============================================================
   PLAN LABELS — couleur renforcée
   ============================================================ */
.card-label.red   { color: #ff7d74 !important; letter-spacing: 0.16em !important; }
.card-label.green { color: #5de88a !important; letter-spacing: 0.16em !important; }
.card-label.amber { color: var(--bronze-bright) !important; letter-spacing: 0.16em !important; }
.card-label.accent, .card-label.gold { color: var(--bronze-bright) !important; letter-spacing: 0.16em !important; }

/* ============================================================
   WEEKLY REVIEW — FORM PREMIUM
   ============================================================ */
.wr-form-premium {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 600px;
}
.wr-form-header {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 4px;
}
.wr-form-title {
  font-size: 18px;
  font-family: 'Oswald', sans-serif;
  font-weight: 600;
  background: linear-gradient(135deg, #d4c4a0, #f5e9cc, #b8966a);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: 0.02em;
}
.wr-form-sub {
  font-size: 12px;
  color: var(--muted);
}
.wr-question-card {
  background: rgba(18, 18, 20, 0.6);
  border: 0.5px solid rgba(208, 196, 168, 0.14);
  border-radius: 14px;
  padding: 16px 20px;
  display: flex;
  flex-direction: row;
  gap: 16px;
  backdrop-filter: blur(8px);
  transition: border-color 0.2s;
}
.wr-question-card:hover {
  border-color: rgba(208, 196, 168, 0.22);
}
.wr-q-number {
  font-size: 28px;
  font-family: 'JetBrains Mono', monospace;
  color: rgba(201, 169, 110, 0.35);
  flex-shrink: 0;
  line-height: 1;
  padding-top: 4px;
  user-select: none;
}
.wr-q-content {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}
.wr-q-label {
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
}
.wr-q-hint {
  font-size: 12px;
  color: var(--muted);
  font-style: italic;
}
.wr-textarea {
  width: 100%;
  background: rgba(8, 9, 8, 0.6);
  border: 0.5px solid rgba(208, 196, 168, 0.12);
  border-radius: 10px;
  color: var(--text);
  font-size: 13.5px;
  font-family: inherit;
  padding: 12px;
  resize: vertical;
  min-height: 80px;
  line-height: 1.6;
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  box-sizing: border-box;
}
.wr-textarea:focus {
  border-color: rgba(184, 154, 106, 0.4);
  box-shadow: 0 0 0 3px rgba(184, 154, 106, 0.1);
}
.wr-input {
  width: 100%;
  background: rgba(8, 9, 8, 0.6);
  border: 0.5px solid rgba(208, 196, 168, 0.12);
  border-radius: 10px;
  color: var(--text);
  font-size: 13.5px;
  font-family: inherit;
  padding: 0 12px;
  height: 44px;
  outline: none;
  transition: border-color 0.18s, box-shadow 0.18s;
  box-sizing: border-box;
}
.wr-input:focus {
  border-color: rgba(184, 154, 106, 0.4);
  box-shadow: 0 0 0 3px rgba(184, 154, 106, 0.1);
}
.wr-mood-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
  margin-top: 8px;
}
.wr-mood-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 10px 6px;
  border: 1px solid rgba(208, 196, 168, 0.12);
  border-radius: 12px;
  background: transparent;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s, transform 0.15s;
}
.wr-mood-card:hover {
  border-color: rgba(184, 154, 106, 0.3);
  background: rgba(184, 154, 106, 0.06);
}
.wr-mood-card.selected {
  border-color: rgba(184, 154, 106, 0.6);
  background: rgba(184, 154, 106, 0.12);
  transform: scale(1.05);
}
.wr-mood-emoji {
  font-size: 22px;
  line-height: 1;
}
.wr-mood-label {
  font-size: 10px;
  color: var(--muted);
  text-align: center;
  line-height: 1.2;
}
.wr-submit-btn {
  width: 100%;
  padding: 14px;
  background: linear-gradient(180deg, #1e1e1e, #000);
  color: #fff;
  border: none;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 700;
  font-family: inherit;
  cursor: pointer;
  transition: transform 0.2s, box-shadow 0.2s;
  box-shadow: 0 4px 20px -6px rgba(0, 0, 0, 0.8);
  margin-top: 8px;
  letter-spacing: 0.02em;
}
.wr-submit-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 32px -8px rgba(0, 0, 0, 0.9);
}
.wr-submit-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

/* ================================================================
   MODAL ANNOTATION — UPGRADE PREMIUM
   ================================================================ */

.ann-modal-header {
  display: flex; align-items: flex-start; gap: 14px; margin-bottom: 20px;
  padding-bottom: 16px; border-bottom: 0.5px solid rgba(208,196,168,0.1);
}
.ann-modal-icon {
  width: 40px; height: 40px; border-radius: 10px;
  background: rgba(184,154,106,0.12); border: 1px solid rgba(184,154,106,0.25);
  display: flex; align-items: center; justify-content: center;
  color: #b89a6a; flex-shrink: 0;
}
.ann-modal-title {
  font-size: 17px; font-weight: 700;
  font-family: 'Oswald', sans-serif; text-transform: uppercase;
  letter-spacing: 0.05em; color: var(--text);
}
.ann-modal-sub { font-size: 12px; color: var(--muted); margin-top: 3px; }
.ann-modal-close {
  margin-left: auto; background: none; border: 1px solid rgba(208,196,168,0.12);
  color: var(--muted); width: 32px; height: 32px; border-radius: 8px;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: all 0.2s; flex-shrink: 0;
}
.ann-modal-close:hover { border-color: rgba(239,68,68,0.4); color: #ef4444; }

.ann-trade-ctx-wrap {
  background: rgba(8,9,8,0.6); border: 0.5px solid rgba(208,196,168,0.1);
  border-radius: 10px; padding: 10px 14px; margin-bottom: 18px;
}
.ann-ctx-label {
  font-size: 10px; color: var(--muted);
  text-transform: uppercase; letter-spacing: 0.12em; margin-bottom: 6px;
}
.ann-ctx-pills { display: flex; gap: 8px; flex-wrap: wrap; }

.ann-section-label {
  font-size: 11px; font-weight: 600; color: var(--muted);
  text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 10px;
}
.ann-type-section { margin-bottom: 18px; }
.ann-text-section { margin-bottom: 20px; }

/* Type cards — grille auto-fill */
#ann-type-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)) !important;
  gap: 8px !important;
  flex-wrap: unset !important;
}
.ann-type-card {
  display: flex; align-items: center; gap: 8px;
  padding: 10px 12px; border-radius: 10px;
  border: 1px solid rgba(208,196,168,0.12);
  background: rgba(255,255,255,0.02);
  cursor: pointer; text-align: left;
  transition: all 0.18s; font-size: 12px; color: var(--text);
  font-family: 'Space Grotesk', sans-serif;
}
.ann-type-card:hover {
  border-color: rgba(208,196,168,0.25);
  background: rgba(255,255,255,0.04);
}
.ann-type-card.selected {
  border-color: var(--ann-color, #b89a6a);
  background: color-mix(in srgb, var(--ann-color, #b89a6a) 10%, transparent);
  color: var(--text);
}
.ann-type-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.ann-type-name { font-size: 12px; font-weight: 500; }

/* Textarea premium */
.ann-textarea-wrap { position: relative; }
.ann-textarea-premium {
  width: 100%; background: rgba(6,7,6,0.8) !important;
  border: 1px solid rgba(208,196,168,0.14) !important;
  border-radius: 12px !important; color: var(--text); font-size: 14px !important;
  padding: 14px 16px !important; resize: vertical; min-height: 120px;
  line-height: 1.7; font-family: 'Space Grotesk', sans-serif;
  transition: border-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box;
}
.ann-textarea-premium:focus {
  border-color: rgba(184,154,106,0.5) !important;
  box-shadow: 0 0 0 3px rgba(184,154,106,0.1), 0 0 24px -8px rgba(184,154,106,0.15) !important;
  outline: none !important;
}
.ann-textarea-hint {
  font-size: 11px; color: rgba(138,133,124,0.6); margin-top: 6px; font-style: italic;
}
.ann-modal-actions {
  display: flex; justify-content: flex-end; gap: 10px;
  padding-top: 16px; border-top: 0.5px solid rgba(208,196,168,0.08);
}

/* ============ SOCIAL PROOF TOAST PROP FIRMS ============ */
.pf-toast {
  position: fixed;
  bottom: 24px;
  left: 24px;
  z-index: 9999;
  width: 320px;
  max-width: calc(100vw - 48px);
  border-radius: 14px;
  overflow: hidden;
  background: rgba(14, 14, 20, 0.92);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(208, 196, 168, 0.12);
  box-shadow: 0 8px 32px rgba(0,0,0,0.5), 0 2px 8px rgba(0,0,0,0.3);
}
.pf-toast-in {
  animation: toastSlideIn 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.pf-toast-out {
  animation: toastSlideOut 0.35s cubic-bezier(0.4, 0, 1, 1) forwards;
}
@keyframes toastSlideIn {
  from { transform: translateX(-110%); opacity: 0; }
  to   { transform: translateX(0);     opacity: 1; }
}
@keyframes toastSlideOut {
  from { transform: translateX(0);     opacity: 1; }
  to   { transform: translateX(-110%); opacity: 0; }
}
.pf-toast-inner {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 14px 10px;
}
.pf-toast-logo {
  flex-shrink: 0;
  margin-top: 2px;
}
.pf-toast-content {
  flex: 1;
  min-width: 0;
}
.pf-toast-msg {
  font-size: 12.5px;
  line-height: 1.5;
  color: rgba(255,255,255,0.85);
}
.pf-toast-name {
  font-weight: 700;
  color: #fff;
}
.pf-toast-saved {
  font-weight: 700;
  color: #5de88a;
}
.pf-toast-time {
  font-size: 10.5px;
  color: rgba(138, 133, 124, 0.7);
  margin-top: 2px;
  display: inline-block;
}
.pf-toast-btn {
  display: inline-block;
  margin-top: 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 5px 11px;
  border-radius: 7px;
  border: 1px solid;
  text-decoration: none;
  transition: opacity 0.15s, transform 0.15s;
  font-family: 'Space Grotesk', sans-serif;
}
.pf-toast-btn:hover { opacity: 0.8; transform: translateY(-1px); }
.pf-toast-close {
  flex-shrink: 0;
  background: none;
  border: none;
  color: rgba(138,133,124,0.5);
  font-size: 11px;
  cursor: pointer;
  padding: 0;
  margin-top: 1px;
  line-height: 1;
  transition: color 0.15s;
}
.pf-toast-close:hover { color: rgba(255,255,255,0.6); }
.pf-toast-progress {
  height: 2px;
  background: #00d4ff;
  width: 100%;
}
@media (max-width: 480px) {
  .pf-toast { bottom: 12px; left: 12px; width: calc(100vw - 24px); }
}

/* ============ MENTORING UPSELL MODAL ============ */
.nav-lock-badge {
  display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px;
  background: rgba(239,68,68,0.15); border: 1px solid rgba(239,68,68,0.35);
  border-radius: 4px; color: #ef4444;
  margin-left: 4px; flex-shrink: 0;
}

.mentoring-upsell-modal {
  background: rgba(12,12,18,0.97);
  backdrop-filter: blur(32px);
  -webkit-backdrop-filter: blur(32px);
  border: 1px solid rgba(208,196,168,0.12);
  border-radius: 20px;
  padding: 36px 32px 32px;
  max-width: 440px;
  width: calc(100vw - 40px);
  position: relative;
  box-shadow: 0 24px 60px rgba(0,0,0,0.7), 0 0 0 1px rgba(255,255,255,0.03) inset;
  animation: modalSlideUp 0.35s cubic-bezier(0.16,1,0.3,1) forwards;
  text-align: center;
}
@keyframes modalSlideUp {
  from { transform: translateY(24px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
.mentoring-upsell-close {
  position: absolute; top: 14px; right: 14px;
  background: none; border: 1px solid rgba(208,196,168,0.12);
  color: var(--muted); width: 30px; height: 30px;
  border-radius: 8px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all 0.15s;
}
.mentoring-upsell-close:hover { border-color: rgba(239,68,68,0.4); color: #ef4444; }

.muu-lock-wrap {
  width: 64px; height: 64px; border-radius: 18px;
  background: rgba(239,68,68,0.08); border: 1px solid rgba(239,68,68,0.2);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 20px;
  box-shadow: 0 0 24px -8px rgba(239,68,68,0.4);
}
.muu-lock-icon { stroke: #ef4444; }

.muu-title {
  font-family: 'Oswald', sans-serif;
  font-size: 22px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--text); margin-bottom: 8px;
}
.muu-sub {
  font-size: 13px; color: var(--muted);
  line-height: 1.6; margin-bottom: 24px;
}

.muu-features {
  list-style: none; padding: 0; margin: 0 0 24px;
  text-align: left;
  border: 0.5px solid rgba(208,196,168,0.1);
  border-radius: 12px;
  overflow: hidden;
}
.muu-features li {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px;
  font-size: 13px; color: var(--text2);
  border-bottom: 0.5px solid rgba(208,196,168,0.06);
}
.muu-features li:last-child { border-bottom: none; }
.muu-check {
  color: #5de88a; font-weight: 700; font-size: 12px; flex-shrink: 0;
}

.muu-places-wrap {
  margin-bottom: 20px;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
}
.muu-places-badge {
  display: inline-block;
  background: rgba(201,169,110,0.12); border: 1px solid rgba(201,169,110,0.4);
  color: var(--gold); border-radius: 20px;
  padding: 5px 16px; font-size: 13px; font-weight: 700;
  letter-spacing: 0.04em;
  box-shadow: 0 0 14px -4px rgba(201,169,110,0.45);
}
.muu-places-hint {
  font-size: 11px; color: rgba(138,133,124,0.5);
}

.muu-cta-btn {
  display: block; width: 100%;
  background: linear-gradient(135deg, var(--gold) 0%, #b8933a 100%);
  color: #0a0908; font-weight: 700; font-size: 14px;
  letter-spacing: 0.04em; font-family: 'Oswald', sans-serif;
  text-transform: uppercase; text-decoration: none;
  padding: 14px 20px; border-radius: 12px;
  border: none; cursor: pointer;
  transition: opacity 0.2s, transform 0.15s;
  box-shadow: 0 4px 20px rgba(201,169,110,0.3);
  margin-bottom: 12px;
}
.muu-cta-btn:hover { opacity: 0.9; transform: translateY(-1px); }
.muu-disclaimer {
  font-size: 11px; color: rgba(138,133,124,0.5);
}

/* ═══════════════════════════════════════════════════════════
   NEON SYSTEM v2 — electric accents visibles
   Or électrique + vert/rouge sur les chiffres clés
   ═══════════════════════════════════════════════════════════ */

/* ── Ligne électrique statique en haut des cartes (toujours visible) ── */
.card { position: relative; overflow: hidden; }
.account-card { position: relative; overflow: hidden; }
.card::before, .account-card::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent 5%, rgba(230,210,140,0.85) 40%, rgba(230,210,140,0.85) 60%, transparent 95%);
  pointer-events: none;
  z-index: 1;
}
/* stat-card a déjà un ::before — on booste son opacité */
.stat-card::before { opacity: 0.9 !important; }

/* ── Hover cards — glow nettement visible ── */
.card:hover {
  border-color: rgba(230,210,140,0.55) !important;
  box-shadow:
    0 8px 32px -6px rgba(0,0,0,0.7),
    0 0 24px -4px rgba(184,154,106,0.4),
    inset 0 1px 0 rgba(230,210,140,0.12) !important;
}
.account-card:hover {
  border-color: rgba(230,210,140,0.5) !important;
  box-shadow:
    0 10px 40px -8px rgba(0,0,0,0.7),
    0 0 32px -4px rgba(184,154,106,0.45),
    inset 0 1px 0 rgba(230,210,140,0.1) !important;
}
.stat-card:hover {
  border-color: rgba(230,210,140,0.45) !important;
  box-shadow:
    0 6px 28px -4px rgba(0,0,0,0.65),
    0 0 28px -2px rgba(184,154,106,0.45),
    inset 0 1px 0 rgba(230,210,140,0.1) !important;
}

/* ── Section title — glow warm gold visible ── */
.section-title {
  text-shadow: 0 0 28px rgba(184,154,106,0.45) !important;
}

/* ── Nombres P&L — neon fort et visible ── */
.stat-value.pos { text-shadow: 0 0 8px rgba(55,194,106,0.4), 0 0 16px rgba(55,194,106,0.12) !important; }
.stat-value.neg { text-shadow: 0 0 8px rgba(229,84,75,0.38), 0 0 14px rgba(229,84,75,0.1) !important; }
.pos-text { text-shadow: 0 0 5px rgba(55,194,106,0.38) !important; }
.neg-text { text-shadow: 0 0 5px rgba(229,84,75,0.35) !important; }

/* ── Nav item actif — barre latérale lumineuse ── */
.nav-item.active::after {
  background: var(--gold) !important;
  box-shadow: 0 0 10px rgba(230,210,140,1), 0 0 22px rgba(184,154,106,0.7), 0 0 50px rgba(184,154,106,0.3) !important;
}
.nav-item.active .nav-dot {
  background: rgba(230,210,140,0.95) !important;
  box-shadow: 0 0 10px rgba(230,210,140,1), 0 0 20px rgba(184,154,106,0.6) !important;
}
.nav-item.active {
  text-shadow: 0 0 18px rgba(230,210,140,0.35) !important;
}

/* ── Bouton primaire — halo permanent + boost hover ── */
.btn-primary {
  box-shadow: 0 4px 20px -4px rgba(184,154,106,0.55), 0 0 0 1px rgba(230,210,140,0.15) !important;
}
.btn-primary:hover {
  box-shadow: 0 6px 28px -2px rgba(184,154,106,0.75), 0 0 0 1px rgba(230,210,140,0.35), 0 0 40px -8px rgba(230,210,140,0.4) !important;
}

/* ── Focus inputs — ring electric bien visible ── */
input:focus, select:focus, textarea:focus {
  border-color: rgba(230,210,140,0.7) !important;
  box-shadow: 0 0 0 2px rgba(184,154,106,0.25), 0 0 16px -2px rgba(184,154,106,0.45) !important;
  outline: none;
}

/* ── Séparateur nav — filet doré visible ── */
.nav-sep {
  background: linear-gradient(90deg, transparent, rgba(184,154,106,0.55), transparent) !important;
  box-shadow: 0 0 8px rgba(184,154,106,0.25);
  height: 1px;
}

/* ── Chips sélectionnées ── */
.chip.sel, .ov-period-chip.sel {
  box-shadow: 0 0 18px -2px rgba(184,154,106,0.65) !important;
}

/* ── Badges verts (règles ok, funded) ── */
.badge-funded, .rule-pill.done, .payout-bar-fill.ok {
  box-shadow: 0 0 14px -2px rgba(55,194,106,0.65) !important;
}

/* ── Table headers ── */
.sd-trades-table thead tr th {
  border-bottom: 1px solid rgba(184,154,106,0.35) !important;
  text-shadow: 0 0 16px rgba(184,154,106,0.35);
}

/* ── Scrollbar gold ── */
::-webkit-scrollbar-thumb {
  background: rgba(184,154,106,0.3) !important;
}
::-webkit-scrollbar-thumb:hover {
  background: rgba(184,154,106,0.55) !important;
}

/* ═══════════════════════════════════════════
   COACH TRADE CARDS — vue expanded
   ═══════════════════════════════════════════ */
.sd-trades-expanded-wrap { display: flex; flex-direction: column; gap: 5px; }

.coach-trade-card {
  display: grid;
  grid-template-columns: 18px 100px 88px 56px 76px 120px 60px 58px 1fr 90px 36px;
  align-items: center;
  gap: 14px;
  padding: 14px 20px;
  border-radius: 10px;
  border: 0.5px solid var(--border);
  background: rgba(255,255,255,0.025);
  transition: background 0.15s, border-color 0.18s;
}
.coach-trade-card:hover {
  background: rgba(255,255,255,0.04);
  border-color: rgba(184,154,106,0.2);
}
.coach-trade-card.coach-trade-selected {
  background: rgba(212,175,55,0.08);
  border-color: rgba(212,175,55,0.28);
}
.coach-trade-card-header {
  border: none !important;
  background: transparent !important;
  padding: 4px 20px 8px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: var(--muted);
  font-weight: 600;
}
.coach-trade-card-header:hover { background: transparent !important; border-color: transparent !important; }

.ctc-cb { display: flex; align-items: center; }
.ctc-datetime { display: flex; flex-direction: column; gap: 2px; }
.ctc-date { font-size: 13px; font-family: 'JetBrains Mono', monospace; color: var(--text2); }
.ctc-time { font-size: 11px; color: var(--muted); font-family: 'JetBrains Mono', monospace; }
.ctc-instrument { font-size: 17px; font-weight: 700; color: var(--text); letter-spacing: -0.02em; }
.ctc-dir {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  padding: 4px 10px; border-radius: 5px; letter-spacing: 0.06em; text-align: center;
}
.ctc-dir.long  { background: rgba(55,194,106,0.12); color: var(--green); }
.ctc-dir.short { background: rgba(229,84,75,0.12);  color: var(--red); }
.ctc-lots { font-size: 14px; font-family: 'JetBrains Mono', monospace; color: var(--text); }
.ctc-lots span { font-size: 11px; color: var(--muted); }
.ctc-pnl { font-size: 18px; font-weight: 700; font-family: 'JetBrains Mono', monospace; letter-spacing: -0.03em; }
.ctc-r   { font-size: 13px; font-family: 'JetBrains Mono', monospace; color: var(--muted); }
.ctc-dur { font-size: 12px; color: var(--muted); font-family: 'JetBrains Mono', monospace; }
.ctc-setup { font-size: 12px; color: var(--text3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ctc-account { overflow: hidden; }
.ctc-ann { display: flex; justify-content: flex-end; }

/* ═══════════════════════════════════════════
   NEWS & ANNONCES — rail droit de l'overview
   ═══════════════════════════════════════════ */
.overview-bottom {
  display: grid;
  grid-template-columns: minmax(0,1fr) 340px;
  gap: 14px;
  align-items: start;
}
.overview-bottom-main { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
@media (max-width: 1100px) {
  .overview-bottom { grid-template-columns: 1fr; }
}
.overview-news { min-width: 0; position: sticky; top: 16px; align-self: start; }
.news-card { }
.news-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px;
}
.news-live {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 9px; font-weight: 700; letter-spacing: 0.12em;
  color: var(--green); font-family: 'JetBrains Mono', monospace;
}
.news-live-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 8px rgba(55,194,106,0.9);
  animation: newsPulse 1.8s ease-in-out infinite;
}
@keyframes newsPulse { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }

.news-item {
  padding: 13px 0;
  border-bottom: 0.5px solid var(--border);
}
.news-item:first-child { padding-top: 0; }
.news-item:last-child { border-bottom: none; padding-bottom: 0; }
.news-item-top {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 7px;
}
.news-tag {
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; padding: 3px 8px; border-radius: 5px;
  border: 1px solid transparent;
}
.news-date {
  font-size: 10.5px; color: var(--muted);
  font-family: 'JetBrains Mono', monospace;
}
.news-title {
  font-size: 13.5px; font-weight: 700; color: var(--text);
  line-height: 1.35; letter-spacing: -0.01em; margin-bottom: 5px;
}
.news-body {
  font-size: 12px; color: var(--text2); line-height: 1.5;
}
.news-cta {
  display: inline-block; margin-top: 9px;
  font-size: 11.5px; font-weight: 700; color: var(--gold-bright);
  text-decoration: none; letter-spacing: 0.02em;
  transition: color 0.15s, text-shadow 0.2s;
}
.news-cta:hover { color: #fff; text-shadow: 0 0 14px rgba(230,210,140,0.5); }
.news-empty { font-size: 12px; color: var(--muted); padding: 8px 0; }

/* ── Suivi personnalisé card ── */
.suivi-card {
  margin-top: 10px;
  background: linear-gradient(145deg, rgba(184,154,106,0.06), rgba(12,12,14,0.55)) !important;
  border-color: rgba(184,154,106,0.22) !important;
}
.suivi-head {
  display: flex; align-items: flex-start; gap: 12px; margin-bottom: 15px;
}
.suivi-icon {
  font-size: 22px; line-height: 1; flex-shrink: 0; margin-top: 1px;
  filter: drop-shadow(0 2px 8px rgba(184,154,106,0.5));
}
.suivi-title {
  font-size: 13.5px; font-weight: 700; color: var(--gold-bright);
  letter-spacing: -0.01em; margin-bottom: 3px;
}
.suivi-sub { font-size: 11.5px; color: var(--text2); }
.suivi-steps { display: flex; flex-direction: column; gap: 9px; }
.suivi-step {
  display: flex; align-items: flex-start; gap: 9px;
  font-size: 12px; color: var(--text2); line-height: 1.45;
}
.suivi-step-n {
  flex-shrink: 0; width: 17px; height: 17px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  font-size: 9px; font-weight: 700;
  background: rgba(184,154,106,0.14); color: var(--bronze);
  border: 1px solid rgba(184,154,106,0.3);
  margin-top: 1px;
}
.suivi-step strong { color: var(--text); font-weight: 600; }

/* ═══════════════════════════════════════════
   CERTIFICATS — décernés par le mentor
   ═══════════════════════════════════════════ */
#certificates-list { display: flex; flex-direction: column; gap: 16px; max-width: 720px; }
.cert-card {
  position: relative; display: flex; gap: 22px; align-items: center;
  padding: 26px 30px;
  background: linear-gradient(135deg, rgba(184,154,106,0.09), rgba(12,12,14,0.45));
  border: 1px solid rgba(184,154,106,0.32);
  border-radius: 14px; overflow: hidden;
  box-shadow: 0 8px 34px -12px rgba(0,0,0,0.65), inset 0 1px 0 rgba(230,210,140,0.1);
}
.cert-card::before {
  content: ''; position: absolute; inset: 6px;
  border: 1px solid rgba(184,154,106,0.18); border-radius: 10px; pointer-events: none;
}
.cert-ribbon {
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(230,210,140,0.85), transparent);
}
.cert-seal {
  flex-shrink: 0; width: 66px; height: 66px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; color: #e6d6b3;
  background: radial-gradient(circle at 35% 30%, rgba(230,210,140,0.28), rgba(184,154,106,0.06));
  border: 1.5px solid rgba(230,210,140,0.5);
  box-shadow: 0 0 24px -4px rgba(184,154,106,0.55), inset 0 0 14px rgba(184,154,106,0.15);
}
.cert-body { min-width: 0; }
.cert-kicker {
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--bronze); font-weight: 700; margin-bottom: 6px;
}
.cert-demo-tag {
  color: var(--muted); font-style: italic; letter-spacing: 0.04em; text-transform: none;
}
.cert-title {
  font-size: 19px; font-weight: 700; color: var(--gold-bright);
  letter-spacing: -0.01em; line-height: 1.25; margin-bottom: 6px;
  text-shadow: 0 0 24px rgba(184,154,106,0.3);
}
.cert-meta { font-size: 12.5px; color: var(--text2); }
.cert-meta b { color: var(--text); }
.cert-download {
  display: inline-block; margin-top: 13px;
  font-size: 12.5px; font-weight: 700; color: #0a0908;
  background: linear-gradient(135deg, var(--gold-bright), var(--gold));
  padding: 8px 16px; border-radius: 8px; text-decoration: none;
  box-shadow: 0 4px 18px -4px rgba(184,154,106,0.6);
  transition: transform 0.15s, box-shadow 0.2s;
}
.cert-download:hover { transform: translateY(-1px); box-shadow: 0 6px 24px -4px rgba(184,154,106,0.85); }
.cert-pending { display: inline-block; margin-top: 13px; font-size: 12px; color: var(--muted); font-style: italic; }
.nav-cert-badge { margin-left: auto; font-size: 11px; }

/* ── Document certificat (décerné) — gris/MDE, premium sobre ── */
.cert-doc {
  position: relative; padding: 5px; max-width: 600px;
  background: linear-gradient(145deg, rgba(216,217,222,0.12), rgba(184,154,106,0.12));
  border-radius: 16px;
  box-shadow: 0 22px 70px -24px rgba(0,0,0,0.85);
}
.cert-doc-inner {
  position: relative; text-align: center; overflow: hidden;
  padding: 40px 42px 32px;
  border: 1px solid rgba(184,154,106,0.30); border-radius: 13px;
  background:
    radial-gradient(130% 80% at 50% -15%, rgba(184,154,106,0.12), transparent 60%),
    linear-gradient(165deg, #1b1b1d 0%, #141416 55%, #0e0e10 100%);
}
.cert-doc-inner::before {
  content: ''; position: absolute; inset: 11px;
  border: 1px solid rgba(216,217,222,0.13); border-radius: 8px; pointer-events: none;
}
.cert-doc-inner::after {
  content: ''; position: absolute; top: 0; left: 16%; right: 16%; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(230,210,140,0.75), transparent);
}
.cert-doc-mark {
  font-family: 'Oswald', sans-serif; font-weight: 600; font-size: 12px;
  letter-spacing: 0.34em; text-transform: uppercase; color: var(--chrome);
  padding-left: 0.34em; margin-bottom: 16px;
}
.cert-doc-kicker {
  font-size: 9.5px; letter-spacing: 0.34em; text-transform: uppercase;
  color: var(--bronze); font-weight: 700; padding-left: 0.34em; margin-bottom: 22px;
}
.cert-doc-awarded {
  font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 6px;
}
.cert-doc-recipient {
  font-family: 'Great Vibes', cursive; font-size: 50px; line-height: 1;
  color: var(--gold-bright); margin-bottom: 16px;
  text-shadow: 0 2px 32px rgba(184,154,106,0.45);
}
.cert-doc-title {
  font-family: 'Oswald', sans-serif; font-weight: 500; font-size: 17px;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--chrome);
  margin-bottom: 12px;
}
.cert-doc-sub {
  font-size: 12px; color: var(--text2); line-height: 1.6;
  max-width: 78%; margin: 0 auto; font-style: italic;
  /* Hauteur réservée constante (≈ 3 lignes) → tous les niveaux ont la même
     dimension, quelle que soit la longueur du sous-titre (réf. niveau I). */
  min-height: 58px; display: flex; align-items: center; justify-content: center;
}
.cert-doc-foot {
  display: flex; justify-content: space-between; gap: 34px;
  margin-top: 34px; position: relative; z-index: 1;
}
.cert-doc-foot-col { flex: 1; display: flex; flex-direction: column; }
.cert-doc-sign {
  font-family: 'Great Vibes', cursive; font-size: 30px; line-height: 1;
  color: var(--gold-bright); min-height: 34px;
}
.cert-doc-date {
  font-family: 'JetBrains Mono', monospace; font-size: 14px; color: var(--chrome);
  min-height: 34px; display: flex; align-items: flex-end; justify-content: center;
}
.cert-doc-line { height: 1px; background: rgba(216,217,222,0.28); margin: 6px 0 7px; }
.cert-doc-cap {
  font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted);
}

/* ── Certificat premium v2 : header, sceau (logo MDE), QR, texture sécurité ── */
.cert-doc-inner {
  padding-top: 32px !important;
  background:
    repeating-radial-gradient(circle at 50% 36%, rgba(184,154,106,.022) 0 1px, transparent 1px 8px),
    radial-gradient(130% 80% at 50% -15%, rgba(184,154,106,0.12), transparent 60%),
    linear-gradient(165deg, #1b1b1d 0%, #141416 55%, #0e0e10 100%) !important;
}
.cert-doc-head { display: flex; align-items: center; justify-content: center; gap: 13px; margin-bottom: 18px; }
.cert-doc-head .cert-doc-mark { margin-bottom: 0 !important; }
.cert-doc-flourish { height: 1px; width: 38px; background: linear-gradient(90deg, transparent, rgba(184,154,106,.6)); }
.cert-doc-head .cert-doc-flourish:last-child { background: linear-gradient(90deg, rgba(184,154,106,.6), transparent); }
.cert-doc-issued { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: var(--muted2); letter-spacing: .02em; margin-top: 14px; }
.cert-doc-foot { align-items: flex-end !important; }
.cert-doc-sign-col { flex: 1; display: flex; flex-direction: column; align-items: flex-start; text-align: left; }
.cert-doc-qr-col { flex: 1; display: flex; flex-direction: column; align-items: center; }
.cert-doc-qr-col .cert-doc-cap { text-align: center; }
.cert-doc-sign { font-size: 34px !important; transform: rotate(-3deg); transform-origin: left bottom; padding-left: 4px; }
.cert-doc-seal { display: flex; flex-direction: column; align-items: center; gap: 7px; flex-shrink: 0; padding-bottom: 2px; }
.cert-doc-seal-ring {
  width: 56px; height: 56px; border-radius: 50%;
  background: radial-gradient(circle at 35% 28%, #2a2620, #14110d);
  border: 2px solid rgba(184,154,106,.55);
  box-shadow: 0 0 0 3px rgba(184,154,106,.12), inset 0 1px 4px rgba(0,0,0,.5), inset 0 0 10px rgba(184,154,106,.14), 0 3px 10px -2px rgba(0,0,0,.6);
  display: flex; align-items: center; justify-content: center;
}
.cert-doc-seal-ring img {
  width: 58%; height: 58%; object-fit: contain;
  filter: brightness(0) saturate(100%) invert(78%) sepia(38%) saturate(460%) hue-rotate(2deg) brightness(91%) contrast(89%);
}
.cert-doc-seal-cap { font-size: 8.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--bronze); font-weight: 700; }
.cert-doc-qr {
  width: 56px; height: 56px; padding: 5px; box-sizing: border-box;
  background: #f4f0e7; border-radius: 6px;
  box-shadow: 0 2px 8px rgba(0,0,0,.45), inset 0 0 0 1px rgba(184,154,106,.35);
  display: flex; align-items: center; justify-content: center; margin-bottom: 6px;
}
.cert-doc-qr svg { width: 100%; height: 100%; display: block; }

/* ── Certificat : label démo + étoile niveau III ── */
.cert-demo-label { font-style: italic; color: var(--muted); letter-spacing: .04em; text-transform: none; font-weight: 400; }
.cert-doc-star { font-size: 8px; color: var(--gold-bright); opacity: .75; line-height: 1; margin-top: 1px; }

/* ── Niveau I — Bronze / Élève Certifié ── */
.cert-doc--l1 .cert-doc-inner {
  border-color: rgba(154,138,110,0.28) !important;
  background:
    repeating-radial-gradient(circle at 50% 36%, rgba(154,138,110,.018) 0 1px, transparent 1px 8px),
    radial-gradient(130% 80% at 50% -15%, rgba(154,138,110,0.08), transparent 60%),
    linear-gradient(165deg, #1a1918 0%, #131212 55%, #0e0d0c 100%) !important;
}
.cert-doc--l1 .cert-doc-inner::after {
  background: linear-gradient(90deg, transparent, rgba(154,138,110,0.55), transparent) !important;
}
.cert-doc--l1 .cert-doc-kicker { color: #9a8a6e !important; }
.cert-doc--l1 .cert-doc-recipient { color: #b89a6a !important; text-shadow: 0 2px 20px rgba(154,138,110,0.28) !important; }
.cert-doc--l1 .cert-doc-sign { color: #b89a6a !important; }
.cert-doc--l1 .cert-doc-title { color: #c8aa7a !important; }
.cert-doc--l1 .cert-doc-seal-ring {
  border-color: rgba(154,138,110,0.45) !important;
  box-shadow: 0 0 0 3px rgba(154,138,110,0.09), inset 0 1px 4px rgba(0,0,0,.5), 0 3px 10px -2px rgba(0,0,0,.6) !important;
}
.cert-doc--l1 .cert-doc-seal-cap { color: #9a8a6e !important; }

/* ── Niveau II — Chrome / Trader Certifié (default, no override needed) ── */
.cert-doc--l2 .cert-doc-kicker { color: #d8d9de !important; }

/* ── Niveau III — Gold Elite / Profitable Trader ── */
.cert-doc--l3 {
  background: linear-gradient(145deg, rgba(184,154,106,0.15), rgba(12,12,14,0.38)) !important;
  box-shadow: 0 26px 80px -28px rgba(0,0,0,0.9), 0 0 40px -18px rgba(184,154,106,0.2) !important;
}
.cert-doc--l3 .cert-doc-inner {
  border-color: rgba(230,214,179,0.44) !important;
  background:
    repeating-radial-gradient(circle at 50% 36%, rgba(184,154,106,.03) 0 1px, transparent 1px 8px),
    radial-gradient(130% 80% at 50% -15%, rgba(184,154,106,0.18), transparent 60%),
    linear-gradient(165deg, #1c1a16 0%, #151310 55%, #0f0e0b 100%) !important;
}
.cert-doc--l3 .cert-doc-inner::after {
  left: 6% !important; right: 6% !important;
  background: linear-gradient(90deg, transparent, rgba(230,210,140,0.95), transparent) !important;
}
.cert-doc--l3 .cert-doc-kicker {
  color: #e6d6b3 !important; letter-spacing: 0.38em !important;
}
.cert-doc--l3 .cert-doc-recipient {
  color: #e6d6b3 !important;
  text-shadow: 0 2px 44px rgba(184,154,106,0.6) !important;
}
.cert-doc--l3 .cert-doc-sign { color: #e6d6b3 !important; }
.cert-doc--l3 .cert-doc-title {
  color: #e6d6b3 !important;
  text-shadow: 0 0 28px rgba(184,154,106,0.3) !important;
}
.cert-doc--l3 .cert-doc-seal-ring {
  border-color: rgba(230,214,179,0.65) !important;
  box-shadow: 0 0 0 3px rgba(184,154,106,0.18), inset 0 1px 4px rgba(0,0,0,.5), inset 0 0 14px rgba(184,154,106,0.22), 0 4px 14px -2px rgba(0,0,0,.65), 0 0 20px -8px rgba(184,154,106,0.4) !important;
}
.cert-doc--l3 .cert-doc-seal-cap { color: #e6d6b3 !important; }

/* ── Signaux d'intégrité (track record mentor) ── */
.sd-integrity {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px;
  margin: 12px 0 4px; padding: 9px 14px;
  border: 0.5px solid var(--border); border-radius: 9px;
  background: rgba(255,255,255,0.02);
}
.sd-integrity-lbl { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted2); font-weight: 600; }
.sd-integrity-sig { font-size: 12px; color: var(--text2); font-family: 'JetBrains Mono', monospace; cursor: help; }
.sd-integrity-sig.pos { color: var(--green); }
.sd-integrity-sig.neg { color: var(--red); }

/* ═══════════════════════════════════════════
   APPLICATIONS — showcase outils / affiliation
   ═══════════════════════════════════════════ */
.apps-section-label { font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--text3); margin: 18px 0 10px; }
.apps-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(330px, 100%), 1fr)); gap: 16px; max-width: 920px; }
.app-card {
  display: flex; flex-direction: column;
  background: linear-gradient(145deg, var(--surface), var(--bg-deep));
  border: 0.5px solid var(--border); border-radius: 14px;
  padding: 22px 24px;
  box-shadow: 0 4px 22px -10px rgba(0,0,0,.55), inset 0 1px 0 rgba(230,214,179,.05);
  transition: border-color .25s, box-shadow .3s, transform .15s;
}
.app-card:hover {
  border-color: rgba(184,154,106,.35); transform: translateY(-2px);
  box-shadow: 0 10px 36px -12px rgba(0,0,0,.6), 0 0 22px -10px var(--gold-glow), inset 0 1px 0 rgba(230,214,179,.08);
}
.app-card-head { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.app-logo {
  width: 54px; height: 54px; flex-shrink: 0; border-radius: 13px;
  background: #f5f5f7; display: flex; align-items: center; justify-content: center;
  padding: 9px; box-sizing: border-box;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.6), 0 2px 8px rgba(0,0,0,.45);
  font-weight: 800; color: #1a1a1d; font-size: 22px;
}
.app-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.app-logo-invert img { filter: invert(1); }
.app-name { font-size: 17px; font-weight: 700; color: var(--text); letter-spacing: -0.01em; }
.app-tag { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--bronze); font-weight: 600; margin-top: 2px; }
.app-desc { font-size: 13px; color: var(--text2); line-height: 1.55; margin-bottom: 18px; flex: 1; }
.app-cta {
  align-self: flex-start;
  font-size: 13px; font-weight: 700; color: #0a0908;
  background: linear-gradient(135deg, var(--gold-bright), var(--gold));
  padding: 9px 18px; border-radius: 8px; text-decoration: none;
  box-shadow: 0 4px 18px -4px rgba(184,154,106,.55);
  transition: transform .15s, box-shadow .2s;
}
.app-cta:hover { transform: translateY(-1px); box-shadow: 0 6px 24px -4px rgba(184,154,106,.8); }

/* ═══════════════════════════════════════════════════════════
   SIGNATURE v2 — "instrument de précision" (anti-générique)
   Géométrie sèche · équerres d'angle · boutons usinés · densité
   ═══════════════════════════════════════════════════════════ */

/* 1 — Coins plus secs (sort du look "dark card SaaS par défaut") */
.card, .stat-card, .account-card, .roi-card, .capital-hero,
.sd-section, .news-card, .app-card, .pf-card, .cl-mgmt-card { border-radius: 6px !important; }
.btn-primary, .btn-secondary, .btn-ghost, .btn-calc, .fab { border-radius: 4px !important; }
.chip, .ov-period-chip, .chip-dir, .vtbtn, .pf-filter-chip { border-radius: 4px !important; }
input, select, textarea { border-radius: 5px !important; }

/* 2 — Équerre d'angle bronze sur les readouts (signature scope/HUD, fine) */
.stat-card { position: relative; }
.stat-card::after {
  content: ''; position: absolute; top: 7px; right: 7px;
  width: 7px; height: 7px;
  border-top: 1.5px solid rgba(184,154,106,.45);
  border-right: 1.5px solid rgba(184,154,106,.45);
  pointer-events: none;
}

/* 3 — Boutons secondaires / ghost "usinés" (du caractère, pas un rectangle plat) */
.btn-secondary, .btn-ghost {
  background: linear-gradient(180deg, #1c1c1f, #121214) !important;
  border: 1px solid rgba(184,154,106,.18) !important;
  box-shadow: inset 0 1px 0 rgba(230,214,179,.07), inset 0 -1px 0 rgba(0,0,0,.55), 0 1px 2px rgba(0,0,0,.4) !important;
  letter-spacing: .03em;
  transition: border-color .18s, box-shadow .2s, color .18s, transform .1s !important;
}
.btn-secondary:hover, .btn-ghost:hover {
  border-color: rgba(184,154,106,.5) !important; color: var(--gold-bright) !important;
  box-shadow: inset 0 1px 0 rgba(230,214,179,.12), 0 0 0 1px rgba(184,154,106,.12), 0 2px 10px -4px rgba(184,154,106,.45) !important;
}
.btn-secondary:active, .btn-ghost:active { transform: translateY(0.5px) !important; box-shadow: inset 0 2px 4px rgba(0,0,0,.55) !important; }

/* 4 — Densité : on resserre les readouts (moins de vide mort) */
.stat-card { padding: 0.9rem 1.05rem !important; }
.stat-label { margin-bottom: 5px !important; }
.stat-sub { margin-top: 4px !important; }
.section-title::after { height: 2.5px !important; width: 36px !important; }

/* ─── v2.1 — Mentoring (boutons + pastilles statut) + sidebar ─── */

/* Boutons "Voir le dashboard" / "Inviter un élève" / "Vue synthèse" → métal usiné */
.csc-open-btn, .csc-invite-btn, .synth-toggle-btn {
  border-radius: 5px !important;
  background: linear-gradient(180deg, #1c1c1f, #121214) !important;
  border: 1px solid rgba(184,154,106,.22) !important;
  color: var(--gold-bright) !important;
  box-shadow: inset 0 1px 0 rgba(230,214,179,.07), inset 0 -1px 0 rgba(0,0,0,.55), 0 1px 2px rgba(0,0,0,.4) !important;
  letter-spacing: .03em; font-weight: 600;
  transition: border-color .18s, box-shadow .2s, color .18s, transform .1s !important;
}
.csc-open-btn:hover, .csc-invite-btn:hover, .synth-toggle-btn:hover, .synth-toggle-btn.active {
  border-color: rgba(184,154,106,.55) !important; color: #fff !important;
  background: linear-gradient(180deg, #232326, #161618) !important;
  box-shadow: inset 0 1px 0 rgba(230,214,179,.12), 0 0 0 1px rgba(184,154,106,.14), 0 2px 12px -4px rgba(184,154,106,.5) !important;
}
.csc-open-btn:active, .csc-invite-btn:active, .synth-toggle-btn:active {
  transform: translateY(.5px) !important; box-shadow: inset 0 2px 4px rgba(0,0,0,.55) !important;
}

/* Pastilles de statut (En ligne/Absent/…) → segmented control "instrument", plus de full-pilule */
.my-status-pill {
  border-radius: 4px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.025), rgba(0,0,0,.22)) !important;
  border: 1px solid rgba(184,154,106,.14) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04), inset 0 -1px 0 rgba(0,0,0,.4) !important;
  letter-spacing: .02em;
}
.my-status-pill:hover { border-color: rgba(184,154,106,.3) !important; }
.my-status-pill.active {
  background: linear-gradient(180deg, rgba(0,0,0,.28), rgba(255,255,255,.02)) !important;
  box-shadow: inset 0 1px 3px rgba(0,0,0,.5), inset 0 -1px 0 rgba(230,214,179,.12) !important;
}

/* Sidebar : dot rond générique → petit marqueur carré technique + hover/actif plus nets */
.nav-dot { width: 5px !important; height: 5px !important; border-radius: 1px !important; }
.nav-item:hover { background: linear-gradient(90deg, rgba(184,154,106,.10), transparent) !important; }
.nav-item.active .nav-dot { box-shadow: 0 0 6px var(--gold), 0 0 2px var(--gold) !important; }
.nav-group-header { font-size: 10px !important; }

/* ═══════════════════════════════════════════
   SIDEBAR — tranche de bronze usinée (signature)
   ═══════════════════════════════════════════ */
.sidebar {
  isolation: isolate;
  box-shadow: inset 0 1px 0 rgba(230,214,179,0.05), inset -1px 0 0 rgba(0,0,0,0.55);
}
/* Tranche usinée bronze à droite (dégradé clair-haut → sombre-bas) */
.sidebar::after {
  content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 1px;
  background: linear-gradient(180deg, rgba(230,214,179,0.22) 0%, rgba(184,154,106,0.16) 38%, rgba(140,111,74,0.05) 100%);
  pointer-events: none; z-index: 1;
}
/* Micro-grain vertical local (métal brossé, très bas alpha) */
.sidebar::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 0; opacity: 0.5;
  background:
    repeating-linear-gradient(90deg, rgba(230,214,179,0.018) 0 1px, transparent 1px 3px),
    repeating-linear-gradient(90deg, rgba(0,0,0,0.05) 0 2px, transparent 2px 6px);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 30%, #000 100%);
          mask-image: linear-gradient(90deg, transparent, #000 30%, #000 100%);
}
@media (max-width: 820px) { .sidebar::before, .sidebar::after { display: none; } }

/* Épure de l'état actif : rail enfoncé "touche de pupitre" au lieu du triple glow */
.nav-item.active::after { box-shadow: 0 0 10px var(--gold-glow) !important; }
.nav-item.active {
  text-shadow: none !important;
  background: linear-gradient(90deg, rgba(184,154,106,0.16), rgba(184,154,106,0.02)) !important;
  box-shadow: inset 0 1px 0 rgba(230,214,179,0.07), inset 2px 0 10px -4px rgba(184,154,106,0.22) !important;
}
.nav-item.active .nav-dot { box-shadow: 0 0 7px var(--gold-glow) !important; }
.nav-item:active { transform: translateY(0.5px); }

/* ═══════════════════════════════════════════════════════════
   PASS 2 — Langage "pièce usinée" (matière, élévation, épure)
   ═══════════════════════════════════════════════════════════ */

/* 1.1 — Échelle d'élévation 'plaques empilées' (ombre + highlight croissants) */
:root{
  --elev-z1: 0 4px 22px -10px rgba(0,0,0,.55), inset 0 1px 0 rgba(230,214,179,.05), inset 0 -1px 0 rgba(0,0,0,.40);
  --elev-z2: 0 10px 40px -14px rgba(0,0,0,.66), inset 0 1px 0 rgba(230,214,179,.10), inset 0 -1px 0 rgba(0,0,0,.55);
  --elev-z3: 0 26px 90px -24px rgba(0,0,0,.80), inset 0 1px 0 rgba(230,214,179,.14), inset 0 -1px 0 rgba(0,0,0,.65);
}
.stat-card { box-shadow: var(--elev-z1); }
.stat-card:hover { box-shadow: var(--elev-z1), 0 0 16px -8px var(--gold-glow); }
.account-card { box-shadow: var(--elev-z1), 0 6px 28px -14px rgba(0,0,0,.30); }
.account-card:hover { box-shadow: var(--elev-z2), 0 0 22px -10px var(--gold-glow); }
.modal { box-shadow: var(--elev-z3), 0 0 0 1px var(--border), 0 0 40px -22px var(--gold-glow); }

/* 1.2 — Gravure estampée sur labels Oswald opaques (PAS .section-title clippé) */
.card-label, .stat-label, .account-stat-label, .wr-card-label, .mini-stat-label, .obj-section-title {
  text-shadow: 0 1px 0 rgba(0,0,0,0.55), 0 -1px 0 rgba(230,214,179,0.05);
}
.stat-label, .account-stat-label {
  text-shadow: 0 1px 0 rgba(0,0,0,0.6), 0 -1px 0 rgba(216,217,222,0.06);
}
html[data-theme="light"] .card-label,
html[data-theme="light"] .stat-label,
html[data-theme="light"] .account-stat-label,
html[data-theme="light"] .wr-card-label,
html[data-theme="light"] .mini-stat-label,
html[data-theme="light"] .obj-section-title { text-shadow: 0 1px 0 rgba(255,255,255,0.5); }

/* 1.3 — Enfoncement mécanique au clic (contrôles secondaires) */
.chip, .ov-period-chip, .chip-dir, .vtbtn, .btn-secondary, .btn-ghost {
  transition: all 0.18s, box-shadow 0.12s, transform 0.08s;
}
.chip:active, .ov-period-chip:active, .chip-dir:active, .vtbtn:active, .btn-ghost:active {
  transform: translateY(0.5px);
  box-shadow: inset 0 1px 3px rgba(0,0,0,0.55), inset 0 1px 0 rgba(0,0,0,0.3);
}
.btn-secondary:active { transform: translateY(0); box-shadow: inset 0 1px 3px rgba(0,0,0,0.7), 0 1px 2px rgba(0,0,0,0.5); }

/* 1.4 — Heatmap : enfoncement au hover au lieu de gonfler */
.heatmap-cell {
  box-shadow: inset 0 1px 0 rgba(216,217,222,.10), inset 0 -1px 1px rgba(0,0,0,.45), 0 1px 1px rgba(0,0,0,.35);
  transition: box-shadow .14s ease, filter .14s ease;
}
.heatmap-cell:hover {
  transform: none;
  filter: brightness(1.12);
  box-shadow: inset 0 2px 4px rgba(0,0,0,.55), inset 0 0 0 1px rgba(216,217,222,.16);
}

/* 2.1 — Boutons secondaires/ghost en métal brossé (subordonnés au primaire) */
.btn-secondary {
  background: linear-gradient(180deg, #1c1c1f 0%, #131315 100%);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.04), 0 2px 6px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.08), inset 0 -1px 0 rgba(0,0,0,0.6);
}
.btn-secondary:hover {
  border-color: var(--gold); color: var(--gold-bright);
  box-shadow: 0 0 0 1px rgba(184,154,106,0.18), 0 4px 14px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.11), inset 0 -1px 0 rgba(0,0,0,0.6);
  transform: translateY(-1px);
}
.btn-ghost { box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), inset 0 -1px 0 rgba(0,0,0,0.4); }

/* 2.2 — Chips & toggles 'plaque de bouton' (variantes colorées plus spécifiques = préservées) */
.chip, .ov-period-chip, .chip-dir, .vtbtn {
  background: linear-gradient(180deg, rgba(255,255,255,0.025), rgba(0,0,0,0.18)), var(--bg-deep);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05), inset 0 -1px 0 rgba(0,0,0,0.45), 0 1px 1px rgba(0,0,0,0.25);
}
.chip:hover, .ov-period-chip:hover, .vtbtn:hover {
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.07), inset 0 -1px 0 rgba(0,0,0,0.45), 0 1px 8px -3px var(--gold-glow);
}
.chip.sel {
  background: linear-gradient(180deg, rgba(0,0,0,0.22), rgba(184,154,106,0.04)), var(--gold-dim);
  box-shadow: inset 0 1px 4px rgba(0,0,0,0.5), inset 0 -1px 0 rgba(230,214,179,0.12), 0 0 10px -5px var(--gold-glow);
}

/* 2.3 — Inputs/selects fraisés (cavité inset) + focus tactile */
input[type="date"], input[type="time"], input[type="number"], input[type="text"], textarea, select {
  background: linear-gradient(180deg, rgba(0,0,0,0.25), rgba(0,0,0,0)), var(--bg-deep);
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.45), inset 0 -1px 0 rgba(255,255,255,0.03);
}
input:focus, textarea:focus, select:focus {
  border-color: var(--gold);
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.4), inset 0 0 0 1px rgba(184,154,106,0.16), 0 0 0 2px rgba(184,154,106,0.12);
}
html[data-theme="light"] input, html[data-theme="light"] textarea, html[data-theme="light"] select {
  background: var(--bg-deep); box-shadow: inset 0 1px 2px rgba(0,0,0,0.10);
}

/* 2.4 — Épure du mouvement perpétuel (3 boucles infinies → hover-only / one-shot) */
.payout-bar-fill.ok { animation: none !important; background-position: center !important; }
.payout-bar-fill.ok:hover { animation: barShimmer 2.2s ease-in-out 1 !important; }
.pf-card { animation: none !important; box-shadow: 0 0 12px -6px color-mix(in srgb, var(--pf-color, var(--bronze)) 30%, transparent) !important; }
.promo-tab.unseen { animation: promoGlow 2.5s ease-in-out 2 !important; }

/* 2.6 — Chiffres ancrés dans le métal (gravure inset, lisibilité préservée) */
.sd-kpi-val, .stat-value { text-shadow: 0 1px 0 rgba(0,0,0,.55), 0 0 1px rgba(0,0,0,.4); }
html[data-theme="light"] .sd-kpi-val, html[data-theme="light"] .stat-value { text-shadow: 0 1px 0 rgba(255,255,255,0.6); }
.setup-table th { border-bottom: 1px solid rgba(184,154,106,.30); text-shadow: 0 0 14px rgba(184,154,106,.30); color: var(--bronze-bright); }

/* 2.5 — Heroes z2 : capital-hero / roi-card en plaque épaisse (double filet bronze) */
.capital-hero, .roi-card {
  position: relative;
  border-color: rgba(184,154,106,.22);
  box-shadow: var(--elev-z2);
}
.capital-hero::after, .roi-card::after {
  content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  box-shadow: inset 0 0 0 1px rgba(184,154,106,.14), inset 0 1px 0 rgba(230,214,179,.12);
}
.capital-hero:hover, .roi-card:hover {
  border-color: rgba(184,154,106,.34);
  box-shadow: var(--elev-z2), 0 0 26px -12px var(--gold-glow);
}

/* ============ BIAIS FONDA ============ */
.fonda-updated { font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted); }
.fonda-card-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.fonda-tile { text-align:left; }
.fonda-tile-label { font-family:'Oswald',sans-serif; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--muted); }
.fonda-tile-value { font-family:'JetBrains Mono',monospace; font-size:24px; font-weight:600; margin:4px 0 2px; }
.fonda-chg { font-family:'JetBrains Mono',monospace; font-size:12px; }
.fonda-chg.up, .fonda-chg.down-green { color:var(--green); }
.fonda-chg.down, .fonda-chg.up-red { color:var(--red); }
.fonda-weather-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media (max-width:720px){ .fonda-weather-grid { grid-template-columns:1fr; } }
.fonda-gauge { border:1px solid var(--border); border-radius:12px; padding:14px 16px; }
.fonda-gauge.g-green { border-color:rgba(55,194,106,.4); background:rgba(55,194,106,.06); }
.fonda-gauge.g-red { border-color:rgba(229,84,75,.4); background:rgba(229,84,75,.06); }
.fonda-gauge.g-amber { border-color:rgba(201,162,74,.4); background:rgba(201,162,74,.06); }
.fonda-gauge-label { font-family:'Oswald',sans-serif; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--muted); }
.fonda-gauge-value { font-family:'Oswald',sans-serif; font-size:24px; font-weight:600; letter-spacing:2px; margin:4px 0; }
.g-green .fonda-gauge-value { color:var(--green); }
.g-red .fonda-gauge-value { color:var(--red); }
.g-amber .fonda-gauge-value { color:var(--amber); }
.fonda-gauge-why { font-size:12.5px; color:var(--muted); }
.fonda-hint { font-size:12px; color:var(--muted); margin-top:12px; line-height:1.5; }
.fonda-empty { color:var(--muted); font-size:13.5px; padding:8px 0; }

/* Posture des banques centrales */
.fonda-cb-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(min(220px,100%),1fr)); gap:12px; margin-top:14px; }
.fonda-cb-card { border:1px solid var(--border); border-radius:12px; padding:14px 16px; background:var(--surface); }
.fonda-cb-card.cb-hawk { border-left:3px solid var(--red); }
.fonda-cb-card.cb-dove { border-left:3px solid var(--green); }
.fonda-cb-card.cb-neutral { border-left:3px solid var(--amber); }
.fonda-cb-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.fonda-cb-bank { font-family:'Oswald',sans-serif; font-size:16px; font-weight:600; letter-spacing:1px; color:var(--text); }
.fonda-cb-badge { font-size:10px; font-weight:700; letter-spacing:.05em; padding:2px 8px; border-radius:20px; border:1px solid var(--border); text-transform:uppercase; }
.fonda-cb-badge.cb-hawk { color:var(--red); border-color:rgba(229,84,75,.4); }
.fonda-cb-badge.cb-dove { color:var(--green); border-color:rgba(55,194,106,.4); }
.fonda-cb-badge.cb-neutral { color:var(--amber); border-color:rgba(201,162,74,.4); }
.fonda-cb-rate { font-family:'JetBrains Mono',monospace; font-size:15px; font-weight:600; color:var(--text); margin-bottom:4px; }
.fonda-cb-meet { font-size:11.5px; color:var(--muted); margin-bottom:6px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.fonda-cb-read { font-size:12.5px; color:var(--text2); line-height:1.5; }
.fonda-noteview { line-height:1.65; font-size:14.5px; }
.fonda-stamp { font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted); margin-top:10px; }
.fonda-scen { border:1px solid var(--border); border-left-width:3px; border-radius:10px; padding:13px 16px; margin-bottom:10px; }
.fonda-scen.s-bull { border-left-color:var(--green); }
.fonda-scen.s-bear { border-left-color:var(--red); }
.fonda-scen.s-neutral { border-left-color:var(--amber); }
.fonda-scen-head { display:flex; justify-content:space-between; align-items:baseline; gap:10px; }
.fonda-scen-title { font-weight:600; font-size:14.5px; }
.fonda-scen-prob { font-family:'JetBrains Mono',monospace; font-weight:600; color:var(--bronze-bright); }
.fonda-prob-bar { height:5px; background:rgba(255,255,255,.07); border-radius:3px; margin:8px 0; overflow:hidden; }
.fonda-prob-fill { height:100%; background:linear-gradient(90deg,var(--bronze),var(--bronze-bright)); border-radius:3px; }
.fonda-scen-body { font-size:13.5px; line-height:1.55; color:var(--text); margin-top:4px; }
.fonda-scen-inval { font-size:12.5px; color:var(--red); margin-top:8px; }
.fonda-cata { display:flex; align-items:center; gap:14px; padding:10px 4px; border-bottom:1px solid var(--border); }
.fonda-cata:last-child { border-bottom:none; }
.fonda-cata-date { font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--muted); flex:0 0 150px; }
.fonda-cata-title { flex:1; font-size:14px; }
.fonda-cata-note { font-size:12.5px; color:var(--muted); margin-top:2px; }
.fonda-cd { font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--bronze-bright); border:1px solid var(--border); border-radius:8px; padding:4px 9px; white-space:nowrap; }
.fonda-cd.soon { color:var(--amber); border-color:rgba(201,162,74,.5); }
.fonda-cd.live { color:var(--red); border-color:rgba(229,84,75,.5); animation:fondaPulse 1.2s infinite; }
.fonda-cd.past { color:var(--muted); }
@keyframes fondaPulse { 0%,100%{opacity:1} 50%{opacity:.45} }
.fonda-disclaimer { font-size:11.5px; color:var(--muted); line-height:1.5; margin-top:6px; padding:0 4px; }
.fonda-edit-actions { display:flex; gap:8px; margin-top:12px; }
.fonda-scen-row { border:1px dashed var(--border); border-radius:10px; padding:12px; margin-bottom:10px; display:flex; flex-direction:column; gap:8px; }
.fonda-row-line { display:flex; gap:8px; align-items:center; }
html[data-theme="light"] .fonda-prob-bar { background:rgba(0,0,0,.08); }

/* ============ BIAIS FONDA — wrappers (markup post-fusion) ============ */
/* Sélecteur d'actif multi-marchés */
.fonda-asset-tabs { display:flex; gap:6px; flex-wrap:wrap; margin:0 0 18px; }
.fonda-asset-tab {
  display:inline-flex; align-items:center; gap:6px;
  padding:7px 14px; border-radius:10px; cursor:pointer;
  background:var(--surface); border:1px solid var(--border);
  color:var(--muted); font-size:13px; font-weight:600;
  font-family:'Space Grotesk',sans-serif; transition:border-color .15s, color .15s, background .15s;
}
.fonda-asset-tab:hover:not(:disabled) { color:var(--text); border-color:var(--bronze); }
.fonda-asset-tab.active { color:var(--gold); border-color:var(--gold); background:rgba(201,169,110,0.08); }
.fonda-asset-tab:disabled { opacity:.5; cursor:not-allowed; }
.fonda-soon { font-size:9px; letter-spacing:.06em; text-transform:uppercase; color:var(--text3); border:1px solid var(--border); border-radius:20px; padding:1px 6px; }
/* Bandeau de régime macro */
.fonda-regime-banner { margin-bottom:16px; padding:14px 18px; border-radius:12px; border:1px solid rgba(184,154,106,.32); background:linear-gradient(120deg, rgba(184,154,106,.08), rgba(184,154,106,.02)); }
.fonda-regime-tag { font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--bronze); margin-bottom:5px; }
.fonda-regime-title { font-size:15px; font-weight:700; color:var(--text); line-height:1.35; }
.fonda-regime-note { font-size:13px; color:var(--text2); line-height:1.6; margin-top:7px; }
.fonda-regime-empty { color:var(--muted); font-style:italic; font-size:13px; }
.fonda-regime-edit, .fonda-pos-edit { display:flex; flex-direction:column; gap:8px; }
/* Positionnement */
.fonda-pos-line { font-size:13px; color:var(--text2); line-height:1.6; margin-top:6px; }
.fonda-pos-k { display:inline-block; font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:var(--bronze); font-weight:600; margin-right:6px; }
.fonda-market-row { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:1.5rem; }
/* Données en cours d'actualisation : valeurs grisées (signale "stale") */
.fonda-market-row.is-loading .fonda-tile-value,
.fonda-market-row.is-loading .fonda-chg { opacity:.4; transition:opacity .2s; }
#fonda-refresh-btn[aria-busy="true"] { opacity:.7; cursor:progress; }
@media (max-width:900px){ .fonda-market-row { grid-template-columns:1fr 1fr; } }
.fonda-market-row .fonda-tile { background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:16px 18px; }
.fonda-block { background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:1.35rem; margin-bottom:1.1rem; }
.fonda-block-title { font-family:'Oswald',sans-serif; font-size:12px; letter-spacing:2.5px; text-transform:uppercase; color:var(--bronze-bright); margin-bottom:12px; }
.fonda-ts { font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--muted); }
.fonda-admin-btn { white-space:nowrap; }

/* ============ BIAIS FONDA — mémoire du desk + liquidation ============ */
.fonda-liq-banner { display:flex; align-items:center; gap:12px; background:rgba(229,84,75,.12);
  border:1px solid rgba(229,84,75,.55); border-radius:12px; padding:14px 18px; margin-bottom:1.2rem;
  font-size:13.5px; line-height:1.5; color:var(--text); box-shadow:0 0 24px rgba(229,84,75,.15); }
.fonda-liq-dot { flex:0 0 10px; width:10px; height:10px; border-radius:50%; background:var(--red);
  animation:fondaPulse 1s infinite; }
.fonda-mem-sep { display:flex; flex-direction:column; gap:2px; margin:2rem 0 1.1rem; padding-top:1.2rem;
  border-top:1px solid var(--border); }
.fonda-mem-sep span { font-family:'Oswald',sans-serif; font-size:14px; letter-spacing:4px;
  background:linear-gradient(90deg,var(--bronze),var(--bronze-bright)); -webkit-background-clip:text;
  background-clip:text; color:transparent; font-weight:600; }
.fonda-mem-sep em { font-style:normal; font-size:11.5px; color:var(--muted); }
.fonda-es-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
@media (max-width:980px){ .fonda-es-grid { grid-template-columns:1fr; } }
.fonda-es-card { border:1px solid var(--border); border-radius:12px; padding:14px; }
.fonda-es-head { font-weight:600; font-size:14px; margin-bottom:10px; }
.fonda-es-n { display:block; font-family:'JetBrains Mono',monospace; font-size:10.5px; color:var(--muted); font-weight:400; margin-top:2px; }
.fonda-es-row { display:flex; align-items:center; gap:8px; margin-bottom:7px; }
.fonda-es-q { font-family:'JetBrains Mono',monospace; font-size:10.5px; color:var(--bronze-bright); flex:0 0 18px; }
.fonda-es-qlabel { font-size:11px; color:var(--muted); flex:0 0 92px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fonda-es-bar { flex:1; height:7px; background:rgba(255,255,255,.06); border-radius:4px; overflow:hidden; }
.fonda-es-fill { height:100%; border-radius:4px; }
.fonda-es-fill.pos { background:linear-gradient(90deg,rgba(55,194,106,.5),var(--green)); }
.fonda-es-fill.neg { background:linear-gradient(90deg,rgba(229,84,75,.5),var(--red)); }
.fonda-es-val { font-family:'JetBrains Mono',monospace; font-size:11.5px; font-weight:600; flex:0 0 58px; text-align:right; }
.fonda-es-val.pos, .fonda-liq-table .pos, .fonda-bt-big.pos { color:var(--green); }
.fonda-es-val.neg, .fonda-liq-table .neg, .fonda-bt-big.neg { color:var(--red); }
.fonda-es-nn { font-family:'JetBrains Mono',monospace; font-size:9.5px; color:var(--muted); flex:0 0 34px; text-align:right; }
.fonda-bt-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:12px; }
@media (max-width:980px){ .fonda-bt-grid { grid-template-columns:1fr 1fr; } }
.fonda-bt-stat { border:1px solid var(--border); border-radius:12px; padding:16px 14px; text-align:center; }
.fonda-bt-big { font-family:'JetBrains Mono',monospace; font-size:27px; font-weight:600; margin-bottom:6px; }
.fonda-bt-lbl { font-size:11.5px; color:var(--muted); line-height:1.45; }
.fonda-bt-regimes { font-size:13px; line-height:1.55; padding:10px 14px; border-left:3px solid var(--bronze);
  background:rgba(184,154,106,.06); border-radius:0 10px 10px 0; margin-bottom:10px; }
.fonda-provenance { font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--muted); line-height:1.5; }
.fonda-liq-table { width:100%; border-collapse:collapse; font-family:'JetBrains Mono',monospace; font-size:11.5px; margin-top:10px; }
.fonda-liq-table th { text-align:left; font-family:'Oswald',sans-serif; font-size:10.5px; letter-spacing:1.5px;
  text-transform:uppercase; color:var(--muted); padding:6px 8px; border-bottom:1px solid var(--border); font-weight:500; }
.fonda-liq-table td { padding:6px 8px; border-bottom:1px solid var(--border); }
.fonda-liq-table tr:last-child td { border-bottom:none; }
.fonda-cata-hist { font-size:11.5px; color:var(--bronze-bright); margin-top:4px; padding:5px 9px;
  background:rgba(184,154,106,.08); border-left:2px solid var(--bronze); border-radius:0 7px 7px 0; line-height:1.45; }
html[data-theme="light"] .fonda-es-bar { background:rgba(0,0,0,.07); }

/* ============ B1 — états de connexion perdue ============ */
.mde-offline-banner { position:fixed; left:0; right:0; bottom:0; z-index:9000;
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  background:rgba(201,162,74,.14); border-top:1px solid rgba(201,162,74,.55);
  backdrop-filter:blur(8px); color:var(--text); font-size:13px; line-height:1.5;
  padding:12px 18px; box-shadow:0 -6px 24px rgba(0,0,0,.35); }
.mde-off-dot { width:9px; height:9px; border-radius:50%; background:var(--amber); flex:0 0 auto;
  animation:fondaPulse 1.2s infinite; }
.mde-off-btn { margin-left:auto; background:var(--amber); color:#15140f; border:none; border-radius:9px;
  padding:7px 16px; font-weight:700; font-size:12.5px; cursor:pointer; font-family:inherit; }
.mde-off-btn:hover { filter:brightness(1.08); transform:translateY(-1px); }
.mde-off-btn:disabled { opacity:.6; cursor:default; transform:none; }
.mde-conn-lost { position:fixed; inset:0; z-index:99998; display:flex; align-items:center; justify-content:center;
  padding:20px; background:linear-gradient(180deg,#161618,#0a0a0b); }
.mde-conn-card { width:min(92%,420px); text-align:center; background:rgba(24,24,27,.86);
  border:1px solid rgba(208,196,168,.16); border-radius:18px; padding:34px 28px;
  box-shadow:0 30px 70px rgba(0,0,0,.6); }
.mde-conn-icon { font-size:34px; margin-bottom:10px; }
.mde-conn-title { font-family:'Oswald',sans-serif; font-size:19px; font-weight:600; color:var(--text); margin-bottom:10px; }
.mde-conn-text { font-size:13.5px; line-height:1.6; color:var(--muted); margin-bottom:20px; }
.mde-conn-btn { width:100%; }

/* ============ U1 — écran d'accueil premium (overview vide) ============ */
.welcome-hero { padding:4px 2px; }
.welcome-greet { font-family:'Oswald',sans-serif; font-size:24px; font-weight:600; color:var(--text); margin-bottom:6px; }
.welcome-tag { font-size:14px; color:var(--muted); margin-bottom:22px; max-width:560px; line-height:1.55; }
.welcome-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:16px; }
@media (max-width:820px){ .welcome-grid { grid-template-columns:1fr; } }
.welcome-card { text-align:left; background:var(--surface); border:1px solid var(--border); border-radius:14px;
  padding:18px 18px 20px; cursor:pointer; font-family:inherit; transition:transform .12s, border-color .12s, box-shadow .12s; position:relative; }
.welcome-card:hover { transform:translateY(-2px); border-color:rgba(184,154,106,.5); box-shadow:0 10px 30px rgba(0,0,0,.3); }
.welcome-num { width:28px; height:28px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-family:'JetBrains Mono',monospace; font-weight:600; font-size:13px; color:#15140f;
  background:linear-gradient(135deg,var(--bronze),var(--bronze-bright)); margin-bottom:12px; }
.welcome-card-title { font-weight:600; font-size:15px; color:var(--text); margin-bottom:6px; }
.welcome-card-sub { font-size:12.5px; color:var(--muted); line-height:1.5; }
.welcome-fonda { display:flex; align-items:center; gap:12px; width:100%; text-align:left; cursor:pointer; font-family:inherit;
  background:linear-gradient(135deg,rgba(184,154,106,.12),rgba(184,154,106,.04)); border:1px solid rgba(184,154,106,.35);
  border-radius:13px; padding:15px 18px; color:var(--text); font-size:13.5px; line-height:1.45; transition:border-color .12s; }
.welcome-fonda:hover { border-color:rgba(184,154,106,.7); }
.welcome-fonda-badge { font-family:'Oswald',sans-serif; font-size:10px; letter-spacing:1.5px; font-weight:600;
  background:linear-gradient(135deg,var(--bronze),var(--bronze-bright)); color:#15140f; padding:3px 8px; border-radius:6px; flex:0 0 auto; }
.welcome-fonda-arrow { margin-left:auto; font-size:18px; color:var(--bronze-bright); flex:0 0 auto; }

/* ============ U2 — skeletons de chargement ============ */
.sk-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:1.5rem; }
@media (max-width:820px){ .sk-stats { grid-template-columns:1fr 1fr; } }
.sk-card { height:84px; border-radius:14px; }
.sk-rows { display:flex; flex-direction:column; gap:10px; }
.sk-row { height:56px; border-radius:12px; }
.sk-shimmer { position:relative; overflow:hidden; background:var(--surface); border:1px solid var(--border); }
.sk-shimmer::after { content:''; position:absolute; inset:0; transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent); animation:skShimmer 1.3s infinite; }
@keyframes skShimmer { 100% { transform:translateX(100%); } }
@media (prefers-reduced-motion: reduce){ .sk-shimmer::after { animation:none; } }

/* ============ CERTIFICATS v3 — ornements, filigrane, ruban, export ============ */
.cert-wrap { max-width: 600px; margin: 0 auto 26px; }
.cert-doc { overflow: visible; }
/* Ornements de coins (vrais coins de diplôme) */
.cert-corner { position: absolute; width: 30px; height: 30px; z-index: 3; pointer-events: none; opacity: .7; }
.cert-corner::before, .cert-corner::after { content: ''; position: absolute; background: linear-gradient(90deg, var(--bronze-bright), var(--bronze)); }
.cert-corner::before { width: 100%; height: 1.5px; top: 0; }
.cert-corner::after { width: 1.5px; height: 100%; left: 0; }
.cert-corner--tl { top: 14px; left: 14px; }
.cert-corner--tr { top: 14px; right: 14px; transform: scaleX(-1); }
.cert-corner--bl { bottom: 14px; left: 14px; transform: scaleY(-1); }
.cert-corner--br { bottom: 14px; right: 14px; transform: scale(-1); }
/* Filigrane monogramme en fond */
.cert-watermark {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-46%);
  font-family: 'Oswald', sans-serif; font-weight: 700; font-size: 200px; letter-spacing: -.04em;
  color: rgba(184,154,106,.035); line-height: 1; pointer-events: none; z-index: 0; user-select: none; white-space: nowrap;
}
.cert-doc-inner > *:not(.cert-watermark) { position: relative; z-index: 1; }
/* Ruban de niveau (coin haut-droit) — scopé .cert-doc pour ne pas hériter du vieux .cert-ribbon */
.cert-doc .cert-ribbon {
  position: absolute; top: 24px; right: -54px; left: auto; bottom: auto; height: auto;
  width: 200px; text-align: center; box-sizing: border-box; transform: rotate(45deg); z-index: 4;
  font-family: 'Oswald', sans-serif; font-size: 10px; letter-spacing: .22em; font-weight: 600;
  color: #15140f; background: linear-gradient(135deg, var(--bronze), var(--bronze-bright));
  padding: 5px 0; box-shadow: 0 2px 8px rgba(0,0,0,.4);
}
.cert-doc--l3 .cert-ribbon { background: linear-gradient(135deg, #c9a227, #e6d6b3) !important; }
.cert-doc--l3 .cert-watermark { color: rgba(230,214,179,.05); }
/* Brillance dorée animée sur le nom (niveau elite) */
.cert-doc--l3 .cert-doc-recipient {
  background: linear-gradient(92deg, #e6d6b3 0%, #fff7e0 45%, #c9a227 55%, #e6d6b3 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
/* Bouton de téléchargement */
.cert-actions { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding: 0 4px; flex-wrap: wrap; }
.cert-dl-btn {
  background: linear-gradient(135deg, var(--bronze), var(--bronze-bright)); color: #15140f; border: none;
  border-radius: 10px; padding: 10px 18px; font-weight: 700; font-size: 13px; cursor: pointer; font-family: inherit;
  transition: transform .12s, box-shadow .12s;
}
.cert-dl-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 22px -6px rgba(184,154,106,.5); }
.cert-dl-btn:disabled { opacity: .6; cursor: default; transform: none; }
.cert-dl-hint { font-size: 11.5px; color: var(--muted); }

/* ============ Décerner un certificat (admin) ============ */
.cert-admin-bar { display:flex; align-items:center; gap:14px; margin-bottom:22px; flex-wrap:wrap; }
.cert-admin-hint { font-size:12px; color:var(--muted); }
.cert-grant-overlay { position:fixed; inset:0; z-index:99997; display:flex; align-items:center; justify-content:center;
  padding:20px; background:rgba(8,8,10,.7); backdrop-filter:blur(4px); }
.cert-grant-card { width:min(94%,440px); background:var(--surface); border:1px solid var(--border);
  border-radius:16px; padding:26px 24px; box-shadow:0 30px 70px rgba(0,0,0,.6); }
.cert-grant-title { font-family:'Oswald',sans-serif; font-size:18px; font-weight:600; color:var(--text); margin-bottom:18px; }
.cert-grant-lbl { display:block; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted);
  margin:14px 0 6px; font-weight:600; }
.cert-grant-empty { font-size:13.5px; color:var(--muted); line-height:1.55; margin-bottom:18px; }
.cert-grant-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:22px; }

/* ============ Raccourcis espérance ============ */
.esp-projection-card {
  margin-top: 14px; padding: 16px 18px; border-radius: 12px;
  border: 1px solid rgba(184,154,106,.3); background: rgba(184,154,106,.05);
}
.esp-proj-title { font-family: 'Oswald', sans-serif; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--bronze); margin-bottom: 6px; }
.esp-proj-main { font-family: 'JetBrains Mono', monospace; font-size: 26px; font-weight: 600; letter-spacing: -.02em; }
.esp-proj-main.pos { color: var(--green); }
.esp-proj-main.neg { color: var(--red); }
.esp-proj-unit { font-size: 13px; font-weight: 500; color: var(--muted); font-family: inherit; }
.esp-proj-sub { font-size: 12.5px; color: var(--text2); margin-top: 4px; line-height: 1.5; }
.esp-proj-line { font-size: 13px; color: var(--text); margin-top: 8px; }
.esp-proj-line.pos { color: var(--green); }
.esp-shortcuts-bar { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
.esp-shortcut-btn { display:inline-flex; align-items:center; gap:8px; padding:10px 16px;
  background:var(--surface); border:1px solid var(--border); border-radius:10px;
  color:var(--text); font-size:13px; font-weight:500; text-decoration:none;
  transition:border-color .15s, background .15s; cursor:pointer; }
.esp-shortcut-btn:hover { border-color:var(--bronze); background:rgba(184,154,106,.07); }
.esp-sc-icon { font-size:16px; line-height:1; }
.esp-sc-label { flex:1; }

/* ============ Guide de style playbook ============ */
.pb-style-guide { margin-top:24px; padding:18px 20px; background:var(--surface);
  border:1px solid var(--border); border-radius:12px; }
.pb-sg-title { font-size:12px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted); font-weight:600; margin-bottom:14px; }
.pb-sg-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media(max-width:600px) { .pb-sg-row { grid-template-columns:1fr; } }
.pb-sg-block { padding:14px 16px; border-radius:10px; border:1px solid var(--border); }
.pb-sg-sys { border-color:rgba(55,194,106,.25); background:rgba(55,194,106,.04); }
.pb-sg-disc { border-color:rgba(184,154,106,.25); background:rgba(184,154,106,.04); }
.pb-sg-label { font-size:13px; font-weight:700; color:var(--text); margin-bottom:8px; }
.pb-sg-text { font-size:12.5px; color:var(--muted); line-height:1.6; }
.pb-style-guide--modal { margin-top:20px; border-radius:10px; }

/* ═══════════════════════════════════════════
   ACCESSIBILITÉ — anneau de focus clavier global
   (auparavant : focus visible seulement sur les inputs)
   :focus-visible → n'apparaît qu'au clavier, jamais au clic souris.
   ═══════════════════════════════════════════ */
button:focus-visible,
a:focus-visible,
.nav-item:focus-visible,
.nav-group-header:focus-visible,
[role="button"]:focus-visible,
[tabindex]:focus-visible,
.chip:focus-visible,
.icon-btn:focus-visible,
.vtbtn:focus-visible,
.pf-filter-chip:focus-visible,
.pf-market-tab:focus-visible,
.pf-btn:focus-visible,
.ov-period-chip:focus-visible,
.acc-filter-chip:focus-visible,
.welcome-card:focus-visible,
.perm-toggle:focus-visible,
.csc-open-btn:focus-visible,
.sd-tab:focus-visible,
.preset-item:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 2px;
  border-radius: inherit;
}
html[data-theme="light"] :focus-visible { outline-color: var(--bronze); }

/* ============================================================
   CORRECTIFS MOBILE (≤700px) — en fin de fichier pour gagner
   les batailles de source-order (styles inline / règles ID tardives).
   ============================================================ */
@media (max-width: 700px) {
  /* Modales secondaires (overlays centrés en style inline) → bottom-sheet + scroll,
     sinon le bouton fermer/Enregistrer passe hors écran (clavier ouvert). */
  #settingsModal, #quicklog-modal, #pbStyleModal, #checklist-modal {
    align-items: flex-end !important;
    padding: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  .ql-box, .settings-modal { max-height: 90vh; max-height: 90dvh; overflow-y: auto !important; }
  .ql-box { overflow-x: hidden; } /* garde le clip horizontal, autorise le scroll vertical */
  #settings-toggles { grid-template-columns: 1fr !important; }
  .ql-box, .settings-modal { padding-bottom: env(safe-area-inset-bottom, 0px); }

  /* Stats Overview : l'inline 1.4fr/1fr/1fr force 3 colonnes serrées → 2 colonnes. */
  #overview-stats.stats-bar.cols-4 { grid-template-columns: 1fr 1fr !important; }

  /* Tableau d'analyse d'edge : scroll horizontal au lieu de colonnes coupées. */
  .edge-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .edge-table-wrap table { min-width: 520px; }
  .setup-table { font-size: 12px; }
  .setup-table td, .setup-table th { padding: 8px 10px; }
}
@media (max-width: 430px) {
  /* Très petits téléphones : stats Overview en 1 colonne (montants à 4 chiffres lisibles). */
  #overview-stats.stats-bar.cols-4 { grid-template-columns: 1fr !important; }
}

/* ================================================================
   PASSE D'OPTIMISATION MOBILE — 2026-06-20 (audit multi-agents)
   24 correctifs CSS-safe : anti-zoom iOS, débordements de tableaux,
   cibles tactiles >=44px, cascades desktop non surchargées sur mobile.
   Bloc additif en fin de fichier -> priorité de cascade max, réversible
   (supprimer ce bloc annule toute la passe). Aucun JS/DOM touché.
   ================================================================ */
@media (max-width: 700px) {
  /* 1. CRITIQUE — anti-zoom iOS : un champ <16px fait zoomer Safari au focus. */
  input[type=text], input[type=number], input[type=email], input[type=password],
  input[type=date], input[type=url], input[type=time], input[type=search], input[type=tel],
  textarea, select, .text-input, .textarea-input,
  .account-selector select, #preset-search {
    font-size: 16px !important;
  }

  /* 2. CRITIQUE — preview import CSV (7 colonnes) : scroll horizontal encadré. */
  .csv-table-wrap {
    max-height: 280px; overflow: auto; -webkit-overflow-scrolling: touch;
    border-radius: 8px; border: 1px solid var(--border);
  }
  .csv-table-wrap table { min-width: 520px; }
  .csv-table-wrap th, .csv-table-wrap td { white-space: nowrap; }

  /* 3. Formulaire trade : ne pas écraser en 3 colonnes (cascade .form-grid.cols-3). */
  .form-grid.cols-3 { grid-template-columns: 1fr 1fr !important; }

  /* 4. Stats de carte compte : 2 colonnes (P&L ne déborde plus) + carte moins ventrue. */
  .account-stats { grid-template-columns: 1fr 1fr !important; }
  .account-card { padding: 1rem 1.05rem; }

  /* 5. Table liquidations Fonda (6 colonnes) : scroll horizontal sans toucher au JS. */
  .fonda-liq-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; }

  /* 6. Carte ROI réel : empilée proprement, flèches ->/= masquées (labels portent le sens). */
  .roi-cols { flex-direction: column; align-items: stretch; gap: 6px; }
  .roi-col { padding: 6px 0 !important; min-width: 0; }
  .roi-arrow { display: none; }

  /* 7-10. Cibles tactiles >=44px (chips & boutons d'action). */
  .acc-filter-chip { min-height: 44px; padding-top: 0; padding-bottom: 0; display: inline-flex; align-items: center; }
  .accounts-filter-row { gap: 10px; }
  .chip, .chip-dir { min-height: 44px; display: inline-flex; align-items: center; }
  .payout-item-del { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
  .ov-period-chip { min-height: 40px; padding: 9px 14px; font-size: 13px; display: inline-flex; align-items: center; }
  .ov-period-chips { gap: 8px; }

  /* 12. Croix de fermeture des modales secondaires >=44px. */
  .ann-modal-close, .coach-close, .pbstyle-close, .ql-close,
  .mentoring-upsell-close, .promo-close { width: 44px; height: 44px; }

  /* 13. Boutons edit/delete des cartes compte : plus gros + croix écartée du crayon. */
  .account-card-top .icon-btn { min-width: 44px; min-height: 44px; }
  .account-card-top > div:last-child { gap: 10px; }

  /* 14. Nom de firm payout tronqué proprement (n'écrase plus le montant). */
  .payout-item-firm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; }

  /* 15. Séparateur de nav : pas de trou de 32px dans la barre d'onglets mobile. */
  .nav-sep { display: none; }

  /* 16. En-tête de groupe Jour (Journal) : date sur sa ligne, stats dessous. */
  .day-group-header { flex-wrap: wrap; row-gap: 4px; }
  .day-date { flex: 1 1 100%; }
  .day-stats { width: 100%; justify-content: space-between; gap: 8px; }

  /* 17. Cartes trade : bloc P&L + actions se replie, boutons un peu plus gros. */
  .entry-pnl-block { flex-wrap: wrap; justify-content: flex-end; row-gap: 6px; }
  .entry-card .icon-btn { min-width: 40px; min-height: 40px; }

  /* 18. Onglets actifs Fonda : scroll horizontal au lieu de wrap + plus tactiles. */
  .fonda-asset-tabs {
    flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; margin: 0 -16px 18px; padding: 0 16px;
  }
  .fonda-asset-tabs::-webkit-scrollbar { display: none; }
  .fonda-asset-tab { flex: 0 0 auto; padding: 10px 14px; }

  /* 19. Catalyseurs Fonda : date pleine largeur, titre lisible (plus de 150px fixes). */
  .fonda-cata { flex-wrap: wrap; gap: 6px 10px; }
  .fonda-cata-date { flex: 0 0 100%; font-size: 11px; }
  .fonda-cata-title { flex: 1 1 auto; min-width: 0; }
  .fonda-cd { margin-left: auto; }

  /* 20. Toasts : pleine largeur encadrée (plus de clipping au bord). */
  #toast-container { top: 12px; left: 12px; right: 12px; }
  .toast { min-width: 0; max-width: none; width: 100%; }

  /* 21. Barre d'esperance Fonda : libère de la place pour la barre de proba. */
  .fonda-es-qlabel { flex-basis: 74px; }
  .fonda-es-val { flex-basis: 50px; }
  .fonda-es-nn { display: none; }

  /* 22. En-têtes Fonda (banque centrale / scénario) : résistants aux noms longs. */
  .fonda-cb-head { flex-wrap: wrap; }
  .fonda-cb-bank { min-width: 0; }
  .fonda-scen-head { align-items: flex-start; }
  .fonda-scen-title { min-width: 0; }
  .fonda-scen-prob { flex: 0 0 auto; white-space: nowrap; }

  /* 24. CTA Discord des News : zone tap plus généreuse. */
  .news-cta { display: inline-block; padding: 8px 0; font-size: 12.5px; }
  .news-tag { font-size: 10.5px; }
}

@media (max-width: 1100px) {
  /* 11. News+Suivi : le sticky n'a de sens qu'en 2 colonnes desktop. */
  .overview-news { position: static; top: auto; }
}

@media (max-width: 640px) {
  /* 23. Hero capital : valeur 6 chiffres qui ne frôle plus le débordement. */
  .capital-hero { padding: 16px 18px; }
  .capital-hero-value { font-size: 24px; word-break: break-word; }
  .capital-hero-main { min-width: 0; }
  .capital-hero-sub { font-size: 11.5px; line-height: 1.4; }
}

@media (max-width: 430px) {
  /* 4b. Très petits écrans : stats compte en 1 colonne. */
  .account-stats { grid-template-columns: 1fr !important; }
  /* 20b. Tuiles marché Fonda en 1 colonne (valeur 24px mono lisible). */
  .fonda-market-row { grid-template-columns: 1fr; }
}

/* ================================================================
   PACK MODALES MOBILE — 2026-06-20
   Bouton ✕ dans un header collant (fermer sans scroller tout le form),
   barre d'action épinglée en bas (boutons pleine largeur, zone du pouce),
   anti scroll-chaining. Le scroll-lock du fond + le reset scroll au switch
   sont gérés en JS (app.js). ✕ masquée en desktop (Annuler + backdrop suffisent).
   ================================================================ */
.modal { overscroll-behavior: contain; }
.modal-x { display: none; }

@media (max-width: 700px) {
  /* Header collant sur les 4 grandes modales (classe modal-title--x). */
  .modal-title--x {
    position: sticky;
    top: 0;
    z-index: 3;
    margin: -1.8rem -1.9rem 1.4rem -1.9rem !important;
    padding: 1.3rem 3.4rem 1rem 1.9rem !important;
    background: linear-gradient(160deg, rgba(22,22,24,0.99), rgba(14,14,16,0.99));
    border-radius: 20px 20px 0 0;
  }
  /* Bouton fermer : 44px, ancré en haut à droite du header collant. */
  .modal-x {
    display: inline-flex;
    position: absolute;
    top: 0.5rem;
    right: 0.7rem;
    width: 44px;
    height: 44px;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 10px;
    color: var(--muted2, #8a8a90);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
  }
  .modal-x:active { background: rgba(255,255,255,0.07); color: var(--chrome, #e8e8ea); }

  /* Barre d'action épinglée en bas : Enregistrer/Annuler pleine largeur, atteignables au pouce. */
  .modal-actions {
    position: sticky;
    bottom: 0;
    margin: 1.1rem -1.9rem -1.8rem -1.9rem;
    padding: 0.9rem 1.9rem calc(0.9rem + env(safe-area-inset-bottom, 0px));
    background: linear-gradient(0deg, rgba(14,14,16,0.99), rgba(20,20,22,0.96));
    border-top: 0.5px solid rgba(208,196,168,0.12);
    gap: 10px;
    z-index: 2;
  }
  .modal-actions .btn-primary, .modal-actions .btn-secondary {
    flex: 1;
    min-height: 48px;
    font-size: 15px;
  }
}
