/**
 * Hauzii TextBadge Utilities
 *
 * 雙模式(文字 ↔ Badge)的 **badge 出身** slot 切到文字模式時,中和掉 template
 * 寫死的藥丸外觀。badge 的圓角/內距/inline-flex 本來就是 template 的 utility
 * class 撐出來的(badge preset 只給顏色與字型),切成文字後 preset 消失、形狀
 * 還在 → 「沒有背景色的圓角空盒,文字莫名縮排」。
 *
 * ⚠️ **判別「現在是文字模式」靠的是「這個元素上沒有 badge preset class」**,
 * 不靠任何 runtime 輸出的 class。理由:`DisplayModeGate` 保證 `badge_preset`
 * 只在 badge 模式存活 → `BadgeBindingProcessor` 只在 badge 模式輸出
 * `hz-badge-*`(CssClassPrefixes::BADGE),所以 preset class 的有無就是模式的
 * 忠實投影。**故本檔零 PHP 依賴 —— gate 不注入 class、不新增 processor。**
 * `hz-textbadge-shape` 是 retrofit 靜態寫進 template 的純標記,自身無樣式。
 *
 * ⚠️ **`display` 的例外**:badge 內含 icon 的(class 帶 `gap-x-*`,全庫 3 處
 * hero-split-{gap,inset-lg,inset-sm}-v1)**保留 inline-flex** —— 降成 `inline`
 * 會讓 column-gap 失效、icon 與文字黏在一起。用 `:not([class*="gap-x-"])`
 * 宣告式排除,不需要第二個 class、也不需要逐處例外清單。
 *
 * ⚠️ **本檔必須 unlayered(無 `@layer`)**:`tailwind.build.css` 的 `cv:*`
 * 全在 `@layer utilities` 內,而 CSS cascade 規則「unlayered 恆勝 layered」
 * 與 specificity / 順序無關 → 靠這個乾淨蓋掉 `cv:rounded-full` / `cv:px-4`,
 * **不需要 `!important`、不需要提高 specificity、零改 146 處的 class**。
 * 加 `@layer` 進來就會退化成比 specificity → 中和失效。
 *
 * 中和範圍(2026-07-30 站主裁決 TBD-1):padding-inline + border-radius +
 * display。`padding-block` 不中和 —— 降成 `inline` 後垂直內距不影響行框高度、
 * 且文字模式無背景色故不可見。字級/字重(`cv:text-xs` 等)不中和,屬「剝硬編」
 * 另案的已知殘留。
 *
 * @see docs/plan/plan-text-badge-dual-mode-p4-20260730.md §4-3 / §12-1 TBD-1 / TBD-5 / TBD-7
 * @see canvas/assets/css/hz-decor-utilities.css（同款 unlayered utility 檔的 pattern 來源）
 */

.hz-textbadge-shape:not([class*="hz-badge-"]) {
    padding-inline: 0;
    border-radius: 0;
}

/* icon badge(帶 column-gap)保留 inline-flex,其餘降回文字流。 */
.hz-textbadge-shape:not([class*="hz-badge-"]):not([class*="gap-x-"]) {
    display: inline;
}
