.activity-calendar{padding:28px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 16px 42px rgba(29,43,79,.08)}
.calendar-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}
.calendar-heading span{color:var(--red);font-size:12px;font-weight:800;letter-spacing:.08em}
.calendar-heading h2{margin:4px 0 0;font-size:clamp(27px,3vw,40px)}
.calendar-navigation{display:flex;align-items:center;gap:16px;padding:7px;border:1px solid var(--line);border-radius:30px;background:var(--surface)}
.calendar-navigation a{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--blue);text-decoration:none;background:#fff}
.calendar-navigation strong{min-width:130px;text-align:center;text-transform:capitalize}
.calendar-scroll{overflow-x:auto}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(112px,1fr));min-width:784px;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.calendar-weekday{padding:11px;text-align:center;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;background:var(--surface);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.calendar-day{min-height:118px;padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.calendar-day.has-activities{cursor:pointer}
.calendar-day.calendar-empty{background:#f8f9fc}
.calendar-number{display:block;margin-bottom:8px;color:var(--muted);font-size:13px;font-weight:750}
.calendar-activity-count{display:none}
.calendar-event{display:block;margin-top:5px;padding:6px 8px;border-radius:7px;color:#fff;text-decoration:none;font-size:11px;font-weight:750;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:transform .2s,box-shadow .2s}
.calendar-event:hover{color:#fff;transform:translateY(-2px);box-shadow:0 8px 18px rgba(20,30,55,.18)}
.calendar-more{display:block;width:100%;margin-top:5px;padding:3px 5px;border:0;background:transparent;color:var(--blue);font-size:11px;font-weight:800;text-align:left}
.calendar-more:hover{text-decoration:underline}
.calendar-day-modal{border:0;border-radius:20px;overflow:hidden;box-shadow:0 24px 70px rgba(18,34,64,.22)}
.calendar-day-modal .modal-header{padding:20px 22px;background:var(--surface)}
.calendar-day-modal .modal-header small{color:var(--red);font-weight:800;letter-spacing:.07em}
.calendar-day-modal-list{display:grid;gap:10px;padding:20px}
.calendar-modal-entry{position:relative;display:grid;gap:2px;padding:13px 44px 13px 15px;border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none}
.calendar-modal-entry:hover{border-color:var(--blue);background:#f7faff;color:var(--ink)}
.calendar-modal-entry .calendar-modal-type{color:var(--red);font-size:10px;font-weight:850;text-transform:uppercase}
.calendar-modal-entry strong{font-size:15px}
.calendar-modal-entry small{color:var(--muted)}
.calendar-modal-entry>i{position:absolute;right:16px;top:50%;color:var(--blue);transform:translateY(-50%)}
.calendar-event.badge-project{color:var(--ink)}
.calendar-note{padding-top:15px;color:var(--muted);font-size:13px}
@media(max-width:767px){
  .activity-calendar{padding:18px 10px}
  .calendar-heading{align-items:flex-start;flex-direction:column}
  .calendar-navigation{width:100%;justify-content:space-between}
  .calendar-scroll{width:100%;margin:0;padding:0;overflow:visible}
  .calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));width:100%;min-width:0}
  .calendar-weekday{min-width:0;padding:8px 1px;font-size:10px;text-align:center}
  .calendar-day{position:relative;min-width:0;min-height:58px;padding:7px 5px}
  .calendar-number{font-size:12px}
  .calendar-day .calendar-event,.calendar-day .calendar-more{display:none!important}
  .calendar-day.has-activities{background:linear-gradient(145deg,#fff4f5,#ffe4e7);box-shadow:inset 0 0 0 1px rgba(226,13,33,.18)}
  .calendar-day.has-activities .calendar-number{color:#a80b1a;font-weight:850}
  .calendar-activity-count{position:absolute;right:4px;bottom:5px;display:grid;width:19px;height:19px;place-items:center;border-radius:50%;background:var(--red);color:#fff;font-size:10px;font-weight:850;line-height:1;box-shadow:0 3px 8px rgba(226,13,33,.25)}
  .calendar-day.has-activities:active{background:#ffd9dd}
  .calendar-day-modal .modal-dialog{margin:.75rem}
  .calendar-companion-list{display:none}
}
.agenda-venue{display:flex;align-items:center;gap:.45rem;margin:.75rem 0;color:#245bad;font-size:.95rem}.agenda-venue i{color:#e20d21}.calendar-event small{display:block;margin-top:.18rem;font-weight:500}
.badge-entertainment{background:#e56b13;color:#fff}
