:root{font-family:Rethink Sans,system-ui,-apple-system,sans-serif}body{margin:0;font-family:Rethink Sans,system-ui,-apple-system,sans-serif}:root{--bg:#f9f3ef;--panel:#fff;--panel-2:#f5ebe4;--line:#e7ddd2;--txt:#1f1c1a;--muted:#8a8078;--accent:#f22f3d;--accent-2:#d81f2c}.load-full{background:var(--bg);height:100vh;color:var(--muted);justify-content:center;align-items:center;font-size:14px;display:flex}.login-wrap{background:radial-gradient(1200px 600px at 50% -10%, #fff, var(--bg));justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:12px;width:340px;padding:28px 26px;display:flex;box-shadow:0 20px 60px #00000080}.login-card h1{color:var(--txt);align-items:flex-end;gap:8px;margin:0;font-size:22px;font-weight:700;display:flex}.login-card h1 span{color:var(--accent-2);font-size:15px;font-weight:500}.login-sub{color:var(--muted);margin:-4px 0 6px;font-size:13px}.login-card label{color:var(--muted);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.login-card input{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);border-radius:9px;outline:none;padding:11px 12px;font-size:14px}.login-card input:focus{border-color:var(--accent)}.login-btn{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:10px;margin-top:8px;padding:12px;font-size:14px;font-weight:600}.login-btn:hover:not(:disabled){background:var(--accent-2)}.login-btn:disabled{opacity:.5;cursor:default}.login-err{color:#fca5a5;background:#3b1a1a;border:1px solid #7f1d1d;border-radius:8px;margin:0;padding:9px 11px;font-size:13px}.dash{background:var(--bg);min-height:100vh;color:var(--txt)}.dash-head{border-bottom:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;padding:16px 26px;display:flex}.dash-head h1{align-items:flex-end;gap:8px;margin:0;font-size:18px;font-weight:700;display:flex}.dash-head h1 span{color:var(--accent-2);font-size:14px;font-weight:500}.dash-user{align-items:center;gap:14px;display:flex}.dash-name{color:var(--muted);font-size:13px}.dash-logout{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);cursor:pointer;border-radius:8px;padding:8px 12px;font-size:13px}.dash-logout:hover{border-color:var(--accent)}.dash-body{max-width:860px;margin:0 auto;padding:26px 20px}.dash-toolbar{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.dash-tabs{gap:6px;display:flex}.dash-tabs button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;padding:8px 14px;font-size:13px}.dash-tabs button.on{background:var(--panel-2);border-color:var(--accent);color:var(--txt)}.dash-tabs button em{opacity:.6;margin-left:4px;font-style:normal}.dash-guide-link{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;align-items:center;padding:8px 14px;font-size:13px;text-decoration:none;display:inline-flex}.dash-guide-link:hover{border-color:var(--accent);color:var(--txt)}.dash-new{background:var(--accent);border:1px solid var(--accent);color:#fff;cursor:pointer;border-radius:9px;padding:9px 16px;font-size:13px;font-weight:600}.dash-new:hover{background:var(--accent-2)}.dash-empty{color:var(--muted);text-align:center;padding:60px 0;font-size:14px}.dash-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.dash-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;align-items:center;gap:12px;padding:6px 10px 6px 6px;display:flex}.dash-card-main{cursor:pointer;text-align:left;background:0 0;border:none;border-radius:9px;flex-direction:column;flex:1;align-items:flex-start;gap:3px;padding:12px 14px;display:flex}.dash-card-main:hover{background:var(--panel-2)}.dash-card-main b{color:var(--txt);font-size:15px}.dash-meta{color:var(--muted);font-size:12px}.dash-actions{gap:6px;padding-right:4px;display:flex}.dash-actions button{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);cursor:pointer;white-space:nowrap;border-radius:8px;padding:8px 11px;font-size:12.5px}.dash-actions button:hover{border-color:var(--accent-2)}.dash-actions button.danger{color:#fca5a5}.dash-actions button.danger:hover{color:#fff;background:#ef4444;border-color:#ef4444}.modal-back{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:14px;width:360px;padding:22px;display:flex;box-shadow:0 20px 60px #00000080}.modal h2{color:var(--txt);margin:0;font-size:17px}.modal label{color:var(--muted);flex-direction:column;gap:6px;font-size:12.5px;display:flex}.modal input{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);border-radius:9px;outline:none;padding:10px 12px;font-size:14px}.modal input:focus{border-color:var(--accent)}.modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.modal-actions button{cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:10px 16px;font-size:13px}.modal-actions .ghost{background:var(--panel-2);color:var(--muted)}.modal-actions .primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.modal-actions .primary:disabled{opacity:.5;cursor:default}.choix-coin-ligne{gap:10px;display:flex}.choix-coin{border:1px solid var(--line);background:var(--panel-2);color:var(--txt);cursor:pointer;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:10px 8px;font-size:13px;display:flex}.choix-coin svg{width:100%;height:auto}.choix-coin span{color:var(--muted);font-size:12px}.choix-coin:hover,.choix-coin:focus-visible{border-color:var(--accent);outline:none}.badge-off{color:#fca5a5;background:#3b1a1a;border:1px solid #7f1d1d;border-radius:6px;margin-left:8px;padding:1px 7px;font-size:11px;font-weight:500}.dash-actions button.accent{background:var(--accent);border-color:var(--accent);color:#fff}.dash-actions button.accent:hover{background:var(--accent-2)}.dash-actions button.accent:disabled{opacity:.45;cursor:default}.modal .chk-row{color:var(--txt);flex-direction:row;align-items:center;gap:8px;font-size:13px}.modal .chk-row input{width:auto}.imp-banner{z-index:100;color:#fff;background:#7c3aed;justify-content:center;align-items:center;gap:16px;height:36px;font-size:13px;display:flex;position:fixed;top:0;left:0;right:0}.imp-banner b{font-weight:700}.imp-banner button{color:#fff;cursor:pointer;background:#ffffff26;border:1px solid #ffffff80;border-radius:7px;padding:4px 12px;font-size:12.5px}.imp-banner button:hover{background:#ffffff47}.imp-shift{padding-top:36px}.imp-shift .app{height:calc(100vh - 36px)}.imp-shift .dash{min-height:calc(100vh - 36px)}.dash-body.wide{max-width:1000px}.subnav{gap:8px;max-width:860px;margin:18px auto -6px;padding:0 20px;display:flex}.subnav button{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-bottom:none;border-radius:9px 9px 0 0;padding:9px 16px;font-size:14px}.subnav button.on{background:var(--panel);border-color:var(--line);color:var(--txt);font-weight:600}.pending-dot{background:var(--orange,#f07d2e);color:#fff;border-radius:10px;margin-left:6px;padding:0 7px;font-size:11px;font-style:normal;font-weight:700}.pending-pill{color:#b45309;background:#fff4e5;border:1px solid #fed7aa;border-radius:8px;align-self:center;margin-left:10px;padding:4px 10px;font-size:12.5px}.st-badge{border-radius:6px;margin-left:8px;padding:1px 8px;font-size:11px;font-weight:600}.st-badge.on{color:#166534;background:#dcfce7;border:1px solid #bbf7d0}.st-badge.pending{color:#b45309;background:#fff4e5;border:1px solid #fed7aa}.st-badge.paused{color:#b91c1c;background:#fee2e2;border:1px solid #fecaca}.role-chip{color:#6d28d9;background:#ede9fe;border:1px solid #ddd6fe;border-radius:6px;margin-left:8px;padding:1px 8px;font-size:11px;font-weight:600}.tarif-badge{color:#fff;background:var(--accent-2);white-space:nowrap;border-radius:7px;padding:3px 10px;font-size:12px;font-weight:700}.tarif-badge.none{background:var(--panel-2);color:var(--muted);border:1px solid var(--line)}.ent-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.ent-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.ent-head{flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex}.ent-toggle{cursor:pointer;color:var(--txt);background:0 0;border:none;flex:1;align-items:center;gap:9px;min-width:160px;padding:0;display:flex}.ent-toggle b{font-size:16px}.caret{color:var(--muted);transition:transform .15s;display:inline-block}.caret.open{transform:rotate(90deg)}.ent-count{color:var(--muted);font-size:12.5px}.ent-actions{gap:6px;margin-left:auto;display:flex}.ent-actions button,.urow-actions button{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);cursor:pointer;white-space:nowrap;border-radius:8px;padding:7px 11px;font-size:12.5px}.ent-actions button:hover,.urow-actions button:hover{border-color:var(--accent-2)}.ent-actions button.danger,.urow-actions button.danger{color:#b91c1c}.ent-actions button.danger:hover,.urow-actions button.danger:hover{color:#fff;background:#ef4444;border-color:#ef4444}.urow-actions button.accent{background:var(--accent);border-color:var(--accent);color:#fff}.urow-actions button.accent:hover{background:var(--accent-2)}.urow-actions button:disabled{opacity:.45;cursor:default}.ent-users{border-top:1px solid var(--line);background:var(--panel-2);flex-direction:column;gap:6px;padding:8px 14px 12px;display:flex}.ent-empty{color:var(--muted);margin:6px 2px;font-size:13px}.urow{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;display:flex}.urow-main{flex-wrap:wrap;flex:1;align-items:center;gap:2px 4px;min-width:180px;display:flex}.urow-main b{font-size:14px}.urow-meta{color:var(--muted);width:100%;font-size:12px}.urow-actions{gap:6px;margin-left:auto;display:flex}.ent-adduser{border:1px dashed var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;align-self:flex-start;margin-top:4px;padding:7px 12px;font-size:12.5px}.ent-adduser:hover{border-color:var(--accent);color:var(--txt)}.ent-logo-mini{object-fit:contain;max-width:80px;height:22px}.ent-logo-apercu{border:1px solid var(--line,#ddd);background:#fff;border-radius:8px;align-items:center;min-height:80px;margin:12px 0;padding:16px;display:flex}.ent-logo-apercu img{object-fit:contain;max-width:320px;max-height:90px}.ent-logo-actions{gap:8px;display:flex}.modal-select{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);border-radius:9px;outline:none;padding:10px 12px;font-size:14px}.modal-select:focus{border-color:var(--accent)}.modal-sep{text-transform:uppercase;letter-spacing:.5px;color:var(--accent-2);margin:6px 0 -4px;font-size:12px;font-weight:700}.hist-list{flex-direction:column;gap:8px;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.hist-list li{align-items:center;gap:10px;display:flex}.hist-meta{color:var(--muted);font-size:12.5px}.projbar{align-items:center;gap:8px;display:flex}.projbar .save{background:var(--accent);border:1px solid var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border-radius:8px;padding:7px 12px;font-size:12.5px;font-weight:600}.projbar .save:hover:not(:disabled){background:var(--accent-2)}.projbar .save:disabled{opacity:.6;cursor:default}.dash-split{align-items:flex-start;gap:20px;display:flex}.dash-main{flex:1;min-width:0}.dos-col{flex-direction:column;flex:0 0 190px;gap:3px;width:190px;display:flex}.dos-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 4px 4px;font-size:11px}.dos-col>button,.dos-item>button{background:var(--panel);width:100%;color:var(--txt);text-align:left;cursor:pointer;border:1px solid #0000;border-radius:8px;flex:1;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;font-size:13px;display:flex}.dos-col>button:hover,.dos-item>button:hover{border-color:var(--line)}.dos-col>button em,.dos-item>button em{color:var(--muted);font-size:12px;font-style:normal}.dos-col>button.on,.dos-item.on>button{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.dos-col>button.on em,.dos-item.on>button em{color:#fff;opacity:.75}.dos-item{align-items:center;gap:2px;display:flex}.dos-acts{opacity:0;gap:2px;transition:opacity .12s;display:flex}.dos-item:hover .dos-acts{opacity:1}.dos-acts button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px;font-size:12px}.dos-acts button:hover{color:var(--accent-2)}.dos-col>button.dos-add{border:1px dashed var(--line);color:var(--muted);background:0 0;margin-top:6px;font-size:12.5px}.dos-col>button.dos-add:hover{border-color:var(--accent);color:var(--txt)}@media (width<=720px){.dash-split{flex-direction:column;gap:12px}.dos-col{flex-direction:row;flex:none;gap:6px;width:100%;padding-bottom:4px;overflow-x:auto}.dos-col>button,.dos-item>button{white-space:nowrap;width:auto}.dos-title{display:none}.dos-acts{opacity:1}}.projbar .save.alt{background:var(--panel-2);border-color:var(--line);color:var(--txt);font-weight:500}.projbar .save.alt:hover:not(:disabled){background:var(--panel);border-color:var(--accent)}.ro-badge{color:var(--muted);background:var(--panel-2);border:1px solid var(--line);white-space:nowrap;border-radius:7px;padding:4px 8px;font-size:11.5px}.projet-new{gap:6px;margin-top:6px;display:flex}.projet-new input{background:var(--panel-2);border:1px solid var(--line);min-width:0;color:var(--txt);border-radius:9px;outline:none;flex:1;padding:9px 12px;font-size:13.5px}.projet-new input:focus{border-color:var(--accent)}.projet-new button{cursor:pointer;border:1px solid var(--line);white-space:nowrap;border-radius:9px;padding:0 12px;font-size:12.5px}.projet-new button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.projet-new button.primary:disabled{opacity:.5;cursor:default}.projet-new button.ghost{background:var(--panel-2);color:var(--muted)}.dos-item.dos-sub>button{font-size:12.5px}.projet-new-parent{width:100%;margin-top:6px;font-size:12.5px}.dos-children{border-left:2px solid var(--line);flex-direction:column;gap:3px;max-height:40vh;margin:3px 0 3px 16px;padding-left:8px;display:flex;overflow-y:auto}.dos-chevron{color:var(--muted);width:8px;margin-right:5px;font-size:10px;font-style:normal;display:inline-block}.dos-col>.dos-item.on>button .dos-chevron,.dos-item.on>button .dos-chevron{color:#fff;opacity:.8}.lien-discret{font:inherit;color:inherit;opacity:.75;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.lien-discret:hover{opacity:1}.bo{background:var(--bg);height:100vh;color:var(--txt);grid-template-columns:240px 1fr;display:grid}.bo-side{background:var(--panel);border-right:1px solid var(--line);padding:18px;overflow-y:auto}.bo-back{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);cursor:pointer;border-radius:8px;padding:7px 12px;font-size:13px}.bo-side h1{margin:18px 0 16px;font-size:20px}.bo-tabs{flex-direction:column;gap:6px;display:flex}.bo-tabs button{text-align:left;background:var(--panel-2);border:1px solid var(--line);color:var(--txt);cursor:pointer;border-radius:9px;padding:10px 12px;font-size:14px}.bo-tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff}.bo-doclist{flex-direction:column;gap:3px;margin-top:18px;display:flex}.bo-doclist button{text-align:left;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:7px 10px;font-size:12.5px}.bo-doclist button.on,.bo-doclist button:hover{background:var(--panel-2);color:var(--txt)}.bo-main{padding:26px 32px;overflow-y:auto}.bo-main h2{margin:0 0 4px;font-size:20px}.bo-sub{color:var(--muted);margin:0 0 22px;font-size:13px}.bo-avail{cursor:pointer;background:var(--panel-2);border:1px solid var(--line);width:100%;color:var(--muted);border-radius:8px;align-items:center;gap:7px;margin-top:8px;padding:7px 10px;font-size:12px;display:flex}.bo-avail .dot{background:#6b7280;border-radius:50%;flex:none;width:9px;height:9px}.bo-avail.on{color:#86efac;background:#1665342e;border-color:#166534}.bo-avail.on .dot{background:#22c55e}.bo-avail:hover{border-color:var(--accent-2)}.bo-docbar{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.bo-docbar h2{margin:0;font-size:19px}.bo-docactions{align-items:center;gap:10px;display:flex}.bo-docactions button{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);cursor:pointer;border-radius:8px;padding:7px 14px;font-size:13px}.bo-docactions button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.bo-saved{color:#86efac;font-size:13px}.bo-editor{resize:vertical;color:#d4d9e2;border:1px solid var(--line);background:#0d1016;border-radius:10px;width:100%;max-width:820px;height:calc(100vh - 160px);padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.55}.bo-floors{flex-direction:column;gap:10px;max-width:820px;display:flex}.bo-floor-opts{flex-wrap:wrap;align-items:center;gap:14px;margin-top:6px;font-size:13px;display:flex}.bo-floor-opts label{align-items:center;gap:6px;display:inline-flex}.bo-floor-opts input[type=number]{width:90px}.bo-floor{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:14px;padding:10px 12px;display:flex}.bo-floor-prev{border:1px solid var(--line);background-position:50%;background-size:cover;border-radius:9px;flex:none;width:60px;height:60px}.bo-floor-body{flex-direction:column;flex:1;gap:7px;min-width:160px;display:flex}.bo-floor-name{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);border-radius:8px;outline:none;max-width:260px;padding:8px 10px;font-size:14px}.bo-floor-name:focus{border-color:var(--accent)}.bo-floor-nameval{color:var(--txt);cursor:text;text-overflow:ellipsis;white-space:nowrap;max-width:240px;padding:8px 2px;font-size:15px;font-weight:600;overflow:hidden}.bo-floor-actions{flex-wrap:wrap}.bo-floor-kind{gap:6px;display:flex}.bo-tag{text-transform:uppercase;letter-spacing:.4px;background:var(--panel-2);border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:2px 8px;font-size:11px}.bo-tag.on{background:var(--accent);border-color:var(--accent);color:#fff}.bo-floor-actions{flex:none;align-items:center;gap:8px;display:flex}.bo-floor-actions button{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);cursor:pointer;border-radius:8px;padding:7px 12px;font-size:12.5px}.bo-floor-actions button:hover{border-color:var(--accent-2)}.bo-floor-actions button.danger{color:#dc2626}.bo-floor-actions button.danger:hover{color:#fff;background:#ef4444;border-color:#ef4444}.bo-color{cursor:pointer;flex-direction:column;align-items:center;gap:2px;display:flex}.bo-color input[type=color]{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;width:34px;height:26px;padding:0}.bo-color span{color:var(--muted);font-size:10px}.bo-import-msg{color:#166534;background:#dcfce7;border:1px solid #bbf7d0;border-radius:9px;max-width:900px;margin:-8px 0 16px;padding:9px 13px;font-size:13px}.bo-import-msg.warn{color:#b45309;background:#fff4e5;border-color:#fed7aa}.bo-fondperdu{color:var(--txt);align-items:center;gap:8px;margin:-6px 0 18px;font-size:13px;display:flex}.bo-fondperdu input{background:var(--panel-2);border:1px solid var(--line);width:64px;color:var(--txt);border-radius:8px;padding:6px 8px;font-size:13px}.bo-prices-wrap{border:1px solid var(--line);border-radius:12px;max-width:100%;overflow-x:auto}.bo-prices{border-collapse:collapse;background:var(--panel);width:100%;min-width:1180px;font-size:13px}.bo-prices th,.bo-prices td{text-align:left;border-bottom:1px solid var(--line);padding:8px 10px}.bo-prices thead th{background:var(--panel-2);z-index:1;font-weight:700;position:sticky;top:0}.bo-prices th.col,.bo-prices td.col{text-align:center;width:84px}.bo-prices th.base,.bo-prices td.base{text-align:right;color:var(--muted);white-space:nowrap}.bo-prices th.unit,.bo-prices td.unit{color:var(--muted);white-space:nowrap}.bo-prices td.ref b{font-size:13px;display:block}.bo-prices td.ref code{color:#9fb4d6;background:#11141a;border-radius:4px;padding:1px 6px;font-size:11px}.bo-prices tr.cat-row td{background:var(--panel-2);text-transform:uppercase;letter-spacing:.5px;color:var(--accent-2);font-size:11px;font-weight:700}.bo-prices td.col input{text-align:right;border:1px solid var(--line);background:var(--panel-2);width:64px;color:var(--txt);-moz-appearance:textfield;border-radius:7px;outline:none;padding:6px 7px;font-size:13px}.bo-prices td.col input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.bo-prices td.col input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.bo-prices td.col input:focus{border-color:var(--accent)}.bo-prices .bo-subhead th{color:#6b7280;padding-bottom:4px;font-size:11px;font-weight:400}.bo-alerte{color:#b45309;margin-top:2px;font-size:11px;font-style:normal;display:block}.bo-alerte-rouge{color:var(--accent);font-weight:600}.bo-calib{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.bo-calib-ctrl{flex:320px;min-width:300px;max-width:420px}.bo-calib-lbl{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:12px;font-weight:700}.bo-calib-elems{flex-wrap:wrap;gap:6px;margin:8px 0 18px;display:flex}.bo-calib-elems button{cursor:pointer;background:var(--panel);border:1px solid var(--line);color:var(--txt);border-radius:8px;padding:7px 11px;font-size:12.5px}.bo-calib-elems button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.bo-calib-fields{flex-direction:column;gap:12px;display:flex}.bo-calib-field label{color:var(--txt);justify-content:space-between;align-items:baseline;margin-bottom:3px;font-size:12.5px;display:flex}.bo-calib-field label .val{color:var(--accent-2);font-variant-numeric:tabular-nums;font-weight:600}.bo-calib-field input[type=range]{width:100%;accent-color:var(--accent)}.bo-calib-reset{cursor:pointer;background:var(--panel-2);border:1px solid var(--line);color:var(--muted);border-radius:8px;margin-top:16px;padding:8px 12px;font-size:12.5px}.bo-calib-reset:hover{border-color:var(--accent-2);color:var(--txt)}.bo-calib-view{flex:420px;min-width:340px}.bo-calib-shape{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.bo-calib-vlbl{color:var(--muted);font-size:11.5px}.bo-calib-vsep{background:var(--line);width:1px;height:20px;margin:0 4px}.bo-calib-shape button{cursor:pointer;background:var(--panel-2);border:1px solid var(--line);color:var(--txt);border-radius:8px;padding:6px 12px;font-size:12.5px}.bo-calib-shape button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.bo-calib-canvas{border:1px solid var(--line);border-radius:12px;height:460px;overflow:hidden}.bo-md{max-width:820px;line-height:1.6}.bo-md h1{margin:0 0 12px;font-size:24px}.bo-md h2{border-bottom:1px solid var(--line);margin:26px 0 10px;padding-bottom:6px;font-size:19px}.bo-md h3{color:var(--accent-2);margin:18px 0 8px;font-size:15px}.bo-md p,.bo-md li{color:#d4d9e2;font-size:14px}.bo-md code{background:var(--panel-2);color:#9fb4d6;border-radius:5px;padding:1px 6px;font-size:13px}.bo-md blockquote{border-left:3px solid var(--accent);color:var(--muted);background:var(--panel);margin:12px 0;padding:4px 14px}.bo-md table{border-collapse:collapse;width:100%;margin:14px 0;font-size:13px}.bo-md th,.bo-md td{border:1px solid var(--line);text-align:left;padding:7px 10px}.bo-md th{background:var(--panel-2)}.bo-md a{color:var(--accent-2)}.bo-md strong{color:#fff}.cat-layout{align-items:flex-start;gap:24px;display:flex}.cat-tree{flex-direction:column;gap:2px;min-width:210px;display:flex}.cat-fam{text-align:left;cursor:pointer;color:var(--txt);background:0 0;border:1px solid #0000;border-radius:8px;flex:1;padding:7px 10px}.cat-fam.on{background:var(--panel-2);border-color:var(--accent)}.cat-fam.sous{margin-left:14px;font-size:13px}.cat-fam em{opacity:.55;margin-left:6px;font-style:normal}.cat-fam-row{align-items:center;gap:2px;display:flex}.cat-icon{opacity:.5;cursor:pointer;color:var(--txt);background:0 0;border:none;border-radius:6px;flex:none;padding:4px 6px;font-size:12px}.cat-icon:hover{opacity:1;background:var(--panel-2)}.cat-add{text-align:left;opacity:.7;cursor:pointer;color:var(--txt);background:0 0;border:none;padding:5px 10px;font-size:12px}.cat-add:hover{opacity:1}.cat-sans-modele{opacity:.6;white-space:nowrap;font-size:12px}.cat-unite{width:70px}.cat-poids{white-space:nowrap;flex:none;align-items:center;gap:4px;font-size:12px;display:inline-flex}.cat-poids input{flex:none;width:64px;min-width:0}.cat-fiches{flex-direction:column;flex:1;gap:6px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.cat-fiche{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 10px;display:flex}.cat-fiche img{object-fit:contain;background:#11141a;border-radius:6px;flex:none;width:40px;height:40px}.cat-fiche code{opacity:.7;text-overflow:ellipsis;flex:none;width:100px;font-size:11px;overflow:hidden}.cat-fiche input,.cat-fiche select{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);border-radius:6px;padding:6px 8px;font-size:13px}.cat-fiche .bo-avail{flex:none;width:auto;margin-top:0}.cat-fiche input:focus,.cat-fiche select:focus{border-color:var(--accent);outline:none}.cat-fiche>input:first-of-type{flex:1;min-width:120px}.cat-fiche .bo-avail{white-space:nowrap;flex:none;width:auto;margin-top:0}.cat-fiche>input:nth-of-type(2){width:120px;min-width:0}.cat-vide{opacity:.6;padding:14px 10px;font-size:13px;list-style:none}.bo-hint{color:var(--muted);max-width:70ch;margin:0 0 16px;font-size:13px;line-height:1.55}.bo-ok{color:#15803d;margin:0 0 14px;font-size:13px}.bo-err{color:#dc2626;margin:0 0 14px;font-size:13px}.bo-menagebar{align-items:center;gap:10px;margin:0 0 14px;font-size:14px;display:flex}.bo-menagebar span{color:var(--muted)}.bo-menagebar button{cursor:pointer;background:var(--panel-2);border:1px solid var(--line);color:inherit;border-radius:8px;padding:6px 12px}.bo-menagebar button:disabled{opacity:.5;cursor:default}.bo-menagebar button.danger{color:#dc2626}.bo-menagebar button.danger:hover:not(:disabled){color:#fff;background:#ef4444;border-color:#ef4444}.bo-table{border-collapse:collapse;width:100%;font-size:13px}.bo-table th,.bo-table td{text-align:left;border-bottom:1px solid var(--line);padding:7px 10px}.bo-table th{color:var(--muted);font-weight:600}.bo-table td:nth-child(2),.bo-table td:nth-child(3),.bo-table th:nth-child(2),.bo-table th:nth-child(3){text-align:right;white-space:nowrap}.packlist{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.packlist li{border:1px solid #7f7f7f40;border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;padding:8px;display:flex}.packlist li.masque{opacity:.5}.packlist img,.packlist .packvide{object-fit:cover;border-radius:6px;width:96px;height:72px}.packlist .packvide{background:#7f7f7f1f;justify-content:center;align-items:center;font-size:24px;display:flex}.packchamps{flex-direction:column;flex:260px;gap:4px;min-width:200px;display:flex}.packchamps input{width:100%}.packmeta{opacity:.6;font-size:12px}.packactions{align-items:center;gap:6px;display:flex}.packactions label{align-items:center;gap:4px;font-size:12px;display:flex}.packsuppr{gap:8px}.packsuppr span{max-width:320px;font-size:12px}.packsuppr .danger{color:#dc2626;font-weight:600}.cat-textiles{flex:none;font-size:12px;position:relative}.cat-textiles>summary{cursor:pointer;white-space:nowrap;background:var(--panel-2);border:1px solid var(--line);color:var(--txt);border-radius:8px;padding:7px 10px;list-style:none}.cat-textiles>summary::-webkit-details-marker{display:none}.cat-textiles>summary:after{content:" ▾";color:var(--muted)}.cat-textiles[open]>summary{border-color:var(--accent)}.cat-textiles-menu{z-index:20;background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:2px;min-width:180px;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #0000002e}.cat-textiles-menu label{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:5px 6px;display:flex}.cat-textiles-menu label:hover{background:var(--panel-2)}*{box-sizing:border-box}:root{--bg:#f9f3ef;--panel:#fff;--panel-2:#f5ebe4;--line:#e7ddd2;--txt:#1f1c1a;--muted:#8a8078;--accent:#f22f3d;--accent-2:#d81f2c;--orange:#f07d2e;--orange-2:#d96a1c}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--txt);font-family:Rethink Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{grid-template-columns:var(--gauche-w,280px) 1fr var(--bom-w,360px);height:100vh;transition:grid-template-columns .35s;display:grid;position:relative}.stepacc{grid-template-rows:0fr;transition:grid-template-rows .28s;display:grid}.stepacc.open{grid-template-rows:1fr}.stepacc>.stepclip{min-height:0;overflow:hidden}.stepacc .stepbody{flex:none;margin-top:0;padding:6px 2px 12px}.dropdown{background:var(--panel-2);border:1px solid var(--line);width:100%;color:var(--txt);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path fill='%238b93a7' d='M2 4l4 4 4-4z'/></svg>");background-position:right 12px center;background-repeat:no-repeat;border-radius:9px;padding:10px 34px 10px 12px;font-size:14px}.dropdown:focus{border-color:var(--accent);outline:none}.dropdown option{background:var(--panel-2);color:var(--txt)}.panel .nav{margin-top:auto}.panel,.bom{background:var(--panel);padding:20px;overflow-y:auto}.panel{border-right:1px solid var(--line);flex-direction:column;display:flex}.bom{border-left:1px solid var(--line);flex-direction:column;display:flex}.app.replie{--bom-w:0px}.app.replie .bom{border-left:none;min-width:0;padding:0;overflow:hidden}.bomtoggle{top:50%;right:var(--bom-w,360px);z-index:20;cursor:pointer;background:var(--panel);width:26px;height:76px;color:var(--muted);border:1px solid var(--line);border-right:none;border-radius:9px 0 0 9px;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;display:flex;position:absolute;transform:translateY(-50%);box-shadow:-2px 0 8px #1f1c1a0f}.bomtoggle:hover{color:var(--accent);border-color:var(--accent)}.app.replie .bomtoggle{border-right:1px solid var(--line);border-radius:9px;right:10px;box-shadow:0 2px 10px #1f1c1a1f}.app.replie .bomtoggle:hover{border-color:var(--accent)}.steps{flex-direction:column;gap:6px;margin-top:18px;display:flex}.stepitem{background:var(--orange);border:1px solid var(--orange);color:#fff;cursor:pointer;text-align:left;letter-spacing:.4px;border-radius:10px;align-items:center;gap:10px;padding:12px 14px;font-size:13px;font-weight:700;transition:background .15s,border-color .15s;display:flex}.stepbody{flex:1;margin-top:22px}.hint{color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.45}.hint strong{color:var(--txt)}.segmented.vert{flex-direction:column}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{border:2px solid var(--line);cursor:pointer;border-radius:8px;width:34px;height:34px;padding:0}.swatch.on{box-shadow:0 0 0 2px var(--accent);border-color:#fff}.rtabs{gap:6px;margin-bottom:4px;display:flex}.rtabs button{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);cursor:pointer;border-radius:8px;flex:1;padding:9px;font-size:13px}.rtabs button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.libgrid{grid-template-columns:1fr 1fr;align-content:start;gap:8px;display:grid;overflow-y:auto}.libcard{border:1px solid var(--line);cursor:grab;background:#fff;border-radius:9px;flex-direction:column;display:flex}.libcard:hover{border-color:var(--accent)}.libcard:active{cursor:grabbing}.libcard img{object-fit:contain;pointer-events:none;background:#fff;border-radius:8px 8px 0 0;width:100%;height:72px;display:block}.libcard span{color:var(--txt);border-top:1px solid var(--line);padding:6px 8px 8px;font-size:10.5px;line-height:1.25}.lib-fam{margin-bottom:6px}.lib-fam-tete{text-align:left;cursor:pointer;background:var(--panel-2);border:1px solid var(--line);width:100%;color:var(--txt);border-radius:8px;padding:7px 8px;font-size:13px;font-weight:600}.lib-fam-tete:hover{border-color:var(--accent)}.lib-fam-tete em{opacity:.55;margin-left:4px;font-style:normal;font-weight:400}.lib-fam-tete .caret{margin-right:6px;transition:transform .12s;display:inline-block}.lib-fam-tete .caret.open{transform:rotate(90deg)}.lib-sousfam{opacity:.7;margin:8px 0 4px;font-size:12px}.lib-brut{opacity:.7;margin:0 0 8px;font-size:12px}.clearplaced{background:var(--panel-2);border:1px solid var(--line);width:100%;color:var(--muted);cursor:pointer;border-radius:8px;margin-bottom:10px;padding:7px;font-size:12px}.clearplaced:hover{color:#ef4444;border-color:#ef4444}.modlist{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.modrow{background:var(--panel-2);border:1px solid var(--accent);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;font-size:12.5px;display:flex}.ajouts{margin-top:10px}.ajout-row{border-color:var(--line)}.ajout-nom{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ajout-qte{flex:none;align-items:center;gap:4px;display:flex}.ajout-qte b{text-align:center;min-width:20px}.ajout-qte button:hover{color:var(--txt)}.ajout-qte button:last-child:hover{color:#ef4444}.ajout-ouvrir{color:var(--accent);border-style:dashed;margin:4px 0 0}.ajout-choix{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;max-height:340px;margin:8px 0 10px;overflow-y:auto}.ajout-choix input{box-sizing:border-box;border:none;border-bottom:1px solid var(--line);background:var(--panel);width:100%;color:var(--txt);padding:8px 10px;font-size:12.5px;position:sticky;top:0}.ajout-choix header{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:8px 10px 4px;font-size:11px;font-weight:600}.ajout-article{width:100%;color:var(--txt);text-align:left;cursor:pointer;background:0 0;border:none;justify-content:space-between;gap:8px;padding:6px 10px;font-size:12.5px;display:flex}.ajout-article:hover{background:var(--panel)}.ajout-article code{color:var(--muted);flex:none;font-size:11px}.line-sub em.ajoute{color:var(--accent);font-style:normal}.vhead{justify-content:space-between;align-items:center;display:flex}.addbtn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:6px 12px;font-size:13px}.addbtn:hover{background:var(--accent-2)}.vlist{flex-direction:column;gap:8px;margin-top:14px;display:flex}.vrow{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:9px 10px;display:flex}.vrow.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.vrow .dot{border-radius:4px;flex:none;width:16px;height:16px}.vinfo{flex-direction:column;flex:1;display:flex}.vinfo b{font-size:13.5px}.vinfo .m2{color:var(--muted);font-size:11.5px}.vblank{color:var(--muted);cursor:pointer;align-items:center;gap:4px;font-size:12px;display:flex}.vblank input{accent-color:var(--accent)}.vblank-off{cursor:help;opacity:.55;font-style:italic}.vdel{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:18px;line-height:1}.vdel:hover{color:#ef4444}.vitem{flex-direction:column;display:flex}.vitem-propose .vrow{opacity:.6}.vpropose{color:var(--muted);font-size:12px;font-style:italic}.vload{color:var(--txt);background:var(--panel);border:1px solid var(--line);cursor:pointer;white-space:nowrap;border-radius:7px;flex:none;padding:4px 8px;font-size:11.5px}.vload:hover{border-color:var(--accent);color:var(--accent)}.vfile{background:var(--panel);border:1px solid var(--line);border-radius:8px;align-items:center;gap:8px;margin:3px 0 2px 8px;padding:6px 10px;font-size:12px;display:flex}.vfile-name{color:var(--txt);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.vfile-act{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:2px 4px;font-size:11.5px}.vfile-act:hover{color:var(--accent)}.vfile-act.danger:hover{color:#ef4444}.hud-tip{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important}.viewport-toast{z-index:25;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600;position:absolute;top:62px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #1f1c1a24}.notice{color:#fca5a5;background:#ef44441a;border:1px solid #ef44444d;border-radius:8px;margin:10px 0 0;padding:8px 10px;font-size:12px}.vdotmini{vertical-align:middle;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.recap{margin:0;padding:0;list-style:none}.recap li{border-bottom:1px solid var(--line);justify-content:space-between;padding:9px 0;font-size:14px;display:flex}.recap li span{color:var(--muted)}.cote-fichier{color:#6b7280;font-size:11px;font-style:normal;font-weight:400;display:block}.cta{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;width:100%;margin-top:18px;padding:12px;font-size:14px;font-weight:600}.cta:hover{background:var(--accent-2)}.nav{border-top:1px solid var(--line);gap:10px;margin-top:12px;padding-top:16px;display:flex}.nav button{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);cursor:pointer;border-radius:9px;flex:1;padding:11px;font-size:14px}.nav button:disabled{opacity:.4;cursor:default}.nav button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.nav button.primary:hover{background:var(--accent-2)}.nav button.undo{justify-content:center;align-items:center;gap:8px;display:flex}.nav button.undo:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.nav button.undo svg{display:block}.apphead{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.apphead .projbar{flex-wrap:wrap}.bo-open{background:var(--panel-2);border:1px solid var(--line);color:var(--txt);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;display:inline-flex}.bo-open.wide{white-space:nowrap;width:auto;padding:0 10px;font-size:13px}.bo-open:hover{border-color:var(--accent)}.bo-open.on{background:var(--accent);border-color:var(--accent);color:#fff}.calibpanel{z-index:20;border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff5;border-radius:12px;width:270px;padding:12px 14px;position:absolute;top:66px;left:18px;box-shadow:0 10px 30px #1f1c1a29}.calibpanel-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.calibpanel-head b{font-size:14px}.calib-x{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:15px;line-height:1}.calib-x:hover{color:var(--accent)}.calibpanel-elem{color:var(--accent-2);margin-bottom:10px;font-size:13px;font-weight:700}.calibpanel-hint{color:var(--muted);margin:4px 0 2px;font-size:12.5px;line-height:1.5}.calib-field{margin-bottom:9px}.calib-field label{color:var(--txt);justify-content:space-between;align-items:baseline;margin-bottom:2px;font-size:12px;display:flex}.calib-field label .val{color:var(--accent-2);font-variant-numeric:tabular-nums;font-weight:600}.calib-field input[type=range]{width:100%;accent-color:var(--accent)}.calibpanel-actions{align-items:center;gap:8px;margin-top:10px;display:flex}.calib-reset{cursor:pointer;background:var(--panel-2);border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:6px 10px;font-size:12px}.calib-reset:hover{border-color:var(--accent-2);color:var(--txt)}.calib-save{cursor:pointer;background:var(--accent);border:1px solid var(--accent);color:#fff;border-radius:8px;margin-left:auto;padding:6px 14px;font-size:12.5px;font-weight:600}.calib-save:hover{background:var(--accent-2)}.calib-ok{color:#16a34a;font-size:12px}.calib-nav{justify-content:space-between;align-items:center;gap:6px;margin-bottom:10px;display:flex}.calib-nav button{cursor:pointer;background:var(--panel-2);border:1px solid var(--line);color:var(--txt);border-radius:8px;padding:5px 10px;font-size:12px;font-weight:600}.calib-nav button:hover{border-color:var(--accent-2)}.calib-count{color:var(--accent-2);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.calib-rule{margin:10px 0 2px}.calib-rule label{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.calib-rule textarea{box-sizing:border-box;resize:vertical;border:1px solid var(--line);background:var(--panel-2);width:100%;color:var(--txt);border-radius:8px;padding:7px 9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.45}.calib-rule textarea:focus{border-color:var(--accent);outline:none}header h1{letter-spacing:.5px;align-items:flex-end;gap:8px;margin:0;font-size:22px;display:flex}header h1 span{color:var(--accent-2);font-size:14px;font-weight:400}.brand-logo{width:auto;height:1.15em;display:inline-block}.brand-name{color:#1f1c1a;letter-spacing:.5px;font-size:1.59em;font-weight:800;line-height:.82}header h2{margin:0;font-size:16px}.sub{color:var(--muted);margin:4px 0 0;font-size:12px}section{margin-top:22px}.title{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:10px;font-size:12px;display:block}.segmented{flex-wrap:wrap;gap:6px;display:flex}.segmented button{cursor:pointer;background:var(--panel-2);min-width:64px;color:var(--txt);border:1px solid var(--line);border-radius:8px;flex:1;padding:9px 8px;font-size:13px;transition:all .12s}.segmented button.on{background:var(--accent);border-color:var(--accent);color:#fff}.segmented button:hover:not(.on){border-color:var(--accent-2)}.row{justify-content:space-between;align-items:center;padding:7px 0;font-size:14px;display:flex}.stepper{align-items:center;gap:10px;display:flex}.stepper button{cursor:pointer;background:var(--panel-2);border:1px solid var(--line);width:28px;height:28px;color:var(--txt);border-radius:7px;font-size:16px}.stepper button:disabled{opacity:.35;cursor:default}.stepper span{text-align:center;font-variant-numeric:tabular-nums;min-width:18px}.numinput{align-items:center;gap:8px;display:flex}.numinput input{text-align:right;background:var(--panel-2);border:1px solid var(--line);width:84px;color:var(--txt);font-variant-numeric:tabular-nums;border-radius:8px;padding:8px 10px;font-size:14px}.numinput input:focus{border-color:var(--accent);outline:none}.numinput span{color:var(--muted);font-size:13px}.check{cursor:pointer;align-items:center;gap:8px;padding:6px 0;font-size:14px;display:flex}.check input{accent-color:var(--accent);width:16px;height:16px}.viewport{min-width:0;position:relative}.viewport canvas{display:block}.hud{gap:8px;display:flex;position:absolute;top:16px;left:16px}.hud span{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--txt);background:#ffffffd9;border-radius:999px;padding:6px 11px;font-size:12px;box-shadow:0 2px 8px #1f1c1a0f}.viewbtn{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--txt);cursor:pointer;background:#ffffffe6;border-radius:999px;padding:7px 15px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s;box-shadow:0 2px 8px #1f1c1a0f}.viewbtn:hover{border-color:var(--accent);color:var(--accent);background:#fff}.viewbtn.on{background:var(--accent);border-color:var(--accent);color:#fff}.gizmobar{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap;background:#fffffff0;border-radius:12px;align-items:center;gap:12px;padding:7px 8px 7px 14px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 26px #1f1c1a24}.gizmobar .ginfo{color:var(--muted);font-size:12.5px}.gizmobar .ginfo b{color:var(--txt);font-weight:600}.gizmobar kbd{color:var(--txt);background:var(--panel-2);border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-family:inherit;font-size:11px}.gizmobar .gcoord{color:var(--accent-2);font-variant-numeric:tabular-nums;background:var(--panel-2);border:1px solid var(--line);border-radius:7px;padding:4px 9px;font-size:12px}.gizmobar button{cursor:pointer;background:var(--panel-2);border:1px solid var(--line);color:var(--txt);border-radius:8px;padding:8px 13px;font-size:13px}.gizmobar button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.gizmobar button:hover:not(.on):not(.del){border-color:var(--accent-2)}.gizmobar button.del{color:#fca5a5}.gizmobar button.del:hover{color:#fff;background:#ef4444;border-color:#ef4444}.gizmobar .gsep{background:var(--line);width:1px;height:22px}.gizmobar .glbl{color:var(--muted);font-size:11.5px}.gizmobar .gsel{cursor:pointer;background:var(--panel-2);border:1px solid var(--line);color:var(--txt);border-radius:8px;max-width:150px;padding:7px 8px;font-size:12.5px}.gizmobar .gsel:focus{border-color:var(--accent);outline:none}.gizmobar .gcheck{color:var(--txt);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:5px;font-size:12.5px;display:flex}.gizmobar .gcheck input{cursor:pointer}.lines{flex-direction:column;flex:1;gap:10px;margin-top:16px;display:flex}.line{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:11px 12px}.line-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.line-head .lbl{font-size:13.5px;font-weight:600}.line-head .tot{font-variant-numeric:tabular-nums;color:var(--accent-2);font-weight:600}.line-head .tot.tot-sans-prix{color:var(--accent)}.line-sub{color:var(--muted);justify-content:space-between;margin-top:4px;font-size:11.5px;display:flex}.line-sub code{background:var(--panel-2);color:var(--muted);border-radius:5px;padding:1px 6px}.line-sub .sans-prix{color:var(--accent);font-style:normal;font-weight:600}.line-sub .inclus{color:var(--muted);font-style:normal;font-weight:600}.devis-fam{flex-direction:column;gap:10px;display:flex}.devis-fam-tete{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);justify-content:space-between;align-items:baseline;margin-top:6px;font-size:12px;display:flex}.devis-fam-tot{font-variant-numeric:tabular-nums;color:var(--txt);font-weight:600}.rule{color:var(--muted);margin-top:6px;font-size:11px;line-height:1.4}.devis-sans-prix-recap{color:var(--accent);margin:12px 0 0;font-size:12px;font-weight:600}.devis-mention-sol{color:#6b7280;margin:8px 0 0;font-size:12px}.sol-visuel{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.sol-visuel .hint{width:100%;margin:0}.sol-visuel-nom{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;overflow:hidden}.bom footer{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;margin-top:16px;padding-top:16px;display:flex}.bom footer span{color:var(--muted);font-size:13px}.bom footer strong{color:var(--txt);font-variant-numeric:tabular-nums;font-size:24px;font-weight:800}.gizmobar .ghauteur{align-items:center;gap:6px;font-size:12px;display:inline-flex}.gizmobar .ghauteur input{width:64px}.vlist .vtoile{flex:150px;min-width:150px;font-size:11.5px}.vctrl{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-top:none;border-radius:0 0 9px 9px;flex-wrap:wrap;align-items:center;gap:8px;margin-top:-4px;padding:0 10px 9px;display:flex}.vrow:has(+.vctrl){border-bottom:none;border-radius:9px 9px 0 0}.app.vitrine{height:100vh;display:block}.app.vitrine .viewport{height:100vh}.vitrinehead{z-index:5;white-space:nowrap;pointer-events:none;background:#ffffffeb;border-radius:12px;align-items:baseline;gap:12px;padding:8px 16px;font-size:14px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 2px 12px #0000001a}.vitrinehead span{color:var(--muted);font-size:12px}.pdfdoc{display:none}@media print{.app,.login-wrap,.bo,.imp-banner{display:none!important}.pdfdoc{color:#1f1c1a;background:#fff;font-size:10.5pt;display:block}@page{size:A4;margin:12mm}.pdfdoc{-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:10mm}.pdf-page-seule{box-sizing:border-box;padding:0 10mm}.pdf-entete{border-bottom:2px solid #1f1c1a;align-items:flex-start;gap:16px;margin-bottom:18px;padding-bottom:10px;display:flex}.pdf-logo{object-fit:contain;max-width:180px;height:34px}.pdf-titre{flex:1}.pdf-projet{color:#5c554e;text-transform:uppercase;letter-spacing:.06em;margin:0 0 1px;font-size:9pt}.pdf-titre h1{margin:0;font-size:19pt}.pdf-titre p{color:#5c554e;margin:3px 0 0;font-size:10pt}.pdf-date{color:#5c554e;white-space:nowrap;font-size:10pt}.pdf-bloc{margin-bottom:20px}.pdf-bloc h2{margin:0 0 8px;font-size:13pt}.pdf-note{color:#5c554e;margin:0 0 8px;font-size:9.5pt}.pdf-table{border-collapse:collapse;width:100%;font-size:10pt}.pdf-table th,.pdf-table td{text-align:left;border-bottom:1px solid #e3ddd7;padding:4px 6px}.pdf-table .num{text-align:right;white-space:nowrap}.pdf-table thead th{text-transform:uppercase;color:#5c554e;letter-spacing:.04em;font-size:8.5pt}.pdf-famille th{background:#f3efe9;font-size:10pt}.pdf-sku{font-variant-numeric:tabular-nums;color:#5c554e;white-space:nowrap}.pdf-pied{break-inside:avoid}.pdf-table .pdf-pied th{border-top:2px solid #1f1c1a;border-bottom:none;padding-top:8px;font-size:12pt}.pdf-sansprix td{color:#b91c1c}.pdf-alerte{color:#b91c1c;margin:8px 0 0;font-size:9.5pt}.pdf-pastille{vertical-align:baseline;border-radius:2px;width:9px;height:9px;margin-right:6px;display:inline-block}.pdf-table tr,.pdf-vue{break-inside:avoid}.pdf-bloc h2,.pdf-vue h3{break-after:avoid}.pdf-page-seule{break-before:page}.pdf-vue{width:100%;display:block}.pdf-vue h3{margin:0 0 6px;font-size:11pt}.pdf-vue img{object-fit:contain;border:1px solid #e3ddd7;width:100%;height:210mm;display:block}.pdf-livraison th{border-top:none;padding-top:4px;font-size:10pt;font-weight:600}.pdf-livraison th.num{color:#5c554e;font-style:italic;font-weight:500}.pdf-lien3d{break-inside:avoid;border:1px solid #e3ddd7;border-radius:6px;align-items:center;gap:14px;padding:10px 12px;display:flex}.pdf-qr{flex:none;width:28mm;height:28mm}.pdf-url{color:#1f1c1a;word-break:break-all;font-size:9pt}}.libcard .packdim{opacity:.6;font-size:11px;font-style:normal;display:block}.libcard .packvide{aspect-ratio:4/3;opacity:.35;background:#7f7f7f1f;border-radius:6px;justify-content:center;align-items:center;font-size:28px;display:flex}.livraison{border-top:1px solid var(--line,#ddd);margin:12px 0;padding:10px 0}.livraison h4{justify-content:space-between;margin:0 0 8px;display:flex}.livraison-kg{opacity:.7;font-weight:400}.livraison-opt{grid-template-columns:auto 1fr auto;align-items:start;gap:8px;padding:3px 0;font-size:13px;display:grid}.livraison-opt.off{opacity:.45}.livraison-opt em{opacity:.65;font-style:normal}.livraison-prix{white-space:nowrap;text-align:right}.fin-retour{background:var(--panel);width:100%;color:var(--accent);border:1.5px solid var(--accent);letter-spacing:.02em;cursor:pointer;border-radius:10px;margin:4px 0 10px;padding:11px;font-size:13px;font-weight:600}.fin-retour:hover{background:var(--accent);color:#fff}.fin-etape{font-weight:600;color:var(--txt)!important;margin:16px 0 6px!important}.complement-zero .ajout-nom{color:var(--muted)}.ajout-qte button:disabled{opacity:.35;cursor:default}.line-sub em.complete{color:var(--accent);font-style:normal}.app.finalise{--gauche-w:0px;--bom-w:560px}.app.finalise.replie{--bom-w:0px}.app.finalise>.panel{border-right:none;min-width:0;padding:0;overflow:hidden}.fin-bandeau{background:var(--panel-2);color:var(--muted);border-radius:8px;margin:0 0 10px;padding:8px 10px;font-size:12.5px}.fin-bandeau.fin-ok{color:#1e7a3c;background:#e7f6ec}.fin-bandeau.fin-erreur{color:#b42318;background:#fdecec}.fin-bandeau.fin-erreur button{color:inherit;cursor:pointer;background:0 0;border:1px solid;border-radius:6px;margin-left:6px;padding:1px 8px}.fin-progres{gap:4px;margin:0 0 12px;padding:0;list-style:none;display:flex}.fin-progres li{flex:1}.fin-progres button{border:1px solid var(--line);background:var(--panel-2);width:100%;color:var(--muted);cursor:pointer;border-radius:6px;padding:6px 4px;font-size:11.5px}.fin-progres li.fait button{color:#1e7a3c;background:#e7f6ec;border-color:#9fd8b2}.fin-verifier{color:#8a4b08;background:#fff4e5;border-radius:8px;margin:0 0 10px;padding:8px 10px;font-size:12.5px}.fin-verifier ul{margin:4px 0 0;padding-left:18px}.fin-verifier button{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;padding:0;text-decoration:underline}.fin-copie{color:#1e7a3c;font-size:12.5px}:root{--beige:#faf5f0;--beige-2:#f0e6dc;--beige-3:#e6d7c3;--beige-4:#d2b9a0;--noir-chaud:#1f1c1a;--noir-chaud-4:#37322d;--noir-chaud-3:#504b46;--noir-chaud-2:#6e6964;--bleu-3:#5f46ff;--bleu-4:#4b32c3;--bg:var(--beige);--panel:#fff;--panel-2:var(--beige-2);--line:var(--beige-3);--txt:var(--noir-chaud);--muted:var(--noir-chaud-2);--accent:var(--bleu-3);--accent-2:var(--bleu-4);--alerte:#d81f2c}.line-head .tot.tot-sans-prix,.line-sub .sans-prix,.devis-sans-prix-recap{color:var(--alerte)}.dash,.login-wrap{isolation:isolate;background:var(--bg);position:relative}.dash:before,.login-wrap:before{content:"";z-index:-1;pointer-events:none;background:url(/fond-beige.jpg) 50%/cover no-repeat;animation:48s ease-in-out infinite alternate fond-cinetique;position:fixed;inset:-6%}@keyframes fond-cinetique{0%{transform:translate(-2%,-1%)rotate(-1.5deg)scale(1.02)}to{transform:translate(2%,1.5%)rotate(1.5deg)scale(1.08)}}@media (prefers-reduced-motion:reduce){.dash:before,.login-wrap:before{animation:none}}.dash-head{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffb8;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;display:grid}.dash-head h1{white-space:nowrap}.dash-user{justify-self:end}.dash-name{text-align:right}.dash-titre{color:var(--txt);text-align:center;margin:0;font-size:20px;font-weight:700}@media (width<=1000px){.dash-head{grid-template-columns:1fr auto}.dash-titre{grid-area:2/1/auto/-1;font-size:17px}}.picto{vertical-align:-3px;flex:none;display:inline-block}.dash-actions button,.ent-actions button,.urow-actions button{align-items:center;gap:6px;display:inline-flex}.dash-new,.dash-logout,.dash-tabs button,.dash-guide-link,.dash-actions button,.ent-actions button,.urow-actions button,.ent-adduser,.dos-col>button,.dos-item>button,.modal-actions button,.projet-new button,.login-btn,.projbar .save,.bo-open,.addbtn,.cta,.nav button,.rtabs button,.clearplaced,.vload,.gizmobar button,.calib-save,.calib-reset,.calib-nav button,.imp-banner button,.pill{white-space:nowrap;border-radius:999px}.stepper button{border-radius:50%}.dash-logout:hover,.dash-guide-link:hover,.dash-tabs button:hover:not(.on),.dash-actions button:hover,.ent-actions button:hover,.urow-actions button:hover,.modal-actions .ghost:hover,.projet-new button.ghost:hover,.projbar .save.alt:hover:not(:disabled),.bo-open:hover:not(.on),.nav button:not(.primary):not(:disabled):hover,.nav button.undo:not(:disabled):hover,.rtabs button:hover:not(.on),.lib-fam-tete:hover,.clearplaced:hover,.vload:hover,.gizmobar button:hover:not(.on):not(.del),.stepper button:hover:not(:disabled),.calib-reset:hover,.calib-nav button:hover,.ent-adduser:hover,.dos-col>button.dos-add:hover{background:var(--beige-3);border-color:var(--beige-3);color:var(--txt)}.dos-col>button:hover:not(.on),.dos-item:not(.on)>button:hover{background:var(--beige-3);border-color:var(--beige-3)}.dash-actions button.danger,.ent-actions button.danger,.urow-actions button.danger{color:var(--txt)}.dash-actions button.danger:hover,.ent-actions button.danger:hover,.urow-actions button.danger:hover{background:var(--beige-3);border-color:var(--beige-3);color:var(--alerte)}.dash-new,.login-btn,.modal-actions .primary,.projet-new button.primary,.projbar .save:not(.alt),.addbtn,.cta,.nav button.primary,.calib-save,.dash-actions button.accent,.urow-actions button.accent{background:var(--accent);border-color:var(--accent);color:#fff}.dash-new:hover,.login-btn:hover:not(:disabled),.modal-actions .primary:hover:not(:disabled),.projbar .save:not(.alt):hover:not(:disabled),.addbtn:hover,.cta:hover,.nav button.primary:hover,.calib-save:hover,.dash-actions button.accent:hover:not(:disabled),.urow-actions button.accent:hover:not(:disabled){background:var(--accent-2);border-color:var(--accent-2);color:#fff}.dash-tabs button{background:#fff9}.dash-tabs button.on{border-color:var(--accent);color:var(--txt);background:#fff}.dos-col>button,.dos-item>button{background:#ffffffd9}.dos-col>button.dos-add{background:0 0}.stepitem{background:var(--noir-chaud-2);border-color:var(--noir-chaud-2);color:#fff;letter-spacing:.5px;border-radius:3px;font-size:14px}.stepitem:hover{background:var(--noir-chaud-3);border-color:var(--noir-chaud-3)}.stepitem.on{background:var(--noir-chaud-4);border-color:var(--noir-chaud-4);box-shadow:none}.stepitem .num{min-width:12px;font-weight:800}.segmented button{border-radius:8px}.segmented button.on{background:var(--beige-4);border-color:var(--beige-4);color:var(--txt);font-weight:600}.segmented button:hover:not(.on){background:var(--beige-3);border-color:var(--beige-3)}.rtabs button.on{background:var(--accent);border-color:var(--accent);color:#fff}.dash-foot{border-top:1px solid var(--line);max-width:860px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:10px auto 0;padding:18px 20px 28px;font-size:13px;display:flex}.dash-foot-contact{text-align:center;flex-wrap:wrap;flex:1 1 0;justify-content:center;align-items:center;gap:4px 14px;min-width:0;display:flex}@media (width<=720px){.dash-foot{flex-direction:column}.dash-foot-contact{flex:none}}.dash-foot-contact b{color:var(--txt)}.dash-foot-contact a{color:inherit}.pill{background:var(--accent);color:#fff;border:1.5px solid var(--accent);align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.pill:hover{background:var(--accent-2);border-color:var(--accent-2)}.pill-contour{color:var(--txt);border-color:var(--txt);background:#fff}.pill-contour:hover{background:var(--beige-3);border-color:var(--txt)}.login-card,.modal{box-shadow:0 18px 50px #1f1c1a24}.login-card input:focus,.modal input:focus{border-color:var(--accent)}.dash:has(.dash-body.wide) .dash-foot{max-width:1000px}.save-split{display:inline-flex;position:relative}.projbar .save-split{flex-basis:100%}.projbar .save-split .save-principal{border-radius:999px 0 0 999px;flex:1}.projbar .save-split .save-fleche{border-left:1px solid #ffffff59;border-radius:0 999px 999px 0;padding-left:9px;padding-right:11px}.projbar .save-split .save-principal:only-child{border-radius:999px}.save-menu{z-index:50;background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;min-width:220px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 8px 24px #1f1c1a24}.save-menu button{text-align:left;color:var(--txt);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;padding:8px 10px;font-size:13px}.save-menu button:hover:not(:disabled){background:var(--panel-2)}.save-menu button:disabled{opacity:.5;cursor:default}.projbar .partage-ligne{flex-basis:100%;order:10}
