/* App-specific additions to Pico.css */
.inline-form { display: inline-block; margin: 0; }
.inline-form button, .inline-form select { margin: 0; padding: 0.25rem 0.75rem; width: auto; }
.narrow { max-width: 28rem; margin-inline: auto; }
.error { color: var(--pico-del-color); }
.warning { border-left: 4px solid #d9a400; padding-left: 0.75rem; }
.message.warning, article.warning { background: rgba(217, 164, 0, 0.08); }
.message.error { border-left: 4px solid var(--pico-del-color); padding-left: 0.75rem; }
.message.success { border-left: 4px solid var(--pico-ins-color); padding-left: 0.75rem; }
.heading-row { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; justify-content: space-between; }
.actions { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.actions > *, .actions button { margin-bottom: 0; }
.filters { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.filters > * { flex: 1 1 10rem; margin-bottom: 0.5rem; }
.filters button { flex: 0 0 auto; }
button.danger, a.danger[role=button] { background: #b3261e; border-color: #b3261e; }
a.danger.outline[role=button] { background: transparent; color: #b3261e; }
a.danger:not([role]) { color: #b3261e; }
table.formset input, table.formset select { margin-bottom: 0; min-width: 7rem; }
.badge { display: inline-block; padding: 0 0.4rem; margin: 0 0.15rem 0.15rem 0; border-radius: 0.25rem; font-size: 0.8em; background: #e3e7eb; color: #222; white-space: nowrap; }
.badge.status-label_printed { background: #cfe2ff; }
.badge.status-result_submitted { background: #fff3cd; }
.badge.status-result_approved { background: #d1e7dd; }
.counters article { text-align: center; margin-bottom: 0.5rem; padding: 0.5rem; }
.counters strong { font-size: 1.4em; }
.badge.import-new { background: #d1e7dd; }
.badge.import-changed { background: #cfe2ff; }
.badge.import-uncertain { background: #fff3cd; }
.badge.import-error { background: #f8d7da; }
.badge.import-skipped { background: #e9ecef; color: #555; }
table.raw td, table.raw th { font-size: 0.8em; padding: 0.2rem 0.4rem; white-space: nowrap; }
table.raw tr.header-row td { font-weight: bold; background: rgba(13, 110, 253, 0.08); }
.steps ul { flex-wrap: wrap; }
img.label-large { width: 100%; max-width: 48rem; image-rendering: pixelated; border: 1px solid #ccc; border-radius: 0.5rem; }
img.label-original { width: 54mm; height: 17mm; image-rendering: pixelated; border: 1px dashed #aaa; border-radius: 1mm; vertical-align: middle; }
.agent-status.online { color: var(--pico-ins-color); font-weight: bold; }
.agent-status.offline { color: #b3261e; font-weight: bold; }
.badge.job-waiting { background: #fff3cd; }
.badge.job-in_progress { background: #cfe2ff; }
.badge.job-printed { background: #d1e7dd; }
.badge.job-error { background: #f8d7da; }
label.checkbox { display: flex; align-items: center; gap: 0.4rem; }
.scan-form input { margin: 0; padding: 0.2rem 0.6rem; height: auto; min-width: 11rem; font-size: 0.9em; }
.public-main { max-width: 36rem; padding-top: 1rem; }
.entry-info dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.2rem 0.8rem; margin: 0; }
.entry-info dd { margin: 0; }
.series-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(6.5rem, 1fr)); gap: 0 0.5rem; }
.result-total { font-size: 1.6em; font-weight: bold; margin: 0; }
.result-summary { display: grid; grid-template-columns: max-content 1fr; gap: 0.2rem 0.8rem; }
.result-summary dd { margin: 0; }
img.sheet-photo { max-width: 100%; max-height: 70vh; border: 1px solid #ccc; border-radius: 0.4rem; }
img.sheet-thumb { max-width: 5rem; max-height: 5rem; }
.receipt-number { font-family: monospace; font-size: 1.3em; letter-spacing: 0.1em; }
.review-grid { display: grid; grid-template-columns: minmax(16rem, 1fr) minmax(16rem, 1fr); gap: 1rem; }
@media (max-width: 768px) { .review-grid { grid-template-columns: 1fr; } }
.review-item:focus { outline: 3px solid var(--pico-primary); }
article.flagged, .review-item.flagged { border-left: 6px solid #d9a400; }
tr.current-version { font-weight: bold; }
.reject-form input, .reject-form textarea { margin-bottom: 0; }
th.num, td.num { text-align: right; white-space: nowrap; }
tr.note-row td { color: #666; }
table.ranking td, table.ranking th { padding: 0.3rem 0.5rem; }
.round-nav ul { flex-wrap: wrap; }
.competition-list li { margin-bottom: 0.4rem; }
