/* /Pages/Configuration/Form/Control.razor.rz.scp.css */
/* =====================================================================
   Control.razor.css — design system con scope del Constructor de
   Formularios (Fase 6). Portado del diseño de Claude Design (bundle kyb).
   No depende de variantes arbitrarias de Tailwind (purgadas en este app);
   valores exactos. Las clases viven bajo .fb-builder y alcanzan a los
   componentes hijos vía ::deep. Dark mode: ancestro .dark en <html>.
   ===================================================================== */

/* ---------- top bar ---------- */
.fb-builder[b-e832v1u2dl]  .fb-topbar {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    padding: .65rem .9rem;
    border-radius: 14px;
    background: #fff;
    border: 1px solid #eef1f6;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
    margin-bottom: 1.1rem;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-topbar { background: #1e293b; border-color: #2c3a4f; }

.fb-builder[b-e832v1u2dl]  .fb-topname {
    font-size: 14.5px;
    font-weight: 700;
    color: #1e293b;
    max-width: 32vw;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-topname { color: #f1f5f9; }

.fb-builder[b-e832v1u2dl]  .fb-pill {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: 11.5px;
    font-weight: 600;
}

.fb-builder[b-e832v1u2dl]  .fb-pill.ok { color: #10b981; }
.fb-builder[b-e832v1u2dl]  .fb-pill.dirty { color: #f97316; }

/* ---------- segmented control ---------- */
.fb-builder[b-e832v1u2dl]  .fb-seg {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    border-radius: 10px;
    background: #f1f5f9;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-seg { background: #172033; }

/* !important: el button global del template infla tipografía/padding */
.fb-builder[b-e832v1u2dl]  .fb-seg button {
    font-size: 13px !important;
    line-height: 1.2 !important;
    font-weight: 600;
    padding: 5px 12px !important;
    border-radius: 7px;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: .13s;
    border: none;
    background: transparent;
    cursor: pointer;
    height: auto !important;
}

.fb-builder[b-e832v1u2dl]  .fb-seg button iconify-icon { font-size: 15px; }

/* custom.css global define span{font-size:.9375rem}: los spans internos
   deben heredar el tamaño de su contenedor, no los 15px globales */
.fb-builder[b-e832v1u2dl]  .fb-seg button span,
.fb-builder[b-e832v1u2dl]  .fb-nav-foot span,
.fb-builder[b-e832v1u2dl]  .fb-fauxinput span,
.fb-builder[b-e832v1u2dl]  .fb-pill span {
    font-size: inherit !important;
    line-height: inherit;
    letter-spacing: 0;
}

.fb-builder[b-e832v1u2dl]  .fb-seg button.on {
    background: #fff;
    color: #0f172a;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .1);
}

.dark .fb-builder[b-e832v1u2dl]  .fb-seg button { color: #94a3b8; }
.dark .fb-builder[b-e832v1u2dl]  .fb-seg button.on { background: #0f172a; color: #f1f5f9; }

/* ---------- workspace: navigator + canvas ---------- */
.fb-builder[b-e832v1u2dl]  .fb-workspace {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1.1rem;
    align-items: start;
}

@media (min-width: 880px) {
    .fb-builder[b-e832v1u2dl]  .fb-workspace { grid-template-columns: 264px minmax(0, 1fr); }
    .fb-builder[b-e832v1u2dl]  .fb-workspace.nav-collapsed { grid-template-columns: minmax(0, 1fr); }
    .fb-builder[b-e832v1u2dl]  .fb-workspace.nav-collapsed .fb-nav { display: none; }
}

@media (max-width: 879.98px) {
    .fb-builder[b-e832v1u2dl]  .fb-nav { display: none; }
}

.fb-builder[b-e832v1u2dl]  .fb-nav {
    position: sticky;
    top: 1rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, .65);
    border: 1px solid #eef1f6;
    padding: .9rem .7rem .6rem;
    max-height: calc(100vh - 7rem);
    overflow-y: auto;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-nav { background: rgba(17, 26, 46, .65); border-color: #2c3a4f; }

.fb-builder[b-e832v1u2dl]  .fb-nav-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #94a3b8;
    padding: 0 .35rem .55rem;
}

.fb-builder[b-e832v1u2dl]  .fb-navsec {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 6px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 12.5px;
    font-weight: 600;
    color: #334155;
}

.fb-builder[b-e832v1u2dl]  .fb-navsec:hover { background: #f1f5f9; }
.dark .fb-builder[b-e832v1u2dl]  .fb-navsec { color: #cbd5e1; }
.dark .fb-builder[b-e832v1u2dl]  .fb-navsec:hover { background: #172033; }

.fb-builder[b-e832v1u2dl]  .fb-navq {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 8px 5px 6px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 13px;
    color: #475569;
    transition: .12s;
    position: relative;
    width: 100%;
    text-align: left;
    border: none;
    background: transparent;
}

.fb-builder[b-e832v1u2dl]  .fb-navq:hover { background: #f1f5f9; }
.dark .fb-builder[b-e832v1u2dl]  .fb-navq { color: #cbd5e1; }
.dark .fb-builder[b-e832v1u2dl]  .fb-navq:hover { background: #172033; }

.fb-builder[b-e832v1u2dl]  .fb-navq.active {
    background: #eef1f6;
    color: #0f172a;
    font-weight: 600;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-navq.active { background: rgba(148, 163, 184, .14); color: #f1f5f9; }

.fb-builder[b-e832v1u2dl]  .fb-navq.active::before {
    content: "";
    position: absolute;
    left: -1px;
    top: 6px;
    bottom: 6px;
    width: 3px;
    border-radius: 99px;
    background: #0f172a;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-navq.active::before { background: #e2e8f0; }

.fb-builder[b-e832v1u2dl]  .fb-nav-foot {
    margin-top: .6rem;
    padding: .55rem .35rem 0;
    border-top: 1px solid #eef1f6;
    font-size: 11.5px;
    color: #94a3b8;
    display: flex;
    align-items: center;
    gap: .55rem;
    flex-wrap: wrap;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-nav-foot { border-top-color: #2c3a4f; }

/* ---------- tarjetas de pregunta (canvas) ---------- */
.fb-builder[b-e832v1u2dl]  .fb-qcard {
    border: 1px solid #eef1f6;
    border-radius: 12px;
    background: #fff;
    transition: border-color .14s, box-shadow .14s;
    cursor: pointer;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-qcard { background: #1a2236; border-color: #2c3a4f; }
.fb-builder[b-e832v1u2dl]  .fb-qcard:hover { border-color: #cbd5e1; }
.dark .fb-builder[b-e832v1u2dl]  .fb-qcard:hover { border-color: #3a4a63; }

.fb-builder[b-e832v1u2dl]  .fb-qcard.selected {
    border-color: #0f172a;
    box-shadow: 0 0 0 3px rgba(15, 23, 42, .12);
}

.dark .fb-builder[b-e832v1u2dl]  .fb-qcard.selected {
    border-color: #e2e8f0;
    box-shadow: 0 0 0 3px rgba(226, 232, 240, .16);
}

.fb-builder[b-e832v1u2dl]  .fb-qnum {
    font-size: 11px;
    font-weight: 700;
    color: #cbd5e1;
    font-variant-numeric: tabular-nums;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-qnum { color: #475569; }

.fb-builder[b-e832v1u2dl]  .fb-deps {
    margin: .25rem 0 .6rem 1.1rem;
    padding-left: 1rem;
    border-left: 2px solid #e2e8f0;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-deps { border-left-color: #334155; }

.fb-builder[b-e832v1u2dl]  .fb-deps-label {
    font-size: 11.5px;
    font-weight: 600;
    color: #94a3b8;
    margin: .4rem 0;
    display: flex;
    align-items: center;
    gap: .3rem;
}

/* ---------- chips ---------- */
.fb-builder[b-e832v1u2dl]  .fb-idchip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 1px 7px 1px 6px;
    border-radius: 6px;
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: 11px;
    font-weight: 500;
    background: #f1f5f9;
    color: #64748b;
    border: 1px solid #e7eaf3;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-idchip { background: #0b1220; color: #94a3b8; border-color: #243349; }

.fb-builder[b-e832v1u2dl]  .fb-idchip input {
    background: transparent;
    border: none;
    padding: 0;
    font: inherit;
    color: inherit;
    outline: none;
    min-width: 3ch;
}

.fb-builder[b-e832v1u2dl]  .fb-typepill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    background: #f1f5f9;
    color: #334155;
    border: 1px solid #e2e8f0;
    white-space: nowrap;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-typepill {
    background: rgba(148, 163, 184, .12);
    color: #cbd5e1;
    border-color: rgba(148, 163, 184, .25);
}

.fb-builder[b-e832v1u2dl]  .fb-reqdot { color: #ef4444; font-weight: 700; }

.fb-builder[b-e832v1u2dl]  .fb-extchip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 6px 3px 9px;
    border-radius: 7px;
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    font-size: 11.5px;
    font-weight: 500;
    background: #f1f5f9;
    color: #475569;
    border: 1px solid #e7eaf3;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-extchip { background: #0b1220; color: #cbd5e1; border-color: #243349; }

.fb-builder[b-e832v1u2dl]  .fb-extchip .x {
    cursor: pointer;
    color: #94a3b8;
    display: grid;
    place-items: center;
    border: none;
    background: transparent;
    padding: 0;
}

.fb-builder[b-e832v1u2dl]  .fb-extchip .x:hover { color: #dc2626; }

/* ---------- edición inline (nombre, descripción, títulos) ---------- */
.fb-builder[b-e832v1u2dl]  .fb-inline-edit {
    border-radius: 8px;
    padding: 2px 8px;
    margin-left: -8px;
    border: 1px solid transparent;
    background: transparent;
    width: 100%;
    transition: background .13s, border-color .13s, box-shadow .13s;
    color: inherit;
}

.fb-builder[b-e832v1u2dl]  .fb-inline-edit:hover { background: #f8fafc; border-color: #e2e8f0; }
.dark .fb-builder[b-e832v1u2dl]  .fb-inline-edit:hover { background: #0f172a; border-color: #334155; }

.fb-builder[b-e832v1u2dl]  .fb-inline-edit:focus {
    outline: none;
    background: #fff;
    border-color: #0f172a;
    box-shadow: 0 0 0 3px rgba(15, 23, 42, .12);
}

.dark .fb-builder[b-e832v1u2dl]  .fb-inline-edit:focus {
    background: #0f172a;
    border-color: #94a3b8;
    box-shadow: 0 0 0 3px rgba(148, 163, 184, .2);
}

.fb-builder[b-e832v1u2dl]  .fb-inline-edit::placeholder { color: #cbd5e1; }
.dark .fb-builder[b-e832v1u2dl]  .fb-inline-edit::placeholder { color: #475569; }

/* ---------- número de sección ---------- */
.fb-builder[b-e832v1u2dl]  .fb-secnum {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: #1e293b;
    color: #fff;
    font-size: 12.5px;
    font-weight: 700;
    flex: none;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-secnum { background: #e2e8f0; color: #0f172a; }

/* ---------- icon button ---------- */
.fb-builder[b-e832v1u2dl]  .fb-iconbtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    color: #94a3b8;
    transition: .13s;
    cursor: pointer;
    flex: none;
    border: none;
    background: transparent;
    padding: 0;
}

.fb-builder[b-e832v1u2dl]  .fb-iconbtn:hover { background: #f1f5f9; color: #475569; }
.dark .fb-builder[b-e832v1u2dl]  .fb-iconbtn:hover { background: #172033; color: #cbd5e1; }
.fb-builder[b-e832v1u2dl]  .fb-iconbtn.danger:hover { background: #fef2f2; color: #dc2626; }
.dark .fb-builder[b-e832v1u2dl]  .fb-iconbtn.danger:hover { background: rgba(239, 68, 68, .12); color: #fca5a5; }
.fb-builder[b-e832v1u2dl]  .fb-iconbtn:disabled { opacity: .35; cursor: default; }
.fb-builder[b-e832v1u2dl]  .fb-iconbtn:disabled:hover { background: transparent; color: #94a3b8; }

/* ---------- switch ---------- */
.fb-builder[b-e832v1u2dl]  .fb-switch {
    position: relative;
    width: 38px;
    height: 22px;
    border-radius: 99px;
    background: #e2e8f0;
    transition: .18s;
    flex: none;
    cursor: pointer;
    border: none;
    padding: 0;
}

.fb-builder[b-e832v1u2dl]  .fb-switch::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 18px;
    height: 18px;
    border-radius: 99px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
    transition: .18s;
}

.fb-builder[b-e832v1u2dl]  .fb-switch.on { background: #0f172a; }
.fb-builder[b-e832v1u2dl]  .fb-switch.on::after { transform: translateX(16px); }
.dark .fb-builder[b-e832v1u2dl]  .fb-switch { background: #334155; }
.dark .fb-builder[b-e832v1u2dl]  .fb-switch.on { background: #e2e8f0; }
.dark .fb-builder[b-e832v1u2dl]  .fb-switch.on::after { background: #0f172a; }

/* ---------- checkbox nativo con acento sobrio ---------- */
.fb-builder[b-e832v1u2dl]  .fb-check {
    width: 1.05rem;
    height: 1.05rem;
    accent-color: #0f172a;
    cursor: pointer;
    flex: none;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-check { accent-color: #e2e8f0; }

/* ---------- inspector (slide-over) ---------- */
.fb-builder[b-e832v1u2dl]  .fb-inspector {
    position: fixed;
    top: 0;
    bottom: 0;
    right: 0;
    width: 400px;
    max-width: 94vw;
    background: #fff;
    border-left: 1px solid #e2e8f0;
    overflow-y: auto;
    z-index: 1060;
    box-shadow: -18px 0 50px -22px rgba(15, 23, 42, .25);
    transform: translateX(105%);
    transition: transform .22s cubic-bezier(.22, 1, .36, 1);
}

.dark .fb-builder[b-e832v1u2dl]  .fb-inspector { background: #111a2e; border-left-color: #2c3a4f; }
.fb-builder[b-e832v1u2dl]  .fb-inspector.open { transform: none; }

.fb-builder[b-e832v1u2dl]  .fb-scrim {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .4);
    z-index: 1055;
}

/* En escritorio no hay scrim: el clic-fuera lo maneja el workspace
   (así un clic en otra tarjeta cambia la selección en un solo paso). */
@media (min-width: 768px) {
    .fb-builder[b-e832v1u2dl]  .fb-scrim { display: none; }
}

/* ---------- drag & drop ---------- */
.fb-builder[b-e832v1u2dl]  .fb-draghandle {
    display: inline-flex;
    align-items: center;
    color: #cbd5e1;
    cursor: grab;
    flex: none;
    user-select: none;
}

.fb-builder[b-e832v1u2dl]  .fb-draghandle:active { cursor: grabbing; }
.dark .fb-builder[b-e832v1u2dl]  .fb-draghandle { color: #475569; }
/* el número de sección como handle: re-impone el centrado (la regla
   .fb-draghandle, declarada después, pisa el display:grid de .fb-secnum) */
.fb-builder[b-e832v1u2dl]  .fb-secnum.fb-draghandle {
    color: #fff;
    display: grid;
    place-items: center;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-secnum.fb-draghandle { color: #0f172a; }

/* ---------- separación vertical de los grupos del inspector ---------- */
.fb-builder[b-e832v1u2dl]  .fb-stack > * + * { margin-top: .9rem; }

/* ---------- endurecimiento contra el CSS global ---------- */
.fb-builder[b-e832v1u2dl]  .fb-idchip input {
    height: auto;
    min-width: 3ch;
    box-shadow: none;
    line-height: 1.3;
}

/* Colores de texto explícitos (no depender de variantes dark: purgadas) */
.fb-builder[b-e832v1u2dl]  .fb-inline-edit { color: #1e293b; }
.dark .fb-builder[b-e832v1u2dl]  .fb-inline-edit { color: #e2e8f0; }
.fb-builder[b-e832v1u2dl]  .fb-inline-edit.fb-muted { color: #64748b; }
.dark .fb-builder[b-e832v1u2dl]  .fb-inline-edit.fb-muted { color: #94a3b8; }

.fb-builder[b-e832v1u2dl]  .fb-seg button span { display: inline; }

/* ---------- menú de tipos en 2 columnas (robusto ante el JS del dropdown) ---------- */
.fb-builder[b-e832v1u2dl]  .fb-typemenu {
    min-width: 320px;
    overflow: hidden; /* clearfix */
    padding: 6px;
}

.fb-builder[b-e832v1u2dl]  .fb-typemenu li {
    float: left;
    width: 50%;
}

.fb-builder[b-e832v1u2dl]  .fb-typemenu li a { border-radius: 8px; }

/* ---------- controles compactos del inspector (sin el form-control global) ---------- */
.fb-builder[b-e832v1u2dl]  .fb-typebtn,
.fb-builder[b-e832v1u2dl]  .fb-idfield {
    display: flex;
    align-items: center;
    width: 100%;
    gap: .5rem;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: .45rem .7rem;
    font-size: 13px;
    line-height: 1.3;
    color: #0f172a;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}

.fb-builder[b-e832v1u2dl]  .fb-typebtn { justify-content: space-between; }
.fb-builder[b-e832v1u2dl]  .fb-idfield { cursor: text; }

.fb-builder[b-e832v1u2dl]  .fb-typebtn:hover,
.fb-builder[b-e832v1u2dl]  .fb-idfield:hover { border-color: #cbd5e1; }

.fb-builder[b-e832v1u2dl]  .fb-idfield:focus-within {
    border-color: #0f172a;
    box-shadow: 0 0 0 3px rgba(15, 23, 42, .12);
}

.dark .fb-builder[b-e832v1u2dl]  .fb-typebtn,
.dark .fb-builder[b-e832v1u2dl]  .fb-idfield {
    background: #0f172a;
    border-color: #334155;
    color: #e2e8f0;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-typebtn:hover,
.dark .fb-builder[b-e832v1u2dl]  .fb-idfield:hover { border-color: #475569; }

.fb-builder[b-e832v1u2dl]  .fb-idfield input {
    flex: 1;
    min-width: 0;
    background: transparent;
    border: none;
    outline: none;
    box-shadow: none;
    padding: 0;
    height: auto;
    font: inherit;
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace;
    color: inherit;
}

/* ---------- utilidades que el Tailwind purgado del app NO incluye ---------- */
.fb-builder[b-e832v1u2dl]  .fb-icontile {
    display: grid;
    place-items: center;
}

.fb-builder[b-e832v1u2dl]  .fb-bigtile {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    border-radius: 16px;
}

.fb-builder[b-e832v1u2dl]  .fb-navindent { padding-left: .75rem; }

/* barra del tablero: buscador + contador en una fila, alineados al centro */
.fb-builder[b-e832v1u2dl]  .fb-listbar {
    display: flex;
    align-items: center;
    gap: .85rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.fb-builder[b-e832v1u2dl]  .fb-searchwrap {
    position: relative;
    flex: 1 1 220px;
    max-width: 28rem;
}

.fb-builder[b-e832v1u2dl]  .fb-searchwrap input { width: 100%; }

.fb-builder[b-e832v1u2dl]  .fb-searchicon {
    position: absolute;
    left: .8rem;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    font-size: 18px;
    pointer-events: none;
}

.fb-builder[b-e832v1u2dl]  .fb-depsline {
    margin-left: .5rem;
    padding-left: 1rem;
    border-left: 2px solid #e2e8f0;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-depsline { border-left-color: #475569; }

.fb-builder[b-e832v1u2dl]  .fb-navq > iconify-icon:first-child { opacity: .7; }

/* ---------- endurecimiento extra de la edición inline contra el CSS global ---------- */
.fb-builder[b-e832v1u2dl]  input.fb-inline-edit,
.fb-builder[b-e832v1u2dl]  textarea.fb-inline-edit {
    background: transparent;
    border: 1px solid transparent;
    box-shadow: none;
    outline: none;
    height: auto;
    appearance: none;
}

.fb-builder[b-e832v1u2dl]  .fb-insp-head-sticky {
    position: sticky;
    top: 0;
    z-index: 10;
    background: #fff;
    border-bottom: 1px solid #eef1f6;
    padding: .85rem 1rem;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-insp-head-sticky { background: #111a2e; border-bottom-color: #2c3a4f; }

.fb-builder[b-e832v1u2dl]  .fb-insp-group { border-top: 1px solid #eef1f6; }
.dark .fb-builder[b-e832v1u2dl]  .fb-insp-group { border-top-color: #2c3a4f; }

.fb-builder[b-e832v1u2dl]  .fb-insp-headrow {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    padding: 13px 16px;
    cursor: pointer;
    font-size: 12.5px;
    font-weight: 700;
    color: #0f172a;
    user-select: none;
    border: none;
    background: transparent;
    text-align: left;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-insp-headrow { color: #f1f5f9; }

.fb-builder[b-e832v1u2dl]  .fb-insp-headrow .chev { margin-left: auto; color: #94a3b8; transition: transform .18s; }
.fb-builder[b-e832v1u2dl]  .fb-insp-group.collapsed .chev { transform: rotate(-90deg); }
.fb-builder[b-e832v1u2dl]  .fb-insp-group.collapsed .fb-insp-body { display: none; }
.fb-builder[b-e832v1u2dl]  .fb-insp-body { padding: 2px 16px 16px; }

/* ---------- dropzone (preview de campos archivo) ---------- */
.fb-builder[b-e832v1u2dl]  .fb-dropzone {
    border: 1.5px dashed #cbd5e1;
    border-radius: 12px;
    background: #f8fafc;
    transition: .15s;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-dropzone { border-color: #334155; background: #0f172a; }

/* ---------- preview deshabilitado de campos en tarjetas ---------- */
.fb-builder[b-e832v1u2dl]  .fb-fieldprev { pointer-events: none; user-select: none; }

.fb-builder[b-e832v1u2dl]  .fb-fauxinput {
    width: 100%;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    color: #94a3b8;
    font-size: 13px;
    line-height: 1.3;
    padding: .42rem .7rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-fauxinput { background: rgba(15, 23, 42, .6); border-color: #334155; color: #64748b; }

/* ---------- skeleton ---------- */
.fb-builder[b-e832v1u2dl]  .fb-skel {
    background: linear-gradient(90deg, #eef1f6 25%, #e3e8f0 37%, #eef1f6 63%);
    background-size: 400% 100%;
    animation: fb-shimmer-b-e832v1u2dl 1.3s infinite;
    border-radius: 8px;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-skel {
    background: linear-gradient(90deg, #1b2740 25%, #243349 37%, #1b2740 63%);
    background-size: 400% 100%;
}

@keyframes fb-shimmer-b-e832v1u2dl {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

/* ---------- mini labels del inspector ---------- */
.fb-builder[b-e832v1u2dl]  .fb-minilabel {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #475569;
    margin-bottom: 6px;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-minilabel { color: #cbd5e1; }

/* ---------- fila de configuración con switch ---------- */
.fb-builder[b-e832v1u2dl]  .fb-switchrow {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .5rem .75rem;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #eef1f6;
    margin-bottom: .85rem;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-switchrow { background: rgba(15, 23, 42, .5); border-color: #1e293b; }

/* ---------- vista previa (portal actual) ---------- */
.fb-builder[b-e832v1u2dl]  .fb-pvwrap { max-width: 1240px; margin: 0 auto; }
.fb-builder[b-e832v1u2dl]  .fb-canvaswrap { max-width: 1240px; }

/* zona multi-archivo de la vista previa: réplica compacta de la zona real */
.fb-builder[b-e832v1u2dl]  .fb-pvzone {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .3rem;
    width: 100%;
    padding: 1.15rem 1rem;
    text-align: center;
    cursor: pointer;
}

.fb-builder[b-e832v1u2dl]  .fb-pvzone .fb-pvzone-ico {
    font-size: 26px;
    color: #94a3b8;
}

.fb-builder[b-e832v1u2dl]  .fb-pvzone .fb-pvzone-main {
    font-size: 13.5px !important;
    font-weight: 500;
    color: #475569;
    letter-spacing: 0;
}

.dark .fb-builder[b-e832v1u2dl]  .fb-pvzone .fb-pvzone-main { color: #cbd5e1; }

.fb-builder[b-e832v1u2dl]  .fb-pvzone .fb-pvzone-meta {
    font-size: 12px !important;
    color: #94a3b8;
    letter-spacing: 0;
}
/* /Pages/Dashboard/Costos.razor.rz.scp.css */
/* =====================================================================
   Costos.razor.css — estilos con scope (Blazor) del reporte de Costos.
   Portado del diseño de Claude Design. No depende de clases arbitrarias
   de Tailwind (que en este app están purgadas). Valores/colores exactos.
   ===================================================================== */

/* ---------- Filtros: barra de una sola fila (responsive) ---------- */
.cst-filters[b-0k0e51ol81] {
    display: grid;
    grid-template-columns: minmax(230px, 1.5fr) minmax(140px, .85fr) minmax(140px, .85fr) minmax(210px, 1.25fr) auto;
    gap: 1rem;
    align-items: end;
}

.cst-actions[b-0k0e51ol81] {
    display: flex;
    align-items: center;
    gap: .625rem;
    justify-content: flex-end;
}

@media (max-width: 1100px) {
    .cst-filters[b-0k0e51ol81] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cst-actions[b-0k0e51ol81] { justify-content: flex-start; }
}

@media (max-width: 640px) {
    .cst-filters[b-0k0e51ol81] { grid-template-columns: 1fr; }
}

.cst-chk[b-0k0e51ol81] {
    width: 1.05rem;
    height: 1.05rem;
    accent-color: #4f46e5;
    cursor: pointer;
}

/* ---------- KPIs ---------- */
.cst-kpis[b-0k0e51ol81] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
    gap: 1rem;
}

.cst-kpi[b-0k0e51ol81] { display: flex; align-items: center; gap: 1rem; }

.cst-ico[b-0k0e51ol81] {
    flex: none;
    width: 3rem;
    height: 3rem;
    border-radius: .75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}

.cst-ico-primary[b-0k0e51ol81] { background: rgba(99, 102, 241, .15); color: #4f46e5; }
.cst-ico-info[b-0k0e51ol81]    { background: rgba(6, 182, 212, .15);  color: #0891b2; }
.cst-ico-warning[b-0k0e51ol81] { background: rgba(249, 115, 22, .15); color: #ea580c; }
.cst-ico-exp[b-0k0e51ol81]     { background: rgba(139, 92, 246, .15); color: #7c3aed; }

.cst-kpi-label[b-0k0e51ol81] { font-size: 12.5px; font-weight: 500; color: #64748b; }
.cst-kpi-num[b-0k0e51ol81] {
    font-size: 26px;
    font-weight: 700;
    color: #0f172a;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
}

/* ---------- Tarjeta hero (Costo total) ---------- */
.cst-hero[b-0k0e51ol81] {
    position: relative;
    overflow: hidden;
    background: #4f46e5;
    border-color: #4f46e5 !important;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.cst-hero[b-0k0e51ol81]::before {
    content: "";
    position: absolute;
    right: -1.5rem;
    top: -1.5rem;
    width: 7rem;
    height: 7rem;
    border-radius: 9999px;
    background: rgba(255, 255, 255, .12);
}

.cst-hero-bgico[b-0k0e51ol81] {
    position: absolute;
    right: -.25rem;
    bottom: -.85rem;
    font-size: 78px;
    color: #fff;
    opacity: .18;
    pointer-events: none;
}

.cst-hero .cst-ico[b-0k0e51ol81] {
    background: rgba(255, 255, 255, .18);
    color: #fff;
    position: relative;
    z-index: 1;
}

.cst-hero-label[b-0k0e51ol81] {
    position: relative;
    z-index: 1;
    font-size: 12.5px;
    font-weight: 600;
    color: rgba(255, 255, 255, .82);
}

.cst-hero-num[b-0k0e51ol81] {
    position: relative;
    z-index: 1;
    font-size: 30px;
    font-weight: 800;
    color: #fff;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
}

/* ---------- Tabla ---------- */
.cst-h-ico[b-0k0e51ol81] { color: #6366f1; font-size: 18px; }

.cst-tablewrap[b-0k0e51ol81] { overflow: auto; max-height: 60vh; }

table.cst-tbl[b-0k0e51ol81] { width: 100%; border-collapse: separate; border-spacing: 0; }

.cst-tbl thead th[b-0k0e51ol81] {
    position: sticky;
    top: 0;
    z-index: 5;
    background: #f1f5f9;
    color: #475569;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 9px 12px;
    text-align: left;
    white-space: nowrap;
    border-bottom: 1px solid #e2e8f0;
}

.cst-tbl thead th.r[b-0k0e51ol81] { text-align: right; }

.cst-tbl td[b-0k0e51ol81] {
    padding: 9px 12px;
    font-size: 13px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
}

.cst-tbl tbody tr.cst-row:hover td[b-0k0e51ol81] { background: #f8fafc; }
.cst-tbl tbody tr.cst-zebra td[b-0k0e51ol81] { background: #fbfcfe; }

.cst-svc[b-0k0e51ol81] { padding-left: 1.35rem !important; font-weight: 500; color: #334155; }
.cst-type[b-0k0e51ol81] { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 12px; color: #64748b; }

.cst-num[b-0k0e51ol81] { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cst-num-zero[b-0k0e51ol81] { color: #cbd5e1; }
.cst-cost[b-0k0e51ol81] { font-family: 'JetBrains Mono', ui-monospace, monospace; font-weight: 600; }

.cst-group td[b-0k0e51ol81] { background: #fff; padding: 11px 12px 7px; border-bottom: none; }
.cst-group-chip[b-0k0e51ol81] { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 700; color: #0f172a; }
.cst-group-bar[b-0k0e51ol81] { display: inline-block; width: 4px; height: 15px; border-radius: 99px; background: #6366f1; }

.cst-subtotal td[b-0k0e51ol81] {
    background: #f4f5fb;
    color: #475569;
    font-weight: 600;
    font-size: 13px;
    padding: 8px 12px;
    border-top: 1px solid #e7eaf3;
    border-bottom: 1px solid #e7eaf3;
}

.cst-sub-lbl[b-0k0e51ol81] { color: #64748b; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; font-size: 11px; }

.cst-totals td[b-0k0e51ol81] {
    background: #0f172a;
    color: #fff;
    font-weight: 700;
    font-size: 13px;
    border-bottom: none;
    padding: 11px 12px;
    white-space: nowrap;
}

/* ---------- Skeleton / vacío ---------- */
.cst-skel[b-0k0e51ol81] {
    background: linear-gradient(90deg, #eef1f6 25%, #e3e8f0 37%, #eef1f6 63%);
    background-size: 400% 100%;
    animation: cstShimmer-b-0k0e51ol81 1.3s ease infinite;
    border-radius: 6px;
}

@keyframes cstShimmer-b-0k0e51ol81 {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}

.cst-empty-ico[b-0k0e51ol81] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 4rem;
    height: 4rem;
    border-radius: 1rem;
    background: #f1f5f9;
    color: #94a3b8;
    font-size: 34px;
}

/* ---------- Estado inicial (antes de Consultar) ---------- */
.cst-prompt[b-0k0e51ol81] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    text-align: center;
    padding: 3.5rem 1rem;
    color: #94a3b8;
    font-size: 14px;
}

.cst-prompt strong[b-0k0e51ol81] { color: #475569; }

/* ---------- Mensaje de error (consulta/export fallida) ---------- */
.cst-error[b-0k0e51ol81] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .75rem 1rem;
    border: 1px solid #fecaca;
    border-radius: .5rem;
    background: #fef2f2;
    color: #b91c1c;
    font-size: 14px;
}
/* /Pages/Dashboard/CostosClientSelect.razor.rz.scp.css */
/* MultiSelect local de Costos (estilo del diseño Claude). Scope Blazor. */
.ms-wrap[b-3rau5umfo9] { position: relative; }

.ms-trigger[b-3rau5umfo9] { display: flex; align-items: center; justify-content: space-between; gap: .5rem; cursor: pointer; }
.ms-trigger.ms-open[b-3rau5umfo9] { border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99, 102, 241, .16); }
.ms-placeholder[b-3rau5umfo9] { color: #94a3b8; }
.ms-sel[b-3rau5umfo9] { color: #334155; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ms-sel-n[b-3rau5umfo9] { color: #4f46e5; font-weight: 600; }
.ms-chev[b-3rau5umfo9] { color: #94a3b8; font-size: 16px; transition: transform .15s; flex: none; }
.ms-trigger.ms-open .ms-chev[b-3rau5umfo9] { transform: rotate(180deg); }

.ms-pop[b-3rau5umfo9] {
    position: absolute; z-index: 40; left: 0; right: 0; margin-top: 6px;
    background: #fff; border: 1px solid #e2e8f0; border-radius: 12px;
    box-shadow: 0 16px 44px -14px rgba(15, 23, 42, .32); overflow: hidden;
}

.ms-search[b-3rau5umfo9] { padding: .5rem; border-bottom: 1px solid #f1f5f9; position: relative; }
.ms-search-ico[b-3rau5umfo9] { position: absolute; left: 1.05rem; top: 50%; transform: translateY(-50%); color: #94a3b8; font-size: 15px; pointer-events: none; }
.ms-search-input[b-3rau5umfo9] { padding-left: 2.1rem !important; }

.ms-list[b-3rau5umfo9] { max-height: 13rem; overflow: auto; padding: .25rem 0; }

.ms-opt[b-3rau5umfo9] { display: flex; align-items: center; gap: 10px; padding: 9px 12px; cursor: pointer; font-size: 13.5px; color: #334155; }
.ms-opt:hover[b-3rau5umfo9] { background: #f8fafc; }
.ms-all[b-3rau5umfo9] { font-weight: 600; border-bottom: 1px solid #f1f5f9; }
.ms-opt-lbl[b-3rau5umfo9], .ms-all-lbl[b-3rau5umfo9] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ms-check[b-3rau5umfo9] {
    width: 18px; height: 18px; border-radius: 5px; border: 1.5px solid #cbd5e1;
    display: inline-flex; align-items: center; justify-content: center; color: #fff;
    flex: none; font-size: 12px; transition: .12s;
}
.ms-check iconify-icon[b-3rau5umfo9] { opacity: 0; }
.ms-check.on[b-3rau5umfo9] { background: #4f46e5; border-color: #4f46e5; }
.ms-check.on iconify-icon[b-3rau5umfo9] { opacity: 1; }

.ms-foot[b-3rau5umfo9] { display: flex; align-items: center; justify-content: space-between; padding: .5rem .75rem; border-top: 1px solid #f1f5f9; font-size: 12px; color: #64748b; }
.ms-clear[b-3rau5umfo9] { color: #4f46e5; font-weight: 600; font-size: 12px; background: none; border: none; cursor: pointer; padding: 0; }
.ms-clear:hover[b-3rau5umfo9] { text-decoration: underline; }
.ms-empty[b-3rau5umfo9] { padding: 1rem; text-align: center; color: #94a3b8; font-size: 13px; }
/* /Pages/Login/GuestVerify.razor.rz.scp.css */
/* =====================================================================
   GuestVerify — pantalla de código de acceso del invitado (OTP).
   Restyle a partir del mockup de diseño (ex-screens.jsx / EXOtp), adaptado
   a los estados reales del componente (envío, reusado, sin contacto, etc).
   Prefijo otp- para no chocar con las clases ex-/vd- del mockup ni con las
   de guest-mobile.css (otro archivo, editado en paralelo por otra persona).
   ===================================================================== */

.otp-page[b-w09hhg21ga] {
    font-family: 'Instrument Sans', system-ui, -apple-system, sans-serif;
    color: #0B1220;
    max-width: 420px;
    width: 100%;
    margin: 0 auto;
    padding: 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.otp-title[b-w09hhg21ga] {
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.025em;
    line-height: 1.3;
    margin: 0;
}

.otp-subtitle[b-w09hhg21ga] {
    font-size: 13.5px;
    color: #66717F;
    line-height: 1.55;
    margin: 0 0 4px;
}

/* ---------- Estados sin formulario (loading / not found / no contact) ---------- */
.otp-status[b-w09hhg21ga] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
    padding: 32px 4px;
}

.otp-halo[b-w09hhg21ga] {
    width: 66px;
    height: 66px;
    border-radius: 20px;
    background: color-mix(in srgb, #4669fa 9%, white);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 6px;
}

.otp-halo-icon[b-w09hhg21ga] {
    font-size: 30px;
    color: #4669fa;
}

.otp-halo-danger[b-w09hhg21ga] {
    background: color-mix(in srgb, #8C2D22 9%, white);
}

.otp-halo-danger .otp-halo-icon[b-w09hhg21ga] {
    color: #8C2D22;
}

.otp-halo-warn[b-w09hhg21ga] {
    background: color-mix(in srgb, #B7791F 9%, white);
}

.otp-halo-warn .otp-halo-icon[b-w09hhg21ga] {
    color: #B7791F;
}

.otp-spin[b-w09hhg21ga] {
    animation: otp-spin-b-w09hhg21ga 1s linear infinite;
}

@keyframes otp-spin-b-w09hhg21ga {
    to { transform: rotate(360deg); }
}

/* ---------- Tarjeta de destino ---------- */
.otp-dest[b-w09hhg21ga] {
    display: flex;
    align-items: center;
    gap: 12px;
    background: white;
    border-radius: 13px;
    box-shadow: 0 1px 2px rgba(11, 18, 32, 0.06), 0 1px 12px rgba(11, 18, 32, 0.05);
    padding: 12px 14px;
}

.otp-dest-icon[b-w09hhg21ga] {
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: color-mix(in srgb, #4669fa 9%, white);
    color: #4669fa;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}

.otp-dest-body[b-w09hhg21ga] {
    min-width: 0;
}

.otp-dest-bold[b-w09hhg21ga] {
    font-size: 14px;
    font-weight: 600;
    color: #0B1220;
    line-height: 1.4;
}

.otp-dest-small[b-w09hhg21ga] {
    font-size: 12px;
    color: #8A94A6;
    line-height: 1.4;
    margin-top: 1px;
}

/* ---------- Celdas del OTP ---------- */
.otp-cells[b-w09hhg21ga] {
    display: flex;
    gap: 8px;
}

.otp-cell[b-w09hhg21ga] {
    flex: 1;
    height: 56px;
    min-width: 0;
    border: 1.5px solid #E1E7F0;
    border-radius: 13px;
    font-family: inherit;
    font-size: 22px;
    font-weight: 600;
    text-align: center;
    color: #0B1220;
    background: white;
    outline: none;
    box-sizing: border-box;
    transition: border-color 0.12s ease, box-shadow 0.12s ease;
}

.otp-cell:focus[b-w09hhg21ga] {
    border-color: #4669fa;
    box-shadow: 0 0 0 3px color-mix(in srgb, #4669fa 22%, transparent);
}

.otp-cell.filled[b-w09hhg21ga] {
    border-color: #4669fa;
}

.otp-cell:disabled[b-w09hhg21ga] {
    background: #F6F8FC;
    color: #8A94A6;
}

/* ---------- Notas ---------- */
.otp-note[b-w09hhg21ga] {
    font-size: 12px;
    line-height: 1.5;
    border-radius: 12px;
    padding: 10px 12px;
}

.otp-note-b[b-w09hhg21ga] {
    background: #FDF3F2;
    color: #8C2D22;
}

.otp-note-i[b-w09hhg21ga] {
    background: #F6F8FC;
    color: #5A6577;
}

/* ---------- Reenvío ---------- */
.otp-resend[b-w09hhg21ga] {
    font-size: 12.5px;
    color: #8A94A6;
    text-align: center;
}

.otp-link[b-w09hhg21ga] {
    background: none;
    border: none;
    padding: 0;
    margin: 0 0 0 4px;
    font-family: inherit;
    font-size: inherit;
    font-weight: 600;
    color: #4669fa;
    cursor: pointer;
}

.otp-link:disabled[b-w09hhg21ga] {
    color: color-mix(in srgb, #4669fa 55%, #8A94A6);
    cursor: not-allowed;
}

/* ---------- Botón primario ---------- */
.otp-btn-primary[b-w09hhg21ga] {
    width: 100%;
    min-height: 52px;
    border: none;
    border-radius: 13px;
    background: #4669fa;
    color: white;
    font-family: inherit;
    font-size: 15.5px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    cursor: pointer;
    transition: background 0.12s ease;
}

.otp-btn-primary:disabled[b-w09hhg21ga] {
    background: color-mix(in srgb, #4669fa 38%, white);
    cursor: not-allowed;
}
/* /Shared/AlertBanner.razor.rz.scp.css */
/*
   Sub-modulo A — AlertBanner sin estilos custom.

   El componente usa solo clases utilitarias Tailwind del proyecto (text-danger,
   text-warning, text-success, text-info) que ya estan compiladas en el bundle
   y mantienen consistencia con las alertas hardcoded originales del expediente.

   Si en el futuro se quiere un estilo mas prominente (banner con fondo, borde
   lateral, etc.), agregarlo aqui scoped al componente.
*/
/* /Shared/EditBeneficialOwner.razor.rz.scp.css */
/* ===========================================================================
   Beneficiario Controlador — vista del cliente (diseño aprobado, 5 estados +
   pantalla de exención).
   Reglas explícitas .bc-* (NO utilidades Tailwind): app.css es un build compilado
   fijo, las utilidades arbitrarias no compiladas no aplican. Solo se combinan con
   clases reales del tema (.card / .btn / .form-control / .form-select / .file-control).
   Scoped CSS → se empaqueta en KYBusiness.Web.styles.css.
   =========================================================================== */

/* ── Banners (info / ok / warn) ─────────────────────────────────────────── */
.bc-banner[b-obj1im30x3] {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    border-radius: .5rem;
    padding: 16px 18px;
    font-size: .875rem;
    line-height: 1.45;
}

.bc-banner iconify-icon[b-obj1im30x3] {
    font-size: 1.4rem;
    flex: 0 0 auto;
    margin-top: 1px;
}

.bc-banner.info[b-obj1im30x3] {
    background: #eef2ff;
    border: 1px solid #d1dafe;
    color: #334155;
}

.bc-banner.ok[b-obj1im30x3] {
    background: rgba(80, 199, 147, .10);
    border: 1px solid rgba(80, 199, 147, .30);
    color: #334155;
}

.bc-banner.warn[b-obj1im30x3] {
    background: rgba(245, 158, 11, .12);
    border: 1px solid rgba(245, 158, 11, .30);
    color: #334155;
}

.bc-banner.err[b-obj1im30x3] {
    background: rgba(241, 89, 92, .10);
    border: 1px solid rgba(241, 89, 92, .30);
    color: #334155;
}

.bc-banner.err iconify-icon[b-obj1im30x3] {
    color: #d75052;
}

.bc-banner b[b-obj1im30x3] {
    color: #0f172a;
}

/* ── Etiquetas de sección / campo ───────────────────────────────────────── */
.bc-seclabel[b-obj1im30x3] {
    display: block;
    color: #0f172a;
    font-weight: 600;
    font-size: 1rem;
    margin: 28px 0 14px;
}

.bc-seclabel:first-child[b-obj1im30x3] {
    margin-top: 4px;
}

.bc-opt[b-obj1im30x3] {
    font-size: .75rem;
    font-weight: 500;
    color: #94a3b8;
    margin-left: .4rem;
}

.bc-fieldlabel[b-obj1im30x3] {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-weight: 500;
    font-size: .85rem;
    color: #334155;
    margin-bottom: .4rem;
}

.bc-req[b-obj1im30x3] {
    color: #f1595c;
}

.bc-help[b-obj1im30x3] {
    font-size: .72rem;
    color: #94a3b8;
    margin-top: .4rem;
}

/* ── Grid de campos ─────────────────────────────────────────────────────── */
.bc-grid[b-obj1im30x3] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px 24px;
}

@media (max-width: 640px) {
    .bc-grid[b-obj1im30x3] {
        grid-template-columns: 1fr;
    }
}

.bc-field[b-obj1im30x3] {
    display: flex;
    flex-direction: column;
}

/* ── Badges de origen del dato ──────────────────────────────────────────── */
.bc-src[b-obj1im30x3] {
    display: inline-flex;
    align-items: center;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .02em;
    padding: 1px 6px;
    border-radius: 5px;
    line-height: 1.5;
}

.bc-src.sat[b-obj1im30x3] {
    background: #edf0ff;
    color: #2a3f96;
}

.bc-src.rpc[b-obj1im30x3] {
    background: #d1fae5;
    color: #2e6d61;
}

.bc-src.calc[b-obj1im30x3] {
    background: #fef3c7;
    color: #b45309;
}

.bc-src.man[b-obj1im30x3] {
    background: #f1f5f9;
    color: #64748b;
}

/* ── Toggle segmentado (Sí/No, un archivo/dos) ──────────────────────────── */
.bc-seg[b-obj1im30x3] {
    display: inline-flex;
    gap: 3px;
    padding: 3px;
    border-radius: 8px;
    background: #f1f5f9;
    border: 1px solid #e2e8f0;
}

.bc-seg button[b-obj1im30x3] {
    font-size: 13px;
    font-weight: 500;
    padding: 6px 16px;
    border-radius: 6px;
    color: #64748b;
    cursor: pointer;
    border: 0;
    background: transparent;
    transition: .13s;
}

.bc-seg button.on[b-obj1im30x3] {
    background: #fff;
    color: #0f172a;
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .12);
}

/* ── Paso "Identificación primero": tarjeta compacta (título + toggle en una
      línea) que separa claramente del bloque de Identidad. ─────────────────── */
.bc-idstep[b-obj1im30x3] {
    background: #f8fafc;
    border: 1px solid #e8edf3;
    border-radius: 12px;
    padding: 14px 16px;
    margin: 4px 0 26px;
}

.bc-idhead[b-obj1im30x3] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.bc-idtitle[b-obj1im30x3] {
    display: block;
    color: #0f172a;
    font-weight: 600;
    font-size: 1rem;
}

.bc-idhint[b-obj1im30x3] {
    display: block;
    font-size: .72rem;
    color: #94a3b8;
    margin-top: 2px;
}

.bc-idseg[b-obj1im30x3] {
    flex-shrink: 0;
}

/* ── Tarjetas de candidato (empate) ─────────────────────────────────────── */
.bc-cand[b-obj1im30x3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    border: 1px solid #e2e8f0;
    border-radius: .5rem;
    background: #fff;
    transition: border-color .13s, box-shadow .13s;
}

.bc-cand:hover[b-obj1im30x3] {
    border-color: #cbd5e1;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .06);
}

.bc-cand .nm[b-obj1im30x3] {
    font-size: .9rem;
    font-weight: 600;
    color: #0f172a;
}

.bc-cand .meta[b-obj1im30x3] {
    font-size: .78rem;
    color: #64748b;
    margin-top: 3px;
    display: flex;
    gap: 8px;
    align-items: center;
}

.bc-cand .meta .pct[b-obj1im30x3] {
    color: #334155;
    font-weight: 600;
}

.bc-cand .meta .dot[b-obj1im30x3] {
    color: #cbd5e1;
}

/* ── Pregunta A0 (spec §4.1): respuestas y filas en conflicto ───────────── */
.bc-answers[b-obj1im30x3] {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
}

/* .btn del tema capitaliza cada palabra y no parte el texto en md+: las respuestas son frases. */
.bc-answer[b-obj1im30x3] {
    text-align: left;
    text-transform: none;
    white-space: normal;
}

.bc-answer-note[b-obj1im30x3] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Pregunta con tarjetas seleccionables (elegir no aplica; "Continuar" sí). */
.bc-choices[b-obj1im30x3] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 10px;
}

.bc-choice[b-obj1im30x3] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    text-align: left;
    background: #fff;
    border: 1px solid #cbd5e1;
    border-radius: .75rem;
    padding: 14px 16px;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}

.bc-choice:hover[b-obj1im30x3] {
    border-color: #94a3b8;
}

.bc-choice:focus-visible[b-obj1im30x3] {
    outline: 2px solid #4f46e5;
    outline-offset: 2px;
}

.bc-choice.is-selected[b-obj1im30x3] {
    border: 2px solid #4f46e5;
    background: #eef2ff;
    padding: 13px 15px;
}

.bc-choice-icon[b-obj1im30x3] {
    font-size: 1.35rem;
    color: #64748b;
    flex: 0 0 auto;
    margin-top: 1px;
}

.bc-choice.is-selected .bc-choice-icon[b-obj1im30x3],
.bc-choice.is-selected .bc-choice-title[b-obj1im30x3] {
    color: #4338ca;
}

.bc-choice-text[b-obj1im30x3] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.bc-choice-title[b-obj1im30x3] {
    font-size: .9rem;
    font-weight: 600;
    color: #1e293b;
}

.bc-choice-sub[b-obj1im30x3] {
    font-size: .8rem;
    line-height: 1.4;
    color: #64748b;
}

/* "Cambiar respuesta" dentro de un aviso: debajo del texto (cabe igual en móvil), sin capitalizar. */
.bc-change[b-obj1im30x3] {
    margin-top: 8px;
    text-transform: none;
    white-space: nowrap;
}

.bc-dispute[b-obj1im30x3] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 18px;
}

/* ── Footer (leyenda de exención + Guardar) ─────────────────────────────── */
.bc-foot[b-obj1im30x3] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 34px;
}

.bc-exlink[b-obj1im30x3] {
    font-size: .82rem;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    cursor: pointer;
}

.bc-exlink:hover[b-obj1im30x3] {
    color: #3f5edf;
}

.bc-exlink iconify-icon[b-obj1im30x3] {
    font-size: 1rem;
}

/* ── Spinner (consultando) ──────────────────────────────────────────────── */
.bc-spin[b-obj1im30x3] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
    text-align: center;
    padding: 46px 24px;
}

.bc-spin iconify-icon[b-obj1im30x3] {
    font-size: 3rem;
    color: #4669fa;
}

/* ── Volver (pantalla de exención) ──────────────────────────────────────── */
.bc-back[b-obj1im30x3] {
    font-size: .82rem;
    color: #64748b;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    margin-bottom: 14px;
}

.bc-back:hover[b-obj1im30x3] {
    color: #3f5edf;
}

/* ── Spinner del botón de guardar (spin-slow no existe en app.css) ───────── */
@keyframes bc-spin-b-obj1im30x3 {
    to {
        transform: rotate(360deg);
    }
}

.bc-spin-slow[b-obj1im30x3] {
    animation: bc-spin-b-obj1im30x3 1s linear infinite;
}
/* /Shared/EditEstructuraConsejo.razor.rz.scp.css */
/* Estructura Accionaria (formato NetPay). Clases scoped -> no dependen
   de utilidades Tailwind arbitrarias (app.css es un build compilado fijo).
   Este componente ahora solo pinta las tablas de accionistas (Sección III);
   las clases del bloque admin-PM (ec-adminpm/ec-adminpm-title/ec-grid/ec-fieldlabel)
   se movieron a EditOrgChart.razor.css junto con ese markup. */
.ec-wrap[b-cpkkjpf3mn] { margin-top: 1.5rem; border-top: 1px solid #e2e8f0; padding-top: 1rem; }
.ec-tabla[b-cpkkjpf3mn] { margin-bottom: 1.25rem; }
.ec-tabla-head[b-cpkkjpf3mn] { font-weight: 600; font-size: .8125rem; color: #334155; margin-bottom: .35rem; }
.ec-scroll[b-cpkkjpf3mn] { overflow-x: auto; }
.ec-pct[b-cpkkjpf3mn] { max-width: 6rem; }
.ec-tabla-actions[b-cpkkjpf3mn] { display: flex; gap: .5rem; margin-top: .35rem; }
/* /Shared/EditOrgChart.razor.rz.scp.css */
/* Bloque "El administrador es persona moral" (IV.B, formato NetPay). Clases scoped
   movidas desde EditEstructuraConsejo.razor.css al reubicar el markup admin-PM aquí;
   evita estilos inline y da tematización consistente. */
.ec-adminpm[b-n8nr3c6k6g] { border:1px solid #e2e8f0; border-radius:.5rem; padding:.75rem; margin-top:.5rem; }
.ec-adminpm-title[b-n8nr3c6k6g] { font-weight:600; font-size:.8125rem; margin:.35rem 0; }
.ec-grid[b-n8nr3c6k6g] { display:grid; grid-template-columns:repeat(auto-fit,minmax(12rem,1fr)); gap:.75rem; }
.ec-fieldlabel[b-n8nr3c6k6g] { display:block; font-size:.75rem; color:#475569; margin-bottom:.15rem; }

/* Toggle Sí/No — mismo look que .bc-seg de la sección BC, para preguntas booleanas. */
.seg[b-n8nr3c6k6g] { display:inline-flex; gap:3px; padding:3px; border-radius:8px; background:#f1f5f9; border:1px solid #e2e8f0; }
.seg button[b-n8nr3c6k6g] { font-size:13px; font-weight:500; padding:6px 16px; border-radius:6px; color:#64748b; cursor:pointer; background:transparent; border:none; }
.seg button.on[b-n8nr3c6k6g] { background:#fff; color:#0f172a; font-weight:600; box-shadow:0 1px 2px rgba(15,23,42,.12); }
/* /Shared/FormBuilder/FormBuilderConfirm.razor.rz.scp.css */
/* Confirmación del builder — estilos propios (no depende del wrapper fb-builder). */

.fbc-backdrop[b-xk3fmfq5lq] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .45);
    z-index: 1080;
    display: grid;
    place-items: center;
    padding: 1rem;
}

.fbc-card[b-xk3fmfq5lq] {
    background: #fff;
    border: 1px solid #eef1f6;
    border-radius: 14px;
    box-shadow: 0 18px 44px -14px rgba(15, 23, 42, .35);
    padding: 1.4rem 1.3rem 1.2rem;
    max-width: 380px;
    width: 100%;
    text-align: center;
    animation: fbc-in-b-xk3fmfq5lq .18s ease both;
}

:global(.dark) .fbc-card[b-xk3fmfq5lq] {
    background: #1e293b;
    border-color: #2c3a4f;
}

@keyframes fbc-in-b-xk3fmfq5lq {
    from { opacity: 0; transform: translateY(6px) scale(.98); }
    to { opacity: 1; transform: none; }
}

.fbc-icon[b-xk3fmfq5lq] {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    background: #fef2f2;
    color: #ef4444;
    margin: 0 auto .75rem;
    font-size: 22px;
}

:global(.dark) .fbc-icon[b-xk3fmfq5lq] {
    background: rgba(239, 68, 68, .12);
    color: #fca5a5;
}

.fbc-title[b-xk3fmfq5lq] {
    font-size: 15px;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
}

:global(.dark) .fbc-title[b-xk3fmfq5lq] { color: #f1f5f9; }

.fbc-detail[b-xk3fmfq5lq] {
    font-size: 12.5px;
    color: #64748b;
    margin: .35rem 0 0;
}

:global(.dark) .fbc-detail[b-xk3fmfq5lq] { color: #94a3b8; }

.fbc-actions[b-xk3fmfq5lq] {
    display: flex;
    gap: .5rem;
    margin-top: 1.1rem;
}

.fbc-btn[b-xk3fmfq5lq] {
    flex: 1;
    font-size: 13.5px;
    font-weight: 600;
    padding: .5rem .9rem;
    border-radius: 10px;
    cursor: pointer;
    transition: .13s;
    border: 1px solid transparent;
}

.fbc-cancel[b-xk3fmfq5lq] {
    background: transparent;
    color: #1e293b;
    border-color: #cbd5e1;
}

.fbc-cancel:hover[b-xk3fmfq5lq] { background: #f1f5f9; }

:global(.dark) .fbc-cancel[b-xk3fmfq5lq] { color: #e2e8f0; border-color: #475569; }
:global(.dark) .fbc-cancel:hover[b-xk3fmfq5lq] { background: #334155; }

.fbc-confirm[b-xk3fmfq5lq] {
    background: #dc2626;
    color: #fff;
}

.fbc-confirm:hover[b-xk3fmfq5lq] { background: #b91c1c; }
/* /Shared/FormFields/LocationQuestionField.razor.rz.scp.css */
/* Estilos del campo "Ubicación" moderno. CSS isolation (scoped). Tailwind está purgado en este
   proyecto, así que todo va aquí con clases propias. custom.css fija span{font-size:.9375rem} →
   los spans internos usan font-size:inherit donde haga falta. */

.lqf[b-5l32oaq02b] {
    display: flex;
    flex-direction: column;
    gap: .625rem;
}

.lqf-search[b-5l32oaq02b] {
    position: relative;
    display: flex;
    align-items: center;
    gap: .5rem;
}

.lqf-search-ic[b-5l32oaq02b] {
    position: absolute;
    left: .75rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.05rem;
    color: #94a3b8;
    pointer-events: none;
    z-index: 1;
}

.lqf-input[b-5l32oaq02b] {
    flex: 1 1 auto;
    padding-left: 2.25rem !important;
}

.lqf-geo[b-5l32oaq02b] {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: .5rem;
    border: 1px solid rgba(148, 163, 184, .4);
    background: transparent;
    color: inherit;
    cursor: pointer;
    font-size: 1.15rem;
}

.lqf-geo:hover[b-5l32oaq02b] {
    background: rgba(148, 163, 184, .15);
}

.lqf-map[b-5l32oaq02b] {
    width: 100%;
    height: 300px;
    border-radius: .625rem;
    border: 1px solid rgba(148, 163, 184, .3);
    overflow: hidden;
    background: rgba(148, 163, 184, .08);
}

.lqf-error[b-5l32oaq02b] {
    font-size: .8125rem;
    color: #ef4444;
}

.lqf-hint[b-5l32oaq02b] {
    font-size: .8125rem;
    color: #94a3b8;
}

.lqf-pending[b-5l32oaq02b] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
    padding: .625rem .75rem;
    border-radius: .625rem;
    border: 1px solid rgba(148, 163, 184, .3);
    background: rgba(148, 163, 184, .06);
}

.lqf-pending-info[b-5l32oaq02b] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    min-width: 0;
}

.lqf-pending-addr[b-5l32oaq02b] {
    font-size: .875rem;
    font-weight: 600;
    color: inherit;
    word-break: break-word;
}

.lqf-pin[b-5l32oaq02b] {
    color: #ef4444;
    font-size: 1.15rem;
    flex: none;
}

.lqf-coords[b-5l32oaq02b] {
    font-size: .75rem;
    color: #94a3b8;
    font-family: ui-monospace, Consolas, monospace;
}

.lqf-confirm[b-5l32oaq02b] {
    flex: 0 0 auto;
}

.lqf-readonly[b-5l32oaq02b] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.lqf-addr[b-5l32oaq02b] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    font-size: .875rem;
    color: inherit;
}

.lqf-addr span[b-5l32oaq02b] {
    font-size: inherit;
}

.lqf-embed[b-5l32oaq02b] {
    width: 100%;
    height: 220px;
    border: 0;
    border-radius: .625rem;
}

.lqf-empty[b-5l32oaq02b] {
    font-size: .8125rem;
    color: #94a3b8;
}
/* /Shared/GuestValidationCheckModal.razor.rz.scp.css */
/* =====================================================================
   GuestValidationCheckModal — modal read-only que se abre cuando el guest
   intenta enviar y hay validaciones restrictivas fallidas visibles a él.
   Muestra qué está mal para que corrija (re-subiendo docs o contactando).
   Edición inline vendrá en Sprint B2.
   ===================================================================== */

.gvc-backdrop[b-kxv7jdhnvq] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.55);
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    animation: gvc-fade-in-b-kxv7jdhnvq 0.15s ease-out;
}

@keyframes gvc-fade-in-b-kxv7jdhnvq {
    from { opacity: 0; }
    to { opacity: 1; }
}

.gvc-modal[b-kxv7jdhnvq] {
    background: white;
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(2, 6, 23, 0.25);
    width: 100%;
    max-width: 600px;
    max-height: calc(100vh - 48px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif;
    color: #0F172A;
    animation: gvc-slide-up-b-kxv7jdhnvq 0.18s ease-out;
}

@keyframes gvc-slide-up-b-kxv7jdhnvq {
    from { transform: translateY(12px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
}

/* ---------- Header ---------- */
.gvc-header[b-kxv7jdhnvq] {
    padding: 20px 24px 16px;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    border-bottom: 1px solid #E2E8F0;
}

.gvc-header-icon[b-kxv7jdhnvq] {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: #FEF2F2;
    color: #B91C1C;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}

.gvc-header-body[b-kxv7jdhnvq] {
    flex: 1;
    min-width: 0;
}

.gvc-title[b-kxv7jdhnvq] {
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: #0F172A;
    margin: 0;
    line-height: 1.35;
}

.gvc-subtitle[b-kxv7jdhnvq] {
    font-size: 13px;
    color: #64748B;
    line-height: 1.5;
    margin: 4px 0 0;
}

.gvc-close[b-kxv7jdhnvq] {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: none;
    background: transparent;
    color: #94A3B8;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    transition: background 0.12s ease, color 0.12s ease;
}

.gvc-close:hover[b-kxv7jdhnvq] {
    background: #F1F5F9;
    color: #0F172A;
}

/* ---------- Body ---------- */
.gvc-body[b-kxv7jdhnvq] {
    padding: 16px 24px 0;
    overflow-y: auto;
    flex: 1;
}

.gvc-empty[b-kxv7jdhnvq] {
    padding: 32px 12px;
    text-align: center;
    color: #64748B;
}

.gvc-empty iconify-icon[b-kxv7jdhnvq] {
    font-size: 44px;
    color: #10B981;
}

.gvc-empty p[b-kxv7jdhnvq] {
    margin: 12px 0 0;
    font-size: 14px;
}

/* ---------- List of failures ---------- */
.gvc-list[b-kxv7jdhnvq] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.gvc-item[b-kxv7jdhnvq] {
    display: flex;
    gap: 12px;
    padding: 12px;
    border-radius: 10px;
    background: #FEF2F2;
    border: 1px solid color-mix(in srgb, #EF4444 22%, transparent);
}

.gvc-item-icon[b-kxv7jdhnvq] {
    flex-shrink: 0;
    color: #EF4444;
    font-size: 18px;
    padding-top: 2px;
    display: inline-flex;
}

.gvc-item-body[b-kxv7jdhnvq] {
    flex: 1;
    min-width: 0;
}

.gvc-item-label[b-kxv7jdhnvq] {
    font-size: 14px;
    font-weight: 600;
    color: #0F172A;
    line-height: 1.4;
}

.gvc-item-error[b-kxv7jdhnvq] {
    font-size: 12.5px;
    color: #B91C1C;
    margin-top: 4px;
    line-height: 1.5;
}

.gvc-item-values[b-kxv7jdhnvq] {
    margin-top: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.gvc-item-chip[b-kxv7jdhnvq] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 8px;
    background: white;
    border: 1px solid #E2E8F0;
    font-size: 11.5px;
    max-width: 100%;
}

.gvc-item-chip-expected[b-kxv7jdhnvq] {
    background: #ECFDF5;
    border-color: color-mix(in srgb, #10B981 22%, transparent);
}

.gvc-item-chip-label[b-kxv7jdhnvq] {
    color: #64748B;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 9.5px;
    white-space: nowrap;
}

.gvc-item-chip-value[b-kxv7jdhnvq] {
    color: #0F172A;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
    max-width: 280px;
}

.gvc-mono[b-kxv7jdhnvq] {
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    font-size: 11px;
}

/* ---------- Input editable (regla con IsEditable=true) ---------- */
/* Wrapper cuando una regla tiene varios paths (ej: nombres + apellido_paterno
   + apellido_materno para una regla cross-fuente de nombre completo). */
.gvc-edit-group[b-kxv7jdhnvq] {
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.gvc-edit-expected[b-kxv7jdhnvq] {
    font-size: 11.5px;
    color: #64748B;
    line-height: 1.5;
}

.gvc-edit-expected .gvc-mono[b-kxv7jdhnvq] {
    color: #334155;
    background: #F1F5F9;
    padding: 1px 6px;
    border-radius: 4px;
}

.gvc-edit[b-kxv7jdhnvq] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.gvc-edit-label[b-kxv7jdhnvq] {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #64748B;
}

.gvc-edit-input[b-kxv7jdhnvq] {
    width: 100%;
    padding: 9px 12px !important;
    font-size: 13.5px !important;
    line-height: 1.4 !important;
    border-radius: 8px !important;
    border: 1px solid #CBD5E1 !important;
    background: white !important;
    color: #0F172A !important;
    outline: none;
    box-shadow: none !important;
    box-sizing: border-box;
    font-family: inherit;
    transition: border-color 0.12s ease, box-shadow 0.12s ease;
    height: auto !important;
}

.gvc-edit-input:focus[b-kxv7jdhnvq] {
    border-color: #4f46e5 !important;
    box-shadow: 0 0 0 3px rgba(79,70,229,0.1) !important;
}

.gvc-edit-input:disabled[b-kxv7jdhnvq] {
    background: #F1F5F9 !important;
    color: #94A3B8 !important;
    cursor: not-allowed;
}

.gvc-edit-hint[b-kxv7jdhnvq] {
    font-size: 11.5px;
    color: #64748B;
    margin-top: 2px;
}

.gvc-edit-hint .gvc-mono[b-kxv7jdhnvq] {
    color: #334155;
    background: #F1F5F9;
    padding: 1px 6px;
    border-radius: 4px;
}

/* ---------- Item no editable (contactar soporte) ---------- */
.gvc-item-note[b-kxv7jdhnvq] {
    margin-top: 8px;
    font-size: 11.5px;
    color: #64748B;
    font-style: italic;
    line-height: 1.5;
}

/* ---------- Help block ---------- */
.gvc-help[b-kxv7jdhnvq] {
    margin: 16px 0 4px;
    padding: 12px;
    border-radius: 10px;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    display: flex;
    gap: 10px;
    font-size: 12.5px;
    color: #475569;
    line-height: 1.55;
}

.gvc-help iconify-icon[b-kxv7jdhnvq] {
    flex-shrink: 0;
    color: #4f46e5;
    font-size: 18px;
    padding-top: 1px;
}

/* ---------- Footer ---------- */
.gvc-footer[b-kxv7jdhnvq] {
    padding: 16px 24px 20px;
    border-top: 1px solid #E2E8F0;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    background: #FAFBFC;
}

/* Error al guardar correcciones: aviso visible dentro del modal, arriba del footer. */
.gvc-save-error[b-kxv7jdhnvq] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 24px 12px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #FEF2F2;
    border: 1px solid #FECACA;
    color: #B91C1C;
    font-size: 13px;
}

.gvc-save-error iconify-icon[b-kxv7jdhnvq] {
    font-size: 18px;
    flex-shrink: 0;
}

.gvc-btn[b-kxv7jdhnvq] {
    padding: 9px 18px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    border: 1px solid transparent;
    cursor: pointer;
    font-family: inherit;
    transition: background 0.12s ease, border-color 0.12s ease, color 0.12s ease;
    line-height: 1;
}

.gvc-btn-secondary[b-kxv7jdhnvq] {
    background: white;
    color: #334155;
    border-color: #E2E8F0;
}

.gvc-btn-secondary:hover:not(:disabled)[b-kxv7jdhnvq] {
    background: #F1F5F9;
    border-color: #CBD5E1;
}

.gvc-btn-primary[b-kxv7jdhnvq] {
    background: #10B981;
    color: white;
    border-color: #10B981;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.gvc-btn-primary:hover:not(:disabled)[b-kxv7jdhnvq] {
    background: #059669;
    border-color: #059669;
}

.gvc-btn:disabled[b-kxv7jdhnvq] {
    opacity: 0.6;
    cursor: not-allowed;
}

.gvc-btn-primary:disabled[b-kxv7jdhnvq] {
    background: #A7F3D0;
    border-color: #A7F3D0;
}

/* Vista homologada editable / no editable: los valores comparados van siempre arriba,
   etiquetados por fuente; el bloque de captura lleva un título con la fuente que se corrige. */
.gvc-edit-title[b-kxv7jdhnvq] {
    font-size: 12px;
    font-weight: 600;
    color: #334155;
    margin: 10px 0 6px;
}

.gvc-item-chip-editable[b-kxv7jdhnvq] {
    border-style: dashed;
}
/* /Shared/MultiFileItem.razor.rz.scp.css */
/* Zona única de carga multi-archivo (mismo lenguaje visual que el builder). */

.mfi-zone[b-oz7ib9f1qo] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .3rem;
    width: 100%;
    border: 1.5px dashed #cbd5e1;
    border-radius: 12px;
    background: #f8fafc;
    padding: 1.15rem 1rem;
    text-align: center;
    cursor: pointer;
    transition: border-color .15s, background-color .15s;
}

.mfi-zone:hover[b-oz7ib9f1qo] {
    border-color: #64748b;
    background: #f1f5f9;
}

:global(.dark) .mfi-zone[b-oz7ib9f1qo] {
    border-color: #334155;
    background: #0f172a;
}

:global(.dark) .mfi-zone:hover[b-oz7ib9f1qo] {
    border-color: #94a3b8;
    background: rgba(148, 163, 184, .08);
}

.mfi-ico[b-oz7ib9f1qo] {
    font-size: 26px;
    color: #94a3b8;
}

.mfi-main[b-oz7ib9f1qo] {
    font-size: 13.5px;
    font-weight: 500;
    color: #475569;
}

.mfi-main u[b-oz7ib9f1qo] {
    text-underline-offset: 2px;
    font-weight: 600;
}

:global(.dark) .mfi-main[b-oz7ib9f1qo] { color: #cbd5e1; }

.mfi-meta[b-oz7ib9f1qo] {
    font-size: 12px;
    color: #94a3b8;
}
/* /Shared/ValidationResultsPanel.razor.rz.scp.css */
/* =====================================================================
   ValidationResultsPanel.razor.css — Blazor CSS isolation (auto-contenido)

   El proyecto usa Tailwind v3.2.4 pre-compilado estáticamente (sin build
   tooling). Las clases arbitrary (text-[11px], -mt-1, h-1.5, etc.) del
   mockup de Claude Design NO están en el bundle. Para fidelidad al diseño
   SIN depender de Tailwind arbitrary ni de un CDN que rompe el tema global,
   todo el styling del panel vive aquí con clases semánticas .vrp-*.

   Blazor inyecta un atributo [b-xxx] por componente, así que estos estilos
   SOLO aplican dentro de <ValidationResultsPanel>. El tema Dashcode global
   queda intacto.
   ===================================================================== */

/* ---------- Tokens (light + dark) ---------- */
.vrp-root[b-9552alyktt] {
    --ok-bg: #ECFDF5;
    --ok-bg-2: #D1FAE5;
    --ok-fg: #047857;
    --ok-ac: #10B981;
    --ko-bg: #FEF2F2;
    --ko-bg-2: #FEE2E2;
    --ko-fg: #B91C1C;
    --ko-ac: #EF4444;
    --na-bg: #F8FAFC;
    --na-fg: #94A3B8;
    --inf-bg: #FFFBEB;
    --inf-fg: #B45309;
    --inf-ac: #F59E0B;
    --vrp-indigo: #4f46e5;
    --vrp-indigo-50: #EEF2FF;
    --vrp-indigo-200: #C7D2FE;
    --vrp-ring: #E2E8F0;
    --vrp-text: #0F172A;
    --vrp-text-muted: #64748B;
    --vrp-text-soft: #94A3B8;
    --vrp-text-strong: #1E293B;
    --vrp-bg-card: #ffffff;

    font-family: 'Inter', ui-sans-serif, system-ui, -apple-system, sans-serif;
    font-feature-settings: normal;
    color: var(--vrp-text);
    line-height: 1.45;
}

html.dark .vrp-root[b-9552alyktt] {
    --ok-bg: rgba(16,185,129,.10);
    --ok-bg-2: rgba(16,185,129,.18);
    --ok-fg: #6EE7B7;
    --ok-ac: #34D399;
    --ko-bg: rgba(244,63,94,.10);
    --ko-bg-2: rgba(244,63,94,.20);
    --ko-fg: #FCA5A5;
    --ko-ac: #F87171;
    --na-bg: rgba(148,163,184,.06);
    --na-fg: #64748B;
    --inf-bg: rgba(245,158,11,.10);
    --inf-fg: #FCD34D;
    --inf-ac: #F59E0B;
    --vrp-ring: #334155;
    --vrp-text: #F1F5F9;
    --vrp-text-muted: #94A3B8;
    --vrp-text-soft: #64748B;
    --vrp-text-strong: #E2E8F0;
    --vrp-bg-card: #0B1220;
}

/* ---------- Loading / error states ---------- */
.vrp-loading[b-9552alyktt],
.vrp-error[b-9552alyktt] {
    margin-top: 8px;
    padding: 16px 20px;
    background: var(--vrp-bg-card);
    border: 1px solid var(--vrp-ring);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-size: 13px;
    color: var(--vrp-text-muted);
}

.vrp-error[b-9552alyktt] {
    border-color: color-mix(in srgb, var(--ko-ac) 28%, transparent);
    color: var(--ko-fg);
}

.vrp-spinner[b-9552alyktt] {
    width: 28px;
    height: 28px;
    border: 2px solid var(--vrp-ring);
    border-bottom-color: var(--vrp-indigo);
    border-radius: 9999px;
    animation: vrp-spin-b-9552alyktt 0.8s linear infinite;
}

@keyframes vrp-spin-b-9552alyktt {
    to { transform: rotate(360deg); }
}

/* ---------- Wrapper ---------- */
.vrp-wrap[b-9552alyktt] {
    margin-top: 16px;
    width: 100%;
}

/* ---------- Header ---------- */
.vrp-header[b-9552alyktt] {
    margin-bottom: 20px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px;
}

.vrp-title[b-9552alyktt] {
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.3;
    color: var(--vrp-text);
    margin: 0;
}

.vrp-subtitle[b-9552alyktt] {
    font-size: 13px;
    color: var(--vrp-text-muted);
    line-height: 1.5;
    margin-top: 2px;
    margin-bottom: 0;
}

.vrp-hint[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--vrp-text-soft);
}

/* ---------- Layout: matrix + score card ---------- */
.vrp-layout[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.vrp-main[b-9552alyktt] {
    min-width: 0;
}

/* ---------- Score card horizontal (full-width arriba) ---------- */
.vrp-score-card-horizontal[b-9552alyktt] {
    padding: 20px;
    margin-bottom: 16px;
}

.vrp-score-card-horizontal .vrp-score-zones[b-9552alyktt] {
    display: flex;
    flex-wrap: wrap;
    gap: 24px 28px;
    align-items: stretch;
}

.vrp-score-zone-a[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-shrink: 0;
}

.vrp-score-zone-a .vrp-donut[b-9552alyktt] {
    height: 96px;
    width: 96px;
    flex-shrink: 0;
}

.vrp-score-zone-b[b-9552alyktt] {
    min-width: 260px;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 12px;
}

.vrp-score-zone-c[b-9552alyktt] {
    min-width: 280px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

@media (max-width: 720px) {
    .vrp-score-zone-a[b-9552alyktt] {
        width: 100%;
    }
}

/* ---------- Card base ---------- */
.vrp-card[b-9552alyktt] {
    background: var(--vrp-bg-card);
    border: 1px solid var(--vrp-ring);
    border-radius: 14px;
    box-shadow: none;
}

/* ---------- Action bar ---------- */
.vrp-actionbar[b-9552alyktt] {
    padding: 12px;
    margin-bottom: 16px;
}

.vrp-actionbar-row[b-9552alyktt] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.vrp-search-wrap[b-9552alyktt] {
    position: relative;
    flex: 1;
    min-width: 240px;
    display: block;
}

.vrp-search-wrap iconify-icon[b-9552alyktt] {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--vrp-text-soft);
    pointer-events: none;
    z-index: 1;
    font-size: 16px;
}

.vrp-search-input[b-9552alyktt] {
    width: 100%;
    padding: 9px 12px 9px 36px !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    border-radius: 10px !important;
    border: 1px solid var(--vrp-ring) !important;
    background: #F8FAFC !important;
    color: var(--vrp-text) !important;
    outline: none;
    box-shadow: none !important;
    font-family: inherit;
    transition: background .12s ease, border-color .12s ease;
    height: auto !important;
    box-sizing: border-box;
}

.vrp-search-input:focus[b-9552alyktt] {
    background: white !important;
    border-color: var(--vrp-indigo) !important;
    box-shadow: 0 0 0 3px rgba(79,70,229,.1) !important;
}

html.dark .vrp-search-input[b-9552alyktt] {
    background: #070B14 !important;
    color: var(--vrp-text) !important;
    border-color: var(--vrp-ring) !important;
}

html.dark .vrp-search-input:focus[b-9552alyktt] {
    background: var(--vrp-bg-card) !important;
}

/* ---------- Filter chips ---------- */
.vrp-chips[b-9552alyktt] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.vrp-chip[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 12px !important;
    border-radius: 9999px;
    font-size: 12px !important;
    font-weight: 500;
    border: 1px solid var(--vrp-ring);
    color: var(--vrp-text-muted);
    background: white;
    cursor: pointer;
    transition: all .12s ease;
    user-select: none;
    line-height: 1;
    text-transform: none;
    letter-spacing: normal;
    font-family: inherit;
    white-space: nowrap;
}

/* Todos los chips con count visible aunque sea 0 — evita que unos se vean
   más "cortos" que otros por falta del número. */
.vrp-chip-count[b-9552alyktt] {
    opacity: 0.55;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    min-width: 14px;
    text-align: center;
}

.vrp-chip:hover[b-9552alyktt] {
    border-color: var(--vrp-text-soft);
}

.vrp-chip[aria-pressed="true"][b-9552alyktt] {
    background: var(--vrp-text);
    color: white;
    border-color: var(--vrp-text);
}

.vrp-chip-dot[b-9552alyktt] {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 9999px;
    flex-shrink: 0;
}

.vrp-chip-disabled[b-9552alyktt] {
    opacity: 0.5;
    cursor: not-allowed !important;
}

.vrp-chip-disabled:hover[b-9552alyktt] {
    border-color: var(--vrp-ring);
}

html.dark .vrp-chip[b-9552alyktt] {
    background: var(--vrp-bg-card);
    color: #CBD5E1;
    border-color: #1E293B;
}

html.dark .vrp-chip[aria-pressed="true"][b-9552alyktt] {
    background: #F1F5F9;
    color: #0F172A;
    border-color: #E2E8F0;
}

html.dark .vrp-chip[aria-pressed="true"] .vrp-chip-count[b-9552alyktt] {
    color: #475569;
}

/* ---------- View toggle ---------- */
.vrp-view-toggle[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    padding: 2px;
    border-radius: 10px;
    border: 1px solid var(--vrp-ring);
    background: white;
    margin-left: auto;
}

html.dark .vrp-view-toggle[b-9552alyktt] {
    background: var(--vrp-bg-card);
    border-color: #1E293B;
}

.vrp-view-btn[b-9552alyktt] {
    padding: 5px 10px !important;
    font-size: 12px !important;
    font-weight: 500;
    border-radius: 7px;
    border: none;
    background: transparent;
    color: var(--vrp-text-muted);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    line-height: 1;
    font-family: inherit;
    transition: all .12s ease;
    text-transform: none;
    letter-spacing: normal;
}

.vrp-view-btn[aria-pressed="true"][b-9552alyktt] {
    background: var(--vrp-text);
    color: white;
}

.vrp-view-btn:disabled[b-9552alyktt] {
    opacity: 0.5;
    cursor: not-allowed;
}

.vrp-view-btn iconify-icon[b-9552alyktt] {
    font-size: 14px;
}

html.dark .vrp-view-btn[aria-pressed="true"][b-9552alyktt] {
    background: #E2E8F0;
    color: var(--vrp-text);
}

/* ---------- Source / legend row ---------- */
.vrp-source-legend[b-9552alyktt] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--vrp-text-muted);
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--vrp-ring);
}

.vrp-legend-label[b-9552alyktt] {
    font-weight: 500;
    color: #475569;
    margin-right: 4px;
}

html.dark .vrp-legend-label[b-9552alyktt] {
    color: #CBD5E1;
}

.vrp-legend-swatches[b-9552alyktt] {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-left: auto;
}

.vrp-legend-item[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.vrp-swatch[b-9552alyktt] {
    display: inline-block;
    height: 10px;
    width: 10px;
    border-radius: 3px;
    flex-shrink: 0;
}

.vrp-swatch-ok[b-9552alyktt] {
    background: var(--ok-bg-2);
    border: 1px solid var(--ok-ac);
}

.vrp-swatch-ko[b-9552alyktt] {
    background: var(--ko-bg-2);
    border: 1px solid var(--ko-ac);
}

.vrp-swatch-na[b-9552alyktt] {
    background: transparent;
    border: 1px dashed var(--vrp-ring);
}

.vrp-swatch-pivot[b-9552alyktt] {
    background: var(--vrp-indigo-200);
    border: 1px solid var(--vrp-indigo);
}

.vrp-src-pill[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    background: #F1F5F9;
    color: #334155;
    border: 1px solid var(--vrp-ring);
    text-transform: uppercase;
    font-family: inherit;
    line-height: 1.4;
}

html.dark .vrp-src-pill[b-9552alyktt] {
    background: var(--vrp-bg-card);
    color: var(--vrp-text-muted);
    border-color: #1E293B;
}

/* ---------- Groups list ---------- */
.vrp-groups[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.vrp-group[b-9552alyktt] {
    overflow: hidden;
    background: var(--vrp-bg-card);
    border: 1px solid var(--vrp-ring);
    border-radius: 14px;
}

.vrp-group > summary[b-9552alyktt] {
    list-style: none;
    padding: 12px 16px;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    user-select: none;
}

.vrp-group > summary[b-9552alyktt]::-webkit-details-marker {
    display: none;
}

.vrp-group > summary:hover[b-9552alyktt] {
    background: #F8FAFC;
}

html.dark .vrp-group > summary:hover[b-9552alyktt] {
    background: #0F172A;
}

.vrp-chev[b-9552alyktt] {
    transition: transform .18s ease;
    color: var(--vrp-text-soft);
    font-size: 16px;
}

.vrp-group[open] > summary .vrp-chev[b-9552alyktt] {
    transform: rotate(90deg);
}

.vrp-group-status-dot[b-9552alyktt] {
    display: inline-block;
    height: 8px;
    width: 8px;
    border-radius: 9999px;
    flex-shrink: 0;
}

.vrp-group-title[b-9552alyktt] {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--vrp-text);
    margin: 0;
}

.vrp-group-count[b-9552alyktt] {
    font-size: 12px;
    color: var(--vrp-text-soft);
    margin-left: 4px;
}

.vrp-group-summary-right[b-9552alyktt] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.vrp-group-progress-label[b-9552alyktt] {
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.vrp-group-progress-label.vrp-is-fail[b-9552alyktt] {
    color: #e11d48;
}

.vrp-group-progress-label.vrp-is-ok[b-9552alyktt] {
    color: #059669;
}

.vrp-group-progress-label .vrp-num[b-9552alyktt] {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.vrp-group-progress-label .vrp-skip-note[b-9552alyktt] {
    color: var(--vrp-text-soft);
}

.vrp-score-badge-sm[b-9552alyktt] {
    font-size: 11px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 9999px;
    font-variant-numeric: tabular-nums;
}

/* Los estilos legacy de matriz grid columna-por-fuente
   (.vrp-matrix-scroll / .vrp-matrix-row / .vrp-matrix-header / .vrp-matrix-body)
   se eliminaron: el v2 reemplaza ese layout por .vrp-rule-row-matrix (flex con
   celdas auto-empacadas) y .vrp-list-row (tabla compacta). */

/* ---------- pair_multi_field: sección por par + sub-reglas como filas ----------
   Homólogo a multi_compare: las sub-reglas se renderizan como filas normales
   del grid, cada una con celdas Pivote (purple) + Comparado (ok/ko). Los pares
   (cuando hay varios) se separan con un header row que rompe el grid completo
   con `grid-column: 1 / -1;`. El revisor reusa el mismo patrón visual de
   multi_compare — no aprende dos lenguajes. */

/* Resumen del parent row (ocupa todas las columnas de valor) */
.vrp-pair-summary-cell[b-9552alyktt] {
    display: flex;
    align-items: center;
    border-style: dashed;
}

/* Section header del par: identifica qué item estamos viendo + join info.
   Toma toda la fila (display block) — antes usaba grid-column: 1 / -1 dentro
   del grid matriz, que ya no existe en v2. */
.vrp-pair-sec-head[b-9552alyktt] {
    padding: 6px 12px;
    background: color-mix(in srgb, var(--vrp-bg-card) 85%, var(--vrp-ring) 15%);
    border-top: 1px solid var(--vrp-ring);
}

.vrp-pair-sec-head-inner[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11.5px;
    flex-wrap: wrap;
}

.vrp-pair-sec-title[b-9552alyktt] {
    font-weight: 600;
    font-size: 12.5px;
    color: var(--vrp-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
}

.vrp-pair-sec-arrow[b-9552alyktt] {
    color: var(--vrp-text-soft);
    font-size: 13px;
    flex-shrink: 0;
}

.vrp-pair-sec-ok > .vrp-pair-sec-head-inner > iconify-icon:first-child[b-9552alyktt] {
    /* hereda color inline */
}

.vrp-pair-sec-keyline[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: 8px;
    padding-left: 8px;
    border-left: 1px solid var(--vrp-ring);
    color: var(--vrp-text-soft);
    font-size: 11px;
}

.vrp-pair-sec-keylabel[b-9552alyktt] {
    font-weight: 500;
    letter-spacing: 0.02em;
}

.vrp-pair-sec-keyline code[b-9552alyktt] {
    padding: 0 5px;
    border-radius: 3px;
    background: color-mix(in srgb, var(--vrp-ring) 55%, transparent);
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    font-size: 10.5px;
    color: var(--vrp-text);
}

.vrp-pair-sec-keysep[b-9552alyktt] {
    color: var(--vrp-text-soft);
}

.vrp-pair-badge[b-9552alyktt] {
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
    flex-shrink: 0;
    font-family: inherit;
}

.vrp-pair-badge-join[b-9552alyktt] {
    background: color-mix(in srgb, var(--vrp-indigo) 12%, transparent);
    color: var(--vrp-indigo);
}

.vrp-pair-badge-warn[b-9552alyktt] {
    background: color-mix(in srgb, var(--ko-ac) 15%, transparent);
    color: var(--ko-ac);
}

.vrp-pair-sec-summary[b-9552alyktt] {
    margin-left: auto;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 2px 9px;
    border-radius: 999px;
    flex-shrink: 0;
    font-family: inherit;
}

.vrp-pair-sec-summary-ok[b-9552alyktt] {
    background: color-mix(in srgb, var(--ok-ac) 12%, transparent);
    color: var(--ok-ac);
}

.vrp-pair-sec-summary-ko[b-9552alyktt] {
    background: color-mix(in srgb, var(--ko-ac) 12%, transparent);
    color: var(--ko-ac);
}

/* Filas hijas (sub-reglas). Layout flex de 3 zonas: rule-col sub + pivote + comparado. */
.vrp-pair-child-row[b-9552alyktt] {
    display: flex;
    gap: 12px;
    padding: 8px 14px 8px 42px;
    align-items: stretch;
    border-top: 1px solid #F1F5F9;
}

html.dark .vrp-pair-child-row[b-9552alyktt] { border-top-color: rgba(148, 163, 184, 0.1); }

.vrp-pair-child-row > .vrp-rule-col-sub[b-9552alyktt] {
    flex: 0 0 clamp(200px, 24%, 280px);
    min-width: 0;
}

.vrp-pair-child-row > .vrp-cell[b-9552alyktt] {
    flex: 1 1 0;
    min-width: 0;
}

.vrp-rule-col-sub .vrp-rule-icon[b-9552alyktt] {
    font-size: 15px;
}

.vrp-rule-col-sub .vrp-rule-label[b-9552alyktt] {
    font-size: 12.5px;
    font-weight: 500;
}

/* ---------- Rule row ---------- */
.vrp-rule-col[b-9552alyktt] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    min-width: 0;
}

.vrp-rule-icon[b-9552alyktt] {
    padding-top: 2px;
    flex-shrink: 0;
    font-size: 16px;
    line-height: 1;
    display: inline-flex;
}

.vrp-rule-body[b-9552alyktt] {
    flex: 1;
    min-width: 0;
}

.vrp-rule-label[b-9552alyktt] {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--vrp-text-strong);
    line-height: 1.35;
    word-break: break-word;
}

.vrp-rule-name-mono[b-9552alyktt] {
    font-size: 11px;
    color: var(--vrp-text-soft);
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    margin-top: 2px;
    line-height: 1.4;
    word-break: break-all;
}

.vrp-rule-sev-row[b-9552alyktt] {
    margin-top: 6px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
}

.vrp-rule-error[b-9552alyktt],
.vrp-rule-skip[b-9552alyktt] {
    margin-top: 6px;
    font-size: 11px;
    display: flex;
    align-items: flex-start;
    gap: 6px;
    line-height: 1.45;
}

.vrp-rule-error[b-9552alyktt] {
    color: var(--ko-fg);
}

.vrp-rule-skip[b-9552alyktt] {
    color: var(--vrp-text-muted);
}

.vrp-rule-error iconify-icon[b-9552alyktt],
.vrp-rule-skip iconify-icon[b-9552alyktt] {
    margin-top: 2px;
    flex-shrink: 0;
    font-size: 12px;
}

/* ---------- Severity badges ---------- */
/* Token unificado para TODOS los badges (severity, source pill, pair badge,
   summary): mismas métricas para que la barra de chips no "salte" entre
   tamaños. Reservamos JetBrains Mono solo para valores/datos. */
.vrp-sev[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1.4;
    font-family: inherit;
}

.vrp-sev-rest[b-9552alyktt] {
    background: var(--ko-bg);
    color: var(--ko-fg);
    border: 1px solid color-mix(in srgb, var(--ko-ac) 25%, transparent);
}

.vrp-sev-inf[b-9552alyktt] {
    background: var(--inf-bg);
    color: var(--inf-fg);
    border: 1px solid color-mix(in srgb, var(--inf-ac) 30%, transparent);
}

/* Neutral: regla solo informativa, no afecta score ni se pinta rojo/verde. */
.vrp-sev-neutral[b-9552alyktt] {
    background: var(--na-bg);
    color: var(--vrp-text-muted);
    border: 1px solid var(--vrp-ring);
}

/* ---------- Cells ---------- */
.vrp-cell[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 10px;
    min-height: 56px;
    border-radius: 8px;
    border: 1px solid transparent;
    font-size: 12px;
    line-height: 1.25;
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
    cursor: pointer;
    background: transparent;
    box-sizing: border-box;
}

.vrp-cell:hover[b-9552alyktt] {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(2,6,23,.06);
}

.vrp-cell-ok[b-9552alyktt] {
    background: var(--ok-bg);
    color: var(--ok-fg);
    border-color: color-mix(in srgb, var(--ok-ac) 22%, transparent);
}

.vrp-cell-ko[b-9552alyktt] {
    background: var(--ko-bg);
    color: var(--ko-fg);
    border-color: color-mix(in srgb, var(--ko-ac) 28%, transparent);
}

.vrp-cell-na[b-9552alyktt] {
    background: transparent;
    color: var(--na-fg);
    border: 1px dashed var(--vrp-ring);
    cursor: default;
}

.vrp-cell-na:hover[b-9552alyktt] {
    transform: none;
    box-shadow: none;
}

/* Celda neutral (severidad = neutral): muestra el valor sin pass/fail.
   Tono gris suave para no llamar la atención del revisor. */
.vrp-cell-info[b-9552alyktt] {
    background: var(--na-bg);
    color: var(--vrp-text-muted);
    border-color: var(--vrp-ring);
}

/* ---------- pair_multi_field: modal detail ----------
   Diseñado para revisión exhaustiva — el revisor ve el contexto del
   emparejamiento (qué fuentes, qué campo clave, cuántas sub-reglas pasaron),
   y luego por cada par una tabla Pivote/Comparado alineada con la matriz. */

.vrp-sp-amf-summary[b-9552alyktt] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px 16px;
    padding: 12px 14px;
    background: color-mix(in srgb, var(--vrp-bg-card) 90%, var(--vrp-indigo) 4%);
    border: 1px solid var(--vrp-ring);
    border-radius: 10px;
    margin-bottom: 14px;
}

.vrp-sp-amf-summary-block[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.vrp-sp-amf-summary-eyebrow[b-9552alyktt] {
    font-size: 9.5px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    color: var(--vrp-text-soft);
}

.vrp-sp-amf-summary-value[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    font-size: 12px;
    color: var(--vrp-text);
    font-weight: 500;
}

.vrp-sp-amf-code[b-9552alyktt] {
    padding: 2px 7px;
    border-radius: 4px;
    background: color-mix(in srgb, var(--vrp-ring) 55%, transparent);
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    font-size: 11px;
    color: var(--vrp-text);
}

.vrp-sp-amf-keysep[b-9552alyktt] {
    color: var(--vrp-text-soft);
    font-weight: 600;
}

.vrp-sp-amf-tally[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 600;
}

.vrp-sp-amf-tally.is-ok[b-9552alyktt] {
    color: var(--ok-ac);
}

.vrp-sp-amf-tally.is-ko[b-9552alyktt] {
    color: var(--ko-ac);
}

/* ---------- Cada par como sub-sección ---------- */

.vrp-sp-amf-pair[b-9552alyktt] {
    border: 1px solid var(--vrp-ring);
    border-radius: 10px;
    overflow: hidden;
    margin-top: 10px;
}

.vrp-sp-amf-pair.is-ok[b-9552alyktt] {
    border-left: 3px solid var(--ok-ac);
}

.vrp-sp-amf-pair.is-ko[b-9552alyktt] {
    border-left: 3px solid var(--ko-ac);
}

.vrp-sp-amf-pair-head[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: color-mix(in srgb, var(--vrp-bg-card) 82%, var(--vrp-ring) 18%);
    border-bottom: 1px solid var(--vrp-ring);
    flex-wrap: wrap;
}

.vrp-sp-amf-pair-title[b-9552alyktt] {
    font-weight: 600;
    font-size: 13px;
    color: var(--vrp-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 180px;
}

.vrp-sp-amf-pair-join[b-9552alyktt] {
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: color-mix(in srgb, var(--vrp-indigo) 12%, transparent);
    color: var(--vrp-indigo);
}

.vrp-sp-amf-pair-count[b-9552alyktt] {
    margin-left: auto;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.vrp-sp-amf-pair-count.is-ok[b-9552alyktt] {
    background: color-mix(in srgb, var(--ok-ac) 12%, transparent);
    color: var(--ok-ac);
}

.vrp-sp-amf-pair-count.is-ko[b-9552alyktt] {
    background: color-mix(in srgb, var(--ko-ac) 12%, transparent);
    color: var(--ko-ac);
}

.vrp-sp-amf-table[b-9552alyktt] {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}

.vrp-sp-amf-table thead th[b-9552alyktt] {
    text-align: left;
    padding: 8px 14px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--vrp-text-soft);
    background: color-mix(in srgb, var(--vrp-bg-card) 94%, var(--vrp-ring) 6%);
    border-bottom: 1px solid var(--vrp-ring);
}

.vrp-sp-amf-table tbody tr + tr[b-9552alyktt] {
    border-top: 1px solid var(--vrp-ring);
}

.vrp-sp-amf-table tbody td[b-9552alyktt] {
    padding: 10px 14px;
    vertical-align: middle;
}

/* La celda se mantiene como table-cell (respeta auto-sizing de la tabla).
   El layout flex vive en un div interno para no romper el modelo de tabla. */
.vrp-sp-amf-td-rule[b-9552alyktt] {
    color: var(--vrp-text);
    font-weight: 500;
    white-space: nowrap;
    vertical-align: middle;
}

.vrp-sp-amf-td-rule-inner[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.vrp-sp-amf-td-val[b-9552alyktt] {
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    font-size: 11.5px;
    color: var(--vrp-text);
    vertical-align: middle;
    word-break: break-word;
}

.vrp-sp-amf-td-tgt-inner[b-9552alyktt] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.vrp-sp-amf-td-tgt-val[b-9552alyktt] {
    min-width: 0;
}

.vrp-sp-amf-td-src[b-9552alyktt] {
    background: color-mix(in srgb, var(--vrp-indigo) 5%, transparent);
}

.vrp-sp-amf-table tbody tr.is-ok .vrp-sp-amf-td-tgt[b-9552alyktt] {
    background: color-mix(in srgb, var(--ok-ac) 7%, transparent);
}

.vrp-sp-amf-table tbody tr.is-ko .vrp-sp-amf-td-tgt[b-9552alyktt] {
    background: color-mix(in srgb, var(--ko-ac) 9%, transparent);
}

.vrp-sp-amf-td-sim[b-9552alyktt] {
    margin-left: 8px;
    font-size: 10px;
    color: var(--vrp-text-soft);
    font-family: inherit;
}

.vrp-sp-amf-td-op[b-9552alyktt] {
    margin-left: 8px;
    font-size: 10px;
    color: var(--vrp-text-muted);
    font-style: italic;
    font-family: inherit;
}

/* ---------- Misses (unmatched / orphan) ---------- */

.vrp-sp-amf-miss-head[b-9552alyktt] {
    margin-top: 14px;
    margin-bottom: 8px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--vrp-text-soft);
}

.vrp-sp-amf-miss-list[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.vrp-sp-amf-miss-row[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border: 1px solid var(--vrp-ring);
    border-radius: 8px;
    font-size: 12px;
    background: color-mix(in srgb, var(--vrp-bg-card) 92%, var(--ko-ac) 6%);
}

.vrp-sp-amf-miss-label[b-9552alyktt] {
    font-weight: 600;
    color: var(--vrp-text);
}

.vrp-sp-amf-miss-note[b-9552alyktt] {
    color: var(--vrp-text-soft);
    font-size: 11.5px;
}

.vrp-cell-pivot[b-9552alyktt] {
    background: var(--vrp-indigo-50);
    color: #3730A3;
    border-color: var(--vrp-indigo-200);
}

html.dark .vrp-cell-pivot[b-9552alyktt] {
    background: rgba(79,70,229,.15);
    color: #A5B4FC;
    border-color: rgba(79,70,229,.45);
}

.vrp-cell-body[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 2px;
    flex: 1;
}

.vrp-cell-inner[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.vrp-cell-label[b-9552alyktt] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 600;
    opacity: 0.7;
}

.vrp-cell-na-body[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 6px;
    opacity: 0.7;
    font-size: 11px;
}

.vrp-cell-icon[b-9552alyktt] {
    font-size: 16px;
    flex-shrink: 0;
    line-height: 1;
    display: inline-flex;
}

.vrp-cell-na-icon[b-9552alyktt] {
    font-size: 14px;
    flex-shrink: 0;
    color: #CBD5E1;
}

.vrp-cell-value[b-9552alyktt] {
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    font-feature-settings: "ss01", "cv02";
    font-size: 11.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.vrp-cell-list[b-9552alyktt] {
    display: flex;
    flex-wrap: wrap;
    gap: 3px;
    min-width: 0;
    overflow: hidden;
    max-height: 40px;
}

.vrp-cell-list-item[b-9552alyktt] {
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    font-size: 10.5px;
    line-height: 1;
    padding: 2px 6px;
    border-radius: 999px;
    background-color: rgba(99, 102, 241, 0.10);
    color: var(--vrp-indigo, #4f46e5);
    white-space: nowrap;
    max-width: 110px;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ─── Toggle de layout (lista / matriz) ─── */
.vrp-layout-toggle[b-9552alyktt] {
    display: inline-flex;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    overflow: hidden;
    background: #FFFFFF;
    margin-left: auto;
}

.vrp-layout-btn[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    font-size: 11.5px;
    font-weight: 500;
    color: #64748B;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: background 120ms, color 120ms;
}

.vrp-layout-btn iconify-icon[b-9552alyktt] { font-size: 14px; }
.vrp-layout-btn:hover[b-9552alyktt] { background: #F1F5F9; color: #334155; }

.vrp-layout-btn-on[b-9552alyktt] {
    background: #4F46E5;
    color: #FFFFFF;
}
.vrp-layout-btn-on:hover[b-9552alyktt] { background: #4338CA; color: #FFFFFF; }

/* ═══════════════════════════════════════════════════════════════════════════
   MODO MATRIZ v2 (default) — una fila por regla con celdas auto-empacadas;
   cada celda lleva la fuente como header pequeño arriba dentro de la caja.
   Sin grid columnas-por-fuente y sin huecos N/A.
   ═══════════════════════════════════════════════════════════════════════════ */

.vrp-rules-body[b-9552alyktt] {
    overflow-x: visible;
}

.vrp-rule-row-matrix[b-9552alyktt] {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    border-top: 1px solid #F1F5F9;
    padding: 12px 14px;
}

html.dark .vrp-rule-row-matrix[b-9552alyktt] { border-top-color: rgba(148, 163, 184, 0.1); }

.vrp-rule-row-matrix > .vrp-rule-col[b-9552alyktt] {
    flex: 0 0 clamp(280px, 28%, 360px);
    min-width: 0;
}

.vrp-cells-row[b-9552alyktt] {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-content: flex-start;
    min-width: 0;
}

.vrp-list-cell[b-9552alyktt] {
    flex: 0 1 200px;
    min-width: 180px;
    max-width: 280px;
    min-height: 56px;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid transparent;
    display: flex;
    align-items: stretch;
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
    cursor: pointer;
}

.vrp-list-cell:hover[b-9552alyktt] { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(2,6,23,.06); }

/* ─── Single-source: cuando la regla tiene UNA sola fuente, la celda aprovecha
   todo el ancho disponible y el contenido interno (pills, mini-cards, valores
   multi-field) deja de truncar — el usuario tiene espacio para ver todo. ─── */
.vrp-cells-row > .vrp-list-cell:only-child[b-9552alyktt],
.vrp-cells-row > .vrp-cell-multi:only-child[b-9552alyktt] {
    max-width: none;
    flex: 1 1 100%;
    width: 100%;
}

/* Pills y mini-cards del ValueDisplay dentro de una celda única se expanden. */
.vrp-cells-row > .vrp-list-cell:only-child[b-9552alyktt]  .vd-list,
.vrp-cells-row > .vrp-list-cell:only-child[b-9552alyktt]  .vd-object {
    width: 100%;
}

.vrp-cells-row > .vrp-list-cell:only-child[b-9552alyktt]  .vd-pill {
    max-width: none;
    white-space: normal;
    word-break: break-word;
    padding: 4px 10px;
    font-size: 11px;
    line-height: 1.45;
}

.vrp-cells-row > .vrp-list-cell:only-child[b-9552alyktt]  .vd-card {
    max-width: none;
    flex: 1 1 100%;
    width: 100%;
    padding: 8px 10px;
}

.vrp-cells-row > .vrp-list-cell:only-child[b-9552alyktt]  .vd-card-v {
    white-space: normal;
    word-break: break-word;
}

.vrp-cells-row > .vrp-list-cell:only-child[b-9552alyktt]  .vd-scalar {
    white-space: normal;
    word-break: break-word;
}

/* Multi-field cell: las filas (label + valor) tampoco truncan cuando es única. */
.vrp-cells-row > .vrp-cell-multi:only-child .vrp-cell-field-value[b-9552alyktt],
.vrp-cells-row > .vrp-cell-multi:only-child .vrp-cell-field-label[b-9552alyktt] {
    white-space: normal;
    word-break: break-word;
    overflow: visible;
    text-overflow: clip;
    max-width: none;
}

.vrp-cells-row > .vrp-cell-multi:only-child[b-9552alyktt]  .vd-pill,
.vrp-cells-row > .vrp-cell-multi:only-child[b-9552alyktt]  .vd-card,
.vrp-cells-row > .vrp-cell-multi:only-child[b-9552alyktt]  .vd-card-v,
.vrp-cells-row > .vrp-cell-multi:only-child[b-9552alyktt]  .vd-scalar {
    max-width: none;
    white-space: normal;
    word-break: break-word;
}

.vrp-list-cell-body[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1;
}

.vrp-list-cell-label[b-9552alyktt] {
    font-size: 9.5px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    opacity: 0.75;
    display: inline-flex;
    align-items: center;
    gap: 3px;
}

.vrp-list-cell-label-pivot[b-9552alyktt] {
    color: #4338CA;
    opacity: 1;
}
html.dark .vrp-list-cell-label-pivot[b-9552alyktt] { color: #A5B4FC; }

.vrp-list-cell-label-icon[b-9552alyktt] { font-size: 11px; }

.vrp-list-cell-row[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

/* pair_multi_field summary toma el espacio restante en modo matriz. */
.vrp-pair-summary-cell-matrix[b-9552alyktt] {
    flex: 1 1 100%;
    min-width: 0;
}

/* ─── Celda multi-field (concatenación Source1Separator="list" con 2+ paths) ─── */
.vrp-cell-multi[b-9552alyktt] {
    align-items: stretch;
    flex: 1 1 280px;
    min-width: 240px;
    max-width: 360px;
    padding: 10px 10px 8px;
}

.vrp-cell-multi-body[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-width: 0;
    flex: 1;
    width: 100%;
}

.vrp-cell-multi-head[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: space-between;
}

.vrp-cell-multi-summary[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 10.5px;
    font-weight: 600;
    padding-top: 1px;
}

.vrp-cell-multi-summary iconify-icon[b-9552alyktt] { font-size: 13px; }

.vrp-cell-fields[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 4px;
}

.vrp-cell-field-row[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 6px;
    border-radius: 5px;
    background: rgba(15, 23, 42, 0.025);
    border: 1px solid rgba(15, 23, 42, 0.05);
    min-width: 0;
}

html.dark .vrp-cell-field-row[b-9552alyktt] {
    background: rgba(255, 255, 255, 0.035);
    border-color: rgba(255, 255, 255, 0.04);
}

.vrp-cell-field-icon[b-9552alyktt] {
    font-size: 11px;
    flex-shrink: 0;
    opacity: 0.85;
    color: inherit;
}

.vrp-cell-field-label[b-9552alyktt] {
    font-size: 9.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: inherit;
    opacity: 0.7;
    flex-shrink: 0;
    min-width: 0;
    max-width: 80px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vrp-cell-field-value[b-9552alyktt] {
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    font-size: 10.5px;
    min-width: 0;
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: inherit;
}

.vrp-cell-multi-more[b-9552alyktt] {
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 5px;
    background: rgba(15, 23, 42, 0.06);
    color: inherit;
    opacity: 0.75;
    align-self: flex-start;
    margin-top: 4px;
}

html.dark .vrp-cell-multi-more[b-9552alyktt] { background: rgba(255, 255, 255, 0.06); }

/* ─── Side panel: card multi-field (Resumen) ─── */
.vrp-sp-mf-head[b-9552alyktt] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.vrp-sp-mf-eyebrow[b-9552alyktt] {
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    color: var(--vrp-text-soft, #94A3B8);
}

.vrp-sp-mf-summary[b-9552alyktt] {
    font-size: 12px;
    color: var(--vrp-text-soft, #64748B);
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.vrp-sp-mf-card[b-9552alyktt] {
    border: 1px solid var(--vrp-ring, #E2E8F0);
    border-radius: 12px;
    overflow: hidden;
    background: var(--vrp-bg-card, #FFFFFF);
}

html.dark .vrp-sp-mf-card[b-9552alyktt] { background: #0B1220; border-color: #1E293B; }

.vrp-sp-mf-row[b-9552alyktt] {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px;
}

.vrp-sp-mf-row + .vrp-sp-mf-row[b-9552alyktt] {
    border-top: 1px solid var(--vrp-ring, #E2E8F0);
}

html.dark .vrp-sp-mf-row + .vrp-sp-mf-row[b-9552alyktt] { border-top-color: #1E293B; }

.vrp-sp-mf-icon[b-9552alyktt] {
    height: 32px;
    width: 32px;
    border-radius: 8px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    font-size: 16px;
}

.vrp-sp-mf-icon.is-ok[b-9552alyktt] {
    background: var(--ok-bg, rgba(16,185,129,0.10));
    color: var(--ok-fg, #047857);
}

.vrp-sp-mf-icon.is-ko[b-9552alyktt] {
    background: var(--ko-bg, rgba(239,68,68,0.10));
    color: var(--ko-fg, #B91C1C);
}

.vrp-sp-mf-content[b-9552alyktt] {
    min-width: 0;
    flex: 1;
}

.vrp-sp-mf-label[b-9552alyktt] {
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    color: var(--vrp-text-soft, #94A3B8);
}

.vrp-sp-mf-value[b-9552alyktt] {
    font-size: 12.5px;
    margin-top: 2px;
    word-break: break-word;
    color: var(--vrp-text, #1E293B);
}

html.dark .vrp-sp-mf-value[b-9552alyktt] { color: #E2E8F0; }

.vrp-sp-mf-path[b-9552alyktt] {
    font-size: 10px;
    color: var(--vrp-text-soft, #94A3B8);
    margin-top: 3px;
    word-break: break-all;
}

.vrp-sp-mf-check[b-9552alyktt] {
    flex-shrink: 0;
    margin-top: 8px;
    font-size: 16px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   MODO LISTA v2 — tabla compacta de 4 columnas (Regla | Valor | Comparación | →)
   Densa: una fila por regla, pensada para revisar muchas reglas sin scroll.
   ═══════════════════════════════════════════════════════════════════════════ */

.vrp-listmode-table[b-9552alyktt] {
    overflow: hidden;
}

.vrp-listmode-header[b-9552alyktt],
.vrp-list-row[b-9552alyktt] {
    display: grid;
    grid-template-columns: minmax(260px, 1.4fr) minmax(140px, 1fr) minmax(140px, 1.2fr) 24px;
    gap: 12px;
    align-items: center;
}

.vrp-listmode-header[b-9552alyktt] {
    padding: 8px 14px;
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    color: var(--vrp-text-soft, #94A3B8);
    background: rgba(241, 245, 249, 0.6);
    border-bottom: 1px solid #F1F5F9;
}

html.dark .vrp-listmode-header[b-9552alyktt] {
    background: rgba(15, 23, 42, 0.4);
    border-bottom-color: rgba(148, 163, 184, 0.1);
}

.vrp-list-row[b-9552alyktt] {
    padding: 10px 14px;
    border-bottom: 1px solid #F1F5F9;
    cursor: pointer;
    transition: background 120ms ease;
}

html.dark .vrp-list-row[b-9552alyktt] { border-bottom-color: rgba(148, 163, 184, 0.1); }

.vrp-list-row:hover[b-9552alyktt] { background: rgba(241, 245, 249, 0.5); }
html.dark .vrp-list-row:hover[b-9552alyktt] { background: rgba(15, 23, 42, 0.4); }

.vrp-list-col-rule[b-9552alyktt] { min-width: 0; }

.vrp-list-rule-head[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.vrp-list-rule-head iconify-icon[b-9552alyktt] { font-size: 16px; flex-shrink: 0; }

.vrp-list-rule-label[b-9552alyktt] {
    font-size: 13px;
    font-weight: 600;
    color: var(--vrp-text, #1E293B);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

html.dark .vrp-list-rule-label[b-9552alyktt] { color: #E2E8F0; }

.vrp-list-rule-name[b-9552alyktt] {
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    font-size: 10.5px;
    color: var(--vrp-text-soft, #94A3B8);
    margin-top: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vrp-list-rule-error[b-9552alyktt] {
    display: flex;
    align-items: flex-start;
    gap: 4px;
    margin-top: 5px;
    font-size: 11px;
    color: var(--ko-fg, #B91C1C);
}

.vrp-list-rule-error iconify-icon[b-9552alyktt] { flex-shrink: 0; margin-top: 2px; }

.vrp-list-col-value[b-9552alyktt],
.vrp-list-col-compare[b-9552alyktt] { min-width: 0; }

.vrp-list-value-line[b-9552alyktt],
.vrp-list-compare-line[b-9552alyktt] {
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    font-size: 12px;
    color: var(--vrp-text, #1E293B);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

html.dark .vrp-list-value-line[b-9552alyktt],
html.dark .vrp-list-compare-line[b-9552alyktt] { color: #E2E8F0; }

.vrp-list-value-src[b-9552alyktt] {
    font-size: 10px;
    color: var(--vrp-text-soft, #94A3B8);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vrp-list-compare-pills[b-9552alyktt] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    min-width: 0;
}

.vrp-list-pill[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    line-height: 1.2;
    max-width: 100%;
    min-width: 0;
}

.vrp-list-pill-src[b-9552alyktt] {
    font-size: 10px;
    color: var(--vrp-text-soft, #94A3B8);
    flex-shrink: 0;
}

.vrp-list-pill-val[b-9552alyktt] {
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
}

.vrp-list-pill-ok .vrp-list-pill-val[b-9552alyktt] { color: var(--ok-fg, #047857); }
.vrp-list-pill-ko .vrp-list-pill-val[b-9552alyktt] { color: var(--ko-fg, #B91C1C); }
.vrp-list-pill-info .vrp-list-pill-val[b-9552alyktt] { color: var(--vrp-text-soft, #64748B); }

.vrp-list-col-chevron[b-9552alyktt] {
    color: #CBD5E1;
    text-align: right;
}
.vrp-list-col-chevron iconify-icon[b-9552alyktt] { font-size: 16px; }

.vrp-cell-similarity[b-9552alyktt] {
    margin-left: auto;
    font-size: 10px;
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    opacity: 0.7;
    flex-shrink: 0;
}

/* ---------- Empty state ---------- */
.vrp-empty[b-9552alyktt] {
    padding: 40px 16px;
    text-align: center;
    background: var(--vrp-bg-card);
    border: 1px solid var(--vrp-ring);
    border-radius: 14px;
}

.vrp-empty iconify-icon[b-9552alyktt] {
    font-size: 40px;
    color: #CBD5E1;
}

.vrp-empty p[b-9552alyktt] {
    margin-top: 8px;
    font-size: 13px;
    color: var(--vrp-text-muted);
}

/* ---------- Score card (aside) ---------- */
/* NOTA: position:sticky intencionalmente NO aplicado — el layout del proyecto
   (MainLayout + Expediente + ViewResume) tiene varios overflow:hidden heredados
   del tema Dashcode que anulan sticky. El score card fluye con el scroll.
   Si se necesita comportamiento "siempre visible", migrar a JS con
   position:fixed dinámico en otro sprint. */
.vrp-score-card[b-9552alyktt] {
    padding: 24px 22px;
    background: var(--vrp-bg-card);
    border: 1px solid var(--vrp-ring);
    border-radius: 16px;
}

.vrp-score-top[b-9552alyktt] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.vrp-score-left[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.vrp-score-eyebrow[b-9552alyktt] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--vrp-text-soft);
    font-weight: 700;
}

.vrp-score-num-row[b-9552alyktt] {
    display: flex;
    align-items: baseline;
    gap: 4px;
    margin-top: 6px;
}

.vrp-score-num[b-9552alyktt] {
    font-size: 64px;
    line-height: 0.95;
    font-weight: 800;
    letter-spacing: -0.035em;
    font-variant-numeric: tabular-nums;
    color: var(--vrp-text);
}

.vrp-score-total[b-9552alyktt] {
    color: var(--vrp-text-soft);
    font-size: 18px;
    font-weight: 500;
    opacity: 0.5;
}

.vrp-score-badge[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    padding: 3px 10px;
    border-radius: 9999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    align-self: flex-start;
    text-transform: uppercase;
}

.vrp-score-badge-dot[b-9552alyktt] {
    width: 6px;
    height: 6px;
    border-radius: 9999px;
    display: inline-block;
}

.vrp-donut[b-9552alyktt] {
    height: 88px;
    width: 88px;
    flex-shrink: 0;
}

.vrp-ring-bg[b-9552alyktt] {
    stroke: #E2E8F0;
}

html.dark .vrp-ring-bg[b-9552alyktt] {
    stroke: #1E293B;
}

/* ---------- Counters ---------- */
.vrp-counters[b-9552alyktt] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 16px;
}

.vrp-counter[b-9552alyktt] {
    padding: 10px;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.vrp-counter-label[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 500;
    line-height: 1;
}

.vrp-counter-value[b-9552alyktt] {
    font-size: 20px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
}

.vrp-counter-ok[b-9552alyktt] {
    background: var(--ok-bg);
    color: var(--ok-fg);
}

.vrp-counter-ok .vrp-counter-value[b-9552alyktt] {
    color: var(--ok-fg);
}

.vrp-counter-ko[b-9552alyktt] {
    background: var(--ko-bg);
    color: var(--ko-fg);
}

.vrp-counter-ko .vrp-counter-value[b-9552alyktt] {
    color: var(--ko-fg);
}

.vrp-counter-na[b-9552alyktt] {
    background: var(--na-bg);
    border: 1px dashed var(--vrp-ring);
    color: var(--vrp-text-muted);
}

.vrp-counter-na .vrp-counter-value[b-9552alyktt] {
    color: var(--vrp-text-muted);
}

/* ---------- Restrictive banner ---------- */
.vrp-restrictive-banner[b-9552alyktt] {
    margin-top: 12px;
    padding: 10px;
    border-radius: 10px;
    display: flex;
    gap: 8px;
    background: var(--ko-bg);
    color: var(--ko-fg);
    border: 1px solid color-mix(in srgb, var(--ko-ac) 25%, transparent);
    font-size: 12px;
    line-height: 1.45;
}

.vrp-restrictive-banner iconify-icon[b-9552alyktt] {
    margin-top: 2px;
    flex-shrink: 0;
    font-size: 14px;
}

.vrp-restrictive-banner strong[b-9552alyktt] {
    display: block;
    font-weight: 600;
}

.vrp-restrictive-banner span[b-9552alyktt] {
    opacity: 0.9;
    margin-top: 2px;
    display: block;
}

/* ---------- Groups breakdown ---------- */
.vrp-breakdown[b-9552alyktt] {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid var(--vrp-ring);
}

.vrp-breakdown-head[b-9552alyktt] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.vrp-breakdown-title[b-9552alyktt] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--vrp-text-soft);
    font-weight: 600;
}

.vrp-reeval-btn[b-9552alyktt] {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 12px !important;
    font-weight: 500;
    color: var(--vrp-indigo);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: inherit;
    line-height: 1;
}

.vrp-reeval-btn:hover[b-9552alyktt] {
    color: #4338CA;
}

.vrp-reeval-btn:disabled[b-9552alyktt] {
    opacity: 0.5;
    cursor: not-allowed;
}

.vrp-reeval-btn iconify-icon[b-9552alyktt] {
    font-size: 13px;
}

.vrp-breakdown-list[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.vrp-breakdown-row-head[b-9552alyktt] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 12px;
    line-height: 1.3;
}

.vrp-breakdown-name[b-9552alyktt] {
    color: var(--vrp-text-strong);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.vrp-breakdown-value[b-9552alyktt] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    flex-shrink: 0;
    margin-left: 8px;
}

.vrp-progress[b-9552alyktt] {
    margin-top: 4px;
    height: 6px;
    background: #F1F5F9;
    border-radius: 9999px;
    overflow: hidden;
}

html.dark .vrp-progress[b-9552alyktt] {
    background: #1E293B;
}

.vrp-progress-fill[b-9552alyktt] {
    height: 100%;
    border-radius: 9999px;
    transition: width .3s ease;
}

/* ---------- Focus / a11y ---------- */
.vrp-root[b-9552alyktt]  *:focus {
    outline: none;
}

.vrp-root[b-9552alyktt]  *:focus-visible {
    outline: 2px solid var(--vrp-indigo);
    outline-offset: 2px;
    border-radius: 4px;
}

.vrp-root[b-9552alyktt]  button {
    font-family: inherit;
}

/* ================================================================
   SIDE PANEL — detalle de regla al click en celda
   Width fijo 520px (max 100vw), anclado a la derecha, backdrop oscuro.
   ================================================================ */
.vrp-root[b-9552alyktt]  .vrp-cell-clickable {
    cursor: pointer;
}

.vrp-sp-root[b-9552alyktt] {
    position: fixed;
    inset: 0;
    z-index: 80;
}

.vrp-sp-backdrop[b-9552alyktt] {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 23, .35);
    animation: vrp-sp-fade-in-b-9552alyktt .18s ease;
}

.vrp-sp-panel[b-9552alyktt] {
    position: absolute;
    top: 0;
    right: 0;
    height: 100vh;
    width: min(520px, 100vw);
    background: #FFFFFF;
    border-left: 1px solid var(--vrp-ring);
    display: flex;
    flex-direction: column;
    box-shadow: -16px 0 40px rgba(2, 6, 23, .18);
    animation: vrp-sp-slide-in-b-9552alyktt .22s ease;
}

html.dark .vrp-sp-panel[b-9552alyktt] {
    background: #0B1220;
    border-left-color: #1E293B;
}

@keyframes vrp-sp-fade-in-b-9552alyktt {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes vrp-sp-slide-in-b-9552alyktt {
    from { transform: translateX(100%); }
    to   { transform: translateX(0); }
}

.vrp-sp-header[b-9552alyktt] {
    padding: 18px 20px;
    border-bottom: 1px solid var(--vrp-ring);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    flex-shrink: 0;
}

.vrp-sp-header-main[b-9552alyktt] {
    min-width: 0;
    flex: 1;
}

.vrp-sp-eyebrow[b-9552alyktt] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--vrp-text-muted);
    font-weight: 600;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vrp-sp-title[b-9552alyktt] {
    font-size: 16px;
    font-weight: 600;
    color: var(--vrp-text);
    margin: 2px 0 0 0;
    line-height: 1.3;
}

.vrp-sp-close[b-9552alyktt] {
    width: 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    border: none;
    background: transparent;
    color: var(--vrp-text-muted);
    cursor: pointer;
    flex-shrink: 0;
    transition: background .15s, color .15s;
}

.vrp-sp-close:hover[b-9552alyktt] {
    background: var(--vrp-bg-card);
    color: var(--vrp-text);
}

.vrp-sp-body[b-9552alyktt] {
    padding: 18px 20px 24px 20px;
    overflow-y: auto;
    flex: 1;
}

/* Top chips: severidad + tipo + operador humano */
.vrp-sp-chips[b-9552alyktt] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
}

.vrp-sp-type[b-9552alyktt],
.vrp-sp-op[b-9552alyktt] {
    font-size: 11px;
    color: var(--vrp-text-muted);
}

.vrp-sp-op[b-9552alyktt] {
    margin-left: auto;
}

/* Status banner (ok/ko/skip) */
.vrp-sp-status[b-9552alyktt] {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 10px;
    font-size: 13px;
    margin-bottom: 14px;
    line-height: 1.45;
}

.vrp-sp-status iconify-icon[b-9552alyktt] {
    font-size: 16px;
    flex-shrink: 0;
    margin-top: 1px;
}

.vrp-sp-status-ok[b-9552alyktt] {
    background: var(--ok-bg);
    color: var(--ok-fg);
    border: 1px solid color-mix(in srgb, var(--ok-ac) 25%, transparent);
}

.vrp-sp-status-ko[b-9552alyktt] {
    background: var(--ko-bg);
    color: var(--ko-fg);
    border: 1px solid color-mix(in srgb, var(--ko-ac) 25%, transparent);
}

.vrp-sp-status-skip[b-9552alyktt] {
    background: var(--na-bg);
    color: var(--na-fg);
    border: 1px dashed var(--vrp-ring);
}

/* Sections (generic) */
.vrp-sp-section + .vrp-sp-section[b-9552alyktt] {
    margin-top: 16px;
}

.vrp-sp-sub[b-9552alyktt] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--vrp-text-muted);
    font-weight: 600;
    margin: 14px 0 6px 0;
}

.vrp-sp-sub-note[b-9552alyktt] {
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
    color: var(--vrp-text-muted);
}

.vrp-sp-empty[b-9552alyktt] {
    font-size: 13px;
    color: var(--vrp-text-muted);
    padding: 12px;
    text-align: center;
    border: 1px dashed var(--vrp-ring);
    border-radius: 8px;
}

/* KV rows (field_check) */
.vrp-sp-kv[b-9552alyktt] {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid var(--vrp-ring);
    font-size: 13px;
}

.vrp-sp-kv:last-child[b-9552alyktt] {
    border-bottom: none;
}

.vrp-sp-k[b-9552alyktt] {
    color: var(--vrp-text-muted);
}

.vrp-sp-v[b-9552alyktt] {
    color: var(--vrp-text);
    min-width: 0;
    word-break: break-word;
}

/* Pivote card */
.vrp-sp-pivot[b-9552alyktt] {
    background: #EEF2FF;
    border: 1px solid #C7D2FE;
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 8px;
}

html.dark .vrp-sp-pivot[b-9552alyktt] {
    background: rgba(79, 70, 229, .15);
    border-color: rgba(79, 70, 229, .35);
}

.vrp-sp-pivot-label[b-9552alyktt] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #4338CA;
    font-weight: 600;
    margin-bottom: 4px;
}

html.dark .vrp-sp-pivot-label[b-9552alyktt] {
    color: #A5B4FC;
}

.vrp-sp-pivot-value[b-9552alyktt] {
    font-size: 14px;
    color: #312E81;
    font-weight: 500;
    word-break: break-word;
}

html.dark .vrp-sp-pivot-value[b-9552alyktt] {
    color: #E0E7FF;
}

/* Target cards (compare, multi_compare, catalog rows) */
.vrp-sp-targets[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.vrp-sp-target[b-9552alyktt] {
    border: 1px solid var(--vrp-ring);
    border-radius: 10px;
    padding: 10px 12px;
    background: #FFFFFF;
    transition: border-color .15s;
}

html.dark .vrp-sp-target[b-9552alyktt] {
    background: rgba(30, 41, 59, 0.3);
    border-color: #334155;
}

.vrp-sp-target.is-ok[b-9552alyktt] {
    border-color: color-mix(in srgb, var(--ok-ac) 30%, transparent);
    background: color-mix(in srgb, var(--ok-ac) 5%, #FFFFFF);
}

html.dark .vrp-sp-target.is-ok[b-9552alyktt] {
    background: color-mix(in srgb, var(--ok-ac) 8%, #0B1220);
}

.vrp-sp-target.is-ko[b-9552alyktt] {
    border-color: color-mix(in srgb, var(--ko-ac) 30%, transparent);
    background: color-mix(in srgb, var(--ko-ac) 5%, #FFFFFF);
}

html.dark .vrp-sp-target.is-ko[b-9552alyktt] {
    background: color-mix(in srgb, var(--ko-ac) 8%, #0B1220);
}

.vrp-sp-target-head[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.vrp-sp-target-sim[b-9552alyktt] {
    margin-left: auto;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    color: var(--vrp-text-muted);
    font-weight: 500;
}

.vrp-sp-target-value[b-9552alyktt] {
    font-size: 13px;
    color: var(--vrp-text);
    word-break: break-word;
}

.vrp-sp-target-op[b-9552alyktt] {
    margin-top: 4px;
    font-size: 11px;
    color: var(--vrp-text-muted);
}

/* Source pill reutilizable — métricas homologadas con .vrp-sev / .vrp-pair-badge. */
.vrp-src-pill[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.04em;
    background: #F1F5F9;
    color: #334155;
    border: 1px solid #E2E8F0;
    text-transform: uppercase;
    font-family: inherit;
    line-height: 1.4;
}

html.dark .vrp-src-pill[b-9552alyktt] {
    background: #0B1220;
    color: #94A3B8;
    border-color: #1E293B;
}

/* Label de columna del catálogo — mismo tono que .vrp-src-pill pero sin
   uppercase, porque es nombre de un campo/columna, no una fuente. */
.vrp-sp-col-label[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 500;
    background: #F1F5F9;
    color: #334155;
    border: 1px solid #E2E8F0;
}

html.dark .vrp-sp-col-label[b-9552alyktt] {
    background: #0B1220;
    color: #CBD5E1;
    border-color: #1E293B;
}

/* Catalog filter chip */
.vrp-sp-filter[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 8px;
    background: rgba(99, 102, 241, .08);
    border: 1px solid rgba(99, 102, 241, .2);
    color: #4338CA;
    font-size: 12px;
    margin: 10px 0 0 0;
}

html.dark .vrp-sp-filter[b-9552alyktt] {
    background: rgba(99, 102, 241, .15);
    border-color: rgba(99, 102, 241, .35);
    color: #A5B4FC;
}

.vrp-sp-filter iconify-icon[b-9552alyktt] {
    font-size: 14px;
}

.vrp-sp-filter-expr[b-9552alyktt] {
    font-weight: 600;
}

/* List of Source2 items considered */
.vrp-sp-items[b-9552alyktt] {
    list-style: none;
    padding: 0;
    margin: 0;
    border: 1px solid var(--vrp-ring);
    border-radius: 10px;
    overflow: hidden;
}

.vrp-sp-items li[b-9552alyktt] {
    padding: 8px 12px;
    border-bottom: 1px solid var(--vrp-ring);
    font-size: 13px;
    color: var(--vrp-text);
    word-break: break-word;
}

.vrp-sp-items li:last-child[b-9552alyktt] {
    border-bottom: none;
}

/* Metadatos footer */
.vrp-sp-meta[b-9552alyktt] {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--vrp-ring);
}

.vrp-sp-meta-title[b-9552alyktt] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--vrp-text-muted);
    font-weight: 600;
    margin-bottom: 8px;
}

.vrp-sp-meta-grid[b-9552alyktt] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 12px;
}

.vrp-sp-meta-grid > div[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 11px;
    min-width: 0;
}

.vrp-sp-meta-key[b-9552alyktt] {
    color: var(--vrp-text-muted);
}

.vrp-sp-meta-val[b-9552alyktt] {
    color: var(--vrp-text);
    word-break: break-word;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

/* Valor principal legible (humano): tamaño normal, énfasis. */
.vrp-sp-meta-primary[b-9552alyktt] {
    font-size: 12px;
    color: var(--vrp-text);
}

/* Código técnico: pequeño, gris, monoespaciado — referencia discreta. */
.vrp-sp-meta-code[b-9552alyktt] {
    font-size: 10px;
    color: var(--vrp-text-muted);
}

/* ---------- Side panel: editor inline + historial + footer ---------- */

/* Pill "Editada" en la columna de regla de la matriz */
.vrp-rule-edited-pill[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
    background: rgba(99, 102, 241, .10);
    color: #4338CA;
    border: 1px solid rgba(99, 102, 241, .25);
    line-height: 1.2;
    white-space: nowrap;
}

.vrp-rule-edited-pill iconify-icon[b-9552alyktt] {
    font-size: 11px;
}

html.dark .vrp-rule-edited-pill[b-9552alyktt] {
    background: rgba(129, 140, 248, .18);
    color: #C7D2FE;
    border-color: rgba(129, 140, 248, .35);
}

/* Editor: bloque completo dentro del body del panel */
.vrp-sp-edit[b-9552alyktt] {
    margin-top: 16px;
    padding: 14px;
    border-radius: 12px;
    border: 1px solid var(--vrp-indigo-200);
    background: var(--vrp-indigo-50);
}

html.dark .vrp-sp-edit[b-9552alyktt] {
    background: rgba(99, 102, 241, .08);
    border-color: rgba(99, 102, 241, .30);
}

.vrp-sp-edit-head[b-9552alyktt] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 600;
    color: var(--vrp-indigo);
    text-transform: uppercase;
    letter-spacing: .06em;
}

html.dark .vrp-sp-edit-head[b-9552alyktt] {
    color: #A5B4FC;
}

.vrp-sp-edit-head iconify-icon[b-9552alyktt] {
    font-size: 14px;
}

.vrp-sp-edit-hint[b-9552alyktt] {
    margin: 6px 0 12px 0;
    font-size: 12px;
    color: var(--vrp-text-muted);
    line-height: 1.4;
}

.vrp-sp-edit-group[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.vrp-sp-edit-row[b-9552alyktt] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.vrp-sp-edit-label[b-9552alyktt] {
    font-size: 11px;
    font-weight: 600;
    color: var(--vrp-text-strong);
}

.vrp-sp-edit-input[b-9552alyktt] {
    width: 100%;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid var(--vrp-ring);
    background: #FFFFFF;
    color: var(--vrp-text);
    font-size: 13px;
    font-family: inherit;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
}

.vrp-sp-edit-input:focus[b-9552alyktt] {
    border-color: var(--vrp-indigo);
    box-shadow: 0 0 0 3px rgba(99, 102, 241, .15);
}

.vrp-sp-edit-input:disabled[b-9552alyktt] {
    opacity: 0.6;
    cursor: not-allowed;
}

html.dark .vrp-sp-edit-input[b-9552alyktt] {
    background: #0B1220;
    border-color: #334155;
    color: #F1F5F9;
}

html.dark .vrp-sp-edit-input:focus[b-9552alyktt] {
    border-color: #818CF8;
    box-shadow: 0 0 0 3px rgba(129, 140, 248, .20);
}

.vrp-sp-edit-path[b-9552alyktt] {
    font-size: 10px;
    color: var(--vrp-text-soft);
    margin-top: 2px;
    word-break: break-all;
}

.vrp-sp-edit-error[b-9552alyktt] {
    margin-top: 10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: var(--ko-bg);
    color: var(--ko-fg);
    border: 1px solid color-mix(in srgb, var(--ko-ac) 25%, transparent);
    font-size: 12px;
    display: flex;
    align-items: flex-start;
    gap: 6px;
}

.vrp-sp-edit-error iconify-icon[b-9552alyktt] {
    font-size: 14px;
    flex-shrink: 0;
    margin-top: 1px;
}

/* Historial compacto en modo lectura */
.vrp-sp-history[b-9552alyktt] {
    margin-top: 16px;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--na-bg);
    border: 1px dashed var(--vrp-ring);
    font-size: 12px;
    color: var(--vrp-text-muted);
    display: flex;
    align-items: center;
    gap: 8px;
    line-height: 1.4;
}

.vrp-sp-history iconify-icon[b-9552alyktt] {
    font-size: 14px;
    flex-shrink: 0;
}

.vrp-sp-history strong[b-9552alyktt] {
    color: var(--vrp-text);
    font-weight: 600;
}

.vrp-sp-history-src[b-9552alyktt] {
    color: var(--vrp-text-soft);
}

/* Footer fijo del panel con botones de acción */
.vrp-sp-footer[b-9552alyktt] {
    padding: 14px 20px;
    border-top: 1px solid var(--vrp-ring);
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    background: var(--vrp-bg-card);
}

html.dark .vrp-sp-footer[b-9552alyktt] {
    background: #0B1220;
    border-top-color: #1E293B;
}

.vrp-sp-btn[b-9552alyktt] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    border: 1px solid transparent;
    transition: background .15s, border-color .15s, color .15s, opacity .15s;
    white-space: nowrap;
}

.vrp-sp-btn:disabled[b-9552alyktt] {
    opacity: 0.55;
    cursor: not-allowed;
}

.vrp-sp-btn iconify-icon[b-9552alyktt] {
    font-size: 15px;
}

.vrp-sp-btn-primary[b-9552alyktt] {
    background: var(--vrp-indigo);
    color: #FFFFFF;
    border-color: var(--vrp-indigo);
}

.vrp-sp-btn-primary:hover:not(:disabled)[b-9552alyktt] {
    background: #4338CA;
    border-color: #4338CA;
}

.vrp-sp-btn-ghost[b-9552alyktt] {
    background: transparent;
    color: var(--vrp-text-muted);
    border-color: var(--vrp-ring);
}

.vrp-sp-btn-ghost:hover:not(:disabled)[b-9552alyktt] {
    background: var(--na-bg);
    color: var(--vrp-text);
}

html.dark .vrp-sp-btn-ghost[b-9552alyktt] {
    color: #CBD5E1;
    border-color: #334155;
}

html.dark .vrp-sp-btn-ghost:hover:not(:disabled)[b-9552alyktt] {
    background: rgba(148, 163, 184, .08);
    color: #F1F5F9;
}

/* ===== Revisión de correcciones del cliente final (GuestEditReviewHelper) ===== */
.vrp-review-banner[b-9552alyktt] {
    margin-top: 12px;
    padding: 10px;
    border-radius: 10px;
    display: flex;
    gap: 8px;
    background: #FFFBEB;
    color: #92400E;
    border: 1px solid rgba(217, 119, 6, .35);
    font-size: 12px;
    line-height: 1.45;
}
.vrp-review-banner iconify-icon[b-9552alyktt] { font-size: 18px; flex-shrink: 0; color: #D97706; }
.vrp-review-banner strong[b-9552alyktt] { display: block; }

.vrp-rule-review-pill[b-9552alyktt] {
    background: #FEF3C7 !important;
    color: #92400E !important;
    border-color: #FCD34D !important;
}

.vrp-sp-review[b-9552alyktt] {
    margin-top: 12px;
    padding: 12px;
    border-radius: 10px;
    background: #FFFBEB;
    border: 1px solid rgba(217, 119, 6, .35);
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 12px;
}
.vrp-sp-review-head[b-9552alyktt] { display: flex; gap: 8px; color: #92400E; line-height: 1.45; }
.vrp-sp-review-head iconify-icon[b-9552alyktt] { font-size: 18px; flex-shrink: 0; color: #D97706; }
.vrp-sp-review-head strong[b-9552alyktt] { display: block; }
.vrp-sp-review-table[b-9552alyktt] { width: 100%; border-collapse: collapse; font-size: 12px; background: #fff; border-radius: 8px; overflow: hidden; }
.vrp-sp-review-table th[b-9552alyktt] { text-align: left; font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: #78716C; padding: 6px 8px; border-bottom: 1px solid #FDE68A; }
.vrp-sp-review-table td[b-9552alyktt] { padding: 6px 8px; border-bottom: 1px solid #FEF3C7; vertical-align: top; word-break: break-word; }
.vrp-sp-review-table tr:last-child td[b-9552alyktt] { border-bottom: none; }
.vrp-mono[b-9552alyktt] { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.vrp-sp-review-new[b-9552alyktt] { color: #92400E; font-weight: 600; }
.vrp-sp-review-actions[b-9552alyktt] { display: flex; justify-content: flex-end; gap: 8px; }
.vrp-sp-btn-reject[b-9552alyktt] { color: #B91C1C; }
.vrp-sp-review-note[b-9552alyktt] { margin: 0; color: #78716C; font-size: 11px; line-height: 1.45; }

/* ===== Avisos a lo ancho bajo el título (fuera del card del score) ===== */
.vrp-notice[b-9552alyktt] {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 10px 14px;
    border-radius: 10px;
    margin-bottom: 10px;
    font-size: 12px;
    line-height: 1.45;
}
.vrp-notice iconify-icon[b-9552alyktt] { font-size: 18px; flex-shrink: 0; margin-top: 1px; }
.vrp-notice strong[b-9552alyktt] { display: block; }
.vrp-notice-review[b-9552alyktt] { background: #FFFBEB; color: #92400E; border: 1px solid rgba(217, 119, 6, .35); }
.vrp-notice-review iconify-icon[b-9552alyktt] { color: #D97706; }
.vrp-notice-restrictive[b-9552alyktt] { background: var(--ko-bg); color: var(--ko-fg); border: 1px solid color-mix(in srgb, var(--ko-ac) 25%, transparent); }
.vrp-notice-restrictive iconify-icon[b-9552alyktt] { color: var(--ko-ac); }

/* Corrección aprobada + historial */
.vrp-rule-approved-pill[b-9552alyktt] { background: var(--ok-bg) !important; color: var(--ok-fg) !important; border-color: color-mix(in srgb, var(--ok-ac) 40%, transparent) !important; }
.vrp-sp-review-approved[b-9552alyktt] { background: var(--ok-bg); border-color: color-mix(in srgb, var(--ok-ac) 35%, transparent); }
.vrp-sp-review-approved .vrp-sp-review-head[b-9552alyktt] { color: var(--ok-fg); }
.vrp-sp-review-approved .vrp-sp-review-head iconify-icon[b-9552alyktt] { color: var(--ok-ac); }
.vrp-sp-history-details[b-9552alyktt] { margin-top: 4px; }
.vrp-sp-history-details summary[b-9552alyktt] { cursor: pointer; font-size: 11px; font-weight: 600; color: #64748B; }
.vrp-sp-history-table[b-9552alyktt] { margin-top: 6px; font-size: 11px; }
.vrp-sp-history-table th[b-9552alyktt] { color: #64748B; border-bottom-color: #E2E8F0; }
.vrp-sp-history-table td[b-9552alyktt] { border-bottom-color: #F1F5F9; }
.vrp-sp-history-inactive td[b-9552alyktt] { color: #94A3B8; text-decoration: line-through; }
.vrp-sp-history-inactive td:nth-child(3)[b-9552alyktt] { text-decoration: none; }
/* /Shared/ValueDisplay.razor.rz.scp.css */
/* Componente ValueDisplay — pinta escalares, listas y objetos de forma legible. */

.vd-empty[b-9ds397uuqp] {
    color: #94A3B8;
}

.vd-scalar[b-9ds397uuqp] {
    /* Hereda la clase pasada por el consumidor (font-mono, gvc-mono, etc.).
       Sólo asegura el wrap básico para no romper layouts. */
    word-break: break-word;
}

.vd-list[b-9ds397uuqp] {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 3px 4px;
    align-items: center;
    max-width: 100%;
}

.vd-pill[b-9ds397uuqp] {
    display: inline-flex;
    align-items: center;
    padding: 2px 7px;
    border-radius: 999px;
    background: rgba(99, 102, 241, 0.10);
    color: #4338CA;
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    font-size: 10.5px;
    line-height: 1.35;
    white-space: nowrap;
    max-width: 180px;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Modo expandido: las pills muestran TODA la información sin truncar. Pensado
   para el side panel y el modal del cliente, donde el usuario debe ver el
   contenido completo. */
.vd-list.vd-expanded[b-9ds397uuqp] {
    display: flex;
    gap: 4px 6px;
    width: 100%;
}

.vd-list.vd-expanded .vd-pill[b-9ds397uuqp] {
    max-width: none;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    word-break: break-word;
    padding: 4px 10px;
    font-size: 11px;
    line-height: 1.45;
}

/* Mini-card por item cuando el array contiene objects (en lugar de strings).
   Cada item del array (ej. una actividad económica con orden + actividad +
   porcentaje + fecha_inicio + fecha_fin) se pinta como bloque legible. */
.vd-card[b-9ds397uuqp] {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px 10px;
    border-radius: 8px;
    background: rgba(99, 102, 241, 0.07);
    border: 1px solid rgba(99, 102, 241, 0.18);
    min-width: 0;
    max-width: 100%;
    flex: 0 1 auto;
}

html.dark .vd-card[b-9ds397uuqp] {
    background: rgba(99, 102, 241, 0.14);
    border-color: rgba(99, 102, 241, 0.30);
}

.vd-card-row[b-9ds397uuqp] {
    display: grid;
    grid-template-columns: minmax(80px, 0.4fr) minmax(0, 1fr);
    gap: 4px 10px;
    align-items: baseline;
    min-width: 0;
}

.vd-card-k[b-9ds397uuqp] {
    font-size: 9.5px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 700;
    color: #64748B;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

html.dark .vd-card-k[b-9ds397uuqp] { color: #94A3B8; }

.vd-card-v[b-9ds397uuqp] {
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    font-size: 11px;
    color: inherit;
    word-break: break-word;
    min-width: 0;
    line-height: 1.4;
}

/* Modo NO expandido (celdas dashboard): cards más compactas, una por línea,
   con max-width para que no exploten la celda. */
.vd-list:not(.vd-expanded) .vd-card[b-9ds397uuqp] {
    max-width: 260px;
    padding: 5px 7px;
    gap: 2px;
}

.vd-list:not(.vd-expanded) .vd-card-v[b-9ds397uuqp] {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Modo expandido (side panel / modal cliente): cards a ancho completo, con
   filas amplias para ver TODA la información. */
.vd-list.vd-expanded .vd-card[b-9ds397uuqp] {
    width: 100%;
    flex: 1 1 100%;
}

.vd-object.vd-expanded .vd-k[b-9ds397uuqp] {
    max-width: none;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
}

.vd-object.vd-expanded .vd-v[b-9ds397uuqp] {
    word-break: break-word;
}

[b-9ds397uuqp] html.dark .vd-pill,
html.dark .vd-pill[b-9ds397uuqp] {
    background: rgba(99, 102, 241, 0.18);
    color: #C7D2FE;
}

.vd-object[b-9ds397uuqp] {
    display: inline-flex;
    flex-direction: column;
    gap: 3px;
    max-width: 100%;
}

.vd-kv[b-9ds397uuqp] {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    min-width: 0;
}

.vd-k[b-9ds397uuqp] {
    font-size: 9.5px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 700;
    color: #64748B;
    flex-shrink: 0;
    max-width: 90px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.vd-v[b-9ds397uuqp] {
    font-family: 'JetBrains Mono', 'SFMono-Regular', ui-monospace, Menlo, Consolas, monospace;
    font-size: 11px;
    color: inherit;
    word-break: break-word;
    min-width: 0;
}
/* /Shared/VerifCampanita.razor.rz.scp.css */
.vc-badge[b-v4vz8ojsjf] { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px;
            background: #ef4444; color: #fff; font-size: 11px; line-height: 18px; font-weight: 600; text-align: center; }
.vc-panel[b-v4vz8ojsjf] { position: absolute; right: 0; top: 40px; width: 340px; max-width: 90vw; z-index: 1000; }
.vc-lista[b-v4vz8ojsjf] { max-height: 380px; overflow-y: auto; }
.vc-item[b-v4vz8ojsjf]  { padding: 10px 16px; border-bottom: 1px solid rgba(148,163,184,.25); cursor: pointer; }
.vc-item:hover[b-v4vz8ojsjf] { background: rgba(148,163,184,.12); }
.vc-item.vc-vista[b-v4vz8ojsjf] { opacity: .6; }
/* /Shared/ViewBeneficialOwner.razor.rz.scp.css */
/* Avisos del lookup (omisión / pendiente / conflicto). Mismas reglas que EditBeneficialOwner.razor.css:
   el CSS de componente es aislado, así que se repiten aquí. */
.bc-banner[b-w2jkxim3xl] {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    border-radius: .5rem;
    padding: 16px 18px;
    font-size: .875rem;
    line-height: 1.45;
}

.bc-banner iconify-icon[b-w2jkxim3xl] {
    font-size: 1.4rem;
    flex: 0 0 auto;
    margin-top: 1px;
}

.bc-banner.warn[b-w2jkxim3xl] {
    background: rgba(245, 158, 11, .12);
    border: 1px solid rgba(245, 158, 11, .30);
    color: #334155;
}

.bc-banner b[b-w2jkxim3xl] {
    color: #0f172a;
}
/* /Shared/ViewEstructuraConsejo.razor.rz.scp.css */
/* Estructura Accionaria + Consejo (formato NetPay) — vista de solo lectura del analista.
   Duplica las reglas .ec-* de EditEstructuraConsejo.razor.css: scoped css no cruza componentes. */
.ec-wrap[b-izotgkc097] { margin-top: 1.5rem; border-top: 1px solid #e2e8f0; padding-top: 1rem; }
.ec-title[b-izotgkc097] { font-size: 1rem; font-weight: 600; margin-bottom: .75rem; }
.ec-tabla[b-izotgkc097] { margin-bottom: 1.25rem; }
.ec-tabla-head[b-izotgkc097] { font-weight: 600; font-size: .8125rem; color: #334155; margin-bottom: .35rem; }
.ec-scroll[b-izotgkc097] { overflow-x: auto; }
.ec-adminpm[b-izotgkc097] { border:1px solid #e2e8f0; border-radius:.5rem; padding:.75rem; margin-top:.5rem; }
.ec-adminpm-title[b-izotgkc097] { font-weight:600; font-size:.8125rem; margin:.35rem 0; }
