.schedule-board{
  width:100%; height:100%; box-sizing:border-box; background:var(--md-neutral-background-1-rest);
}
.schedule-scroll{ position:absolute; inset:0; overflow:auto; }
.schedule-render{ min-height:100%; box-sizing:border-box; display:flex; flex-direction:column; }
.schedule-header{ position:sticky; top:0; z-index:2; display:flex; align-items:center; flex-shrink:0; min-height:var(--schedule-header-h,40px); box-sizing:border-box; padding:8px 0; background:var(--md-neutral-background-1-rest); }
.schedule-task-col-header{
  flex:0 0 220px; width:220px; box-sizing:border-box; padding-left:8px;
  font-family:var(--font-sans); font-size:var(--md-typography-font-size-300); color:var(--md-neutral-foreground-3-rest);
}
.schedule-months{ flex:1; min-width:0; display:flex; }
.schedule-month{
  flex:1; min-width:0; padding-left:16px; outline:none; font-family:var(--font-sans); font-size:var(--md-typography-font-size-300);
  color:var(--md-neutral-foreground-3-rest); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.schedule-month:last-child{ overflow:visible; text-overflow:clip; }
.schedule-body{ flex:1; min-height:0; display:flex; flex-direction:column; }
.schedule-row{ flex:0 0 auto; display:flex; align-items:stretch; min-height:64px; }
.deck-component.selected .schedule-row:hover{ background:var(--md-neutral-background-2-rest); }
.schedule-task-col{
  flex:0 0 220px; width:220px; min-width:0; box-sizing:border-box; display:flex; align-items:flex-start;
  padding:8px 12px 8px 8px;
}
.schedule-body::before{
  content:''; position:absolute; top:0; bottom:0; left:220px; width:0;
  border-left:1px solid var(--md-neutral-stroke-1-rest); pointer-events:none;
}
.schedule-task-title-col{ flex:1; min-width:0; display:flex; align-items:center; gap:6px; }
.schedule-task-name{
  outline:none; font-family:var(--font-display); font-weight:var(--font-weight-bold); font-size:var(--md-typography-font-size-300);
  color:var(--md-neutral-foreground-1-rest); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis;
}
.schedule-track{ position:relative; flex:1; min-width:0; }
.schedule-item{
  position:absolute; top:8px; box-sizing:border-box; min-width:64px; min-height:52px;
  border-radius:var(--md-radius-120,12px); overflow:hidden; display:flex; align-items:stretch;
}
.schedule-item.item-focused{ outline:2px solid var(--ui-accent); outline-offset:1px; }
.schedule-row.row-focused{ background:var(--md-neutral-background-2-rest); }
.schedule-item-bg{ position:absolute; inset:0; display:flex; }
.schedule-item-bg-fill{ height:100%; background:var(--schedule-item-bg); }
.schedule-item-bg-rest{ height:100%; background:var(--md-neutral-background-disabled-rest); }
.schedule-item-text{
  position:relative; flex:1; min-width:0; display:flex; flex-direction:column; justify-content:center;
  gap:2px; padding:8px 14px; color:var(--schedule-item-fg);
}
.schedule-item-text.is-empty{ color:var(--md-neutral-foreground-disabled-rest); }
.schedule-item-title{
  outline:none; font-family:var(--font-display); font-weight:var(--font-weight-bold); font-size:var(--md-typography-font-size-300);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.schedule-item-desc{
  outline:none; font-family:var(--font-sans); font-size:var(--md-typography-font-size-200);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.schedule-row-fields{ flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; margin-top:8px; }
.schedule-row-task{ width:100%; box-sizing:border-box; }
.row-edit.schedule-row-edit{ align-items:flex-start; }
.row-edit.schedule-row-edit > .content-row-grip{ margin-top:8px; }
.row-edit.schedule-row-edit > .content-row-remove{ margin-top:6px; font-size:18px; }
.schedule-row-edit:hover{ background:var(--md-neutral-background-2-rest); }
.schedule-row-count{
  display:block; width:20px; text-align:center; font-family:var(--font-sans); font-size:var(--md-typography-font-size-200);
  color:var(--ui-muted);
}
.schedule-item-date-label{ font-family:var(--font-sans); font-size:var(--md-typography-font-size-200); color:var(--ui-muted); }
.schedule-task-focus-dates{ display:flex; flex-wrap:wrap; gap:8px; }
.schedule-task-focus-dates > .prop-field{ flex:1 1 120px; min-width:120px; }

.schedule-row-summary-line{
  display:flex; align-items:center; justify-content:space-between; gap:8px; cursor:pointer;
  padding:6px 9px; border-radius:8px; font-family:var(--font-sans); font-size:12.5px;
  color:var(--ui-muted);
}
.schedule-row-summary-line:hover{ background:var(--md-neutral-background-2-rest); color:var(--md-neutral-foreground-1-rest); }
.schedule-row-summary-line i{ font-size:11px; }

.schedule-body{ position:relative; }
.schedule-legend-overlay{ position:absolute; top:0; left:220px; right:0; bottom:0; z-index:3; pointer-events:none; }
.schedule-legend-marker{ position:absolute; top:0; bottom:0; }
.schedule-legend-caret{
  position:sticky; top:var(--schedule-header-h,40px); left:0; transform:translate(-50%,-60%);
  font-size:var(--md-typography-font-size-800); line-height:1; color:var(--legend-color,var(--md-color-blue-500));
}
.schedule-legend-diamond{
  position:sticky; top:var(--schedule-header-h,40px); left:0; transform:translate(-50%,-85%);
  font-size:var(--md-typography-font-size-300); line-height:1; color:var(--legend-color,var(--md-color-blue-500));
}
.schedule-legend-dashline{
  position:absolute; top:0; bottom:0; left:0; width:0; transform:translateX(-50%);
  border-left:2px dashed var(--legend-color,var(--md-color-blue-500));
}
.schedule-legend-marker-today .schedule-legend-dashline{ border-left-color:var(--legend-color,var(--md-color-blue-500)); opacity:.55; }
.schedule-legend-marker-range{ overflow:hidden; }
.schedule-legend-range-top{ position:absolute; top:0; left:0; right:0; height:4px; background:var(--legend-color); }
.schedule-legend-range-fill{
  position:absolute; top:4px; left:0; right:0; bottom:0; opacity:.16;
  background-image:repeating-linear-gradient(45deg, var(--legend-color) 0px, var(--legend-color) 2px, transparent 2px, transparent 10px);
}
.schedule-legend-bottom{ position:sticky; bottom:0; z-index:4; flex-shrink:0; display:flex; align-items:center; padding:10px 12px; background:var(--md-neutral-background-1-rest); }
.schedule-legend-today-field{ margin:0; }
.row-edit.schedule-legend-edit{ align-items:flex-start; }
.row-edit.schedule-legend-edit > .color-dot-select{ margin-top:9px; }
.row-edit.schedule-legend-edit > .content-row-remove{ margin-top:4px; }
.schedule-legend-edit-fields{ flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
.schedule-legend-edit-bottom{ display:flex; align-items:center; gap:6px; }
.schedule-legend-name{ width:100%; box-sizing:border-box; }
.schedule-legend-date{ width:104px; flex-shrink:0; }

