/* Shared customer-facing loading language. Match content, never invent product data. */
.bb-skeleton { position: relative; display: grid; width: 100%; min-width: 0; gap: 12px; grid-column: 1 / -1; box-sizing: border-box; pointer-events: none; }
.bb-skeleton *, .bb-skeleton *::before, .bb-skeleton *::after { box-sizing: border-box; }
.bb-skeleton-label { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip-path: inset(50%); white-space: nowrap; border: 0 !important; }
.bb-skeleton-block { position: relative; display: block; flex-shrink: 0; overflow: hidden; border-radius: 6px; background: #e8eef7; background: color-mix(in srgb, var(--bw-primary, #2868ce) 10%, #f7f9fc); }
.bb-skeleton-block::after { position: absolute; inset: 0; content: ''; background: linear-gradient(100deg, transparent 15%, rgba(255,255,255,.68) 48%, transparent 82%); transform: translateX(-100%); }
.bb-skeleton-line { width: 88%; height: 13px; }
.bb-skeleton-line.short { width: 58%; height: 10px; }
.bb-skeleton-copy { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 12px; }
.bb-skeleton-cover { width: 100%; height: auto; aspect-ratio: 1; border-radius: 10px; }
.bb-skeleton-icon { width: 46px; height: 46px; border-radius: 10px; }
.bb-skeleton-price { width: 86px; max-width: 42%; height: 24px; }
.bb-skeleton-button { width: 82px; max-width: 32%; height: 36px; border-radius: 7px; }
.bb-skeleton-field { width: 100%; height: 44px; }
.bb-skeleton--category, .bb-skeleton--product { grid-template-columns: inherit; gap: inherit; }
.bb-skeleton-card { min-width: 0; box-shadow: none !important; }
.bb-skeleton-card .bluewind-product-main { align-items: center; }
.bb-skeleton-stock { margin-top: auto; padding-top: 20px; padding-bottom: 10px; }
.bb-skeleton-footer { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 12px; }
.bluewind-home .bb-skeleton-card .bluewind-product-body { min-height: 212px; padding-top: 24px; }
.bb-skeleton--category .bb-skeleton-line { width: 48%; }
.bluewind-home .bb-skeleton--category .bb-skeleton-card { background: #f8faff; }
.bb-skeleton--category .bb-skeleton-icon { width: 48px; height: 48px; flex: 0 0 48px; }
.bb-skeleton-row { display: flex; min-width: 0; align-items: center; gap: 16px; min-height: 90px; padding: 20px; border: 1px solid #e1e9f5; border-radius: 10px; background: #fff; }
.bb-skeleton--tree .bb-skeleton-row { min-height: 48px; padding: 9px 12px; border: 0; }
.bb-skeleton--tree .bb-skeleton-icon { width: 28px; height: 28px; }
.bb-skeleton--tree .bb-skeleton-button, .bb-skeleton--tree .short { display: none; }
.bb-skeleton--payment { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.bb-skeleton--payment .bb-skeleton-row { min-height: 52px; padding: 10px; gap: 8px; }
.bb-skeleton--payment .bb-skeleton-icon { width: 28px; height: 28px; }
.bb-skeleton--payment .short, .bb-skeleton--payment .bb-skeleton-button { display: none; }
.bb-skeleton--form, .bb-skeleton--page { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bb-skeleton-form { display: flex; min-width: 0; flex-direction: column; gap: 16px; padding: 24px; background: #fff; border: 1px solid #e1e9f5; border-radius: 10px; }
.bb-skeleton--form { grid-template-columns: minmax(0, 1fr); }
.bb-skeleton--detail .bb-skeleton-icon, .bb-skeleton--detail .bb-skeleton-button { display: none; }
.bb-skeleton--table .bb-skeleton-row { min-height: 58px; padding: 12px 16px; border-radius: 6px; }
.bb-skeleton--table .bb-skeleton-icon { width: 28px; height: 28px; }
.bb-skeleton--table .bb-skeleton-button { width: 18%; height: 12px; }
.bb-skeleton-host { width: 100%; min-width: 0; }
.bluewind-payment-loading.bb-skeleton-host, .order-secret-loading.bb-skeleton-host,
.query-state.loading-state.bb-skeleton-host, .order-overview-state.bb-skeleton-host { padding: 12px 0; background: transparent; border: 0; }
.bluewind-payment-loading.bb-skeleton-host { grid-column: 1 / -1; }
.store-toolbox-loading:has(.bb-skeleton) { left: 16px; right: 16px; padding: 24px; min-height: 300px; transform: none; }
.store-toolbox-loading > .bb-skeleton { max-width: 700px; margin: auto; }
.bb-skeleton-host[hidden], .store-toolbox-loading[hidden] { display: none !important; }
.bb-skeleton-page-host { position: relative; }
.bb-skeleton-page-host > :not(.bb-skeleton-page-overlay) { visibility: hidden; }
.bb-skeleton-page-overlay { position: absolute; inset: 0; z-index: 10; min-height: 290px; padding: 16px; background: #f6f8fc; }
/* Bootstrap Table owns visibility and error handling; only replace its content visual. */
body.bluewind-account-body .bootstrap-table .fixed-table-body .fixed-table-loading { padding: 12px; min-height: 280px; }
body.bluewind-account-body .bootstrap-table .fixed-table-body .fixed-table-loading .loading-wrap { display: block !important; width: 100%; max-width: none; padding: 0; border: 0; box-shadow: none; background: transparent; }
body.bluewind-account-body .bootstrap-table .fixed-table-loading .loading-wrap::before,
body.bluewind-account-body .bootstrap-table .fixed-table-loading .animation-wrap { display: none !important; }
body.bluewind-account-body .bootstrap-table .fixed-table-loading .loading-text { display: block !important; width: 100%; }
body.bluewind-account-body .purchase-record-loading.bb-skeleton-host { padding: 16px; }
/* Keep each option's intrinsic size and wrapping; never cover the whole field. */
.bluewind-spec-field.is-loading::after { display: none; content: none; }
.bluewind-theme .bluewind-spec-field.is-loading .bluewind-sku-list .sku {
    position: relative;
    overflow: hidden;
    visibility: hidden;
    pointer-events: none;
}
.bluewind-theme .bluewind-spec-field.is-loading .bluewind-sku-list .sku::before,
.bluewind-theme .bluewind-spec-field.is-loading .bluewind-sku-list .sku::after {
    position: absolute;
    display: block;
    inset: 0;
    width: auto;
    height: auto;
    margin: 0;
    border: 0;
    border-radius: inherit;
    visibility: visible;
    pointer-events: none;
    content: '';
}
.bluewind-theme .bluewind-spec-field.is-loading .bluewind-sku-list .sku::before {
    background: #e8eef7;
    background: color-mix(in srgb, var(--bw-primary, #2868ce) 10%, #f7f9fc);
    box-shadow: inset 0 0 0 1px #dce6f4;
    transform: none;
}
.bluewind-theme .bluewind-spec-field.is-loading .bluewind-sku-list .sku::after {
    background: linear-gradient(100deg, transparent 15%, rgba(255,255,255,.68) 48%, transparent 82%);
    transform: translateX(-100%);
}
.bluewind-theme .abacus .price > .icon-spin { display: inline-block; width: 92px; height: 26px; border-radius: 6px; background: #e8eef7; animation: none; }
.bluewind-theme .abacus .price > .icon-spin::before, .bluewind-theme .abacus .price > .icon-spin::after { content: none; }
@media (prefers-reduced-motion: no-preference) {
    .bb-skeleton-block::after { animation: bb-skeleton-shimmer 1.8s ease-in-out infinite; }
    .bluewind-theme .bluewind-spec-field.is-loading .bluewind-sku-list .sku::after { animation: bb-skeleton-shimmer 1.8s ease-in-out infinite; }
}
@keyframes bb-skeleton-shimmer { to { transform: translateX(100%); } }
@media (max-width: 900px) {
    .bluewind-home .bb-skeleton--category .bb-skeleton-card { flex-direction: column; justify-content: flex-start; min-height: 96px; gap: 10px; padding: 10px 4px 8px; }
    .bluewind-home .bb-skeleton--category .bb-skeleton-icon { width: 38px; height: 38px; flex: 0 0 38px; }
    .bluewind-home .bb-skeleton--category .bb-skeleton-line { width: 72%; height: 10px; }
    .bluewind-home .bb-skeleton-card .bluewind-product-body { min-height: 190px; padding: 16px 12px 12px; }
    .bb-skeleton-row { padding: 14px; gap: 10px; }
    .bb-skeleton--page { grid-template-columns: minmax(0, 1fr); }
    .bb-skeleton--payment { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bb-skeleton--payment .bb-skeleton-row:nth-of-type(n+3) { display: none; }
}
