/* Booking and rota semantics use theme-aware colours; every meaning also has
   a visible label. Load after portal-theme.css and the feature stylesheets. */

html[data-theme] body.team-app .dy-item,
html[data-theme] body.team-app .dy-key {
  --diary-colour: var(--portal-blue);
  --diary-soft: var(--portal-blue-soft);
  border-left: 4px solid var(--diary-colour);
  background: var(--diary-soft);
  border-radius: 6px;
}
html[data-theme] body.team-app .dy-item--seated,
html[data-theme] body.team-app .dy-key--seated {
  --diary-colour: var(--portal-green);
  --diary-soft: var(--portal-green-soft);
}
html[data-theme] body.team-app .dy-item--event,
html[data-theme] body.team-app .dy-key--event {
  --diary-colour: var(--portal-purple);
  --diary-soft: var(--portal-purple-soft);
}
html[data-theme] body.team-app .dy-item--hire,
html[data-theme] body.team-app .dy-item--private-hire,
html[data-theme] body.team-app .dy-item--private-booking,
html[data-theme] body.team-app .dy-key--hire {
  --diary-colour: var(--portal-amber);
  --diary-soft: var(--portal-amber-soft);
  border-color: var(--diary-colour);
}
html[data-theme] body.team-app .dy-item .dy-item__kicker,
html[data-theme] body.team-app .dy-item .dy-event-card__time {
  color: var(--diary-colour);
}
html[data-theme] body.team-app .dy-item .dy-item__line { line-height: 1.2; }
html[data-theme] body.team-app button.dy-item:hover {
  border-color: var(--diary-colour);
  box-shadow: 0 0 0 1px var(--diary-colour);
}
html[data-theme] body.team-app button.dy-item:focus-visible {
  outline: 2px solid var(--diary-colour);
  outline-offset: 3px;
}
html[data-theme] body.team-app .dy-col.is-today .dy-col__head {
  border-top-color: var(--portal-blue);
  background: var(--portal-blue-soft);
}
html[data-theme] body.team-app .dy-col.is-today .dy-col__day { color: var(--portal-blue); }
html[data-theme] body.team-app .dy-legend {
  padding: 12px 14px;
  border: 1px solid var(--line-c);
  border-radius: 8px;
  background: var(--panel-c);
  line-height: 1.5;
}
html[data-theme] body.team-app .dy-key { width: 16px; height: 16px; border-radius: 3px; }

html[data-theme] body.team-app .bk-card {
  --booking-colour: var(--portal-blue);
  --booking-soft: var(--portal-blue-soft);
  border-left: 4px solid var(--booking-colour);
  background: var(--booking-soft);
  border-radius: 7px;
  opacity: 1;
}
html[data-theme] body.team-app .bk-card--hire {
  --booking-colour: var(--portal-amber);
  --booking-soft: var(--portal-amber-soft);
}
html[data-theme] body.team-app .bk-card--seated {
  --booking-colour: var(--portal-green);
  --booking-soft: var(--portal-green-soft);
  border-color: var(--booking-colour);
}
html[data-theme] body.team-app .bk-card--completed {
  --booking-colour: var(--portal-teal);
  --booking-soft: var(--portal-teal-soft);
}
html[data-theme] body.team-app .bk-card--no_show,
html[data-theme] body.team-app .bk-card--cancelled {
  --booking-colour: var(--portal-red);
  --booking-soft: var(--portal-red-soft);
  border-left-style: dashed;
}
html[data-theme] body.team-app .pill--confirmed { color: var(--portal-blue); background: var(--portal-blue-soft); border-color: var(--portal-blue); }
html[data-theme] body.team-app .pill--seated { color: var(--portal-green); background: var(--portal-green-soft); border-color: var(--portal-green); }
html[data-theme] body.team-app .pill--completed { color: var(--portal-teal); background: var(--portal-teal-soft); border-color: var(--portal-teal); }
html[data-theme] body.team-app .pill--hire { color: var(--portal-amber); background: var(--portal-amber-soft); border-color: var(--portal-amber); }
html[data-theme] body.team-app .pill--cancelled,
html[data-theme] body.team-app .pill--no_show { color: var(--portal-red); background: var(--portal-red-soft); border-color: var(--portal-red); }
html[data-theme] body.team-app .dy-item__clash,
html[data-theme] body.team-app .bk-card__clash { color: var(--portal-red); }

html[data-theme] body.team-app .planning-event {
  background: var(--portal-purple-soft);
  border-color: var(--line-2-c);
  border-left-color: var(--portal-purple);
}
html[data-theme] body.team-app .planning-event__title,
html[data-theme] body.team-app .planning-events-summary { color: var(--ink-c); }
html[data-theme] body.team-app .planning-event__time,
html[data-theme] body.team-app .planning-event-count { color: var(--portal-purple); }
html[data-theme] body.team-app .planning-event__type,
html[data-theme] body.team-app .planning-events-note { color: var(--muted-c); }
html[data-theme] body.team-app .planning-events-note.is-warning { color: var(--portal-amber); }

/* A shift's fill identifies its state. User-selected shift/position colours
   remain on the left edge; publication labels and dashed drafts stay visible. */
html[data-theme] body.team-app #panel-rota .rg-chip {
  --rota-state: var(--portal-green);
  --rota-soft: var(--portal-green-soft);
  border-color: var(--rota-state);
  border-left: 4px solid var(--shift-colour, var(--rota-state));
  background: var(--rota-soft);
}
html[data-theme] body.team-app #panel-rota .rg-chip--draft {
  --rota-state: var(--portal-amber);
  --rota-soft: var(--portal-amber-soft);
  border-style: dashed;
}
html[data-theme] body.team-app #panel-rota .rg-chip--open {
  --rota-state: var(--portal-blue);
  --rota-soft: var(--portal-blue-soft);
}
html[data-theme] body.team-app #panel-rota .rg-chip--flag {
  --rota-state: var(--portal-red);
  --rota-soft: var(--portal-red-soft);
}
html[data-theme] body.team-app #panel-rota .rg-chip--absent {
  --rota-state: var(--muted-c);
  --rota-soft: var(--bg-alt-c);
}
html[data-theme] body.team-app #panel-rota .rg-chip__state,
html[data-theme] body.team-app #panel-rota .rg-chip--open .rg-chip__job { color: var(--rota-state); }
html[data-theme] body.team-app #panel-rota .rg-chip--draft .rg-chip__state--publication {
  color: var(--portal-amber);
  background: var(--portal-amber-soft);
  border: 1px dashed var(--portal-amber);
  padding: 1px 4px;
  border-radius: 3px;
}
html[data-theme] body.team-app #panel-rota .rg-chip__flag,
html[data-theme] body.team-app #panel-rota .rg-chip__flag svg { color: var(--portal-red); }
html[data-theme] body.team-app #panel-rota button.rg-chip:hover { box-shadow: 0 0 0 1px var(--rota-state); }
html[data-theme] body.team-app #panel-rota button.rg-chip:focus-visible {
  outline: 2px solid var(--rota-state);
  outline-offset: 3px;
}
html[data-theme] body.team-app #panel-rota .rg-leave {
  border-color: var(--portal-purple);
  border-left: 4px solid var(--portal-purple);
  background: repeating-linear-gradient(135deg, transparent, transparent 6px, var(--portal-purple-soft) 6px, var(--portal-purple-soft) 12px), var(--panel-c);
}
html[data-theme] body.team-app #panel-rota .rg-leave__head,
html[data-theme] body.team-app #panel-rota .rg-leave__head svg { color: var(--portal-purple); }
html[data-theme] body.team-app #panel-rota .rg-drafts {
  color: var(--portal-green);
  border-color: var(--portal-green);
  background: var(--portal-green-soft);
}
html[data-theme] body.team-app #panel-rota .rg-drafts.is-draft {
  color: var(--portal-amber);
  border-color: var(--portal-amber);
  background: var(--portal-amber-soft);
}
html[data-theme] body.team-app #panel-rota .rg-th--day.is-today { background: var(--portal-teal-soft); }
html[data-theme] body.team-app #panel-rota .rg-th--day.is-today .rg-th__dow { color: var(--portal-teal); }
html[data-theme] body.team-app #panel-rota .rg-colour-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 9px 18px;
  margin: 0 0 14px;
  padding: 12px 14px;
  list-style: none;
  border: 1px solid var(--line-c);
  border-radius: 8px;
  background: var(--panel-c);
  color: var(--text-c);
  font-size: 12px;
  line-height: 1.5;
}
html[data-theme] body.team-app #panel-rota .rg-colour-legend li { display: inline-flex; align-items: center; gap: 7px; }
html[data-theme] body.team-app .rg-key { width: 15px; height: 15px; flex: none; border: 2px solid; border-radius: 3px; }
html[data-theme] body.team-app .rg-key--live { color: var(--portal-green); background: var(--portal-green-soft); }
html[data-theme] body.team-app .rg-key--draft { color: var(--portal-amber); background: var(--portal-amber-soft); border-style: dashed; }
html[data-theme] body.team-app .rg-key--open { color: var(--portal-blue); background: var(--portal-blue-soft); }
html[data-theme] body.team-app .rg-key--leave { color: var(--portal-purple); background: var(--portal-purple-soft); }
html[data-theme] body.team-app .rg-key--flag { color: var(--portal-red); background: var(--portal-red-soft); }

@media (forced-colors: active) {
  html[data-theme] body.team-app .dy-key,
  html[data-theme] body.team-app .rg-key { forced-color-adjust: auto; }
  html[data-theme] body.team-app #panel-rota .rg-chip--draft,
  html[data-theme] body.team-app .bk-card--cancelled,
  html[data-theme] body.team-app .bk-card--no_show { border-style: dashed; }
}
