/* Veltrix · skeleton loader (shimmer placeholders for crypto lists and details) */
:root{--vx-a:#f0f1f4;--vx-b:#e6e7eb}
.vx,.vx-busy #marketDetailPrice,.vx-busy #marketDetailChange,.vx-busy #marketChartPricePill{background:linear-gradient(100deg,var(--vx-a) 30%,var(--vx-b) 48%,var(--vx-a) 66%);background-size:300% 100%;animation:vxShimmer 1.3s ease-in-out infinite}
@keyframes vxShimmer{0%{background-position:100% 0}100%{background-position:0 0}}
.vx-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.vx-row{display:flex;align-items:center;gap:12px;min-height:62px;padding:11px 2px;border-bottom:1px solid #f0f1f4;pointer-events:none}
.vx-row:last-child{border-bottom:0}
.vx-logo{flex:none;width:36px;height:36px;border-radius:50%}
.vx-tile{flex:none;width:40px;height:40px;border-radius:14px}
.vx-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.vx-col.r{flex:none;width:26%;align-items:flex-end}
.vx-l1{height:12px;width:58%;border-radius:6px}
.vx-l2{height:9px;width:34%;border-radius:5px}
.vx-r1{height:12px;width:100%;border-radius:6px}
.vx-r2{height:9px;width:58%;border-radius:5px}
.vx-row:nth-child(3n+2) .vx-l1{width:46%}.vx-row:nth-child(3n) .vx-l1{width:66%}
.vx-row:nth-child(2n) .vx-l2{width:42%}
.vx-row:nth-child(3n+2) .vx-r1{width:84%}.vx-row:nth-child(3n) .vx-r1{width:92%}
.vx-row{animation:vxIn .25s ease both}
@keyframes vxIn{from{opacity:0}to{opacity:1}}
/* inside the picker pop-ups the rows sit on rounded cards, keep them tidy */
#cvPickList .vx-row,#sdList .vx-row{padding:11px 10px}
#txList .vx-row,#txAllList .vx-row{min-height:66px;padding:12px 14px;margin-bottom:8px;border:1.5px solid #eef0f3;border-radius:18px;background:#fff}
#txAllList .vx-row{margin-bottom:7px;border-radius:16px}

/* detail views: while loading, the real numbers/logo are hidden behind shimmer */
.vx-busy #marketDetailPrice,.vx-busy #marketDetailChange,.vx-busy #marketChartPricePill{color:transparent!important;border-radius:8px;border-color:transparent!important;text-shadow:none;user-select:none}
.vx-busy #marketDetailPrice{display:inline-block;min-width:150px}
.vx-busy #marketDetailChange{display:inline-block;min-width:90px}
.vx-busy .wd-detail-coin img{opacity:0}
.wd-detail-coin img{transition:opacity .25s}
.vx-dep-busy #depositQrImage{background:linear-gradient(100deg,var(--vx-a) 30%,var(--vx-b) 48%,var(--vx-a) 66%);background-size:300% 100%;animation:vxShimmer 1.3s ease-in-out infinite;border-radius:16px;min-height:200px}
.vx-dep-busy #depositQrImage *{visibility:hidden}
.vx-dep-busy #depositAddress,.vx-dep-busy #depositNetwork{display:block;color:transparent!important;border-radius:8px;background:linear-gradient(100deg,var(--vx-a) 30%,var(--vx-b) 48%,var(--vx-a) 66%);background-size:300% 100%;animation:vxShimmer 1.3s ease-in-out infinite;user-select:none}
.vx-dep-busy #depositAddress{min-height:18px;width:80%}
.vx-dep-busy #depositNetwork{min-height:34px}
@media (prefers-reduced-motion:reduce){.vx,.vx-row,.vx-busy #marketDetailPrice,.vx-busy #marketDetailChange,.vx-dep-busy #depositQrImage{animation:none}}
