.vce { display: grid; gap: 8px; }
.vce > h3 { margin: 0; font-size: 20px; }
.vce .vce-current { margin: 0; color: #415771; overflow-wrap: anywhere; }
.vce form { display: grid; gap: 10px; }
.vce-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.vce-field { display: grid; gap: 4px; min-width: 0; font-size: 14px; font-weight: 700; }
.vce-field :is(input, select, textarea) {
  box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; padding: 6px 8px;
  border: 1px solid #aebbd0; border-radius: 8px; color: #213651; background: #fff;
  font: inherit; font-size: 16px; font-weight: 500;
}
.vce-field textarea { resize: vertical; }
.vce-availability { min-width: 0; margin: 0; padding: 7px; border: 1px solid #c7d4e3; border-radius: 9px; }
.vce-availability legend { padding: 0 4px; font-weight: 700; }
.vce-times { display: grid; grid-template-columns: repeat(auto-fit, minmax(88px, 1fr)); gap: 5px; }
.vce-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.visit-calendar-page .vce .vce-save { background: #213651; border-color: #213651; color: #fff; }
.vce .vce-message { margin: 0; color: #415771; }
.vce .vce-message:empty { display: none; }
.vce .vce-message[data-error] { padding: 8px; border-radius: 7px; background: #fff0ef; color: #84252a; }
@media (max-width: 380px) {
  .vce-fields { grid-template-columns: minmax(0, 1fr); }
}
