:root{--bg:#07111e;--panel:#0d1b2d;--panel2:#102338;--line:#243b55;--text:#eef5ff;--muted:#9eb2cb;--blue:#4e8cff;--cyan:#42d7cf;--orange:#ffae35;--green:#43d17f;--red:#ff5c67;--violet:#a77bff;--yellow:#f6cf58}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:14px/1.4 Inter,system-ui,Segoe UI,Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.app{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.topbar{display:flex;align-items:center;gap:16px;padding:12px 18px;border-bottom:1px solid var(--line);background:#091522;position:sticky;top:0;z-index:50}.brand{font-weight:800;font-size:18px}.version{font-size:11px;padding:3px 7px;border-radius:999px;background:#17324d;color:#8fc6ff}.nav{display:flex;gap:6px;flex-wrap:wrap}.nav button{border:1px solid var(--line);background:#0c1a2a;color:var(--muted);padding:8px 12px;border-radius:10px;font-weight:700}.nav button.active{color:white;background:#17385d;border-color:#3d6b9e}.topspacer{flex:1}.chip{border:1px solid var(--line);padding:6px 9px;border-radius:999px;color:var(--muted);white-space:nowrap}.chip.ok{color:#79efab;border-color:#1f6f47;background:#0e2e21}.chip.warn{color:#ffd77c;border-color:#78530b;background:#352506}.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0}.main{min-width:0;padding:14px}.side{border-left:1px solid var(--line);padding:14px;background:#091522;overflow:auto}.page{display:none}.page.active{display:block}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px}.card h2,.card h3{margin:0 0 10px}.card.project{border-top:3px solid var(--blue)}.card.cam{border-top:3px solid var(--cyan)}.card.machine{border-top:3px solid var(--violet)}.card.cut{border-top:3px solid var(--orange)}.card.diag{border-top:3px solid var(--yellow)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.field{display:grid;gap:5px}.field label{font-size:12px;color:var(--muted)}input,select{width:100%;background:#091522;border:1px solid var(--line);color:var(--text);padding:9px 10px;border-radius:9px}.rangeRow{display:grid;grid-template-columns:1fr 100px 58px;gap:8px;align-items:center}.rangeRow input[type=range]{padding:0}.unit{color:var(--muted);font-size:12px}.btn{border:1px solid var(--line);background:#16263a;color:white;padding:9px 12px;border-radius:10px;font-weight:700}.btn.primary{background:#2563eb;border-color:#4380ff}.btn.good{background:#167447;border-color:#2ca96e}.btn.warn{background:#72500b;border-color:#a47519}.btn.danger{background:#8f2831;border-color:#cc4651}.btn.ghost{background:#0a1725;color:#c4d5e8}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stack{display:grid;gap:8px}.canvasWrap{position:relative;background:#06101b;border:1px solid var(--line);border-radius:14px;overflow:hidden;min-height:520px}.canvasToolbar{position:absolute;top:10px;left:10px;z-index:5;display:flex;gap:5px}.canvasToolbar button{background:#0c1d30dd;border:1px solid #38526e;color:white;padding:7px 9px;border-radius:8px}.canvasHud{position:absolute;top:10px;right:10px;z-index:5;background:#091522e8;border:1px solid #38526e;border-radius:10px;padding:8px 10px;max-width:360px}.canvasHud .live{font-weight:800;color:#ffd166}#preview{width:100%;height:70vh;display:block;touch-action:none}.notice{padding:9px 11px;border-radius:9px;background:#3a2a08;border:1px solid #7a5912;color:#ffd77c}.okbox{padding:9px 11px;border-radius:9px;background:#0e2e21;border:1px solid #216844;color:#81efad}.warnbox{padding:9px 11px;border-radius:9px;background:#351f08;border:1px solid #794a0d;color:#ffca75}.dangerbox{padding:9px 11px;border-radius:9px;background:#351015;border:1px solid #7a2931;color:#ff9ba2}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.stat{background:#091522;border:1px solid var(--line);padding:10px;border-radius:10px}.stat small{display:block;color:var(--muted)}.stat b{font-size:18px}.joy{display:grid;grid-template-columns:72px 72px 72px;grid-template-rows:56px 56px 56px;gap:6px;justify-content:center}.joy button{border:1px solid #36516d;background:#11273d;color:white;border-radius:10px;font-weight:800;font-size:16px}.joy .up{grid-column:2}.joy .left{grid-column:1;grid-row:2}.joy .zero{grid-column:2;grid-row:2;background:#704f0b}.joy .right{grid-column:3;grid-row:2}.joy .down{grid-column:2;grid-row:3}.joy .stop{grid-column:3;grid-row:3;background:#8b2631}.orientBtns{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.orientScene{height:220px;background:#081421;border:1px solid var(--line);border-radius:12px;position:relative;overflow:hidden}.orientScene canvas{width:100%;height:100%}.log{height:230px;overflow:auto;background:#050d16;border:1px solid var(--line);border-radius:10px;padding:9px;font:12px/1.45 ui-monospace,Consolas,monospace;white-space:pre-wrap}.gcode{height:420px;width:100%;background:#050d16;color:#d9e7f5;border:1px solid var(--line);border-radius:10px;padding:10px;font:12px/1.45 ui-monospace,Consolas,monospace}.table{width:100%;border-collapse:collapse}.table td,.table th{border-bottom:1px solid var(--line);padding:7px;text-align:left}.kbd{font:11px ui-monospace,monospace;border:1px solid #53657a;background:#172231;padding:2px 5px;border-radius:5px}.muted{color:var(--muted)}.hidden{display:none!important}.full{grid-column:1/-1}
@media(max-width:1000px){.layout{grid-template-columns:1fr}.side{border-left:0;border-top:1px solid var(--line)}#preview{height:58vh}.grid3{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.grid2,.grid3{grid-template-columns:1fr}.rangeRow{grid-template-columns:1fr 90px 50px}.topbar{align-items:flex-start;flex-wrap:wrap}.nav{order:3;width:100%}.nav button{flex:1}.canvasHud{position:static;margin:8px}.canvasToolbar{position:static;margin:8px}}

/* V2.0.3 recalc gate */
.btn:disabled{opacity:.42;cursor:not-allowed;filter:grayscale(.35)}.recalcGate{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px;border-radius:12px;margin-bottom:12px;border:1px solid #7a2931;background:#351015}.recalcGate small{display:block;color:#ffb0b6}.recalcGate b{display:block;font-size:18px;color:#ff737d}.recalcGate.ready{border-color:#216844;background:#0e2e21}.recalcGate.ready small{color:#9ee8bb}.recalcGate.ready b{color:#79efab}.recalcGate.stale #cutRecalcBtn{background:#c7333f;border-color:#ff5b66}.recalcGate.ready #cutRecalcBtn{background:#167447;border-color:#2ca96e}@media(max-width:700px){.recalcGate{grid-template-columns:1fr}.recalcGate .btn{width:100%}}

/* V2.0.4 — pełnoekranowa maska wczytywania obiektu/projektu */
html.appBusy,html.appBusy body{overflow:hidden!important}
.loadingMask{position:fixed;inset:0;z-index:100000;background:rgba(3,10,20,.84);backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .14s ease,visibility .14s ease}
.loadingMask.show{opacity:1;visibility:visible;pointer-events:all}
.loadingCard{width:min(560px,calc(100vw - 36px));display:flex;gap:22px;align-items:flex-start;padding:26px;border:1px solid #345170;border-radius:18px;background:#0b1727;box-shadow:0 24px 80px rgba(0,0,0,.55)}
.loadingSpinner{width:54px;height:54px;flex:0 0 54px;border-radius:50%;border:5px solid #1b3651;border-top-color:#49c8ff;border-right-color:#56e0a0;animation:wirecutSpin .85s linear infinite}
@keyframes wirecutSpin{to{transform:rotate(360deg)}}
.loadingContent{min-width:0;flex:1}.loadingContent h2{margin:0 0 8px;font-size:22px}.loadingDetail{color:#b9d0e8;min-height:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loadingProgress{height:12px;margin-top:18px;border-radius:999px;background:#10263d;overflow:hidden;border:1px solid #24445f}.loadingBar{height:100%;width:0;background:linear-gradient(90deg,#3aaef2,#55dea1);border-radius:999px;transition:width .12s ease}
.loadingMeta{display:flex;justify-content:space-between;margin-top:7px;font-size:13px;color:#8fb3d5;font-variant-numeric:tabular-nums}.loadingHint{margin-top:16px;color:#6f91b1;font-size:12px;line-height:1.4}
@media(max-width:600px){.loadingCard{padding:20px;gap:15px}.loadingSpinner{width:42px;height:42px;flex-basis:42px}.loadingContent h2{font-size:19px}}

/* V2.1 — aktywne połączenie, canvas navigation, routing */
.plotterTop{border:1px solid;border-radius:10px;padding:8px 12px;font-weight:900;color:#fff;white-space:nowrap}.plotterTop.offline{background:#7d2029;border-color:#dd4e5b}.plotterTop.online{background:#12653f;border-color:#39c77f;box-shadow:0 0 0 2px rgba(57,199,127,.12)}
.canvasToolbar .active{background:#225a86;border-color:#64baff}.zoomPct{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:6px 8px;border-radius:8px;background:#081522d9;border:1px solid #38526e;color:#bfe4ff;font-weight:800}.canvasHelp{position:absolute;left:10px;bottom:10px;z-index:5;background:#071522df;border:1px solid #2d4863;border-radius:8px;padding:6px 9px;color:#9eb8d3;font-size:11px;pointer-events:none}.routeHelp{margin-top:10px;padding:9px 10px;border-radius:9px;background:#081827;border:1px solid #28455f;color:#bcd1e6;line-height:1.55}
@media(max-width:700px){.plotterTop{order:2}.canvasHelp{position:static;margin:8px}}


/* V2.2.1 — modal ustawienia 0,0 przed ruchem */
.wcModal{position:fixed;inset:0;z-index:120000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .14s ease,visibility .14s ease}.wcModal.show{opacity:1;visibility:visible;pointer-events:auto}.wcModalBackdrop{position:absolute;inset:0;background:rgba(2,8,15,.82);backdrop-filter:blur(6px)}.wcModalCard{position:relative;z-index:1;width:min(520px,100%);background:#0c1a2a;border:1px solid #45617e;border-radius:18px;padding:24px;box-shadow:0 30px 100px rgba(0,0,0,.65)}.wcModalIcon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#49350a;border:1px solid #a77b18;color:#ffd166;font-size:25px;font-weight:900;margin-bottom:12px}.wcModalCard h2{margin:0 0 8px;font-size:22px}.wcModalCard p{margin:0 0 16px;color:#b6c9dd}.wcModalPosition{padding:12px 14px;border-radius:11px;background:#071522;border:1px solid #294866;margin-bottom:12px}.wcModalPosition small{display:block;color:#8fa9c4;margin-bottom:3px}.wcModalPosition b{font-size:21px;font-variant-numeric:tabular-nums}.wcModalWarning{padding:11px 13px;border-radius:10px;background:#352506;border:1px solid #78530b;color:#ffd77c;line-height:1.5}.wcModalActions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px;flex-wrap:wrap}.wcModalActions .btn{min-width:150px}@media(max-width:560px){.wcModalCard{padding:18px}.wcModalActions{display:grid;grid-template-columns:1fr}.wcModalActions .btn{width:100%}}

/* V2.2.6 — rzeczywisty postęp cięcia z pozycji GRBL */
.liveProgressStat,.etaStat{border-color:#245d4c}.jobProgressBar,.canvasProgressBar{height:7px;margin-top:7px;border-radius:999px;background:#10263d;overflow:hidden;border:1px solid #24445f}.jobProgressBar i,.canvasProgressBar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#2fc77a,#6af0ac);transition:width .18s linear}.canvasProgress{margin-top:4px;color:#8ef0b8;font-weight:800;font-variant-numeric:tabular-nums}.canvasProgressBar{width:100%;min-width:220px}

/* 2.3.1 server gallery + fullscreen canvas + TX/RX diagnostics */
.projectGallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:12px}.projectTile{border:1px solid #29445d;border-radius:12px;overflow:hidden;background:#0a1724}.projectThumb{height:145px;background:#06101b;display:flex;align-items:center;justify-content:center;overflow:hidden}.projectThumb svg{width:100%;height:100%;object-fit:contain}.projectTileBody{padding:10px}.projectTileBody p{min-height:2.6em;color:#9fb5c8}.projectTileBody small{display:block;color:#738ba0;margin-bottom:8px}.projectSaveCard{max-width:620px}.canvasModal{position:fixed;inset:0;background:#030912;z-index:9000;display:none;flex-direction:column}.canvasModal.show{display:flex}.canvasModalTop{padding:10px 14px;background:#0a1724;border-bottom:1px solid #29445d;display:flex;justify-content:space-between;align-items:center}.canvasModalHost{flex:1;min-height:0;padding:10px}.canvasModalHost #canvasDock,.canvasModalHost .canvasWrap{height:100%}.canvasModalHost .canvasWrap{min-height:calc(100vh - 78px)}.canvasModalHost #preview{height:calc(100vh - 155px)!important}.txrxLog{white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px}

/* V2.3.2 — 50/50 canvas, original SVG gallery, SVG button in top nav */
.topSvgBtn{border:1px solid #315575;border-radius:10px;padding:8px 12px;font-weight:800;color:#dbeeff;background:#10263a;white-space:nowrap;max-width:340px;overflow:hidden;text-overflow:ellipsis}
.topSvgBtn.loaded{background:#12344c;border-color:#3a83b5;color:#d9f3ff}
.topSvgBtn.empty{background:#16263a;color:#c7d7e8}
.projectThumb img{width:100%;height:100%;object-fit:contain;display:block;background:#fff}
.projectSource{font-size:11px;color:#80a9c8;margin:0 0 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1300px){.topSvgBtn{max-width:220px}}

/* V2.3.4 — informacyjny status skali SVG */
.scaleStatusChip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:900;letter-spacing:.25px;border:1px solid transparent;white-space:nowrap}
.scaleStatusChip.original{color:#bfffd4;background:#103824;border-color:#24975a}
.scaleStatusChip.scaled{color:#ffd0d0;background:#46191b;border-color:#c44848}
.scaleStatusChip.unknown{color:#9bb0c2;background:#182636;border-color:#34495e}

/* V2.4.0 — production project presets */
.presetSaveGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.presetSaveInfo{margin-top:12px;padding:10px 12px;border:1px solid #315575;background:#0c2031;border-radius:10px;color:#a9c8df;font-size:12px}
.presetTile{cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}
.presetTile:hover,.presetTile:focus{transform:translateY(-2px);border-color:#3b91c9;box-shadow:0 8px 24px #0005;outline:none}
.presetMeta{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;margin:8px 0;font-size:11px;color:#a9c8df}
.presetMeta span{background:#0b1c2b;border:1px solid #203c52;border-radius:7px;padding:5px 6px}
.presetReady,.presetStale{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:900;margin:2px 0 8px}
.presetReady{color:#bfffd4;background:#103824;border:1px solid #24975a}
.presetStale{color:#ffd0d0;background:#46191b;border:1px solid #c44848}
@media(max-width:900px){.presetSaveGrid{grid-template-columns:1fr}}

/* WireCut Studio 3.0 — enlarged preview direct mouse pan */
.canvasModal.show #preview{cursor:grab;touch-action:none}
.canvasModal.show #preview:active{cursor:grabbing}
.canvasModal.show .canvasModalHost,.canvasModal.show #canvasDock,.canvasModal.show .canvasWrap{height:calc(100vh - 58px);min-height:0}
.canvasModal.show .canvasWrap{display:flex;flex-direction:column}
.canvasModal.show #preview{flex:1;min-height:0}

/* V3.0.1 — CAM Worker progress */
.loadingMask.show{backdrop-filter:blur(5px)}
.loadingMeta #loadingElapsed{font-variant-numeric:tabular-nums;font-weight:900;color:#7ee2ff;min-width:92px;text-align:right}
.loadingCard{box-shadow:0 24px 80px #000a}

/* V3.1.0 — manual route designer */
.manualRouteMode{padding:9px 11px;margin:8px 0 10px;border:1px solid #315a74;background:#10283b;border-radius:9px;color:#b9d7e9;font-size:12px}
.manualRouteMode b{color:#82e6ff}.routeDesignerGrid{display:grid;grid-template-columns:1fr;gap:7px}
.routeActiveBox{margin:10px 0;padding:10px;border:1px solid #725d2d;background:#241d0d;border-radius:9px}
.routeActiveBox>b{color:#ffd166}.routeActiveBox .row{margin-top:8px;gap:6px}.routeHelp{line-height:1.55}.routeHelp b{color:#ffd166}

/* V4.0.0 — Unified Hybrid CAM */
.hybridBadge{display:inline-flex;padding:3px 7px;border-radius:999px;border:1px solid #4c8d68;background:#102a1e;color:#8ff0b7;font-weight:800;font-size:10px}
#elementFramePersistent:checked{accent-color:#55d987}

/* V4.0.1 FAST */
.manualRouteMode b{letter-spacing:.01em}

/* V4.0.2 — SVG tessellation in real millimetres */

/* V4.0.3 — guide highway correction */
#routeSelectedGuideBtn{width:100%;border-color:#7b61ff;background:#35297e;color:#fff}
#routeSelectedGuideBtn:hover{filter:brightness(1.15)}

/* V4.0.4 — Canvas Route Editor */
.routeActiveBox .row{display:grid;grid-template-columns:1fr 1fr}
.routeActiveBox .row:has(#routeSelectedGuideBtn){grid-template-columns:1fr}
#addRoutePointBtn{border-color:#3c8d70;background:#174b39;color:#dfffee}
#mergeRouteSegmentBtn{border-color:#7e4b4b;background:#3b1e22;color:#ffd9dc}
#activeRouteSegment{color:#ffbf47}

/* V4.0.5 — editable collision routes */
#routingInfo b[style*="ff6b6b"]{text-shadow:0 0 8px #ff525266}

/* V4.0.6 — red route direct edit / modifier workflow */
.routeHelp b{white-space:nowrap}

/* V4.1.4 — prawa połowa z canvasem pozostaje widoczna podczas przewijania ustawień */
@media(min-width:1001px){
 .side{position:sticky;top:64px;align-self:start;height:calc(100vh - 64px);overflow:hidden;display:flex;flex-direction:column}
 .side #canvasDock{flex:1;min-height:0}
 .side .canvasWrap{height:100%;min-height:0;display:flex;flex-direction:column}
 .side #preview{flex:1;min-height:0;height:auto}
}
@media(max-width:1000px){.side{position:static;height:auto;overflow:visible;display:block}}

/* V4.2.0 — kolejność elementów i symulacja */
.card.sequence{border-top:3px solid #8b7cff}.sequenceHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.sequenceHeader h2{margin-bottom:4px}.sequenceModeBadge{flex:0 0 auto;padding:5px 10px;border-radius:999px;border:1px solid #3e6f99;background:#102b43;color:#8fd2ff;font-size:11px;font-weight:900}.sequenceModeBadge.manual{border-color:#9b7727;background:#382a0d;color:#ffd166}.sequenceActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.sequenceEmpty{padding:18px;border:1px dashed #36516c;border-radius:11px;color:#91a9bf;text-align:center}.sequenceList{display:grid;gap:7px;max-height:52vh;overflow:auto;padding-right:3px}.sequenceItem{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:9px;align-items:center;padding:9px;border:1px solid #29455f;border-radius:10px;background:#091827;cursor:grab;transition:border-color .12s ease,background .12s ease,transform .12s ease}.sequenceItem:active{cursor:grabbing}.sequenceItem.dragging{opacity:.45}.sequenceItem.dragOver{border-color:#8b7cff;background:#171b39}.sequenceItem.selected{border-color:#ffbf47;background:#2a220f}.sequenceTransition{border-style:dashed;border-color:#4d6682;background:#0d1926;margin-bottom:-3px}.sequenceTransition .sequenceInfo b{color:#9fc6e8;font-size:12px;letter-spacing:.025em}.sequenceTransition .sequenceInfo small{color:#7896af}.sequenceRouteNumber{border-radius:8px;background:#182a3e;border-color:#738296;color:#9fc6e8}.sequenceTransition.selected{border-style:solid;border-color:#ffbf47;background:#28200f}.sequenceTransition.selected .sequenceRouteNumber{background:#7a570b;color:#fff}.sequenceNumber{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#233b58;border:1px solid #4f7296;color:#fff;font-weight:900}.sequenceItem.selected .sequenceNumber{background:#7a570b;border-color:#ffbf47}.sequenceInfo{min-width:0}.sequenceInfo b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sequenceInfo small{display:block;color:#8fa8bf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sequenceItemActions{display:flex;gap:4px}.sequenceItemActions button{width:31px;height:31px;padding:0;border-radius:8px;border:1px solid #3a5570;background:#14273b;color:#dcecff;font-weight:900}.simulationControls{display:grid;grid-template-columns:1fr 1fr 1fr minmax(120px,.8fr);gap:8px;margin:13px 0}.simulationControls label{display:flex;align-items:center;gap:7px;color:#a9bdd0}.simulationControls select{min-width:75px}.simulationSeekWrap{padding:12px;border:1px solid #2b4964;border-radius:11px;background:#081827}.simulationSeekWrap input{padding:0}.simulationMeta{display:flex;justify-content:space-between;gap:10px;margin-top:8px;color:#a9bdd0;font-variant-numeric:tabular-nums}.simulationMeta b{color:#8ff0b7}.simulationLegend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;color:#91a9bf;font-size:12px}.simulationLegend span{display:flex;align-items:center;gap:6px}.simulationLegend i{width:23px;height:4px;border-radius:4px;display:inline-block}.simCut{background:#35b9b5}.simTravel{background:#738296}.simDone{background:#43d17f;box-shadow:0 0 7px #43d17f}.sequenceCanvasLabel{pointer-events:none}@media(max-width:720px){.sequenceActions,.simulationControls{grid-template-columns:1fr 1fr}.simulationControls label{grid-column:1/-1}.simulationMeta{display:grid}.sequenceList{max-height:none}}

/* V4.5.0 — przejścia źródło→cel, ciągły start i responsywne kolumny */
.sequenceList{--sequence-columns:1;grid-template-columns:repeat(var(--sequence-columns),minmax(0,1fr));gap:10px;max-height:none;overflow:visible;padding-right:0;align-items:start}
.sequenceGroup{display:grid;gap:7px;min-width:0;align-content:start;padding:2px 0 7px;border-bottom:1px solid #1f3449}
.sequenceItem:hover,.sequenceItem.hovered{border-color:#ffe06b;background:#2a240f;transform:translateY(-1px);box-shadow:0 0 0 1px #ffe06b33,0 7px 20px #0005}
.sequenceTransition:hover,.sequenceTransition.hovered{border-style:solid;background:#30260d}
.sequenceItemActions [data-route-split]{border-color:#7c6a2d;background:#3a3012;color:#ffe682}
.sequenceSegmentPicker{width:76px;height:31px;padding:4px 5px;border-radius:8px;border-color:#425f7a;background:#0c2031;color:#bfe1ff;font-size:10px;font-weight:800}
@media(max-width:720px){.sequenceList{grid-template-columns:1fr!important}.sequenceGroup{padding-bottom:9px}}

/* V4.6.2 — para „LINIA CIĘCIA + ELEMENT” jako jedna karta listy */
.sequencePair{position:relative;display:grid;gap:6px;padding:8px;border:1px solid #2c4a68;border-radius:13px;background:#0a1a29;cursor:grab}
.sequencePair:active{cursor:grabbing}
.sequencePair.dragging{opacity:.5}
.sequencePair .pairBody{display:grid;gap:6px}
.sequencePair .sequenceItem{cursor:pointer}
.pairHead{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center;padding:2px 2px 6px;border-bottom:1px dashed #2b4864}
.pairNo{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:#17324d;border:1px solid #3d6b9e;color:#dcecff;font-weight:900;font-size:12px}
.pairTitle{min-width:0}
.pairTitle b{display:block;font-size:12px;letter-spacing:.03em;color:#cfe2f5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pairTitle small{display:block;color:#8fa8bf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pairActions{display:flex;gap:4px;align-items:center}
.pairActions button{width:28px;height:28px;padding:0;border-radius:8px;border:1px solid #3a5570;background:#14273b;color:#dcecff;font-weight:900}
.pairGrip{color:#6f8aa5;font-size:15px;padding:0 4px;cursor:grab}
.sequencePair.pairDone{border-color:#3f9a6b;background:#082016}
.sequencePair.pairDone .pairNo{background:#1d6b45;border-color:#4bd88a;color:#eafff2}
.sequencePair.pairDone .pairTitle b{color:#8ff0b7}
.sequencePair.pairNext{border-color:#ffbf47;background:#1d1708;box-shadow:0 0 0 1px #ffbf4733}
.sequencePair.pairNext .pairNo{background:#7a570b;border-color:#ffbf47}
.sequencePair.pairNext .pairTitle b{color:#ffd166}
.sequencePair.pairWaiting{opacity:.72;border-style:dashed}
.sequencePair.pairClosing{border-color:#8b7cff;background:#12122b;cursor:default}
.sequencePair.pairClosing .pairNo{background:#3a2f7a;border-color:#8b7cff}
.sequencePair.pairClosing .pairTitle b{color:#c9c1ff}
/* wstawianie POMIĘDZY pary — nigdy zamiana miejscami */
.sequencePair.dropBefore::before,.sequencePair.dropAfter::after{content:attr(data-drop-label);position:absolute;left:8px;right:8px;height:16px;line-height:16px;text-align:center;font-size:9px;font-weight:900;letter-spacing:.12em;color:#07121f;background:#ffbf47;border-radius:8px}
.sequencePair.dropBefore::before{top:-9px}
.sequencePair.dropAfter::after{bottom:-9px}
/* stan pojedynczych wierszy wewnątrz pary */
.sequenceItem.chainDone{border-color:#3f9a6b;background:#0b2318}
.sequenceItem.chainDone .sequenceNumber{background:#1d6b45;border-color:#4bd88a;color:#eafff2}
.sequenceItem.chainDone .sequenceInfo b{color:#8ff0b7}
.sequenceTransition.chainDone{border-style:solid;border-color:#3f9a6b;background:#0b2318}
.sequenceTransition.chainDone .sequenceRouteNumber{background:#1d6b45;border-color:#4bd88a;color:#eafff2}
.sequenceItem.chainNext{border-color:#ffbf47;background:#241c08;box-shadow:0 0 0 1px #ffbf4744}
.sequenceItem.chainNext .sequenceInfo b{color:#ffd166}
.sequenceItem.chainWaiting{opacity:.6;border-style:dashed}
.sequenceItem.chainWaiting .sequenceInfo b{color:#93a9bd}
.sequenceItemActions button[disabled]{opacity:.35;cursor:not-allowed}
.sequenceActions{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
#chainInfo{line-height:1.55}

/* V4.6.3 — instrukcja na życzenie zamiast opisów na liście */
.helpBtn{background:#132a41;border-color:#38618a;color:#bfe4ff;font-weight:800}
.wcModal.wcModalWide .wcModalCard{width:min(760px,100%);max-height:86vh;overflow:auto}
.helpDoc{color:#c9dbec;line-height:1.6}
.helpDoc h3{margin:16px 0 6px;font-size:14px;color:#8fd2ff;letter-spacing:.02em}
.helpDoc h3:first-child{margin-top:0}
.helpDoc ol,.helpDoc ul{margin:0;padding-left:20px}
.helpDoc li{margin:3px 0}
.helpDoc b{color:#eaf3fb}
.routeHelpShort{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:space-between}
.sequenceHeader{align-items:center}

/* V4.6.4 — szczelina wstawiania pokazuje docelowy numer pozycji */
.sequencePair.pairClosing.dropBefore::before,.sequencePair.pairClosing.dropAfter::after{background:#8b7cff;color:#0b0b1c}
.sequencePair[data-drop-label]{outline:1px dashed #ffbf4766}

/* V4.6.5 — przy wielu kolumnach pasek wstawienia stoi na krawędzi bocznej karty,
   bo lista płynie w poziomie i to lewa/prawa połowa decyduje o pozycji */
.sequenceList:not([data-columns="1"]) .sequencePair.dropBefore::before,
.sequenceList:not([data-columns="1"]) .sequencePair.dropAfter::after{
 top:6px;bottom:6px;left:auto;right:auto;width:20px;height:auto;line-height:20px;
 writing-mode:vertical-rl;text-orientation:mixed;display:grid;place-items:center}
.sequenceList:not([data-columns="1"]) .sequencePair.dropBefore::before{left:-11px}
.sequenceList:not([data-columns="1"]) .sequencePair.dropAfter::after{right:-11px}

/* V4.6.8 — wyjście tą samą trasą co wejście */
#mirrorRouteBtn.active{background:#3a2f7a;border-color:#8b7cff;color:#e7e2ff}
.sequenceItemActions [data-route-mirror]{border-color:#5a4ea8;background:#211f3d;color:#c9bcff}
.sequenceItemActions [data-route-mirror].mirrorOn{background:#3a2f7a;border-color:#b39dff;color:#fff}

/* V4.6.11 — świadoma akceptacja kolizji */
#acceptCollisionBtn.active{background:#7a3d0b;border-color:#ff9f43;color:#ffe6cc}
.sequenceItemActions [data-route-accept]{border-color:#7c5a2d;background:#3a2a12;color:#ffd0a2}
.sequenceItemActions [data-route-accept].acceptOn{background:#7a3d0b;border-color:#ff9f43;color:#fff}
