:root{--rose:#b5838d;--rose-f:#6d4c56;--creme:#fbf7f4;--gris:#8a8186;--vert:#2f7d5b;--rouge:#b3412f;--bord:#e8dfdb}
*{box-sizing:border-box}body{margin:0;font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--creme);color:#3a3035}
header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--bord);position:sticky;top:0;z-index:5}
.marque{font-weight:700;font-size:20px;color:var(--rose-f)}.marque span{font-weight:400;color:var(--gris);font-size:15px}
.qui{font-size:13px;color:var(--gris)}.qui select{margin-left:6px}
select,input{font:inherit;padding:6px 8px;border:1px solid var(--bord);border-radius:8px;background:#fff}
.demo{background:#f3e9e4;color:var(--rose-f);font-size:13px;padding:6px 16px;text-align:justify}
nav{display:flex;gap:4px;overflow-x:auto;padding:8px 12px;background:#fff;border-bottom:1px solid var(--bord)}
nav button{background:none;border:0;padding:8px 12px;border-radius:20px;color:var(--gris);white-space:nowrap;cursor:pointer;font:inherit}
nav button.actif{background:var(--rose);color:#fff}
.pastille{background:var(--rouge);color:#fff;border-radius:10px;padding:0 6px;font-size:12px}
main{padding:12px 16px 60px;max-width:1150px;margin:auto}
button{font:inherit;background:var(--rose-f);color:#fff;border:0;border-radius:8px;padding:8px 14px;cursor:pointer}
button.sec{background:#fff;color:var(--rose-f);border:1px solid var(--rose)}button.lien{background:none;color:var(--rose-f);text-decoration:underline;padding:0 4px}
.navsem{display:flex;align-items:center;gap:10px;margin:6px 0 10px}.navsem button:not(.lien){background:#fff;color:var(--rose-f);border:1px solid var(--bord);padding:4px 12px}
.aide{color:var(--gris);font-size:13px;text-align:justify;hyphens:auto}
.tablewrap{overflow-x:auto;background:#fff;border:1px solid var(--bord);border-radius:12px}
table.grille{border-collapse:collapse;width:100%;font-size:13px}
.grille th,.grille td{border-bottom:1px solid var(--bord);padding:6px 6px;text-align:center;vertical-align:top}
.grille thead th{background:#faf4f1;color:var(--rose-f);font-weight:600}
.grille tbody th{text-align:left;white-space:nowrap}.grille small{display:block;color:var(--gris);font-weight:400;font-size:11px}
.grille td[data-edit],.grille td[data-plan]{cursor:pointer;min-width:84px}
td.prevu{color:#b9aeb3;font-style:italic}td.saisi{background:#fff8e6}td.valide{background:#eef7f1}td.prevu-p{background:#f8f1ee}
.plus-c{color:#d5c7c1}
.ecart{display:block;font-size:11px;font-weight:600;color:var(--rose-f)}
.plus{color:var(--vert);font-weight:600}.moins{color:var(--rouge);font-weight:600}.ok{color:var(--vert);font-size:12px}
.alerte{color:var(--rouge);font-size:12px}
.cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:10px}
.carte{background:#fff;border:1px solid var(--bord);border-radius:14px;padding:14px}
.carte.refusee,.carte.acceptee{opacity:.7}.carte .nom{font-weight:700;color:var(--rose-f);margin-bottom:6px}
.carte .note{font-style:italic;margin:4px 0}.carte .etat{font-size:13px;color:var(--gris);margin-top:4px}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.compteur{text-align:center}.gros{font-size:32px;font-weight:700;margin:4px 0}.compteur.grand{max-width:420px;margin:10px auto}
.compteur details{text-align:left;font-size:13px;margin-top:8px}
.provisoire{display:inline-block;background:#fff1d6;color:#8a5a00;border-radius:6px;padding:1px 6px;font-size:11px;font-weight:600}
table.mini{width:100%;font-size:14px;margin:6px 0}table.mini td:last-child{text-align:right;font-weight:600}
.ligne{margin:8px 0;font-size:14px}.ligne input{width:70px}
.jours{display:grid;gap:10px}.jour{background:#fff;border:1px solid var(--bord);border-radius:14px;padding:12px}
.jour.aujourdhui{border:2px solid var(--rose)}.jour.valide{background:#f4faf6}.jour .j{font-weight:700;text-transform:capitalize;color:var(--rose-f)}
.jour .prevu{color:var(--gris);font-size:13px}.jour .reel{margin-top:4px}
.bilan{position:sticky;bottom:0;background:#fff;border:1px solid var(--bord);border-radius:14px;padding:12px;margin-top:12px;text-align:center}
.form{display:grid;gap:8px}.form label,.boite label{display:flex;flex-direction:column;font-size:13px;color:var(--gris);gap:3px}
.voile{position:fixed;inset:0;background:rgba(40,25,30,.35);display:flex;align-items:flex-end;justify-content:center;z-index:10}
.boite{background:#fff;border-radius:18px 18px 0 0;padding:18px;width:100%;max-width:460px;display:grid;gap:10px}
@media(min-width:700px){.voile{align-items:center}.boite{border-radius:18px}}
h3{color:var(--rose-f);margin:18px 0 6px}
@media print{header,nav,.demo,button{display:none!important}}
.connexion{max-width:360px;margin:12vh auto;padding:24px;background:#fff;border:1px solid var(--bord);border-radius:18px}
.connexion .marque{text-align:center;margin-bottom:16px}.erreur{color:var(--rouge);font-size:13px;min-height:1em}
tr.moi th,tr.moi td{background:#f8f1ee;font-weight:600}
.qui .lien{font-size:13px}
.chargement{padding:20px}
/* communication */
.cartes.larges{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}
.carte .tete{margin-bottom:2px}.carte .texte{white-space:pre-line;text-align:justify;hyphens:auto;margin:6px 0}
.texte .inter{display:block;color:var(--rose-f);margin-top:6px}
.carte.alire{border:2px solid var(--rose)}.carte.importante{border-left:5px solid var(--rouge)}
.carte.clos,.carte.tache.faite{opacity:.75}
.etiq{display:inline-block;background:#fbe3df;color:var(--rouge);border-radius:6px;padding:0 6px;font-size:11px;font-weight:600;vertical-align:middle}
.etiq.relance{background:#fff1d6;color:#8a5a00}
details summary{cursor:pointer;color:var(--rose-f);font-size:13px}
.lectures{margin-top:8px;font-size:13px}.qui-lu{display:flex;flex-wrap:wrap;gap:4px 10px;margin:4px 0 6px}
.qui-lu .lu{color:var(--vert)}.qui-lu .paslu{color:var(--rouge)}.qui-lu small{color:var(--gris)}
.msg{border-top:1px solid var(--bord);padding-top:4px;margin-top:6px}.msg.suite{margin-left:12px}
.repondre{display:flex;gap:6px;margin-top:8px}.repondre input{flex:1;min-width:0}
textarea{font:inherit;padding:6px 8px;border:1px solid var(--bord);border-radius:8px;background:#fff;resize:vertical}
.boite.large{max-width:620px}.boite label.case{flex-direction:row;align-items:center;gap:8px;color:#3a3035}
.replie{margin-top:14px}ul.rappel{margin:4px 0;padding-left:20px}
label.coche{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-top:1px solid var(--bord);cursor:pointer;font-size:14px}
label.coche:first-of-type{border-top:0}label.coche input{width:20px;height:20px;margin-top:1px;flex:none;accent-color:var(--vert)}
label.coche span{flex:1}label.coche.faite span{color:var(--gris)}label.coche small{display:block}
.evt{font-size:12px;color:var(--gris);font-style:italic;margin-top:4px}
.suivi{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0}.suivi label{display:flex;flex-direction:column;font-size:12px;color:var(--gris);gap:2px}
.decision{border-radius:8px;padding:6px 8px;font-size:13px;margin:6px 0;background:#f3eef0}.decision.retenue{background:#eef7f1}.decision.ecartee{background:#f6eeee}
.theme h3 small{font-weight:400}
.navsem button:disabled{opacity:.4}
table.achats td,.grille.produits td{text-align:left}td.nb{text-align:right!important;white-space:nowrap}
tr.retire td{color:var(--gris);text-decoration:line-through}tr.retire td:last-child{text-decoration:none}
p.bilan{position:static}
.form label.case{flex-direction:row;align-items:center;gap:8px}.qui #sortir{margin-left:6px;padding:6px 12px}
/* ventes et primes */
input.vt{width:90px;padding:6px;text-align:right}.saisie-ventes td,.tdb td,.evo td{white-space:nowrap}
table.grille tr.total td{font-weight:600;border-top:2px solid var(--bord)}
table.primes td:first-child,.tdb td:first-child,.saisie-ventes td:first-child,.evo td:first-child{text-align:left}
.form.ligne{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin:12px 0}
.carte.recap{margin-bottom:14px}.carte.recap table.mini td:first-child{text-align:left;font-weight:400}
@media print{body:has(#fenetre .voile) main{display:none}.voile{position:static;background:none}.boite{box-shadow:none;max-width:none}}
/* onglets rangés par catégorie */
nav.categories{background:var(--rose-f);border-bottom:0;gap:6px}
nav.categories button{color:#f3e6ea;font-weight:600}nav.categories button.actif{background:#fff;color:var(--rose-f)}
nav.sous{background:#fff}
/* espace de chacune (30/10/2026) */
.marque{display:flex;align-items:center;gap:10px}.marque img{height:30px;width:auto;display:block}
.marque span{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--gris);font-weight:600}
.connexion .marque{justify-content:center;flex-direction:column;gap:6px}.connexion .marque img{height:44px}
button.cloche{background:none;color:var(--rose-f);padding:2px 6px;font-size:18px}
.notifs{display:grid;gap:6px;max-height:60vh;overflow:auto}
button.notif{background:#fff;color:#3a3035;border:1px solid var(--bord);text-align:left;display:block;width:100%}
button.notif.nonvue{border-color:var(--rose);background:#fbf3f5}button.notif small{display:block;color:var(--gris);font-size:11px}
.carte.retour.negatif{border-left:5px solid var(--rouge)}.carte.retour.positif{border-left:5px solid var(--vert)}.carte.retour.atelier{border-left:5px solid #c9a227}
.ligne-parcours{font-size:14px;padding:3px 0}.etape{padding:6px 0;border-bottom:1px solid var(--bord)}
.boite.defile{max-height:90vh;overflow:auto}.etape-ed{border-bottom:1px solid var(--bord);padding-bottom:8px;display:grid;gap:6px}
table.echeances td{text-align:left}table.echeances td small{display:block;color:var(--gris)}
tr.proche td{background:#fff6e6}tr.depassee td{background:#fbe9e6}tr.faite td{color:var(--gris)}

/* Poste de l'accueil : choix du prénom avant chaque geste */
.prenoms { display: flex; flex-wrap: wrap; gap: .5rem; margin: .8rem 0; }
.prenoms button { font-size: 1.05rem; padding: .7rem 1.1rem; }
