/* ============================================================
   components.css — Reusable UI components
   ============================================================ */

/* ── BUTTONS ─────────────────────────────────────────── */
.btn-primary {
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  border: none;
  border-radius: 8px;
  font-weight: 600;
  padding: 10px 20px;
  color: #fff;
  transition: all .2s;
  box-shadow: 0 2px 12px rgba(37,99,235,.28);
  cursor: pointer;
}
.btn-primary:hover, .btn-primary:focus {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(37,99,235,.42);
  color: #fff;
}
.btn-success {
  background: linear-gradient(135deg, #22c55e, #16a34a);
  border: none;
  border-radius: 8px;
  font-weight: 600;
  padding: 10px 20px;
  color: #fff;
  transition: all .2s;
  cursor: pointer;
}
.btn-success:hover { transform: translateY(-1px); color: #fff; }
.btn-outline-light {
  border-radius: 8px;
  font-size: .85rem;
  padding: 7px 15px;
  color: #e2e8f0;
  border: 1px solid rgba(255,255,255,.2);
  background: transparent;
  transition: all .2s;
}
.btn-outline-light:hover {
  background: rgba(255,255,255,.08);
  color: #fff;
}
.btn-outline-danger {
  border-radius: 8px;
  font-size: .85rem;
  padding: 7px 15px;
}
.btn-sm {
  font-size: .78rem !important;
  padding: 5px 12px !important;
}

/* ── FORMS ───────────────────────────────────────────── */
.form-control,
.form-select {
  background:   var(--surface) !important;
  border:       1px solid var(--border) !important;
  color:        var(--text) !important;
  border-radius: 8px;
  padding:      10px 13px;
  transition:   border-color .2s, box-shadow .2s;
  width:        100%;
}
.form-control:focus,
.form-select:focus {
  border-color: var(--primary) !important;
  box-shadow:   0 0 0 3px rgba(37,99,235,.18) !important;
  outline:      none;
}
.form-control::placeholder { color: #334155 !important; }
.form-label {
  color:         #64748b;
  font-size:     .8rem;
  margin-bottom: 5px;
  font-weight:   500;
  display:       block;
}
textarea.form-control { resize: vertical; min-height: 100px; }

/* ── MODAL ───────────────────────────────────────────── */
.modal-content {
  background:    var(--card) !important;
  border:        1px solid var(--border) !important;
  border-radius: var(--radius) !important;
}
.modal-header,
.modal-footer  { border-color: var(--border) !important; }

.nav-pills .nav-link {
  color:         var(--muted) !important;
  border-radius: 8px;
  padding:       8px 18px !important;
  font-size:     .875rem;
  transition:    .2s;
}
.nav-pills .nav-link.active {
  background: var(--primary) !important;
  color:      #fff !important;
}

/* ── BADGES ──────────────────────────────────────────── */
.drx-badge {
  display:       inline-flex;
  align-items:   center;
  gap:           4px;
  font-size:     .7rem;
  font-weight:   600;
  padding:       3px 9px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: .3px;
  white-space:   nowrap;
}
.b-pending    { background: rgba(245,158,11,.12); color: #fbbf24; border: 1px solid rgba(245,158,11,.2); }
.b-quoted     { background: rgba(56,189,248,.12); color: #38bdf8; border: 1px solid rgba(56,189,248,.2); }
.b-approved   { background: rgba(99,102,241,.12); color: #a5b4fc; border: 1px solid rgba(99,102,241,.2); }
.b-in_review  { background: rgba(56,189,248,.12); color: #38bdf8; border: 1px solid rgba(56,189,248,.2); }
.b-completed  { background: rgba(34,197,94,.12);  color: #4ade80; border: 1px solid rgba(34,197,94,.2);  }
.b-open       { background: rgba(245,158,11,.12); color: #fbbf24; border: 1px solid rgba(245,158,11,.2); }
.b-answered   { background: rgba(34,197,94,.12);  color: #4ade80; border: 1px solid rgba(34,197,94,.2);  }
.b-closed     { background: rgba(100,116,139,.12);color: #94a3b8; border: 1px solid rgba(100,116,139,.2);}
.b-unpaid     { background: rgba(239,68,68,.12);  color: #f87171; border: 1px solid rgba(239,68,68,.2);  }
.b-paid       { background: rgba(34,197,94,.12);  color: #4ade80; border: 1px solid rgba(34,197,94,.2);  }
.b-rejected   { background: rgba(239,68,68,.12);  color: #f87171; border: 1px solid rgba(239,68,68,.2);  }

/* ── TABLE ───────────────────────────────────────────── */
.drx-table-wrap {
  background:    var(--card);
  border:        1px solid var(--border);
  border-radius: var(--radius);
  overflow:      hidden;
}
.drx-table { width: 100%; border-collapse: collapse; }
.drx-table thead tr {
  background:    var(--surface);
  border-bottom: 1px solid var(--border);
}
.drx-table th {
  padding:        11px 15px;
  font-size:      .72rem;
  text-transform: uppercase;
  letter-spacing: .5px;
  color:          var(--muted);
  font-weight:    600;
  white-space:    nowrap;
  text-align:     left;
}
.drx-table td {
  padding:       13px 15px;
  font-size:     .85rem;
  border-bottom: 1px solid rgba(30,45,71,.4);
  vertical-align: middle;
}
.drx-table tbody tr:last-child td { border-bottom: none; }
.drx-table tbody tr:hover { background: rgba(255,255,255,.016); }

/* ── TABS ────────────────────────────────────────────── */
.drx-tabs {
  display:       flex;
  gap:           3px;
  background:    var(--surface);
  border:        1px solid var(--border);
  border-radius: 10px;
  padding:       4px;
  width:         fit-content;
  margin-bottom: 20px;
}
.drx-tab {
  background:  transparent;
  border:      none;
  color:       var(--muted);
  padding:     8px 16px;
  border-radius: 7px;
  font-size:   .83rem;
  font-weight: 500;
  cursor:      pointer;
  transition:  .2s;
  display:     flex;
  align-items: center;
  gap:         7px;
}
.drx-tab:hover       { color: var(--text); }
.drx-tab.active {
  background:  var(--card);
  color:       var(--text);
  box-shadow:  0 1px 4px rgba(0,0,0,.3);
}
