.pisell-reservation-schedule-band {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  gap: 0;
  box-sizing: border-box;
}

/** 切换营业日等场景：遮罩覆盖日程条 + 时间轴，避免误操作并提示加载中 */
.pisell-reservation-schedule-band-data-loading-overlay {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 12px;
  background: rgba(20, 24, 36, 0.42);
  backdrop-filter: blur(1px);
  pointer-events: auto;
}

.pisell-reservation-schedule-band--data-loading
.pisell-reservation-schedule-band-schedule-row,
.pisell-reservation-schedule-band--data-loading
.pisell-reservation-schedule-band-navigator {
  pointer-events: none;
  user-select: none;
}

/** 与中间日程条同一行：整行深色底，左标题 / 中选日 / 右操作 */
.pisell-reservation-schedule-band-schedule-row {
  display: grid;
  /** 左右按内容占位，剩余宽度给中间，避免「等分 1fr」把左侧挤窄后标题与 Segmented 被迫换行 */
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  width: 100%;
  min-width: 0;
  column-gap: 7px;
  box-sizing: border-box;
  padding: 2px 7px;
  border-radius: 0;
  background: #141824;
  border: 1px solid rgba(255, 255, 255, 0.06);
  /**
   * 布局：auto | minmax(0,1fr) | auto
   * - 左：标题 + 视图切换等内容宽占位
   * - 右：「+ New」等固定贴行末
   * - 中间：仅占左、右之间的剩余宽度；选日期 / 跟随时间文案在该「中间区域」内居中（见 .pisell-reservation-schedule-band-schedule）
   */
  /** 左/右栏 min-width:max-content 后整行可能超出视口，允许横向滚动而非压扁左侧 */
  overflow-x: auto;
  overflow-y: visible;
}

.pisell-reservation-schedule-band-slot-start {
  justify-self: start;
  /** 勿用 min-width:0：会把「标题 + Segmented」挤折行；max-content 保证左侧优先单行横排 */
  min-width: max-content;
  display: flex;
  align-items: center;
  flex-direction: row;
  flex-wrap: nowrap;
  /** 中间栏内容偶发溢出绘制时压在左侧 Tab 上，保证左侧在上层 */
  position: relative;
  z-index: 1;
  /** 业务侧（如预约）在插槽里再包一层 merge 时，保证子级也按内容宽参与列宽计算，避免整条 min-width:0 收缩链 */
  > * {
    min-width: max-content;
    flex-shrink: 0;
  }
}

.pisell-reservation-schedule-band-slot-end {
  justify-self: end;
  /** 右侧按钮区同样保留完整占位，避免被 1fr 中间列挤压 */
  min-width: max-content;
  display: flex;
  align-items: center;
}

.pisell-reservation-schedule-band-schedule {
  justify-self: stretch;
  min-width: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  /**
   * 仅在 Grid 的中间列（左、右扣掉之后的剩余宽度）内居中选日区；
   * 不与「整行居中」混淆，也不会贴死到 + New。
   */
  justify-content: center;
  @supports (justify-content: safe center) {
    justify-content: safe center;
  }
  /** 中间块总宽超过中间列时在本格内滚动，避免向左绘制盖住左侧 Segmented */
  overflow-x: auto;
  overflow-y: visible;
  box-sizing: border-box;
  /** 日期与右侧「当前时间」等插槽留出间距，避免贴太紧 */
  gap: 14px;
}

/** 日程组件根节点默认 width:100%，在中间栏会与「日期右侧」插槽分两行；此处收窄为内容宽，保证与 after-date 同一行 */
.pisell-reservation-schedule-band-schedule > .pisell-reservation-schedule {
  width: auto;
  flex: 0 0 auto;
  min-width: 0;
}

.pisell-reservation-schedule-band-after-date {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.pisell-reservation-schedule-band-navigator {
  width: 100%;
  min-width: 0;
}
