/* ═══════════════════════════════════════════════════════════════════
   Reservas — Bulk Bar + Modal CSV + Badge + Chip Pendiente
   Sprint 2.4d · LUZOcrm V2 · TRANSED ONG
   ═══════════════════════════════════════════════════════════════════ */

/* ── Bulk bar ───────────────────────────────────────────────────────── */
.rs-bulkbar {
  background: linear-gradient(180deg, var(--c-brand-soft, rgba(109,40,217,.06)) 0%, var(--bg-card, #fff) 100%);
  border-bottom: .5px solid var(--c-brand, #6d28d9);
  padding: 10px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
  animation: rsSlideDown .2s ease-out;
}

@keyframes rsSlideDown {
  from { opacity: 0; transform: translateY(-8px); }
  to   { opacity: 1; transform: translateY(0);    }
}

.rs-bulkbar-info {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--c-brand, #6d28d9);
  font-size: 13px;
  font-weight: 500;
}

.rs-bulkbar-count {
  background: var(--c-brand, #6d28d9);
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  padding: 2px 8px;
  border-radius: 10px;
  min-width: 22px;
  text-align: center;
}

.rs-bulkbar-clear {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--tx-muted, #64748b);
  font-size: 11px;
  text-decoration: underline;
  padding: 0;
  font-family: inherit;
}
.rs-bulkbar-clear:hover { color: var(--tx-base, #0f172a); }

.rs-bulkbar-spacer { flex: 1; }

/* ── Botones de la bulk bar ─────────────────────────────────────────── */
.rs-bulkbar-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 12px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  border: .5px solid var(--border, rgba(0,0,0,.12));
  background: var(--bg-card, #fff);
  color: var(--tx-base, #0f172a);
  font-family: inherit;
  transition: background .12s;
  white-space: nowrap;
}
.rs-bulkbar-btn svg { stroke: currentColor; fill: none; flex-shrink: 0; }
.rs-bulkbar-btn:hover { background: var(--bg-hover, #f1f5f9); }

.rs-bulkbar-btn-primary {
  background: var(--c-brand, #6d28d9);
  color: #fff;
  border-color: var(--c-brand, #6d28d9);
}
.rs-bulkbar-btn-primary:hover { filter: brightness(.9); }
.rs-bulkbar-btn-primary svg   { stroke: #fff; }

.rs-bulkbar-btn-more::after {
  content: '▾';
  margin-left: 2px;
  font-size: 9px;
}

/* ── Dropdown "Más" ─────────────────────────────────────────────────── */
.rs-bulkbar-dropdown {
  background: var(--bg-card, #fff);
  border: .5px solid var(--border, rgba(0,0,0,.12));
  border-radius: 9px;
  padding: 4px 0;
  min-width: 220px;
  box-shadow: 0 12px 32px rgba(0,0,0,.14);
  z-index: 5000;
}

.rs-bulkbar-dd-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  color: var(--tx-base, #0f172a);
  transition: background .1s;
  user-select: none;
}
.rs-bulkbar-dd-item svg { stroke: currentColor; fill: none; flex-shrink: 0; }
.rs-bulkbar-dd-item:hover { background: var(--bg-hover, #f1f5f9); }

.rs-bulkbar-dd-item.disabled {
  opacity: .4;
  pointer-events: none;
  cursor: not-allowed;
}
.rs-bulkbar-dd-item.danger       { color: #dc2626; }
.rs-bulkbar-dd-item.danger svg   { stroke: #dc2626; }
.rs-bulkbar-dd-item.danger:hover { background: rgba(220,38,38,.06); }

.rs-bulkbar-dd-sep {
  height: .5px;
  background: var(--border-soft, rgba(0,0,0,.06));
  margin: 4px 10px;
}

.rs-bulkbar-dd-badge {
  margin-left: auto;
  font-size: 9px;
  background: rgba(220,38,38,.08);
  color: #dc2626;
  padding: 2px 6px;
  border-radius: 4px;
  font-weight: 500;
}

/* ── Modal CSV ──────────────────────────────────────────────────────── */
.rs-csv-shortcuts {
  padding: 4px 0 8px;
  font-size: 11px;
  color: var(--tx-muted, #64748b);
}
.rs-csv-shortcuts a {
  color: var(--c-brand, #6d28d9);
  text-decoration: none;
  cursor: pointer;
}
.rs-csv-shortcuts a:hover { text-decoration: underline; }

.rs-csv-collist {
  border: .5px solid var(--border, rgba(0,0,0,.12));
  border-radius: 7px;
  background: var(--bg-surface, #f8fafc);
  padding: 4px 0;
  max-height: 220px;
  overflow-y: auto;
}
.rs-csv-colrow {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 12px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 500;
  color: var(--tx-base, #0f172a);
  transition: background .1s;
}
.rs-csv-colrow:hover     { background: var(--bg-hover, #f1f5f9); }
.rs-csv-colrow input[type="checkbox"] { accent-color: var(--c-brand, #6d28d9); cursor: pointer; }
.rs-csv-meta { font-size: 10px; color: var(--tx-muted, #64748b); margin-left: auto; }

.rs-csv-format-row  { display: flex; gap: 8px; margin-top: 6px; }
.rs-csv-format-opt  {
  flex: 1;
  padding: 8px 12px;
  border: .5px solid var(--border, rgba(0,0,0,.12));
  border-radius: 7px;
  font-size: 12px;
  font-weight: 500;
  text-align: center;
  cursor: pointer;
  color: var(--tx-muted, #64748b);
  transition: border-color .15s, background .15s, color .15s;
}
.rs-csv-format-opt.active {
  border: 1.5px solid var(--c-brand, #6d28d9);
  background: rgba(109,40,217,.06);
  color: var(--c-brand, #6d28d9);
}

/* ── Filas pendiente_cancelacion ────────────────────────────────────── */
#lz-reservas-root .rs-row[data-estado="pendiente_cancelacion"] {
  background: rgba(245, 158, 11, .06);
}

/* ── Header del filtro pendiente ────────────────────────────────────── */
.rs-pending-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 16px;
  background: rgba(245, 158, 11, .08);
  border-bottom: .5px solid rgba(245, 158, 11, .3);
  font-size: 12px;
  font-weight: 500;
  color: #b45309;
  flex-shrink: 0;
}
.rs-pending-header-label { flex: 1; }
.rs-pending-header-actions { display: flex; gap: 6px; }

.rs-btn-approve,
.rs-btn-reject {
  height: 26px;
  padding: 0 10px;
  border-radius: 5px;
  border: .5px solid;
  font-size: 11px;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
  transition: filter .12s;
}
.rs-btn-approve {
  background: rgba(22,163,74,.1);
  border-color: rgba(22,163,74,.35);
  color: #16a34a;
}
.rs-btn-approve:hover { filter: brightness(.9); }
.rs-btn-reject {
  background: rgba(220,38,38,.08);
  border-color: rgba(220,38,38,.3);
  color: #dc2626;
}
.rs-btn-reject:hover { filter: brightness(.9); }

/* Botones inline por fila en modo pendiente */
.rs-row-pending-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}
.rs-btn-aprob-inline,
.rs-btn-rechazo-inline {
  height: 22px;
  padding: 0 8px;
  border-radius: 4px;
  border: .5px solid;
  font-size: 10px;
  font-weight: 500;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
}
.rs-btn-aprob-inline  { background: rgba(22,163,74,.1);  border-color: rgba(22,163,74,.35); color: #16a34a; }
.rs-btn-rechazo-inline { background: rgba(220,38,38,.08); border-color: rgba(220,38,38,.3);  color: #dc2626; }

/* ── Badge sidebar UL1 ──────────────────────────────────────────────── */
.ul1-badge {
  background: #ef4444;
  color: #fff;
  font-size: 10px;
  font-weight: 500;
  padding: 1px 5px;
  border-radius: 9px;
  min-width: 18px;
  text-align: center;
  margin-left: auto;
  flex-shrink: 0;
}

/* ── Chip filtro pendiente en topbar ────────────────────────────────── */
#lz-reservas-root .rs-pendiente-chip {
  height: 32px;
  padding: 0 10px;
  background: transparent;
  border: .5px solid rgba(245, 158, 11, .5);
  border-radius: 7px;
  font-size: 12px;
  font-weight: 500;
  color: #b45309;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  transition: background .12s, border-color .12s;
}
#lz-reservas-root .rs-pendiente-chip:hover {
  background: rgba(245, 158, 11, .08);
}
#lz-reservas-root .rs-pendiente-chip--active {
  background: rgba(245, 158, 11, .12);
  border-color: #b45309;
  border-width: 1.5px;
}
