trasa/* FILE: static/css/custom_styles.css */

/* --- AJUSTE ESPAÇAMENTO NAVEGAÇÃO PRINCIPAL (Margem nos LI) --- */
header ul.nav li > a.btn { padding: 0.25rem 1.2rem !important; margin-left: 0; margin-right: 0; }
header ul.nav.col-md-auto { gap: 0.5rem; }

/* ===================================================== */
/* === ESTILOS PARA CHOICES.JS === */
/* ===================================================== */
.render-title-filter-bar .choices { position: relative; margin-bottom: 0 !important; font-size: inherit; /* min-width removido daqui, controlado pela classe wrapper */ flex-grow: 1; display: inline-flex; vertical-align: middle; }

.render-title-filter-bar .choices .choices__inner { box-sizing: border-box; display: flex !important; align-items: left !important; min-height: calc(1.5rem + 0.5rem + 2px) !important; height: calc(1.5rem + 0.5rem + 2px) !important; padding: 0.1rem 0.5rem !important; font-size: 0.875rem !important; line-height: 1.5 !important; background-color: var(--bs-body-bg) !important; border: var(--bs-border-width) solid var(--bs-border-color) !important; border-radius: var(--bs-border-radius-sm) !important; overflow: hidden !important; transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; width: 100% !important; text-align: left !important; }
.render-title-filter-bar .choices.is-focused .choices__inner { border-color: #86b7fe !important; box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25) !important; }
.render-title-filter-bar .choices .choices__inner .choices__list--multiple { box-sizing: border-box; display: flex !important; flex-wrap: nowrap !important; align-items: right !important; width: 100%; padding: 0 !important; margin: 0 !important; overflow: hidden !important; height: 100% !important; text-align: right !important; justify-content: flex-start !important; white-space: normal; line-height: inherit; }
.render-title-filter-bar .choices .choices__inner .choices__placeholder { line-height: inherit !important; padding: 0 !important; margin: 0 !important; color: var(--bs-secondary-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex-grow: 0 !important; flex-shrink: 0 !important; margin-right: 0.5rem !important; text-align: left !important; }
.render-title-filter-bar .choices .choices__input--cloned { font-size: inherit !important; margin: 0 !important; padding: 0 !important; height: 100% !important; background-color: transparent !important; line-height: inherit !important; flex-grow: 1; min-width: 50px; border: none !important; outline: none !important; box-shadow: none !important; }
.render-title-filter-bar .choices .choices__list--multiple .choices__item { margin: 0.1rem 0.3rem 0.1rem 0; padding: 0.1rem 0.4rem !important; font-size: 0.8em !important; line-height: 1.2; height: auto; background-color: var(--bs-secondary-bg-subtle) !important; border: 1px solid var(--bs-secondary-border-subtle) !important; border-radius: var(--bs-border-radius-sm) !important; color: var(--bs-emphasis-color) !important; white-space: nowrap; display: flex; align-items: center; flex-shrink: 0; }
.render-title-filter-bar .choices .choices__item .choices__button { filter: grayscale(50%); opacity: 0.7; margin-left: 4px; padding: 0; width: 10px; height: 10px; }
.render-title-filter-bar .choices .choices__item .choices__button:hover { filter: grayscale(0%); opacity: 1; }
.render-title-filter-bar .choices.is-focused .choices__inner,
.render-title-filter-bar .choices.is-open .choices__inner,
.render-title-filter-bar .choices:has(.choices__item) .choices__inner { height: auto !important; min-height: calc(1.5rem + 0.5rem + 2px) !important; overflow: visible !important; }
.render-title-filter-bar .choices.is-focused .choices__inner .choices__list--multiple,
.render-title-filter-bar .choices.is-open .choices__inner .choices__list--multiple,
.render-title-filter-bar .choices:has(.choices__item) .choices__inner .choices__list--multiple { flex-wrap: wrap !important; overflow: visible !important; height: auto !important; }
.render-title-filter-bar .choices.is-focused .choices__placeholder,
.render-title-filter-bar .choices.is-open .choices__placeholder,
.render-title-filter-bar .choices:has(.choices__item) .choices__placeholder { display: none !important; }
.choices__list--dropdown { z-index: 1056 !important; font-size: 0.9rem; padding-top: 0.1rem; padding-bottom: 0.3rem; border-radius: var(--bs-border-radius-sm); border-color: var(--bs-border-color); box-shadow: var(--bs-box-shadow-sm); margin-top: 1px; }
.choices__list--dropdown .choices__item--selectable {
    font-size: 0.9rem; /* Tamanho da fonte */
    padding-top: 0.1rem;    /* Espaçamento acima do texto do item (padrão pode ser ~0.5rem) */
    padding-bottom: 0.3rem; /* Espaçamento abaixo do texto do item */
    padding-left: 1rem;     /* Espaçamento à esquerda */
    padding-right: 1rem;    /* Espaçamento à direita */
    /* line-height: 1.4; */ /* Pode ajustar a altura da linha também, se necessário */
}
.choices__list--dropdown .choices__item--selectable.is-highlighted { background-color: var(--bs-primary) !important; color: white !important; }
/*.choices__list--dropdown .choices__input { padding: 0.3rem 0.75rem; font-size: 0.875rem; border-color: var(--bs-border-color); border-radius: var(--bs-border-radius-sm); background-color: var(--bs-body-bg); margin: 3px; width: calc(100% - 6px); }
/* === FIM ESTILOS CHOICES.JS === */

/* ===================================================== */
/* === ESPAÇAMENTO EXTRA PARA BOTÕES EM BARRAS/GRUPOS === */
/* ===================================================== */
.filter-group-end > .btn + .btn { margin-left: 0.5rem; }

/* --- Estilos Gerais Cards --- */
.card .card-header { font-weight: 500; color: #495057; background-color: #e9ecef; padding: 0.6rem 1rem; font-size: 0.90rem; border-bottom: 1px solid rgba(0,0,0,.125); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.card-footer { padding: 0.5rem 1rem; font-size: 0.75rem; background-color: #f8f9fa; border-top: 1px solid rgba(0,0,0,.125); }
.card-value-main { font-weight: 600; font-size: 1.3rem; line-height: 1.3; }

/* --- Cores Positivo/Negativo/Info --- */
.positivo { color: #198754 !important; }
.negativo { color: #dc3545 !important; }
.text-info { color: #0dcaf0 !important; }

/* --- Estilos Cards Multi-Linha --- */
.multi-line-card .card-body { padding: 0.7rem 1rem; }
.multi-line-card .value-section { margin-bottom: 0.4rem; }
.multi-line-card .value-section:last-child { margin-bottom: 0; }
.multi-line-card .value-label { font-size: 0.75em; color: #6c757d; display: block; margin-bottom: 0.1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.multi-line-card .card-value { font-size: 1.15rem; font-weight: 600; }
.multi-line-card .sub-value { font-size: 0.8em; font-weight: normal; margin-left: 0.3em; }
.multi-line-card hr { margin-top: 0.3rem; margin-bottom: 0.3rem; width: 80%; margin-left: auto; margin-right: auto; border-top: 1px solid rgba(0, 0, 0, 0.1); }
.dividend-card .fa-info-circle { color: #6c757d; cursor: help; }

/* --- Layout e Highlight --- */
.row.row-deck > [class*='col-'] { display: flex; flex-direction: column; }
.row.row-deck > [class*='col-'] > .card { flex: 1 1 auto; }
.update-highlight-bg { background-color: #fff3cd !important; transition: background-color 0.5s ease; }

/* --- ESTILOS GRÁFICOS E CONTAINERS --- */
.chart-responsive-container { position: relative; width: 100%; padding-top: 56.25%; }
.chart-container-evolution { position: relative; width: 100%; height: 285px; }
.chart-container-modal-grafico {position: relative; width: 100%; height: 65vh; min-height: 450px; }
.chart-container-allocation-bar { position: relative; width: 100%; height: 662px; }
.chart-container-allocation-pie { position: relative; width: 100%; height: 280px; }
.chart-placeholder { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; background-color: rgba(255, 255, 255, 0.8); z-index: 10; text-align: center; padding: 1rem; border-radius: inherit; color: #6c757d; }
.chart-placeholder .spinner-border { margin-bottom: 0.5rem; }
.chart-placeholder .placeholder-message { margin-top: 0.5rem; font-size: 0.9em; }
.chart-placeholder.error-state { color: #dc3545; }
.chart-selector-dash { margin-left: auto; }

/* --- Estilos Tabelas e Ações --- */
.action-link, .delete-button { background: none; border: none; padding: 0.1rem 0.3rem; margin: 0 0.1rem; cursor: pointer; color: #6c757d; font-size: 0.9em; vertical-align: middle; }
.action-link:hover { color: #0d6efd; }
.delete-button:hover { color: #dc3545; }
.delete-form { display: inline-block; margin: 0; padding: 0; }
.dt-purchase-row { background-color: #f8f9fa !important; font-style: italic; font-size: 0.9em; }
.dt-purchase-row td { padding-top: 0.2rem; padding-bottom: 0.2rem; }

/* ================================================= */
/* === PARÂMETROS PADRÃO PARA TABELAS === */
/* ================================================= */
.table-standard-params th,
.table-standard-params td { padding-top: 0.1rem; padding-bottom: 0.1rem; padding-left: 0.3rem; padding-right: 0.3rem; vertical-align: middle; font-size: 0.9rem; }
.table-standard-params thead th {} /* Estilos opcionais thead */
.table-standard-params thead th[data-sort-by] { cursor: pointer; position: relative; padding-right: 20px; }
.table-standard-params thead th .sort-icon { position: absolute; right: 5px; top: 0.5em; font-size: 0.8em; color: #adb5bd; opacity: 0.5; transition: opacity 0.2s ease-in-out; }
.table-standard-params thead th.sort-asc .sort-icon,
.table-standard-params thead th.sort-desc .sort-icon { opacity: 1; color: #000; }
.table-standard-params tfoot td { white-space: nowrap; font-weight: 500; }
.table-standard-params input.form-control-sm,
.table-standard-params select.form-select-sm { font-size: 0.8rem; padding: 0.15rem 0.3rem; height: auto; }
.table-standard-params .input-group-sm .input-group-text { padding: 0.15rem 0.3rem; font-size: 0.8rem; }

/* === FIM DOS PARÂMETROS PADRÃO PARA TABELAS === */

/* ============================================================== */
/* === ESTILOS (Movidos de <style> e style="..." inline) === */
/* ============================================================== */

/* --- Estilos Tabelas de Adição em Lote (adicionar_lote.html, adicionar_dividendos_lote.html) --- */
.table-lote th, .table-lote td { vertical-align: middle; padding: 0.4rem 0.5rem; font-size: 0.9rem; }
.table-lote input, .table-lote select { padding: 0.25rem 0.4rem; font-size: 0.9rem; height: calc(1.5em + 0.5rem + 2px); width: 100%; min-width: 70px; border: 1px solid #ced4da; border-radius: 0.25rem; }
.table-lote input.is-invalid, .table-lote select.is-invalid { border-color: #dc3545; }
.table-lote input[type=number] { text-align: right; }
.table-lote td.lote-actions-cell { text-align: center; padding-top: 0.5rem; width: 60px; }
.table-lote .lote-remove-btn { color: #dc3545; background: none; border: none; padding: 0.1rem 0.4rem; font-size: 1rem; line-height: 1; cursor: pointer; vertical-align: middle; }
.table-lote .lote-remove-btn:hover { color: #a71d2a; }
.table-lote .lote-required-label::after { content: " *"; color: red; }
.table-lote .lote-error-row { --bs-table-bg: #f8d7da; --bs-table-border-color: #f5c2c7; --bs-table-color: #58151c; }
.table-lote .form-label { display: none; }
.table-lote .invalid-feedback { font-size: 0.8em; display: block; width: 100%; margin-top: 0.1rem; }

/* --- Estilos Gráfico Consolidado Dividendos (consolidado_dividendos.html) --- */
.chart-container-consolidado { position: relative; margin: auto; height: 60vh; width: 90vw; max-width: 900px; min-height: 300px; }
.chart-container-consolidado canvas { display: block; width: 100% !important; height: 100% !important; }
.chart-header-form .form-select-sm, .chart-header-form .btn-sm { font-size: 0.8rem; }
.chart-header-form { margin-bottom: 0 !important; }
.chart-header-total { font-size: 0.9rem; }

/* --- Estilos Página Dados Online (dados_online.html) --- */
#dadosOnlineTable .preco-atual { font-weight: bold; background-color: #e9ecef; }

/* --- Estilos Card Resumo Lucro Realizado (lucro_realizado.html) --- */
.summary-card-label { font-size: 1.2rem; }
.summary-card-value { font-size: 1.4rem; }

/* --- Estilos Info Cards (transacoes_por_ativo.html) --- */
.info-card .card-body { padding: 0.8rem 1rem; }
.info-card .row > div { margin-bottom: 0.5rem; }
.info-card dt.info-card-dt { font-weight: 500; color: #6c757d; font-size: 0.85em; }
.info-card dd.info-card-dd { margin-bottom: 0; font-size: 0.95em; }
/* --- Ajuste Fonte Label Métricas Compactas --- */
#compact-metrics-card .metric-item-vertical span.text-muted {
    font-size: 1.2em; /* Valor padrão é herdado (small). Ajuste conforme necessário (ex: 0.75em, 0.9em, 10px) */
    /* Outras propriedades opcionais: */
    /* font-weight: 500; */ /* Se quiser um pouco mais de negrito */
    /* line-height: 1.2; */ /* Ajustar altura da linha se necessário */
}


/* ============================================================== */
/* === CLASSES GENÉRICAS PARA LARGURA DE FILTROS === */
/* ============================================================== */

/* Define larguras usando classes genéricas no DIV container */
.filter-container {
    /* display: inline-block; */ /* O flex na barra de filtros já cuida disso */
    /* vertical-align: middle; */ /* O flex na barra de filtros já cuida disso */
}

.form-control {
    margin-bottom: 0 !important;
	margin-top: 0 !important;
}

.form-check {
    margin-bottom: 0 !important;
	margin-top: 0 !important;
}


/* Classes para inputs/selects padrão DENTRO do .filter-container */
.filter-container.filter-width-xs input,
.filter-container.filter-width-xs select { min-width: 80px; width: 80px; }
.filter-container.filter-width-sm input,
.filter-container.filter-width-sm select { min-width: 90px; width: 90px; }
.filter-container.filter-width-md input,
.filter-container.filter-width-md select { min-width: 140px; width: 140px; }
.filter-container.filter-width-lg input,
.filter-container.filter-width-lg select { min-width: 180px; width: 180px; }
.filter-container.filter-width-xl input,
.filter-container.filter-width-xl select { min-width: 220px; width: 220px; }
.filter-container.filter-width-xxl input,
.filter-container.filter-width-xxl select { min-width: 260px; width: 260px; }
.filter-container.filter-width-extra-large input,
.filter-container.filter-width-extra-large select { min-width: 400px; width: 400px; }

/* Ajustes específicos para o container .choices DENTRO do .filter-container */
.filter-container.filter-width-xs .choices { min-width: 80px; width: 80px; flex-grow: 0 !important; }
.filter-container.filter-width-sm .choices { min-width: 90px; width: 90px; flex-grow: 0 !important; }
.filter-container.filter-width-md .choices { min-width: 140px; width: 140px; flex-grow: 0 !important; }
.filter-container.filter-width-lg .choices { min-width: 180px; width: 180px; flex-grow: 0 !important; }
.filter-container.filter-width-xl .choices { min-width: 220px; width: 220px; flex-grow: 0 !important; }
.filter-container.filter-width-xxl .choices { min-width: 260px; width: 260px; flex-grow: 0 !important; }
.filter-container.filter-width-extra-large .choices { min-width: 800px; width: 800px; flex-grow: 0 !important; }

/* Classe para filtros que DEVEM crescer (substitui width fixo por flex-grow) */
.filter-container.filter-width-grow { flex-grow: 1; min-width: 150px; /* Largura mínima para não colapsar */ }
/* Garante que o input/select/choices ocupe o espaço do container flexível */
.filter-container.filter-width-grow input,
.filter-container.filter-width-grow select,
.filter-container.filter-width-grow .choices { width: 100%; }

/* --- FIM CLASSES LARGURA FILTROS --- */

/* FILE: static/css/custom_styles.css */
/* ... (outros estilos) ... */

/* ============================================================== */
/* === ESTILOS ESPECÍFICOS PARA DROPDOWN 'SINAIS DE MERCADO' === */
/* ============================================================== */

/* Alvo: Itens selecionáveis DENTRO da lista dropdown
   QUANDO o elemento pai .choices está DENTRO do wrapper '.filter-wrapper-filtro_sinais' */
.filter-wrapper-filtro_sinais .choices__list--dropdown .choices__item--selectable {
    font-size: 0.9rem !important;    /* Tamanho da fonte menor */
    padding-top: 0.2rem !important;  /* Espaçamento vertical menor */
    padding-bottom: 0.2rem !important;
    /* Manter padding horizontal ou ajustar se necessário */
    padding-left: 0.8rem !important;
    padding-right: 0.8rem !important;
    line-height: 1.3 !important;    /* Ajustar altura da linha */
    white-space: normal !important; /* Permitir quebra de linha */
}

/* ============================================================== */
/* === CORREÇÕES DE SOBREPOSIÇÃO (Z-INDEX) === */
/* ============================================================== */

/* Garante que o menu dropdown de Configurações fique acima de outros elementos */
/* O valor 1056 é maior que o z-index padrão de muitos componentes Bootstrap,
   como sticky-top (1020) e alguns modais/offcanvas. Ajuste se necessário. */
#dropdownConfig + .dropdown-menu {
    z-index: 1056;
}
header .dropdown-menu {
    z-index: 1060; /* Valor alto, maior que modals (1055), offcanvas (1045), sticky-top (1020) */
}
/* --- FIM CORREÇÕES Z-INDEX --- */


/* ============================================================== */
/* === ESTILOS PÁGINA GERENCIAR PORTFÓLIO === */
/* ============================================================== */

/* Reduz o padding vertical dos itens da lista de gerenciamento de portfólio */
.portfolio-management-list .list-group-item {
    padding-top: 0.15rem;    /* Reduzido (valor padrão costuma ser 0.5rem ou 1rem) */
    padding-bottom: 0.15rem; /* Reduzido */
}

/* --- FIM ESTILOS PÁGINA GERENCIAR PORTFÓLIO --- */

/* Ajustes para ícones na coluna de sinais */
.coluna-sinais {
    min-width: 80px; /* Pode reduzir um pouco se só tiver ícones */
    vertical-align: middle; /* Garante alinhamento vertical */
}


/* ============================================================== */
/* === ESTILOS PARA ÍCONES === */
/* ============================================================== */

/* Estilo base para os ícones de sinal */
.coluna-sinais i[data-sinal-key] {
    font-size: 1.1em;      /* Tamanho do ícone */
    cursor: help;          /* Indica que há tooltip */
    /* A cor é definida pela classe específica (text-success, text-danger, etc.) */
    /* A margem (mx-1) já foi adicionada no JS */
}

/* Adiciona/Ajusta cores se necessário (as classes text-* do Bootstrap já devem funcionar) */
.sinal-compra-icon { color: #198754 !important; } /* Exemplo, se não usar text-success */
.sinal-venda-icon { color: #dc3545 !important; } /* Exemplo, se não usar text-danger */
.sinal-info-icon { color: #0dcaf0 !important; } /* Exemplo, se não usar text-info */
.sinal-warning-icon { color: #ffc107 !important; } /* Exemplo, se não usar text-warning */

/* START: ICON_COLLECTION_CSS */

/* Base class for all icons using this method */
.icon::before {
    display: inline-block; /* Allows margin/padding */
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* Define a fonte padrão do Font Awesome e o peso (900 para Solid) */
    font-family: "Font Awesome 6 Free"; /* Ou "Font Awesome 6 Solid" se usar a versão específica */
    font-weight: 900; /* 900 para Solid, 400 para Regular */
    margin-right: 0.3em; /* Espaçamento padrão após o ícone */
}

/* --- Specific Icon Definitions (Organized & Single Line) --- */
/* START: ICON_COLLECTION_CSS (Expanded & Organized) */

/* Base class for all icons using this method */
.icon::before {
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-family: "Font Awesome 6 Free";
    font-weight: 900; /* Solid Style */
    margin-right: 0.3em;
}

/* --- Specific Icon Definitions --- */
.icon-add::before, .icon-plus::before { content: "\2b"; }              /* fas fa-plus */
.icon-angles-down::before { content: "\f103"; }                        /* fas fa-angles-down */
.icon-angles-up::before { content: "\f102"; }                          /* fas fa-angles-up */
.icon-arrow-up-right-dots::before { content: "\e4b7"; }                /* fas fa-arrow-up-right-dots */
.icon-arrow-down::before { content: "\f063"; }                         /* fas fa-arrow-down */
.icon-arrow-left::before, .icon-back::before { content: "\f060"; }     /* fas fa-arrow-left */
.icon-arrow-right::before, .icon-next::before { content: "\f061"; }    /* fas fa-arrow-right */
.icon-arrow-trend-down::before { content: "\e097"; }                   /* fas fa-arrow-trend-down */
.icon-arrow-trend-up::before { content: "\e098"; }                     /* fas fa-arrow-trend-up */
.icon-arrow-up::before { content: "\f062"; }                           /* fas fa-arrow-up */
.icon-building::before { content: "\f1ad"; }                           /* fas fa-building (FIIs) */
.icon-bullseye::before, .icon-target::before { content: "\f140"; }     /* fas fa-bullseye */
.icon-briefcase::before { content: "\f0b1"; }                          /* fas fa-briefcase (Portfolio) */
.icon-calculator::before { content: "\f1ec"; }                         /* fas fa-calculator */
.icon-calendar::before, .icon-calendar-days::before { content: "\f073"; } /* fas fa-calendar-days */
.icon-calendar-check::before { content: "\f274"; }                     /* fas fa-calendar-check */
.icon-cancel::before, .icon-close::before, .icon-xmark::before { content: "\f00d"; } /* fas fa-times / fa-xmark */
.icon-chart-area::before { content: "\f1fe"; }                         /* fas fa-chart-area */
.icon-chart-bar::before { content: "\f080"; }                          /* fas fa-chart-bar */
.icon-chart-line::before { content: "\f201"; }                         /* fas fa-chart-line */
.icon-chart-pie::before { content: "\f200"; }                          /* fas fa-chart-pie */
.icon-check::before { content: "\f00c"; }                              /* fas fa-check */
.icon-check-circle::before, .icon-success::before { content: "\f058"; } /* fas fa-check-circle */
.icon-clock::before, .icon-time::before { content: "\f017"; }          /* fas fa-clock */
.icon-clear::before, .icon-erase::before { content: "\f12d"; }         /* fas fa-eraser */
.icon-config::before, .icon-gear::before { content: "\f013"; }         /* fas fa-cog / fa-gear */
.icon-copy::before { content: "\f0c5"; }                               /* fas fa-copy */
.icon-database::before { content: "\f1c0"; }                           /* fas fa-database */
.icon-delete::before, .icon-trash::before { content: "\f2ed"; }        /* fas fa-trash-can */
.icon-dollar-sign::before { content: "\f155"; }                        /* fas fa-dollar-sign */
.icon-download::before { content: "\f019"; }                           /* fas fa-download */
.icon-edit::before, .icon-pen::before { content: "\f044"; }            /* fas fa-pen-to-square */
.icon-exchange::before { content: "\f362"; }                           /* fas fa-exchange-alt (Transactions) */
.icon-exclamation-circle::before { content: "\f06a"; }                 /* fas fa-exclamation-circle */
.icon-exclamation-triangle::before, .icon-warning::before { content: "\f071"; } /* fas fa-exclamation-triangle */
.icon-external-link::before { content: "\f35d"; font-size: 0.85em; vertical-align: middle; } /* fas fa-external-link-alt */
.icon-eye::before { content: "\f06e"; }                                /* fas fa-eye (Show) */
.icon-eye-slash::before { content: "\f070"; }                          /* fas fa-eye-slash (Hide) */
.icon-file::before { content: "\f15b"; }                               /* fas fa-file */
.icon-file-excel::before { content: "\f1c3"; }                         /* fas fa-file-excel */
.icon-file-invoice-dollar::before { content: "\f571"; }                /* fas fa-file-invoice-dollar (VP Lote) */
.icon-filter::before { content: "\f0b0"; }                             /* fas fa-filter */
.icon-hand-holding-dollar::before { content: "\f4c0"; }                /* fas fa-hand-holding-dollar (Dividends) */
.icon-home::before, .icon-house::before { content: "\f015"; }          /* fas fa-house */
.icon-info::before { content: "\f129"; }                               /* fas fa-info */
.icon-info-circle::before { content: "\f05a"; }                        /* fas fa-info-circle */
.icon-key::before, .icon-password::before { content: "\f084"; }        /* fas fa-key */
.icon-list::before { content: "\f03a"; }                               /* fas fa-list */
.icon-lock::before { content: "\f023"; }                               /* fas fa-lock */
.icon-login::before { content: "\f2f6"; }                              /* fas fa-sign-in-alt */
.icon-logout::before { content: "\f2f5"; }                             /* fas fa-sign-out-alt */
.icon-paste::before { content: "\f0ea"; }                              /* fas fa-paste */
.icon-percent::before { content: "\f295"; }                            /* fas fa-percent */
.icon-question-circle::before, .icon-help::before { content: "\f059"; } /* fas fa-question-circle */
.icon-refresh::before, .icon-reload::before { content: "\f2f9"; }      /* fas fa-rotate-right / fa-redo */
.icon-save::before { content: "\f0c7"; }                               /* fas fa-save */
.icon-search::before { content: "\f002"; }                             /* fas fa-search / fa-magnifying-glass */
.icon-satellite-dish::before { content: "\f7c0"; }                     /* fas fa-satellite-dish (Online Data) */
.icon-sack-dollar::before { content: "\f81d"; }                        /* fas fa-sack-dollar (Profit/Loss) */
.icon-sliders::before { content: "\f1de"; }                            /* fas fa-sliders-h */
.icon-sort::before { content: "\f0dc"; }                               /* fas fa-sort */
.icon-sort-down::before { content: "\f0dd"; }                          /* fas fa-sort-down */
.icon-sort-up::before { content: "\f0de"; }                            /* fas fa-sort-up */
.icon-table::before { content: "\f0ce"; }                              /* fas fa-table */
.icon-tags::before { content: "\f02c"; }                               /* fas fa-tags */
.icon-tasks::before { content: "\f0ae"; }                              /* fas fa-tasks (Alocação) */
.icon-undo::before, .icon-rotate-left::before { content: "\f2ea"; }    /* fas fa-rotate-left / fa-undo */
.icon-unlock::before { content: "\f09c"; }                             /* fas fa-unlock */
.icon-upload::before { content: "\f093"; }                             /* fas fa-upload */
.icon-user::before { content: "\f007"; }                               /* fas fa-user */
.icon-user-check::before { content: "\f4fc"; }                         /* fas fa-user-check (Meu Portfolio) */
.icon-user-plus::before { content: "\f234"; }                          /* fas fa-user-plus (Register) */
.icon-wallet::before { content: "\f555"; }                             /* fas fa-wallet (Saldo) */
.icon-comments-dollar::before { content: "\f653";}                     /* fas fa-comments-dollar */
.icon-pvp-down::before { content: "\f0a7";}                            /* fas fa-hand-point-down */
.icon-pvp-up::before { content: "\f25a";}                              /* fas fa-hand-pointer */
.icon-cross::before {content: "\f074";}                                /* fas fa-shuffle */
.icon-turn-down::before { content: "\f3be";}                           /* fas fa-turn-down */
.icon-turn-up::before { content: "\f3bf";}                             /* fas fa-turn-up */
.icon-chart-column::before { content: "\e0e3";}                        /* fas fa-chart-column */
.icon-cloud-arrow-down::before { content: "\f0ed"; }                   /* fas fa-cloud-arrow-down */
.icon-money-check-dollar::before { content: "\f53d"; }                 /* fas fa-money-check-dollar */
.icon.icon-regular::before { font-weight: 400 !important; }            /* Força o peso para Regular */

/* --- Modifiers --- */
.icon-fw::before { width: 1.25em; text-align: center; }
.icon-no-margin::before { margin-right: 0; }
/* END: ICON_COLLECTION_CSS (Expanded & Organized) */


/* START: REDUCE_HEIGHT_LOTE_CHOICES */
/* Reduz a altura dos selects Choices.js dentro das tabelas de lote */
.table-lote .choices .choices__inner {
    min-height: calc(1.3em + 0.4rem + 2px) !important; /* Reduzido (era 1.5em + 0.5rem) */
    height: calc(1.3em + 0.4rem + 2px) !important;     /* Reduzido */
    font-size: 0.85rem !important;                     /* Levemente reduzido */
    padding-top: 0.1rem !important;                   /* Padding vertical reduzido */
    padding-bottom: 0.1rem !important;
}

/* Ajusta a altura do placeholder e dos itens selecionados */
.table-lote .choices .choices__inner .choices__list--single .choices__item,
.table-lote .choices .choices__inner .choices__placeholder {
    line-height: 1.3 !important; /* Ajusta line-height */
    padding-top: 0.1rem !important;
    padding-bottom: 0.1rem !important;
}

/* Ajusta o tamanho do botão de remover (se usar single select com opção de remover) */
.table-lote .choices .choices__button {
    height: 18px !important;
    width: 18px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    background-size: 9px !important; /* Reduz tamanho do ícone X */
}
/* END: REDUCE_HEIGHT_LOTE_CHOICES */

/* START: STYLES_POSICAO_ATIVOS_PAGE_INTEGRATED */
/* Cores Grupo Data Com - Tabela Posição Ativos */
.grupo1-cor-normal { color: #228B22 !important; }
.grupo1-cor-zero { color: #96d496 !important; }
.grupo2-cor-normal { color: #4682B4 !important; }
.grupo2-cor-zero { color: #aac8e3 !important; }
.grupo3-cor-normal { color: #ff8400 !important; }
.grupo3-cor-zero { color: #e3c6ac !important; }
.grupo-sem-cor-zero { color: #A9A9A9 !important; }

/* START: ADJUST_FILTER_BAR_BOTTOM_MARGIN */
/* Reduz a margem inferior da barra de título/filtros principal */
.render-title-filter-bar {
    margin-bottom: 1rem !important; /* Sobrescreve o mb-3 (1rem) padrão. Ajuste o valor conforme necessário (ex: 0.25rem, 0.75rem) */
}
/* END: ADJUST_FILTER_BAR_BOTTOM_MARGIN */

/* Modal Simulação Compra - Posição Ativos */
#buySimulationModal .modal-body {
    max-height: 60vh;
    overflow-y: auto;
}

/* Barra de Controles de Simulação - Posição Ativos */
.simulation-controls-bar {
    padding: 0.2rem 0.75rem;
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-radius: 0.25rem;
    margin-bottom: 0.5rem; /* Espaçamento reduzido */
}

/* Feedback de Salvamento - Posição Ativos (Ajuste e :empty) */
#save-feedback {
    min-height: 0.5rem;
    margin-bottom: 0.5rem;
}
#save-feedback:empty {
    min-height: 0;
    margin-bottom: 0; /* Remove margem quando vazio */
}
/* As classes .pvp-* já existem no seu CSS */
/* Os estilos de ícones e .coluna-sinais também já existem */
/* END: STYLES_POSICAO_ATIVOS_PAGE_INTEGRATED */

/* --- Coluna Sell Price (Posição Ativos) --- */
.table th.col-sell-price,
.table td.col-sell-price {
    width: 55px !important; /* Ou outra largura desejada */
    min-width: 55px;
    text-align: right !important;
    white-space: nowrap;
}

/* --- Coluna P/L Excesso (Posição Ativos) --- */
.table th.col-pl-excesso,
.table td.col-pl-excesso {
    width: 65px !important; /* Ajuste conforme necessário */
    min-width: 65px;
    text-align: right !important; /* Força alinhamento à direita */
    white-space: nowrap;
}

/* --- Coluna Ajuste # (Posição Ativos) --- */
.table th.col-ajuste,
.table td.col-ajuste {
    width: 70px !important; /* Ajuste conforme necessário */
    min-width: 70px;
    text-align: right !important; /* Força alinhamento à direita */
    white-space: nowrap;
}

/* --- Coluna Rank (Posição Ativos) --- */
.table th.col-rank,
.table td.col-rank {
    width: 10px !important; /* Ajuste conforme necessário */
    min-width: 10px;
    text-align: right !important; /* Força alinhamento à direita */
    white-space: nowrap;
}

/* --- Coluna Alvo (Posição Ativos) --- */
.table th.col-alvo,
.table td.col-alvo {
    width: 60px !important; /* Ajuste conforme necessário */
    min-width: 60px;
    text-align: right !important; /* Força alinhamento à direita */
    white-space: nowrap;
}

/* --- Coluna P/L Realizado (Posição Ativos) --- */
.table th.col-pl-realizado,
.table td.col-pl-realizado {
    width: 80px !important; /* Ajuste conforme necessário */
    min-width: 80px;
    text-align: center !important; /* Força alinhamento à direita */
    white-space: nowrap;
}

/* --- Coluna P/L Acruado (Posição Ativos) --- */
.table th.col-pl-acruado,
.table td.col-pl-acruado {
    width: 100px !important; /* Ajuste conforme necessário */
    min-width: 80px;
    text-align: right !important; /* Força alinhamento à direita */
    white-space: nowrap;
}

/* START: ADD_POSICAO_ATIVOS_INLINE_REPLACEMENT_CLASSES */
/* Para substituir style="width: 120px;" no input de aporte */
.input-fixed-width-sm {
  width: 90px !important; /* !important para garantir sobreposição se necessário, mas pode ser ajustado */
}

/* Para substituir style="min-height: 0.1rem;" na div de feedback */
.feedback-spacer {
  min-height: 0.1rem;
}
/* END: ADD_POSICAO_ATIVOS_INLINE_REPLACEMENT_CLASSES */

/* Estilo para label obrigatório no header da tabela de lote */
.lote-required-label::after {
  content: " *";
  color: var(--bs-danger); /* Usa variável Bootstrap para cor vermelha */
  font-weight: bold;
  margin-left: 2px;
}

/* Estilo para célula de ações (Remover) */
.lote-actions-cell {
    text-align: center;
    vertical-align: middle;
}
.lote-remove-btn {
    background: none;
    border: none;
    color: var(--bs-danger); /* Cor vermelha Bootstrap */
    padding: 0.1rem 0.3rem;
    cursor: pointer;
    transition: color 0.15s ease-in-out;
}
.lote-remove-btn:hover {
    color: var(--bs-red); /* Cor vermelha mais escura Bootstrap */
}
.lote-remove-btn i {
    font-size: 0.9em; /* Ajuste tamanho ícone */
}


.small-text {
  font-size: 1.6rem;
}

.modal.modal_grafico_tabela .modal-dialog {
}
@media (min-width: 1200px) { /* Breakpoint onde .modal-xl normalmente define sua largura máxima */
    .modal.modal_grafico_tabela .modal-dialog {
        max-width: 85vw !important; /* Usa vw (viewport width) e !important para alta prioridade */
        width: 85vw !important; /* Adiciona width também para garantir */
    }
}
@media (min-width: 1600px) {
    .modal.modal_grafico_tabela .modal-dialog {
        max-width: 1500px !important; /* Exemplo de valor fixo para telas muito largas */
        width: 1500px !important;
    }
}
@media (max-width: 1199.98px) and (min-width: 768px) {
    .modal.modal_grafico_tabela .modal-dialog {
        /* Exemplo: se quiser que em tablets ele também seja bem largo */
        /* max-width: 90vw !important; */
        /* width: 90vw !important; */
    }
}

/* START: MODAL_DIVIDEND_CHOICES_COMPACT_STYLE_STEP_BY_STEP */
/* Estilos específicos para o seletor Choices.js dentro do modal de dividendos */
#modalDividendosAtivoSelectWrapper .choices .choices__inner {
    min-height: calc(1.3em + 0.9rem + 2px) !important; /* Altura interna mínima reduzida */
    height: calc(1.3em + 0.9rem + 2px) !important;     /* Altura interna reduzida */
    font-size: 1rem !important;                     /* Tamanho da fonte um pouco menor */
    padding-top: 0.1rem !important;                   /* Padding vertical interno reduzido */
    padding-bottom: 0.1rem !important;
    /* padding-left e padding-right podem manter o padrão ou serem ajustados se necessário */
}

/* Ajusta a altura e padding do item selecionado (quando não é placeholder) e do placeholder */
#modalDividendosAtivoSelectWrapper .choices .choices__inner .choices__list--single .choices__item,
#modalDividendosAtivoSelectWrapper .choices .choices__inner .choices__placeholder {
    line-height: 1.3 !important; /* Ajusta a altura da linha para melhor encaixe vertical */
    padding-top: 0.05rem !important; /* Padding vertical mínimo para o texto interno */
    padding-bottom: 0.05rem !important;
}

/* Opcional: Ajusta o tamanho do botão de remover (se o Choices.js fosse configurado para permitir remover em single-select) */
/* #modalDividendosAtivoSelectWrapper .choices .choices__button {
    height: 16px !important;
    width: 16px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
    background-size: 8px !important;
} */

/* Ajusta o padding dos itens na lista suspensa (dropdown) */
#modalDividendosAtivoSelectWrapper .choices__list--dropdown .choices__item--selectable {
    font-size: 0.95rem !important;     /* Tamanho da fonte consistente com o input */
    padding-top: 0.15rem !important;    /* Espaçamento vertical menor nos itens do dropdown */
    padding-bottom: 0.15rem !important;
    line-height: 1.2 !important;       /* Altura da linha menor para itens do dropdown */
}

/* START: MODAL_CHART_PLACEHOLDER_VISIBILITY_FIX */
.chart-placeholder {
    /* ... estilos existentes ... */
    display: none; /* Escondido por padrão */
    opacity: 0;    /* Garante que esteja transparente se o display falhar */
    pointer-events: none; /* Não interfere com cliques no gráfico */
}

.chart-placeholder.visible { /* Classe adicionada por JS quando deve aparecer */
    display: flex !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}

/* Garante que o canvas do gráfico esteja por cima do placeholder, se ambos estiverem visíveis por engano */
.chart-container-modal-grafico canvas {
    position: relative; /* Necessário para z-index funcionar se o pai não for posicionado */
    z-index: 1; /* Canvas um pouco acima do padrão */
}

.chart-placeholder-tecnico { /* Se você usa essa classe também */
    display: none;
    opacity: 0;
    pointer-events: none;
}
.chart-placeholder-tecnico.visible {
    display: flex !important;
    opacity: 1 !important;
    pointer-events: auto !important;
}
/* END: MODAL_CHART_PLACEHOLDER_VISIBILITY_FIX */

/* START: CSS_MODAL_CONTENT_HIDING */
.modal-content-hiding .modal-body-main-content {
    visibility: hidden !important;
}
/* END: CSS_MODAL_CONTENT_HIDING */

/* START: ALL_MESSAGES_SCROLL_CONTAINER */
.all-messages-scroll-container {
    max-height: 450px; /* Defina a altura máxima desejada para toda a área de mensagens. Ajuste conforme necessário. */
    overflow-y: auto;  /* Adiciona barra de rolagem vertical ao container principal das mensagens. */
    padding: 10px;     /* Adiciona um padding interno para que os alertas não fiquem colados nas bordas. */
    border: 1px solid #dee2e6; /* Opcional: Adiciona uma borda ao redor do container de mensagens. */
    border-radius: 0.25rem;    /* Opcional: Bordas arredondadas. */
    background-color: #f8f9fa; /* Opcional: Uma cor de fundo leve, se desejar. */
}

/* Ajustes para os alertas dentro do container de rolagem */
.all-messages-scroll-container .alert {
    margin-bottom: 0; /* Remove a margem inferior padrão do alerta */
}
.all-messages-scroll-container .alert + .alert { /* Adiciona margem superior apenas se houver outro alerta antes */
    margin-top: 1rem; /* Equivalente ao mt-3 do Bootstrap */
}

/* A classe .scrollable-list ainda é útil se um único <li> dentro de uma <ul> for muito alto */
.all-messages-scroll-container .scrollable-list {
    max-height: 300px; /* Limita a altura de uma lista individual se ela for muito extensa */
    overflow-y: auto;
    /* padding-right: 5px; // Já definido anteriormente, pode manter ou ajustar */
}
/* END: ALL_MESSAGES_SCROLL_CONTAINER */

/* Estilo para a aba principal ativa, tornando-a azul como os nav-pills */
.nav-tabs .nav-link.active {
    color: #fff;
    background-color: rgb(13, 120, 200);
    border-color: rgb(13, 120, 200);
    border-bottom-color: rgb(13, 120, 200); /* Garante que a borda inferior também seja colorida */
}
/* END: ACTIVE_MAIN_TAB_STYLE */

/* Estilo para a sub-aba ativa (nav-pills) */
.nav-pills .nav-link.active {
    color: #fff; /* Texto branco */
    background-color: rgb(30, 150, 200); /* Azul padrão do Bootstrap em RGB */
}
/* END: ACTIVE_SUB_TAB_STYLE */

.nav-tabs .nav-link:not(.active),
.nav-pills .nav-link:not(.active) {
    color: rgb(73, 80, 87); /* Exemplo: Cinza escuro */
}

/* START: TX_TABLE_COLUMN_WIDTHS */
/* Larguras para Colunas da Tabela de Transações */
.table .tx-col-data       { width: 90px; min-width: 90px; }
.table .tx-col-descricao   { width: auto; min-width: 350px; } /* Descrição pode ser flexível */
.table .tx-col-ativo       { width: 75px; min-width: 75px; }
.table .tx-col-daytrade    { width: 60px; min-width: 60px; }
.table .tx-col-operacao    { width: 95px; min-width: 95px; }
.table .tx-col-cotas       { width: 50px; min-width: 50px; }
.table .tx-col-cotacao     { width: 50px; min-width: 50px; }
.table .tx-col-subtotal    { width: 60px; min-width: 60px; }
.table .tx-col-emolumentos { width: 80px; min-width: 80px; }
.table .tx-col-valor-total { width: 80px; min-width: 80px; }
.table .tx-col-saldo       { width: 80px; min-width: 80px; }
.table .tx-col-acoes       { width: 60px; min-width: 60px; }
.table .tx-col-select      { width: 35px; min-width: 35px; }
/* END: TX_TABLE_COLUMN_WIDTHS */

/* START: WIDEN_LOTE_TABLE_COLUMNS */
/* --- Larguras para Colunas da Tabela de Adição em Lote --- */
.lote-col-data { width: 120px !important; min-width: 115px; }
.lote-col-operacao { width: 180px !important; min-width: 170px; }
.lote-col-ativo { width: 80px !important; min-width: 80px; }
.lote-col-daytrade { width: 80px !important; min-width: 80px; }
.lote-col-cotas { width: 60px !important; min-width: 60px; }
.lote-col-cotacao { width: 60px !important; min-width: 60px; }
.lote-col-subtotal { width: 60px !important; min-width: 60px; }
.lote-col-taxas { width: 80px !important; min-width: 80px; }
/* A coluna Descrição não precisa de largura fixa geralmente */
.lote-col-actions { width: 60px !important; min-width: 55px; text-align: center; } /* Coluna de ações (Remover) */
/* END: WIDEN_LOTE_TABLE_COLUMNS */

/* START: HIDE_NUMBER_INPUT_ARROWS */
/* Oculta as setas de incremento/decremento em inputs type="number" para navegadores WebKit (Chrome, Safari, Edge) */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Oculta as setas em inputs type="number" para Firefox */
input[type=number] {
    -moz-appearance: textfield;
}
/* END: HIDE_NUMBER_INPUT_ARROWS */

/* START: CHOICES_DROPDOWN_FONT_ADJUST */
/* Ajusta a fonte dos itens nos dropdowns de Rank e Ticker */
.filter-wrapper-filtro_rank .choices__list--dropdown .choices__item--selectable,
.filter-wrapper-filtro_ticker .choices__list--dropdown .choices__item--selectable {
    font-size: 0.8rem !important;
    padding-top: 0.2rem !important;
    padding-bottom: 0.2rem !important;
    line-height: 1.2 !important;
}
/* END: CHOICES_DROPDOWN_FONT_ADJUST */

/* START: COMPACT_SUGGESTION_TABLE */
.table-suggestion th,
.table-suggestion td {
    padding-top: 0.1rem !important;      /* Reduz drasticamente o padding superior */
    padding-bottom: 0.1rem !important;   /* Reduz drasticamente o padding inferior */
    vertical-align: middle;
}

.table-suggestion thead th {
    font-size: 1.1em; /* Reduz o tamanho da fonte do cabeçalho */
    font-weight: 600;
}

.table-suggestion tbody td {
    font-size: 1em; /* Reduz um pouco a fonte do corpo para caber melhor */
    line-height: 1.2;  /* Reduz a altura da linha */
}

/* Reduz o tamanho da fonte do resultado final para consistência */
.table-suggestion strong.fs-6 {
    font-size: 1em !important; 
}
/* END: COMPACT_SUGGESTION_TABLE */

/* START: ADJUST_SUGGESTION_TABLE_FONT */
/* Ajusta o tamanho da fonte para a tabela de sugestões de otimização */
.table-suggestion,
.table-suggestion th,
.table-suggestion td {
    font-size: 0.9rem; /* <-- Altere este valor. Ex: 0.75rem para menor, 0.9rem para maior */
    vertical-align: middle;
}
/* END: ADJUST_SUGGESTION_TABLE_FONT */

/* START: OPTIMIZER_DIVIDEND_TABLE_FONT */
/* Classe específica para a tabela de Top 10 de Otimização de Dividendos */
.table-dividend-suggestions,
.table-dividend-suggestions th,
.table-dividend-suggestions td {
    font-size: 0.9rem; /* <-- Altere este valor. Ex: 0.75rem (menor) ou 0.9rem (maior) */
}
/* END: OPTIMIZER_DIVIDEND_TABLE_FONT */

/* START: HONEYPOT_FIELD_STYLE */
/* Estilo para ocultar o campo "honeypot" de forma eficaz */
.form-honeypot {
    opacity: 0 !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    height: 0 !important;
    width: 0 !important;
    z-index: -1 !important;
    pointer-events: none !important; /* Impede cliques/foco */
}
/* END: HONEYPOT_FIELD_STYLE */

/* START: DIVIDEND_ANNOUNCED_ICON_STYLE */
/* Estilo para o ícone de 'tick' de dividendo anunciado na Posição Atual */
.dividend-announced-icon {
    margin-left: 0.15rem; /* Adiciona um pequeno espaçamento à esquerda do ícone */
    margin-right: 0.15rem; /* Adiciona um pequeno espaçamento à direita do ícone */
    cursor: help;         /* Muda o cursor para indicar que há um tooltip com informação */
    vertical-align: middle; /* Garante alinhamento vertical com o texto */
}
/* END: DIVIDEND_ANNOUNCED_ICON_STYLE */

/* START: ADD_PM_VENDA_COLUMN_CSS */
/* --- Coluna Últ. PM Venda (Posição Ativos) --- */
.table th.col-pm-venda,
.table td.col-pm-venda {
    width: 60px !important; /* Ajuste conforme necessário */
    min-width: 60px;
    text-align: center !important; /* Força alinhamento à direita */
    white-space: nowrap;
}
/* END: ADD_PM_VENDA_COLUMN_CSS */

/* START: ADD_P_VENDA_COLUMN_CSS */
/* --- Coluna Últ. Venda (Posição Ativos) --- */
.table th.col-p-venda,
.table td.col-p-venda {
    width: 60px !important; /* Ajuste conforme necessário */
    min-width: 60px;
    text-align: center !important; /* Força alinhamento à direita */
    white-space: nowrap;
}
/* END: ADD_P_VENDA_COLUMN_CSS */

/* --- Coluna Abertura (Posição Ativos) --- */
.table th.col-abertura,
.table td.col-abertura {
    width: 60px !important; /* Ajuste conforme necessário */
    min-width: 60px;
    text-align: center !important; /* Força alinhamento à direita */
    white-space: nowrap;
}

/* --- Coluna PM (Posição Ativos) --- */
.table th.col-pm,
.table td.col-pm {
    width: 60px !important; /* Ajuste conforme necessário */
    min-width: 60px;
    text-align: center !important; /* Força alinhamento à direita */
    white-space: nowrap;
}

/* START: MASTER_ANALYSIS_TABLE_STYLES */
/* --- Estilos para a Tabela de Análise Mestre (Tabulator) --- */

/* Força a altura da linha para ser compacta */
#master-analysis-table .tabulator-row {
    height: 28px !important;
    min-height: 28px !important;
}

/* Ajusta o padding da célula para alinhar com a altura compacta */
#master-analysis-table .tabulator-row .tabulator-cell {
    padding: 4px 8px;
    font-size: 0.85rem;
}

#master-analysis-table .tabulator-header .tabulator-col .tabulator-col-title {
    font-size: 0.9rem;
    font-weight: 600;
}

/* Adiciona o cursor de ponteiro e um leve efeito de hover nas linhas clicáveis */
#master-analysis-table .tabulator-row.tabulator-selectable:hover {
    cursor: pointer;
    background-color: rgba(0, 0, 0, 0.05);
}

/* Formatação condicional para ranks */
#master-analysis-table .rank-A { font-weight: bold; color: #198754; }
#master-analysis-table .rank-B { color: #0d6efd; }
#master-analysis-table .rank-C { color: #c9c012; }
#master-analysis-table .rank-D { color: #a69328; }
#master-analysis-table .rank-E { color: #fc56ac; }
#master-analysis-table .rank-F { color: #b31602; }

/* Barra de progresso para scores */
#master-analysis-table .score-bar {
    position: relative;
    width: 100%;
    height: 18px;
    background-color: #dedfe0;
    border-radius: .25rem;
    overflow: hidden;
}
#master-analysis-table .score-bar-fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    transition: width 0.3s ease-in-out;
}
#master-analysis-table .score-bar-text {
    position: absolute;
    width: 100%;
    text-align: center;
    line-height: 18px;
    font-size: 0.75rem;
    color: #212529;
    font-weight: 500;
}

#master-analysis-table .tabulator-row.tabulator-selected {
    background-color: transparent !important; /* Torna o fundo transparente */
    color: inherit !important; /* Garante que a cor do texto não mude */
}

/* Sobrescreve o estilo padrão do Tabulator para a linha com a classe .tabulator-selected */
#master-analysis-table .tabulator-row.tabulator-selected {
    background-color: transparent !important; /* Torna o fundo transparente */
    color: inherit !important; /* Garante que a cor do texto não mude */
}

#form-pesos-ranking .form-control {
    text-align: right;
}

/* END: MASTER_ANALYSIS_TABLE_STYLES */


/* START: UNIFIED_MODAL_CHART_HEIGHT_CONTROL */
/* 
  Controle de altura para os gráficos nos modais de Análise Técnica/Detalhada.
  As regras são aplicadas aos containers dos gráficos (.chart-container-tecnico)
  usando o ID do modal pai (#detailAnalysisModal ou #technicalChartModal) para especificidade.
*/

/* --- Alturas para o Modal da PÁGINA DE ANÁLISE MESTRE (Menores) --- */
#detailAnalysisModal .chart-container-tecnico:has(#detail-chart-canvas-price) {
    height: 32vh;
    min-height: 80px;
}
#detailAnalysisModal .chart-container-tecnico:has(#detail-chart-canvas-volume),
#detailAnalysisModal .chart-container-tecnico:has(#detail-chart-canvas-rsi) {
    height: 12vh;
    min-height: 80px;
}
#detailAnalysisModal .chart-container-tecnico:has(#detail-chart-canvas-dividends) {
    height: 12vh;
    min-height: 80px;
}

/* --- Alturas para o Modal da ABA POSIÇÃO ATUAL (Maiores/Padrão) --- */
#technicalChartModal .chart-container-tecnico:has(#modal-chart-canvas-price) {
    height: 32vh;
    min-height: 80px;
}
#technicalChartModal .chart-container-tecnico:has(#modal-chart-canvas-volume),
#technicalChartModal .chart-container-tecnico:has(#modal-chart-canvas-rsi) {
    height: 12vh;
    min-height: 80px;
}
#technicalChartModal .chart-container-tecnico:has(#modal-chart-canvas-dividends) {
    height: 12vh;
    min-height: 80px;
}
/* END: UNIFIED_MODAL_CHART_HEIGHT_CONTROL */

/* START: RSI_CHART_CONTAINER_HEIGHT */
.chart-container-rsi {
    position: relative;
    width: 100%;
    height: 150px; /* Altura dedicada para o gráfico RSI */
}
/* END: RSI_CHART_CONTAINER_HEIGHT */

/* START: VOLATILITY_PRICE_CHART_HEIGHT */
.chart-container-volatilidade-preco {
    position: relative;
    width: 100%;
    height: 480px; /* Altura inicial para o gráfico de preço. Ajuste conforme necessário. */
}
/* END: VOLATILITY_PRICE_CHART_HEIGHT */