
/* AppBraga v1.58.233 — iPhone 16 Pro Max mode
   Objetivo: deixar a app com aspeto mobile real, não desktop encolhido.
*/

@media (max-width: 540px) and (orientation: portrait) {
  :root{
    --iphone-bottom-nav-h: 88px;
    --iphone-pad-x: 18px;
    --iphone-card-radius: 26px;
  }

  html,
  body{
    width:100%;
    max-width:100%;
    overflow-x:hidden !important;
    background:
      radial-gradient(circle at 12% 12%, rgba(59,130,246,.20), transparent 28%),
      radial-gradient(circle at 88% 78%, rgba(14,165,233,.14), transparent 32%),
      linear-gradient(135deg,#020817 0%,#04122c 48%,#020817 100%) !important;
  }

  body{
    padding-top: env(safe-area-inset-top) !important;
    padding-bottom: calc(var(--iphone-bottom-nav-h) + env(safe-area-inset-bottom)) !important;
    -webkit-text-size-adjust: 100%;
  }

  /* iPhone: não escalar wrapper como desktop */
  #appbragaScaleContent{
    transform:none !important;
    width:100% !important;
    max-width:100% !important;
    min-height:auto !important;
    margin:0 !important;
  }

  /* Controlos de janela não fazem sentido no iPhone/PWA */
  .appbraga-window-controls{
    display:none !important;
  }

  /* Botões flutuantes desktop escondidos no iPhone */
  .appbraga-screen-widget,
  .appbraga-scale-widget{
    display:none !important;
  }

  /* Fundo/portais */
  body.portal-page,
  body.portal-area-page,
  body.home-portal,
  body.portal-home,
  body[class*="portal" i]{
    height:auto !important;
    max-height:none !important;
    min-height:100vh !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
  }

  body.portal-page main,
  body.portal-area-page main,
  body.home-portal main,
  body.portal-home main,
  body[class*="portal" i] main{
    max-height:none !important;
    overflow:visible !important;
  }

  /* Portal inicial */
  .portal-wrap,
  .portal-shell,
  .home-shell,
  .app-portal,
  .portal-container{
    width:100% !important;
    max-width:100% !important;
    min-height:auto !important;
    padding:18px var(--iphone-pad-x) 18px !important;
    gap:18px !important;
  }

  .portal-hero,
  .hero-card,
  .portal-header,
  .home-hero,
  .app-hero{
    width:100% !important;
    max-width:100% !important;
    min-height:112px !important;
    margin:0 0 18px !important;
    padding:18px 18px !important;
    border-radius:28px !important;
    display:grid !important;
    grid-template-columns:70px minmax(0,1fr) !important;
    align-items:center !important;
    gap:16px !important;
    text-align:left !important;
  }

  .portal-hero img,
  .hero-card img,
  .portal-header img,
  .home-hero img,
  .app-hero img,
  .portal-logo img,
  .hero-logo img{
    width:70px !important;
    height:70px !important;
    object-fit:contain !important;
  }

  .portal-hero .portal-logo,
  .hero-card .portal-logo,
  .portal-header .portal-logo,
  .home-hero .portal-logo,
  .app-hero .portal-logo,
  .hero-logo{
    width:70px !important;
    height:70px !important;
    margin:0 !important;
  }

  .portal-hero h1,
  .hero-card h1,
  .portal-header h1,
  .home-hero h1,
  .app-hero h1{
    font-size:clamp(2rem, 8vw, 2.65rem) !important;
    line-height:1.02 !important;
    margin:0 !important;
    letter-spacing:-.055em !important;
    text-align:left !important;
  }

  .portal-hero p,
  .hero-card p,
  .portal-header p,
  .home-hero p,
  .app-hero p{
    font-size:1.05rem !important;
    line-height:1.22 !important;
    margin:8px 0 0 !important;
    text-align:left !important;
    color:#aebdd5 !important;
  }

  /* Botão Modo TV no iPhone fica discreto */
  .portal-tv-hero-btn{
    width:42px !important;
    height:42px !important;
    top:12px !important;
    right:12px !important;
    font-size:20px !important;
  }

  /* Cards portal inicial: 2 colunas, limpos */
  .portal-grid,
  .portal-cards,
  .portal-nav,
  .portal-card-grid,
  nav.portal-grid,
  nav.portal-cards,
  nav.portal-nav{
    width:100% !important;
    max-width:100% !important;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:14px !important;
    margin:0 !important;
    padding:0 !important;
  }

  .portal-card,
  .portal-card-direct,
  .portal-area-card,
  .area-card{
    min-height:170px !important;
    height:auto !important;
    padding:18px 12px !important;
    border-radius:26px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:14px !important;
    text-align:center !important;
    overflow:hidden !important;
  }

  .portal-card-icon,
  .area-card-icon{
    width:74px !important;
    height:74px !important;
    border-radius:999px !important;
    display:grid !important;
    place-items:center !important;
    font-size:32px !important;
    margin:0 !important;
  }

  .portal-card h2,
  .portal-area-card h2,
  .area-card h2{
    font-size:1.28rem !important;
    line-height:1.08 !important;
    margin:0 !important;
    letter-spacing:-.035em !important;
  }

  .portal-card p,
  .portal-card small,
  .portal-card-divider,
  .portal-card-pages,
  .portal-card-subtitle,
  .portal-pages-list{
    display:none !important;
  }

  .portal-footer,
  .portal-version,
  .portal-meta,
  .portal-bottom-text{
    display:none !important;
  }

  /* Portais de área como Portal Impressoras */
  .portal-area-wrap,
  .area-portal-wrap{
    width:100% !important;
    max-width:100% !important;
    min-height:auto !important;
    padding:18px var(--iphone-pad-x) 18px !important;
  }

  .portal-area-hero{
    width:100% !important;
    max-width:100% !important;
    min-height:118px !important;
    margin:0 0 22px !important;
    padding:18px !important;
    display:grid !important;
    grid-template-columns:72px minmax(0,1fr) !important;
    align-items:center !important;
    gap:16px !important;
    text-align:left !important;
    border-radius:28px !important;
  }

  .portal-area-logo{
    width:72px !important;
    height:72px !important;
    min-width:72px !important;
    min-height:72px !important;
    margin:0 !important;
  }

  .portal-area-logo img{
    width:72px !important;
    height:72px !important;
    object-fit:contain !important;
  }

  .portal-area-hero h1{
    font-size:clamp(2rem,7.5vw,2.5rem) !important;
    line-height:1.04 !important;
    margin:0 !important;
    text-align:left !important;
  }

  .portal-area-hero p{
    margin:7px 0 0 !important;
    font-size:1rem !important;
    line-height:1.28 !important;
    text-align:left !important;
    color:#aebdd5 !important;
  }

  .portal-area-grid{
    width:100% !important;
    max-width:100% !important;
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:14px !important;
    margin:0 !important;
    padding:0 !important;
  }

  .portal-area-card{
    min-height:168px !important;
    padding:18px 12px !important;
    border-radius:26px !important;
  }

  /* Bottom nav mobile */
  .iphone-bottom-nav{
    position:fixed;
    left:calc(14px + env(safe-area-inset-left));
    right:calc(14px + env(safe-area-inset-right));
    bottom:calc(10px + env(safe-area-inset-bottom));
    height:74px;
    z-index:2147482000;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    align-items:center;
    gap:4px;
    padding:8px;
    border-radius:26px;
    background:rgba(2,8,23,.86);
    border:1px solid rgba(96,165,250,.22);
    box-shadow:0 18px 60px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.07);
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
  }

  .iphone-bottom-nav a{
    min-width:0;
    height:58px;
    border-radius:20px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    text-decoration:none;
    color:#94a3b8;
    font-weight:850;
    font-size:.78rem;
  }

  .iphone-bottom-nav a i{
    font-style:normal;
    font-size:1.42rem;
    line-height:1;
  }

  .iphone-bottom-nav a.active{
    color:#22d3ee;
    background:linear-gradient(135deg,rgba(14,165,233,.22),rgba(37,99,235,.18));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.07), 0 8px 24px rgba(14,165,233,.12);
  }

  /* Página Impressoras: deixa de parecer tabela desktop */
  body.impressoras-futurista{
    padding-bottom:calc(var(--iphone-bottom-nav-h) + env(safe-area-inset-bottom)) !important;
  }

  body.impressoras-futurista .imp-page,
  body.impressoras-futurista .imp-shell,
  body.impressoras-futurista main{
    width:100% !important;
    max-width:100% !important;
    padding:18px var(--iphone-pad-x) 18px !important;
    overflow:visible !important;
  }

  body.impressoras-futurista .imp-hero,
  body.impressoras-futurista .imp-header,
  body.impressoras-futurista .page-hero{
    min-height:96px !important;
    padding:16px 0 !important;
    margin:0 0 12px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
  }

  body.impressoras-futurista .imp-hero h1,
  body.impressoras-futurista .imp-header h1,
  body.impressoras-futurista .page-hero h1{
    font-size:2.25rem !important;
    line-height:1.02 !important;
    margin:0 !important;
    letter-spacing:-.06em !important;
  }

  body.impressoras-futurista .imp-filters,
  body.impressoras-futurista .filters-row{
    display:flex !important;
    gap:10px !important;
    overflow-x:auto !important;
    padding:4px 0 12px !important;
  }

  body.impressoras-futurista .imp-table-wrap,
  body.impressoras-futurista .table-wrap,
  body.impressoras-futurista .imp-table-container{
    overflow:visible !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }

  body.impressoras-futurista table.imp-table,
  body.impressoras-futurista .imp-table thead,
  body.impressoras-futurista .imp-table tbody,
  body.impressoras-futurista .imp-table tr,
  body.impressoras-futurista .imp-table td{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
  }

  body.impressoras-futurista .imp-table thead{
    display:none !important;
  }

  body.impressoras-futurista .imp-table tbody{
    display:grid !important;
    gap:12px !important;
  }

  body.impressoras-futurista .imp-table tr{
    position:relative !important;
    border-radius:24px !important;
    padding:16px !important;
    background:linear-gradient(135deg,rgba(15,35,75,.82),rgba(3,12,31,.70)) !important;
    border:1px solid rgba(96,165,250,.18) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05) !important;
    overflow:hidden !important;
  }

  body.impressoras-futurista .imp-table td{
    border:0 !important;
    padding:0 !important;
    overflow:visible !important;
  }

  body.impressoras-futurista .imp-table td:nth-child(1){
    font-size:1.15rem !important;
    font-weight:950 !important;
    color:#f8fbff !important;
    padding-right:94px !important;
    margin-bottom:7px !important;
  }

  body.impressoras-futurista .imp-table td:nth-child(2),
  body.impressoras-futurista .imp-table td:nth-child(3),
  body.impressoras-futurista .imp-table td:nth-child(4){
    font-size:.9rem !important;
    color:#aebdd5 !important;
    margin:4px 0 !important;
  }

  body.impressoras-futurista .imp-table td:nth-child(5){
    margin-top:13px !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  body.impressoras-futurista .imp-toner-cell,
  body.impressoras-futurista .imp-toner-cell-mono,
  body.impressoras-futurista .imp-toner-cell-cmyk{
    width:100% !important;
    max-width:100% !important;
  }

  body.impressoras-futurista .imp-toner-mono-row,
  body.impressoras-futurista .imp-toner-color-row{
    width:100% !important;
    max-width:100% !important;
    grid-template-columns:58px minmax(0,1fr) 48px !important;
  }

  body.impressoras-futurista .imp-toner-track,
  body.impressoras-futurista .imp-toner-mini-track{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    height:9px !important;
  }

  body.impressoras-futurista .imp-table td:nth-child(6){
    position:absolute !important;
    top:16px !important;
    right:16px !important;
    width:auto !important;
    min-width:auto !important;
    max-width:none !important;
  }

  body.impressoras-futurista .imp-table td:nth-child(7){
    margin-top:9px !important;
    color:#94a3b8 !important;
    font-size:.78rem !important;
  }

  body.impressoras-futurista .imp-table td:nth-child(8){
    display:flex !important;
    justify-content:flex-end !important;
    gap:8px !important;
    margin-top:12px !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  body.impressoras-futurista .imp-actions button,
  body.impressoras-futurista .actions-cell button{
    width:38px !important;
    height:38px !important;
    min-width:38px !important;
  }

  /* Evita hero enorme em páginas internas */
  .page-title,
  .section-title{
    font-size:2rem !important;
  }
}


/* v1.58.233 — FIX iPhone: hero e largura sem fugir para fora */
@media (max-width: 540px) and (orientation: portrait) {
  html,
  body{
    width:100vw !important;
    max-width:100vw !important;
    min-width:0 !important;
    overflow-x:hidden !important;
  }

  body{
    margin:0 !important;
  }

  #appbragaScaleContent{
    width:100vw !important;
    max-width:100vw !important;
    min-width:0 !important;
    overflow-x:hidden !important;
  }

  .portal-orb{
    pointer-events:none !important;
    max-width:100vw !important;
  }

  .portal-wrap,
  .portal-area-wrap,
  .area-portal-wrap{
    width:100vw !important;
    max-width:100vw !important;
    min-width:0 !important;
    padding-left:16px !important;
    padding-right:16px !important;
    margin:0 !important;
    box-sizing:border-box !important;
    overflow-x:hidden !important;
  }

  /* Portal inicial: corrige estrutura real:
     <section class="portal-hero"><div><logo><h1><p></div><a tv></a></section>
  */
  .portal-hero,
  .hero-card,
  .portal-header,
  .home-hero,
  .app-hero{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    margin:0 0 18px 0 !important;
    padding:18px !important;
    border-radius:28px !important;
    display:block !important;
    text-align:left !important;
    overflow:hidden !important;
    place-items:initial !important;
  }

  .portal-hero > div:first-child,
  .hero-card > div:first-child,
  .portal-header > div:first-child,
  .home-hero > div:first-child,
  .app-hero > div:first-child{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    display:grid !important;
    grid-template-columns:72px minmax(0,1fr) !important;
    grid-template-rows:auto auto !important;
    column-gap:16px !important;
    row-gap:4px !important;
    align-items:center !important;
    box-sizing:border-box !important;
  }

  .portal-hero-logo,
  .hero-logo,
  .portal-logo{
    grid-column:1 !important;
    grid-row:1 / 3 !important;
    width:72px !important;
    height:72px !important;
    min-width:72px !important;
    min-height:72px !important;
    margin:0 !important;
    justify-self:start !important;
    align-self:center !important;
  }

  .portal-hero-logo img,
  .hero-logo img,
  .portal-logo img{
    width:72px !important;
    height:72px !important;
    display:block !important;
    object-fit:contain !important;
  }

  .portal-hero h1,
  .hero-card h1,
  .portal-header h1,
  .home-hero h1,
  .app-hero h1{
    grid-column:2 !important;
    grid-row:1 !important;
    min-width:0 !important;
    max-width:100% !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    font-size:clamp(2rem, 8.4vw, 2.55rem) !important;
    line-height:1.02 !important;
    letter-spacing:-.055em !important;
    text-align:left !important;
    white-space:normal !important;
    overflow-wrap:break-word !important;
    transform:none !important;
  }

  .portal-hero p,
  .hero-card p,
  .portal-header p,
  .home-hero p,
  .app-hero p{
    grid-column:2 !important;
    grid-row:2 !important;
    min-width:0 !important;
    max-width:100% !important;
    width:100% !important;
    margin:4px 0 0 0 !important;
    padding:0 !important;
    font-size:1rem !important;
    line-height:1.23 !important;
    text-align:left !important;
    white-space:normal !important;
    overflow-wrap:break-word !important;
  }

  .portal-tv-hero-btn{
    position:absolute !important;
    top:16px !important;
    right:16px !important;
    width:40px !important;
    height:40px !important;
    font-size:18px !important;
    opacity:.9 !important;
  }

  /* Nos portais de área usa a mesma estrutura segura */
  .portal-area-hero{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    margin:0 0 18px 0 !important;
    padding:18px !important;
    border-radius:28px !important;
    display:grid !important;
    grid-template-columns:72px minmax(0,1fr) !important;
    grid-template-rows:auto auto !important;
    column-gap:16px !important;
    row-gap:4px !important;
    align-items:center !important;
    text-align:left !important;
    overflow:hidden !important;
  }

  .portal-area-logo{
    grid-column:1 !important;
    grid-row:1 / 3 !important;
    width:72px !important;
    height:72px !important;
    min-width:72px !important;
    min-height:72px !important;
    margin:0 !important;
  }

  .portal-area-logo img{
    width:72px !important;
    height:72px !important;
    display:block !important;
    object-fit:contain !important;
  }

  .portal-area-hero h1{
    grid-column:2 !important;
    grid-row:1 !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    font-size:clamp(1.95rem, 7.8vw, 2.45rem) !important;
    line-height:1.04 !important;
    text-align:left !important;
    white-space:normal !important;
    overflow-wrap:break-word !important;
  }

  .portal-area-hero p{
    grid-column:2 !important;
    grid-row:2 !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:4px 0 0 !important;
    font-size:.98rem !important;
    line-height:1.25 !important;
    text-align:left !important;
    white-space:normal !important;
    overflow-wrap:break-word !important;
  }

  /* Grid dos cards sem cortar nas laterais */
  .portal-grid,
  .portal-grid-home,
  .portal-area-grid{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px !important;
    box-sizing:border-box !important;
  }

  .portal-card,
  .portal-card-direct,
  .portal-area-card,
  .area-card{
    min-width:0 !important;
    max-width:100% !important;
    min-height:158px !important;
    padding:16px 10px !important;
    border-radius:24px !important;
  }

  .portal-card-icon,
  .area-card-icon{
    width:66px !important;
    height:66px !important;
    min-width:66px !important;
    min-height:66px !important;
    font-size:28px !important;
  }

  .portal-card h2,
  .portal-area-card h2,
  .area-card h2{
    font-size:1.16rem !important;
    line-height:1.08 !important;
    max-width:100% !important;
    overflow-wrap:break-word !important;
  }

  /* bottom nav não pode tapar demasiado os cards */
  .iphone-bottom-nav{
    left:12px !important;
    right:12px !important;
    bottom:calc(8px + env(safe-area-inset-bottom)) !important;
    height:70px !important;
    border-radius:24px !important;
  }

  .iphone-bottom-nav a{
    height:54px !important;
    font-size:.74rem !important;
  }
}


/* v1.58.233 — iPhone global para TODAS as páginas + scroll inteligente */
@media (max-width: 540px) and (orientation: portrait) {
  :root{
    --iphone-page-x: 16px;
    --iphone-bottom-nav-h: 82px;
  }

  html,
  body{
    width:100vw !important;
    max-width:100vw !important;
    min-width:0 !important;
    scrollbar-width:none !important;
    -ms-overflow-style:none !important;
  }

  html::-webkit-scrollbar,
  body::-webkit-scrollbar,
  *::-webkit-scrollbar{
    width:0 !important;
    height:0 !important;
    display:none !important;
  }

  html[data-iphone-scroll="hidden"],
  html[data-iphone-scroll="hidden"] body{
    overflow:hidden !important;
    height:100vh !important;
    max-height:100vh !important;
  }

  html[data-iphone-scroll="auto"],
  html[data-iphone-scroll="auto"] body{
    overflow-x:hidden !important;
    overflow-y:auto !important;
    height:auto !important;
    max-height:none !important;
  }

  html[data-iphone-scroll="auto"] #appbragaScaleContent{
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
  }

  html[data-iphone-scroll="hidden"] #appbragaScaleContent{
    max-height:100vh !important;
    overflow:hidden !important;
  }

  body{
    padding-left:0 !important;
    padding-right:0 !important;
    padding-top:env(safe-area-inset-top) !important;
    padding-bottom:calc(var(--iphone-bottom-nav-h) + env(safe-area-inset-bottom)) !important;
  }

  #appbragaScaleContent,
  .app-shell,
  .page-shell,
  .page-wrapper,
  .main-shell,
  .content-shell,
  .ck-app,
  .ck-main,
  main{
    width:100vw !important;
    max-width:100vw !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    overflow-x:hidden !important;
  }

  main,
  .page-content,
  .content,
  .main-content,
  .dashboard,
  .section-content,
  .ck-content{
    padding-left:var(--iphone-page-x) !important;
    padding-right:var(--iphone-page-x) !important;
    box-sizing:border-box !important;
  }

  /* Sidebar/topbar desktop escondidas no mobile quando existirem */
  .sidebar,
  .app-sidebar,
  .desktop-sidebar,
  .side-nav,
  .topbar,
  .desktop-topbar,
  .breadcrumbs,
  .page-actions.desktop-only{
    display:none !important;
  }

  /* Heroes/títulos de TODAS as páginas */
  .page-hero,
  .hero,
  .section-hero,
  .ck-hero,
  .page-header,
  .ck-page-head,
  .imp-hero,
  .task-hero,
  .config-hero,
  .scanner-hero,
  .diagnostico-hero,
  .diretorio-hero,
  .radios-hero{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    min-height:auto !important;
    margin:0 0 16px !important;
    padding:18px !important;
    border-radius:26px !important;
    box-sizing:border-box !important;
    display:block !important;
    overflow:hidden !important;
    text-align:left !important;
  }

  .page-hero h1,
  .hero h1,
  .section-hero h1,
  .ck-hero h1,
  .page-header h1,
  .ck-page-head h1,
  .imp-hero h1,
  .task-hero h1,
  .config-hero h1,
  h1{
    font-size:clamp(2rem, 8vw, 2.45rem) !important;
    line-height:1.04 !important;
    letter-spacing:-.055em !important;
    margin:0 !important;
    max-width:100% !important;
    overflow-wrap:break-word !important;
    white-space:normal !important;
    text-align:left !important;
  }

  .page-hero p,
  .hero p,
  .section-hero p,
  .ck-hero p,
  .page-header p,
  .ck-page-head p,
  .imp-hero p,
  .task-hero p,
  .config-hero p{
    font-size:1rem !important;
    line-height:1.28 !important;
    margin:7px 0 0 !important;
    color:#aebdd5 !important;
    max-width:100% !important;
    overflow-wrap:break-word !important;
    white-space:normal !important;
    text-align:left !important;
  }

  /* Grelhas em mobile */
  .grid,
  .cards-grid,
  .dashboard-grid,
  .widgets-grid,
  .settings-grid,
  .config-grid,
  .ck-grid,
  .form-grid,
  .stats-grid,
  .quick-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
    width:100% !important;
    max-width:100% !important;
  }

  .portal-grid,
  .portal-area-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  /* Cards genéricos */
  .card,
  .ck-card,
  .ck-panel,
  .panel,
  .widget,
  .stat-card,
  .setting-card,
  .config-card,
  .task-card,
  .printer-card,
  .directory-card,
  .radio-card,
  .notification-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    border-radius:22px !important;
    overflow:hidden !important;
  }

  /* Formulários */
  form,
  fieldset,
  .form,
  .form-card{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  input,
  select,
  textarea,
  button{
    max-width:100% !important;
    box-sizing:border-box !important;
  }

  input,
  select,
  textarea{
    font-size:16px !important; /* evita zoom automático do iOS */
  }

  .input-row,
  .form-row,
  .controls-row,
  .filters-row,
  .toolbar,
  .actions-row,
  .button-row{
    width:100% !important;
    max-width:100% !important;
    display:flex !important;
    flex-wrap:wrap !important;
    gap:10px !important;
    overflow:visible !important;
  }

  .toolbar button,
  .actions-row button,
  .button-row button{
    min-height:44px !important;
  }

  /* Tabelas em qualquer página: scroll horizontal interno invisível quando necessário */
  .table-wrap,
  .table-container,
  .data-table-wrap,
  .list-table-wrap,
  .ck-table-wrap{
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    overflow-y:visible !important;
    -webkit-overflow-scrolling:touch !important;
    scrollbar-width:none !important;
  }

  .table-wrap::-webkit-scrollbar,
  .table-container::-webkit-scrollbar,
  .data-table-wrap::-webkit-scrollbar,
  .list-table-wrap::-webkit-scrollbar,
  .ck-table-wrap::-webkit-scrollbar{
    display:none !important;
  }

  table:not(.imp-table){
    width:100% !important;
    min-width:640px !important;
  }

  /* Modais adaptados */
  .modal,
  .dialog,
  .ck-modal,
  .modal-card,
  .modal-content{
    width:calc(100vw - 28px) !important;
    max-width:calc(100vw - 28px) !important;
    max-height:calc(100vh - 90px) !important;
    overflow:auto !important;
    border-radius:24px !important;
    box-sizing:border-box !important;
  }

  /* Página Modo TV em iPhone: vira painel simples */
  body.tv-mode-page .tv-screen{
    width:100vw !important;
    height:auto !important;
    min-height:100vh !important;
    padding:18px var(--iphone-page-x) calc(var(--iphone-bottom-nav-h) + 18px) !important;
    overflow:visible !important;
  }

  body.tv-mode-page .tv-top,
  body.tv-mode-page .tv-main{
    grid-template-columns:1fr !important;
  }

  body.tv-mode-page .tv-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }

  body.tv-mode-page .tv-clock{
    width:100% !important;
    min-width:0 !important;
  }

  /* Evita que qualquer coisa crie largura fantasma */
  img,
  svg,
  canvas,
  video{
    max-width:100% !important;
  }
}


/* v1.58.233 — REBUILD MOBILE: iPhone seguro, sem herdar o hero desktop partido */
@media (max-width: 540px) and (orientation: portrait) {
  :root{
    --iphone-x: 16px;
    --iphone-bottom-nav-h: 78px;
  }

  html,
  body{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    overflow-x:hidden !important;
    overscroll-behavior-x:none !important;
  }

  body{
    padding-top:env(safe-area-inset-top) !important;
    padding-bottom:calc(var(--iphone-bottom-nav-h) + env(safe-area-inset-bottom) + 10px) !important;
  }

  #appbragaScaleContent{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    transform:none !important;
    margin:0 !important;
    overflow-x:hidden !important;
  }

  /* Scroll inteligente mobile */
  html[data-iphone-scroll="hidden"],
  html[data-iphone-scroll="hidden"] body{
    overflow:hidden !important;
    height:100vh !important;
  }

  html[data-iphone-scroll="auto"],
  html[data-iphone-scroll="auto"] body{
    overflow-x:hidden !important;
    overflow-y:auto !important;
    height:auto !important;
    max-height:none !important;
  }

  html::-webkit-scrollbar,
  body::-webkit-scrollbar,
  *::-webkit-scrollbar{
    display:none !important;
    width:0 !important;
    height:0 !important;
  }

  html,
  body,
  *{
    scrollbar-width:none !important;
    -ms-overflow-style:none !important;
  }

  /* Esconde qualquer hero desktop dos portais no iPhone.
     O JS cria um header mobile novo e limpo. */
  body.appbraga-mobile-rebuilt .portal-hero,
  body.appbraga-mobile-rebuilt .portal-area-hero{
    display:none !important;
  }

  body.appbraga-mobile-rebuilt .portal-wrap,
  body.appbraga-mobile-rebuilt .portal-area-wrap,
  body.appbraga-mobile-rebuilt .area-portal-wrap{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:14px var(--iphone-x) 18px !important;
    box-sizing:border-box !important;
    overflow-x:hidden !important;
  }

  .iphone-mobile-hero{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    margin:0 0 16px !important;
    padding:16px !important;
    border-radius:28px !important;
    display:grid !important;
    grid-template-columns:64px minmax(0,1fr) !important;
    align-items:center !important;
    gap:14px !important;
    background:
      radial-gradient(circle at 12% 18%, rgba(59,130,246,.22), transparent 36%),
      linear-gradient(135deg, rgba(15,35,75,.92), rgba(3,12,31,.78)) !important;
    border:1px solid rgba(96,165,250,.26) !important;
    box-shadow:0 18px 58px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.07) !important;
    overflow:hidden !important;
  }

  .iphone-mobile-hero-logo{
    width:64px !important;
    height:64px !important;
    border-radius:20px !important;
    display:grid !important;
    place-items:center !important;
    overflow:hidden !important;
    background:rgba(14,165,233,.14) !important;
    border:1px solid rgba(125,211,252,.28) !important;
    box-shadow:0 12px 34px rgba(37,99,235,.28) !important;
  }

  .iphone-mobile-hero-logo img{
    width:100% !important;
    height:100% !important;
    object-fit:contain !important;
    display:block !important;
  }

  .iphone-mobile-hero-text{
    min-width:0 !important;
    max-width:100% !important;
    overflow:hidden !important;
  }

  .iphone-mobile-hero h1{
    margin:0 !important;
    padding:0 !important;
    font-size:clamp(1.72rem, 7vw, 2.18rem) !important;
    line-height:1.04 !important;
    letter-spacing:-.055em !important;
    white-space:normal !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    color:#f8fafc !important;
  }

  .iphone-mobile-hero p{
    margin:6px 0 0 !important;
    padding:0 !important;
    font-size:.94rem !important;
    line-height:1.22 !important;
    color:#aebdd5 !important;
    white-space:normal !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
  }

  /* Portal cards limpos */
  body.appbraga-mobile-rebuilt .portal-grid,
  body.appbraga-mobile-rebuilt .portal-area-grid,
  body.appbraga-mobile-rebuilt .portal-cards,
  body.appbraga-mobile-rebuilt .portal-nav{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:12px !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    box-sizing:border-box !important;
  }

  body.appbraga-mobile-rebuilt .portal-card,
  body.appbraga-mobile-rebuilt .portal-card-direct,
  body.appbraga-mobile-rebuilt .portal-area-card,
  body.appbraga-mobile-rebuilt .area-card{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    min-height:150px !important;
    height:auto !important;
    padding:14px 10px !important;
    border-radius:24px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:12px !important;
    text-align:center !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
  }

  body.appbraga-mobile-rebuilt .portal-card-icon,
  body.appbraga-mobile-rebuilt .area-card-icon{
    width:62px !important;
    height:62px !important;
    min-width:62px !important;
    min-height:62px !important;
    margin:0 !important;
    font-size:28px !important;
    border-radius:999px !important;
  }

  body.appbraga-mobile-rebuilt .portal-card h2,
  body.appbraga-mobile-rebuilt .portal-area-card h2,
  body.appbraga-mobile-rebuilt .area-card h2{
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    font-size:1.08rem !important;
    line-height:1.12 !important;
    letter-spacing:-.035em !important;
    white-space:normal !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    text-align:center !important;
  }

  body.appbraga-mobile-rebuilt .portal-card p,
  body.appbraga-mobile-rebuilt .portal-card small,
  body.appbraga-mobile-rebuilt .portal-card-divider,
  body.appbraga-mobile-rebuilt .portal-card-pages,
  body.appbraga-mobile-rebuilt .portal-pages-list,
  body.appbraga-mobile-rebuilt .portal-footer{
    display:none !important;
  }

  /* Todas as páginas normais */
  main,
  .page-content,
  .content,
  .main-content,
  .ck-content{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    overflow-x:hidden !important;
  }

  .page-hero:not(.portal-hero):not(.portal-area-hero),
  .hero:not(.portal-hero):not(.portal-area-hero),
  .section-hero,
  .ck-hero,
  .page-header,
  .ck-page-head{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    box-sizing:border-box !important;
    padding:16px !important;
    margin:0 0 14px !important;
    border-radius:24px !important;
    overflow:hidden !important;
  }

  h1{
    word-break:normal !important;
    overflow-wrap:normal !important;
  }

  .grid,
  .cards-grid,
  .dashboard-grid,
  .widgets-grid,
  .settings-grid,
  .config-grid,
  .ck-grid,
  .form-grid,
  .stats-grid,
  .quick-grid{
    grid-template-columns:1fr !important;
    width:100% !important;
    max-width:100% !important;
    gap:12px !important;
  }

  .card,
  .ck-card,
  .ck-panel,
  .panel,
  .widget,
  .stat-card,
  .setting-card,
  .config-card,
  .task-card,
  .printer-card,
  .notification-card{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    border-radius:22px !important;
    overflow:hidden !important;
  }

  input,
  select,
  textarea{
    font-size:16px !important;
    max-width:100% !important;
    box-sizing:border-box !important;
  }

  .modal,
  .dialog,
  .ck-modal,
  .modal-card,
  .modal-content{
    width:calc(100vw - 28px) !important;
    max-width:calc(100vw - 28px) !important;
    max-height:calc(100vh - 90px) !important;
    overflow:auto !important;
  }

  /* Bottom nav */
  .iphone-bottom-nav{
    position:fixed !important;
    left:12px !important;
    right:12px !important;
    bottom:calc(8px + env(safe-area-inset-bottom)) !important;
    height:70px !important;
    z-index:2147482000 !important;
    display:grid !important;
    grid-template-columns:repeat(4,1fr) !important;
    align-items:center !important;
    gap:4px !important;
    padding:8px !important;
    border-radius:24px !important;
    background:rgba(2,8,23,.90) !important;
    border:1px solid rgba(96,165,250,.22) !important;
    box-shadow:0 18px 60px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.07) !important;
    backdrop-filter:blur(18px) !important;
    -webkit-backdrop-filter:blur(18px) !important;
  }

  .iphone-bottom-nav a{
    min-width:0 !important;
    height:54px !important;
    border-radius:19px !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:4px !important;
    text-decoration:none !important;
    color:#94a3b8 !important;
    font-weight:850 !important;
    font-size:.74rem !important;
  }

  .iphone-bottom-nav a i{
    font-style:normal !important;
    font-size:1.32rem !important;
    line-height:1 !important;
  }

  .iphone-bottom-nav a.active{
    color:#22d3ee !important;
    background:linear-gradient(135deg,rgba(14,165,233,.22),rgba(37,99,235,.18)) !important;
  }
}
