.vaPage {
  max-width: 1220px;
  margin: auto;
}
.vaHeader,
.vaLaunch,
.vaSetup {
  display: flex;
  justify-content: space-between;
  gap: 22px;
  align-items: center;
}
.vaHeader {
  margin: 24px 0;
}
.vaHeader h2 {
  font-size: clamp(28px, 4vw, 42px);
  margin: 5px 0;
  color: #173f43;
}
.vaHeader p,
.vaLaunch p,
.vaSetup p {
  margin: 8px 0;
  color: #5e6470;
}
.vaSetup {
  background: #eef8f5;
  border-color: #b8d9cc;
  margin-bottom: 24px;
}
.vaFilters {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 16px;
  margin: 20px 0;
}
.vaFilters label {
  flex: 1;
  min-width: 150px;
  font-weight: 600;
  font-size: 14px;
}
.vaFilters select {
  display: block;
  margin-top: 6px;
  width: 100%;
  padding: 12px;
  border: 1px solid #d2d8d6;
  border-radius: 10px;
  background: white;
  color: #173f43;
}
.vaColumns {
  display: grid;
  grid-template-columns: minmax(320px, 1fr) minmax(300px, 1fr);
  gap: 24px;
  align-items: start;
}
.vaCalendar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 5px;
  margin: 18px 0;
}
.vaDow {
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  color: #596b69;
  padding: 8px 0;
}
.vaDay {
  border: 1px solid #e4e9e6;
  border-radius: 10px;
  background: #fcfcf8;
  min-height: 65px;
  text-align: left;
  padding: 8px;
  cursor: pointer;
  color: #284c4d;
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}
.vaDay span {
  font-size: 11px;
  color: #00756d;
}
.vaDay.vaSelected {
  border: 2px solid #237b73;
  background: #e4f4ee;
}
.vaCount {
  font-size: 14px;
  padding: 4px 10px;
  border-radius: 20px;
  background: #e4f4ee;
}
.vaVisit {
  margin-bottom: 15px;
  border-left: 4px solid #298078;
}
.vaVisitTop {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.vaType,
.vaStatus {
  border-radius: 20px;
  padding: 6px 10px;
  font-weight: 650;
  font-size: 12px;
  display: inline-block;
}
.vaType {
  color: #176b66;
  background: #e4f4ee;
}
.vaType.tasting {
  color: #844f24;
  background: #fff0db;
}
.vaStatus {
  background: #f0edf6;
  color: #55436a;
}
.vaStatus.pending {
  color: #76531b;
  background: #fff3d8;
}
.vaStatus.confirmed,
.vaStatus.completed {
  color: #235d45;
  background: #e1f2e4;
}
.vaStatus.cancelled,
.vaStatus.declined,
.vaStatus.no_show {
  color: #6b5d5d;
  background: #f3eeee;
}
.vaEmpty {
  text-align: center;
  padding: 35px 22px;
}
.vaEditor {
  max-width: 700px;
  margin: auto;
}
.vaEditor form {
  margin-top: 18px;
}
.vaFormGrid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.vaEditor .field input,
.vaEditor .field select,
.vaEditor .field textarea {
  width: 100%;
  box-sizing: border-box;
  max-width: 100%;
}
.vaHours {
  display: grid;
  grid-template-columns: 1.25fr 1fr 1fr;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #eee;
  align-items: center;
}
.vaHours input[type='time'] {
  min-width: 0;
  max-width: 100%;
  width: 100%;
  padding: 10px 4px;
}
.vaHours label {
  min-width: 0;
}
.vaHours span {
  display: block;
  font-size: 12px;
}
.vaCheck {
  display: flex !important;
  gap: 8px;
  align-items: center;
}
.vaCheck input {
  width: 18px !important;
  height: 18px;
}
.vaNotes {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.vaEditor [role='alert'] {
  color: #a63031;
}
.vaVisit p {
  overflow-wrap: anywhere;
}
.vaPage button:focus-visible,
.vaEditor button:focus-visible {
  outline: 3px solid #a75b26;
  outline-offset: 3px;
}
@media (max-width: 760px) {
  .vaColumns {
    grid-template-columns: 1fr;
  }
  .vaHeader,
  .vaLaunch,
  .vaSetup {
    align-items: stretch;
    flex-direction: column;
  }
  .vaHeader .btn,
  .vaLaunch .btn {
    width: 100%;
  }
  .vaFormGrid {
    grid-template-columns: 1fr;
  }
  .vaDay {
    min-height: 54px;
    padding: 6px;
  }
  .vaDayWord {
    display: none;
  }
  .vaFilters {
    gap: 10px;
  }
  .vaHours {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px;
  }
  .vaHours .vaCheck {
    font-size: 13px;
  }
  .vaVisitTop {
    gap: 6px;
  }
}
.vaPage .calendarHead {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}
.vaPage .calendarHead h3 {
  margin: 0;
  text-align: center;
}
.vaPage .calendarHead .btn {
  flex-shrink: 0;
}
