:root{--ink:#21322e;--muted:#728079;--line:#dce3dc;--green:#286554;--paper:#f6f7f3;--pale:#e9f1e9}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px "Segoe UI",Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible{outline:3px solid #d49b62;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid #70a38b;outline-offset:1px}[hidden]{display:none!important}header{height:87px;background:#fff;border-bottom:1px solid var(--line);padding:0 max(28px,calc((100vw - 1320px)/2));display:flex;align-items:center;justify-content:space-between}header>div:last-child{display:flex;gap:22px;align-items:center}.brand{display:flex;align-items:center;gap:12px}.mark{font-weight:750;font-size:27px;background:var(--green);color:white;width:41px;height:41px;display:grid;place-items:center;border-radius:10px}.brand strong{font-size:25px;letter-spacing:-1.2px;display:block}.brand small{font-size:9px;letter-spacing:2.3px;display:block;margin-top:4px;font-weight:700;color:var(--muted)}.textbtn{border:0;background:none;color:var(--ink);font-weight:600;padding:12px 0}.outline{background:white;border:1px solid var(--line);border-radius:7px;padding:11px 17px;font-size:12px;color:var(--ink);font-weight:600}.primary{display:inline-flex;align-items:center;justify-content:center;gap:22px;border:0;border-radius:7px;background:var(--green);color:white;padding:14px 20px;font-weight:650;font-size:12px;transition:background .15s}.primary:hover{background:#184e3f}.primary b{font-size:18px;font-weight:400}.wide{width:100%}.demo{text-align:center;background:#fbf0dc;border-bottom:1px solid #eadbbd;color:#805c30;font-size:11px;padding:9px 15px}main{max-width:1376px;padding:43px 28px 15px;margin:auto}.intro{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:29px}.eyebrow{font-size:10px!important;letter-spacing:2px;font-weight:750;color:var(--green)!important;margin:0 0 12px!important}.intro h1{font-size:39px;line-height:1.12;letter-spacing:-1.3px;font-weight:600;margin:0 0 13px}.intro p{color:var(--muted);line-height:1.7;margin:0;font-size:13px}.trust{color:var(--muted);font-size:11px;line-height:2;text-align:right;padding-bottom:3px}.trust b{color:var(--green);font-weight:600}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 326px;gap:27px}.workspace>section{min-width:0}.steps{display:flex;gap:35px;margin:0 0 22px}.steps button{background:transparent;border:0;display:flex;align-items:center;gap:10px;font-size:11px;color:#8f9b95;font-weight:600;padding:0}.steps b{border:1px solid var(--line);border-radius:50%;width:25px;height:25px;display:grid;place-items:center;font-size:11px}.steps .active{color:var(--green)}.steps .active b{background:var(--green);color:white;border-color:var(--green)}.steps .done b{background:var(--pale);color:var(--green)}.panel{background:white;border:1px solid var(--line);border-radius:15px;overflow:hidden}.panelhead{display:flex;justify-content:space-between;align-items:center;padding:22px 25px 0;gap:12px}h2{font-size:17px;font-weight:650;margin:0}.tag{background:var(--paper);padding:6px 8px;border-radius:4px;color:var(--muted);font-size:10px}.types{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;padding:20px 25px 22px;border-bottom:1px solid var(--line)}.type{background:white;border:1px solid var(--line);border-radius:8px;padding:9px 2px;font-size:10px;color:#738278;font-weight:600}.type svg{width:100%;height:43px;display:block;margin-bottom:5px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}.type.selected{border-color:var(--green);background:var(--pale);color:var(--green)}.config{display:grid;grid-template-columns:1.05fr 1fr}.fieldsarea{padding:24px;border-right:1px solid var(--line)}h3{font-size:11px;font-weight:750;letter-spacing:.6px;text-transform:uppercase;margin:0 0 17px}.fields{display:grid;grid-template-columns:1fr 1fr;gap:16px 13px}.fields label{font-size:11px;color:var(--muted);display:block;font-weight:500;min-width:0}.fields input,.fields select,.fields textarea{display:block;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);padding:11px 9px;width:100%;margin-top:7px;font-size:12px;font-weight:500;min-width:0}.fields textarea{min-height:90px;resize:vertical}.span2{grid-column:1/-1}.unitinput{display:flex;border:1px solid var(--line);border-radius:6px;margin-top:7px;align-items:center}.unitinput input{margin:0;border:0;min-width:0;background:none;font-weight:650}.unitinput em{font-style:normal;font-size:10px;color:#99a69d;padding-right:9px}hr{border:0;border-top:1px solid var(--line);margin:23px 0}.preview{background:#fafbf7;padding:22px 17px;display:flex;flex-direction:column;min-width:0}.previewhead{display:flex;justify-content:space-between;gap:6px;color:var(--muted);font-size:9px;letter-spacing:.8px;font-weight:600}.previewhead span{color:var(--green);font-size:9px;letter-spacing:0}.preview p{font-size:10px;line-height:1.7;text-align:center;color:var(--muted);margin:9px 0 0}#drawing{flex:1;min-height:245px;margin:12px 0;background-image:radial-gradient(#b5c7b9 .7px,transparent .7px);background-size:18px 18px;display:grid;place-items:center}#drawing svg{width:100%;max-height:320px}.chips{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.chips span{background:white;border:1px solid var(--line);border-radius:4px;font-size:10px;padding:5px 7px}.addrow{border-top:1px solid var(--line);padding:18px 25px;display:flex;justify-content:space-between;align-items:center;gap:12px}.quantity{display:flex;align-items:center;gap:13px;font-size:11px;color:var(--muted)}.quantity>div{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.quantity button{border:0;background:white;width:30px;color:var(--ink)}.quantity input{border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);width:45px;text-align:center;padding:10px 0;-moz-appearance:textfield;color:var(--ink)}.quantity input::-webkit-inner-spin-button{-webkit-appearance:none}.features{padding:18px 2px;display:flex;gap:25px;font-size:10px;color:var(--muted)}aside{position:sticky;top:22px;align-self:start;margin-top:47px}.baskethead{display:flex;align-items:center;justify-content:space-between;padding:23px 21px 18px;border-bottom:1px solid var(--line)}.baskethead h2{font-size:16px}.count{border-radius:30px;background:var(--pale);padding:5px 9px;color:var(--green);font-size:10px}#basket{max-height:390px;overflow:auto;padding:0 21px}.empty{padding:30px 5px;text-align:center;color:var(--muted);line-height:1.7;font-size:11px}.empty>span{display:block;font-size:33px;color:#94ac9b;margin-bottom:8px}.empty strong{display:block;color:var(--ink);font-size:12px}.item{padding:17px 0;border-bottom:1px solid var(--line)}.item:last-child{border:0}.item>div:first-child{display:flex;justify-content:space-between;gap:10px;font-size:12px}.item b{color:var(--green);font-size:11px;white-space:nowrap}.item p{color:var(--muted);font-size:10px;line-height:1.65;margin:7px 0}.itemactions{display:flex;gap:12px}.itemactions button{padding:0;border:0;background:transparent;color:var(--muted);font-size:10px}.itemactions button:hover{color:#b66032}.basketbottom{border-top:1px solid var(--line);padding:19px 21px 21px}.total{display:flex;justify-content:space-between;font-size:11px;margin-bottom:17px}.note{background:#f0f5ed;padding:13px 15px;border-radius:8px;color:var(--green);font-size:11px;line-height:1.6;margin-top:16px}.note b{display:block;margin-bottom:3px}.support{display:flex;align-items:center;gap:12px;padding:19px 5px;font-size:11px;line-height:1.8;color:var(--muted)}.support>span{font-size:27px;color:var(--green)}.support a{color:var(--green);text-decoration:none;font-weight:650}.formbody{padding:25px}.formbody>p{font-size:12px;color:var(--muted);line-height:1.7;margin:0 0 22px}.actions{border-top:1px solid var(--line);padding:20px 25px;display:flex;align-items:center;justify-content:space-between;gap:15px}.actions .textbtn{font-size:12px}.check{display:flex;gap:10px;font-size:12px;line-height:1.6;margin-top:22px;color:var(--muted)}.check input{width:17px;height:17px;flex-shrink:0;accent-color:var(--green);margin-top:2px}.reviewline{display:flex;justify-content:space-between;gap:15px;padding:16px 0;border-top:1px solid var(--line);font-size:12px}.reviewline small{display:block;color:var(--muted);font-size:11px;line-height:1.6;margin-top:6px}#review>p{font-size:12px;color:var(--muted);line-height:1.8}.success{padding:45px 25px;text-align:center}.tick{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--pale);color:var(--green);font-size:25px;margin:0 auto 24px}.success h2{font-size:25px;letter-spacing:-.7px}.success>p:not(.eyebrow){font-size:13px;line-height:1.8;color:var(--muted);max-width:440px;margin:18px auto 25px}.successbuttons{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.success>.textbtn{margin-top:20px;font-size:12px}footer{max-width:1320px;border-top:1px solid var(--line);padding:23px 0;margin:8px auto;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}#error{background:#fff0e8;border:1px solid #ecd4c7;border-radius:8px;color:#963f29;padding:13px 18px;line-height:1.6;margin-bottom:15px;font-size:12px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:13px 23px;border-radius:8px;background:var(--ink);color:white;z-index:20;font-size:12px;box-shadow:0 6px 25px #0002}dialog{border:0;border-radius:14px;width:min(650px,90vw);max-height:85vh;padding:26px;color:var(--ink)}dialog::backdrop{background:#163c2d88}.dialoghead{display:flex;justify-content:space-between;align-items:center}dialog>p{font-size:12px;line-height:1.7;color:var(--muted)}.historyrow{padding:15px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:12px;align-items:center}.historyrow small{display:block;color:var(--muted);margin-top:6px}#printArea{display:none}
@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr) 290px;gap:18px}.fieldsarea{padding:20px 17px}.types{padding:17px;gap:5px}.type{font-size:9px}.preview{padding:20px 10px}.addrow{padding:17px}.primary{padding:13px 15px;gap:10px}.trust{display:none}.features{gap:13px;font-size:9px}footer{margin:8px 28px}.intro h1{font-size:35px}}
@media(max-width:850px){header{height:74px;padding:0 20px}.brand strong{font-size:22px}.brand .mark{width:35px;height:35px}.brand small{font-size:8px}.workspace{grid-template-columns:1fr}.trust{display:none}main{padding:28px 18px 12px}.intro{margin-bottom:25px}.intro h1{font-size:32px}.intro p{font-size:12px}aside{position:static;margin-top:0}.steps{justify-content:space-between;gap:5px}.config{grid-template-columns:1fr 1fr}.type{font-size:10px}header .outline{display:none}header .textbtn{font-size:12px}.features{flex-wrap:wrap;font-size:10px;gap:13px}#basket{max-height:none}.support{padding-bottom:0}.previewhead{font-size:9px}.previewhead span{font-size:8px}.addrow{padding:18px 20px}}
@media(max-width:500px){.types{grid-template-columns:repeat(3,1fr);gap:7px}.type{padding:7px 0}.type svg{height:34px}.config{grid-template-columns:1fr}.fieldsarea{border:0;padding:21px}.preview{border-top:1px solid var(--line);padding:18px 21px}#drawing{height:190px;min-height:190px}#drawing svg{max-height:190px}.intro h1{font-size:30px}.intro p{max-width:290px}.quantity>span{display:none}.addrow .primary{flex:1;font-size:11px}.steps button{font-size:10px;gap:6px}.steps{margin-bottom:18px}.panelhead{padding:21px 20px 0}.panelhead h2{font-size:16px}.tag{font-size:9px}.formbody .fields{grid-template-columns:1fr}.formbody .span2{grid-column:auto}.actions{padding:18px}.actions .primary{font-size:11px}.success h2{font-size:22px}footer{font-size:9px;gap:20px}.features{font-size:9px}}
@media print{body>*{display:none!important}body>#printArea{display:block!important;background:white;padding:20px;font-size:12px}#printArea h1{font-size:25px}#printArea table{width:100%;border-collapse:collapse}#printArea td,#printArea th{padding:12px 8px;border-bottom:1px solid #ccc;text-align:left}#printArea small{display:block;margin-top:6px}#printArea p{line-height:1.8}}
/* Atelier v2 — conventions et couleurs du bon de fabrication. */
:root{--ink:#213e5a;--green:#285c88;--line:#cad6e3}
body{background:#f3f6fa;color:#253c53}
main{max-width:1640px}
.brand .mark,.primary{background:#29557e}
.brand strong{color:#22709b}
.workspace{grid-template-columns:minmax(0,1fr) 300px;gap:24px}
.panel{border-color:#d0dbe8;border-radius:7px}
.panelhead{background:#edf3f9}
.type{min-height:44px;padding:10px 8px;border-radius:4px;font-size:13px}
.type.selected{background:#e3eefb;border-color:#295f96;color:#244f7d}
.types{grid-template-columns:repeat(6,1fr);gap:7px}
.config{grid-template-columns:minmax(360px,1.2fr) minmax(260px,1fr);align-items:start}
.fields{gap:14px 16px}
#dimensions{grid-template-columns:repeat(3,minmax(0,1fr))}
.fields label{font-size:12px;color:#485a6b}
input,select,textarea{border-color:#c4d2e2;border-radius:4px;background:#fff}
.preview{background:white;border:1px solid #c8d8e9;padding:16px;position:sticky;top:12px;border-radius:4px}
#drawing{height:310px;display:flex;align-items:center;justify-content:center}
#drawing svg.dsn{height:300px;width:auto;max-width:100%}
.preview p{font-size:11px}
.geometryhelp{font-size:12px;line-height:1.6;color:#5a6e82;background:#eff4fa;padding:10px;border-radius:4px}
.worksection{margin:28px 0 0;border-radius:0}
.worksection .panelhead h2{font-size:18px}
.tablewrap{overflow:auto;padding:14px;background:white}
.workshop{color:#151515;font-family:Arial,sans-serif}
#workshopTable{min-width:780px}
.workshop .at-bd{background:white}
.workshop .at-bd .tx .s{line-height:1.5}
.workshop .at-bd .no .n{max-width:170px;white-space:normal;overflow-wrap:anywhere;height:auto;line-height:1.3;padding:5px;min-height:30px}
.tableempty{padding:20px;color:#71849a}
#review .workshop{overflow:auto;max-width:100%}
#review .at-bd{min-width:740px}
.plantools{display:flex;gap:12px;padding:18px;align-items:end;flex-wrap:wrap}
.plantools label{display:grid;gap:6px;flex:1;min-width:150px;font-size:12px}
.plantools .primary{min-height:43px}
.planbar{display:flex;gap:6px;padding:10px 15px;background:#f0f5fb;flex-wrap:wrap;border-top:1px solid #cedbeb}
.planbar button{border:1px solid #c4d4e6;border-radius:4px;background:white;color:#32516f;padding:8px 10px;font-size:12px}
.planbar span{flex:1}
.plancanvas{height:560px;border-top:1px solid #c9d9e9;border-bottom:1px solid #c9d9e9;touch-action:none;overflow:hidden;cursor:grab}
.plancanvas [data-node]{cursor:pointer}
#planStatus,#planSelection,.planhint{padding:0 18px;font-size:12px;line-height:1.6}
#planStatus{font-weight:600;color:#21785e}.planerror{color:#b33d24!important}
.planhint{color:#60788e;margin:12px 0 18px}
.planreview{height:520px}
#drawingDialog{max-width:95vw;width:850px;padding:25px}
#largeDrawing{height:65vh;display:flex;justify-content:center}
#largeDrawing svg{height:100%;width:auto}
#drawingDialog::backdrop{background:#19324799}
#page0>.panelhead{border-radius:5px 5px 0 0}
#page0{padding-bottom:0}
.bonhead{display:flex;justify-content:space-between;align-items:start;margin-bottom:10px;gap:20px}
.bonhead p{margin:8px 0}.bonbrand strong{font-size:27px;color:#207497}
.bonbrand small{font-size:10px}.boninfos{border:1px solid black;padding:10px;line-height:1.6}
.bontitle{font-size:16px;border-bottom:1px solid #111;padding-bottom:6px;margin-top:16px}
.bonsign{display:flex;gap:30px;justify-content:space-between;margin-top:32px}
.bonsign span{border-top:1px solid black;padding-top:5px;flex:1;font-size:10px}
.bonplan{break-before:page;page-break-before:always}
@media(max-width:1150px){.workspace{grid-template-columns:1fr}aside{position:static}.config{grid-template-columns:1.2fr 1fr}.trust{display:none}}
@media(max-width:700px){.config{grid-template-columns:1fr}.preview{position:static}#dimensions{grid-template-columns:repeat(2,minmax(0,1fr))}.types{grid-template-columns:repeat(3,1fr)}main{padding:14px}.intro h1{font-size:29px}.fieldsarea{padding:16px}.config{padding:0}.worksection .panelhead{padding:16px}.plantools{padding:12px;gap:8px}.plancanvas{height:430px}.planbar button{padding:8px}.panelhead p{font-size:12px}.planreview{height:350px}}
@media print{
 @page{size:A4;margin:12mm}
 body{background:white;color:black}
 body>*{display:none!important}
 #printArea{display:block!important;width:100%;padding:0!important;margin:0!important}
 .workshop{font-size:10pt;print-color-adjust:exact;-webkit-print-color-adjust:exact}
 .workshop .at-bd{display:flex!important}
 .workshop .at-bd .no .n{max-width:24mm}
 .workshop .at-bd .dsn2 svg.dsn{height:52mm;max-width:110mm}
 .workshop .at-bd.large .dsn2 svg.dsn{height:50mm;max-width:95mm}
 .workshop .at-bd.large .dsn2{max-width:95mm}
 .workshop .at-bd .tx .t,.workshop .at-bd .tx .t1{font-size:11pt}
 .bonplan .planreview{height:190mm}
 #printArea h1,#printArea h2{font-size:18pt}
}

.assemblytools{padding:12px 18px;display:flex;align-items:end;gap:12px;flex-wrap:wrap;border-top:1px solid #cadbea}
.assemblytools>label{display:grid;font-size:12px;gap:5px}
#assemblyMembers{flex-basis:100%;display:flex;gap:10px;flex-wrap:wrap}
#assemblyMembers label{font-size:12px;display:flex;align-items:center;gap:5px;background:#edf4fa;padding:6px 9px}
#assemblyMembers input{width:16px;height:16px}
#planMoveStep{width:75px;min-height:32px;padding:5px}
.planbar{align-items:center}
.assemblyband{border:1.3px solid #1f6fb7;break-inside:avoid;margin-bottom:8px;background:white}
.assemblytitle{background:#edf4fb;color:#174e78;padding:10px;font-weight:bold}
.assemblydetail{font-size:12px;line-height:1.6;padding:10px}
.assemblydrawing{height:440px;padding:10px}
@media print{.assemblydrawing{height:115mm}.assemblydetail{font-size:9pt}.assemblytitle{font-size:11pt}}

@media print{#printArea{width:calc(100% - 1mm)!important}}

.workshop .dsn2 img.dsn{height:52mm;width:auto;max-width:110mm;display:block}
.workshop .at-bd.large .dsn2 img.dsn{height:50mm;max-width:95mm}

/* Command actions stay next to the piece, including on a narrow screen. */
.orderactions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 3px}
.orderactions button,.itemactions button{min-height:34px;border:1px solid #bdcddd;border-radius:4px;background:white;padding:7px 11px;font:600 12px Arial,sans-serif;color:#244f78}
.orderactions button.danger,.itemactions button.danger,.planbar button.danger{color:#a12820;background:#fff3f1;border:1px solid #d9938d;font-weight:600}
.orderactions button:hover,.itemactions button:hover{background:#edf3fa}
.orderactions button.danger:hover,.itemactions button.danger:hover,.planbar button.danger:hover{background:#ffe2dc}
@media print{.orderactions{display:none!important}}

.orientationtools{padding:15px;display:flex;align-items:end;gap:12px;flex-wrap:wrap;border-top:1px solid #cadbea;background:#f7faff}
.orientationtools label{display:grid;gap:6px;font-size:12px}
.orientationtools select{min-width:200px}.orientationtools input{width:100px}
.orientationtools button,.assemblylist button{border:1px solid #aabed3;border-radius:4px;padding:9px 11px;background:white;color:#244f78;font-size:12px;min-height:38px}
.rotationbuttons b,.bendbuttons b{display:block;font-size:12px;margin-bottom:7px}
.rotationbuttons>div,.bendbuttons>div{display:flex;gap:6px;flex-wrap:wrap}
.bendbuttons{flex-basis:100%}.bendbuttons[hidden]{display:none}
.bendbuttons button[aria-pressed=true]{background:#285b89;color:white;border-color:#285b89}
.orientationtools>small,.bendbuttons small{font-size:11px;color:#546e85;line-height:1.5}
.orientationtools>small{flex-basis:100%}
#planOrientationStatus{flex-basis:100%;margin:0;color:#235a80;font-size:13px;font-weight:600}
.assemblylist{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 18px;border-top:1px solid #cadbea;background:#eff5fc;font-size:12px}
.assemblylist strong{margin-right:5px}
#planDetail{padding:0 16px 16px}#planDetail:empty{display:none}
.pieceviews{background:white;border:1px solid #a9c2db;margin:10px 0;break-inside:avoid;padding:12px}
.pieceviews h4{font-size:13px;color:#214f79;margin:0 0 10px}
.viewcaptions{display:grid;grid-template-columns:1fr 1fr;text-align:center;gap:12px;font-size:12px}
.viewcaptions span{font-weight:400;display:inline-block;margin-top:4px;color:#4d6780}
.pieceviewsdrawing{display:flex;justify-content:center;height:235px}
.pieceviewsdrawing .dsn{width:auto;height:100%;max-width:100%}
.pieceviews p{font-size:11px;color:#557087;line-height:1.4;margin:5px 0 0}
#largeDrawing:has(.pieceviews){display:block;height:auto}
#largeDrawing .pieceviewsdrawing{height:min(55vh,420px)}
@media(max-width:700px){
 .orientationtools{padding:12px;gap:10px}.orientationtools>label:first-child{flex-basis:100%}
 .orientationtools select{min-width:0;width:100%}.viewcaptions{font-size:11px}
 .pieceviews{padding:9px}.pieceviewsdrawing{height:220px}
 #planDetail .pieceviewsdrawing{height:200px}
}
@media print{
 .pieceviews{padding:3mm;margin:2mm 0;border:.3mm solid #1f6fb7;break-inside:avoid}
 .pieceviewsdrawing{height:48mm}
 .pieceviewsdrawing img.dsn{height:48mm;width:auto;max-width:100%}
 .pieceviews h4{font-size:10pt}.viewcaptions{font-size:9pt}.pieceviews p{font-size:8pt}
}

.commonopening{display:flex;gap:10px;align-items:end;flex-wrap:wrap;flex-basis:100%;padding-top:8px;border-top:1px solid #d6e2ee}.commonopening label{display:grid;font-size:12px;gap:5px}.commonopening small{flex-basis:100%;font-size:11px;color:#536d82;line-height:1.5}

.viewcaptions{max-width:360px;width:100%;margin-inline:auto}
#largeDrawing .viewcaptions{max-width:640px}
@media(max-width:700px){#planDetail .viewcaptions{max-width:306px}}
@media print{.viewcaptions{width:73.5mm;max-width:100%}}
