@import "https://api.fontshare.com/v2/css?f[]=satoshi@500&display=swap";:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f2f0eb;--surface:#fff;--surface2:#faf9f7;--border:#e2dfd8;--border-strong:#c8c4bc;--text:#2d2a26;--text-soft:#7a756d;--text-xsoft:#b0aa9f;--accent:#1a4a8a;--accent-light:#eaf0fb;--accent-mid:#4a7cc9;--danger:#c1392b;--danger-light:#fdf0ee;--warning:#b35c00;--warning-light:#fff4e6;--blue:#1a4a8a;--blue-light:#eaf0fb;--shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014, 0 2px 4px #0000000a;--r:10px;--font-serif:Georgia, "Times New Roman", serif;--font-ui:system-ui, -apple-system, sans-serif}body{font-family:var(--font-ui);background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;line-height:1.5}*,:before,:after{box-sizing:border-box}.app{width:100%;max-width:1200px;margin:0 auto;padding:0 20px 80px}.main{flex-direction:column;gap:12px;width:100%;display:flex}.main>*{box-sizing:border-box;width:100%}.page-container{flex-direction:column;gap:12px;width:100%;display:flex}.app-header{border-bottom:1.5px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:16px 0;display:flex}.app-title{flex-shrink:0;align-items:center;gap:14px;display:flex}.app-logo{font-size:30px;line-height:1}.app-title img{height:44px;display:block}.app-title h1{font-family:var(--font-serif);color:var(--text);letter-spacing:-.4px;font-size:24px;font-weight:700;line-height:1.2}.app-title p{color:var(--text-soft);margin-top:2px;font-size:12px}.app-stats{flex-wrap:wrap;gap:8px;display:flex}.app-stats span{background:var(--surface);border:1px solid var(--border);color:var(--text-soft);border-radius:20px;padding:5px 12px;font-size:12px;font-weight:500}.nav{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);gap:4px;margin-bottom:24px;padding:4px;display:flex}.nav-btn{color:var(--text-soft);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;flex:1;padding:9px 10px;font-size:13px;font-weight:500;transition:all .16s}.nav-btn:hover{background:var(--bg);color:var(--text)}.nav-btn.active{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.search{border:1px solid var(--border);background:var(--surface);min-width:180px;color:var(--text);border-radius:8px;flex:1;padding:8px 12px;font-size:13px;transition:border-color .15s}.search:focus{border-color:var(--accent-mid);outline:none}.badge{background:var(--accent-light);color:var(--accent);white-space:nowrap;border-radius:20px;padding:5px 11px;font-size:12px;font-weight:600}.badge-co2{color:#0f2d5e;white-space:nowrap;background:#eaf0fb;border-radius:20px;padding:5px 11px;font-size:12px;font-weight:700}.warn-badge{background:var(--warning-light);color:var(--warning);border-radius:20px;padding:5px 11px;font-size:12px;font-weight:500}.btn-action{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:500;transition:opacity .15s}.btn-action:hover{opacity:.86}.btn-ghost{background:var(--surface);color:var(--text-soft);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:8px;padding:8px 14px;font-size:13px;transition:all .15s}.btn-ghost:hover{background:var(--bg);color:var(--text)}.drop-zone{border:2px dashed var(--border-strong);border-radius:var(--r);text-align:center;background:var(--surface);cursor:pointer;padding:4rem 2rem;transition:all .2s}.drop-zone:hover{border-color:var(--accent-mid);background:var(--accent-light)}.drop-icon{opacity:.35;margin-bottom:12px;font-size:34px}.drop-title{margin-bottom:6px;font-size:15px;font-weight:600}.drop-sub{color:var(--text-soft);font-size:13px}.tpl-dl{align-items:stretch;gap:0;display:inline-flex}.tpl-dl>button{border-top-right-radius:0;border-bottom-right-radius:0}.tpl-dl-select{border:1px solid var(--border);background:var(--surface);color:var(--text-soft);cursor:pointer;border-left:none;border-top-right-radius:7px;border-bottom-right-radius:7px;padding:0 6px;font-size:11.5px;font-weight:600}.tpl-dl-select:focus{border-color:var(--accent-mid);outline:none}.tpl-hint{text-align:center;color:var(--text-soft);margin-top:14px;font-size:12px;line-height:1.6}.cat-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);overflow:hidden}.cat-header{border-bottom:1px solid var(--border);background:#f4f2ee;justify-content:space-between;align-items:center;padding:9px 16px;display:flex}.cat-header-left{align-items:center;gap:10px;display:flex}.cat-name{text-transform:uppercase;letter-spacing:.7px;color:var(--text);font-size:12px;font-weight:700}.cat-count{color:var(--text-xsoft);font-size:11px}.cat-co2{color:var(--accent);background:var(--accent-light);border-radius:12px;padding:2px 9px;font-size:12px;font-weight:700}.sub-header{background:var(--surface2);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:6px 16px 5px 28px;display:flex}.sub-name{color:var(--text-soft);font-size:11px;font-style:italic;font-weight:600}.sub-co2{color:var(--text-soft);font-size:11px}.row-item{border-bottom:1px solid var(--border);transition:background .1s}.row-item:last-child{border-bottom:none}.row-item:hover{background:var(--surface2)}.row-main{justify-content:space-between;align-items:center;gap:12px;padding:9px 16px;display:flex}.row-left{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.row-scope{background:var(--blue-light);color:var(--blue);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:700}.row-poste{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.row-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.row-qty{color:var(--text-soft);background:var(--surface2);border:1px solid var(--border);white-space:nowrap;border-radius:5px;padding:2px 9px;font-size:12px;font-weight:600}.row-qty-unit{color:var(--text-xsoft);font-weight:500}.row-co2-total{color:var(--accent);white-space:nowrap;font-size:13px;font-weight:700}.btn-del{cursor:pointer;color:var(--text-xsoft);background:0 0;border:none;border-radius:4px;flex-shrink:0;padding:4px 6px;font-size:12px;transition:all .14s}.btn-del:hover{background:var(--danger-light);color:var(--danger)}.row-source{color:var(--text-xsoft);padding:0 16px 7px;font-size:10px;font-style:italic;line-height:1.4}.info-box{background:var(--blue-light);color:var(--blue);border:1px solid #c0d4f0;border-radius:8px;padding:10px 14px;font-size:12px;line-height:1.5}.params-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);overflow:hidden}.params-thead{background:var(--surface2);border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.6px;color:var(--text-soft);grid-template-columns:2.2fr 1fr 1.4fr 1.4fr 1.4fr;gap:10px;padding:9px 16px;font-size:10px;font-weight:700;display:grid}.params-row{border-bottom:1px solid var(--border);grid-template-columns:2.2fr 1fr 1.4fr 1.4fr 1.4fr;align-items:center;gap:10px;padding:11px 16px;transition:background .12s;display:grid}.params-row:last-child{border-bottom:none}.params-row:hover{background:var(--surface2)}.params-row.dim{opacity:.5}.param-info{flex-direction:column;gap:2px;display:flex}.param-nom{font-size:13px;font-weight:500}.param-unite{color:var(--text-soft);font-size:10px}.phase-chip{background:var(--surface2);color:var(--text-soft);border:1px solid var(--border);border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-block}.phase-achat{color:#b35c00;background:#fff3e0;border-color:#ffc887}.phase-transport{color:#1a4a8a;background:#e3f2fd;border-color:#90caf9}.phase-production{color:#b71c1c;background:#fce4ec;border-color:#f48fb1}.phase-fin-de-vie{color:#6a1b9a;background:#f3e5f5;border-color:#ce93d8}.phase-overhead{color:#0f2d5e;background:#eaf0fb;border-color:#90b8e8}.phase-autre{color:#555;background:#f5f5f5;border-color:#ccc}.phase-utilisation{color:#004d40;background:#e0f2f1;border-color:#80cbc4}.phase-toutes{background:var(--surface2);color:var(--text-soft)}.param-auto{color:var(--text);font-size:13px}.param-auto small{color:var(--text-soft);margin-left:3px;font-size:10px}.na{color:var(--text-xsoft);font-size:12px;font-style:italic}.param-override{align-items:center;gap:5px;display:flex}.param-override input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;flex:1;min-width:0;padding:6px 8px;font-size:13px;transition:border-color .14s}.param-override input:focus{border-color:var(--accent-mid);outline:none}.btn-reset-override{border:1px solid var(--border);cursor:pointer;color:var(--text-soft);background:0 0;border-radius:5px;flex-shrink:0;padding:4px 6px;font-size:12px;transition:all .14s}.btn-reset-override:hover{background:var(--warning-light);color:var(--warning)}.param-finale{align-items:center;gap:4px;font-size:13px;display:flex}.val-active{color:var(--accent);font-weight:700}.val-zero{color:var(--text-xsoft)}.param-finale small{color:var(--text-soft);font-size:10px}.override-indicator{color:var(--warning);margin-left:2px;font-size:10px}.btn-del-inline{cursor:pointer;color:var(--text-xsoft);background:0 0;border:none;border-radius:3px;margin-left:4px;padding:2px 5px;font-size:11px;transition:all .14s}.btn-del-inline:hover{background:var(--danger-light);color:var(--danger)}.produit-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);overflow:hidden}.produit-header{cursor:pointer;justify-content:space-between;align-items:center;padding:13px 18px;transition:background .12s;display:flex}.produit-header:hover{background:var(--surface2)}.produit-left{flex-wrap:wrap;flex:1;align-items:center;gap:12px;display:flex}.produit-nom{font-size:15px;font-weight:600}.produit-poids{color:var(--text-soft);background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:2px 9px;font-size:12px}.produit-comp{border-radius:10px;padding:2px 9px;font-size:11px;font-weight:500}.comp-ok{background:var(--accent-light);color:var(--accent);border:1px solid #90b8e8}.comp-partial{background:var(--warning-light);color:var(--warning);border:1px solid #ffcc80}.produit-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.btn-edit{background:var(--blue-light);color:var(--blue);cursor:pointer;border:1px solid #c0d4f0;border-radius:6px;padding:5px 10px;font-size:12px;transition:all .14s}.btn-edit:hover{background:#d5e5ff}.produit-arrow{color:var(--text-xsoft);font-size:11px}.produit-body{border-top:1px solid var(--border);background:var(--surface2);padding:18px}.produit-hint{color:var(--text-soft);margin-bottom:14px;font-size:12px;font-style:italic;line-height:1.5}.saisie-params-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.saisie-param-block{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:11px;transition:border-color .14s}.saisie-param-block:focus-within{border-color:var(--accent-mid)}.saisie-disabled{opacity:.45;pointer-events:none}.saisie-param-label{color:var(--text);justify-content:space-between;align-items:flex-start;gap:6px;margin-bottom:7px;font-size:11px;font-weight:600;line-height:1.3;display:flex}.saisie-param-unite{color:var(--text-soft);background:var(--surface2);white-space:nowrap;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:400}.saisie-param-input-row{align-items:center;gap:7px;display:flex}.saisie-param-input-row input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;flex:1;min-width:0;padding:6px 9px;font-size:13px;transition:border-color .14s}.saisie-param-input-row input:focus{border-color:var(--accent-mid);outline:none}.saisie-param-input-row input:disabled{background:var(--surface2)}.saisie-ratio{color:var(--accent);text-align:right;white-space:nowrap;min-width:40px;font-size:12px;font-weight:700}.ratio-warn{color:var(--danger)}.saisie-total{color:var(--text-xsoft);margin-top:5px;font-size:9px;line-height:1.3}.saisie-na{font-style:italic}.empty-state{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);text-align:center;color:var(--text-soft);padding:40px 24px;font-size:14px;line-height:1.7}.resultats-page{flex-direction:column;gap:14px;display:flex}.result-summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:18px}.summary-title{text-transform:uppercase;letter-spacing:.6px;color:var(--text-soft);margin-bottom:12px;font-size:10px;font-weight:700}.summary-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.summary-phase{background:var(--surface2);border:1px solid var(--border);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:11px 6px;display:flex}.total-phase{background:var(--accent-light);border-color:var(--accent-mid)}.ph-name{color:var(--text-soft);font-size:10px;font-weight:600}.ph-co2{color:var(--text);font-size:20px;font-weight:700;line-height:1.2}.ph-unit{color:var(--text-xsoft);font-size:9px}.total-phase .ph-co2{color:var(--accent)}.result-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);overflow:hidden}.result-card-header{border-bottom:1px solid var(--border);background:var(--surface2);align-items:center;gap:12px;padding:14px 20px;display:flex}.result-card-header h3{font-size:16px;font-weight:700}.result-poids{color:var(--text-soft);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:2px 9px;font-size:12px}.result-phases-grid{grid-template-columns:repeat(6,1fr);gap:8px;padding:14px 18px;display:grid}@media (width<=900px){.result-phases-grid{grid-template-columns:repeat(3,1fr)}.params-thead,.params-row{grid-template-columns:1fr 1fr 1fr}}.result-phase-block{background:var(--surface2);border:1px solid var(--border);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;display:flex}.result-phase-block.has-value{border-color:var(--accent-mid);background:var(--accent-light)}.rph-name{text-transform:uppercase;letter-spacing:.4px;color:var(--text-soft);font-size:9px;font-weight:700}.rph-value{color:var(--text);font-size:17px;font-weight:700;line-height:1.2}.result-phase-block.has-value .rph-value{color:var(--accent)}.rph-unit{color:var(--text-xsoft);font-size:9px}.rph-pct{color:var(--text-soft);margin-top:1px;font-size:10px;font-weight:500}.result-totals{border-top:1px solid var(--border);display:flex}.result-total-item{border-right:1px solid var(--border);text-align:center;flex-direction:column;flex:1;align-items:center;gap:2px;padding:11px 12px;display:flex}.result-total-item:last-child{border-right:none}.result-total-item span{color:var(--text-soft);font-size:10px}.result-total-item strong{color:var(--text);font-size:14px;font-weight:700}.result-total-item.highlight strong{color:var(--accent)}.result-detail{border-top:1px solid var(--border)}.result-detail summary{color:var(--text-soft);cursor:pointer;background:var(--surface2);-webkit-user-select:none;user-select:none;padding:9px 18px;font-size:12px;list-style:none}.result-detail summary::-webkit-details-marker{display:none}.result-detail summary:before{content:"▶ ";font-size:9px}.result-detail[open] summary:before{content:"▼ "}.result-detail summary:hover{color:var(--text)}.detail-table{border-collapse:collapse;width:100%;padding:0 18px 14px;font-size:12px;display:block;overflow-x:auto}.detail-table th{text-align:left;background:var(--surface2);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.4px;color:var(--text-soft);padding:7px 10px;font-size:10px;font-weight:600}.detail-table td{border:1px solid var(--border);color:var(--text);padding:7px 10px}.detail-table tbody tr:hover td{background:var(--surface2)}.td-co2{color:var(--accent);font-weight:600}.comparison-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:18px}.comparison-card h3{margin-bottom:12px;font-size:14px;font-weight:700}.cmp-table{border-collapse:collapse;width:100%;min-width:700px;font-size:12px}.cmp-table th{text-align:left;background:var(--surface2);border:1px solid var(--border);text-transform:uppercase;letter-spacing:.4px;color:var(--text-soft);padding:7px 10px;font-size:10px;font-weight:600;line-height:1.4}.cmp-table th small{text-transform:none;font-weight:400}.cmp-table td{border:1px solid var(--border);color:var(--text);padding:7px 10px}.cmp-produit{font-weight:600}.cmp-table tbody tr:hover td{background:var(--surface2)}.overlay{z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14120e6b;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);width:420px;max-width:92vw;box-shadow:var(--shadow-md);border:1px solid var(--border);border-radius:14px;padding:26px}.modal h2{color:var(--text);font-size:17px;font-weight:700;font-family:var(--font-serif);margin-bottom:18px}.modal-fields{flex-direction:column;gap:11px;margin-bottom:18px;display:flex}.modal-fields label{color:var(--text-soft);text-transform:uppercase;letter-spacing:.4px;flex-direction:column;gap:5px;font-size:11px;font-weight:700;display:flex}.modal-fields input,.modal-fields select{border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;font-family:var(--font-ui);border-radius:8px;padding:8px 11px;transition:border-color .14s}.modal-fields input:focus,.modal-fields select:focus{border-color:var(--accent-mid);outline:none}.modal-actions{gap:9px;display:flex}.flip-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.flip-card{perspective:1000px;cursor:pointer;height:190px}.flip-card-dim{opacity:.55}.flip-card-custom{cursor:default}.flip-inner{width:100%;height:100%;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transition:transform .45s cubic-bezier(.4,0,.2,1);position:relative}.flip-card.flipped .flip-inner{transform:rotateY(180deg)}.flip-front,.flip-back{backface-visibility:hidden;border-radius:var(--r);border:1px solid var(--border);box-shadow:var(--shadow-sm);pointer-events:auto;flex-direction:column;gap:6px;padding:14px;display:flex;position:absolute;inset:0}.flip-card.flipped .flip-front,.flip-card:not(.flipped) .flip-back{pointer-events:none}.flip-front{background:var(--surface)}.flip-back{color:#fff;background:linear-gradient(135deg,#0f2d5e 0%,#1a4a8a 100%);border-color:#0f2d5e;transform:rotateY(180deg)}.flip-nom{color:var(--text);flex:1;font-size:12px;font-weight:600;line-height:1.3}.flip-back .flip-nom{color:#ffffffd9}.flip-value{color:var(--text);font-size:13px}.flip-value strong{color:var(--accent);font-size:20px;font-weight:700}.flip-unite{color:var(--text-soft);font-size:11px}.flip-zero{color:var(--text-xsoft);font-size:12px;font-style:italic}.flip-auto-label{color:var(--text-xsoft);font-size:10px}.flip-metrique{color:var(--text-xsoft);font-size:10px;font-style:italic}.flip-hint{color:var(--text-xsoft);text-align:center;border-top:1px solid var(--border);margin-top:auto;padding-top:4px;font-size:10px}.flip-back-title{text-transform:uppercase;letter-spacing:.6px;color:#fff9;font-size:10px;font-weight:700}.flip-co2-value{font-size:13px}.flip-co2-value strong{color:#a8c4f0;font-size:24px;font-weight:700}.flip-back .flip-unite{color:#fff9}.flip-back .flip-zero{color:#fff6}.flip-edit-section{flex-direction:column;gap:5px;margin-top:auto;display:flex}.flip-edit-label{color:#ffffff80;text-transform:uppercase;letter-spacing:.4px;font-size:10px}.flip-edit-row{align-items:center;gap:6px;display:flex}.flip-edit-row input{color:#fff;background:#ffffff1f;border:1px solid #ffffff40;border-radius:6px;flex:1;min-width:0;padding:5px 8px;font-size:13px}.flip-edit-row input::placeholder{color:#ffffff59}.flip-edit-row input:focus{border-color:#ffffff80;outline:none}.flip-edit-unite{color:#ffffff80;white-space:nowrap;font-size:11px}.btn-reset-small{color:#ffffffb3;cursor:pointer;text-align:left;background:#ffffff1f;border:1px solid #fff3;border-radius:5px;padding:4px 7px;font-size:10px;line-height:1.3;transition:all .14s}.btn-reset-small:hover{color:#fff;background:#fff3}.flip-hint-back{color:#ffffff59;text-align:center;border-top:1px solid #ffffff26;padding-top:4px;font-size:10px}.flip-card-custom .flip-front{cursor:default}.flip-custom-row{align-items:center;gap:6px;margin-top:auto;display:flex}.flip-custom-row input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;flex:1;min-width:0;padding:5px 8px;font-size:13px}.flip-custom-row input:focus{border-color:var(--accent-mid);outline:none}.co2-recap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:16px 18px}.co2-recap-title{text-transform:uppercase;letter-spacing:.6px;color:var(--text-soft);margin-bottom:12px;font-size:10px;font-weight:700}.co2-recap-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.co2-recap-item{background:var(--surface2);border:1px solid var(--border);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;display:flex}.co2-recap-total{background:var(--accent-light);border-color:var(--accent-mid)}.co2-recap-label{color:var(--text-soft);font-size:10px;font-weight:600}.co2-recap-val{color:var(--text);font-size:18px;font-weight:700;line-height:1.2}.co2-recap-unit{color:var(--text-xsoft);font-size:9px}.co2-recap-total .co2-recap-val{color:var(--accent)}.section-label{text-transform:uppercase;letter-spacing:.6px;color:var(--text-soft);border-bottom:1px solid var(--border);margin-bottom:4px;padding:4px 0;font-size:11px;font-weight:700}.flip-card-wide{height:220px}.phase-chip.phase-custom{color:#6a1b9a;background:#f3e5f5;border:1px solid #ce93d8}.flip-front-custom{background:linear-gradient(135deg,#faf5ff 0%,#f0e6ff 100%);border-color:#ce93d8}.flip-back-custom{background:linear-gradient(135deg,#3b0764 0%,#6a1b9a 100%);border-color:#6a1b9a;overflow:hidden}.custom-back-header{border-bottom:1px solid #ffffff26;flex-shrink:0;align-items:center;gap:6px;padding-bottom:8px;display:flex}.btn-custom-add-toggle{color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff26;border:1px solid #ffffff40;border-radius:5px;padding:3px 8px;font-size:11px;transition:all .14s}.btn-custom-add-toggle:hover{background:#ffffff40}.btn-custom-delete{color:#ffb3b3;cursor:pointer;white-space:nowrap;background:#ff505033;border:1px solid #ff64644d;border-radius:5px;padding:3px 8px;font-size:11px;transition:all .14s}.btn-custom-delete:hover{background:#ff505066}.custom-rows-list{flex-direction:column;flex:1;gap:3px;min-height:0;display:flex;overflow-y:auto}.custom-empty{color:#fff6;text-align:center;padding:6px 0;font-size:11px;font-style:italic}.custom-row-item{cursor:default;background:#ffffff14;border-radius:5px;align-items:center;gap:6px;padding:4px 6px;transition:background .12s;display:flex}.custom-row-item:hover{background:#ffffff24}.custom-avail-item{cursor:pointer;background:#ffffff0f;border-radius:5px;align-items:center;gap:6px;padding:5px 6px;transition:background .12s;display:flex}.custom-avail-item:hover{background:#ffffff29}.custom-row-info{flex-direction:column;flex:1;min-width:0;display:flex}.custom-row-cat{color:#ffffff80;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}.custom-row-poste{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.custom-row-right{flex-shrink:0;align-items:center;gap:5px;display:flex}.custom-row-co2{color:#fff9;white-space:nowrap;font-size:10px}.btn-custom-remove{color:#ff9696cc;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:1px 4px;font-size:10px;line-height:1;transition:all .12s}.btn-custom-remove:hover{color:#fff;background:#ff50504d}.btn-custom-add-icon{color:#b4ffb4cc;font-size:14px;font-weight:700;line-height:1}.custom-total-row{color:#fffc;border-top:1px solid #ffffff26;flex-shrink:0;justify-content:space-between;margin-top:2px;padding:4px 6px;font-size:11px;font-weight:600;display:flex}.custom-add-panel{flex-direction:column;flex:1;gap:6px;min-height:0;display:flex}.custom-search{color:#fff;background:#ffffff1a;border:1px solid #ffffff40;border-radius:6px;flex-shrink:0;width:100%;padding:5px 8px;font-size:12px}.custom-search::placeholder{color:#fff6}.custom-search:focus{border-color:#ffffff80;outline:none}.custom-available-list{flex-direction:column;flex:1;gap:2px;min-height:0;display:flex;overflow-y:auto}.modal-large{flex-direction:column;width:620px;max-width:96vw;max-height:88vh;display:flex}.modal-section-title{color:var(--text-soft);text-transform:uppercase;letter-spacing:.4px;flex-shrink:0;align-items:center;gap:10px;margin:4px 0 8px;font-size:12px;font-weight:700;display:flex}.modal-selection-badge{background:var(--accent-light);color:var(--accent);text-transform:none;letter-spacing:0;border-radius:12px;padding:2px 9px;font-size:11px;font-weight:600}.modal-search{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:8px;flex-shrink:0;margin-bottom:8px;padding:8px 12px;font-size:13px}.modal-search:focus{border-color:var(--accent-mid);outline:none}.modal-rows-list{border:1px solid var(--border);border-radius:8px;flex:1;min-height:200px;max-height:420px;overflow-y:auto}.modal-row-item{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:10px;padding:8px 12px;transition:background .12s;display:flex}.modal-row-item:last-child{border-bottom:none}.modal-row-item:hover{background:var(--surface2)}.modal-row-selected{background:var(--accent-light)!important}.modal-row-selected:hover{background:#d4eede!important}.modal-row-item .custom-row-cat{color:var(--text-xsoft)}.modal-row-item .custom-row-poste{color:var(--text);font-size:13px}.modal-row-item .custom-row-co2{color:var(--accent);font-size:12px;font-weight:600}.modal-row-check{border:1.5px solid var(--border-strong);width:18px;height:18px;color:var(--accent);background:var(--surface);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.modal-row-selected .modal-row-check{background:var(--accent);border-color:var(--accent);color:#fff}.alloc-page{flex-direction:column;gap:28px;width:100%;display:flex}.alloc-section{flex-direction:column;gap:14px;width:100%;display:flex}.alloc-section-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.alloc-section-title{color:var(--text);margin-bottom:3px;font-size:15px;font-weight:700}.alloc-section-sub{color:var(--text-soft);max-width:600px;font-size:12px;line-height:1.5}.alloc-params-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.flip-card-alloc{height:330px}.flip-card-alloc .flip-back{overflow-y:auto}.alloc-card-source{color:var(--text-xsoft);flex-direction:column;gap:1px;font-size:10px;line-height:1.4;display:flex}.alloc-card-source strong{color:var(--text-soft)}.alloc-card-source-cats{color:var(--text-soft);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-weight:600;display:-webkit-box;overflow:hidden}.alloc-source-chips{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.alloc-source-chip{color:#fff;background:#ffffff29;border:1px solid #ffffff38;border-radius:10px;align-items:center;gap:4px;max-width:100%;padding:2px 4px 2px 7px;font-size:10px;display:inline-flex}.alloc-source-chip-nom{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.alloc-source-chip-x{color:#ffffff8c;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:9px;line-height:1}.alloc-source-chip-x:hover{color:#fff}.alloc-source-select{color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #ffffff40;border-radius:6px;width:100%;padding:5px 7px;font-size:11px}.alloc-source-select option{color:var(--text);background:#fff}.btn-reset-small:disabled{opacity:.4;cursor:not-allowed}.modal-fe{flex-direction:column;width:min(680px,92vw);max-height:86vh;display:flex}.fe-modal-sub{color:var(--text-soft);margin-bottom:12px;font-size:12px;line-height:1.5}.fe-modal-toolbar{align-items:center;gap:8px;margin-bottom:10px;display:flex}.fe-modal-list{border:1px solid var(--border);border-radius:8px;flex:1;min-height:140px;overflow-y:auto}.fe-cat-header{border-bottom:1px solid var(--border);text-transform:uppercase;letter-spacing:.6px;color:var(--text-soft);background:#f4f2ee;justify-content:space-between;align-items:center;padding:5px 12px;font-size:10.5px;font-weight:700;display:flex;position:sticky;top:0}.fe-cat-header span{color:var(--text-xsoft);letter-spacing:0;font-weight:500}.fe-row{border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:10px;padding:7px 12px;font-size:12.5px;display:flex}.fe-row:last-child{border-bottom:none}.fe-row:hover{background:var(--surface2)}.fe-row input{cursor:pointer;flex-shrink:0}.fe-row-nom{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.fe-row-val{color:var(--text-soft);white-space:nowrap;font-size:11.5px;font-weight:600}.fe-row-val-off{color:var(--text-xsoft);font-style:italic;font-weight:400}.fe-row-off{opacity:.45}.fe-row-off .fe-row-nom{text-decoration:line-through}.fe-modal-total{color:var(--text-soft);justify-content:space-between;align-items:center;gap:12px;padding:10px 2px 14px;font-size:13px;display:flex}.fe-modal-total strong{color:var(--accent);font-size:15px}.fe-modal-count{color:var(--text-xsoft);font-size:11px}.flip-front-alloc{background:var(--surface);cursor:pointer}.alloc-card-nom{color:var(--text);font-size:13px;font-weight:700;line-height:1.3}.alloc-card-val{color:var(--text);flex-wrap:wrap;align-items:center;gap:5px;font-size:13px;display:flex}.alloc-card-val strong{color:var(--accent);font-size:18px;font-weight:700}.alloc-auto-badge{background:var(--accent-light);color:var(--accent);border-radius:8px;padding:1px 5px;font-size:9px;font-weight:600}.alloc-cats-list{flex-direction:column;flex:1;gap:3px;min-height:0;display:flex;overflow-y:auto}.alloc-drop-hint{color:var(--text-xsoft);text-align:center;border:1.5px dashed var(--border);border-radius:6px;padding:8px;font-size:11px;font-style:italic;transition:all .15s}.alloc-cat-chip{background:var(--accent-light);border:1px solid var(--accent-mid);color:var(--accent);border-radius:5px;align-items:center;gap:4px;padding:3px 6px;font-size:10px;font-weight:500;display:flex}.alloc-cat-chip span:first-child{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.alloc-cat-co2{color:var(--text-soft);white-space:nowrap;flex-shrink:0;font-size:9px}.alloc-cat-remove{cursor:pointer;color:var(--text-xsoft);background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:9px;line-height:1;transition:color .12s}.alloc-cat-remove:hover{color:var(--danger)}.alloc-cat-total{color:var(--text-soft);border-top:1px solid var(--border);flex-shrink:0;padding-top:4px;font-size:10px}.drop-target-active{border-color:var(--accent-mid)!important;background:var(--accent-light)!important}.drop-target-active .alloc-drop-hint{border-color:var(--accent-mid);color:var(--accent);background:var(--accent-light)}.alloc-dnd-zone{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}@media (width<=768px){.alloc-dnd-zone{grid-template-columns:1fr}}.alloc-sources-col,.alloc-targets-col{flex-direction:column;gap:8px;display:flex}.alloc-sources-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.alloc-col-title{text-transform:uppercase;letter-spacing:.6px;color:var(--text-soft);border-bottom:1px solid var(--border);align-items:center;gap:8px;padding-bottom:6px;font-size:11px;font-weight:700;display:flex}.alloc-col-count{background:var(--surface2);border:1px solid var(--border);color:var(--text-soft);border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.alloc-col-empty{color:var(--text-xsoft);text-align:center;padding:16px;font-size:12px;font-style:italic}.alloc-col-divider{color:var(--text-xsoft);text-transform:uppercase;letter-spacing:.4px;border-top:1px dashed var(--border);margin-top:4px;padding:4px 0;font-size:10px;font-weight:600}.alloc-source-card{background:var(--surface);border:1px solid var(--border);cursor:grab;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-sm);border-radius:8px;padding:10px 12px;transition:all .14s}.alloc-source-card:hover{border-color:var(--accent-mid);box-shadow:0 3px 8px #0000001a}.alloc-source-card.dragging{opacity:.4;cursor:grabbing}.alloc-source-assigned{opacity:.45;cursor:default;background:var(--surface2)}.alloc-source-assigned:hover{border-color:var(--border);box-shadow:var(--shadow-sm)}.alloc-source-nom{color:var(--text);margin-bottom:3px;font-size:12px;font-weight:600}.alloc-source-co2{color:var(--accent);font-size:13px;font-weight:700}.alloc-source-co2 span{color:var(--text-soft);font-size:10px;font-weight:400}.alloc-assigned-label{color:var(--text-xsoft);margin-top:2px;font-size:10px;font-style:italic}.alloc-drag-hint{color:var(--text-xsoft);margin-top:4px;font-size:10px}.alloc-target-card{background:var(--surface);border:2px dashed var(--border);border-radius:10px;min-height:80px;padding:12px 14px;transition:all .14s}.alloc-target-card.drop-target-active{border-color:var(--accent-mid);background:var(--accent-light)}.alloc-target-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.alloc-target-nom{color:var(--text);font-size:13px;font-weight:700}.alloc-target-val{color:var(--text-soft);background:var(--surface2);border:1px solid var(--border);white-space:nowrap;border-radius:8px;padding:2px 7px;font-size:11px}.alloc-target-cats{flex-wrap:wrap;gap:5px;min-height:28px;display:flex}.alloc-cat-chip-target{background:var(--accent-light);border-color:var(--accent-mid)}.alloc-drop-hint-target{color:var(--text-xsoft);padding:4px 0;font-size:11px;font-style:italic}.alloc-target-co2{color:var(--text-soft);border-top:1px solid var(--border);margin-top:8px;padding-top:6px;font-size:11px}.modal-steps{border-bottom:1px solid var(--border);gap:0;margin-bottom:20px;padding-bottom:14px;display:flex}.modal-step{color:var(--text-xsoft);flex:1;align-items:center;gap:7px;font-size:12px;display:flex}.modal-step.active{color:var(--accent);font-weight:600}.modal-step.done{color:var(--accent-mid)}.modal-step-num{border:1.5px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex}.modal-step.active .modal-step-num{background:var(--accent);color:#fff;border-color:var(--accent)}.modal-step.done .modal-step-num{background:var(--accent-mid);color:#fff;border-color:var(--accent-mid)}.modal-step-label{white-space:nowrap}.modal-step-desc{color:var(--text-soft);margin-bottom:12px;font-size:13px;line-height:1.5}.modal-params-select{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;max-height:340px;padding:4px;display:flex;overflow-y:auto}.modal-param-item{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;padding:9px 12px;transition:background .12s;display:flex}.modal-param-item:hover{background:var(--surface2)}.modal-param-item.selected{background:var(--accent-light);border-color:var(--accent-mid)}.modal-param-check{border:1.5px solid var(--border-strong);width:18px;height:18px;color:var(--accent);background:var(--surface);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.modal-param-item.selected .modal-param-check{background:var(--accent);border-color:var(--accent);color:#fff}.modal-param-info{flex-direction:column;flex:1;gap:2px;display:flex}.modal-param-nom{color:var(--text);font-size:13px;font-weight:500}.modal-param-val{color:var(--text-soft);font-size:11px}.modal-selection-count{color:var(--accent);text-align:right;margin-top:8px;font-size:12px;font-weight:600}.modal-valeurs-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;max-height:360px;padding:2px;display:grid;overflow-y:auto}.modal-valeur-block{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:11px}.modal-valeur-nom{color:var(--text);margin-bottom:7px;font-size:11px;font-weight:600;line-height:1.3}.modal-valeur-input-row{align-items:center;gap:6px;display:flex}.modal-valeur-input-row input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;flex:1;min-width:0;padding:6px 9px;font-size:13px}.modal-valeur-input-row input:focus{border-color:var(--accent-mid);outline:none}.modal-valeur-unite{color:var(--text-soft);white-space:nowrap;flex-shrink:0;font-size:11px}.modal-valeur-ratio{color:var(--accent);white-space:nowrap;font-size:11px;font-weight:700}.modal-valeur-total{color:var(--text-xsoft);margin-top:5px;font-size:10px}
