/* Shared readable typography for collector, operator and QC cabinets. */
body { font-size: 16px; line-height: 1.5; }
body .nav-item { font-size: 14px; min-height: 44px; }
body .role-card strong, body .profile strong { font-size: 15px; }
body .role-card span, body .profile span { font-size: 13px; }
body .card-header h2 { font-size: 22px; line-height: 1.3; }
body .card-header p, body .helper, body .form-field > small { font-size: 14px; line-height: 1.55; }
body .form-field > span { font-size: 16px; }
body input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), body textarea, body select { font-size: 16px; line-height: 1.5; }
body .button, body .button.small { font-size: 14px; min-height: 40px; white-space: normal; line-height: 1.4; }
body .badge, body .role-badge, body .qc-income-type { font-size: 12px; line-height: 1.4; }
body .role-history-chip { font-size: 12px; }
body .tier i { font-size: 11px; }
body .qc-order-number { font-size: 14px; }
body .stat-note, body .rule-row span, body .rule-row small { font-size: 14px; line-height: 1.5; }
body .data-table { font-size: 15px; }
body .data-table th { font-size: 12px; letter-spacing: .055em; }
body .data-table td { font-size: 15px; line-height: 1.5; padding-top: 17px; padding-bottom: 17px; }
body .data-table td small, body .data-table td .muted, body .data-table td .calculation-note { font-size: 13px; line-height: 1.5; }
body .data-table td .salary-day-formula { font-size: 14px; line-height: 1.5; }
body .role-history-summary > div:first-child strong { font-size: 16px; }
body .role-history-summary > div:first-child span, body .role-history-summary__items small { font-size: 13px; }
body .role-history-summary__items b { font-size: 16px; }
body .role-history-summary__items .badge { font-size: 12px; }
body .tier-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
body .tier { min-width: 0; padding: 16px 14px; }
body .tier > span { font-size: 14px; line-height: 1.4; }
body .tier > strong { font-size: 21px; line-height: 1.4; margin-top: 7px; }
body .tier::before, body .tier::after { font-size: 11px; }
body .formula-box > span, body .info-line, body .notice, body .rule-item { font-size: 14px; line-height: 1.5; }
body .formula-box strong { font-size: 17px; }
body .stat-card small, body .stat-card p, body .stat-label { font-size: 14px; }
body .qc-unified-card p, body .qc-unified-card small, body .qc-unified-card .actions > span { font-size: 14px; line-height: 1.55; }
body .qc-unified-card .form-field > span { font-size: 16px; }
body .qc-unified-section__head h3 { font-size: 23px; }
body .qc-unified-section__head > div > span { font-size: 13px; }
body .qc-order-upload__copy strong, body .qc-order-file-preview strong { font-size: 16px; line-height: 1.5; }
body .qc-order-upload__copy small, body .qc-order-file-preview span { font-size: 14px; line-height: 1.5; }
body .qc-order-calculation > div > span, body .qc-daily-breakdown > div > span,
body .salary-part > span, body .qc-income-totals span, body .qc-direct-order-preview > span { font-size: 14px; line-height: 1.5; }
body .qc-order-calculation > div > strong, body .qc-daily-breakdown > div > strong,
body .salary-part > strong, body .qc-direct-order-preview > strong { font-size: 22px; line-height: 1.4; }
body .qc-order-calculation > div, body .qc-daily-breakdown > div { min-width: 0; padding: 16px; }
body .qc-order-form-actions { flex-wrap: wrap; gap: 16px; }
body .qc-order-form-actions > span { flex: 1 1 250px; }
body .qc-direct-order-comment textarea { min-height: 100px; }
body .qc-orders-table .qc-order-comment, body .qc-orders-table .qc-order-comment-empty { font-size: 14px; }
body .qc-order-evidence { font-size: 14px; padding: 8px 12px; }
/* Daily QC totals use qc-daily-formula, not the sales preview classes. */
body .qc-daily-report__head > div > span { font-size: 14px; line-height: 1.5; }
body .qc-daily-report__head > div > strong { font-size: 22px; line-height: 1.4; }
body .qc-daily-report__head > div > small { font-size: 15px; line-height: 1.55; color: #b8bcc7; }
body .qc-daily-formula > div { padding: 16px; min-width: 0; }
body .qc-daily-formula span { font-size: 15px; line-height: 1.5; color: #b8bcc7; }
body .qc-daily-formula strong { font-size: 22px; line-height: 1.4; }
body .qc-daily-formula small { font-size: 14px; line-height: 1.55; color: #b8bcc7; }
body .qc-daily-alert > div { min-width: 0; }
body .qc-daily-alert > div > strong { display: block; font-size: 16px; line-height: 1.5; }
body .qc-daily-alert > div > span { display: block; font-size: 15px; line-height: 1.55; color: #b8bcc7; }
body .qc-daily-report__actions > span, body .qc-shift-actions > span { font-size: 14px; line-height: 1.55; }
body .qc-daily-compare .compare-cell span { font-size: 14px; line-height: 1.5; }
body .qc-daily-compare .compare-cell strong { font-size: 20px; line-height: 1.4; }
body .qc-total span { font-size: 15px; line-height: 1.5; }
body .qc-total small { font-size: 14px; line-height: 1.55; color: #c3bd91; }
body .qc-order-shift-control > div span, body .qc-order-shift-control > div small,
body .qc-order-report-control > div span, body .qc-order-report-control > div small { font-size: 14px; line-height: 1.55; }
body .qc-order-shift-control > div strong, body .qc-order-report-control > div strong { font-size: 16px; line-height: 1.5; }
body .qc-order-comment-details summary b { font-size: 14px; }
.qc-section-links { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; }
.qc-section-links a { flex: 1 1 160px; padding: 12px 16px; border: 1px solid #4b4520; border-radius: 10px; background: #ffe12f0c; color: #ffe12f; font-size: 16px; font-weight: 700; text-align: center; text-decoration: none; }
.qc-section-links a:hover { background: #ffe12f20; }
.qc-section-links a:focus-visible { outline: 2px solid #ffe12f; outline-offset: 3px; }
.qc-unified-section { scroll-margin-top: calc(var(--local-preview-height, 0px) + 145px); }
.qc-screenshot-zone { margin: 20px 0; border-radius: 12px; }
.qc-screenshot-zone:focus-visible, .qc-screenshot-zone:focus-within { outline: 2px solid #ffe12f; outline-offset: 5px; }
.qc-clipboard-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-top: 12px; color: #b8bcc7; font-size: 14px; }
.qc-clipboard-actions > span { flex: 1 1 260px; }
.qc-clipboard-actions kbd { padding: 3px 6px; border: 1px solid #50545f; border-radius: 4px; color: #fff; font-size: 13px; }
@media (min-width: 1700px) { body .tier-track { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (max-width: 1000px) {
  body .qc-unified-section__head { align-items: flex-start; flex-wrap: wrap; gap: 12px; }
  body .qc-order-calculation, body .qc-daily-breakdown { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
  body .qc-order-calculation > i, body .qc-daily-breakdown > i { display: none; }
  body .qc-daily-formula { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  body .qc-daily-formula > i { display: none; }
}
@media (max-width: 760px) {
  body .tier-track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .role-history-summary { align-items: flex-start; flex-direction: column; }
  body .role-history-summary__items { justify-content: flex-start; }
  body .form-grid, body .qc-order-fields { grid-template-columns: minmax(0, 1fr); }
  body .form-field.full { grid-column: 1; }
  body .qc-order-upload { display: flex; flex-wrap: wrap; gap: 12px; }
  body .qc-order-upload__copy { flex: 1 1 160px; min-width: 0; }
  body .qc-order-upload .button { width: 100%; }
  body .qc-order-file-preview { flex-wrap: wrap; }
  body .qc-order-file-preview > div { flex: 1 1 120px; min-width: 0; overflow-wrap: anywhere; }
  body .qc-order-form-actions > .button, .qc-clipboard-actions > .button { width: 100%; }
  body .qc-unified-section__head h3 { font-size: 21px; }
  body .qc-unified-body { padding: 14px; }
  .qc-section-links a { flex-basis: 100%; }
}
/* Attendance is deliberately prominent: source profit alone is not a shift. */
.operator-shift-confirmation { display: grid; gap: 14px; margin: 22px 0; padding: 20px; border: 1px solid #82731d; border-radius: 14px; font-size: 16px; line-height: 1.5; }
.operator-shift-confirmation strong { font-size: 20px; }
.operator-shift-confirmation p, .operator-shift-confirmation span { font-size: 15px; line-height: 1.5; }
.operator-shift-confirmation .button { justify-self: start; min-height: 46px; font-size: 16px; }
.operator-shift-confirmation input { min-height: 44px; font-size: 16px; color-scheme: dark; background: #101216; color: #fff; border: 1px solid #444; border-radius: 8px; padding: 10px; }

/* Screenshot journal search stays outside the table's scroll area. */
.collector-journal-search { display: flex; align-items: end; flex-wrap: wrap; gap: 12px; padding: 18px 20px; background: #17191d; border: 1px solid #303238; border-radius: 12px; }
.collector-journal-search .form-field { flex: 1 1 260px; min-width: 0; margin: 0; }
.collector-journal-search input { width: 100%; min-height: 44px; padding: 10px 12px; background: #111318; color: #fff; border: 1px solid #42444a; border-radius: 8px; font: inherit; box-sizing: border-box; }
.collector-journal-search input:focus { outline: 2px solid #ffe32a; outline-offset: 2px; }
.collector-journal-search > .helper { flex-basis: 100%; margin: 0; overflow-wrap: anywhere; }
.collector-journal-search [hidden] { display: none; }
@media (max-width: 600px) { .collector-journal-search { padding: 14px; gap: 10px; } .collector-journal-search .form-field { flex-basis: 100%; } }
