.participant-layout-shell {
    display: grid;
    grid-template-columns: minmax(220px, 260px) minmax(0, 1fr);
    gap: 1.5rem;
    align-items: start;
}

.participant-layout-content { min-width: 0; }
.participant-layout-content > main { padding-top: 0 !important; }

.participant-sidebar {
    position: sticky;
    top: 1rem;
    padding: 1rem;
    border: 1px solid var(--bs-border-color, #dbe3ec);
    border-radius: 1rem;
    background: var(--bs-body-bg, #fff);
    box-shadow: 0 .5rem 1.5rem rgba(15, 23, 42, .07);
}

.participant-sidebar-heading {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .25rem .35rem 1rem;
}

.participant-sidebar-heading > i { font-size: 1.4rem; color: var(--bs-primary); }
.participant-sidebar-heading span { display: flex; flex-direction: column; }
.participant-sidebar-heading small { color: var(--bs-secondary-color); }
.participant-sidebar nav { display: grid; gap: .25rem; }

.participant-nav-link {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .65rem .75rem;
    border-radius: .7rem;
    color: var(--bs-body-color);
    text-decoration: none;
    font-weight: 600;
}

.participant-nav-link:hover,
.participant-nav-link:focus-visible { background: rgba(var(--bs-primary-rgb), .08); color: var(--bs-primary); }
.participant-nav-link.active { background: rgba(var(--bs-primary-rgb), .14); color: var(--bs-primary); }
.participant-nav-link i { width: 1.1rem; text-align: center; }
.participant-sidebar-divider { height: 1px; margin: .8rem .25rem; background: var(--bs-border-color, #dbe3ec); }
.participant-owner-switch { color: var(--bs-primary); }

@media (max-width: 991.98px) {
    .participant-layout-shell { grid-template-columns: 1fr; }
    .participant-sidebar {
        position: static;
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        scroll-snap-type: inline proximity;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .participant-sidebar::-webkit-scrollbar { display: none; }
    .participant-sidebar-heading { padding-bottom: .65rem; }
    .participant-sidebar nav { display: flex; width: max-content; }
    .participant-nav-link { flex: 0 0 auto; scroll-snap-align: start; }
    .participant-sidebar-divider { display: none; }
    .participant-owner-switch { margin-top: .35rem; }
}
