/* ============================================================
   Portal de Gestão — União Desportiva Oliveirense
   CSS Responsividade->    
   ============================================================ */

/* ============================================================
                        RESPONSIVO LOGIN
   ============================================================ */

@media (max-width: 768px) {
  #pagina-login { flex-direction: column; }
  #pagina-login .login-esquerda { padding: 40px 24px; flex: none; min-height: 220px; }
  #pagina-login .login-direita { width: 100%; padding: 32px 20px; }
  #secao-login { max-width: 100%; }
}

/* ============================================================
   RESPONSIVO BACK OFFICE
   ============================================================ */
@media (max-width: 900px) {
  :root { --sidebar-w: 200px; }
  .escaloes-grid { grid-template-columns: 1fr; }
  .admin-grid    { grid-template-columns: 1fr; }
}

/* ============================================================
   RESPONSIVO BACK OFFICE — tablet e mobile
   ============================================================ */

@media (max-width: 700px) {

  /* Sidebar vira barra de navegação no topo */
  #pagina-backoffice {
    flex-direction: column;
  }

  #pagina-backoffice > header {
    width: 100%;
    min-height: auto;
    height: auto;
    flex-direction: column;
    position: sticky;
    top: 0;
    padding: 12px 16px 8px;
    gap: 10px;
    z-index: 200;
  }

  /* Perfil compacto no topo */
  .sidebar-perfil {
    flex-direction: row;
    align-items: center;
    gap: 12px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    border-right: none;
    padding: 0 0 10px 0;
    width: 100%;
    justify-content: flex-start;
  }

  .sidebar-avatar {
    width: 40px;
    height: 40px;
    margin-bottom: 0;
    flex-shrink: 0;
  }

  .sidebar-avatar-iniciais { font-size: 1rem; }

  #nome-utilizador-logado {
    font-size: .88rem;
    flex: 1;
  }

  #role-utilizador-logado {
    font-size: .68rem;
    padding: 2px 8px;
  }

  /* Navegação horizontal com scroll */
  #nav-principal {
    width: 100%;
    padding: 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: var(--red) rgba(255,255,255,.15);
  }

  #nav-principal::-webkit-scrollbar {
    height: 4px;
  }

  #nav-principal::-webkit-scrollbar-thumb {
    background: var(--red);
    border-radius: 2px;
  }

  #nav-principal::-webkit-scrollbar-track {
    background: rgba(255,255,255,.1);
    border-radius: 2px;
  }

  #nav-principal ul {
    display: flex;
    flex-direction: row;
    gap: 6px;
    padding: 2px 0;
    list-style: none;
  }

  #nav-principal li { margin: 0; flex-shrink: 0; }

  .nav-link {
    padding: 8px 14px;
    font-size: .82rem;
    white-space: nowrap;
    border-radius: 50px;
  }

  .nav-link:hover { padding-left: 14px; }
  .nav-link.ativo { padding-left: 14px; }

  /* Footer com botão compacto */
  .sidebar-footer {
    width: 100%;
    padding: 6px 0 0 0;
    border-top: 1px solid rgba(255,255,255,.08);
    border-left: none;
  }

  #btn-terminar-sessao {
    width: 100%;
    border-radius: var(--r-md);
    padding: 8px 14px;
    font-size: .82rem;
    justify-content: center;
  }

  /* Main content ocupa toda a largura */
  .main-content {
    margin-left: 0;
    width: 100%;
  }

  .main-topbar {
    padding: 12px 16px;
  }

  .main-topbar-titulo { font-size: 1rem; }

  /* Conteúdo com padding reduzido */
  .secao-conteudo {
    padding: 16px 12px;
  }

  .secao-conteudo h2 { font-size: 1.2rem; }

  /* Barra de ferramentas em coluna */
  #barra-ferramentas {
    flex-direction: column;
    gap: 10px;
  }

  #pesquisa-inscritos,
  #filtro-estado-atleta,
  #filtro-escalao {
    width: 100%;
    min-width: unset;
  }

  /* Tabelas com scroll horizontal — já definido globalmente */

  thead th {
    font-size: .72rem;
    padding: 10px 10px;
    white-space: nowrap;
  }

  tbody td {
    padding: 10px;
    font-size: .82rem;
    white-space: nowrap;
  }

  /* Botões de ação mais pequenos */
  .btn-acao {
    font-size: .72rem;
    padding: 5px 10px;
  }

  .acoes-celula { gap: 4px; }

  /* Grid de edição em coluna */
  #form-edicao-inscrito fieldset .campos-grid {
    grid-template-columns: 1fr;
  }

  #edicao-botoes {
    flex-direction: column;
    padding: 0 16px;
  }

  #edicao-botoes button { width: 100%; justify-content: center; }

  /* Escalões em coluna */
  .escaloes-grid {
    grid-template-columns: 1fr;
  }

  /* Admin em coluna */
  .admin-grid {
    grid-template-columns: 1fr;
  }
}

/* Extra pequeno — phones muito estreitos */
@media (max-width: 380px) {
  .nav-link { font-size: .75rem; padding: 7px 10px; }
  .secao-conteudo { padding: 12px 8px; }
  thead th { font-size: .68rem; padding: 8px; }
  tbody td  { font-size: .78rem; padding: 8px; }
}


/* ============================================================
            RESPONSIVO PAINEL DE EDIÇÃO DE UTILIZADORES
   ============================================================ */
@media (max-width: 700px) {
  #form-edicao-utilizador .campos-grid {
    grid-template-columns: 1fr;
  }
  .edicao-botoes-user {
    flex-direction: column;
  }
  .edicao-botoes-user button {
    width: 100%;
    justify-content: center;
  }
}

/* ============================================================
            RESPONSIVO MODAL DE CONFIRMAÇÃO DE PASSWORD
   ============================================================ */

@media (max-width: 480px) {
  #modal-confirmar-conteudo { padding: 24px 18px; }
  .modal-botoes { flex-direction: column; }
  .modal-botoes button { width: 100%; }
}

/* ============================================================
            RESPONSIVO PEDIDOS DE ELIMINAÇÃO
   ============================================================ */
@media (max-width: 480px) {
  #modal-motivo-conteudo { padding: 24px 18px; }
}

/* ============================================================
   PAGINAÇÃO E PESQUISA DE AUDITORIA
   ============================================================ */
@media (max-width: 600px) {
  .paginacao-wrap { justify-content: center; }
  .paginacao-info { width: 100%; text-align: center; }
}


/* ============================================================
            RESPONSIVO FOTOGRAFIA NO PAINEL DE EDIÇÃO
   ============================================================ */
@media (max-width: 600px) {
  #painel-foto-edicao { flex-direction: column; }
  #foto-edicao-nova-wrap { min-width: unset; width: 100%; }
}

/* ============================================================
     RESPONSIVO MODAL DE ALERTA / CONFIRMAÇÃO PERSONALIZADO
   ============================================================ */
@media (max-width: 480px) {
  #modal-alerta-conteudo { padding: 24px 18px; }
  #modal-alerta-botoes { flex-direction: column; }
  #modal-alerta-botoes button { width: 100%; }
}

/* ============================================================
   RESPONSIVO Treinador/Diretor
   ============================================================ */

/* Tablets (~1024px) */
@media (max-width: 1024px) {
  .relatorios-grid {
    grid-template-columns: 1fr 1fr;
  }

  .objetivos-grid {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  }

  #form-nova-atribuicao .campos-grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* Mobile (~768px) */
@media (max-width: 768px) {
  .relatorios-grid {
    grid-template-columns: 1fr;
  }

  .objetivos-grid {
    grid-template-columns: 1fr 1fr;
  }

  #form-nova-atribuicao .campos-grid {
    grid-template-columns: 1fr;
  }

  .diretor-barra-filtros {
    flex-direction: column;
    align-items: stretch;
  }

  .diretor-barra-filtros select {
    min-width: unset;
    width: 100%;
  }

  .relatorio-acoes {
    flex-direction: column;
  }

  .btn-relatorio {
    width: 100%;
    justify-content: center;
  }
}

/* Mobile pequeno (~480px) */
@media (max-width: 480px) {
  .objetivos-grid {
    grid-template-columns: 1fr;
  }

  .equipa-header {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Responsivo modal relatório */
@media (max-width: 600px) {
  #modal-relatorio-trimestral-conteudo, #modal-relatorio-fim-epoca-conteudo { padding: 20px 16px; }
  .relatorio-campos-grid { grid-template-columns: 1fr; }
  .comportamento-opcoes { gap: 8px; }
  .comportamento-opcao { padding: 6px 10px; font-size: .82rem; }
}

