/* Dialogs and the printable QR label */
.overlay { position: fixed; inset: 0; background: rgba(11, 18, 47, .6); backdrop-filter: blur(4px); display: grid; place-items: center; padding: 20px; z-index: 40; animation: fade .2s ease; }
.modal { background: #fff; border-radius: 20px; width: 100%; max-width: 440px; padding: 28px; box-shadow: var(--shadow-lg); animation: pop .25s ease; position: relative; }
.modal .x { position: absolute; right: 14px; top: 14px; }
.modal h3 { font-size: 20px; color: var(--navy); margin: 0 0 6px; padding-right: 40px; word-break: break-word; }
.modal p { color: var(--muted); margin: 0 0 20px; font-size: 14px; line-height: 1.5; }
.modal .row { display: flex; gap: 10px; }
.modal .row .btn { flex: 1; }
.modal .btn-red:disabled { cursor: not-allowed; }
.clean-sum { font-size: 14px; line-height: 1.5; color: var(--text); background: var(--bg); border-radius: 12px; padding: 12px 14px; margin-bottom: 18px; }
.clean-sum b { color: var(--navy); }
.clean-sum .warn { display: block; margin-top: 4px; color: var(--danger); font-size: 13px; }
.confirm-ic { width: 52px; height: 52px; border-radius: 50%; background: #fef2f2; display: grid; place-items: center; margin-bottom: 14px; }

/* Printable label (also previewed in the modal) */
.label { border: 2px solid var(--navy); border-radius: 16px; overflow: hidden; text-align: center; margin-bottom: 18px; }
.label .lh { background: var(--navy); color: #fff; padding: 10px; display: flex; align-items: center; justify-content: center; gap: 8px; font: 800 15px Montserrat, sans-serif; letter-spacing: 1px; }
.label .lh i { font-style: normal; width: 26px; height: 26px; border-radius: 7px; background: var(--amber); color: var(--navy-deep); display: grid; place-items: center; font-size: 15px; }
.label img { width: 220px; height: 220px; display: block; margin: 14px auto 6px; }
.label .lt { font: 700 14px Montserrat, sans-serif; color: var(--navy); padding: 0 16px; word-break: break-word; }
.label .lf { font-size: 11px; color: var(--muted); padding: 6px 16px 14px; }
.linkbox { display: flex; gap: 8px; margin-bottom: 14px; }
.linkbox input { font-size: 13px; padding: 9px 12px; background: var(--bg); color: var(--muted); }

@media print {
  body > *:not(#printArea) { display: none !important; }
  #printArea { display: block !important; }
  #printArea .label { width: 320px; margin: 40px auto; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
