/* /Pages/Periods.razor.rz.scp.css */
/* Periods & exchange rates catalogue (SPEC-005).
   The list is unbounded by nature — one row per month, forever — so it is grouped by year,
   filterable, and scrolls inside its own pane instead of stretching the page. */

.periods-filters[b-dqbg0nkyay] {
    display: grid;
    grid-template-columns: 1fr 148px;
    gap: 10px;
    margin-bottom: 12px;
}

/* ---------------------------------------------------------- Pinned period -- */
/* The month currently being captured, lifted out of the accordion. */
.period-pin[b-dqbg0nkyay] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    margin-bottom: 12px;
    padding: 10px 14px;
    cursor: pointer;
    text-align: left;
    background: var(--mist);
    border: 1px solid var(--mist-line);
    border-radius: var(--gfg-r-md);
    box-shadow: inset 3px 0 0 var(--turq-deep);
    transition: background-color .15s var(--gfg-ease), box-shadow .15s var(--gfg-ease);
}

    .period-pin:hover[b-dqbg0nkyay] {
        background: var(--mist-2);
    }

    .period-pin.is-on[b-dqbg0nkyay] {
        box-shadow: inset 4px 0 0 var(--turq-deep), var(--shadow-2);
    }

    .period-pin:focus-visible[b-dqbg0nkyay] {
        outline: 2px solid var(--turq-deep);
        outline-offset: 2px;
    }

.pin-eyebrow[b-dqbg0nkyay] {
    font-family: var(--gfg-font-head);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: var(--muted);
}

.pin-label[b-dqbg0nkyay] {
    flex: 1 1 auto;
    font-family: var(--gfg-font-head);
    font-size: 13.5px;
    font-weight: 700;
    color: var(--ink);
}

/* ---------------------------------------------------------------- The list -- */
.periods-list[b-dqbg0nkyay] {
    max-height: calc(100vh - 330px);
    overflow-y: auto;
    overscroll-behavior: contain;
    border: 1px solid var(--hair);
    border-radius: var(--gfg-r-md);
    background: var(--surface);
}

.periods-empty[b-dqbg0nkyay] {
    padding: 26px 16px;
    text-align: center;
    font-size: 12px;
    color: var(--muted);
}

/* Year headers stay put while their months scroll under them. */
.periods-list[b-dqbg0nkyay]  .periods-year {
    position: sticky;
    top: 0;
    z-index: 2;
    min-height: 38px;
    padding: 0 14px;
    background: var(--mist);
    border-bottom: 1px solid var(--hair);
}

.periods-list[b-dqbg0nkyay]  .mud-expand-panel {
    background: transparent;
}

.periods-list[b-dqbg0nkyay]  .mud-expand-panel-content {
    padding: 0;
}

.year-head[b-dqbg0nkyay] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    width: 100%;
}

.year-num[b-dqbg0nkyay] {
    font-family: var(--gfg-font-head);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .03em;
    color: var(--ink);
    font-variant-numeric: tabular-nums;
}

.year-meta[b-dqbg0nkyay] {
    margin-left: auto;
    font-size: 10.5px;
    font-weight: 600;
    color: var(--muted);
}

/* ----------------------------------------------------------------- A month -- */
.period-row[b-dqbg0nkyay] {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 14px 8px 12px;
    border: 0;
    border-bottom: 1px solid var(--hair);
    background: transparent;
    cursor: pointer;
    text-align: left;
    transition: background-color .12s var(--gfg-ease);
}

    .period-row:hover[b-dqbg0nkyay] {
        background: var(--mist);
    }

    .period-row.is-on[b-dqbg0nkyay] {
        background: var(--mist-2);
        box-shadow: inset 3px 0 0 var(--turq-deep);
    }

    .period-row:focus-visible[b-dqbg0nkyay] {
        outline: 2px solid var(--turq-deep);
        outline-offset: -2px;
    }

.period-row__label[b-dqbg0nkyay] {
    flex: 1 1 auto;
    font-family: var(--gfg-font-head);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ink);
}

.period-row__stage[b-dqbg0nkyay],
.period-row__status[b-dqbg0nkyay] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--muted);
    white-space: nowrap;
}

.period-row__stage[b-dqbg0nkyay] {
    padding: 1px 6px;
    border: 1px solid var(--hair);
    border-radius: 999px;
    color: var(--faint);
}

/* A dot rather than a saturated filled chip per row: with 19+ rows the chips were the loudest
   thing on the page. Status is still spelled out in text beside it. */
.status-dot[b-dqbg0nkyay] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.s-draft[b-dqbg0nkyay] {
    background: var(--faint);
}

.s-inreview[b-dqbg0nkyay] {
    background: var(--mod);
}

.s-published[b-dqbg0nkyay] {
    background: var(--pos);
}

.s-unpublished[b-dqbg0nkyay] {
    background: var(--neg);
}

/* ------------------------------------------------------------ Detail panel -- */
/* Keeps the rates form in view while the list on the left is scrolled. */
@media (min-width: 960px) {
    .periods-detail[b-dqbg0nkyay] {
        position: sticky;
        top: 84px;
        align-self: flex-start;
    }
}
/* /Pages/Report.razor.rz.scp.css */
/* Consolidated report (SPEC-009) — Grupo Firmas Globales.
   Design tokens (--teal-*, --turq*, --ink/--muted/--faint, --pos/--mod/--neg) are global and live
   in wwwroot/css/gfg-tokens.css, so this page follows the app theme in light and dark instead of
   hard-coding a palette of its own. Figures use Montserrat tabular numerals so every column lines
   up; Larsseit has no reliable tabular figures and must not be used for amounts. */

.report-print-area[b-sagfuvkxt6] {
    color: var(--ink);
    font-family: var(--gfg-font-head);
    font-variant-numeric: tabular-nums lining-nums;
    font-feature-settings: "tnum" 1, "lnum" 1;
}

/* ====================== Control strip ====================== */
.report-bar[b-sagfuvkxt6] {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 18px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--hair);
}

.report-bar__spacer[b-sagfuvkxt6] {
    flex: 1 1 auto;
}

.report-bar__range[b-sagfuvkxt6] {
    font-family: var(--gfg-font-head);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .01em;
    color: var(--ink);
}

.report-bar__stamp[b-sagfuvkxt6] {
    font-family: var(--gfg-font-head);
    font-size: 10.5px;
    font-weight: 500;
    color: var(--faint);
}

/* Segmented control — 30px tall. The old MudToggleGroup carried the whole range in its labels
   ("Acumulado · Enero–Julio 2026") and ate a full band; the range now sits beside it as text. */
.seg[b-sagfuvkxt6] {
    display: inline-flex;
    padding: 3px;
    gap: 2px;
    background: var(--mist);
    border: 1px solid var(--hair);
    border-radius: 999px;
}

.seg__btn[b-sagfuvkxt6] {
    appearance: none;
    border: 0;
    cursor: pointer;
    min-width: 96px;
    height: 24px;
    padding: 0 16px;
    border-radius: 999px;
    background: transparent;
    color: var(--muted);
    font-family: var(--gfg-font-head);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .02em;
    transition: background-color .15s var(--gfg-ease), color .15s var(--gfg-ease);
}

    .seg__btn:hover[b-sagfuvkxt6] {
        color: var(--ink);
    }

    .seg__btn.is-on[b-sagfuvkxt6] {
        background: var(--surface);
        color: var(--ink);
        box-shadow: var(--shadow-1);
    }

    .seg__btn:focus-visible[b-sagfuvkxt6] {
        outline: 2px solid var(--turq-deep);
        outline-offset: 1px;
    }

/* Legend, inline in the strip instead of a separate block under the table. */
.report-legend[b-sagfuvkxt6] {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    font-family: var(--gfg-font-head);
    font-size: 10.5px;
    font-weight: 600;
    color: var(--muted);
}

    .report-legend .dot[b-sagfuvkxt6] {
        margin-right: 5px;
    }

/* ====================== Trend dot ====================== */
/* A round mark, not an arrow: at 9px the ▲/↗/▼ glyphs were indistinguishable. Colour is
   redundant — every amount beside a dot is signed. */
.dot[b-sagfuvkxt6] {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: 0 0 auto;
    vertical-align: middle;
}

.t-up[b-sagfuvkxt6] {
    background: var(--pos);
}

.t-mod[b-sagfuvkxt6] {
    background: var(--mod);
}

.t-down[b-sagfuvkxt6] {
    background: var(--neg);
}

.t-flat[b-sagfuvkxt6] {
    background: var(--faint);
}

/* ====================== KPIs ====================== */
.kpis-primary[b-sagfuvkxt6] {
    display: grid;
    grid-template-columns: minmax(280px, 1.5fr) repeat(auto-fit, minmax(170px, 1fr));
    gap: 12px;
}

.kpis-sbu[b-sagfuvkxt6] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(158px, 1fr));
    gap: 10px;
}

.kpi[b-sagfuvkxt6] {
    position: relative;
    background: var(--surface);
    border: 1px solid var(--hair);
    border-radius: 14px;
    padding: 12px 15px 11px;
    overflow: hidden;
    box-shadow: var(--shadow-1);
    transition: box-shadow .18s var(--gfg-ease);
}

    /* No lift on hover: a dense KPI strip that jumps around reads as noise in a board report. */
    .kpi:hover[b-sagfuvkxt6] {
        box-shadow: var(--shadow-2);
    }

    .kpi:not(.kpi-hero)[b-sagfuvkxt6]::before {
        content: "";
        position: absolute;
        inset: 0 auto 0 0;
        width: 3px;
        background: linear-gradient(180deg, var(--turq), var(--turq-deep));
    }

/* Hero — the one dark anchor on the page. */
.kpi-hero[b-sagfuvkxt6] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 16px;
    padding: 13px 17px 12px;
    border: none;
    color: #fff;
    background:
        radial-gradient(120% 140% at 100% 0%, rgba(113, 228, 209, .20) 0%, transparent 55%),
        linear-gradient(155deg, #2f3d47 0%, #28333b 45%, #1b232a 100%);
}

.kpi-eyebrow[b-sagfuvkxt6] {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
    color: var(--muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.kpi-hero .kpi-eyebrow[b-sagfuvkxt6] {
    color: var(--turq);
}

.kpi-value[b-sagfuvkxt6] {
    font-size: 21px;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.05;
    margin-top: 7px;
    color: var(--ink);
    font-variant-numeric: tabular-nums lining-nums;
}

.kpi-hero .kpi-value[b-sagfuvkxt6] {
    font-size: 28px;
    color: #fff;
}

.kpi-value.small[b-sagfuvkxt6] {
    font-size: 19px;
}

.kpi-value.tiny[b-sagfuvkxt6] {
    font-size: 16px;
    margin-top: 0;
}

.kpi-unit[b-sagfuvkxt6] {
    margin-top: 4px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .5);
}

.kpi-foot[b-sagfuvkxt6] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 9px;
}

.kpi-sub[b-sagfuvkxt6] {
    font-size: 10px;
    color: var(--faint);
    font-weight: 600;
}

.kpi-hero .kpi-sub[b-sagfuvkxt6] {
    color: rgba(255, 255, 255, .58);
}

/* SBU cards collapse to two lines: name, then value + variation on one row. */
.kpi-sbu[b-sagfuvkxt6] {
    padding: 10px 13px 9px;
    border-radius: 12px;
}

.kpi-row[b-sagfuvkxt6] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    margin-top: 6px;
}

/* The SBU card's variation needs its baseline year spelled out — a bare "+8.0%" beside a total
   is ambiguous to a reader scanning the strip. */
.kpi-delta[b-sagfuvkxt6] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}

/* Chips */
.chip[b-sagfuvkxt6] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .01em;
    padding: 2px 8px;
    border-radius: 999px;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.c-up[b-sagfuvkxt6] {
    color: var(--pos);
    background: var(--pos-soft);
}

.c-mod[b-sagfuvkxt6] {
    color: var(--mod);
    background: var(--mod-soft);
}

.c-down[b-sagfuvkxt6] {
    color: var(--neg);
    background: var(--neg-soft);
}

.c-flat[b-sagfuvkxt6] {
    color: var(--muted);
    background: var(--flat-soft);
}

.kpi-hero .c-up[b-sagfuvkxt6] {
    color: #8ff0cf;
    background: rgba(113, 228, 209, .14);
}

.kpi-hero .c-down[b-sagfuvkxt6] {
    color: #ffb0a4;
    background: rgba(192, 57, 43, .22);
}

.kpi-hero .c-mod[b-sagfuvkxt6] {
    color: #ffc79a;
    background: rgba(194, 65, 12, .24);
}

.kpi-hero .c-flat[b-sagfuvkxt6] {
    color: rgba(255, 255, 255, .8);
    background: rgba(255, 255, 255, .12);
}

/* ====================== Four-year trend bars ====================== */
.trend[b-sagfuvkxt6] {
    display: flex;
    align-items: flex-end;
    gap: 5px;
    padding-left: 4px;
}

.trend__col[b-sagfuvkxt6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

.trend__track[b-sagfuvkxt6] {
    width: 10px;
    height: 44px;
    display: flex;
    align-items: flex-end;
    background: rgba(255, 255, 255, .07);
    border-radius: 3px;
}

.trend__fill[b-sagfuvkxt6] {
    width: 100%;
    border-radius: 3px;
    background: rgba(255, 255, 255, .28);
}

.trend__col.is-now .trend__fill[b-sagfuvkxt6] {
    background: linear-gradient(180deg, var(--turq), #2fae9a);
}

/* A year with no data is hatched, never drawn as a zero bar (RN-4). */
.trend__fill.is-nil[b-sagfuvkxt6] {
    background: repeating-linear-gradient(45deg, rgba(255,255,255,.20) 0 2px, transparent 2px 4px);
}

.trend__yr[b-sagfuvkxt6] {
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: .03em;
    color: rgba(255, 255, 255, .5);
    font-variant-numeric: tabular-nums;
}

.trend__col.is-now .trend__yr[b-sagfuvkxt6] {
    color: var(--turq);
}

/* ====================== Table ====================== */
.table-wrap[b-sagfuvkxt6] {
    overflow: auto;
    max-height: calc(100vh - 330px);
    overscroll-behavior: contain;
    border-radius: 14px;
    border: 1px solid var(--hair);
    background: var(--surface);
    box-shadow: var(--shadow-2);
}

.report-table[b-sagfuvkxt6] {
    /* Each header row sticks at its own offset, so those offsets must equal the rows' real
       heights. Vertical padding is stripped from the header cells below and the heights are
       declared here — `height` on a th is a minimum, so content must fit inside these. */
    --h-row1: 32px;
    --h-row2: 22px;
    --h-row3: 24px;
    width: 100%;
    min-width: 1060px;
    /* `separate` is required: Chromium drops collapsed borders on sticky cells, which would erase
       every rule in the header and the first column once they detach. */
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
    font-size: 11.5px;
    font-variant-numeric: tabular-nums lining-nums;
}

.report-table col.c-name[b-sagfuvkxt6] {
    width: 232px;
}

.report-table col.c-yr[b-sagfuvkxt6] {
    width: 84px;
}

.report-table col.c-dol[b-sagfuvkxt6] {
    width: 92px;
}

.report-table col.c-pct[b-sagfuvkxt6] {
    width: 62px;
}

/* ---- header: three sticky rows ---- */
.report-table thead th[b-sagfuvkxt6] {
    position: sticky;
    z-index: 3;
    background: var(--teal-800);
    color: #fff;
    font-weight: 700;
    /* No vertical padding: the row height must be exactly what --h-row* declares, otherwise the
       sticky offsets drift and the rows overlap each other. */
    padding: 0 9px;
    line-height: 1.2;
    text-align: right;
    white-space: nowrap;
    border-right: 1px solid rgba(255, 255, 255, .07);
    border-bottom: 1px solid rgba(255, 255, 255, .10);
}

.report-table thead tr:nth-child(1) th[b-sagfuvkxt6] {
    top: 0;
    height: var(--h-row1);
}

.report-table thead tr:nth-child(2) th[b-sagfuvkxt6] {
    top: var(--h-row1);
    height: var(--h-row2);
}

.report-table thead tr:nth-child(3) th[b-sagfuvkxt6] {
    top: calc(var(--h-row1) + var(--h-row2));
    height: var(--h-row3);
}

/* The rowspan=3 corner sticks on both axes and must outrank every other cell. */
.report-table thead th.h-name[b-sagfuvkxt6] {
    top: 0;
    left: 0;
    z-index: 5;
    text-align: left;
    vertical-align: bottom;
    font-size: 11px;
    letter-spacing: .05em;
    text-transform: uppercase;
    box-shadow: 1px 0 0 rgba(255, 255, 255, .10);
}

.report-table thead th.h-group[b-sagfuvkxt6] {
    text-align: center;
    letter-spacing: .14em;
    font-size: 11.5px;
    text-transform: uppercase;
}

.report-table thead th.h-var[b-sagfuvkxt6] {
    color: var(--turq);
}

.h-hint[b-sagfuvkxt6] {
    display: block;
    font-size: 8.5px;
    font-weight: 600;
    letter-spacing: .06em;
    opacity: .55;
    text-transform: none;
    margin-top: 1px;
}

.report-table thead th.h-sub[b-sagfuvkxt6] {
    text-align: center;
    background: var(--teal-700);
    font-size: 10.5px;
    letter-spacing: .06em;
    border-left: 1px solid rgba(255, 255, 255, .14);
}

.report-table thead th.h-col[b-sagfuvkxt6] {
    background: var(--teal-700);
    font-size: 10px;
    font-weight: 700;
    color: #cdd7db;
}

/* Current year: weight plus a turquoise underline, instead of the old turquoise column fill that
   competed with the figures and printed as a grey wash. */
.report-table thead th.h-col.lead[b-sagfuvkxt6] {
    color: #fff;
    font-weight: 800;
    letter-spacing: .03em;
    box-shadow: inset 0 -3px 0 var(--turq);
    border-right: 1px solid rgba(255, 255, 255, .22);
}

.h-prev[b-sagfuvkxt6] {
    display: inline-block;
    margin-left: 5px;
    padding: 0 5px;
    border-radius: 3px;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #1b232a;
    background: var(--turq);
}

/* ---- body ---- */
.report-table tbody td[b-sagfuvkxt6] {
    border-bottom: 1px solid var(--hair);
    padding: 4px 9px;
    text-align: right;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Sticky first column. It needs its own opaque background per row kind — a sticky cell does not
   inherit the row's paint, so without this the figures scroll through underneath it. */
.report-table tbody td.name[b-sagfuvkxt6] {
    position: sticky;
    left: 0;
    z-index: 2;
    text-align: left;
    font-weight: 600;
    padding-left: 11px;
    background: var(--surface);
    box-shadow: 1px 0 0 var(--hair), 8px 0 12px -10px rgba(40, 51, 59, .28);
}

.report-table tbody tr.r-item:nth-of-type(even) td[b-sagfuvkxt6],
.report-table tbody tr.r-item:nth-of-type(even) td.name[b-sagfuvkxt6] {
    background: var(--paper);
}

.report-table tbody tr:hover td[b-sagfuvkxt6],
.report-table tbody tr:hover td.name[b-sagfuvkxt6] {
    background: var(--mist);
}

/* The current-year figure carries full ink and weight; prior years step back. That hierarchy is
   what marks the column now. */
.report-table td.yr[b-sagfuvkxt6] {
    font-weight: 400;
    color: var(--muted);
}

.report-table td.yr-now[b-sagfuvkxt6] {
    font-weight: 700;
    color: var(--ink);
    border-right: 1px solid var(--mist-line);
}

.nil[b-sagfuvkxt6] {
    color: var(--faint);
    font-weight: 400;
}

.report-table td.name.ind1[b-sagfuvkxt6] {
    padding-left: 28px;
    font-weight: 500;
}

.report-table td.name.ind2[b-sagfuvkxt6] {
    padding-left: 46px;
    font-weight: 400;
    color: var(--muted);
}

.note[b-sagfuvkxt6] {
    font-size: 8.5px;
    color: var(--mod);
    font-weight: 700;
    margin-left: 6px;
}

/* Variance cells: dot pinned left so every mark forms its own column, amount right-aligned. */
.report-table td.dollar[b-sagfuvkxt6] {
    position: relative;
    padding-left: 22px;
    padding-right: 8px;
}

    .report-table td.dollar .dot[b-sagfuvkxt6] {
        position: absolute;
        left: 8px;
        top: 50%;
        transform: translateY(-50%);
    }

.report-table td.pct[b-sagfuvkxt6] {
    padding-right: 12px;
}

.pct-sign[b-sagfuvkxt6] {
    font-size: 8.5px;
    opacity: .55;
    margin-left: 1px;
}

/* ---- row kinds ---- */
.report-table tbody tr.r-division td[b-sagfuvkxt6],
.report-table tbody tr.r-division td.name[b-sagfuvkxt6] {
    background: var(--mist);
    border-top: 1px solid var(--mist-line);
    border-bottom: 1px solid var(--mist-line);
    font-weight: 700;
    color: var(--ink);
}

.report-table tbody tr.r-division td.name[b-sagfuvkxt6] {
    font-weight: 800;
    letter-spacing: .02em;
}

.report-table tbody tr.r-division:hover td[b-sagfuvkxt6],
.report-table tbody tr.r-division:hover td.name[b-sagfuvkxt6] {
    background: var(--mist-2);
}

.report-table tbody tr.r-sbu td[b-sagfuvkxt6],
.report-table tbody tr.r-sbu td.name[b-sagfuvkxt6] {
    background: var(--teal-600);
    color: #fff;
    font-weight: 700;
    border-bottom: 1px solid var(--teal-700);
}

.report-table tbody tr.r-sbu td.name[b-sagfuvkxt6] {
    font-weight: 800;
    letter-spacing: .03em;
    box-shadow: inset 4px 0 0 var(--turq), 8px 0 12px -10px rgba(0, 0, 0, .4);
}

.report-table tbody tr.r-sbu:hover td[b-sagfuvkxt6],
.report-table tbody tr.r-sbu:hover td.name[b-sagfuvkxt6] {
    background: var(--teal-500);
}

.report-table tbody tr.r-grandtotal td[b-sagfuvkxt6],
.report-table tbody tr.r-grandtotal td.name[b-sagfuvkxt6],
.report-table tbody tr.r-grandtotal:hover td[b-sagfuvkxt6],
.report-table tbody tr.r-grandtotal:hover td.name[b-sagfuvkxt6] {
    background: var(--teal-950);
    color: #fff;
    font-weight: 800;
    font-size: 12.5px;
    padding-top: 9px;
    padding-bottom: 9px;
    border-top: 3px solid var(--turq);
}

.report-table tbody tr.r-grandtotal td.name[b-sagfuvkxt6] {
    letter-spacing: .04em;
}

/* Figures on the dark bands: prior years stay legible but recede, current year is full white. */
.report-table tbody tr.r-sbu td.yr[b-sagfuvkxt6],
.report-table tbody tr.r-grandtotal td.yr[b-sagfuvkxt6] {
    color: rgba(255, 255, 255, .72);
}

.report-table tbody tr.r-sbu td.yr-now[b-sagfuvkxt6],
.report-table tbody tr.r-grandtotal td.yr-now[b-sagfuvkxt6],
.report-table tbody tr.r-sbu td.dollar[b-sagfuvkxt6],
.report-table tbody tr.r-sbu td.pct[b-sagfuvkxt6],
.report-table tbody tr.r-grandtotal td.dollar[b-sagfuvkxt6],
.report-table tbody tr.r-grandtotal td.pct[b-sagfuvkxt6] {
    color: #fff;
    border-right-color: rgba(255, 255, 255, .22);
}

.report-table tbody tr.r-sbu .nil[b-sagfuvkxt6],
.report-table tbody tr.r-grandtotal .nil[b-sagfuvkxt6] {
    color: rgba(255, 255, 255, .55);
}

/* On the dark bands the semantic dots need their lighter siblings to stay visible. */
.report-table tbody tr.r-sbu .t-up[b-sagfuvkxt6],
.report-table tbody tr.r-grandtotal .t-up[b-sagfuvkxt6] {
    background: #8ff0cf;
}

.report-table tbody tr.r-sbu .t-mod[b-sagfuvkxt6],
.report-table tbody tr.r-grandtotal .t-mod[b-sagfuvkxt6] {
    background: #ffc79a;
}

.report-table tbody tr.r-sbu .t-down[b-sagfuvkxt6],
.report-table tbody tr.r-grandtotal .t-down[b-sagfuvkxt6] {
    background: #ffb0a4;
}

/* ====================== Responsive ====================== */
@media (max-width: 960px) {
    .kpis-primary[b-sagfuvkxt6] {
        grid-template-columns: 1fr 1fr;
    }

    .kpi-hero[b-sagfuvkxt6] {
        grid-column: span 2;
    }

    .table-wrap[b-sagfuvkxt6] {
        max-height: none;
    }
}

@media (max-width: 560px) {
    .kpis-primary[b-sagfuvkxt6] {
        grid-template-columns: 1fr;
    }

    .kpi-hero[b-sagfuvkxt6] {
        grid-column: span 1;
    }
}

/* ====================== Print ====================== */
/* Sticky positioning and a capped height make no sense on paper and would clip rows. */
@media print {
    .table-wrap[b-sagfuvkxt6] {
        max-height: none;
        overflow: visible;
        border: none;
        box-shadow: none;
    }

    .report-table[b-sagfuvkxt6] {
        min-width: 0;
    }

        .report-table thead[b-sagfuvkxt6] {
            display: table-header-group; /* repeat the header on every printed page */
        }

        .report-table thead th[b-sagfuvkxt6],
        .report-table tbody td.name[b-sagfuvkxt6] {
            position: static;
            box-shadow: none;
        }

    .report-bar[b-sagfuvkxt6] {
        border-bottom: none;
        padding-bottom: 0;
    }

    .kpi[b-sagfuvkxt6] {
        break-inside: avoid;
    }
}
