/* ================================================================
   COST ANALYSIS PANEL — Dashboard de Analise de Custos
   Estilos do painel de analise de custos: KPIs, graficos, tabelas

   Ownership: .ca-* (except .ca-alloc-* which lives in governance.css)
   Moved from injectCostAnalysisStyles() in costAnalysisPanel.js
   ================================================================ */

/* --- Action bar --- */
.ca-actions {
    display: flex;
    gap: 0.3rem;
    justify-content: flex-end;
    padding: 0.3rem 0;
    margin-bottom: 0.2rem;
}
.ca-actions .btn {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

/* --- View toggle --- */
.ca-view-toggle {
    display: flex;
    gap: 0;
    margin-bottom: 0.5rem;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 4px;
    overflow: hidden;
}
.ca-view-btn {
    flex: 1;
    padding: 0.35rem 0.5rem;
    border: none;
    background: transparent;
    font-size: 0.8rem;
    font-weight: 500;
    cursor: pointer;
    color: var(--text-secondary);
    transition: all 0.15s;
}
.ca-view-btn:hover {
    background: var(--neutral-100, #f5f5f5);
}
.ca-view-btn.active {
    background: var(--primary-500, #3b6bff);
    color: #fff;
}

/* --- KPI cards --- */
.ca-kpi-row {
    display: flex;
    gap: 0.35rem;
    margin-bottom: 0.5rem;
    flex-wrap: wrap;
}
.ca-kpi {
    flex: 1;
    min-width: 70px;
    padding: 0.4rem 0.5rem;
    border: 1px solid var(--border-color, #eee);
    border-radius: 4px;
    text-align: center;
    background: var(--bg-secondary, #fafafa);
}
.ca-kpi-label {
    font-size: 0.65rem;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
.ca-kpi-value {
    font-size: 0.85rem;
    font-weight: 600;
    margin-top: 0.15rem;
}
.ca-kpi-capex .ca-kpi-value { color: var(--primary-600, #2d52c4); }
.ca-kpi-opex .ca-kpi-value { color: #e67e22; }
.ca-kpi-total .ca-kpi-value { color: #27ae60; }
.ca-kpi-sm .ca-kpi {
    padding: 0.25rem 0.4rem;
}
.ca-kpi-sm .ca-kpi-value {
    font-size: 0.8rem;
}

/* --- Sections --- */
.ca-section {
    margin-bottom: 0.5rem;
}
.ca-section-title {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 0.3rem;
}

/* --- Chart containers --- */
.ca-chart-container {
    position: relative;
    height: 180px;
    margin-bottom: 0.5rem;
}
.ca-chart-sm {
    height: 150px;
}
.ca-charts-row {
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}
.ca-chart-half {
    flex: 1;
    min-width: 0;
}

/* --- Tables --- */
.ca-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.78rem;
}
.ca-table th {
    text-align: left;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--text-secondary);
    padding: 0.25rem 0.35rem;
    border-bottom: 1px solid var(--border-color, #ddd);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
.ca-table td {
    padding: 0.3rem 0.35rem;
    border-bottom: 1px solid var(--border-color, #f0f0f0);
}
.ca-table-compact th,
.ca-table-compact td {
    padding: 0.2rem 0.3rem;
    font-size: 0.75rem;
}
.ca-td-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.ca-td-bold { font-weight: 600; }
.ca-td-family {
    font-style: italic;
    color: var(--text-secondary);
    font-size: 0.72rem;
}
.ca-clickable { cursor: pointer; }
.ca-clickable:hover {
    background: var(--neutral-50, #fafafa);
}
.ca-chevron {
    font-size: 0.65rem;
    color: var(--text-secondary);
}

/* --- Drill-down detail --- */
.ca-detail-row {
    background: var(--bg-secondary, #fafafa);
}
.ca-detail {
    padding: 0.4rem 0.5rem 0.4rem 1.2rem;
    font-size: 0.75rem;
}
.ca-detail-sub {
    font-weight: 600;
    margin-top: 0.3rem;
    margin-bottom: 0.15rem;
}
.ca-detail-line {
    margin-bottom: 0.15rem;
    display: flex;
    gap: 0.4rem;
    align-items: center;
    flex-wrap: wrap;
}
.ca-detail-year {
    font-weight: 600;
    min-width: 35px;
}
.ca-detail-param {
    font-weight: 500;
    min-width: 80px;
}
.ca-detail-badge {
    font-size: 0.6rem;
    padding: 0.05rem 0.3rem;
    border-radius: 3px;
    background: var(--neutral-200, #e0e0e0);
    color: var(--text-secondary);
    text-transform: uppercase;
}
.ca-detail-items {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
    padding-left: 0.5rem;
    margin-bottom: 0.2rem;
}
.ca-item {
    font-size: 0.68rem;
    padding: 0.1rem 0.3rem;
    border-radius: 2px;
    background: var(--neutral-100, #f5f5f5);
    color: var(--text-secondary);
}
.ca-detail-more {
    font-size: 0.7rem;
    color: var(--text-secondary);
    font-style: italic;
}

/* --- Category blocks --- */
.ca-category-block {
    margin-bottom: 0.5rem;
}
.ca-category-header {
    font-size: 0.75rem;
    font-weight: 600;
    padding: 0.2rem 0;
    border-bottom: 1px solid var(--border-color, #ddd);
    margin-bottom: 0.2rem;
}

/* --- Empty state --- */
.ca-empty {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--text-secondary);
    font-size: 0.85rem;
}

/* --- Inline edit controls in drill-down --- */
.ca-basis-select {
    font-size: 0.6rem;
    padding: 0 2px;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 2px;
    background: transparent;
    color: var(--text-secondary);
    cursor: pointer;
}
.ca-inline-input {
    width: 70px;
    text-align: right;
    font-size: 0.68rem;
    padding: 0 3px;
    border: 1px solid var(--border-color, #ddd);
    border-radius: 2px;
    background: transparent;
    color: var(--text-primary, #333);
}
.ca-inline-input:focus {
    border-color: var(--primary-500, #3b6bff);
    outline: none;
}
.ca-btn-remove {
    border: none;
    background: none;
    cursor: pointer;
    font-size: 0.65rem;
    color: var(--text-secondary);
    padding: 0 2px;
    line-height: 1;
}
.ca-btn-remove:hover {
    color: var(--danger, #e74c3c);
}

/* --- Cost center table helpers (used in both views) --- */
.ca-cc-table-overflow {
    overflow-x: auto;
}
.ca-cc-th-right {
    text-align: right;
}
.ca-benchmark-green { color: #27ae60; }
.ca-benchmark-red { color: #e74c3c; }

/* --- Drill-down add-year bar --- */
.ca-add-year-bar {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.3rem;
}
.ca-add-year-btn {
    font-size: 0.65rem;
    padding: 1px 6px;
}

/* --- Chart margin helper --- */
.ca-chart-mt {
    margin-top: 0.5rem;
}
