/* Workshop QR tracker + material traceability */
.page-actions-row { margin: -0.2rem 0 1rem; }
.form-grid .span-2 { grid-column: span 1; }
@media (min-width: 700px) { .form-grid .span-2 { grid-column: span 2; } }
.dot-inline { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 0.5rem; vertical-align: 0.05em; }
.center { text-align: center; }

/* assemblies table */
.asm-table .sel { width: 36px; }
.asm-table input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--blue-400); }
.asm-table .sub { display: block; }
@media (max-width: 699px) {
    .tbl.stack.asm-table tr { position: relative; padding-left: 2.4rem; }
    .tbl.stack.asm-table td.sel { position: absolute; left: 0.2rem; top: 0.8rem; width: auto; padding: 0; }
    .tbl.stack.asm-table td:nth-child(2) { font-size: 1.05rem; }
}
.label-actions { margin-top: 0.8rem; }
.label-actions .check { min-height: 40px; }
.rules-list, .skipped-list { margin: 0.8rem 0 0 1.1rem; display: grid; gap: 0.3rem; }

/* progress */
.asm-progress { display: grid; gap: 0.6rem; }
.asm-progress.is-compact { gap: 0.45rem; }
.asm-progress.is-compact .progress-row { font-size: 0.8rem; }
.list-item .meter { margin-top: 0.35rem; }

/* QR item page (phone first) */
.page-asm .main { max-width: 680px; }
.asm-head { margin-bottom: 0.9rem; }
.asm-head .eyebrow a { color: var(--arc); }
.asm-mark { font: 600 clamp(2.4rem, 12vw, 3.4rem)/1 var(--display); letter-spacing: 0.02em; color: #fff; margin: 0.15rem 0 0.4rem; }
.asm-sub { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; color: var(--text-2); font-size: 0.92rem; }
.asm-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; margin-bottom: 0.9rem; }
.asm-facts div { padding: 0.6rem 0.75rem; border-radius: var(--radius-sm); background: var(--surface); border: 1px solid var(--line); min-width: 0; }
.asm-facts dt { font-size: 0.72rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; }
.asm-facts dd { font-weight: 600; font-size: 1.02rem; overflow-wrap: anywhere; }
@media (min-width: 700px) { .asm-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.asm-next { min-height: 72px; font-size: 1.2rem; }
.asm-next svg { width: 24px; height: 24px; stroke-width: 2.6; }
.big-action p { margin-top: 0.1rem; }
.timeline li.is-undone { opacity: 0.55; text-decoration: line-through; }
.timeline li.is-undone::before { background: var(--muted); }
.scan-hint { display: flex; gap: 0.5rem; align-items: center; margin-top: 0.8rem; }
.scan-hint svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--arc); }

/* material linking */
.link-grid { display: grid; gap: 0.3rem 1rem; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.link-item { padding: 0.25rem 0.5rem; border-radius: 8px; border: 1px solid var(--line); background: var(--surface-2); }
.link-item:has(input:checked) { border-color: rgba(95, 211, 154, 0.5); }
.steps-today { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.steps-today .stat { padding: 0.7rem 0.8rem; }
@media (min-width: 1100px) { .steps-today { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
