/* Corrige campos autocomplete opcionais (com icone de "limpar") cuja caixa
   do select2 fica com largura zero. O select2 define a largura via atributo
   style (inline), entao so um !important numa folha de estilo carregada
   depois consegue sobrescrever. */
.related-widget-wrapper {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.related-widget-wrapper .select2-container,
.related-widget-wrapper .select2-container .selection,
.related-widget-wrapper .select2-container .select2-selection {
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
}

.related-widget-wrapper-link {
    flex-shrink: 0;
}

/* Icone no link "Ver perfil" (See Profile) do menu do usuario, que no jazzmin
   nao tem icone proprio como os outros itens do mesmo menu. */
a.dropdown-item.dropdown-footer::before {
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 900 !important;
    content: "\f007" !important;
    margin-right: 0.5rem !important;
}

/* Campo Data/Hora do Abastecimento (DateTimeField): o Django admin duplica
   os rotulos "Data:"/"Hora:" dentro do campo, além do rótulo "Data hora" que
   já aparece na linha (e empilha os dois campos em vez de lado a lado),
   quebrando o alinhamento com os campos vizinhos. Esconde os rótulos
   internos e o <br> que empilha, e deixa os dois campos lado a lado como
   qualquer outro campo da página. */
.field-data_hora p.datetime {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
}

.field-data_hora p.datetime label {
    display: none;
}

.field-data_hora p.datetime br {
    display: none;
}

.field-data_hora p.datetime input.vDateField,
.field-data_hora p.datetime input.vTimeField {
    /* o jazzmin define min-width: 200px nesses campos (sem !important, mas
       min-width trava o valor final independente do !important no width) */
    width: 11rem !important;
    min-width: 0 !important;
    max-width: 100% !important;
}

/* Remove "Jazzmin version x.x.x" do rodape, so deixa o copyright. */
.app-footer .float-end.d-none.d-sm-inline {
    display: none !important;
}


/* ============================================================================
   TEMA DA MARCA - Polemica Construtora (azul-marinho + ciano da logo)
   ========================================================================== */
:root {
    --marca-azul: #2a2a8c;         /* azul-marinho da logo (POLEMICA) */
    --marca-azul-escuro: #1f1f6b;  /* variacao mais escura (hover) */
    --marca-ciano: #12a6e2;        /* azul-ciano da logo (CONSTRUTORA) */
    --marca-ciano-escuro: #0d8bc0;
}

/* Cor primaria do Bootstrap/jazzmin -> azul-marinho da marca */
:root,
:root[data-bs-theme="light"],
:root[data-bs-theme="dark"] {
    --bs-primary: var(--marca-azul);
    --bs-primary-rgb: 42, 42, 140;
    --bs-link-color: var(--marca-azul);
    --bs-link-color-rgb: 42, 42, 140;
    --bs-link-hover-color: var(--marca-ciano);
}

/* Barra do topo e menu lateral no degrade azul-marinho -> ciano da marca (o
   mesmo do cartao "Custo total da frota" do painel).

   Os dois compartilham UM degrade so, do tamanho da tela: o
   `background-attachment: fixed` ancora o degrade na viewport em vez de em
   cada elemento, entao a barra do topo e o menu lateral viram recortes da
   MESMA superficie e nao existe emenda entre eles. Antes cada um tinha o seu
   (topo na horizontal, menu na vertical) e so batiam no canto superior
   esquerdo.

   Como a barra do topo e uma faixa fina, ela pega so o comeco do degrade e
   fica praticamente toda no navy; o menu lateral, que vai ate embaixo,
   percorre o degrade inteiro ate o ciano. */
#jazzy-navbar,
.app-header.navbar,
#jazzy-sidebar,
.app-sidebar {
    background: linear-gradient(180deg, var(--marca-azul) 0%, var(--marca-ciano) 100%) !important;
    background-attachment: fixed !important;
    border: 0 !important;   /* o tema desenha uma linha cinza embaixo dos dois */
}

/* --------------------------------------------------------------------------
   Menu lateral: organizado em secoes, com item ativo arredondado e acento.
   O fundo continua sendo o degrade da marca; os realces sao em branco
   translucido para ficarem legiveis tanto na parte navy (topo) quanto na
   ciano (base) do degrade.
   -------------------------------------------------------------------------- */
#jazzy-sidebar .sidebar-menu {
    padding: 0 10px;
}

/* Rotulo de secao (OPERACAO, FINANCEIRO...) - inserido pelo navbar.js */
#jazzy-sidebar .sidebar-menu .nav-header {
    color: rgba(255, 255, 255, 0.55);
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    padding: 15px 10px 5px;
    margin: 0;
}

#jazzy-sidebar .sidebar-menu .nav-link {
    display: flex;
    align-items: center;
    border-radius: 8px;
    margin: 2px 0;
    padding: 8px 10px;
    position: relative;
}

/* Item selecionado: fundo translucido + barra de acento a esquerda */
#jazzy-sidebar .sidebar-menu .nav-link.active,
.app-sidebar .sidebar-menu .nav-link.active {
    background-color: rgba(255, 255, 255, 0.18) !important;
    color: #fff !important;
    font-weight: 600;
}

#jazzy-sidebar .sidebar-menu .nav-link.active::before {
    content: "";
    position: absolute;
    left: -10px;
    top: 7px;
    bottom: 7px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: #fff;
}

#jazzy-sidebar .sidebar-menu .nav-link:not(.active):hover,
.app-sidebar .sidebar-menu .nav-link:not(.active):hover {
    background-color: rgba(255, 255, 255, 0.12) !important;
}

/* Botoes primarios (Modificar, Ver, Baixar PDF...) em azul-marinho */
.btn-primary {
    --bs-btn-bg: var(--marca-azul);
    --bs-btn-border-color: var(--marca-azul);
    --bs-btn-hover-bg: var(--marca-azul-escuro);
    --bs-btn-hover-border-color: var(--marca-azul-escuro);
    --bs-btn-active-bg: var(--marca-azul-escuro);
    --bs-btn-active-border-color: var(--marca-azul-escuro);
}

/* Botao de acao principal (Adicionar) em ciano da marca */
.btn-success,
a.addlink,
.object-tools a {
    --bs-btn-bg: var(--marca-ciano);
    --bs-btn-border-color: var(--marca-ciano);
    --bs-btn-hover-bg: var(--marca-ciano-escuro);
    --bs-btn-hover-border-color: var(--marca-ciano-escuro);
    --bs-btn-active-bg: var(--marca-ciano-escuro);
}

/* Links de conteudo em azul-marinho, com hover ciano. As excecoes sao links
 * que ja tem cor propria: botoes, itens de menu e o "Ver" das pendencias
 * (que muda de cor no tema escuro pra ter contraste no fundo escuro). */
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.alerta-ver) {
    color: var(--marca-azul);
}
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.alerta-ver):hover {
    color: var(--marca-ciano);
}

/* Campo em foco: contorno ciano da marca */
.form-control:focus,
.form-select:focus {
    border-color: var(--marca-ciano) !important;
    box-shadow: 0 0 0 0.2rem rgba(18, 166, 226, 0.25) !important;
}


/* ============================================================================
   TELA DE LOGIN
   ========================================================================== */
body.login-page {
    min-height: 100vh;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    /* fundo suave com as cores da marca, fixo pra cobrir a tela toda */
    background: linear-gradient(135deg, #eef1fb 0%, #e6f4fb 100%) fixed !important;
}

body.login-page .login-box {
    width: 100%;
    max-width: 380px;
}

body.login-page .login-logo img {
    max-width: 260px;
    height: auto;
    margin-bottom: 6px;
}

body.login-page .login-box .card {
    border: none;
    border-top: 4px solid var(--marca-ciano);
    border-radius: 16px;
    /* recorta o conteudo (inclusive a faixa ciano do topo) na curva das bordas */
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(42, 42, 140, 0.15);
}

body.login-page .login-card-body {
    padding: 26px 28px 30px;
}

/* Campos e botao do login um pouco mais confortaveis */
body.login-page .login-card-body .form-control {
    padding: 10px 12px;
}

body.login-page .login-card-body .btn-primary,
body.login-page .login-card-body [type="submit"] {
    width: 100%;
    padding: 10px;
    font-weight: 600;
    margin-top: 4px;
}

/* A tela de login e SEMPRE em tema claro, mesmo com o SO em modo escuro
   (o jazzmin poe data-bs-theme="dark" no <html>). Redefinimos as variaveis
   do Bootstrap na propria body.login-page: por herdarem do ancestral mais
   proximo, vencem as definidas em :root[data-bs-theme="dark"]. */
body.login-page {
    color-scheme: light;
    color: #1a1a2e;
    --bs-body-bg: #ffffff;
    --bs-body-color: #1a1a2e;
    --bs-emphasis-color: #0b1120;
    --bs-secondary-color: #5a6472;
    --bs-secondary-bg: #eef1fb;
    --bs-tertiary-bg: #f4f6fb;
    --bs-border-color: #dbe1ea;
    --bs-card-bg: #ffffff;
    --bs-card-color: #1a1a2e;
}
body.login-page .login-box .card,
body.login-page .login-card-body {
    background-color: #ffffff !important;
    color: #1a1a2e !important;
}
body.login-page .login-logo,
body.login-page .login-logo a,
body.login-page .login-box-msg,
body.login-page label {
    color: #2a2a8c !important;
}
body.login-page .login-card-body .form-control {
    background-color: #ffffff !important;
    color: #1a1a2e !important;
    border-color: #dbe1ea !important;
}
body.login-page .login-card-body .form-control::placeholder {
    color: #8a93a3 !important;
}


/* ============================================================================
   TABELAS - polimento leve com a cor da marca
   ========================================================================== */
:root[data-bs-theme="light"] #result_list thead th,
:root[data-bs-theme="light"] .table thead th {
    background-color: #eef0fb;   /* tom bem claro do azul da marca */
    color: #23235f;
    border-bottom: 2px solid var(--marca-azul);
}

:root[data-bs-theme="light"] #result_list tbody tr:hover > * {
    background-color: rgba(18, 166, 226, 0.07);  /* hover com leve ciano */
}

/* Cartoes/paineis com cantos um pouco mais suaves */
.card {
    border-radius: 10px;
}

/* Botoes de Excel em verde (convencao universal de planilha), pra se
   distinguir dos botoes de PDF/acao que usam a cor da marca. */
.btn-excel {
    --bs-btn-color: #fff;
    --bs-btn-bg: #1e7e45;
    --bs-btn-border-color: #1e7e45;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #196b3a;
    --bs-btn-hover-border-color: #196b3a;
    --bs-btn-active-bg: #196b3a;
    color: #fff;
}


/* ============================================================================
   BARRA DE FILTROS LIMPA - padrao para todos os modulos (listas)
   ========================================================================== */
.barra-filtros {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 14px;
    align-items: flex-end;
    background: #fff;
    border: 1px solid #e5e9f0;
    border-radius: 10px;
    padding: 14px 16px;
}

.barra-filtros .filtro-campo {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.barra-filtros .filtro-campo label {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #6a7684;
    margin: 0;
}

.barra-filtros .filtro-campo .form-control,
.barra-filtros .filtro-campo .form-select {
    min-width: 160px;
}

.barra-filtros .filtro-campo.filtro-busca .form-control {
    min-width: 220px;
}

.barra-filtros .filtro-acoes {
    display: flex;
    gap: 8px;
    margin-left: auto;   /* empurra Filtrar/Limpar pra direita, alinhados embaixo */
}

:root[data-bs-theme="dark"] .barra-filtros {
    background: #212529;
    border-color: #343a40;
}


/* Area da logo com a mesma altura da barra do topo (72.8px, contra os 56px do
   tema), pra que o painel do usuario comece exatamente onde comeca o conteudo
   da pagina. A borda vai embora: o menu lateral e a barra do topo sao uma
   superficie continua, e qualquer linha ai dentro corta o degrade. */
.sidebar-brand {
    min-height: 72.8px;
    border: 0 !important;
}

/* O template do jazzmin marca a logo com as classes `shadow` e `opacity-75` do
   Bootstrap: a sombra desenhava um retangulo em volta da logo e a opacidade a
   deixava desbotada sobre o degrade. */
#jazzy-sidebar .brand-image,
#jazzy-sidebar #jazzy-logo img {
    box-shadow: none !important;
    opacity: 1 !important;
}


/* ============================================================================
   PAINEL DO USUARIO no topo do menu lateral (estilo "perfil" do template)
   ========================================================================== */
#jazzy-sidebar .user-panel {
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    margin-bottom: 6px;
    border: 0 !important;   /* nenhuma linha cortando o degrade do menu */
}

#jazzy-sidebar .user-panel .image i.user-profile {
    font-size: 2.6rem;
    color: #fff;
    opacity: 0.95;
    vertical-align: middle;
}

/* foto do perfil (o template do jazzmin manda width=160px no HTML) */
#jazzy-sidebar .user-panel .image img {
    width: 44px !important;
    height: 44px !important;
    object-fit: cover;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.6);
}

#jazzy-sidebar .user-panel .info a,
#jazzy-sidebar .user-panel .info span {
    color: #fff !important;
    font-weight: 600;
    font-size: 1rem;
}

/* legenda pequena embaixo do nome, apontando pro proprio perfil */
#jazzy-sidebar .user-panel .info a::after {
    content: 'Configurações';
    display: block;
    font-size: 0.72rem;
    font-weight: 400;
    opacity: 0.75;
}


/* ============================================================================
   SINO DE ALERTAS no cabecalho
   ========================================================================== */
#frota-alertas .nav-link {
    position: relative;
}

.frota-alerta-badge {
    position: absolute;
    top: 3px;
    right: 1px;
    background: #e74c3c;
    color: #fff;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.5;
    padding: 0 5px;
}

.frota-alertas-menu {
    min-width: 300px;
}

.frota-alerta-item {
    white-space: normal;
    font-size: 0.85rem;
    padding-top: 8px;
    padding-bottom: 8px;
}

.frota-alerta-item i {
    color: var(--marca-ciano);
}

/* alerta ainda nao visto: negrito + pontinho de novidade */
.frota-alerta-item.nao-visto {
    font-weight: 700;
}

.frota-alerta-item.nao-visto::after {
    content: '';
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #e74c3c;
    margin-left: 6px;
    vertical-align: middle;
}
