/* Полоса месяцев под датами, недели обозначены обводкой и короткими засечками. */
.container:has(> #rsch:not(.rsch--kiosk)) {
  width: calc(100% - 48px);
  max-width: 1440px;
}
.rsch:not(.rsch--kiosk) > .rsch__list,
.rsch:not(.rsch--kiosk) > .rsch__foot,
.rsch:not(.rsch--kiosk) > .rsch__hint,
.rsch:not(.rsch--kiosk) > .rsch__prompt { max-width: 960px; margin-left: auto; margin-right: auto; }
.rsch__cards { align-items: start; }

.rsch__panel-slot {
  --slot-date-width: 54px;
  --panel-inset: 36px;
  width: min(100%, calc(var(--date-count) * (var(--slot-date-width) + 6px) + var(--panel-inset)));
  margin: 0 auto 18px;
}
.rsch__panel { margin-bottom: 0; transition: padding .22s, border-radius .22s, box-shadow .22s; }
.rsch__field { max-height: 64px; opacity: 1; transition: max-height .22s, opacity .18s; }
.rsch__dates { margin-top: 0; }
.rsch__track { --date-width: 54px; --calendar-headroom: 16px; padding-top: var(--calendar-headroom); flex-wrap: wrap; align-items: flex-start; overflow: visible; min-width: 0; gap: 16px 0; }
.rsch__month {
  isolation: isolate;
  flex: 0 1 auto;
  width: max-content;
  min-width: 0;
  max-width: 100%;
  padding: 0;
  --month-bg: #dce9ef;
  --week-light: #fff;
  --month-strip: color-mix(in srgb, var(--month-bg) 50%, var(--week-light));
  --month-label: #7199ae;
  --strip-start: 0px;
  --strip-end: 0px;
}
.rsch__month:not(:first-child) { --strip-start: 8px; }
.rsch__month:not(:last-child) { --strip-end: 8px; }
.rsch__month--1 { --month-bg: #e4dcf0; --month-label: #9f87b5; }
.rsch__month-title {
  margin-left: var(--strip-start);
  margin-right: var(--strip-end);
  padding: 2px 3px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--month-label);
  text-align: center;
  background: var(--month-strip);
}
.rsch__track.is-flow { display: grid; grid-template-columns: repeat(var(--calendar-columns), calc(var(--date-width) + 6px)); gap: 0; isolation: isolate; }
.rsch__track.is-flow .rsch__month,
.rsch__track.is-flow .rsch__month-days { display: contents; }
.rsch__track.is-flow .rsch__month-title { min-width: 0; white-space: nowrap; }
.rsch .rsch__month-title.is-compact { font-size: 10px; letter-spacing: .12em; }
.rsch__month-days { display: flex; flex-wrap: wrap; width: calc(var(--days) * (var(--date-width) + 6px)); max-width: 100%; }
.rsch__week { display: contents; --week-border: #aac0d7; }
.rsch__week--1 { --week-border: #9bbfaa; }
.rsch__week--2 { --week-border: #bca6ce; }
.rsch__day {
  position: relative;
  flex: 0 0 auto;
  padding: 3px;
}
.rsch__day:has(.is-week-start)::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: -5px;
  top: calc(-1 * var(--calendar-headroom));
  bottom: calc(50% - 15px);
  width: 10px;
  background: var(--month-strip);
  pointer-events: none;
}
.rsch__day::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: calc(50% + 15px) 0 0;
  background: var(--month-strip);
  pointer-events: none;
}
.rsch__week:first-child > .rsch__day:first-child::after { left: var(--strip-start); }
.rsch__week:last-child > .rsch__day:last-child::after { right: var(--strip-end); }
.rsch .rsch__filters { border-top: 0; margin-top: 0; padding-top: 10px; }
.rsch__date, .rsch--kiosk .rsch__date { position: relative; width: var(--date-width); }
.rsch__date.is-weekend:not(.is-on):not(.is-past) { background: #ffedc6; }
.rsch .rsch__date:not(.is-on) { border-color: var(--week-border); }
.rsch:not(.rsch--kiosk) .rsch__date.is-sunday:not(.is-on) { background: #eef0f2; }
.rsch:not(.rsch--kiosk) .rsch__date.is-past { border-color: #e5e7e9; }
.rsch__date.is-empty:not(.is-past) { opacity: 1; cursor: pointer; }
.rsch .rsch__date.is-on.is-empty { background: #d9dde2; border-color: #858f9b; }
.rsch .rsch__date.is-on.is-empty span { color: #35424f; }
.rsch .rsch__date:hover:not(:disabled):not(.is-on) {
  background: #dcecf6;
  border-color: #5594be;
  box-shadow: 0 0 0 2px #5594be24;
}
.rsch .rsch__date:hover:not(:disabled):not(.is-on) span { color: #28587a; }
.rsch__date.is-today .rsch__num::after { background: #d0342c; }
.rsch__nav, .rsch__calendar-toggle { display: none; }

/* Высота исходного места сохраняется, поэтому при закреплении список не прыгает. */
.rsch__panel.is-fixed {
  position: fixed;
  z-index: 90;
  top: var(--rsch-top, 0px);
  left: var(--rsch-left);
  width: var(--rsch-width);
  border-radius: 0 0 12px 12px;
  box-shadow: 0 5px 14px rgba(36, 76, 138, .13);
  padding: 8px 18px;
  max-height: calc(100dvh - var(--rsch-top, 0px) - 12px);
  overflow: visible;
}
.rsch__panel.is-fixed .rsch__field { max-height: 0; opacity: 0; overflow: hidden; pointer-events: none; }
.rsch__panel.is-fixed .rsch__dates { margin-top: 0; }
.rsch__panel.is-fixed .rsch__track { --calendar-headroom: 2px; }
.rsch__panel.is-fixed .rsch__date { padding-top: 4px; padding-bottom: 3px; }
.rsch__panel.is-fixed .rsch__filters { margin-top: 0; padding-top: 7px; }
.rsch__panel.is-fixed .rsch__departments { margin-top: 7px; padding-top: 7px; }
.rsch__panel.is-fixed .rsch__chips:not(.is-collapsed) { max-height: min(320px, 45dvh); overflow-y: auto; }
.rsch__panel.is-scrollable { overflow-y: auto; }

.div:has(#rsch.rsch--kiosk) { padding-left: 24px; padding-right: 24px; overflow-x: clip; }
.container:has(> #rsch.rsch--kiosk) { width: 100%; max-width: 1600px !important; }
.rsch--kiosk > .rsch__list, .rsch--kiosk > .rsch__foot { max-width: 1200px; margin-left: auto; margin-right: auto; }
.rsch--kiosk .rsch__track { --date-width: 68px; }
.rsch--kiosk .rsch__panel-slot { --slot-date-width: 68px; --panel-inset: 46px; }
.rsch--kiosk .rsch__week { --week-border: #93b8d0; }
.rsch--kiosk .rsch__week--1 { --week-border: #8fbca8; }
.rsch--kiosk .rsch__week--2 { --week-border: #b8a8d1; }
.rsch--kiosk .rsch__month { --month-bg: #195e6c; --week-light: #719eaa; --month-label: #20596b; }
.rsch--kiosk .rsch__month--1 { --month-bg: #315f68; --month-label: #2c6369; }
.rsch--kiosk .rsch__month-title { color: var(--month-label); font-size: 14px; }
.rsch--kiosk .rsch__month-title.is-compact { font-size: 12px; }
.rsch--kiosk .rsch__date,
.rsch--kiosk .rsch__date.is-empty { background: var(--kiosk-date-surface, #1f6f8c); }
.rsch--kiosk .rsch__date.is-weekend:not(.is-on):not(.is-past) { background: #394963; }
.rsch--kiosk .rsch__date.is-weekend:not(.is-on):not(.is-past) span { color: #eef0ff; }
.rsch--kiosk .rsch__date.is-past { background: #dfe4e5; }
.rsch--kiosk .rsch__date.is-past .rsch__dow,
.rsch--kiosk .rsch__date.is-past .rsch__num { color: #899498; }
.rsch--kiosk .rsch__date.is-on.is-empty { background: #d9dde2; border-color: #a3b0b8; }
.rsch--kiosk .rsch__date.is-on.is-empty span { color: #35424f; }
.rsch--kiosk .rsch__date:hover:not(:disabled):not(.is-on) { background: #c4e0e8; border-color: #fff; }
.rsch--kiosk .rsch__date:hover:not(:disabled):not(.is-on) span { color: #16495b; }
.rsch--kiosk .rsch__panel.is-fixed { --kiosk-date-surface: #15596a; background: #064e60; border-color: #41717a; padding: 10px 22px; }
.rsch--kiosk .rsch__panel.is-fixed .rsch__date { padding-top: 5px; padding-bottom: 4px; }

@media (max-width: 640px) {
  .container:has(> #rsch:not(.rsch--kiosk)) { width: calc(100% - 24px); }
  .div:has(#rsch.rsch--kiosk) { padding-left: 12px; padding-right: 12px; }
  .container:has(> #rsch.rsch--kiosk) { padding-left: 0; padding-right: 0; }
  .rsch__dates { align-items: flex-start; gap: 4px; }
  .rsch .rsch__panel-slot { width: 100%; }
  .rsch__track, .rsch--kiosk .rsch__track { --date-width: 44px; }
  .rsch__calendar-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    width: 28px;
    height: 34px;
    padding: 4px;
    margin-top: 0;
    border: 1px solid var(--r-border);
    border-radius: 8px;
    color: var(--r-slate);
    background: transparent;
    cursor: pointer;
  }
  .rsch__calendar-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; transform: rotate(180deg); }
  .rsch__calendar-toggle[aria-expanded="false"] svg { transform: none; }
  .rsch.is-calendar-collapsed .rsch__track { flex-wrap: nowrap; overflow-x: auto; padding-left: 0; }
  .rsch.is-calendar-collapsed .rsch__month { flex: 0 0 auto; min-width: 0; max-width: none; }
  .rsch.is-calendar-collapsed .rsch__month-days { flex-wrap: nowrap; }
  .rsch.is-calendar-collapsed .rsch__nav:not([hidden]) { display: none; }
  .rsch__panel.is-fixed { padding: 7px 9px; }
  .rsch__panel.is-fixed .rsch__time { gap: 5px; }
  .rsch__panel.is-fixed .rsch__chip--time { padding: 5px 8px; }
  .rsch--kiosk .rsch__calendar-toggle { color: #fff; border-color: rgba(255,255,255,.3); }
  .rsch--kiosk .rsch__panel.is-fixed { padding: 8px; }
  .rsch--kiosk .rsch__panel { padding: 12px; }
  .rsch--kiosk .rdoc { gap: 10px; padding: 14px 12px; }
  .rsch--kiosk .rdoc__ava { width: 54px; height: 54px; }
  .rsch--kiosk .rsch__date .rsch__num { font-size: 22px; }
  .rsch--kiosk .rsch__cards { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .rsch__panel, .rsch__field { transition: none; }
}
