/* =========================================================
   语义化 Token 回退 — 保证 Tailwind 语义类在浏览器端可用
   ========================================================= */

.bg-background { background-color: var(--stamp-background); }
.text-background { color: var(--stamp-background); }
.border-background { border-color: var(--stamp-background); }
.ring-background { --tw-ring-color: var(--stamp-background); }
.bg-foreground { background-color: var(--stamp-foreground); }
.text-foreground { color: var(--stamp-foreground); }
.border-foreground { border-color: var(--stamp-foreground); }
.ring-foreground { --tw-ring-color: var(--stamp-foreground); }
.bg-card { background-color: var(--stamp-card); }
.text-card { color: var(--stamp-card); }
.border-card { border-color: var(--stamp-card); }
.ring-card { --tw-ring-color: var(--stamp-card); }
.bg-card-foreground { background-color: var(--stamp-card-foreground); }
.text-card-foreground { color: var(--stamp-card-foreground); }
.border-card-foreground { border-color: var(--stamp-card-foreground); }
.ring-card-foreground { --tw-ring-color: var(--stamp-card-foreground); }
.bg-popover { background-color: var(--stamp-popover); }
.text-popover { color: var(--stamp-popover); }
.border-popover { border-color: var(--stamp-popover); }
.ring-popover { --tw-ring-color: var(--stamp-popover); }
.bg-popover-foreground { background-color: var(--stamp-popover-foreground); }
.text-popover-foreground { color: var(--stamp-popover-foreground); }
.border-popover-foreground { border-color: var(--stamp-popover-foreground); }
.ring-popover-foreground { --tw-ring-color: var(--stamp-popover-foreground); }
.bg-primary { background-color: var(--stamp-primary); }
.text-primary { color: var(--stamp-primary); }
.border-primary { border-color: var(--stamp-primary); }
.ring-primary { --tw-ring-color: var(--stamp-primary); }
.bg-primary-foreground { background-color: var(--stamp-primary-foreground); }
.text-primary-foreground { color: var(--stamp-primary-foreground); }
.border-primary-foreground { border-color: var(--stamp-primary-foreground); }
.ring-primary-foreground { --tw-ring-color: var(--stamp-primary-foreground); }
.bg-muted { background-color: var(--stamp-muted); }
.text-muted { color: var(--stamp-muted); }
.border-muted { border-color: var(--stamp-muted); }
.ring-muted { --tw-ring-color: var(--stamp-muted); }
.bg-muted-foreground { background-color: var(--stamp-muted-foreground); }
.text-muted-foreground { color: var(--stamp-muted-foreground); }
.border-muted-foreground { border-color: var(--stamp-muted-foreground); }
.ring-muted-foreground { --tw-ring-color: var(--stamp-muted-foreground); }
.bg-border { background-color: var(--stamp-border); }
.text-border { color: var(--stamp-border); }
.border-border { border-color: var(--stamp-border); }
.ring-border { --tw-ring-color: var(--stamp-border); }
.bg-input { background-color: var(--stamp-input); }
.text-input { color: var(--stamp-input); }
.border-input { border-color: var(--stamp-input); }
.ring-input { --tw-ring-color: var(--stamp-input); }
.bg-ring { background-color: var(--stamp-ring); }
.text-ring { color: var(--stamp-ring); }
.border-ring { border-color: var(--stamp-ring); }
.ring-ring { --tw-ring-color: var(--stamp-ring); }

/* =========================================================
   工具类
   ========================================================= */

.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

[data-icon] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  background-color: currentColor;
}
