/* =========================================================
   Final Reports theme — follows active app / workspace theme
   Uses global --ix-* tokens from .theme-host + workspace accents
   ========================================================= */

.ix-final-reports {
    /* Defaults (Fluent light / Bootstrap) — overridden by theme-host & workspace */
    --fr-bg: var(--ix-bg, #f5f6f8);
    --fr-surface: var(--ix-surface, #ffffff);
    --fr-surface-alt: var(--ix-surface-alt, #f8fafc);
    --fr-surface-soft: var(--ix-surface-soft, #f1f5f9);
    --fr-text: var(--ix-text, #111827);
    --fr-text-muted: var(--ix-text-muted, #667085);
    --fr-border: var(--ix-border, #d9dde3);
    --fr-border-soft: var(--ix-border-soft, #e5e7eb);
    --fr-accent: var(--ix-accent, #2563eb);
    --fr-accent-hover: var(--ix-accent-hover, #1d4ed8);
    --fr-accent-soft: var(--ix-accent-soft, rgba(37, 99, 235, 0.12));
    --fr-success: var(--ix-success, #198754);
    --fr-danger: var(--ix-danger, #b4232a);
    --fr-danger-soft: var(--ix-danger-soft, #fdecea);
    --fr-shadow: var(--ix-shadow, 0 12px 30px rgba(15, 23, 42, 0.08));

    --fr-title-bg: color-mix(in srgb, var(--fr-accent) 14%, #ffffff);
    --fr-title-border: color-mix(in srgb, var(--fr-accent) 28%, #ffffff);
    --fr-title-text: color-mix(in srgb, var(--fr-accent) 55%, #102A56);
    --fr-filter-bg: var(--fr-surface);
    --fr-filter-border: var(--fr-border);
    --fr-primary: var(--fr-accent);
    --fr-primary-hover: var(--fr-accent-hover);
    --fr-secondary-bg: var(--fr-surface);
    --fr-secondary-text: var(--fr-title-text);
    --fr-secondary-border: color-mix(in srgb, var(--fr-accent) 40%, var(--fr-border));
    --fr-header-bg: color-mix(in srgb, var(--fr-accent) 6%, #ffffff);
    /* Groups: no loud fill — bold text + thin accent edge */
    --fr-group-bg: transparent;
    --fr-group-text: var(--fr-text);
    --fr-group-edge: color-mix(in srgb, var(--fr-accent) 55%, transparent);
    --fr-group-total-bg: transparent;
    --fr-grand-bg: color-mix(in srgb, var(--fr-accent) 12%, #ffffff);
    --fr-grand-text: var(--fr-text);
    --fr-balance-bg: transparent;
    --fr-selected-bg: color-mix(in srgb, var(--fr-accent) 10%, #ffffff);
    --fr-row-hover: color-mix(in srgb, var(--fr-accent) 5%, #ffffff);
    --fr-report-border: var(--fr-border);
    --fr-error-bg: var(--fr-surface);
    --fr-error-border: color-mix(in srgb, var(--fr-danger) 35%, #ffffff);
    --fr-error-text: var(--fr-danger);
    --fr-font: Tahoma, Segoe UI, Arial, sans-serif;
    --fr-control-h: 28px;
    --fr-label-size: 11px;
    --fr-body-size: 12px;
    --fr-title-size: 13px;
    --fr-row-pad-y: 1px;
    --fr-row-pad-x: 6px;
}

/* ----- Workspace app themes (MenuLayout) ----- */
body:has(.theme-host.ix-app-theme-blue) .ix-final-reports,
body:has(.workspace-shell.ix-blue-workspace) .ix-final-reports {
    --fr-accent: #0d6efd;
    --fr-accent-hover: #0a58ca;
    --fr-accent-soft: rgba(13, 110, 253, 0.12);
    --fr-title-text: #0a58ca;
}

body:has(.theme-host.ix-app-theme-navy) .ix-final-reports,
body:has(.workspace-shell.ix-navy-workspace) .ix-final-reports {
    --fr-accent: #2F80ED;
    --fr-accent-hover: #1c6dd0;
    --fr-accent-soft: rgba(47, 128, 237, 0.12);
    --fr-title-text: #102A56;
}

body:has(.theme-host.ix-app-theme-graphite) .ix-final-reports,
body:has(.workspace-shell.ix-graphite-workspace) .ix-final-reports {
    --fr-accent: #059669;
    --fr-accent-hover: #047857;
    --fr-accent-soft: rgba(5, 150, 105, 0.12);
    --fr-title-text: #065f46;
}

body:has(.theme-host.ix-app-theme-glass) .ix-final-reports,
body:has(.workspace-shell.ix-glass-workspace) .ix-final-reports {
    --fr-accent: #4F46E5;
    --fr-accent-hover: #4338ca;
    --fr-accent-soft: rgba(79, 70, 229, 0.12);
    --fr-title-text: #3730a3;
}

body:has(.theme-host.ix-app-theme-platinum) .ix-final-reports,
body:has(.workspace-shell.ix-platinum-workspace) .ix-final-reports {
    --fr-accent: #2563EB;
    --fr-accent-hover: #1d4ed8;
    --fr-accent-soft: rgba(37, 99, 235, 0.12);
    --fr-title-text: #1e3a8a;
}

body:has(.theme-host.ix-app-theme-charcoal) .ix-final-reports,
body:has(.workspace-shell.ix-charcoal-workspace) .ix-final-reports {
    --fr-accent: #B87333;
    --fr-accent-hover: #A65E2E;
    --fr-accent-soft: rgba(184, 115, 51, 0.14);
    --fr-title-text: #7c4a1e;
}

body:has(.theme-host.ix-app-theme-brown) .ix-final-reports,
body:has(.workspace-shell.ix-menu-theme) .ix-final-reports {
    --fr-accent: #8b7355;
    --fr-accent-hover: #6d5a45;
    --fr-accent-soft: rgba(139, 115, 85, 0.14);
    --fr-title-bg: #f3efe9;
    --fr-title-border: #cfc0ae;
    --fr-title-text: #5c4a38;
    --fr-header-bg: #faf8f5;
    --fr-group-bg: transparent;
    --fr-group-text: #5c4a38;
    --fr-group-edge: #8b7355;
    --fr-grand-bg: #f3efe9;
    --fr-grand-text: #5c4a38;
    --fr-balance-bg: transparent;
    --fr-selected-bg: #ebe3d8;
    --fr-row-hover: #faf8f5;
}

/* Dark DevExpress themes — stronger title / group contrast */
.theme-host.theme-fluent-dark .ix-final-reports,
.theme-host.theme-blazing-dark .ix-final-reports,
.theme-host.theme-purple .ix-final-reports {
    --fr-title-bg: color-mix(in srgb, var(--fr-accent) 22%, var(--fr-surface));
    --fr-title-border: color-mix(in srgb, var(--fr-accent) 40%, var(--fr-border));
    --fr-title-text: var(--fr-text);
    --fr-header-bg: color-mix(in srgb, var(--fr-accent) 12%, var(--fr-surface));
    --fr-group-bg: transparent;
    --fr-group-text: var(--fr-text);
    --fr-group-edge: var(--fr-accent);
    --fr-group-total-bg: transparent;
    --fr-balance-bg: transparent;
    --fr-selected-bg: color-mix(in srgb, var(--fr-accent) 18%, var(--fr-surface));
    --fr-row-hover: color-mix(in srgb, var(--fr-accent) 10%, var(--fr-surface));
    --fr-grand-bg: color-mix(in srgb, var(--fr-accent) 18%, var(--fr-surface));
    --fr-grand-text: var(--fr-text);
}

/* =========================================================
   Component styling (token-driven)
   ========================================================= */

.ix-final-reports.fr-page,
.ix-final-reports.bs-page,
.ix-final-reports.ff-page,
.ix-final-reports.cf-page {
    background: var(--fr-bg) !important;
    color: var(--fr-text) !important;
    font-family: var(--fr-font) !important;
}

.ix-final-reports .fr-title,
.ix-final-reports .bs-title,
.ix-final-reports .ff-title,
.ix-final-reports .cf-title {
    background: var(--fr-title-bg) !important;
    border: 1px solid var(--fr-title-border) !important;
    color: var(--fr-title-text) !important;
    font-weight: 700 !important;
    font-size: var(--fr-title-size) !important;
    padding: 6px 10px !important;
}

.ix-final-reports .fr-filter,
.ix-final-reports .bs-filter,
.ix-final-reports .ff-filter,
.ix-final-reports .cf-filter {
    background: var(--fr-filter-bg) !important;
    border: 1px solid var(--fr-filter-border) !important;
    border-top: none !important;
    padding: 8px 10px !important;
    gap: 8px !important;
}

.ix-final-reports .fr-filter label,
.ix-final-reports .bs-filter label,
.ix-final-reports .ff-filter label,
.ix-final-reports .cf-filter label {
    font-size: var(--fr-label-size) !important;
    font-weight: 700 !important;
    color: var(--fr-title-text) !important;
}

.ix-final-reports .fr-filter > button,
.ix-final-reports .bs-filter > button,
.ix-final-reports .ff-filter > button,
.ix-final-reports .cf-filter > button {
    height: var(--fr-control-h) !important;
    min-height: var(--fr-control-h) !important;
    padding: 0 14px !important;
    border: 1px solid var(--fr-primary) !important;
    background: var(--fr-primary) !important;
    color: #fff !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    border-radius: 3px;
}

.ix-final-reports .fr-filter > button:hover:not(:disabled),
.ix-final-reports .bs-filter > button:hover:not(:disabled),
.ix-final-reports .ff-filter > button:hover:not(:disabled),
.ix-final-reports .cf-filter > button:hover:not(:disabled) {
    background: var(--fr-primary-hover) !important;
    border-color: var(--fr-primary-hover) !important;
}

.ix-final-reports .fr-filter > button:disabled,
.ix-final-reports .bs-filter > button:disabled,
.ix-final-reports .ff-filter > button:disabled,
.ix-final-reports .cf-filter > button:disabled {
    opacity: 0.7;
    cursor: default;
}

.ix-final-reports .cf-secondary-btn,
.ix-final-reports .fr-tree-toggle,
.ix-final-reports .bs-tree-toggle {
    background: var(--fr-secondary-bg) !important;
    color: var(--fr-secondary-text) !important;
    border: 1px solid var(--fr-secondary-border) !important;
}

.ix-final-reports .fr-export-btn,
.ix-final-reports .bs-export-btn,
.ix-final-reports .ff-export-btn,
.ix-final-reports .cf-export-btn {
    height: var(--fr-control-h) !important;
}

.ix-final-reports .fr-error,
.ix-final-reports .bs-error,
.ix-final-reports .ff-error,
.ix-final-reports .cf-error {
    color: var(--fr-error-text) !important;
    background: var(--fr-error-bg) !important;
    border: 1px solid var(--fr-error-border) !important;
    padding: 6px 10px !important;
    font-size: var(--fr-body-size) !important;
    border-radius: 3px;
}

.ix-final-reports .fr-load-status,
.ix-final-reports .bs-load-status {
    color: var(--fr-title-text) !important;
    background: var(--fr-header-bg) !important;
    border: 1px solid var(--fr-title-border) !important;
    padding: 6px 10px !important;
    font-size: var(--fr-body-size) !important;
    margin-bottom: 8px;
    border-radius: 3px;
}

.ix-final-reports .fr-report,
.ix-final-reports .bs-report,
.ix-final-reports .ff-report,
.ix-final-reports .cf-report,
.ix-final-reports .fr-tree-report,
.ix-final-reports .bs-tree-report {
    background: var(--fr-surface) !important;
    border: 1px solid var(--fr-report-border) !important;
    box-shadow: var(--fr-shadow);
}

.ix-final-reports .fr-grid-header,
.ix-final-reports .bs-grid-header,
.ix-final-reports .fr-classic-header,
.ix-final-reports .cf-header {
    background: var(--fr-header-bg) !important;
    color: var(--fr-title-text) !important;
    font-weight: 700 !important;
    border-bottom: 1px solid var(--fr-report-border) !important;
}

.ix-final-reports .fr-classic-group,
.ix-final-reports .fr-group,
.ix-final-reports .bs-group,
.ix-final-reports .cf-row-group,
.ix-final-reports .ff-group {
    background: var(--fr-group-bg) !important;
    color: var(--fr-group-text) !important;
    font-weight: 700 !important;
    border-left: none !important;
    padding-top: var(--fr-row-pad-y) !important;
    padding-bottom: var(--fr-row-pad-y) !important;
    padding-left: 6px !important;
    margin-top: 2px !important;
    margin-bottom: 0 !important;
    min-height: 0 !important;
    font-size: 13px !important;
}

.ix-final-reports .fr-classic-line,
.ix-final-reports .fr-classic-row,
.ix-final-reports .fr-row,
.ix-final-reports .bs-row,
.ix-final-reports .cf-row-detail {
    font-size: var(--fr-body-size) !important;
    border-bottom: none !important;
    color: var(--fr-text) !important;
    padding-top: var(--fr-row-pad-y) !important;
    padding-bottom: var(--fr-row-pad-y) !important;
    min-height: 0 !important;
    line-height: 1.25 !important;
}

.ix-final-reports .fr-classic-row:hover,
.ix-final-reports .fr-row:hover,
.ix-final-reports .bs-row:hover,
.ix-final-reports .cf-row-detail:hover,
.ix-final-reports .fr-classic-group:hover {
    background: var(--fr-row-hover) !important;
}

.ix-final-reports .fr-selected-line,
.ix-final-reports .bs-selected-line {
    background: var(--fr-selected-bg) !important;
    outline: 1px solid var(--fr-title-border);
}

.ix-final-reports .fr-total,
.ix-final-reports .bs-total,
.ix-final-reports .cf-row-grouptotal {
    background: var(--fr-group-total-bg) !important;
    font-weight: 700 !important;
    border-top: 1px solid var(--fr-border) !important;
    color: var(--fr-text) !important;
    padding-top: 3px !important;
    padding-bottom: 3px !important;
}

.ix-final-reports .cf-row-grandtotal,
.ix-final-reports .fr-grand-total {
    background: var(--fr-grand-bg) !important;
    color: var(--fr-grand-text) !important;
    font-weight: 700 !important;
    padding-top: 4px !important;
    padding-bottom: 4px !important;
}

.ix-final-reports .cf-row-balance {
    background: var(--fr-balance-bg) !important;
    font-weight: 700 !important;
    color: var(--fr-text) !important;
    padding-top: 3px !important;
    padding-bottom: 3px !important;
    border-top: 1px solid var(--fr-border-soft) !important;
}

/* Balance Sheet tree — compact, no loud bands */
.ix-final-reports .bs-tree-root > summary,
.ix-final-reports .bs-tree-group > summary,
.ix-final-reports .bs-tree-node > summary {
    background: transparent !important;
    border: none !important;
    padding: 1px 4px 1px 6px !important;
    font-size: var(--fr-body-size) !important;
    color: var(--fr-text) !important;
    min-height: 0 !important;
}

.ix-final-reports .bs-tree-node { margin-bottom: 1px !important; }
.ix-final-reports .bs-tree-group { margin-left: 12px !important; }
.ix-final-reports .bs-tree-row {
    margin-left: 24px !important;
    padding: 0 4px !important;
    font-size: var(--fr-body-size) !important;
    line-height: 1.25 !important;
}
.ix-final-reports .bs-tree-row:hover { background: var(--fr-row-hover) !important; }
.ix-final-reports .bs-tree-scroll { padding: 4px 6px !important; }
.ix-final-reports .bs-tree-header,
.ix-final-reports .fr-classic-header,
.ix-final-reports .cf-header {
    padding: 4px 6px !important;
    min-height: 0 !important;
}
.ix-final-reports .fr-classic-body { padding: 2px 4px 4px !important; }
.ix-final-reports .bs-group {
    margin-top: 4px !important;
    font-size: var(--fr-body-size) !important;
}

.ix-final-reports .cf-row-reconciliation.cf-recon-ok {
    background: color-mix(in srgb, var(--fr-success) 18%, #ffffff) !important;
    color: var(--fr-success) !important;
}

.ix-final-reports .cf-row-reconciliation.cf-recon-bad {
    background: var(--fr-danger-soft) !important;
    color: var(--fr-danger) !important;
}

.ix-final-reports .fr-amount-title,
.ix-final-reports .cf-col-amt,
.ix-final-reports .ff-amount {
    text-align: right !important;
    font-variant-numeric: tabular-nums;
}

.ix-final-reports .cf-net-neg,
.ix-final-reports .fr-tree-loss,
.ix-final-reports .ff-negative {
    color: var(--fr-danger) !important;
}

.ix-final-reports .cf-net-pos,
.ix-final-reports .fr-tree-profit,
.ix-final-reports .ff-positive {
    color: var(--fr-success) !important;
}

.ix-final-reports .dxbl-tree-list,
.ix-final-reports .dxbl-grid {
    font-family: var(--fr-font) !important;
    font-size: var(--fr-body-size) !important;
    color: var(--fr-text) !important;
}

.ix-final-reports .dxbl-tree-list .dxbl-grid-header-row > th,
.ix-final-reports .dxbl-tree-list .dxbl-grid-header-row > td {
    background: var(--fr-header-bg) !important;
    color: var(--fr-title-text) !important;
    font-weight: 700 !important;
}

.ix-final-reports .dxbl-tree-list .dxbl-grid-table tbody tr:nth-child(even):not(.dxbl-grid-focused-row) td {
    background: var(--fr-surface-alt) !important;
}

.ix-final-reports .dxbl-tree-list .dxbl-grid-table tbody tr:hover:not(.dxbl-grid-focused-row) td {
    background: var(--fr-row-hover) !important;
}

.ix-final-reports .fr-date,
.ix-final-reports .bs-date,
.ix-final-reports .ff-date,
.ix-final-reports .cf-date {
    width: 140px;
}

.ix-final-reports .fr-branch-dropdown,
.ix-final-reports .bs-branch-dropdown,
.ix-final-reports .ff-branch-dropdown,
.ix-final-reports .cf-branch-dropdown {
    min-width: 280px;
}

.ix-final-reports .cf-toggle {
    color: var(--fr-title-text) !important;
}
