/* Общие токены Restoplace. Скругления и расстояния меняются независимо. */
.rp-calendar {
  --rp-neutral-rgb: 255 255 255;
  /* Ошибки: общий красный для сообщений, невалидных полей и обязательных отметок в обеих темах. */
  --book-danger: #e44a4a;
  --book-ticket-gold: #d3c788;
  --book-event-marker: #d1936e;
  --book-overlay: rgba(12, 16, 18, 0.8);
  --book-details-surface: #1e1e1f;
  --rp-dialog-fill: #2f2f2f;
  --rp-dialog-text: #f5f5f5;
  --rp-dialog-border: rgb(255 255 255 / 5%);
  --rp-dialog-radius: calc(var(--rp-radius) * 3);
  --rp-dialog-shadow: 0 18px 64px rgb(0 0 0 / 30%);
  --book-reserve-card-background: rgb(255 255 255 / 10%);
  --book-reserve-upcoming-color: #c2deea;
  --book-reserve-upcoming-tint: rgb(2 169 192 / 5%);
  --book-reserve-wait-color: #fed27e;
  --book-reserve-wait-tint: rgb(253 175 25 / 5%);
  --book-reserve-open-color: #8cd78c;
  --book-reserve-open-tint: rgb(2 192 2 / 5%);
  --book-reserve-ending-color: #f49eb2;
  --book-reserve-ending-tint: rgb(210 5 53 / 5%);

  --rp-radius: 10px;
  --rp-radius-none: 0px;
  --rp-radius-sm: calc(var(--rp-radius) * 0.6);
  --rp-radius-md: calc(var(--rp-radius) * 0.8);
  --rp-radius-lg: var(--rp-radius);
  --rp-radius-xl: calc(var(--rp-radius) * 1.4);
  --rp-radius-2xl: calc(var(--rp-radius) * 1.8);
  --rp-radius-full: 9999px;

  --rp-space-0: 0px;
  --rp-space-2: 2px;
  --rp-space-4: 4px;
  --rp-space-6: 6px;
  --rp-space-8: 8px;
  --rp-space-12: 12px;
  --rp-space-16: 16px;
  --rp-space-20: 20px;
  --rp-space-24: 24px;
  --rp-space-32: 32px;
  --rp-space-40: 40px;
  --rp-space-48: 48px;
  --rp-space-64: 64px;
}

/* Общая основа кнопок Restoplace. Геометрия и состояния независимы от действий. */
.rp-calendar {
  --_rp-focus: rgb(255 255 255 / 80%);
  --_rp-flat-bg: rgb(255 255 255 / 10%);
  --_rp-flat-hover-bg: rgb(255 255 255 / 15%);
  --_rp-flat-active-bg: rgb(255 255 255 / 20%);
  --_rp-flat-ink: rgb(255 255 255 / 80%);
  --_rp-plain-ink: rgb(255 255 255 / 80%);
  --_rp-text-hover-ink: #fff;
  --_rp-outline-border: rgb(255 255 255 / 30%);
  --_rp-indicator-border: rgb(255 255 255 / 15%);
  --_rp-neutral-hover-bg: rgb(255 255 255 / 5%);
  --_rp-neutral-active-bg: rgb(255 255 255 / 10%);
  --_rp-toggle-bg: rgb(255 255 255 / 15%);
  --_rp-toggle-hover-bg: rgb(255 255 255 / 20%);
  --_rp-toggle-active-bg: rgb(255 255 255 / 25%);
  --_rp-toggle-ink: rgb(255 255 255 / 90%);
}

.rp-calendar.rp-button-surface {
  --_rp-focus: rgb(255 255 255 / 80%);
  --_rp-flat-bg: rgb(255 255 255 / 10%);
  --_rp-flat-hover-bg: rgb(255 255 255 / 15%);
  --_rp-flat-active-bg: rgb(255 255 255 / 20%);
  --_rp-flat-ink: rgb(255 255 255 / 80%);
  --_rp-plain-ink: rgb(255 255 255 / 80%);
  --_rp-text-hover-ink: #fff;
  --_rp-outline-border: rgb(255 255 255 / 30%);
  --_rp-indicator-border: rgb(255 255 255 / 15%);
  --_rp-neutral-hover-bg: rgb(255 255 255 / 5%);
  --_rp-neutral-active-bg: rgb(255 255 255 / 10%);
  --_rp-toggle-bg: rgb(255 255 255 / 15%);
  --_rp-toggle-hover-bg: rgb(255 255 255 / 20%);
  --_rp-toggle-active-bg: rgb(255 255 255 / 25%);
  --_rp-toggle-ink: rgb(255 255 255 / 90%);
  background: #2f2f2f;
  color: #fff;
  padding: var(--rp-space-24);
  box-sizing: border-box;
}
.rp-calendar.rp-button-surface[data-surface="light"], .rp-calendar .rp-button[data-surface="light"] {
  --_rp-focus: rgb(0 0 0 / 80%);
  --_rp-flat-bg: rgb(0 0 0 / 6%);
  --_rp-flat-hover-bg: rgb(0 0 0 / 10%);
  --_rp-flat-active-bg: rgb(0 0 0 / 14%);
  --_rp-flat-ink: rgb(0 0 0 / 80%);
  --_rp-plain-ink: rgb(0 0 0 / 80%);
  --_rp-text-hover-ink: #000;
  --_rp-outline-border: rgb(0 0 0 / 30%);
  --_rp-indicator-border: rgb(0 0 0 / 15%);
  --_rp-neutral-hover-bg: rgb(0 0 0 / 4%);
  --_rp-neutral-active-bg: rgb(0 0 0 / 8%);
  --_rp-toggle-bg: rgb(0 0 0 / 10%);
  --_rp-toggle-hover-bg: rgb(0 0 0 / 14%);
  --_rp-toggle-active-bg: rgb(0 0 0 / 18%);
  --_rp-toggle-ink: rgb(0 0 0 / 90%);
}
.rp-calendar.rp-button-surface[data-surface="light"] { background: #fff; color: #262a30; }
.rp-calendar .rp-button {
  /* Private size defaults keep public --rp-button-* settings inheritable. */
  --_rp-size-height: 44px;
  --_rp-size-radius: var(--rp-radius-lg);
  --_rp-size-padding: var(--rp-space-16);
  --_rp-size-padding-block: var(--rp-space-8);
  --_rp-size-font: 14px;
  --_rp-size-flat-font: 14px;
  --_rp-size-plain-font: 14px;
  --_rp-size-line: 20px;
  --_rp-size-icon: 18px;
  --_rp-size-gap: var(--rp-space-8);
  --_rp-size-description: 12px;
  --_rp-size-description-line: 14px;
  --_rp-raised-fill: linear-gradient(90deg, #6b7074 0%, #497b8c 100%);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  gap: var(--rp-button-gap, var(--_rp-size-gap));
  box-sizing: border-box;
  width: auto;
  max-width: 100%;
  min-width: min(100%, var(--rp-button-height, var(--_rp-size-height)));
  min-height: var(--rp-button-height, var(--_rp-size-height));
  margin: 0;
  padding: var(--rp-button-padding-block, var(--_rp-size-padding-block)) var(--rp-button-padding, var(--_rp-size-padding));
  border: 1px solid transparent;
  border-radius: var(--rp-button-radius, var(--_rp-size-radius));
  color: var(--rp-button-raised-color, #fff);
  /* Include the transparent border in the gradient area without edge repetition. */
  background: var(--rp-button-raised-background, var(--_rp-raised-fill)) border-box;
  box-shadow: inset 2px 2px 11px -3px #ffffff30, inset 1px 1px 0 #ffffff0f;
  font: var(--rp-button-font-weight, 500) var(--rp-button-font-size, var(--_rp-size-font))/var(--rp-button-line-height, var(--_rp-size-line)) var(--rp-button-font-family, "Open Sans", Arial, sans-serif);
  text-align: center;
  text-decoration: none;
  letter-spacing: normal;
  text-transform: none;
  cursor: pointer;
  vertical-align: middle;
  isolation: isolate;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
}
.rp-calendar .rp-button::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: currentColor;
  opacity: 0;
  pointer-events: none;
  transition: opacity .15s ease;
}
.rp-calendar .rp-button:not(.rp-button--secondary):not(.rp-button--flat):not(.rp-button--outline):not(.rp-button--ghost):not(.rp-button--dashed):not([data-ds-force]):hover:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"])::after,
.rp-calendar .rp-button[data-ds-force="hover"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"])::after { opacity: .1; }
.rp-calendar .rp-button:not(.rp-button--secondary):not(.rp-button--flat):not(.rp-button--outline):not(.rp-button--ghost):not(.rp-button--dashed):not([data-ds-force]):active:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"])::after,
.rp-calendar .rp-button[data-ds-force="active"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"])::after { opacity: .18; }
.rp-calendar .rp-button:not([data-ds-force]):focus-visible,
.rp-calendar .rp-button[data-ds-force="focus"] { outline: 2px solid var(--rp-button-focus, var(--_rp-focus, rgb(255 255 255 / 80%))); outline-offset: 3px; }
.rp-calendar .rp-button:is(:disabled, [aria-disabled="true"], .disabled):not([aria-busy="true"]) { opacity: var(--rp-button-disabled-opacity, .45); cursor: not-allowed; }
.rp-calendar .rp-button[aria-busy="true"] { cursor: wait; }
.rp-calendar .rp-button--sm { --_rp-size-height: 36px; --_rp-size-padding: var(--rp-space-12); --_rp-size-padding-block: var(--rp-space-6); --_rp-size-font: 13px; --_rp-size-flat-font: 12px; --_rp-size-plain-font: 13px; --_rp-size-line: 18px; --_rp-size-icon: 16px; --_rp-size-gap: var(--rp-space-6); --_rp-size-description: 11px; --_rp-size-description-line: 14px; }
.rp-calendar .rp-button--md { --_rp-size-height: 44px; --_rp-size-padding: var(--rp-space-16); --_rp-size-padding-block: var(--rp-space-8); }
.rp-calendar .rp-button--lg { --_rp-size-radius: var(--rp-radius-xl); --_rp-size-font: 15px; --_rp-size-height: 56px; --_rp-size-padding: var(--rp-space-20); --_rp-size-padding-block: var(--rp-space-12); }
.rp-calendar .rp-button--seat { --_rp-raised-fill: linear-gradient(269deg, #577a59 0%, #606965 100%); }
.rp-calendar .rp-button--waitlist { --_rp-raised-fill: linear-gradient(269deg, #5c3641 0%, #606369 100%); }
.rp-calendar .rp-button--ticket { --_rp-raised-fill: linear-gradient(90deg, #616161 0%, #7b6b46 100%); }
.rp-calendar .rp-button--certificate { --_rp-raised-fill: linear-gradient(90deg, #605f65 0%, #594f72 100%); }
.rp-calendar .rp-button--neutral { --_rp-raised-fill: #1b1b1b; }
.rp-calendar .rp-button--save {
  --rp-button-raised-background: var(--rp-button-save-background, var(--book-save-fill, linear-gradient(269deg, #577a59 0%, #606965 100%)));
  --rp-button-raised-color: var(--rp-button-save-color, var(--book-save-text, #fff));
}
/* Neutral appearances share theme tokens; explicit product overrides stay authoritative. */
.rp-calendar .rp-button--secondary {
  color: var(--rp-button-secondary-color, var(--_rp-flat-ink));
  background: var(--rp-button-secondary-background, var(--_rp-flat-bg));
}
.rp-calendar.rp-button-surface[data-surface="light"] .rp-button--secondary, .rp-calendar .rp-button--secondary[data-surface="light"] {
  box-shadow: inset 0 -3px 8px rgb(0 0 0 / 8%), inset 0 -1px 0 rgb(0 0 0 / 4%);
}
.rp-calendar .rp-button--flat { font-size: var(--rp-button-font-size, var(--rp-button-flat-font-size, var(--_rp-size-flat-font))); color: var(--rp-button-flat-color, var(--_rp-flat-ink)); background: var(--rp-button-flat-background, var(--_rp-flat-bg)); border-radius: var(--rp-button-flat-radius, var(--rp-button-radius, var(--_rp-size-radius))); box-shadow: none; }
.rp-calendar .rp-button--outline, .rp-calendar .rp-button--ghost, .rp-calendar .rp-button--dashed, .rp-calendar .rp-button--text, .rp-calendar .rp-button--underline { font-size: var(--rp-button-font-size, var(--_rp-size-plain-font)); background: transparent; box-shadow: none; }
.rp-calendar .rp-button--outline { color: var(--rp-button-outline-color, var(--_rp-plain-ink)); border-color: var(--rp-button-outline-border, var(--_rp-outline-border)); }
.rp-calendar .rp-button--ghost { color: var(--rp-button-ghost-color, var(--_rp-plain-ink)); }
.rp-calendar .rp-button--dashed { color: var(--rp-button-dashed-color, var(--_rp-plain-ink)); border: 1px dashed var(--rp-button-dashed-border, rgb(255 255 255 / 20%)); }
.rp-calendar.rp-button-surface[data-surface="light"] .rp-button--dashed, .rp-calendar .rp-button--dashed[data-surface="light"] { border-color: var(--rp-button-dashed-border, rgb(0 0 0 / 20%)); }
.rp-calendar .rp-button:is(.rp-button--secondary,.rp-button--flat,.rp-button--outline,.rp-button--dashed,.rp-button--ghost,.rp-button--text,.rp-button--underline)::after { display: none; }
.rp-calendar .rp-button:is(.rp-button--secondary,.rp-button--flat,.rp-button--outline,.rp-button--dashed,.rp-button--ghost,.rp-button--text,.rp-button--underline) { transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.rp-calendar .rp-button--secondary:not([data-ds-force]):hover:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button--secondary[data-ds-force="hover"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-secondary-hover-background, var(--_rp-flat-hover-bg)); }
.rp-calendar .rp-button--secondary:not([data-ds-force]):active:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button--secondary[data-ds-force="active"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-secondary-active-background, var(--_rp-flat-active-bg)); }
.rp-calendar .rp-button--flat:not([data-ds-force]):hover:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button--flat[data-ds-force="hover"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-flat-hover-background, var(--_rp-flat-hover-bg)); }
.rp-calendar .rp-button--flat:not([data-ds-force]):active:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button--flat[data-ds-force="active"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-flat-active-background, var(--_rp-flat-active-bg)); }
.rp-calendar .rp-button.rp-button--flat[aria-pressed="true"] { border-color: transparent; background: var(--rp-button-flat-selected-background, var(--rp-button-flat-background, var(--_rp-toggle-bg))); color: var(--rp-button-flat-selected-color, var(--rp-button-flat-color, var(--_rp-toggle-ink))); }
.rp-calendar .rp-button.rp-button--flat[aria-pressed="true"]:not([data-ds-force]):hover:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button.rp-button--flat[aria-pressed="true"][data-ds-force="hover"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-flat-selected-hover-background, var(--rp-button-flat-hover-background, var(--_rp-toggle-hover-bg))); }
.rp-calendar .rp-button.rp-button--flat[aria-pressed="true"]:not([data-ds-force]):active:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button.rp-button--flat[aria-pressed="true"][data-ds-force="active"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-flat-selected-active-background, var(--rp-button-flat-active-background, var(--_rp-toggle-active-bg))); }
.rp-calendar .rp-button--outline:not([data-ds-force]):hover:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button--outline[data-ds-force="hover"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-outline-hover-background, var(--_rp-neutral-hover-bg)); }
.rp-calendar .rp-button--outline:not([data-ds-force]):active:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button--outline[data-ds-force="active"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-outline-active-background, var(--_rp-neutral-active-bg)); }
.rp-calendar .rp-button.rp-button--outline[aria-pressed="true"] { border-color: transparent; background: var(--rp-button-outline-selected-background, var(--rp-button-outline-background, var(--_rp-toggle-bg))); color: var(--rp-button-outline-selected-color, var(--rp-button-outline-color, var(--_rp-toggle-ink))); }
.rp-calendar .rp-button.rp-button--outline[aria-pressed="true"]:not([data-ds-force]):hover:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button.rp-button--outline[aria-pressed="true"][data-ds-force="hover"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-outline-selected-hover-background, var(--rp-button-outline-hover-background, var(--_rp-toggle-hover-bg))); }
.rp-calendar .rp-button.rp-button--outline[aria-pressed="true"]:not([data-ds-force]):active:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button.rp-button--outline[aria-pressed="true"][data-ds-force="active"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-outline-selected-active-background, var(--rp-button-outline-active-background, var(--_rp-toggle-active-bg))); }
.rp-calendar .rp-button--dashed:not([data-ds-force]):hover:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button--dashed[data-ds-force="hover"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-dashed-hover-background, var(--_rp-neutral-hover-bg)); }
.rp-calendar .rp-button--dashed:not([data-ds-force]):active:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button--dashed[data-ds-force="active"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-dashed-active-background, var(--_rp-neutral-active-bg)); }
.rp-calendar .rp-button.rp-button--dashed[aria-pressed="true"] { border-color: transparent; background: var(--rp-button-dashed-selected-background, var(--rp-button-dashed-background, var(--_rp-toggle-bg))); color: var(--rp-button-dashed-selected-color, var(--rp-button-dashed-color, var(--_rp-toggle-ink))); }
.rp-calendar .rp-button.rp-button--dashed[aria-pressed="true"]:not([data-ds-force]):hover:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button.rp-button--dashed[aria-pressed="true"][data-ds-force="hover"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-dashed-selected-hover-background, var(--rp-button-dashed-hover-background, var(--_rp-toggle-hover-bg))); }
.rp-calendar .rp-button.rp-button--dashed[aria-pressed="true"]:not([data-ds-force]):active:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button.rp-button--dashed[aria-pressed="true"][data-ds-force="active"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-dashed-selected-active-background, var(--rp-button-dashed-active-background, var(--_rp-toggle-active-bg))); }
.rp-calendar .rp-button--ghost:not([data-ds-force]):hover:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button--ghost[data-ds-force="hover"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-ghost-hover-background, var(--_rp-neutral-hover-bg)); }
.rp-calendar .rp-button--ghost:not([data-ds-force]):active:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button--ghost[data-ds-force="active"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-ghost-active-background, var(--_rp-neutral-active-bg)); }
.rp-calendar .rp-button.rp-button--ghost[aria-pressed="true"] { border-color: transparent; background: var(--rp-button-ghost-selected-background, var(--rp-button-ghost-background, var(--_rp-toggle-bg))); color: var(--rp-button-ghost-selected-color, var(--rp-button-ghost-color, var(--_rp-toggle-ink))); }
.rp-calendar .rp-button.rp-button--ghost[aria-pressed="true"]:not([data-ds-force]):hover:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button.rp-button--ghost[aria-pressed="true"][data-ds-force="hover"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-ghost-selected-hover-background, var(--rp-button-ghost-hover-background, var(--_rp-toggle-hover-bg))); }
.rp-calendar .rp-button.rp-button--ghost[aria-pressed="true"]:not([data-ds-force]):active:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]),
.rp-calendar .rp-button.rp-button--ghost[aria-pressed="true"][data-ds-force="active"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { background: var(--rp-button-ghost-selected-active-background, var(--rp-button-ghost-active-background, var(--_rp-toggle-active-bg))); }
/* Text actions never acquire a background, including forced preview states. */
.rp-calendar .rp-button:is(.rp-button--text, .rp-button--underline) { color: var(--rp-button-text-color, var(--_rp-plain-ink)); background: transparent; border-color: transparent; box-shadow: none; }
.rp-calendar .rp-button:is(.rp-button--text, .rp-button--underline):not([data-ds-force]):hover:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]), .rp-calendar .rp-button:is(.rp-button--text, .rp-button--underline)[data-ds-force="hover"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { color: var(--rp-button-text-hover-color, var(--_rp-text-hover-ink)); }
.rp-calendar .rp-button:is(.rp-button--text, .rp-button--underline):not([data-ds-force]):active:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]), .rp-calendar .rp-button:is(.rp-button--text, .rp-button--underline)[data-ds-force="active"]:not(:disabled):not([aria-disabled="true"]):not(.disabled):not([aria-busy="true"]) { color: var(--rp-button-text-active-color, var(--rp-button-text-hover-color, var(--_rp-text-hover-ink))); }
.rp-calendar .rp-button--underline .rp-button__label { text-decoration: underline dashed; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.rp-calendar .rp-button--full { width: 100%; }
.rp-calendar .rp-button__content { display: flex; flex-direction: column; align-items: center; gap: var(--rp-button-description-gap, 0px); min-width: 0; }
.rp-calendar .rp-button:has(> .rp-button__icon):not(.rp-button--stacked):not(.rp-button--icon-only) { line-height: var(--rp-button-line-height, 1.2); }
.rp-calendar .rp-button:has(> .rp-button__icon):not(.rp-button--icon-only) > .rp-button__content { align-items: center; text-align: center; }
.rp-calendar .rp-button__label { min-width: 0; overflow-wrap: anywhere; text-align: start; }
.rp-calendar .rp-button:has(> .rp-button__icon) > .rp-button__label,
.rp-calendar .rp-button:has(> .rp-button__icon) > .rp-button__content > .rp-button__label { display: block; text-align: center; }
.rp-calendar .rp-button__description { opacity: var(--rp-button-description-opacity, .72); min-width: 0; overflow-wrap: anywhere; font-size: var(--rp-button-description-size, var(--_rp-size-description)); line-height: var(--rp-button-description-line-height, var(--_rp-size-description-line)); font-weight: 400; }
.rp-calendar .rp-button__icon, .rp-calendar .rp-button__spinner {
  display: block;
  width: var(--rp-button-icon-size, var(--_rp-size-icon));
  height: var(--rp-button-icon-size, var(--_rp-size-icon));
  flex: 0 0 var(--rp-button-icon-size, var(--_rp-size-icon));
  box-sizing: border-box;
}
.rp-calendar .rp-button__icon {
  background: currentColor;
  -webkit-mask: var(--rp-button-icon-url) center / contain no-repeat;
  mask: var(--rp-button-icon-url) center / contain no-repeat;
}
/* Availability is independent from the selected value and the action icon. */
.rp-calendar .rp-button--outline[data-indicator] { border-color: var(--rp-button-outline-border, var(--rp-button-indicator-border, var(--_rp-indicator-border))); }
.rp-calendar .rp-button__indicator {
  display: block;
  flex: 0 0 var(--rp-button-indicator-size, var(--rp-space-6, 6px));
  width: var(--rp-button-indicator-size, var(--rp-space-6, 6px));
  height: var(--rp-button-indicator-size, var(--rp-space-6, 6px));
  border-radius: 50%;
  background: var(--rp-button-indicator-color, var(--rp-button-indicator-free, #7bff6f));
  pointer-events: none;
}
.rp-calendar .rp-button[data-indicator="busy"] .rp-button__indicator { background: var(--rp-button-indicator-color, var(--rp-button-indicator-busy, #ff2121)); }
.rp-calendar svg.rp-button__icon { background: none; -webkit-mask: none; mask: none; }
.rp-calendar img.rp-button__icon { background: none; -webkit-mask: none; mask: none; object-fit: contain; }
.rp-calendar .rp-button__spinner { display: none; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: rp-button-spin .7s linear infinite; }
.rp-calendar .rp-button[aria-busy="true"] .rp-button__spinner { display: block; }
.rp-calendar .rp-button[aria-busy="true"] .rp-button__icon, .rp-calendar .rp-button[aria-busy="true"] .rp-button__indicator, .rp-calendar .rp-button[aria-busy="true"] .rp-button__content { visibility: hidden; }
.rp-calendar .rp-button--icon-right .rp-button__icon { order: 1; }
.rp-calendar .rp-button--icon-only { width: var(--rp-button-height, var(--_rp-size-height)); padding: 0; }
.rp-calendar .rp-button--icon-only .rp-button__content { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.rp-calendar .rp-button--icon-only.rp-button--full { width: var(--rp-button-height, var(--_rp-size-height)); }
@keyframes rp-button-spin { to { transform: translate(-50%, -50%) rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .rp-calendar .rp-button, .rp-calendar .rp-button::after { transition: none; }
  .rp-calendar .rp-button__spinner { animation: none; }
}
/* Две короткие строки входят в размер кнопки; длинный текст сохраняет перенос. */
.rp-calendar .rp-button--stacked {
  flex-direction: column;
  gap: var(--rp-button-description-gap, 0px);
  padding-block: var(--rp-button-padding-block, max(0px, calc((var(--rp-button-height, var(--_rp-size-height)) - var(--rp-button-line-height, var(--_rp-size-line)) - var(--rp-button-description-line-height, var(--_rp-size-description-line)) - var(--rp-button-description-gap, 0px) - 2px) / 2)));
}
.rp-calendar .rp-button--stacked:has(> .rp-button__content) { flex-direction: row; gap: var(--rp-button-gap, var(--_rp-size-gap)); }
.rp-calendar .rp-button__label:has(.rp-button__icon) { display: inline-flex; align-items: center; justify-content: center; gap: var(--rp-button-gap, var(--_rp-size-gap)); max-width: 100%; }
.rp-calendar .rp-button__description:empty { display: none; }

/* Связанные действия используют общие кнопки и их состояния. */
.rp-calendar .rp-button-group,
.rp-calendar .rp-button-group-set {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  max-width: 100%;
  vertical-align: middle;
  box-sizing: border-box;
}
.rp-calendar .rp-button-group { gap: 0; align-items: stretch; }
.rp-calendar .rp-button-group-set,
.rp-calendar .rp-button-group[data-connected="false"] { gap: var(--rp-space-8); }
.rp-calendar .rp-button-group[data-orientation="vertical"],
.rp-calendar .rp-button-group-set[data-orientation="vertical"] { flex-direction: column; }
.rp-calendar .rp-button-group > .rp-button { flex-shrink: 1; min-width: 0; }
.rp-calendar .rp-button-group > .rp-button--icon-only { flex-shrink: 0; }
.rp-calendar .rp-button-group:not([data-connected="false"]) > .rp-button { border-radius: 0; }
.rp-calendar .rp-button-group:not([data-connected="false"]):not([data-orientation="vertical"]) > .rp-button:first-child {
  border-start-start-radius: var(--rp-button-radius, var(--_rp-size-radius));
  border-end-start-radius: var(--rp-button-radius, var(--_rp-size-radius));
}
.rp-calendar .rp-button-group:not([data-connected="false"]):not([data-orientation="vertical"]) > .rp-button:last-child {
  border-start-end-radius: var(--rp-button-radius, var(--_rp-size-radius));
  border-end-end-radius: var(--rp-button-radius, var(--_rp-size-radius));
}
.rp-calendar .rp-button-group:not([data-connected="false"])[data-orientation="vertical"] > .rp-button:first-child {
  border-start-start-radius: var(--rp-button-radius, var(--_rp-size-radius));
  border-start-end-radius: var(--rp-button-radius, var(--_rp-size-radius));
}
.rp-calendar .rp-button-group:not([data-connected="false"])[data-orientation="vertical"] > .rp-button:last-child {
  border-end-start-radius: var(--rp-button-radius, var(--_rp-size-radius));
  border-end-end-radius: var(--rp-button-radius, var(--_rp-size-radius));
}
.rp-calendar .rp-button-group:not([data-connected="false"]):not([data-orientation="vertical"]) > .rp-button + .rp-button { border-inline-start-color: var(--rp-button-group-divider, var(--_rp-flat-bg)); }
.rp-calendar .rp-button-group:not([data-connected="false"])[data-orientation="vertical"] > .rp-button + .rp-button { border-block-start-color: var(--rp-button-group-divider, var(--_rp-flat-bg)); }
.rp-calendar .rp-button-group:not([data-connected="false"]):not([data-orientation="vertical"]) > .rp-button--outline + .rp-button--outline { margin-inline-start: -1px; border-inline-start-color: var(--rp-button-outline-border, var(--_rp-outline-border)); }
.rp-calendar .rp-button-group:not([data-connected="false"])[data-orientation="vertical"] > .rp-button--outline + .rp-button--outline { margin-block-start: -1px; border-block-start-color: var(--rp-button-outline-border, var(--_rp-outline-border)); }
.rp-calendar .rp-button-group > .rp-button:focus-visible,
.rp-calendar .rp-button-group > .rp-button[data-ds-force="focus"] { z-index: 1; }

/* Общая полупрозрачная подложка плавающей группы; фокус остаётся снаружи. */
.rp-calendar .rp-button-group--glass {
  --rp-button-flat-background: transparent;
  --rp-button-flat-hover-background: var(--_rp-neutral-hover-bg);
  --rp-button-flat-active-background: var(--_rp-neutral-active-bg);
  background: var(--rp-button-group-background, var(--_rp-flat-bg));
  border-radius: var(--rp-button-radius, var(--_rp-group-radius, var(--rp-radius-lg)));
  -webkit-backdrop-filter: blur(var(--rp-button-group-blur, 12px));
  backdrop-filter: blur(var(--rp-button-group-blur, 12px));
}
.rp-calendar .rp-button-group--glass:has(> .rp-button--lg) { --_rp-group-radius: var(--rp-radius-xl); }

/* Shared Calendar extends the shared Restoplace button geometry and tokens. */
.rp-calendar.rp-button-surface{--cal-ink:#f4f5f6;--cal-muted:rgb(255 255 255 / 55%);--cal-legend-text:rgb(255 255 255 / 48%);--cal-border:rgb(255 255 255 / 12%);--cal-surface:var(--book-details-surface,#1e1e1f);--cal-hover:rgb(255 255 255 / 9%);--cal-selected:#f1f2f4;--cal-selected-ink:#22252a;--cal-range:rgb(255 255 255 / 10%);--cal-error:var(--book-danger);--cal-event:var(--book-event-marker,#d1936e);--cal-ticket:rgb(242 201 76 / 80%);--cal-selected-ticket:#9a6700;--cal-selected-event:var(--cal-event);--cal-selected-reservation:var(--cal-selected-ink);--cal-reservation:rgb(255 255 255 / 70%);--cal-unread:#3bb549;--cal-unread-selected:#3bb549;--cal-other-date:#ffdd2d;--cal-focus:rgb(255 255 255 / 80%);--cal-day-size:40px;--rp-button-focus:var(--cal-focus);--rp-button-flat-radius:var(--rp-radius-md);position:relative;box-sizing:border-box;width:100%;max-width:351px;min-width:0;padding:0;background:transparent;color:var(--cal-ink);font:400 13px/1.5 "Open Sans",Arial,sans-serif;color-scheme:dark;container-type:inline-size}
.rp-calendar.rp-button-surface[data-calendar-theme=light]{--cal-ink:#252b32;--cal-muted:rgb(0 0 0 / 60%);--cal-legend-text:#6d7883;--cal-border:rgb(0 0 0 / 10%);--cal-surface:#fff;--cal-hover:rgb(0 0 0 / 5%);--cal-selected:#c02956;--cal-selected-ink:#fff;--cal-range:rgb(192 41 86 / 12%);--cal-selected-reservation:#4ade80;--cal-reservation:#15803d;--cal-ticket:#9a6700;--cal-selected-ticket:#f2c94c;--cal-unread:#3bb549;--cal-unread-selected:#3bb549;--cal-focus:var(--cal-selected);color-scheme:light;background:transparent}
.rp-calendar.rp-button-surface[data-calendar-theme=light][data-calendar-design-context]{--cal-selected:#c02956;--cal-selected-ink:#fff;--cal-focus:var(--cal-selected);--cal-range:color-mix(in srgb,var(--cal-selected) 12%,transparent);--cal-hover:color-mix(in srgb,var(--cal-selected) 8%,transparent);--rp-button-ghost-color:var(--cal-ink);--rp-button-ghost-hover-background:var(--cal-hover);--rp-button-ghost-active-background:var(--cal-hover)}
.rp-calendar[data-calendar-size=sm]{--cal-day-size:32px;font-size:12px}
.rp-calendar[data-calendar-size=lg]{--cal-day-size:44px;font-size:14px}
.rp-calendar:has(.rp-calendar__months[data-months="2"]){max-width:726px}
.rp-calendar [hidden]{display:none!important}
.rp-calendar svg{display:block;width:18px;height:18px;flex:none}
.rp-calendar__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.rp-calendar__panel{min-width:0;padding:var(--rp-space-16);border:1px solid color-mix(in srgb,var(--cal-border) 50%,transparent);border-radius:var(--rp-radius-xl);background:var(--cal-surface);box-sizing:border-box}
/* Heading and navigation share the existing compact select and button tokens. */
.rp-calendar__heading{display:flex;align-items:center;justify-content:space-between;gap:var(--rp-space-8);margin-bottom:var(--rp-space-8)}
.rp-calendar__prompt{color:var(--cal-muted);font-size:13px}
.rp-calendar__heading{position:relative}
.rp-calendar__heading-label{display:flex;align-items:center;gap:4px;min-width:0}
.rp-calendar .rp-calendar__help-button{--rp-button-height:28px;width:28px;min-width:28px;padding:0;color:var(--cal-muted)}
.rp-calendar__help-button>span{display:flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid currentColor;border-radius:50%;font-size:11px;line-height:1}
.rp-calendar__help-content{position:absolute;z-index:4;top:calc(100% + 6px);left:0;right:0;padding:12px;border:1px solid var(--cal-border);border-radius:var(--rp-radius-md);background:var(--cal-surface);box-shadow:0 4px 16px rgb(0 0 0 / 12%);pointer-events:none}
.rp-calendar__help-content .rp-calendar__legend{flex-direction:column;align-items:flex-start;gap:8px;margin-top:0;color:var(--cal-ink);font-size:12px;text-align:left}
.rp-calendar__help-content .rp-calendar__legend+.rp-calendar__legend{margin-top:12px;padding-top:12px;border-top:1px solid var(--cal-border)}
.rp-calendar__help-content .rp-calendar__legend>span{white-space:normal}
.rp-calendar .rp-calendar__today{--rp-button-height:32px;min-height:32px;padding-inline:var(--rp-space-8);font-size:12px;white-space:nowrap}
.rp-calendar__navigation{display:flex;align-items:center;justify-content:space-between;gap:var(--rp-space-8);margin-bottom:var(--rp-space-8)}
.rp-calendar .rp-calendar__nav{--rp-button-height:32px;min-width:32px;width:32px;padding:0;border-radius:var(--rp-radius-md)}
.rp-calendar__navigation-caption{color:var(--cal-ink);font-size:13px;font-weight:600;text-align:center}
.rp-calendar__months{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--rp-space-16)}
.rp-calendar__months[data-months="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.rp-calendar__month{min-width:0}
.rp-calendar h3.rp-calendar__month-title{min-height:32px;margin:0 0 var(--rp-space-8)!important;padding:0;font-size:13px!important;line-height:32px;font-weight:600;text-align:center;letter-spacing:normal;color:var(--cal-ink)}
.rp-calendar__selects{display:flex;align-items:center;justify-content:center;gap:var(--rp-space-8);min-width:0;flex:1}
.rp-calendar__select{position:relative;display:block;min-width:0;flex:1;max-width:150px}
.rp-calendar__select--year{flex:0 0 80px}
.rp-calendar__year-value{display:flex;align-items:center;justify-content:center;height:32px;color:var(--cal-ink);font-size:13px;line-height:18px}
.rp-calendar .rp-calendar__select--year .nice-select .list{min-width:120px;left:auto;right:0}
.rp-calendar__select .ds-select-composition{--rp-field-height:32px;--rp-field-font-size:13px}
.rp-calendar__select .input-select{min-width:0;margin-top:0}
.rp-calendar__select .nice-select{min-width:0}
.rp-calendar .rp-calendar__select .nice-select::before{content:none;display:none}
.rp-calendar .rp-calendar__select .nice-select::after{content:"";position:absolute;top:50%;bottom:auto;right:8px;width:16px;height:16px;margin:0;opacity:1;background:var(--cal-ink);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4 6 4 4 4-4' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 16px 16px no-repeat;transform:translateY(-50%);transition:transform .15s;pointer-events:none}
.rp-calendar .rp-calendar__select .nice-select.open::after{transform:translateY(-50%) rotate(180deg)}
.rp-calendar__select .nice-select>.current{top:0!important;display:flex!important;align-items:center;height:100%;box-sizing:border-box;padding-block:0!important;padding-right:var(--rp-space-24)!important;line-height:var(--rp-field-line-height)!important}
.rp-calendar__select .rp-calendar__select-option{display:flex;align-items:center;justify-content:space-between;gap:var(--rp-space-8)}
.rp-calendar__grid{width:100%;border-collapse:separate;border-spacing:0 var(--rp-space-4);table-layout:fixed;margin:0;border:0;color:var(--cal-ink);font:inherit}
.rp-calendar__grid :is(th,td){height:var(--cal-day-size);padding:0;text-align:center;vertical-align:middle;border:0;background:none}
.rp-calendar__grid th{height:28px;font-size:11px;font-weight:400;color:var(--cal-muted)}
.rp-calendar__grid th.rp-calendar__weekend{opacity:1}
.rp-calendar__grid .rp-calendar__week-number{width:24px;font-size:10px;color:var(--cal-muted);opacity:.65}
.rp-calendar .rp-calendar__day{--cal-day-hover:color-mix(in srgb,var(--cal-selected) 20%,transparent);--rp-button-ghost-hover-background:var(--cal-day-hover);--rp-button-ghost-active-background:var(--cal-day-hover);--rp-button-height:var(--cal-day-size);--rp-button-padding:0;--rp-button-padding-block:0;--rp-button-gap:0;--rp-button-font-size:13px;--rp-button-line-height:20px;--rp-button-font-weight:400;--rp-button-radius:var(--rp-radius-md);position:relative;display:inline-flex;min-width:0;width:100%;max-width:var(--cal-day-size);height:var(--cal-day-size);padding:0;border:0;color:var(--cal-ink);background:transparent;box-shadow:none;font-variant-numeric:tabular-nums;overflow:visible;isolation:isolate}
.rp-calendar .rp-calendar__day.rp-button{transition:none}
.rp-calendar[data-calendar-size=lg] .rp-calendar__day{--rp-button-font-size:14px}
.rp-calendar[data-calendar-size=sm] .rp-calendar__day{--rp-button-font-size:12px}
.rp-calendar .rp-calendar__day[data-outside=true]{color:var(--cal-muted);opacity:1}
.rp-calendar .rp-calendar__day[data-outside=true]:not([data-selected=true]):not(:disabled) :is(.rp-calendar__day-label,.rp-calendar__dot){opacity:.6}
.rp-calendar .rp-calendar__day[data-past-available=true]:not([data-selected=true]):not(:disabled) .rp-calendar__day-label{opacity:.65}
.rp-calendar .rp-calendar__day:disabled{color:var(--cal-muted);opacity:.28;cursor:not-allowed}
.rp-calendar .rp-calendar__day[data-range=true]{--rp-button-ghost-selected-background:var(--cal-range);--rp-button-ghost-selected-hover-background:var(--cal-day-hover);--rp-button-ghost-selected-active-background:var(--cal-day-hover);--rp-button-ghost-selected-color:var(--cal-ink);max-width:none;border-radius:0;background:var(--cal-range);color:var(--cal-ink)}
.rp-calendar .rp-calendar__day[data-preview=true]{max-width:none;border-radius:0;background:var(--cal-range);color:var(--cal-ink)}
.rp-calendar .rp-calendar__day:is([data-range-start=true],[data-preview-start=true]){border-top-left-radius:var(--rp-radius-md);border-bottom-left-radius:var(--rp-radius-md)}
.rp-calendar .rp-calendar__day:is([data-range-end=true],[data-preview-end=true]){border-top-right-radius:var(--rp-radius-md);border-bottom-right-radius:var(--rp-radius-md)}
.rp-calendar .rp-calendar__day[data-selected=true]:not([data-range=true]),.rp-calendar .rp-calendar__day[data-range=true]:is([data-range-start=true],[data-range-end=true]){--rp-button-ghost-selected-hover-background:var(--cal-selected);--rp-button-ghost-selected-active-background:var(--cal-selected);background:var(--cal-selected);color:var(--cal-selected-ink);opacity:1;font-weight:600}
.rp-calendar .rp-calendar__day:not(:disabled):hover,.rp-calendar .rp-calendar__day[data-demo-state=hover]:not(:disabled){background:var(--cal-day-hover)}
.rp-calendar .rp-calendar__day[data-selected=true]:not(:disabled):hover,.rp-calendar .rp-calendar__day[data-selected=true][data-demo-state=hover]{background:var(--cal-selected);filter:none}
.rp-calendar .rp-calendar__day:focus-visible,.rp-calendar .rp-calendar__day[data-demo-state=focus]{z-index:2;outline:2px solid var(--cal-focus);outline-offset:2px}
.rp-calendar[data-calendar-input=pointer] .rp-calendar__day:focus-visible:not([data-demo-state=focus]){outline:none}
.rp-calendar__day-label{line-height:18px;margin-bottom:var(--rp-space-2)}
.rp-calendar__blank{display:block;height:var(--cal-day-size)}
.rp-calendar__count,.rp-calendar__legend-count,.rp-calendar__unread{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:14px;height:14px;padding-inline:3px;box-sizing:border-box;border-radius:4px;background:var(--cal-selected);color:var(--cal-selected-ink);font-style:normal;font-size:10px;font-weight:700;line-height:14px}
.rp-calendar__count{position:absolute;right:-3px;top:-3px;box-shadow:0 0 0 1px var(--cal-surface)}
.rp-calendar__count,.rp-calendar__legend-count{background:var(--cal-unread);color:#142719}
.rp-calendar__marks{position:absolute;left:50%;bottom:4px;display:flex;align-items:center;gap:3px;height:4px;transform:translateX(-50%);pointer-events:none}
.rp-calendar__dot{display:block;flex:none;width:4px;height:4px;border-radius:var(--rp-radius-full);background:var(--cal-event)}
.rp-calendar__dot--booking{background:var(--cal-reservation)}
.rp-calendar__dot--ticket{background:var(--cal-ticket)}
.rp-calendar__day[data-selected=true] .rp-calendar__dot--booking{background:var(--cal-selected-reservation);opacity:1}
.rp-calendar__day[data-selected=true] .rp-calendar__dot--event{background:var(--cal-selected-event);opacity:1}
.rp-calendar__day[data-selected=true] .rp-calendar__dot--ticket{background:var(--cal-selected-ticket);opacity:1}
.rp-calendar__presets{display:flex;align-items:center;gap:var(--rp-space-4);flex-wrap:wrap;padding:0 0 var(--rp-space-12);margin-bottom:var(--rp-space-12);border-bottom:1px solid var(--cal-border)}
.rp-calendar .rp-calendar__presets button{min-height:30px;--rp-button-height:30px;padding-inline:var(--rp-space-8);font-size:12px}
.rp-calendar__legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--rp-space-8) var(--rp-space-12);margin-top:var(--rp-space-12);font-size:10px;color:var(--cal-legend-text);text-align:center}
.rp-calendar__legend>span{display:inline-flex;align-items:center;gap:var(--rp-space-4);white-space:nowrap}
.rp-calendar__legend-dot{width:4px;height:4px;background:var(--cal-event);border-radius:var(--rp-radius-full)}
.rp-calendar__legend-dot--booking{background:var(--cal-reservation)}
.rp-calendar__legend-ticket{background:var(--cal-ticket)}
.rp-calendar__legend-blocked{width:10px;height:10px;border:1px solid var(--cal-border);border-radius:var(--rp-radius-sm);background:var(--cal-hover);opacity:.6}
.rp-calendar p.rp-calendar__demo-note{margin:var(--rp-space-6) 0 0!important;font-size:10px!important;line-height:1.5!important;color:var(--cal-muted)}
.rp-calendar__summary{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--rp-space-12);margin-top:var(--rp-space-16);padding-top:var(--rp-space-12);border-top:1px solid var(--cal-border);font-size:12px}
.rp-calendar__summary>span{flex:none;color:var(--cal-muted)}
.rp-calendar__summary strong{min-width:0;text-align:right;font-weight:600;overflow-wrap:anywhere}
.rp-calendar__result{display:block;margin-top:var(--rp-space-4);color:var(--cal-muted);text-align:right;font-size:10px;overflow-wrap:anywhere}
.rp-calendar p.rp-calendar__status{min-height:16px;margin:var(--rp-space-8) 0 var(--rp-space-12)!important;color:var(--cal-muted);font-size:11px!important;line-height:1.5!important;text-align:center}
.rp-calendar__status[data-error=true]{color:var(--cal-error)!important}
.rp-calendar__status[data-loading=true]{display:flex;align-items:center;justify-content:center;gap:var(--rp-space-8)}
.rp-calendar__spinner{display:inline-block;flex:none;width:var(--rp-space-12);height:var(--rp-space-12);box-sizing:border-box;border:1.5px solid var(--cal-border);border-top-color:currentColor;border-radius:var(--rp-radius-full);animation:rp-calendar-loading-spin .8s linear infinite}
@keyframes rp-calendar-loading-spin{to{transform:rotate(360deg)}}
.rp-calendar__actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--rp-space-4);flex-wrap:wrap}
.rp-calendar .rp-calendar__actions button{--rp-button-height:32px;min-height:32px;min-width:0;padding-inline:var(--rp-space-8);font-size:12px;white-space:nowrap}
.rp-calendar .rp-calendar__actions button svg{width:14px;height:14px}
.rp-calendar [data-calendar-reset]:not(:disabled){opacity:.65}
.rp-calendar [data-calendar-reset]:is(:hover,:focus-visible):not(:disabled){opacity:1}
.rp-calendar__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--rp-space-12);margin-top:var(--rp-space-12);padding-top:var(--rp-space-12);border-top:1px solid var(--cal-border)}
.rp-calendar__range-selection{display:flex;align-items:center;gap:var(--rp-space-4);min-width:0;font-size:12px;line-height:17px;color:var(--cal-ink);font-variant-numeric:tabular-nums}
.rp-calendar__range-selection>span{min-width:0}
.rp-calendar__range-value,.rp-calendar__range-hint{display:block}
.rp-calendar__range-hint{color:var(--cal-muted);font-size:11px;line-height:15px;overflow-wrap:anywhere}
.rp-calendar__footer>.rp-calendar__actions{flex:none;flex-wrap:nowrap}
.rp-calendar .rp-calendar__range-reset{flex:none;--rp-button-height:28px;min-height:28px;width:28px;padding:0;font-size:18px}
.rp-calendar[data-calendar-mode=range] .rp-calendar__status:empty{display:none}
.rp-calendar .rp-calendar__apply{background:var(--cal-selected);color:var(--cal-selected-ink);--rp-button-flat-hover-background:var(--cal-selected);--rp-button-flat-active-background:var(--cal-selected)}
.rp-calendar__empty{display:grid;justify-items:center;text-align:center;gap:var(--rp-space-8);margin-top:var(--rp-space-16);color:var(--cal-muted)}
.rp-calendar__empty p{margin:0!important;font-size:12px!important;line-height:1.5!important}
.rp-calendar__empty button{justify-self:center;--rp-button-height:32px;min-height:32px;font-size:12px;white-space:normal}
.rp-calendar__empty svg{width:15px;height:15px}
.rp-calendar__field{display:grid;gap:var(--rp-space-6);min-width:0}
.rp-calendar__field-label{font-size:12px;color:var(--cal-muted)}
.rp-calendar__field-trigger{display:flex;align-items:center;justify-content:space-between;gap:var(--rp-space-12);min-width:0;width:100%;min-height:44px;padding:var(--rp-space-12) var(--rp-space-16);border:0;border-radius:var(--rp-radius-lg);background:var(--_rp-flat-bg);color:var(--cal-ink);font:400 13px/20px "Open Sans",Arial,sans-serif;text-align:left;cursor:pointer;transition:background .3s,border .15s}
.rp-calendar__field-trigger>span{min-width:0;overflow-wrap:anywhere}
.rp-calendar__field-trigger[data-calendar-other-date=true]>span:not(.rp-calendar__placeholder){color:var(--cal-other-date)}
.rp-calendar__field-trigger:hover:not(:disabled){background:var(--_rp-flat-hover-bg)}
.rp-calendar__field-trigger:focus-visible{outline:2px solid var(--cal-focus);outline-offset:3px}
.rp-date-field--birthday .rp-calendar[data-calendar-input=pointer] .rp-calendar__field-trigger:focus-visible{outline:none}
.rp-calendar__field-trigger:disabled{opacity:.4;cursor:not-allowed}
.rp-calendar__field-trigger svg{color:var(--cal-muted)}
.rp-calendar[data-calendar-mode=birthday] .rp-calendar__field-trigger svg{display:none}
.rp-calendar__placeholder{color:var(--cal-muted)}
.rp-calendar__required{color:var(--cal-error)}
.rp-calendar[data-calendar-field=true] .rp-calendar__panel{position:absolute;z-index:8;left:0;top:calc(100% + var(--rp-space-8));width:100%;min-width:0;box-shadow:0 4px 16px rgb(0 0 0 / 12%)}
.rp-calendar[data-calendar-state=error] .rp-calendar__field-trigger{outline:1px solid var(--cal-error);outline-offset:-1px}
.rp-calendar[data-calendar-state=loading] .rp-calendar__months{opacity:.45}
@container(max-width:500px){.rp-calendar__months[data-months="2"]{grid-template-columns:minmax(0,1fr)}.rp-calendar__panel{padding:var(--rp-space-12)}}
@container(max-width:300px){.rp-calendar__panel{padding:var(--rp-space-8)}.rp-calendar__grid .rp-calendar__week-number{width:18px}.rp-calendar__count{right:2px;font-size:9px}.rp-calendar__legend{gap:var(--rp-space-6) var(--rp-space-8)}.rp-calendar__actions{justify-content:space-between}}
@media(max-width:540px){.rp-calendar__months[data-months="2"]{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.rp-calendar .rp-button::after,.rp-calendar__field-trigger{transition:none}.rp-calendar__spinner{animation:none}}

.rp-calendar__unread{vertical-align:middle}
.rp-calendar__month-title .rp-calendar__unread{margin-left:var(--rp-space-6)}
.rp-calendar .rp-calendar__nav{position:relative}
.rp-calendar__nav .rp-calendar__unread{position:absolute;right:4px;top:5px;min-width:0;width:var(--rp-space-6);height:var(--rp-space-6);padding:0;border-radius:var(--rp-radius-full);background:var(--cal-unread);color:transparent;font-size:0;line-height:0}
.rp-calendar__select-option>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rp-calendar__select .nice-select .current>span{display:block;min-width:0;width:100%}
.rp-calendar__select .nice-select .current .rp-calendar__select-option{display:flex}
.rp-calendar__status:empty{display:none}

/* Date navigation is owned by Calendar and reused by time-choice specimens. */
.rp-calendar__field-navigation{--cal-date-action:44px;display:grid;grid-template-columns:var(--cal-date-action) var(--cal-date-action) minmax(0,1fr) var(--cal-date-action);gap:var(--rp-space-6);align-items:start}
.rp-calendar__field-navigation .rp-calendar__field{min-width:0}
.rp-calendar__field-navigation .rp-calendar__field-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.rp-calendar__field-navigation .rp-calendar__field-trigger{height:44px;min-height:44px;gap:var(--rp-space-4);padding:var(--rp-space-6) var(--rp-space-8);font-size:12px;line-height:16px}
.rp-calendar__field-navigation .rp-calendar__field-trigger>span{flex:1;min-width:0;text-align:center}
.rp-calendar__field-today-caption{display:block;margin-top:1px;font-size:10px;line-height:12px;font-weight:400;color:var(--cal-muted)}
.rp-calendar__field-navigation .rp-calendar__field-trigger:has(.rp-calendar__field-today-caption){height:auto}
.rp-calendar .rp-calendar__day-action{width:var(--cal-date-action);min-width:var(--cal-date-action);padding:0;border-radius:var(--rp-radius-lg)}
.rp-calendar__day-action svg{width:18px;height:18px}
.rp-calendar__today-icon{display:block;flex:none;width:15px;height:15px;background-color:currentColor;mask:url("../img/calendar-date-today.svg") center / 15px 15px no-repeat}
.rp-calendar[data-calendar-theme=dark] .rp-calendar__day-reset:not(:disabled){color:#fff}
/* Body overlay avoids clipping by specimen cards and keeps the document height fixed. */
.rp-calendar__backdrop{position:fixed;inset:0;z-index:2147481999;background:rgba(0,0,0,.7);cursor:pointer;animation:rp-calendar-backdrop-in .2s ease both}
@keyframes rp-calendar-backdrop-in{from{opacity:0}to{opacity:1}}
.rp-calendar.rp-button-surface[data-calendar-popup]{position:fixed;z-index:2147482000;max-width:none;margin:0}
.rp-calendar[data-calendar-popup][data-calendar-field=true] .rp-calendar__panel{position:relative;top:auto;left:auto;width:100%;box-sizing:border-box;margin:0}
.rp-calendar--opening,.rp-calendar--closing{--cal-opening-offset:-6px}
.rp-calendar--opening[data-calendar-design-context=widget-top],.rp-calendar--closing[data-calendar-design-context=widget-top]{--cal-opening-offset:-4px}
.rp-calendar--opening[data-calendar-animation=rise],.rp-calendar--closing[data-calendar-animation=rise]{--cal-opening-offset:10px}
.rp-calendar--opening .rp-calendar__panel{animation:rp-calendar-popup-in .2s ease both}
@keyframes rp-calendar-popup-in{from{opacity:0;transform:translateY(var(--cal-opening-offset))}to{opacity:1;transform:none}}
.rp-calendar--closing .rp-calendar__panel{animation:rp-calendar-popup-out .2s ease both}
.rp-calendar__backdrop.rp-calendar--closing{animation:rp-calendar-backdrop-out .2s ease both}
@keyframes rp-calendar-popup-out{from{opacity:var(--cal-closing-opacity,1);transform:var(--cal-closing-transform,none)}to{opacity:0;transform:translateY(var(--cal-opening-offset))}}
@keyframes rp-calendar-backdrop-out{from{opacity:var(--cal-closing-opacity,1)}to{opacity:0}}
@media(prefers-reduced-motion:reduce){.rp-calendar__backdrop,.rp-calendar__backdrop.rp-calendar--closing,.rp-calendar--opening .rp-calendar__panel,.rp-calendar--closing .rp-calendar__panel{animation:none}}


.rp-calendar__tooltip-anchor{display:block;min-width:0;width:100%}

/* Поля дат используют исходный input для отправки и native validation. */
.rp-date-source{position:absolute!important;width:1px!important;height:1px!important;min-width:0!important;min-height:0!important;padding:0!important;border:0!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;opacity:0!important}
.rp-date-field{display:block;width:100%;min-width:0}
.rp-date-field--anchored{height:0}
.rp-date-field>.rp-calendar{max-width:none}
.rp-date-field .rp-calendar__field-label{display:none}
.rp-date-field .rp-calendar__field-trigger{padding-inline:0;background:transparent;font:inherit}
.rp-calendar .rp-calendar__select select,.rp-calendar .rp-calendar__year{box-sizing:border-box;width:100%;min-width:0;height:32px;margin:0;padding:0 6px;border:1px solid var(--cal-border);border-radius:var(--rp-radius-md);background:var(--cal-surface);color:var(--cal-ink);font:inherit;line-height:30px;outline-offset:2px}
.rp-calendar .rp-calendar__year{appearance:textfield}
.rp-calendar .rp-calendar__year::-webkit-inner-spin-button,.rp-calendar .rp-calendar__year::-webkit-outer-spin-button{appearance:none;margin:0}
.rp-calendar .rp-calendar__select .nice-select{width:100%;height:32px;margin:0;background:var(--cal-surface);border:1px solid var(--cal-border);border-radius:var(--rp-radius-md);color:var(--cal-ink);font-size:13px;line-height:30px}
.rp-calendar .rp-calendar__select .nice-select .list{max-height:none;padding:0;background:var(--cal-surface);color:var(--cal-ink);border:1px solid var(--cal-border);overflow:hidden;transition:opacity .15s;box-shadow:0 6px 18px rgb(0 0 0 / 18%)}
.rp-calendar .rp-calendar__select .nice-select .option{border:0;box-sizing:border-box;width:100%;height:32px;min-height:32px;padding:6px 8px;font-size:13px;line-height:20px;color:var(--cal-ink)}
.rp-calendar .rp-calendar__select .nice-select .option:hover,.rp-calendar .rp-calendar__select .nice-select .option.focus,.rp-calendar .rp-calendar__select .nice-select .option.selected{background:var(--cal-hover)}
.rp-calendar .rp-calendar__day:not(:disabled),
.rp-calendar .rp-calendar__select select:not(:disabled),
.rp-calendar .rp-calendar__select .nice-select:not(.disabled),
.rp-calendar .rp-calendar__select .nice-select .option:not(.disabled),
[date-calendar] .input-field input[readonly]:not(:disabled){color:inherit;cursor:pointer}
[date-calendar] .input-field input[readonly]:not(:disabled),#panel-main [date-calendar] .input-field input[readonly]:not(:disabled){background:transparent}
[date-calendar] .input-field input[readonly]{caret-color:transparent;-webkit-user-select:none;user-select:none}
.rp-calendar .rp-calendar__day[aria-current=date]{box-shadow:inset 0 0 0 1px var(--cal-selected)}
.rp-calendar .calendar-semantics>span{white-space:normal}
.rp-calendar .legend-today,.rp-calendar .legend-selected{display:inline-block;flex:none;width:10px;height:10px;border:1px solid var(--cal-muted);border-radius:2px}
.rp-calendar .legend-today{border-color:var(--cal-selected)}
.rp-calendar .legend-selected{background:var(--cal-selected);border-color:var(--cal-selected)}
.rp-calendar .legend-booking-closed{font-size:14px;font-style:normal}
.rp-calendar .rp-calendar__day[data-booking-closed=true]::after{content:'×';display:block;position:absolute;inset:auto 2px 0 auto;width:auto;height:auto;background:none;color:var(--cal-muted);font-size:10px;line-height:10px;opacity:1;z-index:0}
.rp-calendar__event-counts{position:absolute;right:2px;top:1px;display:flex;gap:3px;font-size:9px;font-weight:700;line-height:11px}
.rp-calendar__event-active{color:var(--cal-unread)}
.rp-calendar__event-archive{color:var(--cal-muted)}

.rp-calendar[data-calendar-availability="events"] [data-fully-booked="true"] .rp-calendar__event-active{color:var(--cal-muted);background:var(--cal-hover)}

/* Поля сохраняют геометрию формы; всплывающий календарь имеет свою тему. */
.input-field>.rp-date-field>.rp-calendar{color:inherit}
.input-field>.rp-date-field .rp-calendar__field-trigger{box-sizing:border-box;height:41px;min-height:41px;padding:0 11px;border:1px solid #ccc;border-radius:5px;background:transparent;color:inherit;font-size:15px;line-height:20px}
.input-field.input-field-label-inside>.rp-date-field .rp-calendar__field-trigger{height:47px;min-height:47px;padding:18px 11px 4px}
.input-field>.rp-date-field--birthday .rp-calendar__field-trigger{font-size:14px}
.input-field>:where(label.active)~.rp-date-field--birthday .rp-calendar__field-trigger{border-color:#666}
.input-field:has(>label)>.rp-date-field--birthday .rp-calendar__placeholder{visibility:hidden}
.input-field>.rp-date-field .rp-calendar__field-trigger svg{color:inherit;opacity:.65}
.input-field>.rp-date-field .rp-calendar__placeholder{color:inherit;opacity:.7}
.input-field>.rp-date-field+span:empty{display:none}
/* niceSelect наследует цвета календаря также внутри форм и iframe. */
.rp-calendar .rp-calendar__select .nice-select,
.rp-calendar .rp-calendar__select .nice-select .list,
.rp-calendar .rp-calendar__select .nice-select .list-ul{background:var(--cal-surface)!important;color:var(--cal-ink)!important;border-color:var(--cal-border)!important}
.rp-calendar .rp-calendar__select .nice-select .current,
.rp-calendar .rp-calendar__select .nice-select .option{color:var(--cal-ink)!important}
.rp-calendar .rp-calendar__select .nice-select .option:is(:hover,.focus,.selected){background:var(--cal-hover)!important}
.rp-calendar .rp-calendar__select .nice-select .option.disabled{opacity:.4;cursor:default;background:transparent!important}
.rp-calendar .rp-calendar__select .nice-select .list{top:calc(100% + 4px);bottom:auto;margin:0}
.rp-calendar .rp-calendar__select .nice-select[data-calendar-direction=up] .list{top:auto;bottom:calc(100% + 4px)}
.rp-calendar .rp-calendar__select .nice-select .list-ul{max-height:var(--cal-select-height,384px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--cal-muted) var(--cal-surface);padding:0;margin:0}
.rp-calendar .rp-calendar__select .nice-select .list-ul::-webkit-scrollbar-thumb{background:var(--cal-muted);border-radius:4px}
@media(prefers-reduced-motion:reduce){.rp-calendar .rp-calendar__select .nice-select::after,.rp-calendar .rp-calendar__select .nice-select .list{transition:none}}

.input-field.input-field-label-inside:has(>.rp-date-field)>label{top:4px;left:12px;right:12px;padding:0;font-size:11px;line-height:15px;color:inherit!important;opacity:.75;transform:none!important;background:transparent!important}
