/* ===================== Modales QSR ===================== */
.qsr-overlay {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(15, 23, 42, 0.6);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .2s ease;
  backdrop-filter: blur(2px);
}
.qsr-overlay.qsr-visible { opacity: 1; }

.qsr-modal {
  background: white; border-radius: .75rem;
  box-shadow: 0 20px 50px rgba(0,0,0,.25);
  max-width: 480px; width: calc(100% - 2rem);
  transform: translateY(8px); transition: transform .2s ease;
  overflow: hidden;
}
.qsr-overlay.qsr-visible .qsr-modal { transform: translateY(0); }

.qsr-head { padding: 1.25rem 1.5rem .75rem; }
.qsr-head h3 { margin: 0; font-size: 1.15rem; color: #1e293b; }
.qsr-head-danger { background: #fef2f2; }
.qsr-head-danger h3 { color: #b91c1c; }

.qsr-body { padding: .25rem 1.5rem 1rem; color: #475569; line-height: 1.55; }
.qsr-body p { margin: 0 0 .75rem; }
.qsr-body strong { color: #1e293b; }
.qsr-input {
  width: 100%; padding: .65rem; border: 1px solid #cbd5e1;
  border-radius: .375rem; font: inherit; box-sizing: border-box;
  margin-top: .5rem;
}
.qsr-input:focus { outline: 2px solid #6366f1; outline-offset: -1px; }

.qsr-foot {
  padding: 1rem 1.5rem 1.25rem;
  display: flex; justify-content: flex-end; gap: .5rem;
  background: #f8fafc; border-top: 1px solid #e2e8f0;
}

.qsr-btn {
  padding: .55rem 1.1rem; border-radius: .375rem;
  font: inherit; font-weight: 500; cursor: pointer;
  border: 1px solid transparent;
}
.qsr-btn-primary { background: #6366f1; color: white; }
.qsr-btn-primary:hover { background: #4f46e5; }
.qsr-btn-danger  { background: #ef4444; color: white; }
.qsr-btn-danger:hover  { background: #dc2626; }
.qsr-btn-ghost   { background: white; color: #475569; border-color: #cbd5e1; }
.qsr-btn-ghost:hover { background: #f1f5f9; }

/* ===================== Notificaciones (toast) ===================== */
.qsr-toast-stack {
  position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 10000;
  display: flex; flex-direction: column; gap: .5rem; pointer-events: none;
}
.qsr-toast {
  background: white; padding: .85rem 1.2rem; border-radius: .5rem;
  box-shadow: 0 10px 25px rgba(0,0,0,.12);
  border-left: 4px solid #6366f1;
  max-width: 360px; pointer-events: auto;
  transform: translateX(20px); opacity: 0;
  transition: all .25s ease;
  display: flex; align-items: center; gap: .6rem;
  font-size: .9rem;
}
.qsr-toast.qsr-visible { transform: translateX(0); opacity: 1; }
.qsr-toast-success { border-color: #10b981; }
.qsr-toast-success::before { content: '✓'; color: #10b981; font-weight: bold; }
.qsr-toast-error   { border-color: #ef4444; }
.qsr-toast-error::before   { content: '✕'; color: #ef4444; font-weight: bold; }
.qsr-toast-info    { border-color: #3b82f6; }
.qsr-toast-info::before    { content: 'ℹ'; color: #3b82f6; font-weight: bold; }
