/* Tema escuro padrão, por cima do modo dark do Bootstrap 5.3.
   A marca de cada instalação (static/marcas/<marca>/tema.css) troca as variáveis --ga-*. */

[data-bs-theme=dark] {
    --ga-fundo: #0a1120;
    --ga-menu: #0c1527;
    --ga-cartao: #101b30;
    --ga-cartao-2: #14223b;
    --ga-borda: #1d2c48;
    --ga-destaque: #3b82f6;
    --ga-ativo: #1d4ed8;
    --ga-menu-texto: #b7c3d9;
    --ga-menu-hover-texto: #fff;
    --ga-senha-revelada: #fbbf24;

    --bs-body-bg: var(--ga-fundo);
    --bs-body-color: #e3e9f4;
    --bs-border-color: var(--ga-borda);
    --bs-secondary-color: #8b9bb8;
    --bs-tertiary-bg: var(--ga-cartao-2);
    --bs-link-color: #6c9bff;
    --bs-link-color-rgb: 108, 155, 255;
    --bs-link-hover-color: #9dbcff;
    --bs-link-hover-color-rgb: 157, 188, 255;
}

/* Modo claro (marca com "modo": "claro" no marca.json): página branca. */
[data-bs-theme=light] {
    --ga-fundo: #ffffff;
    --ga-menu: #ffffff;
    --ga-cartao: #ffffff;
    --ga-cartao-2: #f4f4f5;
    --ga-borda: #e4e4e7;
    --ga-destaque: #2563eb;
    --ga-ativo: #1d4ed8;
    --ga-menu-texto: #3f3f46;
    --ga-menu-hover-texto: #18181b;
    --ga-senha-revelada: #b45309;

    --bs-body-bg: var(--ga-fundo);
    --bs-body-color: #18181b;
    --bs-border-color: var(--ga-borda);
    --bs-secondary-color: #6b7280;
    --bs-tertiary-bg: var(--ga-cartao-2);
}

body {
    background: var(--ga-fundo);
}

a {
    text-decoration: none;
}

/* --- Estrutura: menu lateral + conteúdo --- */

.ga-app {
    display: flex;
    min-height: 100vh;
}

.ga-main {
    flex: 1;
    min-width: 0;
}

.ga-sidebar-inner {
    --bs-offcanvas-bg: var(--ga-menu);
    --bs-offcanvas-width: 260px;
}

.ga-sidebar-inner .offcanvas-body {
    padding: 1.25rem 1rem;
}

@media (min-width: 992px) {
    .ga-sidebar {
        width: 248px;
        flex-shrink: 0;
        background: var(--ga-menu);
        border-right: 1px solid var(--ga-borda);
        position: sticky;
        top: 0;
        height: 100vh;
        overflow-y: auto;
    }

    .ga-sidebar-inner,
    .ga-sidebar-inner .offcanvas-body {
        height: 100%;
    }
}

.ga-marca {
    display: flex;
    align-items: center;
    gap: .6rem;
    color: var(--bs-body-color);
    font-weight: 700;
    font-size: 1.15rem;
    margin-bottom: 1.75rem;
    padding: 0 .5rem;
}

.ga-marca:hover {
    color: var(--bs-body-color);
}

.ga-marca .bi {
    font-size: 1.6rem;
    color: var(--ga-destaque);
}

/* Marca com logo (white label): o logo já tem o nome. */
.ga-marca-logo {
    display: block;
}

.ga-marca-logo img {
    display: block;
    max-width: 100%;
    max-height: 3rem;
}

.ga-marca-logo small {
    margin-top: .35rem;
}

.ga-login .ga-marca-logo img {
    max-height: 4.75rem;
    margin: 0 auto;
}

.ga-marca small {
    display: block;
    font-weight: 400;
    font-size: .72rem;
    color: var(--bs-secondary-color);
}

.ga-menu a {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .65rem .85rem;
    margin-bottom: .2rem;
    border-radius: .6rem;
    color: var(--ga-menu-texto);
    font-size: .95rem;
}

.ga-menu a:hover {
    background: var(--ga-cartao-2);
    color: var(--ga-menu-hover-texto);
}

.ga-menu a.ativo {
    background: var(--ga-ativo);
    color: #fff;
}

.ga-menu .bi {
    font-size: 1.1rem;
}

.ga-status {
    border: 1px solid var(--ga-borda);
    border-radius: .75rem;
    padding: .85rem 1rem;
    font-size: .85rem;
    margin-top: 1.5rem;
}

.ga-ponto {
    display: inline-block;
    width: .55rem;
    height: .55rem;
    border-radius: 50%;
    margin-right: .3rem;
}

.ga-topo {
    display: flex;
    align-items: center;
    padding: 1.1rem 1.5rem;
    border-bottom: 1px solid var(--ga-borda);
}

.ga-conteudo {
    padding: 1.5rem;
}

@media (max-width: 575.98px) {
    .ga-topo,
    .ga-conteudo {
        padding: 1rem;
    }
}

.ga-usuario {
    display: flex;
    align-items: center;
    gap: .5rem;
    border: 0;
}

.ga-avatar {
    display: inline-grid;
    place-items: center;
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    background: var(--ga-cartao-2);
    border: 1px solid var(--ga-borda);
    font-size: .8rem;
    font-weight: 600;
}

/* --- Componentes --- */

.card {
    --bs-card-bg: var(--ga-cartao);
    --bs-card-border-color: var(--ga-borda);
    --bs-card-border-radius: .9rem;
    --bs-card-inner-border-radius: .9rem;
    --bs-card-cap-bg: transparent;
}

.card-header {
    padding: 1rem 1rem .75rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.card-header h2 {
    font-size: 1rem;
    font-weight: 600;
    margin: 0;
}

.dropdown-menu {
    --bs-dropdown-bg: var(--ga-cartao-2);
    --bs-dropdown-border-color: var(--ga-borda);
}

.form-control,
.form-select {
    background-color: var(--ga-fundo);
}

.table {
    --bs-table-bg: transparent;
    margin-bottom: 0;
}

.table > thead th {
    color: var(--bs-secondary-color);
    font-weight: 500;
    font-size: .8rem;
    white-space: nowrap;
}

.table td {
    vertical-align: middle;
}

/* Números do topo do painel */
.ga-indicador {
    display: flex;
    align-items: center;
    gap: 1rem;
    height: 100%;
}

.ga-icone {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    font-size: 1.35rem;
    color: #fff;
}

.ga-indicador .valor {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.1;
}

.ga-indicador .rotulo {
    color: var(--bs-secondary-color);
    font-size: .85rem;
}

.bg-roxo {
    background: #7c3aed;
}

/* Quadradinho de data (próximas entradas/saídas) */
.ga-data {
    width: 3rem;
    flex-shrink: 0;
    text-align: center;
    border: 1px solid var(--ga-borda);
    border-radius: .5rem;
    padding: .2rem 0;
    line-height: 1.15;
}

.ga-data .dia {
    font-weight: 700;
    font-size: 1.1rem;
}

.ga-data .mes {
    font-size: .65rem;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.ga-lista > * + * {
    border-top: 1px solid var(--ga-borda);
}

.ga-imovel {
    height: 100%;
    transition: border-color .15s;
}

.ga-imovel:hover {
    border-color: #2f5bd3;
}

.ga-vazio {
    color: var(--bs-secondary-color);
    text-align: center;
    padding: 2rem 1rem;
}

.ga-vazio .bi {
    display: block;
    font-size: 2rem;
    margin-bottom: .5rem;
}

.ga-dados dt {
    color: var(--bs-secondary-color);
    font-weight: 400;
    font-size: .85rem;
}

.ga-dados dd {
    margin-bottom: .8rem;
}

/* Página de login (sem menu) */
.ga-login {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 1rem;
}

/* --- Cofre --- */

.ga-estreito {
    max-width: 720px;
}

.ga-mais-estreito {
    max-width: 480px;
}

.ga-login-caixa {
    width: 100%;
    max-width: 380px;
}

.ga-senha {
    color: var(--bs-secondary-color);
    font-family: var(--bs-font-monospace);
    letter-spacing: .08em;
    white-space: nowrap;
}

.ga-senha.revelada {
    color: var(--ga-senha-revelada);
    letter-spacing: normal;
    user-select: all;
}

.ga-documento {
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ga-filtros .form-control,
.ga-filtros .form-select {
    min-width: 12rem;
}
