.crm-page-statistics,
.crm-page-statistics-occupancy,
.crm-page-statistics-apartments,
.crm-page-statistics-reports {
    --statistics-surface: var(--ui-color-surface);
    --statistics-border: var(--ui-color-border);
    --statistics-text: var(--ui-color-text);
    --statistics-muted-surface: var(--ui-color-surface-muted);
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .card-surface {
    border-color: var(--ui-color-border);
    border-radius: var(--ui-radius-lg);
    background: var(--ui-color-surface);
    color: var(--ui-color-text);
    box-shadow: none;
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-card {
    min-width: 0;
    margin-top: 0;
    padding: var(--ui-space-4);
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-form {
    display: grid;
    grid-template-columns: minmax(190px, 1.35fr) minmax(170px, 1fr) minmax(150px, .85fr) minmax(150px, .85fr);
    align-items: end;
    gap: var(--ui-space-3);
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-field {
    min-width: 0;
    gap: var(--ui-space-1);
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-date-range {
    display: grid;
    grid-column: span 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--ui-space-3);
    min-width: 0;
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-field > span {
    color: var(--ui-color-text-muted);
    font-size: var(--ui-font-xs);
    font-weight: 600;
    line-height: 1.25;
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-field > select,
:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-field > input {
    width: 100%;
    min-width: 0;
    min-height: var(--ui-control-md);
    border-color: var(--ui-color-border);
    border-radius: var(--ui-radius-sm);
    background: var(--ui-color-surface);
    color: var(--ui-color-text);
    box-shadow: none;
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-field > select:focus-visible,
:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-field > input:focus-visible {
    border-color: var(--ui-color-primary);
    outline: 0;
    box-shadow: var(--ui-focus-ring);
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--ui-space-4);
    min-width: 0;
    margin-top: 0;
}

.crm-page-statistics .statistics-overview-kpi-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-kpi-grid .summary-card {
    min-width: 0;
    padding: var(--ui-space-4);
    border: 1px solid var(--ui-color-border);
    border-radius: var(--ui-radius-lg);
    background: var(--ui-color-surface);
    box-shadow: none;
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-kpi-grid .summary-card strong {
    display: block;
    margin: var(--ui-space-2) 0 var(--ui-space-1);
    color: var(--ui-color-text);
    font-size: clamp(1.25rem, 2vw, 1.625rem);
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.crm-page-statistics .statistics-overview-kpi-grid .summary-card strong {
    font-size: 22px;
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-kpi-grid .summary-card > span,
:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-kpi-grid .summary-card small {
    color: var(--ui-color-text-muted);
}

.crm-page-statistics .statistics-visual-card {
    margin-top: 0;
    padding: var(--ui-space-5);
}

.crm-page-statistics .statistics-visual-card .housekeeping-pie-legend-item {
    border-color: var(--ui-color-border);
    border-radius: var(--ui-radius-md);
    background: var(--ui-color-surface-subtle);
    box-shadow: none;
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-table-card {
    min-width: 0;
    margin-top: 0;
    padding: 0;
    overflow: hidden;
}

:is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-table-card > .section-head-row {
    margin: 0;
    padding: var(--ui-space-4) var(--ui-space-5);
    border-bottom: 1px solid var(--ui-color-border);
}

.statistics-table-scroll {
    width: 100%;
    max-width: 100%;
    /* Let every row precede the footer; retain horizontal overflow. */
    max-height: none;
    overflow: auto;
    overscroll-behavior-inline: contain;
}

.statistics-data-table {
    width: 100%;
    min-width: 860px;
    margin: 0;
    border-spacing: 0;
    border-radius: 0;
}

.statistics-overview-table {
    min-width: 1240px;
}

.statistics-apartments-table {
    min-width: 1080px;
}

.statistics-channels-table {
    min-width: 720px;
}

.statistics-data-table th,
.statistics-data-table td {
    padding: 13px 14px;
    border-bottom: 1px solid var(--ui-color-border);
    border-radius: 0;
    background: var(--ui-color-surface);
    color: var(--ui-color-text);
    vertical-align: middle;
    white-space: nowrap;
}

.statistics-data-table th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--ui-color-surface-muted);
    color: var(--ui-color-text-muted);
    font-size: var(--ui-font-xs);
    font-weight: 600;
    letter-spacing: .035em;
}

@media (hover: hover) and (pointer: fine) and (min-width: 761px) {
    .statistics-data-table tbody tr:hover td {
        background: var(--ui-color-surface-subtle);
    }
}

.statistics-data-table tbody tr:last-child td,
.statistics-data-table tfoot tr:last-child td {
    border-bottom: 0;
}

.statistics-data-table td strong,
.statistics-data-table td span {
    overflow-wrap: anywhere;
}

.statistics-data-table .statistics-wide-cell {
    min-width: 210px;
    white-space: normal;
}

.statistics-data-table .statistics-total-row td {
    background: var(--ui-color-surface-muted);
    font-weight: 600;
}

.statistics-empty-row td {
    padding: var(--ui-space-8);
    color: var(--ui-color-text-muted);
    text-align: center;
    white-space: normal;
}

/* Report column geometry and numeric alignment, shared by screen and print. */
.statistics-report-screen { display: grid; gap: var(--ui-space-5); }
.statistics-report-screen .statistics-financial-table caption { padding-inline: var(--ui-space-5); }
.statistics-report-screen .statistics-table-card > .empty-note { margin: 0; padding: var(--ui-space-4) var(--ui-space-5); }
.statistics-table .statistics-number {
    text-align: right;
    font-variant-numeric: tabular-nums lining-nums;
}
.statistics-financial-table { table-layout: fixed; min-width: 720px; }
.statistics-table.statistics-financial-table td { white-space: normal; overflow-wrap: anywhere; }
.statistics-financial-table col:first-child { width: 44%; }
.statistics-financial-table col:nth-child(2),
.statistics-financial-table col:nth-child(3) { width: 14%; }
.statistics-financial-table col:last-child { width: 28%; }
.statistics-financial-table--payments col:first-child { width: 40%; }
.statistics-financial-table--payments col:nth-child(2) { width: 10%; }
.statistics-financial-table--payments col:nth-child(n+3) { width: 16.666%; }
.statistics-financial-table caption { padding: var(--ui-space-4) 0 var(--ui-space-3); text-align: left; }
.statistics-financial-table caption .section-head-row { display: flex; justify-content: space-between; align-items: center; gap: var(--ui-space-3); margin: 0; }
.statistics-currency-summary { display: grid; min-width: 0; gap: var(--ui-space-1); text-align: right; }
.statistics-currency-summary small { color: var(--ui-color-text-muted); }
.statistics-currency-summary strong { font-size: var(--ui-font-card-title); font-variant-numeric: tabular-nums lining-nums; overflow-wrap: anywhere; }
.statistics-report-note { margin: var(--ui-space-3) 0 0; }
@media (max-width: 760px) {
    .statistics-report-screen { gap: var(--ui-space-4); }
    .statistics-financial-table { min-width: 0; }
    .statistics-financial-table caption { display: block; width: 100%; }
    .statistics-financial-table .statistics-number { text-align: left; }
    .statistics-financial-table .statistics-wide-cell { min-width: 0; }
    .statistics-data-table.statistics-card-table .statistics-result-cell { grid-column: 1 / -1; }
}

:is(.crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-report-grid {
    gap: var(--ui-space-4);
}

:is(.crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-report-list > div {
    border-color: var(--ui-color-border);
}

:is(.crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-metric-help > button {
    border-color: var(--ui-color-border-strong);
    background: var(--ui-color-surface-subtle);
    color: var(--ui-color-text-muted);
}

:is(.crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-metric-tooltip {
    border-color: var(--ui-color-border);
    border-radius: var(--ui-radius-sm);
    background: var(--ui-color-surface);
    color: var(--ui-color-text);
}

:is(.crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-progress {
    background: var(--ui-color-surface-muted);
}

@media (max-width: 1100px) {
    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-kpi-grid,
    .crm-page-statistics .statistics-overview-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 761px) and (max-width: 900px) {
    .statistics-table-card .statistics-data-table {
        display: table;
        width: 100%;
        max-width: none;
    }

    .statistics-table-card .statistics-data-table thead {
        display: table-header-group;
    }

    .statistics-table-card .statistics-data-table tbody {
        display: table-row-group;
    }

    .statistics-table-card .statistics-data-table tfoot {
        display: table-footer-group;
    }

    .statistics-table-card .statistics-data-table tr {
        display: table-row;
        width: auto;
        max-width: none;
        border: 0;
        box-shadow: none;
    }

    .statistics-table-card .statistics-data-table th,
    .statistics-table-card .statistics-data-table td {
        display: table-cell;
        width: auto !important;
        max-width: none;
    }

    .statistics-table-card .statistics-data-table td::before {
        content: none;
        display: none;
    }
}

@media (max-width: 760px) {
    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-card {
        padding: var(--ui-space-4);
    }

    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-form {
        display: grid;
        grid-template-columns: 1fr;
        gap: var(--ui-space-3);
    }

    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-form label.statistics-filter-field {
        grid-column: 1 / -1;
        min-width: 0;
    }

    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-date-range {
        grid-column: 1 / -1;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--ui-space-2);
        width: 100%;
    }

    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-date-range > label.statistics-filter-field {
        grid-column: auto;
        min-width: 0;
    }

    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-field > select,
    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-filter-field > input {
        min-height: 44px;
    }

    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-kpi-grid,
    .crm-page-statistics .statistics-overview-kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--ui-space-3);
    }

    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-kpi-grid .summary-card {
        padding: var(--ui-space-3);
    }

    .crm-page-statistics .statistics-visual-card {
        padding: var(--ui-space-4);
    }

    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-table-card {
        overflow: visible;
        border: 0;
        background: transparent;
    }

    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-table-card > .section-head-row {
        margin-bottom: var(--ui-space-3);
        border: 1px solid var(--ui-color-border);
        border-radius: var(--ui-radius-lg);
        background: var(--ui-color-surface);
    }

    .statistics-table-scroll {
        max-height: none;
        overflow: visible;
    }

    .statistics-data-table.statistics-card-table {
        display: block;
        min-width: 0;
        background: transparent;
    }

    .statistics-data-table.statistics-card-table thead {
        display: none;
    }

    .statistics-table-card .statistics-data-table.statistics-card-table tbody,
    .statistics-table-card .statistics-data-table.statistics-card-table tfoot {
        display: grid;
        gap: var(--ui-space-3);
        width: 100%;
    }

    .statistics-table-card .statistics-card-table .statistics-data-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--ui-space-3) var(--ui-space-4);
        width: 100%;
        min-width: 0;
        margin: 0;
        padding: var(--ui-space-4);
        border: 1px solid var(--ui-color-border);
        border-radius: var(--ui-radius-md);
        background: var(--ui-color-surface);
        box-shadow: none;
    }

    .statistics-data-table.statistics-card-table td {
        display: block;
        grid-column: auto;
        order: 0;
        width: auto !important;
        min-width: 0;
        padding: 0;
        border: 0;
        background: transparent;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .statistics-data-table.statistics-card-table td::before {
        content: attr(data-label);
        display: block;
        margin-bottom: var(--ui-space-1);
        color: var(--ui-color-text-subtle);
        font-size: var(--ui-font-xs);
        font-weight: 600;
        line-height: 1.25;
    }

    .statistics-data-table.statistics-card-table .statistics-primary-cell {
        grid-column: 1 / -1;
    }

    .statistics-data-table.statistics-card-table .statistics-wide-cell {
        grid-column: 1 / -1;
    }

    .statistics-data-table.statistics-card-table .statistics-primary-cell {
        padding-bottom: var(--ui-space-2);
        border-bottom: 1px solid var(--ui-color-border);
    }

    .statistics-data-table.statistics-card-table .statistics-progress {
        display: flex;
        width: 100%;
        margin: 0 0 var(--ui-space-2);
    }

    .statistics-table-card .statistics-data-table.statistics-card-table .statistics-empty-row {
        display: block;
        padding: var(--ui-space-6);
        border: 1px solid var(--ui-color-border);
        border-radius: var(--ui-radius-md);
        background: var(--ui-color-surface);
    }

    .statistics-table-card .statistics-data-table.statistics-card-table .statistics-empty-row td {
        padding: 0;
        text-align: center;
    }

    .statistics-table-card .statistics-data-table.statistics-card-table .statistics-empty-row td::before {
        display: none;
    }

    .statistics-table-card .statistics-card-table .statistics-total-row {
        margin-top: var(--ui-space-1);
        background: var(--ui-color-surface-muted);
    }
}

@media (max-width: 640px) {
    .crm-page-statistics .statistics-overview-kpi-grid .summary-card strong {
        font-size: clamp(15px, 4vw, 18px);
    }
}

@media (max-width: 370px) {
    :is(.crm-page-statistics, .crm-page-statistics-occupancy, .crm-page-statistics-apartments, .crm-page-statistics-reports) .statistics-kpi-grid,
    .crm-page-statistics .statistics-overview-kpi-grid {
        grid-template-columns: 1fr;
    }
}

@media print {
    /* Paper layout must not inherit the phone's screen media rules. */
    html:has(body.statistics-print-mode), body.statistics-print-mode { min-height: 0 !important; }
    body.statistics-print-mode { width: 186mm !important; max-width: none !important; }
    body.statistics-print-mode .statistics-report-document { width: 186mm !important; max-width: none !important; }
    .statistics-report-document .statistics-report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .statistics-report-document .statistics-report-meta { grid-template-columns: 1.3fr 1fr 1fr; }
    .statistics-report-document .statistics-report-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .statistics-report-document .statistics-report-brand,
    .statistics-report-document .statistics-report-generated { display: block; text-align: center; padding-inline: 14px; border-top-color: #d7d7d7; color: #555; letter-spacing: .2px; }
    .statistics-report-document .statistics-report-generated strong { color: #111; font-size: 12px; }
    .statistics-report-document .statistics-report-brand > div { text-align: right; }
    .statistics-report-document .statistics-financial-table caption { display: table-caption !important; caption-side: top; width: auto; }
    .statistics-report-document .statistics-financial-table caption .section-head-row { display: flex !important; flex-direction: row; }
    .statistics-report-document .statistics-financial-table td { font-size: 8.5pt; }
    .statistics-report-document .statistics-financial-table--payments col:first-child { width: 38%; }
    .statistics-report-document .statistics-financial-table--payments col:nth-child(2) { width: 8%; }
    .statistics-report-document .statistics-financial-table--payments col:nth-child(n+3) { width: 18%; }
    .statistics-report-document .statistics-report-table:not(.statistics-report-section--compact) { break-before: page; page-break-before: always; }
    .statistics-report-document { font-size: 10pt; line-height: 1.45; }
    .statistics-report-brand h2 { font-size: 21pt; }
    .statistics-report-meta strong { font-size: 10pt; overflow-wrap: anywhere; }
    .statistics-report-section-heading { display: flex; margin-bottom: 4mm; break-after: avoid; break-inside: avoid; }
    .statistics-report-section-heading > span { flex-shrink: 0; }
    .statistics-report-section-heading h3 { font-size: 13pt; }
    .statistics-report-section-heading p,
    .statistics-report-note { font-size: 9pt; line-height: 1.45; }
    .statistics-report-kpis article { border-top-width: 1px; border-radius: 0; }
    .statistics-report-kpis strong { font-size: 12pt; font-variant-numeric: tabular-nums; }
    .statistics-report-document .statistics-report-section.statistics-report-section--compact,
    .statistics-report-document .statistics-currency-group--compact { break-inside: avoid; page-break-inside: avoid; }
    .statistics-report-document .statistics-report-list > div { padding: 2.5mm 0; }
    .statistics-report-document .statistics-table { font-size: 9pt; }
    .statistics-report-document .statistics-table th { font-size: 8pt; }
    .statistics-report-document .statistics-table .statistics-number { text-align: right; }
    .statistics-report-document .statistics-table tfoot { display: table-row-group !important; }
    .statistics-report-document .statistics-table tfoot { break-before: avoid; break-inside: avoid; }
    .statistics-report-document .statistics-table .statistics-total-row td { border-top: 1.5px solid var(--ui-color-border-strong); font-weight: 700; }
    .statistics-report-document .statistics-table .statistics-wide-cell { min-width: 0; overflow-wrap: anywhere; }
    .statistics-report-document .statistics-table caption { padding: 0 0 3mm; break-after: avoid; }
    .statistics-report-document .statistics-table th { background: var(--ui-color-surface-muted); }
    .statistics-report-document .statistics-table td:not(:first-child) { font-variant-numeric: tabular-nums lining-nums; }
    .statistics-report-document .statistics-report-generated { margin-top: 0; padding-top: 10px; font-size: 11px; break-before: avoid; }
    .statistics-report-document .statistics-report-section:last-of-type { margin-bottom: 0; }
    .statistics-report-document .statistics-report-note { margin-bottom: 0; }
    .statistics-report-document .statistics-table {
        display: table !important;
    }

    .statistics-report-document .statistics-table thead {
        display: table-header-group !important;
    }

    .statistics-report-document .statistics-table tbody {
        display: table-row-group !important;
    }

    .statistics-report-document .statistics-table tr {
        display: table-row !important;
    }

    .statistics-report-document .statistics-table th,
    .statistics-report-document .statistics-table td {
        display: table-cell !important;
    }

    .statistics-report-document td::before {
        display: none;
    }
}
.statistics-chart-card { padding: var(--ui-space-5); }
.statistics-chart-head { align-items: center; gap: var(--ui-space-4); }
.statistics-chart-modes { display: flex; flex-wrap: wrap; gap: var(--ui-space-2); }
.statistics-chart-frame { position: relative; height: 340px; margin-top: var(--ui-space-4); }
@media (max-width: 600px) {
    .statistics-chart-card { padding: var(--ui-space-4); }
    .statistics-chart-modes { display: grid; grid-template-columns: 1fr; width: 100%; }
    .statistics-chart-frame { height: 300px; }
}

/* Domain chart layout; controls retain the shared component appearance. */
.statistics-chart-head { flex-wrap: wrap; }
.statistics-chart-currency { max-width: 240px; margin-block: var(--ui-space-3); }
.statistics-chart-table { margin-block: var(--ui-space-4); min-width: 0; }
.statistics-chart-table summary { cursor: pointer; padding-block: var(--ui-space-3); }
.statistics-chart-table .statistics-table-scroll { max-width: 100%; }
.statistics-chart-table td small { display: block; }
