/* guests — personen-/gastenkiezer.
 *
 * Defaults in @layer mm — unlayered site-CSS wint altijd, ongeacht laadvolgorde.
 */

@layer mm {
    .guests-popup {
        --guests-bg:             var(--color-bg-elev, #fff);
        --guests-border:         var(--color-border, #d9d9d9);
        --guests-fg:             var(--color-fg, #1a1a1a);
        --guests-muted:          var(--color-fg-muted, #666);
        --guests-accent:         var(--color-primary, #1e2a3a);
        --guests-accent-text:    var(--color-primary-fg, #fff);
        --guests-accent-hover:   color-mix(in srgb, var(--color-primary, #1e2a3a) 15%, transparent);
        --guests-btn-bg:         var(--color-bg-soft, #f7f7f8);
        --guests-btn-border:     var(--color-border, #d9d9d9);
        --guests-radius:         var(--radius-lg, 14px);
        --guests-shadow:         var(--shadow-2, 0 2px 4px rgba(0,0,0,.06), 0 12px 32px rgba(0,0,0,.08));
    }
}

/* ── Trigger-knop ───────────────────────────────────────────────────────────
 * De trigger deelt de klasse `.guests-btn` met de ronde ±-knoppen in de popup,
 * maar draagt `[data-guests]`. Die attribuut-selector (0,2,0) wint van de
 * ronde-knop-regel (0,1,0) en stylet de trigger als een normaal formulierveld,
 * in lijn met `.select-display` / `.form-field__control`.
 *
 * In @layer mm — net als de rest van de defaults. Dat is hier geen detail: dit
 * is een DEFAULT-look, en een site die z'n trigger anders wil (bv. kaal in een
 * zoek-pill) hoort 'm te kunnen overschrijven. Ongelaagd deed 'ie dat niet:
 * module-CSS laadt ná de site-CSS, dus bij gelijke specificiteit (`.searchbar
 * .guests-btn` is óók 0,2,0) won het framework en kreeg de zoek-pill een kader.
 *
 * De ±-knopregel hieronder moet in DEZELFDE layer blijven staan: gelaagde CSS
 * verliest van élke ongelaagde regel, ongeacht specificiteit. Stond de trigger
 * in de layer en de ±-knop erbuiten, dan won de ±-knop en werd de trigger weer
 * een rond knopje. Ze horen dus bij elkaar. Veilig kan dat omdat de popup met
 * de ±-knoppen aan `document.body` hangt ({@see overlay.js} `appendTo`): een
 * site-selector als `.searchbar .guests-btn` raakt alleen de trigger. */
@layer mm {
.guests-btn[data-guests] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: .5rem;
    width: 100%;
    min-width: 0;
    height: auto;
    padding: .5rem .75rem;
    background: var(--color-bg, #fff);
    border: 1px solid var(--color-border, #d9d9d9);
    border-radius: var(--form-radius, var(--radius-sm, 4px));
    color: var(--color-fg, #1a1a1a);
    font: inherit;
    text-align: left;
    cursor: pointer;
    user-select: none;
}
.guests-btn[data-guests]:focus-visible {
    outline: 2px solid var(--color-primary, #1e2a3a);
    outline-offset: 2px;
}
.guests-btn[data-guests][data-empty="1"] .form-field__value {
    color: var(--color-fg-muted, #666);
}
}

.guests-popup {
    min-width: 18rem;
    background: var(--guests-bg);
    border: 1px solid var(--guests-border);
    border-radius: var(--guests-radius);
    box-shadow: var(--guests-shadow);
    color: var(--guests-fg);
    font: inherit;
    overflow: hidden;
}

/* ── Rows ───────────────────────────────────────────────────────────────── */

.guests-rows {
    padding: .375rem 0;
}

.guests-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .6rem 1rem;
}

.guests-row + .guests-row {
    border-top: 1px solid var(--guests-border);
}

.guests-row__label {
    flex: 1;
    min-width: 0;
}

.guests-row__name {
    display: block;
    font-size: .9rem;
    font-weight: 600;
}

.guests-row__sub {
    display: block;
    font-size: .78rem;
    color: var(--guests-muted);
    margin-top: .1rem;
}

.guests-row__ctrls {
    display: flex;
    align-items: center;
    gap: .5rem;
}

/* ── ± knoppen ──────────────────────────────────────────────────────────────
 * In @layer mm, samen met de trigger-regel hierboven — zie de toelichting daar:
 * splits je die twee over wel/niet gelaagd, dan wint deze regel van de trigger. */
@layer mm {
.guests-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    border: 1px solid var(--guests-btn-border);
    border-radius: 50%;
    background: var(--guests-btn-bg);
    color: var(--guests-fg);
    font: inherit;
    font-size: 1.15rem;
    line-height: 1;
    cursor: pointer;
    user-select: none;
    transition: background .15s, border-color .15s;
}

.guests-btn:hover:not(:disabled) {
    background: var(--guests-accent-hover);
    border-color: var(--guests-accent);
}

.guests-btn:focus-visible {
    outline: 2px solid var(--guests-accent);
    outline-offset: 2px;
}

.guests-btn:disabled {
    opacity: .3;
    cursor: not-allowed;
}
}

.guests-count {
    min-width: 1.5rem;
    text-align: center;
    font-size: .9rem;
    font-weight: 600;
}

/* ── Footer (optioneel — data-guests-footer="1") ─────────────────────── */

.guests-footer {
    display: flex;
    gap: .5rem;
    padding: .6rem 1rem;
    border-top: 1px solid var(--guests-border);
}

.guests-footer__btn {
    flex: 1;
    padding: .45rem .75rem;
    border-radius: calc(var(--guests-radius) - 4px);
    font: inherit;
    font-size: .875rem;
    font-weight: 500;
    cursor: pointer;
    transition: opacity .15s;
}

.guests-footer__btn:hover { opacity: .85; }

.guests-footer__btn:focus-visible {
    outline: 2px solid var(--guests-accent);
    outline-offset: 2px;
}

.guests-footer__btn--secondary {
    background: transparent;
    border: 1px solid var(--guests-btn-border);
    color: var(--guests-muted);
}

.guests-footer__btn--primary {
    background: var(--guests-accent);
    border: 1px solid transparent;
    color: var(--guests-accent-text);
}
