:root{--creme:#F4EEE3;--papier:#FFFDF9;--encre:#161512;--brun:#4A4237;--or:#A8843F;--or-f:#7A5F2A;--champ:#E4D9C3;--filet:#E9E0CE;--mute:#7b7364;
--ok:#2F6B47;--ok-bg:#E3EFE6;--ko:#9B2C24;--ko-bg:#F6E1DD;--warn:#8A5A12;--warn-bg:#F6EAD2;--info:#2C4F74;--info-bg:#E1E9F2;
--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',system-ui,-apple-system,Segoe UI,sans-serif;--mono:'DM Mono',ui-monospace,Menlo,monospace}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--creme);color:var(--encre);font:15px/1.5 var(--sans)}
a{color:var(--or-f)}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:.005em;margin:0 0 .5em}
h1{font-size:2rem;line-height:1.15}h2{font-size:1.45rem;margin-top:1.4em}h3{font-size:1.15rem}
small,.mute{color:var(--mute)}
.mono{font-family:var(--mono);font-size:.88em}
/* barre haute */
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:10px 22px;background:var(--encre);color:#E9DFCB}
.brand{display:flex;align-items:center;gap:10px;color:#F4EEE3;text-decoration:none}
.brand span{font-family:var(--serif);font-size:1.25rem;line-height:1}.brand b{letter-spacing:.06em}
.brand small{display:block;font:500 .66rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#B7A887}
.top nav{display:flex;gap:4px;flex:1;flex-wrap:wrap}
.top nav a{color:#CFC5B2;text-decoration:none;padding:7px 9px;border-radius:2px;font-size:.9rem}
.top nav a:hover{color:#fff;background:#2a2824}.top nav a.on{color:var(--encre);background:#E4D9C3}
.who{font-size:.82rem;color:#A99E88;white-space:nowrap}.who a{color:#D9C9A3}
.burger{display:none;margin-left:auto;background:none;border:1px solid #444;color:#eee;font-size:1.2rem;padding:4px 10px;border-radius:2px}
main{max-width:1320px;margin:0 auto;padding:26px 22px 60px}
.foot{text-align:center;color:var(--mute);font-size:.78rem;padding:20px}
/* blocs */
.card{background:var(--papier);border:1px solid var(--filet);padding:18px 20px;margin-bottom:18px}
.card>h2:first-child,.card>h3:first-child{margin-top:0}
.grid{display:grid;gap:18px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi{background:var(--papier);border:1px solid var(--filet);padding:14px 16px;text-decoration:none;color:inherit;display:block}
.kpi b{display:block;font:600 2rem/1.1 var(--serif)}.kpi span{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.kpi.alert{border-left:3px solid var(--ko)}.kpi.attn{border-left:3px solid var(--or)}
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.head h1{margin:0}.sur{font:600 .7rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--or-f);margin-bottom:6px}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
/* tableaux */
table.t{width:100%;border-collapse:collapse;background:var(--papier);font-size:.9rem}
.t th{text-align:left;font:600 .7rem/1.2 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--mute);padding:9px 10px;border-bottom:1px solid var(--champ);white-space:nowrap}
.t td{padding:9px 10px;border-bottom:1px solid var(--filet);vertical-align:top}
.t tr:hover td{background:#FBF7EF}
.t .num,.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.t tfoot td{font-weight:600;border-top:1px solid var(--champ)}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
/* badges */
.badge{display:inline-block;padding:2px 8px;border-radius:20px;font:600 .72rem/1.5 var(--sans);letter-spacing:.02em;white-space:nowrap}
.b-ok{background:var(--ok-bg);color:var(--ok)}.b-ko{background:var(--ko-bg);color:var(--ko)}.b-warn{background:var(--warn-bg);color:var(--warn)}
.b-info{background:var(--info-bg);color:var(--info)}.b-mute{background:#EEE9DF;color:#6f685b}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}
.dot.ok{background:var(--ok)}.dot.ko{background:var(--ko)}.dot.mute{background:#bbb}.dot.warn{background:#C08A2B}
/* formulaires */
label{display:block;font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--brun);margin:0 0 4px}
input,select,textarea{width:100%;font:inherit;padding:9px 10px;border:1px solid #D7CCB6;background:#fff;border-radius:2px;color:var(--encre)}
input:focus,select:focus,textarea:focus{outline:2px solid #CDB27A;outline-offset:0;border-color:var(--or)}
input[type=checkbox],input[type=radio]{width:auto;margin-right:6px}
textarea{min-height:80px;resize:vertical}
.f{margin-bottom:12px}.row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border:1px solid var(--encre);background:var(--encre);color:#F4EEE3;font:600 .82rem/1.2 var(--sans);letter-spacing:.04em;text-decoration:none;cursor:pointer;border-radius:2px}
.btn:hover{background:#2c2a25}.btn.s{background:transparent;color:var(--encre)}.btn.s:hover{background:#EFE7D8}
.btn.or{background:var(--or);border-color:var(--or)}.btn.danger{background:transparent;color:var(--ko);border-color:#D9AAA3}
.btn.sm{padding:5px 10px;font-size:.76rem}.btn[disabled]{opacity:.45;cursor:not-allowed}
.flash{padding:11px 14px;margin-bottom:14px;border-left:3px solid var(--ok);background:var(--ok-bg)}
.flash.ko{border-color:var(--ko);background:var(--ko-bg)}.flash.warn{border-color:#C08A2B;background:var(--warn-bg)}
.inline{display:inline}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--champ);margin-bottom:14px;flex-wrap:wrap}
.tabs a{padding:8px 14px;text-decoration:none;color:var(--brun);font-size:.88rem}.tabs a.on{border-bottom:2px solid var(--or);color:var(--encre);font-weight:600}
.empty{padding:22px;text-align:center;color:var(--mute)}
.kv{display:grid;grid-template-columns:150px 1fr;gap:4px 14px;font-size:.9rem}.kv dt{color:var(--mute)}.kv dd{margin:0}
.lignes-ed td{padding:5px}.lignes-ed input,.lignes-ed select,.lignes-ed textarea{padding:6px 7px;font-size:.86rem}
.lignes-ed textarea{min-height:38px}
.parc{list-style:none;margin:0;padding:0;font-size:.86rem}.parc li{padding:3px 0}
.timeline{list-style:none;padding:0;margin:0;font-size:.86rem}.timeline li{padding:6px 0;border-bottom:1px dashed var(--filet)}
.timeline time{color:var(--mute);font-size:.78rem;display:block}
.sigpad{border:1px dashed #BFAF8E;background:#fff;width:100%;height:170px;touch-action:none;display:block}
.check{display:flex;gap:10px;align-items:center;padding:7px 0;border-bottom:1px solid var(--filet)}
.check select{width:auto;padding:4px}.check span{flex:1}
details.box{background:var(--papier);border:1px solid var(--filet);padding:10px 14px;margin-bottom:10px}
details.box summary{cursor:pointer;font-weight:600}
/* document contrat */
.doc{background:#fff;border:1px solid var(--filet);padding:42px 46px;max-width:880px;margin:0 auto;font-size:.93rem}
.doc-h{border-bottom:2px solid var(--encre);padding-bottom:16px;margin-bottom:22px}.doc-h h1{font-size:2.1rem;margin:4px 0}
.per{color:var(--or-f);font-family:var(--serif);font-size:1.2rem;font-style:italic}
.parties{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-bottom:12px}.parties p{margin:0;font-size:.88rem;text-align:left}
.doc h2{font-size:1.15rem;margin:1.5em 0 .4em;border-bottom:1px solid var(--filet);padding-bottom:4px}
.doc p{margin:.3em 0 .8em;text-align:justify}
.site{margin:10px 0 14px}.site h4{margin:0 0 6px;font-size:.95rem}.site h4 small{font-weight:400;color:var(--mute);margin-left:6px}
table.lignes,table.tot{width:100%;border-collapse:collapse}.lignes td{padding:7px 0;border-bottom:1px solid var(--filet);vertical-align:top}
.det{font-size:.8rem;color:var(--mute);margin-top:2px}
table.tot{max-width:380px;margin-left:auto;margin-top:12px}.tot td{padding:4px 0}.tot tr.g td{font-weight:700;border-top:1px solid var(--encre);padding-top:7px;font-size:1.05rem}
.sig{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:28px;border-top:1px solid var(--filet);padding-top:14px}.sigimg{max-width:240px;max-height:90px}
.empreinte{font:.7rem/1.4 var(--mono);color:var(--mute);word-break:break-all}
/* pages client */
body.pub{background:var(--creme)}
.pubtop{display:flex;align-items:center;justify-content:center;gap:10px;padding:22px 16px 6px}
.pubtop .du{font:500 .7rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--or-f)}
.pubmain{max-width:900px;margin:0 auto;padding:18px 16px 50px}
.pubfoot{text-align:center;font-size:.74rem;color:var(--mute);padding:24px 16px 36px;max-width:820px;margin:0 auto}
.pub .card{padding:24px}
.choix{display:grid;gap:10px}.choix label{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid #D7CCB6;background:#fff;cursor:pointer;font:inherit;color:inherit;letter-spacing:0}
.choix label:has(input:checked){border-color:var(--or);background:#FBF5E8;box-shadow:inset 3px 0 0 var(--or)}
.choix input{margin-top:4px}.choix b{display:block}
.slot{display:block;width:100%;text-align:left;padding:14px 16px;margin-bottom:8px;border:1px solid #D7CCB6;background:#fff;font:inherit;cursor:pointer}
.slot:hover{border-color:var(--or);background:#FBF5E8}
@media (max-width:1380px){.brand small{display:none}}
@media (max-width:900px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g2{grid-template-columns:1fr}}
@media (max-width:760px){
  .top{flex-wrap:wrap;padding:10px 16px}.burger{display:block}.top nav,.who{display:none;width:100%}
  body.nav-open .top nav{display:flex;flex-direction:column}body.nav-open .who{display:block}
  main{padding:18px 16px 50px}.g3,.g4{grid-template-columns:1fr 1fr}
  .doc{padding:22px 18px}.parties,.sig{grid-template-columns:1fr}.kv{grid-template-columns:1fr}.kv dt{margin-top:6px}
  .check{flex-wrap:wrap}.check span{flex-basis:100%}
  .t.resp thead{display:none}.t.resp tr{display:block;border-bottom:1px solid var(--champ);padding:6px 0}.t.resp td{display:block;border:0;padding:3px 10px}
}
@media print{.top,.foot,.actions,.noprint,.pubtop .du{display:none}body,body.pub{background:#fff}.doc{border:0;padding:0}main,.pubmain{padding:0}}
.jours{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid #D7CCB6;background:#fff;border-radius:20px;font-weight:500;font-size:.84rem;letter-spacing:0;margin:0;cursor:pointer;color:var(--encre)}
.pill:has(input:checked){background:#FBF5E8;border-color:var(--or)}
.pill input{margin:0}.jours .sep{width:10px}
.sitebloc{border:1px solid var(--filet);background:#FFFDF9;padding:14px 16px;margin:12px 0}
.sitebloc h4{margin:0 0 4px;font-family:var(--serif);font-size:1.15rem}
