/* ═══════════════ REPORTS v2.0 ═══════════════ */

/* ─── Turno de Caja — Status Bar ────────────────────────────── */
.turno-status-bar {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .5rem 1.1rem;
  background: var(--bg-alt, #f8fafc);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: .83rem;
  margin-bottom: .75rem;
  flex-wrap: wrap;
}
.turno-status-bar.turno-status-open {
  border-color: rgba(16,185,129,.4);
  background: rgba(16,185,129,.06);
}
.turno-open-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #10b981;
  display: inline-block;
  box-shadow: 0 0 6px rgba(16,185,129,.6);
  flex-shrink: 0;
}
.btn-sm-danger {
  padding: .25rem .75rem;
  background: rgba(239,68,68,.12);
  color: #dc2626;
  border: 1px solid rgba(239,68,68,.3);
  border-radius: var(--radius-sm);
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.btn-sm-danger:hover { background: rgba(239,68,68,.2); }
.btn-sm-success {
  padding: .25rem .75rem;
  background: rgba(16,185,129,.12);
  color: #059669;
  border: 1px solid rgba(16,185,129,.3);
  border-radius: var(--radius-sm);
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.btn-sm-success:hover { background: rgba(16,185,129,.2); }

.reports-filters { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.date-input, .filter-select {
  padding: 0.4rem 0.75rem; border: 1.5px solid var(--border); border-radius: var(--radius-sm);
  font-size: 0.8rem; background: var(--surface); color: var(--text);
  transition: border-color var(--transition);
}
.date-input:focus, .filter-select:focus { border-color: var(--primary); }

.reports-summary-cards {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(178px, 1fr));
  gap: 1rem; margin-bottom: 1.25rem; flex-shrink: 0;
}
.report-stat-card {
  background: var(--surface); border-radius: var(--radius);
  padding: 1.1rem 1.25rem; display: flex; align-items: center; gap: 1rem;
  border: 1px solid var(--border); box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition), transform var(--transition);
}
.report-stat-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); }
.report-icon { font-size: 1.7rem; line-height: 1; }
.report-label { display: block; font-size: 0.72rem; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.5px; }
.report-value { display: block; font-size: 1.25rem; font-weight: 800; color: var(--text); letter-spacing: -0.4px; }

.reports-content { display: flex; flex-direction: column; gap: 1rem; flex: 1; }
.report-section-box {
  background: var(--surface); border-radius: var(--radius);
  overflow: hidden; border: 1px solid var(--border);
}
.report-box-header {
  display: flex; justify-content: space-between; align-items: center;
  padding: 0.9rem 1.1rem; border-bottom: 1px solid var(--border);
}
.report-section-box h3 { font-size: 0.875rem; font-weight: 700; padding: 0.9rem 1.1rem; border-bottom: 1px solid var(--border); color: var(--text); }
.report-section-box .report-box-header h3 { padding: 0; border: none; }

.status-badge { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 20px; font-size: 0.72rem; font-weight: 600; }
.status-completed { background: rgba(16,185,129,0.10);  color: #059669; }
.status-pending   { background: rgba(245,158,11,0.12);  color: #b45309; }
.status-cancelled { background: rgba(239,68,68,0.10);   color: #dc2626; }

/* ── Report search bar ── */
.report-search-bar {
  width: 210px; height: 34px;
  background: var(--bg); border: 1.5px solid var(--border);
  border-radius: var(--radius-sm); display: flex; align-items: center;
  padding: 0 0.6rem; gap: 0.4rem;
}
.report-search-bar input {
  flex: 1; border: none; background: transparent; font-size: 0.8rem;
  color: var(--text); outline: none;
}
.report-search-bar input::placeholder { color: var(--text-muted); }

/* ── Action icon buttons per row ── */
.report-actions-cell { display: flex; gap: 4px; align-items: center; }
.btn-icon-sm {
  padding: 4px 7px; border-radius: var(--radius-sm); font-size: 0.8rem;
  border: 1.5px solid var(--border); background: var(--surface); cursor: pointer;
  transition: background var(--transition), border-color var(--transition);
  line-height: 1;
}
.btn-icon-sm:hover { background: var(--hover); border-color: var(--primary); }
.btn-danger-sm:hover { background: rgba(239,68,68,0.08); border-color: var(--red) !important; }

/* ── Payment method pills ── */
.pay-method-btn {
  padding: 5px 10px; border-radius: var(--radius-sm); font-size: 0.78rem; cursor: pointer;
  border: 1.5px solid var(--border); background: var(--surface); color: var(--text-muted);
  transition: background var(--transition), border-color var(--transition), color var(--transition);
}
.pay-method-btn:hover { border-color: var(--primary); color: var(--text); }
.pay-method-btn.active { border-color: var(--primary); background: var(--primary); color: #fff; }

/* ── Ticket detail modal ── */
.tdetail-meta {
  display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem 1.5rem;
  background: var(--bg); border-radius: var(--radius-sm);
  padding: 0.9rem 1rem; margin-bottom: 0.75rem;
  border: 1px solid var(--border);
}
.tdetail-meta > div { display: flex; flex-direction: column; gap: 2px; }
.tdetail-lbl { font-size: 0.7rem; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: .4px; }
.tdetail-totals {
  margin-top: 0.75rem; display: flex; flex-direction: column; align-items: flex-end; gap: 4px;
}
.tdetail-totals > div { display: flex; gap: 1.5rem; font-size: 0.85rem; color: var(--text-muted); }
.tdetail-total-row { font-weight: 800; font-size: 1rem !important; color: var(--text) !important; }

/* ════════════════════════════════════════════
   CORTE DE CAJA
   ════════════════════════════════════════════ */
.corte-caja-bar { display:flex; align-items:center; padding:0.5rem 0 0.75rem; }
.corte-caja-wrap { position:relative; display:inline-block; }
.corte-caja-btn  { gap:0.5rem; }
.corte-caja-dropdown {
  position:absolute; top:calc(100% + 6px); left:0; z-index:999;
  background:var(--surface); border:1.5px solid var(--border); border-radius:var(--radius);
  box-shadow:0 6px 24px rgba(0,0,0,0.13); min-width:190px; overflow:hidden;
}
.corte-menu-item {
  display:flex; align-items:center; gap:0.55rem;
  width:100%; text-align:left; padding:0.68rem 1rem;
  font-size:0.875rem; font-weight:500; color:var(--text);
  background:none; border:none; cursor:pointer;
  transition:background var(--transition);
}
.corte-menu-item:hover { background:var(--bg); }
/* header info row */
.corte-header-info {
  display:flex; flex-wrap:wrap; gap:1.2rem;
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:0.7rem 1rem; margin-bottom:1rem; font-size:0.875rem;
}
/* summary cards */
.corte-summary-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:0.75rem; margin-bottom:1rem;
}
.corte-stat {
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius);
  padding:0.75rem; display:flex; flex-direction:column; gap:0.2rem;
}
.corte-stat-label { font-size:0.72rem; color:var(--text-muted); font-weight:600; text-transform:uppercase; letter-spacing:.3px; }
.corte-stat-value { font-size:1.05rem; font-weight:700; color:var(--text); }
.corte-stat-value.green { color:var(--green); }
.corte-stat-value.red   { color:var(--red,#dc2626); }
/* breakdown boxes */
.corte-breakdown-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:0.75rem; margin-bottom:0.85rem;
}
.corte-breakdown-box {
  background:var(--bg); border:1px solid var(--border); border-radius:var(--radius); padding:0.85rem 1rem;
}
.corte-breakdown-box h4 { font-size:0.82rem; font-weight:700; margin-bottom:0.6rem; color:var(--text); }
.corte-breakdown-row {
  display:flex; justify-content:space-between; align-items:center;
  font-size:0.83rem; padding:0.22rem 0; color:var(--text);
}
.corte-breakdown-row.subtotal {
  border-top:1px dashed var(--border); margin-top:0.3rem; padding-top:0.4rem;
  font-weight:600; font-size:0.85rem; color:var(--text-muted);
}
.corte-breakdown-row.total {
  border-top:1.5px solid var(--border); margin-top:0.4rem; padding-top:0.5rem;
  font-weight:700; font-size:0.88rem;
}
.corte-val-green { color:var(--green); font-weight:600; }
.corte-val-red   { color:var(--red,#dc2626); font-weight:600; }
/* grand total bar */
.corte-grand-total {
  display:flex; justify-content:space-between; align-items:center;
  background:var(--sidebar, #1a1a2e); color:#fff; border-radius:var(--radius);
  padding:0.8rem 1.1rem; margin-bottom:1rem;
}
.corte-grand-total strong { font-size:1.15rem; }