/* src/components/basic/XWUIDisplayStatus/XWUIDisplayStatus.css */
/**
 * XWUIDisplayStatus Component Styles - the concrete status pill
 * (XWUIDisplayStatusPill renders these; the abstract base renders nothing).
 *
 * Style Dependencies:
 * - Base: reset.css, typography.css, utilities.css
 * - Theme: theme/colors/{selected-theme}.css (MANDATORY - provides all color variables)
 * - Theme: theme/accents/{selected-accent}.css (MANDATORY - provides accent color variables)
 *
 * The TONE colors the dot, not the pill surface: a neutral surface with a
 * colored dot stays readable on every theme without per-tone fg/bg contrast
 * tuning (the full-surface variants of .xwui-tag needed dedicated --role-*-fg
 * inks for exactly that problem).
 */

.xwui-display-status {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs, 0.375rem);
    border-radius: var(--radius-pill, 999px);
    background: var(--bg-status-pill, var(--bg-secondary, #f8f9fa));
    color: var(--text-status-pill, var(--text-primary, #1a1a1a));
    border: var(--border-width-thin, 1px) solid var(--border-status-pill, var(--border-color, #dee2e6));
    font-weight: var(--font-weight-medium, 500);
    white-space: nowrap;
    line-height: 1.4;
}

.xwui-display-status-dot {
    flex: none;
    width: 0.5em;
    height: 0.5em;
    border-radius: 50%;
    background: var(--status-dot-color, var(--text-tertiary, #adb5bd));
}

/* Tones drive the dot via a custom property so a single rule renders it. */
.xwui-display-status-success { --status-dot-color: var(--accent-success, #52c41a); }
.xwui-display-status-warning { --status-dot-color: var(--accent-warning, #faad14); }
.xwui-display-status-error   { --status-dot-color: var(--accent-error, #ff4d4f); }
.xwui-display-status-info    { --status-dot-color: var(--accent-info, var(--accent-primary, #1890ff)); }
.xwui-display-status-neutral { --status-dot-color: var(--text-tertiary, #adb5bd); }

/* Live states: soft ping ring emanating from the dot. */
.xwui-display-status-dot-pulse {
    animation: xwui-display-status-ping 1.6s cubic-bezier(0, 0, 0.2, 1) infinite;
}
@keyframes xwui-display-status-ping {
    0%   { box-shadow: 0 0 0 0 var(--status-dot-color, transparent); }
    70%  { box-shadow: 0 0 0 0.4em transparent; }
    100% { box-shadow: 0 0 0 0 transparent; }
}
@media (prefers-reduced-motion: reduce) {
    .xwui-display-status-dot-pulse { animation: none; }
}

/* Sizes - canonical scale (normalizeSize emits the short tokens). */
.xwui-display-status-xs {
    padding: var(--spacing-tag-xs-y, 0.0625rem) var(--spacing-tag-xs-x, 0.375rem);
    font-size: var(--font-size-xxs, 0.625rem);
}
:is(.xwui-display-status-s, .xwui-display-status-sm) {
    padding: var(--spacing-tag-s-y, 0.125rem) var(--spacing-tag-s-x, 0.5rem);
    font-size: var(--font-size-xs, 0.75rem);
}
:is(.xwui-display-status-m, .xwui-display-status-md) {
    padding: var(--spacing-tag-m-y, 0.25rem) var(--spacing-tag-m-x, 0.75rem);
    font-size: var(--font-size-sm, 0.875rem);
}
:is(.xwui-display-status-l, .xwui-display-status-lg) {
    padding: var(--spacing-tag-l-y, 0.375rem) var(--spacing-tag-l-x, 1rem);
    font-size: var(--font-size-base, 1rem);
}
.xwui-display-status-xl {
    padding: var(--spacing-tag-xl-y, 0.5rem) var(--spacing-tag-xl-x, 1.25rem);
    font-size: var(--font-size-lg, 1.125rem);
}

.xwui-display-status-label {
    display: inline-block;
}

/* Note: Dark theme support is handled automatically via theme/colors/{theme}.css files */
