:root{--brand: #2a4b8d;--brand-dark: #1d3567;--bg: #f3f5f9;--card: #fff;--text: #1d2433;--muted: #6b7385;--border: #dde2ec;--error: #c62828;--error-bg: #fdecea;--warn: #b26a00;--warn-bg: #fff4e0;--ok: #2e7d32;--ok-bg: #e8f5e9;--info: #1565c0;--info-bg: #e8f1fc;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}h1{font-size:20px;margin:0;font-weight:600}h3{font-size:15px;margin:0 0 10px;display:flex;align-items:center;gap:8px}h4{font-size:13px;margin:10px 0 4px;display:flex;align-items:center;gap:6px}a{color:var(--brand)}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:Consolas,Cascadia Mono,monospace;font-size:12.5px}.num{text-align:right}.topbar{display:flex;align-items:center;gap:24px;height:52px;padding:0 20px;background:var(--brand-dark);color:#fff}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:600;font-size:16px}.brand-logo{background:#fff;color:var(--brand-dark);font-weight:800;padding:2px 7px;border-radius:4px;letter-spacing:1px}.topbar nav{display:flex;gap:4px}.topbar nav a{color:#c8d3ea;text-decoration:none;padding:6px 12px;border-radius:6px}.topbar nav a.active,.topbar nav a:hover{background:#ffffff24;color:#fff}.topbar-info{margin-left:auto;font-size:12px;color:#c8d3ea}.page{padding:18px 20px 60px;max-width:1700px;margin:0 auto}.page-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.title-block{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.back{text-decoration:none;font-size:13px}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:14px}.card+.card,section+section{margin-top:14px}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:14px;align-items:start}.editor-side{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}@media(max-width:1200px){.editor-grid{grid-template-columns:minmax(0,1fr)}.editor-side{position:static;max-height:none}}input,select,textarea,button{font:inherit;color:inherit}input,select,textarea{border:1px solid var(--border);border-radius:6px;padding:6px 8px;background:#fff}input:focus,select:focus,textarea:focus{outline:2px solid #8fb0ec;outline-offset:-1px;border-color:transparent}.search{width:280px}.btn{border:1px solid var(--border);background:#fff;border-radius:6px;padding:7px 14px;cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:#f0f3f9}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover:not(:disabled){background:var(--brand-dark)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.small{padding:4px 10px;font-size:12.5px}.btn.tiny{padding:2px 8px;font-size:12px;margin-top:4px}.btn.danger{color:var(--error)}.icon{border:none;background:none;cursor:pointer;padding:2px 5px;color:var(--muted);border-radius:4px}.icon:hover:not(:disabled){background:#eef1f6;color:var(--text)}.icon.danger:hover{color:var(--error)}.icon:disabled{opacity:.25;cursor:default}fieldset{border:none;margin:0;padding:0;min-width:0}.form-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px 12px}.form-grid label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.form-grid label input{color:var(--text);font-size:14px}.form-grid .span2{grid-column:span 2}.form-grid label.check{flex-direction:row;align-items:center;gap:8px;font-size:13px;color:var(--text)}@media(max-width:1000px){.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.deploy{display:flex;flex-direction:column;gap:3px}.deploy .label{font-size:12px;color:var(--muted)}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;width:fit-content}.segmented button{border:none;background:#fff;padding:6px 16px;cursor:pointer}.segmented button+button{border-left:1px solid var(--border)}.segmented button.on{background:var(--brand);color:#fff}table.grid{width:100%;border-collapse:collapse}.grid th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:6px 8px;border-bottom:2px solid var(--border);white-space:nowrap}.grid th.num{text-align:right}.grid td{padding:6px 8px;border-bottom:1px solid #edf0f5;vertical-align:top}.grid tr.clickable{cursor:pointer}.grid tr.clickable:hover td{background:#f6f8fc}.grid td.actions{white-space:nowrap;text-align:right}.grid td.actions .btn+.btn{margin-left:6px}.empty{text-align:center;color:var(--muted);padding:30px!important}.lines td{padding:3px 4px;vertical-align:top}.lines .c-ref{width:112px}.lines .c-label{min-width:260px}.table-scroll{overflow-x:auto}.lines .c-qty{width:88px}.lines .c-money{width:84px}.lines .c-pct{width:64px}.lines .c-total{width:104px;padding-top:9px}.lines td.c-money:not(:has(input)),.lines td.c-pct:not(:has(input)){padding-top:9px}.lines .c-ref span{display:inline-block;padding-top:6px}.lines .c-act{width:82px;white-space:nowrap;text-align:right;padding-top:5px}.cell{width:100%;border:1px solid transparent;background:transparent;padding:5px 6px;border-radius:4px}.cell:hover:not([readonly]){border-color:var(--border);background:#fff}.cell[readonly]{cursor:default}.cell.num{text-align:right}.cell.bad{border-color:var(--error);background:var(--error-bg);color:var(--error);font-weight:600}.bad-text{color:var(--error);font-weight:600}input.cell[type=number]{-moz-appearance:textfield}input.cell[type=number]::-webkit-inner-spin-button,input.cell[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.sub{font-size:11px;color:var(--muted);padding:0 6px;text-align:right;white-space:nowrap}.line-help{font-size:11.5px;color:var(--muted);padding:0 7px 3px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}.note{color:var(--info);font-style:italic}.tag{display:inline-block;font-size:11px;background:#eef1f7;color:#4a5470;border-radius:4px;padding:0 6px}tr.row-item.has-error td:first-child{box-shadow:inset 3px 0 0 var(--error)}tr.row-item.has-warning td:first-child{box-shadow:inset 3px 0 0 var(--warn)}tr.row-section td{background:#f4f6fb;border-bottom-color:var(--border)}.section-input{font-weight:700;color:var(--brand-dark)}tr.row-text textarea{resize:vertical;font-size:13px;color:#444;line-height:1.4}.picker{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border)}.picker-bar{display:flex;gap:8px}.picker-search{position:relative;flex:1}.picker-search input{width:100%;padding:9px 12px;border-color:#b9c6e0}.picker-results{position:absolute;z-index:20;top:calc(100% + 4px);left:0;right:0;max-height:420px;overflow:auto;margin:0;padding:4px;list-style:none;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 10px 30px #141e3c2e}.picker-results li{padding:7px 10px;border-radius:6px;cursor:pointer}.picker-results li.active{background:#edf2fc}.pr-main{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.pr-main .muted{font-size:12px;margin-left:auto}.pr-meta{display:flex;gap:12px;font-size:12px;color:var(--muted);margin-top:2px}.pr-comment{font-size:12px;color:var(--info);margin-top:2px}.picker-extra{display:flex;gap:8px;margin-top:8px}.totals-row{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.validity{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);flex:1;max-width:520px}.totals{border-collapse:collapse;background:#fff;border:1px solid var(--border);border-radius:8px;min-width:320px}.totals th{text-align:left;font-weight:500;padding:6px 14px;color:var(--muted)}.totals td{text-align:right;padding:6px 14px;font-variant-numeric:tabular-nums}.totals .grand th,.totals .grand td{font-size:16px;font-weight:700;color:var(--text);border-top:1px solid var(--border)}.totals .sep th,.totals .sep td{border-top:2px solid var(--border)}.rules-card.ko{border-top:3px solid var(--error)}.rules-card.ok{border-top:3px solid var(--ok)}.rule-group ul{list-style:none;margin:0;padding:0}.rule-ok{margin:0 0 0 14px;font-size:12.5px;color:var(--ok)}.issue{font-size:12.5px;padding:6px 8px;border-radius:6px;margin:4px 0;display:flex;flex-direction:column;align-items:flex-start}.issue.error{background:var(--error-bg);color:#8e1c1c}.issue.warning{background:var(--warn-bg);color:#7a4800}.issue.info{background:var(--info-bg);color:#0d4a8f}.issue .link{cursor:pointer;text-decoration:underline dotted}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.ok{background:var(--ok)}.dot.ko{background:var(--error)}.pill{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:10px;white-space:nowrap}.pill.error{background:var(--error-bg);color:var(--error)}.pill.ok{background:var(--ok-bg);color:var(--ok)}.margin-card dl{display:grid;grid-template-columns:1fr auto;gap:6px 10px;margin:0}.margin-card dt{color:var(--muted)}.margin-card dd{margin:0;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.margin-card .good{color:var(--ok)}.margin-card .bad{color:var(--error)}.hint{font-size:12px;color:var(--muted);margin:10px 0 0}.badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:12px}.status-brouillon{background:#eceff4;color:#4a5470}.status-a_valider{background:var(--warn-bg);color:var(--warn)}.status-valide{background:var(--ok-bg);color:var(--ok)}.save-state{font-size:12px;color:var(--ok)}.save-state.pending{color:var(--muted)}.banner{background:var(--info-bg);color:#0d4a8f;border-radius:8px;padding:10px 14px;margin-bottom:14px}.stepper{display:flex;list-style:none;margin:0 8px 0 0;padding:0;font-size:12px}.stepper li{padding:4px 10px 4px 16px;background:#e6eaf2;color:var(--muted);clip-path:polygon(0 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,0 100%,8px 50%);margin-right:-4px}.stepper li:first-child{clip-path:polygon(0 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,0 100%);padding-left:10px}.stepper li.done{background:#c9d6ef;color:var(--brand-dark)}.stepper li.current{background:var(--brand);color:#fff;font-weight:600}.print-overlay{position:fixed;inset:0;z-index:100;background:#1e243299;overflow:auto;padding:20px 0 60px}.print-actions{position:sticky;top:0;display:flex;justify-content:center;gap:10px;margin-bottom:16px}.sheet{width:210mm;min-height:297mm;margin:0 auto;background:#fff;padding:12mm 12mm 10mm;font-family:Arial,Helvetica,sans-serif;font-size:11px;color:#000;box-shadow:0 4px 30px #0000004d;display:flex;flex-direction:column}.p-head{display:flex;justify-content:space-between;align-items:center}.p-logo{font-size:30px;font-weight:800;color:var(--brand);letter-spacing:2px;line-height:1}.p-logo small{display:block;font-size:10px;letter-spacing:6px;color:#888;font-weight:400}.p-title{border:1px solid #000;padding:8px 14px;font-size:17px;font-weight:700}.p-meta{margin:10px 0 10px auto;border-collapse:collapse}.p-meta th{text-align:left;font-weight:400;padding:1px 10px 1px 0}.p-boxes{display:grid;grid-template-columns:1fr 1fr 1fr;border:1px solid #888}.p-box{position:relative;padding:14px 8px 8px;min-height:90px}.p-box+.p-box{border-left:1px solid #888}.p-box dl{display:grid;grid-template-columns:auto 1fr;gap:2px 8px;margin:0}.p-box dd{margin:0}.p-box dd:before{content:": "}.p-legend{position:absolute;top:-7px;left:50%;transform:translate(-50%);background:#fff;padding:0 6px;white-space:nowrap}.p-lines{width:100%;border-collapse:collapse;margin-top:14px;border:1px solid #000}.p-lines th{border:1px solid #000;padding:6px 4px;font-weight:400}.p-lines td{border-left:1px solid #000;border-right:1px solid #000;padding:3px 4px;vertical-align:top}.p-lines td:first-child{white-space:nowrap}.p-lines .p-section td{padding-top:12px}.p-lines .p-text td{white-space:pre-line}.p-lines tbody tr:last-child td{padding-bottom:14px}.p-foot{display:flex;justify-content:space-between;align-items:flex-start;margin-top:10px}.p-terms{text-align:center;padding:0 30px}.p-totals{border:1px solid #000;border-collapse:collapse;min-width:220px}.p-totals th{text-align:left;font-weight:400;padding:3px 8px}.p-totals td{text-align:right;padding:3px 8px}.p-totals .grand th,.p-totals .grand td{font-size:13px;font-weight:700;border-top:1px solid #000}.p-sub{margin:18px 0 0;font-size:12px}.p-validity{border:1px solid #000;text-align:center;padding:8px;margin-top:auto}.p-sign{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.p-sign>div{position:relative;border:1px solid #000;min-height:80px;padding:16px 6px 6px}.p-sign .p-legend{top:0;left:0;right:0;transform:none;text-align:center;border-bottom:1px solid #000;padding:2px}.p-stamp{position:absolute;right:6px;top:18px}.p-footer{text-align:center;font-size:9.5px;margin-top:10px}@media print{@page{size:A4;margin:0}body{background:#fff}.no-print{display:none!important}.print-overlay{position:static;background:none;padding:0;overflow:visible}.sheet{box-shadow:none;margin:0}.lines-card,.totals-row{display:none}}.catalogue-page .search{width:340px}.cat-nav{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:8px;padding:10px 0;background:var(--bg)}.cat-nav button{--accent: var(--brand);display:inline-flex;align-items:center;gap:7px;border:1px solid var(--border);background:#fff;border-radius:20px;padding:6px 14px;cursor:pointer;font-weight:500}.cat-nav button i{width:10px;height:10px;border-radius:50%;background:var(--accent)}.cat-nav button span{font-size:12px;color:var(--muted);background:#f0f2f7;border-radius:10px;padding:0 7px}.cat-nav button:hover:not(:disabled){border-color:var(--accent)}.cat-nav button.on{background:var(--accent);border-color:var(--accent);color:#fff}.cat-nav button.on i{background:#fff}.cat-nav button.on span{background:#ffffff40;color:#fff}.cat-nav button:disabled{opacity:.4;cursor:default}.legend{font-size:12px;margin:2px 0 14px}.legend b{color:var(--text)}.cat-card{--accent: var(--brand);background:#fff;border:1px solid var(--border);border-left:5px solid var(--accent);border-radius:10px;margin-bottom:22px;overflow:hidden;scroll-margin-top:60px}.cat-card>header{display:flex;align-items:baseline;gap:12px;padding:14px 18px 10px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 12%,#fff),#fff 70%)}.cat-card h2{margin:0;font-size:18px;color:var(--accent);font-weight:700}.cat-card .count{font-size:12.5px;color:var(--muted)}.cat-table{width:100%;border-collapse:collapse;table-layout:fixed}.cat-table .w-ref{width:120px}.cat-table .w-pack{width:70px}.cat-table .w-num{width:96px}.cat-table th{font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;font-weight:600;color:var(--muted);text-align:left;padding:7px 10px;border-bottom:1px solid var(--border);background:#fafbfd}.cat-table th.num{text-align:right}.cat-table td{padding:7px 10px;border-bottom:1px solid #f0f2f6;vertical-align:top;font-variant-numeric:tabular-nums}.cat-table tbody tr.item-row:hover td{background:color-mix(in srgb,var(--accent) 6%,#fff)}.cat-table .ref{white-space:nowrap;color:#4a5470}.cat-table .label{font-weight:500}.cat-table .meta{display:flex;flex-wrap:wrap;gap:2px 10px;margin-top:2px;font-size:12px}.cat-table .type{color:var(--muted)}.cat-table .tag{margin-left:6px}.cat-table .pack{font-size:12px;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,#fff);border-radius:4px;padding:1px 6px}.cat-table .pv{font-weight:700;color:var(--text);background:color-mix(in srgb,var(--accent) 5%,#fff)}.cat-table th.pv{color:var(--accent)}.cat-table .comment{color:#5a6275;font-style:italic}.cat-table .type+.comment:before{content:"·";margin-right:10px;color:var(--border);font-style:normal}.cat-table .on-demand{color:var(--warn);font-size:12px}.cat-table .subgroup-row td{padding:12px 10px 5px;font-size:12.5px;font-weight:700;color:var(--accent);border-bottom:2px solid color-mix(in srgb,var(--accent) 25%,#fff)}.cat-table .note-row td{font-size:12.5px;color:var(--info);background:var(--info-bg);padding:6px 10px}@media(max-width:760px){.cat-table .w-num{width:70px}.cat-table .w-ref{width:96px}}.thumb{display:inline-flex;align-items:center;justify-content:center;flex:none;background:#fff;border:1px solid var(--border);border-radius:6px;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:contain}.thumb-empty{color:#c5cbd8;font-size:12px}.cat-table .w-thumb{width:62px}.cat-table .thumb-cell{padding:4px 6px 4px 10px}.cat-table tr.item-row{cursor:pointer}.picker-results li{display:flex;gap:10px;align-items:flex-start}.pr-body{flex:1;min-width:0}.ref-link{border:none;background:none;padding:6px 0 0;cursor:pointer;color:var(--brand);text-decoration:underline dotted;text-underline-offset:3px}.ref-link:hover{color:var(--brand-dark);text-decoration-style:solid}.sheet-backdrop{position:fixed;inset:0;z-index:90;background:#141c2d59;display:flex;justify-content:flex-end}.product-sheet{position:relative;width:min(520px,100%);height:100%;overflow:auto;background:#fff;padding:22px 24px 30px;box-shadow:-10px 0 40px #0003;animation:slide-in .18s ease-out}@keyframes slide-in{0%{transform:translate(40px);opacity:0}}.product-sheet .close{position:absolute;top:14px;right:14px;font-size:16px}.ps-head{display:flex;gap:12px;align-items:baseline;font-size:12.5px}.product-sheet h2{margin:6px 0 2px;font-size:20px}.ps-title{margin:0;color:var(--muted)}.ps-image{margin:16px 0;min-height:160px;display:flex;align-items:center;justify-content:center;background:#fafbfd;border:1px solid var(--border);border-radius:8px;padding:10px}.ps-image img{max-width:100%;max-height:300px;object-fit:contain}.ps-prices{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:0 0 14px}.ps-prices div{background:#f4f6fb;border-radius:6px;padding:6px 8px}.ps-prices dt{font-size:11px;color:var(--muted)}.ps-prices dd{margin:2px 0 0;font-weight:600;font-variant-numeric:tabular-nums;font-size:13px}.ps-prices .pv{background:var(--brand)}.ps-prices .pv dt,.ps-prices .pv dd{color:#fff}.ps-comment{font-style:italic;color:#5a6275;margin:0 0 8px}.ps-note{color:var(--info);background:var(--info-bg);padding:6px 10px;border-radius:6px;margin:0 0 10px}.ps-summary{line-height:1.5;margin:0 0 12px}.ps-warn{color:#7a4800;background:var(--warn-bg);padding:6px 10px;border-radius:6px;font-size:12.5px}.ps-specs{width:100%;border-collapse:collapse;margin:6px 0 12px}.ps-specs th{text-align:left;font-weight:500;color:var(--muted);padding:6px 10px 6px 0;width:42%;vertical-align:top;border-bottom:1px solid #eef1f5}.ps-specs td{padding:6px 0;border-bottom:1px solid #eef1f5}.ps-source{font-size:12px;color:var(--muted)}@media(max-width:560px){.ps-prices{grid-template-columns:repeat(2,1fr)}}.editor{padding-bottom:0}.validity-card .validity{max-width:none}.totals-bar{position:sticky;bottom:0;z-index:30;margin:14px -20px 0;padding:10px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;background:#fff;border-top:1px solid var(--border);box-shadow:0 -6px 18px #141e3c14}.tb-group{display:flex;align-items:center;gap:22px}.tb-group+.tb-group{padding-left:28px;border-left:1px solid var(--border)}.tb-item{display:flex;flex-direction:column;line-height:1.2}.tb-item>span:not(.esl-price){font-size:11.5px;color:var(--muted)}.tb-item strong,.tb-item b{font-variant-numeric:tabular-nums;white-space:nowrap}.tb-item strong{font-size:17px}.tb-main strong{font-size:21px;color:var(--brand-dark)}.tb-monthly strong{color:var(--info)}.tb-internal{margin-left:auto}.tb-internal .good{color:var(--ok)}.tb-internal .bad{color:var(--error)}@media(max-width:900px){.tb-group+.tb-group{padding-left:0;border-left:none}.tb-internal{margin-left:0}}.modal-backdrop{position:fixed;inset:0;z-index:95;background:#141c2d66;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:#fff;border-radius:12px;padding:22px 24px;width:min(520px,100%);box-shadow:0 20px 60px #0000004d}.modal h3{font-size:18px;margin-bottom:6px}.modal .check{display:flex;gap:8px;align-items:center;margin:12px 0;font-size:13px}.margin-input{display:flex;gap:12px;align-items:center;margin:14px 0 4px;flex-wrap:wrap}.with-unit{display:flex;align-items:center;border:1px solid #b9c6e0;border-radius:6px;padding-right:10px;background:#fff}.with-unit input{border:none;font-size:20px;font-weight:600;width:160px;text-align:right;font-variant-numeric:tabular-nums}.with-unit input:focus{outline:none}.with-unit:focus-within{outline:2px solid #8fb0ec}.with-unit span{font-size:18px;color:var(--muted)}.margin-preview{background:#f4f6fb;border-radius:8px;padding:12px 14px;min-height:60px}.margin-preview.ko{background:var(--error-bg);color:#8e1c1c}.margin-preview dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0}.margin-preview dt{color:var(--muted)}.margin-preview dd{margin:0;font-variant-numeric:tabular-nums}.margin-preview .warn{color:var(--warn)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.lines-head{display:flex;align-items:center;gap:14px;margin-bottom:10px;flex-wrap:wrap}.shop-open{font-size:14.5px;padding:9px 18px}.shop{position:fixed;inset:0;z-index:80;background:var(--bg);display:flex;flex-direction:column}.shop-head{display:flex;align-items:center;gap:16px;padding:10px 20px;background:#fff;border-bottom:1px solid var(--border);flex-wrap:wrap}.shop-head h2{margin:0;font-size:17px;flex:1;min-width:200px}.shop-head .search{width:340px;max-width:100%}.shop-body{flex:1;min-height:0;display:grid;grid-template-columns:220px minmax(0,1fr) 330px}.shop-cats{overflow:auto;padding:14px 10px;display:flex;flex-direction:column;gap:4px;border-right:1px solid var(--border);background:#fff}.shop-cats button{--accent: var(--brand);display:flex;align-items:center;gap:8px;text-align:left;border:none;background:none;padding:9px 10px;border-radius:8px;cursor:pointer;font-weight:500}.shop-cats button i{width:10px;height:10px;border-radius:50%;background:var(--accent);flex:none}.shop-cats button span{margin-left:auto;font-size:11.5px;background:var(--accent);color:#fff;border-radius:10px;padding:0 7px}.shop-cats button:hover{background:#f2f4f8}.shop-cats button.on{background:color-mix(in srgb,var(--accent) 12%,#fff);color:var(--accent)}.shop-grid{overflow:auto;padding:16px;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-auto-rows:max-content;gap:14px;align-content:start;min-height:0}.shop-hint{grid-column:1 / -1;margin:0}.product-card{--accent: var(--brand);background:#fff;border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;transition:box-shadow .15s,border-color .15s}.product-card:hover{box-shadow:0 6px 20px #141e3c1a}.product-card.in-cart{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.product-card.disabled{opacity:.5}.pc-image{position:relative;height:140px;flex:none;border:none;border-radius:10px 10px 0 0;background:#fafbfd;cursor:zoom-in;padding:8px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #eef1f5}.pc-image img{max-width:100%;max-height:100%;object-fit:contain}.pc-badge{position:absolute;top:8px;right:8px;background:var(--accent);color:#fff;font-weight:700;font-size:12.5px;border-radius:12px;padding:2px 9px}.pc-body{padding:10px 12px 4px;flex:1;min-height:0}.pc-ref{font-size:11.5px;color:var(--muted)}.pc-body h4{margin:2px 0;font-size:14px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pc-sub{font-size:11.5px;color:var(--accent);font-weight:600}.pc-comment{margin:4px 0 0;font-size:11.5px;color:#5a6275;font-style:italic;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.pc-foot{padding:8px 12px 12px;display:flex;align-items:flex-end;justify-content:space-between;gap:8px}.pc-price{display:flex;flex-direction:column}.pc-price strong{font-size:16px;font-variant-numeric:tabular-nums}.pc-price em{color:var(--warn);font-size:13px}.pc-price span{font-size:11px;color:var(--muted)}.pc-add{padding:6px 12px;white-space:nowrap}.pc-incompat{font-size:11.5px;color:var(--muted);text-align:right}.stepper-qty{display:flex;align-items:center;border:1px solid var(--accent);border-radius:8px;overflow:hidden}.stepper-qty button{border:none;background:color-mix(in srgb,var(--accent) 10%,#fff);color:var(--accent);width:30px;height:32px;font-size:18px;font-weight:700;cursor:pointer}.stepper-qty button:hover{background:color-mix(in srgb,var(--accent) 20%,#fff)}.stepper-qty input{width:54px;border:none;border-radius:0;text-align:center;font-weight:700;font-variant-numeric:tabular-nums;padding:6px 2px}.shop-cart{overflow:auto;padding:16px;background:#fff;border-left:1px solid var(--border);display:flex;flex-direction:column}.shop-cart h3{margin-bottom:8px}.shop-cart h4{margin:16px 0 6px}.cart-lines{list-style:none;margin:0;padding:0;font-size:13px}.cart-lines li{display:grid;grid-template-columns:1fr auto auto;gap:8px;padding:5px 0;border-bottom:1px solid #f0f2f6;align-items:baseline}.cl-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cl-qty{color:var(--muted);font-variant-numeric:tabular-nums}.cl-total{font-variant-numeric:tabular-nums;text-align:right;min-width:80px}.cart-totals{margin-top:10px;padding:10px 12px;background:#f4f6fb;border-radius:8px}.cart-totals div{display:flex;justify-content:space-between;align-items:baseline}.cart-totals strong{font-size:19px;color:var(--brand-dark)}.cart-required{list-style:none;margin:0;padding:0}.cart-required li{font-size:12.5px;padding:7px 9px;border-radius:6px;margin-bottom:5px;display:flex;flex-direction:column;align-items:flex-start}.cart-required li.error{background:var(--error-bg);color:#8e1c1c}.cart-required li.warning{background:var(--warn-bg);color:#7a4800}.cart-ok{color:var(--ok);background:var(--ok-bg);padding:8px 10px;border-radius:6px;font-size:13px;margin:0}.cart-warn{color:#7a4800;background:var(--warn-bg);padding:8px 10px;border-radius:6px;font-size:12.5px}.cart-done{margin-top:auto;padding:10px}@media(max-width:1100px){.shop-body{grid-template-columns:180px minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.shop-cart{grid-column:1 / -1;border-left:none;border-top:1px solid var(--border);max-height:34vh}}@media(max-width:700px){.shop-body{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto}.shop-cats{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1px solid var(--border);padding:8px}.shop-cats button{white-space:nowrap}}:root{--ink: #16181d;--brand-dark: #16181d}.topbar{height:68px;background:var(--ink);gap:28px}.brand img{height:46px;width:auto;display:block}.brand-app{font-weight:300;font-size:18px;letter-spacing:1px;padding-left:14px;border-left:1px solid rgba(255,255,255,.3)}.topbar nav a{padding:8px 14px;font-size:14.5px}.topbar nav a.active{background:#ffffff1f;box-shadow:inset 0 -3px #fff}.subtitle{margin:4px 0 0;font-size:13px}.btn-lg{padding:10px 20px;font-size:15px;font-weight:600}.btn.ghost-danger{border-color:transparent;color:var(--muted)}.btn.ghost-danger:hover{color:var(--error);background:var(--error-bg)!important}.btn:focus-visible,button:focus-visible{outline:2px solid #5b8def;outline-offset:2px}.list-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--border);background:#fff;padding:6px 12px;cursor:pointer;font-weight:500}.chip span{margin-left:6px;font-size:12px;color:var(--muted)}.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}.chip.on span{color:#c9ccd3}.table-card{padding:0;overflow:hidden}.grid.quotes th{padding:10px 14px;background:#fafbfd}.grid.quotes td{padding:12px 14px;vertical-align:middle}.tag-lease{background:#efe9ff;color:#5b34c7}.empty-state{text-align:center;padding:50px 20px}.empty-state h2{margin:0 0 8px}.empty-state p{color:var(--muted);margin:0 0 20px}.start-guide{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:#fff8e6;border:1px solid #f1d58a;padding:10px 14px;margin-bottom:14px}.start-guide ol{display:flex;gap:8px;list-style:none;margin:0;padding:0;flex-wrap:wrap}.start-guide button{display:flex;align-items:center;gap:8px;border:1px solid #e6c56b;background:#fff;padding:6px 12px;cursor:pointer;font-weight:500}.start-guide button:hover:not(:disabled){background:#fff2cc}.start-guide li.done button{border-color:#b7dfbf;color:var(--ok);background:var(--ok-bg);cursor:default}.sg-num{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;background:#b78a12;color:#fff;font-size:12px;font-weight:700}.start-guide li.done .sg-num{background:var(--ok)}.header-cards{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px}.header-cards .card+.card{margin-top:0}@media(max-width:1100px){.header-cards{grid-template-columns:minmax(0,1fr)}}.card-title{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 12px}.form-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid .span4{grid-column:span 4}@media(max-width:700px){.form-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid .span4{grid-column:span 2}}.req{color:var(--error)}.label.required:after{content:" *";color:var(--error)}.label.missing{color:var(--error);font-weight:600}.choice-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}.choice-row .label{font-size:13px;color:var(--muted)}.segmented.big button{padding:8px 16px;font-weight:500}.rules-summary{margin:-4px 0 6px}.toasts{position:fixed;left:50%;bottom:96px;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:14px;background:var(--ink);color:#fff;padding:10px 12px 10px 16px;box-shadow:0 10px 30px #00000040;font-size:14px;animation:toast-in .18s ease-out;max-width:min(92vw,640px)}.toast-ok{border-left:4px solid #4cc76b}.toast button{border:none;background:#ffffff24;color:#fff;padding:5px 10px;cursor:pointer;font-weight:600;white-space:nowrap}.toast button:hover{background:#ffffff40}.toast .toast-x{background:none;color:#9aa0ab;padding:4px 6px}@keyframes toast-in{0%{transform:translateY(8px);opacity:0}}.p-logo{height:70px;width:auto}:root{--paper: #f3f2ec;--paper-2: #fbfaf6;--ink: #15161a;--esl-red: #d8232a;--esl-yellow: #ffd200;--bezel: #2a2c31;--bezel-light: #e4e5e8;--brand: var(--ink);--border: #d6d5cf;--bg: var(--paper);--font-ui: "Inter", "Segoe UI", system-ui, sans-serif;--font-esl: "Barlow Condensed", "Arial Narrow", "Segoe UI", sans-serif;font-family:var(--font-ui)}body{background-color:var(--paper);background-image:radial-gradient(rgba(0,0,0,.035) 1px,transparent 1px);background-size:3px 3px}h1,h2{font-family:var(--font-esl);font-weight:700;letter-spacing:.01em}h1{font-size:30px;text-transform:uppercase}.topbar{position:relative}.topbar:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:5px;background:linear-gradient(90deg,var(--esl-red) 0 25%,var(--esl-yellow) 25% 50%,#fff 50% 75%,var(--ink) 75% 100%)}.topbar nav a{font-family:var(--font-esl);font-size:17px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.topbar nav a.active{box-shadow:inset 0 -3px 0 var(--esl-yellow)}.page{padding-top:24px}.btn{border:1.5px solid var(--ink);background:#fff;font-weight:600}.btn:hover:not(:disabled){background:var(--esl-yellow)}.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn.primary:hover:not(:disabled){background:var(--esl-yellow);color:var(--ink)}.btn.small,.btn.tiny{border-width:1px}.btn.ghost-danger{border-color:transparent}.segmented{border:1.5px solid var(--ink)}.segmented button+button{border-left:1.5px solid var(--ink)}.segmented button.on{background:var(--ink);color:#fff}.chip{border:1.5px solid var(--ink)}.chip.on{background:var(--ink)}.chip:hover:not(.on){background:var(--esl-yellow)}.card{background:var(--paper-2);border:1px solid #c8c7c0;box-shadow:0 0 0 4px var(--bezel-light),0 0 0 5px #c9cacd;margin:5px}.card+.card,section+section{margin-top:18px}.header-cards .card{margin:5px}.card-title{font-family:var(--font-esl);font-size:16px;font-weight:700;color:var(--ink);letter-spacing:.08em}input,select,textarea{background:#fff;border-color:#cfcec8}.grid th{color:#fff;background:var(--ink)!important;border-bottom:none;font-family:var(--font-esl);font-size:14px;letter-spacing:.05em;text-transform:uppercase}tr.row-section td{background:var(--esl-yellow);border-bottom:2px solid var(--ink)}.section-input,.section-input.fixed{font-family:var(--font-esl);font-size:16px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink)}.esl-price{display:inline-flex;align-items:flex-start;font-family:var(--font-esl);font-weight:700;line-height:.9;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}.esl-dec{display:inline-flex;flex-direction:column;margin-left:1px}.esl-cents{font-size:.5em;line-height:1}.esl-cur{font-size:.42em;line-height:1.1}.esl-cur small{display:block;font-size:.62em;font-weight:600;letter-spacing:.02em;color:#444;font-family:var(--font-ui)}.esl-price.esl-sm{font-size:22px}.esl-price.esl-md{font-size:30px}.esl-price.esl-lg{font-size:40px}.esl-price.esl-xl{font-size:48px}.esl-price.empty{font-family:var(--font-esl);color:var(--muted)}.esl-tag{background:var(--esl-yellow);padding:4px 12px 6px;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}.esl-tag .esl-tag-head{font-family:var(--font-esl);font-size:13px!important;font-weight:700;color:var(--ink)!important;text-transform:uppercase;letter-spacing:.06em}.totals-bar{background:var(--paper-2);border-top:3px solid var(--ink);box-shadow:0 -6px 18px #00000014;padding-top:12px;padding-bottom:14px}.totals-bar:not(.is-lease) .tb-main.esl-tag{background:#fff}.tb-item>span:not(.esl-price){color:#55565c}.led{display:inline-block;width:9px;height:9px;flex:none;margin-right:6px;vertical-align:middle;background:#b9bbc0;box-shadow:inset 0 0 0 1px #00000026}.led-green{background:#19c25a;box-shadow:0 0 6px 1px #19c25abf}.led-red{background:#ff2d2d;box-shadow:0 0 6px 1px #ff2d2dbf}.led-yellow{background:#ffc400;box-shadow:0 0 6px 1px #ffc400bf}.led-off{background:#c9cbcf;box-shadow:inset 0 0 0 1px #0000001f}.led.blink{animation:led-blink 1.2s steps(1) infinite}@keyframes led-blink{50%{opacity:.25}}.status-led{display:inline-flex;align-items:center;font-weight:600;font-size:13px;white-space:nowrap}.status-led.ko{color:var(--esl-red)}.status-led.ok{color:#138a43}.rule-group h4{gap:0}.badge{font-family:var(--font-esl);font-size:14px;letter-spacing:.04em;text-transform:uppercase;border:1.5px solid currentColor;padding:2px 10px}.status-brouillon{background:#fff;color:var(--ink)}.status-a_valider{background:var(--esl-yellow);color:var(--ink)}.status-valide{background:var(--ink);color:#fff;border-color:var(--ink)}.stepper li.current{background:var(--ink)}.stepper li.done{background:#d9d8d1;color:var(--ink)}.shop{background-color:var(--paper);background-image:radial-gradient(rgba(0,0,0,.035) 1px,transparent 1px);background-size:3px 3px}.product-card{background:var(--bezel-light);border:none;padding:7px;box-shadow:0 1px #fff inset,0 2px 6px #0000001f}.product-card:hover{box-shadow:0 8px 22px #00000029;transform:translateY(-1px)}.product-card.in-cart{background:var(--bezel);box-shadow:0 0 0 2px var(--esl-yellow),0 8px 22px #0003}.product-card .pc-image{background:#fff;border-bottom:none;height:120px}.product-card .pc-body,.product-card .pc-foot{background:var(--paper-2)}.product-card .pc-body{padding-top:8px}.product-card .pc-foot{border-top:2px solid var(--ink);padding-top:10px}.pc-meta{display:flex;align-items:center;gap:8px}.pc-meta .barcode{height:14px;width:64px;fill:var(--ink);opacity:.8}.pc-meta .led{margin:0 0 0 auto}.product-card h4{font-family:var(--font-esl);font-size:18px;font-weight:700;line-height:1.1}.pc-sub{color:var(--esl-red)!important;text-transform:uppercase;font-size:11px!important;letter-spacing:.05em}.pc-badge{background:var(--esl-red)!important;font-family:var(--font-esl);font-size:16px!important}.product-card.in-cart .pc-foot{background:var(--esl-yellow)}.stepper-qty{border:1.5px solid var(--ink)}.stepper-qty button{background:var(--ink);color:#fff}.stepper-qty button:hover{background:var(--esl-red)}.shop-cats button.on{background:var(--ink);color:#fff}.shop-cats button.on i{background:var(--esl-yellow)}.cart-totals{background:var(--esl-yellow);border:2px solid var(--ink)}.cart-totals strong{font-family:var(--font-esl);font-size:28px;color:var(--ink)}.cat-card{background:var(--paper-2);border-left-width:8px}.cat-card>header{background:var(--paper-2);border-bottom:2px solid var(--ink)}.cat-card h2{font-size:24px;text-transform:uppercase}.cat-table th{background:#ecebe5;color:var(--ink)}.cat-table .pv{background:color-mix(in srgb,var(--esl-yellow) 35%,#fff)}.tag-lease{background:var(--ink);color:var(--esl-yellow);font-weight:600}.totals-bar .tb-lease strong{color:var(--ink)}.start-guide{background:var(--esl-yellow);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}.start-guide button{border:1.5px solid var(--ink)}.sg-num{background:var(--ink)}.toast{font-family:var(--font-ui)}.toast-ok{border-left-color:var(--esl-yellow)}.empty-state h2{font-size:28px}*,*:before,*:after{border-radius:0!important}.led{border-radius:50%!important}.tb-lease strong{color:#7c4dff}.tb-lease small{font-size:11px;font-weight:500;color:var(--muted)}.totals-bar .tb-lease strong{color:#6a3fd6;font-size:22px}.tb-detail{display:grid;grid-template-columns:auto auto;gap:0 8px;align-items:baseline}.tb-detail>span{font-size:11px}.tb-detail b{font-size:12.5px;text-align:right}.tb-item small{font-size:11px;font-weight:500;color:var(--muted)}.section-input.fixed{color:var(--ink);cursor:default}.lock{font-size:12px;opacity:.55;padding:0 4px}.totals-bar{gap:8px 18px}.totals-bar .tb-group{gap:14px}.totals-bar .tb-group+.tb-group{padding-left:18px}.totals-bar .esl-price.esl-xl{font-size:40px}.totals-bar .tb-item b{font-size:13.5px}.esl-price .esl-int,.esl-price .esl-dec{font-size:1em;color:inherit}.esl-price .esl-cents{font-size:.5em;color:inherit}.esl-price .esl-cur{font-size:.42em;color:inherit}.esl-price .esl-cur small{font-size:.62em;color:#444}.pc-price>span:not(.esl-price){font-size:11px;color:var(--muted)}.cell.warn{border-color:#e39b00;background:#fff4dc;color:#8a5a00;font-weight:600}.warn-text{color:#b26a00;font-weight:600}.lines .c-margin{width:104px;padding-top:9px}.lines .c-margin strong{font-variant-numeric:tabular-nums;white-space:nowrap;color:#138a43}.lines .c-margin strong.neg,.lines .c-margin.bad-text strong{color:var(--esl-red)}.lines .c-margin.warn-text strong{color:#b26a00}.lines .c-margin .sub{padding:0}.rules-verdict{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;margin-bottom:12px;border:2px solid var(--ink)}.rules-verdict .led{margin-top:5px}.rules-verdict strong{display:block;font-family:var(--font-esl);font-size:17px;text-transform:uppercase;letter-spacing:.03em}.rules-verdict span{font-size:12.5px;color:#44464c}.rules-verdict.ko{background:#ffe9e9}.rules-verdict.ok{background:#e6f7ec}.rules-section{margin-bottom:12px}.rules-section h4{display:flex;align-items:center;gap:0;margin:0 0 6px;padding-bottom:4px;font-family:var(--font-esl);font-size:15px;text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid currentColor}.rules-section h4 small{margin-left:auto;font-family:var(--font-ui);font-size:11px;text-transform:none;letter-spacing:0;font-weight:500;color:#6b6d73}.rs-count{margin-left:6px;font-size:12px;padding:0 6px;color:#fff;background:currentColor}.rs-error h4{color:var(--esl-red)}.rs-error .rs-count{background:var(--esl-red);color:#fff}.rs-warning h4{color:#b26a00}.rs-warning .rs-count{background:#e39b00;color:#fff}.rs-info h4{color:#4a4c52}.rs-info .rs-count{background:#8a8c92;color:#fff}.rules-section ul{list-style:none;margin:0;padding:0}.rules-section .issue{border-left:4px solid}.rules-section .issue.error{border-left-color:var(--esl-red)}.rules-section .issue.warning{border-left-color:#e39b00}.rules-section .issue.info{border-left-color:#8a8c92;background:#f1f1ee;color:#3d3f44}.issue-group{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;font-weight:700;opacity:.7;margin-bottom:2px}.rules-checklist{border-top:1px solid var(--border);padding-top:8px}.rc-toggle{border:none;background:none;padding:2px 0;cursor:pointer;font-weight:600;font-size:13px;color:var(--ink)}.rules-checklist ul{list-style:none;margin:6px 0 0;padding:0}.rules-checklist li{display:flex;align-items:center;font-size:12.5px;padding:3px 0}.rules-checklist li span{margin-left:auto;font-size:11.5px;font-weight:600}.rules-checklist li.ok span{color:#138a43}.rules-checklist li.warn span{color:#b26a00}.rules-checklist li.ko span{color:var(--esl-red)}.rules-section h4{flex-wrap:wrap}.rules-section h4 small{flex-basis:100%;margin-left:0;order:3;padding-top:1px}.lines tfoot td{padding:8px 6px;border-top:2px solid var(--ink);background:var(--paper-2);vertical-align:top}.lines tfoot .foot-total td:first-child,.lines tfoot .foot-monthly td:first-child{font-family:var(--font-esl);font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;text-align:right}.lines tfoot .foot-total{background:color-mix(in srgb,var(--esl-yellow) 30%,#fff)}.lines tfoot .foot-total td{background:transparent}.lines tfoot .foot-total .c-total{font-weight:700;font-size:15px}.lines tfoot .foot-total .c-margin strong{font-size:15px}.lines tfoot .foot-monthly td{border-top:1px solid var(--border);color:#44464c}.p-ht{font-size:10px;text-align:right;margin:8px 0 4px;font-style:italic}.tip{cursor:help}th .tip{border-bottom:1px dotted rgba(255,255,255,.6)}.cat-table th .tip,dt .tip{border-bottom:1px dotted rgba(0,0,0,.45)}.tooltip{position:fixed;z-index:1000;transform:translate(-50%,calc(-100% - 10px));max-width:320px;width:max-content;background:var(--ink);color:#fff;padding:9px 12px;font:500 12.5px/1.45 var(--font-ui);white-space:pre-line;text-align:left;text-transform:none;letter-spacing:0;pointer-events:none;box-shadow:0 8px 24px #00000047;border-top:3px solid var(--esl-yellow)}.tooltip:after{content:"";position:absolute;left:50%;top:100%;margin-left:-6px;border:6px solid transparent;border-top-color:var(--ink)}.tooltip.below{transform:translate(-50%,10px);border-top:none;border-bottom:3px solid var(--esl-yellow)}.tooltip.below:after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:var(--ink)}.tb-cost b{color:var(--ink)}.lines tfoot .foot-cost strong{white-space:nowrap;color:#44464c}.lines tfoot .foot-cost .sub{padding:0}.totals-bar .tb-costs{gap:8px}.tb-op{font-family:var(--font-esl);font-size:20px;font-weight:700;color:#8a8c92;align-self:flex-end;padding-bottom:1px}.tb-cost-total b{font-size:15px!important}.totals-bar .tb-costs+.tb-internal{margin-left:auto}.totals-bar .tb-internal{margin-left:0}.tb-internal-row{flex-basis:100%;display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;border-top:1px dashed #c9c8c1;padding-top:8px;margin-top:2px}.tb-row-label{font-family:var(--font-esl);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;background:#8a8c92;padding:1px 7px}.totals-bar .tb-internal-row .tb-group+.tb-group{padding-left:18px}.totals-bar .tb-internal-row .tb-internal{margin-left:auto}.totals-bar{flex-wrap:nowrap;overflow-x:auto;gap:8px 14px}.totals-bar .tb-group{flex:none}.totals-bar .tb-group+.tb-group{padding-left:14px}.totals-bar .tb-status{margin-left:auto;border-left:none!important}.totals-bar .tb-margin b{font-size:15px!important}.totals-bar .esl-price.esl-xl{font-size:38px}@media(max-width:1350px){.totals-bar{flex-wrap:wrap}.totals-bar .tb-status{margin-left:0}}.totals-bar{gap:8px 10px;padding-left:14px;padding-right:14px;margin-left:-20px;margin-right:-20px}.totals-bar .tb-group{gap:10px}.totals-bar .tb-group+.tb-group{padding-left:10px}.totals-bar .tb-costs{gap:6px}.totals-bar .esl-price.esl-xl{font-size:34px}.totals-bar .tb-item>span:not(.esl-price){font-size:11px}.totals-bar .tb-item b{font-size:13px}.totals-bar .esl-tag{padding:3px 10px 5px}.field-hint{font-size:11px;color:#b26a00}.label-count{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#fff;border:1.5px solid var(--ink);font-size:13px;white-space:nowrap}.label-count strong{font-family:var(--font-esl);font-size:18px;line-height:1}.lines-head .label-count{margin-left:auto}.shop-cart .label-count{align-self:flex-start;margin-top:10px}.p-lines th:nth-child(3),.p-lines td:nth-child(3){width:70px}.p-lines th:nth-child(4):last-child,.p-lines td:nth-child(4):last-child{width:90px}.lines .floor-val{font-variant-numeric:tabular-nums;color:#44464c;display:inline-block;padding-top:6px}.lines .c-coef{width:92px}.lines .coef-input{font-weight:700;text-align:center}.coef-all{display:block;margin:3px auto 0;border:1px solid rgba(255,255,255,.6);background:transparent;color:#fff;font-size:10.5px;padding:1px 6px;cursor:pointer;text-transform:none;letter-spacing:0;font-family:var(--font-ui)}.coef-all:hover{background:var(--esl-yellow);color:var(--ink)}.grid.lines thead th{vertical-align:middle;white-space:nowrap;padding:11px 8px;font-size:13px;letter-spacing:.06em;line-height:1.2}.grid.lines thead th.num{text-align:right}.grid.lines thead th .tip{border-bottom:none!important;cursor:help}.grid.lines thead th .tip:hover{color:var(--esl-yellow)}.grid.lines thead th.c-coef,.lines .c-coef{text-align:center}.lines .c-coef .muted{font-size:11.5px}.coef-all{display:none}.global-coef{display:inline-flex;align-items:center;gap:0;border:1.5px solid var(--ink);background:#fff}.global-coef label{font-family:var(--font-esl);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:0 10px;color:var(--ink)}.global-coef input{width:64px;border:none;border-left:1.5px solid var(--ink);text-align:center;font-weight:700;font-size:15px;padding:6px 4px}.global-coef .btn{border:none;border-left:1.5px solid var(--ink);padding:8px 12px}.lines .floor-val{padding-top:5px}.p-lines th:nth-child(4):not(:last-child),.p-lines td:nth-child(4):not(:last-child){width:110px}.p-lines th:nth-child(5),.p-lines td:nth-child(5){width:110px}.mode-label{font-family:var(--font-esl);font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.p-lease-total{margin-top:16px}.p-terms small{font-size:10px;color:#444}.banner-warn{background:var(--warn-bg);color:#7a4800;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{width:min(400px,100%);background:var(--paper-2);border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);padding:28px 28px 22px;display:flex;flex-direction:column;gap:12px}.auth-card h1{margin:0 0 4px}.auth-card label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted)}.auth-card label input{font-size:15px;padding:9px 10px;color:var(--ink)}.auth-logo{width:190px;margin-bottom:6px}.auth-error{color:var(--esl-red);background:#ffe9e9;padding:8px 10px;margin:0;font-size:13px}.user-menu{display:flex;align-items:center;gap:8px}.um-name{display:flex;flex-direction:column;align-items:flex-end;line-height:1.1;font-weight:600;font-size:13px}.um-name small{font-weight:400;color:#c9ccd3;font-size:11px}.um-btn{background:transparent!important;color:#fff!important;border-color:#fff6!important}.um-btn:hover{background:var(--esl-yellow)!important;color:var(--ink)!important}.topbar .topbar-info{margin-left:auto}.secret-card{border-left:6px solid var(--esl-yellow)}.secret-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.secret-row code{font-size:18px;font-weight:700;padding:6px 12px;background:#fff;border:1.5px dashed var(--ink);letter-spacing:.05em}.user-form .btn{margin-top:6px}tr.inactive td{opacity:.55}.cat-table tr.editing td{background:#fffbea;vertical-align:middle}.cat-table tr.editing .cell{border-color:var(--border);background:#fff}.cat-table tr.editing .cell.small{font-size:12px;margin-top:3px}.history-panel h2{margin:6px 0 4px}.history-panel h3{margin-top:18px}.timeline{list-style:none;margin:16px 0 0;padding:0 0 0 6px;border-left:2px solid var(--border)}.timeline li{position:relative;padding:0 0 16px 18px}.timeline .tl-dot{position:absolute;left:-8px;top:3px;width:12px;height:12px;background:#fff;border:2px solid var(--ink)}.timeline li.tl-devis-creation .tl-dot{background:var(--ink)}.timeline li.tl-devis-statut .tl-dot{background:var(--esl-yellow)}.timeline li.to-valide .tl-dot{background:#19c25a;border-color:#138a43}.timeline li.tl-devis-suppression .tl-dot{background:var(--esl-red);border-color:var(--esl-red)}.tl-detail{font-size:12.5px;margin-top:2px;color:#33353a}.copies{padding-left:18px;font-size:13px}.audit-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.audit-filters label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.nowrap{white-space:nowrap}tr.audit-fail td{background:#fff1f1}
