.wpicavc {
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  max-width: 100%;
}

.wpicavc .calWrap {
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 16px;
  background: #fff;
  padding: 14px;
}

.wpicavc .calHeadRow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.wpicavc .calTitle {
  font-weight: 800;
  font-size: 16px;
}

.wpicavc .calMeta {
  font-size: 12px;
  opacity: .7;
}

.wpicavc .calLegend {
  display: flex;
  gap: 14px;
  align-items: center;
  font-size: 12px;
  opacity: .75;
  margin-bottom: 10px;
}

.wpicavc .dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  margin-right: 6px;
}

.wpicavc .dotBlocked { background: #d43b3b; }
.wpicavc .dotFree { background: #2a9d8f; }

.wpicavc .calNav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 10px 0 12px;
}

.wpicavc .calNavBtn {
  width: 40px;
  height: 36px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.10);
  background: #fff;
  font-weight: 900;
  font-size: 20px;
  cursor: pointer;
  line-height: 1;
}

.wpicavc .calNavTitle {
  flex: 1;
  text-align: center;
  font-weight: 900;
  font-size: 13px;
}

.wpicavc .calGrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

@media (max-width: 900px) {
  .wpicavc .calGrid { grid-template-columns: 1fr; }
}

.wpicavc .month {
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  padding: 10px;
  background: #fff;
}

.wpicavc .monthHead {
  font-weight: 800;
  font-size: 13px;
  margin-bottom: 8px;
}

.wpicavc .weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  font-size: 11px;
  opacity: .7;
  margin-bottom: 6px;
}

.wpicavc .weekdays > div { text-align: center; }

.wpicavc .days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.wpicavc .day {
  height: 28px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  border: 1px solid rgba(0,0,0,.08);
  background: #fff;
}

.wpicavc .blank {
  background: transparent;
  border-color: transparent;
}

.wpicavc .blocked {
  background: #d43b3b;
  border-color: #b72b2b;
  color: #fff;
  font-weight: 900;
}

.wpicavc .free {
  background: rgba(42,157,143,.08);
  border-color: rgba(42,157,143,.28);
  color: #0b4d44;
}