/**
 * Telecom Voucher — Badge rug (Tabler-adjacent)
 * Extends .tv-badge / .tv-corner-badge from enterprise-enhancements.css.
 * Palette hex values align with tv-button-rug.css (.tv-theme --tv-btn-*).
 */

:root {
  --tv-palette-blue: #206bc4;
  --tv-palette-azure: #4299e1;
  --tv-palette-indigo: #4263eb;
  --tv-palette-purple: #ae3ec9;
  --tv-palette-pink: #d6336c;
  --tv-palette-red: #d63939;
  --tv-palette-orange: #f76707;
  --tv-palette-yellow: #f59f00;
  --tv-palette-lime: #74b816;
  --tv-palette-green: #2fb344;
  --tv-palette-teal: #0ca678;
  --tv-palette-cyan: #17a2b8;
}

/* Mirror into .tv-theme so var() resolves even when :root is shadowed */
.tv-theme {
  --tv-palette-blue: #206bc4;
  --tv-palette-azure: #4299e1;
  --tv-palette-indigo: #4263eb;
  --tv-palette-purple: #ae3ec9;
  --tv-palette-pink: #d6336c;
  --tv-palette-red: #d63939;
  --tv-palette-orange: #f76707;
  --tv-palette-yellow: #f59f00;
  --tv-palette-lime: #74b816;
  --tv-palette-green: #2fb344;
  --tv-palette-teal: #0ca678;
  --tv-palette-cyan: #17a2b8;
}

/* ----- Solid extended palette (standalone chips + icon badges) ----- */
.tv-badge.tv-badge--solid-muted {
  background: color-mix(in srgb, var(--tv-text-secondary, #64748b) 14%, var(--tv-surface, #fff));
  color: var(--tv-text-secondary);
  border: 1px solid var(--tv-border);
  box-shadow: none;
}

html[data-theme="dark"] .tv-badge.tv-badge--solid-muted {
  background: rgba(148, 163, 184, 0.16);
  color: var(--tv-text-secondary);
  border-color: rgba(148, 163, 184, 0.28);
}

.tv-badge.tv-badge--solid-blue {
  background: var(--tv-palette-blue);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--tv-palette-blue) 82%, #000);
}

.tv-badge.tv-badge--solid-azure {
  background: var(--tv-palette-azure);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--tv-palette-azure) 82%, #000);
}

.tv-badge.tv-badge--solid-indigo {
  background: var(--tv-palette-indigo);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--tv-palette-indigo) 82%, #000);
}

.tv-badge.tv-badge--solid-purple {
  background: var(--tv-palette-purple);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--tv-palette-purple) 82%, #000);
}

.tv-badge.tv-badge--solid-pink {
  background: var(--tv-palette-pink);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--tv-palette-pink) 82%, #000);
}

.tv-badge.tv-badge--solid-red {
  background: var(--tv-palette-red);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--tv-palette-red) 82%, #000);
}

.tv-badge.tv-badge--solid-orange {
  background: var(--tv-palette-orange);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--tv-palette-orange) 82%, #000);
}

.tv-badge.tv-badge--solid-yellow,
.tv-badge.tv-badge--solid-lime {
  box-shadow: none;
}

.tv-badge.tv-badge--solid-yellow {
  background: var(--tv-palette-yellow);
  color: var(--tv-slate-900, #0f172a);
  border: 1px solid color-mix(in srgb, var(--tv-palette-yellow) 55%, #000);
}

.tv-badge.tv-badge--solid-lime {
  background: var(--tv-palette-lime);
  color: var(--tv-slate-900, #0f172a);
  border: 1px solid color-mix(in srgb, var(--tv-palette-lime) 55%, #000);
}

.tv-badge.tv-badge--solid-green {
  background: var(--tv-palette-green);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--tv-palette-green) 82%, #000);
}

.tv-badge.tv-badge--solid-teal {
  background: var(--tv-palette-teal);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--tv-palette-teal) 82%, #000);
}

.tv-badge.tv-badge--solid-cyan {
  background: var(--tv-palette-cyan);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--tv-palette-cyan) 82%, #000);
}

.tv-badge.tv-badge--solid-dark {
  background: var(--tv-slate-900, #0f172a);
  color: #fff;
  border: 1px solid color-mix(in srgb, var(--tv-slate-900) 88%, #fff);
}

html[data-theme="dark"] .tv-badge.tv-badge--solid-dark {
  background: var(--tv-slate-950, #020617);
  border-color: rgba(255, 255, 255, 0.12);
}

.tv-badge.tv-badge--solid-light {
  background: var(--tv-bg-muted, #f1f5f9);
  color: var(--tv-text, #0f172a);
  border: 1px solid var(--tv-border-strong, #cbd5e1);
  box-shadow: none;
}

html[data-theme="dark"] .tv-badge.tv-badge--solid-light {
  background: rgba(248, 250, 252, 0.12);
  color: var(--tv-text);
  border-color: rgba(255, 255, 255, 0.14);
}

/* Rounded rectangle (Tabler “inline” chip), not full pill */
.tv-badge.tv-badge--tile {
  border-radius: var(--tv-radius-md, 6px);
}

/* Compact chip inside buttons / toolbars */
.tv-badge.tv-badge--embed {
  padding: 0.12rem 0.42rem;
  font-size: 0.625rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.01em;
}

.tv-badge.tv-badge--embed.tv-badge--tile {
  border-radius: var(--tv-radius-sm, 4px);
}

/* Tabler-like small corner radius (overrides default pill on .tv-badge) */
.tv-badge.tv-badge--rounded {
  border-radius: var(--tv-radius-sm, 4px);
}

/* Explicit “medium” (default scale); use when resetting alongside utilities) */
.tv-badge.tv-badge--md {
  padding: 0.28rem 0.72rem;
  font-size: 0.76rem;
}

/* Larger than enterprise .tv-badge--lg (showcase / hero) */
.tv-badge.tv-badge--xl {
  padding: 0.5rem 1.125rem;
  font-size: 0.9375rem;
  font-weight: 600;
}

/* ----- Soft / “light” tint (pale bg + hue text) ----- */
.tv-badge[class*="tv-badge--soft-"] {
  box-shadow: none;
}

.tv-badge.tv-badge--soft-muted {
  background: color-mix(in srgb, var(--tv-text-secondary, #64748b) 10%, var(--tv-surface, #fff));
  color: var(--tv-text-secondary);
  border: 1px solid var(--tv-border);
}

.tv-badge.tv-badge--soft-blue {
  background: color-mix(in srgb, var(--tv-palette-blue) 12%, var(--tv-surface, #fff));
  color: var(--tv-palette-blue);
  border: 1px solid color-mix(in srgb, var(--tv-palette-blue) 22%, var(--tv-border));
}

.tv-badge.tv-badge--soft-azure {
  background: color-mix(in srgb, var(--tv-palette-azure) 12%, var(--tv-surface, #fff));
  color: var(--tv-palette-azure);
  border: 1px solid color-mix(in srgb, var(--tv-palette-azure) 22%, var(--tv-border));
}

.tv-badge.tv-badge--soft-indigo {
  background: color-mix(in srgb, var(--tv-palette-indigo) 12%, var(--tv-surface, #fff));
  color: var(--tv-palette-indigo);
  border: 1px solid color-mix(in srgb, var(--tv-palette-indigo) 22%, var(--tv-border));
}

.tv-badge.tv-badge--soft-purple {
  background: color-mix(in srgb, var(--tv-palette-purple) 12%, var(--tv-surface, #fff));
  color: var(--tv-palette-purple);
  border: 1px solid color-mix(in srgb, var(--tv-palette-purple) 22%, var(--tv-border));
}

.tv-badge.tv-badge--soft-pink {
  background: color-mix(in srgb, var(--tv-palette-pink) 12%, var(--tv-surface, #fff));
  color: var(--tv-palette-pink);
  border: 1px solid color-mix(in srgb, var(--tv-palette-pink) 22%, var(--tv-border));
}

.tv-badge.tv-badge--soft-red {
  background: color-mix(in srgb, var(--tv-palette-red) 12%, var(--tv-surface, #fff));
  color: var(--tv-palette-red);
  border: 1px solid color-mix(in srgb, var(--tv-palette-red) 22%, var(--tv-border));
}

.tv-badge.tv-badge--soft-orange {
  background: color-mix(in srgb, var(--tv-palette-orange) 12%, var(--tv-surface, #fff));
  color: var(--tv-palette-orange);
  border: 1px solid color-mix(in srgb, var(--tv-palette-orange) 22%, var(--tv-border));
}

.tv-badge.tv-badge--soft-yellow {
  background: color-mix(in srgb, var(--tv-palette-yellow) 18%, var(--tv-surface, #fff));
  color: color-mix(in srgb, var(--tv-palette-orange) 55%, #000);
  border: 1px solid color-mix(in srgb, var(--tv-palette-yellow) 35%, var(--tv-border));
}

.tv-badge.tv-badge--soft-lime {
  background: color-mix(in srgb, var(--tv-palette-lime) 14%, var(--tv-surface, #fff));
  color: color-mix(in srgb, var(--tv-palette-lime) 45%, #000);
  border: 1px solid color-mix(in srgb, var(--tv-palette-lime) 28%, var(--tv-border));
}

.tv-badge.tv-badge--soft-green {
  background: color-mix(in srgb, var(--tv-palette-green) 12%, var(--tv-surface, #fff));
  color: var(--tv-palette-green);
  border: 1px solid color-mix(in srgb, var(--tv-palette-green) 22%, var(--tv-border));
}

.tv-badge.tv-badge--soft-teal {
  background: color-mix(in srgb, var(--tv-palette-teal) 12%, var(--tv-surface, #fff));
  color: var(--tv-palette-teal);
  border: 1px solid color-mix(in srgb, var(--tv-palette-teal) 22%, var(--tv-border));
}

.tv-badge.tv-badge--soft-cyan {
  background: color-mix(in srgb, var(--tv-palette-cyan) 12%, var(--tv-surface, #fff));
  color: var(--tv-palette-cyan);
  border: 1px solid color-mix(in srgb, var(--tv-palette-cyan) 22%, var(--tv-border));
}

.tv-badge.tv-badge--soft-dark {
  background: color-mix(in srgb, var(--tv-slate-900) 8%, var(--tv-surface, #fff));
  color: var(--tv-slate-800, #1e293b);
  border: 1px solid color-mix(in srgb, var(--tv-slate-900) 18%, var(--tv-border));
}

.tv-badge.tv-badge--soft-light {
  background: var(--tv-bg-muted, #f1f5f9);
  color: var(--tv-text-secondary);
  border: 1px solid var(--tv-border);
}

html[data-theme="dark"] .tv-badge[class*="tv-badge--soft-"]:not(.tv-badge--soft-light):not(.tv-badge--soft-muted) {
  border-color: color-mix(in srgb, currentColor 32%, transparent);
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-blue {
  background: color-mix(in srgb, var(--tv-palette-blue) 26%, transparent);
  color: color-mix(in srgb, #fff 55%, var(--tv-palette-blue));
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-azure {
  background: color-mix(in srgb, var(--tv-palette-azure) 26%, transparent);
  color: color-mix(in srgb, #fff 55%, var(--tv-palette-azure));
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-indigo {
  background: color-mix(in srgb, var(--tv-palette-indigo) 26%, transparent);
  color: color-mix(in srgb, #fff 55%, var(--tv-palette-indigo));
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-purple {
  background: color-mix(in srgb, var(--tv-palette-purple) 26%, transparent);
  color: color-mix(in srgb, #fff 55%, var(--tv-palette-purple));
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-pink {
  background: color-mix(in srgb, var(--tv-palette-pink) 26%, transparent);
  color: color-mix(in srgb, #fff 55%, var(--tv-palette-pink));
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-red {
  background: color-mix(in srgb, var(--tv-palette-red) 26%, transparent);
  color: color-mix(in srgb, #fff 55%, var(--tv-palette-red));
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-orange {
  background: color-mix(in srgb, var(--tv-palette-orange) 26%, transparent);
  color: color-mix(in srgb, #fff 45%, var(--tv-palette-orange));
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-yellow {
  background: color-mix(in srgb, var(--tv-palette-yellow) 22%, transparent);
  color: color-mix(in srgb, var(--tv-palette-yellow) 85%, #fff);
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-lime {
  background: color-mix(in srgb, var(--tv-palette-lime) 22%, transparent);
  color: color-mix(in srgb, var(--tv-palette-lime) 80%, #fff);
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-green {
  background: color-mix(in srgb, var(--tv-palette-green) 26%, transparent);
  color: color-mix(in srgb, #fff 50%, var(--tv-palette-green));
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-teal {
  background: color-mix(in srgb, var(--tv-palette-teal) 26%, transparent);
  color: color-mix(in srgb, #fff 50%, var(--tv-palette-teal));
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-cyan {
  background: color-mix(in srgb, var(--tv-palette-cyan) 26%, transparent);
  color: color-mix(in srgb, #fff 50%, var(--tv-palette-cyan));
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-dark {
  background: rgba(255, 255, 255, 0.06);
  color: var(--tv-text);
  border-color: rgba(255, 255, 255, 0.14);
}

html[data-theme="dark"] .tv-badge.tv-badge--soft-light {
  background: rgba(248, 250, 252, 0.08);
  color: var(--tv-text-secondary);
  border-color: rgba(255, 255, 255, 0.12);
}

/* ----- Outline (transparent + hue border + hue text) ----- */
.tv-badge[class*="tv-badge--outline-"] {
  background: transparent;
  box-shadow: none;
}

.tv-badge.tv-badge--outline-muted {
  color: var(--tv-text-secondary);
  border: 1px solid var(--tv-border-strong, #cbd5e1);
}

.tv-badge.tv-badge--outline-blue {
  color: var(--tv-palette-blue);
  border: 1px solid var(--tv-palette-blue);
}

.tv-badge.tv-badge--outline-azure {
  color: var(--tv-palette-azure);
  border: 1px solid var(--tv-palette-azure);
}

.tv-badge.tv-badge--outline-indigo {
  color: var(--tv-palette-indigo);
  border: 1px solid var(--tv-palette-indigo);
}

.tv-badge.tv-badge--outline-purple {
  color: var(--tv-palette-purple);
  border: 1px solid var(--tv-palette-purple);
}

.tv-badge.tv-badge--outline-pink {
  color: var(--tv-palette-pink);
  border: 1px solid var(--tv-palette-pink);
}

.tv-badge.tv-badge--outline-red {
  color: var(--tv-palette-red);
  border: 1px solid var(--tv-palette-red);
}

.tv-badge.tv-badge--outline-orange {
  color: var(--tv-palette-orange);
  border: 1px solid var(--tv-palette-orange);
}

.tv-badge.tv-badge--outline-yellow {
  color: color-mix(in srgb, var(--tv-palette-orange) 50%, #000);
  border: 1px solid var(--tv-palette-yellow);
}

.tv-badge.tv-badge--outline-lime {
  color: color-mix(in srgb, var(--tv-palette-lime) 45%, #000);
  border: 1px solid var(--tv-palette-lime);
}

.tv-badge.tv-badge--outline-green {
  color: var(--tv-palette-green);
  border: 1px solid var(--tv-palette-green);
}

.tv-badge.tv-badge--outline-teal {
  color: var(--tv-palette-teal);
  border: 1px solid var(--tv-palette-teal);
}

.tv-badge.tv-badge--outline-cyan {
  color: var(--tv-palette-cyan);
  border: 1px solid var(--tv-palette-cyan);
}

.tv-badge.tv-badge--outline-dark {
  color: var(--tv-slate-800, #1e293b);
  border: 1px solid var(--tv-slate-700, #334155);
}

.tv-badge.tv-badge--outline-light {
  color: var(--tv-text-secondary);
  border: 1px solid var(--tv-border-strong, #cbd5e1);
}

html[data-theme="dark"] .tv-badge.tv-badge--outline-dark {
  color: var(--tv-text);
  border-color: rgba(255, 255, 255, 0.35);
}

html[data-theme="dark"] .tv-badge.tv-badge--outline-light {
  border-color: rgba(255, 255, 255, 0.22);
  color: var(--tv-text-secondary);
}

/* ----- Icon placement (base: .tv-badge__icon before label in DOM) ----- */
.tv-badge.tv-badge--icon-end {
  flex-direction: row-reverse;
}

.tv-badge.tv-badge--icon-end .tv-badge__icon {
  margin-inline-end: 0;
  margin-inline-start: -0.0625rem;
}

/* Icon-only chip (star / check / glyph) */
.tv-badge.tv-badge--icon-only {
  padding: 0.375rem;
  min-width: 1.75rem;
  min-height: 1.75rem;
  justify-content: center;
}

.tv-badge.tv-badge--icon-only.tv-badge--sm {
  padding: 0.28rem;
  min-width: 1.5rem;
  min-height: 1.5rem;
}

.tv-badge.tv-badge--icon-only.tv-badge--lg,
.tv-badge.tv-badge--icon-only.tv-badge--xl {
  min-width: 2rem;
  min-height: 2rem;
  padding: 0.45rem;
}

.tv-badge.tv-badge--icon-only .tv-badge__icon {
  margin: 0;
}

.tv-badge.tv-badge--icon-only .tv-badge__icon svg,
.tv-badge.tv-badge--icon-only .tv-badge__icon i {
  width: 0.9375rem;
  height: 0.9375rem;
}

/* Heading / title + badge (H1–H6) */
.tv-heading-with-badge {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.375rem;
  line-height: 1.2;
}

.tv-heading-with-badge .tv-badge {
  vertical-align: baseline;
  transform: translateY(-0.06em);
}

/* ----- Composite: label + circular counter (Tabler “badge + pill”) ----- */
.tv-badge-combo {
  --tv-badge-combo-accent: var(--tv-palette-blue);
  --tv-badge-combo-count-fg: #fff;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.75rem;
  border: 1px solid var(--tv-border, #e2e8f0);
  border-radius: var(--tv-radius-md, 6px);
  background: color-mix(in srgb, var(--tv-bg-muted, #f1f5f9) 88%, var(--tv-surface, #fff));
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--tv-text, #0f172a);
  line-height: 1.3;
}

html[data-theme="dark"] .tv-badge-combo {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.12);
  color: var(--tv-text);
}

.tv-badge-combo__label {
  flex: 1 1 auto;
  min-width: 0;
}

.tv-badge-combo__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.375rem;
  height: 1.375rem;
  padding: 0 5px;
  border-radius: var(--tv-radius-full);
  font-size: 0.6875rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  color: var(--tv-badge-combo-count-fg);
  background: var(--tv-badge-combo-accent);
  flex-shrink: 0;
}

.tv-badge-combo--muted {
  --tv-badge-combo-accent: var(--tv-text-secondary, #64748b);
  --tv-badge-combo-count-fg: var(--tv-surface, #fff);
}

.tv-badge-combo--blue {
  --tv-badge-combo-accent: var(--tv-palette-blue);
}

.tv-badge-combo--azure {
  --tv-badge-combo-accent: var(--tv-palette-azure);
}

.tv-badge-combo--indigo {
  --tv-badge-combo-accent: var(--tv-palette-indigo);
}

.tv-badge-combo--purple {
  --tv-badge-combo-accent: var(--tv-palette-purple);
}

.tv-badge-combo--pink {
  --tv-badge-combo-accent: var(--tv-palette-pink);
}

.tv-badge-combo--red {
  --tv-badge-combo-accent: var(--tv-palette-red);
}

.tv-badge-combo--orange {
  --tv-badge-combo-accent: var(--tv-palette-orange);
}

.tv-badge-combo--yellow {
  --tv-badge-combo-accent: var(--tv-palette-yellow);
  --tv-badge-combo-count-fg: var(--tv-slate-900, #0f172a);
}

.tv-badge-combo--lime {
  --tv-badge-combo-accent: var(--tv-palette-lime);
  --tv-badge-combo-count-fg: var(--tv-slate-900, #0f172a);
}

.tv-badge-combo--green {
  --tv-badge-combo-accent: var(--tv-palette-green);
}

.tv-badge-combo--teal {
  --tv-badge-combo-accent: var(--tv-palette-teal);
}

.tv-badge-combo--cyan {
  --tv-badge-combo-accent: var(--tv-palette-cyan);
}

.tv-badge-combo--dark {
  --tv-badge-combo-accent: var(--tv-slate-900, #0f172a);
}

.tv-badge-combo--light {
  --tv-badge-combo-accent: var(--tv-border-strong, #cbd5e1);
  --tv-badge-combo-count-fg: var(--tv-text, #0f172a);
}

html[data-theme="dark"] .tv-badge-combo--light {
  --tv-badge-combo-accent: rgba(255, 255, 255, 0.2);
  --tv-badge-combo-count-fg: var(--tv-text);
}

/* Button + inline badge row (optional wrapper) */
.tv-btn-badges {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
  gap: 0.5rem;
}

.tv-btn-badges > .tv-badge {
  flex-shrink: 0;
}

/* ----- Corner / floating badges (extends .tv-corner-badge) ----- */
.tv-corner-badge--pill {
  min-width: 1.5rem;
  height: 1.25rem;
  padding: 0 6px;
  border-radius: var(--tv-radius-full);
  font-size: 0.625rem;
}

.tv-corner-badge--blue {
  background: var(--tv-palette-blue);
  color: #fff;
}

.tv-corner-badge--azure {
  background: var(--tv-palette-azure);
  color: #fff;
}

.tv-corner-badge--indigo {
  background: var(--tv-palette-indigo);
  color: #fff;
}

.tv-corner-badge--purple {
  background: var(--tv-palette-purple);
  color: #fff;
}

.tv-corner-badge--pink {
  background: var(--tv-palette-pink);
  color: #fff;
}

.tv-corner-badge--orange {
  background: var(--tv-palette-orange);
  color: #fff;
}

.tv-corner-badge--yellow {
  background: var(--tv-palette-yellow);
  color: var(--tv-slate-900, #0f172a);
}

.tv-corner-badge--lime {
  background: var(--tv-palette-lime);
  color: var(--tv-slate-900, #0f172a);
}

.tv-corner-badge--green {
  background: var(--tv-palette-green);
  color: #fff;
}

.tv-corner-badge--teal {
  background: var(--tv-palette-teal);
  color: #fff;
}

.tv-corner-badge--cyan {
  background: var(--tv-palette-cyan);
  color: #fff;
}

.tv-corner-badge--muted {
  background: color-mix(in srgb, var(--tv-text-secondary, #64748b) 22%, var(--tv-surface, #fff));
  color: var(--tv-text-secondary);
}

html[data-theme="dark"] .tv-corner-badge--muted {
  background: rgba(148, 163, 184, 0.35);
  color: var(--tv-slate-950);
}

/* Logical “start” corner (LTR: top-left; RTL: top-right of box) */
.tv-corner-badge--start {
  inset-inline-end: auto;
  inset-inline-start: 0;
  transform: translate(-40%, -40%);
}

[dir="rtl"] .tv-corner-badge--start {
  transform: translate(40%, -40%);
}

/* Dot: palette (inherits .tv-corner-badge--dot sizing from enterprise-enhancements) */
.tv-corner-badge--dot.tv-corner-badge--blue {
  background: var(--tv-palette-blue);
}

.tv-corner-badge--dot.tv-corner-badge--azure {
  background: var(--tv-palette-azure);
}

.tv-corner-badge--dot.tv-corner-badge--indigo {
  background: var(--tv-palette-indigo);
}

.tv-corner-badge--dot.tv-corner-badge--purple {
  background: var(--tv-palette-purple);
}

.tv-corner-badge--dot.tv-corner-badge--pink {
  background: var(--tv-palette-pink);
}

.tv-corner-badge--dot.tv-corner-badge--orange {
  background: var(--tv-palette-orange);
}

.tv-corner-badge--dot.tv-corner-badge--yellow {
  background: var(--tv-palette-yellow);
}

.tv-corner-badge--dot.tv-corner-badge--lime {
  background: var(--tv-palette-lime);
}

.tv-corner-badge--dot.tv-corner-badge--green {
  background: var(--tv-palette-green);
}

.tv-corner-badge--dot.tv-corner-badge--teal {
  background: var(--tv-palette-teal);
}

.tv-corner-badge--dot.tv-corner-badge--cyan {
  background: var(--tv-palette-cyan);
}

.tv-corner-badge--dot.tv-corner-badge--muted {
  background: var(--tv-text-muted, #94a3b8);
}

/* Slightly larger floating counter (Tabler-style overlap) */
.tv-corner-badge--md {
  min-width: 1.25rem;
  height: 1.25rem;
  font-size: 0.6875rem;
  transform: translate(46%, -46%);
}

[dir="rtl"] .tv-corner-badge--md:not(.tv-corner-badge--start) {
  transform: translate(-46%, -46%);
}

[dir="rtl"] .tv-corner-badge--md.tv-corner-badge--start {
  transform: translate(46%, -46%);
}

/* Icon / ghost buttons as badge anchors */
.tv-action-icon.tv-has-corner-badge,
button.tv-has-corner-badge,
a.tv-has-corner-badge {
  position: relative;
}

/* ----- Dropdown / list row status dot (end-aligned) ----- */
.tv-menu-row-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-inline-start: auto;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--tv-success, #16a34a);
  box-shadow: 0 0 0 2px var(--tv-surface, #fff);
}

html[data-theme="dark"] .tv-menu-row-dot {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--tv-slate-900) 92%, transparent);
}

.tv-menu-row-dot--warning {
  background: var(--tv-warning, #f59e0b);
}

.tv-menu-row-dot--danger {
  background: var(--tv-danger, #dc2626);
}

.tv-menu-row-dot--muted {
  background: var(--tv-text-muted, #94a3b8);
}

/* Full-width row: label + optional badge / dot (dropdowns, list groups) */
.tv-badge-menu-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
}

.tv-badge-menu-row > .tv-menu-row-badge,
.tv-badge-menu-row > .tv-menu-row-dot {
  margin-inline-start: auto;
}
