/* ─── DealerDMS — Reports module styles ──────────────────────────────────────
   Theme-token driven (--surface / --surface-2 / --text / --text-muted / --border
   / --primary) so it works in every theme incl. dark. No hardcoded brand colours
   except the chart palette (which is intentionally fixed for legibility). */

.rp-muted { color: var(--text-muted, #64748b); font-size: 12px; }

/* ── catalogue ── */
.rp-group { margin: 22px 0; }
.rp-group-title { font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: var(--text-muted, #64748b); margin: 0 0 10px; }
.rp-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.rp-card { position: relative; display: flex; gap: 12px; align-items: flex-start; text-align: left;
  background: var(--surface, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 12px;
  padding: 14px 16px; cursor: pointer; transition: .12s; color: var(--text, #0f172a); font: inherit; }
.rp-card:hover { border-color: var(--primary, #2f6fb0); box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.rp-card-icon { font-size: 24px; line-height: 1; flex: none; }
.rp-card-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.rp-card-name { font-weight: 700; font-size: 15px; }
.rp-card-desc { font-size: 12.5px; color: var(--text-muted, #64748b); line-height: 1.35; }
.rp-card-del { position: absolute; top: 8px; right: 10px; font-size: 12px; color: var(--text-muted, #94a3b8);
  width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; border-radius: 6px; }
.rp-card-del:hover { background: var(--surface-2, #f1f5f9); color: var(--text, #0f172a); }

/* ── builder (head = the shared .prt-head component) ── */
.rp-filters { display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-end;
  background: var(--surface, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 12px;
  padding: 14px 16px; margin: 12px 0; }
.rp-field { display: flex; flex-direction: column; gap: 4px; }
.rp-field > span { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .3px;
  color: var(--text-muted, #64748b); }
.rp-field input, .rp-field select { border: 1px solid var(--border, #cbd5e1); border-radius: 8px;
  padding: 8px 10px; font-size: 14px; font-family: inherit; background: var(--surface, #fff);
  color: var(--text, #0f172a); outline: none; }
.rp-field input:focus, .rp-field select:focus { border-color: var(--primary, #2f6fb0); }

/* ── summary stat cards ── */
.rp-summary { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; margin: 14px 0; }
.rp-stat { background: var(--surface, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 12px; padding: 14px 16px; }
.rp-stat-val { font-size: 22px; font-weight: 800; color: var(--text, #0f172a); }
.rp-stat-label { font-size: 12px; color: var(--text-muted, #64748b); margin-top: 2px; }

/* ── chart ── */
.rp-chart { background: var(--surface, #fff); border: 1px solid var(--border, #e2e8f0); border-radius: 12px;
  padding: 16px; margin: 14px 0; }
.rp-pie { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.rp-legend { display: flex; flex-direction: column; gap: 6px; }
.rp-legend-item { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text, #0f172a); }
.rp-legend-item span { width: 12px; height: 12px; border-radius: 3px; flex: none; }

/* ── results table ── */
.rp-result-count { margin: 8px 0; }
.rp-table-wrap { overflow-x: auto; border: 1px solid var(--border, #e2e8f0); border-radius: 12px; }
.rp-table { width: 100%; border-collapse: collapse; background: var(--surface, #fff); }
.rp-table th { text-align: left; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .02em;
  color: var(--text-muted, #64748b); padding: 10px 14px; border-bottom: 1px solid var(--border, #e2e8f0);
  background: var(--surface-2, #f8fafc); position: sticky; top: 0; }
.rp-table td { padding: 10px 14px; font-size: 14px; color: var(--text, #0f172a); border-bottom: 1px solid var(--border, #eef2f7); }
.rp-table tbody tr:hover { background: var(--surface-2, #f8fafc); }

/* ── schedule modal (shell = the shared .crm-modal component) ── */
.rp-modal-body { display: flex; flex-direction: column; gap: 12px; }
.rp-modal-body .rp-field { width: 100%; }
.rp-modal-body .rp-field input, .rp-modal-body .rp-field select { width: 100%; box-sizing: border-box; }
.rp-sched-list { display: flex; flex-direction: column; }
.rp-sched-row { display: flex; justify-content: space-between; align-items: center; gap: 8px;
  padding: 6px 0; border-bottom: 1px solid var(--border, #e2e8f0); font-size: 13px; }
