.calendar-day{
  padding:8px;
  position:relative;
  /* Allow job bubble corners to show (do not clip radius) */
  overflow:visible;
}
.calendar-job.calendar-job-detail{
  position:relative;
  margin:6px 0 8px;
  padding:7px 8px;
  border:1px solid rgba(7,77,117,.14);
  border-radius:14px;
  box-shadow:0 2px 4px rgba(5,43,92,.10);
  line-height:1.28;
  overflow:hidden;
  display:block;
  text-decoration:none;
  color:inherit;
  box-sizing:border-box;
  width:100%;
  max-width:100%;
}
.calendar-job.calendar-job-detail strong{font-size:11px;display:block}
.calendar-job.calendar-job-detail span{font-size:11px;margin-top:2px;display:block}
.calendar-job.calendar-job-detail .calendar-lead{margin-top:3px}
.calendar-job.status-scheduled{background:#e8f5fb}

/* Started = orange BUSY job bubble (rounded, not square bar) */
.calendar-job.status-started,
.calendar-job.is-busy{
  background:linear-gradient(145deg,#ffb347 0%,#ff8c1a 45%,#ff6a00 100%);
  border:2px solid #e65c00;
  color:#3d1f00;
  width:100%;
  max-width:100%;
  margin-left:0;
  margin-right:0;
  margin-top:6px;
  margin-bottom:8px;
  border-radius:16px;
  padding:10px 10px;
  box-shadow:
    0 3px 12px rgba(230,92,0,.32),
    inset 0 1px 0 rgba(255,255,255,.4);
  font-weight:700;
}

.calendar-job.status-completed,
.calendar-job.is-complete{background:#d9f5d0;border-color:#7cbc6a;border-radius:14px}
.calendar-job.status-cancelled{background:#fff0ef}

/* Blocked diary slot — red, not bookable */
.calendar-job.status-blocked,
.calendar-job.is-blocked{
  background:linear-gradient(145deg,#ff7a7a 0%,#e23d3d 50%,#c62828 100%);
  border:2px solid #9b1c1c;
  color:#3b0a0a;
  width:100%;
  max-width:100%;
  margin-left:0;
  margin-right:0;
  margin-top:6px;
  margin-bottom:8px;
  border-radius:16px;
  padding:10px 10px;
  box-shadow:
    0 3px 12px rgba(198,40,40,.32),
    inset 0 1px 0 rgba(255,255,255,.35);
  font-weight:700;
}
.calendar-job .calendar-blocked-stamp{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%) rotate(-12deg);
  z-index:3;
  pointer-events:none;
  text-align:center;
  color:#fff;
  font-weight:900;
  font-size:15px;
  letter-spacing:1.5px;
  line-height:1;
  text-transform:uppercase;
  white-space:nowrap;
  background:linear-gradient(180deg,#e23d3d 0%,#b3261e 100%);
  padding:6px 14px;
  border-radius:999px;
  border:2px solid #fff;
  box-shadow:
    0 2px 8px rgba(120,20,20,.45),
    0 0 0 2px rgba(179,38,30,.35);
  text-shadow:0 1px 2px rgba(80,10,10,.45);
}
.calendar-job.is-blocked strong,
.calendar-job.is-blocked > span:not(.calendar-blocked-stamp),
.calendar-job.is-blocked .calendar-team{
  opacity:.42;
  color:#3b0a0a;
}
.badge.status-blocked{
  background:#fde8e8;
  color:#8f1e18;
  border:1px solid #d92929;
}

/* Big green COMPLETE stamp */
.calendar-job .calendar-complete-stamp{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%) rotate(-18deg);
  z-index:3;
  pointer-events:none;
  color:#1f8a2e;
  font-weight:900;
  font-size:15px;
  letter-spacing:1px;
  line-height:1;
  text-transform:uppercase;
  white-space:nowrap;
  text-shadow:0 1px 0 rgba(255,255,255,.85);
  opacity:.92;
}

/* Big orange BUSY stamp for started jobs */
.calendar-job .calendar-busy-stamp{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%) rotate(-12deg);
  z-index:3;
  pointer-events:none;
  text-align:center;
  color:#fff;
  font-weight:900;
  font-size:16px;
  letter-spacing:2px;
  line-height:1;
  text-transform:uppercase;
  white-space:nowrap;
  background:linear-gradient(180deg,#ff7a00 0%,#e65c00 100%);
  padding:6px 16px;
  border-radius:999px;
  border:2px solid #fff;
  box-shadow:
    0 2px 8px rgba(180,60,0,.45),
    0 0 0 2px rgba(230,92,0,.35);
  text-shadow:0 1px 2px rgba(100,30,0,.45);
  opacity:1;
}
.calendar-job.is-busy strong,
.calendar-job.is-busy > span:not(.calendar-busy-stamp),
.calendar-job.is-busy .calendar-team{
  opacity:.38;
  color:#3d1f00;
}
.calendar-job.is-complete strong,
.calendar-job.is-complete > span:not(.calendar-complete-stamp),
.calendar-job.is-complete .calendar-team{
  opacity:.45;
}

@media (min-width:900px){
  .calendar-job .calendar-complete-stamp{font-size:17px;letter-spacing:1.5px}
  .calendar-job .calendar-busy-stamp{font-size:18px;letter-spacing:2.5px;padding:7px 18px}
}
