/* CNC kresba diela: priehľadné pozadie, grid, pravítko a kontúry riadené premennými --zk-cnc-*. */
/* Pomer = viewBox kresby (525 × 666.5): obrázok sa začína vrchom čísel pravítka a končí spodkom stola. */
.zk-cnc{position:relative;width:100%;aspect-ratio:525/666.5}
.zk-ex-image>.zk-cnc,.zk-mi-image>.zk-cnc{position:absolute;inset:0;aspect-ratio:auto}
:is(.zk-ex-reference>.zk-ex-image,.zk-mi-reference>.zk-mi-image):has(>.zk-cnc){aspect-ratio:525/666.5}
.zk-cnc>svg{display:block;width:100%;height:100%;overflow:visible}
.zk-cnc path{vector-effect:non-scaling-stroke}
.zk-cnc .zk-cnc-minor{stroke:var(--zk-cnc-minor-color);stroke-opacity:var(--zk-cnc-minor-alpha);stroke-width:var(--zk-cnc-minor-width)}
.zk-cnc .zk-cnc-major{stroke:var(--zk-cnc-major-color);stroke-opacity:var(--zk-cnc-major-alpha);stroke-width:var(--zk-cnc-major-width)}
.zk-cnc .zk-cnc-tick{stroke:var(--zk-cnc-ruler-color);stroke-opacity:var(--zk-cnc-ruler-alpha);stroke-width:var(--zk-cnc-ruler-width)}
.zk-cnc .zk-cnc-cut{stroke:var(--zk-cnc-color);stroke-width:var(--zk-cnc-width);stroke-linejoin:miter;transform-box:view-box;transform-origin:271.33px 358.67px;transform:rotate(var(--zk-cnc-rotate))}
.zk-cnc text{font:9px ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;fill:var(--zk-cnc-ruler-color);fill-opacity:var(--zk-cnc-ruler-alpha);letter-spacing:.04em}
.zk-cnc .zk-cnc-origin{fill:var(--zk-cnc-color);fill-opacity:1}
/* Animované vykreslenie (draw.js): pred štartom skryté, počas kreslenia hrúbky v jednotkách SVG. */
.zk-cnc-armed>svg{visibility:hidden}
.zk-cnc-drawing path{vector-effect:none}
.zk-cnc-drawing .zk-cnc-minor{stroke-width:calc(var(--zk-cnc-minor-width)*var(--zk-cnc-unit))}
.zk-cnc-drawing .zk-cnc-major{stroke-width:calc(var(--zk-cnc-major-width)*var(--zk-cnc-unit))}
.zk-cnc-drawing .zk-cnc-tick{stroke-width:calc(var(--zk-cnc-ruler-width)*var(--zk-cnc-unit))}
.zk-cnc-drawing .zk-cnc-cut{stroke-width:calc(var(--zk-cnc-width)*var(--zk-cnc-unit))}
/* Dočasné okno nástrojov — zmizne s option zk_cnc_trial. Otvára ho klik na nulu v hornom pravítku. */
.zk-cnc-trial{position:fixed;right:16px;bottom:16px;z-index:1000;width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-sizing:border-box;background:#0f0f0f;color:#ccc;border:1px solid #666;border-radius:4px;box-shadow:0 12px 40px rgba(0,0,0,.5);font:12px/1.4 ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace}
.zk-cnc-trial[hidden]{display:none}
.zk-cnc-trial-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-bottom:1px solid #444;cursor:move;touch-action:none;user-select:none}
.zk-cnc-trial-body{padding:12px 10px 4px;overflow-y:auto;overscroll-behavior:contain}
.zk-cnc-trial fieldset{margin:0 0 12px;padding:8px 10px 2px;border:1px solid rgba(204,204,204,.3);border-radius:3px;min-width:0}
.zk-cnc-trial legend{padding:0 6px;opacity:.7}
.zk-cnc-trial-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:8px}
.zk-cnc-trial-label{opacity:.6;margin-left:8px}
.zk-cnc-trial button,.zk-cnc-trial-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid currentColor;border-radius:3px;background:none;color:inherit;font:inherit;cursor:pointer;opacity:.65}
.zk-cnc-trial button:hover,.zk-cnc-trial-chip:hover{opacity:1}
.zk-cnc-trial button[aria-pressed=true]{opacity:1;background:#ccc;border-color:#ccc;color:#0f0f0f}
.zk-cnc-trial-chip{opacity:1}
.zk-cnc-trial i{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 1px #0f0f0f}
.zk-cnc-trial input[type=color]{width:22px;height:16px;padding:0;border:0;background:none;cursor:pointer}
.zk-cnc-trial-range{display:inline-flex;align-items:center;gap:6px}
.zk-cnc-trial input[type=range]{width:110px;accent-color:#ccc;cursor:pointer}
.zk-cnc-trial output{min-width:5.5ch;opacity:.8}
.zk-cnc-trial-value{margin:0;opacity:.8;user-select:all;overflow-wrap:anywhere}
/* Dočasná úprava kompozície (edit.js). */
.zk-cnc .zk-cnc-hit{fill:transparent;stroke:none;pointer-events:none;vector-effect:non-scaling-stroke}
.zk-cnc-editing .zk-cnc-hit{pointer-events:all;cursor:move}
.zk-cnc-editing .zk-cnc-obj{touch-action:none}
.zk-cnc-editing .zk-cnc-obj:hover>.zk-cnc-hit{stroke:#fff;stroke-opacity:.35;stroke-width:1px}
.zk-cnc-editing .zk-cnc-obj.is-selected>.zk-cnc-hit{stroke:#fff;stroke-opacity:.9;stroke-width:1px;stroke-dasharray:4 3}
.zk-cnc-trial button:disabled{opacity:.3;cursor:default}
.zk-cnc-trial-hint{margin:0 0 8px;opacity:.6}
.zk-cnc-edit-status{margin:0 0 8px}
/* Variant bez pravítok: obrázok = stôl 500 × 650 mm, grid cez masku slabne od stredu ku krajom (na kraji 20 %). */
.zk-cnc.zk-cnc-fade{aspect-ratio:500/650}
:is(.zk-ex-reference>.zk-ex-image,.zk-mi-reference>.zk-mi-image):has(>.zk-cnc-fade){aspect-ratio:500/650}
.zk-cnc-fade :is(.zk-cnc-tick,.zk-cnc-ruler,.zk-cnc-origin){display:none}
.zk-cnc-fade :is(.zk-cnc-minor,.zk-cnc-major){mask:url(#zk-cnc-fade)}
/* Published composition is applied by edit.js; hide the drawing until then so the source layout never flashes. */
.zk-cnc-pending .zk-cnc-cut{visibility:hidden}
