/* Stardust alliance controls. Keep the existing mint tactical UI, without obscuring combat. */
.revival-vote { flex: none; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .06rem .22rem; margin: 0 .6rem .18rem; padding: .13rem .2rem; border: 1px solid var(--line-2); border-left: 3px solid var(--mint-700); background: rgba(13, 20, 17, .94); font-size: calc(.15 * var(--t)); }
.revival-vote__title { display: flex; align-items: center; gap: .08rem; }
.revival-vote__title > .icon { color: var(--mint-400); }
.revival-vote__rules { color: var(--text-lo); line-height: 1.5; margin: 0; }
.revival-vote__rules b { color: var(--text-hi); }
.revival-vote__actions { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: .1rem; }
.revival-vote__actions > span { margin-right: auto; }
.revival-vote > small { grid-column: 1 / -1; color: var(--text-dim); font-size: calc(.12 * var(--t)); line-height: 1.5; }
.team-rescue { pointer-events: auto; max-width: 2.75rem; display: flex; flex-wrap: wrap; align-items: center; gap: .04rem .12rem; padding: .1rem .12rem; color: var(--mint-400); background: rgba(13, 26, 21, .95); border-left: 2px solid var(--mint-500); font-size: .14rem; }
.team-rescue > strong { display: flex; gap: .06rem; align-items: center; }
.team-rescue > small { flex-basis: 100%; font-size: .12rem; color: var(--text-lo); }
.team-rescue-action { display: flex; flex-direction: column; align-items: flex-start; gap: .02rem; margin-top: .04rem; max-width: 1.8rem; }
.team-rescue-action > small { color: var(--text-dim); font-size: .11rem; line-height: 1.35; }
.team-rescue-action .btn { min-height: .32rem; }
.team__row.is-pending .team__name { color: var(--amber); }
.pavatar__rescue { position: absolute; right: -.04rem; bottom: -.04rem; width: .28rem; height: .28rem; display: grid; place-items: center; background: var(--amber); color: var(--bg-0); }
.pavatar__rescue .icon { width: .19rem; height: .19rem; }
.online-players { display: inline-flex; align-items: center; gap: .06rem; color: var(--text-lo); font-size: calc(.14 * var(--t)); white-space: nowrap; }
.online-players .icon { width: .19rem; height: .19rem; color: var(--mint-500); }
.mode-card--match { grid-column: 1 / -1; min-height: 0; padding: .18rem .24rem; flex-direction: row; align-items: center; gap: .18rem; }
.mode-card--match .mode-card__icon { flex: none; width: .6rem; height: .6rem; }
.mode-card--match .mode-card__icon .icon { width: .3rem; height: .3rem; }
.mode-card--match .mode-card__name { font-size: calc(.3 * var(--t)); }
.mode-card--match .mode-card__text { gap: .05rem; }
.mode-card--match .mode-card__desc { max-width: none; font-size: calc(.15 * var(--t)); }
.mode-card--match .mode-card__points { flex-direction: row; flex-wrap: wrap; gap: .04rem .15rem; margin-top: 0; font-size: calc(.13 * var(--t)); }
.mode-card:disabled, .diff-card:disabled { cursor: default; }
.diff-list[hidden] { display: none !important; }
.mode-card:disabled:not(.is-selected) { opacity: .58; }
.matchmaking { margin-top: .2rem; padding: .2rem .24rem; border: 1px solid var(--line-2); border-left: 3px solid var(--mint-700); background: rgba(13, 20, 17, .94); }
.matchmaking > header { display: flex; align-items: center; gap: .1rem; color: var(--mint-400); }
.matchmaking h2 { font-size: calc(.28 * var(--t)); font-weight: 700; margin: .08rem 0 .04rem; }
.matchmaking p { font-size: calc(.15 * var(--t)); color: var(--text-lo); margin: .05rem 0; }
.matchmaking__status { font-size: calc(.17 * var(--t)); color: var(--text-md); margin: .12rem 0; }
.matchmaking__actions { display: flex; flex-wrap: wrap; gap: .12rem; margin-bottom: .12rem; }
.matchmaking > small { display: block; font-size: calc(.13 * var(--t)); color: var(--text-dim); line-height: 1.55; }
.matchmaking.is-offered { border-color: var(--mint-500); }
.matchmaking.is-offered .matchmaking__status { color: var(--mint-400); }
.matchmaking .matchmaking__reason { color: var(--amber); }
.matchmaking__population { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; margin-block: 8px; font-size: max(calc(.15 * var(--t)), 12px); color: var(--text-md); }
.matchmaking__population strong { font-size: max(calc(.3 * var(--t)), 22px); color: var(--mint-400); }
.matchmaking__population small { font-size: 12px; color: var(--text-lo); }
.matchmaking__motion { display: inline-flex; align-items: center; gap: 4px; margin-right: 8px; }
.matchmaking__motion i { width: 5px; height: 5px; background: var(--mint-400); opacity: .5; }
.matchmaking[data-motion="searching"] .matchmaking__motion i { animation: queue-search 1.4s ease-in-out infinite; }
.matchmaking[data-motion="searching"] .matchmaking__motion i:nth-child(2) { animation-delay: .15s; }
.matchmaking[data-motion="searching"] .matchmaking__motion i:nth-child(3) { animation-delay: .3s; }
.matchmaking[data-motion="allocating"] .matchmaking__motion { animation: queue-search 1s ease-in-out infinite; }
.matchmaking[data-motion="offered"] .matchmaking__motion { animation: queue-found .22s ease-out; }
.matchmaking[data-motion="idle"] .matchmaking__motion { display: none; }
@keyframes queue-search { 0%, 100% { transform: translateY(0); opacity: .4; } 50% { transform: translateY(-3px); opacity: 1; } }
@keyframes queue-found { from { transform: scale(.8); opacity: .4; } to { transform: scale(1); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .matchmaking .matchmaking__motion, .matchmaking .matchmaking__motion i { animation: none !important; } }
.sp-reduced-motion .matchmaking .matchmaking__motion, .sp-reduced-motion .matchmaking .matchmaking__motion i { animation: none; }
.matchmaking__revival { margin: .12rem 0; padding: .12rem .15rem; background: rgba(23, 36, 30, .65); border-left: 2px solid var(--mint-700); font-size: calc(.15 * var(--t)); }
.matchmaking__revival strong { color: var(--text-hi); }
.matchmaking__revival p { font-size: calc(.13 * var(--t)); line-height: 1.6; }
.matchmaking__revival > span { color: var(--mint-400); }
.room-screen > [hidden] { display: none !important; }
.room-matching { flex: 1; min-height: 0; padding: .2rem .6rem; }
.room-matching__team { max-width: 9rem; margin-inline: auto; }
.room-matching__team h2 { font-size: calc(.3 * var(--t)); margin: .1rem 0; }
.room-matching__team p { color: var(--text-lo); font-size: calc(.16 * var(--t)); line-height: 1.6; }
.room-matching__names { display: flex; flex-wrap: wrap; gap: .1rem .2rem; margin-top: .12rem; }
.room-matching__names > span { display: flex; align-items: center; gap: .06rem; color: var(--text-md); font-size: calc(.16 * var(--t)); }
.room-matching > .matchmaking { max-width: 9rem; margin-inline: auto; }
@media (max-width: 900px) {
  .revival-vote { margin-inline: .22rem; grid-template-columns: minmax(0, 1fr); gap: .05rem; padding: .08rem .13rem; }
  .revival-vote__title .micro { display: none; }
  .room-matching { padding-inline: max(.22rem, 16px); }
  .room-matching__team, .room-matching > .matchmaking { max-width: none; }
  .room-matching__team h2, .matchmaking h2 { font-size: max(calc(.28 * var(--t)), 18px); }
  .room-matching__team p, .matchmaking p { font-size: max(calc(.15 * var(--t)), 12px); }
  .room-matching__names, .matchmaking__revival { font-size: max(calc(.15 * var(--t)), 12px); }
  .matchmaking__status { font-size: max(calc(.17 * var(--t)), 13px); }
  .matchmaking__revival p, .matchmaking > small { font-size: max(calc(.13 * var(--t)), 11px); }
  .matchmaking__actions .btn { min-height: 40px; font-size: max(calc(.18 * var(--t)), 13px); }
}
