/* EmptyState — scoped styles. Tokens only. */

.gs-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: var(--gs-space-3);
    padding: var(--gs-space-8) var(--gs-space-4);
    min-height: 240px;
    background-color: var(--gs-surface);
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-md);
}

.gs-empty-state__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    color: var(--gs-text-muted);
    background-color: var(--gs-bg);
    border: 1px solid var(--gs-border);
    border-radius: var(--gs-radius-full);
    margin-bottom: var(--gs-space-2);
}

/* Branded illustration slot — replaces the small badge icon with a full
   240x180 visual hook. Inherits currentColor from the surrounding text so
   the SVG strokes follow theme color (light/dark). */
.gs-empty-state__illustration {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 220px;
    color: var(--gs-text-muted);
    margin-bottom: var(--gs-space-1);
}

.gs-empty-state__illustration .gs-illustration {
    width: 100%;
    height: auto;
}

/* When using an illustration the panel needs a bit more breathing room. */
.gs-empty-state--has-illustration {
    min-height: 320px;
    padding-top: var(--gs-space-6);
    padding-bottom: var(--gs-space-8);
}

.gs-empty-state__title {
    margin: 0;
    font-family: var(--gs-font-sans);
    font-size: var(--gs-text-xl);
    font-weight: 600;
    color: var(--gs-text);
    letter-spacing: -0.01em;
}

.gs-empty-state__description {
    margin: 0;
    max-width: 480px;
    font-size: var(--gs-text-base);
    color: var(--gs-text-muted);
    line-height: 1.5;
}

.gs-empty-state__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--gs-space-3);
    margin-top: var(--gs-space-4);
}

.gs-empty-state__action {
    display: inline-flex;
}

/* Search variant tweaks the chrome to feel like a "no result" panel
   rather than a "create your first thing" panel. */
.gs-empty-state--search .gs-empty-state__icon {
    color: var(--gs-text-light);
}

@media (max-width: 767px) {
    .gs-empty-state {
        padding: var(--gs-space-6) var(--gs-space-3);
        min-height: 200px;
    }

    .gs-empty-state__icon {
        width: 56px;
        height: 56px;
    }

    .gs-empty-state__illustration {
        max-width: 180px;
    }

    .gs-empty-state--has-illustration {
        min-height: 280px;
    }

    .gs-empty-state__actions {
        flex-direction: column;
        width: 100%;
    }

    .gs-empty-state__action {
        width: 100%;
    }
}
