/* «Мои тусовки» tab and the hangout lists (js/screens/hangouts*.js, mine-*.js): cards, groups,
   the collapsed history, status chips and the host's request rows (also used by the sheet). The
   hangout sheet is in hangouts-sheet.css. Every control is at least 44×44 px. */

/* The `hidden` attribute loses to any author `display` rule (.btn-block is flex). */
.hgs [hidden],
.map-listview [hidden] {
  display: none !important;
}

/* Status banner slot of the map, «Мои тусовки» and create screens (js/screens/hangouts-status.js). */
.status-slot:empty {
  display: none;
}

/* «Мои тусовки»: the title with «＋ Новая тусовка», then the segments «Иду» · «Организую». */
.mine-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px var(--gap) 0;
}

.mine-title {
  min-width: 0;
  margin: 0;
}

.mine-new {
  flex-shrink: 0;
  min-height: 44px;
  padding: 0 8px;
  background: none;
  color: var(--link);
}

.mine-segments {
  margin-bottom: 4px;
}

.mine-segments .segment {
  min-height: 44px;
}

.mine-group-title {
  margin: 0;
  padding: 12px var(--gap) 0;
  color: var(--hint);
  font-size: 14px;
  font-weight: 600;
}

/* «История (N) ›»: a full-width row that opens the list below it. */
.mine-history {
  display: flex;
  align-items: center;
  gap: 8px;
  width: calc(100% - 2 * var(--gap));
  min-height: 48px;
  margin: 8px var(--gap) 0;
  padding: 0 14px;
  border: 0;
  border-radius: var(--radius);
  background: var(--section);
  color: var(--text);
  font: inherit;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.mine-chevron {
  flex-shrink: 0;
  color: var(--hint);
  font-size: 20px;
  line-height: 1;
  transition: transform 0.15s ease;
}

.mine-history[aria-expanded='true'] .mine-chevron {
  transform: rotate(90deg);
}

/* «👥 1 из 4 · 2 новые заявки ›» on the host's cards. */
.hgc-extra {
  font-size: 13px;
}

.mine-host-line {
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--hint);
}

.mine-fresh {
  color: var(--accent);
  font-weight: 600;
}

.mine .empty .btn,
.map-listview .hgs-more {
  min-height: 44px;
}

.mine .empty .btn {
  margin-top: 12px;
}

.hgs-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: var(--gap);
}

.hgs-list > .skeleton-list {
  padding: 0;
}

.hgs-more {
  width: auto;
  margin: 0 var(--gap) var(--gap);
}

.hgc {
  display: flex;
  gap: 12px;
  padding: 10px;
  border-radius: var(--radius);
  background: var(--section);
  cursor: pointer;
}

.hgc:active {
  opacity: 0.85;
}

.hgc-photo {
  flex-shrink: 0;
  width: 76px;
  height: 76px;
  border-radius: 12px;
  object-fit: cover;
  background: var(--bg2);
}

.hgc-emoji {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 34px;
}

.hgc-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.hgc-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.hgc-title {
  min-width: 0;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.hgc-when {
  font-size: 14px;
}

.hgc-line {
  overflow: hidden;
  color: var(--hint);
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* "Host · seats": the host name gives way first, the seats stay whole. */
.hgc-meta {
  display: flex;
  gap: 4px;
}

.hgc-host {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.hgc-seats {
  flex-shrink: 0;
}

/* A cover photo that failed to load falls back to the format emoji, sized like .hgc-emoji. */
.hgc-photo.photo-empty {
  font-size: 34px;
}

/* Status chips: the hangout's status and the caller's own request. */
.hg-chip {
  flex-shrink: 0;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(154, 163, 173, 0.2);
  color: var(--hint);
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.hg-chip-full,
.hg-chip-removed {
  background: rgba(229, 57, 53, 0.13);
  color: var(--danger);
}

.hg-chip-wait {
  background: rgba(245, 166, 35, 0.18);
  color: #c77c00;
}

.hg-chip-in {
  background: rgba(46, 157, 71, 0.16);
  color: #2e9d47;
}

/* A join request as the host sees it in the hangout sheet. */
.req {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 10px 2px;
  border-top: 1px solid var(--separator);
}

.req:first-child {
  border-top: 0;
}

.req-person {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  cursor: pointer;
}

.req-msg {
  margin: 0;
  padding: 8px 10px;
  border-radius: 10px;
  background: var(--bg2);
  font-size: 14px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.req-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.req-btn {
  min-height: 44px;
  padding: 0 16px;
  font-size: 14px;
}

.req-status {
  color: var(--hint);
  font-size: 13px;
  font-weight: 600;
}

.req-status-accepted {
  color: #2e9d47;
}
