.verde_ceasa {
    background: rgb(36, 166, 55);
    background: linear-gradient(90deg, rgba(36, 166, 55, 1) 0%, rgba(36, 166, 55, 1) 19%, rgba(83, 189, 191, 1) 100%);
    height: 150px;
}

.head_container_logo {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    background-image: url("/static/img/logos/logo_ceasa_estado.svg");
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 400px 200px !important;
}

.head_container_left {
    display: flex !important;
    flex-direction: column-reverse !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    align-content: space-around !important;
    height: 150px !important;
    margin: 0 0 0 0 !important;
    padding: 0 0 0 0 !important;
}

.head_left:nth-child(1) {
    display: block !important;
    flex-grow: 0 !important;
    flex-shrink: 1 !important;
    flex-basis: auto !important;
    align-self: auto !important;
    order: 0 !important;
    background-image: url("/static/img/logos/logo_complemento.svg");
    background-position: bottom !important;
    background-repeat: no-repeat !important;
    height: 80%;
    width: 100%;
}

.auth-box {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    align-items: center !important;
    align-content: normal !important;
    min-height: 0 !important;
}

@media (max-width: 650px) {
    .head_container_logo {
        background-size: 300px 100px !important;
    }
}

@media (max-width: 1240px) {
    .head_container_left {
        display: none !important;
    }

    .head_container_right {
        display: none !important;
    }

    .head_container_logo {
        width: 100%;
    }
}

.dashed-left {
    border-left: 1px dashed rgba(155, 166, 183, 0.45);
}

.dashed-right {
    border-right: 1px dashed rgba(155, 166, 183, 0.45);
}


hr {
    margin: 1px 0;
}

/* Themas -------------------------------------------------------- Login */
.logo-login,
.logo-login-min {
    display: none;
}

html[data-bs-theme=dark] .logo-login-dark {
    display: block;
}

html[data-bs-theme=light] .logo-login-light {
    display: block;
}

@media (max-width: 991px) {
    .dashed-left {
        border: none !important;
    }

    .logo-login-view {
        display: none !important;
    }

    .logo-login-view-dark {
        display: block !important;
    }
}

@media (min-width: 992px) and (max-width: 2048px) {
    .logo-login-view {
        display: block !important;
    }

    .logo-login-view-dark {
        display: none !important;
    }
}

/* SweetAlert2: Largura e Estilização Padronizada com Alta Visibilidade */
.swal2-popup:not(.swal2-toast) {
    max-width: 680px !important;
    width: 95% !important;
    border-radius: 1.25rem !important;
    padding: 2.25rem !important;
    font-family: inherit !important;
}

.swal2-popup:not(.swal2-toast) .swal2-title {
    font-size: 1.65rem !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    margin-bottom: 1rem !important;
    line-height: 1.35 !important;
}

/* SweetAlert2 Toast (Notificações Compactas no Top-End) */
.swal2-popup.swal2-toast {
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    max-width: 480px !important;
    width: auto !important;
    padding: 0.85rem 1.25rem !important;
    border-radius: 0.85rem !important;
    font-family: inherit !important;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.2), 0 8px 10px -6px rgba(0, 0, 0, 0.2) !important;
}

.swal2-popup.swal2-toast .swal2-title {
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    color: #0f172a !important;
    margin: 0 !important;
    padding: 0 0 0 0.5rem !important;
    line-height: 1.45 !important;
    text-align: left !important;
}

.swal2-popup.swal2-toast .swal2-html-container {
    font-size: 0.9rem !important;
    margin: 0 !important;
    padding: 0 0 0 0.5rem !important;
    line-height: 1.45 !important;
    text-align: left !important;
}

.swal2-html-container {
    font-size: 1.15rem !important;
    line-height: 1.65 !important;
    color: #1e293b !important;
    margin: 0.75rem 0 1.5rem 0 !important;
}

.swal2-html-container p {
    font-size: 1.15rem !important;
    line-height: 1.65 !important;
}

.swal2-html-container ul,
.swal2-html-container ol {
    font-size: 1.1rem !important;
    line-height: 1.7 !important;
}

.swal2-html-container li {
    font-size: 1.1rem !important;
    margin-bottom: 0.4rem !important;
}

.swal2-html-container .alert {
    font-size: 1.1rem !important;
    padding: 1.25rem !important;
}

.swal2-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 1.25rem !important;
    margin: 1.5rem auto 0 auto !important;
    width: 100% !important;
}

.swal2-actions button,
.swal2-confirm,
.swal2-cancel,
.swal2-deny {
    margin: 0 !important;
    font-size: 1.05rem !important;
    padding: 0.65rem 1.6rem !important;
}

html[data-bs-theme=dark] .swal2-popup {
    background-color: #1e2430 !important;
    color: #f1f5f9 !important;
}

html[data-bs-theme=dark] .swal2-title {
    color: #f8fafc !important;
}

html[data-bs-theme=dark] .swal2-html-container {
    color: #e2e8f0 !important;
}

/* ==========================================================================
   Alertas e Avisos do Sistema: Alta Visibilidade e Legibilidade Global
   ========================================================================== */
.alert {
    font-size: 1.1rem !important;
    line-height: 1.6 !important;
}

.alert h1,
.alert h2,
.alert h3,
.alert h4,
.alert h5,
.alert h6,
.alert .alert-heading {
    font-size: 1.3rem !important;
    font-weight: 700 !important;
}

.alert p,
.alert span:not(.badge):not(.status-chip),
.alert div:not(.badge):not(.status-chip) {
    font-size: 1.1rem !important;
}

.alert small,
.alert .small {
    font-size: 1rem !important;
}

/* ==========================================================================
   Status Chips & Non-Button Highlights (Anti-Affordance Design System)
   Destaques visuais para status, obrigatório, opcional, fases, etc.
   Estilo 100% tipográfico (cor do texto + ícone), sem fundos ou bordas que pareçam botões.
   ========================================================================== */
.status-chip {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.35rem !important;
    padding: 0 !important;
    font-size: 0.92rem !important;
    font-weight: 700 !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    line-height: 1.4 !important;
    cursor: default !important;
    user-select: none !important;
    white-space: nowrap !important;
}

.status-chip i {
    font-size: 1em !important;
    vertical-align: middle !important;
}

.status-chip-sm {
    font-size: 0.85rem !important;
    font-weight: 700 !important;
}

.status-chip-lg {
    font-size: 1rem !important;
    font-weight: 700 !important;
}

/* Paletas Tipográficas para Status Chips */
.status-chip-danger,
span.badge.bg-danger:not(button):not(a):not(.topbar-badge) {
    background: transparent !important;
    color: #dc2626 !important;
    border: none !important;
}

.status-chip-success,
span.badge.bg-success:not(button):not(a):not(.topbar-badge) {
    background: transparent !important;
    color: #16a34a !important;
    border: none !important;
}

.status-chip-warning,
span.badge.bg-warning:not(button):not(a):not(.topbar-badge) {
    background: transparent !important;
    color: #d97706 !important;
    border: none !important;
}

.status-chip-info,
span.badge.bg-info:not(button):not(a):not(.topbar-badge) {
    background: transparent !important;
    color: #0284c7 !important;
    border: none !important;
}

.status-chip-primary,
span.badge.bg-primary:not(button):not(a):not(.topbar-badge) {
    background: transparent !important;
    color: #2563eb !important;
    border: none !important;
}

.status-chip-purple,
span.badge.bg-purple:not(button):not(a):not(.topbar-badge) {
    background: transparent !important;
    color: #9333ea !important;
    border: none !important;
}

.status-chip-secondary,
.status-chip-muted,
span.badge.bg-secondary:not(button):not(a):not(.topbar-badge),
span.badge.bg-light:not(button):not(a):not(.topbar-badge) {
    background: transparent !important;
    color: #64748b !important;
    border: none !important;
}

.status-chip-dark,
span.badge.bg-dark:not(button):not(a):not(.topbar-badge) {
    background: transparent !important;
    color: #334155 !important;
    border: none !important;
}

/* No tema escuro */
html[data-bs-theme=dark] .status-chip-danger,
html[data-bs-theme=dark] span.badge.bg-danger:not(button):not(a):not(.topbar-badge) {
    color: #f87171 !important;
}

html[data-bs-theme=dark] .status-chip-success,
html[data-bs-theme=dark] span.badge.bg-success:not(button):not(a):not(.topbar-badge) {
    color: #4ade80 !important;
}

html[data-bs-theme=dark] .status-chip-warning,
html[data-bs-theme=dark] span.badge.bg-warning:not(button):not(a):not(.topbar-badge) {
    color: #fbbf24 !important;
}

html[data-bs-theme=dark] .status-chip-info,
html[data-bs-theme=dark] span.badge.bg-info:not(button):not(a):not(.topbar-badge) {
    color: #38bdf8 !important;
}

html[data-bs-theme=dark] .status-chip-primary,
html[data-bs-theme=dark] span.badge.bg-primary:not(button):not(a):not(.topbar-badge) {
    color: #60a5fa !important;
}

html[data-bs-theme=dark] .status-chip-purple,
html[data-bs-theme=dark] span.badge.bg-purple:not(button):not(a):not(.topbar-badge) {
    color: #c084fc !important;
}

html[data-bs-theme=dark] .status-chip-secondary,
html[data-bs-theme=dark] .status-chip-muted,
html[data-bs-theme=dark] span.badge.bg-secondary:not(button):not(a):not(.topbar-badge),
html[data-bs-theme=dark] span.badge.bg-light:not(button):not(a):not(.topbar-badge) {
    color: #94a3b8 !important;
}

html[data-bs-theme=dark] .status-chip-dark,
html[data-bs-theme=dark] span.badge.bg-dark:not(button):not(a):not(.topbar-badge) {
    color: #cbd5e1 !important;
}

/* ==========================================================================
   Badges Estáticos: Remoção Global de Affordance de Botão
   ========================================================================== */
.badge:not(button):not(a):not(input):not(.topbar-badge) {
    cursor: default !important;
    user-select: none !important;
    box-shadow: none !important;
    font-weight: 600 !important;
    letter-spacing: 0.015em !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

/* ==========================================================================
   Buttons: No tema claro sempre usar text-white para botões de ação
   ========================================================================== */
html[data-bs-theme=light] .btn-primary,
html[data-bs-theme=light] .btn-success,
html[data-bs-theme=light] .btn-danger,
html[data-bs-theme=light] .btn-secondary,
html[data-bs-theme=light] .btn-dark,
html[data-bs-theme=light] .btn-info,
html[data-bs-theme=light] .btn-warning,
.btn-primary,
.btn-success,
.btn-danger,
.btn-secondary,
.btn-dark {
    color: #ffffff !important;
}

html[data-bs-theme=light] .btn-primary *,
html[data-bs-theme=light] .btn-success *,
html[data-bs-theme=light] .btn-danger *,
html[data-bs-theme=light] .btn-secondary *,
html[data-bs-theme=light] .btn-dark *,
html[data-bs-theme=light] .btn-info *,
html[data-bs-theme=light] .btn-warning * {
    color: inherit !important;
}

/* Preservar botões outline e links */
.btn-outline-primary,
.btn-outline-success,
.btn-outline-danger,
.btn-outline-secondary,
.btn-outline-dark,
.btn-outline-warning,
.btn-outline-info,
.btn-link {
    color: revert !important;
}

/* ==========================================================================
   Hover Escuro nos Botões
   ========================================================================== */
.btn-success:hover,
.btn-success:focus {
    background-color: #15803d !important;
    border-color: #166534 !important;
    color: #ffffff !important;
}

.btn-secondary:hover,
.btn-secondary:focus {
    background-color: #0d47a1 !important;
    border-color: #0a3880 !important;
    color: #ffffff !important;
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: #0f766e !important;
    border-color: #115e59 !important;
    color: #ffffff !important;
}

.btn-danger:hover,
.btn-danger:focus {
    background-color: #b91c1c !important;
    border-color: #991b1b !important;
    color: #ffffff !important;
}

.btn-warning:hover,
.btn-warning:focus {
    background-color: #b45309 !important;
    border-color: #92400e !important;
    color: #ffffff !important;
}

.btn-dark:hover,
.btn-dark:focus {
    background-color: #1e293b !important;
    border-color: #0f172a !important;
    color: #ffffff !important;
}

.btn-info:hover,
.btn-info:focus {
    background-color: #0284c7 !important;
    border-color: #0369a1 !important;
    color: #ffffff !important;
}

.btn-light {
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.btn-light:hover,
.btn-light:focus {
    background-color: #cbd5e1 !important;
    border-color: #94a3b8 !important;
    color: #0f172a !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18) !important;
    transform: translateY(-1px);
}

.btn-light.text-secondary:hover,
.btn-light.text-secondary:focus {
    background-color: #cbd5e1 !important;
    border-color: #94a3b8 !important;
    color: #0d47a1 !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18) !important;
    transform: translateY(-1px);
}

.btn-login-submit:hover,
.btn-login-submit:focus {
    background-color: #052014 !important;
    border-color: #041910 !important;
    color: #ffffff !important;
}

/* ==========================================================================
   Botões em Headers e Cabeçalhos: Preservação de Cores Normais no Dark Mode
   ========================================================================== */
.card-header .btn-light,
.page-title-head .btn-light,
.public-header .btn-light,
html[data-bs-theme=dark] .card-header .btn-light,
html[data-bs-theme=dark] .page-title-head .btn-light,
html[data-bs-theme=dark] .public-header .btn-light,
[data-bs-theme=dark] .card-header .btn-light,
[data-bs-theme=dark] .page-title-head .btn-light,
[data-bs-theme=dark] .public-header .btn-light {
    background-color: #ffffff !important;
    color: #0d47a1 !important;
    border: 1px solid #ffffff !important;
    opacity: 1 !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15) !important;
}

.card-header .btn-light *,
.card-header .btn-light.text-secondary,
.card-header .btn-light.text-secondary *,
html[data-bs-theme=dark] .card-header .btn-light *,
html[data-bs-theme=dark] .card-header .btn-light.text-secondary,
html[data-bs-theme=dark] .card-header .btn-light.text-secondary *,
[data-bs-theme=dark] .card-header .btn-light *,
[data-bs-theme=dark] .card-header .btn-light.text-secondary,
[data-bs-theme=dark] .card-header .btn-light.text-secondary * {
    color: #0d47a1 !important;
}

.card-header .btn-light:hover,
.card-header .btn-light:focus,
html[data-bs-theme=dark] .card-header .btn-light:hover,
html[data-bs-theme=dark] .card-header .btn-light:focus,
[data-bs-theme=dark] .card-header .btn-light:hover,
[data-bs-theme=dark] .card-header .btn-light:focus {
    background-color: #f1f5f9 !important;
    color: #0a3880 !important;
    border-color: #e2e8f0 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.22) !important;
}

.card-header .btn-light:hover *,
html[data-bs-theme=dark] .card-header .btn-light:hover *,
[data-bs-theme=dark] .card-header .btn-light:hover * {
    color: #0a3880 !important;
}

.card-header .btn-info,
html[data-bs-theme=dark] .card-header .btn-info,
[data-bs-theme=dark] .card-header .btn-info {
    background-color: #23c6c8 !important;
    border-color: #23c6c8 !important;
    color: #ffffff !important;
    opacity: 1 !important;
}

.card-header .btn-success,
html[data-bs-theme=dark] .card-header .btn-success,
[data-bs-theme=dark] .card-header .btn-success {
    background-color: #16a34a !important;
    border-color: #16a34a !important;
    color: #ffffff !important;
    opacity: 1 !important;
}

.card-header .btn-primary,
html[data-bs-theme=dark] .card-header .btn-primary,
[data-bs-theme=dark] .card-header .btn-primary {
    background-color: #1ab394 !important;
    border-color: #1ab394 !important;
    color: #ffffff !important;
    opacity: 1 !important;
}

.card-header .btn-warning,
html[data-bs-theme=dark] .card-header .btn-warning,
[data-bs-theme=dark] .card-header .btn-warning {
    background-color: #f8ac59 !important;
    border-color: #f8ac59 !important;
    color: #ffffff !important;
    opacity: 1 !important;
}

.card-header .btn-danger,
html[data-bs-theme=dark] .card-header .btn-danger,
[data-bs-theme=dark] .card-header .btn-danger {
    background-color: #ed5565 !important;
    border-color: #ed5565 !important;
    color: #ffffff !important;
    opacity: 1 !important;
}

/* ==========================================================================
   Status Chips Tipográficos (Sem aparência de botão)
   ========================================================================== */
.status-chip {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.3rem !important;
    padding: 0.1rem 0.35rem !important;
    font-size: 0.813rem !important;
    font-weight: 600 !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    line-height: 1.4 !important;
}

.status-chip-success {
    color: #16a34a !important;
}

.status-chip-danger {
    color: #dc2626 !important;
}

.status-chip-secondary {
    color: #1c84c6 !important;
}

.status-chip-warning {
    color: #d97706 !important;
}

.status-chip-muted {
    color: #64748b !important;
}

/* ==========================================================================
   Contraste Padronizado: Elementos Warning sempre com Texto Branco (Item 4)
   ========================================================================== */
.bg-warning,
.badge.bg-warning,
.badge-warning,
.btn-warning,
.alert-warning .badge {
    color: #ffffff !important;
}

.badge.bg-warning *,
.btn-warning * {
    color: #ffffff !important;
}

/* ==========================================================================
   Modo Escuro (Dark Mode): Correção de Visibilidade em Conteúdos e Tabelas
   NÃO altera cores de Headers (.card-header / cabeçalhos) nem de Botões (.btn)
   ========================================================================== */

/* Textos e Rótulos dentro do corpo de cards, tabelas e listagens */
html[data-bs-theme=dark] .card-body .text-dark,
html[data-bs-theme=dark] .table .text-dark,
html[data-bs-theme=dark] .card-body strong.text-dark,
html[data-bs-theme=dark] .table strong.text-dark,
[data-bs-theme=dark] .card-body .text-dark,
[data-bs-theme=dark] .table .text-dark {
    color: #f1f5f9 !important;
}

html[data-bs-theme=dark] .card-body .text-secondary:not(.btn):not(.btn *),
html[data-bs-theme=dark] .table .text-secondary:not(.btn):not(.btn *),
[data-bs-theme=dark] .card-body .text-secondary:not(.btn):not(.btn *),
[data-bs-theme=dark] .table .text-secondary:not(.btn):not(.btn *) {
    color: #cbd5e1 !important;
}

html[data-bs-theme=dark] .card-body .text-muted:not(.btn):not(.btn *),
html[data-bs-theme=dark] .table .text-muted:not(.btn):not(.btn *),
html[data-bs-theme=dark] .card-body small.text-muted,
html[data-bs-theme=dark] .table small.text-muted,
[data-bs-theme=dark] .card-body .text-muted:not(.btn):not(.btn *),
[data-bs-theme=dark] .table .text-muted:not(.btn):not(.btn *) {
    color: #94a3b8 !important;
}

/* Tabelas no Dark Mode */
html[data-bs-theme=dark] .table thead th,
html[data-bs-theme=dark] thead.thead-sm th,
html[data-bs-theme=dark] thead.table-light th,
[data-bs-theme=dark] .table thead th,
[data-bs-theme=dark] thead.thead-sm th,
[data-bs-theme=dark] thead.table-light th {
    background-color: #1e2430 !important;
    color: #cbd5e1 !important;
    border-bottom: 1px solid #333a4d !important;
}

html[data-bs-theme=dark] .table tbody tr td,
[data-bs-theme=dark] .table tbody tr td {
    color: #e2e8f0 !important;
    border-bottom-color: #262c3b !important;
}

html[data-bs-theme=dark] .table tbody tr td strong,
[data-bs-theme=dark] .table tbody tr td strong {
    color: #f8fafc !important;
}

html[data-bs-theme=dark] .table-striped>tbody>tr:nth-of-type(odd)>* {
    background-color: rgba(255, 255, 255, 0.02) !important;
    color: #e2e8f0 !important;
}

html[data-bs-theme=dark] .table-hover>tbody>tr:hover>* {
    background-color: rgba(255, 255, 255, 0.05) !important;
}

/* Fundo dos cards e contêineres internos no Dark Mode (sem mexer em .card-header) */
html[data-bs-theme=dark] .card:not(.card-header),
[data-bs-theme=dark] .card:not(.card-header) {
    background-color: #1a1e29 !important;
    border-color: #2b3140 !important;
}

html[data-bs-theme=dark] .card-body .bg-white,
html[data-bs-theme=dark] .card-body div.bg-white,
[data-bs-theme=dark] .card-body .bg-white,
[data-bs-theme=dark] .card-body div.bg-white {
    background-color: #222736 !important;
    border-color: #333a4d !important;
    color: #f1f5f9 !important;
}

html[data-bs-theme=dark] .card-body .bg-light,
html[data-bs-theme=dark] .card-body .bg-light-subtle,
[data-bs-theme=dark] .card-body .bg-light,
[data-bs-theme=dark] .card-body .bg-light-subtle {
    background-color: #222736 !important;
    border-color: #333a4d !important;
    color: #f1f5f9 !important;
}

/* Adaptação de blocos com background claro inline dentro do card-body */
html[data-bs-theme=dark] .card-body [style*="background-color: #f8fafc"],
html[data-bs-theme=dark] .card-body [style*="background-color:#f8fafc"],
[data-bs-theme=dark] .card-body [style*="background-color: #f8fafc"],
[data-bs-theme=dark] .card-body [style*="background-color:#f8fafc"] {
    background-color: #222736 !important;
    border-color: #333a4d !important;
    color: #f1f5f9 !important;
}

html[data-bs-theme=dark] .card-body .alert-light,
[data-bs-theme=dark] .card-body .alert-light {
    background-color: #222736 !important;
    border-color: #333a4d !important;
    color: #e2e8f0 !important;
}

/* Inputs e DataTables */
html[data-bs-theme=dark] input.form-control,
html[data-bs-theme=dark] select.form-select,
[data-bs-theme=dark] input.form-control,
[data-bs-theme=dark] select.form-select {
    background-color: #131720 !important;
    border-color: #333a4d !important;
    color: #f1f5f9 !important;
}

html[data-bs-theme=dark] .input-group-text,
[data-bs-theme=dark] .input-group-text {
    background-color: #1e2430 !important;
    border-color: #333a4d !important;
    color: #cbd5e1 !important;
}

html[data-bs-theme=dark] .dataTables_wrapper,
[data-bs-theme=dark] .dataTables_wrapper {
    color: #cbd5e1 !important;
}

/* ==========================================================================
   Tabelas e Listas: Heads e Conteúdos sem quebra de linha (No-Wrap)
   ========================================================================== */
.table,
.dataTable,
.dataTables-funcoes,
.table-responsive table,
table.dataTable,
table.table-historico-ofertas {
    width: 100% !important;
}

.table th,
.table td,
.dataTables-funcoes th,
.dataTables-funcoes td,
table.dataTable thead th,
table.dataTable tbody td,
table.dataTable tfoot th,
table.dataTable tfoot td,
.dataTables_wrapper table th,
.dataTables_wrapper table td,
.table-responsive table th,
.table-responsive table td {
    white-space: nowrap !important;
    vertical-align: middle !important;
}

.table thead th,
.dataTables-funcoes thead th,
table.dataTable thead th,
.table-responsive table thead th {
    white-space: nowrap !important;
    letter-spacing: 0.3px;
}

.table td>*,
.dataTables-funcoes td>*,
table.dataTable tbody td>* {
    white-space: nowrap;
}

.table-responsive {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
}

/* DataTables Toolbar: Botões, Pesquisa e Paginação */
.dataTables_wrapper .dt-buttons {
    display: inline-flex !important;
    gap: 0.35rem !important;
    justify-content: center !important;
}

.dataTables_wrapper .dt-buttons .btn {
    padding: 0.3rem 0.85rem !important;
    font-size: 0.813rem !important;
    font-weight: 600 !important;
    border-radius: 0.375rem !important;
}

.dataTables_wrapper .dataTables_filter {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center !important;
}

.dataTables_wrapper .dataTables_filter label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    margin-bottom: 0 !important;
    font-size: 0.875rem !important;
}

.dataTables_wrapper .dataTables_filter input {
    display: inline-block !important;
    width: 220px !important;
    max-width: 100% !important;
    padding: 0.32rem 0.75rem !important;
    font-size: 0.875rem !important;
    border-radius: 0.375rem !important;
}

.dataTables_wrapper .dataTables_length select {
    display: inline-block !important;
    width: auto !important;
    margin: 0 0.4rem !important;
    padding: 0.28rem 1.8rem 0.28rem 0.6rem !important;
    font-size: 0.875rem !important;
    border-radius: 0.375rem !important;
}

/* Espaçamento generoso para tabelas de histórico e rodadas */
.table-historico-ofertas {
    width: 100% !important;
    margin-top: 0.75rem !important;
    margin-bottom: 0.75rem !important;
}

.table-historico-ofertas th,
.table-historico-ofertas td {
    padding: 16px 20px !important;
    vertical-align: middle !important;
}

.table-historico-ofertas thead th {
    padding: 16px 20px !important;
    font-size: 0.813rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px !important;
    text-transform: uppercase !important;
    background-color: #f8fafc !important;
    color: #475569 !important;
    border-bottom: 2px solid #e2e8f0 !important;
}

.table-historico-ofertas tbody tr {
    transition: background-color 0.15s ease-in-out;
}

.table-historico-ofertas tbody tr:hover {
    background-color: #f1f5f9 !important;
}

.table-historico-ofertas tbody td {
    border-bottom: 1px solid #f1f5f9 !important;
}

/* ==========================================================================
   Botões de Cancelar / Voltar / Ações Secundárias (Tom Azul Secondary & Hover)
   ========================================================================== */
.btn-outline-secondary {
    color: #0d47a1 !important;
    border-color: #0d47a1 !important;
    background-color: transparent !important;
    transition: all 0.2s ease-in-out !important;
}

.btn-outline-secondary i,
.btn-outline-secondary span,
.btn-outline-secondary strong {
    color: inherit !important;
    transition: color 0.2s ease-in-out !important;
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus,
.btn-outline-secondary:active,
.btn-outline-secondary.active,
.btn-outline-secondary:focus-visible {
    color: #ffffff !important;
    background-color: #0d47a1 !important;
    border-color: #0d47a1 !important;
    box-shadow: 0 4px 12px rgba(13, 71, 161, 0.25) !important;
}

.btn-outline-secondary:hover i,
.btn-outline-secondary:hover span,
.btn-outline-secondary:hover strong,
.btn-outline-secondary:focus i,
.btn-outline-secondary:focus span,
.btn-outline-secondary:focus strong,
.btn-outline-secondary:active i,
.btn-outline-secondary:active span,
.btn-outline-secondary:active strong {
    color: #ffffff !important;
}

html[data-bs-theme=dark] .btn-outline-secondary {
    color: #60a5fa !important;
    border-color: #60a5fa !important;
}

html[data-bs-theme=dark] .btn-outline-secondary:hover,
html[data-bs-theme=dark] .btn-outline-secondary:focus,
html[data-bs-theme=dark] .btn-outline-secondary:active {
    color: #ffffff !important;
    background-color: #2563eb !important;
    border-color: #2563eb !important;
}

/* Otimização da largura do conteúdo para evitar scroll horizontal em tabelas */
@media (min-width: 1200px) {

    html[data-layout=topnav] .content-page .container-fluid,
    html[data-layout=topnav] .content-page .container-xl,
    html[data-layout=topnav] .content-page .container-xxl {
        max-width: 98% !important;
        width: 98% !important;
        padding-left: 1.25rem !important;
        padding-right: 1.25rem !important;
    }
}

/* Sticky Footer: Mantém o rodapé sempre no final da tela (viewport) mesmo com pouco conteúdo */
html,
body {
    min-height: 100vh;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.wrapper {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    flex: 1 0 auto;
}

.content-page {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 0 auto !important;
    min-height: auto !important;
    padding-bottom: 0 !important;
}

.content-page>.container-fluid,
.content-page>.container-xl,
.content-page>.container-xxl {
    flex: 1 0 auto;
}

.footer {
    margin-top: auto !important;
    width: 100%;
}

.content-page .card {
    margin-bottom: 2rem;
}

/* ==========================================================================
   Estilização do Dropdown de Notificações - Compatível com Modos Light e Dark
   ========================================================================== */
.notif-dropdown-menu {
    min-width: 360px !important;
    max-width: 420px !important;
    border-radius: 12px !important;
    overflow: hidden;
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.28) !important;
}

/* Tema Claro (Light Mode) */
[data-bs-theme="light"] .notif-dropdown-menu,
:root:not([data-bs-theme="dark"]) .notif-dropdown-menu {
    background-color: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    color: #1e293b !important;
}
[data-bs-theme="light"] .notif-header,
:root:not([data-bs-theme="dark"]) .notif-header {
    background-color: #f8fafc !important;
    border-bottom: 1px solid #e2e8f0 !important;
    color: #0f172a !important;
}
[data-bs-theme="light"] .notif-header-title,
:root:not([data-bs-theme="dark"]) .notif-header-title {
    color: #0f172a !important;
}
[data-bs-theme="light"] .notif-item,
:root:not([data-bs-theme="dark"]) .notif-item {
    background-color: #ffffff !important;
    border-bottom: 1px solid #f1f5f9 !important;
    color: #1e293b !important;
}
[data-bs-theme="light"] .notif-item:hover,
:root:not([data-bs-theme="dark"]) .notif-item:hover {
    background-color: #f8fafc !important;
}
[data-bs-theme="light"] .notif-item.notif-unread,
:root:not([data-bs-theme="dark"]) .notif-item.notif-unread {
    background-color: #fffdf5 !important;
    border-left: 3px solid #f59e0b !important;
}
[data-bs-theme="light"] .notif-title,
:root:not([data-bs-theme="dark"]) .notif-title {
    color: #0f172a !important;
}
[data-bs-theme="light"] .notif-desc,
:root:not([data-bs-theme="dark"]) .notif-desc {
    color: #475569 !important;
}
[data-bs-theme="light"] .notif-time,
:root:not([data-bs-theme="dark"]) .notif-time {
    color: #64748b !important;
}
[data-bs-theme="light"] .notif-footer,
:root:not([data-bs-theme="dark"]) .notif-footer {
    background-color: #f8fafc !important;
    border-top: 1px solid #e2e8f0 !important;
}
[data-bs-theme="light"] .notif-btn-limpar-link,
:root:not([data-bs-theme="dark"]) .notif-btn-limpar-link {
    color: #64748b !important;
}
[data-bs-theme="light"] .notif-btn-limpar-link:hover,
:root:not([data-bs-theme="dark"]) .notif-btn-limpar-link:hover {
    color: #ef4444 !important;
}

/* Tema Escuro (Dark Mode) */
[data-bs-theme="dark"] .notif-dropdown-menu {
    background-color: #1a2234 !important;
    border: 1px solid #2d3748 !important;
    color: #f8fafc !important;
}
[data-bs-theme="dark"] .notif-header {
    background-color: #111827 !important;
    border-bottom: 1px solid #2d3748 !important;
    color: #f8fafc !important;
}
[data-bs-theme="dark"] .notif-header-title {
    color: #f8fafc !important;
}
[data-bs-theme="dark"] .notif-item {
    background-color: #1a2234 !important;
    border-bottom: 1px solid #232d3f !important;
    color: #f1f5f9 !important;
}
[data-bs-theme="dark"] .notif-item:hover {
    background-color: #242f44 !important;
}
[data-bs-theme="dark"] .notif-item.notif-unread {
    background-color: #2b2518 !important;
    border-left: 3px solid #f59e0b !important;
}
[data-bs-theme="dark"] .notif-title {
    color: #ffffff !important;
}
[data-bs-theme="dark"] .notif-desc {
    color: #cbd5e1 !important;
}
[data-bs-theme="dark"] .notif-time {
    color: #94a3b8 !important;
}
[data-bs-theme="dark"] .notif-footer {
    background-color: #111827 !important;
    border-top: 1px solid #2d3748 !important;
}
[data-bs-theme="dark"] .notif-btn-limpar-link {
    color: #94a3b8 !important;
}
[data-bs-theme="dark"] .notif-btn-limpar-link:hover {
    color: #f87171 !important;
}

/* Ícones & Avatares com Alto Contraste */
.notif-icon-avatar {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    flex-shrink: 0;
}
.notif-icon-oferta {
    background-color: rgba(245, 158, 11, 0.22) !important;
    color: #f59e0b !important;
    border: 1px solid rgba(245, 158, 11, 0.45);
}
.notif-icon-boleto {
    background-color: rgba(16, 185, 129, 0.22) !important;
    color: #10b981 !important;
    border: 1px solid rgba(16, 185, 129, 0.45);
}
.notif-icon-toa {
    background-color: rgba(14, 165, 233, 0.22) !important;
    color: #0284c7 !important;
    border: 1px solid rgba(14, 165, 233, 0.45);
}
.notif-icon-deferida {
    background-color: rgba(16, 185, 129, 0.22) !important;
    color: #10b981 !important;
    border: 1px solid rgba(16, 185, 129, 0.45);
}
.notif-icon-indeferida {
    background-color: rgba(239, 68, 68, 0.22) !important;
    color: #ef4444 !important;
    border: 1px solid rgba(239, 68, 68, 0.45);
}
.notif-icon-info {
    background-color: rgba(59, 130, 246, 0.22) !important;
    color: #3b82f6 !important;
    border: 1px solid rgba(59, 130, 246, 0.45);
}

/* Botões de Ação Personalizados */
.notif-btn-action-oferta {
    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%) !important;
    color: #ffffff !important;
    border: none !important;
    font-weight: 600;
    font-size: 0.73rem;
    padding: 3px 10px;
    border-radius: 4px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.notif-btn-action-oferta:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(245, 158, 11, 0.45);
    color: #ffffff !important;
}

.notif-btn-action-boleto {
    background: linear-gradient(135deg, #059669 0%, #047857 100%) !important;
    color: #ffffff !important;
    border: none !important;
    font-weight: 600;
    font-size: 0.73rem;
    padding: 3px 10px;
    border-radius: 4px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.notif-btn-action-boleto:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(16, 185, 129, 0.45);
    color: #ffffff !important;
}

.notif-btn-action-toa {
    background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%) !important;
    color: #ffffff !important;
    border: none !important;
    font-weight: 600;
    font-size: 0.73rem;
    padding: 3px 10px;
    border-radius: 4px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.notif-btn-action-toa:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(14, 165, 233, 0.45);
    color: #ffffff !important;
}

.notif-btn-action-view {
    background: rgba(59, 130, 246, 0.15) !important;
    color: #38bdf8 !important;
    border: 1px solid rgba(56, 189, 248, 0.5) !important;
    font-weight: 600;
    font-size: 0.73rem;
    padding: 3px 10px;
    border-radius: 4px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    transition: all 0.15s ease;
}
.notif-btn-action-view:hover {
    background: #0284c7 !important;
    color: #ffffff !important;
    border-color: #0284c7 !important;
}

.notif-btn-limpar-footer {
    background: transparent;
    border: 1px solid #475569 !important;
    color: #94a3b8 !important;
    font-size: 0.78rem;
    font-weight: 500;
    border-radius: 6px;
    transition: all 0.2s ease;
}
.notif-btn-limpar-footer:hover {
    background-color: rgba(239, 68, 68, 0.15) !important;
    border-color: #ef4444 !important;
    color: #ef4444 !important;
}
[data-bs-theme="light"] .notif-btn-limpar-footer,
:root:not([data-bs-theme="dark"]) .notif-btn-limpar-footer {
    border: 1px solid #cbd5e1 !important;
    color: #475569 !important;
}
[data-bs-theme="light"] .notif-btn-limpar-footer:hover,
:root:not([data-bs-theme="dark"]) .notif-btn-limpar-footer:hover {
    background-color: #fee2e2 !important;
    border-color: #ef4444 !important;
    color: #b91c1c !important;
}

/* ==========================================================================
   Filtros e Abas Modernos & Clean (Estilo Pessoas Dashboard - Secondary #1c84c6)
   ========================================================================== */
.btn-filter-secondary,
.nav-clean-secondary .nav-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0.45rem 1rem;
    font-size: 0.84rem;
    font-weight: 600;
    color: #475569 !important;
    background-color: #f8fafc;
    border: 1px solid #cbd5e1;
    border-radius: 50rem;
    transition: all 0.2s ease-in-out;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
    text-decoration: none;
    line-height: 1.2;
}

.btn-filter-secondary i,
.nav-clean-secondary .nav-link i {
    font-size: 0.95rem;
    color: #64748b;
    transition: color 0.2s ease-in-out;
}

.btn-filter-secondary:hover,
.nav-clean-secondary .nav-link:hover {
    color: #1c84c6 !important;
    border-color: #1c84c6;
    background-color: #f0f7fc;
}

.btn-filter-secondary:hover i,
.nav-clean-secondary .nav-link:hover i {
    color: #1c84c6;
}

.btn-filter-secondary.active,
.nav-clean-secondary .nav-link.active {
    color: #ffffff !important;
    background-color: #1c84c6 !important; /* Secondary #1c84c6 */
    border-color: #1c84c6 !important;
    box-shadow: 0 2px 6px rgba(28, 132, 198, 0.35) !important;
    font-weight: 700 !important;
}

.btn-filter-secondary.active i,
.nav-clean-secondary .nav-link.active i {
    color: #ffffff !important;
}

.btn-filter-secondary .badge-count,
.nav-clean-secondary .badge-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    font-size: 0.74rem;
    font-weight: 700;
    border-radius: 50rem;
    line-height: 1;
    transition: all 0.2s ease-in-out;
}

.btn-filter-secondary.active .badge-count,
.nav-clean-secondary .nav-link.active .badge-count {
    background-color: #ffffff !important;
    color: #1c84c6 !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);
}

.btn-filter-secondary:not(.active) .badge-count,
.nav-clean-secondary .nav-link:not(.active) .badge-count {
    background-color: #e2e8f0 !important;
    color: #475569 !important;
    border: 1px solid #cbd5e1 !important;
}

/* ==========================================================================
   Nav Tabs Bordered - Secondary Theme
   ========================================================================== */
.nav-tabs.nav-bordered-secondary {
    border-bottom: 1px solid #e2e8f0;
}

.nav-tabs.nav-bordered-secondary .nav-item .nav-link {
    border: none;
    border-bottom: 2px solid transparent;
    padding: 0.65rem 1.15rem;
    color: #475569;
    font-weight: 600;
    transition: all 0.2s ease-in-out;
    background: transparent;
    text-decoration: none;
}

.nav-tabs.nav-bordered-secondary .nav-item .nav-link:hover {
    color: #1c84c6;
    border-bottom-color: #cbd5e1;
}

.nav-tabs.nav-bordered-secondary .nav-item .nav-link:hover i {
    color: #1c84c6 !important;
}

.nav-tabs.nav-bordered-secondary .nav-item .nav-link.active {
    color: #1c84c6 !important;
    border-bottom: 2px solid #1c84c6 !important;
    background: transparent !important;
    font-weight: 700 !important;
}

.nav-tabs.nav-bordered-secondary .nav-item .nav-link.active i {
    color: #1c84c6 !important;
}

.nav-tabs.nav-bordered-secondary .nav-item .nav-link .badge {
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    margin-left: 4px;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
}

.nav-tabs.nav-bordered-secondary .nav-item .nav-link.active .badge {
    color: #1c84c6 !important;
}

.nav-tabs.nav-bordered-secondary .nav-item .nav-link:not(.active) .badge {
    color: #64748b !important;
}