.nesting-panel { margin-block: 1rem; padding: 1rem; border: 1px solid var(--border-color, #394339); border-radius: 12px; }
.nesting-panel h2 { font-size: 1.2rem; margin-bottom: .5rem; }
.nesting-panel h3,.nesting-panel h4 { margin-block: 1rem .5rem; }
.nesting-panel details > summary { cursor: pointer; padding-block: .65rem; font-weight: 600; }
.nesting-bucket { border-top: 1px solid var(--border-color, #394339); margin-top: .75rem; }
.nesting-form { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; padding-block: 1rem; }
.nesting-form label { display: grid; gap: .3rem; flex: 1 1 160px; }
.nesting-form select { width: 100%; padding: .55rem; background: #17231e; color: #f2f4ef; border: 1px solid #526356; border-radius: 6px; }
.nesting-form small { flex-basis: 100%; }
.nesting-row { padding-block: .75rem; border-bottom: 1px solid var(--border-color, #394339); }
.nesting-row p { margin-block: .3rem; }
.nesting-panel button,.nesting-row a { margin: .35rem .4rem .2rem 0; }
.nesting-row small { display: block; opacity: .8; }
.nesting-watch { display: flex; gap: .6rem; align-items: center; margin-block: 1rem; }
.nesting-attention { color: #f1c36c; }
.nesting-panel button:disabled { opacity: .5; cursor: wait; }
/* Keep both community panels inside the map, with nesting below sessions. */
.map-community-panels { position: absolute; left: 1rem; top: 5rem; bottom: 1rem; z-index: 34; display: flex; flex-direction: column; gap: .65rem; width: 310px; max-width: calc(100% - 2rem); pointer-events: none; }
.map-community-panels > * { pointer-events: auto; min-height: 0; flex-shrink: 0; }
.map-community-panels .map-session-panel { position: relative; inset: auto; width: 100%; max-width: none; max-height: none; margin: 0; padding: .75rem; box-sizing: border-box; flex: 1 1 0; }
.map-community-panels .map-session-panel.is-closed { display: none; }
.nesting-panel--map { margin: 0; padding: .75rem; overflow: auto; max-height: none; min-height: 0; box-sizing: border-box; flex: 1 1 0; background: rgba(12,22,30,.97); border-color: #334155; color: #e2e8f0; box-shadow: 0 10px 30px #0005; touch-action: pan-y; font-size: .85rem; }
.nesting-panel--map h2 { font-size: 1rem; margin: 0 0 .45rem; font-weight: 700; }
.nesting-panel--map h3 { font-size: .9rem; margin-block: .65rem .3rem; }
.nesting-panel--map > p { color: #afbfce; font-size: .78rem; }
.nesting-panel--map .nesting-form { display: grid; grid-template-columns: 1fr; gap: .5rem; }
.nesting-panel--map details > summary { font-size: .85rem; overflow-wrap: anywhere; }
.nesting-public-announcement { display: flex; gap: .5rem; justify-content: space-between; align-items: center; padding-block: .6rem; border-top: 1px solid #263846; text-decoration: none; color: inherit; }
.nesting-steam-badge { flex-shrink: 0; border: 1px solid #345349; border-radius: .35rem; padding: .1rem .35rem; color: #79e2cc; font-size: .7rem; font-weight: 600; }
.nesting-public-announcement:focus-visible { outline: 2px solid #74e4cc; outline-offset: 2px; }
@media (max-width: 600px) { .map-community-panels { left: .5rem; width: min(270px, calc(100% - 1rem)); } }
.nesting-panel--map[hidden],.nesting-panel-toggle[hidden] { display: none; }
.nesting-panel-header { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.nesting-panel-header h2 { margin: 0; }
.nesting-panel-header button { margin: 0; padding: 0 .15rem; background: transparent; border: 0; color: #cbd5e1; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.nesting-panel-toggle { width: fit-content; padding: .5rem .75rem; border: 1px solid #334155; border-radius: .5rem; background: #101b24; color: #e2e8f0; cursor: pointer; }
.nesting-panel--map .nesting-you-are { margin-bottom: .15rem; color: #afbfce; }
.nesting-panel--map .nesting-row { padding-block: .5rem; }
.nesting-panel--map .nesting-attention { font-size: .78rem; margin-top: .35rem; }
.nesting-panel--map button.secondary-button { padding: .35rem .55rem; font-size: .8rem; }

.nesting-public-heading { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
[data-nesting-guest] [hidden] { display: none; }
.nesting-steam-badge:focus-visible { outline: 2px solid #74e4cc; outline-offset: 2px; }

.nesting-panel--map .nesting-steam-cta { display: inline-flex; align-items: center; max-width: 100%; box-sizing: border-box; margin-block: .75rem .15rem; white-space: normal; }
.nesting-panel--map .nesting-steam-cta[hidden] { display: none; }

.map-community-panels .map-session-toggle { position: relative; inset: auto; width: fit-content; }

.nesting-panel--map .nesting-interest-row { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.nesting-panel--map .nesting-interest-row p { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.nesting-panel--map .nesting-interest-row .nesting-interest-action { display: inline-flex; flex-shrink: 0; align-items: center; margin: 0; padding: .2rem .4rem; font-size: .7rem; line-height: 1.25; white-space: nowrap; }

.nesting-panel--map h3.nesting-trends-heading { margin-top: 1.25rem; padding-top: 1rem; border-top: 2px solid #42566a; font-weight: 700; color: #afbfce; }
.nesting-panel--map .nesting-public-heading { font-weight: 700; color: #79e2cc; }

.nesting-panel-toggle [data-nesting-badge] { display: inline-block; width: .5rem; height: .5rem; margin-left: .35rem; border-radius: 50%; background: #ef4444; vertical-align: middle; }
.nesting-panel-toggle [data-nesting-badge][hidden] { display: none; }

.nesting-panel .nesting-feedback-error { color: #f3a6a6; }
