/* ─── K-PROTOCOL · Global CSS ─── Mobile-first · Olive · Apple Glossy */
:root {
  --olive:       #6B7240;
  --olive-light: #8a9354;
  --olive-dark:  #4e5430;
  --olive-bg:    #eef0e6;
  --gold:        #C9963A;
  --gold-light:  #e8b84b;
  --white:       #ffffff;
  --bg:          #f2f2ed;
  --bg2:         #e8e8e2;
  --card:        #ffffff;
  --text:        #1c1c1e;
  --text2:       #374151;
  --text3:       #3f4756;
  --border:      rgba(0,0,0,0.07);
  --border2:     rgba(0,0,0,0.11);
  --shadow-sm:   0 1px 3px rgba(0,0,0,0.05), 0 1px 2px rgba(0,0,0,0.03);
  --shadow:      0 4px 20px rgba(0,0,0,0.07), 0 1px 4px rgba(0,0,0,0.04);
  --shadow-lg:   0 8px 40px rgba(0,0,0,0.09), 0 2px 8px rgba(0,0,0,0.05);
  --radius:      14px;
  --radius-sm:   8px;
  --radius-lg:   20px;
  --font:        -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', system-ui, sans-serif;
  --nav-h:       58px;
  --sidebar-w:   200px;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; overflow-y: scroll; }
body {
  font-family: var(--font); background: var(--bg); color: var(--text);
  line-height: 1.6; -webkit-font-smoothing: antialiased;
}
body::before {
  content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    radial-gradient(ellipse at 15% 10%, rgba(107,114,64,.07) 0%, transparent 45%),
    radial-gradient(ellipse at 85% 90%, rgba(201,150,58,.05) 0%, transparent 45%);
}

/* ─── TYPOGRAPHY ── */
h1,h2,h3,h4 { line-height:1.2; font-weight:600; letter-spacing:-.02em; }
h1 { font-size:clamp(1.5rem,5vw,2rem); }
h2 { font-size:clamp(1.1rem,3vw,1.35rem); }
h3 { font-size:1rem; }
p  { color:var(--text2); }
a  { color:var(--olive); text-decoration:none; }
a:hover { color:var(--olive-dark); }

/* ─── LAYOUT ── */
.container { width:100%; max-width:900px; margin:0 auto; padding:0 1.25rem; }

/* ─── NAVBAR ── */
.navbar {
  position:fixed; top:0; left:0; right:0; z-index:100;
  height:var(--nav-h);
  background:rgba(235,236,228,0.94);
  backdrop-filter:blur(24px) saturate(180%);
  -webkit-backdrop-filter:blur(24px) saturate(180%);
  border-bottom:1px solid rgba(107,114,64,0.18);
  box-shadow:0 1px 0 rgba(0,0,0,0.07), 0 2px 8px rgba(0,0,0,0.04);
}
.navbar .container { display:flex; align-items:center; justify-content:space-between; height:100%; }
.nav-logo { display:flex; align-items:center; gap:.65rem; text-decoration:none; }
.nav-logo-badge {
  width:38px; height:38px; background:var(--gold); border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:1.15rem; color:#000; flex-shrink:0;
  box-shadow:0 2px 8px rgba(201,150,58,.4), inset 0 1px 0 rgba(255,255,255,.3);
}
.nav-logo-text { display:flex; flex-direction:column; gap:1px; }
.nav-logo-name { font-weight:800; font-size:1rem; color:var(--text); letter-spacing:-.01em; line-height:1; }
.nav-logo-sub  { font-size:.65rem; color:var(--olive); letter-spacing:.08em; text-transform:uppercase; font-weight:600; }
.nav-right { display:flex; align-items:center; gap:.6rem; }
.nav-user  { font-size:.82rem; color:var(--text2); font-weight:500; }
.badge-admin  { font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; padding:.2rem .55rem; border-radius:6px; background:var(--olive-bg); color:var(--olive-dark); border:1px solid rgba(107,114,64,.2); }
.badge-coach  { font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; padding:.2rem .55rem; border-radius:6px; background:rgba(201,150,58,.1); color:#7a5215; border:1px solid rgba(201,150,58,.2); }
.badge-staff  { font-size:.65rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; padding:.2rem .55rem; border-radius:6px; background:rgba(201,150,58,.1); color:#7a5215; border:1px solid rgba(201,150,58,.2); }

/* ─── HAMBURGER ── */
.hamburger {
  display:flex; flex-direction:column; gap:5px; cursor:pointer;
  padding:.45rem; border:none; background:none; border-radius:var(--radius-sm); transition:background .15s;
}
.hamburger:hover { background:var(--olive-bg); }
.hamburger span { display:block; width:20px; height:2px; background:var(--text); border-radius:2px; transition:all .25s; }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; transform:scaleX(0); }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ─── MOBILE MENU ── */
.mobile-menu {
  display:none; position:fixed; top:var(--nav-h); left:0; right:0; z-index:99;
  background:rgba(242,242,237,0.97); backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border); flex-direction:column; padding:.5rem .75rem .75rem;
  animation:slideDown .2s ease;
}
.mobile-menu.open { display:flex; }
.mobile-menu a { display:block; padding:.7rem .9rem; border-radius:var(--radius-sm); font-size:.92rem; font-weight:500; color:var(--text2); transition:all .15s; }
.mobile-menu a:hover,.mobile-menu a.active { background:var(--olive-bg); color:var(--olive-dark); }
.mobile-menu a.active { font-weight:600; }
.mobile-menu .menu-divider { height:1px; background:var(--border); margin:.4rem 0; }
@keyframes slideDown { from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:translateY(0)} }

/* ─── MENU MOBILE ADMIN : plein écran + scroll INTERNE (le fond ne défile plus) ── */
.mobile-menu-admin {
  bottom:0; overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
  padding-bottom:calc(.9rem + env(safe-area-inset-bottom));
}

/* ─── MOBILE MENU MEMBRE : plein écran, groupes dépliés, grandes zones de tap ── */
.mobile-menu-member { top:var(--nav-h); bottom:0; right:0; left:0; padding:0; background:rgba(242,242,237,0.98); }
.mobile-menu-member.open { display:flex; flex-direction:column; }
.mobile-menu-member .mobile-menu-scroll { flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:.6rem .8rem .9rem; }
.mobile-menu-member .mobile-menu-foot { border-top:1px solid var(--border); background:rgba(255,255,255,.55); padding:.5rem .8rem calc(.5rem + env(safe-area-inset-bottom)); }
.mobile-menu-member .mm-link {
  display:flex; align-items:center; gap:.75rem; padding:.85rem .9rem; border-radius:11px;
  font-size:1rem; font-weight:500; color:var(--text2); transition:background .12s,color .12s;
}
.mobile-menu-member .mm-link svg { width:19px; height:19px; flex:0 0 auto; opacity:.65; }
.mobile-menu-member .mm-link > span { flex:1; }
.mobile-menu-member .mm-link:hover,
.mobile-menu-member .mm-link:active,
.mobile-menu-member .mm-link.active { background:var(--olive-bg); color:var(--olive-dark); }
.mobile-menu-member .mm-link.active { font-weight:700; }
.mobile-menu-member .mm-link.active svg { opacity:1; }
.mobile-menu-member .mm-logout { color:#b91c1c; }
.mobile-menu-member .mm-logout svg { opacity:.85; }
.mobile-menu-member .mobile-group-label { font-size:.64rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--text3); padding:1rem .9rem .35rem; }
.mobile-menu-member .mobile-menu-scroll > .mobile-group-label:first-child { padding-top:.3rem; }

/* ─── Mise en avant « Copilote pré-trade » dans le menu membre ── */
.dash-sidebar a[href$="p=copilote"],
.mobile-menu-member .mm-link[href$="p=copilote"] {
  background:var(--olive-bg);
  box-shadow:inset 0 0 0 1px rgba(107,114,64,.3);
  color:var(--olive-dark); font-weight:600;
}
.dash-sidebar a[href$="p=copilote"]:hover,
.mobile-menu-member .mm-link[href$="p=copilote"]:hover { background:#e6e9da; }
.dash-sidebar a[href$="p=copilote"] svg,
.mobile-menu-member .mm-link[href$="p=copilote"] svg { color:var(--olive); opacity:1; }
.dash-sidebar a[href$="p=copilote"]::after,
.mobile-menu-member .mm-link[href$="p=copilote"]::after {
  content:'★'; margin-left:auto; color:var(--olive); font-size:.72rem; flex-shrink:0;
}

/* ─── DASHBOARD LAYOUT ── */
.dash-wrap { display:flex; min-height:calc(100vh - var(--nav-h) - 12px - 24px); padding-top:0; }

/* ─── SIDEBAR ── */
.dash-sidebar {
  width:var(--sidebar-w); min-width:var(--sidebar-w);
  background:rgba(255,255,255,0.7);
  backdrop-filter:blur(20px);
  border-right:1px solid rgba(255,255,255,0.8);
  box-shadow:inset -1px 0 0 rgba(0,0,0,0.06);
  position:fixed; top:var(--nav-h); bottom:0; left:0; overflow-y:auto;
  padding:1.1rem .75rem; display:none; flex-direction:column; gap:.1rem;
}
.sidebar-label { font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--text3); padding:.6rem .6rem .3rem; }
.dash-sidebar a {
  display:flex; align-items:center; gap:.55rem; padding:.52rem .75rem;
  border-radius:var(--radius-sm); font-size:.84rem; font-weight:500;
  color:var(--text2); text-decoration:none; transition:all .15s;
}
.dash-sidebar a:hover { background:rgba(107,114,64,.08); color:var(--olive-dark); }
.dash-sidebar a.active {
  background:var(--olive-bg); color:var(--olive-dark); font-weight:600;
  box-shadow:0 1px 3px rgba(107,114,64,.12);
}
.sidebar-dot { width:5px; height:5px; border-radius:50%; background:var(--text3); min-width:5px; }
.dash-sidebar a.active .sidebar-dot { background:var(--olive); }
.dash-main { flex:1; }
@media(min-width:900px) { .dash-sidebar{display:flex;} .dash-main{margin-left:var(--sidebar-w);} .hamburger{display:none;} }

/* ─── SOUS-MENUS : en-tête de groupe (desktop) ──
   Même apparence qu'un lien du menu (boîte blanche + icône), + une petite flèche. ── */
.kp-grp-head {
  display:flex; align-items:center; gap:.6rem; width:100%; text-align:left;
  font-family:inherit; cursor:pointer;
  padding:.6rem .75rem; margin:2px 0;
  border-radius:9px; font-size:.84rem; font-weight:500;
  color:var(--text2); transition:all .15s;
  border:1px solid rgba(0,0,0,0.06); background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,0.04), inset 0 1px 0 rgba(255,255,255,.8);
}
.kp-grp-head:hover { background:#f0f1e8; color:var(--olive-dark); border-color:rgba(107,114,64,.15); }
.kp-grp-head.has-active { color:var(--olive-dark); border-color:rgba(107,114,64,.25); }
.kp-grp-head svg:not(.kp-chev) { width:16px; height:16px; flex-shrink:0; opacity:.6; }
.kp-grp-head:hover svg:not(.kp-chev), .kp-grp-head.has-active svg:not(.kp-chev) { opacity:.85; }
.kp-grp-head > span { flex:1; }
.kp-chev { width:12px; height:12px; opacity:.5; flex:0 0 auto; transition:transform .2s, opacity .15s; }
.kp-grp-head:hover .kp-chev, .kp-grp-head.has-active .kp-chev { opacity:.85; }
.kp-grp-head:hover .kp-chev { transform:translateX(2px); }

/* ─── SOUS-MENUS : panneau flyout (rendu hors sidebar, position:fixed via JS) ── */
#kp-flyouts { position:absolute; top:0; left:0; }
.kp-grp-panel {
  position:fixed; z-index:200; min-width:210px; max-width:260px;
  background:#fff; border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow-lg); padding:.4rem;
  opacity:0; visibility:hidden; transform:translateX(-6px);
  transition:opacity .16s ease, transform .16s ease, visibility .16s;
}
.kp-grp-panel.show { opacity:1; visibility:visible; transform:translateX(0); }
/* pont invisible pour franchir le petit vide sidebar → panneau */
.kp-grp-panel::before { content:""; position:absolute; left:-12px; top:0; width:12px; height:100%; }
.kp-grp-panel-ttl { font-size:.6rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--text3); padding:.4rem .65rem .45rem; }
.kp-grp-panel a {
  display:flex; align-items:center; gap:.5rem; padding:.5rem .65rem; border-radius:var(--radius-sm);
  font-size:.84rem; font-weight:500; color:var(--text2); text-decoration:none; transition:all .15s; white-space:nowrap;
}
.kp-grp-panel a svg { width:16px; height:16px; opacity:.7; flex:0 0 auto; }
.kp-grp-panel a:hover { background:rgba(107,114,64,.08); color:var(--olive-dark); }
.kp-grp-panel a.active { background:var(--olive-bg); color:var(--olive-dark); font-weight:600; }

/* ─── SOUS-MENUS : accordéon mobile ── */
.mobile-grp-head {
  display:flex; align-items:center; width:100%; background:none; border:none; cursor:pointer;
  font-family:inherit; text-align:left; padding:.7rem .35rem .4rem;
  font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--text3);
}
.mobile-grp-head .kp-chev { margin-left:auto; transition:transform .2s; }
.mobile-grp-head.open .kp-chev { transform:rotate(90deg); }
.mobile-grp-body { overflow:hidden; max-height:0; transition:max-height .28s ease; }
.mobile-grp-body.open { max-height:640px; }
.mobile-grp-body a { padding-left:1.1rem; }

/* ─── GLOSSY CARDS ── */
.card {
  background:linear-gradient(160deg, rgba(255,255,255,0.95) 0%, rgba(248,248,244,0.9) 100%);
  border-radius:var(--radius);
  border:1px solid rgba(255,255,255,0.8);
  box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,0.9);
  padding:1.25rem; transition:box-shadow .2s, transform .2s;
  position:relative; overflow:hidden;
}
.card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:50%;
  background:linear-gradient(to bottom, rgba(255,255,255,0.15), transparent);
  border-radius:var(--radius) var(--radius) 0 0; pointer-events:none;
}
.card:hover { box-shadow:var(--shadow); transform:translateY(-1px); }
.card-grid { display:grid; grid-template-columns:1fr; gap:.85rem; margin-bottom:1.5rem; }

/* ─── SECTION HERO ── */
.sec-hero { padding:2rem 1.75rem 1.5rem; border-bottom:1px solid var(--border); max-width:860px; }
.sec-tag {
  display:inline-flex; align-items:center; gap:.3rem; font-size:.67rem;
  font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--olive); background:var(--olive-bg); border:1px solid rgba(107,114,64,.18);
  border-radius:20px; padding:.25rem .7rem; margin-bottom:.85rem;
}
.sec-hero h1 { font-size:clamp(1.4rem,4vw,1.85rem); color:var(--text); margin-bottom:.5rem; }
.sec-hero p  { font-size:.88rem; color:var(--text2); max-width:580px; }
.sec-body { padding:1.5rem 1.75rem; max-width:860px; }

/* ─── FORMS ── */
.form-group { display:flex; flex-direction:column; gap:.4rem; margin-bottom:1rem; }
.form-label { font-size:.8rem; font-weight:600; color:var(--text); }
.form-input,.form-select {
  padding:.7rem 1rem; border-radius:var(--radius-sm);
  border:1.5px solid var(--border2);
  background:linear-gradient(to bottom, rgba(255,255,255,0.9), rgba(248,248,244,0.8));
  font-family:var(--font); font-size:.92rem; color:var(--text);
  transition:border-color .15s, box-shadow .15s; width:100%; outline:none; -webkit-appearance:none;
  box-shadow:inset 0 1px 3px rgba(0,0,0,0.04);
}
.form-input:focus,.form-select:focus { border-color:var(--olive); box-shadow:0 0 0 3px rgba(107,114,64,.1), inset 0 1px 3px rgba(0,0,0,0.04); }
.form-input::placeholder { color:var(--text3); }
.form-error { font-size:.75rem; color:#dc2626; }
.row-2 { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
@media(max-width:480px){ .row-2 { grid-template-columns:1fr; } }

/* ─── BUTTONS ── */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.4rem;
  padding:.68rem 1.4rem; border-radius:var(--radius-sm); font-family:var(--font);
  font-size:.88rem; font-weight:600; cursor:pointer; border:none;
  transition:all .18s; text-decoration:none; white-space:nowrap; line-height:1;
  position:relative; overflow:hidden;
}
.btn::after { content:''; position:absolute; inset:0; background:linear-gradient(to bottom, rgba(255,255,255,0.12), transparent); pointer-events:none; }
.btn-primary { background:linear-gradient(160deg,var(--olive-light),var(--olive-dark)); color:#fff; box-shadow:0 2px 10px rgba(107,114,64,.35), inset 0 1px 0 rgba(255,255,255,.15); }
.btn-primary:hover { box-shadow:0 4px 14px rgba(107,114,64,.45); transform:translateY(-1px); color:#fff; }
.btn-gold    { background:linear-gradient(160deg,var(--gold-light),var(--gold)); color:#000; box-shadow:0 2px 10px rgba(201,150,58,.35), inset 0 1px 0 rgba(255,255,255,.2); }
.btn-gold:hover { transform:translateY(-1px); color:#000; }
.btn-outline { background:transparent; color:var(--olive); border:1.5px solid var(--olive); box-shadow:none; }
.btn-outline:hover { background:var(--olive-bg); }
.btn-ghost { background:transparent; color:var(--text2); box-shadow:none; }
.btn-ghost:hover { background:var(--bg2); color:var(--text); }
.btn-danger { background:linear-gradient(160deg,#ef4444,#dc2626); color:#fff; box-shadow:0 2px 8px rgba(220,38,38,.3); }
.btn-danger:hover { color:#fff; transform:translateY(-1px); }
.btn-sm { padding:.42rem .9rem; font-size:.78rem; }
.btn-full { width:100%; }

/* ─── ALERTS ── */
.alert { padding:.85rem 1.1rem; border-radius:var(--radius-sm); font-size:.86rem; margin-bottom:1rem; }
.alert-success { background:rgba(22,163,74,.07); color:#166534; border:1px solid rgba(22,163,74,.18); }
.alert-error   { background:rgba(220,38,38,.07); color:#991b1b; border:1px solid rgba(220,38,38,.18); }
.alert-info    { background:var(--olive-bg); color:var(--olive-dark); border:1px solid rgba(107,114,64,.2); }

/* ─── BADGES ── */
.badge { display:inline-flex; align-items:center; gap:.3rem; padding:.2rem .6rem; border-radius:20px; font-size:.7rem; font-weight:600; }
.badge-active { background:rgba(22,163,74,.1); color:#15803d; border:1px solid rgba(22,163,74,.2); }
.badge-member { background:rgba(0,0,0,.05); color:var(--text2); border:1px solid var(--border); }
.badge-dot { width:5px; height:5px; border-radius:50%; background:currentColor; }

/* ─── TABLE ── */
.table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; border-radius:var(--radius); border:1px solid var(--border); box-shadow:var(--shadow-sm); }
table { width:100%; border-collapse:collapse; font-size:.83rem; background:var(--card); }
thead th { padding:.6rem .9rem; text-align:left; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--text3); background:var(--bg); border-bottom:1px solid var(--border); white-space:nowrap; }
tbody td { padding:.72rem .9rem; border-bottom:1px solid var(--border); color:var(--text2); vertical-align:middle; }
tbody tr:last-child td { border-bottom:none; }
tbody tr:hover td { background:rgba(107,114,64,.03); }

/* ─── PAGE HEADER ── */
.page-header { margin-bottom:1.5rem; }
.page-header h1 { color:var(--text); margin-bottom:.25rem; }
.page-header p  { font-size:.88rem; color:var(--text2); }

/* ─── CONCEPT CARDS ── */
.concept-card {
  background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(248,248,244,.9));
  border:1px solid rgba(255,255,255,.8); border-left:3px solid var(--olive);
  border-radius:0 var(--radius) var(--radius) 0;
  box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.7);
  padding:1rem 1.1rem; margin-bottom:.65rem;
}
.concept-card.gold  { border-left-color:var(--gold); }
.concept-card.green { border-left-color:#16a34a; }
.concept-card.red   { border-left-color:#dc2626; }
.concept-name { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--olive); margin-bottom:.3rem; }
.concept-card.gold  .concept-name { color:#7a5215; }
.concept-card.green .concept-name { color:#15803d; }
.concept-card.red   .concept-name { color:#991b1b; }
.concept-text { font-size:.85rem; color:var(--text2); line-height:1.65; }
.concept-text strong { color:var(--text); }

/* ═══════════════════════════════════════════════════════════════════
   CONCEPT CARDS — style commun à toutes les pages de formation
   (Bases, ICT, OPR, Money Management). Le style des cartes s'applique
   à TOUTES les cartes ; l'image ne fait qu'ajouter la colonne de droite.
   ═══════════════════════════════════════════════════════════════════ */

/* sections numérotées (01, 02, 03…) */
.sec-body { counter-reset:kpsec; }
.sec-body .sh {
  counter-increment:kpsec; display:flex; align-items:center; gap:.8rem;
  font-size:1.08rem; font-weight:700; letter-spacing:0; text-transform:none; color:var(--text);
  margin:2.6rem 0 1.3rem; padding-bottom:.65rem; border-bottom:1px solid var(--border);
}
.sec-body .sh::before {
  content:counter(kpsec,decimal-leading-zero);
  font-size:1.05rem; font-weight:800; color:#C9963A; background:rgba(201,150,58,.13);
  width:2.1rem; height:2.1rem; border-radius:9px; display:grid; place-items:center; flex:none;
}

/* la carte (avec ou sans image) */
.concept-card {
  background:#fff; border:1px solid var(--border); border-left-width:4px;
  border-radius:var(--radius); box-shadow:var(--shadow-sm);
  padding:1.4rem 1.5rem; margin-bottom:1rem; position:relative;
  transition:transform .22s ease, box-shadow .22s ease;
}
.concept-card.green  { border-left-color:#16a34a; background:linear-gradient(105deg,rgba(22,163,74,.13),rgba(22,163,74,.03)); }
.concept-card.red    { border-left-color:#dc2626; background:linear-gradient(105deg,rgba(220,38,38,.11),rgba(220,38,38,.025)); }
.concept-card.gold   { border-left-color:#C9963A; background:linear-gradient(105deg,rgba(201,150,58,.15),rgba(201,150,58,.035)); }
.concept-card:not(.green):not(.red):not(.gold) {
  border-left-color:#6b7240; background:linear-gradient(105deg,rgba(107,114,64,.11),rgba(107,114,64,.025));
}
.concept-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }

/* titre : pastille colorée + capitales */
.concept-name {
  display:flex; align-items:center; gap:.55rem; font-size:1rem;
  text-transform:uppercase; letter-spacing:.03em; margin-bottom:.5rem;
}
.concept-name::before {
  content:""; width:10px; height:10px; border-radius:50%; background:currentColor; flex:none;
  box-shadow:0 0 0 4px color-mix(in srgb, currentColor 18%, transparent);
}
.concept-text { font-size:.92rem; line-height:1.62; }

/* ─── cartes AVEC image : texte à gauche + image à droite ─── */
.concept-card.has-img { display:grid; grid-template-columns:1fr 270px; gap:1.5rem; align-items:center; }
.concept-card.has-img .concept-body { min-width:0; }

.concept-img { margin:0; position:relative; }
.concept-img img {
  width:100%; display:block; border:1px solid var(--border); border-radius:10px;
  box-shadow:0 4px 16px rgba(0,0,0,.10); cursor:zoom-in; transition:box-shadow .2s ease;
}
.concept-card.has-img:hover .concept-img img { box-shadow:0 8px 28px rgba(0,0,0,.16); }
.concept-img::before {
  content:"⤢ Agrandir"; position:absolute; top:.55rem; right:.55rem; z-index:2;
  background:rgba(20,20,18,.72); color:#fff; font-size:.62rem; font-weight:600;
  padding:.28rem .55rem; border-radius:999px; opacity:0; transition:opacity .2s; pointer-events:none;
}
.concept-card.has-img:hover .concept-img::before { opacity:1; }
.concept-img.is-soon::before { display:none; }
.concept-img figcaption {
  font-style:italic; font-size:.72rem; color:var(--text3); margin-top:.55rem; text-align:center;
}

/* placeholder tant que la photo n'existe pas */
.concept-img .kp-soon {
  aspect-ratio:16/10; display:flex; align-items:center; justify-content:center;
  text-align:center; padding:1rem; font-size:.74rem; color:var(--text3);
  border-radius:10px; border:1.5px dashed var(--border2);
  background:repeating-linear-gradient(45deg,rgba(0,0,0,.02) 0 10px,transparent 10px 20px);
}

/* visionneuse plein écran */
.kp-lightbox {
  position:fixed; inset:0; z-index:1000; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:1rem; padding:2rem;
  background:rgba(18,18,14,.86); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px);
  opacity:0; pointer-events:none; transition:opacity .2s ease;
}
.kp-lightbox.open { opacity:1; pointer-events:auto; }
.kp-lightbox img {
  max-width:min(1100px,92vw); max-height:80vh; object-fit:contain;
  border-radius:var(--radius); box-shadow:var(--shadow-lg); cursor:zoom-out;
}
.kp-lightbox figcaption { color:#f5f5f0; font-size:.92rem; text-align:center; max-width:90vw; font-style:italic; }
.kp-lightbox .kp-close {
  position:absolute; top:1rem; right:1.25rem; width:42px; height:42px; border:none;
  border-radius:50%; background:rgba(255,255,255,.12); color:#fff; font-size:1.5rem; line-height:1;
  cursor:pointer; transition:background .15s ease;
}
.kp-lightbox .kp-close:hover { background:rgba(255,255,255,.25); }

/* mobile : image sous le texte */
@media (max-width:620px) { .concept-card.has-img { grid-template-columns:1fr; } }

/* ─── STEPS ── */
.steps-list { display:flex; flex-direction:column; gap:.55rem; margin-bottom:1.5rem; }
.step-item {
  display:flex; gap:.9rem; padding:.85rem 1.1rem;
  background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(248,248,244,.9));
  border:1px solid rgba(255,255,255,.8); border-radius:var(--radius);
  box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.8);
}
.step-n { font-size:1.15rem; font-weight:700; color:var(--olive); min-width:1.4rem; line-height:1.3; }
.step-title { font-weight:600; color:var(--text); font-size:.87rem; margin-bottom:.12rem; }
.step-desc  { font-size:.8rem; color:var(--text2); }

/* ─── SECTION HEADING ── */
.sh { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--text3); margin-bottom:.85rem; display:flex; align-items:center; gap:.5rem; }
.sh::after { content:''; flex:1; height:1px; background:var(--border); }

/* ─── FORMULA ── */
.formula {
  background:linear-gradient(135deg,var(--olive-bg),rgba(238,240,230,.6));
  border:1px solid rgba(107,114,64,.18); border-radius:var(--radius);
  padding:1rem 1.25rem; margin-bottom:1.25rem;
  font-size:.87rem; color:var(--olive-dark); font-weight:600; line-height:1.7;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6);
}

/* ─── STAT MINI ── */
.mini-stats { display:grid; grid-template-columns:repeat(2,1fr); gap:.65rem; margin-bottom:1.5rem; }
@media(min-width:480px){ .mini-stats{grid-template-columns:repeat(4,1fr);} }
.mini-stat {
  background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(248,248,244,.85));
  border:1px solid rgba(255,255,255,.8); border-radius:var(--radius);
  padding:1rem; text-align:center;
  box-shadow:var(--shadow-sm), inset 0 1px 0 rgba(255,255,255,.9);
}
.mini-stat .val { font-size:1.35rem; font-weight:700; color:var(--text); letter-spacing:-.03em; }
.mini-stat .lbl { font-size:.67rem; color:var(--text3); text-transform:uppercase; letter-spacing:.07em; margin-top:.2rem; }

/* ─── LOGIN SPECIFIC ── */
.login-wrap { width:100%; max-width:400px; padding:1rem; }
.login-logo { text-align:center; margin-bottom:2.25rem; }
.login-logo-badge {
  width:52px; height:52px; background:linear-gradient(145deg,var(--gold-light),var(--gold));
  border-radius:15px; display:inline-flex; align-items:center; justify-content:center;
  font-size:1.45rem; font-weight:700; color:#000; margin-bottom:.85rem;
  box-shadow:0 4px 20px rgba(201,150,58,.45), inset 0 1px 0 rgba(255,255,255,.35);
}
.login-logo h1 { font-size:1.35rem; color:var(--text); margin-bottom:.2rem; }
.login-logo p  { font-size:.72rem; color:var(--olive); font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.login-card {
  background:linear-gradient(160deg,rgba(255,255,255,.92),rgba(245,245,240,.88));
  border-radius:var(--radius-lg); border:1px solid rgba(255,255,255,.85);
  box-shadow:0 8px 40px rgba(0,0,0,.09), 0 2px 8px rgba(0,0,0,.05), inset 0 1px 0 rgba(255,255,255,.95);
  padding:2rem 1.75rem; position:relative; overflow:hidden;
  backdrop-filter:blur(20px);
}
.login-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:45%;
  background:linear-gradient(to bottom,rgba(255,255,255,.2),transparent); pointer-events:none;
}
.login-card h2 { font-size:1.1rem; color:var(--text); margin-bottom:.25rem; }
.login-card .subtitle { font-size:.83rem; color:var(--text2); margin-bottom:1.5rem; }
.form-input-icon { position:relative; }
.form-input-icon .icon { position:absolute; left:.85rem; top:50%; transform:translateY(-50%); color:var(--text3); font-size:.88rem; pointer-events:none; }
.form-input-icon .form-input { padding-left:2.5rem; }
.login-footer { text-align:center; margin-top:1.25rem; font-size:.76rem; color:var(--text3); }

/* ─── ADMIN LAYOUT ── */
.admin-wrap { display:flex; min-height:100vh; padding-top:var(--nav-h); }
.admin-sidebar {
  width:var(--sidebar-w); min-width:var(--sidebar-w);
  background:rgba(255,255,255,0.7); backdrop-filter:blur(20px);
  border-right:1px solid rgba(255,255,255,.8);
  box-shadow:inset -1px 0 0 rgba(0,0,0,.06);
  position:fixed; top:var(--nav-h); bottom:0; left:0; overflow-y:auto;
  padding:1.1rem .75rem; display:none; flex-direction:column; gap:.1rem;
}
.admin-sidebar .sidebar-label { font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--text3); padding:.6rem .6rem .3rem; }
.admin-sidebar a { display:flex; align-items:center; gap:.55rem; padding:.52rem .75rem; border-radius:var(--radius-sm); font-size:.84rem; font-weight:500; color:var(--text2); text-decoration:none; transition:all .15s; }
.admin-sidebar a:hover { background:rgba(107,114,64,.08); color:var(--olive-dark); }
.admin-sidebar a.active { background:var(--olive-bg); color:var(--olive-dark); font-weight:600; box-shadow:0 1px 3px rgba(107,114,64,.1); }
.admin-main { flex:1; }
.admin-section { padding:1.75rem; }
@media(min-width:900px){ .admin-sidebar{display:flex;} .admin-main{margin-left:var(--sidebar-w);} }

/* ─── MISC ── */
hr { border:none; border-top:1px solid var(--border); margin:1.5rem 0; }
.spinner { width:20px; height:20px; border:2.5px solid rgba(0,0,0,.08); border-top-color:var(--olive); border-radius:50%; animation:spin .7s linear infinite; }
@keyframes spin { to{transform:rotate(360deg)} }
select.role-select { padding:.3rem .5rem; border-radius:6px; border:1px solid var(--border2); font-size:.8rem; background:var(--bg); color:var(--text); }
.stat-val { font-size:1.75rem; font-weight:700; color:var(--text); letter-spacing:-.03em; line-height:1; margin-bottom:.25rem; }
.stat-label { font-size:.72rem; color:var(--text3); font-weight:500; text-transform:uppercase; letter-spacing:.07em; }
.progress-bg { background:var(--bg2); border-radius:4px; height:5px; overflow:hidden; margin-top:.3rem; }
.progress-fill { height:100%; background:linear-gradient(90deg,var(--olive-light),var(--olive)); border-radius:4px; transition:width .4s; }
.member-avatar { width:30px; height:30px; border-radius:50%; background:var(--olive-bg); color:var(--olive-dark); display:inline-flex; align-items:center; justify-content:center; font-weight:700; font-size:.75rem; flex-shrink:0; }

/* ─── RESPONSIVE ── */
@media(min-width:640px) { .card-grid{grid-template-columns:repeat(2,1fr);} .container{padding:0 1.5rem;} }
@media(min-width:900px) { .card-grid{grid-template-columns:repeat(3,1fr);} .container{padding:0 2rem;} }

/* ── Dashboard & Admin partagés ──────────────────────── */

    /* ── LAYOUT CARD CENTRÉ ── */
    .dash-wrap {
      display:flex;
      max-width:900px;
      margin:calc(var(--nav-h) + 12px) auto 24px;
      border-radius:16px;
      border:1px solid rgba(0,0,0,0.08);
      box-shadow:0 4px 24px rgba(0,0,0,0.07);
      overflow:visible;
      padding-top:0 !important;
      background: linear-gradient(to right, #f8f8f4 200px, #ffffff 200px);
    }

    /* ── SIDEBAR fixed ── */
    .dash-sidebar {
      width:200px; min-width:200px;
      background:#f8f8f4;
      border-right:1px solid rgb(233,233,229);
      display:flex; flex-direction:column;
      padding:.85rem .65rem .65rem;
      position:fixed;
      top:var(--nav-h);
      overflow-y:auto;
      z-index:10;
      border-radius:16px 0 0 16px;
    }
    .dash-sidebar-placeholder {
      width:200px; min-width:200px; flex-shrink:0;
    }
    .sidebar-label {
      font-size:.62rem; font-weight:700; text-transform:uppercase;
      letter-spacing:.1em; color:var(--text3); padding:.4rem .6rem .3rem;
    }
    .dash-sidebar a {
      display:flex; align-items:center; gap:.6rem;
      padding:.6rem .75rem; margin:2px 0;
      border-radius:9px; font-size:.84rem; font-weight:500;
      color:var(--text2); text-decoration:none; transition:all .15s;
      border:1px solid rgba(0,0,0,0.06);
      background:#fff;
      box-shadow:0 1px 3px rgba(0,0,0,0.04),inset 0 1px 0 rgba(255,255,255,.8);
    }
    .dash-sidebar a:hover { background:#f0f1e8; color:var(--olive-dark); border-color:rgba(107,114,64,.15); }
    .dash-sidebar a.active {
      background:var(--olive); color:#fff; font-weight:600;
      border-color:var(--olive-dark);
      box-shadow:0 2px 8px rgba(107,114,64,.3),inset 0 1px 0 rgba(255,255,255,.12);
    }
    .dash-sidebar a svg { flex-shrink:0; opacity:.6; }
    .dash-sidebar a.active svg { opacity:1; }

    /* ── USER FOOTER FIXED ── */
    .sidebar-foot {
      position:fixed; background:#f8f8f4;
      border-right:1px solid rgb(233,233,229);
      border-radius:0 0 0 16px; z-index:11;
      padding:6px 10px 8px; box-sizing:border-box;
    }
    .sidebar-user-wrap { margin-top:auto; padding:8px 0 0; position:relative; }
    .sidebar-user-btn {
      display:flex; align-items:center; gap:9px;
      padding:8px 10px; border-radius:10px;
      background:#fff; border:1px solid rgba(0,0,0,0.07);
      box-shadow:0 1px 3px rgba(0,0,0,0.04);
      cursor:pointer; transition:all .15s;
    }
    .sidebar-user-btn:hover { background:#f0f1e8; border-color:rgba(107,114,64,.2); }
    .sidebar-avatar {
      width:28px; height:28px; border-radius:50%;
      background:linear-gradient(135deg,#8a9354,#6B7240);
      color:#fff; display:flex; align-items:center; justify-content:center;
      font-weight:700; font-size:13px; letter-spacing:1px; padding-left:1px; flex-shrink:0;
      box-shadow:0 2px 6px rgba(107,114,64,.3);
    }
    /* Couleur de la pastille selon le rôle */
    .sidebar-avatar.role-member { background:linear-gradient(135deg,#8a9354,#6B7240); box-shadow:0 2px 6px rgba(107,114,64,.3); }
    .sidebar-avatar.role-staff  { background:linear-gradient(135deg,#e0b85c,#C9963A); box-shadow:0 2px 6px rgba(201,150,58,.35); }
    .sidebar-avatar.role-admin  { background:linear-gradient(135deg,#454c35,#23271b); box-shadow:0 2px 6px rgba(35,39,27,.4); }
    .sidebar-user-name { font-size:.8rem; font-weight:600; color:var(--text); line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .sidebar-user-role { font-size:10px; color:var(--text3); letter-spacing:.6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    .sidebar-user-btn > div { min-width:0; }
    .sidebar-user-more { margin-left:auto; color:var(--text3); flex-shrink:0; }

    .sidebar-dropdown {
      display:none; position:absolute; bottom:calc(100% + 6px); left:0; right:0;
      background:#fff; border:1px solid rgba(0,0,0,0.09);
      border-radius:10px; padding:4px;
      box-shadow:0 -4px 20px rgba(0,0,0,0.1);
      z-index:50;
    }
    .sidebar-dropdown.open { display:block; animation:dropUp .18s ease; }
    @keyframes dropUp { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }
    .sd-item {
      display:flex; align-items:center; gap:8px;
      padding:8px 10px; border-radius:7px; font-size:.86rem; font-weight:500;
      color:#374151; text-decoration:none; transition:background .15s; cursor:pointer;
    }
    .sd-item:hover { background:#f0f1e8; }
    .sd-item.danger { color:#dc2626; }
    .sd-item.danger:hover { background:#fef2f2; }
    .sd-sep { height:1px; background:rgba(0,0,0,0.07); margin:3px 0; }

    /* ── MAIN ── */
    .dash-main { flex:1; overflow-y:auto; min-width:0; margin-left:0 !important; height:100%; }
    .sec-body > * { width:100%; }

    /* ── MOBILE ── */
    @media(max-width:900px) {
      /* Mobile : la sidebar fait doublon avec le menu hamburger → on la masque
         entièrement et le contenu prend toute la largeur. */
      .dash-wrap { margin:calc(var(--nav-h) + 1rem) 1rem 1rem; border-radius:12px; flex-direction:column; background:#fff; }
      .dash-sidebar,
      .dash-sidebar-placeholder,
      .sidebar-foot { display:none !important; }
      .dash-main { margin-left:0 !important; }
      .hamburger { display:flex; }
    }
    @media(min-width:900px) { .hamburger { display:none; } }
    /* Admin : offset desktop du contenu (remplace l'ancien margin-left:200px inline).
       Sur mobile, .dash-main { margin-left:0 !important } reprend la main. */
    @media(min-width:900px) { .dash-main.dash-main-offset { margin-left:200px !important; } }

    /* ── CONTENT ── */
    .sec-hero { padding:1.5rem 1.25rem 1.25rem; border-bottom:1px solid var(--border); }
    .sec-tag  { display:inline-flex;align-items:center;gap:.3rem;font-size:.67rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--olive);background:var(--olive-bg);border:1px solid rgba(107,114,64,.18);border-radius:20px;padding:.25rem .7rem;margin-bottom:.85rem; }
    .sec-hero h1 { font-size:clamp(1.4rem,4vw,1.85rem);color:var(--text);margin-bottom:.5rem; }
    .sec-hero p  { font-size:.88rem;color:var(--text2); }
    .sec-body { padding:1.25rem; }
    .concept-card { background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(248,248,244,.9));border:1px solid rgba(255,255,255,.8);border-left:3px solid var(--olive);border-radius:0 var(--radius) var(--radius) 0;box-shadow:var(--shadow-sm),inset 0 1px 0 rgba(255,255,255,.7);padding:1rem 1.1rem;margin-bottom:.65rem; }
    .concept-card.gold{border-left-color:var(--gold)}.concept-card.green{border-left-color:#16a34a}.concept-card.red{border-left-color:#dc2626}
    .concept-name{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--olive);margin-bottom:.3rem}
    .concept-card.gold .concept-name{color:#7a5215}.concept-card.green .concept-name{color:#15803d}.concept-card.red .concept-name{color:#991b1b}
    .concept-text{font-size:.85rem;color:var(--text2);line-height:1.65}.concept-text strong{color:var(--text)}
    .steps-list{display:flex;flex-direction:column;gap:.55rem;margin-bottom:1.5rem;width:100%}
    .step-item{display:flex;gap:.9rem;padding:.85rem 1.1rem;background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(248,248,244,.9));border:1px solid rgba(255,255,255,.8);border-radius:var(--radius);box-shadow:var(--shadow-sm),inset 0 1px 0 rgba(255,255,255,.8);width:100%}
    .step-n{font-size:1.15rem;font-weight:700;color:var(--olive);min-width:1.4rem;line-height:1.3}
    .step-title{font-weight:600;color:var(--text);font-size:.87rem;margin-bottom:.12rem}
    .step-desc{font-size:.8rem;color:var(--text2)}
    .sh{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);margin-bottom:.85rem;display:flex;align-items:center;gap:.5rem;width:100%}
    .sh::after{content:'';flex:1;height:1px;background:var(--border)}
    .formula{background:linear-gradient(135deg,var(--olive-bg),rgba(238,240,230,.6));border:1px solid rgba(107,114,64,.18);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.25rem;font-size:.87rem;color:var(--olive-dark);font-weight:600;line-height:1.7;box-shadow:inset 0 1px 0 rgba(255,255,255,.6);width:100%}
    .mini-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem;margin-bottom:1.5rem;width:100%}
    @media(min-width:480px){.mini-stats{grid-template-columns:repeat(4,1fr)}}
    .mini-stat{background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(248,248,244,.85));border:1px solid rgba(255,255,255,.8);border-radius:var(--radius);padding:1rem;text-align:center;box-shadow:var(--shadow-sm),inset 0 1px 0 rgba(255,255,255,.9)}
    .mini-stat .val{font-size:1.35rem;font-weight:700;color:var(--text);letter-spacing:-.03em}
    .mini-stat .lbl{font-size:.67rem;color:var(--text3);text-transform:uppercase;letter-spacing:.07em;margin-top:.2rem}
    .dash-main{flex:1;overflow-y:auto;min-width:0;margin-left:0 !important;height:100%}
    .sec-body > *{width:100%}
    hr{border:none;border-top:1px solid var(--border);margin:1.5rem 0}
    /* ── Mode « cadre fixe » (app) — desktop uniquement, dashboard membre + profil ──
       Le header, le cadre (menu + contenu) et l'espace du haut restent figés à l'écran ;
       seul le contenu (.dash-main) défile à l'intérieur → espacement TOUJOURS constant. */
    @media(min-width:900px){
      html:has(body.page-dashboard){ overflow:hidden; }
      body.page-dashboard{ overflow:hidden; height:100vh; }
      body.page-dashboard .dash-wrap{
        position:fixed; top:calc(var(--nav-h) + 12px); bottom:12px;
        left:0; right:0; width:min(900px, calc(100% - 32px));
        margin:0 auto !important;   /* neutralise le margin-top inline des pages admin */
        overflow:hidden;
      }
      body.page-dashboard .dash-main{ height:100%; overflow-y:auto; }
      /* Scrollbar discrète (filet fin, track transparent) sur le contenu et le menu */
      body.page-dashboard .dash-main,
      body.page-dashboard .dash-sidebar{ scrollbar-width:thin; scrollbar-color:rgba(0,0,0,.16) transparent; }
      body.page-dashboard .dash-main::-webkit-scrollbar,
      body.page-dashboard .dash-sidebar::-webkit-scrollbar{ width:7px; }
      body.page-dashboard .dash-main::-webkit-scrollbar-track,
      body.page-dashboard .dash-sidebar::-webkit-scrollbar-track{ background:transparent; }
      body.page-dashboard .dash-main::-webkit-scrollbar-thumb,
      body.page-dashboard .dash-sidebar::-webkit-scrollbar-thumb{ background:rgba(0,0,0,.14); border-radius:10px; border:2px solid transparent; background-clip:content-box; }
      body.page-dashboard .dash-main:hover::-webkit-scrollbar-thumb,
      body.page-dashboard .dash-sidebar:hover::-webkit-scrollbar-thumb{ background:rgba(0,0,0,.26); background-clip:content-box; }
    }

    /* ── NAV DAX ── */
    .nav-logo-badge {
      width:30px; height:30px; border-radius:8px;
      background:var(--olive); display:flex; align-items:center; justify-content:center;
      color:#fff; flex-shrink:0;
    }
    .nav-dax {
      display:flex; align-items:center; gap:0;
      background:#eef0e6; border:1px solid rgba(107,114,64,0.25);
      border-radius:10px; height:38px; overflow:hidden;
    }
    .nav-dax-main {
      display:flex; align-items:center; gap:6px;
      padding:0 14px; height:100%;
      background:rgba(107,114,64,0.12);
      border-right:1px solid rgba(107,114,64,0.18);
    }
    .nav-dax-main .nav-dax-lbl { font-size:.6rem; font-weight:700; color:#4e5430; letter-spacing:.1em; }
    .nav-dax-main .nav-dax-val { font-size:.92rem; font-weight:800; color:#1c1c1e; font-variant-numeric:tabular-nums; }
    .nav-dax-pdx {
      display:flex; align-items:center; gap:14px;
      padding:0 16px; height:100%;
      border-right:1px solid rgba(107,114,64,0.18);
    }
    .nav-dax-pdx .nav-dax-item { text-align:center; }
    .nav-dax-pdx .nav-dax-lbl { font-size:.55rem; font-weight:700; color:#6B7240; letter-spacing:.08em; display:block; }
    .nav-dax-pdx .nav-dax-val { font-size:.8rem; font-weight:700; color:#1c1c1e; font-variant-numeric:tabular-nums; }
    .nav-dax-sep  { width:1px; height:18px; background:rgba(107,114,64,0.2); flex-shrink:0; }
    .nav-dax-item { display:flex; flex-direction:column; align-items:center; justify-content:center;
                    padding:0 12px; height:100%; border-right:1px solid rgba(107,114,64,0.18); }
    .nav-dax-lbl  { font-size:.55rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:#6B7240; line-height:1; }
    .nav-dax-val  { font-size:.72rem; font-weight:600; color:#9ca3af; line-height:1.2; font-variant-numeric:tabular-nums; }
    .nav-dax-val.up   { color:#16a34a; }
    .nav-dax-val.down { color:#dc2626; }
    .nav-clock-wrap { display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0 14px; height:100%; }
    .nav-clock { font-size:.86rem !important; font-weight:700; font-family:monospace; color:#1c1c1e; letter-spacing:.02em; line-height:1; }
    .nav-date  { font-size:.55rem; color:#9ca3af; letter-spacing:.05em; }
    @media(max-width:900px) { .nav-dax { display:none; } }
    .nav-bell-btn {
      width:36px; height:36px; border-radius:9px;
      background:#eef0e6; border:1px solid rgba(107,114,64,0.25);
      display:flex; align-items:center; justify-content:center;
      transition:all .15s; position:relative;
    }
    .nav-bell-btn:hover { background:#e4e7d8; }
    .nav-bell-badge {
      position:absolute; top:-5px; right:-5px;
      width:17px; height:17px; background:#dc2626; border-radius:50%;
      font-size:9px; font-weight:700; color:#fff;
      display:flex; align-items:center; justify-content:center;
      border:1.5px solid var(--bg);
    }
    .nav-news-dd {
      position:absolute; top:44px; right:0; width:310px;
      background:#fff; border:1px solid rgba(107,114,64,0.18);
      border-radius:12px; box-shadow:0 8px 24px rgba(0,0,0,0.1);
      z-index:200; overflow:hidden;
    }
    .nav-news-dd-head {
      display:flex; align-items:center; justify-content:space-between;
      padding:9px 14px; border-bottom:1px solid rgba(107,114,64,0.1);
      font-size:.72rem; font-weight:700; color:#4e5430; letter-spacing:.04em; text-transform:uppercase;
    }
    .nav-news-dd-list { max-height:260px; overflow-y:auto; }
    .nav-news-item {
      display:flex; align-items:flex-start; gap:10px;
      padding:8px 14px; border-bottom:1px solid rgba(0,0,0,0.04);
      transition:background .12s;
    }
    .nav-news-item:hover { background:#f8f9f4; }
    .nav-news-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; margin-top:4px; }
    .nav-news-dot.high   { background:#dc2626; }
    .nav-news-dot.medium { background:#f59e0b; }
    .nav-news-dot.low    { background:#16a34a; }
    .nav-news-title { font-size:.74rem; font-weight:700; color:#1c1c1e; line-height:1.3; }
    .nav-news-meta  { font-size:.64rem; color:#9ca3af; margin-top:1px; }
/* Pages dynamiques (éditeur) : espacement plus lisible */
.page-rich h2 { margin-top:1.8rem; margin-bottom:.55rem; }
.page-rich h2:first-child { margin-top:.25rem; }
.page-rich p { margin:0 0 .2rem; }
.page-rich p:has(> strong) { margin-top:1.15rem; }
.page-rich h2 + p { margin-top:.3rem; }

/* ═══ Cartes "résultats" (variante .mini-stats.kp-results) ═══
   Même rendu que la section "Mes résultats" de l'Accueil, désormais
   disponible sur toutes les pages (ex. Paramètres de la page OPR). */
.kp-results .mini-stat {
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-top: 3px solid #6B7240;
  border-radius: 12px;
  box-shadow: 0 3px 12px rgba(0,0,0,.07);
}
.kp-results .mini-stat .val { color: #4e5430; }

/* ═══ Page OPR : timeline des 7 étapes (.steps-list) ═══ */
.steps-list { position:relative; display:flex; flex-direction:column; gap:.8rem; }
.steps-list::before {
  content:""; position:absolute; left:21px; top:10px; bottom:10px; width:2px;
  background:linear-gradient(180deg,#6B7240,#C9963A); border-radius:2px; opacity:.4;
}
.steps-list .step-item {
  position:relative; display:grid; grid-template-columns:44px 1fr; gap:1rem;
  align-items:stretch; background:none; border:none; padding:0;
}
.steps-list .step-n {
  width:44px; height:44px; border-radius:50%;
  background:linear-gradient(145deg,#6B7240,#4e5430); color:#fff;
  font-weight:800; font-size:1.1rem; display:grid; place-items:center;
  box-shadow:0 5px 14px rgba(107,114,64,.45); position:relative; z-index:1; border:3px solid #fff;
}
.steps-list .step-item:last-child .step-n {
  background:linear-gradient(145deg,#C9963A,#a87a26); box-shadow:0 5px 14px rgba(201,150,58,.45);
}
.steps-list .step-item > div:last-child {
  background:#fff; border:1px solid var(--border); border-left:3px solid rgba(107,114,64,.5);
  border-radius:12px; padding:.8rem 1.1rem; box-shadow:var(--shadow-sm);
  transition:transform .2s ease, box-shadow .2s ease, border-left-color .2s ease;
}
.steps-list .step-item:hover > div:last-child { transform:translateY(-3px); box-shadow:var(--shadow); border-left-color:#C9963A; }
.steps-list .step-title { font-weight:700; font-size:1rem; color:#4e5430; margin-bottom:.2rem; }
.steps-list .step-desc { font-size:.9rem; color:var(--text3); line-height:1.55; }

/* ═══ Page OPR : panneau "Règles d'invalidation" (.concept-card.red.kp-invalid) ═══ */
.concept-card.red.kp-invalid { background:linear-gradient(120deg,rgba(220,38,38,.08),rgba(220,38,38,.02)); }
.kp-invalid .concept-name::before {
  content:"!"; width:19px; height:19px; border-radius:5px; background:#dc2626; color:#fff;
  font-size:.72rem; font-weight:800; display:grid; place-items:center; box-shadow:none;
}
.invalid-list { list-style:none; margin:.75rem 0 0; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.invalid-list li { display:flex; align-items:flex-start; gap:.65rem; font-size:.92rem; color:var(--text2); line-height:1.45; }
.invalid-list li::before {
  content:"✕"; flex:none; width:20px; height:20px; border-radius:50%;
  background:rgba(220,38,38,.13); color:#dc2626; font-size:.7rem; font-weight:700;
  display:grid; place-items:center; margin-top:1px;
}
.invalid-list li.kp-stop { font-weight:700; color:#b91c1c; }
.invalid-list li.kp-stop::before { background:#dc2626; color:#fff; }

/* ═══ Page Plan de trading : liste à coches vertes (.check-list) ═══ */
.check-list { list-style:none; margin:.75rem 0 0; padding:0; display:flex; flex-direction:column; gap:.5rem; }
.check-list li { display:flex; align-items:flex-start; gap:.65rem; font-size:.92rem; color:var(--text2); line-height:1.45; }
.check-list li::before {
  content:"✓"; flex:none; width:20px; height:20px; border-radius:50%;
  background:rgba(22,163,74,.14); color:#16a34a; font-size:.72rem; font-weight:800;
  display:grid; place-items:center; margin-top:1px;
}
.check-list li strong { color:var(--text); font-weight:700; }
.kp-plan-note { font-size:.85rem; color:var(--text3); margin-top:.9rem; }
.kp-plan-note a { color:var(--olive-dark); font-weight:600; text-decoration:none; border-bottom:1px solid rgba(78,84,48,.3); }
.kp-plan-note a:hover { border-bottom-color:var(--olive-dark); }
.kp-flow { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin:.4rem 0 .2rem; }
.kp-flow-step { background:var(--olive-bg); color:var(--olive-dark); font-weight:600; font-size:.82rem; padding:.4rem .7rem; border-radius:8px; border:1px solid rgba(107,114,64,.18); }
.kp-flow-arrow { color:var(--olive); font-weight:800; opacity:.6; }

/* ═══ Page Lexique : recherche + termes ═══ */
.lex-searchbar { position:relative; margin-bottom:1.5rem; }
.lex-searchbar > svg { position:absolute; left:.9rem; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--text3); pointer-events:none; }
#lex-search { width:100%; padding:.8rem 1rem .8rem 2.6rem; border:1px solid var(--border); border-radius:12px; font-size:.95rem; font-family:inherit; background:#fff; color:var(--text); outline:none; transition:border-color .15s, box-shadow .15s; box-shadow:var(--shadow-sm); }
#lex-search:focus { border-color:var(--olive); box-shadow:0 0 0 3px rgba(107,114,64,.12); }
.lex-empty { text-align:center; color:var(--text3); padding:1.5rem; font-style:italic; }
.lex-cat { margin-bottom:1.6rem; }
.lex-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(285px,1fr)); gap:.8rem; }
.lex-item { background:linear-gradient(160deg,rgba(255,255,255,.95),rgba(248,248,244,.9)); border:1px solid rgba(255,255,255,.8); border-left:3px solid var(--olive); border-radius:0 var(--radius) var(--radius) 0; box-shadow:var(--shadow-sm); padding:.85rem 1.1rem; }
.lex-term { font-weight:700; color:var(--olive-dark); font-size:.92rem; margin-bottom:.25rem; }
.lex-def { font-size:.85rem; color:var(--text2); line-height:1.5; }
.lex-def em { color:var(--text); font-style:italic; }

/* ═══ Page Arsenal : cartes de liens externes ═══ */
.ars-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:.85rem; margin-bottom:1.6rem; }
.ars-card { display:block; background:linear-gradient(160deg,rgba(255,255,255,.97),rgba(248,248,244,.92)); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-sm); padding:1rem 1.1rem; text-decoration:none; transition:transform .15s, box-shadow .15s, border-color .15s; }
.ars-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); border-color:rgba(107,114,64,.25); }
.ars-head { display:flex; align-items:center; gap:.5rem; }
.ars-name { font-weight:700; color:var(--text); font-size:.95rem; flex:1; }
.ars-ext { width:15px; height:15px; color:var(--text3); flex:none; }
.ars-card:hover .ars-ext { color:var(--olive); }
.ars-desc { font-size:.83rem; color:var(--text2); line-height:1.5; margin:.4rem 0 .55rem; }
.ars-url { font-size:.76rem; color:var(--olive); font-weight:600; }

/* ═══ Page FAQ : accordéon ═══ */
.faq-list { display:flex; flex-direction:column; gap:.5rem; margin-bottom:1.6rem; }
.faq-item { background:#fff; border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow-sm); overflow:hidden; }
.faq-item summary { display:flex; align-items:center; gap:1rem; padding:.95rem 1.1rem; cursor:pointer; font-weight:600; font-size:.92rem; color:var(--text); list-style:none; transition:background .15s; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary:hover { background:rgba(107,114,64,.04); }
.faq-item summary > span { flex:1; }
.faq-chev { width:16px; height:16px; color:var(--text3); flex:none; transition:transform .2s; }
.faq-item[open] summary { color:var(--olive-dark); }
.faq-item[open] .faq-chev { transform:rotate(180deg); color:var(--olive); }
.faq-answer { padding:0 1.1rem 1.05rem; font-size:.88rem; color:var(--text2); line-height:1.6; }
.faq-answer a { color:var(--olive-dark); font-weight:600; text-decoration:none; border-bottom:1px solid rgba(78,84,48,.3); }
.faq-answer a:hover { border-bottom-color:var(--olive-dark); }

/* ═══ Page Avertissement / disclaimer ═══ */
.disc-p { font-size:.88rem; color:var(--text2); line-height:1.65; margin:.5rem 0 0; }
.disc-p strong { color:var(--text); font-weight:700; }
.disc-foot { margin-top:1.6rem; padding-top:1rem; border-top:1px solid var(--border); font-size:.8rem; color:var(--text3); text-align:center; font-style:italic; }

/* ═══ Page Money Management : calculateur de risque (point 1) ═══ */
.formula.kp-formula { text-align:center; }
.kp-eq { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.55rem; }
.kp-field { display:inline-flex; align-items:center; gap:.3rem; }
.kp-input { width:96px; text-align:center; font-weight:700; color:#4e5430; background:#fff; border:1px solid rgba(107,114,64,.35); border-radius:8px; padding:.4rem .5rem; font-size:.95rem; outline:none; }
.kp-input.kp-input-sm { width:66px; }
.kp-input:focus { border-color:#6B7240; box-shadow:0 0 0 3px rgba(107,114,64,.15); }
.kp-unit { font-weight:700; color:#4e5430; }
.kp-op { color:#6B7240; font-weight:800; font-size:1.15rem; }
.kp-eq .kp-term.kp-res { background:linear-gradient(145deg,#6B7240,#4e5430); color:#fff; border:1px solid #6B7240; border-radius:8px; padding:.4rem .85rem; font-weight:700; font-size:.95rem; min-width:90px; display:inline-block; }
.kp-ex { margin-top:.85rem; font-size:.83rem; color:var(--text3); font-weight:500; }

/* ═══ Page Money Management : tableau de référence (point 4) ═══ */
.kp-table { width:100%; border-collapse:separate; border-spacing:0; border-radius:12px; overflow:hidden; box-shadow:var(--shadow-sm); border:1px solid var(--border); font-size:.92rem; margin-bottom:1.25rem; }
.kp-table th { background:linear-gradient(145deg,#6B7240,#4e5430); color:#fff; font-weight:700; text-align:left; padding:.7rem 1rem; font-size:.74rem; text-transform:uppercase; letter-spacing:.04em; }
.kp-table td { padding:.65rem 1rem; border-top:1px solid var(--border); color:var(--text2); }
.kp-table tbody tr:nth-child(even) { background:rgba(107,114,64,.045); }
.kp-table td:first-child { font-weight:700; color:#4e5430; }
.kp-table td:nth-child(2) { color:#15803d; font-weight:600; }
.kp-table td:nth-child(3) { color:#C9963A; font-weight:600; }

/* ═══ Page En live : outil de décision GO / NO-GO (.kp-go) ═══ */
.kp-leadin{color:var(--text3);font-size:.92rem;line-height:1.6;max-width:760px;margin:-.2rem 0 1.1rem}
.kp-go{max-width:860px}
.kp-go-verdict{display:flex;align-items:center;gap:1rem;border-radius:14px;padding:1rem 1.2rem;border:1px solid var(--border);margin-bottom:1.3rem;transition:.2s;background:#fafaf7}
.kp-go-badge{font-size:1.05rem;font-weight:800;letter-spacing:.04em;padding:.45rem .9rem;border-radius:10px;flex:none;background:#9b9b93;color:#fff}
.kp-go-msg{font-size:.92rem;font-weight:600;line-height:1.4;color:var(--text2)}
.kp-go-verdict.nogo{background:rgba(220,38,38,.07);border-color:rgba(220,38,38,.3)}
.kp-go-verdict.nogo .kp-go-badge{background:#dc2626}
.kp-go-verdict.nogo .kp-go-msg{color:#b91c1c}
.kp-go-verdict.go{background:rgba(31,157,87,.1);border-color:rgba(31,157,87,.35)}
.kp-go-verdict.go .kp-go-badge{background:#1f9d57}
.kp-go-verdict.go .kp-go-msg{color:#15803d}
.kp-go-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media(max-width:680px){.kp-go-cols{grid-template-columns:1fr}}
.kp-go-h{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:var(--text3);margin:0 0 .55rem}
.kp-go-h.rf{color:#b91c1c}
.kp-go-item{display:flex;align-items:flex-start;gap:.6rem;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:.65rem .75rem;margin-bottom:.5rem;cursor:pointer;font-size:.88rem;color:var(--text2);line-height:1.35}
.kp-go-item input{margin-top:1px;width:18px;height:18px;accent-color:#6B7240;flex:none;cursor:pointer}
.kp-go-item.rf input{accent-color:#dc2626}
.kp-go-reset{margin-top:1.1rem;font:inherit;font-weight:700;font-size:.85rem;cursor:pointer;border-radius:10px;padding:.55rem 1rem;border:1px solid rgba(107,114,64,.4);background:transparent;color:#4e5430}

/* ═══ Titres de groupe dans le menu (pages type 'group') ═══ */
.dash-sidebar .sidebar-group { margin-top:.8rem; }
.dash-sidebar .sidebar-group:first-child { margin-top:0; }
.mobile-menu .mobile-group-label { font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--text3); padding:.7rem .9rem .3rem; }
.mobile-menu .mobile-group-label:first-child { padding-top:.3rem; }

/* ═══ Mise en avant de l'entrée "Vivre une Session" (slug live) ═══ */
.dash-sidebar a[href*="p=live"] { position:relative; margin:.55rem 0; }
.dash-sidebar a[href*="p=live"]:not(.active) { background:rgba(201,150,58,.12); border:1px solid rgba(201,150,58,.45); font-weight:700; color:var(--olive-dark); }
.dash-sidebar a[href*="p=live"]::after { content:""; width:7px; height:7px; border-radius:50%; background:#dc2626; margin-left:auto; flex:none; box-shadow:0 0 0 0 rgba(220,38,38,.5); animation:kpPulse 1.8s infinite; }
@keyframes kpPulse { 0%{box-shadow:0 0 0 0 rgba(220,38,38,.5)} 70%{box-shadow:0 0 0 7px rgba(220,38,38,0)} 100%{box-shadow:0 0 0 0 rgba(220,38,38,0)} }
