/* CNC calculator (solid polycarbonate) — on top of styles.css */
:root {
  --band-fill: #faeeda;
  --band-stroke: #ba7517;
  --band-text: #633806;
}

.cnc-pieces.piece-head, .cnc-pieces .piece-row { grid-template-columns: 30px minmax(0, 1fr) minmax(0, 1fr) 118px 40px; }
.mill { display: flex; gap: 8px; align-items: center; }
.mill input { width: 90px; }
.field-clamp { flex: 1 1 160px; max-width: 240px; }
.edges { margin-top: 10px; font-size: 14px; }
.edges summary { cursor: pointer; color: var(--text-2); }
.edges .grid-3 { margin-top: 8px; }

/* drawing */
.c-area { cursor: pointer; }
.c-piece { cursor: grab; touch-action: none; }
.c-piece:hover .s-piece { stroke-width: 2.2; }
.c-dragging { cursor: grabbing; opacity: .75; }
.c-nofit .s-piece { fill: var(--danger-bg); stroke: var(--danger); }
.c-ghost { fill: none; stroke: var(--piece-stroke); stroke-width: 2; stroke-dasharray: 6 4; pointer-events: none; }
.c-area-r { stroke-width: 1; }
.c-shop .c-area-r { fill: var(--left-fill); stroke: var(--left-stroke); stroke-dasharray: 4 3; }
.c-band .c-area-r { fill: var(--band-fill); stroke: var(--band-stroke); }
.c-area:hover .c-area-r { stroke: var(--accent); stroke-width: 2; stroke-dasharray: none; }
.c-dim-p { stroke: var(--piece-stroke); stroke-width: 1.3; pointer-events: none; }
.c-dim-a { stroke: var(--text-3); stroke-width: 1.1; pointer-events: none; }
.c-dim-b { stroke: var(--warn); stroke-width: 1.1; pointer-events: none; }
.s-dim-sm { font-size: 13px; font-weight: 600; fill: var(--piece-text); }
.c-band-t { font-size: 12px; font-weight: 600; fill: var(--band-text); }
.c-origin { fill: var(--text); }
.c-edge { stroke: var(--text-2); stroke-width: 1; stroke-dasharray: 6 4; pointer-events: none; }
.c-edge-t { font-size: 12px; font-weight: 600; fill: var(--text-2); }
.legend i.box-clamp { background: repeating-linear-gradient(45deg, #e6b8b8 0 2px, transparent 2px 5px); border-color: var(--danger); }

.card-drawing { position: relative; }
.c-tip {
  position: absolute; z-index: 5; pointer-events: none;
  background: var(--text); color: #fff; border-radius: 6px; padding: 6px 10px; font-size: 13px; line-height: 1.35;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .2);
}
.c-tip b { display: block; font-weight: 600; white-space: nowrap; }
.c-tip span { display: block; opacity: .75; font-size: 12px; }
@media print { .c-tip { display: none !important; } }

/* coordinates */
.c-table { width: 100%; border-collapse: collapse; font-size: 15px; font-variant-numeric: tabular-nums; }
.c-table th { text-align: left; font-size: 13px; font-weight: 500; color: var(--text-2); padding: 4px 6px; border-bottom: 1px solid var(--border); }
.c-table td { padding: 6px; border-bottom: 1px solid var(--border); }
.c-table .r { text-align: right; }
.c-row-band td { color: var(--band-text); background: var(--band-fill); }

@media (max-width: 700px) {
  .cnc-pieces.piece-head { grid-template-columns: 28px minmax(0, 1fr) minmax(0, 1fr) 40px; }
  .cnc-pieces.piece-head span:nth-child(4) { display: none; }
  .cnc-pieces .piece-row { grid-template-columns: 28px minmax(0, 1fr) minmax(0, 1fr) 40px; }
  .cnc-pieces .piece-row .qty { grid-column: 2 / 4; grid-row: 2; }
  .field-clamp { max-width: none; }
}

@media print {
  .c-shop .c-area-r, .c-band .c-area-r, .legend i { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .c-table { font-size: 12px; }
  .c-table td { padding: 2px 6px; }
}
