:root{
  --vv-navy:#153a6b;
  --vv-navy-strong:#102f5b;
  --vv-blue:#0788bd;
  --vv-blue-bright:#0a9dce;
  --vv-surface:#ffffff;
  --vv-bg:#f4f8fc;
  --vv-line:#d8e2ed;
  --vv-text:#17243a;
  --vv-muted:#66758b;
  --vv-shadow:0 14px 36px rgba(31,70,112,.09);
  --vv-radius:24px;
}
html{background:var(--vv-bg);scroll-behavior:smooth}
body.viaviva-patient-mobile{
  min-height:100dvh;
  color:var(--vv-text);
  background:
    radial-gradient(circle at 18% 5%,rgba(9,151,201,.08),transparent 30rem),
    linear-gradient(180deg,#f8fbfe 0,#f2f7fb 100%)!important;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
body.viaviva-patient-mobile .wrap{max-width:780px!important;margin:0 auto!important;padding:calc(16px + env(safe-area-inset-top)) 16px calc(28px + env(safe-area-inset-bottom))!important}
body.viaviva-patient-mobile .card{
  border:1px solid rgba(194,208,223,.72)!important;
  border-radius:var(--vv-radius)!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:var(--vv-shadow)!important;
  padding:24px!important;
  margin:0 0 18px!important;
}
body.viaviva-patient-mobile h1,body.viaviva-patient-mobile h2,body.viaviva-patient-mobile h3{color:var(--vv-navy-strong)!important;letter-spacing:-.02em}
body.viaviva-patient-mobile h2{font-size:clamp(26px,5vw,38px)!important;line-height:1.1!important}
body.viaviva-patient-mobile h3{font-size:clamp(21px,4vw,28px)!important;line-height:1.18!important;margin-bottom:20px!important}

/* Progress: visible while booking, compact and understandable without scrolling. */
.vv-booking-progress{margin:0 auto 18px;max-width:720px;padding:4px 6px 0}
.vv-progress-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;color:var(--vv-navy-strong);font-size:14px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.vv-progress-title span:last-child{color:var(--vv-muted);font-weight:650;letter-spacing:0;text-transform:none}
.vv-progress-track{height:12px;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;border-radius:999px;overflow:hidden;background:#e8eef5;box-shadow:inset 0 1px 2px rgba(20,58,107,.08)}
.vv-progress-segment{background:transparent;transition:background-color .25s ease}
.vv-progress-segment.done,.vv-progress-segment.active{background:linear-gradient(90deg,var(--vv-blue),var(--vv-blue-bright))}
.vv-step-labels{display:grid;grid-template-columns:repeat(5,1fr);margin-top:8px;color:#7b899c;font-size:11px;text-align:center}
.vv-step-labels span.active{color:var(--vv-navy);font-weight:800}

/* Brand card and separate live contact card. */
body.viaviva-patient-mobile .viaviva-brand-panel{
  display:grid!important;
  grid-template-columns:132px minmax(0,1fr)!important;
  gap:18px!important;
  align-items:center!important;
  text-align:center!important;
  overflow:visible!important;
}
body.viaviva-patient-mobile .viaviva-brand-panel .brand-app-side{grid-column:1!important;width:auto!important;display:flex!important;flex-direction:column!important;align-items:center!important;gap:8px!important;overflow:visible!important}
body.viaviva-patient-mobile .viaviva-brand-panel .viaviva-app-brand-icon{width:108px!important;height:108px!important;border-radius:24px!important;filter:drop-shadow(0 8px 12px rgba(22,58,107,.15))}
body.viaviva-patient-mobile .viaviva-brand-panel .vv11-product-name{width:auto!important;max-width:none!important;font-size:16px!important;line-height:1.2!important;overflow:visible!important}
body.viaviva-patient-mobile .viaviva-brand-panel .brand-center{grid-column:2!important;min-width:0!important}
body.viaviva-patient-mobile .viaviva-brand-panel .medical-center-title{font-size:clamp(17px,3vw,23px)!important;font-weight:750!important;letter-spacing:.02em!important}
body.viaviva-patient-mobile .viaviva-brand-panel .viva-name{font-size:clamp(28px,5vw,40px)!important;line-height:1.08!important;white-space:normal!important;margin:7px 0!important}
body.viaviva-patient-mobile .viaviva-brand-panel .online-title{font-size:clamp(15px,2.6vw,20px)!important;color:var(--vv-blue)!important;letter-spacing:.04em!important}
.vv-contact-card .brand-contact-side{display:grid!important;grid-template-columns:1fr 1fr!important;gap:14px!important;text-align:center!important;align-items:center!important}
.vv-contact-card .brand-phones{grid-column:1/-1;display:flex;justify-content:center;gap:10px 24px;flex-wrap:wrap}
.vv-contact-card .vv11-phone{font-size:18px;font-weight:650;color:var(--vv-blue)!important}
.vv-contact-card .viva-site-button,.vv-contact-card .vv11-navigation{margin:0!important;padding:13px 18px!important;border:1px solid #d8e2ed!important;border-radius:14px!important;background:#f3f7fb!important;color:var(--vv-navy)!important;font-weight:750!important;text-decoration:none!important}
.vv-contact-card .vv-contact-action{display:flex!important;align-items:center;justify-content:center;gap:9px;min-height:52px;font-size:17px}
.vv-contact-card .vv-contact-action svg{width:23px;height:23px;flex:0 0 23px;fill:none;stroke:var(--vv-blue);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.vv-contact-card .brand-address{grid-column:1/-1!important;text-align:center!important;font-size:17px;line-height:1.55;color:#25344a}

/* Entry choices. */
body.viaviva-patient-mobile .tabs{display:grid!important;grid-template-columns:1fr 1fr!important;gap:14px!important}
body.viaviva-patient-mobile .tabs>a{display:block!important;grid-column:1/-1!important;text-decoration:none!important}
body.viaviva-patient-mobile .tabs>a button{display:block!important;width:100%!important;margin:0!important}
body.viaviva-patient-mobile .tabs button{
  min-height:70px!important;
  border:1.5px solid var(--vv-blue)!important;
  border-radius:18px!important;
  padding:14px 12px!important;
  background:#fff!important;
  color:var(--vv-blue)!important;
  font-size:clamp(18px,3vw,24px)!important;
  line-height:1.2!important;
  font-weight:650!important;
}
body.viaviva-patient-mobile .tabs button.primary{background:linear-gradient(135deg,var(--vv-blue),var(--vv-blue-bright))!important;color:#fff!important;box-shadow:0 10px 20px rgba(7,136,189,.18)!important}
#viaviva-public-content-link{display:inline-block!important;margin:12px 0 0!important;padding:8px 12px;border-radius:999px;background:#f2f7fb;color:var(--vv-navy)!important;font-size:14px;font-weight:700;text-decoration:none}

/* Full-width, touch-friendly form language. */
body.viaviva-patient-mobile #bookingCard{min-height:min(620px,calc(100dvh - 150px));padding:clamp(20px,4vw,34px)!important}
body.viaviva-patient-mobile #bookingCard>h2{margin-bottom:8px!important}
body.viaviva-patient-mobile #bookingCard section:not(.hidden){animation:vv-step-in .22s ease-out}
body.viaviva-patient-mobile .wizard-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important}
body.viaviva-patient-mobile .field label{margin:0 0 7px!important;color:#35445b;font-size:15px;font-weight:700}
body.viaviva-patient-mobile input,body.viaviva-patient-mobile select,body.viaviva-patient-mobile textarea{
  min-height:52px!important;
  border:1.5px solid var(--vv-line)!important;
  border-radius:14px!important;
  padding:12px 14px!important;
  background:#fff!important;
  color:var(--vv-text)!important;
  box-shadow:0 1px 2px rgba(16,47,91,.03)!important;
}
body.viaviva-patient-mobile input:focus,body.viaviva-patient-mobile select:focus,body.viaviva-patient-mobile textarea:focus{outline:3px solid rgba(10,157,206,.16)!important;border-color:var(--vv-blue)!important}
body.viaviva-patient-mobile .wizard-search{display:grid!important;grid-template-columns:minmax(0,1fr) 52px!important;gap:8px!important}
body.viaviva-patient-mobile .search-icon-btn{width:52px!important;height:52px!important;border-color:var(--vv-line)!important;border-radius:14px!important;color:var(--vv-navy)!important;background:#f8fbfd!important}
body.viaviva-patient-mobile .vv-combobox{display:block!important;position:relative;margin-bottom:8px!important}
body.viaviva-patient-mobile .vv-combobox input{width:100%!important;padding-left:52px!important;padding-right:58px!important}
.vv-combobox-leading{position:absolute;z-index:2;left:16px;top:50%;width:23px;height:23px;transform:translateY(-50%);pointer-events:none;color:var(--vv-blue)}
.vv-combobox-leading svg,.vv-info-action svg{display:block;width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.viaviva-patient-mobile .vv-combobox .search-icon-btn{position:absolute!important;z-index:3;right:3px;top:3px;width:46px!important;height:46px!important;min-height:46px!important;padding:10px!important;border:0!important;background:transparent!important;box-shadow:none!important}
body.viaviva-patient-mobile .vv-combobox .search-icon-btn svg{display:block!important;width:24px!important;height:24px!important;margin:auto!important;fill:none!important;stroke:var(--vv-blue)!important;stroke-width:2!important;stroke-linecap:round!important;stroke-linejoin:round!important}
.vv-native-select-hidden{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}
body.viaviva-patient-mobile .wizard-suggestions{position:absolute!important;z-index:40;left:0;right:0;margin:2px 0 0!important;max-height:min(42dvh,320px)!important;border-radius:14px!important;box-shadow:0 14px 34px rgba(16,47,91,.2)!important}
body.viaviva-patient-mobile.vv-booking-view #bookingCard{overflow:visible!important}
body.viaviva-patient-mobile .wizard-suggestions{overflow-y:auto!important;overscroll-behavior:contain!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-y!important}
body.viaviva-patient-mobile .wizard-suggestions button{min-height:48px!important;padding:11px 14px!important;color:var(--vv-text)!important;font-weight:600!important;line-height:1.3!important}
body.viaviva-patient-mobile .wizard-suggestions button:focus-visible{position:relative;z-index:1;background:#eaf7fc!important;outline:3px solid rgba(10,157,206,.25)!important;outline-offset:-3px!important}
body.viaviva-patient-mobile .field{position:relative}
.vv-info-action{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;width:max-content!important;min-height:38px!important;margin:4px 0 0!important;padding:7px 10px!important;border:0!important;background:transparent!important;color:var(--vv-blue)!important;box-shadow:none!important;font-size:14px!important;font-weight:750!important}
.vv-info-action[hidden]{display:none!important}.vv-empty-context-host:empty{display:none!important}
body.viaviva-patient-mobile button{min-height:48px;border-radius:14px!important;font-weight:700}
body.viaviva-patient-mobile button.primary{border-color:var(--vv-navy)!important;background:var(--vv-navy)!important;color:#fff!important;box-shadow:0 8px 18px rgba(16,47,91,.16)}
body.viaviva-patient-mobile button:disabled{opacity:.48!important;box-shadow:none!important}
body.viaviva-patient-mobile .wizard-actions{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)!important;gap:12px!important;margin-top:24px!important}
body.viaviva-patient-mobile .wizard-actions button{width:100%!important;min-height:54px!important}
body.viaviva-patient-mobile #wizardDate .quick-dates{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin-top:10px!important}
body.viaviva-patient-mobile #wizardDate .quick-dates button{min-height:52px!important;padding:10px 6px!important;border:1.5px solid var(--vv-line)!important;background:#f3f7fb!important;color:var(--vv-navy)!important;font-size:16px!important;font-weight:750!important}
body.viaviva-patient-mobile #wizardDate .quick-dates button.selected{border-color:var(--vv-blue)!important;background:var(--vv-blue)!important;color:#fff!important;box-shadow:0 5px 14px rgba(10,157,206,.2)!important}
body.viaviva-patient-mobile #wizardDate .wizard-price-row{display:none!important}
body.viaviva-patient-mobile .wizard-summary{border:1px solid var(--vv-line);border-radius:16px!important;background:#f3f7fb!important;line-height:1.65!important}
body.viaviva-patient-mobile .notice{background:#f4f8fc!important;border:1px solid #dde7f0}
body.viaviva-patient-mobile .wizard-success{border-color:#62b584!important;background:#effaf3!important}
body.viaviva-patient-mobile .wizard-error{padding:10px 0;color:#b42318!important}
.vv-review-grid{display:grid;gap:10px;margin:16px 0 20px}
.vv-review-row{display:grid;grid-template-columns:minmax(110px,.6fr) minmax(0,1.4fr);gap:14px;padding:12px 14px;border-bottom:1px solid #e5ebf2}
.vv-review-row:last-child{border-bottom:0}.vv-review-label{color:var(--vv-muted);font-weight:650}.vv-review-value{color:var(--vv-navy-strong);font-weight:750;overflow-wrap:anywhere}
.vv-review-note{margin-top:16px;color:var(--vv-muted);font-size:14px;line-height:1.5}
.vv-account-booking-action{width:100%;margin:14px 0 20px;padding:14px!important}
.vv-account-back{margin:0 0 18px!important;padding:9px 13px!important;background:#f3f7fb!important;color:var(--vv-navy)!important;border-color:var(--vv-line)!important}

body.vv-entry-view #bookingCard,body.vv-entry-view #authCard{display:none!important}
body.vv-account-view #bookingCard{display:none!important}
body.vv-booking-view .vv-entry-tabs-card,body.vv-booking-view .vv-contact-card{display:none!important}
body.vv-account-view .vv-entry-tabs-card,body.vv-account-view .vv-contact-card{display:none!important}
body.vv-booking-view .viaviva-brand-panel,body.vv-account-view .viaviva-brand-panel{display:none!important}
body.vv-entry-view .vv-entry-tabs-card{display:block!important}
body.vv-booking-view .vv-booking-progress{position:sticky;top:0;z-index:70;margin-bottom:10px;padding:9px 6px 10px;background:rgba(244,248,252,.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
body.vv-booking-view #bookingTitle{display:none!important}

@keyframes vv-step-in{from{opacity:.25;transform:translateX(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.vv-progress-segment,body.viaviva-patient-mobile #bookingCard section:not(.hidden){animation:none!important;transition:none!important}}
@media (max-width:700px){
  body.viaviva-patient-mobile .wrap{padding:12px 12px calc(24px + env(safe-area-inset-bottom))!important}
  body.viaviva-patient-mobile .card{padding:18px!important;border-radius:20px!important;margin-bottom:14px!important}
  body.viaviva-patient-mobile .viaviva-brand-panel{grid-template-columns:92px minmax(0,1fr)!important;gap:12px!important}
  body.viaviva-patient-mobile .viaviva-brand-panel .viaviva-app-brand-icon{width:78px!important;height:78px!important;border-radius:18px!important}
  body.viaviva-patient-mobile .viaviva-brand-panel .vv11-product-name{font-size:12px!important}
  body.viaviva-patient-mobile .viaviva-brand-panel .medical-center-title{font-size:15px!important}
  body.viaviva-patient-mobile .viaviva-brand-panel .viva-name{font-size:clamp(22px,6.5vw,30px)!important}
  body.viaviva-patient-mobile .viaviva-brand-panel .online-title{font-size:13px!important}
  .vv-contact-card .brand-contact-side{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}.vv-contact-card .brand-phones,.vv-contact-card .brand-address{grid-column:1/-1!important}
  .vv-contact-card .vv-contact-action{padding:11px 8px!important;min-height:50px;font-size:16px}
  body.viaviva-patient-mobile .tabs{gap:10px!important}
  body.viaviva-patient-mobile .tabs button{min-height:64px!important;font-size:17px!important;padding:10px 7px!important}
  body.viaviva-patient-mobile #bookingCard{min-height:calc(100dvh - 118px);padding:18px!important}
  body.viaviva-patient-mobile #bookingCard>h2{font-size:24px!important}
  body.viaviva-patient-mobile #bookingCard h3{font-size:21px!important;margin-bottom:16px!important}
  body.viaviva-patient-mobile .wizard-grid{grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
  body.viaviva-patient-mobile .wizard-search{grid-template-columns:minmax(0,1fr) 52px!important}
  .vv-step-labels{display:none}.vv-progress-title{font-size:13px}.vv-progress-track{height:10px}
  .vv-review-row{grid-template-columns:1fr;gap:4px;padding:10px 4px}
}
@media (max-width:330px){
  body.viaviva-patient-mobile .viaviva-brand-panel{grid-template-columns:76px minmax(0,1fr)!important}
  body.viaviva-patient-mobile .viaviva-brand-panel .viaviva-app-brand-icon{width:66px!important;height:66px!important}
  body.viaviva-patient-mobile .tabs button{min-height:54px!important;font-size:15px!important}
}

/* Step 3 calendar refinement V9 */
body.viaviva-patient-mobile #wizardDate .wizard-icon-field{position:relative;color:var(--vv-blue)}
body.viaviva-patient-mobile #wizardDate .wizard-icon-field>svg{position:absolute;left:16px;top:50%;z-index:2;width:23px;height:23px;transform:translateY(-50%);pointer-events:none}
body.viaviva-patient-mobile #wizardDate .wizard-icon-field>input,body.viaviva-patient-mobile #wizardDate .wizard-icon-field>select{width:100%;padding-left:52px!important}
body.viaviva-patient-mobile #wizardDate .calendar-btn{gap:8px!important}
body.viaviva-patient-mobile #wizardDate .calendar-btn svg{width:22px;height:22px}
body.viaviva-patient-mobile #wizardDate .patient-calendar-head{grid-template-columns:42px minmax(0,1fr) 42px 42px!important;gap:5px!important;margin-bottom:7px!important}
body.viaviva-patient-mobile #wizardDate .patient-calendar-close{border-color:var(--vv-line)!important;background:#f4f8fc!important;color:var(--vv-blue)!important;font-size:26px!important;line-height:1!important}
body.viaviva-patient-mobile #wizardDate .patient-calendar-legend{display:grid!important;grid-template-columns:repeat(3,max-content)!important;justify-content:center!important;gap:5px 10px!important;margin:0 0 8px!important;color:var(--vv-muted)!important;font-size:11px!important;line-height:1.25!important}
body.viaviva-patient-mobile #wizardDate .patient-calendar-legend span{white-space:nowrap}
body.viaviva-patient-mobile #wizardDate .patient-calendar-legend i{width:13px!important;height:13px!important;margin-right:4px!important}
body.viaviva-patient-mobile #wizardDate .patient-calendar-legend i.working{background:#e8f8f0!important}
body.viaviva-patient-mobile #wizardDate .patient-calendar-legend i.booked{background:#fdeaea!important;border-color:#e8b8b8!important}
body.viaviva-patient-mobile #wizardDate .patient-calendar-legend i.other-procedure{background:#fff5d6!important;border-color:#e8d69b!important}
body.viaviva-patient-mobile #wizardDate .patient-calendar-legend i.nonworking{background:#edf1f5!important}
body.viaviva-patient-mobile #wizardDate .patient-calendar-legend i.vacation{background:#fff!important;border:2px solid #7f9bbb!important}
body.viaviva-patient-mobile #wizardDate .patient-calday{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;line-height:1.05!important}
body.viaviva-patient-mobile #wizardDate .patient-calday small{display:block;font-size:8px;font-weight:800;color:var(--vv-navy)!important}
body.viaviva-patient-mobile #wizardDate .patient-calday.working{background:#e8f8f0!important}
body.viaviva-patient-mobile #wizardDate .patient-calday.booked{background:#fdeaea!important;color:#a95050!important;border-color:#e8b8b8!important}
body.viaviva-patient-mobile #wizardDate .patient-calday.other-procedure{background:#fff5d6!important;color:#8a6b12!important;border-color:#e8d69b!important}
body.viaviva-patient-mobile #wizardDate .patient-calday.nonworking{background:#edf1f5!important;color:#8b96a5!important}
body.viaviva-patient-mobile #wizardDate .patient-calday.vacation{background:#fff!important;color:var(--vv-navy)!important;border:2px solid #7f9bbb!important}
body.viaviva-patient-mobile #wizardDate .patient-calday.selected{outline:3px solid var(--vv-navy)!important;outline-offset:1px!important;box-shadow:inset 0 0 0 2px #fff!important}
body.viaviva-patient-mobile #wizardDate.calendar-open>h3{margin-bottom:8px!important;font-size:19px!important}
body.viaviva-patient-mobile #wizardDate.calendar-open .date-field>label,body.viaviva-patient-mobile #wizardDate.calendar-open .date-entry,body.viaviva-patient-mobile #wizardDate.calendar-open #quickDates{display:none!important}
body.viaviva-patient-mobile #wizardDate.calendar-open .patient-calendar-panel{margin-top:0!important;padding:8px!important}
body.viaviva-patient-mobile #wizardDate.calendar-open .wizard-grid{gap:8px!important}
body.viaviva-patient-mobile #wizardDate.calendar-open .time-field label{margin-bottom:4px!important}
body.viaviva-patient-mobile #wizardDate.calendar-open .wizard-actions{margin-top:10px!important}
@media(max-width:700px){body.viaviva-patient-mobile #wizardDate.calendar-open .patient-calday{min-height:39px!important;padding:2px!important;font-size:13px!important}body.viaviva-patient-mobile #wizardDate.calendar-open .patient-calendar-grid{gap:3px!important}}

/* Step 3 open-calendar viewport positioning V10 */
body.viaviva-patient-mobile.vv-calendar-open .vv-booking-progress{position:static!important}
body.viaviva-patient-mobile.vv-calendar-open #bookingCard{padding-top:12px!important;padding-bottom:12px!important;min-height:0!important}
body.viaviva-patient-mobile.vv-calendar-open #wizardDate{scroll-margin-top:6px}
body.viaviva-patient-mobile.vv-calendar-open #wizardDate .patient-calendar-panel{margin-bottom:0!important}
body.viaviva-patient-mobile.vv-calendar-open #wizardDate .time-field{margin-top:0!important}
body.viaviva-patient-mobile.vv-calendar-open #wizardDate .wizard-actions button{min-height:50px!important}

/* Compact data and final review V12 */
body.viaviva-patient-mobile #wizardData #dataSummary{display:none!important}
body.viaviva-patient-mobile #wizardData h3{margin-bottom:12px!important}
body.viaviva-patient-mobile #wizardData #guestFields{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}
body.viaviva-patient-mobile #wizardData #guestFields.hidden{display:none!important}
body.viaviva-patient-mobile #wizardData .field{margin:0!important}
body.viaviva-patient-mobile #wizardData .field label{margin-bottom:4px!important;font-size:15px!important}
body.viaviva-patient-mobile #wizardData input,body.viaviva-patient-mobile #wizardData select{min-height:50px!important;padding-top:9px!important;padding-bottom:9px!important}
body.viaviva-patient-mobile #wizardData>.field{margin-top:10px!important}
body.viaviva-patient-mobile #wizardData .wizard-actions{margin-top:14px!important}
.vv-required-note{grid-column:1/-1;margin:0 0 1px!important;color:var(--vv-muted);font-size:12px;line-height:1.3}
.vv-required-note span,.vv-required-star{color:var(--vv-blue)!important;font-weight:900}
body.viaviva-patient-mobile .vv-invalid{border-color:#c85b62!important;box-shadow:0 0 0 3px rgba(200,91,98,.12)!important}
body.viaviva-patient-mobile #wizardReview .privacy-consent{margin:10px 0 0!important;padding:10px!important;border-radius:12px!important;font-size:13px!important;line-height:1.4!important}
body.viaviva-patient-mobile #wizardReview .vv-review-grid{margin:10px 0!important}
body.viaviva-patient-mobile #wizardReview .vv-review-note{margin:10px 0!important}

/* Compact two-card review V13 */
body.viaviva-patient-mobile #wizardReview>h3{margin-bottom:9px!important;font-size:20px!important}
body.viaviva-patient-mobile #wizardReview .vv-review-card{margin:0 0 8px;padding:9px 11px;border:1px solid var(--vv-line);border-radius:15px;background:#f4f8fc}
body.viaviva-patient-mobile #wizardReview .vv-review-card h4{margin:0 0 5px;color:var(--vv-navy);font-size:14px;line-height:1.2}
body.viaviva-patient-mobile #wizardReview .vv-review-grid{display:grid;gap:0;margin:0!important}
body.viaviva-patient-mobile #wizardReview .vv-review-row{grid-template-columns:minmax(82px,.55fr) minmax(0,1.45fr);gap:8px;padding:5px 2px;border-bottom:1px solid #e0e8f0;font-size:12px;line-height:1.25}
body.viaviva-patient-mobile #wizardReview .vv-review-row:last-child{border-bottom:0}
body.viaviva-patient-mobile #wizardReview .vv-review-label{font-size:11px}
body.viaviva-patient-mobile #wizardReview .vv-review-value{font-size:12px}
body.viaviva-patient-mobile #wizardReview .vv-patient-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px}
body.viaviva-patient-mobile #wizardReview .vv-patient-meta .vv-review-row{display:block;padding:5px 2px;border:0}
body.viaviva-patient-mobile #wizardReview .vv-patient-meta span{display:block;margin-bottom:2px}
body.viaviva-patient-mobile #wizardReview .privacy-consent{margin:6px 0 0!important;padding:7px 8px!important;font-size:11px!important;line-height:1.3!important}
body.viaviva-patient-mobile #wizardReview .privacy-link{font-size:inherit!important}
body.viaviva-patient-mobile #wizardReview .vv-review-note{margin:6px 1px!important;font-size:10px!important;line-height:1.25!important}
body.viaviva-patient-mobile #wizardReview .wizard-actions{margin-top:8px!important}
body.viaviva-patient-mobile #wizardReview .wizard-actions button{min-height:48px!important;padding:8px!important;font-size:14px!important}

/* Compact consent and complete review viewport V14 */
body.viaviva-patient-mobile.vv-review-open #bookingCard{min-height:0!important;padding:10px 12px 12px!important}
body.viaviva-patient-mobile.vv-review-open .vv-booking-progress{position:static!important;margin-bottom:6px!important;padding:4px 6px 6px!important}
body.viaviva-patient-mobile.vv-review-open .vv-progress-title{margin-bottom:5px!important}
body.viaviva-patient-mobile.vv-review-open .vv-progress-track{height:8px!important}
body.viaviva-patient-mobile #wizardReview .privacy-consent{display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;align-items:start!important;gap:7px!important;margin:5px 0 0!important;padding:7px 8px!important}
body.viaviva-patient-mobile #wizardReview #privacy{display:block!important;-webkit-appearance:checkbox!important;appearance:auto!important;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;max-width:22px!important;margin:0!important;padding:0!important;border:1px solid var(--vv-line)!important;border-radius:5px!important;box-shadow:none!important;accent-color:var(--vv-blue)!important}
body.viaviva-patient-mobile #wizardReview .vv-privacy-copy{display:block!important;min-width:0;font-size:11px!important;line-height:1.3!important;color:var(--vv-text)}
body.viaviva-patient-mobile #wizardReview .vv-privacy-copy label{display:inline!important;margin:0!important;font:inherit!important;cursor:pointer}
body.viaviva-patient-mobile #wizardReview .privacy-link{display:inline!important;width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--vv-navy)!important;font:inherit!important;line-height:inherit!important;vertical-align:baseline!important;text-decoration:underline!important}
body.viaviva-patient-mobile.vv-review-open #wizardReview>h3{margin-bottom:6px!important;font-size:18px!important}
body.viaviva-patient-mobile.vv-review-open #wizardReview .vv-review-card{margin-bottom:6px!important;padding:7px 9px!important}
body.viaviva-patient-mobile.vv-review-open #wizardReview .vv-review-row{padding:4px 2px!important}
body.viaviva-patient-mobile.vv-review-open #wizardReview .vv-review-note{margin:4px 1px!important}
body.viaviva-patient-mobile.vv-review-open #wizardReview .wizard-actions{margin-top:6px!important}

/* Patient account: separate sign-in and registration V15 */
body.viaviva-patient-mobile.vv-account-view .vv-booking-progress{display:none!important}
body.viaviva-patient-mobile.vv-account-view #authCard{max-width:720px;margin:0 auto!important;min-height:0!important}
body.viaviva-patient-mobile #authCard>h2{margin:0 0 14px!important}
body.viaviva-patient-mobile #authCard .vv-auth-view>h3{margin:0 0 14px!important}
body.viaviva-patient-mobile #loginView{max-width:560px;margin:0 auto}
body.viaviva-patient-mobile #loginView .field{margin-bottom:12px!important}
body.viaviva-patient-mobile #registrationView:not(.hidden){display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}
body.viaviva-patient-mobile #registrationView>h3,body.viaviva-patient-mobile #registrationView>.vv-required-note,body.viaviva-patient-mobile #registrationView>.vv-registration-consent,body.viaviva-patient-mobile #registrationView>.vv-auth-actions{grid-column:1/-1}
body.viaviva-patient-mobile #registrationView .field{margin:0!important}
body.viaviva-patient-mobile #registrationView .field label{margin-bottom:4px!important;font-size:14px!important}
body.viaviva-patient-mobile #registrationView .field small{display:block;margin:4px 2px 0;color:var(--vv-muted);font-size:11px;line-height:1.3}
body.viaviva-patient-mobile #registrationView input:not([type="checkbox"]){width:100%!important;min-height:50px!important}
body.viaviva-patient-mobile .vv-auth-actions{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.35fr);gap:10px;margin-top:14px}
body.viaviva-patient-mobile .vv-auth-actions button{width:100%!important;min-height:52px!important;padding:9px 12px!important}
body.viaviva-patient-mobile .vv-registration-consent{display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;gap:8px!important;align-items:start!important;margin-top:3px;padding:9px 10px;border:1px solid var(--vv-line);border-radius:13px;background:#f4f8fc}
body.viaviva-patient-mobile #authCard #regPrivacy{display:block!important;-webkit-appearance:checkbox!important;appearance:auto!important;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;max-width:22px!important;margin:0!important;padding:0!important;box-shadow:none!important;accent-color:var(--vv-blue)!important}
body.viaviva-patient-mobile .vv-registration-consent label{margin:0!important;font-size:12px!important;line-height:1.35!important;color:var(--vv-text);cursor:pointer}
body.viaviva-patient-mobile .vv-registration-success{max-width:560px;margin:14px auto 0;padding:18px;border:2px solid #62b584;border-radius:18px;background:#effaf3;color:#087a45;text-align:center}
body.viaviva-patient-mobile .vv-registration-success strong{display:block;font-size:20px;line-height:1.3}
body.viaviva-patient-mobile .vv-registration-success p{margin:8px 0 14px;color:#315b49}
body.viaviva-patient-mobile .vv-registration-success button{min-width:180px}
body.viaviva-patient-mobile #authMsg.success{margin-top:12px;padding:10px;border:1px solid #62b584;border-radius:12px;background:#effaf3;color:#087a45;font-weight:700}
body.viaviva-patient-mobile #authMsg.error:not(:empty){margin-top:12px;padding:10px;border:1px solid #e5b4b7;border-radius:12px;background:#fff3f3;color:#a53d45;font-weight:700}
@media(max-width:700px){
  body.viaviva-patient-mobile.vv-account-view #authCard{padding:16px!important}
  body.viaviva-patient-mobile #authCard>h2{font-size:24px!important;margin-bottom:10px!important}
  body.viaviva-patient-mobile #registrationView:not(.hidden){grid-template-columns:1fr;gap:8px}
  body.viaviva-patient-mobile #registrationView>h3,body.viaviva-patient-mobile #registrationView>.vv-required-note,body.viaviva-patient-mobile #registrationView>.vv-registration-consent,body.viaviva-patient-mobile #registrationView>.vv-auth-actions{grid-column:1}
  body.viaviva-patient-mobile #registrationView .field label{font-size:13px!important}
  body.viaviva-patient-mobile #registrationView input:not([type="checkbox"]){min-height:46px!important;padding-top:8px!important;padding-bottom:8px!important}
  body.viaviva-patient-mobile .vv-auth-actions{margin-top:10px}
  body.viaviva-patient-mobile .vv-auth-actions button{min-height:48px!important;font-size:13px!important}
}

/* Two short registration steps V16 */
body.viaviva-patient-mobile #registrationView:not(.hidden){display:block!important}
body.viaviva-patient-mobile.vv-registration-active #authCard>h2{display:none!important}
body.viaviva-patient-mobile #registrationView>h3{margin-bottom:8px!important}
body.viaviva-patient-mobile .vv-reg-progress{margin:0 0 8px;padding:8px 10px;border:1px solid var(--vv-line);border-radius:13px;background:#f4f8fc}
body.viaviva-patient-mobile .vv-reg-progress>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;color:var(--vv-navy);font-size:12px}
body.viaviva-patient-mobile .vv-reg-progress span{color:var(--vv-muted);font-weight:700}
body.viaviva-patient-mobile .vv-reg-track{display:grid;grid-template-columns:1fr 1fr;gap:3px;height:7px;overflow:hidden;border-radius:99px;background:#e4ebf3}
body.viaviva-patient-mobile .vv-reg-track i{background:transparent}
body.viaviva-patient-mobile .vv-reg-track i.active{background:linear-gradient(90deg,var(--vv-blue),var(--vv-blue-bright))}
body.viaviva-patient-mobile #registrationView>.vv-required-note{margin:0 0 7px!important}
body.viaviva-patient-mobile .vv-registration-step:not(.hidden){display:grid;grid-template-columns:1fr 1fr;gap:9px 14px}
body.viaviva-patient-mobile .vv-registration-step>.vv-registration-consent,body.viaviva-patient-mobile .vv-registration-step>.vv-auth-actions{grid-column:1/-1}
body.viaviva-patient-mobile .vv-registration-step .vv-auth-actions{margin-top:3px}
body.viaviva-patient-mobile .vv-registration-step .vv-auth-actions.vv-single-action{grid-template-columns:1fr}

/* Compact signed-in patient account V21 */
body.viaviva-patient-mobile #loggedIn:not(.hidden){display:block}
body.viaviva-patient-mobile #loggedIn .vv-account-booking-action{min-height:50px!important;margin:0 0 10px!important;padding:10px 14px!important;font-size:16px!important}
body.viaviva-patient-mobile #loggedIn .vv-account-header{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;align-items:center!important;gap:7px!important;margin:0 0 10px!important;padding:9px 10px!important;border:1px solid var(--vv-line);border-radius:14px;background:#f4f8fc}
body.viaviva-patient-mobile #loggedIn #accountWho{min-width:0;font-size:13px!important;line-height:1.3!important;font-weight:750!important;color:var(--vv-navy)!important;overflow-wrap:anywhere!important}
body.viaviva-patient-mobile #loggedIn #logoutBtn,body.viaviva-patient-mobile #loggedIn #point8PasswordButton{width:auto!important;min-width:0!important;min-height:42px!important;margin:0!important;padding:7px 9px!important;font-size:12px!important;line-height:1.15!important;white-space:normal!important}
body.viaviva-patient-mobile #loggedIn>h3{margin:10px 0 5px!important;font-size:19px!important;line-height:1.15!important}
body.viaviva-patient-mobile #loggedIn>p{margin:0 0 9px!important;color:var(--vv-muted)!important;font-size:12px!important;line-height:1.4!important}
body.viaviva-patient-mobile #loggedIn #profiles{display:grid;gap:7px}
body.viaviva-patient-mobile #loggedIn #profiles .notice{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:7px!important;margin:0!important;padding:9px 10px!important;border-radius:13px!important}
body.viaviva-patient-mobile #loggedIn #profiles label{display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;align-items:center!important;gap:7px!important;margin:0!important;font-size:13px!important;line-height:1.35!important}
body.viaviva-patient-mobile #loggedIn #profiles input[type="radio"]{width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;margin:0!important;accent-color:var(--vv-blue)!important}
body.viaviva-patient-mobile #loggedIn #profiles button{min-height:40px!important;padding:6px 8px!important;font-size:12px!important}
body.viaviva-patient-mobile #loggedIn #showAddProfileBtn{width:100%!important;min-height:44px!important;margin:7px 0 4px!important;padding:8px 12px!important;font-size:14px!important}
body.viaviva-patient-mobile #loggedIn #appointments{font-size:13px!important;line-height:1.4!important}
body.viaviva-patient-mobile #loggedIn #appointments .notice{margin:0 0 7px!important;padding:9px 10px!important;border-radius:13px!important}
body.viaviva-patient-mobile #loggedIn #appointments button{min-height:40px!important;margin-top:6px!important;padding:6px 8px!important;font-size:12px!important}
@media(max-width:700px){
  body.viaviva-patient-mobile .vv-registration-step:not(.hidden){grid-template-columns:1fr;gap:7px}
  body.viaviva-patient-mobile .vv-registration-step>.vv-registration-consent,body.viaviva-patient-mobile .vv-registration-step>.vv-auth-actions{grid-column:1}
  body.viaviva-patient-mobile #registrationView>h3{font-size:20px!important}
  body.viaviva-patient-mobile .vv-reg-progress{padding:7px 9px;margin-bottom:6px}
  body.viaviva-patient-mobile #registrationView>.vv-required-note{font-size:11px!important;margin-bottom:5px!important}
  body.viaviva-patient-mobile .vv-registration-step .vv-auth-actions{margin-top:2px}
}
