body {
  background: #f5f7fa;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.navbar-brand i { vertical-align: -2px; }
.card { box-shadow: 0 1px 3px rgba(16, 24, 40, .06), 0 1px 2px rgba(16, 24, 40, .04); }
.section-heading { font-weight: 600; color: #1f2937; }

.kpi-card { border-left: 4px solid var(--bs-primary); }
.kpi-card .kpi-num { font-size: 2rem; font-weight: 700; color: #111; line-height: 1; }
.kpi-card .kpi-label { color: #6b7280; font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; }

.status-pill { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.status-submitted   { background: #e5e7eb; color: #374151; }
.status-triaged     { background: #dbeafe; color: #1e40af; }
.status-scheduled   { background: #ede9fe; color: #6d28d9; }
.status-in_progress { background: #fef3c7; color: #92400e; }
.status-on_hold     { background: #fde68a; color: #78350f; }
.status-completed   { background: #d1fae5; color: #065f46; }
.status-closed      { background: #d1d5db; color: #1f2937; }
.status-cancelled   { background: #fee2e2; color: #991b1b; }
.status-reopened    { background: #fce7f3; color: #9d174d; }

.priority-Emergency { color: #b91c1c; font-weight: 600; }
.priority-High      { color: #c2410c; font-weight: 600; }
.priority-Medium    { color: #1d4ed8; }
.priority-Low       { color: #4b5563; }

.timeline { border-left: 2px solid #e5e7eb; padding-left: 1rem; margin-left: .5rem; }
.timeline-item { position: relative; margin-bottom: 1rem; }
.timeline-item::before {
  content: ""; position: absolute; left: -1.4rem; top: .35rem;
  width: .75rem; height: .75rem; background: var(--bs-primary); border-radius: 50%;
}
.timeline-time { font-size: .8rem; color: #6b7280; }

.attachment-thumb {
  display: inline-block; width: 96px; height: 96px; object-fit: cover;
  border-radius: .5rem; margin-right: .5rem; margin-bottom: .5rem;
  border: 1px solid #e5e7eb;
}
.sla-breach { color: #b91c1c; font-weight: 600; }

table.table-tickets td { vertical-align: middle; }
.empty-hint { color: #6b7280; padding: 2rem; text-align: center; border: 2px dashed #d1d5db; border-radius: .75rem; }
