.profile-calendar { --calendar-gap: clamp(3px,1.3vw,8px); }
.profile-calendar-heading { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:10px; margin-bottom:12px; }
.profile-calendar-heading h2 { margin:0; }
.profile-calendar-controls { display:flex; align-items:center; gap:5px; max-width:100%; }
.profile-calendar-controls button { flex:none; width:44px; padding-inline:0; font-size:22px; }
.profile-calendar-controls input { min-width:0; width:clamp(126px,42vw,175px); }
.profile-calendar-weekdays,.profile-calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:var(--calendar-gap); max-width:525px; }
.profile-calendar-weekdays { color:var(--muted); font-size:12px; text-align:center; margin-bottom:5px; }
.profile-calendar-days { list-style:none; padding:0; margin:0; }
.profile-calendar-day {
  display:grid; place-items:center; position:relative; aspect-ratio:1; min-width:0;
  border:1px solid var(--line); border-radius:clamp(6px,2vw,12px);
  background:#24243c; color:var(--ink); font-size:clamp(13px,3.4vw,17px); font-variant-numeric:tabular-nums;
}
.profile-calendar-day.is-present { color:#c4ffe6; border-color:#368768; background:#16463e; font-weight:700; }
.profile-calendar-tick { position:absolute; right:3px; top:2px; color:#7ef0b9; font-size:clamp(8px,2.1vw,12px); line-height:1; }
.profile-calendar-legend { display:flex; align-items:center; gap:6px; margin:12px 0 0; color:var(--muted); font-size:13px; }
.profile-calendar-legend span { color:#7ef0b9; font-weight:700; }