/* ========================================
   CONTASURBAN DESIGN SYSTEM
   Sistema de cores e estilos padronizados
   ======================================== */

:root, [data-bs-theme="light"] {
    --primary-color: var(--brand-500);
    --primary-hover: var(--brand-600);
    --primary-light: var(--text-muted);
    --primary-dark: var(--brand-700);
    --secondary-color: var(--brand-600);
    --secondary-hover: var(--brand-700);
    --secondary-light: var(--border-strong);
    --success-color: var(--success-500);
    --danger-color: var(--danger-500);
    --warning-color: var(--warning-500);
    --info-color: var(--info-500);
    --primary-status-bg: rgba(107, 114, 128, 0.2);
    --primary-status-text: #f0f6fc;
    --secondary-status-bg: rgba(108, 117, 125, 0.15);
    --secondary-status-text: #495057;
    --body-bg: var(--bg-body);
    --card-bg: var(--bg-surface);
    --sidebar-bg: var(--bg-surface);
    --navbar-bg: var(--interactive-primary);
    --text-primary: var(--text-primary);
    --text-secondary: var(--text-secondary);
    --text-muted: var(--text-muted);
    --text-white: #ffffff;
    --border-color: var(--border-default);
    --border-light: var(--border-subtle);
    --border-dark: var(--border-strong);
    --shadow-sm: var(--shadow-sm);
    --shadow: 0 0 0 rgba(0,0,0,0);
    --shadow-lg: 0 0 0 rgba(0,0,0,0);
    --card-shadow: var(--shadow-sm);
    --border-radius: 0;
    --border-radius-sm: 0;
    --border-radius-lg: 0;
    --transition-fast: 0.1s;
    --transition-normal: 0.2s;
    --transition-slow: 0.3s;
    /* Superfícies base (light) */
    --bg-body: #F6F8FB;
    --bg-surface: #FFFFFF;
    --bg-surface-alt: #F8FAFC;
    --bg-elevated: #FFFFFF;
    /* Texto (light) */
    --text-primary: #101828;
    --text-secondary: #475467;
    --text-muted: #667085;
    --text-inverse: #FFFFFF;
    /* Bordas (light) */
    --border-default: #E4E7EC;
    --border-subtle: #EEF2F6;
    --border-strong: #D0D5DD;
    /* Marca e interativos (light) */
    --brand-500: #7936e9;
    --brand-600: #622bc2;
    --brand-700: #4b2195;
    --interactive-primary: #7936e9;
    --interactive-primary-hover: #622bc2;
    --text-on-interactive: #FFFFFF;
    /* Status (light) */
    --success-500: #16A34A;
    --success-bg: #ECFDF3;
    --success-text: #166534;
    --danger-500: #DC2626;
    --danger-bg: #FEF2F2;
    --danger-text: #991B1B;
    --warning-500: #D97706;
    --warning-bg: #FFFBEB;
    --warning-text: #92400E;
    --info-500: #0284C7;
    --info-bg: #F0F9FF;
    --info-text: #0C4A6E;
    /* Sombras (light) */
    --shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.05);
    --shadow-md: 0 4px 12px rgba(16, 24, 40, 0.08);
    /* Compat tokens de arquivos modernos */
    --text-color: var(--text-primary);
    --text-light: var(--text-muted);
    --card-border: var(--border-default);
}

/* ========================================
   CARDS COLORIDOS
   ======================================== */
.card-primary, [data-bs-theme="light"] .card-primary {
    border-left: 4px solid var(--primary-color);
    background: linear-gradient(135deg, rgba(121, 54, 233, 0.02) 0%, rgba(138, 112, 214, 0.02) 100%);
}

.card-success, [data-bs-theme="light"] .card-success {
    border-left: 4px solid var(--success-color);
    background: linear-gradient(135deg, rgba(40, 167, 69, 0.05) 0%, rgba(40, 167, 69, 0.02) 100%);
}

.card-danger, [data-bs-theme="light"] .card-danger {
    border-left: 4px solid var(--danger-color);
    background: linear-gradient(135deg, rgba(220, 53, 69, 0.05) 0%, rgba(220, 53, 69, 0.02) 100%);
}

.card-warning, [data-bs-theme="light"] .card-warning {
    border-left: 4px solid var(--warning-color);
    background: linear-gradient(135deg, rgba(255, 193, 7, 0.05) 0%, rgba(255, 193, 7, 0.02) 100%);
}

.card-info, [data-bs-theme="light"] .card-info {
    border-left: 4px solid var(--info-color);
    background: linear-gradient(135deg, rgba(23, 162, 184, 0.05) 0%, rgba(23, 162, 184, 0.02) 100%);
}

.card-secondary, [data-bs-theme="light"] .card-secondary {
    border-left: 4px solid var(--secondary-color);
    background: linear-gradient(135deg, rgba(108, 117, 125, 0.05) 0%, rgba(108, 117, 125, 0.02) 100%);
}

[data-bs-theme="dark"] .card-primary {
    border-left: 4px solid var(--primary-color);
    background: linear-gradient(135deg, rgba(107, 114, 128, 0.1) 0%, rgba(107, 114, 128, 0.05) 100%);
}

[data-bs-theme="dark"] .card-success {
    border-left: 4px solid var(--success-color);
    background: linear-gradient(135deg, rgba(40, 167, 69, 0.1) 0%, rgba(40, 167, 69, 0.05) 100%);
}

[data-bs-theme="dark"] .card-danger {
    border-left: 4px solid var(--danger-color);
    background: linear-gradient(135deg, rgba(220, 53, 69, 0.1) 0%, rgba(220, 53, 69, 0.05) 100%);
}

[data-bs-theme="dark"] .card-warning {
    border-left: 4px solid var(--warning-color);
    background: linear-gradient(135deg, rgba(255, 193, 7, 0.1) 0%, rgba(255, 193, 7, 0.05) 100%);
}

[data-bs-theme="dark"] .card-info {
    border-left: 4px solid var(--info-color);
    background: linear-gradient(135deg, rgba(23, 162, 184, 0.1) 0%, rgba(23, 162, 184, 0.05) 100%);
}

[data-bs-theme="dark"] .card-secondary {
    border-left: 4px solid var(--secondary-color);
    background: linear-gradient(135deg, rgba(108, 117, 125, 0.1) 0%, rgba(108, 117, 125, 0.05) 100%);
}

/* ========================================
   TEMA ESCURO
   ======================================== */
[data-bs-theme="dark"] {
    /* === CORES PRIMÁRIAS (DARK) === */
    --primary-color: #94a3b8; /* Slate 400 - Cor primária para o modo escuro */
    --primary-hover: #cbd5e1;
    --primary-light: #475467;
    --primary-dark: #1e293b;
    
    /* === CORES DE FUNDO === */
    --bg-body: #121212;
    --bg-surface: #1c1c1c;
    --bg-surface-alt: #1c1c1c;
    --bg-elevated: #1c1c1c;
    --body-bg: var(--bg-body);
    --card-bg: var(--bg-surface);
    --sidebar-bg: var(--bg-surface);
    --navbar-bg: #000000;
    
    /* === CORES DE TEXTO === */
    --text-primary: #F8FAFC;
    --text-secondary: #CBD5E1;
    --text-muted: #94A3B8;
    --text-white: #ffffff;
    --text-color: var(--text-primary);
    --text-light: var(--text-muted);
    
    /* === CORES DE BORDA === */
    --border-default: #333333;
    --border-subtle: #333333;
    --border-strong: #333333;
    --border-color: var(--border-default);
    --border-light: var(--border-subtle);
    --border-dark: var(--border-strong);
    --card-border: var(--border-default);
    
    /* === SOMBRAS === */
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.35);
    --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.35);
    --shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.4);
    --shadow-lg: 0 1rem 3rem rgba(0, 0, 0, 0.5);
    --card-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);

    /* === CORES DE STATUS (DARK) === */
    --success-color: #3fb950;
    --success-bg: rgba(63, 185, 80, 0.15);
    --success-text: #3fb950;
    
    --danger-color: #f85149;
    --danger-bg: rgba(248, 81, 73, 0.15);
    --danger-text: #f85149;
    
    --warning-color: #d29922;
    --warning-bg: rgba(210, 153, 34, 0.15);
    --warning-text: #d29922;
    
    --info-color: #388bfd;
    --info-bg: rgba(56, 139, 253, 0.15);
    --info-text: #388bfd;

    --primary-status-bg: rgba(107, 114, 128, 0.2);
    --primary-status-text: #f0f6fc;

    --secondary-status-bg: rgba(108, 117, 125, 0.2);
    --secondary-status-text: #adb5bd;
    /* Marca e interativos (dark) */
    --brand-500: #2153aa;
    --brand-600: #CBD5E1;
    --brand-700: #E2E8F0;
    --interactive-primary: #E2E8F0;
    --interactive-primary-hover: #F8FAFC;
    --text-on-interactive: #0F1115;
}

/* ========================================
   CORES DE STATUS PADRONIZADAS
   ======================================== */

/* === STATUS GERAIS === */
.status-pago,
.status-aprovado,
.status-ativo,
.status-concluido {
    background-color: var(--success-color) !important;
    color: var(--text-white) !important;
}

.status-pendente,
.status-em-analise,
.status-aguardando {
    background-color: var(--warning-color) !important;
    color: var(--text-primary) !important;
}

.status-cancelado,
.status-rejeitado,
.status-inativo,
.status-atrasado {
    background-color: var(--danger-color) !important;
    color: var(--text-white) !important;
}

.status-rascunho,
.status-draft {
    background-color: var(--secondary-color) !important;
    color: var(--text-white) !important;
}

.status-enviado,
.status-processando {
    background-color: var(--info-color) !important;
    color: var(--text-white) !important;
}

.status-convertido-venda,
.status-convertido {
    background-color: var(--primary-color) !important;
    color: var(--text-white) !important;
}

.status-expirado {
    background-color: #6c757d !important;
    color: var(--text-white) !important;
}

/* ========================================
   BOTÕES PADRONIZADOS
   ======================================== */
.btn {
    border-radius: 0 !important;
    font-weight: 500;
    transition: all 0.3s ease;
    border: 1px solid transparent;
    padding: 0.5rem 1.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-shadow: var(--shadow-sm);
}

.btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

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

.btn-primary, [data-bs-theme="light"] .btn-primary {
    background-color: #7936e9 !important;
    border-color: #7936e9 !important;
    color: #FFFFFF !important;
}

.btn-primary:hover, [data-bs-theme="light"] .btn-primary:hover {
    background-color: #622bc2 !important;
    border-color: #622bc2 !important;
}

[data-bs-theme="dark"] .btn-primary {
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: #0f172a !important; /* Cor escura para contraste no botão slate */
}

[data-bs-theme="dark"] .btn-primary:hover {
    background-color: var(--primary-hover) !important;
    border-color: var(--primary-hover) !important;
}

.btn-secondary {
    background-color: #6c757d !important;
    border-color: #6c757d !important;
    color: #ffffff !important;
}

.btn-secondary:hover {
    background-color: #5a6268 !important;
    border-color: #545b62 !important;
}

/* Transformando Outline em Solid com fundo suave */
.btn-outline-primary, [data-bs-theme="light"] .btn-outline-primary {
    background-color: rgba(121, 54, 233, 0.1) !important;
    border-color: #7936e9 !important;
    color: #7936e9 !important;
}

.btn-outline-primary:hover, [data-bs-theme="light"] .btn-outline-primary:hover {
    background-color: #7936e9 !important;
    color: #ffffff !important;
}

[data-bs-theme="dark"] .btn-outline-primary {
    background-color: rgba(148, 163, 184, 0.15) !important;
    border-color: var(--primary-color) !important;
    color: var(--primary-color) !important;
}

[data-bs-theme="dark"] .btn-outline-primary:hover {
    background-color: var(--primary-color) !important;
    color: #0f172a !important;
}

.btn-outline-success {
    background-color: rgba(22, 163, 74, 0.1) !important;
    border-color: #16a34a !important;
    color: #16a34a !important;
}

.btn-outline-success:hover {
    background-color: #16a34a !important;
    color: #ffffff !important;
}

.btn-outline-warning {
    background-color: rgba(217, 119, 6, 0.1) !important;
    border-color: #d97706 !important;
    color: #d97706 !important;
}

.btn-outline-warning:hover {
    background-color: #d97706 !important;
    color: #ffffff !important;
}

.btn-outline-danger {
    background-color: rgba(220, 38, 38, 0.1) !important;
    border-color: #dc2626 !important;
    color: #dc2626 !important;
}

.btn-outline-danger:hover {
    background-color: #dc2626 !important;
    color: #ffffff !important;
}

.btn-outline-secondary {
    background-color: rgba(108, 117, 125, 0.1) !important;
    border-color: #6c757d !important;
    color: #6c757d !important;
}

.btn-outline-secondary:hover {
    background-color: #6c757d !important;
    color: #ffffff !important;
}

.btn-outline-info {
    background-color: rgba(2, 132, 199, 0.1) !important;
    border-color: #0284c7 !important;
    color: #0284c7 !important;
}

.btn-outline-info:hover {
    background-color: #0284c7 !important;
    color: #ffffff !important;
}

/* Modo Escuro para Botões Outline (Sucesso/Geral) */
[data-bs-theme="dark"] .btn-outline-success {
    background-color: rgba(63, 185, 80, 0.15) !important;
    border-color: var(--success-color) !important;
    color: var(--success-color) !important;
}

[data-bs-theme="dark"] .btn-outline-success:hover {
    background-color: var(--success-color) !important;
    color: #0f172a !important;
}

[data-bs-theme="dark"] .btn-outline-danger {
    background-color: rgba(248, 81, 73, 0.15) !important;
    border-color: var(--danger-color) !important;
    color: var(--danger-color) !important;
}

[data-bs-theme="dark"] .btn-outline-danger:hover {
    background-color: var(--danger-color) !important;
    color: #ffffff !important;
}

[data-bs-theme="dark"] .btn-outline-warning {
    background-color: rgba(210, 153, 34, 0.15) !important;
    border-color: var(--warning-color) !important;
    color: var(--warning-color) !important;
}

[data-bs-theme="dark"] .btn-outline-warning:hover {
    background-color: var(--warning-color) !important;
    color: #0f172a !important;
}

/* Botão roxo legado (Apenas Light) */
.btn-purple, [data-bs-theme="light"] .btn-purple {
    background-color: #7936e9 !important;
    border-color: #7936e9 !important;
    color: white !important;
}

[data-bs-theme="dark"] .btn-purple {
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: #0f172a !important;
}

/* Botões de ação */
.btn-action {
    width: 32px;
    height: 32px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-right: 5px;
    border-radius: 0;
}

@media (max-width: 768px) {
    .btn-action {
        width: 28px;
        height: 28px;
        font-size: 0.8rem;
    }
}

/* === BOTÕES DE STATUS === */
.btn-success {
    background-color: var(--success-color) !important;
    border-color: var(--success-color) !important;
    color: #ffffff !important;
}

.btn-success:hover {
    background-color: var(--success-hover) !important;
    border-color: var(--success-hover) !important;
    color: #ffffff !important;
}

.btn-danger {
    background-color: var(--danger-color) !important;
    border-color: var(--danger-color) !important;
    color: #ffffff !important;
}

.btn-danger:hover {
    background-color: var(--danger-hover) !important;
    border-color: var(--danger-hover) !important;
    color: #ffffff !important;
}

.btn-warning {
    background-color: var(--warning-color) !important;
    border-color: var(--warning-color) !important;
    color: #000000 !important;
}

.btn-warning:hover {
    background-color: var(--warning-hover) !important;
    border-color: var(--warning-hover) !important;
    color: #000000 !important;
}

.btn-info {
    background-color: var(--info-color) !important;
    border-color: var(--info-color) !important;
    color: #ffffff !important;
}

.btn-info:hover {
    background-color: var(--info-hover) !important;
    border-color: var(--info-hover) !important;
    color: #ffffff !important;
}

/* ========================================
   CARDS PADRONIZADOS
   ======================================== */
/* Utility Overrides to consume Semantic Tokens */
.bg-primary, [data-bs-theme="light"] .bg-primary {
    background-color: #7936e9 !important;
}

.text-white, [data-bs-theme="light"] .text-white {
    color: var(--text-on-interactive) !important;
}

.square-card {
    border-radius: 0 !important;
}

.card {
    background: var(--bg-surface);
    color: var(--text-primary);
    border: 1px solid var(--border-default);
    box-shadow: var(--shadow-sm);
    border-radius: 0;
    transition: transform var(--transition-normal), box-shadow var(--transition-normal);
}

.card.square-card {
    border-radius: 0 !important;
}

.card--elevated {
    background: var(--bg-elevated);
    box-shadow: var(--shadow-md);
}

.card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

.card.square-card:hover {
    transform: none;
    box-shadow: none;
}
.badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 0 !important;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
}
.badge--success {
    background: var(--success-bg);
    color: var(--success-text);
    border: 1px solid color-mix(in srgb, var(--success-500) 18%, transparent);
}
.badge--danger {
    background: var(--danger-bg);
    color: var(--danger-text);
    border: 1px solid color-mix(in srgb, var(--danger-500) 18%, transparent);
}
.badge--warning {
    background: var(--warning-bg);
    color: var(--warning-text);
    border: 1px solid color-mix(in srgb, var(--warning-500) 18%, transparent);
}
.badge--info {
    background: var(--info-bg);
    color: var(--info-text);
    border: 1px solid color-mix(in srgb, var(--info-500) 18%, transparent);
}
.alert {
    border-radius: 0;
    padding: 14px 16px;
    border-left: 4px solid;
    font-size: 14px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
.alert--success {
    background: var(--success-bg);
    color: var(--success-text);
    border-color: var(--success-500);
}
.alert--danger {
    background: var(--danger-bg);
    color: var(--danger-text);
    border-color: var(--danger-500);
}
.alert--warning {
    background: var(--warning-bg);
    color: var(--warning-text);
    border-color: var(--warning-500);
}
.alert--info {
    background: var(--info-bg);
    color: var(--info-text);
    border-color: var(--info-500);
}
.form-control,
.form-select {
    background: var(--bg-surface);
    color: var(--text-primary);
    border: 1px solid var(--border-default);
}
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
    background: var(--bg-surface);
    color: var(--text-primary);
    border: 1px solid var(--border-default);
}
.form-control:focus,
.form-select:focus {
    border-color: var(--interactive-primary);
    box-shadow: none;
}
.table thead th {
    background-color: var(--bg-surface-alt);
    border-bottom: 2px solid var(--border-strong);
}
/* Global Table Hover (Light Mode) */
.table-hover tbody tr:hover,
.table-hover tbody tr:hover td,
.table-hover tbody tr:hover th {
    background-color: rgba(121, 54, 233, 0.015) !important;
    color: inherit !important;
}

/* Fix for striped tables hover */
.table-striped.table-hover tbody tr:hover > * {
    background-color: rgba(121, 54, 233, 0.015) !important;
    box-shadow: inset 0 0 0 9999px rgba(121, 54, 233, 0.015) !important;
}

/* Fix for contextual classes hover (danger, success, etc) */
.table-hover .table-primary:hover,
.table-hover .table-success:hover,
.table-hover .table-danger:hover,
.table-hover .table-warning:hover,
.table-hover .table-info:hover {
    --bs-table-accent-bg: rgba(121, 54, 233, 0.03) !important;
    background-color: rgba(121, 54, 233, 0.03) !important;
}



.card-header {
    background-color: var(--card-bg);
    border-bottom: 1px solid var(--border-color);
    font-weight: 600;
    color: var(--text-primary);
}

/* === CARDS DE DASHBOARD === */
.card-entrada {
    border-left: 4px solid var(--success-color);
}

.card-saida {
    border-left: 4px solid var(--danger-color);
}

.card-saldo {
    border-left: 4px solid var(--info-color);
}

/* ========================================
   TABELAS PADRONIZADAS
   ======================================== */
.table {
    color: var(--text-primary);
}

.table th {
    background-color: var(--card-bg);
    border-bottom: 2px solid var(--border-color);
    font-weight: 600;
    color: var(--text-primary);
}

/* Global Table Hover Defined in Merge Section */

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

/* ========================================
   FORMULÁRIOS PADRONIZADOS
   ======================================== */
.form-control,
.form-select {
    border-radius: 8px;
    border: 1px solid #e0e0e0;
    padding: 10px 15px;
    transition: all 0.3s;
    background-color: #ffffff;
    color: #212529;
}

.form-control:focus,
.form-select:focus {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
    outline: 0;
}

.form-label {
    font-weight: 500;
    margin-bottom: 8px;
    color: #212529;
}

/* Tema escuro para formulários */
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
    background-color: #1c1c1c;
    border-color: #2d2d2d;
    color: #f0f6fc;
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
    border-color: #666666;
    box-shadow: 0 0 0 0.25rem rgba(102, 102, 102, 0.25);
    background-color: #1c1c1c;
    color: #f0f6fc;
}

[data-bs-theme="dark"] .form-label {
    color: #f0f6fc;
}

/* ========================================
   BADGES E STATUS
   ======================================== */
.badge {
    font-weight: 500;
    border-radius: 0;
    padding: 6px 12px;
    font-size: 0.75rem;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
}

/* Padronização de cores Bootstrap para Badges */
.bg-success { background-color: var(--success-bg) !important; color: var(--success-text) !important; }
.bg-danger { background-color: var(--danger-bg) !important; color: var(--danger-text) !important; }
.bg-warning { background-color: var(--warning-bg) !important; color: var(--warning-text) !important; }
.bg-info { background-color: var(--info-bg) !important; color: var(--info-text) !important; }
.bg-primary, [data-bs-theme="light"] .bg-primary { background-color: #7936e9 !important; color: #ffffff !important; }
.bg-secondary { background-color: var(--secondary-color) !important; color: #ffffff !important; }
.bg-light { background-color: var(--border-light) !important; color: var(--text-primary) !important; }
.bg-dark { background-color: #333333 !important; color: #ffffff !important; }

/* Badges de status específicos */
.badge-status {
    padding: 5px 10px;
    border-radius: 4px;
    font-weight: 500;
    text-transform: uppercase;
    font-size: 0.75rem;
}

.status-pago { background-color: var(--success-bg) !important; color: var(--success-text) !important; }
.status-pendente { background-color: var(--warning-bg) !important; color: var(--warning-text) !important; }
.status-atrasado { background-color: var(--danger-bg) !important; color: var(--danger-text) !important; }
.status-cancelado { background-color: var(--secondary-status-bg) !important; color: var(--secondary-status-text) !important; }

/* Badges de fluxo */
.badge-fluxo {
    padding: 5px 10px;
    border-radius: 4px;
    font-weight: 500;
    text-transform: uppercase;
    font-size: 0.75rem;
}

.fluxo-entrada { background-color: var(--success-bg) !important; color: var(--success-text) !important; }
.fluxo-saída { background-color: var(--danger-bg) !important; color: var(--danger-text) !important; }
.fluxo-fixo { background-color: var(--warning-bg) !important; color: var(--warning-text) !important; }
.fluxo-variável { background-color: rgba(253, 126, 20, 0.1) !important; color: #fd7e14 !important; }
.fluxo-extra { background-color: var(--info-bg) !important; color: var(--info-text) !important; }

/* Badges de empresa */
.badge-empresa {
    padding: 5px 10px;
    border-radius: 4px;
    font-weight: 500;
    text-transform: uppercase;
    font-size: 0.75rem;
    background-color: var(--primary-status-bg) !important;
    color: var(--primary-status-text) !important;
}

/* ========================================
   ALERTS PADRONIZADOS
   ======================================== */
.alert {
    border: none;
    border-radius: 0;
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    font-weight: 500;
}

.alert-success { background-color: var(--success-bg) !important; color: var(--success-text) !important; border-left: 4px solid var(--success-color) !important; }
.alert-danger { background-color: var(--danger-bg) !important; color: var(--danger-text) !important; border-left: 4px solid var(--danger-color) !important; }
.alert-warning { background-color: var(--warning-bg) !important; color: var(--warning-text) !important; border-left: 4px solid var(--warning-color) !important; }
.alert-info { background-color: var(--info-bg) !important; color: var(--info-text) !important; border-left: 4px solid var(--info-color) !important; }

/* ========================================
   DROPDOWN E MENUS
   ======================================== */
.dropdown-menu {
    background-color: var(--card-bg);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    box-shadow: var(--shadow);
}

.dropdown-item {
    color: var(--text-primary);
    transition: all var(--transition-fast);
}

.dropdown-item:hover {
    background-color: rgba(138, 112, 214, 0.1);
    color: var(--primary-color);
}

[data-bs-theme="dark"] .dropdown-item:hover {
    background-color: rgba(107, 114, 128, 0.2);
    color: var(--primary-color);
}

/* ========================================
   MENU DE AÇÕES MODERNO
   ======================================== */
.actions-dropdown {
    position: relative;
    display: inline-block;
}

.actions-btn {
    background: none;
    border: none;
    padding: 0.5rem;
    border-radius: var(--border-radius-sm);
    color: var(--text-secondary);
    transition: all var(--transition-fast);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.actions-btn:hover {
    background-color: rgba(138, 112, 214, 0.1);
    color: var(--primary-color);
}

[data-bs-theme="dark"] .actions-btn:hover {
    background-color: rgba(107, 114, 128, 0.2);
    color: var(--primary-color);
}

/* ========================================
   RESPONSIVIDADE
   ======================================== */
@media (max-width: 768px) {
    .btn {
        font-size: 0.875rem;
        padding: 0.5rem 1rem;
    }
    
    .card {
        margin-bottom: 1rem;
    }
    
    .badge {
        font-size: 0.7rem;
        padding: 0.4rem 0.6rem;
    }
}

/* ========================================
   UTILITÁRIOS
   ======================================== */
.text-primary-custom {
    color: var(--primary-color) !important;
}

.bg-primary-custom {
    background-color: var(--primary-color) !important;
}

.border-primary-custom {
    border-color: var(--primary-color) !important;
}

.shadow-custom {
    box-shadow: var(--card-shadow) !important;
}

.rounded-custom {
    border-radius: var(--border-radius) !important;
}

/* ========================================
   ANIMAÇÕES
   ======================================== */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes slideIn {
    from { transform: translateX(-100%); }
    to { transform: translateX(0); }
}

.fade-in {
    animation: fadeIn var(--transition-normal) ease-out;
}

.slide-in {
    animation: slideIn var(--transition-normal) ease-out;
}

/* ========================================
   MODO ESCURO - AJUSTES ESPECÍFICOS
   ======================================== */
[data-bs-theme="dark"] body {
    background-color: var(--body-bg);
    color: var(--text-primary);
}

[data-bs-theme="dark"] .navbar {
    background-color: var(--navbar-bg) !important;
}

[data-bs-theme="dark"] .card {
    background-color: var(--card-bg);
    border-color: var(--border-color);
}

[data-bs-theme="dark"] .table {
    color: var(--text-primary);
}

[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select,
[data-bs-theme="dark"] .form-control-plaintext {
    background-color: var(--card-bg) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

[data-bs-theme="dark"] .form-control:focus,
[data-bs-theme="dark"] .form-select:focus {
    background-color: var(--card-bg) !important;
    border-color: var(--primary-color) !important;
    color: var(--text-primary) !important;
    box-shadow: 0 0 0 0.25rem rgba(107, 114, 128, 0.25) !important;
}

[data-bs-theme="dark"] .form-control::placeholder {
    color: var(--text-muted) !important;
}

[data-bs-theme="dark"] .form-label {
    color: var(--text-primary) !important;
}

/* Campos específicos com classes bg-light */
[data-bs-theme="dark"] .form-control.bg-light,
[data-bs-theme="dark"] .form-select.bg-light {
    background-color: var(--card-bg) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

[data-bs-theme="dark"] .form-control.bg-light:focus,
[data-bs-theme="dark"] .form-select.bg-light:focus {
    background-color: var(--card-bg) !important;
    border-color: var(--primary-color) !important;
    color: var(--text-primary) !important;
}

/* Input groups no modo escuro */
[data-bs-theme="dark"] .input-group-text {
    background-color: var(--card-bg) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

/* Textareas no modo escuro */
[data-bs-theme="dark"] textarea.form-control {
    background-color: var(--card-bg) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

[data-bs-theme="dark"] textarea.form-control:focus {
    background-color: var(--card-bg) !important;
    border-color: var(--primary-color) !important;
    color: var(--text-primary) !important;
}

[data-bs-theme="dark"] .dropdown-menu {
    background-color: var(--card-bg);
    border-color: var(--border-color);
}

[data-bs-theme="dark"] .dropdown-item {
    color: var(--text-primary);
}

[data-bs-theme="dark"] .modal-content {
    background-color: var(--card-bg);
    border-color: var(--border-color);
}

[data-bs-theme="dark"] .modal-header {
    background-color: #292929 !important;
    border-bottom-color: var(--border-color);
}

[data-bs-theme="dark"] .modal-body {
    background-color: #1c1c1c !important;
}

[data-bs-theme="dark"] .modal-footer {
    background-color: var(--card-bg);
    border-top-color: var(--border-color);
}

/* Cards com bg-light no modo escuro */
[data-bs-theme="dark"] .card.bg-light,
[data-bs-theme="dark"] .bg-light {
    background-color: var(--card-bg) !important;
    color: var(--text-primary) !important;
}

[data-bs-theme="dark"] .card.bg-light .card-body {
    background-color: var(--card-bg) !important;
    color: var(--text-primary) !important;
}

/* Text muted no modo escuro */
[data-bs-theme="dark"] .text-muted {
    color: var(--text-muted) !important;
}

/* Badges e elementos de status no modo escuro */
[data-bs-theme="dark"] .badge {
    border: 1px solid var(--border-color);
}

/* Melhorar contraste de elementos específicos */
[data-bs-theme="dark"] h6.text-muted {
    color: var(--text-secondary) !important;
}

[data-bs-theme="dark"] p {
    color: var(--text-primary) !important;
}

/* ================= MERGE: GLOBAL LAYOUT ================= */
*{box-sizing:border-box}
body{font-family:'Poppins','Roboto',sans-serif;background-color:var(--body-bg);color:var(--text-primary);line-height:1.6;margin:0;padding:0;transition:background-color var(--transition),color var(--transition)}
.main-wrapper{min-height:100vh;display:flex;flex-direction:column}
.content-wrapper{flex:1;padding-top:60px}
.container,.container-fluid{padding-top:var(--spacing-lg);padding-bottom:var(--spacing-lg)}
.navbar{background-color:var(--navbar-bg) !important;box-shadow:none !important;padding:6px 0;min-height:50px;border-bottom:1px solid rgba(0,0,0,0.1)}
.navbar-brand{font-weight:600;font-size:1.4rem;color:var(--text-white) !important}
.nav-link{font-weight:500;padding:8px 16px !important;border-radius:0 !important;margin:0 3px;color:rgba(255,255,255,0.9) !important}
.nav-link:hover{background-color:rgba(255,255,255,0.1);color:var(--text-white) !important}
.dropdown-menu{border:1px solid var(--border-color);box-shadow:none !important;border-radius:0 !important;padding:0;margin-top:0}
.dropdown-item{padding:0.5rem 1rem}
.dropdown-item:hover{background-color:var(--body-bg);color:var(--text-primary)}
.card{border-radius:0 !important;border:1px solid var(--border-color);box-shadow:none !important;background-color:var(--card-bg);margin-bottom:var(--spacing-lg);overflow:hidden}
.card-header{background-color:transparent;border-bottom:1px solid var(--border-color);padding:var(--spacing-md) var(--spacing-lg);font-weight:600}
.card-body{padding:var(--spacing-lg)}
.badge{padding:6px 12px;font-weight:500;border-radius:0 !important;font-size:0.75rem;display:inline-flex;align-items:center;text-transform:uppercase}
.square-card{border-radius:0 !important}
.bg-success{background-color:var(--success-500) !important;color:#ffffff !important}
.bg-danger{background-color:var(--danger-500) !important;color:#ffffff !important}
.bg-warning{background-color:var(--warning-500) !important;color:#000000 !important}
.bg-info{background-color:var(--info-500) !important;color:#ffffff !important}
.bg-primary{background-color:var(--interactive-primary) !important;color:var(--text-on-interactive) !important}
.badge.bg-primary{background-color:var(--interactive-primary) !important;color:var(--text-on-interactive) !important}
.bg-secondary{background-color:var(--brand-600) !important;color:#ffffff !important}
.bg-light{background-color:var(--border-light) !important;color:var(--text-primary) !important}
.bg-dark{background-color:#333333 !important;color:#ffffff !important}
.alert{border:none;border-radius:0 !important;padding:1rem 1.25rem;margin-bottom:1.5rem;font-weight:500}
.alert-success{background-color:var(--success-color) !important;color:#ffffff !important}
.alert-danger{background-color:var(--danger-color) !important;color:#ffffff !important}
.alert-warning{background-color:var(--warning-color) !important;color:#000000 !important}
.alert-info{background-color:var(--info-color) !important;color:#ffffff !important}
[data-bs-theme="dark"] .bg-success{background-color:var(--success-bg) !important;color:var(--success-text) !important}
[data-bs-theme="dark"] .bg-danger{background-color:var(--danger-bg) !important;color:var(--danger-text) !important}
[data-bs-theme="dark"] .bg-warning{background-color:var(--warning-bg) !important;color:var(--warning-text) !important}
[data-bs-theme="dark"] .bg-info{background-color:var(--info-bg) !important;color:var(--info-text) !important}
[data-bs-theme="dark"] .bg-primary{background-color:var(--primary-status-bg) !important;color:var(--primary-status-text) !important}
[data-bs-theme="dark"] .bg-secondary{background-color:var(--secondary-status-bg) !important;color:var(--secondary-status-text) !important}
[data-bs-theme="dark"] .alert-success{background-color:var(--success-bg) !important;color:var(--success-text) !important;border-left:4px solid var(--success-color) !important}
[data-bs-theme="dark"] .alert-danger{background-color:var(--danger-bg) !important;color:var(--danger-text) !important;border-left:4px solid var(--danger-color) !important}
[data-bs-theme="dark"] .alert-warning{background-color:var(--warning-bg) !important;color:var(--warning-text) !important;border-left:4px solid var(--warning-color) !important}
[data-bs-theme="dark"] .alert-info{background-color:var(--info-bg) !important;color:var(--info-text) !important;border-left:4px solid var(--info-color) !important}
.table{width:100%;margin-bottom:1rem;color:var(--text-primary);border-collapse:collapse;background-color:var(--card-bg);border-radius:0 !important;box-shadow:none !important;border:1px solid var(--border-color)}
.table th{background-color:var(--body-bg);border-bottom:2px solid var(--border-color);padding:0.75rem;font-weight:600;text-align:left}
.table td{padding:0.75rem;border-bottom:1px solid var(--border-light);vertical-align:middle;color:var(--text-primary)}
.table-hover tbody tr:hover{background-color:rgba(121, 54, 233, 0.015) !important}
.table-hover tbody tr:hover td{background-color:transparent !important}
[data-bs-theme="dark"] .table-hover tbody tr:hover{background-color:rgba(255,255,255,0.03)}
.card:hover{transform:none !important;box-shadow:none !important}
.card-header{background-color:var(--body-bg);border-bottom:1px solid var(--border-color);padding:0.75rem 1.25rem;font-weight:600;color:var(--text-primary)}
.card-footer{background-color:var(--body-bg);border-top:1px solid var(--border-color);padding:0.75rem 1.25rem}
.btn {border-radius:0 !important;font-weight:500;padding:0.5rem 1.25rem;transition:all 0.3s ease;border:1px solid transparent;cursor:pointer;box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;justify-content:center;gap:8px;}
.btn:hover {transform:translateY(-1px);box-shadow:var(--shadow-md);}
.btn:active {transform:translateY(0);}
.btn-primary{background-color:var(--primary-color);color:var(--text-white);border-color:var(--primary-color)}
.btn-primary:hover{background-color:var(--primary-hover);transform:none !important;box-shadow:none !important}
.btn-purple{background-color:var(--primary-color);border-color:var(--primary-color);color:var(--text-white)}
.btn-purple:hover{background-color:var(--primary-hover);border-color:var(--primary-hover);color:var(--text-white);transform:none !important}
.btn-action{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;margin-right:2px;border-radius:0 !important}
.form-control,.form-select{border-radius:0 !important;border:1px solid var(--border-color);padding:0.375rem 0.75rem;background-color:var(--card-bg);color:var(--text-primary);box-shadow:none !important}
.form-control:focus,.form-select:focus{border-color:var(--primary-color);box-shadow:none !important;outline:1px solid var(--primary-color)}
.form-label{font-weight:500;color:var(--text-primary);margin-bottom:0.25rem}
.text-primary{color:var(--text-primary) !important}
.text-secondary{color:var(--text-secondary) !important}
.text-muted{color:var(--text-muted) !important}
.text-white{color:var(--text-white) !important}
.bg-success{background-color:var(--success-color) !important;color:#ffffff !important}
.bg-danger{background-color:var(--danger-color) !important;color:#ffffff !important}
.bg-warning{background-color:var(--warning-color) !important;color:#000000 !important}
.bg-info{background-color:var(--info-color) !important;color:#ffffff !important}
@media (max-width:768px){.content-wrapper{padding-top:70px}.container,.container-fluid{padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}.card-body{padding:var(--spacing-md)}.btn-action{width:28px;height:28px;font-size:0.8rem}.table th,.table td{padding:var(--spacing-sm);font-size:0.9rem}}
@media (max-width:576px){.navbar-brand{font-size:1.2rem}.card{margin-bottom:var(--spacing-md)}.card-header,.card-body,.card-footer{padding:var(--spacing-md)}}
[data-bs-theme="dark"] .nav-item{border-bottom:1px solid rgba(255,255,255,0.03)}
[data-bs-theme="dark"] .nav-link{color:var(--text-muted) !important}
[data-bs-theme="dark"] .nav-link:hover,[data-bs-theme="dark"] .nav-link.active{background-color:rgba(255,255,255,0.05);color:var(--text-white) !important}
[data-bs-theme="dark"] .nav-item.has-submenu.open > .nav-link{background-color:rgba(255,255,255,0.05)}
[data-bs-theme="dark"] .submenu{background-color:rgba(0,0,0,0.2);border:none}
[data-bs-theme="dark"] .submenu li a:hover{color:var(--text-white);background-color:rgba(255,255,255,0.08)}
:root{--bs-border-radius:0;--bs-border-radius-sm:0;--bs-border-radius-lg:0;--bs-border-radius-xl:0;--bs-border-radius-xxl:0}
:where(.btn,.card,.badge,.alert,.dropdown-menu,.modal-content,.modal-header,.modal-footer,.nav-link,.form-control,.form-select,.input-group-text,.table,.page-link,.accordion-button,.progress,.list-group-item,.toast,.rounded,.rounded-1,.rounded-2,.rounded-3,.rounded-circle){border-radius:0 !important}

/* ================= MERGE: MODERN ================= */
body{padding-top:60px}
.nav-link:hover{background-color:rgba(255,255,255,0.1)}
.badge-modern,.badge{padding:6px 12px;font-weight:500;border-radius:0 !important;font-size:0.75rem;display:inline-flex;align-items:center;text-transform:uppercase}
.badge-fluxo.fluxo-entrada{background-color:var(--success-bg) !important;color:var(--success-text) !important}
.badge-fluxo.fluxo-saída{background-color:var(--danger-bg) !important;color:var(--danger-text) !important}
.badge-status.status-pago{background-color:var(--success-bg) !important;color:var(--success-text) !important}
.badge-status.status-pendente{background-color:var(--warning-bg) !important;color:var(--warning-text) !important}
.badge-status.status-atrasado{background-color:var(--danger-bg) !important;color:var(--danger-text) !important}
.badge-status.status-cancelado{background-color:var(--secondary-status-bg) !important;color:var(--secondary-status-text) !important}
.table-modern{margin-bottom:0;border-collapse:separate;border-spacing:0}
.table-modern thead th{background-color:rgba(121, 54, 233, 0.02);font-weight:600;border-bottom:none;padding:15px 20px;color:var(--text-color)}
.table-modern tbody td{padding:15px 20px;vertical-align:middle;border-top:none;border-bottom:1px solid var(--card-border)}
.table-modern tbody tr:last-child td{border-bottom:none}
.table-modern tbody tr:hover{background-color:rgba(121, 54, 233, 0.015) !important}
[data-bs-theme="dark"] .table-modern thead th{background-color:rgba(157,134,233,0.1);color:var(--text-color)}
[data-bs-theme="dark"] .table-modern tbody tr:hover{background-color:rgba(157,134,233,0.1)}
[data-bs-theme="dark"] .table-modern tbody td{color:var(--text-color);border-bottom-color:var(--card-border)}
.progress-circle{position:relative;width:150px;height:150px;border-radius:0;margin:0 auto 20px;background-color:#f0f0f0;overflow:hidden}
.progress-circle-inner{position:absolute;top:10px;left:10px;right:10px;bottom:10px;background-color:white;border-radius:0;display:flex;align-items:center;justify-content:center;flex-direction:column}
.progress-value{font-size:2rem;font-weight:700;color:var(--primary-color)}
.progress-label{font-size:0.9rem;color:var(--text-light)}
.btn-modern{border-radius:0 !important;font-weight:500;padding:10px 20px;transition:all 0.3s;border:none;box-shadow:none !important}
.btn-modern-outline{border-radius:0 !important;font-weight:500;padding:8px 16px;transition:all 0.3s;background-color:transparent;border:1px solid}
.navbar-toggler{border:none;padding:8px}
.navbar-toggler:focus{box-shadow:none}
.dashboard-card{padding:10px;text-align:center;transition:none}
.dashboard-card .card-body{padding:25px 15px}
.dashboard-card .card-title{font-size:1rem;font-weight:500;margin-bottom:15px;color:var(--text-light)}
.dashboard-card .card-text{font-size:1.8rem;font-weight:700;margin-bottom:0}
.anexo-item{background-color:var(--card-bg);border:1px solid var(--card-border) !important;border-radius:0;transition:all 0.3s ease;margin-bottom:10px}
.anexo-item:hover{background-color:rgba(121, 54, 233, 0.02) !important;border-color:var(--primary-color) !important;transform:translateY(-1px);box-shadow:0 2px 8px rgba(121, 54, 233, 0.1)}
.anexo-actions .btn{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:0;font-size:0.8rem;transition:all 0.2s ease}
.anexos-count{background-color:var(--primary-color);color:white;font-size:0.75rem;font-weight:600;padding:2px 6px;border-radius:0;margin-left:5px}
.btn-anexos{background-color:rgba(138,112,214,0.1);border:1px solid rgba(138,112,214,0.3);color:var(--primary-color);font-size:0.8rem;padding:4px 8px;border-radius:0;transition:all 0.2s ease}
.btn-anexos:hover{background-color:var(--primary-color);border-color:var(--primary-color);color:white;transform:scale(1.05)}
[data-bs-theme="dark"] .anexo-item{background-color:var(--card-bg);border-color:var(--card-border) !important}
[data-bs-theme="dark"] .anexo-item:hover{background-color:rgba(157,134,233,0.1);border-color:var(--primary-color) !important;box-shadow:0 2px 8px rgba(157,134,233,0.2)}
[data-bs-theme="dark"] .anexo-nome{color:var(--text-color)}
[data-bs-theme="dark"] .anexo-descricao{color:var(--text-light)}
[data-bs-theme="dark"] .modal-anexos .modal-content{background-color:var(--card-bg);border:1px solid var(--card-border)}
[data-bs-theme="dark"] .modal-anexos .modal-header{background-color:#292929 !important;border-bottom:1px solid var(--card-border)}
[data-bs-theme="dark"] .upload-form{background-color:rgba(157,134,233,0.08);border-color:var(--primary-color)}
[data-bs-theme="dark"] .upload-form:hover{background-color:rgba(157,134,233,0.12)}
[data-bs-theme="dark"] .upload-form .form-control,[data-bs-theme="dark"] .upload-form .form-select{background-color:var(--card-bg);border-color:rgba(157,134,233,0.3);color:var(--text-color)}
[data-bs-theme="dark"] .upload-form .form-control:focus,[data-bs-theme="dark"] .upload-form .form-select:focus{background-color:var(--card-bg);border-color:var(--primary-color);color:var(--text-color);box-shadow:0 0 0 0.25rem rgba(157,134,233,0.25)}
.sidebar{position:fixed;top:0;left:0;height:100vh;width:280px;background:linear-gradient(180deg,#8B5CF6 0%,#7C3AED 50%,#6D28D9 100%);color:white;z-index:1040;transition:width 0.3s ease;overflow:hidden;box-shadow:none !important;display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,0.1);border-radius:0 !important}
:where(.btn,.btn-modern,.btn-modern-outline,.btn-action,.btn-anexos,.card,.badge,.alert,.dropdown-menu,.modal-content,.modal-header,.modal-footer,.nav-link,.form-control,.form-select,.input-group-text,.table,.page-link,.accordion-button,.progress,.list-group-item,.toast,.rounded,.rounded-1,.rounded-2,.rounded-3,.rounded-circle){border-radius:0 !important}
[data-bs-theme="dark"] .sidebar{background:linear-gradient(135deg,#000000 0%,#1a1a1a 50%,#2a2a2a 100%);border-right:1px solid rgba(255,255,255,0.15)}
