/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-eyygqolc4n],
.components-reconnect-repeated-attempt-visible[b-eyygqolc4n],
.components-reconnect-failed-visible[b-eyygqolc4n],
.components-pause-visible[b-eyygqolc4n],
.components-resume-failed-visible[b-eyygqolc4n],
.components-rejoining-animation[b-eyygqolc4n] {
    display: none;
}

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


#components-reconnect-modal[b-eyygqolc4n] {
    background-color: var(--card);
    color: var(--text-primary);
    width: min(22rem, calc(100vw - 2rem));
    margin: 20vh auto;
    padding: 2rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-xl);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-eyygqolc4n 0.5s both;
    &[open]

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

}

#components-reconnect-modal[b-eyygqolc4n]::backdrop {
    background-color: var(--overlay);
    backdrop-filter: blur(2px);
    animation: components-reconnect-modal-fadeInOpacity-b-eyygqolc4n 0.5s ease-in-out;
    opacity: 1;
}

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

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

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

    100% {
        opacity: 1;
    }
}

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

    100% {
        opacity: 0;
    }
}

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

#components-reconnect-modal p[b-eyygqolc4n] {
    margin: 0;
    color: var(--text-secondary);
    font-size: var(--fs-sm);
    text-align: center;
}

#components-reconnect-modal button[b-eyygqolc4n] {
    border: 0;
    background-color: var(--primary);
    color: var(--on-primary);
    font-weight: 600;
    padding: 0.5rem 1.5rem;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: background-color var(--dur-fast) var(--ease-out);
}

    #components-reconnect-modal button:focus-visible[b-eyygqolc4n] {
        outline: 2px solid var(--primary);
        outline-offset: 2px;
    }

    #components-reconnect-modal button:hover[b-eyygqolc4n] {
        background-color: var(--primary-hover);
    }

    #components-reconnect-modal button:active[b-eyygqolc4n] {
        background-color: var(--primary-active);
    }

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

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

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

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

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

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

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    #components-reconnect-modal[b-eyygqolc4n],
    #components-reconnect-modal[open][b-eyygqolc4n],
    #components-reconnect-modal[b-eyygqolc4n]::backdrop,
    .components-rejoining-animation div[b-eyygqolc4n] { animation-duration: 0.01ms; animation-iteration-count: 1; }
}
/* /Components/Pages/Administracion/Administracion.razor.rz.scp.css */
.adm-stack[b-sx2avfjw7r] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
    max-width: 720px;
}

.adm-card[b-sx2avfjw7r] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.adm-card-head[b-sx2avfjw7r] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.adm-icono[b-sx2avfjw7r] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    background: var(--primary-soft);
    color: var(--primary-text);
    flex-shrink: 0;
}

.adm-texto[b-sx2avfjw7r] {
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--text-secondary);
    line-height: 1.6;
}

.adm-progreso[b-sx2avfjw7r] { margin-top: var(--space-1); }

.adm-lista[b-sx2avfjw7r] {
    margin: 0;
    padding-left: 1.25rem;
    font-size: var(--fs-sm);
    color: var(--text-secondary);
    line-height: 1.7;
}

/* Zona peligrosa: borde y cabecera en tono danger, bien separada del resto */
.adm-peligro[b-sx2avfjw7r] {
    border: 1px solid var(--danger);
    border-radius: var(--radius-lg);
    background: var(--card);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
}

.adm-peligro-head[b-sx2avfjw7r] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-5);
    background: var(--danger-soft);
    color: var(--danger-text);
    font-weight: 650;
    font-size: var(--fs-sm);
    border-bottom: 1px solid var(--danger);
}

.adm-peligro-body[b-sx2avfjw7r] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-4);
    padding: var(--space-5);
}

.adm-peligro-body[b-sx2avfjw7r]  .alert { width: 100%; margin: 0; }

.adm-confirmar[b-sx2avfjw7r] { width: 100%; }
.adm-input[b-sx2avfjw7r] { max-width: 300px; }

.adm-paso-final[b-sx2avfjw7r] {
    width: 100%;
    padding: var(--space-4);
    border: 1px dashed var(--danger);
    border-radius: var(--radius-md);
    background: var(--danger-soft);
    animation: adm-entra-b-sx2avfjw7r var(--dur-base) var(--ease-out);
}

.adm-paso-final-titulo[b-sx2avfjw7r] {
    margin: 0 0 var(--space-3);
    font-weight: 650;
    color: var(--danger-text);
}

@keyframes adm-entra-b-sx2avfjw7r {
    from { opacity: 0; transform: translateY(4px); }
    to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .adm-paso-final[b-sx2avfjw7r] { animation: none; }
}
/* /Components/Pages/Compras/CompraEditar.razor.rz.scp.css */
/* Alta/edicion de compra: la tarjeta, secciones y acciones vienen de ds-form-*; aca solo la
   vista previa del comprobante. */

.cmp-opcional[b-zr7nu47tw5] {
    font-weight: 400;
    color: var(--text-muted);
    font-size: var(--fs-sm);
}

.cmp-subiendo[b-zr7nu47tw5] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

.cmp-preview[b-zr7nu47tw5] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-3);
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface-2);
}

.cmp-preview img[b-zr7nu47tw5] {
    display: block;
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--surface-3);
}

.cmp-preview-info[b-zr7nu47tw5] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    flex: 1 1 auto;
    min-width: 0;
}

.cmp-preview-titulo[b-zr7nu47tw5] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 600;
    color: var(--success-text);
}

.cmp-preview-texto[b-zr7nu47tw5] {
    font-size: var(--fs-caption);
    color: var(--text-muted);
}
/* /Components/Pages/Compras/CompraNuevo.razor.rz.scp.css */
/* Alta/edicion de compra: la tarjeta, secciones y acciones vienen de ds-form-*; aca solo la
   vista previa del comprobante. */

.cmp-opcional[b-o7mte7u1ut] {
    font-weight: 400;
    color: var(--text-muted);
    font-size: var(--fs-sm);
}

.cmp-subiendo[b-o7mte7u1ut] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

.cmp-preview[b-o7mte7u1ut] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-3);
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface-2);
}

.cmp-preview img[b-o7mte7u1ut] {
    display: block;
    width: 64px;
    height: 64px;
    object-fit: cover;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--surface-3);
}

.cmp-preview-info[b-o7mte7u1ut] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    flex: 1 1 auto;
    min-width: 0;
}

.cmp-preview-titulo[b-o7mte7u1ut] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 600;
    color: var(--success-text);
}

.cmp-preview-texto[b-o7mte7u1ut] {
    font-size: var(--fs-caption);
    color: var(--text-muted);
}
/* /Components/Pages/Compras/Compras.razor.rz.scp.css */
/* Compras: KPIs, graficos y tabla salen del design system; aca solo lo propio de la lista. */

.cmp-graficos[b-kbx32rm1g8] { margin-bottom: var(--space-4); }

/* Miniatura del comprobante + "Ver" como un solo link */
.cmp-comprobante[b-kbx32rm1g8] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--text-secondary);
    font-size: var(--fs-sm);
    font-weight: 500;
}

.cmp-comprobante:hover[b-kbx32rm1g8] { color: var(--primary-text); }

.cmp-comprobante img[b-kbx32rm1g8] { object-fit: cover; }
/* /Components/Pages/Cuentas/CuentaEditar.razor.rz.scp.css */
.cta-qr[b-b4jsi1308h] {
    display: block;
    max-width: 9.5rem;
    margin-top: var(--space-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface-2);
}
/* /Components/Pages/Cuentas/CuentaNueva.razor.rz.scp.css */
.cta-qr[b-170q3nvvyr] {
    display: block;
    max-width: 9.5rem;
    margin-top: var(--space-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface-2);
}
/* /Components/Pages/Cuentas/Cuentas.razor.rz.scp.css */
.cta-bloque[b-quh0c7vu9p] { margin-bottom: var(--space-4); }

/* Dona compacta arriba (dona a la izquierda, leyenda a la derecha) y tabla a todo el ancho. */
.cta-dona[b-quh0c7vu9p]  .g-dona { flex-direction: row; align-items: center; justify-content: flex-start; gap: var(--space-5); }
.cta-dona[b-quh0c7vu9p]  .g-dona-svg { width: 150px; max-width: 150px; flex: 0 0 auto; }
.cta-dona[b-quh0c7vu9p]  .g-dona-leyenda { flex: 1 1 auto; min-width: 0; max-width: 480px; }

@media (max-width: 575.98px) {
    .cta-dona[b-quh0c7vu9p]  .g-dona { flex-direction: column; }
    .cta-dona[b-quh0c7vu9p]  .g-dona-leyenda { max-width: none; }
}
/* /Components/Pages/Error.razor.rz.scp.css */
.error-id[b-rj1ttvygwr] {
    margin: var(--space-4) 0 0;
    text-align: center;
    font-size: var(--fs-caption);
    color: var(--text-muted);
}
/* /Components/Pages/Finanzas/Finanzas.razor.rz.scp.css */
/* Estado de cuenta: KPIs, tarjetas y tabla vienen del design system; aca solo lo propio. */

.fin-nota[b-vueb7bxlqr] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    margin: calc(-1 * var(--space-1)) 0 var(--space-4);
    font-size: var(--fs-caption);
    line-height: 1.5;
    color: var(--text-muted);
    max-width: 80ch;
}

.fin-nota[b-vueb7bxlqr]  .ds-icon { flex-shrink: 0; margin-top: 0.1rem; }

.fin-bloque[b-vueb7bxlqr] { margin-bottom: var(--space-4); }

.fin-total-chip[b-vueb7bxlqr] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: -0.02em;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.fin-total-chip.is-neg[b-vueb7bxlqr] { color: var(--danger-text); }

/* Vista previa del efecto del aporte (texto + flecha + color) */
.fin-aporte-efecto[b-vueb7bxlqr] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    margin: 0 0 var(--space-3);
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-md);
    font-size: var(--fs-sm);
}

.fin-aporte-efecto[b-vueb7bxlqr]  .ds-icon { flex-shrink: 0; margin-top: 0.15rem; }
.fin-aporte-efecto.is-pos[b-vueb7bxlqr] { background: var(--success-soft); color: var(--success-text); }
.fin-aporte-efecto.is-neg[b-vueb7bxlqr] { background: var(--danger-soft); color: var(--danger-text); }

/* Tarjeta de asientos (flush): toolbar y pie con el mismo aire que el header */
.fin-cuerpo[b-vueb7bxlqr] {
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--border);
}

.fin-pie[b-vueb7bxlqr] {
    padding: 0 var(--space-5) var(--space-3);
    border-top: 1px solid var(--border);
}

.fin-descripcion[b-vueb7bxlqr] {
    color: var(--text-secondary);
    min-width: 12rem;
}

.fin-movimientos[b-vueb7bxlqr] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.15rem;
    min-width: 14rem;
}

.fin-movimientos li[b-vueb7bxlqr] {
    display: flex;
    justify-content: space-between;
    gap: var(--space-4);
    font-size: var(--fs-sm);
}

.fin-mov-cuenta[b-vueb7bxlqr] { color: var(--text-muted); }

.fin-monto[b-vueb7bxlqr] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    white-space: nowrap;
}

.fin-monto.is-pos[b-vueb7bxlqr] { color: var(--success-text); }
.fin-monto.is-neg[b-vueb7bxlqr] { color: var(--danger-text); }
/* /Components/Pages/Finanzas/GastoNuevo.razor.rz.scp.css */
.gas-comprobante[b-ezcmex73d9] {
    display: block;
    max-width: 9.5rem;
    margin-top: var(--space-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface-2);
}
/* /Components/Pages/Finanzas/Gastos.razor.rz.scp.css */
.gas-desc[b-bi9vq34zik] {
    max-width: 28rem;
    color: var(--text-secondary);
    overflow-wrap: anywhere;
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* Accesos rapidos (usuario sin acceso completo) */
.home-accesos[b-xas1k68vaa] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--space-4);
}

.home-acceso[b-xas1k68vaa] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-5);
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xs);
    color: var(--text-primary);
    transition: border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}

.home-acceso:hover[b-xas1k68vaa] {
    color: var(--text-primary);
    border-color: var(--primary-soft-2);
    box-shadow: var(--shadow-lg);
    transform: translateY(-2px);
}

.home-acceso-icono[b-xas1k68vaa] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-lg);
    background: var(--primary-soft);
    color: var(--primary-text);
    flex-shrink: 0;
}

.home-acceso-texto[b-xas1k68vaa] { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
.home-acceso-texto strong[b-xas1k68vaa] { font-size: 0.9375rem; font-weight: 650; }
.home-acceso-texto span[b-xas1k68vaa] { font-size: var(--fs-sm); color: var(--text-muted); }

.home-acceso[b-xas1k68vaa]  .home-acceso-flecha { color: var(--text-disabled); transition: transform var(--dur-base) var(--ease-out), color var(--dur-base); }
.home-acceso:hover[b-xas1k68vaa]  .home-acceso-flecha { color: var(--primary-text); transform: translateX(3px); }

/* Portada publica */
.home-publica[b-xas1k68vaa] {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.home-publica-bg[b-xas1k68vaa] {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(40% 50% at 15% 10%, color-mix(in srgb, var(--primary) 22%, transparent), transparent 70%),
        radial-gradient(35% 45% at 90% 20%, color-mix(in srgb, var(--accent-2) 18%, transparent), transparent 70%),
        radial-gradient(40% 40% at 60% 100%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%);
    pointer-events: none;
}

.home-publica-nav[b-xas1k68vaa] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-5) var(--space-8);
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
}

.home-publica-logo[b-xas1k68vaa] {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.1rem;
    letter-spacing: -0.02em;
}

.home-publica-hero[b-xas1k68vaa] {
    position: relative;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: var(--space-12) var(--space-6);
    animation: ds-fade-up 600ms var(--ease-out) both;
}

.home-publica-kicker[b-xas1k68vaa] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.8rem;
    border-radius: var(--radius-full);
    border: 1px solid var(--border);
    background: color-mix(in srgb, var(--surface) 70%, transparent);
    backdrop-filter: blur(8px);
    font-size: var(--fs-sm);
    font-weight: 500;
    color: var(--text-secondary);
    margin-bottom: var(--space-6);
}

.home-publica-hero h1[b-xas1k68vaa] { margin: 0 0 var(--space-5); }

.home-publica-hero h1 span[b-xas1k68vaa] {
    background: linear-gradient(90deg, var(--primary), var(--accent-2) 50%, var(--accent));
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.home-publica-hero p[b-xas1k68vaa] { max-width: 38rem; font-size: 1.0625rem; color: var(--text-secondary); margin: 0 0 var(--space-8); }

@media (max-width: 575.98px) {
    .home-publica-nav[b-xas1k68vaa] { padding: var(--space-4); }
}
/* /Components/Pages/Impuestos/Configuracion.razor.rz.scp.css */
.cfg-tramos[b-ddc2oct1j0] { margin-top: var(--space-4); }
.cfg-tramos-cuerpo[b-ddc2oct1j0] { padding: 0 var(--space-4) var(--space-4); }
.cfg-w-70[b-ddc2oct1j0] { width: 5rem; }
.cfg-w-90[b-ddc2oct1j0] { width: 6rem; }
.cfg-w-120[b-ddc2oct1j0] { width: 8rem; }
/* /Components/Pages/Impuestos/Impuestos.razor.rz.scp.css */
.imp-periodo[b-u6o3xchkhu] { align-items: flex-end; }
.imp-periodo-acciones[b-u6o3xchkhu] { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.imp-bloque[b-u6o3xchkhu] { margin-bottom: var(--space-4); }

.imp-doc[b-u6o3xchkhu] { display: flex; flex-direction: column; gap: var(--space-3); }

.imp-doc-valor[b-u6o3xchkhu] {
    font-family: var(--font-display);
    font-size: 2.25rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--text-primary);
}

.imp-doc.is-ok .imp-doc-valor[b-u6o3xchkhu] { color: var(--success-text); }
.imp-doc.is-warn .imp-doc-valor[b-u6o3xchkhu] { color: var(--warning-text); }

.imp-doc-barra[b-u6o3xchkhu] {
    position: relative;
    height: 10px;
    border-radius: var(--radius-full, 999px);
    background: var(--surface-2);
    border: 1px solid var(--border);
    overflow: hidden;
}

.imp-doc-barra span[b-u6o3xchkhu] {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: var(--warning-text);
    transition: width 300ms ease;
}

.imp-doc.is-ok .imp-doc-barra span[b-u6o3xchkhu] { background: var(--success-text); }

/* Marca del umbral del 80% */
.imp-doc-meta[b-u6o3xchkhu] {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 80%;
    width: 2px;
    background: var(--text-primary);
    opacity: .6;
}

.imp-doc-texto[b-u6o3xchkhu] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--text-secondary);
}

.imp-doc-texto[b-u6o3xchkhu]  .ds-icon { flex-shrink: 0; margin-top: .1rem; }
.imp-doc.is-ok .imp-doc-texto[b-u6o3xchkhu]  .ds-icon { color: var(--success-text); }
.imp-doc.is-warn .imp-doc-texto[b-u6o3xchkhu]  .ds-icon { color: var(--warning-text); }

.imp-doc-detalle[b-u6o3xchkhu] { margin: 0; font-size: var(--fs-caption); color: var(--text-muted); }

@media (prefers-reduced-motion: reduce) {
    .imp-doc-barra span[b-u6o3xchkhu] { transition: none; }
}
/* /Components/Pages/Impuestos/LiquidacionAnual.razor.rz.scp.css */
.liq-controles[b-94b95umejg] { align-items: flex-end; }
.liq-anio[b-94b95umejg] { width: 8rem; }
.liq-bloque[b-94b95umejg] { margin-bottom: var(--space-4); }
.liq-resumen[b-94b95umejg] { margin-bottom: var(--space-3); }

.liq-aviso[b-94b95umejg] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-1);
    margin-top: var(--space-1);
    font-size: var(--fs-caption);
    color: var(--warning-text);
}

.liq-aviso[b-94b95umejg]  .ds-icon { flex-shrink: 0; margin-top: .1rem; }

.liq-ok[b-94b95umejg] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
    color: var(--success-text);
    font-weight: 500;
}
/* /Components/Pages/Impuestos/Trabajadores.razor.rz.scp.css */
.trb-bloque[b-py8qhooxl3] { margin-bottom: var(--space-4); }
/* /Components/Pages/Informe/InformeResultados.razor.rz.scp.css */
/* Informe de resultados. Tarjetas, KPIs y graficos vienen del design system (ds-*, g-*);
   aca solo lo propio del informe financiero. */

.inf-navegacion[b-sckicc4ipa] {
    display: flex;
    gap: 0.35rem;
    align-items: center;
}

.inf-navegacion input[type=date][b-sckicc4ipa] {
    width: 9.75rem;
}

.inf-total-chip[b-sckicc4ipa] {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: -0.02em;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.inf-nota[b-sckicc4ipa] {
    color: var(--text-muted);
    font-size: var(--fs-caption);
    margin: var(--space-3) 0 0;
    line-height: 1.5;
}

.inf-texto-alerta[b-sckicc4ipa],
.inf-texto-alerta td[b-sckicc4ipa] {
    color: var(--danger-text) !important;
}

.inf-fila-cero td[b-sckicc4ipa] { color: var(--text-muted); }

/* Tablas del informe */
.inf-tabla[b-sckicc4ipa],
.inf-estado[b-sckicc4ipa] {
    font-variant-numeric: tabular-nums;
    margin-bottom: 0;
}

.inf-estado td[b-sckicc4ipa] {
    padding: 0.5rem 0.35rem;
}

.inf-estado tr:hover > td[b-sckicc4ipa] { background: transparent; }

.inf-estado .inf-pct[b-sckicc4ipa] {
    color: var(--text-muted);
    width: 4.5rem;
    font-size: var(--fs-sm);
}

.inf-subtotal td[b-sckicc4ipa] {
    font-weight: 600;
    background: var(--surface-2) !important;
}

.inf-total td[b-sckicc4ipa] {
    font-weight: 700;
    font-size: 1rem;
    border-top: 2px solid var(--text-primary) !important;
    border-bottom: none;
}

.inf-desglose[b-sckicc4ipa] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-6);
    margin-top: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    background: var(--surface-2);
    border: 1px solid var(--border);
    font-size: var(--fs-sm);
    color: var(--text-secondary);
}

.inf-desglose div[b-sckicc4ipa] {
    display: flex;
    gap: 0.5rem;
}

.inf-desglose strong[b-sckicc4ipa] {
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
}

.inf-indicadores dd small[b-sckicc4ipa] {
    font-weight: 400;
}

.inf-indicadores dd[b-sckicc4ipa]  .ds-icon { vertical-align: -2px; margin-right: 2px; }

/* Gastos */
.inf-gastos[b-sckicc4ipa] {
    display: grid;
    grid-template-columns: minmax(200px, 260px) 1fr;
    gap: var(--space-8);
    align-items: center;
}

@media (max-width: 900px) {
    .inf-gastos[b-sckicc4ipa] {
        grid-template-columns: 1fr;
    }
}

/* Analisis */
.inf-analisis[b-sckicc4ipa] {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.inf-analisis li[b-sckicc4ipa] {
    display: flex;
    gap: 0.7rem;
    align-items: flex-start;
    padding: 0.65rem 0.8rem;
    border-radius: var(--radius-md);
    background: var(--info-soft);
    border: 1px solid color-mix(in srgb, var(--info) 18%, transparent);
    font-size: var(--fs-body);
    color: var(--text-primary);
    line-height: 1.5;
}

.inf-nivel-icono[b-sckicc4ipa] {
    flex: 0 0 1.5rem;
    height: 1.5rem;
    border-radius: var(--radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--info-text);
    background: var(--surface);
    box-shadow: var(--shadow-xs);
}

.inf-analisis li.inf-nivel-positivo[b-sckicc4ipa] { background: var(--success-soft); border-color: color-mix(in srgb, var(--success) 20%, transparent); }
.inf-analisis li.inf-nivel-positivo .inf-nivel-icono[b-sckicc4ipa] { color: var(--success-text); }
.inf-analisis li.inf-nivel-advertencia[b-sckicc4ipa] { background: var(--warning-soft); border-color: color-mix(in srgb, var(--warning) 22%, transparent); }
.inf-analisis li.inf-nivel-advertencia .inf-nivel-icono[b-sckicc4ipa] { color: var(--warning-text); }
.inf-analisis li.inf-nivel-alerta[b-sckicc4ipa] { background: var(--danger-soft); border-color: color-mix(in srgb, var(--danger) 22%, transparent); }
.inf-analisis li.inf-nivel-alerta .inf-nivel-icono[b-sckicc4ipa] { color: var(--danger-text); }

.inf-umbral[b-sckicc4ipa] {
    border-top: 1px solid var(--border);
    padding-top: var(--space-4);
}

@media print {
    .informe[b-sckicc4ipa]  .ds-card,
    .informe[b-sckicc4ipa]  .ds-kpi {
        box-shadow: none;
        break-inside: avoid;
    }
}
/* /Components/Pages/Inventario/Inventario.razor.rz.scp.css */
/* Celda de producto: nombre + codigo como un solo link a la ficha */
.inv-producto[b-5ebr6vh6o8] {
    display: inline-flex;
    flex-direction: column;
    gap: 0.1rem;
    color: var(--text-primary);
    min-width: 0;
}

.inv-producto:hover .ds-cell-main[b-5ebr6vh6o8] { color: var(--primary-text); }

.inv-producto code.ds-cell-sub[b-5ebr6vh6o8] {
    padding: 0;
    background: none;
    border: 0;
    color: var(--text-muted);
    font-size: var(--fs-caption);
}
/* /Components/Pages/Inventario/InventarioTransferir.razor.rz.scp.css */
/* Barra fija de origen/destino y grilla de tarjetas (mismas del catalogo de /ventas/nueva). */
.transferir-barra[b-t1bfnd5tks] {
    position: sticky;
    top: 0;
    z-index: 20;
    background: var(--background);
    padding: var(--space-3) 0;
    margin-bottom: var(--space-4);
    border-bottom: 1px solid var(--border);
}

.transferir-ruta[b-t1bfnd5tks] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: var(--space-3);
}

.transferir-campo[b-t1bfnd5tks] {
    min-width: 13rem;
    flex: 0 1 18rem;
}

.transferir-campo .form-label[b-t1bfnd5tks] {
    margin-bottom: var(--space-1);
}

.transferir-flecha[b-t1bfnd5tks] {
    display: inline-flex;
    align-items: center;
    padding-bottom: 0.6rem;
    color: var(--text-muted);
}

.transferir-acciones[b-t1bfnd5tks] {
    display: flex;
    gap: var(--space-2);
    margin-left: auto;
}

.transferir-filtros[b-t1bfnd5tks] {
    margin-top: var(--space-3);
    margin-bottom: 0;
}

.transferir-buscar[b-t1bfnd5tks] {
    max-width: 22rem;
}

.transferir-categorias[b-t1bfnd5tks] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-1);
}

.transferir-grilla[b-t1bfnd5tks] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: var(--space-4);
}

@media (max-width: 575.98px) {
    .transferir-grilla[b-t1bfnd5tks] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--space-3);
    }

    /* Origen y destino en filas propias de ancho completo. */
    .transferir-campo[b-t1bfnd5tks] {
        flex: 1 1 100%;
    }

    .transferir-flecha[b-t1bfnd5tks] {
        display: none;
    }

    .transferir-acciones[b-t1bfnd5tks] {
        width: 100%;
        margin-left: 0;
    }

    .transferir-acciones .btn[b-t1bfnd5tks] {
        flex: 1;
    }

    .transferir-buscar[b-t1bfnd5tks] {
        max-width: none;
    }
}
/* /Components/Pages/Login.razor.rz.scp.css */
.auth[b-vry24z5tym] {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    min-height: 100vh;
    min-height: 100dvh;
    background: var(--background);
}

/* Panel de marca ------------------------------------------------------------ */
.auth-brand[b-vry24z5tym] {
    position: relative;
    overflow: hidden;
    background: var(--auth-bg);
    color: var(--auth-text);
    display: flex;
}

.auth-mesh[b-vry24z5tym] { position: absolute; inset: 0; filter: blur(60px); opacity: 0.9; }

.auth-blob[b-vry24z5tym] {
    position: absolute;
    border-radius: 50%;
    animation: auth-flotar-b-vry24z5tym 18s ease-in-out infinite alternate;
}

.auth-blob-1[b-vry24z5tym] { width: 520px; height: 520px; left: -120px; top: -140px; background: radial-gradient(circle, var(--auth-blob-1) 0%, transparent 70%); }
.auth-blob-2[b-vry24z5tym] { width: 460px; height: 460px; right: -140px; top: 30%; background: radial-gradient(circle, var(--auth-blob-2) 0%, transparent 70%); animation-delay: -6s; }
.auth-blob-3[b-vry24z5tym] { width: 420px; height: 420px; left: 20%; bottom: -180px; background: radial-gradient(circle, var(--auth-blob-3) 0%, transparent 70%); animation-delay: -12s; opacity: 0.7; }

@keyframes auth-flotar-b-vry24z5tym {
    0% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(40px, 30px) scale(1.08); }
    100% { transform: translate(-30px, 50px) scale(0.95); }
}

.auth-grid-bg[b-vry24z5tym] {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(var(--auth-grid) 1px, transparent 1px),
        linear-gradient(90deg, var(--auth-grid) 1px, transparent 1px);
    background-size: 44px 44px;
    /* #000 solo define el alfa de la mascara, no es un color visible */
    mask-image: radial-gradient(ellipse at 40% 40%, #000 30%, transparent 75%);
    -webkit-mask-image: radial-gradient(ellipse at 40% 40%, #000 30%, transparent 75%);
}

.auth-brand-inner[b-vry24z5tym] {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: var(--space-10);
    width: 100%;
    max-width: 640px;
    margin: 0 auto;
    padding: var(--space-10) var(--space-12);
}

.auth-logo[b-vry24z5tym] {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.1rem;
    letter-spacing: -0.02em;
    color: var(--auth-text-strong);
}

.auth-hero h2[b-vry24z5tym] {
    font-family: var(--font-display);
    font-size: clamp(2rem, 1.4rem + 1.8vw, 2.9rem);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1.08;
    color: var(--auth-text-strong);
    margin: 0 0 var(--space-4);
}

.auth-hero h2 span[b-vry24z5tym] {
    background: var(--auth-title-gradient);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.auth-hero p[b-vry24z5tym] { color: var(--auth-text-muted); font-size: 1rem; max-width: 34rem; margin: 0; }

.auth-preview[b-vry24z5tym] { position: relative; height: 250px; }

.auth-glass[b-vry24z5tym] {
    background: var(--auth-glass-bg);
    border: 1px solid var(--auth-glass-border);
    backdrop-filter: blur(18px) saturate(140%);
    -webkit-backdrop-filter: blur(18px) saturate(140%);
    border-radius: var(--radius-xl);
    box-shadow: 0 24px 48px -12px var(--auth-glass-shadow), inset 0 1px 0 var(--auth-glass-inset);
}

.auth-glass-main[b-vry24z5tym] {
    position: absolute;
    left: 0;
    top: 0;
    width: min(420px, 88%);
    padding: var(--space-5);
    animation: ds-fade-up 700ms var(--ease-out) both;
}

.auth-glass-head[b-vry24z5tym] { display: flex; justify-content: space-between; align-items: center; font-size: var(--fs-sm); color: var(--auth-text-muted); }
.auth-pill[b-vry24z5tym] { font-size: var(--fs-caption); font-weight: 600; color: var(--auth-green-text); background: var(--auth-green-soft); padding: 0.1rem 0.5rem; border-radius: var(--radius-full); }
.auth-glass-value[b-vry24z5tym] { font-family: var(--font-display); font-size: 1.9rem; font-weight: 700; color: var(--auth-text-strong); letter-spacing: -0.03em; margin: 0.2rem 0 0.6rem; }
.auth-glass-chart[b-vry24z5tym] { width: 100%; height: 80px; display: block; }

.auth-draw[b-vry24z5tym] { stroke-dasharray: 420; stroke-dashoffset: 420; animation: auth-dibujar-b-vry24z5tym 1.6s var(--ease-out) 300ms forwards; }
@keyframes auth-dibujar-b-vry24z5tym { to { stroke-dashoffset: 0; } }

.auth-glass-float[b-vry24z5tym] {
    position: absolute;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: 0.8rem 1rem;
    font-size: var(--fs-sm);
    animation: ds-fade-up 700ms var(--ease-out) both, auth-bob-b-vry24z5tym 6s ease-in-out infinite;
}

.auth-glass-float strong[b-vry24z5tym] { display: block; color: var(--auth-text-strong); font-weight: 600; }
.auth-glass-float span[b-vry24z5tym] { color: var(--auth-text-muted); font-size: var(--fs-caption); }
.auth-glass-a[b-vry24z5tym] { right: 2%; top: 38%; animation-delay: 250ms, 0s; }
.auth-glass-b[b-vry24z5tym] { left: 18%; bottom: -4px; animation-delay: 450ms, -3s; }

@keyframes auth-bob-b-vry24z5tym {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}

.auth-dot[b-vry24z5tym] { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.auth-dot-green[b-vry24z5tym] { background: var(--auth-green); box-shadow: 0 0 0 4px var(--auth-green-ring); }
.auth-dot-amber[b-vry24z5tym] { background: var(--auth-amber); box-shadow: 0 0 0 4px var(--auth-amber-ring); }

.auth-points[b-vry24z5tym] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2) var(--space-5);
    font-size: var(--fs-sm);
    color: var(--auth-text-muted);
}

.auth-points li[b-vry24z5tym] { display: inline-flex; align-items: center; gap: 0.45rem; }
.auth-points li[b-vry24z5tym]::before { content: "✓"; color: var(--auth-accent); font-weight: 700; }

/* Formulario ---------------------------------------------------------------- */
.auth-form-side[b-vry24z5tym] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-8) var(--space-6);
}

.auth-card[b-vry24z5tym] {
    width: 100%;
    max-width: 400px;
    animation: ds-fade-up 500ms var(--ease-out) both;
}

.auth-logo-mobile[b-vry24z5tym] { display: none; color: var(--text-primary); margin-bottom: var(--space-8); }

.auth-card h1[b-vry24z5tym] {
    font-size: 1.75rem;
    letter-spacing: -0.03em;
    margin: 0 0 var(--space-2);
}

.auth-subtitle[b-vry24z5tym] { color: var(--text-muted); margin: 0 0 var(--space-8); font-size: 0.9375rem; }

.auth-input[b-vry24z5tym] { position: relative; }

.auth-input[b-vry24z5tym] >  .ds-icon:first-child {
    position: absolute;
    left: 0.9rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
    pointer-events: none;
    z-index: 1;
}

.auth-input[b-vry24z5tym]  .form-control { padding-left: 2.6rem; }
.auth-input[b-vry24z5tym]  input[type=password],
.auth-input[b-vry24z5tym]  #password { padding-right: 2.8rem; }

.auth-toggle-pass[b-vry24z5tym] {
    position: absolute;
    right: 0.4rem;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: var(--text-muted);
    border-radius: var(--radius-md);
    cursor: pointer;
}

.auth-toggle-pass:hover[b-vry24z5tym] { background: var(--surface-3); color: var(--text-primary); }
.auth-toggle-pass[aria-pressed="true"][b-vry24z5tym] { color: var(--primary-text); }

.auth-submit[b-vry24z5tym] { margin-top: var(--space-2); height: 3rem; }
.auth-submit[b-vry24z5tym]  .ds-icon { transition: transform var(--dur-base) var(--ease-out); }
.auth-submit:hover[b-vry24z5tym]  .ds-icon { transform: translateX(3px); }

.auth-foot[b-vry24z5tym] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    margin: var(--space-8) 0 0;
    font-size: var(--fs-caption);
    color: var(--text-muted);
    text-align: center;
}

.auth-theme[b-vry24z5tym] { position: absolute; top: var(--space-5); right: var(--space-5); }

@media (max-width: 991.98px) {
    .auth[b-vry24z5tym] { grid-template-columns: 1fr; }
    .auth-brand[b-vry24z5tym] { display: none; }
    .auth-logo-mobile[b-vry24z5tym] { display: inline-flex; }
    .auth-form-side[b-vry24z5tym] {
        background:
            radial-gradient(60% 40% at 0% 0%, color-mix(in srgb, var(--primary) 14%, transparent), transparent 70%),
            radial-gradient(50% 35% at 100% 100%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%),
            var(--background);
        align-items: flex-start;
        padding-top: 12vh;
    }
}
/* /Components/Pages/Perfil.razor.rz.scp.css */
.perfil-grid[b-2rdn0ioymm] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
    align-items: start;
    max-width: 1100px;
}

.perfil-grid[b-2rdn0ioymm]  .perfil-card { max-width: none; }

.perfil-foto[b-2rdn0ioymm] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    margin-bottom: var(--space-5);
}

.perfil-avatar[b-2rdn0ioymm] {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid var(--border);
    box-shadow: var(--shadow-sm);
    flex-shrink: 0;
}

.perfil-avatar-inicial[b-2rdn0ioymm] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    font-weight: 650;
    color: var(--primary-text);
    background: var(--primary-soft);
}

.perfil-subir[b-2rdn0ioymm] { cursor: pointer; }
.perfil-subir:focus-within[b-2rdn0ioymm] { outline: 2px solid var(--primary); outline-offset: 2px; }
.perfil-ayuda[b-2rdn0ioymm] { margin-top: var(--space-2); font-size: var(--fs-caption); color: var(--text-muted); }

@media (max-width: 991.98px) {
    .perfil-grid[b-2rdn0ioymm] { grid-template-columns: minmax(0, 1fr); }
}
/* /Components/Pages/Productos/ProductoDetalle.razor.rz.scp.css */
/* Subtitulo del header: codigo + estado */
.prod-det-sub[b-j8jqzq0n55] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.prod-det-grid[b-j8jqzq0n55] { margin-bottom: var(--space-4); }

.prod-det-skel-hero[b-j8jqzq0n55] { display: block; height: 260px; border-radius: var(--radius-lg); }

/* Ficha: foto a la izquierda, datos a la derecha (apilado en movil) */
.prod-det-hero[b-j8jqzq0n55] {
    display: grid;
    grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
    gap: var(--space-6);
    align-items: start;
}

.prod-det-foto[b-j8jqzq0n55] {
    aspect-ratio: 1 / 1;
    border-radius: var(--radius-lg);
    border: 1px solid var(--border);
    background:
        radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--primary) 8%, transparent), transparent 60%),
        var(--surface-2);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.prod-det-foto img[b-j8jqzq0n55] {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.prod-det-foto.is-inactivo img[b-j8jqzq0n55] { filter: grayscale(0.9); opacity: 0.75; }

.prod-det-foto-vacia[b-j8jqzq0n55] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    color: var(--text-disabled);
    font-size: var(--fs-sm);
    font-weight: 500;
}

.prod-det-info[b-j8jqzq0n55] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    min-width: 0;
}

.prod-det-chips[b-j8jqzq0n55] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
}

.prod-det-precio[b-j8jqzq0n55] {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 1.4rem + 1.2vw, 2.25rem);
    font-weight: 750;
    letter-spacing: -0.035em;
    line-height: 1.1;
    font-variant-numeric: tabular-nums;
    color: var(--text-primary);
}

.prod-det-descripcion[b-j8jqzq0n55] {
    margin: 0;
    color: var(--text-secondary);
    line-height: 1.6;
    max-width: 62ch;
    white-space: pre-line;
}

.prod-det-descripcion.is-vacia[b-j8jqzq0n55] { color: var(--text-disabled); font-style: italic; }

.prod-det-datos[b-j8jqzq0n55] { max-width: 26rem; }

/* Tarjeta QR */
.prod-det-qr[b-j8jqzq0n55] {
    display: flex;
    flex-direction: column;
}

.prod-det-qr-img[b-j8jqzq0n55] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-4);
    border: 1px dashed var(--border-strong);
    border-radius: var(--radius-lg);
    background: var(--surface-2);
    flex: 1 1 auto;
}

/* El PNG del QR trae fondo blanco: se le da un marco para que no "flote" en tema oscuro. */
.prod-det-qr-img img[b-j8jqzq0n55] {
    width: 160px;
    height: 160px;
    border-radius: var(--radius-sm);
    box-shadow: var(--shadow-sm);
}

.prod-det-qr-acciones[b-j8jqzq0n55] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    margin-top: var(--space-4);
}

.prod-det-kpis[b-j8jqzq0n55] { margin-bottom: var(--space-6); }

.prod-det-seccion[b-j8jqzq0n55] { margin-bottom: var(--space-6); }

.prod-det-ubicacion[b-j8jqzq0n55] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    color: var(--text-muted);
}

@media (max-width: 767.98px) {
    .prod-det-hero[b-j8jqzq0n55] { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
    .prod-det-foto[b-j8jqzq0n55] { max-width: 320px; width: 100%; margin: 0 auto; }
}
/* /Components/Pages/Productos/ProductoEtiquetas.razor.rz.scp.css */
.etiquetas-switch[b-32j4cv7ord] { margin: 0 var(--space-2); }

/* Lista de productos para elegir: tarjetas chicas con check, scroll propio */
.etiquetas-lista[b-32j4cv7ord] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
    gap: var(--space-2);
    max-height: 24rem;
    overflow-y: auto;
    padding: var(--space-3);
    margin-bottom: var(--space-6);
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xs);
}

.etiquetas-item[b-32j4cv7ord] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin: 0;
    padding: var(--space-2) var(--space-3);
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    cursor: pointer;
    min-width: 0;
    transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}

.etiquetas-item:hover[b-32j4cv7ord] { background: var(--surface-2); border-color: var(--border); }

.etiquetas-item.is-marcado[b-32j4cv7ord] {
    background: var(--primary-soft);
    border-color: color-mix(in srgb, var(--primary) 30%, transparent);
}

.etiquetas-item:focus-within[b-32j4cv7ord] { outline: 2px solid var(--primary); outline-offset: 1px; }

.etiquetas-inicial[b-32j4cv7ord] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 650;
    font-size: var(--fs-sm);
    color: var(--text-muted);
}

.etiquetas-texto[b-32j4cv7ord] {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.etiquetas-nombre[b-32j4cv7ord] {
    font-weight: 550;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.etiquetas-texto .ds-cell-sub[b-32j4cv7ord] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}

.etiquetas-preview-head[b-32j4cv7ord] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: var(--space-2) var(--space-3);
    margin-bottom: var(--space-3);
}

/* Hoja de etiquetas: 3 por fila en A4, cada una ~5,5 cm de ancho. En pantalla se muestra sobre
   una superficie "papel"; al imprimir sale sola, sin marco. */
.etiquetas-hoja[b-32j4cv7ord] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
}

.etiquetas-hoja.has-etiquetas[b-32j4cv7ord] {
    padding: var(--space-5);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
}

.etiqueta[b-32j4cv7ord] {
    width: 100%;
    border: 1px dashed var(--border-strong); /* guia de corte */
    border-radius: var(--radius-xs);
    break-inside: avoid;
}

@media (max-width: 575.98px) {
    .etiquetas-lista[b-32j4cv7ord] { grid-template-columns: minmax(0, 1fr); }
    .etiquetas-hoja[b-32j4cv7ord] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media print {
    .etiquetas-hoja[b-32j4cv7ord],
    .etiquetas-hoja.has-etiquetas[b-32j4cv7ord] {
        grid-template-columns: repeat(3, 55mm);
        gap: 4mm;
        padding: 0;
        background: none;
        border: 0;
        border-radius: 0;
    }

    .etiqueta[b-32j4cv7ord] {
        width: 55mm;
        border-radius: 0;
    }
}
/* /Components/Pages/Productos/ProductoLoteNuevo.razor.rz.scp.css */
/* Resumen en vivo del lote (costo total y margenes) */
.lote-resumen[b-ol4aq1v07x] {
    margin-top: var(--space-5);
    padding: var(--space-1) var(--space-4);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface-2);
}
/* /Components/Pages/Productos/Productos.razor.rz.scp.css */
/* Fila de la tabla: miniatura + nombre como un solo link */
.prod-fila[b-qdn41w88z4] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--text-primary);
    min-width: 0;
}

.prod-fila:hover .ds-cell-main[b-qdn41w88z4] { color: var(--primary-text); }

.prod-fila-inicial[b-qdn41w88z4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 650;
    font-size: var(--fs-sm);
    color: var(--text-muted);
}

/* Tarjeta de producto */
.prod-card[b-qdn41w88z4] {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
    transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}

.prod-card:hover[b-qdn41w88z4] {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
    border-color: var(--border-strong);
}

.prod-card.is-inactivo .prod-card-media[b-qdn41w88z4] { filter: grayscale(0.9); opacity: 0.7; }

.prod-card-media[b-qdn41w88z4] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 4 / 3;
    background:
        radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--primary) 8%, transparent), transparent 60%),
        var(--surface-2);
    border-bottom: 1px solid var(--border);
    overflow: hidden;
}

.prod-card-media img[b-qdn41w88z4] {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform var(--dur-slow) var(--ease-out);
}

:root[data-theme="dark"] .prod-card-media img[b-qdn41w88z4] { background: var(--media-bg); }

.prod-card:hover .prod-card-media img[b-qdn41w88z4] { transform: scale(1.04); }

.prod-card-inicial[b-qdn41w88z4] {
    font-family: var(--font-display);
    font-size: 2.75rem;
    font-weight: 700;
    color: var(--text-disabled);
}

.prod-card-badges[b-qdn41w88z4] { position: absolute; top: var(--space-2); left: var(--space-2); }
.prod-card-badges[b-qdn41w88z4]  .ds-status { backdrop-filter: blur(6px); box-shadow: var(--shadow-xs); }

.prod-card-body[b-qdn41w88z4] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: var(--space-4) var(--space-4) var(--space-3);
    flex: 1 1 auto;
}

.prod-card-meta[b-qdn41w88z4] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    font-size: var(--fs-caption);
    color: var(--text-muted);
    min-width: 0;
}

.prod-card-meta span[b-qdn41w88z4] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }

.prod-card-nombre[b-qdn41w88z4] {
    font-family: var(--font-sans);
    font-size: 0.9375rem;
    font-weight: 650;
    letter-spacing: -0.01em;
    line-height: 1.3;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.6em;
}

.prod-card-nombre a[b-qdn41w88z4] { color: var(--text-primary); }
.prod-card-nombre a:hover[b-qdn41w88z4] { color: var(--primary-text); }

.prod-card-foot[b-qdn41w88z4] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-top: auto;
    padding-top: var(--space-2);
}

.prod-card-precio[b-qdn41w88z4] {
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}

.prod-card-stock[b-qdn41w88z4] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: var(--fs-sm);
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

.prod-card-actions[b-qdn41w88z4] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    padding: var(--space-3) var(--space-4);
    border-top: 1px solid var(--border);
    background: var(--surface-2);
}

.prod-card-actions > :first-child[b-qdn41w88z4] { flex: 1 1 auto; }
/* /Components/Pages/Productos/SelectorFotoProducto.razor.rz.scp.css */
.foto-selector[b-6eskk5g8eb] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

/* Zona de carga: preview + texto; el input real la cubre entera (transparente) */
.foto-zona[b-6eskk5g8eb] {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-3);
    border: 1.5px dashed var(--border-strong);
    border-radius: var(--radius-lg);
    background: var(--surface-2);
    transition: border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);
}

.foto-zona:hover[b-6eskk5g8eb] { border-color: var(--primary); background: var(--primary-soft); }

.foto-zona:focus-within[b-6eskk5g8eb] {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--ring);
}

.foto-zona.is-error[b-6eskk5g8eb] { border-color: var(--danger); }
.foto-zona.is-procesando[b-6eskk5g8eb] { opacity: 0.8; }

.foto-preview[b-6eskk5g8eb] {
    position: relative;
    width: 96px;
    height: 96px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    border: 1px solid var(--border);
    background: var(--surface);
    color: var(--text-disabled);
    overflow: hidden;
}

.foto-preview img[b-6eskk5g8eb] {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.foto-procesando[b-6eskk5g8eb] {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--surface) 70%, transparent);
    color: var(--primary);
}

.foto-texto[b-6eskk5g8eb] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.foto-titulo[b-6eskk5g8eb] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 600;
    color: var(--text-primary);
}

.foto-ayuda[b-6eskk5g8eb] { font-size: var(--fs-caption); color: var(--text-muted); }

.foto-zona[b-6eskk5g8eb]  .foto-input {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.foto-zona[b-6eskk5g8eb]  .foto-input:disabled { cursor: progress; }

.foto-error[b-6eskk5g8eb] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--danger-text);
    font-size: var(--fs-sm);
}

.foto-lista[b-6eskk5g8eb] {
    display: flex;
    align-items: flex-start;
    gap: 0.4rem;
    padding: var(--space-2) var(--space-3);
    border-radius: var(--radius-md);
    background: var(--success-soft);
    color: var(--success-text);
    font-size: var(--fs-sm);
}

.foto-lista[b-6eskk5g8eb]  .ds-icon { margin-top: 0.15rem; }

.foto-estado:empty[b-6eskk5g8eb] { display: none; }
/* /Components/Pages/Usuarios/DispositivosUsuario.razor.rz.scp.css */
.disp .ds-card-header[b-sdn0a5fr54] { flex-wrap: wrap; }

.disp-head[b-sdn0a5fr54] { display: flex; align-items: flex-start; gap: var(--space-3); min-width: 0; }

.disp-head-icono[b-sdn0a5fr54] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border-radius: var(--radius-md);
    background: var(--info-soft);
    color: var(--info-text);
}

.disp-cuerpo[b-sdn0a5fr54] { padding: var(--space-4) var(--space-5); }
.disp-avisos[b-sdn0a5fr54] { display: flex; flex-direction: column; gap: var(--space-2); border-bottom: 1px solid var(--border); }

.disp-telefono[b-sdn0a5fr54] { display: flex; align-items: center; gap: var(--space-3); min-width: 12rem; }
.disp-telefono-icono[b-sdn0a5fr54] { display: inline-flex; align-items: center; justify-content: center; color: var(--text-muted); }
.disp-telefono-texto[b-sdn0a5fr54] { min-width: 0; line-height: 1.35; }

.disp-col-ubicacion[b-sdn0a5fr54] { min-width: 12rem; }

.disp-fecha[b-sdn0a5fr54] {
    font-size: var(--fs-sm);
    color: var(--text-secondary);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.is-revocado .ds-cell-main[b-sdn0a5fr54],
.is-revocado .disp-telefono-icono[b-sdn0a5fr54] { color: var(--text-muted); }

.disp-nota[b-sdn0a5fr54] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    margin: 0;
    padding: var(--space-3) var(--space-5);
    border-top: 1px solid var(--border);
    background: var(--surface-2);
    font-size: var(--fs-caption);
    color: var(--text-muted);
}
/* /Components/Pages/Usuarios/SelectorRolUsuario.razor.rz.scp.css */
.rol-selector[b-yugx8dfghv] { border: 0; margin: 0; padding: 0; min-width: 0; }
.rol-selector > legend[b-yugx8dfghv] { float: none; width: auto; padding: 0; }

.rol-opciones[b-yugx8dfghv] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: var(--space-3);
}

.rol-opcion[b-yugx8dfghv] {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.rol-opcion:hover[b-yugx8dfghv] { border-color: var(--border-strong); }

.rol-opcion.is-selected[b-yugx8dfghv] {
    border-color: var(--primary);
    background: var(--primary-soft);
    box-shadow: 0 0 0 1px var(--primary);
}

.rol-opcion:has(input:focus-visible)[b-yugx8dfghv] { box-shadow: 0 0 0 3px var(--ring); }

/* El radio queda arriba a la derecha: la tarjeta entera es el area clickeable */
.rol-opcion .form-check-input[b-yugx8dfghv] {
    position: absolute;
    top: var(--space-3);
    right: var(--space-3);
    margin: 0;
}

.rol-opcion-icono[b-yugx8dfghv] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex-shrink: 0;
    border-radius: var(--radius-md);
    background: var(--surface-3);
    color: var(--text-secondary);
}

.rol-opcion.is-selected .rol-opcion-icono[b-yugx8dfghv] { background: var(--card); color: var(--primary-text); }

.rol-opcion-texto[b-yugx8dfghv] { display: flex; flex-direction: column; gap: 0.1rem; padding-right: var(--space-5); min-width: 0; }
.rol-opcion-titulo[b-yugx8dfghv] { font-weight: 650; color: var(--text-primary); }
.rol-opcion-desc[b-yugx8dfghv] { font-size: var(--fs-sm); color: var(--text-muted); line-height: 1.4; }
/* /Components/Pages/Usuarios/UsuarioEditar.razor.rz.scp.css */
.usr-editar[b-108nb4bt5b] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.usr-editar[b-108nb4bt5b] >  form { display: flex; flex-direction: column; gap: var(--space-5); }

/* Tarjeta de identidad: quien es el usuario que se esta editando */
.usr-identidad[b-108nb4bt5b] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-4);
    background:
        radial-gradient(circle at 0% 0%, color-mix(in srgb, var(--primary) 9%, transparent), transparent 55%),
        var(--card);
}

.usr-identidad-avatar[b-108nb4bt5b] {
    width: 56px;
    height: 56px;
    font-size: 1.15rem;
    box-shadow: var(--shadow-sm);
}

.usr-identidad-texto[b-108nb4bt5b] { flex: 1 1 14rem; min-width: 0; }

.usr-identidad-nombre[b-108nb4bt5b] {
    margin: 0;
    font-family: var(--font-display);
    font-size: var(--fs-h3);
    font-weight: 700;
    letter-spacing: -0.01em;
    overflow: hidden;
    text-overflow: ellipsis;
}

.usr-identidad-email[b-108nb4bt5b] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0.15rem 0 0;
    font-size: var(--fs-sm);
    color: var(--text-muted);
    word-break: break-all;
}

.usr-identidad-badges[b-108nb4bt5b] { display: flex; flex-wrap: wrap; gap: var(--space-2); }

/* Encabezado de cada seccion: titulo + texto a la izquierda, acciones a la derecha */
.usr-seccion-head[b-108nb4bt5b] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3);
}

.usr-seccion-head > div:first-child[b-108nb4bt5b] { flex: 1 1 20rem; min-width: 0; }

.usr-seccion-head-acciones[b-108nb4bt5b] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-3);
}

.usr-seccion-icono[b-108nb4bt5b] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
    border-radius: var(--radius-md);
    background: var(--warning-soft);
    color: var(--warning-text);
}

.usr-contador[b-108nb4bt5b] {
    font-size: var(--fs-sm);
    color: var(--text-muted);
    white-space: nowrap;
}

.usr-contador strong[b-108nb4bt5b] { color: var(--text-primary); }

/* Permisos: una tarjeta por modulo con switches */
.perm-grid[b-108nb4bt5b] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
    gap: var(--space-3);
    margin-top: var(--space-4);
    transition: opacity var(--dur-base) var(--ease-out);
}

.perm-grid.is-atenuado[b-108nb4bt5b] { opacity: 0.6; }
.perm-grid.is-atenuado:hover[b-108nb4bt5b],
.perm-grid.is-atenuado:focus-within[b-108nb4bt5b] { opacity: 1; }

.perm-grupo[b-108nb4bt5b] {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    overflow: hidden;
    transition: border-color var(--dur-fast) var(--ease-out);
}

.perm-grupo.is-activo[b-108nb4bt5b] { border-color: color-mix(in srgb, var(--primary) 40%, var(--border)); }

.perm-grupo-head[b-108nb4bt5b] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3);
    background: var(--surface-2);
    border-bottom: 1px solid var(--border);
}

.perm-grupo-icono[b-108nb4bt5b] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--radius-sm);
    background: var(--card);
    border: 1px solid var(--border);
    color: var(--text-secondary);
}

.perm-grupo.is-activo .perm-grupo-icono[b-108nb4bt5b] { background: var(--primary-soft); border-color: transparent; color: var(--primary-text); }

.perm-grupo-nombre[b-108nb4bt5b] { flex: 1 1 auto; font-weight: 650; min-width: 0; }

.perm-grupo-cuenta[b-108nb4bt5b] {
    font-size: var(--fs-caption);
    color: var(--text-muted);
    padding: 0.05rem 0.45rem;
    border-radius: var(--radius-full);
    background: var(--surface-3);
}

.perm-lista[b-108nb4bt5b] { list-style: none; margin: 0; padding: var(--space-1); }

.perm-item[b-108nb4bt5b] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: 0.55rem var(--space-2);
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-size: var(--fs-sm);
    color: var(--text-secondary);
    transition: background-color var(--dur-fast) var(--ease-out);
}

.perm-item:hover[b-108nb4bt5b] { background: var(--surface-3); color: var(--text-primary); }
.perm-item:has(input:checked)[b-108nb4bt5b] { color: var(--text-primary); }

.perm-item-texto[b-108nb4bt5b] { display: flex; flex-direction: column; min-width: 0; line-height: 1.4; }
.perm-item-nota[b-108nb4bt5b] { font-size: var(--fs-caption); color: var(--text-muted); }

.perm-item .form-switch .form-check-input[b-108nb4bt5b] { cursor: pointer; }

/* Tiendas: tarjetas de checkbox */
.tienda-grid[b-108nb4bt5b] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
    gap: var(--space-3);
    margin-top: var(--space-4);
}

.tienda-opcion[b-108nb4bt5b] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--surface);
    cursor: pointer;
    transition: border-color var(--dur-fast) var(--ease-out), background-color var(--dur-fast) var(--ease-out);
}

.tienda-opcion:hover[b-108nb4bt5b] { border-color: var(--border-strong); }
.tienda-opcion.is-selected[b-108nb4bt5b] { border-color: var(--primary); background: var(--primary-soft); }
.tienda-opcion .form-check-input[b-108nb4bt5b] { margin: 0; flex-shrink: 0; }

.tienda-opcion-icono[b-108nb4bt5b] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    border-radius: var(--radius-sm);
    background: var(--surface-3);
    color: var(--text-secondary);
}

.tienda-opcion.is-selected .tienda-opcion-icono[b-108nb4bt5b] { background: var(--card); color: var(--primary-text); }

.tienda-opcion-texto[b-108nb4bt5b] { display: flex; flex-direction: column; min-width: 0; line-height: 1.35; }
.tienda-opcion-nombre[b-108nb4bt5b] { font-weight: 600; color: var(--text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tienda-opcion-tipo[b-108nb4bt5b] { font-size: var(--fs-caption); color: var(--text-muted); }

/* Barra de guardado: queda pegada abajo mientras se recorren permisos y tiendas */
.usr-guardar-bar[b-108nb4bt5b] {
    position: sticky;
    bottom: var(--space-3);
    z-index: 5;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: color-mix(in srgb, var(--card) 88%, transparent);
    backdrop-filter: blur(8px);
    box-shadow: var(--shadow-lg);
}

[b-108nb4bt5b] .usr-password-form { margin-top: var(--space-4); max-width: 640px; }

@media (max-width: 575.98px) {
    .usr-guardar-bar[b-108nb4bt5b] { bottom: var(--space-2); }
    .usr-guardar-bar .btn-primary[b-108nb4bt5b] { flex: 1 1 auto; }
}
/* /Components/Pages/Usuarios/Usuarios.razor.rz.scp.css */
.usr-resumen[b-vhm6xf4qbw] { margin-bottom: var(--space-5); }

/* Celda principal: avatar con iniciales + nombre y correo como un solo link */
.usr-fila[b-vhm6xf4qbw] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    color: var(--text-primary);
    min-width: 0;
    max-width: 100%;
    border-radius: var(--radius-sm);
}

.usr-fila:hover .ds-cell-main[b-vhm6xf4qbw] { color: var(--primary-text); }

.usr-fila-texto[b-vhm6xf4qbw] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.35;
}

.usr-fila-texto .ds-cell-main[b-vhm6xf4qbw],
.usr-fila-texto .ds-cell-sub[b-vhm6xf4qbw] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.usr-avatar[b-vhm6xf4qbw] {
    width: 36px;
    height: 36px;
    font-size: var(--fs-caption);
    letter-spacing: 0.02em;
    border: 1px solid color-mix(in srgb, var(--tono) 30%, transparent);
    background: color-mix(in srgb, var(--tono) 16%, var(--card));
    color: color-mix(in srgb, var(--tono) 65%, var(--text-primary));
}

.usr-tono-1[b-vhm6xf4qbw] { --tono: var(--chart-1); }
.usr-tono-2[b-vhm6xf4qbw] { --tono: var(--chart-2); }
.usr-tono-3[b-vhm6xf4qbw] { --tono: var(--chart-3); }
.usr-tono-4[b-vhm6xf4qbw] { --tono: var(--chart-7); }
.usr-tono-5[b-vhm6xf4qbw] { --tono: var(--chart-5); }
.usr-tono-6[b-vhm6xf4qbw] { --tono: var(--chart-6); }

.is-inactivo .usr-avatar[b-vhm6xf4qbw] { filter: grayscale(1); opacity: 0.6; }
.is-inactivo .ds-cell-main[b-vhm6xf4qbw] { color: var(--text-muted); }

.usr-dueno[b-vhm6xf4qbw] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    margin-left: var(--space-1);
    padding: 0.05rem 0.4rem;
    border-radius: var(--radius-full);
    background: var(--warning-soft);
    color: var(--warning-text);
    font-size: 0.6875rem;
    font-weight: 600;
    vertical-align: 0.1em;
}

.usr-pendientes[b-vhm6xf4qbw] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.15rem 0.55rem;
    border-radius: var(--radius-full);
    border: 1px solid color-mix(in srgb, var(--warning) 35%, transparent);
    background: var(--warning-soft);
    color: var(--warning-text);
    font-size: var(--fs-caption);
    font-weight: 600;
    white-space: nowrap;
    text-decoration: none;
}

.usr-pendientes:hover[b-vhm6xf4qbw] { border-color: var(--warning); color: var(--warning-text); }
/* /Components/Pages/Ventas/CarritoVenta.razor.rz.scp.css */
/* Tablet/celular: panel lateral que entra desde la derecha sobre un fondo oscurecido. */
.carrito-fondo[b-a5vxsckoxd] {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background: var(--overlay);
    backdrop-filter: blur(2px);
    animation: carrito-fade-b-a5vxsckoxd var(--dur-base) var(--ease-out);
}

@keyframes carrito-fade-b-a5vxsckoxd {
    from { opacity: 0; }
    to { opacity: 1; }
}

.carrito-panel[b-a5vxsckoxd] {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1045;
    width: min(420px, 100%);
    display: flex;
    flex-direction: column;
    background: var(--surface);
    border-left: 1px solid var(--border);
    box-shadow: var(--shadow-xl);
    transform: translateX(100%);
    visibility: hidden;
    transition: transform var(--dur-slow) var(--ease-out), visibility 0s linear var(--dur-slow);
}

.carrito-panel.abierto[b-a5vxsckoxd] {
    transform: translateX(0);
    visibility: visible;
    transition: transform var(--dur-slow) var(--ease-out), visibility 0s;
}

/* Encabezado */
.carrito-head[b-a5vxsckoxd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--border);
}

.carrito-head-title[b-a5vxsckoxd] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
}

.carrito-head-title h2[b-a5vxsckoxd] {
    margin: 0;
    font-family: var(--font-sans);
    font-size: var(--fs-h3);
    font-weight: 650;
    letter-spacing: -0.01em;
}

.carrito-head-icon[b-a5vxsckoxd] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--radius-md);
    background: var(--primary-soft);
    color: var(--primary-text);
}

/* Lineas */
.carrito-lineas[b-a5vxsckoxd] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: var(--space-2) var(--space-5);
}

.carrito-lista[b-a5vxsckoxd] {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Fila 1: miniatura | nombre y precio | quitar. Fila 2: selector | subtotal. */
.carrito-linea[b-a5vxsckoxd] {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    grid-template-areas:
        "thumb info quitar"
        "thumb cantidad subtotal";
    align-items: center;
    gap: var(--space-2) var(--space-3);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--border);
    animation: ds-fade-up var(--dur-slow) var(--ease-out) both;
}

.carrito-linea:last-child[b-a5vxsckoxd] { border-bottom: 0; }

.carrito-thumb[b-a5vxsckoxd] {
    grid-area: thumb;
    align-self: start;
    width: 44px;
    height: 44px;
    border-radius: var(--radius-md);
    object-fit: cover;
    background: var(--surface-3);
    border: 1px solid var(--border);
}

.carrito-thumb-inicial[b-a5vxsckoxd] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 650;
    color: var(--text-muted);
}

.carrito-linea-info[b-a5vxsckoxd] { grid-area: info; min-width: 0; }

.carrito-linea-nombre[b-a5vxsckoxd] {
    font-weight: 600;
    color: var(--text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.carrito-linea-precio[b-a5vxsckoxd] {
    font-size: var(--fs-caption);
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

.carrito-quitar[b-a5vxsckoxd] {
    grid-area: quitar;
    align-self: start;
    color: var(--text-muted);
}

.carrito-quitar:hover[b-a5vxsckoxd] { color: var(--danger-text); background: var(--danger-soft); }

.carrito-linea-cantidad[b-a5vxsckoxd] { grid-area: cantidad; max-width: 9rem; }

.carrito-linea-subtotal[b-a5vxsckoxd] {
    grid-area: subtotal;
    text-align: right;
    font-weight: 650;
    color: var(--text-primary);
    white-space: nowrap;
}

/* Pie: resumen y cotizar */
.carrito-foot[b-a5vxsckoxd] {
    padding: var(--space-4) var(--space-5) calc(var(--space-4) + env(safe-area-inset-bottom, 0px));
    border-top: 1px solid var(--border);
    background: var(--surface-2);
}

.carrito-resumen[b-a5vxsckoxd] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.3rem var(--space-3);
    margin: 0 0 var(--space-3);
    font-size: var(--fs-sm);
}

.carrito-resumen dt[b-a5vxsckoxd] { font-weight: 400; color: var(--text-secondary); }
.carrito-resumen dd[b-a5vxsckoxd] { margin: 0; text-align: right; font-weight: 600; color: var(--text-primary); }

.carrito-resumen .carrito-total-label[b-a5vxsckoxd] {
    align-self: end;
    margin-top: var(--space-2);
    padding-top: var(--space-3);
    border-top: 1px dashed var(--border-strong);
    font-weight: 600;
    color: var(--text-primary);
}

.carrito-resumen .carrito-total[b-a5vxsckoxd] {
    margin-top: var(--space-2);
    padding-top: var(--space-3);
    border-top: 1px dashed var(--border-strong);
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.1;
}

.carrito-nota[b-a5vxsckoxd] {
    display: flex;
    gap: 0.4rem;
    margin: 0 0 var(--space-3);
    font-size: var(--fs-caption);
    color: var(--text-muted);
}

.carrito-nota[b-a5vxsckoxd] >  .ds-icon { margin-top: 0.15em; }

.carrito-cotizar[b-a5vxsckoxd] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
}

/* Escritorio: panel fijo (sticky) al costado del catalogo, siempre visible. */
@media (min-width: 1200px) {
    .carrito-fondo[b-a5vxsckoxd] { display: none; }

    .carrito-panel[b-a5vxsckoxd],
    .carrito-panel.abierto[b-a5vxsckoxd] {
        position: sticky;
        top: calc(var(--topbar-h) + var(--space-4));
        z-index: auto;
        width: 100%;
        max-height: calc(100vh - var(--topbar-h) - var(--space-8));
        max-height: calc(100dvh - var(--topbar-h) - var(--space-8));
        border: 1px solid var(--border);
        border-radius: var(--radius-lg);
        box-shadow: var(--shadow-sm);
        background: var(--card);
        overflow: hidden;
        transform: none;
        visibility: visible;
        transition: none;
    }

    .carrito-cerrar[b-a5vxsckoxd] { display: none; }
    .carrito-head[b-a5vxsckoxd] { padding: var(--space-4); }
    .carrito-lineas[b-a5vxsckoxd] { padding: var(--space-1) var(--space-4); }
    .carrito-foot[b-a5vxsckoxd] { padding: var(--space-4); }
}
/* /Components/Pages/Ventas/PromocionesProducto.razor.rz.scp.css */
.promo-tabla[b-z0nil8nh1r] { margin-bottom: var(--space-4); }

.promo-num[b-z0nil8nh1r] { font-variant-numeric: tabular-nums; }

.promo-nueva[b-z0nil8nh1r] { margin-top: var(--space-3); }

.promo-form[b-z0nil8nh1r] {
    max-width: 720px;
    margin-top: var(--space-4);
    padding: var(--space-5);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    animation: promo-entra-b-z0nil8nh1r var(--dur-base) var(--ease-out);
}

.promo-form .ds-form-section-title[b-z0nil8nh1r] { margin-bottom: var(--space-4); }

@keyframes promo-entra-b-z0nil8nh1r {
    from { opacity: 0; transform: translateY(6px); }
    to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
    .promo-form[b-z0nil8nh1r] { animation: none; }
}
/* /Components/Pages/Ventas/ReglaDescuentoForm.razor.rz.scp.css */
.rf-agregar[b-i4bpg11kb5] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    align-items: center;
    margin-bottom: var(--space-3);
}

.rf-agregar .form-select[b-i4bpg11kb5] { flex: 1 1 220px; min-width: 0; }

.rf-cantidad[b-i4bpg11kb5] { width: 90px; flex: 0 0 90px; }

.rf-regalos[b-i4bpg11kb5] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.rf-regalos li[b-i4bpg11kb5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-3);
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
}
/* /Components/Pages/Ventas/ReglasDescuento.razor.rz.scp.css */
.rd-tabla[b-gfdmnxwvs2] { border: 0; border-radius: 0; box-shadow: none; }

.rd-num[b-gfdmnxwvs2] { font-variant-numeric: tabular-nums; }

.rd-promos[b-gfdmnxwvs2] { padding: var(--space-5); }

@media (max-width: 575.98px) {
    .rd-promos[b-gfdmnxwvs2] { padding: var(--space-4); }
}
/* /Components/Pages/Ventas/SelectorCantidad.razor.rz.scp.css */
/* Stepper − [n] +: una sola pieza con borde, botones cuadrados de 36px (objetivo tactil comodo). */
.selector-cantidad[b-h52mernbqk] {
    display: flex;
    align-items: stretch;
    width: 100%;
    height: 2.25rem;
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-md);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
    transition: border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}

.selector-cantidad:focus-within[b-h52mernbqk] {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--ring);
}

.selector-cantidad.is-disabled[b-h52mernbqk] {
    background: var(--surface-3);
    box-shadow: none;
}

.selector-btn[b-h52mernbqk] {
    appearance: none;
    flex: 0 0 2.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: var(--text-secondary);
    cursor: pointer;
    transition: background-color var(--dur-fast), color var(--dur-fast);
}

.selector-btn:hover:not(:disabled)[b-h52mernbqk] {
    background: var(--primary-soft);
    color: var(--primary-text);
}

.selector-btn:active:not(:disabled)[b-h52mernbqk] { background: var(--primary-soft-2); }

.selector-btn:disabled[b-h52mernbqk] {
    color: var(--text-disabled);
    cursor: not-allowed;
}

/* El foco lo marca el contenedor (focus-within); el boton solo necesita un anillo interno. */
.selector-btn:focus-visible[b-h52mernbqk] {
    outline: 2px solid var(--primary);
    outline-offset: -2px;
    border-radius: calc(var(--radius-md) - 2px);
}

.selector-input[b-h52mernbqk] {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    border: 0;
    border-left: 1px solid var(--border);
    border-right: 1px solid var(--border);
    background: transparent;
    color: var(--text-primary);
    font-size: var(--fs-body);
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    text-align: center;
    outline: none;
    padding: 0 0.25rem;
}

.selector-input:disabled[b-h52mernbqk] { color: var(--text-muted); }

/* Sin las flechitas nativas del input number: ya estan los botones − / + al lado. */
.selector-input[b-h52mernbqk] {
    -moz-appearance: textfield;
    appearance: textfield;
}

.selector-input[b-h52mernbqk]::-webkit-outer-spin-button,
.selector-input[b-h52mernbqk]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
/* /Components/Pages/Ventas/TarjetaProducto.razor.rz.scp.css */
/* Tarjeta de producto del catalogo (venta y transferencia). */
.tp[b-leyhxj5yoc] {
    position: relative;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xs);
    overflow: hidden;
    transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}

.tp:hover[b-leyhxj5yoc] {
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
    border-color: var(--border-strong);
}

/* Elegido: borde de marca (no solo color: tambien lleva el badge "n en el carrito"). */
.tp.is-seleccionado[b-leyhxj5yoc] {
    border-color: var(--primary);
    box-shadow: 0 0 0 1px var(--primary), var(--shadow-sm);
}

.tp.is-sin-stock:hover[b-leyhxj5yoc] { transform: none; box-shadow: var(--shadow-xs); border-color: var(--border); }
.tp.is-sin-stock .tp-media > img[b-leyhxj5yoc],
.tp.is-sin-stock .tp-inicial[b-leyhxj5yoc] { filter: grayscale(1); opacity: 0.55; }
.tp.is-sin-stock .tp-nombre[b-leyhxj5yoc],
.tp.is-sin-stock .tp-precio[b-leyhxj5yoc] { color: var(--text-muted); }

/* Cuadrado fijo: las fotos ya se guardan 1:1 (HU4-B), contain cubre las viejas sin reprocesar. */
.tp-media[b-leyhxj5yoc] {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / 1;
    background:
        radial-gradient(circle at 30% 20%, color-mix(in srgb, var(--primary) 7%, transparent), transparent 62%),
        var(--surface-2);
    border-bottom: 1px solid var(--border);
    overflow: hidden;
}

.tp-media > img[b-leyhxj5yoc] {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform var(--dur-slow) var(--ease-out);
}

.tp:hover:not(.is-sin-stock) .tp-media > img[b-leyhxj5yoc] { transform: scale(1.04); }

.tp-inicial[b-leyhxj5yoc] {
    font-family: var(--font-display);
    font-size: 2.75rem;
    font-weight: 700;
    color: var(--text-disabled);
    user-select: none;
}

.tp-estado[b-leyhxj5yoc] {
    position: absolute;
    top: var(--space-2);
    left: var(--space-2);
}

.tp-estado[b-leyhxj5yoc]  .ds-status { backdrop-filter: blur(6px); box-shadow: var(--shadow-xs); }

.tp-seleccion[b-leyhxj5yoc] {
    position: absolute;
    left: var(--space-2);
    bottom: var(--space-2);
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    max-width: calc(100% - var(--space-4));
    padding: 0.2rem 0.55rem;
    border-radius: var(--radius-full);
    background: var(--primary);
    color: var(--on-primary);
    font-size: var(--fs-caption);
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    box-shadow: var(--shadow-md);
    animation: tp-pop-b-leyhxj5yoc var(--dur-slow) var(--ease-out);
}

@keyframes tp-pop-b-leyhxj5yoc {
    0% { transform: scale(0.7); opacity: 0; }
    60% { transform: scale(1.08); opacity: 1; }
    100% { transform: scale(1); }
}

.tp-body[b-leyhxj5yoc] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    flex: 1 1 auto;
    min-width: 0;
    padding: var(--space-3) var(--space-3) var(--space-2);
}

.tp-meta[b-leyhxj5yoc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2);
    min-width: 0;
    font-size: var(--fs-caption);
    color: var(--text-muted);
}

.tp-meta > span[b-leyhxj5yoc] {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 500;
}

.tp-meta > code[b-leyhxj5yoc] { flex-shrink: 0; max-width: 55%; overflow: hidden; text-overflow: ellipsis; }

.tp-nombre[b-leyhxj5yoc] {
    margin: 0;
    font-family: var(--font-sans);
    font-size: var(--fs-body);
    font-weight: 650;
    letter-spacing: -0.01em;
    line-height: 1.3;
    color: var(--text-primary);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.6em;
}

.tp-precio[b-leyhxj5yoc] {
    margin-top: 0.1rem;
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.2;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
}

.tp-volumen[b-leyhxj5yoc] {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.3rem;
    align-self: flex-start;
    padding: 0.15rem 0.45rem;
    border-radius: var(--radius-sm);
    background: var(--success-soft);
    color: var(--success-text);
    font-size: var(--fs-caption);
    line-height: 1.35;
}

.tp-volumen[b-leyhxj5yoc] >  .ds-icon { margin-top: 0.15em; }

.tp-stock[b-leyhxj5yoc] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: auto;
    padding-top: 0.2rem;
    font-size: var(--fs-caption);
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

.tp-stock.is-danger[b-leyhxj5yoc] { color: var(--danger-text); font-weight: 500; }

.tp-accion[b-leyhxj5yoc] { padding: 0 var(--space-3) var(--space-3); }

/* Accion rapida: mismo alto que el selector para que la tarjeta no "salte" al agregar. */
.tp-agregar[b-leyhxj5yoc] {
    --bs-btn-color: var(--primary-text);
    --bs-btn-bg: var(--primary-soft);
    --bs-btn-border-color: transparent;
    --bs-btn-hover-color: var(--on-primary);
    --bs-btn-hover-bg: var(--primary);
    --bs-btn-hover-border-color: var(--primary);
    --bs-btn-active-color: var(--on-primary);
    --bs-btn-active-bg: var(--primary-active);
    --bs-btn-active-border-color: var(--primary-active);
    --bs-btn-disabled-color: var(--text-disabled);
    --bs-btn-disabled-bg: var(--surface-3);
    --bs-btn-disabled-border-color: transparent;
    --bs-btn-disabled-opacity: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    width: 100%;
    height: 2.25rem;
    box-shadow: none;
}

@media (max-width: 575.98px) {
    .tp-body[b-leyhxj5yoc] { padding: var(--space-2) var(--space-2) var(--space-2); }
    .tp-accion[b-leyhxj5yoc] { padding: 0 var(--space-2) var(--space-2); }
    .tp-meta > code[b-leyhxj5yoc] { display: none; }
    .tp-inicial[b-leyhxj5yoc] { font-size: 2.25rem; }
}
/* /Components/Pages/Ventas/VentaDetalle.razor.rz.scp.css */
.vd-layout[b-yysl6b3lcv] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 340px;
    gap: var(--space-5);
    align-items: start;
}

.vd-meta[b-yysl6b3lcv] { display: inline-flex; align-items: center; gap: var(--space-1); color: var(--text-muted); margin-left: var(--space-3); }

.vd-num[b-yysl6b3lcv] { font-variant-numeric: tabular-nums; }

.vd-tabla[b-yysl6b3lcv] { border: 0; border-radius: 0; box-shadow: none; }

.vd-resumen[b-yysl6b3lcv] { position: sticky; top: var(--space-5); display: flex; flex-direction: column; gap: var(--space-4); }

.vd-totales[b-yysl6b3lcv] { margin: 0; display: flex; flex-direction: column; gap: var(--space-3); }

.vd-totales > div[b-yysl6b3lcv] { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-3); }

.vd-totales dt[b-yysl6b3lcv] { font-weight: 500; color: var(--text-secondary); }

.vd-totales dd[b-yysl6b3lcv] { margin: 0; font-variant-numeric: tabular-nums; font-weight: 600; }

.vd-descuento[b-yysl6b3lcv] { color: var(--success); }

.vd-total[b-yysl6b3lcv] { padding-top: var(--space-3); border-top: 1px solid var(--border); }

.vd-total dt[b-yysl6b3lcv] { color: var(--text-primary); font-weight: 650; }

.vd-total dd[b-yysl6b3lcv] { font-size: 1.4rem; font-weight: 700; letter-spacing: -0.02em; }

.vd-nota[b-yysl6b3lcv] { display: flex; align-items: center; gap: var(--space-2); color: var(--text-muted); font-size: var(--fs-sm); margin: 0; }

@media (max-width: 991.98px) {
    .vd-layout[b-yysl6b3lcv] { grid-template-columns: minmax(0, 1fr); }
    .vd-resumen[b-yysl6b3lcv] { position: static; }
}
/* /Components/Pages/Ventas/VentaNueva.razor.rz.scp.css */
/* ---- Paso 1: catalogo + carrito ---------------------------------------- */

/* Selector de ubicacion en el encabezado, con icono adentro. */
.pos-ubicacion[b-viawfusanf] {
    position: relative;
    display: inline-flex;
    align-items: center;
    margin: 0;
}

.pos-ubicacion[b-viawfusanf] >  .ds-icon {
    position: absolute;
    left: 0.7rem;
    color: var(--text-muted);
    pointer-events: none;
}

.pos-ubicacion > .form-select[b-viawfusanf] {
    min-width: 16rem;
    padding-left: 2.2rem;
    font-weight: 500;
}

/* Escritorio: catalogo a la izquierda y carrito fijo a la derecha. */
.pos[b-viawfusanf] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
    align-items: start;
}

.pos-catalogo[b-viawfusanf] { min-width: 0; }

@media (min-width: 1200px) {
    .pos.con-carrito[b-viawfusanf] { grid-template-columns: minmax(0, 1fr) 320px; }
}

@media (min-width: 1400px) {
    .pos.con-carrito[b-viawfusanf] { grid-template-columns: minmax(0, 1fr) 360px; }
}

/* Buscador y categorias quedan a mano al bajar por el catalogo (debajo del header fijo). */
.pos-toolbar[b-viawfusanf] {
    position: sticky;
    top: var(--topbar-h);
    z-index: 5;
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
    padding: var(--space-3) 0;
    background: var(--background);
    box-shadow: 0 1px 0 var(--border);
}

.pos-toolbar-fila[b-viawfusanf] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
}

.pos-buscar[b-viawfusanf] { max-width: 28rem; }

.pos-categorias[b-viawfusanf] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.pos-chip[b-viawfusanf] {
    appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    height: 2rem;
    padding: 0 0.8rem;
    border-radius: var(--radius-full);
    border: 1px solid var(--border-strong);
    background: var(--surface);
    color: var(--text-secondary);
    font-size: var(--fs-sm);
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);
}

.pos-chip:hover[b-viawfusanf] { border-color: var(--text-disabled); color: var(--text-primary); }

.pos-chip[aria-pressed="true"][b-viawfusanf] {
    background: var(--text-primary);
    border-color: var(--text-primary);
    color: var(--surface);
}

.pos-chip-count[b-viawfusanf] {
    font-size: var(--fs-caption);
    font-variant-numeric: tabular-nums;
    color: var(--text-muted);
}

.pos-chip[aria-pressed="true"] .pos-chip-count[b-viawfusanf] { color: inherit; opacity: 0.7; }

.pos-grilla[b-viawfusanf] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: var(--space-4);
}

/* La columna se estira al alto del catalogo para que el panel sticky tenga recorrido. */
.pos-carrito[b-viawfusanf] { min-width: 0; align-self: stretch; }

/* Fuera de escritorio el carrito es un panel fixed: la columna no debe ocupar lugar en la grilla. */
@media (max-width: 1199.98px) {
    .pos-carrito[b-viawfusanf] { display: contents; }
}

/* Barra flotante del carrito: sticky al pie del contenido (respeta el ancho de la sidebar). */
.pos-barra[b-viawfusanf] {
    position: sticky;
    bottom: calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
    z-index: 10;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-top: var(--space-5);
    padding: var(--space-2) var(--space-2) var(--space-2) var(--space-3);
    background: var(--surface);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-xl);
    animation: ds-fade-up var(--dur-slow) var(--ease-out) both;
}

.pos-barra-carrito[b-viawfusanf] {
    appearance: none;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-1);
    border: 0;
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--text-primary);
    text-align: left;
    cursor: pointer;
}

.pos-barra-carrito:hover .pos-barra-sub[b-viawfusanf] { color: var(--primary-text); }

.pos-barra-icono[b-viawfusanf] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: var(--radius-md);
    background: var(--primary-soft);
    color: var(--primary-text);
}

/* Numero del carrito (pedido explicito del usuario: bien visible). */
.pos-barra-badge[b-viawfusanf] {
    position: absolute;
    top: -0.45rem;
    right: -0.45rem;
    min-width: 1.35rem;
    height: 1.35rem;
    padding: 0 0.3rem;
    border-radius: var(--radius-full);
    background: var(--danger);
    color: var(--on-primary);
    border: 2px solid var(--surface);
    font-size: 0.6875rem;
    font-weight: 700;
    line-height: calc(1.35rem - 4px);
    text-align: center;
    font-variant-numeric: tabular-nums;
    animation: pos-badge-pop-b-viawfusanf var(--dur-slow) ease;
}

@keyframes pos-badge-pop-b-viawfusanf {
    0% { transform: scale(0.6); }
    60% { transform: scale(1.25); }
    100% { transform: scale(1); }
}

.pos-barra-texto[b-viawfusanf] {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.25;
}

.pos-barra-total[b-viawfusanf] {
    font-family: var(--font-display);
    font-size: 1.0625rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.pos-barra-sub[b-viawfusanf] {
    font-size: var(--fs-caption);
    color: var(--text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color var(--dur-fast);
}

.pos-barra-cotizar[b-viawfusanf] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    flex-shrink: 0;
    height: 2.75rem;
    padding-inline: 1.1rem;
    border-radius: var(--radius-lg);
}

@media (min-width: 1200px) {
    .pos-barra[b-viawfusanf] { display: none; }
}

@media (max-width: 767.98px) {
    /* Las categorias pasan a una sola fila con scroll horizontal. */
    .pos-categorias[b-viawfusanf] {
        flex-wrap: nowrap;
        overflow-x: auto;
        scrollbar-width: none;
        margin-inline: calc(var(--space-4) * -1);
        padding-inline: var(--space-4);
    }

    .pos-categorias[b-viawfusanf]::-webkit-scrollbar { display: none; }
}

@media (max-width: 575.98px) {
    .pos-ubicacion[b-viawfusanf],
    .pos-ubicacion > .form-select[b-viawfusanf] { width: 100%; min-width: 0; }

    .pos-buscar[b-viawfusanf] { max-width: none; }
    .pos-toolbar-fila .ds-result-count[b-viawfusanf] { display: none; }

    .pos-grilla[b-viawfusanf] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--space-2);
    }
}

/* ---- Paso 2: cotizacion y cobro ------------------------------------------ */

.pos-numero[b-viawfusanf] { font-family: var(--font-mono); font-size: 0.95em; color: var(--text-primary); }

.pos-vence[b-viawfusanf] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    margin-bottom: var(--space-4);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-lg);
    border: 1px solid color-mix(in srgb, var(--warning) 30%, transparent);
    background: var(--warning-soft);
    color: var(--warning-text);
    font-size: var(--fs-sm);
}

.pos-vence strong[b-viawfusanf] { color: var(--text-primary); }

.pos-totales[b-viawfusanf] {
    padding: var(--space-3) var(--space-5) var(--space-4);
    border-top: 1px solid var(--border);
    background: var(--surface-2);
}

.pos-totales .pos-total-label[b-viawfusanf],
.pos-totales .pos-total[b-viawfusanf] {
    font-weight: 650;
    color: var(--text-primary);
}

.pos-totales .pos-total[b-viawfusanf] {
    font-family: var(--font-display);
    font-size: 1.375rem;
    letter-spacing: -0.02em;
}

.pos-cobro[b-viawfusanf] {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.pos-cobro-total[b-viawfusanf] {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: var(--space-4);
    border-radius: var(--radius-lg);
    background: var(--primary-soft);
    border: 1px solid var(--primary-soft-2);
}

.pos-cobro-total > span[b-viawfusanf] { font-size: var(--fs-sm); color: var(--primary-text); font-weight: 500; }

.pos-cobro-total > strong[b-viawfusanf] {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem);
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.1;
    color: var(--text-primary);
}

.pos-cobro-bloque[b-viawfusanf] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

/* Medio de pago: segmentado a todo el ancho, botones parejos. */
.pos-pago[b-viawfusanf] { display: flex; width: 100%; }

.pos-pago > button[b-viawfusanf] {
    flex: 1 1 0;
    justify-content: center;
    padding: 0.55rem 0.5rem;
    font-size: var(--fs-body);
}

.pos-qrs[b-viawfusanf] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: var(--space-3);
}

.pos-qr[b-viawfusanf] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
    padding: var(--space-3);
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    background: var(--surface);
    text-align: center;
}

.pos-qr > img[b-viawfusanf] {
    width: 100%;
    max-width: 150px;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    border-radius: var(--radius-sm);
}

.pos-qr > figcaption[b-viawfusanf] { display: flex; flex-direction: column; min-width: 0; }
.pos-qr-nombre[b-viawfusanf] { font-weight: 600; font-size: var(--fs-sm); color: var(--text-primary); }
.pos-qr-sub[b-viawfusanf] { font-size: var(--fs-caption); color: var(--text-muted); }

.pos-cobro-acciones[b-viawfusanf] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding-top: var(--space-4);
    border-top: 1px solid var(--border);
}

.pos-cobro-acciones .btn[b-viawfusanf] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
}

.pos-cancelar-confirmar[b-viawfusanf] {
    padding: var(--space-3);
    border-radius: var(--radius-md);
    border: 1px solid color-mix(in srgb, var(--danger) 25%, transparent);
    background: var(--danger-soft);
}

.pos-cancelar-confirmar p[b-viawfusanf] {
    margin: 0 0 var(--space-2);
    font-size: var(--fs-sm);
    color: var(--danger-text);
}
/* /Components/Pages/Ventas/Ventas.razor.rz.scp.css */
.ventas-numero[b-ft7qynulvl] {
    font-weight: 650;
    font-variant-numeric: tabular-nums;
    color: var(--text-primary);
    text-decoration: none;
    transition: color var(--dur-fast) var(--ease-out);
}

.ventas-numero:hover[b-ft7qynulvl] { color: var(--primary-text); text-decoration: underline; }

.ventas-numero:focus-visible[b-ft7qynulvl] {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
}

.ventas-fecha[b-ft7qynulvl] { color: var(--text-primary); font-variant-numeric: tabular-nums; }

.ventas-ubicacion[b-ft7qynulvl] { display: inline-flex; align-items: center; gap: var(--space-2); }

.ventas-total[b-ft7qynulvl] { font-weight: 650; font-variant-numeric: tabular-nums; }

.ventas-total.is-anulada[b-ft7qynulvl] { color: var(--text-muted); text-decoration: line-through; font-weight: 500; }

.ventas-fila-inactiva td[b-ft7qynulvl] { opacity: 0.88; }

[b-ft7qynulvl] .ventas-girando { animation: ventas-giro-b-ft7qynulvl 0.9s linear infinite; }

@keyframes ventas-giro-b-ft7qynulvl { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
    [b-ft7qynulvl] .ventas-girando { animation: none; }
}
/* /Components/UI/CampoPassword.razor.rz.scp.css */
.campo-pass[b-5cc8djdhpk] { position: relative; }

.campo-pass[b-5cc8djdhpk] >  .ds-icon:first-child {
    position: absolute;
    left: 0.9rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
    pointer-events: none;
    z-index: 1;
}

.campo-pass[b-5cc8djdhpk]  .form-control { padding-left: 2.6rem; padding-right: 2.8rem; }

.campo-pass-toggle[b-5cc8djdhpk] {
    position: absolute;
    right: 0.4rem;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    color: var(--text-muted);
    border-radius: var(--radius-md);
    cursor: pointer;
}

.campo-pass-toggle:hover[b-5cc8djdhpk] { background: var(--surface-3); color: var(--text-primary); }
.campo-pass-toggle[aria-pressed="true"][b-5cc8djdhpk] { color: var(--primary-text); }
