/* Zen Momentum Signals : thème clair et sombre, barre latérale, tuiles, cartes, tableaux défilants. */
:root{
  --fond:#f4f6fa;--fond-2:#eef1f6;--carte:#ffffff;--carte-2:#f8fafc;--texte:#0f172a;--doux:#64748b;--tres-doux:#94a3b8;
  --ligne:#e2e8f0;--ligne-forte:#cbd5e1;--accent:#4f46e5;--accent-2:#6366f1;--accent-doux:#eef2ff;--accent-texte:#3730a3;
  --vert:#059669;--vert-doux:#ecfdf5;--orange:#d97706;--orange-doux:#fffbeb;--rouge:#dc2626;--rouge-doux:#fef2f2;
  --bleu:#0284c7;--bleu-doux:#f0f9ff;--violet:#7c3aed;--violet-doux:#f5f3ff;
  --ombre:0 1px 2px rgba(15,23,42,.04),0 2px 8px rgba(15,23,42,.05);--ombre-haute:0 12px 32px rgba(15,23,42,.14);
  --rayon:14px;--rayon-petit:9px;--barre:252px;
  --nuit:#0b1226;--nuit-texte:#cbd5e1;--nuit-doux:#8b9ab1;--nuit-ligne:rgba(148,163,184,.14);
  --bouton-1:#6366f1;--bouton-2:#4f46e5;
  --police:"Inter","Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"Cascadia Code","SFMono-Regular",Consolas,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --fond:#0b1020;--fond-2:#0f1629;--carte:#121a2e;--carte-2:#162038;--texte:#e2e8f0;--doux:#94a3b8;--tres-doux:#64748b;
  --ligne:#1f2a44;--ligne-forte:#2c3a5a;--accent:#818cf8;--accent-2:#a5b4fc;--accent-doux:rgba(129,140,248,.14);--accent-texte:#c7d2fe;
  --vert:#34d399;--vert-doux:rgba(52,211,153,.12);--orange:#fbbf24;--orange-doux:rgba(251,191,36,.12);--rouge:#f87171;--rouge-doux:rgba(248,113,113,.12);
  --bleu:#38bdf8;--bleu-doux:rgba(56,189,248,.12);--violet:#a78bfa;--violet-doux:rgba(167,139,250,.12);
  --ombre:0 1px 2px rgba(0,0,0,.3);--ombre-haute:0 10px 30px rgba(0,0,0,.45);color-scheme:dark}}
:root[data-theme="dark"]{
  --fond:#0b1020;--fond-2:#0f1629;--carte:#121a2e;--carte-2:#162038;--texte:#e2e8f0;--doux:#94a3b8;--tres-doux:#64748b;
  --ligne:#1f2a44;--ligne-forte:#2c3a5a;--accent:#818cf8;--accent-2:#a5b4fc;--accent-doux:rgba(129,140,248,.14);--accent-texte:#c7d2fe;
  --vert:#34d399;--vert-doux:rgba(52,211,153,.12);--orange:#fbbf24;--orange-doux:rgba(251,191,36,.12);--rouge:#f87171;--rouge-doux:rgba(248,113,113,.12);
  --bleu:#38bdf8;--bleu-doux:rgba(56,189,248,.12);--violet:#a78bfa;--violet-doux:rgba(167,139,250,.12);
  --ombre:0 1px 2px rgba(0,0,0,.3);--ombre-haute:0 10px 30px rgba(0,0,0,.45);color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:14.5px/1.55 var(--police);background:var(--fond);color:var(--texte);-webkit-font-smoothing:antialiased;
  font-feature-settings:"cv11","ss01";min-height:100vh}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.25;margin:0;font-weight:650;letter-spacing:-.01em}
h1{font-size:1.5rem}h2{font-size:1.05rem}h3{font-size:.95rem}
p{margin:.4em 0}
code,pre{font-family:var(--mono);font-size:.85em}
code{background:var(--fond-2);padding:1px 6px;border-radius:6px;overflow-wrap:anywhere}
pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--fond-2);border:1px solid var(--ligne);padding:12px 14px;
  border-radius:var(--rayon-petit);margin:0;max-height:520px;overflow:auto}
.icone{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.icone.petite{width:15px;height:15px}

/* --- structure ------------------------------------------------------------------------------- */
.appli{display:flex;min-height:100vh}
.barre{position:fixed;inset:0 auto 0 0;width:var(--barre);color:var(--nuit-texte);border-right:1px solid var(--nuit-ligne);
  background:radial-gradient(420px 320px at 0% 0%,rgba(99,102,241,.28) 0%,transparent 70%),
    radial-gradient(380px 300px at 100% 100%,rgba(16,185,129,.12) 0%,transparent 70%),var(--nuit);
  display:flex;flex-direction:column;z-index:40;transition:transform .2s ease}
.barre .marque{color:#fff}.barre .marque small{color:var(--nuit-doux)}
.barre .logo{box-shadow:0 6px 18px rgba(79,70,229,.4)}
.marque{display:flex;align-items:center;gap:10px;padding:18px 18px 14px;font-weight:700;font-size:1.02rem;color:var(--texte)}
.marque:hover{text-decoration:none}
.logo{width:32px;height:32px;border-radius:9px;display:block;flex:none}
.marque small{display:block;font-weight:500;font-size:.72rem;color:var(--doux);letter-spacing:.02em}
.choix-pf{padding:4px 14px 12px}
.choix-pf select{width:100%;background-color:rgba(255,255,255,.06);border-color:rgba(148,163,184,.22);color:#f1f5f9;font-weight:560}
.choix-pf select:hover{border-color:rgba(148,163,184,.4)}
.choix-pf select:focus{border-color:#818cf8;box-shadow:0 0 0 3px rgba(129,140,248,.25)}
.choix-pf option{background:var(--nuit);color:#e2e8f0}
.nav{flex:1;overflow-y:auto;padding:4px 10px 12px}
.nav-groupe{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--tres-doux);font-weight:650;padding:14px 10px 6px}
.barre .nav-groupe{color:#64748b}
.nav a{position:relative;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;color:var(--nuit-texte);
  font-weight:520;margin:1px 0;transition:background .12s,color .12s}
.nav a .icone{color:var(--nuit-doux);transition:color .12s}
.nav a:hover{background:rgba(148,163,184,.10);color:#fff;text-decoration:none}
.nav a:hover .icone{color:#c7d2fe}
.nav a.actif{background:linear-gradient(90deg,rgba(99,102,241,.32),rgba(99,102,241,.10));color:#fff}
.nav a.actif::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:#818cf8}
.nav a.actif .icone{color:#a5b4fc}
.barre-pied{border-top:1px solid var(--nuit-ligne);padding:12px 14px;display:flex;align-items:center;gap:8px}
.compte{flex:1;min-width:0;display:flex;align-items:center;gap:8px;color:var(--nuit-texte);font-size:.85rem}
.compte span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent-doux);color:var(--accent-texte);display:grid;
  place-items:center;font-weight:700;font-size:.8rem;flex:none}
.barre .avatar{background:linear-gradient(135deg,#6366f1,#10b981);color:#fff}
.bouton-icone{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:8px;border:1px solid var(--ligne);
  background:var(--carte);color:var(--doux);cursor:pointer;padding:0;flex:none}
.bouton-icone:hover{color:var(--texte);background:var(--fond-2);text-decoration:none}
.barre .bouton-icone{background:rgba(255,255,255,.05);border-color:rgba(148,163,184,.2);color:var(--nuit-texte)}
.barre .bouton-icone:hover{background:rgba(255,255,255,.12);color:#fff}
.contenu{flex:1;min-width:0;margin-left:var(--barre);display:flex;flex-direction:column}
.haut-mobile{display:none}
main{width:100%;max-width:1320px;margin:0 auto;padding:28px 32px 48px}
.voile{display:none}

@media (max-width:1023px){
  .barre{transform:translateX(-100%);box-shadow:var(--ombre-haute)}
  body.menu-ouvert .barre{transform:none}
  body.menu-ouvert .voile{display:block;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:30}
  .contenu{margin-left:0}
  .haut-mobile{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:20;background:var(--nuit);
    border-bottom:1px solid var(--nuit-ligne);padding:10px 16px}
  .haut-mobile .marque{padding:0;font-size:.95rem;color:#fff}
  .haut-mobile .bouton-icone{background:rgba(255,255,255,.05);border-color:rgba(148,163,184,.2);color:var(--nuit-texte)}
  .haut-mobile .logo{width:28px;height:28px}
  main{padding:18px 16px 40px}
}

/* --- en-tête de page ------------------------------------------------------------------------- */
.entete{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 20px;margin-bottom:22px}
.entete .titre{min-width:0}
.entete h1{overflow-wrap:anywhere;font-size:1.6rem;letter-spacing:-.02em}
.sous-titre{color:var(--doux);margin-top:4px;font-size:.92rem}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

/* --- bandeaux ---------------------------------------------------------------------------------- */
.bandeau{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:10px;margin-bottom:16px;
  border:1px solid transparent;font-size:.92rem;overflow-wrap:anywhere}
.bandeau .icone{margin-top:1px}
.bandeau.ok{background:var(--vert-doux);border-color:color-mix(in srgb,var(--vert) 25%,transparent);color:var(--texte)}
.bandeau.ok .icone{color:var(--vert)}
.bandeau.erreur{background:var(--rouge-doux);border-color:color-mix(in srgb,var(--rouge) 25%,transparent)}
.bandeau.erreur .icone{color:var(--rouge)}
.bandeau.info{background:var(--bleu-doux);border-color:color-mix(in srgb,var(--bleu) 25%,transparent)}
.bandeau.info .icone{color:var(--bleu)}
.bandeau.alerte{background:var(--orange-doux);border-color:color-mix(in srgb,var(--orange) 30%,transparent)}
.bandeau.alerte .icone{color:var(--orange)}
.bandeau .corps{flex:1;min-width:0}
.bandeau form{display:inline-flex;margin:6px 6px 0 0}

/* --- grilles, cartes, tuiles -------------------------------------------------------------------- */
.grille{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-bottom:16px}
.grille-2{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:16px}
.grille-3-1{display:grid;gap:16px;grid-template-columns:minmax(0,2fr) minmax(0,1fr);margin-bottom:16px}
@media (max-width:1100px){.grille-3-1{grid-template-columns:minmax(0,1fr)}}
@media (max-width:860px){.grille-2{grid-template-columns:minmax(0,1fr)}}
.carte{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--rayon);box-shadow:var(--ombre);
  margin-bottom:16px;min-width:0}
.grille>.carte,.grille-2>.carte,.grille-3-1>.carte,.grille-3-1>div>.carte:last-child{margin-bottom:0}
.carte-tete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding:16px 18px 0}
.carte-tete .doux{font-size:.85rem}
.carte-corps{padding:14px 18px 18px}
.carte-corps.serre{padding:8px 0 0}
.carte-pied{border-top:1px solid var(--ligne);padding:12px 18px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  background:var(--carte-2);border-radius:0 0 var(--rayon) var(--rayon)}
.tuiles{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:16px}
.tuile{background:var(--carte);border:1px solid var(--ligne);border-radius:var(--rayon);box-shadow:var(--ombre);
  padding:16px 18px;min-width:0;position:relative;overflow:hidden}
.tuile .etiquette{display:flex;align-items:center;gap:6px;color:var(--doux);font-size:.8rem;font-weight:560;
  text-transform:uppercase;letter-spacing:.05em}
.tuile .valeur{font-size:1.55rem;font-weight:700;letter-spacing:-.02em;margin-top:6px;font-variant-numeric:tabular-nums;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tuile .detail{color:var(--doux);font-size:.84rem;margin-top:4px;overflow-wrap:anywhere}
.tuile.accent::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#6366f1,#818cf8,#10b981)}
.liste-etats{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.liste-etats div{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.9rem}
.repartition{display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--fond-2);margin:12px 0 10px}
.repartition span{display:block;height:100%}
.legende{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.84rem;color:var(--doux)}
.legende i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.liste-def{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;font-size:.92rem}
.liste-def dt{color:var(--doux)}.liste-def dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;font-weight:560}

/* --- tableaux ------------------------------------------------------------------------------------ */
.defile{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
table{border-collapse:separate;border-spacing:0;width:100%;font-size:.9rem}
th,td{padding:10px 12px;border-bottom:1px solid var(--ligne);text-align:left;vertical-align:middle}
th{font-size:.74rem;color:var(--doux);font-weight:620;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;
  background:var(--carte-2);position:sticky;top:0;z-index:1}
th:first-child,td:first-child{padding-left:18px}th:last-child,td:last-child{padding-right:18px}
tbody tr:hover td{background:var(--carte-2)}
tbody tr:last-child td{border-bottom:none}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
td.nowrap{white-space:nowrap}
td .doux{display:block;font-size:.8rem;margin-top:2px}
td.vide{text-align:center;color:var(--doux);padding:28px}
table.fixe1 td:first-child,table.fixe1 th:first-child{position:sticky;left:0;z-index:2;background:var(--carte)}
table.fixe1 th:first-child{background:var(--carte-2);z-index:3}
table.fixe1 tbody tr:hover td:first-child{background:var(--carte-2)}
.detail-ligne{max-width:340px;color:var(--doux);font-size:.84rem}
.titre-ligne{font-weight:620;white-space:nowrap}

/* --- pastilles ----------------------------------------------------------------------------------- */
.pastille{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;font-size:.76rem;
  font-weight:620;white-space:nowrap;line-height:1.6;background:var(--fond-2);color:var(--doux)}
.pastille::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pastille.nue::before{display:none}
.pastille.vert,.pastille.execute,.pastille.modifie,.pastille.ok{background:var(--vert-doux);color:var(--vert)}
.pastille.orange,.pastille.suggere,.pastille.attente,.pastille.attente_auto,.pastille.partiel,.pastille.en_cours{background:var(--orange-doux);color:var(--orange)}
.pastille.rouge,.pastille.bloque,.pastille.echec{background:var(--rouge-doux);color:var(--rouge)}
.pastille.propose,.pastille.bleu{background:var(--bleu-doux);color:var(--bleu)}
.pastille.violet,.pastille.fictif{background:var(--violet-doux);color:var(--violet)}
.pastille.expire{background:var(--orange-doux);color:var(--orange)}
.pastille.ignore,.pastille.caduc,.pastille.gris{background:var(--fond-2);color:var(--doux)}
.sens{font-weight:650;font-size:.8rem;letter-spacing:.03em;white-space:nowrap}
.sens.achat{color:var(--vert)}.sens.vente{color:var(--rouge)}.sens.decision{color:var(--orange)}
.points{display:inline-flex;gap:4px}
.points i{width:10px;height:10px;border-radius:50%;display:inline-block}
.e0{background:var(--vert)}.e1{background:var(--orange)}.e2{background:var(--rouge)}
.ok{color:var(--vert)}.ko{color:var(--rouge)}.neutre,.doux{color:var(--doux)}
.doux{font-size:.9em}.petit{font-size:.84rem}
.hausse{color:var(--vert)}.baisse{color:var(--rouge)}

/* --- formulaires et boutons ---------------------------------------------------------------------- */
label{display:block;font-size:.82rem;font-weight:560;color:var(--doux);margin-bottom:5px}
label.case{display:flex;align-items:flex-start;gap:9px;font-size:.9rem;font-weight:500;color:var(--texte);margin:0;cursor:pointer}
label.case input{margin-top:3px}
input,select,textarea{font:inherit;font-size:.92rem;padding:8px 11px;border:1px solid var(--ligne-forte);border-radius:var(--rayon-petit);
  background-color:var(--carte);color:var(--texte);max-width:100%;min-width:0;min-height:38px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);transition:border-color .15s,box-shadow .15s,background-color .15s}
input:hover,select:hover,textarea:hover{border-color:var(--tres-doux)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-doux)}
input::placeholder,textarea::placeholder{color:var(--tres-doux)}
input[type=checkbox],input[type=radio]{width:17px;height:17px;min-height:0;padding:0;accent-color:var(--accent);flex:none;box-shadow:none;cursor:pointer}
textarea{width:100%;font-family:var(--mono);font-size:.84rem;line-height:1.5}
/* listes déroulantes : flèche dessinée, identique sur tous les navigateurs */
select{-webkit-appearance:none;appearance:none;padding-right:34px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px}
select::-ms-expand{display:none}
/* import de fichier : zone en pointillé, bouton intégré */
input[type=file]{width:100%;padding:10px;border:1.5px dashed var(--ligne-forte);background-color:var(--carte-2);color:var(--doux);
  font-size:.86rem;cursor:pointer;box-shadow:none}
input[type=file]:hover{border-color:var(--accent);background-color:var(--accent-doux)}
input[type=file]::file-selector-button{font:inherit;font-size:.84rem;font-weight:600;margin-right:12px;padding:6px 14px;
  border-radius:8px;border:1px solid var(--ligne-forte);background:var(--carte);color:var(--texte);cursor:pointer;
  box-shadow:var(--ombre);transition:background .15s,border-color .15s}
input[type=file]::file-selector-button:hover{background:var(--fond-2);border-color:var(--tres-doux)}
input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6}
input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}
.champs{display:grid;gap:14px 16px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.champs .large{grid-column:1/-1}
.champs input:not([type=checkbox]):not([type=radio]),.champs select{width:100%}
.champ-aide{font-size:.8rem;color:var(--doux);margin-top:4px}
.groupe{display:flex;gap:8px}.groupe>*{min-width:0}.groupe input{flex:1}
form.ligne{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin:0}
form.ligne input{width:auto}
form.ligne .champ{min-width:0}
form.creation-compte{gap:12px 16px}form.creation-compte .champ{flex:1 1 220px}form.creation-compte .champ input{width:100%}
form.creation-compte .case{padding-bottom:10px}
.periodes{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px 14px;align-items:baseline}
.periodes>div{display:contents}.periodes .pastille{justify-content:center}.periodes p{margin:0}
.cases{display:flex;flex-direction:column;gap:10px}
.cases-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
button,.bouton{font:inherit;font-size:.9rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-height:38px;padding:8px 16px;border-radius:var(--rayon-petit);border:1px solid var(--bouton-2);color:#fff;cursor:pointer;
  background:linear-gradient(180deg,var(--bouton-1),var(--bouton-2));
  box-shadow:0 1px 2px rgba(15,23,42,.16),0 4px 12px -4px rgba(79,70,229,.45),inset 0 1px 0 rgba(255,255,255,.16);
  text-decoration:none;white-space:nowrap;line-height:1.4;transition:filter .15s,background .15s,box-shadow .15s,transform .06s}
button:hover,.bouton:hover{filter:brightness(1.07);text-decoration:none;
  box-shadow:0 1px 2px rgba(15,23,42,.16),0 6px 16px -4px rgba(79,70,229,.55),inset 0 1px 0 rgba(255,255,255,.16)}
button:active,.bouton:active{transform:translateY(1px)}
button:focus-visible,.bouton:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button.secondaire,.bouton.secondaire{background:var(--carte);color:var(--texte);border-color:var(--ligne-forte);box-shadow:var(--ombre)}
button.secondaire:hover,.bouton.secondaire:hover{background:var(--fond-2);border-color:var(--tres-doux);filter:none;box-shadow:var(--ombre)}
button.fantome,.bouton.fantome{background:transparent;border-color:transparent;color:var(--accent);padding-left:8px;padding-right:8px;box-shadow:none}
button.fantome:hover{background:var(--accent-doux);filter:none;box-shadow:none}
button.danger{background:linear-gradient(180deg,#ef4444,#dc2626);border-color:#dc2626;color:#fff;
  box-shadow:0 1px 2px rgba(15,23,42,.16),0 4px 12px -4px rgba(220,38,38,.45),inset 0 1px 0 rgba(255,255,255,.16)}
button.danger:hover{box-shadow:0 1px 2px rgba(15,23,42,.16),0 6px 16px -4px rgba(220,38,38,.55),inset 0 1px 0 rgba(255,255,255,.16)}
button.petit,.bouton.petit{min-height:30px;padding:4px 11px;font-size:.8rem;border-radius:8px}
button.large,.bouton.large{width:100%;min-height:42px;padding:10px 16px}
.bouton-icone,.bouton-icone:hover,.bulle-i,.bulle-i:hover{min-height:0;box-shadow:none}
.bouton-icone:active,.bulle-i:active{transform:none}
.saisie-execution input{min-height:32px}
.cellule-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cellule-actions form{margin:0}
.actions-ligne{display:flex;flex-wrap:nowrap;gap:8px;align-items:center}.actions-ligne form{margin:0}
.saisie-execution{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.saisie-execution input{width:92px;padding:5px 8px;font-size:.84rem}

details>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;padding:4px 10px 4px 11px;
  border:1px solid var(--ligne-forte);border-radius:8px;background:var(--carte);color:var(--texte);font-weight:600;
  box-shadow:var(--ombre);user-select:none;transition:background .15s,border-color .15s}
details>summary:hover{background:var(--fond-2);border-color:var(--tres-doux)}
details>summary::-webkit-details-marker{display:none}
details>summary::after{content:"";width:7px;height:7px;margin:-3px 2px 0 2px;border-right:1.8px solid currentColor;
  border-bottom:1.8px solid currentColor;transform:rotate(45deg);transition:transform .15s;opacity:.6}
details[open]>summary{background:var(--accent-doux);border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent-texte)}
details[open]>summary::after{transform:rotate(-135deg);margin-top:3px}
.gestion{margin-top:10px;padding:12px;display:flex;flex-direction:column;gap:12px;background:var(--carte);
  border:1px solid var(--ligne);border-radius:var(--rayon);box-shadow:var(--ombre-haute)}
.gestion .bloc{background:var(--carte-2);border:1px solid var(--ligne);border-radius:10px;padding:12px}
.gestion .bloc b{display:block;margin-bottom:6px}
.zone-danger{border-color:color-mix(in srgb,var(--rouge) 35%,var(--ligne))!important}

/* --- graphiques ---------------------------------------------------------------------------------- */
.graphique{width:100%;min-height:200px;overflow:hidden}
.graphique .plotly-graph-div,.graphique .js-plotly-plot{width:100%!important}
.graphique-titre{min-height:560px}

/* --- divers --------------------------------------------------------------------------------------- */
.vide-etat{text-align:center;padding:40px 20px;color:var(--doux)}
.vide-etat .icone{width:36px;height:36px;color:var(--tres-doux);margin-bottom:10px}
.vide-etat h2{color:var(--texte);margin-bottom:6px}
.onglets{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--ligne);padding:0 18px}
.onglets a{padding:10px 12px;color:var(--doux);font-weight:560;border-bottom:2px solid transparent;margin-bottom:-1px}
.onglets a.actif{color:var(--accent);border-color:var(--accent)}
.onglets a:hover{text-decoration:none;color:var(--texte)}
.chronologie{display:flex;flex-direction:column}
.chronologie>div{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--ligne);font-size:.9rem;align-items:flex-start}
.chronologie>div:last-child{border-bottom:none}
.chronologie .quand{color:var(--doux);font-size:.82rem;white-space:nowrap;min-width:88px;font-variant-numeric:tabular-nums}
.chronologie .quoi{flex:1;min-width:0;overflow-wrap:anywhere}
.qr{background:#fff;display:inline-block;padding:10px;border-radius:12px;border:1px solid var(--ligne)}
.qr svg{display:block;width:180px;height:180px}

/* --- écrans de connexion --------------------------------------------------------------------------- */
.accueil{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.accueil-visuel{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;gap:32px;
  padding:44px 56px;color:#cbd5e1;
  background:radial-gradient(900px 520px at 0% 0%,rgba(99,102,241,.35) 0%,transparent 60%),
    radial-gradient(700px 480px at 100% 100%,rgba(16,185,129,.18) 0%,transparent 60%),#0b1226}
.accueil-visuel::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(148,163,184,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.08) 1px,transparent 1px);
  background-size:44px 44px;-webkit-mask-image:radial-gradient(ellipse at 30% 40%,#000 0%,transparent 75%);
  mask-image:radial-gradient(ellipse at 30% 40%,#000 0%,transparent 75%)}
.accueil-visuel>*{position:relative}
.accueil-visuel .marque{color:#fff;padding:0;font-size:1.08rem}
.accueil-visuel .marque small{color:#94a3b8}
.accueil-visuel .logo{width:36px;height:36px;box-shadow:0 6px 20px rgba(79,70,229,.45)}
.accueil-centre{max-width:500px}
.accueil-visuel h2{font-size:2.15rem;line-height:1.15;color:#fff;letter-spacing:-.025em;font-weight:700}
.accroche{color:#a8b3c7;font-size:1rem;margin:14px 0 0}
.resultats{margin-top:28px;border:1px solid rgba(148,163,184,.18);border-radius:14px;padding:18px 20px;
  background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.025))}
.resultats-tete{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;font-size:.74rem;font-weight:650;
  text-transform:uppercase;letter-spacing:.08em;color:#94a3b8}
.resultats-tete span{text-transform:none;letter-spacing:0;font-weight:500}
.resultats-chiffres{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:14px 0 12px}
.resultats-chiffres div{display:flex;flex-direction:column;gap:2px}
.resultats-chiffres strong{font-size:1.9rem;line-height:1.1;color:#f1f5f9;font-weight:700;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums}
.resultats-chiffres strong.positif{color:#34d399}
.resultats-chiffres span{font-size:.82rem;color:#94a3b8}
.resultats p{margin:0;padding-top:12px;border-top:1px solid rgba(148,163,184,.14);font-size:.76rem;line-height:1.5;color:#8b9ab1}
.atouts{list-style:none;padding:0;margin:24px 0 0;display:flex;flex-direction:column;gap:12px;color:#dbe3ef}
.atouts li{display:flex;gap:12px;align-items:center}
.atouts .icone{width:34px;height:34px;padding:8px;border-radius:9px;background:rgba(129,140,248,.14);color:#a5b4fc}
.mention{margin:0;font-size:.78rem;color:#7c8aa0}
.accueil-form{display:flex;align-items:center;justify-content:center;padding:40px 24px;background:var(--fond);
  border-left:1px solid var(--ligne)}
.boite{width:100%;max-width:400px}
.marque-mobile{display:none}
.boite h1{font-size:1.65rem;margin-bottom:6px;letter-spacing:-.02em}
.boite .sous-titre{margin-bottom:24px}
.boite form{display:flex;flex-direction:column;gap:14px}
.boite input:not([type=checkbox]){width:100%}
.garantie{display:flex;align-items:center;justify-content:center;gap:6px;margin:14px 0 0;color:var(--doux);font-size:.8rem}
.garantie .icone{color:var(--vert)}
.lien-bas{margin-top:20px;padding-top:18px;border-top:1px solid var(--ligne);text-align:center;color:var(--doux);font-size:.9rem}
.etapes{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;margin-bottom:6px}
.etapes>.petit{flex:1 1 160px;min-width:0}
@media (max-width:900px){
  .accueil{grid-template-columns:1fr}
  .accueil-visuel{order:2;padding:32px 20px 28px;gap:20px}
  .accueil-visuel>.marque{display:none}
  .accueil-visuel h2{font-size:1.45rem}
  .accueil-form{padding:28px 16px 32px;align-items:flex-start;border-left:0}
  .marque-mobile{display:flex;padding:0 0 24px}
}
@media (max-width:420px){.resultats-chiffres strong{font-size:1.5rem}.resultats{padding:16px}}

@media (max-width:640px){
  h1{font-size:1.3rem}
  .tuile .valeur{font-size:1.3rem}
  .carte-tete{padding:14px 14px 0}.carte-corps{padding:12px 14px 14px}.carte-pied{padding:10px 14px}
  th:first-child,td:first-child{padding-left:14px}th:last-child,td:last-child{padding-right:14px}
  th,td{padding:9px 10px}
  .entete{margin-bottom:16px}
  .actions{width:100%}
}

/* --- bulles d'information (« i ») : texte au survol, au focus ou au toucher, toujours dans l'écran -------------- */
.bulle-i{display:inline-grid;place-items:center;width:22px;height:22px;padding:0;margin:0 0 0 4px;border:none;border-radius:50%;
  background:transparent;color:var(--doux);cursor:help;vertical-align:middle;flex:none;line-height:1;opacity:1}
.bulle-i:hover,.bulle-i:focus-visible,.bulle-i.ouverte{color:var(--accent);background:var(--accent-doux);filter:none;outline:none}
.bulle-i .icone{width:16px;height:16px}
h1 .bulle-i,h2 .bulle-i{vertical-align:-2px}
label .bulle-i{width:18px;height:18px;margin-left:2px}label .bulle-i .icone{width:14px;height:14px}
#bulle{position:fixed;z-index:100;max-width:min(340px,calc(100vw - 24px));background:#0f172a;color:#f1f5f9;
  font-size:.84rem;line-height:1.5;font-weight:450;padding:9px 12px;border-radius:9px;box-shadow:var(--ombre-haute);
  pointer-events:none;opacity:0;transform:translateY(-2px);transition:opacity .12s,transform .12s;overflow-wrap:anywhere}
#bulle.visible{opacity:1;transform:none}
:root[data-theme="dark"] #bulle{background:#e2e8f0;color:#0f172a}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) #bulle{background:#e2e8f0;color:#0f172a}}
.titre-info{display:inline-flex;align-items:center;gap:2px}

/* --- tri des tableaux au clic sur le nom de colonne ------------------------------------------------------------ */
th.triable{cursor:pointer;user-select:none;white-space:nowrap}
th.triable:hover,th.triable:focus-visible{color:var(--texte);outline:none}
th.triable::after{content:"";display:inline-block;width:0;height:0;margin-left:6px;vertical-align:2px;
  border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid currentColor;opacity:0;transition:opacity .12s}
th.triable:hover::after,th.triable:focus-visible::after{opacity:.35}
th.triable[aria-sort="descending"]::after{opacity:1;color:var(--accent)}
th.triable[aria-sort="ascending"]::after{opacity:1;color:var(--accent);border-top:0;border-bottom:4px solid currentColor}
th.triable[aria-sort="ascending"],th.triable[aria-sort="descending"]{color:var(--accent-texte)}

/* --- guide « Bien démarrer » : étapes numérotées reliées par un trait, cochées d'elles-mêmes ----------------------- */
.guide-avancement-tete{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;align-items:baseline}
.guide-barre{height:8px;border-radius:999px;background:var(--fond-2);overflow:hidden;margin-top:12px}
.guide-barre span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#6366f1,#10b981);transition:width .3s}
.guide{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:14px}
.guide>li{position:relative;display:flex;gap:16px;background:var(--carte);border:1px solid var(--ligne);border-radius:var(--rayon);
  box-shadow:var(--ombre);padding:18px 20px}
.guide>li.courante{border-color:color-mix(in srgb,var(--accent) 45%,var(--ligne));box-shadow:0 0 0 3px var(--accent-doux),var(--ombre)}
.guide-num{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;
  background:var(--fond-2);color:var(--doux);border:1px solid var(--ligne-forte)}
.guide>li.courante .guide-num{background:linear-gradient(180deg,var(--bouton-1),var(--bouton-2));color:#fff;border-color:transparent}
.guide>li.faite .guide-num{background:var(--vert-doux);color:var(--vert);border-color:color-mix(in srgb,var(--vert) 35%,transparent)}
.guide-corps{flex:1;min-width:0}
.guide-corps h2{font-size:1.08rem;margin:5px 0 6px}
.guide>li.faite .guide-corps h2{color:var(--doux)}
.guide-corps p{margin:6px 0;color:var(--texte)}
.guide-corps>ul,.guide-sous{margin:8px 0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.guide-corps li{color:var(--texte)}
.guide-corps .guide-bot{display:inline-flex;align-items:center;gap:8px;margin:10px 0 4px;padding:6px 12px 6px 8px;border-radius:999px;
  background:var(--bleu-doux);color:var(--texte);border:1px solid color-mix(in srgb,var(--bleu) 25%,transparent)}
.guide-bot .icone{color:var(--bleu)}
.guide-action{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:14px 0 0}
.guide-corps .guide-fait{display:flex;align-items:center;gap:6px;color:var(--vert);font-weight:560;margin-top:12px}
.guide-fait a{font-weight:500}
.guide-code{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:12px;padding:12px 14px;
  border-radius:10px;background:var(--accent-doux);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}
.guide-code>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.guide-code code{font-size:1rem;font-weight:650;background:var(--carte);padding:4px 10px}
.calcul-depot{margin-top:14px}
.calcul-depot-corps{margin-top:12px;padding:14px;border:1px solid var(--ligne);border-radius:var(--rayon);background:var(--carte-2)}
.calcul-depot-corps>p{margin:0 0 12px}
.calcul-depot [hidden]{display:none}
.calcul-depot-resultat{margin-top:14px;padding:12px 14px;border-radius:10px;background:var(--accent-doux);
  border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);display:flex;flex-direction:column;gap:2px}
.calcul-depot-resultat strong{font-size:1.5rem;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--texte)}
.guide-quotidien{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.guide-quotidien>div{display:flex;gap:12px;align-items:flex-start}
.guide-quotidien>div>.icone{width:36px;height:36px;padding:8px;border-radius:10px;background:var(--accent-doux);color:var(--accent)}
.guide-quotidien p{margin:3px 0 0;color:var(--doux);font-size:.88rem}
@media (max-width:640px){.guide>li{padding:14px;gap:12px}.guide-num{width:30px;height:30px}}

/* --- montant + devise : devise étroite et fixe, le reste pour le montant --------------------------------------- */
.groupe select,.champs .groupe select{flex:0 0 auto;width:96px;padding-left:10px;padding-right:30px;background-position:right 8px center}
.groupe input,.champs .groupe input:not([type=checkbox]){flex:1 1 auto;width:auto;min-width:0}
table.fixe1 td:first-child,table.fixe1 td:first-child .doux{white-space:nowrap}
