/* Tema GeoAmbiental - Cores da Empresa */
:root {
    /* Cores principais da GeoAmbiental */
    --geo-green-primary: #4a7c59;
    --geo-green-light: #6faa6f;
    --geo-green-dark: #3d6b4a;
    --geo-dark: #2c3e50;
    --geo-gray-light: #ecf0f1;
    --geo-gray-medium: #95a5a6;
    --geo-white: #ffffff;
    --geo-text-dark: #2c3e50;
    --geo-text-light: #7f8c8d;
    
    /* Cores de status */
    --geo-success: #27ae60;
    --geo-warning: #f39c12;
    --geo-danger: #e74c3c;
    --geo-info: #3498db;
}

/* Sobrescrever cores primárias do Bootstrap */
.btn-primary {
    background-color: var(--geo-green-primary);
    border-color: var(--geo-green-primary);
    color: var(--geo-white);
}

.btn-primary:hover {
    background-color: var(--geo-green-dark);
    border-color: var(--geo-green-dark);
    color: var(--geo-white);
}

.btn-outline-primary {
    color: var(--geo-green-primary);
    border-color: var(--geo-green-primary);
}

.btn-outline-primary:hover {
    background-color: var(--geo-green-primary);
    border-color: var(--geo-green-primary);
    color: var(--geo-white);
}

/* Cards e elementos principais */
.card-header {
    background-color: var(--geo-green-primary);
    color: var(--geo-white);
    border-bottom: 1px solid var(--geo-green-dark);
}

.card {
    border: 1px solid #e3e6f0;
    box-shadow: 0 0.15rem 1.75rem 0 rgba(58, 59, 69, 0.15);
}

/* Sidebar personalizada */
.sidebar {
    background: linear-gradient(180deg, var(--geo-green-primary) 0%, var(--geo-green-dark) 100%);
    color: var(--geo-white);
    min-height: 100vh;
}

.sidebar .nav-link {
    color: rgba(255, 255, 255, 0.8);
    padding: 0.75rem 1rem;
    margin: 0.125rem 0;
    border-radius: 0.375rem;
    transition: all 0.2s ease-in-out;
}

.sidebar .nav-link:hover {
    color: var(--geo-white);
    background-color: rgba(255, 255, 255, 0.1);
}

.sidebar .nav-link.active {
    color: var(--geo-white);
    background-color: rgba(255, 255, 255, 0.2);
    font-weight: 600;
}

.sidebar .nav-link i {
    width: 1.5rem;
    text-align: center;
}

/* Badges e status */
.badge.bg-success {
    background-color: var(--geo-success) !important;
}

.badge.bg-primary {
    background-color: var(--geo-green-primary) !important;
}

.badge.bg-info {
    background-color: var(--geo-info) !important;
}

.badge.bg-warning {
    background-color: var(--geo-warning) !important;
}

.badge.bg-danger {
    background-color: var(--geo-danger) !important;
}

/* Tabelas */
.table thead th {
    background-color: var(--geo-dark);
    color: var(--geo-white);
    border-color: var(--geo-green-dark);
}

.table-dark {
    --bs-table-bg: var(--geo-dark);
    --bs-table-color: var(--geo-white);
}

.table-striped > tbody > tr:nth-of-type(odd) > td {
    background-color: rgba(74, 124, 89, 0.05);
}

/* Formulários */
.form-control:focus {
    border-color: var(--geo-green-light);
    box-shadow: 0 0 0 0.2rem rgba(74, 124, 89, 0.25);
}

.form-select:focus {
    border-color: var(--geo-green-light);
    box-shadow: 0 0 0 0.2rem rgba(74, 124, 89, 0.25);
}

/* Cards de estatísticas */
.card.bg-primary {
    background: linear-gradient(45deg, var(--geo-green-primary), var(--geo-green-light)) !important;
}

.card.bg-success {
    background: linear-gradient(45deg, var(--geo-success), #2ecc71) !important;
}

.card.bg-info {
    background: linear-gradient(45deg, var(--geo-info), #5dade2) !important;
}

.card.bg-warning {
    background: linear-gradient(45deg, var(--geo-warning), #f7dc6f) !important;
}

/* Paginação */
.pagination .page-link {
    color: var(--geo-green-primary);
    border-color: #dee2e6;
}

.pagination .page-link:hover {
    color: var(--geo-green-dark);
    background-color: var(--geo-gray-light);
    border-color: #dee2e6;
}

.pagination .page-item.active .page-link {
    background-color: var(--geo-green-primary);
    border-color: var(--geo-green-primary);
    color: var(--geo-white);
}

/* Modal headers */
.modal-header {
    background-color: var(--geo-green-primary);
    color: var(--geo-white);
    border-bottom: 1px solid var(--geo-green-dark);
}

.modal-header .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* Alerts */
.alert-success {
    background-color: rgba(39, 174, 96, 0.1);
    border-color: var(--geo-success);
    color: #155724;
}

.alert-danger {
    background-color: rgba(231, 76, 60, 0.1);
    border-color: var(--geo-danger);
    color: #721c24;
}

.alert-warning {
    background-color: rgba(243, 156, 18, 0.1);
    border-color: var(--geo-warning);
    color: #856404;
}

.alert-info {
    background-color: rgba(52, 152, 219, 0.1);
    border-color: var(--geo-info);
    color: #0c5460;
}

/* Login page customization */
.login-card .card-header {
    background: linear-gradient(135deg, var(--geo-green-primary), var(--geo-green-light));
}

/* Dropdown menus */
.dropdown-menu {
    border: 1px solid rgba(74, 124, 89, 0.15);
    box-shadow: 0 0.5rem 1rem rgba(74, 124, 89, 0.15);
}

.dropdown-item:hover {
    background-color: rgba(74, 124, 89, 0.1);
    color: var(--geo-text-dark);
}

/* Timeline customization */
.timeline-marker.bg-primary {
    background-color: var(--geo-green-primary) !important;
}

.timeline-marker.bg-success {
    background-color: var(--geo-success) !important;
}

.timeline-marker.bg-warning {
    background-color: var(--geo-warning) !important;
}

.timeline-marker.bg-danger {
    background-color: var(--geo-danger) !important;
}

/* Sidebar logo area */
.sidebar .border-bottom {
    border-color: rgba(255, 255, 255, 0.2) !important;
}

/* Link customizations */
a {
    color: var(--geo-green-primary);
}

a:hover {
    color: var(--geo-green-dark);
}

/* Text colors */
.text-primary {
    color: var(--geo-green-primary) !important;
}

.text-muted {
    color: var(--geo-text-light) !important;
}

/* Border colors */
.border-primary {
    border-color: var(--geo-green-primary) !important;
}

/* Background utilities */
.bg-light {
    background-color: var(--geo-gray-light) !important;
}

/* Custom utilities */
.text-geo-primary {
    color: var(--geo-green-primary);
}

.bg-geo-primary {
    background-color: var(--geo-green-primary);
}

.border-geo-primary {
    border-color: var(--geo-green-primary);
}

/* Responsividade e melhorias visuais */
@media (max-width: 768px) {
    .sidebar {
        position: relative;
        min-height: auto;
    }
}

/* Smooth transitions - excluindo modal e backdrop */
*:not(.modal):not(.modal-backdrop):not(.modal-dialog):not(.modal-content):not(.fade):not(.show) {
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, 
                border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

/* Desabilitar transições customizadas em modais - usar apenas as do Bootstrap */
.modal,
.modal-backdrop,
.modal-dialog,
.modal-content,
.modal.fade,
.modal.show {
    transition: none !important;
}

/* Melhorias de acessibilidade */
.btn:focus {
    box-shadow: 0 0 0 0.2rem rgba(74, 124, 89, 0.5);
}

/* Card hover effects - excluindo quando modal está aberto */
body:not(.modal-open) .card:hover {
    box-shadow: 0 0.5rem 2rem 0 rgba(74, 124, 89, 0.1);
    transform: translateY(-2px);
    transition: all 0.3s ease-in-out;
} 