.gpc-mini-configurator {
    display: grid;
    gap: .55rem;
    margin-top: 1rem;
    padding: .9rem;
    border: 1px solid var(--gpc-border);
    background: color-mix(in srgb, var(--gpc-surface) 88%, #101018);
}

.gpc-mini-configurator__title {
    margin: 0;
    color: var(--gpc-secondary);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.gpc-mini-configurator label {
    display: grid;
    grid-template-columns: minmax(5.5rem, .38fr) minmax(0, 1fr);
    align-items: center;
    gap: .6rem;
    min-width: 0;
    color: var(--gpc-muted);
    font-size: .78rem;
}

.gpc-mini-configurator label.is-changed {
    color: var(--gpc-text);
}

.gpc-mini-configurator label.is-changed > span::after {
    content: ' •';
    color: var(--gpc-accent);
}

.gpc-mini-configurator select {
    width: 100%;
    min-width: 0;
    min-height: 2.2rem;
    padding: .4rem .55rem;
    border: 1px solid var(--gpc-border);
    border-radius: 4px;
    background: var(--gpc-bg);
    color: var(--gpc-text);
    cursor: pointer;
    font: inherit;
}

.gpc-mini-configurator select:disabled {
    cursor: not-allowed;
}

.gpc-mini-configurator select:focus-visible {
    outline: 2px solid var(--gpc-accent);
    outline-offset: 2px;
}

.gpc-mini-configurator__status {
    min-height: 1.15rem;
    margin: .1rem 0 0;
    color: var(--gpc-muted);
    font-size: .75rem;
}

.gpc-mini-configurator[data-state='ready'] .gpc-mini-configurator__status {
    color: var(--gpc-secondary);
}

.gpc-mini-configurator[data-state='invalid'] .gpc-mini-configurator__status,
.gpc-mini-configurator[data-state='error'] .gpc-mini-configurator__status {
    color: #ff9d87;
}

.gpc-mini-configurator__price {
    margin: 0;
    color: var(--gpc-text);
    font-size: 1.1rem;
    font-weight: 800;
}

.gpc-mini-configurator [data-gpc-mini-add] {
    width: 100%;
    margin-top: .15rem;
    padding-inline: .75rem;
    font-size: .78rem;
}

.gpc-mini-configurator [data-gpc-mini-add]:disabled {
    cursor: wait;
    opacity: .55;
}

@media (max-width: 520px) {
    .gpc-mini-configurator label {
        grid-template-columns: 1fr;
        gap: .25rem;
    }
}
