.form-group label:has(input[type="radio"]):last-child,.calendar-day-header:last-child{border-right:none;}
.event-item.urgent .event-icon,.calendar-event-modal-close:hover{
 color:var(--danger);
}
.note-author,.calendar-filter-group{
 display:flex;
 align-items:center;
 gap:8px;
}

/* Days Worked modal: month grid (Outlook-style) */
.days-worked-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-auto-rows: 32px;
  gap: 6px;
  align-items: stretch;
}
#calendarGrid {
  contain: layout paint;
  transform: translateZ(0);
  transition: opacity 120ms ease;
}
#calendarGrid.dw-month-switching {
  opacity: 0.8;
  pointer-events: none;
}
.days-worked-grid .day-header {
  font-weight: 600;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Sleek inputs inside Days Worked modal */
#daysWorkedModal input[type="text"],
#daysWorkedModal input[type="number"],
#daysWorkedModal input[type="date"],
#daysWorkedModal select,
#daysWorkedModal textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid #e2e8f0;            /* soft border */
  border-radius: 8px;                    /* rounded */
  background: #f8fafc;                   /* subtle background */
  color: #0f172a;
  outline: none;                         /* custom focus */
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.04);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
#daysWorkedModal input[type="text"]:focus,
#daysWorkedModal input[type="number"]:focus,
#daysWorkedModal input[type="date"]:focus,
#daysWorkedModal select:focus,
#daysWorkedModal textarea:focus {
  border-color: #94a3b8;                 /* slate-400 */
  background: #ffffff;
  box-shadow: 0 0 0 3px rgba(148,163,184,0.25), inset 0 1px 2px rgba(0,0,0,0.05);
}
#daysWorkedModal select {
  appearance: none;                      /* cleaner native select */
  background-image: linear-gradient(45deg, transparent 50%, #64748b 50%),
                    linear-gradient(135deg, #64748b 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
}
#daysWorkedModal ::placeholder { color:#94a3b8; }

/* =============================
   Main Calendar (Google-style)
   ============================= */

/* Controls */
.calendar-controls{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  margin: 8px 0 16px 0;
}
.calendar-view-selector label{ font-weight:600; margin-right:6px; }
.calendar-filters{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.calendar-save-search{ margin-left:auto; }

/* Sleek controls: override any heavy borders from global form styles */
.calendar-controls select,
.calendar-controls input[type="text"],
.calendar-controls input[type="date"],
.calendar-controls input[type="number"],
.calendar-filters select,
.calendar-filters input[type="text"],
.calendar-filters input[type="date"],
.calendar-filters input[type="number"]{
  appearance: none;
  padding: 8px 12px;
  border: 1px solid #e2e8f0 !important; /* soft border */
  border-radius: 10px;
  background: #ffffff !important;
  color: #0f172a;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.04);
  outline: none;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.calendar-controls select:focus,
.calendar-controls input[type="text"]:focus,
.calendar-controls input[type="date"]:focus,
.calendar-controls input[type="number"]:focus,
.calendar-filters select:focus,
.calendar-filters input[type="text"]:focus,
.calendar-filters input[type="date"]:focus,
.calendar-filters input[type="number"]:focus{
  border-color: #94a3b8 !important; /* slate-400 */
  background:#fff;
  box-shadow: 0 0 0 3px rgba(148,163,184,0.22), inset 0 1px 2px rgba(0,0,0,0.05);
}

/* Navigation */
.calendar-navigation{
  display:flex;
  align-items:center;
  gap:12px;
  margin: 8px 0 16px 0;
}
.calendar-month-title{ margin:0; font-size:20px; font-weight:700; color:#0f172a; }

/* Compact icon-only nav buttons */
.calendar-navigation .btn.btn-secondary{
  width: 38px;
  height: 36px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
}

/* Grid container */
.calendar-grid-container{
  background:#ffffff;
  border:1px solid #e2e8f0;
  border-radius:10px;
  overflow:hidden;
  box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}

/* 7-column grid: always exactly 7 equal columns spanning full width.
 * minmax(0, 1fr) means each column can shrink to zero — no horizontal overflow.
 * This guarantees the 7 days always fill the available screen width. */
.calendar-grid{
  display:grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  grid-auto-rows: minmax(120px, auto);
  border-top:1px solid #e2e8f0;
}

/* Headers */
.calendar-day-header{
  padding:10px 12px;
  background:#f8fafc;
  border-right:1px solid #e2e8f0;
  border-bottom:1px solid #e2e8f0;
  font-weight:600;
  color:#334155;
}
.calendar-day-header:first-child{ border-left: none; }

/* Day cell */
.calendar-day-cell{
  position:relative;
  padding:8px 8px 6px 8px;
  border-right:1px solid #e2e8f0;
  border-bottom:1px solid #e2e8f0;
  min-height:140px;
  background:#ffffff;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.calendar-day-cell.other-month{ background:#fafafa; color:#64748b; }
.calendar-day-cell.today{ outline:2px solid #3b82f6; outline-offset:-2px; background:#f0f7ff; }

.calendar-day-number{
  font-weight:700;
  color:#0f172a;
}
.calendar-day-cell.other-month .calendar-day-number{ color:#64748b; }

/* Events container */
.calendar-events{ display:flex; flex-direction:column; gap:4px; overflow:auto; }

/* Event pill */
.calendar-event{
  display:block;
  width:100%;
  font-size:12px;
  line-height:1.2;
  padding:6px 8px;
  border-radius:6px;
  /* Frosted glass default — soft blue-indigo tint */
  background: rgba(238, 242, 255, 0.55);
  backdrop-filter: blur(10px) saturate(1.4);
  -webkit-backdrop-filter: blur(10px) saturate(1.4);
  color:#1e293b;
  border:1px solid rgba(199, 210, 254, 0.45);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.55), 0 1px 3px rgba(0,0,0,0.06);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  cursor:pointer;
  transition: transform .10s ease, box-shadow .15s ease, background .15s ease;
  will-change: transform;
}
.calendar-event:hover{
  transform:translateY(-1px);
  background: rgba(238, 242, 255, 0.75);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.70), 0 4px 12px rgba(0,0,0,0.10);
}

/* ── Event types: tinted frosted glass — hue preserved, opacity varies ── */
/* Cyan tint: temp candidate (lightest — low visual weight) */
.calendar-event.temp-candidate{
  background: rgba(207, 250, 254, 0.50);
  border-color: rgba(103, 232, 249, 0.42);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.60), 0 1px 4px rgba(6,182,212,0.08);
}
/* Yellow tint: group placement */
.calendar-event.group-placement{
  background: rgba(254, 249, 195, 0.55);
  border-color: rgba(250, 204, 21, 0.40);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.60), 0 1px 4px rgba(234,179,8,0.08);
}
/* Green tint: permanent start */
.calendar-event.permanent-start{
  background: rgba(220, 252, 231, 0.52);
  border-color: rgba(74, 222, 128, 0.42);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.60), 0 1px 4px rgba(34,197,94,0.08);
}
/* Red tint: invoice due */
.calendar-event.invoice-due{
  background: rgba(254, 226, 226, 0.58);
  border-color: rgba(248, 113, 113, 0.42);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.55), 0 1px 4px rgba(239,68,68,0.08);
}
/* Pink-red tint: compliance expiry (normal) */
.calendar-event.compliance-expiry{
  background: rgba(255, 228, 230, 0.55);
  border-color: rgba(251, 113, 133, 0.40);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.55), 0 1px 4px rgba(244,63,94,0.08);
}
/* Amber tint: compliance warning (lighter opacity = lower urgency) */
.calendar-event.compliance-expiry.warning{
  background: rgba(255, 247, 237, 0.50);
  border-color: rgba(251, 191, 36, 0.38);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.55), 0 1px 4px rgba(245,158,11,0.07);
}
/* Critical red: most opaque — communicates urgency via density */
.calendar-event.compliance-expiry.critical{
  background: rgba(254, 202, 202, 0.72);
  border-color: rgba(239, 68, 68, 0.60);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.45), 0 2px 8px rgba(239,68,68,0.15);
}

/* Group placement parent/child */
.calendar-event.group-placement.parent{
  background: rgba(254, 243, 199, 0.68); /* slightly more opaque = heavier visual weight */
  border-color: rgba(251, 191, 36, 0.48);
  font-weight:600;
}
.calendar-event.group-placement .group-parent-header{ display:flex; align-items:center; gap:8px; }
.calendar-event.group-placement .gp-toggle{ font-size:12px; }
.calendar-event.group-placement .gp-title{ font-weight:600; }
.calendar-event.group-placement .gp-children{ margin-top:6px; display:none; }
.calendar-event.group-placement.child{
  background: rgba(255, 247, 237, 0.50); /* children lighter than parent */
  border-color: rgba(251, 146, 60, 0.35);
  font-weight:500;
}

/* Legend — frosted swatches matching event types */
.calendar-legend{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding:10px 0;
}
.calendar-legend .legend-item{ display:flex; align-items:center; gap:6px; font-size:12px; color:#334155; }
.calendar-legend .swatch{
  width:12px; height:12px; border-radius:3px; display:inline-block;
  border:1px solid rgba(0,0,0,0.08);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.45);
}
.legend-temp .swatch{     background: rgba(207,250,254,0.65); border-color: rgba(103,232,249,0.45); }
.legend-group .swatch{    background: rgba(254,249,195,0.70); border-color: rgba(250,204,21,0.42); }
.legend-perm .swatch{     background: rgba(220,252,231,0.65); border-color: rgba(74,222,128,0.45); }
.legend-invoice .swatch{  background: rgba(254,226,226,0.70); border-color: rgba(248,113,113,0.45); }
.legend-compliance .swatch{ background: rgba(255,228,230,0.68); border-color: rgba(251,113,133,0.42); }

/* Force-visible body tweaks (avoid sidebar pushing) */
body.calendar-force-visible #calendar.section{ display:block !important; }

/* Responsive: always 7 equal-width columns, cells shrink gracefully */
@media (max-width: 900px){
  .calendar-day-cell{ min-height:90px; font-size:11px; }
  .calendar-event{ font-size:10px; padding:3px 5px; }
}
@media (max-width: 700px){
  .calendar-controls, .calendar-navigation{ gap:8px; }
  .calendar-day-cell{ min-height:60px; padding:2px; }
  .calendar-day-number{ font-size:11px; }
  .calendar-event{ font-size:9px; padding:2px 4px; }
}