/* REDEVENT MVP 1.6 · responsive stabilization layer
   Loaded after page-specific CSS. Keep overrides narrow and reversible. */

html,body{max-width:100%;overflow-x:hidden}
img,video,canvas,svg{max-width:100%}

@media(max-width:900px){
  .provider-head{height:auto;flex-wrap:wrap;row-gap:8px}
  .provider-cloud-status{flex:1 1 100%;min-width:0;margin-left:0}
  .provider-cloud-status small{min-width:0;flex:1 1 auto}
  .provider-cloud-status button{flex:0 0 auto}
  .portal-banner{flex-wrap:wrap}
  .admin-table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
  .provider-tabs,.catalog-navlinks,.admin-nav{-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-width:thin}
}

@media(max-width:720px){
  /* Prestador: prevent account controls from forcing horizontal overflow. */
  .provider-head{min-height:64px;padding:10px 0}
  .provider-head>.brand .brand-crop{width:130px}
  .provider-account{order:3;flex:1 1 100%;width:100%;margin-left:0;min-width:0}
  .provider-account>span,.notify-btn{flex:0 0 auto}
  .provider-account select{flex:1 1 auto;width:1%;max-width:none;min-width:0}
  .provider-tabs{width:min(100% - 20px,var(--max));padding:0;margin:auto}
  .provider-tabs button{min-height:44px}
  .portal-banner{align-items:flex-start;flex-direction:column}
  .portal-banner a,.portal-banner .btn{width:100%}
  .portal-hero,.portal-hero>div{min-width:0}
  .portal-hero h1{overflow-wrap:anywhere}
  .portal-card,.join-panel,.catalog-hero-main,.context-card,.admin-card{min-width:0}
  .calendar-shell,.menu-layout,.assistant-layout,.visit-grid{min-width:0}

  /* B2B onboarding: header becomes two rows instead of compressing controls. */
  .join-nav{height:auto;min-height:68px;padding:10px 0;flex-wrap:wrap;gap:8px 12px}
  .join-nav>.brand .brand-crop{width:130px}
  .join-nav-copy{min-width:0;flex:1 1 150px}
  .join-nav>.btn{flex:1 1 100%;width:100%;min-height:44px;padding:11px 14px}
  .join-field input,.join-field select,.join-field textarea{font-size:16px}

  /* Catalog: keep navigation and action controls usable by touch. */
  .catalog-navlinks{scroll-snap-type:x proximity}
  .catalog-navlinks a{scroll-snap-align:start;min-height:42px;display:inline-flex;align-items:center}
  .catalog-card-actions .btn,.detail-actions .btn,.context-actions .btn{min-height:44px}
  .catalog-fact b,.catalog-card h3,.detail-copy h1{overflow-wrap:anywhere}

  /* Superadmin: mobile navigation stays scrollable and tables remain contained. */
  .admin-nav{width:100%;padding-bottom:2px}
  .admin-nav button{min-height:42px;flex:0 0 auto}
  .admin-topbar{gap:10px}
  .admin-topbar>div:first-child{min-width:0}
  .admin-topbar h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .admin-table-wrap{max-width:100%}
  .admin-banner{min-width:0}
}

@media(max-width:480px){
  .provider-account select{font-size:14px}
  .provider-cloud-status{align-items:flex-start;flex-wrap:wrap}
  .provider-cloud-status span{white-space:normal}
  .portal-kpis,.admin-kpis{grid-template-columns:1fr}
  .media-grid,.context-grid{grid-template-columns:1fr}
  .join-panel{padding:18px}
  .join-panel h2{font-size:clamp(32px,11vw,42px)}
  .join-actions>div{grid-template-columns:1fr}
  .join-actions .btn{width:100%;min-height:44px}
  .catalog-hero-main h1{font-size:clamp(38px,12vw,44px)}
  .catalog-card-art{height:210px}
  .detail-copy h1{font-size:clamp(36px,12vw,42px)}
  .admin-main{padding-left:10px;padding-right:10px}
  .admin-topbar{padding-left:12px;padding-right:12px}
  .admin-session-btn{padding:8px 10px}
}
