/* rev. 42 — bloque <style> de FlujoCaja/ReportFlujoCajaMain.razor (Mono web), verbatim. */
    /* ══ Contenedor ═════════════════════════════════════════════════════════ */
    .fc-wrap {
        display: flex;
        flex-direction: column;
        height: 100%;
        background: #f8fafc;
    }

    /* ══ Cabecera ═══════════════════════════════════════════════════════════ */
    .fc-head {
        display: flex;
        align-items: center;
        gap: 14px;
        padding: 14px 24px;
        background: linear-gradient(135deg, #1a4fba 0%, #0f3494 100%);
        color: #fff;
        flex-shrink: 0;
    }

    .fc-head-ico {
        width: 38px;
        height: 38px;
        border-radius: 9px;
        background: rgba(255,255,255,.16);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 17px;
        flex-shrink: 0;
    }

    .fc-head-txt {
        flex-grow: 1;
    }

    .fc-head-tit {
        font-size: 16px;
        font-weight: 800;
        letter-spacing: .2px;
    }

    .fc-head-sub {
        font-size: 12px;
        opacity: .86;
        margin-top: 1px;
    }

    .fc-btn-ghost, .fc-btn-blanco {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 5px 12px;
        height: 31px;
        font-size: 13px;
        font-weight: 600;
        border: none;
        border-radius: 6px;
        cursor: pointer;
    }

    .fc-btn-ghost {
        background: rgba(255,255,255,.16);
        color: #fff;
    }

        .fc-btn-ghost:hover:not(:disabled) {
            background: rgba(255,255,255,.26);
        }

    .fc-btn-blanco {
        background: #fff;
        color: #0f3494;
        font-weight: 700;
    }

    .fc-btn-ghost:disabled, .fc-btn-blanco:disabled {
        opacity: .5;
        cursor: default;
    }

    /* ══ Filtros ════════════════════════════════════════════════════════════ */
    .fc-filtros {
        display: flex;
        align-items: flex-end;
        gap: 18px;
        padding: 13px 24px;
        background: #fff;
        border-bottom: 1px solid #e2e8f0;
        flex-shrink: 0;
        flex-wrap: wrap;
    }

    .fc-campo {
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

        .fc-campo label, .fc-lbl {
            font-size: 11px;
            font-weight: 700;
            letter-spacing: .3px;
            text-transform: uppercase;
            color: #94a3b8;
        }

        .fc-campo select, .fc-campo input {
            height: 31px;
            border-radius: 5px;
            border: 1px solid #cbd5e1;
            padding: 0 9px;
            font-size: 13px;
            color: #1e293b;
            background: #fff;
        }

    .fc-flecha {
        padding-bottom: 7px;
        color: #cbd5e1;
    }

    .fc-espacio {
        flex-grow: 1;
    }

    .fc-chip-info {
        display: flex;
        align-items: center;
        gap: 7px;
        background: #f0f4fb;
        border-radius: 5px;
        padding: 6px 11px;
        color: #0f3494;
        font-size: 12px;
        font-weight: 600;
    }

    /* ── Segmentado ── */
    .fc-seg {
        display: flex;
        border: 1px solid #cbd5e1;
        border-radius: 5px;
        overflow: hidden;
        height: 31px;
    }

        .fc-seg button {
            padding: 0 14px;
            border: none;
            border-right: 1px solid #cbd5e1;
            font-size: 13px;
            background: #fff;
            color: #475569;
            cursor: pointer;
        }

            .fc-seg button:last-child {
                border-right: none;
            }

            .fc-seg button.on {
                background: #1a4fba;
                color: #fff;
                font-weight: 700;
            }

            .fc-seg button:disabled {
                opacity: .55;
                cursor: default;
            }

    /* ══ Bases ══════════════════════════════════════════════════════════════ */
    .fc-bases-wrap {
        padding: 13px 24px 0;
        background: #fff;
        flex-shrink: 0;
    }

    .fc-bases {
        display: flex;
        gap: 8px;
    }

    .fc-base {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 1px;
        padding: 8px 16px;
        border-radius: 5px 5px 0 0;
        cursor: pointer;
        border: 1px solid #e2e8f0;
        border-bottom: none;
        background: #fff;
        color: #64748b;
    }

        .fc-base.on {
            border-color: #1a4fba;
            background: #1a4fba;
            color: #fff;
        }

        .fc-base:disabled {
            opacity: .6;
            cursor: default;
        }

    .fc-base-tit {
        font-size: 13.5px;
        font-weight: 700;
    }

    .fc-base-sub {
        font-size: 11px;
        font-weight: 400;
        color: #94a3b8;
    }

    .fc-base.on .fc-base-sub {
        color: #fff;
        opacity: .85;
    }

    .fc-explica {
        display: flex;
        gap: 10px;
        align-items: flex-start;
        background: #e8eef9;
        border-left: 4px solid #1a4fba;
        border-radius: 5px;
        padding: 10px 14px;
        margin-top: 11px;
    }

        .fc-explica i {
            color: #2d6ae0;
            font-size: 13px;
            margin-top: 3px;
        }

        .fc-explica p {
            margin: 0;
            font-size: 13px;
            line-height: 1.55;
            color: #0f3494;
            font-weight: 500;
        }

    /* ══ Granularidad ═══════════════════════════════════════════════════════ */
    .fc-gran {
        display: flex;
        align-items: center;
        gap: 14px;
        padding: 13px 24px;
        background: #fff;
        border-bottom: 1px solid #e2e8f0;
        flex-shrink: 0;
        flex-wrap: wrap;
    }

    .fc-nota-gran {
        font-size: 12.5px;
        color: #64748b;
    }

    .fc-leyenda {
        display: flex;
        align-items: center;
        gap: 16px;
        font-size: 12px;
        color: #64748b;
    }

        .fc-leyenda span {
            display: flex;
            align-items: center;
            gap: 6px;
        }

    .fc-lg {
        display: inline-block;
        width: 10px;
        height: 10px;
        border-radius: 3px;
    }

    .fc-lg-a {
        background: #cbd5e1;
    }

    .fc-lg-b {
        background: #1a4fba;
    }

    .fc-lg-p {
        background: #f1f5f9;
        border: 1px dashed #cbd5e1;
    }

    /* ══ IA · lectura de la matriz ═════════════════════════════════════════ */
    .fc-ia {
        display: flex;
        align-items: flex-start;
        gap: 12px;
        padding: 12px 24px;
        background: #fff;
        border-bottom: 1px solid #e2e8f0;
        flex-shrink: 0;
        flex-wrap: wrap;
    }

    .fc-ia-btn {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        height: 31px;
        padding: 5px 14px;
        border: none;
        border-radius: 6px;
        background: linear-gradient(135deg, #1a4fba 0%, #2d6ae0 100%);
        color: #fff;
        font-size: 13px;
        font-weight: 600;
        cursor: pointer;
        box-shadow: 0 1px 2px rgba(0,0,0,.08);
    }

        .fc-ia-btn:hover {
            filter: brightness(1.06);
        }

    .fc-ia-btn-mini {
        width: 31px;
        height: 31px;
        border: none;
        border-radius: 6px;
        background: #f0f4fb;
        color: #1a4fba;
        cursor: pointer;
        flex-shrink: 0;
        align-self: center;
    }

    .fc-ia-hint {
        font-size: 12.5px;
        color: #64748b;
        align-self: center;
    }

    .fc-ia-cargando {
        display: flex;
        align-items: center;
        gap: 10px;
        font-size: 13px;
        color: #64748b;
    }

    .fc-ia-spinner {
        width: 16px;
        height: 16px;
        border: 2px solid #e8eef9;
        border-top-color: #1a4fba;
        border-radius: 50%;
        animation: fcGirar 0.8s linear infinite; /* reusa el keyframe de .fc-spinner */
    }

    .fc-ia-cards {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        flex: 1;
    }

    .fc-ia-card {
        display: flex;
        align-items: flex-start;
        gap: 9px;
        padding: 9px 12px;
        border-radius: 8px;
        background: #f8fafc;
        border: 1px solid #e2e8f0;
        max-width: 340px;
    }

        .fc-ia-card.destacado {
            border-width: 1.5px;
        }

        .fc-ia-card.ok {
            background: #f0fdf4;
            border-color: #bbf7d0;
        }

        .fc-ia-card.warn {
            background: #fffbeb;
            border-color: #fde68a;
        }

        .fc-ia-card.tip {
            background: #e8eef9;
            border-color: #c7d7f5;
        }

        .fc-ia-card.info {
            background: #f8fafc;
            border-color: #e2e8f0;
        }

    .fc-ia-ico {
        font-size: 15px;
        line-height: 1;
        margin-top: 1px;
    }

    .fc-ia-tit {
        font-size: 12.5px;
        font-weight: 700;
        color: #1e293b;
        margin-bottom: 2px;
    }

    .fc-ia-cuerpo {
        font-size: 12.5px;
        color: #475569;
        line-height: 1.45;
    }

        .fc-ia-cuerpo strong {
            color: #1e293b;
        }

    /* ══ Cuerpo ═════════════════════════════════════════════════════════════ */
    .fc-body {
        flex-grow: 1;
        overflow: auto;
        padding: 0 24px 18px;
        position: relative;
    }

    .fc-overlay {
        position: absolute;
        inset: 0;
        background: rgba(248,250,252,.92);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 11px;
        z-index: 5;
    }

        .fc-overlay p {
            margin: 0;
            font-size: 13.5px;
            font-weight: 600;
            color: #0f3494;
        }

        .fc-overlay small {
            font-size: 12px;
            color: #64748b;
        }

    .fc-spinner {
        width: 34px;
        height: 34px;
        border: 3px solid #e8eef9;
        border-top-color: #1a4fba;
        border-radius: 50%;
        animation: fcGirar .8s linear infinite;
    }

    @keyframes fcGirar {
        to {
            transform: rotate(360deg);
        }
    }

    .fc-vacio {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 8px;
        padding: 60px 20px;
        color: #94a3b8;
    }

        .fc-vacio i {
            font-size: 34px;
            opacity: .45;
        }

        .fc-vacio p {
            margin: 0;
            font-size: 14px;
            font-weight: 500;
            color: #64748b;
        }

    /* ══ Tabla ══════════════════════════════════════════════════════════════ */
    .fc-tabla-wrap {
        overflow: auto;
        background: #fff;
        border: 1px solid #e2e8f0;
        border-radius: 10px;
        margin-top: 14px;
    }

    .fc-tabla {
        width: 100%;
        border-collapse: separate;
        border-spacing: 0;
    }

        .fc-tabla thead th {
            position: sticky;
            top: 0;
            z-index: 3;
            background: #f0f4fb;
            color: #0f3494;
            font-size: 11px;
            font-weight: 700;
            letter-spacing: .3px;
            text-transform: uppercase;
            padding: 9px 12px;
            text-align: right;
            border-bottom: 1px solid #dbe4f5;
            white-space: nowrap;
            min-width: 104px;
        }

    .fc-sticky {
        position: sticky;
        left: 0;
        z-index: 2;
        background: #fff;
        text-align: left !important;
        min-width: 236px;
        padding: 7px 14px;
        border-bottom: 1px solid #f1f5f9;
        font-size: 13px;
        font-weight: 600;
        color: #334155;
    }

    .fc-tabla thead .fc-sticky {
        z-index: 4;
        background: #f0f4fb;
    }

    .fc-th-proy {
        background: #f8fafc !important;
        color: #94a3b8 !important;
    }

    .fc-th-total {
        background: #dbe4f5 !important;
        min-width: 128px;
    }

    .fc-origen {
        display: block;
        font-size: 11px;
        font-weight: 400;
        color: #94a3b8;
        margin-top: 1px;
    }

    .fc-tabla td {
        padding: 0;
        text-align: right;
        border-bottom: 1px solid #f1f5f9;
        vertical-align: top;
        min-width: 104px;
    }

    .fc-proy {
        background: #fcfcfd;
        border-left: 1px dashed #e2e8f0;
    }

    .fc-td-total {
        background: #f8fafc;
        border-left: 1px solid #e2e8f0;
        padding: 7px 14px !important;
        min-width: 128px;
    }

    .fc-guion {
        display: block;
        padding: 7px 12px;
        color: #cbd5e1;
        font-size: 13px;
    }

    /* La celda es un botón de verdad: se abre con teclado y el lector de
       pantalla la anuncia. Un div con onclick no lo hace.                  */
    .fc-celda {
        display: block;
        width: 100%;
        border: none;
        background: transparent;
        padding: 7px 12px;
        text-align: right;
        cursor: pointer;
        font: inherit;
    }

        .fc-celda:hover {
            background: #f0f4fb;
        }

    .fc-va {
        display: block;
        font-size: 12px;
        color: #94a3b8;
        font-variant-numeric: tabular-nums;
        line-height: 1.35;
    }

    .fc-vb {
        display: block;
        font-size: 13.5px;
        font-weight: 700;
        color: #1e293b;
        font-variant-numeric: tabular-nums;
        line-height: 1.35;
    }

        .fc-vb.neg {
            color: #b91c1c;
        }

    .fc-delta {
        display: inline-block;
        font-size: 10.5px;
        font-weight: 700;
        margin-top: 2px;
    }

        .fc-delta.up {
            color: #15803d;
        }

        .fc-delta.down {
            color: #b91c1c;
        }

    /* ── Filas especiales ── */
    .fc-fila-grupo th, .fc-fila-grupo td {
        background: #f0f4fb;
        border-bottom: 1px solid #dbe4f5;
        padding: 5px 14px;
    }

    .fc-fila-grupo .fc-sticky {
        background: #f0f4fb;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: .4px;
        text-transform: uppercase;
        color: #0f3494;
    }

    .fc-fila-total th, .fc-fila-total td {
        background: #f8fafc;
        border-top: 1px solid #e2e8f0;
        border-bottom: 1px solid #e2e8f0;
    }

    .fc-fila-total .fc-sticky {
        background: #f8fafc;
        font-weight: 800;
        text-transform: uppercase;
        font-size: 12.5px;
        letter-spacing: .3px;
    }

    .fc-fila-neto th, .fc-fila-neto td {
        background: #e8eef9;
        border-top: 1px solid #dbe4f5;
        border-bottom: 1px solid #dbe4f5;
    }

    .fc-fila-neto .fc-sticky {
        background: #e8eef9;
        color: #0f3494;
        font-weight: 800;
        text-transform: uppercase;
        font-size: 12.5px;
        letter-spacing: .3px;
    }

    .fc-fila-neto .fc-vb, .fc-fila-acum .fc-vb {
        font-size: 14px;
        font-weight: 800;
        color: #0f3494;
    }

        .fc-fila-neto .fc-vb.neg, .fc-fila-acum .fc-vb.neg {
            color: #b91c1c;
        }

    .fc-fila-acum th, .fc-fila-acum td {
        background: #dbe4f5;
        border-top: 1px solid #c7d6ef;
    }

    .fc-fila-acum .fc-sticky {
        background: #dbe4f5;
        color: #0f3494;
        font-weight: 800;
        text-transform: uppercase;
        font-size: 12.5px;
        letter-spacing: .3px;
    }

    /* ══ Pie ════════════════════════════════════════════════════════════════ */
    .fc-pie {
        display: flex;
        align-items: flex-start;
        gap: 9px;
        margin-top: 12px;
        padding: 0 2px;
    }

        .fc-pie i {
            color: #94a3b8;
            font-size: 13px;
            margin-top: 3px;
        }

        .fc-pie p {
            margin: 0 0 4px;
            font-size: 12px;
            line-height: 1.5;
            color: #64748b;
        }

    .fc-pie-nota {
        color: #b45309 !important;
    }
