  /* ── Calendar ── */
  .cal-header { display:flex; align-items:center; gap:16px; margin-bottom:20px; }
  .cal-month { font-family:'Cormorant Garamond', serif; font-size:28px; font-weight:300; }
  .cal-nav { display:flex; gap:6px; }
  .cal-nav button { width:32px; height:32px; border-radius:4px; border:1px solid var(--border); background:var(--surface); color:var(--text-dim); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:16px; transition:all 0.1s; }
  .cal-nav button:hover { border-color:var(--accent); color:var(--accent); }
  .cal-grid { display:grid; grid-template-columns:repeat(7, 1fr); gap:1px; background:var(--border); border:1px solid var(--border); border-radius:8px; overflow:hidden; }
  .cal-day-name { background:var(--panel); padding:10px; text-align:center; font-size:10px; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted); }
  .cal-cell { background:var(--surface); min-height:130px; padding:10px 8px 8px; cursor:pointer; transition:background 0.1s; position:relative; }
  .cal-cell:hover { background:#faf9f7; }
  .cal-cell.today { background:#f0f4f0; }
  .cal-cell.today .cal-date { color:var(--accent); font-weight:600; }
  .cal-cell.other-month { background:var(--panel); }
  .cal-cell.other-month .cal-date { color:var(--muted); opacity:0.5; }
  .cal-date { font-size:13px; color:var(--text-dim); margin-bottom:5px; }

  /* Calendar event chips — colour palette for visual variety */
  .cal-event { font-size:11px; padding:4px 7px; border-radius:3px; margin-top:3px; cursor:pointer; transition:opacity 0.1s; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-weight:600; letter-spacing:0.01em; }
  .cal-event:hover { opacity:0.85; }
  .cal-event.has-receipt { outline:2px solid var(--warning); outline-offset:-1px; }

  /* Rotating palette for event chips */
  .cal-event.chip-0 { background:#3a5c32; }
  .cal-event.chip-1 { background:#2a527a; }
  .cal-event.chip-2 { background:#7a3e20; }
  .cal-event.chip-3 { background:#5c3a7a; }
  .cal-event.chip-4 { background:#1a6b58; }
  .cal-event.chip-5 { background:#8b3a1a; }
  .cal-event.chip-6 { background:#2a4e6e; }

  /* ── Availability blocker ── */
  .cal-cell.cal-blocked { background:#fff0f0 !important; cursor:pointer; }
  .cal-cell.cal-blocked:hover { background:#ffe4e4 !important; }
  .cal-cell.cal-blocked.today { background:#ffe8e8 !important; }
  .cal-blocked-label { display:flex; align-items:center; gap:5px; margin-top:6px; font-size:10px; color:#c0392b; font-weight:600; letter-spacing:0.02em; background:#fdd; border-radius:3px; padding:3px 6px; }
  .cal-blocked-x { font-size:10px; font-weight:700; }
  .cal-cell.cal-blocked .cal-date { color:#c0392b; }

  @media (max-width: 640px) {
    .cal-header { flex-wrap: wrap; gap: 8px; }
    .cal-month  { font-size: 22px; }
    .cal-cell   { min-height: 68px; padding: 6px 4px 4px; }
    .cal-date   { font-size: 11px; }
    .cal-event  { font-size: 9px; padding: 3px 4px; }
    .weather-panel { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .weather-grid  { grid-template-columns: repeat(7, minmax(90px, 1fr)); min-width: 630px; }
  }
