/* =========================================================
   Schedule — Round 46 Double-Booking Protection CSS

   Look-preserving. We do NOT recolor the existing scheduling_v4
   .has-conflict outline or conflict modal — Round 46 only adds
   subtle inline guidance + a small flash on hard-block.
   Mobile and desktop both benefit; the toast/warn-panel reuse
   the existing R42 panels when available.
   ========================================================= */

/* Inline tag appended to a double-booked card. Sits inside the
   card so it shares the card's red conflict outline. */
.r46-dbook-tag {
  margin-top: 6px;
  padding: 4px 8px;
  border-radius: 6px;
  background: #fff5f5;
  border: 1px solid #f1b0b0;
  color: #b03030;
  font-family: 'Barlow', sans-serif;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.3;
  white-space: normal;
  word-break: break-word;
}

/* Cards that participate in a double-book get a subtle data-attr
   hook. Existing scheduling_v4 .has-conflict outline still wins. */
.sv4-card[data-r46-double-booked="1"] {
  /* Reinforce — but do not replace — the existing conflict outline. */
  box-shadow: inset 0 0 0 1px rgba(176, 48, 48, .25);
}

/* Subtle column flash on hard-block (sibling of R42 .r42-block-flash). */
@keyframes r46BlockFlash {
  0%   { background-color: rgba(176, 48, 48, 0); }
  20%  { background-color: rgba(176, 48, 48, .14); }
  100% { background-color: rgba(176, 48, 48, 0); }
}
.sv4-col.r46-block-flash {
  animation: r46BlockFlash 700ms ease-out;
}

/* Fallback toast if R42 helper is unavailable. R42 normally hosts
   the actual toast — these styles only kick in for the fallback
   path so the user still gets visible feedback. */
.r46-hardblock-toast {
  position: fixed;
  left: 50%;
  bottom: 26px;
  transform: translateX(-50%);
  background: #b03030;
  color: #fff;
  font-family: 'Barlow', sans-serif;
  font-weight: 700;
  font-size: 13px;
  padding: 10px 16px;
  border-radius: 999px;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .22);
  z-index: 9999;
  max-width: 88vw;
  text-align: center;
}

.r46-warn-panel {
  position: fixed;
  left: 50%;
  bottom: 26px;
  transform: translateX(-50%);
  background: #fff;
  color: #1a3340;
  font-family: 'Barlow', sans-serif;
  font-weight: 600;
  font-size: 13px;
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px solid #f1b0b0;
  box-shadow: 0 12px 28px rgba(0, 0, 0, .22);
  z-index: 9999;
  max-width: 88vw;
  text-align: left;
}

/* Mobile: keep the inline tag readable but compact. */
@media (max-width: 720px) {
  .r46-dbook-tag {
    font-size: 10.5px;
    padding: 4px 7px;
  }
  .r46-hardblock-toast,
  .r46-warn-panel {
    bottom: 16px;
    font-size: 12.5px;
    max-width: 92vw;
  }
}
