
/* SIGEducMunicipal - correção forte para celular
   Corrige bloco branco lateral do cabeçalho e ajusta páginas/conteúdos.
*/

@media (max-width: 768px){

  html, body{
    width:100vw !important;
    max-width:100vw !important;
    min-width:0 !important;
    overflow-x:hidden !important;
    margin:0 !important;
    padding:0 !important;
    background:#eef5ff !important;
  }

  *{
    box-sizing:border-box !important;
  }

  body *{
    max-width:100vw !important;
  }

  /* Qualquer wrapper grande não pode manter largura de desktop */
  .page-shell,
  .shell,
  .layout,
  .layout-shell,
  .app,
  .app-shell,
  .wrapper,
  .container,
  .content,
  .main,
  main,
  .module,
  .module-content,
  .page,
  .dashboard,
  .dashboard-wrap{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:10px !important;
    padding-right:10px !important;
    overflow-x:hidden !important;
  }

  /* Topo institucional: remove a coluna branca lateral */
  header,
  .header,
  .topo,
  .topo-sistema,
  .cabecalho,
  .cabecalho-sistema,
  .app-header,
  .main-topbar,
  .painel-institucional,
  .institucional,
  .brand,
  .brandbar,
  .brand-bar,
  .top-brand,
  .header-brand{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    height:auto !important;
    min-height:0 !important;
    overflow:hidden !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:8px !important;
    padding:10px 12px !important;
    background:linear-gradient(135deg,#0b4fa8,#1d73d4) !important;
    color:#fff !important;
  }

  /* Filhos diretos do cabeçalho não podem ficar em colunas 70/30 */
  header > *,
  .header > *,
  .topo > *,
  .topo-sistema > *,
  .cabecalho > *,
  .cabecalho-sistema > *,
  .app-header > *,
  .main-topbar > *,
  .painel-institucional > *,
  .institucional > *,
  .brand > *,
  .brandbar > *,
  .brand-bar > *,
  .top-brand > *,
  .header-brand > *{
    width:auto !important;
    max-width:100% !important;
    min-width:0 !important;
    flex:0 1 auto !important;
    background:transparent !important;
  }

  /* Blocos vazios/brancos comuns no topo */
  .header-left,
  .top-left,
  .brand-left,
  .logo-left,
  .institution-left,
  .institucional-left,
  .header-spacer,
  .top-spacer,
  .spacer,
  .empty,
  .blank,
  .area-branca,
  .white-area{
    display:none !important;
    width:0 !important;
    height:0 !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 !important;
    overflow:hidden !important;
  }

  /* Qualquer filho do topo que seja um painel branco grande é ocultado no mobile */
  header > div[style*="background:#fff"],
  header > div[style*="background: #fff"],
  header > div[style*="background:white"],
  header > div[style*="background: white"],
  .header > div[style*="background:#fff"],
  .header > div[style*="background: #fff"],
  .app-header > div[style*="background:#fff"],
  .app-header > div[style*="background: #fff"],
  .main-topbar > div[style*="background:#fff"],
  .main-topbar > div[style*="background: #fff"]{
    display:none !important;
  }

  /* Se houver grid no cabeçalho, vira uma coluna */
  header,
  .header,
  .app-header,
  .main-topbar,
  .painel-institucional{
    grid-template-columns:1fr !important;
  }

  /* Logo e usuário no topo */
  .logo-area,
  .brand-area,
  .avatar-area,
  .usuario-area,
  .perfil-area,
  .top-user,
  .user-box,
  .user-area,
  .profile-area{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    gap:8px !important;
    padding:4px 0 !important;
    background:transparent !important;
    color:#fff !important;
  }

  header img,
  .header img,
  .app-header img,
  .main-topbar img,
  .logo-area img,
  .brand-area img,
  .avatar-area img,
  .usuario-area img,
  .perfil-area img,
  .top-user img,
  .user-box img{
    max-width:48px !important;
    max-height:48px !important;
    width:auto !important;
    height:auto !important;
    object-fit:contain !important;
  }

  header h1,
  .header h1,
  .app-header h1,
  .main-topbar h1,
  .brand h1,
  .sig-title strong{
    font-size:20px !important;
    line-height:1.1 !important;
    margin:0 !important;
    color:#fff !important;
    white-space:normal !important;
    word-break:break-word !important;
  }

  header p,
  .header p,
  .app-header p,
  .main-topbar p,
  .brand p,
  .sig-title span{
    font-size:12px !important;
    line-height:1.25 !important;
    margin:0 !important;
    color:#eaf3ff !important;
    white-space:normal !important;
  }

  .gov-topbar,
  .gov-top-strip,
  .barra-brasil,
  .brasil-topo{
    width:100% !important;
    height:auto !important;
    min-height:28px !important;
    padding:6px 8px !important;
    font-size:12px !important;
    text-align:center !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:hidden !important;
  }

  /* Menu */
  nav,
  .nav,
  .navbar,
  .menu,
  .top-menu,
  .menu-principal,
  .barra-menu{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    white-space:nowrap !important;
    padding:8px 6px !important;
    border-radius:0 !important;
    -webkit-overflow-scrolling:touch !important;
  }

  nav ul,
  .nav ul,
  .navbar ul,
  .menu ul,
  .top-menu ul,
  .menu-principal ul{
    display:flex !important;
    flex-wrap:nowrap !important;
    width:max-content !important;
    min-width:100% !important;
    gap:6px !important;
    margin:0 !important;
    padding:0 !important;
    list-style:none !important;
  }

  nav li,
  .nav li,
  .navbar li,
  .menu li,
  .top-menu li,
  .menu-principal li{
    flex:0 0 auto !important;
  }

  nav a,
  .nav a,
  .navbar a,
  .menu a,
  .top-menu a,
  .menu-principal a{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:40px !important;
    padding:8px 12px !important;
    font-size:13px !important;
    white-space:nowrap !important;
    border-radius:999px !important;
  }

  /* Conteúdo das páginas */
  .breadcrumb,
  .breadcrumbs{
    width:100% !important;
    max-width:100% !important;
    font-size:14px !important;
    padding:8px 0 !important;
    overflow-wrap:break-word !important;
  }

  .hero,
  .dashboard-hero,
  .painel-hero,
  .transporte-hero,
  [class*="hero"]{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:10px 0 14px !important;
    padding:22px 18px !important;
    border-radius:18px !important;
    overflow:hidden !important;
  }

  .hero h1,
  .dashboard-hero h1,
  .painel-hero h1,
  .transporte-hero h1,
  [class*="hero"] h1{
    font-size:26px !important;
    line-height:1.08 !important;
    white-space:normal !important;
    word-break:break-word !important;
    overflow-wrap:anywhere !important;
  }

  .hero p,
  .dashboard-hero p,
  .painel-hero p,
  .transporte-hero p,
  [class*="hero"] p{
    font-size:14px !important;
    line-height:1.4 !important;
  }

  .dashboard-grid,
  .cards,
  .grid,
  .row,
  .kpi-grid,
  .painel-grid,
  .painel-turmas-grid,
  .transporte-grid,
  .lista-cards{
    display:grid !important;
    grid-template-columns:1fr !important;
    width:100% !important;
    max-width:100% !important;
    gap:12px !important;
    margin:0 !important;
    padding:0 !important;
  }

  .card,
  .panel,
  .box,
  .widget,
  .dashboard-card,
  .modulo-card,
  .turma-card,
  .transporte-card,
  div[class*="card"],
  div[class*="painel"],
  div[class*="box"]{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    border-radius:16px !important;
    padding:16px !important;
    overflow:hidden !important;
  }

  /* Formulários */
  form,
  fieldset,
  .form,
  .formulario,
  .form-grid,
  .form-row,
  .linha-form,
  .campo,
  .form-group{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
  }

  .form-grid,
  .form-row,
  .linha-form{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  label{
    display:block !important;
    text-align:left !important;
    margin-bottom:5px !important;
  }

  input,
  select,
  textarea{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    font-size:16px !important;
  }

  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="date"],
  input[type="time"],
  input[type="search"],
  input[type="tel"],
  input[type="url"],
  select{
    min-height:42px !important;
    padding:10px 12px !important;
  }

  textarea{
    min-height:110px !important;
    padding:10px 12px !important;
  }

  .tabs,
  .tab-buttons,
  .tab-nav,
  .acoes,
  .actions,
  .botoes,
  .btn-group,
  .transporte-actions{
    width:100% !important;
    display:flex !important;
    flex-wrap:wrap !important;
    gap:8px !important;
    overflow-x:auto !important;
  }

  .btn,
  button,
  input[type="submit"],
  input[type="button"],
  a.btn{
    min-height:42px !important;
    padding:10px 14px !important;
    white-space:normal !important;
    text-align:center !important;
  }

  table{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    overflow-x:auto !important;
    white-space:nowrap !important;
    -webkit-overflow-scrolling:touch !important;
  }

  table th,
  table td{
    padding:10px 12px !important;
    font-size:13px !important;
  }

  footer,
  .footer,
  .rodape,
  .legal-footer{
    width:100% !important;
    max-width:100% !important;
    font-size:11px !important;
    line-height:1.35 !important;
    padding:12px 8px !important;
    text-align:center !important;
  }

  .help,
  .help-button,
  .floating-help,
  [class*="help"]{
    right:10px !important;
    bottom:10px !important;
    z-index:50 !important;
  }
}

@media (max-width:480px){
  .hero h1,
  .dashboard-hero h1,
  .painel-hero h1,
  .transporte-hero h1,
  [class*="hero"] h1{
    font-size:23px !important;
  }

  nav a,
  .nav a,
  .navbar a,
  .menu a,
  .top-menu a,
  .menu-principal a{
    font-size:12px !important;
    padding:7px 10px !important;
  }
}

/* v415 busca aluno inteligente: estilos principais em estilo.css */
