/* ---------- Tickets — rose / violet theme (site) ---------- */
/* colors */
:root{
  --violet-600: #8b5cf6;
  --pink-500: #ec4899;
  --accent: #c77dff;
  --glass-0: rgba(15,12,25,0.88);
  --glass-1: rgba(18,15,24,0.82);
  --border-glow: rgba(199,125,255,0.10);
  --muted-text: rgba(255,255,255,0.66);
}

/* panel base */
.tickets-section .panel {
  background: linear-gradient(180deg, rgba(12,9,18,0.92), rgba(18,15,24,0.86));
  border: 1px solid var(--border-glow);
  border-radius: 12px;
  box-shadow:
    0 10px 30px rgba(11,8,18,0.6),
    0 2px 18px rgba(139,92,246,0.06);
  color: #efe9fb;
}

/* panel header */
.panel-header { border-color: rgba(199,125,255,0.04); }

/* alert (dark glass with accent) */
.panel-alert {
  background: linear-gradient(90deg, rgba(139,92,246,0.04), rgba(236,72,153,0.03));
  border: 1px solid rgba(199,125,255,0.06);
  color: #efe9fb;
  border-radius: 10px;
  padding: .55rem .9rem;
}

/* table styling */
.tickets-table thead th {
  font-weight:700;
  font-size:13px;
  color: rgba(255,255,255,0.94);
  border-bottom: 1px solid rgba(199,125,255,0.04);
  padding: 12px 16px;
}
.tickets-table tbody td {
  padding: 14px 16px;
  vertical-align: middle;
  color: rgba(230,222,248,0.96);
  border-bottom: 1px solid rgba(255,255,255,0.02);
}

/* status badges — rose / violet styling */
.status-badge {
  display:inline-block;
  padding:8px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.2px;
  text-transform:none;
  box-shadow: inset 0 -6px 16px rgba(0,0,0,0.06);
}

/* map colors to look cohesive but distinct */
.status-badge.pending {
  background: linear-gradient(90deg, rgba(199,125,255,0.14), rgba(236,72,153,0.06));
  color: var(--accent);
  border: 1px solid rgba(199,125,255,0.09);
}

.status-badge.open {
  background: linear-gradient(90deg, rgba(255,111,177,0.12), rgba(199,125,255,0.10));
  color: #fff;
  border: 1px solid rgba(236,72,153,0.08);
}

.status-badge.closed {
  background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0.01));
  color: rgba(225,215,240,0.9);
  border: 1px solid rgba(255,255,255,0.03);
}

/* hover effect for rows */
.tickets-table tbody tr:hover {
  background: linear-gradient(90deg, rgba(139,92,246,0.02), rgba(236,72,153,0.01));
  transform: translateY(-2px);
}

/* .mini-thumb fallback (product-dot) */
.mini-thumb {
  width:56px;
  height:56px;
  border-radius:8px;
  overflow:hidden;
  background: rgba(255,255,255,0.02);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  border: 1px solid rgba(199,125,255,0.03);
}
.product-dot {
  width:12px;
  height:12px;
  border-radius:50%;
  background: linear-gradient(90deg, var(--violet-600), var(--pink-500));
  box-shadow: 0 0 10px rgba(199,125,255,0.55);
}

/* ticket card (mobile) */
.ticket-card {
  border-radius:12px;
  background: linear-gradient(180deg, rgba(18,15,24,0.92), rgba(15,12,25,0.86));
  border: 1px solid rgba(199,125,255,0.06);
  box-shadow: 0 10px 30px rgba(0,0,0,0.40);
}

/* buttons — primary gradient (site) */
.btn-primary {
  background: linear-gradient(90deg, var(--violet-600), var(--pink-500)) !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 10px 28px rgba(139,92,246,0.18);
  transition: transform .18s ease, box-shadow .18s ease;
}
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(236,72,153,0.22);
}

/* outline-primary tuned to violet */
.btn-outline-primary {
  --bs-btn-color: var(--accent);
  --bs-btn-border-color: rgba(199,125,255,0.18);
  --bs-btn-hover-bg: rgba(199,125,255,0.06);
  color: var(--accent) !important;
  border-radius: 999px;
}

/* small buttons */
.btn-sm { font-size:14px; padding:8px 14px; border-radius:999px; }

/* accents & helpers */
.text-accent-500 { color: var(--accent); font-weight:600; }
.text-muted { color: var(--muted-text) !important; }

/* subtle divider for footers */
.panel .border-top { border-color: rgba(199,125,255,0.03); }

/* responsive rules (keep original behavior) */
@media (max-width: 767px) {
  .tickets-table { display:none; }
}
@media (min-width: 768px) {
  .ticket-card { display:none; }
}