/* Schedule owns calendar composition and priority presentation. */
.schedule-toolbar {
  display: grid;
  gap: 18px;
  margin-bottom: 18px;
  overflow: hidden;
}

.schedule-toolbar__intro,
.schedule-toolbar__controls,
.schedule-backlog__header,
.schedule-job__topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.schedule-eyebrow {
  margin: 0 0 3px;
  color: var(--ui-color-text-muted);
  font-size: var(--ui-font-size-caption);
  font-weight: var(--ui-font-weight-bold);
  letter-spacing: .11em;
  text-transform: uppercase;
}

.schedule-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.schedule-priority {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border: 1px solid transparent;
  border-radius: 999px;
  padding: 2px 7px;
  font-size: var(--ui-font-size-caption);
  font-weight: var(--ui-font-weight-bold);
  letter-spacing: .035em;
  line-height: var(--ui-line-height-snug);
  white-space: nowrap;
  text-transform: uppercase;
}

.schedule-priority--urgent { color: #991b1b; background: #fee2e2; border-color: #fecaca; }
.schedule-priority--high { color: #9a3412; background: #ffedd5; border-color: #fed7aa; }
.schedule-priority--normal { color: #1e40af; background: #dbeafe; border-color: #bfdbfe; }
.schedule-priority--low { color: #475569; background: #f1f5f9; border-color: #e2e8f0; }

[data-theme="dark"] .schedule-priority--urgent { color: #fecaca; background: rgba(185, 28, 28, .3); border-color: rgba(248, 113, 113, .4); }
[data-theme="dark"] .schedule-priority--high { color: #fed7aa; background: rgba(194, 65, 12, .3); border-color: rgba(251, 146, 60, .4); }
[data-theme="dark"] .schedule-priority--normal { color: #bfdbfe; background: rgba(30, 64, 175, .3); border-color: rgba(96, 165, 250, .4); }
[data-theme="dark"] .schedule-priority--low { color: #cbd5e1; background: rgba(71, 85, 105, .35); border-color: rgba(148, 163, 184, .35); }

.schedule-date-controls {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
}

.schedule-date-controls .ui-control {
  width: 150px;
}

.schedule-month-nav { white-space: nowrap; }

.schedule-range-heading {
  color: var(--ui-color-text);
  font-size: var(--ui-font-size-page);
  font-weight: var(--ui-font-weight-bold);
}

.schedule-slot-count-1 { --schedule-slot-count: 1; }
.schedule-slot-count-2 { --schedule-slot-count: 2; }
.schedule-slot-count-3 { --schedule-slot-count: 3; }
.schedule-slot-count-4 { --schedule-slot-count: 4; }
.schedule-slot-count-5 { --schedule-slot-count: 5; }
.schedule-slot-count-6 { --schedule-slot-count: 6; }
.schedule-slot-count-7 { --schedule-slot-count: 7; }
.schedule-slot-count-8 { --schedule-slot-count: 8; }
.schedule-slot-count-9 { --schedule-slot-count: 9; }
.schedule-slot-count-10 { --schedule-slot-count: 10; }
.schedule-slot-count-11 { --schedule-slot-count: 11; }
.schedule-slot-count-12 { --schedule-slot-count: 12; }
.schedule-slot-count-13 { --schedule-slot-count: 13; }
.schedule-slot-count-14 { --schedule-slot-count: 14; }
.schedule-slot-count-15 { --schedule-slot-count: 15; }
.schedule-slot-count-16 { --schedule-slot-count: 16; }
.schedule-slot-count-17 { --schedule-slot-count: 17; }
.schedule-slot-count-18 { --schedule-slot-count: 18; }
.schedule-slot-count-19 { --schedule-slot-count: 19; }
.schedule-slot-count-20 { --schedule-slot-count: 20; }
.schedule-slot-count-21 { --schedule-slot-count: 21; }
.schedule-slot-count-22 { --schedule-slot-count: 22; }
.schedule-slot-count-23 { --schedule-slot-count: 23; }
.schedule-slot-count-24 { --schedule-slot-count: 24; }
.schedule-slot-count-25 { --schedule-slot-count: 25; }
.schedule-slot-count-26 { --schedule-slot-count: 26; }
.schedule-slot-count-27 { --schedule-slot-count: 27; }
.schedule-slot-count-28 { --schedule-slot-count: 28; }
.schedule-slot-count-29 { --schedule-slot-count: 29; }
.schedule-slot-count-30 { --schedule-slot-count: 30; }
.schedule-slot-count-31 { --schedule-slot-count: 31; }
.schedule-slot-count-32 { --schedule-slot-count: 32; }
.schedule-slot-count-33 { --schedule-slot-count: 33; }
.schedule-slot-count-34 { --schedule-slot-count: 34; }
.schedule-slot-count-35 { --schedule-slot-count: 35; }
.schedule-slot-count-36 { --schedule-slot-count: 36; }
.schedule-slot-count-37 { --schedule-slot-count: 37; }
.schedule-slot-count-38 { --schedule-slot-count: 38; }
.schedule-slot-count-39 { --schedule-slot-count: 39; }
.schedule-slot-count-40 { --schedule-slot-count: 40; }
.schedule-slot-count-41 { --schedule-slot-count: 41; }
.schedule-slot-count-42 { --schedule-slot-count: 42; }
.schedule-slot-count-43 { --schedule-slot-count: 43; }
.schedule-slot-count-44 { --schedule-slot-count: 44; }
.schedule-slot-count-45 { --schedule-slot-count: 45; }
.schedule-slot-count-46 { --schedule-slot-count: 46; }
.schedule-slot-count-47 { --schedule-slot-count: 47; }
.schedule-slot-count-48 { --schedule-slot-count: 48; }

.schedule-slot {
  position: relative;
  grid-column: span var(--schedule-cell-span, 1);
}

.schedule-slot-span-1 { --schedule-cell-span: 1; }
.schedule-slot-span-2 { --schedule-cell-span: 2; }
.schedule-slot-span-3 { --schedule-cell-span: 3; }
.schedule-slot-span-4 { --schedule-cell-span: 4; }
.schedule-slot-span-5 { --schedule-cell-span: 5; }
.schedule-slot-span-6 { --schedule-cell-span: 6; }
.schedule-slot-span-7 { --schedule-cell-span: 7; }
.schedule-slot-span-8 { --schedule-cell-span: 8; }
.schedule-slot-span-9 { --schedule-cell-span: 9; }
.schedule-slot-span-10 { --schedule-cell-span: 10; }
.schedule-slot-span-11 { --schedule-cell-span: 11; }
.schedule-slot-span-12 { --schedule-cell-span: 12; }
.schedule-slot-span-13 { --schedule-cell-span: 13; }
.schedule-slot-span-14 { --schedule-cell-span: 14; }
.schedule-slot-span-15 { --schedule-cell-span: 15; }
.schedule-slot-span-16 { --schedule-cell-span: 16; }
.schedule-slot-span-17 { --schedule-cell-span: 17; }
.schedule-slot-span-18 { --schedule-cell-span: 18; }
.schedule-slot-span-19 { --schedule-cell-span: 19; }
.schedule-slot-span-20 { --schedule-cell-span: 20; }
.schedule-slot-span-21 { --schedule-cell-span: 21; }
.schedule-slot-span-22 { --schedule-cell-span: 22; }
.schedule-slot-span-23 { --schedule-cell-span: 23; }
.schedule-slot-span-24 { --schedule-cell-span: 24; }
.schedule-slot-span-25 { --schedule-cell-span: 25; }
.schedule-slot-span-26 { --schedule-cell-span: 26; }
.schedule-slot-span-27 { --schedule-cell-span: 27; }
.schedule-slot-span-28 { --schedule-cell-span: 28; }
.schedule-slot-span-29 { --schedule-cell-span: 29; }
.schedule-slot-span-30 { --schedule-cell-span: 30; }
.schedule-slot-span-31 { --schedule-cell-span: 31; }
.schedule-slot-span-32 { --schedule-cell-span: 32; }
.schedule-slot-span-33 { --schedule-cell-span: 33; }
.schedule-slot-span-34 { --schedule-cell-span: 34; }
.schedule-slot-span-35 { --schedule-cell-span: 35; }
.schedule-slot-span-36 { --schedule-cell-span: 36; }
.schedule-slot-span-37 { --schedule-cell-span: 37; }
.schedule-slot-span-38 { --schedule-cell-span: 38; }
.schedule-slot-span-39 { --schedule-cell-span: 39; }
.schedule-slot-span-40 { --schedule-cell-span: 40; }
.schedule-slot-span-41 { --schedule-cell-span: 41; }
.schedule-slot-span-42 { --schedule-cell-span: 42; }
.schedule-slot-span-43 { --schedule-cell-span: 43; }
.schedule-slot-span-44 { --schedule-cell-span: 44; }
.schedule-slot-span-45 { --schedule-cell-span: 45; }
.schedule-slot-span-46 { --schedule-cell-span: 46; }
.schedule-slot-span-47 { --schedule-cell-span: 47; }
.schedule-slot-span-48 { --schedule-cell-span: 48; }

.schedule-slot.drag-over {
  outline: 2px dashed rgba(var(--ui-primary-rgb), .5);
  outline-offset: -6px;
  background: rgba(var(--ui-primary-rgb), .08);
}

.schedule-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(210px, 230px);
  gap: var(--ui-space-4);
  align-items: start;
}

.schedule-layout > .ui-sidebar-layout__main,
.schedule-layout > .ui-sidebar-layout__aside {
  min-width: 0;
}

.schedule-backlog {
  position: sticky;
  top: 16px;
  min-width: 0;
  border: 1px solid var(--ui-color-border);
  border-radius: 14px;
  padding: 12px;
  background: var(--ui-color-surface);
  box-shadow: var(--ui-shadow-surface);
}

.schedule-count {
  display: grid;
  min-width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 10px;
  color: var(--ui-color-text);
  background: var(--ui-color-surface-raised);
  font-weight: var(--ui-font-weight-bold);
}

.schedule-backlog__list {
  display: grid;
  gap: 10px;
  max-height: calc(100vh - 250px);
  margin-top: 14px;
  overflow-y: auto;
}

.schedule-backlog__summary,
.schedule-timetable__day-header > span {
  color: var(--ui-color-text-muted);
  font-size: var(--ui-font-size-caption);
}

.schedule-backlog__summary { margin: 8px 0 0; }

.schedule-backlog.drag-over {
  border-color: rgba(var(--ui-primary-rgb), .65);
  background: rgba(var(--ui-primary-rgb), .08);
}

.schedule-empty-state {
  color: var(--ui-color-text-muted);
  font-size: var(--ui-font-size-secondary);
}

.schedule-job {
  --schedule-priority-color: #2563eb;
  display: grid;
  gap: 5px;
  min-width: 0;
  border: 1px solid color-mix(in srgb, var(--schedule-priority-color) 38%, var(--ui-color-border));
  border-left: 4px solid var(--schedule-priority-color);
  border-radius: 10px;
  padding: 9px 10px;
  color: var(--ui-color-text);
  background: color-mix(in srgb, var(--schedule-priority-color) 8%, var(--ui-color-surface));
  cursor: default;
}

.schedule-job--urgent { --schedule-priority-color: #dc2626; }
.schedule-job--high { --schedule-priority-color: #ea580c; }
.schedule-job--normal { --schedule-priority-color: #2563eb; }
.schedule-job--low { --schedule-priority-color: #64748b; }
.schedule-job--complete { opacity: .68; filter: saturate(.6); }

.schedule-job__topline { align-items: flex-start; }
.schedule-job__indicators { display: inline-flex; flex-shrink: 0; align-items: center; gap: 5px; }
.schedule-job__actions {
  display: grid;
  width: 26px;
  height: 24px;
  place-items: center;
  border: 1px solid var(--ui-color-border);
  border-radius: 7px;
  padding: 0;
  color: var(--ui-color-text-muted);
  background: var(--ui-color-surface);
  cursor: pointer;
  font: inherit;
  letter-spacing: 1px;
}

.schedule-job__schedule {
  padding: 3px 7px;
  font-size: var(--ui-font-size-caption);
  line-height: var(--ui-line-height-snug);
}

.schedule-job__title-link {
  color: inherit;
  text-decoration: none;
}

.schedule-job__title-link:hover,
.schedule-job__title-link:focus-visible { text-decoration: underline; }
.schedule-job__actions:hover,
.schedule-job__actions:focus-visible { color: var(--ui-color-text); border-color: var(--ui-color-border-strong); }
.schedule-job__title {
  display: inline-flex;
  align-items: flex-start;
  gap: 5px;
  min-width: 0;
  overflow: hidden;
  font-size: var(--ui-font-size-secondary);
  font-weight: var(--ui-font-weight-bold);
  text-overflow: ellipsis;
}

.schedule-job__drag-handle {
  flex: 0 0 auto;
  color: var(--ui-color-text-muted);
  font-weight: var(--ui-font-weight-bold);
  letter-spacing: -2px;
  line-height: var(--ui-line-height-snug);
  cursor: grab;
  user-select: none;
}

.schedule-job__meta {
  overflow: hidden;
  color: var(--ui-color-text-muted);
  font-size: var(--ui-font-size-caption);
  line-height: var(--ui-line-height-snug);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.schedule-job__duration-label--compact { display: none; }
.schedule-job.drag-job[data-job-open-actions="1"] { cursor: pointer; }

.drag-job[draggable="true"] { cursor: grab; }
.drag-job[draggable="true"]:active { cursor: grabbing; }
.drag-disabled { cursor: default !important; }

.job-notes-box {
  max-height: 180px;
  overflow-y: auto;
  border: 1px solid var(--ui-color-border);
  border-radius: 10px;
  padding: 8px;
  background: var(--ui-color-surface-raised);
  font-size: var(--ui-font-size-secondary);
  line-height: var(--ui-line-height-normal);
  white-space: pre-wrap;
}

.schedule-outside-hours__jobs { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px; }

.schedule-timetable-card {
  padding: 0;
  overflow-x: auto;
  overflow-y: hidden;
}
.schedule-timetable__hint {
  position: sticky;
  left: 0;
  z-index: 5;
  padding: 11px 14px;
  border-bottom: 1px solid var(--ui-color-border);
  color: var(--ui-color-text-muted);
  background: var(--ui-color-surface);
  font-size: var(--ui-font-size-secondary);
}
.schedule-timetable {
  --schedule-timetable-size: 972px;
  display: grid;
  grid-template-columns: 72px repeat(5, minmax(180px, 1fr));
  grid-template-rows: auto var(--schedule-timetable-size);
  min-width: 972px;
  color: var(--ui-color-text);
  background: var(--ui-color-surface);
}

.schedule-timetable--compact {
  --schedule-timetable-size: 720px;
  min-width: 972px;
}

.schedule-timetable__corner,
.schedule-timetable__day-header {
  grid-row: 1;
  border-right: 1px solid var(--ui-color-border);
  border-bottom: 1px solid var(--ui-color-border-strong);
  padding: 9px 7px;
  background: var(--ui-color-surface-raised);
  text-align: center;
}

.schedule-timetable__corner {
  grid-column: 1;
  align-content: center;
  color: var(--ui-color-text-muted);
  font-size: var(--ui-font-size-caption);
  font-weight: var(--ui-font-weight-bold);
  text-transform: uppercase;
}

.schedule-timeline-column-1 { grid-column: 2; }
.schedule-timeline-column-2 { grid-column: 3; }
.schedule-timeline-column-3 { grid-column: 4; }
.schedule-timeline-column-4 { grid-column: 5; }
.schedule-timeline-column-5 { grid-column: 6; }
.schedule-timeline-column-6 { grid-column: 7; }
.schedule-timeline-column-7 { grid-column: 8; }

.schedule-timetable__day-header {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.schedule-timetable__day-date {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 5px;
  color: var(--ui-color-text-muted);
  font-size: var(--ui-font-size-caption);
  text-decoration: none;
}

.schedule-timetable__day-header strong {
  color: var(--ui-color-text);
  font-size: var(--ui-font-size-section);
}

.schedule-timetable__day-header--today { box-shadow: inset 0 3px 0 var(--ui-color-primary); }
.schedule-timetable__day-header--today strong {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  color: white;
  background: var(--ui-color-primary);
  font-size: var(--ui-font-size-body);
}

.schedule-timetable__day-header--outside { opacity: .62; }
.schedule-timetable__day-header--holiday {
  background: color-mix(in srgb, var(--ui-color-surface-raised) 72%, var(--ui-color-border));
}
.schedule-timetable__holiday-name {
  color: var(--ui-color-text-muted);
  font-size: var(--ui-font-size-caption);
  font-weight: var(--ui-font-weight-semibold);
}

.schedule-timetable__time-axis,
.schedule-timetable__day-track {
  grid-row: 2;
  display: grid;
  grid-template-rows: repeat(18, 1fr);
  min-height: 0;
}

.schedule-timetable__time-axis {
  position: relative;
  grid-column: 1;
  background: var(--ui-color-surface-raised);
}

.schedule-timetable__time {
  position: relative;
  border-right: 1px solid var(--ui-color-border-strong);
  border-bottom: 1px solid var(--ui-color-border);
  color: var(--ui-color-text-muted);
  font-size: var(--ui-font-size-caption);
}

.schedule-timetable__time span {
  position: absolute;
  top: -7px;
  right: 8px;
  padding-left: 4px;
  background: var(--ui-color-surface-raised);
  line-height: var(--ui-line-height-snug);
}

.schedule-timetable__time--hour span { color: var(--ui-color-text); font-weight: var(--ui-font-weight-semibold); }
.schedule-timetable__time-end {
  position: absolute;
  right: 8px;
  bottom: -7px;
  z-index: 1;
  padding-left: 4px;
  color: var(--ui-color-text);
  background: var(--ui-color-surface-raised);
  font-size: var(--ui-font-size-caption);
  font-weight: var(--ui-font-weight-semibold);
  line-height: var(--ui-line-height-snug);
}

.schedule-timetable__day-track {
  position: relative;
  border-right: 1px solid var(--ui-color-border-strong);
  background: var(--ui-color-surface);
}

.schedule-timetable__day-track--outside { background: color-mix(in srgb, var(--ui-color-surface-raised) 70%, var(--ui-color-surface)); }
.schedule-timetable__day-track--holiday {
  background: color-mix(in srgb, var(--ui-color-surface-raised) 70%, var(--ui-color-border));
}
.schedule-timetable__day-track--today { box-shadow: inset 0 0 0 2px rgba(var(--ui-primary-rgb), .55); }

.schedule-timetable__slot {
  position: relative;
  grid-column: 1;
  border-bottom: 1px solid var(--ui-color-border);
  transition: background-color .12s ease, box-shadow .12s ease;
}

.schedule-timetable__slot--hour { border-bottom-color: var(--ui-color-border-strong); }
.schedule-timetable__slot[data-schedulable="0"] { background: color-mix(in srgb, var(--ui-color-surface-raised) 58%, transparent); }
.schedule-timetable__slot.drag-over {
  z-index: 3;
  background: color-mix(in srgb, var(--ui-color-primary) 18%, var(--ui-color-surface));
  box-shadow: inset 0 0 0 2px rgba(var(--ui-primary-rgb), .8);
}

.schedule-timetable__concurrency {
  position: absolute;
  z-index: 1;
  top: 2px;
  right: 3px;
  display: grid;
  min-width: 17px;
  height: 17px;
  place-items: center;
  border-radius: 999px;
  color: var(--ui-color-primary);
  background: color-mix(in srgb, var(--ui-color-primary) 15%, var(--ui-color-surface));
  font-size: var(--ui-font-size-caption);
  font-weight: var(--ui-font-weight-bold);
}

.schedule-timetable__job {
  --schedule-lane-count: 1;
  --schedule-lane-index: 0;
  z-index: 2;
  grid-column: 1;
  container-type: inline-size;
  align-self: stretch;
  width: calc(100% / var(--schedule-lane-count));
  min-width: 0;
  padding: 2px;
  transform: translateX(calc(100% * var(--schedule-lane-index)));
  overflow: hidden;
  pointer-events: none;
}

.schedule-timetable__job .schedule-job {
  height: 100%;
  gap: 2px;
  overflow: hidden;
  pointer-events: auto;
}

.schedule-timetable__job .schedule-job__title,
.schedule-timetable__job .schedule-job__meta {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.schedule-timetable__job .schedule-job__indicators { flex-shrink: 1; min-width: 0; }
.schedule-timetable__job .schedule-job__actions { display: none; }

.schedule-timeline-start-0 { grid-row-start: 1; }
.schedule-timeline-start-1 { grid-row-start: 2; }
.schedule-timeline-start-2 { grid-row-start: 3; }
.schedule-timeline-start-3 { grid-row-start: 4; }
.schedule-timeline-start-4 { grid-row-start: 5; }
.schedule-timeline-start-5 { grid-row-start: 6; }
.schedule-timeline-start-6 { grid-row-start: 7; }
.schedule-timeline-start-7 { grid-row-start: 8; }
.schedule-timeline-start-8 { grid-row-start: 9; }
.schedule-timeline-start-9 { grid-row-start: 10; }
.schedule-timeline-start-10 { grid-row-start: 11; }
.schedule-timeline-start-11 { grid-row-start: 12; }
.schedule-timeline-start-12 { grid-row-start: 13; }
.schedule-timeline-start-13 { grid-row-start: 14; }
.schedule-timeline-start-14 { grid-row-start: 15; }
.schedule-timeline-start-15 { grid-row-start: 16; }
.schedule-timeline-start-16 { grid-row-start: 17; }
.schedule-timeline-start-17 { grid-row-start: 18; }

.schedule-timeline-span-1 { grid-row-end: span 1; }
.schedule-timeline-span-2 { grid-row-end: span 2; }
.schedule-timeline-span-3 { grid-row-end: span 3; }
.schedule-timeline-span-4 { grid-row-end: span 4; }
.schedule-timeline-span-5 { grid-row-end: span 5; }
.schedule-timeline-span-6 { grid-row-end: span 6; }
.schedule-timeline-span-7 { grid-row-end: span 7; }
.schedule-timeline-span-8 { grid-row-end: span 8; }
.schedule-timeline-span-9 { grid-row-end: span 9; }
.schedule-timeline-span-10 { grid-row-end: span 10; }
.schedule-timeline-span-11 { grid-row-end: span 11; }
.schedule-timeline-span-12 { grid-row-end: span 12; }
.schedule-timeline-span-13 { grid-row-end: span 13; }
.schedule-timeline-span-14 { grid-row-end: span 14; }
.schedule-timeline-span-15 { grid-row-end: span 15; }
.schedule-timeline-span-16 { grid-row-end: span 16; }
.schedule-timeline-span-17 { grid-row-end: span 17; }
.schedule-timeline-span-18 { grid-row-end: span 18; }

.schedule-timeline-lanes-1 { --schedule-lane-count: 1; }
.schedule-timeline-lanes-2 { --schedule-lane-count: 2; }
.schedule-timeline-lanes-3 { --schedule-lane-count: 3; }
.schedule-timeline-lanes-4 { --schedule-lane-count: 4; }
.schedule-timeline-lanes-5 { --schedule-lane-count: 5; }
.schedule-timeline-lanes-6 { --schedule-lane-count: 6; }
.schedule-timeline-lanes-7 { --schedule-lane-count: 7; }
.schedule-timeline-lanes-8 { --schedule-lane-count: 8; }
.schedule-timeline-lanes-9 { --schedule-lane-count: 9; }
.schedule-timeline-lanes-10 { --schedule-lane-count: 10; }
.schedule-timeline-lanes-11 { --schedule-lane-count: 11; }
.schedule-timeline-lanes-12 { --schedule-lane-count: 12; }
.schedule-timeline-lane-0 { --schedule-lane-index: 0; }
.schedule-timeline-lane-1 { --schedule-lane-index: 1; }
.schedule-timeline-lane-2 { --schedule-lane-index: 2; }
.schedule-timeline-lane-3 { --schedule-lane-index: 3; }
.schedule-timeline-lane-4 { --schedule-lane-index: 4; }
.schedule-timeline-lane-5 { --schedule-lane-index: 5; }
.schedule-timeline-lane-6 { --schedule-lane-index: 6; }
.schedule-timeline-lane-7 { --schedule-lane-index: 7; }
.schedule-timeline-lane-8 { --schedule-lane-index: 8; }
.schedule-timeline-lane-9 { --schedule-lane-index: 9; }
.schedule-timeline-lane-10 { --schedule-lane-index: 10; }
.schedule-timeline-lane-11 { --schedule-lane-index: 11; }

.schedule-timetable__outside-hours {
  display: grid;
  gap: 10px;
  padding: 12px 14px;
  border-top: 1px solid var(--ui-color-border);
  background: color-mix(in srgb, var(--ui-color-surface-raised) 55%, var(--ui-color-surface));
}

.schedule-timetable__outside-hours > div { display: grid; gap: 7px; }
.schedule-month-week { border-top: 1px solid var(--ui-color-border-strong); }
.schedule-month-week:first-of-type { border-top: 0; }
.schedule-month-week__heading {
  position: sticky;
  left: 0;
  z-index: 5;
  margin: 0;
  padding: 8px 14px;
  color: var(--ui-color-text);
  background: color-mix(in srgb, var(--ui-color-surface-raised) 75%, var(--ui-color-surface));
  font-size: var(--ui-font-size-secondary);
}

.schedule-job--calendar { padding: 7px; }
.schedule-job--calendar .schedule-job__topline {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 4px;
}
.schedule-job--calendar .schedule-priority { padding: 1px 5px; font-size: var(--ui-font-size-caption); }
.schedule-job--calendar .schedule-job__meta--timing {
  display: flex;
  flex-wrap: wrap;
  column-gap: 3px;
  row-gap: 1px;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}
.schedule-job--calendar .schedule-job__time,
.schedule-job--calendar .schedule-job__duration,
.schedule-job--calendar .schedule-job__agent { white-space: nowrap; }
.schedule-job--calendar .schedule-job__time::after {
  margin-left: 5px;
  color: var(--ui-color-text-muted);
  content: "•";
}
.schedule-job--calendar .schedule-job__duration-label { display: none; }
.schedule-job--calendar .schedule-job__duration-label--compact { display: inline; }
.schedule-job--calendar .schedule-job__agent::before {
  margin-right: 3px;
  color: var(--ui-color-text-muted);
  content: "•";
}

.schedule-timeline-span-1 .schedule-job--calendar {
  gap: 0;
  padding: 2px 5px;
}
.schedule-timeline-span-1 .schedule-job__topline {
  align-items: center;
  gap: 3px;
  min-height: 0;
}
.schedule-timeline-span-1 .schedule-job__title {
  align-items: center;
  line-height: var(--ui-line-height-snug);
}
.schedule-timeline-span-1 .schedule-priority {
  padding-block: 0;
  line-height: var(--ui-line-height-snug);
}
.schedule-timeline-span-1 .schedule-job__meta--timing {
  flex-wrap: nowrap;
  align-items: center;
  min-height: 0;
  overflow: hidden;
  font-size: var(--ui-font-size-caption);
  line-height: var(--ui-line-height-snug);
}
.schedule-timeline-span-1 .schedule-job__duration { display: none; }
.schedule-timeline-span-1 .schedule-job__time::after { display: none; }

@container (max-width: 105px) {
  .schedule-timetable__job .schedule-job--calendar .schedule-priority,
  .schedule-timetable__job .schedule-job--calendar .schedule-job__duration,
  .schedule-timetable__job .schedule-job--calendar .schedule-job__agent { display: none; }
  .schedule-timetable__job .schedule-job--calendar .schedule-job__time::after { display: none; }
}

@media (max-width: 1100px) {
  .schedule-toolbar__intro,
  .schedule-toolbar__controls { align-items: stretch; flex-direction: column; }
  .schedule-legend { justify-content: flex-start; }
  .schedule-date-controls { flex-wrap: wrap; }
  .schedule-layout { display: flex; flex-direction: column; }
  .schedule-backlog { position: static; width: 100%; min-width: 0; }
  .schedule-backlog__list { max-height: 360px; }
}

@media (max-width: 560px) {
  .schedule-date-controls .ui-control { flex: 1 1 140px; }
}
