/* VCare Web 29.2 — final unified mobile normalization. Loaded after legacy module CSS. */
:root{--vcare-29-2-nav-h:78px}
body.vcare-iso-ready{overflow-x:hidden!important}
body.vcare-iso-ready *{min-width:0}
body.vcare-iso-ready img{max-width:100%;height:auto}

/* A page that already owns an RC28 header must never receive the legacy generated app bar. */
body.rc28-page>.vcare-rc22-appbar,
body.rc28-page .vcare-rc22-appbar.vcare-rc22-legacy-header-hidden{display:none!important}
body.rc28-page .rc28-topbar{display:flex!important;visibility:visible!important}
body.rc28-page .rc28-launch-splash{display:none!important}

/* RC28 patient shell */
body.rc28-page .rc28-app-shell{width:min(100%,1180px)!important;max-width:1180px!important;margin-inline:auto!important;padding-bottom:calc(var(--vcare-29-2-nav-h) + 34px + env(safe-area-inset-bottom))!important}
body.rc28-page .rc28-topbar{min-height:72px!important;padding:max(10px,env(safe-area-inset-top)) 16px 10px!important;gap:10px!important;background:color-mix(in srgb,var(--iso-glass-strong) 94%,transparent)!important}
body.rc28-page .rc28-brand{gap:9px!important;max-width:calc(100% - 156px)!important}
body.rc28-page .rc28-brand-mark{width:40px!important;height:40px!important;min-width:40px!important;border-radius:13px!important}
body.rc28-page .rc28-brand strong{font-size:16px!important;line-height:1.1!important}
body.rc28-page .rc28-brand small{font-size:10px!important;max-width:42vw!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
body.rc28-page .rc28-top-actions{gap:6px!important;flex:0 0 auto!important}
body.rc28-page :is(.rc28-icon-button,.rc28-avatar){width:40px!important;height:40px!important;min-width:40px!important}
body.rc28-page .rc28-content{width:100%!important;max-width:1180px!important;margin-inline:auto!important;padding:18px 16px 34px!important}

/* Hero must stay inside the viewport and preserve the medical artwork. */
body.rc28-page .rc28-hero-card{width:100%!important;min-height:260px!important;padding:24px!important;border-radius:28px!important;overflow:hidden!important;display:block!important}
body.rc28-page .rc28-hero-medical .rc28-hero-copy{position:relative!important;z-index:5!important;max-width:56%!important}
body.rc28-page .rc28-hero-medical .rc28-hero-copy h2{font-size:clamp(30px,8vw,48px)!important;line-height:1.02!important;margin:0!important;overflow-wrap:normal!important;word-break:normal!important}
body.rc28-page .rc28-hero-medical .rc28-hero-copy p{font-size:12px!important;line-height:1.55!important;max-width:320px!important}
body.rc28-page .rc28-hero-team{position:absolute!important;z-index:2!important;inset-inline-end:-2%!important;bottom:0!important;width:48%!important;height:100%!important;display:flex!important;align-items:flex-end!important;justify-content:flex-end!important;overflow:hidden!important}
body.rc28-page .rc28-hero-team img{display:block!important;width:100%!important;height:100%!important;max-height:100%!important;object-fit:cover!important;object-position:center bottom!important;border-radius:0!important}

/* Premium card: never collapse the text into one-character columns. */
body.rc28-page .rc28-premium-card{width:100%!important;min-height:92px!important;display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;align-items:center!important;gap:14px!important;padding:16px 18px!important;border-radius:24px!important;overflow:hidden!important}
body.rc28-page .rc28-premium-brand{width:58px!important;height:58px!important;min-width:58px!important;padding:7px!important}
body.rc28-page .rc28-premium-card>div:nth-child(2){min-width:0!important;width:auto!important;display:block!important}
body.rc28-page .rc28-premium-card :is(small,h3,a){writing-mode:horizontal-tb!important;text-orientation:mixed!important;word-break:normal!important;overflow-wrap:normal!important;white-space:normal!important;max-width:none!important}
body.rc28-page .rc28-premium-card small{display:block!important;font-size:10px!important;line-height:1.3!important}
body.rc28-page .rc28-premium-card h3{font-size:14px!important;line-height:1.35!important;margin:4px 0 0!important}
body.rc28-page .rc28-premium-card>a{font-size:11px!important;line-height:1.25!important;text-align:center!important;white-space:nowrap!important}

/* Shared bottom navigation: no truncated Appointments label. */
body.rc28-page .rc28-bottom-nav{width:min(calc(100% - 20px),720px)!important;min-height:var(--vcare-29-2-nav-h)!important;bottom:max(10px,env(safe-area-inset-bottom))!important;padding:7px!important;gap:2px!important;border-radius:24px!important;display:flex!important;align-items:stretch!important}
body.rc28-page .rc28-bottom-nav a{flex:1 1 20%!important;min-width:0!important;max-width:20%!important;padding:7px 2px!important;gap:4px!important;border-radius:18px!important}
body.rc28-page .rc28-bottom-nav a span{font-size:19px!important;line-height:1!important}
body.rc28-page .rc28-bottom-nav a b{display:block!important;width:100%!important;max-width:100%!important;font-size:9.5px!important;line-height:1.08!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:normal!important;word-break:normal!important;text-align:center!important}
body.rc28-page .rc28-bottom-nav .rc28-center-nav{margin-top:0!important}
body.rc28-page .rc28-bottom-nav .rc28-center-nav span{width:auto!important;height:auto!important;background:transparent!important;color:inherit!important;box-shadow:none!important}

/* Form/control normalization across patient/store/home-care */
body.vcare-iso-ready :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea,.vstore-input,.vstore-select,.vhome-input,.vhome-select,.vhome-textarea){width:100%!important;max-width:100%!important;border:1px solid var(--iso-line)!important;background:var(--iso-glass-strong)!important;color:var(--iso-text)!important;border-radius:16px!important;box-shadow:none!important}
body.vcare-iso-ready :is(input:not([type="checkbox"]):not([type="radio"]),select,.vstore-input,.vstore-select,.vhome-input,.vhome-select){min-height:54px!important;padding:0 15px!important}
body.vcare-iso-ready :is(textarea,.vhome-textarea){min-height:112px!important;padding:14px 15px!important;resize:vertical!important}
body.vcare-iso-ready :is(label,.vhome-label,.vstore-label){color:var(--iso-text)!important;font-weight:700!important}

/* Home Care map: device-location-first, readable and stable. */
body.vcare-iso-ready .vhome-map{width:100%!important;min-height:360px!important;height:min(54vh,520px)!important;border-radius:22px!important;overflow:hidden!important;border:1px solid var(--iso-line)!important;background:var(--iso-bg-soft)!important}
body.vcare-iso-ready .vhome-location-status{margin:10px 0!important;padding:10px 12px!important;border-radius:14px!important;background:var(--iso-primary-soft)!important;color:var(--iso-text)!important;font-size:12px!important;line-height:1.5!important}
body.vcare-iso-ready .vhome-map-tools{display:flex!important;gap:10px!important;flex-wrap:wrap!important}

/* Prevent historical global text breaking from destroying cards. */
body.vcare-iso-ready :is(.rc28-premium-card,.rc28-hero-card,.rc28-action,.vstore-panel,.vhome-panel,.vhome-card) :is(h1,h2,h3,h4,p,a,b,strong,small,span,label){word-break:normal!important;overflow-wrap:break-word!important}

@media(max-width:620px){
 body.rc28-page .rc28-content{padding-inline:14px!important}
 body.rc28-page .rc28-greeting{padding:6px 2px 16px!important}
 body.rc28-page .rc28-greeting h1{font-size:clamp(27px,8.5vw,38px)!important;line-height:1.02!important}
 body.rc28-page .rc28-hero-card{min-height:236px!important;padding:20px 18px!important}
 body.rc28-page .rc28-hero-medical .rc28-hero-copy{max-width:59%!important}
 body.rc28-page .rc28-hero-medical .rc28-hero-copy h2{font-size:clamp(27px,8.2vw,36px)!important}
 body.rc28-page .rc28-hero-medical .rc28-hero-copy p{font-size:10.5px!important;max-width:180px!important;margin:12px 0!important}
 body.rc28-page .rc28-hero-medical .rc28-primary{padding:10px 12px!important;font-size:10.5px!important}
 body.rc28-page .rc28-hero-team{width:50%!important;inset-inline-end:-5%!important}
 body.rc28-page .rc28-premium-card{grid-template-columns:50px minmax(0,1fr)!important;gap:11px!important;padding:14px!important}
 body.rc28-page .rc28-premium-brand{width:50px!important;height:50px!important;min-width:50px!important}
 body.rc28-page .rc28-premium-card>a{grid-column:2!important;justify-self:start!important;white-space:normal!important;text-align:start!important}
 body.rc28-page .rc28-actions-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
 body.rc28-page .rc28-action{min-height:104px!important;padding:12px 6px!important}
 body.rc28-page .rc28-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
 body.rc28-page .rc28-health-main,body.rc28-page .rc28-health-stat{grid-column:1/-1!important}
 body.vcare-iso-ready .vhome-map{min-height:320px!important;height:46vh!important}
}

/* VCare Web 29.2.1 — hero photography framing fix */
body.rc28-page .rc28-hero-medical .rc28-hero-team{
  inset-inline-end:0!important;
  bottom:0!important;
  width:50%!important;
  height:100%!important;
  overflow:hidden!important;
  border-radius:0 28px 28px 0!important;
}
html[dir="rtl"] body.rc28-page .rc28-hero-medical .rc28-hero-team{
  border-radius:28px 0 0 28px!important;
}
body.rc28-page .rc28-hero-medical .rc28-hero-team img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:58% 42%!important;
  transform:none!important;
  max-width:none!important;
  max-height:none!important;
  border-radius:0!important;
  filter:saturate(.98) contrast(1.01)!important;
}
@media (min-width:901px){
  body.rc28-page .rc28-hero-medical .rc28-hero-team img{
    object-position:center 44%!important;
  }
}
@media (max-width:620px){
  body.rc28-page .rc28-hero-medical .rc28-hero-team{
    width:49%!important;
    inset-inline-end:0!important;
  }
  body.rc28-page .rc28-hero-medical .rc28-hero-team img{
    object-position:56% 38%!important;
  }
}

/* VCare Web 29.2.2 — mobile hero complete-team layout */
@media (max-width:620px){
  body.rc28-page .rc28-hero-card.rc28-hero-medical{
    min-height:396px!important;
    padding:22px 20px 178px!important;
    display:block!important;
  }
  body.rc28-page .rc28-hero-medical .rc28-hero-copy{
    max-width:100%!important;
    width:100%!important;
  }
  body.rc28-page .rc28-hero-medical .rc28-hero-copy h2{
    font-size:clamp(32px,9.4vw,38px)!important;
    line-height:1.02!important;
    max-width:100%!important;
  }
  body.rc28-page .rc28-hero-medical .rc28-hero-copy p{
    font-size:12px!important;
    line-height:1.5!important;
    max-width:100%!important;
    margin:14px 0!important;
  }
  body.rc28-page .rc28-hero-medical .rc28-primary{
    padding:11px 15px!important;
    font-size:12px!important;
  }
  body.rc28-page .rc28-hero-medical .rc28-hero-team{
    inset-inline:0!important;
    bottom:0!important;
    width:100%!important;
    height:164px!important;
    border-radius:0 0 28px 28px!important;
    overflow:hidden!important;
    display:block!important;
  }
  html[dir="rtl"] body.rc28-page .rc28-hero-medical .rc28-hero-team{
    border-radius:0 0 28px 28px!important;
  }
  body.rc28-page .rc28-hero-medical .rc28-hero-team picture{
    display:block!important;
    width:100%!important;
    height:100%!important;
  }
  body.rc28-page .rc28-hero-medical .rc28-hero-team img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center 43%!important;
    transform:none!important;
    max-width:none!important;
    max-height:none!important;
    border-radius:0!important;
    -webkit-mask-image:none!important;
    mask-image:none!important;
  }
}
@media (max-width:380px){
  body.rc28-page .rc28-hero-card.rc28-hero-medical{
    min-height:400px!important;
    padding-bottom:174px!important;
  }
  body.rc28-page .rc28-hero-medical .rc28-hero-team{
    height:158px!important;
  }
  body.rc28-page .rc28-hero-medical .rc28-hero-copy h2{
    font-size:32px!important;
  }
}
