/* WCAG AA, mobile layout, and report metadata fixes */
.nav-cta, .btn-primary, .v4-button, .hero-actions .btn-primary {
  color: #fff !important;
  background: linear-gradient(135deg, #075985, #1e40af) !important;
  border-color: #075985 !important;
}
.brand-mark {
  color: #fff !important;
  background: linear-gradient(145deg, #075985 0%, #1e3a8a 55%, #4c1d95 100%) !important;
}
.brand-qr { color: #fff !important; }
#home .eyebrow, #home .hero .eyebrow { color: #fff !important; }
#home .trust-row, #home .trust-row div { color: #dbeafe !important; }
#home .trust-row .trust-icon { color: #c7f9e5 !important; }
.stats-strip { margin-top: 0 !important; }
html[data-theme="dark"] .stats-strip span { color: #c2d0e0 !important; }
html[data-theme="light"] .stats-strip span { color: #526177 !important; }
.site-header { background-color: #07101f; }
html[data-theme="light"] .site-header { background-color: #f8fcff; }
.footer-note { color: #b8c7da !important; }
html[data-theme="light"] .footer-note { color: #43566f !important; }
.qrv3-grid { margin: 0; }
.qrv3-field dt, .qrv3-field dd { margin: 0; }
.qrv3-field .qrv3-label { color: #526177 !important; }
.qrv3-value { color: #10243d !important; }
html[data-theme="dark"] .qrv3-field .qrv3-label { color: #cbd5e1 !important; }
html[data-theme="dark"] .qrv3-value { color: #edf5ff !important; }
.risk-score-wrap span, .risk-score-wrap small { color: #334155 !important; }
.file-preview-info strong { color: #17263c !important; }
.file-preview-info span { color: #145c4b !important; }
.icon-btn { color: #26364a !important; }
#removeFileBtn, button[aria-label="×"] { color: #26364a !important; }
.technical-details summary { color: var(--ink, #10243d) !important; background: var(--surface-soft, #f3f6fa); }
.result-disclaimer { color: #39485c !important; }
.privacy-note p { color: #334155 !important; }
.privacy-note .privacy-note-icon, .privacy-note .icon { color: #075b3d !important; }
html[data-theme="dark"] .privacy-note p { color: #e2edf8 !important; }
html[data-theme="dark"] .privacy-note .privacy-note-icon, html[data-theme="dark"] .privacy-note .icon { color: #8ee0bd !important; }
html[data-theme="dark"] .v4-callout p, html[data-theme="dark"] .v4-callout small { color: #d6e2f1 !important; }
html[data-theme="light"] .v4-callout p, html[data-theme="light"] .v4-callout small { color: #334155 !important; }
.kpi-amber .kpi-icon { color: #763b00 !important; }
.kpi-purple .kpi-icon { color: #5d42c7 !important; }
.kpi-green .kpi-icon { color: #075c36 !important; }
.kpi-blue .kpi-icon { color: #075985 !important; }
.kpi-red .kpi-icon { color: #8f2031 !important; }
.scanner-tab.active, .scanner-tab.active span { color: #075f96 !important; }
.hero-trust, .hero-trust-badge, .trust-badge { color: #dbeafe !important; }
.reports-table th, .reports-table td { white-space: normal; overflow-wrap: anywhere; }
.v4-feature-list li { overflow-wrap: anywhere; }
@media (max-width: 480px) {
  .qrv3-grid { grid-template-columns: minmax(0, 1fr); }
  .reports-table { table-layout: fixed; }
  .reports-table th, .reports-table td { padding-inline: 8px; }
}

.brand-copy small { color: #43566f !important; }
html[data-theme="dark"] .brand-copy small { color: #b8c7da !important; }

/* Scanner preview, alignment, and verified AA contrast */
#scanner .section-kicker { color: #075985 !important; }
.scanner-layout { align-items: stretch !important; }
.scanner-side { align-content: start; }
.preview-open-btn {
  display: block;
  width: 62px;
  height: 62px;
  padding: 0;
  border: 0;
  border-radius: 11px;
  background: transparent;
  cursor: zoom-in;
}
.preview-open-btn:focus-visible, #previewDialogClose:focus-visible {
  outline: 3px solid #075985;
  outline-offset: 3px;
}
.preview-dialog {
  width: min(92vw, 760px);
  max-width: 92vw;
  max-height: 90vh;
  padding: 16px;
  border: 1px solid #cbd5e1;
  border-radius: 16px;
  color: #10243d;
  background: #fff;
  box-shadow: 0 24px 70px rgb(15 23 42 / 35%);
}
.preview-dialog::backdrop { background: rgb(7 16 31 / 72%); }
.preview-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}
.preview-dialog > img {
  display: block;
  max-width: 100%;
  max-height: calc(90vh - 80px);
  margin-inline: auto;
  object-fit: contain;
}
