/* Visit state should read as information, not a row of SaaS badges. */
.timeline-summary-right .status-pill{display:inline-flex;align-items:center;gap:6px;padding:0;border-radius:0;background:transparent;color:var(--muted);font-size:.75rem;line-height:1.4;font-weight:600}
.timeline-summary-right .status-pill::before{display:none}
.timeline-summary-right .status-en_route{background:transparent;color:#8a7047}
.timeline-summary-right .status-on_site{background:transparent;color:var(--green);font-weight:700}
.timeline-summary-right .status-complete{background:transparent;color:#476457}
.timeline-summary-right .status-cancelled{background:transparent;color:#8f3733}
.timeline-summary-right .status-en_route::before,.timeline-summary-right .status-on_site::before,.timeline-summary-right .status-complete::before,.timeline-summary-right .status-cancelled::before{content:"";display:block;width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:currentColor;opacity:.72}
.timeline-summary-right .status-on_site::before{opacity:1}

/* Claude diary readability pass: overlapping visits remain separate tappable rows. */
.diary-calendar-overlap-group{position:absolute;left:3px;right:3px;z-index:3;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:9px;overflow:hidden}
.diary-calendar-overlap-group.is-clash{border-color:var(--red,#b4433f)}
.diary-calendar-overlap-group.is-multi-onsite{border-color:var(--brand-gold,#c7a76a)}
.diary-calendar-overlap-group.is-parallel{border-color:var(--line)}
.diary-calendar-overlap-title{height:22px;flex:0 0 22px;padding:3px 8px;background:#f6e7e4;color:var(--red,#b4433f);font-weight:700;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.diary-calendar-overlap-group.is-multi-onsite .diary-calendar-overlap-title{background:#f2e8d3;color:#83663a}
.diary-calendar-overlap-group.is-parallel .diary-calendar-overlap-title{background:#f1efe9;color:#5f6560;font-weight:600}
.diary-calendar-overlap-group .diary-calendar-event.is-grouped{position:absolute;right:auto;width:100%!important;height:42px!important;min-height:42px;margin:0;border-radius:0;box-shadow:none;border-left:3px solid transparent;padding:3px 8px;overflow:hidden}
.diary-calendar-overlap-group .diary-calendar-event.is-grouped+.diary-calendar-event.is-grouped{border-top:1px solid var(--line)}
.diary-calendar-overlap-group .diary-calendar-event.is-grouped strong{order:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.diary-calendar-overlap-group .diary-calendar-event.is-grouped span{order:1;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.diary-calendar-overlap-group .diary-calendar-event.is-grouped small{display:none}
.diary-calendar-overlap-group.is-multi-onsite .diary-calendar-event.is-grouped{background:#fbf7ee}
.diary-calendar-outside{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--surface,#f7f5ef);border-bottom:1px solid var(--line);overflow-x:auto}
.diary-calendar-outside>strong{font-size:12px;white-space:nowrap}
.diary-calendar-outside .diary-calendar-event{position:relative!important;inset:auto!important;left:auto!important;top:auto!important;right:auto!important;width:auto!important;min-width:145px;min-height:50px;height:auto!important;flex:0 0 auto}
.diary-calendar-outside .calendar-outside-day{order:-2;display:block;font-style:normal;font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--muted)}
.diary-calendar-event>strong{order:-1}
.diary-calendar-event.has-clash:not(.is-closed) {border-left-color:var(--red,#b4433f)}

/* Claude phone diary: legible day-list and a direct route to jobs to book. */
.diary-mobile-to-book{display:none}
@media(max-width:759px){
 .diary-v2 .diary-mobile-to-book{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:7px 10px;border:1px solid #e1dccf;border-radius:9px;color:#83663a;background:#fbf7ee;text-decoration:none;font-size:13px;font-weight:700;white-space:nowrap}
 .diary-v2 .diary-day-heading{gap:10px;flex-wrap:wrap}
 .diary-v2 .diary-entry-row{min-width:0}
 .diary-v2 .diary-entry-customer{font-size:17px;line-height:1.3;white-space:normal;overflow-wrap:anywhere}
 .diary-v2 .diary-entry-location{font-size:13px;white-space:normal;overflow-wrap:anywhere}
 .diary-v2 .diary-entry-card{min-height:66px}
 .diary-v2 #diary-to-book{scroll-margin-top:100px}
 .diary-v2 #diary-to-book .diary-unscheduled-item{min-height:52px}
}

/* Keep live booking actions; position the existing To book queue beside week view. */
.diary-week-with-queue{display:block;min-width:0}
.diary-week-primary{min-width:0}
.diary-week-queue{display:none}
@media(min-width:1320px){
 .diary-v2 .diary-week-with-queue{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:16px;align-items:start}
 .diary-v2 .diary-week-queue{display:block;position:sticky;top:16px;min-width:0}
 .diary-v2 .diary-week-queue .diary-side-section{margin:0}
 .diary-v2 .diary-week-queue .diary-unscheduled-list{display:grid;gap:8px}
 .diary-v2 > .diary-calendar-unscheduled{display:none}
}

/* Phone agenda: give time, customer and visit controls a clear hierarchy.
   Presentation only — live diary actions and record state are untouched. */
@media(max-width:759px){
 .diary-v2 .diary-day-main{min-width:0}
 .diary-v2 .diary-schedule-list{min-width:0}
 .diary-v2 .diary-entry-row{display:grid;grid-template-columns:58px minmax(0,1fr);column-gap:9px;align-items:start}
 .diary-v2 .diary-entry-time{min-width:0;text-align:left;padding-top:15px}
 .diary-v2 .diary-entry-time strong{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
 .diary-v2 .diary-entry-time span{font-size:11px;white-space:normal;overflow-wrap:anywhere}
 .diary-v2 .diary-entry-rail{display:none}
 .diary-v2 .diary-entry-detail{min-width:0}
 .diary-v2 .diary-entry-card{padding:12px;min-height:74px}
 .diary-v2 .diary-entry-topline{gap:8px;flex-wrap:wrap}
 .diary-v2 .diary-entry-meta{flex-wrap:wrap;gap:5px 10px}
 .diary-v2 .diary-linked-job .btn,
 .diary-v2 .diary-move-button{min-height:44px}
 .diary-v2 .diary-entry-card:focus-visible,
 .diary-v2 .diary-mobile-to-book:focus-visible,
 .diary-v2 .diary-unscheduled-item:focus-visible{outline:3px solid var(--brand-gold,#c7a76a);outline-offset:3px}
}

/* On phones keep a single To book destination. The per-day sidebar repeats
   the same queue and otherwise forces unnecessary scrolling. */
@media(max-width:759px){
 .diary-v2 .diary-day-side .diary-unscheduled{display:none}
 .diary-v2 .diary-calendar-unscheduled{display:block}
}

/* Only phones need the next-booking shortcut; the week grid already provides navigation. */
.diary-next-booking{display:none}
@media(max-width:759px){
 .diary-v2 .diary-next-booking{display:inline-flex;align-items:center;min-height:44px;margin:6px 12px 10px;color:#83663a;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:3px}
 .diary-v2 .diary-entry-row{scroll-margin-top:90px}
 .diary-v2 .diary-next-booking:focus-visible{outline:3px solid var(--brand-gold,#c7a76a);outline-offset:3px}
}

.diary-next-job{display:none}
@media(max-width:759px){.diary-v2 .diary-next-job{display:flex;justify-content:center;min-height:44px;margin:0 12px 12px}}

/* Phone agenda: surface true same-installer overlaps without changing booking status. */
.diary-v2 .diary-entry-clash{display:block;width:fit-content;margin-top:4px;padding:3px 7px;border-radius:5px;background:#f5e7e2;color:#963f35;font-size:.72rem;font-weight:700;line-height:1.35}
.diary-v2 .diary-entry-assignee{display:block;margin-top:4px;color:#3f453f;font-size:.75rem;font-weight:700;line-height:1.35}
