:root{--accent:#0b5cc2;--accent2:#2b7de0;--ink:#242125;--muted:#656b75;--line:#e2e6ec;--paper:#fff;--canvas:#f7f6f5;--pale:#eef4fc;--dark:#242023}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--canvas);font:14px/1.55 Arial,Helvetica,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:var(--accent)}.sidebar{position:fixed;inset:0 auto 0 0;width:252px;background:var(--dark);color:#fff;padding:30px 18px;overflow:auto;z-index:10}.brand{font-size:22px;font-weight:700;letter-spacing:.07em}.brandline{height:3px;background:#0081ff;width:45px;margin:14px 0}.sublabel{font-size:11px;letter-spacing:.08em;color:#c3c3cb;margin-bottom:24px}.navbtn{display:block;border:0;color:#eceff4;background:none;width:100%;text-align:left;border-radius:6px;padding:12px 13px;margin:3px 0;font-weight:500}.navbtn:hover,.navbtn.sel{background:#2d3b52;color:#fff}.sidebar-note{font-size:11px;color:#b4b4bd;margin-top:24px;border-top:1px solid #4a4a50;padding-top:14px}.main{margin-left:252px;padding:29px 43px 60px;max-width:1640px}.top{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:19px;margin-bottom:20px}.top h1{margin:0;font-size:25px;letter-spacing:-.35px;font-weight:650}.desc{color:var(--muted);margin:7px 0 0;font-size:13px}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:700}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:15px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;margin:18px 0 22px}.card,.kpi{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:19px}.kpi strong{display:block;font-size:28px;line-height:1.2;color:var(--accent)}.kpi span{display:block;font-size:12px;color:var(--muted);margin-top:5px}h2{font-size:18px;margin:25px 0 12px}h3{font-size:15px;margin:13px 0 8px}p{margin:7px 0 11px}.muted{color:var(--muted)}.tiny{font-size:11px}.small{font-size:12px}.pill{display:inline-block;background:#e6f0fc;color:var(--accent);padding:3px 7px;border-radius:4px;font-size:10px;font-weight:700}.pill.gray{background:#f1f0ef;color:#555a63}.pill.alert{background:#fbf0ec;color:#824837}.note{border-left:3px solid var(--accent);padding:11px 14px;background:white;margin:12px 0}.warn{border-left:3px solid #9c6752;padding:12px 14px;background:#faf5f2;margin:12px 0}.tools{display:flex;gap:9px;flex-wrap:wrap;margin:14px 0}.tools>*{min-height:36px}input,select,textarea{border:1px solid #cfd5de;background:white;color:#2b292c;border-radius:5px;padding:8px 10px;min-width:125px}input[type=search]{min-width:240px;flex:1}input[type=number]{width:125px}textarea{width:100%;resize:vertical;min-height:66px}.button{border:1px solid #b9c8dc;background:white;color:var(--accent);border-radius:5px;padding:8px 12px;text-decoration:none;display:inline-block}.button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.button:hover{filter:brightness(.96)}.button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}details{background:#fff;border:1px solid var(--line);border-radius:7px;margin:8px 0;overflow:hidden}summary{cursor:pointer;padding:13px 15px;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:'+';font-size:19px;font-weight:400;color:var(--accent)}details[open]>summary{background:#f8fafd;border-bottom:1px solid var(--line)}details[open]>summary:after{content:'−'}.inside{padding:13px 17px 18px}.inside details{background:#fbfcfe}.inside details>summary{padding:9px 12px;font-size:12px}.data{width:100%;border-collapse:collapse;font-size:12px;background:white}.data th,.data td{padding:10px 11px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.data th{background:#edf0f4;color:#4e535c;font-size:11px}.data tr:last-child td{border-bottom:0}.scroll{max-height:62vh;overflow:auto;border:1px solid var(--line);border-radius:7px}.bold{font-weight:700}.split{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px}.docrow{display:grid;grid-template-columns:1.2fr 135px minmax(145px,.8fr);gap:9px;align-items:center;padding:9px 8px;border-bottom:1px solid var(--line);font-size:12px}.docrow:last-child{border:0}.docrow:nth-child(2n){background:#f8f9fb}.docrow label{display:block;font-weight:600}.docrow small{display:block;font-weight:400;color:var(--muted);font-size:11px;margin-top:1px}.docrow select,.docrow input{min-width:0;width:100%;padding:6px 7px}.checkrow{display:grid;grid-template-columns:minmax(250px,1.5fr) 160px minmax(190px,1fr);gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.checkrow:last-child{border:0}.checkrow select,.checkrow input{width:100%;min-width:0}.btnlink{color:var(--accent);text-decoration:none;font-weight:600;font-size:12px}.btnlink:hover{text-decoration:underline}.pairline{border-bottom:1px solid var(--line);padding:12px 2px}.pairline:last-child{border:0}.stack{display:grid;gap:11px}.tagset{display:flex;gap:6px;flex-wrap:wrap}.cover{background:#fff;border:1px solid var(--line);padding:20px 23px;border-radius:8px}.helptext{font-size:11px;color:var(--muted)}.amount{font-size:22px;font-weight:700;color:var(--accent)}.noresult{color:var(--muted);padding:22px;text-align:center}.divider{height:1px;background:var(--line);margin:15px 0}.inlinecode{font-family:monospace;font-size:12px}.right{text-align:right}#toast{position:fixed;bottom:20px;right:20px;background:#242023;color:white;padding:13px 17px;border-radius:7px;display:none;z-index:99;max-width:350px}.scope-info{font-size:12px;color:var(--muted)}.nav-mobile{display:none}
@media(max-width:1100px){.grid3{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.main{padding:25px 24px}}
@media(max-width:800px){.sidebar{position:relative;width:100%;padding:18px}.sidebar .brandline,.sidebar .sublabel,.sidebar-note{display:none}.sidebar nav{display:flex;gap:5px;overflow-x:auto}.navbtn{white-space:nowrap;width:auto;padding:9px 12px;font-size:12px}.main{margin:0;padding:20px 15px}.top{display:block}.grid2,.grid3{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}.docrow,.checkrow{grid-template-columns:1fr}.docrow>*,.checkrow>*{width:100%}}
@media print{.sidebar,.tools,.button,#toast{display:none!important}.main{margin:0;padding:5mm}details{break-inside:avoid}summary:after{display:none}.scroll{max-height:none;overflow:visible}}
a.navbtn{text-decoration:none}
.brand img{display:block;width:176px;height:auto}
.sidebar .user{font-size:11px;color:#c3c3cb;margin-top:18px;word-break:break-all}
.sidebar .user button{background:none;border:0;color:#fff;text-decoration:underline;padding:0;margin-top:6px}
.login{max-width:420px;margin:12vh auto;padding:0 16px}
.login .card{padding:28px}
.login img{width:200px;margin-bottom:18px}
.login label{display:block;font-weight:600;margin:12px 0 4px}
.login input{width:100%}
.error{border-left:3px solid #8d3338;background:#fbf0f0;padding:10px 14px;margin:12px 0}
.flash{border-left:3px solid var(--accent);background:#fff;padding:10px 14px;margin:0 0 14px}
.saving{opacity:.6}
.invalid{border-color:#8d3338!important}
form.inline{display:inline}
.files{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:3px}
.files li{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
form.upload{display:flex;gap:6px;align-items:center;margin-top:7px;flex-wrap:wrap}
form.upload input[type=file]{min-width:0;max-width:230px;font-size:11px;padding:3px}
form.upload .button{padding:4px 9px;font-size:11px}
.indices{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
details.howto{border:0;background:none;margin:5px 0 0;overflow:visible}
details.howto>summary{padding:0;font-size:11px;font-weight:600;color:var(--accent);display:inline-flex;gap:4px}
details.howto>summary:after{content:''}
details.howto ul{margin:6px 0 0 16px;padding:0;font-size:11px;color:var(--muted)}
details.howto li{margin:3px 0}
.docrow.donnee{background:#f3f8ff}
.identite{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 18px;margin:10px 0}
.identite dt{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.identite dd{margin:1px 0 0;font-weight:600;word-break:break-word}

.avance{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;font-size:12px}
.avance:not(:has(.avance-lib)){grid-template-columns:1fr auto}
.avance.grand{font-size:13px}.avance-lib{color:var(--muted);font-weight:600}
.avance .bar{display:block;height:9px;background:#e8ecf2;border-radius:99px;overflow:hidden;min-width:90px}
.avance.grand .bar{height:12px}
.avance .bar i{display:block;height:100%;border-radius:99px;background:#9aa7b8}
.avance .bar i.bas{background:#d6893a}.avance .bar i.mid{background:#2b7de0}.avance .bar i.ok{background:#2f9e6a}.avance .bar i.vide{background:transparent}
.avance-val{font-weight:700;white-space:nowrap}.avance-val small{font-weight:400;color:var(--muted)}
.summary-bar{min-width:200px;margin-left:auto}
details>summary .summary-bar .avance{font-weight:400}
.avancement-societe{margin-bottom:0}
.dropzone{border:2px dashed #b9c8dc;border-radius:10px;padding:26px;text-align:center;cursor:pointer;background:#f8fafd}
.dropzone.survol,.dropzone:hover,.dropzone:focus-visible{border-color:var(--accent);background:#eef4fc;outline:none}
.envois{list-style:none;margin:10px 0 0;padding:0;font-size:12px}
.envois li{padding:3px 0}.erreur-ligne{color:#8d3338;font-weight:600}
table.lot select{width:100%;min-width:150px}
tr.ligne-erreur td{background:#fbf0f0}
/* Charte graphique de la filiale (back-office Nomad) : variables posées sur <main> par les pages société */
.button.primary{background:var(--bouton,var(--accent));border-color:var(--bouton,var(--accent));color:var(--bouton-texte,#fff)}
.avancement-societe{border-top:4px solid var(--marque,var(--accent))}
.logo-filiale{height:34px;width:auto;max-width:150px;object-fit:contain;vertical-align:middle;margin-right:8px;display:inline-block}
.top .logo-filiale{display:block;height:44px;margin:0 0 8px}
.pastille{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:8px;vertical-align:middle}
summary .logo-filiale{height:22px;margin-right:6px}
