:root {
  --vc-ink: #302942;
  --vc-plum: #5b4669;
  --vc-lavender: #8a679c;
  --vc-mauve: #c27aa9;
  --vc-mauve-dark: #a96598;
  --vc-blush: #fff7fb;
  --vc-blush-strong: #f7e8f1;
  --vc-panel: rgba(255, 255, 255, .9);
  --vc-line: rgba(132, 86, 128, .16);
  --vc-muted: #746a78;
  --vc-soft: #fdf3f8;
  --vc-success-bg: #e9f6ef;
  --vc-success: #32765b;
  --vc-warning-bg: #fff2da;
  --vc-warning: #8d681c;
  --vc-danger-bg: #fbe9ea;
  --vc-danger: #a04650;
  --vc-shadow: 0 24px 70px rgba(74, 45, 82, .10);
  --vc-card-shadow: 0 18px 45px rgba(73, 45, 80, .07);
  --vc-radius: 16px;
  --vc-script-font: "Lobster Two", cursive;
}


/* Plans and manual renewals. */
.vc-plan-warning {
  margin: 0 0 20px;
  padding: 14px 16px;
  border: 1px solid #e4b243;
  border-radius: 8px;
  background: #fff8df;
  color: #4d3a18;
  line-height: 1.5;
}

.vc-plan-warning a {
  color: #7b326b;
  font-weight: 700;
}

.vc-plan-summary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: center;
}

.vc-plan-summary-grid h2,
.vc-plan-summary-grid p {
  margin-bottom: 8px;
}

.vc-plan-summary-grid > div:last-child {
  text-align: right;
}

.vc-plan-status {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 5px 12px;
  border-radius: 999px;
  font-weight: 800;
}

.vc-plan-status.is-active {
  background: #e8f6ed;
  color: #176b3a;
}

.vc-plan-status.is-expired {
  background: #fff0ee;
  color: #a33232;
}

.vc-plan-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin: 20px 0;
}

.vc-plan-picker {
  margin: 20px 0 28px;
}

.vc-plan-picker > .vc-muted {
  margin: 10px 0 0;
  text-align: center;
}

.vc-billing-toggle {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 150px));
  justify-content: center;
  gap: 4px;
  width: fit-content;
  max-width: 100%;
  margin: 0 auto;
  padding: 4px;
  border: 1px solid var(--vc-line);
  border-radius: 8px;
  background: #f7f3f6;
}

.vc-billing-toggle button {
  min-height: 42px;
  padding: 8px 18px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--vc-muted);
  cursor: pointer;
  font: inherit;
  font-weight: 800;
}

.vc-billing-toggle button.is-active {
  background: #fff;
  color: var(--vc-ink);
  box-shadow: 0 5px 14px rgba(75, 45, 78, .1);
}

.vc-plan-card {
  min-width: 0;
  padding: 24px;
  border: 1px solid var(--vc-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(75, 45, 78, .08);
}

.vc-plan-card.is-current {
  border-color: #c27aa9;
  box-shadow: 0 14px 34px rgba(194, 122, 169, .14);
}

.vc-plan-card h3 {
  margin: 10px 0 12px;
  font-size: 24px;
  line-height: 1.15;
  font-weight: 900;
}

.vc-plan-description {
  color: #5f5262;
  font-weight: 850;
  line-height: 1.5;
}

.vc-plan-price {
  margin: 0 0 12px;
  color: #302942;
  font-size: 32px;
  font-weight: 800;
}

.vc-plan-price small {
  font-size: 14px;
}

.vc-plan-card .vc-btn {
  width: 100%;
  margin-top: 12px;
  text-align: center;
}

.vc-plan-features {
  min-height: 174px;
  margin: 18px 0 8px;
  padding: 0;
  list-style: none;
}

.vc-plan-features li {
  position: relative;
  margin: 9px 0;
  padding-left: 22px;
  line-height: 1.4;
}

.vc-plan-features li:before {
  position: absolute;
  left: 0;
  color: #6f9638;
  content: "✓";
  font-weight: 900;
}

.vc-plan-upgrade {
  align-self: start;
}

@media (max-width: 980px) {
  .vc-plan-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .vc-plan-summary-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .vc-plan-summary-grid > div:last-child {
    text-align: left;
  }

  .vc-plan-card {
    padding: 18px;
  }

  .vc-billing-toggle {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
  }

  .vc-plan-features {
    min-height: 0;
  }

  .vc-plan-price {
    font-size: 28px;
  }
}

.vc-login-screen,
.vc-app-shell,
.vc-auth-required {
  box-sizing: border-box;
  color: var(--vc-ink);
  font-family: Inter, Arial, Helvetica, sans-serif;
}

.vc-login-screen *,
.vc-app-shell *,
.vc-auth-required * {
  box-sizing: border-box;
}

.vc-login-screen a,
.vc-app-shell a,
.vc-auth-required a {
  text-decoration: none !important;
}

.vc-login-screen img,
.vc-app-shell img,
.vc-auth-required img {
  height: auto;
  max-width: 100%;
}

.vc-app-shell button,
.vc-app-shell input,
.vc-app-shell select,
.vc-app-shell textarea,
.vc-login-screen button,
.vc-login-screen input,
.vc-login-screen select,
.vc-login-screen textarea {
  font-family: inherit;
  max-width: 100%;
  min-width: 0;
}

.vc-app-main,
.vc-panel,
.vc-stat,
.vc-profile-header,
.vc-front-form,
.vc-table-wrap,
.vc-calendar-grid,
.vc-calendar-day,
.vc-calendar-event,
.vc-agenda-card,
.vc-profile-workspace,
.vc-face-diagram {
  min-width: 0;
}

.vc-kicker {
  color: #9d6a97;
  display: block;
  font-family: var(--vc-script-font);
  font-size: 18px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .01em;
  line-height: 1.12;
  margin-bottom: 9px;
  text-transform: none;
}

.vc-btn {
  align-items: center;
  background: #fff;
  border: 1px solid var(--vc-line);
  border-radius: 10px;
  color: var(--vc-ink) !important;
  display: inline-flex;
  font-size: 14px;
  font-weight: 850;
  gap: 9px;
  justify-content: center;
  max-width: 100%;
  min-height: 42px;
  padding: 0 18px;
  text-align: center;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  white-space: normal;
}

.vc-btn:hover {
  border-color: rgba(194, 122, 169, .45);
  box-shadow: 0 12px 28px rgba(74, 45, 82, .09);
  transform: translateY(-1px);
}

.vc-btn-primary {
  background: linear-gradient(135deg, var(--vc-mauve), var(--vc-lavender));
  border-color: transparent;
  box-shadow: 0 16px 30px rgba(179, 102, 153, .22);
  color: #fff !important;
}

.vc-text-link {
  color: var(--vc-mauve);
  display: block;
  font-weight: 750;
  margin-top: 18px;
}

.vc-login-screen {
  align-items: center;
  background:
    radial-gradient(circle at 14% 22%, rgba(235, 198, 218, .74), transparent 34%),
    radial-gradient(circle at 76% 48%, rgba(255, 227, 238, .86), transparent 30%),
    linear-gradient(115deg, #fff8fb 0%, #faedf4 52%, #fff 100%);
  display: flex;
  justify-content: center;
  min-height: 78vh;
  overflow: hidden;
  padding: 56px 24px;
  position: relative;
}

.vc-login-screen:before {
  background-image:
    linear-gradient(120deg, transparent 0 72%, rgba(214, 151, 184, .18) 72.4% 72.8%, transparent 73%),
    radial-gradient(circle at 3px 3px, #f2cbdc 1px, transparent 1.8px);
  background-size: 76px 76px, 42px 42px;
  content: "";
  inset: 0;
  opacity: .32;
  position: absolute;
}

.vc-login-screen:after {
  background:
    linear-gradient(90deg, rgba(255, 255, 255, .5), rgba(232, 138, 170, .25), rgba(255, 255, 255, .5));
  border: 1px solid rgba(195, 124, 153, .22);
  border-radius: 20px 20px 34px 34px;
  bottom: 8%;
  box-shadow: 0 26px 58px rgba(95, 61, 84, .12);
  content: "";
  height: 180px;
  left: calc(50% + 190px);
  opacity: .55;
  position: absolute;
  width: 82px;
}

.vc-login-card {
  backdrop-filter: blur(14px);
  background: rgba(255, 255, 255, .88);
  border: 1px solid rgba(191, 130, 164, .22);
  border-radius: 18px;
  box-shadow: var(--vc-shadow);
  max-width: 100%;
  padding: 36px 34px 32px;
  position: relative;
  text-align: center;
  width: 390px;
  z-index: 1;
}

.vc-brand-mark {
  background: #fff url("visoclinic-logo-mark-web.jpg") center / 70px auto no-repeat;
  border-radius: 50%;
  color: transparent;
  height: 82px;
  margin: 0 auto 12px;
  overflow: hidden;
  width: 82px;
}

.vc-login-card h2 {
  color: var(--vc-ink);
  font: 400 34px/1.05 Georgia, "Times New Roman", serif;
  letter-spacing: -.4px;
  margin: 0 0 12px;
}

.vc-login-card p {
  color: var(--vc-muted);
  font-size: 14px;
  font-weight: 550;
  line-height: 1.55;
  margin: 0 0 22px;
}

.vc-login-card form {
  text-align: left;
}

.vc-login-alert {
  background: var(--vc-danger-bg);
  border: 1px solid rgba(160, 70, 80, .18);
  border-radius: 10px;
  color: var(--vc-danger);
  font-size: 13px;
  font-weight: 750;
  line-height: 1.45;
  margin: 0 0 16px;
  padding: 11px 13px;
  text-align: left;
}

.vc-login-card label {
  color: var(--vc-ink);
  display: block;
  font-size: 12px;
  font-weight: 850;
  margin: 12px 0 7px;
}

.vc-login-card input[type="text"],
.vc-login-card input[type="password"] {
  background: #fff;
  border: 1px solid #ead8e2;
  border-radius: 7px;
  color: var(--vc-ink);
  font-size: 14px;
  height: 42px;
  padding: 0 13px;
  width: 100%;
}

.vc-login-card input:focus,
.vc-front-form input:focus,
.vc-front-form select:focus,
.vc-front-form textarea:focus,
.vc-userbox select:focus,
.vc-search input:focus,
.vc-inline input:focus,
.vc-inline select:focus {
  border-color: rgba(194, 122, 169, .72);
  box-shadow: 0 0 0 3px rgba(194, 122, 169, .15);
  outline: 0;
}

.vc-login-card .login-remember label {
  align-items: center;
  color: var(--vc-muted);
  display: flex;
  font-weight: 650;
  gap: 8px;
}

.vc-login-card .button-primary {
  background: linear-gradient(135deg, var(--vc-mauve), var(--vc-lavender)) !important;
  border: 0 !important;
  border-radius: 8px !important;
  color: #fff !important;
  cursor: pointer;
  font-weight: 850;
  min-height: 43px;
  width: 100%;
}

.vc-login-help {
  font-size: 12px !important;
  margin-top: 20px !important;
}

.vc-auth-required {
  background: #fff;
  border: 1px solid var(--vc-line);
  border-radius: var(--vc-radius);
  box-shadow: var(--vc-shadow);
  margin: 60px auto;
  max-width: 620px;
  padding: 48px;
  text-align: center;
}

.vc-auth-required h2 {
  color: var(--vc-ink);
  font: 400 34px Georgia, "Times New Roman", serif;
  margin: 0 0 12px;
}

.vc-auth-required p {
  color: var(--vc-muted);
  margin-bottom: 26px;
}

.vc-app-shell {
  background:
    radial-gradient(circle at 18% 5%, rgba(246, 221, 234, .92), transparent 28%),
    linear-gradient(180deg, #fff9fc 0%, #fff 36%, #fff7fb 100%);
  display: grid;
  grid-template-columns: 268px minmax(0, 1fr);
  min-height: 100vh;
}

.vc-app-sidebar {
  background: linear-gradient(180deg, #765892 0%, #b878a4 100%);
  border-right: 1px solid rgba(255, 255, 255, .2);
  box-shadow: 20px 0 55px rgba(73, 45, 80, .08);
  color: #fff;
  display: flex;
  flex-direction: column;
  height: 100vh;
  padding: 24px 16px 20px;
  position: sticky;
  top: 0;
}

.vc-app-logo {
  align-items: center;
  color: #fff !important;
  display: grid;
  font: 400 29px/.95 Georgia, "Times New Roman", serif;
  grid-template-columns: 58px 1fr;
  letter-spacing: -.4px;
  margin: 0 8px 34px;
  min-height: 62px;
}

.vc-app-logo:before {
  background: rgba(255, 255, 255, .94) url("visoclinic-logo-mark-web.jpg") center / 50px auto no-repeat;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 50%;
  box-shadow: 0 14px 30px rgba(55, 34, 66, .16);
  content: "";
  display: block;
  grid-row: 1 / span 2;
  height: 50px;
  margin-right: 10px;
  width: 50px;
}

.vc-app-logo span {
  color: #fff;
}

.vc-app-logo-text {
  display: block;
  grid-column: 2;
}

.vc-app-logo small {
  color: rgba(255, 255, 255, .82);
  display: block;
  font-family: var(--vc-script-font);
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .01em;
  line-height: 1.1;
  padding-top: 5px;
  text-transform: none;
}

.vc-app-sidebar nav {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 7px;
  min-height: 0;
  overflow-y: auto;
  padding-bottom: 6px;
}

.vc-app-sidebar nav a {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 10px;
  color: rgba(255, 255, 255, .82) !important;
  display: flex;
  font-size: 14px;
  font-weight: 750;
  gap: 11px;
  min-height: 43px;
  padding: 0 12px;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}

.vc-app-sidebar nav a b {
  color: rgba(255, 255, 255, .85);
  font-size: 17px;
  text-align: center;
  width: 22px;
}

.vc-app-sidebar nav a:hover,
.vc-app-sidebar nav a.is-active {
  background: rgba(255, 255, 255, .18);
  border-color: rgba(255, 255, 255, .14);
  color: #fff !important;
}

.vc-app-sidebar nav a:hover {
  transform: translateX(2px);
}

.vc-app-sidebar nav .vc-sidebar-logout-link {
  background: rgba(255, 255, 255, .10);
  border-color: rgba(255, 255, 255, .14);
  margin-top: 5px;
}

.vc-app-sidebar nav .vc-sidebar-logout-link b {
  font-size: 19px;
}

.vc-sidebar-foot {
  border-top: 1px solid rgba(255, 255, 255, .18);
  color: rgba(255, 255, 255, .74);
  font-size: 12px;
  line-height: 1.7;
  margin-top: auto;
  padding: 18px 12px 0;
}

.vc-sidebar-foot a {
  color: #fff !important;
  font-weight: 800;
}

.vc-app-main {
  min-width: 0;
  padding: 0 32px 42px;
}

.vc-app-topbar {
  align-items: center;
  display: flex;
  justify-content: space-between;
  min-height: 104px;
}

.vc-app-topbar h1 {
  color: var(--vc-ink);
  font: 400 34px/1.05 Georgia, "Times New Roman", serif;
  letter-spacing: -.5px;
  margin: 0;
}

.vc-userbox {
  align-items: center;
  display: flex;
  gap: 14px;
  min-width: 0;
}

.vc-userbox select {
  background: #fff;
  border: 1px solid var(--vc-line);
  border-radius: 9px;
  color: var(--vc-ink);
  height: 42px;
  max-width: min(280px, 100%);
  padding: 0 12px;
}

.vc-clinic-label {
  background: #fff;
  border: 1px solid var(--vc-line);
  border-radius: 999px;
  color: var(--vc-muted);
  font-size: 13px;
  font-weight: 750;
  padding: 9px 14px;
}

.vc-avatar {
  background: linear-gradient(135deg, #f4dce9, #fff);
  border: 1px solid rgba(194, 122, 169, .24);
  border-radius: 50%;
  color: var(--vc-mauve-dark);
  display: grid;
  font-weight: 900;
  height: 44px;
  place-items: center;
  width: 44px;
}

.vc-avatar.has-photo {
  background-position: center;
  background-size: cover;
  color: transparent;
}

.vc-topbar-profile {
  align-items: center;
  color: var(--vc-mauve-dark) !important;
  display: inline-flex;
  font-size: 13px;
  font-weight: 850;
  gap: 8px;
}

.vc-front-notice {
  border-radius: 11px;
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 22px;
  padding: 14px 17px;
}

.vc-front-notice.is-success {
  background: var(--vc-success-bg);
  color: var(--vc-success);
}

.vc-front-notice.is-error {
  background: var(--vc-danger-bg);
  color: var(--vc-danger);
}

.vc-stat-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 22px;
}

.vc-stat,
.vc-panel,
.vc-profile-header,
.vc-auth-required {
  backdrop-filter: blur(12px);
}

.vc-stat {
  background: var(--vc-panel);
  border: 1px solid var(--vc-line);
  border-radius: var(--vc-radius);
  box-shadow: var(--vc-card-shadow);
  display: block;
  overflow: hidden;
  padding: 22px;
  position: relative;
}

.vc-stat:after {
  background: radial-gradient(circle, rgba(194, 122, 169, .24), transparent 62%);
  content: "";
  height: 86px;
  position: absolute;
  right: -24px;
  top: -28px;
  width: 86px;
}

.vc-stat span {
  color: #9d6a97;
  display: block;
  font-family: var(--vc-script-font);
  font-size: 18px;
  font-style: normal;
  font-weight: 700;
  letter-spacing: .01em;
  line-height: 1.12;
  margin-bottom: 14px;
}

.vc-stat strong {
  color: var(--vc-ink);
  display: block;
  font: 400 42px/1 Georgia, "Times New Roman", serif;
  margin-bottom: 10px;
}

.vc-stat small {
  color: var(--vc-mauve);
  font-weight: 850;
}

.vc-panel {
  background: var(--vc-panel);
  border: 1px solid var(--vc-line);
  border-radius: var(--vc-radius);
  box-shadow: var(--vc-card-shadow);
  margin-bottom: 20px;
  padding: 24px;
}

.vc-panel h2 {
  color: var(--vc-ink);
  font: 400 26px/1.12 Georgia, "Times New Roman", serif;
  letter-spacing: -.2px;
  margin: 0 0 20px;
}

.vc-panel h3 {
  color: var(--vc-ink);
  font-size: 16px;
  margin: 0 0 14px;
}

.vc-panel-heading {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  justify-content: space-between;
  margin-bottom: 18px;
}

.vc-panel-heading h2 {
  margin: 0;
}

.vc-two-column {
  align-items: start;
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
}

.vc-calendar-layout {
  grid-template-columns: minmax(0, 1.55fr) minmax(0, .65fr);
}

.vc-table-wrap {
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
  overflow-x: auto;
}

.vc-table {
  border-collapse: collapse;
  font-size: 13px;
  min-width: 680px;
  width: 100%;
}

.vc-table th {
  border-bottom: 1px solid var(--vc-line);
  color: #8f7f90;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  padding: 13px 10px;
  text-align: left;
  text-transform: uppercase;
}

.vc-table td {
  border-bottom: 1px solid #f1e4ec;
  color: var(--vc-ink);
  padding: 14px 10px;
  vertical-align: middle;
}

.vc-table tbody tr:hover td {
  background: rgba(255, 247, 251, .76);
}

.vc-table tbody tr:last-child td {
  border-bottom: 0;
}

.vc-calendar-toolbar {
  align-items: center;
  background: linear-gradient(135deg, #fff, #fff7fb);
  border: 1px solid var(--vc-line);
  border-radius: 13px;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  margin: 0 0 16px;
  padding: 12px 14px;
}

.vc-calendar-toolbar a {
  color: var(--vc-mauve);
  font-size: 13px;
  font-weight: 850;
  white-space: nowrap;
}

.vc-calendar-toolbar strong {
  color: var(--vc-ink);
  font: 400 20px/1.1 Georgia, "Times New Roman", serif;
  text-align: center;
}

.vc-calendar-month-nav {
  align-items: center;
  display: grid;
  flex: 1 1 auto;
  gap: 14px;
  grid-template-columns: auto minmax(150px, 1fr) auto;
}

.vc-calendar-jump {
  align-items: end;
  border-left: 1px solid var(--vc-line);
  display: grid;
  flex: 0 0 auto;
  gap: 8px;
  grid-template-columns: minmax(145px, 1fr) auto;
  padding-left: 14px;
}

.vc-calendar-jump label {
  color: var(--vc-muted);
  font-size: 11px;
  font-weight: 850;
  grid-column: 1 / -1;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.vc-calendar-jump input[type="date"] {
  background: #fff;
  border: 1px solid var(--vc-line);
  border-radius: 10px;
  color: var(--vc-ink);
  min-height: 42px;
  padding: 8px 10px;
}

.vc-calendar-jump .vc-btn {
  min-height: 42px;
  padding-inline: 14px;
}

.vc-field-help {
  color: var(--vc-muted);
  display: block;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
  margin-top: 6px;
}

.vc-calendar-empty {
  background: #fff7fb;
  border: 1px solid var(--vc-line);
  border-radius: 11px;
  color: var(--vc-muted);
  font-size: 13px;
  font-weight: 700;
  margin: 0 0 14px;
  padding: 12px 14px;
}

.vc-calendar-weekdays {
  color: #8f7f90;
  display: grid;
  font-size: 11px;
  font-weight: 900;
  gap: 9px;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  letter-spacing: .12em;
  margin: 0 0 8px;
  text-align: center;
  text-transform: uppercase;
}

.vc-calendar-weekdays span {
  background: rgba(255, 255, 255, .64);
  border: 1px solid rgba(132, 86, 128, .10);
  border-radius: 9px;
  padding: 8px 4px;
}

.vc-calendar-grid {
  display: grid;
  gap: 9px;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  padding-bottom: 4px;
}

.vc-calendar-day {
  background: rgba(255, 255, 255, .86);
  border: 1px solid #f0dfe9;
  border-radius: 13px;
  min-height: 138px;
  padding: 9px;
}

.vc-calendar-day.is-outside-month {
  background: rgba(255, 255, 255, .42);
  opacity: .58;
}

.vc-calendar-day.is-today {
  background: linear-gradient(180deg, #fff, #fff5fa);
  border-color: rgba(194, 122, 169, .55);
  box-shadow: inset 0 0 0 1px rgba(194, 122, 169, .14);
}

.vc-calendar-day header {
  align-items: baseline;
  border-bottom: 1px solid #f1e4ec;
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
  padding-bottom: 7px;
}

.vc-calendar-day header span {
  color: #8f7f90;
  font-size: 10px;
  font-weight: 850;
}

.vc-calendar-day header strong {
  color: var(--vc-ink);
  font: 400 19px/1 Georgia, "Times New Roman", serif;
}

.vc-calendar-events {
  display: grid;
  gap: 6px;
}

.vc-calendar-noevent {
  color: #a89aaa;
  font-size: 12px;
  font-weight: 650;
}

.vc-calendar-event {
  background: linear-gradient(135deg, #efd8ed, #f7e8f1);
  border: 1px solid rgba(194, 122, 169, .22);
  border-radius: 10px;
  box-shadow: 0 10px 22px rgba(73, 45, 80, .06);
  color: var(--vc-ink);
  display: grid;
  gap: 3px;
  padding: 8px;
}

.vc-calendar-event time {
  color: #765b7b;
  font-size: 11px;
  font-weight: 900;
}

.vc-calendar-event strong {
  font-size: 12px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.vc-calendar-event small {
  color: var(--vc-muted);
  font-size: 11px;
  line-height: 1.25;
}

.vc-calendar-status {
  margin-top: 3px;
}

.vc-calendar-status .vc-badge {
  font-size: 10px;
  padding: 4px 7px;
}

.vc-calendar-status-form {
  border-top: 1px solid rgba(132, 86, 128, .12);
  display: grid;
  gap: 6px;
  margin-top: 7px;
  padding-top: 7px;
}

.vc-calendar-status-form select {
  background: rgba(255, 255, 255, .86);
  border: 1px solid rgba(132, 86, 128, .20);
  border-radius: 8px;
  color: var(--vc-ink);
  font-size: 11px;
  height: 30px;
  padding: 0 7px;
  width: 100%;
}

.vc-calendar-status-form button {
  background: rgba(255, 255, 255, .9);
  border: 1px solid rgba(132, 86, 128, .20);
  border-radius: 8px;
  color: var(--vc-plum);
  cursor: pointer;
  font-size: 11px;
  font-weight: 850;
  height: 30px;
}

.vc-event-confirmada,
.vc-event-atendida {
  background: linear-gradient(135deg, #e9f6ef, #f6fffa);
}

.vc-event-pendiente,
.vc-event-reprogramada {
  background: linear-gradient(135deg, #fff2da, #fff9ed);
}

.vc-event-cancelada,
.vc-event-no_asistio {
  background: linear-gradient(135deg, #fbe9ea, #fff6f7);
}

.vc-badge {
  background: var(--vc-blush-strong);
  border-radius: 999px;
  color: var(--vc-plum);
  display: inline-flex;
  font-size: 11px;
  font-weight: 850;
  padding: 6px 10px;
  text-transform: capitalize;
}

.vc-status-atendida,
.vc-status-aceptado,
.vc-status-confirmada,
.vc-status-pagado {
  background: var(--vc-success-bg);
  color: var(--vc-success);
}

.vc-status-pendiente,
.vc-status-reprogramada,
.vc-status-pago_parcial {
  background: var(--vc-warning-bg);
  color: var(--vc-warning);
}

.vc-status-cancelada,
.vc-status-revocado,
.vc-status-no_asistio {
  background: var(--vc-danger-bg);
  color: var(--vc-danger);
}

.vc-status-en_atencion {
  background: #e9effd;
  color: #365ea3;
}

.vc-front-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.vc-front-form label {
  color: var(--vc-ink);
  display: block;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .01em;
}

.vc-front-form input:not([type="file"]),
.vc-front-form select,
.vc-front-form textarea,
.vc-inline select,
.vc-inline input {
  background: #fff;
  border: 1px solid #ead8e2;
  border-radius: 8px;
  color: var(--vc-ink);
  display: block;
  font: 14px Inter, Arial, sans-serif;
  margin-top: 6px;
  padding: 11px 12px;
  width: 100%;
}

.vc-front-form input:not([type="file"]),
.vc-front-form select {
  height: 45px;
}

.vc-front-form input[type="file"] {
  background: var(--vc-blush);
  border: 1px dashed rgba(194, 122, 169, .38);
  border-radius: 10px;
  margin-top: 6px;
  padding: 15px;
  width: 100%;
}

.vc-front-form textarea {
  resize: vertical;
}

.vc-form-row {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.vc-inline {
  align-items: end;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 220px;
}

.vc-inline select,
.vc-inline input {
  font-size: 12px;
  height: 36px;
  margin-top: 0;
  padding: 7px 8px;
}

.vc-inline button,
.vc-search button {
  background: var(--vc-blush-strong);
  border: 1px solid var(--vc-line);
  border-radius: 8px;
  color: var(--vc-ink);
  cursor: pointer;
  font-weight: 850;
}

.vc-inline button {
  height: 36px;
  padding: 0 10px;
}

.vc-search {
  display: flex;
  gap: 7px;
  min-width: 0;
}

.vc-search input {
  border: 1px solid #ead8e2;
  border-radius: 8px;
  flex: 1 1 190px;
  height: 40px;
  padding: 0 12px;
}

.vc-search button {
  height: 40px;
  padding: 0 13px;
}

.vc-list {
  display: flex;
  flex-direction: column;
}

.vc-list-row,
.vc-consent-row {
  align-items: center;
  border-bottom: 1px solid #f1e4ec;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: space-between;
  padding: 15px 0;
}

.vc-list-row:last-child,
.vc-consent-row:last-child {
  border-bottom: 0;
}

.vc-list-row strong,
.vc-consent-row strong {
  color: var(--vc-ink);
}

.vc-list-row small,
.vc-consent-row small {
  color: var(--vc-muted);
  display: block;
  font-size: 12px;
  margin-top: 5px;
}

.vc-list-row a {
  color: var(--vc-mauve);
  font-size: 13px;
  font-weight: 850;
  margin-left: 12px;
}

.vc-muted {
  color: var(--vc-muted);
  font-size: 14px;
  line-height: 1.6;
}

.vc-team-count {
  background: linear-gradient(135deg, #fff7fb, #f4dfec);
  border: 1px solid var(--vc-line);
  border-radius: 999px;
  color: var(--vc-mauve);
  display: inline-flex;
  font-size: 13px;
  font-weight: 900;
  justify-content: center;
  min-width: 118px;
  padding: 9px 14px;
}

.vc-plan-upgrade-inline {
  background: linear-gradient(135deg, #fff, #fff7fb);
  border: 1px solid var(--vc-line);
  border-radius: 14px;
  color: var(--vc-muted);
  display: grid;
  gap: 10px;
  padding: 18px;
}

.vc-plan-upgrade-inline strong {
  color: var(--vc-ink);
}

.vc-plan-upgrade-inline p {
  margin: 0;
}

.vc-team-table-wrap {
  margin-bottom: 18px;
}

.vc-team-table td small {
  color: var(--vc-muted);
  display: block;
  line-height: 1.45;
  margin-top: 5px;
  max-width: 460px;
}

.vc-team-role {
  background: #fff7fb;
  border: 1px solid var(--vc-line);
  border-radius: 999px;
  color: var(--vc-mauve);
  display: inline-flex;
  font-size: 12px;
  font-weight: 900;
  padding: 6px 10px;
}

.vc-team-form {
  border-top: 1px solid var(--vc-line);
  margin-top: 18px;
  padding-top: 18px;
}

.vc-team-role-notes {
  background: rgba(255, 247, 251, .78);
  border: 1px solid var(--vc-line);
  border-radius: 14px;
  display: grid;
  gap: 8px;
  margin: 12px 0 16px;
  padding: 14px;
}

.vc-team-role-notes p {
  color: var(--vc-muted);
  font-size: 13px;
  line-height: 1.5;
  margin: 0;
}

.vc-team-role-notes strong {
  color: var(--vc-ink);
}

.vc-team-limit {
  background: #fff7fb;
  border: 1px solid var(--vc-line);
  border-radius: 12px;
  margin: 16px 0 0;
  padding: 14px;
}

.vc-profile-header {
  align-items: center;
  background:
    radial-gradient(circle at 96% 10%, rgba(194, 122, 169, .16), transparent 32%),
    rgba(255, 255, 255, .9);
  border: 1px solid var(--vc-line);
  border-radius: var(--vc-radius);
  box-shadow: var(--vc-card-shadow);
  display: flex;
  gap: 24px;
  margin-bottom: 20px;
  padding: 24px;
}

.vc-profile-header > a {
  color: var(--vc-mauve);
  font-weight: 850;
}

.vc-profile-header div:nth-child(2) {
  flex: 1;
}

.vc-profile-header h2 {
  color: var(--vc-ink);
  font: 400 30px/1.12 Georgia, "Times New Roman", serif;
  margin: 0 0 6px;
}

.vc-profile-header p {
  color: var(--vc-muted);
  margin: 0;
}

.vc-profile-header div:last-child {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.vc-profile-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vc-profile-grid p {
  color: var(--vc-muted);
  font-size: 14px;
  line-height: 1.55;
}

.vc-profile-grid b {
  color: var(--vc-ink);
}

.vc-record-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vc-record-grid > div {
  background: #fff;
  border: 1px solid var(--vc-line);
  border-radius: 12px;
  padding: 16px;
}

.vc-record-grid p {
  color: var(--vc-muted);
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
}

.vc-context-nav {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  justify-content: space-between;
  margin-bottom: 18px;
}

.vc-back-link,
.vc-text-link {
  color: var(--vc-mauve);
  font-weight: 800;
  text-decoration: none;
}

.vc-back-link:hover,
.vc-text-link:hover {
  color: var(--vc-ink);
  text-decoration: underline;
}

.vc-context-note {
  background: #fff7fb;
  border: 1px solid var(--vc-line);
  border-radius: 12px;
  color: var(--vc-muted);
  font-size: 14px;
  line-height: 1.5;
  margin: 0 0 16px;
  padding: 12px 14px;
}

.vc-context-note a {
  color: var(--vc-mauve);
  font-weight: 800;
}

.vc-records-heading {
  align-items: flex-start;
  gap: 16px;
}

.vc-record-search {
  margin-left: auto;
  max-width: 420px;
  width: min(100%, 420px);
}

.vc-list-meta {
  color: var(--vc-muted);
  opacity: .78;
}

.vc-photo-workspace {
  display: grid;
  gap: 24px;
}

.vc-photo-patient-picker {
  max-width: 980px;
}

.vc-photo-patient-form {
  margin-top: 18px;
}

.vc-form-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 16px;
}

.vc-photo-grid {
  display: grid;
  gap: 13px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vc-photo-grid figure {
  background: #fff;
  border: 1px solid var(--vc-line);
  border-radius: 13px;
  box-shadow: 0 12px 28px rgba(73, 45, 80, .05);
  margin: 0;
  overflow: hidden;
}

.vc-photo-grid img {
  background: linear-gradient(135deg, #fff, #fbecf4);
  display: block;
  height: 160px;
  object-fit: cover;
  width: 100%;
}

.vc-photo-grid figcaption {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
  padding: 11px;
}

.vc-photo-card-meta {
  min-width: 0;
}

.vc-photo-delete-form {
  flex: 0 0 auto;
  margin: 0;
}

.vc-photo-delete {
  appearance: none;
  background: #fff;
  border: 1px solid #e8b8c9;
  border-radius: 8px;
  color: #a23f65;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  min-height: 34px;
  padding: 0 10px;
  white-space: nowrap;
}

.vc-photo-delete:hover,
.vc-photo-delete:focus-visible {
  background: #fff0f5;
  border-color: #c9688f;
  color: #87304f;
  outline: 2px solid rgba(201, 104, 143, .2);
  outline-offset: 2px;
}

.vc-photo-grid strong,
.vc-photo-grid small {
  display: block;
  font-size: 12px;
}

.vc-photo-grid small {
  color: var(--vc-muted);
  margin-top: 4px;
}

.vc-empty-state {
  margin: 35px auto;
  max-width: 620px;
  text-align: center;
}

.vc-empty-state h2 {
  font-size: 32px;
}

.vc-professional-profile {
  padding-bottom: 22px;
}

.vc-profile-intro {
  margin-bottom: 22px;
}

.vc-profile-intro-compact {
  margin: -4px 0 18px;
  max-width: 680px;
}

.vc-profile-intro h2 {
  color: var(--vc-ink);
  font: 400 38px/1.05 Georgia, "Times New Roman", serif;
  letter-spacing: 0;
  margin: 0 0 8px;
}

.vc-profile-intro p {
  color: var(--vc-muted);
  font-size: 14px;
  font-weight: 650;
  margin: 0;
}

.vc-profile-workspace {
  align-items: start;
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
}

.vc-profile-left,
.vc-profile-right {
  display: grid;
  gap: 20px;
}

.vc-profile-photo-card {
  align-items: center;
  display: grid;
  gap: 22px;
  grid-template-columns: 112px minmax(0, 1fr);
}

.vc-profile-photo-preview {
  align-items: center;
  background: linear-gradient(135deg, #fff8df, #fff);
  border: 1px solid rgba(194, 122, 169, .18);
  border-radius: 50%;
  color: #a89aaa;
  display: flex;
  font-size: 36px;
  font-weight: 850;
  height: 94px;
  justify-content: center;
  overflow: hidden;
  width: 94px;
}

.vc-profile-photo-preview img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.vc-profile-form h3 {
  align-items: center;
  color: var(--vc-ink);
  display: flex;
  font-size: 17px;
  gap: 8px;
  margin: 0 0 10px;
}

.vc-profile-form textarea {
  min-height: 158px;
}

.vc-profile-data-form {
  display: grid;
  gap: 18px;
  margin-bottom: 20px;
}

.vc-profile-upload-form {
  display: grid;
  gap: 12px;
}

.vc-profile-upload-form .vc-btn {
  justify-self: start;
}

.vc-upload-message {
  min-height: 20px;
  color: #667085;
  font-size: 13px;
}

.vc-upload-message.is-error {
  color: #b42318;
  font-weight: 600;
}

.vc-char-count,
.vc-profile-summary small {
  color: #9a8c9d;
  display: block;
  font-size: 12px;
  font-weight: 700;
  margin-top: 10px;
}

.vc-upload-drop {
  align-items: center;
  background: rgba(255, 255, 255, .68);
  border: 1px dashed rgba(132, 86, 128, .28);
  border-radius: 12px;
  color: var(--vc-plum);
  cursor: pointer;
  display: flex !important;
  flex-direction: column;
  font-size: 14px !important;
  font-weight: 850 !important;
  gap: 5px;
  justify-content: center;
  margin-top: 14px;
  min-height: 52px;
  position: relative;
  text-align: center;
}

.vc-upload-title {
  color: var(--vc-ink);
}

.vc-upload-file-name {
  color: var(--vc-muted);
  display: block;
  font-size: 12px;
  font-weight: 700;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vc-upload-drop:hover {
  background: #fff7fb;
  border-color: rgba(194, 122, 169, .5);
}

.vc-upload-drop input {
  height: 100%;
  inset: 0;
  opacity: 0;
  position: absolute;
  width: 100%;
}

.vc-attachment-list {
  display: grid;
  gap: 8px;
  margin-top: 13px;
}

.vc-attachment-row {
  align-items: center;
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.vc-attachment-list a {
  background: #fff;
  border: 1px solid var(--vc-line);
  border-radius: 9px;
  color: var(--vc-plum) !important;
  font-size: 13px;
  font-weight: 750;
  padding: 10px 12px;
}

.vc-attachment-open {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vc-attachment-list .vc-attachment-delete {
  border-color: rgba(160, 70, 80, .24);
  color: var(--vc-danger) !important;
  text-align: center;
}

.vc-attachment-empty {
  margin-bottom: 0;
}

.vc-profile-safety {
  background: #fff8fb;
  border: 1px solid var(--vc-line);
  border-radius: 12px;
  color: var(--vc-muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.5;
  margin: 0;
  padding: 12px 14px;
}

.vc-profile-save {
  justify-self: end;
  min-width: 170px;
}

.vc-profile-summary {
  display: grid;
  gap: 12px;
}

.vc-profile-summary h2 {
  margin-bottom: 0;
}

.vc-profile-summary .vc-muted {
  margin: 0;
}

.vc-profile-progress {
  background: #f3e6ef;
  border-radius: 999px;
  height: 8px;
  overflow: hidden;
}

.vc-profile-progress span {
  background: linear-gradient(135deg, var(--vc-mauve), var(--vc-lavender));
  border-radius: inherit;
  display: block;
  height: 100%;
}

.vc-agenda-board {
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, .86fr) minmax(0, 1.14fr);
}

.vc-mini-month,
.vc-day-panel {
  background: rgba(255, 255, 255, .78);
  border: 1px solid var(--vc-line);
  border-radius: 14px;
  padding: 18px;
}

.vc-mini-weekdays,
.vc-mini-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  text-align: center;
}

.vc-mini-weekdays {
  color: var(--vc-muted);
  font-size: 13px;
  font-weight: 850;
  margin-bottom: 14px;
}

.vc-mini-day {
  align-items: center;
  border-radius: 11px;
  color: var(--vc-ink) !important;
  display: grid;
  font-weight: 800;
  min-height: 48px;
  padding: 6px 2px;
  position: relative;
}

.vc-mini-day:hover,
.vc-mini-day.is-selected {
  background: linear-gradient(135deg, var(--vc-mauve), var(--vc-lavender));
  color: #fff !important;
}

.vc-mini-day.is-today:not(.is-selected) {
  background: var(--vc-blush-strong);
  color: var(--vc-mauve-dark) !important;
}

.vc-mini-day.is-outside-month {
  color: #b9acba !important;
  opacity: .68;
}

.vc-mini-day small {
  background: rgba(255, 255, 255, .9);
  border: 1px solid rgba(132, 86, 128, .12);
  border-radius: 999px;
  color: var(--vc-mauve-dark);
  font-size: 10px;
  font-weight: 900;
  height: 18px;
  line-height: 16px;
  position: absolute;
  right: 4px;
  top: 4px;
  width: 18px;
}

.vc-day-panel-head {
  align-items: center;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  margin-bottom: 16px;
}

.vc-day-panel-head h3 {
  font: 400 25px/1.12 Georgia, "Times New Roman", serif;
  margin: 0;
}

.vc-day-appointments {
  display: grid;
  gap: 12px;
}

.vc-agenda-card {
  align-items: center;
  background: #fff;
  border: 1px solid var(--vc-line);
  border-radius: 14px;
  box-shadow: 0 12px 30px rgba(73, 45, 80, .05);
  display: grid;
  gap: 14px;
  grid-template-columns: 108px minmax(0, 1fr);
  padding: 15px;
}

.vc-agenda-time {
  align-items: center;
  display: flex;
  gap: 9px;
}

.vc-agenda-time span {
  background: var(--vc-blush-strong);
  border-radius: 50%;
  display: grid;
  height: 36px;
  place-items: center;
  width: 36px;
}

.vc-agenda-time strong,
.vc-agenda-info strong {
  color: var(--vc-ink);
  display: block;
}

.vc-agenda-info small {
  color: var(--vc-muted);
  display: block;
  margin: 5px 0 8px;
}

.vc-agenda-actions {
  align-items: center;
  border-top: 1px solid #f1e4ec;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  grid-column: 1 / -1;
  justify-content: space-between;
  padding-top: 12px;
  width: 100%;
}

.vc-agenda-actions .vc-btn {
  min-height: 38px;
  padding: 0 12px;
}

.vc-agenda-actions .vc-calendar-status-form {
  flex: 1 1 210px;
  margin-top: 0;
}

.vc-appointment-form .vc-date-row {
  grid-template-columns: 1fr;
}

.vc-date-row input[type="datetime-local"] {
  min-width: 0;
  width: 100%;
}

.vc-date-row input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: .85;
}

.vc-form-section {
  border-top: 1px solid #f1e4ec;
  display: grid;
  gap: 12px;
  padding-top: 16px;
}

.vc-form-section:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.vc-form-section h3 {
  color: var(--vc-ink);
  font-size: 15px;
  margin: 0;
}

.vc-age-output {
  color: var(--vc-mauve-dark);
  display: block;
  font-size: 12px;
  font-weight: 800;
  margin-top: 7px;
}

.vc-profile-grid-wide {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.vc-info-card p {
  margin: 0 0 12px;
}

.vc-info-card p:last-child {
  margin-bottom: 0;
}

.vc-photo-grid-compact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 18px;
}

.vc-inline-upload {
  background: #fff9fc;
  border: 1px solid var(--vc-line);
  border-radius: 14px;
  margin-top: 18px;
  padding: 16px;
}

.vc-face-diagram-field {
  background: linear-gradient(135deg, #fff, #fff7fb);
  border: 1px solid var(--vc-line);
  border-radius: 14px;
  padding: 16px;
}

.vc-face-diagram {
  align-items: start;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1fr);
}

.vc-face-diagram > * {
  min-width: 0;
}

.vc-face-toolbar {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 12px;
}

.vc-face-toolbar > span {
  color: var(--vc-muted);
  flex-basis: 100%;
  font-size: 12px;
  font-weight: 900;
}

.vc-face-canvas {
  background: radial-gradient(circle at 50% 20%, #fff, #fff7fb 72%);
  border: 1px solid rgba(194, 122, 169, .24);
  border-radius: 16px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .78);
  line-height: 0;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.vc-face-canvas img,
.vc-face-preview img {
  display: block;
  height: auto;
  position: relative;
  width: 100%;
  z-index: 1;
}

.vc-face-canvas canvas,
.vc-face-preview canvas {
  inset: 0;
  height: 100%;
  position: absolute;
  width: 100%;
  z-index: 2;
}

.vc-face-canvas canvas {
  cursor: crosshair;
  touch-action: none;
}

.vc-color-swatch {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(194, 122, 169, .38);
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  font-size: 0;
  height: 34px;
  justify-content: center;
  padding: 0;
  width: 34px;
}

.vc-color-swatch:before {
  background: var(--swatch);
  border-radius: 999px;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .55);
  content: "";
  height: 24px;
  width: 24px;
}

.vc-color-swatch.is-active {
  border-color: rgba(48, 41, 66, .34);
  box-shadow: 0 0 0 4px rgba(48, 41, 66, .12);
}

.vc-color-swatch span {
  height: 1px;
  overflow: hidden;
  position: absolute;
  width: 1px;
}

.vc-brush-size {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(194, 122, 169, .34);
  border-radius: 999px;
  color: var(--vc-plum);
  display: inline-flex;
  font-size: 12px;
  font-weight: 850;
  gap: 9px;
  min-height: 34px;
  padding: 0 12px;
}

.vc-brush-size input {
  accent-color: var(--vc-mauve-dark);
  margin: 0;
  width: 96px;
}

.vc-mini-btn {
  background: #fff;
  border: 1px solid rgba(194, 122, 169, .34);
  border-radius: 999px;
  color: var(--vc-plum);
  cursor: pointer;
  font-size: 12px;
  font-weight: 850;
  min-height: 34px;
  padding: 0 13px;
}

.vc-face-notes {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.vc-face-notes .vc-muted {
  margin: 0;
}

.vc-face-help {
  color: var(--vc-muted);
  font-size: 12px;
  font-weight: 750;
  margin: 9px 0 0;
  text-align: center;
}

.vc-marker-editor {
  background: #fff8fb;
  border: 1px solid rgba(194, 122, 169, .24);
  border-radius: 12px;
  display: grid;
  gap: 10px;
  padding: 12px;
}

.vc-marker-editor[hidden] {
  display: none;
}

.vc-marker-editor label {
  color: var(--vc-plum);
  font-size: 12px;
  font-weight: 900;
}

.vc-marker-editor input,
.vc-face-notes textarea {
  box-sizing: border-box;
  max-width: 100%;
  resize: vertical;
  width: 100%;
}

.vc-marker-editor input {
  background: #fff;
  border: 1px solid rgba(132, 86, 128, .18);
  border-radius: 10px;
  color: var(--vc-ink);
  min-height: 42px;
  padding: 0 12px;
}

.vc-marker-editor > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.vc-marker-list {
  display: grid;
  gap: 9px;
}

.vc-marker-list h4 {
  color: var(--vc-plum);
  font-size: 13px;
  margin: 4px 0 0;
}

.vc-marker-row {
  align-items: center;
  background: #fff;
  border: 1px solid var(--vc-line);
  border-radius: 10px;
  display: grid;
  gap: 9px;
  grid-template-columns: 18px minmax(0, 1fr) 30px;
  min-height: 42px;
  padding: 8px 9px;
}

.vc-marker-row strong {
  color: var(--vc-ink);
  font-size: 13px;
  min-width: 0;
  overflow-wrap: anywhere;
}

.vc-marker-dot {
  background: var(--mark);
  border: 2px solid #fff;
  border-radius: 999px;
  box-shadow: 0 0 0 1px rgba(48, 41, 66, .22);
  height: 16px;
  width: 16px;
}

.vc-marker-row button {
  align-items: center;
  background: #fff7fb;
  border: 1px solid rgba(194, 122, 169, .25);
  border-radius: 999px;
  color: var(--vc-plum);
  cursor: pointer;
  display: inline-flex;
  font-size: 17px;
  font-weight: 900;
  height: 28px;
  justify-content: center;
  line-height: 1;
  width: 28px;
}

.vc-face-preview {
  border: 1px solid rgba(194, 122, 169, .22);
  border-radius: 14px;
  line-height: 0;
  margin-bottom: 12px;
  overflow: hidden;
  position: relative;
}

@media (max-width: 1080px) {
  .vc-app-shell {
    grid-template-columns: 82px minmax(0, 1fr);
  }

  .vc-app-sidebar {
    padding: 20px 10px;
  }

  .vc-app-logo {
    display: block;
    font-size: 0;
    margin: 0 auto 30px;
    min-height: 52px;
    width: 52px;
  }

  .vc-app-logo:before {
    height: 52px;
    margin: 0;
    width: 52px;
  }

  .vc-app-logo small {
    display: none;
  }

  .vc-app-sidebar nav a {
    font-size: 0;
    justify-content: center;
    padding: 0;
  }

  .vc-app-sidebar nav a b {
    font-size: 22px;
  }

  .vc-sidebar-foot {
    display: none;
  }

  .vc-stat-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .vc-app-main {
    padding-left: 24px;
    padding-right: 24px;
  }

  .vc-two-column,
  .vc-calendar-layout {
    grid-template-columns: 1fr;
  }

  .vc-profile-workspace {
    grid-template-columns: 1fr;
  }

  .vc-record-grid {
    grid-template-columns: 1fr 1fr;
  }

  .vc-agenda-board,
  .vc-profile-grid-wide,
  .vc-face-diagram {
    grid-template-columns: 1fr;
  }

  .vc-agenda-card {
    grid-template-columns: 92px minmax(0, 1fr);
  }

  .vc-agenda-actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 700px) {
  .vc-login-screen {
    padding: 36px 18px;
  }

  .vc-login-screen:after {
    display: none;
  }

  .vc-login-card {
    padding: 30px 22px;
  }

  .vc-app-shell {
    display: block;
    overflow-x: hidden;
    width: 100%;
  }

  .vc-app-sidebar {
    border-bottom: 1px solid rgba(255, 255, 255, .2);
    border-right: 0;
    display: block;
    height: auto;
    padding: 16px;
    position: relative;
  }

  .vc-app-logo {
    align-items: center;
    display: flex;
    font-size: 27px;
    margin: 0 0 15px;
    min-height: 52px;
    width: auto;
  }

  .vc-app-logo:before {
    flex: 0 0 auto;
    height: 48px;
    margin-right: 10px;
    width: 48px;
  }

  .vc-app-logo small {
    display: block;
  }

  .vc-app-sidebar nav {
    flex-direction: row;
    gap: 8px;
    margin: 0 -4px;
    padding: 0 4px 4px;
    overflow-x: auto;
    overflow-y: hidden;
  }

  .vc-app-sidebar nav a {
    flex: 0 0 auto;
    font-size: 12px;
    gap: 7px;
    min-height: 38px;
    padding: 0 11px;
    white-space: nowrap;
  }

  .vc-app-sidebar nav a b {
    font-size: 16px;
    width: 18px;
  }

  .vc-app-main {
    padding: 0 15px 30px;
  }

  .vc-app-topbar {
    display: block;
    min-height: auto;
    padding: 22px 0;
  }

  .vc-app-topbar h1 {
    font-size: 31px;
  }

  .vc-userbox {
    align-items: flex-start;
    flex-wrap: wrap;
    margin-top: 14px;
  }

  .vc-userbox select {
    flex: 1 1 100%;
    max-width: 100%;
    width: 100%;
  }

  .vc-stat-grid,
  .vc-profile-grid,
  .vc-record-grid,
  .vc-form-row {
    grid-template-columns: 1fr;
  }

  .vc-panel {
    padding: 17px;
  }

  .vc-panel h2 {
    font-size: 24px;
  }

  .vc-profile-photo-card {
    grid-template-columns: 82px 1fr;
  }

  .vc-profile-photo-preview {
    height: 74px;
    width: 74px;
  }

  .vc-profile-save {
    justify-self: stretch;
  }

  .vc-panel-heading {
    display: block;
  }

  .vc-panel-heading .vc-btn {
    margin-top: 15px;
    width: 100%;
  }

  .vc-team-count {
    margin-top: 12px;
    width: 100%;
  }

  .vc-plan-upgrade-inline .vc-btn,
  .vc-team-form .vc-btn {
    justify-content: center;
    width: 100%;
  }

  .vc-team-role-notes {
    padding: 12px;
  }

  .vc-team-table td small {
    max-width: 260px;
  }

  .vc-form-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .vc-form-actions .vc-btn {
    justify-content: center;
    width: 100%;
  }

  .vc-calendar-toolbar {
    align-items: stretch;
    flex-direction: column;
    text-align: center;
  }

  .vc-calendar-month-nav {
    grid-template-columns: 1fr;
  }

  .vc-calendar-month-nav strong {
    order: -1;
  }

  .vc-calendar-jump {
    border-left: 0;
    border-top: 1px solid var(--vc-line);
    grid-template-columns: 1fr auto;
    padding-left: 0;
    padding-top: 12px;
    text-align: left;
  }

  .vc-calendar-toolbar a {
    display: flex;
    justify-content: center;
  }

  .vc-calendar-weekdays,
  .vc-calendar-grid {
    gap: 4px;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    overflow: visible;
  }

  .vc-calendar-weekdays span {
    border-radius: 7px;
    font-size: 9px;
    padding: 6px 1px;
  }

  .vc-calendar-day {
    border-radius: 9px;
    min-height: 74px;
    padding: 5px;
  }

  .vc-calendar-day header {
    margin-bottom: 4px;
    padding-bottom: 4px;
  }

  .vc-calendar-day header span {
    display: none;
  }

  .vc-calendar-day header strong {
    font-size: 15px;
  }

  .vc-calendar-noevent {
    display: none;
  }

  .vc-calendar-events {
    gap: 3px;
  }

  .vc-calendar-event {
    border-radius: 7px;
    gap: 1px;
    padding: 5px;
  }

  .vc-calendar-event time {
    font-size: 9px;
  }

  .vc-calendar-event strong {
    font-size: 10px;
    line-height: 1.15;
  }

  .vc-calendar-event small,
  .vc-calendar-day .vc-calendar-status,
  .vc-calendar-day .vc-calendar-status-form {
    display: none;
  }

  .vc-profile-header {
    display: block;
  }

  .vc-profile-header > * {
    margin-bottom: 14px;
  }

  .vc-photo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vc-day-panel-head {
    display: block;
  }

  .vc-agenda-card {
    grid-template-columns: 1fr;
  }

  .vc-agenda-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .vc-agenda-actions .vc-btn,
  .vc-agenda-actions .vc-calendar-status-form,
  .vc-agenda-actions .vc-calendar-status-form select,
  .vc-agenda-actions .vc-calendar-status-form button {
    width: 100%;
  }

  .vc-day-panel-head .vc-btn,
  .vc-agenda-actions {
    margin-top: 12px;
  }

  .vc-mini-month,
  .vc-day-panel {
    padding: 14px;
  }

  .vc-mini-day {
    min-height: 42px;
  }

  .vc-search,
  .vc-inline {
    width: 100%;
  }

  .vc-context-nav,
  .vc-records-heading {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .vc-record-search {
    margin-left: 0;
    max-width: none;
    width: 100%;
  }
}

@media (max-width: 480px) {
  .vc-login-screen {
    padding: 28px 12px;
  }

  .vc-login-card,
  .vc-auth-required {
    border-radius: 14px;
    padding: 24px 16px;
  }

  .vc-login-card h2,
  .vc-auth-required h2 {
    font-size: 28px;
  }

  .vc-app-sidebar {
    padding: 14px 12px;
  }

  .vc-app-logo {
    font-size: 24px;
  }

  .vc-app-main {
    padding: 0 10px 26px;
  }

  .vc-app-topbar h1,
  .vc-profile-intro h2 {
    font-size: 28px;
  }

  .vc-userbox,
  .vc-profile-header div:last-child,
  .vc-search,
  .vc-inline {
    display: grid;
    grid-template-columns: 1fr;
  }

  .vc-avatar {
    height: 40px;
    width: 40px;
  }

  .vc-topbar-profile {
    justify-content: flex-start;
  }

  .vc-panel {
    border-radius: 13px;
    margin-bottom: 14px;
    padding: 14px;
  }

  .vc-stat {
    padding: 18px;
  }

  .vc-stat strong {
    font-size: 34px;
  }

  .vc-btn,
  .vc-mini-btn,
  .vc-brush-size,
  .vc-front-form button,
  .vc-search button,
  .vc-inline button {
    width: 100%;
  }

  .vc-brush-size {
    justify-content: space-between;
  }

  .vc-brush-size input {
    width: min(180px, 52%);
  }

  .vc-list-row,
  .vc-consent-row {
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
  }

  .vc-list-row a {
    margin-left: 0;
  }

  .vc-table {
    min-width: 600px;
  }

  .vc-calendar-weekdays,
  .vc-calendar-grid {
    gap: 3px;
  }

  .vc-calendar-day {
    min-height: 64px;
    padding: 4px;
  }

  .vc-calendar-event {
    min-height: 18px;
    padding: 4px 3px;
  }

  .vc-calendar-event strong {
    display: none;
  }

  .vc-profile-photo-card {
    gap: 12px;
    grid-template-columns: 1fr;
    text-align: left;
  }

  .vc-profile-photo-preview {
    height: 82px;
    width: 82px;
  }

  .vc-photo-grid,
  .vc-photo-grid-compact {
    grid-template-columns: 1fr;
  }

  .vc-photo-grid figcaption {
    align-items: stretch;
    flex-direction: column;
  }

  .vc-photo-delete,
  .vc-photo-delete-form {
    width: 100%;
  }

  .vc-face-diagram-field,
  .vc-inline-upload {
    padding: 12px;
  }

  .vc-color-swatch {
    height: 38px;
    width: 38px;
  }

  .vc-color-swatch:before {
    height: 27px;
    width: 27px;
  }

  .vc-marker-editor > div {
    display: grid;
    grid-template-columns: 1fr;
  }

  .vc-attachment-row {
    grid-template-columns: 1fr;
  }
}

/* v0.5.7 — Agenda drawer and sidebar logo subtitle refinement. */
.vc-app-logo small {
  font-family: Inter, Arial, Helvetica, sans-serif;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .12em;
  line-height: 1.22;
  text-transform: uppercase;
}

.vc-calendar-layout-full {
  grid-template-columns: minmax(0, 1fr);
}

.vc-calendar-layout-full > .vc-panel {
  width: 100%;
}

.vc-drawer-overlay {
  background: rgba(48, 41, 66, .28);
  inset: 0;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  transition: opacity .22s ease;
  z-index: 99998;
}

.vc-app-drawer {
  background:
    radial-gradient(circle at 14% 0%, rgba(247, 232, 241, .95), transparent 34%),
    #fff;
  border-left: 1px solid var(--vc-line);
  box-shadow: -24px 0 70px rgba(48, 41, 66, .18);
  display: flex;
  flex-direction: column;
  height: 100vh;
  max-width: calc(100vw - 22px);
  opacity: 0;
  overflow: hidden;
  position: fixed;
  right: 0;
  top: 0;
  transform: translateX(104%);
  transition: transform .26s ease, opacity .26s ease;
  width: min(430px, calc(100vw - 22px));
  z-index: 99999;
}

.vc-drawer-is-open {
  overflow: hidden;
}

.vc-drawer-is-open .vc-drawer-overlay {
  opacity: 1;
  pointer-events: auto;
}

.vc-drawer-is-open .vc-app-drawer[aria-hidden="false"] {
  opacity: 1;
  transform: translateX(0);
}

.vc-drawer-head {
  align-items: flex-start;
  border-bottom: 1px solid var(--vc-line);
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 28px 28px 18px;
}

.vc-drawer-head h2 {
  color: var(--vc-ink);
  font: 400 30px/1.05 Georgia, "Times New Roman", serif;
  letter-spacing: -.4px;
  margin: 0;
}

.vc-drawer-close {
  align-items: center;
  background: #fff;
  border: 1px solid var(--vc-line);
  border-radius: 999px;
  color: var(--vc-mauve-dark);
  cursor: pointer;
  display: inline-flex;
  flex: 0 0 auto;
  font: 700 24px/1 Inter, Arial, Helvetica, sans-serif;
  height: 44px;
  justify-content: center;
  margin-top: 0;
  width: 44px;
}

.vc-drawer-close:hover {
  background: var(--vc-blush);
}

.vc-drawer-body {
  overflow-y: auto;
  padding: 22px 28px 30px;
}

.vc-app-drawer .vc-front-form {
  gap: 13px;
}

.vc-app-drawer .vc-btn[type="submit"] {
  margin-top: 8px;
  width: 100%;
}

@media (max-width: 640px) {
  .vc-app-drawer {
    width: min(100vw, 420px);
    max-width: 100vw;
  }

  .vc-drawer-head,
  .vc-drawer-body {
    padding-left: 18px;
    padding-right: 18px;
  }
}

/* v0.5.13 — Clinical record navigation and search polish. */
.vc-app-shell {
  max-width: 100%;
  overflow-x: clip;
  width: 100%;
}

.vc-app-sidebar nav {
  scrollbar-width: none;
}

.vc-app-sidebar nav::-webkit-scrollbar {
  display: none;
}

.vc-table-wrap,
.vc-mini-month,
.vc-day-panel,
.vc-panel,
.vc-front-form,
.vc-profile-header,
.vc-profile-grid,
.vc-record-grid,
.vc-photo-grid,
.vc-plan-grid {
  max-width: 100%;
}

.vc-btn,
.vc-app-sidebar nav a,
.vc-drawer-close,
.vc-color-swatch,
.vc-mini-btn {
  -webkit-tap-highlight-color: transparent;
}

@media (hover: none) {
  .vc-btn:hover,
  .vc-app-sidebar nav a:hover {
    transform: none;
  }
}

@media (max-width: 900px) {
  .vc-app-shell {
    display: block;
  }

  .vc-app-sidebar {
    border-bottom: 1px solid rgba(255, 255, 255, .18);
    border-right: 0;
    box-shadow: 0 14px 42px rgba(73, 45, 80, .10);
    display: block;
    height: auto;
    padding: 15px 16px 13px;
    position: sticky;
    top: 0;
    z-index: 40;
  }

  body.admin-bar .vc-app-sidebar {
    top: var(--wp-admin--admin-bar--height, 46px);
  }

  .vc-app-logo {
    align-items: center;
    display: flex;
    font-size: 27px;
    margin: 0 0 14px;
    min-height: 52px;
    width: auto;
  }

  .vc-app-logo:before {
    flex: 0 0 auto;
    height: 48px;
    margin-right: 10px;
    width: 48px;
  }

  .vc-app-logo small {
    display: block;
    max-width: 185px;
  }

  .vc-app-sidebar nav {
    flex-direction: row;
    gap: 8px;
    margin: 0 -4px;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    padding: 0 4px 5px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }

  .vc-app-sidebar nav a {
    flex: 0 0 auto;
    font-size: 13px;
    gap: 7px;
    justify-content: center;
    min-height: 44px;
    min-width: max-content;
    padding: 0 13px;
    scroll-snap-align: start;
    white-space: nowrap;
  }

  .vc-app-sidebar nav a b {
    font-size: 16px;
    width: 18px;
  }

  .vc-sidebar-foot {
    display: none;
  }

  .vc-app-main {
    padding: 0 18px 32px;
  }

  .vc-app-topbar {
    align-items: flex-start;
    gap: 14px;
    min-height: auto;
    padding: 22px 0 18px;
  }

  .vc-app-topbar h1 {
    font-size: 32px;
  }

  .vc-userbox {
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .vc-userbox form,
  .vc-userbox select,
  .vc-clinic-label {
    max-width: 100%;
  }

  .vc-stat-grid {
    gap: 13px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vc-two-column,
  .vc-calendar-layout,
  .vc-profile-workspace,
  .vc-agenda-board,
  .vc-profile-grid-wide,
  .vc-face-diagram {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  html {
    -webkit-text-size-adjust: 100%;
  }

  .vc-app-sidebar {
    padding: 13px 12px 11px;
  }

  .vc-app-logo {
    font-size: 25px;
    margin-bottom: 12px;
  }

  .vc-app-logo:before {
    height: 46px;
    width: 46px;
  }

  .vc-app-logo small {
    font-size: 8.5px;
    letter-spacing: .10em;
    line-height: 1.18;
    max-width: 170px;
  }

  .vc-app-sidebar nav a {
    border-radius: 999px;
    font-size: 12.5px;
    min-height: 44px;
    padding: 0 12px;
  }

  .vc-app-main {
    padding: 0 13px calc(28px + env(safe-area-inset-bottom, 0px));
  }

  .vc-app-topbar {
    display: grid;
    gap: 13px;
    padding: 18px 0 15px;
  }

  .vc-app-topbar h1 {
    font-size: 30px;
    line-height: 1.04;
  }

  .vc-kicker,
  .vc-stat span {
    font-size: 17px;
  }

  .vc-userbox {
    align-items: stretch;
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr auto;
    margin-top: 0;
    width: 100%;
  }

  .vc-userbox form,
  .vc-userbox select,
  .vc-clinic-label {
    grid-column: 1 / -1;
    width: 100%;
  }

  .vc-topbar-profile {
    justify-self: start;
  }

  .vc-stat-grid {
    grid-template-columns: 1fr;
  }

  .vc-stat {
    padding: 18px;
  }

  .vc-stat strong {
    font-size: 36px;
  }

  .vc-panel {
    border-radius: 15px;
    padding: 16px;
  }

  .vc-panel h2 {
    font-size: 25px;
    line-height: 1.08;
  }

  .vc-panel-heading {
    align-items: stretch;
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr;
  }

  .vc-panel-heading .vc-btn,
  .vc-day-panel-head .vc-btn,
  .vc-front-form button[type="submit"] {
    width: 100%;
  }

  .vc-front-form input:not([type="file"]),
  .vc-front-form select,
  .vc-front-form textarea,
  .vc-inline select,
  .vc-inline input,
  .vc-search input {
    font-size: 16px;
  }

  .vc-front-form input:not([type="file"]),
  .vc-front-form select,
  .vc-search input {
    min-height: 48px;
  }

  .vc-search {
    display: grid;
    grid-template-columns: 1fr;
  }

  .vc-search button,
  .vc-inline button {
    min-height: 44px;
    width: 100%;
  }

  .vc-calendar-toolbar {
    border-radius: 14px;
    gap: 8px;
    padding: 10px;
  }

  .vc-calendar-toolbar strong {
    font-size: 21px;
    order: -1;
  }

  .vc-agenda-board {
    gap: 14px;
  }

  .vc-mini-month,
  .vc-day-panel {
    border-radius: 15px;
    padding: 14px;
  }

  .vc-mini-weekdays {
    font-size: 12px;
    margin-bottom: 8px;
  }

  .vc-mini-day {
    border-radius: 10px;
    font-size: 15px;
    min-height: 42px;
  }

  .vc-mini-day small {
    font-size: 9px;
    height: 17px;
    line-height: 15px;
    right: 2px;
    top: 2px;
    width: 17px;
  }

  .vc-day-panel-head {
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr;
  }

  .vc-day-panel-head h3 {
    font-size: 27px;
  }

  .vc-calendar-empty {
    font-size: 14px;
    line-height: 1.45;
    padding: 13px 14px;
  }

  .vc-agenda-card {
    gap: 12px;
    grid-template-columns: 1fr;
    padding: 14px;
  }

  .vc-agenda-time {
    align-items: center;
    justify-content: flex-start;
  }

  .vc-agenda-actions {
    display: grid;
    gap: 9px;
    grid-template-columns: 1fr;
  }

  .vc-agenda-actions .vc-calendar-status-form,
  .vc-agenda-actions .vc-calendar-status-form select,
  .vc-agenda-actions .vc-calendar-status-form button,
  .vc-agenda-actions .vc-btn {
    width: 100%;
  }

  .vc-table-wrap {
    border: 1px solid var(--vc-line);
    border-radius: 13px;
    box-shadow: inset -18px 0 22px -24px rgba(48, 41, 66, .22);
  }

  .vc-profile-header {
    display: grid;
    gap: 14px;
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .vc-profile-header div:last-child {
    display: grid;
    gap: 9px;
    grid-template-columns: 1fr;
  }

  .vc-profile-header div:last-child .vc-btn {
    width: 100%;
  }

  .vc-profile-grid,
  .vc-record-grid,
  .vc-form-row,
  .vc-plan-summary-grid {
    grid-template-columns: 1fr;
  }

  .vc-photo-grid,
  .vc-photo-grid-compact {
    grid-template-columns: 1fr;
  }

  .vc-photo-grid img {
    height: auto;
    max-height: 360px;
  }

  .vc-drawer-overlay {
    background: rgba(48, 41, 66, .36);
  }

  .vc-app-drawer {
    border-left: 0;
    border-radius: 22px 22px 0 0;
    bottom: 0;
    height: min(92dvh, calc(100dvh - 34px));
    max-height: min(92dvh, calc(100dvh - 34px));
    max-width: 100vw;
    right: 0;
    top: auto;
    transform: translateY(104%);
    width: 100vw;
  }

  .vc-drawer-is-open .vc-app-drawer[aria-hidden="false"] {
    transform: translateY(0);
  }

  .vc-drawer-head {
    align-items: center;
    padding: 18px 18px 14px;
  }

  .vc-drawer-head h2 {
    font-size: 28px;
  }

  .vc-drawer-body {
    overscroll-behavior: contain;
    padding: 18px 18px calc(24px + env(safe-area-inset-bottom, 0px));
  }
}

@media (max-width: 420px) {
  .vc-app-logo {
    font-size: 23px;
  }

  .vc-app-logo:before {
    height: 43px;
    width: 43px;
  }

  .vc-app-logo small {
    font-size: 8px;
    max-width: 150px;
  }

  .vc-app-main {
    padding-left: 10px;
    padding-right: 10px;
  }

  .vc-app-topbar h1,
  .vc-profile-intro h2 {
    font-size: 27px;
  }

  .vc-panel {
    padding: 14px;
  }

  .vc-mini-month,
  .vc-day-panel {
    padding: 12px;
  }

  .vc-mini-grid,
  .vc-mini-weekdays {
    gap: 2px;
  }

  .vc-mini-day {
    font-size: 14px;
    min-height: 44px;
  }

  .vc-day-panel-head h3 {
    font-size: 25px;
  }

  .vc-drawer-head,
  .vc-drawer-body {
    padding-left: 15px;
    padding-right: 15px;
  }
}

/* v0.5.14 MVP polish: contención responsive para portal, tablas y checkout. */
.vc-app-shell,
.vc-frontend,
.vc-front {
  max-width: 100%;
}

.vc-app-main,
.vc-panel,
.vc-card,
.vc-plan-summary,
.vc-plan-picker {
  min-width: 0;
}

.vc-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.vc-table-wrap table,
.vc-table {
  width: 100%;
}

.woocommerce-checkout .vc-plan-checkout-note,
.vc-plan-expiry-note {
  max-width: 100%;
}

@media (max-width: 760px) {
  .vc-app-shell {
    max-width: 100vw;
    overflow-x: hidden;
  }

  .vc-sidebar {
    overflow: hidden;
  }

  .vc-nav {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    padding-bottom: 10px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .vc-nav::-webkit-scrollbar {
    display: none;
  }

  .vc-nav a,
  .vc-nav button {
    flex: 0 0 auto;
    min-height: 44px;
    white-space: nowrap;
  }

  .vc-table-wrap table,
  .vc-table {
    min-width: 620px;
  }

  .vc-table-wrap:after {
    color: var(--vc-muted);
    content: "Desliza la tabla para ver más →";
    display: block;
    font-size: 12px;
    padding: 8px 12px 10px;
    text-align: center;
  }

  .vc-front-form input,
  .vc-front-form select,
  .vc-front-form textarea,
  .vc-form input,
  .vc-form select,
  .vc-form textarea {
    max-width: 100%;
  }

  .vc-billing-toggle {
    max-width: 100%;
  }
}

@media (max-width: 480px) {
  .vc-table-wrap table,
  .vc-table {
    min-width: 560px;
  }

  .vc-plan-card .vc-btn,
  .vc-front-form button,
  .vc-form button {
    min-height: 46px;
  }
}


/* v0.5.15 — Appointment availability, confirmation and budgets. */
.vc-app-drawer {
  pointer-events: none;
}

.vc-drawer-is-open .vc-app-drawer[aria-hidden="false"] {
  pointer-events: auto;
}

.vc-slot-message {
  color: var(--vc-mauve-dark);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.45;
  margin: -5px 0 2px;
}

.vc-slot-message.is-warning {
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 10px;
  color: #9a4b08;
  padding: 10px 12px;
}

.vc-check-row {
  align-items: center;
  background: #fff8fb;
  border: 1px solid var(--vc-line);
  border-radius: 12px;
  display: flex !important;
  flex-direction: row !important;
  font-weight: 800;
  gap: 10px;
  padding: 12px 14px;
}

.vc-check-row input[type="checkbox"] {
  flex: 0 0 auto;
  height: 18px;
  margin: 0;
  width: 18px;
}

.vc-mini-day i {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(160, 70, 80, .22);
  border-radius: 999px;
  bottom: 3px;
  color: #a04650;
  display: flex;
  font-size: 10px;
  font-style: normal;
  font-weight: 950;
  height: 16px;
  justify-content: center;
  left: 4px;
  line-height: 1;
  position: absolute;
  width: 16px;
}

.vc-mini-day.is-blocked:not(.is-selected) {
  background: repeating-linear-gradient(135deg, #fff0f2 0, #fff0f2 7px, #fbe2e7 7px, #fbe2e7 14px);
  color: #994654 !important;
}

.vc-mini-day.is-partially-blocked:not(.is-selected):after {
  background: #d99448;
  border: 2px solid #fff;
  border-radius: 999px;
  bottom: 4px;
  content: "";
  height: 7px;
  position: absolute;
  right: 5px;
  width: 7px;
}

.vc-day-blocks {
  background: linear-gradient(135deg, #fff8ef, #fff3f5);
  border: 1px solid #f2d3c7;
  border-radius: 12px;
  display: grid;
  gap: 7px;
  padding: 12px 14px;
}

.vc-day-blocks p {
  color: #7d4a4f;
  font-size: 12px;
  line-height: 1.45;
  margin: 0;
}

.vc-availability-panel {
  grid-column: 1 / -1;
  width: 100%;
}

.vc-block-row form,
.vc-confirmation-form {
  margin: 0;
}

.vc-confirmation-form button {
  background: #fff8fb;
  border: 1px solid var(--vc-line);
  border-radius: 9px;
  color: var(--vc-mauve-dark);
  cursor: pointer;
  font: 800 12px/1.2 Inter, Arial, Helvetica, sans-serif;
  min-height: 38px;
  padding: 8px 12px;
}

.vc-confirmation-form button:hover {
  background: var(--vc-blush);
}

.vc-confirmation-sent,
.vc-confirmation-missing {
  flex: 1 1 100%;
  font-size: 11px;
  font-weight: 750;
  line-height: 1.4;
}

.vc-confirmation-sent {
  color: #42785d;
}

.vc-confirmation-missing {
  color: #9a6a36;
}

.vc-budget-layout {
  grid-template-columns: minmax(300px, .72fr) minmax(0, 1.28fr);
}

.vc-budget-editor {
  min-width: 0;
}

.vc-budget-list .vc-list-row > div:last-child,
.vc-budget-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.vc-budget-list .vc-list-row a {
  margin-left: 0;
}

.vc-budget-items {
  display: grid;
  gap: 11px;
}

.vc-budget-item {
  align-items: end;
  background: #fffafd;
  border: 1px solid var(--vc-line);
  border-radius: 14px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(190px, 1fr) 92px 130px 132px minmax(90px, auto) 36px;
  padding: 12px;
}

.vc-budget-item label {
  margin: 0;
  min-width: 0;
}

.vc-budget-item strong {
  align-items: center;
  color: var(--vc-ink);
  display: flex;
  font-size: 14px;
  justify-content: flex-end;
  min-height: 43px;
  white-space: nowrap;
}

.vc-budget-item [data-vc-budget-remove] {
  align-items: center;
  background: #fff;
  border: 1px solid #edd1d6;
  border-radius: 9px;
  color: #a04650;
  cursor: pointer;
  display: flex;
  font-size: 20px;
  height: 40px;
  justify-content: center;
  padding: 0;
  width: 36px;
}

.vc-budget-add {
  justify-self: start;
}

.vc-budget-summary {
  align-items: end;
  background: linear-gradient(135deg, #fff9fc, #f7edf4);
  border: 1px solid var(--vc-line);
  border-radius: 14px;
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(150px, 1fr) auto auto;
  padding: 15px;
}

.vc-budget-summary label {
  margin: 0;
  max-width: 190px;
}

.vc-budget-summary > div {
  display: grid;
  gap: 4px;
  min-width: 120px;
  text-align: right;
}

.vc-budget-summary span,
.vc-budget-meta strong,
.vc-budget-view-total span {
  color: var(--vc-muted);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.vc-budget-summary strong {
  color: var(--vc-ink);
  font-size: 20px;
}

.vc-budget-meta {
  background: #fff9fc;
  border: 1px solid var(--vc-line);
  border-radius: 14px;
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 18px;
  padding: 15px;
}

.vc-budget-meta p {
  line-height: 1.55;
  margin: 0;
}

.vc-budget-view-total {
  display: grid;
  gap: 8px;
  justify-content: end;
  margin-left: auto;
  margin-top: 18px;
  max-width: 360px;
  width: 100%;
}

.vc-budget-view-total p {
  align-items: center;
  display: flex;
  gap: 30px;
  justify-content: space-between;
  margin: 0;
}

.vc-budget-view-total .is-total {
  border-top: 1px solid var(--vc-line);
  color: var(--vc-ink);
  font-size: 22px;
  margin-top: 4px;
  padding-top: 12px;
}

.vc-budget-payment-cell {
  align-items: flex-start;
  display: grid;
  gap: 7px;
  min-width: 132px;
}

.vc-budget-payment-cell small {
  color: var(--vc-muted);
  font-size: 10px;
  line-height: 1.35;
}

.vc-budget-payment-form {
  margin: 0;
}

.vc-budget-payment-form button {
  background: #fff;
  border: 1px solid rgba(132, 86, 128, .22);
  border-radius: 8px;
  color: var(--vc-plum);
  cursor: pointer;
  font-size: 11px;
  font-weight: 850;
  min-height: 34px;
  padding: 6px 10px;
}

.vc-budget-payment-form button:hover,
.vc-budget-payment-form button:focus-visible {
  background: #fff1f7;
  border-color: rgba(184, 102, 157, .35);
}

.vc-budget-notes {
  background: #fff9fc;
  border: 1px solid var(--vc-line);
  border-radius: 14px;
  margin-top: 20px;
  padding: 16px;
}

.vc-budget-notes p {
  line-height: 1.65;
  margin: 0;
}

.vc-budget-delete {
  border-top: 1px solid var(--vc-line);
  margin-top: 24px;
  padding-top: 18px;
}

@media (max-width: 1080px) {
  .vc-budget-layout {
    grid-template-columns: 1fr;
  }

  .vc-budget-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vc-budget-item {
    grid-template-columns: minmax(0, 1fr) 90px 128px 132px 36px;
  }

  .vc-budget-item label:first-of-type {
    grid-column: 1 / -1;
  }

  .vc-budget-item strong {
    grid-column: 1 / 5;
    grid-row: 3;
    justify-content: flex-start;
    min-height: auto;
  }

  .vc-budget-item [data-vc-budget-remove] {
    grid-column: 5;
    grid-row: 3;
  }
}

@media (max-width: 680px) {
  .vc-budget-item {
    align-items: stretch;
    grid-template-columns: 1fr 1fr;
  }

  .vc-budget-item label:first-of-type,
  .vc-budget-item strong {
    grid-column: 1 / -1;
  }

  .vc-budget-item [data-vc-budget-remove] {
    grid-column: 2;
    grid-row: auto;
    justify-self: end;
  }

  .vc-budget-summary,
  .vc-budget-meta {
    grid-template-columns: 1fr;
  }

  .vc-budget-summary label {
    max-width: none;
  }

  .vc-budget-summary > div {
    align-items: center;
    display: flex;
    justify-content: space-between;
    min-width: 0;
    text-align: left;
  }

  .vc-budget-actions,
  .vc-budget-actions .vc-btn {
    width: 100%;
  }

  .vc-budget-actions .vc-btn {
    justify-content: center;
  }

  .vc-block-row {
    align-items: flex-start;
  }
}


/* v0.5.16 — Mobile safety, touch targets and private-page isolation. */
@media (max-width: 900px) {
  .vc-app-sidebar nav {
    -webkit-mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 28px), transparent 100%);
    mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 28px), transparent 100%);
  }

  .vc-app-sidebar nav a,
  .vc-drawer-close,
  .vc-mini-day,
  .vc-btn,
  .vc-front-form button,
  .vc-calendar-toolbar a,
  .vc-calendar-toolbar button {
    min-height: 44px;
  }
}

@media (max-width: 480px) {
  .vc-budget-item [data-vc-budget-remove],
  .vc-delete,
  .vc-mini-btn {
    min-height: 44px;
    min-width: 44px;
  }
}

/* Document identity and public contact styles. */
.vc-document-identity {
  margin-bottom: 22px;
  background: linear-gradient(135deg, #fff9fc 0%, #ffffff 72%);
}
.vc-document-identity h3 {
  margin: 22px 0 12px;
  color: #4b3654;
}
.vc-document-identity label small,
.vc-budget-editor label small {
  display: block;
  margin-top: 6px;
  color: #88798a;
  font-size: 12px;
  line-height: 1.4;
  font-weight: 600;
}
.vc-document-clinic-fields {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid #eddde6;
}
.vc-btn-danger {
  min-height: 44px;
  border: 0;
  background: #9f344f;
  color: #fff;
}
.vc-btn-danger:hover,
.vc-btn-danger:focus {
  background: #84263f;
  color: #fff;
}
.vc-field-help {
  display: block;
  margin: -4px 0 12px;
  color: #88798a;
  font-size: 12px;
  line-height: 1.4;
  font-weight: 600;
}

.vc-contact-form {
  display: grid;
  gap: 14px;
}
.vc-contact-form p {
  margin: 0;
}
.vc-contact-form label {
  display: grid;
  gap: 6px;
  color: #302942;
  font-weight: 700;
}
.vc-contact-form input,
.vc-contact-form textarea {
  box-sizing: border-box;
  width: 100%;
  border: 1px solid #e3d6df;
  border-radius: 8px;
  padding: 12px 13px;
  color: #302942;
  background: #fff;
  font: inherit;
}
.vc-contact-form textarea {
  resize: vertical;
}
.vc-contact-hp {
  position: absolute;
  left: -9999px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.vc-contact-status {
  min-height: 22px;
  color: #5d5366;
  font-size: 14px;
}
.vc-contact-status.is-success {
  color: #1f7a47;
}
.vc-contact-status.is-error {
  color: #a33a44;
}


/* Checkout onboarding: centre creation fallback */
.vc-onboarding-form{display:grid;gap:12px;max-width:560px;margin:22px auto 0;text-align:left}.vc-onboarding-form label{font-weight:800;color:#40344a}.vc-onboarding-form input{width:100%;min-height:46px;border:1px solid #e5d4df;border-radius:10px;background:#fff;padding:0 14px;font:inherit;color:#302942}.vc-onboarding-form .vc-btn{width:100%;border:0;cursor:pointer}

.vc-login-alert-success {
  background: #edf8f0;
  border-color: rgba(59, 125, 76, .2);
  color: #356f43;
}


/* Team access controls (v0.5.37). */
.vc-team-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center}
.vc-team-actions form{margin:0}
.vc-btn-small{min-height:34px!important;padding:6px 10px!important;font-size:12px!important}
.vc-team-status{display:inline-flex;align-items:center;min-height:27px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:850}
.vc-team-status.is-active{background:#eaf7ed;color:#276b35}
.vc-team-status.is-suspended{background:#fdecef;color:#9a315a}
@media(max-width:760px){.vc-team-actions{min-width:150px}}

/* v0.5.38 — Mobile plan experience and Mercado Pago return polish. */
.vc-front-notice.is-info {
  background: #f2eaf6;
  border: 1px solid rgba(138, 103, 156, .22);
  color: #624a72;
}

.vc-plan-summary-copy,
.vc-plan-summary-actions {
  min-width: 0;
}

.vc-plan-summary-copy p,
.vc-plan-summary-actions p {
  line-height: 1.5;
}

.vc-plan-summary-actions .vc-btn {
  white-space: normal;
}

.vc-mp-plan {
  overflow: hidden;
}

.vc-mp-plan-head {
  align-items: flex-start;
  display: flex;
  gap: 18px;
  justify-content: space-between;
  margin-bottom: 18px;
}

.vc-mp-plan-head h2 {
  margin-bottom: 0;
}

.vc-mp-status {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 900;
  justify-content: center;
  min-height: 34px;
  padding: 7px 13px;
}

.vc-mp-status.is-authorized {
  background: var(--vc-success-bg);
  color: var(--vc-success);
}

.vc-mp-status.is-pending {
  background: var(--vc-warning-bg);
  color: var(--vc-warning);
}

.vc-mp-status.is-inactive {
  background: var(--vc-danger-bg);
  color: var(--vc-danger);
}

.vc-mp-details {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.vc-mp-detail {
  background: linear-gradient(135deg, #fffafd, #fff);
  border: 1px solid var(--vc-line);
  border-radius: 13px;
  min-width: 0;
  padding: 14px 15px;
}

.vc-mp-detail dt {
  color: #98708f;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  margin: 0 0 6px;
  text-transform: uppercase;
}

.vc-mp-detail dd {
  color: var(--vc-ink);
  font-size: 14px;
  font-weight: 750;
  line-height: 1.45;
  margin: 0;
  overflow-wrap: anywhere;
}

.vc-mp-plan-actions {
  border-top: 1px solid var(--vc-line);
  margin-top: 18px;
  padding-top: 18px;
}

.vc-mp-plan-actions form {
  margin: 0;
}

.vc-btn-danger-outline {
  background: #fff !important;
  border-color: rgba(160, 70, 80, .34) !important;
  color: var(--vc-danger) !important;
}

.vc-btn-danger-outline:hover {
  background: var(--vc-danger-bg) !important;
  border-color: rgba(160, 70, 80, .48) !important;
}

@media (max-width: 700px) {
  .vc-app-sidebar {
    padding-bottom: 9px;
    padding-left: 11px;
    padding-right: 11px;
    padding-top: max(11px, env(safe-area-inset-top, 0px));
  }

  .vc-app-logo {
    margin-bottom: 9px;
    min-height: 46px;
  }

  .vc-app-logo:before {
    height: 42px;
    width: 42px;
  }

  .vc-app-sidebar nav {
    gap: 7px;
    margin-left: -2px;
    margin-right: -2px;
    padding-left: 2px;
    padding-right: 2px;
  }

  .vc-app-sidebar nav a {
    background: rgba(255, 255, 255, .08);
    border-color: rgba(255, 255, 255, .10);
    min-height: 42px;
  }

  .vc-app-main {
    padding-left: 12px;
    padding-right: 12px;
  }

  .vc-app-topbar {
    gap: 11px;
    padding-bottom: 14px;
    padding-top: 15px;
  }

  .vc-app-topbar > div:first-child .vc-kicker {
    display: none;
  }

  .vc-app-topbar h1 {
    font-size: 29px;
  }

  .vc-userbox {
    align-items: center;
    background: rgba(255, 255, 255, .70);
    border: 1px solid var(--vc-line);
    border-radius: 13px;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 9px;
  }

  .vc-clinic-label {
    border-radius: 9px;
    max-width: 100%;
    overflow: hidden;
    padding: 9px 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .vc-topbar-profile {
    min-width: 0;
  }

  .vc-avatar {
    height: 40px;
    width: 40px;
  }

  .vc-front-notice {
    border-radius: 13px;
    line-height: 1.45;
    margin-bottom: 15px;
    padding: 13px 14px;
  }

  .vc-plan-summary {
    padding: 18px;
  }

  .vc-plan-summary-grid {
    gap: 15px;
  }

  .vc-plan-summary-copy h2 {
    margin-bottom: 10px;
  }

  .vc-plan-summary-copy p,
  .vc-plan-summary-actions p {
    margin: 7px 0;
  }

  .vc-plan-summary-actions {
    border-top: 1px solid var(--vc-line);
    padding-top: 15px;
    text-align: left !important;
  }

  .vc-plan-summary-actions .vc-plan-status {
    margin-bottom: 4px;
  }

  .vc-plan-summary-actions .vc-btn {
    margin-top: 4px;
    width: 100%;
  }

  .vc-mp-plan {
    padding: 18px;
  }

  .vc-mp-plan-head {
    align-items: flex-start;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    margin-bottom: 15px;
  }

  .vc-mp-plan-head h2 {
    font-size: 24px;
  }

  .vc-mp-details {
    grid-template-columns: 1fr;
  }

  .vc-mp-detail {
    align-items: center;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(118px, .8fr) minmax(0, 1.2fr);
    padding: 13px 14px;
  }

  .vc-mp-detail dt {
    margin: 0;
  }

  .vc-mp-detail dd {
    text-align: right;
  }

  .vc-mp-plan-actions .vc-btn {
    min-height: 48px;
    width: 100%;
  }

  .vc-plan-picker > .vc-muted {
    line-height: 1.5;
    text-align: left;
  }

  .vc-billing-toggle button {
    font-size: 13px;
    padding-left: 7px;
    padding-right: 7px;
  }

  .vc-plan-card {
    padding: 20px;
  }

  .vc-plan-card h3 {
    font-size: 25px;
  }
}

@media (max-width: 420px) {
  .vc-app-logo {
    font-size: 22px;
  }

  .vc-app-logo small {
    font-size: 8px;
    max-width: 145px;
  }

  .vc-app-sidebar nav a {
    font-size: 12px;
    padding-left: 10px;
    padding-right: 10px;
  }

  .vc-app-main {
    padding-left: 10px;
    padding-right: 10px;
  }

  .vc-userbox {
    grid-template-columns: 1fr;
  }

  .vc-topbar-profile {
    justify-self: stretch;
  }

  .vc-mp-plan-head {
    grid-template-columns: 1fr;
  }

  .vc-mp-status {
    justify-self: start;
  }

  .vc-mp-detail {
    align-items: start;
    gap: 4px;
    grid-template-columns: 1fr;
  }

  .vc-mp-detail dd {
    text-align: left;
  }
}

/* v0.5.38.6 — patient actions and clinic branding for budget PDFs. */
.vc-patient-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
}

.vc-patient-actions a {
  margin-left: 0;
}

.vc-patient-actions form,
.vc-profile-delete-form {
  display: inline-flex;
  margin: 0;
}

.vc-patient-delete-button {
  appearance: none;
  background: transparent;
  border: 0;
  color: var(--vc-danger, #9f344f);
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 850;
  margin: 0;
  min-height: 0;
  padding: 0;
  text-decoration: none;
}

.vc-patient-delete-button:hover,
.vc-patient-delete-button:focus-visible {
  color: #7f2039;
  text-decoration: underline;
}

.vc-budget-logo-settings {
  align-items: start;
  background: #fff9fc;
  border: 1px solid var(--vc-line);
  border-radius: 14px;
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, .8fr) minmax(300px, 1.2fr);
  margin-top: 22px;
  padding: 20px;
}

.vc-budget-logo-settings h3 {
  margin: 0 0 8px;
}

.vc-budget-logo-settings > .vc-profile-upload-form {
  grid-column: 1 / -1;
}

.vc-budget-logo-control {
  display: grid;
  gap: 12px;
}

.vc-budget-logo-preview {
  align-items: center;
  background: #fff;
  border: 1px solid #ead8e2;
  border-radius: 12px;
  display: flex;
  justify-content: center;
  min-height: 112px;
  overflow: hidden;
  padding: 14px;
}

.vc-budget-logo-preview img {
  display: block;
  max-height: 86px;
  max-width: 100%;
  object-fit: contain;
}

.vc-budget-logo-preview.is-empty {
  color: var(--vc-muted);
  font-size: 13px;
  font-weight: 750;
}

.vc-budget-logo-upload {
  margin: 0;
}

.vc-budget-logo-remove {
  color: #7b4351;
  margin: 0;
}

@media (max-width: 700px) {
  .vc-patient-actions {
    align-items: flex-start;
    display: grid;
    grid-template-columns: 1fr;
  }

  .vc-patient-delete-button {
    min-height: 40px;
    text-align: left;
    width: auto;
  }

  .vc-budget-logo-settings {
    grid-template-columns: 1fr;
    padding: 16px;
  }

  .vc-profile-delete-form,
  .vc-profile-delete-form .vc-btn {
    width: 100%;
  }
}


/* v0.5.38.9 — appointment editing, visible clinical notes and team access guidance. */
.vc-appointment-notes,
.vc-photo-caption,
.vc-table-note {
  background: #fff8fb;
  border-left: 3px solid var(--vc-primary, #9a527c);
  border-radius: 8px;
  color: var(--vc-text, #302942);
  display: block;
  font-size: 13px;
  line-height: 1.5;
  margin: 8px 0 0;
  padding: 8px 10px;
  white-space: normal;
}

.vc-photo-caption {
  margin: 10px 0;
}

.vc-team-access-note {
  background: #f7f1f7;
  border: 1px solid var(--vc-line);
  border-radius: 12px;
  padding: 12px 14px;
}

.vc-mp-explanation {
  background: #fff8e6;
  border: 1px solid #ead49b;
  border-radius: 12px;
  color: #5d4c1a;
  margin: 16px 0 0;
  padding: 12px 14px;
}


.vc-inline-edit-link {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  margin-top: 7px;
  text-decoration: none;
}

/* Mercado Pago: secure primary-card replacement. */
.vc-mp-plan-actions {
    flex-wrap: wrap;
    align-items: flex-start;
}
.vc-mp-card-update {
    width: 100%;
    margin-top: 4px;
}
.vc-mp-card-update > summary {
    display: inline-flex;
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.vc-mp-card-update > summary::-webkit-details-marker {
    display: none;
}
.vc-mp-card-update-body {
    margin-top: 14px;
    padding: 18px;
    border: 1px solid #ead9e4;
    border-radius: 16px;
    background: #fff9fc;
}
.vc-mp-card-update-body h3 {
    margin: 0 0 8px;
}
.vc-mp-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 18px 0 12px;
}
.vc-mp-card-field {
    display: grid;
    gap: 7px;
    min-width: 0;
    font-weight: 700;
}
.vc-mp-card-field-wide {
    grid-column: 1 / -1;
}
.vc-mp-card-field input,
.vc-mp-card-field select,
.vc-mp-secure-field {
    width: 100%;
    min-height: 48px;
    box-sizing: border-box;
    border: 1px solid #d9c8d4;
    border-radius: 10px;
    background: #fff;
    padding: 12px 13px;
    font: inherit;
}
.vc-mp-secure-field {
    padding: 0 12px;
    display: flex;
    align-items: center;
}
.vc-mp-secure-field iframe {
    width: 100% !important;
    min-height: 42px !important;
}
.vc-mp-sdk-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.vc-mp-card-message {
    min-height: 22px;
    margin: 4px 0 12px;
    font-size: 14px;
}
.vc-mp-card-message.is-error,
.vc-mp-card-warning {
    color: #9b263a;
}
.vc-mp-card-message.is-success {
    color: #287044;
}
.vc-mp-card-message.is-info {
    color: #65516a;
}
.vc-mp-card-warning {
    width: 100%;
    margin: 8px 0 0;
}
@media (max-width: 680px) {
    .vc-mp-card-grid {
        grid-template-columns: 1fr;
    }
    .vc-mp-card-field-wide {
        grid-column: auto;
    }
    .vc-mp-card-update-body {
        padding: 15px;
    }
}
/* v0.5.38.10 — secure Mercado Pago card replacement and access-email controls. */

/* Customer-facing fallback when automatic Mercado Pago cancellation fails. */
.vc-mp-cancel-fallback {
  background: #fff8e6;
  border: 1px solid #ead49b;
  border-radius: 12px;
  margin-top: 14px;
  padding: 14px;
  width: 100%;
}

.vc-mp-cancel-fallback p {
  color: #5d4c1a;
  line-height: 1.55;
  margin: 0 0 12px;
}

.vc-mp-cancel-fallback .vc-btn {
  margin: 0 8px 8px 0;
}

@media (max-width: 700px) {
  .vc-mp-cancel-fallback .vc-btn {
    margin-right: 0;
    width: 100%;
  }
}

.vc-mp-cancel-fallback .vc-mp-fallback-sync {
  display: inline-block;
  margin: 0;
}

@media (max-width: 700px) {
  .vc-mp-cancel-fallback .vc-mp-fallback-sync {
    display: block;
    width: 100%;
  }
}


/* Suspended/expired/cancelled centres remain visible but strictly read-only. */
.vc-app-shell.is-readonly .vc-readonly-disabled button,
.vc-app-shell.is-readonly .vc-readonly-disabled input[type="submit"],
.vc-app-shell.is-readonly .vc-readonly-disabled input[type="file"],
.vc-app-shell.is-readonly .vc-readonly-upload-hidden,
.vc-app-shell.is-readonly .vc-readonly-link-disabled {
  display: none !important;
}
.vc-app-shell.is-readonly .vc-readonly-disabled input:not([type="hidden"]):disabled,
.vc-app-shell.is-readonly .vc-readonly-disabled select:disabled,
.vc-app-shell.is-readonly .vc-readonly-disabled textarea:disabled {
  cursor: not-allowed;
  opacity: 1;
  color: inherit;
  -webkit-text-fill-color: currentColor;
  background: #f7f3f6;
  border-color: #e5dce3;
}
.vc-app-shell.is-readonly .vc-readonly-disabled [data-vc-budget-add],
.vc-app-shell.is-readonly .vc-readonly-disabled [data-vc-budget-remove] {
  display: none !important;
}


/* v0.5.38.35 — mobile patient registration order + integrated support tickets. */
.vc-support-layout {
  align-items: start;
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
}

.vc-support-privacy-note {
  background: #fff8e8;
  border: 1px solid #ead8a9;
  border-radius: 12px;
  color: #5d4c1a;
  font-size: 13px;
  line-height: 1.55;
  margin: 0 0 18px;
  padding: 12px 14px;
}

.vc-support-ticket-list {
  display: grid;
  gap: 12px;
}

.vc-support-ticket-card {
  background: #fff;
  border: 1px solid var(--vc-line);
  border-radius: 14px;
  padding: 15px 16px;
}

.vc-support-ticket-card h3 {
  font-size: 16px;
  margin: 9px 0 7px;
}

.vc-support-ticket-card p {
  color: var(--vc-muted);
  line-height: 1.55;
  margin: 0 0 8px;
}

.vc-support-ticket-card small {
  color: var(--vc-muted);
}

.vc-support-ticket-head {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.vc-support-status {
  border-radius: 999px;
  display: inline-flex;
  font-size: 11px;
  font-weight: 800;
  padding: 5px 9px;
}

.vc-support-status-open {
  background: #fff2d9;
  color: #7a4c00;
}

.vc-support-status-in_progress {
  background: #eef0ff;
  color: #4f4a8a;
}

.vc-support-status-resolved,
.vc-support-status-closed {
  background: #eaf7ef;
  color: #27633c;
}

@media (max-width: 1080px) {
  .vc-support-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .vc-patients-layout .vc-patient-editor {
    order: 1;
  }

  .vc-patients-layout .vc-patients-directory {
    order: 2;
  }

  .vc-support-layout {
    gap: 14px;
  }
}


/* VisoClinic 0.5.38.40 — perfiles, tratamientos e indicaciones */
.vc-professional-profile { background: var(--vc-profile-bg, #fff8fc); border-radius: 22px; padding: 10px; }
.vc-professional-profile .vc-profile-intro { background: var(--vc-profile-bg, #fff8fc); }
.vc-agenda-card, .vc-calendar-event { border-left: 5px solid var(--vc-treatment-color, #c27aa9); }
.vc-treatment-swatch { display:inline-block; width:18px; height:18px; border-radius:50%; vertical-align:middle; margin-right:8px; border:1px solid rgba(0,0,0,.12); }
.vc-treatment-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.65fr); gap:20px; }
.vc-treatment-row { display:flex; gap:12px; align-items:center; justify-content:space-between; padding:12px 0; border-bottom:1px solid #eee; }
.vc-prescription-actions, .vc-budget-actions { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.vc-prescription-actions form, .vc-budget-actions form { margin:0; }
.vc-stars { font-size:20px; letter-spacing:2px; color:#b26998; }
.vc-review-card { padding:15px 0; border-bottom:1px solid #eee; }
@media(max-width:800px){.vc-treatment-grid{grid-template-columns:1fr}.vc-budget-actions,.vc-prescription-actions{width:100%}.vc-budget-actions .vc-btn,.vc-budget-actions form,.vc-budget-actions form .vc-btn{width:100%}}
