.prs-booking {
  --prs-accent: #2563eb;
  box-sizing: border-box;
  display: block;
  flex: 0 0 100%;
  width: 100%;
  max-width: 480px;
  margin: 0 0 24px;
  padding: 18px 20px 14px;
  border: 1px solid #dbe2ea;
  border-radius: 16px;
  background: #fff;
  color: #172033;
  font: inherit;
  text-align: left;
  clear: both;
}
.prs-booking *, .prs-booking *::before, .prs-booking *::after { box-sizing: border-box; }
.prs-booking [hidden] { display: none !important; }
.prs-booking legend { float: none; width: auto; padding: 0 8px; margin: 0; font-size: 1.15em; font-weight: 700; color: #172033; }
.prs-booking .prs-help { margin: 0 0 16px; font-size: .92em; line-height: 1.55; color: #526074; }
.prs-calendar { padding: 12px; border: 1px solid #e5eaf0; border-radius: 12px; margin-bottom: 18px; background: #fafbfd; }
.prs-calendar-nav { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.prs-booking .prs-calendar button { appearance: none; border: 0; box-shadow: none; text-shadow: none; background: transparent; color: #172033; font: inherit; font-weight: 600; cursor: pointer; padding: 0; margin: 0; min-width: 0; min-height: 38px; border-radius: 8px; line-height: 1.2; }
.prs-booking .prs-calendar .prs-prev, .prs-booking .prs-calendar .prs-next { width: 38px; font-size: 25px; border: 1px solid #e0e6ee; background: #fff; }
.prs-weekdays, .prs-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; text-align: center; }
.prs-weekdays { color: #66758a; font-size: .76em; margin: 0 0 8px; }
.prs-weekdays span { overflow: hidden; }
.prs-days button { width: 100%; height: 38px; }
.prs-booking .prs-calendar button:hover:not(:disabled) { background: #eaf0f8; }
.prs-booking .prs-calendar button[aria-current="date"] { box-shadow: inset 0 0 0 1px #758298; }
.prs-booking .prs-calendar button[aria-pressed="true"], .prs-booking .prs-calendar button[aria-pressed="true"]:hover:not(:disabled) { background: var(--prs-accent); color: #fff; }
.prs-booking .prs-calendar button:disabled { color: #9aa5b4; opacity: .6; cursor: default; }
.prs-booking button:focus-visible, .prs-booking input:focus-visible, .prs-booking select:focus-visible { outline: 3px solid var(--prs-accent); outline-offset: 2px; }
.prs-date-row, .prs-slot-row { margin: 0 0 14px; }
.prs-booking label { display: block; float: none; width: auto; margin: 0 0 6px; color: #263448; font-size: .88em; font-weight: 650; }
.prs-booking input[type="date"], .prs-booking select { display: block; width: 100%; max-width: 100%; min-height: 46px; margin: 0; padding: 10px 12px; border: 1px solid #cbd5e1; border-radius: 8px; background-color: #fff; color: #172033; font: inherit; font-size: 16px; box-shadow: none; }
.prs-booking .prs-zone { margin: 0 0 8px; color: #64748b; font-size: .77em; }
.prs-booking .prs-status { margin: 0; color: #334155; font-size: .83em; line-height: 1.5; min-height: 1.5em; }
@media (max-width: 380px) { .prs-booking { padding: 12px; } .prs-calendar { padding: 8px; } .prs-weekdays, .prs-days { gap: 2px; } .prs-booking .prs-calendar button { min-height: 34px; } }
