.ui_popup_backdrop {
  position: fixed; inset: 0; background: rgba(20,20,20,0);
  display: flex; align-items: center; justify-content: center;
  z-index: 5000; padding: 16px;
  opacity: 0; pointer-events: none;
  transition: background .2s ease, opacity .2s ease;
}
.ui_popup_backdrop.show {
  background: rgba(20,20,20,.45); opacity: 1; pointer-events: auto;
}
.ui_popup {
  background: #fff; border-radius: 20px; padding: 32px 26px 24px;
  max-width: 360px; width: 100%; text-align: center;
  box-shadow: 0 24px 60px rgba(0,0,0,.28);
  transform: scale(.9); transition: transform .2s ease;
}
.ui_popup_backdrop.show .ui_popup { transform: scale(1); }
.ui_popup_icon { font-size: 44px; margin-bottom: 12px; }
.ui_popup.ok .ui_popup_icon { color: #2ecc71; }
.ui_popup.err .ui_popup_icon { color: #e74c3c; }
.ui_popup.warn .ui_popup_icon { color: #e6a400; }
.ui_popup_msg { font-size: 15px; color: #222; font-weight: 600; line-height: 1.5; margin: 0 0 20px; }
.ui_popup_ok {
  border: 0; border-radius: 12px; padding: 10px 32px; font-weight: 800; cursor: pointer;
  background: #b60000; color: #fff;
}
.ui_popup.ok .ui_popup_ok { background: #2ecc71; }
.ui_popup.warn .ui_popup_ok { background: #e6a400; }

/* Shared confirm dialog (mark-as-sold etc.) */
.ui_confirm {
  background: #fff; border-radius: 16px; padding: 24px 22px; max-width: 360px; width: 100%;
  box-shadow: 0 20px 50px rgba(0,0,0,.25);
}
.ui_confirm h3 { margin: 0 0 10px; font-size: 20px; font-weight: 800; }
.ui_confirm p { margin: 0 0 8px; color: #333; }
.ui_confirm_warn { color: #e74c3c; font-weight: 700; font-size: 13px; }
.ui_confirm_actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }
.ui_confirm_actions button { border: 0; border-radius: 10px; padding: 10px 18px; font-weight: 700; cursor: pointer; }
.ui_confirm_cancel { background: #f1f1f1; color: #333; }
.ui_confirm_ok { background: #2ecc71; color: #fff; }
.ui_confirm_ok:disabled { opacity: .7; cursor: default; }
