/* Configurações Globais e Customizações */
:root {
    /* Light mode (dia) */
    --bs-body-bg: #f8f9fa;
    --bs-body-color: #212529;
    --bs-card-bg: #ffffff;
    --bs-card-border-color: rgba(0, 0, 0, 0.125);
    
    --bs-navbar-bg: #e9ecef;
    --bs-navbar-color: #212529;
    --bs-navbar-hover-color: #000000;
    --bs-navbar-brand-color: #000000;
    --bs-navbar-border: rgba(0, 0, 0, 0.1);
    
    --bs-footer-bg: #e9ecef;
    --bs-footer-color: #495057;
    --bs-footer-border: rgba(0, 0, 0, 0.1);
    
    --bs-secondary-bg: #e9ecef;
    --bs-border-color: rgba(0, 0, 0, 0.125);
    --bs-input-bg: #ffffff;
    --bs-input-border: rgba(0, 0, 0, 0.125);
    --bs-input-color: #212529;
    --bs-dropdown-bg: #ffffff;
    --bs-dropdown-border: rgba(0, 0, 0, 0.125);
    --bs-modal-bg: #ffffff;
    --bs-modal-border: rgba(0, 0, 0, 0.125);
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(0, 0, 0, 0.03);
    --bs-table-hover-bg: rgba(0, 0, 0, 0.05);
}

[data-bs-theme="dark"] {
    /* Dark mode (noite) - mais escuro/preto */
    --bs-body-bg: #0a0a0a;
    --bs-body-color: #f0f0f0;
    --bs-card-bg: #111111;
    --bs-card-border-color: rgba(255, 255, 255, 0.08);
    
    --bs-navbar-bg: #000000;
    --bs-navbar-color: rgba(255, 255, 255, 0.9);
    --bs-navbar-hover-color: #ffffff;
    --bs-navbar-brand-color: #ffffff;
    --bs-navbar-border: rgba(255, 255, 255, 0.08);
    
    --bs-footer-bg: #000000;
    --bs-footer-color: rgba(255, 255, 255, 0.6);
    --bs-footer-border: rgba(255, 255, 255, 0.08);
    
    --bs-secondary-bg: #1a1a1a;
    --bs-border-color: rgba(255, 255, 255, 0.08);
    --bs-input-bg: #1a1a1a;
    --bs-input-border: rgba(255, 255, 255, 0.15);
    --bs-input-color: #f5f5f5;
    --bs-dropdown-bg: #111111;
    --bs-dropdown-border: rgba(255, 255, 255, 0.08);
    --bs-modal-bg: #111111;
    --bs-modal-border: rgba(255, 255, 255, 0.08);
    --bs-table-bg: transparent;
    --bs-table-striped-bg: rgba(255, 255, 255, 0.02);
    --bs-table-hover-bg: rgba(255, 255, 255, 0.04);
}

body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
    transition: background-color 0.3s ease, color 0.3s ease;
}

/* Navbar - adapta ao tema */
.navbar {
    background-color: var(--bs-navbar-bg) !important;
    border-bottom: 1px solid var(--bs-navbar-border);
}

.navbar-brand,
.navbar-nav .nav-link,
.navbar-text {
    color: var(--bs-navbar-color) !important;
}

.navbar-brand:hover,
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
    color: var(--bs-navbar-hover-color) !important;
}

.navbar-toggler {
    border-color: var(--bs-navbar-border);
}

.navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2833, 37, 41, 0.85%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

[data-bs-theme="dark"] .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.85%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Footer - adapta ao tema */
footer,
.footer {
    background-color: var(--bs-footer-bg) !important;
    border-top: 1px solid var(--bs-footer-border);
    color: var(--bs-footer-color);
}

footer a,
.footer a {
    color: var(--bs-footer-color);
}

footer a:hover,
.footer a:hover {
    color: var(--bs-navbar-hover-color);
}

/* Cards */
.card {
    background-color: var(--bs-card-bg);
    border-color: var(--bs-card-border-color);
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out, background-color 0.3s ease, border-color 0.3s ease;
}

.card-header {
    background-color: var(--bs-secondary-bg);
    border-bottom-color: var(--bs-card-border-color);
    color: var(--bs-body-color);
}

.card-footer {
    background-color: var(--bs-secondary-bg);
    border-top-color: var(--bs-card-border-color);
    color: var(--bs-body-color);
}

.card:hover {
    transform: translateY(-3px);
    box-shadow: 0 .5rem 1rem rgba(0,0,0,.15) !important;
}

/* Theme Toggle Button */
#btnThemeToggle {
    background-color: var(--bs-navbar-bg);
    color: var(--bs-navbar-color);
    border-color: var(--bs-navbar-border);
    transition: all 0.3s ease;
}

#btnThemeToggle:hover {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-navbar-hover-color);
    border-color: var(--bs-secondary-bg);
    transform: scale(1.1);
}

#btnThemeToggle:focus,
#btnThemeToggle:active {
    box-shadow: 0 0 0 0.25rem rgba(0, 0, 0, 0.15);
}

[data-bs-theme="dark"] #btnThemeToggle:focus,
[data-bs-theme="dark"] #btnThemeToggle:active {
    box-shadow: 0 0 0 0.25rem rgba(255, 255, 255, 0.15);
}

[data-bs-theme="light"] #btnThemeToggle:focus,
[data-bs-theme="light"] #btnThemeToggle:active {
    box-shadow: 0 0 0 0.25rem rgba(0, 0, 0, 0.15);
}

/* Botões Customizados */
.btn-dark {
    background-color: #212529;
    border-color: #212529;
}

.btn-dark:hover {
    background-color: #000;
    border-color: #000;
}

.btn-outline-light {
    color: var(--bs-navbar-color);
    border-color: var(--bs-navbar-color);
}

.btn-outline-light:hover {
    background-color: var(--bs-navbar-hover-color);
    border-color: var(--bs-navbar-hover-color);
    color: var(--bs-navbar-bg);
}

.btn-outline-secondary {
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}

.btn-outline-secondary:hover {
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

.btn-outline-primary {
    color: var(--bs-primary);
    border-color: var(--bs-primary);
}

/* Card Produto */
.card-produto {
    background-color: var(--bs-card-bg);
    border-color: var(--bs-card-border-color);
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

.card-produto:hover {
    transform: translateY(-5px);
    box-shadow: 0 .5rem 1.5rem rgba(0,0,0,.15)!important;
}

.card-produto:hover img {
    transform: scale(1.05);
    transition: transform 0.5s ease;
}

.card-produto img {
    transition: transform 0.5s ease;
}

/* Smooth transitions for theme change */
*, *::before, *::after {
    transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease;
}

/* Form controls theme support */
.form-control,
.form-select {
    background-color: var(--bs-input-bg);
    border-color: var(--bs-input-border);
    color: var(--bs-input-color);
}

.form-control:focus,
.form-select:focus {
    background-color: var(--bs-input-bg);
    border-color: #86b7fe;
    color: var(--bs-input-color);
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.form-control::placeholder {
    color: var(--bs-secondary-color, #6c757d);
    opacity: 0.7;
}

.form-label {
    color: var(--bs-body-color);
}

.form-text {
    color: var(--bs-secondary-color, #6c757d);
}

/* Modal theme support */
.modal-content {
    background-color: var(--bs-modal-bg);
    border-color: var(--bs-modal-border);
    color: var(--bs-body-color);
}

.modal-header {
    border-bottom-color: var(--bs-modal-border);
}

.modal-footer {
    border-top-color: var(--bs-modal-border);
}

.btn-close {
    filter: invert(0);
}

[data-bs-theme="dark"] .btn-close {
    filter: invert(1);
}

/* Dropdown theme support */
.dropdown-menu {
    background-color: var(--bs-dropdown-bg);
    border-color: var(--bs-dropdown-border);
}

.dropdown-item {
    color: var(--bs-body-color);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-body-color);
}

.dropdown-divider {
    border-top-color: var(--bs-border-color);
}

/* Table theme support */
.table {
    color: var(--bs-body-color);
    --bs-table-bg: var(--bs-table-bg);
    --bs-table-striped-bg: var(--bs-table-striped-bg);
    --bs-table-hover-bg: var(--bs-table-hover-bg);
    --bs-table-border-color: var(--bs-border-color);
}

.table-dark {
    --bs-table-bg: var(--bs-secondary-bg);
    --bs-table-color: var(--bs-body-color);
    --bs-table-border-color: var(--bs-border-color);
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: var(--bs-table-striped-bg);
}

.table-hover > tbody > tr:hover > * {
    background-color: var(--bs-table-hover-bg);
}

/* Alert theme support */
.alert {
    background-color: var(--bs-card-bg);
    border-color: var(--bs-card-border-color);
    color: var(--bs-body-color);
}

.alert-heading {
    color: var(--bs-body-color);
}

.alert-link {
    color: var(--bs-primary);
}

/* Badge theme support */
.badge {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-body-color);
}

.bg-primary { background-color: var(--bs-primary) !important; }
.bg-secondary { background-color: var(--bs-secondary) !important; }
.bg-success { background-color: var(--bs-success) !important; }
.bg-danger { background-color: var(--bs-danger) !important; }
.bg-warning { background-color: var(--bs-warning) !important; color: var(--bs-dark) !important; }
.bg-info { background-color: var(--bs-info) !important; }
.bg-light { background-color: var(--bs-light) !important; color: var(--bs-dark) !important; }
.bg-dark { background-color: var(--bs-dark) !important; }

/* Progress bar theme support */
.progress {
    background-color: var(--bs-secondary-bg);
}

/* List group theme support */
.list-group-item {
    background-color: var(--bs-card-bg);
    border-color: var(--bs-card-border-color);
    color: var(--bs-body-color);
}

.list-group-item.active {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

/* Accordion theme support */
.accordion-button {
    background-color: var(--bs-card-bg);
    color: var(--bs-body-color);
}

.accordion-button:not(.collapsed) {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-primary);
}

.accordion-button:focus {
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.accordion-body {
    background-color: var(--bs-card-bg);
}

.accordion-item {
    background-color: var(--bs-card-bg);
    border-color: var(--bs-card-border-color);
}

/* Tooltip and popover theme support */
.tooltip-inner {
    background-color: var(--bs-modal-bg);
    color: var(--bs-body-color);
}

.popover {
    background-color: var(--bs-modal-bg);
    border-color: var(--bs-modal-border);
}

.popover-header {
    background-color: var(--bs-secondary-bg);
    border-bottom-color: var(--bs-modal-border);
    color: var(--bs-body-color);
}

.popover-body {
    color: var(--bs-body-color);
}

/* Fix para bg-body-tertiary e similares do Bootstrap */
.bg-body-tertiary {
    background-color: var(--bs-secondary-bg) !important;
}

.bg-light {
    background-color: var(--bs-card-bg) !important;
}

.bg-dark {
    background-color: var(--bs-navbar-bg) !important;
}

.text-white-50 {
    color: var(--bs-footer-color) !important;
}

.text-muted {
    color: var(--bs-secondary-color, #6c757d) !important;
}

.text-dark {
    color: var(--bs-body-color) !important;
}

.text-primary {
    color: var(--bs-primary) !important;
}

/* Border utilities */
.border,
.border-top,
.border-bottom,
.border-start,
.border-end {
    border-color: var(--bs-border-color) !important;
}

.border-light {
    border-color: var(--bs-border-color) !important;
}

.border-dark {
    border-color: var(--bs-border-color) !important;
}

/* Shadow utilities */
.shadow-sm { box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; }
.shadow { box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; }
.shadow-lg { box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; }

[data-bs-theme="dark"] .shadow-sm { box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.3) !important; }
[data-bs-theme="dark"] .shadow { box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.4) !important; }
[data-bs-theme="dark"] .shadow-lg { box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.5) !important; }

/* AdminLTE specific */
.main-header.navbar {
    background-color: var(--bs-navbar-bg) !important;
    border-bottom: 1px solid var(--bs-navbar-border);
}

.main-header.navbar .nav-link {
    color: var(--bs-navbar-color) !important;
}

.main-header.navbar .nav-link:hover {
    color: var(--bs-navbar-hover-color) !important;
}

.main-header.navbar .navbar-nav .nav-link {
    color: var(--bs-navbar-color) !important;
}

.main-sidebar {
    background-color: var(--bs-navbar-bg) !important;
    border-right: 1px solid var(--bs-navbar-border);
}

.main-sidebar .nav-link {
    color: var(--bs-navbar-color) !important;
}

.main-sidebar .nav-link:hover,
.main-sidebar .nav-link.active {
    background-color: var(--bs-secondary-bg) !important;
    color: var(--bs-navbar-hover-color) !important;
}

.main-sidebar .brand-link {
    background-color: var(--bs-navbar-bg) !important;
    border-bottom: 1px solid var(--bs-border-color);
    color: var(--bs-navbar-brand-color) !important;
}

.main-sidebar .brand-link:hover {
    color: var(--bs-navbar-hover-color) !important;
}

.content-wrapper {
    background-color: var(--bs-body-bg) !important;
}

.main-footer {
    background-color: var(--bs-footer-bg) !important;
    border-top: 1px solid var(--bs-footer-border);
    color: var(--bs-footer-color);
}

.small-box {
    background-color: var(--bs-card-bg) !important;
    border: 1px solid var(--bs-card-border-color);
}

.small-box .inner h3,
.small-box .inner p {
    color: var(--bs-body-color) !important;
}

/* Sidebar nav icons */
.main-sidebar .nav-icon {
    color: inherit;
}

/* Sidebar active item */
.main-sidebar .nav-item > .nav-link.active {
    background-color: var(--bs-primary) !important;
    color: #fff !important;
}

.main-sidebar .nav-item > .nav-link.active .nav-icon {
    color: #fff !important;
}

/* AdminLTE control sidebar */
.control-sidebar {
    background-color: var(--bs-card-bg) !important;
    border-left: 1px solid var(--bs-card-border-color);
}

/* AdminLTE login page - FORÇA TEMA ESCURO */
html[data-bs-theme="dark"] .login-page,
body[data-bs-theme="dark"] .login-page,
.login-page {
    background-color: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
}

html[data-bs-theme="dark"] .login-page .card,
body[data-bs-theme="dark"] .login-page .card,
.login-page .card {
    background-color: var(--bs-card-bg) !important;
    border-color: var(--bs-card-border-color) !important;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.4) !important;
}

html[data-bs-theme="dark"] .login-page .card-body,
body[data-bs-theme="dark"] .login-page .card-body,
.login-page .card-body {
    background-color: var(--bs-card-bg) !important;
}

html[data-bs-theme="dark"] .login-page .login-logo a,
html[data-bs-theme="dark"] .login-page .login-box-msg,
html[data-bs-theme="dark"] .login-page .login-box-msg.text-body,
html[data-bs-theme="dark"] .login-page .card-body .login-box-msg,
body[data-bs-theme="dark"] .login-page .login-logo a,
body[data-bs-theme="dark"] .login-page .login-box-msg,
body[data-bs-theme="dark"] .login-page .login-box-msg.text-body,
body[data-bs-theme="dark"] .login-page .card-body .login-box-msg,
.login-page .login-logo a,
.login-page .login-box-msg,
.login-page .login-box-msg.text-body,
.login-page .card-body .login-box-msg {
    color: var(--bs-body-color) !important;
}

html[data-bs-theme="dark"] .login-page .form-control,
body[data-bs-theme="dark"] .login-page .form-control,
.login-page .form-control {
    background-color: var(--bs-input-bg) !important;
    border-color: var(--bs-input-border) !important;
    color: var(--bs-input-color) !important;
}

html[data-bs-theme="dark"] .login-page .input-group-text,
body[data-bs-theme="dark"] .login-page .input-group-text,
.login-page .input-group-text {
    background-color: var(--bs-secondary-bg) !important;
    border-color: var(--bs-input-border) !important;
    color: var(--bs-body-color) !important;
}

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

html[data-bs-theme="dark"] .login-page a,
body[data-bs-theme="dark"] .login-page a,
.login-page a {
    color: var(--bs-primary) !important;
}

html[data-bs-theme="dark"] .login-page a:hover,
body[data-bs-theme="dark"] .login-page a:hover,
.login-page a:hover {
    color: var(--bs-primary) !important;
    opacity: 0.8;
}

/* AdminLTE register page (se existir) */
.register-page {
    background-color: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
}

.register-page .card {
    background-color: var(--bs-card-bg) !important;
    border-color: var(--bs-card-border-color) !important;
}

/* Fix text colors em badges e labels */
.text-white { color: #ffffff !important; }
.text-dark { color: var(--bs-body-color) !important; }

/* Hero banner overlay */
.hero-content-overlay {
    background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.5) 70%, transparent 100%);
}

/* Preço e categoria cards */
.preco-card,
.categoria-card {
    box-shadow: 0 10px 25px rgba(0,0,0,.30);
}

/* Input group */
.input-group-text {
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-input-border);
    color: var(--bs-body-color);
}

/* Pagination */
.page-link {
    background-color: var(--bs-card-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-primary);
}

.page-link:hover {
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-primary);
}

.page-item.active .page-link {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

.page-item.disabled .page-link {
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-secondary-color);
}

/* Nav tabs/pills */
.nav-tabs .nav-link {
    color: var(--bs-body-color);
    border-color: transparent transparent var(--bs-border-color);
}

.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus {
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-primary);
    color: var(--bs-primary);
}

.nav-tabs .nav-link.active {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);
    color: var(--bs-primary);
}

.nav-pills .nav-link {
    color: var(--bs-body-color);
}

.nav-pills .nav-link.active {
    background-color: var(--bs-primary);
    color: #fff;
}

/* Breadcrumb */
.breadcrumb {
    background-color: var(--bs-secondary-bg);
}

.breadcrumb-item + .breadcrumb-item::before {
    color: var(--bs-secondary-color);
}

/* Form floating labels */
.form-floating > label {
    color: var(--bs-secondary-color);
}

.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label {
    color: var(--bs-primary);
}

/* Code/pre */
code, pre, kbd, samp {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-body-color);
}

pre {
    border: 1px solid var(--bs-border-color);
}

/* Horizontal rule */
hr {
    border-top-color: var(--bs-border-color);
}

/* Mark */
mark {
    background-color: var(--bs-warning);
    color: var(--bs-dark);
}

/* Blockquote */
blockquote {
    border-left-color: var(--bs-primary);
    color: var(--bs-secondary-color);
}