.gp-diagnosis-card {
  padding: 14px;
  display: grid;
  gap: 12px;
}

.gp-diag-empty,
.gp-diag-alert {
  border: 1px solid var(--gp-border, rgba(255,255,255,.12));
  background: var(--gp-card-soft, rgba(255,255,255,.04));
  border-radius: 14px;
  padding: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--gp-text, #e3e5fc);
}

.gp-diag-empty i {
  font-size: 22px;
  color: var(--gp-accent, #8b5cf6);
}

.gp-diag-empty span {
  color: var(--gp-muted, #9da1c7);
  margin-inline-start: auto;
}

.gp-diag-alert.is-fail {
  border-color: rgba(239, 68, 68, .55);
  color: #fecaca;
  background: rgba(239, 68, 68, .12);
}

.gp-diag-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.gp-diag-kpis > div {
  border: 1px solid var(--gp-border, rgba(255,255,255,.12));
  background: var(--gp-card-soft, rgba(255,255,255,.04));
  border-radius: 14px;
  padding: 12px;
}

.gp-diag-kpis strong {
  display: block;
  font-size: 22px;
  line-height: 1;
}

.gp-diag-kpis span {
  color: var(--gp-muted, #9da1c7);
  font-size: 12px;
}

.gp-diagnosis-results {
  display: grid;
  gap: 8px;
}

.gp-diag-row {
  display: grid;
  grid-template-columns: 84px 1fr;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid var(--gp-border, rgba(255,255,255,.12));
  background: var(--gp-card-soft, rgba(255,255,255,.04));
}

.gp-diag-row strong {
  display: block;
  margin-bottom: 3px;
}

.gp-diag-row p {
  margin: 0;
  color: var(--gp-muted, #9da1c7);
  font-size: 13px;
}

.gp-diag-status {
  text-transform: uppercase;
  font-weight: 800;
  font-size: 11px;
  letter-spacing: .05em;
  text-align: center;
  padding: 6px 8px;
  border-radius: 999px;
}

.gp-diag-row.is-pass .gp-diag-status,
.gp-diag-kpis .is-pass strong { color: #86efac; }
.gp-diag-row.is-warn .gp-diag-status,
.gp-diag-kpis .is-warn strong { color: #fde68a; }
.gp-diag-row.is-fail .gp-diag-status,
.gp-diag-kpis .is-fail strong { color: #fecaca; }

.gp-diag-row.is-pass { border-color: rgba(34,197,94,.3); }
.gp-diag-row.is-warn { border-color: rgba(245,158,11,.35); }
.gp-diag-row.is-fail { border-color: rgba(239,68,68,.45); }

@media (max-width: 760px) {
  .gp-diag-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gp-diag-row { grid-template-columns: 1fr; }
  .gp-diag-empty { align-items: flex-start; flex-direction: column; }
  .gp-diag-empty span { margin-inline-start: 0; }
}

/* Patch 08 — force page-specific cards/modals/tables to follow Theme Controller */
.gp-offer-modal-card,
.gp-offer-view-card,
.gp-offer-edit-left,
.gp-offer-edit-right,
.gp-view-media,
.gp-view-info,
.gp-view-field,
.gp-import-view-card,
.gp-import-view-field,
.gp-import-view-media,
.gp-import-stats div,
.gp-import-results,
.gp-import-card,
.gp-import-help,
.gp-diag-card,
.gp-diag-row,
.gp-diag-section,
.gp-diag-kpis > *,
.gp-row-action-btn,
.gp-status-dot,
.gp-import-status-dot,
.gp-import-url-btn {
  background-color: color-mix(in srgb, var(--gp-card) 86%, var(--gp-bg) 14%);
  border-color: var(--gp-border-soft) !important;
  color: var(--gp-text);
}
.gp-offer-single-popup input,
.gp-offer-single-popup select,
.gp-offer-single-popup textarea,
.gp-import-options input,
.gp-import-options select,
.gp-import-textarea,
.gp-import-textarea-04l {
  background: var(--gp-card-2) !important;
  border-color: var(--gp-border-soft) !important;
  color: var(--gp-text) !important;
}
.gp-offer-modal-backdrop,
.gp-import-view-backdrop {
  background: color-mix(in srgb, var(--gp-bg) 68%, black 32%) !important;
}
