
.timeline-layout{display:block;min-width:0}
.timeline-queue{background:white;border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:12px;max-height:200px;overflow:auto}
.timeline-queue summary{cursor:pointer;font-weight:bold}
.timeline-queue button{display:inline-block;text-align:left;margin:8px;width:230px}
.timeline-queue small{display:block}.timeline-queue [aria-pressed=true]{outline:2px solid var(--teal)}
.timeline-scroll{min-width:0;overflow:auto;max-height:72vh;border:1px solid var(--border);border-radius:12px;background:white}
.timeline-grid{display:grid;grid-template-columns:170px repeat(var(--days),var(--day-width));width:max-content}
.timeline-head{position:sticky;top:0;background:#f4f7fa;z-index:5;text-align:left;border-bottom:1px solid var(--border);border-right:2px solid #cad5dd;padding-top:12px}
.timeline-head>b{display:block;padding:0 12px 12px}
.timeline-corner{left:0;z-index:7;padding:16px}
.timeline-hours{display:flex}.timeline-hours span{flex:0 0 64px;padding:6px 3px;font-size:11px;box-sizing:border-box}
.timeline-scale{position:sticky;left:0;background:white;z-index:4;border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:16px 12px;box-sizing:border-box;overflow-wrap:anywhere}
.timeline-day{position:relative;border-right:2px solid #cad5dd;border-bottom:1px solid var(--border);box-sizing:border-box;background:repeating-linear-gradient(to right,#fff 0,#fff 31px,#edf1f4 32px,#fff 33px,#fff 63px,#dfe5eb 64px)}
.timeline-slot{position:absolute;top:0;width:32px;height:100%;border:0;border-radius:0;background:transparent;padding:0}
.timeline-slot:hover{background:#e5f3ff}
.timeline-booking{position:absolute;z-index:2;text-align:left;overflow:hidden;padding:5px;font-size:11px;border:1px solid #e3c45c;border-left:3px solid var(--employee-color);background:#fff3c4;border-radius:7px;line-height:1.25;min-height:0;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}
.timeline-booking span,.timeline-booking small,.timeline-booking b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timeline-booking.done{background:#d7f5e9;border-top-color:#9bdabc}.timeline-booking[draggable=true]{cursor:grab}
@media(max-width:600px){.timeline-grid{grid-template-columns:110px repeat(var(--days),var(--day-width))}.timeline-scale{padding:10px 5px}}
