/* Shared spacing for actions across pages and dialogs. */
:root{--action-gap:16px;--action-section-gap:20px}
:root{--panel-gap:20px}
/* One consistent gutter between framed cards and sections. */
.card,.overview-section{margin-bottom:var(--panel-gap)}
.overview-headlines,.payment-headlines{margin-bottom:var(--panel-gap)}
.cards,.grid2:not(.analytics-grid),.overview-connections,.customer-layout,
.profile-fields,.overview-care-grid{gap:var(--panel-gap)}
.overview-connections{margin-bottom:var(--panel-gap)}
.overview-connections>.card,.analytics-grid>.card{margin:0}
/* Prevent native field widths from pushing adjacent controls together. */
.editgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.editgrid>label,.editgrid>fieldset{min-width:0;max-width:100%}
.editgrid input:not([type=checkbox]):not([type=radio]),.editgrid select,.editgrid textarea{
 min-width:0;min-inline-size:0;max-width:100%;width:100%;box-sizing:border-box;
}
@media(max-width:700px){.editgrid{grid-template-columns:minmax(0,1fr)}}
/* Analytics uses measured row spans on desktop; keep its one-pixel rows. */
.analytics-grid{column-gap:var(--panel-gap)}
@media(max-width:900px){
 .analytics-grid{row-gap:var(--panel-gap);margin-bottom:var(--panel-gap)}
}
.row,.finance-actions,.connection-actions,.booking-record-actions,
.profile-detail-head>.row,.analytics-toolbar,.quote-panel .quote-primary-actions,
.overview-section-heading,.customer-directory .profile-toolbar{
 gap:var(--action-gap);
}
.overview-care-photo-actions,.dog-photo-actions{gap:12px}
.calculator-share-options{gap:12px;padding:12px}
.booking-actions-options{gap:8px;padding:10px}
.booking-calculator>:is(label,p,.editgrid)+.btn{margin-top:16px}
.booking-calculator .editgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.booking-calculator .editgrid>label{min-width:0;max-width:100%;margin-top:0}
.booking-calculator .editgrid input,.booking-calculator .editgrid select{
 display:block;min-width:0;min-inline-size:0;max-width:100%;width:100%;box-sizing:border-box;margin-top:8px;
}
.booking-calculator>.booking-balance-summary+.btn{display:block;margin:20px 0}
.booking-calculator>.calculator-travel{gap:16px;margin:20px 0}
.booking-calculator>.calculator-travel>span{flex:1 1 100%}
.booking-calculator>.calculator-travel>.btn{flex:0 1 auto;min-width:180px}
.booking-calculator>.row:has(>.calculator-share){gap:16px;margin-top:20px!important}
.booking-calculator>details{margin:20px 0}
@media(max-width:360px){.booking-calculator .editgrid{grid-template-columns:minmax(0,1fr)}}
.btn{max-width:100%;box-sizing:border-box;min-height:44px;line-height:1.35;white-space:normal}
/* Separate the final actions from fields, balance panels and review text. */
form>.row:has(>.btn),form>.row:has(>.calculator-share),
.editgrid+.row:has(.btn),.booking-balance-summary+.row:has(.btn),
.finance-note+.row:has(.btn),.quote-panel #quoteResult+.row:has(.btn){
 margin-top:var(--action-section-gap);
}
#paymentForm>.row{display:flex;flex-wrap:wrap;gap:16px;margin-top:20px}
#paymentForm>.row>.btn{margin:0}
.quote-panel .quote-primary-actions{row-gap:16px;column-gap:16px}
@media(max-width:700px){
 .row,.finance-actions,.booking-record-actions,.profile-detail-head>.row{row-gap:16px;column-gap:16px}
 .row>.btn,.finance-actions>.btn,.booking-record-actions>.btn{min-width:0;overflow-wrap:anywhere}
 #paymentForm>.row>.btn{flex:0 1 auto}
 .booking-calculator>.calculator-travel>.btn{flex:1 1 100%;width:100%}
}
