/* Minimal neutral styling; Breakdance can override by class selectors */
.gcrm .grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gcrm .grid .full{grid-column:1/-1}
.bd-section{padding:12px}
.bd-heading{font-size:20px;margin:10px 0}
.bd-form label{display:flex;flex-direction:column;font-size:14px}
.bd-form input, .bd-form textarea, .bd-form select{padding:8px;border:1px solid #ccc;border-radius:6px}
.bd-button{display:inline-block;margin-top:12px;padding:10px 14px;border:0;border-radius:8px;background:#111;color:#fff;cursor:pointer}
.bd-table{width:100%;border-collapse:collapse;margin-top:10px}
.bd-table th, .bd-table td{border:1px solid #ddd;padding:6px;text-align:left}
@media(max-width:900px){.gcrm .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.gcrm .grid{grid-template-columns:1fr}}

/* ══════════════════════════════════════════════════════════════
   Vendor Portal
   ══════════════════════════════════════════════════════════════ */

.gcrm-vendor-portal { max-width: 960px; margin: 0 auto; }

.gcrm-vp__subtitle {
  color: #666; font-size: 14px; margin: 0 0 20px;
}

/* Sections */
.gcrm-vp__section {
  border: 1px solid #e0e0e0; border-radius: 8px;
  padding: 20px; margin-bottom: 16px; background: #fff;
}
.gcrm-vp__legend {
  font-size: 16px; font-weight: 700; color: #111;
  padding: 0 8px;
}

/* Row helper (inline fields) */
.gcrm-vp__row {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 12px; margin-top: 12px;
}
@media(max-width:640px){ .gcrm-vp__row { grid-template-columns: 1fr; } }

/* Capability / Cert / Region pills */
.gcrm-vp__pills {
  display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0;
}
.gcrm-vp__pill {
  display: flex !important; flex-direction: row !important;
  align-items: center; gap: 6px;
  padding: 6px 14px; border: 2px solid #ddd; border-radius: 20px;
  cursor: pointer; font-size: 13px; font-weight: 500;
  transition: all 0.15s;
}
.gcrm-vp__pill input[type="checkbox"] {
  width: 16px; height: 16px; margin: 0; accent-color: #111;
}
.gcrm-vp__pill:has(input:checked) {
  border-color: #111; background: #111; color: #fff;
}
.gcrm-vp__pill--cert:has(input:checked) {
  border-color: #1e40af; background: #1e40af; color: #fff;
}
.gcrm-vp__pill--region:has(input:checked) {
  border-color: #047857; background: #047857; color: #fff;
}

/* Rate card grid blocks */
.gcrm-vp__grid-block {
  border: 1px solid #e5e7eb; border-radius: 6px;
  margin-top: 14px; overflow: hidden;
}
.gcrm-vp__grid-title {
  background: #f9fafb; padding: 10px 14px; margin: 0;
  font-size: 14px; font-weight: 600; cursor: pointer;
  display: flex; align-items: center; gap: 8px;
  user-select: none;
}
.gcrm-vp__grid-title::before {
  content: '\25BC'; font-size: 10px; transition: transform 0.2s;
}
.gcrm-vp__grid-title--collapsed::before {
  transform: rotate(-90deg);
}
.gcrm-vp__grid-title + div {
  padding: 14px;
}

/* Rate table (compact inputs) */
.gcrm-vp__grid-scroll { overflow-x: auto; }
.gcrm-vp__rate-table { font-size: 13px; }
.gcrm-vp__rate-table th {
  background: #f3f4f6; font-weight: 600;
  padding: 6px 8px; white-space: nowrap; text-align: center;
  position: sticky; top: 0;
}
.gcrm-vp__rate-table td { padding: 4px; }
.gcrm-vp__rate-table td:first-child {
  font-weight: 500; white-space: nowrap; padding: 4px 10px;
}
.gcrm-vp__rate-table input[type="number"] {
  width: 70px; padding: 5px 4px; text-align: right;
  font-size: 13px; border: 1px solid #d1d5db; border-radius: 4px;
}
.gcrm-vp__rate-table input:focus {
  outline: 2px solid #111; outline-offset: -1px;
}

.gcrm-vp__hint {
  font-size: 12px; color: #888; margin: 4px 0 8px;
}

/* File inputs */
.gcrm-vp__section input[type="file"] {
  padding: 10px; border: 2px dashed #d1d5db; border-radius: 6px;
  background: #fafafa; cursor: pointer;
}
.gcrm-vp__section input[type="file"]:hover {
  border-color: #999; background: #f3f4f6;
}

/* Submit */
.gcrm-vp__submit-section { text-align: center; }
.gcrm-vp__terms {
  flex-direction: row !important; align-items: center;
  gap: 8px; justify-content: center; margin-bottom: 12px;
  font-size: 13px;
}
.gcrm-vp__submit-btn {
  padding: 14px 32px !important; font-size: 16px !important;
  font-weight: 600; border-radius: 8px !important;
  background: #111 !important; color: #fff !important;
  cursor: pointer; transition: background 0.15s;
}
.gcrm-vp__submit-btn:hover { background: #333 !important; }
.gcrm-vp__submit-btn:disabled { background: #999 !important; cursor: wait; }

/* Parse rate card block */
.gcrm-vp__parse-block {
  background: #f8fafc; border: 1px dashed #cbd5e1;
  border-radius: 8px; padding: 16px; margin-bottom: 16px;
}
.gcrm-vp__parse-block textarea {
  font-family: monospace; font-size: 12px; resize: vertical;
}
.gcrm-vp__parse-btn {
  margin-top: 8px !important; padding: 8px 20px !important;
  font-size: 13px !important; font-weight: 600;
}
.gcrm-vp__parse-btn:disabled {
  background: #666 !important; cursor: wait;
}
#gcrm-parse-status {
  display: inline-block; margin-left: 12px; vertical-align: middle;
}

/* Success */
.gcrm-vp__success {
  text-align: center; padding: 40px; background: #f0fdf4;
  border: 1px solid #bbf7d0; border-radius: 8px;
}
.gcrm-vp__success h3 { color: #166534; margin: 0 0 8px; }
.gcrm-vp__success p { color: #15803d; margin: 0; }
