/* V81: smoked glass for the approved summary and Operating Inputs only.
   Paint is independent of the numeric layout and all PDF copies. */
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) {
  --input-glass-edge:rgba(206,225,230,.28);
  --input-glass-divider:rgba(206,225,230,.18);
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2):has(#roiTabInputs[aria-selected="true"]) {
  background-color:rgba(13,22,25,.56);
  border-color:var(--input-glass-edge);
  box-shadow:0 14px 40px rgba(0,0,0,.12);
}
/* One continuous surface: no independently painted cells or padded side strip. */
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) .roi-summary {
  --roi-outline:#607276;
  background-color:rgba(26,37,41,.54);
  background-image:linear-gradient(180deg,rgba(224,240,245,.10),rgba(224,240,245,.025) 44%,rgba(7,13,16,.10));
  border-color:var(--roi-outline);
  outline:none;
  box-shadow:none;
  -webkit-backdrop-filter:blur(18px) saturate(65%);
  backdrop-filter:blur(18px) saturate(65%);
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) .roi-summary::before {
  content:"";
  inset:0;
  width:auto;
  height:auto;
  border:1px solid var(--roi-outline);
  background:none;
  z-index:1;
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) .roi-summary[data-presentation="v76"] .result {
  background:transparent;
  border-color:var(--roi-outline);
}
/* One stroke per edge. Keep the existing cell padding and text centres;
   the mobile horizontal divider bridges the padding without a second border. */
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) .roi-workbench-head {
  border-bottom:0;
}
@media (max-width:720px) {
  body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) .roi-summary[data-presentation="v76"] .energy-summary-detail-v74 {
    border-bottom:0;
  }
  body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) .roi-summary[data-presentation="v76"] .energy-summary-detail-v74::after {
    left:calc(-1 * var(--roi-summary-edge-inset));
    right:calc(-1 * var(--roi-summary-edge-inset));
    bottom:0;
    height:0;
    border-bottom:1px solid var(--roi-outline);
    background:none;
  }
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs {
  --muted:#c9d5d8;
  --line:var(--input-glass-divider);
  background:linear-gradient(180deg,rgba(28,40,44,.22),rgba(12,20,23,.26));
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row {
  border-color:var(--input-glass-edge);
  background-color:rgba(30,42,47,.48);
  background-image:linear-gradient(180deg,rgba(223,238,243,.055),rgba(223,238,243,.012) 72px,transparent 180px);
  box-shadow:inset 0 1px 0 rgba(239,249,253,.10),0 8px 24px rgba(0,0,0,.09);
  -webkit-backdrop-filter:blur(12px) saturate(70%);
  backdrop-filter:blur(12px) saturate(70%);
  transition:border-color .18s ease,background-color .18s ease,opacity .2s ease,transform .2s ease,padding .24s ease;
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row:hover {
  background-color:rgba(37,50,55,.51);
  border-color:rgba(221,238,243,.39);
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row:focus-within {
  background-color:rgba(35,49,54,.55);
  border-color:rgba(164,216,219,.59);
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs :is(.equipment-row-head,.heatpump-inputs-v73,.common-parameters) {
  border-color:var(--input-glass-divider);
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs :is(.equipment-kicker,.equipment-identity,.equipment-type-toggle,.equipment-location-toggle,.heatpump-reference-v74 > summary) {
  color:#d8e9eb;
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs :is(.equipment-builder-head,.common-parameters) .equipment-kicker {
  color:#9bd0ed;
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-location-control {
  border-color:var(--input-glass-edge) !important;
  background:rgba(8,15,19,.40);
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-location-input {
  background:transparent;
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs :is(.equipment-type-toggle,.equipment-location-toggle,.equipment-location-status,.currency-menu-toggle) {
  background:linear-gradient(180deg,rgba(184,210,219,.075),rgba(16,28,34,.24));
  border-color:var(--input-glass-edge) !important;
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs :is(.equipment-row > .field,.heatpump-field-v73,.common-parameters .field) > input:not([aria-invalid="true"]),
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row[data-v76-input-alignment] :is(.power-combobox,.heatpump-gas-control-v75) > input:not([aria-invalid="true"]) {
  background-color:rgba(6,14,19,.52);
  background-image:linear-gradient(180deg,rgba(0,0,0,.07),rgba(199,225,235,.018));
  border-color:rgba(196,219,227,.29) !important;
  box-shadow:0 1px 0 rgba(235,249,253,.045);
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row[data-v76-input-alignment] :is(.power-menu-toggle,.heatpump-gas-unit-toggle-v76) {
  border-color:rgba(196,219,227,.29) !important;
  background:linear-gradient(180deg,rgba(201,224,233,.10),rgba(32,49,59,.28));
  color:#e2edf0;
}
/* Reserve the unit only on its actual side. A mirrored empty slot was
   squeezing 0.0528 / 0.46015 even though the control had ample space. */
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row[data-v76-input-alignment] .heatpump-gas-control-v75 > input {
  padding-left:5px !important;
  padding-right:var(--equipment-unit-slot) !important;
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs :is(input,.currency-menu-toggle,.equipment-type-toggle,.equipment-location-toggle,.power-menu-toggle,.heatpump-gas-unit-toggle-v76):not([aria-invalid="true"]):is(:focus-visible,[aria-expanded="true"]) {
  border-color:#a1cdd5 !important;
  outline-color:#a1cdd5;
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs :is(.equipment-row > .field,.heatpump-field-v73,.common-parameters .field) > input:not([aria-invalid="true"]):focus,
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row[data-v76-input-alignment] :is(.power-combobox,.heatpump-gas-control-v75) > input:not([aria-invalid="true"]):focus {
  border-color:#a1cdd5 !important;
}
/* Body-mounted input menus use the same material, without changing carbon menus. */
body[data-page="project"] :is(.power-options,.equipment-type-options,.currency-options,.heatpump-gas-unit-options-v76) {
  border-color:rgba(206,225,230,.36);
  background:linear-gradient(180deg,rgba(38,54,62,.95),rgba(14,26,32,.97));
  box-shadow:0 12px 36px rgba(0,0,0,.32),inset 0 1px 0 rgba(231,245,250,.10);
  -webkit-backdrop-filter:blur(16px);
  backdrop-filter:blur(16px);
}
/* Keep the existing columns/order at landscape widths, but prevent a fan's
   fixed minimum tracks from stretching the shared grid and clipping heat pumps. */
@media (min-width:721px) and (max-width:1100px) {
  body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs :is(.equipment-builder,.equipment-rows,.equipment-row) { min-width:0; max-width:100%; }
  body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-rows { grid-template-columns:minmax(0,1fr); }
  body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row:not([data-equipment-type="heatpump"]):not([data-equipment-type="solar"]),
  body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row:not([data-equipment-type="heatpump"]):not([data-equipment-type="solar"]) > .equipment-row-head {
    grid-template-columns:minmax(150px,.95fr) minmax(0,.78fr) minmax(0,1.16fr) minmax(0,1.22fr) minmax(0,.95fr) minmax(0,1.08fr) minmax(0,1.08fr);
  }
}
@media (prefers-reduced-motion:reduce) {
  body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row { transition:none; }
}

/* V89b: iOS draws the native caret separately from the composited web layer.
   Keep the editing surface stationary, without changing its text geometry.
   Let entrance timing finish, pause decorative animation, and retain the glass
   gradients/edges while the focused row temporarily avoids backdrop capture.
   This is a native-caret compatibility guard; it does not draw a fake caret. */
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs:focus-within,
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row:focus-within {
  transform:none !important;
  opacity:1 !important;
  will-change:auto !important;
  transition:none !important;
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row:focus-within {
  /* The first animation is equipmentRowIn; coarse pointers also have the
     second touchPanelBreath animation. Do not freeze a newly focused row
     at the invisible first entrance frame or restart it on blur. */
  animation-play-state:running,paused !important;
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row:focus-within::before,
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs .equipment-row:focus-within::after {
  animation-play-state:paused !important;
  transition:none !important;
}
body[data-page="project"] #roi .roi-panel:not(.pdf-snapshot-copy-v2) #roiViewInputs input:focus {
  animation-play-state:paused !important;
  transition:none !important;
}
