/*
 * Shared tag color contract.
 *
 * Use .fa-tag with data-tag-tone for new markup. Legacy badge/chip systems
 * are mapped below so every endpoint uses the same semantic palette.
 */
:root {
    --fa-tag-neutral-bg: #ebe7df;
    --fa-tag-neutral-fg: #4d554f;
    --fa-tag-neutral-border: #c9c0b3;
    --fa-tag-brand-bg: var(--fa-kit-brand-soft, #dfeae5);
    --fa-tag-brand-fg: var(--fa-kit-brand-strong, #23453d);
    --fa-tag-brand-border: #a9c2b8;
    --fa-tag-info-bg: var(--fa-kit-info-soft, #d7e6f1);
    --fa-tag-info-fg: #234f70;
    --fa-tag-info-border: #a8c6dc;
    --fa-tag-success-bg: var(--fa-kit-success-soft, #dce8df);
    --fa-tag-success-fg: #31563d;
    --fa-tag-success-border: #adc8b4;
    --fa-tag-warning-bg: var(--fa-kit-warning-soft, #efe1c9);
    --fa-tag-warning-fg: #6f501d;
    --fa-tag-warning-border: #d5bd8e;
    --fa-tag-danger-bg: var(--fa-kit-danger-soft, #eed9d7);
    --fa-tag-danger-fg: #713936;
    --fa-tag-danger-border: #d4aaa6;
    --fa-tag-accent-bg: var(--fa-kit-accent-soft, #eadfca);
    --fa-tag-accent-fg: #654a1b;
    --fa-tag-accent-border: #cfb98f;
}

:is(
    .fa-tag,
    .badge,
    .fa-kit-status-chip,
    .fa-kit-reference-chip,
    .fa-context-badge,
    .fa-org-badge,
    .fa-admin-badge,
    .fa-admin-chip,
    .fa-text-badge,
    .fa-state-badge,
    .action-state-badge,
    .fa-instance-portal-chip
) {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    min-height: 1.75rem;
    padding: 0.3rem 0.62rem;
    border: 1px solid var(--fa-tag-neutral-border);
    border-radius: var(--fa-tag-radius, var(--fa-kit-radius-sm, 12px));
    background: var(--fa-tag-neutral-bg);
    color: var(--fa-tag-neutral-fg);
    font-family: var(--fa-kit-reference-font, var(--fa-kit-system-font, sans-serif));
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
    overflow-wrap: anywhere;
    text-decoration: none;
    vertical-align: middle;
}

:is(
    .fa-tag[data-tag-tone="neutral"],
    .badge.text-bg-light,
    .badge.text-bg-secondary,
    .badge.bg-secondary,
    .fa-kit-reference-chip,
    .fa-kit-status-chip--neutral,
    .fa-context-badge,
    .fa-admin-chip,
    .action-state-badge--neutral,
    .fa-instance-portal-chip
) {
    background: var(--fa-tag-neutral-bg) !important;
    color: var(--fa-tag-neutral-fg) !important;
    border-color: var(--fa-tag-neutral-border) !important;
}

:is(
    .fa-tag[data-tag-tone="brand"],
    .badge.text-bg-primary,
    .badge.bg-primary,
    .fa-context-badge--status
) {
    background: var(--fa-tag-brand-bg) !important;
    color: var(--fa-tag-brand-fg) !important;
    border-color: var(--fa-tag-brand-border) !important;
}

:is(
    .fa-tag[data-tag-tone="info"],
    .badge.text-bg-info,
    .badge.bg-info,
    .fa-kit-status-chip--info,
    .fa-org-badge.info,
    .fa-admin-badge.info,
    .fa-admin-badge.fa-admin-badge--info,
    .fa-state-badge--verification
) {
    background: var(--fa-tag-info-bg) !important;
    color: var(--fa-tag-info-fg) !important;
    border-color: var(--fa-tag-info-border) !important;
}

:is(
    .fa-tag[data-tag-tone="success"],
    .badge.text-bg-success,
    .badge.bg-success,
    .fa-kit-status-chip--success,
    .fa-org-badge.success,
    .fa-admin-badge.success,
    .fa-text-badge--success,
    .fa-state-badge--completed,
    .action-state-badge--success
) {
    background: var(--fa-tag-success-bg) !important;
    color: var(--fa-tag-success-fg) !important;
    border-color: var(--fa-tag-success-border) !important;
}

:is(
    .fa-tag[data-tag-tone="warning"],
    .badge.text-bg-warning,
    .badge.bg-warning,
    .fa-kit-status-chip--warning,
    .fa-org-badge.warning,
    .fa-admin-badge.warning,
    .fa-text-badge--warning,
    .fa-state-badge--admission,
    .fa-state-badge--ballot,
    .fa-state-badge--action,
    .action-state-badge--warning
) {
    background: var(--fa-tag-warning-bg) !important;
    color: var(--fa-tag-warning-fg) !important;
    border-color: var(--fa-tag-warning-border) !important;
}

:is(
    .fa-tag[data-tag-tone="danger"],
    .badge.text-bg-danger,
    .badge.bg-danger,
    .fa-kit-status-chip--danger,
    .fa-org-badge.error,
    .fa-admin-badge.error,
    .fa-text-badge--danger,
    .fa-state-badge--expired,
    .action-state-badge--danger
) {
    background: var(--fa-tag-danger-bg) !important;
    color: var(--fa-tag-danger-fg) !important;
    border-color: var(--fa-tag-danger-border) !important;
}

:is(
    .fa-tag[data-tag-tone="accent"],
    .fa-tag--category,
    .fa-kit-status-chip--accent
) {
    background: var(--fa-tag-accent-bg) !important;
    color: var(--fa-tag-accent-fg) !important;
    border-color: var(--fa-tag-accent-border) !important;
}

.fa-tag[data-tag-entity="decision"] { background: var(--entity-decision-soft) !important; color: var(--entity-decision) !important; border-color: color-mix(in srgb, var(--entity-decision) 42%, transparent) !important; }
.fa-tag[data-tag-entity="group"] { background: var(--entity-group-soft) !important; color: var(--entity-group) !important; border-color: color-mix(in srgb, var(--entity-group) 42%, transparent) !important; }
.fa-tag[data-tag-entity="action"] { background: var(--entity-action-soft) !important; color: var(--entity-action) !important; border-color: color-mix(in srgb, var(--entity-action) 42%, transparent) !important; }
.fa-tag[data-tag-entity="publication"] { background: var(--entity-publication-soft) !important; color: var(--entity-publication) !important; border-color: color-mix(in srgb, var(--entity-publication) 42%, transparent) !important; }
.fa-tag[data-tag-entity="meeting"] { background: var(--entity-meeting-soft) !important; color: var(--entity-meeting) !important; border-color: color-mix(in srgb, var(--entity-meeting) 42%, transparent) !important; }
.fa-tag[data-tag-entity="proxy"] { background: var(--entity-proxy-soft) !important; color: var(--entity-proxy) !important; border-color: color-mix(in srgb, var(--entity-proxy) 42%, transparent) !important; }

.fa-tag:is(a, button):hover,
.fa-tag:is(a, button):focus-visible {
    filter: brightness(0.96) saturate(1.08);
    text-decoration: none;
}
