/* ============================================================
   Rapport UI layer v1 - 2026-09-23
   Scoped. Only .rg-report (report results) and .rg-list (list
   screens, first: Drivers) are touched. Every colour and size
   comes from rapport-tokens.css with a fallback so the layer
   still holds if the tokens fail to load.
   ============================================================ */

.rg-report, .rg-list {
  font-family: var(--rg-font, 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif);
  color: var(--rg-ink, #0E2A38);
  -webkit-font-smoothing: antialiased;
}

/* ---------- shared table treatment ---------- */
.rg-report .table, .rg-list .table {
  margin-bottom: 0;
  font-size: 13.5px;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
}
.rg-report .table > thead > tr > th,
.rg-list   .table > thead > tr > th {
  background: var(--rg-surface-2, #F7FAFC);
  color: var(--rg-ink-2, #4F6B7A);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  padding: 12px 16px;
  border-top: 0;
  border-bottom: 1px solid var(--rg-line, #E2ECF2);
  white-space: nowrap;
  vertical-align: middle;
  text-align: left;
}
.rg-report .table > thead > tr > th a,
.rg-list   .table > thead > tr > th a { color: inherit; text-decoration: none; }
.rg-report .table > tbody > tr > td,
.rg-list   .table > tbody > tr > td {
  padding: 13px 16px;
  border-top: 1px solid var(--rg-line, #E2ECF2);
  vertical-align: middle;
  color: var(--rg-ink, #0E2A38);
  font-variant-numeric: tabular-nums;
  line-height: 1.4;
}
.rg-report .table > tbody > tr:first-child > td,
.rg-list   .table > tbody > tr:first-child > td { border-top: 0; }
.rg-report .table > tbody > tr:hover > td,
.rg-list   .table > tbody > tr:hover > td { background: var(--rg-surface-2, #F7FAFC); }
.rg-report .table-striped > tbody > tr:nth-of-type(odd) > td,
.rg-list   .table-striped > tbody > tr:nth-of-type(odd) > td { background: transparent; }
.rg-report .table-striped > tbody > tr:nth-of-type(odd):hover > td,
.rg-list   .table-striped > tbody > tr:nth-of-type(odd):hover > td { background: var(--rg-surface-2, #F7FAFC); }
.rg-report .table-bordered,
.rg-report .table-bordered > thead > tr > th,
.rg-report .table-bordered > tbody > tr > td { border-color: var(--rg-line, #E2ECF2); }
.rg-report .table > tfoot > tr > td,
.rg-report .table > tbody > tr.totals > td,
.rg-report .table > tbody > tr.total > td,
.rg-report .table > tbody > tr.tnt-totals > td {
  font-weight: 700;
  background: var(--rg-surface-2, #F7FAFC);
  border-top: 2px solid var(--rg-line-strong, #CBDCE6);
}
.rg-report .table-responsive, .rg-report .table-scrollable,
.rg-list   .table-responsive { border: 0; margin: 0; overflow-x: auto; }

/* ---------- report results ---------- */
.rg-report .panel {
  background: var(--rg-surface, #fff);
  border: 1px solid var(--rg-line, #E2ECF2);
  border-radius: var(--rg-radius, 14px);
  box-shadow: none;
  margin-bottom: 16px;
  overflow: hidden;
}
.rg-report .panel-heading {
  background: var(--rg-surface, #fff);
  border-bottom: 1px solid var(--rg-line, #E2ECF2);
  padding: 14px 18px;
  border-radius: 0;
}
.rg-report .panel-title { font-size: 15px; font-weight: 700; color: var(--rg-ink, #0E2A38); }
.rg-report .panel-body { padding: 16px 18px; }
.rg-report .panel-body.no-padding { padding: 0; }
.rg-report .panel-body.no-padding .table { border-radius: 0; }
.rg-report a { color: var(--rg-blue, #0E9DD9); }
.rg-report .label {
  display: inline-block; padding: 3px 10px; border-radius: 999px;
  font-size: 12px; font-weight: 600; line-height: 18px;
}
.rg-report .label-success { background: var(--rg-ok-bg, #E8F6EC); color: var(--rg-ok, #2FA84F); }
.rg-report .label-danger  { background: var(--rg-critical-bg, #FCEBEA); color: var(--rg-critical, #DC3F35); }
.rg-report .label-warning { background: var(--rg-warn-bg, #FDF1DC); color: var(--rg-warn, #E9930B); }
.rg-report .label-default { background: var(--rg-idle-bg, #EEF2F5); color: var(--rg-ink-2, #4F6B7A); }
.rg-report .btnTable { font-weight: 600; }

/* ---------- list screens (Drivers first) ---------- */
.rg-list .action-block {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  margin-bottom: 14px;
}
.rg-list .action-block .panel-form { flex: 1 1 260px; margin: 0; padding: 0; }
.rg-list .action-block .form-group { margin: 0; }
.rg-list .action-block .form-control {
  height: 40px; font-size: 14px; padding: 8px 14px;
  border: 1px solid var(--rg-line, #E2ECF2);
  border-radius: var(--rg-radius-sm, 10px);
  box-shadow: none; background: #fff; color: var(--rg-ink, #0E2A38);
}
.rg-list .action-block .form-control:focus {
  border-color: var(--rg-blue, #0E9DD9);
  box-shadow: 0 0 0 3px var(--rg-info-bg, #E3F3FB);
}
.rg-list .action-block .btn {
  height: 40px; line-height: 24px; padding: 7px 16px;
  border-radius: var(--rg-radius-sm, 10px);
  font-size: 14px; font-weight: 600; box-shadow: none; text-shadow: none;
}
.rg-list .action-block .btn-default {
  background: #fff; border: 1px solid var(--rg-line, #E2ECF2); color: var(--rg-ink, #0E2A38);
}
.rg-list .action-block .btn-default:hover { background: var(--rg-surface-2, #F7FAFC); }
.rg-list .action-block .btn-action {
  background: var(--rg-green, #2FA84F); border: 1px solid var(--rg-green, #2FA84F); color: #fff;
}
.rg-list .action-block .btn-action:hover { filter: brightness(0.94); color: #fff; }
.rg-list .action-block .btn .icon { margin-right: 6px; }

.rg-list .rg-card {
  background: var(--rg-surface, #fff);
  border: 1px solid var(--rg-line, #E2ECF2);
  border-radius: var(--rg-radius, 14px);
  overflow: hidden;
}
.rg-list .table-list { margin: 0; }
.rg-list .table > tbody > tr > td.no-data {
  padding: 40px 16px; text-align: center; color: var(--rg-ink-3, #8AA2AF);
}

.rg-cell-main { font-weight: 600; color: var(--rg-ink, #0E2A38); }
.rg-cell-sub  { font-size: 12px; color: var(--rg-ink-3, #8AA2AF); margin-top: 2px; }
.rg-muted     { color: var(--rg-ink-3, #8AA2AF); font-weight: 400; }
.rg-mono      { font-family: var(--rg-font-mono, 'IBM Plex Mono', ui-monospace, Menlo, monospace); font-size: 12.5px; }
.rg-id        { color: var(--rg-green, #2FA84F); font-weight: 600; }
.rg-dot {
  display: inline-block; width: 8px; height: 8px; border-radius: 50%;
  background: var(--rg-idle, #8AA2AF); margin-right: 6px; vertical-align: middle;
}
.rg-dot.is-on { background: var(--rg-ok, #2FA84F); }
.rg-pill {
  display: inline-block; padding: 3px 10px; border-radius: 999px;
  font-size: 12px; font-weight: 600; line-height: 18px; white-space: nowrap;
  border: 1px solid transparent;
}
.rg-pill-ok   { background: var(--rg-ok-bg, #E8F6EC);   color: var(--rg-ok, #2FA84F);   border-color: var(--rg-ok-line, #BFE5CB); }
.rg-pill-info { background: var(--rg-info-bg, #E3F3FB); color: var(--rg-blue, #0E9DD9); border-color: var(--rg-info-line, #B9E0F4); }
.rg-pill-idle { background: var(--rg-idle-bg, #EEF2F5); color: var(--rg-ink-2, #4F6B7A); border-color: var(--rg-idle-line, #D6E0E7); }

.rg-list td.actions { text-align: right; white-space: nowrap; }
.rg-list td.actions .btn.icon {
  width: 34px; height: 34px; padding: 0; line-height: 32px;
  border: 1px solid var(--rg-line, #E2ECF2); border-radius: 8px;
  background: #fff; box-shadow: none;
}
.rg-list td.actions .btn.icon:hover { background: var(--rg-surface-2, #F7FAFC); }
.rg-list td[data-editable-field] { cursor: text; }

.rg-list .rg-table-foot {
  display: flex; justify-content: space-between; align-items: center;
  gap: 10px; flex-wrap: wrap;
  padding: 12px 16px; border-top: 1px solid var(--rg-line, #E2ECF2);
  font-size: 13px; color: var(--rg-ink-2, #4F6B7A);
}
.rg-list .nav-pagination { margin: 0; }
.rg-list .pagination { margin: 0; display: flex; gap: 6px; }
.rg-list .pagination > li > a, .rg-list .pagination > li > span,
.rg-list .pagination .page-link {
  border: 1px solid var(--rg-line, #E2ECF2); color: var(--rg-ink, #0E2A38);
  border-radius: 8px; min-width: 36px; text-align: center; padding: 6px 10px;
  background: #fff; margin: 0; line-height: 20px;
}
.rg-list .pagination > .active > a, .rg-list .pagination > .active > span,
.rg-list .pagination .page-item.active .page-link {
  background: #fff; border-color: var(--rg-green, #2FA84F); color: var(--rg-green, #2FA84F);
}
.rg-list .pagination > .disabled > a, .rg-list .pagination > .disabled > span,
.rg-list .pagination .page-item.disabled .page-link { color: var(--rg-ink-3, #8AA2AF); background: #fff; }

@media (max-width: 767px) {
  .rg-report .table > tbody > tr > td, .rg-list .table > tbody > tr > td { padding: 10px 12px; }
  .rg-list .action-block .btn { flex: 1 1 auto; }
}

/* 2026-10-05 drivers page: licence expiry states */
.rg-pill-danger { background: #fdecec; color: #b91c1c; }
.rg-pill-warn { background: #fff4e5; color: #b45309; }
