/* ============================================================================
   LevelUp Tools · socle graphique commun (jetons, base, mise en page, barre latérale, bandeau, boutons)
   Extrait le 10/10/2026 du socle du CRM prospection (webapp3, app.css), qui reste la référence visuelle.
   Charte LevelUp (07 - ASSETS/Charte_Graphique) : rouge #FF1700 invariant, survol #A00F00,
   calage web clair #EEECE3 / sombre #222222, trio Orbitron (marque) · Chakra Petch (structure) · Space Grotesk (texte).
   Utilisé tel quel par la plateforme ; le CRM et le forecast portent le même socle dans leur app.css.
   Source unique : charte\levelup-base.css du repo Dev\backoffice-levelup (avant le 16/10/2026 : Coaching\Tools\_Charte LevelUp). Miyazaki (#29).
   ========================================================================== */
:root{
  --accent:#FF1700;--accent-hover:#A00F00;--accent-soft:#FCD6D3;--accent-ink:#fff;
  --bg:#EEECE3;--bg-2:#E6E3D8;--panel:#FFFFFF;--panel-2:#F7F5EF;--ink:#222222;--ink-2:#4B4A46;--muted:#75736C;--line:#E2DDD2;--line-2:#EDE9E0;
  --side:#222222;--side-ink:#D9D6CE;--side-muted:#8C8A84;--side-hover:#2E2E2E;--side-line:#333;
  --ok:#158A3C;--ok-bg:#DCF5E3;--warn:#A86A12;--warn-bg:#FDF0D5;--ko:#B91C1C;--ko-bg:#FDE2E2;--info:#1D4ED8;--info-bg:#DDE8FF;--neutral-bg:#ECEAE2;
  --p0:#0E7490;--p0-bg:#CFF4FA;--p1:#6D28D9;--p1-bg:#EBE4FE;--p2:#B45309;--p2-bg:#FFE8CC;--p4:#BE123C;--p4-bg:#FFE0E6;
  --chart-p0:#0891A8;--chart-p1:#7C3AED;--chart-p2:#D97706;--chart-p4:#BE123C;
  /* v7.0.7 (demande de Loic du 06/10 : « les analyses, les graphes, aux couleurs LevelUp ») : les graphes sur la charte. Rouge = ce qui est gagne
     (acceptees, calls realises, taux) ; encre = le volume et les series seules ; rose pale = ce qui attend ; gris = ce qui est eteint.
     Les niveaux (L0 a L4) gardent leurs couleurs, celles de leurs badges (decision de Loic du 06/10). */
  --chart-rouge:var(--accent);--chart-encre:#222222;--chart-doux:#FCD6D3;--chart-eteint:#75736C;--chart-aire:#FCD6D3;
  /* v4.1 : familles d'etiquettes (variante A, planche du 27/09/2026 validee par Loic). Une couleur par famille, jamais par etiquette. */
  --offre:#0F766E;--offre-bg:#D6F1EC;--signal:#8A6D00;--signal-bg:#F5ECC2;--attrib:#475569;--attrib-bg:#E4E8EF;
  --shadow:0 1px 2px rgba(20,18,10,.05),0 6px 20px -8px rgba(20,18,10,.12);--shadow-lg:0 24px 60px -20px rgba(0,0,0,.35);
  --r:12px;--r-sm:8px;--side-w:236px;--side-min:64px;
  --f-brand:'Orbitron','Arial Black',Impact,sans-serif;--f-ui:'Chakra Petch','Segoe UI',Tahoma,Arial,sans-serif;--f-body:'Space Grotesk','Helvetica Neue',Helvetica,Arial,sans-serif;--f-mono:ui-monospace,'Cascadia Code',Consolas,monospace;
  --t:.16s cubic-bezier(.2,.7,.3,1);
}
[data-theme=dark]{
  --bg:#141414;--bg-2:#1B1B1B;--panel:#222222;--panel-2:#282828;--ink:#ECEAE4;--ink-2:#C9C6BE;--muted:#948F86;--line:#333331;--line-2:#2C2C2A;
  --side:#1A1A1A;--side-ink:#D9D6CE;--side-muted:#7C7A74;--side-hover:#262626;--side-line:#2A2A2A;
  --accent-soft:#4A1611;
  --ok:#4ADE80;--ok-bg:#12351E;--warn:#F4BE58;--warn-bg:#3A2A0E;--ko:#F87171;--ko-bg:#3F1414;--info:#8AB4FF;--info-bg:#15274A;--neutral-bg:#2E2E2C;
  --p0:#5FD6EA;--p0-bg:#0E3A44;--p1:#C4B0FF;--p1-bg:#2B1F52;--p2:#F8B25A;--p2-bg:#4A2B0A;--p4:#FF8FA8;--p4-bg:#4B1224;
  --chart-p0:#38BDD8;--chart-p1:#A78BFA;--chart-p2:#F59E0B;--chart-p4:#FB7185;
  --chart-encre:#EEECE3;--chart-eteint:#948F86;--chart-aire:#4A1611;
  --offre:#5EEAD4;--offre-bg:#0E3B35;--signal:#E8D06A;--signal-bg:#3A3208;--attrib:#B6C0D0;--attrib-bg:#2A3240;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px -10px rgba(0,0,0,.6);
}

/* ----------------------------------------------------------------- base */
*{box-sizing:border-box}
html{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--f-body);-webkit-font-smoothing:antialiased;min-height:100%}
a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:var(--f-ui);font-weight:700;margin:0;letter-spacing:-.005em}
p{margin:0 0 .6em}p:last-child{margin-bottom:0}
b,strong{font-weight:700}
small,.small{font-size:12px}.muted{color:var(--muted)}.mono{font-family:var(--f-mono);font-size:12px}.nowrap{white-space:nowrap}.right{text-align:right}
.hidden,[hidden]{display:none!important}
kbd{font:600 11px/1 var(--f-ui);background:var(--panel-2);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:3px 6px;color:var(--ink-2);white-space:nowrap}
.ic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-4px}
.ic.sm{width:14px;height:14px;vertical-align:-2px}.ic.lg{width:24px;height:24px}
[data-theme=light] .only-dark,:root:not([data-theme=dark]) .only-dark{display:none}[data-theme=dark] .only-light{display:none}
::selection{background:var(--accent-soft)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ----------------------------------------------------------------- layout */
.app{display:grid;grid-template-columns:var(--side-w) 1fr;min-height:100vh;transition:grid-template-columns var(--t)}
html.nav-min .app{grid-template-columns:var(--side-min) 1fr}
.sidebar{background:var(--side);color:var(--side-ink);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:14px 10px 12px;overflow:hidden;border-right:1px solid var(--side-line)}
.brand{display:flex;align-items:center;gap:10px;padding:2px 4px 14px;margin-bottom:6px;border-bottom:1px solid var(--side-line)}
.brand-link{display:flex;align-items:center;gap:10px;color:#fff;min-width:0;flex:1}.brand-link:hover{text-decoration:none}
.logo-chip{background:#fff;border-radius:8px;padding:5px 6px;display:inline-flex;line-height:0;flex:none}.logo{height:24px;width:auto;display:block}
.brand-txt{display:flex;flex-direction:column;min-width:0}.brand-txt b{font:900 12px/1.1 var(--f-brand);letter-spacing:.04em;white-space:nowrap}.brand-txt small{font:600 10.5px/1.3 var(--f-ui);color:var(--side-muted);white-space:nowrap}
.nav-min-btn{background:none;border:0;color:var(--side-muted);cursor:pointer;padding:6px;border-radius:6px;display:inline-flex}.nav-min-btn:hover{background:var(--side-hover);color:#fff}
.demo-pill{display:flex;align-items:center;gap:6px;margin:4px 4px 8px;padding:5px 9px;border-radius:999px;background:linear-gradient(90deg,#FF1700,#FF6A00);color:#fff;font:700 11px var(--f-ui);letter-spacing:.04em;text-transform:uppercase}.demo-pill .ic{width:14px;height:14px}
.nav{display:flex;flex-direction:column;gap:2px;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}
.nav-group{font:600 10px/1 var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--side-muted);margin:14px 10px 6px;white-space:nowrap}
/* v7.0.1 : les trois groupes du menu se replient (titre cliquable), memorise dans ce navigateur (html[data-nav-plie]). Replie, l'ecran
   ouvert reste visible et le chiffre rouge du titre dit ce qui attend dedans (somme des compteurs rouges du groupe). */
.nav-sec{display:flex;flex-direction:column;gap:2px}
button.nav-group{display:flex;align-items:center;gap:6px;width:100%;margin:12px 0 4px;padding:5px 10px;background:none;border:0;border-radius:6px;cursor:pointer;text-align:left}
button.nav-group:hover{color:#fff;background:var(--side-hover)}button.nav-group:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.nav-group-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
button.nav-group .ic{width:12px;height:12px;flex:none;transition:transform var(--t)}
.nav-plie-cnt{display:none;font:700 10.5px/1 var(--f-ui);letter-spacing:0;background:var(--accent);color:#fff;border-radius:999px;padding:3px 7px;min-width:20px;text-align:center}
html[data-nav-plie~="pipeline"] [data-nav-sec="pipeline"] .nav-item:not(.on),
html[data-nav-plie~="donnees"] [data-nav-sec="donnees"] .nav-item:not(.on),
html[data-nav-plie~="contenu"] [data-nav-sec="contenu"] .nav-item:not(.on),
html[data-nav-plie~="systeme"] [data-nav-sec="systeme"] .nav-item:not(.on){display:none}
html[data-nav-plie~="pipeline"] [data-nav-sec="pipeline"] button.nav-group .ic,
html[data-nav-plie~="donnees"] [data-nav-sec="donnees"] button.nav-group .ic,
html[data-nav-plie~="contenu"] [data-nav-sec="contenu"] button.nav-group .ic,
html[data-nav-plie~="systeme"] [data-nav-sec="systeme"] button.nav-group .ic{transform:rotate(-90deg)}
html[data-nav-plie~="pipeline"] [data-nav-sec="pipeline"] .nav-plie-cnt:not(:empty),
html[data-nav-plie~="donnees"] [data-nav-sec="donnees"] .nav-plie-cnt:not(:empty),
html[data-nav-plie~="contenu"] [data-nav-sec="contenu"] .nav-plie-cnt:not(:empty),
html[data-nav-plie~="systeme"] [data-nav-sec="systeme"] .nav-plie-cnt:not(:empty){display:inline-block}
html.nav-min[data-nav-plie] [data-nav-sec] .nav-item:not(.on){display:flex}  /* menu reduit : les titres sont caches, tout reste a portee */
.nav-item{display:flex;align-items:center;gap:10px;color:var(--side-ink);padding:8px 10px;border-radius:8px;font:600 13.5px var(--f-ui);position:relative;white-space:nowrap;transition:background var(--t),color var(--t)}
.nav-item:hover{background:var(--side-hover);color:#fff;text-decoration:none}
.nav-item.on{background:var(--accent);color:#fff}
.nav-item .ic{width:18px;height:18px;opacity:.9}
.nav-item .num{display:inline-flex;width:18px;height:18px;border-radius:50%;background:#444;color:#fff;font-size:11px;align-items:center;justify-content:center;flex:none;font-family:var(--f-ui)}
.nav-item.on .num{background:#fff;color:var(--accent)}
.nav-item .cnt{margin-left:auto;font:700 11px var(--f-ui);background:rgba(255,255,255,.12);color:#fff;border-radius:999px;padding:1px 7px;min-width:20px;text-align:center}
.nav-item .cnt{flex:none}.nav-item>span:not(.num):not(.cnt){min-width:0;overflow:hidden;text-overflow:ellipsis}  /* v7.5.2 du CRM, reportée le 17/10/2026 : la pastille garde sa largeur, c'est le libellé qui cède */
.nav-item .cnt:empty{display:none}.nav-item .cnt.hot:not(:empty){background:var(--accent);color:#fff}.nav-item.on .cnt{background:rgba(255,255,255,.28)}
.nav-foot{margin-top:auto;border-top:1px solid var(--side-line);padding-top:10px;display:flex;flex-direction:column;gap:8px}
.moteur-etat,.envoi-switch{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px;color:var(--side-ink);cursor:default;white-space:nowrap}
.envoi-switch{cursor:pointer}.envoi-switch:hover{background:var(--side-hover)}
.nav-foot-txt{display:flex;flex-direction:column;min-width:0;line-height:1.2}.nav-foot-txt b{font:700 12px var(--f-ui)}.nav-foot-txt small{color:var(--side-muted);font-size:11px}
.nav-foot-btns{display:flex;gap:4px;padding:0 4px}.nav-foot-btns .btn-icon{color:var(--side-muted)}.nav-foot-btns .btn-icon:hover{background:var(--side-hover);color:#fff}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#64748b;flex:none;box-shadow:0 0 0 3px rgba(255,255,255,.06)}.dot.ok{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.2)}.dot.ko{background:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.2)}
/* menu réduit */
html.nav-min .sidebar{padding-left:8px;padding-right:8px}
html.nav-min .brand{flex-direction:column;gap:6px;padding-bottom:10px}
html.nav-min .brand-txt,html.nav-min .nav-item>span:not(.num):not(.cnt),html.nav-min .nav-group,html.nav-min .nav-foot-txt,html.nav-min .demo-pill span{display:none}
html.nav-min .nav-item{justify-content:center;padding:9px 0}html.nav-min .nav-item .cnt{position:absolute;top:2px;right:2px;padding:0 5px;min-width:16px;font-size:10px}
html.nav-min .nav-foot-btns{flex-direction:column;align-items:center}html.nav-min .moteur-etat,html.nav-min .envoi-switch{justify-content:center;padding:6px 0}
html.nav-min .demo-pill{justify-content:center;padding:6px}
html.nav-min [data-tip]{position:relative}
html.nav-min [data-tip]:hover:after{content:attr(data-tip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:#000;color:#fff;font:600 12px var(--f-ui);padding:5px 9px;border-radius:6px;white-space:nowrap;z-index:30;box-shadow:var(--shadow)}

.main{min-width:0;display:flex;flex-direction:column}
.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 30px 6px;flex-wrap:wrap}
.page-title{min-width:0}.page-title h1{font-size:22px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.page-title h1 small{font:500 13px var(--f-body);color:var(--muted)}
.eyebrow{font:600 11px var(--f-ui);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:2px}
.subtitle{color:var(--muted);font-size:13px;margin:2px 0 0}.subtitle:empty{display:none}
.topbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.page-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.page-actions:empty{display:none}
.search-trigger{display:inline-flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 8px 6px 12px;color:var(--muted);cursor:pointer;font:500 13px var(--f-body);transition:border-color var(--t),box-shadow var(--t)}
.search-trigger:hover{border-color:var(--ink-2);box-shadow:var(--shadow)}.search-trigger kbd{font-size:10px}
.content{padding:12px 30px 90px;min-width:0}
@media(max-width:1000px){.topbar,.content{padding-left:18px;padding-right:18px}.search-trigger span,.search-trigger kbd{display:none}}

/* ----------------------------------------------------------------- boutons */
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:7px 12px;border-radius:var(--r-sm);cursor:pointer;font:600 13px var(--f-ui);white-space:nowrap;transition:background var(--t),border-color var(--t),transform var(--t),box-shadow var(--t);line-height:1.2;text-decoration:none}
.btn:hover{background:var(--panel-2);border-color:var(--ink-2);text-decoration:none}.btn:active{transform:translateY(1px)}
.btn .ic{width:15px;height:15px}
.btn:disabled,.btn.disabled{opacity:.45;cursor:not-allowed;pointer-events:none}
.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;transition:background var(--t),color var(--t)}
.btn-icon:hover{background:var(--neutral-bg);color:var(--ink)}.btn-icon.aide{border-color:var(--line);background:var(--panel)}
