html,body,.app-shell,main,.view{max-width:100%;min-width:0}
.scheduler-date-bar,.scheduler-date-center,.scheduler-top-grid,.scheduler-summary-panel,.timeline-panel,.timeline-scroll{min-width:0;max-width:100%}
.timeline-scroll{width:100%;overscroll-behavior-inline:contain}
.scheduler-date-bar>*{min-width:0}
@media(max-width:900px) and (min-width:601px){.timeline{min-width:560px}}
@media(max-width:760px) and (min-width:601px){.timeline-scroll{overflow-x:auto}.timeline{min-width:520px}.timeline-hours{width:72px}.timeline-grid{left:72px}.timeline-items{left:84px}.timeline-now{left:62px}}
@media(max-width:600px){
  .scheduler-heading{gap:18px}.scheduler-heading .button{width:100%}
  .scheduler-date-bar{display:block}.scheduler-date-center{padding:18px 12px}.scheduler-date-center h2{margin-bottom:13px;font-size:1.6rem}
  .scheduler-adjacent{display:none}
  .scheduler-controls{display:grid;grid-template-columns:44px minmax(96px,1fr) 44px;gap:7px}.scheduler-controls .icon-button,.scheduler-controls .button{width:100%;min-width:0}
  .scheduler-top-grid{gap:12px}.scheduler-summary-panel{padding:16px}.scheduler-summary-list{grid-template-columns:1fr}
  .timeline-panel{overflow:hidden;border-radius:12px}.timeline-heading{padding:16px}.timeline-heading h2{font-size:1.25rem}
  .timeline-scroll{max-height:none;overflow:visible;overscroll-behavior:auto;touch-action:pan-y}
  .timeline{--hour-height:56px;width:100%;min-width:0}
  .timeline-hours{width:54px}.timeline-hour-label{padding:7px 8px;font-size:.6rem}
  .timeline-grid{left:54px;background-size:auto,50% 100%}
  .timeline-items{right:5px;left:60px}
  .timeline-now{left:48px}
  .timeline-empty{right:10px;left:10px;padding:18px 12px}
  .timeline-block{min-width:0;padding:5px 7px;border-radius:6px}
  .timeline-block span,.timeline-block strong,.timeline-block small{white-space:normal}
  .timeline-block-time{font-size:.56rem;line-height:1.15}
  .timeline-block strong{display:-webkit-box;font-size:.7rem;line-height:1.2;-webkit-box-orient:vertical;-webkit-line-clamp:2}
  .timeline-block small{display:none}
  .timeline-block.crowded{top:calc(var(--start-minute) / 60 * var(--hour-height) + var(--stack-row) * 30px);width:calc(50% - 4px);height:max(38px,calc(var(--duration-minute) / 60 * var(--hour-height) - 2px))}
  .timeline-block.crowded.lane-even{left:2px}.timeline-block.crowded.lane-odd{left:calc(50% + 2px)}
  .timeline-block.crowded:after{position:absolute;right:4px;bottom:3px;color:currentColor;font-size:.52rem;font-weight:900;content:"overlap";opacity:.62}
}
