:root{--bg:#0c0f13;--panel:#161b22;--panel2:#11151b;--line:#232a33;--line2:#1b212a;--txt:#dfe5ec;--txt2:#9fb0c2;--txt3:#7d8894;--white:#fff;--acc:#199e70;--acc2:#14805a;--warn:#e0b13a;--bad:#e8664a;--ok:#3ec98a;--info:#6aa6ff;--f10:#7a5af5;--f14:#3987e5;--f17:#c98500;--f21:#199e70;--f28:#d95926;--fa:#3987e5;--fb:#199e70;--fc:#c98500;--fd:#d95926;--shadow:0 1px 3px rgba(0,0,0,.4);--canvas:#0a0d11}:root[data-theme=light]{--bg:#f5f7fa;--panel:#fff;--panel2:#eef1f5;--line:#dde3ea;--line2:#e8ecf1;--txt:#1a2029;--txt2:#48566a;--txt3:#6b7a8d;--white:#0b0e12;--shadow:0 1px 3px rgba(20,30,50,.1);--canvas:#1a2029}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--txt);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}h1{font-size:18px;margin:0;font-weight:650;letter-spacing:-.01em}h2{font-size:11.5px;margin:0 0 8px;font-weight:650;color:var(--txt3);text-transform:uppercase;letter-spacing:.07em}h3{font-size:14px;margin:0 0 6px}a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}button,select,input,textarea{font:inherit;color:inherit}button{background:var(--panel2);border:1px solid var(--line);color:var(--txt);padding:5px 12px;border-radius:7px;cursor:pointer;font-size:13px;transition:.12s;white-space:nowrap}button:hover:not(:disabled){border-color:var(--txt3)}button.pri{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:600}button.pri:hover:not(:disabled){filter:brightness(1.12)}button.danger{border-color:var(--bad);color:var(--bad)}button.ghost{background:none;border-color:transparent}button.ghost:hover:not(:disabled){background:var(--panel2)}button:disabled{opacity:.45;cursor:default}button.on{background:var(--acc);border-color:var(--acc);color:#fff}:focus-visible{outline:2px solid var(--info);outline-offset:1px}input,select,textarea{background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:13px;max-width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--acc)}input[type=number]{font-variant-numeric:tabular-nums}input[type=checkbox]{width:auto;accent-color:var(--acc)}textarea{width:100%;resize:vertical}label.f{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--txt2)}label.f input,label.f select{width:100%}.row{display:flex;align-items:center;gap:8px}.row>label{flex:1;font-size:12.5px;color:var(--txt2)}.row input[type=number]{width:88px;text-align:right}.row select{width:130px}.grow{flex:1}.mut{color:var(--txt3)}.sm{font-size:12px}.xs{font-size:11px}.ok{color:var(--ok)}.warn{color:var(--warn)}.bad{color:var(--bad)}.info{color:var(--info)}.right{text-align:right}.tnum{font-variant-numeric:tabular-nums}.topbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--panel);min-height:50px}.brand{font-weight:700;letter-spacing:-.02em;display:flex;align-items:center;gap:8px}.brand i{width:22px;height:22px;border-radius:6px;background:var(--acc);display:inline-block;position:relative}.brand i:after{content:"";position:absolute;top:6px;right:4px;bottom:6px;left:4px;border:2px solid #fff;border-radius:2px}.nav a{padding:6px 10px;border-radius:6px;color:var(--txt2)}.nav a.active,.nav a:hover{background:var(--panel2);color:var(--txt);text-decoration:none}.page{padding:18px 22px;max-width:1280px;margin:0 auto}.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;box-shadow:var(--shadow)}.grid{display:grid;gap:12px}.chip{display:inline-block;padding:1px 8px;border-radius:99px;font-size:11px;border:1px solid var(--line);color:var(--txt2);white-space:nowrap}.chip.verifiee,.chip.mesuree,.chip.green{border-color:var(--ok);color:var(--ok)}.chip.estimee,.chip.amber{border-color:var(--warn);color:var(--warn)}.chip.a_valider,.chip.red{border-color:var(--bad);color:var(--bad)}.chip.blue{border-color:var(--info);color:var(--info)}.sev{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.sev.bloquante{background:#e8664a}.sev.majeure{background:#f08a3c}.sev.avertissement{background:var(--warn)}.sev.information{background:var(--txt3)}table{border-collapse:collapse;font-size:12.5px;width:100%}th,td{padding:5px 9px;border-bottom:1px solid var(--line2);text-align:left;vertical-align:middle}th{color:var(--txt3);font-weight:650;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0;background:var(--bg);z-index:1}td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}tr.hl{background:#199e701f}tr.sel{background:#3987e52e}tr.clickable{cursor:pointer}tr.clickable:hover{background:var(--panel2)}.note{background:var(--panel);border-left:3px solid var(--acc);padding:9px 13px;margin:10px 0;border-radius:0 7px 7px 0;font-size:13px;color:var(--txt2)}.note.w{border-left-color:var(--warn)}.note.e{border-left-color:var(--bad)}.note.i{border-left-color:var(--info)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:flex-start;justify-content:center;padding:4vh 16px;z-index:100;overflow:auto}.modal{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #00000080;width:min(760px,100%);padding:18px}.modal.wide{width:min(1080px,100%)}.modal h1{margin-bottom:12px}.modal .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}.toasts{position:fixed;bottom:14px;right:14px;display:flex;flex-direction:column;gap:8px;z-index:200}.toast{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--acc);padding:9px 14px;border-radius:8px;box-shadow:0 4px 16px #0006;max-width:380px;font-size:13px}.toast.err{border-left-color:var(--bad)}.app{display:flex;flex-direction:column;height:100vh}.app>.content{flex:1;min-height:0;overflow:auto}.editor-root{display:flex;flex-direction:column;height:100%;min-height:0}.editor{display:grid;grid-template-columns:300px minmax(0,1fr) 360px;flex:1;min-height:0;overflow:hidden}.col{overflow-y:auto;background:var(--panel);padding:12px}.col.left{border-right:1px solid var(--line)}.col.side{border-left:1px solid var(--line)}.center{display:flex;flex-direction:column;min-width:0;overflow:hidden}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);padding:0 10px;background:var(--panel)}.tabs button{background:none;border:none;border-bottom:2px solid transparent;border-radius:0;padding:8px 12px;color:var(--txt3)}.tabs button.on{color:var(--txt);border-bottom-color:var(--acc);font-weight:600;background:none}.toolbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:7px 10px;border-bottom:1px solid var(--line);background:var(--panel)}.toolbar .sep{width:1px;height:20px;background:var(--line);margin:0 4px}.scene-wrap{flex:1;min-height:0;position:relative;background:var(--canvas);overflow:hidden;outline:none}.scene-wrap svg{width:100%;height:100%;display:block;touch-action:none;-webkit-user-select:none;user-select:none}.statusbar{padding:4px 10px;border-top:1px solid var(--line);background:var(--panel);font-size:12px;color:var(--txt3);display:flex;gap:14px;flex-wrap:wrap}.scroll{overflow:auto;flex:1;padding:14px}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}.kpi{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:7px 10px}.kpi b{display:block;font-size:16px;font-weight:650;color:var(--white);font-variant-numeric:tabular-nums;line-height:1.25}.kpi span{font-size:10px;color:var(--txt3);text-transform:uppercase;letter-spacing:.05em}.kpi small{display:block;font-size:11px;color:var(--txt3)}.kpi.alert{border-color:var(--bad)}.kpi.w{border-color:var(--warn)}.lib-item{display:flex;gap:9px;padding:6px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;cursor:grab;background:var(--panel2);align-items:center}.lib-item:hover{border-color:var(--acc)}.lib-item img{width:46px;height:46px;border-radius:5px;object-fit:cover;background:#fff;flex:none}.lib-item .meta{min-width:0;flex:1}.lib-item .t{font-weight:600;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-item{padding:7px 9px;border:1px solid var(--line);border-radius:8px;margin-bottom:6px;background:var(--panel2);font-size:12.5px;cursor:pointer}.alert-item:hover{border-color:var(--txt3)}.alert-item.done{opacity:.6}details{margin-bottom:8px}summary{cursor:pointer;font-weight:600;font-size:12.5px;color:var(--txt2)}.explain{font-size:12px;color:var(--txt2);padding:6px 0 4px 6px}.explain .formula{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--txt3);margin:4px 0}.explain li{margin:2px 0}.login{max-width:380px;margin:12vh auto;padding:0 16px}.badge-ro{background:var(--warn);color:#000;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600}.sync{font-size:12px}.sync.saving{color:var(--warn)}.sync.saved{color:var(--ok)}.sync.error,.sync.conflict,.sync.offline{color:var(--bad)}.photos{display:flex;gap:6px}.photos img{width:100px;height:100px;object-fit:cover;border-radius:6px;background:#fff;border:1px solid var(--line)}.fieldrow{display:grid;grid-template-columns:150px 110px 1fr 120px;gap:6px;align-items:center;margin-bottom:4px}@media (max-width:1100px){.editor{grid-template-columns:240px minmax(0,1fr)}.col.side{display:none}}@media (max-width:760px){.editor{grid-template-columns:1fr}.col.left{display:none}}@media print{.topbar,.col,.toolbar,.tabs{display:none}body{background:#fff;color:#000}}
