/* _content/NetOffice.Web.Forms/Components/AnaDesgloseDialog.razor.rz.scp.css */
/* AnaDesgloseDialog — ventana emergente del desglose analítico (DOC 40e,
   presentación JJ 2026-08-15). El CONTENIDO es el AnaDesglosePanel tal
   cual; aquí solo el chrome del modal: backdrop + ventana centrada +
   adaptación del panel a la ventana.
   SIN transform (a diferencia de .lookup-dialog): un ancestro con
   transform sería containing block de los position:fixed descendientes y
   confinaría los backdrops de los F2 del panel a la ventana. Centrado
   con inset:0 + margin:auto.
   Scoped CSS: el selector raíz va SIN ::deep. */

.anadesgd-backdrop[b-7s265yf1pw] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.35);
    /* Por encima del ExtractoDialog / RevisionPunteoDialog (1100-1102):
       este modal puede abrirse SOBRE ellos (modal sobre modal). */
    z-index: 1103;
}

.anadesgd-dialog[b-7s265yf1pw] {
    position: fixed;
    inset: 0;
    margin: auto;
    width: min(1100px, 92vw);
    height: fit-content;
    max-height: 80vh;
    background: #fff;
    border: 1px solid #888;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35);
    display: flex;
    flex-direction: column;
    z-index: 1104;
    font-size: 13px;
    outline: none;
}

/* Banda de carga — solo mientras el host hace el GET (aún sin panel). */
.anadesgd-toolbar[b-7s265yf1pw] { flex: 0 0 auto; }
.anadesgd-cargando[b-7s265yf1pw] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 22px 16px;
    color: #4a5a6d;
    font-size: 12.5px;
}
@keyframes anadesgd-rotate-b-7s265yf1pw { to { transform: rotate(360deg); } }
.anadesgd-spin[b-7s265yf1pw] {
    display: inline-block;
    animation: anadesgd-rotate-b-7s265yf1pw 0.9s linear infinite;
    color: #2f6ec1;
}

/* ── Adaptación del panel a la ventana ─────────────────────────────────
   El panel nació como fila hija embebida (margen izquierdo + borde azul
   de "hija de la línea"); dentro del modal es la ventana entera: sin
   márgenes ni borde propio, y su cuerpo scrollable pasa de los 320px
   fijos a flexionar hasta el 80vh de la ventana (scroll INTERNO del
   grid — la ventana no scrollea, JJ 2026-08-15). */
.anadesgd-dialog[b-7s265yf1pw]  .anadesg-panel {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    margin: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
}
.anadesgd-dialog[b-7s265yf1pw]  .anadesg-panel > .detalle-toolbar { flex: 0 0 auto; }
.anadesgd-dialog[b-7s265yf1pw]  .anadesg-body {
    flex: 1 1 auto;
    min-height: 120px;
    max-height: none;
}
.anadesgd-dialog[b-7s265yf1pw]  .anadesg-foot { flex: 0 0 auto; }
/* _content/NetOffice.Web.Forms/Components/AnaDesglosePanel.razor.rz.scp.css */
/* AnaDesglosePanel — mini-grid de desglose analítico (DOC 40e, encargo JJ
   2026-08-15; iteración canónica §2.12.1 del mismo día).
   La banda de título (`detalle-toolbar detalle-toolbar-titled` + `tb-btn`),
   la tabla (`detalle-table`), los inputs (`detalle-inp`) y la fila de filtros
   (`grid-filter-row`/`grid-filter-inp`) heredan el look canónico del app.css
   GLOBAL del RCL — aquí solo van los ajustes propios del panel.
   Scoped CSS: el selector raíz va SIN ::deep. */

.anadesg-panel[b-3fm0ekh3gt] {
    background: #f6f9fd;
    border: 1px solid #b9c7d8;
    border-left: 3px solid #2f6ec1;
    border-radius: 4px;
    margin: 4px 6px 8px 30px;
    box-shadow: inset 0 1px 3px rgba(31, 74, 135, 0.08);
    font-size: 12px;
    text-align: left;
}

/* Cápsula con el nº de imputaciones dentro del título de la banda slate. */
.anadesg-count[b-3fm0ekh3gt] {
    margin-left: 10px;
    font-size: 11px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: normal;
    color: #dbe7f5;
    background: rgba(255, 255, 255, 0.14);
    padding: 1px 8px;
    border-radius: 9px;
    text-shadow: none;
}

.anadesg-error[b-3fm0ekh3gt] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 6px 8px 0;
    padding: 5px 9px;
    background: #fdecea;
    border: 1px solid #e5b4ae;
    border-radius: 3px;
    color: #a13327;
    font-weight: 500;
}
.anadesg-error i[b-3fm0ekh3gt] { color: #c0392b; }

/* Nota informativa (banda azul) — vista combinada readonly del agrupado. */
.anadesg-nota[b-3fm0ekh3gt] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 6px 8px 0;
    padding: 5px 9px;
    background: #e8f1fc;
    border: 1px solid #b9d0ec;
    border-radius: 3px;
    color: #1f4a87;
    font-weight: 500;
}
.anadesg-nota i[b-3fm0ekh3gt] { color: #2f6ec1; }

/* Cuerpo scrollable acotado (desgloses de 100 imputaciones no deben comerse
   la pantalla — el caso gasoil de JJ). */
.anadesg-body[b-3fm0ekh3gt] {
    margin: 6px 8px 0;
    max-height: 320px;
    border: 1px solid #ccd6e2;
    background: #fff;
}
.anadesg-table[b-3fm0ekh3gt] { width: 100%; }
.anadesg-table th.sortable[b-3fm0ekh3gt] {
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}
.anadesg-table th.num[b-3fm0ekh3gt] { text-align: right; }
.anadesg-table th.center[b-3fm0ekh3gt] { text-align: center; }
.anadesg-table .sort-ind[b-3fm0ekh3gt] { color: #2f6ec1; font-size: 10px; }
.anadesg-table tbody td.center[b-3fm0ekh3gt] { text-align: center; }
.anadesg-table tbody tr.anadesg-empty td[b-3fm0ekh3gt] {
    padding: 8px;
    color: #8494a7;
    font-style: italic;
}
.anadesg-nom[b-3fm0ekh3gt] {
    color: #4a5a6d;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 220px;
}

/* Bucket «(sin asignar)»: la parte del importe todavía NO imputada. Tenue e
   itálica —misma familia visual que el estado vacío de arriba— para que se
   lea de un vistazo que ahí no hay analítica, sin competir con los nombres
   reales de sección (JJ 2026-08-15). */
.anadesg-sinasignar[b-3fm0ekh3gt] {
    color: #8494a7;
    font-style: italic;
}

/* Los inputs heredan el look base de `.detalle-inp` (app.css del RCL);
   aquí solo anchos/alineación y el estado inválido. */
.anadesg-inp-cod[b-3fm0ekh3gt] { width: 100%; text-transform: uppercase; }
.anadesg-inp-num[b-3fm0ekh3gt] {
    width: 100%;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.anadesg-inp-fecha[b-3fm0ekh3gt] {
    width: 100%;
    text-align: center;
    font-variant-numeric: tabular-nums;
}
.anadesg-panel input.invalid[b-3fm0ekh3gt] {
    border-color: #c0392b;
    background: #fdf1f0;
}

.anadesg-btn-del[b-3fm0ekh3gt] {
    background: none;
    border: none;
    color: #a13327;
    cursor: pointer;
    padding: 2px 4px;
    border-radius: 3px;
    font-size: 13px;
    line-height: 1;
}
.anadesg-btn-del:hover:not(:disabled)[b-3fm0ekh3gt] { background: #fdecea; }
.anadesg-btn-del:disabled[b-3fm0ekh3gt] { opacity: 0.45; cursor: default; }

.anadesg-foot[b-3fm0ekh3gt] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 5px 10px 7px;
    margin-top: 6px;
    border-top: 1px solid #dbe4ee;
}
.anadesg-spacer[b-3fm0ekh3gt] { flex: 1 1 auto; }
.anadesg-sum[b-3fm0ekh3gt] { color: #33445a; font-variant-numeric: tabular-nums; }
.anadesg-sum b[b-3fm0ekh3gt] { font-size: 12.5px; }
.anadesg-linea[b-3fm0ekh3gt] { color: #6b7a8d; font-variant-numeric: tabular-nums; }
.anadesg-diff[b-3fm0ekh3gt] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 1px 9px;
    border-radius: 9px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.anadesg-diff.ok[b-3fm0ekh3gt] { background: #e4f3e8; color: #1d6f42; }
.anadesg-diff.ko[b-3fm0ekh3gt] { background: #fdecea; color: #a13327; }
.anadesg-filtro-aviso[b-3fm0ekh3gt] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: #8a5a12;
    background: #fdf3e0;
    border: 1px solid #f0d9ae;
    padding: 1px 8px;
    border-radius: 9px;
}

.anadesg-btn-guardar[b-3fm0ekh3gt],
.anadesg-btn-cancelar[b-3fm0ekh3gt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    padding: 0 14px;
    border-radius: 3px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}
.anadesg-btn-guardar[b-3fm0ekh3gt] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    border: 1px solid #1f4a87;
    color: #fff;
}
.anadesg-btn-guardar:hover:not(:disabled)[b-3fm0ekh3gt] { filter: brightness(1.08); }
.anadesg-btn-guardar:disabled[b-3fm0ekh3gt] {
    background: #b6c2d1;
    border-color: #a6b2c1;
    cursor: default;
}
.anadesg-btn-cancelar[b-3fm0ekh3gt] {
    background: #fff;
    border: 1px solid #b9c4d2;
    color: #3a4754;
}
.anadesg-btn-cancelar:hover:not(:disabled)[b-3fm0ekh3gt] { background: #eef2f7; }
.anadesg-btn-cancelar:disabled[b-3fm0ekh3gt] { opacity: 0.5; cursor: default; }

@keyframes anadesg-rotate-b-3fm0ekh3gt { to { transform: rotate(360deg); } }
.anadesg-spin[b-3fm0ekh3gt] { display: inline-block; animation: anadesg-rotate-b-3fm0ekh3gt 0.9s linear infinite; }

/* Cuenta de la línea/grupo en la banda slate («— 62800000001 · AUTOPISTAS»). */
.anadesg-cuenta[b-3fm0ekh3gt] {
    margin-left: 8px;
    font-size: 11.5px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0.02em;
    color: #cfe0f4;
    font-variant-numeric: tabular-nums;
    text-shadow: none;
    white-space: nowrap;
}

/* Aviso «Reparto generado por <documento>» — informa, no bloquea. */
.anadesg-origen[b-3fm0ekh3gt] {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 6px 8px 0;
    padding: 5px 9px;
    background: #fdf3e0;
    border: 1px solid #f0d9ae;
    border-radius: 3px;
    color: #8a5a12;
    font-weight: 500;
}
.anadesg-origen i[b-3fm0ekh3gt] { color: #b07b1e; }
/* _content/NetOffice.Web.Forms/Components/AnalisisFinancieroDialog.razor.rz.scp.css */
/* AnalisisFinancieroDialog — utilidad genérica de análisis (gráficos +
   ratios + chat IA). Estética corporativa NetOffice (azules + papel). */

.afi-backdrop[b-rqnp0m1w4t] {
    position: fixed; inset: 0; z-index: 1200;
    background: rgba(15, 30, 55, 0.45);
    backdrop-filter: blur(2px);
}

.afi-modal[b-rqnp0m1w4t] {
    position: fixed; z-index: 1201;
    top: 0; left: 50%;
    transform: translate(-50%, 0);
    width: 100vw; max-width: 100vw;
    height: 100vh;
    display: flex; flex-direction: column;
    background: #f6f9fd;
    border-radius: 0;
    box-shadow: 0 18px 60px rgba(15, 30, 55, 0.4);
    overflow: hidden;
    outline: none;
}

/* ===== Header ===== */
.afi-header[b-rqnp0m1w4t] {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 18px;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    flex-shrink: 0;
}
.afi-titulo[b-rqnp0m1w4t] { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; }
.afi-titulo > .bi[b-rqnp0m1w4t] { font-size: 26px; opacity: 0.92; }
.afi-titulo-txt[b-rqnp0m1w4t] { display: flex; flex-direction: column; min-width: 0; }
.afi-titulo-main[b-rqnp0m1w4t] { font-size: 17px; font-weight: 700; letter-spacing: 0.3px; }
.afi-titulo-sub[b-rqnp0m1w4t] { font-size: 12px; opacity: 0.85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.afi-cerrar[b-rqnp0m1w4t] {
    border: none; background: rgba(255, 255, 255, 0.15); color: #fff;
    width: 32px; height: 32px; border-radius: 6px; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background 0.15s;
}
.afi-cerrar:hover[b-rqnp0m1w4t] { background: rgba(255, 255, 255, 0.3); }

/* Toggle "Ver ejemplo" + badge */
.afi-badge-ejemplo[b-rqnp0m1w4t] {
    display: inline-flex; align-items: center; gap: 5px;
    background: #d8a728; color: #3a2c00; font-size: 10px; font-weight: 700;
    letter-spacing: 0.06em; padding: 3px 9px; border-radius: 11px; margin-left: 10px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.afi-ejemplo-toggle[b-rqnp0m1w4t] {
    flex-shrink: 0; border: 1px solid rgba(255,255,255,0.4); cursor: pointer;
    background: rgba(255,255,255,0.14); color: #fff;
    border-radius: 7px; padding: 7px 13px; font-size: 12.5px; font-weight: 600;
    display: flex; align-items: center; gap: 7px; margin-right: 8px; white-space: nowrap;
    transition: background 0.15s;
}
.afi-ejemplo-toggle:hover[b-rqnp0m1w4t] { background: rgba(255,255,255,0.28); }
.afi-ejemplo-toggle.on[b-rqnp0m1w4t] { background: #d8a728; color: #3a2c00; border-color: #b8860b; }

/* Botón Exportar PDF (header) */
.afi-pdf-btn[b-rqnp0m1w4t] {
    flex-shrink: 0; border: 1px solid rgba(255,255,255,0.4); cursor: pointer;
    background: rgba(255,255,255,0.14); color: #fff;
    border-radius: 7px; padding: 7px 13px; font-size: 12.5px; font-weight: 600;
    display: flex; align-items: center; gap: 7px; margin-right: 8px; white-space: nowrap;
    transition: background 0.15s;
}
.afi-pdf-btn:hover:not(:disabled)[b-rqnp0m1w4t] { background: rgba(255,255,255,0.28); }
.afi-pdf-btn:disabled[b-rqnp0m1w4t] { opacity: 0.6; cursor: default; }
.afi-spin[b-rqnp0m1w4t] { display: inline-block; animation: afi-spin-kf-b-rqnp0m1w4t 1s linear infinite; }
@keyframes afi-spin-kf-b-rqnp0m1w4t { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* Aviso de datos vacíos */
.afi-vacio-aviso[b-rqnp0m1w4t] {
    display: flex; align-items: center; gap: 14px;
    background: linear-gradient(180deg, #fffaf0 0%, #fdf2d8 100%);
    border: 1px solid #e6cf94; border-radius: 9px;
    padding: 14px 18px; margin-bottom: 16px;
}
.afi-vacio-aviso > .bi[b-rqnp0m1w4t] { font-size: 24px; color: #b8860b; flex-shrink: 0; }
.afi-vacio-txt[b-rqnp0m1w4t] { flex: 1; font-size: 13px; color: #5a4a20; line-height: 1.5; }
.afi-vacio-btn[b-rqnp0m1w4t] {
    flex-shrink: 0; border: none; cursor: pointer;
    background: linear-gradient(180deg, #e0b43a 0%, #c89818 100%); color: #3a2c00;
    border-radius: 7px; padding: 9px 16px; font-size: 13px; font-weight: 700;
    display: flex; align-items: center; gap: 7px; white-space: nowrap;
}
.afi-vacio-btn:hover[b-rqnp0m1w4t] { background: linear-gradient(180deg, #ecc24c 0%, #b8860b 100%); }

/* ===== Tabs ===== */
.afi-tabs[b-rqnp0m1w4t] {
    display: flex; gap: 2px;
    padding: 0 14px; background: #e7eef7;
    border-bottom: 1px solid #cdd9e8;
    flex-shrink: 0;
}
.afi-tab[b-rqnp0m1w4t] {
    border: none; background: transparent;
    padding: 11px 20px; font-size: 13.5px; font-weight: 600;
    color: #5a6b80; cursor: pointer;
    border-bottom: 3px solid transparent;
    display: flex; align-items: center; gap: 7px;
    transition: color 0.15s, border-color 0.15s;
}
.afi-tab:hover[b-rqnp0m1w4t] { color: #1f4a87; }
.afi-tab.active[b-rqnp0m1w4t] { color: #1f4a87; border-bottom-color: #1f4a87; }
.afi-tab-ia.active[b-rqnp0m1w4t] { color: #6a4c93; border-bottom-color: #6a4c93; }
.afi-tab-ia .bi[b-rqnp0m1w4t] { color: #6a4c93; }

/* ===== Body ===== */
.afi-body[b-rqnp0m1w4t] { flex: 1; overflow-y: auto; padding: 16px 18px; min-height: 0; }

.afi-empty[b-rqnp0m1w4t] {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 10px; padding: 60px 20px; color: #8a93a4; text-align: center;
}
.afi-empty .bi[b-rqnp0m1w4t] { font-size: 38px; opacity: 0.5; }

/* ===== KPIs ===== */
.afi-kpis[b-rqnp0m1w4t] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 12px; margin-bottom: 16px;
}
.afi-kpi[b-rqnp0m1w4t] {
    background: #fafdff; border: 0.6px solid #c9d4e3;
    border-left: 3px solid #1f4a87;
    border-radius: 7px; padding: 11px 14px;
    box-shadow: 0 1px 3px rgba(15, 30, 55, 0.06);
}
.afi-kpi-lbl[b-rqnp0m1w4t] { font-size: 10.5px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #1f4a87; }
.afi-kpi-val[b-rqnp0m1w4t] { font-size: 21px; font-weight: 700; color: #1f4a87; margin-top: 2px; }
.afi-kpi-sub[b-rqnp0m1w4t], .afi-kpi-cmp[b-rqnp0m1w4t] { font-size: 11px; color: #6a7785; margin-top: 3px; }
.afi-kpi-cmp .up[b-rqnp0m1w4t] { color: #1d6f42; font-weight: 600; margin-left: 6px; }
.afi-kpi-cmp .down[b-rqnp0m1w4t] { color: #a31f1f; font-weight: 600; margin-left: 6px; }

.afi-ac-verde[b-rqnp0m1w4t] { border-left-color: #1d6f42; }
.afi-ac-verde .afi-kpi-lbl[b-rqnp0m1w4t], .afi-ac-verde .afi-kpi-val[b-rqnp0m1w4t] { color: #1d6f42; }
.afi-ac-rojo[b-rqnp0m1w4t] { border-left-color: #a31f1f; }
.afi-ac-rojo .afi-kpi-lbl[b-rqnp0m1w4t], .afi-ac-rojo .afi-kpi-val[b-rqnp0m1w4t] { color: #a31f1f; }
.afi-ac-ambar[b-rqnp0m1w4t] { border-left-color: #d8a728; }
.afi-ac-ambar .afi-kpi-lbl[b-rqnp0m1w4t], .afi-ac-ambar .afi-kpi-val[b-rqnp0m1w4t] { color: #b8860b; }

/* ===== Charts ===== */
.afi-charts[b-rqnp0m1w4t] {
    display: grid; grid-template-columns: repeat(2, 1fr);
    gap: 14px;
}
.afi-chart-card[b-rqnp0m1w4t] {
    background: #fff; border: 0.6px solid #c9d4e3; border-radius: 8px;
    padding: 12px 14px 14px; box-shadow: 0 1px 4px rgba(15, 30, 55, 0.06);
    display: flex; flex-direction: column;
}
.afi-chart-wide[b-rqnp0m1w4t] { grid-column: 1 / -1; }
.afi-chart-title[b-rqnp0m1w4t] {
    font-size: 13px; font-weight: 700; color: #1f4a87;
    margin-bottom: 8px; padding-bottom: 6px; border-bottom: 1px solid #eef2f7;
}
.afi-chart-canvas-wrap[b-rqnp0m1w4t] { position: relative; height: 300px; }
.afi-chart-wide .afi-chart-canvas-wrap[b-rqnp0m1w4t] { height: 340px; }

/* ===== Ratios ===== */
.afi-ratios[b-rqnp0m1w4t] { display: flex; flex-direction: column; gap: 20px; }
.afi-ratios-sec h4[b-rqnp0m1w4t] {
    font-size: 13px; font-weight: 700; color: #1f4a87;
    display: flex; align-items: center; gap: 7px; margin: 0 0 10px;
}
.afi-metricas-grid[b-rqnp0m1w4t] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px;
}
.afi-metrica[b-rqnp0m1w4t] {
    background: #fafdff; border: 0.6px solid #c9d4e3; border-left: 3px solid #1f4a87;
    border-radius: 6px; padding: 9px 12px; display: flex; flex-direction: column; gap: 2px;
}
.afi-metrica-lbl[b-rqnp0m1w4t] { font-size: 11px; color: #5a6b80; font-weight: 600; }
.afi-metrica-val[b-rqnp0m1w4t] { font-size: 17px; font-weight: 700; color: #1f4a87; }
.afi-metrica-ant[b-rqnp0m1w4t] { font-size: 10.5px; color: #8a93a4; }

.afi-ratios-table[b-rqnp0m1w4t] { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.afi-ratios-table thead th[b-rqnp0m1w4t] {
    text-align: left; padding: 7px 10px; background: #e9eff7;
    color: #1f4a87; font-weight: 700; border-bottom: 1px solid #cdd9e8;
}
.afi-ratios-table thead th.num[b-rqnp0m1w4t] { text-align: right; }
.afi-ratios-table tbody td[b-rqnp0m1w4t] { padding: 7px 10px; border-bottom: 1px solid #eef2f7; vertical-align: top; }
.afi-ratios-table tbody td.nom[b-rqnp0m1w4t] { font-weight: 600; color: #2b3640; }
.afi-ratios-table tbody td.num[b-rqnp0m1w4t] { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; color: #1f4a87; }
.afi-ratios-table tbody td.formula[b-rqnp0m1w4t] { color: #6a7785; font-style: italic; }
.afi-ratios-table tbody td.interp[b-rqnp0m1w4t] { color: #4a5566; }

.afi-sem[b-rqnp0m1w4t] { display: inline-block; width: 11px; height: 11px; border-radius: 50%; background: #c5cdd9; }
.afi-sem-ok[b-rqnp0m1w4t] { background: #29a663; }
.afi-sem-warn[b-rqnp0m1w4t] { background: #d8a728; }
.afi-sem-bad[b-rqnp0m1w4t] { background: #d94f4f; }
.afi-sem-none[b-rqnp0m1w4t] { background: #c5cdd9; }

/* ===== Análisis IA (chat) ===== */
.afi-ia[b-rqnp0m1w4t] { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.afi-ia-chat[b-rqnp0m1w4t] {
    flex: 1; overflow-y: auto; min-height: 0;
    display: flex; flex-direction: column; gap: 14px;
    padding: 6px 4px 10px;
}
.afi-ia-intro[b-rqnp0m1w4t] {
    margin: auto; text-align: center; color: #8a93a4; max-width: 460px;
    display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.afi-ia-intro > .bi[b-rqnp0m1w4t] { font-size: 40px; color: #6a4c93; opacity: 0.7; }

/* Preguntas sugeridas — tarjetas en el intro */
.afi-ia-sug-grid[b-rqnp0m1w4t] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 9px; margin-top: 14px; width: 100%; max-width: 720px;
}
.afi-ia-sug-card[b-rqnp0m1w4t] {
    text-align: left; border: 1px solid #d9c9ec; cursor: pointer;
    background: #faf7fe; color: #4a3a66; border-radius: 9px;
    padding: 11px 13px; font-size: 12.5px; line-height: 1.4;
    display: flex; align-items: flex-start; gap: 8px; transition: all 0.12s;
}
.afi-ia-sug-card .bi[b-rqnp0m1w4t] { color: #6a4c93; margin-top: 1px; }
.afi-ia-sug-card:hover:not(:disabled)[b-rqnp0m1w4t] {
    background: #f1e9fb; border-color: #6a4c93;
    box-shadow: 0 2px 6px rgba(106,76,147,0.15); transform: translateY(-1px);
}
.afi-ia-sug-card:disabled[b-rqnp0m1w4t] { opacity: 0.5; cursor: not-allowed; }

/* Preguntas sugeridas — chips compactos sobre el input */
.afi-ia-sugeridas[b-rqnp0m1w4t] {
    flex-shrink: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 7px;
    padding: 8px 2px 4px;
}
.afi-ia-sug-lbl[b-rqnp0m1w4t] { font-size: 11px; font-weight: 600; color: #6a4c93; display: inline-flex; align-items: center; gap: 5px; }
.afi-ia-chip[b-rqnp0m1w4t] {
    border: 1px solid #d9c9ec; cursor: pointer; background: #faf7fe; color: #5a4a78;
    border-radius: 14px; padding: 5px 12px; font-size: 11.5px; transition: all 0.12s; white-space: nowrap;
}
.afi-ia-chip:hover:not(:disabled)[b-rqnp0m1w4t] { background: #6a4c93; color: #fff; border-color: #6a4c93; }
.afi-ia-chip:disabled[b-rqnp0m1w4t] { opacity: 0.5; cursor: not-allowed; }

.afi-msg[b-rqnp0m1w4t] { display: flex; gap: 10px; align-items: flex-start; }
.afi-msg-user[b-rqnp0m1w4t] { flex-direction: row-reverse; }
.afi-msg-avatar[b-rqnp0m1w4t] {
    flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center; color: #fff; font-size: 15px;
}
.afi-msg-ia .afi-msg-avatar[b-rqnp0m1w4t] { background: linear-gradient(180deg, #7d5ba6 0%, #6a4c93 100%); }
.afi-msg-user .afi-msg-avatar[b-rqnp0m1w4t] { background: linear-gradient(180deg, #3874cb 0%, #1f4a87 100%); }
.afi-msg-bubble[b-rqnp0m1w4t] {
    max-width: 78%; padding: 11px 15px; border-radius: 12px; font-size: 13.5px; line-height: 1.55;
}
.afi-msg-ia .afi-msg-bubble[b-rqnp0m1w4t] {
    background: #fff; border: 0.6px solid #d9c9ec; border-top-left-radius: 3px; color: #2b3640;
}
.afi-msg-user .afi-msg-bubble[b-rqnp0m1w4t] {
    background: linear-gradient(180deg, #eaf2fc 0%, #dbe9f8 100%);
    border: 0.6px solid #b9d0ec; border-top-right-radius: 3px; color: #1f3a5f;
}
.afi-msg-bubble[b-rqnp0m1w4t]  h4 { font-size: 13.5px; color: #1f4a87; margin: 10px 0 5px; }
.afi-msg-bubble[b-rqnp0m1w4t]  h4:first-child { margin-top: 0; }
.afi-msg-bubble[b-rqnp0m1w4t]  ul { margin: 4px 0 4px 4px; padding-left: 18px; }
.afi-msg-bubble[b-rqnp0m1w4t]  li { margin: 2px 0; }
.afi-msg-bubble[b-rqnp0m1w4t]  p { margin: 4px 0; }
.afi-msg-bubble[b-rqnp0m1w4t]  table { border-collapse: collapse; margin: 6px 0; width: 100%; font-size: 12px; }
.afi-msg-bubble[b-rqnp0m1w4t]  th, .afi-msg-bubble[b-rqnp0m1w4t]  td { border: 1px solid #e0e6ee; padding: 4px 7px; text-align: left; }
.afi-msg-bubble[b-rqnp0m1w4t]  th { background: #eef3f9; color: #1f4a87; }
.afi-msg-loading[b-rqnp0m1w4t] { display: flex; align-items: center; gap: 9px; color: #6a4c93; font-style: italic; }

.afi-ia-error[b-rqnp0m1w4t] {
    background: #fdecec; border: 1px solid #f0b8b8; color: #a31f1f;
    border-radius: 7px; padding: 9px 13px; font-size: 12.5px;
    display: flex; align-items: center; gap: 8px;
}

.afi-ia-input[b-rqnp0m1w4t] {
    flex-shrink: 0; display: flex; gap: 9px; align-items: flex-end;
    padding-top: 12px; border-top: 1px solid #d9e2ee;
}
.afi-ia-analizar[b-rqnp0m1w4t] {
    flex-shrink: 0; border: none; cursor: pointer;
    background: linear-gradient(180deg, #7d5ba6 0%, #6a4c93 100%); color: #fff;
    border-radius: 8px; padding: 0 16px; height: 42px; font-size: 13px; font-weight: 600;
    display: flex; align-items: center; gap: 7px; white-space: nowrap;
}
.afi-ia-analizar:hover:not(:disabled)[b-rqnp0m1w4t] { background: linear-gradient(180deg, #8d6bb6 0%, #5a3c83 100%); }
.afi-ia-analizar:disabled[b-rqnp0m1w4t] { opacity: 0.55; cursor: not-allowed; }
.afi-ia-textarea[b-rqnp0m1w4t] {
    flex: 1; resize: none; height: 42px; min-height: 42px; max-height: 120px;
    border: 1px solid #c5cdd9; border-radius: 8px; padding: 10px 13px;
    font-size: 13.5px; font-family: inherit; line-height: 1.4;
}
.afi-ia-textarea:focus[b-rqnp0m1w4t] { outline: none; border-color: #6a4c93; box-shadow: 0 0 0 3px rgba(106, 76, 147, 0.15); }
.afi-ia-enviar[b-rqnp0m1w4t] {
    flex-shrink: 0; border: none; cursor: pointer;
    background: linear-gradient(180deg, #3874cb 0%, #1f4a87 100%); color: #fff;
    width: 42px; height: 42px; border-radius: 8px; font-size: 16px;
    display: flex; align-items: center; justify-content: center;
}
.afi-ia-enviar:hover:not(:disabled)[b-rqnp0m1w4t] { background: linear-gradient(180deg, #4884db 0%, #1a3f77 100%); }
.afi-ia-enviar:disabled[b-rqnp0m1w4t] { opacity: 0.5; cursor: not-allowed; }
.afi-ia-uso[b-rqnp0m1w4t] { flex-shrink: 0; font-size: 10.5px; color: #8a93a4; padding-top: 6px; text-align: right; }

.afi-spin[b-rqnp0m1w4t] { display: inline-block; animation: afi-spin-b-rqnp0m1w4t 0.9s linear infinite; }
@keyframes afi-spin-b-rqnp0m1w4t { to { transform: rotate(360deg); } }

@media (max-width: 900px) {
    .afi-charts[b-rqnp0m1w4t] { grid-template-columns: 1fr; }
    .afi-chart-wide[b-rqnp0m1w4t] { grid-column: auto; }
}
/* _content/NetOffice.Web.Forms/Components/AnalisisGenericoPanel.razor.rz.scp.css */
/* AnalisisGenericoPanel — mismo lenguaje visual que el panel de P&G y
   EstadisticasDialog, aplicado a los informes sin panel propio. */

/* ===== KPI cards ===== */
.agp-kpis[b-9cmz3jfci0] {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px; margin-bottom: 16px;
}
.agp-kpi[b-9cmz3jfci0] {
    background: #fafdff; border: 0.6px solid #c9d4e3; border-left: 3px solid #1f4a87;
    border-radius: 7px; padding: 11px 14px; box-shadow: 0 1px 3px rgba(15, 30, 55, 0.06);
    transition: box-shadow 0.15s, transform 0.15s;
}
.agp-kpi:hover[b-9cmz3jfci0] { box-shadow: 0 4px 12px rgba(15,30,55,0.10); transform: translateY(-1px); }
.agp-kpi-lbl[b-9cmz3jfci0] { font-size: 10.5px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: #1f4a87; }
.agp-kpi-val[b-9cmz3jfci0] { font-size: 22px; font-weight: 700; color: #1f2937; margin-top: 2px; font-variant-numeric: tabular-nums; line-height: 1.1; }
.agp-kpi-sub[b-9cmz3jfci0] { font-size: 11px; color: #6a7785; margin-top: 4px; }
.agp-kpi-delta[b-9cmz3jfci0] {
    display: inline-flex; align-items: center; gap: 5px; flex-wrap: wrap;
    font-size: 11.5px; font-weight: 600; color: #6b7280; margin-top: 5px; font-variant-numeric: tabular-nums;
}
.agp-kpi-delta.pos[b-9cmz3jfci0] { color: #1d6f42; }
.agp-kpi-delta.neg[b-9cmz3jfci0] { color: #a31f1f; }
.agp-kpi-delta .agp-kpi-pct[b-9cmz3jfci0] { opacity: 0.8; }
.agp-kpi-delta .agp-kpi-ant[b-9cmz3jfci0] { color: #9aa7b8; font-weight: 500; margin-left: 4px; padding-left: 6px; border-left: 1px solid #e0e6ee; }

.agp-ac-verde[b-9cmz3jfci0] { border-left-color: #1d6f42; }
.agp-ac-verde .agp-kpi-lbl[b-9cmz3jfci0], .agp-ac-verde .agp-kpi-val[b-9cmz3jfci0] { color: #1d6f42; }
.agp-ac-rojo[b-9cmz3jfci0] { border-left-color: #a31f1f; }
.agp-ac-rojo .agp-kpi-lbl[b-9cmz3jfci0], .agp-ac-rojo .agp-kpi-val[b-9cmz3jfci0] { color: #a31f1f; }
.agp-ac-ambar[b-9cmz3jfci0] { border-left-color: #d8a728; }
.agp-ac-ambar .agp-kpi-lbl[b-9cmz3jfci0], .agp-ac-ambar .agp-kpi-val[b-9cmz3jfci0] { color: #b8860b; }

/* ===== Hallazgos clave ===== */
.agp-insights[b-9cmz3jfci0] {
    background: linear-gradient(180deg, #fffce4 0%, #fff8d0 100%);
    border: 1px solid #d8c270; border-left: 4px solid #d8a728;
    border-radius: 6px; padding: 12px 16px; margin-bottom: 16px;
    box-shadow: 0 1px 2px rgba(15,30,55,0.04);
}
.agp-insights .ins-head[b-9cmz3jfci0] {
    display: inline-flex; align-items: center; gap: 8px; color: #7a5b00;
    font-weight: 700; font-size: 12px; letter-spacing: 0.6px; text-transform: uppercase; margin-bottom: 8px;
}
.agp-insights .ins-head i[b-9cmz3jfci0] { color: #d8a728; font-size: 16px; }
.agp-insights .ins-list[b-9cmz3jfci0] {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 7px 18px;
}
.agp-insights .ins-item[b-9cmz3jfci0] { display: flex; align-items: flex-start; gap: 8px; color: #4a3a00; font-size: 13px; line-height: 1.45; }
.agp-insights .ins-item i[b-9cmz3jfci0] { margin-top: 2px; font-size: 14px; flex-shrink: 0; }
.agp-insights .ins-item.ins-up[b-9cmz3jfci0]   { color: #1d6f42; }
.agp-insights .ins-item.ins-up i[b-9cmz3jfci0] { color: #1d6f42; }
.agp-insights .ins-item.ins-down[b-9cmz3jfci0]   { color: #a31f1f; }
.agp-insights .ins-item.ins-down i[b-9cmz3jfci0] { color: #a31f1f; }
.agp-insights .ins-item.ins-warn[b-9cmz3jfci0]   { color: #b97a00; }
.agp-insights .ins-item.ins-warn i[b-9cmz3jfci0] { color: #d8a728; }
.agp-insights .ins-item.ins-info[b-9cmz3jfci0]   { color: #1f4a87; }
.agp-insights .ins-item.ins-info i[b-9cmz3jfci0] { color: #1f4a87; }
.agp-insights .ins-item strong[b-9cmz3jfci0] { font-weight: 700; }

/* ===== Tarjetas de gráfico ===== */
.agp-card[b-9cmz3jfci0] {
    background: #fff; border: 0.6px solid #c9d4e3; border-radius: 8px;
    padding: 14px 18px 16px; margin-bottom: 16px; box-shadow: 0 1px 4px rgba(15, 30, 55, 0.06);
}
.chart-head[b-9cmz3jfci0] { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid #eef2f7; }
.chart-head i[b-9cmz3jfci0] { color: #1f4a87; font-size: 16px; align-self: center; }
.chart-head .chart-title[b-9cmz3jfci0] { font-size: 13px; font-weight: 700; color: #1f4a87; letter-spacing: 0.3px; text-transform: uppercase; }
.chart-head .chart-sub[b-9cmz3jfci0] { font-size: 11.5px; color: #6b7280; font-weight: 500; }
.chart-head .chart-spacer[b-9cmz3jfci0] { flex: 1 1 auto; }
.chart-legend[b-9cmz3jfci0] { display: inline-flex; align-items: center; gap: 16px; font-size: 11.5px; color: #4b5563; }
.chart-legend .lg-item[b-9cmz3jfci0] { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.chart-legend .lg-swatch[b-9cmz3jfci0] { width: 12px; height: 12px; border-radius: 2px; display: inline-block; }

.agp-svg[b-9cmz3jfci0] { width: 100%; max-height: 320px; display: block; }

/* ===== Doughnut ===== */
.agp-donut-wrap[b-9cmz3jfci0] { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.agp-donut[b-9cmz3jfci0] { width: 240px; height: 240px; flex-shrink: 0; }
.agp-donut-legend[b-9cmz3jfci0] { flex: 1 1 280px; display: flex; flex-direction: column; gap: 5px; min-width: 260px; }
.agp-leg-row[b-9cmz3jfci0] { display: grid; grid-template-columns: 14px 1fr auto auto; align-items: center; gap: 8px; font-size: 12px; }
.agp-leg-sw[b-9cmz3jfci0] { width: 12px; height: 12px; border-radius: 3px; }
.agp-leg-lbl[b-9cmz3jfci0] { color: #334155; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.agp-leg-val[b-9cmz3jfci0] { color: #1f2937; font-weight: 600; text-align: right; font-variant-numeric: tabular-nums; }
.agp-leg-pct[b-9cmz3jfci0] { color: #6b7280; font-weight: 700; text-align: right; font-variant-numeric: tabular-nums; min-width: 48px; }

/* ===== Tabla de ratios ===== */
.agp-ratios-table[b-9cmz3jfci0] { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-top: 4px; }
.agp-ratios-table thead th[b-9cmz3jfci0] {
    text-align: left; padding: 7px 10px; background: #eef2f7; color: #1f4a87; font-weight: 700;
    font-size: 11px; letter-spacing: 0.3px; text-transform: uppercase; border-bottom: 2px solid #1f4a87;
}
.agp-ratios-table thead th.num[b-9cmz3jfci0] { text-align: right; }
.agp-ratios-table tbody td[b-9cmz3jfci0] { padding: 7px 10px; border-bottom: 1px solid #eef0f4; vertical-align: middle; }
.agp-ratios-table tbody td.nom[b-9cmz3jfci0] { font-weight: 600; color: #1f2937; }
.agp-ratios-table tbody td.num[b-9cmz3jfci0] { text-align: right; font-weight: 700; color: #1f4a87; font-variant-numeric: tabular-nums; white-space: nowrap; }
.agp-ratios-table tbody td.formula[b-9cmz3jfci0] { color: #6b7280; font-style: italic; font-size: 11.5px; }
.agp-ratios-table tbody td.interp[b-9cmz3jfci0] { color: #4b5563; font-size: 12px; }
.agp-ratios-table tbody tr:nth-child(odd)[b-9cmz3jfci0] { background: #fbfcfe; }
.agp-ratios-table tbody tr:hover[b-9cmz3jfci0] { background: #eef4fc; }
.agp-sem[b-9cmz3jfci0] { display: inline-block; width: 11px; height: 11px; border-radius: 50%; background: #c5cdd9; }
.agp-sem-ok[b-9cmz3jfci0]   { background: #1d6f42; box-shadow: 0 0 0 2px rgba(29,111,66,0.18); }
.agp-sem-warn[b-9cmz3jfci0] { background: #d8a728; box-shadow: 0 0 0 2px rgba(216,167,40,0.18); }
.agp-sem-bad[b-9cmz3jfci0]  { background: #a31f1f; box-shadow: 0 0 0 2px rgba(163,31,31,0.18); }
.agp-sem-none[b-9cmz3jfci0] { background: #c5cdd9; }

/* ===== Vacío ===== */
.agp-empty[b-9cmz3jfci0] {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 10px; padding: 60px 20px; color: #8a93a4; text-align: center;
}
.agp-empty .bi[b-9cmz3jfci0] { font-size: 38px; opacity: 0.5; }
/* _content/NetOffice.Web.Forms/Components/AnalisisPerdidasGananciasPanel.razor.rz.scp.css */
/* AnalisisPerdidasGananciasPanel — panel gráfico a medida de la Cuenta de
   pérdidas y ganancias. Hereda el lenguaje visual de EstadisticasDialog. */

/* ===== KPI cards ===== */
.apg-kpis[b-pedmq43xse] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin-bottom: 16px;
}
.apg-kpi[b-pedmq43xse] {
    background: #fafdff;
    border: 0.6px solid #c9d4e3;
    border-left: 3px solid #1f4a87;
    border-radius: 7px;
    padding: 11px 14px;
    box-shadow: 0 1px 3px rgba(15, 30, 55, 0.06);
    transition: box-shadow 0.15s, transform 0.15s;
}
.apg-kpi:hover[b-pedmq43xse] { box-shadow: 0 4px 12px rgba(15,30,55,0.10); transform: translateY(-1px); }
.apg-kpi-lbl[b-pedmq43xse] {
    font-size: 10.5px; font-weight: 600; letter-spacing: 0.04em;
    text-transform: uppercase; color: #1f4a87;
}
.apg-kpi-val[b-pedmq43xse] {
    font-size: 22px; font-weight: 700; color: #1f2937; margin-top: 2px;
    font-variant-numeric: tabular-nums; line-height: 1.1;
}
.apg-kpi-sub[b-pedmq43xse] { font-size: 11px; color: #6a7785; margin-top: 4px; }
.apg-kpi-delta[b-pedmq43xse] {
    display: inline-flex; align-items: center; gap: 5px; flex-wrap: wrap;
    font-size: 11.5px; font-weight: 600; color: #6b7280; margin-top: 5px;
    font-variant-numeric: tabular-nums;
}
.apg-kpi-delta.pos[b-pedmq43xse] { color: #1d6f42; }
.apg-kpi-delta.neg[b-pedmq43xse] { color: #a31f1f; }
.apg-kpi-delta .apg-kpi-pct[b-pedmq43xse] { opacity: 0.8; }
.apg-kpi-delta .apg-kpi-ant[b-pedmq43xse] {
    color: #9aa7b8; font-weight: 500; margin-left: 4px;
    padding-left: 6px; border-left: 1px solid #e0e6ee;
}

/* acentos por color */
.apg-ac-verde[b-pedmq43xse] { border-left-color: #1d6f42; }
.apg-ac-verde .apg-kpi-lbl[b-pedmq43xse], .apg-ac-verde .apg-kpi-val[b-pedmq43xse] { color: #1d6f42; }
.apg-ac-rojo[b-pedmq43xse] { border-left-color: #a31f1f; }
.apg-ac-rojo .apg-kpi-lbl[b-pedmq43xse], .apg-ac-rojo .apg-kpi-val[b-pedmq43xse] { color: #a31f1f; }
.apg-ac-ambar[b-pedmq43xse] { border-left-color: #d8a728; }
.apg-ac-ambar .apg-kpi-lbl[b-pedmq43xse], .apg-ac-ambar .apg-kpi-val[b-pedmq43xse] { color: #b8860b; }

/* ===== Hallazgos clave ===== */
.apg-insights[b-pedmq43xse] {
    background: linear-gradient(180deg, #fffce4 0%, #fff8d0 100%);
    border: 1px solid #d8c270;
    border-left: 4px solid #d8a728;
    border-radius: 6px;
    padding: 12px 16px;
    margin-bottom: 16px;
    box-shadow: 0 1px 2px rgba(15,30,55,0.04);
}
.apg-insights .ins-head[b-pedmq43xse] {
    display: inline-flex; align-items: center; gap: 8px;
    color: #7a5b00; font-weight: 700; font-size: 12px;
    letter-spacing: 0.6px; text-transform: uppercase; margin-bottom: 8px;
}
.apg-insights .ins-head i[b-pedmq43xse] { color: #d8a728; font-size: 16px; }
.apg-insights .ins-list[b-pedmq43xse] {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 7px 18px;
}
.apg-insights .ins-item[b-pedmq43xse] {
    display: flex; align-items: flex-start; gap: 8px;
    color: #4a3a00; font-size: 13px; line-height: 1.45;
}
.apg-insights .ins-item i[b-pedmq43xse] { margin-top: 2px; font-size: 14px; flex-shrink: 0; }
.apg-insights .ins-item.ins-up[b-pedmq43xse]   { color: #1d6f42; }
.apg-insights .ins-item.ins-up i[b-pedmq43xse] { color: #1d6f42; }
.apg-insights .ins-item.ins-down[b-pedmq43xse]   { color: #a31f1f; }
.apg-insights .ins-item.ins-down i[b-pedmq43xse] { color: #a31f1f; }
.apg-insights .ins-item.ins-warn[b-pedmq43xse]   { color: #b97a00; }
.apg-insights .ins-item.ins-warn i[b-pedmq43xse] { color: #d8a728; }
.apg-insights .ins-item.ins-info[b-pedmq43xse]   { color: #1f4a87; }
.apg-insights .ins-item.ins-info i[b-pedmq43xse] { color: #1f4a87; }
.apg-insights .ins-item strong[b-pedmq43xse] { font-weight: 700; }

/* ===== Tarjetas de gráfico ===== */
.apg-card[b-pedmq43xse] {
    background: #fff;
    border: 0.6px solid #c9d4e3;
    border-radius: 8px;
    padding: 14px 18px 16px;
    margin-bottom: 16px;
    box-shadow: 0 1px 4px rgba(15, 30, 55, 0.06);
}
.chart-head[b-pedmq43xse] {
    display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
    margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid #eef2f7;
}
.chart-head i[b-pedmq43xse] { color: #1f4a87; font-size: 16px; align-self: center; }
.chart-head .chart-title[b-pedmq43xse] {
    font-size: 13px; font-weight: 700; color: #1f4a87;
    letter-spacing: 0.3px; text-transform: uppercase;
}
.chart-head .chart-sub[b-pedmq43xse] { font-size: 11.5px; color: #6b7280; font-weight: 500; }

.chart-legend[b-pedmq43xse] {
    display: inline-flex; align-items: center; gap: 16px;
    margin-bottom: 4px; font-size: 11.5px; color: #4b5563;
}
.chart-legend .lg-item[b-pedmq43xse] { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.chart-legend .lg-swatch[b-pedmq43xse] { width: 12px; height: 12px; border-radius: 2px; display: inline-block; }

.apg-svg[b-pedmq43xse] { width: 100%; max-height: 340px; display: block; }

/* ===== Estructura de gastos (barras H con %) ===== */
.apg-struct[b-pedmq43xse] { display: flex; flex-direction: column; gap: 7px; margin-top: 6px; }
.apg-struct-row[b-pedmq43xse] {
    display: grid;
    grid-template-columns: minmax(120px, 200px) 1fr minmax(90px, auto) 52px;
    align-items: center; gap: 10px;
}
.apg-struct-lbl[b-pedmq43xse] {
    font-size: 12px; color: #334155; font-weight: 600;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.apg-struct-bar-wrap[b-pedmq43xse] {
    height: 16px; background: #eef2f7; border-radius: 4px; overflow: hidden;
}
.apg-struct-bar[b-pedmq43xse] {
    display: block; height: 100%;
    background: linear-gradient(90deg, #3874cb 0%, #1f4a87 100%);
    border-radius: 4px; min-width: 2px;
    transition: width 0.3s ease;
}
.apg-struct-val[b-pedmq43xse] {
    font-size: 12px; color: #1f2937; font-weight: 600;
    text-align: right; font-variant-numeric: tabular-nums;
}
.apg-struct-pct[b-pedmq43xse] {
    font-size: 11.5px; color: #6b7280; font-weight: 700;
    text-align: right; font-variant-numeric: tabular-nums;
}

/* ===== Tabla de ratios (integrada) ===== */
.apg-ratios-table[b-pedmq43xse] {
    width: 100%; border-collapse: collapse;
    font-size: 12.5px; margin-top: 4px;
}
.apg-ratios-table thead th[b-pedmq43xse] {
    text-align: left; padding: 7px 10px;
    background: #eef2f7; color: #1f4a87; font-weight: 700;
    font-size: 11px; letter-spacing: 0.3px; text-transform: uppercase;
    border-bottom: 2px solid #1f4a87;
}
.apg-ratios-table thead th.num[b-pedmq43xse] { text-align: right; }
.apg-ratios-table tbody td[b-pedmq43xse] {
    padding: 7px 10px; border-bottom: 1px solid #eef0f4; vertical-align: middle;
}
.apg-ratios-table tbody td.nom[b-pedmq43xse] { font-weight: 600; color: #1f2937; }
.apg-ratios-table tbody td.num[b-pedmq43xse] {
    text-align: right; font-weight: 700; color: #1f4a87;
    font-variant-numeric: tabular-nums; white-space: nowrap;
}
.apg-ratios-table tbody td.formula[b-pedmq43xse] { color: #6b7280; font-style: italic; font-size: 11.5px; }
.apg-ratios-table tbody td.interp[b-pedmq43xse] { color: #4b5563; font-size: 12px; }
.apg-ratios-table tbody tr:nth-child(odd)[b-pedmq43xse] { background: #fbfcfe; }
.apg-ratios-table tbody tr:hover[b-pedmq43xse] { background: #eef4fc; }
.apg-sem[b-pedmq43xse] {
    display: inline-block; width: 11px; height: 11px; border-radius: 50%;
    background: #c5cdd9;
}
.apg-sem-ok[b-pedmq43xse]   { background: #1d6f42; box-shadow: 0 0 0 2px rgba(29,111,66,0.18); }
.apg-sem-warn[b-pedmq43xse] { background: #d8a728; box-shadow: 0 0 0 2px rgba(216,167,40,0.18); }
.apg-sem-bad[b-pedmq43xse]  { background: #a31f1f; box-shadow: 0 0 0 2px rgba(163,31,31,0.18); }
.apg-sem-none[b-pedmq43xse] { background: #c5cdd9; }

/* ===== Vacío ===== */
.afi-empty[b-pedmq43xse] {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 10px; padding: 60px 20px; color: #8a93a4; text-align: center;
}
.afi-empty .bi[b-pedmq43xse] { font-size: 38px; opacity: 0.5; }
/* _content/NetOffice.Web.Forms/Components/AsientoIframeModal.razor.rz.scp.css */
/* Visor de asiento canónico (§3.4). Mismo aspecto que el modal de Extracto
   de cuentas: overlay a pantalla casi completa con iframe a CrearApuntes. */
.asiento-modal-backdrop[b-hct6j2wcmi] {
    position: fixed; inset: 0;
    background: rgba(15, 30, 55, 0.55);
    z-index: 2050;
}
.asiento-modal[b-hct6j2wcmi] {
    position: fixed;
    top: 4vh; left: 4vw;
    width: 92vw; height: 92vh;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 16px 50px rgba(0,0,0,0.45);
    z-index: 2051;
    display: flex; flex-direction: column;
    overflow: hidden;
}
.asiento-modal-header[b-hct6j2wcmi] {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 14px;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    font-weight: 700;
    letter-spacing: 0.04em;
    flex-shrink: 0;
}
.asiento-modal-header i[b-hct6j2wcmi] { font-size: 18px; }
.asiento-modal-header span[b-hct6j2wcmi] { flex: 1; }
.asiento-modal-close[b-hct6j2wcmi] {
    width: 32px; height: 32px;
    border: none;
    background: rgba(255,255,255,0.15);
    color: #fff;
    border-radius: 4px;
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 16px;
}
.asiento-modal-close:hover[b-hct6j2wcmi] { background: rgba(255,255,255,0.28); }
.asiento-modal-iframe[b-hct6j2wcmi] {
    flex: 1 1 auto;
    width: 100%;
    border: none;
    background: #fff;
    display: block;
}
/* _content/NetOffice.Web.Forms/Components/BotonPresentar.razor.rz.scp.css */
/* BotonPresentar — pastilla verde con sello blanco (JJ 2026-10-12, norma común).
   Nació en Facturación de gastos (commit 2645a205f) y sube aquí para que todas
   las pantallas con provisionales lo pinten igual. Hereda la base global
   `.bbtn` (columna icono + rótulo) del app.css del RCL. */
.bbtn.bbtn-presentar[b-bnw1n2o2j1] {
    min-width: 92px;
    padding: 5px 12px;
    border-radius: 6px;
    background: linear-gradient(180deg, #2fa865 0%, #1d7f48 100%);
    border: 1px solid #176a3b;
    color: #fff;
    font-weight: 700;
    letter-spacing: .2px;
    box-shadow: 0 1px 2px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.25);
    cursor: pointer;
}
.bbtn.bbtn-presentar:hover:not(:disabled)[b-bnw1n2o2j1] {
    background: linear-gradient(180deg, #36b56f 0%, #1a7442 100%);
    border-color: #12552f;
    box-shadow: 0 2px 5px rgba(29,127,72,.35);
}
.bbtn.bbtn-presentar:disabled[b-bnw1n2o2j1] {
    opacity: .55;
    cursor: not-allowed;
    filter: grayscale(.7);
    box-shadow: none;
}
/* El sello: !important en display porque varias pantallas esconden los
   <span> del pie por debajo de 1280px y el sello se quedaba sin dibujar. */
.bp-ico[b-bnw1n2o2j1] {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #fff;
    margin-bottom: 3px;
}
.bp-ico i[b-bnw1n2o2j1] {
    font-size: 18px;
    color: #1d7f48;
    margin: 0;
}
.bp-txt[b-bnw1n2o2j1] { white-space: nowrap; }
.bp-girando[b-bnw1n2o2j1] { display: inline-block; animation: bp-giro-b-bnw1n2o2j1 1s linear infinite; }
@keyframes bp-giro-b-bnw1n2o2j1 { to { transform: rotate(360deg); } }
/* _content/NetOffice.Web.Forms/Components/CalendarioAnual.razor.rz.scp.css */
/* CalendarioAnual — 12 meses gráficos, CLAUDE.md §2.35a / RCL NetOffice.Web.Forms */

.cal-anual[b-5zludfaogu] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    padding: 4px;
}

@media (max-width: 1280px) {
    .cal-anual[b-5zludfaogu] { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 900px) {
    .cal-anual[b-5zludfaogu] { grid-template-columns: repeat(2, 1fr); }
}

.cal-mes[b-5zludfaogu] {
    background: #ffffff;
    border: 1px solid #d0d6df;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

.cal-mes-titulo[b-5zludfaogu] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    text-align: center;
    padding: 6px 0;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.7px;
    border-bottom: 2px solid #9ecbff;
    text-shadow: 0 1px 1px rgba(0,0,0,0.25);
}

.cal-mes-cabecera[b-5zludfaogu] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    background: #eef3f9;
    border-bottom: 1px solid #dbe3ef;
}

.cal-cab-celda[b-5zludfaogu] {
    text-align: center;
    font-size: 10px;
    color: #5a6b80;
    padding: 4px 0;
    font-weight: 700;
}

/* Siglas de fin de semana atenuadas (referencia calendario laboral). */
/* Fin de semana LEGIBLE. El #aab6c6 anterior daba 1,8:1 sobre el fondo real de la
   cabecera: la S y el D casi no se veían. #5f6e85 da 4,64:1 sobre ese fondo
   (#eef3f9), que es el mínimo con margen.
   Queda a un paso del color de los días laborables (#5a6b80), y da igual: el aviso
   de "esto es fin de semana" NO lo llevaba la letra, lo lleva el fondo de toda la
   columna (.cal-dia-finde), así que no se pierde nada por hacerla legible.
   Ojo al medirlo: contra blanco salen 5,18:1 y parece que sobra margen, pero la
   cabecera no está sobre blanco. Norma con Jano 2026-08-26, pieza compartida: lo
   heredan todos los calendarios del producto. */
.cal-cab-celda.cal-cab-we[b-5zludfaogu] { color: #5f6e85; }

.cal-mes-cuerpo[b-5zludfaogu] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    background: #eef1f6;
    padding: 1px;
}

.cal-dia[b-5zludfaogu] {
    background: #ffffff;
    border: none;
    padding: 0;
    height: 28px;
    cursor: default;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.1s ease, box-shadow 0.1s ease, outline 0.1s ease;
    overflow: hidden;
}

.cal-dia-num[b-5zludfaogu] {
    font-size: 10.5px;
    color: #2c3e50;
    line-height: 1;
    text-shadow: 0 1px 0 rgba(255,255,255,0.6);
    pointer-events: none;
}

.cal-dia-vacio[b-5zludfaogu] {
    background: #f8fafd;
    height: 28px;
}

/* Fines de semana — leve sombreado azul-frío (referencia calendario laboral). */
.cal-dia-finde[b-5zludfaogu] { background: #f4f7fb; }

.cal-dia-evento[b-5zludfaogu] {
    cursor: pointer;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,0.10), inset 0 1px 0 rgba(255,255,255,0.30);
    border-radius: 3px;
}

.cal-dia-evento .cal-dia-num[b-5zludfaogu] {
    color: #fff;
    font-weight: 800;
    text-shadow: 0 1px 1px rgba(0,0,0,0.45);
}

.cal-dia-evento:hover[b-5zludfaogu] {
    transform: scale(1.14);
    outline: 2px solid #1f4a87;
    outline-offset: -1px;
    z-index: 4;
    box-shadow: 0 2px 6px rgba(15,30,55,0.30);
}

/* Marca festivo/vacaciones — el número se pinta como badge redondeado del color
   de la marca (estilo unificado del Calendario laboral). Coexiste con el color
   de celda de los eventos (vencimientos). */
.cal-dia-marca .cal-dia-num[b-5zludfaogu] {
    background: var(--marca, #d6453d);
    /* El color de la marca lo elige el cliente (tipo de vacación / ausencia), así
       que el texto NO puede ser blanco fijo: sobre las vacaciones del centro
       (#f5d76e) el número quedaba a 1,4:1. El componente lo calcula por
       contraste real y lo pasa en --marca-fg (ColorLegible, norma 2026-08-26). */
    color: var(--marca-fg, #fff);
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    line-height: 18px;
    padding: 0 4px;
    border-radius: 5px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.45), 0 1px 3px rgba(0,0,0,0.30);
    text-shadow: none;
}
.cal-dia-marca:hover .cal-dia-num[b-5zludfaogu] { transform: scale(1.10); }

/* Marca "suave/atenuada" (p.ej. día pasado ya trabajado): fondo muy claro
   (via --marca) + número gris oscuro en vez de blanco, sin badge fuerte. */
.cal-dia-marca-suave .cal-dia-num[b-5zludfaogu] {
    color: var(--marca-fg-suave, #5a6b80);
    font-weight: 600;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,0.08);
    text-shadow: none;
}

/* Modo editable (Calendario laboral): todos los días con cursor pointer + hover. */
.cal-dia-clic[b-5zludfaogu] { cursor: pointer; }
.cal-dia-clic:hover:not(.cal-dia-evento):not(.cal-dia-marca)[b-5zludfaogu] { background: #eef4fb; }

/* HOY = anillo azul alrededor de la celda. NO se cambia el color del número,
   para que sobre un festivo (badge rojo) o un evento siga siendo legible. */
.cal-dia-hoy[b-5zludfaogu] {
    outline: 2px solid #1f4a87;
    outline-offset: -2px;
    border-radius: 4px;
}
/* Sólo en un día normal (sin marca/evento) resaltamos el número en azul. */
.cal-dia-hoy:not(.cal-dia-marca):not(.cal-dia-evento) .cal-dia-num[b-5zludfaogu] {
    color: #1f4a87;
    font-weight: 800;
}

.cal-dia-sel[b-5zludfaogu] {
    outline: 2px solid #1f4a87;
    outline-offset: -2px;
    z-index: 3;
}

/* Resalte de GRUPO (opt-in, §3.4): al pasar el ratón por un día con data-cal-grupo, un
   listener JS del host marca con esta clase TODOS los días del mismo grupo (p.ej. una
   recuperable y sus recuperadas) para que se vea la unión. Anillo morado + realce. */
.cal-dia.cal-grupo-hover[b-5zludfaogu] {
    outline: 2px solid #8e6fb0;
    outline-offset: -2px;
    z-index: 4;
    box-shadow: 0 0 0 3px rgba(142, 111, 176, 0.28);
}

/* Pintado por ARRASTRE (opt-in): mientras se arrastra sobre los días, el listener JS del
   host marca el rango con esta clase. Tinte azul de selección. */
.cal-dia.cal-dia-rango[b-5zludfaogu] {
    outline: 2px solid #1f7ae0;
    outline-offset: -2px;
    background: rgba(31, 122, 224, 0.16);
    z-index: 5;
}

/* Patrón rayado para días con TODAS las gestiones finalizadas. */
.cal-dia-fin[b-5zludfaogu]::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(
        135deg,
        rgba(255,255,255,0.35) 0,
        rgba(255,255,255,0.35) 2px,
        transparent 2px,
        transparent 5px);
    pointer-events: none;
}
/* _content/NetOffice.Web.Forms/Components/CarteraDialog.razor.rz.scp.css */
/* CarteraDialog — patrón form_extracto adaptado a cartera
   (CLAUDE.md §2.30-cartera). Mismo lenguaje visual que ExtractoDialog
   pero con menos columnas y totales variables (1 ó 3 según tipo). */

.cartera-dialog[b-8hj08937zj] {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    max-height: 100vh !important;
    top: 0 !important;
    left: 50% !important;
    transform: translate(-50%, 0) !important;
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    display: flex;
    flex-direction: column;
    background: #f4f6fa;
    border: 1px solid #c5cdd9;
    overflow: hidden;
    position: relative;
}

/* ===== Cabecera azul corp ===== */
.cartera-header[b-8hj08937zj] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%) !important;
    color: #fff !important;
    border-bottom: none !important;
    padding: 12px 18px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.2px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15) !important;
    display: flex;
    align-items: center;
    gap: 12px;
}
.cartera-header > span[b-8hj08937zj] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #fff !important;
}
.cartera-header .cartera-header-icon[b-8hj08937zj] {
    color: #fff !important;
    font-size: 16px;
    opacity: 0.95;
}
.cartera-header .lookup-close[b-8hj08937zj] {
    color: #fff !important;
    background: rgba(255,255,255,0.10) !important;
    border: 1px solid rgba(255,255,255,0.30) !important;
    border-radius: 5px !important;
    width: 28px !important; height: 28px !important;
    margin-left: auto;
}
.cartera-header .lookup-close:hover[b-8hj08937zj] { background: rgba(255,255,255,0.22) !important; }

.cartera-header strong[b-8hj08937zj] {
    font-family: inherit;
    font-variant-numeric: tabular-nums;
    font-size: 14px;
    letter-spacing: 0.4px;
    color: #fff !important;
    background: rgba(255,255,255,0.18);
    padding: 2px 10px;
    border-radius: 4px;
    border: 1px solid rgba(255,255,255,0.30);
}
.cartera-header .cartera-header-tipo[b-8hj08937zj] {
    font-size: 12px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    opacity: 0.90;
    margin-right: 2px;
}
.cartera-header .cartera-header-nombre[b-8hj08937zj] {
    color: #fff !important;
    font-weight: 500;
    margin-left: 4px;
    opacity: 0.95;
}

/* Chip empresa con logo (mismo patrón que ContextoBar) */
.cartera-empresa-bar[b-8hj08937zj] {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    padding: 4px 12px 4px 6px;
    border: 1px solid;
    border-radius: 18px;
    color: #1a1a1a;
    font-weight: 600;
    font-size: 12.5px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.40);
}
.cartera-empresa-logo[b-8hj08937zj] {
    width: 22px; height: 22px;
    border-radius: 50%;
    object-fit: cover;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.15);
}
.cartera-empresa-bar i.bi-building[b-8hj08937zj] {
    width: 22px; height: 22px;
    border-radius: 50%;
    background: rgba(255,255,255,0.5);
    display: inline-flex; align-items: center; justify-content: center;
    color: #1f4a87;
    font-size: 13px;
}
.cartera-empresa-nombre[b-8hj08937zj] { color: #1a1a1a; font-weight: 700; }
.cartera-empresa-sep[b-8hj08937zj]    { color: rgba(0,0,0,0.4); margin: 0 2px; }
.cartera-empresa-subt[b-8hj08937zj]   { color: rgba(0,0,0,0.7); font-weight: 500; font-size: 11.5px; }

.cartera-header-titulo[b-8hj08937zj] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 auto;
    justify-content: center;
}

/* ===== Tarjetas de totales =====
   Norma Familia A (CLAUDE.md §2.30a — cliente 2026-05-19). Mismo lenguaje
   visual que ExtractoDialog (clon 1:1) para que la familia A se vea
   coherente en todo el proyecto. Reglas:
     • Fondo: blanco (caja normal) o amarillo zebra suave (caja "saldo/total
       final").
     • Border-LEFT 4 px de color SEMÁNTICO según posición:
         - 1.ª caja  → verde (positivo / nominal / cobros).
         - 2.ª caja  → rojo  (negativo / gastos / pagos).
         - 3.ª caja  → ámbar (saldo/acumulado/total final destacado).
     • Label en color del border-left (uppercase, letter-spacing 0.8).
     • Valor: 22 px, slate oscuro #1f2937 por defecto. En caja "saldo"
       lleva color por signo (.neg rojo · .pos verde · default slate). */
.cartera-totales[b-8hj08937zj] {
    display: flex;
    gap: 14px;
    padding: 14px 20px;
    background: #f7f9fc;
    border-bottom: 1px solid #d4dae3;
    flex-shrink: 0;
}
.cartera-totales .totalbox[b-8hj08937zj] {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 12px 18px;
    background: #fff;
    border: 1px solid #d4dae3;
    border-left: 4px solid #1f4a87;
    border-radius: 4px;
    box-shadow: 0 1px 2px rgba(15,30,55,0.04);
    transition: box-shadow 0.15s;
}
.cartera-totales .totalbox:hover[b-8hj08937zj] {
    box-shadow: 0 2px 6px rgba(15,30,55,0.10);
}
.cartera-totales .totalbox-label[b-8hj08937zj] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.8px;
    color: #5e6b7c;
    text-transform: uppercase;
}
.cartera-totales .totalbox-value[b-8hj08937zj] {
    font-size: 22px;
    font-weight: 700;
    color: #1f2937;
    font-variant-numeric: tabular-nums;
    margin-top: 4px;
    line-height: 1.1;
}

/* Variantes por posición — distinguen al ojo los 3 totales (verde/rojo/ámbar)
   sin necesidad de leer los labels. Mismo patrón que ExtractoDialog. */
.cartera-totales .totalbox:nth-child(1)[b-8hj08937zj] {
    border-left-color: #29a663;        /* Nominal / Cobros — verde */
}
.cartera-totales .totalbox:nth-child(1) .totalbox-label[b-8hj08937zj] { color: #1d6f42; }
.cartera-totales .totalbox:nth-child(2)[b-8hj08937zj] {
    border-left-color: #d94f4f;        /* Gastos / Pagos — rojo */
}
.cartera-totales .totalbox:nth-child(2) .totalbox-label[b-8hj08937zj] { color: #a31f1f; }
.cartera-totales .totalbox-saldo[b-8hj08937zj] {
    background: linear-gradient(180deg, #fff8d0 0%, #fff5b3 100%);
    border-color: #d8c270;
    border-left-color: #d8a728;        /* Saldo / Total / Acumulado — ámbar */
}
.cartera-totales .totalbox-saldo .totalbox-label[b-8hj08937zj] { color: #7a5b00; }
.cartera-totales .totalbox-saldo .totalbox-value[b-8hj08937zj] { color: #4a3a00; }

/* Color del valor por signo en cajas destacadas (.neg rojo · .pos verde
   oscuro · default slate). Solo afecta al texto, nunca al fondo. */
.cartera-totales .totalbox-value.neg[b-8hj08937zj] { color: #a31f1f; }
.cartera-totales .totalbox-value.pos[b-8hj08937zj] { color: #1d6f42; }

/* Pagos = 1 caja única (Σ TOTAL A PAGAR) — ocupa 1/3 del row alineada a
   izquierda. Las otras 2/3 quedan vacías a propósito (no inventar datos).
   Pasa override de border-left para que sea ROJO (semántico: "esto es lo
   que debes pagar") en lugar del ámbar de saldo neutro. */
.cartera-totales .cartera-totales-solo[b-8hj08937zj] {
    flex: 0 0 calc(33.333% - 10px);
    max-width: 33.333%;
}
.cartera-totales .cartera-totales-solo.totalbox-saldo[b-8hj08937zj] {
    border-left-color: #d94f4f;
}
.cartera-totales .cartera-totales-solo.totalbox-saldo .totalbox-label[b-8hj08937zj] {
    color: #a31f1f;
}

/* ===== Toolbar slate-titled §2.12.1 ===== */
.cartera-toolbar[b-8hj08937zj] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 20px;
    background: linear-gradient(180deg, #27548f 0%, #173a6b 100%);
    color: #fff;
    border-left: 4px solid #5fa8ff;
    font-size: 12px;
    text-shadow: 0 1px 0 rgba(0,0,0,0.25);
    flex-shrink: 0;
}
.cartera-toolbar-icon[b-8hj08937zj] { color: #aac6e8; font-size: 14px; }
.cartera-toolbar-title[b-8hj08937zj] { font-weight: 700; letter-spacing: 0.6px; font-size: 12.5px; }
.cartera-toolbar-count[b-8hj08937zj] {
    background: rgba(255,255,255,0.14);
    border: 1px solid rgba(255,255,255,0.22);
    color: #e9f1fc;
    border-radius: 11px;
    padding: 2px 10px;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}
.cartera-toolbar-spacer[b-8hj08937zj] { flex: 1 1 auto; }

.cartera-tb-buttons[b-8hj08937zj] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 6px;
    padding-left: 8px;
    border-left: 1px solid rgba(255,255,255,0.18);
}
.cartera-tb-btn[b-8hj08937zj] {
    width: 30px;
    height: 26px;
    border: 1px solid #b9c6d6;
    border-radius: 5px;
    background: linear-gradient(180deg, #ffffff 0%, #eef3f9 100%);
    color: #1f4a87;
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    transition: all 0.15s;
}
.cartera-tb-btn:hover:not(:disabled)[b-8hj08937zj] {
    background: linear-gradient(180deg, #f5fbff 0%, #d8ecff 100%);
    border-color: #1f4a87;
}
.cartera-tb-btn:disabled[b-8hj08937zj] {
    opacity: 0.45;
    cursor: not-allowed;
    background: #f0f3f8;
}
.cartera-tb-btn.active[b-8hj08937zj] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    border-color: #1f4a87;
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.20), 0 1px 2px rgba(0,0,0,0.15);
}
.cartera-tb-btn i[b-8hj08937zj] { font-size: 13px; }
.cartera-tb-btn.cartera-tb-excel[b-8hj08937zj] {
    background: linear-gradient(180deg, #29a663 0%, #1d6f42 100%);
    border-color: #1d6f42;
    color: #fff;
}
.cartera-tb-btn.cartera-tb-excel:hover:not(:disabled)[b-8hj08937zj] {
    background: linear-gradient(180deg, #2fb572 0%, #237a4b 100%);
}
.cartera-tb-btn.cartera-tb-excel:disabled[b-8hj08937zj] {
    background: #b8d8c5;
    border-color: #8aaa97;
}

/* Filtro fechas en toolbar (mismo patrón que extracto) */
.cartera-fecha-bloque[b-8hj08937zj] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.cartera-fecha-bloque .lbl[b-8hj08937zj] {
    color: #cfd8e3;
    font-size: 11px;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    font-weight: 600;
}
.cartera-fecha-wrap[b-8hj08937zj] {
    position: relative;
    display: inline-flex;
    align-items: center;
    width: 116px;
    height: 24px;
}
.cartera-fecha-inp[b-8hj08937zj] {
    width: 100%;
    height: 24px;
    padding: 0 28px 0 8px;
    border: 1px solid rgba(255,255,255,0.30);
    border-radius: 3px;
    font-size: 12px;
    background: rgba(255,255,255,0.95);
    text-align: center;
    outline: none;
    color: #1f2937;
}
.cartera-fecha-icon[b-8hj08937zj] {
    position: absolute;
    right: 7px;
    top: 50%;
    transform: translateY(-50%);
    color: #5d6b7d;
    font-size: 13px;
    pointer-events: none;
    z-index: 1;
}
.cartera-fecha-overlay[b-8hj08937zj] {
    position: absolute;
    right: 0;
    top: 0;
    width: 24px;
    height: 24px;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}
.cartera-fecha-inp:focus[b-8hj08937zj] {
    background: #fff;
    border-color: #fff;
    box-shadow: 0 0 0 2px rgba(255,255,255,0.40);
}
.cartera-fecha-clear[b-8hj08937zj] {
    width: 24px; height: 24px;
    display: inline-flex; align-items: center; justify-content: center;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.30);
    border-radius: 3px;
    color: #fff;
    cursor: pointer;
}
.cartera-fecha-clear:hover[b-8hj08937zj] { background: rgba(255,255,255,0.15); }

/* ===== Grid read-only ===== */
.cartera-grid-wrap[b-8hj08937zj] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overflow-x: hidden;
    background: #fff;
    border-top: 1px solid #c5cdd9;
    outline: none;
}
.cartera-table[b-8hj08937zj] {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
}
.cartera-table thead[b-8hj08937zj] {
    position: sticky;
    top: 0;
    z-index: 5;
    background: #fff;
}
.cartera-table thead th[b-8hj08937zj] {
    background: #eef2f7;
    color: #1f4a87;
    font-weight: 700;
    text-align: left;
    padding: 8px 10px;
    border-bottom: 2px solid #1f4a87;
    white-space: nowrap;
    font-size: 11.5px;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}
.cartera-table thead th.num[b-8hj08937zj] { text-align: right; }
.cartera-table thead .grid-filter-row th[b-8hj08937zj] {
    background: #f6f9fd;
    padding: 3px 5px;
    border-bottom: 1px solid #d4dae3;
    text-transform: none;
    letter-spacing: 0;
    font-weight: normal;
}
.cartera-table thead .grid-filter-inp[b-8hj08937zj] {
    width: 100%;
    height: 22px;
    padding: 0 6px;
    border: 1px solid #c9ced4;
    border-radius: 3px;
    font-size: 11px;
    outline: none;
}
.cartera-table thead .grid-filter-inp.num[b-8hj08937zj] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.cartera-table thead .grid-filter-inp:focus[b-8hj08937zj] {
    border-color: #3874cb;
    box-shadow: inset 0 0 0 1px #3874cb;
}

/* Filas */
.cartera-table tbody td[b-8hj08937zj] {
    padding: 5px 10px;
    border-bottom: 1px solid #eef0f4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}
.cartera-table tbody td.num[b-8hj08937zj] { text-align: right; }
.cartera-table tbody tr:nth-child(odd)[b-8hj08937zj] { background: #fbfcfe; }
.cartera-table tbody tr:hover[b-8hj08937zj] { background: #eef4fc; cursor: pointer; }

.cartera-table tbody tr.selected[b-8hj08937zj],
.cartera-table tbody tr.selected:nth-child(odd)[b-8hj08937zj] {
    background: #d8e8fb;
}
.cartera-table tbody tr.selected td:first-child[b-8hj08937zj] {
    box-shadow: inset 3px 0 0 #1f4a87;
}
.cartera-table tbody tr[b-8hj08937zj] {
    scroll-margin-top: 56px;
}
.cartera-table tbody tr.cartera-row-empty:hover[b-8hj08937zj] { background: transparent; cursor: default; }
.cartera-table tbody tr.cartera-row-empty td[b-8hj08937zj] {
    text-align: center;
    color: #6b7280;
    padding: 36px 10px;
    font-style: italic;
    font-size: 13px;
}
.cartera-table tbody td.cell-doc[b-8hj08937zj] {
    font-family: 'Consolas', 'Courier New', monospace;
    color: #1f4a87;
    font-weight: 600;
}
.cartera-table tbody td.cell-acum[b-8hj08937zj] {
    font-weight: 700;
    color: #1d6f42;
}
.cartera-table tbody td.cell-acum.neg[b-8hj08937zj] {
    color: #a31f1f;
}

/* ===== Footer ===== */
.cartera-footer[b-8hj08937zj] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: #fff;
    border-top: 1px solid #d4dae3;
    flex-shrink: 0;
}
.cartera-footer-spacer[b-8hj08937zj] { flex: 1 1 auto; }

/* Botones del footer — inline-flex horizontal coherente entre todos los
   dialogs Familia A (CLAUDE.md §2.30a). Override del `.bbtn` global del RCL
   que es un icon-button vertical pequeño (vale para toolbars compactos pero
   en el footer del modal queda visualmente roto al lado del botón Imprimir). */
.cartera-footer .bbtn[b-8hj08937zj] {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    min-width: 0;
    border-radius: 5px;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid #c5cdd9;
    background: #fff;
    color: #1f4a87;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: background 0.12s, border-color 0.12s, box-shadow 0.15s;
}
.cartera-footer .bbtn i[b-8hj08937zj] {
    font-size: 13px !important;
    color: inherit !important;
    margin: 0 !important;
}

.cartera-footer .bbtn-cartera-imprimir[b-8hj08937zj] {
    background: linear-gradient(180deg, #f5fbff 0%, #d8ecff 100%);
    border: 1px solid #7ba4d6;
    color: #1f4a87;
    font-weight: 600;
}
.cartera-footer .bbtn-cartera-imprimir:hover:not(:disabled)[b-8hj08937zj] {
    background: linear-gradient(180deg, #e6f3ff 0%, #c3def5 100%);
    border-color: #1f4a87;
}
.cartera-footer .bbtn-cartera-imprimir:disabled[b-8hj08937zj] {
    opacity: 0.55;
    cursor: not-allowed;
}
.cartera-footer .bbtn-cartera-imprimir .spin[b-8hj08937zj] {
    animation: cartera-spin-b-8hj08937zj 1s linear infinite;
}

/* Botón Salir — outlined neutro coherente con Familia A §2.30a. */
.cartera-footer .bbtn:last-child[b-8hj08937zj] {
    background: #fff;
    border-color: #c5cdd9;
    color: #3a4754;
}
.cartera-footer .bbtn:last-child:hover[b-8hj08937zj] {
    background: #f5f7fa;
    border-color: #8b95a3;
    color: #1f2937;
    box-shadow: 0 2px 5px rgba(58,71,84,0.15);
}
@keyframes cartera-spin-b-8hj08937zj {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* ===== Overlay PDF preview (clon del extracto) ===== */
.pdf-preview-backdrop[b-8hj08937zj] {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pdf-preview-panel[b-8hj08937zj] {
    background: #fff;
    width: 92%;
    height: 92%;
    border-radius: 6px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.4);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.pdf-preview-header[b-8hj08937zj] {
    background: linear-gradient(180deg, #27548f 0%, #173a6b 100%);
    color: #fff;
    padding: 10px 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    border-bottom: 2px solid #5fa8ff;
}
.pdf-preview-spacer[b-8hj08937zj] { flex: 1 1 auto; }
.pdf-preview-close[b-8hj08937zj] {
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.30);
    color: #fff;
    width: 28px; height: 28px;
    border-radius: 4px;
    cursor: pointer;
}
.pdf-preview-close:hover[b-8hj08937zj] { background: rgba(255,255,255,0.30); }
.pdf-preview-body[b-8hj08937zj] {
    flex: 1 1 auto;
    min-height: 0;
    background: #525659;
}
.pdf-preview-iframe[b-8hj08937zj] {
    width: 100%;
    height: 100%;
    border: none;
}
.pdf-preview-footer[b-8hj08937zj] {
    background: #fff;
    border-top: 1px solid #d4dae3;
    padding: 10px 16px;
    display: flex;
    gap: 8px;
}

/* ===== Animaciones ===== */
.spin[b-8hj08937zj] { animation: cartera-spin-b-8hj08937zj 1s linear infinite; display: inline-block; }
/* _content/NetOffice.Web.Forms/Components/Composicion/ComposicionDocumento.razor.rz.scp.css */
/* ComposicionDocumento — consulta de lo que lleva un documento. Chasis de
   «Pedidos de la factura» (TMS): cabecera azul, aviso, rejillas, pie con los
   totales del documento y la botonera. La página no scrollea (§2.18). */

.cd-root[b-137gvza102] {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    background: #eef2f7;
    overflow: hidden;
}
.cd-root.cd-standalone[b-137gvza102] { position: fixed; }

/* ── Cabecera ────────────────────────────────────────────────────────────── */
.cd-hdr[b-137gvza102] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 9px 14px;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .25);
}
.cd-hdr-left[b-137gvza102] { display: flex; align-items: center; gap: 11px; min-width: 0; }
.cd-hdr-ico[b-137gvza102] { font-size: 22px; color: #cfe2f8; flex: 0 0 auto; }
.cd-hdr-txt[b-137gvza102] { min-width: 0; }
.cd-hdr-t1[b-137gvza102] {
    display: flex; align-items: center; gap: 8px;
    font-size: 15px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cd-hdr-t2[b-137gvza102] {
    font-size: 12px; color: #d8e6f7; margin-top: 1px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cd-hdr-right[b-137gvza102] { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.cd-tot-box[b-137gvza102] { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.15; }
.cd-tot-lbl[b-137gvza102] { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: #cfe2f8; }
.cd-tot-val[b-137gvza102] { font-size: 17px; font-weight: 700; font-variant-numeric: tabular-nums; color: #ffe9a8; }
.cd-tot-val.neg[b-137gvza102] { color: #ffc9c9; }
.cd-close[b-137gvza102] {
    width: 30px; height: 30px;
    border: 1px solid rgba(255, 255, 255, .25); border-radius: 6px;
    background: rgba(255, 255, 255, .08); color: #fff; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center; font-size: 13px;
}
.cd-close:hover[b-137gvza102] { background: rgba(255, 255, 255, .2); }

/* ── Aviso ───────────────────────────────────────────────────────────────── */
.cd-aviso[b-137gvza102] {
    flex: 0 0 auto;
    display: flex; align-items: center; gap: 8px;
    padding: 6px 14px; font-size: 12px;
    border-bottom: 1px solid #d5dde7; background: #eef2f7; color: #475569;
}
.cd-aviso > i[b-137gvza102] { font-size: 13px; flex: 0 0 auto; color: #64748b; }
.cd-aviso-prov[b-137gvza102] { background: #fff7e0; border-bottom-color: #f0d58a; color: #6b4e00; }
.cd-aviso-prov > i[b-137gvza102] { color: #b7791f; }
.cd-aviso-info[b-137gvza102] { background: #eef4fc; border-bottom-color: #cfe0f5; color: #2a4f7e; }
.cd-aviso-info > i[b-137gvza102] { color: #1f4a87; }

.cd-error[b-137gvza102] {
    flex: 0 0 auto; display: flex; align-items: center; gap: 8px;
    margin: 6px 12px 0; padding: 6px 10px;
    border: 1px solid #f2c2c2; border-left: 4px solid #c0392b; border-radius: 4px;
    background: #fdf1f1; color: #8a2b22; font-size: 12px;
}
.cd-error-x[b-137gvza102] { margin-left: auto; border: 0; background: none; color: #8a2b22; font-size: 16px; line-height: 1; cursor: pointer; }

/* ── Cuerpo: las rejillas, una debajo de otra, repartiéndose el alto ───── */
.cd-body[b-137gvza102] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 8px 12px;
    overflow: auto;
}
.cd-cargando[b-137gvza102] { margin: auto; color: #6c7384; font-style: italic; }
.cd-spin[b-137gvza102] {
    display: inline-block; width: 13px; height: 13px; margin-right: 6px; vertical-align: -2px;
    border: 2px solid #c3ccd8; border-top-color: #2a55a3; border-radius: 50%;
    animation: cd-rot-b-137gvza102 .7s linear infinite;
}
@keyframes cd-rot-b-137gvza102 { to { transform: rotate(360deg); } }

/* ── Pie: info · totales del documento · botonera ────────────────────────── */
.cd-pie[b-137gvza102] {
    flex: 0 0 auto;
    display: flex; align-items: center; gap: 8px;
    padding: 7px 12px;
    border-top: 1px solid #d5dde7;
    background: #e8edf4;
}
.cd-pie-info[b-137gvza102] { flex: 0 1 auto; display: inline-flex; align-items: center; gap: 6px; color: #5b6676; font-size: 12px; min-width: 0; }
.cd-pie-spacer[b-137gvza102] { flex: 1 1 auto; }
[b-137gvza102] .cd-pie-totales { margin: 0; flex: 0 1 auto; }
.cd-doc-ico[b-137gvza102] { position: relative; display: inline-flex; margin-bottom: 2px; }
.cd-doc-ico i[b-137gvza102] { margin-bottom: 0 !important; color: #8a96a5 !important; }
.cd-doc-ico.on i[b-137gvza102] { color: #2a55a3 !important; }
.cd-doc-n[b-137gvza102] {
    position: absolute; top: -6px; right: -10px;
    min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px;
    display: inline-flex; align-items: center; justify-content: center;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff; font-size: 10px; font-weight: 800;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .25);
}
.cd-btn-modificar[b-137gvza102] { background: linear-gradient(180deg, #fff7e0 0%, #f9e9b8 100%) !important; border-color: #d9b45a !important; color: #4a3600 !important; }
.cd-btn-modificar i[b-137gvza102] { color: #b7791f; }
.cd-btn-modificar:hover:not(:disabled)[b-137gvza102] { background: linear-gradient(180deg, #fff1c8 0%, #f3dd98 100%) !important; }
/* _content/NetOffice.Web.Forms/Components/Composicion/ComposicionEstadoBadge.razor.rz.scp.css */
.ceb[b-xoexxz478u] {
    display: inline-flex; align-items: center; gap: 4px;
    padding: 1px 8px; border-radius: 9px;
    font-size: 10px; font-weight: 800; letter-spacing: .05em; white-space: nowrap;
}
.ceb-provisional[b-xoexxz478u], .ceb-encalculo[b-xoexxz478u] { background: #fff3cd; color: #6b4e00; border: 1px solid #e8c877; }
.ceb-definitiva[b-xoexxz478u] { background: #fff; color: #1f4a87; }
.ceb-rectificativa[b-xoexxz478u] { background: #78350f; color: #fef3c7; }
.ceb-anulada[b-xoexxz478u] { background: #7f1d1d; color: #fee2e2; }
/* _content/NetOffice.Web.Forms/Components/Composicion/ComposicionGrid.razor.rz.scp.css */
/* ComposicionGrid — una rejilla por tipo de línea (JJ 2026-11-02). Mismo
   lenguaje que «Pedidos de la factura»: banda azul, tabla canónica del RCL,
   totales al pie FUERA de la lista. Root sin ::deep (scoped). */

.cg-root[b-knvxjzr93v] {
    flex: 1 1 0;
    min-height: 150px;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid #c8d4e3;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(20, 40, 70, .08);
}
.cg-root.cg-compacta[b-knvxjzr93v] { flex: 0 1 auto; min-height: 110px; max-height: 40%; }

/* ── Banda de título ─────────────────────────────────────────────────────── */
.cg-band[b-knvxjzr93v] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 10px;
    background: linear-gradient(180deg, #3d7bcc 0%, #2a5da6 100%);
    color: #eaf2ff;
    font-size: 11.5px;
    border-bottom: 1px solid #1f4a87;
}
.cg-band-ico[b-knvxjzr93v] { font-size: 13px; color: #cfe2f8; }
.cg-band-title[b-knvxjzr93v] { font-weight: 700; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.cg-band-n[b-knvxjzr93v] {
    min-width: 20px; padding: 0 6px; border-radius: 9px; text-align: center;
    background: #fff; color: #1f4a87; font-weight: 800; font-size: 10.5px;
}
.cg-band-marc[b-knvxjzr93v], .cg-band-filtro[b-knvxjzr93v] {
    padding: 0 7px; border-radius: 9px; font-size: 10.5px; font-weight: 700; white-space: nowrap;
    background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .35);
}
.cg-band-marc[b-knvxjzr93v] { background: #fff3cd; color: #6b4e00; border-color: #f0d58a; }
.cg-band-spacer[b-knvxjzr93v] { flex: 1 1 auto; }
.cg-band-btn[b-knvxjzr93v] {
    width: 26px; height: 22px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 5px; cursor: pointer;
    background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .34);
    color: #eaf2ff; font-size: 12px;
}
.cg-band-btn:hover:not(:disabled)[b-knvxjzr93v] { background: rgba(255, 255, 255, .3); border-color: #fff; color: #fff; }
.cg-band-btn:disabled[b-knvxjzr93v] { opacity: .45; cursor: default; }

/* Botones de acción que la pantalla mete en la banda (Quitar/Añadir marcados).
   ::deep porque el markup lo pinta la pantalla, no este componente. */
.cg-band[b-knvxjzr93v]  .cg-accion {
    display: inline-flex; align-items: center; gap: 5px;
    border-radius: 6px; padding: 2px 10px;
    font-size: 11.5px; font-weight: 700; cursor: pointer; white-space: nowrap;
    border: 1px solid rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .15); color: #fff;
}
.cg-band[b-knvxjzr93v]  .cg-accion:disabled { opacity: .45; cursor: default; }
.cg-band[b-knvxjzr93v]  .cg-accion-quitar { background: #c0392b; border-color: #9c2a1f; }
.cg-band[b-knvxjzr93v]  .cg-accion-quitar:hover:not(:disabled) { background: #a93226; }
.cg-band[b-knvxjzr93v]  .cg-accion-anadir { background: #1f7a44; border-color: #196437; }
.cg-band[b-knvxjzr93v]  .cg-accion-anadir:hover:not(:disabled) { background: #1a6b3b; }

/* ── Tabla ───────────────────────────────────────────────────────────────── */
.cg-scroll[b-knvxjzr93v] { flex: 1 1 auto; min-height: 0; overflow: auto; outline: none; }
.cg-table[b-knvxjzr93v] { width: max-content; min-width: 100%; table-layout: fixed; }
.cg-table[b-knvxjzr93v]  thead tr.grid-filter-row th { padding: 2px 3px; vertical-align: top; }
.cg-table thead th.sortable[b-knvxjzr93v] { cursor: pointer; user-select: none; }
.cg-table thead th.num[b-knvxjzr93v] { text-align: right; }
.cg-table td[b-knvxjzr93v] {
    padding: 3px 6px;
    border-bottom: 1px solid #eef1f5;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 12px;
}
.cg-table td.num[b-knvxjzr93v] { text-align: right; font-variant-numeric: tabular-nums; }
.cg-table tbody tr[b-knvxjzr93v] { cursor: pointer; }
.cg-table tbody tr:not(.selected):hover[b-knvxjzr93v] { background: #f2f7fd; }
.cg-table tbody tr.cg-marcada:not(.selected) > td[b-knvxjzr93v] { background: #e8f1ff; }
.cg-rowind[b-knvxjzr93v] { color: #2a5fa8; text-align: center; padding: 0 !important; }
.cg-th-chk[b-knvxjzr93v], .cg-td-chk[b-knvxjzr93v] { text-align: center; padding: 0 2px !important; }
.cg-chk[b-knvxjzr93v] { cursor: pointer; }
.cg-doc-cell[b-knvxjzr93v] { text-align: center; padding: 1px 2px !important; }
.cg-doc-btn[b-knvxjzr93v] {
    border: none; background: transparent; padding: 0; margin: 0; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    width: 100%; height: 18px; line-height: 0;
}

.cg-vacio[b-knvxjzr93v] { padding: 16px 14px; color: #6b7c90; font-size: 12.5px; font-style: italic; text-align: center; }

/* ── Totales al pie, fuera de la lista ───────────────────────────────────── */
.cg-totales[b-knvxjzr93v] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 4px 10px;
    border-top: 2px solid #c8d4e3;
    background: #f3f6fa;
    font-size: 12px;
    color: #4a5c72;
}
.cg-tot-n[b-knvxjzr93v] { font-weight: 600; white-space: nowrap; }
.cg-tot-spacer[b-knvxjzr93v] { flex: 1 1 auto; }
.cg-tot-item[b-knvxjzr93v] { display: inline-flex; align-items: baseline; gap: 6px; white-space: nowrap; }
.cg-tot-lbl[b-knvxjzr93v] { font-size: 10.5px; text-transform: uppercase; letter-spacing: .05em; color: #6b7c90; }
.cg-tot-val[b-knvxjzr93v] { font-weight: 700; color: #1b2a3d; font-variant-numeric: tabular-nums; }
.cg-tot-item.neg .cg-tot-val[b-knvxjzr93v] { color: #b42318; }
.cg-tot-item:last-child .cg-tot-val[b-knvxjzr93v] { color: #1f4a87; }

.cg-cfg-dialog[b-knvxjzr93v] { width: 460px; }
.cg-cfg-dialog .config-cols-body[b-knvxjzr93v] { max-height: 58vh; overflow: auto; }
/* _content/NetOffice.Web.Forms/Components/Composicion/ComposicionModificar.razor.rz.scp.css */
/* ComposicionModificar — quitar / añadir en un documento provisional.
   Chasis de la modificación de facturas del TMS: cabecera azul, aviso ámbar
   con Deshacer, resumen a la izquierda, rejillas a la derecha. */

.cm-shell[b-u6nt2bj00z] {
    position: absolute;
    inset: 0;
    z-index: 32;
    display: flex;
    flex-direction: column;
    background: #eef2f7;
}

.cm-hdr[b-u6nt2bj00z] {
    flex: 0 0 auto;
    display: flex; align-items: center; gap: 10px;
    padding: 7px 12px;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    border-bottom: 1px solid #163864;
    color: #eaf2ff;
}
.cm-hdr-ico[b-u6nt2bj00z] { font-size: 15px; }
.cm-hdr-t1[b-u6nt2bj00z] { font-size: 14px; font-weight: 700; white-space: nowrap; }
.cm-hdr-t2[b-u6nt2bj00z] { color: #cfe0f5; font-size: 12.5px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 520px; }
.cm-hdr-spacer[b-u6nt2bj00z] { flex: 1 1 auto; }
.cm-hdr-cerrar[b-u6nt2bj00z] {
    display: inline-flex; align-items: center; gap: 6px;
    background: #fff; color: #1f4a87; border: 1px solid #fff; border-radius: 6px;
    padding: 5px 12px; font-size: 12px; font-weight: 700; cursor: pointer;
}
.cm-hdr-cerrar:hover[b-u6nt2bj00z] { background: #eaf2ff; }

.cm-aviso[b-u6nt2bj00z] {
    flex: 0 0 auto;
    display: flex; align-items: center; gap: 10px;
    padding: 7px 14px;
    background: #fff7e0; border-bottom: 1px solid #f0d58a;
    color: #6b4e00; font-size: 12.5px;
}
.cm-aviso > i[b-u6nt2bj00z] { color: #b7791f; font-size: 15px; flex: 0 0 auto; }
.cm-aviso > span[b-u6nt2bj00z] { flex: 1 1 auto; }
.cm-aviso-lock[b-u6nt2bj00z] { background: #fff3d6; border-bottom-color: #e8c877; color: #7a4c00; font-weight: 600; }
.cm-btn-deshacer[b-u6nt2bj00z] {
    flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 12px; border-radius: 6px; cursor: pointer;
    background: #fff; border: 1px solid #d9b45a; color: #6b4e00; font-size: 12px; font-weight: 700;
}
.cm-btn-deshacer:hover:not(:disabled)[b-u6nt2bj00z] { background: #b7791f; border-color: #b7791f; color: #fff; }
.cm-btn-deshacer:disabled[b-u6nt2bj00z] { opacity: .45; cursor: default; }

.cm-error[b-u6nt2bj00z] {
    flex: 0 0 auto; display: flex; align-items: center; gap: 8px;
    padding: 6px 12px; font-size: 12.5px; font-weight: 600;
    background: #fde6e6; border-bottom: 1px solid #e59a9a; color: #8d1f1f;
}
.cm-error > span[b-u6nt2bj00z] { flex: 1 1 auto; }
.cm-error-x[b-u6nt2bj00z] { background: none; border: none; cursor: pointer; color: inherit; font-size: 15px; }

/* ── Cuerpo ──────────────────────────────────────────────────────────────── */
.cm-body[b-u6nt2bj00z] {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    gap: 8px;
    padding: 8px;
}
.cm-resumen[b-u6nt2bj00z] {
    flex: 0 0 300px;
    display: flex; flex-direction: column; min-height: 0;
    background: #fff; border: 1px solid #c8d4e3; border-radius: 6px; overflow: hidden;
    box-shadow: 0 1px 3px rgba(20, 40, 70, .08);
}
.cm-resumen-band[b-u6nt2bj00z] {
    display: flex; align-items: center; gap: 8px; padding: 5px 10px;
    background: linear-gradient(180deg, #3d7bcc 0%, #2a5da6 100%);
    color: #eaf2ff; font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
    border-bottom: 1px solid #1f4a87;
}
.cm-resumen-body[b-u6nt2bj00z] { flex: 1 1 auto; min-height: 0; overflow: auto; }
.cm-main[b-u6nt2bj00z] { flex: 1 1 auto; min-width: 0; min-height: 0; display: flex; flex-direction: column; gap: 8px; }
.cm-zona[b-u6nt2bj00z] { min-height: 0; display: flex; flex-direction: column; gap: 8px; }
/* Lo que lleva el documento se queda con el alto que sobre; los pendientes
   ocupan lo que necesitan (sólo un texto si no hay nada que añadir) y como
   mucho algo menos de la mitad. */
.cm-zona-dentro[b-u6nt2bj00z] { flex: 1 1 0; }
.cm-zona-pend[b-u6nt2bj00z] { flex: 0 1 auto; max-height: 45%; }
/* Con rejillas de pendientes, las dos zonas se reparten el alto a partes
   iguales (JJ 2026-11-02: «lo de abajo casi no se ve»). */
.cm-zona-pend:has(section)[b-u6nt2bj00z] { flex: 1 1 0; max-height: none; }

.cm-cargando[b-u6nt2bj00z] { margin: auto; display: inline-flex; align-items: center; gap: 8px; color: #5a6b80; font-size: 13px; font-weight: 600; }

.cm-ocupado[b-u6nt2bj00z] {
    position: absolute; inset: 0; z-index: 5;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    background: rgba(238, 242, 247, .65); color: #1f4a87; font-weight: 700; font-size: 13px;
}
.cm-spin[b-u6nt2bj00z] {
    display: inline-block; width: 15px; height: 15px;
    border: 2px solid #c3ccd8; border-top-color: #2a55a3; border-radius: 50%;
    animation: cm-rot-b-u6nt2bj00z .7s linear infinite;
}
@keyframes cm-rot-b-u6nt2bj00z { to { transform: rotate(360deg); } }

/* ── Pie ─────────────────────────────────────────────────────────────────── */
.cm-pie[b-u6nt2bj00z] {
    flex: 0 0 auto;
    display: flex; align-items: center; gap: 8px;
    padding: 7px 12px;
    background: #e4ebf4; border-top: 1px solid #c8d4e3;
}
.cm-pie-spacer[b-u6nt2bj00z] { flex: 1 1 auto; }
.cm-btn-sec[b-u6nt2bj00z], .cm-btn-destruir-sec[b-u6nt2bj00z], .cm-btn-destruir[b-u6nt2bj00z], .cm-btn-cerrar[b-u6nt2bj00z] {
    display: inline-flex; align-items: center; gap: 6px;
    border-radius: 6px; padding: 5px 14px; font-size: 12.5px; font-weight: 600; cursor: pointer;
    background: #fff; color: #26415e; border: 1px solid #b6c6d8;
}
.cm-btn-destruir-sec[b-u6nt2bj00z] { background: #fde6e6; border-color: #e59a9a; color: #8d1f1f; }
.cm-btn-destruir-sec:hover:not(:disabled)[b-u6nt2bj00z] { background: #f9d5d5; }
.cm-btn-destruir[b-u6nt2bj00z] { background: #c0392b; border-color: #9c2a1f; color: #fff; padding: 3px 12px; }
.cm-btn-sec[b-u6nt2bj00z] { padding: 3px 12px; }
.cm-btn-cerrar[b-u6nt2bj00z] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    border-color: #163864; color: #fff; font-weight: 700; padding: 6px 18px;
}
.cm-confirm[b-u6nt2bj00z] { display: inline-flex; align-items: center; gap: 8px; color: #8d1f1f; font-size: 12.5px; font-weight: 600; }

/* ── La línea abierta encima (viaje, pedido, albarán) ────────────────────── */
.cm-elem-overlay[b-u6nt2bj00z] {
    position: fixed; inset: 0; z-index: 60;
    display: flex; flex-direction: column; background: #eef2f7;
}
/* La barra de «Volver» queda POR ENCIMA de los telones de las fichas que se
   abren dentro (p.ej. AlbaranFicha usa z-index 1100 con su propio fondo). */
.cm-elem-aviso[b-u6nt2bj00z] {
    position: relative; z-index: 1200;
    flex: 0 0 auto; display: flex; align-items: center; gap: 8px;
    padding: 7px 14px; background: #fff7e6; border-bottom: 1px solid #eddcb4;
    color: #7a5310; font-size: 12.5px;
}
.cm-elem-aviso > i[b-u6nt2bj00z] { color: #b45309; font-size: 14px; flex: 0 0 auto; }
.cm-elem-aviso > span[b-u6nt2bj00z] { flex: 1 1 auto; }
.cm-elem-volver[b-u6nt2bj00z] {
    flex: 0 0 auto; display: inline-flex; align-items: center; gap: 5px;
    padding: 3px 11px; border: 1px solid #e0c68b; border-radius: 5px;
    background: #fff; color: #7a5310; font-size: 12px; font-weight: 600; cursor: pointer;
}
.cm-elem-volver:hover[b-u6nt2bj00z] { background: #b45309; border-color: #b45309; color: #fff; }
.cm-elem-host[b-u6nt2bj00z] { flex: 1 1 auto; min-height: 0; overflow: auto; position: relative; }
/* Las fichas que se abren aquí miden 100vh (pensadas para la ventana entera):
   bajo la banda de «Volver» sobraría su alto y saldría un scroll falso. */
.cm-elem-host[b-u6nt2bj00z]  .cp-shell,
.cm-elem-host[b-u6nt2bj00z]  .ficha-shell { height: 100% !important; }
.cm-elem-aviso-libre[b-u6nt2bj00z] { background: #e9f3ff; border-bottom-color: #b6c6d8; color: #26415e; }
.cm-elem-aviso-libre > i[b-u6nt2bj00z] { color: #1f4a87; }

.cm-ok[b-u6nt2bj00z] {
    flex: 0 0 auto; display: flex; align-items: center; gap: 8px;
    padding: 6px 12px; font-size: 12.5px; font-weight: 600;
    background: #e3f5e8; border-bottom: 1px solid #86c99a; color: #1c6b34;
}
.cm-ok > span[b-u6nt2bj00z] { flex: 1 1 auto; }
.cm-ok-x[b-u6nt2bj00z] { background: none; border: none; cursor: pointer; color: inherit; font-size: 15px; }

@media (max-width: 1200px) {
    .cm-body[b-u6nt2bj00z] { flex-direction: column; }
    .cm-resumen[b-u6nt2bj00z] { flex: 0 0 auto; max-height: 30%; }
}
/* _content/NetOffice.Web.Forms/Components/Composicion/ComposicionNota.razor.rz.scp.css */
.cr-nota[b-7ojm68y5qw] {
    margin: 10px 0 0; padding: 8px 10px; border-radius: 6px;
    background: #eef4fc; border: 1px solid #cfe0f5;
    color: #2a4f7e; font-size: 11.5px; line-height: 1.45;
}
.cr-nota > i[b-7ojm68y5qw] { margin-right: 6px; }
.cr-nota-ambar[b-7ojm68y5qw] { background: #fff7e6; border-color: #f1d8a0; color: #6b4e00; }
.cr-nota-ambar > i[b-7ojm68y5qw] { color: #b7791f; }
/* _content/NetOffice.Web.Forms/Components/Composicion/ComposicionResumen.razor.rz.scp.css */
.cr-root[b-h063882wb2] { padding: 10px 12px; }
.cr-lin[b-h063882wb2] { display: flex; align-items: baseline; gap: 8px; padding: 3px 0; font-size: 12.5px; color: #4a5c72; }
.cr-lin > span[b-h063882wb2] { flex: 1 1 auto; }
.cr-lin > b[b-h063882wb2] { color: #1b2a3d; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 190px; }
.cr-lin > b.num[b-h063882wb2] { font-variant-numeric: tabular-nums; }
.cr-lin > b.neg[b-h063882wb2] { color: #b42318; }
.cr-sep[b-h063882wb2] { height: 1px; background: #dde5ee; margin: 7px 0; }
.cr-big[b-h063882wb2] { font-size: 14px; }
.cr-big > span[b-h063882wb2] { font-weight: 700; color: #1f4a87; }
.cr-big > b[b-h063882wb2] { font-size: 16px; color: #1f4a87; }
.cr-nota[b-h063882wb2] {
    margin: 10px 0 0; padding: 8px 10px; border-radius: 6px;
    background: #eef4fc; border: 1px solid #cfe0f5;
    color: #2a4f7e; font-size: 11.5px; line-height: 1.45;
}
.cr-nota > i[b-h063882wb2] { margin-right: 6px; }
/* _content/NetOffice.Web.Forms/Components/CopiarDescripcionesDialog.razor.rz.scp.css */
/* «Copiar a otras empresas» de Descripción de apuntes (buzón 2026-10-30; en el RCL
   desde el 2026-10-31, mejora 31). Sobre las clases lookup-* globales de app.css. */
.cda-dialog[b-b9wupp3sqz] { width: 520px; }
.cda-body[b-b9wupp3sqz] { padding: 10px 14px; display: flex; flex-direction: column; gap: 8px; }
.cda-fila[b-b9wupp3sqz] { display: flex; align-items: center; gap: 10px; }
.cda-lbl[b-b9wupp3sqz] { font-weight: 600; color: #34465c; white-space: nowrap; }
.cda-origen[b-b9wupp3sqz] { flex: 1; height: 26px; }
.cda-seccion[b-b9wupp3sqz] {
    display: flex; align-items: center; justify-content: space-between;
    margin-top: 4px; padding-bottom: 3px; border-bottom: 1px solid #dde3ea;
    font-weight: 600; color: #1f4a87;
}
.cda-marcar[b-b9wupp3sqz] { display: inline-flex; gap: 10px; font-weight: 400; }
.cda-link[b-b9wupp3sqz] { border: none; background: none; padding: 0; color: #2f6fb0; cursor: pointer; font-size: 12px; text-decoration: underline; }
.cda-apps[b-b9wupp3sqz] { display: flex; flex-wrap: wrap; gap: 4px 18px; }
.cda-empresas[b-b9wupp3sqz] { display: flex; flex-direction: column; gap: 2px; max-height: 260px; overflow: auto; padding: 2px 0; }
.cda-chk[b-b9wupp3sqz] { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.cda-nota[b-b9wupp3sqz] { color: #6b7785; font-size: 12px; }
.cda-aviso[b-b9wupp3sqz] { background: #f3f6fb; border: 1px solid #dde3ea; border-radius: 4px; padding: 6px 8px; }
.cda-aviso i[b-b9wupp3sqz] { color: #2f6fb0; margin-right: 4px; }
/* _content/NetOffice.Web.Forms/Components/Cuadre/BuscarViajesCuadreDialog.razor.rz.scp.css */
/* Ventana «Buscar viajes» del cuadre factura ↔ viajes del TMS. Por encima de
   la revisión de la factura (1301) y del entorno de liquidaciones; por debajo
   del viaje abierto encima (1460), que se puede abrir desde aquí. */

.bvc-backdrop[b-u2fe9usqn8] { position: fixed; inset: 0; z-index: 1442; background: rgba(15, 25, 45, .45); }
.bvc-win[b-u2fe9usqn8] {
    position: fixed; z-index: 1443; left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: min(1080px, 96vw); height: min(680px, 90vh);
    display: flex; flex-direction: column; overflow: hidden;
    background: #fff; border-radius: 10px; box-shadow: 0 14px 44px rgba(10, 25, 50, .38);
    font-size: 12.5px; color: #2b3640;
    animation: bvc-in-b-u2fe9usqn8 .16s ease-out;
}
@keyframes bvc-in-b-u2fe9usqn8 { from { opacity: 0; transform: translate(-50%, -48%); } to { opacity: 1; transform: translate(-50%, -50%); } }

.bvc-head[b-u2fe9usqn8] {
    flex: 0 0 auto; display: flex; align-items: center; gap: 10px;
    padding: 10px 14px; background: linear-gradient(180deg, #2f6ec1, #1f4a87); color: #fff;
}
.bvc-head > i[b-u2fe9usqn8] { font-size: 20px; color: #cfe0f7; }
.bvc-head-txt[b-u2fe9usqn8] { flex: 1 1 auto; min-width: 0; }
.bvc-title[b-u2fe9usqn8] { font-weight: 700; font-size: 14px; }
.bvc-sub[b-u2fe9usqn8] { font-size: 11.5px; color: #cfe0f7; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bvc-x[b-u2fe9usqn8] { border: 0; background: rgba(255,255,255,.14); color: #fff; width: 30px; height: 28px; border-radius: 6px; cursor: pointer; }
.bvc-x:hover[b-u2fe9usqn8] { background: rgba(255,255,255,.28); }

.bvc-form[b-u2fe9usqn8] { flex: 0 0 auto; display: flex; align-items: flex-end; gap: 10px; padding: 10px 14px; background: #f5f7fa; border-bottom: 1px solid #e3e8ef; flex-wrap: wrap; }
.bvc-fld[b-u2fe9usqn8] { display: flex; flex-direction: column; min-width: 0; }
.bvc-fld-grow[b-u2fe9usqn8] { flex: 1 1 260px; }
.bvc-fld label[b-u2fe9usqn8] { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #6c7384; margin-bottom: 2px; }
.bvc-form .inp[b-u2fe9usqn8], .bvc-form[b-u2fe9usqn8]  .inp { height: 28px; border: 1px solid #cdd6e0; border-radius: 5px; padding: 2px 8px; font-size: 12.5px; box-sizing: border-box; }
.bvc-form[b-u2fe9usqn8]  .bvc-inp-fecha { width: 104px; }
.bvc-inp-texto[b-u2fe9usqn8] { width: 100%; }

.bvc-banner[b-u2fe9usqn8] { margin: 6px 14px 0; display: flex; align-items: center; gap: 7px; padding: 5px 9px; border-radius: 6px; background: #eaf1fb; border: 1px solid #c2d5ee; color: #1f4a87; font-size: 12px; }
.bvc-banner-err[b-u2fe9usqn8] { background: #fbeaea; border-color: #e3a5a5; color: #8f1d1d; }

.bvc-res[b-u2fe9usqn8] { flex: 1 1 auto; min-height: 0; overflow: auto; margin-top: 6px; }
.bvc-empty[b-u2fe9usqn8] { padding: 28px; text-align: center; color: #6c7384; font-style: italic; }
.bvc-grid[b-u2fe9usqn8] { width: 100%; border-collapse: collapse; font-size: 12px; }
.bvc-grid thead th[b-u2fe9usqn8] {
    position: sticky; top: 0; z-index: 1;
    background: #33415a; color: #fff; text-align: left; font-weight: 600; font-size: 10.5px;
    text-transform: uppercase; letter-spacing: .03em; padding: 5px 7px; white-space: nowrap;
}
.bvc-grid tbody td[b-u2fe9usqn8] { padding: 4px 7px; border-bottom: 1px solid #edf0f4; white-space: nowrap; vertical-align: middle; }
.bvc-grid tbody tr[b-u2fe9usqn8] { cursor: pointer; }
.bvc-grid tbody tr:hover[b-u2fe9usqn8] { background: #f5f8fc; }
.bvc-grid tbody tr.sel[b-u2fe9usqn8] { background: #e3f5ea; }
.bvc-grid tbody tr.bloq[b-u2fe9usqn8] { color: #8a93a3; background: #f7f7f9; cursor: default; }
.bvc-grid tbody tr.en-grid[b-u2fe9usqn8] { color: #6c7384; cursor: default; }
.bvc-grid .c-chk[b-u2fe9usqn8] { width: 28px; text-align: center; }
.bvc-grid .c-fecha[b-u2fe9usqn8] { width: 70px; font-variant-numeric: tabular-nums; }
.bvc-grid .c-viaje[b-u2fe9usqn8] { width: 104px; font-weight: 600; }
.bvc-grid .c-mat[b-u2fe9usqn8] { width: 86px; }
.bvc-grid .c-imp[b-u2fe9usqn8] { text-align: right; font-variant-numeric: tabular-nums; width: 96px; }
.bvc-grid th.c-imp[b-u2fe9usqn8] { text-align: right; }
.bvc-grid .c-txt[b-u2fe9usqn8] { max-width: 260px; overflow: hidden; text-overflow: ellipsis; }
.bvc-grid .c-acc[b-u2fe9usqn8] { width: 1%; text-align: right; }

.bvc-tag[b-u2fe9usqn8] { display: inline-flex; align-items: center; gap: 2px; padding: 0 6px; border-radius: 9px; font-size: 10.5px; font-weight: 700; margin-right: 4px; }
.bvc-tag-fuera[b-u2fe9usqn8] { background: #efe7fb; color: #6b3fa0; }
.bvc-tag-ok[b-u2fe9usqn8] { background: #e3f5ea; color: #1d6f42; }
.bvc-ico[b-u2fe9usqn8] { width: 26px; height: 24px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: #2f6ec1; cursor: pointer; }
.bvc-ico:hover[b-u2fe9usqn8] { background: #e9f1fb; border-color: #c2d5ee; }

.bvc-foot[b-u2fe9usqn8] { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: #f5f7fa; border-top: 1px solid #e3e8ef; }
.bvc-foot-info[b-u2fe9usqn8] { flex: 1 1 auto; min-width: 0; color: #4a5566; font-variant-numeric: tabular-nums; }
.bvc-falta.ok b[b-u2fe9usqn8] { color: #1d6f42; }
.bvc-btn[b-u2fe9usqn8] {
    display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 14px;
    border-radius: 6px; border: 1px solid transparent; font-weight: 600; font-size: 12.5px; cursor: pointer; white-space: nowrap;
}
.bvc-btn:disabled[b-u2fe9usqn8] { opacity: .55; cursor: default; }
.bvc-btn-pri[b-u2fe9usqn8] { background: linear-gradient(180deg,#2f9e57,#1d7d41); color: #fff; border-color: #1d7d41; }
.bvc-btn-pri:hover:not(:disabled)[b-u2fe9usqn8] { background: linear-gradient(180deg,#37b063,#228a49); }
.bvc-btn-sec[b-u2fe9usqn8] { background: #eef1f5; color: #44546a; border-color: #c5cdd9; }
.bvc-btn-buscar[b-u2fe9usqn8] { background: #1f4a87; color: #fff; height: 28px; }
.bvc-btn-buscar:hover:not(:disabled)[b-u2fe9usqn8] { background: #183c6e; }
.bvc-n[b-u2fe9usqn8] { background: rgba(255,255,255,.25); border-radius: 9px; padding: 0 7px; font-size: 11px; }
.bvc-spin[b-u2fe9usqn8] {
    display: inline-block; width: 13px; height: 13px; border: 2px solid rgba(255,255,255,.3); border-top-color: #fff;
    border-radius: 50%; animation: bvc-girar-b-u2fe9usqn8 .8s linear infinite;
}
@keyframes bvc-girar-b-u2fe9usqn8 { to { transform: rotate(360deg); } }
/* _content/NetOffice.Web.Forms/Components/Cuadre/CuadreViajesPanel.razor.rz.scp.css */
/* Cuadre factura del transportista ↔ viajes del TMS — componente común.
   Lenguaje visual de «Revisar factura digitalizada» (Facturas recibidas):
   cabecera blanca con etiquetas en versalitas grises, secciones con icono,
   azul NetOffice #1f4a87 / #2f6ec1, bordes #c5cdd9; estados verde #1d6f42,
   ámbar #a86a12, rojo #a31f1f, violeta #6b3fa0. */

.cvp-root[b-fqarrtmkdb] {
    position: relative;
    display: flex; flex-direction: column; gap: 8px;
    flex: 1 1 auto; min-height: 0; height: 100%;
    font-size: 12.5px; color: #2b3640;
}

/* ═══ Cabecera ═══ */
.cvp-head[b-fqarrtmkdb] {
    flex: 0 0 auto; display: flex; flex-direction: column; gap: 8px;
    background: #fff; border: 1px solid #c5cdd9; border-radius: 8px; padding: 9px 12px;
}
.cvp-head-fra[b-fqarrtmkdb] { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 6px 14px; padding-bottom: 8px; border-bottom: 1px solid #e6ebf1; }
.cvp-cab-item[b-fqarrtmkdb] { display: flex; flex-direction: column; min-width: 0; }
.cvp-cab-item label[b-fqarrtmkdb] { font-size: 11px; color: #7a8595; text-transform: uppercase; letter-spacing: .03em; margin-bottom: 2px; white-space: nowrap; }
.cvp-cab-sep[b-fqarrtmkdb] { width: 1px; align-self: stretch; background: #e6ebf1; }
.cvp-head .inp[b-fqarrtmkdb], .cvp-head[b-fqarrtmkdb]  .inp {
    height: 28px; border: 1px solid #cdd6e0; border-radius: 5px; padding: 2px 8px;
    font-size: 13px; font-weight: 600; color: #23344a; box-sizing: border-box; background: #fff;
}
.cvp-inp-num[b-fqarrtmkdb] { width: 150px; }
.cvp-inp-num.falta[b-fqarrtmkdb] { border-color: #e0b877; background: #fff8e6; }
.cvp-head[b-fqarrtmkdb]  .cvp-inp-fecha { width: 108px; }
.cvp-inp-imp[b-fqarrtmkdb] { width: 104px; text-align: right; font-variant-numeric: tabular-nums; }
.cvp-head .cvp-inp-total[b-fqarrtmkdb] { width: 118px; font-size: 14.5px; font-weight: 800; color: #1f4a87; border-color: #9cb8dd; }
.cvp-manda[b-fqarrtmkdb] {
    margin-left: auto; align-self: center;
    display: inline-flex; align-items: center; gap: 5px;
    padding: 3px 10px; border-radius: 14px; background: #e3f5ea; color: #1d6f42;
    font-size: 11px; font-weight: 700; white-space: nowrap;
}

.cvp-head-quien[b-fqarrtmkdb] { display: flex; gap: 14px; flex-wrap: wrap; }
.cvp-blk[b-fqarrtmkdb] { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.cvp-blk-emp[b-fqarrtmkdb] { flex: 1 1 260px; }
.cvp-sec[b-fqarrtmkdb] {
    font-size: 11px; font-weight: 700; letter-spacing: .05em; color: #1f4a87;
    display: flex; align-items: center; gap: 6px;
}
.cvp-prov[b-fqarrtmkdb], .cvp-emp[b-fqarrtmkdb] { display: flex; align-items: center; gap: 8px; min-width: 0; min-height: 28px; }
.cvp-prov-cta[b-fqarrtmkdb] { font-weight: 700; font-variant-numeric: tabular-nums; color: #23344a; }
.cvp-prov-nom[b-fqarrtmkdb], .cvp-emp-nom[b-fqarrtmkdb] { font-size: 13px; font-weight: 600; color: #23344a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.cvp-prov-nom.vacio[b-fqarrtmkdb] { color: #a31f1f; font-style: italic; }
.cvp-nif[b-fqarrtmkdb] {
    flex: 0 0 auto; font-size: 11px; font-weight: 700; color: #4a5566;
    background: #eef1f5; border-radius: 4px; padding: 1px 6px; font-variant-numeric: tabular-nums;
}
.cvp-mini-warn[b-fqarrtmkdb] { display: flex; align-items: center; gap: 5px; color: #8a5a12; font-size: 11.5px; }
.cvp-mini-warn i[b-fqarrtmkdb] { color: #b45309; }
.cvp-mini-info[b-fqarrtmkdb] { display: flex; align-items: center; gap: 5px; color: #1f4a87; font-size: 11.5px; }

.cvp-blk-emp.distinta[b-fqarrtmkdb] {
    background: #fff4dd; border: 1px solid #e0b877; border-radius: 7px; padding: 6px 9px;
}
.cvp-blk-emp.distinta .cvp-sec[b-fqarrtmkdb] { color: #7c5b12; }
.cvp-emp-dist[b-fqarrtmkdb] { display: flex; gap: 8px; align-items: flex-start; color: #7c5b12; }
.cvp-emp-dist > i[b-fqarrtmkdb] { font-size: 18px; color: #b45309; margin-top: 1px; }
.cvp-emp-dist b[b-fqarrtmkdb] { font-size: 13px; }
.cvp-emp-det[b-fqarrtmkdb] { font-size: 11.5px; margin-top: 2px; }

/* ═══ Avisos ═══ */
.cvp-avisos[b-fqarrtmkdb] { flex: 0 0 auto; display: flex; flex-direction: column; gap: 4px; }
.cvp-banner[b-fqarrtmkdb] {
    display: flex; align-items: center; gap: 7px; padding: 5px 9px; border-radius: 6px;
    background: #eaf1fb; border: 1px solid #c2d5ee; color: #1f4a87; font-size: 12px;
}
.cvp-banner > span[b-fqarrtmkdb] { flex: 1 1 auto; }
.cvp-banner-warn[b-fqarrtmkdb] { background: #fdf4e2; border-color: #e0b877; color: #7c5b12; }
.cvp-banner-err[b-fqarrtmkdb] { background: #fbeaea; border-color: #e3a5a5; color: #8f1d1d; }
.cvp-avisos-mas[b-fqarrtmkdb] { align-self: flex-start; }
.cvp-link[b-fqarrtmkdb] {
    border: 0; background: transparent; padding: 0 2px; cursor: pointer;
    color: #2f6ec1; font-weight: 600; font-size: 12px; text-decoration: underline; text-underline-offset: 2px;
}
.cvp-link:disabled[b-fqarrtmkdb] { color: #9aa6b5; cursor: default; }
.cvp-dim[b-fqarrtmkdb] { color: #6c7384; }
.cvp-spacer[b-fqarrtmkdb] { flex: 1 1 auto; }

/* ═══ Detalle asociado ═══ */
.cvp-det[b-fqarrtmkdb] {
    flex: 1 1 auto; min-height: 240px; display: flex; flex-direction: column;
    background: #fff; border: 1px solid #c5cdd9; border-radius: 8px; overflow: hidden;
}
.cvp-det-bar[b-fqarrtmkdb] {
    flex: 0 0 auto; display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    padding: 5px 10px; min-height: 36px; background: #2c66ad; color: #fff;
}
.cvp-det-title[b-fqarrtmkdb] { font-weight: 700; font-size: 12px; letter-spacing: .5px; display: inline-flex; gap: 6px; align-items: center; white-space: nowrap; }
.cvp-det-count[b-fqarrtmkdb] { padding: 0 8px; border-radius: 10px; background: rgba(255,255,255,.2); font-size: 11px; font-weight: 700; white-space: nowrap; }
.cvp-pill[b-fqarrtmkdb] { display: inline-flex; align-items: center; gap: 4px; padding: 1px 9px; border-radius: 10px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.cvp-pill-ia[b-fqarrtmkdb] { background: #e3f5ea; color: #1d6f42; }
.cvp-pill-manual[b-fqarrtmkdb] { background: #fff1d6; color: #7c5b12; }
.cvp-filtro[b-fqarrtmkdb] { width: 170px; height: 26px; font-size: 12px; border: 1px solid #9cb8dd; border-radius: 5px; padding: 2px 8px; }
.cvp-sel-chip[b-fqarrtmkdb] {
    display: inline-flex; align-items: center; gap: 4px; height: 26px; padding: 0 9px; border-radius: 13px;
    border: 1px solid rgba(255,255,255,.5); background: rgba(255,255,255,.15); color: #fff; font-size: 11.5px; cursor: pointer; white-space: nowrap;
}
.cvp-sel-chip:hover:not(:disabled)[b-fqarrtmkdb] { background: rgba(255,255,255,.28); }
.cvp-btn-buscar[b-fqarrtmkdb] {
    display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px; border-radius: 6px;
    border: 1px solid #fff; background: #fff; color: #1f4a87; font-weight: 700; font-size: 12px; cursor: pointer; white-space: nowrap;
}
.cvp-btn-buscar:hover:not(:disabled)[b-fqarrtmkdb] { background: #e9f1fb; }
.cvp-btn-buscar:disabled[b-fqarrtmkdb] { opacity: .55; cursor: default; }
.cvp-btn-aviso[b-fqarrtmkdb] {
    display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 12px; border-radius: 6px;
    font-weight: 700; font-size: 12px; cursor: pointer; white-space: nowrap; border: 1px solid transparent;
    animation: cvp-latido-b-fqarrtmkdb 2.4s ease-in-out infinite;
}
.cvp-btn-aviso.ambar[b-fqarrtmkdb] { background: #fde7b0; color: #6b4b0c; border-color: #e0b877; }
.cvp-btn-aviso.rojo[b-fqarrtmkdb] { background: #f8d4d4; color: #8f1d1d; border-color: #e3a5a5; }
.cvp-btn-aviso:hover:not(:disabled)[b-fqarrtmkdb] { filter: brightness(.97); }
@keyframes cvp-latido-b-fqarrtmkdb { 0%, 100% { box-shadow: 0 0 0 0 rgba(255, 210, 120, .0); } 50% { box-shadow: 0 0 0 3px rgba(255, 210, 120, .55); } }

.cvp-det-empty[b-fqarrtmkdb] {
    flex: 1 1 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
    padding: 22px; color: #6c7384; text-align: center;
}
.cvp-det-empty > i[b-fqarrtmkdb] { font-size: 30px; color: #9aa6b5; }
.cvp-det-empty .cvp-btn-buscar[b-fqarrtmkdb] { background: #1f4a87; color: #fff; border-color: #1f4a87; }

.cvp-grid-scroll[b-fqarrtmkdb] { flex: 1 1 auto; min-height: 0; overflow: auto; outline: none; }
.cvp-grid-scroll:focus-visible[b-fqarrtmkdb] { box-shadow: inset 0 0 0 2px #9cc2f3; }
.cvp-grid[b-fqarrtmkdb] { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12px; }
.cvp-grid thead th[b-fqarrtmkdb] {
    position: sticky; z-index: 1; background: #33415a; color: #fff; text-align: left;
    font-weight: 600; font-size: 10.5px; text-transform: uppercase; letter-spacing: .03em;
    padding: 4px 6px; white-space: nowrap;
}
.cvp-grid thead tr:first-child th[b-fqarrtmkdb] { top: 0; }
.cvp-grid thead tr:nth-child(2) th[b-fqarrtmkdb] { top: 22px; }
.cvp-grid thead tr.cvp-grupos th[b-fqarrtmkdb] { height: 16px; box-sizing: content-box; padding: 3px 6px; font-size: 10px; letter-spacing: .08em; text-align: center; }
.cvp-grid thead tr.cvp-grupos th.g-lin[b-fqarrtmkdb] { background: #24314a; }
.cvp-grid thead tr.cvp-grupos th.g-vje[b-fqarrtmkdb] { background: #1f4a87; }
.cvp-grid thead tr.cvp-grupos th.g-cua[b-fqarrtmkdb] { background: #2a5a3f; }
.cvp-grid .g-fin[b-fqarrtmkdb] { border-right: 2px solid #d5dce6; }
.cvp-grid thead .g-fin[b-fqarrtmkdb] { border-right-color: #56637d; }
.cvp-grid tbody td[b-fqarrtmkdb] { padding: 3px 6px; border-bottom: 1px solid #edf0f4; white-space: nowrap; vertical-align: middle; }
.cvp-grid tbody tr[b-fqarrtmkdb] { cursor: default; scroll-margin-top: 44px; }
.cvp-grid tbody tr:hover td[b-fqarrtmkdb] { background: #f5f8fc; }
.cvp-grid tbody tr.selected td[b-fqarrtmkdb] { background: #dbe8f8 !important; }
.cvp-grid tbody tr.selected td:first-child[b-fqarrtmkdb] { box-shadow: inset 3px 0 0 #2f6ec1; }
.cvp-grid tbody tr.grupo-cont td[b-fqarrtmkdb] { border-top: 0; }
.cvp-grid tbody tr.grupo-cont td.c-viaje .ref[b-fqarrtmkdb] { color: #8a93a3; font-weight: 500; }

.cvp-grid .c-est[b-fqarrtmkdb] { width: 14px; padding-right: 0; }
.cvp-grid .c-num[b-fqarrtmkdb] { width: 24px; color: #8a93a3; text-align: right; }
.cvp-grid .c-fecha[b-fqarrtmkdb] { width: 62px; font-variant-numeric: tabular-nums; }
.cvp-grid .c-ref[b-fqarrtmkdb] { max-width: 230px; overflow: hidden; text-overflow: ellipsis; }
.cvp-grid .c-ref .ref[b-fqarrtmkdb] { font-weight: 700; margin-right: 5px; }
.cvp-grid .c-ref .concepto[b-fqarrtmkdb] { color: #6c7384; }
.cvp-grid .mat-mini[b-fqarrtmkdb] { font-size: 10.5px; background: #eef1f5; border-radius: 4px; padding: 0 4px; margin-right: 5px; }
.cvp-grid .c-imp[b-fqarrtmkdb] { text-align: right; font-variant-numeric: tabular-nums; width: 92px; }
.cvp-grid th.c-imp[b-fqarrtmkdb] { text-align: right; }
.cvp-grid .c-viaje[b-fqarrtmkdb] { width: 140px; }
.cvp-grid .c-viaje .ref[b-fqarrtmkdb] { font-weight: 700; }
.cvp-grid .c-viaje .fecha-mini[b-fqarrtmkdb] { color: #6c7384; font-size: 11px; margin-left: 5px; font-variant-numeric: tabular-nums; }
.cvp-grid .c-mat[b-fqarrtmkdb] { width: 82px; }
.cvp-grid .c-od[b-fqarrtmkdb] { max-width: 210px; overflow: hidden; text-overflow: ellipsis; }
.cvp-grid .c-tms[b-fqarrtmkdb] { color: #4a5566; }
/* Suplemento: el importe del TMS está en la fila de la primera línea del viaje */
.cvp-grid .c-tms.c-tms-incl[b-fqarrtmkdb] { color: #9aa3b2; font-size: 11px; font-weight: 400; font-style: italic; white-space: nowrap; }
.cvp-grid .c-fiab[b-fqarrtmkdb] { width: 54px; text-align: center; }
.cvp-grid .c-ajus[b-fqarrtmkdb] { width: 58px; text-align: center; }
.cvp-grid th.c-ajus[b-fqarrtmkdb] { white-space: normal; line-height: 1.1; }
.cvp-grid .c-ajus .bi[b-fqarrtmkdb] { margin-left: 3px; }
.cvp-grid .c-acc[b-fqarrtmkdb] { width: 1%; text-align: right; }
.cvp-grid .c-sinlinea[b-fqarrtmkdb] { color: #6c7384; font-style: italic; }
.cvp-grid .c-sinviaje[b-fqarrtmkdb] { color: #a31f1f; font-weight: 600; }
.cvp-grid .c-sinviaje.fuera[b-fqarrtmkdb] { color: #6b3fa0; max-width: 380px; overflow: hidden; text-overflow: ellipsis; }
.cvp-grid .c-grupo-ref[b-fqarrtmkdb] { color: #8a93a3; font-size: 11px; text-align: center; }

.cvp-grid .c-delta[b-fqarrtmkdb] { font-weight: 700; }
.cvp-grid .c-delta.pos[b-fqarrtmkdb] { color: #b45309; }
.cvp-grid .c-delta.neg[b-fqarrtmkdb] { color: #2f6ec1; }
.cvp-grid .c-delta.cero[b-fqarrtmkdb] { color: #a0a7b4; font-weight: 400; }

.cvp-inp-celda[b-fqarrtmkdb] {
    width: 86px; height: 22px; padding: 1px 5px; text-align: right;
    border: 1px solid transparent; border-radius: 4px; background: transparent;
    font-weight: 700; font-variant-numeric: tabular-nums; color: #23344a; font-size: 12px;
}
.cvp-grid tbody tr:hover .cvp-inp-celda:not(:disabled)[b-fqarrtmkdb], .cvp-inp-celda:focus[b-fqarrtmkdb] { border-color: #cdd6e0; background: #fff; }
.cvp-inp-celda.manual[b-fqarrtmkdb] { background: #fff8e6; border-color: #e0b877; color: #7c5b12; }

.est-dot[b-fqarrtmkdb] { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #c5cdd9; }
.ln-cuadra .est-dot[b-fqarrtmkdb] { background: #1d6f42; }
.ln-difiere .est-dot[b-fqarrtmkdb] { background: #d48a12; }
.ln-sin .est-dot[b-fqarrtmkdb] { background: #a31f1f; }
.ln-fuera .est-dot[b-fqarrtmkdb] { background: #6b3fa0; }
.ln-manual .est-dot[b-fqarrtmkdb] { background: #2f6ec1; }
.cvp-grid tbody tr.ln-sin td[b-fqarrtmkdb] { background: #fdf6f6; }
.cvp-grid tbody tr.ln-fuera td[b-fqarrtmkdb] { background: #f8f4fd; }

.cvp-fiab[b-fqarrtmkdb] {
    display: inline-block; min-width: 38px; text-align: center; border-radius: 9px;
    font-weight: 800; font-size: 10.5px; padding: 1px 5px; font-variant-numeric: tabular-nums;
}
.cvp-fiab.alta[b-fqarrtmkdb] { background: #d7f0e0; color: #1d6f42; }
.cvp-fiab.media[b-fqarrtmkdb] { background: #fdecc8; color: #8a5a12; }
.cvp-fiab.baja[b-fqarrtmkdb] { background: #f8d4d4; color: #a31f1f; }
.cvp-fiab.nula[b-fqarrtmkdb] { background: #eef1f5; color: #8a93a3; }
.cvp-fiab.manual[b-fqarrtmkdb] { background: #e3ecf8; color: #1f4a87; font-weight: 700; }

.cvp-tag[b-fqarrtmkdb] { display: inline-flex; align-items: center; padding: 0 6px; border-radius: 9px; font-size: 10.5px; font-weight: 700; white-space: nowrap; margin-left: 5px; }
.cvp-tag-grupo[b-fqarrtmkdb] { background: #e3ecf8; color: #1f4a87; }

.cvp-ico[b-fqarrtmkdb] {
    width: 24px; height: 22px; border: 1px solid transparent; border-radius: 4px;
    background: transparent; color: #2f6ec1; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
}
.cvp-ico:hover:not(:disabled)[b-fqarrtmkdb] { background: #e9f1fb; border-color: #c2d5ee; }
.cvp-ico:disabled[b-fqarrtmkdb] { color: #b0b8c4; cursor: default; }
.cvp-ico-quitar[b-fqarrtmkdb] { color: #a31f1f; }
.cvp-ico-quitar:hover:not(:disabled)[b-fqarrtmkdb] { background: #fbeaea; border-color: #e3a5a5; }
.cvp-ko-txt[b-fqarrtmkdb] { color: #a31f1f; }

.cvp-leyenda[b-fqarrtmkdb] {
    flex: 0 0 auto; display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    padding: 4px 10px; border-top: 1px solid #edf0f4; background: #fbfcfe; color: #6c7384; font-size: 11px;
}
.cvp-leyenda .lg[b-fqarrtmkdb] { width: 9px; height: 9px; border-radius: 50%; display: inline-block; margin-right: 4px; vertical-align: -1px; }
.lg-cuadra[b-fqarrtmkdb] { background: #1d6f42; }
.lg-difiere[b-fqarrtmkdb] { background: #d48a12; }
.lg-sin[b-fqarrtmkdb] { background: #a31f1f; }
.lg-fuera[b-fqarrtmkdb] { background: #6b3fa0; }

/* ═══ Errores de la emisión ═══ */
.cvp-liq-err[b-fqarrtmkdb] {
    flex: 0 0 auto; display: flex; align-items: flex-start; gap: 10px; padding: 8px 12px; border-radius: 7px;
    background: #fbeaea; border: 1px solid #e3a5a5; color: #8f1d1d;
}
.cvp-liq-err > i[b-fqarrtmkdb] { font-size: 18px; color: #a31f1f; }
.cvp-liq-err > div[b-fqarrtmkdb] { flex: 1 1 auto; }
.cvp-liq-err ul[b-fqarrtmkdb] { margin: 3px 0 0; padding-left: 18px; }

/* ═══ Totales ═══ */
.cvp-tot[b-fqarrtmkdb] {
    flex: 0 0 auto; display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px 14px;
    background: #fff; border: 1px solid #c5cdd9; border-radius: 8px; padding: 8px 12px;
}
.cvp-tot-tab[b-fqarrtmkdb] { flex: 1 1 520px; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.cvp-tot-tab th[b-fqarrtmkdb] {
    font-size: 10.5px; color: #7a8595; text-transform: uppercase; letter-spacing: .04em; font-weight: 700;
    text-align: right; padding: 2px 10px; border-bottom: 1px solid #e6ebf1;
}
.cvp-tot-tab td[b-fqarrtmkdb] { text-align: right; padding: 4px 10px; font-size: 13.5px; font-weight: 700; color: #23344a; }
.cvp-tot-tab td.t-lbl[b-fqarrtmkdb] { text-align: left; font-size: 12px; font-weight: 600; color: #4a5566; white-space: nowrap; }
.cvp-tot-tab td.t-lbl i[b-fqarrtmkdb] { color: #2f6ec1; margin-right: 4px; }
.cvp-tot-tab td.t-total[b-fqarrtmkdb] { font-size: 15px; }
.cvp-tot-tab tbody tr:not(:last-child) td[b-fqarrtmkdb] { border-bottom: 1px dashed #e6ebf1; }
/* «Viajes en el TMS hoy»: ámbar cuando lo que hay hoy en el TMS no es lo que dice la factura */
.cvp-tot-tab tr.t-tms.difiere td[b-fqarrtmkdb] { background: #fdf4e2; }
.cvp-tot-tab tr.t-tms.difiere td.t-lbl i[b-fqarrtmkdb] { color: #b45309; }
.cvp-tot-tab td.warn[b-fqarrtmkdb] { color: #9a5b00; }
.cvp-tot-tab td .t-delta[b-fqarrtmkdb] { display: block; font-size: 11px; font-weight: 700; color: #a31f1f; }
.cvp-tot-tab td.t-nd[b-fqarrtmkdb] { color: #9aa3b2; font-weight: 400; }
.cvp-tot-tab .t-tag[b-fqarrtmkdb] {
    display: inline-block; margin-left: 6px; padding: 0 6px; border-radius: 9px; font-size: 10.5px; font-weight: 700;
    background: #eef1f5; color: #4a5566;
}
.cvp-tot-tab .t-tag.ok[b-fqarrtmkdb] { background: #e3f5ea; color: #1d6f42; }
.cvp-tot-tab .t-tag.ko[b-fqarrtmkdb] { background: #fbe4e4; color: #a31f1f; }
.cvp-tot-tab td.ok[b-fqarrtmkdb] { color: #1d6f42; }
.cvp-tot-tab td.ko[b-fqarrtmkdb] { color: #a31f1f; }
.cvp-tot-tab td.t-pend[b-fqarrtmkdb] { text-align: left; font-size: 12px; font-weight: 400; color: #6c7384; }

.cvp-tot-kpis[b-fqarrtmkdb] { flex: 0 1 auto; display: flex; gap: 8px; align-items: stretch; flex-wrap: wrap; }
.cvp-kpi[b-fqarrtmkdb] {
    display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 2px;
    min-width: 104px; padding: 6px 12px; border-radius: 8px; background: #f2f5f8; border: 1px solid #dde3ec;
}
.cvp-kpi label[b-fqarrtmkdb] { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #6c7384; margin: 0; white-space: nowrap; }
.cvp-kpi b[b-fqarrtmkdb] { font-size: 16px; font-variant-numeric: tabular-nums; }
.cvp-kpi.ok[b-fqarrtmkdb] { background: #eafaf0; border-color: #b9e0c8; }
.cvp-kpi.ok b[b-fqarrtmkdb] { color: #1d6f42; }
.cvp-kpi.ko[b-fqarrtmkdb] { background: #fbeaea; border-color: #e3a5a5; }
.cvp-kpi.ko b[b-fqarrtmkdb] { color: #a31f1f; }
.cvp-kpi b.ajuste[b-fqarrtmkdb] { color: #b45309; }
.cvp-sim-aviso[b-fqarrtmkdb] { flex: 1 1 100%; display: flex; align-items: flex-start; gap: 6px; font-size: 12px; color: #4a5566; }

/* ═══ Pie propio ═══ */
.cvp-foot[b-fqarrtmkdb] { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; padding: 2px 0; }
.cvp-foot-bloqueo[b-fqarrtmkdb] {
    display: flex; align-items: center; gap: 6px; min-width: 0; max-width: 60%;
    color: #8a5a12; font-size: 12px;
}
.cvp-foot-bloqueo span[b-fqarrtmkdb] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cvp-btn[b-fqarrtmkdb] {
    display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 16px;
    border-radius: 6px; border: 1px solid transparent; font-weight: 600; font-size: 13px; cursor: pointer; white-space: nowrap;
}
.cvp-btn:disabled[b-fqarrtmkdb] { opacity: .55; cursor: default; }
.cvp-btn-pri[b-fqarrtmkdb] { background: linear-gradient(180deg,#2f9e57,#1d7d41); color: #fff; border-color: #1d7d41; }
.cvp-btn-pri:hover:not(:disabled)[b-fqarrtmkdb] { background: linear-gradient(180deg,#37b063,#228a49); }
.cvp-btn-sec[b-fqarrtmkdb] { background: #eef1f5; color: #44546a; border-color: #c5cdd9; }
.cvp-btn-sec:hover:not(:disabled)[b-fqarrtmkdb] { background: #e2e7ee; }

/* ═══ Spinners ═══ */
.cvp-mini-spin[b-fqarrtmkdb] {
    display: inline-block; width: 13px; height: 13px; flex: 0 0 auto; vertical-align: -2px;
    border: 2px solid rgba(47, 110, 193, .25); border-top-color: #2f6ec1; border-radius: 50%;
    animation: cvp-girar-b-fqarrtmkdb .8s linear infinite;
}
.cvp-mini-spin-w[b-fqarrtmkdb] { border-color: rgba(255,255,255,.3); border-top-color: #fff; }
.cvp-spin[b-fqarrtmkdb] {
    display: inline-block; width: 22px; height: 22px; flex: 0 0 auto;
    border: 3px solid #dce3ec; border-top-color: #2f6ec1; border-radius: 50%;
    animation: cvp-girar-b-fqarrtmkdb .8s linear infinite;
}
@keyframes cvp-girar-b-fqarrtmkdb { to { transform: rotate(360deg); } }

/* ═══ IMAGEN DE PROCESO — digitalizando la factura ═══ */
.cvp-proc[b-fqarrtmkdb] {
    position: absolute; inset: 0; z-index: 30;
    display: flex; align-items: center; justify-content: center;
    background: rgba(238, 242, 247, .93);
    backdrop-filter: blur(2px);
    border-radius: 8px;
    animation: cvp-fade-b-fqarrtmkdb .2s ease-out;
}
@keyframes cvp-fade-b-fqarrtmkdb { from { opacity: 0; } to { opacity: 1; } }
.cvp-proc-card[b-fqarrtmkdb] {
    width: min(540px, 92%);
    background: #fff; border: 1px solid #c5d5ea; border-radius: 14px;
    box-shadow: 0 18px 50px rgba(15, 35, 70, .18);
    padding: 22px 26px 16px;
    display: flex; flex-direction: column; align-items: center; gap: 10px;
}
.cvp-proc-doc[b-fqarrtmkdb] { position: relative; width: 120px; height: 120px; display: flex; align-items: center; justify-content: center; }
.cvp-proc-hoja[b-fqarrtmkdb] {
    position: relative; width: 78px; height: 100px; overflow: hidden;
    background: #fff; border: 2px solid #9cb8dd; border-radius: 6px;
    box-shadow: 4px 4px 0 #e3ecf8;
    padding: 12px 10px; box-sizing: border-box;
    display: flex; flex-direction: column; gap: 7px;
}
.cvp-proc-hoja .lin[b-fqarrtmkdb] { display: block; height: 5px; border-radius: 3px; background: #dbe5f2; }
.cvp-proc-hoja .l1[b-fqarrtmkdb] { width: 70%; background: #9cb8dd; }
.cvp-proc-hoja .l2[b-fqarrtmkdb] { width: 90%; }
.cvp-proc-hoja .l3[b-fqarrtmkdb] { width: 80%; }
.cvp-proc-hoja .l4[b-fqarrtmkdb] { width: 92%; }
.cvp-proc-hoja .l5[b-fqarrtmkdb] { width: 60%; }
.cvp-proc-hoja .l6[b-fqarrtmkdb] { width: 45%; margin-left: auto; background: #9cb8dd; }
.cvp-proc-hoja .scan[b-fqarrtmkdb] {
    position: absolute; left: 0; right: 0; top: 0; height: 16px;
    background: linear-gradient(180deg, rgba(47,110,193,0), rgba(47,110,193,.35), rgba(47,110,193,0));
    border-bottom: 2px solid #2f6ec1;
    animation: cvp-scan-b-fqarrtmkdb 1.8s ease-in-out infinite;
}
@keyframes cvp-scan-b-fqarrtmkdb { 0% { top: -16px; } 50% { top: 100%; } 100% { top: -16px; } }
.cvp-proc-truck[b-fqarrtmkdb] {
    position: absolute; right: -4px; bottom: 6px;
    width: 40px; height: 40px; border-radius: 50%; background: #1f4a87; color: #fff;
    display: flex; align-items: center; justify-content: center; font-size: 19px;
    box-shadow: 0 4px 12px rgba(31, 74, 135, .35);
    animation: cvp-bote-b-fqarrtmkdb 1.4s ease-in-out infinite;
}
@keyframes cvp-bote-b-fqarrtmkdb { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
.cvp-proc-title[b-fqarrtmkdb] { font-size: 18px; font-weight: 800; color: #1f4a87; }
.cvp-proc-sub[b-fqarrtmkdb] { font-size: 12.5px; color: #4a5566; text-align: center; }
.cvp-proc-fases[b-fqarrtmkdb] { list-style: none; margin: 4px 0 0; padding: 0; width: 100%; display: flex; flex-direction: column; gap: 6px; }
.cvp-proc-fases li[b-fqarrtmkdb] { display: flex; align-items: center; gap: 9px; font-size: 13px; color: #8a93a3; }
.cvp-proc-fases li.hecha[b-fqarrtmkdb] { color: #1d6f42; }
.cvp-proc-fases li.hecha i[b-fqarrtmkdb] { color: #1d6f42; }
.cvp-proc-fases li.actual[b-fqarrtmkdb] { color: #1f4a87; font-weight: 700; }
.cvp-proc-fases li .bi-circle[b-fqarrtmkdb] { color: #c5cdd9; }
.cvp-proc-bar[b-fqarrtmkdb] { width: 100%; height: 6px; border-radius: 3px; background: #e3ecf8; overflow: hidden; margin-top: 4px; }
.cvp-proc-bar > div[b-fqarrtmkdb] {
    height: 100%; border-radius: 3px;
    background: linear-gradient(90deg, #2f6ec1, #5aa0f0, #2f6ec1);
    background-size: 200% 100%;
    animation: cvp-flujo-b-fqarrtmkdb 1.4s linear infinite;
    transition: width .8s ease-out;
}
@keyframes cvp-flujo-b-fqarrtmkdb { from { background-position: 200% 0; } to { background-position: 0 0; } }
.cvp-proc-pie[b-fqarrtmkdb] { width: 100%; display: flex; align-items: center; gap: 10px; font-size: 12px; }
.cvp-proc-seg[b-fqarrtmkdb] { font-weight: 700; color: #1f4a87; font-variant-numeric: tabular-nums; }

/* ═══ Modales (confirmación / emisión en curso) ═══ */
.cvp-modal-backdrop[b-fqarrtmkdb] { position: fixed; inset: 0; z-index: 1450; background: rgba(15, 25, 45, .45); }
.cvp-modal[b-fqarrtmkdb] {
    position: fixed; z-index: 1451; left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: min(520px, 92vw); background: #fff; border-radius: 9px; overflow: hidden;
    box-shadow: 0 12px 40px rgba(10, 25, 50, .35);
}
.cvp-modal-ancho[b-fqarrtmkdb] { width: min(640px, 94vw); }
.cvp-modal-head[b-fqarrtmkdb] { padding: 10px 14px; font-weight: 700; font-size: 13.5px; display: flex; align-items: center; gap: 8px; }
.cvp-modal-head.warn[b-fqarrtmkdb] { background: #fff4dd; color: #7c5b12; border-bottom: 1px solid #ebd3a0; }
.cvp-modal-head.warn i[b-fqarrtmkdb] { color: #b45309; }
.cvp-modal-head.ok[b-fqarrtmkdb] { background: #e3f5ea; color: #1d6f42; border-bottom: 1px solid #b9e0c8; }
.cvp-modal-body[b-fqarrtmkdb] { padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.cvp-modal-body p[b-fqarrtmkdb] { margin: 0; color: #4a5566; }
.cvp-modal-foot[b-fqarrtmkdb] { display: flex; justify-content: flex-end; gap: 8px; padding: 10px 14px; background: #f5f7fa; border-top: 1px solid #e3e8ef; }
.cvp-liquidando[b-fqarrtmkdb] { flex-direction: row; align-items: center; gap: 10px; padding: 18px; color: #1f4a87; }
.cvp-conf-tab[b-fqarrtmkdb] { width: 100%; border-collapse: collapse; font-size: 13px; }
.cvp-conf-tab td[b-fqarrtmkdb] { padding: 3px 0; }
.cvp-conf-tab td:last-child[b-fqarrtmkdb] { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.cvp-conf-tab tr.tot td[b-fqarrtmkdb] { border-top: 1px solid #e3e8ef; font-weight: 700; }
.cvp-conf-ajustes[b-fqarrtmkdb] { max-height: 40vh; display: block; overflow: auto; }
.cvp-conf-ajustes td[b-fqarrtmkdb] { padding: 2px 8px 2px 0; font-variant-numeric: tabular-nums; }
.cvp-conf-ajustes td:first-child[b-fqarrtmkdb] { font-weight: 600; }
.cvp-conf-ajustes .flecha[b-fqarrtmkdb] { color: #8a93a3; }
.cvp-conf-ajustes td.pos[b-fqarrtmkdb] { color: #b45309; }
.cvp-conf-ajustes td.neg[b-fqarrtmkdb] { color: #2f6ec1; }

/* ═══ Responsivo (§2.13) ═══ */
@media (max-width: 1660px) {
    .cvp-manda[b-fqarrtmkdb] { display: none; }
    .cvp-leyenda > span:last-child[b-fqarrtmkdb] { display: none; }
    .cvp-filtro[b-fqarrtmkdb] { width: 130px; }
    .cvp-grid .c-ref[b-fqarrtmkdb] { max-width: 160px; }
    .cvp-grid .c-od[b-fqarrtmkdb] { max-width: 150px; }
}

/* ── Fiabilidad con motivo, cargos aparte y viajes sugeridos (buzón 05/11) ── */
.cvp-grid .c-fiab[b-fqarrtmkdb] { width: 130px; min-width: 110px; }
.cvp-fiab-mot[b-fqarrtmkdb] {
    display: block; max-width: 150px; margin: 1px auto 0; overflow: hidden; text-overflow: ellipsis;
    white-space: nowrap; font-size: 10.5px; color: #6c7384; line-height: 1.15;
}
.cvp-cargos-mini[b-fqarrtmkdb] { display: block; font-size: 10.5px; font-weight: 400; color: #8a93a3; white-space: nowrap; }
.cvp-grid .c-sinviaje.cargos[b-fqarrtmkdb] { color: #44607d; font-weight: 600; }
.ln-cargos .est-dot[b-fqarrtmkdb] { background: #44607d; }
.cvp-grid tbody tr.ln-cargos td[b-fqarrtmkdb] { background: #f3f6f9; }
.lg-cargos[b-fqarrtmkdb] { background: #44607d; }
.cvp-tot-tab td .t-sub[b-fqarrtmkdb] { display: block; font-size: 10.5px; font-weight: 400; color: #6c7384; white-space: nowrap; }
.cvp-cargos-aviso b[b-fqarrtmkdb] { font-variant-numeric: tabular-nums; }

/* Viajes sugeridos bajo una línea sin viaje: grises, sin marcar */
.cvp-grid tbody tr.cvp-sug td[b-fqarrtmkdb] { background: #f7f8fa; color: #8a93a3; font-size: 11.5px; border-top: 0; }
.cvp-grid tbody tr.cvp-sug .ref[b-fqarrtmkdb] { color: #6c7384; }
.cvp-grid tbody tr.cvp-sug .c-num[b-fqarrtmkdb] { text-align: center; color: #b0b7c3; }
.cvp-grid tbody tr.cvp-sug .c-sug-txt[b-fqarrtmkdb] { font-style: italic; }
.cvp-grid tbody tr.cvp-sug .c-sug-acc[b-fqarrtmkdb] { text-align: right; white-space: nowrap; }
.cvp-grid tbody tr.cvp-sug:hover td[b-fqarrtmkdb] { background: #eef2f7; color: #4a5566; }
/* _content/NetOffice.Web.Forms/Components/Cuadre/LineasSinAsociarDialog.razor.rz.scp.css */
/* Ventana «Líneas de la factura sin asociar» del cuadre factura ↔ viajes TMS. */

.lsa-backdrop[b-413308k2du] { position: fixed; inset: 0; z-index: 1440; background: rgba(15, 25, 45, .45); }
.lsa-win[b-413308k2du] {
    position: fixed; z-index: 1441; left: 50%; top: 50%; transform: translate(-50%, -50%);
    width: min(1120px, 96vw); max-height: 90vh;
    display: flex; flex-direction: column; overflow: hidden;
    background: #fff; border-radius: 10px; box-shadow: 0 14px 44px rgba(10, 25, 50, .38);
    font-size: 12.5px; color: #2b3640;
    animation: lsa-in-b-413308k2du .16s ease-out;
}
@keyframes lsa-in-b-413308k2du { from { opacity: 0; transform: translate(-50%, -48%); } to { opacity: 1; transform: translate(-50%, -50%); } }

.lsa-head[b-413308k2du] { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: #fff4dd; border-bottom: 1px solid #ebd3a0; color: #7c5b12; }
.lsa-head > i[b-413308k2du] { font-size: 20px; color: #b45309; }
.lsa-head-txt[b-413308k2du] { flex: 1 1 auto; min-width: 0; }
.lsa-title[b-413308k2du] { font-weight: 700; font-size: 14px; }
.lsa-sub[b-413308k2du] { font-size: 11.5px; }
.lsa-x[b-413308k2du] { border: 0; background: rgba(124, 91, 18, .1); color: #7c5b12; width: 30px; height: 28px; border-radius: 6px; cursor: pointer; }
.lsa-x:hover[b-413308k2du] { background: rgba(124, 91, 18, .2); }

.lsa-body[b-413308k2du] { flex: 1 1 auto; min-height: 0; overflow: auto; padding: 10px 14px; display: flex; flex-direction: column; gap: 10px; background: #f5f7fa; }
.lsa-todo-ok[b-413308k2du] { display: flex; align-items: center; gap: 8px; padding: 18px; color: #1d6f42; font-weight: 600; justify-content: center; }

.lsa-card[b-413308k2du] { background: #fff; border: 1px solid #e0b877; border-left: 4px solid #d48a12; border-radius: 8px; overflow: hidden; flex: 0 0 auto; }
.lsa-card.fuera[b-413308k2du] { border-color: #c9b5e6; border-left-color: #6b3fa0; }
.lsa-card.cambio[b-413308k2du] { border-color: #c2d5ee; border-left-color: #2f6ec1; }
.lsa-card-head[b-413308k2du] { display: flex; align-items: center; gap: 10px; padding: 7px 12px; background: #fbfcfe; border-bottom: 1px solid #edf0f4; font-variant-numeric: tabular-nums; }
.lsa-num[b-413308k2du] { font-weight: 800; color: #1f4a87; background: #e3ecf8; border-radius: 9px; padding: 0 7px; font-size: 11px; }
.lsa-fecha[b-413308k2du] { color: #4a5566; }
.lsa-ref[b-413308k2du] { font-weight: 700; max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lsa-mat[b-413308k2du] { font-size: 11px; background: #eef1f5; border-radius: 4px; padding: 0 5px; }
.lsa-concepto[b-413308k2du] { flex: 1 1 auto; min-width: 0; color: #4a5566; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lsa-imp[b-413308k2du] { font-weight: 800; font-size: 13.5px; color: #23344a; }
.lsa-motivo[b-413308k2du] { display: flex; align-items: center; gap: 6px; padding: 5px 12px; color: #8a5a12; font-size: 12px; }
.lsa-card.fuera .lsa-motivo[b-413308k2du] { color: #6b3fa0; }
.lsa-card.cambio .lsa-motivo[b-413308k2du] { color: #1f4a87; }
.lsa-link[b-413308k2du] { border: 0; background: transparent; color: #2f6ec1; font-weight: 600; cursor: pointer; text-decoration: underline; padding: 0 2px; font-size: 12px; }

.lsa-acciones[b-413308k2du] { display: flex; gap: 12px; padding: 4px 12px 10px; flex-wrap: wrap; }
.lsa-col[b-413308k2du] { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.lsa-col-sug[b-413308k2du] { flex: 1 1 560px; }
.lsa-col-otros[b-413308k2du] { flex: 0 1 330px; }
.lsa-col label[b-413308k2du] { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #6c7384; }
.lsa-nada[b-413308k2du] { color: #8a93a3; font-style: italic; padding: 3px 0; }

.lsa-sug[b-413308k2du] { width: 100%; border-collapse: collapse; font-size: 12px; }
.lsa-sug td[b-413308k2du] { padding: 3px 6px; border-bottom: 1px solid #f0f2f6; white-space: nowrap; vertical-align: middle; }
.lsa-sug tr:hover td[b-413308k2du] { background: #f5f8fc; }
.lsa-sug .c-viaje[b-413308k2du] { font-weight: 700; }
.lsa-sug .c-fecha[b-413308k2du] { font-variant-numeric: tabular-nums; }
.lsa-sug .c-txt[b-413308k2du] { max-width: 200px; overflow: hidden; text-overflow: ellipsis; color: #4a5566; }
.lsa-sug .c-imp[b-413308k2du] { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.lsa-sug .c-razon[b-413308k2du] { max-width: 190px; overflow: hidden; text-overflow: ellipsis; color: #6c7384; font-size: 11px; }
.lsa-sug .c-acc[b-413308k2du] { text-align: right; width: 1%; }

.lsa-pts[b-413308k2du] { display: inline-block; min-width: 34px; text-align: center; border-radius: 9px; font-weight: 800; font-size: 10.5px; padding: 0 5px; }
.lsa-pts.alta[b-413308k2du] { background: #e3f5ea; color: #1d6f42; }
.lsa-pts.media[b-413308k2du] { background: #fdf0d8; color: #8a5a12; }
.lsa-pts.baja[b-413308k2du] { background: #fbe4e4; color: #a31f1f; }
.lsa-pts.nula[b-413308k2du] { background: #eef1f5; color: #8a93a3; }

.lsa-supl[b-413308k2du] { display: flex; gap: 6px; }
.lsa-sel[b-413308k2du] { flex: 1 1 auto; min-width: 0; height: 28px; border: 1px solid #cdd6e0; border-radius: 5px; font-size: 12px; }

.lsa-btn[b-413308k2du] {
    display: inline-flex; align-items: center; gap: 5px; height: 28px; padding: 0 11px;
    border-radius: 6px; border: 1px solid transparent; font-weight: 600; font-size: 12px; cursor: pointer; white-space: nowrap;
}
.lsa-btn:disabled[b-413308k2du] { opacity: .5; cursor: default; }
.lsa-btn-asig[b-413308k2du] { background: #1d7d41; color: #fff; height: 24px; padding: 0 9px; }
.lsa-btn-asig:hover[b-413308k2du] { background: #22914c; }
.lsa-btn-supl[b-413308k2du] { background: #2f6ec1; color: #fff; }
.lsa-btn-buscar[b-413308k2du] { background: #eef1f5; color: #1f4a87; border-color: #c5cdd9; align-self: flex-start; }
.lsa-btn-buscar:hover[b-413308k2du] { background: #e2e7ee; }
.lsa-btn-cerrar[b-413308k2du] { background: #1f4a87; color: #fff; height: 32px; padding: 0 16px; }
.lsa-ico[b-413308k2du] { width: 24px; height: 22px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: #2f6ec1; cursor: pointer; }
.lsa-ico:hover[b-413308k2du] { background: #e9f1fb; border-color: #c2d5ee; }

.lsa-foot[b-413308k2du] { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: #fff; border-top: 1px solid #e3e8ef; }
.lsa-foot-info[b-413308k2du] { flex: 1 1 auto; color: #6c7384; font-size: 12px; }
/* _content/NetOffice.Web.Forms/Components/DescripcionApuntesEditor.razor.rz.scp.css */
/* ── Cabecera ───────────────────────────────────────────────────────────── */
.da-head[b-k538fhf1xw] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 18px;
    border-bottom: 1px solid #dde3ea;
    background: linear-gradient(180deg, #f7f9fc 0%, #eef2f7 100%);
    flex-wrap: wrap;
}
.da-head-title[b-k538fhf1xw] { display: flex; align-items: center; gap: 12px; }
.da-head-title > .bi[b-k538fhf1xw] {
    font-size: 1.7rem;
    color: #2f6fb0;
    background: #e7f0fa;
    border-radius: 10px;
    padding: 8px 10px;
}
.da-head-title h2[b-k538fhf1xw] { margin: 0; font-size: 1.15rem; color: #243240; font-weight: 600; }
.da-head-sub[b-k538fhf1xw] { font-size: .82rem; color: #6b7785; }

.da-apps[b-k538fhf1xw] { display: flex; gap: 6px; flex-wrap: wrap; }
.da-app-btn[b-k538fhf1xw] {
    border: 1px solid #c2cad4;
    background: #fff;
    color: #334;
    padding: 6px 16px;
    border-radius: 20px;
    font-size: .9rem;
    cursor: pointer;
    transition: all .12s ease;
}
.da-app-btn:hover[b-k538fhf1xw] { background: #eef2f7; }
.da-app-btn.sel[b-k538fhf1xw] {
    background: #2f6fb0;
    border-color: #2f6fb0;
    color: #fff;
    font-weight: 600;
    box-shadow: 0 2px 6px rgba(47,111,176,.3);
}

/* ── Cuerpo: dos columnas ───────────────────────────────────────────────── */
.da-main[b-k538fhf1xw] {
    display: flex;
    gap: 18px;
    padding: 16px 18px;
    overflow: auto;
    align-items: flex-start;
}
.da-config[b-k538fhf1xw] { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 12px; }

.da-hint[b-k538fhf1xw] { color: #667; font-size: .9rem; margin: 4px 0; }

/* Aviso de qué factura alimenta el resultado */
.da-ref-banner[b-k538fhf1xw] {
    font-size: .82rem;
    color: #2c6b43;
    background: #eafaf0;
    border: 1px solid #bfe6cd;
    border-radius: 8px;
    padding: 8px 12px;
    line-height: 1.4;
}
.da-ref-banner.vacia[b-k538fhf1xw] { color: #8a5a1c; background: #fff5e6; border-color: #f0d9a8; }
.da-ref-banner .bi[b-k538fhf1xw] { margin-right: 4px; }

/* ── Tarjeta de rol: config (izq) + caja de resultado al lado (der) ──────── */
.da-rol[b-k538fhf1xw] {
    display: flex;
    /* flex-wrap: la caja de resultado se coloca AL LADO cuando hay sitio y BAJA
       debajo de la config cuando no cabe (viewport ~1200-1350 embebido), en vez
       de que los controles de añadir se desborden por DETRÁS del resultado. */
    flex-wrap: wrap;
    gap: 14px;
    align-items: stretch;
    border: 1px solid #e1e6ec;
    border-radius: 10px;
    background: #fff;
    padding: 7px 14px;
    box-shadow: 0 1px 2px rgba(0,0,0,.05);
}
/* config: rol + chips en la MISMA línea (menos altura).
   La base 560px cubre con holgura el ancho real de sus controles (rol +
   concepto + select + texto fijo + botón, ~537px); así el botón "+ texto"
   siempre tiene sitio y nunca queda por debajo del resultado: si no cabe
   junto al resultado, la fila hace wrap y el resultado baja. */
.da-rol-main[b-k538fhf1xw] {
    flex: 1 1 560px;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

/* Caja de resultado: ancha, fondo gris, texto negro en negrita.
   flex 1 1 300px (antes 0 0 380px fijos): puede crecer/encoger y, con el
   flex-wrap del contenedor, BAJA debajo de la config cuando no cabe al lado
   (evita que tape el botón "+ texto"). max-width acota su ancho en pantallas
   muy grandes. */
.da-rol-result[b-k538fhf1xw] {
    flex: 1 1 300px;
    max-width: 460px;
    align-self: stretch;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    background: #d9dee5;
    border: 1px solid #c4ccd6;
    border-radius: 8px;
    padding: 7px 14px;
    color: #111;
}
.da-rol-result.vacia[b-k538fhf1xw] { background: #eef1f5; border-color: #e0e5eb; }
.da-rol-result-lbl[b-k538fhf1xw] {
    font-size: .6rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #6b7686;
    font-weight: 700;
}
.da-rol-result-val[b-k538fhf1xw] {
    font-size: .95rem;
    font-weight: 700;
    color: #111;
    word-break: break-word;
    line-height: 1.3;
}
.da-rol-result.vacia .da-rol-result-val[b-k538fhf1xw] { color: #98a2ad; font-weight: 600; }
/* Concepto dentro de la leyenda: cursiva para distinguirlo de la descripción */
.da-rol-cc[b-k538fhf1xw] { font-style: italic; font-weight: 600; margin-right: 2px; }

.da-rol-head[b-k538fhf1xw] {
    flex: 0 0 92px;
    display: flex;
    align-items: center;
    gap: 7px;
    font-weight: 600;
    color: #2f3b49;
    font-size: .92rem;
}
.da-rol-dot[b-k538fhf1xw] {
    width: 7px; height: 7px; border-radius: 50%;
    background: #2f6fb0;
    display: inline-block;
    flex: 0 0 auto;
}

.da-rol-body[b-k538fhf1xw] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    min-height: 30px;
}
.da-vacio[b-k538fhf1xw] { color: #9aa3ad; font-style: italic; font-size: .85rem; }

/* Concepto contable por rol (código + F2/F8 + nombre) */
.da-concepto[b-k538fhf1xw] { display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.da-cc-inp[b-k538fhf1xw] {
    width: 46px;
    border: 1px solid #c2cad4;
    border-radius: 6px;
    padding: 3px 6px;
    font-size: .85rem;
    text-align: center;
    outline: none;
}
.da-cc-inp:focus[b-k538fhf1xw] { border-color: #2f6fb0; box-shadow: 0 0 0 2px rgba(47,111,176,.15); }
/* §2.28 — marca visual de lookup F2 (buscar). El campo Concepto expone F2
   (lookup) y F8 (mantenimiento, stub) → slab izquierdo tenue "F2-solo" hasta
   que el F8 abra una pantalla de mantenimiento real (§2.28 regla 2). */
.da-cc-inp.code-field[b-k538fhf1xw] { border-left: 3px solid #9ab6d6; padding-left: 8px; }
.da-cc-inp.code-field:focus[b-k538fhf1xw] { border-left-color: #3874cb; }
.da-cc-nom[b-k538fhf1xw] {
    font-size: .78rem;
    color: #5a6675;
    max-width: 140px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Controles de añadir SIEMPRE en una línea (no se parten) */
.da-rol-add[b-k538fhf1xw] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: nowrap;
    flex: 0 0 auto;
}

.da-chip[b-k538fhf1xw] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background: #eef4fb;
    border: 1px solid #c8dbef;
    border-radius: 16px;
    padding: 3px 4px 3px 11px;
    font-size: .85rem;
    color: #234;
}
.da-chip.lit[b-k538fhf1xw] {
    background: #fff7e8;
    border-color: #f0d9a8;
    color: #6b4e16;
}
.da-chip-txt[b-k538fhf1xw] { margin-right: 2px; }
.da-chip-mv[b-k538fhf1xw], .da-chip-x[b-k538fhf1xw] {
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: .95rem;
    line-height: 1;
    color: #5a6b7d;
    padding: 0 3px;
    border-radius: 4px;
}
.da-chip-mv:hover:not(:disabled)[b-k538fhf1xw], .da-chip-x:hover[b-k538fhf1xw] { background: rgba(0,0,0,.07); }
.da-chip-mv:disabled[b-k538fhf1xw] { opacity: .3; cursor: default; }
.da-chip-x[b-k538fhf1xw] { color: #b23; font-weight: 700; }

/* ── Controles para añadir piezas ───────────────────────────────────────── */
.da-add[b-k538fhf1xw] {
    border: 1px solid #b6c2d0;
    border-radius: 16px;
    background: #f3f7fb;
    color: #2f6fb0;
    font-size: .85rem;
    padding: 4px 10px;
    cursor: pointer;
    font-weight: 500;
}
.da-lit[b-k538fhf1xw] { display: inline-flex; align-items: center; gap: 4px; }
.da-lit-inp[b-k538fhf1xw] {
    border: 1px solid #d8b878;
    border-radius: 14px;
    padding: 4px 10px;
    font-size: .85rem;
    background: #fffdf7;
    width: 104px;
    outline: none;
}
.da-lit-inp:focus[b-k538fhf1xw] { border-color: #c79338; box-shadow: 0 0 0 2px rgba(199,147,56,.18); }
.da-lit-add[b-k538fhf1xw] {
    border: 1px solid #d8b878;
    border-radius: 14px;
    background: #fff7e8;
    color: #6b4e16;
    font-size: .85rem;
    padding: 4px 10px;
    cursor: pointer;
    font-weight: 500;
}
.da-lit-add:hover[b-k538fhf1xw] { background: #fdeecb; }

/* ── Vista previa ───────────────────────────────────────────────────────── */
.da-preview[b-k538fhf1xw] {
    margin-top: 10px;
    padding-top: 8px;
    border-top: 1px dashed #e6eaef;
    font-size: .82rem;
    color: #667;
    display: flex;
    align-items: baseline;
    gap: 8px;
}
.da-preview-lbl[b-k538fhf1xw] {
    font-weight: 600;
    color: #8794a2;
    text-transform: uppercase;
    font-size: .68rem;
    letter-spacing: .04em;
}
.da-preview-val[b-k538fhf1xw] { font-style: italic; color: #2f6fb0; }

/* ── Panel explicativo a la derecha ─────────────────────────────────────── */
.da-aside[b-k538fhf1xw] {
    flex: 0 0 320px;
    position: sticky;
    top: 8px;
}
.da-aside-card[b-k538fhf1xw] {
    border: 1px solid #e1e6ec;
    border-radius: 10px;
    background: #fbfcfe;
    padding: 16px 18px;
    box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.da-aside-card h3[b-k538fhf1xw] {
    margin: 0 0 10px;
    font-size: 1rem;
    color: #243240;
    display: flex;
    align-items: center;
    gap: 8px;
}
.da-aside-card h3 .bi[b-k538fhf1xw] { color: #2f6fb0; }
.da-aside-card h4[b-k538fhf1xw] {
    margin: 14px 0 4px;
    font-size: .82rem;
    color: #2f6fb0;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.da-aside-card p[b-k538fhf1xw] { margin: 0 0 8px; font-size: .86rem; color: #4a5663; line-height: 1.5; }
.da-aside-card em[b-k538fhf1xw] { color: #6b4e16; font-style: italic; }

.da-ej[b-k538fhf1xw] { list-style: none; padding: 0; margin: 4px 0 0; }
.da-ej li[b-k538fhf1xw] {
    font-size: .84rem;
    color: #2f6fb0;
    font-style: italic;
    padding: 4px 0;
    border-bottom: 1px dashed #e6eaef;
}
.da-ej li:last-child[b-k538fhf1xw] { border-bottom: none; }
.da-ej-rol[b-k538fhf1xw] {
    display: inline-block;
    background: #e7f0fa;
    color: #2f6fb0;
    font-style: normal;
    font-weight: 600;
    font-size: .72rem;
    border-radius: 10px;
    padding: 1px 8px;
    margin-right: 6px;
}

.da-aside-note[b-k538fhf1xw] {
    margin-top: 14px;
    background: #eafaf0;
    border: 1px solid #bfe6cd;
    border-radius: 8px;
    padding: 10px 12px;
    font-size: .82rem;
    color: #2c6b43;
    line-height: 1.45;
}
.da-aside-note .bi[b-k538fhf1xw] { color: #2e9e5b; margin-right: 4px; }

/* ── Responsive ─────────────────────────────────────────────────────────
   <1200px: el panel explicativo se va abajo (config a todo el ancho).
   <820px:  la caja de resultado baja debajo de su config. */
@media (max-width: 1200px) {
    .da-main[b-k538fhf1xw] { flex-direction: column; }
    .da-aside[b-k538fhf1xw] { flex-basis: auto; position: static; width: 100%; }
}
@media (max-width: 820px) {
    .da-rol[b-k538fhf1xw] { flex-direction: column; }
    .da-rol-result[b-k538fhf1xw] { flex-basis: auto; width: 100%; max-width: none; }
}
/* _content/NetOffice.Web.Forms/Components/DireccionBuscador.razor.rz.scp.css */
.dir-buscador[b-j2x0flwdxm] {
    position: relative;
    width: 100%;
}

.dir-sug[b-j2x0flwdxm] {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 60;
    margin: 2px 0 0 0;
    padding: 4px 0;
    list-style: none;
    background: #fff;
    border: 1px solid #c7d2e0;
    border-radius: 6px;
    box-shadow: 0 8px 22px rgba(15, 40, 80, .16);
    max-height: 260px;
    overflow-y: auto;
    font-size: .86rem;
}

.dir-sug li[b-j2x0flwdxm] {
    padding: 6px 10px;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: flex;
    align-items: center;
    gap: 7px;
    color: #24425e;
}

.dir-sug li .bi[b-j2x0flwdxm] {
    color: #3b78c3;
    font-size: .9rem;
    flex: 0 0 auto;
}

.dir-sug li:hover[b-j2x0flwdxm],
.dir-sug li.sel[b-j2x0flwdxm] {
    background: #eaf2fb;
}
/* _content/NetOffice.Web.Forms/Components/DireccionBuscadorDialog.razor.rz.scp.css */
.dbd-backdrop[b-tk1gj99sl3] {
    position: fixed;
    inset: 0;
    background: rgba(15, 30, 55, .45);
    z-index: 1200;
}

/* NORMA 2026-07-05 (cliente): modal GRANDE — ~780px de ancho y alto para ver
   los ~10 resultados del buscador mixto (5 locales + 5 Google) sin scroll o
   con scroll mínimo. max-height 70vh; el cuerpo flexa dentro (ver .dbd-body).
   Cambio de tamaño = norma del objeto compartido (§3.4) — aplica a TODOS los
   consumidores (Direcciones de reparto, itinerarios, …). */
.dbd-box[b-tk1gj99sl3] {
    position: fixed;
    top: 12vh;
    left: 50%;
    transform: translateX(-50%);
    width: min(780px, 94vw);
    max-height: 70vh;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 18px 50px rgba(10, 25, 60, .35);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    z-index: 1201;
    outline: none;
}

.dbd-head[b-tk1gj99sl3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: #2f6ec1;
    color: #fff;
    font-weight: 600;
}

.dbd-head .bi[b-tk1gj99sl3] { margin-right: 6px; }

.dbd-x[b-tk1gj99sl3] {
    background: transparent;
    border: none;
    color: #fff;
    cursor: pointer;
    font-size: 1rem;
    padding: 2px 6px;
    border-radius: 5px;
}

.dbd-x:hover[b-tk1gj99sl3] { background: rgba(255, 255, 255, .18); }

.dbd-search[b-tk1gj99sl3] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 14px;
    border-bottom: 1px solid #e2e8f2;
    background: #f6f9fd;
}

.dbd-search-ico[b-tk1gj99sl3] { color: #2f6ec1; font-size: 1rem; }

.dbd-inp[b-tk1gj99sl3] {
    flex: 1 1 auto;
    min-width: 0;
    border: 1px solid #c4d2e4;
    border-radius: 7px;
    padding: 8px 12px;
    font-size: .95rem;
    background: #fff;
}

.dbd-inp:focus[b-tk1gj99sl3] {
    outline: none;
    border-color: #2f6ec1;
    box-shadow: 0 0 0 3px rgba(47, 110, 193, .15);
}

.dbd-lupa[b-tk1gj99sl3] {
    flex: 0 0 auto;
    border: 1px solid #2a62ad;
    background: #2f6ec1;
    color: #fff;
    border-radius: 7px;
    padding: 8px 13px;
    cursor: pointer;
    font-size: .9rem;
}

.dbd-lupa:hover[b-tk1gj99sl3] { background: #2a62ad; }

/* El cuerpo crece con los resultados (hasta el tope 70vh del modal) — los ~10
   ítems + 2 cabeceras de grupo caben sin scroll en pantallas normales. */
.dbd-body[b-tk1gj99sl3] {
    min-height: 150px;
    flex: 1 1 auto;
    overflow-y: auto;
}

.dbd-msg[b-tk1gj99sl3] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 18px 16px;
    font-size: .86rem;
    color: #33506e;
}

.dbd-hint[b-tk1gj99sl3] { color: #7d94ad; font-style: italic; }

.dbd-list[b-tk1gj99sl3] {
    margin: 0;
    padding: 4px 0;
    list-style: none;
    font-size: .88rem;
}

.dbd-list li[b-tk1gj99sl3] {
    padding: 9px 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 9px;
    color: #24425e;
    border-bottom: 1px solid #eef2f8;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dbd-list li .bi[b-tk1gj99sl3] {
    color: #3b78c3;
    font-size: .95rem;
    flex: 0 0 auto;
}

.dbd-list li:hover[b-tk1gj99sl3] { background: #f2f7fd; }

.dbd-list li.sel[b-tk1gj99sl3] {
    background: #eaf2fb;
    box-shadow: inset 3px 0 0 #2f6ec1;
}

/* ── Buscador MIXTO (2026-07-05): grupo local "En el sistema" + grupo Google ── */
.dbd-list li.dbd-group[b-tk1gj99sl3] {
    padding: 5px 14px 3px;
    cursor: default;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: #7d94ad;
    background: #f6f9fd;
    border-bottom: 1px solid #e2e8f2;
}

.dbd-list li.dbd-group:hover[b-tk1gj99sl3] { background: #f6f9fd; }

.dbd-ico-local[b-tk1gj99sl3] { color: #1f4a87 !important; }     /* azul corporativo — registro YA existente */
.dbd-ico-google[b-tk1gj99sl3] { color: #8a97a6 !important; }    /* pin gris — resultado del proveedor */

.dbd-loc-txt[b-tk1gj99sl3] {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dbd-tag-local[b-tk1gj99sl3] {
    flex: 0 0 auto;
    font-size: .68rem;
    font-weight: 700;
    color: #1f4a87;
    background: #e3edf9;
    border: 1px solid #b9cfe8;
    border-radius: 9px;
    padding: 1px 8px;
    white-space: nowrap;
}

.dbd-foot[b-tk1gj99sl3] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    border-top: 1px solid #e2e8f2;
    background: #f6f9fd;
}

.dbd-foot-spacer[b-tk1gj99sl3] { flex: 1 1 auto; }
/* _content/NetOffice.Web.Forms/Components/DirtyGuardDialog.razor.rz.scp.css */
/* DirtyGuardDialog — CSS scoped (CLAUDE.md §2.37 — aprobación #50).
   Modal pequeño centrado con backdrop, mismo lenguaje visual que
   <FormConfigDialog>, <HelpDialog>, <NotasDialog>. */

.dirty-guard-dialog[b-vk7cgqzatw] {
    width: 520px;
    max-width: calc(100vw - 40px);
    z-index: 1102;
}

.dirty-guard-backdrop[b-vk7cgqzatw] {
    z-index: 1101;
}

[b-vk7cgqzatw] .dirty-guard-body {
    padding: 16px 20px 8px 20px;
}

[b-vk7cgqzatw] .dirty-guard-intro {
    margin: 0 0 12px 0;
    font-size: 14px;
    color: #2b3640;
    line-height: 1.45;
}

[b-vk7cgqzatw] .dirty-guard-options {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 13px;
    color: #3a4754;
}

[b-vk7cgqzatw] .dirty-guard-options li {
    padding: 6px 0;
    line-height: 1.4;
    border-bottom: 1px dotted #d8dde5;
}

[b-vk7cgqzatw] .dirty-guard-options li:last-child {
    border-bottom: none;
}

[b-vk7cgqzatw] .dirty-guard-options strong {
    color: #1f4a87;
    font-weight: 600;
}

[b-vk7cgqzatw] .dirty-guard-opt-desc {
    color: #5a6470;
}

/* Lista "Campos modificados" — diagnóstico de falsos positivos (§2.37).
   Sólo aparece cuando la pantalla aportó el detalle y hay diferencias. */
[b-vk7cgqzatw] .dirty-guard-changes {
    margin-top: 12px;
    border-top: 1px solid #e2e8f0;
    padding-top: 10px;
}

[b-vk7cgqzatw] .dirty-guard-changes-title {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 600;
    color: #1f4a87;
    margin-bottom: 6px;
}

[b-vk7cgqzatw] .dirty-guard-changes-title .dgc-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: #1f4a87;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
}

[b-vk7cgqzatw] .dirty-guard-changes-scroll {
    max-height: 190px;
    overflow-y: auto;
    border: 1px solid #dbe2ec;
    border-radius: 4px;
}

[b-vk7cgqzatw] .dirty-guard-changes-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

[b-vk7cgqzatw] .dirty-guard-changes-table thead th {
    position: sticky;
    top: 0;
    background: linear-gradient(180deg, #f6f9fd 0%, #e8eef7 100%);
    color: #3a4754;
    font-weight: 600;
    text-align: left;
    padding: 4px 8px;
    border-bottom: 1px solid #cdd7e4;
    white-space: nowrap;
}

[b-vk7cgqzatw] .dirty-guard-changes-table tbody td {
    padding: 3px 8px;
    border-bottom: 1px dotted #e0e5ec;
    vertical-align: top;
    word-break: break-word;
}

[b-vk7cgqzatw] .dirty-guard-changes-table tbody tr:last-child td {
    border-bottom: none;
}

[b-vk7cgqzatw] .dirty-guard-changes-table .dgc-field {
    font-family: Consolas, "Courier New", monospace;
    color: #1f4a87;
    white-space: nowrap;
}

[b-vk7cgqzatw] .dirty-guard-changes-table .dgc-before {
    color: #a23b3b;
}

[b-vk7cgqzatw] .dirty-guard-changes-table .dgc-after {
    color: #2b7a3b;
}

[b-vk7cgqzatw] .dirty-guard-footer {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-top: 1px solid #e2e8f0;
    background: linear-gradient(180deg, #f6f9fd 0%, #dbe5f1 100%);
}

[b-vk7cgqzatw] .dirty-guard-footer .lookup-footer-spacer {
    flex: 1 1 auto;
}

/* "Descartar y continuar" — acción destructiva, gris suave para no llamar
   la atención (el usuario suele querer Guardar o Cancelar). */
[b-vk7cgqzatw] .btn-dirty-discard {
    background: linear-gradient(180deg, #ffffff 0%, #f0f2f5 100%);
    border: 1px solid #c5cdd9;
    color: #5a6470;
    padding: 6px 14px;
    border-radius: 4px;
    font-size: 13px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
[b-vk7cgqzatw] .btn-dirty-discard:hover {
    background: linear-gradient(180deg, #ffffff 0%, #e4e8ee 100%);
    border-color: #a4adb8;
}
[b-vk7cgqzatw] .btn-dirty-discard i { color: #5a6470; font-size: 13px; }

/* "Cancelar" — default visual, borde fino, blanco. */
[b-vk7cgqzatw] .btn-dirty-cancel {
    background: #ffffff;
    border: 1px solid #c5cdd9;
    color: #3a4754;
    padding: 6px 18px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}
[b-vk7cgqzatw] .btn-dirty-cancel:hover {
    background: #f6f9fd;
    border-color: #1f4a87;
}

/* "Guardar y continuar" — acción primaria recomendada, azul corporativo. */
[b-vk7cgqzatw] .btn-dirty-save {
    background: linear-gradient(180deg, #3874cb 0%, #1f4a87 100%);
    border: 1px solid #1f4a87;
    color: #fff;
    padding: 6px 16px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    box-shadow: 0 1px 2px rgba(31,74,135,0.18);
}
[b-vk7cgqzatw] .btn-dirty-save:hover {
    background: linear-gradient(180deg, #4685de 0%, #2858a0 100%);
    box-shadow: 0 2px 4px rgba(31,74,135,0.25);
}
[b-vk7cgqzatw] .btn-dirty-save i { color: #fff; font-size: 13px; }
/* _content/NetOffice.Web.Forms/Components/EstadisticasDialog.razor.rz.scp.css */
/* EstadisticasDialog — visualización rica con KPIs, gráficos SVG e insights.
   CLAUDE.md §2.30-estadisticas. */

.estad-dialog[b-6fvd9bcol2] {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    max-height: 100vh !important;
    top: 0 !important;
    left: 50% !important;
    transform: translate(-50%, 0) !important;
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    display: flex;
    flex-direction: column;
    background: #f4f6fa;
    border: 1px solid #c5cdd9;
    overflow: hidden;
    position: relative;
}

/* ===== Cabecera azul corp ===== */
.estad-header[b-6fvd9bcol2] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%) !important;
    color: #fff !important;
    border-bottom: none !important;
    padding: 12px 18px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.2px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15) !important;
    display: flex;
    align-items: center;
    gap: 12px;
}
.estad-header > span[b-6fvd9bcol2] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #fff !important;
}
.estad-header .estad-header-icon[b-6fvd9bcol2] { color: #fff !important; font-size: 16px; opacity: 0.95; }
.estad-header .lookup-close[b-6fvd9bcol2] {
    color: #fff !important;
    background: rgba(255,255,255,0.10) !important;
    border: 1px solid rgba(255,255,255,0.30) !important;
    border-radius: 5px !important;
    width: 28px !important; height: 28px !important;
    margin-left: auto;
}
.estad-header .lookup-close:hover[b-6fvd9bcol2] { background: rgba(255,255,255,0.22) !important; }
.estad-header strong[b-6fvd9bcol2] {
    font-family: inherit;
    font-variant-numeric: tabular-nums;
    font-size: 14px;
    letter-spacing: 0.4px;
    color: #fff !important;
    background: rgba(255,255,255,0.18);
    padding: 2px 10px;
    border-radius: 4px;
    border: 1px solid rgba(255,255,255,0.30);
}
.estad-header .estad-header-tipo[b-6fvd9bcol2] {
    font-size: 12px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    opacity: 0.90;
    margin-right: 2px;
}
.estad-header .estad-header-nombre[b-6fvd9bcol2] {
    color: #fff !important;
    font-weight: 500;
    margin-left: 4px;
    opacity: 0.95;
}
.estad-empresa-bar[b-6fvd9bcol2] {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    padding: 4px 12px 4px 6px;
    border: 1px solid;
    border-radius: 18px;
    color: #1a1a1a;
    font-weight: 600;
    font-size: 12.5px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.40);
}
.estad-empresa-logo[b-6fvd9bcol2] {
    width: 22px; height: 22px;
    border-radius: 50%;
    object-fit: cover;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.15);
}
.estad-empresa-bar i.bi-building[b-6fvd9bcol2] {
    width: 22px; height: 22px;
    border-radius: 50%;
    background: rgba(255,255,255,0.5);
    display: inline-flex; align-items: center; justify-content: center;
    color: #1f4a87;
    font-size: 13px;
}
.estad-empresa-nombre[b-6fvd9bcol2] { color: #1a1a1a; font-weight: 700; }
.estad-empresa-sep[b-6fvd9bcol2]    { color: rgba(0,0,0,0.4); margin: 0 2px; }
.estad-empresa-subt[b-6fvd9bcol2]   { color: rgba(0,0,0,0.7); font-weight: 500; font-size: 11.5px; }
.estad-header-titulo[b-6fvd9bcol2] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 auto;
    justify-content: center;
}

/* ===== Body scrollable ===== */
.estad-body[b-6fvd9bcol2] {
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 16px 20px 20px 20px;
    background: #f4f6fa;
    outline: none;
}
.estad-loading[b-6fvd9bcol2] {
    text-align: center;
    padding: 80px 20px;
    color: #6b7280;
    font-size: 15px;
}
.estad-vacio[b-6fvd9bcol2] {
    text-align: center;
    padding: 80px 20px;
    color: #6b7280;
}
.estad-vacio i[b-6fvd9bcol2] {
    font-size: 48px;
    color: #c5cdd9;
    display: block;
    margin-bottom: 16px;
}
.estad-vacio p[b-6fvd9bcol2] { font-size: 14px; margin: 0; }

/* ===== KPI cards (4 — uno por año) ===== */
.estad-kpis[b-6fvd9bcol2] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-bottom: 16px;
}
.estad-kpi[b-6fvd9bcol2] {
    background: #fff;
    border: 1px solid #d4dae3;
    border-radius: 6px;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    box-shadow: 0 1px 2px rgba(15,30,55,0.04);
    transition: box-shadow 0.15s, transform 0.15s;
    position: relative;
    overflow: hidden;
}
.estad-kpi:hover[b-6fvd9bcol2] {
    box-shadow: 0 4px 12px rgba(15,30,55,0.10);
    transform: translateY(-1px);
}
.estad-kpi.best[b-6fvd9bcol2] {
    border-color: #d8a728;
    background: linear-gradient(180deg, #fffbeb 0%, #fff8d0 100%);
}
.estad-kpi .kpi-head[b-6fvd9bcol2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}
.estad-kpi .kpi-year[b-6fvd9bcol2] {
    font-size: 12px;
    font-weight: 700;
    color: #6b7280;
    letter-spacing: 0.8px;
    text-transform: uppercase;
}
.estad-kpi.best .kpi-year[b-6fvd9bcol2] { color: #7a5b00; }
.estad-kpi .kpi-best-icon[b-6fvd9bcol2] { color: #d8a728; font-size: 14px; }
.estad-kpi .kpi-total[b-6fvd9bcol2] {
    font-size: 22px;
    font-weight: 700;
    color: #1f2937;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}
.estad-kpi.best .kpi-total[b-6fvd9bcol2] { color: #4a3a00; }
.estad-kpi .kpi-delta[b-6fvd9bcol2] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    font-weight: 600;
    color: #6b7280;
    font-variant-numeric: tabular-nums;
}
.estad-kpi .kpi-delta.pos[b-6fvd9bcol2] { color: #1d6f42; }
.estad-kpi .kpi-delta.neg[b-6fvd9bcol2] { color: #a31f1f; }
.estad-kpi .kpi-delta .kpi-pct[b-6fvd9bcol2] {
    opacity: 0.75;
    font-weight: 500;
    margin-left: 2px;
}
.estad-kpi .kpi-baseline[b-6fvd9bcol2] {
    color: #9ca3af;
    font-style: italic;
    font-weight: 500;
}
.estad-kpi .kpi-spark[b-6fvd9bcol2] {
    width: 100%;
    height: 30px;
    margin-top: 4px;
}

/* ===== Insights ===== */
.estad-insights[b-6fvd9bcol2] {
    background: linear-gradient(180deg, #fffce4 0%, #fff8d0 100%);
    border: 1px solid #d8c270;
    border-left: 4px solid #d8a728;
    border-radius: 6px;
    padding: 12px 16px;
    margin-bottom: 16px;
    box-shadow: 0 1px 2px rgba(15,30,55,0.04);
}
.estad-insights .ins-head[b-6fvd9bcol2] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #7a5b00;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.estad-insights .ins-head i[b-6fvd9bcol2] { color: #d8a728; font-size: 16px; }
.estad-insights .ins-list[b-6fvd9bcol2] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 6px 16px;
}
.estad-insights .ins-item[b-6fvd9bcol2] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: #4a3a00;
    font-size: 13px;
    line-height: 1.4;
}
.estad-insights .ins-item i[b-6fvd9bcol2] { margin-top: 2px; font-size: 14px; flex-shrink: 0; }
.estad-insights .ins-item.ins-up[b-6fvd9bcol2]   { color: #1d6f42; }
.estad-insights .ins-item.ins-up i[b-6fvd9bcol2] { color: #1d6f42; }
.estad-insights .ins-item.ins-down[b-6fvd9bcol2]   { color: #a31f1f; }
.estad-insights .ins-item.ins-down i[b-6fvd9bcol2] { color: #a31f1f; }
.estad-insights .ins-item.ins-warn[b-6fvd9bcol2]   { color: #b97a00; }
.estad-insights .ins-item.ins-warn i[b-6fvd9bcol2] { color: #d8a728; }
.estad-insights .ins-item.ins-info[b-6fvd9bcol2]   { color: #1f4a87; }
.estad-insights .ins-item.ins-info i[b-6fvd9bcol2] { color: #1f4a87; }
.estad-insights .ins-item.ins-neutral[b-6fvd9bcol2]   { color: #4b5563; }
.estad-insights .ins-item.ins-neutral i[b-6fvd9bcol2] { color: #6b7280; }
.estad-insights .ins-item strong[b-6fvd9bcol2] { font-weight: 700; }

/* ===== Tarjetas de gráficos ===== */
.estad-chart-card[b-6fvd9bcol2], .estad-table-card[b-6fvd9bcol2] {
    background: #fff;
    border: 1px solid #d4dae3;
    border-radius: 6px;
    padding: 14px 18px 16px 18px;
    margin-bottom: 16px;
    box-shadow: 0 1px 2px rgba(15,30,55,0.04);
}
.chart-head[b-6fvd9bcol2] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}
.chart-head i[b-6fvd9bcol2] { color: #1f4a87; font-size: 16px; }
.chart-head .chart-title[b-6fvd9bcol2] {
    font-size: 13px;
    font-weight: 700;
    color: #1f4a87;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}
.chart-head .chart-sub[b-6fvd9bcol2] {
    font-size: 11.5px;
    color: #6b7280;
    font-weight: 500;
    margin-left: 6px;
}
.chart-head .chart-spacer[b-6fvd9bcol2] { flex: 1 1 auto; }

.chart-legend[b-6fvd9bcol2] {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 8px;
    font-size: 11.5px;
    color: #4b5563;
}
.chart-legend .lg-item[b-6fvd9bcol2] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.chart-legend .lg-swatch[b-6fvd9bcol2] {
    width: 12px;
    height: 12px;
    border-radius: 2px;
    display: inline-block;
}

.chart-line[b-6fvd9bcol2], .chart-bars[b-6fvd9bcol2] {
    width: 100%;
    max-height: 320px;
    display: block;
}

/* ===== Heatmap ===== */
.heatmap-grid[b-6fvd9bcol2] {
    display: grid;
    grid-template-columns: 56px repeat(12, 1fr);
    gap: 2px;
    margin-top: 4px;
}
.hm-corner[b-6fvd9bcol2] { background: transparent; }
.hm-mes[b-6fvd9bcol2] {
    text-align: center;
    font-size: 10.5px;
    font-weight: 700;
    color: #6b7280;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    padding: 4px 0;
}
.hm-year[b-6fvd9bcol2] {
    background: linear-gradient(180deg, #f7f9fc 0%, #eef2f7 100%);
    color: #1f4a87;
    border-radius: 3px;
    text-align: center;
    font-size: 11px;
    font-weight: 700;
    padding: 8px 4px;
    font-variant-numeric: tabular-nums;
}
.hm-cell[b-6fvd9bcol2] {
    height: 40px;
    border-radius: 3px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10.5px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    transition: transform 0.1s, box-shadow 0.1s;
    cursor: default;
}
.hm-cell:hover[b-6fvd9bcol2] {
    transform: scale(1.08);
    box-shadow: 0 2px 6px rgba(15,30,55,0.18);
    z-index: 1;
}

/* ===== Tabla detallada ===== */
.estad-tb-btn[b-6fvd9bcol2] {
    height: 26px;
    min-width: 30px;
    padding: 0 10px;
    border: 1px solid #b9c6d6;
    border-radius: 5px;
    background: linear-gradient(180deg, #ffffff 0%, #eef3f9 100%);
    color: #1f4a87;
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    gap: 4px;
    font-size: 11.5px;
    font-weight: 600;
    transition: all 0.15s;
}
.estad-tb-btn:hover:not(:disabled)[b-6fvd9bcol2] {
    background: linear-gradient(180deg, #f5fbff 0%, #d8ecff 100%);
    border-color: #1f4a87;
}
.estad-tb-btn.estad-tb-excel[b-6fvd9bcol2] {
    background: linear-gradient(180deg, #29a663 0%, #1d6f42 100%);
    border-color: #1d6f42;
    color: #fff;
}
.estad-tb-btn.estad-tb-excel:hover:not(:disabled)[b-6fvd9bcol2] {
    background: linear-gradient(180deg, #2fb572 0%, #237a4b 100%);
}

.estad-table[b-6fvd9bcol2] {
    width: 100%;
    border-collapse: collapse;
    table-layout: auto;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
    margin-top: 4px;
}
.estad-table thead th[b-6fvd9bcol2] {
    background: #eef2f7;
    color: #1f4a87;
    font-weight: 700;
    text-align: left;
    padding: 7px 10px;
    border-bottom: 2px solid #1f4a87;
    font-size: 11px;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}
.estad-table thead th.num[b-6fvd9bcol2] { text-align: right; }
.estad-table tbody td[b-6fvd9bcol2] {
    padding: 5px 10px;
    border-bottom: 1px solid #eef0f4;
    vertical-align: middle;
}
.estad-table tbody td.num[b-6fvd9bcol2] { text-align: right; }
.estad-table tbody td.cell-mes[b-6fvd9bcol2] {
    font-weight: 600;
    color: #1f4a87;
}
.estad-table tbody td.cell-actual[b-6fvd9bcol2] {
    font-weight: 700;
    color: #1d6f42;
}
.estad-table tbody td.pos[b-6fvd9bcol2] { color: #1d6f42; font-weight: 600; }
.estad-table tbody td.neg[b-6fvd9bcol2] { color: #a31f1f; font-weight: 600; }
.estad-table tbody tr:nth-child(odd)[b-6fvd9bcol2] { background: #fbfcfe; }
.estad-table tbody tr:hover[b-6fvd9bcol2] { background: #eef4fc; }

.estad-table tfoot th[b-6fvd9bcol2] {
    background: linear-gradient(180deg, #f7f9fc 0%, #eef2f7 100%);
    color: #1f2937;
    padding: 8px 10px;
    border-top: 2px solid #1f4a87;
    border-bottom: none;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
.estad-table tfoot th.num[b-6fvd9bcol2] { text-align: right; }
.estad-table tfoot th.pos[b-6fvd9bcol2] { color: #1d6f42; }
.estad-table tfoot th.neg[b-6fvd9bcol2] { color: #a31f1f; }

/* ===== Footer ===== */
.estad-footer[b-6fvd9bcol2] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: #fff;
    border-top: 1px solid #d4dae3;
    flex-shrink: 0;
}
.estad-footer-spacer[b-6fvd9bcol2] { flex: 1 1 auto; }
/* Botones del footer — inline-flex horizontal coherente (CLAUDE.md §2.30a).
   Override del `.bbtn` global del RCL (vertical icon-button). */
.estad-footer .bbtn[b-6fvd9bcol2] {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    min-width: 0;
    border-radius: 5px;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid #c5cdd9;
    background: #fff;
    color: #1f4a87;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: background 0.12s, border-color 0.12s, box-shadow 0.15s;
}
.estad-footer .bbtn i[b-6fvd9bcol2] {
    font-size: 13px !important;
    color: inherit !important;
    margin: 0 !important;
}

.estad-footer .bbtn-estad-imprimir[b-6fvd9bcol2] {
    background: linear-gradient(180deg, #f5fbff 0%, #d8ecff 100%);
    border: 1px solid #7ba4d6;
    color: #1f4a87;
    font-weight: 600;
}
.estad-footer .bbtn-estad-imprimir:hover:not(:disabled)[b-6fvd9bcol2] {
    background: linear-gradient(180deg, #e6f3ff 0%, #c3def5 100%);
    border-color: #1f4a87;
}
.estad-footer .bbtn-estad-imprimir:disabled[b-6fvd9bcol2] {
    opacity: 0.55;
    cursor: not-allowed;
}
.estad-footer .bbtn-estad-imprimir .spin[b-6fvd9bcol2] { animation: estad-spin-b-6fvd9bcol2 1s linear infinite; }

/* Botón Salir — outlined neutro coherente con Familia A §2.30a. */
.estad-footer .bbtn:last-child[b-6fvd9bcol2] {
    background: #fff;
    border-color: #c5cdd9;
    color: #3a4754;
}
.estad-footer .bbtn:last-child:hover[b-6fvd9bcol2] {
    background: #f5f7fa;
    border-color: #8b95a3;
    color: #1f2937;
    box-shadow: 0 2px 5px rgba(58,71,84,0.15);
}
@keyframes estad-spin-b-6fvd9bcol2 {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* ===== Overlay PDF preview ===== */
.pdf-preview-backdrop[b-6fvd9bcol2] {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pdf-preview-panel[b-6fvd9bcol2] {
    background: #fff;
    width: 92%;
    height: 92%;
    border-radius: 6px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.4);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.pdf-preview-header[b-6fvd9bcol2] {
    background: linear-gradient(180deg, #27548f 0%, #173a6b 100%);
    color: #fff;
    padding: 10px 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    border-bottom: 2px solid #5fa8ff;
}
.pdf-preview-spacer[b-6fvd9bcol2] { flex: 1 1 auto; }
.pdf-preview-close[b-6fvd9bcol2] {
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.30);
    color: #fff;
    width: 28px; height: 28px;
    border-radius: 4px;
    cursor: pointer;
}
.pdf-preview-close:hover[b-6fvd9bcol2] { background: rgba(255,255,255,0.30); }
.pdf-preview-body[b-6fvd9bcol2] { flex: 1 1 auto; min-height: 0; background: #525659; }
.pdf-preview-iframe[b-6fvd9bcol2] { width: 100%; height: 100%; border: none; }
.pdf-preview-footer[b-6fvd9bcol2] {
    background: #fff;
    border-top: 1px solid #d4dae3;
    padding: 10px 16px;
    display: flex;
    gap: 8px;
}

.spin[b-6fvd9bcol2] { animation: estad-spin-b-6fvd9bcol2 1s linear infinite; display: inline-block; }

/* Responsive < 1100px */
@media (max-width: 1100px) {
    .estad-kpis[b-6fvd9bcol2] { grid-template-columns: repeat(2, 1fr); }
}
/* _content/NetOffice.Web.Forms/Components/ExtractoDialog.razor.rz.scp.css */
/* ExtractoDialog — patrón form_extracto (CLAUDE.md §2.30).
   Rediseño 2026-05-14: el modal ocupa casi todo el viewport (más legible
   con 12 columnas + cabeceras), grid sin scroll horizontal (table-layout
   fixed + porcentajes en colgroup), filas zebra, totales destacados,
   columnas Debe/Haber/Saldo con badges y color semántico. */

/* Cliente 2026-05-14 mañana 11: el dialog ocupa el alto completo del
   iframe del PlanContable. La barra superior del shell de NetOffice
   (con la empresa actual) se sigue viendo porque vive FUERA del iframe.
   `top: 0` + `transform: translate(-50%, 0)` ancla el dialog arriba
   manteniendo el centrado horizontal heredado del .lookup-dialog. */
.extracto-dialog[b-19785uasu6] {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    max-height: 100vh !important;
    top: 0 !important;
    left: 50% !important;
    transform: translate(-50%, 0) !important;
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    display: flex;
    flex-direction: column;
    background: #f4f6fa;
    border: 1px solid #c5cdd9;
    overflow: hidden;
    position: relative; /* ancla del overlay PDF (cliente 2026-05-16) */
}

/* ----- Cabecera del modal — azul corp gradient (cliente 2026-05-14
   mañana 9: el ::deep anterior no estaba ganando consistentemente al
   .lookup-header del RCL — texto blanco invisible sobre fondo gris
   claro. Reescritura con la clase específica .extracto-header + !important. */
.extracto-header[b-19785uasu6] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%) !important;
    color: #fff !important;
    border-bottom: none !important;
    padding: 12px 18px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.2px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15) !important;
}
.extracto-header > span[b-19785uasu6] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #fff !important;
}
.extracto-header .extracto-header-icon[b-19785uasu6] {
    color: #fff !important;
    font-size: 16px;
    margin-right: 4px;
    opacity: 0.95;
}
.extracto-header .lookup-close[b-19785uasu6] {
    color: #fff !important;
    background: rgba(255,255,255,0.10) !important;
    border: 1px solid rgba(255,255,255,0.30) !important;
    border-radius: 5px !important;
    width: 28px !important; height: 28px !important;
}
.extracto-header .lookup-close:hover[b-19785uasu6] { background: rgba(255,255,255,0.22) !important; }

.extracto-header strong[b-19785uasu6] {
    /* Cliente 2026-05-14 mañana 19: misma fuente que el resto del proyecto
       (Segoe UI / Aptos Narrow heredada del host), no monospace. tabular-nums
       para que los dígitos alineen sin necesidad de fuente fija. */
    font-family: inherit;
    font-variant-numeric: tabular-nums;
    font-size: 14px;
    letter-spacing: 0.4px;
    color: #fff !important;
    background: rgba(255,255,255,0.18);
    padding: 2px 10px;
    border-radius: 4px;
    border: 1px solid rgba(255,255,255,0.30);
}
.extracto-header .extracto-header-nombre[b-19785uasu6] {
    color: #fff !important;
    font-weight: 500;
    margin-left: 4px;
    opacity: 0.95;
}

/* Cabecera 3-zonas (cliente 2026-05-14 mañana 16):
   IZQUIERDA: chip empresa con LOGO real (mismo patrón que ContextoBar).
   CENTRO:    título de la cuenta (cuenta + nombre) — centrado.
   DERECHA:   botón cerrar.
   Implementación: el chip y el botón llevan flex:0 0 auto; el título
   tiene flex:1 1 auto + text-align:center para ocupar el sobrante. */
/* Cliente 2026-05-14 mañana 17: el chip empresa ahora lleva fondo del
   color asignado a la empresa (gene_empresas.colorargb) — sin color =
   blanco. TEXTO siempre en NEGRO para garantizar legibilidad sobre
   cualquier color del cliente. El style inline desde el componente
   sobreescribe `background` y `border-color`. */
.extracto-empresa-bar[b-19785uasu6] {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    padding: 4px 14px 4px 6px;
    background: #ffffff;
    border: 1px solid rgba(0,0,0,0.20);
    border-radius: 16px;
    color: #1f2937 !important;
    font-size: 12.5px;
    font-weight: 600;
    max-width: 38%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    box-shadow: 0 1px 2px rgba(0,0,0,0.08);
}
.extracto-empresa-bar i[b-19785uasu6] {
    color: #1f4a87 !important;
    font-size: 14px;
}
.extracto-empresa-bar .extracto-empresa-logo[b-19785uasu6] {
    width: 24px;
    height: 24px;
    object-fit: contain;
    background: #fff;
    border-radius: 50%;
    padding: 2px;
    flex: 0 0 auto;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.12);
}
.extracto-empresa-bar .extracto-empresa-nombre[b-19785uasu6] {
    color: #1f2937 !important;
    font-weight: 700;
    letter-spacing: 0.2px;
}
.extracto-empresa-bar .extracto-empresa-sep[b-19785uasu6] {
    color: rgba(0,0,0,0.40);
    margin: 0 2px;
}
.extracto-empresa-bar .extracto-empresa-subt[b-19785uasu6] {
    color: #4a5566 !important;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Título centrado — flex:1 absorbe el espacio entre chip empresa y X. */
.extracto-header-titulo[b-19785uasu6] {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: 1 1 auto;
    min-width: 0;
    text-align: center;
    color: #fff !important;
    overflow: hidden;
    padding: 0 14px;
}

/* ===== Totales en cabecera ===== */
.extracto-totales[b-19785uasu6] {
    display: flex;
    gap: 14px;
    padding: 14px 20px;
    background: #f7f9fc;
    border-bottom: 1px solid #d4dae3;
    flex-shrink: 0;
}
.extracto-totales .totalbox[b-19785uasu6] {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 12px 18px;
    background: #fff;
    border: 1px solid #d4dae3;
    border-left: 4px solid #1f4a87;
    border-radius: 4px;
    box-shadow: 0 1px 2px rgba(15,30,55,0.04);
    transition: box-shadow 0.15s;
}
.extracto-totales .totalbox:hover[b-19785uasu6] {
    box-shadow: 0 2px 6px rgba(15,30,55,0.10);
}
.extracto-totales .totalbox-label[b-19785uasu6] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.8px;
    color: #5e6b7c;
    text-transform: uppercase;
}
.extracto-totales .totalbox-value[b-19785uasu6] {
    font-size: 22px;
    font-weight: 700;
    color: #1f2937;
    font-variant-numeric: tabular-nums;
    margin-top: 4px;
    line-height: 1.1;
}
/* Variantes por tipo de total — color del border-left distingue al ojo. */
.extracto-totales .totalbox:nth-child(1)[b-19785uasu6] {
    border-left-color: #29a663;       /* Debe — verde */
}
.extracto-totales .totalbox:nth-child(1) .totalbox-label[b-19785uasu6] { color: #1d6f42; }
.extracto-totales .totalbox:nth-child(2)[b-19785uasu6] {
    border-left-color: #d94f4f;       /* Haber — rojo */
}
.extracto-totales .totalbox:nth-child(2) .totalbox-label[b-19785uasu6] { color: #a31f1f; }
.extracto-totales .totalbox-saldo[b-19785uasu6] {
    background: linear-gradient(180deg, #fff8d0 0%, #fff5b3 100%);
    border-color: #d8c270;
    border-left-color: #d8a728;       /* Saldo — ámbar */
}
.extracto-totales .totalbox-saldo .totalbox-label[b-19785uasu6] { color: #7a5b00; }
.extracto-totales .totalbox-saldo .totalbox-value[b-19785uasu6] { color: #4a3a00; }

/* ===== Toolbar slate-titled ===== */
.extracto-toolbar[b-19785uasu6] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 20px;
    background: linear-gradient(180deg, #27548f 0%, #173a6b 100%);
    color: #fff;
    border-left: 4px solid #5fa8ff;
    font-size: 12px;
    text-shadow: 0 1px 0 rgba(0,0,0,0.25);
    flex-shrink: 0;
}
.extracto-toolbar-icon[b-19785uasu6] { color: #aac6e8; font-size: 14px; }
.extracto-toolbar-title[b-19785uasu6] {
    font-weight: 700;
    letter-spacing: 0.6px;
    font-size: 12.5px;
}
.extracto-toolbar-count[b-19785uasu6] {
    background: rgba(255,255,255,0.14);
    border: 1px solid rgba(255,255,255,0.22);
    color: #e9f1fc;
    border-radius: 11px;
    padding: 2px 10px;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}
.extracto-toolbar-spacer[b-19785uasu6] { flex: 1 1 auto; }

/* 3 botones de operativa del grid (cliente 2026-05-14 mañana 10):
   filtro contiene (toggle visibilidad), rango desde/hasta (toggle modo)
   y exportar Excel/CSV. Estilo cápsula blanca igual que el slate-titled
   canónico §2.12.1 — el activo lleva azul. */
.extracto-tb-buttons[b-19785uasu6] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 6px;
    padding-left: 8px;
    border-left: 1px solid rgba(255,255,255,0.18);
}
.extracto-tb-btn[b-19785uasu6] {
    width: 30px;
    height: 26px;
    border: 1px solid #b9c6d6;
    border-radius: 5px;
    background: linear-gradient(180deg, #ffffff 0%, #eef3f9 100%);
    color: #1f4a87;
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    transition: all 0.15s;
}
.extracto-tb-btn:hover:not(:disabled)[b-19785uasu6] {
    background: linear-gradient(180deg, #f5fbff 0%, #d8ecff 100%);
    border-color: #1f4a87;
}
.extracto-tb-btn:disabled[b-19785uasu6] {
    opacity: 0.45;
    cursor: not-allowed;
    background: #f0f3f8;
}
.extracto-tb-btn.active[b-19785uasu6] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    border-color: #1f4a87;
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.20), 0 1px 2px rgba(0,0,0,0.15);
}
.extracto-tb-btn i[b-19785uasu6] { font-size: 13px; }
.extracto-tb-btn.extracto-tb-excel[b-19785uasu6] {
    background: linear-gradient(180deg, #29a663 0%, #1d6f42 100%);
    border-color: #1d6f42;
    color: #fff;
}
.extracto-tb-btn.extracto-tb-excel:hover:not(:disabled)[b-19785uasu6] {
    background: linear-gradient(180deg, #2fb572 0%, #237a4b 100%);
    border-color: #1d6f42;
}
.extracto-tb-btn.extracto-tb-excel:disabled[b-19785uasu6] {
    background: #b8d8c5;
    border-color: #8aaa97;
}

/* Filter row en modo RANGO: las cols con 2 inputs (desde/hasta) tienen
   más altura y los inputs encima/debajo. */
.extracto-table thead .grid-filter-row.rango th[b-19785uasu6] {
    padding: 4px 4px;
    vertical-align: top;
}
.extracto-table thead .grid-filter-inp.range[b-19785uasu6] {
    height: 20px;
    padding: 0 6px;
    margin-bottom: 2px;
    display: block;
}

.extracto-fecha-bloque[b-19785uasu6] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.extracto-fecha-bloque .lbl[b-19785uasu6] {
    color: #cfd8e3;
    font-size: 11px;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    font-weight: 600;
}
/* CLAUDE.md §1.5 — wrap del input Fecha con icono calendar3 superpuesto
   sobre un <input type="date"> transparente que abre el picker nativo. */
.extracto-fecha-wrap[b-19785uasu6] {
    position: relative;
    display: inline-flex;
    align-items: center;
    width: 116px;
    height: 24px;
}
.extracto-fecha-inp[b-19785uasu6] {
    width: 100%;
    height: 24px;
    padding: 0 28px 0 8px;        /* hueco a la derecha para el icono */
    border: 1px solid rgba(255,255,255,0.30);
    border-radius: 3px;
    font-size: 12px;
    background: rgba(255,255,255,0.95);
    text-align: center;
    outline: none;
    color: #1f2937;
}
.extracto-fecha-icon[b-19785uasu6] {
    position: absolute;
    right: 7px;
    top: 50%;
    transform: translateY(-50%);
    color: #5d6b7d;
    font-size: 13px;
    pointer-events: none;          /* el click cae sobre el overlay */
    z-index: 1;
}
.extracto-fecha-overlay[b-19785uasu6] {
    position: absolute;
    right: 0;
    top: 0;
    width: 24px;
    height: 24px;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}
.extracto-fecha-inp:focus[b-19785uasu6] {
    background: #fff;
    border-color: #fff;
    box-shadow: 0 0 0 2px rgba(255,255,255,0.40);
}
.extracto-fecha-clear[b-19785uasu6] {
    width: 24px; height: 24px;
    display: inline-flex; align-items: center; justify-content: center;
    background: transparent;
    border: 1px solid rgba(255,255,255,0.30);
    border-radius: 3px;
    color: #fff;
    cursor: pointer;
}
.extracto-fecha-clear:hover[b-19785uasu6] { background: rgba(255,255,255,0.15); }

/* ===== Checkbox "Oculta sección y depto." — CLAUDE.md §2.30 ===== */
.extracto-ocultar-secdep[b-19785uasu6] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 8px;
    margin-left: 6px;
    background: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.30);
    border-radius: 3px;
    color: #fff;
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
    transition: background 0.15s;
}
.extracto-ocultar-secdep:hover[b-19785uasu6] { background: rgba(255,255,255,0.20); }
.extracto-ocultar-secdep input[type="checkbox"][b-19785uasu6] {
    margin: 0;
    cursor: pointer;
}

/* ===== Grid read-only =====
   table-layout: fixed + colgroup con %s/px = NO scroll horizontal.
   Las columnas largas usan text-overflow:ellipsis + tooltip nativo
   con el contenido completo. */
.extracto-grid-wrap[b-19785uasu6] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overflow-x: hidden;          /* sin scroll horizontal — todo en pantalla */
    background: #fff;
    border-top: 1px solid #c5cdd9;
    outline: none;               /* sin halo al focus (lo aporta la fila selected) */
}
.extracto-table[b-19785uasu6] {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;         /* respeta colgroup, no se desborda */
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
}
.extracto-table thead[b-19785uasu6] {
    position: sticky;
    top: 0;
    z-index: 5;
    background: #fff;
}
.extracto-table thead th[b-19785uasu6] {
    background: #eef2f7;
    color: #1f4a87;
    font-weight: 700;
    text-align: left;
    padding: 8px 10px;
    border-bottom: 2px solid #1f4a87;
    white-space: nowrap;
    font-size: 11.5px;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}
.extracto-table thead th.num[b-19785uasu6] { text-align: right; }
.extracto-table thead th.sortable[b-19785uasu6] {
    cursor: pointer;
    user-select: none;
}
.extracto-table thead th.sortable:hover[b-19785uasu6] {
    background: #e2e9f3;
}
.extracto-table thead .sort-arrow[b-19785uasu6] {
    color: #1f4a87;
    font-size: 10px;
    margin-left: 2px;
}
.extracto-table thead .grid-filter-row th[b-19785uasu6] {
    background: #f6f9fd;
    padding: 3px 5px;
    border-bottom: 1px solid #d4dae3;
    text-transform: none;
    letter-spacing: 0;
    font-weight: normal;
}
.extracto-table thead .grid-filter-inp[b-19785uasu6] {
    width: 100%;
    height: 22px;
    padding: 0 6px;
    border: 1px solid #c9ced4;
    border-radius: 3px;
    font-size: 11px;
    outline: none;
}
.extracto-table thead .grid-filter-inp.num[b-19785uasu6] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.extracto-table thead .grid-filter-inp:focus[b-19785uasu6] {
    border-color: #3874cb;
    box-shadow: inset 0 0 0 1px #3874cb;
}

/* Filas */
.extracto-table tbody td[b-19785uasu6] {
    padding: 5px 10px;
    border-bottom: 1px solid #eef0f4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}
.extracto-table tbody td.num[b-19785uasu6] { text-align: right; }
.extracto-table tbody tr:nth-child(odd)[b-19785uasu6] { background: #fbfcfe; }
.extracto-table tbody tr:hover[b-19785uasu6] { background: #eef4fc; cursor: pointer; }

/* Fila SELECCIONADA (cliente 2026-05-14 mañana 6) — fondo más fuerte
   y franja lateral azul. scroll-margin-top empuja para que la fila
   quede visible POR DEBAJO del sticky header (2 filas thead = ~46px). */
.extracto-table tbody tr.selected[b-19785uasu6],
.extracto-table tbody tr.selected:nth-child(odd)[b-19785uasu6] {
    background: #d8e8fb;
}
.extracto-table tbody tr.selected td:first-child[b-19785uasu6] {
    box-shadow: inset 3px 0 0 #1f4a87;
}
.extracto-table tbody tr[b-19785uasu6] {
    scroll-margin-top: 56px;
}

.extracto-table tbody tr.row-empty:hover[b-19785uasu6] { background: transparent; cursor: default; }
.extracto-table tbody tr.row-empty td[b-19785uasu6] {
    text-align: center;
    color: #6b7280;
    padding: 36px 10px;
    font-style: italic;
    font-size: 13px;
}

/* ----- Celdas con look propio ----- */
.cell-fecha .fecha-pill[b-19785uasu6] {
    display: inline-block;
    background: #eef2f7;
    color: #1f4a87;
    border: 1px solid #d4dae3;
    border-radius: 11px;
    padding: 2px 8px;
    font-size: 11px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.cell-asiento[b-19785uasu6] {
    color: #5d2880;
    font-weight: 600;
}
.cell-concepto .concepto-tag[b-19785uasu6] {
    display: inline-block;
    background: #f4ecf9;
    color: #5d2880;
    border: 1px solid #e1cef0;
    border-radius: 3px;
    padding: 1px 7px;
    font-size: 11px;
    font-weight: 600;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}
.cell-desc[b-19785uasu6] { color: #1f2937; }
.cell-debe[b-19785uasu6]  { color: #1d6f42; font-weight: 600; }
.cell-haber[b-19785uasu6] { color: #a31f1f; font-weight: 600; }

.cell-saldo[b-19785uasu6] {
    font-weight: 700;
    padding-right: 14px !important;
}
.cell-saldo.saldo-pos[b-19785uasu6]  { color: #1d6f42; }
.cell-saldo.saldo-neg[b-19785uasu6]  { color: #a31f1f; }
.cell-saldo.saldo-zero[b-19785uasu6] { color: #6b7280; }

.cell-apunte[b-19785uasu6]    { color: #6b7280; font-size: 11.5px; }
.cell-contra[b-19785uasu6]    { color: #1f4a87; font-weight: 600; }
.cell-nomcontra[b-19785uasu6] { color: #4a5566; }
.cell-seccion[b-19785uasu6],
.cell-depto[b-19785uasu6]     { color: #6b7280; text-align: center; }

/* ===== Footer ===== */
.extracto-footer[b-19785uasu6] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px;
    background: #f4f6fa;
    border-top: 1px solid #d4dae3;
    flex-shrink: 0;
}
.extracto-footer-spacer[b-19785uasu6] { flex: 1 1 auto; }

.extracto-footer .bbtn[b-19785uasu6] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 5px;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid #c5cdd9;
    background: #fff;
    color: #1f4a87;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: background 0.12s, border-color 0.12s, box-shadow 0.15s;
}
.extracto-footer .bbtn:hover:not(:disabled)[b-19785uasu6] {
    background: #f5f8fc;
    border-color: #1f4a87;
    box-shadow: 0 2px 5px rgba(31,74,135,0.18);
}
.extracto-footer .bbtn:disabled[b-19785uasu6] {
    opacity: 0.55;
    cursor: not-allowed;
    background: #f3f5f8;
}
.extracto-footer .bbtn-extracto-doc[b-19785uasu6]       { color: #1f4a87; }
.extracto-footer .bbtn-extracto-imprimir[b-19785uasu6]  { color: #1d6f42; }
.extracto-footer .bbtn-extracto-imprimir:hover:not(:disabled)[b-19785uasu6] {
    border-color: #1d6f42;
    box-shadow: 0 2px 5px rgba(29,111,66,0.20);
}

/* Botón Salir — patrón Familia A §2.30a: outlined neutro coherente con
   Documento/Imprimir (cliente 2026-05-22). Antes era azul corp sólido,
   demasiado oscuro y desbalanceado al lado de los otros del footer. */
.extracto-footer .bbtn:last-child[b-19785uasu6] {
    background: #fff;
    border-color: #c5cdd9;
    color: #3a4754;
}
.extracto-footer .bbtn:last-child:hover[b-19785uasu6] {
    background: #f5f7fa;
    border-color: #8b95a3;
    color: #1f2937;
    box-shadow: 0 2px 5px rgba(58,71,84,0.15);
}

/* ===== Overlay Vista previa PDF (opción A — cliente 2026-05-16) ========
   Modal que cubre el ExtractoDialog cuando se pulsa Imprimir. El iframe
   PDF ocupa ~85% del espacio disponible para que el usuario pueda leer
   el documento cómodamente sin descargarlo al disco. */
.pdf-preview-backdrop[b-19785uasu6] {
    position: absolute;
    inset: 0;
    background: rgba(15, 30, 55, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 50;
    padding: 24px;
}
.pdf-preview-panel[b-19785uasu6] {
    width: min(1100px, 100%);
    height: min(95%, 95vh);
    background: #f4f6fa;
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.40);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.pdf-preview-header[b-19785uasu6] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 18px;
    background: linear-gradient(135deg, #3a4754 0%, #2b3640 100%);
    color: #fff;
    font-weight: 600;
    font-size: 14px;
}
.pdf-preview-header i.bi-printer-fill[b-19785uasu6] {
    color: #ffd86b;
    font-size: 16px;
}
.pdf-preview-spacer[b-19785uasu6] { flex: 1 1 auto; }
.pdf-preview-close[b-19785uasu6] {
    border: none;
    background: rgba(255, 255, 255, 0.10);
    color: #fff;
    font-size: 20px;
    cursor: pointer;
    width: 28px;
    height: 28px;
    border-radius: 4px;
    line-height: 1;
}
.pdf-preview-close:hover[b-19785uasu6] {
    background: rgba(255, 255, 255, 0.22);
}
.pdf-preview-body[b-19785uasu6] {
    flex: 1 1 auto;
    min-height: 0;
    background: #525659; /* mismo gris del PDF viewer del browser */
    overflow: hidden;
}
.pdf-preview-iframe[b-19785uasu6] {
    width: 100%;
    height: 100%;
    border: none;
    background: #525659;
    display: block;
}
.pdf-preview-footer[b-19785uasu6] {
    padding: 10px 18px;
    background: #fff;
    border-top: 1px solid #e0e6ee;
    display: flex;
    align-items: center;
    gap: 10px;
}

/* ===== Expansor de desglose analítico (DOC 40e — rollout G01 2026-08-15) =====
   En la celda Sección del grid: botoncito que abre la ventana emergente
   <AnaDesgloseDialog> (presentación JJ 2026-08-15) + chip discreto "N secc."
   cuando la línea tiene reparto multi-sección (la vista de línea muestra ''
   y sin el chip parecería que no lleva analítica). Clon del canon
   DiarioApuntes. */
.cell-desglose[b-19785uasu6] {
    white-space: nowrap;
}
.desg-exp-btn[b-19785uasu6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-right: 5px;
    padding: 0;
    background: #eef2f7;
    border: 1px solid #c5cdd9;
    border-radius: 3px;
    color: #2f6ec1;
    font-size: 12px;
    line-height: 1;
    cursor: pointer;
    vertical-align: middle;
}
.desg-exp-btn:hover[b-19785uasu6] { background: #dde8f5; border-color: #9db6d6; }
.desg-exp-btn.open[b-19785uasu6] {
    background: #2f6ec1;
    border-color: #1f4a87;
    color: #fff;
}
.desg-chip[b-19785uasu6] {
    display: inline-block;
    padding: 0 8px;
    border-radius: 9px;
    font-size: 11px;
    font-weight: 600;
    color: #1f4a87;
    background: #e3edf9;
    border: 1px solid #b9d0ec;
    vertical-align: middle;
    white-space: nowrap;
}

/* Columna «Ver» — documentación del asiento (JJ 2026-10-25). El clip es el
   doc-badge canónico §2.26 (app.css global); aquí sólo se centra y se quita
   el aspecto de botón al <button> que lo envuelve. Sin contador del host
   (parámetro ContarDocumentosApuntes) la columna no se pinta. */
.extracto-table th.cell-ver[b-19785uasu6],
.extracto-table td.cell-ver[b-19785uasu6] {
    text-align: center;
    padding-left: 0;
    padding-right: 0;
}
.ver-doc-btn[b-19785uasu6] {
    border: 0;
    background: transparent;
    padding: 0;
    margin: 0;
    line-height: 0;
    cursor: pointer;
    vertical-align: middle;
}
.ver-doc-btn:focus-visible .doc-badge[b-19785uasu6] { outline: 2px solid #7ba4d6; outline-offset: 1px; }
.ver-doc-btn:hover .doc-badge.has-docs[b-19785uasu6] { transform: scale(1.15); }
/* _content/NetOffice.Web.Forms/Components/FacturasDialog.razor.rz.scp.css */
/* FacturasDialog — patrón form_extracto adaptado a libro de facturas
   (CLAUDE.md §2.30-facturas). Mismo lenguaje visual que CarteraDialog
   pero con 3 cajas de totales fijas y botón "Recalcular" en el toolbar. */

.facturas-dialog[b-kspl2tfggo] {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    max-height: 100vh !important;
    top: 0 !important;
    left: 50% !important;
    transform: translate(-50%, 0) !important;
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    display: flex;
    flex-direction: column;
    background: #f4f6fa;
    border: 1px solid #c5cdd9;
    overflow: hidden;
    position: relative;
}

/* ===== Cabecera azul corp ===== */
.facturas-header[b-kspl2tfggo] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%) !important;
    color: #fff !important;
    border-bottom: none !important;
    padding: 12px 18px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.2px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15) !important;
    display: flex;
    align-items: center;
    gap: 12px;
}
.facturas-header > span[b-kspl2tfggo] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #fff !important;
}
.facturas-header .facturas-header-icon[b-kspl2tfggo] {
    color: #fff !important;
    font-size: 16px;
    opacity: 0.95;
}
.facturas-header .lookup-close[b-kspl2tfggo] {
    color: #fff !important;
    background: rgba(255,255,255,0.10) !important;
    border: 1px solid rgba(255,255,255,0.30) !important;
    border-radius: 5px !important;
    width: 28px !important; height: 28px !important;
    margin-left: auto;
}
.facturas-header .lookup-close:hover[b-kspl2tfggo] { background: rgba(255,255,255,0.22) !important; }

.facturas-header strong[b-kspl2tfggo] {
    font-family: inherit;
    font-variant-numeric: tabular-nums;
    font-size: 14px;
    letter-spacing: 0.4px;
    color: #fff !important;
    background: rgba(255,255,255,0.18);
    padding: 2px 10px;
    border-radius: 4px;
    border: 1px solid rgba(255,255,255,0.30);
}
.facturas-header .facturas-header-tipo[b-kspl2tfggo] {
    font-size: 12px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    opacity: 0.90;
    margin-right: 2px;
}
.facturas-header .facturas-header-nombre[b-kspl2tfggo] {
    color: #fff !important;
    font-weight: 500;
    margin-left: 4px;
    opacity: 0.95;
}

.facturas-empresa-bar[b-kspl2tfggo] {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    padding: 4px 12px 4px 6px;
    border: 1px solid;
    border-radius: 18px;
    color: #1a1a1a;
    font-weight: 600;
    font-size: 12.5px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.40);
}
.facturas-empresa-logo[b-kspl2tfggo] {
    width: 22px; height: 22px;
    border-radius: 50%;
    object-fit: cover;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.15);
}
.facturas-empresa-bar i.bi-building[b-kspl2tfggo] {
    width: 22px; height: 22px;
    border-radius: 50%;
    background: rgba(255,255,255,0.5);
    display: inline-flex; align-items: center; justify-content: center;
    color: #1f4a87;
    font-size: 13px;
}
.facturas-empresa-nombre[b-kspl2tfggo] { color: #1a1a1a; font-weight: 700; }
.facturas-empresa-sep[b-kspl2tfggo]    { color: rgba(0,0,0,0.4); margin: 0 2px; }
.facturas-empresa-subt[b-kspl2tfggo]   { color: rgba(0,0,0,0.7); font-weight: 500; font-size: 11.5px; }

.facturas-header-titulo[b-kspl2tfggo] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 auto;
    justify-content: center;
}

/* ===== Tarjetas de totales (3 fijas — Familia A §2.30a) =====
     1.ª Σ FACTURAS  → verde (importe principal, positivo)
     2.ª Σ SUPLIDOS  → azul corp (concepto neutral)
     3.ª Σ RETENCIONES → ámbar (concepto destacado/saldo final) */
.facturas-totales[b-kspl2tfggo] {
    display: flex;
    gap: 14px;
    padding: 14px 20px;
    background: #f7f9fc;
    border-bottom: 1px solid #d4dae3;
    flex-shrink: 0;
}
.facturas-totales .totalbox[b-kspl2tfggo] {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 12px 18px;
    background: #fff;
    border: 1px solid #d4dae3;
    border-left: 4px solid #1f4a87;
    border-radius: 4px;
    box-shadow: 0 1px 2px rgba(15,30,55,0.04);
    transition: box-shadow 0.15s;
}
.facturas-totales .totalbox:hover[b-kspl2tfggo] {
    box-shadow: 0 2px 6px rgba(15,30,55,0.10);
}
.facturas-totales .totalbox-label[b-kspl2tfggo] {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.8px;
    color: #5e6b7c;
    text-transform: uppercase;
}
.facturas-totales .totalbox-value[b-kspl2tfggo] {
    font-size: 22px;
    font-weight: 700;
    color: #1f2937;
    font-variant-numeric: tabular-nums;
    margin-top: 4px;
    line-height: 1.1;
}

.facturas-totales .totalbox:nth-child(1)[b-kspl2tfggo] {
    border-left-color: #29a663;
}
.facturas-totales .totalbox:nth-child(1) .totalbox-label[b-kspl2tfggo] { color: #1d6f42; }
.facturas-totales .totalbox:nth-child(2)[b-kspl2tfggo] {
    border-left-color: #1f4a87;
}
.facturas-totales .totalbox:nth-child(2) .totalbox-label[b-kspl2tfggo] { color: #1f4a87; }
.facturas-totales .totalbox-saldo[b-kspl2tfggo] {
    background: linear-gradient(180deg, #fff8d0 0%, #fff5b3 100%);
    border-color: #d8c270;
    border-left-color: #d8a728;
}
.facturas-totales .totalbox-saldo .totalbox-label[b-kspl2tfggo] { color: #7a5b00; }
.facturas-totales .totalbox-saldo .totalbox-value[b-kspl2tfggo] { color: #4a3a00; }

/* ===== Toolbar slate-titled §2.12.1 ===== */
.facturas-toolbar[b-kspl2tfggo] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 20px;
    background: linear-gradient(180deg, #27548f 0%, #173a6b 100%);
    color: #fff;
    border-left: 4px solid #5fa8ff;
    font-size: 12px;
    text-shadow: 0 1px 0 rgba(0,0,0,0.25);
    flex-shrink: 0;
}
.facturas-toolbar-icon[b-kspl2tfggo] { color: #aac6e8; font-size: 14px; }
.facturas-toolbar-title[b-kspl2tfggo] { font-weight: 700; letter-spacing: 0.6px; font-size: 12.5px; }
.facturas-toolbar-count[b-kspl2tfggo] {
    background: rgba(255,255,255,0.14);
    border: 1px solid rgba(255,255,255,0.22);
    color: #e9f1fc;
    border-radius: 11px;
    padding: 2px 10px;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}
.facturas-toolbar-spacer[b-kspl2tfggo] { flex: 1 1 auto; }

.facturas-tb-buttons[b-kspl2tfggo] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 6px;
    padding-left: 8px;
    border-left: 1px solid rgba(255,255,255,0.18);
}
.facturas-tb-btn[b-kspl2tfggo] {
    height: 26px;
    min-width: 30px;
    padding: 0 8px;
    border: 1px solid #b9c6d6;
    border-radius: 5px;
    background: linear-gradient(180deg, #ffffff 0%, #eef3f9 100%);
    color: #1f4a87;
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    gap: 4px;
    font-size: 11.5px;
    font-weight: 600;
    transition: all 0.15s;
}
.facturas-tb-btn:hover:not(:disabled)[b-kspl2tfggo] {
    background: linear-gradient(180deg, #f5fbff 0%, #d8ecff 100%);
    border-color: #1f4a87;
}
.facturas-tb-btn:disabled[b-kspl2tfggo] {
    opacity: 0.45;
    cursor: not-allowed;
    background: #f0f3f8;
}
.facturas-tb-btn.active[b-kspl2tfggo] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    border-color: #1f4a87;
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.20), 0 1px 2px rgba(0,0,0,0.15);
}
.facturas-tb-btn i[b-kspl2tfggo] { font-size: 13px; }
.facturas-tb-btn.facturas-tb-excel[b-kspl2tfggo] {
    background: linear-gradient(180deg, #29a663 0%, #1d6f42 100%);
    border-color: #1d6f42;
    color: #fff;
}
.facturas-tb-btn.facturas-tb-excel:hover:not(:disabled)[b-kspl2tfggo] {
    background: linear-gradient(180deg, #2fb572 0%, #237a4b 100%);
}
.facturas-tb-btn.facturas-tb-excel:disabled[b-kspl2tfggo] {
    background: #b8d8c5;
    border-color: #8aaa97;
}
.facturas-tb-btn.facturas-tb-recalc[b-kspl2tfggo] {
    background: linear-gradient(180deg, #f0c674 0%, #d8a728 100%);
    border-color: #b08715;
    color: #4a3a00;
}
.facturas-tb-btn.facturas-tb-recalc:hover:not(:disabled)[b-kspl2tfggo] {
    background: linear-gradient(180deg, #f4d390 0%, #e3b840 100%);
    border-color: #806410;
}
.facturas-tb-btn.facturas-tb-recalc:disabled[b-kspl2tfggo] {
    opacity: 0.65;
}

/* Filtro fechas en toolbar */
.facturas-fecha-bloque[b-kspl2tfggo] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.facturas-fecha-bloque .lbl[b-kspl2tfggo] {
    color: #cfd8e3;
    font-size: 11px;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    font-weight: 600;
}
.facturas-fecha-wrap[b-kspl2tfggo] {
    position: relative;
    display: inline-flex;
    align-items: center;
    width: 116px;
    height: 24px;
}
.facturas-fecha-inp[b-kspl2tfggo] {
    width: 100%;
    height: 24px;
    padding: 0 28px 0 8px;
    border: 1px solid rgba(255,255,255,0.30);
    border-radius: 3px;
    font-size: 12px;
    background: rgba(255,255,255,0.95);
    text-align: center;
    outline: none;
    color: #1f2937;
}
.facturas-fecha-icon[b-kspl2tfggo] {
    position: absolute;
    right: 7px;
    top: 50%;
    transform: translateY(-50%);
    color: #5d6b7d;
    font-size: 13px;
    pointer-events: none;
    z-index: 1;
}
.facturas-fecha-overlay[b-kspl2tfggo] {
    position: absolute;
    right: 0;
    top: 0;
    width: 24px;
    height: 24px;
    opacity: 0;
    cursor: pointer;
    z-index: 2;
}
.facturas-fecha-inp:focus[b-kspl2tfggo] {
    background: #fff;
    border-color: #fff;
    box-shadow: 0 0 0 2px rgba(255,255,255,0.40);
}

/* ===== Grid read-only ===== */
.facturas-grid-wrap[b-kspl2tfggo] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    overflow-x: hidden;
    background: #fff;
    border-top: 1px solid #c5cdd9;
    outline: none;
}
.facturas-table[b-kspl2tfggo] {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
}
.facturas-table thead[b-kspl2tfggo] {
    position: sticky;
    top: 0;
    z-index: 5;
    background: #fff;
}
.facturas-table thead th[b-kspl2tfggo] {
    background: #eef2f7;
    color: #1f4a87;
    font-weight: 700;
    text-align: left;
    padding: 8px 10px;
    border-bottom: 2px solid #1f4a87;
    white-space: nowrap;
    font-size: 11.5px;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}
.facturas-table thead th.num[b-kspl2tfggo] { text-align: right; }
.facturas-table thead .grid-filter-row th[b-kspl2tfggo] {
    background: #f6f9fd;
    padding: 3px 5px;
    border-bottom: 1px solid #d4dae3;
    text-transform: none;
    letter-spacing: 0;
    font-weight: normal;
}
.facturas-table thead .grid-filter-inp[b-kspl2tfggo] {
    width: 100%;
    height: 22px;
    padding: 0 6px;
    border: 1px solid #c9ced4;
    border-radius: 3px;
    font-size: 11px;
    outline: none;
}
.facturas-table thead .grid-filter-inp.num[b-kspl2tfggo] {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.facturas-table thead .grid-filter-inp:focus[b-kspl2tfggo] {
    border-color: #3874cb;
    box-shadow: inset 0 0 0 1px #3874cb;
}

.facturas-table tbody td[b-kspl2tfggo] {
    padding: 5px 10px;
    border-bottom: 1px solid #eef0f4;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
}
.facturas-table tbody td.num[b-kspl2tfggo] { text-align: right; }
.facturas-table tbody tr:nth-child(odd)[b-kspl2tfggo] { background: #fbfcfe; }
.facturas-table tbody tr:hover[b-kspl2tfggo] { background: #eef4fc; cursor: pointer; }

.facturas-table tbody tr.selected[b-kspl2tfggo],
.facturas-table tbody tr.selected:nth-child(odd)[b-kspl2tfggo] {
    background: #d8e8fb;
}
.facturas-table tbody tr.selected td:first-child[b-kspl2tfggo] {
    box-shadow: inset 3px 0 0 #1f4a87;
}
.facturas-table tbody tr[b-kspl2tfggo] {
    scroll-margin-top: 56px;
}
.facturas-table tbody tr.facturas-row-empty:hover[b-kspl2tfggo] { background: transparent; cursor: default; }
.facturas-table tbody tr.facturas-row-empty td[b-kspl2tfggo] {
    text-align: center;
    color: #6b7280;
    padding: 36px 10px;
    font-style: italic;
    font-size: 13px;
}
.facturas-table tbody td.cell-num[b-kspl2tfggo] {
    font-weight: 700;
    color: #1f4a87;
}
.facturas-table tbody td.cell-doc[b-kspl2tfggo] {
    font-family: 'Consolas', 'Courier New', monospace;
    color: #1f4a87;
    font-weight: 600;
}
.facturas-table tbody td.cell-concept[b-kspl2tfggo] {
    color: #4b5563;
}
.facturas-table tbody td.cell-total[b-kspl2tfggo] {
    font-weight: 700;
    color: #1d6f42;
}

/* ===== Footer ===== */
.facturas-footer[b-kspl2tfggo] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    background: #fff;
    border-top: 1px solid #d4dae3;
    flex-shrink: 0;
}
.facturas-footer-spacer[b-kspl2tfggo] { flex: 1 1 auto; }

/* Botones del footer — inline-flex horizontal coherente (CLAUDE.md §2.30a).
   Override del `.bbtn` global del RCL (vertical icon-button). */
.facturas-footer .bbtn[b-kspl2tfggo] {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    min-width: 0;
    border-radius: 5px;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid #c5cdd9;
    background: #fff;
    color: #1f4a87;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: background 0.12s, border-color 0.12s, box-shadow 0.15s;
}
.facturas-footer .bbtn i[b-kspl2tfggo] {
    font-size: 13px !important;
    color: inherit !important;
    margin: 0 !important;
}

.facturas-footer .bbtn-facturas-imprimir[b-kspl2tfggo] {
    background: linear-gradient(180deg, #f5fbff 0%, #d8ecff 100%);
    border: 1px solid #7ba4d6;
    color: #1f4a87;
    font-weight: 600;
}
.facturas-footer .bbtn-facturas-imprimir:hover:not(:disabled)[b-kspl2tfggo] {
    background: linear-gradient(180deg, #e6f3ff 0%, #c3def5 100%);
    border-color: #1f4a87;
}
.facturas-footer .bbtn-facturas-imprimir:disabled[b-kspl2tfggo] {
    opacity: 0.55;
    cursor: not-allowed;
}
.facturas-footer .bbtn-facturas-imprimir .spin[b-kspl2tfggo] {
    animation: facturas-spin-b-kspl2tfggo 1s linear infinite;
}

/* Botón Salir — outlined neutro coherente con Familia A §2.30a. */
.facturas-footer .bbtn:last-child[b-kspl2tfggo] {
    background: #fff;
    border-color: #c5cdd9;
    color: #3a4754;
}
.facturas-footer .bbtn:last-child:hover[b-kspl2tfggo] {
    background: #f5f7fa;
    border-color: #8b95a3;
    color: #1f2937;
    box-shadow: 0 2px 5px rgba(58,71,84,0.15);
}
@keyframes facturas-spin-b-kspl2tfggo {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* ===== Overlay PDF preview (clon del extracto/cartera) ===== */
.pdf-preview-backdrop[b-kspl2tfggo] {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.45);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pdf-preview-panel[b-kspl2tfggo] {
    background: #fff;
    width: 92%;
    height: 92%;
    border-radius: 6px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.4);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.pdf-preview-header[b-kspl2tfggo] {
    background: linear-gradient(180deg, #27548f 0%, #173a6b 100%);
    color: #fff;
    padding: 10px 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    border-bottom: 2px solid #5fa8ff;
}
.pdf-preview-spacer[b-kspl2tfggo] { flex: 1 1 auto; }
.pdf-preview-close[b-kspl2tfggo] {
    background: rgba(255,255,255,0.15);
    border: 1px solid rgba(255,255,255,0.30);
    color: #fff;
    width: 28px; height: 28px;
    border-radius: 4px;
    cursor: pointer;
}
.pdf-preview-close:hover[b-kspl2tfggo] { background: rgba(255,255,255,0.30); }
.pdf-preview-body[b-kspl2tfggo] {
    flex: 1 1 auto;
    min-height: 0;
    background: #525659;
}
.pdf-preview-iframe[b-kspl2tfggo] {
    width: 100%;
    height: 100%;
    border: none;
}
.pdf-preview-footer[b-kspl2tfggo] {
    background: #fff;
    border-top: 1px solid #d4dae3;
    padding: 10px 16px;
    display: flex;
    gap: 8px;
}

.spin[b-kspl2tfggo] { animation: facturas-spin-b-kspl2tfggo 1s linear infinite; display: inline-block; }
/* _content/NetOffice.Web.Forms/Components/FechaInput.razor.rz.scp.css */
/* FechaInput — wrap canónico de fecha (CLAUDE.md §1.5).
   El wrap mide el ancho de una fecha (ver NORMA abajo) y el <input> de texto
   hereda ese ancho. El picker nativo va como
   <input type="date"> invisible superpuesto sobre el icono de calendario
   (el click cae en el control nativo → abre el picker como user gesture;
   §1.5 gotcha showPicker en iframes).

   NOTA: no se usa ::deep — todos los elementos (.fecha-input-wrap raíz +
   hijos) viven en ESTE componente y reciben su atributo de scope (§6.8). */

/* NORMA (JJ 2026-11-02): una fecha mide lo que una fecha (dd/mm/aaaa + icono),
   no lo que el hueco que le dejen. Antes era width:100% y en una ficha con
   grid-column:2/-1 la fecha salía como el campo más ancho del formulario; cada
   pantalla tenía que acordarse de acotarla y las que no lo hacían quedaban así.
   max-width:100% la mete en celdas más estrechas (grids). Quien de verdad
   quiera todo el ancho: WrapClass="fecha-ancho-total". */
.fecha-input-wrap[b-7jp8wl5ykf] {
    position: relative;
    display: inline-flex;
    align-items: center;
    width: 8.2rem;
    max-width: 100%;
    flex: 0 0 auto;
    min-width: 0;
    box-sizing: border-box;
    vertical-align: middle;
}

.fecha-input-wrap.fecha-ancho-total[b-7jp8wl5ykf] {
    width: 100%;
    flex: 1 1 auto;
}

.fecha-input-wrap > input[type="text"][b-7jp8wl5ykf] {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
}

/* Hueco para el icono SOLO cuando hay picker (icono + overlay presentes). */
.fecha-input-wrap > input[type="text"]:not(:only-child)[b-7jp8wl5ykf] {
    padding-right: 24px;
}

.fecha-input-icon[b-7jp8wl5ykf] {
    position: absolute;
    right: 7px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 12px;
    color: #1f4a87;
    pointer-events: none;   /* el click pasa al overlay invisible */
    opacity: 0.75;
}

.fecha-input-overlay[b-7jp8wl5ykf] {
    position: absolute;
    right: 0;
    top: 0;
    width: 28px;
    height: 100%;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    opacity: 0;
    cursor: pointer;
}
/* _content/NetOffice.Web.Forms/Components/FirmaDesignerOverlay.razor.rz.scp.css */
/* =============================================================
   FirmaDesignerOverlay — modal pantalla completa scoped CSS.
   ============================================================= */

.firma-designer-backdrop[b-8cev7sa2su] {
    position: fixed;
    inset: 0;
    background: rgba(15, 30, 55, 0.55);
    z-index: 1050;
    animation: firma-designer-fade-b-8cev7sa2su 0.15s ease-out;
}

.firma-designer-overlay[b-8cev7sa2su] {
    position: fixed;
    inset: 24px;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 10px 40px rgba(15, 30, 55, 0.40);
    z-index: 1051;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: firma-designer-pop-b-8cev7sa2su 0.18s ease-out;
}

@keyframes firma-designer-fade-b-8cev7sa2su {
    from { opacity: 0; }
    to   { opacity: 1; }
}
@keyframes firma-designer-pop-b-8cev7sa2su {
    from { opacity: 0; transform: scale(0.98); }
    to   { opacity: 1; transform: scale(1); }
}

.firma-designer-header[b-8cev7sa2su] {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    background: linear-gradient(180deg, #27548f 0%, #173a6b 100%);
    border-bottom: 2px solid #1f4a87;
    color: #fff;
    flex-shrink: 0;
}
.firma-designer-title[b-8cev7sa2su] {
    flex: 1;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.3px;
}
.firma-designer-title i[b-8cev7sa2su] {
    color: #aac6e8;
}
.firma-designer-close[b-8cev7sa2su] {
    background: transparent;
    border: 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
    width: 28px;
    height: 28px;
    padding: 0;
    border-radius: 4px;
    transition: background 0.1s, color 0.1s;
}
.firma-designer-close:hover[b-8cev7sa2su] {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
}

.firma-designer-body[b-8cev7sa2su] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
}
.firma-designer-body > *[b-8cev7sa2su] {
    flex: 1;
    min-width: 0;
    min-height: 0;
}

.firma-designer-footer[b-8cev7sa2su] {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    background: #f5f7fa;
    border-top: 1px solid #d4dae3;
    flex-shrink: 0;
    gap: 16px;
}
.firma-designer-footer-hint[b-8cev7sa2su] {
    flex: 1;
    font-size: 11.5px;
    color: #6c7384;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.firma-designer-footer-hint i[b-8cev7sa2su] {
    color: #1f4a87;
}
.firma-designer-btn[b-8cev7sa2su] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 16px;
    border-radius: 4px;
    border: 1px solid #c5cdd9;
    background: linear-gradient(180deg, #ffffff 0%, #f3f6fa 100%);
    color: #333;
    font-size: 13px;
    cursor: pointer;
    transition: background 0.1s, border-color 0.1s;
}
.firma-designer-btn:hover[b-8cev7sa2su] {
    background: linear-gradient(180deg, #f5fbff 0%, #e0ecf9 100%);
    border-color: #5fa8ff;
}
.firma-designer-btn-aceptar[b-8cev7sa2su] {
    background: linear-gradient(180deg, #3874cb 0%, #1f4a87 100%);
    border-color: #1f4a87;
    color: #fff;
    font-weight: 600;
}
.firma-designer-btn-aceptar:hover[b-8cev7sa2su] {
    background: linear-gradient(180deg, #4d8be0 0%, #2a5a9a 100%);
    border-color: #2a5a9a;
}
/* _content/NetOffice.Web.Forms/Components/FirmaEditorMatricial.razor.rz.scp.css */
/* =============================================================
   FirmaEditorMatricial — scoped CSS (constructor matricial v2).
   ============================================================= */

.firma-ed[b-nkgtdz7rb6] {
    display: grid;
    grid-template-columns: 220px 1fr 300px;
    gap: 8px;
    width: 100%;
    height: 100%;
    min-height: 0;
    background: #fafafa;
    border: 1px solid #d4dae3;
    border-radius: 4px;
    overflow: hidden;
}

/* ===== Sección título común ===== */
.firma-ed-section-title[b-nkgtdz7rb6] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #fff;
    background: linear-gradient(180deg, #27548f 0%, #173a6b 100%);
    border-left: 3px solid #5fa8ff;
    padding: 7px 10px;
    margin-bottom: 6px;
}
.firma-ed-section-title i[b-nkgtdz7rb6] {
    color: #aac6e8;
    font-size: 13px;
}
.firma-ed-section-hint[b-nkgtdz7rb6] {
    font-size: 10.5px;
    color: #6c7384;
    padding: 0 4px 6px 4px;
    font-style: italic;
}

/* ===== Catálogo (izquierda) ===== */
.firma-ed-catalogo[b-nkgtdz7rb6] {
    background: #fff;
    border-right: 1px solid #e0e5ec;
    padding: 0 6px 10px 6px;
    overflow-y: auto;
}
.firma-ed-cat-btn[b-nkgtdz7rb6] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 7px 9px;
    margin: 2px 0;
    background: linear-gradient(180deg, #ffffff 0%, #f3f6fa 100%);
    border: 1px solid #c5cdd9;
    border-radius: 4px;
    color: #1f4a87;
    font-size: 12px;
    cursor: grab;
    user-select: none;
    transition: background 0.1s, border-color 0.1s, box-shadow 0.1s;
}
.firma-ed-cat-btn:hover[b-nkgtdz7rb6] {
    background: linear-gradient(180deg, #f5fbff 0%, #e0ecf9 100%);
    border-color: #5fa8ff;
    box-shadow: 0 1px 2px rgba(31, 74, 135, 0.08);
}
.firma-ed-cat-btn:active[b-nkgtdz7rb6] {
    cursor: grabbing;
}
.firma-ed-cat-btn i[b-nkgtdz7rb6] {
    font-size: 14px;
    width: 18px;
    text-align: center;
    color: #1f4a87;
    flex-shrink: 0;
}
.firma-ed-cat-btn span[b-nkgtdz7rb6] {
    flex: 1;
}
.firma-ed-cat-grip[b-nkgtdz7rb6] {
    opacity: 0.4;
    font-size: 12px !important;
}
.firma-ed-plantilla-btn[b-nkgtdz7rb6],
.firma-ed-matriz-btn[b-nkgtdz7rb6] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 7px 9px;
    margin: 2px 0;
    border: 1px solid #e0c870;
    border-radius: 4px;
    font-size: 12px;
    text-align: left;
    cursor: pointer;
    color: #5a4400;
    background: linear-gradient(180deg, #fff8db 0%, #ffeea3 100%);
}
.firma-ed-plantilla-btn:hover:not(:disabled)[b-nkgtdz7rb6],
.firma-ed-matriz-btn:hover:not(:disabled)[b-nkgtdz7rb6] {
    background: linear-gradient(180deg, #fff3b5 0%, #ffe18a 100%);
    border-color: #c9a700;
}
.firma-ed-plantilla-btn i[b-nkgtdz7rb6],
.firma-ed-matriz-btn i[b-nkgtdz7rb6] {
    font-size: 14px;
    color: #c9a700;
}
.firma-ed-matriz-btn[b-nkgtdz7rb6] {
    background: linear-gradient(180deg, #ffffff 0%, #eaf6ee 100%);
    border-color: #8fc7a4;
    color: #1d6f42;
}
.firma-ed-matriz-btn i[b-nkgtdz7rb6] {
    color: #1d6f42;
}
.firma-ed-matriz-btn:hover:not(:disabled)[b-nkgtdz7rb6] {
    background: linear-gradient(180deg, #eaf6ee 0%, #c8e8d5 100%);
    border-color: #1d6f42;
}
.firma-ed-plantilla-btn:disabled[b-nkgtdz7rb6],
.firma-ed-matriz-btn:disabled[b-nkgtdz7rb6] {
    opacity: 0.5;
    cursor: not-allowed;
}
.firma-ed-matriz-info[b-nkgtdz7rb6] {
    font-size: 11px;
    color: #555;
    text-align: center;
    padding: 4px 0;
    background: #f3f6fa;
    border-radius: 3px;
    margin-bottom: 4px;
}

/* ===== Canvas matriz (centro) ===== */
.firma-ed-canvas[b-nkgtdz7rb6] {
    background:
        radial-gradient(circle at 100% 100%, rgba(95, 140, 200, 0.06) 0%, transparent 55%),
        linear-gradient(135deg, #f6f9fd 0%, #dbe5f1 100%);
    padding: 14px;
    overflow: auto;
    box-shadow: inset 0 1px 2px rgba(15, 30, 55, 0.10);
    position: relative;
}
.firma-ed-canvas-scroll[b-nkgtdz7rb6] {
    position: relative;
    display: inline-block;
    min-width: 100%;
}
.firma-ed-empty[b-nkgtdz7rb6] {
    text-align: center;
    color: #6c7384;
    padding: 60px 20px;
    font-style: italic;
}
.firma-ed-empty i[b-nkgtdz7rb6] {
    font-size: 32px;
    color: #9aa4b3;
    display: block;
    margin-bottom: 10px;
}

/* ===== Tabla matriz ===== */
.firma-ed-matriz[b-nkgtdz7rb6] {
    border-collapse: separate;
    border-spacing: 0;
    background: #fff;
    box-shadow: 0 2px 8px rgba(15, 30, 55, 0.10);
}
.firma-ed-cell[b-nkgtdz7rb6] {
    border: 1px dashed #c5cdd9;
    background: #fff;
    cursor: pointer;
    transition: background 0.1s, border-color 0.1s, box-shadow 0.1s;
    min-height: 50px;
    position: relative;
}
.firma-ed-cell.empty[b-nkgtdz7rb6] {
    background: repeating-linear-gradient(
        45deg,
        #fafcff,
        #fafcff 6px,
        #f0f4fa 6px,
        #f0f4fa 12px);
}
.firma-ed-cell:hover[b-nkgtdz7rb6] {
    border-color: #5fa8ff;
    border-style: solid;
}
.firma-ed-cell.selected[b-nkgtdz7rb6] {
    border: 2px solid #1f4a87;
    background: #fafdff;
    box-shadow: 0 0 0 2px rgba(31, 74, 135, 0.12);
}
.firma-ed-cell-empty[b-nkgtdz7rb6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #9aa4b3;
    font-size: 11px;
    padding: 12px;
    text-align: center;
    min-height: 50px;
}
.firma-ed-cell-empty span[b-nkgtdz7rb6] {
    font-weight: 600;
    color: #5fa8ff;
    font-size: 13px;
}
.firma-ed-cell-empty small[b-nkgtdz7rb6] {
    font-size: 10px;
    margin-top: 2px;
    opacity: 0.7;
    font-style: italic;
}

/* ===== Bloque dentro de celda ===== */
.firma-ed-block[b-nkgtdz7rb6] {
    background: #fff;
    border: 1px solid #c5cdd9;
    border-radius: 3px;
    margin: 0 0 4px 0;
    cursor: grab;
    transition: border-color 0.1s, box-shadow 0.1s;
}
.firma-ed-block:hover[b-nkgtdz7rb6] {
    border-color: #5fa8ff;
}
.firma-ed-block.selected[b-nkgtdz7rb6] {
    border: 2px solid #1f4a87;
    box-shadow: 0 0 0 2px rgba(31, 74, 135, 0.12);
}
.firma-ed-block:active[b-nkgtdz7rb6] {
    cursor: grabbing;
}
.firma-ed-block-handle[b-nkgtdz7rb6] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    background: linear-gradient(180deg, #f8fafd 0%, #eaf0f8 100%);
    border-bottom: 1px solid #e0e5ec;
    border-radius: 2px 2px 0 0;
    font-size: 11px;
    color: #1f4a87;
    font-weight: 600;
}
.firma-ed-block-handle i[b-nkgtdz7rb6] {
    color: #1f4a87;
}
.firma-ed-block-handle span[b-nkgtdz7rb6] {
    flex: 1;
}
.firma-ed-block-del[b-nkgtdz7rb6] {
    background: transparent;
    border: 1px solid transparent;
    border-radius: 3px;
    color: #555;
    cursor: pointer;
    padding: 1px 4px;
    line-height: 1;
    font-size: 11px;
}
.firma-ed-block-del:hover:not(:disabled)[b-nkgtdz7rb6] {
    background: #ffe5e5;
    border-color: #c62828;
    color: #c62828;
}
.firma-ed-block-preview[b-nkgtdz7rb6] {
    padding: 6px 8px;
    font-size: 11.5px;
    color: #444;
    line-height: 1.4;
    word-break: break-word;
}

/* ===== Gutters / handles de resize ===== */
.firma-ed-gutter-row > td[b-nkgtdz7rb6] {
    padding: 0;
    border: 0;
    height: 4px;
}
.firma-ed-gutter-h[b-nkgtdz7rb6] {
    height: 4px;
    background: transparent;
    cursor: row-resize;
    border-top: 1px dashed transparent;
    border-bottom: 1px dashed transparent;
    transition: background 0.1s, border-color 0.1s;
}
.firma-ed-gutter-h:hover[b-nkgtdz7rb6] {
    background: rgba(95, 140, 200, 0.20);
    border-color: #5fa8ff;
}
.firma-ed-gutters-v[b-nkgtdz7rb6] {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    pointer-events: none;
}
.firma-ed-gutter-v[b-nkgtdz7rb6] {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 7px;
    cursor: col-resize;
    pointer-events: auto;
    border-left: 1px dashed transparent;
    border-right: 1px dashed transparent;
    transition: background 0.1s, border-color 0.1s;
    z-index: 5;
}
.firma-ed-gutter-v:hover[b-nkgtdz7rb6] {
    background: rgba(95, 140, 200, 0.20);
    border-color: #5fa8ff;
}

/* ===== Panel propiedades (derecha) ===== */
.firma-ed-props[b-nkgtdz7rb6] {
    background: #fff;
    border-left: 1px solid #e0e5ec;
    padding: 0 10px 10px 10px;
    overflow-y: auto;
}
.firma-ed-props-empty[b-nkgtdz7rb6] {
    text-align: center;
    color: #6c7384;
    padding: 30px 10px;
    font-style: italic;
}
.firma-ed-props-empty i[b-nkgtdz7rb6] {
    font-size: 24px;
    color: #9aa4b3;
    display: block;
    margin-bottom: 8px;
}
.firma-ed-prop[b-nkgtdz7rb6] {
    margin-bottom: 10px;
}
.firma-ed-prop label[b-nkgtdz7rb6] {
    display: block;
    font-size: 11px;
    font-weight: 600;
    color: #555;
    margin-bottom: 3px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
.firma-ed-prop-input[b-nkgtdz7rb6] {
    width: 100%;
    height: 24px;
    border: 1px solid #c5cdd9;
    border-radius: 3px;
    padding: 0 6px;
    font-size: 12px;
    font-family: inherit;
    background: #fff;
    box-sizing: border-box;
}
.firma-ed-prop-input:focus[b-nkgtdz7rb6] {
    outline: none;
    border-color: #3874cb;
    box-shadow: 0 0 0 2px rgba(31, 74, 135, 0.16);
}
.firma-ed-prop-textarea[b-nkgtdz7rb6] {
    height: auto;
    min-height: 60px;
    padding: 4px 6px;
    line-height: 1.4;
    resize: vertical;
}
.firma-ed-prop-color[b-nkgtdz7rb6] {
    width: 32px;
    height: 24px;
    border: 1px solid #c5cdd9;
    border-radius: 3px;
    padding: 0;
    cursor: pointer;
    background: #fff;
}
.firma-ed-prop-check label[b-nkgtdz7rb6] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    cursor: pointer;
}
.firma-ed-prop-hint[b-nkgtdz7rb6] {
    font-size: 11px;
    color: #6c7384;
    font-style: italic;
    padding-top: 6px;
    border-top: 1px dashed #d4dae3;
    margin-top: 10px;
}
.firma-ed-prop-sub[b-nkgtdz7rb6] {
    margin-top: 14px;
    padding-top: 10px;
    border-top: 1px dashed #d4dae3;
}
.firma-ed-prop-sub-title[b-nkgtdz7rb6] {
    font-size: 11px;
    font-weight: 600;
    color: #555;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}
.firma-ed-prop-row[b-nkgtdz7rb6] {
    display: flex;
    gap: 4px;
    align-items: center;
    margin-bottom: 4px;
}
.firma-ed-prop-input-small[b-nkgtdz7rb6] {
    width: 90px;
    flex-shrink: 0;
}
.firma-ed-prop-input-grow[b-nkgtdz7rb6] {
    flex: 1;
    min-width: 0;
}
.firma-ed-prop-add[b-nkgtdz7rb6] {
    display: block;
    width: 100%;
    margin-top: 6px;
    padding: 5px 8px;
    background: linear-gradient(180deg, #ffffff 0%, #eaf6ee 100%);
    border: 1px dashed #8fc7a4;
    border-radius: 3px;
    color: #1d6f42;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
}
.firma-ed-prop-add:hover:not(:disabled)[b-nkgtdz7rb6] {
    background: linear-gradient(180deg, #eaf6ee 0%, #c8e8d5 100%);
    border-color: #1d6f42;
    border-style: solid;
}
.firma-ed-icon-btn[b-nkgtdz7rb6] {
    background: transparent;
    border: 1px solid transparent;
    border-radius: 3px;
    color: #555;
    cursor: pointer;
    padding: 2px 6px;
    font-size: 11px;
    line-height: 1;
}
.firma-ed-icon-btn-danger:hover:not(:disabled)[b-nkgtdz7rb6] {
    background: #ffe5e5;
    border-color: #c62828;
    color: #c62828;
}
/* _content/NetOffice.Web.Forms/Components/FormatoEnsenarBoton.razor.rz.scp.css */
.fe-ens[b-v9jx91ntz8] { border: 1px solid #d9a73b; background: #fde7b0; color: #6b4b0c; font-weight: 700; border-radius: 6px; padding: 6px 12px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; font-size: 12.5px; }
.fe-ens:hover:not(:disabled)[b-v9jx91ntz8] { background: #f8d98a; }
.fe-ens:disabled[b-v9jx91ntz8] { opacity: .5; cursor: not-allowed; }
.fe-ens-on[b-v9jx91ntz8] { background: #d48a12; border-color: #b57409; color: #fff; }
.fe-ens-on:hover:not(:disabled)[b-v9jx91ntz8] { background: #b57409; }
/* _content/NetOffice.Web.Forms/Components/FormatoFicheroEnsenar.razor.rz.scp.css */
/* Banda «CÓMO SE LEE EL FICHERO» — misma estética que nació en el importador del
   surtidor (tarjeta blanca, banda ámbar). Scoped: no depende del CSS de la pantalla. */
.fe-col[b-ay658yv4cb] { display: flex; flex-direction: column; background: #fff; border: 1px solid #c5cdd9; border-radius: 8px; overflow: hidden; flex: 0 0 auto; font-size: 12.5px; color: #23344a; }
.fe-band[b-ay658yv4cb] { display: flex; align-items: center; gap: 8px; padding: 6px 10px; min-height: 32px; color: #fff; font-weight: 700; font-size: 11.5px; letter-spacing: .06em; white-space: nowrap; background: #8a6a1f; }
.fe-band-sub[b-ay658yv4cb] { font-weight: 500; letter-spacing: 0; font-size: 12px; opacity: .95; white-space: normal; }

.fe-grid[b-ay658yv4cb] { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 14px; padding: 10px 12px; }
.fe-campo[b-ay658yv4cb] { display: grid; grid-template-columns: 1fr auto; gap: 3px 6px; align-items: center; padding: 6px 8px; border: 1px solid #e6ebf1; border-radius: 6px; background: #fafbfd; }
.fe-campo.falta[b-ay658yv4cb] { border-color: #e3a5a5; background: #fff6f6; }
.fe-campo label[b-ay658yv4cb] { grid-column: 1 / -1; font-size: 11px; font-weight: 700; color: #5d6b80; text-transform: uppercase; letter-spacing: .03em; margin: 0; }
.fe-campo label b[b-ay658yv4cb] { color: #a31f1f; margin-left: 2px; }
.fe-campo .inp[b-ay658yv4cb] { height: 28px; padding: 2px 6px; border: 1px solid #c5cdd9; border-radius: 5px; font-size: 12.5px; color: #23344a; background: #fff; min-width: 0; }
.fe-campo select.inp[b-ay658yv4cb] { grid-column: 1; width: 100%; }
.fe-campo .fe-dec[b-ay658yv4cb] { width: 54px; }
.fe-campo .fe-fmt[b-ay658yv4cb] { grid-column: 1 / -1; }
.fe-ej[b-ay658yv4cb] { grid-column: 1 / -1; color: #5d6b80; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: Consolas, monospace; }

.fe-pie[b-ay658yv4cb] { display: flex; align-items: center; gap: 12px; padding: 6px 12px 10px; flex-wrap: wrap; }
.fe-spacer[b-ay658yv4cb] { flex: 1; }
.fe-check[b-ay658yv4cb] { display: flex; align-items: center; gap: 6px; cursor: pointer; white-space: nowrap; margin: 0; }
.fe-btn[b-ay658yv4cb] { border: 1px solid #c5cdd9; background: #fff; border-radius: 6px; padding: 6px 12px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; color: #23344a; white-space: nowrap; }
.fe-btn:disabled[b-ay658yv4cb] { opacity: .5; cursor: not-allowed; }
.fe-btn-pri[b-ay658yv4cb] { background: #2c66ad; border-color: #2c66ad; color: #fff; font-weight: 600; }
.fe-btn-pri:hover:not(:disabled)[b-ay658yv4cb] { background: #245892; }

@media (max-width: 1200px) { .fe-grid[b-ay658yv4cb] { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* _content/NetOffice.Web.Forms/Components/FormConfigDialog.razor.rz.scp.css */
/* FormConfigDialog — estilos scoped.
   Las clases .lookup-dialog/.lookup-backdrop/.lookup-header/.lookup-footer
   viven en el wwwroot/app.css de cada host (igual que HelpDialog y
   LookupDialog). Aquí solo lo específico de la configuración del
   formulario.

   El componente es admin-only — usa el mismo color azul corporativo
   (#1f4a87) que HelpDialog para integrarse visualmente. */

[b-6ejk48tsl6] .form-config-dialog {
    max-width: 760px;
    max-height: 86vh;
}

.form-config-body[b-6ejk48tsl6] {
    padding: 12px 16px;
    overflow-y: auto;
    max-height: calc(86vh - 110px);
    font-size: 13px;
    color: #1f2937;
}

.form-config-loading[b-6ejk48tsl6] {
    text-align: center;
    padding: 24px;
    color: #6b7280;
    font-size: 14px;
}

.form-config-loading i[b-6ejk48tsl6] {
    animation: fc-spin-b-6ejk48tsl6 1s linear infinite;
    margin-right: 6px;
    color: #1f4a87;
}

@keyframes fc-spin-b-6ejk48tsl6 {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.fc-section[b-6ejk48tsl6] {
    margin-bottom: 18px;
}

.fc-section h4[b-6ejk48tsl6] {
    font-size: 13px;
    margin: 0 0 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid #d6dde7;
    color: #1f4a87;
    font-weight: 600;
}

.fc-row[b-6ejk48tsl6] {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 6px;
}

.fc-lbl[b-6ejk48tsl6] {
    min-width: 80px;
    font-weight: 500;
}

.fc-radio[b-6ejk48tsl6] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    user-select: none;
}

.fc-radio input[type="radio"][b-6ejk48tsl6] {
    margin: 0;
}

.fc-select[b-6ejk48tsl6] {
    border: 1px solid #c9ced4;
    border-radius: 3px;
    padding: 3px 6px;
    font-size: 13px;
    min-width: 240px;
    background: #fff;
}

.fc-select-sm[b-6ejk48tsl6] {
    min-width: 160px;
    font-size: 12px;
}

.fc-hint[b-6ejk48tsl6] {
    margin: 6px 0 0;
    padding: 8px 10px;
    background: #f3f6fb;
    border-left: 3px solid #1f4a87;
    border-radius: 3px;
    font-size: 12px;
    color: #374151;
}

.fc-hint i[b-6ejk48tsl6] {
    color: #1f4a87;
    margin-right: 4px;
}

.fc-table[b-6ejk48tsl6] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.fc-table thead th[b-6ejk48tsl6] {
    background: #eef1f6;
    color: #1f4a87;
    font-weight: 600;
    padding: 4px 8px;
    text-align: left;
    border-bottom: 1px solid #c9ced4;
    position: sticky;
    top: 0;
    z-index: 1;
}

.fc-table .fc-th-flag[b-6ejk48tsl6] {
    text-align: center;
    width: 90px;
}

.fc-table tbody td[b-6ejk48tsl6] {
    padding: 4px 8px;
    border-bottom: 1px solid #ebeef2;
}

.fc-table tbody tr:hover[b-6ejk48tsl6] {
    background: #fafbfd;
}

.fc-td-flag[b-6ejk48tsl6] {
    text-align: center;
}

.fc-na[b-6ejk48tsl6] {
    color: #9ca3af;
}

.fc-tag[b-6ejk48tsl6] {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    background: #fff8e1;
    border: 1px solid #d8b765;
    border-radius: 8px;
    font-size: 10px;
    color: #5b4710;
    white-space: nowrap;
    cursor: help;
}

.fc-mensaje[b-6ejk48tsl6] {
    margin-top: 12px;
    padding: 8px 12px;
    border-radius: 3px;
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.fc-mensaje-ok[b-6ejk48tsl6] {
    background: #ecfdf3;
    border-left: 3px solid #2a8a3e;
    color: #14532d;
}

.fc-mensaje-error[b-6ejk48tsl6] {
    background: #fef2f2;
    border-left: 3px solid #c62828;
    color: #7f1d1d;
}
/* _content/NetOffice.Web.Forms/Components/GastosOperacionDialog.razor.rz.scp.css */
/* Albaranes de gasto del viaje / pedido (DOC 53).
   Chrome heredado de `lookup-dialog` + banda slate del grid "titled" (§2.12.1).
   El selector raíz va SIN ::deep (si no, no matchea el propio elemento). */

.go-dialog[b-zkhnuvco40] {
    width: min(1720px, 97vw);
    max-height: 90vh;
    display: flex;
    flex-direction: column;
}

/* ── Cabecera de contexto ─────────────────────────────────────────────────── */
.go-ctx[b-zkhnuvco40] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 10px;
    padding: 7px 12px;
    background: #f3f6fa;
    border-bottom: 1px solid #d8dfe8;
    font-size: .78rem;
}

.go-clbl[b-zkhnuvco40] {
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: .03em;
    font-size: .68rem;
    font-weight: 600;
}

.go-cval[b-zkhnuvco40] {
    font-weight: 600;
    color: #1e293b;
    background: #fff;
    border: 1px solid #dde4ec;
    border-radius: 3px;
    padding: 1px 7px;
    max-width: 210px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.go-cval-wide[b-zkhnuvco40] { max-width: 260px; }

.go-error[b-zkhnuvco40] {
    margin: 6px 12px 0;
    padding: 6px 10px;
    border-radius: 4px;
    background: #fdecec;
    border: 1px solid #f3b7b7;
    color: #a11;
    font-size: .8rem;
}

/* ── Cuerpo + grid ────────────────────────────────────────────────────────── */
.go-body[b-zkhnuvco40] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1 1 auto;
    padding: 8px 12px 0;
}

.go-gridtitle[b-zkhnuvco40] {
    background: #334155;
    color: #f1f5f9;
    font-size: .74rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 4px 10px;
    border-radius: 4px 4px 0 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.go-gridhint[b-zkhnuvco40] {
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    color: #cbd5e1;
    font-size: .7rem;
}

.go-gridwrap[b-zkhnuvco40] {
    overflow: auto;
    min-height: 120px;
    max-height: 52vh;
    border: 1px solid #cbd5e1;
    border-top: 0;
}

/* El ancho total del grid supera casi siempre el viewport: scrollea DENTRO de
   su contenedor, nunca el diálogo entero. */
.go-grid[b-zkhnuvco40] { min-width: 1500px; }

.go-grid[b-zkhnuvco40]  th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.go-grid[b-zkhnuvco40]  tr.row-sel > td { background: #e8f0fb; }

/* Una línea FACTURADA es read-only: se ve de un vistazo que no se toca. */
.go-grid[b-zkhnuvco40]  tr.go-ro > td { background: #f6f7f9; }
.go-grid[b-zkhnuvco40]  tr.go-ro input { color: #64748b; }

.go-th-est[b-zkhnuvco40], .go-th-chk[b-zkhnuvco40] { width: 34px; text-align: center; }
.go-th-del[b-zkhnuvco40] { width: 28px; }

.go-est[b-zkhnuvco40], .go-chk[b-zkhnuvco40], .go-del[b-zkhnuvco40] { text-align: center; }

.go-imp[b-zkhnuvco40] {
    font-weight: 700;
    color: #0f766e;
    padding-right: 6px;
}

/* ── Sello del estado / procedencia ───────────────────────────────────────── */
.go-sello[b-zkhnuvco40] {
    display: inline-block;
    font-size: .95rem;
    line-height: 1;
    cursor: help;
}

.go-sello-real[b-zkhnuvco40] { color: #15803d; }        /* ● con factura detrás */
.go-sello-anotado[b-zkhnuvco40] { color: #b45309; }     /* ◐ lo tecleó un humano */
.go-sello-estimado[b-zkhnuvco40] { color: #64748b; }    /* ○ propuesta del motor */
.go-sello-sin-base[b-zkhnuvco40] { color: #b91c1c; }    /* ✕ no hay importe: NO es un cero */

/* ── Precio + chip del motor de aprendizaje ───────────────────────────────── */
.go-precio-cell[b-zkhnuvco40] { white-space: nowrap; }

.go-precio[b-zkhnuvco40] { width: 78px; }

.go-chip[b-zkhnuvco40] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-left: 4px;
    padding: 1px 6px;
    border-radius: 9px;
    font-size: .67rem;
    font-weight: 600;
    cursor: pointer;
    vertical-align: middle;
    border: 1px solid transparent;
}

.go-chip-ok[b-zkhnuvco40] { background: #e7f3ff; color: #1d4ed8; border-color: #bfdbfe; }
/* Referencia antigua: se propone igual, pero el gestor tiene que saberlo. */
.go-chip-viejo[b-zkhnuvco40] { background: #fff5e6; color: #b45309; border-color: #fcd9a5; }
.go-chip-nada[b-zkhnuvco40] { background: #f1f5f9; color: #64748b; border-color: #e2e8f0; }

/* ── Barra inferior ───────────────────────────────────────────────────────── */
.go-bar[b-zkhnuvco40] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 2px;
}

.go-spacer[b-zkhnuvco40] { flex: 1 1 auto; }

.go-tot[b-zkhnuvco40] {
    font-size: .78rem;
    color: #475569;
    padding: 2px 9px;
    border-radius: 4px;
    background: #f1f5f9;
}

.go-tot b[b-zkhnuvco40] { color: #1e293b; }

.go-tot-pend b[b-zkhnuvco40] { color: #b45309; }
.go-tot-real b[b-zkhnuvco40] { color: #15803d; }

.go-tot-big[b-zkhnuvco40] {
    font-size: .9rem;
    background: #1e293b;
    color: #cbd5e1;
}

.go-tot-big b[b-zkhnuvco40] { color: #fff; font-size: 1rem; }

/* ── Confirmaciones y detalle de observaciones ────────────────────────────── */
.go-confirm[b-zkhnuvco40] { width: min(520px, 92vw); }

.go-confirm-body[b-zkhnuvco40] { padding: 14px 16px; font-size: .85rem; color: #334155; }

.go-confirm-btns[b-zkhnuvco40] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 10px 14px;
    border-top: 1px solid #e2e8f0;
}

.go-btn-danger[b-zkhnuvco40] { background: #b91c1c; color: #fff; border-color: #991b1b; }
.go-btn-ok[b-zkhnuvco40] { background: #15803d; color: #fff; border-color: #166534; }

.go-obs[b-zkhnuvco40] { width: min(880px, 94vw); max-height: 80vh; }

.go-obs-body[b-zkhnuvco40] { overflow: auto; padding: 8px 12px 14px; max-height: 66vh; }

.go-obs-vacio[b-zkhnuvco40] { color: #64748b; font-size: .82rem; margin: 12px 4px; }

/* Una observación descartada (poda de atípicos, cuarentena, sustituida por su
   factura) se MARCA, no se esconde: la trazabilidad completa es lo que hace
   que un gestor se atreva a aceptar la sugerencia. */
.go-obs-body[b-zkhnuvco40]  tr.go-obs-out {
    opacity: .55;
    text-decoration: line-through;
}
/* _content/NetOffice.Web.Forms/Components/GridColumnFilter.razor.rz.scp.css */
/* GridColumnFilter — filtro por columna (CLAUDE.md §2.8). CSS scoped: viaja
   con el componente a cualquier host que lo use. La fila de filtros del grid
   debe alinear arriba (`vertical-align: top`) para que las columnas en modo
   "contiene" (1 input) no se descuadren respecto a las de rango (2 inputs) —
   esa regla, al tocar el <th> ancestro, vive en el app.css del RCL (§6.9). */

.col-filter[b-mdd30q3avc] {
    display: flex;
    align-items: flex-start;
    gap: 2px;
    min-width: 0;
}

.col-filter > .grid-filter-inp[b-mdd30q3avc] {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
}

.col-filter-inps[b-mdd30q3avc] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.col-filter-inps > .grid-filter-inp[b-mdd30q3avc] {
    width: 100%;
    min-width: 0;
}

/* Botón de modo — cápsula pequeña a la izquierda del/los input(s). */
.col-filter-mode[b-mdd30q3avc] {
    flex: 0 0 16px;
    width: 16px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid #c5cdd9;
    border-radius: 3px;
    background: linear-gradient(180deg, #ffffff 0%, #eef3f9 100%);
    color: #1f4a87;
    cursor: pointer;
    transition: all 0.1s;
}

.col-filter-mode:hover[b-mdd30q3avc] {
    border-color: #5fa8ff;
    background: linear-gradient(180deg, #fbfdff 0%, #e6f1ff 100%);
}

.col-filter-mode.on[b-mdd30q3avc] {
    background: linear-gradient(180deg, #3874cb 0%, #1f4a87 100%);
    border-color: #1f4a87;
    color: #fff;
}

.col-filter-mode i[b-mdd30q3avc] {
    font-size: 9px;
    line-height: 1;
}

/* ── Variante COMPACTA (Opción A, cliente 2026-07-07) ──────────────────────
   El input llena la celda; el toggle de rango es un icono tenue superpuesto a
   la derecha del input, que se revela al hover/focus de la celda. En columnas
   de texto (PermiteRango=false) no hay icono → input totalmente limpio. */
.col-filter-cmp[b-mdd30q3avc] {
    display: block;
    position: relative;
    min-width: 0;
}
.col-filter-cmp .col-filter-wrap[b-mdd30q3avc],
.col-filter-cmp .col-filter-inps[b-mdd30q3avc] {
    position: relative;
    min-width: 0;
}
.col-filter-cmp .col-filter-inps[b-mdd30q3avc] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
/* Hueco a la derecha SOLO cuando hay icono, para que el texto no quede debajo. */
.col-filter-cmp .grid-filter-inp.has-fab[b-mdd30q3avc] { padding-right: 15px; }

/* Icono de modo superpuesto (funnel = pasar a rango / sliders = volver). */
.col-filter-fab[b-mdd30q3avc] {
    position: absolute;
    top: 1px;
    right: 1px;
    width: 14px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: none;
    background: transparent;
    color: #8a97a6;
    cursor: pointer;
    opacity: 0.30;                 /* tenue en reposo, sin robar atención */
    z-index: 21;                   /* por encima del handle de resize (§2.15, z:20) */
    transition: opacity 0.12s, color 0.12s;
}
.col-filter-cmp:hover .col-filter-fab[b-mdd30q3avc],
.col-filter-cmp:focus-within .col-filter-fab[b-mdd30q3avc] {
    opacity: 1;
    color: #1f4a87;
}
.col-filter-fab.on[b-mdd30q3avc] {                /* rango activo: siempre visible y marcado */
    opacity: 1;
    color: #1f4a87;
}
.col-filter-fab i[b-mdd30q3avc] {
    font-size: 9px;
    line-height: 1;
}

/* ── Columna BOOLEANA (norma 2026-08-26, columna «Doc.» y hermanas) ─────────
   Ciclador de 3 estados en lugar del input de texto. Mismo alto que el
   .grid-filter-inp de al lado para que la fila de filtros no baile. */
.col-filter-bool[b-mdd30q3avc] { width: 100%; }

.col-filter-bool-btn[b-mdd30q3avc] {
    width: 100%;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border: 1px solid #c9ced4;
    border-radius: 4px;
    background: #fff;
    color: #8a95a1;              /* estado "todos": tenue, no filtra */
    font-size: 10px;
    cursor: pointer;
    padding: 0 4px;
    white-space: nowrap;
    overflow: hidden;
}
.col-filter-bool-btn:hover[b-mdd30q3avc] { border-color: #9fb6d4; background: #f4f8fd; }
.col-filter-bool-btn i[b-mdd30q3avc] { font-size: 11px; }
.col-filter-bool-btn.si[b-mdd30q3avc] { color: #1e7e34; border-color: #86c99a; background: #f0faf3; }
.col-filter-bool-btn.no[b-mdd30q3avc] { color: #b23c3c; border-color: #d8a3a3; background: #fdf3f3; }
/* _content/NetOffice.Web.Forms/Components/GuiaProcesoOverlay.razor.rz.scp.css */
/* Guiado in-app "Sabor B" — spotlight + burbuja. El "agujero" oscurece todo
   menos el elemento resaltado (box-shadow gigante); pointer-events:none deja
   interactuar con el elemento real debajo. */

.gp-hole[b-kfu543jgmy] {
    position: fixed;
    border-radius: 10px;
    box-shadow: 0 0 0 9999px rgba(20, 34, 52, 0.62);
    outline: 3px solid #ffd14a;
    outline-offset: 2px;
    pointer-events: none;
    transition: left 0.25s ease, top 0.25s ease, width 0.25s ease, height 0.25s ease;
    z-index: 12000;
}

.gp-bubble[b-kfu543jgmy] {
    position: fixed;
    z-index: 12001;
    width: 340px;
    max-width: calc(100vw - 32px);
    background: #fff;
    border-radius: 12px;
    padding: 14px 16px;
    box-shadow: 0 16px 44px rgba(20, 34, 52, 0.34);
    font-family: "Segoe UI", system-ui, Arial, sans-serif;
    color: #1c2b3a;
}

.gp-bubble.gp-centered[b-kfu543jgmy] {
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}

.gp-step[b-kfu543jgmy] {
    font-size: 11px;
    color: #7a4ec7;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}

.gp-bubble h4[b-kfu543jgmy] {
    margin: 0.3em 0 0.35em;
    font-size: 15.5px;
    color: #1f4a87;
}

.gp-bubble p[b-kfu543jgmy] {
    margin: 0;
    font-size: 13px;
    line-height: 1.45;
    color: #445;
}

.gp-bubble .gp-aviso[b-kfu543jgmy] {
    margin-top: 8px;
    color: #b06a00;
    font-size: 12.5px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.gp-mode[b-kfu543jgmy] {
    display: flex;
    gap: 6px;
    margin: 12px 0 4px;
    background: #f1f5fa;
    border-radius: 9px;
    padding: 4px;
}

.gp-mode button[b-kfu543jgmy] {
    flex: 1;
    border: 0;
    background: transparent;
    padding: 7px;
    border-radius: 7px;
    font-size: 12px;
    cursor: pointer;
    color: #6b7a8d;
}

.gp-mode button.on[b-kfu543jgmy] {
    background: #fff;
    color: #1f4a87;
    font-weight: 700;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.10);
}

.gp-act[b-kfu543jgmy] {
    margin-top: 11px;
    display: flex;
    gap: 8px;
    align-items: center;
}

.gp-act .gp-next[b-kfu543jgmy] {
    margin-left: auto;
    border: 0;
    background: linear-gradient(135deg, #7a4ec7, #2f5fb0);
    color: #fff;
    border-radius: 8px;
    padding: 8px 14px;
    font-size: 13px;
    cursor: pointer;
    font-weight: 600;
}

.gp-act .gp-ghost[b-kfu543jgmy] {
    border: 1px solid #dde5ee;
    background: #eef2f7;
    color: #556;
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 13px;
    cursor: pointer;
}

.gp-act .gp-x[b-kfu543jgmy] {
    border: 0;
    background: transparent;
    color: #94a3b5;
    font-size: 12.5px;
    cursor: pointer;
    padding: 6px 4px;
}

.gp-act .gp-x:hover[b-kfu543jgmy] {
    color: #d6453d;
}
/* _content/NetOffice.Web.Forms/Components/HelpDialog.razor.rz.scp.css */
/* HelpDialog — estilos scoped del componente.
   Las clases base (.lookup-dialog, .ayuda-dialog, .lookup-backdrop, .lookup-header,
   .lookup-close, .lookup-footer) viven en el wwwroot/app.css de cada host —
   las heredamos. Aquí solo añadimos lo específico del cuerpo de la ayuda
   (atajos, ejemplos de filtros, secciones). */

.help-body[b-ep14qscrj7] {
    line-height: 1.45;
    font-size: 13px;
    padding: 12px 16px;
    color: #1f2937;
}

.help-intro[b-ep14qscrj7] {
    margin: 0 0 14px;
    padding: 10px 12px;
    background: #f3f6fb;
    border-left: 3px solid #1f4a87;
    border-radius: 3px;
    color: #1f2937;
}

.help-section[b-ep14qscrj7] {
    margin-bottom: 16px;
}

.help-section h3[b-ep14qscrj7] {
    font-size: 13px;
    margin: 0 0 6px;
    padding-bottom: 4px;
    border-bottom: 1px solid #d6dde7;
    color: #1f4a87;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 6px;
}

.help-section h3 i[b-ep14qscrj7] {
    color: #1f4a87;
    font-size: 14px;
}

.help-section h4[b-ep14qscrj7] {
    font-size: 12px;
    margin: 8px 0 4px;
    color: #374151;
    font-weight: 600;
}

.help-section p[b-ep14qscrj7] {
    margin: 4px 0 6px;
}

.help-section ul[b-ep14qscrj7] {
    margin: 4px 0 6px;
    padding-left: 18px;
}

.help-section ul li[b-ep14qscrj7] {
    margin: 2px 0;
}

.help-note[b-ep14qscrj7] {
    background: #fff8e1;
    border-left: 3px solid #c69026;
    padding: 6px 10px;
    border-radius: 3px;
    color: #5b4710;
    font-size: 12px;
}

/* Tabla de atajos: kbd a la izquierda, descripción a la derecha. */
.help-shortcuts[b-ep14qscrj7] {
    border-collapse: collapse;
    width: 100%;
}

.help-shortcuts td[b-ep14qscrj7] {
    padding: 3px 8px;
    vertical-align: top;
}

.help-shortcuts td:first-child[b-ep14qscrj7] {
    width: 110px;
    white-space: nowrap;
}

.help-shortcuts kbd[b-ep14qscrj7] {
    display: inline-block;
    background: #f5f5f5;
    border: 1px solid #c9ced4;
    border-bottom-width: 2px;
    border-radius: 3px;
    padding: 1px 6px;
    font-family: Consolas, Menlo, monospace;
    font-size: 11px;
    color: #2a2a2a;
    min-width: 16px;
    text-align: center;
}

/* Tabla de botones: icono+nombre a la izquierda, qué hace a la derecha. */
.help-buttons[b-ep14qscrj7] {
    border-collapse: collapse;
    width: 100%;
}

.help-buttons td[b-ep14qscrj7] {
    padding: 3px 8px;
    vertical-align: top;
}

.help-buttons td:first-child[b-ep14qscrj7] {
    width: 130px;
    white-space: nowrap;
    font-weight: 500;
}

.help-buttons td:first-child i[b-ep14qscrj7] {
    margin-right: 4px;
}

/* Lista de ejemplos del filtro: code en monoespaciada con fondo sutil. */
.help-examples li code[b-ep14qscrj7] {
    background: #f3f4f6;
    border: 1px solid #e1e5eb;
    border-radius: 3px;
    padding: 0 4px;
    font-family: Consolas, Menlo, monospace;
    font-size: 12px;
    color: #1f4a87;
}

/* Modal más alto que el resto para que quepa todo el contenido sin scroll
   excesivo. La clase .ayuda-dialog del host fija una altura máxima; aquí
   ampliamos un poco el max-height y forzamos overflow del body. */
[b-ep14qscrj7] .ayuda-dialog {
    max-width: 720px;
    max-height: 86vh;
}

[b-ep14qscrj7] .ayuda-dialog .ayuda-body {
    overflow-y: auto;
    max-height: calc(86vh - 110px);
}
/* _content/NetOffice.Web.Forms/Components/MapaDialog.razor.rz.scp.css */
.mapa-backdrop[b-6i8dx185ot] {
    position: fixed;
    inset: 0;
    background: rgba(15, 30, 55, .45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1200;
}

.mapa-box[b-6i8dx185ot] {
    width: 94vw;
    height: 90vh;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 18px 50px rgba(10, 25, 60, .35);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.mapa-head[b-6i8dx185ot] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: #2f6ec1;
    color: #fff;
    font-weight: 600;
}

.mapa-head .bi[b-6i8dx185ot] { margin-right: 6px; }

.mapa-x[b-6i8dx185ot] {
    background: transparent;
    border: none;
    color: #fff;
    cursor: pointer;
    font-size: 1rem;
    padding: 2px 6px;
    border-radius: 5px;
}

.mapa-x:hover[b-6i8dx185ot] { background: rgba(255, 255, 255, .18); }

/* Barra superior: buscador prominente (mitad izquierda) + dirección de la
   coordenada localizada (mitad derecha). */
.mapa-search[b-6i8dx185ot] {
    display: flex; align-items: center; gap: 14px;
    padding: 10px 14px; border-bottom: 1px solid #d7e2f0; background: #f6f9fd;
}

.mapa-search-box[b-6i8dx185ot] {
    position: relative;
    display: flex; align-items: center; gap: 8px;
    flex: 0 1 50%; min-width: 320px;
    background: #fff;
    border: 1px solid #b9cadf;
    border-radius: 8px;
    padding: 5px 6px 5px 12px;
    box-shadow: 0 2px 8px rgba(20, 45, 90, .08);
}

.mapa-search-box:focus-within[b-6i8dx185ot] {
    border-color: #2f6ec1;
    box-shadow: 0 0 0 3px rgba(47, 110, 193, .15);
}

.mapa-search-ico[b-6i8dx185ot] { color: #2f6ec1; font-size: 1rem; flex: 0 0 auto; }

.mapa-search-inp[b-6i8dx185ot] {
    flex: 1 1 auto; min-width: 0; border: none; outline: none;
    padding: 5px 4px; font-size: .92rem; background: transparent;
}

.mapa-btn.lupa[b-6i8dx185ot] {
    background: #2f6ec1; border-color: #2a62ad; color: #fff;
    flex: 0 0 auto;
}
.mapa-btn.lupa:hover[b-6i8dx185ot] { background: #2a62ad; }

/* Desplegable de sugerencias (5 máx.) bajo el buscador. */
.mapa-sug[b-6i8dx185ot] {
    position: absolute;
    top: calc(100% + 4px); left: 0; right: 0;
    z-index: 40;
    margin: 0; padding: 4px 0;
    list-style: none;
    background: #fff;
    border: 1px solid #c7d2e0;
    border-radius: 8px;
    box-shadow: 0 10px 26px rgba(15, 40, 80, .2);
    font-size: .88rem;
}

.mapa-sug li[b-6i8dx185ot] {
    padding: 8px 12px; cursor: pointer;
    display: flex; align-items: center; gap: 8px;
    color: #24425e;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.mapa-sug li .bi[b-6i8dx185ot] { color: #3b78c3; flex: 0 0 auto; }

.mapa-sug li:hover[b-6i8dx185ot] { background: #f2f7fd; }
.mapa-sug li.sel[b-6i8dx185ot] { background: #eaf2fb; box-shadow: inset 3px 0 0 #2f6ec1; }

/* Dirección de la coordenada localizada (reverse) — mitad derecha. */
.mapa-search-dir[b-6i8dx185ot] {
    flex: 1 1 auto; min-width: 0;
    display: flex; align-items: center; gap: 8px;
    padding: 8px 12px;
    background: #eef4fc;
    border: 1px solid #d3e0f0;
    border-radius: 8px;
    font-size: .86rem;
    color: #24425e;
}

.mapa-search-dir .bi[b-6i8dx185ot] { color: #c5221f; flex: 0 0 auto; }

.mapa-search-dir .dir-txt[b-6i8dx185ot] {
    font-weight: 600;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.mapa-search-dir .dir-txt.hint[b-6i8dx185ot] { font-weight: 400; color: #7d94ad; font-style: italic; }

.mapa-body[b-6i8dx185ot] { flex: 1 1 auto; position: relative; min-height: 0; }

.mapa-canvas[b-6i8dx185ot],
.mapa-frame[b-6i8dx185ot] {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

.mapa-foot[b-6i8dx185ot] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    border-top: 1px solid #e2e8f2;
    background: #f6f9fd;
}

.mapa-coords[b-6i8dx185ot] {
    font-size: .82rem;
    color: #33506e;
    margin-right: auto;
}

.mapa-btn[b-6i8dx185ot] {
    border: 1px solid #c4d2e4;
    background: #fff;
    color: #2b4a68;
    padding: 6px 14px;
    border-radius: 6px;
    cursor: pointer;
    font-size: .84rem;
}

.mapa-btn:hover[b-6i8dx185ot] { background: #eef4fc; }

.mapa-btn.ok[b-6i8dx185ot] {
    background: #2f8f4e;
    border-color: #2a7f46;
    color: #fff;
}

.mapa-btn.ok:hover[b-6i8dx185ot] { background: #278043; }

/* «Validar posición» (JJ 2026-09-12): MISMO aspecto que «Validar ruta» de
   RutaMapaDialog — verde oscuro + escudo, el gesto fuerte del gestor. */
.mapa-btn.validar[b-6i8dx185ot] {
    background: #1b5e20;
    border-color: #164e1a;
    color: #fff;
}

.mapa-btn.validar:hover[b-6i8dx185ot] { background: #144718; }

/* Posición ya validada: verde FRANCO (el del camión validado del itinerario y
   del trazado verde de la ruta) — se ve de un vistazo que el gestor dio su OK. */
.mapa-btn.validado[b-6i8dx185ot] {
    background: linear-gradient(180deg, #2e9e50 0%, #1e7a3c 100%);
    border-color: #166a30;
    color: #fff;
    font-weight: 600;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .25);
}

.mapa-btn.validado:hover[b-6i8dx185ot] { background: linear-gradient(180deg, #37b25b 0%, #238a45 100%); }
/* _content/NetOffice.Web.Forms/Components/MejorarTextoIaDialog.razor.rz.scp.css */
/* ===== Modal "Mejorar texto con IA" — scoped CSS =====================
   Layout 3 columnas: original | instrucción | resultado.
   Ancho 90% del viewport, alto 80%. Sandbox-style dialog (sin iframe).
   ===================================================================== */

.mejorar-ia-dialog[b-2u4xo7mkjc] {
    width: 92vw;
    max-width: 1200px;
    height: 82vh;
    max-height: 800px;
    display: flex;
    flex-direction: column;
    /* Capa MÁXIMA de la cadena de modales (2026-07-06): puede abrirse desde
       el editor RichTextField (1110), que a su vez puede vivir dentro de un
       .lookup-dialog (1102) — la IA siempre delante. */
    z-index: 1200;
}
.mejorar-ia-backdrop[b-2u4xo7mkjc] { z-index: 1195; }

.mejorar-ia-body[b-2u4xo7mkjc] {
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: 1fr 320px 1fr;
    gap: 14px;
    padding: 14px;
    overflow: hidden;
    min-height: 0;
}

.mejorar-ia-col[b-2u4xo7mkjc] {
    display: flex;
    flex-direction: column;
    min-height: 0;
    min-width: 0;
}

.mejorar-ia-col-mid[b-2u4xo7mkjc] {
    border-left: 1px solid #d6dde6;
    border-right: 1px solid #d6dde6;
    padding: 0 12px;
}

.mejorar-ia-col-lbl[b-2u4xo7mkjc] {
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #4a5566;
    padding: 4px 0 6px 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.mejorar-ia-col-lbl i[b-2u4xo7mkjc] { color: #1f4a87; }

.mejorar-ia-col-lbl-sub[b-2u4xo7mkjc] {
    margin-top: 10px;
    text-transform: none;
    letter-spacing: 0.1px;
    font-size: 11px;
    color: #6b7a8c;
}

.mejorar-ia-text[b-2u4xo7mkjc] {
    flex: 1 1 auto;
    border: 1px solid #c9ced4;
    border-radius: 4px;
    background: #fff;
    padding: 12px 14px;
    overflow: auto;
    min-height: 0;
    font-family: "Segoe UI", system-ui, sans-serif;
    font-size: 13px;
    line-height: 1.45;
    color: #222;
}

.mejorar-ia-text pre[b-2u4xo7mkjc] {
    margin: 0;
    font-family: Consolas, "SF Mono", monospace;
    font-size: 12px;
    white-space: pre-wrap;
    word-wrap: break-word;
}

.mejorar-ia-text-readonly[b-2u4xo7mkjc] {
    background: #fafbfc;
}

.mejorar-ia-empty[b-2u4xo7mkjc],
.mejorar-ia-loading[b-2u4xo7mkjc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #8694a7;
    font-style: italic;
    font-size: 13px;
}

.mejorar-ia-empty i[b-2u4xo7mkjc],
.mejorar-ia-loading i[b-2u4xo7mkjc] {
    font-size: 28px;
    color: #b9c6d6;
}

.mejorar-ia-spin[b-2u4xo7mkjc] {
    animation: mejorar-ia-spin-b-2u4xo7mkjc 1s linear infinite;
}
@keyframes mejorar-ia-spin-b-2u4xo7mkjc {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.mejorar-ia-presets[b-2u4xo7mkjc] {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-bottom: 6px;
}

.mejorar-ia-preset[b-2u4xo7mkjc] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 11px;
    border: 1px solid #c9d3e0;
    border-radius: 5px;
    background: linear-gradient(180deg, #ffffff 0%, #f3f7fb 100%);
    color: #2b3640;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.12s ease;
    text-align: left;
}
.mejorar-ia-preset i[b-2u4xo7mkjc] { color: #1f4a87; font-size: 13px; }
.mejorar-ia-preset:hover:not(:disabled)[b-2u4xo7mkjc] {
    background: linear-gradient(180deg, #f5fbff 0%, #d8ecff 100%);
    border-color: #5fa8ff;
}
.mejorar-ia-preset.active[b-2u4xo7mkjc] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    border-color: #1f4a87;
    box-shadow: 0 1px 2px rgba(31,74,135,0.30), inset 0 1px 0 rgba(255,255,255,0.25);
}
.mejorar-ia-preset.active i[b-2u4xo7mkjc] { color: #aac6e8; }
.mejorar-ia-preset:disabled[b-2u4xo7mkjc] { opacity: 0.55; cursor: not-allowed; }

.mejorar-ia-prompt[b-2u4xo7mkjc] {
    flex: 0 0 auto;
    width: 100%;
    min-height: 70px;
    max-height: 140px;
    resize: vertical;
    border: 1px solid #c9ced4;
    border-radius: 4px;
    padding: 8px 10px;
    font-family: "Segoe UI", system-ui, sans-serif;
    font-size: 13px;
    line-height: 1.4;
    background: #fff;
}
.mejorar-ia-prompt:focus[b-2u4xo7mkjc] {
    outline: none;
    border-color: #1f4a87;
    box-shadow: 0 0 0 2px rgba(31,74,135,0.15);
}
.mejorar-ia-prompt:disabled[b-2u4xo7mkjc] { background: #f3f5f8; color: #555; }

.mejorar-ia-go[b-2u4xo7mkjc] {
    flex: 0 0 auto;
    margin-top: 10px;
    padding: 9px 14px;
    border: 1px solid #1f4a87;
    border-radius: 5px;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.20);
    transition: all 0.12s ease;
}
.mejorar-ia-go:hover:not(:disabled)[b-2u4xo7mkjc] {
    background: linear-gradient(180deg, #3874cb 0%, #2a5fa8 100%);
}
.mejorar-ia-go:disabled[b-2u4xo7mkjc] { opacity: 0.55; cursor: not-allowed; }

.mejorar-ia-banner[b-2u4xo7mkjc] {
    margin-top: 10px;
    padding: 8px 10px;
    border-radius: 4px;
    font-size: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.mejorar-ia-banner.error[b-2u4xo7mkjc] {
    background: #fdecec;
    border: 1px solid #e6b4b4;
    color: #a31f1f;
}
.mejorar-ia-banner.error i[b-2u4xo7mkjc] { color: #c62828; }

.mejorar-ia-uso[b-2u4xo7mkjc] {
    flex: 0 0 auto;
    margin-top: 6px;
    padding: 6px 8px;
    font-size: 11px;
    color: #6b7a8c;
    background: #f3f6fa;
    border: 1px solid #e2e8f0;
    border-radius: 3px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.mejorar-ia-uso i[b-2u4xo7mkjc] { color: #c9a700; }

.mejorar-ia-footer[b-2u4xo7mkjc] {
    flex: 0 0 auto;
    padding: 10px 14px;
    border-top: 1px solid #d6dde6;
    background: #f7f9fc;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

.mejorar-ia-footer .bbtn[b-2u4xo7mkjc] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border: 1px solid #c9ced4;
    border-radius: 4px;
    background: #fff;
    color: #2b3640;
    font-size: 13px;
    cursor: pointer;
}
.mejorar-ia-footer .bbtn:hover:not(:disabled)[b-2u4xo7mkjc] {
    background: #f1f7ff;
    border-color: #7ba4d6;
}
.mejorar-ia-footer .bbtn:disabled[b-2u4xo7mkjc] { opacity: 0.55; cursor: not-allowed; }

.mejorar-ia-footer .bbtn-primary[b-2u4xo7mkjc] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    border-color: #1f4a87;
    color: #fff;
}
.mejorar-ia-footer .bbtn-primary:hover:not(:disabled)[b-2u4xo7mkjc] {
    background: linear-gradient(180deg, #3874cb 0%, #2a5fa8 100%);
}

/* Responsive: en pantallas estrechas colapsar a 1 columna apilada. */
@media (max-width: 1100px) {
    .mejorar-ia-body[b-2u4xo7mkjc] { grid-template-columns: 1fr; }
    .mejorar-ia-col-mid[b-2u4xo7mkjc] { border-left: none; border-right: none; padding: 0; border-top: 1px solid #d6dde6; border-bottom: 1px solid #d6dde6; padding: 10px 0; }
}
/* _content/NetOffice.Web.Forms/Components/NotasDialog.razor.rz.scp.css */
/* NotasDialog — patrón form_notas (CLAUDE.md §2.29).
   Rediseño 2026-05-14: lenguaje "tarjetas" estilo modal de Trabajos —
   cabecera azul corporativa, fondo blanco general, dos cards (Informe +
   Anotaciones) con barra de título coloreada en la parte superior, sin
   bandas slate ni dividers oscuros. El cliente prefiere este diseño al
   slate-titled para esta pantalla concreta. */

.notas-dialog[b-5xkjtns3ba] {
    width: min(960px, 96vw);
    height: min(740px, 92vh);
    display: flex;
    flex-direction: column;
    background: #f4f6fa;          /* fondo claro detrás de las cards */
    border: 1px solid #c5cdd9;
    border-radius: 6px;
    overflow: hidden;
}

/* ----- Cabecera del modal — azul corp gradient (estilo "Trabajo #N") ----- */
[b-5xkjtns3ba] .notas-dialog .lookup-header {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    border-bottom: none;
    padding: 12px 18px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.2px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
[b-5xkjtns3ba] .notas-dialog .lookup-header span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #fff;
}
[b-5xkjtns3ba] .notas-dialog .lookup-header .bi {
    color: #fff !important;
    font-size: 16px;
    margin-right: 4px !important;
}
[b-5xkjtns3ba] .notas-dialog .lookup-close {
    color: #fff;
    background: rgba(255,255,255,0.10);
    border: 1px solid rgba(255,255,255,0.30);
    border-radius: 5px;
    width: 28px; height: 28px;
    line-height: 1;
    transition: background 0.15s;
}
[b-5xkjtns3ba] .notas-dialog .lookup-close:hover { background: rgba(255,255,255,0.22); }

/* ----- Body: panel claro contenedor de cards ----- */
.notas-body[b-5xkjtns3ba] {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 16px 18px 0 18px;
    overflow: hidden;
}

/* ===== Card "Informe principal" (azul) ===================================
   Patrón: tarjeta blanca con barra de título superior coloreada + icono +
   título en blanco. Sin border-left lateral (el cliente prefiere el banner
   horizontal completo, más nítido en pantallas grandes). */
.notas-informe-panel[b-5xkjtns3ba] {
    flex: 0 0 38%;
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: #fff;
    border: 1px solid #d4dae3;
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(15,30,55,0.04), 0 0 0 1px rgba(15,30,55,0.02);
    overflow: hidden;
}

.notas-section-header[b-5xkjtns3ba] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    font-weight: 600;
    letter-spacing: 0.4px;
    font-size: 12.5px;
    text-shadow: 0 1px 0 rgba(0,0,0,0.18);
    flex-shrink: 0;
}
.notas-section-header i[b-5xkjtns3ba] {
    color: #fff;
    font-size: 14px;
    opacity: 0.95;
}
.notas-section-header .notas-dirty-pill[b-5xkjtns3ba] {
    margin-left: auto;
    color: #ffd54f;
    font-size: 16px;
    line-height: 1;
    text-shadow: 0 0 4px rgba(255,213,79,0.6);
}

.notas-informe-textarea[b-5xkjtns3ba] {
    flex: 1 1 auto;
    width: 100%;
    border: none;
    padding: 12px 14px;
    font-family: inherit;
    font-size: 13px;
    line-height: 1.5;
    resize: none;
    outline: none;
    background: #fff;
    color: #1f2937;
    /* Líneas largas tal cual + scrollbar horizontal cuando haga falta. */
    white-space: pre;
    overflow: auto;
    word-wrap: normal;
    overflow-wrap: normal;
}
.notas-informe-textarea:focus[b-5xkjtns3ba] {
    background: #fbfdff;
    box-shadow: inset 0 0 0 2px #2f6ec1;
}
.notas-informe-textarea[b-5xkjtns3ba]::placeholder {
    color: #9ca3af;
    font-style: italic;
}

.notas-informe-actions[b-5xkjtns3ba] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: #f9fafc;
    border-top: 1px solid #e5e9ee;
    flex-shrink: 0;
}
.notas-informe-actions .notas-msg[b-5xkjtns3ba] {
    flex: 1 1 auto;
    font-size: 12px;
    padding: 4px 10px;
    border-radius: 4px;
    font-weight: 500;
}
.notas-informe-actions .notas-msg.ok[b-5xkjtns3ba]    { background: #e7f6ec; color: #1d6f42; }
.notas-informe-actions .notas-msg.error[b-5xkjtns3ba] { background: #fdecea; color: #a31f1f; }

/* ===== Card "Anotaciones fechadas" (morado — discriminador de card) =======
   Mismo lenguaje pero acento morado para distinguir visualmente del informe.
   Replica el banner de "COMENTARIO TÉCNICO" del modal de Trabajos. */
.notas-grid-panel[b-5xkjtns3ba] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: #fff;
    border: 1px solid #d4dae3;
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(15,30,55,0.04), 0 0 0 1px rgba(15,30,55,0.02);
    overflow: hidden;
}

.notas-grid-toolbar[b-5xkjtns3ba] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    background: linear-gradient(180deg, #7e3ea8 0%, #5d2880 100%);
    color: #fff;
    flex-shrink: 0;
}
.notas-toolbar-icon[b-5xkjtns3ba] {
    color: #fff;
    font-size: 14px;
    opacity: 0.95;
}
.notas-toolbar-title[b-5xkjtns3ba] {
    font-weight: 600;
    letter-spacing: 0.4px;
    font-size: 12.5px;
    text-shadow: 0 1px 0 rgba(0,0,0,0.20);
}
.notas-toolbar-count[b-5xkjtns3ba] {
    font-size: 11px;
    background: rgba(255,255,255,0.18);
    border: 1px solid rgba(255,255,255,0.28);
    border-radius: 11px;
    padding: 2px 9px;
    color: #fff;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.notas-toolbar-spacer[b-5xkjtns3ba] { flex: 1 1 auto; }

.notas-filter-inp[b-5xkjtns3ba] {
    height: 26px;
    padding: 2px 10px;
    border-radius: 4px;
    border: 1px solid rgba(255,255,255,0.40);
    background: rgba(255,255,255,0.95);
    color: #2b3640;
    font-size: 12px;
    min-width: 240px;
    transition: background 0.15s, box-shadow 0.15s;
}
.notas-filter-inp:focus[b-5xkjtns3ba] {
    outline: none;
    background: #fff;
    border-color: #fff;
    box-shadow: 0 0 0 2px rgba(255,255,255,0.50);
}

.notas-tb-btn[b-5xkjtns3ba] {
    width: 30px;
    height: 26px;
    border: 1px solid rgba(255,255,255,0.40);
    border-radius: 4px;
    background: rgba(255,255,255,0.92);
    color: #5d2880;
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    transition: background 0.12s, box-shadow 0.12s;
}
.notas-tb-btn:hover:not(:disabled)[b-5xkjtns3ba] {
    background: #fff;
    border-color: #fff;
    box-shadow: 0 0 0 2px rgba(255,255,255,0.45);
}
.notas-tb-btn:disabled[b-5xkjtns3ba] { opacity: 0.55; cursor: not-allowed; }

.notas-tb-btn-add[b-5xkjtns3ba] {
    background: linear-gradient(180deg, #ffffff 0%, #ecfaf0 100%);
    border-color: rgba(255,255,255,0.45);
    color: #1d6f42;
    font-weight: 700;
}
.notas-tb-btn-add:hover:not(:disabled)[b-5xkjtns3ba] {
    background: #fff;
    box-shadow: 0 0 0 2px rgba(41,166,99,0.40);
}

.notas-empty[b-5xkjtns3ba] {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #6b7280;
    font-size: 13px;
    padding: 36px 24px;
    text-align: center;
    background: #fff;
}
.notas-empty i[b-5xkjtns3ba] { font-size: 22px; opacity: 0.45; color: #7e3ea8; }

.notas-grid-scroll[b-5xkjtns3ba] {
    flex: 1 1 auto;
    overflow: auto;
    background: #fff;
}

.notas-grid[b-5xkjtns3ba] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}
.notas-grid thead th[b-5xkjtns3ba] {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #f4ecf9;
    color: #5d2880;
    text-align: left;
    padding: 8px 10px;
    border-bottom: 1px solid #d8c5e7;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}
.notas-grid tbody td[b-5xkjtns3ba] {
    padding: 8px 10px;
    border-bottom: 1px solid #f0eef4;
    vertical-align: top;
}
.notas-grid tbody tr[b-5xkjtns3ba] {
    cursor: pointer;
    transition: background 0.12s;
}
.notas-grid tbody tr:hover[b-5xkjtns3ba]    { background: #faf5fd; }
.notas-grid tbody tr.selected[b-5xkjtns3ba] { background: #f3e7fa; }
/* Zebra suave para mejorar lectura cuando hay muchas anotaciones. */
.notas-grid tbody tr:not(.selected):nth-child(even):not(:hover)[b-5xkjtns3ba] {
    background: #fbfafd;
}

.notas-grid .col-fecha[b-5xkjtns3ba] {
    width: 116px;
    color: #5d2880;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.notas-grid .col-usuario[b-5xkjtns3ba]  {
    width: 130px;
    color: #4a5566;
    font-weight: 500;
}
.notas-grid .col-texto[b-5xkjtns3ba]    { color: #1f2937; line-height: 1.45; }
.notas-grid .col-acciones[b-5xkjtns3ba] { width: 92px; text-align: right; white-space: nowrap; }

.notas-preview[b-5xkjtns3ba] {
    display: block;
    line-height: 1.45;
}

/* CLAUDE.md §1.5 — entrada compacta DDMMYY parseada on blur. */
.notas-edit-fecha-wrap[b-5xkjtns3ba] {
    position: relative;
    display: inline-flex;
    align-items: center;
    width: 120px;
    height: 26px;
}
.notas-edit-fecha[b-5xkjtns3ba] {
    width: 100%;
    height: 26px;
    padding: 2px 28px 2px 8px;
    border: 1px solid #c9ced4;
    border-radius: 4px;
    font-family: inherit;
    font-size: 12.5px;
    outline: none;
    background: #fff;
}
.notas-edit-fecha:focus[b-5xkjtns3ba] {
    border-color: #7e3ea8;
    box-shadow: inset 0 0 0 1px #7e3ea8;
}
.notas-edit-fecha-icon[b-5xkjtns3ba] {
    position: absolute;
    right: 7px;
    top: 50%;
    transform: translateY(-50%);
    color: #7e3ea8;
    font-size: 13px;
    pointer-events: none;
}
.notas-edit-fecha-overlay[b-5xkjtns3ba] {
    position: absolute;
    right: 0;
    top: 0;
    width: 26px;
    height: 26px;
    opacity: 0;
    cursor: pointer;
}

.notas-edit-textarea[b-5xkjtns3ba] {
    width: 100%;
    min-height: 90px;
    padding: 8px 10px;
    border: 1px solid #7e3ea8;
    border-radius: 4px;
    font-family: inherit;
    font-size: 13px;
    line-height: 1.5;
    resize: vertical;
    outline: none;
    background: #fefaff;
    box-shadow: inset 0 0 0 1px #7e3ea8, 0 0 0 2px rgba(126,62,168,0.18);
    /* Líneas largas tal cual con scrollbar horizontal — el cliente puede
       pegar IBANs/rutas largas. */
    white-space: pre;
    overflow: auto;
    word-wrap: normal;
    overflow-wrap: normal;
}

.notas-row-btn[b-5xkjtns3ba] {
    width: 26px;
    height: 24px;
    border: 1px solid #d4dae3;
    border-radius: 4px;
    background: #fff;
    color: #5d2880;
    cursor: pointer;
    margin-left: 3px;
    display: inline-flex; align-items: center; justify-content: center;
    transition: background 0.12s, box-shadow 0.12s;
}
.notas-row-btn:hover[b-5xkjtns3ba]    { background: #f4ecf9; box-shadow: 0 0 0 2px rgba(126,62,168,0.18); }
.notas-row-btn.ok[b-5xkjtns3ba]       { color: #1d6f42; border-color: #b8dcc7; }
.notas-row-btn.ok:hover[b-5xkjtns3ba] { background: #eaf6ee; box-shadow: 0 0 0 2px rgba(29,111,66,0.22); }
.notas-row-btn.cancel[b-5xkjtns3ba]   { color: #6b7280; }
.notas-row-btn.danger[b-5xkjtns3ba]   { color: #a31f1f; }
.notas-row-btn.danger:hover[b-5xkjtns3ba] { background: #fdecea; box-shadow: 0 0 0 2px rgba(217,79,79,0.22); border-color: #f0b8b8; }
.notas-row-btn i[b-5xkjtns3ba] { font-size: 12px; }

/* ===== Footer ===== */
.notas-footer[b-5xkjtns3ba] {
    display: flex;
    justify-content: flex-end;
    padding: 12px 18px 14px 18px;
    gap: 10px;
    background: #f4f6fa;
    border-top: 1px solid #e5e9ee;
}

/* ===== Botones de acción del modal — clases propias (notas-action-btn) === */
.notas-action-btn[b-5xkjtns3ba] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 34px;
    padding: 0 18px;
    border-radius: 5px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    border: 1px solid;
    cursor: pointer;
    white-space: nowrap;
    transition: filter 0.12s, transform 0.08s, box-shadow 0.15s;
}
.notas-action-btn i[b-5xkjtns3ba] { font-size: 14px; line-height: 1; margin: 0; }
.notas-action-btn span[b-5xkjtns3ba] { line-height: 1; }
.notas-action-btn:disabled[b-5xkjtns3ba] { opacity: 0.45; cursor: not-allowed; }
.notas-action-btn:active:not(:disabled)[b-5xkjtns3ba] { transform: translateY(1px); }

/* Primario: Guardar informe — verde corp. */
.notas-action-primary[b-5xkjtns3ba] {
    background: linear-gradient(180deg, #29a663 0%, #1d6f42 100%);
    border-color: #1d6f42;
    color: #fff;
    text-shadow: 0 1px 0 rgba(0,0,0,0.20);
    box-shadow: 0 1px 3px rgba(29,111,66,0.30),
                inset 0 1px 0 rgba(255,255,255,0.20);
}
.notas-action-primary:hover:not(:disabled)[b-5xkjtns3ba] {
    background: linear-gradient(180deg, #2fb572 0%, #237a4b 100%);
    box-shadow: 0 2px 6px rgba(29,111,66,0.40),
                inset 0 1px 0 rgba(255,255,255,0.25);
}

/* Secundario: Descartar / Cerrar. */
.notas-action-secondary[b-5xkjtns3ba] {
    background: #fff;
    border-color: #c5cdd9;
    color: #2b3640;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.notas-action-secondary:hover:not(:disabled)[b-5xkjtns3ba] {
    background: #f5f8fc;
    border-color: #1f4a87;
    color: #1f4a87;
}

/* ===== Responsive: viewports estrechos ===== */
@media (max-height: 700px) {
    .notas-informe-panel[b-5xkjtns3ba] { flex: 0 0 30%; }
    .notas-body[b-5xkjtns3ba] { gap: 10px; padding: 12px 14px 0 14px; }
    .notas-section-header[b-5xkjtns3ba],
    .notas-grid-toolbar[b-5xkjtns3ba] { padding: 8px 12px; }
}
/* _content/NetOffice.Web.Forms/Components/OperativoPills.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════════════
   OperativoPills — CSS canónico del filtro operativo/no-operativo.

   Pastillas blancas sobre banda OSCURA (ContextoBar slate / titlebar oscuro):
   chip blanco translúcido con texto azul; activo = gradiente azul + texto
   blanco; badge de conteo con fondo suave. Copiado 1:1 del patrón validado
   en CuentaEditor (Clientes / Plan Contable), 2026-05-12.

   Estas reglas viajan con el componente (CSS isolation del RCL) — cualquier
   host que lo consuma hereda el aspecto sin tocar su app.css.
   ═══════════════════════════════════════════════════════════════════════ */

.op-pills-inline[b-m1bfxoe02j] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: 12px;
    padding-left: 12px;
    border-left: 1px solid rgba(255, 255, 255, 0.20);
}

.op-pills-inline .op-pill[b-m1bfxoe02j] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 22px;
    padding: 0 9px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(255, 255, 255, 0.35);
    border-radius: 11px;
    color: #1f4a87;
    cursor: pointer;
    transition: all 0.15s;
    font-size: 11.5px;
}

.op-pills-inline .op-pill i[b-m1bfxoe02j] { font-size: 10.5px; }

/* Hover SOLO cuando NO está activo: fondo blanco crisp con texto azul.
   Si añadiéramos hover global al active, el color #fff heredado quedaría
   sobre fondo blanco y el texto desaparecería. Verificado 2026-05-12. */
.op-pills-inline .op-pill:hover:not(:disabled):not(.active)[b-m1bfxoe02j] {
    background: #fff;
    border-color: #fff;
}

.op-pills-inline .op-pill.active[b-m1bfxoe02j] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    border-color: #1f4a87;
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.20), 0 1px 2px rgba(0, 0, 0, 0.15);
}

/* Hover sobre el chip activo: aclarar el gradiente y mantener texto blanco. */
.op-pills-inline .op-pill.active:hover:not(:disabled)[b-m1bfxoe02j] {
    background: linear-gradient(180deg, #3580d0 0%, #2655a0 100%);
    border-color: #2655a0;
}

.op-pills-inline .op-pill:disabled[b-m1bfxoe02j] {
    opacity: 0.55;
    cursor: not-allowed;
}

.op-pills-inline .op-pill .op-count[b-m1bfxoe02j] {
    background: rgba(0, 0, 0, 0.10);
    color: inherit;
    font-weight: 600;
    padding: 0 6px;
    border-radius: 8px;
    font-size: 10.5px;
    min-width: 20px;
    text-align: center;
    line-height: 16px;
}

.op-pills-inline .op-pill.active .op-count[b-m1bfxoe02j] {
    background: rgba(255, 255, 255, 0.25);
}
/* _content/NetOffice.Web.Forms/Components/ParametrosEmpresaEditor.razor.rz.scp.css */
/* width:max-content → el editor se ciñe al ancho REAL del contenido (columna
   de bloques + panel explicación) en vez de estirarse a todo el ancho. Así el
   footer (justify-content:flex-end) alinea los botones ✕/✓ al borde derecho
   del contenido, no al extremo derecho del viewport.
   max-width:100% evita desbordar en iframes estrechos. */
.param-editor[b-j3fvl7fy31] { display: flex; flex-direction: column; height: 100%; min-height: 0;
    width: max-content; max-width: 100%; font-size: .95rem; }
.param-cargando[b-j3fvl7fy31] { padding: 1rem; color: #667; font-size: .95rem; }

.param-col-head[b-j3fvl7fy31] {
    display: flex; align-items: center; justify-content: space-between; gap: .5rem;
    padding: .4rem .6rem; font-weight: 700; font-size: .95rem; color: #223;
    background: #e7ecf5; border-bottom: 1px solid #cdd4e0; position: sticky; top: 0; z-index: 1;
}

/* Botones redondos verde/rojo (F2 buscar; aceptar/cancelar abajo) */
.bt-verde[b-j3fvl7fy31], .bt-rojo[b-j3fvl7fy31] {
    width: 26px; height: 26px; padding: 0; border-radius: 50%; border: 0;
    font-weight: 700; font-size: 1.05rem; cursor: pointer; color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
}
.bt-verde[b-j3fvl7fy31] { background: #2e9b51; }
.bt-rojo[b-j3fvl7fy31]  { background: #c0392b; }
.bt-verde:disabled[b-j3fvl7fy31], .bt-rojo:disabled[b-j3fvl7fy31] { opacity: .45; cursor: default; }
.bt-grande[b-j3fvl7fy31] { width: 40px; height: 40px; font-size: 1.35rem; box-shadow: 0 1px 3px rgba(0,0,0,.25); }

/* Columna única — todos los grupos apilados en un scroll */
.param-main[b-j3fvl7fy31] {
    flex: 1; min-height: 0; min-width: 560px; display: flex; flex-direction: column; gap: .7rem;
    overflow: auto;
}
.param-bloque[b-j3fvl7fy31] {
    border: 1px solid #cdd4e0; border-radius: 6px; background: #fff; overflow: hidden;
    flex: 0 0 auto;
}
.param-grid[b-j3fvl7fy31] {
    display: grid; grid-template-columns: auto minmax(100px, 220px);
    gap: .18rem .4rem; padding: .5rem .6rem; align-content: start; justify-content: start;
}
.param-lbl[b-j3fvl7fy31] {
    align-self: center; justify-self: end; text-align: right;
    font-size: .95rem; color: #243; padding: .15rem .25rem; border-radius: 4px;
    display: flex; align-items: center; justify-content: flex-end; gap: .35rem;
}
.param-inp[b-j3fvl7fy31] { align-self: center; }

/* Botón de ayuda "?" junto a la etiqueta + overlay con la explicación. */
.param-help[b-j3fvl7fy31] {
    flex: 0 0 auto; width: 18px; height: 18px; padding: 0; line-height: 1; border: 0;
    border-radius: 50%; background: #1f4a87; color: #fff; font-size: .7rem; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
}
.param-help:hover[b-j3fvl7fy31] { background: #2c62ad; }
.param-ayuda-back[b-j3fvl7fy31] {
    position: fixed; inset: 0; background: rgba(20,28,45,.35);
    display: flex; align-items: center; justify-content: center; z-index: 1000;
}
.param-ayuda-card[b-j3fvl7fy31] {
    background: #fff; border-radius: 8px; width: min(92vw, 460px);
    box-shadow: 0 10px 40px rgba(0,0,0,.28); overflow: hidden;
}
.param-ayuda-head[b-j3fvl7fy31] {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    background: #1f4a87; color: #fff; padding: .55rem .8rem; font-weight: 600; font-size: .95rem;
}
.param-ayuda-x[b-j3fvl7fy31] { border: 0; background: transparent; color: #fff; font-size: 1rem; cursor: pointer; line-height: 1; }
.param-ayuda-body[b-j3fvl7fy31] { padding: .85rem .9rem; color: #243; font-size: .92rem; line-height: 1.45; }
.param-ayuda-key[b-j3fvl7fy31] { padding: 0 .9rem .7rem; color: #8792a6; font-size: .72rem; font-family: monospace; }
.param-inp .inp[b-j3fvl7fy31] { width: 100%; max-width: 220px; font-size: .95rem; padding: .2rem .35rem; }
.param-inp .chk[b-j3fvl7fy31] { width: 19px; height: 19px; }

/* Footer */
.param-footer[b-j3fvl7fy31] {
    display: flex; align-items: center; justify-content: flex-end; gap: 1rem;
    padding: .6rem .3rem 0;
}
.param-error[b-j3fvl7fy31] { color: #c0392b; font-size: .9rem; margin-right: auto; }
.param-confirm[b-j3fvl7fy31] { color: #b9770e; font-weight: 600; font-size: .9rem; margin-right: auto; }

/* ── Reparto en REJILLA (opt-in `BloquesEnRejilla`, §3.4) ─────────────────
   Los bloques se reparten en tantas columnas como caben y se leen fila por
   fila. Sin esto el editor es una única columna de 560 px que deja el resto
   de la pantalla en blanco y saca barra de scroll (§2.18).
   `auto-fill` + `minmax(430px, 1fr)`: el número de columnas lo decide el ancho
   disponible, así que en un iframe estrecho vuelve solo a una columna sin
   necesidad de media query. El mínimo son 430 px y no menos porque por debajo
   salen columnas demasiado estrechas: con 360 px daba CINCO en un monitor de
   1920 y quedaba más pobre que el problema que venía a resolver.
   `align-items:start` para que cada bloque se ciña a SU contenido: sin eso los
   de una fila se estiran al alto del más alto y un grupo de un solo parámetro
   ("Importadores") queda como una caja alta medio vacía.
   El `min-width` de .param-main hay que anularlo: en una celda de rejilla
   impediría que la columna baje de 560 px y forzaría scroll horizontal. */
.param-editor.rejilla[b-j3fvl7fy31] { width: 100%; }
.param-main.rejilla[b-j3fvl7fy31] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(430px, 1fr));
    grid-auto-rows: min-content;
    align-content: start;
    align-items: start;
    gap: .7rem;
    min-width: 0;
}
/* Etiquetas a la IZQUIERDA (petición del cliente 2026-09-01). El editor las
   alinea a la derecha, pegadas a su input (aspecto "winforms"); aquí arrancan
   todas en la misma x, contra el borde izquierdo del bloque.
   La columna de etiquetas se queda en `auto` (la heredada): se ciñe a la
   etiqueta más larga DEL GRUPO, así que los inputs de un mismo bloque siguen
   alineados entre sí y ninguna etiqueta parte en dos líneas. Un `1fr` aquí
   separaría cada etiqueta de su propio input a lo ancho del bloque. */
.param-main.rejilla .param-lbl[b-j3fvl7fy31] {
    justify-self: start;
    text-align: left;
    justify-content: flex-start;
}
/* _content/NetOffice.Web.Forms/Components/ParametrosGeneralEditor.razor.rz.scp.css */
/* Editor de parámetros de alcance GENERAL (tenant-wide). Gemelo visual del
   ParametrosEmpresaEditor: bloques apilados (form-block globales) con la rejilla
   etiqueta/valor, botón de ayuda "?" por parámetro y footer con ✕/✓. Los
   estilos se replican aquí porque el CSS scoped no cruza componentes. */
/* El EDITOR ocupa el ancho disponible para que su footer llegue al borde
   derecho (los ✕/✓ del proyecto viven abajo a la derecha, no a media
   pantalla). Con `width: max-content` el footer terminaba donde terminaba
   la tarjeta y los botones quedaban colgados en el centro del hueco. */
.param-editor[b-7a9ga0cg1q] {
    display: flex; flex-direction: column; height: 100%; min-height: 0;
    width: 100%; font-size: .95rem;
}
.param-cargando[b-7a9ga0cg1q] { padding: 1rem; color: #667; font-size: .95rem; }

/* Cuerpo — todos los grupos apilados en un scroll único. Las TARJETAS sí se
   ciñen a su contenido (`max-content`): un form-block estirado a todo el ancho
   deja un desierto gris a la derecha de los campos. */
.paramg-body[b-7a9ga0cg1q] {
    flex: 1; min-height: 0; overflow: auto;
    display: flex; flex-direction: column; align-items: flex-start;
    gap: .7rem; padding: .2rem;
}
.paramg-body > .form-block[b-7a9ga0cg1q] { width: max-content; max-width: 100%; min-width: 520px; }

/* Rejilla etiqueta / valor dentro de cada form-block. */
.param-grid[b-7a9ga0cg1q] {
    display: grid; grid-template-columns: auto auto;
    gap: .18rem .4rem; padding: .5rem .6rem; align-content: start; justify-content: start;
}
/* Etiquetas a la IZQUIERDA, como el resto del proyecto (`.form-grid label.lbl`
   del RCL no lleva text-align: hereda el izquierda). Alineadas a la derecha
   dejaban el borde izquierdo en diente de sierra y no casaban con ninguna
   otra ficha. */
.param-lbl[b-7a9ga0cg1q] {
    align-self: center; justify-self: start; text-align: left;
    font-size: .95rem; color: #243; padding: .15rem .25rem; border-radius: 4px;
    display: flex; align-items: center; justify-content: flex-start; gap: .35rem;
}
.param-inp[b-7a9ga0cg1q] { align-self: center; }
/* El ANCHO lo manda el CONTENIDO, no un 220px para todos: un umbral de tres
   dígitos en una caja de 220px se lee como si faltara texto. Cada tipo trae su
   clase desde el componente. */
.param-inp .inp[b-7a9ga0cg1q] { width: 100%; max-width: 220px; font-size: .95rem; padding: .2rem .35rem; }
.param-inp .inp.param-w-num[b-7a9ga0cg1q]   { width: 80px; }
.param-inp .inp.param-w-dec[b-7a9ga0cg1q]   { width: 100px; }
.param-inp .inp.param-w-fecha[b-7a9ga0cg1q] { width: 130px; }
.param-inp .inp.param-w-txt[b-7a9ga0cg1q]   { width: 260px; max-width: 100%; }
.param-inp .chk[b-7a9ga0cg1q] { width: 19px; height: 19px; }

/* Botón de ayuda "?" + overlay de explicación (idéntico al EmpresaEditor). */
.param-help[b-7a9ga0cg1q] {
    flex: 0 0 auto; width: 18px; height: 18px; padding: 0; line-height: 1; border: 0;
    border-radius: 50%; background: #1f4a87; color: #fff; font-size: .7rem; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
}
.param-help:hover[b-7a9ga0cg1q] { background: #2c62ad; }
.param-ayuda-back[b-7a9ga0cg1q] {
    position: fixed; inset: 0; background: rgba(20,28,45,.35);
    display: flex; align-items: center; justify-content: center; z-index: 1000;
}
.param-ayuda-card[b-7a9ga0cg1q] {
    background: #fff; border-radius: 8px; width: min(92vw, 460px);
    box-shadow: 0 10px 40px rgba(0,0,0,.28); overflow: hidden;
}
.param-ayuda-head[b-7a9ga0cg1q] {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    background: #1f4a87; color: #fff; padding: .55rem .8rem; font-weight: 600; font-size: .95rem;
}
.param-ayuda-x[b-7a9ga0cg1q] { border: 0; background: transparent; color: #fff; font-size: 1rem; cursor: pointer; line-height: 1; }
.param-ayuda-body[b-7a9ga0cg1q] { padding: .85rem .9rem; color: #243; font-size: .92rem; line-height: 1.45; }
.param-ayuda-key[b-7a9ga0cg1q] { padding: 0 .9rem .7rem; color: #8792a6; font-size: .72rem; font-family: monospace; }

/* Botones redondos verde/rojo del footer. */
.bt-verde[b-7a9ga0cg1q], .bt-rojo[b-7a9ga0cg1q] {
    width: 26px; height: 26px; padding: 0; border-radius: 50%; border: 0;
    font-weight: 700; font-size: 1.05rem; cursor: pointer; color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
}
.bt-verde[b-7a9ga0cg1q] { background: #2e9b51; }
.bt-rojo[b-7a9ga0cg1q]  { background: #c0392b; }
.bt-verde:disabled[b-7a9ga0cg1q], .bt-rojo:disabled[b-7a9ga0cg1q] { opacity: .45; cursor: default; }
.bt-grande[b-7a9ga0cg1q] { width: 40px; height: 40px; font-size: 1.35rem; box-shadow: 0 1px 3px rgba(0,0,0,.25); }

/* Footer. */
.param-footer[b-7a9ga0cg1q] {
    display: flex; align-items: center; justify-content: flex-end; gap: 1rem;
    padding: .6rem .3rem 0;
}
.param-error[b-7a9ga0cg1q] { color: #c0392b; font-size: .9rem; margin-right: auto; }
.param-ok[b-7a9ga0cg1q]    { color: #2e9b51; font-weight: 600; font-size: .9rem; margin-right: auto; }
/* _content/NetOffice.Web.Forms/Components/PdfPreviewDialog.razor.rz.scp.css */
/* Modal genérico de previsualización de PDF — mismo look que Costing / Extracto.
   CSS scoped: aplica a los elementos que renderiza este componente. */
.pdf-preview-backdrop[b-hntnjz263o] {
    position: fixed; inset: 0; background: rgba(15,30,55,0.45);
    z-index: 1300; display: flex; align-items: center; justify-content: center;
}
.pdf-preview-panel[b-hntnjz263o] {
    width: 92vw; height: 92vh; max-width: 1200px; background: #fff;
    border-radius: 8px; box-shadow: 0 8px 40px rgba(0,0,0,0.4);
    display: flex; flex-direction: column; overflow: hidden;
}
.pdf-preview-header[b-hntnjz263o] {
    display: flex; align-items: center; gap: 8px; padding: 8px 14px;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%); color: #fff; font-weight: 600;
}
.pdf-preview-close[b-hntnjz263o] {
    background: transparent; border: none; color: #fff; font-size: 22px;
    line-height: 1; cursor: pointer; padding: 0 4px;
}
.pdf-preview-body[b-hntnjz263o] { flex: 1 1 auto; min-height: 0; background: #525659; }
.pdf-preview-iframe[b-hntnjz263o] { width: 100%; height: 100%; border: none; }
.pdf-preview-footer[b-hntnjz263o] {
    display: flex; align-items: center; gap: 8px; padding: 8px 14px;
    border-top: 1px solid #c9ced4; background: #f8fafd;
}
/* _content/NetOffice.Web.Forms/Components/PdfSeleccionViewer.razor.rz.scp.css */
/* PdfSeleccionViewer — chrome del visor (estética sobria, acorde al panel
   documento de la revisión). La capa de texto de PDF.js, el chip flotante y
   el halo de los campos destino van en CSS GLOBAL inyectado por
   wwwroot/js/pdf-seleccion.js: afectan a nodos creados en runtime o fuera
   del subárbol del componente y el scoped CSS no los alcanza. */

.pdfsel-root[b-hqq5z8ckmv] {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    min-height: 0;
    background: #525659; /* gris del visor nativo de Chrome/Edge */
    border-radius: 6px;
    overflow: hidden;
}

.pdfsel-toolbar[b-hqq5z8ckmv] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    background: #323639;
    color: #e2e8f0;
    font-size: 12px;
    user-select: none;
}

.pdfsel-btn[b-hqq5z8ckmv] {
    border: 0;
    background: transparent;
    color: #cbd5e1;
    width: 26px;
    height: 24px;
    border-radius: 4px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
}

.pdfsel-btn:hover[b-hqq5z8ckmv] { background: #475569; color: #fff; }

/* toggle del modo recuadro activo */
.pdfsel-btn-on[b-hqq5z8ckmv],
.pdfsel-btn-on:hover[b-hqq5z8ckmv] { background: #0ea5e9; color: #fff; }

/* (La pastilla de modos «Recuadro | Texto» del 2026-09-03 se retiró el
   2026-09-04 — JJ: «con seleccionar la zona es suficiente». Queda sólo el
   recuadro con su hint.) */

.pdfsel-zoom[b-hqq5z8ckmv] {
    min-width: 40px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.pdfsel-sep[b-hqq5z8ckmv] {
    width: 1px;
    height: 16px;
    background: #475569;
    margin: 0 2px;
}

.pdfsel-pageind[b-hqq5z8ckmv] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-variant-numeric: tabular-nums;
    opacity: .9;
}

.pdfsel-hint[b-hqq5z8ckmv] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #7dd3fc;
    font-size: 11.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pdfsel-error[b-hqq5z8ckmv] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 7px 10px;
    background: #7f1d1d;
    color: #fecaca;
    font-size: 12.5px;
}

/* contenedor scrolleable de páginas — lo puebla pdf-seleccion.js */
.pdfsel-doc[b-hqq5z8ckmv] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 10px 8px 16px;
}

/* páginas (creadas por JS — ::deep porque no llevan el atributo de scope).
   Centrado con margin:auto y NO con flex align-items:center: con flex, una
   página más ancha que el contenedor se centra y su borde izquierdo queda
   fuera del alcance del scroll. Con márgenes auto, al desbordar colapsan a 0
   y el scroll horizontal llega a todo. */
.pdfsel-doc[b-hqq5z8ckmv]  .pdfsel-page {
    position: relative;
    background: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .45);
    margin: 0 auto 12px;
}

.pdfsel-doc[b-hqq5z8ckmv]  .pdfsel-page canvas {
    display: block;
}
/* _content/NetOffice.Web.Forms/Components/PendientesOtrasEmpresas.razor.rz.scp.css */
/* Aviso «pendientes en otras empresas»: banda informativa azul, sobria, pegada al grid. */
.poe-aviso[b-n62mu28b3c] {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
    margin: 0 0 8px; padding: 7px 12px;
    border: 1px solid #b6d0ea; border-left: 4px solid #2a55a3; border-radius: 4px;
    background: #eef5fd; color: #1f3a5f; font-size: 12.5px;
}
.poe-aviso > i[b-n62mu28b3c] { color: #2a55a3; font-size: 14px; }
.poe-txt[b-n62mu28b3c] { font-weight: 600; }
.poe-chip[b-n62mu28b3c] {
    display: inline-flex; align-items: center; gap: 6px;
    border: 1px solid #9bbbe0; border-radius: 14px; background: #fff; color: #1f4a87;
    padding: 2px 10px; font-size: 12px; cursor: pointer; white-space: nowrap;
}
.poe-chip b[b-n62mu28b3c] { font-variant-numeric: tabular-nums; }
.poe-id[b-n62mu28b3c] { color: #6a7686; font-size: 11px; }   /* el código de empresa distingue dos con el mismo nombre */
.poe-chip:hover[b-n62mu28b3c] { background: #dbe9f8; border-color: #1f4a87; }
.poe-chip:focus-visible[b-n62mu28b3c] { outline: 2px solid #ffb020; outline-offset: 1px; }
/* _content/NetOffice.Web.Forms/Components/QuitarFiltrosButton.razor.rz.scp.css */
/* Botón discreto de quitar filtros (§2.8, buzón TEIFER 26/10). Cabe en la celda
   de la esquina de la fila de filtros (22px de ancho en MasterGrid). */
.qf-btn[b-thiku36xqp] {
    position: relative;
    display: inline-flex; align-items: center; justify-content: center;
    width: 18px; height: 18px; padding: 0; margin: 0 auto;
    border: 1px solid transparent; border-radius: 4px;
    background: transparent; color: #b4bcc8;
    font-size: 11px; line-height: 1; cursor: default;
}
.qf-btn .qf-x[b-thiku36xqp] {
    position: absolute; right: -2px; bottom: -3px;
    font-size: 11px; font-weight: 700; opacity: 0;
}
.qf-btn.qf-on[b-thiku36xqp] {
    color: #b45309; background: #fef3c7; border-color: #f5c46b; cursor: pointer;
}
.qf-btn.qf-on .qf-x[b-thiku36xqp] { opacity: 1; color: #b45309; }
.qf-btn.qf-on:hover[b-thiku36xqp] { background: #fde68a; border-color: #d97706; }
.qf-btn:disabled[b-thiku36xqp] { opacity: .7; }
/* _content/NetOffice.Web.Forms/Components/RevisionPunteoDialog.razor.rz.scp.css */
/* RevisionPunteoDialog — scoped CSS (CLAUDE.md form_revision_punteo).
   Lenguaje visual canónico:
     - Header con chip empresa (clon de ExtractoDialog §2.30).
     - Toolbar slate con radio de modo + filtros.
     - KPI Familia A §2.30a con border-left semántico.
     - Grid con OK 1ª columna (checkbox grande), filas zebra, selección azul.
     - Footer con dirty badge + acciones primarias. */

/* Modal fullscreen (cliente 2026-05-27) — mismo patrón que ExtractoDialog.
   Ocupa todo el viewport del iframe; la barra superior del shell queda
   visible porque vive FUERA del iframe. */
.rp-dialog[b-917jyu3rtm] {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    max-height: 100vh !important;
    top: 0 !important;
    left: 50% !important;
    transform: translate(-50%, 0) !important;
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    display: flex;
    flex-direction: column;
    background: #f4f6fa;
    border: 1px solid #c5cdd9;
    overflow: hidden;
    position: relative;
}

/* ===== Header — clon del extracto-header (cliente 2026-05-27) =====
   Gradient azul corp + texto blanco + chip empresa lateral. */
.rp-header[b-917jyu3rtm] {
    display: flex; align-items: center; gap: 14px;
    padding: 12px 18px !important;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%) !important;
    color: #fff !important;
    border-bottom: none !important;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.2px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15);
}
.rp-empresa-chip[b-917jyu3rtm] {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 4px 14px 4px 6px;
    border: 1.5px solid rgba(255,255,255,0.55); border-radius: 18px;
    background: rgba(255,255,255,0.95);
    font-size: 12px;
    color: #1a2530;
    box-shadow: 0 1px 3px rgba(0,0,0,0.18);
}
.rp-empresa-logo[b-917jyu3rtm] {
    width: 26px; height: 26px;
    border-radius: 50%;
    object-fit: cover;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.08);
}
.rp-empresa-chip i.bi-building[b-917jyu3rtm] {
    color: #4a5566; font-size: 16px;
}
.rp-empresa-nom[b-917jyu3rtm] {
    font-weight: 700; color: #1a2530;
}
.rp-empresa-sub[b-917jyu3rtm] {
    color: #4a5566; font-weight: 500; margin-left: 2px;
}
.rp-titulo[b-917jyu3rtm] {
    flex: 1; text-align: center;
    font-size: 16px; font-weight: 700; color: #fff;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.rp-titulo i[b-917jyu3rtm] { color: #fff; margin-right: 8px; font-size: 18px; }

.rp-dialog .lookup-close[b-917jyu3rtm] {
    width: 34px; height: 34px;
    border: none; background: rgba(255,255,255,0.12);
    color: #fff !important;
    border-radius: 4px;
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 18px;
}
.rp-dialog .lookup-close:hover[b-917jyu3rtm] { background: rgba(255,255,255,0.22) !important; }

/* ===== Toolbar ===== */
.rp-toolbar[b-917jyu3rtm] {
    padding: 8px 14px;
    background: #f1f4f8;
    border-bottom: 1px solid #d4dae3;
    display: flex; flex-direction: column; gap: 8px;
}
.rp-modo-group[b-917jyu3rtm] {
    display: inline-flex; gap: 16px;
}
.rp-modo-radio[b-917jyu3rtm] {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 10px;
    border: 1px solid #c5cdd9;
    border-radius: 4px;
    background: #fff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    color: #3a4754;
}
.rp-modo-radio input[type="radio"]:checked + span[b-917jyu3rtm] {
    color: #1f4a87;
}
.rp-modo-radio:has(input[type="radio"]:checked)[b-917jyu3rtm] {
    border-color: #1f4a87;
    background: linear-gradient(180deg, #f5fbff 0%, #d8ecff 100%);
    box-shadow: 0 1px 3px rgba(31,74,135,0.15);
}
.rp-modo-radio span i[b-917jyu3rtm] { margin-right: 4px; }

.rp-toolbar-row[b-917jyu3rtm] {
    display: inline-flex; align-items: center; gap: 8px;
    flex-wrap: wrap;
}
.rp-lbl[b-917jyu3rtm] {
    font-size: 11px;
    color: #3a4754;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.rp-fecha[b-917jyu3rtm] {
    width: 100px; height: 26px;
    padding: 2px 6px;
    text-align: center;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}
/* `<input type="date">` actúa como atajo opcional al lado del campo de
   texto manual: en Chrome/Edge el control nativo rendera campos
   yyyy-MM-dd internos que se ven encima del input adyacente. Escondemos
   esos pseudo-elementos `::-webkit-datetime-edit*`. Sólo el
   `::-webkit-calendar-picker-indicator` (icono de calendario) queda
   visible. La entrada de fecha manual va por el campo de texto adyacente
   (.rp-fecha). Patrón clonado de DiarioApuntes (§1.5). */
.rp-picker[b-917jyu3rtm] {
    flex: 0 0 auto;
    width: 24px;
    height: 26px;
    padding: 0;
    border: 1px solid #c5cdd9;
    border-radius: 3px;
    background: linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%);
    cursor: pointer;
    color: transparent;
    font-size: 0;
    overflow: hidden;
}
.rp-picker[b-917jyu3rtm]::-webkit-datetime-edit,
.rp-picker[b-917jyu3rtm]::-webkit-datetime-edit-fields-wrapper,
.rp-picker[b-917jyu3rtm]::-webkit-datetime-edit-text,
.rp-picker[b-917jyu3rtm]::-webkit-datetime-edit-day-field,
.rp-picker[b-917jyu3rtm]::-webkit-datetime-edit-month-field,
.rp-picker[b-917jyu3rtm]::-webkit-datetime-edit-year-field,
.rp-picker[b-917jyu3rtm]::-webkit-inner-spin-button,
.rp-picker[b-917jyu3rtm]::-webkit-clear-button {
    display: none;
    -webkit-appearance: none;
    appearance: none;
}
.rp-picker[b-917jyu3rtm]::-webkit-calendar-picker-indicator {
    cursor: pointer;
    padding: 0;
    margin: 0;
    width: 22px;
    height: 22px;
    opacity: 0.7;
}
.rp-picker:hover[b-917jyu3rtm]::-webkit-calendar-picker-indicator {
    opacity: 1;
}
.rp-cuenta[b-917jyu3rtm] {
    width: 130px; height: 26px;
    padding: 2px 6px;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}
.rp-cuenta-nom[b-917jyu3rtm] {
    font-size: 12px;
    color: #1f4a87;
    font-weight: 600;
    min-width: 140px;
    font-style: italic;
}
.rp-filtro[b-917jyu3rtm] {
    width: 120px; height: 26px;
    padding: 2px 6px;
    font-size: 12px;
    background: #fff;
    border: 1px solid #c5cdd9;
    border-radius: 3px;
}
.rp-sep[b-917jyu3rtm] {
    display: inline-block;
    width: 1px; height: 20px;
    background: #c5cdd9;
    margin: 0 6px;
}
.rp-flex[b-917jyu3rtm] { flex: 1 1 auto; }

.rp-btn-calcular[b-917jyu3rtm] {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 14px;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    border: 1px solid #1f4a87;
    border-radius: 4px;
    font-weight: 600;
    font-size: 12px;
    cursor: pointer;
    letter-spacing: 0.02em;
}
.rp-btn-calcular:hover:not(:disabled)[b-917jyu3rtm] {
    background: linear-gradient(180deg, #3a7cd8 0%, #2a5a9b 100%);
}
.rp-btn-calcular:disabled[b-917jyu3rtm] { opacity: 0.6; cursor: not-allowed; }
.rp-spin[b-917jyu3rtm] {
    animation: rp-spin-b-917jyu3rtm 0.8s linear infinite;
}
@keyframes rp-spin-b-917jyu3rtm { to { transform: rotate(360deg); } }

/* ===== MasterToolbar wrap (CLAUDE.md §2.4) =====
   Envuelve el componente `<MasterToolbar>` para acotar su layout dentro
   del modal. La toolbar usa la clase global `.app-toolbar` del RCL.
   Border-top sutil + background ligeramente más claro que el toolbar
   superior para crear separación visual de filtros propios → botonera. */
.rp-master-toolbar-wrap[b-917jyu3rtm] {
    border-bottom: 1px solid #d4dae3;
}
.rp-master-toolbar-wrap[b-917jyu3rtm]  .app-toolbar {
    background: linear-gradient(180deg, #fafcfe 0%, #eef3f9 100%);
    padding: 4px 14px;
    gap: 4px;
}

/* ===== Filtro rango por columna (CLAUDE.md §2.7) =====
   En modo rango, cada filtro de columna numérica/fecha se divide en
   dos inputs verticales (desde encima, hasta debajo). La altura total
   de la fila de filtros pasa de ~28px a ~50px cuando rangoActivo. */
.rp-table thead tr.rp-filter-row.range-mode th[b-917jyu3rtm] {
    height: 50px;
    vertical-align: top;
    padding-top: 4px;
}
.rp-filter-range[b-917jyu3rtm] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.rp-filter-range .grid-filter-inp.range[b-917jyu3rtm] {
    width: 100%;
    height: 20px;
    padding: 0 4px;
    font-size: 10px;
    text-align: center;
}

/* ===== Error bar ===== */
.rp-error[b-917jyu3rtm] {
    display: flex; align-items: center; gap: 8px;
    padding: 8px 14px;
    background: #fff4f4;
    color: #a31f1f;
    border-bottom: 1px solid #f0c5c5;
    font-size: 13px;
}
.rp-error i[b-917jyu3rtm] { font-size: 16px; }
.rp-error button[b-917jyu3rtm] {
    margin-left: auto;
    background: transparent; border: none;
    color: #a31f1f; cursor: pointer;
    font-size: 14px;
}

/* ===== KPI Familia A §2.30a ===== */
.rp-kpi-row[b-917jyu3rtm] {
    display: flex; gap: 12px;
    padding: 12px 14px;
    background: #fff;
    border-bottom: 1px solid #e2e8f0;
}
.rp-kpi[b-917jyu3rtm] {
    flex: 1;
    display: flex; flex-direction: column;
    background: #fafdff;
    border: 0.6px solid #c5cdd9;
    border-left: 3px solid #c5cdd9;
    border-radius: 2px;
    padding: 6px 14px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.rp-kpi-punteado[b-917jyu3rtm]   { border-left-color: #1d6f42; }
.rp-kpi-sinpuntear[b-917jyu3rtm] { border-left-color: #a31f1f; }
.rp-kpi-saldo[b-917jyu3rtm]      { border-left-color: #d8a728; background: #fffce8; }
.rp-kpi-pendientes[b-917jyu3rtm] { border-left-color: #1f4a87; }
.rp-kpi label[b-917jyu3rtm] {
    font-size: 9px;
    font-weight: 700;
    color: #4a5566;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.rp-kpi-punteado label[b-917jyu3rtm]   { color: #1d6f42; }
.rp-kpi-sinpuntear label[b-917jyu3rtm] { color: #a31f1f; }
.rp-kpi-saldo label[b-917jyu3rtm]      { color: #b08000; }
.rp-kpi-pendientes label[b-917jyu3rtm] { color: #1f4a87; }

.rp-kpi span.num[b-917jyu3rtm] {
    font-size: 18px;
    font-weight: 700;
    color: #2b3640;
    text-align: right;
    font-variant-numeric: tabular-nums;
    margin: 2px 0;
}
.rp-kpi span.num.neg[b-917jyu3rtm] { color: #a31f1f; }
.rp-kpi span.num.pos[b-917jyu3rtm] { color: #1d6f42; }
.rp-kpi small[b-917jyu3rtm] {
    font-size: 10px;
    color: #6a7585;
    text-align: right;
}

/* ===== Grid ===== */
.rp-grid-wrap[b-917jyu3rtm] {
    flex: 1 1 auto;
    overflow: hidden;
    background: #fff;
    display: flex; flex-direction: column;
}
.rp-grid-scroll[b-917jyu3rtm] {
    flex: 1 1 auto;
    overflow: auto;
    outline: none;
}
.rp-empty[b-917jyu3rtm] {
    display: flex; align-items: center; justify-content: center;
    flex-direction: column; gap: 8px;
    padding: 40px;
    color: #6a7585;
    font-size: 13px;
}
.rp-empty i[b-917jyu3rtm] { font-size: 28px; color: #c5cdd9; }

.rp-table[b-917jyu3rtm] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    table-layout: fixed;
}
.rp-table thead th[b-917jyu3rtm] {
    position: sticky; top: 0; z-index: 2;
    background: linear-gradient(180deg, #f6f9fd 0%, #e6ecf3 100%);
    color: #1a2530;
    text-align: left;
    padding: 4px 6px;
    border-bottom: 1px solid #c5cdd9;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rp-table thead tr.rp-filter-row th[b-917jyu3rtm] {
    background: #f1f4f8;
    padding: 2px 4px;
    top: 0;
}
.rp-table thead tr:not(.rp-filter-row) th[b-917jyu3rtm] {
    top: 28px;
}
.rp-table thead th.num[b-917jyu3rtm]    { text-align: right; }
.rp-table thead th.center[b-917jyu3rtm] { text-align: center; }
.rp-table thead th.cta[b-917jyu3rtm]    { text-align: left; font-variant-numeric: tabular-nums; }

.rp-table tbody td[b-917jyu3rtm] {
    padding: 4px 6px;
    border-bottom: 1px solid #f0f3f7;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.rp-table tbody td.num[b-917jyu3rtm]    { text-align: right; font-variant-numeric: tabular-nums; }
.rp-table tbody td.center[b-917jyu3rtm] { text-align: center; }
.rp-table tbody td.cta[b-917jyu3rtm]    { font-variant-numeric: tabular-nums; color: #2a55a3; }

.rp-table tbody tr:nth-child(even)[b-917jyu3rtm] { background: #fafbfd; }
.rp-table tbody tr:hover[b-917jyu3rtm]           { background: #fff8e1; }
.rp-table tbody tr.selected[b-917jyu3rtm]        {
    background: #d8ecff !important;
    box-shadow: inset 3px 0 0 #1f4a87;
}
.rp-table tbody tr.rp-row-mark[b-917jyu3rtm]     {
    background: #e7f7eb;
}
.rp-table tbody tr.rp-row-mark.selected[b-917jyu3rtm] { background: #c4e3ce !important; }

.rp-table tbody td.row-indicator[b-917jyu3rtm] {
    color: #1f4a87; font-weight: 700; text-align: center;
}

/* OK column — checkbox visible, grande */
.rp-table tbody td:nth-child(2) input[type="checkbox"][b-917jyu3rtm],
.rp-table thead .rp-check-all[b-917jyu3rtm] {
    transform: scale(1.2);
    cursor: pointer;
}
/* Regla histórica eliminada (cliente 2026-05-27) — el modo Revisión ya
   permite toggle individual, así que el checkbox NO debe verse como
   not-allowed. Sólo Chrome aplicaba el cursor incluso sin disabled. */

/* D/H pill */
.dh-pill[b-917jyu3rtm] {
    display: inline-block;
    width: 18px; height: 18px;
    line-height: 18px;
    border-radius: 50%;
    font-weight: 700;
    font-size: 11px;
    text-align: center;
    color: #fff;
}
.dh-pill.dh-d[b-917jyu3rtm] { background: #1f4a87; }
.dh-pill.dh-h[b-917jyu3rtm] { background: #a4642a; }

/* Filtros (heredan estilo del proyecto) */
.grid-filter-inp[b-917jyu3rtm] {
    width: 100%;
    box-sizing: border-box;
    padding: 1px 4px;
    border: 1px solid #c5cdd9;
    border-radius: 2px;
    font-size: 11px;
    background: #fff;
}

/* ===== Footer ===== */
.rp-footer[b-917jyu3rtm] {
    display: flex; align-items: center; gap: 12px;
    padding: 10px 14px;
    background: linear-gradient(180deg, #fcfcf3 0%, #f5f4dc 100%);
    border-top: 2px solid #d4cc8a;
    flex-shrink: 0;
}
.rp-dirty[b-917jyu3rtm] {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 10px;
    background: #fff4d6;
    color: #8a6500;
    border: 1px solid #d8a728;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 600;
}
.rp-info-revision[b-917jyu3rtm] {
    color: #4a5566;
    font-size: 11px;
    font-style: italic;
}

.rp-btn[b-917jyu3rtm] {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 14px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid #c5cdd9;
    background: linear-gradient(180deg, #ffffff 0%, #eef3f9 100%);
    color: #2b3640;
    letter-spacing: 0.02em;
}
.rp-btn:hover:not(:disabled)[b-917jyu3rtm] {
    background: linear-gradient(180deg, #eaf2fb 0%, #d4e1f2 100%);
}
.rp-btn:disabled[b-917jyu3rtm] { opacity: 0.5; cursor: not-allowed; }

.rp-btn-revisar[b-917jyu3rtm] {
    background: linear-gradient(180deg, #f5fff8 0%, #cee9d3 100%);
    border-color: #5fa97a;
    color: #1d6f42;
}
.rp-btn-revisar:hover:not(:disabled)[b-917jyu3rtm] {
    background: linear-gradient(180deg, #d6f1de 0%, #a0d8af 100%);
    border-color: #1d6f42;
}
.rp-btn-revisar i[b-917jyu3rtm] { color: #1d6f42; }

.rp-btn-grabar[b-917jyu3rtm] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    border-color: #1f4a87;
}
.rp-btn-grabar:hover:not(:disabled)[b-917jyu3rtm] {
    background: linear-gradient(180deg, #3a7cd8 0%, #2a5a9b 100%);
}
.rp-btn-grabar i[b-917jyu3rtm] { color: #fff; }

.rp-btn-salir[b-917jyu3rtm] {
    background: linear-gradient(180deg, #fff5f5 0%, #ffd9d9 100%);
    border-color: #d6a4a4;
    color: #a31f1f;
}
.rp-btn-salir:hover:not(:disabled)[b-917jyu3rtm] {
    background: linear-gradient(180deg, #ffe8e8 0%, #ffb8b8 100%);
}
.rp-btn-salir i[b-917jyu3rtm] { color: #a31f1f; }

.rp-btn-danger[b-917jyu3rtm] {
    background: linear-gradient(180deg, #d94f4f 0%, #a31f1f 100%);
    color: #fff;
    border-color: #a31f1f;
}
.rp-btn-danger:hover[b-917jyu3rtm] { background: linear-gradient(180deg, #e26565 0%, #b82a2a 100%); }

/* ===== Confirm dirty ===== */
.rp-confirm[b-917jyu3rtm] {
    position: fixed;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 12px 40px rgba(0,0,0,0.40);
    min-width: 380px; max-width: 480px;
    z-index: 1300;
    overflow: hidden;
}
.rp-confirm-header[b-917jyu3rtm] {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 16px;
    background: #fff8e1;
    border-bottom: 1px solid #f5e3a8;
    font-weight: 700;
    color: #8a6500;
}
.rp-confirm-header i[b-917jyu3rtm] { font-size: 20px; }
.rp-confirm-body[b-917jyu3rtm] {
    padding: 18px 16px;
    color: #2b3640;
    font-size: 13px;
}
.rp-confirm-footer[b-917jyu3rtm] {
    display: flex; justify-content: flex-end; gap: 8px;
    padding: 10px 16px;
    background: #fafbfd;
    border-top: 1px solid #e2e8f0;
}

/* ===== Backdrop ===== */
.lookup-backdrop[b-917jyu3rtm] {
    position: fixed; inset: 0;
    background: rgba(15,30,55,0.40);
    z-index: 1100;
}
/* Fullscreen positioning (sustituye al centrado pequeño anterior). */
.rp-dialog[b-917jyu3rtm] {
    position: fixed;
    top: 0 !important;
    left: 50% !important;
    transform: translate(-50%, 0) !important;
    z-index: 1101;
}

/* ===== Pill segmented "Pendientes / Revisados|Punteados / Todos"
   (cliente 2026-05-27) — clon canónico de .op-pill (Operativas/No
   operativas/Todas, PlanContable.razor.css §17) adaptado a fondo claro
   del toolbar del modal. */
.rp-pill-group[b-917jyu3rtm] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding-left: 4px;
}
.rp-pill[b-917jyu3rtm] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 24px;
    padding: 0 10px;
    background: linear-gradient(180deg, #ffffff 0%, #eef3f9 100%);
    border: 1px solid #c5cdd9;
    border-radius: 12px;
    color: #1f4a87;
    cursor: pointer;
    font-size: 11.5px;
    font-weight: 600;
    transition: all 0.15s;
}
.rp-pill i[b-917jyu3rtm] { font-size: 10.5px; }
.rp-pill:hover:not(:disabled):not(.active)[b-917jyu3rtm] {
    background: linear-gradient(180deg, #fafdff 0%, #d8e6f5 100%);
    border-color: #1f4a87;
}
.rp-pill.active[b-917jyu3rtm] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    border-color: #1f4a87;
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.20), 0 1px 2px rgba(0,0,0,0.15);
}
.rp-pill.active:hover:not(:disabled)[b-917jyu3rtm] {
    background: linear-gradient(180deg, #3580d0 0%, #2655a0 100%);
    border-color: #2655a0;
}
.rp-pill:disabled[b-917jyu3rtm] {
    opacity: 0.55;
    cursor: not-allowed;
}

/* ===== Hide-col-N (cliente 2026-05-27) =====
   Soporte CSS para ocultar columnas configurables (3..15) del grid sin
   refactor a `GridColumn[]` declarativo. Se aplican vía clase dinámica
   en el `<table>` (ClassColsOcultas()). */
.rp-table.rp-hide-col-3  th:nth-child(3)[b-917jyu3rtm],  .rp-table.rp-hide-col-3  td:nth-child(3)[b-917jyu3rtm],  .rp-table.rp-hide-col-3  col:nth-child(3)[b-917jyu3rtm],
.rp-table.rp-hide-col-4  th:nth-child(4)[b-917jyu3rtm],  .rp-table.rp-hide-col-4  td:nth-child(4)[b-917jyu3rtm],  .rp-table.rp-hide-col-4  col:nth-child(4)[b-917jyu3rtm],
.rp-table.rp-hide-col-5  th:nth-child(5)[b-917jyu3rtm],  .rp-table.rp-hide-col-5  td:nth-child(5)[b-917jyu3rtm],  .rp-table.rp-hide-col-5  col:nth-child(5)[b-917jyu3rtm],
.rp-table.rp-hide-col-6  th:nth-child(6)[b-917jyu3rtm],  .rp-table.rp-hide-col-6  td:nth-child(6)[b-917jyu3rtm],  .rp-table.rp-hide-col-6  col:nth-child(6)[b-917jyu3rtm],
.rp-table.rp-hide-col-7  th:nth-child(7)[b-917jyu3rtm],  .rp-table.rp-hide-col-7  td:nth-child(7)[b-917jyu3rtm],  .rp-table.rp-hide-col-7  col:nth-child(7)[b-917jyu3rtm],
.rp-table.rp-hide-col-8  th:nth-child(8)[b-917jyu3rtm],  .rp-table.rp-hide-col-8  td:nth-child(8)[b-917jyu3rtm],  .rp-table.rp-hide-col-8  col:nth-child(8)[b-917jyu3rtm],
.rp-table.rp-hide-col-9  th:nth-child(9)[b-917jyu3rtm],  .rp-table.rp-hide-col-9  td:nth-child(9)[b-917jyu3rtm],  .rp-table.rp-hide-col-9  col:nth-child(9)[b-917jyu3rtm],
.rp-table.rp-hide-col-10 th:nth-child(10)[b-917jyu3rtm], .rp-table.rp-hide-col-10 td:nth-child(10)[b-917jyu3rtm], .rp-table.rp-hide-col-10 col:nth-child(10)[b-917jyu3rtm],
.rp-table.rp-hide-col-11 th:nth-child(11)[b-917jyu3rtm], .rp-table.rp-hide-col-11 td:nth-child(11)[b-917jyu3rtm], .rp-table.rp-hide-col-11 col:nth-child(11)[b-917jyu3rtm],
.rp-table.rp-hide-col-12 th:nth-child(12)[b-917jyu3rtm], .rp-table.rp-hide-col-12 td:nth-child(12)[b-917jyu3rtm], .rp-table.rp-hide-col-12 col:nth-child(12)[b-917jyu3rtm],
.rp-table.rp-hide-col-13 th:nth-child(13)[b-917jyu3rtm], .rp-table.rp-hide-col-13 td:nth-child(13)[b-917jyu3rtm], .rp-table.rp-hide-col-13 col:nth-child(13)[b-917jyu3rtm],
.rp-table.rp-hide-col-14 th:nth-child(14)[b-917jyu3rtm], .rp-table.rp-hide-col-14 td:nth-child(14)[b-917jyu3rtm], .rp-table.rp-hide-col-14 col:nth-child(14)[b-917jyu3rtm],
.rp-table.rp-hide-col-15 th:nth-child(15)[b-917jyu3rtm], .rp-table.rp-hide-col-15 td:nth-child(15)[b-917jyu3rtm], .rp-table.rp-hide-col-15 col:nth-child(15)[b-917jyu3rtm] {
    display: none !important;
}

/* ===== Modal Config columnas (cliente 2026-05-27) ===== */
.rp-cfgcols[b-917jyu3rtm] {
    position: fixed;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 460px;
    max-height: 78vh;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 12px 40px rgba(0,0,0,0.35);
    z-index: 1300;
    display: flex; flex-direction: column;
    overflow: hidden;
}
.rp-cfgcols-header[b-917jyu3rtm] {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 14px;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    font-weight: 700;
}
.rp-cfgcols-header i[b-917jyu3rtm] { font-size: 16px; }
.rp-cfgcols-header span[b-917jyu3rtm] { flex: 1; }
.rp-cfgcols-close[b-917jyu3rtm] {
    width: 28px; height: 28px;
    border: none; background: rgba(255,255,255,0.15);
    color: #fff; border-radius: 4px; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
}
.rp-cfgcols-close:hover[b-917jyu3rtm] { background: rgba(255,255,255,0.25); }
.rp-cfgcols-body[b-917jyu3rtm] {
    padding: 14px 18px;
    overflow-y: auto;
    font-size: 13px;
}
.rp-cfgcols-hint[b-917jyu3rtm] {
    margin: 0 0 12px 0;
    padding: 8px 10px;
    background: #f6f9fd;
    border-left: 3px solid #1f4a87;
    border-radius: 2px;
    color: #4a5566;
    font-size: 11.5px;
}
.rp-cfgcols-row[b-917jyu3rtm] {
    display: flex; align-items: center; gap: 8px;
    padding: 6px 4px;
    border-bottom: 1px solid #f0f3f7;
    cursor: pointer;
}
.rp-cfgcols-row:hover[b-917jyu3rtm] { background: #f9fbfd; }
.rp-cfgcols-row:last-child[b-917jyu3rtm] { border-bottom: none; }
.rp-cfgcols-row input[type="checkbox"][b-917jyu3rtm] {
    width: 16px; height: 16px;
    accent-color: #1f4a87;
}
.rp-cfgcols-footer[b-917jyu3rtm] {
    display: flex; align-items: center; gap: 8px;
    padding: 10px 14px;
    background: #fafbfd;
    border-top: 1px solid #e2e8f0;
}

/* ===== Overlay emergente del asiento (cliente 2026-05-27) =====
   Modal ENCIMA del modal Revisión con iframe que carga CrearApuntes.
   Z-index 1250 para quedar por encima del modal (1101) pero por debajo
   de los dialogs de confirm/ayuda/config (1300). */
.rp-asiento-backdrop[b-917jyu3rtm] {
    position: fixed; inset: 0;
    background: rgba(15, 30, 55, 0.55);
    z-index: 1250;
}
.rp-asiento-modal[b-917jyu3rtm] {
    position: fixed;
    top: 4vh; left: 4vw;
    width: 92vw; height: 92vh;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 16px 50px rgba(0,0,0,0.45);
    z-index: 1251;
    display: flex; flex-direction: column;
    overflow: hidden;
}
.rp-asiento-modal-header[b-917jyu3rtm] {
    display: flex; align-items: center; gap: 10px;
    padding: 10px 14px;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    font-weight: 700;
    letter-spacing: 0.04em;
    flex-shrink: 0;
}
.rp-asiento-modal-header i[b-917jyu3rtm] { font-size: 18px; }
.rp-asiento-modal-header span[b-917jyu3rtm] { flex: 1; }
.rp-asiento-modal-close[b-917jyu3rtm] {
    width: 32px; height: 32px;
    border: none;
    background: rgba(255,255,255,0.15);
    color: #fff;
    border-radius: 4px;
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 16px;
}
.rp-asiento-modal-close:hover[b-917jyu3rtm] { background: rgba(255,255,255,0.28); }
.rp-asiento-modal-iframe[b-917jyu3rtm] {
    flex: 1 1 auto;
    width: 100%;
    border: none;
    background: #fff;
    display: block;
}

/* ===== Modal Ayuda (cliente 2026-05-27) ===== */
.rp-ayuda[b-917jyu3rtm] {
    position: fixed;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 720px; max-width: 90vw;
    max-height: 84vh;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 12px 40px rgba(0,0,0,0.35);
    z-index: 1300;
    display: flex; flex-direction: column;
    overflow: hidden;
}
.rp-ayuda-header[b-917jyu3rtm] {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 16px;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    font-weight: 700;
    letter-spacing: 0.04em;
}
.rp-ayuda-header i[b-917jyu3rtm] { font-size: 18px; }
.rp-ayuda-header span[b-917jyu3rtm] { flex: 1; }
.rp-ayuda-close[b-917jyu3rtm] {
    width: 32px; height: 32px;
    border: none;
    background: rgba(255,255,255,0.15);
    color: #fff;
    border-radius: 4px;
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
}
.rp-ayuda-close:hover[b-917jyu3rtm] { background: rgba(255,255,255,0.25); }

.rp-ayuda-body[b-917jyu3rtm] {
    padding: 18px 22px;
    overflow-y: auto;
    color: #2b3640;
    font-size: 13px;
    line-height: 1.55;
}
.rp-ayuda-body p[b-917jyu3rtm] { margin: 0 0 12px 0; }
.rp-ayuda-body ul[b-917jyu3rtm] { margin: 0 0 14px 18px; padding: 0; }
.rp-ayuda-body li[b-917jyu3rtm] { margin-bottom: 6px; }
.rp-ayuda-body strong[b-917jyu3rtm] { color: #1a2530; }
.rp-ayuda-body kbd[b-917jyu3rtm] {
    display: inline-block;
    padding: 1px 7px;
    border: 1px solid #c5cdd9;
    border-radius: 3px;
    background: linear-gradient(180deg, #ffffff 0%, #f1f4f8 100%);
    font-family: 'Segoe UI', system-ui, sans-serif;
    font-size: 11.5px;
    font-weight: 600;
    color: #1f4a87;
    box-shadow: 0 1px 0 #d4dae3;
}
.rp-ayuda-footer[b-917jyu3rtm] {
    display: flex; justify-content: flex-end; gap: 8px;
    padding: 10px 16px;
    background: #fafbfd;
    border-top: 1px solid #e2e8f0;
}

/* Chips KPI compactos dentro del footer (cliente 2026-05-27 — sustituyen
   a la banda .rp-kpi-band que ocupaba demasiado vertical). Pills con
   border-left semántico al estilo Familia A §2.30a en formato chip.
   Etiqueta a la izquierda con icono + número fuerte + sufijo descriptivo. */
.rp-chip[b-917jyu3rtm] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    padding: 0 10px;
    background: #fafdff;
    border: 1px solid #c5cdd9;
    border-left: 3px solid #c5cdd9;
    border-radius: 4px;
    font-size: 11px;
    color: #3a4754;
    box-shadow: 0 1px 1px rgba(0,0,0,0.04);
}
.rp-chip i[b-917jyu3rtm] { font-size: 11px; }
.rp-chip strong[b-917jyu3rtm] {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    color: #1a2530;
    font-size: 13px;
}
.rp-chip small[b-917jyu3rtm] {
    color: #6a7585;
    font-size: 10px;
    text-transform: lowercase;
}

/* Punteo */
.rp-chip-punteado[b-917jyu3rtm]    { border-left-color: #1d6f42; }
.rp-chip-punteado i[b-917jyu3rtm], .rp-chip-punteado strong[b-917jyu3rtm] { color: #1d6f42; }
.rp-chip-sinpuntear[b-917jyu3rtm]  { border-left-color: #a31f1f; }
.rp-chip-sinpuntear i[b-917jyu3rtm], .rp-chip-sinpuntear strong[b-917jyu3rtm] { color: #a31f1f; }
.rp-chip-saldo[b-917jyu3rtm]       { border-left-color: #d8a728; background: #fffdef; }
.rp-chip-saldo i[b-917jyu3rtm]     { color: #b08000; }
.rp-chip-saldo strong.neg[b-917jyu3rtm] { color: #a31f1f; }
.rp-chip-saldo strong.pos[b-917jyu3rtm] { color: #1d6f42; }

/* Revisión */
.rp-chip-pendientes[b-917jyu3rtm]  { border-left-color: #d8a728; background: #fffdef; }
.rp-chip-pendientes i[b-917jyu3rtm], .rp-chip-pendientes strong[b-917jyu3rtm] { color: #b08000; }
.rp-chip-revisados[b-917jyu3rtm]   { border-left-color: #1d6f42; }
.rp-chip-revisados i[b-917jyu3rtm], .rp-chip-revisados strong[b-917jyu3rtm]  { color: #1d6f42; }
.rp-chip-total[b-917jyu3rtm]       { border-left-color: #1f4a87; }
.rp-chip-total i[b-917jyu3rtm], .rp-chip-total strong[b-917jyu3rtm] { color: #1f4a87; }

/* ===== Inputs fecha estilo Diario (cliente 2026-05-27) =====
   Réplica visual del .diario-hdr-fecha + .diario-hdr-picker. */
.rp-fecha[b-917jyu3rtm] {
    width: 100px !important;
    height: 28px !important;
    padding: 2px 8px !important;
    text-align: center;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
    border: 1px solid #c5cdd9 !important;
    border-radius: 3px !important;
    background: #fff !important;
    color: #1a2530 !important;
}
.rp-fecha:focus[b-917jyu3rtm] {
    outline: none;
    border-color: #1f4a87 !important;
    box-shadow: 0 0 0 2px rgba(31,74,135,0.18);
}
.rp-picker[b-917jyu3rtm] {
    width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    border: 1px solid #c5cdd9 !important;
    border-radius: 3px !important;
    background: #fff !important;
    cursor: pointer;
    color: #1f4a87;
}

/* ===== Fila "Mostrar más" del scroll infinito ===== */
.rp-row-more td[b-917jyu3rtm] {
    text-align: center;
    padding: 12px 8px !important;
    color: #6a7585;
    font-style: italic;
    font-size: 12px;
    background: #f6f9fd;
    border-top: 1px solid #d4dae3;
}
.rp-row-more td i[b-917jyu3rtm] { margin-right: 6px; color: #1f4a87; }

/* ===== Chips/Pills/Tags del grid — CLON del Diario (cliente 2026-05-27) =====
   Las clases asiento-chip, fecha-pill, concepto-tag, dh-pill, cell-cta
   las define el Diario en su scoped CSS. Como el modal vive en el RCL,
   necesitamos replicarlas aquí para que apliquen visualmente. Mantener
   sincronizadas con el Diario si éste cambia. */
.asiento-chip[b-917jyu3rtm] {
    display: inline-block;
    min-width: 56px;
    padding: 2px 8px;
    background: linear-gradient(180deg, #f5fbff 0%, #d8ecff 100%);
    border: 1px solid #7ba4d6;
    border-left: 3px solid currentColor;
    border-radius: 3px;
    color: #1f4a87;
    font-weight: 700;
    font-size: 11px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}
.fecha-pill[b-917jyu3rtm] {
    display: inline-block;
    padding: 2px 8px;
    background: #f1f4f8;
    border: 1px solid #c5cdd9;
    border-radius: 12px;
    color: #2b3640;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
}
.concepto-tag[b-917jyu3rtm] {
    display: inline-block;
    padding: 2px 10px;
    background: linear-gradient(180deg, #f6f0fb 0%, #e8d8f0 100%);
    border: 1px solid #b794c9;
    border-radius: 10px;
    color: #6a358a;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.dh-pill[b-917jyu3rtm] {
    display: inline-block;
    width: 20px; height: 20px;
    line-height: 20px;
    border-radius: 50%;
    color: #fff;
    font-weight: 700;
    font-size: 11px;
    text-align: center;
    box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}
.dh-pill.dh-d[b-917jyu3rtm] { background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%); }
.dh-pill.dh-h[b-917jyu3rtm] { background: linear-gradient(180deg, #c47a3c 0%, #a4642a 100%); }
.cell-cta[b-917jyu3rtm] {
    font-variant-numeric: tabular-nums;
    color: #2a55a3;
    font-weight: 600;
    letter-spacing: 0.02em;
}

/* ===== Expansor de desglose analítico (DOC 40e — rollout G01 2026-08-15) =====
   En la celda Sección del grid: botoncito que abre la ventana emergente
   <AnaDesgloseDialog> (presentación JJ 2026-08-15) + chip discreto "N secc."
   cuando la línea tiene reparto multi-sección. Clon del canon
   DiarioApuntes. */
.cell-desglose[b-917jyu3rtm] {
    white-space: nowrap;
}
.desg-exp-btn[b-917jyu3rtm] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-right: 5px;
    padding: 0;
    background: #eef2f7;
    border: 1px solid #c5cdd9;
    border-radius: 3px;
    color: #2f6ec1;
    font-size: 12px;
    line-height: 1;
    cursor: pointer;
    vertical-align: middle;
}
.desg-exp-btn:hover[b-917jyu3rtm] { background: #dde8f5; border-color: #9db6d6; }
.desg-exp-btn.open[b-917jyu3rtm] {
    background: #2f6ec1;
    border-color: #1f4a87;
    color: #fff;
}
.desg-chip[b-917jyu3rtm] {
    display: inline-block;
    padding: 0 8px;
    border-radius: 9px;
    font-size: 11px;
    font-weight: 600;
    color: #1f4a87;
    background: #e3edf9;
    border: 1px solid #b9d0ec;
    vertical-align: middle;
    white-space: nowrap;
}

/* Toggle "Asientos agrupados" (norma universal JJ 2026-08-15) — checkbox
   discreto en la fila de filtros del toolbar. */
.rp-agrupado-toggle[b-917jyu3rtm] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 500;
    color: #2b3640;
    cursor: pointer;
    white-space: nowrap;
    user-select: none;
}
.rp-agrupado-toggle input[b-917jyu3rtm] {
    cursor: pointer;
}
/* _content/NetOffice.Web.Forms/Components/RichTextField.razor.rz.scp.css */
/* RichTextField — vista previa compacta + modal (RCL 2026-07-05). */

/* El ALTO manda desde el WRAPPER (2026-08-17). La caja de dentro lo rellena al
   100 %, así que una pantalla que necesite el campo más bajo —los media query de
   §2.18 de Crear pedido, por ejemplo— sólo tiene que darle alto a `.rtf-wrap` y
   la caja obedece.

   POR QUÉ ESTÁ ESCRITO ASÍ. Antes el alto vivía SOLO en la caja
   (`.rtf-preview`/`.rtf-plain { height: var(--rtf-h) }`) y el wrapper no tenía
   ninguno: encogía el wrapper y la caja seguía midiendo sus 120px, se salía por
   abajo y tapaba lo que hubiera debajo (en Crear pedido, la barra de paradas del
   itinerario: 74px de derrame medidos en el navegador el 17/08). Y era invisible
   desde el inspector si mirabas el wrapper, que sí obedecía — de ahí que se diera
   por arreglado dos veces sin estarlo.

   Sobreescribir `--rtf-h` desde fuera NO vale como alternativa: el consumidor lo
   fija INLINE (`style="--rtf-h:@PreviewHeight"`) y el inline gana a la hoja de
   estilos salvo `!important`. Con el alto en el wrapper, un `height:` normal
   basta. */
.rtf-wrap[b-qx2461lipg] {
    width: 100%; min-width: 0; position: relative;
    height: var(--rtf-h, 96px);
}

/* Texto PLANO — se teclea directo en la caja (5ª ronda 2026-07-05). */
.rtf-plain[b-qx2461lipg] {
    display: block;
    width: 100%;
    height: 100%;          /* el alto lo pone .rtf-wrap */
    resize: none;
    box-sizing: border-box;
    border: 1px solid #c6d2e0;
    border-radius: 4px;
    background: #fff;
    padding: 5px 46px 5px 9px;   /* hueco del lápiz: right 20px + 23 de ancho + 3 */
    font-family: inherit;
    font-size: 12.5px;
    line-height: 1.35;
}
.rtf-plain:focus[b-qx2461lipg] { outline: none; border-color: #5fa8ff; box-shadow: 0 0 0 2px #dbeafe; }
.rtf-plain[b-qx2461lipg]::placeholder { color: #94a3b8; font-style: italic; font-size: 12px; }

/* Lápiz con color (5ª ronda: "ponlo con algo de color para que se aprecie").
   A 20px del borde y no a 5 (norma, Jano 2026-11-03): con un texto largo la caja saca su
   barra de scroll (15px en Windows + 1 de borde) y el lápiz la tapaba. Las dos cajas
   (.rtf-plain, .rtf-preview) dejan 46px a la derecha para que el texto no pase por debajo. */
.rtf-edit-btn[b-qx2461lipg] {
    position: absolute;
    top: 4px; right: 20px;
    width: 23px; height: 23px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid #b6d0ea;
    border-radius: 4px;
    background: #e7f1ff;
    color: #2a70c2;
    font-size: 11px;
    cursor: pointer;
    padding: 0;
    z-index: 2;
}
.rtf-edit-btn:hover[b-qx2461lipg] { background: #2a70c2; border-color: #1d558f; color: #fff; }

.rtf-preview[b-qx2461lipg] {
    position: relative;
    height: 100%;          /* el alto lo pone .rtf-wrap */
    box-sizing: border-box;
    overflow-y: auto;
    border: 1px solid #c6d2e0;
    border-radius: 4px;
    background: #fff;
    padding: 5px 46px 5px 9px;   /* hueco del lápiz: right 20px + 23 de ancho + 3 */
    font-size: 12.5px;
    line-height: 1.35;
    cursor: pointer;
    transition: border-color .12s ease, box-shadow .12s ease;
}
.rtf-wrap.ro .rtf-preview[b-qx2461lipg] { cursor: default; background: #f6f8fa; border-color: #d5dde6; }
.rtf-wrap:not(.ro) .rtf-preview:hover[b-qx2461lipg] { border-color: #5fa8ff; box-shadow: 0 0 0 2px #dbeafe; }

.rtf-ph[b-qx2461lipg] { color: #94a3b8; font-style: italic; font-size: 12px; }

/* El HTML inyectado (MarkupString) no lleva el atributo de scope → ::deep. */
.rtf-preview[b-qx2461lipg]  p { margin: 0 0 3px; }
.rtf-preview[b-qx2461lipg]  ul, .rtf-preview[b-qx2461lipg]  ol { margin: 0 0 3px; padding-left: 18px; }
.rtf-preview[b-qx2461lipg]  table { border-collapse: collapse; }
.rtf-preview[b-qx2461lipg]  table td, .rtf-preview[b-qx2461lipg]  table th { border: 1px solid #c5cdd9; padding: 2px 6px; }
.rtf-preview[b-qx2461lipg]  img { max-width: 100%; }

/* ═══ Modal ═══ */
.rtf-overlay[b-qx2461lipg] {
    position: fixed; inset: 0;
    /* Capas (2026-07-06): POR ENCIMA de .lookup-dialog (1102) — el campo
       puede vivir DENTRO de un modal (editor de itinerario de Tarifas) y su
       editor debe abrir delante. El MejorarTextoIaDialog va aún más arriba
       (.mejorar-ia-backdrop 1195 / .mejorar-ia-dialog 1200). */
    z-index: 1110;
    background: rgba(15, 23, 42, 0.45);
    display: flex; align-items: center; justify-content: center;
}
.rtf-dialog[b-qx2461lipg] {
    width: min(840px, 94vw);
    max-height: 90vh;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35);
    display: flex; flex-direction: column;
}
.rtf-head[b-qx2461lipg] {
    display: flex; align-items: center; justify-content: space-between;
    padding: 8px 14px;
    background: linear-gradient(180deg, #47688f 0%, #35547a 100%);
    color: #fff;
    font-weight: 700; font-size: 13px;
    border-radius: 8px 8px 0 0;
}
.rtf-head i[b-qx2461lipg] { margin-right: 6px; }
.rtf-head-actions[b-qx2461lipg] { display: inline-flex; align-items: center; gap: 10px; }
/* Botón "Mejorar con IA" — verde, mismo lenguaje que el Registro de incidencias. */
.rtf-ia[b-qx2461lipg] {
    width: 28px; height: 24px;
    display: inline-flex; align-items: center; justify-content: center;
    border: 1px solid #17603a;
    border-radius: 4px;
    background: linear-gradient(180deg, #29a663, #1a6b3d);
    color: #fff;
    cursor: pointer;
    padding: 0;
    font-size: 13px;
}
.rtf-ia:hover[b-qx2461lipg] { filter: brightness(1.12); }
.rtf-ia i[b-qx2461lipg] { margin: 0; }
.rtf-close[b-qx2461lipg] {
    border: none; background: transparent;
    color: #fff; font-size: 20px; line-height: 1;
    cursor: pointer; padding: 0 2px;
}
.rtf-body[b-qx2461lipg] { padding: 10px 12px 0 12px; overflow-y: auto; }
.rtf-foot[b-qx2461lipg] { display: flex; justify-content: flex-end; gap: 10px; padding: 10px 14px 12px; }

/* Fila de variables bajo el editor (opt-in con el parámetro Variables). */
.rtf-vars[b-qx2461lipg] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 8px 2px 2px; border-top: 1px dashed #cbd5e1; margin-top: 8px; }
.rtf-vars-tit[b-qx2461lipg] { font-size: 12px; font-weight: 600; color: #1f4a87; margin-right: 4px; display: inline-flex; align-items: center; gap: 5px; }
.rtf-var[b-qx2461lipg] { font-family: Consolas, 'Courier New', monospace; font-size: 12px; padding: 2px 8px; border: 1px solid #bcd0ea; border-radius: 999px; background: #eef4fc; color: #1f4a87; cursor: pointer; }
.rtf-var:hover[b-qx2461lipg] { background: #1f4a87; color: #fff; border-color: #1f4a87; }
/* _content/NetOffice.Web.Forms/Components/RiesgoClienteDialog.razor.rz.scp.css */
/* RiesgoClienteDialog — patrón form_riesgo (clon de §2.30 ExtractoDialog).
   Modal full-viewport: cabecera azul corp + 6 cajas de totales + toolbar
   slate + grid read-only de 17 columnas (con scroll horizontal — son
   muchas columnas, distinto del extracto que cabía en ancho) + footer. */

.riesgo-dialog[b-uctfxngbva] {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    max-height: 100vh !important;
    top: 0 !important;
    left: 50% !important;
    transform: translate(-50%, 0) !important;
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    display: flex;
    flex-direction: column;
    background: #f4f6fa;
    border: 1px solid #c5cdd9;
    overflow: hidden;
    position: relative;
}

/* ----- Cabecera azul corp ----- */
.riesgo-header[b-uctfxngbva] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%) !important;
    color: #fff !important;
    border-bottom: none !important;
    padding: 12px 18px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 0.2px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.15) !important;
    display: flex;
    align-items: center;
}
.riesgo-header > span[b-uctfxngbva] { display: inline-flex; align-items: center; gap: 8px; color: #fff !important; }
.riesgo-header .riesgo-header-icon[b-uctfxngbva] { color: #ffd86b !important; font-size: 16px; margin-right: 4px; }
.riesgo-header .lookup-close[b-uctfxngbva] {
    color: #fff !important;
    background: rgba(255,255,255,0.10) !important;
    border: 1px solid rgba(255,255,255,0.30) !important;
    border-radius: 5px !important;
    width: 28px !important; height: 28px !important;
}
.riesgo-header .lookup-close:hover[b-uctfxngbva] { background: rgba(255,255,255,0.22) !important; }
.riesgo-header .riesgo-header-label[b-uctfxngbva] { font-weight: 500; opacity: 0.92; }
.riesgo-header strong[b-uctfxngbva] {
    font-family: inherit;
    font-variant-numeric: tabular-nums;
    font-size: 14px;
    letter-spacing: 0.4px;
    color: #fff !important;
    background: rgba(255,255,255,0.18);
    padding: 2px 10px;
    border-radius: 4px;
    border: 1px solid rgba(255,255,255,0.30);
}
.riesgo-header .riesgo-header-nombre[b-uctfxngbva] { color: #fff !important; font-weight: 500; margin-left: 4px; opacity: 0.95; }

/* Chip empresa (mismo lenguaje que ContextoBar / ExtractoDialog) */
.riesgo-empresa-bar[b-uctfxngbva] {
    display: inline-flex !important;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    padding: 4px 14px 4px 6px;
    background: #ffffff;
    border: 1px solid rgba(0,0,0,0.20);
    border-radius: 16px;
    color: #1f2937 !important;
    font-size: 12.5px;
    font-weight: 600;
    max-width: 38%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    box-shadow: 0 1px 2px rgba(0,0,0,0.08);
}
.riesgo-empresa-bar i[b-uctfxngbva] { color: #1f4a87 !important; font-size: 14px; }
.riesgo-empresa-bar .riesgo-empresa-logo[b-uctfxngbva] {
    width: 24px; height: 24px;
    object-fit: contain;
    background: #fff;
    border-radius: 50%;
    padding: 2px;
    flex: 0 0 auto;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.12);
}
.riesgo-empresa-bar .riesgo-empresa-nombre[b-uctfxngbva] { color: #1f2937 !important; font-weight: 700; letter-spacing: 0.2px; }
.riesgo-empresa-bar .riesgo-empresa-sep[b-uctfxngbva] { color: rgba(0,0,0,0.40); margin: 0 2px; }
.riesgo-empresa-bar .riesgo-empresa-subt[b-uctfxngbva] { color: #4a5566 !important; font-weight: 500; overflow: hidden; text-overflow: ellipsis; }

.riesgo-header-titulo[b-uctfxngbva] {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: 1 1 auto;
    min-width: 0;
    text-align: center;
    color: #fff !important;
    overflow: hidden;
    padding: 0 14px;
}

/* ===== Totales — 6 cajas (Familia A §2.30a) ===== */
.riesgo-totales[b-uctfxngbva] {
    display: flex;
    gap: 10px;
    padding: 12px 18px;
    background: #f7f9fc;
    border-bottom: 1px solid #d4dae3;
    flex-shrink: 0;
}
.riesgo-totales .totalbox[b-uctfxngbva] {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 10px 14px;
    background: #fafdff;
    border: 1px solid #d4dae3;
    border-left: 3px solid #1f4a87;
    border-radius: 4px;
    box-shadow: 0 1px 2px rgba(15,30,55,0.04);
    transition: box-shadow 0.15s;
    min-width: 0;
}
.riesgo-totales .totalbox:hover[b-uctfxngbva] { box-shadow: 0 2px 6px rgba(15,30,55,0.10); }
.riesgo-totales .totalbox-label[b-uctfxngbva] {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: #5e6b7c;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.riesgo-totales .totalbox-value[b-uctfxngbva] {
    font-size: 18px;
    font-weight: 700;
    color: #1f2937;
    font-variant-numeric: tabular-nums;
    margin-top: 3px;
    line-height: 1.1;
}
/* Acento semántico por posición (border-left + label) — §2.30a. */
.riesgo-totales .tb-riesgo-emp[b-uctfxngbva]  { border-left-color: #1f4a87; }
.riesgo-totales .tb-riesgo-emp  .totalbox-label[b-uctfxngbva] { color: #1f4a87; }
.riesgo-totales .tb-riesgo-aseg[b-uctfxngbva] { border-left-color: #2f6ec1; }
.riesgo-totales .tb-riesgo-aseg .totalbox-label[b-uctfxngbva] { color: #2f6ec1; }
.riesgo-totales .tb-negociado[b-uctfxngbva]   { border-left-color: #29a663; }
.riesgo-totales .tb-negociado   .totalbox-label[b-uctfxngbva] { color: #1d6f42; }
.riesgo-totales .tb-cartera[b-uctfxngbva]     { border-left-color: #5d2880; }
.riesgo-totales .tb-cartera     .totalbox-label[b-uctfxngbva] { color: #5d2880; }
.riesgo-totales .tb-pendientes[b-uctfxngbva]  { border-left-color: #c2710c; }
.riesgo-totales .tb-pendientes  .totalbox-label[b-uctfxngbva] { color: #c2710c; }
.riesgo-totales .totalbox-saldo[b-uctfxngbva] {
    background: linear-gradient(180deg, #fff8d0 0%, #fff5b3 100%);
    border-color: #d8c270;
    border-left-color: #d8a728;
}
.riesgo-totales .totalbox-saldo .totalbox-label[b-uctfxngbva] { color: #7a5b00; }
.riesgo-totales .totalbox-saldo .totalbox-value[b-uctfxngbva] { color: #4a3a00; }

/* ===== Toolbar slate-titled ===== */
.riesgo-toolbar[b-uctfxngbva] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 18px;
    background: linear-gradient(180deg, #27548f 0%, #173a6b 100%);
    color: #fff;
    border-left: 4px solid #5fa8ff;
    font-size: 12px;
    text-shadow: 0 1px 0 rgba(0,0,0,0.25);
    flex-shrink: 0;
}
.riesgo-toolbar-icon[b-uctfxngbva] { color: #aac6e8; font-size: 14px; }
.riesgo-toolbar-title[b-uctfxngbva] { font-weight: 700; letter-spacing: 0.6px; font-size: 12.5px; }
.riesgo-toolbar-count[b-uctfxngbva] {
    background: rgba(255,255,255,0.14);
    border: 1px solid rgba(255,255,255,0.22);
    color: #e9f1fc;
    border-radius: 11px;
    padding: 2px 10px;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}
.riesgo-toolbar-spacer[b-uctfxngbva] { flex: 1 1 auto; }
.riesgo-tb-buttons[b-uctfxngbva] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 6px;
    padding-left: 8px;
    border-left: 1px solid rgba(255,255,255,0.18);
}
.riesgo-tb-btn[b-uctfxngbva] {
    width: 30px; height: 26px;
    border: 1px solid #b9c6d6;
    border-radius: 5px;
    background: linear-gradient(180deg, #ffffff 0%, #eef3f9 100%);
    color: #1f4a87;
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    transition: all 0.15s;
}
.riesgo-tb-btn:hover:not(:disabled)[b-uctfxngbva] { background: linear-gradient(180deg, #f5fbff 0%, #d8ecff 100%); border-color: #1f4a87; }
.riesgo-tb-btn:disabled[b-uctfxngbva] { opacity: 0.45; cursor: not-allowed; background: #f0f3f8; }
.riesgo-tb-btn.active[b-uctfxngbva] {
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    border-color: #1f4a87;
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.20), 0 1px 2px rgba(0,0,0,0.15);
}
.riesgo-tb-btn i[b-uctfxngbva] { font-size: 13px; }
.riesgo-tb-btn.riesgo-tb-excel[b-uctfxngbva] {
    background: linear-gradient(180deg, #29a663 0%, #1d6f42 100%);
    border-color: #1d6f42;
    color: #fff;
}
.riesgo-tb-btn.riesgo-tb-excel:hover:not(:disabled)[b-uctfxngbva] { background: linear-gradient(180deg, #2fb572 0%, #237a4b 100%); }
.riesgo-tb-btn.riesgo-tb-excel:disabled[b-uctfxngbva] { background: #b8d8c5; border-color: #8aaa97; }

/* ===== Grid read-only (17 columnas — scroll horizontal) ===== */
.riesgo-grid-wrap[b-uctfxngbva] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    background: #fff;
    border-top: 1px solid #c5cdd9;
    outline: none;
}
.riesgo-table[b-uctfxngbva] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
}
.riesgo-table thead[b-uctfxngbva] { position: sticky; top: 0; z-index: 5; background: #fff; }
.riesgo-table thead th[b-uctfxngbva] {
    background: #eef2f7;
    color: #1f4a87;
    font-weight: 700;
    text-align: left;
    padding: 7px 10px;
    border-bottom: 2px solid #1f4a87;
    white-space: nowrap;
    font-size: 11px;
    letter-spacing: 0.3px;
    text-transform: uppercase;
}
.riesgo-table thead th.num[b-uctfxngbva] { text-align: right; }
.riesgo-table thead th.sortable[b-uctfxngbva] { cursor: pointer; user-select: none; }
.riesgo-table thead th.sortable:hover[b-uctfxngbva] { background: #e2e9f3; }
.riesgo-table thead .sort-arrow[b-uctfxngbva] { color: #1f4a87; font-size: 10px; margin-left: 2px; }
.riesgo-table thead .grid-filter-row th[b-uctfxngbva] {
    background: #f6f9fd;
    padding: 3px 5px;
    border-bottom: 1px solid #d4dae3;
    text-transform: none;
    letter-spacing: 0;
    font-weight: normal;
}
.riesgo-table thead .grid-filter-inp[b-uctfxngbva] {
    width: 100%;
    min-width: 70px;
    height: 22px;
    padding: 0 6px;
    border: 1px solid #c9ced4;
    border-radius: 3px;
    font-size: 11px;
    outline: none;
}
.riesgo-table thead .grid-filter-inp.num[b-uctfxngbva] { text-align: right; font-variant-numeric: tabular-nums; }
.riesgo-table thead .grid-filter-inp:focus[b-uctfxngbva] { border-color: #3874cb; box-shadow: inset 0 0 0 1px #3874cb; }

.riesgo-table tbody td[b-uctfxngbva] {
    padding: 5px 10px;
    border-bottom: 1px solid #eef0f4;
    white-space: nowrap;
    vertical-align: middle;
}
.riesgo-table tbody td.num[b-uctfxngbva] { text-align: right; }
.riesgo-table tbody tr:nth-child(odd)[b-uctfxngbva] { background: #fbfcfe; }
.riesgo-table tbody tr:hover[b-uctfxngbva] { background: #eef4fc; cursor: pointer; }
.riesgo-table tbody tr.selected[b-uctfxngbva],
.riesgo-table tbody tr.selected:nth-child(odd)[b-uctfxngbva] { background: #d8e8fb; }
.riesgo-table tbody tr.selected td:first-child[b-uctfxngbva] { box-shadow: inset 3px 0 0 #1f4a87; }
.riesgo-table tbody tr[b-uctfxngbva] { scroll-margin-top: 56px; }
.riesgo-table tbody tr.row-empty:hover[b-uctfxngbva] { background: transparent; cursor: default; }
.riesgo-table tbody tr.row-empty td[b-uctfxngbva] {
    text-align: center;
    color: #6b7280;
    padding: 36px 10px;
    font-style: italic;
    font-size: 13px;
}

/* Celdas con look propio */
.cell-datos .datos-tag[b-uctfxngbva] {
    display: inline-block;
    border-radius: 3px;
    padding: 1px 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.3px;
}
.cell-datos .datos-tag.datos-neg[b-uctfxngbva] { background: #eaf6ee; color: #1d6f42; border: 1px solid #b6dcc4; }
.cell-datos .datos-tag.datos-car[b-uctfxngbva] { background: #eef2fb; color: #1f4a87; border: 1px solid #c2d2ee; }
.cell-importe[b-uctfxngbva]   { font-weight: 600; color: #1f2937; }
.cell-consumido[b-uctfxngbva] { color: #a31f1f; font-weight: 600; }
.cell-disponible[b-uctfxngbva]{ color: #1d6f42; font-weight: 600; }
.cell-excedido[b-uctfxngbva]  { color: #6b7280; }
.cell-excedido.cell-excedido-on[b-uctfxngbva] { color: #fff; background: #d94f4f; font-weight: 700; }
.cell-fecha[b-uctfxngbva]     { color: #1f4a87; }
.cell-doc[b-uctfxngbva]       { color: #1f2937; max-width: 160px; overflow: hidden; text-overflow: ellipsis; }
.cell-nombre[b-uctfxngbva]    { color: #1f2937; max-width: 200px; overflow: hidden; text-overflow: ellipsis; }
.cell-tipo[b-uctfxngbva],
.cell-norma[b-uctfxngbva]     { color: #4a5566; }
.cell-banco[b-uctfxngbva]     { color: #4a5566; max-width: 160px; overflow: hidden; text-overflow: ellipsis; }
.cell-ejercicio[b-uctfxngbva] { color: #6b7280; text-align: center; }
.cell-serie[b-uctfxngbva]     { color: #5d2880; font-weight: 600; }
.cell-numero[b-uctfxngbva]    { color: #6b7280; }
.cell-estado[b-uctfxngbva]    { color: #6b7280; text-align: center; }
.cell-riesgo[b-uctfxngbva]    { font-weight: 700; color: #1f4a87; padding-right: 14px !important; }

/* ===== Footer ===== */
.riesgo-footer[b-uctfxngbva] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 18px;
    background: #f4f6fa;
    border-top: 1px solid #d4dae3;
    flex-shrink: 0;
}
.riesgo-footer-spacer[b-uctfxngbva] { flex: 1 1 auto; }
.riesgo-footer .bbtn[b-uctfxngbva] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 5px;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid #c5cdd9;
    background: #fff;
    color: #1f4a87;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: background 0.12s, border-color 0.12s, box-shadow 0.15s;
}
.riesgo-footer .bbtn:hover:not(:disabled)[b-uctfxngbva] { background: #f5f8fc; border-color: #1f4a87; box-shadow: 0 2px 5px rgba(31,74,135,0.18); }
.riesgo-footer .bbtn:disabled[b-uctfxngbva] { opacity: 0.55; cursor: not-allowed; background: #f3f5f8; }
.riesgo-footer .bbtn-riesgo-imprimir[b-uctfxngbva] { color: #1d6f42; }
.riesgo-footer .bbtn-riesgo-imprimir:hover:not(:disabled)[b-uctfxngbva] { border-color: #1d6f42; box-shadow: 0 2px 5px rgba(29,111,66,0.20); }
.riesgo-footer .bbtn:last-child[b-uctfxngbva] { background: #fff; border-color: #c5cdd9; color: #3a4754; }
.riesgo-footer .bbtn:last-child:hover[b-uctfxngbva] { background: #f5f7fa; border-color: #8b95a3; color: #1f2937; box-shadow: 0 2px 5px rgba(58,71,84,0.15); }

/* Spinner del botón Imprimir mientras la API compone el PDF */
.riesgo-footer .bbtn .spin[b-uctfxngbva] { display: inline-block; animation: riesgo-spin-b-uctfxngbva 0.8s linear infinite; }
@keyframes riesgo-spin-b-uctfxngbva { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* ===== Overlay Vista previa PDF (clon ExtractoDialog §2.30) ===== */
.pdf-preview-backdrop[b-uctfxngbva] {
    position: absolute;
    inset: 0;
    background: rgba(15, 30, 55, 0.65);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 50;
    padding: 24px;
}
.pdf-preview-panel[b-uctfxngbva] {
    width: min(1100px, 100%);
    height: min(95%, 95vh);
    background: #f4f6fa;
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.40);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.pdf-preview-header[b-uctfxngbva] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 18px;
    background: linear-gradient(135deg, #3a4754 0%, #2b3640 100%);
    color: #fff;
    font-weight: 600;
    font-size: 14px;
}
.pdf-preview-header i.bi-printer-fill[b-uctfxngbva] { color: #ffd86b; font-size: 16px; }
.pdf-preview-spacer[b-uctfxngbva] { flex: 1 1 auto; }
.pdf-preview-close[b-uctfxngbva] {
    border: none;
    background: rgba(255, 255, 255, 0.10);
    color: #fff;
    font-size: 20px;
    cursor: pointer;
    width: 28px; height: 28px;
    border-radius: 4px;
    line-height: 1;
}
.pdf-preview-close:hover[b-uctfxngbva] { background: rgba(255, 255, 255, 0.22); }
.pdf-preview-body[b-uctfxngbva] {
    flex: 1 1 auto;
    min-height: 0;
    background: #525659;
    overflow: hidden;
}
.pdf-preview-iframe[b-uctfxngbva] {
    width: 100%;
    height: 100%;
    border: none;
    background: #525659;
    display: block;
}
.pdf-preview-footer[b-uctfxngbva] {
    padding: 10px 18px;
    background: #fff;
    border-top: 1px solid #e0e6ee;
    display: flex;
    align-items: center;
    gap: 10px;
}
.pdf-preview-footer .bbtn[b-uctfxngbva] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 5px;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    border: 1px solid #c5cdd9;
    background: #fff;
    color: #1f4a87;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: background 0.12s, border-color 0.12s, box-shadow 0.15s;
}
.pdf-preview-footer .bbtn:hover:not(:disabled)[b-uctfxngbva] { background: #f5f8fc; border-color: #1f4a87; box-shadow: 0 2px 5px rgba(31,74,135,0.18); }
.pdf-preview-footer .bbtn-riesgo-imprimir[b-uctfxngbva] { color: #1d6f42; }
.pdf-preview-footer .bbtn:last-child[b-uctfxngbva] { color: #3a4754; }
/* _content/NetOffice.Web.Forms/Components/RutaMapaDialog.razor.rz.scp.css */
.ruta-backdrop[b-57g09a0ey8] {
    position: fixed;
    inset: 0;
    background: rgba(15, 30, 55, .45);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1250;
}

.ruta-box[b-57g09a0ey8] {
    width: 94vw;
    height: 90vh;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 18px 50px rgba(10, 25, 60, .35);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.ruta-head[b-57g09a0ey8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    background: #2f6ec1;
    color: #fff;
    font-weight: 600;
}

.ruta-head .bi[b-57g09a0ey8] { margin-right: 6px; }

.ruta-x[b-57g09a0ey8] {
    background: transparent;
    border: none;
    color: #fff;
    cursor: pointer;
    font-size: 1rem;
    padding: 2px 6px;
    border-radius: 5px;
}

.ruta-x:hover[b-57g09a0ey8] { background: rgba(255, 255, 255, .18); }

/* Barra superior: Recalcular + Kilómetros + Tiempo + pista de arrastre. */
.ruta-toolbar[b-57g09a0ey8] {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 9px 14px;
    border-bottom: 1px solid #d7e2f0;
    background: #f6f9fd;
    min-height: 20px;
}

.ruta-metric[b-57g09a0ey8] {
    font-size: .88rem;
    color: #24425e;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ruta-metric .bi[b-57g09a0ey8] { color: #2f6ec1; }
.ruta-metric b[b-57g09a0ey8] { color: #1c3350; font-size: .95rem; }

.ruta-hint[b-57g09a0ey8] {
    margin-left: auto;
    font-size: .8rem;
    color: #7d6a3a;
    background: #fff8e6;
    border: 1px solid #ecd9a3;
    border-radius: 6px;
    padding: 4px 10px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ruta-hint .bi[b-57g09a0ey8] { color: #b5892b; }

/* Aviso de coordenadas ESTIMADAS (paradas sin lat/long fija — 2026-07-05). */
.ruta-aviso[b-57g09a0ey8] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    font-size: .82rem;
    color: #7d6a3a;
    background: #fff8e6;
    border-bottom: 1px solid #ecd9a3;
}

.ruta-aviso .bi[b-57g09a0ey8] { color: #b5892b; }

.ruta-body[b-57g09a0ey8] { flex: 1 1 auto; position: relative; min-height: 0; }

.ruta-canvas[b-57g09a0ey8] {
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
}

/* Leyenda de marcadores (abajo-izquierda, sobre el mapa). */
.ruta-legend[b-57g09a0ey8] {
    position: absolute;
    left: 12px;
    bottom: 14px;
    z-index: 20;
    max-height: 46%;
    overflow-y: auto;
    background: rgba(255, 255, 255, .96);
    border: 1px solid #c7d2e0;
    border-radius: 8px;
    box-shadow: 0 8px 22px rgba(15, 40, 80, .22);
    padding: 8px 10px;
    min-width: 190px;
    max-width: 340px;
}

.ruta-legend-title[b-57g09a0ey8] {
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #2f6ec1;
    margin-bottom: 5px;
}

/* Letra de la leyenda MÁS GRANDE (cliente 2026-07-05): filas a 13.5px y la
   letra A/B del círculo a 13px; el nombre destaca en 600. */
.ruta-legend-row[b-57g09a0ey8] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 3px 0;
    font-size: 13.5px;
    color: #24425e;
}

.ruta-legend-pin[b-57g09a0ey8] {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #c62828;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ruta-legend-txt[b-57g09a0ey8] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ruta-legend-nom[b-57g09a0ey8] { font-weight: 600; }

/* Distintivo "coordenada estimada" + botón "Fijar" (2026-07-05). */
.ruta-legend-est[b-57g09a0ey8] {
    flex: 0 0 auto;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #7d6a3a;
    background: #fff8e6;
    border: 1px solid #ecd9a3;
    border-radius: 8px;
    padding: 1px 7px;
    margin-left: auto;
}

.ruta-fijar[b-57g09a0ey8] {
    flex: 0 0 auto;
    border: 1px solid #c4d2e4;
    background: #fff;
    color: #2b4a68;
    border-radius: 5px;
    padding: 1px 7px;
    cursor: pointer;
    font-size: 11px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    line-height: 1.4;
}

.ruta-fijar:hover[b-57g09a0ey8] { background: #eef4fc; }
.ruta-fijar .bi[b-57g09a0ey8] { color: #2f6ec1; font-size: 11px; }

/* Reorden ↑/↓ desde la leyenda (2026-07-05b). Las parejas van en bloque.
   Par de flechas JUNTAS en cápsula — MISMO diseño que el grid de paradas
   (ItinerarioParadasEditor .tcw-mv-group): borde suave, mitades con divisor,
   hover azul, disabled tenue. */
.ruta-mover[b-57g09a0ey8] {
    flex: 0 0 auto;
    margin-left: auto;
    display: inline-flex;
    align-items: stretch;
    height: 18px;
    border: 1px solid #c9d6e6;
    border-radius: 9px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 1px 1px rgba(25, 50, 90, .06);
}

/* Si la fila ya lleva el distintivo "estimada" (margin-left:auto), las flechas
   van pegadas detrás sin duplicar el empuje. */
.ruta-legend-est ~ .ruta-mover[b-57g09a0ey8],
.ruta-fijar ~ .ruta-mover[b-57g09a0ey8] { margin-left: 4px; }

.ruta-mv[b-57g09a0ey8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    border: none;
    background: transparent;
    color: #4c6a8c;
    font-size: 10px;
    line-height: 1;
    padding: 0;
    cursor: pointer;
}

.ruta-mv + .ruta-mv[b-57g09a0ey8] { border-left: 1px solid #e3ebf4; }
.ruta-mv:hover:not(:disabled)[b-57g09a0ey8] { background: #eaf3ff; color: #2a70c2; }
.ruta-mv:active:not(:disabled)[b-57g09a0ey8] { background: #dcebfc; }
.ruta-mv:disabled[b-57g09a0ey8] { color: #c6d1de; cursor: default; }

/* Fila de DESVÍO (punto de paso del arrastre): sangrada bajo su parada, con
   icono ámbar y X para quitarlo (recalcula la ruta sin él). */
.ruta-legend-row.paso[b-57g09a0ey8] {
    padding-left: 14px;
    font-size: 12.5px;
    color: #5c6770;
}

.ruta-legend-row.paso .ruta-legend-nom[b-57g09a0ey8] { color: #24425e; }

.ruta-legend-paso-ico[b-57g09a0ey8] {
    flex: 0 0 auto;
    width: 22px;
    text-align: center;
    color: #b5892b;
    font-size: 13px;
}

.ruta-paso-x[b-57g09a0ey8] {
    flex: 0 0 auto;
    margin-left: auto;
    border: none;
    background: transparent;
    color: #9aa7b5;
    cursor: pointer;
    font-size: 11px;
    padding: 2px 4px;
    border-radius: 4px;
    line-height: 1;
}

.ruta-paso-x:hover[b-57g09a0ey8] { background: #fdecea; color: #c62828; }

/* Aviso PTV (proveedor sin trazado editable). */
.ruta-ptv[b-57g09a0ey8] {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #5c6770;
    text-align: center;
    padding: 40px;
}

.ruta-ptv .bi[b-57g09a0ey8] { font-size: 2.2rem; color: #b9cadf; }
.ruta-ptv p[b-57g09a0ey8] { max-width: 460px; font-size: .9rem; line-height: 1.5; }

.ruta-foot[b-57g09a0ey8] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    border-top: 1px solid #e2e8f2;
    background: #f6f9fd;
}

.ruta-foot-info[b-57g09a0ey8] {
    font-size: .82rem;
    color: #33506e;
    margin-right: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ruta-foot-info .bi[b-57g09a0ey8] { color: #2f6ec1; }

/* Ruta aplicada por el motor de aprendizaje (2026-09-15): informativo, en el
   verde de «ruta validada», sin caja ni botón. */
.ruta-foot-aprendida[b-57g09a0ey8] { color: #1e7a3c; }
.ruta-foot-info .ruta-foot-aprendida .bi[b-57g09a0ey8] { color: #1e7a3c; }

.ruta-btn[b-57g09a0ey8] {
    border: 1px solid #c4d2e4;
    background: #fff;
    color: #2b4a68;
    padding: 6px 14px;
    border-radius: 6px;
    cursor: pointer;
    font-size: .84rem;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ruta-btn:hover[b-57g09a0ey8] { background: #eef4fc; }
.ruta-btn:disabled[b-57g09a0ey8] { opacity: .5; cursor: default; }

.ruta-btn.ok[b-57g09a0ey8] {
    background: #2f8f4e;
    border-color: #2a7f46;
    color: #fff;
}

.ruta-btn.ok:hover[b-57g09a0ey8] { background: #278043; }

/* «Validar ruta» (F2): más oscuro que el Aceptar verde — es el gesto fuerte
   del gestor (la ruta se guarda validada y se aprende). Icono escudo. */
.ruta-btn.validar[b-57g09a0ey8] {
    background: #1b5e20;
    border-color: #164e1a;
    color: #fff;
}

.ruta-btn.validar:hover[b-57g09a0ey8] { background: #144718; }
/* _content/NetOffice.Web.Forms/Components/SacarDocumentoBoton.razor.rz.scp.css */
/* Botón «Sacar a una ventana» por defecto (sobre cabeceras azules o grises). */
.sdb-btn[b-jrpwek1652] {
    display: inline-flex; align-items: center; gap: 5px;
    border: 1px solid #2c66ad; background: linear-gradient(180deg, #eaf4ff, #d8eaff);
    color: #1f4a87; font-size: 12px; font-weight: 600;
    padding: 3px 10px; border-radius: 5px; cursor: pointer; white-space: nowrap;
}
.sdb-btn:hover:not(:disabled)[b-jrpwek1652] { background: linear-gradient(180deg, #dcecff, #c3ddff); }
.sdb-btn:disabled[b-jrpwek1652] { opacity: .5; cursor: default; }
/* Sobre cabeceras oscuras (azul / slate). */
.sdb-btn.sdb-oscuro[b-jrpwek1652] {
    border-color: rgba(255, 255, 255, .55); background: rgba(255, 255, 255, .14); color: #fff;
}
.sdb-btn.sdb-oscuro:hover:not(:disabled)[b-jrpwek1652] { background: rgba(255, 255, 255, .28); }
/* _content/NetOffice.Web.Forms/Components/SeleccionCodigosFiltro.razor.rz.scp.css */
/* SeleccionCodigosFiltro — desplegable «una, varias o todas» (§3.4).
   Mismo lenguaje visual que la banda de filtros bs-* (botón blanco, azul
   #1f4a87). Sin ::deep: todo vive en este componente (§6.8). */

.scf[b-t2937p8tqs] { position: relative; display: inline-flex; align-items: center; }

.scf-btn[b-t2937p8tqs] {
    display: inline-flex; align-items: center; gap: 6px;
    height: 22px; padding: 0 6px 0 8px;
    background: #fff; color: #1f4a87;
    border: 1px solid #c5cdd9; border-radius: 3px;
    font-size: 12px; font-weight: 600; cursor: pointer; white-space: nowrap;
    text-align: left;
}
.scf-btn:hover:not(:disabled)[b-t2937p8tqs] { background: #eaf2fb; border-color: #7ba4d6; }
.scf-btn:focus[b-t2937p8tqs] { outline: none; border-color: #3874cb; box-shadow: 0 0 0 2px rgba(31,74,135,0.18); }
.scf-btn:disabled[b-t2937p8tqs] { opacity: 0.55; cursor: not-allowed; }
.scf-btn-filtrado[b-t2937p8tqs] { background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%); border-color: #1f4a87; color: #fff; }
.scf-btn-filtrado:hover:not(:disabled)[b-t2937p8tqs] { background: linear-gradient(180deg, #3580d0 0%, #2655a0 100%); border-color: #2655a0; }
.scf-btn-txt[b-t2937p8tqs] { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; }
.scf-caret[b-t2937p8tqs] { font-size: 9px; opacity: 0.8; }

.scf-backdrop[b-t2937p8tqs] { position: fixed; inset: 0; z-index: 60; background: transparent; }

.scf-panel[b-t2937p8tqs] {
    position: absolute; top: calc(100% + 4px); left: 0; z-index: 61;
    width: 340px; max-width: 90vw;
    background: #fff; border: 1px solid #b9c6d6; border-radius: 6px;
    box-shadow: 0 6px 20px rgba(31,74,135,0.22);
    display: flex; flex-direction: column;
}
.scf-head[b-t2937p8tqs] { display: flex; align-items: center; gap: 4px; padding: 6px; border-bottom: 1px solid #dfe6ef; }
.scf-filtro[b-t2937p8tqs] { flex: 1 1 auto; min-width: 0; height: 22px; font-size: 12px; }
.scf-mini[b-t2937p8tqs] {
    height: 22px; padding: 0 8px; font-size: 11px; font-weight: 600;
    background: #f3f7fc; color: #1f4a87; border: 1px solid #c5cdd9; border-radius: 3px; cursor: pointer; white-space: nowrap;
}
.scf-mini:hover[b-t2937p8tqs] { background: #eaf2fb; border-color: #7ba4d6; }
.scf-cerrar[b-t2937p8tqs] { background: linear-gradient(180deg, #29a663 0%, #1a6b3d 100%); color: #fff; border-color: #1a6b3d; }
.scf-cerrar:hover[b-t2937p8tqs] { background: linear-gradient(180deg, #2fb86e 0%, #1f7a46 100%); }

.scf-lista[b-t2937p8tqs] { max-height: 320px; overflow-y: auto; padding: 4px 0; }
.scf-fila[b-t2937p8tqs] {
    display: flex; align-items: center; gap: 8px;
    padding: 3px 10px; font-size: 12px; color: #223; cursor: pointer; margin: 0;
}
.scf-fila:hover[b-t2937p8tqs] { background: #f1f6fc; }
.scf-fila-on[b-t2937p8tqs] { background: #e8f0fb; }
.scf-fila input[type="checkbox"][b-t2937p8tqs] { margin: 0; flex: 0 0 auto; }
.scf-cod[b-t2937p8tqs] { flex: 0 0 auto; min-width: 54px; font-weight: 700; color: #1f4a87; letter-spacing: 0.02em; }
.scf-nom[b-t2937p8tqs] { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scf-vacio[b-t2937p8tqs] { padding: 12px; font-size: 12px; color: #7488a0; text-align: center; }
.scf-pie[b-t2937p8tqs] { padding: 4px 10px; border-top: 1px solid #dfe6ef; font-size: 11px; color: #4b5d75; font-weight: 600; }
/* _content/NetOffice.Web.Forms/Components/SubirPdfsDialog.razor.rz.scp.css */
/* SubirPdfsDialog — CSS scoped del diálogo de subida en bloque de PDFs.
   Traído del bloque `oc-sub-*` de OrdenesCorreo.razor.css cuando el diálogo se
   extrajo al RCL (2026-08-29); prefijo propio `spd-*`. El chrome del modal
   (backdrop/cabecera/botonera) es el mismo lenguaje visual que los `oc-modal`/
   `fc-modal` de las dos bandejas — se replica aquí porque el scoped CSS de una
   pantalla no alcanza al markup del componente.
   ⚠ Scoped CSS: selectores raíz SIN ::deep (con ::deep el selector raíz no
   matchea); ::deep sólo para lo que renderiza un hijo (el <input> del
   InputFile). */

.spd-backdrop[b-zb68o976fm] { position: fixed; inset: 0; background: rgba(20, 30, 50, .34); z-index: 1500; }

.spd-modal[b-zb68o976fm] {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(660px, 94vw);
    max-height: 88vh;
    overflow: auto;
    z-index: 1501;
    background: #fff;
    border: 1px solid #c5cdd9;
    border-radius: 10px;
    padding: 16px 18px;
    box-shadow: 0 14px 40px rgba(20, 30, 50, .32);
}

.spd-h[b-zb68o976fm] {
    font-size: 15px;
    font-weight: 700;
    color: #1f4a87;
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.spd-body[b-zb68o976fm] { font-size: 13px; color: #34465c; line-height: 1.5; }

.spd-intro[b-zb68o976fm] { margin: 0 0 12px; color: #4a5a70; }

/* Las dos vías, lado a lado y con el mismo peso: elegir carpeta entera o
   ficheros sueltos son dos maneras de hacer lo mismo, no una opción avanzada
   escondida detrás de la otra. */
.spd-vias[b-zb68o976fm] { display: flex; gap: 10px; }

.spd-via[b-zb68o976fm] {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 12px;
    background: #f6f9fd;
    border: 1px solid #ccdaea;
    border-radius: 6px;
    cursor: pointer;
}

.spd-via:hover[b-zb68o976fm] { background: #eef4fc; border-color: #9bbce4; }
.spd-via > i[b-zb68o976fm] { font-size: 17px; color: #17838f; }
.spd-via-tit[b-zb68o976fm] { font-size: 12.5px; font-weight: 700; color: #1f4a87; }
.spd-via-sub[b-zb68o976fm] { font-size: 11px; color: #74849a; }
.spd-via[b-zb68o976fm]  input[type=file] { margin-top: 7px; font-size: 11.5px; max-width: 100%; }

.spd-sel[b-zb68o976fm] { margin-top: 12px; font-size: 12.5px; }
.spd-sel-ok[b-zb68o976fm] { color: #1d6f42; font-weight: 600; }
.spd-sel-ok i[b-zb68o976fm] { margin-right: 5px; }
.spd-sel-ko[b-zb68o976fm] { margin-top: 8px; color: #8a5a00; }
.spd-sel-ko i[b-zb68o976fm] { margin-right: 5px; }
.spd-sel-ko ul[b-zb68o976fm], .spd-fallos ul[b-zb68o976fm] {
    margin: 4px 0 0; padding-left: 20px; max-height: 132px; overflow: auto;
    color: #5b6675; font-size: 12px; font-weight: 400;
}
.spd-fnom[b-zb68o976fm] {
    display: inline-block; max-width: 320px; overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom;
    font-family: Consolas, "Cascadia Mono", monospace; font-size: 11.5px;
}
.spd-mas[b-zb68o976fm] { list-style: none; margin-left: -14px; color: #8494a8; font-style: italic; }

/* Progreso: n de N. La barra es el mismo azul del resto de acciones. */
.spd-prog[b-zb68o976fm] { margin: 6px 0 2px; }
.spd-prog-txt[b-zb68o976fm] { font-size: 12.5px; color: #2f5a8f; font-weight: 600; margin-bottom: 6px; }
.spd-prog-txt i[b-zb68o976fm] { margin-right: 6px; }
.spd-prog-bar[b-zb68o976fm] {
    height: 8px; border-radius: 4px; background: #e3eaf3;
    border: 1px solid #cfdbe9; overflow: hidden;
}
.spd-prog-fill[b-zb68o976fm] {
    height: 100%;
    background: linear-gradient(180deg, #3a82d8, #1f4a87);
    transition: width .18s ease;
}

.spd-err[b-zb68o976fm] {
    margin-top: 11px; padding: 7px 10px; border-radius: 5px;
    background: #fdecec; border: 1px solid #f0bcbc; color: #a31f1f; font-size: 12.5px;
}
.spd-err i[b-zb68o976fm] { margin-right: 6px; }

.spd-res[b-zb68o976fm] { margin-top: 13px; }
.spd-res-cifras[b-zb68o976fm] { display: flex; gap: 8px; flex-wrap: wrap; }
.spd-cifra[b-zb68o976fm] {
    padding: 3px 10px; border-radius: 12px; font-size: 12px;
    background: #f0f3f8; border: 1px solid #dce3ec; color: #44546a;
}
.spd-cifra b[b-zb68o976fm] { font-size: 13px; margin-right: 4px; }
.spd-cifra.ok[b-zb68o976fm]  { background: #e8f6ee; border-color: #b7e0c6; color: #1d6f42; }
.spd-cifra.dup[b-zb68o976fm] { background: #eef2ff; border-color: #ccd4f5; color: #4338ca; }
.spd-cifra.err.hot[b-zb68o976fm] { background: #fdecec; border-color: #f0bcbc; color: #a31f1f; }

/* El aviso NO es decorativo: es una nota de configuración que el usuario tiene
   que saber aunque la subida haya ido bien (p.ej. visibilidad en órdenes). */
.spd-aviso[b-zb68o976fm] {
    margin-top: 10px; padding: 7px 10px; border-radius: 5px;
    background: #fff6e5; border: 1px solid #f0d19a; color: #8a5a00; font-size: 12.5px;
}
.spd-aviso i[b-zb68o976fm] { margin-right: 6px; }

.spd-fallos[b-zb68o976fm] { margin-top: 11px; }
.spd-fallos-tit[b-zb68o976fm] { font-size: 12px; font-weight: 700; color: #a31f1f; }

/* Lectura de los PDF elegidos. Aparece entre elegir la carpeta y poder pulsar
   Subir: leer 49 documentos del disco por SignalR tarda unos segundos y sin
   esto la pantalla se queda muda y parece colgada. */
.spd-leyendo[b-zb68o976fm] {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: .55rem 0 .1rem;
    padding: .45rem .7rem;
    border: 1px solid #bfdbfe;
    border-radius: 6px;
    background: #eff6ff;
    color: #1e40af;
    font-size: .82rem;
}

/* Botonera del pie — mismo molde que los modales de las bandejas. */
.spd-acts[b-zb68o976fm] { display: flex; align-items: center; gap: 8px; margin-top: 14px; }
.spd-acts-spacer[b-zb68o976fm] { flex: 1 1 auto; }

.spd-acts button[b-zb68o976fm] {
    height: 34px;
    padding: 0 14px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid transparent;
}

.spd-cancel[b-zb68o976fm] { background: #eef1f5; border-color: #c5cdd9; color: #44546a; }
.spd-cancel:hover:not(:disabled)[b-zb68o976fm] { background: #e2e7ee; }

.spd-ok[b-zb68o976fm] { background: linear-gradient(180deg, #2f6ec1, #1f4a87); border-color: #1f4a87; color: #fff; }
.spd-ok:hover:not(:disabled)[b-zb68o976fm] { background: linear-gradient(180deg, #3a82d8, #285aa2); }

.spd-acts button:disabled[b-zb68o976fm] { opacity: .55; cursor: not-allowed; }

/* Spinner propio: el `.spinning` de cada pantalla es scoped y no llega aquí. */
.spd-spin[b-zb68o976fm] { animation: spd-spin-b-zb68o976fm 1s linear infinite; display: inline-block; }
@keyframes spd-spin-b-zb68o976fm { to { transform: rotate(360deg); } }
/* _content/NetOffice.Web.Forms/Components/TestCorreoDialog.razor.rz.scp.css */
/*
  TestCorreoDialog — scoped CSS. Hereda layout base de .lookup-dialog del
  app.css canónico del RCL (CLAUDE.md §6.9) y añade lo específico:
  panel de adjuntos, dropzone, banner y spinner de envío.
*/

.test-correo-dialog[b-rwxvu2oty3] {
    /* Centrado sin transform — necesario para que el resize handle del
       bottom-right se mueva 1:1 con el cursor. El .lookup-dialog base
       usa transform:translate(-50%,-50%) que desincroniza el handle. */
    position: fixed;
    inset: 4vh;
    margin: auto;
    top: auto;
    left: auto;
    transform: none;

    width: 1100px;
    height: 720px;
    min-width: 640px;
    min-height: 440px;
    max-width: 96vw;
    max-height: 92vh;

    /* `resize: both` necesita overflow != visible. El body interno
       ya gestiona el scroll por columna. */
    resize: both;
    overflow: hidden;

    display: flex;
    flex-direction: column;
}

.test-correo-body[b-rwxvu2oty3] {
    flex: 1 1 auto;
    overflow: hidden;
    padding: 14px 16px;
    display: grid;
    grid-template-columns: minmax(360px, 1fr) 1px minmax(420px, 1.2fr);
    gap: 14px;
    min-height: 0;
}

/* Separador visual entre columnas — capa muy fina para no robar espacio. */
.test-correo-body[b-rwxvu2oty3]::after {
    content: "";
    grid-column: 2 / 3;
    grid-row: 1 / -1;
    background: #d8dee7;
    width: 1px;
    justify-self: center;
    align-self: stretch;
}

.tc-form-col[b-rwxvu2oty3] {
    grid-column: 1 / 2;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-right: 4px;
    min-height: 0;
}

.tc-preview-col[b-rwxvu2oty3] {
    grid-column: 3 / 4;
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 0;
}

.tc-preview-header[b-rwxvu2oty3] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid #e2e8f0;
}
.tc-preview-header i.bi[b-rwxvu2oty3] {
    color: #1f4a87;
    font-size: 14px;
}
.tc-preview-title[b-rwxvu2oty3] {
    font-size: 11px;
    font-weight: 700;
    color: #1f4a87;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    flex: 1 1 auto;
}
.tc-preview-tag[b-rwxvu2oty3] {
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.tc-preview-tag.html[b-rwxvu2oty3]  { background: #e7f1fc; color: #1f4a87; border: 1px solid #b9d2ee; }
.tc-preview-tag.plain[b-rwxvu2oty3] { background: #f1f4f8; color: #5a6678; border: 1px solid #d8dee7; }

.tc-preview-asunto[b-rwxvu2oty3] {
    display: flex;
    gap: 6px;
    padding: 6px 8px;
    background: #f6f9fd;
    border: 1px solid #e2e8f0;
    border-radius: 3px;
    font-size: 12px;
    line-height: 1.4;
    word-break: break-word;
}
.tc-preview-asunto-lbl[b-rwxvu2oty3] {
    font-weight: 700;
    color: #1f4a87;
    flex: 0 0 auto;
}
.tc-preview-asunto-val[b-rwxvu2oty3] {
    color: #222;
    flex: 1 1 auto;
}

.tc-preview-iframe[b-rwxvu2oty3] {
    flex: 1 1 auto;
    width: 100%;
    min-height: 280px;
    background: #fff;
    border: 1px solid #d8dee7;
    border-radius: 3px;
}

/* Banda de avisos del preview canónico (P5) — señales NO bloqueantes
   sobre la composición: cuenta sin firma activa, empresa sin RGPD,
   plantilla RGPD no sembrada. Estética amber suave para distinguirlo
   del flujo normal sin la severidad del rojo de error. */
.tc-preview-warnings[b-rwxvu2oty3] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 7px 10px;
    background: #fff8e1;
    border-left: 3px solid #d8a728;
    border-right: 1px solid #e9d99a;
    border-bottom: 1px solid #e9d99a;
    border-top: 1px solid #e9d99a;
    border-radius: 3px;
    font-size: 11.5px;
    color: #5a4400;
    margin-bottom: 6px;
}
.tc-preview-warnings > .bi-info-circle-fill[b-rwxvu2oty3] {
    color: #d8a728;
    margin-top: 2px;
    flex-shrink: 0;
}
.tc-preview-warnings ul[b-rwxvu2oty3] {
    margin: 0;
    padding-left: 16px;
    list-style: disc;
}
.tc-preview-warnings li[b-rwxvu2oty3] {
    line-height: 1.45;
}

.tc-preview-plain[b-rwxvu2oty3] {
    flex: 1 1 auto;
    margin: 0;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid #d8dee7;
    border-radius: 3px;
    font-family: Consolas, "Courier New", monospace;
    font-size: 12px;
    color: #222;
    white-space: pre-wrap;
    word-break: break-word;
    overflow: auto;
    min-height: 280px;
}

.tc-preview-empty[b-rwxvu2oty3] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 24px;
    background: #fafbfd;
    border: 1px dashed #c5cdd9;
    border-radius: 3px;
    color: #5a6678;
    font-size: 12px;
    text-align: center;
    min-height: 280px;
}
.tc-preview-empty i.bi[b-rwxvu2oty3] {
    font-size: 24px;
    opacity: 0.7;
}

/* Viewport estrecho: colapsa a una sola columna (form arriba, preview abajo). */
@media (max-width: 920px) {
    .test-correo-body[b-rwxvu2oty3] {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
        overflow-y: auto;
    }
    .test-correo-body[b-rwxvu2oty3]::after { display: none; }
    .tc-form-col[b-rwxvu2oty3],
    .tc-preview-col[b-rwxvu2oty3] {
        grid-column: 1 / 2;
        min-height: 0;
    }
    .tc-preview-iframe[b-rwxvu2oty3],
    .tc-preview-plain[b-rwxvu2oty3],
    .tc-preview-empty[b-rwxvu2oty3] {
        min-height: 220px;
    }
}

.tc-field[b-rwxvu2oty3] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.tc-lbl[b-rwxvu2oty3] {
    font-size: 11px;
    font-weight: 600;
    color: #1f4a87;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.tc-field .inp[b-rwxvu2oty3],
.tc-field select.inp[b-rwxvu2oty3] {
    width: 100%;
}

.tc-adjuntos[b-rwxvu2oty3] {
    border: 1px dashed #b9c6d6;
    border-radius: 4px;
    background: linear-gradient(180deg, #fbfdff 0%, #f1f5fb 100%);
    padding: 10px 12px;
    gap: 8px;
}

.tc-adjuntos-zone[b-rwxvu2oty3] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.tc-adjuntos-input[b-rwxvu2oty3] {
    /* Ocultamos el InputFile y disparamos via <label for>. */
    width: 0.1px;
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    z-index: -1;
}

.tc-adjuntos-btn[b-rwxvu2oty3] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: linear-gradient(180deg, #ffffff 0%, #eaf6ee 100%);
    color: #1d6f42;
    border: 1px solid #8fc7a4;
    border-radius: 4px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
}
.tc-adjuntos-btn:hover[b-rwxvu2oty3] {
    background: linear-gradient(180deg, #f6fbf7 0%, #d5e9da 100%);
    border-color: #1d6f42;
}

.tc-adjuntos-info[b-rwxvu2oty3] {
    font-size: 11px;
    color: #5a6678;
}

.tc-adjuntos-list[b-rwxvu2oty3] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.tc-adjuntos-list li[b-rwxvu2oty3] {
    display: grid;
    grid-template-columns: 20px 1fr auto 24px;
    align-items: center;
    gap: 8px;
    padding: 4px 8px;
    background: #fff;
    border: 1px solid #d8dee7;
    border-radius: 3px;
    font-size: 12px;
}
.tc-adjuntos-list li > i.bi[b-rwxvu2oty3] {
    color: #1f4a87;
}
.tc-adj-name[b-rwxvu2oty3] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tc-adj-size[b-rwxvu2oty3] {
    color: #5a6678;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
}
.tc-adj-del[b-rwxvu2oty3] {
    border: none;
    background: transparent;
    color: #a31f1f;
    cursor: pointer;
    padding: 2px;
    border-radius: 3px;
    line-height: 1;
}
.tc-adj-del:hover:not(:disabled)[b-rwxvu2oty3] {
    background: rgba(163, 31, 31, 0.10);
}
.tc-adj-del:disabled[b-rwxvu2oty3] { opacity: 0.4; cursor: not-allowed; }
.tc-adj-del i.bi[b-rwxvu2oty3] { font-size: 11px; }

.tc-banner[b-rwxvu2oty3] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 3px;
    font-size: 12px;
    line-height: 1.4;
}
.tc-banner.ok[b-rwxvu2oty3]    { background: #e7f4ec; border: 1px solid #8fc7a4; color: #145530; }
.tc-banner.error[b-rwxvu2oty3] { background: #fbe7e7; border: 1px solid #d99c9c; color: #8a1a1a; }
.tc-banner.warn[b-rwxvu2oty3]  { background: #fdf6e3; border: 1px solid #e0c98c; color: #6b5210; }
.tc-banner i.bi[b-rwxvu2oty3]  { font-size: 14px; flex: 0 0 auto; }

/* Footer del modal — botones canónicos .btn-circle del RCL (§FormFooter).
   Cliente 2026-05-25: cápsulas redondas rojo (Salir) + verde (Enviar). */
.test-correo-footer[b-rwxvu2oty3] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 10px 16px;
    border-top: 1px solid #d8dee7;
    background: #f4f7fb;
}

.tc-spin[b-rwxvu2oty3] {
    display: inline-block;
    animation: tc-rotate-b-rwxvu2oty3 0.9s linear infinite;
}
@keyframes tc-rotate-b-rwxvu2oty3 {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* ──────────────────────────────────────────────────────────────────────
   Modo masivo (TestCorreoDialog con Destinatarios) — panel de lista de
   destinatarios con su contador y scroll si la lista pasa de la zona
   reservada. Estética coherente con el resto del modal (papel iluminado
   §2.20, cápsulas blancas con borde gris).
   ────────────────────────────────────────────────────────────────────── */

.tc-destinatarios-masivo[b-rwxvu2oty3] {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
.tc-destinatarios-masivo .tc-lbl[b-rwxvu2oty3] {
    display: flex;
    align-items: center;
    gap: 8px;
}
.tc-dest-count[b-rwxvu2oty3] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 18px;
    padding: 0 6px;
    border-radius: 9px;
    background: #1f4a87;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
}
.tc-dest-list[b-rwxvu2oty3] {
    flex: 1 1 auto;
    min-height: 120px;
    max-height: 240px;
    overflow-y: auto;
    border: 1px solid #c5cdd9;
    border-radius: 3px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafd 100%);
    padding: 6px 8px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.7);
}
.tc-dest-row[b-rwxvu2oty3] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 6px;
    border-bottom: 1px solid #eef1f6;
    font-size: 12px;
    color: #222;
    white-space: nowrap;
    overflow: hidden;
}
.tc-dest-row:last-child[b-rwxvu2oty3] { border-bottom: none; }
.tc-dest-row i[b-rwxvu2oty3] {
    color: #1f4a87;
    font-size: 11px;
    flex: 0 0 auto;
}
.tc-dest-row span[b-rwxvu2oty3] {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ──────────────────────────────────────────────────────────────────────
   Detalle de fallidos en modo masivo. <details> nativo con estilos
   coherentes: lista compacta con destinatario en bold y el error a la
   derecha en rojo suave.
   ────────────────────────────────────────────────────────────────────── */

.tc-fallidos-detail[b-rwxvu2oty3] {
    margin-top: 6px;
    border: 1px solid #f1cdcd;
    border-radius: 3px;
    background: #fff8f8;
    padding: 6px 8px;
    font-size: 12px;
}
.tc-fallidos-detail summary[b-rwxvu2oty3] {
    cursor: pointer;
    font-weight: 600;
    color: #a31f1f;
    padding: 2px 0;
}
.tc-fallidos-detail ul[b-rwxvu2oty3] {
    margin: 6px 0 2px 0;
    padding-left: 18px;
    max-height: 160px;
    overflow-y: auto;
}
.tc-fallidos-detail li[b-rwxvu2oty3] {
    margin-bottom: 4px;
    line-height: 1.3;
}
.tc-fallidos-detail strong[b-rwxvu2oty3] {
    display: inline-block;
    color: #222;
    margin-right: 6px;
}
.tc-fallido-err[b-rwxvu2oty3] {
    color: #a31f1f;
    font-style: italic;
}
/* _content/NetOffice.Web.Forms/Components/TotalesCard.razor.rz.scp.css */
/* TotalesCard — tarjetón de totales al pie del informe (DOC 80 / JJ 2026-08-15).
   Banda clara sobre el pie del formulario: NO usa fondo azul oscuro, para que
   los importes se lean en negro sobre claro (queja recurrente de contraste). */

.totales-card[b-48a0mdizdf] {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
    padding: 10px 16px;
    background: linear-gradient(180deg, #f7fafd 0%, #eef4fa 100%);
    border: 1px solid #cfdcea;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(31, 74, 135, .08);
}

.tc-titulo[b-48a0mdizdf] {
    font-size: .82rem;
    font-weight: 600;
    color: #4a5b70;
    letter-spacing: .01em;
    margin-right: auto;      /* empuja los totales a la derecha */
}

.tc-items[b-48a0mdizdf] {
    display: flex;
    align-items: stretch;
    gap: 10px;
    flex-wrap: wrap;
    margin-left: auto;
}

.tc-item[b-48a0mdizdf] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;   /* importes SIEMPRE a la derecha */
    min-width: 118px;
    padding: 4px 12px;
    background: #fff;
    border: 1px solid #dbe5f0;
    border-radius: 6px;
}

.tc-label[b-48a0mdizdf] {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #6b7c92;
    white-space: nowrap;
}

.tc-valor[b-48a0mdizdf] {
    font-size: .98rem;
    font-weight: 700;
    color: #1f2d3d;
    font-variant-numeric: tabular-nums;   /* columnas de dígitos alineadas */
    white-space: nowrap;
}

/* Total principal: acento corporativo, un punto más grande. */
.tc-destacado[b-48a0mdizdf] {
    background: #1f4a87;
    border-color: #1f4a87;
}

.tc-destacado .tc-label[b-48a0mdizdf] { color: #c8d9f0; }

.tc-destacado .tc-valor[b-48a0mdizdf] {
    color: #fff;
    font-size: 1.12rem;
}

/* Negativos en rojo corporativo (a devolver / abonos). */
.tc-negativo .tc-valor[b-48a0mdizdf] { color: #a31f1f; }
.tc-destacado.tc-negativo[b-48a0mdizdf] { background: #a31f1f; border-color: #a31f1f; }
.tc-destacado.tc-negativo .tc-label[b-48a0mdizdf] { color: #f3d4d4; }
.tc-destacado.tc-negativo .tc-valor[b-48a0mdizdf] { color: #fff; }

@media (max-width: 1100px) {
    .tc-titulo[b-48a0mdizdf] { margin-right: 0; width: 100%; }
    .tc-items[b-48a0mdizdf]  { margin-left: 0; }
}
/* _content/NetOffice.Web.Forms/Components/VideoFormacion.razor.rz.scp.css */
/* VideoFormacion — modal lightbox centrado con reproductor de video grande.
   Soporta modo simple (1 video) y modo multi (sidebar de lista + reproductor). */

.vf-backdrop[b-eve4mxziaa] {
    position: fixed;
    inset: 0;
    background: rgba(10, 14, 24, 0.82);
    z-index: 9500;
    backdrop-filter: blur(2px);
    animation: vf-backdrop-fadein-b-eve4mxziaa 0.18s ease-out;
}

@keyframes vf-backdrop-fadein-b-eve4mxziaa {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.vf-modal[b-eve4mxziaa] {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(95vw, 1280px);
    max-height: 92vh;
    background: #1a1a1f;
    z-index: 9501;
    display: flex;
    flex-direction: column;
    border-radius: 8px;
    box-shadow:
        0 24px 64px rgba(0, 0, 0, 0.5),
        0 8px 24px rgba(0, 0, 0, 0.3);
    overflow: hidden;
    outline: none;
    animation: vf-modal-zoomin-b-eve4mxziaa 0.22s cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* Modo multi-video: el modal es más ancho para acomodar la lista lateral. */
.vf-modal.vf-modal-multi[b-eve4mxziaa] {
    width: min(96vw, 1500px);
}

@keyframes vf-modal-zoomin-b-eve4mxziaa {
    from {
        transform: translate(-50%, -50%) scale(0.94);
        opacity: 0;
    }
    to {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }
}

.vf-header[b-eve4mxziaa] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    background: linear-gradient(135deg, #5e2a99 0%, #7a3ba8 100%);
    color: #ffffff;
    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
    flex: 0 0 auto;
}

.vf-title[b-eve4mxziaa] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.vf-title i[b-eve4mxziaa] {
    font-size: 22px;
    color: #d9c4ee;
}

.vf-count[b-eve4mxziaa] {
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.25);
    padding: 2px 10px;
    border-radius: 11px;
    font-size: 12px;
    font-weight: 500;
    margin-left: 6px;
}

.vf-lang[b-eve4mxziaa] {
    margin-left: auto;            /* empuja idioma + cerrar a la derecha */
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-right: 10px;
    font-size: 13px;
    color: #eadbf7;
}

.vf-lang i[b-eve4mxziaa] {
    font-size: 16px;
    color: #d9c4ee;
}

.vf-lang-sel[b-eve4mxziaa] {
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.30);
    color: #ffffff;
    border-radius: 6px;
    padding: 4px 8px;
    font-size: 13px;
    cursor: pointer;
}

.vf-lang-sel option[b-eve4mxziaa] {
    color: #1c2b3a;   /* legible en el desplegable nativo (fondo blanco) */
}

.vf-close[b-eve4mxziaa] {
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.25);
    color: #ffffff;
    width: 34px;
    height: 34px;
    border-radius: 5px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.12s, border-color 0.12s;
}

.vf-close:hover[b-eve4mxziaa] {
    background: rgba(255, 255, 255, 0.22);
    border-color: rgba(255, 255, 255, 0.45);
}

.vf-close i[b-eve4mxziaa] {
    font-size: 14px;
}

.vf-content[b-eve4mxziaa] {
    flex: 1 1 auto;
    display: flex;
    min-height: 0;
    background: #000000;
}

/* ===== Sidebar (modo multi-video) ===== */
.vf-sidebar[b-eve4mxziaa] {
    flex: 0 0 280px;
    background: #2a2a32;
    color: #e7e7ec;
    display: flex;
    flex-direction: column;
    border-right: 1px solid rgba(0, 0, 0, 0.4);
    overflow: hidden;
}

.vf-sidebar-head[b-eve4mxziaa] {
    flex: 0 0 auto;
    padding: 10px 14px;
    background: rgba(0, 0, 0, 0.25);
    color: #d9c4ee;
    font-size: 11.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.vf-sidebar-head i[b-eve4mxziaa] {
    color: #b58fd6;
    font-size: 14px;
}

.vf-list[b-eve4mxziaa] {
    flex: 1 1 auto;
    overflow-y: auto;
    list-style: none;
    margin: 0;
    padding: 6px 0;
}

.vf-list-item[b-eve4mxziaa] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    cursor: pointer;
    transition: background 0.12s;
    border-left: 3px solid transparent;
    user-select: none;
}

.vf-list-item:hover[b-eve4mxziaa] {
    background: rgba(255, 255, 255, 0.06);
}

.vf-list-item.active[b-eve4mxziaa] {
    background: linear-gradient(90deg, rgba(122, 59, 168, 0.35) 0%, rgba(122, 59, 168, 0.15) 100%);
    border-left-color: #b58fd6;
}

.vf-list-num[b-eve4mxziaa] {
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.1);
    color: #d9c4ee;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    font-family: Consolas, Menlo, monospace;
}

.vf-list-item.active .vf-list-num[b-eve4mxziaa] {
    background: #7a3ba8;
    color: #ffffff;
}

.vf-list-meta[b-eve4mxziaa] {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.vf-list-titulo[b-eve4mxziaa] {
    font-size: 13px;
    color: #f4f4f8;
    font-weight: 500;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.vf-list-duracion[b-eve4mxziaa] {
    font-size: 11px;
    color: #a395bc;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.vf-list-duracion i[b-eve4mxziaa] {
    font-size: 10px;
}

.vf-list-active-icon[b-eve4mxziaa] {
    flex: 0 0 auto;
    color: #b58fd6;
    font-size: 16px;
}

/* ===== Body (reproductor) ===== */
.vf-body[b-eve4mxziaa] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 0;
    min-width: 0;
    background: #000000;
    aspect-ratio: 16 / 9;
    max-height: calc(92vh - 62px);
    position: relative;
}

/* En modo multi el aspect-ratio se calcula sólo del body, no del modal entero. */
.vf-modal-multi .vf-body[b-eve4mxziaa] {
    aspect-ratio: auto;
    flex: 1 1 auto;
}

.vf-video[b-eve4mxziaa] {
    width: 100%;
    height: 100%;
    display: block;
    background: #000000;
    object-fit: contain;
}

.vf-modal-multi .vf-video[b-eve4mxziaa] {
    flex: 1 1 auto;
    min-height: 0;
}

.vf-body-caption[b-eve4mxziaa] {
    flex: 0 0 auto;
    width: 100%;
    background: rgba(0, 0, 0, 0.8);
    color: #f4f4f8;
    padding: 8px 16px;
    font-size: 13px;
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.vf-body-caption strong[b-eve4mxziaa] {
    color: #ffffff;
}

/* ===== Empty state (sin videos para la pantalla) ===== */
.vf-empty[b-eve4mxziaa] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 40px 32px;
    color: #d8d8e0;
    text-align: center;
    max-width: 520px;
}

.vf-empty i[b-eve4mxziaa] {
    font-size: 48px;
    color: #7a3ba8;
    opacity: 0.85;
}

.vf-empty strong[b-eve4mxziaa] {
    color: #ffffff;
    font-size: 16px;
    font-weight: 600;
}

.vf-empty span[b-eve4mxziaa] {
    color: #b8b8c4;
    font-size: 13px;
    line-height: 1.5;
}

@media (max-width: 900px) {
    .vf-modal.vf-modal-multi[b-eve4mxziaa] {
        width: 100vw;
        max-height: 100vh;
        border-radius: 0;
    }
    .vf-modal.vf-modal-multi .vf-content[b-eve4mxziaa] {
        flex-direction: column;
    }
    .vf-modal.vf-modal-multi .vf-sidebar[b-eve4mxziaa] {
        flex: 0 0 auto;
        max-height: 30vh;
        border-right: none;
        border-bottom: 1px solid rgba(0, 0, 0, 0.4);
    }
}

@media (max-width: 700px) {
    .vf-modal[b-eve4mxziaa] {
        width: 100vw;
        max-height: 100vh;
        border-radius: 0;
    }
}

/* ===== Capítulos (§2.25) — vídeo arriba + SLIDE horizontal de capítulos ===== */
.vf-stage[b-eve4mxziaa] {
    display: flex;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
}

/* Con capítulos: el stage es columna (vídeo + slide debajo) y el body no fuerza 16/9. */
.vf-stage-slider[b-eve4mxziaa] {
    flex-direction: column;
}

.vf-body:has(.vf-stage-slider)[b-eve4mxziaa] {
    aspect-ratio: auto;
}

.vf-stage-main[b-eve4mxziaa] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: #000000;
}

.vf-stage-main .vf-video[b-eve4mxziaa] {
    flex: 1 1 auto;
    min-height: 0;
}

/* Banda inferior con el slide de capítulos + flechas. */
.vf-chap-slider-wrap[b-eve4mxziaa] {
    flex: 0 0 auto;
    display: flex;
    align-items: stretch;
    gap: 6px;
    padding: 10px 8px;
    background: #1f1f25;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}

.vf-chap-arrow[b-eve4mxziaa] {
    flex: 0 0 auto;
    width: 34px;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 7px;
    color: #d9c4ee;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    transition: background 0.12s;
}

.vf-chap-arrow:hover[b-eve4mxziaa] {
    background: rgba(122, 59, 168, 0.4);
}

.vf-chap-slider[b-eve4mxziaa] {
    flex: 1 1 auto;
    display: flex;
    gap: 10px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    padding: 2px 2px 8px;
    scrollbar-width: thin;
    scrollbar-color: #5e2a99 transparent;
}

.vf-chap-slider[b-eve4mxziaa]::-webkit-scrollbar { height: 7px; }
.vf-chap-slider[b-eve4mxziaa]::-webkit-scrollbar-thumb { background: #5e2a99; border-radius: 4px; }

/* Tarjeta de capítulo (chip clicable). */
.vf-chap-card[b-eve4mxziaa] {
    flex: 0 0 auto;
    scroll-snap-align: center;
    width: 190px;
    text-align: left;
    background: #2a2a32;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 9px;
    padding: 10px 12px;
    cursor: pointer;
    color: #f4f4f8;
    display: flex;
    flex-direction: column;
    gap: 6px;
    transition: transform 0.12s, border-color 0.12s, background 0.12s;
}

.vf-chap-card:hover[b-eve4mxziaa] {
    background: #34343d;
    transform: translateY(-2px);
}

.vf-chap-card.active[b-eve4mxziaa] {
    background: linear-gradient(135deg, #5e2a99 0%, #7a3ba8 100%);
    border-color: #b58fd6;
}

.vf-chap-card .vf-chap-num[b-eve4mxziaa] {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    color: #d9c4ee;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    font-family: Consolas, Menlo, monospace;
}

.vf-chap-card.active .vf-chap-num[b-eve4mxziaa] {
    background: rgba(255, 255, 255, 0.9);
    color: #5e2a99;
}

.vf-chap-card .vf-chap-titulo[b-eve4mxziaa] {
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.vf-chap-card .vf-chap-ts[b-eve4mxziaa] {
    font-size: 11px;
    color: #c9b8e6;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: Consolas, Menlo, monospace;
}

.vf-chap-card .vf-chap-ts i[b-eve4mxziaa] { font-size: 10px; }

@media (max-width: 700px) {
    .vf-chap-card[b-eve4mxziaa] { width: 150px; }
}
/* _content/NetOffice.Web.Forms/Components/VideoFormacionRecorder.razor.rz.scp.css */
/* === VideoFormacionRecorder — widget flotante de grabación in-place === */

/* Side-panel deslizante a la derecha — NO tapa la pantalla subyacente.
   El usuario sigue viendo el formulario que estaba explicando mientras
   rellena título/descripción del video grabado. */
.vfr-side[b-6848fszh8s] {
    position: fixed;
    top: 12px;
    right: 12px;
    bottom: 12px;
    width: min(420px, 92vw);
    background: #fff;
    border: 1px solid #d6dde7;
    border-radius: 12px;
    box-shadow: -8px 16px 40px rgba(0, 0, 0, 0.20),
                0 2px 6px rgba(0, 0, 0, 0.08);
    z-index: 9001;
    padding: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: vfr-side-in-b-6848fszh8s 240ms cubic-bezier(.2, .8, .2, 1);
}

@keyframes vfr-side-in-b-6848fszh8s {
    from { opacity: 0; transform: translateX(40px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* === Estado: Grabando === */

.vfr-grab-head[b-6848fszh8s] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 22px 8px;
    border-bottom: 1px dashed #f3c8c8;
}

.vfr-grab-head i[b-6848fszh8s] {
    font-size: 22px;
    color: #c62828;
}

.vfr-grab-title[b-6848fszh8s] {
    flex: 1 1 auto;
    font-weight: 600;
    color: #1a2438;
    font-size: 15px;
}

.vfr-grab-dur[b-6848fszh8s] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 18px;
    font-weight: 600;
    color: #c62828;
    background: #fdf3f5;
    padding: 4px 12px;
    border-radius: 16px;
    border: 1px solid #f3c8c8;
}

.vfr-rec-blink[b-6848fszh8s] {
    animation: vfr-blink-b-6848fszh8s 1s ease-in-out infinite;
}

@keyframes vfr-blink-b-6848fszh8s {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.35; }
}

.vfr-grab-hint[b-6848fszh8s] {
    margin: 0;
    padding: 8px 22px 14px;
    color: #4a5566;
    font-size: 13px;
    line-height: 1.5;
}

/* === Estado: Detenido (mini formulario) === */

.vfr-form-head[b-6848fszh8s] {
    display: grid;
    grid-template-columns: 36px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 16px 16px 14px 22px;
    background: linear-gradient(135deg, #f4f8fd 0%, #e8eef9 100%);
    border-bottom: 1px solid #d6dde7;
    border-radius: 12px 12px 0 0;
}

.vfr-form-head > i[b-6848fszh8s] {
    font-size: 22px;
    color: #1f4a87;
}

.vfr-form-head strong[b-6848fszh8s] {
    display: block;
    color: #1a2438;
    font-size: 14px;
    margin-bottom: 2px;
}

.vfr-form-head span[b-6848fszh8s] {
    display: block;
    color: #57606b;
    font-size: 12px;
}

.vfr-form-head code[b-6848fszh8s] {
    font-family: ui-monospace, monospace;
    background: rgba(31, 74, 135, 0.08);
    padding: 1px 5px;
    border-radius: 3px;
    font-size: 11px;
}

.vfr-btn-close[b-6848fszh8s] {
    width: 30px;
    height: 30px;
    border: none;
    background: transparent;
    color: #57606b;
    cursor: pointer;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.vfr-btn-close:hover[b-6848fszh8s] { background: rgba(0, 0, 0, 0.06); color: #1a2438; }

.vfr-error[b-6848fszh8s] {
    margin: 14px 22px 0;
    background: #fdecea;
    border-left: 3px solid #c62828;
    padding: 8px 12px;
    border-radius: 0 4px 4px 0;
    font-size: 13px;
    color: #5b1818;
    display: flex;
    align-items: center;
    gap: 8px;
}
.vfr-error i[b-6848fszh8s] { color: #c62828; }

.vfr-form[b-6848fszh8s] {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px 22px;
    /* En el side-panel ocupa el espacio sobrante con scroll si hace falta */
    flex: 1 1 auto;
    overflow-y: auto;
    min-height: 0;
}

.vfr-row[b-6848fszh8s] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.vfr-row > span[b-6848fszh8s] {
    font-size: 12px;
    font-weight: 600;
    color: #4a5566;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.vfr-inp[b-6848fszh8s] {
    border: 1px solid #c9ced4;
    border-radius: 4px;
    padding: 8px 10px;
    font-size: 13px;
    color: #1a2438;
    font-family: inherit;
}
.vfr-inp:focus[b-6848fszh8s] {
    outline: none;
    border-color: #3874cb;
    box-shadow: 0 0 0 1px #3874cb;
}

textarea.vfr-inp[b-6848fszh8s] {
    resize: vertical;
    min-height: 50px;
    font-family: inherit;
}

/* === Visibilidad (radio cards) — sólo staff Laso === */

.vfr-visibilidad[b-6848fszh8s] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 4px;
}

.vfr-vis-label[b-6848fszh8s] {
    font-size: 12px;
    font-weight: 600;
    color: #4a5566;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}

.vfr-radios[b-6848fszh8s] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.vfr-radio[b-6848fszh8s] {
    display: grid;
    grid-template-columns: 18px 24px 1fr;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border: 1.5px solid #d6dde7;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    transition: border-color 120ms, background 120ms;
}
.vfr-radio:hover[b-6848fszh8s] { border-color: #95bee8; background: #fafcfe; }
.vfr-radio.selected[b-6848fszh8s] {
    border-color: #1f4a87;
    background: #eaf3fe;
    box-shadow: inset 0 0 0 1px #1f4a87;
}
.vfr-radio input[type="radio"][b-6848fszh8s] {
    accent-color: #1f4a87;
}
.vfr-radio > i[b-6848fszh8s] {
    font-size: 18px;
    color: #1f4a87;
}
.vfr-radio strong[b-6848fszh8s] {
    display: block;
    font-size: 12.5px;
    color: #1a2438;
    margin-bottom: 1px;
}
.vfr-radio span[b-6848fszh8s] {
    display: block;
    font-size: 11px;
    color: #57606b;
    line-height: 1.3;
}

/* === Estado: Subiendo / Error === */

.vfr-subiendo[b-6848fszh8s] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 38px 22px;
    text-align: center;
}
.vfr-subiendo i[b-6848fszh8s] { font-size: 28px; color: #1f4a87; }
.vfr-subiendo strong[b-6848fszh8s] { color: #1a2438; font-size: 14px; }
.vfr-subiendo span[b-6848fszh8s] { color: #57606b; font-size: 12px; }

.vfr-error-block[b-6848fszh8s] {
    display: grid;
    grid-template-columns: 36px 1fr;
    gap: 12px;
    padding: 22px;
    align-items: start;
}
.vfr-error-block > i[b-6848fszh8s] {
    font-size: 26px;
    color: #c62828;
}
.vfr-error-block strong[b-6848fszh8s] {
    display: block;
    color: #1a2438;
    font-size: 14px;
    margin-bottom: 4px;
}
.vfr-error-block span[b-6848fszh8s] {
    display: block;
    color: #4a5566;
    font-size: 13px;
    line-height: 1.5;
}

.vfr-spin[b-6848fszh8s] {
    animation: vfr-rot-b-6848fszh8s 1s linear infinite;
    display: inline-block;
}
@keyframes vfr-rot-b-6848fszh8s {
    from { transform: rotate(0); }
    to   { transform: rotate(360deg); }
}

/* === Botonera === */

.vfr-actions[b-6848fszh8s] {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 14px 22px 18px;
    border-top: 1px solid #e6eaf0;
    background: #fafbfc;
    border-radius: 0 0 12px 12px;
}

.vfr-btn[b-6848fszh8s] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border: 1px solid #c9ced4;
    border-radius: 5px;
    background: #fff;
    color: #1a2438;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 120ms, border-color 120ms;
}
.vfr-btn:hover:not(:disabled)[b-6848fszh8s] { background: #f4f7fb; border-color: #95bee8; }
.vfr-btn:disabled[b-6848fszh8s] { opacity: 0.5; cursor: not-allowed; }

.vfr-btn-primary[b-6848fszh8s] {
    background: linear-gradient(135deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff;
    border-color: #1a3e72;
}
.vfr-btn-primary:hover:not(:disabled)[b-6848fszh8s] {
    background: linear-gradient(135deg, #3879cd 0%, #245493 100%);
    border-color: #133b6e;
}
.vfr-btn-primary i[b-6848fszh8s] { color: #fff; }

.vfr-btn-secondary[b-6848fszh8s] {
    /* default look already */
}

.vfr-btn-stop[b-6848fszh8s] {
    background: linear-gradient(135deg, #d83333 0%, #a31515 100%);
    color: #fff;
    border-color: #8a1010;
    padding: 10px 20px;
    font-size: 14px;
}
.vfr-btn-stop:hover:not(:disabled)[b-6848fszh8s] {
    background: linear-gradient(135deg, #e34141 0%, #b41a1a 100%);
}
.vfr-btn-stop i[b-6848fszh8s] { color: #fff; }

.vfr-btn-discard[b-6848fszh8s] {
    color: #57606b;
}

/* En estado Grabando, botonera centrada y separada */
.vfr-panel.vfr-grabando .vfr-actions[b-6848fszh8s] {
    justify-content: center;
    background: transparent;
    border-top: none;
    padding-bottom: 22px;
}

/* === Mini-PIP flotante mientras se graba ============================
   Sin backdrop — el usuario tiene que poder clicar el formulario
   subyacente. Ancla abajo-derecha, ancho fijo, sombra suave. Solo
   captura clicks dentro del propio panel (pointer-events natural). */

.vfr-pip[b-6848fszh8s] {
    position: fixed;
    bottom: 18px;
    right: 18px;
    width: 260px;
    background: linear-gradient(135deg, #fff 0%, #fdf3f5 100%);
    border: 1.5px solid #d94f4f;
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(198, 40, 40, 0.32),
                0 2px 6px rgba(0, 0, 0, 0.18);
    z-index: 9500;
    padding: 12px 14px 12px 14px;
    user-select: none;
    /* Animación suave al aparecer */
    animation: vfr-pip-in-b-6848fszh8s 220ms ease-out;
}

@keyframes vfr-pip-in-b-6848fszh8s {
    from { opacity: 0; transform: translateY(12px) scale(0.96); }
    to   { opacity: 1; transform: translateY(0)    scale(1); }
}

.vfr-pip-head[b-6848fszh8s] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.vfr-pip-head i[b-6848fszh8s] {
    font-size: 18px;
    color: #c62828;
}

.vfr-pip-title[b-6848fszh8s] {
    flex: 1 1 auto;
    font-weight: 600;
    color: #1a2438;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.vfr-pip-dur[b-6848fszh8s] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 14px;
    font-weight: 600;
    color: #c62828;
    background: #fff;
    padding: 2px 8px;
    border-radius: 10px;
    border: 1px solid #f3c8c8;
}

.vfr-pip-pantalla[b-6848fszh8s] {
    color: #57606b;
    font-size: 11px;
    margin-bottom: 10px;
    font-style: italic;
    /* truncate si el nombre de pantalla es largo */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vfr-pip-actions[b-6848fszh8s] {
    display: flex;
    gap: 6px;
    align-items: center;
}

.vfr-pip-actions .vfr-btn-stop[b-6848fszh8s] {
    flex: 1 1 auto;
    padding: 6px 10px;
    font-size: 12px;
    justify-content: center;
}

.vfr-pip-actions .vfr-btn-discard[b-6848fszh8s] {
    flex: 0 0 auto;
    padding: 6px 8px;
    font-size: 12px;
    color: #57606b;
}

.vfr-pip-actions .vfr-btn-discard:hover[b-6848fszh8s] {
    color: #c62828;
    background: #fdf3f5;
}
/* _content/NetOffice.Web.Forms/Components/VisorDocumentoDialog.razor.rz.scp.css */
/* VisorDocumentoDialog — visor COMÚN de impresión de documentos (JJ 2026-10-11).
   Mismo lenguaje visual que la ventana de impresión del viaje del TMS
   (ImpresionViajeDialog, de la que se copia la hoja con prefijo vdd-).
   Facturas emitidas hoy; albaranes de venta y pedidos de compra después. */


.vdd-overlay[b-8c87d7ri3r] {
    position: fixed;
    inset: 0;
    z-index: 1400;
    background: rgba(15, 23, 42, .28);
}

/* A pantalla completa (mejora cliente 2026-08-11): ~96vw × 92vh fijos —
   la mitad derecha entera es para el visor del PDF. */
.vdd-dlg[b-8c87d7ri3r] {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 96vw;
    height: 92vh;
    max-height: 92vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: #fff;
    border: 1px solid #c7d7ef;
    border-top: 4px solid #1f4a87;
    border-radius: 6px;
    box-shadow: 0 18px 50px rgba(15, 23, 42, .4);
    padding: 14px 22px 14px;
}

.vdd-x[b-8c87d7ri3r] {
    position: absolute;
    top: 6px;
    right: 8px;
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #c9d8ee;
    border-radius: 5px;
    background: #fff;
    color: #1f4a87;
    cursor: pointer;
    font-size: .7rem;
    padding: 0;
}

.vdd-x:hover[b-8c87d7ri3r] { background: #eef3fb; }

.vdd-title[b-8c87d7ri3r] {
    font-size: .95rem;
    font-weight: 800;
    color: #1f4a87;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 8px;
}

.vdd-vacio[b-8c87d7ri3r] {
    padding: 26px 10px;
    text-align: center;
    color: #5b7089;
    font-size: .78rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.vdd-vacio-err[b-8c87d7ri3r] { color: #9a3412; }

/* Banda ámbar «el viaje ha cambiado desde el último envío» */
.vdd-obsoleta[b-8c87d7ri3r] {
    display: flex;
    align-items: center;
    gap: 8px;
    background: #fef3c7;
    border: 1px solid #f2d98c;
    border-radius: 5px;
    color: #92600a;
    font-size: .72rem;
    font-weight: 700;
    padding: 5px 10px;
    margin-bottom: 8px;
}

/* ── Cuerpo en dos columnas 50/50 — el visor a toda altura ──────────────── */
.vdd-body[b-8c87d7ri3r] {
    flex: 1 1 auto;
    min-height: 0;             /* imprescindible para que el grid pueda encoger */
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.vdd-left[b-8c87d7ri3r] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-height: 0;
    overflow-y: auto;          /* la izquierda scrollea; el visor no se mueve */
    padding-right: 2px;
}

/* Empuja el pie + historial al fondo de la columna izquierda. */
.vdd-left-fill[b-8c87d7ri3r] { flex: 1 1 auto; min-height: 10px; }

.vdd-sec[b-8c87d7ri3r] {
    font-size: .74rem;
    font-weight: 800;
    color: #5b7089;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin: 8px 0 2px;
}

/* Tarjeta-radio de cada documento */
.vdd-op[b-8c87d7ri3r] {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    text-align: left;
    background: #f8fafd;
    border: 1px solid #d3e0f2;
    border-radius: 6px;
    padding: 8px 11px;
    font-size: .88rem;
    font-weight: 700;
    color: #33475b;
    cursor: pointer;
}

.vdd-op > i[b-8c87d7ri3r] { color: #1f4a87; font-size: 1.02rem; }

.vdd-op:hover:not(:disabled)[b-8c87d7ri3r] { background: #eef3fb; }

.vdd-op-sel[b-8c87d7ri3r] {
    background: #e7effc;
    border-color: #1f4a87;
    box-shadow: inset 0 0 0 1px #1f4a87;
    color: #1f4a87;
}

.vdd-op-off[b-8c87d7ri3r] {
    opacity: .55;
    cursor: not-allowed;
}

.vdd-op-tit[b-8c87d7ri3r] { flex: 1 1 auto; }

.vdd-op-motivo[b-8c87d7ri3r] { color: #b45309; font-size: .84rem; }

.vdd-op-deca[b-8c87d7ri3r] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: .76rem;
    font-weight: 800;
    color: #fff;
    background: #1f4a87;
    border-radius: 10px;
    padding: 2px 8px;
    cursor: pointer;
}

.vdd-op-deca:hover[b-8c87d7ri3r] { background: #163a6e; }

.vdd-select[b-8c87d7ri3r] { width: 100%; font-size: .88rem; }

.vdd-chk[b-8c87d7ri3r] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: .84rem;
    color: #33475b;
    margin-top: 8px;
    cursor: pointer;
}

/* ── Visor — toda la mitad derecha, alto completo del diálogo ───────────── */
.vdd-right[b-8c87d7ri3r] {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid #d3e0f2;
    border-radius: 6px;
    background: #f1f5fa;
    overflow: hidden;
    min-height: 0;
    height: 100%;
}

.vdd-frame[b-8c87d7ri3r] {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    border: 0;
}

.vdd-frame-vacio[b-8c87d7ri3r] {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #5b7089;
    font-size: .78rem;
    padding: 20px;
    text-align: center;
}

.vdd-frame-vacio > i[b-8c87d7ri3r] { font-size: 1.8rem; color: #9db3cd; }

.vdd-regen[b-8c87d7ri3r] {
    position: absolute;
    top: 6px;
    right: 6px;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #c9d8ee;
    border-radius: 5px;
    background: #fff;
    color: #1f4a87;
    cursor: pointer;
    padding: 0;
}

.vdd-regen:hover:not(:disabled)[b-8c87d7ri3r] { background: #eef3fb; }
.vdd-regen:disabled[b-8c87d7ri3r] { opacity: .5; cursor: default; }

/* ── Pie (dentro de la columna izquierda) ───────────────────────────────── */
.vdd-foot[b-8c87d7ri3r] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px solid #e6edf7;
    margin-top: 6px;
}

.vdd-spacer[b-8c87d7ri3r] { flex: 1 1 auto; }

.vdd-btn[b-8c87d7ri3r] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid #c9d8ee;
    border-radius: 5px;
    background: #fff;
    color: #1f4a87;
    font-size: .84rem;
    font-weight: 700;
    padding: 6px 13px;
    cursor: pointer;
}

.vdd-btn:hover:not(:disabled)[b-8c87d7ri3r] { background: #eef3fb; }
.vdd-btn:disabled[b-8c87d7ri3r] { opacity: .5; cursor: default; }

.vdd-btn-azul[b-8c87d7ri3r] {
    background: #1f4a87;
    border-color: #1f4a87;
    color: #fff;
}

.vdd-btn-azul:hover:not(:disabled)[b-8c87d7ri3r] { background: #163a6e; }

.vdd-toast[b-8c87d7ri3r] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: .8rem;
    font-weight: 700;
    border-radius: 5px;
    padding: 4px 10px;
}

.vdd-toast-ok[b-8c87d7ri3r]  { background: #e7f6ec; border: 1px solid #b7e0c4; color: #14713d; }
.vdd-toast-err[b-8c87d7ri3r] { background: #fdeaea; border: 1px solid #f2c4c4; color: #a02020; }

/* ── Historial ──────────────────────────────────────────────────────────── */
.vdd-hist[b-8c87d7ri3r] {
    border-top: 1px solid #e6edf7;
    margin-top: 10px;
    padding-top: 6px;
    flex: 0 0 auto;
    max-height: 34%;
    overflow-y: auto;   /* con muchas emisiones, scrollea el historial, no el visor */
}

.vdd-hist-tog[b-8c87d7ri3r] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 0;
    background: transparent;
    color: #1f4a87;
    font-size: .8rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    cursor: pointer;
    padding: 2px 0;
}

.vdd-hist-vacio[b-8c87d7ri3r] { font-size: .8rem; color: #5b7089; padding: 6px 2px; }

.vdd-hist-tbl[b-8c87d7ri3r] {
    width: 100%;
    border-collapse: collapse;
    font-size: .8rem;
    margin-top: 4px;
}

.vdd-hist-tbl th[b-8c87d7ri3r] {
    text-align: left;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #5b7089;
    border-bottom: 1px solid #d3e0f2;
    padding: 3px 6px;
}

.vdd-hist-tbl td[b-8c87d7ri3r] {
    border-bottom: 1px solid #edf2f9;
    padding: 3px 6px;
    color: #33475b;
}

.vdd-hist-obs td[b-8c87d7ri3r] { background: #fffbeb; }
.vdd-hist-obs-ico[b-8c87d7ri3r] { color: #b45309; margin-left: 5px; }

.vdd-hist-dest[b-8c87d7ri3r] {
    max-width: 340px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vdd-badge[b-8c87d7ri3r] {
    display: inline-block;
    font-size: .72rem;
    font-weight: 800;
    border-radius: 9px;
    padding: 1px 8px;
}

.vdd-badge-0[b-8c87d7ri3r] { background: #eef3fb; border: 1px solid #d3e0f2; color: #33475b; }  /* generado */
.vdd-badge-1[b-8c87d7ri3r] { background: #e7f6ec; border: 1px solid #b7e0c4; color: #14713d; }  /* enviado  */
.vdd-badge-2[b-8c87d7ri3r] { background: #fdeaea; border: 1px solid #f2c4c4; color: #a02020; }  /* omitido  */

/* ── Subpanel de envío ──────────────────────────────────────────────────── */
.vdd-envio-backdrop[b-8c87d7ri3r] {
    position: fixed;
    inset: 0;
    z-index: 1410;
    background: rgba(15, 23, 42, .18);
}

.vdd-envio[b-8c87d7ri3r] {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 1420;
    /* Más grande (JJ 2026-09-13): el mensaje es enriquecido y se lee mejor. */
    width: min(920px, 94vw);
    max-height: 90vh;
    overflow: auto;
    background: #fff;
    border: 1px solid #c7d7ef;
    border-top: 4px solid #1f4a87;
    border-radius: 6px;
    box-shadow: 0 18px 50px rgba(15, 23, 42, .4);
    padding: 16px 22px 18px;
}

.vdd-envio-tit[b-8c87d7ri3r] {
    font-size: 1rem;
    font-weight: 800;
    color: #1f4a87;
    margin-bottom: 4px;
}

.vdd-envio-vacio[b-8c87d7ri3r] { font-size: .8rem; color: #5b7089; padding: 4px 0; }

/* Remitente del envío («Sale desde: Nombre <direccion>») — lo decide el servidor. */
.vdd-envio-desde[b-8c87d7ri3r] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    font-size: .8rem;
    color: #334155;
    padding: 4px 8px;
    border: 1px solid #d3e0f2;
    border-radius: 5px;
    background: #f7faff;
}
.vdd-envio-desde b[b-8c87d7ri3r] { color: #1f4a87; }
.vdd-envio-desde-dir[b-8c87d7ri3r] { color: #5b7089; }
.vdd-envio-desde-cargando[b-8c87d7ri3r] { color: #5b7089; font-style: italic; }
.vdd-envio-sincuenta[b-8c87d7ri3r] { margin-top: 0; }

/* Línea gris bajo el mensaje: la firma la pone el servidor al enviar. */
.vdd-envio-firma[b-8c87d7ri3r] {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 4px;
    font-size: .74rem;
    color: #64748b;
}

.vdd-envio-lista[b-8c87d7ri3r] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-height: 220px;
    overflow: auto;
}

.vdd-dest[b-8c87d7ri3r] {
    margin-top: 0;
    padding: 3px 4px;
    border-radius: 4px;
}

.vdd-dest:hover[b-8c87d7ri3r] { background: #f4f8fd; }

.vdd-dest-nom[b-8c87d7ri3r] { font-weight: 700; }

.vdd-dest-mail[b-8c87d7ri3r] {
    color: #5b7089;
    font-size: .76rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1 1 auto;
}

.vdd-dest-badge[b-8c87d7ri3r] {
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    border-radius: 8px;
    padding: 1px 7px;
    background: #eef3fb;
    border: 1px solid #d3e0f2;
    color: #33475b;
}

.vdd-dest-badge-proveedor[b-8c87d7ri3r] { background: #e7effc; border-color: #b9cdea; color: #1f4a87; }
.vdd-dest-badge-cuenta[b-8c87d7ri3r]    { background: #f0e9fb; border-color: #d5c4ef; color: #5b21b6; }
.vdd-dest-badge-manual[b-8c87d7ri3r]    { background: #fef3c7; border-color: #f2d98c; color: #92600a; }
.vdd-dest-badge-ficha[b-8c87d7ri3r]        { background: #e7effc; border-color: #b9cdea; color: #1f4a87; }
.vdd-dest-badge-envio[b-8c87d7ri3r]        { background: #e6f6f3; border-color: #b3dfd6; color: #0f766e; }
.vdd-dest-badge-departamento[b-8c87d7ri3r] { background: #f0e9fb; border-color: #d5c4ef; color: #5b21b6; text-transform: none; }

/* El correo manda (es lo que se envía); el contacto va detrás, más discreto. */
.vdd-dest-mail-pri[b-8c87d7ri3r] { color: #1f2937; font-size: .8rem; font-weight: 600; flex: 0 1 auto; }
.vdd-dest .vdd-dest-nom[b-8c87d7ri3r] { font-weight: 400; color: #5b7089; font-size: .74rem; flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Mensaje editable + adjunto visible */
.vdd-envio-cuerpo[b-8c87d7ri3r] { width: 100%; }

.vdd-envio-adj[b-8c87d7ri3r] {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    padding: 5px 8px;
    border: 1px solid #d3e0f2;
    border-radius: 5px;
    background: #f7faff;
    font-size: .8rem;
    color: #33475b;
}

.vdd-envio-adj-ico[b-8c87d7ri3r] { color: #b91c1c; }
.vdd-envio-adj-nom[b-8c87d7ri3r] { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vdd-envio-adj-tam[b-8c87d7ri3r] { color: #5b7089; font-size: .74rem; flex: 1 1 auto; }

.vdd-envio-adj-ver[b-8c87d7ri3r] {
    border: 0;
    background: transparent;
    color: #1f4a87;
    font-weight: 700;
    cursor: pointer;
    padding: 0 2px;
    text-decoration: underline;
}

.vdd-dest-quitar[b-8c87d7ri3r] {
    border: 0;
    background: transparent;
    color: #a02020;
    cursor: pointer;
    padding: 0 2px;
}

.vdd-envio-add[b-8c87d7ri3r] {
    display: flex;
    gap: 6px;
    margin-top: 6px;
}

.vdd-envio-add .inp[b-8c87d7ri3r] { flex: 1 1 auto; font-size: .84rem; }

.vdd-envio-asunto[b-8c87d7ri3r] { width: 100%; font-size: .84rem; }

.vdd-envio-err[b-8c87d7ri3r] {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #a02020;
    font-size: .8rem;
    font-weight: 700;
    margin-top: 6px;
}

.vdd-envio-btns[b-8c87d7ri3r] {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
}

/* Repliegue ≤ 1100px: el visor baja debajo de las opciones (§2.13) */
@media (max-width: 1100px) {
    .vdd-dlg[b-8c87d7ri3r] { overflow: auto; }
    .vdd-body[b-8c87d7ri3r] { grid-template-columns: 1fr; }
    .vdd-left[b-8c87d7ri3r] { overflow-y: visible; }
    .vdd-right[b-8c87d7ri3r] { min-height: 340px; height: auto; }
    .vdd-frame[b-8c87d7ri3r] { min-height: 340px; }
    .vdd-hist[b-8c87d7ri3r] { max-height: none; }
}

/* Motivo por el que no hay DeCA vigente (panel de la opción, JJ 2026-08-28). */
.vdd-deca-motivo[b-8c87d7ri3r] { font-size: 12px; color: #7a5200; background: #fff4d6; border: 1px solid #e0b64a; border-radius: 6px; padding: 6px 12px; max-width: 420px; text-align: center; }

/* ── Propio del visor común ─────────────────────────────────────────────── */
.vdd-orig[b-8c87d7ri3r] {
    display: flex; align-items: flex-start; gap: 8px; margin: 6px 0 2px;
    background: #ecf6ef; border: 1px solid #b7e0c4; border-radius: 5px;
    color: #14713d; font-size: .8rem; padding: 7px 10px;
}
.vdd-orig i[b-8c87d7ri3r] { font-size: 1rem; margin-top: 1px; }
.vdd-prov[b-8c87d7ri3r] {
    display: flex; align-items: flex-start; gap: 8px; margin: 6px 0 2px;
    background: #fef3c7; border: 1px solid #f2d98c; border-radius: 5px;
    color: #92600a; font-size: .8rem; padding: 7px 10px;
}
.vdd-xml-chk[b-8c87d7ri3r] { margin-top: 6px; }
.vdd-btn-xml[b-8c87d7ri3r] { color: #6d28d9; }
.vdd-badge-acc[b-8c87d7ri3r] { display: inline-block; padding: 1px 7px; border-radius: 9px; font-size: .72rem; font-weight: 700;
                 background: #eef3fb; color: #1f4a87; border: 1px solid #c9d8ee; }
.vdd-badge-acc.acc-1[b-8c87d7ri3r] { background: #e7f6ec; color: #14713d; border-color: #b7e0c4; }
.vdd-badge-acc.acc-2[b-8c87d7ri3r] { background: #f1ebfb; color: #5a3f9e; border-color: #cfbdf0; }
.vdd-badge-acc.err[b-8c87d7ri3r] { background: #fdeaea; color: #a02020; border-color: #f2c4c4; }
/* Lote: lista de documentos con scroll propio (el resto de mandos no se mueve). */
.vdd-lista[b-8c87d7ri3r] { display: flex; flex-direction: column; gap: 4px; max-height: 38vh; overflow-y: auto; padding-right: 2px; }
/* _content/NetOffice.Web.Forms/Components/VisorDocumentoFlotante.razor.rz.scp.css */
/* Visor de documento flotante — ventana NO modal, arrastrable y redimensionable.
   Posición/tamaño los pone el JS (visor-flotante.js); aquí sólo el aspecto. */
.vdf[b-oyy26n3qm4] {
    position: fixed;
    top: 12px; right: 12px; width: 46vw; height: calc(100vh - 24px); /* hasta que el JS la coloca */
    z-index: 1150;
    display: flex; flex-direction: column;
    background: #fff;
    border: 1px solid #1f4a87;
    border-radius: 8px;
    box-shadow: 0 14px 44px rgba(10, 25, 50, .42), 0 2px 6px rgba(10, 25, 50, .25);
    overflow: hidden;
    min-width: 280px; min-height: 200px;
}

.vdf-head[b-oyy26n3qm4] {
    flex: 0 0 auto;
    display: flex; align-items: center; gap: 8px;
    padding: 6px 8px 6px 12px;
    background: linear-gradient(180deg, #2f6ec1 0%, #1f4a87 100%);
    color: #fff; font-size: 13px; font-weight: 600;
    cursor: move; user-select: none; touch-action: none;
    outline: none;
}
.vdf-head:focus-visible[b-oyy26n3qm4] { box-shadow: inset 0 0 0 2px #ffd166; }
.vdf-title[b-oyy26n3qm4] { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vdf-grip[b-oyy26n3qm4] { opacity: .7; font-size: 12px; }

.vdf-btn[b-oyy26n3qm4] {
    flex: 0 0 auto;
    display: inline-flex; align-items: center; gap: 5px;
    border: 1px solid rgba(255, 255, 255, .55); background: rgba(255, 255, 255, .14);
    color: #fff; font-size: 12px; font-weight: 600;
    padding: 3px 9px; border-radius: 5px; cursor: pointer;
}
.vdf-btn:hover:not(:disabled)[b-oyy26n3qm4] { background: rgba(255, 255, 255, .28); }
.vdf-btn:disabled[b-oyy26n3qm4] { opacity: .5; cursor: default; }
.vdf-x[b-oyy26n3qm4] { padding: 3px 7px; }

.vdf-body[b-oyy26n3qm4] { position: relative; flex: 1 1 auto; min-height: 0; background: #525659; }
.vdf-frame[b-oyy26n3qm4] { width: 100%; height: 100%; border: 0; display: block; background: #525659; }
.vdf-vacio[b-oyy26n3qm4] { color: #e8edf3; padding: 24px; font-size: 13px; display: flex; gap: 8px; align-items: center; }
.vdf-aviso[b-oyy26n3qm4] {
    position: absolute; left: 10px; right: 10px; top: 10px;
    background: #fff4d6; border: 1px solid #d9a400; color: #5c4400;
    padding: 8px 10px; border-radius: 6px; font-size: 12px; cursor: pointer;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .25);
}

/* Mientras se arrastra o redimensiona el iframe no debe tragarse el ratón. */
.vdf.vdf-arrastrando .vdf-frame[b-oyy26n3qm4] { pointer-events: none; }
.vdf.vdf-arrastrando[b-oyy26n3qm4] { user-select: none; opacity: .96; }

/* Asas de redimensionado (invisibles), DENTRO del borde: la ventana tiene
   overflow:hidden y unas asas por fuera quedaban en 3-4px útiles — fallar el agarre
   hacía que el arrastre seleccionara la ficha. 8px en los lados, 18px en las esquinas
   de abajo; arriba fino para no comerse la cabecera. */
.vdf-rz[b-oyy26n3qm4] { position: absolute; z-index: 2; touch-action: none; }
.vdf-rz-n[b-oyy26n3qm4]  { top: 0; left: 18px; right: 18px; height: 4px; cursor: ns-resize; }
.vdf-rz-s[b-oyy26n3qm4]  { bottom: 0; left: 18px; right: 18px; height: 8px; cursor: ns-resize; }
.vdf-rz-e[b-oyy26n3qm4]  { right: 0; top: 36px; bottom: 18px; width: 8px; cursor: ew-resize; }
.vdf-rz-w[b-oyy26n3qm4]  { left: 0; top: 36px; bottom: 18px; width: 8px; cursor: ew-resize; }
.vdf-rz-se[b-oyy26n3qm4] { right: 0; bottom: 0; width: 18px; height: 18px; cursor: nwse-resize; }
.vdf-rz-nw[b-oyy26n3qm4] { left: 0; top: 0; width: 8px; height: 4px; cursor: nwse-resize; }
.vdf-rz-ne[b-oyy26n3qm4] { right: 0; top: 0; width: 8px; height: 4px; cursor: nesw-resize; }
.vdf-rz-sw[b-oyy26n3qm4] { left: 0; bottom: 0; width: 18px; height: 18px; cursor: nesw-resize; }
/* Marca visual de la esquina de estirar. */
.vdf-rz-se[b-oyy26n3qm4]::after {
    content: ""; position: absolute; right: 4px; bottom: 4px; width: 8px; height: 8px;
    border-right: 2px solid #8aa3c4; border-bottom: 2px solid #8aa3c4;
}
