.booking-estimate-panel{overflow:hidden}
.estimate-panel-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}
.estimate-panel-head h3{margin:3px 0 6px}
.estimate-panel-head .panel-note{margin:0;max-width:680px}
.estimate-live-status[data-enabled="false"]{background:#F1EEE7;color:#6D675F}
.estimate-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(280px,.82fr);gap:18px;align-items:start}
.estimate-builder{display:grid;gap:16px}
.estimate-segmented{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:5px;background:#F3F0EA;border-radius:16px}
.estimate-segmented label{cursor:pointer;position:relative}
.estimate-segmented input{position:absolute;opacity:0;pointer-events:none}
.estimate-segmented span{display:block;text-align:center;padding:10px 12px;border-radius:12px;font-size:12px;font-weight:900;color:var(--muted)}
.estimate-segmented input:checked+span{background:var(--paper);color:var(--ink);box-shadow:0 2px 8px rgba(25,25,25,.06)}
.estimate-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.estimate-form-grid .full{grid-column:1/-1}
.estimate-form-grid label,.estimate-rule-grid label{display:grid;gap:6px;font-size:11px;font-weight:900;color:#5D5952}
.estimate-form-grid input,.estimate-form-grid select,.estimate-rule-grid input{width:100%;border:1px solid var(--line);border-radius:13px;background:#FCFBF8;color:var(--ink);padding:11px 12px;font:inherit}
.estimate-builder.is-commercial .estimate-form-grid label:not(.full){opacity:1}
.estimate-addons-block{display:grid;gap:9px}
.estimate-field-head{display:flex;justify-content:space-between;gap:12px;align-items:end}
.estimate-field-head small{font-size:10px;color:var(--muted);text-align:right;max-width:360px}
.estimate-addon-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.estimate-addon-choice{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:14px;padding:11px;background:#FCFBF8;cursor:pointer}
.estimate-addon-choice>input[type="checkbox"],.commercial-addon-toggle input[type="checkbox"]{width:18px;height:18px;min-width:18px;flex:0 0 18px}
.estimate-addon-choice span{display:grid;gap:2px}
.estimate-addon-choice strong{font-size:12px}
.estimate-addon-choice small{font-size:10px;color:var(--muted)}
.estimate-empty{grid-column:1/-1;border:1px dashed var(--line);border-radius:14px;padding:14px;color:var(--muted);font-size:11px}
.estimate-result{min-height:310px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,var(--blue),#FCFBF8 70%);padding:22px;display:grid;align-content:start;gap:10px;position:sticky;top:18px}
.estimate-result-kicker{font-size:10px;letter-spacing:.14em;font-weight:900;color:#566675}
.estimate-total{font-size:clamp(38px,6vw,58px);letter-spacing:-.05em;line-height:1}
.estimate-result-status{font-size:11px;color:var(--muted)}
.estimate-breakdown{display:grid;gap:8px;margin-top:6px;padding-top:13px;border-top:1px solid rgba(25,25,25,.1)}
.estimate-breakdown-row{display:flex;justify-content:space-between;gap:16px;font-size:11px}
.estimate-breakdown-row span{color:var(--muted)}
.estimate-result-note{margin:6px 0 0;color:var(--muted);font-size:10px;line-height:1.45}
.estimate-result-empty{display:grid;gap:5px;margin:auto 0;color:var(--muted)}
.estimate-custom-quote-mark{width:44px;height:44px;border-radius:14px;background:var(--ink);color:white;display:grid;place-items:center;font-size:22px;margin:8px 0}
.estimate-result h4{font-size:28px;margin:0}
.estimate-result p{margin:0;color:var(--muted);line-height:1.5}
.estimate-rules{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}
.estimate-rules summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;align-items:center;list-style:none}
.estimate-rules summary::-webkit-details-marker{display:none}
.estimate-rules summary>span:first-child{display:grid;gap:3px}
.estimate-rules summary small{color:var(--muted);font-size:10px;font-weight:500}
.estimate-rules-body{display:grid;gap:14px;padding-top:16px}
.estimate-rule-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.estimate-toggle{display:flex!important;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line);border-radius:15px;background:#FCFBF8;padding:12px 14px}
.estimate-toggle span{display:grid;gap:3px}
.estimate-toggle small{color:var(--muted);font-size:10px;font-weight:500}
.estimate-toggle input{width:20px;height:20px}
.estimate-rules-actions{display:flex;justify-content:flex-end}
.estimate-owner-note{font-size:10px;color:var(--muted);padding:8px 0;text-align:right}
@media(max-width:900px){
  .estimate-layout{grid-template-columns:1fr}
  .estimate-result{position:static;min-height:0}
  .estimate-rule-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
  .estimate-panel-head{display:grid}
  .estimate-live-status{justify-self:start}
  .estimate-form-grid,.estimate-addon-grid,.estimate-rule-grid{grid-template-columns:1fr}
  .estimate-form-grid .full{grid-column:auto}
  .estimate-field-head{display:grid;align-items:start}
  .estimate-field-head small{text-align:left}
  .estimate-result{padding:18px;border-radius:18px}
  .estimate-total{font-size:42px}
}

/* Keep persistence feedback next to an accessible save action. */
html body.shell-app #appShell .estimate-save-bar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  position:sticky;top:0;z-index:3;padding:12px;
  border:1px solid var(--line);border-radius:14px;background:var(--paper,#FAF8F3);
}
html body.shell-app #appShell .estimate-save-status{font-size:12px;font-weight:700;line-height:1.35}
html body.shell-app #appShell .estimate-save-status[data-state="dirty"],
html body.shell-app #appShell .estimate-save-status[data-state="error"]{color:#9b3f17}
html body.shell-app #appShell .estimate-save-bar button{min-height:44px;flex-shrink:0;font-size:12px}


.pricing-page-intro{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:16px}.pricing-page-intro h2{font-size:clamp(28px,4vw,44px);line-height:1.05;margin:4px 0 8px}.pricing-page-intro p{max-width:620px;color:var(--muted);line-height:1.55}
.pricing-mode-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 14px}.pricing-mode-card{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;gap:2px 9px;text-align:left;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--card);cursor:pointer}.pricing-mode-card>span{grid-row:1/3;font-size:20px}.pricing-mode-card strong{font-size:13px}.pricing-mode-card small{font-size:10px;color:var(--muted)}.pricing-mode-card.active{border-color:var(--ink);background:#fff;box-shadow:0 10px 26px rgba(25,25,25,.06),inset 0 0 0 1px var(--ink)}
.guided-price-block{display:grid;gap:12px;padding:16px;border:1px solid rgba(25,25,25,.07);border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(25,25,25,.04)}.guided-price-head>div{display:grid;gap:4px}.guided-step{font-size:9px;font-weight:900;letter-spacing:.14em;color:#6e6a62}.guided-price-head strong{font-size:17px;letter-spacing:-.02em}.guided-price-head small,.guided-price-note{font-size:10px;line-height:1.45;color:var(--muted)}.guided-price-note{margin:0}.guided-price-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.guided-price-grid label,.estimate-final-price{display:grid;gap:6px;font-size:11px;font-weight:900;color:#5D5952}.guided-price-grid input,.guided-price-grid select,.estimate-final-price input{width:100%;border:1px solid var(--line);border-radius:13px;background:#FCFBF8;color:var(--ink);padding:11px 12px;font:inherit}.estimate-range{font-size:13px;font-weight:850;color:#425466}.estimate-guided-why{font-size:11px!important}.estimate-final-price{margin-top:8px}.estimate-create-quote{width:100%;min-height:46px;margin-top:2px}
@media(max-width:900px){.guided-price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.pricing-mode-cards,.guided-price-grid{grid-template-columns:1fr}.pricing-page-intro h2{font-size:30px}.pricing-mode-card{padding:13px}}


/* r58 — commercial calculator: visible prices, clean separation from residential. */
.estimate-service-field[hidden],
.guided-price-block[hidden]{display:none!important}
.estimate-live-status{flex:0 0 auto;max-width:150px;text-align:center;line-height:1.15}
.commercial-addon{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(92px,118px)!important;
  align-items:center!important;
  gap:12px!important;
  cursor:default!important;
}
.commercial-addon-toggle{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  cursor:pointer;
}
.commercial-addon-toggle>span{min-width:0}
.commercial-addon-toggle strong{display:block;overflow-wrap:normal;word-break:normal}
.commercial-addon-price-wrap{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:5px;
  min-width:0;
  padding:0 10px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
  color:#777169;
  font-size:11px;
  font-weight:900;
}
.commercial-addon-price-wrap:focus-within{
  border-color:#8DB6DC;
  box-shadow:0 0 0 3px rgba(141,182,220,.14);
}
.commercial-addon-price-wrap .commercial-addon-price{
  width:100%!important;
  min-width:0!important;
  height:38px!important;
  padding:0!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  color:var(--ink)!important;
  font:inherit!important;
  font-weight:850!important;
  text-align:right;
}
.commercial-addon-price-wrap .commercial-addon-price::-webkit-inner-spin-button,
.commercial-addon-price-wrap .commercial-addon-price::-webkit-outer-spin-button{
  margin:0;
}
.estimate-builder.is-commercial .estimate-form-grid{
  align-items:end;
}
.estimate-builder.is-commercial .commercial-base-field input:invalid,
.commercial-addon-price:invalid{
  border-color:#C76752!important;
}
.estimate-result .estimate-total{
  max-width:100%;
  overflow-wrap:anywhere;
}
.estimate-create-quote:disabled{
  opacity:.45;
  cursor:not-allowed;
}
@media(min-width:681px) and (max-width:1100px){
  [data-page="pricing"] .estimate-panel-head{
    align-items:center;
    margin-bottom:14px;
  }
  [data-page="pricing"] .estimate-panel-head h3{
    font-size:24px;
    line-height:1.05;
  }
  [data-page="pricing"] .estimate-layout{
    gap:14px;
  }
  [data-page="pricing"] .estimate-result{
    padding:18px;
    border-radius:20px;
  }
}
@media(max-width:620px){
  .commercial-addon{
    grid-template-columns:minmax(0,1fr) 102px!important;
  }
  .commercial-addon-price-wrap{
    padding:0 8px;
  }
}
