.qr-quality {
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid #b8d4c4;
    border-left: 4px solid #287048;
    border-radius: .6rem;
    background: #f3faf6;
    color: #193a29;
    font-size: .9rem;
    line-height: 1.5;
}
.qr-quality[data-state="warning"] { border-color: #dec48d; border-left-color: #946300; background: #fff9ec; color: #584018; }
.qr-quality ul { margin: .5rem 0; padding-left: 1.25rem; }
.qr-quality p { margin: .5rem 0 0; font-size: .85rem; }
.qr-import-preview { max-height: 16rem; overflow: auto; overflow-wrap: anywhere; white-space: pre-wrap; }
.qr-result-label { margin: .5rem 0; overflow-wrap: anywhere; }
.qr-contact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.qr-contact-wide { grid-column: 1 / -1; }
.qr-preset-panel summary { font-weight: 650; cursor: pointer; padding: .25rem 0; }
.qr-preset-panel .fqrc-label { margin-top: .75rem; }
.qr-preset-panel button { margin-top: .65rem; }
.qr-preset-actions { display: flex; gap: .65rem; flex-wrap: wrap; }
.qr-preset-import { position: relative; display: inline-flex; align-items: center; cursor: pointer; overflow: hidden; }
.qr-preset-import input { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; }
.qr-preset-import:focus-within { outline: 3px solid #83b6ea; outline-offset: 2px; }
.qr-verification { padding: .8rem 1rem; margin: .75rem 0; border: 1px solid #bac9d9; border-radius: .6rem; background: #f3f7fc; color: #304862; font-size: .9rem; }
.qr-verification[data-state="passed"] { background: #eef8f1; border-color: #8eba9b; color: #245536; }
.qr-verification[data-state="failed"], .qr-verification[data-state="unavailable"] { background: #fff7e7; border-color: #ddbd82; color: #624713; }
.qr-result-verification { font-size: .85rem; margin: .5rem 0; }
.qr-result-verification[data-state="passed"] { color: #245536; }
.qr-result-verification[data-state="failed"], .qr-result-verification[data-state="unavailable"] { color: #76500f; }
#fqrc-download-vcard { width: 100%; margin: .75rem 0; }
.qr-reader { max-width: 900px; margin: 0 auto 3rem; }
.qr-reader-drop { padding: 1.5rem; background: #f6f9fc; border: 2px dashed #b5c6d9; border-radius: 1rem; }
.qr-reader-drop.is-dragging { border-color: #1e58a3; background: #eaf2ff; }
.qr-reader-drop p { margin: .75rem 0 0; color: #44576d; }
.qr-reader-preview { display: block; max-width: 100%; max-height: 320px; margin: 1rem auto 0; object-fit: contain; }
.qr-reader-preview[hidden] { display: none; }
.qr-reader-actions { display: flex; gap: .75rem; flex-wrap: wrap; margin: 1rem 0; }
#reader-result { font-family: ui-monospace, monospace; overflow-wrap: anywhere; }
@media (max-width: 480px) {
    .qr-contact-fields { grid-template-columns: 1fr; }
    .qr-reader-drop { padding: 1rem; }
}
#fqrc-print { margin-top: .75rem; width: 100%; }
#qr-print-panel { position: fixed; inset: 0; z-index: 10000; overflow: auto; background: #e8edf3; color: #172536; }
.qr-print-toolbar { position: sticky; top: 0; z-index: 1; padding: 1rem max(1rem, calc((100vw - 1000px) / 2)); background: #fff; box-shadow: 0 2px 10px #0002; }
.qr-print-toolbar h2 { font-size: 1.35rem; margin: 0 0 .75rem; }
.qr-print-toolbar label { display: inline-block; margin: 0 1rem .75rem 0; font-weight: 600; }
.qr-print-toolbar select { border: 1px solid #a8b6c5; border-radius: .3rem; padding: .35rem; background: white; color: #172536; }
.qr-print-toolbar button { margin: 0 .5rem .75rem 0; }
.qr-print-toolbar p { margin: 0 0 .35rem; font-size: .85rem; }
.qr-print-scroll { overflow: auto; padding: 1.5rem 1rem; }
.qr-print-page { display: grid; align-content: start; justify-content: center; box-sizing: border-box; padding: 10mm; gap: 6mm; margin: 0 auto 1.5rem; background: white; box-shadow: 0 3px 18px #0002; color: black; zoom: var(--qr-print-scale, 1); }
.qr-print-cell { margin: 0; overflow: hidden; text-align: center; }
.qr-print-cell img { display: block; max-width: none; object-fit: contain; background: white; }
.qr-print-cell figcaption { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; padding: 1mm .5mm 0; max-height: 13mm; font: 10pt/1.3 Arial, sans-serif; }
@media print {
    body.qr-print-open > * { display: none !important; }
    body.qr-print-open { margin: 0 !important; padding: 0 !important; background: white !important; overflow: visible !important; }
    body > #qr-print-panel { display: block !important; position: static; overflow: visible; background: white; }
    #qr-print-panel .qr-print-toolbar { display: none; }
    #qr-print-panel .qr-print-scroll { padding: 0; overflow: visible; }
    #qr-print-panel .qr-print-page { margin: 0; box-shadow: none; zoom: 1; break-after: page; break-inside: avoid; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
    #qr-print-panel .qr-print-page:last-child { break-after: auto; }
}

.qr-starter-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-bottom:1rem; }
.fqrc-preview > img { display:block;max-width:100%;height:auto;max-height:560px;object-fit:contain; }
@media(max-width:420px) { .qr-starter-grid { grid-template-columns:1fr; } }

.qr-bulk-progress { margin:1.25rem 0;padding:1rem;border:1px solid #dce2e8;border-radius:12px; }
.qr-bulk-progress progress { height:1.25rem; accent-color:#0878d1; }
.qr-bulk-progress button { margin:.25rem .35rem .25rem 0; }

#bulk-retry-editor { margin-top:1rem;padding:1rem;border:1px solid #dce2e8;border-radius:8px; }
#bulk-retry-editor legend { font-size:1rem;font-weight:600; }
#bulk-retry-editor label { display:block;margin-top:.6rem; }
#qr-project-library p { line-height:1.55; }
