:root{--brand:#15294A;--brand-600:#2C6BD6;--brand-700:#1E50A8;--brand-50:#EAF1FD;--brand-100:#D6E4FB;--brand-grad:var(--brand-600);--ok:#138A53;--ok-50:#E4F5EC;--ok-grad:var(--ok);--warn:#D08400;--warn-50:#FCF1DA;--bad:#D23B2E;--bad-50:#FCE7E4;--mat:#3F506A;--mat-50:#EEF1F6;--mat-grad:var(--mat);--mo:var(--mat);--mo-50:var(--mat-50);--mo-grad:var(--mat);--pop:var(--brand-700);--pop-50:var(--brand-50);--pop-grad:var(--brand-700);--teal:var(--brand-600);--teal-50:var(--brand-50);--ink:#101B2D;--ink-2:#3F506A;--ink-3:#626F84;--line:#E4E9F1;--line-2:#EDF1F7;--calc:#FBF4E4;--r-xl:20px;--r-card:16px;--r-ctrl:11px;--r-pill:999px;--sh-1:0 1px 2px rgba(16,32,56,.06),0 1px 1px rgba(16,32,56,.04);--sh-2:0 10px 30px rgba(16,32,56,.1);--sh-3:0 22px 60px rgba(16,32,56,.22);--bleu:#1f4e79;--bleu2:#2a6bb0;--bleu-clair:#e7f0fa;--saisie:#eaf2fb;--beige:#f5efe1;--beige-bord:#e3d8bf;--vert:#2e7d32;--vert-clair:#e3f3e4;--orange:#e07b00;--orange-clair:#fdeedd;--rouge:#c62828;--rouge-clair:#fbe3e3;--gris:#6b7280;--bord:#d8dde3;--bg:#eef1f5;--panel:#fff;--panel-2:#FBFCFE;--raise:#F7F9FC;--line-soft:#EEF2F7;--ink-strong:#0F1729;--brand-strong:var(--brand-700);--brand-line:#CBD8FB;--ok-line:#B6E3C8;--warn-line:#F0D9A6;--bad-line:#F1C2BC;--mat-line:#CFE0F0;--sh1:var(--sh-1);--sh2:var(--sh-2);--sh3:var(--sh-3)}*{box-sizing:border-box;margin:0;padding:0;font-family:Segoe UI,Roboto,Arial,sans-serif}body{background:var(--bg);color:#1c2430;font-size:14px}a{cursor:pointer;text-decoration:none;color:inherit}button{font-family:inherit}.btn{border:none;border-radius:7px;padding:9px 15px;font-weight:600;cursor:pointer;background:var(--bleu);color:#fff;font-size:13px}.btn:hover{background:var(--bleu2)}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:#fff;border:1px solid var(--bord);color:#1c2430}.btn.ghost:hover{background:#f3f6fa}.btn.green{background:var(--vert)}.btn.green:hover{background:#256528}.btn.sm{padding:4px 9px;font-size:12px}.btn.danger{background:#fff;border:1px solid var(--rouge);color:var(--rouge)}input,select{font-family:inherit;font-size:13px}.login{position:fixed;top:0;right:0;bottom:0;left:0;background:#142339;display:flex;align-items:center;justify-content:center}.login-card{background:#fff;border-radius:14px;padding:34px;width:380px;box-shadow:0 20px 60px #0000004d}.login-card h1{color:var(--bleu);font-size:24px}.login-card .sub{color:var(--gris);margin:4px 0 22px;font-size:13px}.login-card .field{margin:14px 0}.login-card label{display:block;font-size:12px;color:var(--gris);margin-bottom:5px}.login-card input{width:100%;padding:11px;border:1px solid var(--bord);border-radius:8px}.login-card .btn{width:100%;padding:12px;margin-top:8px}.login-hint{font-size:11px;color:var(--gris);margin-top:16px;line-height:1.6;border-top:1px solid var(--bord);padding-top:12px}.err{color:var(--rouge);font-size:12px;margin-top:8px;min-height:14px}.app{display:flex;min-height:100vh}.side{width:236px;background:var(--bleu);color:#fff;flex-shrink:0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.15)}.brand b{font-size:18px}.brand span{display:block;font-size:11px;opacity:.75;margin-top:2px}.nav{flex:1;padding:10px 0}.nav a{display:flex;align-items:center;gap:11px;padding:11px 20px;opacity:.8;font-weight:500;border-left:3px solid transparent}.nav a:hover{background:#ffffff14;opacity:1}.nav a.active{opacity:1;border-left-color:#7eb3e8;background:#ffffff1f}.nav .ic{width:18px;text-align:center}.conn{font-size:10px;padding:4px 20px;opacity:.7}.userbox{padding:14px 20px;border-top:1px solid rgba(255,255,255,.15);font-size:12px}.userbox .role{display:inline-block;margin-top:5px;padding:2px 8px;border-radius:5px;background:#fff3;font-size:11px}.main{flex:1;padding:22px 28px;max-width:100%;overflow-x:auto}.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;gap:16px}h1{font-size:21px;font-weight:600}.sub{color:var(--gris);font-size:13px;margin-top:3px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:18px}.card{background:var(--panel);border:1px solid var(--bord);border-radius:11px;padding:16px}.card .k{color:var(--gris);font-size:11px;text-transform:uppercase}.card .v{font-size:26px;font-weight:700;margin-top:6px;color:var(--bleu)}.card .d{color:var(--gris);font-size:12px;margin-top:3px}.panel{background:var(--panel);border:1px solid var(--bord);border-radius:11px;padding:16px;margin-bottom:16px}.panel h2{font-size:15px;margin-bottom:12px}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--bleu);font-size:10px;text-transform:uppercase;padding:7px;border-bottom:2px solid #c5d8ec;white-space:nowrap;background:var(--bleu-clair)}td{padding:5px 7px;border-bottom:1px solid #eef0f3;white-space:nowrap}tbody tr:hover td{background:#f9fbfd}.num{text-align:right}.mono{font-family:Consolas,monospace;font-size:12px;color:var(--bleu)}.sticky{position:sticky;left:0;z-index:2;background:#fff;box-shadow:1px 0 0 var(--bord)}tbody tr:hover td.sticky{background:#f9fbfd}.lock:after{content:" 🔒";font-size:8px;opacity:.5}.cellcalc{background:var(--beige);display:inline-block;min-width:54px;text-align:right;padding:3px 6px;border-radius:4px;color:#555;font-weight:600}.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700}.b-act{background:var(--vert-clair);color:var(--vert)}.b-inact{background:#eceff3;color:var(--gris)}.b-verif{background:var(--orange-clair);color:var(--orange)}.b-nouv{background:var(--bleu-clair);color:var(--bleu)}.tag{background:#eef1f5;color:var(--gris);padding:2px 7px;border-radius:6px;font-size:11px}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.search{padding:8px 12px;border:1px solid var(--bord);border-radius:7px;width:280px}.tabs{display:flex;gap:6px;margin-bottom:14px}.tabs a{padding:7px 14px;border-radius:7px;color:var(--gris);font-weight:600;border:1px solid transparent}.tabs a.active{background:#fff;color:var(--bleu);border-color:var(--bord)}input.ed,select.ed,textarea.ed{padding:4px 5px;border:1px solid #c3d4e8;border-radius:5px;background:var(--saisie);color:inherit;font-family:inherit}input.ed.num{text-align:right}.w60{width:66px}.w80{width:84px}.w100{width:106px}.w130{width:130px}.muted{color:var(--gris)}.small{font-size:12px}.right{text-align:right}.help{background:var(--bleu-clair);border-left:3px solid var(--bleu);padding:10px 13px;border-radius:7px;font-size:12.5px;line-height:1.5;margin-bottom:14px}.legend{font-size:11px;color:var(--gris)}.legend b{padding:1px 5px;border-radius:3px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e2d8c;display:flex;align-items:center;justify-content:center;z-index:60;padding:18px}.modal{background:#fff;border-radius:13px;padding:22px;width:680px;max-width:97vw;max-height:93vh;overflow:auto}.modal.wide{width:1120px}.modal h3{font-size:17px;margin-bottom:3px}.fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:12px}.field label{display:block;color:var(--gris);font-size:11px;margin-bottom:4px}.field input,.field select{width:100%;padding:8px;border:1px solid #c3d4e8;border-radius:7px;background:var(--saisie)}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.flash{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--vert);color:#fff;padding:12px 20px;border-radius:11px;font-weight:600;z-index:99;max-width:520px;box-shadow:var(--sh2);animation:flashIn .2s ease both}.flash.err{background:var(--rouge)}.empty{padding:26px;text-align:center;color:var(--gris)}.delx{color:var(--rouge);cursor:pointer;font-weight:700;font-size:15px;padding:0 4px}.dirty td{background:#fff7ec!important}.loader{position:fixed;top:0;right:0;bottom:0;left:0;background:#ffffffe6;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;z-index:90}.spin{width:42px;height:42px;border:4px solid #d8dde3;border-top-color:var(--bleu);border-radius:50%;animation:sp 1s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}.exp{cursor:pointer;font-weight:700;color:var(--bleu)}.subline td{background:#f7faff;font-size:12px;color:#444}.st-act td{box-shadow:none}.st-verif td,.st-verif td.sticky{background:#fff7ec}.st-inact td{background:#f3f4f6;color:#8a909a}.st-inact td.sticky{background:#f3f4f6}.st-nouv td,.st-nouv td.sticky{background:#eef5fd}tbody tr.st-verif:hover td{background:#ffeed6}tbody tr.st-inact:hover td{background:#eceef1}tbody tr.st-nouv:hover td{background:#e0eefb}.stripe{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px}.s-act{background:var(--vert)}.s-inact{background:#9aa3af}.s-verif{background:var(--orange)}.s-nouv{background:var(--bleu2)}.bulkbar{display:flex;gap:10px;align-items:center;background:var(--bleu-clair);border:1px solid #bcd4ee;border-radius:9px;padding:9px 13px;margin-bottom:10px;flex-wrap:wrap}.bulkbar b{color:var(--bleu)}.topscroll{overflow-x:auto;overflow-y:hidden;height:14px;border:1px solid var(--bord);border-bottom:none;border-radius:8px 8px 0 0;background:#f3f6fa}.topscroll>div{height:1px}.chkcol{width:26px;text-align:center}thead th{position:sticky;top:0;z-index:3}thead th.sticky{z-index:4}.constructeur{display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:start;margin-top:14px}.col{background:#fafbfc;border:1px solid var(--bord);border-radius:10px;overflow:hidden}.col h4{font-size:12px;text-transform:uppercase;color:var(--gris);padding:9px 12px;border-bottom:1px solid var(--bord);background:#fff}.col .inner{padding:10px 12px;max-height:460px;overflow:auto}.subtabs{display:flex;gap:4px;padding:8px 10px 0}.subtabs a{flex:1;text-align:center;padding:6px;border-radius:6px 6px 0 0;font-size:12px;font-weight:600;color:var(--gris);background:#eef1f5;cursor:pointer}.subtabs a.active{background:#fff;color:var(--bleu);border:1px solid var(--bord);border-bottom:none}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.chip{font-size:11px;padding:3px 10px;border-radius:20px;border:1px solid var(--bord);background:#fff;cursor:pointer;white-space:nowrap}.chip:hover{border-color:var(--bleu)}.chip.on{background:var(--bleu);color:#fff;border-color:var(--bleu)}.compitem{padding:7px 9px;border:1px solid var(--bord);border-radius:7px;margin-bottom:6px;cursor:pointer;background:#fff}.compitem:hover{border-color:var(--bleu);background:var(--bleu-clair)}.compitem .top{display:flex;justify-content:space-between;font-weight:600;font-size:12.5px;gap:8px}.compitem .meta{font-size:11px;color:var(--gris);margin-top:2px}.rec{width:100%}.rec td{padding:4px 6px;font-size:12px;border-bottom:1px solid #eef0f3;white-space:nowrap}.rec th{font-size:10px}.rec input{padding:4px;border:1px solid #c3d4e8;border-radius:5px;text-align:right;background:var(--saisie)}.rec input.w50{width:54px}.rec input.w70{width:66px}.rec td.ro{background:var(--beige);color:#555;text-align:right;font-weight:600}.tot{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #eef0f3}.tot .val{font-weight:700}.tot.calc{background:var(--beige);margin:0 -12px;padding:7px 12px}.tot.final .val{font-size:18px;color:var(--bleu)}.chf thead th,.hcol thead th{background:var(--bleu-clair);color:var(--bleu);border-bottom:2px solid #c5d8ec}.chf tbody tr td{border-bottom:1px solid #eef0f3}.chf tr.r-auto td{background:#eef8ef}.chf tr.r-prop td{background:#fff6e8}.chf tr.r-manq td{background:#fdecec}.chf tr.r-val td{background:#e2f3e5}.chf tbody tr:hover td{filter:brightness(.975)}.chf .c1{position:sticky;left:0;z-index:2}.chf .c2{position:sticky;left:70px;z-index:2}.chf thead th.c1,.chf thead th.c2{z-index:5}.chf td.c2,.chf th.c2{box-shadow:2px 0 0 var(--bord)}.chf .ouv{white-space:normal;max-width:270px;line-height:1.35}.chf .fbar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:4px 0 14px}.chf .fchip{padding:5px 11px;border-radius:20px;border:1px solid var(--bord);background:#fff;cursor:pointer;font-size:12px;font-weight:600;color:var(--gris)}.chf .fchip.on{background:var(--bleu);color:#fff;border-color:var(--bleu)}.ind{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:0;border:1px solid var(--bord);border-radius:11px;overflow:hidden;background:#fff;margin-bottom:14px}.ind>div{padding:9px 12px;border-bottom:1px solid #eef0f3}.ind .h{background:#f4f7fb;font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:var(--gris);font-weight:700}.ind .lbl{font-weight:600;color:var(--ink,#1c2430)}.ind .v{text-align:right;font-variant-numeric:tabular-nums}.ind .ttl{font-weight:700;background:#fbfcfe}.ic-svg{width:18px;height:18px;flex-shrink:0;vertical-align:middle}.ic-s,.ic-bk{width:15px;height:15px}.btn .ic-s,.btn svg{width:15px;height:15px}.nav a svg,.nav .ic svg{width:18px;height:18px}.di svg,.helpdrawer .dh .di svg{width:20px;height:20px}.stat{font-size:10.5px;font-weight:800;padding:2px 9px;border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:5px}.stepper{display:flex;gap:0;margin:0 0 18px;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:6px;box-shadow:var(--sh-1)}.stepper .step{flex:1;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;cursor:pointer;position:relative;border:1.5px solid transparent;transition:.15s}.stepper .step:hover{background:#f5f7fb}.stepper .step .n{width:30px;height:30px;border-radius:50%;background:#e4e9f0;color:var(--ink-3);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0}.stepper .step b{font-size:13.5px;display:block}.stepper .step.todo b{color:var(--ink-3)}.stepper .step .tg{font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:var(--r-pill);margin-top:3px;display:inline-block}.stepper .tg-cat{background:#eef2f7;color:var(--ink-3)}.stepper .tg-ref{background:var(--mat-50);color:var(--mat)}.stepper .tg-pv{background:var(--ok-50);color:var(--ok)}.stepper .arr{position:absolute;right:-7px;top:50%;transform:translateY(-50%);color:var(--line);z-index:1;font-size:18px;font-weight:700}.stepper .step-amt{font-weight:700;font-size:12px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.stepper .step.on{background:var(--brand-50);box-shadow:0 8px 20px #2c6bd62e;border-color:var(--brand-600);transform:translateY(-2px)}.stepper .step.on:after{content:"";position:absolute;left:13px;right:13px;top:-1px;height:3px;border-radius:3px;background:#2c6bd6}.stepper .step.done{background:#eaf7f0}.stepper .step.todo:hover{background:#eef3fa}.stepper .step.on .n{background:var(--brand-grad);color:#fff;transform:scale(1.1);box-shadow:0 4px 12px #2c6bd666}.stepper .step.done .n{background:var(--ok-grad);color:#fff;box-shadow:0 0 0 4px #26b87329}.stepper.s5{flex-wrap:wrap;gap:8px}.stepper.s5 .step{flex:1 1 120px;flex-direction:column;align-items:stretch;gap:7px;border:1.5px solid transparent}.stepper.s5 .step .prow{display:flex;align-items:center;gap:9px}.stepper.s5 .step .pico{margin-left:auto;font-size:14px;line-height:1}.stepper.s5 .step b{font-size:12.5px;line-height:1.15;display:block}.stepper.s5 .ptg{font-size:10px;font-weight:800;padding:2px 8px;border-radius:var(--r-pill);width:fit-content;background:#eef2f7;color:var(--ink-3);display:inline-block}.stepper.s5 .step.done .ptg{background:var(--ok-50);color:var(--ok)}.stepper.s5 .step.on{background:var(--brand-50);box-shadow:0 8px 22px #2c6bd62e;border-color:var(--pop);transform:translateY(-2px)}.stepper.s5 .step.on:after{content:"";position:absolute;left:12px;right:12px;top:-1px;height:3px;border-radius:3px;background:#2c6bd6}.stepper.s5 .step.on .n{background:var(--pop-grad);color:#fff;transform:scale(1.12);box-shadow:0 4px 12px #1e50a859}.stepper.s5 .step.on b{font-weight:800;color:var(--brand-700)}.stepper.s5 .step.on .ptg{background:var(--pop-50);color:var(--brand-700)}.stepper.s5 .step.lock{opacity:.55;cursor:not-allowed;background:#f6f7f9}.stepper.s5 .step.lock:hover{background:#f6f7f9}.stepper.s5 .pbadge{position:absolute;top:-7px;right:-5px;background:var(--warn);color:#fff;font-size:10px;font-weight:800;border-radius:var(--r-pill);padding:1px 6px;box-shadow:0 2px 6px #d0840066}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f22386b;z-index:70;opacity:0;pointer-events:none;transition:.18s}.scrim.show{opacity:1;pointer-events:auto}.helpdrawer{position:fixed;top:0;right:0;height:100vh;width:420px;max-width:92vw;background:#fff;z-index:71;box-shadow:var(--sh-3);transform:translate(100%);transition:.22s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}.helpdrawer.show{transform:none}.helpdrawer .dh{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:12px;background:var(--brand-50)}.helpdrawer .dh .di{width:42px;height:42px;border-radius:12px;background:var(--brand-grad);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.helpdrawer .dh h3{font-size:16px;margin:0}.helpdrawer .dh p{font-size:12px;color:var(--ink-3);margin-top:2px}.helpdrawer .dh .x{margin-left:auto;font-size:22px;color:var(--ink-3);line-height:1;cursor:pointer;background:none;border:none}.helpdrawer .db{padding:18px 20px;overflow:auto;flex:1}.steps-list{counter-reset:s;display:flex;flex-direction:column;gap:14px;list-style:none}.steps-list li{display:flex;gap:12px}.steps-list li:before{counter-increment:s;content:counter(s);width:26px;height:26px;border-radius:50%;background:var(--brand-grad);color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.steps-list b{font-size:13.5px}.steps-list p{font-size:12.5px;color:var(--ink-2);margin-top:1px}.help-tip{background:var(--warn-50);border-left:3px solid var(--warn);border-radius:8px;padding:10px 12px;font-size:12.5px;margin-top:16px}.help-tip b{color:var(--warn)}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes flashIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.8);opacity:.4}60%{transform:scale(1.12)}to{transform:scale(1);opacity:1}}.pop{animation:pop .32s ease both}.empty{padding:34px 20px;color:var(--ink-3);font-size:13.5px;line-height:1.6}body{background:#f4f7fc;color:var(--ink)}.side{background:#142339}.brand .logo{width:42px;height:42px;border-radius:13px;background:var(--brand-grad);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:16px;color:#fff;box-shadow:0 6px 16px #2c6bd64d}.nav a.active{background:#ffffff1a;border-left:none;position:relative}.nav a.active:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:#5fa0dc}.navpill{box-shadow:0 0 0 3px #d0840040}.ava{background:#15294a}.phead-kind{background:var(--brand-50);border-color:var(--brand-100);color:var(--brand-600)}.btn{border-radius:var(--r-ctrl);font-weight:700;background:var(--brand-600);box-shadow:0 6px 16px #2c6bd642;transition:transform .14s,box-shadow .14s,filter .14s}.btn:hover{filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 10px 22px #2c6bd657}.btn.ghost{box-shadow:var(--sh-1);background:#fff}.btn.ghost:hover{border-color:var(--brand-600);color:var(--brand-700);background:#fff;filter:none}.btn.green,.btn.ok{background:var(--ok-grad);box-shadow:0 6px 16px #138a5347}.btn.pop{background:var(--pop-grad);box-shadow:0 6px 16px #1e50a842;color:#fff}.card{border-radius:var(--r-card)}.card.clk:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}.card .kic{width:38px;height:38px;border-radius:11px}.card .v{font-weight:900;font-size:28px}.panel{border-radius:var(--r-card)}.panel h2{font-weight:800}thead th{background:var(--brand-50);color:var(--brand-700);border-bottom:1.5px solid var(--brand-100);font-weight:800}tbody tr:hover td{background:var(--brand-50)}.chip{box-shadow:var(--sh-1);font-weight:700;border-color:var(--line)}.chip:hover{border-color:var(--brand-600);color:var(--brand-700)}.chip.on{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 4px 12px #15294a38}.badge{font-weight:800}.note{background:var(--mat-50);border-radius:10px}.qa a:hover,.pipe .prow:hover{transform:translateY(-1px);box-shadow:var(--sh-2)}.qa .qi{width:40px;height:40px;border-radius:11px}.tabs{background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);padding:5px;box-shadow:var(--sh-1);gap:6px;flex-wrap:wrap}.tabs a{border-radius:var(--r-pill);font-weight:700;color:var(--ink-2);border:none;padding:9px 15px}.tabs a:hover{background:#f4f7fc;color:var(--brand-700)}.tabs a.active,.tabs a.on{background:var(--brand-grad);color:#fff;border:none;box-shadow:0 4px 12px #2c6bd647}.domwrap{border-radius:var(--r-card);box-shadow:var(--sh-1)}.domcard{border-radius:14px;transition:transform .14s,box-shadow .14s}.domcard:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}.ind{border-radius:var(--r-card)}.modal{border-radius:var(--r-xl);box-shadow:var(--sh-3)}.modal h3{font-weight:800;font-size:16px}.fgrid{gap:13px}.field label{font-weight:800;text-transform:uppercase;letter-spacing:.03em;font-size:10.5px;color:var(--ink-3)}.field input,.field select{border-radius:var(--r-ctrl);border-color:var(--line);background:#fff}.field input:focus,.field select:focus{border-color:var(--brand-600);box-shadow:0 0 0 4px var(--brand-50);outline:none}a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[role=button]:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--brand-600);outline-offset:2px;border-radius:5px}.constructeur{grid-template-columns:330px 1fr;gap:16px}.col{border-radius:14px;border-color:var(--line)}.subtabs a{border-radius:9px;border:none;background:transparent;font-weight:700;color:var(--ink-2)}.subtabs a.active{background:var(--brand);color:#fff;border:none}.compitem{border-radius:10px;transition:.13s}.compitem:hover{border-color:var(--brand-600);box-shadow:var(--sh-2);background:#fff;transform:translate(3px)}.compitem .top span:last-child{font-weight:800;color:var(--mat)}.rec th{background:var(--brand-50);color:var(--brand-700);font-weight:800}.rec th.lock{background:var(--calc);color:#7a6326}.rec td.ro{background:#fbfaf4;color:#7a6326;font-weight:700}.tot{display:flex;flex-direction:column;align-items:flex-start;gap:3px;border-bottom:none}.tot.calc{background:var(--calc);border:1px solid #EADFC2;border-radius:12px;padding:12px 14px;margin:0}.tot .val{font-size:19px;font-weight:900;color:#7a6326}.tot.final{background:var(--ok-50);border-color:#bfe2cd}.tot.final .val{color:var(--ok)}.recette-compact .col .inner{padding:8px 10px}.recette-compact .rec td{padding:2px 4px;font-size:11px}.recette-compact .rec th{font-size:9.5px;padding:3px 4px}.recette-compact .rec input{padding:2px 3px}.recette-compact .rec input.w50{width:42px}.recette-compact .rec input.w70{width:50px}.recette-compact .tot.calc{padding:7px 9px;border-radius:9px}.recette-compact .tot .muted{font-size:10px}.recette-compact .tot .val{font-size:14px}.recette-compact .tot.final .val{font-size:15px}.chf-tint{border:none!important;box-shadow:none!important}.chf table th,.chf table td{padding:4px 5px}.card,.panel,.stepper,.note,.domcard,.tbl{animation:fadeUp .3s ease both}.cards{gap:14px}.cards .card{position:relative;overflow:hidden;border-top:3px solid var(--brand-600);box-shadow:var(--sh-1);transition:transform .14s,box-shadow .14s}.cards .card:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}.cards .card:nth-child(2){border-top-color:var(--mat)}.cards .card:nth-child(3){border-top-color:var(--warn)}.cards .card:nth-child(4){border-top-color:var(--ok)}.card .k{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:700}.card .d{font-size:12px;color:var(--ink-3)}.card .kic{position:absolute;right:12px;top:12px;display:flex;align-items:center;justify-content:center}.afgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}.afcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);box-shadow:var(--sh-1);overflow:hidden;transition:transform .14s,box-shadow .14s;display:flex}.afcard:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:var(--brand-100)}.afcard .strip{width:5px;flex-shrink:0}.afcard .bd{padding:14px 15px;flex:1;min-width:0}.afcard .top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.afcard h3{font-size:15px;font-weight:800;letter-spacing:-.01em;cursor:pointer;line-height:1.25}.afcard h3:hover{color:var(--brand-700)}.afcard .meta{font-size:12px;color:var(--ink-3);margin-top:3px}.afcard .prog{margin-top:12px}.afcard .prog .lab{display:flex;justify-content:space-between;font-size:11px;font-weight:700;color:var(--ink-3);margin-bottom:5px}.afcard .bar2{height:7px;background:var(--line-2);border-radius:99px;overflow:hidden}.afcard .bar2 i{display:block;height:100%;border-radius:99px;background:#aeb8c6}.afcard .foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid var(--line-2)}.afcard .date{font-size:11.5px;font-weight:700;color:var(--ink-2)}.afcard .acts{display:flex;gap:7px}.afcard .edit{display:flex;gap:12px;margin-top:10px;font-size:11.5px}.afcard .edit button{color:var(--brand-600);font-weight:600;background:none;border:none;cursor:pointer;padding:0}.afcard .edit button:hover{text-decoration:underline}.chf-ring{width:230px;flex-shrink:0;background:#142339;border-radius:var(--r-card);box-shadow:var(--sh-2);display:flex;align-items:center;gap:13px;padding:14px 16px;color:#fff}.chf-ring .ringwrap{position:relative;width:68px;height:68px;flex-shrink:0}.chf-ring .ringpct{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:16px;letter-spacing:-.02em}.chf-ring .ringlab b{font-size:15px;font-weight:800;display:block}.chf-ring .ringlab span{font-size:11px;opacity:.65}@media (max-width:900px){.chf-ring{display:none}}.kgauge{display:flex;gap:7px;margin-top:14px}.kgauge .seg{flex:1;text-align:center;padding:9px 4px;border-radius:10px;font-size:11px;font-weight:800;background:var(--line-2);color:var(--ink-3);transition:.2s}.kgauge .seg.on{color:#fff;box-shadow:var(--sh-1);transform:translateY(-2px)}.cov{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:11px}.covtile{display:flex;align-items:center;gap:11px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fff}.covtile .ck{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0;font-weight:800}.covtile b{font-size:13px;font-weight:800;display:block}.covtile span{font-size:11px;color:var(--ink-3)}.savings{display:flex;align-items:center;gap:14px;background:var(--ok-50);border:1px solid #BFE2CD;border-left:4px solid var(--ok);border-radius:14px;padding:14px 18px;margin-bottom:14px}.savings .ic2{width:42px;height:42px;border-radius:12px;background:var(--ok-grad);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:20px}.savings .big{font-size:23px;font-weight:900;color:var(--ok);letter-spacing:-.02em}.mbadge{font-size:11px;font-weight:800;padding:2px 9px;border-radius:var(--r-pill)}tbody tr:nth-child(2n) td{background:#2c6bd606}*::-webkit-scrollbar{height:10px;width:10px}*::-webkit-scrollbar-thumb{background:#cdd6e4;border-radius:8px}*::-webkit-scrollbar-thumb:hover{background:#aebacb}.kstrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:14px;margin-bottom:16px}.objbar{height:8px;border-radius:99px;background:var(--line-2);position:relative;overflow:hidden}.objbar>i{display:block;height:100%;border-radius:99px;background:var(--brand-grad)}.objbar>.tgt{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink-2)}.statpill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;padding:3px 10px;border-radius:var(--r-pill)}.statpill.ok{background:var(--ok-50);color:var(--ok)}.statpill.warn{background:var(--warn-50);color:var(--warn)}.statpill.bad{background:var(--bad-50);color:var(--bad)}.statpill.mat{background:var(--mat-50);color:var(--mat)}.sectitle{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);margin:22px 0 10px;display:flex;align-items:center;gap:8px}.iconbtn{width:30px;height:30px;border-radius:9px;border:1px solid var(--line);background:#fff;color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:.13s}.iconbtn:hover{border-color:var(--brand-600);color:var(--brand-700);background:var(--brand-50)}.app{flex-direction:column;height:100vh;overflow:hidden}.appbody{display:flex;flex:1;min-height:0;overflow:hidden}.topbar{display:flex;align-items:center;gap:9px;padding:9px 18px;background:#142339;box-shadow:0 2px 12px #10203838;position:sticky;top:0;z-index:50;flex-wrap:wrap;box-sizing:border-box}.topbar .tb-logo{width:32px;height:32px;border-radius:9px;background:var(--brand-grad);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px;color:#fff;flex-shrink:0;box-shadow:0 6px 16px #2c6bd64d}.topbar .tb-brand b{color:#fff;font-size:14.5px;font-weight:600;display:block;line-height:1.1}.topbar .tb-brand span{color:#fff9;font-size:10px}.topbar .tb-module{display:inline-flex;align-items:center;gap:7px;color:#fff;font-size:13px;font-weight:600;padding:5px 12px;border-radius:9px;background:#ffffff29;margin-left:6px}.topbar .tb-module .ic svg{width:16px;height:16px;stroke:#fff}.topbar .tb-right{margin-left:auto;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tb-menu{position:relative}.topbar .tb-reg{display:inline-flex;align-items:center;gap:7px;color:#ffffffd6;font-size:13px;font-weight:600;padding:6px 11px;border-radius:9px;border:none;background:none;cursor:pointer}.topbar .tb-reg .ic svg{width:16px;height:16px}.topbar .tb-reg:hover,.topbar .tb-reg.active{background:#ffffff26;color:#fff}.tb-drop{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--sh-3);min-width:214px;padding:7px;z-index:51;animation:fadeUp .18s ease both}.tb-drop a{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:9px;cursor:pointer;font-size:13.5px;font-weight:600;color:var(--ink-2)}.tb-drop a:hover,.tb-drop a.active{background:var(--brand-50);color:var(--brand-700)}.tb-drop .sep{height:1px;background:var(--line);margin:6px 4px}.tb-drop .info{font-size:11px;color:var(--ink-3);padding:6px 11px;line-height:1.5}.tb-user{display:flex;align-items:center;gap:9px;padding-left:12px;border-left:1px solid rgba(255,255,255,.18)}.tb-user .nm{font-size:13px;font-weight:600;color:#fff;line-height:1.15}.tb-user .role{font-size:10px;color:#cfe0f5;background:#ffffff1f;border-radius:5px;padding:1px 6px;display:inline-block;margin-top:2px}.tb-user a{color:#ffffffb8;text-decoration:underline}.tb-user a:hover{color:#fff}.topbar{flex-shrink:0}.side{position:static;top:auto;height:100%;overflow-y:auto;flex-shrink:0;transition:width .18s ease}.main{display:flex;flex-direction:column;overflow:hidden;min-height:0}.side-head{display:flex;align-items:center;gap:10px;padding:14px;border-bottom:1px solid rgba(255,255,255,.12)}.side .tb-logo{width:34px;height:34px;border-radius:9px;background:var(--brand-grad);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:13px;color:#fff;flex-shrink:0}.side .tb-brand b{color:#fff;font-size:14.5px;font-weight:600;display:block;line-height:1.1}.side .tb-brand span{color:#fff9;font-size:10px}.side-toggle{margin-left:auto;flex-shrink:0;width:26px;height:26px;border-radius:7px;border:none;background:#ffffff1f;color:#fff;cursor:pointer;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center}.side-toggle:hover{background:#ffffff38}.navgrp{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#ffffff73;font-weight:700;padding:10px 20px 4px}.side-user{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid rgba(255,255,255,.12);color:#fff;flex-wrap:wrap}.side-user .nm{font-size:13px;font-weight:600;line-height:1.15}.side-user .role{font-size:10px;color:#cfe0f5;background:#ffffff1f;border-radius:5px;padding:1px 6px;display:inline-block;margin-top:2px}.side-logout{display:flex;align-items:center;gap:8px;color:#ffffffc7;cursor:pointer;font-size:12px;font-weight:600;margin-left:auto}.side-logout:hover{color:#fff}.side.collapsed{width:64px}.side.collapsed .lbl,.side.collapsed .navgrp{display:none}.side.collapsed .nav a{justify-content:center;padding:11px 0;gap:0;position:relative}.side.collapsed .side-head{flex-direction:column;gap:8px;padding:12px 0}.side.collapsed .side-toggle{margin:0}.side.collapsed .side-user{justify-content:center;padding:10px 0}.side.collapsed .side-logout{margin:0}.side.collapsed .conn{text-align:center;padding:4px 0}.side.collapsed .navpill{position:absolute;top:5px;right:9px}.phead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;grid-template-columns:none;background:#fff;border:1px solid var(--line);border-left:3px solid var(--brand-600);border-radius:12px;padding:10px 18px;margin-bottom:16px;box-shadow:var(--sh-1)}.main{padding:0}.main-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:auto;padding:18px 28px}.ctxbar{flex-shrink:0;display:flex;align-items:center;gap:9px;padding:5px 16px;background:#142339;border-bottom:1px solid rgba(255,255,255,.1);box-shadow:0 2px 8px #1020382e;position:relative;z-index:6;flex-wrap:wrap}.ctxbar .cx-back{width:26px;height:26px;border-radius:7px;border:1px solid rgba(255,255,255,.22);background:#ffffff14;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ctxbar .cx-back:hover{border-color:#5fa0dc;color:#5fa0dc;background:#ffffff24}.ctxbar .cx-kind{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;border-radius:6px;background:#ffffff24;color:#cfe0f5}.ctxbar .cx-title{font-size:12.5px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px}@media (min-width:1400px){.ctxbar .cx-title{max-width:320px}}.ctxbar .cx-sep{color:#ffffff73}.phead-main{min-width:0;flex:1}.phead .bcrumb{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-3);margin-bottom:5px;flex-wrap:wrap}.phead .crumb-back{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:7px;border:1px solid var(--line);background:#fff;color:var(--ink-2);cursor:pointer;padding:0}.phead .crumb-back:hover{border-color:var(--brand-600);color:var(--brand-600);background:var(--brand-50)}.phead .phead-kind{margin-bottom:0}.phead h1{font-size:22px;font-weight:700;letter-spacing:-.01em;color:var(--ink);line-height:1.2;display:block;text-align:left;justify-content:flex-start}.phead .sub{color:var(--ink-3);font-size:12.5px;margin-top:4px;text-align:left}.phead-right{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-self:auto}.stepper-slim{display:flex;align-items:center;gap:0;background:#fff;border:1px solid var(--line);border-radius:var(--r-pill);padding:5px 8px;box-shadow:var(--sh-1);flex-wrap:wrap}.stepper-slim .sep{flex:0 0 16px;height:2px;background:#c9d2de;border-radius:2px;margin:0 2px}.chf-metrics{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--ink-2);background:#fff;border:1px solid var(--line);border-top:none;border-radius:0 0 12px 12px;padding:7px 14px;margin:-1px 6px 0}.chf-metrics b{font-weight:700;font-variant-numeric:tabular-nums}.chf-tint thead th{color:var(--tabc)!important;background:var(--tabc-bg)!important;border-bottom-color:var(--tabc-bd)!important}.chf-tint .tabs a.active,.chf-tint .tabs a.on{background:var(--tabc)!important;box-shadow:none!important}.chf-tint table th,.chf-tint table td{border-right:1px solid var(--line-2)}.chf-tint table th:last-child,.chf-tint table td:last-child{border-right:none}.chf-tint table tbody td{border-bottom:1px solid var(--line-2)}.chf-tint .chf tbody tr td,.chf-tint .chf tbody tr td.sticky,.chf-tint .chf tbody tr td.c1,.chf-tint .chf tbody tr td.c2{background:#fff}.chf-tint .chf tbody tr.r-auto td:first-child{border-left:4px solid #34a06e}.chf-tint .chf tbody tr.r-prop td:first-child{border-left:4px solid #d98a17}.chf-tint .chf tbody tr.r-manq td:first-child{border-left:4px solid #d9534f}.chf-tint .chf tbody tr.r-val td:first-child{border-left:4px solid #2f9e6e}.chf tr.r-opt td{background:#f6f7f9;color:#6b7280}.chf-tint .chf tbody tr.r-opt td{background:#fafbfc}.chf-tint .chf tbody tr.r-opt td:first-child{border-left:4px solid #9AA7BA}[data-theme=dark] .chf tr.r-opt td,[data-theme=dark] .chf-tint .chf tbody tr.r-opt td{background:var(--panel-2);color:var(--ink-3)}.opt-pill{display:inline-flex;align-items:center;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--ink-3);cursor:pointer}.opt-pill:hover{border-color:var(--brand-600);color:var(--brand-700)}.opt-pill.on{background:var(--bad);color:#fff;border-color:var(--bad)}.opt-pill.on:hover{background:var(--rouge);color:#fff;border-color:var(--rouge);filter:brightness(1.05)}[data-theme=dark] .opt-pill{background:var(--panel-2)}[data-theme=dark] .opt-pill.on{background:var(--bad);border-color:var(--bad);color:#fff}[data-theme=dark]{--bg:#0A1220;--panel:#131E33;--panel-2:#0F1930;--raise:#182645;--line:#25324B;--line-soft:#1C2942;--line-2:#1C2942;--ink:#EAF0FA;--ink-2:#A9B6CE;--ink-3:#8A97B0;--ink-strong:#EAF0FA;--brand:#5B82F5;--brand-strong:#88A5FB;--brand-50:#16244A;--brand-100:#2E4478;--brand-line:#2E4478;--brand-600:#5B82F5;--brand-700:#88A5FB;--brand-grad:#5B82F5;--ok:#3FBE86;--ok-50:#0F2E20;--ok-line:#1E5C40;--ok-grad:#3FBE86;--warn:#DCA64A;--warn-50:#332813;--warn-line:#5E4A1E;--bad:#EF7269;--bad-50:#361713;--bad-line:#6A2822;--mat:#4F9BE6;--mat-50:#12233A;--mat-line:#24405E;--mo:#DCA64A;--mo-50:#2E2412;--calc:#221D12;--calc-line:#463B21;--sh-1:0 1px 2px rgba(0,0,0,.4);--sh-2:0 6px 20px rgba(0,0,0,.45);--sh-3:0 14px 44px rgba(0,0,0,.6);--sh1:var(--sh-1);--sh2:var(--sh-2);--sh3:var(--sh-3);--chip:#182645;--bleu:#5B82F5;--bleu2:#88A5FB;--bleu-clair:#16244A;--saisie:#16244A;--bord:#25324B;--gris:#8A97AE;--vert:#3FBE86;--vert-clair:#0F2E20;--orange:#DCA64A;--orange-clair:#332813;--rouge:#EF7269;--rouge-clair:#361713;--beige:#221D12;--beige-bord:#463B21}[data-theme=dark] body{background:var(--bg);color:var(--ink)}[data-theme=dark] td{border-bottom-color:var(--line-soft)}[data-theme=dark] th{border-bottom-color:var(--brand-line)}[data-theme=dark] tbody tr:hover td{background:var(--brand-50)}[data-theme=dark] .sticky{background:var(--panel);box-shadow:1px 0 0 var(--line)}[data-theme=dark] tbody tr:hover td.sticky{background:var(--brand-50)}[data-theme=dark] .topscroll{background:var(--panel-2)}[data-theme=dark] .col,[data-theme=dark] .col h4{background:var(--panel-2)}[data-theme=dark] .modal,[data-theme=dark] .login-card{background:var(--panel);color:var(--ink)}[data-theme=dark] .btn.ghost{background:var(--panel);color:var(--ink-2)}[data-theme=dark] .search,[data-theme=dark] input.ed,[data-theme=dark] select.ed,[data-theme=dark] textarea.ed,[data-theme=dark] .field input,[data-theme=dark] .field select{background:var(--panel-2);color:var(--ink);border-color:var(--line)}[data-theme=dark] .cellcalc{color:var(--ink-2)}[data-theme=dark] .tag{background:var(--raise);color:var(--ink-2)}[data-theme=dark] .side-toggle.theme{background:#ffffff1f}[data-theme=dark] .phead,[data-theme=dark] .stepper,[data-theme=dark] .stepper-slim{background:var(--panel)}[data-theme=dark] .stepper .step .n{background:var(--raise);color:var(--ink-3)}[data-theme=dark] .tabs{background:var(--panel)}[data-theme=dark] .tabs a:hover{background:var(--brand-50)}[data-theme=dark] .chip{background:var(--chip);color:var(--ink-2)}[data-theme=dark] .subtabs a{color:var(--ink-2)}[data-theme=dark] .helpdrawer,[data-theme=dark] .tb-drop{background:var(--panel)}[data-theme=dark] .helpdrawer .dh{background:var(--brand-50)}[data-theme=dark] .tb-drop a{color:var(--ink-2)}[data-theme=dark] .tb-drop a:hover,[data-theme=dark] .tb-drop a.active{background:var(--brand-50);color:var(--brand-strong)}[data-theme=dark] .compitem{background:var(--panel-2)}[data-theme=dark] .compitem:hover{background:var(--raise)}[data-theme=dark] .afcard,[data-theme=dark] .covtile,[data-theme=dark] .chf-metrics{background:var(--panel)}[data-theme=dark] .iconbtn{background:var(--panel);color:var(--ink-2)}[data-theme=dark] .empty{color:var(--ink-3)}[data-theme=dark] .help{background:var(--brand-50)}[data-theme=dark] .rec td.ro,[data-theme=dark] .rec th.lock{background:var(--calc)}[data-theme=dark] .afcard,[data-theme=dark] .covtile{background:var(--panel)}[data-theme=dark] .afcard .bar2{background:var(--raise)}[data-theme=dark] .crumb-back,[data-theme=dark] .phead .crumb-back{background:var(--panel);color:var(--ink-2)}[data-theme=dark] .ind{background:var(--panel)}[data-theme=dark] .ind .h{background:var(--panel-2);color:var(--ink-3)}[data-theme=dark] .ind .ttl{background:var(--raise)}[data-theme=dark] .btn.ghost{color:var(--ink-2)}[data-theme=dark] .btn.ghost:hover{background:var(--brand-50)}[data-theme=dark] .dirty td,[data-theme=dark] .st-verif td,[data-theme=dark] .st-verif td.sticky{background:var(--warn-50)!important;color:var(--ink)}[data-theme=dark] .subline td{background:var(--panel-2);color:var(--ink-2)}[data-theme=dark] .bulkbar{border-color:var(--brand-line)}[data-theme=dark] .loader{background:#0a1220eb}[data-theme=dark] .spin{border-color:var(--line);border-top-color:var(--brand-600)}[data-theme=dark] .topscroll{border-color:var(--line)}[data-theme=dark] .help{border-color:transparent}[data-theme=dark] .note{background:var(--mat-50)}[data-theme=dark] .constructeur .col .inner{background:var(--panel)}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{color:var(--ink)}[data-theme=dark] textarea{background:var(--panel-2);border-color:var(--line)}[data-theme=dark] input.ed,[data-theme=dark] select.ed,[data-theme=dark] textarea.ed{background:var(--panel-2)}.dashkpi{transition:border-color .14s,box-shadow .14s,transform .14s}.dashkpi:hover{border-color:var(--brand-line);box-shadow:var(--sh-2);transform:translateY(-2px)}.dashrow{transition:background .12s}.dashrow:last-child{border-bottom:none}.dashrow:hover{background:var(--brand-50)}.pg-axis{position:relative;height:22px;border-bottom:1px solid var(--line)}.pg-mo{position:absolute;top:3px;font-size:10.5px;color:var(--ink-3);transform:translate(-50%)}.pg-row{display:flex;align-items:stretch;min-height:26px;border-bottom:1px solid var(--line-soft)}.pg-lab{width:190px;flex-shrink:0;display:flex;align-items:center;gap:6px;padding:2px 6px;border-right:1px solid var(--line);font-size:12px;position:sticky;left:0;z-index:3;background:var(--panel)}.pg-row.sec .pg-lab{background:var(--raise);font-weight:700}.pg-scroll{overflow-x:auto}.pg-con{position:absolute;top:0;bottom:0;z-index:4}.pg-con .body{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,rgba(120,130,150,.24),rgba(120,130,150,.24) 4px,transparent 4px,transparent 8px);border-left:1px dashed var(--bord);border-right:1px dashed var(--bord);pointer-events:none}.pg-con .hd{position:absolute;top:0;left:0;right:0;height:14px;background:#78829680;color:#fff;font-size:9px;padding:0 4px;cursor:grab;white-space:nowrap;overflow:hidden;display:flex;align-items:center;pointer-events:auto}.pg-con .hh{position:absolute;top:0;width:8px;height:100%;cursor:ew-resize;background:#5a647859;pointer-events:auto}.pg-con.sel{outline:2px solid var(--brand-600)}.pg-pop{position:fixed;z-index:61;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--sh3);padding:7px;width:210px}.pg-pop .it{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;cursor:pointer;font-size:13px}.pg-pop .it:hover{background:var(--raise)}.ptrack{position:relative;flex:1;min-width:0}.pbar{position:absolute;top:5px;height:15px;border-radius:3px;color:#fff;font-size:9.5px;display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none}.pbar.sec{opacity:.4;height:9px;top:8px;cursor:default;background:var(--ink-3)!important}.phnd{position:absolute;top:0;width:9px;height:100%;cursor:ew-resize}.phnd.r{right:-3px}.phnd.l{left:-3px}.pg-x{color:var(--rouge);cursor:pointer;opacity:.55;font-weight:700}.pg-x:hover{opacity:1}.pg-nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:text}.pg-dot{width:11px;height:11px;border-radius:3px;flex-shrink:0;cursor:pointer;border:1px solid rgba(0,0,0,.1)}.pg-chev{width:12px;color:var(--ink-3);cursor:pointer}.pg-abs{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,rgba(120,130,150,.2),rgba(120,130,150,.2) 4px,transparent 4px,transparent 8px);border-left:1px dashed var(--bord);border-right:1px dashed var(--bord)}.pg-abs b{position:absolute;top:1px;left:3px;font-size:9px;color:var(--ink-3);font-weight:600;cursor:pointer;pointer-events:auto}.pg-jstrip{position:relative;height:30px;border-top:1px solid var(--line)}.pg-jal{position:absolute;top:4px;transform:translate(-50%);text-align:center;cursor:pointer}.pg-jal i{display:block;width:9px;height:9px;background:var(--brand-600);transform:rotate(45deg);margin:0 auto}.pg-jal span{font-size:9px;color:var(--ink-2);white-space:nowrap}@media print{.side,.mtopbar,.ctxbar,.scrim,.no-print,.flash{display:none!important}.app,.appbody,.main{display:block!important;height:auto!important;overflow:visible!important}.main-scroll{overflow:visible!important;padding:0!important;height:auto!important}.panel{box-shadow:none!important;break-inside:avoid}body{background:#fff!important}}@keyframes pulseDot{0%{box-shadow:0 0 #dca64a8c}70%{box-shadow:0 0 0 6px #dca64a00}to{box-shadow:0 0 #dca64a00}}.pulse-dot{animation:pulseDot 1.4s infinite}[data-theme=dark] .chf .fchip{background:var(--panel-2);color:var(--ink-2)}[data-theme=dark] .chf .fchip.on{background:var(--brand-600);border-color:var(--brand-600);color:#fff}[data-theme=dark] .chf thead th,[data-theme=dark] .hcol thead th{background:var(--brand-50);color:var(--brand-strong);border-bottom-color:var(--brand-line)}[data-theme=dark] .chf-tint .chf tbody tr td,[data-theme=dark] .chf-tint .chf tbody tr td.sticky,[data-theme=dark] .chf-tint .chf tbody tr td.c1,[data-theme=dark] .chf-tint .chf tbody tr td.c2{background:var(--panel)}[data-theme=dark] .cellcalc{background:var(--calc)}.chf tbody tr.dpgf-sec td{background:var(--raise);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 10px}.chf-tint .chf tbody tr.dpgf-sec td{background:var(--raise)!important;border-left:none!important}tbody tr.dpgf-sec:hover td{background:var(--raise)}[data-theme=dark] .chf tbody tr.dpgf-sec td,[data-theme=dark] .chf-tint .chf tbody tr.dpgf-sec td{background:var(--panel-2)!important}.synthtbl thead th{background:var(--panel-2);color:var(--ink-3);border-bottom:1px solid var(--line);font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;font-weight:700}.synthtbl tbody tr:hover td{background:var(--brand-50)}.synthtbl td{border-bottom:1px solid var(--line-soft)}@media (max-width:1024px){.main-scroll{padding:14px 16px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.constructeur{grid-template-columns:1fr}.stepper{flex-wrap:wrap}.fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.modal.wide{width:96vw}.afgrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr))}.r4,.rcock{grid-template-columns:repeat(2,minmax(0,1fr))!important}.r2a{grid-template-columns:minmax(0,1fr)!important}.r5{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media (max-width:820px){.rcock{grid-template-columns:minmax(0,1fr)!important}.ctxbar .cx-title{max-width:38vw}.fgrid{grid-template-columns:1fr}.r2{grid-template-columns:minmax(0,1fr)!important}.search{width:100%}}@media (max-width:560px){.cards{grid-template-columns:1fr}.r4,.r5{grid-template-columns:1fr!important}}@media (max-width:1024px) and (pointer:coarse){.btn,.tabs a{padding:11px 16px}.nav a,.side-act{padding-top:13px;padding-bottom:13px}.chip,.chf .fchip{padding-top:7px;padding-bottom:7px}input.ed,select.ed{min-height:34px}}.side-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding:6px 0}.side-usr{display:flex;align-items:center;gap:10px;padding:10px 14px}.side-usr .ava{width:30px;height:30px;border-radius:50%;background:var(--brand-grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.side-usr .nm{font-size:13px;font-weight:600;color:#fff;line-height:1.15}.side-usr .role{font-size:10px;color:#cfe0f5;background:#ffffff1f;border-radius:5px;padding:1px 6px;display:inline-block;margin-top:2px}.side-act{display:flex;align-items:center;gap:11px;width:100%;padding:10px 16px;border:none;background:none;color:#ffffffd1;font-size:13px;font-weight:500;font-family:inherit;text-align:left;cursor:pointer}.side-act:hover{background:#ffffff14;color:#fff}.side-act .ic{width:18px;text-align:center;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.side-act.danger{color:#ef9c95}.side-act.danger:hover{color:#fff;background:#ef72692e}.side.collapsed .side-usr{justify-content:center;padding:10px 0}.side.collapsed .side-act{justify-content:center;padding:11px 0;gap:0}.mtopbar{display:flex;align-items:center;gap:10px;padding:9px 12px;background:#142339;box-shadow:0 2px 12px #10203838;flex-shrink:0;z-index:50}.mtopbar .tb-logo{width:30px;height:30px;border-radius:9px;background:var(--brand-grad);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:12px;color:#fff;flex-shrink:0}.mtopbar .ava{width:30px;height:30px;border-radius:50%;background:var(--brand-grad);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;flex-shrink:0}.mburg{width:34px;height:34px;border-radius:8px;border:none;background:#ffffff1f;color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.mburg:hover{background:#ffffff38}.mburg .ic-svg{width:20px;height:20px}.side.drawer{position:fixed;top:0;left:0;bottom:0;width:236px;height:100vh;z-index:71;box-shadow:var(--sh-3);transform:translate(-100%);transition:transform .2s cubic-bezier(.4,0,.2,1)}.side.drawer.open{transform:none}[data-theme=dark] .mtopbar{background:#0f1930}
