/* Diary tiles (pipeline item #53, P2): the main line reads job type, customer, registration;
   the courtesy car is a small secondary marker beneath it. Tokens only (tests/design-system.test.js
   BUILT_ON_TOKENS). These rules live here and not in diary-advanced.css, the one stylesheet still
   on the not-yet-migrated list. */
.calendar-job .diary-tile-main{display:block;font-size:var(--ds-text-xs);font-weight:800;line-height:1.3;color:var(--ds-ink);overflow-wrap:anywhere}
.calendar-job.compact .diary-tile-main{font-size:var(--ds-text-xs)}
.calendar-job .diary-tile-vehicle{display:block;margin-top:2px;color:var(--ds-text-muted)}
.calendar-job .diary-courtesy-state.diary-tile-courtesy{margin-top:3px;padding:1px 6px;border:1px solid var(--ds-line);background:var(--ds-surface);color:var(--ds-text-muted);font-weight:700;opacity:.92}
.calendar-job .diary-tile-courtesy.is-allocated{border-color:var(--ds-orange-soft);color:var(--ds-orange-strong)}
.calendar-job .diary-tile-courtesy.is-pending,.calendar-job .diary-tile-courtesy.is-deferred,.calendar-job .diary-tile-courtesy.is-unavailable{border-color:var(--ds-warning-line);color:var(--ds-warning-strong)}

/* The booking slot picker (P3): full and closed slots say why and cannot be pressed. */
.booking-diary-modal .slot-grid button[disabled]{cursor:not-allowed;opacity:.75}
.booking-diary-modal .slot-reason{display:block;margin-top:4px;color:var(--ds-danger-strong);font-size:var(--ds-text-xs);font-weight:700}
.booking-diary-modal .availability-closed{margin:var(--ds-space-3) 0;padding:var(--ds-space-3);border:1px solid var(--ds-line);border-radius:var(--ds-radius);background:var(--ds-surface-alt);color:var(--ds-ink-soft)}
.booking-diary-modal .availability-error{margin:var(--ds-space-2) 0;padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius);background:var(--ds-danger-soft);color:var(--ds-danger-strong);font-weight:700}
