/*
  Keriou Pro — dérivé d'"Ardoise & Ajonc" (Keriou) : ardoise pour l'encre,
  jaune ajonc pour ce qui demande l'attention maintenant (RDV en cours,
  demi-journées, jour courant). Atkinson Hyperlegible : lisible en plein
  soleil sur un chantier. Aucune couleur hors de ces jetons.
*/
:root{
  color-scheme:light;
  --bg:#ecebe4;
  --surface:#fbfaf6;
  --panel:#f3f2ec;
  --line:#d9d5c8;
  --ink:#243840;
  --ink-soft:#5a676b;
  --accent:#2c3e46;
  --on-accent:#fbfaf6;
  --gorse:#e8c34a;
  --on-gorse:#2c3e46;
  --gorse-weak:#f6ecc6;
  --gorse-ink:#5b4600;
  --ok:#2f7a4f;
  --ok-weak:#dcefe3;
  --warn:#a83e24;
  --warn-weak:#f7e2dc;
  --shadow:rgba(20,30,34,.35);
  --font-display:'Fraunces', Georgia, serif;
  --font-body:'Atkinson Hyperlegible', -apple-system, "Segoe UI", Roboto, sans-serif;
  --fw-titre:600;
  --fw-marque:700;
  --r:14px;
  --r-btn:10px;
  --bw:1px;
}
:root[data-mode="nuit"]{
  color-scheme:dark;
  --bg:#141c1f; --surface:#1f2a2e; --panel:#1a2427; --line:#33434a;
  --ink:#eae7de; --ink-soft:#9aa8ac; --accent:#e8c34a; --on-accent:#1b2528;
  --gorse-weak:#3a3420; --gorse-ink:#f1d77e;
  --ok:#7cc49a; --ok-weak:#1f3328; --warn:#e3a08c; --warn-weak:#3a221c; --shadow:rgba(0,0,0,.6);
}

/* ---------- Thèmes au choix (Réglages › Apparence) ----------
   Chacun ne redéfinit que les jetons ci-dessus ; data-theme est posé sur
   <html> par commun.js. Sans attribut, c'est Ardoise & Ajonc.
   Chaque thème a sa variante nuit, [data-mode="nuit"], posée par commun.js
   selon le réglage de l'appareil (Réglages › Jour / nuit) ou, en
   automatique, selon celui du téléphone. */

/* Cuivre & Vert anglais : le cuivre des tubes sur un vert d'atelier. */
:root[data-theme="cuivre"]{
  --bg:#e7ebe4; --surface:#fafbf8; --panel:#f0f2ec; --line:#cfd6cb; --ink:#1c3129; --ink-soft:#55675f;
  --accent:#1f4a3a; --on-accent:#fafbf8; --gorse:#c8703a; --on-gorse:#1d1209; --gorse-weak:#f5e0cf; --gorse-ink:#7a3a12;
  --ok:#3b7d3f; --ok-weak:#dcefdc; --warn:#a83224; --warn-weak:#f5dcd6;
  --font-display:'Zilla Slab', Rockwell, Georgia, serif; --fw-titre:700; --fw-marque:700; --r:12px; --r-btn:8px;
}
:root[data-theme="cuivre"][data-mode="nuit"]{
  --bg:#101a16; --surface:#1a2722; --panel:#15201c; --line:#2f4039; --ink:#e8eee9; --ink-soft:#9aaba3;
  --accent:#e0955e; --on-accent:#1a120b; --gorse-weak:#3b2718; --gorse-ink:#f0b88c;
  --ok:#7fcf8a; --ok-weak:#183020; --warn:#ec9a8c; --warn-weak:#3b1f1a;
}

/* Chaud & Froid : le bleu du froid, l'orange du chaud, titres étroits. */
:root[data-theme="chaud-froid"]{
  --bg:#e5e9ef; --surface:#fbfcfd; --panel:#eef1f5; --line:#cdd5df; --ink:#16223a; --ink-soft:#546079;
  --accent:#1f3f8f; --on-accent:#ffffff; --gorse:#f26a1b; --on-gorse:#1a0f07; --gorse-weak:#fde3d2; --gorse-ink:#8a3300;
  --ok:#1f7a4a; --ok-weak:#d9efe2; --warn:#b3261e; --warn-weak:#f8dcd9;
  --font-display:'Barlow Condensed', 'Arial Narrow', sans-serif; --fw-titre:700; --fw-marque:700; --r:10px; --r-btn:8px;
}
:root[data-theme="chaud-froid"][data-mode="nuit"]{
  --bg:#0d1423; --surface:#172137; --panel:#121b2e; --line:#2a3753; --ink:#e7ecf5; --ink-soft:#93a0ba;
  --accent:#8fb0ff; --on-accent:#0d1423; --gorse-weak:#3b2414; --gorse-ink:#ffb183;
  --ok:#6fcf97; --ok-weak:#173026; --warn:#f19a8f; --warn-weak:#3a1c1a;
}
[data-theme="chaud-froid"] h1,[data-theme="chaud-froid"] h2,[data-theme="chaud-froid"] .top .marque{text-transform:uppercase;letter-spacing:.02em}
[data-theme="chaud-froid"] h1{font-size:29px}
[data-theme="chaud-froid"] h2{font-size:22px}
[data-theme="chaud-froid"] .top .marque{font-size:21px}

/* Chantier : noir et jaune de signalisation, traits de 2 px, angles vifs.
   Le plus lisible en plein soleil. */
:root[data-theme="chantier"]{
  --bg:#f1f0ea; --surface:#ffffff; --panel:#ebeae3; --line:#1d1d1b; --ink:#111110; --ink-soft:#45443f;
  --accent:#111110; --on-accent:#ffd400; --gorse:#ffd400; --on-gorse:#111110; --gorse-weak:#fff1a0; --gorse-ink:#433700;
  --ok:#00703c; --ok-weak:#d4f0de; --warn:#c8102e; --warn-weak:#fbd9de;
  --font-display:'Archivo Black', 'Arial Black', sans-serif; --fw-titre:400; --fw-marque:400; --r:4px; --r-btn:3px; --bw:2px;
}
:root[data-theme="chantier"][data-mode="nuit"]{
  --bg:#0b0b0a; --surface:#171716; --panel:#111110; --line:#5c5b53; --ink:#f6f5ee; --ink-soft:#b8b6aa;
  --accent:#ffd400; --on-accent:#111110; --gorse-weak:#3a3200; --gorse-ink:#ffe25c;
  --ok:#5fd394; --ok-weak:#10301f; --warn:#ff7b8a; --warn-weak:#3d1218;
}
[data-theme="chantier"] h1,[data-theme="chantier"] h2,[data-theme="chantier"] .top .marque{text-transform:uppercase}
[data-theme="chantier"] h1{font-size:22px}
[data-theme="chantier"] .top .marque{font-size:16px}
[data-theme="chantier"] .rdv-principal{box-shadow:6px 6px 0 var(--gorse)}
[data-theme="chantier"] .tabbar a[aria-current="page"]{background:var(--gorse);color:var(--on-gorse)}
[data-theme="chantier"] :focus-visible{outline-color:var(--ink)}

*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.45;min-height:100vh;-webkit-text-size-adjust:100%}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--gorse);outline-offset:2px}
[hidden]{display:none!important}
.num{font-variant-numeric:tabular-nums}
.soft{color:var(--ink-soft)}
.petit{font-size:13.5px}

/* ---------- Cadre de l'appli ---------- */
.top{position:sticky;top:0;z-index:10;background:var(--surface);border-bottom:var(--bw) solid var(--line);padding:calc(env(safe-area-inset-top,0px) + 10px) 16px 10px;display:flex;align-items:center;gap:12px}
.top .marque{font-family:var(--font-display);font-weight:var(--fw-marque);font-size:19px;line-height:1.1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top .qui{font-size:13px;color:var(--ink-soft)}
.hors-ligne.attente{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 10px}
.hors-ligne.attente .btn{min-height:32px;padding:4px 10px;font-size:13px}
.hors-ligne{background:var(--gorse-weak);color:var(--gorse-ink);font-size:13.5px;font-weight:700;padding:6px 16px;text-align:center}
main{max-width:760px;margin:0 auto;padding:16px 16px calc(96px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:12px}
main.large{max-width:1280px}

.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:10;display:grid;grid-template-columns:repeat(var(--nb-onglets,3),1fr);background:var(--surface);border-top:var(--bw) solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px)}
.tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 10px;font-size:12px;color:var(--ink-soft);text-decoration:none;position:relative}
.tabbar a[aria-current="page"]{color:var(--ink);font-weight:700}
.tabbar a[aria-current="page"]::before{content:"";position:absolute;top:0;left:30%;right:30%;height:3px;border-radius:0 0 3px 3px;background:var(--gorse)}
.tabbar svg,.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.pastille{position:absolute;top:4px;left:calc(50% + 6px);background:var(--warn);color:var(--surface);font-size:10.5px;font-weight:700;border-radius:999px;min-width:17px;height:17px;display:grid;place-items:center;padding:0 4px}

/* ---------- En-têtes de vue ---------- */
.entete{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 12px}
.entete .sur{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-weight:700}
h1,h2{font-family:var(--font-display);font-weight:var(--fw-titre);margin:0;line-height:1.2;text-wrap:balance}
h1{font-size:25px}
h2{font-size:19px}
.nav-jour{display:flex;gap:6px}

/* ---------- Boutons, puces ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:var(--bw) solid var(--line);background:var(--surface);border-radius:var(--r-btn);padding:8px 12px;font-size:14.5px;font-weight:700;cursor:pointer;text-decoration:none;min-height:44px}
.btn:hover{border-color:var(--ink-soft)}
.btn:disabled{opacity:.5;cursor:default}
.btn.primaire{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.btn.ajonc{background:var(--gorse);color:var(--on-gorse);border-color:var(--gorse)}
.btn.danger{color:var(--warn)}
.btn.bloc{width:100%}
.btn.compact{min-height:36px;padding:6px 10px;font-size:13.5px}
.btn svg{width:17px;height:17px}
.btn[aria-pressed="true"].coche{background:var(--ok-weak);color:var(--ok);border-color:var(--ok)}
.tag{display:inline-block;font-size:12px;font-weight:700;border-radius:6px;padding:2px 7px;background:var(--panel);color:var(--ink-soft);border:var(--bw) solid var(--line);white-space:nowrap}
.tag.urgent{background:var(--warn-weak);color:var(--warn);border-color:transparent}
.tag.contrat{background:var(--ok-weak);color:var(--ok);border-color:transparent}
.tag.demi{background:var(--gorse-weak);color:var(--gorse-ink);border-color:transparent}
.rangee{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.deux{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.trois{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}

/* ---------- Cartes ---------- */
.carte{background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:8px}
.carte h3{margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.vide{text-align:center;color:var(--ink-soft);padding:28px 16px;border:var(--bw) dashed var(--line);border-radius:var(--r)}

/* Tournée */
.rdv-principal{background:var(--surface);border:calc(var(--bw) + 1px) solid var(--gorse);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:10px}
.rdv-heure{font-weight:700;font-size:22px;line-height:1.15;text-decoration:none}
.rdv-client{font-weight:700;font-size:19px;text-decoration:none}
.rdv-objet{color:var(--ink-soft);font-size:15px}
.rdv-acces{font-size:14px;background:var(--panel);border-radius:8px;padding:8px 10px}
.avancement{display:flex;align-items:center;gap:10px}
.avancement .barre{flex:1}
.titre-liste{margin:4px 0 0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.liste-rdv{display:flex;flex-direction:column;background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--r);overflow:hidden}
.ligne-rdv{display:grid;grid-template-columns:70px minmax(0,1fr) 18px;gap:10px;align-items:center;padding:12px 14px;border:0;border-top:var(--bw) solid var(--line);background:none;text-align:left;text-decoration:none;width:100%;cursor:pointer;min-height:56px}
.ligne-rdv:first-child{border-top:0}
.ligne-rdv:hover{background:var(--panel)}
.ligne-rdv .h{font-weight:700;font-size:15px;line-height:1.25}
.ligne-rdv .sous{font-size:14px;color:var(--ink-soft)}
.ligne-rdv .ic{color:var(--ink-soft)}
.ligne-rdv.fait > span:first-child,.ligne-rdv.fait b{opacity:.65}
.ligne-rdv.fait b{text-decoration:line-through}
details.termines summary{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--ink-soft);min-height:44px;cursor:pointer;list-style:none}
details.termines summary::-webkit-details-marker{display:none}
details.termines summary::after{content:"Afficher";margin-left:auto;font-weight:400;font-size:14px}
details.termines[open] summary::after{content:"Masquer"}
.etat{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:2px 9px;background:var(--gorse);color:var(--on-gorse);white-space:nowrap}
.etat.calme{background:var(--panel);color:var(--ink);border:var(--bw) solid var(--line)}
.barre{display:block;height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.barre i{display:block;height:100%;width:0;background:var(--ok);border-radius:3px}

/* Aujourd'hui (patron) */
.a-traiter{background:var(--gorse-weak);color:var(--gorse-ink);border-radius:var(--r);padding:2px 14px;display:flex;flex-direction:column}
a.ligne.a-traiter{padding:0 12px;border-radius:var(--r-btn);font-size:14.5px}
.ligne{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;text-decoration:none;color:inherit;border:0;background:none;width:100%;text-align:left;cursor:pointer;padding:6px 0}
.a-traiter .ligne + .ligne{border-top:var(--bw) solid color-mix(in srgb,var(--gorse-ink) 18%,transparent)}
.entete-section{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:4px}
.carte.tech{text-decoration:none;gap:9px}
.carte.tech:hover{border-color:var(--ink-soft)}
.carte.tech .nom{font-size:16.5px}
.etat-ligne{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:15px}
.alerte-ligne{display:flex;gap:6px;align-items:center;color:var(--warn);font-size:13.5px;font-weight:700}
.alerte-ligne .ic{width:16px;height:16px}
.carte.pointilles{border-style:dashed;background:none}
.btn.grand{min-height:52px;font-size:16px}
.btn.nu{border-color:transparent;background:none}
.btn.rouge{background:var(--warn);color:var(--surface);border-color:var(--warn)}
.btn.gauche{align-self:flex-start}

/* Fenêtre de confirmation et feuille du bas */
dialog{color:var(--ink);font-family:var(--font-body)}
dialog::backdrop{background:rgba(20,30,34,.5)}
.dialogue{border:0;border-radius:calc(var(--r) + 2px);padding:20px;width:min(420px,calc(100vw - 32px));background:var(--surface);box-shadow:0 16px 48px -12px var(--shadow)}
.dialogue h2{font-size:21px;margin-bottom:10px}
.dialogue p{margin:0 0 10px}
.dialogue .deux{margin-top:14px}
.feuille{border:0;padding:0;margin:auto auto 0;width:100%;max-width:640px;max-height:94vh;max-height:94dvh;border-radius:20px 20px 0 0;background:var(--surface);box-shadow:0 -12px 40px -12px var(--shadow)}
.feuille-corps{display:flex;flex-direction:column;max-height:94vh;max-height:94dvh}
.feuille-tete{padding:8px 16px 0;display:flex;flex-direction:column;gap:4px;flex:none}
.poignee{width:40px;height:5px;border-radius:3px;background:var(--line);align-self:center;margin-bottom:6px}
.feuille-tete h2{font-size:21px}
.feuille-contenu{flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:16px}
.feuille-pied{padding:12px 16px calc(16px + env(safe-area-inset-bottom,0px));border-top:var(--bw) solid var(--line);display:flex;flex-direction:column;gap:6px;flex:none}
.aide.centre{text-align:center}
.tuiles{display:flex;flex-wrap:wrap;gap:8px}
.tuile{position:relative;width:78px;height:78px;border-radius:var(--r-btn);overflow:hidden;background:var(--panel);display:block}
.tuile img{width:100%;height:100%;object-fit:cover;display:block}
.tuile.ajout{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:var(--bw) dashed var(--line);font-size:12.5px;font-weight:700;cursor:pointer;background:var(--surface)}
.tuile.ajout:hover{border-color:var(--ink-soft)}
.tuile .retirer{position:absolute;top:3px;right:3px;width:26px;height:26px;border-radius:999px;border:0;background:rgba(20,30,34,.7);color:#fff;display:grid;place-items:center;cursor:pointer;padding:0}
.tuile .retirer .ic{width:14px;height:14px}

/* Fiche client */
.kv{display:flex;justify-content:space-between;gap:8px;align-items:center}
.historique{display:flex;flex-direction:column}
.hist{display:grid;grid-template-columns:84px 1fr;gap:10px;padding:10px 0;border-top:var(--bw) solid var(--line);font-size:14.5px}
.hist:first-child{border-top:0;padding-top:0}
.hist .date{color:var(--ink-soft);font-size:13px}
.photos{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.photos img{width:72px;height:56px;object-fit:cover;border-radius:6px;border:var(--bw) solid var(--line);background:var(--panel)}
.photos a{display:block}

/* Listes */
.liste{display:flex;flex-direction:column;background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--r);overflow:hidden}
.liste a{display:flex;justify-content:space-between;gap:10px;padding:12px 14px;border-top:var(--bw) solid var(--line);text-decoration:none}
.liste a:first-child{border-top:0}
.liste a:hover{background:var(--panel)}
.liste .sous{font-size:13.5px;color:var(--ink-soft)}

/* Formulaires */
form.carte{gap:12px}
.champ{display:flex;flex-direction:column;gap:5px}
.champ label,.champ .lbl{font-size:13.5px;font-weight:700;color:var(--ink-soft)}
.saisie{border:var(--bw) solid var(--line);background:var(--surface);border-radius:var(--r-btn);padding:10px 11px;font-size:16px;width:100%;min-height:44px}
textarea.saisie{resize:vertical;min-height:80px}
.segments{display:grid;grid-template-columns:repeat(4,1fr);border:var(--bw) solid var(--line);border-radius:var(--r-btn);overflow:hidden;background:var(--surface)}
.segments button{border:0;background:none;padding:10px 2px;font-size:13.5px;font-weight:700;cursor:pointer;border-left:var(--bw) solid var(--line);min-height:44px}
.segments button:first-child{border-left:0}
.segments button[aria-pressed="true"]{background:var(--accent);color:var(--on-accent)}
.puces{display:flex;flex-wrap:wrap;gap:6px}
a.puce{text-decoration:none;display:inline-flex;align-items:center}
.puce{border:var(--bw) solid var(--line);background:var(--surface);border-radius:999px;padding:7px 13px;font-size:14px;font-weight:700;cursor:pointer;min-height:38px}
.puce[aria-pressed="true"],.puce[aria-current="true"]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.case{display:flex;gap:10px;align-items:flex-start;font-size:14.5px}
.case input{margin-top:4px;width:18px;height:18px;accent-color:var(--ok)}
.alerte{border-radius:var(--r-btn);padding:9px 11px;font-size:14px;background:var(--warn-weak);color:var(--warn);font-weight:700}
.info{border-radius:var(--r-btn);padding:9px 11px;font-size:14px;background:var(--ok-weak);color:var(--ok)}
.aide{font-size:13px;color:var(--ink-soft);margin:0}
.suggestions{display:flex;flex-direction:column;border:var(--bw) solid var(--line);border-radius:var(--r-btn);overflow:hidden}
.suggestions button{border:0;border-top:var(--bw) solid var(--line);background:var(--surface);text-align:left;padding:10px 12px;cursor:pointer}
.suggestions button:first-child{border-top:0}
.suggestions button:hover{background:var(--panel)}
.copie{display:flex;gap:6px}
.copie input{flex:1;min-width:0;font-size:13px}

fieldset.champ{border:0;margin:0;padding:0;min-width:0}
fieldset.champ label.case{font-weight:400;color:inherit;font-size:14.5px}
fieldset.champ legend{padding:0;margin-bottom:5px;font-size:13.5px;font-weight:700;color:var(--ink-soft)}

/* Réglages › Apparence */
.themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.choix-theme{display:flex;align-items:center;gap:10px;border:var(--bw) solid var(--line);border-radius:var(--r-btn);padding:10px 12px;cursor:pointer;background:var(--surface);line-height:1.3}
.choix-theme:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.choix-theme input{accent-color:var(--accent);width:18px;height:18px;margin:0;flex:none}
.nuances{display:flex;flex:none;border-radius:6px;overflow:hidden;border:1px solid var(--line)}
.nuances i{display:block;width:14px;height:28px}

/* Demandes */
.demande q{quotes:"« " " »";font-size:15px}

/* Planning */
.defile{overflow-x:auto;background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--r)}
.semaine{display:grid;grid-template-columns:120px repeat(var(--nb-jours,6),minmax(150px,1fr));min-width:calc(120px + var(--nb-jours,6) * 150px)}
.semaine > *{border-bottom:var(--bw) solid var(--line);border-left:var(--bw) solid var(--line);padding:8px;display:flex;flex-direction:column;gap:6px;min-height:64px}
.semaine .hd{background:var(--panel);font-weight:700;font-size:13.5px;min-height:0;text-decoration:none}
.semaine > div.auj{background:color-mix(in srgb,var(--gorse-weak) 40%,var(--surface))}
.semaine > div{position:relative}
.ajout-cellule{display:grid;place-items:center;min-height:28px;border:var(--bw) dashed var(--line);border-radius:8px;color:var(--ink-soft);opacity:0;text-decoration:none}
.semaine > div:hover .ajout-cellule,.ajout-cellule:focus-visible{opacity:1}
@media (hover:none){.ajout-cellule{opacity:.6}}
.semaine .hd.auj{background:var(--gorse-weak);color:var(--gorse-ink)}
.semaine .qui{border-left:0;font-weight:700;font-size:14px}
.semaine .qui small{font-weight:400;color:var(--ink-soft);font-size:12px}
.semaine .lien-absences{align-self:flex-start;min-height:28px;padding:2px 0;font-size:12.5px;font-weight:400;color:var(--ink-soft);text-decoration:underline}
.semaine > div.absent{background:repeating-linear-gradient(135deg,var(--panel) 0 8px,color-mix(in srgb,var(--line) 45%,var(--panel)) 8px 16px)}
.absence{font-size:12.5px;font-weight:700;color:var(--ink-soft);border-radius:6px;padding:4px 8px;background:var(--surface);border:var(--bw) dashed var(--line);align-self:flex-start}
.semaine > div.survol{outline:2px dashed var(--accent);outline-offset:-4px;background:var(--gorse-weak)}
.semaine a.blk[draggable="true"]{cursor:grab}
.liste-absences{display:flex;flex-direction:column;gap:10px}
.blk{border-radius:8px;padding:6px 8px;font-size:12.5px;line-height:1.3;border:var(--bw) solid var(--line);background:var(--panel);display:flex;flex-direction:column;gap:1px;text-decoration:none}
.blk:hover{border-color:var(--ink-soft)}
.blk .h{font-weight:700;font-variant-numeric:tabular-nums}
.blk.demi{background:var(--gorse-weak);border-color:transparent}
.blk.demi .h{color:var(--gorse-ink)}
.blk.urgent{border-left:4px solid var(--warn)}
.blk.chevauche{outline:2px solid var(--warn);outline-offset:-1px}
.blk.fait{opacity:.55}
.blk.annule{opacity:.5;text-decoration:line-through}
.legende{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;color:var(--ink-soft)}
.legende span{display:inline-flex;align-items:center;gap:6px}
.ech{width:14px;height:10px;border-radius:3px;display:inline-block;border:var(--bw) solid var(--line);background:var(--panel)}
.ech.demi{background:var(--gorse-weak);border-color:transparent}
.ech.chevauche{outline:2px solid var(--warn)}

/* Planning jour (téléphone) */
.bande-jours{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}
.bande-jours a{display:flex;flex-direction:column;align-items:center;padding:6px 0;border-radius:var(--r-btn);border:var(--bw) solid var(--line);background:var(--surface);text-decoration:none;font-size:12px;min-height:60px;line-height:1.25}
.bande-jours a b{font-size:17px}
.bande-jours a span:last-child{font-size:11.5px;color:var(--ink-soft)}
.bande-jours a.auj{background:var(--gorse-weak);color:var(--gorse-ink);border-color:transparent}
.bande-jours a[aria-current]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.bande-jours a[aria-current] span:last-child{color:inherit}
a.ligne.a-traiter{background:var(--gorse-weak);color:var(--gorse-ink)}
.colonnes{display:flex;gap:10px;overflow-x:auto;margin:0 -16px;padding:2px 16px 8px;scroll-snap-type:x mandatory;scroll-padding-inline:16px}
.colonne{flex:none;width:min(220px,62vw);display:flex;flex-direction:column;gap:6px;scroll-snap-align:start}
.colonne > .kv{padding:0 2px}
.colonne-vide{border:var(--bw) dashed var(--line);border-radius:8px;padding:14px 8px;text-align:center;font-size:13px;color:var(--ink-soft);text-decoration:none}
.colonne-vide:hover{border-color:var(--ink-soft)}
.blk .tag{font-size:10.5px;padding:0 5px}

/* Fiche client */
.retour{display:inline-flex;align-items:center;gap:4px;font-size:14px;color:var(--ink-soft);text-decoration:none;min-height:32px;align-self:flex-start;margin-bottom:-6px}
.retour .ic{width:16px;height:16px}
.trois.actions .btn{flex-direction:column;gap:2px;min-height:58px;font-size:13.5px;padding:6px 4px}
.a-savoir{background:var(--gorse-weak);color:var(--gorse-ink);border-radius:var(--r);padding:12px 14px;display:flex;flex-direction:column;gap:4px;font-size:14.5px}
.carte.prochain{flex-direction:row;align-items:center;justify-content:space-between;text-decoration:none;border:calc(var(--bw) + 1px) solid var(--gorse)}
.onglets-texte{display:flex;border-bottom:var(--bw) solid var(--line)}
.onglets-texte button{flex:1;border:0;background:none;min-height:44px;font-size:14.5px;color:var(--ink-soft);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:calc(-1 * var(--bw))}
.onglets-texte button[aria-selected="true"]{color:var(--ink);font-weight:700;border-bottom-color:var(--gorse)}
.pile{display:flex;flex-direction:column;gap:12px}
.pile.serree{gap:8px}
.carte.tableau{gap:0;padding:2px 14px}
.carte.tableau .kv{min-height:46px;border-top:var(--bw) solid var(--line);text-align:right}
.carte.tableau .kv:first-child{border-top:0}
.carte.tableau .kv span{text-align:left}

/* Nouveau RDV en étapes */
.etapes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:-4px}
.etapes i{height:4px;border-radius:2px;background:var(--line)}
.etapes i.fait{background:var(--gorse)}
.recherche{position:relative}
.recherche .ic{position:absolute;left:12px;top:13px;color:var(--ink-soft)}
.recherche .saisie{padding-left:38px}
.liste .ligne{padding:10px 14px;border-top:var(--bw) solid var(--line)}
.liste .ligne:first-child{border-top:0}
.liste .ligne:hover{background:var(--panel)}
.liste .ligne .sous{font-size:13.5px;color:var(--ink-soft)}
.ligne.nouveau{justify-content:flex-start;gap:8px;font-weight:700;background:var(--panel);border-radius:var(--r-btn);padding:10px 14px}
.choisi{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--r-btn);padding:4px 4px 4px 12px;min-height:46px}
.puces.petites .puce{min-height:34px;padding:4px 11px;font-size:13px}
.puce .charge{font-weight:400;font-size:12.5px;opacity:.85}
.jours-rapides{display:flex;gap:6px;overflow-x:auto;margin:0 -16px;padding:0 16px 2px}
.jours-rapides button{flex:none;display:flex;flex-direction:column;align-items:center;min-width:70px;padding:6px 10px;border-radius:var(--r-btn);border:var(--bw) solid var(--line);background:var(--surface);cursor:pointer;min-height:52px;font-size:14px;line-height:1.25}
.jours-rapides button span{font-size:12px}
.jours-rapides button[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.autre-date{display:flex;align-items:center;gap:10px}
.autre-date label{font-size:13.5px;color:var(--ink-soft);white-space:nowrap}
.autre-date .saisie{flex:1;min-width:0}
details.options{border-top:var(--bw) solid var(--line)}
details.options summary{display:flex;justify-content:space-between;align-items:center;min-height:48px;cursor:pointer;list-style:none}
details.options summary::-webkit-details-marker{display:none}
details.options[open] summary{margin-bottom:6px}
.pied-etapes{position:sticky;bottom:calc(66px + env(safe-area-inset-bottom,0px));display:flex;gap:8px;padding:10px 0;background:var(--bg);margin-top:4px}
.pied-etapes .btn{flex:1}
.pied-etapes #precedent{flex:0 0 110px}

/* Demandes */
.onglets-seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:var(--bw) solid var(--line);border-radius:var(--r-btn);overflow:hidden;background:var(--surface)}
.onglets-seg a{display:flex;align-items:center;justify-content:center;min-height:44px;font-weight:700;font-size:14px;text-decoration:none}
.onglets-seg a + a{border-left:var(--bw) solid var(--line)}
.onglets-seg a[aria-current]{background:var(--accent);color:var(--on-accent)}
.demande .nom{font-size:17px}
.rangee.haut{align-items:flex-start;flex-wrap:nowrap}
.rangee.haut .photos{margin:0;flex:none}
.actions-demande{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:8px}

/* Réglages */
.choix-liste{display:flex;flex-direction:column;gap:10px}
.sections{display:flex;flex-direction:column;background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--r);overflow:hidden}
details.section + details.section{border-top:var(--bw) solid var(--line)}
details.section > summary{display:grid;grid-template-columns:22px minmax(0,1fr) 18px;gap:12px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none;min-height:56px}
details.section > summary::-webkit-details-marker{display:none}
details.section > summary .sous{display:block;font-size:13.5px;color:var(--ink-soft)}
details.section > summary .ic:last-child{color:var(--ink-soft);transition:transform .15s}
details.section[open] > summary .ic:last-child{transform:rotate(90deg)}
details.section > summary:hover{background:var(--panel)}
.section-corps{padding:4px 14px 16px;display:flex;flex-direction:column;gap:12px}
.membre{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:var(--bw) solid var(--line)}
/* Réglages : liste des pages (téléphone), menu + page (ordinateur) */
.liste-reglages{display:flex;flex-direction:column;background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--r);overflow:hidden}
.liste-reglages a{display:grid;grid-template-columns:22px minmax(0,1fr) 18px;gap:12px;align-items:center;padding:11px 14px;text-decoration:none;min-height:48px}
.liste-reglages a + a{border-top:var(--bw) solid var(--line)}
.liste-reglages a:hover{background:var(--panel)}
.liste-reglages a[aria-current="page"]{background:var(--gorse-weak);color:var(--gorse-ink)}
.liste-reglages .sous{display:block;font-size:13.5px;color:var(--ink-soft)}
.liste-reglages a[aria-current="page"] .sous{color:inherit}
.liste-reglages .ic:last-child{color:var(--ink-soft)}
.reglages-grand{display:flex;flex-wrap:wrap;gap:28px;align-items:flex-start}
.reglages-menu{flex:1 1 260px;max-width:300px;display:flex;flex-direction:column;gap:10px}
.reglages-page{flex:999 1 480px;min-width:0;background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--r);padding:20px 22px}
.reglages-page > h2{font-size:22px}
.reglage-deux{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
.reglage-deux > *{flex:1 1 300px;min-width:0}
.interrupteurs{padding:0;gap:0}
.interrupteur{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:12px;align-items:center;padding:12px 14px;cursor:pointer}
.interrupteur + .interrupteur{border-top:var(--bw) solid var(--line)}
.interrupteur input{appearance:none;-webkit-appearance:none;width:46px;height:28px;border-radius:14px;background:var(--line);position:relative;cursor:pointer;margin:0;transition:background-color .15s}
.interrupteur input::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 2px var(--shadow);transition:transform .15s}
.interrupteur input:checked{background:var(--ok)}
.interrupteur input:checked::after{transform:translateX(18px)}
.apercu-email{background:#f2f1ec;border:1px solid #ddd9cd;border-radius:12px;padding:12px;color:#2c3e46;font-family:-apple-system,"Segoe UI",Helvetica,sans-serif;font-size:14px}
.apercu-cadre{background:#fbfaf6;border:1px solid #ddd9cd;border-radius:10px}
.apercu-tete{padding:12px 16px;border-bottom:4px solid #e8c34a;font-weight:700}
.apercu-corps{padding:16px;display:flex;flex-direction:column;gap:10px}
.apercu-titre{font-size:18px}
.apercu-rdv{background:#f2f1ec;border-radius:8px;padding:10px 12px}
.apercu-bouton{align-self:flex-start;background:#2c3e46;color:#fbfaf6;font-weight:700;padding:9px 14px;border-radius:8px}
/* Équipe */
.equipe-liste{display:flex;flex-direction:column;background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--r);overflow:hidden}
.membre-ligne{display:grid;grid-template-columns:minmax(0,1fr) auto 18px;grid-template-areas:"nom role chevron" "connexion connexion chevron";gap:2px 10px;align-items:center;padding:11px 14px;text-decoration:none}
.membre-ligne > span:first-child{grid-area:nom}
.membre-ligne .tag{grid-area:role}
.membre-ligne .connexion{grid-area:connexion;color:var(--ink-soft)}
.membre-ligne .ic{grid-area:chevron;color:var(--ink-soft)}
.membre-ligne + .membre-ligne{border-top:var(--bw) solid var(--line)}
.membre-ligne:hover{background:var(--panel)}
.membre-ligne.jamais{background:var(--gorse-weak)}
.membre-ligne.jamais .connexion{color:var(--warn);font-weight:700}
.membre-ligne.inactif{opacity:.6}
.tag.role-patron{background:var(--accent);color:var(--on-accent);border-color:transparent}
.tag.role-bureau{background:var(--gorse-weak);color:var(--gorse-ink);border-color:transparent}
@media (min-width:900px){
  .membre-ligne{grid-template-columns:minmax(0,1fr) 110px 230px 18px;grid-template-areas:"nom role connexion chevron"}
}
.membre:first-child{border-top:0;padding-top:0}
details.ajout-membre > summary{list-style:none;cursor:pointer}
details.ajout-membre > summary::-webkit-details-marker{display:none}
details.ajout-membre[open] > summary{margin-bottom:12px}

/* Connexion */
.accueil{max-width:440px;margin:12vh auto 0;padding:0 16px;display:flex;flex-direction:column;gap:14px}
.accueil .logo{font-family:var(--font-display);font-weight:var(--fw-marque);font-size:40px;line-height:1}
.accueil .logo span{font-family:var(--font-body);font-size:13px;letter-spacing:.08em;text-transform:uppercase;background:var(--gorse);color:var(--on-gorse);padding:3px 8px;border-radius:4px;vertical-align:middle;margin-left:8px}

/* Message flottant */
#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:30;width:min(92vw,460px);display:flex;flex-direction:column;gap:6px;pointer-events:none}
.toast{background:var(--accent);color:var(--on-accent);padding:11px 14px;border-radius:var(--r-btn);font-size:14.5px;font-weight:700;box-shadow:0 10px 24px -12px var(--shadow)}
.toast.erreur{background:var(--warn);color:var(--surface)}

/* Formulaire public */
.public{max-width:560px;margin:0 auto;padding:24px 16px 48px;display:flex;flex-direction:column;gap:16px}
.public header{display:flex;flex-direction:column;gap:2px}
.public .entreprise{font-family:var(--font-display);font-weight:var(--fw-marque);font-size:28px;line-height:1.15;margin:0}
.piege{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.texte-legal{gap:12px;font-size:15px}
/* Formulaire de demande en étapes (demande.html) */
.demande-tete{flex-direction:row!important;align-items:flex-start;gap:12px}
.demande-tete > div{flex:1;display:flex;flex-direction:column;gap:2px}
.btn.appeler{border-radius:999px;white-space:nowrap}
.progression{display:flex;flex-direction:column;gap:8px}
.progression .barres{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.progression .barres span{height:5px;border-radius:3px;background:var(--line)}
.progression .barres span.faite{background:var(--accent)}
.progression .sur{margin:0;font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}
#form-demande{display:flex;flex-direction:column;gap:16px}
.etape.carte{padding:18px 16px;gap:18px}
.etape h1:focus{outline:none}
.types{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.type{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:88px;padding:12px;border:var(--bw) solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink);font-size:15px;font-weight:700;text-align:left;cursor:pointer}
.type svg{width:24px;height:24px}
.type[aria-pressed="true"]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.segments.deux-choix{grid-template-columns:1fr 1fr}
.segments.deux-choix button[data-urgent="1"][aria-pressed="true"]{background:var(--warn);color:var(--surface)}
.encart-urgent{background:var(--warn-weak);color:var(--warn);border-radius:var(--r-btn);padding:12px 14px;display:flex;flex-direction:column;gap:10px;font-size:14.5px;line-height:1.45}
.encart-urgent p{margin:0}
.photos-demande{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.photos-demande .vignette{position:relative;aspect-ratio:1;border-radius:var(--r-btn);overflow:hidden;background:var(--panel)}
.photos-demande .vignette img{width:100%;height:100%;object-fit:cover;display:block}
.photos-demande .retirer{position:absolute;top:4px;right:4px;width:32px;height:32px;border:0;border-radius:50%;background:rgba(20,30,34,.8);color:#fff;font-size:18px;line-height:1;cursor:pointer}
.ajout-photo{aspect-ratio:1;border:1.5px dashed var(--line);border-radius:var(--r-btn);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:13.5px;font-weight:700;cursor:pointer}
.ajout-photo svg{width:22px;height:22px}
#photo:focus-visible + .aide,.ajout-photo:focus-within{outline:2px solid var(--accent)}
.raccourcis{display:flex;flex-wrap:wrap;gap:6px}
.grille-dispos{display:flex;flex-direction:column}
.grille-dispos .ligne{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:6px;align-items:center;padding:3px 0}
.grille-dispos .entete-dispos span{text-align:center;font-size:13px;font-weight:700;color:var(--ink-soft)}
.grille-dispos .titre-semaine{margin:10px 0 4px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft)}
.grille-dispos .jour{font-weight:700}
.moment{min-height:44px;border:var(--bw) solid var(--line);border-radius:var(--r-btn);background:var(--surface);color:var(--on-accent);font-size:16px;font-weight:700;cursor:pointer}
.moment[aria-pressed="true"]{background:var(--accent);border-color:var(--accent)}
.compte-dispos{margin:0;padding:10px 12px;border-radius:var(--r-btn);background:var(--gorse-weak);color:var(--gorse-ink);font-size:14px;font-weight:700}
fieldset.adresse{border:0;margin:0;padding:14px 0 0;border-top:var(--bw) solid var(--line);display:flex;flex-direction:column;gap:12px}
fieldset.adresse legend{padding:0;font-weight:700}
fieldset.motifs-refus{border:0;margin:0;padding:0}
fieldset.motifs-refus legend{padding:0;margin-bottom:8px}
.cp-commune{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:8px}
.secteur{margin:0}
.recap{gap:8px}
.recap-tete{display:flex;align-items:center;gap:8px}
.recap-tete h2{flex:1;font-family:var(--font-body);font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft)}
.recap p,.recap ul{margin:0}
.recap ul{padding-left:18px}
.texte-besoin{white-space:pre-line}
.mini-photos{display:flex;gap:6px}
.mini-photos img{width:56px;height:56px;object-fit:cover;border-radius:8px}
.merci-tete{align-items:flex-start;padding:22px 18px;gap:12px}
.merci-tete p{margin:0;font-size:16.5px;line-height:1.45}
.merci-tete h1:focus{outline:none}
.pastille-ok{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--ok-weak);color:var(--ok)}
.pastille-ok svg{width:28px;height:28px}
.suite{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.suite li{display:grid;grid-template-columns:32px 1fr;gap:12px;align-items:start;line-height:1.45}
.suite .num{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:2px solid var(--accent);font-size:14px;font-weight:700}
.suite .num.fait{background:var(--ok);border-color:var(--ok);color:#fff}
.dispos-horizontales{display:none}
@media (min-width:760px){
  .public.demande{max-width:880px}
  .dispos-verticales{display:none}
  .dispos-horizontales{display:grid;grid-template-columns:96px repeat(var(--nb),minmax(48px,1fr));gap:6px;align-items:center;overflow-x:auto}
  .dispos-horizontales .jour{text-align:center;font-size:13px;font-weight:700;line-height:1.25;white-space:pre-line;padding-bottom:4px;border-bottom:2px solid var(--line)}
  .dispos-horizontales .jour.s0{border-color:var(--accent)}
  .dispos-horizontales .jour.s1{border-color:var(--ink-soft)}
  .dispos-horizontales .moment-nom{font-size:14px;font-weight:700;color:var(--ink-soft)}
  .dispos-horizontales .moment{min-height:48px}
  .types{grid-template-columns:repeat(4,minmax(0,1fr))}
}
/* Bien démarrer */
.carte.demarrage{border:calc(var(--bw) + 1px) solid var(--gorse);text-decoration:none;gap:10px}
.titre-demarrage{font-family:var(--font-display);font-weight:var(--fw-titre);font-size:20px}
.masquer-demarrage{align-self:center;color:var(--ink-soft);text-decoration:underline;margin-top:-6px}
.etapes-demarrage{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--r);overflow:hidden}
.etapes-demarrage li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;padding:14px}
.etapes-demarrage li + li{border-top:var(--bw) solid var(--line)}
.etapes-demarrage li.courante{background:var(--gorse-weak)}
.etapes-demarrage li.faite b{color:var(--ink-soft)}
.etapes-demarrage .pastille-etat{font-size:13px;font-weight:700;color:var(--ink-soft)}
.visuellement-cache{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.lien-demande{align-items:center;text-align:center}
.lien-demande .qr{width:180px;height:180px;background:#fff;border-radius:8px;padding:6px}
.lien-demande .copie,.lien-demande .deux{width:100%}
.carte.ligne-action{flex-direction:row;align-items:center;gap:12px;text-decoration:none}
.carte.ligne-action > span{flex:1}
.carte.mise-en-avant{border:calc(var(--bw) + 1px) solid var(--gorse)}
/* Saisie rapide et import de clients */
.fiche-saisie{gap:6px}
.tableau-saisie{padding:0;overflow-x:auto}
.tableau-saisie table{width:100%;border-collapse:collapse;font-size:14.5px;min-width:820px}
.tableau-saisie th{text-align:left;font-size:12px;letter-spacing:.04em;color:var(--ink-soft);padding:10px 8px;font-weight:700;vertical-align:bottom}
.tableau-saisie td{padding:4px 6px;border-top:var(--bw) solid var(--line)}
.tableau-saisie td .saisie{min-height:38px;padding:6px 8px;font-size:14.5px}
.tableau-saisie th .saisie{min-height:36px;padding:4px 8px;font-size:14px;margin-top:4px}
.tag.etat-pret{background:var(--ok-weak);color:var(--ok);border-color:transparent}
.tag.etat-deja{background:var(--gorse-weak);color:var(--gorse-ink);border-color:transparent}
.tag.etat-manque{background:var(--warn-weak);color:var(--warn);border-color:transparent}
.pied-saisie{flex-wrap:wrap;position:sticky;bottom:calc(64px + env(safe-area-inset-bottom,0px));background:var(--bg);padding:10px 0}
@media (min-width:900px){.pied-saisie{bottom:0}}
.lien-legal{text-align:center;font-size:13px}
/* Affichette A5 (/affichette) */
.page-affichette{background:var(--panel)}
.barre-impression{display:flex;justify-content:center;padding:16px}
.affichette{width:148mm;min-height:210mm;margin:0 auto 24px;background:#fbfaf6;color:#243840;display:flex;flex-direction:column;box-shadow:0 10px 30px -16px var(--shadow)}
.bandeau-ajonc{height:4mm;background:#e8c34a}
.affichette-corps{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5mm;padding:10mm 10mm 9mm}
.affichette-corps p{margin:0}
.affichette-nom{font-family:var(--font-display);font-weight:var(--fw-marque);font-size:28pt;line-height:1.1}
.affichette-appel{font-family:var(--font-display);font-weight:var(--fw-titre);font-size:19pt;line-height:1.25;margin-top:3mm!important}
.affichette-qr{width:62mm;height:62mm}
.affichette-tel{margin-top:auto!important;font-size:17pt;font-weight:700}
@media print{
  @page{size:A5;margin:0}
  .barre-impression{display:none}
  .page-affichette{background:#fff}
  .affichette{margin:0;box-shadow:none;width:148mm;height:210mm}
}
/* Page « Mes données » et RDV : encadré de demande à traiter */
section.a-traiter.pile{padding:12px 14px}
/* Feuille de clôture : pièces et signature */
.piece{display:grid;grid-template-columns:minmax(0,1fr) 72px 44px;gap:6px;align-items:center}
.piece .retirer{min-height:44px;border:0;background:none;color:var(--ink-soft);display:grid;place-items:center;cursor:pointer}
.signature{position:relative;border:var(--bw) solid var(--line);border-radius:var(--r-btn);background:#fff;overflow:hidden}
.signature canvas{display:block;width:100%;height:160px;touch-action:none;cursor:crosshair}
.signature .effacer{position:absolute;top:4px;right:4px}
.signature .indication{position:absolute;left:10px;bottom:6px;font-size:12.5px;color:#5a676b;pointer-events:none}
.equipement{display:flex;flex-direction:column;gap:2px}
/* Chantiers */
.tag.chantier{background:var(--accent);color:var(--on-accent);border-color:transparent}
.segments.deux-choix{grid-template-columns:repeat(2,1fr)}
.journee{gap:8px}
.journees-chantier{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--r);overflow:hidden}
.journees-chantier li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 14px}
.journees-chantier li + li{border-top:var(--bw) solid var(--line)}
.journees-chantier li.auj{background:var(--gorse-weak)}
.journees-chantier li.annulee{opacity:.55}
.journees-chantier a{text-decoration:none}
.pastille-etat{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);box-sizing:border-box;display:grid;place-items:center}
.pastille-etat.aujourdhui{border-color:var(--gorse)}
.pastille-etat.faite{background:var(--ok);border-color:var(--ok);color:var(--surface)}
.pastille-etat.faite .ic{width:14px;height:14px}
.pastille-etat.annulee{border-style:dashed}
.rdv-client-public{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:var(--bw) solid var(--line)}
.rdv-client-public:first-child{border-top:0;padding-top:0}
.intervention-passee{display:flex;flex-direction:column;gap:4px;padding-top:10px;border-top:var(--bw) solid var(--line)}
.intervention-passee:first-of-type{border-top:0;padding-top:0}

/* Recherche globale (menu de gauche, accueil sur téléphone) */
.recherche-globale{position:relative}
.recherche-globale .resultats{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;background:var(--surface);border:var(--bw) solid var(--line);border-radius:var(--r-btn);box-shadow:0 12px 28px -14px var(--shadow);display:flex;flex-direction:column;overflow:hidden}
.recherche-globale .resultats a{display:flex;flex-direction:column;padding:9px 12px;text-decoration:none;font-size:14.5px}
.recherche-globale .resultats a + a{border-top:var(--bw) solid var(--line)}
.recherche-globale .resultats a:hover,.recherche-globale .resultats a:focus{background:var(--panel)}
.recherche-globale .resultats .vide{border:0;padding:12px;font-size:14px}
.tabbar .recherche-globale .resultats{min-width:0}
.tabbar .recherche-globale .resultats a{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;min-height:0;padding:9px 12px;border-radius:0;font-size:14.5px;color:var(--ink)}

/* Accueil du patron et du bureau : colonnes sur ordinateur */
.accueil-colonnes{display:flex;flex-direction:column;gap:12px}
.accueil-colonnes > section{display:flex;flex-direction:column;gap:12px;min-width:0}
.semaine-mini{display:flex;flex-direction:column;padding:4px 14px}
.semaine-mini a{display:grid;grid-template-columns:96px minmax(0,1fr) 28px;gap:8px;align-items:center;padding:9px 0;text-decoration:none}
.semaine-mini a + a{border-top:var(--bw) solid var(--line)}
.semaine-mini a.auj{font-weight:700}
.semaine-mini .remplissage{display:flex;height:10px;border-radius:3px;overflow:hidden;background:var(--panel)}
.semaine-mini .remplissage i{display:block;height:100%}
.semaine-mini .faits{background:var(--ok)}
.semaine-mini .prevus{background:var(--line)}
.semaine-mini .nb{text-align:right;color:var(--ink-soft);font-size:14px}

/* Fiche client : deux colonnes sur ordinateur */
.fiche-client{display:flex;flex-direction:column;gap:12px}
.fiche-cote,.fiche-principal{display:flex;flex-direction:column;gap:12px;min-width:0}

/* Aide : « ? » à côté d'un titre (boutonAide), page #aide et fiches */
.titre-aide{display:flex;align-items:center;gap:8px;min-width:0}
.titre-aide > h1,.titre-aide > h2{min-width:0}
.btn-aide{flex:none;width:28px;height:28px;padding:0;border-radius:50%;border:calc(var(--bw) + .5px) solid var(--line);background:var(--surface);color:var(--ink-soft);font-family:var(--font-body);font-weight:700;font-size:14px;line-height:1;cursor:pointer;display:inline-grid;place-items:center;position:relative}
.btn-aide::after{content:"";position:absolute;inset:-8px}
.btn-aide:hover{border-color:var(--ink-soft);color:var(--ink)}
.feuille-tete .sur{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-weight:700}
.aide-liste a{grid-template-columns:minmax(0,1fr) 18px}
.aide-liste .ic{color:var(--ink-soft)}
.aide-fiche{display:flex;flex-direction:column;gap:12px;line-height:1.5}
.aide-fiche p{margin:0}
.aide-fiche ol,.aide-fiche ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.aide-fiche ol{counter-reset:etape}
.aide-fiche ol > li{counter-increment:etape;display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start}
.aide-fiche ol > li::before{content:counter(etape);width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:13px;display:grid;place-items:center}
.aide-fiche ul > li{padding-left:16px;position:relative}
.aide-fiche ul > li::before{content:"";position:absolute;left:3px;top:.65em;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.6}
.aide-fiche a{color:inherit;font-weight:700}
.bouton-cite{font-weight:700;background:var(--panel);border:var(--bw) solid var(--line);border-radius:6px;padding:0 6px;font-size:.94em;white-space:nowrap}
.aide-bon{background:var(--gorse-weak);color:var(--gorse-ink);border-radius:var(--r-btn);padding:11px 12px;display:flex;flex-direction:column;gap:6px;font-size:15px}
.aide-bon .sur{font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.aide-bon .bouton-cite{background:var(--surface);color:var(--ink)}
.aide-tableau{overflow-x:auto}
.aide-tableau table{border-collapse:collapse;width:100%;font-size:14px}
.aide-tableau th,.aide-tableau td{border-top:var(--bw) solid var(--line);padding:7px 6px;text-align:left;vertical-align:top}
.aide-tableau th{border-top:0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.aide-tableau .bouton-cite{white-space:normal}

.seul-grand{display:none!important}

@media (min-width:900px){
  .seul-petit{display:none!important}
  .seul-grand{display:flex!important}
  .nav-espace.seul-grand{display:block!important;flex:1}
  #appli{padding-left:248px}
  .top{display:none}
  main{padding:28px 32px 48px}
  main.large{max-width:1320px;margin:0}
  .tabbar{top:0;bottom:0;left:0;right:auto;width:248px;box-sizing:border-box;display:flex;flex-direction:column;gap:3px;padding:18px 14px;border-top:0;border-right:var(--bw) solid var(--line);overflow-y:auto}
  .tabbar a{flex-direction:row;justify-content:flex-start;gap:10px;font-size:15px;padding:0 10px;min-height:42px;border-radius:var(--r-btn)}
  .tabbar a:hover{background:var(--panel)}
  .tabbar a[aria-current="page"]{background:var(--gorse-weak);color:var(--gorse-ink)}
  .tabbar a[aria-current="page"]::before{display:none}
  .tabbar .pastille{position:static;margin-left:auto;order:2}
  .nav-tete{flex-direction:column;gap:12px;margin-bottom:12px}
  .nav-tete .marque{font-family:var(--font-display);font-weight:var(--fw-marque);font-size:20px;line-height:1.15;padding:0 6px}
  .nav-tete .btn.primaire{justify-content:center;min-height:44px;font-size:15px;color:var(--on-accent)}
  .nav-tete .btn.primaire:hover{background:var(--accent)}
  .nav-qui{align-items:center;gap:10px;padding:12px 8px 0;margin-top:8px;border-top:var(--bw) solid var(--line);font-size:14px;line-height:1.25}
  .nav-qui .initiales{width:34px;height:34px;border-radius:50%;background:var(--gorse);color:var(--on-gorse);display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}
  #toast{left:calc(50% + 124px);bottom:24px}
  .accueil-colonnes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}
  .fiche-client{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:22px;align-items:start}
  .fiche-client [role="tabpanel"][hidden]{display:flex!important}
  .fiche-client [role="tabpanel"]{display:flex;flex-direction:column;gap:12px}
  .onglets-texte.fiche-onglets{display:none}
  .fiche-cote #pan-coordonnees{order:-1}
  .fiche-cote{order:-1}
}
@media (prefers-reduced-motion: no-preference){
  .btn,.puce,.segments button{transition:background-color .15s,border-color .15s}
}
