/* Identite « l'heure bleue » (08/10/2026) : la maison de Luce. Menu bleu nuit dans les deux modes, fond clair
   legerement chaud (ou nuit en sombre), vert citron de Luce pour l'action principale, une couleur par etape en
   degrade du bleu au citron (la session « s'eclaire » jusqu'a la lumiere de Luce), ambre reserve a ce qui attend
   un geste de Nicolas. Logo : la lanterne. Plus aucune couleur de NB. */
:root{
  color-scheme:light;
  --luce:#d6ff8f; --luce-survol:#e6ffb8; --sur-luce:#123c45; --luce-halo:rgba(170,240,90,.35);
  --nuit:#0f2b35; --nuit-2:#17404c;
  --fond:#f5f4ef; --puce-actif:#ffffff;--puce-actif-bord:#e4e1d8;--date-fond:#e2f2f5;--date-bord:#c3e4ea;--date-num:#0f4a57;--date-mois:#1e7489;--carte:#ffffff; --bord:#e4e1d8; --survol:#efede6; --champ:#faf9f5; --bord-champ:#d9d5ca;
  --txt:#142229; --txt2:#4f5f66; --txt3:#62717a;
  --nb:#1e7489; --nb-fonce:#145a6b; --nb-clair:#e2f0f3; --sur-nb:#ffffff;
  --marine:#0f2b35; --or:#e8952b; --or-fonce:#7a4a06; --or-clair:#fcefd9; --sur-or:#2e1a00;
  --e-devis:#4f46e5;  --e-devis-c:#e8e7fc;
  --e-conv:#1d7fe0;   --e-conv-c:#e1eefc;
  --e-convoc:#0d9488; --e-convoc-c:#d9f2ef;
  --trait-1:#1d7fe0;
  --e-form:#16a34a;   --e-form-c:#dcf3e3;
  --e-attest:#65a30d; --e-attest-c:#ecf5dc;
  --erreur:#c2410c; --erreur-c:#fdeae2;
  --gris-etape:#dcd8ce; --sur-couleur:#ffffff;
  --alerte:#b45309; --alerte-c:#fef3c7;
  --voile:rgba(15,29,46,.35);
  --ombre:0 1px 2px rgba(20,34,41,.05),0 2px 6px rgba(20,34,41,.05);
  --ombre-h:0 2px 5px rgba(20,34,41,.07),0 8px 18px rgba(20,34,41,.08);
  --r:12px;
  --titre:'Lexend','Atkinson Hyperlegible Next','Atkinson Hyperlegible',-apple-system,sans-serif;
  --police:'Atkinson Hyperlegible Next','Atkinson Hyperlegible',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  color-scheme:dark; --nuit:#07121b; --nuit-2:#15293b;
  --fond:#0b1a26; --puce-actif:#22405c;--puce-actif-bord:#2f5576;--date-fond:rgba(127,208,224,.14);--date-bord:rgba(127,208,224,.35);--date-num:#e6fbff;--date-mois:#9fe0ec;--carte:#132236; --bord:#1e3448; --survol:#17293c; --champ:#0d1b2b; --bord-champ:#2a4257;
  --txt:#eef4f6; --txt2:#9fb3bd; --txt3:#859aa5;
  --nb:#7fd0e0; --nb-fonce:#a6e2ee; --nb-clair:#16394a; --sur-nb:#0a1628;
  --marine:#07121b; --or:#f2a93b; --or-fonce:#f4c67a; --or-clair:#33260a; --sur-or:#2a1b00;
  --e-devis:#8b85ff;  --e-devis-c:#24224f;
  --e-conv:#5aa9ff;   --e-conv-c:#132f4d;
  --e-convoc:#2dd4bf; --e-convoc-c:#0f3632;
  --trait-1:#5aa9ff;
  --e-form:#4ade80;   --e-form-c:#123722;
  --e-attest:#a3e635; --e-attest-c:#2a3610;
  --erreur:#f08a6c; --erreur-c:#3a1d16;
  --gris-etape:#2a4257; --sur-couleur:#0a1628;
  --alerte:#fbbf24; --alerte-c:#33260a;
  --voile:rgba(0,0,0,.5);
  --ombre:0 1px 2px rgba(0,0,0,.28); --ombre-h:0 6px 18px rgba(0,0,0,.36);
}}
:root[data-theme="dark"]{
  color-scheme:dark; --nuit:#07121b; --nuit-2:#15293b;
  --fond:#0b1a26; --puce-actif:#22405c;--puce-actif-bord:#2f5576;--date-fond:rgba(127,208,224,.14);--date-bord:rgba(127,208,224,.35);--date-num:#e6fbff;--date-mois:#9fe0ec;--carte:#132236; --bord:#1e3448; --survol:#17293c; --champ:#0d1b2b; --bord-champ:#2a4257;
  --txt:#eef4f6; --txt2:#9fb3bd; --txt3:#859aa5;
  --nb:#7fd0e0; --nb-fonce:#a6e2ee; --nb-clair:#16394a; --sur-nb:#0a1628;
  --marine:#07121b; --or:#f2a93b; --or-fonce:#f4c67a; --or-clair:#33260a; --sur-or:#2a1b00;
  --e-devis:#8b85ff;  --e-devis-c:#24224f;
  --e-conv:#5aa9ff;   --e-conv-c:#132f4d;
  --e-convoc:#2dd4bf; --e-convoc-c:#0f3632;
  --trait-1:#5aa9ff;
  --e-form:#4ade80;   --e-form-c:#123722;
  --e-attest:#a3e635; --e-attest-c:#2a3610;
  --erreur:#f08a6c; --erreur-c:#3a1d16;
  --gris-etape:#2a4257; --sur-couleur:#0a1628;
  --alerte:#fbbf24; --alerte-c:#33260a;
  --voile:rgba(0,0,0,.5);
  --ombre:0 1px 2px rgba(0,0,0,.28); --ombre-h:0 6px 18px rgba(0,0,0,.36);
}
*{box-sizing:border-box}
[hidden]{display:none !important}
html,body{min-height:100%}
body{margin:0;background:var(--fond);color:var(--txt);font-family:var(--police);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select{font-family:inherit;font-size:16px;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--nb);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}

/* coque */
.app{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh}
.menu{--carte:var(--nuit);--bord:rgba(255,255,255,.08);--txt:#ffffff;--txt2:#c9dade;--txt3:#93acb3;--survol:var(--nuit-2);--nb-clair:var(--nuit-2);--nb-fonce:#ffffff;--nb:#9fd9e5;--champ:var(--nuit-2);color:var(--txt);background:var(--nuit);border-right:0;padding:16px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}
.marque{display:flex;align-items:center;gap:10px;padding:2px 6px 16px}
.marque .lanterne{width:38px;height:38px;flex:none;color:var(--luce);filter:drop-shadow(0 0 8px rgba(214,255,143,.55))}
.entree .marque .lanterne{color:var(--sur-luce);filter:none}
:root[data-theme="dark"] .entree .marque .lanterne{color:var(--luce)}
.marque b{font-family:var(--titre);font-weight:600}
.marque b{display:block;font-size:14px}
.marque small{color:var(--txt3);font-size:12px}
.lien{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;color:var(--txt2);font-weight:500;font-size:14px;border:0;background:transparent;text-align:left;width:100%}
.lien:hover{background:var(--survol);color:var(--txt)}
.lien[aria-current="page"]{background:var(--nuit-2);color:#fff;font-weight:600;box-shadow:inset 3px 0 0 var(--luce)}
.pastille{margin-left:auto;min-width:20px;height:20px;border-radius:999px;background:var(--luce);color:var(--sur-luce);box-shadow:0 0 8px var(--luce-halo);font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 6px}
.bas-menu{margin-top:auto;display:grid;gap:10px}
.aide{border-radius:14px;background:var(--nuit-2);border:1px solid rgba(214,255,143,.22)!important;color:#fff;padding:13px 14px;font-size:13px;
  display:grid;grid-template-columns:auto 1fr;column-gap:10px;row-gap:2px;align-items:center;border:0;text-align:left;box-shadow:0 6px 18px rgba(26,107,120,.3)}
.aide:hover{filter:brightness(1.06)}
.aide img{grid-row:span 2;width:36px;height:40px;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35)) drop-shadow(0 0 8px rgba(170,255,110,.35))}
.aide b{font-size:14px}
.aide span{opacity:.75}
.theme{display:flex;gap:2px;border:1px solid var(--bord);border-radius:10px;padding:3px}
.theme button{flex:1;border:0;background:transparent;border-radius:7px;padding:5px 0;font-size:12px;color:var(--txt2)}
.theme button[aria-pressed="true"]{background:#fff;color:var(--nuit);font-weight:600}

.zone{padding:24px 28px 48px;display:grid;gap:18px;align-content:start;min-width:0;max-width:1080px;width:100%}
.titre{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px}
.titre h1{margin:0;font-size:26px;font-weight:700;letter-spacing:-.02em}
.titre small{display:block;color:var(--txt2);font-size:14px;font-weight:400;letter-spacing:0}
.b-principal{font-weight:600;font-size:14px;background:var(--luce);color:var(--sur-luce);border:0;border-radius:10px;padding:10px 16px;box-shadow:0 0 0 1px rgba(18,60,69,.14),0 4px 14px var(--luce-halo)}
.b-principal:hover{background:var(--luce-survol)}
.b-second{font-size:13px;font-weight:600;border:1px solid var(--bord);background:var(--carte);color:var(--txt);border-radius:9px;padding:6px 12px}
.b-second:hover{border-color:var(--nb);background:var(--nb-clair)}
.note-apercu{margin:0;font-size:13px;color:var(--txt2)}

/* a faire aujourd'hui */
.afaire{background:var(--carte);border:1px solid color-mix(in srgb,var(--or) 55%,transparent);border-radius:var(--r);padding:14px 16px;display:grid;gap:10px;box-shadow:var(--ombre)}
.afaire h2{margin:0;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--or-fonce)}
.tache{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;font-size:14px}
.tache + .tache{border-top:1px solid var(--bord);padding-top:10px}
.tout-va-bien{font-size:14px;color:var(--txt2)}

/* quatre grandes cases */
.colonnes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.col{border-radius:14px;overflow:hidden;background:var(--carte);border:1px solid var(--bord);box-shadow:var(--ombre);text-align:left;padding:0;display:grid}
.col:hover{box-shadow:var(--ombre-h)}
.col[aria-pressed="true"]{outline:2px solid var(--txt);outline-offset:2px}
.col .haut{padding:12px 14px;display:flex;justify-content:space-between;align-items:center;font-weight:700;background:var(--k);color:var(--sur-couleur)}
.col .haut b{font-family:var(--titre)}
.col .haut b{font-size:28px;line-height:1}
.col .bas{padding:10px 14px;font-size:13px;color:var(--txt2)}
.c-remplir{--k:var(--e-devis)} .c-confirmer{--k:var(--e-conv)} .c-pretes{--k:var(--e-convoc)} .c-cloturer{--k:var(--e-form)}

/* filtres */
.barre{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.puces{display:flex;gap:2px;flex-wrap:wrap;background:var(--champ);border:1px solid var(--bord);border-radius:20px;padding:4px;width:max-content;max-width:100%}
.puces button{font-size:13px;font-weight:500;border:1px solid transparent;background:transparent;border-radius:999px;padding:6px 13px;color:var(--txt2)}
.puces button[aria-pressed="true"]{background:var(--puce-actif);border-color:var(--puce-actif-bord);color:var(--txt);font-weight:600;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.recherche{flex:1;min-width:180px;max-width:300px}
.recherche input{width:100%;border:1px solid var(--bord);background:var(--carte);border-radius:999px;padding:7px 14px;font-size:13px}
.recherche input:focus{outline:none;border-color:var(--nb);box-shadow:0 0 0 3px var(--nb-clair)}

/* sessions */
.liste{display:grid;gap:12px}
.mois{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--txt2);margin-top:6px}
.carte{background:var(--carte);border:1px solid var(--bord);border-radius:16px;box-shadow:var(--ombre);padding:16px 18px;display:grid;
  grid-template-columns:86px minmax(0,1fr) 210px;gap:18px;align-items:start;text-align:left;width:100%}
.carte:hover{box-shadow:var(--ombre-h);border-color:var(--bord-champ)}
.date{border-radius:12px;background:var(--date-fond);border:1px solid var(--date-bord);color:var(--date-num);text-align:center;padding:9px 0 8px;line-height:1.1;display:grid}
.date small{color:var(--date-mois)}
.date b{font-size:22px}
.date small{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;opacity:.8}
.info{display:grid;min-width:0}
.nom{font-weight:700;font-size:17px;letter-spacing:-.01em}
.lieu{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:13px;color:var(--txt2);margin-top:4px}
.mode{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:6px;padding:2px 8px}
.mode.inter{background:var(--nb-clair);color:var(--nb-fonce)}
.mode.intra{background:var(--e-conv-c);color:var(--e-conv)}
.mode.sous_traitance{background:var(--champ);color:var(--txt2);border:1px solid var(--bord)}
.geste{display:inline-flex;align-items:center;gap:6px;background:var(--or-clair);color:var(--or-fonce);font-weight:600;font-size:12px;border-radius:999px;padding:3px 10px}
.geste::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--or)}
.parcours{display:flex;align-items:flex-start;margin-top:14px}
.et{display:grid;justify-items:center;gap:5px;flex:1;position:relative;font-size:11px;font-weight:600;color:var(--txt3);text-align:center}
.et::before{content:"";position:absolute;top:14px;left:calc(-50% + 16px);right:calc(50% + 16px);height:3px;border-radius:2px;background:var(--gris-etape)}
.et:first-child::before{display:none}
.et.fait::before{background:var(--k)}
.rond{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--champ);border:2px solid var(--gris-etape);color:var(--txt3);font-size:13px;position:relative;z-index:1}
.et.fait .rond{background:var(--k);border-color:var(--k);color:var(--sur-couleur)}
.et.encours .rond{background:var(--carte);border:4px solid var(--k);color:var(--k);box-shadow:0 0 12px color-mix(in srgb,var(--k) 70%,transparent)}
.et.fait,.et.encours{color:var(--txt)}
.places{display:grid;gap:8px;background:var(--champ);border-radius:12px;padding:12px}
.places .chiffre{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.places .chiffre b{font-size:24px;font-weight:800;letter-spacing:-.02em}
.places .chiffre b span{font-size:15px;font-weight:600;color:var(--txt2)}
.places .chiffre em{font-style:normal;font-size:12px;font-weight:700}
.cases{display:grid;grid-template-columns:repeat(10,1fr);gap:3px}
.cases i{height:11px;border-radius:6px;background:var(--gris-etape)}
.cases i.c{background:var(--nb)} .cases i.e{background:var(--e-conv)}
.cases i.s{box-shadow:0 0 0 2px var(--txt)}
.places small{font-size:12px;color:var(--txt2)}
.ok{color:var(--e-form)} .attention{color:var(--alerte)} .neutre{color:var(--txt2)}

/* fiche */
.voile{position:fixed;inset:0;background:var(--voile);z-index:10}
.fiche{position:fixed;z-index:11;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--fond);overflow-y:auto;box-shadow:var(--ombre-h);
  padding:calc(18px + env(safe-area-inset-top,0px)) 18px calc(28px + env(safe-area-inset-bottom,0px));display:grid;gap:14px;align-content:start}
.f-tete{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.f-tete h2{margin:2px 0 0;font-size:21px;letter-spacing:-.01em;text-wrap:balance}
.f-tete small{font-size:12px;color:var(--txt3)}
.bloc{background:var(--carte);border:1px solid var(--bord);border-radius:var(--r);padding:14px 16px;display:grid;gap:12px}
.bloc h3{margin:0;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--txt2)}
.grille{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.champ{display:grid;gap:4px;min-width:0}
.champ.large{grid-column:1 / -1}
.champ label{font-size:13px;color:var(--txt2);font-weight:500}
.fiche input,.fiche select{padding:9px 11px;border:1px solid var(--bord-champ);border-radius:10px;background:var(--champ);width:100%;min-width:0}
.fiche input:focus,.fiche select:focus{outline:none;border-color:var(--nb);background:var(--carte);box-shadow:0 0 0 3px var(--nb-clair)}
.droite{display:flex;justify-content:flex-end}
.tableau{overflow-x:auto}
.tableau tr.groupe td{background:var(--survol);padding-top:10px}
.tableau tr.passee td{opacity:.55}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-weight:600;color:var(--txt2);padding:6px;border-bottom:1px solid var(--bord)}
td{padding:9px 6px;border-bottom:1px solid var(--bord);vertical-align:middle}
th.n,td.n{text-align:right}
td input{width:84px !important;padding:6px 8px !important;text-align:right}
.sous{display:block;font-size:12px;color:var(--txt3)}
.statut{font-size:12px;font-weight:600;border-radius:999px;padding:2px 9px;white-space:nowrap}
.statut.confirmee{background:var(--e-form-c);color:var(--e-form)}
.statut.devis_envoye,.statut.en_attente{background:var(--e-conv-c);color:var(--e-conv)}
.statut.prospect{background:var(--or-clair);color:var(--or-fonce)}
.kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.kpis small{display:block;font-size:12px;color:var(--txt2)}
.kpis b{font-size:18px}
.indic{margin:0;font-size:13px;color:var(--txt2)}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));background:var(--txt);color:var(--carte);
  padding:10px 16px;border-radius:10px;font-size:13px;max-width:calc(100% - 32px);z-index:12;box-shadow:var(--ombre-h)}

.menu{overflow-y:auto}
.nav{display:grid;gap:2px}
.groupe{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--txt3);padding:14px 10px 4px}
.groupe:first-child{padding-top:0}
.nouveau{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:1px 7px;background:var(--e-conv-c);color:var(--e-conv)}
.lien .pastille + .nouveau{margin-left:6px}
.ecran-a-venir{display:grid;gap:12px}
.ecran-a-venir ul{margin:0;padding-left:18px;display:grid;gap:4px;font-size:14px}
.prio{display:inline-flex;font-size:12px;font-weight:700;border-radius:999px;padding:2px 10px;background:var(--nb-clair);color:var(--nb-fonce)}
.legende-menu{font-size:12px;color:var(--txt3);padding:10px 10px 0;display:flex;align-items:center;gap:6px}
.famille{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:transparent;border-radius:9px;
  padding:9px 10px;margin-top:6px;font-size:14px;font-weight:600;color:var(--txt);text-align:left}
.famille:hover{background:var(--survol)}
.famille .fleche{font-size:18px;line-height:1;color:var(--txt3);transition:transform .15s}
.famille[aria-expanded="true"] .fleche{transform:rotate(90deg)}
.sousmenu{display:grid;gap:1px;padding-left:10px;margin-left:10px;border-left:2px solid var(--bord)}
.sousmenu .lien{font-size:13.5px;padding:7px 10px}
.sousmenu .nouveau,.legende-menu .nouveau{font-size:0;width:7px;height:7px;padding:0;border-radius:50%;background:var(--e-conv);flex:none}

/* ===== SIGNATURE : le trait NB (traits epais aux bouts arrondis du logo) ===== */
.titre h1,.date b,.col .haut b,.places .chiffre b{font-family:var(--titre);letter-spacing:-.01em}
.titre h1{font-weight:600}
.date b{font-weight:600;white-space:nowrap;font-size:19px}
.titre small{font-family:var(--police);font-weight:400}
.charge{position:fixed;top:0;left:0;height:4px;border-radius:0 3px 3px 0;background:linear-gradient(90deg,var(--trait-1),var(--nb));z-index:20;width:0}
@media (prefers-reduced-motion:no-preference){ .charge{animation:charge 1.1s ease-out forwards} @keyframes charge{0%{width:0;opacity:1}80%{width:100%;opacity:1}100%{width:100%;opacity:0}} }
@media (prefers-reduced-motion:reduce){ .charge{display:none} }
.lien{position:relative}
.lien[aria-current="page"]::before{content:"";position:absolute;left:-6px;top:7px;bottom:7px;width:4px;border-radius:3px;background:var(--luce);box-shadow:0 0 8px var(--luce-halo)}
.lien svg,.famille svg{width:19px;height:19px;flex:none}
.famille > span:first-child{display:flex;align-items:center;gap:10px}
.lien[aria-current="page"] svg{color:var(--nb)}
.et::before{top:12px;height:5px;border-radius:3px}
.rond{border-width:3px}
.trait{position:relative;height:12px;border-radius:6px;background:var(--gris-etape);display:block}
.trait .c{position:absolute;left:0;top:0;bottom:0;border-radius:6px;background:linear-gradient(90deg,var(--trait-1),var(--nb))}
.trait .e{position:absolute;top:0;bottom:0;border-radius:0 6px 6px 0;background:repeating-linear-gradient(135deg,var(--nb) 0 3px,transparent 3px 6px);opacity:.7}
.trait .s{position:absolute;top:-4px;bottom:-4px;width:4px;margin-left:-2px;border-radius:3px;background:var(--txt)}
.trait.atteint .c{background:linear-gradient(90deg,var(--trait-1),var(--e-form))}
@media (prefers-reduced-motion:no-preference){
  .trait.eclat,.cases.eclat{animation:eclat 1.2s ease-out;border-radius:6px}
  @keyframes eclat{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--e-form) 70%,transparent)}100%{box-shadow:0 0 0 14px transparent}}
  .rond.pop{animation:pop .5s cubic-bezier(.3,1.6,.5,1)}
  @keyframes pop{0%{transform:scale(.4)}100%{transform:scale(1)}}
}
/* voix */
.afaire h2{font-size:17px;letter-spacing:-.01em;text-transform:none;color:var(--txt);font-weight:700;display:flex;align-items:center;gap:10px}
.afaire h2::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--or);flex:none}
.afaire.calme h2::before{background:var(--e-form)}
.afaire.calme{border-color:var(--bord)}
.tout-va-bien{display:flex;align-items:center;gap:12px}
.tout-va-bien svg{width:40px;height:40px;flex:none;color:var(--e-form)}
/* hierarchie */
.carte.une{border:2px solid color-mix(in srgb,var(--nb) 45%,transparent);padding:20px 22px}
.carte.une .nom{font-size:19px}
.a-la-une{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--nb-fonce);margin-bottom:4px;display:block}
.carte.passee{opacity:.6}
.mini{font-size:12px;font-weight:600;border:1px solid var(--bord);background:var(--carte);color:var(--txt);border-radius:8px;padding:3px 9px;margin-left:6px}
.mini:hover{border-color:var(--nb);background:var(--nb-clair)}
.etape-suivante{justify-self:start}
/* onglets du bas, comme le cockpit sur telephone */
.onglets{display:none}
@media (max-width:900px){
  .colonnes{grid-template-columns:repeat(2,minmax(0,1fr))}
  .carte{grid-template-columns:60px minmax(0,1fr)}
  .places{grid-column:1 / -1}
}
@media (max-width:760px){
  .app{grid-template-columns:1fr}
  .menu{display:none}
  .zone{padding:16px 16px 100px}
  .titre h1{font-size:23px}
  .et{font-size:11px}
  .et:not(.encours) .lbl{display:none}
  .date b{font-size:18px}
  .carte{grid-template-columns:64px minmax(0,1fr);padding:14px}
  .rond{width:26px;height:26px;font-size:12px}
  .et::before{top:12px}
  .grille,.kpis{grid-template-columns:1fr}
  .onglets{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;background:var(--carte);
    border-top:1px solid var(--bord);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));z-index:4}
  .onglets button{border:0;background:transparent;font-size:11px;font-weight:600;color:var(--txt3);padding:8px 0;border-radius:8px;position:relative}
  .onglets button[aria-current="page"]{color:var(--nb-fonce);background:var(--nb-clair);box-shadow:inset 0 -3px 0 var(--luce)}
}
@media (prefers-reduced-motion:no-preference){ .fiche:not([hidden]){animation:entre .18s ease-out} @keyframes entre{from{transform:translateX(20px);opacity:.5}} }

/* ===== Ajouts du logiciel en ligne (07/10/2026) ===== */
.entree{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--fond)}
.entree form{width:min(400px,100%);background:var(--carte);border:1px solid var(--bord);border-radius:18px;box-shadow:var(--ombre-h);padding:28px 24px;display:grid;gap:14px}
.entree .marque{padding:0 0 4px}
.entree h1{margin:0;font-family:var(--titre);font-weight:600;font-size:23px;letter-spacing:-.01em}
.entree p{margin:0;color:var(--txt2);font-size:14px}
.entree label{display:grid;gap:5px;font-size:13px;color:var(--txt2);font-weight:500}
.entree input{padding:11px 12px;border:1px solid var(--bord-champ);border-radius:10px;background:var(--champ);width:100%}
.entree input:focus{outline:none;border-color:var(--nb);background:var(--carte);box-shadow:0 0 0 3px var(--nb-clair)}
.entree .b-principal{padding:12px 16px;font-size:15px}
.entree .erreur{color:var(--erreur);font-size:13px;font-weight:600;min-height:1em}
.toast.erreur{background:var(--erreur);color:#fff}
.fiche textarea{padding:9px 11px;border:1px solid var(--bord-champ);border-radius:10px;background:var(--champ);width:100%;min-height:70px;font:inherit;resize:vertical}
.fiche textarea:focus{outline:none;border-color:var(--nb);background:var(--carte);box-shadow:0 0 0 3px var(--nb-clair)}
.boutons{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center}
.b-discret{font-size:13px;font-weight:600;border:0;background:transparent;color:var(--txt2);padding:6px 8px;border-radius:8px}
.b-discret:hover{color:var(--erreur);background:var(--erreur-c)}
td select{padding:6px 8px !important;width:auto !important;font-size:13px}
td input.eff{width:56px !important}
.ajout{border-top:1px dashed var(--bord);padding-top:12px;display:grid;gap:10px}
.compte{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px;padding:6px 0;border-bottom:1px solid var(--bord)}
.compte small{color:var(--txt3)}
.lien-invit{word-break:break-all;font-size:13px;background:var(--champ);border:1px solid var(--bord);border-radius:10px;padding:10px}
.qui{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:var(--txt2);padding:0 4px}
.vide{background:var(--carte);border:1px dashed var(--bord-champ);border-radius:16px;padding:28px 20px;text-align:center;display:grid;gap:10px;justify-items:center}
.vide b{font-family:var(--titre);font-weight:600;font-size:18px}
.vide p{margin:0;color:var(--txt2);font-size:14px;max-width:46ch}

/* couleur de chaque etape (classes plutot que style en ligne : la CSP interdit les styles en ligne) */
.k-e-devis{--k:var(--e-devis);--kc:var(--e-devis-c)}
.k-e-conv{--k:var(--e-conv);--kc:var(--e-conv-c)}
.k-e-convoc{--k:var(--e-convoc);--kc:var(--e-convoc-c)}
.k-e-form{--k:var(--e-form);--kc:var(--e-form-c)}
.k-e-attest{--k:var(--e-attest);--kc:var(--e-attest-c)}
.sprites{position:absolute;width:0;height:0;overflow:hidden}
/* catalogue : familles > offres > modules */
.offre{border:1px solid var(--bord);border-radius:12px;padding:12px 14px;display:grid;gap:10px;background:var(--carte)}
.offre + .offre{margin-top:2px}
.offre.edition{border-color:var(--nb);box-shadow:0 0 0 3px var(--nb-clair)}
.offre-tete{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.offre-tete b{font-size:15px}
.offre-prix{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.offre-prix small{display:block;font-size:12px;color:var(--txt2)}
.offre-prix b{font-size:15px}
.case{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--txt);cursor:pointer}
.case input{width:auto !important}
.modules-choix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:220px;overflow:auto;padding:8px;border:1px solid var(--bord);border-radius:10px;background:var(--champ)}
details.bloc summary{cursor:pointer;list-style:none}
details.bloc summary::-webkit-details-marker{display:none}
details.bloc summary h3::after{content:" ›";color:var(--txt3)}
details.bloc[open] summary h3::after{content:" ⌄"}
td input[data-m-libelle]{width:100% !important;text-align:left !important;min-width:220px}
@media (max-width:760px){ .offre-prix{grid-template-columns:repeat(2,minmax(0,1fr))} .modules-choix{grid-template-columns:1fr} }
a.b-second,a.b-discret{text-decoration:none;display:inline-block}
fieldset.qcms{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 14px}fieldset.qcms legend{font-size:13px;color:var(--txt2);margin-bottom:6px;padding:0}fieldset.qcms .case{font-size:13px}
.cliquable{cursor:pointer}.cliquable:hover td{background:var(--survol)}
.puce-role{display:inline-block;font-size:11.5px;font-weight:600;border-radius:999px;padding:2px 8px;background:var(--nb-clair);color:var(--nb-fonce)}
.alerte-bloc{background:var(--alerte-c);border-color:var(--alerte)}.alerte-bloc p{margin:4px 0;color:var(--alerte)}
.sous-grille .grille{margin-top:8px}
/* Devis et conventions (lot 4.3) */
.puce-role.ok{background:var(--e-conv-c);color:var(--e-conv)}
.devis-ligne{padding:12px 0;border-bottom:1px solid var(--bord)}
.devis-ligne:last-of-type{border-bottom:0}
.devis-tete{display:flex;justify-content:space-between;gap:8px 16px;flex-wrap:wrap}
.devis-tete .sous{display:block}
.devis-etat{text-align:right}
.devis-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}
.devis-actions .mini{margin-left:0;text-decoration:none;display:inline-block;padding:5px 11px}
.mini.envoyer{background:var(--luce);color:var(--sur-luce);border-color:var(--luce)}
.conv-signee{display:block;margin-top:4px;font-size:13px}
details.versions{margin-top:6px;font-size:12.5px}
details.versions summary{cursor:pointer;color:var(--txt2)}
details.versions a{display:block;margin:2px 0 0 12px}
.lignes-devis{margin:8px 0 12px}
.ld{display:grid;grid-template-columns:minmax(0,1fr) 62px 84px 78px 52px;gap:6px;align-items:center;margin-bottom:6px}
.ld input{width:100%;min-width:0}
.ld .num{text-align:right}
.ld-tete{font-size:12px;color:var(--txt2);font-weight:600}
.ld-tete span:nth-child(n+2):nth-child(-n+4){text-align:right}
.ld-pied{text-align:left;grid-template-columns:minmax(0,1fr) auto;border-top:1px solid var(--bord);padding-top:6px}
input.date-court{width:150px;padding:2px 6px;font-size:12.5px}
.filtres-devis{display:flex;flex-wrap:wrap;gap:6px}
fieldset.programmes label.case{display:flex;gap:6px;align-items:baseline;width:100%}
fieldset.programmes details{margin-top:6px;width:100%}
fieldset.programmes summary{cursor:pointer;font-weight:600;margin-bottom:4px}
@media (max-width:640px){
  .devis-etat{text-align:left}
  .ld{grid-template-columns:1fr 1fr 1fr;}
  .ld input[data-dl="intitule"]{grid-column:1 / -1}
  .ld-tete{display:none}
}
/* Fin de formation (lots 4.6 a 4.8) */
table.resultats td{vertical-align:top}
table.resultats input{display:block;width:100%;min-width:130px;margin-bottom:4px}
label.case.petit{display:inline-flex;gap:4px;font-size:12.5px;margin:0 8px 4px 0;white-space:nowrap}
table.absences th,table.absences td{white-space:nowrap;font-size:12.5px}
table.absences select{font-size:12px;padding:2px 4px}
/* Factures (lots 4.9 a 4.11) */
.facture-ligne{margin:10px 0 0 12px;padding:8px 0 0 12px;border-left:3px solid var(--bord)}
/* Recyclages (lot 5.2) */
textarea.texte-relance{min-height:260px;font-family:inherit;line-height:1.5}
/* Cartes de session : entreprise en gros, formation dessous (07/10) */
.formation-carte{font-size:14px;color:var(--txt);font-weight:500;margin-top:2px}
.carte.passee .formation-carte{color:var(--txt2)}
/* Niveaux vises sous la formation, discrets */
.champ.niveaux label{font-size:12.5px;color:var(--txt2)}
.champ.niveaux .sous{font-size:12px}
/* QCM et evaluations (lot 5.1) */
.qe-q{border:1px solid var(--bord);border-radius:10px;padding:12px;margin:0 0 10px;background:var(--carte);display:grid;gap:8px}
.qe-q-tete{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.qe-q-tete select{max-width:200px}
.qe-q-boutons{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap}
.qe-q textarea{width:100%;box-sizing:border-box;border:1px solid var(--bord-champ);background:var(--champ);border-radius:8px;padding:8px 10px;font:inherit;color:var(--txt);resize:vertical}
.qe-options{display:grid;gap:6px}
.qe-option{display:flex;gap:8px;align-items:center}
.qe-option input:not([type]){flex:1;min-width:0;border:1px solid var(--bord-champ);background:var(--champ);border-radius:8px;padding:7px 10px}
.qe-option .case{white-space:nowrap}
.note-qcm{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:2px 8px}
.note-qcm.ok{background:var(--e-form-c);color:var(--e-form)}
.note-qcm.ko{background:var(--erreur-c);color:var(--erreur)}
table.evaluations td{vertical-align:top}
h4.sous-titre{font-size:13px;font-weight:600;color:var(--txt2);margin:16px 0 6px}
/* Mon organisme : zones de depot */
.depots{display:grid;gap:10px}
.depot{display:flex;gap:14px;align-items:flex-start;border:1.5px dashed var(--bord-champ);border-radius:12px;padding:12px;background:var(--champ);cursor:pointer}
.depot:hover,.depot.survol,.depot:focus-visible{border-color:var(--nb);background:var(--nb-clair);outline:none}
.depot .sous{display:block}
.depot-vue{width:72px;height:72px;flex:none;border-radius:10px;background:#fff;border:1px solid var(--bord);display:grid;place-items:center;overflow:hidden}
.depot-vue img{max-width:100%;max-height:100%;object-fit:contain}
.depot-pdf{font-family:var(--titre);color:var(--erreur);font-size:16px}
/* Reglages > Textes des documents et mails */
.tx-onglets{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0}
.tx-onglets .sous{min-width:84px}
.tx-onglet{font-size:13px;font-weight:600;border:1px solid var(--bord);background:var(--carte);color:var(--txt);border-radius:999px;padding:5px 12px}
.tx-onglet:hover{border-color:var(--nb)}
.tx-onglet[aria-current="true"]{background:var(--nb);color:var(--sur-nb);border-color:var(--nb)}
.tx-point{color:var(--nb)} .tx-onglet[aria-current="true"] .tx-point{color:var(--sur-nb)}
.tx-alerte{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--erreur);color:#fff;font-size:11px}
.tx-cas{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tx-cas select,.tx-outils select{width:auto;font:inherit;font-size:13px;border:1px solid var(--bord-champ);background:var(--champ);color:var(--txt);border-radius:8px;padding:5px 8px;max-width:100%}
.tx-edit{min-height:110px;border:1px solid var(--bord-champ);background:var(--champ);border-radius:10px;padding:12px 14px;line-height:1.9;font-size:14.5px;color:var(--txt);white-space:pre-wrap;overflow-wrap:anywhere;outline:none}
.tx-edit.ligne{min-height:0;white-space:nowrap;overflow-x:auto}
.tx-edit:focus{border-color:var(--nb);box-shadow:0 0 0 3px var(--nb-clair)}
.tx-champ,.tx-si,.tx-fin{display:inline-block;border-radius:6px;padding:0 7px;font-size:13px;font-weight:600;line-height:1.6;white-space:nowrap;user-select:all;cursor:default}
.tx-champ{background:var(--nb-clair);color:var(--nb-fonce);border:1px solid var(--nb)}
.tx-si,.tx-fin{background:var(--e-conv-c);color:var(--e-conv);border:1px dashed var(--e-conv)}
.tx-fin{font-weight:500}
.tx-outils{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}
.tx-ajout{font-size:12.5px;font-weight:600;border:1px solid var(--nb);background:var(--carte);color:var(--nb-fonce);border-radius:999px;padding:3px 10px}
.tx-ajout:hover{background:var(--nb-clair)}
.tx-erreurs:empty{display:none}
.tx-erreurs{margin-top:8px;border-radius:8px;background:var(--erreur-c);color:var(--txt);padding:8px 12px;font-size:13.5px}
.tx-erreurs ul{margin:4px 0 0 18px}
.tx-apercu{margin-top:10px}
.tx-apercu iframe{width:100%;height:560px;border:1px solid var(--bord);border-radius:10px;background:#fff}
@media (max-width:640px){.tx-apercu iframe{height:420px}.tx-onglets .sous{min-width:0;width:100%}}
.tx-plus{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center}
.tx-plus summary{font-size:12.5px;font-weight:600;color:var(--txt2);cursor:pointer;padding:3px 6px;list-style:none}
.tx-plus summary::before{content:'+ '}
.tx-plus[open] summary::before{content:'- '}
.tx-plus[open]{display:flex;width:100%;gap:6px}
/* Fichiers déposés (bibliothèque, session, formateur) */
.fd-choix{margin-bottom:10px}
.fd-zone{margin-bottom:12px}
.fd-cat{margin:14px 0 6px;font-size:14px;color:var(--txt2)}
[data-fd-bloc] td a{color:var(--nb-fonce);text-decoration:none}
[data-fd-bloc] td a:hover{text-decoration:underline}

/* ---------- Luce 1 : la luciole en peluche (bleu lagon, ventre lumineux) ---------- */
.luce{position:fixed;right:24px;bottom:24px;z-index:61;width:400px;height:min(640px,calc(100vh - 48px));display:flex;flex-direction:column;
  background:var(--carte);border:1px solid var(--bord);border-radius:18px;box-shadow:0 18px 50px rgba(15,29,46,.25);overflow:hidden}
.luce header{display:flex;align-items:center;gap:12px;padding:12px 14px;color:#fff}
.luce header{position:relative;overflow:visible;background:linear-gradient(90deg,rgba(9,24,36,.92),rgba(9,24,36,.55)),url(/luce/maison.webp) 78% 62%/260% auto no-repeat}
.luce-perso{position:relative;width:54px;height:60px;flex:none}
.luce-perso img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 6px rgba(0,0,0,.45)) drop-shadow(0 0 10px rgba(170,255,110,.25));animation:luce-flotte 4.5s ease-in-out infinite}
.luce-etincelles{position:absolute;inset:-8px;opacity:0;transition:opacity .3s}
.luce-etincelles i{position:absolute;left:50%;top:50%;width:5px;height:5px;margin:-2.5px;border-radius:50%;background:#d9ff8a;box-shadow:0 0 8px 2px rgba(190,255,110,.7);animation:luce-orbite 1.6s linear infinite}
.luce-etincelles i:nth-child(2){animation-delay:-.53s}.luce-etincelles i:nth-child(3){animation-delay:-1.06s}
.luce[data-humeur="reflechit"] .luce-etincelles,.luce[data-humeur="travaille"] .luce-etincelles{opacity:1}
.luce[data-humeur="reflechit"] .luce-perso img,.luce[data-humeur="travaille"] .luce-perso img{animation-duration:1.4s;filter:drop-shadow(0 4px 6px rgba(0,0,0,.45)) drop-shadow(0 0 16px rgba(170,255,110,.6))}
.luce[data-humeur="ecoute"] .luce-perso img{animation:luce-penche 1.2s ease-in-out infinite}
.luce[data-humeur="pret"] .luce-perso img{animation:luce-content .7s ease-out 1,luce-flotte 4.5s ease-in-out .7s infinite}
@keyframes luce-orbite{from{transform:rotate(0) translateX(32px) rotate(0)}to{transform:rotate(360deg) translateX(32px) rotate(-360deg)}}
@keyframes luce-penche{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes luce-content{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-14%) scale(1.06)}100%{transform:translateY(0) scale(1)}}
.luce header div{flex:1;min-width:0}
.luce header b{display:block;font:600 17px var(--titre)}
.luce header small{display:block;font-size:12.5px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.luce-x{border:0;background:rgba(255,255,255,.14);color:#fff;width:34px;height:34px;border-radius:50%;font-size:22px;line-height:1;cursor:pointer}
.luce-x:hover{background:rgba(255,255,255,.26)}
.luce-fil{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:var(--fond)}
.luce-msg{max-width:88%;padding:9px 13px;border-radius:14px;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.luce-msg p{margin:0}.luce-msg p+p,.luce-msg p+ul,.luce-msg ul+p{margin-top:7px}
.luce-msg ul{margin:4px 0 0;padding-left:18px}.luce-msg li+li{margin-top:3px}
.luce-elle{align-self:flex-start;background:var(--carte);border:1px solid var(--bord);border-bottom-left-radius:4px}
.luce-moi{align-self:flex-end;background:var(--nb);color:var(--sur-nb);border-bottom-right-radius:4px}
.luce-erreur{border-color:var(--alerte);background:var(--alerte-c)}
.luce-lien{border:0;background:var(--nb-clair);color:var(--nb-fonce);font:inherit;font-weight:600;padding:0 6px;border-radius:6px;cursor:pointer}
.luce-lien:hover{text-decoration:underline}
.luce-idees{display:flex;flex-wrap:wrap;gap:6px}
.luce-idees .b-second{border-radius:20px;font-weight:500}
.luce-points{display:flex;gap:5px;padding:13px 15px}
.luce-points i{width:7px;height:7px;border-radius:50%;background:var(--nb);opacity:.35;animation:luce-point 1.2s infinite}
.luce-points i:nth-child(2){animation-delay:.2s}.luce-points i:nth-child(3){animation-delay:.4s}
@keyframes luce-point{40%{opacity:1;transform:translateY(-3px)}}
.luce-form{display:flex;gap:8px;align-items:flex-end;padding:10px;border-top:1px solid var(--bord);background:var(--carte)}
.luce-form textarea{flex:1;resize:none;font:inherit;font-size:14px;line-height:1.4;padding:9px 12px;border:1px solid var(--bord-champ);border-radius:12px;background:var(--champ);color:var(--txt);max-height:140px}
.luce-form textarea:focus{outline:2px solid var(--nb);outline-offset:-1px}
@media (max-width:760px){
  .luce{inset:0;width:auto;height:auto;border-radius:0;border:0}
}
@media print{.luce{display:none!important}}

/* ---------- Accueil : la maison de Luce (premier ecran) ---------- */
.zone[hidden]{display:none}
/* Scene : la maison de Luce (decor Gemini 1584 x 672), Luce detouree par-dessus, lucioles et profondeur en CSS */
.ac-scene{position:relative;aspect-ratio:1584/672;border-radius:22px;overflow:hidden;isolation:isolate;
  background:#0b1a26;box-shadow:0 18px 50px rgba(8,22,34,.35),0 0 0 1px rgba(255,255,255,.04) inset}
.ac-decor{position:absolute;inset:-14px;background:url(/luce/maison.webp) center/cover no-repeat}
.ac-scene::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,rgba(6,16,26,.82) 0%,rgba(6,16,26,.55) 30%,rgba(6,16,26,.08) 52%,transparent 60%),linear-gradient(0deg,rgba(6,16,26,.35),transparent 30%)}
.ac-luce{position:absolute;z-index:3;left:53%;bottom:12%;height:40%;aspect-ratio:374/420;transform:translateX(-50%);animation:luce-arrivee .9s cubic-bezier(.2,.8,.2,1.2) both}
.ac-luce img{position:absolute;inset:0;width:100%;height:100%;animation:luce-flotte 4.5s ease-in-out infinite;transform-origin:50% 90%}
.ac-ombre{position:absolute;left:12%;right:12%;bottom:-4%;height:12%;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.6),transparent);animation:luce-ombre 4.5s ease-in-out infinite}
.ac-lueur{position:absolute;left:-30%;right:-30%;bottom:-12%;height:45%;border-radius:50%;background:radial-gradient(closest-side,rgba(170,255,110,.38),transparent);mix-blend-mode:screen;animation:luce-lueur-ventre 3.2s ease-in-out infinite}
.ac-lucioles{position:absolute;inset:0;z-index:2;pointer-events:none}
.ac-lucioles i{position:absolute;width:5px;height:5px;border-radius:50%;background:#d9ff8a;box-shadow:0 0 8px 3px rgba(190,255,110,.55),0 0 18px 6px rgba(190,255,110,.18);opacity:0;animation:luciole-vole 9s ease-in-out infinite}
.ac-texte{position:absolute;z-index:4;left:0;top:0;bottom:0;width:min(46%,480px);padding:clamp(18px,3.4vw,40px);display:flex;flex-direction:column;justify-content:center;gap:10px;color:#fff}
.ac-texte h1{margin:0;font:600 clamp(24px,3vw,36px)/1.1 var(--titre);letter-spacing:-.015em;text-shadow:0 2px 18px rgba(0,0,0,.45)}
.ac-texte p{margin:0;font-size:clamp(14px,1.35vw,16px);line-height:1.5;color:rgba(255,255,255,.88);text-shadow:0 1px 10px rgba(0,0,0,.5)}
.ac-form{display:flex;gap:8px;margin-top:8px;padding:5px;border-radius:14px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.ac-form input{flex:1;min-width:0;font:inherit;font-size:15px;padding:10px 12px;border:0;border-radius:10px;background:transparent;color:#fff}
.ac-form input::placeholder{color:rgba(255,255,255,.7)}
.ac-form input:focus{outline:none;background:rgba(255,255,255,.08)}
.ac-form:focus-within{border-color:rgba(200,255,140,.7);box-shadow:0 0 0 3px rgba(190,255,110,.22)}
.ac-form .b-principal{white-space:nowrap;box-shadow:0 0 18px rgba(190,255,110,.35)}
@keyframes luce-flotte{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-5%) rotate(-1.2deg)}}
@keyframes luce-ombre{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.86);opacity:.7}}
@keyframes luce-lueur-ventre{0%,100%{opacity:.75}50%{opacity:1}}
@keyframes luce-arrivee{from{opacity:0;translate:0 14px}to{opacity:1}}
@keyframes luciole-vole{0%{opacity:0;transform:translate(0,0)}15%{opacity:.95}50%{opacity:.5;transform:translate(14px,-18px)}85%{opacity:.9}100%{opacity:0;transform:translate(-8px,-34px)}}
@media (prefers-reduced-motion:reduce){.ac-luce,.ac-luce img,.ac-ombre,.ac-lueur,.ac-lucioles i,.luce-perso img,.luce-etincelles i{animation:none!important}.ac-lucioles i{opacity:.7}}
.tache.t-alerte span::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--alerte);margin-right:8px;vertical-align:middle}
.ac-bas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.ac-bloc{background:var(--carte);border:1px solid var(--bord);border-radius:var(--r);padding:14px 16px;display:grid;gap:8px;box-shadow:var(--ombre)}
.ac-bloc h2{margin:0 0 2px;font-size:16px;font-weight:700}
.ac-bloc > .b-discret{justify-self:start;padding-left:0;color:var(--nb)}
.ac-session{display:flex;align-items:center;gap:12px;text-align:left;width:100%;border:0;background:transparent;padding:8px 6px;border-radius:10px;color:var(--txt);cursor:pointer}
.ac-session:hover{background:var(--survol)}
.ac-session + .ac-session{border-top:1px solid var(--bord)}
.ac-session b,.ac-tache b{display:block;font-size:14px}
.ac-session small,.ac-tache small{display:block;font-size:12.5px;color:var(--txt2);margin-top:2px}
.ac-date{flex:none;min-width:58px;text-align:center;font:600 13px var(--titre);color:var(--nb-fonce);background:var(--nb-clair);border-radius:8px;padding:5px 6px}
.ac-tache{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:6px 0}
.ac-tache + .ac-tache{border-top:1px solid var(--bord)}
.ac-tache .case{align-items:flex-start}
.ac-tache .case input{margin-top:3px}
.ac-bloc input:not([type=checkbox]),.ac-bloc select,.ac-bloc textarea{padding:9px 11px;border:1px solid var(--bord-champ);border-radius:10px;background:var(--champ);color:var(--txt);width:100%;min-width:0;font:inherit;font-size:14px}
.ac-bloc textarea{min-height:60px;resize:vertical}
@media (max-width:900px){.ac-bas{grid-template-columns:1fr}}
@media (max-width:760px){
  .ac-scene{aspect-ratio:auto;display:flex;flex-direction:column;background:#0b1a26}
  .ac-decor{position:relative;inset:auto;aspect-ratio:1.5;background-position:72% center;margin:0;transform:none}
  .ac-scene::after{background:linear-gradient(0deg,#0b1a26 38%,transparent 62%)}
  .ac-luce{bottom:auto;top:calc((100vw - 32px) / 1.5 * .53);height:calc((100vw - 32px) / 1.5 * .40);left:34%}
  .ac-lucioles{bottom:auto;height:calc((100vw - 32px) / 1.5)}
  .ac-texte{position:relative;width:auto;padding:0 18px 18px;margin-top:-6px}
  .ac-form{flex-direction:column}
}


/* ---------- Etats (envois, attestations, recyclages) ---------- */
.etat{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;border-radius:999px;padding:3px 10px;white-space:nowrap}
.etat-ok{background:var(--e-form-c);color:var(--e-form)}
.etat-ko{background:var(--erreur-c);color:var(--erreur)}
.etat-pret{background:var(--luce);color:var(--sur-luce)}
.ba-etape h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ba-num{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--nb);color:var(--sur-nb);font-size:12px}
.ba-liste{margin:6px 0 4px;padding-left:18px;font-size:14px}.ba-liste li+li{margin-top:3px}
/* Luce 2 : geste prepare */
.luce-prop{align-self:stretch;margin:-4px 0 4px;border:1px solid var(--nb);border-left:4px solid var(--luce);border-radius:12px;background:var(--carte);padding:10px 12px;font-size:14px}
.luce-prop small{display:block;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--nb)}
.luce-prop p{margin:4px 0 0}
.luce-prop-b{display:flex;gap:8px;margin-top:8px}
.luce-prop-b .b-principal,.luce-prop-b .b-second{padding:7px 14px;font-size:13px}
.luce-prop-ok{color:var(--e-form);font-weight:600}
.luce-prop-ko{color:var(--erreur);font-weight:600}
.luce-prop[data-etat="non"],.luce-prop[data-etat="annule"]{opacity:.7;border-left-color:var(--bord)}

/* Barre Luce (08/10) : en bas de la vue Sessions, « Dis-moi ce que tu veux faire » ; ouvre le panneau de Luce */
.luce-barre{position:sticky;bottom:0;z-index:5;padding:12px 0 18px;background:linear-gradient(180deg,transparent,var(--fond) 40%)}
.luce-barre form{display:flex;align-items:center;gap:10px;background:#0f2b35;border:1px solid rgba(214,255,143,.2);border-radius:16px;padding:8px 8px 8px 12px;box-shadow:0 12px 30px rgba(6,16,26,.28)}
.luce-barre img{width:34px;height:38px;object-fit:contain;flex:none;filter:drop-shadow(0 0 8px rgba(170,255,110,.35))}
.luce-barre input{flex:1;min-width:0;min-height:44px;border:0;border-radius:11px;background:#17404c;color:#fff;padding:0 14px}
.luce-barre input::placeholder{color:rgba(255,255,255,.7)}
.luce-barre input:focus{outline:2px solid rgba(214,255,143,.6);outline-offset:0}
.luce-barre .b-principal{min-height:44px;white-space:nowrap}
@media (max-width:760px){.luce-barre{display:none}}

/* Fiche session par volets (08/10) : l'etape en cours ouverte, le reste replie sur une ligne de resume */
.f-sous{margin:4px 0 0;font-size:14px;color:var(--txt2)}
.f-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}
.tete-session{gap:14px}
.tete-session .boutons{margin:0}
.volet > h3{cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;user-select:none}
.volet > h3::before{content:"";width:8px;height:8px;border-right:2px solid var(--txt3);border-bottom:2px solid var(--txt3);transform:rotate(45deg) translateY(-3px);transition:transform .15s;flex-shrink:0;align-self:center}
.volet.replie > h3::before{transform:rotate(-45deg)}
.volet > h3:hover,.volet > h3:focus-visible{color:var(--txt)}
.volet.replie{padding-top:12px;padding-bottom:12px}
.volet.replie > :not(h3){display:none !important}
.volet.replie > h3::after{content:attr(data-resume);font-size:14px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--txt2)}
@media (prefers-reduced-motion: reduce){.volet > h3::before{transition:none}}
.repliable:not(.montre){display:none}
.volet .repliable.montre ~ .plie-seul,.plie-seul:has(+ .repliable.montre){display:none}
.plie-seul{justify-self:start}
.volet.replie > h3.manque::after{color:var(--or-fonce);font-weight:600}
.barre-enregistrer{position:sticky;bottom:0;z-index:2;background:var(--fond);padding:10px 0;margin:0;display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--bord)}

/* Tous les reglages (08/10) */
.titre-champ{font-weight:700;font-size:15px}
.rg-liste{display:grid;gap:12px}
.porte h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.porte .indic{margin:0}
.lignes-reglages{display:grid}
.ligne-reglage{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--bord);padding:11px 2px;font:inherit;color:var(--txt);cursor:pointer}
.ligne-reglage:first-child{border-top:0}
.lr-txt{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.ligne-reglage .fleche{color:var(--txt3);font-size:18px;line-height:1}
.ligne-reglage:hover,.ligne-reglage:focus-visible{background:var(--survol)}
.barre-enregistrer > .b-principal{margin:0}
.barre-enregistrer{justify-content:flex-start}
.fiche{grid-template-columns:minmax(0,1fr)}
.bloc{grid-template-columns:minmax(0,1fr)}
.tx-si,.tx-fin,.tx-champ{white-space:normal;overflow-wrap:anywhere}
.indic.attente{color:var(--or-fonce);font-weight:600;margin:0 0 10px}
.autres-actions{margin-top:16px;border-top:1px solid var(--trait,rgba(0,0,0,.1));padding-top:12px}.autres-actions summary{cursor:pointer;font-weight:600}
/* Envoi des mails : trois choix (Reglages > Comptes, demarrage guide) */
.options-envoi{display:grid;gap:8px;margin:4px 0 12px}
.option-envoi{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--bord);border-radius:12px;cursor:pointer;background:var(--champ)}
.option-envoi input{width:auto !important;margin-top:3px}
.option-envoi b{display:block;font-size:15px}
.option-envoi .sous{display:block}
.option-envoi.choisie{border-color:var(--luce);box-shadow:0 0 0 1px var(--luce) inset}
.statut-pastille{font-style:normal;font-size:12px;font-weight:600;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--luce);color:var(--sur-luce)}
.detail-envoi{margin-bottom:8px}
/* Page d'inscription */
.inscription form{width:min(460px,100%)}
.ins-luce{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;background:var(--date-fond);border:1px solid var(--date-bord)}
.ins-luce img{flex:none}
.entree .ins-luce p{color:var(--txt);font-size:14px}
#ins-champs{display:grid;gap:12px}
.ins-ligne{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.entree .ins-trouve,.entree .ins-adresse{font-size:13px;margin-top:-4px}
.entree .ins-trouve:empty,.entree .ins-adresse:empty{display:none}
.entree .ins-bas{font-size:13px;text-align:center}
@media (max-width:420px){.ins-ligne{grid-template-columns:1fr}}
/* Demarrage guide */
.dm-etapes{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.dm-etapes button{border:1px solid var(--bord);background:var(--champ);color:var(--txt2);border-radius:999px;padding:5px 11px;font-size:13px;cursor:pointer}
.dm-etapes .faite button{color:var(--txt)}
.dm-etapes .faite button::before{content:"\2713  ";color:var(--luce-texte, var(--txt))}
.dm-etapes .en-cours button{background:var(--luce);border-color:var(--luce);color:var(--sur-luce);font-weight:600}
.dm-luce{display:flex;gap:12px;align-items:center;padding:12px 14px;margin-bottom:12px;border-radius:14px;background:var(--date-fond);border:1px solid var(--date-bord)}
.dm-luce img{flex:none}.dm-luce p{margin:0}
/* Conditions d'utilisation et politique de confidentialite */
body.legal{background:var(--fond)}
.doc-legal{max-width:760px;margin:0 auto;padding:32px 16px 60px;color:var(--txt);font-size:15.5px;line-height:1.65}
.doc-legal h1{font-family:var(--titre);font-size:28px;margin:8px 0 12px}
.doc-legal h2{font-family:var(--titre);font-size:18px;margin:28px 0 6px}
.doc-legal ul{padding-left:20px}.doc-legal li{margin:4px 0}
.legal-marque a{font-family:var(--titre);font-weight:700;color:var(--txt);text-decoration:none}
.legal-chapeau{color:var(--txt2)}
.legal-pied{margin-top:40px;font-size:13px;color:var(--txt2)}
.a-completer{background:#ffe08a;color:#3a2a00;padding:0 4px;border-radius:4px}
.entree label.ins-cgu{display:flex;gap:10px;align-items:flex-start;font-size:13px;font-weight:400;color:var(--txt2)}
.entree label.ins-cgu input{width:auto;padding:0;margin-top:2px;flex:none}
.ins-cgu a,.doc-legal a{color:var(--txt);text-decoration:underline}
