:root {
    --bg: #f5f7fb;
    --text: #212529;
    --card-bg: #ffffff;
    --card-border: #dee2e6;
    --navbar-bg: #1f2933;
    --navbar-text: #ffffff;
    --subtext: rgba(255, 255, 255, 0.75);
    --table-bg: #ffffff;
    --table-border: #dee2e6;
    --link: #0d6efd;
    --muted-text: #6c757d;
    --input-placeholder: #6c757d;
    --soft-bg: #f8fafc;
    --soft-border: #e2e8f0;
}

html[data-theme="dark"] {
    --bg: #0f1720;
    --text: #f8fafc;
    --card-bg: #18212b;
    --card-border: #2b3642;
    --navbar-bg: #0b1220;
    --navbar-text: #f8fafc;
    --subtext: rgba(248, 250, 252, 0.90);
    --table-bg: #18212b;
    --table-border: #2b3642;
    --link: #93c5fd;
    --muted-text: #ffffff;
    --input-placeholder: #cbd5e1;
    --soft-bg: #111827;
    --soft-border: #334155;
}

body {
    background: var(--bg);
    color: var(--text);
}

a {
    color: var(--link);
}

.app-navbar {
    background: var(--navbar-bg);
}

.app-navbar .navbar-brand,
.app-navbar .text-white,
.app-navbar a {
    color: var(--navbar-text) !important;
}

.text-navbar-sub {
    color: var(--subtext);
    font-size: 12px;
}

.app-card,
.card {
    background: var(--card-bg);
    color: var(--text);
    border-color: var(--card-border);
}

.form-control,
.form-select,
.btn,
.page-link,
details,
summary {
    font-size: 14px;
}

.form-control,
.form-select {
    background-color: var(--card-bg);
    color: var(--text);
    border-color: var(--card-border);
}

.form-control:focus,
.form-select:focus {
    background-color: var(--card-bg);
    color: var(--text);
    border-color: var(--card-border);
    box-shadow: none;
}

.form-control::placeholder {
    color: var(--input-placeholder);
    opacity: 1;
}

.table,
.app-table {
    background: var(--table-bg);
    color: var(--text);
}

.table > :not(caption) > * > * {
    background-color: transparent;
    color: inherit;
    border-color: var(--table-border);
}

table td,
table th {
    white-space: nowrap;
    font-size: 14px;
}

.pagination .page-link {
    background-color: var(--card-bg);
    color: var(--text);
    border-color: var(--card-border);
}

.alert {
    font-size: 14px;
}

details summary {
    cursor: pointer;
}

.text-end {
    font-variant-numeric: tabular-nums;
}

html[data-theme="dark"] body,
html[data-theme="dark"] .container,
html[data-theme="dark"] .card,
html[data-theme="dark"] .card-body,
html[data-theme="dark"] .table,
html[data-theme="dark"] .table td,
html[data-theme="dark"] .table th,
html[data-theme="dark"] .form-label,
html[data-theme="dark"] .form-check-label,
html[data-theme="dark"] .page-link,
html[data-theme="dark"] .pagination,
html[data-theme="dark"] .dropdown-item,
html[data-theme="dark"] .nav-link,
html[data-theme="dark"] p,
html[data-theme="dark"] span,
html[data-theme="dark"] div,
html[data-theme="dark"] small,
html[data-theme="dark"] li,
html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4,
html[data-theme="dark"] h5,
html[data-theme="dark"] h6,
html[data-theme="dark"] label,
html[data-theme="dark"] strong,
html[data-theme="dark"] td,
html[data-theme="dark"] th {
    color: var(--text);
}

html[data-theme="dark"] .text-muted,
html[data-theme="dark"] .text-secondary,
html[data-theme="dark"] .text-body-secondary,
html[data-theme="dark"] .text-navbar-sub {
    color: var(--muted-text) !important;
    opacity: 0.92;
}

html[data-theme="dark"] .form-control,
html[data-theme="dark"] .form-select {
    color: var(--text) !important;
    background-color: #0f172a;
    border-color: #334155;
}

html[data-theme="dark"] .form-control::placeholder {
    color: var(--input-placeholder) !important;
    opacity: 1;
}

html[data-theme="dark"] .card,
html[data-theme="dark"] .table,
html[data-theme="dark"] .dropdown-menu {
    background-color: var(--card-bg) !important;
    border-color: var(--card-border) !important;
}

html[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
    color: var(--text) !important;
}

html[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(even) > * {
    color: var(--text) !important;
}

html[data-theme="dark"] .page-link {
    color: var(--text) !important;
    background-color: var(--card-bg) !important;
    border-color: var(--card-border) !important;
}

html[data-theme="dark"] .page-item.disabled .page-link {
    color: #cbd5e1 !important;
    background-color: #1e293b !important;
}

html[data-theme="dark"] .btn-outline-secondary,
html[data-theme="dark"] .btn-outline-info,
html[data-theme="dark"] .btn-outline-primary,
html[data-theme="dark"] .btn-outline-success,
html[data-theme="dark"] .btn-outline-danger {
    color: #ffffff !important;
}

html[data-theme="dark"] .btn-outline-secondary:hover,
html[data-theme="dark"] .btn-outline-info:hover,
html[data-theme="dark"] .btn-outline-primary:hover,
html[data-theme="dark"] .btn-outline-success:hover,
html[data-theme="dark"] .btn-outline-danger:hover {
    color: #ffffff !important;
}

html[data-theme="dark"] .app-table a,
html[data-theme="dark"] .card a,
html[data-theme="dark"] .container a {
    color: var(--link);
}

html[data-theme="dark"] .app-table a:hover,
html[data-theme="dark"] .card a:hover,
html[data-theme="dark"] .container a:hover {
    color: #bfdbfe;
}

html[data-theme="dark"] .alert-success {
    background-color: #163a2b !important;
    border-color: #285e45 !important;
    color: #d1fae5 !important;
}

html[data-theme="dark"] .alert-success * {
    color: #d1fae5 !important;
}

html[data-theme="dark"] .alert-danger {
    background-color: #3b1618 !important;
    border-color: #7f1d1d !important;
    color: #fecaca !important;
}

html[data-theme="dark"] .alert-danger * {
    color: #fecaca !important;
}

html[data-theme="dark"] .alert-warning {
    background-color: #3b2a12 !important;
    border-color: #92400e !important;
    color: #fde68a !important;
}

html[data-theme="dark"] .alert-warning * {
    color: #fde68a !important;
}

html[data-theme="dark"] .alert-info {
    background-color: #102a43 !important;
    border-color: #1d4ed8 !important;
    color: #dbeafe !important;
}

html[data-theme="dark"] .alert-info * {
    color: #dbeafe !important;
}

.app-table-vendas {
    table-layout: fixed;
    width: 100%;
}

.app-table-vendas th,
.app-table-vendas td {
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
    white-space: nowrap;
}

.app-table-vendas th:nth-child(1),
.app-table-vendas td:nth-child(1) {
    width: 110px;
}

.app-table-vendas th:nth-child(2),
.app-table-vendas td:nth-child(2) {
    width: 75px;
}

.app-table-vendas th:nth-child(4),
.app-table-vendas td:nth-child(4) {
    width: 110px;
}

.app-table-vendas th:nth-child(5),
.app-table-vendas td:nth-child(5) {
    width: 55px;
}

.app-table-vendas th:nth-child(6),
.app-table-vendas td:nth-child(6) {
    width: 130px;
}

.app-table-vendas th:nth-child(7),
.app-table-vendas td:nth-child(7) {
    width: 85px;
}

.app-table-vendas th:nth-child(8),
.app-table-vendas td:nth-child(8) {
    width: 150px;
}

.app-table-vendas th:nth-child(9),
.app-table-vendas td:nth-child(9) {
    width: 110px;
}

.app-table-vendas th:nth-child(10),
.app-table-vendas td:nth-child(10) {
    width: 170px;
}

.app-table-vendas .col-cliente {
    min-width: 220px;
    max-width: 320px;
}

.app-table-vendas .col-transportadora {
    min-width: 140px;
    max-width: 170px;
}

.app-table-vendas a {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}

.module-card {
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.module-card:hover {
    transform: translateY(-2px);
}

.catalogo-grid-card {
    border: 1px solid var(--card-border);
    border-radius: 12px;
    padding: 16px;
    background: var(--card-bg);
    height: 100%;
}

.catalogo-grid-card h5,
.catalogo-grid-card p,
.catalogo-grid-card small {
    color: var(--text);
}

.catalogo-grid-card .catalogo-meta {
    color: var(--muted-text);
    font-size: 13px;
}

.catalogo-owner {
    font-size: 13px;
    color: var(--muted-text);
    line-height: 1.4;
}

.catalogo-upload-box {
    border: 1px dashed var(--card-border);
    background: var(--soft-bg);
    border-radius: 12px;
    padding: 18px;
}

.catalogo-upload-row {
    display: flex;
    align-items: center;
    gap: 14px;
}

.catalogo-upload-input {
    flex: 1 1 auto;
    min-width: 0;
}

.catalogo-upload-button {
    width: 340px;
    flex: 0 0 340px;
}

.catalogo-submit-btn {
    height: 38px;
    min-height: 38px;
}

.catalogo-empty {
    border: 1px dashed var(--card-border);
    border-radius: 12px;
    padding: 32px 20px;
    text-align: center;
    background: var(--soft-bg);
}

.catalogo-table th,
.catalogo-table td {
    vertical-align: middle;
    white-space: nowrap;
}

.catalogo-table td.col-nome-arquivo,
.catalogo-table th.col-nome-arquivo {
    width: 100%;
    min-width: 240px;
}

.catalogo-table .arquivo-nome {
    display: inline-block;
    max-width: 100%;
    white-space: normal;
    word-break: break-word;
}

.catalogo-acoes {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
    min-width: 110px;
}

.catalogo-acoes .btn,
.catalogo-acoes form,
.catalogo-acoes form .btn {
    width: 110px;
}

.catalogo-acoes form {
    margin: 0;
}

.admin-user-edit-box {
    padding: 18px;
    border-top: 1px solid var(--card-border);
    background: var(--soft-bg);
}

html[data-theme="dark"] .catalogo-upload-box,
html[data-theme="dark"] .catalogo-empty,
html[data-theme="dark"] .admin-user-edit-box {
    background: var(--soft-bg);
    border-color: var(--soft-border);
}

html[data-theme="dark"] .catalogo-grid-card {
    border-color: var(--card-border);
}

@media (max-width: 991.98px) {
    .catalogo-upload-row {
        flex-direction: column;
        align-items: stretch;
    }

    .catalogo-upload-button {
        width: 100%;
        flex: 1 1 auto;
    }

    .catalogo-acoes {
        min-width: auto;
        width: 100%;
        align-items: stretch;
    }

    .catalogo-acoes .btn,
    .catalogo-acoes form,
    .catalogo-acoes form .btn {
        width: 100%;
    }
}


/* Calculadora de Custos - dropdown dark mode */
.calculadora-dropdown {
    z-index: 9999;
    max-height: 320px;
    overflow-y: auto;
    border-radius: 0.5rem;
}

.calculadora-dropdown .list-group-item {
    text-align: left;
}

html[data-theme="dark"] .calculadora-dropdown {
    background-color: #0f172a !important;
    border: 1px solid #334155 !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
}

html[data-theme="dark"] .calculadora-dropdown .list-group-item {
    background-color: #0f172a !important;
    color: #f8fafc !important;
    border-color: #334155 !important;
}

html[data-theme="dark"] .calculadora-dropdown .list-group-item *,
html[data-theme="dark"] .calculadora-dropdown .list-group-item .fw-semibold,
html[data-theme="dark"] .calculadora-dropdown .list-group-item .small,
html[data-theme="dark"] .calculadora-dropdown .list-group-item .text-muted {
    color: #f8fafc !important;
    opacity: 1 !important;
}

html[data-theme="dark"] .calculadora-dropdown .list-group-item:hover,
html[data-theme="dark"] .calculadora-dropdown .list-group-item:focus,
html[data-theme="dark"] .calculadora-dropdown .list-group-item.active {
    background-color: #1e293b !important;
    color: #ffffff !important;
}

html[data-theme="dark"] .calculadora-dropdown .list-group-item:hover *,
html[data-theme="dark"] .calculadora-dropdown .list-group-item:focus *,
html[data-theme="dark"] .calculadora-dropdown .list-group-item.active * {
    color: #ffffff !important;
    opacity: 1 !important;
}

html[data-theme="dark"] .calculadora-preco-minimo,
html[data-theme="dark"] .calculadora-preco-minimo * {
    color: #ef4444 !important;
}

html[data-theme="dark"] .calculadora-preco-medio,
html[data-theme="dark"] .calculadora-preco-medio * {
    color: #facc15 !important;
}

html[data-theme="dark"] .calculadora-preco-venda,
html[data-theme="dark"] .calculadora-preco-venda * {
    color: #22c55e !important;
}
