/* ============================================================
   V2 — Badges / Status pills
   ============================================================
   Pill-shaped indicators для статусів, лічильників, тегів.

   Структура:
     <span class="v2-badge v2-badge-success">
       <span class="v2-badge-dot"></span>
       Активний
     </span>

     <span class="v2-badge v2-badge-count">12</span>
     <span class="v2-badge v2-badge-outline">Чернетка</span>
   ============================================================ */

/* box-sizing reset */
.v2-badge,
.v2-badge::before,
.v2-badge::after {
    box-sizing: border-box;
}

/* === Base === */
.v2-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 8px;
    border: 1px solid transparent;
    border-radius: var(--r-pill);
    background: var(--bg-muted);
    color: var(--text-secondary);
    font-family: inherit;
    font-size: var(--text-xs);
    font-weight: var(--weight-medium);
    line-height: 1.4;
    white-space: nowrap;
    user-select: none;
    vertical-align: middle;
}

/* Dot — кольорова крапка-індикатор статусу */
.v2-badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
    display: inline-block;
}

/* === Color variants === */
.v2-badge-neutral {
    background: var(--bg-muted);
    color: var(--text-secondary);
}

.v2-badge-success {
    background: var(--success-bg);
    color: var(--success);
}

.v2-badge-warn {
    background: var(--warning-bg);
    color: var(--warning);
}

.v2-badge-danger {
    background: var(--danger-bg);
    color: var(--danger);
}

.v2-badge-info {
    background: var(--info-bg);
    color: var(--info);
}

.v2-badge-accent {
    background: var(--accent-bg);
    color: var(--accent-text);
}

/* Outline — без заливки, тільки рамка */
.v2-badge-outline {
    background: transparent;
    border-color: var(--border-default);
    color: var(--text-secondary);
}

.v2-badge-outline.v2-badge-success { border-color: var(--success); color: var(--success); }
.v2-badge-outline.v2-badge-warn    { border-color: var(--warning); color: var(--warning); }
.v2-badge-outline.v2-badge-danger  { border-color: var(--danger);  color: var(--danger); }
.v2-badge-outline.v2-badge-info    { border-color: var(--info);    color: var(--info); }
.v2-badge-outline.v2-badge-accent  { border-color: var(--accent);  color: var(--accent-text); }

/* Soft (subtler) — light tint background, accent-only color */
.v2-badge-soft {
    background: var(--bg-subtle);
    color: var(--text-tertiary);
}

/* === Sizes === */
.v2-badge-sm {
    padding: 1px 6px;
    font-size: 10px;
    gap: 4px;
}
.v2-badge-sm .v2-badge-dot { width: 5px; height: 5px; }

.v2-badge-lg {
    padding: 4px 12px;
    font-size: var(--text-sm);
    gap: 6px;
}
.v2-badge-lg .v2-badge-dot { width: 7px; height: 7px; }

/* === Count — для тих самих "12" біля вкладок або в sidebar === */
.v2-badge-count {
    min-width: 18px;
    height: 18px;
    padding: 0 6px;
    border-radius: var(--r-pill);
    background: var(--bg-muted);
    color: var(--text-secondary);
    font-size: 11px;
    font-weight: var(--weight-medium);
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    letter-spacing: 0;
}
.v2-badge-count.v2-badge-accent {
    background: var(--accent-bg);
    color: var(--accent-text);
}
.v2-badge-count.v2-badge-danger {
    background: var(--danger);
    color: var(--text-inverse);
}

/* === Removable — х-кнопка справа (для filter-chip-подібних) === */
.v2-badge-x {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    margin-left: 2px;
    margin-right: -3px;
    padding: 0;
    border: none;
    background: transparent;
    color: inherit;
    opacity: 0.6;
    border-radius: 50%;
    cursor: pointer;
    transition: opacity 0.12s, background 0.12s;
}
.v2-badge-x:hover {
    opacity: 1;
    background: rgba(0, 0, 0, 0.08);
}
.v2-badge-x svg { width: 10px; height: 10px; display: block; }

/* === Дрібні правила сумісності === */
/* Якщо в кнопку чи рядок таблиці кладемо badge — він не має ламати lineheight */
.v2-btn .v2-badge,
td .v2-badge,
.v2-tab .v2-badge {
    vertical-align: baseline;
}
