#outfit-ui {
  position: fixed;
  inset: 0;
  z-index: 30;
  color: #fffaf0;
  font: 14px system-ui;
  background: radial-gradient(ellipse at top, #30425b, #17233b 72%);
  overflow: auto;
  padding: 20px 30px;
}
#outfit-ui [hidden] {
  display: none !important;
}
#outfit-ui button,
#outfit-ui input {
  font: 700 13px system-ui;
  min-height: 46px;
  border-radius: 11px;
  padding: 11px 14px;
  border: 1px solid #9aafc34d;
  background: #304058;
  color: #fffaf0;
  cursor: pointer;
}
#outfit-ui button:disabled {
  opacity: 0.48;
  cursor: default;
}
#outfit-ui a {
  color: #d1f594;
  text-decoration: none;
}
#outfit-ui .primary {
  background: #c8f46a;
  color: #1e382d;
  border-color: #c8f46a;
}
#outfit-ui .danger {
  background: #e9a3a2;
  color: #421f31;
}
#outfit-ui input {
  display: block;
  cursor: text;
  width: 100%;
  background: #fffaf0;
  color: #253549;
  margin: 7px 0 12px;
}
#outfit-ui label {
  font-size: 12px;
}
.outfit-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  min-height: 48px;
}
.outfit-header strong {
  font-size: 18px;
}
.outfit-header small {
  display: block;
  color: #cfc0ed;
  font-size: 8px;
  letter-spacing: 0.13em;
  margin-top: 5px;
}
.outfit-entry {
  width: min(440px, 100%);
  margin: 28px auto;
  background: #1e304bee;
  border: 1px solid #8ba4b34a;
  padding: 26px;
  border-radius: 22px;
}
.outfit-entry h1 {
  font-size: 38px;
  line-height: 1.05;
  letter-spacing: -0.04em;
  margin: 12px 0;
}
.outfit-entry p {
  color: #d2ddea;
  font-size: 13px;
  line-height: 1.6;
}
.outfit-entry .primary {
  width: 100%;
  margin: 15px 0;
}
.outfit-join {
  display: flex;
  align-items: center;
  gap: 10px;
}
.outfit-join input {
  margin: 0 !important;
  min-width: 0;
}
#outfit-code {
  text-transform: uppercase;
}
.outfit-entry #character-open {
  margin: 14px 0;
}
.outfit-entry #shop-open {
  margin-top: 0;
}
.outfit-entry .account {
  margin-top: 15px;
}
#outfit-ui.connected {
  pointer-events: none;
  background: transparent;
  overflow: hidden;
}
#outfit-ui.connected .outfit-header {
  pointer-events: auto;
  background: #17243ddb;
  padding: 9px 14px;
  border-radius: 13px;
}
.outfit-caption {
  position: absolute;
  top: 110px;
  left: 32px;
  max-width: calc(100% - 390px);
  text-shadow: 0 2px 5px #0009;
  pointer-events: none;
}
.outfit-caption h2 {
  font-size: 31px;
  letter-spacing: -0.04em;
  margin: 9px 0;
}
.outfit-caption p {
  font-size: 12px;
  line-height: 1.5;
}
.outfit-roster {
  position: absolute;
  right: 30px;
  top: 110px;
  bottom: 110px;
  width: 300px;
  padding: 16px;
  background: #17243ddb;
  backdrop-filter: blur(8px);
  border: 1px solid #a8c0cd40;
  border-radius: 17px;
  overflow: auto;
  pointer-events: auto;
}
.outfit-roster > header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}
.outfit-roster header > button {
  font-size: 11px !important;
  min-height: 40px !important;
  padding: 8px !important;
}
#outfit-players {
  display: grid;
  gap: 5px;
}
#outfit-ui .outfit-person {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 5px 8px;
  min-height: 56px;
  text-align: left;
  background: #31425a;
  border: 1px solid transparent;
  opacity: 1;
}
#outfit-ui .outfit-person img {
  width: 46px;
  height: 46px;
  object-fit: contain;
}
#outfit-ui .outfit-person span {
  overflow-wrap: anywhere;
  font-size: 12px;
}
#outfit-ui .outfit-person small {
  display: block;
  font-weight: 400;
  color: #c4d7e6;
  font-size: 10px;
  margin-top: 4px;
}
#outfit-ui .outfit-person.eliminated {
  opacity: 0.5;
}
#outfit-ui .outfit-person.on-stage {
  border-color: #c9ee99;
}
#outfit-ui .outfit-person[aria-pressed='true'] {
  background: #79576e;
  border-color: #ffb9bd;
}
.outfit-actions {
  position: absolute;
  left: 30px;
  right: 30px;
  bottom: 28px;
  display: flex;
  justify-content: center;
  gap: 10px;
  pointer-events: auto;
}
#outfit-status {
  position: relative;
  text-align: center;
  font-size: 12px;
  line-height: 1.5;
  pointer-events: auto;
}
#outfit-ui.connected #outfit-status {
  position: absolute;
  bottom: 81px;
  left: 30px;
  right: 30px;
  background: #17233bcc;
  border-radius: 8px;
}
#outfit-status:empty {
  display: none;
}
#outfit-status a {
  margin-left: 15px;
  text-decoration: underline;
}
#outfit-ui :is(button, a, input):focus-visible {
  outline: 3px solid #ffc36c;
  outline-offset: 3px;
}
@media (max-width: 700px) {
  #outfit-ui {
    padding: 14px;
  }
  .outfit-header {
    gap: 8px;
  }
  .outfit-header strong {
    font-size: 14px;
  }
  .outfit-header > a {
    font-size: 10px;
  }
  .outfit-entry {
    padding: 22px;
    margin-top: 20px;
  }
  .outfit-caption {
    top: 88px;
    left: 16px;
    right: 16px;
    max-width: 100%;
  }
  .outfit-caption h2 {
    font-size: 25px;
  }
  .outfit-caption p {
    max-width: 300px;
    font-size: 11px;
  }
  .outfit-roster {
    top: auto;
    bottom: 105px;
    left: 14px;
    right: 14px;
    width: auto;
    height: 190px;
    padding: 10px;
  }
  .outfit-roster header {
    margin-bottom: 8px;
  }
  #outfit-players {
    display: flex;
    overflow: auto;
  }
  .outfit-person {
    flex: 0 0 155px;
  }
  #outfit-theme-label {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .outfit-roster #outfit-theme {
    margin: 3px 0 8px;
    min-height: 40px;
  }
  .outfit-actions {
    left: 14px;
    right: 14px;
    bottom: 22px;
    flex-wrap: wrap;
    gap: 6px;
  }
  .outfit-actions button {
    font-size: 11px !important;
    min-height: 44px !important;
    padding: 9px !important;
  }
  #outfit-ui.connected #outfit-status {
    bottom: 78px;
    left: 14px;
    right: 14px;
  }
  .outfit-header #outfit-invite {
    font-size: 10px;
    min-height: 40px;
    padding: 8px;
  }
}
@media (max-height: 570px) and (min-width: 701px) {
  .outfit-roster {
    top: 86px;
    bottom: 82px;
    width: 240px;
  }
  .outfit-caption {
    top: 80px;
    max-width: calc(100% - 310px);
  }
  .outfit-actions {
    bottom: 14px;
  }
  .outfit-caption h2 {
    font-size: 24px;
  }
  #outfit-ui.connected #outfit-status {
    bottom: 63px;
  }
}

@media (max-width: 700px) {
  #outfit-ui.connected:not([data-phase='lobby']) .outfit-roster {
    height: 125px;
  }
}

#outfit-controls{position:fixed;bottom:92px;left:50%;transform:translateX(-50%);display:flex;gap:8px;z-index:20;padding:9px;background:#172b40dc;border-radius:18px}#outfit-controls[hidden]{display:none}#outfit-controls button{min-height:48px;min-width:48px;border:1px solid #9db8bf;border-radius:12px;background:#284459;color:white;font-size:18px;touch-action:none;user-select:none}#outfit-controls button:active{background:#c8ef92;color:#183528}@media(max-width:600px){#outfit-controls{bottom:112px;gap:5px;padding:6px}#outfit-controls button{font-size:16px}}
