/* V65 · Mejoras móviles aditivas. No reemplaza funciones ni reglas existentes. */
:root{--mobile-bottom-space:calc(18px + env(safe-area-inset-bottom,0px))}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-width:0;overflow-x:hidden}
img,video,canvas,svg{max-width:100%}
button,a,input,select,textarea{touch-action:manipulation}
input,select,textarea{font-size:16px}

@media (max-width: 900px){
  .home-body .site-header{height:68px;padding:0 16px}
  .home-body .site-header .brand img{width:44px;height:44px}
  .home-body .site-header nav{top:68px;max-height:calc(100vh - 68px);overflow:auto;padding:18px 16px 28px;gap:8px;align-items:stretch}
  .home-body .site-header nav a,.home-body .site-header nav button{width:100%;padding:13px 14px;border-radius:11px;text-align:left}
  .home-body .hero{min-height:auto;padding:64px 20px 72px;background-position:center center}
  .home-body .hero-content{max-width:100%}
  .home-body .hero h1{font-size:clamp(2.25rem,11vw,4rem);line-height:1.02}
  .home-body .hero p{font-size:1rem;line-height:1.55}
  .home-body .hero .actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:stretch}
  .home-body .hero .actions>*{width:100%;display:flex;justify-content:center;align-items:center;text-align:center;min-height:50px}
  .stats{grid-template-columns:1fr 1fr;padding:16px;gap:0}
  .stats div{padding:16px 12px;border-right:0;border-bottom:1px solid var(--line)}
  .stats div:nth-last-child(-n+2){border-bottom:0}
  .section{padding:64px 18px}
  .cards.three,.cards.two{grid-template-columns:1fr}
  .profile-section,.sponsor-section,.ambassador-hero{grid-template-columns:1fr!important;gap:28px}
  .sponsor-image{order:-1}
  .membership-plans{grid-template-columns:1fr!important}
  .modal{align-items:flex-end;padding:0}
  .modal-card,.membership-modal-card{width:100%;max-width:none;max-height:92dvh;border-radius:22px 22px 0 0;padding:24px 18px calc(24px + env(safe-area-inset-bottom,0px));overflow:auto}
  .modal .close{position:sticky;float:right;top:0;z-index:3;background:#fff;border-radius:50%}
  .form-grid{grid-template-columns:1fr}
  .form-grid .wide{grid-column:auto}
  footer{padding:42px 20px calc(42px + env(safe-area-inset-bottom,0px))}
  .footer-layout,.footer-grid{grid-template-columns:1fr!important;text-align:center;gap:28px!important}
  .footer-left,.footer-center,.footer-right{justify-self:center!important;text-align:center!important;align-items:center!important}
  .footer-socials{justify-content:center}
  .developer-promo-link{max-width:360px;width:100%}
}

@media (max-width: 620px){
  .home-body .hero .actions{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr}
  .stats div,.stats div:nth-last-child(-n+2){border-bottom:1px solid var(--line)}
  .stats div:last-child{border-bottom:0}
  .section-head{text-align:left;margin-bottom:28px}
  .section-head h2{font-size:2rem}
  .card{padding:22px 18px;border-radius:18px}
  .cta{padding:48px 20px}
}

/* Portal móvil con apariencia de aplicación */
@media (max-width: 900px){
  .portal-body{padding-bottom:var(--mobile-bottom-space);background:#f3f6fb}
  .portal-top{left:0;height:64px;padding:0 14px;box-shadow:0 1px 0 rgba(9,21,47,.08)}
  .portal-top>div strong{font-size:.96rem}
  .portal-top>div small{display:none}
  #sideToggle{display:grid;width:42px;height:42px;place-items:center;border-radius:12px;background:#f1f4f8}
  .sidebar{width:min(86vw,310px);padding:18px 14px calc(24px + env(safe-area-inset-bottom,0px));box-shadow:20px 0 45px rgba(9,21,47,.24)}
  .sidebar .brand{position:sticky;top:0;background:#101728;padding:4px 0 14px;z-index:2}
  .side-link{min-height:46px;padding:12px 14px}
  .portal-main{margin-left:0;padding:82px 14px 28px;min-width:0}
  .panel{padding:18px 15px;border-radius:18px;margin-top:14px;overflow-x:auto}
  .panel-head{align-items:flex-start}
  .dashboard-grid{grid-template-columns:1fr 1fr;gap:12px}
  .metric{padding:16px;border-radius:16px}
  .metric strong{font-size:1.35rem}
  .grid-2,.grid-3,.profile-grid,.nutrition-layout,.food-builder-grid{grid-template-columns:1fr!important}
  .data-table{min-width:680px}
  .table-wrap,.calendar-wrap,.week-grid-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .week-grid{min-width:820px}
  .calendar-grid,.month-grid{min-width:760px}
  .food-tool-tabs,.nutrition-main-tabs,.scanner-mode-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
  .food-tool-tabs::-webkit-scrollbar,.nutrition-main-tabs::-webkit-scrollbar,.scanner-mode-tabs::-webkit-scrollbar{display:none}
  .food-tab,.scanner-tab{flex:0 0 auto;white-space:nowrap;min-height:44px}
  .food-hero{display:grid!important;grid-template-columns:1fr!important;gap:14px}
  .food-balance{justify-self:stretch!important;text-align:center}
  .workout-field-grid,.feedback-admin-controls{grid-template-columns:1fr}
  .strength-exercise-row{grid-template-columns:1fr 1fr!important}
  .strength-exercise-row label:first-child{grid-column:1/-1}
  .profile-photo-panel{grid-template-columns:1fr;text-align:center}
  .profile-photo-wrap{justify-items:center}
  .leaderboard-columns{grid-template-columns:1fr}
  .monthly-progress-card{flex-direction:column;align-items:stretch}
  .rm-coach{right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px))}
  .rm-coach-launcher{width:72px;height:72px}
  .rm-coach-panel{position:fixed;left:10px;right:10px;bottom:calc(92px + env(safe-area-inset-bottom,0px));width:auto;max-height:72dvh}
  .rm-coach-mini{display:none}
}

@media (max-width: 620px){
  .portal-main{padding-left:10px;padding-right:10px}
  .dashboard-grid{grid-template-columns:1fr}
  .panel{padding:16px 13px}
  .panel h2{font-size:1.35rem}
  .panel-head{flex-direction:column;gap:10px}
  .panel-head .btn,.panel-head button{width:100%}
  .strength-exercise-row{grid-template-columns:1fr!important}
  .strength-exercise-row label:first-child{grid-column:auto}
  .account-language-control label{grid-template-columns:1fr}
  .trial-card,.trial-dashboard-card{padding:18px!important}
  .trial-card .btn,.trial-dashboard-card .btn{width:100%}
  .feedback-admin-card-head,.feedback-admin-filters{flex-direction:column;align-items:stretch}
}

/* iPhone / pantallas con notch */
@supports(padding:max(0px)){
  .site-header{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  .portal-top{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
}


/* V73 · Menú lateral móvil que se oculta por completo */
.sidebar-mobile-head{display:block}
.sidebar-close,.sidebar-backdrop{display:none}
.portal-brand{cursor:default;user-select:none}
@media (max-width:900px){
  body.sidebar-open{overflow:hidden;touch-action:none}
  .sidebar{
    transform:translate3d(-105%,0,0)!important;
    visibility:hidden;
    pointer-events:none;
    transition:transform .24s ease,visibility 0s linear .24s!important;
    z-index:1200!important;
    max-width:calc(100vw - 42px);
  }
  .sidebar.open{
    transform:translate3d(0,0,0)!important;
    visibility:visible;
    pointer-events:auto;
    transition:transform .24s ease!important;
  }
  .sidebar-mobile-head{
    position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;
    margin:-4px 0 16px;padding:4px 0 12px;background:#101728;
  }
  .sidebar-mobile-head .brand{flex:1;margin:0!important;min-width:0}
  .sidebar-mobile-head .brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .sidebar-close{
    display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;padding:0;
    border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.08);
    color:#fff;font-size:30px;line-height:1;cursor:pointer;
  }
  .sidebar-backdrop{
    display:block;position:fixed;inset:0;z-index:1190;border:0;padding:0;
    background:rgba(4,10,22,.48);opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .24s ease,visibility 0s linear .24s;
  }
  .sidebar-backdrop.show{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .24s ease}
  .portal-top{z-index:1100}
  .portal-main{width:100%;max-width:100%;overflow-x:hidden}
}
