:root{--ink:#263c35;--muted:#65746d;--green:#233e35;--gold:#bd975b;--canvas:#f6f7f3;--border:#dce4dc;--paper:#fff;--pale:#eef3ec;font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',Arial,sans-serif;color:var(--ink);background:#f2f3ef}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:2px}button{border:1px solid transparent}.topbar{height:80px;background:var(--green);padding:16px 24px;color:#fff;display:flex;justify-content:space-between;align-items:center;gap:16px}.logo{font-weight:850;letter-spacing:-.065em;font-size:25px}.logo span{margin-left:6px;font-weight:350;letter-spacing:.13em;color:#debe87}.brand-sub{font-size:12px;color:#bad1c5;letter-spacing:.03em}.top-actions{display:flex;align-items:center;gap:10px}.tag-alpha{border:1px solid #648174;color:#e5f0e6;border-radius:30px;padding:8px 11px;font-size:11px;letter-spacing:.06em}.notice{text-align:center;padding:9px 15px;background:#ede9de;color:#584e40;font-size:12px}.button{border-radius:7px;padding:11px 13px;font-weight:600;font-size:12px;text-decoration:none;display:inline-block;text-align:center;white-space:nowrap}.button.accent{background:#bd975b;color:#fff}.button.secondary{background:#ecf0eb;color:#234538;border-color:#d8e3d9}.button.outline{border-color:#b7c7b9;color:#3f5547;background:#fff}.button.block{display:block;width:100%;margin-top:12px}.button.small{padding:8px 10px}.layout{display:grid;grid-template-columns:280px minmax(460px,1fr)312px;gap:12px;padding:12px;max-width:1850px;margin:auto;align-items:start}.panel,.work-panel{background:var(--paper);border:1px solid var(--border);border-radius:12px;box-shadow:0 1px 6px #284d2910}.panel{padding:20px}.section-title{text-transform:uppercase;font-size:11px;letter-spacing:.15em;font-weight:800;color:#708678;margin-bottom:17px}.gap-top{margin-top:25px}.field{font-size:12px;font-weight:600;color:#5a6a60;display:block;margin:12px 0}.field input,.field select{display:block;width:100%;margin-top:6px;border:1px solid #cbd7ce;border-radius:7px;padding:9px 10px;background:white;color:#253e35}.small-hint{font-size:11px;color:#6c7b71;line-height:1.55}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tool-grid button{padding:11px 6px;border-radius:7px;background:#f2f5f1;color:#314b40;font-size:12px}.tool-grid button.active{background:var(--green);color:#fff}.two-inputs{display:grid;grid-template-columns:1fr 1fr;gap:9px}.work-panel{padding:0;min-width:0}.work-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 22px 15px;flex-wrap:wrap}.work-header h1{font-size:20px;font-weight:700;margin:0 0 5px}.work-header p{font-size:12px;color:#7c887d;margin:0}.tabset{display:flex;border-radius:7px;background:#f0f2ed;padding:4px;gap:3px}.tabset button{background:transparent;border-radius:5px;font-size:12px;color:#53685b;padding:10px 12px}.tabset button.selected{background:#fff;box-shadow:0 1px 6px #20332220;color:#193b2b;font-weight:700}.canvas-wrap{margin:0 16px;background:var(--canvas);border:1px solid var(--border);border-radius:9px;overflow:hidden;min-height:270px}.canvas-wrap svg{width:100%;height:auto;display:block;touch-action:none}.canvas-wrap svg[hidden]{display:none}.canvas-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;flex-wrap:wrap}#status{font-size:12px;color:#5b715f}.editor-actions{display:flex;flex-wrap:wrap;gap:6px}.caveat{padding:0 18px 16px}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}.metric{background:#f0f4ee;padding:12px;border-radius:8px;min-width:0}.metric span{display:block;font-size:11px;color:#66786a}.metric strong{display:block;font-size:21px;letter-spacing:-.025em;margin-top:4px}.room-list{margin-top:14px}.room-line,.cost-line{display:flex;gap:10px;justify-content:space-between;align-items:center;border-bottom:1px solid #e5ebe5;padding:9px 0;font-size:12px}.room-line span{overflow-wrap:anywhere}.room-line strong,.cost-line strong{white-space:nowrap}.costs{margin-top:15px}.total{display:flex;align-items:center;justify-content:space-between;padding:18px 0;margin-top:13px;border-top:2px solid #a6baaa;font-weight:750;font-size:13px}.total strong{font-size:22px}.consult{background:#ecf1e9;border-radius:9px;padding:15px;margin-top:20px;font-size:13px}.consult p{font-size:12px;color:#5b6e5c;line-height:1.55}.consult a{color:#365b42;font-weight:750;text-decoration:none}.selected-shape{stroke:#c28a39!important;stroke-width:9!important}#editor2d{cursor:crosshair}#editor2d[data-tool=select]{cursor:pointer}#editor3d{background:linear-gradient(175deg,#fcfdfc,#e6ece8)}@media(max-width:1250px){.layout{grid-template-columns:240px 1fr}.results{grid-column:1/-1}.metrics{grid-template-columns:repeat(4,1fr)}.results{display:grid;grid-template-columns:1fr 1fr;column-gap:22px}.results>.section-title{grid-column:1/-1}.results .metrics,.results .room-list{grid-column:1/-1}.results .gap-top{grid-column:1/-1}.results .consult{grid-column:1/-1}}@media(max-width:820px){.topbar{height:auto;flex-wrap:wrap}.layout{display:flex;flex-direction:column}.panel,.work-panel{width:100%}.work-panel{order:0}.tools-panel{order:1}.results{order:2;display:block}.metrics{grid-template-columns:1fr 1fr}.canvas-wrap{margin:0 8px}.work-header{padding:16px}.top-actions{flex-wrap:wrap}.tag-alpha{display:none}}@media print{body{background:white}.topbar,.notice,.tools-panel,.results,.tabset,.editor-actions,.caveat{display:none!important}.layout{display:block;padding:0}.work-panel{border:0;box-shadow:none}.canvas-wrap{border:0}.work-header p{display:none}#editor3d:not([hidden]){display:block}}

/* Les fonds d'image sont exclus des sorties PDF imprimées pour éviter toute cote non vérifiée. */
@media print { #underlayLayer{display:none!important;} }

/* Feedback de déplacement : vert si valide, saumon si conflit. */
#editor2d[data-tool=move]{cursor:grab}#editor2d[data-tool=move]:active{cursor:grabbing}

/* Deux niveaux d'interface : création simple, puis reprise par 1TRAIT DESIGN. */
.topbar{min-height:80px;height:auto;flex-wrap:wrap}
.top-actions{flex-wrap:wrap;justify-content:flex-end}
.mode-switch{display:inline-flex;background:#3b584c;padding:3px;border-radius:10px;gap:3px}
.mode-switch button{background:transparent;color:#deebe3;font-size:12px;padding:9px 12px;border-radius:8px;white-space:nowrap}
.mode-switch button[aria-pressed=true]{background:#eef3ec;color:#254336;font-weight:700}
body[data-workspace=client] #exportDxf,
body[data-workspace=client] #exportPackage,
body[data-workspace=client] #exportIfcRemote,
body[data-workspace=client] #ifcRemotePanel,
body[data-workspace=client] #legalForm,
body[data-workspace=client] #applyStructure,
body[data-workspace=client] label:has(#wallThickness),
body[data-workspace=client] label:has(#slabThickness){display:none!important}
@media(max-width:930px){.topbar{padding:12px}.top-actions{justify-content:flex-start}.mode-switch{order:-1}}

.ifc-remote-panel{padding:10px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.ifc-consent{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;margin:12px 0;color:var(--ink)}
.ifc-consent input{margin-top:3px;flex:0 0 auto}
