/* ============================================================
   Dashboard CSS
   ============================================================ */

/* Stats */
.dab-stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px; margin-bottom: 28px; }
.dab-stat-card { background: #fff; border-radius: var(--dab-radius); padding: 20px; text-align: center; box-shadow: var(--dab-shadow); border-top: 4px solid transparent; }
.dab-stat-blue   { border-top-color: var(--dab-primary); }
.dab-stat-green  { border-top-color: var(--dab-success); }
.dab-stat-orange { border-top-color: #fd7e14; }
.dab-stat-purple { border-top-color: #6f42c1; }
.dab-stat-teal   { border-top-color: var(--dab-info); }
.dab-stat-red    { border-top-color: var(--dab-danger); }
.dab-stat-icon   { font-size: 28px; margin-bottom: 8px; }
.dab-stat-value  { font-size: 26px; font-weight: 800; color: #333; }
.dab-stat-label  { font-size: 12px; color: #777; margin-top: 4px; }

/* Dashboard header */
.dab-dash-header { margin-bottom: 24px; }
.dab-dash-header h2 { margin: 0 0 4px; font-size: 26px; }
.dab-dash-header p  { margin: 0; color: #777; }

/* Tabs */
.dab-dash-tabs { display: flex; gap: 6px; border-bottom: 2px solid var(--dab-border); margin-bottom: 24px; flex-wrap: wrap; }
.dab-tab-btn { padding: 10px 18px; border: none; background: none; font-size: 14px; font-weight: 600; cursor: pointer; color: #777; border-bottom: 3px solid transparent; margin-bottom: -2px; transition: all .2s; border-radius: 6px 6px 0 0; }
.dab-tab-btn:hover  { color: var(--dab-primary); background: #f0f7ff; }
.dab-tab-btn.active { color: var(--dab-primary); border-bottom-color: var(--dab-primary); background: #f0f7ff; }

/* Table */
.dab-table-wrap { overflow-x: auto; border-radius: 8px; box-shadow: 0 1px 6px rgba(0,0,0,.06); }
.dab-table { width: 100%; border-collapse: collapse; font-size: 13px; background: #fff; }
.dab-table th { background: #f8f9fa; padding: 12px 14px; text-align: left; font-weight: 700; font-size: 12px; text-transform: uppercase; letter-spacing: .5px; color: #666; border-bottom: 2px solid var(--dab-border); white-space: nowrap; }
.dab-table td { padding: 11px 14px; border-bottom: 1px solid #f0f0f0; vertical-align: middle; }
.dab-table tr:last-child td { border-bottom: none; }
.dab-table tr:hover { background: #fafafa; }

/* Badges */
.dab-badge { padding: 3px 10px; border-radius: 20px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.dab-badge-scheduled  { background: #cce5ff; color: #004085; }
.dab-badge-confirmed  { background: #d4edda; color: #155724; }
.dab-badge-completed  { background: #e2e3e5; color: #383d41; }
.dab-badge-cancelled  { background: #f8d7da; color: #721c24; }
.dab-badge-no_show    { background: #fff3cd; color: #856404; }
.dab-badge-pending    { background: #fff3cd; color: #856404; }
.dab-badge-paid       { background: #d4edda; color: #155724; }
.dab-badge-failed     { background: #f8d7da; color: #721c24; }
.dab-badge-refunded   { background: #cce5ff; color: #004085; }
.dab-badge-cash       { background: #ffe4b5; color: #7d5200; }
.dab-badge-online     { background: #d1ecf1; color: #0c5460; }

/* Empty state */
.dab-empty { text-align: center; padding: 48px 20px; color: #999; font-size: 15px; }

/* Section header */
.dab-section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; flex-wrap: wrap; gap: 10px; }
.dab-section-header h4 { margin: 0; }

/* Filter row */
.dab-filter-row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; align-items: center; }

/* Checkbox group */
.dab-checkbox-group { display: flex; flex-direction: column; gap: 8px; }
.dab-checkbox-group label { display: flex; align-items: center; gap: 8px; font-size: 14px; cursor: pointer; }

/* Select small */
.dab-select-sm { padding: 4px 8px; font-size: 12px; border-radius: 6px; border: 1px solid var(--dab-border); }

/* Admin dash */
.dab-admin-dash .dab-card-body { padding: 0; }
.dab-admin-dash { max-width: 1200px; }

/* Responsive */
@media (max-width: 768px) {
  .dab-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .dab-table th, .dab-table td { padding: 9px 10px; }
}
