/* /Components/Layout/MainLayout.razor.rz.scp.css */
#blazor-error-ui[b-o4nhi3fbyo] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-o4nhi3fbyo] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-wlrudk2eve],
.components-reconnect-repeated-attempt-visible[b-wlrudk2eve],
.components-reconnect-failed-visible[b-wlrudk2eve],
.components-pause-visible[b-wlrudk2eve],
.components-resume-failed-visible[b-wlrudk2eve],
.components-rejoining-animation[b-wlrudk2eve] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-wlrudk2eve],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-wlrudk2eve],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-wlrudk2eve],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-wlrudk2eve],
#components-reconnect-modal.components-reconnect-retrying[b-wlrudk2eve],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-wlrudk2eve],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-wlrudk2eve],
#components-reconnect-modal.components-reconnect-failed[b-wlrudk2eve],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-wlrudk2eve] {
    display: block;
}


#components-reconnect-modal[b-wlrudk2eve] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-wlrudk2eve 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-wlrudk2eve 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-wlrudk2eve 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-wlrudk2eve]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-wlrudk2eve 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-wlrudk2eve {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-wlrudk2eve {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-wlrudk2eve {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-wlrudk2eve] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-wlrudk2eve] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-wlrudk2eve] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-wlrudk2eve] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-wlrudk2eve] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-wlrudk2eve] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-wlrudk2eve] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-wlrudk2eve 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-wlrudk2eve] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-wlrudk2eve {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Configuracion/CatalogosOficiales.razor.rz.scp.css */
/* CAT-OFI-001A (FASE 7) — estilo con alcance de la pantalla de catálogos oficiales. */
.badge-warn[b-x6mdwbxwg7] { background: #fef3c7; color: #92400e; border: 1px solid #fde68a; }
.badge-ok[b-x6mdwbxwg7] { background: #dcfce7; color: #166534; border: 1px solid #bbf7d0; }

/* CAT-OFI-001B (FASE 11) — formulario de importación compacto en la columna de acciones. */
.catalogo-import[b-x6mdwbxwg7] { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.catalogo-import .form-input[b-x6mdwbxwg7] { max-width: 12rem; }
/* /Components/Pages/FacturacionElectronica/Recepcion/Automatica.razor.rz.scp.css */
/* INFRA-003A · Estilos propios de la pantalla de recepción automática. Autocontenidos (scoped) para no
   depender de clases de otras páginas. */

.ra-stat[b-8cgqndomv0] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    min-width: 6rem;
}

.ra-stat-val[b-8cgqndomv0] {
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.2;
    color: #1e293b;
}

.ra-stat-lbl[b-8cgqndomv0] {
    font-size: .78rem;
    color: #64748b;
}

.ra-tabla[b-8cgqndomv0] {
    width: 100%;
    border-collapse: collapse;
}

.ra-tabla th[b-8cgqndomv0],
.ra-tabla td[b-8cgqndomv0] {
    padding: .5rem .75rem;
    text-align: left;
    border-bottom: 1px solid #e2e8f0;
    vertical-align: middle;
}

.ra-tabla th[b-8cgqndomv0] {
    font-size: .8rem;
    color: #475569;
    font-weight: 600;
}

/* M365-UI-SINCRONIZAR · Botón en ejecución. `pointer-events: none` cierra la ventana entre el clic y el momento
   en que `disabled` se aplica de verdad (mismo recurso ya certificado en UI-M365-002A). No se llama `.is-busy`
   a propósito: esa es la clase que el limpiador global de `emsan-historial.js` restaura, y aquí el indicador
   debe sostenerse hasta que la respuesta del POST reemplace la pantalla. */
.ra-ocupado[b-8cgqndomv0] {
    pointer-events: none;
    opacity: .65;
}

.ra-badge[b-8cgqndomv0] {
    display: inline-block;
    margin-left: .45rem;
    padding: .1rem .45rem;
    font-size: .7rem;
    font-weight: 600;
    color: #92400e;
    background: #fef3c7;
    border-radius: .6rem;
    vertical-align: middle;
}
/* /Components/Pages/FacturacionElectronica/Recepcion/CentroSalud.razor.rz.scp.css */
/* FE-025G · Centro de salud de la recepción. Estilos locales del panel; no altera app.css.
   Prioridad visual: el vistazo de 10 s (héroe + pills + KPIs) manda; el detalle numérico va debajo. */

/* ── 1 · Héroe: semáforo + estado de cada componente ───────────────────────────────────── */
.cs-hero[b-ovogvy2zax] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "luz txt time" "luz pills pills";
    align-items: center;
    gap: .3rem 1rem;
    padding: 1.1rem 1.35rem;
    border-radius: .9rem;
    border: 1px solid var(--emsan-border, #e2e8f0);
    margin: .3rem 0 1.1rem;
}
.cs-hero-luz[b-ovogvy2zax] { grid-area: luz; font-size: 2.6rem; line-height: 1; }
.cs-hero-txt[b-ovogvy2zax] { grid-area: txt; }
.cs-hero-txt h2[b-ovogvy2zax] { margin: 0; font-size: 1.3rem; font-weight: 800; letter-spacing: -.01em; }
.cs-hero-txt p[b-ovogvy2zax] { margin: .1rem 0 0; color: var(--emsan-muted, #64748b); font-size: .9rem; }
.cs-hero-time[b-ovogvy2zax] { grid-area: time; font-size: .78rem; color: var(--emsan-muted, #64748b); white-space: nowrap; }
.cs-hero-pills[b-ovogvy2zax] { grid-area: pills; display: flex; flex-wrap: wrap; gap: .4rem; margin-top: .3rem; }

.cs-scope[b-ovogvy2zax] {
    display: inline-block; font-size: .72rem; font-weight: 700; padding: .12rem .55rem;
    border-radius: 1rem; margin-right: .5rem; vertical-align: middle;
}
.cs-scope-global[b-ovogvy2zax] { background: #e0e7ff; color: #3730a3; }
.cs-scope-empresa[b-ovogvy2zax] { background: #f1f5f9; color: #334155; }

.cs-nivel-ok[b-ovogvy2zax] { background: #f0fdf4; border-color: #bbf7d0; }
.cs-nivel-warn[b-ovogvy2zax] { background: #fffbeb; border-color: #fde68a; }
.cs-nivel-crit[b-ovogvy2zax] { background: #fef2f2; border-color: #fecaca; }

.cs-pill[b-ovogvy2zax] {
    display: inline-flex; align-items: center; gap: .35rem;
    font-size: .78rem; font-weight: 700; padding: .28rem .6rem; border-radius: 1rem;
    background: #fff; border: 1px solid transparent;
}
.cs-pill svg[b-ovogvy2zax] { width: 14px; height: 14px; }

/* Paleta compartida por pills, chips de estado y estados operativos/worker/canal. */
.cs-op-ok[b-ovogvy2zax], .cs-wk-ok[b-ovogvy2zax], .cs-canal-ok[b-ovogvy2zax] { background: #dcfce7; color: #166534; border-color: #bbf7d0; }
.cs-op-warn[b-ovogvy2zax], .cs-wk-warn[b-ovogvy2zax], .cs-canal-warn[b-ovogvy2zax] { background: #fef9c3; color: #854d0e; border-color: #fde68a; }
.cs-op-crit[b-ovogvy2zax], .cs-wk-crit[b-ovogvy2zax], .cs-canal-crit[b-ovogvy2zax] { background: #fee2e2; color: #991b1b; border-color: #fecaca; }
.cs-op-off[b-ovogvy2zax], .cs-wk-off[b-ovogvy2zax], .cs-canal-off[b-ovogvy2zax] { background: #e2e8f0; color: #475569; border-color: #cbd5e1; }

/* ── 2 · KPIs grandes ──────────────────────────────────────────────────────────────────── */
.cs-kpis[b-ovogvy2zax] { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem; margin-bottom: 1.1rem; }
.cs-kpi[b-ovogvy2zax] {
    background: var(--emsan-surface, #fff);
    border: 1px solid var(--emsan-border, #e2e8f0);
    border-radius: .8rem; padding: .9rem 1rem; text-align: center;
}
.cs-kpi b[b-ovogvy2zax] { display: block; font-size: 2rem; font-weight: 800; line-height: 1.05; color: var(--emsan-text, #0f172a); }
.cs-kpi span[b-ovogvy2zax] { font-size: .78rem; color: var(--emsan-muted, #64748b); }
.cs-kpi-ambar[b-ovogvy2zax] { background: #fffbeb; border-color: #fde68a; } .cs-kpi-ambar b[b-ovogvy2zax] { color: #b45309; }
.cs-kpi-rojo[b-ovogvy2zax] { background: #fef2f2; border-color: #fecaca; } .cs-kpi-rojo b[b-ovogvy2zax] { color: #b91c1c; }

/* ── Tarjetas y rejillas ───────────────────────────────────────────────────────────────── */
.cs-grid[b-ovogvy2zax] { display: grid; gap: 1rem; margin-bottom: 1rem; }
.cs-grid-3[b-ovogvy2zax] { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.cs-grid-2[b-ovogvy2zax] { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }

.cs-card[b-ovogvy2zax] {
    background: var(--emsan-surface, #fff);
    border: 1px solid var(--emsan-border, #e2e8f0);
    border-radius: .8rem; padding: 1rem 1.1rem;
}
.cs-card--wide[b-ovogvy2zax] { margin-bottom: 1rem; }
.cs-card-head[b-ovogvy2zax] {
    display: flex; align-items: center; gap: .5rem;
    font-weight: 700; font-size: .98rem; margin-bottom: .85rem; color: var(--emsan-text, #0f172a);
}
.cs-card-head svg[b-ovogvy2zax] { width: 18px; height: 18px; color: var(--emsan-muted, #64748b); }

.cs-chip[b-ovogvy2zax] {
    margin-left: auto; font-size: .72rem; font-weight: 700; padding: .12rem .5rem;
    border-radius: 1rem; background: #f1f5f9; color: #334155;
}

.cs-detalle[b-ovogvy2zax] { margin-bottom: 1rem; }
.cs-detalle > summary[b-ovogvy2zax] {
    cursor: pointer; font-weight: 700; font-size: .92rem; color: var(--emsan-muted, #64748b);
    padding: .4rem 0; margin-bottom: .3rem;
}

.cs-dl[b-ovogvy2zax] { display: flex; flex-direction: column; gap: .3rem; margin: 0; }
.cs-dl > div[b-ovogvy2zax] { display: flex; justify-content: space-between; gap: 1rem; font-size: .84rem; }
.cs-dl dt[b-ovogvy2zax] { color: var(--emsan-muted, #64748b); margin: 0; }
.cs-dl dd[b-ovogvy2zax] { margin: 0; font-weight: 600; text-align: right; }
.cs-dl-inline[b-ovogvy2zax] { margin-top: .8rem; border-top: 1px dashed var(--emsan-border, #e2e8f0); padding-top: .6rem; }
.cs-err[b-ovogvy2zax] { color: #b91c1c; font-weight: 600; word-break: break-word; }
.cs-note[b-ovogvy2zax] { margin: .7rem 0 0; font-size: .8rem; color: var(--emsan-muted, #64748b); }

.cs-canales[b-ovogvy2zax] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .55rem; }
.cs-canales li[b-ovogvy2zax] { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.cs-canal-nom[b-ovogvy2zax] { font-weight: 600; font-size: .88rem; }
.cs-canales small[b-ovogvy2zax] { flex-basis: 100%; color: var(--emsan-muted, #64748b); font-size: .76rem; }

.cs-metrics[b-ovogvy2zax] { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: .6rem; }
.cs-metric[b-ovogvy2zax] {
    background: #f8fafc; border: 1px solid var(--emsan-border, #e2e8f0);
    border-radius: .6rem; padding: .6rem .5rem; text-align: center;
}
.cs-metric b[b-ovogvy2zax] { display: block; font-size: 1.5rem; font-weight: 800; line-height: 1.1; color: var(--emsan-text, #0f172a); }
.cs-metric span[b-ovogvy2zax] { font-size: .74rem; color: var(--emsan-muted, #64748b); }
.cs-metric-verde b[b-ovogvy2zax] { color: #166534; }
.cs-metric-ambar b[b-ovogvy2zax] { color: #b45309; }
.cs-metric-rojo b[b-ovogvy2zax] { color: #b91c1c; }

/* ── Alertas ───────────────────────────────────────────────────────────────────────────── */
.cs-alertas[b-ovogvy2zax] { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .55rem; }
.cs-alerta[b-ovogvy2zax] { display: flex; gap: .7rem; padding: .6rem .75rem; border-radius: .55rem; border-left: 4px solid #cbd5e1; background: #f8fafc; }
.cs-alerta-desc[b-ovogvy2zax] { margin: 0; font-size: .86rem; }
.cs-alerta-accion[b-ovogvy2zax] { margin: .2rem 0 0; font-size: .8rem; color: var(--emsan-muted, #64748b); }
.cs-sev[b-ovogvy2zax] { font-size: .68rem; font-weight: 800; letter-spacing: .03em; white-space: nowrap; }

.cs-sev-info[b-ovogvy2zax] { border-left-color: #3b82f6; } .cs-sev-info .cs-sev[b-ovogvy2zax] { color: #1d4ed8; }
.cs-sev-warn[b-ovogvy2zax] { border-left-color: #f59e0b; } .cs-sev-warn .cs-sev[b-ovogvy2zax] { color: #b45309; }
.cs-sev-err[b-ovogvy2zax] { border-left-color: #ef4444; } .cs-sev-err .cs-sev[b-ovogvy2zax] { color: #b91c1c; }
.cs-sev-crit[b-ovogvy2zax] { border-left-color: #991b1b; background: #fef2f2; } .cs-sev-crit .cs-sev[b-ovogvy2zax] { color: #991b1b; }

.cs-empty[b-ovogvy2zax] { color: var(--emsan-muted, #64748b); font-size: .88rem; margin: .2rem 0 0; }

/* ── Filtros e historial ───────────────────────────────────────────────────────────────── */
.cs-filtros[b-ovogvy2zax] { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-bottom: .9rem; }
.cs-filtros .form-control-sm[b-ovogvy2zax] { max-width: 200px; }

.cs-tabla-wrap[b-ovogvy2zax] { overflow-x: auto; }
.cs-tabla[b-ovogvy2zax] { width: 100%; border-collapse: collapse; font-size: .82rem; }
.cs-tabla th[b-ovogvy2zax], .cs-tabla td[b-ovogvy2zax] { text-align: left; padding: .4rem .5rem; border-bottom: 1px solid var(--emsan-border, #eef2f7); white-space: nowrap; }
.cs-tabla td:last-child[b-ovogvy2zax] { white-space: normal; color: #475569; }
.cs-tabla th[b-ovogvy2zax] { color: var(--emsan-muted, #64748b); font-weight: 600; }
.cs-tabla tr.cs-sev-err td:first-child[b-ovogvy2zax], .cs-tabla tr.cs-sev-crit td:first-child[b-ovogvy2zax] { color: #b91c1c; font-weight: 600; }
.cs-num-rojo[b-ovogvy2zax] { color: #b91c1c; font-weight: 700; }
.cs-num-ambar[b-ovogvy2zax] { color: #b45309; font-weight: 700; }
/* /Components/Pages/FacturacionElectronica/Recepcion/ConfiguracionOAuth.razor.rz.scp.css */
/* INFRA-003B · Estilos propios de la pantalla de configuración OAuth (scoped, autocontenidos). */

.oa-tabla[b-54pq2zuyuz] {
    width: 100%;
    border-collapse: collapse;
}

.oa-tabla th[b-54pq2zuyuz],
.oa-tabla td[b-54pq2zuyuz] {
    padding: .5rem .75rem;
    text-align: left;
    border-bottom: 1px solid #e2e8f0;
    vertical-align: middle;
}

.oa-tabla th[b-54pq2zuyuz] {
    font-size: .8rem;
    color: #475569;
    font-weight: 600;
}

.oa-estructura[b-54pq2zuyuz] {
    max-width: 20rem;
}

.oa-lbl[b-54pq2zuyuz] {
    display: inline-block;
    width: 4rem;
    font-size: .72rem;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.oa-mono[b-54pq2zuyuz] {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: .78rem;
    color: #475569;
    display: inline-block;
    max-width: 14rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: bottom;
}

.oa-estado[b-54pq2zuyuz] {
    display: inline-block;
    padding: .1rem .5rem;
    font-size: .75rem;
    font-weight: 600;
    border-radius: .6rem;
}

.oa-estado-ok[b-54pq2zuyuz] { color: #166534; background: #dcfce7; }
.oa-estado-warn[b-54pq2zuyuz] { color: #92400e; background: #fef3c7; }
.oa-estado-err[b-54pq2zuyuz] { color: #991b1b; background: #fee2e2; }
.oa-estado-off[b-54pq2zuyuz] { color: #475569; background: #e2e8f0; }

.oa-prov[b-54pq2zuyuz] {
    font-weight: 600;
}

.oa-cuenta[b-54pq2zuyuz] {
    color: #64748b;
    font-size: .8rem;
}

.oa-acciones[b-54pq2zuyuz] {
    white-space: nowrap;
}

.oa-botones[b-54pq2zuyuz] {
    display: inline-flex;
    gap: .35rem;
}

.oa-leyenda[b-54pq2zuyuz] {
    display: block;
    margin-top: .25rem;
    font-size: .72rem;
    color: #94a3b8;
    font-style: italic;
}

/* INFRA-003C · Aviso de resultado del flujo OAuth y disposición de los botones de acción. */
.oa-aviso[b-54pq2zuyuz] {
    padding: .6rem .9rem;
    border-radius: .4rem;
    margin: .5rem 0 1rem;
    font-size: .9rem;
    border: 1px solid transparent;
}

.oa-aviso-ok[b-54pq2zuyuz] {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #065f46;
}

.oa-aviso-warn[b-54pq2zuyuz] {
    background: #fffbeb;
    border-color: #fde68a;
    color: #92400e;
}

.oa-botones form[b-54pq2zuyuz] {
    display: inline;
    margin: 0;
}

/* UI-M365-002 · Diálogo de confirmación de EMSAN (mismas clases y reglas que el modal de Ingresos), usado para
   confirmar la desconexión de Microsoft 365. No se usan ventanas del navegador. */
.fe-modal-backdrop[b-54pq2zuyuz] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .55);
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 5vh 1rem;
    z-index: 50;
}

.fe-modal[b-54pq2zuyuz] {
    background: #fff;
    border-radius: 14px;
    width: min(560px, 100%);
    box-shadow: 0 20px 60px rgba(0, 0, 0, .3);
}

.fe-modal-head[b-54pq2zuyuz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.1rem 1.4rem;
    border-bottom: 1px solid #e5e7eb;
}

.fe-modal-head h2[b-54pq2zuyuz] {
    margin: 0;
    font-size: 1.15rem;
}

.fe-modal-close[b-54pq2zuyuz] {
    text-decoration: none;
    color: #6b7280;
    font-size: 1.1rem;
    font-weight: 700;
}

.fe-modal-body[b-54pq2zuyuz] {
    padding: 1.1rem 1.4rem;
}

.fe-modal-body p[b-54pq2zuyuz] {
    margin: 0 0 .6rem;
}

.fe-modal-foot[b-54pq2zuyuz] {
    display: flex;
    gap: .6rem;
    align-items: center;
    justify-content: flex-end;
    padding-top: 1rem;
}

.fe-hint[b-54pq2zuyuz] {
    color: #6b7280;
    font-size: .85rem;
}

/* UI-M365-002A · Botón en curso: se marca ocupado en el mismo tic del envío, antes de que se aplique `disabled`,
   para que un doble clic rápido no llegue a producir un segundo envío. Se mantiene hasta que el PRG retira el
   diálogo del DOM. */
.oa-ocupado[b-54pq2zuyuz] {
    pointer-events: none;
    opacity: .75;
    cursor: default;
}
/* /Components/Pages/FacturacionElectronica/Recepcion/Descubiertos.razor.rz.scp.css */
/* ============================================================================================
   M365-UI-VISIBILIDAD · Bandeja de correos descubiertos.

   Mismo lenguaje visual que el centro de salud (FE-025G): tarjetas claras, chips de estado y
   tabla compacta. La paleta se reutiliza a propósito para que un estado rojo signifique lo
   mismo en las dos pantallas.
   ============================================================================================ */

/* ── Vistazo rápido: los recuentos son enlaces que filtran ──────────────────────────────── */
.dc-kpis[b-qtp1ol2u0e] { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: .6rem; margin-bottom: .9rem; }

.dc-kpi[b-qtp1ol2u0e] {
    display: block; text-align: center; text-decoration: none;
    background: var(--emsan-surface, #fff);
    border: 1px solid var(--emsan-border, #e2e8f0);
    border-radius: .8rem; padding: .75rem .6rem;
    transition: border-color .12s ease, box-shadow .12s ease;
}
.dc-kpi:hover[b-qtp1ol2u0e] { border-color: #94a3b8; box-shadow: 0 1px 4px rgba(15, 23, 42, .08); }
.dc-kpi.is-active[b-qtp1ol2u0e] { border-color: #0f172a; box-shadow: inset 0 0 0 1px #0f172a; }

.dc-kpi b[b-qtp1ol2u0e] { display: block; font-size: 1.7rem; font-weight: 800; line-height: 1.05; color: var(--emsan-text, #0f172a); }
.dc-kpi span[b-qtp1ol2u0e] { font-size: .74rem; color: var(--emsan-muted, #64748b); }

.dc-kpi-ok[b-qtp1ol2u0e] { background: #f0fdf4; border-color: #bbf7d0; } .dc-kpi-ok b[b-qtp1ol2u0e] { color: #166534; }
.dc-kpi-espera[b-qtp1ol2u0e] { background: #eff6ff; border-color: #bfdbfe; } .dc-kpi-espera b[b-qtp1ol2u0e] { color: #1d4ed8; }
.dc-kpi-ambar[b-qtp1ol2u0e] { background: #fffbeb; border-color: #fde68a; } .dc-kpi-ambar b[b-qtp1ol2u0e] { color: #b45309; }
.dc-kpi-rojo[b-qtp1ol2u0e] { background: #fef2f2; border-color: #fecaca; } .dc-kpi-rojo b[b-qtp1ol2u0e] { color: #b91c1c; }
.dc-kpi-gris[b-qtp1ol2u0e] { background: #f8fafc; } .dc-kpi-gris b[b-qtp1ol2u0e] { color: #475569; }

/* ── Aviso de lo que necesita a alguien ─────────────────────────────────────────────────── */
.dc-aviso[b-qtp1ol2u0e] {
    background: #fef2f2; border: 1px solid #fecaca; color: #991b1b;
    border-radius: .6rem; padding: .55rem .8rem; font-size: .86rem; margin: 0 0 .9rem;
}

/* ── Filtros ─────────────────────────────────────────────────────────────────────────────── */
.dc-filtros[b-qtp1ol2u0e] { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-bottom: .9rem; }
.dc-filtros .form-control-sm[b-qtp1ol2u0e] { max-width: 210px; }

/* ── Tabla ───────────────────────────────────────────────────────────────────────────────── */
.dc-tabla-wrap[b-qtp1ol2u0e] { overflow-x: auto; }
.dc-tabla[b-qtp1ol2u0e] { width: 100%; border-collapse: collapse; font-size: .82rem; }
.dc-tabla th[b-qtp1ol2u0e], .dc-tabla td[b-qtp1ol2u0e] {
    text-align: left; padding: .45rem .5rem; vertical-align: top;
    border-bottom: 1px solid var(--emsan-border, #eef2f7); white-space: nowrap;
}
.dc-tabla th[b-qtp1ol2u0e] { color: var(--emsan-muted, #64748b); font-weight: 600; }
.dc-tabla .dc-num[b-qtp1ol2u0e], .dc-tabla th.dc-num[b-qtp1ol2u0e] { text-align: right; }

/* Asunto y diagnóstico son texto: se les deja envolver, con un ancho que no descuadre la tabla. */
.dc-tabla .dc-asunto[b-qtp1ol2u0e], .dc-tabla .dc-diag[b-qtp1ol2u0e] { white-space: normal; max-width: 22rem; }
.dc-tabla .dc-diag[b-qtp1ol2u0e] { color: #475569; }

.dc-sub[b-qtp1ol2u0e] { display: block; font-size: .72rem; color: #94a3b8; }

/* ── Badges de estado ────────────────────────────────────────────────────────────────────── */
.dc-badge[b-qtp1ol2u0e] {
    display: inline-block; font-size: .72rem; font-weight: 700;
    padding: .12rem .5rem; border-radius: 1rem; border: 1px solid transparent; white-space: nowrap;
}
.dc-b-ok[b-qtp1ol2u0e] { background: #dcfce7; color: #166534; border-color: #bbf7d0; }
.dc-b-espera[b-qtp1ol2u0e] { background: #dbeafe; color: #1e40af; border-color: #bfdbfe; }
.dc-b-warn[b-qtp1ol2u0e] { background: #fef9c3; color: #854d0e; border-color: #fde68a; }
.dc-b-crit[b-qtp1ol2u0e] { background: #fee2e2; color: #991b1b; border-color: #fecaca; }
.dc-b-off[b-qtp1ol2u0e] { background: #e2e8f0; color: #475569; border-color: #cbd5e1; }

/* ============================================================================================
   M365-REPROCESO-001 · Acción «Reprocesar»: aviso del desenlace y diálogo de confirmación.

   El diálogo repite el lenguaje visual del de UI-M365-002 (`fe-modal*`). Las reglas se copian
   aquí porque el CSS de Blazor está AISLADO por componente: las de `ConfiguracionOAuth.razor.css`
   no alcanzan a esta pantalla.
   ============================================================================================ */

/* ── Desenlace del último reproceso (llega por PRG, sobre los recuentos) ─────────────────── */
.dc-resultado[b-qtp1ol2u0e] {
    border-radius: .6rem; padding: .55rem .8rem; font-size: .86rem; margin: 0 0 .9rem;
    border: 1px solid transparent;
}
.dc-resultado-bien[b-qtp1ol2u0e] { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.dc-resultado-mal[b-qtp1ol2u0e] { background: #fffbeb; border-color: #fde68a; color: #92400e; }

/* ── Diálogo de confirmación ─────────────────────────────────────────────────────────────── */
.fe-modal-backdrop[b-qtp1ol2u0e] {
    position: fixed; inset: 0; background: rgba(15, 23, 42, .55);
    display: flex; align-items: flex-start; justify-content: center;
    padding: 5vh 1rem; z-index: 50;
}

.fe-modal[b-qtp1ol2u0e] { background: #fff; border-radius: 14px; width: min(560px, 100%); box-shadow: 0 20px 60px rgba(0, 0, 0, .3); }

.fe-modal-head[b-qtp1ol2u0e] {
    display: flex; align-items: center; justify-content: space-between;
    padding: 1.1rem 1.4rem; border-bottom: 1px solid #e5e7eb;
}
.fe-modal-head h2[b-qtp1ol2u0e] { margin: 0; font-size: 1.15rem; }
.fe-modal-close[b-qtp1ol2u0e] { text-decoration: none; color: #6b7280; font-size: 1.1rem; font-weight: 700; }

.fe-modal-body[b-qtp1ol2u0e] { padding: 1.1rem 1.4rem; }
.fe-modal-body p[b-qtp1ol2u0e] { margin: 0 0 .6rem; }

.fe-modal-foot[b-qtp1ol2u0e] { display: flex; gap: .6rem; align-items: center; justify-content: flex-end; padding-top: 1rem; }

.fe-hint[b-qtp1ol2u0e] { color: #6b7280; font-size: .85rem; }

/* Botón en curso: se marca ocupado en el mismo tic del envío, antes de que se aplique `disabled`,
   para que un doble clic rápido no llegue a producir un segundo reproceso. Se mantiene hasta que
   el PRG retira el diálogo del DOM. */
.dc-ocupado[b-qtp1ol2u0e] { pointer-events: none; opacity: .75; cursor: default; }
/* /Components/Shared/ListaCatalogoPaginada.razor.rz.scp.css */
/* CAT-OFI-001A (FASE 6) — estilos con alcance de la lista paginada de catálogo. */
.checkbox-inline[b-7zks8s6jim] { display: inline-flex; align-items: center; gap: .4rem; font-size: .9rem; }

.pager[b-7zks8s6jim] { display: flex; align-items: center; gap: .75rem; margin-top: .75rem; }
.pager-info[b-7zks8s6jim] { color: var(--muted, #667085); font-size: .9rem; }
/* /Components/Shared/SelectorCatalogoOficial.razor.rz.scp.css */
/* CAT-OFI-001A (FASE 6) — estilos con alcance del selector de catálogo oficial. */
.selector-catalogo[b-ucl3w9ac8u] { position: relative; display: flex; flex-direction: column; gap: .35rem; }
.selector-catalogo.is-disabled[b-ucl3w9ac8u] { opacity: .6; pointer-events: none; }

.form-label[b-ucl3w9ac8u] { font-weight: 600; font-size: .9rem; }

.selector-catalogo-box[b-ucl3w9ac8u] { position: relative; }

.selector-catalogo-sel[b-ucl3w9ac8u] {
    display: flex; align-items: center; gap: .5rem; margin-top: .35rem; flex-wrap: wrap;
}
.selector-catalogo-nombre[b-ucl3w9ac8u] { font-weight: 600; }

.selector-catalogo-lista[b-ucl3w9ac8u] {
    position: absolute; z-index: 30; top: 100%; left: 0; right: 0; margin: .25rem 0 0;
    padding: .25rem; list-style: none; max-height: 16rem; overflow-y: auto;
    background: var(--surface, #fff); border: 1px solid var(--border, #d0d5dd);
    border-radius: .5rem; box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.selector-catalogo-item[b-ucl3w9ac8u] {
    display: flex; align-items: center; gap: .5rem; padding: .45rem .6rem;
    border-radius: .4rem; cursor: pointer;
}
.selector-catalogo-item.is-active[b-ucl3w9ac8u],
.selector-catalogo-item:hover[b-ucl3w9ac8u] { background: var(--accent-soft, #eef2ff); }
.selector-catalogo-item.is-info[b-ucl3w9ac8u] { color: var(--muted, #667085); cursor: default; }
.selector-catalogo-item .selector-catalogo-nombre[b-ucl3w9ac8u] { flex: 1 1 auto; }

.badge-warn[b-ucl3w9ac8u] {
    background: #fef3c7; color: #92400e; border: 1px solid #fde68a;
}

.form-validation-msg[b-ucl3w9ac8u] { color: #b42318; font-size: .85rem; }
/* /Components/Shared/SelectorUbicacion.razor.rz.scp.css */
/* CAT-OFI-001B (FASE 6) — estilos con alcance del selector de ubicación. */
.selector-ubicacion[b-q1c5wtxc6k] { display: flex; flex-direction: column; gap: .75rem; }
.selector-ubicacion-modos[b-q1c5wtxc6k] { display: flex; gap: .5rem; }

.form-grid-3[b-q1c5wtxc6k] { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
@media (max-width: 720px) { .form-grid-3[b-q1c5wtxc6k] { grid-template-columns: 1fr; } }

.form-field[b-q1c5wtxc6k] { display: flex; flex-direction: column; gap: .35rem; }
.form-label[b-q1c5wtxc6k] { font-weight: 600; font-size: .9rem; }
.form-validation-msg[b-q1c5wtxc6k] { color: #b42318; font-size: .85rem; }

.selector-ubicacion-lista[b-q1c5wtxc6k] {
    list-style: none; margin: .25rem 0 0; padding: .25rem; max-height: 14rem; overflow-y: auto;
    border: 1px solid var(--border, #d0d5dd); border-radius: .5rem; background: var(--surface, #fff);
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.selector-ubicacion-item[b-q1c5wtxc6k] { padding: .45rem .6rem; border-radius: .4rem; cursor: pointer; }
.selector-ubicacion-item:hover[b-q1c5wtxc6k] { background: var(--accent-soft, #eef2ff); }
