/* CONSUMER_FOCUSED_PROPOSAL_V1
 * One application viewport after Get My Solar Proposal.
 * The landing page is no longer part of the active journey's scroll area.
 * Essential actions remain visible; only optional/long form content scrolls
 * inside its own step at small heights, zoom, and when the keyboard is open.
 */
html.ru-proposal-focus-active,
body.ru-proposal-focus-active{
  height:100%!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
body.ru-proposal-focus-active #ruPublicAppHeader,
body.ru-proposal-focus-active #ruPublicAppFooter,
body.ru-proposal-focus-active > .entry-split,
body.ru-proposal-focus-active > .steps-section{
  display:none!important;
}
body.ru-proposal-focus-active #startNewFormSection.open{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  max-width:none!important;
  height:100vh!important;
  height:100dvh!important;
  min-height:0!important;
  margin:0!important;
  padding:clamp(4px,1.2vw,14px)!important;
  z-index:2147482000!important;
  display:flex!important;
  align-items:stretch!important;
  justify-content:center!important;
  overflow:hidden!important;
  background:#f0f5fb!important;
  box-sizing:border-box!important;
}
body.ru-proposal-focus-active #startNewFormSection .entry-card{
  display:flex!important;
  flex-direction:column!important;
  flex:1 1 auto!important;
  width:100%!important;
  max-width:960px!important;
  min-width:0!important;
  min-height:0!important;
  max-height:100%!important;
  overflow:hidden!important;
  margin:0 auto!important;
  padding:8px 12px 0!important;
  border-radius:14px!important;
  box-sizing:border-box!important;
  box-shadow:0 6px 26px rgba(10,44,88,.10)!important;
}
body.ru-proposal-focus-active #startNewFormSection .entry-header{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  flex:0 0 auto!important;
  padding:0 2px 4px!important;
  min-height:35px!important;
}
body.ru-proposal-focus-active #startNewFormSection .entry-header h2{
  font-size:clamp(16px,2vw,21px)!important;
  margin:0!important;
  line-height:1.2!important;
}
body.ru-proposal-focus-active #startNewFormSection .entry-header p{
  display:none!important;
}
body.ru-proposal-focus-active #ruProposalFocusExit{
  border:1px solid #c6d8ef!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#0b5fd7!important;
  padding:7px 10px!important;
  min-height:36px!important;
  font-size:13px!important;
  font-weight:800!important;
  cursor:pointer!important;
  white-space:nowrap!important;
}
body.ru-proposal-focus-active #startNewFormSection form{
  display:flex!important;
  flex-direction:column!important;
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:hidden!important;
}
body.ru-proposal-focus-active #ruEntryUxV5Shell{
  flex:0 0 auto!important;
  margin:0 0 5px!important;
}
body.ru-proposal-focus-active #ruEntryUxV5Shell .ru-v5-visual-progress{
  padding:0 4px!important;
}
body.ru-proposal-focus-active #ruEntryUxV5Shell .ru-v5-visual-dot{
  width:24px!important;
  height:24px!important;
  margin-bottom:2px!important;
}
body.ru-proposal-focus-active #ruEntryUxV5Shell .ru-v5-visual-track{
  top:13px!important;
}
body.ru-proposal-focus-active #startNewFormSection .form-grid{
  display:flex!important;
  flex-direction:column!important;
  flex:1 1 auto!important;
  min-height:0!important;
  min-width:0!important;
  gap:0!important;
  overflow:hidden!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step[hidden]{
  display:none!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step:not([hidden]){
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  align-content:start!important;
  flex:1 1 auto!important;
  min-height:0!important;
  min-width:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable!important;
  gap:8px 12px!important;
  padding:2px 6px calc(92px + env(safe-area-inset-bottom))!important;
  box-sizing:border-box!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-head{
  grid-column:1/-1!important;
  margin:0!important;
  padding:0!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-head h3{
  font-size:17px!important;
  margin:0!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-head p{
  font-size:11px!important;
  margin:1px 0!important;
  line-height:1.25!important;
}
body.ru-proposal-focus-active #startNewFormSection #ruV5ElectricStep .ru-entry-step-actions,
body.ru-proposal-focus-active #startNewFormSection #ruV5RoofStep .ru-entry-step-actions,
body.ru-proposal-focus-active #startNewFormSection #ruV5ContactStep .ru-entry-step-actions{
  position:fixed!important;
  left:50%!important;
  right:auto!important;
  bottom:0!important;
  transform:translateX(-50%)!important;
  z-index:2147482100!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:9px!important;
  width:min(960px,100%)!important;
  max-width:100%!important;
  min-height:64px!important;
  margin:0!important;
  padding:8px 14px calc(8px + env(safe-area-inset-bottom))!important;
  box-sizing:border-box!important;
  border:1px solid #dbe6f4!important;
  border-radius:12px 12px 0 0!important;
  background:rgba(255,255,255,.98)!important;
  box-shadow:0 -5px 20px rgba(15,35,65,.12)!important;
  backdrop-filter:none!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-actions .ru-entry-next,
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-actions .ru-v5-step3-submit{
  min-height:48px!important;
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  font-size:15px!important;
  margin:0!important;
  grid-column:auto!important;
  grid-row:auto!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-actions .ru-entry-back{
  min-height:46px!important;
  flex:0 0 92px!important;
  width:92px!important;
  min-width:0!important;
  margin:0!important;
}
body.ru-proposal-focus-active #startNewFormSection #ruV5ContactStep .ru-entry-step-actions #ruV5EditRooftopFromDetails{
  font-size:12px!important;
  flex:0 1 auto!important;
}
body.ru-proposal-focus-active #startNewFormSection #ruV5RoofStep .ru-b2c-roof-progress{
  grid-column:1/-1!important;
  margin:0!important;
  padding:5px 9px!important;
  border-radius:8px!important;
}
body.ru-proposal-focus-active #startNewFormSection #ruV5RoofStep .ru-b2c-roof-progress-title{
  display:none!important;
}
body.ru-proposal-focus-active #startNewFormSection #ruV5RoofStep .ru-b2c-roof-steps{
  display:none!important;
}
body.ru-proposal-focus-active #startNewFormSection #ruB2CNextAction{
  margin:0!important;
  font-size:12px!important;
  line-height:1.3!important;
}
body.ru-proposal-focus-active #startNewFormSection #ruGoogleRooftopSelector{
  grid-column:1/-1!important;
  padding:7px!important;
  margin:0!important;
  min-width:0!important;
  max-width:100%!important;
}
body.ru-proposal-focus-active #startNewFormSection #ruGoogleRooftopSelector > div:first-child{
  font-size:14px!important;
}
body.ru-proposal-focus-active #startNewFormSection #ruGoogleRooftopSelector > div:nth-child(2){
  font-size:11px!important;
  margin:2px 0 5px!important;
  line-height:1.25!important;
}
body.ru-proposal-focus-active #startNewFormSection #ruGoogleMapWrap{
  width:100%!important;
  max-width:100%!important;
  height:clamp(170px,37dvh,370px)!important;
  min-height:170px!important;
  max-height:43dvh!important;
  margin:4px 0!important;
  border-radius:9px!important;
}
body.ru-proposal-focus-active #startNewFormSection #ruB2CConfirmRoof{
  margin:6px 0 0!important;
  min-height:50px!important;
}
body.ru-proposal-focus-active #startNewFormSection #ruV5RoofStep .ruRoofFacts,
body.ru-proposal-focus-active #startNewFormSection #ruV5RoofStep #ruB2CRoofDetails{
  margin:2px 0!important;
}
body.ru-proposal-focus-active .ru-b2c-viewport-action-dock{
  bottom:calc(70px + env(safe-area-inset-bottom))!important;
  max-width:min(930px,calc(100% - 16px))!important;
}
body.ru-proposal-focus-active #startNewFormSection #ruV5RoofStep #ruB2CMapMissingRecovery{
  width:100%!important;
  min-height:48px!important;
  margin:5px 0!important;
  border:1px solid #0b5fd7!important;
  border-radius:9px!important;
  color:#0b5fd7!important;
  background:#fff!important;
  font-weight:800!important;
}
@media(max-width:700px){
  body.ru-proposal-focus-active #startNewFormSection.open{padding:0!important;}
  body.ru-proposal-focus-active #startNewFormSection .entry-card{
    padding:6px 8px 0!important;
    border-radius:0!important;
  }
  body.ru-proposal-focus-active #startNewFormSection .ru-entry-step:not([hidden]){
    grid-template-columns:minmax(0,1fr)!important;
    gap:7px!important;
    padding:2px 3px calc(86px + env(safe-area-inset-bottom))!important;
    scrollbar-gutter:auto!important;
  }
  body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-head p{
    display:none!important;
  }
  body.ru-proposal-focus-active #startNewFormSection #ruGoogleMapWrap{
    height:clamp(165px,35dvh,290px)!important;
    min-height:165px!important;
    max-height:40dvh!important;
  }
  body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-actions{
    padding:6px 10px calc(6px + env(safe-area-inset-bottom))!important;
    min-height:62px!important;
  }
  body.ru-proposal-focus-active #startNewFormSection #ruV5ContactStep .ru-entry-step-actions{
    display:flex!important;
    grid-template-columns:none!important;
  }
  body.ru-proposal-focus-active #startNewFormSection #ruV5ContactStep #ruV5EditRooftopFromDetails{
    display:none!important;
  }
}
/* Short landscape screens, accessibility zoom and keyboard-open states may
 * require internal step scrolling. Never clip form controls or the map. */
@media(max-height:530px){
  body.ru-proposal-focus-active #startNewFormSection #ruGoogleMapWrap{
    height:150px!important;
    min-height:140px!important;
    max-height:35dvh!important;
  }
  body.ru-proposal-focus-active #startNewFormSection .entry-header{
    min-height:29px!important;
  }
}


/* CONSUMER_FOCUSED_MICRO_STAGES_V2: each main step has smaller, independent
 * task screens. Keep real controls in the DOM so validators and draft restore
 * see exactly the same values. Never force the user to scroll the landing. */
body.ru-proposal-focus-active #startNewFormSection .ru-focus-control{
  display:none!important;
  border:1px solid #b6cff2!important;
  background:#fff!important;
  color:#0757c8!important;
  border-radius:9px!important;
  padding:10px 12px!important;
  min-height:46px!important;
  font-size:14px!important;
  font-weight:800!important;
  cursor:pointer!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-focus-status[hidden]{
  display:none!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-focus-status:not([hidden]){
  grid-column:1/-1!important;
  display:block!important;
  border:1px solid #f1b5b5!important;
  border-radius:8px!important;
  padding:7px 10px!important;
  margin:2px 0!important;
  color:#9a1b1b!important;
  background:#fff5f5!important;
  font-size:13px!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step:not([hidden]){
  grid-template-columns:minmax(0,1fr)!important;
  align-content:start!important;
  gap:6px!important;
  overflow-y:auto!important;
  padding-bottom:calc(88px + env(safe-area-inset-bottom))!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-head{
  padding:0 2px 3px!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-head h3{
  font-size:clamp(15px,2vw,18px)!important;
  line-height:1.15!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-head p{
  font-size:11px!important;
  line-height:1.25!important;
  margin:1px 0!important;
}
body.ru-proposal-focus-active #ruEntryUxV5Shell{
  margin-bottom:2px!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-v5-block,
body.ru-proposal-focus-active #startNewFormSection .ru-v5-sizer{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:clamp(7px,1.5vw,12px)!important;
  box-sizing:border-box!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-v5-help,
body.ru-proposal-focus-active #startNewFormSection .helper-text{
  font-size:10px!important;
  line-height:1.3!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-actions .ru-focus-control{
  margin:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"][data-ru-focus-phase="requirements"] #ruV5ElectricStep > :not(.ru-entry-step-head):not(.ru-entry-step-actions):not(.ru-focus-status):not(#ruV5ConsumerType):not(#ruV5ProjectType):not(#ruV5Step1Intro){
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"][data-ru-focus-phase="capacity"] #ruV5ElectricStep > :not(.ru-entry-step-head):not(.ru-entry-step-actions):not(.ru-focus-status):not(#ruV5PolishedSizerSafe):not(#ruV5MissingSafe){
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"][data-ru-focus-phase="requirements"] #ruV5ElectricStep .ru-entry-next,
body.ru-proposal-focus-active[data-ru-focus-step="1"][data-ru-focus-phase="capacity"] #ruFocusStep1Next{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"][data-ru-focus-phase="requirements"] #ruFocusStep1Next,
body.ru-proposal-focus-active[data-ru-focus-step="1"][data-ru-focus-phase="capacity"] #ruFocusStep1Back{
  display:block!important;
  flex:1 1 auto!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"][data-ru-focus-phase="capacity"] #ruFocusStep1Back{
  flex:0 0 auto!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5ElectricStep #ruV5Step1ReadyNote{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5ConsumerTypeButtons{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:5px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5ConsumerTypeButtons button{
  min-height:36px!important;
  padding:5px 3px!important;
  font-size:clamp(10px,1.4vw,12px)!important;
  line-height:1.2!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5ProjectType .ru-v5-title{
  font-size:13px!important;
  margin:0 0 4px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5ProjectType #ruV5SubsidyDecision{
  margin-top:6px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5ProjectType #ruV5SubsidyDecision button{
  min-height:36px!important;
  padding:5px 9px!important;
  font-size:11px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5ProjectType #ruV5StateSelectGroup{
  margin:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5ProjectType #stateName{
  min-height:43px!important;
  padding:6px 10px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5UtilityHeader{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruFocusUtilityToggle{
  display:block!important;
  width:100%!important;
  min-height:36px!important;
  text-align:left!important;
  padding:5px 9px!important;
  font-size:12px!important;
  background:#f5f9ff!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"][data-ru-focus-utility="closed"] #ruV5UtilityBody{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"][data-ru-focus-utility="open"] #ruV5UtilityBody:not(.ru-v5-hidden){
  display:block!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5UtilityOptional{
  margin:6px 0 0!important;
  padding:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5UtilityHost{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  padding:7px 0 0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5UtilityHost .form-group{
  min-width:0!important;
  margin:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5UtilityHost input,
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5UtilityHost select{
  width:100%!important;
  min-height:42px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"][data-ru-focus-phase="capacity"] #ruV5PolishedSizerSafe{
  display:block!important;
  grid-column:1/-1!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"][data-ru-focus-phase="capacity"] #ruV5MissingSafe:not(.ru-v5-hidden){
  grid-column:1/-1!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5PolishedSizerSafe h4{
  margin:0 0 7px!important;
  font-size:15px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5PolishedSizerSafe button{
  min-height:38px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5PolishedSizerSafe input{
  min-height:44px!important;
}
/* Step 2: location, address, map, and size are separate screens. */
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruB2CRoofProgress{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-entry-step-head p{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5RoofIntro{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5RoofStep #ruV5RoofIntro,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5RoofStep #ruV5RoofIntro{
  display:block!important;
  grid-column:1/-1!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5RoofIntroTitle,
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5LocationTrustNote,
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5MultiRoofEntryCopy{
  display:none!important;
}
/* STEP2_VISIBLE_INTENT_CLARITY_V1 — explain location choice on the screen.
 * Keep the canonical property-vs-GPS data paths completely unchanged. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5RoofStep #ruV5LocationIntentExplanation{
  display:block!important;
  font-size:13px!important;
  line-height:1.45!important;
  color:#435d7a!important;
  margin:5px 0 11px!important;
  max-width:62ch!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-v5-location-cta{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:76px!important;
  padding:12px 10px!important;
  font-size:15px!important;
  font-weight:800!important;
  line-height:1.25!important;
  border-radius:12px!important;
  text-align:center!important;
  white-space:normal!important;
  touch-action:manipulation;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-v5-location-cta strong{
  font-size:15px!important;
  line-height:1.25!important;
  color:inherit!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-v5-location-cta span{
  font-size:12px!important;
  line-height:1.35!important;
  font-weight:550!important;
  margin-top:5px!important;
  color:inherit!important;
  opacity:.90!important;
}
/* STEP2_GPS_PRIMARY_RESTORED_20261012: previously approved
 * current-location-primary / address-secondary hierarchy. */
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5UseCurrentLocationSecondary{
  background:#0b63da!important;
  border:2px solid #0b63da!important;
  color:#fff!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5AddressStartPrimary{
  background:#fff!important;
  border:2px solid #8db6ed!important;
  color:#154b86!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5UseCurrentLocationSecondary strong,
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5UseCurrentLocationSecondary span{
  color:#fff!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5AddressStartPrimary strong,
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5AddressStartPrimary span{
  color:#154b86!important;
}
/* One decisive primary first action on narrow mobile screens. The two
 * existing controls and their GPS/address handlers are unchanged. Having
 * two long labelled cards in ~150 px columns is difficult for unfamiliar
 * visitors to read and tap. Keep two columns on sufficiently wide screens. */
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5PropertyLocationChoices{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:9px!important;
}
@media(max-width:767px){
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5RoofStep #ruV5PropertyLocationChoices{
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5RoofStep #ruV5UseCurrentLocationSecondary{
    min-height:84px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5RoofStep #ruV5AddressStartPrimary{
    min-height:76px!important;
  }
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-v5-location-cta{
  min-height:76px!important;
  padding:12px!important;
  font-size:15px!important;
  line-height:1.3!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-v5-location-cta span{
  font-size:12px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5MultiRoofEntry{
  margin:6px 0 0!important;
  padding:5px 0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5OtherRoofOptions{
  margin:4px 0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5PropertyLocationChoices,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5MultiRoofEntry,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5GpsIntentConfirm,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5OtherRoofOptions{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5AddressAlternative{
  display:block!important;
  width:100%!important;
  margin:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5AddressAlternative > summary{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5MapLoadingNotice{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="loading"] #ruV5RoofStep #ruV5MapLoadingNotice:not(.ru-v5-hidden){
  display:block!important;
  grid-column:1/-1!important;
  padding:12px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruGoogleRooftopSelector{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruGoogleRooftopSelector,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep #ruGoogleRooftopSelector,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="complete"] #ruV5RoofStep #ruGoogleRooftopSelector{
  display:block!important;
  grid-column:1/-1!important;
  padding:6px!important;
  margin:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruGoogleRooftopSelector > div:first-child,
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruGoogleRooftopSelector > div:nth-child(2),
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruB2CRoofGuide,
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruB2CRoofDetails,
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruB2CStandardSpaceNote{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruGoogleMapWrap{
  display:block!important;
  width:100%!important;
  height:clamp(150px,34dvh,315px)!important;
  max-height:36dvh!important;
  min-height:140px!important;
  margin:0 0 5px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruB2CConfirmRoof{
  display:block!important;
  min-height:50px!important;
  margin:5px 0 0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep #ruGoogleMapWrap,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep #ruB2CConfirmRoof,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep #ruB2CCheckRoofSize{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-draw="1"] #ruV5RoofStep #ruGoogleMapWrap{
  display:block!important;
  height:clamp(130px,25dvh,230px)!important;
  min-height:130px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep [id^="ruRoofGeometryPanel_"]{
  width:100%!important;
  min-width:0!important;
  margin:3px 0!important;
  padding:6px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep [id^="ruRoofGeometryPanel_"] button{
  min-height:42px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-b2c-viewport-action-dock{
  bottom:calc(72px + env(safe-area-inset-bottom))!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-entry-next:not(:enabled){
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5RoofStep .ru-entry-next,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5RoofStep .ru-entry-next,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="loading"] #ruV5RoofStep .ru-entry-next,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep .ru-entry-next,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep .ru-entry-next{
  display:none!important;
}
/* STEP3_ONE_SCREEN_V1: contact, rooftop-derived service address, PIN and
 * canonical Generate Proposal submit belong to ONE visible Step 3.
 * Only the step content scrolls on short/mobile viewports, never the landing. */
body.ru-proposal-focus-active[data-ru-focus-step="3"][data-ru-focus-phase="details"] #ruV5ContactStep [data-ru-focus-contact-group]{
  display:block!important;
  grid-column:1/-1!important;
  min-width:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="3"] #ruV5ContactStep #ruV5AddressNote{
  grid-column:1/-1!important;
  margin:4px 0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="3"] #ruV5ContactStep .ru-v5-step3-submit{
  display:block!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="3"] #ruV5ContactStep #ruFocusStep3Next,
body.ru-proposal-focus-active[data-ru-focus-step="3"] #ruV5ContactStep #ruFocusStep3Back{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="3"] #ruV5ContactStep .form-group{
  margin:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="3"] #ruV5ContactStep .form-group label{
  font-size:12px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="3"] #ruV5ContactStep .form-group input{
  min-height:43px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="3"] #ruV5ContactStep .form-group textarea{
  min-height:64px!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
/* Accessible fallback: browser zoom, large text, keyboards, landscape and
 * unusually short viewports can scroll inside a stage. Nothing is clipped. */
@media(max-width:520px){
  body.ru-proposal-focus-active #startNewFormSection .entry-card{
    padding:4px 7px 0!important;
  }
  body.ru-proposal-focus-active #startNewFormSection .ru-entry-step:not([hidden]){
    gap:5px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="1"] #ruV5ConsumerTypeButtons{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruV5PropertyLocationChoices{
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-v5-location-cta{
    min-height:76px!important;
    padding:12px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruGoogleMapWrap{
    height:clamp(145px,30dvh,245px)!important;
    max-height:32dvh!important;
  }
}
@media(max-height:620px){
  body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-head p{
    display:none!important;
  }
  body.ru-proposal-focus-active #startNewFormSection .ru-entry-step:not([hidden]){
    padding-bottom:calc(75px + env(safe-area-inset-bottom))!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruGoogleMapWrap{
    height:clamp(120px,27dvh,190px)!important;
    min-height:120px!important;
  }
}


/* Address and Google Maps link are mutually exclusive one-screen choices. */
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruFocusAddressMethods{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:7px!important;
  margin:4px 0 8px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruFocusAddressMethods .ru-focus-control{
  display:block!important;
  min-height:43px!important;
  padding:6px!important;
  font-size:12px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruFocusAddressMethods .ru-focus-control.is-active{
  background:#0b5fd7!important;
  border-color:#0b5fd7!important;
  color:#fff!important;
}
/* The map-link input is a child of #ruRemoteFlow. Hiding that parent
 * blanks the Google Maps link method on mobile. Hide only address stages. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"][data-ru-focus-address-method="address"] #ruRemoteMapLinkOption,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"][data-ru-focus-address-method="link"] #ruRemoteStage1,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"][data-ru-focus-address-method="link"] #ruRemoteStage2,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"][data-ru-focus-address-method="link"] #ruRemoteStage3,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"][data-ru-focus-address-method="link"] #ruRemoteAddressStart{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5RemoteAddress{
  padding:7px!important;
  margin:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5RemoteAddress h4,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5RemoteAddress > p{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5RemoteAddress input{
  min-height:43px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5RemoteAddress .ru-remote-actions{
  margin-top:5px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="3"] #ruV5ContactStep .ru-entry-step-actions > .ru-entry-back{
  display:block!important;
}
/* Keep browser-native focus rings visible in the focused application. */
body.ru-proposal-focus-active #startNewFormSection :is(button,input,select,textarea,summary):focus-visible{
  outline:3px solid #f4b942!important;
  outline-offset:2px!important;
}
@media(prefers-reduced-motion:reduce){
  body.ru-proposal-focus-active #startNewFormSection *{
    scroll-behavior:auto!important;
    transition-duration:0s!important;
    animation-duration:0s!important;
  }
}


/* Multiple rooftops reuse the existing site identity engine. Each roof has
 * its own map -> geometry -> summary stage; no auto-scrolling to later roofs. */
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruMultiRoofSiteIdentityBox{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruMultiRoofSiteIdentityBox,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"] #ruMultiRoofSiteIdentityBox,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-summary"] #ruMultiRoofSiteIdentityBox{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:7px!important;
  grid-column:1/-1!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruMultiRoofSiteIdentityBox .ru-mr-title,
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruMultiRoofSiteIdentityBox .ru-mr-copy,
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruMultiRoofSiteIdentityBox .ru-mr-optional,
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruMultiRoofFacts{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruCurrentRoofStage{
  margin:0 0 5px!important;
  padding:5px 8px!important;
  font-size:12px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruMultiRoofWork{
  margin:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruMultiRoofMapWrap{
  width:100%!important;
  max-width:100%!important;
  height:clamp(150px,33dvh,305px)!important;
  max-height:36dvh!important;
  margin:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruMultiRoofImg{
  display:block;
  width:min(100%,33dvh,305px)!important;
  max-width:100%!important;
  height:auto!important;
  max-height:36dvh!important;
  aspect-ratio:1!important;
  object-fit:contain!important;
  margin:0 auto!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruRoofList,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"] #ruRoofList,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruAddAnotherRoof,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"] #ruAddAnotherRoof{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"] #ruMultiRoofMapWrap,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"] #ruMultiRoofImg,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"] #ruAddMultiRoof{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"][data-ru-focus-draw="1"] #ruMultiRoofMapWrap{
  display:block!important;
  height:clamp(125px,23dvh,220px)!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-summary"] #ruMultiRoofWork,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-summary"] #ruCurrentRoofStage{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruMultiRoofSiteIdentityBox button{
  min-height:43px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruV5RoofStep .ru-entry-next,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"] #ruV5RoofStep .ru-entry-next,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-summary"] #ruV5RoofStep .ru-entry-next{
  display:none!important;
}
@media(max-width:520px){
  body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruMultiRoofMapWrap,
  body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruMultiRoofImg{
    height:clamp(135px,28dvh,240px)!important;
  }
}


/*
 * STEP3_BACK_COMPLETED_ROOF_RESTORE_V1
 * A finished rooftop is a review screen, not a mandatory GPS-photo step.
 * The photo is execution-grade optional evidence and the old photo-stage
 * selector would hide the map while the photo box was itself hidden.
 * Always leave an actionable completion/recovery surface on Step 3 Back.
 */
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-focus-roof-feedback{
  display:none!important;
  grid-column:1/-1!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  padding:clamp(12px,2vw,18px)!important;
  margin:8px 0!important;
  border:1px solid #b4d9bf!important;
  border-radius:12px!important;
  background:#f0faf2!important;
  color:#15472a!important;
  line-height:1.45!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-focus-roof-feedback strong{
  display:block;
  font-size:clamp(15px,2vw,18px)!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-focus-roof-feedback p{
  font-size:13px!important;
  margin:7px 0 0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="complete"] #ruV5RoofStep #ruFocusRoofComplete,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="recovery"] #ruV5RoofStep #ruFocusRoofRecovery,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="pending"] #ruV5RoofStep #ruFocusRoofPending{
  display:block!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="pending"] #ruV5RoofStep #ruFocusRoofPending{
  border-color:#a9c6f4!important;
  background:#eff6ff!important;
  color:#123c69!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="pending"] #ruV5RoofStep #ruFocusRoofRetry{
  display:block!important;
  width:100%!important;
  min-height:48px!important;
  margin-top:12px!important;
  border:1px solid #0b5fd7!important;
  border-radius:9px!important;
  background:#0b5fd7!important;
  color:white!important;
  font-weight:800!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="pending"] #ruV5RoofStep #ruFocusRoofRetry:disabled{
  opacity:.55!important;
  cursor:wait!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="recovery"] #ruV5RoofStep #ruFocusRoofRecovery{
  border-color:#f0c18b!important;
  background:#fff9ef!important;
  color:#754713!important;
}
/* The completed/recovery stage must not be obscured by stale photo/map DOM. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="complete"] #ruV5RoofStep #ruGoogleRooftopSelector,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="recovery"] #ruV5RoofStep #ruGoogleRooftopSelector,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="pending"] #ruV5RoofStep #ruGoogleRooftopSelector,
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #rooftopGpsPhotoProofBox{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="complete"] #ruV5RoofStep .ru-entry-next{
  display:block!important;
  flex:1 1 auto!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="recovery"] #ruV5RoofStep .ru-entry-next,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="pending"] #ruV5RoofStep .ru-entry-next{
  display:none!important;
}
/* On incomplete but live rooftops, the optional photo-stage class must
 * never conceal the actual map/geometry workflow. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep.ru-v5-photo-stage #ruGoogleRooftopSelector,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep.ru-v5-photo-stage #ruGoogleRooftopSelector{
  display:block!important;
}

/* STEP2_ROOF_SPACE_STALL_RECOVERY_V1: HTML hidden wins even if an older
 * global stylesheet gives the standard-space section a display rule. */
body.ru-proposal-focus-active #ruV5RoofStep [id^="ruRoofGeometryPanel_"] [hidden]{
  display:none!important;
}

/* STEP2_MAP_LOAD_RECOVERY_V1: a failed satellite SDK must leave a visible,
 * usable address/retry path instead of a spinner-only focused micro-stage. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="loading"] #ruV5RoofStep #ruFocusRoofLoadingHelp{
  display:block!important;
  border-color:#a9c6f4!important;
  background:#eff6ff!important;
  color:#123c69!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="loading"] #ruV5RoofStep #ruFocusRoofLoadingHelp button{
  display:block!important;
  width:100%!important;
  min-height:48px!important;
  margin-top:10px!important;
  border:1px solid #0b5fd7!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#0b5fd7!important;
  font-weight:800!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="loading"] #ruV5RoofStep #ruFocusRoofLoadingHelp button:disabled{
  opacity:.5!important;
  cursor:wait!important;
}


/* STEP2_MOBILE_FOOTER_NOT_AN_OVERLAY_20261012
 * The later focus stylesheet's high-specificity fixed action row overrides
 * the shipped mobile CSS's intentionally-static Step 2 footer. On short
 * mobile/in-app viewports it obscures the real address/GPS controls despite
 * "entered viewport" telemetry. Preserve fixed Step 1/3 actions and all
 * canonical Step 2 verification buttons; only the Step 2 footer flows
 * beneath the actual rooftop content. */
@media (max-width:767px){
  body.ru-proposal-focus-active[data-ru-focus-step="2"] #startNewFormSection #ruV5RoofStep .ru-entry-step-actions{
    position:static!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    transform:none!important;
    z-index:auto!important;
    grid-column:1/-1!important;
    width:100%!important;
    max-width:100%!important;
    min-height:0!important;
    padding:8px 0 calc(8px + env(safe-area-inset-bottom))!important;
    margin:6px 0 0!important;
    border:0!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
  }
}

/* STEP2_SINGLE_SURFACE_20261014: one intent selection, one address editor,
   one satellite map and one in-page confirmation. No fixed overlays. */
body[data-ru-focus-step="2"] #ruV5RoofStep .ru-b2c-viewport-action-dock,
body[data-ru-focus-step="2"] .ru-b2c-viewport-action-dock,
body[data-ru-focus-step="2"] #ruV5MobileActionDock,
body[data-ru-focus-step="2"] #ruB2CConfirmRoofViewportDock,
body[data-ru-focus-step="2"] #ruB2CRoofSizeActionDock,
body[data-ru-focus-step="2"] #ruB2CLocationActionDock{
  display:none!important;position:static!important;
}
body[data-ru-focus-step="2"] #ruV5RoofStep #ruV5LocationIntentExplanation{
  font-size:13px!important;line-height:1.4!important;margin:4px 0 10px!important;
}
body[data-ru-focus-step="2"] #ruV5RoofStep #ruV5LocationChoice,
body[data-ru-focus-step="2"] #ruV5RoofStep #ruV5GpsIntentConfirm,
body[data-ru-focus-step="2"] #ruV5RoofStep #ruV5MapLoadingNotice:empty{
  display:none!important;
}
body[data-ru-focus-step="2"] #ruV5RoofStep #ruV5PropertyLocationChoices{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;
}
@media(max-width:767px){
  body[data-ru-focus-step="2"] #ruV5RoofStep #ruV5PropertyLocationChoices{
    grid-template-columns:minmax(0,1fr)!important;
  }
  body[data-ru-focus-step="2"] #ruV5RoofStep .ru-entry-step-head{margin:0 0 5px!important;}
  body[data-ru-focus-step="2"] #ruV5RoofStep #ruV5MultiRoofEntry{margin:4px 0!important;padding:4px 0!important;}
  body[data-ru-focus-step="2"] #ruV5RoofStep #ruGoogleRooftopSelector{margin-top:0!important;}
  body[data-ru-focus-step="2"] #ruV5RoofStep #ruGoogleMapWrap,
  body[data-ru-focus-step="2"] #ruV5RoofStep #ruGoogleRooftopMap{
    max-height:42dvh!important;min-height:200px!important;
  }
}
body[data-ru-focus-step="2"] #ruV5RoofStep #ruB2CConfirmRoof{
  position:static!important;transform:none!important;inset:auto!important;
  width:100%!important;max-width:none!important;margin:8px 0!important;
  min-height:52px!important;z-index:auto!important;
}
body[data-ru-focus-step="2"] #ruV5RoofStep.ru-v5-map-ready #ruV5RoofIntro:not(.ru-standard-space-advanced-collapsed){
  display:none!important;
}

/* Address editor is canonical, but should replace rather than duplicate initial choices. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5PropertyLocationChoices,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5MultiRoofEntry,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5LocationIntentExplanation{display:none!important}
/* The closed address editor is not a second location button bar.
 * Only the two canonical on-property/elsewhere choices belong here. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5AddressAlternative{display:none!important}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5AddressAlternative{display:block!important;margin:4px 0!important;border:0!important;box-shadow:none!important}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"] #ruV5AddressAlternative>summary{display:none!important}

/* STEP2_NO_DESKTOP_OR_MOBILE_OVERLAY_20261014
 * Previous fix only made the Step 2 footer static below 767px. The fixed
 * laptop footer kept obscuring the bottom of the map and confirmation CTA.
 * Keep actions in the normal stage flow at ALL viewport widths. */
body.ru-proposal-focus-active[data-ru-focus-step="2"] #startNewFormSection #ruV5RoofStep .ru-entry-step-actions{
  position:static!important;
  inset:auto!important;
  left:auto!important;right:auto!important;bottom:auto!important;
  transform:none!important;z-index:auto!important;
  grid-column:1/-1!important;
  width:100%!important;max-width:100%!important;
  min-height:0!important;padding:7px 0 0!important;margin:7px 0 0!important;
  border:0!important;box-shadow:none!important;backdrop-filter:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruV5RoofIntro,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep #ruV5RoofIntro,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="pending"] #ruV5RoofStep #ruV5RoofIntro,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="complete"] #ruV5RoofStep #ruV5RoofIntro{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruGoogleRooftopSelector{
  margin-top:0!important;padding-top:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruGoogleMapWrap{
  height:clamp(190px,39dvh,355px)!important;
  max-height:42dvh!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruB2CConfirmRoof{
  margin:7px 0 0!important;
  min-height:54px!important;
}
/* Keep the approved first choice screen small and focused, without
 * deleting the multi-roof or defer controllers used by advanced journeys. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5OtherRoofOptions{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5MultiRoofEntry{
  border:0!important;margin:6px 0 0!important;padding:4px 0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5AddAnotherRoof{
  width:100%!important;min-height:32px!important;text-align:center!important;
  font-size:12px!important;line-height:1.35!important;
  font-weight:600!important;color:#556c83!important;
}

/* STEP2_EXACT_GEOMETRY_NO_DUPLICATE_QUICK_20261014
 * Quick 22 x 22 ft confirmation belongs to the preliminary fast lane.
 * Once the consumer has chosen the exact satellite rooftop, present the
 * original measured dimension and outline methods as immediate alternatives.
 * Preserve the original engine's click, polygon and fit validations. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep [data-space-question],
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep [data-space-yes],
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep [data-space-alternate] > summary{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep [data-space-alternate]{
  display:block!important;
  margin:4px 0 0!important;border:0!important;background:transparent!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep [data-space-alternate] > div{
  padding:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep [data-space-manual],
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep [data-space-outline]{
  min-height:54px!important;font-size:14px!important;
}

body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="choice"] #ruV5RoofStep #ruGoogleMapWrap{display:none!important;}
/* STEP2_SINGLE_MEASUREMENT_SURFACE_20261014
 * Only after an explicit measurement-method click. Preserve the canonical
 * engine's map, inputs, set-corner, undo, persistence and QA validation. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="manual"] #ruV5RoofStep #ruGoogleMapWrap{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="outline"] #ruV5RoofStep #ruGoogleMapWrap{
  display:block!important;
  height:clamp(145px,29dvh,255px)!important;
  min-height:145px!important;max-height:30dvh!important;
  width:100%!important;margin:0 0 5px!important;
}
/* Once a method is active, remove the second explanatory card and subtitles.
 * One heading, one working method and one optional plain text switch. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="manual"] #ruV5RoofStep [data-measure-intro],
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="outline"] #ruV5RoofStep [data-measure-intro],
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="manual"] #ruV5RoofStep [data-manual-title],
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="manual"] #ruV5RoofStep [data-size-unsure],
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="manual"] #ruV5RoofStep [data-manual-area]{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep [id^="ruRoofGeometryPanel_"]{
  margin:3px 0!important;padding:7px!important;border:0!important;background:transparent!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep [id^="ruRoofGeometryPanel_"] [data-body]{
  margin-top:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"] #ruV5RoofStep [data-ru-focus-method-switch]{
  display:block!important;
  border:0!important;background:transparent!important;box-shadow:none!important;
  color:#0b5fd7!important;font-size:12px!important;font-weight:700!important;
  line-height:1.3!important;text-align:right!important;
  min-height:30px!important;width:100%!important;margin:0 0 4px!important;
  padding:4px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="choice"] #ruV5RoofStep [data-ru-focus-method-switch]{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="manual"] #ruV5RoofStep [data-manual-section]{
  display:block!important;margin:0!important;padding:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="manual"] #ruV5RoofStep [data-manual-section] label{
  font-size:13px!important;font-weight:700!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="manual"] #ruV5RoofStep [data-use-manual]{
  min-height:49px!important;margin-top:7px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="outline"] #ruV5RoofStep [data-instruction]{
  margin:2px 0 5px!important;padding:6px 8px!important;
  font-size:12px!important;line-height:1.3!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="outline"] #ruV5RoofStep [data-set],
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="outline"] #ruV5RoofStep [data-close-outline]{
  min-height:46px!important;margin:5px 0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="outline"] #ruV5RoofStep [data-drawing-actions]{
  margin-top:3px!important;gap:6px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"][data-ru-focus-roof-method="outline"] #ruV5RoofStep [data-drawing-actions] button{
  min-height:32px!important;font-size:12px!important;
  background:transparent!important;border-color:#e0e9f5!important;
}

/* STEP2_DESKTOP_MAP_NO_OVERLAP_20261014
 * Desktop only: map controls and their CTA occupy separate in-flow rows.
 * Keep Google Maps in its original DOM host (do not detach/reparent panes).
 * Short/zoomed viewports retain native internal scrolling if needed. */
@media (min-width:768px) {
  body.ru-proposal-focus-active[data-ru-focus-step="2"] #startNewFormSection #ruV5RoofStep.ru-entry-step:not([hidden]){
    padding-bottom:10px!important;
    row-gap:5px!important;
    align-content:start!important;
    scroll-padding-top:5px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruGoogleRooftopSelector{
    margin:0!important;padding:4px 6px!important;
    min-height:0!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruGoogleMapWrap{
    display:block!important;
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
    height:clamp(170px,29dvh,270px)!important;
    min-height:170px!important;max-height:31dvh!important;
    margin:0 0 5px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruB2CConfirmRoof{
    display:block!important;position:relative!important;inset:auto!important;
    width:100%!important;min-height:50px!important;
    margin:5px 0 0!important;z-index:1!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-entry-step-actions{
    position:static!important;transform:none!important;inset:auto!important;
    padding:3px 0!important;margin:3px 0!important;
    min-height:0!important;border:0!important;box-shadow:none!important;
    background:transparent!important;
  }
}
/* Multi-roof map stage must lead with the current roof and its actual map.
 * Hide only repeated guidance, not any roof, photo or approval data. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruV5RoofStep #ruMultiRoofLocationStepV1,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruV5RoofStep #ruMultiRoofFlowStripV1{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruMultiRoofSiteIdentityBox{
  display:flex!important;flex-direction:column!important;
  align-items:stretch!important;
  padding:5px!important;gap:4px!important;
  margin:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruCurrentRoofStage{
  order:0!important;margin:0!important;min-height:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruMultiRoofWork{
  order:1!important;display:block!important;
  margin:0!important;padding:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruMrChangeProperty{order:2!important;
  min-height:30px!important;margin:2px 0!important;padding:3px!important;
  font-size:12px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruRoofList{order:3!important;}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruAddAnotherRoof{order:4!important;}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruLockSiteIdentity{order:5!important;}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruMultiRoofStatus{
  order:6!important;margin:2px 0!important;font-size:12px!important;
}
@media (min-width:768px) {
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruMultiRoofMapWrap{
    position:relative!important;box-sizing:border-box!important;
    overflow:hidden!important;
    height:clamp(175px,33dvh,300px)!important;
    max-height:35dvh!important;min-height:175px!important;
    margin:0 0 5px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruMultiRoofImg{
    max-height:33dvh!important;
  }
}

/* STEP2_LAPTOP_MAP_AND_MULTI_ABOVE_FOLD_20261014
 * Keep map tiles and UI bounded by a definite box; use an in-flow
 * confirmation, not a sticky overlay. Apply only on laptop-sized screens. */
@media(min-width:768px){
 body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruGoogleMapWrap{
   display:block!important;position:relative!important;isolation:isolate!important;
   overflow:hidden!important;box-sizing:border-box!important;
   height:clamp(175px,32dvh,270px)!important;min-height:175px!important;
   max-height:35dvh!important;margin:0 0 6px!important;
 }
 body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"] #ruV5RoofStep #ruB2CConfirmRoof{
   position:relative!important;inset:auto!important;z-index:1!important;
   transform:none!important;display:block!important;margin:6px 0 0!important;
 }
 body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep .ru-entry-step-actions{
   position:static!important;z-index:auto!important;min-height:0!important;
   background:transparent!important;border:0!important;box-shadow:none!important;
   margin:3px 0!important;padding:3px 0!important;
 }
 body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruMultiRoofMapWrap{
   height:clamp(175px,33dvh,260px)!important;max-height:35dvh!important;
   margin:0!important;overflow:hidden!important;
 }
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruMultiRoofSiteIdentityBox .ru-mr-title,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruMultiRoofSiteIdentityBox .ru-mr-copy{
 display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"] #ruMultiRoofSiteIdentityBox{
 gap:2px!important;padding:3px!important;
}


/*
 * MULTIROOF_ONE_ACTIVE_ROOF_VIEWPORT_20261015
 * The multi-roof renderer was below the still-visible original Step 2
 * location-choice block, even though its own map was already sized to fit.
 * Once a property is located, replace the choice block with one active
 * rooftop workspace; do not remove or reparent GPS/Maps/geometry controllers.
 * "Change property / location" temporarily reveals the original choices.
 * Small laptop screens and zoom remain scrollable rather than clipping CTA.
 */
/* Scope by the canonical micro-phase too: no initial-choice suppression
 * until multi-map, multi-size or multi-summary is actually active. */
/* MULTIROOF_LOCATION_AND_MAP_NEVER_BOTH_HIDDEN_20261015
 * Hide the choice panel ONLY when the actual live roof/summary exists.
 * A stale multi-map phase from Back/Forward must not blank Step 2.
 */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
  #ruV5RoofStep.ru-mr-workspace-live:not(.ru-mr-location-edit-open) #ruV5RoofIntro,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"]
  #ruV5RoofStep.ru-mr-workspace-live:not(.ru-mr-location-edit-open) #ruV5RoofIntro,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-summary"]
  #ruV5RoofStep.ru-mr-workspace-live:not(.ru-mr-location-edit-open) #ruV5RoofIntro{
  display:none!important;
}
/* A prior in-flight map can leave a stale multi-map body phase on Back.
 * Never reveal an empty multi-roof box until its runtime marks it live. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase^="multi-"]
  #ruV5RoofStep:not(.ru-mr-workspace-live) #ruMultiRoofSiteIdentityBox{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase^="multi-"]
  #ruV5RoofStep:not(.ru-mr-workspace-live) #ruV5RoofIntro,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"]
  #ruV5RoofStep.ru-v5-map-ready #ruV5RoofIntro,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase^="multi-"]
  #ruV5RoofStep.ru-mr-location-edit-open #ruV5RoofIntro{
  display:block!important;
  grid-column:1/-1!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase^="multi-"]
  #ruV5RoofStep #ruMultiRoofSiteIdentityBox{
  scroll-margin-top:8px!important;
  margin-top:0!important;
  padding:5px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase^="multi-"]
  #ruV5RoofStep #ruCurrentRoofStage{
  margin:0 0 4px!important;
  padding:5px 8px!important;
  line-height:1.3!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
  #ruV5RoofStep #ruMultiRoofWork{
  min-width:0!important;
  margin:0!important;
}
@media(min-width:768px) and (min-height:650px){
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
    #ruV5RoofStep #ruMultiRoofMapWrap{
    height:clamp(165px,29dvh,250px)!important;
    max-height:31dvh!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
    #ruV5RoofStep #ruAddMultiRoof{
    display:block;
    position:relative!important;
    width:100%!important;
    min-height:48px!important;
    margin:5px 0!important;
    z-index:1!important;
  }
}

@media(max-width:767px){
  /* The map now mounts directly after the step heading. Put its confirm
   * action immediately below it, never underneath the previous roof list. */
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
    #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofMapWrap{
    height:clamp(150px,28dvh,245px)!important;
    max-height:32dvh!important;
    margin:0 0 4px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
    #ruV5RoofStep.ru-mr-workspace-live #ruAddMultiRoof{
    position:relative!important;
    display:block!important;
    width:100%!important;
    min-height:48px!important;
    margin:5px 0!important;
    z-index:1!important;
  }
}

/*
 * MULTIROOF_REAL_MOBILE_SINGLE_VIEWPORT_20261015
 * Active roof: the original Back lives at the bottom of the long Step 2
 * document. Surface its delegated button in the heading, keep the canonical
 * button in DOM, and free enough space for map+confirmation without scrolling.
 * These rules apply ONLY while multi-roof mode is explicitly selected.
 */
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #ruV5RoofStep[data-ru-multi-top-back="1"] .ru-entry-step-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  grid-column:1/-1!important;
  min-height:44px!important;
  padding:0 2px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #ruV5RoofStep[data-ru-multi-top-back="1"] .ru-entry-step-head h3{
  flex:1 1 auto!important;
  min-width:0!important;
  font-size:clamp(15px,3.6vw,18px)!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #ruV5RoofStep #ruFocusMultiRoofBack:not([hidden]){
  display:inline-flex!important;
  flex:0 0 auto!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:44px!important;
  min-width:78px!important;
  padding:6px 10px!important;
  margin:0!important;
  color:#fff!important;
  background:#0b63da!important;
  border:1px solid #0b63da!important;
  border-radius:10px!important;
  font-weight:800!important;
  font-size:14px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep[data-ru-multi-top-back="1"] > .ru-entry-step-actions{
  /* Two IDs are needed to outrank the original fixed/footer focus rule.
   * Keep the original Back button mounted for delegated click and validation. */
  display:none!important;
}
/* Avoid CSS-only "ready" signals: show the active map ONLY when runtime
 * has installed a real, usable roof workspace. The previous modular
 * stylesheet had suppressed both choices and map in the same state. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
  #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofSiteIdentityBox{
  display:flex!important;
  flex-direction:column!important;
  gap:3px!important;
  margin:0!important;
  padding:4px!important;
  min-height:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofSiteIdentityBox .ru-mr-title,
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofSiteIdentityBox .ru-mr-copy{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #ruV5RoofStep[data-ru-multi-top-back="1"] #ruMultiRoofSiteIdentityBox :is(#ruAddMultiRoof,#ruAddAnotherRoof,#ruLockSiteIdentity,#ruMrChangeProperty):not([disabled]){
  color:#fff!important;
  background:#0b63da!important;
  border:1px solid #0b63da!important;
  border-radius:9px!important;
  font-weight:800!important;
  box-shadow:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"]
  #ruV5RoofStep[data-ru-multi-top-back="1"] :is(#ruV5UseCurrentLocationSecondary,#ruV5AddressStartPrimary){
  background:#0b63da!important;
  border-color:#0b63da!important;
  color:#fff!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"]
  #ruV5RoofStep[data-ru-multi-top-back="1"] :is(#ruV5UseCurrentLocationSecondary,#ruV5AddressStartPrimary) :is(strong,span){
  color:#fff!important;
}
@media (max-width:767px){
  body.ru-proposal-focus-active[data-ru-focus-step="2"]
    #ruV5RoofStep[data-ru-multi-top-back="1"]{
    padding:2px 3px calc(10px + env(safe-area-inset-bottom))!important;
    gap:3px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
    #ruV5RoofStep.ru-mr-workspace-live #ruCurrentRoofStage{
    font-size:13px!important;
    padding:4px 8px!important;
    margin:0!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
    #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofMapWrap{
    box-sizing:border-box!important;
    height:clamp(140px,28dvh,235px)!important;
    max-height:30dvh!important;
    margin:0!important;
    overflow:hidden!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
    #ruV5RoofStep.ru-mr-workspace-live #ruAddMultiRoof{
    min-height:50px!important;
    width:100%!important;
    margin:4px 0!important;
    padding:7px 10px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
    #ruV5RoofStep.ru-mr-workspace-live #ruMrChangeProperty{
    min-height:38px!important;
    margin:2px 0!important;
    padding:6px 8px!important;
    font-size:12px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
    #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofStatus{
    margin:2px 0!important;
    font-size:12px!important;
    line-height:1.25!important;
  }
}
/* After Roof 2, the actual Save/Continue action must appear BEFORE the
 * potentially long saved-roofs list. The list and removal controls remain
 * reachable below, without losing any consumer-confirmed roof geometry. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-summary"]
  #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofSiteIdentityBox{
  display:flex!important;
  flex-direction:column!important;
  gap:6px!important;
  align-items:stretch!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-summary"]
  #ruV5RoofStep #ruAddAnotherRoof{order:0!important;}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-summary"]
  #ruV5RoofStep #ruLockSiteIdentity{order:1!important;min-height:50px!important;}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-summary"]
  #ruV5RoofStep #ruMrChangeProperty{order:2!important;}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-summary"]
  #ruV5RoofStep #ruMultiRoofStatus{order:3!important;}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-summary"]
  #ruV5RoofStep #ruRoofList{order:4!important;}

/*
 * STEP2_ELSEWHERE_ADDRESS_FIRST_VIEWPORT_20261015
 * Address/Google Maps was nested after roof-count, location explanation,
 * alternate choices and recovery blocks. Preserve their controllers in DOM
 * but show only the canonical address editor immediately beneath the step
 * heading. Applies equally to single- and multiple-rooftop proposals.
 * No hover-only information: touch users see actionable tabs and placeholders.
 */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #startNewFormSection #ruV5RoofStep #ruV5RoofIntro{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  gap:0!important;
  grid-column:1/-1!important;
}
/* The actual shipped editor is nested at
 * #ruV5RoofIntro > #ruV5SingleRoofActions > #ruV5AddressAlternative.
 * Do NOT hide that parent: it caused the Google Maps and address inputs
 * to have zero height despite their own display:block styles. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #startNewFormSection #ruV5RoofStep #ruV5RoofIntro > :not(#ruV5AddressAlternative):not(#ruV5SingleRoofActions){
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #startNewFormSection #ruV5RoofStep #ruV5SingleRoofActions{
  display:block!important;
  order:0!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #startNewFormSection #ruV5RoofStep #ruV5SingleRoofActions > :not(#ruV5AddressAlternative){
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #startNewFormSection #ruV5RoofStep #ruV5AddressAlternative{
  display:block!important;
  order:0!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #startNewFormSection #ruV5RoofStep #ruV5AddressAlternative > div{
  padding:0!important;
  margin:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #startNewFormSection #ruV5RoofStep #ruV5RemoteAddress{
  margin:0!important;
  padding:4px 2px!important;
  border:0!important;
  box-shadow:none!important;
  border-radius:0!important;
  background:#fff!important;
}
/* Suppress repeated instructional paragraphs but keep the canonical labels,
 * input controls, map-link button, error status and method switch intact. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #ruV5RemoteAddress #ruRemoteStage1 > :is(h4,p),
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #ruV5RemoteAddress #ruRemoteStage3 > :is(h4,p),
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #ruV5RemoteAddress #ruRemoteMapLinkOption > :is(div:first-child,p){
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #ruV5RemoteAddress #ruRemoteMapLinkOption{
  margin:4px 0 0!important;
  padding:0!important;
  border:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #ruV5RemoteAddress label{
  font-size:13px!important;
  font-weight:750!important;
  margin:0 0 5px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #ruV5RemoteAddress input{
  min-height:48px!important;
  font-size:16px!important;
  margin:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #ruV5RemoteAddress .ru-remote-actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  margin:7px 0 0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #ruV5RemoteAddress :is(#ruRemotePropertyNext,#ruRemoteFind,#ruRemoteRetry,#ruRemoteUseMapLocation){
  min-height:50px!important;
  flex:1 1 auto!important;
  background:#0b63da!important;
  border:1px solid #0b63da!important;
  color:#fff!important;
  border-radius:10px!important;
  font-weight:800!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #ruV5RemoteAddress #ruRemoteCancel{
  display:inline-flex!important;
  min-height:40px!important;
  align-items:center!important;
  justify-content:center!important;
  padding:7px 10px!important;
  margin:5px 0 0!important;
  color:#0b63da!important;
  font-size:12px!important;
  font-weight:750!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #ruFocusAddressMethods .ru-focus-control{
  min-height:47px!important;
  padding:8px 6px!important;
  border:1px solid #0b63da!important;
  border-radius:9px!important;
  color:#0b63da!important;
  background:#f5f9ff!important;
  font-size:13px!important;
  font-weight:800!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #ruFocusAddressMethods .ru-focus-control.is-active{
  background:#0b63da!important;
  color:#fff!important;
}
/* In unusual fallback cases the canonical details summary must remain
 * available instead of presenting an empty address stage. */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
  #ruV5AddressAlternative:not(:has(#ruRemoteFlow:not(.ru-remote-hidden))) > summary{
  display:block!important;
  min-height:48px!important;
  padding:10px!important;
}
@media(max-width:767px){
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
    #startNewFormSection #ruV5RoofStep{
    gap:5px!important;
    padding:2px 3px calc(10px + env(safe-area-inset-bottom))!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="address"]
    #ruFocusAddressMethods{gap:6px!important;margin:3px 0 8px!important;}
}

/*
 * STEP2_ELSEWHERE_FIRST_TAP_SINGLE_STAGE_20261015
 * Do not force consumers through two accordion clicks. The canonical
 * remote form opens after the asynchronous helper mounts. This explicit
 * class keeps all unrelated content hidden during the 50/300/900ms
 * focus-controller refresh race, for both single and multiple roofs.
 */
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected #ruStandardSpaceShortcut,
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected #ruStandardSpaceBackToQuick,
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected #ruMultiRoofSiteIdentityBox{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected #ruV5RoofIntro{
  display:flex!important;
  flex-direction:column!important;
  margin:0!important;
  padding:0!important;
  width:100%!important;
  gap:0!important;
  grid-column:1/-1!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected #ruV5RoofIntro > :not(#ruV5SingleRoofActions){
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected #ruV5SingleRoofActions{
  display:block!important;
  width:100%!important;
  padding:0!important;
  margin:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected #ruV5SingleRoofActions > :not(#ruV5AddressAlternative){
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected #ruV5AddressAlternative{
  display:block!important;
  width:100%!important;
  border:0!important;
  margin:0!important;
  padding:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected #ruV5AddressAlternative > summary{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected #ruV5AddressAlternative > div{
  padding:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected .ru-entry-step-head{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected #ruV5RemoteAddress{
  background:#fff!important;
  padding:2px!important;
  margin:0!important;
  border:0!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected #ruV5PropertyLocationChoices,
body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #startNewFormSection #ruV5RoofStep.ru-address-mode-selected #ruV5LocationIntentExplanation{
  display:none!important;
}

/*
 * CONSUMER_PREMIUM_VISUAL_POLISH_V1 — presentation only.
 * Scope strictly to the opened proposal. No visibility, height, scrolling,
 * pointer-events, navigation, DOM or layout rules are changed here.
 */
body.ru-proposal-focus-active #startNewFormSection.open{
  background:radial-gradient(ellipse at 12% 4%,#e7f4ff 0%,transparent 44%),
    linear-gradient(145deg,#f3f8fd 0%,#e8f0f9 100%)!important;
}
body.ru-proposal-focus-active #startNewFormSection .entry-card{
  background:#fff!important;
  border:1px solid #dbe8f4!important;
  border-radius:18px!important;
  box-shadow:0 16px 46px rgba(13,48,91,.12),0 2px 9px rgba(13,48,91,.04)!important;
}
body.ru-proposal-focus-active #startNewFormSection .entry-header h2{
  color:#0d3157!important;
  font-weight:850!important;
  letter-spacing:-.025em!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-head h3{
  color:#10385f!important;
  font-weight:850!important;
  letter-spacing:-.02em!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-head p{
  color:#49627b!important;
}
body.ru-proposal-focus-active #startNewFormSection .form-group label{
  color:#254461!important;
  font-weight:700!important;
}
body.ru-proposal-focus-active #startNewFormSection :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  border-color:#bfd2e5!important;
  border-radius:10px!important;
  background-color:#fff!important;
  color:#142e49!important;
  box-shadow:0 1px 2px rgba(17,49,82,.035)!important;
}
body.ru-proposal-focus-active #startNewFormSection :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea):focus-visible{
  border-color:#246fc7!important;
}
body.ru-proposal-focus-active #startNewFormSection .ru-entry-step-actions{
  border-color:#d6e4f0!important;
  background:#fff!important;
  box-shadow:0 -8px 24px rgba(14,43,80,.09)!important;
}
body.ru-proposal-focus-active #startNewFormSection :is(.ru-entry-next,.ru-v5-step3-submit,#ruFocusStep1Next):not(:disabled){
  border:1px solid #0c59b8!important;
  border-radius:11px!important;
  background:linear-gradient(135deg,#126cce,#074fa9)!important;
  color:#fff!important;
  font-weight:800!important;
  box-shadow:0 4px 11px rgba(10,88,178,.18)!important;
}
body.ru-proposal-focus-active #startNewFormSection :is(.ru-entry-back,#ruProposalFocusExit){
  border-color:#c5d8e9!important;
  border-radius:10px!important;
  background:#f8fbff!important;
  color:#174a79!important;
}
body.ru-proposal-focus-active #ruV5RoofStep .ru-v5-location-cta,
body.ru-proposal-focus-active #ruV5ElectricStep #ruV5ConsumerTypeButtons button{
  border-color:#c7d9ea!important;
  border-radius:12px!important;
  box-shadow:0 2px 7px rgba(17,53,90,.055)!important;
}
body.ru-proposal-focus-active #ruV5RoofStep #ruGoogleRooftopSelector,
body.ru-proposal-focus-active #ruV5RoofStep [id^="ruRoofGeometryPanel_"]{
  border-radius:13px!important;
  border-color:#d0e1f1!important;
}
body.ru-proposal-focus-active #ruV5RoofStep .ru-focus-roof-feedback{
  border-radius:13px!important;
  box-shadow:0 2px 9px rgba(21,65,105,.05)!important;
}
@media (prefers-contrast:more){
  body.ru-proposal-focus-active #startNewFormSection :is(input,select,textarea){
    border-color:#254461!important;
  }
}



/* STEP2_KEYBOARD_REAL_VIEWPORT_20261016
 * A mobile soft keyboard may cover the lower half of a fixed 100dvh
 * application even while its inner Step 2 region says overflow:auto.
 * During manual entry the outer application must occupy visualViewport.height
 * (and offsetTop), not the underlying layout viewport. The original Save
 * remains in ordinary flow and never overlays input controls.
 */
@media(max-width:767px){
  body.ru-proposal-focus-active.ru-roof-dimensions-keyboard-open[data-ru-focus-step="2"]
  #startNewFormSection.open{
    inset:auto 0 auto 0!important;
    top:var(--ru-roof-visible-top,0px)!important;
    bottom:auto!important;
    height:var(--ru-roof-visible-height,100dvh)!important;
    max-height:var(--ru-roof-visible-height,100dvh)!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  body.ru-proposal-focus-active.ru-roof-dimensions-keyboard-open[data-ru-focus-step="2"]
  #ruV5RoofStep.ru-entry-step:not([hidden]){
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    touch-action:pan-y!important;
    min-height:0!important;
    scroll-padding-top:10px!important;
    scroll-padding-bottom:70px!important;
    padding-bottom:calc(125px + env(safe-area-inset-bottom))!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #ruV5RoofStep [id^="ruRoofGeometryPanel_"] [data-use-manual]{
    display:block!important;
    position:static!important;
    transform:none!important;
    left:auto!important;
    right:auto!important;
    bottom:auto!important;
    z-index:auto!important;
    width:100%!important;
    min-height:48px!important;
    margin-top:8px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"]
  #ruV5RoofStep [data-manual-section]{
    scroll-margin-top:10px!important;
    scroll-margin-bottom:70px!important;
  }
}


/* STEP2_MOBILE_MAP_ACTIONS_FIT_20261016
 * Redmi/vivo physical-handset finding: map CTA was just below the fold.
 * Keep each active map plus its original actions within the visible stage.
 * This does not change GPS, satellite interactions, geometry or keyboard UI.
 */
@media(max-width:767px){
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"]:not(.ru-roof-dimensions-keyboard-open)
  #ruV5RoofStep #ruGoogleRooftopSelector,
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]:not(.ru-roof-dimensions-keyboard-open)
  #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofSiteIdentityBox{
    box-sizing:border-box!important;
    width:100%!important;max-width:100%!important;min-width:0!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"]:not(.ru-roof-dimensions-keyboard-open)
  #ruV5RoofStep #ruGoogleMapWrap{
    box-sizing:border-box!important;
    width:100%!important;max-width:100%!important;
    height:clamp(140px,24dvh,205px)!important;
    min-height:0!important;max-height:26dvh!important;
    margin:0 0 3px!important;overflow:hidden!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"]
  #ruV5RoofStep #ruB2CConfirmRoof{
    display:block!important;position:relative!important;
    inset:auto!important;transform:none!important;
    box-sizing:border-box!important;
    width:100%!important;max-width:100%!important;min-width:0!important;
    min-height:48px!important;
    margin:4px 0 0!important;padding:9px 12px!important;
    z-index:1!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]:not(.ru-roof-dimensions-keyboard-open)
  #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofMapWrap{
    box-sizing:border-box!important;
    width:100%!important;max-width:100%!important;
    height:clamp(130px,22dvh,190px)!important;
    min-height:0!important;max-height:24dvh!important;
    margin:0 0 3px!important;overflow:hidden!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
  #ruV5RoofStep.ru-mr-workspace-live :is(#ruMultiRoofWork,#ruAddMultiRoof,#ruMrChangeProperty){
    box-sizing:border-box!important;
    width:100%!important;max-width:100%!important;min-width:0!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
  #ruV5RoofStep.ru-mr-workspace-live #ruAddMultiRoof{
    position:relative!important;inset:auto!important;
    min-height:46px!important;margin:3px 0!important;
    padding:7px 10px!important;z-index:1!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
  #ruV5RoofStep.ru-mr-workspace-live #ruMrChangeProperty{
    position:relative!important;inset:auto!important;
    min-height:38px!important;margin:2px 0!important;
    padding:5px 8px!important;
  }
}
@media(max-width:767px) and (max-height:700px){
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"]:not(.ru-roof-dimensions-keyboard-open)
  #ruV5RoofStep #ruGoogleMapWrap{
    height:clamp(125px,22dvh,160px)!important;max-height:23dvh!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]:not(.ru-roof-dimensions-keyboard-open)
  #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofMapWrap{
    height:clamp(120px,20dvh,150px)!important;max-height:22dvh!important;
  }
}


/* STEP2_MAP_READABLE_ZOOM_AND_LOCATION_ACTION_20261016
 * Larger map for roof identification, retaining the previously proven
 * mobile first-screen confirmation. Keep Google map canvases in their
 * original hosts and preserve the canonical Back/location handlers.
 */
body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruB2CChangeProperty{
  display:none!important;
}
@media(max-width:767px){
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"]:not(.ru-roof-dimensions-keyboard-open)
  #ruV5RoofStep #ruGoogleMapWrap{
    height:clamp(170px,33dvh,290px)!important;
    max-height:35dvh!important;
    min-height:0!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]:not(.ru-roof-dimensions-keyboard-open)
  #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofMapWrap{
    height:clamp(160px,29dvh,245px)!important;
    max-height:31dvh!important;
    min-height:0!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"]
  #ruV5RoofStep #ruB2CChangeProperty,
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
  #ruV5RoofStep.ru-mr-workspace-live #ruMrChangeProperty{
    display:flex!important;
    position:relative!important;
    inset:auto!important;
    box-sizing:border-box!important;
    justify-content:center!important;
    align-items:center!important;
    text-align:center!important;
    white-space:normal!important;
    line-height:1.25!important;
    font-size:13px!important;
    font-weight:800!important;
    width:100%!important;
    max-width:100%!important;
    min-height:42px!important;
    padding:8px 10px!important;
    margin:4px 0 0!important;
    border-radius:9px!important;
    cursor:pointer!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"]
  #ruV5RoofStep #ruB2CChangeProperty{
    color:#0b5fd7!important;
    background:#f8fbff!important;
    border:1px solid #b9d0ed!important;
    box-shadow:none!important;
  }
}
@media(max-width:767px) and (max-height:700px){
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="map"]:not(.ru-roof-dimensions-keyboard-open)
  #ruV5RoofStep #ruGoogleMapWrap{
    height:clamp(155px,27dvh,185px)!important;
    max-height:29dvh!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]:not(.ru-roof-dimensions-keyboard-open)
  #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofMapWrap{
    height:clamp(145px,24dvh,165px)!important;
    max-height:26dvh!important;
  }
}


/* NORD_N100_STEP2_COMPACT_MAP_AND_ACTIVE_SAVE_20261016
 * Narrow Android 11 viewports: remove optional map-stage guidance that sits
 * above Roof 1; keep satellite map and the real action fully reachable.
 * Guide remains mounted and available outside the active map stage.
 */
@media(max-width:767px){
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
  #ruV5RoofStep.ru-mr-workspace-live #ruRoofGuideLaunchRowV2,
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
  #ruV5RoofStep.ru-mr-workspace-live #ruRoofGuideTextHelpV3{
    display:none!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
  #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofSiteIdentityBox{
    margin:0!important;padding:3px!important;gap:2px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
  #ruV5RoofStep.ru-mr-workspace-live #ruCurrentRoofStage{
    padding:3px 7px!important;margin:0 0 2px!important;
  }
  /* Active multi-roof manual Save was white because the shared engine's
   * manualFirst=false mode retains its secondary inline style. This button
   * is a primary commit, just like the single-roof Save Roof Size. */
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"]
  #ruV5RoofStep #ruMultiRoofWork [id^="ruRoofGeometryPanel_"] [data-use-manual]:not(:disabled),
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"]
  #ruV5RoofStep #ruSaveMultiRoofFallbackSize:not(:disabled){
    background:#0b63da!important;color:#fff!important;
    border:1px solid #0a54b8!important;
    border-radius:9px!important;
    font-weight:850!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"]
  #ruV5RoofStep #ruMultiRoofWork [id^="ruRoofGeometryPanel_"] [data-use-manual]:disabled,
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"]
  #ruV5RoofStep #ruSaveMultiRoofFallbackSize:disabled{
    opacity:.55!important;cursor:not-allowed!important;
  }
}
/* Compact the existing modal precision tools only on shorter phone screens.
 * Preserve the full map, all arrows, Set Corner, Undo and Back in the modal;
 * allow vertical overflow as a safety valve for text zoom/very short screens.
 * The map drawing canvas and geospatial engine are unchanged. */
@media(max-width:767px) and (max-height:800px){
  [id^="ruPrecisionRoofHud_"][open] [data-precision-header]{
    padding-top:calc(env(safe-area-inset-top,0px) + 5px)!important;
    padding-bottom:5px!important;
  }
  [id^="ruPrecisionRoofHud_"][open] [data-precision-controls]{
    max-height:42dvh!important;
    padding:5px 7px calc(env(safe-area-inset-bottom,0px) + 5px)!important;
    overflow-y:auto!important;
  }
  [id^="ruPrecisionRoofHud_"][open] [data-precision-controls] > div:nth-child(2) > div:first-child{
    flex:0 0 108px!important;
    grid-template-columns:repeat(3,32px)!important;
    grid-template-rows:repeat(3,32px)!important;
    gap:3px!important;
  }
  [id^="ruPrecisionRoofHud_"][open] [data-precision-controls] [data-nudge]{
    min-height:32px!important;padding:0!important;
  }
  [id^="ruPrecisionRoofHud_"][open] [data-precision-controls] [data-precision-set]{
    min-height:44px!important;
  }
  [id^="ruPrecisionRoofHud_"][open] [data-precision-controls] [data-precision-undo],
  [id^="ruPrecisionRoofHud_"][open] [data-precision-controls] [data-precision-close]{
    min-height:36px!important;margin-top:4px!important;
  }
}


/* STEP2_COMPLETE_VISIBLE_CANONICAL_CONTINUE_20261016
 * A completed single roof was showing only "Rooftop confirmed" and Back
 * because the shared top-Back rule hid its ENTIRE footer, including the
 * legitimate Continue to Your Details button. Re-expose the canonical
 * verified Step 2 Next in the completed phase only; never synthesize a
 * click or relax the underlying rooftop completion gate.
 */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="complete"]
  #startNewFormSection #ruV5RoofStep[data-ru-multi-top-back="1"] > .ru-entry-step-actions{
  display:flex!important;position:static!important;inset:auto!important;
  box-sizing:border-box!important;width:100%!important;
  margin:5px 0 0!important;padding:3px!important;
  background:transparent!important;border:0!important;box-shadow:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="complete"]
  #ruV5RoofStep[data-ru-multi-top-back="1"] > .ru-entry-step-actions .ru-entry-back{
  display:none!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="complete"]
  #ruV5RoofStep[data-ru-multi-top-back="1"] > .ru-entry-step-actions .ru-entry-next{
  display:block!important;min-height:50px!important;width:100%!important;
}


/* NORD_MULTI_ROOF_NO_SINGLE_SELECTOR_CLUTTER_20261016
 * The legacy single-roof card is still mounted and may receive display:block
 * from its GPS controller after multi-roof mode starts. In a live multi-roof
 * workspace that card is redundant and pushes Roof 1 below the fold. Hide
 * visually only; preserve original handlers for future single-roof navigation.
 */
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
  #startNewFormSection #ruV5RoofStep.ru-mr-workspace-live #ruGoogleRooftopSelector,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"]
  #startNewFormSection #ruV5RoofStep.ru-mr-workspace-live #ruGoogleRooftopSelector,
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-summary"]
  #startNewFormSection #ruV5RoofStep.ru-mr-workspace-live #ruGoogleRooftopSelector{
  display:none!important;
}


/* NORD_MULTI_SIZE_VISIBLE_OUTLINE_AND_ONE_STAGE_20261016
 * A multi-roof map was hidden by the multi-size default after the consumer
 * entered Draw Roof Outline. Drawing instructions and Set Corner then showed
 * without imagery. Preserve the engine map host; show it when the consumer
 * explicitly selected outline, even after returning from precision mode.
 * The same GPS/Google canvas is used; no new map or geometry is manufactured.
 *
 * Guide, help, and stale single-roof selector are optional during ALL live
 * multi-roof map/size/summary stages (not just multi-map). They remain
 * available on the location selection stage.
 */
@media(max-width:767px){
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-map"]
    #ruV5RoofStep :is(#ruRoofGuideLaunchRowV2,#ruRoofGuideTextHelpV3,#ruGoogleRooftopSelector),
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"]
    #ruV5RoofStep :is(#ruRoofGuideLaunchRowV2,#ruRoofGuideTextHelpV3,#ruGoogleRooftopSelector),
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-summary"]
    #ruV5RoofStep :is(#ruRoofGuideLaunchRowV2,#ruRoofGuideTextHelpV3,#ruGoogleRooftopSelector){
    display:none!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"][data-ru-focus-draw="1"]
    #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofMapWrap{
    display:block!important;
    box-sizing:border-box!important;
    position:relative!important;
    overflow:hidden!important;
    height:clamp(145px,25dvh,210px)!important;
    max-height:28dvh!important;
    min-height:0!important;
    width:100%!important;
    margin:0 0 5px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"][data-ru-focus-draw="1"]
    #ruV5RoofStep.ru-mr-workspace-live #ruCurrentRoofStage{
    margin:0 0 2px!important;
    padding:3px 7px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"][data-ru-focus-draw="1"]
    #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofWork [id^="ruRoofGeometryPanel_"] [data-measure-intro]{
    margin:2px 0 4px!important;
    padding:5px!important;
    font-size:11px!important;
    line-height:1.3!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="multi-size"][data-ru-focus-draw="1"]
    #ruV5RoofStep.ru-mr-workspace-live #ruMultiRoofWork [id^="ruRoofGeometryPanel_"] [data-instruction]{
    margin:2px 0 4px!important;
    padding:5px!important;
    font-size:11px!important;
    line-height:1.3!important;
  }
}

/* STEP2_STEP3_SHORT_VIEWPORT_20261023
 * Presentation-only reduction for narrow/short devices. Never hide the GPS,
 * address, rooftop outline, manual dimension or multi-roof action. Do not
 * position a second action bar over the satellite map or keyboard.
 * Large accessibility text and keyboard views remain scrollable. */
@media (max-width:767px) and (max-height:740px){
  body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruStandardSpaceShortcut{
    margin:0 0 8px!important;
    padding:9px 11px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceCopy{
    margin:5px 0 7px!important;
    font-size:13px!important;
    line-height:1.35!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceConfirm{
    min-height:48px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"] #ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceOpenExact{
    min-height:44px!important;
    margin-top:6px!important;
    padding:8px 10px!important;
    line-height:1.3!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5RoofStep #ruV5PropertyLocationChoices{
    gap:7px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5RoofStep .ru-v5-location-cta{
    min-height:60px!important;
    padding:7px 11px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5RoofStep .ru-v5-location-cta span{
    margin-top:2px!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5RoofStep #ruV5LocationIntentExplanation{
    margin:3px 0 5px!important;
    line-height:1.3!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="location"] #ruV5RoofStep #ruV5MultiRoofEntry{
    margin:4px 0 0!important;
    padding:3px 0!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="3"][data-ru-focus-phase="details"] #ruV5ContactStep .ru-entry-step-head p{
    margin:2px 0 5px!important;
    line-height:1.35!important;
  }
  body.ru-proposal-focus-active[data-ru-focus-step="3"][data-ru-focus-phase="details"] #ruV5ContactStep .form-group{
    margin-bottom:6px!important;
  }
}
/* Large text, zoom, onscreen keyboard, and landscape retain ordinary scroll;
 * do not impose a fixed height or overflow clip on location/map/form content. */

/* STEP2_UNIFIED_CHOICES_DESKTOP_MOBILE_20261023
 * One visible primary rooftop shortcut plus direct manual/map alternatives.
 * No fixed overlays and no changes to the live rooftop/map workspace. */
#ruV5RoofStep #ruStandardSpaceShortcut.ru-step2-unified-card{
  box-sizing:border-box;
  width:100%;
  max-width:760px;
  padding:18px 20px;
  margin:0 auto 12px;
  border:1px solid #c5d9f0;
  background:#f7fbff;
  border-radius:16px;
  box-shadow:0 5px 22px rgba(18,64,108,.06);
  text-align:left;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-unified-top{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  margin-bottom:9px;
  color:#436281;
  font-size:11px;
  font-weight:800;
  letter-spacing:.04em;
}
#ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceCapacityBadge{
  white-space:nowrap;
  font-size:12px;
  letter-spacing:0;
  color:#154b86;
  background:#e7f0fc;
  border:1px solid #c4daf5;
  padding:6px 10px;
  border-radius:99px;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-quick-title{
  display:block;
  font-size:20px;
  line-height:1.25;
  font-weight:850;
  color:#103d6e;
}
#ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceCopy{
  margin:8px 0 13px;
  line-height:1.5;
  font-size:14px;
  color:#31516f;
}
#ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceConfirm{
  box-sizing:border-box;
  display:block;
  width:100%;
  min-height:52px;
  padding:12px 16px;
  border-radius:11px;
  font-size:16px;
  font-weight:850;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
  align-items:start;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option{
  box-sizing:border-box;
  display:block;
  min-width:0;
  width:100%;
  margin:0;
  padding:0;
  border:1px solid #bfd3ec;
  border-radius:12px;
  background:#fff;
  color:#164d80;
  text-align:left;
  box-shadow:none;
  overflow:visible;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option > summary,
#ruV5RoofStep #ruStandardSpaceShortcut button.ru-step2-option{
  box-sizing:border-box;
  padding:12px 13px;
  min-height:66px;
  width:100%;
  cursor:pointer;
  border-radius:12px;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option > summary{
  display:flex;
  flex-direction:column;
  justify-content:center;
  list-style:none;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option > summary::-webkit-details-marker{display:none}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option strong{
  display:block;
  font-size:15px;
  font-weight:850;
  line-height:1.3;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option span{
  display:block;
  font-size:12px;
  line-height:1.4;
  font-weight:550;
  margin-top:3px;
  color:#526c88;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option[open]{
  grid-column:1/-1;
  padding-bottom:12px;
  border-color:#3d87dc;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-dimension-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding:8px 13px 0;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-dimension-fields label{
  display:block;
  font-size:13px;
  font-weight:700;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-dimension-fields input{
  box-sizing:border-box;
  display:block;
  width:100%;
  min-width:0;
  margin-top:5px;
  min-height:44px;
  border:1px solid #abc8e4;
  border-radius:9px;
  padding:8px 9px;
}
#ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceDimensions{
  display:block;
  width:calc(100% - 26px);
  min-height:46px;
  margin:10px 13px 0;
}
#ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceMultiRoofs{
  display:block;
  border:0;
  background:transparent;
  min-height:44px;
  padding:8px 4px;
  margin:7px 0 0;
  font-size:13px;
  font-weight:600;
  color:#526c88;
  cursor:pointer;
  text-align:left;
}
#ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceMultiRoofs strong{color:#075fcc}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-site-note{
  margin:6px 0 0;
  font-size:11px;
  line-height:1.45;
  color:#64748b;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-message{
  margin:4px 0 0;
  font-size:12px;
  color:#365b82;
}
#ruV5RoofStep #ruStandardSpaceShortcut :is(button,summary,input):focus-visible{
  outline:3px solid #126bd3;
  outline-offset:2px;
}
@media(max-width:767px){
  #ruV5RoofStep #ruStandardSpaceShortcut.ru-step2-unified-card{
    max-width:none;
    padding:12px;
    border-radius:14px;
    margin:0 0 10px;
  }
  #ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-quick-title{font-size:17px}
  #ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceCopy{
    font-size:13px;
    margin:7px 0 10px;
  }
  #ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceConfirm{
    min-height:50px;
    font-size:15px;
  }
  #ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option-grid{gap:8px;margin-top:9px}
  #ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option > summary,
  #ruV5RoofStep #ruStandardSpaceShortcut button.ru-step2-option{
    min-height:58px;
    padding:8px 9px;
  }
  #ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option strong{font-size:13px}
  #ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option span{font-size:11px}
  #ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-site-note{font-size:11px}
}
@media(max-width:360px){
  #ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option-grid{grid-template-columns:1fr}
}
/* Step 3 stays canonical: improve only rhythm and input clarity. */
body.ru-proposal-focus-active[data-ru-focus-step="3"] #ruV5ContactStep .ru-entry-step-head{margin-bottom:8px!important}
body.ru-proposal-focus-active[data-ru-focus-step="3"] #ruV5ContactStep .form-group{margin-bottom:8px!important}
body.ru-proposal-focus-active[data-ru-focus-step="3"] #ruV5ContactStep .ru-v5-step3-submit{min-height:52px!important}

/* STEP2_CAPACITY_AWARE_VISUAL_REFINEMENT_20261023
 * Presentation only; canonical GPS, outline, manual rooftop and multi-roof flows remain untouched. */
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-assessment-note{
  background:#e9f3ff;border:1px solid #d6e8fc;border-radius:10px;
  padding:9px 12px;margin:0 0 12px;color:#164d80;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-assessment-note[hidden]{display:none!important}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-assessment-note strong{display:block;font-size:13px}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-assessment-note span{display:block;font-size:12px;margin-top:2px;line-height:1.35}
#ruV5RoofStep #ruStandardSpaceShortcut.ru-step2-large-assessment .ru-step2-option,
#ruV5RoofStep #ruStandardSpaceShortcut.ru-step2-large-assessment #ruStandardSpaceMultiRoofs{background:#fff}
#ruV5RoofStep #ruStandardSpaceShortcut.ru-step2-large-assessment .ru-step2-option strong{color:#123c69}
#ruV5RoofStep #ruStandardSpaceShortcut.ru-step2-large-assessment #ruStandardSpaceMultiRoofs{
  width:100%;padding:10px 12px;border:1px solid #d5e5f7;border-radius:10px;background:#edf5ff;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-engineering-dimensions .ru-step2-dimension-fields[hidden]{display:none!important}
#ruV5RoofStep #ruStandardSpaceShortcut.ru-step2-dimensions-expanded:not(.ru-step2-large-assessment) .ru-step2-option-grid{grid-template-columns:minmax(0,1fr)}
#ruV5RoofStep #ruStandardSpaceShortcut.ru-step2-dimensions-expanded:not(.ru-step2-large-assessment) #ruStandardSpaceOpenExact{display:none}
#ruV5RoofStep #ruStandardSpaceShortcut.ru-step2-dimensions-expanded:not(.ru-step2-large-assessment) #ruStandardSpaceMultiRoofs{display:none}
#ruV5RoofStep #ruStandardSpaceShortcut.ru-step2-dimensions-expanded:not(.ru-step2-large-assessment) .ru-step2-dimensions{grid-column:1}
#ruV5RoofStep #ruStandardSpaceShortcut.ru-step2-dimensions-expanded:not(.ru-step2-large-assessment) .ru-step2-dimension-fields{padding-top:4px}
@media(max-width:767px){
 #ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-assessment-note{padding:8px 10px;margin-bottom:8px}
 #ruV5RoofStep #ruStandardSpaceShortcut.ru-step2-large-assessment .ru-step2-quick-title{font-size:17px}
}

/* STEP2_REFINED_OPTION_CARDS_20261023: clear illustrated choices at both 3 kW and 200 kW.
 * Cosmetic only; original button and details handlers are unchanged. */
#ruV5RoofStep #ruStandardSpaceShortcut.ru-step2-unified-card{
  background:linear-gradient(160deg,#f7fbff,#f1f7ff);
  border-color:#c7ddf5;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option > summary,
#ruV5RoofStep #ruStandardSpaceShortcut button.ru-step2-option{
  position:relative;
  min-height:74px;
  padding:12px 12px 12px 66px;
  text-align:left;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option > summary{
  align-items:flex-start;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-dimensions > summary::before,
#ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceOpenExact::before{
  position:absolute;
  left:13px;
  top:50%;
  transform:translateY(-50%);
  width:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:#0a60d0;
  background:#eaf3ff;
  font-size:23px;
  font-weight:800;
  line-height:1;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-dimensions > summary::before{content:"↔";}
#ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceOpenExact::before{content:"⌖";}
#ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceMultiRoofs{
  width:100%;
  margin-top:11px;
  padding:11px 13px;
  border-radius:11px;
  background:#eaf3ff;
  border:1px solid #d6e8fb;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-site-note{
  margin-top:9px;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-dimensions[open] > summary::before{
  top:33px;
}
@media(max-width:767px){
 #ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-option > summary,
 #ruV5RoofStep #ruStandardSpaceShortcut button.ru-step2-option{
   min-height:60px;
   padding:8px 7px 8px 48px;
 }
 #ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-dimensions > summary::before,
 #ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceOpenExact::before{
   left:7px;width:34px;height:34px;font-size:19px;
 }
 #ruV5RoofStep #ruStandardSpaceShortcut #ruStandardSpaceMultiRoofs{
   padding:9px 10px;margin-top:8px;
 }
}

/* STEP2_REVERSIBLE_DIMENSIONS_AND_CLEAN_SIZE_20261023
 * The manual quick-space editor is a reversible sub-view. Do not overlay
 * the real map, alter the geometry controls or move the Step 2 footer. */
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-dimensions-back{
  display:block;width:calc(100% - 26px);min-height:44px;
  margin:7px 13px 0;padding:8px 12px;
  border:1px solid #bdd5ee;border-radius:9px;
  background:#fff;color:#135ba5;font-size:13px;font-weight:800;
  cursor:pointer;
}
#ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-dimensions-back:focus-visible{
  outline:3px solid #126bd3;outline-offset:2px;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"]
  #ruV5RoofStep [data-space-alternate]{
  margin-top:4px!important;
}
body.ru-proposal-focus-active[data-ru-focus-step="2"][data-ru-focus-phase="size"]
  #ruV5RoofStep [data-space-alternate] > div{
  padding-top:5px!important;
}
@media(max-width:767px){
  #ruV5RoofStep #ruStandardSpaceShortcut .ru-step2-dimensions-back{
    min-height:44px;
  }
}
