.rex-events { margin: 1.5em 0; }
.rex-field { margin: 0 0 1em 0; }
.rex-field label { display:block; margin: 0 0 .35em 0; font-weight: 600; }
.rex-field input[type="text"],
.rex-field input[type="datetime-local"],
.rex-field textarea { width: 100%; max-width: 100%; }

.rex-actions button { cursor:pointer; }

.rex-events-calendar__dow,
.rex-events-calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .35rem;
}

.rex-events-calendar__dow > div {
  font-weight: 600;
  opacity: .8;
  text-align: center;
}

.rex-day {
  padding: .6rem .25rem;
  text-align: center;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(0,0,0,.02);
  border-radius: 6px;
}

button.rex-day { width: 100%; }
.rex-day--empty { background: transparent; border: none; }
.rex-day--has { background: rgba(0,0,0,.04); }
.rex-day--active { outline: 2px solid rgba(0,0,0,.25); }

.rex-events-list { list-style: none; margin: .75em 0 0 0; padding: 0; }
.rex-events-item { padding: .65em 0; border-bottom: 1px solid rgba(0,0,0,.08); }
.rex-events-title { font-weight: 700; }
.rex-events-meta { opacity: .85; margin-top: .2em; }

.rex-events-message { padding: .75em 1em; border-radius: 8px; margin-bottom: 1em; }
.rex-events-message--success { background: #e7f6ea; }
.rex-events-message--turnstile_failed,
.rex-events-message--missing_required,
.rex-events-message--insert_failed { background: #fdecea; }