/**
 * 主题 B / C 与「查看全部」Modal 外壳：`[data-theme='compact']` 紧凑模式
 * 与 `[data-theme='wide']` 宽幅面板的全套字号 / 边距 / 圆角覆盖；以及
 * `&.pisell-res-floor-room-card--modal-shell` 弹层壳的高度 / 滚动 / 列表布局。
 * 注：默认主题 A 见 shell-base.less 与各 `body / header / ...` 分片。
 */

/* ============================================================
   Theme A — 经典卡片 (Default, already defined above)
   ============================================================ */

/* ============================================================
   Theme B — 紧凑模式
   ============================================================ */

&[data-theme="compact"] .rc {
  padding: 8px 10px;
  gap: 6px;
  border-radius: 6px;
}

&[data-theme="compact"] .rc-room-name,
&[data-theme="compact"] .rc-room-name-count {
  font-size: 13px;
}

&[data-theme="compact"] .rc-capacity {
  font-size: 10px;
}

&[data-theme="compact"] .rc-tag {
  font-size: 10px;
  padding: 1px 5px;
}

&[data-theme="compact"] .rc-contact {
  font-size: 12px;
}

&[data-theme="compact"] .rc-contact__phone {
  font-size: 11px;
}

&[data-theme="compact"] .rc-time-row {
  font-size: 11px;
}

&[data-theme="compact"] .rc-body--center {
  min-height: 40px;
}

&[data-theme="compact"] .rc-empty-text {
  font-size: 11px;
}

&[data-theme="compact"] .rc-stamp {
  width: 48px;
  height: 48px;
  right: -2px;
  bottom: 4px;
}

&[data-theme="compact"] .rc-stamp span {
  font-size: 10px;
  line-height: 1.15;
  padding: 0 2px;
}

&[data-theme="compact"] .rc-progress__label {
  font-size: 10px;
}

&[data-theme="compact"] .rc-next__title {
  font-size: 9px;
}

&[data-theme="compact"] .rc-next__info {
  font-size: 11px;
}

&[data-theme="compact"] .rc-multi-item {
  padding: 4px 6px;
}

&[data-theme="compact"] .rc-multi-item__info {
  font-size: 11px;
}

&[data-theme="compact"] .rc-lock-icon svg {
  width: 20px;
  height: 20px;
}

&[data-theme="compact"] .rc-locked-text {
  font-size: 10px;
}

/* ============================================================
   Theme C — 宽幅面板
   ============================================================ */

&[data-theme="wide"] .rc {
  padding: 16px 20px;
  gap: 12px;
  border-radius: 12px;
}

&[data-theme="wide"] .rc-header {
  min-height: 28px;
}

&[data-theme="wide"] .rc-room-name,
&[data-theme="wide"] .rc-room-name-count {
  font-size: 16px;
}

/** 与上面子节点字号保持一致，使 `.rc-room-name-line` 的 `max-height: 1.25em` 等于一行实际行盒，避免裁掉标题底部 */
&[data-theme="wide"] .rc-room-name-line {
  font-size: 16px;
}

&[data-theme="wide"] .rc-capacity {
  font-size: 13px;
}

&[data-theme="wide"] .rc-tag {
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 6px;
}

&[data-theme="wide"] .rc-contact {
  font-size: 14px;
  gap: 10px;
}

&[data-theme="wide"] .rc-contact__phone {
  font-size: 13px;
}

&[data-theme="wide"] .rc-time-row {
  font-size: 13px;
}

&[data-theme="wide"] .rc-progress__bar {
  height: 6px;
  border-radius: 3px;
}

&[data-theme="wide"] .rc-progress__fill {
  border-radius: 3px;
}

&[data-theme="wide"] .rc-progress__label {
  font-size: 12px;
}

&[data-theme="wide"] .rc-body--center {
  min-height: 72px;
}

&[data-theme="wide"] .rc-empty-text {
  font-size: 14px;
}

&[data-theme="wide"] .rc-next {
  padding-top: 10px;
}

&[data-theme="wide"] .rc-next__title {
  font-size: 11px;
  margin-bottom: 5px;
}

&[data-theme="wide"] .rc-next__info {
  font-size: 13px;
}

&[data-theme="wide"] .rc-multi-item {
  padding: 8px 10px;
  gap: 4px;
}

&[data-theme="wide"] .rc-multi-item__info {
  font-size: 13px;
}

&[data-theme="wide"] .rc-lock-icon svg {
  width: 32px;
  height: 32px;
}

&[data-theme="wide"] .rc-locked-text {
  font-size: 13px;
}

/**
 * 「查看全部」Modal 内容通过 portal 挂到 body，须自带 .pisell-res-floor-room-card
 * 才能命中其下的 .rc-compact / .rc--* 规则；内层 .rc--* .rc--multi 与画布多条约肤色一致。
 */

&.pisell-res-floor-room-card--modal-shell {
  width: 100%;
  height: auto;
  /** 固定可视高度，列表在内部滚动，避免日程很多时把整窗撑满屏 */
  max-height: min(70vh, 520px);
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-sizing: border-box;

  /** 「查看全部预约」列表：条与条之间间距（仅 Modal 内） */

  .rc-multi-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    max-height: none;
    gap: 12px;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
    touch-action: pan-y;
  }

  .rc--reserved.rc--multi,
  .rc--occupied.rc--multi {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: var(--radius-m);
    padding: 4px 0 0;
  }
}
