.schedule-view .schedule-timegrid { --schedule-availability-height: 30px; grid-template-rows: auto var(--schedule-availability-height) var(--schedule-body-height); }
.schedule-view .schedule-timegrid:has(.schedule-availability-chip) { --schedule-availability-height: 46px; }
.schedule-view .schedule-timegrid:has(.schedule-availability-chip:nth-child(2)) { --schedule-availability-height: 80px; }
.schedule-view .schedule-timegrid:has(.schedule-availability-chip:nth-child(3)) { --schedule-availability-height: 118px; }
.schedule-view .schedule-timegrid-corner, .schedule-view .schedule-timegrid-head { grid-row: 1; min-height: 84px; }
.schedule-availability-label, .schedule-availability-row { grid-row: 2; }
.schedule-availability-label { grid-column: 1; }
.schedule-view .schedule-time-axis, .schedule-view .schedule-timegrid-column { grid-row: 3; }
.schedule-availability-label, .schedule-availability-row { padding: 6px; border-bottom: 1px solid var(--line); background: var(--paper); min-width: 0; }
.schedule-availability-label { font-size: 10px; color: var(--muted); }
.schedule-availability-row { display: flex; flex-direction: column; gap: 4px; max-height: 118px; overflow: auto; }
.schedule-availability-chip { display: flex; flex-wrap: wrap; gap: 3px 8px; align-items: center; padding: 5px 7px; min-height: 30px; min-width: 0; max-width: 100%; text-align: left; border: 1px dashed var(--calendar-color, #94600a); border-radius: 5px; color: var(--ink); background: var(--calendar-bg, #fff2ce); }
.schedule-availability-chip strong, .schedule-availability-chip span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.schedule-availability-chip span { font-size: 10px; opacity: .8; }
.schedule-resource-availability { position: absolute; top: 4px; left: 6px; right: 6px; display: flex; gap: 4px; overflow-x: auto; max-height: 34px; z-index: 2; }
.schedule-resource-availability .schedule-availability-chip { flex: 0 0 auto; max-width: 230px; }
.schedule-view .schedule-resource-job { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto minmax(0, 1fr); gap: 4px; padding: 8px 10px; box-sizing: border-box; }
.schedule-view .schedule-resource-job .schedule-resource-job-top, .schedule-view .schedule-resource-job .schedule-card-customer { display: block; min-width: 0; }
.schedule-view .schedule-resource-job .schedule-card-customer, .schedule-view .schedule-resource-job .schedule-card-time, .schedule-view .schedule-resource-job .schedule-card-title { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; line-height: 1.3; max-width: 100%; }
.schedule-view .schedule-resource-job .schedule-card-customer { font-size: 12px; }
.schedule-view .schedule-resource-job .schedule-card-time { font-size: 11px; }
.schedule-view .schedule-resource-job .schedule-card-title { font-size: 10px; }
.schedule-view .schedule-resource-job .schedule-crew-indicator { position: absolute; left: auto; right: 5px; bottom: 4px; }
.schedule-arrival-review { margin: 12px 16px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; min-width: 0; }
.schedule-arrival-review legend { font-weight: 800; font-size: 14px; }
.schedule-arrival-review label { display: grid; gap: 5px; min-width: 0; }
.schedule-arrival-review input, .schedule-arrival-review select { width: 100%; min-height: 44px; box-sizing: border-box; font: inherit; color: var(--ink); border: 1px solid var(--line); border-radius: 6px; padding: 9px; background: var(--paper); }
.schedule-arrival-review p { font-size: 12px; color: var(--muted); line-height: 1.5; margin-bottom: 0; }
.schedule-arrival-review .schedule-create-timing { padding: 10px 0 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.schedule-arrival-review input[readonly] { background: var(--soft); }
.schedule-reschedule-card { max-height: 94dvh; overflow-y: auto; }
.schedule-reschedule-card .schedule-reschedule-help, .schedule-reschedule-card [data-move-error] { padding: 0 16px; }
.schedule-reschedule-card .schedule-reschedule-actions { position: sticky; bottom: 0; background: var(--paper); padding: 12px 16px; }
@media (max-width: 760px) {
  .schedule-arrival-review { margin: 8px 0; padding: 10px; }
  .schedule-arrival-review .schedule-create-timing { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .schedule-reschedule-card { width: 100%; box-sizing: border-box; }
}
