/* Booking flow screens (moved from the inline <style id="green-dog-booking-screens"> block). */
html body.gd-site-style-guide .gd-booking-step-back-bottom { margin:16px 0 0;}
/* ZIP check (Book Grooming step 1): this file owns both layout and visual treatment. */
html body.gd-site-style-guide .gd-booking-start-form {
  width:auto;
  margin-top:24px;
}
html body.gd-site-style-guide .gd-booking-start-form .gd-field-help {
  max-width:560px;
  margin:0 0 10px;
  color:var(--gd-muted);
  font-size:.95rem;
  line-height:1.45;
}
html body.gd-site-style-guide .gd-booking-start-form .gd-booking-zip-row {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
}
html body.gd-site-style-guide .gd-booking-start-form .gd-booking-zip-row > label {
  margin:0;
  color:var(--gd-brand-navy);
  font-weight:700;
}
html body.gd-site-style-guide .gd-booking-start-form #gd-flow-zip {
  display:block;
  width:8em;
  min-height:48px;
  flex:0 0 auto;
  padding:10px 14px;
  border:var(--gd-control-border-width) solid var(--gd-brand-navy);
  border-radius:10px;
  background:var(--gd-surface);
  color:var(--gd-content-navy);
  box-shadow:inset 0 0 0 1px rgba(var(--gd-brand-lime-rgb),.12),0 4px 12px rgba(var(--gd-content-navy-rgb),.10);
  caret-color:var(--gd-brand-navy);
  font-size:1.1rem;
  font-weight:700;
}
html body.gd-site-style-guide .gd-booking-start-form #gd-flow-zip:hover {
  border-color:var(--gd-accent-text);
}
html body.gd-site-style-guide .gd-booking-start-form #gd-flow-zip:focus {
  border-color:var(--gd-brand-lime);
  outline:3px solid rgba(var(--gd-brand-lime-rgb),.28);
  outline-offset:2px;
  box-shadow:0 0 0 1px var(--gd-brand-navy),0 6px 16px rgba(var(--gd-content-navy-rgb),.12);
}
html body.gd-site-style-guide .gd-booking-start-form #gd-flow-check-zip {
  width:auto;
  min-width:0;
  min-height:48px;
  flex:0 0 auto;
  padding:10px 24px;
}
html body.gd-site-style-guide .gd-booking-start-form .gd-booking-zip-status {
  margin:10px 0 0;
}
html body.gd-site-style-guide .gd-booking-start-form .gd-booking-zip-status:empty {
  display:none;
}
/* Appointment review (step 3). */
html body.gd-site-style-guide .gd-appointment-review .gd-review-dogs { display:grid;gap:0;margin:0 0 12px;padding:0;list-style:none;border:1px solid var(--gd-border);border-radius:var(--gd-radius);}
html body.gd-site-style-guide .gd-appointment-review .gd-review-dog { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) 7em;gap:16px;align-items:start;margin:0;padding:14px 20px;border-bottom:1px solid var(--gd-border);}
html body.gd-site-style-guide .gd-appointment-review .gd-review-dog:last-child { border-bottom:0;}
html body.gd-site-style-guide .gd-appointment-review .gd-review-name { font-weight:800;color:var(--gd-brand-navy);}
html body.gd-site-style-guide .gd-appointment-review .gd-review-service { display:grid;gap:2px;}
html body.gd-site-style-guide .gd-appointment-review .gd-review-calendar .gd-review-service {
  display:flex;
  flex-wrap:wrap;
  gap:var(--gd-component-space-xs);
  align-items:center;
}
html body.gd-site-style-guide .gd-appointment-review .gd-review-calendar .gd-review-service > a {
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:6px 12px;
  border:1px solid var(--gd-outline-blue);
  border-radius:var(--gd-pill-radius);
  background:var(--gd-surface);
  color:var(--gd-brand-navy);
  font-weight:700;
  text-decoration:none;
  box-shadow:none;
}
html body.gd-site-style-guide .gd-appointment-review .gd-review-calendar .gd-review-service > a:where(:hover,:focus-visible) {
  border-color:var(--gd-outline-blue);
  background:rgba(var(--gd-outline-blue-rgb),.24);
  color:var(--gd-brand-navy);
  box-shadow:0 0 0 2px rgba(var(--gd-outline-blue-rgb),.28);
}
html body.gd-site-style-guide .gd-appointment-review .gd-review-service small { color:var(--gd-muted);font-size:.9em;}
html body.gd-site-style-guide .gd-appointment-review .gd-review-price { color:var(--gd-brand-navy);text-align:right;}
html body.gd-site-style-guide .gd-appointment-review .gd-review-totals { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:end;margin:0 0 24px;padding:14px 20px;border-radius:var(--gd-radius);background:var(--gd-surface-tint);}
html body.gd-site-style-guide .gd-appointment-review .gd-review-totals>div { margin:0;}
html body.gd-site-style-guide .gd-appointment-review .gd-review-totals>div:last-child { text-align:right;}
html body.gd-site-style-guide .gd-appointment-review .gd-review-totals dt { margin:0;color:var(--gd-muted);font-size:.85em;}
html body.gd-site-style-guide .gd-appointment-review .gd-review-totals dd { margin:4px 0 0;color:var(--gd-brand-navy);font-size:1.25em;font-weight:800;}
html body.gd-site-style-guide .gd-appointment-review .gd-appointment-review-actions { display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
html body.gd-site-style-guide .gd-appointment-review .gd-appointment-review-actions > .gd-btn { margin-left:auto;}
@media (max-width:600px) { html body.gd-site-style-guide .gd-appointment-review .gd-review-dog { grid-template-columns:minmax(0,1fr) auto;padding:12px 14px;}
html body.gd-site-style-guide .gd-appointment-review .gd-review-service { grid-column:1 / -1;grid-row:2;}
html body.gd-site-style-guide .gd-appointment-review .gd-review-totals { padding:12px 14px;}
}
/* Reschedule: keep current appointment compact; the instruction is moved into the live calendar container above the month. */
html body.gd-site-style-guide .gd-appointment-screen .gd-reschedule-current {
  padding-block:var(--gd-component-space-sm);
}
html body.gd-site-style-guide .gd-appointment-screen .gd-reschedule-current .gd-review-dogs {
  margin-bottom:0;
}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-reschedule-instruction {
  margin:0 0 var(--gd-component-space-sm);
}
/* Final-step confirmation state: FluentBooking swaps the receipt into Step 4 without a full page reload, so key the layout to the live confirmation DOM. */
html body.gd-site-style-guide.gd-layout-shell #primary > .content-container:has(.fcal_confirmation) { padding-top:clamp(22px,2.5vw,28px); }
html body.gd-site-style-guide .gd-booking-step-screen:has(.fcal_confirmation) .gd-booking-step-header { margin:0 0 8px; }
html body.gd-site-style-guide .gd-booking-step-screen:has(.fcal_confirmation) .gd-booking-step-header > h1 { margin-bottom:8px; }
html body.gd-site-style-guide .gd-booking-step-screen:has(.fcal_confirmation) .gd-booking-step-kicker { margin-bottom:0; }
html body.gd-site-style-guide .gd-booking-step-screen:has(.fcal_confirmation) .gd-booking-step-header > p:not(.gd-booking-step-kicker) { display:none; }
html body.gd-site-style-guide .gd-booking-step-screen:has(.fcal_confirmation) .gd-booking-step-body { margin-top:0; }
html body.gd-site-style-guide .gd-booking-step-screen:has(.fcal_confirmation) .gd-booking-step-back-bottom { display:none; }
html body.gd-site-style-guide .fcal_confirmation .gd-confirmation-heading::before,
html body.gd-site-style-guide .fcal_confirmation .gd-confirmation-heading::after,
html body.gd-site-style-guide .fcal_confirmation .gd-confirmation-heading-wrap::before,
html body.gd-site-style-guide .fcal_confirmation .gd-confirmation-heading-wrap::after { display:none;content:none; }

/* Embedded booking calendar (step 4). FluentBooking sets heights/positions inline, so these keep !important. */
html body.gd-site-style-guide .calendar_nav button { display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:0;min-height:0;padding:6px 10px;border:0;background:transparent;box-shadow:none;line-height:1;}
html body.gd-site-style-guide .calendar_nav button svg { display:block;flex:none;width:18px;height:18px;max-width:none;}
html body.gd-site-style-guide .gd-embedded-grooming-calendar :is(.fcal_date_wrapper,.fcal_day_picker,.fcal_calendar_slot_wrap,.fcal_date_event_details.is_active) { height:auto !important;max-height:none !important;overflow:visible !important;}
html body.gd-site-style-guide .gd-embedded-grooming-calendar :is(.fcal_day_picker_wrap,.fcal_day_picker,.fcal_calendar_slot_wrap) { width:100% !important;}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .fcal_calendar_slot_wrap { padding-right:0 !important;}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .fcal_calendar_slot_wrap>.calendar-container { flex:1 1 auto !important;width:auto !important;max-width:none !important;min-width:0;}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .fcal_slot_picker { position:static !important;flex:0 0 200px !important;width:200px !important;padding:24px 20px 20px 0 !important;height:auto !important;max-height:none !important;overflow:visible !important;}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .fcal_calendar_inner.fcal_on_lg.fcal_day_selected .fcal_side { flex:0 0 28% !important;width:28% !important;max-width:28% !important;}
@media (max-width:700px) { html body.gd-site-style-guide .gd-embedded-grooming-calendar .fcal_calendar_slot_wrap { flex-wrap:wrap;}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .fcal_slot_picker { flex:1 1 100% !important;width:100% !important;padding:16px 20px 20px !important;}
}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .fcal_date_event_details.is_active { position:relative !important;inset:auto !important;}
/* Phones: once a day is picked, FluentBooking only hides the month grid, which left a big blank gap above the times. Remove it from the layout. */
html body.gd-site-style-guide .gd-embedded-grooming-calendar .fcal_calendar_inner.fcal_day_selected:is(.fcal_mobile,.fcal_on_xs,.fcal_on_sm) .fcal_calendar_slot_wrap > .calendar-container,
html body.gd-site-style-guide .gd-embedded-grooming-calendar .fcal_date_wrapper:has(.fcal_date_event_details.is_active) .fcal_day_picker_wrap,
html body.gd-site-style-guide .gd-embedded-grooming-calendar .fcal_form_item:has(.gd-booking-dog-source) { display:none !important; }
/* Your Details: a green inner panel from selected date/time through Book Appointment, with white space around it. */
html body.gd-site-style-guide .gd-embedded-grooming-calendar.gd-booking-details-open .gd-requested-appointment { margin:12px 16px 0; padding:18px 18px 10px; border-radius:var(--gd-radius) var(--gd-radius) 0 0; background:var(--gd-surface-tint); }
html body.gd-site-style-guide .gd-embedded-grooming-calendar.gd-booking-details-open .gd-dog-summary { margin:0 16px; padding:10px 18px 14px; border:0; border-top:1px solid rgba(var(--gd-content-navy-rgb),.14); border-radius:0; background:var(--gd-surface-tint); }
html body.gd-site-style-guide .gd-embedded-grooming-calendar.gd-booking-details-open .gd-booking-details-form { box-sizing:border-box; width:auto; margin:0 16px 16px; padding:6px 18px 18px; border-radius:0 0 var(--gd-radius) var(--gd-radius); background:var(--gd-surface-tint); }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-requested-appointment { display:grid;gap:2px;margin:0 0 20px;padding:14px 16px;border-radius:var(--gd-radius);background:var(--gd-surface-tint);}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-requested-appointment-date { color:var(--gd-brand-navy);font-size:1.15em;font-weight:800;}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-requested-appointment-time { color:var(--gd-brand-navy);}
html body.gd-site-style-guide .gd-embedded-grooming-calendar :is(.gd-address-help,.gd-access-help,.gd-us-phone-note) { margin:6px 0 0;color:var(--gd-muted);font-size:.85em;line-height:1.4;}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-dog-summary { margin:0 0 20px;padding:14px 16px;border:1px solid var(--gd-border);border-radius:var(--gd-radius);}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-dog-summary-title { margin:0 0 8px;color:var(--gd-muted);font-size:.8em;font-weight:700;letter-spacing:.08em;text-transform:uppercase;}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-dog-summary-list { display:grid;gap:6px;margin:0;padding:0;list-style:none;}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-dog-summary-list li { margin:0;color:var(--gd-brand-navy);}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-dog-summary-total { margin:10px 0 0;color:var(--gd-muted);font-size:.9em;}
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-access-wrap { margin:16px 0 0;}
html body.gd-site-style-guide .gd-embedded-grooming-calendar :is(.gd-access-label,.gd-contact-line .fcal_input_label) { display:block; margin:0; color:var(--gd-brand-navy); font-family:inherit; font-size:1em; font-style:normal; font-weight:400; letter-spacing:normal; line-height:1.4; text-transform:none; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-contact-line .fcal_input_label > * { font-family:inherit; font-size:inherit; font-style:inherit; font-weight:inherit; letter-spacing:inherit; line-height:inherit; text-transform:inherit; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-access-label { margin-bottom:6px; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-details-form .gd-compact-contact-row { display:block; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-details-form .gd-contact-line { display:grid; grid-template-columns:minmax(130px,170px) minmax(0,1fr); column-gap:16px; align-items:center; justify-content:start; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-details-form .gd-contact-line > :first-child { grid-column:1; min-width:0; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-details-form .gd-contact-line > :last-child { grid-column:2; min-width:0; width:100%; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-details-form .gd-contact-name > :last-child { max-width:340px; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-details-form .gd-contact-email > :last-child { max-width:390px; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-details-form .gd-contact-address > :last-child { max-width:440px; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-details-form .gd-contact-phone > :last-child { max-width:280px; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-details-form .gd-contact-line :is(input,textarea) { width:100%; max-width:100%; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-details-form .gd-compact-contact-row .gd-access-wrap { margin-top:12px; }
@media (max-width:640px) {
  html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-details-form .gd-contact-line { grid-template-columns:minmax(0,1fr); row-gap:6px; }
  html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-details-form .gd-contact-line > :is(:first-child,:last-child) { grid-column:1; max-width:none; }
}

/* Choose Dogs step (moved from the inline <style id="green-dog-choose-dogs-screen"> block). */
body.gd-site-style-guide .gd-household-booking .gd-household-intro { margin:0 0 var(--gd-component-space-md);}
body.gd-site-style-guide .gd-household-booking .gd-household-dogs { display:grid;gap:var(--gd-component-space-sm);margin:0 0 var(--gd-component-space-md);}
body.gd-site-style-guide .gd-household-booking .gd-household-dog {
  display:grid;
  gap:var(--gd-component-space-xs) var(--gd-component-space-sm);
  margin:0;
  padding:var(--gd-component-space-md);
}
body.gd-site-style-guide .gd-household-booking .gd-household-dog-copy {
  min-width:0;
}
body.gd-site-style-guide .gd-household-booking .gd-household-dog-heading {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--gd-component-space-xs);
  min-width:0;
}
body.gd-site-style-guide .gd-household-booking .gd-household-dog-heading > strong {
  flex:0 0 auto;
}
body.gd-site-style-guide .gd-household-booking .gd-household-dog-heading > .gd-household-dog-meta {
  flex:1 1 auto;
  min-width:0;
}
body.gd-site-style-guide .gd-household-booking .gd-household-dog-copy strong {
  font-size:1.15em;
  color:var(--gd-brand-navy);
}
body.gd-site-style-guide .gd-household-booking .gd-household-dog-copy span {
  color:var(--gd-muted);
}
body.gd-site-style-guide .gd-household-booking .gd-household-dog-copy .gd-household-dog-meta {
  margin-top:0;
}
body.gd-site-style-guide .gd-household-booking .gd-household-service-control {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  column-gap:var(--gd-component-space-sm);
  row-gap:calc(var(--gd-component-space-xs) / 2);
  max-width:780px;
}
body.gd-site-style-guide .gd-household-booking .gd-household-service-label {
  flex:0 0 auto;
  font-weight:700;
  color:var(--gd-brand-navy);
  white-space:nowrap;
}
body.gd-site-style-guide .gd-household-booking .gd-household-service-select {
  flex:1 1 360px;
  min-width:260px;
  width:auto;
  max-width:520px;
}
body.gd-site-style-guide .gd-household-booking .gd-household-dog-media {
  display:grid;
  place-items:center;
  width:120px;
  height:120px;
  overflow:hidden;
  border-radius:var(--gd-radius);
}
body.gd-site-style-guide .gd-household-booking .gd-household-dog-media > img.gd-dog-card-photo {
  display:block;
  width:100%;
  min-width:0;
  max-width:none;
  height:100%;
  max-height:none;
  margin:0;
  float:none;
  border-radius:inherit;
  object-fit:cover;
}
body.gd-site-style-guide .gd-household-booking .gd-household-dog-placeholder {
  border:var(--gd-card-border);
  background:var(--gd-surface-tint);
}
body.gd-site-style-guide .gd-household-booking .gd-household-dog-placeholder-icon {
  display:block;
  width:56px;
  max-width:56px;
  height:56px;
  max-height:56px;
  object-fit:contain;
}

@media (min-width:900px) {
  body.gd-site-style-guide .gd-household-booking .gd-household-dog--booking {
    grid-template-columns:minmax(120px,1fr) max-content 120px;
    grid-template-rows:auto auto;
    align-items:start;
  }
  body.gd-site-style-guide .gd-household-booking .gd-household-dog--booking > .gd-household-dog-copy {
    grid-column:1 / 3;
    grid-row:1;
  }
  body.gd-site-style-guide .gd-household-booking .gd-household-dog-heading {
    display:grid;
    grid-template-columns:minmax(120px,1fr) max-content;
    column-gap:var(--gd-component-space-sm);
    align-items:center;
  }
  body.gd-site-style-guide .gd-household-booking .gd-household-dog-heading > strong {
    grid-column:1;
  }
  body.gd-site-style-guide .gd-household-booking .gd-household-dog-heading > .gd-household-dog-meta {
    grid-column:2;
    display:flex;
    flex-wrap:nowrap;
    justify-content:flex-end;
    gap:var(--gd-component-space-xs);
    justify-self:end;
  }
  body.gd-site-style-guide .gd-household-booking .gd-household-dog-heading > .gd-household-dog-meta > span {
    white-space:nowrap;
  }
  body.gd-site-style-guide .gd-household-booking .gd-household-dog--booking > .gd-household-service-control {
    grid-column:1 / 3;
    grid-row:2;
    justify-self:start;
    flex-wrap:nowrap;
  }
  body.gd-site-style-guide .gd-household-booking .gd-household-dog--booking > .gd-household-dog-media {
    grid-column:3;
    grid-row:1 / span 2;
    justify-self:end;
    align-self:center;
  }
}
@media (max-width:899px) {
  body.gd-site-style-guide .gd-household-booking .gd-household-dog--booking {
    grid-template-columns:minmax(0,1fr) 96px;
    grid-template-rows:auto auto;
    align-items:start;
  }
  body.gd-site-style-guide .gd-household-booking .gd-household-dog--booking > .gd-household-dog-copy {
    grid-column:1;
    grid-row:1;
  }
  body.gd-site-style-guide .gd-household-booking .gd-household-dog--booking > .gd-household-service-control {
    grid-column:1;
    grid-row:2;
  }
  body.gd-site-style-guide .gd-household-booking .gd-household-dog--booking > .gd-household-dog-media {
    grid-column:2;
    grid-row:1 / span 2;
    width:96px;
    height:96px;
    justify-self:end;
    align-self:center;
  }
  body.gd-site-style-guide .gd-household-booking .gd-household-dog-placeholder-icon {
    width:50px;
    max-width:50px;
    height:50px;
    max-height:50px;
  }
}
@media (max-width:640px) {
  body.gd-site-style-guide .gd-household-booking .gd-household-service-control {
    display:grid;
    gap:calc(var(--gd-component-space-xs) / 2);
    max-width:none;
  }
  body.gd-site-style-guide .gd-household-booking .gd-household-service-label {
    white-space:normal;
  }
  body.gd-site-style-guide .gd-household-booking .gd-household-service-select {
    width:100%;
    min-width:0;
    max-width:none;
  }
}
body.gd-site-style-guide .gd-household-booking .gd-household-summary-warning { margin:0 0 16px;color:var(--gd-accent-text);font-weight:700;}
body.gd-site-style-guide .gd-household-booking .gd-household-actions { display:flex;flex-wrap:wrap;gap:12px;}
/* Primary step on the right; secondary actions on the left. */
body.gd-site-style-guide .gd-household-booking .gd-household-actions .gd-household-square { margin-left:auto;}
body.gd-site-style-guide .gd-household-booking .gd-household-square[aria-disabled="true"] { opacity:.55;cursor:not-allowed;}

/* Staff appointment closeout: compact mobile-first groom record workflow. */
html body.gd-site-style-guide .gd-groom-closeout {
  display:grid;
  gap:var(--gd-component-space-lg);
}
html body.gd-site-style-guide .gd-groom-closeout-form {
  display:grid;
  gap:var(--gd-component-space-lg);
}
html body.gd-site-style-guide .gd-groom-closeout-dog {
  display:grid;
  gap:var(--gd-component-space-md);
  padding:var(--gd-component-space-lg);
}
html body.gd-site-style-guide .gd-groom-closeout-dog > h2,
html body.gd-site-style-guide .gd-groom-closeout-field > :first-child,
html body.gd-site-style-guide .gd-groom-last-record > :first-child {
  margin-top:0;
}
html body.gd-site-style-guide .gd-groom-closeout-field {
  display:grid;
  gap:var(--gd-component-space-xs);
}
html body.gd-site-style-guide .gd-groom-closeout-field textarea,
html body.gd-site-style-guide .gd-groom-closeout-field input[type="file"] {
  width:100%;
  max-width:100%;
}
html body.gd-site-style-guide .gd-groom-closeout-field textarea {
  min-height:120px;
}
html body.gd-site-style-guide .gd-groom-private-note {
  padding:var(--gd-component-space-md);
  border:var(--gd-card-border);
  border-radius:var(--gd-control-radius);
  background:var(--gd-surface-tint);
}
html body.gd-site-style-guide .gd-groom-last-record {
  display:grid;
  gap:var(--gd-component-space-sm);
  padding:var(--gd-component-space-md);
  border-radius:var(--gd-control-radius);
  background:var(--gd-surface-tint);
}
html body.gd-site-style-guide .gd-groom-last-record p,
html body.gd-site-style-guide .gd-groom-closeout .gd-form-help {
  margin-bottom:0;
}

html body.gd-site-style-guide .gd-groom-reference-photos {
  display:grid;
  gap:var(--gd-component-space-xs);
}
html body.gd-site-style-guide .gd-groom-reference-photo-grid {
  display:flex;
  flex-wrap:wrap;
  gap:var(--gd-component-space-sm);
}
html body.gd-site-style-guide .gd-groom-reference-photo-grid img {
  display:block;
  width:88px;
  height:88px;
  object-fit:cover;
  border-radius:var(--gd-control-radius);
}

/* Appointment staff workflow: keep payment and closeout one tap apart. */
html body.gd-site-style-guide .gd-staff-workflow-head {
  display:grid;
  gap:var(--gd-component-space-sm);
}
html body.gd-site-style-guide .gd-staff-workflow-head > * {
  margin-top:0;
  margin-bottom:0;
}
html body.gd-site-style-guide .gd-staff-workflow-dogs {
  margin:0;
}
html body.gd-site-style-guide .gd-staff-workflow-nav {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--gd-component-space-sm);
  margin-top:var(--gd-component-space-xs);
}
html body.gd-site-style-guide .gd-staff-workflow-nav [aria-current="step"] {
  --gd-button-hover-bg:var(--gd-brand-lime);
  --gd-button-hover-border:var(--gd-brand-lime);
  --gd-button-hover-text:var(--gd-brand-navy);
  cursor:default;
}
html body.gd-site-style-guide .gd-staff-workflow-nav [aria-disabled="true"] {
  opacity:.55;
  cursor:not-allowed;
  pointer-events:none;
  box-shadow:none;
}
html body.gd-site-style-guide .gd-square-payment {
  display:grid;
  gap:var(--gd-component-space-lg);
}
html body.gd-site-style-guide .gd-square-payment-summary {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--gd-component-space-xs) var(--gd-component-space-lg);
  align-items:start;
}
html body.gd-site-style-guide .gd-square-payment-summary > :is(h2,p,ul),
html body.gd-site-style-guide .gd-square-payment-form > p {
  margin:0;
}
html body.gd-site-style-guide .gd-square-payment-summary > :is(h2,.gd-square-payment-dogs) {
  grid-column:1 / -1;
}
html body.gd-site-style-guide .gd-square-payment-dogs {
  display:grid;
  gap:calc(var(--gd-component-space-xs) / 2);
  margin-top:var(--gd-component-space-xs);
  padding:var(--gd-component-space-sm) 0 0;
  border-top:1px solid var(--gd-border);
  list-style:none;
}
html body.gd-site-style-guide .gd-square-payment-dogs > li {
  margin:0;
}
html body.gd-site-style-guide .gd-square-payment-form {
  display:grid;
  gap:var(--gd-component-space-sm);
  width:min(100%,var(--gd-form-measure));
}
html body.gd-site-style-guide .gd-square-payment-form .green-dog-edit-field {
  display:grid;
  gap:var(--gd-component-space-xs);
}
html body.gd-site-style-guide .gd-square-payment-form #gd-square-amount {
  width:100%;
  max-width:18ch;
}
html body.gd-site-style-guide .gd-square-payment-form .gd-form-help {
  color:var(--gd-muted);
  line-height:1.45;
}
@media (max-width:600px) {
  html body.gd-site-style-guide .gd-staff-workflow-nav {
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  html body.gd-site-style-guide .gd-staff-workflow-nav > * {
    width:100%;
    justify-content:center;
    text-align:center;
  }
  html body.gd-site-style-guide .gd-square-payment-summary {
    grid-template-columns:minmax(0,1fr);
  }
  html body.gd-site-style-guide .gd-square-payment-summary > :is(h2,.gd-square-payment-dogs) {
    grid-column:1;
  }
  html body.gd-site-style-guide .gd-square-payment-form #gd-square-amount {
    max-width:none;
  }
}

/* Multi-dog closeout: compact context and fast repeat-groom entry. */
html body.gd-site-style-guide .gd-groom-closeout-intro {
  margin:0;
}
html body.gd-site-style-guide .gd-groom-closeout-dog-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:var(--gd-component-space-md);
}
html body.gd-site-style-guide .gd-groom-closeout-dog-head h2,
html body.gd-site-style-guide .gd-groom-dog-position {
  margin:0;
}
html body.gd-site-style-guide .gd-groom-dog-position {
  margin-bottom:calc(var(--gd-component-space-xs) / 2);
  font-size:.9em;
  font-weight:700;
}
html body.gd-site-style-guide .gd-groom-last-record-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--gd-component-space-sm);
}
html body.gd-site-style-guide .gd-groom-last-record-body {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:var(--gd-component-space-sm);
  align-items:start;
}
html body.gd-site-style-guide .gd-groom-last-record-body > img {
  display:block;
  width:72px;
  height:72px;
  object-fit:cover;
  border-radius:var(--gd-control-radius);
}
html body.gd-site-style-guide .gd-groom-last-record-text {
  margin:0;
}
html body.gd-site-style-guide .gd-groom-closeout-submit {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:var(--gd-component-space-sm);
}
html body.gd-site-style-guide .gd-groom-closeout-submit > span {
  font-size:.92em;
}
@media (max-width:600px) {
  html body.gd-site-style-guide .gd-groom-last-record-head {
    align-items:stretch;
    flex-direction:column;
  }
  html body.gd-site-style-guide .gd-groom-last-record-head .gd-btn {
    width:100%;
    justify-content:center;
  }
  html body.gd-site-style-guide .gd-groom-closeout-submit {
    display:grid;
  }
  html body.gd-site-style-guide .gd-groom-closeout-submit .gd-btn {
    width:100%;
    justify-content:center;
  }
}

html body.gd-site-style-guide .gd-groom-dog-service {
  margin:calc(var(--gd-component-space-xs) / 2) 0 0;
  font-size:.95em;
}


/* Account appointment summaries and saved payment state. */
.gd-account-appointments { display:grid;gap:20px; }
.gd-account-appointment h2,.gd-payment-status h2 { font-size:1.35rem; }
.gd-account-appointment ul { padding-left:1.25rem; }
.gd-payment-status { margin:20px 0; }
.gd-payment-status p,.gd-account-appointment li { overflow-wrap:anywhere; }
.gd-profile-disclosure { border:1px solid rgba(17,48,57,.18);border-radius:12px;padding:14px;margin:18px 0; }
.gd-profile-disclosure summary { font-weight:700;cursor:pointer; }
.gd-profile-disclosure[open] summary { margin-bottom:16px; }

/* Structured appointment address with visible controls and native autofill. */
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-address-fields { display:grid; grid-template-columns:minmax(0,1fr) 90px 140px; gap:var(--gd-component-space-md); margin:0; padding:var(--gd-component-space-md); border:1px solid var(--gd-border); border-radius:var(--gd-control-radius); background:var(--gd-soft-card-background); min-width:0; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-address-fields legend { width:auto; float:none; padding:0 var(--gd-component-space-xs); margin:0; font-size:1rem; font-weight:600; color:var(--gd-control-color); }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-address-control { min-width:0; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-address-street { grid-column:1 / -1; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-address-control label { display:block; margin:0 0 var(--gd-component-space-xs); font-size:1rem; font-weight:400; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-address-part { box-sizing:border-box; width:100%; max-width:100%; min-width:0; min-height:var(--gd-control-min-height); padding:var(--gd-control-padding); border:var(--gd-control-border); border-radius:var(--gd-control-radius); background:var(--gd-control-background); color:var(--gd-control-color); font:inherit; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-address-state input { text-transform:uppercase; }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-address-part:focus-visible { outline:2px solid var(--gd-brand-navy); outline-offset:calc(var(--gd-component-space-xs) / 4); box-shadow:var(--gd-control-focus-shadow); }
html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-split-address-row [hidden] { display:none; }
@media (max-width:600px) {
 html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-booking-address-fields { grid-template-columns:minmax(0,1fr) minmax(0,1fr); padding:var(--gd-component-space-md); gap:var(--gd-component-space-md); }
 html body.gd-site-style-guide .gd-embedded-grooming-calendar .gd-address-city { grid-column:1 / -1; }
}
