/* DesignLabMoveis 1.100.87 · extraído do monólito 1.100.78 · ordem preservada */
  /* v95 · Prévia Aspire / plano de corte */
  #sheetPreviewDialog{position:fixed;inset:0;z-index:125;display:none;padding:10px;background:rgba(0,0,0,.82);backdrop-filter:blur(5px);touch-action:auto}
  #sheetPreviewDialog.show{display:flex}
  .sheetPreviewShell{width:min(1500px,100%);height:min(940px,100%);margin:auto;overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;background:#17191b;border:1px solid #3c4246;border-radius:16px;box-shadow:0 24px 80px rgba(0,0,0,.62)}
  .sheetPreviewHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #34383b;background:#202326}
  .sheetPreviewHead strong{display:block;font-size:13px}.sheetPreviewHead span{display:block;margin-top:2px;color:#99a2a9;font-size:9px}
  .sheetPreviewHeadActions{display:flex;gap:6px;flex-shrink:0}.sheetPreviewHeadActions button{min-height:35px;padding:7px 10px;font-size:10px}
  .sheetPreviewToolbar{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:8px 10px;border-bottom:1px solid #303438;background:#191c1e}
  .sheetPreviewToolbar button{min-height:34px;padding:6px 9px;font-size:10px}.sheetPreviewToolbar button.active{background:var(--green);color:#071b0c}
  .sheetPreviewToolbar select{min-height:34px;min-width:220px;max-width:390px;padding:6px 8px;border-radius:8px;border:1px solid #444a4e;background:#0f1112;color:#fff;font-size:10px}
  .sheetPreviewToolbar .spacer{flex:1}.sheetPreviewToggle{display:flex;align-items:center;gap:5px;color:#aeb5ba;font-size:9px;padding:0 3px}.sheetPreviewToggle input{width:17px;height:17px;accent-color:var(--green)}
  .sheetPreviewMain{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 295px}
  .sheetCanvasWrap{min-width:0;min-height:0;position:relative;overflow:hidden;display:grid;place-items:center;padding:10px;background:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px),#101214;background-size:22px 22px}
  #sheetPreviewCanvas{display:block;max-width:100%;max-height:100%;width:100%;height:100%;border-radius:9px;cursor:crosshair;touch-action:none}
  #sheetPreviewEmpty{display:none;position:absolute;inset:0;place-items:center;text-align:center;color:#8d979e;padding:20px;pointer-events:none}
  .sheetPreviewSide{min-height:0;overflow:auto;padding:10px;border-left:1px solid #33383b;background:#151719}
  .sheetPreviewStatus{padding:9px;border-radius:10px;border:1px solid #363b3f;background:#0f1112;font-size:10px;line-height:1.5}
  .sheetPreviewStatus.ok{border-color:rgba(52,208,88,.45)}.sheetPreviewStatus.warn{border-color:rgba(255,165,49,.55)}.sheetPreviewStatus.bad{border-color:rgba(255,83,83,.65)}.sheetPreviewStatus strong{color:var(--cyan)}
  .sheetPreviewLegend{margin-top:9px;display:grid;gap:5px}.sheetLegendRow{display:grid;grid-template-columns:18px minmax(0,1fr);gap:7px;align-items:center;color:#aeb5ba;font-size:9px}
  .sheetLegendSample{width:18px;height:10px;border:2px solid currentColor;border-radius:3px}.sheetLegendSample.hole{height:14px;width:14px;border-radius:50%;justify-self:center}
  .sheetLegendSample.edge{width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:12px solid currentColor;border-top:0;border-radius:0;justify-self:center}
  .sheetPreviewPartCard{margin-top:10px;padding:10px;border-radius:10px;background:#101214;border:1px solid #353a3e}.sheetPreviewPartCard h4{margin:0 0 4px;font-size:12px}.sheetPreviewPartCard .meta{color:#929ca3;font-size:9px;line-height:1.45}
  .sheetPreviewPartOps{margin-top:8px;display:grid;gap:5px}.sheetPreviewOp{padding:6px 7px;border-radius:7px;background:#1d2022;border:1px solid #34393c;font-size:9px;line-height:1.35}
  .sheetPreviewPartActions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.sheetPreviewPartActions button{min-height:35px;padding:6px;font-size:9px}.sheetPreviewPartActions button:disabled{opacity:.38}
  .sheetPreviewFoot{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:8px 10px;border-top:1px solid #303438;background:#191c1e;color:#929ba2;font-size:9px}.sheetPreviewFoot strong{color:#fff}#sheetPreviewPosition{margin-left:auto}
  @media(max-width:820px){#sheetPreviewDialog{padding:0}.sheetPreviewShell{width:100%;height:100%;border-radius:0;border:0}.sheetPreviewMain{grid-template-columns:1fr;grid-template-rows:minmax(350px,60vh) minmax(0,1fr)}.sheetPreviewSide{border-left:0;border-top:1px solid #33383b}.sheetPreviewToolbar select{min-width:0;width:100%;order:10}.sheetPreviewToolbar .spacer{display:none}#sheetPreviewPosition{width:100%;margin-left:0}}





  /* ==========================================================================\n     1.100.78 · PLANO DE CORTE OTIMIZADO\n     ========================================================================== */
  #partsListDialog .cutPlanCard{width:min(980px,100%);max-height:92%;padding:0;overflow:auto;background:#17191b;border-color:#3c4246}
  .cutPlanTitleRow{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 15px 10px;background:#202326;border-bottom:1px solid #34383b}
  .cutPlanTitleRow h3{margin:0 0 4px!important;font-size:18px!important}.cutPlanTitleRow .dialogHelp{margin:0}
  .cutPlanBadge{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#f59e0b;color:#211500;font-size:9px;font-weight:950;letter-spacing:.02em}
  .cutPlanSettings{margin:12px 14px 0;padding:12px;border:1px solid #363d42;border-radius:12px;background:#111416}
  .cutPlanSectionTitle{margin-bottom:7px;color:#dbe1e5;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.055em}
  .cutPlanInlineInputs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;align-items:center;margin-top:4px}.cutPlanInlineInputs span{color:#768088;font-weight:900;text-align:center}
  .sheetModeHelp.open{border-left:3px solid #f59e0b;padding-left:8px}
  .cutPlanGrainChoice{margin:10px 14px 0}
  #partsSummary{margin:10px 14px 0;background:#111416;border-color:#363d42}
  #partsList{margin:8px 14px 0 14px;padding-bottom:2px}
  #partsList .partsGroup{border-color:#d4d6d8;background:#f7f7f5;color:#24282b}
  #partsList .partsGroupHead{background:#ecebe7;color:#25282a;border-left:4px solid #f59e0b;padding-left:9px}
  #partsList .partsGroupHead span:last-child{color:#8b5a00}
  #partsList .partRow{border-top-color:#dededb}
  #partsList .partRowMeta{color:#697077}
  #partsList .partQty{background:#e5e5e1;color:#303438;border:1px solid #d1d1cd}
  #partsList .sheetChip{cursor:pointer;background:#fff;color:#454a4e;border-color:#d2d4d5}.sheetChip:hover{border-color:#f59e0b}.sheetChip strong{color:#9c6500}
  .cutPlanCode{display:inline-grid;place-items:center;min-width:26px;height:26px;margin-right:7px;padding:0 6px;border-radius:7px;background:#33383c;color:#fff;font-size:10px;font-weight:950;vertical-align:middle}
  .cutPlanActions{position:sticky;bottom:0;margin-top:10px;padding:10px 14px;background:#202326;border-top:1px solid #34383b}

  .cutPlanPreviewShell{background:#edece8!important;border-color:#a6aaad!important}
  .cutPlanPreviewHead{background:#f5f4f1!important;border-bottom-color:#c9cbcc!important;color:#25292c}.cutPlanPreviewHead span{color:#6f777c!important}
  .cutPlanPreviewToolbar{background:#e7e5df!important;border-bottom-color:#c5c6c3!important}.cutPlanPreviewToolbar select{background:#fff!important;color:#24282b!important;border-color:#b8bbbd!important}.cutPlanPreviewToolbar .sheetPreviewToggle{color:#4e555a!important}
  .cutPlanCanvasWrap{background:#d7d5cf!important;background-image:linear-gradient(rgba(0,0,0,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.025) 1px,transparent 1px)!important;background-size:20px 20px!important}
  .cutPlanPreviewSide{background:#f5f4f1!important;border-left-color:#c4c6c7!important;color:#262a2d}
  .cutPlanPreviewSide .sheetPreviewStatus{background:#fff!important;border-color:#c6c9ca!important;color:#41474b}.cutPlanPreviewSide .sheetPreviewStatus strong{color:#8e5a00!important}
  .cutPlanLegend .sheetLegendRow{color:#4d555a}.cutPlanLegendPart{color:#232629!important}.cutPlanLegendHole{color:#d62d7b!important}.cutPlanLegendGroove{color:#0099c7!important}.cutPlanLegendEdge{color:#e47a16!important}.cutPlanLegendH{color:#1c8b5a!important}.cutPlanLegendV{color:#c8475d!important}.cutPlanLegendKeep{color:#53854a!important}.cutPlanLegendWaste{color:#92979a!important}
  .cutPlanPartCard{background:#fff!important;border-color:#c7cacc!important;color:#282c2f}.cutPlanPartCard .meta{color:#6e767b!important}.cutPlanPartCard .sheetPreviewOp{background:#f3f2ef!important;border-color:#d6d8d8!important;color:#454b4f}
  .cutPlanPreviewFoot{background:#e7e5df!important;border-top-color:#c5c6c3!important;color:#555d62!important}.cutPlanPreviewFoot strong{color:#25282a!important}

  /* 1.100.87 · ajuste rápido do veio diretamente no plano de corte */
  #partsList .cutPlanRowActions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
  #partsList .cutPlanGrainBtn{min-height:30px;padding:5px 8px;border-radius:7px;border:1px solid #c99b45;background:#fff8e8;color:#72500c;font-size:9px;font-weight:900;white-space:nowrap;touch-action:manipulation}
  #partsList .cutPlanGrainBtn:active{background:#f3c45d;color:#231700}
  .sheetPreviewPartActions .cutPlanPreviewGrainBtn{grid-column:1 / -1;min-height:39px;background:#f2bf52;border-color:#d59a27;color:#2d1e00;font-weight:950}
  .sheetPreviewPartActions .cutPlanPreviewGrainBtn:active{background:#e4a82b}
  @media(max-width:620px){#partsList .cutPlanRowActions{align-items:stretch}.cutPlanGrainBtn{min-height:34px!important}}

  .cutPlanSummaryGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.cutPlanSummaryGrid span{display:flex;flex-direction:column;gap:1px;padding:7px;border-radius:8px;background:#1c2022;border:1px solid #30373b;text-align:center}.cutPlanSummaryGrid b{color:#fff;font-size:14px}.cutPlanSummaryGrid small{color:#8f999f;font-size:8px}.cutPlanSummaryText{margin-top:7px;color:#aab3b8;font-size:9px;line-height:1.45}.cutPlanSummaryText strong{color:#f1b84a!important}
  @media(max-width:540px){.cutPlanSummaryGrid{grid-template-columns:1fr 1fr}}

  @media(max-width:620px){#partsListDialog .cutPlanCard{width:100%;max-height:100%;border-radius:0}.cutPlanSettings{margin-left:8px;margin-right:8px}.cutPlanGrainChoice,#partsSummary,#partsList{margin-left:8px;margin-right:8px}.cutPlanTitleRow{padding-left:10px;padding-right:10px}.cutPlanActions{padding-left:8px;padding-right:8px}.cutPlanActions button{flex:1 1 160px}}

  #curvedStructureDialog .curvedPreview { margin-top:10px; padding:10px; border:1px solid #3a3a3a; border-radius:12px; background:#111; color:var(--cyan); font-size:12px; line-height:1.5; }
  #curvedStructureDialog .curvedHint { margin-top:8px; color:#bbb; font-size:11px; line-height:1.45; }
  #curved3DPreviewBar {
    position:fixed; z-index:97; left:10px; right:10px; top:calc(env(safe-area-inset-top) + 10px); display:none;
    align-items:center; justify-content:space-between; gap:10px; padding:10px 11px; border-radius:14px;
    background:rgba(18,18,18,.95); border:1px solid #4d8d5c; box-shadow:0 8px 24px rgba(0,0,0,.38); backdrop-filter:blur(8px);
  }
  #curved3DPreviewBar .previewInfo { min-width:0; }
  #curved3DPreviewBar strong { display:block; font-size:12px; color:#8cff9f; }
  #curved3DPreviewBar span { display:block; margin-top:2px; font-size:10px; line-height:1.35; color:var(--muted); }
  #curved3DPreviewBar button { flex:0 0 auto; min-height:40px; padding:8px 11px; }
  .pieceTypeGrid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin:10px 0; }
  .pieceTypeGrid button { width:100%; min-height:48px; touch-action:manipulation; }
  .pieceTypeGrid button.active { background:var(--green); color:#071b0c; }
  .doorConfigBox { margin-top:10px; padding:10px; border:1px solid #373d40; border-radius:12px; background:#141718; }
  .doorConfigBox > strong { display:block; margin-bottom:7px; color:#f4f6f7; font-size:12px; }
  .doorConfigCheck { display:grid; grid-template-columns:22px minmax(0,1fr); gap:8px; align-items:start; padding:8px; border:1px solid #343a3d; border-radius:10px; background:#101314; }
  .doorConfigCheck input[type=checkbox] { width:20px; height:20px; margin:0; }
  .doorConfigCheck span { color:var(--muted); font-size:9px; line-height:1.35; }
  .doorConfigHint { margin-top:7px; color:#8fa1aa; font-size:9px; line-height:1.4; }
  .machiningTypeGrid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin:9px 0; }
  .machiningTypeGrid button { width:100%; }
  .machiningTypeGrid button.active { background:var(--green); color:#071b0c; }
  .machiningTypeGrid .machiningRipadoBtn { grid-column:1 / -1; }
  .machiningPreview { margin:9px 0; padding:9px 10px; border-radius:10px; background:#111; border:1px solid #3b3b3b; color:var(--cyan); font-size:11px; line-height:1.4; }
  .machiningList { display:grid; gap:7px; margin-top:8px; }
  .machiningItem { display:grid; grid-template-columns:1fr auto; gap:7px; align-items:center; padding:8px 9px; border-radius:10px; background:#171717; border:1px solid #393939; }
  .machiningItem .miName { font-size:11px; font-weight:900; }
  .machiningItem .miInfo { margin-top:2px; font-size:9px; color:var(--muted); line-height:1.35; }
  .machiningItem .miBtns { display:flex; gap:5px; }
  .machiningItem button { min-height:32px; padding:6px 8px; font-size:10px; }
  .machiningDivider { height:1px; background:#3a3a3a; margin:12px 0 9px; }
  .machiningPresetBox { margin:9px 0 10px; padding:10px; border-radius:12px; background:#151515; border:1px solid #3a3a3a; }
  .machiningPresetHead { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:7px; }
  .machiningPresetHead strong { font-size:12px; }
  .machiningPresetActions { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:7px; }
  .machiningPresetActions button { width:100%; min-height:38px; }
  .machiningPreview3DBtn { width:100%; min-height:46px; margin-top:9px; background:#245d36; border-color:#3d9c58; color:#fff; font-weight:900; }
  .shapeLibraryBox { margin:9px 0; padding:10px; border:1px solid #3a3a3a; border-radius:12px; background:#151515; }
  .shapeCornerGrid { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin:9px 0; }
  .shapeCornerGrid button { width:100%; min-height:42px; }
  .shapeCornerGrid button.active { background:var(--green); color:#071b0c; }
  .shapePreviewBox { margin-top:9px; padding:8px; border-radius:12px; background:#0e0e0e; border:1px solid #393939; }
  #shapePreviewSvg { width:100%; height:210px; display:block; background:#101820; border-radius:9px; }
  .shapeAppliedList { display:grid; gap:7px; margin-top:8px; }
  .shapeAppliedItem { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:center; padding:8px 9px; border:1px solid #3a3a3a; border-radius:10px; background:#171717; }
  .shapeAppliedItem strong { display:block; font-size:11px; }
  .shapeAppliedItem span { display:block; margin-top:2px; color:var(--muted); font-size:9px; line-height:1.35; }
  #shape3DPreviewBar { position:fixed; z-index:97; left:10px; right:10px; top:calc(env(safe-area-inset-top) + 10px); display:none; align-items:center; justify-content:space-between; gap:10px; padding:10px; border-radius:12px; background:rgba(20,20,20,.95); border:1px solid #476d50; box-shadow:0 8px 25px rgba(0,0,0,.45); }
  #shape3DPreviewBar .previewInfo strong { display:block; font-size:12px; }
  #shape3DPreviewBar .previewInfo span { display:block; margin-top:2px; color:#9ce7b0; font-size:10px; }
  .hardwarePanel { display:none; margin-top:8px; }
  .hardwareContactBox { margin:9px 0; padding:10px; border-radius:11px; background:#101817; border:1px solid #31534b; color:#b7f7dd; font-size:11px; line-height:1.45; }
  .hardwareBuilderSection { margin-top:10px; padding:10px; border-radius:12px; background:#151515; border:1px solid #3a3a3a; }
  .hardwareBuilderSection > strong { display:block; margin-bottom:7px; font-size:12px; }
  .hardwareCheck { display:grid; grid-template-columns:auto 1fr; gap:9px; align-items:start; padding:9px; border:1px solid #3a3a3a; border-radius:10px; background:#111; }
  .hardwareCheck input[type=checkbox] { width:22px; height:22px; margin:1px 0 0; }
  .hardwareCheck span { display:block; margin-top:2px; color:var(--muted); font-size:10px; line-height:1.35; }
  .hardwareApplied { margin-top:8px; color:var(--muted); font-size:10px; line-height:1.4; }
  .drawerPresetBox { margin:9px 0; padding:10px; border:1px solid #3d4c58; border-radius:12px; background:#11171b; }
  .drawerTargetBox { padding:10px; border-radius:11px; background:#0d1717; border:1px solid #235b55; color:#8ff0df; font-size:11px; line-height:1.45; }
  .drawerPreview { margin-top:9px; padding:10px; border-radius:11px; background:#101010; border:1px solid #3a3a3a; color:#ddd; font-size:11px; line-height:1.5; }
  .drawerStatus { margin-top:8px; padding:9px 10px; border-radius:10px; background:#141414; border:1px solid #343434; color:#aaa; font-size:10px; line-height:1.45; }
  .drawerEditBadge { display:none; padding:7px 9px; margin:7px 0; border-radius:9px; border:1px solid #2f8f5b; color:#9bf3bc; background:#102018; font-size:10px; font-weight:800; }
  #machining3DPreviewBar {
    position:fixed; z-index:96; left:10px; right:10px; top:calc(env(safe-area-inset-top) + 10px); display:none;
    align-items:center; justify-content:space-between; gap:10px; padding:10px 11px; border-radius:14px;
    background:rgba(18,18,18,.94); border:1px solid #4d8d5c; box-shadow:0 8px 24px rgba(0,0,0,.35); backdrop-filter:blur(8px);
  }
  #machining3DPreviewBar .previewInfo { min-width:0; }
  #machining3DPreviewBar strong { display:block; font-size:12px; color:#8cff9f; }
  #machining3DPreviewBar span { display:block; margin-top:2px; font-size:10px; line-height:1.3; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  #machining3DPreviewBar button { flex:0 0 auto; min-height:40px; padding:8px 11px; }
  .signedCoordWrap { display:grid; grid-template-columns:minmax(0,1fr) 42px; gap:5px; align-items:end; margin-top:3px; }
  .signedCoordWrap input { margin-top:0 !important; min-width:0; }
  .signedCoordToggle { min-height:42px; padding:0; border-radius:8px; background:#303030; border:1px solid #555; color:#fff; font-size:20px; font-weight:900; }
  .signedCoordToggle:active { background:var(--green); color:#071b0c; }
  .signedMinusWrap { display:grid; grid-template-columns:minmax(0,1fr) 46px; gap:6px; align-items:stretch; margin-top:3px; }
  .signedMinusWrap input { margin-top:0 !important; min-width:0; width:100%; }
  .signedMinusBtn { min-height:46px; padding:0; border-radius:9px; background:#303030; border:1px solid #5a5a5a; color:#fff; font-size:25px; font-weight:900; line-height:1; touch-action:manipulation; }
  .signedMinusBtn:active { background:var(--green); color:#071b0c; }
  .signedCoordHelp { margin:6px 1px 0; font-size:10px; line-height:1.4; color:var(--cyan); }
  .grooveLengthWrap { display:grid; grid-template-columns:minmax(0,1fr) 46px; gap:5px; align-items:end; margin-top:3px; }
  .grooveLengthWrap input { margin-top:0 !important; min-width:0; }
  .grooveLengthWrap button { min-height:42px; padding:0; font-size:18px; font-weight:1000; background:#303030; border:1px solid #555; }
  .grooveLengthWrap button.active { background:var(--green); color:#071b0c; }
  .grooveLengthHelp { display:block; margin-top:4px; color:var(--cyan); font-size:9px; line-height:1.25; }
  .libraryBreadcrumb { margin:7px 0; padding:8px 10px; border-radius:10px; background:#111; border:1px solid #333; color:var(--yellow); font-size:11px; font-weight:900; }
  .libraryFolderToolbar { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
  .libraryFolderToolbar button { min-height:36px; padding:7px 9px; font-size:10px; }
  #libraryDialog .card { color:var(--text); }
  #libraryDialog h3 { color:var(--text); }
  .libraryFolder { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px; border-radius:11px; background:#181818; border:1px solid #3d3d3d; color:var(--text); }
  .libraryFolder .folderName { font-size:12px; font-weight:900; color:#f2f2f2; }
  .libraryFolder .folderInfo { margin-top:2px; font-size:10px; color:var(--muted); }
  .libraryEmpty { padding:13px 10px; text-align:center; border:1px dashed #444; border-radius:10px; color:var(--muted); font-size:11px; line-height:1.4; }

  #pieceCreateInfo { margin:8px 0; padding:9px 10px; border-radius:10px; background:#121212; border:1px solid #343434; color:var(--cyan); font-size:11px; line-height:1.45; }
  #pieceExtraFields { margin-top:8px; }
  .hiddenField { display:none !important; }
  .libraryItem .libName { font-size:12px; font-weight:900; color:#f2f2f2; }
  .libraryItem .libInfo { font-size:10px; color:var(--muted); margin-top:2px; }
  .libraryItem button { min-height:36px; }
  #libraryTarget { color:var(--cyan); font-size:11px; font-weight:800; margin:4px 0 9px; }
  .libraryScopeTabs { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:9px 0 8px; }
  .libraryScopeTabs button { min-height:42px; font-size:11px; }
  .libraryScopeTabs button.active { background:var(--blue); color:#fff; border-color:#6ca3ff; }
  #libraryScopeHint { margin:0 0 8px; padding:8px 10px; border-radius:9px; background:#111820; border:1px solid #284052; color:#9fd9ff; font-size:9px; line-height:1.4; }
  .globalLibraryBadge { display:inline-block; margin-left:5px; padding:2px 6px; border-radius:999px; background:rgba(45,125,250,.16); color:#79adff; font-size:8px; font-weight:900; vertical-align:middle; }



/* 1.100.96 · sequência da seccionadora de pinça */
.panelSawSeq{margin-top:10px;padding:9px 10px;border:1px solid rgba(135,151,167,.36);border-radius:10px;background:rgba(20,27,35,.24);display:grid;gap:5px;font-size:12px;line-height:1.3}
.panelSawSeq.compact{margin-top:9px}
.panelSawSeqTitle{font-size:11px;font-weight:900;letter-spacing:.055em;opacity:.82}
.panelSawSeqStrip{display:grid;grid-template-columns:minmax(84px,.72fr) 1.5fr;gap:8px;padding-top:5px;border-top:1px solid rgba(160,175,190,.18)}
.panelSawSeqStrip b{white-space:nowrap}
.panelSawSeqStrip span{opacity:.86;min-width:0;overflow-wrap:anywhere}
@media (max-width:720px){.panelSawSeqStrip{grid-template-columns:1fr}.panelSawSeq{font-size:11px}}

/* 1.200.35 · Mini CAD Forma com snap magnético e inferências */
.shapeMiniCad{margin:10px 0 12px;padding:10px;border:1px solid #3f4a52;border-radius:12px;background:#0f1215;display:grid;gap:8px}
.shapeCadHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.shapeCadHead strong{display:block;font-size:13px}.shapeCadHead span{display:block;color:var(--muted);font-size:9px;margin-top:2px}.shapeCadCoords{font:700 10px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:#79e6f4;white-space:nowrap}
.shapeCadToolbar{display:flex;flex-wrap:wrap;gap:6px}.shapeCadToolbar button{padding:7px 8px;min-height:34px;font-size:10px}.shapeCadToolbar button.active{background:#47d6e8;color:#06171a;border-color:#47d6e8}
.shapeCadOptions{display:flex;flex-wrap:wrap;gap:7px;align-items:end}.shapeCadOptions label{font-size:9px;color:var(--muted);display:grid;gap:3px}.shapeCadOptions label input[type=number]{width:92px;padding:7px 6px}.shapeCadOptions .layoutCheck{display:flex;flex-direction:row;align-items:center;gap:5px;padding:7px 8px;border:1px solid #353b40;border-radius:8px}.shapeCadOptions button{padding:7px 9px;font-size:9px;min-height:32px}
.shapeCadInferenceHint{font-size:9px;line-height:1.35;color:#8fa0aa;padding:6px 8px;border:1px dashed rgba(127,229,148,.24);border-radius:8px;background:rgba(127,229,148,.035)}.shapeCadViewport{border:1px solid #35414a;border-radius:10px;overflow:hidden;background:#0b1116;touch-action:none}.shapeCadViewport svg{width:100%;height:360px;display:block;touch-action:none;user-select:none;cursor:crosshair}.shapeCadFooter{display:flex;justify-content:space-between;gap:10px;color:#aeb8bf;font-size:9px}.shapeCadFooter #shapeCadMeasure{color:#7fe594;font-weight:800;text-align:right}
@media(max-width:700px){.shapeCadViewport svg{height:340px}.shapeCadInferenceHint{font-size:9px;padding:7px 8px}.shapeCadViewport{box-shadow:inset 0 0 0 1px rgba(127,229,148,.06)}.shapeCadToolbar button{flex:1 1 calc(33.333% - 6px)}.shapeCadOptions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.shapeCadOptions label input[type=number]{width:100%}.shapeCadFooter{display:grid}.shapeCadCoords{font-size:9px}}

.shapeCadZoomControls{display:flex;align-items:center;gap:5px;padding:3px;border:1px solid #353b40;border-radius:9px;background:#0b0e11}.shapeCadZoomControls button{min-width:34px;padding:6px 8px}.shapeCadZoomControls span{min-width:46px;text-align:center;font:800 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace;color:#7fe594}.shapeCadViewport{background-image:linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);background-size:20px 20px}
@media(max-width:700px){.shapeCadZoomControls{grid-column:1/-1;justify-content:center}.shapeCadZoomControls button{min-height:38px}.shapeCadViewport svg{min-height:340px}}

/* 1.200.37 · Forma estilo Haixun: formatos, cantos, esboço e biblioteca global */
.shapeDialogCardV37{width:min(760px,96vw)!important;max-height:min(94vh,940px)!important;overflow:auto!important}
.shapeLibraryV37{display:grid;gap:8px}.shapeScopeTabs,.shapeModeTabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.shapeModeTabs{grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0 8px}.shapeScopeTabs button,.shapeModeTabs button{min-height:38px}.shapeScopeTabs button.active,.shapeModeTabs button.active{background:var(--green);color:#071b0c;border-color:var(--green)}
.shapePresetMetaFields{margin-top:0}.shapeLibraryTransformActions{grid-template-columns:repeat(3,minmax(0,1fr))}.shapePublishGlobal{width:100%;margin-top:2px}
.shapeModePanel{display:grid;gap:9px;padding:10px;border:1px solid #3a444b;border-radius:12px;background:#11161a}.shapePanelTitle strong{display:block;font-size:13px}.shapePanelTitle span{display:block;margin-top:2px;color:var(--muted);font-size:9px;line-height:1.35}
.shapeConditionalFields{display:grid;gap:8px;padding:8px;border:1px dashed #38434a;border-radius:9px;background:#0d1215}.shapeFormatCornerChecks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.shapeFormatCornerChecks label{display:flex;align-items:center;gap:6px;padding:7px 8px;border:1px solid #343c42;border-radius:8px;font-size:10px}
.shapeCornerEditorViewport{border:1px solid #cfd5d8;border-radius:10px;overflow:hidden;background:#f9faf8}.shapeCornerEditorViewport svg{display:block;width:100%;height:330px;touch-action:manipulation}.shapeCornerOperationButtons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.shapeCornerOperationButtons button.active{background:var(--green);color:#071b0c;border-color:var(--green)}.shapeCornerEditorActions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.shapeCornerEditorActions button{min-height:40px}
.shapePreviewV37{margin-top:10px}.shapePreviewHead{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:5px}.shapePreviewHead strong{font-size:11px}.shapePreviewHead span{font-size:9px;color:#7fe594;font-weight:800}
#cadHideSelectedSpaceQuick,#cadGridQuickToggle,#cadHideSelectedPieceQuick,#cadShowHiddenPiecesQuick,#cadFrontQuickToggle,#cadSpaceQuickToggle,#cadConfigQuickButton{position:fixed;z-index:36;right:8px;min-height:32px;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.72);color:#e8edef;border:1px solid rgba(255,255,255,.2);font-size:10px;font-weight:900;box-shadow:0 4px 14px rgba(0,0,0,.22);white-space:nowrap}#cadHideSelectedSpaceQuick{top:calc(96px + env(safe-area-inset-top))}#cadGridQuickToggle{top:calc(136px + env(safe-area-inset-top))}#cadHideSelectedPieceQuick{top:calc(176px + env(safe-area-inset-top))}#cadShowHiddenPiecesQuick{top:calc(216px + env(safe-area-inset-top))}#cadFrontQuickToggle{top:calc(256px + env(safe-area-inset-top))}#cadSpaceQuickToggle{top:calc(296px + env(safe-area-inset-top))}#cadConfigQuickButton{top:calc(336px + env(safe-area-inset-top))}#cadGridQuickToggle.active{background:rgba(70,150,105,.88);color:#fff;border-color:rgba(127,229,148,.65)}#cadHideSelectedPieceQuick{background:rgba(90,90,96,.9)}#cadShowHiddenPiecesQuick{background:rgba(45,112,82,.9);color:#fff;border-color:rgba(132,226,170,.55)}#cadShowHiddenPiecesQuick:disabled{opacity:.42;cursor:default}#cadFrontQuickToggle.active{background:rgba(178,92,55,.9);color:#fff;border-color:rgba(255,190,150,.7)}#cadSpaceQuickToggle.active{background:rgba(38,115,130,.9);color:#fff;border-color:rgba(120,220,235,.7)}body.visualization-only #cadHideSelectedSpaceQuick,body.presentation-active #cadHideSelectedSpaceQuick,body.visualization-only #cadGridQuickToggle,body.presentation-active #cadGridQuickToggle,body.visualization-only #cadHideSelectedPieceQuick,body.presentation-active #cadHideSelectedPieceQuick,body.visualization-only #cadShowHiddenPiecesQuick,body.presentation-active #cadShowHiddenPiecesQuick,body.visualization-only #cadFrontQuickToggle,body.presentation-active #cadFrontQuickToggle,body.visualization-only #cadSpaceQuickToggle,body.presentation-active #cadSpaceQuickToggle,body.visualization-only #cadConfigQuickButton,body.presentation-active #cadConfigQuickButton{display:none}
@media(max-width:700px){.shapeDialogCardV37{width:100vw!important;max-width:100vw!important;max-height:100dvh!important;border-radius:0!important}.shapeModeTabs{position:sticky;top:-10px;z-index:3;background:#111;padding:8px 0}.shapeModeTabs button{font-size:10px}.shapeLibraryTransformActions{grid-template-columns:1fr}.shapeCornerEditorViewport svg{height:300px}.shapeCornerEditorActions{grid-template-columns:1fr}.shapeFormatCornerChecks{grid-template-columns:1fr 1fr}#cadHideSelectedSpaceQuick{top:calc(94px + env(safe-area-inset-top));right:6px}#cadGridQuickToggle{top:calc(134px + env(safe-area-inset-top));right:6px}#cadHideSelectedPieceQuick{top:calc(174px + env(safe-area-inset-top));right:6px}#cadShowHiddenPiecesQuick{top:calc(214px + env(safe-area-inset-top));right:6px}#cadFrontQuickToggle{top:calc(254px + env(safe-area-inset-top));right:6px}#cadSpaceQuickToggle{top:calc(294px + env(safe-area-inset-top));right:6px}#cadConfigQuickButton{top:calc(334px + env(safe-area-inset-top));right:6px}}
body.project-home-active #cadHideSelectedSpaceQuick,body.project-home-active #cadGridQuickToggle,body.project-home-active #cadHideSelectedPieceQuick,body.project-home-active #cadShowHiddenPiecesQuick,body.project-home-active #cadFrontQuickToggle,body.project-home-active #cadSpaceQuickToggle,body.project-home-active #cadConfigQuickButton{display:none}
\n\n/* 1.300.02 · Peças gerais: chapas + madeira maciça + ferro na mesma tela */\n.partsProductionSection{margin-top:14px;padding-top:12px;border-top:1px solid rgba(127,127,127,.28)}\n.partsProductionSectionHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px}\n.partsProductionSectionHead>div{display:flex;flex-direction:column;gap:2px}\n.partsProductionSectionHead>strong,.partsProductionSectionHead>div>strong{font-size:14px}\n.partsProductionSectionHead span{font-size:11px;color:var(--muted,#7b8084)}\n.partsProductionSectionHead button{flex:0 0 auto}\n.partsInlinePlan{margin-top:8px}\n.partsInlinePlan .dlCheckRow small{display:block;white-space:normal;line-height:1.55;margin-top:4px}\n#partsGeneralSummary{margin:10px 0 4px}\n@media(max-width:720px){.partsProductionSectionHead{align-items:stretch;flex-direction:column}.partsProductionSectionHead button{width:100%}}\n

/* 1.300.31 · plano de corte mobile: detalhes e fechar sempre acessíveis */
.sheetPreviewMobileClose{display:none}
@media(max-width:820px){
  #sheetPreviewDialog{
    width:100vw;
    height:100dvh;
    max-height:100dvh;
    overflow:hidden;
    padding:0;
  }
  #sheetPreviewDialog.show{display:block}
  .sheetPreviewShell{
    width:100vw;
    height:100dvh;
    max-height:100dvh;
    margin:0;
    border:0;
    border-radius:0;
    overflow:hidden;
    grid-template-rows:auto auto minmax(0,1fr) auto;
  }
  .sheetPreviewHead{
    position:relative;
    display:block;
    padding:8px 58px 7px 10px;
  }
  .sheetPreviewHead strong{font-size:12px}
  .sheetPreviewHead span{font-size:8px;line-height:1.25}
  .sheetPreviewHeadActions{
    display:flex;
    width:100%;
    min-width:0;
    gap:5px;
    margin-top:7px;
    overflow-x:auto;
    overflow-y:hidden;
    padding:0 0 2px;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .sheetPreviewHeadActions::-webkit-scrollbar{display:none}
  .sheetPreviewHeadActions button{
    flex:0 0 auto;
    min-height:34px;
    padding:6px 9px;
    font-size:9px;
  }
  #sheetPreviewClose{
    position:absolute;
    top:8px;
    right:8px;
    z-index:6;
    min-width:46px;
    min-height:36px;
    padding:6px 8px;
    background:#2f3336;
    color:#fff;
    border-color:#5a6064;
  }
  .sheetPreviewToolbar{
    gap:5px;
    padding:6px 8px;
  }
  .sheetPreviewToolbar button{min-height:32px;padding:5px 8px;font-size:9px}
  .sheetPreviewToolbar select{min-height:34px;font-size:9px}
  .sheetPreviewToggle{font-size:8px;gap:4px;padding:0 2px}
  .sheetPreviewToggle input{width:16px;height:16px}

  /* O conteúdo central inteiro vira a área rolável. Antes a segunda linha do grid
     podia colapsar para quase 0px e esconder detalhes/botões abaixo da chapa. */
  .sheetPreviewMain{
    display:flex;
    flex-direction:column;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .sheetCanvasWrap{
    flex:0 0 auto;
    width:100%;
    height:clamp(280px,44dvh,430px);
    min-height:280px;
    padding:8px;
    overflow:hidden;
  }
  /* No celular o canvas só precisa reconhecer toque para selecionar peça.
     pan-y deixa o arrasto vertical passar para a rolagem da janela de detalhes. */
  #sheetPreviewCanvas{touch-action:pan-y;}
  .sheetPreviewSide{
    flex:0 0 auto;
    min-height:0;
    overflow:visible;
    padding:10px 10px calc(12px + env(safe-area-inset-bottom));
    border-left:0;
    border-top:1px solid #c4c6c7;
  }
  .sheetPreviewMobileClose{
    display:block;
    width:100%;
    min-height:46px;
    margin-top:10px;
    font-size:11px;
    font-weight:900;
  }
  .sheetPreviewFoot{
    position:relative;
    z-index:4;
    padding:6px 8px calc(6px + env(safe-area-inset-bottom));
    font-size:8px;
  }
  #sheetPreviewPosition{display:none}
}
@media(max-width:420px){
  .sheetCanvasWrap{height:40dvh;min-height:250px}
  .sheetPreviewHeadActions button{font-size:8.5px}
  .sheetPreviewToolbar{padding:5px 7px}
}

/* 1.312.00-r1 · transferência manual de peças entre chapas */
.cutPlanTransferDialog{position:fixed;inset:0;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.55);z-index:26000}
.cutPlanTransferDialog.show{display:flex}
.cutPlanTransferBox{width:min(520px,96vw);max-height:min(78vh,720px);overflow:auto;background:#202326;color:#f5f6f7;border:1px solid #474c50;border-radius:18px;padding:14px;box-shadow:0 18px 60px rgba(0,0,0,.45)}
.cutPlanTransferHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.cutPlanTransferHead>div{min-width:0}.cutPlanTransferHead strong{display:block;font-size:20px}.cutPlanTransferHead span{display:block;color:#b9c0c5;font-size:13px;margin-top:4px;overflow-wrap:anywhere}
.cutPlanTransferList{display:grid;gap:9px}.cutPlanTransferTarget{width:100%;min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;background:#303438;color:#fff;border:1px solid #4b5156;border-radius:13px;padding:10px 12px}.cutPlanTransferTarget span{min-width:0}.cutPlanTransferTarget b,.cutPlanTransferTarget small{display:block}.cutPlanTransferTarget small{color:#b8c0c5;margin-top:3px}.cutPlanTransferTarget em{font-style:normal;font-weight:800;color:#62e085;white-space:nowrap}.cutPlanTransferTarget.disabled{opacity:.52}.cutPlanTransferTarget.disabled em{color:#ff8b85}.cutPlanTransferTarget.auto{margin-top:4px;background:#292d30}.cutPlanTransferEmpty{padding:16px;border:1px dashed #555;border-radius:12px;color:#c3c9cd}.cutPlanTransferHelp{margin-top:12px;font-size:12px;line-height:1.45;color:#aeb6bb}

/* 1.312.00-r1 · tamanho/veio da chapa vêm do cadastro de cada material */
.sheetMaterialAutoInfo{display:flex;flex-direction:column;gap:4px;margin:4px 0 10px;padding:10px 12px;border:1px solid rgba(120,130,136,.35);border-radius:10px;background:rgba(125,135,140,.07)}
.sheetMaterialAutoInfo strong{font-size:13px}.sheetMaterialAutoInfo span{font-size:12px;line-height:1.4;color:var(--muted,#687078)}

/* r20: importação externa isolada */
.externalCutOverlay{position:fixed;inset:0;z-index:9999;background:rgba(5,9,15,.82);align-items:center;justify-content:center;padding:20px;overflow:auto;backdrop-filter:blur(5px)}
.externalCutPanel{width:min(760px,100%);max-height:min(90vh,900px);display:flex;flex-direction:column;background:#171d25;color:#f2f5fa;border:1px solid #394554;border-radius:18px;box-shadow:0 28px 90px #000a;overflow:hidden}
.externalCutHeader{display:flex;justify-content:space-between;gap:18px;padding:24px 28px 20px;border-bottom:1px solid #35404e;background:#202a36}.externalCutHeader small{color:#81b9ff;font-weight:800;letter-spacing:1.5px}.externalCutHeader h3{font-size:23px;margin:7px 0}.externalCutHeader p,.externalCutSection p{color:#aebdcb;margin:4px 0;font-size:13px}.externalCutX{align-self:start;min-width:38px;border-radius:10px}.externalCutBody{padding:22px 28px;overflow-y:auto;display:grid;gap:18px}.externalCutDrop{border:2px dashed #53749a;border-radius:14px;background:#1d3044;padding:20px;text-align:center;display:flex;flex-direction:column;gap:8px;cursor:pointer}.externalCutDrop strong{font-size:17px}.externalCutDrop span{color:#b4c6db;font-size:13px}.externalCutDrop input{margin:8px auto 0;max-width:100%;color:#e5eef9}.externalCutSection{border:1px solid #354353;border-radius:12px;padding:16px;background:#1b222c}.externalCutSection h4{margin:0 0 7px;font-size:16px}.externalCutFields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.externalCutFields label{font-size:12px;font-weight:700;color:#d5e0eb}.externalCutFields input{display:block;width:100%;margin-top:7px;box-sizing:border-box;padding:12px;border-radius:9px;background:#111820;color:#fff;border:1px solid #536174;font-size:16px}.externalCutPreviewTitle{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.externalCutPreviewTitle span{font-size:12px;color:#aebdcb}.externalCutTableScroll{max-height:210px;overflow:auto;margin-top:12px}.externalCutTableScroll table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.externalCutTableScroll th,.externalCutTableScroll td{padding:9px;border-bottom:1px solid #344252}.externalCutTableScroll th{color:#c7d8ea;background:#25303e;position:sticky;top:0}.externalCutInfo{color:#b4c9dc;font-size:12px;line-height:1.5;margin:0}.externalCutFooter{display:flex;justify-content:flex-end;gap:12px;padding:18px 28px;border-top:1px solid #35404e;background:#202a36}.externalCutFooter button{padding:12px 18px;border-radius:10px}.externalCutFooter button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:560px){.externalCutOverlay{padding:8px}.externalCutHeader,.externalCutBody,.externalCutFooter{padding:16px}.externalCutFields{grid-template-columns:1fr}.externalCutHeader h3{font-size:19px}}

/* r22: janela isolada de etiquetas de produção */
.productionLabelsOverlay{display:none;position:fixed;inset:0;z-index:100050;background:rgba(9,14,24,.78);align-items:center;justify-content:center;padding:16px}.productionLabelsOverlay.show{display:flex}.productionLabelsPanel{width:min(740px,100%);max-height:92vh;display:flex;flex-direction:column;background:#182331;color:#f2f5f9;border:1px solid #3c5063;border-radius:18px;box-shadow:0 20px 65px #0009;overflow:hidden}.productionLabelsPanel header,.productionLabelsPanel footer{padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px}.productionLabelsPanel header{border-bottom:1px solid #35495c}.productionLabelsPanel header h3{margin:3px 0;font-size:23px}.productionLabelsPanel header small{color:#80d3d0;font-weight:800;letter-spacing:.09em}.productionLabelsPanel header p{margin:0;color:#a9b7c7;font-size:13px}.productionLabelsContent{padding:18px 22px;overflow:auto}.productionLabelsFields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.productionLabelsFields label{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:13px}.productionLabelsFields input{width:100%;background:#0f1925;color:white;border:1px solid #486078;border-radius:9px;padding:12px}.productionLabelsWarning{color:#f3c980;background:#4a3822;border-radius:9px;padding:12px;line-height:1.5;font-size:13px}.productionLabelsSummary{font-weight:800;margin:14px 0}.productionLabelsList{border:1px solid #3b4e61;border-radius:10px;max-height:300px;overflow:auto}.productionLabelsRow{display:grid;grid-template-columns:45px 1fr auto;gap:10px;align-items:center;padding:10px;border-bottom:1px solid #314356;font-size:13px}.productionLabelsRow:last-child{border:0}.productionLabelsRow>b{color:#80d3d0}.productionLabelsRow strong{white-space:nowrap}.productionLabelsPanel footer{border-top:1px solid #35495c}.productionLabelsPanel footer button{padding:11px 16px;border-radius:9px;cursor:pointer}.productionLabelsPanel #productionLabelsPrint{background:#49c6ac;color:#102329;font-weight:800;border:0}@media(max-width:560px){.productionLabelsFields{grid-template-columns:1fr}.productionLabelsRow{grid-template-columns:32px 1fr}.productionLabelsRow strong{grid-column:2}.productionLabelsPanel footer{flex-wrap:wrap}}
