/* Espace du client (pages publiques) : clair / sombre selon l'appareil (ou imposé dans l'aperçu de l'entreprise),
   couleur de l'entreprise dans --c (assombrie par le serveur pour rester lisible), toute la largeur jusqu'à 1100 px de lecture confortable. */
:root{--c:#33766C;--fond:#F3F4F5;--carte:#fff;--encre:#141E25;--gris:#475569;--ligne:#E2E5E8;--doux:#EEF2F4;--ok:#14532D;--ok-f:#DCFCE7;--err:#7F1D1D;--err-f:#FEE2E2;--att:#78350F;--att-f:#FEF3C7;color-scheme:light}
@media screen and (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--fond:#12181C;--carte:#141E25;--encre:#F3F4F5;--gris:#A9B4BE;--ligne:#2D3940;--doux:#1E2A32;--ok:#86EFAC;--ok-f:#1C3527;--err:#FCA5A5;--err-f:#3E201D;--att:#FCD34D;--att-f:#3B2C17;--accent-ink:color-mix(in srgb,var(--c) 45%,#fff)}}
:root[data-theme=dark]{color-scheme:dark;--fond:#12181C;--carte:#141E25;--encre:#F3F4F5;--gris:#A9B4BE;--ligne:#2D3940;--doux:#1E2A32;--ok:#86EFAC;--ok-f:#1C3527;--err:#FCA5A5;--err-f:#3E201D;--att:#FCD34D;--att-f:#3B2C17;--accent-ink:color-mix(in srgb,var(--c) 45%,#fff)}
/* noms communs des outils à la charte (dates, heures, listes déroulantes) : suivent les couleurs ci-dessus, clair et sombre */
:root{--surface:var(--carte);--ink:var(--encre);--texte:var(--encre);--line:var(--ligne);--muted:var(--gris);--doux-txt:var(--gris);--accent:var(--c);--accent-ink:var(--c);--accent-soft:color-mix(in srgb,var(--c) 14%,transparent);--bg:var(--fond);--bad:var(--err);--font:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--fond);color:var(--encre);font:16px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
a{color:var(--c);font-weight:600}a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--c);outline-offset:2px}
@media screen and (prefers-color-scheme:dark){:root:not([data-theme=light]) a{color:color-mix(in srgb,var(--c) 45%,#fff)}:root:not([data-theme=light]) :focus-visible,:root:not([data-theme=light]) .b-lien{outline-color:color-mix(in srgb,var(--c) 45%,#fff)}:root:not([data-theme=light]) .b-lien{color:color-mix(in srgb,var(--c) 45%,#fff)}}
:root[data-theme=dark] a,:root[data-theme=dark] .b-lien{color:color-mix(in srgb,var(--c) 45%,#fff)}:root[data-theme=dark] :focus-visible{outline-color:color-mix(in srgb,var(--c) 45%,#fff)}
.vc{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}
.mute{color:var(--gris);font-size:14px;font-weight:400}.centre{text-align:center}
.evit{position:absolute;left:12px;top:-80px;background:var(--carte);color:var(--encre);padding:10px 16px;border-radius:8px;font-weight:600;z-index:9}.evit:focus{top:12px}
.apercu{margin:0;background:#285F57;color:#fff;padding:10px 16px;text-align:center;font-weight:600}
/* pages simples : code, connexion, erreur, mentions */
body.simple main,body.simple main#contenu{max-width:480px;margin:0 auto;padding:40px 16px}
.bloc{background:var(--carte);border-radius:14px;padding:24px;box-shadow:0 1px 3px rgba(20,30,37,.1)}.bloc.large{max-width:none}
body.simple main#contenu:has(.bloc.large){max-width:820px}
h1{font-size:22px;margin:0 0 10px;line-height:1.25}h2{font-size:19px;margin:0 0 10px;line-height:1.3}
.logo{display:block;height:44px;width:auto;max-width:220px;margin:0 0 18px;object-fit:contain}
label{display:block;font-weight:600;margin:14px 0 6px}
input[type=email],input[type=text],input[type=date],input:not([type]),select,textarea{width:100%;font:16px/1.4 system-ui,sans-serif;padding:12px 14px;border:2px solid #94A3B8;border-radius:10px;background:var(--carte);color:var(--encre);min-height:48px}
input:focus,select:focus,textarea:focus{border-color:var(--c);outline-offset:0}
input.code{font:600 24px/1.2 ui-monospace,Menlo,monospace;letter-spacing:.18em;text-transform:uppercase}
.chk{display:flex;gap:10px;align-items:flex-start;font-weight:400;margin:12px 0}.chk input{width:22px;height:22px;margin:2px 0 0;flex:none;accent-color:var(--c)}
fieldset{border:0;padding:0;margin:12px 0}legend{font-weight:600;padding:0}
.b-plein,.b-ligne,.b-lien{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;border-radius:10px;font:600 16px system-ui,sans-serif;padding:0 20px;cursor:pointer;text-decoration:none;border:2px solid var(--c)}
.b-plein{background:var(--c);color:#fff!important}.b-plein:hover{filter:brightness(.92)}
.b-ligne{background:none;color:var(--encre)!important;border-color:var(--ligne)}.b-ligne:hover{border-color:var(--c)}
.b-lien{border:0;background:none;color:var(--c);padding:0;min-height:44px}
.b-plein.petit,.b-ligne.petit{min-height:40px;padding:0 12px;font-size:14px}
form .b-plein{margin-top:10px}form#f-code .b-plein,form#f-cx .b-plein{width:100%}
button:disabled,.b-plein[aria-disabled=true]{opacity:.55;cursor:not-allowed}
.err{background:var(--err-f);color:var(--err);border-radius:10px;padding:10px 12px;margin:10px 0 0}.ok{background:var(--ok-f);color:var(--ok);border-radius:10px;padding:10px 12px;margin:10px 0}
.bts{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:10px 0}.bts .b-plein{margin-top:0}
/* page du client */
.haut{background:var(--carte);border-bottom:4px solid var(--c);padding:16px}
.haut .in,main#contenu,.bas{max-width:1100px;margin:0 auto}
.haut .in{display:flex;gap:14px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.haut img{display:block;height:46px;width:auto;max-width:220px;object-fit:contain}
@media screen and (prefers-color-scheme:dark){:root:not([data-theme=light]) .haut img,:root:not([data-theme=light]) .logo{background:#fff;border-radius:10px;padding:6px 10px;box-sizing:content-box}}
:root[data-theme=dark] .haut img,:root[data-theme=dark] .logo{background:#fff;border-radius:10px;padding:6px 10px;box-sizing:content-box}
.haut .qui{flex:1 1 220px;min-width:0}.haut h1{margin:0}.haut p{margin:2px 0 0;color:var(--gris)}
.haut.doc .in{justify-content:flex-start}
main#contenu{padding:16px}
main#contenu>section{background:var(--carte);border-radius:14px;padding:18px;margin:0 0 16px;box-shadow:0 1px 3px rgba(20,30,37,.08);min-width:0}
h3{font-size:17px;margin:22px 0 8px;padding-top:14px;border-top:1px solid var(--ligne)}h4.jour{font-size:15px;margin:14px 0 6px}
.sous{font-weight:600;margin:12px 0 4px}
.tuiles{list-style:none;padding:0;margin:0 0 16px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.tuiles a{display:block;background:var(--carte);border-radius:14px;padding:14px;text-decoration:none;color:var(--encre);box-shadow:0 1px 3px rgba(20,30,37,.08);border-left:4px solid var(--c);min-height:76px}
.tuiles .alerte a{border-left-color:#B45309;background:var(--att-f)}
.tuiles .tv{display:block;font-size:21px;font-weight:700}.tuiles .tl{display:block;font-size:14px;color:var(--gris);font-weight:500}
.a-signer{border:2px solid #B45309}
.liste-sig{list-style:none;padding:0;margin:0;display:grid;gap:10px}.liste-sig li{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--ligne)}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:15px}th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--ligne);vertical-align:top}th{font-size:13px;color:var(--gris);font-weight:600}td.n,th.n{text-align:right;white-space:nowrap}
td.act{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.total{font-size:20px;font-weight:700;margin:0 0 8px}
.pill{display:inline-block;border-radius:20px;padding:2px 10px;font-size:13px;font-weight:600;background:var(--doux);color:var(--encre);white-space:nowrap}.pill.r{background:var(--err-f);color:var(--err)}.pill.o{background:var(--ok-f);color:var(--ok)}.pill.e{background:var(--att-f);color:var(--att)}.pill.cr{background:color-mix(in srgb,var(--c) 18%,var(--carte));color:var(--encre)}
ol.et{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:8px 0}
ol.et li{flex:1 1 140px;border:2px solid var(--ligne);border-radius:10px;padding:8px 10px;font-size:14px;color:var(--gris)}
ol.et li.fait{border-color:#16A34A;color:var(--ok)}ol.et li[aria-current]{border-color:var(--c);color:var(--encre);font-weight:700;background:color-mix(in srgb,var(--c) 8%,var(--carte))}
ol.et li span{display:block;font-size:12px;font-weight:600}
.barre{height:10px;background:var(--doux);border-radius:6px;overflow:hidden;flex:1 1 120px}.barre span{display:block;height:100%;background:var(--c);border-radius:6px}
.glob{display:flex;align-items:center;gap:12px;margin:10px 0}.glob b{min-width:52px}
.lots{list-style:none;padding:0;margin:6px 0}.lots li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 0;border-bottom:1px solid var(--ligne)}
.lot-t{flex:1 1 100%;display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px}.pct{font-weight:600;font-size:14px;min-width:44px;text-align:right}
.dates{margin:4px 0;padding-left:20px}
.photos{list-style:none;padding:0;margin:4px 0 8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.photos figure{margin:0}.photos a{display:block;border-radius:10px;overflow:hidden}
.photos img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .2s;background:var(--doux)}.photos a:hover img{transform:scale(1.03)}
figcaption{font-size:13px;color:var(--gris);margin-top:4px}
.fichiers{padding-left:20px}.fichiers li{margin:0 0 8px}.fichiers p{margin:2px 0 0;white-space:pre-line}
.fil{list-style:none;padding:0;margin:0}.fil li{border-left:3px solid var(--ligne);padding:4px 0 10px 14px;margin:0 0 6px}.fil-t{margin:0 0 4px;font-size:14px;color:var(--gris)}.fil-x{margin:0;white-space:pre-line}
.rect{list-style:none;padding:0;margin:0}.rect li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--ligne)}.rect li.fait>span:nth-child(2){color:var(--gris)}.rect .src{flex-basis:100%}
.msgs{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-direction:column;gap:10px}.msgs li{max-width:85%;border-radius:14px;padding:10px 14px;background:var(--doux)}
.msgs li.moi{align-self:flex-end;background:color-mix(in srgb,var(--c) 14%,var(--carte));border:1px solid color-mix(in srgb,var(--c) 30%,var(--carte))}
.m-q{margin:0 0 4px;font-size:13px;color:var(--gris)}.m-x{margin:0;white-space:pre-line;overflow-wrap:anywhere}
.contact{padding-left:20px}.iban{font-family:ui-monospace,Menlo,monospace;overflow-wrap:anywhere}
.bas{padding:0 16px 32px;font-size:14px;color:var(--gris)}.bas p{margin:0 0 8px}
.zone-sig{border:2px solid var(--c)}
.sig-c{display:block;width:100%;height:160px;border:2px dashed var(--ligne);border-radius:12px;background:#fff;touch-action:none;margin:8px 0}
.etape{border:1px solid var(--ligne);border-radius:12px;padding:12px;margin:12px 0}.etape h3{margin:0 0 6px;border:0;padding:0}
dialog.lb{border:0;padding:0;background:#0B1116;color:#fff;max-width:100vw;max-height:100dvh;width:100vw;height:100dvh;margin:0}dialog.lb::backdrop{background:rgba(0,0,0,.85)}
.lb-in{display:flex;flex-direction:column;height:100%}.lb-haut{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px}.lb-haut p{margin:0;font-size:14px}
.lb-img{flex:1;display:flex;align-items:center;justify-content:center;min-height:0;padding:0 8px}.lb-img img{max-width:100%;max-height:100%;object-fit:contain}
.lb-bas{display:flex;justify-content:center;gap:10px;padding:10px 12px calc(16px + env(safe-area-inset-bottom,0px));flex-wrap:wrap}.lb-bas p{flex-basis:100%;text-align:center;margin:0 0 6px;font-size:15px}
.lb button,.lb a{background:#fff;color:#0B1116!important;border:0;border-radius:10px;min-height:44px;min-width:44px;padding:8px 14px;font:600 15px system-ui,sans-serif;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
dialog.fen{border:0;border-radius:16px;padding:20px;max-width:min(480px,calc(100vw - 24px));width:100%;background:var(--carte);color:var(--encre)}dialog.fen::backdrop{background:rgba(0,0,0,.5)}
dialog.fen h2{margin-top:0}
@media(max-width:600px){h1{font-size:20px}.haut img{height:38px}table.rsp thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}table.rsp tr{display:block;border-bottom:1px solid var(--ligne);padding:6px 0}table.rsp td{display:flex;justify-content:space-between;gap:12px;border:0;padding:4px 0;text-align:right}table.rsp td::before{content:attr(data-l);font-weight:600;color:var(--gris);text-align:left}td.act{justify-content:flex-end}.photos{grid-template-columns:repeat(2,1fr)}.msgs li{max-width:95%}main#contenu{padding:12px}}
@media(prefers-reduced-motion:reduce){.photos img{transition:none}}
@media print{.evit,.apercu,#f-sortir,dialog,.m-f,.bts{display:none!important}body{background:#fff}main#contenu>section{box-shadow:none}}
