


/* ---------- Report Card ---------- */

.report-card {
    background: #fff;
    width: min(1400px, 95%);
    margin: 30px auto;
    padding: 30px;
    border-radius: 12px;
    box-shadow: 0 4px 18px rgba(0,0,0,.12);
}


/* ---------- Header ---------- */

.report-title {
    color: #7B1026;
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 5px;
}

.report-subtitle {
    color: #555;
    margin-bottom: 25px;
}


/* ---------- Section Headers ---------- */

.section-row td {
    background: #7B1026;
    color: #fff;
    font-weight: 700;
    padding: 14px;
}

.group-row td {
    background: #f5f5f5;
    font-weight: 700;
    border-top: 2px solid #d9d9d9;
}

.summary-row td {
    background: #f0f0f0;
    font-weight: 700;
    border-top: 2px solid #999;
}


/* ---------- Tables ---------- */

.report-table-wrapper {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    margin-bottom: 20px;
}

.report-table {
    width: max-content;
    min-width: 1100px;
    border-collapse: collapse;
    font-size: .95rem;
}

.report-table th,
.report-table td {
    padding: 10px 12px;
    border-bottom: 1px solid #e5e5e5;
    white-space: nowrap;
}

.report-table thead th {
    background: #ECEFF3;
    border-bottom: 2px solid #d9d9d9;
    font-weight: 600;
}

.report-table th:first-child,
.report-table td:first-child {
    position: sticky;
    left: 0;
    background: #fff;
    min-width: 260px;
    z-index: 2;
}

.report-table thead th:first-child {
    z-index: 3;
}

.report-table td:not(:first-child),
.report-table th:not(:first-child) {
    text-align: right;
    min-width: 85px;
    font-variant-numeric: tabular-nums;
}

.report-table tbody tr:nth-child(even) {
    background: #fafafa;
}

.report-table tbody tr:hover {
    background: #eef6ff;
}


/* ---------- Buttons ---------- */

.report-actions {
    margin-top: 30px;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.report-actions .btn {
    min-height: 44px;
}


/* ---------- Accessibility ---------- */

.report-card *:focus-visible {
    outline: 3px solid #005FCC;
    outline-offset: 2px;
}

.visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
}


/* ---------- Tablet ---------- */

@media (max-width: 992px) {

    .report-card {
        padding: 20px;
    }

    .report-title {
        font-size: 1.75rem;
    }
}


/* ---------- Mobile ---------- */

@media (max-width: 768px) {

    .report-card {
        margin: 12px;
        padding: 16px;
    }

    .report-title,
    .report-subtitle {
        text-align: center;
    }

.report-table th:first-child,
    .report-table td:first-child {
        position: static;
        left: auto;
        z-index: auto;
        min-width: 260px;
    }



    .report-actions {
        flex-direction: column;
    }

    .report-actions .btn {
        width: 100%;
    }

    /* Keep the table full size and let it scroll */
    .report-table {
        min-width: 1100px;
    }
    /* Financial Report Helpers */

.line {
    border-top: 2px solid #999;
}

.thin {
    border-top: 1px solid #d9d9d9;
}

.dotted {
    border-top: 2px dotted #999;
}

.underline {
    display: inline-block;
    border-bottom: 2px solid #333;
}

.sub {
    padding-left: 20px;
}

.section {
    margin-top: 20px;
}
}


/* ---------- Print ---------- */

@media print {

    body {
        background: #fff;
    }

    .report-card {
        margin: 0;
        padding: 0;
        width: 100%;
        box-shadow: none;
        border: none;
    }

    nav,
    footer,
    .navbar,
    .report-actions {
        display: none !important;
    }

    .report-table-wrapper {
        overflow: visible;
    }

    .report-table {
        width: 100%;
        min-width: 100%;
    }

    .report-table th:first-child,
    .report-table td:first-child {
        position: static;
    }
}