/* Independent layout foundation for the laboratory housing overview. */
body.deesco-connected-lab .deesco-connected-lab__housing {
  width: min(100%, 80rem);
  margin: 0 auto;
  padding: 1.75rem clamp(1rem, 4vw, 2.625rem) 2.625rem;
  color: var(--lab-ink, #1e2d25);
  font-family: Arial, sans-serif;
}

body.deesco-connected-lab .deesco-connected-lab__housing-header {
  margin: 0 0 1.5rem;
}

body.deesco-connected-lab .deesco-connected-lab__housing-header h1 {
  margin: 0;
  color: var(--lab-ink, #1e2d25);
  font-size: clamp(1.5rem, 2vw, 1.875rem);
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.15;
}

body.deesco-connected-lab .deesco-connected-lab__housing-header p {
  margin: .5rem 0 0;
  color: var(--lab-muted, #64756a);
  line-height: 1.5;
}

/* Reserve a stable area while the housing recommendation is generated. */
body.deesco-connected-lab .deesco-connected-lab__housing > [data-exact-page-recommendation="true"][data-page-scope="housing"] {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: .9rem;
  height: 10.25rem;
  margin: 0 0 1rem;
  padding: 1.05rem 1.05rem 1rem;
  border: 1px solid color-mix(in srgb, var(--p-surface-200, #e5e7eb) 72%, #fff);
  border-radius: var(--p-border-radius-lg, 1rem);
  background: radial-gradient(circle at top left, color-mix(in srgb, var(--p-primary-500, #2e9f59) 10%, #fff) 0%, transparent 34%), linear-gradient(180deg, color-mix(in srgb, #6d8193 4%, #fff) 0%, var(--p-surface-0, #fff) 100%);
  box-shadow: 0 1rem 2.25rem -2rem rgba(15, 23, 42, .24), inset 0 1px 0 rgba(255, 255, 255, .7);
  overflow: auto;
}

body.deesco-connected-lab .deesco-connected-lab__housing > [data-exact-page-recommendation="true"][data-page-scope="housing"] [data-exact-page-recommendation-body="true"] p {
  margin: 0;
}

@media (max-width: 40rem) {
  body.deesco-connected-lab .deesco-connected-lab__housing > [data-exact-page-recommendation="true"][data-page-scope="housing"] {
    height: 11.5rem;
  }
}

/* The always-visible building summary keeps the compact production heading. */
body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-overview-edit-card="true"] h2 {
  font-size: 1.125rem;
  line-height: 1.35;
  font-weight: 700;
}

/* At-a-glance building facts: a compact, scannable summary card. */
body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-overview-edit-card="true"] {
  overflow: hidden;
  border: 1px solid var(--lab-line, #dce6df);
  border-radius: var(--lab-radius-md, 1rem);
  background: #fff;
  box-shadow: 0 .45rem 1.4rem rgba(25, 62, 40, .055);
}

body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-overview-edit-card="true"] .p-card-body,
body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-overview-edit-card="true"] .p-card-content {
  height: 100%;
}

body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-overview-edit-card="true"] .p-card-content {
  padding: 1.25rem;
}

body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-overview-edit-card="true"] h2 {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin: 0 0 1rem !important;
  color: var(--lab-ink, #1e2d25);
}

body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-overview-edit-card="true"] h2::before {
  display: inline-grid;
  width: 1.9rem;
  height: 1.9rem;
  place-items: center;
  border-radius: .55rem;
  background: color-mix(in srgb, var(--lab-brand, #2e9f59) 12%, #fff);
  color: var(--lab-brand, #2e9f59);
  content: "⌂";
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1;
}

body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-building-facts="true"] {
  padding-top: 1rem;
  border-top: 1px solid var(--lab-line, #dce6df);
}

body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-building-facts="true"] > div {
  min-width: 0;
  padding: .7rem .75rem;
  border-radius: .65rem;
  background: var(--p-surface-50, #f7faf8);
}

body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-building-facts="true"] dt {
  color: var(--lab-muted, #64756a) !important;
  font-size: .7rem !important;
  font-weight: 700;
  letter-spacing: .035em;
  text-transform: uppercase;
}

body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-building-facts="true"] dd {
  margin-top: .3rem !important;
  color: var(--lab-ink, #1e2d25) !important;
  font-size: .9rem !important;
  line-height: 1.3;
}

/* Match the compact diagnostic-card titles from the production interface. */
body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-dpe-card="true"],
body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-edpe-card="true"] {
  overflow: hidden;
  border: 1px solid var(--lab-line, #dce6df);
  border-radius: var(--lab-radius-md, 1rem);
  background: #fff;
  box-shadow: 0 .45rem 1.4rem rgba(25, 62, 40, .055);
}

body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-dpe-card="true"] .p-card-body,
body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-edpe-card="true"] .p-card-body {
  height: 100%;
  padding: 1.25rem;
}

body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-dpe-card="true"] .p-card-content,
body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-edpe-card="true"] .p-card-content {
  height: 100%;
}

body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-dpe-card="true"] .p-card-title h2,
body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-edpe-card="true"] .p-card-title h2 {
  font-size: 1.125rem;
  line-height: 1.3;
}

/* Diagnostic calls to action: standalone equivalent of the production buttons. */
body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-dpe-card="true"] a,
body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-edpe-card="true"] a { display:block; text-decoration:none; }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-diagnostic-action { display:inline-flex; width:100%; min-height:2.75rem; align-items:center; justify-content:center; padding:.65rem 1rem; border:1px solid transparent; border-radius:.6rem; font:inherit; font-size:.9rem; font-weight:650; line-height:1.2; cursor:pointer; transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease; }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-diagnostic-action--primary { background:var(--p-primary-500, #2e9f59); color:var(--p-primary-contrast-color, #fff); box-shadow:0 .35rem .8rem rgba(28,116,65,.16); }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-diagnostic-action--secondary { border-color:var(--p-primary-500, #2e9f59); background:var(--p-surface-0, #fff); color:var(--p-primary-600, #247d47); }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-diagnostic-action:hover { transform:translateY(-1px); }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-diagnostic-action--primary:hover { background:var(--p-primary-600, #247d47); box-shadow:0 .55rem 1rem rgba(28,116,65,.22); }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-diagnostic-action--secondary:hover,
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-diagnostic-action--secondary:hover .p-button-label {
  background: color-mix(in srgb, var(--p-primary-500, #2e9f59) 8%, #fff);
  color: var(--p-primary-600, #247d47) !important;
}

body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-diagnostic-actions {
  display:flex;
  flex-direction:column;
  gap:.5rem;
  margin-top: .85rem !important;
}

@media (min-width: 48rem) {
  body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-dpe-card="true"] .p-card-title h2,
  body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-edpe-card="true"] .p-card-title h2 {
    font-size: 1.25rem;
  }
}

/* Aerial view card: map on the left, home information on the right. */
body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-address-card="true"] .p-card-content > div {
  display: flex;
  flex-direction: column;
}

body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-roof-map="true"] {
  flex: 0 0 auto;
}

body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-address-panel="true"] {
  flex: 1 1 auto;
}

/* Same eDPE confidence and completion panel as the detailed result, placed
   after the diagnostics so the next useful action remains at page end. */
body.deesco-connected-lab .deesco-connected-lab__housing-precision { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:1rem 1.5rem; margin-top:1rem; padding:1.25rem; border:1px solid color-mix(in srgb, var(--lab-brand, #2e9f59) 24%, #fff); border-radius:var(--lab-radius-md, 1rem); background:linear-gradient(135deg, color-mix(in srgb, var(--lab-brand, #2e9f59) 13%, #fff), #fff 68%); box-shadow:0 .45rem 1.4rem rgba(25,62,40,.055); }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-copy > span, body.deesco-connected-lab .deesco-connected-lab__housing-precision-question > div > span { color:var(--lab-brand, #2e9f59); font-size:.72rem; font-weight:750; letter-spacing:.09em; text-transform:uppercase; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision h2 { margin:.3rem 0; color:var(--lab-ink, #1e2d25); font-size:1.15rem; line-height:1.3; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-copy p, body.deesco-connected-lab .deesco-connected-lab__housing-precision-guide { margin:0; color:var(--lab-muted, #64756a); font-size:.9rem; line-height:1.5; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-score { width:7.25rem; align-self:start; padding:.85rem; border:1px solid color-mix(in srgb, var(--lab-brand, #2e9f59) 19%, #fff); border-radius:.8rem; background:#fff; box-shadow:0 .25rem .65rem rgba(25,62,40,.06); }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-score > div:first-child { display:flex; align-items:baseline; gap:.15rem; color:var(--lab-brand, #2e9f59); }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-score strong { font-size:1.5rem; line-height:1; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-score > span { display:block; margin-top:.3rem; color:var(--lab-brand, #2e9f59); font-size:.7rem; font-weight:700; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-meter { height:.35rem; margin-top:.6rem; overflow:hidden; border-radius:99px; background:color-mix(in srgb, var(--lab-brand, #2e9f59) 15%, #fff); }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-meter span { display:block; height:100%; border-radius:inherit; background:var(--lab-brand, #2e9f59); transition:width .35s ease; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-guide, body.deesco-connected-lab .deesco-connected-lab__housing-precision-question { grid-column:1 / -1; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question { padding:1rem; border:1px solid color-mix(in srgb, var(--lab-brand, #2e9f59) 20%, #fff); border-radius:.8rem; background:rgba(255,255,255,.78); }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question p { margin:.25rem 0 0; color:var(--lab-ink, #1e2d25); font-size:.95rem; font-weight:700; line-height:1.4; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question form { display:flex; flex-direction:column; gap:.75rem; margin-top:1rem; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question input[type="number"],
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question select { display:block; box-sizing:border-box; width:100%; min-height:2.65rem; margin-top:.4rem; padding:.55rem .7rem; border:1px solid var(--lab-line, #dce6df) !important; border-radius:.5rem; outline:0; background:#fff; color:var(--lab-ink, #1e2d25); font:inherit; font-size:.9rem; box-shadow:none; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question input[type="number"]:focus,
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question select:focus { border-color:var(--lab-brand, #2e9f59) !important; box-shadow:0 0 0 .2rem color-mix(in srgb, var(--lab-brand, #2e9f59) 17%, transparent); }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question fieldset > div { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:.55rem; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question fieldset > div > label { display:flex; min-height:3rem; align-items:center; gap:.6rem; padding:.65rem .75rem; border:1px solid var(--lab-line, #dce6df) !important; border-radius:.55rem; background:#fff !important; color:var(--lab-ink, #1e2d25); font-size:.88rem; line-height:1.3; transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question fieldset > div > label:hover { border-color:color-mix(in srgb, var(--lab-brand, #2e9f59) 55%, #fff) !important; background:color-mix(in srgb, var(--lab-brand, #2e9f59) 5%, #fff) !important; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question fieldset > div > label:has(input:checked) { border-color:var(--lab-brand, #2e9f59) !important; background:color-mix(in srgb, var(--lab-brand, #2e9f59) 11%, #fff) !important; box-shadow:0 0 0 1px color-mix(in srgb, var(--lab-brand, #2e9f59) 20%, transparent); }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question input[type="radio"] { width:1.1rem; height:1.1rem; flex:0 0 auto; margin:0; accent-color:var(--lab-brand, #2e9f59); }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question input[type="radio"]:focus-visible { outline:2px solid var(--lab-brand, #2e9f59); outline-offset:2px; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question button.p-button { display:inline-flex; width:fit-content; min-height:2.65rem; align-items:center; justify-content:center; margin:0; padding:.6rem 1rem; border:1px solid var(--lab-brand, #2e9f59) !important; border-radius:.55rem; appearance:none; background:var(--lab-brand, #2e9f59) !important; color:#fff !important; font:inherit; font-size:.9rem; font-weight:700; line-height:1.2; box-shadow:0 .3rem .7rem rgba(25,62,40,.14); cursor:pointer; transition:background-color .18s ease,transform .18s ease,box-shadow .18s ease; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question button.p-button:hover:not(:disabled) { transform:translateY(-1px); background:var(--p-primary-600, #247d47) !important; box-shadow:0 .45rem .9rem rgba(25,62,40,.2); }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question button.p-button:disabled { opacity:.6; cursor:wait; }
body.deesco-connected-lab .deesco-connected-lab__housing-precision-question button.p-button .p-button-label { color:inherit; font:inherit; }
@media (max-width:38rem) { body.deesco-connected-lab .deesco-connected-lab__housing-precision { grid-template-columns:1fr; } body.deesco-connected-lab .deesco-connected-lab__housing-precision-score { width:100%; } }
@media (max-width:32rem) { body.deesco-connected-lab .deesco-connected-lab__housing-precision-question fieldset > div { grid-template-columns:1fr; } }

body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--lab-line, #dce6df);
  border-radius: var(--lab-radius-md, 1rem);
  box-shadow: 0 .35rem 1.25rem rgba(25, 62, 40, .04);
}

body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 4rem;
  padding: 1rem 1.25rem;
  color: var(--lab-ink, #1e2d25);
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}

body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure summary::before {
  display: inline-grid;
  width: 1.9rem;
  height: 1.9rem;
  flex: 0 0 auto;
  place-items: center;
  border-radius: .55rem;
  background: color-mix(in srgb, var(--lab-brand, #2e9f59) 12%, #fff);
  color: var(--lab-brand, #2e9f59);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1;
}

body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure--insulation summary::before { content: "▧"; }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure--equipment summary::before { content: "♨"; }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure__label { margin-right:auto; margin-left:.65rem; }

body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure summary::-webkit-details-marker { display: none; }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure summary::after { content:"⌄"; color:var(--lab-brand, #2e9f59); font-size:1.35rem; transition:transform .18s ease; }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure[open] summary { border-bottom:1px solid var(--lab-line, #dce6df); }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure[open] summary::after { transform:rotate(180deg); }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure__content { position:relative; padding:1.25rem; }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure__content [data-exact-housing-overview-edit="true"] { top:.8rem; right:.8rem; opacity:1; }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure dl { padding-top:1rem; padding-right:2.5rem; border-top:1px solid var(--lab-line, #dce6df); }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure dl > div { min-width:0; padding:.7rem .75rem; border-radius:.65rem; background:var(--p-surface-50, #f7faf8); }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure dt { color:var(--lab-muted, #64756a) !important; font-size:.7rem !important; font-weight:700; letter-spacing:.035em; text-transform:uppercase; }
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-disclosure dd { margin-top:.3rem !important; color:var(--lab-ink, #1e2d25) !important; font-size:.9rem !important; line-height:1.3; }

@media (min-width: 48rem) {
  body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-address-card="true"] .p-card-content > div {
    flex-direction: row;
  }
}

/* DPE scales mirror the calibrated dashboard proportions. */
body.deesco-connected-lab .deesco-connected-lab__housing div[style*="clip-path"] {
  display: flex;
  align-items: center;
  height: 2rem !important;
}

body.deesco-connected-lab .deesco-connected-lab__housing div[style*="clip-path"] > span {
  padding-left: .7rem;
}

body.deesco-connected-lab .deesco-connected-lab__housing div[style*="clip-path"] + div {
  display: flex;
  min-width: 3.1rem;
  align-items: center;
  justify-content: center;
  text-align: center;
}

body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-dpe-scale-row {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-dpe-score-value {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
  margin-left: auto;
}

body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-dpe-score-connector {
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 0;
  width: 100%;
  height: 1px;
  background: var(--p-slate-800, #1e293b);
  transform: translateY(-50%);
}

body.deesco-connected-lab .deesco-connected-lab__housing div[style*="clip-path"] + div > div {
  width: 100%;
  text-align: center;
}

body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-score-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.1rem;
  min-height: 2rem;
  padding: .25rem .55rem;
  border-radius: .35rem;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1;
  text-align: center;
}

/* Keep the grade badge visually distinct from its DPE/eDPE heading. */
body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-dpe-scale-heading {
  column-gap: 1.25rem;
}

body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-dpe-scale-heading > :first-child {
  padding-right: .5rem;
}

body.deesco-connected-lab .deesco-connected-lab__housing .deesco-housing-dpe-scale-heading .deesco-housing-score-label {
  flex: 0 0 auto;
  margin-left: auto;
}

/* Separate the renovation projection from the diagnostic cards above it. */
body.deesco-connected-lab .deesco-connected-lab__housing [data-exact-housing-renovation-trajectory="true"] {
  margin-top: 1.5rem;
}

body.deesco-connected-lab .deesco-connected-lab__housing div[style*="clip-path"] + div {
  padding: .18rem .35rem;
  color: var(--lab-ink, #1e2d25);
  font-weight: 800;
  background: #fff;
  border: 1px solid var(--p-slate-800, #1e293b);
  border-radius: var(--p-border-radius-sm, .5rem);
  box-shadow: 0 1px 4px rgba(28, 38, 31, .12);
}

@media (min-width: 48rem) {
  body.deesco-connected-lab .deesco-connected-lab__housing div[style*="clip-path"] {
    height: 2.2rem !important;
  }

  body.deesco-connected-lab .deesco-connected-lab__housing div[style*="clip-path"] > span {
    padding-left: .9rem;
  }
}
