/* Keep the map and the overview in the same grid row, with no inner scroller. */
#horizon-booking-demo .hd-location{align-items:stretch;grid-template-columns:minmax(0,1.3fr) minmax(360px,1fr)}
#horizon-booking-demo .hd-map-column{display:flex;flex-direction:column;min-width:0;min-height:0;align-self:stretch}
#horizon-booking-demo .hd-map-column .hd-map{flex:1 0 300px;height:auto;min-height:300px}
#horizon-booking-demo .hd-details{align-self:stretch;max-height:none;overflow:visible}
#horizon-booking-demo .hd-customer-title-row{display:block}
#horizon-booking-demo .hd-customer-title-row.ho-locatable-customer{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center}
#horizon-booking-demo .ho-locate-customer{display:grid;place-items:center;box-sizing:border-box;width:44px;height:44px;padding:0;border:0;border-radius:50%;outline:1px solid #94efff66;background:#10263a55;box-shadow:0 2px 7px #07132155;cursor:pointer}
#horizon-booking-demo .ho-locate-customer .hmp-crosshair{position:static}
#horizon-booking-demo .ho-locate-customer:not(:disabled):hover{background:#204c5c77;outline-color:#b8f5ff;box-shadow:0 0 0 3px #94efff22}
#horizon-booking-demo .ho-locate-customer:disabled{opacity:.4;cursor:default}
/* Keep the clear cyan locator consistent instead of recolouring it per theme. */
html body #horizon-booking-demo[data-horizon-theme] .hmp-crosshair svg{stroke:#94efff;filter:none}
#horizon-booking-demo .hd-selected{padding-bottom:12px}
#horizon-booking-demo .hd-selected h3{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:21px}
#horizon-booking-demo .ho-job-status{display:inline-flex;padding:3px 7px;border:1px solid currentColor;border-radius:5px;font-size:10px;line-height:1.4;font-weight:500;letter-spacing:0;opacity:.85}
#horizon-booking-demo .hd-overview-actions{display:flex;flex-wrap:wrap;gap:5px}
#horizon-booking-demo .hd-overview-actions button{font-size:11px;min-height:30px;padding:5px 8px}
#horizon-booking-demo .ho-overview-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;padding-top:12px}
#horizon-booking-demo .ho-contact-column,#horizon-booking-demo .ho-notes-column{min-width:0}
#horizon-booking-demo .hd-customer-record .ho-contact{padding:0;border:0}
#horizon-booking-demo .hd-customer-record .ho-contact>h3{margin:0 0 9px}
#horizon-booking-demo .hd-customer-record .ho-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 20px;margin:0}
#horizon-booking-demo .ho-field{display:flex;flex-direction:column;gap:2px;min-width:0}
#horizon-booking-demo .ho-field[hidden]{display:none}
#horizon-booking-demo .ho-field.ho-wide{grid-column:1/-1}
#horizon-booking-demo .ho-field dt{font-size:11px;line-height:1.4}
#horizon-booking-demo .ho-field dd{margin:0;line-height:1.5;font-size:12px}
#horizon-booking-demo .ho-appointment dd{font-size:14px;font-weight:600}
#horizon-booking-demo .hd-customer-record .ho-contact .ho-fields{grid-template-columns:minmax(0,1fr);gap:0}
#horizon-booking-demo .ho-contact .ho-field{padding:6px 0;border-bottom:1px solid var(--hd-line,#44516b)}
#horizon-booking-demo .ho-contact .ho-field:first-child{padding-top:0}
#horizon-booking-demo .ho-contact .ho-field:last-child{border-bottom:0;padding-bottom:0}
#horizon-booking-demo .hd-overview-job-details{padding:10px 0 0;border:0}
#horizon-booking-demo .hd-overview-job-details>h3{min-height:0;margin:0 0 8px}
#horizon-booking-demo .hd-customer-record .hd-overview-job-details .ho-fields{grid-template-columns:minmax(0,1fr);gap:6px}
#horizon-booking-demo .hd-overview-job-details .ho-field{display:grid;grid-template-columns:68px minmax(0,1fr);gap:7px;align-items:baseline}
#horizon-booking-demo .hd-overview-job-details .ho-field[hidden]{display:none}
#horizon-booking-demo .ho-appointment dd{font-size:12px}
#horizon-booking-demo .hd-customer-record .ho-job-details-note>h3{margin:0 0 8px}
#horizon-booking-demo .hd-customer-record .ho-job-description{min-height:76px;height:auto;margin:0;padding:9px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}
#horizon-booking-demo .ho-job-details-note{margin-bottom:12px}
#horizon-booking-demo .hd-overview-customer-notes .hn-notes-heading{margin-bottom:6px}
#horizon-booking-demo .hd-overview-customer-notes .hn-note-name-label{gap:8px}
#horizon-booking-demo .hd-overview-customer-notes .hn-note-title{min-height:28px;height:28px}
#horizon-booking-demo .hd-overview-customer-notes .hn-note-form .hn-note-text{flex:none;min-height:88px;height:88px}
#horizon-booking-demo .ho-map-hint{font-size:10px;margin:9px 0 0}
#horizon-booking-demo .hd-customer-record .hi-customer-invoices{margin-top:12px;padding-top:12px;border-top:1px solid var(--hd-line,#44516b)}
#horizon-booking-demo .hd-customer-record .ho-invoices-clear>h3{display:none}
#horizon-booking-demo .hd-customer-record .ho-invoices-clear>p{margin:0;font-size:11px}
#horizon-booking-demo .hd-booking-heading .hd-draft-status{text-align:right}
@container(max-width:330px){
 #horizon-booking-demo .ho-overview-columns{grid-template-columns:minmax(0,1fr);gap:14px}
}
@media(max-width:800px){
 #horizon-booking-demo .hd-location{grid-template-columns:minmax(0,1fr)}
 #horizon-booking-demo .hd-map-column .hd-map{flex:none;height:380px;min-height:300px}
}
@media(max-width:500px){
 #horizon-booking-demo .hd-booking-heading{align-items:flex-start;flex-wrap:wrap}
 #horizon-booking-demo .hd-booking-heading .hd-draft-status{flex:1 1 180px}
}

/* Customer record shortcut and the outstanding balance on the schedule card. */
#horizon-booking-demo .hd-customer-title-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
#horizon-booking-demo .hd-customer-title-row.ho-locatable-customer{grid-template-columns:44px minmax(0,1fr) auto}
#horizon-booking-demo .hd-customer-identity{min-width:0}
#horizon-booking-demo .hd-customer-identity h3{overflow-wrap:anywhere}
#horizon-booking-demo .ho-customer-outstanding{grid-column:-2;grid-row:1;align-self:start;justify-self:end;min-width:88px;padding:6px 9px;border:1px solid var(--hd-line,#44516b);border-radius:8px;text-align:right;background:rgba(127,127,127,.07);line-height:1.35}
#horizon-booking-demo .ho-customer-outstanding span{display:block;max-width:126px;font-size:10px;font-weight:500;opacity:.85}
#horizon-booking-demo .ho-customer-outstanding strong{display:block;font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap}
#horizon-booking-demo .ho-customer-outstanding[data-owing=true]{border-color:rgba(225,153,176,.7);background:rgba(225,153,176,.1)}

/* Focused customer navigation, billing links and compact customer records. */
#horizon-booking-demo .ho-customer-billing{grid-column:-2;grid-row:1;align-self:start;justify-self:end;display:flex;flex-direction:column;gap:5px;max-width:160px}
#horizon-booking-demo .ho-customer-summary{grid-column:-2;grid-row:1;display:flex;align-items:stretch;justify-self:end;gap:8px;max-width:100%}
#horizon-booking-demo .ho-customer-messages{display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:94px;padding:10px;border-radius:8px;text-align:center;white-space:normal}
#horizon-booking-demo .ho-customer-messages strong{font-size:13px}
#horizon-booking-demo .ho-customer-messages span{font-size:10px;opacity:.85}
@media(max-width:1450px){#horizon-booking-demo .hd-customer-title-row .ho-customer-summary{grid-column:1/-1;grid-row:auto;justify-self:start}}
#horizon-booking-demo .ho-customer-billing .ho-customer-outstanding{grid-column:auto;grid-row:auto;width:100%;color:inherit;font-family:inherit;box-sizing:border-box}
#horizon-booking-demo button.ho-customer-outstanding{cursor:pointer}
#horizon-booking-demo button.ho-customer-outstanding:hover{border-color:currentColor}
#horizon-booking-demo .ho-all-invoices{min-height:28px;padding:4px 8px;font-size:11px}
#horizon-booking-demo button.ho-job-status{background:transparent;color:inherit;font-family:inherit;cursor:pointer}
#horizon-booking-demo button.ho-job-status:hover{background:var(--hd-soft)}
#horizon-booking-demo .ho-job-details-note h3{line-height:1.45}
#horizon-booking-demo #hd-page-customers{padding-top:18px}
#horizon-booking-demo #hd-page-customers>.hd-page-heading{justify-content:flex-start;margin-bottom:16px;min-height:0}
#horizon-booking-demo .hc-directory-heading{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
#horizon-booking-demo .hc-directory-heading h2{margin:0}
#horizon-booking-demo .hc-directory-heading #hd-add-customer{min-height:34px;padding:7px 12px;font-size:12px}
#horizon-booking-demo #hd-page-customers>.hd-page-heading p{margin:5px 0 0}
#horizon-booking-demo .hd-customer-layout{grid-template-columns:minmax(190px,.17fr) minmax(0,.83fr);gap:18px}
#horizon-booking-demo .hd-customer-list .hd-customer-item{text-overflow:ellipsis;overflow:hidden}
#horizon-booking-demo .hd-customer-list .hd-customer-item strong,#horizon-booking-demo .hd-customer-list .hd-customer-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#horizon-booking-demo .hc-customer-preview{position:fixed;z-index:1000;width:min(380px,calc(100vw - 24px));max-height:min(70vh,620px);height:auto;overflow:auto;box-sizing:border-box;display:block;padding:14px 16px;border:1px solid var(--hd-line);border-radius:10px;box-shadow:0 10px 30px #0006;white-space:normal;text-align:left;font-size:12px;line-height:1.5}
#horizon-booking-demo .hc-customer-preview[hidden]{display:none}
#horizon-booking-demo .hc-customer-preview>strong{display:block;font-size:14px;margin-bottom:10px;overflow-wrap:anywhere}
#horizon-booking-demo .hc-customer-preview[data-selected=true]{border-left:4px solid var(--hd-accent,#ed176d)}
#horizon-booking-demo .hc-preview-field{display:grid;grid-template-columns:100px minmax(0,1fr);gap:8px;margin:6px 0}
#horizon-booking-demo .hc-preview-field>span{display:block;white-space:pre-wrap;overflow-wrap:anywhere}
#horizon-booking-demo .hc-preview-label{opacity:.75;font-size:11px}
#horizon-booking-demo .hd-customer-profile.hc-cards-profile{padding:14px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);column-gap:14px;align-items:start}
#horizon-booking-demo .hc-cards-profile .hc-card-header{grid-column:1/-1;gap:10px;margin-bottom:10px}
#horizon-booking-demo .hc-cards-profile .hc-card-header h2{font-size:21px;margin:0 0 3px}
#horizon-booking-demo .hc-cards-profile .hc-card-header p{font-size:12px}
#horizon-booking-demo .hc-cards-profile .hc-card-avatar{width:40px;height:40px;flex-basis:40px;font-size:16px}
#horizon-booking-demo .hc-cards-profile .hc-contact-cards{grid-column:1;grid-template-columns:minmax(0,1fr);gap:6px}
#horizon-booking-demo .hc-cards-profile .hc-contact-row{grid-template-columns:20px 72px minmax(0,1fr);gap:7px;padding:7px 9px;min-height:38px}
#horizon-booking-demo .hc-cards-profile .hc-contact-row dt,#horizon-booking-demo .hc-cards-profile .hc-contact-row dd{grid-column:auto}
#horizon-booking-demo .hc-cards-profile .hc-contact-icon{grid-row:auto}
#horizon-booking-demo .hc-cards-profile .hc-contact-row dd{font-size:12px}
#horizon-booking-demo .hc-cards-profile .hc-notes-card{grid-column:2;display:flex;margin:0;padding:10px;gap:0}
#horizon-booking-demo .hc-cards-profile .hn-notes-heading{margin-bottom:5px}
#horizon-booking-demo .hc-cards-profile .hn-note-name-label{gap:8px}
#horizon-booking-demo .hc-cards-profile .hn-note-title{height:28px;min-height:28px}
#horizon-booking-demo .hc-cards-profile .hn-note-form{flex:none}
#horizon-booking-demo .hc-cards-profile .hn-note-form .hn-note-text{height:72px;min-height:72px;flex:none;resize:vertical}
#horizon-booking-demo .hc-cards-profile .hc-card-actions{grid-column:1/-1;gap:8px;margin-top:10px}
#horizon-booking-demo .hc-cards-profile .hc-card-actions button{flex:none;min-width:120px;min-height:34px;padding:7px 10px;font-size:12px}
#horizon-booking-demo .hc-cards-profile .hc-customer-records{grid-column:1/-1;margin-top:10px;padding-top:10px}
#horizon-booking-demo .hc-cards-profile .hc-customer-records>h3{margin:0 0 8px;font-size:14px}
#horizon-booking-demo .hc-cards-profile .hc-record-tabs{margin-bottom:6px;padding:3px}
#horizon-booking-demo .hc-cards-profile .hc-record-tabs button{padding:6px 8px;font-size:12px}
#horizon-booking-demo .hc-cards-profile .hc-record-row{padding:8px 10px}
@media(max-width:1100px){#horizon-booking-demo .hd-customer-profile.hc-cards-profile{display:block}#horizon-booking-demo .hc-cards-profile .hc-notes-card{margin-top:10px}}
#horizon-booking-demo .hc-cards-profile>.hc-invoice-source{display:block;grid-column:1/-1;margin-top:6px;font-size:12px;line-height:1.4;opacity:.85}
@media(max-width:800px){#horizon-booking-demo .hd-customer-layout{grid-template-columns:minmax(0,1fr)}#horizon-booking-demo .hc-cards-profile .hc-contact-row{grid-template-columns:20px 72px minmax(0,1fr)}}
