body{
    width: 100%;
    padding: 0;
    margin: 0;
    font-family: 'Roboto', sans-serif;
    transition: background-color .25s, color .25s;
}
.main{
    width: 100%;
    min-height: 100vh;
    padding: 0;
    margin: 0;
    /* background-color: #063559; */
    background-color: var(--color-bg);
}

.secondaryButton{
    background-color: var(--color-secondary);
    color: var(--color-menu-text);
}
.secondaryButton:hover{
    background-color: var(--color-accent);
    color: var(--color-menu-text);
}

.primaryTitles{
    color: var(--color-menu-text);
}

.secondaryTitles {
    color: var(--color-primary-dark);
    font-weight: 700;
    margin-bottom: 1rem;
}

#success-alert{
    position: absolute;
    top: 90%;
    right: 0;
    z-index: 99;
}

/* Titles color -------------------------- */

.contentTitle, .myWorksTitle, .aboutMeTitle, .contactMeTitle, .contactMeSubTitle, .personalSitetitle, .companySitetitle{
    /* color: #62ff88; */
    color: var(--color-surface);
}

.form-label{
    /* color: #62ff88; */
    color: var(--color-surface);
}

.personalSiteText, .companySiteText{
    text-align: justify;
}

.myFooter{
    /* TODO: Posicionar o rodapé no fim de qualquer página */
}

/* Article styles */

.article-img{
    height: 300px;
    background-color: black;
}

/* ---------------------------LOGIN PAGE--------------------------- */

.gradient-custom-2 {
    /* fallback for old browsers */
    background: #fccb90;
    
    /* Chrome 10-25, Safari 5.1-6 */
    background: -webkit-linear-gradient(to right, #20532d , #665c2d, #39677c);
    
    /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
    background: linear-gradient(to right, #20532d , #665c2d, #39677c);
    }
    
    /* Linha separando opção de login */
    
    .separator {
      display: flex;
      align-items: center;
      text-align: center;
    }
    
    .separator::before,
    .separator::after {
      content: '';
      flex: 1;
      border-bottom: 1px solid #000;
    }
    
    .separator:not(:empty)::before {
      margin-right: .25em;
    }
    
    .separator:not(:empty)::after {
      margin-left: .25em;
    }
    
    @media (min-width: 768px) {
    .gradient-form {
    height: 100vh !important;
    }
    }
    @media (min-width: 769px) {
    .gradient-custom-2 {
    border-top-right-radius: .3rem;
    border-bottom-right-radius: .3rem;
    }
    }


    /* botão cancelar estilo */

.btn-cancel {
    display: block;
    text-align: center;
    width: 100%;
    margin-top: 0.75rem;
    padding: 0.75rem 1.5rem;
    border-radius: 0.6rem;
    background-color: #ccc;
    color: #333;
    font-weight: 600;
    text-decoration: none;
    transition: background 0.3s ease, transform 0.1s ease;
}

.btn-cancel:hover {
    background-color: #b0b0b0;
    transform: translateY(-2px);
}

.btn-cancel:active {
    transform: translateY(0);
}

/* Estilo QR-CODE */
/* --- BOTÃO FIXO --- */
.qr-btn {
    position: fixed;
    bottom: 80px;
    right: 25px;
    background: var(--accent-color, #2ecc71);
    color: white;
    border: none;
    font-size: 28px;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    box-shadow: 0 4px 10px rgba(0,0,0,0.3);
    cursor: pointer;
    z-index: 1050;
    transition: all 0.3s ease;
}
.qr-btn:hover {
    transform: scale(1.1);
    background: var(--accent-hover, #27ae60);
}

/* --- MODAL --- */
.qr-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.75);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1100;
}

/* --- CONTEÚDO DO MODAL --- */
.qr-modal-content {
    background: var(--background, #ffffff);
    color: var(--text-color, #333);
    padding: 20px;
    border-radius: 16px;
    box-shadow: 0 0 20px rgba(0,0,0,0.3);
    width: 90%;
    max-width: 360px;
    text-align: center;
    animation: fadeIn 0.3s ease;
    position: relative;
}

/* --- BOTÃO DE FECHAR --- */
.close-btn {
    position: absolute;
    top: 10px;
    right: 15px;
    font-size: 22px;
    cursor: pointer;
    color: var(--text-color, #333);
    transition: color 0.3s;
}
.close-btn:hover {
    color: var(--accent-color, #2ecc71);
}

@keyframes fadeIn {
    from { opacity: 0; transform: scale(0.9); }
    to   { opacity: 1; transform: scale(1); }
}


/* Mobile menu */

.mobile-bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 65px;
    background: var(--color-bottom-nav-bg);
    border-top: 1px solid var(--border-color);
    display: flex;
    justify-content: space-around;
    align-items: center;
    z-index: 1050;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
}

.mobile-bottom-nav .nav-item {
    flex: 1;
    text-align: center;
    color: var(--color-bottom-nav-text);
    text-decoration: none;
    font-size: 12px;
    transition: color 0.3s ease;
}

.mobile-bottom-nav .nav-item i {
    font-size: 22px;
    display: block;
    margin-bottom: 2px;
}

.mobile-bottom-nav .nav-item.active,
.mobile-bottom-nav .nav-item:hover {
    background-color: var(--color-accent);
}

@media (min-width: 992px) {
    .mobile-bottom-nav {
        display: none;
    }
}
@media (max-width: 992px) {
    body {
        padding: 0 0 65px 0;
    }
}


/* users list styles */
/* ======================================= */
/* ESTILOS DO TEMA CLARO PARA LISTA DE USUÁRIOS */
/* ======================================= */

/* Container e título */
.users-container {
    background-color: var(--color-bg);
    padding: 20px;
    border-radius: 12px;
}

.users-title {
    color: var(--color-menu-text);
    font-weight: bold;
}

/* Tabela (desktop) */
.table-custom thead {
    background-color: var(--color-surface-secondary);
    color: var(--color-menu-text);
}

.table-custom tbody tr {
    background-color: var(--color-surface);
}

.table-custom tbody tr:hover {
    background-color: var(--color-primary-light);
    color: var(--color-surface);
}

/* Labels da tabela mobile */
.table-mobile td:first-child {
    background-color: var(--color-primary-dark);
    color: var(--color-menu-text);
    font-weight: bold;
    width: 35%;
}

/* Botões */
.btn-custom-delete {
    background-color: var(--color-danger);
    color: white;
    border: none;
}

.btn-custom-delete:hover {
    opacity: 0.9;
}

select.form-select-sm {
    background-color: var(--color-surface);
    color: var(--color-text);
    border-color: var(--color-primary-light);
}

select.form-select-sm:focus {
    border-color: var(--color-accent);
    box-shadow: 0 0 0 2px var(--color-accent);
}

/* Alert */
.alert-custom {
    background-color: var(--color-danger);
    color: var(--color-surface);
    border: none;
}

/* =================================================
   CORREÇÕES CSS para Google Places Autocomplete em Modais
   (Deve ser inserido no arquivo CSS principal após o Bootstrap)
   =================================================
*/

/* 1. Garante que o container de sugestões fique sempre no topo */
.pac-container {
    /* Valor alto, garantindo que seja maior que o z-index do modal (tipicamente 1050) */
    z-index: 99999 !important; 
    /* Remove qualquer limitação de corte */
    overflow: visible !important;
}

/* 2. Garante que o corpo do modal não corte o Autocomplete */
.modal-body {
    overflow: visible;
}

/* 3. Garante que o componente Place Picker não esconda as sugestões */
gmpx-place-picker {
    overflow: visible;
}

/* Opcional: Se a cor de fundo do modal for muito escura, este estilo garante que o texto 
   das sugestões seja sempre legível (fundo branco). */
.pac-item {
    background-color: #fff;
}

/* =================================================
   CORREÇÃO CRÍTICA PARA VISIBILIDADE DO MARCADOR
   =================================================
*/

/* Garante que o container do mapa não esconda elementos flutuantes */
gmp-map {
    /* Opcional: Garante que o mapa tenha uma posição de referência para elementos filhos */
    position: relative !important;
    overflow: visible !important; 
}

/* Força o marcador a ter um z-index alto e garante que ele seja renderizado. */
gmp-advanced-marker {
    z-index: 999999 !important; /* Valor muito alto para aparecer sobre TUDO */
    visibility: visible !important;
    display: block !important;
    opacity: 1 !important;
}