/* DiyYarn：前后台共同使用的纯展示规则；这里不写主题图库选择器或后台表单样式。 */
.dyvc-badges { position:static; pointer-events:none; }
.dyvc-badge-stack { position:absolute; z-index:8; display:flex; flex-direction:column; align-items:flex-start;
    gap:var(--dyvc-stack-gap,5px); width:max-content; max-width:calc(100% - 16px); pointer-events:none; }
.dyvc-top-left { top:var(--dyvc-badge-offset,10px); left:var(--dyvc-badge-offset,10px); }
.dyvc-top-right { top:var(--dyvc-badge-offset,10px); right:var(--dyvc-badge-offset,10px); align-items:flex-end; }
.dyvc-bottom-left { bottom:var(--dyvc-badge-offset,10px); left:var(--dyvc-badge-offset,10px); }
.dyvc-bottom-right { bottom:var(--dyvc-badge-offset,10px); right:var(--dyvc-badge-offset,10px); align-items:flex-end; }
.dyvc-badge { position:relative; display:inline-flex; align-items:center; justify-content:center; gap:5px;
    box-sizing:border-box; min-width:0; max-width:100%; padding:var(--dyvc-badge-pad-v,5px) var(--dyvc-badge-pad-h,8px); line-height:1.2;
    border-radius:var(--dyvc-radius,7px); font-size:var(--dyvc-label-size,14px); font-weight:700;
    color:var(--dyvc-label-color,#fff); background:var(--dyvc-label-bg,#f45c50);
    overflow-wrap:anywhere; text-align:center; box-shadow:none; }
.dyvc-badge.dyvc-circle { flex:none; width:var(--dyvc-active-circle-size,var(--dyvc-circle-size,68px)); height:var(--dyvc-active-circle-size,var(--dyvc-circle-size,68px));
    max-width:none; padding:6px; border-radius:50%; color:var(--dyvc-circle-color,#151515);
    background:var(--dyvc-circle-bg,#ffda3f); white-space:normal; font-size:clamp(11px,1vw,15px); }
.dyvc-badge.dyvc-id-woo-sale{font-style:var(--dyvc-sale-font-style,normal);font-weight:var(--dyvc-sale-font-weight,700);transform:rotate(var(--dyvc-sale-rotation,0deg));transform-origin:center center;}
/* 与后台预览共用完全相同的 Sale 文字结构；圆形两行、矩形一行。 */
.dyvc-sale-parts{display:inline-flex;align-items:center;justify-content:center;gap:3px;min-width:0;max-width:100%;flex-wrap:wrap;line-height:1.05;}
.dyvc-badge.dyvc-circle .dyvc-sale-parts{flex-direction:column;gap:1px;}
.dyvc-badge.dyvc-id-woo-sale .dyvc-sale-word{font-size:var(--dyvc-active-sale-word-size,var(--dyvc-sale-word-size,13px));font-weight:var(--dyvc-sale-word-weight,400);line-height:1.1;}
.dyvc-badge.dyvc-id-woo-sale .dyvc-sale-percent{font-size:var(--dyvc-active-sale-percent-size,var(--dyvc-sale-percent-size,23px));font-weight:var(--dyvc-sale-percent-weight,700);line-height:1;white-space:nowrap;}
.dyvc-badge.dyvc-new { color:var(--dyvc-new-color,#fff); background:var(--dyvc-new-bg,#25b6c7); font-size:var(--dyvc-new-font-size,14px);font-weight:var(--dyvc-new-font-weight,700); }
.dyvc-badge.dyvc-tier { color:var(--dyvc-bulk-color,#fff); background:var(--dyvc-bulk-bg,#f45c50); font-size:var(--dyvc-bulk-font-size,14px);font-weight:var(--dyvc-bulk-font-weight,700); }
.dyvc-badge.dyvc-free { color:var(--dyvc-free-color,#25b6c7); background:var(--dyvc-free-bg,#e8fbfc); font-size:var(--dyvc-free-font-size,14px);font-weight:var(--dyvc-free-font-weight,700); }
.dyvc-icon { flex:none; width:var(--dyvc-icon-size,12px); height:var(--dyvc-icon-size,12px); display:block; }
.dyvc-icon-shell { display:inline-flex; flex:none; align-items:center; justify-content:center; }
.dyvc-badge:has(.dyvc-icon-shell[hidden]) { gap:0; }

/* 左右徽章共存时为 Sale 预留当前设备圆形的空间。 */
.dyvc-top-left:has(~ .dyvc-top-right) {max-width:calc(100% - var(--dyvc-active-circle-size,var(--dyvc-circle-size,68px)) - 28px);}
