*{box-sizing:border-box}body{margin:0;background:#f5f7f8;color:#18332f;font:15px/1.5 system-ui,sans-serif}aside{position:fixed;width:235px;inset:0 auto 0 0;background:#123e36;color:white;padding:32px 23px;display:flex;flex-direction:column}.brand{font-size:20px;letter-spacing:1px}.brand small{display:block;font-size:9px;letter-spacing:2px;opacity:.6;margin:8px 0 45px}nav button{display:block;width:100%;text-align:left;margin:8px 0;background:transparent;color:#d4e2df;border:0;padding:13px;border-radius:8px}nav button.active{background:#2a584f;color:white}.safe{margin-top:auto;color:#c5e5c4;font-size:13px}.safe small{color:#a8bfba}main{margin-left:235px;padding:38px 44px;max-width:1700px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}header small,.eyebrow{font-size:10px;letter-spacing:2px;color:#6b827c}h1{font-size:29px;font-weight:600;margin:4px 0}h2{font-size:20px;margin:0 0 16px}h3{font-size:16px}button,.button{cursor:pointer;background:#16705b;border:0;border-radius:7px;padding:11px 17px;color:white;font:inherit;text-decoration:none;display:inline-block}button.secondary,.button.secondary{background:#e7efec;color:#245246}button:disabled{opacity:.5;cursor:wait}input,select,textarea{padding:11px;border:1px solid #d2dfda;border-radius:7px;font:inherit;background:white;max-width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #91b9a8}label{display:block;font-size:12px;color:#54716a;margin:13px 0 5px}.card{background:white;border:1px solid #e0e8e4;border-radius:12px;padding:24px;margin-bottom:20px;box-shadow:0 3px 10px #123e3604}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.metric strong{display:block;font-size:29px;font-weight:600;margin:8px 0}.metric small{color:#71867f}.pill{padding:4px 9px;background:#e8f3ee;color:#1d7057;border-radius:20px;font-size:11px;display:inline-block}.warn{background:#fff3da;color:#9e6813}.negative{color:#b95348}.positive{color:#1d8063}.muted{color:#74877f;font-size:13px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.toolbar input{flex:1;min-width:180px}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:#71877d;font-weight:500;font-size:11px;padding:12px;border-bottom:1px solid #e2e9e5}td{padding:13px 12px;border-bottom:1px solid #edf1ef;vertical-align:top}td strong{display:block}tr.selected{background:#edf7f1}.scroll{overflow:auto}#message{position:sticky;top:8px;z-index:5}#message:not(:empty){padding:12px 20px;background:#fff0d8;border-radius:7px;margin-bottom:18px}.hero{padding:35px;background:#e7f0eb}.login{max-width:420px;margin:60px auto}.login input{width:100%}.login button{margin-top:22px;width:100%}.row{display:flex;gap:8px;align-items:center;margin:8px 0}.row input{min-width:0;width:100%}.lotline{display:grid;grid-template-columns:1fr 1fr 80px 35px;gap:8px;margin:8px 0}.lotline button{padding:5px;background:#f5e9e5;color:#9f4b42}pre{white-space:pre-wrap;font-size:11px;color:#5e766d}a{color:#236d59}footer{font-size:11px;color:#87968e;margin-top:18px}@media(max-width:1000px){aside{width:190px}main{margin-left:190px;padding:25px}.grid{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}}@media(max-width:650px){aside{position:static;width:100%;padding:15px}.brand small,.safe{display:none}nav{display:flex;overflow:auto}nav button{white-space:nowrap;width:auto;font-size:12px;padding:9px}.brand{font-size:17px}main{margin:0;padding:17px}h1{font-size:23px}header{align-items:start}.card{padding:16px}.grid{gap:8px}.metric strong{font-size:22px}.lotline{grid-template-columns:1fr 1fr 55px 30px}}
.location-choice{border:0;padding:0;margin:18px 0;display:flex;gap:12px;flex-wrap:wrap}.location-choice legend{font-weight:600;margin-bottom:10px;font-size:16px}.location-option{display:flex;align-items:center;gap:12px;flex:1;min-width:170px;padding:15px;border:2px solid #d7e5df;border-radius:10px;cursor:pointer;color:#254c40;background:#f8fbf9;margin:0}.location-option:has(input:checked){border-color:#16705b;background:#e4f3ec}.location-option input{width:20px;height:20px;accent-color:#16705b}.location-option strong{display:block;font-size:15px}.location-option small{display:block;margin-top:4px}.location-active{padding:14px 16px;border-left:5px solid #16705b;background:#e7f3ec;border-radius:6px;margin:12px 0;font-size:15px}.location-active strong{display:block;font-size:18px;margin-top:3px}#partner{width:100%}
/* --- Version comptage aveugle / recomptage / OUI-NON --- */
#message.error{background:#fde3df;color:#8f2f25;font-weight:600}#message.info{background:#e3f3ea;color:#1d5f45}
button.big,.button.big{font-size:17px;padding:15px 22px;font-weight:600}button.small{padding:6px 11px;font-size:13px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.sticky{position:sticky;top:0;z-index:4}.locbar{display:flex;gap:18px;align-items:center;flex-wrap:wrap;padding:14px 18px;border-left:6px solid #16705b}
.locbar>div{flex:1;min-width:150px}.locbar small{display:block;color:#6b827c;font-size:11px;text-transform:uppercase;letter-spacing:1px}
.loc{font-size:19px;display:block}.loc.Showroom{color:#1d6b9a}.loc.Stockage{color:#8a5a12}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#c4cfcb;vertical-align:middle}.dot.on{background:#1fae6b}
.product h2{font-size:22px;margin:6px 0 10px}.facts{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0}.facts span{background:#f1f6f4;border-radius:8px;padding:6px 10px}
.facts small{display:block;font-size:10px;color:#6b827c;text-transform:uppercase}
.step{background:#123e36;color:#fff;border-radius:12px;padding:14px 18px;margin-bottom:20px}.step small{display:block;opacity:.75}.step strong{font-size:17px}
.step em{display:block;margin-top:6px;color:#ffe2a8;font-style:normal;font-weight:600}.step.warnbox{background:#5c3d0c}
.entry{border:2px solid #16705b}.bigq{font-size:22px;color:#123e36;font-weight:700;margin-top:4px}.bigq small{display:block;font-size:14px;font-weight:400;color:#54716a}
input.huge{font-size:44px;font-weight:700;width:100%;text-align:center;padding:14px;letter-spacing:2px}
.check{display:flex;gap:10px;align-items:center;font-size:15px;color:#254c40}.check input{width:22px;height:22px}.check.small{font-size:12px;margin:0}.check.small input{width:16px;height:16px}
#zerobox{background:#fff3da;padding:12px;border-radius:8px}
.lots{border:1px solid #e0e8e4;border-radius:10px;margin:14px 0;padding:10px}.lots legend{font-size:12px;color:#54716a}
.lotline{display:grid;grid-template-columns:1fr 1fr auto 70px 36px;gap:6px;align-items:center}
button.confirm{width:100%;margin-top:16px;background:#0f5f4c}
.round{margin:8px 0}.round>small{color:#6b827c}.progress{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.pstate{border-radius:10px;padding:10px;border:2px solid #e0e8e4}.pstate strong,.pstate span,.pstate small,.pstate b,.pstate em{display:block}
.pstate span{text-transform:uppercase;font-size:12px;font-weight:700}.pstate b{font-size:22px}.pstate em{font-size:12px;color:#7b8d86}
.pstate.done{border-color:#16705b;background:#eef8f3}.pstate.doing{border-color:#e0a12a;background:#fff8e9}.pstate.todo{border-style:dashed}
.reveal{border:2px solid #1d6b9a}.compare h3{margin:16px 0 6px}table.figures th{font-size:14px;color:#254c40;font-weight:500;text-transform:none}
table.figures td{font-size:20px;font-weight:700;text-align:right}table.figures tr.total td,table.figures tr.total th{border-top:2px solid #123e36}
tr.ecart.neg td{color:#b23b2e}tr.ecart.pos td{color:#1d7a55}tr.ecart.zero td{color:#123e36}
.warnbox{background:#fff1d6;border-left:5px solid #d08a12;padding:12px;border-radius:8px}.okbox{background:#e9f6ef;border-left:5px solid #16705b;padding:12px;border-radius:8px}
.warntext{color:#9e4a12;font-weight:600}.result h2{margin-bottom:8px}
.question h2{font-size:21px}.yesno{gap:12px}.yesno button{flex:1;font-size:22px;padding:18px}button.yes{background:#16705b}button.no{background:#9f3a2f}
ul.results{list-style:none;padding:0;margin:8px 0;max-height:420px;overflow:auto}ul.results li{margin:6px 0}
button.pick{width:100%;text-align:left}button.pick small{display:block;color:#5d7770;font-size:12px}button.pick.sel{outline:3px solid #16705b}
.tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.tabs button.active{background:#123e36}.tabs b{margin-left:4px}
.split.wide{grid-template-columns:2fr 3fr}.importform .grid{grid-template-columns:repeat(3,1fr)}
code{background:#f1f6f4;padding:2px 6px;border-radius:4px}details summary{cursor:pointer;color:#236d59;margin:8px 0}
@media(max-width:1000px){.split.wide{grid-template-columns:1fr}.importform .grid{grid-template-columns:1fr 1fr}}
@media(max-width:650px){main{padding:12px}.card{padding:14px;margin-bottom:12px}h1{font-size:19px}header{margin-bottom:12px}
 .lotline{grid-template-columns:1fr 1fr;}.lotline .check{grid-column:1/2}.lotline button{justify-self:end}
 .importform .grid,.grid{grid-template-columns:1fr}.locbar{gap:8px;padding:10px 12px}.loc{font-size:16px}
 input.huge{font-size:38px}table{font-size:12px}td,th{padding:8px 6px}.yesno button{font-size:19px}input,select,textarea{width:100%}}

#camvideo{width:100%;max-height:55vh;background:#000;border-radius:10px;object-fit:cover}
