/**
 * RecordBoard 内嵌 BookingCalendar 的壳层与暗/亮主题 token（自原内联 <style> 迁出，供单处维护）。
 * 与根节点 `theme-root` + `theme-light` / `theme-dark` 类名配合使用。
 */
.pisell-scroll-hidden {
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.pisell-scroll-hidden::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.pisell-rb-cal-spin-wrap {
  flex: 1 1 0%;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.pisell-rb-cal-spin-wrap .pisell-lowcode-spin-container,
.pisell-rb-cal-spin-wrap .ant-spin-container {
  flex: 1 1 0%;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

.theme-root {
  --bg-app: #060913;
  --bg-shell: #080d1b;
  --bg-header: #10172a;
  --bg-toolbar: #0d1325;
  --bg-panel: #0d1325;
  --bg-panel-soft: #10172a;
  --bg-panel-alt: #10172a;
  --bg-elevated: #09101d;
  --bg-grid-cell: #0a0f1d;
  --bg-grid-muted: #080d1b;
  --bg-sticky: #09101d;
  --bg-input: #0d1325;
  --border-soft: rgba(255, 255, 255, 0.1);
  --border-strong: rgba(255, 255, 255, 0.16);
  --text-main: #ffffff;
  --text-soft: rgba(255, 255, 255, 0.72);
  --text-muted: rgba(255, 255, 255, 0.45);
  --text-faint: rgba(255, 255, 255, 0.15);
  --shadow-heavy: 0 24px 80px rgba(0, 0, 0, 0.42);
  --brand-primary: #7f56da;
  --brand-deep: #6941c6;
  --brand-light: #b692f6;
  --brand-surface: rgba(127, 86, 218, 0.12);
  --success-text: #32d583;
  --success-surface: rgba(18, 183, 106, 0.1);
  --success-border: rgba(50, 213, 131, 0.22);
  --warning-text: #fdb022;
  --warning-surface: rgba(247, 144, 9, 0.1);
  --warning-border: rgba(253, 176, 34, 0.22);
  --danger-text: #f97066;
  --danger-surface: rgba(240, 68, 56, 0.1);
  --danger-border: rgba(240, 68, 56, 0.22);
  --info-text: #53b1fd;
  --info-surface: rgba(46, 144, 250, 0.1);
  --info-border: rgba(83, 177, 253, 0.24);
  --pickup-text: #f670c7;
  --pickup-surface: rgba(238, 70, 188, 0.1);
  --pickup-border: rgba(246, 112, 199, 0.24);
  --disabled-value: rgba(255, 255, 255, 0.15);
  --side-brand-bg: #2b165c;
  --side-brand-border: rgba(182, 146, 246, 0.26);
}

.theme-root.theme-light {
  --bg-app: #e9eef5;
  --bg-shell: #f8fafc;
  --bg-header: #e2e8f4;
  --bg-toolbar: #f8fafc;
  --bg-panel: #ffffff;
  --bg-panel-soft: #ffffff;
  --bg-panel-alt: #f2f5f9;
  --bg-elevated: #eef3f8;
  --bg-grid-cell: #ffffff;
  --bg-grid-muted: #f8fafc;
  --bg-sticky: #eef3f8;
  --bg-input: #f2f5f9;
  --border-soft: #cbd5e1;
  --border-strong: #b8c4d3;
  --text-main: #101828;
  --text-soft: #344054;
  --text-muted: #667085;
  --text-faint: #98a2b3;
  --shadow-heavy: 0 18px 48px rgba(89, 61, 132, 0.08);
  --brand-primary: #7f56da;
  --brand-deep: #6941c6;
  --brand-light: #b692f6;
  --brand-surface: #f4ebff;
  --success-text: #067647;
  --success-surface: #d1fadf;
  --success-border: #a6f4c5;
  --warning-text: #b54708;
  --warning-surface: #fef0c7;
  --warning-border: #fedf89;
  --danger-text: #b42318;
  --danger-surface: #fee4e2;
  --danger-border: #f04438;
  --info-text: #175cd3;
  --info-surface: #d1e9ff;
  --info-border: #2e90fa;
  --pickup-text: #c11574;
  --pickup-surface: #fcceee;
  --pickup-border: #ee46bc;
  --disabled-value: #98a2b3;
  --side-brand-bg: #6941c6;
  --side-brand-border: rgba(127, 86, 218, 0.32);
}

.theme-app {
  background: var(--bg-app);
  color: var(--text-main);
}
.theme-shell {
  background: var(--bg-shell);
  color: var(--text-main);
  border-color: var(--border-soft);
  box-shadow: var(--shadow-heavy);
}
.theme-header {
  background: var(--bg-header);
  border-color: var(--border-soft);
}
.theme-toolbar {
  background: var(--bg-toolbar);
  border-color: var(--border-soft);
}
.theme-panel {
  background: var(--bg-panel);
  border-color: var(--border-soft);
}
.theme-panel-soft {
  background: var(--bg-panel-soft);
  border-color: var(--border-soft);
}
.theme-panel-alt {
  background: var(--bg-panel-alt);
  border-color: var(--border-soft);
}
.theme-elevated {
  background: var(--bg-elevated);
}
.theme-grid-cell {
  background: var(--bg-grid-cell);
}
.theme-grid-muted {
  background: var(--bg-grid-muted);
}
.theme-sticky {
  background: var(--bg-sticky);
}
.theme-input {
  background: var(--bg-input);
  border-color: var(--border-strong);
  color: var(--text-main);
}
.theme-text {
  color: var(--text-main);
}
.theme-text-soft {
  color: var(--text-soft);
}
.theme-text-muted {
  color: var(--text-muted);
}
.theme-text-faint {
  color: var(--text-faint);
}
.theme-border {
  border-color: var(--border-soft);
}
.theme-border-strong {
  border-color: var(--border-strong);
}
.theme-brand-surface {
  background: var(--brand-surface);
}
.theme-brand-text {
  color: var(--brand-deep);
}
.theme-success-chip {
  color: var(--success-text);
  background: var(--success-surface);
  border-color: var(--success-border);
}
.theme-warning-chip {
  color: var(--warning-text);
  background: var(--warning-surface);
  border-color: var(--warning-border);
}
.theme-danger-chip {
  color: var(--danger-text);
  background: var(--danger-surface);
  border-color: var(--danger-border);
}
.theme-info-chip {
  color: var(--info-text);
  background: var(--info-surface);
  border-color: var(--info-border);
}
.theme-pickup-chip {
  color: var(--pickup-text);
  background: var(--pickup-surface);
  border-color: var(--pickup-border);
}
.theme-disabled-value {
  color: var(--disabled-value);
}
.theme-light .soft-shadow {
  box-shadow: 0 12px 34px rgba(15, 23, 42, 0.08);
}
.btn-brand {
  background: var(--brand-primary);
  color: #fff;
  border: 1px solid var(--brand-primary);
}
.btn-neutral {
  background: var(--bg-input);
  color: var(--text-main);
  border: 1px solid var(--border-strong);
}
.btn-success {
  background: var(--success-surface);
  color: var(--success-text);
  border: 1px solid var(--success-border);
}
.btn-warning {
  background: var(--warning-surface);
  color: var(--warning-text);
  border: 1px solid var(--warning-border);
}
.btn-danger {
  background: var(--danger-surface);
  color: var(--danger-text);
  border: 1px solid var(--danger-border);
}
.btn-info {
  background: var(--info-surface);
  color: var(--info-text);
  border: 1px solid var(--info-border);
}
.surface-muted {
  background: var(--bg-panel-alt);
  border: 1px solid var(--border-soft);
}
.surface-card {
  background: var(--bg-panel);
  border: 1px solid var(--border-soft);
}
.text-disabled-token {
  color: var(--disabled-value);
}
.btn-pill-active {
  background: var(--brand-primary);
  color: #fff;
  border: 1px solid var(--brand-primary);
}
.btn-pill-neutral {
  background: var(--bg-input);
  color: var(--text-soft);
  border: 1px solid var(--border-strong);
}
.surface-overlay {
  background: color-mix(in srgb, var(--bg-panel) 88%, transparent);
  border: 1px solid var(--border-soft);
}
.panel-dark-adapt {
  background: var(--bg-panel);
  border: 1px solid var(--border-soft);
  color: var(--text-main);
}
.panel-soft-adapt {
  background: var(--bg-panel-alt);
  border: 1px solid var(--border-soft);
  color: var(--text-main);
}
.input-adapt {
  background: var(--bg-input);
  border: 1px solid var(--border-strong);
  color: var(--text-main);
}
.caption-adapt {
  color: var(--text-muted);
}
.surface-brand-side {
  background: var(--side-brand-bg);
  color: #fff;
  border-color: var(--side-brand-border);
}
.surface-brand-side-muted {
  background: color-mix(in srgb, var(--side-brand-bg) 88%, white 12%);
  color: #fff;
  border-color: var(--side-brand-border);
}
.badge-brand-dot {
  background: var(--brand-primary);
  color: #fff;
}

/** 周/日视图左侧资源名与分组名：单行省略（BookingCalendarWeekView / BookingCalendarGroupRowHeader） */
.pisell-rb-cal-week-resource-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
