/* Additions for WireCut Studio 4.7.0; the existing app.css remains the base. */
.cutModeControls{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12px}
.cutModeControls label{font-weight:700}
.cutModeControls select{width:auto;max-width:172px;min-height:34px;padding:6px 9px;border:1px solid #47739c;border-radius:7px;background:#10263c;color:#e9f4ff;font:inherit}
.cutModeBadge{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border:1px solid #508ab7;border-radius:20px;padding:5px 9px;background:#163f61;color:#d6edff;font-size:11px;font-weight:750;line-height:1.25}
.cutModeBadge:before{content:"";width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#69b8f4}
.cutModeBadge.rotary,.cutModeBadge[data-mode="rotary"]{border-color:#ad82ed;background:#3c285a;color:#ecdfff}
.cutModeBadge.rotary:before,.cutModeBadge[data-mode="rotary"]:before{background:#c8a2ff}
.topSaveProjectBtn{white-space:nowrap;border-color:#62af98!important;background:#173c33!important;color:#e1fff5!important;min-height:34px}
.rotaryCard{border-left:3px solid #a97be3!important}
.rotaryCard[hidden],#executionPanel[hidden]{display:none!important}
.rotaryCardHeading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.rotaryCardHeading h2{margin:0}
.rotaryIntro{font-size:13px;line-height:1.6;opacity:.9;margin:8px 0 16px}
.rotaryFields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}
.rotaryFields>.field{min-width:0}
.rotaryFull{grid-column:1/-1}
.rotaryCard label{display:block;font-size:12px;margin-bottom:6px;font-weight:650}
.rotaryCard input,.rotaryCard select{box-sizing:border-box;width:100%;min-height:36px;border:1px solid #445269;border-radius:6px;padding:7px 9px;background:#101e30;color:#edf5ff;font:inherit}
.rotaryCard .muted{font-size:12px;line-height:1.5;margin-top:6px}
.rotaryCard input:focus,.rotaryCard select:focus,.cutModeControls select:focus{outline:2px solid #c69eff;outline-offset:2px}
.rotaryScheduleInfo{margin-top:15px;padding:12px;border-radius:8px;background:#39284f;border:1px solid #705790;color:#efdeff;font-size:13px;line-height:1.5;font-weight:650}
.rotaryScheduleInfo.error,.rotaryScheduleInfo.invalid{background:#442329;border-color:#cf697b;color:#ffe0e7}
.rotaryTestBox{margin-top:16px;padding-top:14px;border-top:1px solid #425066}
.rotaryTestBox h3{font-size:14px;margin:0 0 10px}
.rotaryTestBox .field{max-width:240px}
.rotaryTestActions,.rotaryProfileActions{margin-top:12px;gap:8px;flex-wrap:wrap}
.rotaryPosition{margin-top:12px;font:600 13px/1.5 ui-monospace,Consolas,monospace;overflow-wrap:anywhere}
.projectTile[data-cut-mode="rotary"],.projectCard[data-cut-mode="rotary"],.projectGalleryItem[data-cut-mode="rotary"],.projectTile.rotary{border-color:#a97be3!important}
.projectTile[data-cut-mode="flat"],.projectCard[data-cut-mode="flat"],.projectGalleryItem[data-cut-mode="flat"]{border-color:#508ab7!important}
.executionPanel{margin-top:12px;padding:14px;border:1px solid #44536a;border-radius:12px;background:#132135;color:#e6effb;overflow:hidden}
.executionPanel h3{font-size:14px;line-height:1.5;margin:0}
.executionPanel .muted{font-size:11px;color:#afbed0;line-height:1.5}
.executionCanvasWrap{margin-top:10px;background:#0b1524;border:1px solid #34435b;border-radius:8px;overflow:hidden}
#execution3d{display:block;width:100%;height:290px}
.executionLegend{display:flex;flex-wrap:wrap;gap:12px;padding:8px 10px;font-size:10px;color:#c8d6e8}
.executionLegend span{display:inline-flex;align-items:center;gap:5px}
.executionLegend i{display:inline-block;width:14px;height:3px;background:#8192aa}
.executionLegend i.done{background:#55d99d}.executionLegend i.active{background:#ffba65}
.executionStats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 8px;margin-top:13px}
.executionStat{min-width:0;padding:8px;border-radius:7px;background:#1b2c43}
.executionStat small{display:block;color:#adbed4;font-size:10px;line-height:1.4}
.executionStat b{display:block;color:#eef6ff;margin-top:4px;font-size:13px;line-height:1.4;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.executionStat.wide{grid-column:1/-1}
.executionProgressHead{display:flex;justify-content:space-between;gap:10px;align-items:baseline;font-size:11px;margin-top:12px}
.executionProgressTrack{height:7px;background:#26374e;border-radius:6px;overflow:hidden;margin-top:7px}
#executionProgressFill{display:block;width:0;height:100%;background:#55d99d;border-radius:6px;transition:width .2s}
@media(max-width:800px){.topbar{flex-wrap:wrap}.cutModeControls{margin:4px 0}.rotaryFields{grid-template-columns:1fr}.rotaryFull{grid-column:auto}#execution3d{height:260px}}
@media(max-width:440px){.executionStats{grid-template-columns:repeat(2,minmax(0,1fr))}.cutModeControls>.cutModeBadge{display:none}}
/* Column cycles use their complete contour instead of the flat manual chain. */
/* tryb: elementy tylko dla cięcia płaskiego / tylko dla obrotu — w ui.css (.flatOnly / .rotaryOnly) */
body.jobRunning #preview { pointer-events: none; }
body.jobRunning .projectGallery, body.jobRunning #projectGallery { pointer-events: none; }

#contourExitPanel[hidden]{display:none!important} body.rotaryMode #flatSequenceCard{display:none}

/* Rotary calibration 4.9 */
.rotaryCalibration{padding:16px;border:1px solid #9b7ad3;border-radius:12px;background:#17263c;margin:14px 0;color:#edf3fc}
.rotaryCalibration [hidden]{display:none!important}.rotaryCalibration h4{margin:18px 0 8px}.rotaryCalibration p{line-height:1.5}
.rotaryCalibration label{display:block;margin:12px 0}.rotaryCalibration .row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rotaryCalibration button{min-height:42px;padding:8px 12px;cursor:pointer}.rotaryCalibration button:disabled{opacity:.45;cursor:default}
.rotaryCalibration input[type=checkbox]{width:18px;height:18px;vertical-align:middle;margin-right:8px}.rotaryCalibration .warnbox{color:#ffd690}.rotaryCalibration .okbox{color:#8aefbd}
.rotaryAdvanced{margin:14px 0}.rotaryAdvanced summary{cursor:pointer;padding:12px;border:1px solid #58718b;border-radius:8px}.rotationTiming{margin:12px 0}.rotationTiming p{line-height:1.5}

.shuttlePanel{border:1px solid #58718b;padding:12px;border-radius:10px;margin:12px 0}.shuttlePanel [hidden]{display:none!important}.shuttlePanel label{display:block;margin-bottom:10px}.shuttlePanel .row{display:flex;gap:8px;flex-wrap:wrap}.shuttlePanel p{line-height:1.5}.shuttlePanel button{min-height:38px}#shuttleYellow{color:#ffeb00;background:#333623}#shuttleBlue{color:#35c9ff;background:#163348}

.materialOriginPanel{margin-top:16px;border:1px solid #9b7ad3;border-radius:10px;padding:14px;background:#17263c;color:#edf3fc}.materialOriginPanel[hidden]{display:none!important}.materialOriginPanel .row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.materialOriginPanel label{display:flex;flex-direction:column;gap:6px;margin:8px 0}.materialOriginPanel input{max-width:160px}.materialOriginPanel button{min-height:42px;padding:8px 12px}.materialOriginPanel p{line-height:1.5}.materialOriginPanel .warnbox{color:#ffd690}.materialOriginPanel .okbox{color:#8aefbd}

.flatEditor{border:1px solid #446780;border-radius:10px;padding:12px;background:#102536;color:#e5f2fc;margin-bottom:10px;font:14px system-ui}.flatEditor[hidden]{display:none}.flatEditor h3{margin:0 0 8px}.flatEditor details{margin:8px 0}.flatEditor summary{cursor:pointer}.flatActions{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:6px 0}.flatEditor button,.flatEditor select{padding:7px;border:1px solid #55768b;border-radius:6px;background:#18374a;color:#e5f2fc;max-width:100%}.flatEditor button:not(:disabled){cursor:pointer}.flatEditor button:disabled{opacity:.4}.flatEditor .good{background:#145f42}.flatEditor .danger{background:#76363e}.flatEditor #flatEditStatus{border-left:3px solid #ffdc27;padding:8px;margin:8px 0;background:#0b1c29}.flatEditor pre{white-space:pre-wrap;font:12px system-ui}.flatEditor .muted{font-size:12px;color:#adc5d5}

.flatEditor [hidden]{display:none!important}

/* Compact controls: contain global form widths and keep menus out of canvas layout. */
#flatEditor{position:relative;z-index:20;padding:5px 7px;margin:0 0 6px;border-radius:7px;font:12px system-ui;overflow:visible;flex:0 0 auto;box-sizing:border-box}
#flatEditor .flatToolbar{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-width:0}
#flatEditor h3{font:600 12px system-ui;white-space:nowrap;margin:0 5px 0 0}
#flatEditor button,#flatEditor summary,#flatEditor select{font:500 12px system-ui;line-height:18px;box-sizing:border-box;margin:0;padding:4px 7px;min-height:28px;height:auto;max-width:100%;border-radius:5px;letter-spacing:normal}
#flatEditor button{width:auto;flex:0 0 auto;white-space:nowrap}
#flatEditor .flatIcon{width:29px;font-size:17px;padding:3px}
#flatEditor select{display:block;flex:1 1 150px;width:auto!important;min-width:0;max-width:100%;background:#18374a;color:#e5f2fc}
#flatEditor .flatMenu{margin:0;position:static;display:block}
#flatEditor summary{display:block;list-style:none;cursor:pointer;border:1px solid #55768b;background:#18374a;color:#e5f2fc;white-space:nowrap;user-select:none}
#flatEditor summary::-webkit-details-marker{display:none}
#flatEditor details[open]>summary{background:#27536b;border-color:#7fbfdd}
#flatEditor .flatHelpMenu{margin-left:auto}
#flatEditor .flatPopover{position:absolute;left:6px;top:calc(100% + 3px);width:min(450px,calc(100% - 12px));max-height:min(55dvh,380px);overflow:auto;box-sizing:border-box;padding:10px;border:1px solid #55768b;border-radius:7px;background:#102536;box-shadow:0 8px 25px #0008;z-index:40}
#flatEditor .flatHelpMenu .flatPopover{left:auto;right:6px}
#flatEditor .flatPopover p{font-size:12px;margin:6px 0 0;color:#adc5d5}
#flatEditor .flatPopover label{display:flex;align-items:center;gap:6px;margin:8px 0 0;font-size:12px}
#flatEditor input[type=checkbox]{width:auto;min-width:0;margin:0}
#flatEditor .flatActions{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:5px;margin:6px 0 0;min-width:0}
#flatEditor .flatContext{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
#flatEditor #flatEditStatus{flex:1 1 190px;min-width:0;max-width:100%;margin:4px 0 0;padding:3px 6px;border-left:2px solid #ffdc27;font-size:12px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#flatEditor #flatEditStatus[hidden],#flatEditor [hidden]{display:none!important}
#flatEditor #flatReview{margin:4px 0 0;flex:0 0 auto}
#flatEditor #flatPlayback{margin:4px 0 0}
#flatEditor #flatSimStatus{font-size:12px;flex:1 1 180px}
#flatEditor #flatInsertSummary{margin:7px 0 0;font-size:12px}
#flatEditor #flatInsertSummary:empty{display:none}
#canvasDock.flatCompactDock{min-width:0}
#canvasDock.flatCompactDock .canvasWrap{height:clamp(360px,74dvh,1100px);min-height:0;position:relative;overflow:hidden}
#canvasDock.flatCompactDock #preview{display:block;width:100%;height:100%;min-height:0;margin:0;outline:none}
#canvasDock.flatCompactDock .canvasToolbar{position:absolute;left:8px;top:8px;right:8px;display:flex;flex-wrap:wrap;align-items:center;gap:4px;z-index:5;pointer-events:none}
#canvasDock.flatCompactDock .canvasToolbar>*{pointer-events:auto;flex:0 0 auto;width:auto}
#canvasDock.flatCompactDock .canvasHud{position:absolute;right:8px;bottom:8px;top:auto;z-index:4;pointer-events:none;max-width:calc(100% - 16px);font-size:11px;background:#06101bc9;border-radius:5px;padding:4px 7px}
#canvasDock.flatCompactDock .canvasHelp{display:none}
#canvasModal.show.flatCompactModal{display:flex;position:fixed;inset:0;z-index:10000;flex-direction:column;gap:5px;padding:7px;box-sizing:border-box;background:#07121f;overflow:hidden}
#canvasModal.flatCompactModal .canvasModalTop{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;margin:0;padding:0;min-height:30px}
#canvasModal.flatCompactModal .canvasModalHost{flex:1 1 0;min-height:0;overflow:visible;display:flex}
#canvasModal.flatCompactModal #canvasDock{display:flex;flex-direction:column;flex:1 1 0;min-height:0;width:100%;height:100%;margin:0}
#canvasModal.flatCompactModal .canvasWrap{flex:1 1 0;height:auto;min-height:0}
@media(max-width:560px){#flatEditor h3{display:none}#flatEditor .flatToolbar{gap:3px}#flatEditor button,#flatEditor summary{padding:4px 5px;font-size:11px}#flatEditor .flatHelpMenu{margin-left:0}#flatEditor #flatEditStatus{white-space:normal;line-height:16px}#canvasDock.flatCompactDock .canvasToolbar{gap:2px}}
