/* Residential (Retail Roofing) surfaces — only when customer_vertical =
   Residential and feature flag residential-rms / ff_residential is on.
   Commercial layout untouched. */

.res-pay-fork {
  margin: 0 0 18px;
  padding: 14px 16px;
  border: 1px solid var(--border, #d8d8d8);
  border-radius: 2px;
  background: #fafafa;
}
.res-pay-fork-lbl {
  font: 800 11px/1.2 Arial, sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--ink, #202020);
  margin-bottom: 4px;
}
.res-pay-fork-hint {
  margin: 0 0 10px;
  font: 400 12px/1.4 Arial, sans-serif;
  color: var(--gray, #404040);
}
.res-pay-fork-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.res-pay-btn {
  font: 700 12px/1 Arial, sans-serif;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 10px 16px;
  border: 1px solid #c8c8c8;
  border-radius: 2px;
  background: #fff;
  color: var(--ink, #202020);
  cursor: pointer;
}
.res-pay-btn.on,
.res-pay-btn:hover {
  border-color: var(--red, #E92A2C);
  color: var(--red-dark, #A71F23);
  background: linear-gradient(180deg, #fff, #fff5f5);
}
.res-yn { display: flex; gap: 16px; align-items: center; padding-top: 6px; }
.res-yn label { font: 500 13px/1.3 Arial, sans-serif; display: inline-flex; gap: 6px; align-items: center; }

.res-inline-insp {
  margin: 16px 0;
  padding: 14px 16px;
  border-left: 3px solid var(--red, #E92A2C);
  background: #fff;
}
.res-inline-insp-head {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 10px;
}
.res-inline-insp-head b {
  font: 800 12px/1.2 Arial, sans-serif;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.res-inline-insp-head span { font: 400 12px/1.4 Arial, sans-serif; color: var(--gray, #404040); }

.res-claim-card .d-card-title,
.res-qg-card .qg-card-head h2 { /* inherit */ }
.res-carrier-upload {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--border, #e6e6e6);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.res-carrier-upload-lbl {
  flex: 1 1 100%;
  font: 800 11px/1 Arial, sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.res-carrier-status { flex: 1 1 100%; font: 400 12px/1.4 Arial, sans-serif; color: var(--gray, #404040); }
.res-carrier-status.ok { color: #1b7a3c; }
.res-carrier-status.err { color: var(--red-dark, #A71F23); }

.res-fin-table td:first-child { width: 55%; color: var(--gray, #404040); }
.res-fin-table tr.res-fin-total td { border-top: 2px solid var(--ink, #202020); padding-top: 10px; }
.res-flag {
  display: inline-block;
  margin-left: 6px;
  font: 700 10px/1 Arial, sans-serif;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--red-dark, #A71F23);
}

.res-ppt-card .ppt-role-adjuster .ppt-av { background: #5a6a7a; }

.res-ho-block {
  padding: 12px 16px 4px;
  border-bottom: 1px solid var(--border, #e6e6e6);
}
.res-ho-section { margin-bottom: 14px; }
.res-ho-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 640px) {
  .res-ho-grid { grid-template-columns: 1fr; }
}
.res-ho-row {
  display: flex;
  gap: 6px;
  align-items: center;
  margin-bottom: 6px;
}
.res-ho-row .d-edit-in { flex: 1; }
.res-ho-rm {
  min-width: 32px;
  padding: 6px 8px;
  line-height: 1;
}
.res-ho-prior {
  margin: 0;
  font: 600 12px/1.4 Arial, sans-serif;
  color: var(--ink, #202020);
}
.res-ho-prior--empty {
  color: var(--gray, #606060);
  font-weight: 500;
  font-style: italic;
}
.res-scope-derived {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 7px;
  border-radius: 2px;
  background: #eef4fa;
  border: 1px solid #c5d4e0;
  font: 700 10px/1.2 Arial, sans-serif;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #3a556e;
  vertical-align: middle;
}

.res-swath-match {
  margin-top: 10px;
  padding: 8px 10px;
  background: #f4f8f4;
  border: 1px solid #c5d9c5;
  border-radius: 2px;
  font: 400 12px/1.4 Arial, sans-serif;
}
.res-swath-match.miss {
  background: #fff8f4;
  border-color: #e0c4b0;
}

.opp-opportunity-row--res-class {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 8px;
}
@media (max-width: 640px) {
  .opp-opportunity-row--res-class { grid-template-columns: 1fr; }
}

.settings-row--select {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.settings-row--select select {
  font: 600 12px/1.2 Arial, sans-serif;
  padding: 8px 10px;
  border: 1px solid #c8c8c8;
  border-radius: 2px;
  background: #fff;
  min-width: 160px;
}
