/* CH OS v171 - Plataforma inteira: mobile/tablet optimization
   Camada segura: somente layout responsivo, legibilidade, overflow e touch UX.
   Não reescreve desktop; atua forte abaixo de 1280px e especialmente abaixo de 920px. */

:root{
  --ch-v171-bg:#050505;
  --ch-v171-panel:#111216;
  --ch-v171-panel2:#17181d;
  --ch-v171-border:rgba(255,255,255,.14);
  --ch-v171-border2:rgba(255,186,32,.30);
  --ch-v171-text:#f6f1e8;
  --ch-v171-muted:rgba(246,241,232,.66);
  --ch-v171-yellow:#ffb31a;
  --ch-v171-radius:28px;
  --ch-v171-safe-top:env(safe-area-inset-top,0px);
  --ch-v171-safe-right:env(safe-area-inset-right,0px);
  --ch-v171-safe-bottom:env(safe-area-inset-bottom,0px);
  --ch-v171-safe-left:env(safe-area-inset-left,0px);
}

html{width:100%;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;}
body{max-width:100%;overflow-x:hidden;background-color:var(--ch-v171-bg);}
*,*::before,*::after{box-sizing:border-box;}
img,svg,video,canvas{max-width:100%;height:auto;}
table{max-width:100%;}
input,select,textarea,button{font:inherit;max-width:100%;}
textarea{resize:vertical;}
a,button,.btn,[role="button"]{-webkit-tap-highlight-color:rgba(255,179,26,.18);touch-action:manipulation;}

/* Evita que cards/forms largos criem scroll horizontal em iPad/Safari */
.client-main,.portal-main,.cp-main,.page-main,main,
.form-card,.intro-panel,.copy-panel,.info-card,.service-card,.dashboard-card,.cp-card,
.cp-service-hero-v79,.cp-access-card-v79,.cp-service-stage-v79,
[class*="card"],[class*="panel"],[class*="hero"]{max-width:100%;}

/* Sidebar mais estável em tablets grandes */
@media (max-width: 1440px){
  .client-shell,.portal-shell,.cp-shell,.app-shell,.layout,.portal-layout{
    gap:clamp(20px,3vw,42px) !important;
  }
  .client-sidebar,.portal-sidebar,.cp-sidebar,aside.sidebar,.sidebar{
    width:clamp(250px,24vw,320px) !important;
    min-width:clamp(250px,24vw,320px) !important;
  }
  .client-main,.portal-main,.cp-main,.page-main,main{
    width:min(100%,1120px) !important;
  }
}

/* iPad landscape / tablets: reduzir exageros, padronizar títulos e centralizar páginas internas */
@media (max-width: 1280px){
  body{
    background-size:auto,72px 72px,cover !important;
  }

  .client-main,.portal-main,.cp-main,.page-main,main{
    padding-left:clamp(18px,2vw,30px) !important;
    padding-right:clamp(18px,2vw,30px) !important;
  }

  .form-wrap,section.form-wrap,.register-existing-v151,.cp-service-stage-v79,
  .service-stage,.portal-stage,.page-stage,.content-stage{
    width:min(100%,1040px) !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  /* Padrão para páginas com texto à esquerda + formulário à direita */
  .form-wrap,section.form-wrap,.two-col,.portal-two-col,.service-two-col{
    display:grid !important;
    grid-template-columns:minmax(260px,360px) minmax(0,1fr) !important;
    gap:clamp(20px,3vw,42px) !important;
    align-items:start !important;
  }

  .intro-panel,.copy-panel,.info-card{
    min-width:0 !important;
    padding:clamp(26px,3vw,42px) !important;
    border-radius:var(--ch-v171-radius) !important;
  }

  .form-card,[class*="form-card"],.cp-access-card-v79{
    min-width:0 !important;
    padding:clamp(28px,3.4vw,48px) !important;
    border-radius:var(--ch-v171-radius) !important;
  }

  .form-grid,.fields-grid,.input-grid{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:clamp(14px,2vw,22px) !important;
  }

  .form-grid .full,.fields-grid .full,.input-grid .full,
  .form-group.full,.field.full,[class*="full"]{
    grid-column:1/-1;
  }

  h1,.hero h1,.dashboard-hero h1,.cp-dashboard-hero h1,.intro-panel h1,.form-intro h1,.form-card h1,.cp-service-hero-v79 h1{
    font-size:clamp(34px,5.4vw,72px) !important;
    line-height:.96 !important;
    letter-spacing:-.055em !important;
    overflow-wrap:balance;
  }

  h2,.intro-panel h2,.form-card h2,.form-intro h2,.cp-access-card-v79 h2{
    font-size:clamp(25px,3vw,38px) !important;
    line-height:1.02 !important;
    letter-spacing:-.035em !important;
  }

  p,.intro-panel p,.copy-panel p,.form-card p,.muted,.lead{
    font-size:clamp(15px,1.45vw,19px) !important;
    line-height:1.55 !important;
  }

  label,.label,.form-label{
    font-size:clamp(11px,1vw,13px) !important;
    letter-spacing:.08em !important;
  }

  input,select,textarea{
    min-height:52px !important;
    border-radius:16px !important;
  }
}

/* Tablets estreitos: explicação em cima, formulário abaixo, tudo centrado */
@media (max-width: 1040px){
  .form-wrap,section.form-wrap,.two-col,.portal-two-col,.service-two-col,
  .register-existing-v151{
    grid-template-columns:1fr !important;
    width:min(100%,900px) !important;
    gap:22px !important;
  }

  .form-wrap > .intro-panel,
  .form-wrap > .copy-panel,
  .form-wrap > .info-card,
  .register-existing-v151 > .intro-panel,
  .service-two-col > .intro-panel,
  .portal-two-col > .intro-panel{
    text-align:center !important;
    width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .form-wrap > .intro-panel .kicker,
  .form-wrap > .copy-panel .kicker,
  .form-wrap > .info-card .kicker,
  .kicker,.eyebrow,.section-kicker{
    justify-content:center !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .form-card,[class*="form-card"],.cp-access-card-v79{
    width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  .cards-grid,.dashboard-grid,.stats-grid,.plan-grid,.package-grid,.service-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}

/* Mobile/tablet portrait: a plataforma vira fluxo vertical */
@media (max-width: 920px){
  body{
    min-width:0 !important;
    background-color:var(--ch-v171-bg) !important;
  }

  .client-shell,.portal-shell,.cp-shell,.app-shell,.layout,.portal-layout{
    display:flex !important;
    flex-direction:column !important;
    width:100% !important;
    min-height:100dvh !important;
    padding:calc(14px + var(--ch-v171-safe-top)) calc(14px + var(--ch-v171-safe-right)) calc(20px + var(--ch-v171-safe-bottom)) calc(14px + var(--ch-v171-safe-left)) !important;
    gap:18px !important;
  }

  .client-sidebar,.portal-sidebar,.cp-sidebar,aside.sidebar,.sidebar{
    position:relative !important;
    inset:auto !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    height:auto !important;
    min-height:unset !important;
    max-height:none !important;
    overflow:visible !important;
    padding:20px !important;
    border-radius:26px !important;
  }

  .sidebar .brand-logo,.client-sidebar .brand-logo,.portal-sidebar .brand-logo,.cp-sidebar .brand-logo,
  .sidebar img,.client-sidebar img,.portal-sidebar img,.cp-sidebar img{
    max-width:min(240px,76vw) !important;
  }

  .lang-switch,.language-switch,.cp-lang-switch,.lang-tabs,[class*="lang"]{
    max-width:390px !important;
    width:100% !important;
    margin:18px 0 !important;
  }

  .client-nav,.portal-nav,.cp-nav,.sidebar nav,nav.menu,.menu-list{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }

  .client-nav a,.portal-nav a,.cp-nav a,.sidebar nav a,nav.menu a,.menu-list a{
    min-height:54px !important;
    padding:12px !important;
    border-radius:16px !important;
    white-space:normal !important;
  }

  .client-main,.portal-main,.cp-main,.page-main,main{
    width:100% !important;
    max-width:100% !important;
    padding:0 !important;
    margin:0 !important;
  }

  .form-wrap,section.form-wrap,.register-existing-v151,.cp-service-stage-v79,
  .service-stage,.portal-stage,.page-stage,.content-stage{
    width:100% !important;
    max-width:100% !important;
    padding:0 !important;
    margin:0 !important;
  }

  .form-grid,.fields-grid,.input-grid{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }

  .cards-grid,.dashboard-grid,.stats-grid,.plan-grid,.package-grid,.service-grid{
    grid-template-columns:1fr !important;
  }

  .intro-panel,.copy-panel,.info-card,.form-card,[class*="form-card"],.cp-service-hero-v79,.cp-access-card-v79,
  .dashboard-card,.cp-card,.service-card,[class*="card"],[class*="panel"]{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding:clamp(22px,6vw,34px) !important;
    border-radius:24px !important;
  }

  h1,.hero h1,.dashboard-hero h1,.cp-dashboard-hero h1,.intro-panel h1,.form-intro h1,.form-card h1,.cp-service-hero-v79 h1{
    font-size:clamp(34px,10vw,56px) !important;
    line-height:.96 !important;
    letter-spacing:-.052em !important;
  }

  h2,.intro-panel h2,.form-card h2,.form-intro h2,.cp-access-card-v79 h2{
    font-size:clamp(24px,7vw,34px) !important;
  }

  input,select,textarea{
    width:100% !important;
    min-height:54px !important;
    font-size:16px !important;
  }
  textarea{min-height:132px !important;}

  .actions,.form-actions,.button-row,.hero-actions{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:12px !important;
  }
  .btn,button,.button,[class*="btn"]{
    min-height:52px !important;
    justify-content:center !important;
    text-align:center !important;
  }

  .client-footer,.portal-footer,.cp-footer,footer{
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
    text-align:center !important;
    padding:22px 0 !important;
  }

  .g-recaptcha, iframe[src*="recaptcha"]{
    transform:scale(.88);
    transform-origin:left top;
  }
}

/* Celular pequeno */
@media (max-width: 560px){
  .client-shell,.portal-shell,.cp-shell,.app-shell,.layout,.portal-layout{
    padding-left:12px !important;
    padding-right:12px !important;
  }
  .client-nav,.portal-nav,.cp-nav,.sidebar nav,nav.menu,.menu-list{
    grid-template-columns:1fr !important;
  }
  .client-sidebar,.portal-sidebar,.cp-sidebar,aside.sidebar,.sidebar{
    padding:18px !important;
    border-radius:22px !important;
  }
  .intro-panel,.copy-panel,.info-card,.form-card,[class*="form-card"],.cp-service-hero-v79,.cp-access-card-v79,
  .dashboard-card,.cp-card,.service-card,[class*="card"],[class*="panel"]{
    padding:20px !important;
    border-radius:22px !important;
  }
  h1,.hero h1,.dashboard-hero h1,.cp-dashboard-hero h1,.intro-panel h1,.form-intro h1,.form-card h1,.cp-service-hero-v79 h1{
    font-size:clamp(31px,12.5vw,46px) !important;
  }
  .kicker,.eyebrow,.section-kicker{
    font-size:11px !important;
    letter-spacing:.15em !important;
  }
}