/* Theme Variables */
:root {
    /* Light Theme */
    --bg-color: #f4f6fb;
    --text-primary: #111827;
    --text-secondary: #4b5563;
    --card-bg: #ffffff;
    --border-color: rgba(0,0,0,0.05);
    
    --brand-gradient-start: #0a2540;
    --brand-gradient-end: #1F4E78;
    --brand-accent: #3b82f6;
    
    --icon-bg: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    --icon-color: #2563eb;
    
    --btn-primary-bg: #0a2540;
    --btn-primary-text: #ffffff;
    --btn-primary-hover: #153a5a;
    
    --input-bg: #f9fafb;
    --input-border: #d1d5db;
    
    --upload-bg: #f8fafc;
    --upload-border: #cbd5e1;
    --upload-hover: #eff6ff;
    
    --table-header-bg: #f8f9fa;
    --table-row-hover: #f3f4f6;
    
    --navbar-bg: rgba(255, 255, 255, 0.8);
}

[data-theme="dark"] {
    /* Dark Theme - High Contrast Adjustment */
    --bg-color: #0f172a;
    --text-primary: #f8fafc;
    --text-secondary: #cbd5e1; /* Clareado de #94a3b8 para alto contraste */
    --card-bg: #1e293b;
    --border-color: rgba(255,255,255,0.15); /* Mais definido */
    
    --brand-gradient-start: #1e293b;
    --brand-gradient-end: #0f172a;
    --brand-accent: #60a5fa;
    
    --icon-bg: linear-gradient(135deg, #1e3a8a 0%, #1e40af 100%);
    --icon-color: #93c5fd;
    
    --btn-primary-bg: #3b82f6;
    --btn-primary-text: #ffffff;
    --btn-primary-hover: #2563eb;
    
    --input-bg: #0f172a;
    --input-border: #64748b; /* Aumentado contraste de #475569 */
    
    --upload-bg: #0f172a;
    --upload-border: #64748b; /* Aumentado contraste */
    --upload-hover: #1e293b;
    
    --table-header-bg: #1e293b;
    --table-row-hover: #334155;
    
    --navbar-bg: rgba(15, 23, 42, 0.85);
}

/* Base Overrides */
body {
    background-color: var(--bg-color) !important;
    color: var(--text-primary) !important;
    transition: background-color 0.3s, color 0.3s;
}

.card, .form-card, .automation-card, .login-card {
    background-color: var(--card-bg) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

/* Navbar */
.navbar-custom {
    background: var(--navbar-bg) !important;
    border-bottom: 1px solid var(--border-color) !important;
}
.navbar-brand { color: var(--text-primary) !important; }
.navbar-brand span { color: var(--brand-accent) !important; }

/* Typography */
h1:not(.hero h1), h2, h3, h4, h5, h6, .automation-title { color: var(--text-primary) !important; }
p:not(.hero p), .text-muted, .automation-desc { color: var(--text-secondary) !important; }

/* Inverted Areas (Hero) */
.hero h1, .hero p, .hero .lead {
    color: #ffffff !important;
}

/* Buttons */
.btn-primary, .btn-submit, .btn-executar {
    background-color: var(--btn-primary-bg) !important;
    color: var(--btn-primary-text) !important;
}
.btn-primary:hover, .btn-submit:hover, .btn-executar:hover {
    background-color: var(--btn-primary-hover) !important;
}
.btn-light {
    background-color: var(--card-bg) !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--border-color) !important;
}
.btn-light:hover {
    background-color: var(--table-row-hover) !important;
}

/* Forms */
.form-control, .form-select {
    background-color: var(--input-bg) !important;
    border-color: var(--input-border) !important;
    color: var(--text-primary) !important;
}
.form-control:focus, .form-select:focus {
    background-color: var(--input-bg) !important;
    border-color: var(--brand-accent) !important;
    color: var(--text-primary) !important;
}
.form-label {
    color: var(--text-primary) !important;
}

/* Upload Area */
.upload-area {
    background-color: var(--upload-bg) !important;
    border-color: var(--upload-border) !important;
}
.upload-area:hover {
    background-color: var(--upload-hover) !important;
    border-color: var(--brand-accent) !important;
}

/* Tables */
.table { color: var(--text-primary) !important; }
.table-light, .table thead th {
    background-color: var(--table-header-bg) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}
.table-hover tbody tr:hover td {
    background-color: var(--table-row-hover) !important;
    color: var(--text-primary) !important;
}
td, th { border-color: var(--border-color) !important; }

/* Icons */
.icon-wrapper {
    background: var(--icon-bg) !important;
    color: var(--icon-color) !important;
}

/* Breadcrumbs */
.breadcrumb-item a {
    color: var(--brand-accent) !important;
}
.breadcrumb-item.active {
    color: var(--text-secondary) !important;
}
.breadcrumb-item + .breadcrumb-item::before {
    color: var(--text-secondary) !important;
}

/* Placeholders */
.form-control::placeholder {
    color: var(--text-secondary) !important;
    opacity: 0.7;
}

/* Dark Mode Switch */
.theme-switch-wrapper {
    display: flex;
    align-items: center;
}
.theme-switch {
    display: inline-block;
    height: 28px;
    position: relative;
    width: 50px;
    margin: 0 10px;
}
.theme-switch input { display: none; }
.slider {
    background-color: #ccc;
    bottom: 0;
    cursor: pointer;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    transition: .4s;
    border-radius: 34px;
}
.slider:before {
    background-color: #fff;
    bottom: 4px;
    content: "";
    height: 20px;
    left: 4px;
    position: absolute;
    transition: .4s;
    width: 20px;
    border-radius: 50%;
}
input:checked + .slider { background-color: var(--brand-accent); }
input:checked + .slider:before { transform: translateX(22px); }
[data-theme="dark"] .slider { background-color: #475569; }

/* Dark Mode Contrast & Utility Overrides */
[data-theme="dark"] .text-secondary {
    color: var(--text-secondary) !important;
}
[data-theme="dark"] .text-muted {
    color: var(--text-secondary) !important;
    opacity: 0.9 !important;
}
[data-theme="dark"] .bg-body-tertiary {
    background-color: rgba(15, 23, 42, 0.65) !important;
    border: 1px solid var(--border-color) !important;
}
[data-theme="dark"] .bg-light {
    background-color: var(--bg-color) !important;
}
[data-theme="dark"] .alert-info {
    background-color: rgba(59, 130, 246, 0.12) !important;
    border: 1px solid rgba(59, 130, 246, 0.25) !important;
    color: #f0f9ff !important;
}
[data-theme="dark"] .alert-info h6, 
[data-theme="dark"] .alert-info .text-primary,
[data-theme="dark"] .alert-info .fw-bold {
    color: #60a5fa !important;
}
[data-theme="dark"] .info-card-premium {
    background-color: rgba(15, 23, 42, 0.4) !important;
}
[data-theme="dark"] .modal-content {
    border: 1px solid var(--border-color) !important;
}
[data-theme="dark"] .timeline-steps::before {
    background-color: var(--border-color) !important;
}
[data-theme="dark"] .timeline-step-icon {
    box-shadow: 0 0 0 5px var(--card-bg) !important;
}
[data-theme="dark"] .breadcrumb-item.active {
    color: var(--text-secondary) !important;
}
