.civic-exclusive-availability {
    box-sizing: border-box;
    inline-size: 100%;
    max-inline-size: 100%;
    min-inline-size: 0;
    contain: inline-size;
}

.civic-exclusive-availability *,
.civic-exclusive-availability *::before,
.civic-exclusive-availability *::after {
    box-sizing: border-box;
}

.civic-exclusive-availability__range {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-block-end: 1rem;
    padding: 1rem;
    border: 1px solid rgba(0, 0, 0, .1);
    border-radius: .5rem;
    background: rgba(49, 88, 127, .05);
}

.civic-exclusive-availability__field {
    flex: 1 1 9rem;
    min-inline-size: 0;
}

.civic-exclusive-availability__field label {
    display: block;
    margin-block-end: .25rem;
    font-size: .875rem;
    font-weight: 600;
}

.civic-exclusive-availability__field input {
    inline-size: 100%;
    max-inline-size: 100%;
}

.civic-exclusive-availability__spaces {
    display: grid;
    gap: .75rem;
    min-inline-size: 0;
}

.civic-exclusive-availability__space {
    min-inline-size: 0;
    padding: .875rem 1rem;
    border: 1px solid rgba(0, 0, 0, .1);
    border-radius: .5rem;
    background: #fff;
}

.civic-exclusive-availability__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5rem;
    min-inline-size: 0;
}

.civic-exclusive-availability__heading h3 {
    min-inline-size: 0;
    margin: 0;
    font-size: 1rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.civic-exclusive-availability__status {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    padding: .25rem .55rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 700;
    line-height: 1.2;
}

.civic-exclusive-availability__space.is-available {
    border-inline-start: .25rem solid #198754;
}

.civic-exclusive-availability__space.is-available .civic-exclusive-availability__status {
    color: #0f5132;
    background: #d1e7dd;
}

.civic-exclusive-availability__space.is-reserved {
    border-inline-start: .25rem solid #dc3545;
}

.civic-exclusive-availability__space.is-reserved .civic-exclusive-availability__status {
    color: #842029;
    background: #f8d7da;
}

.civic-exclusive-availability__details {
    margin: .55rem 0 0;
    color: #5c636a;
    font-size: .875rem;
    line-height: 1.45;
}

.civic-exclusive-availability__action {
    margin-block-start: 1rem;
}

@media (max-width: 575.98px) {
    .civic-exclusive-availability__range {
        padding: .75rem;
    }

    .civic-exclusive-availability__field {
        flex-basis: 100%;
    }
}
