/* Main Control Calendar: a shared daily-capacity timeline, never a second Staff Work board. */
.staff-calendar-scroll { overflow: auto; overscroll-behavior: contain; max-height: 720px; border: 1px solid #e0ddd5; border-radius: 10px; }
.capacity-calendar { display: grid; grid-template-columns: 72px minmax(920px, 1fr); min-width: 992px; background: #fffdf9; }
.calendar-time-rail { position: sticky; left: 0; z-index: 5; border-right: 1px solid #ded9d0; background: #fbfaf7; }
.calendar-time-rail h3, .capacity-calendar-main > header { box-sizing: border-box; height: 46px; margin: 0; border-bottom: 1px solid #ded9d0; background: #fbfaf7; }
.calendar-time-rail h3 { padding: 13px 10px; color: #52635e; font-size: 14px; font-weight: 800; }
.capacity-calendar-main > header { display: flex; align-items: center; gap: 12px; padding: 0 14px; color: #283c35; font-size: 14px; font-weight: 800; }
.capacity-calendar-main > header small { color: #74817a; font-size: 11px; font-weight: 600; }
.calendar-times, .capacity-calendar-track { position: relative; height: var(--track-height); }
.calendar-times span { position: absolute; right: 9px; transform: translateY(-50%); color: #65736c; font-size: 12px; font-weight: 700; }
.calendar-times span:first-child { transform: translateY(0); }
.capacity-calendar-track { --slot-height: 24px; background-color: #fffdf9; background-image: linear-gradient(to right, transparent calc(100% - 1px), #ebe6dc calc(100% - 1px)), repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--slot-height) - 1px), #eee9df calc(var(--slot-height) - 1px), #eee9df var(--slot-height)); background-position: 0 0; background-repeat: repeat-x, repeat; background-size: calc(100% / var(--lane-count)) 100%, 100% var(--slot-height); }
.capacity-calendar-event { position: absolute; z-index: 2; min-width: 0; }
.capacity-calendar-event .calendar-card { box-sizing: border-box; display: flex; width: 100%; height: 100%; min-height: 0; flex-direction: column; gap: 3px; overflow: hidden; padding: 7px 8px; border-radius: 8px; text-decoration: none; }
.capacity-calendar-event button.calendar-card { appearance: none; font: inherit; text-align: left; cursor: pointer; }
.capacity-calendar-event button.calendar-card:focus-visible { outline: 3px solid var(--orange); outline-offset: 2px; }
.capacity-calendar-event .calendar-card-top { min-height: 14px; margin-bottom: 0; font-size: 11px; }
.capacity-calendar-event .calendar-card > strong, .capacity-calendar-event .service-line, .capacity-calendar-event .calendar-card-meta, .capacity-calendar-event .due-line { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.capacity-calendar-event .calendar-card > strong { font-size: 14px; line-height: 17px; }
.capacity-calendar-event .calendar-visit-number{display:inline-block;margin-right:3px;color:var(--green);font-size:20px;font-weight:1000;line-height:1}
.capacity-calendar-event .service-line { font-size: 12px; }
.calendar-room { margin-left: 5px; color: #415b50; font-size: 11px; font-style: normal; font-weight: 800; }
.capacity-calendar-event .calendar-card-meta { display: flex; gap: 4px; margin-top: auto; font-size: 10px; }
.capacity-calendar-event .calendar-card-meta span { overflow: hidden; text-overflow: ellipsis; }
.capacity-calendar-event .calendar-card-meta span:not(:first-child), .capacity-calendar-event .due-line { display: none; }
/* Short bookings stay scannable; detail grows only with genuine duration. */
.capacity-calendar-event .calendar-card.compact { justify-content: center; gap: 0; padding-block: 4px; }
.capacity-calendar-event .calendar-card.compact .calendar-card-top, .capacity-calendar-event .calendar-card.compact .calendar-card-meta, .capacity-calendar-event .calendar-card.compact .calendar-indicators, .capacity-calendar-event .calendar-card.compact .due-line { display: none; }
.capacity-calendar-event .calendar-card.compact > strong { font-size: 13px; line-height: 16px; }
.capacity-calendar-event .calendar-card.compact .service-line { display: none; }
.capacity-calendar-event .calendar-card.standard .calendar-card-top, .capacity-calendar-event .calendar-card.standard .calendar-card-meta, .capacity-calendar-event .calendar-card.standard .calendar-indicators, .capacity-calendar-event .calendar-card.standard .due-line { display: none; }
.capacity-calendar-event .calendar-card.expanded .calendar-card-meta span:not(:first-child) { display: inline; }
.capacity-calendar-event .calendar-card.expanded .calendar-indicators, .capacity-calendar-event .calendar-card.expanded .due-line { display: inline-flex; }
.calendar-key { gap: 7px; padding-top: 2px; padding-bottom: 5px; }
.calendar-key .key-item { padding: 4px 10px; font-size: 14px; line-height: 1.15; }
.calendar-summary { border-left: 1px solid #d9e1dc; padding-left: 8px; color: #314b42; font-size: 14px; line-height: 1.15; font-weight: 850; }
.calendar-now-line { position: absolute; right: 0; left: 0; z-index: 4; border-top: 3px solid #8e44c8; pointer-events: none; }
.calendar-now-line span { position: absolute; left: 6px; top: -15px; padding: 2px 6px; border-radius: 4px; background: #8e44c8; color: #fff; font-size: 10px; font-weight: 800; }
.timeline-empty { padding: 24px; color: #68746f; }
@media (max-width: 820px) { .capacity-calendar { grid-template-columns: 60px minmax(900px, 1fr); min-width: 960px; } .calendar-time-rail h3 { padding-inline: 7px; font-size: 13px; } .capacity-calendar-main > header { padding-inline: 10px; } }
