.customer-booking{max-width:1080px;margin:auto;min-width:0}.customer-booking h2{margin-bottom:.4rem}.customer-booking p{overflow-wrap:anywhere}.booking-toolbar,.booking-actions,.booking-pagination,.booking-form-buttons{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.booking-toolbar label{display:flex;align-items:center;gap:.4rem}.booking-toolbar h3{margin:0;min-width:7rem;text-align:center}.customer-booking button,.customer-booking .button{min-height:44px;padding:.65rem .8rem;cursor:pointer;border:1px solid #bdd7cb;border-radius:8px;background:#fff;color:#104a35;font:inherit}.customer-booking button.primary,.customer-booking [data-booking-save]{background:#136a49;color:white}.customer-booking button:disabled{opacity:.55;cursor:not-allowed}.customer-booking button:focus-visible,.customer-booking a:focus-visible{outline:3px solid #be8d11;outline-offset:2px}.booking-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin:1rem 0}.booking-weekday{text-align:center;font-size:.85rem;color:#526c5f}.customer-booking .booking-day{display:flex;flex-direction:column;gap:.3rem;align-items:center;padding:.6rem .15rem;min-height:72px}.booking-day.selected{background:#e4f3eb;border:2px solid #136a49}.booking-day span{font-size:.8rem}.booking-count-note{font-size:.88rem;color:#455d50}.booking-list-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.booking-card{padding:1rem;border:1px solid #cee0d6;border-radius:10px;margin-bottom:.7rem;background:white}.booking-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;flex-wrap:wrap}.booking-card p{margin:.4rem 0;font-size:.95rem}.booking-card.cancelled{border-style:dashed;background:#f4f5f4}.booking-status{font-weight:600;color:#235a40}.booking-phone{user-select:all}.booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.booking-fields label,.booking-detail form label{display:flex;flex-direction:column;gap:.35rem;min-width:0}.booking-wide,.booking-search-actions{grid-column:1/-1}.booking-search-actions{display:flex;gap:.5rem;flex-wrap:wrap}.customer-booking input:not([type=checkbox]),.customer-booking select,.customer-booking textarea{box-sizing:border-box;width:100%;min-height:44px;border:1px solid #b8cfc1;border-radius:6px;padding:.6rem;font:inherit;background:white;color:#193b2a}.booking-form-buttons{position:sticky;bottom:0;padding:.75rem 0;background:#f6faf7;border-top:1px solid #d8e5df;margin-top:1rem}.booking-form,.booking-detail{padding:1rem;background:white;border:1px solid #d2e1d9;border-radius:10px}.booking-exact,.customer-booking details{margin:1rem 0;padding:.7rem;border:1px solid #d4e0d9;border-radius:8px}.customer-booking summary{cursor:pointer;min-height:32px;font-weight:600}.booking-warning{color:#823812;background:#fff1dd;padding:.8rem;border-left:4px solid #b56a19}.booking-match{padding:.6rem;border-bottom:1px solid #d4e0d9}.booking-match button{margin-left:.6rem}.booking-detail dl{display:grid;grid-template-columns:minmax(100px,1fr) 3fr;gap:.5rem}.booking-detail dt{font-weight:600}.booking-detail dd{margin:0;overflow-wrap:anywhere}.booking-detail pre{white-space:pre-wrap;word-break:break-word;max-height:24rem;overflow:auto}.booking-pagination{justify-content:center;margin:1rem}.customer-booking [hidden]{display:none!important}@media(max-width:620px){.booking-fields{grid-template-columns:1fr}.booking-wide,.booking-search-actions{grid-column:auto}.customer-booking .booking-day{min-height:60px}.booking-toolbar{gap:.4rem}.booking-toolbar label{width:100%}.booking-toolbar select{flex:1}.booking-form,.booking-detail{padding:.65rem}.booking-form-buttons button{flex:1;min-width:130px}.booking-detail dl{grid-template-columns:1fr}.booking-detail dd{margin-bottom:.5rem}.booking-day span{font-size:.7rem}.booking-calendar{gap:3px}.booking-toolbar h3{min-width:6rem}.booking-match button{margin:.4rem 0 0;width:100%}}
.customer-booking .booking-day-state{display:block;max-width:100%;padding:.12rem .2rem;border-radius:4px;background:#edf4f0;color:#214d38;font-size:.72rem;line-height:1.25;white-space:normal;overflow-wrap:anywhere}
@media(max-width:620px){.customer-booking .booking-day-state{font-size:.65rem;padding:.1rem}}

/* FD032: compact booking rows; the detail button and call link stay separate. */
.booking-list-hint {
  margin: .35rem 0 .85rem;
  color: #455d50;
  font-size: .88rem;
}
.booking-period-group {
  min-width: 0;
  margin: 1rem 0;
}
.booking-period-heading {
  margin: 0 0 .45rem;
  color: #235a40;
  font-size: .95rem;
}
.booking-compact-list {
  display: grid;
  gap: .4rem;
  min-width: 0;
}
.booking-card.booking-compact-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-width: 0;
  margin: 0;
  padding: 0;
}
.customer-booking .booking-row {
  display: grid;
  grid-template-columns: minmax(4.5rem, .6fr) minmax(0, 2fr) minmax(4rem, .7fr) minmax(0, 1.4fr) 1rem;
  align-items: center;
  gap: .7rem;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 60px;
  padding: .55rem .75rem;
  border: 0;
  border-radius: 9px;
  background: transparent;
  text-align: left;
  white-space: normal;
  line-height: 1.35;
}
.booking-row > span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.booking-row-time,
.booking-row-person,
.booking-row-state {
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.booking-row-time strong {
  font-variant-numeric: tabular-nums;
}
.booking-row small {
  color: #526c5f;
  font-size: .78rem;
  line-height: 1.35;
}
.booking-row-service {
  color: #235a40;
  font-size: .88rem;
}
.booking-row .booking-status {
  font-size: .86rem;
}
.booking-row small.booking-source {
  align-self: flex-start;
  max-width: 100%;
  box-sizing: border-box;
  padding: .08rem .35rem;
  border-radius: 4px;
  background: #edf4f0;
  color: #405e4d;
  font-size: .73rem;
}
.booking-row-chevron {
  color: #526c5f;
  font-size: 1.35rem;
  text-align: center;
}
.customer-booking .booking-row-call {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 44px;
  min-height: 44px;
  margin: .3rem .4rem .3rem 0;
  padding: .45rem .55rem;
  border: 1px solid #bdd7cb;
  border-radius: 7px;
  background: #f3f8f5;
  color: #104a35;
  font-size: .85rem;
  text-decoration: none;
}
.customer-booking .booking-row:focus-visible {
  outline-offset: -3px;
}
.booking-compact-card.cancelled .booking-source {
  background: #e8eeea;
}
@media (hover: hover) {
  .customer-booking .booking-row:not(:disabled):hover,
  .customer-booking .booking-row-call:hover {
    background: #eaf5ee;
  }
}
@media (max-width: 620px) {
  .customer-booking .booking-row {
    grid-template-columns: 4rem minmax(0, 1fr) .7rem;
    grid-template-areas: "time person chevron" "time service chevron" "time state chevron";
    gap: .2rem .5rem;
    padding: .55rem;
  }
  .booking-row-time { grid-area: time; align-self: start; }
  .booking-row-person { grid-area: person; }
  .booking-row-service { grid-area: service; }
  .booking-row-state {
    grid-area: state;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem .4rem;
  }
  .booking-row-chevron { grid-area: chevron; }
  .booking-row-person strong { font-size: .94rem; }
  .customer-booking .booking-row-call {
    margin-right: .25rem;
    padding-right: .35rem;
    padding-left: .35rem;
  }
}
