input, select, button { min-height: 48px; }
.print-instruction { display: none; }
.workspace-nav { display: flex; flex-wrap: wrap; gap: 1rem; }
.table-scroll { max-width: 100%; overflow: auto; scrollbar-color: var(--muted) var(--canvas); }
.table-scroll table { width: 100%; }
th, td { padding: .7rem; text-align: left; border-bottom: 1px solid var(--line); }
td { font-variant-numeric: tabular-nums; }
.pick { display: flex; align-items: center; min-height: 48px; min-width: 48px; }
.pick input { width: 1.3rem; min-height: 1.3rem; accent-color: var(--accent); }
#print-panel { margin-top: 2rem; }
.labels { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1rem; }
#position-info { white-space: pre-line; }
#detail table { min-width: 38rem; }
.position-label { background: white; color: black; border: 1px solid var(--line); padding: 1rem; break-inside: avoid; overflow-wrap: anywhere; }
.position-label img { display: block; width: 32mm; height: 32mm; margin: .4rem auto; image-rendering: pixelated; }
.position-label h3 { font-size: 1.25rem; margin: .3rem 0; }
.position-label p { margin: .25rem 0; font-size: .875rem; }
.position-label .label-link { font-size: .7rem; }
@page { size: A4 portrait; margin: 10mm; }
@media print {
  body { background: white; }
  body > :not(main), main > :not(#workspace), #workspace > :not(#print-panel), .print-controls { display: none !important; }
  main { padding: 0; margin: 0; max-width: none; }
  #print-panel { margin: 0; }
  .labels { display: block; }
  .label-row { display: flex; gap: 3mm; break-inside: avoid; margin-bottom: 3mm; }
  .position-label { width: 60mm; flex: 0 0 60mm; padding: 3mm; border: .2mm solid #777; }
  .position-label h3 { font-size: 12pt; }
  .position-label p { font-size: 9pt; }
  .position-label .label-link { font-size: 6pt; }
  body:not(.print-ready) main { display: none !important; }
  body:not(.print-ready) > .print-instruction { display: block !important; margin: 0; color: black; }
}
.label-row { display: contents; }
@media print { .label-row { display: flex; } }
@media (max-width: 640px) { .topbar { flex-wrap: wrap; } .labels { grid-template-columns: 1fr; } }
