/* Booking portal only. One calculator dialog at every viewport size. */
.estimate-summary{padding:12px 0 6px}.estimate-summary-label{display:block;font-size:12px;font-weight:600;color:#526173}.offer-estimate .estimate-summary .estimate-total,.cost-preview .estimate-summary .estimate-total{display:block;font-size:clamp(23px,3vw,28px);font-weight:750;line-height:1.2;margin:4px 0}.estimate-summary-tax{font-size:12px;color:#526173}.estimate-included{list-style:none;padding:0;margin:12px 0;display:grid;gap:7px}.estimate-included li{display:flex;gap:8px;align-items:baseline;font-size:13px;line-height:1.4}.estimate-included-check{color:#178055;font-weight:750;flex:none}.estimate-summary .estimate-summary-note{font-size:12px;line-height:1.45;color:#526173;margin:6px 0}.offer-card:has(.estimate-summary) .cost-total{font-size:20px}
#desktop-refinements{display:none}
#mobile-refinements{display:block;margin:16px 0;padding:16px;border:1px solid #dce2e8;border-radius:12px;background:#f7f8fa}
#open-refinements{width:100%;text-align:left;font-size:16px;background:#fff}
#estimate-card-status{margin:10px 0 0}
.result-extra .estimate-input-link{min-height:44px;padding:8px 0;border:0;background:transparent;color:#3159d9;text-align:left;text-decoration:underline;text-underline-offset:3px}
.result-extra .estimate-input-link:focus-visible{outline:2px solid #365de1;outline-offset:2px}
.offer-estimate:empty{display:none}
.offer-estimate .estimate-total{display:block;font-size:18px;margin:12px 0 6px}
.offer-estimate .time-price,.offer-estimate .distance-price{margin:12px 0}
.refine-dialog{width:calc(100% - 24px);max-width:660px;max-height:calc(100dvh - 24px)}
.refine-dialog-header,.refine-dialog-footer{flex:none}
.refine-dialog-header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px}
.estimate-dialog-title{flex:1;min-width:0}
.estimate-dialog-title .help{margin:3px 0 0;font-size:13px}
#close-refinements{min-width:44px}
.refine-dialog-body{padding-top:16px;scrollbar-gutter:stable}
.refine-dialog .estimate-state{margin:8px 0 12px;padding:12px;border-radius:8px;background:#edf2ff}
#estimate-missing{display:flex;flex-wrap:wrap;gap:8px}
#estimate-missing button{min-height:44px;text-align:left;font-size:14px;color:#214a92}
.refine-dialog .estimate-group{margin:10px 0;padding:12px}
.estimate-group>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:32px;font-weight:600}
.estimate-group-count{flex:none;color:#000;font-size:13px;font-weight:400}
.estimate-field-hint{color:#7b3c16}
#estimate-offers{list-style:none;padding:0;margin:12px 0}
#estimate-offers li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #dce2e8;font-size:14px}
#estimate-offers li span{min-width:0;overflow-wrap:anywhere}
#estimate-offers li small{display:block;color:#000;margin-top:3px}
#estimate-offers li strong{text-align:right;font-size:13px}
.mobile-refine-actions{display:flex;flex-direction:column;gap:8px}
.mobile-refine-actions button{min-height:44px;white-space:normal}
.refine-dialog #refine-feedback{display:none}
.refine-dialog :is(button,input,select,summary):focus-visible{outline:2px solid #365de1;outline-offset:2px}
.refine-dialog [hidden],#mobile-refinements[hidden]{display:none!important}
@media(max-width:390px){.refine-dialog-header{padding:10px 12px}#reset-refinements{font-size:12px}.refine-dialog-body,.refine-dialog-footer{padding-left:12px;padding-right:12px}}
@media(prefers-reduced-motion:reduce){.refine-dialog *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
