/* ——— Карты раскроя с перетаскиванием (ui/sheet-nest.js, SKNest.view) ———
   Листы сеткой: на широком экране два в ряд, на узком — один. Деталь
   перетаскивается мышью и пальцем: у неё touch-action: none, у пустого листа —
   обычная прокрутка страницы. */
.sk-nest-card { margin-top: 18px; padding: 0 0 18px; }
.sk-nest-card[hidden] { display: none; }
.sk-nest { padding: 0 26px; }
.sk-nest__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
	margin: 0 0 12px;
}
.sk-nest__hint { flex: 1 1 320px; font-size: 13px; line-height: 1.4; color: var(--sk-muted); }
.sk-nest__btns { display: flex; flex-wrap: wrap; gap: 8px; }
.sk-nest__btns .sk-btn[disabled] { opacity: .45; cursor: default; }
.sk-nest__grid {
	display: grid;
	grid-template-columns: repeat(var(--sk-nest-cols, 1), minmax(0, 1fr));
	gap: 18px 16px;
	align-items: start;
}
.sk-nest__sheet { margin: 0; min-width: 0; }
.sk-nest__sheet--new { display: none; }
.sk-nest.is-drag .sk-nest__sheet--new { display: block; }
.sk-nest__cap { margin: 0 0 4px; font-size: 13px; line-height: 1.35; color: var(--sk-muted); }
.sk-nest__cap b { color: var(--sk-ink); font-weight: 700; }
.sk-nest__warn { color: var(--sk-bad); }
.sk-nest__svg { display: block; width: 100%; height: auto; overflow: visible; user-select: none; -webkit-user-select: none; }
.sk-nest__svg text {
	font-family: 'OpenGost Type B', 'OpenGost Type A', 'PT Sans Narrow', 'Arial Narrow', Arial, sans-serif;
	text-anchor: middle;
	pointer-events: none;
}
.sk-nest__trim { fill: var(--sk-line-2); }
.sk-nest__field { fill: var(--sk-paper); }
.sk-nest__hl { stroke: var(--sk-line); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.sk-nest__edge { fill: none; stroke: var(--sk-ink-soft); stroke-width: 1.5px; vector-effect: non-scaling-stroke; pointer-events: none; }
.sk-nest__dim { stroke: var(--sk-muted); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.sk-nest__dt { fill: var(--sk-ink-soft); }
.sk-nest__new { fill: var(--sk-muted-2); }
.sk-nest__sheet--new .sk-nest__field { fill: var(--sk-wash); }
.sk-nest__off rect {
	fill: var(--sk-ok-bg);
	stroke: var(--sk-ok);
	stroke-width: 1px;
	stroke-dasharray: 5 3;
	vector-effect: non-scaling-stroke;
}
.sk-nest__off text { fill: var(--sk-ok); }
.sk-nest__part { cursor: grab; touch-action: none; }
.sk-nest__pr { stroke: var(--sk-ink-soft); stroke-width: 1px; vector-effect: non-scaling-stroke; }
.sk-nest__pm { fill: var(--sk-ink); font-weight: 700; }
.sk-nest__ps { fill: var(--sk-ink-soft); }
.sk-nest__part:hover .sk-nest__pr { stroke: var(--sk-hot); stroke-width: 2px; }
.sk-nest__part.is-sel .sk-nest__pr { stroke: var(--sk-hot); stroke-width: 2.5px; }
.sk-nest__part.is-lift { opacity: .3; }
.sk-nest.is-drag, .sk-nest.is-drag .sk-nest__part { cursor: grabbing; }
.sk-nest__ghost { pointer-events: none; opacity: .9; }
.sk-nest__ghost .sk-nest__pr { stroke: var(--sk-hot); stroke-width: 2px; }
.sk-nest__ghost.is-bad .sk-nest__pr { fill: var(--sk-bad-bg); stroke: var(--sk-bad); stroke-width: 2px; }
.sk-nest__part.is-back .sk-nest__pr { animation: sk-nest-back .7s ease-out; }
@keyframes sk-nest-back {
	0%, 40% { fill: var(--sk-bad-bg); stroke: var(--sk-bad); stroke-width: 2.5px; }
}
@media screen and (max-width: 760px) {
	.sk-nest-card { margin: 12px 8px 0; padding-bottom: 12px; }
	.sk-nest { padding: 0 10px; }
}
/* на бумаге и в PDF — только карты */
@media print { .sk-nest__bar, .sk-nest__sheet--new { display: none !important; } }
.sk-capture .sk-nest__bar, .sk-capture .sk-nest__sheet--new { display: none !important; }
