/* ── Calendar widget shared styles ── */
.cal-widget {
  background: var(--w);
  border: 1px solid var(--bi);
  border-radius: var(--rxl);
  padding: 1.6rem;
}
.cal-widget-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.cal-widget-title {
  font-family: 'Playfair Display', serif;
  font-size: .98rem;
  color: var(--es);
  text-align: center;
  flex: 1;
}
.cal-nav-btn {
  background: var(--pt);
  border: 1px solid var(--bi);
  width: 30px; height: 30px;
  border-radius: 50%;
  cursor: pointer;
  color: var(--wa);
  font-size: .8rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .18s;
  font-family: inherit;
}
.cal-nav-btn:hover { background: var(--bi); }
.cal-grid-w {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  text-align: center;
}
.cdh {
  font-size: .6rem;
  font-weight: 500;
  color: var(--la);
  padding: .22rem 0;
  letter-spacing: .04em;
}
.cd {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .72rem;
  border-radius: 7px;
  cursor: pointer;
  color: var(--wa);
  transition: all .14s;
  user-select: none;
}
.cd:hover:not(.bk):not(.emp):not(.past) {
  background: var(--mo);
  color: #fff;
}
.cd.av { background: rgba(140,99,64,.08); color: var(--es); }
.cd.bk { background: rgba(184,145,106,.14); color: var(--la); text-decoration: line-through; cursor: not-allowed; }
.cd.td { outline: 1.5px solid var(--mo); font-weight: 600; color: var(--es); }
.cd.emp, .cd.past { pointer-events: none; opacity: .2; }
.cd.s1, .cd.s2 { background: var(--mo); color: #fff; font-weight: 600; }
.cd.rng { background: rgba(184,145,106,.2); color: var(--es); }
.cal-legend {
  display: flex;
  gap: 1rem;
  justify-content: center;
  margin-top: .85rem;
  font-size: .63rem;
  color: var(--wa);
  flex-wrap: wrap;
}
.ld { width: 8px; height: 8px; border-radius: 2px; display: inline-block; margin-right: 4px; vertical-align: middle; }
.ld-av { background: rgba(140,99,64,.22); }
.ld-bk { background: rgba(184,145,106,.45); }
.ld-sel { background: var(--mo); }
.cal-info-bar {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--bi);
}
.cal-promo {
  text-align: center;
  margin-top: .7rem;
  padding: .55rem .9rem;
  background: linear-gradient(90deg, rgba(39,174,96,.08), rgba(39,174,96,.14));
  border: 1px solid rgba(39,174,96,.25);
  border-radius: var(--rlg);
  font-size: .72rem;
  color: #1a7a44;
  font-weight: 500;
}
