
/* AppBraga v1.58.207 — enquadramento iPhone 16 Pro Max + Lenovo Idea Tab 11"
   Objetivo: a app deixa de ficar cortada/larga nos ecrãs móveis. */
:root{
  --ab-safe-top: env(safe-area-inset-top, 0px);
  --ab-safe-right: env(safe-area-inset-right, 0px);
  --ab-safe-bottom: env(safe-area-inset-bottom, 0px);
  --ab-safe-left: env(safe-area-inset-left, 0px);
  --ab-mobile-pad: 12px;
  --ab-tablet-pad: 18px;
}
html{
  width:100% !important;
  min-width:0 !important;
  max-width:100vw !important;
  min-height:100% !important;
  min-height:100dvh !important;
  overflow-x:hidden !important;
  -webkit-text-size-adjust:100% !important;
  text-size-adjust:100% !important;
}
body{
  width:100% !important;
  min-width:0 !important;
  max-width:100vw !important;
  min-height:100vh !important;
  min-height:100dvh !important;
  margin:0 !important;
  overflow-x:hidden !important;
  overscroll-behavior-x:none !important;
}
*,*::before,*::after{box-sizing:border-box;}
img,svg,video,canvas{max-width:100%;height:auto;}
input,select,textarea{max-width:100%;font-size:16px !important;}

/* Tablet Android / iPad / ecrãs até 1180px */
@media (max-width:1180px){
  html,body{
    min-width:0 !important;
    width:100% !important;
    max-width:100vw !important;
    overflow-x:hidden !important;
  }
  body.radios-futurista-page,
  body.pistolas-ck65-page,
  body.computadores-futurista-page,
  body.tarefas-futurista-page,
  body.informacoes-futurista-page,
  body.portas-futurista-page,
  body.users-futurista-page,
  body.diretorio-futurista-page,
  body.equipas-futurista-page,
  body.impressoras-futurista,
  body.scanner-ia-page,
  body.diagnostico-futurista-page,
  body.notificacoes-futurista-page,
  body.portal-area-page,
  body.portal-home-page{
    min-width:0 !important;
    max-width:100vw !important;
    overflow-x:hidden !important;
  }

  .main,.main-content,main,.content,.page,.page-content,.app-main,
  .ck-page,.imp-page,.tasks-page,.users-page,.eq-page,.scanner-page,.diag-page,.notificacoes-page,
  .portal-area-wrap,.portal-wrap,.portal-home-wrap{
    width:100% !important;
    min-width:0 !important;
    max-width:100vw !important;
    margin-left:0 !important;
    margin-right:0 !important;
    transform:none !important;
    zoom:1 !important;
    overflow-x:hidden !important;
  }

  .main,.main-content,.content,.page-content,.app-main{
    padding-left:max(var(--ab-tablet-pad), var(--ab-safe-left)) !important;
    padding-right:max(var(--ab-tablet-pad), var(--ab-safe-right)) !important;
    padding-bottom:calc(28px + var(--ab-safe-bottom)) !important;
  }

  .ck-page,.imp-page,.tasks-page,.users-page,.eq-page,.scanner-page,.diag-page,.notificacoes-page{
    padding-left:max(var(--ab-tablet-pad), var(--ab-safe-left)) !important;
    padding-right:max(var(--ab-tablet-pad), var(--ab-safe-right)) !important;
    padding-bottom:calc(28px + var(--ab-safe-bottom)) !important;
  }

  /* Heros centrados e sem largura fixa */
  .ck-hero,.imp-hero,.portal-area-hero,.portal-hero,
  .hero,.page-hero,.dashboard-hero{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    padding-left:0 !important;
    padding-right:0 !important;
    overflow:visible !important;
  }
  .ck-hero-inner,.imp-hero-inner,.hero-inner,.page-hero-inner,
  .portal-area-hero > div,.portal-hero-inner{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    height:auto !important;
    min-height:92px !important;
    padding:16px 18px !important;
    gap:14px !important;
    flex-wrap:nowrap !important;
    transform:none !important;
    zoom:1 !important;
  }
  .ck-hero-copy,.imp-hero-inner > div,.hero-copy{
    min-width:0 !important;
    max-width:100% !important;
    flex:1 1 auto !important;
  }
  .ck-hero h1,.imp-hero h1,.hero h1,.page-hero h1,.portal-area-hero h1{
    font-size:clamp(24px,4vw,34px) !important;
    line-height:1.04 !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }
  .ck-hero p,.imp-hero p,.hero p,.page-hero p,.portal-area-hero p{
    font-size:clamp(13px,1.8vw,15px) !important;
    line-height:1.25 !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }
  .ck-hero-home,.imp-hero-orbit,.portal-area-logo,.appbraga-home-orbit-btn{
    flex:0 0 auto !important;
    transform:none !important;
    zoom:1 !important;
  }
  .ck-hero-icon,.imp-hero-icon,.hero-icon{
    width:54px !important;
    height:54px !important;
    min-width:54px !important;
    min-height:54px !important;
    font-size:25px !important;
    flex:0 0 54px !important;
  }

  /* Grids principais */
  .ck-kpis,.imp-kpis,.stats-grid,.kpi-grid,.dashboard-kpis,.portal-area-grid,.portal-grid{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:12px !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }
  .ck-main-grid,.imp-main-grid,.main-grid,.dashboard-grid,.bottom-grid,.imp-bottom-grid,.ck-bottom-grid{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:16px !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }
  .imp-side,.ck-side,aside,.side-panel{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
  }

  .panel,.card,.imp-panel,.ck-panel,.dashboard-card,.stock-card,.history-card,.pc-card,
  .portal-area-card,.portal-card,.box,.modal-card,.imp-dashboard-modal-card{
    max-width:100% !important;
    min-width:0 !important;
  }

  .imp-panel-head,.ck-panel-head,.section-header,.topbar,.premium-topbar,.filters-row,.imp-search-row,.ck-filters{
    max-width:100% !important;
    min-width:0 !important;
  }

  .imp-search-row,.ck-filters,.filters-row,.toolbar,.portas-toolbar,.pistolas-toolbar,.users-toolbar{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }
  .imp-search-row input,.imp-search-row select,.imp-search-row button,
  .ck-filters input,.ck-filters select,.ck-filters button,
  .filters-row input,.filters-row select,.filters-row button,
  .toolbar input,.toolbar select,.toolbar button{
    width:100% !important;
    min-width:0 !important;
  }

  /* Tabelas: scroll interno, nunca cortar a página inteira */
  .table-wrap,.imp-table-wrap,.ck-table-wrap,.pro-table-wrap,.imp-mini-table{
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    overflow-y:visible !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior-x:contain !important;
  }
  table,.pro-table,.imp-table,.ck-table{
    width:100% !important;
    max-width:none !important;
  }
  .imp-table,.printers-table,.pro-table,.ck-table{
    min-width:820px !important;
  }

  /* Modais seguros */
  .modal-overlay,.imp-modal,.imp-dashboard-modal,.app-modal-overlay,.ab-modal-overlay{
    padding:calc(12px + var(--ab-safe-top)) max(12px,var(--ab-safe-right)) calc(12px + var(--ab-safe-bottom)) max(12px,var(--ab-safe-left)) !important;
    align-items:flex-start !important;
    overflow:auto !important;
    -webkit-overflow-scrolling:touch !important;
  }
  .modal-card,.imp-dashboard-modal-card,.app-modal-card,.ab-modal-card{
    width:100% !important;
    max-width:min(760px, calc(100vw - 24px)) !important;
    max-height:calc(100dvh - 24px - var(--ab-safe-top) - var(--ab-safe-bottom)) !important;
    overflow:auto !important;
  }

  .app-version-mini{
    right:max(10px,var(--ab-safe-right)) !important;
    bottom:max(10px,var(--ab-safe-bottom)) !important;
  }
}

/* iPhone 16 Pro Max / telemóveis */
@media (max-width:600px){
  :root{--ab-mobile-pad:10px;}
  html,body{
    min-width:0 !important;
    width:100% !important;
    max-width:100vw !important;
    overflow-x:hidden !important;
  }
  body{
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .main,.main-content,.content,.page-content,.app-main{
    padding-left:max(var(--ab-mobile-pad), var(--ab-safe-left)) !important;
    padding-right:max(var(--ab-mobile-pad), var(--ab-safe-right)) !important;
    padding-top:calc(12px + var(--ab-safe-top)) !important;
    padding-bottom:calc(26px + var(--ab-safe-bottom)) !important;
  }
  .ck-page,.imp-page,.tasks-page,.users-page,.eq-page,.scanner-page,.diag-page,.notificacoes-page,
  .portal-area-wrap,.portal-wrap,.portal-home-wrap{
    padding-left:max(var(--ab-mobile-pad), var(--ab-safe-left)) !important;
    padding-right:max(var(--ab-mobile-pad), var(--ab-safe-right)) !important;
    padding-top:calc(12px + var(--ab-safe-top)) !important;
    padding-bottom:calc(28px + var(--ab-safe-bottom)) !important;
  }

  .ck-hero-inner,.imp-hero-inner,.hero-inner,.page-hero-inner,
  .portal-area-hero > div,.portal-hero-inner{
    min-height:82px !important;
    padding:14px 14px !important;
    border-radius:22px !important;
    gap:10px !important;
  }
  .ck-hero-icon,.imp-hero-icon,.hero-icon{
    width:46px !important;
    height:46px !important;
    min-width:46px !important;
    min-height:46px !important;
    flex-basis:46px !important;
    font-size:22px !important;
  }
  .ck-hero-home,.imp-hero-orbit,.portal-area-logo,.appbraga-home-orbit-btn{
    width:48px !important;
    height:48px !important;
    min-width:48px !important;
    min-height:48px !important;
    max-width:48px !important;
    max-height:48px !important;
    position:relative !important;
    left:auto !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    margin:0 !important;
    transform:none !important;
  }
  .ck-hero h1,.imp-hero h1,.hero h1,.page-hero h1,.portal-area-hero h1{
    font-size:24px !important;
    letter-spacing:-.04em !important;
  }
  .ck-hero p,.imp-hero p,.hero p,.page-hero p,.portal-area-hero p{
    font-size:12.5px !important;
  }
  .ab-hero-area-actions{
    margin-left:auto !important;
    flex:0 0 auto !important;
  }
  .ab-hero-area-btn{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    min-height:42px !important;
  }

  .ck-kpis,.imp-kpis,.stats-grid,.kpi-grid,.dashboard-kpis,.portal-area-grid,.portal-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:10px !important;
  }
  .ck-kpi,.imp-kpi,.stat-card,.portal-area-card,.portal-card{
    min-width:0 !important;
    min-height:78px !important;
    height:auto !important;
    padding:12px !important;
    border-radius:20px !important;
    gap:10px !important;
  }
  .ck-kpi-icon,.imp-kpi-icon{
    width:42px !important;
    height:42px !important;
    min-width:42px !important;
    min-height:42px !important;
    flex:0 0 42px !important;
    font-size:20px !important;
  }
  .ck-kpi strong,.imp-kpi strong,.stat-card strong{
    font-size:24px !important;
    max-width:100% !important;
  }
  .ck-kpi small,.imp-kpi small,.stat-card small{
    white-space:normal !important;
  }

  .imp-search-row,.ck-filters,.filters-row,.toolbar,.portas-toolbar,.pistolas-toolbar,.users-toolbar{
    grid-template-columns:1fr !important;
  }
  .imp-panel-head,.ck-panel-head,.section-header,.topbar,.premium-topbar{
    flex-direction:column !important;
    align-items:stretch !important;
    gap:12px !important;
  }
  .imp-panel-title,.ck-panel-title,.ck-side-title{
    min-width:0 !important;
  }
  .imp-panel-title h2,.imp-panel-title h3,.ck-panel-title h2,.ck-panel-title h3,.ck-side-title h3{
    white-space:normal !important;
    overflow-wrap:anywhere !important;
  }
  .imp-panel-title p,.ck-panel-title p,.ck-side-title p{
    white-space:normal !important;
  }

  .imp-table,.printers-table,.pro-table,.ck-table{
    min-width:760px !important;
  }
  .imp-table th,.imp-table td,.pro-table th,.pro-table td,.ck-table th,.ck-table td{
    font-size:12px !important;
    padding:10px 9px !important;
  }

  .modal-card,.imp-dashboard-modal-card,.app-modal-card,.ab-modal-card{
    max-width:calc(100vw - 20px) !important;
    border-radius:22px !important;
  }

  .app-version-mini{
    display:none !important;
  }
}

/* Telemóveis muito estreitos */
@media (max-width:380px){
  .ck-kpis,.imp-kpis,.stats-grid,.kpi-grid,.dashboard-kpis,.portal-area-grid,.portal-grid{
    grid-template-columns:1fr !important;
  }
  .ck-hero h1,.imp-hero h1,.hero h1,.page-hero h1,.portal-area-hero h1{
    font-size:22px !important;
  }
}

/* Landscape mobile: dá mais respiro e evita barra cortada */
@media (max-width:950px) and (orientation:landscape){
  .main,.main-content,.content,.page-content,.app-main,
  .ck-page,.imp-page,.tasks-page,.users-page,.eq-page,.scanner-page,.diag-page,.notificacoes-page{
    padding-top:calc(8px + var(--ab-safe-top)) !important;
  }
  .ck-hero-inner,.imp-hero-inner,.hero-inner,.page-hero-inner{
    min-height:72px !important;
    padding-top:10px !important;
    padding-bottom:10px !important;
  }
}
