:root {
  color-scheme: dark;
  --bg: #042b22;
  --panel: rgba(10, 20, 23, 0.92);
  --panel-soft: rgba(18, 31, 34, 0.94);
  --line: rgba(255, 255, 255, 0.16);
  --green: #58b908;
  --green-dark: #2d7608;
  --yellow: #ffb711;
  --orange: #ff9708;
  --red: #c81f24;
  --blue: #008cc2;
  --cyan: #03a0c8;
  --text: #f4f6f2;
  --muted: #c6cfca;
  --shadow: 0 14px 30px rgba(0, 0, 0, 0.45);
  --lobby-scale: 0.74;
  --game-scale: 0.74;
  --game-design-height: 956px;
}

@media (min-width: 768px) and (max-width: 900px), (min-width: 768px) and (max-aspect-ratio: 1/1) {
  .game-viewport .game-mobile-info-stack > .info-panel > .panel-title,
  .game-viewport .game-mobile-players-page .panel-title,
  .game-viewport .game-mobile-chat-page .panel-title,
  .game-viewport .game-mobile-info-stack > .game-mobile-room-info::before {
    min-height: 42px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 16px !important;
    color: #fff !important;
    font-size: 20px !important;
    font-weight: 1000 !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.52) !important;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 42%),
      linear-gradient(90deg, #80bf00, #277c00) !important;
  }

  .game-viewport .game-mobile-info-stack > .game-mobile-room-info {
    overflow: hidden !important;
    padding: 0 10px 10px !important;
  }

  .game-viewport .game-mobile-info-stack > .game-mobile-room-info::before {
    content: "INFORMAÇÕES DA SALA" !important;
    margin: 0 -10px 2px !important;
  }

  .game-viewport .game-mobile-menu-letter,
  .game-viewport .game-mobile-round-label,
  .game-viewport .game-mobile-time-value {
    border-radius: 6px !important;
    color: #fff !important;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.72) !important;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 42%),
      linear-gradient(90deg, #80bf00, #277c00) !important;
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.18), 0 2px 5px rgba(0, 0, 0, 0.28) !important;
  }
}

@media (min-width: 768px) and (max-width: 1320px), (min-width: 768px) and (max-aspect-ratio: 1/1) {
  #app .game-viewport .game-scale .room-info-card strong {
    transform: translateY(12px) !important;
  }

  #app .game-viewport .game-scale .room-info-card div {
    transform: translateY(12px) !important;
  }

  #app .game-viewport .game-mobile-room-line,
  #app .game-viewport .game-mobile-room-grid > div {
    transform: translateY(12px) !important;
  }
}

.game-mobile-shell {
  display: none;
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .game-viewport {
    --game-effective-scale: 1;
    width: 100%;
    height: calc(100vh - 20px);
    height: calc(100dvh - 20px);
    place-items: stretch;
  }

  .game-viewport .game-scale {
    width: 100%;
    height: 100%;
    zoom: 1;
    display: grid;
    min-height: 0;
  }

  .game-viewport .lobby-stage {
    min-height: 0;
    padding-top: 0;
    display: grid;
  }

  .game-desktop-layout {
    display: none;
  }

  .game-mobile-shell {
    width: 100%;
    height: 100%;
    min-height: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    padding-top: 16px;
    overflow: hidden;
  }

  .game-mobile-menu {
    position: relative;
    z-index: 2;
    width: 96%;
    aspect-ratio: 1474 / 353;
    max-height: 92px;
    justify-self: center;
    margin-bottom: 10px;
    filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.46));
  }

  .game-mobile-menu img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: fill;
    pointer-events: none;
    user-select: none;
  }

  .game-mobile-menu-letter {
    position: absolute;
    left: 50%;
    top: 48%;
    width: 22%;
    height: 70%;
    display: grid;
    place-items: center;
    color: #d6ff39;
    font-size: clamp(34px, 10vw, 58px);
    font-weight: 1000;
    line-height: 1;
    text-shadow:
      0 4px 4px rgba(0, 0, 0, 0.74),
      0 0 10px rgba(118, 192, 5, 0.42);
    transform: translate(-50%, -50%);
    pointer-events: none;
    overflow: hidden;
  }

  .game-mobile-menu-letter .letter-value {
    width: 100%;
    height: var(--slot-height, 58px);
    display: grid;
    place-items: center;
    overflow: hidden;
    line-height: 1;
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
  }

  .game-mobile-menu-letter .letter-value::before,
  .game-mobile-menu-letter .letter-value::after,
  .game-mobile-menu-letter .slot-reel::before,
  .game-mobile-menu-letter .slot-reel::after {
    content: none !important;
    display: none !important;
  }

  .game-mobile-menu-letter .letter-final,
  .game-mobile-menu-letter .slot-reel {
    grid-area: 1 / 1;
  }

  .game-mobile-menu-letter .slot-reel {
    inset: 0;
    grid-auto-rows: var(--slot-height, 58px);
    color: #d6ff39;
    font-size: inherit;
    text-shadow:
      0 4px 4px rgba(0, 0, 0, 0.74),
      0 0 10px rgba(118, 192, 5, 0.42);
  }

  .game-mobile-menu-letter .slot-reel b {
    height: var(--slot-height, 58px);
    text-shadow:
      0 4px 4px rgba(0, 0, 0, 0.74),
      0 0 10px rgba(118, 192, 5, 0.42);
  }

  .game-mobile-menu-letter.is-drawing .letter-final {
    opacity: 0;
  }

  .game-mobile-menu-letter.is-drawing .slot-reel {
    display: grid;
    animation: slotReel 5s steps(78, end) both;
    animation-delay: var(--letter-draw-delay);
  }

  .game-mobile-menu-hit {
    position: absolute;
    top: 11%;
    bottom: 11%;
    z-index: 3;
    appearance: none;
    -webkit-appearance: none;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
    color: transparent;
    outline: 0;
    -webkit-tap-highlight-color: transparent;
  }

  .game-mobile-menu-info {
    left: 0;
    width: 16.8%;
  }

  .game-mobile-menu-players {
    left: 17%;
    width: 20.6%;
  }

  .game-mobile-players-count {
    position: absolute;
    left: 30.6%;
    top: 13%;
    z-index: 4;
    min-width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    padding: 0 6px;
    border-radius: 999px;
    border: 2px solid #71AD29;
    background: #1B1D1C;
    color: #ffffff;
    font-size: 12px;
    font-weight: 1000;
    line-height: 1;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.72);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.48), inset 0 1px 0 rgba(255, 255, 255, 0.24);
    pointer-events: none;
  }

  .game-mobile-menu-play {
    left: 38.1%;
    width: 24.4%;
  }

  .game-mobile-menu-chat {
    left: 63%;
    width: 20%;
  }

  .game-mobile-menu-back {
    left: 83%;
    width: 17%;
  }

  .game-mobile-menu-hit.is-active {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
  }

  .game-mobile-carousel {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .game-mobile-carousel::-webkit-scrollbar {
    display: none;
  }

  .game-mobile-page {
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;
    height: 100%;
    min-height: 0;
    display: grid;
    padding: 7px 8px max(8px, env(safe-area-inset-bottom));
    overflow: hidden;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  .game-mobile-info-stack,
  .game-mobile-play-stack {
    --game-mobile-board-height: clamp(390px, 50dvh, 480px);
    min-height: 0;
    display: grid;
    gap: 8px;
    align-content: start;
    overflow-y: auto;
    scrollbar-width: none;
  }

  .game-mobile-info-stack::-webkit-scrollbar,
  .game-mobile-play-stack::-webkit-scrollbar {
    display: none;
  }

  .game-mobile-info-stack {
    grid-template-rows: auto auto auto;
    align-content: start;
  }

  .game-mobile-info-stack > .info-panel,
  .game-mobile-info-stack > .game-mobile-room-info,
  .game-mobile-info-stack > .legend-box {
    margin-bottom: 0;
    filter: none;
    box-shadow: none;
  }

  .game-mobile-info-stack > .info-panel::before,
  .game-mobile-info-stack > .info-panel::after,
  .game-mobile-info-stack > .game-mobile-room-info::before,
  .game-mobile-info-stack > .game-mobile-room-info::after,
  .game-mobile-info-stack > .legend-box::before,
  .game-mobile-info-stack > .legend-box::after {
    display: none;
    content: none;
  }

  .game-mobile-info-stack > .info-panel > .panel-title {
    display: none;
  }

  .game-mobile-info-stack > .info-panel > .panel-body {
    min-height: 0;
    align-content: start;
    gap: 7px;
    padding-top: 10px;
    padding-bottom: 10px;
  }

  .game-mobile-info-stack .player-info {
    grid-template-columns: 76px minmax(0, 1fr) 46px;
    gap: 8px;
    padding: 10px;
  }

  .game-mobile-info-stack .avatar.large {
    width: 76px;
    height: 76px;
  }

  .game-mobile-info-stack .player-text h2 {
    font-size: 15px;
  }

  .game-mobile-info-stack .player-text p {
    font-size: 12px;
  }

  .game-mobile-info-stack .player-info .grade-shield {
    width: 42px;
    height: 52px;
  }

  .game-mobile-info-stack .grade-progress,
  .game-mobile-info-stack .player-stats,
  .game-mobile-info-stack .player-info-stats {
    grid-column: 1 / -1;
  }

  .game-mobile-info-stack .player-stats,
  .game-mobile-info-stack .player-info-stats {
    gap: 6px;
  }

  .game-mobile-info-stack .compact-player-info-stats div {
    grid-template-rows: 18px auto auto;
    min-height: 58px;
    padding: 6px 3px;
    align-content: center;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(0, 0, 0, 0.28);
    box-shadow: none;
  }

  .game-mobile-info-stack .compact-player-info-stats img {
    width: 18px;
    height: 18px;
  }

  .game-mobile-room-info {
    padding: 10px;
    display: grid;
    gap: 8px;
  }

  .game-mobile-room-line,
  .game-mobile-room-grid > div {
    min-width: 0;
    display: grid;
    gap: 3px;
    align-content: center;
    justify-items: center;
    padding: 8px;
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.055);
    text-align: center;
  }

  .game-mobile-room-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  .game-mobile-room-info span {
    color: rgba(255, 255, 255, 0.76);
    font-size: 9px;
    font-weight: 1000;
  }

  .game-mobile-room-info strong {
    overflow: hidden;
    color: #fff;
    font-size: 13px;
    font-weight: 1000;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .game-mobile-info-stack .legend-box {
    min-height: 0;
    height: auto;
    max-height: max-content;
    align-self: start;
    align-content: start;
    align-items: center;
    grid-auto-rows: min-content;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 7px;
    padding: 8px 9px;
    justify-items: stretch;
    margin-bottom: 0;
    overflow: hidden;
    filter: none;
    box-shadow: none;
  }

  .game-mobile-info-stack .legend-box::before,
  .game-mobile-info-stack .legend-box::after {
    display: none;
    content: none;
  }

  .game-mobile-info-stack .legend-box h3 {
    grid-column: 1 / -1;
    min-height: 0;
    margin: 0;
    font-size: 13px;
  }

  .game-mobile-info-stack .legend-box div {
    width: auto;
    min-height: 26px;
    grid-template-columns: 24px minmax(76px, max-content);
    gap: 8px;
    align-items: center;
    justify-content: center;
    justify-items: center;
    text-align: center;
  }

  .game-mobile-info-stack .legend-box h3 {
    min-height: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
  }

  .game-mobile-info-stack .legend-chip {
    width: 22px;
    height: 22px;
  }

  .game-mobile-info-stack .legend-box strong {
    width: 100%;
    font-size: 11px;
    text-align: left;
  }

  .game-mobile-players-page > .online-panel,
  .game-mobile-chat-page > .chat-panel {
    height: 100%;
    min-height: 0;
    border-top: 0;
    margin-bottom: 0;
    filter: none;
    box-shadow: none;
  }

  .game-mobile-players-page > .online-panel::before,
  .game-mobile-players-page > .online-panel::after,
  .game-mobile-chat-page > .chat-panel::before,
  .game-mobile-chat-page > .chat-panel::after {
    display: none;
    content: none;
  }

  .game-mobile-play-stack {
    grid-template-rows: auto var(--game-mobile-board-height) minmax(0, 1fr);
  }

  .game-mobile-play-stack > .answer-panel,
  .game-mobile-play-stack > .result-table-wrap,
  .game-mobile-play-stack > .final-podium-panel,
  .game-mobile-play-stack > .waiting-panel {
    min-height: 0;
    height: 100%;
    margin-bottom: 0;
    filter: none;
    box-shadow: none;
  }

  .game-mobile-play-stack > .answer-panel::before,
  .game-mobile-play-stack > .answer-panel::after,
  .game-mobile-play-stack > .result-table-wrap::before,
  .game-mobile-play-stack > .result-table-wrap::after,
  .game-mobile-play-stack > .final-podium-panel::before,
  .game-mobile-play-stack > .final-podium-panel::after,
  .game-mobile-play-stack > .waiting-panel::before,
  .game-mobile-play-stack > .waiting-panel::after {
    display: none;
    content: none;
  }

  .game-mobile-play-stack > .answer-panel {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-content: start;
    gap: 8px;
    padding: 8px;
    overflow-y: auto;
  }

  .game-mobile-play-stack .answer-card {
    min-height: 68px;
    gap: 0;
    padding: 6px;
  }

  .game-mobile-play-stack .answer-card span {
    min-height: 30px;
    font-size: 12px;
  }

  .game-mobile-play-stack .answer-card input {
    height: 30px;
    font-size: 13px;
  }

  .game-mobile-play-stack .result-table-wrap {
    align-self: start;
    height: 100%;
    overflow: hidden;
  }

  .game-mobile-play-stack .result-table-scroll {
    height: 100%;
  }

  .game-mobile-round-header,
  .game-mobile-round-footer {
    display: grid;
    gap: 10px;
  }

  .game-mobile-round-footer {
    align-self: end;
  }

  .game-mobile-round-footer .stop-box {
    min-height: 78px;
    margin-bottom: 0;
    filter: none;
    box-shadow: none;
  }

  .game-mobile-round-footer .stop-box::before,
  .game-mobile-round-footer .stop-box::after {
    display: none;
    content: none;
  }

  .game-mobile-round-footer .stop-button {
    min-height: 72px;
  }

  .game-mobile-round-footer .stop-copy {
    inset: 0 6% 0 30%;
    place-content: center;
    place-items: center;
    gap: 2px;
  }

  .game-mobile-round-footer .stop-copy strong {
    font-size: clamp(17px, 5.2vw, 24px);
    line-height: 1;
    white-space: nowrap;
    overflow-wrap: normal;
    text-overflow: ellipsis;
  }

  .game-mobile-round-footer .result-stop .stop-copy strong,
  .game-mobile-round-footer .waiting-stop .stop-copy strong,
  .game-mobile-round-footer .stop-button.is-locked .stop-copy strong {
    font-size: clamp(15px, 4.7vw, 21px);
  }

  .game-mobile-status-line {
    min-height: 30px;
    display: grid;
    place-items: center;
    padding: 0 10px;
    border: 1px solid rgba(116, 212, 49, 0.42);
    border-radius: 7px;
    background: linear-gradient(180deg, rgba(12, 28, 20, 0.96), rgba(3, 13, 12, 0.96));
    box-shadow: inset 0 0 12px rgba(116, 212, 49, 0.12);
    overflow: hidden;
  }

  .game-mobile-status-line .status-state {
    min-height: 0;
    gap: 7px;
    font-size: 11px;
    line-height: 1;
  }

  .game-mobile-status-line .status-state i {
    width: 8px;
    height: 8px;
    box-shadow: 0 0 0 2px rgba(116, 212, 49, 0.12);
  }

  .game-mobile-status-line .status-state strong {
    font-size: 11px;
  }

  .game-mobile-round-timebar {
    position: relative;
    width: 100%;
    height: clamp(34px, 9vw, 46px);
    overflow: hidden;
    isolation: isolate;
  }

  .game-mobile-round-timebar img {
    position: absolute;
    inset: 0;
    z-index: 0;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
    user-select: none;
  }

  .game-mobile-round-label {
    position: absolute;
    z-index: 2;
    left: 11.5%;
    top: 50%;
    max-width: 22%;
    color: #ffffff;
    font-size: 10px;
    font-weight: 1000;
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-shadow: 0 2px 2px rgba(0, 0, 0, 0.88);
    transform: translateY(-50%);
  }

  .game-mobile-time-progress {
    position: absolute;
    z-index: 1;
    left: 34%;
    right: 12%;
    top: 41%;
    height: 18%;
    border-radius: 999px;
    background: rgba(9, 14, 9, 0.9);
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.72);
    overflow: hidden;
  }

  .game-mobile-time-progress i {
    display: block;
    width: var(--mobile-round-progress, 100%);
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #1EAC32, #74d431);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.28);
    transition: width 0.28s linear;
  }

  .game-mobile-time-value {
    position: absolute;
    z-index: 2;
    right: 6.5%;
    top: 50%;
    max-width: 11%;
    color: #ffffff;
    font-size: 10px;
    font-weight: 1000;
    line-height: 1;
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-shadow: 0 2px 2px rgba(0, 0, 0, 0.88);
    transform: translateY(-50%);
  }

  .game-mobile-round-timebar.is-low .game-mobile-time-progress i {
    background: linear-gradient(90deg, #ffb12f, #ff4242);
  }

  .game-mobile-chat-page .chat-panel {
    height: 100%;
    min-height: 0;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
  }

  .game-mobile-chat-page .panel-title {
    display: none;
  }

  .game-mobile-chat-page .chat-messages {
    grid-row: 1;
    min-height: 0;
  }

  .game-mobile-chat-page .chat-form {
    grid-row: 2;
    align-self: end;
    grid-template-columns: minmax(0, 1fr) 92px;
    padding: 8px 10px 10px;
  }

  .game-mobile-chat-page .chat-form input {
    height: 36px;
  }

  .game-mobile-chat-page .chat-form button {
    width: 92px;
    height: 36px;
    min-height: 36px;
    align-self: center;
    justify-self: end;
    font-size: 12px;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .lobby-rooms-page .rooms-list {
    gap: 4px;
    padding: 5px 6px;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .lobby-rooms-page .room-row {
    height: 44px;
    min-height: 44px;
    grid-template-columns: minmax(100px, 1fr) 34px 50px 64px 32px 55px;
    grid-template-rows: 1fr;
    column-gap: 3px;
    padding: 0 5px;
    align-items: center;
  }

  .lobby-rooms-page .room-row .room-stat {
    min-width: 0;
    width: auto;
    margin-left: 0;
    gap: 2px;
    justify-content: flex-start;
    overflow: hidden;
    white-space: nowrap;
    font-size: 8.4px;
    line-height: 1;
  }

  .lobby-rooms-page .room-name-stat {
    grid-column: 1;
    grid-row: 1;
    font-size: 8.8px;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(2) {
    grid-column: 2;
    grid-row: 1;
    width: auto;
    margin-left: 0;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(3) {
    grid-column: 3;
    grid-row: 1;
    width: auto;
    margin-left: 0;
  }

  .lobby-rooms-page .room-status {
    grid-column: 4;
    grid-row: 1;
    width: auto;
    margin-left: 0;
    color: #ffe3a1;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(5) {
    grid-column: 5;
    grid-row: 1;
    width: auto;
    margin-left: 0;
  }

  .lobby-rooms-page .room-level-icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
  }

  .lobby-rooms-page .room-stat-icon {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
  }

  .lobby-rooms-page .room-row button {
    grid-column: 6;
    grid-row: 1;
    width: 55px;
    height: 24px;
    align-self: center;
    justify-self: end;
    font-size: 8.8px;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .lobby-rooms-page {
    padding: 5px 8px max(6px, env(safe-area-inset-bottom));
  }

  .lobby-rooms-page .rooms-panel {
    grid-template-rows: 34px minmax(0, 1fr) 34px;
  }

  .lobby-rooms-page .rooms-title {
    min-height: 34px;
    padding: 0 12px;
    font-size: 17px;
  }

  .lobby-rooms-page .rooms-list {
    gap: 5px;
    padding: 5px 7px;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .lobby-rooms-page .room-row {
    min-height: 58px;
    grid-template-columns: minmax(0, 1fr) 78px;
    grid-template-rows: 20px 17px 17px;
    gap: 0 6px;
    padding: 3px 6px;
    align-items: center;
  }

  .lobby-rooms-page .room-stat {
    gap: 3px;
    font-size: 10.5px;
    line-height: 1;
  }

  .lobby-rooms-page .room-name-stat {
    grid-column: 1;
    grid-row: 1;
    font-size: 12px;
  }

  .lobby-rooms-page .room-status {
    grid-column: 1;
    grid-row: 3;
    width: 112px;
    white-space: nowrap;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(2) {
    grid-column: 1;
    grid-row: 2;
    width: 58px;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(3) {
    grid-column: 1;
    grid-row: 2;
    margin-left: 62px;
    width: 84px;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(5) {
    grid-column: 1;
    grid-row: 3;
    margin-left: 118px;
    width: 58px;
  }

  .lobby-rooms-page .room-stat-icon {
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
  }

  .lobby-rooms-page .room-level-icon {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
  }

  .lobby-rooms-page .room-row button {
    grid-column: 2;
    grid-row: 1 / 4;
    width: 76px;
    height: 28px;
    font-size: 10px;
  }

  .lobby-rooms-page .online-strip {
    min-height: 34px;
    grid-template-columns: minmax(0, 1fr) 58px;
    gap: 6px;
    padding: 4px 7px;
    font-size: 12px;
  }

  .lobby-rooms-page .online-strip span {
    width: 54px;
    height: 25px;
    font-size: 12px;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .lobby-rooms-page .rooms-list {
    gap: 4px;
    padding: 5px 6px;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .lobby-rooms-page .room-row {
    height: 44px;
    min-height: 44px;
    grid-template-columns: minmax(100px, 1fr) 34px 50px 64px 32px 55px;
    grid-template-rows: 1fr;
    column-gap: 3px;
    padding: 0 5px;
    align-items: center;
  }

  .lobby-rooms-page .room-row .room-stat {
    min-width: 0;
    width: auto;
    margin-left: 0;
    gap: 2px;
    justify-content: flex-start;
    overflow: hidden;
    white-space: nowrap;
    font-size: 8.4px;
    line-height: 1;
  }

  .lobby-rooms-page .room-name-stat {
    grid-column: 1;
    grid-row: 1;
    font-size: 8.8px;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(2) {
    grid-column: 2;
    grid-row: 1;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(3) {
    grid-column: 3;
    grid-row: 1;
  }

  .lobby-rooms-page .room-status {
    grid-column: 4;
    grid-row: 1;
    color: #ffe3a1;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(5) {
    grid-column: 5;
    grid-row: 1;
  }

  .lobby-rooms-page .room-level-icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
  }

  .lobby-rooms-page .room-stat-icon {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
  }

  .lobby-rooms-page .room-row button {
    grid-column: 6;
    grid-row: 1;
    width: 55px;
    height: 24px;
    align-self: center;
    justify-self: end;
    font-size: 8.8px;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  body:has(.lobby-viewport:not(.game-viewport):not(.home-viewport)) .app-shell {
    width: 100%;
    padding: 0;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) {
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    display: block;
    overflow: hidden;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-scale {
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
    display: block;
    zoom: 1;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-stage {
    height: 100%;
    display: block;
    padding: 0;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-grid {
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 1fr);
    grid-template-areas: none;
    gap: 0;
    align-items: stretch;
    overflow: hidden;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .left-column {
    display: none;
  }

  .lobby-mobile-shell {
    --lobby-mobile-active-left: 18%;
    --lobby-mobile-active-width: 31%;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
    height: 100%;
    overflow: hidden;
    background:
      linear-gradient(180deg, rgba(3, 31, 27, 0.98), rgba(5, 16, 17, 0.98)),
      #071816;
  }

  .lobby-mobile-shell[data-active-panel="players"] {
    --lobby-mobile-active-left: 52%;
    --lobby-mobile-active-width: 22%;
  }

  .lobby-mobile-shell[data-active-panel="chat"] {
    --lobby-mobile-active-left: 71%;
    --lobby-mobile-active-width: 9%;
  }

  .lobby-mobile-menu {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    aspect-ratio: 1347 / 217;
    min-height: 58px;
    max-height: 86px;
    overflow: hidden;
    filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.46));
  }

  .lobby-mobile-menu::after {
    content: "";
    position: absolute;
    left: var(--lobby-mobile-active-left);
    bottom: 9%;
    width: var(--lobby-mobile-active-width);
    height: 3px;
    border-radius: 999px;
    background: #1dffc4;
    box-shadow: 0 0 10px rgba(29, 255, 196, 0.9), 0 0 18px rgba(29, 255, 196, 0.48);
    pointer-events: none;
    transform: translateX(-50%);
  }

  .lobby-mobile-menu img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: fill;
    user-select: none;
    pointer-events: none;
  }

  .lobby-mobile-menu-hit {
    position: absolute;
    top: 10%;
    bottom: 10%;
    z-index: 3;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-tap-highlight-color: transparent;
  }

  .lobby-mobile-menu-hit:focus-visible {
    outline: 2px solid #1dffc4;
    outline-offset: -6px;
    filter: none;
  }

  .lobby-mobile-menu-rooms {
    left: 3.2%;
    width: 35.2%;
  }

  .lobby-mobile-menu-players {
    left: 38.4%;
    width: 26.6%;
  }

  .lobby-mobile-menu-chat {
    left: 65%;
    width: 12%;
  }

  .lobby-mobile-menu-back {
    left: 77%;
    width: 20%;
  }

  .lobby-mobile-carousel {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .lobby-mobile-carousel::-webkit-scrollbar {
    display: none;
  }

  .lobby-mobile-carousel > .lobby-mobile-page {
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;
    height: 100%;
    min-height: 0;
    display: grid;
    padding: 8px 8px max(10px, env(safe-area-inset-bottom));
    overflow: hidden;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  .lobby-mobile-carousel > .rooms-column,
  .lobby-mobile-carousel > .chat-column,
  .lobby-mobile-carousel > .lobby-players-page {
    grid-area: auto;
    height: 100%;
  }

  .lobby-grid .lobby-mobile-carousel > .chat-column {
    height: 100%;
  }

  .lobby-mobile-page > .panel,
  .lobby-mobile-page > .rooms-panel,
  .lobby-mobile-page > .chat-panel,
  .lobby-mobile-page > .online-panel,
  .lobby-players-page > .online-panel {
    height: 100%;
    min-height: 0;
  }

  .lobby-mobile-page .rooms-panel {
    grid-template-rows: auto minmax(0, 1fr) auto;
  }

  .lobby-mobile-page .rooms-title,
  .lobby-mobile-page .panel-title {
    min-height: 40px;
    font-size: 18px;
  }

  .lobby-mobile-page .rooms-legend {
    display: none;
  }

  .lobby-mobile-page .rooms-list {
    padding: 8px;
    gap: 9px;
    overflow-y: auto;
  }

  .lobby-mobile-page .room-row {
    grid-template-columns: minmax(0, 1fr) 92px;
    grid-template-rows: auto auto auto;
    min-height: 92px;
    gap: 5px 8px;
    padding: 9px;
  }

  .lobby-mobile-page .room-name-stat,
  .lobby-mobile-page .room-status {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .lobby-mobile-page .room-status {
    white-space: normal;
  }

  .lobby-mobile-page .room-row button {
    grid-column: 2;
    grid-row: 2 / 4;
    align-self: center;
    justify-self: end;
    width: 88px;
    height: 34px;
  }

  .lobby-mobile-page .room-stat {
    justify-content: flex-start;
    font-size: 12px;
  }

  .lobby-mobile-page .room-stat-icon {
    width: 17px;
    height: 17px;
    flex-basis: 17px;
  }

  .lobby-mobile-page .room-level-icon {
    width: 25px;
    height: 25px;
    flex-basis: 25px;
  }

  .lobby-mobile-page .online-strip {
    min-height: 38px;
    grid-template-columns: minmax(0, 1fr) 76px;
    gap: 8px;
    padding: 5px 8px;
    font-size: 13px;
    text-align: left;
  }

  .lobby-mobile-page .online-strip strong {
    justify-content: flex-start;
  }

  .lobby-mobile-page .online-strip span {
    width: 70px;
    height: 28px;
    justify-self: end;
  }

  .lobby-mobile-page .online-panel-footer {
    display: none;
  }

  .lobby-mobile-page .online-list {
    padding: 8px 10px;
  }

  .lobby-mobile-page .online-row {
    min-height: 54px;
    grid-template-columns: 40px minmax(0, 1fr) 42px 54px;
    gap: 7px;
  }

  .lobby-mobile-page .chat-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
  }

  .lobby-mobile-page .chat-messages {
    height: auto;
    min-height: 0;
    overflow-y: auto;
    padding: 10px 12px 6px;
  }

  .lobby-mobile-page .chat-form {
    grid-template-columns: minmax(0, 1fr) 84px;
    gap: 7px;
    padding: 8px;
  }

  .lobby-mobile-page .chat-form input {
    height: 38px;
    font-size: 13px;
  }

  .lobby-mobile-page .chat-form button {
    height: 38px;
    font-size: 12px;
  }
}

.lobby-mobile-shell,
.lobby-mobile-carousel {
  display: contents;
}

.lobby-mobile-menu {
  display: none;
}

.lobby-mobile-page {
  min-width: 0;
  min-height: 0;
}

.lobby-players-page {
  grid-area: players;
  min-height: 0;
  height: 100%;
  display: grid;
}

.lobby-players-page > .online-panel {
  min-height: 0;
  height: 100%;
}

@media (max-width: 720px) {
  body:has(.lobby-viewport:not(.game-viewport):not(.home-viewport)) .app-shell {
    width: 100%;
    padding: 0;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) {
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    display: block;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-scale {
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    max-height: 100vh;
    max-height: 100dvh;
    display: block;
    zoom: 1;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-stage {
    height: 100%;
    display: block;
    padding: 0;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-grid {
    width: 100%;
    height: 100%;
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 1fr);
    gap: 0;
    align-items: stretch;
    overflow: hidden;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .left-column {
    display: none;
  }

  .lobby-mobile-shell {
    --lobby-mobile-active-left: 18%;
    --lobby-mobile-active-width: 31%;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    min-height: 0;
    height: 100%;
    overflow: hidden;
    background:
      linear-gradient(180deg, rgba(3, 31, 27, 0.98), rgba(5, 16, 17, 0.98)),
      #071816;
  }

  .lobby-mobile-shell[data-active-panel="players"] {
    --lobby-mobile-active-left: 52%;
    --lobby-mobile-active-width: 22%;
  }

  .lobby-mobile-shell[data-active-panel="chat"] {
    --lobby-mobile-active-left: 71%;
    --lobby-mobile-active-width: 9%;
  }

  .lobby-mobile-menu {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    aspect-ratio: 1347 / 217;
    min-height: 58px;
    max-height: 86px;
    overflow: hidden;
    filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.46));
  }

  .lobby-mobile-menu::after {
    content: "";
    position: absolute;
    left: var(--lobby-mobile-active-left);
    bottom: 9%;
    width: var(--lobby-mobile-active-width);
    height: 3px;
    border-radius: 999px;
    background: #1dffc4;
    box-shadow: 0 0 10px rgba(29, 255, 196, 0.9), 0 0 18px rgba(29, 255, 196, 0.48);
    pointer-events: none;
    transform: translateX(-50%);
  }

  .lobby-mobile-menu img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: fill;
    user-select: none;
    pointer-events: none;
  }

  .lobby-mobile-menu-hit {
    position: absolute;
    top: 10%;
    bottom: 10%;
    z-index: 3;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-tap-highlight-color: transparent;
  }

  .lobby-mobile-menu-hit:focus-visible {
    outline: 2px solid #1dffc4;
    outline-offset: -6px;
    filter: none;
  }

  .lobby-mobile-menu-rooms {
    left: 3.2%;
    width: 35.2%;
  }

  .lobby-mobile-menu-players {
    left: 38.4%;
    width: 26.6%;
  }

  .lobby-mobile-menu-chat {
    left: 65%;
    width: 12%;
  }

  .lobby-mobile-menu-back {
    left: 77%;
    width: 20%;
  }

  .lobby-mobile-carousel {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .lobby-mobile-carousel::-webkit-scrollbar {
    display: none;
  }

  .lobby-mobile-carousel > .lobby-mobile-page {
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;
    height: 100%;
    min-height: 0;
    display: grid;
    padding: 8px 8px max(10px, env(safe-area-inset-bottom));
    overflow: hidden;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  .lobby-mobile-carousel > .rooms-column,
  .lobby-mobile-carousel > .chat-column,
  .lobby-mobile-carousel > .lobby-players-page {
    grid-area: auto;
    height: 100%;
  }

  .lobby-grid .lobby-mobile-carousel > .chat-column {
    height: 100%;
  }

  .lobby-mobile-page > .panel,
  .lobby-mobile-page > .rooms-panel,
  .lobby-mobile-page > .chat-panel,
  .lobby-mobile-page > .online-panel,
  .lobby-players-page > .online-panel {
    height: 100%;
    min-height: 0;
  }

  .lobby-mobile-page .rooms-panel {
    grid-template-rows: auto minmax(0, 1fr) auto;
  }

  .lobby-mobile-page .rooms-title,
  .lobby-mobile-page .panel-title {
    min-height: 40px;
    font-size: 18px;
  }

  .lobby-mobile-page .rooms-legend {
    display: none;
  }

  .lobby-mobile-page .rooms-list {
    padding: 8px;
    gap: 9px;
    overflow-y: auto;
  }

  .lobby-mobile-page .room-row {
    grid-template-columns: minmax(0, 1fr) 92px;
    grid-template-rows: auto auto auto;
    min-height: 92px;
    gap: 5px 8px;
    padding: 9px;
  }

  .lobby-mobile-page .room-name-stat,
  .lobby-mobile-page .room-status {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .lobby-mobile-page .room-status {
    white-space: normal;
  }

  .lobby-mobile-page .room-row button {
    grid-column: 2;
    grid-row: 2 / 4;
    align-self: center;
    justify-self: end;
    width: 88px;
    height: 34px;
  }

  .lobby-mobile-page .room-stat {
    justify-content: flex-start;
    font-size: 12px;
  }

  .lobby-mobile-page .room-stat-icon {
    width: 17px;
    height: 17px;
    flex-basis: 17px;
  }

  .lobby-mobile-page .room-level-icon {
    width: 25px;
    height: 25px;
    flex-basis: 25px;
  }

  .lobby-mobile-page .online-strip {
    min-height: 38px;
    grid-template-columns: minmax(0, 1fr) 76px;
    gap: 8px;
    padding: 5px 8px;
    font-size: 13px;
    text-align: left;
  }

  .lobby-mobile-page .online-strip strong {
    justify-content: flex-start;
  }

  .lobby-mobile-page .online-strip span {
    width: 70px;
    height: 28px;
    justify-self: end;
  }

  .lobby-mobile-page .online-panel-footer {
    display: none;
  }

  .lobby-mobile-page .online-list {
    padding: 8px 10px;
  }

  .lobby-mobile-page .online-row {
    min-height: 54px;
    grid-template-columns: 40px minmax(0, 1fr) 42px 54px;
    gap: 7px;
  }

  .lobby-mobile-page .chat-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
  }

  .lobby-mobile-page .chat-messages {
    height: auto;
    min-height: 0;
    overflow-y: auto;
    padding: 10px 12px 6px;
  }

  .lobby-mobile-page .chat-form {
    grid-template-columns: minmax(0, 1fr) 84px;
    gap: 7px;
    padding: 8px;
  }

  .lobby-mobile-page .chat-form input {
    height: 38px;
    font-size: 13px;
  }

  .lobby-mobile-page .chat-form button {
    height: 38px;
    font-size: 12px;
  }
}

@media (max-width: 480px) {
  .home-menu-page-settings {
    --settings-mobile-top-gap: 24px;
    align-content: stretch;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 12px;
    padding: var(--settings-mobile-top-gap) 0 max(16px, env(safe-area-inset-bottom));
  }

  .home-menu-page-settings .home-page-title {
    order: 1;
    width: min(350px, calc(100vw - 34px));
    justify-self: center;
    grid-template-columns: minmax(24px, 1fr) auto minmax(24px, 1fr);
    gap: 8px;
    margin: 0;
    font-size: 20px;
  }

  .home-menu-page-settings .home-page-content {
    order: 2;
    width: min(540px, calc((100vw / var(--lobby-scale)) - 22px));
    height: 100%;
    max-height: none;
    justify-self: center;
    margin: 0;
    overflow: hidden;
    padding: 0;
  }

  .home-menu-page-settings .home-settings-grid {
    height: 100%;
    display: grid;
    grid-template-columns: 1fr;
    align-content: start;
    gap: 20px;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0 0 8px;
    scrollbar-width: thin;
  }

  .home-menu-page-settings .home-settings-panel {
    width: 100%;
    min-height: 0;
    padding: 12px;
    border-width: 2px;
    border-radius: 8px;
    overflow: hidden;
  }

  .home-menu-page-settings .home-back-menu-button {
    position: static;
    order: 3;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 190px;
    height: 58px;
    margin-top: 4px;
    justify-self: center;
  }

  .home-menu-page-settings .home-settings-card-heading {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 12px;
    padding-bottom: 12px;
  }

  .home-menu-page-settings .home-settings-photo-frame {
    width: 76px;
    height: 76px;
  }

  .home-menu-page-settings .home-settings-photo-frame .avatar.home-settings-avatar {
    font-size: 25px;
  }

  .home-menu-page-settings .home-settings-account-heading {
    gap: 8px;
  }

  .home-menu-page-settings .home-settings-card-heading h2 {
    font-size: 20px;
  }

  .home-menu-page-settings .home-settings-account-heading > span {
    font-size: 10px;
  }

  .home-menu-page-settings .home-settings-photo-actions {
    grid-template-columns: repeat(2, minmax(0, 106px));
    gap: 7px;
    margin-top: 0;
  }

  .home-menu-page-settings .home-settings-photo-button {
    min-height: 32px;
    padding: 0 7px;
    border-radius: 6px;
    font-size: 9px;
  }

  .home-menu-page-settings .home-account-summary {
    gap: 8px;
  }

  .home-menu-page-settings .home-account-summary div {
    min-height: 50px;
    gap: 4px;
    padding: 8px 10px;
    border-radius: 6px;
  }

  .home-menu-page-settings .home-account-summary span,
  .home-menu-page-settings .home-password-field > span:first-child {
    font-size: 10px;
  }

  .home-menu-page-settings .home-account-summary strong {
    font-size: 14px;
    line-height: 1.12;
  }

  .home-menu-page-settings .home-password-form {
    gap: 8px;
  }

  .home-menu-page-settings .home-password-form h3 {
    font-size: 15px;
  }

  .home-menu-page-settings .home-password-field {
    gap: 4px;
  }

  .home-menu-page-settings .home-password-wrap input {
    height: 38px;
    padding: 0 42px 0 12px;
    border-radius: 6px;
    font-size: 13px;
  }

  .home-menu-page-settings .home-password-wrap .auth-eye-button {
    right: 5px;
    width: 34px;
  }

  .home-menu-page-settings .home-password-wrap .auth-eye-icon {
    width: 20px;
    height: 16px;
  }

  .home-menu-page-settings .home-password-submit {
    height: 42px;
    gap: 8px;
    border-radius: 6px;
    font-size: 14px;
  }

  .home-menu-page-settings .home-password-submit .auth-lock-icon {
    width: 18px;
    height: 18px;
  }

  .home-menu-page-settings .home-sound-settings-panel {
    align-content: start;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-settings-body {
    height: auto;
    grid-template-rows: none;
    gap: 9px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control,
  .home-menu-page-settings .home-sound-settings-panel .sound-toggle {
    border-radius: 7px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control {
    min-height: 76px;
    padding: 8px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control > span {
    grid-template-columns: 38px minmax(0, 1fr) 54px;
    gap: 8px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control-icon {
    width: 36px;
    height: 36px;
    font-size: 25px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control strong,
  .home-menu-page-settings .home-sound-settings-panel .sound-toggle strong {
    font-size: 13px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control input[type="range"] {
    grid-column: 2 / 4;
    grid-row: 2;
    height: 12px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control output {
    width: 50px;
    height: 28px;
    font-size: 13px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle {
    min-height: 48px;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 9px;
    padding: 7px 9px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle span {
    width: 48px;
    height: 28px;
    padding: 3px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle span::before {
    width: 22px;
    height: 22px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle.is-on span::before {
    transform: translateX(20px);
  }
}

body,
button,
input,
textarea,
select {
  font-family: Helvetica;
}

*,
*::before,
*::after {
  box-sizing: border-box;
  font-family: inherit;
}

body {
  margin: 0;
  min-height: 100vh;
  color: var(--text);
  background:
    linear-gradient(rgba(0, 0, 0, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    radial-gradient(circle at 78% 10%, rgba(22, 132, 78, 0.22), transparent 28%),
    linear-gradient(135deg, #04221f 0%, #064a30 52%, #02231d 100%);
  background-size: 36px 36px, 36px 36px, auto, auto;
}

body:has(.home-menu-page-ranking),
body:has(.home-menu-page-team),
body:has(.home-menu-page-settings) {
  background:
    radial-gradient(ellipse at 50% 46%, rgba(5, 103, 70, 0.34), transparent 38%),
    radial-gradient(ellipse at 50% 100%, rgba(0, 146, 105, 0.24), transparent 34%),
    radial-gradient(ellipse at 50% 0%, rgba(6, 57, 45, 0.72), transparent 48%),
    radial-gradient(ellipse at center, transparent 50%, rgba(0, 0, 0, 0.5) 100%),
    linear-gradient(180deg, #021f1c 0%, #052821 45%, #03211d 100%);
  background-size: auto;
}

body:has(.home-menu-page-ranking) .app-shell,
body:has(.home-menu-page-team) .app-shell,
body:has(.home-menu-page-settings) .app-shell {
  width: 100%;
  padding: 0;
}

button,
input {
  font: inherit;
}

button {
  cursor: pointer;
  transition: filter 160ms ease;
}

button:not(:disabled):hover,
button:not(:disabled):focus-visible {
  filter: brightness(1.16);
}

.app-shell {
  width: min(1536px, 100%);
  margin: 0 auto;
  padding: 10px 14px;
}

.loading {
  min-height: 100vh;
  display: grid;
  place-items: center;
  font-size: 24px;
  font-weight: 800;
  text-shadow: 0 2px 2px #000;
}

.error {
  color: #ffcf33;
}

html:has(.opening-viewport),
html:has(.auth-viewport),
html:has(.maintenance-viewport),
html:has(.home-stage),
html:has(.lobby-viewport),
body:has(.opening-viewport),
body:has(.auth-viewport),
body:has(.maintenance-viewport),
body:has(.home-stage),
body:has(.lobby-viewport) {
  width: 100%;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  overscroll-behavior: none;
}

body:has(.opening-viewport) {
  background: #031914;
}

body:has(.opening-viewport) .app-shell,
body:has(.auth-viewport) .app-shell,
body:has(.maintenance-viewport) .app-shell,
body:has(.home-stage) .app-shell,
body:has(.lobby-viewport) .app-shell {
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
}

body:has(.opening-viewport) .app-shell {
  width: 100%;
  padding: 0;
}

.opening-viewport {
  position: fixed;
  inset: 0;
  isolation: isolate;
  height: 100dvh;
  min-height: 100vh;
  min-height: 100dvh;
  width: 100vw;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 50% 42%, rgba(24, 238, 80, 0.48) 0%, rgba(8, 113, 55, 0.38) 22%, transparent 50%),
    radial-gradient(ellipse at 50% 52%, rgba(16, 156, 68, 0.38) 0%, transparent 44%),
    linear-gradient(180deg, #02231d 0%, #063a25 48%, #021a16 100%);
}

.opening-viewport::before {
  content: "";
  position: absolute;
  inset: -20%;
  z-index: -2;
  background-image:
    linear-gradient(rgba(43, 213, 94, 0.18) 2px, transparent 2px),
    linear-gradient(90deg, rgba(43, 213, 94, 0.18) 2px, transparent 2px);
  background-size: 190px 124px;
  opacity: 0.42;
  transform: rotate(12deg) skewX(-8deg) scale(1.1);
  transform-origin: center;
  mask-image: radial-gradient(ellipse at center, #000 0 58%, transparent 82%);
}

.opening-viewport::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background:
    radial-gradient(ellipse at center, transparent 36%, rgba(0, 0, 0, 0.18) 62%, rgba(0, 0, 0, 0.68) 100%),
    linear-gradient(90deg, rgba(0, 12, 11, 0.54), transparent 28% 72%, rgba(0, 12, 11, 0.54));
}

.opening-symbols,
.opening-sparks {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}

.opening-symbol {
  position: absolute;
  display: grid;
  place-items: center;
  width: 68px;
  height: 68px;
  color: rgba(209, 255, 224, 0.2);
  font-family: inherit;
  font-size: 43px;
  font-weight: 900;
  line-height: 1;
  filter: saturate(0.78) hue-rotate(48deg);
  opacity: 0.72;
  text-shadow:
    0 0 20px rgba(42, 221, 92, 0.2),
    0 5px 14px rgba(0, 0, 0, 0.28);
  transform: rotate(-12deg);
}

.symbol-1 { left: 18%; top: 9%; }
.symbol-2 { left: 68%; top: 7%; }
.symbol-3 { left: 8%; top: 28%; }
.symbol-4 { left: 35%; top: 17%; }
.symbol-5 { left: 76%; top: 31%; }
.symbol-6 { left: 13%; top: 45%; }
.symbol-7 { left: 25%; top: 31%; }
.symbol-8 { left: 88%; top: 34%; }
.symbol-9 { left: 86%; top: 56%; }
.symbol-10 { left: 48%; top: 78%; }
.symbol-11 { left: 6%; top: 67%; }
.symbol-12 { left: 73%; top: 51%; }

.opening-spark {
  position: absolute;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #9cff24;
  box-shadow: 0 0 13px 4px rgba(90, 255, 43, 0.62);
  opacity: 0.72;
  animation: opening-spark-pulse 2.7s ease-in-out infinite;
}

.spark-1 { left: 25%; top: 36%; animation-delay: 0.2s; }
.spark-2 { left: 31%; top: 52%; animation-delay: 1.1s; }
.spark-3 { left: 39%; top: 13%; animation-delay: 0.5s; }
.spark-4 { left: 49%; top: 24%; animation-delay: 1.7s; }
.spark-5 { left: 59%; top: 43%; animation-delay: 0.9s; }
.spark-6 { left: 69%; top: 54%; animation-delay: 1.4s; }
.spark-7 { left: 71%; top: 27%; animation-delay: 0.1s; }
.spark-8 { left: 83%; top: 49%; animation-delay: 2.1s; }
.spark-9 { left: 16%; top: 88%; animation-delay: 0.8s; }
.spark-10 { left: 51%; top: 87%; animation-delay: 1.6s; }
.spark-11 { left: 62%; top: 71%; animation-delay: 2.3s; }
.spark-12 { left: 25%; top: 72%; animation-delay: 1.9s; }
.spark-13 { left: 74%; top: 82%; animation-delay: 0.4s; }
.spark-14 { left: 9%; top: 29%; animation-delay: 1.3s; }
.spark-15 { left: 36%; top: 64%; animation-delay: 2.5s; }
.spark-16 { left: 57%; top: 16%; animation-delay: 1.2s; }
.spark-17 { left: 88%; top: 73%; animation-delay: 0.7s; }
.spark-18 { left: 45%; top: 37%; animation-delay: 2.2s; }
}

.opening-stage {
  --opening-stage-y: -88px;
  position: relative;
  z-index: 2;
  width: min(500px, 90vw);
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 10px;
  padding: 18px;
  transform: translateY(var(--opening-stage-y));
}

.opening-logo-frame {
  position: relative;
  width: clamp(170px, 20vw, 270px);
  display: grid;
  place-items: center;
  justify-self: center;
  margin-inline: auto;
  margin-bottom: 26px;
  transform: translateY(-24px);
}

.opening-logo-frame::before {
  content: "";
  position: absolute;
  inset: 9% -22% -5%;
  z-index: -1;
  border-radius: 50%;
  background:
    radial-gradient(ellipse at center, rgba(45, 255, 90, 0.78), rgba(33, 212, 78, 0.32) 42%, transparent 72%);
  filter: blur(6px);
  opacity: 0.72;
}

.opening-logo-frame::after {
  content: "";
  position: absolute;
  left: 7%;
  right: 7%;
  bottom: 3%;
  z-index: -2;
  height: 22%;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.34);
  filter: blur(12px);
}

.opening-logo {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  object-fit: contain;
  opacity: 0;
  filter:
    drop-shadow(0 9px 6px rgba(0, 0, 0, 0.48))
    drop-shadow(0 0 8px rgba(134, 255, 89, 0.14));
  transform: scale(0.96);
  animation: opening-logo-reveal var(--opening-logo-duration, 2000ms) ease-out var(--opening-logo-delay, 2000ms) forwards;
}

.opening-loading-line {
  width: clamp(280px, 35vw, 500px);
  display: grid;
  grid-template-columns: minmax(38px, 1fr) max-content minmax(38px, 1fr);
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 0.8vw, 12px);
  margin-top: -1px;
  transform: translateY(-5px);
}

.opening-text {
  width: 0;
  margin: 0;
  box-sizing: content-box;
  padding-right: 0.18em;
  overflow: hidden;
  color: #f5f8e8;
  border-right: 2px solid transparent;
  font-size: clamp(13px, 1.05vw, 19px);
  font-weight: 1000;
  line-height: 1;
  letter-spacing: 0;
  justify-self: center;
  align-self: center;
  transform: translateY(1px);
  text-align: left;
  text-transform: uppercase;
  text-shadow:
    0 3px 2px rgba(0, 0, 0, 0.62),
    0 0 12px rgba(127, 255, 112, 0.28);
  white-space: nowrap;
  opacity: 0;
  animation:
    opening-text-show 1ms linear var(--opening-text-delay, 4000ms) forwards,
    opening-text-type var(--opening-text-duration, 2600ms) steps(20, end) var(--opening-text-delay, 4000ms) forwards,
    opening-caret-blink 620ms step-end var(--opening-text-delay, 4000ms) infinite;
}

.opening-line {
  position: relative;
  height: 12px;
  width: 100%;
  align-self: center;
  transform: translateY(1px);
  opacity: 0;
  animation: opening-line-show 420ms ease-out var(--opening-text-delay, 4000ms) forwards;
}

.opening-line::before,
.opening-line::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, #79ff2e 22% 78%, transparent);
  box-shadow:
    0 0 10px rgba(111, 255, 41, 0.72),
    inset 0 0 3px rgba(255, 255, 255, 0.72);
}

.opening-line::before {
  left: 0;
  right: 0;
}

.opening-line::after {
  left: 22%;
  right: 22%;
  height: 2px;
  background: rgba(220, 255, 111, 0.92);
}

.opening-line-left {
  transform: translateY(1px) scaleX(-1);
}

.opening-progress {
  position: relative;
  width: clamp(280px, 34vw, 480px);
  height: clamp(23px, 2.05vw, 32px);
  padding: 4px;
  border: 2px solid #f0a81a;
  border-radius: 999px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 42%),
    linear-gradient(180deg, #161d1c, #050a0a);
  box-shadow:
    0 6px 9px rgba(0, 0, 0, 0.38),
    0 0 0 1px rgba(255, 240, 89, 0.34),
    inset 0 1px 6px rgba(255, 255, 255, 0.16),
    inset 0 -3px 8px rgba(0, 0, 0, 0.52);
  overflow: hidden;
}

.opening-progress-label {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 12px;
  color: #ffffff;
  font-size: clamp(8px, 0.72vw, 12px);
  font-weight: 1000;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  text-shadow:
    0 1px 2px rgba(0, 0, 0, 0.72),
    0 0 5px rgba(0, 0, 0, 0.42);
  white-space: nowrap;
  pointer-events: none;
}

.opening-progress-label strong {
  min-width: 3ch;
  font: inherit;
}

.opening-progress-fill {
  position: relative;
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background:
    linear-gradient(115deg, rgba(255, 255, 255, 0.18) 0 12%, transparent 12% 24%, rgba(255, 255, 255, 0.14) 24% 36%, transparent 36% 48%, rgba(255, 255, 255, 0.12) 48% 60%, transparent 60% 100%),
    linear-gradient(180deg, #88ff2f 0%, #1edb26 48%, #079517 100%);
  background-size: 80px 100%, auto;
  box-shadow:
    inset 0 2px rgba(255, 255, 255, 0.44),
    inset 0 -3px rgba(0, 72, 0, 0.25),
    0 0 10px rgba(75, 255, 33, 0.64);
  animation: opening-progress-load var(--opening-progress-duration, 10000ms) linear forwards;
}

.opening-progress-fill::after {
  content: "";
  position: absolute;
  top: -25%;
  right: -7px;
  width: 14px;
  height: 150%;
  border-radius: 50%;
  background: rgba(230, 255, 114, 0.86);
  box-shadow:
    0 0 13px 4px rgba(196, 255, 58, 0.76),
    0 0 26px 9px rgba(74, 255, 40, 0.42);
}

@keyframes opening-logo-reveal {
  from {
    opacity: 0;
    transform: scale(0.96);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes opening-line-show {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes opening-text-show {
  to {
    opacity: 1;
    border-right-color: #ffb711;
  }
}

@keyframes opening-text-type {
  from {
    width: 0;
  }

  to {
    width: 22ch;
  }
}

@keyframes opening-progress-load {
  from {
    width: 0;
  }

  to {
    width: 100%;
  }
}

@keyframes opening-caret-blink {
  0%,
  100% {
    border-right-color: #ffb711;
  }

  50% {
    border-right-color: transparent;
  }
}

@keyframes opening-spark-pulse {
  0%,
  100% {
    opacity: 0.25;
    transform: scale(0.72);
  }

  50% {
    opacity: 0.92;
    transform: scale(1.16);
  }
}

@media (max-width: 720px) {
  .opening-stage {
    --opening-stage-y: -58px;
    width: 100%;
    gap: 10px;
    padding: 16px 12px;
  }

  .opening-logo-frame {
    width: min(190px, 62vw);
    margin-bottom: 18px;
    transform: translateY(-16px);
  }

  .opening-logo {
    width: 100%;
    height: auto;
  }

  .opening-loading-line {
    grid-template-columns: minmax(22px, 1fr) max-content minmax(22px, 1fr);
    gap: 6px;
    width: min(330px, 90vw);
    transform: translateY(-4px);
  }

  .opening-text {
    border-right-width: 2px;
    font-size: clamp(11px, 3.5vw, 15px);
  }

  .opening-line {
    height: 10px;
  }

  .opening-line::before {
    height: 2px;
  }

  .opening-progress {
    width: min(330px, 84vw);
    height: 26px;
    padding: 4px;
    border-width: 2px;
  }

  .opening-progress-label {
    gap: 5px;
    padding: 0 8px;
    font-size: clamp(7px, 2.1vw, 9px);
  }

  .opening-symbol {
    width: 42px;
    height: 42px;
    font-size: 27px;
  }
}

@media (max-width: 480px) {
  .opening-viewport {
    padding: clamp(18px, 4dvh, 30px) 18px max(22px, env(safe-area-inset-bottom));
  }

  .opening-stage {
    --opening-stage-y: 0px;
    width: 100%;
    max-width: 344px;
    min-height: 0;
    align-content: center;
    justify-items: center;
    gap: 8px;
    padding: 0;
    transform: none;
  }

  .opening-logo-frame {
    width: min(238px, 68vw);
    margin-bottom: clamp(18px, 3.4dvh, 28px);
    transform: none;
  }

  .opening-loading-line,
  .opening-progress {
    width: min(344px, calc(100vw - 44px));
    justify-self: center;
    margin-inline: auto;
  }

  .opening-loading-line {
    grid-template-columns: minmax(34px, 1fr) max-content minmax(34px, 1fr);
    gap: 7px;
    transform: none;
  }

  .opening-text {
    font-size: clamp(13px, 3.65vw, 15px);
    text-align: center;
  }

  .opening-progress {
    height: 25px;
  }

  .opening-progress-label {
    gap: 5px;
    padding: 0 9px;
    font-size: clamp(7px, 2.2vw, 9px);
  }
}

@media (min-width: 600px) and (max-width: 900px) and (max-height: 700px) {
  body:has(.opening-viewport) {
    overflow: hidden;
  }

  .opening-viewport {
    height: 100dvh;
    min-height: 100dvh;
    overflow: hidden;
  }

  .opening-stage {
    --opening-stage-y: -34px;
    min-height: 100dvh;
    gap: 7px;
    padding: 10px 12px;
  }

  .opening-logo-frame {
    width: min(180px, 30vw);
    margin-bottom: 14px;
    transform: translateY(-10px);
  }

  .opening-loading-line {
    width: min(360px, 70vw);
    transform: translateY(-2px);
  }

  .opening-text {
    font-size: clamp(12px, 1.65vw, 14px);
  }

  .opening-progress {
    width: min(360px, 68vw);
    height: 24px;
  }

  .opening-progress-label {
    font-size: 8px;
  }

  .opening-symbol {
    width: 44px;
    height: 44px;
    font-size: 28px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .opening-spark,
  .opening-line {
    animation: none;
  }

  .opening-line {
    opacity: 1;
  }

  .opening-logo {
    animation: none;
    opacity: 1;
    transform: none;
  }

  .opening-text {
    width: auto;
    animation: none;
    border-right: 0;
    opacity: 1;
  }

  .opening-progress-fill {
    animation: none;
    width: 100%;
  }
}

body:has(.auth-viewport) {
  background:
    radial-gradient(ellipse at 62% 37%, rgba(12, 133, 69, 0.42), transparent 30%),
    radial-gradient(ellipse at 50% 82%, rgba(0, 116, 73, 0.28), transparent 40%),
    radial-gradient(ellipse at center, transparent 52%, rgba(0, 0, 0, 0.48) 100%),
    linear-gradient(180deg, #063224 0%, #06472d 50%, #063224 100%);
}

body:has(.auth-viewport) .app-shell,
body:has(.maintenance-viewport) .app-shell {
  width: 100%;
  padding: 0;
}

body:has(.maintenance-viewport) {
  background: #063224;
}

.maintenance-viewport {
  position: fixed;
  inset: 0;
  width: 100vw;
  height: 100dvh;
  min-height: 100vh;
  min-height: 100dvh;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    linear-gradient(rgba(255, 255, 255, 0.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.026) 1px, transparent 1px),
    linear-gradient(180deg, #063224 0%, #06472d 50%, #063224 100%);
  background-size: 55px 55px, 55px 55px, auto;
}

.maintenance-stage {
  display: grid;
  place-items: center;
  width: 84vw;
  max-width: 1180px;
  min-width: 0;
  padding: clamp(8px, 2vw, 24px);
}

.maintenance-art {
  display: block;
  width: 100%;
  height: auto;
  max-height: 78dvh;
  object-fit: contain;
  filter: drop-shadow(0 24px 36px rgba(0, 0, 0, 0.36));
  user-select: none;
  pointer-events: none;
}

@media (max-width: 900px), (max-aspect-ratio: 1/1), (hover: none) and (pointer: coarse) {
  .maintenance-stage {
    width: 96vw;
    padding: 6px;
  }

  .maintenance-art {
    max-height: 84dvh;
  }
}

.auth-viewport {
  position: fixed;
  inset: 0;
  height: 100dvh;
  min-height: 100vh;
  min-height: 100dvh;
  width: 100vw;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 62% 37%, rgba(12, 133, 69, 0.42), transparent 30%),
    radial-gradient(ellipse at 50% 82%, rgba(0, 116, 73, 0.28), transparent 40%),
    radial-gradient(ellipse at center, transparent 52%, rgba(0, 0, 0, 0.48) 100%),
    linear-gradient(rgba(255, 255, 255, 0.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.026) 1px, transparent 1px),
    linear-gradient(180deg, #063224 0%, #06472d 50%, #063224 100%);
  background-size: auto, auto, auto, 55px 55px, 55px 55px, auto;
}

.auth-stage {
  --auth-hero-left: calc(50% - clamp(4px, 0.8vw, 14px));
  --auth-hero-width: min(86vw, calc(86vh * 1672 / 941));
  position: relative;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  isolation: isolate;
}

.auth-stage::before {
  content: "";
  position: absolute;
  left: var(--auth-hero-left);
  top: 50%;
  z-index: 0;
  width: var(--auth-hero-width);
  aspect-ratio: 1672 / 941;
  background-image: url("/assets/login-mascots-manual-wide.webp");
  background-position: center;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  transform: translate(-50%, -50%);
}

.auth-effects-layer {
  position: absolute;
  left: var(--auth-hero-left);
  top: 50%;
  z-index: 0;
  width: var(--auth-hero-width);
  aspect-ratio: 1672 / 941;
  transform: translate(-50%, -50%);
  pointer-events: none;
  overflow: hidden;
}

.auth-tablet-screen-motion {
  position: absolute;
  left: 20.45%;
  top: 51.35%;
  z-index: 1;
  width: 30.7%;
  height: 36.45%;
  overflow: hidden;
  border-radius: 2.4%;
  pointer-events: none;
}

.auth-tablet-screen-motion::before {
  content: "";
  position: absolute;
  left: -66.6%;
  top: -140.9%;
  width: 325.7%;
  height: 274.4%;
  background-image: url("/assets/login-mascots-manual-wide.webp");
  background-position: center;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  transform-origin: 35% 68%;
  animation: authTabletScreenDrift 4.8s ease-in-out infinite;
  will-change: transform;
}

.auth-logo-shine {
  position: absolute;
  left: 26.4%;
  top: 11%;
  z-index: 2;
  width: 21.1%;
  height: 21%;
  overflow: hidden;
  border-radius: 26% 26% 20% 20%;
  opacity: 0.95;
  mix-blend-mode: screen;
  filter: blur(0.1px);
}

.auth-logo-shine::before {
  content: "";
  position: absolute;
  top: -18%;
  bottom: -18%;
  left: 0;
  width: 20%;
  background: linear-gradient(108deg, transparent 0 30%, rgba(255, 255, 255, 0.05) 43%, rgba(255, 255, 255, 0.56) 51%, rgba(255, 248, 166, 0.34) 58%, transparent 72% 100%);
  transform: translateX(-26%) skewX(-12deg);
  animation: authLogoShine 3.2s ease-in-out 0.2s infinite;
}

.auth-panel {
  position: absolute;
  z-index: 1;
  container-type: inline-size;
  right: clamp(116px, 14.2vw, 214px);
  top: clamp(118px, 21.2vh, 200px);
  width: clamp(285px, 22.1vw, 370px);
  min-height: min(54.5vh, 515px);
  display: flex;
  flex-direction: column;
  padding: clamp(15px, 1.48vw, 25px) clamp(17px, 1.55vw, 26px) clamp(15px, 1.38vw, 24px);
  border: 1px solid rgba(116, 190, 17, 0.78);
  border-radius: clamp(12px, 1.25vw, 21px);
  background:
    radial-gradient(ellipse at 35% 20%, rgba(20, 87, 52, 0.34), transparent 46%),
    linear-gradient(180deg, #011511, #031f18);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.08),
    0 22px 46px rgba(0, 0, 0, 0.46);
}

@keyframes authTabletScreenDrift {
  0%, 100% {
    transform: translate3d(0, 0, 0) scale(1.006);
  }

  45% {
    transform: translate3d(0.22%, -0.36%, 0) scale(1.012);
  }

  72% {
    transform: translate3d(-0.16%, 0.2%, 0) scale(1.008);
  }
}

@keyframes authLogoShine {
  0%, 18% {
    transform: translateX(-26%) skewX(-12deg);
    opacity: 0;
  }

  24% {
    opacity: 1;
  }

  38% {
    opacity: 0.78;
  }

  52% {
    opacity: 0.52;
  }

  56% {
    transform: translateX(380%) skewX(-12deg);
    opacity: 0.42;
  }

  66% {
    transform: translateX(386%) skewX(-12deg);
    opacity: 0.2;
  }

  76%, 100% {
    transform: translateX(392%) skewX(-12deg);
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .auth-tablet-screen-motion::before,
  .auth-logo-shine::before {
    animation: none;
  }
}

.auth-panel:has([data-auth-form="register"]) {
  top: clamp(56px, 13.4vh, 126px);
  min-height: auto;
}

.auth-heading {
  display: grid;
  grid-template-columns: clamp(39px, 14.5cqw, 60px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(10px, 4cqw, 17px);
  margin: 0 0 clamp(17px, 6.4cqw, 26px);
}

.auth-heading h1,
.auth-heading p {
  margin: 0;
  line-height: 1;
  text-transform: uppercase;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.66);
}

.auth-heading h1 {
  color: #fff;
  font-size: clamp(19px, 6.9cqw, 28px);
  font-weight: 1000;
  white-space: nowrap;
}

.auth-heading p {
  margin-top: 6px;
  color: #80d214;
  font-size: clamp(16px, 5.65cqw, 24px);
  font-weight: 1000;
  white-space: nowrap;
}

.auth-user-icon,
.auth-add-user-icon,
.auth-login-icon {
  position: relative;
  display: inline-grid;
  place-items: center;
  width: clamp(39px, 14.5cqw, 60px);
  height: clamp(39px, 14.5cqw, 60px);
  filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.46));
}

.auth-user-icon .auth-icon-svg {
  width: 100%;
  height: 100%;
}

.auth-icon-svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  shape-rendering: geometricPrecision;
}

.auth-user-icon::before,
.auth-add-user-icon::before,
.auth-login-icon::before {
  display: none;
}

.auth-user-icon::after,
.auth-add-user-icon::after,
.auth-login-icon::after {
  display: none;
}

.auth-form {
  display: grid;
  gap: clamp(9px, 3.2cqw, 14px);
}

.auth-field {
  display: grid;
  gap: clamp(6px, 1.9cqw, 8px);
  color: #fff;
  font-size: clamp(12px, 3.75cqw, 16px);
  font-weight: 1000;
  line-height: 1;
  text-transform: uppercase;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.58);
}

.auth-field > span:first-child {
  display: block;
  white-space: nowrap;
}

.auth-field > input,
.auth-password-wrap input {
  width: 100%;
  min-width: 0;
  height: clamp(36px, 11.2cqw, 48px);
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 6px;
  padding: 0 clamp(12px, 3.7cqw, 16px);
  color: #fff;
  background: rgba(0, 9, 9, 0.46);
  outline: none;
  font-size: clamp(14px, 4.1cqw, 18px);
  font-weight: 500;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 1px 0 rgba(0, 0, 0, 0.4);
}

.auth-password-wrap {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
}

.auth-password-wrap input {
  padding-right: clamp(40px, 11.2cqw, 48px);
}

.auth-field input::placeholder {
  color: rgba(255, 255, 255, 0.58);
  font-weight: 500;
}

.auth-field input:focus {
  border-color: rgba(128, 210, 20, 0.92);
  box-shadow:
    0 0 0 3px rgba(128, 210, 20, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.auth-field.has-error input {
  border-color: rgba(255, 61, 61, 0.95);
  box-shadow:
    0 0 0 3px rgba(255, 61, 61, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.auth-inline-error {
  margin: -4px 0 0;
  color: #ff3d3d;
  font-size: clamp(11px, 3.3cqw, 14px);
  font-weight: 900;
  line-height: 1.2;
  text-transform: none;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.62);
}

.auth-eye-button {
  position: absolute;
  right: clamp(7px, 2.8cqw, 12px);
  top: 0;
  bottom: 0;
  width: clamp(30px, 8.8cqw, 38px);
  display: grid;
  place-items: center;
  border: 0;
  padding: 0;
  background: transparent;
}

.auth-eye-button:hover,
.auth-eye-button:focus-visible {
  filter: none;
}

.auth-eye-icon {
  position: relative;
  display: block;
  width: clamp(16px, 5.1cqw, 22px);
  height: clamp(12px, 3.8cqw, 16px);
  color: rgba(255, 255, 255, 0.68);
}

.auth-eye-icon::after {
  display: none;
}

.auth-eye-button.is-visible .auth-eye-icon {
  color: rgba(128, 210, 20, 0.95);
}

.auth-eye-button.is-visible .auth-eye-icon::after {
  display: none;
}

.auth-options {
  min-height: clamp(19px, 5.3cqw, 23px);
  display: grid;
  grid-template-columns: max-content max-content;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 3.6cqw, 15px);
  margin: clamp(2px, 1.2cqw, 5px) 0 clamp(4px, 1.9cqw, 8px);
  color: #fff;
  font-size: clamp(11px, 3.35cqw, 15px);
}

.auth-remember {
  display: inline-flex;
  align-items: center;
  gap: clamp(7px, 2.4cqw, 10px);
  min-width: 0;
  font-weight: 500;
  white-space: nowrap;
}

.auth-remember input {
  appearance: none;
  width: clamp(16px, 4.8cqw, 21px);
  height: clamp(16px, 4.8cqw, 21px);
  flex: 0 0 auto;
  border: 1px solid rgba(255, 255, 255, 0.46);
  border-radius: 4px;
  background: rgba(0, 8, 8, 0.32);
}

.auth-remember input:checked {
  border-color: #80d214;
  background:
    linear-gradient(135deg, transparent 0 45%, #fff 46% 55%, transparent 56%),
    linear-gradient(45deg, transparent 0 45%, #fff 46% 55%, transparent 56%),
    linear-gradient(#7bd016, #3e9205);
}

.auth-forgot {
  border: 0;
  padding: 0;
  color: #88d817;
  background: transparent;
  font-size: inherit;
  text-decoration: underline;
  white-space: nowrap;
}

.auth-submit-button,
.auth-create-button {
  width: 100%;
  display: grid;
  grid-template-columns: auto auto;
  place-content: center;
  align-items: center;
  gap: clamp(10px, 3.65cqw, 15px);
  border: 0;
  border-radius: 6px;
  color: #fff;
  font-weight: 1000;
  line-height: 1;
  text-transform: uppercase;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.56);
  box-shadow:
    inset 0 2px rgba(255, 255, 255, 0.18),
    0 8px 15px rgba(0, 0, 0, 0.34);
}

.auth-submit-button > span:last-child,
.auth-create-button > span:last-child {
  white-space: nowrap;
}

.auth-submit-button {
  height: clamp(40px, 11.8cqw, 50px);
  margin-top: clamp(3px, 2cqw, 8px);
  font-size: clamp(16px, 5.35cqw, 23px);
  background: linear-gradient(#77d615 0%, #54b608 48%, #337e05 100%);
}

.auth-submit-button:disabled {
  opacity: 0.72;
  cursor: wait;
}

.auth-divider {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: clamp(10px, 3.75cqw, 16px);
  margin: clamp(13px, 5.1cqw, 22px) 0;
  color: #fff;
  font-size: clamp(12px, 3.85cqw, 17px);
}

.auth-divider span {
  height: 1px;
  background: rgba(255, 255, 255, 0.18);
  box-shadow: 0 1px rgba(0, 0, 0, 0.34);
}

.auth-divider b {
  font-weight: 500;
}

.auth-create-button {
  height: clamp(41px, 12.2cqw, 52px);
  font-size: clamp(15px, 5.05cqw, 22px);
  background: linear-gradient(#0aa9df 0%, #0788bf 48%, #056792 100%);
}

.auth-lock-icon {
  position: relative;
  display: block;
  width: clamp(16px, 5.1cqw, 22px);
  height: clamp(16px, 5.1cqw, 22px);
}

.auth-lock-icon::before {
  display: none;
}

.auth-lock-icon::after {
  display: none;
}

.auth-add-user-icon,
.auth-login-icon {
  display: block;
  width: clamp(22px, 6.8cqw, 29px);
  height: clamp(22px, 6.8cqw, 29px);
  filter: none;
}

.auth-add-user-icon::before,
.auth-login-icon::before {
  display: none;
}

.auth-add-user-icon::after,
.auth-login-icon::after {
  display: none;
}

.auth-add-user-icon {
  margin-right: 2px;
}

.auth-add-user-icon::before {
  display: none;
}

.auth-add-user-icon::after {
  display: none;
}

.auth-add-user-icon {
  background: none;
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .auth-viewport {
    padding: 18px;
  }

  .auth-stage {
    width: 100%;
    min-height: calc(100vh - 36px);
    min-height: calc(100dvh - 36px);
    height: auto;
    display: grid;
    place-items: center;
    padding: 24px 0;
    background-size: auto 92%;
    background-position: 36% center;
  }

  .auth-stage::before {
    left: 36%;
    width: calc(86vh * 1672 / 941);
    height: 86vh;
    background-position: center;
  }

  .auth-effects-layer {
    left: 36%;
    width: calc(86vh * 1672 / 941);
    height: 86vh;
  }

  .auth-stage::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 15, 12, 0.36);
    z-index: 0;
    pointer-events: none;
  }

  .auth-panel,
  .auth-panel:has([data-auth-form="register"]) {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    width: min(380px, calc(100vw - 44px));
    min-height: 0;
    padding: 20px;
  }

  .auth-options {
    flex-wrap: wrap;
  }
}

@media (min-width: 600px) and (max-width: 900px) {
  .auth-viewport {
    overflow: hidden;
  }
}

@media (min-width: 600px) and (max-width: 900px) and (max-height: 700px) {
  body:has(.auth-viewport) {
    overflow: hidden;
  }

  .auth-viewport {
    height: 100dvh;
    min-height: 100dvh;
    overflow: hidden;
    padding: 10px 16px;
  }

  .auth-stage {
    min-height: calc(100dvh - 20px);
    padding: 8px 0;
  }

  .auth-panel,
  .auth-panel:has([data-auth-form="register"]) {
    width: min(360px, calc(100vw - 44px));
    padding: 14px 16px;
  }

  .auth-heading {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
    margin-bottom: 12px;
  }

  .auth-user-icon,
  .auth-add-user-icon,
  .auth-login-icon {
    width: 42px;
    height: 42px;
  }

  .auth-heading h1 {
    font-size: 21px;
  }

  .auth-heading p {
    margin-top: 4px;
    font-size: 17px;
  }

  .auth-form {
    gap: 8px;
  }

  .auth-field {
    gap: 5px;
    font-size: 12px;
  }

  .auth-field > input,
  .auth-password-wrap input {
    height: 37px;
    font-size: 14px;
  }

  .auth-options {
    min-height: 18px;
    margin: 1px 0 4px;
    font-size: 11px;
  }

  .auth-submit-button {
    height: 39px;
    margin-top: 2px;
    font-size: 16px;
  }

  .auth-divider {
    margin: 9px 0;
    font-size: 12px;
  }

  .auth-create-button {
    height: 39px;
    font-size: 15px;
  }

  .auth-add-user-icon,
  .auth-login-icon {
    width: 20px;
    height: 20px;
  }
}

@media (max-height: 650px) and (min-width: 901px) {
  .auth-panel {
    top: clamp(44px, 10vh, 92px);
  }

  .auth-panel:has([data-auth-form="register"]) {
    top: 12px;
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .auth-panel:has([data-auth-form="register"]) .auth-heading {
    margin-bottom: 14px;
  }

  .auth-panel:has([data-auth-form="register"]) .auth-form {
    gap: 8px;
  }

  .auth-panel:has([data-auth-form="register"]) .auth-divider {
    margin: 12px 0;
  }
}

@media (max-width: 480px) {
  .auth-viewport {
    padding: 0;
  }

  .auth-stage {
    min-height: 100vh;
    min-height: 100dvh;
    place-items: start center;
    padding: clamp(34px, 5.5dvh, 46px) 18px max(24px, env(safe-area-inset-bottom));
  }

  .auth-stage::before {
    left: 67%;
    top: clamp(178px, 25dvh, 198px);
    width: min(500px, 127vw);
    height: auto;
    opacity: 1;
    transform: translate(-50%, -50%);
  }

  .auth-effects-layer {
    left: 67%;
    top: clamp(178px, 25dvh, 198px);
    width: min(500px, 127vw);
    height: auto;
    transform: translate(-50%, -50%);
  }

  .auth-stage::after {
    background:
      linear-gradient(180deg, rgba(0, 15, 12, 0.04) 0 28%, rgba(0, 15, 12, 0.44) 43%, rgba(0, 15, 12, 0.2) 100%);
  }

  .auth-panel,
  .auth-panel:has([data-auth-form="register"]) {
    width: 100%;
    max-width: 332px;
    margin-top: clamp(282px, 39dvh, 310px);
    padding: 10px 12px 12px;
    border-radius: 10px;
  }

  .auth-panel:has([data-auth-form="register"]) {
    margin-top: clamp(252px, 35dvh, 278px);
    padding-top: 9px;
    padding-bottom: 10px;
  }

  .auth-heading {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 8px;
    margin-bottom: 8px;
  }

  .auth-user-icon,
  .auth-add-user-icon,
  .auth-login-icon {
    width: 30px;
    height: 30px;
  }

  .auth-heading h1 {
    font-size: 16px;
  }

  .auth-heading p {
    margin-top: 3px;
    font-size: 13px;
  }

  .auth-form {
    gap: 6px;
  }

  .auth-field {
    gap: 3px;
    font-size: 9.5px;
  }

  .auth-field > input,
  .auth-password-wrap input {
    height: 29px;
    border-radius: 5px;
    padding: 0 10px;
    font-size: 11.5px;
  }

  .auth-password-wrap input {
    padding-right: 32px;
  }

  .auth-eye-button {
    right: 5px;
    width: 25px;
  }

  .auth-eye-icon {
    width: 15px;
    height: 11px;
  }

  .auth-options {
    grid-template-columns: auto auto;
    align-items: center;
    gap: 7px;
    min-height: 0;
    margin: 1px 0 2px;
    font-size: 9.5px;
  }

  .auth-remember {
    gap: 6px;
  }

  .auth-remember input {
    width: 14px;
    height: 14px;
  }

  .auth-submit-button {
    height: 32px;
    margin-top: 2px;
    border-radius: 5px;
    font-size: 13px;
    gap: 7px;
  }

  .auth-divider {
    gap: 8px;
    margin: 6px 0;
    font-size: 10px;
  }

  .auth-create-button {
    height: 32px;
    border-radius: 5px;
    font-size: 12.5px;
    gap: 7px;
  }

  .auth-lock-icon,
  .auth-add-user-icon,
  .auth-login-icon {
    width: 15px;
    height: 15px;
  }
}

.topbar {
  height: 132px;
  display: grid;
  grid-template-columns: 1fr;
  place-items: center;
  position: relative;
  overflow: visible;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.lobby-back-button {
  position: relative;
  z-index: 1;
  isolation: isolate;
  width: 100%;
  min-width: 0;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding: 0 18px;
  border: 0;
  border-radius: 9px;
  color: #fff;
  font-size: 16px;
  font-weight: 1000;
  line-height: 1;
  letter-spacing: 0;
  text-transform: uppercase;
  text-shadow: none;
  background: linear-gradient(180deg, #ffd966, #FFBF00 58%, #c88400);
  box-shadow:
    inset 0 0 0 2px rgba(255, 255, 255, 0.16),
    inset 0 -5px 0 rgba(0, 0, 0, 0.2),
    0 5px 0 rgba(0, 0, 0, 0.28);
  cursor: pointer;
  overflow: hidden;
  transition: transform 120ms ease, filter 120ms ease, box-shadow 120ms ease;
}

.lobby-back-button::before {
  content: none;
}

.lobby-back-button > span:last-child {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lobby-back-button:hover,
.lobby-back-button:focus-visible {
  filter: brightness(1.16);
  outline: none;
}

.logout-button {
  position: absolute;
  right: 18px;
  top: 18px;
  z-index: 2;
  min-width: 94px;
  height: 46px;
  border: 0;
  border-radius: 6px;
  color: #fff;
  font-size: 17px;
  font-weight: 1000;
  text-transform: uppercase;
  background: linear-gradient(#df3a35, #a91419);
  border-bottom: 4px solid rgba(80, 0, 0, 0.48);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.22), 0 6px 13px rgba(0, 0, 0, 0.38);
}

.sound-settings-button {
  position: absolute;
  right: 122px;
  top: 18px;
  z-index: 2;
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 6px;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 34px;
  font-weight: 1000;
  line-height: 1;
  background: linear-gradient(#16a5c8, #08738e);
  border-bottom: 4px solid rgba(0, 48, 65, 0.62);
  text-shadow: 0 2px 3px rgba(0, 0, 0, 0.38);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.22), 0 6px 13px rgba(0, 0, 0, 0.38);
}

.sound-settings-button:hover,
.sound-settings-button:focus-visible {
  filter: brightness(1.16);
}

.sound-settings-layer {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: grid;
  place-items: center;
}

.sound-settings-backdrop {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at center, rgba(22, 165, 200, 0.16), transparent 52%),
    rgba(3, 10, 12, 0.68);
}

.sound-settings-panel {
  position: relative;
  z-index: 1;
  width: min(520px, calc(100vw - 34px));
  border-radius: 8px;
  overflow: hidden;
  color: #effff9;
  background:
    linear-gradient(180deg, rgba(14, 35, 38, 0.98), rgba(5, 17, 19, 0.99)),
    var(--panel);
  border: 2px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 22px 55px rgba(0, 0, 0, 0.52);
}

.sound-settings-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.08),
    inset 0 -14px 32px rgba(0, 0, 0, 0.24);
}

.sound-settings-header {
  min-height: 92px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 22px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), transparent 36%),
    linear-gradient(90deg, #08a8d7, #006b9c 48%, #74bf17);
  border-bottom: 4px solid rgba(0, 0, 0, 0.22);
}

.sound-settings-header div {
  display: grid;
  gap: 3px;
}

.sound-settings-header span {
  color: #ecfffb;
  font-size: 15px;
  font-weight: 1000;
  text-transform: uppercase;
  text-shadow: 0 2px rgba(0, 0, 0, 0.22);
}

.sound-settings-header strong {
  font-size: 31px;
  font-weight: 1000;
  text-transform: uppercase;
  text-shadow: 0 3px rgba(0, 0, 0, 0.22);
}

.sound-settings-header button {
  width: 48px;
  height: 48px;
  border: 0;
  border-radius: 6px;
  color: #fff;
  font-size: 38px;
  line-height: 1;
  background: linear-gradient(#df3a35, #a91419);
  border-bottom: 4px solid rgba(80, 0, 0, 0.46);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.2), 0 6px 12px rgba(0, 0, 0, 0.28);
}

.sound-settings-tabs {
  display: flex;
  gap: 8px;
  padding: 14px 18px 0;
}

.sound-settings-tabs button {
  height: 42px;
  min-width: 112px;
  border: 0;
  border-radius: 6px 6px 0 0;
  color: #092024;
  font-size: 16px;
  font-weight: 1000;
  text-transform: uppercase;
  background: linear-gradient(#ffd447, #f2a400);
  border-bottom: 4px solid rgba(151, 83, 0, 0.36);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.28);
}

.sound-settings-body {
  display: grid;
  gap: 16px;
  padding: 20px 22px 24px;
}

.sound-control {
  display: grid;
  gap: 10px;
  padding: 16px;
  border-radius: 7px;
  background: linear-gradient(180deg, rgba(20, 35, 38, 0.96), rgba(5, 21, 24, 0.96));
  border: 1px solid rgba(203, 225, 220, 0.18);
  box-shadow: inset 0 0 18px rgba(22, 165, 200, 0.08);
}

.sound-control > span {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 76px;
  align-items: center;
  gap: 12px;
  color: #f4fff7;
}

.sound-control-icon {
  width: 48px;
  height: 48px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  color: #fff;
  font-style: normal;
  font-size: 29px;
  font-weight: 1000;
  text-shadow: 0 2px rgba(0, 0, 0, 0.32);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.22), 0 5px 10px rgba(0, 0, 0, 0.28);
}

.music-icon {
  background: linear-gradient(#ffd447, #f39800);
}

.music-icon::before {
  content: "\266A";
}

.effects-icon {
  background: linear-gradient(#16a5c8, #006b9c);
}

.effects-icon::before {
  content: "\25B6";
}

.sound-control strong,
.sound-toggle strong {
  min-width: 0;
  font-size: 17px;
  font-weight: 1000;
  line-height: 1.05;
  text-transform: uppercase;
}

.sound-control output {
  justify-self: end;
  width: 70px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 5px;
  color: #ffd447;
  background: rgba(0, 0, 0, 0.28);
  font-weight: 1000;
  box-shadow: inset 0 0 0 1px rgba(255, 212, 71, 0.2);
}

.sound-control input[type="range"] {
  appearance: none;
  width: 100%;
  height: 16px;
  border-radius: 999px;
  background: linear-gradient(90deg, #74bf17, #ffd447);
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.42);
}

.sound-control input[type="range"]::-webkit-slider-thumb {
  appearance: none;
  width: 30px;
  height: 30px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: linear-gradient(#df3a35, #a91419);
  box-shadow: 0 4px 9px rgba(0, 0, 0, 0.38);
}

.sound-control input[type="range"]::-moz-range-thumb {
  width: 24px;
  height: 24px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: linear-gradient(#df3a35, #a91419);
  box-shadow: 0 4px 9px rgba(0, 0, 0, 0.38);
}

.sound-control input[type="range"]:disabled {
  opacity: 0.45;
}

.sound-toggle {
  min-height: 62px;
  width: 100%;
  display: grid;
  grid-template-columns: 78px 1fr;
  grid-template-areas:
    "switch label";
  align-items: center;
  gap: 16px;
  padding: 14px 16px;
  border: 1px solid rgba(203, 225, 220, 0.18);
  border-radius: 7px;
  color: #f4fff7;
  background: linear-gradient(180deg, rgba(20, 35, 38, 0.96), rgba(5, 21, 24, 0.96));
  cursor: pointer;
  text-align: left;
}

.sound-toggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.sound-toggle:hover,
.sound-toggle:focus-visible {
  filter: brightness(1.16);
}

.sound-toggle span {
  grid-area: switch;
  width: 78px;
  height: 42px;
  border-radius: 999px;
  padding: 5px;
  background: linear-gradient(#5f686d, #30383c);
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.45);
}

.sound-toggle span::before {
  content: "";
  display: block;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.35);
  transition: transform 160ms ease, background 160ms ease;
}

.sound-toggle.is-on span {
  background: linear-gradient(#74bf17, #328700);
}

.sound-toggle.is-on span::before {
  transform: translateX(36px);
}

.sound-toggle.is-off span {
  background: linear-gradient(#5f686d, #30383c);
}

.sound-toggle strong {
  grid-area: label;
  color: #f4fff7;
}

.topbar::before {
  content: none;
}

.brand {
  position: relative;
  z-index: 1;
  min-height: 76px;
  display: flex;
  justify-content: center;
  align-items: center;
  user-select: none;
}

.brand-logo {
  display: block;
  width: 252px;
  max-height: 118px;
  object-fit: contain;
  filter: drop-shadow(0 6px 8px rgba(0, 0, 0, 0.38));
}

.beta-ribbon,
.beta-corner {
  position: absolute;
  width: 86px;
  height: 26px;
  display: grid;
  place-items: center;
  transform: rotate(-45deg);
  color: #fff;
  font-size: 15px;
  font-weight: 900;
  background: linear-gradient(#ffd96b, #f0a10d);
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.45);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.28);
}

.beta-ribbon {
  left: -22px;
  top: 8px;
}

.brand-word,
.promo-logo {
  font-size: 62px;
  line-height: 0.8;
  font-weight: 1000;
  letter-spacing: 0;
  text-shadow: 0 4px 0 rgba(0, 0, 0, 0.34), 0 0 16px rgba(255, 255, 255, 0.2);
}

.brand-word small,
.promo-logo small {
  display: block;
  margin-left: 88px;
  margin-top: -4px;
  font-size: 14px;
  color: #fff;
  letter-spacing: 0;
  text-shadow: 0 2px 0 #111;
}

.brand-s {
  color: #03a7d1;
}

.brand-t {
  color: #ec2327;
}

.brand-o {
  color: #ffb400;
}

.brand-p {
  color: #6fc40d;
}

.top-actions {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 36px;
  align-items: start;
}

.nav-action {
  height: 82px;
  border: 0;
  background: transparent;
  color: #fff;
  display: grid;
  justify-items: center;
  gap: 2px;
  font-weight: 900;
  text-shadow: 0 1px 1px #000;
}

.nav-action span:last-child {
  width: 100%;
  min-height: 36px;
  display: grid;
  place-items: center;
  padding: 0 14px;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: linear-gradient(#30383c, #101417);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.16), 0 4px 7px rgba(0, 0, 0, 0.35);
  white-space: nowrap;
}

.nav-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  font-size: 25px;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.28);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.26), 0 4px 8px rgba(0, 0, 0, 0.32);
}

.nav-action.red .nav-icon {
  background: linear-gradient(#ff4850, #be1018);
}

.nav-action.yellow .nav-icon {
  background: linear-gradient(#ffd260, #f29a05);
}

.nav-action.green .nav-icon {
  background: linear-gradient(#8cde42, #2e8d13);
  font-size: 16px;
}

.nav-action.blue .nav-icon {
  background: linear-gradient(#6eacff, #1664c8);
}

.like-box {
  justify-self: end;
  margin-top: 26px;
  min-width: 158px;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  background: linear-gradient(#f8f8f8, #cfd3d8);
  color: #42506a;
  box-shadow: var(--shadow);
}

.like-box strong {
  color: #fff;
  background: linear-gradient(#537cd6, #244ca5);
  padding: 8px 16px;
  border-radius: 4px;
}

.like-box span {
  padding: 7px 10px;
  border-radius: 4px;
  color: #707780;
  background: rgba(255, 255, 255, 0.72);
}

.toast {
  position: fixed;
  z-index: 20;
  left: 50%;
  top: 92px;
  transform: translateX(-50%);
  padding: 12px 22px;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: linear-gradient(#2e3538, #13191c);
  box-shadow: var(--shadow);
  font-weight: 900;
}

.lobby-viewport {
  min-height: calc(100vh - 20px);
  min-height: calc(100dvh - 20px);
  display: grid;
  place-items: center;
  overflow: visible;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}

.lobby-viewport input,
.lobby-viewport textarea {
  -webkit-touch-callout: default;
  -webkit-user-select: text;
  user-select: text;
}

.lobby-scale {
  width: min(1536px, calc((100vw - 28px) / var(--lobby-scale)));
  zoom: var(--lobby-scale);
}

.game-scale {
  width: min(1536px, calc((100vw - 28px) / var(--game-effective-scale, var(--game-scale))));
  zoom: var(--game-effective-scale, var(--game-scale));
}

.game-viewport {
  --game-effective-scale: min(var(--game-scale), calc((100vh - 20px) / var(--game-design-height)));
  --game-effective-scale: min(var(--game-scale), calc((100dvh - 20px) / var(--game-design-height)));
  height: calc(100vh - 20px);
  height: calc(100dvh - 20px);
  min-height: 0;
  overflow: hidden;
  place-items: center;
}

.game-viewport .game-scale {
  margin: auto;
}

.game-viewport .lobby-stage {
  padding-top: 0;
}

.lobby-viewport:not(.game-viewport) {
  height: calc(100vh - 20px);
  height: calc(100dvh - 20px);
  min-height: 0;
  overflow: hidden;
}

.lobby-viewport:not(.game-viewport) .lobby-scale {
  height: calc((100vh - 20px) / var(--lobby-scale));
  height: calc((100dvh - 20px) / var(--lobby-scale));
  max-height: calc((100vh - 20px) / var(--lobby-scale));
  max-height: calc((100dvh - 20px) / var(--lobby-scale));
  display: grid;
  grid-template-rows: minmax(0, 1fr);
}

.lobby-viewport:not(.game-viewport) .lobby-stage,
.lobby-viewport:not(.game-viewport) .lobby-grid,
.lobby-viewport:not(.game-viewport) .left-column,
.lobby-viewport:not(.game-viewport) .rooms-column,
.lobby-viewport:not(.game-viewport) .chat-column,
.lobby-viewport:not(.game-viewport) .online-panel {
  min-height: 0;
}

.lobby-viewport:not(.game-viewport) .lobby-grid {
  grid-template-rows: minmax(0, 1fr) 252px;
  align-items: stretch;
}

.lobby-viewport:not(.game-viewport) .left-column,
.lobby-viewport:not(.game-viewport) .ranking-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}

.lobby-viewport:not(.game-viewport) .left-column {
  grid-template-rows: auto minmax(0, 1fr);
  align-content: start;
  height: 100%;
  gap: 12px;
}

.lobby-viewport:not(.game-viewport) .ranking-panel {
  grid-template-rows: auto minmax(0, 1fr) auto;
  height: 100%;
  margin-top: 0;
}

.lobby-viewport:not(.game-viewport) .ranking-list {
  min-height: 0;
  overflow: hidden;
}

.lobby-stage {
  display: grid;
  place-items: stretch;
  padding-top: 18px;
}

.lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-stage {
  padding-top: 0;
}

.lobby-grid {
  display: grid;
  grid-template-columns: minmax(300px, 370px) minmax(430px, 1fr) minmax(300px, 360px);
  grid-template-rows: auto 252px;
  grid-template-areas:
    "left rooms players"
    "chat chat players";
  gap: 16px 12px;
  width: 100%;
  align-items: start;
}

.left-column,
.rooms-column,
.chat-column {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.left-column {
  grid-area: left;
  align-content: start;
}

.rooms-column {
  grid-area: rooms;
  height: 100%;
}

.chat-column {
  grid-area: chat;
}

.lobby-grid .chat-column {
  height: 252px;
}

.lobby-grid > .online-panel {
  grid-area: players;
}

.home-viewport:not(.game-viewport) .home-scale {
  position: relative;
  width: calc(100vw / var(--lobby-scale));
  height: calc(100vh / var(--lobby-scale));
  height: calc(100dvh / var(--lobby-scale));
  max-height: calc(100vh / var(--lobby-scale));
  max-height: calc(100dvh / var(--lobby-scale));
  grid-template-rows: minmax(0, 1fr);
}

.home-viewport:not(.game-viewport) {
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  min-height: 100vh;
  min-height: 100dvh;
  overflow: hidden;
  overscroll-behavior: none;
  background:
    radial-gradient(ellipse at 62% 37%, rgba(12, 133, 69, 0.42), transparent 30%),
    radial-gradient(ellipse at 50% 82%, rgba(0, 116, 73, 0.28), transparent 40%),
    radial-gradient(ellipse at center, transparent 52%, rgba(0, 0, 0, 0.48) 100%),
    linear-gradient(rgba(255, 255, 255, 0.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.026) 1px, transparent 1px),
    linear-gradient(180deg, #063224 0%, #06472d 50%, #063224 100%);
  background-size: auto, auto, auto, 55px 55px, 55px 55px, auto;
}

body:has(.home-stage) .app-shell {
  width: 100%;
  padding: 0;
}

.home-viewport:has(.home-menu-page-ranking),
.home-viewport:has(.home-menu-page-team),
.home-viewport:has(.home-menu-page-settings) {
  height: 100vh;
  height: 100dvh;
  min-height: 100vh;
  min-height: 100dvh;
  background:
    radial-gradient(ellipse at 50% 46%, rgba(5, 103, 70, 0.34), transparent 38%),
    radial-gradient(ellipse at 50% 100%, rgba(0, 146, 105, 0.24), transparent 34%),
    radial-gradient(ellipse at 50% 0%, rgba(6, 57, 45, 0.72), transparent 48%),
    radial-gradient(ellipse at center, transparent 50%, rgba(0, 0, 0, 0.48) 100%),
    linear-gradient(180deg, #021f1c 0%, #052821 45%, #03211d 100%);
}

.home-stage {
  position: relative;
  min-height: 0;
  height: 100%;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.home-stage::before {
  display: none;
}

.home-hero {
  position: relative;
  z-index: 1;
  width: min(1860px, 96%);
  height: 100%;
  min-height: 0;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 0;
  padding: 0;
}

.home-hero.is-exiting,
.screen-exit-right,
.screen-exit-left {
  pointer-events: none;
}

.home-hero.is-exiting,
.screen-exit-right {
  animation: home-exit-right 320ms cubic-bezier(0.18, 0.8, 0.22, 1) forwards;
}

.screen-exit-left {
  animation: screen-exit-left 320ms cubic-bezier(0.18, 0.8, 0.22, 1) forwards;
}

.opening-stage.screen-exit-right {
  animation: opening-exit-right 320ms cubic-bezier(0.18, 0.8, 0.22, 1) forwards;
}

.home-layout {
  width: min(1470px, 94%);
  min-height: 880px;
  display: grid;
  grid-template-columns: 620px 770px;
  align-items: center;
  justify-content: center;
  justify-self: center;
  gap: 46px;
  transform: scale(0.8);
  transform-origin: center center;
}

.home-main-menu {
  min-width: 0;
  width: 100%;
  display: grid;
  justify-items: center;
  align-content: center;
  justify-self: center;
  gap: 0;
  transform: none;
}

.home-player-card {
  width: 620px;
  height: 900px;
  min-height: 0;
  overflow: hidden;
  display: grid;
  grid-template-rows: 84px 178px 86px minmax(0, 1fr);
  border: 2px solid #9cff00;
  border-radius: 14px;
  color: #fff;
  background:
    radial-gradient(ellipse at 50% 18%, rgba(20, 112, 60, 0.34), transparent 34%),
    linear-gradient(180deg, rgba(1, 26, 22, 0.92), rgba(0, 19, 17, 0.9));
  box-shadow:
    inset 0 0 0 1px rgba(163, 255, 29, 0.18),
    inset 0 0 46px rgba(0, 0, 0, 0.34),
    0 14px 28px rgba(0, 0, 0, 0.34),
    0 0 18px rgba(156, 255, 0, 0.18);
}

.home-player-card header {
  min-height: 0;
  height: 84px;
  display: flex;
  align-items: center;
  padding: 0 34px;
  overflow: hidden;
  color: #fff;
  font-size: 42px;
  font-weight: 1000;
  letter-spacing: 0;
  text-transform: uppercase;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.64);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 42%),
    linear-gradient(90deg, #80bf00, #277c00);
}

.home-player-main {
  display: grid;
  grid-template-columns: 124px minmax(0, 1fr) 92px;
  align-items: center;
  gap: 18px;
  min-height: 0;
  padding: 24px;
}

.home-player-photo-upload {
  position: relative;
  width: 124px;
  height: 124px;
  display: block;
  cursor: pointer;
}

.home-player-photo-upload input {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.home-player-photo-upload > span {
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: 8px;
  z-index: 2;
  min-height: 24px;
  display: grid;
  place-items: center;
  border-radius: 5px;
  color: #fff;
  font-size: 12px;
  font-weight: 1000;
  text-transform: uppercase;
  background: rgba(0, 0, 0, 0.58);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 160ms ease, transform 160ms ease;
}

.home-player-photo-upload:hover > span,
.home-player-photo-upload:focus-within > span {
  opacity: 1;
  transform: translateY(0);
}

.avatar.home-player-avatar {
  width: 124px;
  height: 124px;
  border-radius: 12px;
  border: 0;
  color: #fff;
  font-size: 48px;
  background:
    linear-gradient(45deg, rgba(255, 255, 255, 0.07) 25%, transparent 25% 50%, rgba(255, 255, 255, 0.07) 50% 75%, transparent 75%) 0 0 / 20px 20px,
    linear-gradient(135deg, #9ece32, #326d06);
  text-shadow: 0 3px 2px rgba(0, 0, 0, 0.3);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.24), 0 8px 14px rgba(0, 0, 0, 0.28);
}

.home-player-summary {
  min-width: 0;
  display: grid;
  gap: 8px;
}

.home-player-summary h2 {
  margin: 0 0 8px;
  overflow: hidden;
  color: #fff;
  font-size: 27px;
  font-weight: 1000;
  line-height: 1.05;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.64);
}

.home-player-summary p {
  margin: 0;
  color: #fff;
  overflow: hidden;
  font-size: 22px;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.5);
}

.home-player-summary strong,
.home-stat-row b {
  color: #91e316;
  font-weight: 1000;
}

.home-player-grade {
  justify-self: center;
}

.home-player-grade .grade-shield {
  width: 104px;
  height: 134px;
  filter: drop-shadow(0 5px 5px rgba(0, 0, 0, 0.48));
}

.home-player-progress {
  display: grid;
  grid-template-columns: minmax(0, 0.82fr) minmax(206px, 1fr);
  align-items: center;
  gap: 14px;
  min-height: 0;
  padding: 12px 26px 28px 24px;
}

.home-progress-track {
  position: relative;
  display: grid;
  place-items: center;
  height: 46px;
  overflow: hidden;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  background: rgba(0, 17, 15, 0.74);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.48);
}

.home-progress-track span {
  position: absolute;
  inset: 8px auto 8px 8px;
  display: block;
  border-radius: 5px;
  background: linear-gradient(#5fb900, #1f7200);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.18), 0 0 9px rgba(48, 148, 0, 0.42);
}

.home-player-progress strong {
  position: relative;
  z-index: 1;
  color: #fff;
  font-size: 20px;
  font-weight: 1000;
  white-space: nowrap;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.58);
}

.home-player-progress strong span {
  color: #fff;
}

.home-next-grade {
  min-height: 46px;
  display: grid;
  place-items: center;
  padding: 0 12px;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  background: rgba(0, 17, 15, 0.74);
  color: #fff;
  font-size: 17px;
  font-weight: 1000;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.58);
}

.home-player-stats {
  min-height: 0;
  margin: 0 16px 16px;
  padding: 20px 20px;
  display: grid;
  grid-template-rows: repeat(6, minmax(0, 1fr));
  align-content: stretch;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  background: rgba(0, 21, 18, 0.5);
  box-shadow: inset 0 0 26px rgba(0, 0, 0, 0.22);
}

.home-stat-row {
  min-height: 0;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  align-items: center;
  gap: 28px;
  padding: 0 10px;
  border-radius: 6px;
  transition: background-color 160ms ease;
}

.home-player-card .home-stat-row:hover {
  background-color: rgba(255, 255, 255, 0.08);
}

.home-stat-row + .home-stat-row {
  border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.home-stat-icon {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  font-size: 42px;
  line-height: 1;
  background: linear-gradient(180deg, #092d2c, #031916);
  border: 2px solid rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 3px rgba(255, 255, 255, 0.1), 0 6px 10px rgba(0, 0, 0, 0.36);
}

.home-stat-icon img {
  width: 66px;
  height: 66px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 5px 5px rgba(0, 0, 0, 0.32));
}

.home-stat-icon:has(img),
.home-stat-icon.grade-icon,
.home-stat-icon.home-team-grade {
  border: 0;
  background: transparent;
  box-shadow: none;
}

.home-stat-icon.grade-icon .grade-shield,
.home-stat-icon.home-team-grade .grade-shield {
  width: 62px;
  height: 80px;
  filter: drop-shadow(0 5px 5px rgba(0, 0, 0, 0.34));
}

.home-stat-icon img.home-team-empty-icon {
  width: 76px;
  height: 76px;
  color: #ffffff;
  opacity: 0.92;
  filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.32));
}

.home-stat-row div {
  min-width: 0;
  display: grid;
  gap: 10px;
}

.home-stat-row strong {
  overflow: hidden;
  color: #fff;
  font-size: 22px;
  font-weight: 1000;
  line-height: 1.08;
  text-transform: uppercase;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.68);
}

.home-stat-row b {
  color: #91e316;
  font-size: 24px;
  line-height: 1;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.58);
}

.player-hover-template {
  display: none;
}

.player-hover-source {
  outline: none;
}

.online-row.player-hover-source,
.result-player-cell.player-hover-source {
  cursor: pointer;
}

.online-row.player-hover-source:hover,
.online-row.player-hover-source:focus-visible,
.result-player-cell.player-hover-source:hover,
.result-player-cell.player-hover-source:focus-visible {
  box-shadow: inset 0 0 0 1px rgba(156, 255, 0, 0.28);
}

.player-hover-card-frame {
  position: fixed;
  left: -9999px;
  top: -9999px;
  z-index: 10000;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 140ms ease, visibility 140ms ease;
}

.player-hover-card-frame.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.mini-player-card {
  width: min(286px, calc(100vw - 16px));
  height: min(454px, calc(100vh - 16px));
  height: min(454px, calc(100dvh - 16px));
  min-height: 0;
  overflow: hidden;
  display: grid;
  grid-template-rows: 34px 80px 58px minmax(0, 1fr);
  border: 1px solid rgba(156, 255, 0, 0.72);
  border-radius: 8px;
  color: #fff;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  background:
    radial-gradient(ellipse at 50% 18%, rgba(20, 112, 60, 0.34), transparent 34%),
    linear-gradient(180deg, rgba(1, 26, 22, 0.96), rgba(0, 19, 17, 0.94));
  box-shadow:
    inset 0 0 0 1px rgba(163, 255, 29, 0.1),
    inset 0 0 18px rgba(0, 0, 0, 0.34),
    0 10px 18px rgba(0, 0, 0, 0.42),
    0 0 8px rgba(156, 255, 0, 0.12);
}

.team-hover-members-card {
  width: min(438px, calc(100vw - 16px));
  max-height: min(218px, calc(100vh - 16px));
  max-height: min(218px, calc(100dvh - 16px));
  overflow: hidden;
  display: grid;
  grid-template-rows: 32px 22px minmax(0, 1fr);
  padding: 6px 7px 7px;
  border: 1px solid rgba(0, 217, 151, 0.86);
  border-radius: 8px;
  color: #fff;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(0, 208, 145, 0.18), transparent 36%),
    linear-gradient(180deg, rgba(3, 31, 28, 0.98), rgba(0, 16, 15, 0.98));
  box-shadow:
    inset 0 0 0 1px rgba(0, 255, 178, 0.1),
    inset 0 0 32px rgba(0, 0, 0, 0.34),
    0 12px 22px rgba(0, 0, 0, 0.44);
}

.team-hover-members-card,
.team-hover-members-card * {
  cursor: default;
  user-select: none;
}

.player-hover-card-frame [data-action],
.player-hover-card-frame [data-action] * {
  cursor: pointer;
}

.team-hover-members-title {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  padding: 0 5px;
  border-bottom: 1px solid rgba(0, 217, 151, 0.32);
}

.team-hover-members-title > span {
  display: none;
  color: #31d7ad;
  font-size: 9px;
  font-weight: 1000;
  line-height: 1;
  white-space: nowrap;
}

.team-hover-members-title div {
  min-width: 0;
  display: grid;
  justify-items: start;
  gap: 2px;
  text-align: left;
}

.team-hover-members-title strong {
  overflow: hidden;
  color: #fff;
  font-size: 11px;
  font-weight: 1000;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.62);
}

.team-hover-members-title em {
  max-width: 100%;
  overflow: hidden;
  color: #ffd447;
  font-size: 8px;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.team-hover-members-head,
.team-hover-member-row {
  min-width: 0;
  display: grid;
  grid-template-columns: 24px minmax(104px, 1fr) minmax(86px, 0.78fr) 58px 54px;
  align-items: center;
  gap: 6px;
}

.team-hover-members-head {
  padding: 0 5px;
  color: #31d7ad;
  font-size: 7px;
  font-weight: 1000;
  line-height: 1;
}

.team-hover-members-body {
  min-height: 0;
  display: grid;
  align-content: start;
  gap: 3px;
  overflow: hidden;
}

.team-hover-member-row {
  min-height: 27px;
  padding: 0 5px;
  border-radius: 6px;
  background: linear-gradient(180deg, rgba(24, 42, 43, 0.84), rgba(12, 27, 29, 0.9));
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.08), 0 1px 0 rgba(0, 0, 0, 0.38);
}

.team-hover-position,
.team-hover-points,
.team-hover-role {
  min-width: 0;
  color: #fff;
  font-size: 8px;
  font-weight: 1000;
  line-height: 1;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.62);
  white-space: nowrap;
}

.team-hover-position {
  text-align: center;
}

.team-hover-player,
.team-hover-grade,
.team-hover-role {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 4px;
}

.team-hover-player img {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  object-fit: cover;
  border-radius: 5px;
  border: 1px solid rgba(255, 255, 255, 0.32);
  background: rgba(0, 12, 13, 0.68);
}

.team-hover-player strong,
.team-hover-grade strong {
  min-width: 0;
  overflow: hidden;
  color: #fff;
  font-size: 8px;
  font-weight: 1000;
  line-height: 1.08;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.62);
}

.team-hover-grade .grade-shield {
  width: 18px;
  height: 24px;
  flex: 0 0 auto;
}

.team-hover-role {
  justify-content: center;
}

.team-hover-role-crown {
  width: 15px;
  height: 15px;
  color: #ffc72f;
  filter: drop-shadow(0 3px 2px rgba(0, 0, 0, 0.52));
}

.team-hover-members-empty {
  min-height: 120px;
  display: grid;
  place-items: center;
  color: rgba(244, 246, 242, 0.72);
  font-size: 12px;
  font-weight: 1000;
}

@media (hover: none), (pointer: coarse) {
  .player-hover-card-frame {
    transition: none;
  }

  .mini-player-card {
    width: min(268px, calc(100vw - 20px));
    height: min(410px, calc(100dvh - 20px));
    grid-template-rows: 34px 72px 50px minmax(0, 1fr);
  }

  .mini-player-stats {
    margin-bottom: 10px;
    padding-block: 7px 9px;
    gap: 5px;
  }

  .mini-stat-row {
    padding: 4px 0;
  }

  .team-hover-members-card {
    width: min(420px, calc(100vw - 20px));
    max-height: min(214px, calc(100dvh - 20px));
    grid-template-rows: 30px 21px minmax(0, 1fr);
    padding: 6px 6px 7px;
  }

  .team-hover-members-head,
  .team-hover-member-row {
    grid-template-columns: 22px minmax(94px, 1fr) minmax(76px, 0.78fr) 52px 42px;
    gap: 5px;
  }

  .team-hover-member-row {
    min-height: 26px;
  }

  .team-hover-members-title strong {
    font-size: 10px;
  }

  .team-hover-members-title > span,
  .team-hover-members-head {
    font-size: 7px;
  }

  .team-hover-members-title em {
    font-size: 7px;
  }

  .team-hover-player strong,
  .team-hover-grade strong,
  .team-hover-position,
  .team-hover-points,
  .team-hover-role {
    font-size: 7px;
  }

  .team-hover-player img {
    width: 17px;
    height: 17px;
    flex-basis: 17px;
  }

  .team-hover-grade .grade-shield {
    width: 17px;
    height: 23px;
  }
}

.mini-player-card header {
  min-height: 0;
  height: 34px;
  display: flex;
  align-items: center;
  padding: 0 12px;
  overflow: hidden;
  color: #fff;
  font-size: 16px;
  font-weight: 1000;
  letter-spacing: 0;
  text-transform: uppercase;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.52);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 42%),
    linear-gradient(90deg, #80bf00, #277c00);
}

.mini-player-main {
  min-height: 0;
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) 40px;
  align-items: center;
  gap: 7px;
  padding: 10px;
}

.avatar.mini-player-avatar {
  width: 56px;
  height: 56px;
  border-radius: 7px;
  border: 0;
  color: #fff;
  font-size: 20px;
  background:
    linear-gradient(45deg, rgba(255, 255, 255, 0.07) 25%, transparent 25% 50%, rgba(255, 255, 255, 0.07) 50% 75%, transparent 75%) 0 0 / 8px 8px,
    linear-gradient(135deg, #9ece32, #326d06);
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.3);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.24), 0 4px 7px rgba(0, 0, 0, 0.28);
}

.mini-player-summary {
  min-width: 0;
  display: grid;
  gap: 7px;
}

.mini-player-summary h2 {
  margin: 0;
  overflow: hidden;
  color: #fff;
  font-size: 13.5px;
  font-weight: 1000;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: none;
}

.mini-player-summary p {
  margin: 0;
  overflow: hidden;
  color: #fff;
  font-size: 11px;
  line-height: 1.12;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: none;
}

.mini-player-summary p span {
  color: #fff;
  font-weight: 400;
}

.mini-player-summary strong,
.mini-stat-row b {
  color: #91e316;
  font-weight: 1000;
}

.mini-player-grade {
  justify-self: center;
}

.mini-player-grade .grade-shield {
  width: 38px;
  height: 48px;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.42));
}

.mini-player-progress {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 5px;
  padding: 0 10px 6px;
}

.mini-progress-track {
  position: relative;
  display: grid;
  place-items: center;
  height: 23px;
  overflow: hidden;
  border-radius: 5px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  background: rgba(0, 17, 15, 0.74);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.48);
}

.mini-progress-track span {
  position: absolute;
  inset: 4px auto 4px 4px;
  max-width: calc(100% - 8px);
  display: block;
  border-radius: 4px;
  background: linear-gradient(#5fb900, #1f7200);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.18), 0 0 8px rgba(48, 148, 0, 0.42);
}

.mini-player-progress strong {
  position: relative;
  z-index: 1;
  overflow: hidden;
  max-width: calc(100% - 16px);
  color: #fff;
  font-size: 10px;
  font-weight: 1000;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: none;
}

.mini-next-grade {
  min-height: 22px;
  display: grid;
  place-items: center;
  padding: 0 8px;
  overflow: hidden;
  border-radius: 5px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  background: rgba(0, 17, 15, 0.74);
  color: #fff;
  font-size: 10px;
  font-weight: 1000;
  line-height: 1;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: none;
}

.mini-player-stats {
  min-height: 0;
  margin: 0 10px 12px;
  padding: 8px 10px 10px;
  display: grid;
  grid-template-rows: repeat(6, minmax(33px, 1fr));
  gap: 5px;
  align-content: stretch;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 6px;
  background: rgba(0, 21, 18, 0.5);
  box-shadow: inset 0 0 14px rgba(0, 0, 0, 0.22);
}

.mini-stat-row {
  position: relative;
  min-height: 0;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  padding: 4px 0;
}

.mini-stat-row + .mini-stat-row {
  border-top: 0;
}

.mini-stat-row + .mini-stat-row::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -2px;
  height: 1px;
  background: rgba(255, 255, 255, 0.12);
}

.mini-stat-icon {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  justify-self: center;
  align-self: center;
}

.mini-stat-icon.grade-icon {
  width: 32px;
  height: 32px;
}

.mini-stat-icon img {
  width: 22px;
  height: 22px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.32));
}

.mini-stat-icon.grade-icon .grade-shield {
  width: 22px;
  height: 28px;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.34));
}

.mini-stat-icon.grade-icon .grade-shield.is-hors-concours {
  --grade-icon-width: 132%;
  --grade-icon-height: 132%;
}

.mini-stat-row div {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.mini-stat-row strong {
  overflow: hidden;
  color: #fff;
  font-size: 8.8px;
  font-weight: 1000;
  line-height: 1;
  text-transform: uppercase;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: none;
}

.mini-stat-row b {
  overflow: hidden;
  font-size: 11px;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: none;
}

.mini-team-row {
  min-height: 35px;
}

.mini-team-row .mini-team-grade .grade-shield {
  width: 28px;
  height: 32px;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.36));
}

.mini-stat-icon img.mini-team-empty-icon {
  width: 32px;
  height: 32px;
  max-width: none;
  max-height: none;
  opacity: 1;
  filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.36));
}

.mini-team-invite-button {
  position: relative;
  isolation: isolate;
  min-width: 0;
  min-height: 24px;
  width: 86%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 7px;
  overflow: hidden;
  border: 0;
  border-radius: 9px;
  color: #fff;
  font: inherit;
  font-size: 10.4px;
  font-weight: 1000;
  letter-spacing: 0;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: none;
  background: linear-gradient(180deg, #26bd3d, #0c8421 58%, #055414);
  box-shadow:
    inset 0 0 0 2px rgba(255, 255, 255, 0.16),
    inset 0 -5px 0 rgba(0, 0, 0, 0.2),
    0 5px 0 rgba(0, 0, 0, 0.28);
  cursor: pointer;
  transition: transform 120ms ease, filter 120ms ease, box-shadow 120ms ease;
}

.mini-team-invite-button:hover,
.mini-team-invite-button:focus-visible {
  filter: brightness(1.16);
  outline: none;
}

.mini-team-invite-button:active {
  transform: none;
}

@keyframes home-exit-right {
  from {
    opacity: 1;
    transform: translateX(0) scale(1);
  }

  to {
    opacity: 0;
    transform: translateX(118vw) scale(0.96);
  }
}

@keyframes opening-exit-right {
  from {
    opacity: 1;
    transform: translate(0, var(--opening-stage-y)) scale(1);
  }

  to {
    opacity: 0;
    transform: translate(118vw, var(--opening-stage-y)) scale(0.96);
  }
}

@keyframes screen-exit-left {
  from {
    opacity: 1;
    transform: translateX(0) scale(1);
  }

  to {
    opacity: 0;
    transform: translateX(-118vw) scale(0.96);
  }
}

.home-logo {
  position: relative;
  z-index: 4;
  width: min(315px, 48%);
  max-height: 170px;
  margin-bottom: -38px;
  object-fit: contain;
  filter: drop-shadow(0 8px 7px rgba(0, 0, 0, 0.52));
}

.home-content-row {
  position: relative;
  z-index: 2;
  width: min(770px, 100%);
  min-height: 405px;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: end;
  justify-content: center;
  gap: 0;
}

.home-mascot-frame {
  position: relative;
  width: min(675px, 100%);
  aspect-ratio: 950 / 706;
  box-sizing: border-box;
  padding-right: 8px;
  overflow: visible;
  border-radius: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  justify-self: center;
}

.home-mascot-frame::before {
  content: none;
}

.home-mascot-frame::after {
  content: none;
}

.home-mascots {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  image-rendering: auto;
  mix-blend-mode: normal;
  filter: drop-shadow(0 15px 18px rgba(0, 0, 0, 0.34));
}

.home-menu-page {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  justify-items: center;
  align-content: center;
  gap: 16px;
  padding: 18px 42px 28px;
  opacity: 1;
  transform: translateX(0) scale(1);
}

.home-menu-page.is-leaving {
  pointer-events: none;
  opacity: 1;
  transform: translateX(0) scale(1);
  animation: screen-exit-left 320ms cubic-bezier(0.18, 0.8, 0.22, 1) forwards;
}

@keyframes home-page-enter {
  to {
    opacity: 1;
    transform: translateX(0) scale(1);
  }
}

@keyframes home-page-exit-left {
  to {
    opacity: 0;
    transform: translateX(-118vw) scale(0.96);
  }
}

.home-page-content {
  width: min(1400px, 100%);
  min-width: 0;
}

.home-page-header {
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 6px;
}

.home-menu-page-ranking {
  isolation: isolate;
  align-content: center;
  gap: 12px;
  padding: 74px 110px 74px;
  background:
    radial-gradient(ellipse at 50% 46%, rgba(5, 103, 70, 0.34), transparent 38%),
    radial-gradient(ellipse at 50% 100%, rgba(0, 146, 105, 0.24), transparent 34%),
    radial-gradient(ellipse at 50% 0%, rgba(6, 57, 45, 0.72), transparent 48%),
    radial-gradient(ellipse at center, transparent 50%, rgba(0, 0, 0, 0.48) 100%),
    linear-gradient(180deg, #021f1c 0%, #052821 45%, #03211d 100%);
}

.home-menu-page-settings {
  isolation: isolate;
  padding-top: 16px;
  padding-bottom: 16px;
  background:
    radial-gradient(ellipse at 50% 46%, rgba(5, 103, 70, 0.34), transparent 38%),
    radial-gradient(ellipse at 50% 100%, rgba(0, 146, 105, 0.24), transparent 34%),
    radial-gradient(ellipse at 50% 0%, rgba(6, 57, 45, 0.72), transparent 48%),
    radial-gradient(ellipse at center, transparent 50%, rgba(0, 0, 0, 0.48) 100%),
    linear-gradient(180deg, #021f1c 0%, #052821 45%, #03211d 100%);
}

.home-menu-page-ranking::before {
  display: none;
}

.home-page-logo {
  width: min(190px, 48vw);
  max-height: 82px;
  object-fit: contain;
  filter: drop-shadow(0 8px 8px rgba(0, 0, 0, 0.42));
}

.home-menu-page-ranking .home-page-logo {
  width: min(150px, 42vw);
  max-height: 72px;
}

.home-menu-page-ranking .home-page-content {
  width: min(1580px, calc(100vw - 88px));
  align-self: center;
}

.home-menu-page-ranking .home-back-menu-button {
  top: 56px;
  right: auto;
  left: calc(max(44px, calc((100vw - 1580px) / 2)) + 268px);
  width: 150px;
  height: 45px;
  padding: 0;
}

.home-menu-page-settings .home-page-logo {
  width: min(150px, 42vw);
  max-height: 72px;
}

.home-page-title {
  margin: 0;
  display: grid;
  grid-template-columns: minmax(74px, 120px) auto minmax(74px, 120px);
  align-items: center;
  justify-content: center;
  gap: 26px;
  color: #fff;
  font-size: 38px;
  font-weight: 1000;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 0 4px 3px rgba(0, 0, 0, 0.58);
}

.home-page-title::before,
.home-page-title::after {
  content: "";
  width: 100%;
  height: 8px;
  background:
    radial-gradient(circle at calc(100% - 8px) 50%, #ffd447 0 3px, transparent 4px),
    radial-gradient(circle at 100% 50%, #ffd447 0 3px, transparent 4px),
    linear-gradient(90deg, transparent, rgba(255, 212, 71, 0.95));
}

.home-page-title::after {
  transform: scaleX(-1);
}

.home-page-content .home-settings-panel {
  width: min(520px, 100%);
  height: auto;
  max-height: none;
  overflow: hidden;
  border-radius: 8px;
  border: 2px solid rgba(255, 255, 255, 0.18);
  background:
    linear-gradient(180deg, rgba(14, 35, 38, 0.98), rgba(5, 17, 19, 0.99)),
    var(--panel);
  box-shadow: 0 22px 55px rgba(0, 0, 0, 0.52);
}

.home-menu-page-settings .home-page-content {
  width: min(560px, calc(100vw - 34px));
  display: grid;
  justify-items: center;
}

.home-menu-page-settings .home-settings-panel {
  position: relative;
  height: auto;
  max-height: none;
  padding: 0;
  border: 2px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(14, 35, 38, 0.98), rgba(5, 17, 19, 0.99)),
    var(--panel);
  box-shadow: 0 22px 55px rgba(0, 0, 0, 0.52);
}

.home-menu-page-settings .home-settings-panel::before,
.home-menu-page-settings .home-settings-panel::after {
  display: none;
}

.home-ranking-panel {
  width: 100%;
  height: 760px;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 18px;
  padding-top: 0;
}

.home-ranking-duo {
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
}

.home-ranking-block {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: 34px minmax(0, 344px) minmax(0, 1fr);
  gap: 12px;
}

.home-ranking-block-title {
  margin: 0;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 20px;
  font-weight: 1000;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.55);
}

.home-ranking-heading {
  display: grid;
  grid-template-columns: minmax(92px, 180px) auto minmax(92px, 180px);
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin: -22px 0 0;
  color: #fff;
  font-size: 34px;
  font-weight: 1000;
  letter-spacing: 0;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.55);
}

.home-ranking-heading::before,
.home-ranking-heading::after,
.home-ranking-table h3::before,
.home-ranking-table h3::after {
  content: "";
  height: 2px;
  background:
    linear-gradient(90deg, transparent, rgba(255, 196, 47, 0.9)),
    radial-gradient(circle, #ffd447 0 2px, transparent 3px);
  background-position: center, right center;
  background-repeat: no-repeat;
  background-size: 100% 2px, 20px 8px;
}

.home-ranking-heading::after,
.home-ranking-table h3::after {
  transform: scaleX(-1);
}

.home-ranking-podium {
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid rgba(0, 217, 151, 0.82);
  background:
    radial-gradient(ellipse at 50% 57%, rgba(255, 205, 35, 0.24), transparent 28%),
    radial-gradient(ellipse at 50% 92%, rgba(0, 190, 130, 0.12), transparent 45%),
    linear-gradient(90deg, rgba(0, 0, 0, 0.22), transparent 18%, transparent 82%, rgba(0, 0, 0, 0.22)),
    linear-gradient(180deg, rgba(4, 22, 21, 0.7), rgba(3, 13, 16, 0.94));
  background-size: auto, auto, auto, auto;
  box-shadow:
    inset 0 0 0 1px rgba(0, 255, 178, 0.12),
    inset 0 0 80px rgba(0, 0, 0, 0.44),
    0 16px 32px rgba(0, 0, 0, 0.36);
}

.home-ranking-podium::before,
.home-ranking-podium::after {
  display: none;
}

.home-ranking-podium::before {
  left: 20px;
}

.home-ranking-podium::after {
  right: 20px;
  transform: scaleX(-1);
}

.home-ranking-podium-stage {
  position: relative;
  z-index: 1;
  width: min(1160px, 98%);
  height: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.18fr 1fr;
  align-items: end;
  justify-items: center;
  gap: 0;
  padding: 18px 10px 42px;
}

.final-podium-panel.home-ranking-results-podium {
  width: 100%;
  height: 100%;
  min-height: 0;
  position: relative;
  display: grid;
  align-items: center;
  justify-items: center;
  padding: 0 18px;
  border-color: rgba(0, 217, 151, 0.82);
  box-shadow:
    inset 0 0 0 1px rgba(0, 255, 178, 0.12),
    inset 0 0 80px rgba(0, 0, 0, 0.44),
    0 16px 32px rgba(0, 0, 0, 0.36);
}

.home-ranking-results-podium .podium-stage {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 760px;
  height: 354px;
  transform: translate(-50%, -50%) scale(0.78);
  transform-origin: center center;
}

.podium-team-badge {
  position: relative;
  z-index: 4;
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  transform: translateY(-12px);
}

.podium-team-badge .grade-shield {
  width: 72px;
  height: 88px;
}

.podium-entry.first .podium-team-badge {
  width: 88px;
  height: 88px;
}

.podium-entry.first .podium-team-badge .grade-shield {
  width: 88px;
  height: 108px;
}

.podium-team-shield {
  width: 62px;
  height: 76px;
}

.podium-entry.first .podium-team-shield {
  width: 76px;
  height: 92px;
}

.podium-team-members-icon,
.home-ranking-team-members-icon {
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
}

.podium-team-members {
  gap: 0;
}

.podium-team-members span {
  max-width: 100%;
  text-align: center;
}

.home-ranking-results-podium.is-static .podium-entry {
  opacity: 1;
  transform: none;
  animation: none;
  filter: none;
  will-change: auto;
}

.home-ranking-results-podium.is-static .podium-fireworks,
.home-ranking-results-podium.is-static .podium-confetti {
  display: none;
}

.home-rank-card {
  --rank-main: #d5dde2;
  --rank-mid: #5f6870;
  --rank-dark: #12191d;
  --rank-glow: rgba(210, 222, 230, 0.46);
  --rank-plate: rgba(25, 34, 39, 0.94);
  position: relative;
  width: 340px;
  height: 354px;
  display: block;
  color: #fff;
  opacity: 0;
  transform: translateY(28px) scale(0.93);
  animation: podiumWinnerReveal 1050ms cubic-bezier(0.18, 0.84, 0.24, 1) both;
}

.home-rank-card::before {
  content: "";
  position: absolute;
  left: 46px;
  right: 46px;
  top: 64px;
  bottom: 82px;
  z-index: 0;
  border: 1px solid color-mix(in srgb, var(--rank-main), transparent 24%);
  border-radius: 6px 6px 32px 32px;
  clip-path: polygon(0 0, 100% 0, 100% 74%, 79% 100%, 21% 100%, 0 74%);
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.08), transparent 16%, transparent 84%, rgba(255, 255, 255, 0.08)),
    radial-gradient(ellipse at 50% 28%, color-mix(in srgb, var(--rank-main), transparent 84%), transparent 48%),
    linear-gradient(180deg, color-mix(in srgb, var(--rank-dark), #fff 11%), var(--rank-dark));
  box-shadow:
    inset 0 0 30px rgba(255, 255, 255, 0.08),
    inset 0 -24px 34px rgba(0, 0, 0, 0.34),
    0 18px 34px rgba(0, 0, 0, 0.46),
    0 0 20px color-mix(in srgb, var(--rank-main), transparent 70%);
}

.home-rank-card::after {
  content: "";
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 18px;
  z-index: 0;
  height: 74px;
  border-radius: 50%;
  background:
    radial-gradient(ellipse at 50% 8%, rgba(255, 255, 255, 0.48), transparent 13%),
    linear-gradient(180deg, color-mix(in srgb, var(--rank-main), #fff 24%), var(--rank-mid) 48%, var(--rank-dark) 100%);
  box-shadow:
    inset 0 8px 12px rgba(255, 255, 255, 0.35),
    inset 0 -14px 16px rgba(0, 0, 0, 0.36),
    0 15px 22px rgba(0, 0, 0, 0.46),
    0 0 20px color-mix(in srgb, var(--rank-main), transparent 70%);
  pointer-events: none;
}

.home-rank-card.first {
  --rank-main: #ffd95b;
  --rank-mid: #c28a05;
  --rank-dark: #121806;
  --rank-glow: rgba(255, 216, 77, 0.78);
  --rank-plate: rgba(35, 43, 7, 0.96);
  width: 390px;
  height: 382px;
  grid-column: 2;
  animation-delay: 360ms;
}

.home-rank-card.first,
.home-rank-card.second,
.home-rank-card.third {
  grid-row: 1;
}

.home-rank-card.second {
  --rank-main: #dfe7ed;
  --rank-mid: #8d969d;
  --rank-dark: #121a1e;
  --rank-glow: rgba(214, 226, 236, 0.66);
  --rank-plate: rgba(23, 31, 36, 0.96);
  grid-column: 1;
  animation-delay: 180ms;
}

.home-rank-card.third {
  --rank-main: #e98235;
  --rank-mid: #9a4b13;
  --rank-dark: #1b0d05;
  --rank-glow: rgba(235, 126, 41, 0.68);
  --rank-plate: rgba(42, 20, 8, 0.96);
  grid-column: 3;
  animation-delay: 0ms;
}

.home-rank-card.first::before {
  left: 48px;
  right: 48px;
  top: 18px;
  bottom: 94px;
  border-color: rgba(255, 213, 73, 0.86);
  box-shadow:
    inset 0 0 34px rgba(255, 218, 70, 0.16),
    inset 0 -24px 34px rgba(0, 0, 0, 0.34),
    0 0 24px rgba(255, 211, 54, 0.34),
    0 20px 34px rgba(0, 0, 0, 0.48);
}

.home-rank-card > * {
  position: relative;
  z-index: 1;
}

.home-rank-backplate {
  position: absolute;
  left: 72px;
  right: 72px;
  top: 42px;
  bottom: 160px;
  z-index: -1;
  border: 1px solid color-mix(in srgb, var(--rank-main), transparent 46%);
  border-radius: 5px 5px 18px 18px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--rank-plate), #fff 12%), rgba(0, 0, 0, 0.28));
  box-shadow: 0 0 18px color-mix(in srgb, var(--rank-main), transparent 78%);
}

.home-rank-card.first .home-rank-backplate {
  left: 80px;
  right: 80px;
  top: 8px;
  bottom: 190px;
}

.home-rank-laurel {
  position: absolute;
  bottom: 80px;
  width: 70px;
  height: 150px;
  z-index: 0;
  opacity: 0.86;
  border-radius: 50%;
  background:
    radial-gradient(ellipse 8px 20px at 60% 8%, var(--rank-main) 0 56%, transparent 60%),
    radial-gradient(ellipse 8px 20px at 49% 20%, var(--rank-main) 0 56%, transparent 60%),
    radial-gradient(ellipse 8px 20px at 39% 33%, var(--rank-main) 0 56%, transparent 60%),
    radial-gradient(ellipse 8px 20px at 33% 47%, var(--rank-main) 0 56%, transparent 60%),
    radial-gradient(ellipse 8px 20px at 34% 61%, var(--rank-main) 0 56%, transparent 60%),
    radial-gradient(ellipse 8px 20px at 45% 76%, var(--rank-main) 0 56%, transparent 60%),
    radial-gradient(ellipse 8px 20px at 62% 88%, var(--rank-main) 0 56%, transparent 60%);
  filter: drop-shadow(0 0 6px color-mix(in srgb, var(--rank-main), transparent 55%));
}

.home-rank-laurel-left {
  left: 16px;
  transform: rotate(-18deg);
}

.home-rank-laurel-right {
  right: 16px;
  transform: scaleX(-1) rotate(-18deg);
}

.home-rank-glint {
  position: absolute;
  right: 58px;
  top: 46px;
  z-index: 3;
  width: 48px;
  height: 48px;
  opacity: 0;
  clip-path: polygon(50% 0, 58% 38%, 100% 50%, 58% 62%, 50% 100%, 42% 62%, 0 50%, 42% 38%);
  background: radial-gradient(circle, #fff 0 10%, #fff6a4 24%, rgba(255, 208, 44, 0.78) 42%, transparent 68%);
  filter: drop-shadow(0 0 10px #ffd54d) drop-shadow(0 0 18px rgba(255, 216, 77, 0.56));
}

.home-rank-card.first .home-rank-glint {
  opacity: 0.95;
}

.home-rank-place {
  position: absolute;
  left: 50%;
  top: 36px;
  z-index: 5;
  min-width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 5px;
  background: linear-gradient(#f2f5f7, #808a94);
  color: #fff;
  font-size: 28px;
  font-weight: 1000;
  transform: translateX(-50%);
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.56);
  box-shadow: 0 6px 10px rgba(0, 0, 0, 0.35);
}

.home-rank-card.first .home-rank-place {
  top: auto;
  bottom: 16px;
  left: 50%;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: linear-gradient(#fff6a5, #d99f10);
  color: #fff7bd;
  font-size: 38px;
  transform: translateX(-50%);
}

.home-rank-card.first .home-rank-place::before,
.home-rank-card.first .home-rank-place::after {
  content: "";
  position: absolute;
  top: 34px;
  width: 48px;
  height: 24px;
  z-index: -1;
  background: linear-gradient(180deg, rgba(255, 239, 118, 0.95), rgba(196, 128, 0, 0.96));
  filter: drop-shadow(0 4px 7px rgba(0, 0, 0, 0.3));
}

.home-rank-card.first .home-rank-place::before {
  right: 48px;
  clip-path: polygon(0 0, 100% 0, 76% 100%, 0 72%);
}

.home-rank-card.first .home-rank-place::after {
  left: 48px;
  clip-path: polygon(0 0, 100% 0, 100% 72%, 24% 100%);
}

.home-rank-crown {
  display: none;
}

.home-rank-card.first .home-rank-crown {
  display: block;
  position: absolute;
  left: 50%;
  top: -36px;
  width: 92px;
  height: 76px;
  background: linear-gradient(#fff176, #d79c0c);
  clip-path: polygon(4% 100%, 8% 34%, 30% 66%, 50% 10%, 70% 66%, 92% 34%, 96% 100%);
  filter: drop-shadow(0 5px 8px rgba(255, 213, 54, 0.44));
  transform: translateX(-50%);
}

.avatar.home-rank-avatar {
  position: absolute;
  left: 50%;
  top: 82px;
  z-index: 4;
  width: 76px;
  height: 76px;
  border-radius: 50%;
  border-color: color-mix(in srgb, var(--rank-main), #fff 20%);
  font-size: 32px;
  transform: translateX(-50%);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--rank-main), transparent 58%), 0 8px 16px rgba(0, 0, 0, 0.42);
}

.home-rank-card.first .avatar.home-rank-avatar {
  top: 58px;
  width: 86px;
  height: 86px;
  box-shadow: 0 0 0 4px rgba(255, 216, 77, 0.34), 0 9px 18px rgba(0, 0, 0, 0.42);
}

.home-rank-card strong {
  position: absolute;
  left: 50%;
  top: 166px;
  z-index: 4;
  max-width: 218px;
  overflow: hidden;
  font-size: 19px;
  line-height: 1.1;
  text-align: center;
  text-overflow: ellipsis;
  transform: translateX(-50%);
  white-space: nowrap;
  text-shadow: 0 2px 2px #000;
}

.home-rank-card.first strong {
  top: 158px;
}

.home-rank-grade {
  position: absolute;
  left: 50%;
  top: 205px;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 7px;
  color: #ffe657;
  font-size: 14px;
  font-style: italic;
  font-weight: 1000;
  transform: translateX(-50%);
  text-shadow: 0 2px 2px #000;
}

.home-rank-card.first .home-rank-grade {
  top: 201px;
}

.home-rank-grade .grade-shield {
  width: 26px;
  height: 32px;
}

.home-rank-points {
  position: absolute;
  left: 50%;
  top: 244px;
  z-index: 4;
  display: flex;
  align-items: baseline;
  gap: 5px;
  color: #fff2c3;
  font-size: 34px;
  font-weight: 1000;
  line-height: 1;
  transform: translateX(-50%);
  text-shadow: 0 2px 3px #000;
}

.home-rank-card.first .home-rank-points {
  top: 224px;
  font-size: 36px;
}

.home-rank-points small {
  color: #f6f4dd;
  font-size: 12px;
  text-transform: uppercase;
}

.home-rank-base {
  position: absolute;
  left: 50%;
  bottom: 34px;
  z-index: 1;
  width: 318px;
  height: 68px;
  border-radius: 50%;
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse at 50% 20%, rgba(255, 255, 255, 0.38), transparent 17%),
    linear-gradient(180deg, color-mix(in srgb, var(--rank-main), #fff 28%), var(--rank-mid) 45%, var(--rank-dark));
  box-shadow:
    inset 0 8px 12px rgba(255, 255, 255, 0.3),
    inset 0 -14px 16px rgba(0, 0, 0, 0.36),
    0 13px 20px rgba(0, 0, 0, 0.42);
}

.home-rank-base::before {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: -9px;
  height: 32px;
  border-radius: 50%;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--rank-mid), #fff 12%), var(--rank-dark));
  box-shadow:
    inset 0 6px 8px rgba(255, 255, 255, 0.16),
    inset 0 -10px 12px rgba(0, 0, 0, 0.42),
    0 10px 14px rgba(0, 0, 0, 0.36);
}

.home-rank-card.first .home-rank-base {
  width: 386px;
  height: 74px;
}

.home-ranking-table {
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  overflow: hidden;
  border-radius: 8px;
  border: 1px solid rgba(0, 217, 151, 0.74);
  padding: 12px 12px 10px;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(0, 208, 145, 0.16), transparent 34%),
    linear-gradient(180deg, rgba(0, 130, 92, 0.14), transparent 24%),
    rgba(2, 15, 17, 0.84);
  box-shadow:
    inset 0 0 0 1px rgba(0, 255, 178, 0.08),
    inset 0 0 70px rgba(0, 0, 0, 0.28),
    0 12px 22px rgba(0, 0, 0, 0.32);
}

.home-ranking-table h3 {
  display: grid;
  grid-template-columns: minmax(70px, 1fr) auto minmax(70px, 1fr);
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin: 0 0 8px;
  color: #16c69b;
  font-size: 15px;
  font-weight: 1000;
  text-align: center;
  text-transform: uppercase;
}

.home-ranking-table-head-group,
.home-ranking-table-row {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) minmax(86px, 0.68fr) 72px;
  align-items: center;
  gap: 7px;
}

.home-ranking-table-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: 30px;
  color: #31d7ad;
  font-size: 11px;
  font-weight: 1000;
  text-transform: uppercase;
}

.home-ranking-table-head-group {
  padding: 0 8px;
}

.home-ranking-table-head-group span:last-child {
  justify-self: end;
}

.home-ranking-table-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: start;
  gap: 6px;
  max-height: none;
  overflow: hidden;
}

.home-ranking-table-row {
  min-height: 36px;
  padding: 0 8px;
  border-radius: 7px;
  color: #fff;
  background: linear-gradient(180deg, rgba(24, 42, 43, 0.84), rgba(12, 27, 29, 0.9));
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.08), 0 1px 0 rgba(0, 0, 0, 0.38);
}

.home-ranking-position {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  font-size: 13px;
  font-weight: 1000;
  background: radial-gradient(circle, rgba(98, 111, 34, 0.98), rgba(19, 26, 15, 0.98));
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.14), 0 4px 9px rgba(0, 0, 0, 0.34);
}

.home-ranking-player,
.home-ranking-level {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.home-ranking-player strong {
  overflow: hidden;
  color: #fff;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-ranking-player .grade-shield,
.home-ranking-level .grade-shield {
  width: 24px;
  height: 30px;
  flex: 0 0 auto;
}

.home-ranking-level {
  justify-content: flex-start;
}

.home-ranking-level strong {
  min-width: 0;
  overflow: hidden;
  color: #fff;
  font-size: 11px;
  font-weight: 1000;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-ranking-team-grade {
  justify-content: flex-start;
}

.home-ranking-team-row.player-hover-source {
  cursor: pointer;
}

.home-ranking-team-row.player-hover-source:hover,
.home-ranking-team-row.player-hover-source:focus-visible {
  box-shadow: inset 0 0 0 1px rgba(156, 255, 0, 0.28), 0 1px 0 rgba(0, 0, 0, 0.38);
  outline: none;
}

.home-ranking-score {
  justify-self: end;
  min-width: 54px;
  text-align: right;
  color: #fff;
  font-size: 14px;
  font-weight: 1000;
}

.home-ranking-pagination {
  min-height: 28px;
  display: flex;
  align-items: end;
  justify-content: center;
  gap: 8px;
  padding-top: 8px;
  color: #fff;
  font-size: 12px;
  font-weight: 1000;
}

.home-ranking-pagination button {
  min-width: 82px;
  min-height: 28px;
  border: 1px solid rgba(44, 223, 165, 0.72);
  border-radius: 7px;
  color: #fff;
  font-size: 11px;
  font-weight: 1000;
  background: linear-gradient(180deg, rgba(13, 122, 88, 0.98), rgba(5, 68, 58, 0.98));
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.16), 0 5px 12px rgba(0, 0, 0, 0.26);
  cursor: pointer;
}

.home-ranking-pagination button:disabled {
  opacity: 0.42;
  cursor: default;
}

.home-ranking-empty {
  margin: 0;
  grid-column: 1 / -1;
  display: grid;
  place-items: center;
  color: rgba(244, 246, 242, 0.72);
  font-size: 14px;
  font-weight: 800;
}

.home-menu-page-team {
  isolation: isolate;
  align-content: center;
  gap: 12px;
  padding: 74px 110px 74px;
  background:
    radial-gradient(ellipse at 48% 46%, rgba(5, 103, 70, 0.34), transparent 38%),
    radial-gradient(ellipse at 50% 100%, rgba(0, 146, 105, 0.22), transparent 34%),
    radial-gradient(ellipse at 50% 0%, rgba(6, 57, 45, 0.72), transparent 48%),
    radial-gradient(ellipse at center, transparent 50%, rgba(0, 0, 0, 0.5) 100%),
    linear-gradient(180deg, #021f1c 0%, #052821 45%, #03211d 100%);
}

.home-menu-page-team .home-back-menu-button {
  top: 56px;
  right: auto;
  left: calc(max(44px, calc((100vw - 1580px) / 2)) + 268px);
  width: 150px;
  height: 45px;
  padding: 0;
}

.home-menu-page-team .home-back-menu-button > span:last-child {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.home-menu-page-team .home-back-menu-icon {
  width: 30px;
  height: 30px;
  flex-basis: 30px;
  font-size: 30px;
}

.home-menu-page-team .team-page-content {
  width: min(1580px, calc(100vw - 88px));
  height: 720px;
}

.home-menu-page-team {
  font-family: Helvetica;
  text-transform: uppercase;
}

.team-page-shell {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-rows: auto 270px minmax(0, 1fr);
  gap: 38px;
}

.team-page-heading {
  margin: -22px 0 0;
  grid-template-columns: minmax(92px, 180px) auto minmax(92px, 180px);
  gap: 18px;
  font-size: 34px;
}

.team-top-grid {
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
}

.team-profile-panel,
.team-summary-panel,
.team-members-panel,
.team-empty-panel,
.team-create-panel {
  min-width: 0;
  min-height: 0;
  border: 1px solid rgba(0, 217, 151, 0.74);
  border-radius: 8px;
  color: #fff;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(0, 208, 145, 0.16), transparent 34%),
    linear-gradient(180deg, rgba(0, 130, 92, 0.14), transparent 24%),
    rgba(2, 15, 17, 0.84);
  box-shadow:
    inset 0 0 0 1px rgba(0, 255, 178, 0.08),
    inset 0 0 70px rgba(0, 0, 0, 0.28),
    0 12px 22px rgba(0, 0, 0, 0.32);
}

.team-profile-panel {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  align-items: stretch;
  overflow: hidden;
  padding: 14px 18px 12px;
}

.team-title-ribbon {
  position: relative;
  left: auto;
  top: auto;
  width: auto;
  height: auto;
  display: grid;
  grid-template-columns: minmax(96px, 1fr) auto minmax(96px, 1fr);
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0 0 12px;
  padding: 0;
  color: #16c69b;
  background: none;
  border: 0;
  border-radius: 0;
  clip-path: none;
  box-shadow: none;
}

.team-title-ribbon::before,
.team-title-ribbon::after,
.team-summary-panel h2::before,
.team-summary-panel h2::after {
  content: "";
  height: 2px;
  background:
    linear-gradient(90deg, transparent, rgba(255, 196, 47, 0.9)),
    radial-gradient(circle, #ffd447 0 2px, transparent 3px);
  background-position: center, right center;
  background-repeat: no-repeat;
  background-size: 100% 2px, 20px 8px;
}

.team-title-ribbon::after,
.team-summary-panel h2::after {
  transform: scaleX(-1);
}

.team-title-icon {
  display: none;
}

.team-title-icon-svg {
  width: 34px;
  height: 34px;
  color: #fff;
  filter: drop-shadow(0 3px 2px rgba(0, 0, 0, 0.62));
}

.team-title-ribbon h1 {
  grid-column: 2;
  min-width: 0;
  min-height: 30px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  display: grid;
  place-items: center;
  color: #16c69b;
  font-size: 22px;
  font-weight: 1000;
  line-height: 1.32;
  letter-spacing: 0;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
  text-shadow: 0 4px 3px rgba(0, 0, 0, 0.58);
  background: none;
  border: 0;
  border-radius: 0;
  clip-path: none;
  box-shadow: none;
}

.team-profile-body {
  height: auto;
  min-height: 0;
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  align-content: start;
  align-items: stretch;
  gap: 16px 14px;
}

.team-profile-card {
  min-height: 0;
  width: 100%;
  height: 235px;
  max-height: 235px;
  aspect-ratio: auto;
  grid-column: 1;
  grid-row: 1;
  align-self: start;
  justify-self: stretch;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 8px;
  background:
    radial-gradient(circle at 50% 22%, rgba(255, 213, 69, 0.2), transparent 34%),
    linear-gradient(180deg, rgba(0, 54, 45, 0.88), rgba(0, 19, 17, 0.94));
  box-shadow:
    inset 0 0 0 1px rgba(255, 212, 71, 0.12),
    inset 0 0 26px rgba(0, 0, 0, 0.22),
    0 10px 18px rgba(0, 0, 0, 0.28);
}

.team-profile-danger-command {
  width: 100%;
  max-width: 150px;
  height: 28px;
  gap: 4px;
  padding: 0 6px;
  font-size: 9px;
  line-height: 1.05;
  white-space: nowrap;
}

.team-profile-danger-command .team-danger-icon {
  width: 12px;
  height: 12px;
  flex-basis: 12px;
}

.team-profile-danger-command span {
  display: inline-flex;
  align-items: center;
  min-height: 12px;
  line-height: 1;
  white-space: nowrap;
}

.team-grade-emblem {
  position: relative;
  width: 100%;
  height: auto;
  display: grid;
  grid-template-rows: auto auto auto auto;
  align-content: center;
  place-items: center;
  gap: 5px;
  min-height: 100%;
  padding: 8px 9px 9px;
  border-radius: 7px;
  background: rgba(0, 17, 15, 0.74);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.48);
}

.team-grade-kicker {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  padding: 4px 12px;
  border: 1px solid rgba(255, 212, 71, 0.44);
  border-radius: 999px;
  color: #ffd447;
  font-size: 13px;
  font-weight: 1000;
  line-height: 1;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.62);
  background: rgba(0, 0, 0, 0.28);
}

.team-grade-icon {
  min-width: 0;
  width: 102px;
  height: 110px;
  display: grid;
  place-items: center;
}

.team-grade-icon .grade-shield {
  width: 102px;
  height: 110px;
  --grade-icon-width: 108%;
  --grade-icon-height: 108%;
}

.team-grade-emblem strong {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  color: #9bea10;
  display: -webkit-box;
  font-size: 15px;
  font-weight: 1000;
  line-height: 1.14;
  overflow-wrap: anywhere;
  text-align: center;
  text-transform: uppercase;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  text-shadow: 0 3px 2px rgba(0, 0, 0, 0.62);
}

.team-grade-emblem .team-profile-danger-command {
  margin-top: 7px;
}

.team-shield {
  --team-badge-color: #0639b6;
  --team-badge-accent: #f1f4ff;
  position: relative;
  width: 148px;
  height: 184px;
  display: grid;
  place-items: center;
  filter: drop-shadow(0 14px 11px rgba(0, 0, 0, 0.5));
}

.team-shield.is-large {
  width: 104px;
  height: 128px;
}

.team-shield::before,
.team-shield::after,
.team-shield-face {
  content: "";
  position: absolute;
  clip-path: polygon(10% 0, 90% 0, 88% 64%, 50% 100%, 12% 64%);
}

.team-shield::before {
  inset: 0;
  background:
    linear-gradient(90deg, #7e858c, #f6f6f6 18%, #8c939b 31%, #ffffff 50%, #6f767d 72%, #e9edf0);
}

.team-shield::after {
  inset: 8px;
  background:
    linear-gradient(90deg, rgba(255, 255, 255, 0.82), rgba(28, 31, 34, 0.55)),
    linear-gradient(180deg, #fafafa, #777d83);
}

.team-shield-face {
  inset: 16px 18px 26px;
  z-index: 1;
  background:
    radial-gradient(circle at 72% 24%, rgba(255, 255, 255, 0.2), transparent 18%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.18), transparent 18%),
    linear-gradient(180deg, color-mix(in srgb, var(--team-badge-color), #1f66ff 36%), var(--team-badge-color));
  border: 1px solid rgba(0, 0, 0, 0.56);
}

.team-shield-center {
  position: relative;
  z-index: 2;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 25%, #fff, var(--team-badge-accent) 45%, #b8bdc5 100%);
  box-shadow:
    inset 0 -6px 8px rgba(0, 0, 0, 0.18),
    0 4px 8px rgba(0, 0, 0, 0.42);
}

.team-detail-icon,
.team-remove-member-button {
  display: grid;
  place-items: center;
  border: 0;
  color: #fff;
  cursor: pointer;
}

.team-mini-icon {
  width: 17px;
  height: 17px;
}

.team-green-command,
.team-danger-command {
  min-width: 0;
  min-height: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  border-radius: 8px;
  color: #fff;
  font-weight: 1000;
  letter-spacing: 0;
  text-transform: uppercase;
  text-shadow: 0 3px 2px rgba(0, 0, 0, 0.56);
  cursor: pointer;
}

.team-danger-command span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.team-green-command span {
  min-width: 0;
  overflow: visible;
  line-height: 1.08;
  text-align: center;
  white-space: normal;
}

.team-green-command {
  height: 32px;
  border: 1px solid rgba(156, 255, 0, 0.86);
  font-size: 12px;
  background: linear-gradient(180deg, #63c900 0%, #2b8b00 52%, #155f00 100%);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.22), 0 8px 13px rgba(0, 0, 0, 0.32);
}

.team-command-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
}

.team-detail-stack {
  min-width: 0;
  width: 100%;
  height: 100%;
  display: grid;
  grid-column: 2;
  grid-row: 1;
  align-content: start;
  justify-self: start;
  gap: 10px;
}

.team-detail-row {
  min-width: 0;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  align-items: center;
  gap: 16px;
}

.team-detail-icon {
  width: 52px;
  height: 52px;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.team-detail-icon[aria-hidden="true"] {
  cursor: default;
}

.team-detail-icon-svg {
  width: 34px;
  height: 34px;
  filter: drop-shadow(0 3px 2px rgba(0, 0, 0, 0.54));
}

.team-detail-icon-img {
  width: 50px;
  height: 50px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 4px 3px rgba(0, 0, 0, 0.5));
  pointer-events: none;
}

.team-detail-copy {
  min-width: 0;
  min-height: 52px;
  display: grid;
  align-content: center;
  gap: 4px;
  padding: 6px 12px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 7px;
  background: rgba(0, 17, 15, 0.74);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.48);
}

.team-detail-copy[data-action] {
  cursor: pointer;
}

.team-detail-copy span,
.team-summary-card span,
.team-members-head span {
  color: #fff;
  font-weight: 1000;
  letter-spacing: 0;
  text-transform: uppercase;
  text-shadow: 0 3px 2px rgba(0, 0, 0, 0.56);
}

.team-detail-copy span {
  font-size: 11px;
}

.team-detail-copy strong {
  min-width: 0;
  overflow: hidden;
  color: #9bea10;
  font-size: 14px;
  font-weight: 1000;
  line-height: 1.32;
  text-overflow: ellipsis;
  text-transform: none;
  white-space: nowrap;
  text-shadow: 0 3px 2px rgba(0, 0, 0, 0.6);
}

.team-detail-row.is-graduation .team-detail-copy {
  min-height: 50px;
}

.team-detail-row.is-graduation .team-detail-copy strong {
  display: -webkit-box;
  font-size: 13px;
  line-height: 1.16;
  overflow-wrap: anywhere;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.team-detail-value-input {
  min-width: 0;
  width: 100%;
  height: 23px;
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  color: #9bea10;
  font: inherit;
  font-size: 17px;
  font-weight: 1000;
  line-height: 1.05;
  text-transform: none;
  background: transparent;
  text-shadow: 0 3px 2px rgba(0, 0, 0, 0.6);
}

.team-detail-value-input::selection {
  color: #071b07;
  background: #9bea10;
}

.team-grade-progress {
  min-width: 0;
  width: 100%;
  grid-column: 1 / -1;
  grid-row: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(176px, 0.58fr);
  grid-auto-rows: 52px;
  align-items: stretch;
  gap: 12px;
  min-height: 52px;
  margin-top: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

.team-grade-progress-head {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}

.team-grade-progress-head span,
.team-grade-progress-head strong {
  min-width: 0;
  overflow: hidden;
  font-weight: 1000;
  line-height: 1.12;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
  text-shadow: 0 3px 2px rgba(0, 0, 0, 0.56);
}

.team-grade-progress-head span {
  color: #fff;
  font-size: 12px;
}

.team-grade-progress-head strong {
  color: #ffd447;
  font-size: 11px;
  overflow-wrap: anywhere;
  text-align: left;
  white-space: normal;
}

.team-grade-progress-track {
  position: relative;
  min-width: 0;
  height: 100%;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 7px;
  background: rgba(0, 17, 15, 0.74);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.48);
}

.team-grade-progress-track > span {
  position: absolute;
  inset: 6px auto 6px 6px;
  display: block;
  max-width: calc(100% - 12px);
  border-radius: 5px;
  background: linear-gradient(#5fb900, #1f7200);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.18), 0 0 9px rgba(48, 148, 0, 0.42);
}

.team-grade-progress-track strong {
  position: relative;
  z-index: 1;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  padding: 0 8px;
  color: #fff;
  font-size: 13px;
  font-weight: 1000;
  line-height: 1.2;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.72);
}

.team-next-grade-box {
  min-width: 0;
  min-height: 0;
  height: 100%;
  display: grid;
  place-items: center;
  padding: 0 10px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 7px;
  background: rgba(0, 17, 15, 0.74);
  color: #fff;
  font-size: 13px;
  font-weight: 1000;
  line-height: 1.1;
  text-align: center;
  overflow-wrap: anywhere;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.58);
}

.team-grade-progress.is-max-grade .team-next-grade-box {
  color: #9bea10;
}

.team-summary-panel {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  gap: 0;
  padding: 14px 18px 12px;
  overflow: hidden;
}

.team-summary-panel h2 {
  min-width: 0;
  min-height: 22px;
  height: auto;
  display: grid;
  grid-template-columns: minmax(96px, 1fr) auto minmax(96px, 1fr);
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  color: #16c69b;
  font-size: 16px;
  font-weight: 1000;
  line-height: 1.32;
  letter-spacing: 0;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
  text-overflow: ellipsis;
  text-shadow: none;
  background: none;
  border: 0;
  border-radius: 0;
  clip-path: none;
  box-shadow: none;
}

.team-summary-grid {
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.team-summary-card {
  min-width: 0;
  min-height: 74px;
  display: grid;
  grid-template-columns: 76px minmax(0, 150px);
  align-items: center;
  justify-content: center;
  justify-items: start;
  gap: 14px;
  padding: 8px 10px;
  border: 1px solid rgba(155, 234, 16, 0.28);
  border-radius: 7px;
  background:
    radial-gradient(circle at 22% 50%, rgba(22, 198, 155, 0.18), transparent 34%),
    linear-gradient(180deg, rgba(0, 72, 42, 0.58), rgba(0, 17, 15, 0.88));
  box-shadow:
    inset 0 2px rgba(255, 255, 255, 0.08),
    inset 0 0 22px rgba(0, 0, 0, 0.46),
    0 8px 14px rgba(0, 0, 0, 0.22);
}

.team-summary-icon {
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
  justify-self: center;
  align-self: center;
  color: #fff;
}

.team-summary-icon-svg {
  width: 64px;
  height: 64px;
  color: #fff;
  filter: drop-shadow(0 6px 5px rgba(0, 0, 0, 0.58));
}

.team-summary-icon-img {
  width: 66px;
  height: 66px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 7px 5px rgba(0, 0, 0, 0.58));
  pointer-events: none;
}

.team-summary-icon-svg.is-trophy {
  color: #ffc12a;
}

.team-summary-icon-svg.is-target {
  color: #f5342a;
}

.team-medal-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background:
    conic-gradient(from 20deg, #d8dde2, #ffffff, #7e8791, #ffffff, #c2c8cf),
    linear-gradient(#c5cad0, #ffffff);
  filter: drop-shadow(0 5px 3px rgba(0, 0, 0, 0.45));
}

.team-medal-icon span {
  width: 25px;
  height: 25px;
  display: block;
  clip-path: polygon(50% 0, 62% 35%, 100% 35%, 69% 56%, 81% 94%, 50% 71%, 19% 94%, 31% 56%, 0 35%, 38% 35%);
  background: linear-gradient(180deg, #ffef62, #ff9600 68%, #d86600);
  box-shadow: inset 0 0 0 4px rgba(255, 255, 255, 0.35);
}

.team-summary-card div {
  min-width: 0;
  max-width: 150px;
  display: grid;
  justify-self: center;
  justify-items: start;
  gap: 6px;
  text-align: left;
}

.team-summary-card span {
  font-size: 15px;
  text-align: left;
}

.team-summary-card div > span {
  white-space: nowrap;
}

.team-summary-card strong {
  min-width: 0;
  overflow: hidden;
  color: #9bea10;
  font-size: 26px;
  font-weight: 1000;
  line-height: 1.18;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 4px 3px rgba(0, 0, 0, 0.66);
}

.team-danger-command {
  width: 100%;
  height: 52px;
  border: 1px solid rgba(255, 97, 87, 0.86);
  font-size: 21px;
  background: linear-gradient(180deg, #ef1715 0%, #bd0509 54%, #840004 100%);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.24), 0 8px 16px rgba(0, 0, 0, 0.36);
}

.team-danger-icon {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
}

.team-danger-command.team-profile-danger-command {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 28px;
  max-width: 150px;
  gap: 0;
  padding: 0;
  border: 0;
  font-size: 0;
  line-height: 1;
  background-color: #41494a;
  background-image:
    url("/assets/interface/bnt-excluir-equipe.fw.webp"),
    linear-gradient(180deg, #616a6b 0%, #3b4243 58%, #202829 100%);
  background-position: center;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  box-shadow: none;
}

.team-danger-command.team-profile-danger-command.is-leave {
  background-image:
    url("/assets/interface/bnt-excluir-sair-equipe.fw.webp"),
    linear-gradient(180deg, #616a6b 0%, #3b4243 58%, #202829 100%);
}

.team-danger-command.team-profile-danger-command .team-danger-icon {
  display: none;
}

.team-danger-command.team-profile-danger-command span {
  opacity: 0;
}

.team-danger-command.team-profile-danger-command.is-leave span {
  opacity: 0;
}

.team-confirm-overlay {
  position: absolute;
  inset: 0;
  z-index: 12;
  display: grid;
  place-items: center;
  padding: 28px;
  background: rgba(0, 0, 0, 0.52);
  backdrop-filter: blur(2px);
}

.leave-room-confirm-overlay {
  position: fixed;
  z-index: 13000;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
}

.team-invite-overlay {
  position: fixed;
  z-index: 12000;
}

.team-confirm-modal {
  position: relative;
  width: min(690px, 80vw);
  aspect-ratio: 1265 / 850;
  animation: team-confirm-pop 220ms cubic-bezier(0.2, 0.92, 0.3, 1.12) both;
  filter: drop-shadow(0 18px 28px rgba(0, 0, 0, 0.52));
}

.team-confirm-modal.is-leave {
  aspect-ratio: 1280 / 879;
}

.team-confirm-modal.is-remove-member {
  aspect-ratio: 1466 / 978;
}

.team-confirm-image {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  user-select: none;
  pointer-events: none;
}

.team-confirm-remove-copy {
  position: absolute;
  left: 12%;
  right: 12%;
  top: 45.5%;
  z-index: 1;
  display: grid;
  place-items: center;
  min-height: 10%;
  padding: 6px 12px;
  color: #ffffff;
  font-size: clamp(13px, 1.55vw, 22px);
  font-weight: 900;
  line-height: 1.22;
  text-align: center;
  text-transform: none;
  text-shadow: 0 3px 0 rgba(0, 0, 0, 0.72), 0 0 12px rgba(0, 0, 0, 0.9);
  pointer-events: none;
}

.team-confirm-remove-copy strong {
  color: #ffd21f;
}

.team-confirm-hotspot {
  position: absolute;
  z-index: 1;
  border: 0;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0);
  cursor: pointer;
}

.team-confirm-hotspot.is-cancel {
  left: 4.5%;
  bottom: 7.7%;
  width: 41.3%;
  height: 14.2%;
}

.team-confirm-hotspot.is-confirm {
  right: 4.4%;
  bottom: 7.7%;
  width: 45.6%;
  height: 14.2%;
}

.team-confirm-modal.is-remove-member .team-confirm-hotspot.is-cancel {
  left: 6.4%;
  bottom: 6.7%;
  width: 42.2%;
  height: 18.1%;
}

.team-confirm-modal.is-remove-member .team-confirm-hotspot.is-confirm {
  right: 6.4%;
  bottom: 6.7%;
  width: 42.2%;
  height: 18.1%;
}

.team-confirm-hotspot:hover,
.team-confirm-hotspot:focus-visible {
  background: rgba(255, 255, 255, 0.08);
  outline: 2px solid rgba(255, 255, 255, 0.22);
  outline-offset: -2px;
}

.team-confirm-modal {
  width: min(690px, 80vw);
  min-height: 464px;
  aspect-ratio: auto;
  display: grid;
  grid-template-rows: auto auto auto 1fr auto;
  justify-items: center;
  padding: 36px 32px 34px;
  border: 3px solid #5b6368;
  border-radius: 26px;
  overflow: hidden;
  color: #ffffff;
  background:
    radial-gradient(circle at 50% 74%, rgba(31, 43, 48, 0.74), rgba(10, 17, 20, 0.08) 28%, rgba(0, 0, 0, 0) 48%),
    linear-gradient(180deg, rgba(35, 45, 50, 0.98), rgba(7, 14, 17, 0.99) 62%, rgba(5, 10, 12, 1));
  box-shadow:
    inset 0 0 0 2px rgba(255, 255, 255, 0.13),
    inset 0 -8px 18px rgba(0, 0, 0, 0.6),
    inset 0 10px 22px rgba(255, 255, 255, 0.06);
}

.team-confirm-modal::before {
  content: "";
  position: absolute;
  inset: 9px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 19px;
  pointer-events: none;
}

.team-confirm-alert {
  display: grid;
  place-items: center;
  width: 104px;
  height: 104px;
  border: 9px solid #ff4b52;
  border-radius: 50%;
  color: #ff4b52;
  font-size: 72px;
  font-weight: 950;
  line-height: 1;
  text-shadow: 0 3px 0 rgba(0, 0, 0, 0.52);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.38), inset 0 0 18px rgba(255, 70, 76, 0.16);
}

.team-confirm-modal h2 {
  margin: 22px 0 20px;
  color: #ffffff;
  font-size: clamp(34px, 4.5vw, 56px);
  font-weight: 950;
  line-height: 0.95;
  letter-spacing: 0;
  text-align: center;
  text-transform: uppercase;
  text-shadow: 0 5px 0 rgba(0, 0, 0, 0.62), 0 0 10px rgba(255, 255, 255, 0.16);
}

.team-confirm-rule {
  width: 100%;
  height: 2px;
  margin-bottom: 34px;
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.14) 9%, rgba(255, 255, 255, 0) 18%),
    linear-gradient(90deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.32), rgba(255, 255, 255, 0.02));
}

.team-confirm-copy {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 16px;
  min-height: 132px;
  text-align: center;
}

.team-confirm-copy p,
.team-confirm-copy strong {
  margin: 0;
  line-height: 1.22;
  text-shadow: 0 4px 0 rgba(0, 0, 0, 0.64), 0 0 10px rgba(0, 0, 0, 0.72);
}

.team-confirm-copy p {
  color: #ffffff;
  font-size: clamp(22px, 2.95vw, 36px);
  font-weight: 900;
}

.team-confirm-copy p strong {
  color: #ff2028;
}

.team-confirm-copy > strong {
  max-width: 92%;
  color: #ffca18;
  font-size: clamp(22px, 3.1vw, 36px);
  font-weight: 950;
}

.team-confirm-actions {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 28px;
  margin-top: 28px;
}

.team-confirm-modal:is(.is-name-exists, .is-text-blocked) .team-confirm-actions {
  grid-template-columns: minmax(190px, 0.46fr);
  justify-content: center;
}

.team-confirm-modal.is-inactivity .team-confirm-actions {
  grid-template-columns: minmax(190px, 0.46fr);
  justify-content: center;
}

.team-confirm-button {
  height: 78px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  border: 0;
  border-radius: 12px;
  color: #ffffff;
  font-size: clamp(26px, 3.35vw, 42px);
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
  text-shadow: none;
  cursor: pointer;
  box-shadow:
    inset 0 0 0 3px rgba(255, 255, 255, 0.16),
    inset 0 -8px 0 rgba(0, 0, 0, 0.2),
    0 8px 0 rgba(0, 0, 0, 0.28);
  transition: transform 120ms ease, filter 120ms ease, box-shadow 120ms ease;
}

.team-confirm-button.is-cancel {
  background: linear-gradient(180deg, #747c86, #3f454d 58%, #30353d);
}

.team-confirm-button.is-confirm {
  background: linear-gradient(180deg, #ff2028, #c60004 58%, #8b0000);
}

.team-confirm-modal:is(.is-edit-text, .is-name-exists, .is-text-blocked, .is-remove-member, .is-disband, .is-leave) .team-confirm-button.is-confirm {
  background: linear-gradient(180deg, #6edd00 0%, #39a800 52%, #1c7600 100%);
}

.team-confirm-modal.is-remove-member .team-confirm-copy p strong {
  color: #ffffff;
}

.team-confirm-modal.is-team-invite .team-confirm-copy p strong {
  color: #ffffff;
}

.team-confirm-modal.is-team-invite {
  width: min(560px, 72vw);
  min-height: 0;
  padding: 24px 26px 26px;
}

.team-confirm-modal.is-team-invite .team-confirm-alert {
  width: 56px;
  height: 56px;
  border-width: 6px;
  font-size: 36px;
}

.team-confirm-modal.is-team-invite h2 {
  margin: 15px 0 13px;
  font-size: clamp(17px, 2.1vw, 25px);
}

.team-confirm-modal.is-team-invite .team-confirm-rule {
  margin-bottom: 12px;
}

.team-confirm-modal.is-team-invite .team-confirm-copy {
  gap: 10px;
  min-height: 88px;
}

.team-confirm-modal.is-team-invite .team-confirm-copy p {
  max-width: 100%;
  font-size: clamp(10px, 1.08vw, 14px);
  line-height: 1.16;
}

.team-confirm-modal.is-team-invite .team-confirm-copy > strong {
  max-width: 100%;
  font-size: clamp(10px, 1.14vw, 15px);
  line-height: 1.16;
}

.team-invite-countdown {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 28px;
  margin-top: 8px;
  padding: 0 10px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 7px;
  color: #ffffff;
  background: rgba(0, 0, 0, 0.3);
  box-shadow: inset 0 0 12px rgba(0, 0, 0, 0.28);
}

.team-invite-countdown span {
  min-width: 24px;
  color: #ffca18;
  font-size: clamp(14px, 1.65vw, 22px);
  font-weight: 950;
  line-height: 1;
  text-align: center;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.56);
}

.team-invite-countdown strong {
  color: #ffffff;
  font-size: clamp(8px, 0.95vw, 12px);
  font-weight: 950;
  line-height: 1;
  text-transform: uppercase;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.56);
}

.team-confirm-button-icon {
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  filter: drop-shadow(0 3px 0 rgba(0, 0, 0, 0.3));
}

.team-confirm-button span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: none;
}

.team-confirm-modal.is-team-invite .team-confirm-actions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.team-confirm-modal.is-team-invite .team-confirm-button {
  height: 58px;
  min-width: 0;
  gap: 8px;
  padding: 0 12px;
  border-radius: 9px;
  font-size: clamp(13px, 1.54vw, 18px);
  text-shadow: none;
}

.team-confirm-modal.is-team-invite-sent .team-confirm-actions {
  grid-template-columns: minmax(0, 1fr);
}

.team-confirm-modal.is-team-invite-sent .team-confirm-button {
  width: 100%;
  font-size: clamp(13px, 1.54vw, 18px);
  text-shadow: none;
}

.team-confirm-modal.is-team-invite .team-confirm-button-icon {
  width: 22px;
  height: 22px;
}

.team-confirm-button:hover,
.team-confirm-button:focus-visible {
  transform: translateY(-2px);
  filter: brightness(1.1);
  outline: 2px solid rgba(255, 255, 255, 0.32);
  outline-offset: 3px;
}

.team-confirm-button:disabled {
  cursor: wait;
  opacity: 0.74;
  filter: grayscale(0.18);
}

.team-confirm-button:active {
  transform: translateY(2px);
  box-shadow:
    inset 0 0 0 3px rgba(255, 255, 255, 0.16),
    inset 0 -4px 0 rgba(0, 0, 0, 0.2),
    0 4px 0 rgba(0, 0, 0, 0.28);
}

.team-confirm-modal {
  width: min(560px, 72vw);
  min-height: 356px;
  padding: 24px 26px 26px;
  border-width: 2px;
  border-radius: 20px;
}

.team-confirm-modal::before {
  inset: 7px;
  border-radius: 15px;
}

.team-confirm-alert {
  width: 72px;
  height: 72px;
  border-width: 7px;
  font-size: 48px;
}

.team-confirm-modal h2 {
  margin: 15px 0 13px;
  font-size: clamp(17px, 2.1vw, 25px);
  text-shadow: 0 4px 0 rgba(0, 0, 0, 0.62), 0 0 8px rgba(255, 255, 255, 0.14);
}

.team-confirm-rule {
  margin-bottom: 20px;
}

.team-confirm-copy {
  gap: 10px;
  min-height: 88px;
}

.team-confirm-copy p,
.team-confirm-copy strong {
  line-height: 1.16;
  text-shadow: 0 3px 0 rgba(0, 0, 0, 0.64), 0 0 8px rgba(0, 0, 0, 0.72);
}

.team-confirm-copy p {
  font-size: clamp(10px, 1.08vw, 14px);
}

.team-confirm-copy > strong {
  max-width: 94%;
  font-size: clamp(10px, 1.14vw, 15px);
}

.team-confirm-actions {
  gap: 16px;
  margin-top: 18px;
}

.team-confirm-button {
  height: 58px;
  gap: 8px;
  padding: 0 12px;
  border-radius: 9px;
  font-size: clamp(13px, 1.54vw, 18px);
  white-space: nowrap;
  text-shadow: none;
  box-shadow:
    inset 0 0 0 2px rgba(255, 255, 255, 0.16),
    inset 0 -6px 0 rgba(0, 0, 0, 0.2),
    0 6px 0 rgba(0, 0, 0, 0.28);
}

.team-confirm-button-icon {
  width: 24px;
  height: 24px;
}

@keyframes team-confirm-pop {
  from {
    opacity: 0;
    transform: scale(0.72);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.team-members-panel {
  --team-points-shift: -78px;
  --team-total-points-extra-shift: 28px;
  --team-role-shift: -22px;
  --team-role-title-extra-shift: 14px;
  --team-grade-title-left: 360px;
  --team-grade-shift: -24px;
  overflow: hidden;
  display: grid;
  grid-template-rows: 40px minmax(0, 1fr);
  padding: 12px 14px;
  font-family: Helvetica;
}

.team-members-panel * {
  font-family: inherit;
}

.team-members-head,
.team-member-row {
  min-width: 0;
  display: grid;
  grid-template-columns: 36px 18px minmax(202px, 1.28fr) 98px 92px minmax(126px, 0.84fr) 86px 92px;
  align-items: center;
}

.team-members-head {
  position: relative;
  min-height: 40px;
  padding: 0 14px;
  color: #31d7ad;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}

.team-members-head span {
  font-size: 12px;
}

.team-members-head::after {
  content: "GRADUAÇÃO";
  position: absolute;
  left: calc(var(--team-grade-title-left) + var(--team-grade-shift));
  top: 50%;
  color: #fff;
  font-size: 12px;
  font-weight: 1000;
  line-height: 1;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.62);
  transform: translateY(-50%);
  white-space: nowrap;
}

.team-members-head span:nth-child(4),
.team-member-row > .team-member-points:nth-of-type(4) {
  transform: translateX(var(--team-points-shift));
}

.team-members-head span:nth-child(5),
.team-member-row > .team-member-points:nth-of-type(5) {
  transform: translateX(calc(var(--team-points-shift) + var(--team-total-points-extra-shift)));
}

.team-members-body {
  min-height: 0;
  overflow: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 217, 151, 0.62) rgba(0, 0, 0, 0.16);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.team-members-head,
.team-member-row {
  grid-template-columns: 36px 18px minmax(202px, 1.28fr) 98px 92px minmax(126px, 0.84fr) 86px 108px;
}

.team-member-row {
  min-height: 54px;
  margin-bottom: 4px;
  padding: 0 10px;
  border-top: 0;
  border-radius: 7px;
  background: linear-gradient(180deg, rgba(24, 42, 43, 0.84), rgba(12, 27, 29, 0.9));
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.08), 0 1px 0 rgba(0, 0, 0, 0.38);
  transition: background 160ms ease;
}

.team-member-row:hover {
  background: linear-gradient(180deg, rgba(30, 52, 53, 0.9), rgba(15, 34, 36, 0.94));
}

.team-member-row > span,
.team-member-row > button {
  min-width: 0;
}

.team-member-position {
  grid-column: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.team-member-photo-cell {
  grid-column: 3;
  grid-row: 1;
  display: grid;
  place-items: center start;
  padding-right: 0;
}

.team-rank-badge {
  width: auto;
  height: auto;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 18px;
  font-weight: 1000;
  line-height: 1;
  text-shadow: 0 3px 2px rgba(0, 0, 0, 0.62);
}

.team-member-user {
  grid-column: 3;
  grid-row: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  padding-left: 50px;
}

.team-member-row > .team-member-points:nth-of-type(4) {
  grid-column: 4;
}

.team-member-row > .team-member-points:nth-of-type(5) {
  grid-column: 5;
}

.team-member-row > .team-contribution {
  grid-column: 6;
}

.team-member-row > .team-member-role {
  grid-column: 7;
}

.team-member-row > .team-remove-member-button,
.team-member-row > span:last-child:not([class]) {
  grid-column: 8;
}

.team-member-user .grade-shield {
  width: 40px;
  height: 50px;
}

.team-member-name {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(76px, 0.78fr) minmax(120px, 1fr);
  align-items: center;
  justify-content: start;
  gap: 8px;
}

.team-member-user strong {
  min-width: 0;
  overflow: hidden;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.26;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.62);
}

.team-member-grade {
  min-width: 0;
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  transform: translateX(var(--team-grade-shift));
}

.team-member-grade em {
  min-width: 0;
  overflow: hidden;
  color: #fff;
  font-size: 14px;
  font-style: normal;
  font-weight: 1000;
  line-height: 1.12;
  text-overflow: ellipsis;
  text-transform: uppercase;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.62);
  white-space: nowrap;
}

.team-member-photo {
  width: 42px;
  height: 42px;
  object-fit: cover;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.32);
  background: rgba(0, 12, 13, 0.68);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.18), 0 4px 8px rgba(0, 0, 0, 0.32);
}

.team-member-points {
  display: block;
  min-width: 0;
  overflow: hidden;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.28;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.62);
}

.team-contribution {
  display: grid;
  grid-template-columns: minmax(58px, 0.82fr) 38px;
  align-items: center;
  gap: 6px;
}

.team-contribution-track {
  min-width: 0;
  height: 18px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 5px;
  background: rgba(0, 17, 15, 0.74);
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.48);
}

.team-contribution-track span {
  display: block;
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, #5cc200, #9bea10);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.18);
}

.team-contribution strong {
  min-width: 0;
  overflow: hidden;
  color: #fff;
  font-size: 14px;
  font-weight: 1000;
  line-height: 1.28;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.62);
}

.team-member-role {
  display: grid;
  place-items: center;
  justify-self: center;
  width: 100%;
  transform: translateX(var(--team-role-shift));
  min-height: 34px;
  min-width: 0;
  overflow: hidden;
  border-radius: 7px;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.22;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.62);
}

.team-role-crown {
  width: 32px;
  height: 32px;
  color: #ffc72f;
  filter: drop-shadow(0 4px 3px rgba(0, 0, 0, 0.52));
}

.team-members-head span:nth-child(7) {
  transform: translateX(calc(var(--team-role-shift) + var(--team-role-title-extra-shift)));
}

.team-remove-member-button {
  justify-self: end;
  width: 108px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 0 7px;
  border: 1px solid rgba(255, 97, 87, 0.86);
  border-radius: 8px;
  background: linear-gradient(180deg, #f01815 0%, #bd0509 54%, #850004 100%);
  box-shadow: inset 0 2px rgba(255, 255, 255, 0.22), 0 7px 12px rgba(0, 0, 0, 0.32);
}

.team-remove-member-button span {
  min-width: 0;
  overflow: hidden;
  color: #fff;
  font-size: 14px;
  font-weight: 1000;
  line-height: 1;
  text-overflow: ellipsis;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.54);
  white-space: nowrap;
}

.team-remove-icon {
  width: 22px;
  height: 22px;
}

.team-members-empty {
  min-height: 160px;
  display: grid;
  place-items: center;
  margin: 0;
  color: rgba(244, 246, 242, 0.78);
  font-size: 18px;
  font-weight: 900;
}

.team-empty-panel {
  width: min(660px, 100%);
  min-height: 430px;
  margin: auto;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 18px;
  padding: 34px;
  text-align: center;
}

.team-empty-badge .team-shield.is-empty {
  width: 150px;
  height: 184px;
  opacity: 0.82;
}

.team-empty-panel h1 {
  margin: 0;
  color: #fff;
  font-size: 42px;
  font-weight: 1000;
  letter-spacing: 0;
  text-transform: uppercase;
  text-shadow: 0 4px 3px rgba(0, 0, 0, 0.58);
}

.team-empty-panel p {
  margin: 0 0 6px;
  color: #9bea10;
  font-size: 22px;
  font-weight: 1000;
  text-transform: uppercase;
  text-shadow: 0 3px 2px rgba(0, 0, 0, 0.58);
}

.team-create-page-shell {
  position: relative;
  justify-self: center;
  width: min(1220px, 100%);
  grid-template-rows: auto minmax(0, 1fr);
  gap: 38px;
}

.team-create-panel {
  position: relative;
  justify-self: stretch;
  align-self: start;
  width: 100%;
  height: min(540px, 100%);
  display: grid;
  grid-template-columns: minmax(220px, 0.58fr) minmax(0, 1.42fr);
  gap: 24px;
  align-items: center;
  padding: 22px 40px 20px;
  overflow: hidden;
}

.team-create-page-shell .team-create-back-button {
  top: -18px !important;
  left: 0 !important;
}

@media (max-width: 480px) {
  .home-menu-page-settings {
    --settings-mobile-top-gap: 24px;
    align-content: stretch;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 12px;
    padding: var(--settings-mobile-top-gap) 0 max(16px, env(safe-area-inset-bottom));
  }

  .home-menu-page-settings .home-page-title {
    order: 1;
    width: min(350px, calc(100vw - 34px));
    justify-self: center;
    grid-template-columns: minmax(24px, 1fr) auto minmax(24px, 1fr);
    gap: 8px;
    margin: 0;
    font-size: 20px;
  }

  .home-menu-page-settings .home-page-content {
    order: 2;
    width: min(540px, calc((100vw / var(--lobby-scale)) - 22px));
    height: 100%;
    max-height: none;
    justify-self: center;
    margin: 0;
    overflow: hidden;
    padding: 0;
  }

  .home-menu-page-settings .home-settings-grid {
    height: 100%;
    display: grid;
    grid-template-columns: 1fr;
    align-content: start;
    gap: 20px;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0 0 8px;
    scrollbar-width: thin;
  }

  .home-menu-page-settings .home-settings-panel {
    width: 100%;
    min-height: 0;
    padding: 12px;
    border-width: 2px;
    border-radius: 8px;
    overflow: hidden;
  }

  .home-menu-page-settings .home-back-menu-button {
    position: static;
    order: 3;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 190px;
    height: 58px;
    margin-top: 4px;
    justify-self: center;
  }

  .home-settings-card-heading {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 12px;
    padding-bottom: 12px;
  }

  .home-settings-photo-frame {
    width: 76px;
    height: 76px;
  }

  .home-settings-photo-frame .avatar.home-settings-avatar {
    font-size: 25px;
  }

  .home-settings-account-heading {
    gap: 8px;
  }

  .home-settings-card-heading h2 {
    font-size: 20px;
  }

  .home-settings-account-heading > span {
    font-size: 10px;
  }

  .home-settings-photo-actions {
    grid-template-columns: repeat(2, minmax(0, 106px));
    gap: 7px;
    margin-top: 0;
  }

  .home-settings-photo-button {
    min-height: 32px;
    padding: 0 7px;
    border-radius: 6px;
    font-size: 9px;
  }

  .home-account-summary {
    gap: 8px;
  }

  .home-account-summary div {
    min-height: 50px;
    gap: 4px;
    padding: 8px 10px;
    border-radius: 6px;
  }

  .home-account-summary span,
  .home-password-field > span:first-child {
    font-size: 10px;
  }

  .home-account-summary strong {
    font-size: 14px;
    line-height: 1.12;
  }

  .home-password-form {
    gap: 8px;
  }

  .home-password-form h3 {
    font-size: 15px;
  }

  .home-password-field {
    gap: 4px;
  }

  .home-password-wrap input {
    height: 38px;
    padding: 0 42px 0 12px;
    border-radius: 6px;
    font-size: 13px;
  }

  .home-password-wrap .auth-eye-button {
    right: 5px;
    width: 34px;
  }

  .home-password-wrap .auth-eye-icon {
    width: 20px;
    height: 16px;
  }

  .home-password-submit {
    height: 42px;
    gap: 8px;
    border-radius: 6px;
    font-size: 14px;
  }

  .home-password-submit .auth-lock-icon {
    width: 18px;
    height: 18px;
  }

  .home-menu-page-settings .home-sound-settings-panel {
    align-content: start;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-settings-body {
    height: auto;
    grid-template-rows: none;
    gap: 9px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control,
  .home-menu-page-settings .home-sound-settings-panel .sound-toggle {
    border-radius: 7px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control {
    min-height: 76px;
    padding: 8px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control > span {
    grid-template-columns: 38px minmax(0, 1fr) 54px;
    gap: 8px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control-icon {
    width: 36px;
    height: 36px;
    font-size: 25px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control strong,
  .home-menu-page-settings .home-sound-settings-panel .sound-toggle strong {
    font-size: 13px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control input[type="range"] {
    grid-column: 2 / 4;
    grid-row: 2;
    height: 12px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control output {
    width: 50px;
    height: 28px;
    font-size: 13px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle {
    min-height: 48px;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 9px;
    padding: 7px 9px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle span {
    width: 48px;
    height: 28px;
    padding: 3px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle span::before {
    width: 22px;
    height: 22px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle.is-on span::before {
    transform: translateX(20px);
  }
}

body,
body *,
body *::before,
body *::after,
button,
input,
textarea,
select,
option,
svg,
svg * {
  font-family: Helvetica !important;
  font-weight: 700 !important;
}

body,
body *:not(input):not(textarea),
body *::before,
body *::after,
button,
input,
textarea,
select,
option,
input::placeholder,
textarea::placeholder,
svg text {
  text-transform: uppercase !important;
}

#app .chat-messages,
#app .chat-messages *,
#app input,
#app textarea,
#app input::placeholder,
#app textarea::placeholder,
#app .preserve-text,
#app .preserve-text *,
#app .preserve-player-name {
  text-transform: none !important;
}

#app .preserve-text,
#app .preserve-text * {
  text-transform: none !important;
}

#app .preserve-player-name {
  text-transform: none !important;
}

#app .allow-uppercase,
#app .allow-uppercase * {
  text-transform: uppercase !important;
}

#app .player-hover-card-frame .preserve-player-name,
#app .mini-player-card .preserve-player-name,
#app .mini-player-summary .preserve-player-name,
#app .team-hover-members-card .preserve-player-name,
.player-hover-card-frame .preserve-player-name,
.mini-player-card .preserve-player-name,
.mini-player-summary .preserve-player-name,
.team-hover-members-card .preserve-player-name,
.team-confirm-modal.preserve-text,
.team-confirm-modal .preserve-text,
.team-confirm-modal .preserve-text *,
.team-confirm-modal h2.preserve-text,
.team-confirm-modal .team-confirm-copy.preserve-text,
.team-confirm-modal .team-confirm-copy.preserve-text p,
.team-confirm-modal .team-confirm-copy.preserve-text strong,
#app .team-detail-copy .preserve-player-name,
#app .team-detail-value-input.preserve-player-name,
#app .team-confirm-modal .preserve-text,
#app .team-confirm-modal .preserve-text *,
#app .team-confirm-modal h2.preserve-text,
#app .team-confirm-modal .team-confirm-copy.preserve-text,
#app .team-confirm-modal .team-confirm-copy.preserve-text p,
#app .team-confirm-modal .team-confirm-copy.preserve-text strong {
  text-transform: none !important;
}

#app .chat-messages p,
#app .chat-messages .chat-message-body {
  font-weight: 400 !important;
}

#app .chat-messages .chat-message-sender,
#app .chat-messages p > strong {
  color: #26bd3d !important;
  font-weight: 1000 !important;
}

#app .chat-messages .admin-message .chat-message-sender,
#app .chat-messages .admin-message > strong {
  color: #ff3038 !important;
}

#app .chat-messages .server-message,
#app .chat-messages .server-message .chat-message-sender,
#app .chat-messages .server-message > strong {
  color: #FFBF00 !important;
}

@media (max-width: 480px) {
  .home-menu-page-settings {
    --settings-mobile-top-gap: 24px;
    align-content: stretch;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 12px;
    padding: var(--settings-mobile-top-gap) 0 max(16px, env(safe-area-inset-bottom));
  }

  .home-menu-page-settings .home-page-title {
    order: 1;
    width: min(350px, calc(100vw - 34px));
    justify-self: center;
    grid-template-columns: minmax(24px, 1fr) auto minmax(24px, 1fr);
    gap: 8px;
    margin: 0;
    font-size: 20px;
  }

  .home-menu-page-settings .home-page-content {
    order: 2;
    width: min(540px, calc((100vw / var(--lobby-scale)) - 22px));
    height: 100%;
    max-height: none;
    justify-self: center;
    margin: 0;
    overflow: hidden;
    padding: 0;
  }

  .home-menu-page-settings .home-settings-grid {
    height: 100%;
    grid-template-columns: 1fr;
    align-content: start;
    gap: 20px;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0 0 8px;
  }

  .home-menu-page-settings .home-settings-panel {
    width: 100%;
    min-height: 0;
    padding: 12px;
    border-width: 2px;
    border-radius: 8px;
    overflow: hidden;
  }

  .home-menu-page-settings .home-back-menu-button {
    position: static;
    order: 3;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 190px;
    height: 58px;
    margin-top: 4px;
    justify-self: center;
  }

  .home-menu-page-settings .home-settings-card-heading {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 12px;
    padding-bottom: 12px;
  }

  .home-menu-page-settings .home-settings-photo-frame {
    width: 76px;
    height: 76px;
  }

  .home-menu-page-settings .home-settings-photo-actions {
    grid-template-columns: repeat(2, minmax(0, 106px));
    gap: 7px;
    margin-top: 0;
  }

  .home-menu-page-settings .home-settings-photo-button {
    min-height: 32px;
    padding: 0 7px;
    font-size: 9px;
  }

  .home-menu-page-settings .home-account-summary div {
    min-height: 50px;
    padding: 8px 10px;
  }

  .home-menu-page-settings .home-account-summary strong {
    font-size: 14px;
  }

  .home-menu-page-settings .home-password-wrap input {
    height: 38px;
    padding: 0 42px 0 12px;
    font-size: 13px;
  }

  .home-menu-page-settings .home-password-submit {
    height: 42px;
    font-size: 14px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-settings-body {
    height: auto;
    grid-template-rows: none;
    gap: 9px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control {
    min-height: 76px;
    padding: 8px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control > span {
    grid-template-columns: 38px minmax(0, 1fr) 54px;
    gap: 8px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control-icon {
    width: 36px;
    height: 36px;
    font-size: 25px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control strong,
  .home-menu-page-settings .home-sound-settings-panel .sound-toggle strong {
    font-size: 13px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control input[type="range"] {
    grid-column: 2 / 4;
    grid-row: 2;
    height: 12px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control output {
    width: 50px;
    height: 28px;
    font-size: 13px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle {
    min-height: 48px;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 9px;
    padding: 7px 9px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle span {
    width: 48px;
    height: 28px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle span::before {
    width: 22px;
    height: 22px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle.is-on span::before {
    transform: translateX(20px);
  }
}

@media (max-width: 480px) {
  .home-menu-page-settings {
    --settings-mobile-top-gap: 24px;
    align-content: stretch;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 12px;
    padding: var(--settings-mobile-top-gap) 0 max(16px, env(safe-area-inset-bottom));
  }

  .home-menu-page-settings .home-page-title {
    order: 1;
    width: min(350px, calc(100vw - 34px));
    justify-self: center;
    grid-template-columns: minmax(24px, 1fr) auto minmax(24px, 1fr);
    gap: 8px;
    margin: 0;
    font-size: 20px;
  }

  .home-menu-page-settings .home-page-content {
    order: 2;
    width: min(540px, calc((100vw / var(--lobby-scale)) - 22px));
    height: 100%;
    max-height: none;
    justify-self: center;
    margin: 0;
    overflow: hidden;
    padding: 0;
  }

  .home-menu-page-settings .home-settings-grid {
    height: 100%;
    display: grid;
    grid-template-columns: 1fr;
    align-content: start;
    gap: 20px;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0 0 8px;
    scrollbar-width: thin;
  }

  .home-menu-page-settings .home-settings-panel {
    width: 100%;
    min-height: 0;
    padding: 12px;
    border-width: 2px;
    border-radius: 8px;
    overflow: hidden;
  }

  .home-menu-page-settings .home-back-menu-button {
    position: static;
    order: 3;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 190px;
    height: 58px;
    margin-top: 4px;
    justify-self: center;
  }

  .home-menu-page-settings .home-settings-card-heading {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 12px;
    padding-bottom: 12px;
  }

  .home-menu-page-settings .home-settings-photo-frame {
    width: 76px;
    height: 76px;
  }

  .home-menu-page-settings .home-settings-photo-frame .avatar.home-settings-avatar {
    font-size: 25px;
  }

  .home-menu-page-settings .home-settings-account-heading {
    gap: 8px;
  }

  .home-menu-page-settings .home-settings-card-heading h2 {
    font-size: 20px;
  }

  .home-menu-page-settings .home-settings-account-heading > span {
    font-size: 10px;
  }

  .home-menu-page-settings .home-settings-photo-actions {
    grid-template-columns: repeat(2, minmax(0, 106px));
    gap: 7px;
    margin-top: 0;
  }

  .home-menu-page-settings .home-settings-photo-button {
    min-height: 32px;
    padding: 0 7px;
    border-radius: 6px;
    font-size: 9px;
  }

  .home-menu-page-settings .home-account-summary {
    gap: 8px;
  }

  .home-menu-page-settings .home-account-summary div {
    min-height: 50px;
    gap: 4px;
    padding: 8px 10px;
    border-radius: 6px;
  }

  .home-menu-page-settings .home-account-summary span,
  .home-menu-page-settings .home-password-field > span:first-child {
    font-size: 10px;
  }

  .home-menu-page-settings .home-account-summary strong {
    font-size: 14px;
    line-height: 1.12;
  }

  .home-menu-page-settings .home-password-form {
    gap: 8px;
  }

  .home-menu-page-settings .home-password-form h3 {
    font-size: 15px;
  }

  .home-menu-page-settings .home-password-field {
    gap: 4px;
  }

  .home-menu-page-settings .home-password-wrap input {
    height: 38px;
    padding: 0 42px 0 12px;
    border-radius: 6px;
    font-size: 13px;
  }

  .home-menu-page-settings .home-password-wrap .auth-eye-button {
    right: 5px;
    width: 34px;
  }

  .home-menu-page-settings .home-password-wrap .auth-eye-icon {
    width: 20px;
    height: 16px;
  }

  .home-menu-page-settings .home-password-submit {
    height: 42px;
    gap: 8px;
    border-radius: 6px;
    font-size: 14px;
  }

  .home-menu-page-settings .home-password-submit .auth-lock-icon {
    width: 18px;
    height: 18px;
  }

  .home-menu-page-settings .home-sound-settings-panel {
    align-content: start;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-settings-body {
    height: auto;
    grid-template-rows: none;
    gap: 9px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control,
  .home-menu-page-settings .home-sound-settings-panel .sound-toggle {
    border-radius: 7px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control {
    min-height: 76px;
    padding: 8px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control > span {
    grid-template-columns: 38px minmax(0, 1fr) 54px;
    gap: 8px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control-icon {
    width: 36px;
    height: 36px;
    font-size: 25px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control strong,
  .home-menu-page-settings .home-sound-settings-panel .sound-toggle strong {
    font-size: 13px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control input[type="range"] {
    grid-column: 2 / 4;
    grid-row: 2;
    height: 12px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control output {
    width: 50px;
    height: 28px;
    font-size: 13px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle {
    min-height: 48px;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 9px;
    padding: 7px 9px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle span {
    width: 48px;
    height: 28px;
    padding: 3px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle span::before {
    width: 22px;
    height: 22px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle.is-on span::before {
    transform: translateX(20px);
  }
}

html,
body,
#app,
#app *,
#app *::before,
#app *::after,
button,
input,
textarea,
select,
option {
  font-family: Helvetica !important;
}

#app,
#app *:not(input):not(textarea),
#app *::before,
#app *::after,
button,
select,
option {
  text-transform: uppercase !important;
}

.team-create-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 18% 50%, rgba(114, 255, 20, 0.12), transparent 28%),
    radial-gradient(ellipse at 64% 24%, rgba(0, 217, 151, 0.1), transparent 36%);
}

.team-create-hero,
.team-create-form {
  position: relative;
  z-index: 1;
}

.team-create-hero {
  height: 100%;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 9px;
  padding: 8px 22px 8px 0;
  text-align: center;
  border-right: 1px solid rgba(0, 217, 151, 0.28);
}

.team-create-badge {
  position: relative;
  display: grid;
  place-items: center;
  width: 166px;
  height: 188px;
  margin-bottom: 4px;
}

.team-create-badge::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 2px;
  width: 160px;
  height: 26px;
  transform: translateX(-50%);
  border: 2px solid rgba(0, 255, 118, 0.44);
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(83, 255, 0, 0.58), rgba(0, 180, 68, 0.2) 48%, transparent 72%);
  box-shadow: 0 0 28px rgba(0, 255, 89, 0.42);
}

.team-create-badge::after {
  content: "";
  position: absolute;
  inset: 22px 5px 24px;
  background:
    radial-gradient(circle at 7% 58%, rgba(116, 255, 23, 0.9) 0 2px, transparent 4px),
    radial-gradient(circle at 94% 60%, rgba(116, 255, 23, 0.8) 0 2px, transparent 4px),
    radial-gradient(circle at 13% 72%, rgba(0, 217, 151, 0.75) 0 2px, transparent 4px);
  filter: blur(0.2px);
}

.team-create-badge .grade-shield {
  position: relative;
  z-index: 1;
  width: 152px;
  height: 178px;
  --grade-icon-width: 108%;
  --grade-icon-height: 108%;
  filter: drop-shadow(0 12px 14px rgba(0, 0, 0, 0.44));
}

.team-create-hero h2 {
  margin: 0;
  color: #9bea10;
  font-size: 22px;
  font-weight: 1000;
  line-height: 1;
  text-shadow: 0 4px 3px rgba(0, 0, 0, 0.62);
}

.team-create-hero p {
  width: min(235px, 100%);
  margin: 0;
  color: #f2fff6;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.36;
  text-transform: none;
  text-shadow: 0 3px 2px rgba(0, 0, 0, 0.62);
}

.team-create-form {
  display: grid;
  gap: 13px;
  align-content: center;
}

.team-create-field {
  min-width: 0;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 6px 11px;
  align-items: center;
}

.team-create-field-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), transparent 42%),
    linear-gradient(180deg, rgba(64, 72, 76, 0.9), rgba(17, 22, 24, 0.95));
  border: 1px solid rgba(255, 255, 255, 0.14);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.14), 0 8px 14px rgba(0, 0, 0, 0.28);
}

.team-create-field-icon img {
  width: 36px;
  height: 36px;
  object-fit: contain;
}

.team-create-field-copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.team-create-field-copy strong {
  color: #fff;
  font-size: 15px;
  font-weight: 1000;
  line-height: 1;
  text-shadow: 0 3px 2px rgba(0, 0, 0, 0.62);
}

.team-create-field-copy em {
  color: #eef8f2;
  font-size: 12px;
  font-style: normal;
  font-weight: 500;
  line-height: 1.22;
  text-transform: none;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.58);
}

.team-create-input-wrap {
  position: relative;
  grid-column: 1 / -1;
  display: block;
  min-width: 0;
}

.team-create-input-wrap input {
  width: 100%;
  height: 46px;
  padding: 0 18px;
  border: 1px solid rgba(116, 191, 23, 0.98);
  border-radius: 8px;
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  text-transform: uppercase;
  background:
    linear-gradient(180deg, rgba(0, 58, 52, 0.58), rgba(0, 14, 18, 0.88)),
    rgba(0, 0, 0, 0.18);
  box-shadow:
    inset 0 0 34px rgba(0, 217, 151, 0.08),
    0 0 0 1px rgba(0, 0, 0, 0.24);
  outline: none;
}

.team-create-input-wrap input::placeholder {
  color: rgba(236, 242, 239, 0.62);
  opacity: 1;
  text-transform: none;
}

.team-create-input-wrap input:focus {
  border-color: #9bea10;
  box-shadow:
    inset 0 0 34px rgba(0, 217, 151, 0.12),
    0 0 0 2px rgba(155, 234, 16, 0.2),
    0 0 22px rgba(116, 191, 23, 0.22);
}

.team-create-input-wrap input[aria-invalid="true"] {
  border-color: #ff4d5f;
  box-shadow:
    inset 0 0 28px rgba(255, 77, 95, 0.14),
    0 0 0 2px rgba(255, 77, 95, 0.2);
}

.team-create-field-error {
  display: block;
  margin-top: 5px;
  color: #ff5d6f;
  font-size: 11px;
  font-weight: 1000;
  line-height: 1.15;
  text-transform: uppercase;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.62);
}

.team-create-input-icon {
  position: absolute;
  top: 50%;
  right: 16px;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  pointer-events: none;
}

.team-create-input-icon img {
  width: 26px;
  height: 26px;
  object-fit: contain;
  filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.42));
}

.team-create-input-icon.is-quote {
  color: #74bf17;
  font-family: inherit;
  font-size: 42px;
  font-weight: 1000;
  line-height: 0.8;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.44);
}

.team-create-info {
  min-height: 52px;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.03), transparent),
    rgba(9, 21, 23, 0.62);
  box-shadow: inset 0 0 22px rgba(255, 255, 255, 0.02);
}

.team-create-info span {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 3px solid #74bf17;
  border-radius: 50%;
  color: #74bf17;
  font-size: 18px;
  font-family: inherit;
  font-style: italic;
  font-weight: 1000;
  line-height: 1;
}

.team-create-info p {
  margin: 0;
  color: #eaf7f1;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.36;
  text-transform: none;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.52);
}

.team-create-submit {
  justify-self: center;
  width: min(480px, 100%);
  height: 46px;
  margin-top: 9px;
  border: 1px solid rgba(156, 255, 0, 0.86);
  border-radius: 8px;
  color: #fff;
  font-size: 17px;
  font-weight: 1000;
  letter-spacing: 0;
  text-transform: uppercase;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.62);
  background: linear-gradient(180deg, #6edd00 0%, #39a800 48%, #1c7600 100%);
  box-shadow:
    inset 0 2px rgba(255, 255, 255, 0.22),
    inset 0 -7px rgba(0, 0, 0, 0.12),
    0 12px 18px rgba(0, 0, 0, 0.32);
  cursor: pointer;
}

.team-create-submit:hover,
.team-create-submit:focus-visible {
  filter: brightness(1.14);
  outline: none;
}

.team-create-note {
  margin: -2px 0 0;
  color: rgba(235, 244, 240, 0.78);
  font-size: 11px;
  font-weight: 500;
  text-align: center;
  text-transform: none;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.48);
}

.team-detail-icon:not([aria-hidden="true"]):hover,
.team-detail-icon:not([aria-hidden="true"]):focus-visible,
.team-green-command:hover,
.team-green-command:focus-visible,
.team-danger-command:hover,
.team-danger-command:focus-visible,
.team-remove-member-button:hover,
.team-remove-member-button:focus-visible {
  filter: brightness(1.14);
}

.home-settings-panel {
  color: #effff9;
}

.home-menu-page-settings {
  grid-template-rows: auto minmax(0, 1fr);
  align-content: center;
  gap: 38px;
  padding: 74px 110px 74px;
}

.home-menu-page-settings .home-page-logo {
  width: min(150px, 42vw);
  max-height: 84px;
}

.home-menu-page-settings .home-page-title {
  margin: -22px 0 0;
  grid-template-columns: minmax(92px, 180px) auto minmax(92px, 180px);
  gap: 18px;
  font-size: 34px;
}

.home-menu-page-settings .home-page-title::before,
.home-menu-page-settings .home-page-title::after {
  height: 2px;
  background:
    linear-gradient(90deg, transparent, rgba(255, 196, 47, 0.9)),
    radial-gradient(circle, #ffd447 0 2px, transparent 3px);
  background-position: center, right center;
  background-repeat: no-repeat;
  background-size: 100% 2px, 20px 8px;
}

.home-menu-page-settings .home-page-content {
  width: min(1580px, calc(100vw - 88px));
  align-self: center;
  display: block;
  margin-top: 0;
}

.home-menu-page-settings .home-settings-panel {
  width: 100%;
  height: auto;
  min-height: 560px;
  overflow: visible;
  padding: 28px 34px 32px;
  border: 2px solid rgba(0, 217, 151, 0.86);
  border-radius: 8px;
  background:
    radial-gradient(ellipse at 50% 100%, rgba(0, 202, 141, 0.18), transparent 38%),
    radial-gradient(ellipse at 12% 14%, rgba(0, 255, 178, 0.1), transparent 28%),
    radial-gradient(ellipse at 88% 12%, rgba(0, 255, 178, 0.1), transparent 28%),
    linear-gradient(180deg, rgba(5, 39, 36, 0.9), rgba(3, 17, 20, 0.96));
  box-shadow:
    inset 0 0 0 1px rgba(0, 255, 178, 0.1),
    inset 0 0 80px rgba(0, 0, 0, 0.38),
    0 22px 55px rgba(0, 0, 0, 0.52);
}

.home-settings-grid {
  display: grid;
  grid-template-columns: minmax(440px, 0.82fr) minmax(620px, 1.18fr);
  gap: 22px;
  align-items: stretch;
}

.home-account-settings-panel {
  display: grid;
  align-content: start;
  gap: 18px;
}

.home-settings-card-heading {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(0, 217, 151, 0.24);
}

.home-settings-account-heading {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.home-settings-account-heading > span {
  color: rgba(236, 255, 251, 0.74);
  font-size: 15px;
  font-weight: 1000;
  line-height: 1;
  text-transform: uppercase;
  text-shadow: 0 2px rgba(0, 0, 0, 0.3);
}

.home-settings-card-heading h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(22px, 1.7vw, 27px);
  font-weight: 1000;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
  text-transform: uppercase;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.58);
}

.home-settings-photo-frame {
  width: 104px;
  height: 104px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: linear-gradient(#16a5c8, #006b9c);
  box-shadow:
    inset 0 2px rgba(255, 255, 255, 0.22),
    0 8px 16px rgba(0, 0, 0, 0.28);
  overflow: hidden;
}

.home-settings-photo-actions {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 150px));
  gap: 10px;
  margin-top: 5px;
}

.home-settings-photo-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.home-settings-photo-button {
  position: relative;
  min-width: 0;
  min-height: 40px;
  display: grid;
  place-items: center;
  padding: 0 12px;
  border: 0;
  border-radius: 6px;
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 1000;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  text-transform: uppercase;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.56);
  background: linear-gradient(#77d615 0%, #54b608 48%, #337e05 100%);
  box-shadow:
    inset 0 2px rgba(255, 255, 255, 0.18),
    0 8px 15px rgba(0, 0, 0, 0.34);
  cursor: pointer;
  overflow: hidden;
}

.home-settings-photo-button.is-danger {
  background: linear-gradient(#ff715d, #b82727);
}

.home-settings-photo-button:hover,
.home-settings-photo-button:focus-visible,
.home-settings-photo-button:focus-within {
  transform: translateY(-1px);
  filter: brightness(1.05);
}

.home-settings-photo-frame .avatar.home-settings-avatar {
  width: 100%;
  height: 100%;
  border-radius: 7px;
  border: 0;
  color: #fff;
  font-size: 36px;
  box-shadow: none;
}

.home-account-summary {
  display: grid;
  gap: 12px;
}

.home-account-summary div {
  min-width: 0;
  min-height: 70px;
  display: grid;
  align-content: center;
  gap: 6px;
  padding: 13px 16px;
  border: 1px solid rgba(203, 225, 220, 0.16);
  border-radius: 7px;
  background: linear-gradient(180deg, rgba(20, 35, 38, 0.96), rgba(5, 21, 24, 0.96));
  box-shadow: inset 0 0 18px rgba(22, 165, 200, 0.08);
}

.home-account-summary span,
.home-password-field > span:first-child {
  color: rgba(236, 255, 251, 0.7);
  font-size: 14px;
  font-weight: 1000;
  line-height: 1;
  text-transform: uppercase;
}

.home-account-summary strong {
  min-width: 0;
  color: #f4fff7;
  font-size: 21px;
  font-weight: 1000;
  line-height: 1.05;
  overflow-wrap: anywhere;
}

.home-password-form {
  display: grid;
  gap: 12px;
}

.home-password-form h3 {
  margin: 0 0 2px;
  color: #ffd447;
  font-size: 24px;
  font-weight: 1000;
  line-height: 1;
  text-transform: uppercase;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.48);
}

.home-password-field {
  display: grid;
  gap: 7px;
}

.home-password-wrap {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
}

.home-password-wrap input {
  width: 100%;
  min-width: 0;
  height: 50px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 6px;
  padding: 0 52px 0 16px;
  color: #fff;
  background: rgba(0, 9, 9, 0.46);
  outline: none;
  font-size: 18px;
  font-weight: 700;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.06),
    0 1px 0 rgba(0, 0, 0, 0.4);
}

.home-password-wrap input:focus {
  border-color: rgba(128, 210, 20, 0.92);
  box-shadow:
    0 0 0 3px rgba(128, 210, 20, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.home-password-wrap .auth-eye-button {
  right: 9px;
  width: 42px;
}

.home-password-wrap .auth-eye-icon {
  width: 24px;
  height: 18px;
}

.home-password-submit {
  width: 100%;
  height: 56px;
  display: grid;
  grid-template-columns: auto auto;
  place-content: center;
  align-items: center;
  gap: 14px;
  border: 0;
  border-radius: 6px;
  color: #fff;
  font-size: 21px;
  font-weight: 1000;
  line-height: 1;
  text-transform: uppercase;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.56);
  background: linear-gradient(#77d615 0%, #54b608 48%, #337e05 100%);
  box-shadow:
    inset 0 2px rgba(255, 255, 255, 0.18),
    0 8px 15px rgba(0, 0, 0, 0.34);
}

.home-password-submit:disabled {
  opacity: 0.72;
  cursor: wait;
}

.home-password-submit .auth-lock-icon {
  width: 24px;
  height: 24px;
}

.home-settings-panel .sound-settings-header {
  min-height: 92px;
  padding: 18px 22px;
}

.home-settings-panel .sound-settings-header strong {
  font-size: 31px;
}

.home-settings-panel .sound-settings-tabs {
  padding: 14px 18px 0;
}

.home-settings-panel .sound-settings-body {
  padding: 18px 22px 22px;
  gap: 14px;
}

.home-menu-page-settings .sound-settings-body {
  display: grid;
  gap: 14px;
  padding: 0;
}

.home-menu-page-settings .sound-control,
.home-menu-page-settings .sound-toggle {
  border: 1px solid rgba(203, 225, 220, 0.18);
  border-radius: 7px;
  background: linear-gradient(180deg, rgba(20, 35, 38, 0.96), rgba(5, 21, 24, 0.96));
  box-shadow: inset 0 0 18px rgba(22, 165, 200, 0.08);
}

.home-menu-page-settings .sound-control {
  display: grid;
  min-height: 126px;
  padding: 28px 28px 24px;
}

.home-menu-page-settings .sound-control > span {
  display: grid;
  grid-template-columns: 72px minmax(220px, 280px) minmax(260px, 1fr) 108px;
  align-items: center;
  gap: 24px;
  color: #f4fff7;
}

.home-menu-page-settings .sound-control-icon {
  flex: 0 0 auto;
  width: 72px;
  height: 72px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  font-size: 48px;
  line-height: 1;
  overflow: hidden;
}

.home-menu-page-settings .sound-control-icon::before {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  line-height: 1;
  transform: translateY(-1px);
}

.home-menu-page-settings .effects-icon::before {
  transform: translate(-2px, -1px);
}

.home-menu-page-settings .sound-control strong,
.home-menu-page-settings .sound-toggle strong {
  color: #f4fff7;
  font-size: 27px;
  font-weight: 1000;
  letter-spacing: 0;
  text-transform: uppercase;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.58);
}

.home-menu-page-settings .sound-control output {
  justify-self: end;
  width: 108px;
  height: 54px;
  border-radius: 5px;
  color: #ffd447;
  font-size: 26px;
  background: rgba(0, 0, 0, 0.28);
  box-shadow: inset 0 0 0 1px rgba(255, 212, 71, 0.2);
}

.home-menu-page-settings .sound-control input[type="range"] {
  grid-column: auto;
  grid-row: auto;
  width: 100%;
  height: 18px;
  background: linear-gradient(90deg, #6fd20d 0%, #f5d342 100%);
  box-shadow: 0 0 10px rgba(245, 211, 66, 0.18), inset 0 2px 5px rgba(0, 0, 0, 0.44);
}

.home-menu-page-settings .sound-control input[type="range"]::-webkit-slider-thumb {
  width: 36px;
  height: 36px;
}

.home-menu-page-settings .sound-control input[type="range"]::-moz-range-thumb {
  width: 30px;
  height: 30px;
}

.home-menu-page-settings .sound-toggle {
  grid-template-columns: 96px 1fr;
  grid-template-areas: "switch label";
  gap: 24px;
  min-height: 96px;
  padding: 0 28px;
}

.home-menu-page-settings .sound-toggle span {
  width: 96px;
  height: 52px;
  padding: 5px;
}

.home-menu-page-settings .sound-toggle span::before {
  width: 42px;
  height: 42px;
}

.home-menu-page-settings .sound-toggle.is-on span::before {
  transform: translateX(44px);
}

.home-menu-page-settings .home-sound-settings-panel .sound-control {
  min-height: 0;
  padding: 18px 22px;
}

.home-menu-page-settings .home-sound-settings-panel .sound-control > span {
  height: 100%;
  grid-template-columns: 68px minmax(165px, 220px) minmax(190px, 1fr) 92px;
  align-items: center;
  gap: 18px;
}

.home-menu-page-settings .home-sound-settings-panel .sound-control-icon {
  width: 68px;
  height: 68px;
  font-size: 42px;
}

.home-menu-page-settings .home-sound-settings-panel .sound-control strong,
.home-menu-page-settings .home-sound-settings-panel .sound-toggle strong {
  font-size: 24px;
}

.home-menu-page-settings .home-sound-settings-panel .sound-control output {
  width: 92px;
  height: 48px;
  font-size: 23px;
}

.home-menu-page-settings .home-sound-settings-panel .sound-toggle {
  min-height: 0;
  grid-template-columns: 92px 1fr;
  gap: 20px;
  padding: 0 22px;
}

.home-menu-page-settings .home-sound-settings-panel .sound-toggle span {
  width: 92px;
  height: 50px;
  padding: 5px;
}

.home-menu-page-settings .home-sound-settings-panel .sound-toggle span::before {
  width: 40px;
  height: 40px;
}

.home-menu-page-settings .home-sound-settings-panel .sound-toggle.is-on span::before {
  transform: translateX(42px);
}

.home-menu-page-settings .home-sound-settings-panel {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  align-content: stretch;
}

.home-menu-page-settings .home-sound-settings-panel .sound-settings-body {
  height: 100%;
  grid-template-rows: repeat(4, minmax(0, 1fr));
  align-content: stretch;
}

.home-menu-page-settings .home-sound-settings-panel .sound-control,
.home-menu-page-settings .home-sound-settings-panel .sound-toggle {
  align-items: center;
}

.home-menu-page-settings .home-back-menu-button {
  top: 56px;
  left: calc((100vw - min(1580px, calc(100vw - 88px))) / 2 + 354px) !important;
  bottom: auto;
  width: 150px;
  height: 45px;
}

.home-back-menu-button {
  position: absolute;
  left: calc(max(110px, calc((100vw - 1500px) / 2)) + 288px);
  top: 67px;
  bottom: auto;
  z-index: 4;
  width: 190px;
  height: 58px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  box-sizing: border-box;
  padding: 0;
  border: 0;
  border-radius: 7px;
  color: #fff;
  font-size: 17px;
  font-weight: 1000;
  text-transform: uppercase;
  white-space: nowrap;
  transform: none;
  background: url("/assets/interface/bnt-voltar.fw.webp") center / 100% 100% no-repeat;
  border: 0;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.42);
  box-shadow: none;
}

.home-back-menu-button > span:last-child {
  display: block;
  line-height: 1;
  opacity: 0;
}

.home-back-menu-icon {
  display: none;
}

.home-back-menu-button:hover,
.home-back-menu-button:focus-visible {
  filter: brightness(1.16);
}

.home-shard {
  --x0: 0px;
  --y0: 0px;
  --x1: 0px;
  --y1: 0px;
  --rot: 180deg;
  --scale: 1;
  position: absolute;
  left: 50%;
  top: 34%;
  z-index: 2;
  width: 26px;
  height: 12px;
  border-radius: 1px 6px 2px 5px;
  background: linear-gradient(135deg, rgba(255, 245, 197, 0.98), rgba(255, 180, 35, 0.92) 42%, rgba(126, 81, 30, 0.86));
  clip-path: polygon(0 42%, 64% 0, 100% 32%, 72% 100%, 12% 86%);
  opacity: 0;
  filter: drop-shadow(0 0 8px rgba(255, 200, 63, 0.82));
  transform: translate(var(--x0), var(--y0)) rotate(0deg) scale(0.55);
  animation: shard-burst 2.7s cubic-bezier(0.2, 0.72, 0.24, 1) infinite;
}

.shard-1 {
  --x0: -18px;
  --y0: -12px;
  --x1: -205px;
  --y1: -145px;
  --rot: -520deg;
  animation-delay: 0s;
}

.shard-2 {
  --x0: 14px;
  --y0: -16px;
  --x1: 218px;
  --y1: -154px;
  --rot: 460deg;
  --scale: 0.86;
  animation-delay: 0.08s;
}

.shard-3 {
  --x0: -8px;
  --y0: 4px;
  --x1: -258px;
  --y1: 28px;
  --rot: -380deg;
  --scale: 0.72;
  width: 22px;
  animation-delay: 0.18s;
}

.shard-4 {
  --x0: 20px;
  --y0: 6px;
  --x1: 275px;
  --y1: 42px;
  --rot: 420deg;
  width: 24px;
  animation-delay: 0.26s;
}

.shard-5 {
  --x0: -24px;
  --y0: 8px;
  --x1: -170px;
  --y1: 150px;
  --rot: 310deg;
  --scale: 0.8;
  animation-delay: 0.36s;
}

.shard-6 {
  --x0: 12px;
  --y0: 10px;
  --x1: 176px;
  --y1: 138px;
  --rot: -330deg;
  --scale: 0.76;
  animation-delay: 0.46s;
}

.shard-7 {
  --x0: -4px;
  --y0: -24px;
  --x1: -58px;
  --y1: -190px;
  --rot: 540deg;
  width: 18px;
  height: 9px;
  animation-delay: 0.56s;
}

.shard-8 {
  --x0: 6px;
  --y0: -20px;
  --x1: 72px;
  --y1: -205px;
  --rot: -500deg;
  width: 19px;
  height: 9px;
  animation-delay: 0.66s;
}

.shard-9 {
  --x0: -16px;
  --y0: -2px;
  --x1: -238px;
  --y1: -62px;
  --rot: 390deg;
  --scale: 0.66;
  width: 20px;
  animation-delay: 0.76s;
}

.shard-10 {
  --x0: 18px;
  --y0: -2px;
  --x1: 246px;
  --y1: -68px;
  --rot: -410deg;
  --scale: 0.66;
  width: 20px;
  animation-delay: 0.86s;
}

.shard-11 {
  --x0: -30px;
  --y0: -28px;
  --x1: -310px;
  --y1: -118px;
  --rot: -620deg;
  --scale: 0.82;
  width: 24px;
  animation-delay: 0.12s;
}

.shard-12 {
  --x0: 30px;
  --y0: -30px;
  --x1: 318px;
  --y1: -126px;
  --rot: 650deg;
  --scale: 0.84;
  width: 24px;
  animation-delay: 0.22s;
}

.shard-13 {
  --x0: -34px;
  --y0: 18px;
  --x1: -295px;
  --y1: 104px;
  --rot: 500deg;
  --scale: 0.78;
  animation-delay: 0.32s;
}

.shard-14 {
  --x0: 36px;
  --y0: 18px;
  --x1: 302px;
  --y1: 108px;
  --rot: -520deg;
  --scale: 0.78;
  animation-delay: 0.42s;
}

.shard-15 {
  --x0: -10px;
  --y0: -36px;
  --x1: -132px;
  --y1: -238px;
  --rot: 720deg;
  --scale: 0.72;
  width: 20px;
  height: 10px;
  animation-delay: 0.52s;
}

.shard-16 {
  --x0: 12px;
  --y0: -38px;
  --x1: 138px;
  --y1: -244px;
  --rot: -760deg;
  --scale: 0.72;
  width: 20px;
  height: 10px;
  animation-delay: 0.62s;
}

.shard-17 {
  --x0: -42px;
  --y0: -4px;
  --x1: -358px;
  --y1: -22px;
  --rot: -430deg;
  --scale: 0.68;
  width: 22px;
  height: 10px;
  animation-delay: 0.72s;
}

.shard-18 {
  --x0: 44px;
  --y0: -4px;
  --x1: 364px;
  --y1: -18px;
  --rot: 450deg;
  --scale: 0.68;
  width: 22px;
  height: 10px;
  animation-delay: 0.82s;
}

.shard-19 {
  --x0: -12px;
  --y0: 28px;
  --x1: -86px;
  --y1: 214px;
  --rot: -560deg;
  --scale: 0.72;
  width: 20px;
  height: 10px;
  animation-delay: 0.92s;
}

.shard-20 {
  --x0: 14px;
  --y0: 30px;
  --x1: 92px;
  --y1: 218px;
  --rot: 590deg;
  --scale: 0.72;
  width: 20px;
  height: 10px;
  animation-delay: 1.02s;
}

@keyframes shard-burst {
  0% {
    opacity: 0;
    transform: translate(var(--x0), var(--y0)) rotate(0deg) scale(0.42);
  }

  12% {
    opacity: 1;
  }

  68% {
    opacity: 0.92;
    transform: translate(var(--x1), var(--y1)) rotate(var(--rot)) scale(var(--scale));
  }

  100% {
    opacity: 0;
    transform: translate(calc(var(--x1) * 1.16), calc(var(--y1) * 1.16)) rotate(var(--rot)) scale(0.18);
  }
}

.home-menu-actions {
  position: relative;
  z-index: 4;
  width: min(660px, 100%);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
  margin-top: 0;
}

.home-menu-button {
  position: relative;
  isolation: isolate;
  min-width: 0;
  width: 100%;
  height: auto;
  align-self: center;
  display: block;
  border: 0;
  border-radius: 0;
  color: transparent;
  font-size: 0;
  letter-spacing: 0;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  box-shadow: none;
  overflow: visible;
  transition:
    filter 160ms ease,
    transform 160ms ease;
}

.home-menu-button::before {
  display: none;
}

.home-menu-button::after {
  display: none;
}

.home-menu-button > span {
  opacity: 0;
  pointer-events: none;
}

.home-button-icon {
  display: none;
}

.home-button-icon img {
  display: none;
}

.home-menu-button:hover,
.home-menu-button:focus-visible {
  filter: brightness(1.16);
  transform: translateY(-1px) scale(1.015);
}

.home-menu-button.active {
  outline: 2px solid rgba(255, 255, 255, 0.75);
  outline-offset: 2px;
  filter: brightness(1.1);
}

.home-play-button {
  grid-column: 1 / -1;
  aspect-ratio: 1154 / 217;
  background-image: url("/assets/interface/bnt-home-jogar.webp");
}

.home-ranking-button {
  aspect-ratio: 575 / 196;
  background-image: url("/assets/interface/bnt-home-ranking.webp");
}

.home-team-button {
  aspect-ratio: 567 / 193;
  background-image: url("/assets/interface/bnt-home-equipe.webp");
}

.home-team-menu-icon {
  display: none;
}

.home-settings-button {
  grid-column: 1 / -1;
  aspect-ratio: 1153 / 174;
  background-image: url("/assets/interface/bnt-home-configuracoes.webp");
}

.home-logout-button {
  grid-column: 1 / -1;
  aspect-ratio: 1155 / 161;
  background-image: url("/assets/interface/bnt-home-sair.webp");
}

@media (max-height: 780px) and (min-width: 901px) {
  .home-main-menu {
    transform: none;
  }

  .home-logo {
    width: min(285px, 46%);
    max-height: 154px;
    margin-bottom: -34px;
  }

  .home-content-row {
    min-height: 368px;
  }

  .home-mascot-frame {
    width: min(620px, 100%);
  }

  .home-menu-actions {
    width: min(620px, 100%);
    gap: 7px 10px;
    margin-top: 0;
  }

}

.panel {
  overflow: hidden;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: linear-gradient(135deg, rgba(26, 36, 39, 0.96), rgba(7, 17, 20, 0.96));
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.26), var(--shadow);
}

.panel-title,
.rooms-title {
  min-height: 42px;
  display: flex;
  align-items: center;
  padding: 0 16px;
  font-size: 20px;
  font-weight: 1000;
  text-shadow: 0 2px 1px rgba(0, 0, 0, 0.55);
}

.panel-title {
  background: linear-gradient(#6ec10c, #307608);
}

.dark-title {
  justify-content: center;
  background: linear-gradient(#293335, #111719);
  letter-spacing: 0;
}

.red-title {
  justify-content: flex-start;
  background: linear-gradient(#e23840, #b80e17);
}

.blue-title {
  justify-content: center;
  background: linear-gradient(#00a9df, #006e9d);
}

.rooms-title {
  justify-content: flex-start;
  background: linear-gradient(#ffc22f, #f39800);
}

@media (min-width: 768px) {
  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-grid :is(.lobby-player-info-panel, .ranking-panel, .chat-panel, .rooms-panel, .online-panel, .online-strip) {
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 7px;
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.1), 0 0 0 1px rgba(0, 0, 0, 0.26), var(--shadow);
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-grid :is(.panel-title, .rooms-title) {
    color: #fff;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.52);
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 42%),
      linear-gradient(90deg, #80bf00, #277c00);
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-grid .online-strip {
    color: #fff;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.52);
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.2), transparent 42%),
      linear-gradient(90deg, #3f474d, #171c20);
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-grid .online-strip span {
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.18), transparent 45%),
      linear-gradient(180deg, #333a3f, #101417);
  }

  .game-viewport .game-layout :is(.panel-title, .metric-card header) {
    color: #fff;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.52);
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 42%),
      linear-gradient(90deg, #80bf00, #277c00);
  }
}

@media (min-width: 768px) and (max-width: 900px), (min-width: 768px) and (max-aspect-ratio: 1/1) {
  .game-viewport .game-mobile-info-stack > .info-panel > .panel-title,
  .game-viewport .game-mobile-players-page .panel-title,
  .game-viewport .game-mobile-chat-page .panel-title,
  .game-viewport .game-mobile-info-stack > .game-mobile-room-info::before {
    min-height: 42px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 16px !important;
    color: #fff !important;
    font-size: 20px !important;
    font-weight: 1000 !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.52) !important;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 42%),
      linear-gradient(90deg, #80bf00, #277c00) !important;
  }

  .game-viewport .game-mobile-info-stack > .game-mobile-room-info {
    overflow: hidden !important;
    padding: 0 10px 10px !important;
  }

  .game-viewport .game-mobile-info-stack > .game-mobile-room-info::before {
    content: "INFORMAÇÕES DA SALA" !important;
    margin: 0 -10px 2px !important;
  }

  .game-viewport .game-mobile-menu-letter,
  .game-viewport .game-mobile-round-label,
  .game-viewport .game-mobile-time-value {
    border-radius: 6px !important;
    color: #fff !important;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.72) !important;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 42%),
      linear-gradient(90deg, #80bf00, #277c00) !important;
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.18), 0 2px 5px rgba(0, 0, 0, 0.28) !important;
  }
}

.panel-body {
  padding: 10px 14px 12px;
}

.info-panel .panel-body {
  position: relative;
  min-height: 148px;
  display: grid;
  grid-template-rows: auto auto auto;
  align-content: stretch;
  gap: 8px;
  padding: 10px 12px 12px;
}

.player-info {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr) 52px;
  gap: 10px;
  align-items: center;
  min-height: 78px;
}

.player-badge {
  display: grid;
  justify-items: center;
}

.avatar {
  width: 48px;
  height: 48px;
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 4px;
  border: 0;
  background:
    linear-gradient(145deg, hsla(var(--hue), 70%, 62%, 0.88), hsla(calc(var(--hue) + 42), 74%, 24%, 0.92)),
    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.14) 0 4px, rgba(0, 0, 0, 0.12) 4px 8px);
  box-shadow: inset 0 0 18px rgba(255, 255, 255, 0.2), 0 4px 10px rgba(0, 0, 0, 0.38);
  color: #fff;
  font-weight: 1000;
  text-shadow: 0 2px 2px #000;
  overflow: hidden;
}

.avatar img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.avatar span {
  position: relative;
  z-index: 1;
  display: none;
}

.avatar.large {
  width: 76px;
  height: 76px;
  border-radius: 8px;
  font-size: 26px;
}

.avatar.small {
  width: 42px;
  height: 42px;
}

.avatar.tiny {
  width: 34px;
  height: 34px;
  font-size: 13px;
}

.player-copy h2 {
  margin: 0 0 4px;
  overflow: hidden;
  font-size: 18px;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.player-copy p {
  margin: 4px 0;
  font-size: 15px;
  color: #f5f5f5;
}

.player-copy p span {
  color: #fff;
  font-weight: 400;
}

.player-copy p strong {
  color: #91e316;
  font-weight: 900;
}

.player-info-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.player-info-stats div {
  min-width: 0;
  display: grid;
  grid-template-rows: 24px auto auto;
  gap: 5px;
  justify-items: center;
  align-items: center;
  padding: 7px 4px 8px;
  border-radius: 5px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(0, 0, 0, 0.28);
}

.player-info-stats img {
  width: 24px;
  height: 24px;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.34));
}

.player-info-stats span {
  max-width: 100%;
  overflow: hidden;
  color: #fff;
  font-size: 10px;
  font-weight: 500;
  line-height: 1;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.player-info-stats strong {
  color: #91e316;
  font-size: 15px;
  font-weight: 1000;
  line-height: 1;
}

.player-copy .player-grade-name {
  color: #f5f5f5;
  font-size: 15px;
  font-weight: 400;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  text-shadow: none;
}

.grade-shield {
  position: relative;
  flex: 0 0 auto;
  width: 36px;
  height: 44px;
  display: grid;
  place-items: center;
  overflow: visible;
  line-height: 0;
  filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.55));
  --grade-icon-width: 100%;
  --grade-icon-height: 100%;
}

.grade-shield img {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--grade-icon-width);
  height: var(--grade-icon-height);
  display: block;
  object-fit: contain;
  transform: translate(-50%, -50%);
}

.grade-shield.is-hors-concours {
  --grade-icon-width: 146%;
  --grade-icon-height: 146%;
}

.grade-shield.is-mitico {
  --grade-icon-width: 104%;
  --grade-icon-height: 104%;
}

.player-info .grade-shield {
  width: 58px;
  height: 72px;
  justify-self: center;
  align-self: center;
  margin-top: 0;
}

.lobby-player-info-panel .panel-body {
  min-height: 238px;
  align-content: start;
  gap: 9px;
  padding: 14px 14px;
}

.lobby-player-info-panel .player-info {
  grid-template-columns: 94px minmax(0, 1fr) 64px;
  gap: 12px;
  align-items: start;
}

.lobby-player-info-panel .avatar.large {
  width: 92px;
  height: 92px;
  border-radius: 10px;
  font-size: 31px;
}

.lobby-player-info-panel .player-info .grade-shield {
  width: 58px;
  height: 72px;
}

.lobby-player-info-panel .player-copy h2 {
  font-size: 16px;
}

.lobby-player-info-panel .player-copy p {
  margin: 10px 0;
  font-size: 13px;
}

.lobby-player-info-panel .player-copy p strong {
  font-weight: 1000;
}

.grade-progress {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(146px, 1fr);
  gap: 8px;
  align-items: center;
  margin: 0;
}

.progress-track {
  position: relative;
  display: grid;
  place-items: center;
  height: 28px;
  overflow: hidden;
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(0, 0, 0, 0.35);
}

.progress-track span {
  position: absolute;
  inset: 5px auto 5px 5px;
  display: block;
  border-radius: 3px;
  background: linear-gradient(#5fb900, #1f7200);
}

.progress-track strong {
  position: relative;
  z-index: 1;
  height: 28px;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  text-align: center;
  text-shadow: 0 1px #000;
}

.next-grade-box {
  height: 28px;
  display: grid;
  place-items: center;
  padding: 0 6px;
  border-radius: 4px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(0, 0, 0, 0.35);
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.05;
  text-align: center;
  overflow-wrap: anywhere;
  text-shadow: 0 1px #000;
}

.compact-player-info-stats {
  gap: 7px;
  align-self: stretch;
}

.compact-player-info-stats div {
  grid-template-rows: auto auto;
  gap: 6px;
  min-height: 48px;
  padding: 8px 3px;
  overflow: hidden;
}

.compact-player-info-stats img {
  width: 18px;
  height: 18px;
}

.compact-player-info-stats span {
  max-width: 100%;
  font-size: 10.5px;
  text-align: center;
}

.compact-player-info-stats strong {
  max-width: 100%;
  overflow: hidden;
  font-size: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lobby-player-info-panel .grade-progress {
  grid-template-columns: minmax(0, 1fr) minmax(146px, 1fr);
  margin: 0;
}

.lobby-player-info-panel .progress-track,
.lobby-player-info-panel .progress-track strong,
.lobby-player-info-panel .next-grade-box {
  height: 34px;
}

.lobby-player-info-panel .progress-track strong {
  font-size: 13px;
}

.lobby-player-info-panel .next-grade-box {
  padding: 0 8px;
  font-size: 13px;
}

.ranking-panel {
  padding-bottom: 0;
  min-width: 0;
}

.ranking-panel .panel-title {
  min-height: 44px;
  font-size: 22px;
}

.ranking-list {
  display: grid;
  grid-template-rows: repeat(5, minmax(0, 1fr));
  gap: 7px;
  padding: 10px;
  align-content: stretch;
}

.ranking-row {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 40px minmax(68px, max-content);
  gap: 7px;
  align-items: center;
  padding: 4px 7px;
  border-bottom: 0;
  font-size: 15px;
}

.ranking-row:nth-child(odd) {
  background: rgba(255, 255, 255, 0.065);
}

.ranking-row:nth-child(even) {
  background: rgba(0, 0, 0, 0.16);
}

.ranking-row .grade-shield {
  width: 34px;
  height: 42px;
  justify-self: center;
  transform: translateX(8px);
}

.ranking-row strong,
.online-row strong {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.ranking-row > strong {
  font-size: 13px;
}

.ranking-row span:last-child {
  min-width: 0;
  justify-self: end;
  font-weight: 900;
  white-space: nowrap;
  font-size: 16px;
}

.ranking-position-icon {
  position: relative;
  width: 38px;
  height: 42px;
  display: grid;
  place-items: center;
  justify-self: center;
}

.ranking-position-icon img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ranking-position-icon span {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  padding-top: 5px;
  color: #fff;
  font-size: 13px;
  font-weight: 1000;
  line-height: 1;
  text-align: center;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.78);
}

.ranking-position-icon:has(img[src$="icon-top-5-jogador-1.webp"]) span,
.ranking-position-icon:has(img[src$="icon-top-5-jogador-2.webp"]) span,
.ranking-position-icon:has(img[src$="icon-top-5-jogador-3.webp"]) span {
  padding-top: 5px;
  font-size: 19px;
}

.ranking-current {
  display: contents;
}

.own-ranking-row {
  border: 1px solid rgba(255, 210, 90, 0.28);
  border-radius: 5px;
  background: linear-gradient(90deg, rgba(255, 183, 17, 0.15), rgba(255, 255, 255, 0.04));
}

.medal {
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-weight: 1000;
  background: linear-gradient(#f5f5f5, #a9b2b8);
  color: #303842;
  border: 2px solid rgba(255, 255, 255, 0.7);
}

.medal-1 {
  background: linear-gradient(#ffdf5d, #ff9d08);
}

.medal-2 {
  background: linear-gradient(#eef2f3, #9ba6ad);
}

.medal-3 {
  background: linear-gradient(#ffb15e, #df651f);
}

.chat-panel {
  min-height: 236px;
  height: 100%;
}

.chat-messages {
  height: 138px;
  overflow: auto;
  padding: 10px 14px 4px;
  font-size: 12.5px;
  line-height: 1.26;
  overflow-x: hidden;
}

.chat-messages p {
  margin: 0 0 6px;
  font-weight: 400 !important;
  text-transform: none !important;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.lobby-grid .chat-panel {
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.lobby-grid .chat-messages {
  min-height: 0;
  height: auto;
  overflow-y: scroll;
}

.chat-messages .chat-message-sender,
.chat-messages p > strong {
  color: #26bd3d;
  font-weight: 1000 !important;
  text-transform: none !important;
}

.chat-messages .admin-message .chat-message-sender,
.chat-messages .admin-message > strong {
  color: #ff3038;
}

.chat-messages .server-message,
.chat-messages .server-message .chat-message-sender,
.chat-messages .server-message > strong {
  color: #FFBF00;
}

.chat-messages .chat-message-body {
  font-weight: 400 !important;
  text-transform: none !important;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.chat-messages,
.chat-messages *,
.chat-form .chat-input,
.chat-form .chat-input::placeholder {
  text-transform: none !important;
}

.chat-messages .admin-message {
  color: #ff3038;
}

.chat-messages .server-message {
  color: #FFBF00;
}

.chat-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 148px;
  gap: 8px;
  padding: 8px 12px 12px;
}

.chat-form input,
.answer-card input {
  min-width: 0;
  border-radius: 5px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: #fff;
  background: linear-gradient(#2f383b, #172023);
  box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.35);
  outline: none;
}

.chat-form input {
  height: 38px;
  padding: 0 12px;
  font-size: 12px;
}

.chat-form button,
.room-row button,
.change-room {
  border: 0;
  border-radius: 9px;
  color: #fff;
  font-weight: 1000;
  text-shadow: none;
}

.play-style-button {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 2px;
  align-items: center;
  justify-items: center;
  background: linear-gradient(180deg, #26bd3d, #0c8421 58%, #055414);
  box-shadow:
    inset 0 0 0 2px rgba(255, 255, 255, 0.16),
    inset 0 -5px 0 rgba(0, 0, 0, 0.2),
    0 5px 0 rgba(0, 0, 0, 0.28);
  overflow: hidden;
  transition: transform 120ms ease, filter 120ms ease, box-shadow 120ms ease;
}

.play-style-icon {
  color: #fff;
  font-size: 17px;
  line-height: 1;
  text-shadow:
    0 2px 2px rgba(0, 0, 0, 0.68),
    0 0 6px rgba(255, 255, 255, 0.34);
}

.play-style-button > span:last-child {
  justify-self: center;
  min-width: 0;
  white-space: nowrap;
}

.text-only-button {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}

.text-only-button > span:last-child {
  grid-column: 1;
  justify-self: center;
}

.room-row .text-only-button {
  place-items: center;
  line-height: 1;
}

.room-row .text-only-button > span:last-child {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.chat-form .text-only-button {
  place-items: center;
  line-height: 1;
}

.chat-form .text-only-button > span:last-child {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.play-style-button::before {
  content: none;
}

.game-layout .play-style-button:not(:disabled):hover,
.game-layout .play-style-button:not(:disabled):focus-visible {
  filter: brightness(1.16);
  outline: none;
}

.chat-form .play-style-button:not(:disabled):hover,
.chat-form .play-style-button:not(:disabled):focus-visible {
  filter: brightness(1.16);
  outline: none;
}

.admin-commands {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  padding: 0 12px 12px;
  font-size: 12px;
  color: #5c3d3d;
}

.admin-commands strong {
  color: #7a2020;
}

.admin-commands span {
  border: 1px solid rgba(122, 32, 32, 0.2);
  border-radius: 6px;
  padding: 3px 6px;
  background: rgba(255, 255, 255, 0.45);
}

.rooms-panel {
  min-height: 0;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  border-color: rgba(255, 188, 25, 0.5);
}

.rooms-legend,
.room-row {
  display: grid;
  grid-template-columns: minmax(190px, 1fr) 58px 82px 132px 60px 98px;
  align-items: center;
  column-gap: 18px;
}

.rooms-legend {
  position: sticky;
  top: 0;
  z-index: 2;
  min-height: 58px;
  margin: 10px 12px 0;
  padding: 0 12px;
  border-radius: 6px;
  border: 1px solid rgba(255, 188, 25, 0.32);
  background: linear-gradient(180deg, rgba(45, 65, 78, 0.98), rgba(28, 41, 52, 0.98));
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.18);
  color: #ffe3a1;
  font-size: 12px;
  font-weight: 1000;
  text-transform: uppercase;
}

.rooms-legend span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

.rooms-legend span:first-child {
  justify-content: flex-start;
  padding-left: 40px;
}

.rooms-legend span:last-child {
  justify-content: flex-start;
}

.rooms-list {
  padding: 7px 12px 8px;
  display: grid;
  align-content: start;
  gap: 12px;
  max-height: none;
  overflow: auto;
}

.room-row {
  min-height: 50px;
  padding: 0 7px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.02));
  font-size: 14px;
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.room-row:hover,
.room-row:focus-within {
  border-color: rgba(255, 211, 82, 0.52);
  background: linear-gradient(90deg, rgba(255, 191, 36, 0.18), rgba(255, 255, 255, 0.075));
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.16), 0 0 12px rgba(255, 185, 34, 0.2);
}

.room-row[data-room-status="starting"] {
  border-color: rgba(255, 188, 25, 0.42);
}

.room-row[data-room-status="playing"] {
  border-color: rgba(43, 210, 145, 0.42);
}

.room-row[data-room-status="result"],
.room-row[data-room-status="finished"] {
  border-color: rgba(86, 194, 255, 0.38);
}

.room-row button {
  width: 96px;
  height: 32px;
  justify-self: end;
  padding: 0;
  font-size: 12px;
  transition: transform 120ms ease, filter 120ms ease, box-shadow 120ms ease;
}

.room-row .play-style-button:hover,
.room-row .play-style-button:focus-visible {
  filter: brightness(1.16);
  outline: none;
}

.room-row .room-full-button,
.room-row .room-full-button:disabled {
  border: 0;
  border-radius: 9px;
  color: #fff;
  text-shadow: none;
  background: linear-gradient(180deg, #ff2028, #c60004 58%, #8b0000);
  box-shadow:
    inset 0 0 0 2px rgba(255, 255, 255, 0.16),
    inset 0 -5px 0 rgba(0, 0, 0, 0.2),
    0 5px 0 rgba(0, 0, 0, 0.28);
  filter: none;
  opacity: 1;
  overflow: hidden;
  transition: transform 120ms ease, filter 120ms ease, box-shadow 120ms ease;
}

.room-row .room-full-button:hover,
.room-row .room-full-button:focus-visible {
  filter: brightness(1.16);
  outline: none;
}

.room-row button:disabled {
  cursor: not-allowed;
  filter: grayscale(0.65);
  opacity: 0.7;
}

.room-row .room-full-button:disabled {
  filter: none;
  opacity: 1;
}

.room-stat {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  color: #f3f6f5;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  line-height: 1;
  white-space: nowrap;
  font-size: 13px;
}

.room-name-stat {
  gap: 7px;
  justify-content: flex-start;
  font-size: 15px;
  overflow: hidden;
  text-overflow: ellipsis;
}

.room-stat-icon {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  display: block;
  object-fit: contain;
}

.room-level-icon {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  display: block;
  object-fit: contain;
}

.room-stat i {
  flex: 0 0 20px;
}

.room-row .room-stat:first-child {
  justify-content: flex-start;
}

.room-status {
  color: #ffe3a1;
  font-weight: 400;
  justify-content: flex-start;
}

.level-icon,
.clock-icon,
.check-icon,
.people-icon,
.clock-muted,
.timer-muted,
.check-muted,
.user-muted {
  display: inline-block;
  width: 20px;
  height: 20px;
  position: relative;
}

.level-icon {
  border-radius: 4px;
  background: linear-gradient(#5ce0ff, #1684c5);
  box-shadow: inset 0 -3px rgba(0, 0, 0, 0.12);
}

.level-icon::before,
.level-icon::after {
  content: "";
  position: absolute;
  left: 5px;
  width: 10px;
  height: 3px;
  border-radius: 3px;
  background: #fff;
}

.level-icon::before {
  top: 5px;
}

.level-icon::after {
  top: 12px;
}

.clock-icon,
.clock-muted {
  border: 3px solid #ffb300;
  border-radius: 50%;
}

.clock-icon::before,
.clock-muted::before {
  content: "";
  position: absolute;
  width: 3px;
  height: 7px;
  left: 7px;
  top: 3px;
  background: currentColor;
}

.clock-icon::after,
.clock-muted::after {
  content: "";
  position: absolute;
  width: 7px;
  height: 3px;
  left: 7px;
  top: 9px;
  background: currentColor;
}

.check-icon,
.check-muted {
  border-radius: 4px;
  background: linear-gradient(#ffc640, #f39c00);
}

.check-icon::after,
.check-muted::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 3px;
  width: 7px;
  height: 12px;
  border: solid #fff;
  border-width: 0 4px 4px 0;
  transform: rotate(45deg);
}

.people-icon,
.user-muted {
  border-radius: 50% 50% 45% 45%;
  background: linear-gradient(#ffc640, #f39c00);
}

.people-icon::after,
.user-muted::after {
  content: "";
  position: absolute;
  width: 26px;
  height: 10px;
  left: -3px;
  bottom: -6px;
  border-radius: 14px 14px 2px 2px;
  background: inherit;
}

.online-strip {
  min-height: 42px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 140px;
  column-gap: 22px;
  align-items: center;
  padding: 0 8px 0 16px;
  border-radius: 0;
  background: linear-gradient(#ffc22f, #f39800);
  box-shadow: var(--shadow);
  font-size: 18px;
  font-weight: 1000;
  text-align: right;
}

.online-strip strong {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  text-shadow: 0 2px 1px rgba(0, 0, 0, 0.55);
}

.online-strip-icon {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: block;
  object-fit: contain;
}

.online-strip span {
  justify-self: end;
  width: 136px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  color: #fff;
  background: linear-gradient(#f0a000, #d57a00);
  text-shadow: 0 2px 1px rgba(0, 0, 0, 0.45);
}

.promo-banner {
  position: relative;
  overflow: hidden;
  min-height: 224px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background:
    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.025) 0 8px, rgba(0, 0, 0, 0.08) 8px 16px),
    linear-gradient(135deg, #222, #080b0c);
  box-shadow: var(--shadow);
}

.promo-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(30deg, transparent 46%, rgba(255, 255, 255, 0.045) 47% 53%, transparent 54%),
    linear-gradient(120deg, transparent 46%, rgba(255, 255, 255, 0.035) 47% 53%, transparent 54%);
  background-size: 62px 62px;
}

.promo-logo {
  position: relative;
  z-index: 1;
  font-size: 88px;
}

.promo-logo small {
  margin-left: 142px;
  font-size: 24px;
}

.promo-banner p {
  position: relative;
  z-index: 1;
  margin: -20px 0 0;
  font-family: inherit;
  font-size: 32px;
}

.beta-corner {
  left: -24px;
  top: 16px;
  z-index: 2;
}

.online-panel {
  min-height: 0;
  height: 100%;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.online-list {
  min-height: 0;
  max-height: none;
  overflow: auto;
  padding: 8px 10px 6px;
}

.online-row {
  min-height: 52px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 40px 54px;
  gap: 8px;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 16px;
}

.online-row span:last-child {
  font-size: 16px;
}

.online-row > strong {
  font-size: 13px;
}

.online-row .avatar.small {
  width: 38px;
  height: 38px;
}

.online-row .grade-shield {
  width: 34px;
  height: 42px;
  justify-self: center;
  transform: translateX(-6px);
}

.lobby-viewport:not(.game-viewport) .online-panel {
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.lobby-viewport:not(.game-viewport) .online-list {
  align-self: stretch;
  max-height: none;
  overflow: auto;
}

.online-panel-footer {
  display: grid;
  place-items: center;
  padding: 8px 18px 12px;
}

.game-layout {
  display: grid;
  gap: 12px;
}

.game-top {
  display: grid;
  grid-template-columns: 370px 1fr;
  gap: 18px;
}

.game-status {
  --metric-gap: 14px;
  --metric-letter-width: 210px;
  --metric-time-width: 210px;
  --metric-round-width: 250px;
  --status-left-width: calc(
    var(--metric-letter-width) + var(--metric-time-width) + var(--metric-round-width) + var(--metric-gap) + var(--metric-gap)
  );
  display: grid;
  grid-template-columns: minmax(0, var(--status-left-width)) minmax(300px, 1fr);
  gap: var(--metric-gap);
  padding: 12px 16px 16px;
}

.metric-grid {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: var(--metric-letter-width) var(--metric-time-width) var(--metric-round-width) minmax(300px, 1fr);
  gap: var(--metric-gap);
}

.metric-card {
  min-height: 130px;
  display: grid;
  grid-template-rows: 45px minmax(82px, 1fr);
  align-items: stretch;
  overflow: hidden;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: linear-gradient(#f7f7f7, #c9c9c9);
  color: #080808;
  text-align: center;
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.55), 0 5px 12px rgba(0, 0, 0, 0.28);
}

.metric-card header {
  min-height: 45px;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 21px;
  font-weight: 1000;
  white-space: nowrap;
  text-shadow: 0 2px 1px rgba(0, 0, 0, 0.5);
}

.metric-card strong {
  min-height: 0;
  display: grid;
  place-items: center;
  font-size: 52px;
  color: #050505;
  line-height: 1;
}

.letter-card {
  position: relative;
  isolation: isolate;
}

.letter-value {
  position: relative;
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  overflow: hidden;
  line-height: 1;
}

.letter-final,
.slot-reel {
  grid-area: 1 / 1;
}

.letter-final {
  position: relative;
  z-index: 2;
}

.slot-reel {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: none;
  grid-auto-rows: var(--slot-height, 82px);
  font-size: 52px;
  font-weight: 1000;
  line-height: 1;
  transform: translateY(0);
}

.slot-reel b {
  height: var(--slot-height, 82px);
  display: grid;
  place-items: center;
  text-shadow: 0 2px rgba(255, 255, 255, 0.52);
}

.letter-card.is-drawing {
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.68),
    0 0 0 2px rgba(255, 205, 67, 0.28),
    0 0 22px rgba(255, 176, 31, 0.2),
    0 12px 22px rgba(0, 0, 0, 0.32);
}

.letter-card.is-drawing .letter-value {
  background:
    radial-gradient(circle at 50% 50%, rgba(255, 196, 47, 0.18), transparent 54%),
    linear-gradient(180deg, rgba(255, 255, 255, 0.46), transparent 31% 66%, rgba(0, 0, 0, 0.14)),
    linear-gradient(#f7f7f7, #c9c9c9);
  box-shadow:
    inset 0 0 0 2px rgba(255, 198, 64, 0.24),
    inset 14px 0 22px rgba(0, 0, 0, 0.1),
    inset -14px 0 22px rgba(0, 0, 0, 0.1);
}

.letter-card.is-drawing .letter-final {
  opacity: 0;
}

.letter-card.is-drawing .slot-reel {
  display: grid;
  animation: slotReel 5s steps(78, end) both;
  animation-delay: var(--letter-draw-delay);
}

.letter-card.is-drawing .slot-reel::before,
.letter-card.is-drawing .slot-reel::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 28px;
  z-index: 2;
  pointer-events: none;
}

.letter-card.is-drawing .slot-reel::before {
  top: 0;
  background: linear-gradient(rgba(255, 255, 255, 0.56), transparent);
}

.letter-card.is-drawing .slot-reel::after {
  bottom: 0;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.2));
}

.timer-card {
  --timer-progress: 100%;
  --timer-color: #ffb01f;
  --timer-track: #d3d7d9;
}

.timer-card strong {
  min-height: 82px;
  font-size: 38px;
}

.timer-page {
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 50%;
  border: 1px solid rgba(0, 0, 0, 0.18);
  background:
    radial-gradient(circle at 50% 50%, #ffffff 0 57%, transparent 58%),
    conic-gradient(var(--timer-color) 0 var(--timer-progress), var(--timer-track) var(--timer-progress) 100%);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.75),
    inset 0 -4px 10px rgba(0, 0, 0, 0.12),
    0 6px 12px rgba(0, 0, 0, 0.24);
  animation: timerSettle 420ms ease-out both;
}

.timer-page::before {
  content: "";
  position: absolute;
  inset: 7px;
  z-index: 0;
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 35%, rgba(255, 255, 255, 0.88), transparent 42%),
    linear-gradient(#f8f8f8, #d9dcde);
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, 0.14);
}

.timer-page::after {
  content: "";
  position: absolute;
  inset: 3px;
  z-index: 0;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.64), transparent 45%);
  pointer-events: none;
}

.timer-value {
  position: relative;
  z-index: 1;
  min-width: 48px;
  color: #050505;
  font-size: 28px;
  font-weight: 1000;
  line-height: 1;
  text-shadow: 0 1px rgba(255, 255, 255, 0.65);
  animation: timerNumberPop 420ms ease-out both;
}

.timer-card.is-counting-start {
  --timer-color: #ffcf35;
}

.timer-card.is-low {
  --timer-color: #e21b1b;
}

.timer-card.is-low .timer-page {
  background:
    radial-gradient(circle at 50% 50%, #fff4f4 0 57%, transparent 58%),
    conic-gradient(var(--timer-color) 0 var(--timer-progress), #ffc8c8 var(--timer-progress) 100%);
  box-shadow:
    inset 0 1px rgba(255, 255, 255, 0.75),
    0 0 18px rgba(226, 27, 27, 0.42);
  animation: timerLowPulse 780ms ease-in-out infinite;
}

.timer-card.is-low .timer-value {
  color: #b20d0d;
}

.timer-card.is-paused .timer-page,
.timer-card.is-paused .timer-value {
  animation: none;
  transform: none;
  opacity: 1;
}

@keyframes slotReel {
  0% {
    transform: translateY(0);
    opacity: 1;
  }

  100% {
    transform: translateY(var(--slot-stop));
    opacity: 1;
  }
}

@keyframes timerSettle {
  0% {
    transform: scale(0.94);
    opacity: 0.78;
  }

  70% {
    transform: scale(1.04);
    opacity: 1;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes timerNumberPop {
  0% {
    transform: translateY(4px) scale(0.92);
    opacity: 0;
  }

  100% {
    transform: translateY(0) scale(1);
    opacity: 1;
  }
}

@keyframes timerLowPulse {
  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.06);
  }
}

.metric-card.orange header {
  background: linear-gradient(#ffc42f, #f59600);
}

.metric-card.red header {
  background: linear-gradient(#df342f, #a70e0e);
}

.metric-card.green header {
  background: linear-gradient(#75c917, #318300);
}

.metric-card.cyan header {
  background: linear-gradient(#08a8d7, #006b9c);
}

.room-info-card {
  display: grid;
  grid-template-rows: 45px 38px minmax(42px, 1fr);
  align-items: center;
}

.metric-card.cyan.room-info-card header {
  font-size: 19px;
}

.room-info-card strong {
  min-height: 38px;
  padding: 10px 14px 0;
  font-size: 20px;
  line-height: 1.1;
  font-weight: 800;
  color: #050505;
  place-items: center;
  transform: translateY(7px);
  white-space: nowrap;
}

.room-info-card div {
  display: grid;
  grid-template-columns: max-content max-content max-content;
  place-items: center;
  justify-content: center;
  gap: 18px;
  width: 100%;
  align-self: start;
  padding: 8px 12px 12px;
  color: #252525;
  transform: translateY(7px);
}

.room-info-card span {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 0;
  border-left: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  text-shadow: 0 1px rgba(255, 255, 255, 0.55);
}

.room-info-card span:first-child {
  border-left: 0;
}

.room-info-card .clock-muted,
.room-info-card .timer-muted,
.room-info-card .user-muted {
  width: 20px;
  height: 20px;
  flex-basis: 20px;
  color: #d8dee1;
  filter: none;
}

.clock-muted,
.timer-muted,
.check-muted,
.user-muted {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  color: #18353c;
  filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.28));
  opacity: 1;
  box-shadow:
    inset 0 1px 2px rgba(255, 255, 255, 0.62),
    0 0 0 1px rgba(0, 0, 0, 0.16);
}

.timer-muted {
  border-radius: 50%;
  background:
    radial-gradient(circle at 50% 50%, #ffffff 0 18%, transparent 20%),
    conic-gradient(#0898c6 0 72%, #c7d6d9 72% 100%);
  border: 3px solid #04779d;
}

.clock-muted {
  border-width: 3px;
  border-color: #087fa4;
  background: linear-gradient(#f9fdff, #cdebf3);
}

.clock-muted::before {
  width: 3px;
  height: 7px;
  left: 8px;
  top: 4px;
  border-radius: 3px;
  background: #0b596d;
}

.clock-muted::after {
  width: 7px;
  height: 3px;
  left: 8px;
  top: 10px;
  border-radius: 3px;
  background: #0b596d;
}

.check-muted {
  border-radius: 6px;
  background: linear-gradient(#23bfe8, #047ca8);
}

.check-muted::after {
  left: 7px;
  top: 4px;
  width: 6px;
  height: 11px;
  border-width: 0 4px 4px 0;
}

.user-muted {
  border-radius: 50% 50% 46% 46%;
  background: linear-gradient(#22bce7, #0478a4);
}

.user-muted::after {
  width: 27px;
  height: 10px;
  left: -3px;
  bottom: -5px;
  border-radius: 17px 17px 3px 3px;
  box-shadow:
    inset 0 1px 2px rgba(255, 255, 255, 0.5),
    0 0 0 1px rgba(0, 0, 0, 0.12);
}

.room-info-card .clock-muted,
.room-info-card .timer-muted,
.room-info-card .user-muted,
.room-info-card .user-muted::after {
  background: #cfd5d8;
  border-color: #7f888d;
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.45), 0 0 0 1px rgba(0, 0, 0, 0.22);
}

.room-info-card .clock-muted::before,
.room-info-card .clock-muted::after {
  background: #5f686d;
}

.room-info-card .clock-muted::before {
  width: 2px;
  height: 7px;
  left: 7px;
  top: 3px;
}

.room-info-card .clock-muted::after {
  width: 7px;
  height: 2px;
  left: 7px;
  top: 9px;
}

.room-info-card .timer-muted {
  background:
    radial-gradient(circle at 50% 50%, #5f686d 0 18%, transparent 20%),
    conic-gradient(#cfd5d8 0 72%, #7f888d 72% 100%);
  border-width: 2px;
}

.room-info-card .user-muted::after {
  width: 24px;
  height: 8px;
  left: -2px;
  bottom: -4px;
}

.status-line,
.change-room {
  min-height: 65px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  font-size: 24px;
}

.status-line {
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: linear-gradient(135deg, rgba(18, 31, 35, 0.96), rgba(7, 15, 18, 0.96));
  color: #e9eeeb;
  overflow: hidden;
  padding: 0 14px;
  text-align: center;
}

.status-state {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #f7e9a4;
  font-size: 22px;
  font-weight: 1000;
  line-height: 1.12;
  text-shadow:
    0 1px 0 #062a34,
    0 0 7px rgba(255, 210, 47, 0.42);
}

.status-state i {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #73d431;
  box-shadow:
    0 0 0 4px rgba(116, 212, 49, 0.12),
    0 0 13px rgba(116, 212, 49, 0.58);
  animation: statusPulse 1.45s ease-in-out infinite;
}

.status-state strong {
  min-width: 0;
  color: #ffffff;
  font-size: 23px;
  font-weight: 1000;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.status-state span {
  min-width: 0;
  overflow: hidden;
  color: #f7e9a4;
  font-size: 21px;
  font-weight: 900;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.status-ready i {
  background: #ffcf35;
  box-shadow:
    0 0 0 4px rgba(255, 207, 53, 0.12),
    0 0 13px rgba(255, 207, 53, 0.62);
}

.status-result i,
.status-finished i {
  background: #ffad00;
  box-shadow:
    0 0 0 4px rgba(255, 173, 0, 0.12),
    0 0 13px rgba(255, 173, 0, 0.62);
}

.status-line .next-match-warning {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: 100%;
  padding: 0 16px;
  color: #f7e9a4;
  font-size: 22px;
  font-weight: 900;
  line-height: 1.12;
  text-align: center;
  text-shadow:
    0 1px 0 #062a34,
    0 0 7px rgba(255, 210, 47, 0.48);
  animation: nextMatchWarningPulse 1.45s ease-in-out infinite;
}

@keyframes nextMatchWarningPulse {
  0%,
  100% {
    transform: scale(0.985);
    letter-spacing: 0;
    filter: drop-shadow(0 0 1px rgba(255, 255, 255, 0.28));
  }

  50% {
    transform: scale(1.018);
    letter-spacing: 0;
    color: #fff6c8;
    filter: drop-shadow(0 0 6px rgba(255, 196, 47, 0.54));
  }
}

@keyframes statusPulse {
  0%,
  100% {
    transform: scale(0.85);
    opacity: 0.58;
  }

  50% {
    transform: scale(1.08);
    opacity: 1;
  }
}

.change-room {
  grid-template-columns: minmax(0, 1fr);
  justify-content: center;
  place-items: center;
  gap: 0;
  font-size: 27px;
  text-transform: uppercase;
}

@media (min-width: 768px) {
  .game-viewport .game-layout .change-room.play-style-button {
    background: linear-gradient(180deg, #ffd966, #FFBF00 58%, #c88400);
  }
}

.change-room .play-style-icon {
  display: grid;
  place-items: center;
  font-size: 40px;
  line-height: 1;
  transform: translateY(1px);
}

.change-room > span:last-child {
  grid-column: 1;
  justify-self: center;
  line-height: 1;
}

.answer-panel {
  min-height: 384px;
  display: grid;
  grid-template-columns: repeat(var(--answer-columns, 5), minmax(0, 1fr));
  align-content: start;
  gap: 10px;
  padding: 10px;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: linear-gradient(135deg, rgba(16, 29, 32, 0.97), rgba(4, 14, 16, 0.97));
  box-shadow: var(--shadow);
}

.answer-card {
  display: grid;
  gap: 8px;
}

.answer-card span {
  min-height: 48px;
  display: grid;
  place-items: center;
  padding: 0 8px;
  border-radius: 7px;
  background: linear-gradient(#303235, #151719);
  font-size: 19px;
  font-weight: 900;
  text-align: center;
}

.answer-card input {
  height: 52px;
  padding: 0 12px;
  font-size: 20px;
}

.answer-card input:disabled {
  opacity: 0.8;
}

.answer-count-6 {
  gap: 8px;
  padding: 8px;
}

.answer-count-6 .answer-card {
  gap: 6px;
}

.answer-count-6 .answer-card span {
  min-height: 42px;
  padding: 0 5px;
  font-size: 15px;
  line-height: 1.05;
}

.answer-count-6 .answer-card input {
  height: 48px;
  padding: 0 8px;
  font-size: 17px;
}

.waiting-panel {
  grid-template-columns: 1fr;
  align-content: center;
  justify-items: center;
  padding: 14px;
}

.waiting-message {
  display: grid;
  place-items: center;
  min-height: 160px;
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.06);
  color: #e9eeeb;
  font-size: 28px;
  font-weight: 900;
  text-align: center;
}

.empty-waiting-panel {
  min-height: 384px;
}

.round-in-progress-panel {
  align-content: center;
  padding: 8px;
}

.round-in-progress-art {
  position: relative;
  width: min(100%, 798px);
}

.round-in-progress-image {
  display: block;
  width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.round-title-dots {
  position: absolute;
  left: 81.25%;
  top: 33.2%;
  margin: 0;
  display: inline-flex;
  align-items: baseline;
  gap: 1px;
  transform: translateY(-50%);
  color: #ffd02d;
  font-size: clamp(16px, 3.05vw, 29px);
  font-weight: 1000;
  line-height: 1;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.72), 0 0 8px rgba(255, 208, 45, 0.42);
}

.round-title-dots i {
  font-style: normal;
  animation: roundTitleDotPulse 1.25s ease-in-out infinite;
}

.round-title-dots i:nth-child(2) {
  animation-delay: 0.18s;
}

.round-title-dots i:nth-child(3) {
  animation-delay: 0.36s;
}

@keyframes roundTitleDotPulse {
  0%,
  100% {
    opacity: 0.62;
  }

  50% {
    opacity: 1;
  }
}

.round-in-progress-card {
  position: relative;
  min-height: 100%;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 14px;
  padding: 30px 28px;
  border-radius: 7px;
  border: 1px solid rgba(154, 214, 77, 0.22);
  background:
    radial-gradient(circle at 50% 42%, rgba(105, 196, 31, 0.16), transparent 34%),
    linear-gradient(135deg, rgba(16, 32, 29, 0.96), rgba(5, 18, 19, 0.98));
  color: #f3f6f1;
  text-align: center;
  box-shadow: inset 0 0 26px rgba(120, 205, 35, 0.08), var(--shadow);
}

.round-in-progress-card .corner {
  position: absolute;
  width: 22px;
  height: 22px;
  border-color: #66bd1c;
  filter: drop-shadow(0 0 5px rgba(102, 189, 28, 0.46));
}

.round-in-progress-card .top-left {
  top: 12px;
  left: 12px;
  border-top: 3px solid;
  border-left: 3px solid;
}

.round-in-progress-card .top-right {
  top: 12px;
  right: 12px;
  border-top: 3px solid;
  border-right: 3px solid;
}

.round-in-progress-card .bottom-left {
  bottom: 12px;
  left: 12px;
  border-bottom: 3px solid;
  border-left: 3px solid;
}

.round-in-progress-card .bottom-right {
  right: 12px;
  bottom: 12px;
  border-right: 3px solid;
  border-bottom: 3px solid;
}

.round-progress-icon {
  width: 74px;
  height: 74px;
  overflow: visible;
  fill: none;
  stroke: #66bd1c;
  stroke-width: 5;
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 0 6px rgba(102, 189, 28, 0.42));
}

.round-progress-icon .hourglass-fill {
  fill: #66bd1c;
  stroke: none;
  opacity: 0.92;
}

.round-in-progress-card h2 {
  margin: 4px 0 0;
  color: #6ccb22;
  font-size: 36px;
  line-height: 1;
  font-weight: 1000;
  text-shadow: 0 0 12px rgba(102, 189, 28, 0.26), 0 2px 2px #000;
}

.round-in-progress-card p {
  margin: 0;
  color: #ffffff;
  font-size: 26px;
  line-height: 1.28;
  font-weight: 500;
  text-shadow: 0 2px 2px #000;
}

.waiting-dots {
  display: flex;
  gap: 14px;
  margin-top: 4px;
}

.waiting-dots i {
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background: #66bd1c;
  box-shadow: 0 0 10px rgba(102, 189, 28, 0.72);
  animation: waitingDotPulse 1.25s ease-in-out infinite;
}

.waiting-dots i:nth-child(2) {
  animation-delay: 0.18s;
}

.waiting-dots i:nth-child(3) {
  animation-delay: 0.36s;
  background: #5f686d;
  box-shadow: none;
}

@keyframes waitingDotPulse {
  0%,
  100% {
    transform: translateY(0);
    opacity: 0.62;
  }

  50% {
    transform: translateY(-3px);
    opacity: 1;
  }
}

.waiting-players-card {
  --waiting-green: #73d431;
  position: relative;
  width: min(100%, 980px);
  min-height: 330px;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 14px;
  padding: 28px 32px 22px;
  border-radius: 8px;
  border: 1px solid rgba(203, 225, 220, 0.18);
  background:
    radial-gradient(circle at 50% 0%, rgba(81, 132, 113, 0.16), transparent 42%),
    linear-gradient(180deg, rgba(20, 35, 38, 0.92), rgba(3, 19, 20, 0.96));
  box-shadow:
    inset 0 0 28px rgba(255, 255, 255, 0.04),
    inset 0 0 44px rgba(0, 0, 0, 0.46),
    var(--shadow);
  overflow: hidden;
}

.waiting-players-card h2 {
  margin: 0;
  color: var(--waiting-green);
  font-size: 33px;
  font-weight: 1000;
  line-height: 1;
  text-align: center;
  text-shadow: 0 3px 2px rgba(0, 0, 0, 0.75), 0 0 12px rgba(116, 212, 49, 0.24);
}

.waiting-players-card p {
  margin: 0;
  color: #f3f7f5;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.25;
  text-align: center;
  text-shadow: 0 2px 3px rgba(0, 0, 0, 0.88);
}

.waiting-player-row {
  width: min(640px, 100%);
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: end;
  gap: 68px;
  margin-top: 2px;
}

.waiting-player-slot {
  position: relative;
  width: 88px;
  height: 88px;
  justify-self: center;
  display: grid;
  place-items: end center;
  border: 4px solid rgba(185, 195, 192, 0.26);
  border-radius: 50%;
  color: #c8cdcc;
  opacity: 0.92;
  overflow: visible;
}

.waiting-player-slot.is-filled {
  border-color: var(--waiting-green);
  color: var(--waiting-green);
  box-shadow:
    0 0 16px rgba(116, 212, 49, 0.48),
    0 0 34px rgba(116, 212, 49, 0.28),
    inset 0 0 12px rgba(116, 212, 49, 0.18);
}

.waiting-player-slot.is-filled .waiting-player-icon {
  z-index: 1;
}

.waiting-player-icon {
  position: relative;
  width: 52px;
  height: 64px;
  overflow: hidden;
}

.waiting-player-icon::before,
.waiting-player-icon::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  background: currentColor;
  box-shadow: inset 0 -7px 12px rgba(0, 0, 0, 0.16);
}

.waiting-player-icon::before {
  top: 0;
  width: 33px;
  height: 33px;
  border-radius: 50%;
}

.waiting-player-icon::after {
  bottom: -9px;
  width: 49px;
  height: 38px;
  border-radius: 25px 25px 10px 10px;
}

.waiting-progress {
  position: relative;
  width: min(650px, 84%);
  height: 18px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: center;
  margin-top: 2px;
}

.waiting-progress::before,
.waiting-progress::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 3px;
  transform: translateY(-50%);
  background: rgba(183, 193, 190, 0.26);
}

.waiting-progress::after {
  right: auto;
  width: var(--waiting-progress);
  background: var(--waiting-green);
  box-shadow: 0 0 9px rgba(116, 212, 49, 0.32);
  transition: width 420ms ease;
}

.waiting-progress i {
  position: relative;
  z-index: 1;
  width: 18px;
  height: 18px;
  justify-self: center;
  border-radius: 50%;
  background: #596260;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.18);
}

.waiting-progress i.is-filled {
  background: var(--waiting-green);
}

.waiting-players-card strong {
  width: min(100%, 280px);
  display: grid;
  grid-template-columns: 34px minmax(0, max-content) 34px;
  align-items: center;
  justify-content: center;
  gap: 0;
  color: #fff;
  font-size: 24px;
  font-weight: 1000;
  line-height: 1;
  white-space: nowrap;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.88);
}

.waiting-player-count {
  min-width: 34px;
  color: var(--waiting-green);
  font-size: 1em;
  line-height: 1;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.waiting-player-total {
  min-width: 0;
  line-height: 1;
}

.waiting-players-card .waiting-ellipsis {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  width: 34px;
  margin-left: 5px;
  color: #fff;
  font-size: 24px;
  line-height: 1;
}

.waiting-ellipsis i {
  font-style: normal;
  opacity: 0.18;
  transform: translateY(0);
  animation: waitingEllipsis 1.8s ease-in-out infinite;
}

.waiting-ellipsis i:nth-child(2) {
  animation-delay: 0.25s;
}

.waiting-ellipsis i:nth-child(3) {
  animation-delay: 0.5s;
}

@keyframes waitingEllipsis {
  0%,
  100% {
    opacity: 0.18;
    transform: translateY(0);
  }

  42% {
    opacity: 1;
    transform: translateY(-2px);
  }

  72% {
    opacity: 0.42;
    transform: translateY(0);
  }
}

.waiting-corner {
  position: absolute;
  width: 22px;
  height: 22px;
  border-color: var(--waiting-green);
  opacity: 0.95;
}

.waiting-corner.top-left {
  top: 11px;
  left: 11px;
  border-top: 3px solid;
  border-left: 3px solid;
}

.waiting-corner.top-right {
  top: 11px;
  right: 11px;
  border-top: 3px solid;
  border-right: 3px solid;
}

.waiting-corner.bottom-left {
  bottom: 11px;
  left: 11px;
  border-bottom: 3px solid;
  border-left: 3px solid;
}

.waiting-corner.bottom-right {
  right: 11px;
  bottom: 11px;
  border-right: 3px solid;
  border-bottom: 3px solid;
}

.game-bottom {
  display: grid;
  grid-template-columns: 480px minmax(0, 1fr) 480px;
  gap: 14px;
  align-items: stretch;
}

.game-layout .chat-panel {
  height: 286px;
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.game-layout .chat-messages {
  min-height: 0;
  height: auto;
}

.game-layout .online-panel {
  height: 286px;
}

.game-layout .online-list {
  padding: 8px 10px 6px;
}

.game-layout .online-row {
  min-height: 50px;
  grid-template-columns: 38px minmax(0, 1fr) 44px 48px;
  gap: 10px;
  padding-left: 8px;
  padding-right: 8px;
  font-size: 16px;
}

.game-layout .online-row .avatar.small {
  width: 38px;
  height: 38px;
}

.game-layout .online-row .grade-shield {
  width: 34px;
  height: 42px;
  justify-self: start;
}

.game-layout .online-row span:last-child {
  justify-self: end;
}

.middle-action {
  display: grid;
  gap: 12px;
}

.game-layout .middle-action {
  height: 286px;
  grid-template-rows: auto minmax(0, 1fr);
}

.stop-box {
  --stop-button-image: url("/assets/interface/bnt-stop-vermelho.webp");
  position: relative;
  width: 100%;
  aspect-ratio: 1188 / 252;
  display: grid;
  place-items: center;
  border-radius: 7px;
  border: 0;
  overflow: hidden;
  background-image: var(--stop-button-image);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
  box-shadow: var(--shadow);
}

.stop-box-ready {
  --stop-button-image: url("/assets/interface/bnt-stop-vermelho.webp");
}

.stop-box-stopped,
.stop-box-action {
  --stop-button-image: url("/assets/interface/bnt-stop-vermelho.webp");
}

.stop-box-blocked {
  --stop-button-image: url("/assets/interface/bnt-stop-cinza.webp");
}

.stop-button {
  width: 100%;
  height: 100%;
  position: relative;
  border: 0;
  border-radius: inherit;
  color: transparent;
  background-image: var(--stop-button-image);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
  cursor: pointer;
  font-size: 0;
  transition: filter 140ms ease;
}

.stop-button.is-ready {
  --stop-button-image: url("/assets/interface/bnt-stop-vermelho.webp");
  filter: brightness(0.95);
}

.stop-button.is-stop-action {
  --stop-button-image: url("/assets/interface/bnt-stop-vermelho.webp");
  filter: brightness(0.9);
}

.stop-button.is-stop-blocked {
  --stop-button-image: url("/assets/interface/bnt-stop-cinza.webp");
  filter: brightness(0.98);
}

.stop-button:disabled {
  cursor: not-allowed;
}

.stop-button.is-ready:not(:disabled):hover,
.stop-button.is-ready:not(:disabled):focus-visible,
.stop-button.is-stop-action:not(:disabled):hover,
.stop-button.is-stop-action:not(:disabled):focus-visible {
  filter: brightness(1);
}

.stop-button:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.82);
  outline-offset: -12px;
}

.stop-copy {
  position: absolute;
  inset: 0 5% 0 29%;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 10px;
  color: #fff;
  text-align: center;
  pointer-events: none;
  text-shadow: 0 3px 4px rgba(0, 0, 0, 0.82);
}

.stop-copy strong {
  max-width: 100%;
  font-size: 34px;
  font-weight: 1000;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.stop-copy small,
.stop-copy span {
  font-size: 19px;
  font-weight: 1000;
  line-height: 1.15;
}

.stop-box-blocked .stop-copy {
  gap: 4px;
}

.stop-box-blocked .stop-copy strong {
  font-size: 25px;
}

.stop-box-blocked .stop-copy span {
  max-width: 100%;
  font-size: 16px;
  overflow-wrap: anywhere;
}

.stop-button.is-locked .stop-copy strong,
.waiting-stop .stop-copy strong {
  font-size: 30px;
}

.result-stop .stop-copy strong {
  font-size: 26px;
  line-height: 1.05;
}

.result-stop .stop-copy small {
  font-size: 18px;
}

.waiting-stop .stop-copy {
  gap: 6px;
}

.waiting-stop .stop-copy span {
  font-size: 22px;
  white-space: nowrap;
}

.waiting-stop .stop-copy strong {
  font-size: 24px;
  white-space: nowrap;
  overflow-wrap: normal;
}

.legend-box {
  min-height: 124px;
  display: grid;
  grid-template-columns: repeat(2, minmax(142px, 1fr));
  align-content: center;
  justify-content: center;
  gap: 10px 28px;
  padding: 12px 30px 16px;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: linear-gradient(135deg, rgba(20, 33, 36, 0.96), rgba(7, 17, 20, 0.96));
  box-shadow: var(--shadow);
}

.game-layout .legend-box {
  min-height: 0;
  height: 100%;
}

.legend-box h3 {
  grid-column: 1 / -1;
  margin: 0 0 2px;
  color: #f4f7f5;
  font-size: 17px;
  font-weight: 1000;
  line-height: 1;
  text-align: center;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.68);
}

.legend-box div {
  width: 100%;
  min-height: 40px;
  display: grid;
  grid-template-columns: 36px 92px;
  align-items: center;
  justify-content: center;
  justify-items: start;
  gap: 10px;
  padding: 2px 0;
}

.legend-box strong {
  min-width: 0;
  font-size: 16px;
  line-height: 1.05;
  text-align: left;
  white-space: nowrap;
  color: #fff;
}

.legend-item.zero strong {
  color: #fff;
}

.legend-item.five strong {
  color: #fff;
}

.legend-item.ten strong {
  color: #fff;
}

.legend-item.fifteen strong {
  color: #fff;
}

.legend-chip {
  width: 36px;
  height: 36px;
  justify-self: center;
  border-radius: 5px;
  box-shadow: inset 0 2px 5px rgba(255, 255, 255, 0.28), 0 2px 7px rgba(0, 0, 0, 0.4);
}

.legend-chip.zero {
  background: linear-gradient(#ff4b4b, #b30000);
}

.legend-chip.one,
.legend-chip.five {
  background: linear-gradient(#fff, #bdbdbd);
}

.legend-chip.two,
.legend-chip.ten {
  background: linear-gradient(#ffb11d, #ff6a00);
}

.legend-chip.three,
.legend-chip.fifteen {
  background: linear-gradient(#2718ff, #170099);
}

.final-podium-panel {
  position: relative;
  min-height: 384px;
  overflow: hidden;
  display: grid;
  align-items: start;
  padding: 10px 68px 0;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background:
    radial-gradient(ellipse at 50% 86%, rgba(249, 185, 24, 0.34), transparent 43%),
    radial-gradient(ellipse at 16% 12%, rgba(22, 165, 200, 0.2), transparent 34%),
    radial-gradient(ellipse at 84% 16%, rgba(223, 58, 53, 0.16), transparent 32%),
    linear-gradient(180deg, rgba(10, 28, 24, 0.92), rgba(4, 14, 16, 0.98));
  box-shadow: var(--shadow);
}

.round-podium-panel .podium-stage {
  animation: roundPodiumFade 5s linear both;
  animation-delay: var(--podium-fade-delay, 0s);
  transform: none;
  translate: none;
  will-change: auto;
}

.round-podium-panel .podium-entry {
  opacity: 1;
  transform: none;
  animation: none;
  will-change: auto;
}

@keyframes roundPodiumFade {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

.podium-sparkles {
  position: absolute;
  inset: 0;
  opacity: 0.5;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 18% 26%, rgba(255, 212, 71, 0.44) 0 2px, transparent 3px),
    radial-gradient(circle at 41% 18%, rgba(255, 255, 255, 0.34) 0 2px, transparent 3px),
    radial-gradient(circle at 62% 32%, rgba(255, 212, 71, 0.36) 0 2px, transparent 3px),
    radial-gradient(circle at 82% 22%, rgba(255, 255, 255, 0.3) 0 2px, transparent 3px),
    radial-gradient(circle at 72% 56%, rgba(255, 212, 71, 0.28) 0 2px, transparent 3px);
}

.podium-fireworks {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}

.podium-fireworks span {
  position: absolute;
  left: var(--fx);
  top: var(--fy);
  width: var(--firework-size);
  height: var(--firework-size);
  border-radius: 50%;
  color: var(--firework);
  opacity: 0.32;
  background:
    radial-gradient(circle, currentColor 0 3px, transparent 4px),
    repeating-conic-gradient(from 8deg, transparent 0 8deg, currentColor 9deg 12deg, transparent 13deg 24deg);
  filter: drop-shadow(0 0 8px currentColor);
  mix-blend-mode: screen;
  transform: translate(-50%, -50%) scale(0.12) rotate(0deg);
  mask-image: radial-gradient(circle, transparent 0 17%, #000 18% 58%, transparent 62%);
  animation: podiumFirework 8.6s ease-in-out both;
  animation-delay: var(--firework-delay);
  will-change: transform, opacity;
}

.podium-confetti {
  position: absolute;
  inset: 0;
  z-index: 2;
  overflow: hidden;
  pointer-events: none;
}

.podium-confetti i {
  position: absolute;
  left: var(--x);
  top: -70px;
  width: var(--size);
  height: calc(var(--size) * 1.7);
  border-radius: 2px;
  background: currentColor;
  color: #ffd447;
  opacity: 0;
  box-shadow: 0 0 6px rgba(255, 219, 76, 0.22);
  animation: podiumConfettiFall var(--duration) linear both;
  animation-delay: var(--delay);
  will-change: transform;
}

.podium-confetti i:nth-child(4n + 1) {
  color: #16a5c8;
}

.podium-confetti i:nth-child(4n + 2) {
  color: #df3a35;
}

.podium-confetti i:nth-child(4n + 3) {
  color: #74bf17;
}

.podium-confetti i:nth-child(3n) {
  width: calc(var(--size) * 1.7);
  height: var(--size);
}

.podium-stage {
  position: relative;
  z-index: 3;
  width: min(870px, 100%);
  height: 354px;
  justify-self: center;
  display: grid;
  grid-template-columns: 1fr 1.18fr 1fr;
  align-items: end;
  gap: 0;
}

.podium-entry {
  grid-row: 1;
  display: grid;
  justify-items: center;
  align-content: end;
  min-width: 0;
  opacity: 0;
  transform: translateY(28px) scale(0.93);
  animation: podiumWinnerReveal 1050ms cubic-bezier(0.18, 0.84, 0.24, 1) both;
  will-change: opacity, transform;
}

.podium-entry.player-hover-source {
  cursor: pointer;
  outline: none;
}

.podium-entry.player-hover-source:hover .podium-player-card,
.podium-entry.player-hover-source:focus-visible .podium-player-card {
  border-color: rgba(0, 255, 178, 0.68);
  box-shadow:
    0 0 0 1px rgba(0, 255, 178, 0.18),
    0 0 20px rgba(0, 217, 151, 0.28),
    inset 0 0 18px rgba(0, 217, 151, 0.12);
}

.podium-entry.first {
  grid-column: 2;
  animation-delay: 1.8s;
}

.podium-entry.second {
  grid-column: 1;
  animation-delay: 900ms;
}

.podium-entry.third {
  grid-column: 3;
  animation-delay: 0s;
}

.avatar.podium-photo {
  position: relative;
  z-index: 4;
  width: 72px;
  height: 72px;
  border-radius: 8px;
  font-size: 27px;
}

.podium-entry.first .avatar.podium-photo {
  width: 88px;
  height: 88px;
  font-size: 32px;
}

.podium-ribbon {
  position: relative;
  z-index: 3;
  min-width: 128px;
  height: 27px;
  display: grid;
  place-items: center;
  margin-top: 4px;
  padding: 0 21px;
  color: #fff;
  font-size: 15px;
  font-weight: 1000;
  text-shadow: 0 2px 2px rgba(0, 0, 0, 0.55);
  clip-path: polygon(0 0, 100% 0, 88% 50%, 100% 100%, 0 100%, 12% 50%);
}

.podium-entry.first .podium-ribbon {
  background: linear-gradient(#f9d45d, #bd7d08);
}

.podium-entry.second .podium-ribbon {
  background: linear-gradient(#f2f2f2, #8f9497);
}

.podium-entry.third .podium-ribbon {
  background: linear-gradient(#ffb65b, #aa4e07);
}

.podium-player-card {
  position: relative;
  z-index: 2;
  width: 170px;
  min-height: 108px;
  display: grid;
  align-content: center;
  gap: 6px;
  margin-top: -2px;
  padding: 10px 12px 12px;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.26);
  background: linear-gradient(180deg, rgba(17, 20, 18, 0.9), rgba(8, 9, 8, 0.9));
  text-align: center;
  box-shadow: 0 8px 15px rgba(0, 0, 0, 0.42);
}

.podium-entry.first .podium-player-card {
  width: 188px;
  min-height: 122px;
  border-color: rgba(255, 196, 31, 0.88);
}

.podium-entry.second .podium-player-card {
  border-color: rgba(224, 229, 230, 0.72);
}

.podium-entry.third .podium-player-card {
  border-color: rgba(235, 126, 24, 0.78);
}

.podium-player-card strong {
  overflow: hidden;
  color: #fff;
  font-size: 17px;
  line-height: 1.16;
  white-space: nowrap;
  text-overflow: ellipsis;
  text-shadow: 0 2px 2px #000;
}

.podium-grade {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
}

.podium-grade .grade-shield {
  width: 34px;
  height: 42px;
  flex: 0 0 auto;
}

.podium-grade span {
  min-width: 0;
  overflow: hidden;
  color: #ffd75a;
  font-size: 13px;
  font-weight: 900;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.podium-points {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 5px;
  color: #fff;
  font-size: 28px;
  font-weight: 1000;
  line-height: 1;
  text-shadow: 0 2px 2px #000;
}

.podium-entry.first .podium-points {
  font-size: 32px;
}

.podium-points small {
  color: #dfe5df;
  font-size: 13px;
  font-weight: 900;
  text-transform: uppercase;
}

.podium-step {
  position: relative;
  width: 226px;
  height: 78px;
  display: grid;
  place-items: end center;
  margin-top: -1px;
  padding-bottom: 4px;
  border-radius: 0 0 10px 10px;
  box-shadow: inset 0 -14px 20px rgba(0, 0, 0, 0.28), 0 10px 20px rgba(0, 0, 0, 0.38);
}

.podium-step::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -22px;
  height: 44px;
  border-radius: 50%;
  box-shadow: inset 0 5px 12px rgba(255, 255, 255, 0.36), inset 0 -8px 13px rgba(0, 0, 0, 0.2);
}

.podium-entry.first .podium-step {
  width: 270px;
  height: 98px;
  background: linear-gradient(90deg, #b37300, #ffd33f 46%, #b37200);
}

.podium-entry.first .podium-step::before {
  background: linear-gradient(90deg, #b87904, #ffe36a 46%, #bd7a04);
}

.podium-entry.second .podium-step {
  background: linear-gradient(90deg, #777, #d8d8d8 46%, #747474);
}

.podium-entry.second .podium-step::before {
  background: linear-gradient(90deg, #777, #ededed 46%, #777);
}

.podium-entry.third .podium-step {
  width: 218px;
  height: 70px;
  background: linear-gradient(90deg, #8f4300, #df7f15 48%, #783100);
}

.podium-entry.third .podium-step::before {
  background: linear-gradient(90deg, #9d4d06, #f39a25 48%, #863900);
}

.podium-step span {
  position: relative;
  z-index: 1;
  color: rgba(255, 255, 255, 0.72);
  font-size: 62px;
  font-weight: 1000;
  line-height: 0.92;
  text-shadow: 0 3px 3px rgba(0, 0, 0, 0.42);
}

.podium-entry.first .podium-step span {
  color: #ffdf4d;
  font-size: 72px;
}

.podium-entry.third .podium-step span {
  color: #ff991e;
  font-size: 56px;
}

@keyframes podiumConfettiFall {
  0% {
    opacity: 0;
    transform: translate3d(0, -96px, 0) rotate(0deg);
  }

  10% {
    opacity: 0.58;
  }

  30% {
    transform: translate3d(calc(var(--drift) * 0.22), 74px, 0) rotate(150deg);
  }

  52% {
    transform: translate3d(calc(var(--drift) * -0.24), 208px, 0) rotate(285deg);
  }

  78% {
    opacity: 0.58;
    transform: translate3d(calc(var(--drift) * 0.42), 322px, 0) rotate(420deg);
  }

  92% {
    opacity: 0;
  }

  100% {
    opacity: 0;
    transform: translate3d(var(--drift), 520px, 0) rotate(640deg);
  }
}

@keyframes podiumFirework {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.54) rotate(0deg);
  }

  12% {
    opacity: 0.28;
  }

  35% {
    opacity: 0.42;
    transform: translate(-50%, -50%) scale(0.92) rotate(16deg);
  }

  68% {
    opacity: 0.34;
    transform: translate(-50%, -50%) scale(0.74) rotate(30deg);
  }

  88% {
    opacity: 0;
  }

  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.54) rotate(0deg);
  }
}

@keyframes podiumWinnerReveal {
  0% {
    opacity: 0;
    transform: translateY(30px) scale(0.92);
    filter: brightness(0.58);
  }

  58% {
    opacity: 1;
    transform: translateY(-8px) scale(1.035);
    filter: brightness(1.18);
  }

  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: brightness(1);
  }
}

.result-table-wrap {
  --result-row-height: 46px;
  --result-row-gap: 6px;
  min-height: 0;
  height: 384px;
  max-height: 384px;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  overflow: hidden;
  padding: 8px;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: linear-gradient(135deg, rgba(16, 29, 32, 0.97), rgba(4, 14, 16, 0.97));
  box-shadow: var(--shadow);
}

.result-table-scroll {
  min-height: 0;
  height: 100%;
  max-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.mobile-result-table {
  display: none;
}

.result-table {
  width: 100%;
  min-width: 0;
  border-collapse: separate;
  border-spacing: 5px;
  table-layout: fixed;
  font-size: 16px;
  text-align: center;
}

.result-table th:first-child,
.result-table td:first-child {
  width: 15%;
}

.result-table th:nth-last-child(1),
.result-table td:nth-last-child(1),
.result-table th:nth-last-child(2),
.result-table td:nth-last-child(2) {
  width: 8%;
}

.result-table th,
.result-table td {
  height: var(--result-row-height);
  padding: 0 6px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: linear-gradient(#22282b, #111719);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.05);
}

.result-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  font-weight: 1000;
  background: linear-gradient(#25292c, #131719);
}

.answer-result.zero {
  color: #e24a4a;
  text-decoration: line-through;
}

.answer-result.five {
  color: #d8dde0;
}

.answer-result.ten {
  color: #ffad00;
}

.answer-result.fifteen {
  color: #2f42ff;
}

.result-player-cell {
  text-align: center;
}

.result-player-cell strong {
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.result-table .answer-result {
  display: block;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: 400;
  text-transform: lowercase;
}

.result-table td small {
  display: block;
  margin-top: 2px;
  color: #dfe5df;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

::-webkit-scrollbar {
  width: 12px;
}

::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.06);
  border-radius: 10px;
}

::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.45);
  border-radius: 10px;
}

@media (max-width: 1450px) {
  .topbar {
    height: auto;
    grid-template-columns: 1fr;
  }

  .brand {
    justify-content: center;
  }

  .brand-logo {
    width: min(264px, 76vw);
  }

  .top-actions {
    gap: 10px;
  }

  .like-box {
    justify-self: center;
    margin-top: 0;
  }

  .game-top,
  .game-bottom {
    grid-template-columns: 1fr;
  }

  .right-column {
    align-self: auto;
  }

  .game-status,
  .metric-grid,
  .answer-panel {
    grid-template-columns: 1fr;
  }

}

@media (max-width: 1320px) {
  .home-menu-page-settings .home-page-content {
    width: min(1580px, calc(100vw - 88px));
  }

  .home-menu-page-settings .home-back-menu-button {
    left: calc((100vw - min(1580px, calc(100vw - 88px))) / 2 + 354px) !important;
  }

  .home-back-menu-button {
    left: 264px;
  }

  .home-settings-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .home-menu-page-settings .home-settings-panel {
    height: auto;
    min-height: 0;
  }

  .home-back-menu-icon {
    width: 0.82em !important;
    height: 0.82em !important;
    flex-basis: 0.82em !important;
    font-size: 0.82em !important;
    line-height: 1 !important;
  }
}

@media (min-width: 1321px) and (max-width: 1500px) {
  .home-menu-page-settings .home-back-menu-button {
    left: calc((100vw - min(1580px, calc(100vw - 88px))) / 2 + 354px) !important;
  }

  .home-back-menu-button {
    left: calc(max(110px, calc((100vw - 1500px) / 2)) + 240px);
  }
}

@media (max-width: 1120px) {
  .lobby-grid {
    grid-template-columns: 1fr;
  }

  .right-column {
    align-self: auto;
  }
}

@media (min-width: 600px) and (max-width: 1120px) {
  .lobby-viewport:not(.game-viewport):not(.home-viewport) {
    height: calc(100vh - 20px);
    height: calc(100dvh - 20px);
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-scale {
    width: calc((100vw - 28px) / var(--lobby-scale));
    height: calc((100vh - 20px) / var(--lobby-scale));
    height: calc((100dvh - 20px) / var(--lobby-scale));
    max-height: calc((100vh - 20px) / var(--lobby-scale));
    max-height: calc((100dvh - 20px) / var(--lobby-scale));
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-grid {
    grid-template-columns: minmax(285px, 350px) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) 252px;
    grid-template-areas:
      "left rooms"
      "chat players";
    gap: 10px;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .rooms-column,
  .lobby-viewport:not(.game-viewport):not(.home-viewport) .online-panel,
  .lobby-viewport:not(.game-viewport):not(.home-viewport) .chat-column {
    height: 100%;
    min-height: 0;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .chat-column {
    height: auto;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .rooms-legend,
  .lobby-viewport:not(.game-viewport):not(.home-viewport) .room-row {
    grid-template-columns: minmax(160px, 1fr) 54px 76px 124px 56px 92px;
    column-gap: 14px;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .room-row .text-only-button > span:last-child {
    transform: none;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .chat-form .text-only-button > span:last-child {
    transform: none;
  }

  .game-viewport {
    --game-design-height: 826px;
    height: calc(100vh - 20px);
    height: calc(100dvh - 20px);
  }

  .game-viewport .game-scale {
    width: calc((100vw - 28px) / var(--game-effective-scale, var(--game-scale)));
  }

  .game-layout {
    gap: 9px;
  }

  .game-scale .game-top {
    grid-template-columns: 318px minmax(0, 1fr);
    gap: 10px;
  }

  .game-scale .game-bottom {
    grid-template-columns: minmax(300px, 1fr) minmax(260px, 0.78fr) minmax(300px, 1fr);
    gap: 10px;
  }

  .game-scale .game-status {
    --metric-gap: 8px;
    --metric-letter-width: 176px;
    --metric-time-width: 176px;
    --metric-round-width: 196px;
    padding: 9px 10px 10px;
  }

  .game-scale .metric-card {
    min-height: 104px;
    grid-template-rows: 34px minmax(66px, 1fr);
  }

  .game-scale .metric-card header {
    min-height: 34px;
    font-size: 16px;
  }

  .game-scale .metric-card strong {
    min-height: 0;
    font-size: 36px;
  }

  .game-scale .timer-card strong {
    min-height: 0;
  }

  .game-scale .timer-page {
    width: 52px;
    height: 52px;
  }

  .game-scale .timer-value {
    min-width: 38px;
    font-size: 22px;
  }

  .game-scale .room-info-card {
    grid-template-rows: 34px auto 1fr;
  }

  .game-scale .room-info-card strong {
    min-height: 26px;
    font-size: 16px;
  }

  .game-scale .room-info-card div {
    gap: 8px;
    padding: 0 8px 7px;
  }

  .game-scale .room-info-card span {
    font-size: 14px;
  }

  .game-scale .status-line,
  .game-scale .change-room {
    min-height: 48px;
    font-size: 22px;
  }

  .game-scale .change-room {
    gap: 10px;
  }

  .game-scale .change-room .play-style-icon {
    font-size: 32px;
  }

  .game-scale .status-state strong {
    font-size: 18px;
  }

  .game-scale .status-state span {
    font-size: 16px;
  }

  .game-scale .answer-panel {
    min-height: 326px;
    gap: 8px;
    padding: 8px;
  }

  .game-scale .result-table-wrap {
    height: 326px;
    max-height: 326px;
  }

  .game-scale .game-layout .chat-panel,
  .game-scale .game-layout .online-panel,
  .game-scale .game-layout .middle-action {
    height: 238px;
  }

  .game-scale .legend-box {
    grid-template-columns: repeat(2, minmax(120px, 1fr));
    gap: 7px 14px;
    padding: 8px 14px 10px;
  }

  .game-scale .legend-box div {
    width: 100%;
    min-height: 32px;
    grid-template-columns: 30px minmax(72px, max-content);
    justify-content: center;
    gap: 8px;
  }

  .game-scale .legend-chip {
    width: 30px;
    height: 30px;
  }

  .game-scale .legend-box strong {
    font-size: 13px;
  }
}

@media (max-width: 720px) {
  .app-shell {
    padding: 8px;
  }

  .top-actions {
    grid-template-columns: 1fr 1fr;
  }

  .brand-word {
    font-size: 50px;
  }

  .room-row {
    grid-template-columns: 1fr 1fr;
    padding: 12px;
  }

  .rooms-legend {
    grid-template-columns: 1fr 1fr;
    min-height: 0;
    padding: 8px 12px;
  }

  .rooms-legend span:last-child {
    display: none;
  }

  .room-row button {
    grid-column: 1 / -1;
  }

  .online-strip {
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 10px;
    text-align: center;
  }

  .online-strip span {
    justify-self: center;
  }

  .player-info {
    grid-template-columns: 90px 1fr 50px;
  }

  .avatar.large {
    width: 90px;
    height: 90px;
  }

  .player-info .grade-shield {
    width: 46px;
    height: 58px;
  }

  .grade-progress {
    grid-template-columns: minmax(0, 0.75fr) minmax(124px, 1fr);
    margin: 12px 0 0;
  }

  .progress-track strong {
    margin-left: 0;
    font-size: 11px;
    font-weight: 500;
  }

  .next-grade-box {
    font-size: 11px;
    font-weight: 500;
    padding: 0 6px;
  }

  .chat-form {
    grid-template-columns: 1fr;
  }

  .home-hero {
    width: min(720px, 94%);
    gap: 0;
    padding: 14px 0 20px;
  }

  .home-layout {
    width: min(430px, 100%);
    min-height: 0;
    grid-template-columns: 1fr;
    justify-content: center;
    gap: 12px;
    transform: none;
  }

  .home-player-card {
    width: min(430px, 100%);
    height: auto;
    min-height: 0;
    grid-template-rows: 50px auto auto auto;
  }

  .home-player-card header {
    min-height: 50px;
    height: 50px;
    padding: 0 20px;
    font-size: 25px;
  }

  .home-player-main {
    grid-template-columns: 86px minmax(0, 1fr) 72px;
    gap: 10px;
    padding: 12px;
  }

  .home-player-photo-upload {
    width: 86px;
    height: 86px;
  }

  .home-player-photo-upload > span {
    left: 5px;
    right: 5px;
    bottom: 5px;
    min-height: 20px;
    font-size: 9px;
  }

  .avatar.home-player-avatar {
    width: 86px;
    height: 86px;
    font-size: 32px;
  }

  .home-player-summary h2 {
    font-size: 19px;
  }

  .home-player-summary p {
    font-size: 14px;
  }

  .home-player-grade .grade-shield {
    width: 78px;
    height: 100px;
  }

  .home-player-progress {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 0 14px 12px;
  }

  .home-progress-track {
    height: 30px;
  }

  .home-player-progress strong {
    font-size: 12px;
  }

  .home-next-grade {
    min-height: 30px;
    font-size: 12px;
    padding: 0 8px;
  }

  .home-player-stats {
    min-height: 0;
    margin: 0 10px 10px;
    padding: 8px 10px;
    grid-template-rows: repeat(6, 42px);
  }

  .home-stat-row {
    min-height: 42px;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 10px;
    padding: 0 6px;
  }

  .home-stat-icon {
    width: 38px;
    height: 38px;
    font-size: 23px;
  }

  .home-stat-icon.grade-icon .grade-shield,
  .home-stat-icon.home-team-grade .grade-shield {
    width: 36px;
    height: 46px;
  }

  .home-stat-icon img.home-team-empty-icon {
    width: 44px;
    height: 44px;
  }

  .home-stat-row strong {
    font-size: 13px;
  }

  .home-stat-row b {
    font-size: 16px;
  }

  .home-logo {
    width: min(178px, 56%);
    margin-bottom: -24px;
  }

  .home-content-row,
  .home-hero.is-exiting .home-content-row,
  .home-hero.screen-exit-right .home-content-row,
  .home-hero.screen-exit-left .home-content-row {
    width: 100%;
    min-height: 300px;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .home-mascot-frame {
    width: min(385px, 94%);
  }

  .home-menu-page {
    padding: 16px;
    gap: 9px;
  }

  .home-menu-page-ranking {
    padding: 64px 14px 24px;
  }

  .home-menu-page-ranking .home-back-menu-button {
    top: 66px;
    left: 16px;
    width: min(142px, 42vw);
    height: 43px;
  }

  .home-back-menu-button {
    left: 16px;
    top: 66px;
    bottom: auto;
    width: min(160px, 46vw);
    height: 42px;
    font-size: 16px;
    transform: none;
  }

  .home-page-logo {
    width: min(160px, 48vw);
    max-height: 68px;
  }

  .home-page-content {
    width: min(340px, 94vw);
  }

  .home-menu-page-ranking .home-page-content {
    width: min(420px, 94vw);
    max-height: calc((100vh - 104px) / var(--lobby-scale));
    max-height: calc((100dvh - 104px) / var(--lobby-scale));
    overflow-y: auto;
    padding: 0 4px 18px;
  }

  .home-page-content .home-ranking-panel,
  .home-page-content .home-settings-panel {
    height: auto;
    max-height: 650px;
  }

  .home-page-content .home-ranking-list {
    max-height: 500px;
    grid-template-rows: repeat(6, minmax(42px, 1fr));
  }

  .home-ranking-panel {
    grid-template-rows: auto minmax(0, 1fr);
    gap: 18px;
    padding-top: 0;
  }

  .home-ranking-duo {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .home-ranking-block {
    grid-template-rows: 30px 310px minmax(0, auto);
    gap: 10px;
  }

  .home-ranking-block-title {
    font-size: 17px;
  }

  .home-ranking-heading {
    font-size: 24px;
    grid-template-columns: 1fr auto 1fr;
    gap: 10px;
    margin-top: 0;
  }

  .home-ranking-podium-stage {
    width: 100%;
    gap: 6px;
    padding: 12px 8px 8px;
  }

  .final-podium-panel.home-ranking-results-podium {
    padding: 0 8px 18px;
  }

  .home-ranking-results-podium .podium-stage {
    width: 720px;
    height: 354px;
    transform: translate(-50%, -50%) scale(0.68);
  }

  .home-rank-card,
  .home-rank-card.first {
    width: 108px;
    height: 190px;
    grid-template-rows: 36px 28px 26px 22px 32px 30px;
  }

  .home-rank-card::before,
  .home-rank-card.first::before {
    left: 12px;
    right: 12px;
    top: 28px;
    bottom: 36px;
  }

  .home-rank-place {
    top: 22px;
    min-width: 30px;
    height: 32px;
    font-size: 17px;
  }

  .home-rank-card.first .home-rank-place {
    bottom: 8px;
    width: 38px;
    height: 38px;
    font-size: 20px;
  }

  .home-rank-card.first .home-rank-crown {
    width: 42px;
    height: 34px;
  }

  .avatar.home-rank-avatar,
  .home-rank-card.first .avatar.home-rank-avatar {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }

  .home-rank-card strong {
    max-width: 82px;
    font-size: 11px;
  }

  .home-rank-grade {
    gap: 4px;
    font-size: 9px;
  }

  .home-rank-grade .grade-shield {
    width: 24px;
    height: 30px;
  }

  .home-rank-points,
  .home-rank-card.first .home-rank-points {
    font-size: 16px;
  }

  .home-rank-points small {
    font-size: 8px;
  }

  .home-rank-base,
  .home-rank-card.first .home-rank-base {
    width: 96px;
    height: 24px;
  }

  .home-ranking-table {
    padding: 12px 10px 10px;
  }

  .home-ranking-table h3 {
    font-size: 17px;
    grid-template-columns: 1fr auto 1fr;
    gap: 8px;
  }

  .home-ranking-table-head-group,
  .home-ranking-table-row {
    grid-template-columns: 58px minmax(0, 1fr) minmax(104px, 0.82fr) 66px;
    gap: 6px;
  }

  .home-ranking-table-body {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .home-ranking-table-head {
    grid-template-columns: 1fr;
    font-size: 11px;
  }

  .home-ranking-table-head-group {
    padding: 0 8px;
  }

  .home-ranking-table-head-group + .home-ranking-table-head-group {
    display: none;
  }

  .home-ranking-table-row {
    min-height: 44px;
    padding: 0 10px;
  }

  .home-ranking-pagination {
    min-height: 32px;
    gap: 8px;
    padding-top: 10px;
    font-size: 12px;
  }

  .home-ranking-pagination button {
    min-width: 78px;
    min-height: 28px;
    font-size: 11px;
  }

  .home-ranking-player strong {
    font-size: 13px;
  }

  .home-ranking-player .grade-shield,
  .home-ranking-level .grade-shield {
    width: 30px;
    height: 37px;
  }

  .home-ranking-level strong {
    font-size: 12px;
  }

  .home-ranking-score {
    min-width: 48px;
    font-size: 13px;
  }

  .home-settings-panel .sound-settings-header {
    min-height: 54px;
    padding: 8px 12px;
  }

  .home-settings-panel .sound-settings-header strong {
    font-size: 22px;
  }

  .home-settings-panel .sound-settings-body {
    padding: 9px;
    gap: 8px;
  }

  .home-menu-page-settings {
    gap: 30px;
    padding: 64px 14px 24px;
  }

  .home-menu-page-settings .home-page-title {
    grid-template-columns: 1fr auto 1fr;
    gap: 10px;
    margin: 0;
    font-size: 24px;
  }

  .home-menu-page-settings .home-page-content {
    width: min(420px, 94vw);
    max-height: calc((100vh - 104px) / var(--lobby-scale));
    max-height: calc((100dvh - 104px) / var(--lobby-scale));
    overflow-y: auto;
    margin-top: 8px;
    padding: 0 4px 18px;
  }

  .home-menu-page-settings .home-settings-panel {
    height: auto;
    min-height: 0;
    padding: 12px;
  }

  .home-settings-grid {
    gap: 10px;
  }

  .home-account-settings-panel {
    gap: 10px;
  }

  .home-settings-card-heading {
    grid-template-columns: 66px minmax(0, 1fr);
    gap: 10px;
    padding-bottom: 10px;
  }

  .home-settings-photo-frame {
    width: 66px;
    height: 66px;
  }

  .home-settings-photo-actions {
    grid-template-columns: repeat(2, minmax(0, 92px));
    gap: 6px;
  }

  .home-settings-photo-button {
    min-height: 27px;
    padding: 0 7px;
    font-size: 8px;
  }

  .home-settings-photo-frame .avatar.home-settings-avatar {
    font-size: 21px;
  }

  .home-settings-account-heading > span {
    font-size: 11px;
  }

  .home-settings-card-heading h2 {
    font-size: 22px;
  }

  .home-account-summary {
    gap: 6px;
  }

  .home-account-summary div {
    min-height: 52px;
    gap: 4px;
    padding: 8px 10px;
  }

  .home-account-summary span,
  .home-password-field > span:first-child {
    font-size: 11px;
  }

  .home-account-summary strong {
    font-size: 15px;
  }

  .home-password-form {
    gap: 7px;
  }

  .home-password-form h3 {
    font-size: 16px;
  }

  .home-password-field {
    gap: 4px;
  }

  .home-password-wrap input {
    height: 38px;
    padding-right: 44px;
    font-size: 14px;
  }

  .home-password-wrap .auth-eye-button {
    right: 6px;
    width: 34px;
  }

  .home-password-submit {
    height: 42px;
    gap: 8px;
    font-size: 15px;
  }

  .home-password-submit .auth-lock-icon {
    width: 18px;
    height: 18px;
  }

  .home-menu-page-settings .sound-settings-body {
    gap: 6px;
    padding: 0;
  }

  .home-menu-page-settings .sound-control {
    min-height: 78px;
    padding: 8px;
  }

  .home-menu-page-settings .sound-control > span {
    grid-template-columns: 40px minmax(0, 1fr) 54px;
    gap: 8px;
  }

  .home-menu-page-settings .sound-control-icon {
    width: 36px;
    height: 36px;
    font-size: 25px;
  }

  .home-menu-page-settings .sound-control strong,
  .home-menu-page-settings .sound-toggle strong {
    font-size: 13px;
  }

  .home-menu-page-settings .sound-control input[type="range"] {
    grid-column: 2 / 4;
    grid-row: 2;
  }

  .home-menu-page-settings .sound-control output {
    grid-column: 3;
    width: 50px;
    height: 28px;
    font-size: 13px;
  }

  .home-menu-page-settings .sound-toggle {
    min-height: 48px;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 8px;
    padding: 7px 8px;
  }

  .home-menu-page-settings .sound-toggle span {
    width: 48px;
    height: 28px;
    padding: 3px;
  }

  .home-menu-page-settings .sound-toggle span::before {
    width: 22px;
    height: 22px;
  }

  .home-menu-page-settings .sound-toggle.is-on span::before {
    transform: translateX(20px);
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control {
    min-height: 84px;
    padding: 9px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control > span {
    grid-template-columns: 44px minmax(0, 1fr) 58px;
    gap: 8px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control-icon {
    width: 40px;
    height: 40px;
    font-size: 28px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control strong,
  .home-menu-page-settings .home-sound-settings-panel .sound-toggle strong {
    font-size: 14px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control output {
    width: 54px;
    height: 30px;
    font-size: 14px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle {
    min-height: 52px;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 8px;
    padding: 8px 9px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle span {
    width: 52px;
    height: 30px;
    padding: 3px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle span::before {
    width: 24px;
    height: 24px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle.is-on span::before {
    transform: translateX(22px);
  }

  .home-menu-page-settings .home-back-menu-button {
    top: 66px;
    left: calc((100vw - min(420px, 94vw)) / 2 - 6px) !important;
    bottom: auto;
    width: min(142px, 42vw);
    height: 43px;
  }

  .home-back-menu-button {
    gap: 8px;
    padding: 0;
    font-size: 16px;
  }

  .home-menu-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(318px, 100%);
    gap: 5px 7px;
    margin-top: -3px;
  }

  .waiting-players-card {
    min-height: 300px;
    gap: 12px;
    padding: 24px 14px 20px;
  }

  .waiting-players-card h2 {
    font-size: 25px;
  }

  .waiting-players-card p {
    font-size: 15px;
  }

  .waiting-player-row {
    gap: 10px;
  }

  .waiting-player-slot {
    width: 66px;
    height: 66px;
    border-width: 4px;
  }

  .waiting-player-icon {
    width: 40px;
    height: 50px;
  }

  .waiting-player-icon::before {
    width: 25px;
    height: 25px;
  }

  .waiting-player-icon::after {
    width: 37px;
    height: 29px;
  }

  .waiting-progress {
    width: 80%;
  }

  .waiting-players-card strong {
    width: min(100%, 238px);
    grid-template-columns: 30px minmax(0, max-content) 30px;
    font-size: 20px;
  }

  .waiting-player-count {
    min-width: 30px;
  }

  .waiting-players-card .waiting-ellipsis {
    width: 30px;
    font-size: 20px;
  }
}

@media (max-width: 480px) {
  .home-viewport:not(.game-viewport) .home-scale {
    width: calc(100vw / var(--lobby-scale));
    height: calc(100dvh / var(--lobby-scale));
    max-height: calc(100dvh / var(--lobby-scale));
  }

  .home-hero {
    width: 100%;
    height: 100%;
    padding: calc(10px / var(--lobby-scale)) 0 calc(12px / var(--lobby-scale));
  }

  .home-layout {
    width: min(430px, calc(100vw / var(--lobby-scale) - 26px));
    height: 100%;
    min-height: 0;
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr);
    align-content: center;
    justify-items: center;
    gap: 16px;
    transform: none;
  }

  .home-main-menu {
    display: contents;
  }

  .home-logo {
    order: 1;
    width: min(184px, 50vw);
    max-height: 88px;
    margin: 0 0 6px;
    align-self: end;
  }

  .home-player-card {
    order: 2;
    width: min(380px, 100%);
    height: auto;
    grid-template-rows: 38px auto auto minmax(0, 1fr);
    border-width: 2px;
    border-radius: 10px;
  }

  .home-player-card header {
    height: 38px;
    min-height: 38px;
    padding: 0 14px;
    font-size: 20px;
  }

  .home-player-main {
    grid-template-columns: 66px minmax(0, 1fr) 54px;
    gap: 9px;
    padding: 9px 11px;
  }

  .home-player-photo-upload,
  .avatar.home-player-avatar {
    width: 66px;
    height: 66px;
  }

  .avatar.home-player-avatar {
    border-radius: 8px;
    font-size: 26px;
  }

  .home-player-photo-upload > span {
    display: none;
  }

  .home-player-summary {
    gap: 3px;
  }

  .home-player-summary h2 {
    margin-bottom: 3px;
    font-size: 16px;
  }

  .home-player-summary p {
    font-size: 12.5px;
  }

  .home-player-grade .grade-shield {
    width: 50px;
    height: 64px;
  }

  .home-player-progress {
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    padding: 0 11px 9px;
  }

  .home-progress-track {
    height: 27px;
    border-radius: 5px;
  }

  .home-progress-track span {
    inset: 5px auto 5px 5px;
  }

  .home-player-progress strong {
    font-size: 11.5px;
  }

  .home-next-grade {
    min-height: 26px;
    border-radius: 5px;
    font-size: 11.5px;
  }

  .home-player-stats {
    margin: 0 10px 10px;
    padding: 10px 10px;
    grid-template-rows: repeat(6, 44px);
    border-radius: 6px;
  }

  .home-stat-row {
    min-height: 44px;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
    padding: 0 7px;
  }

  .home-stat-icon {
    width: 34px;
    height: 34px;
    font-size: 19px;
  }

  .home-stat-icon img {
    width: 34px;
    height: 34px;
  }

  .home-stat-icon.grade-icon .grade-shield,
  .home-stat-icon.home-team-grade .grade-shield {
    width: 30px;
    height: 38px;
  }

  .home-stat-icon img.home-team-empty-icon {
    width: 34px;
    height: 34px;
  }

  .home-stat-row div {
    gap: 2px;
  }

  .home-stat-row strong {
    font-size: 10.5px;
  }

  .home-stat-row b {
    font-size: 13px;
  }

  .home-content-row,
  .home-hero.is-exiting .home-content-row,
  .home-hero.screen-exit-right .home-content-row,
  .home-hero.screen-exit-left .home-content-row {
    display: none;
  }

  .home-menu-actions {
    order: 3;
    width: min(430px, 100%);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 12px;
    margin-top: 14px;
    align-self: start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-shard {
    animation: none;
    display: none;
  }
}

.lobby-scale .topbar {
  height: 132px;
  grid-template-columns: 1fr;
  place-items: center;
}

.lobby-scale .brand {
  justify-content: center;
}

.lobby-scale .top-actions {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 36px;
}

.lobby-scale .like-box {
  justify-self: end;
  margin-top: 26px;
}

.lobby-scale .lobby-grid {
  grid-template-columns: minmax(300px, 370px) minmax(430px, 1fr) minmax(300px, 360px);
}

.game-scale .game-top {
  grid-template-columns: 370px 1fr;
}

.game-scale .game-bottom {
  grid-template-columns: 480px minmax(0, 1fr) 480px;
}

.game-scale .game-status {
  grid-template-columns: minmax(0, var(--status-left-width)) minmax(300px, 1fr);
}

.game-scale .metric-grid {
  grid-template-columns: var(--metric-letter-width) var(--metric-time-width) var(--metric-round-width) minmax(300px, 1fr);
}

.game-scale .answer-panel {
  grid-template-columns: repeat(var(--answer-columns, 5), minmax(0, 1fr));
}

.game-scale .waiting-panel {
  grid-template-columns: 1fr;
}

@media (min-width: 600px) and (max-width: 1120px) {
  .game-scale .game-top {
    grid-template-columns: 318px minmax(0, 1fr);
  }

  .game-scale .game-bottom {
    grid-template-columns: minmax(300px, 1fr) minmax(260px, 0.78fr) minmax(300px, 1fr);
  }

  .game-scale .game-status {
    grid-template-columns: minmax(0, var(--status-left-width)) minmax(220px, 1fr);
  }

  .game-scale .metric-grid {
    grid-template-columns: var(--metric-letter-width) var(--metric-time-width) var(--metric-round-width) minmax(220px, 1fr);
  }

  .game-scale .metric-card header,
  .game-scale .metric-card strong,
  .game-scale .room-info-card strong,
  .game-scale .room-info-card span,
  .game-scale .status-state,
  .game-scale .status-state strong,
  .game-scale .status-state span,
  .game-scale .next-match-warning,
  .game-scale .change-room,
  .game-scale .answer-card span,
  .game-scale .answer-card input,
  .game-scale .legend-box,
  .game-scale .result-table,
  .game-scale .result-table th,
  .game-scale .result-table td,
  .game-scale .result-table td small,
  .game-scale .podium-ribbon,
  .game-scale .podium-player-card strong,
  .game-scale .podium-grade span,
  .game-scale .podium-points,
  .game-scale .podium-points small,
  .game-scale .stop-copy,
  .game-scale .stop-copy strong,
  .game-scale .stop-copy small,
  .game-scale .stop-copy span {
    font-weight: 1000;
    -webkit-font-smoothing: auto;
    text-rendering: geometricPrecision;
  }

  .game-scale .answer-card input,
  .game-scale .result-table td,
  .game-scale .room-info-card span {
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.48);
  }
}

@media (max-width: 1320px), (hover: none), (pointer: coarse), (max-aspect-ratio: 1/1) {
  .home-back-menu-button .home-back-menu-icon {
    width: 28px !important;
    height: 28px !important;
    flex-basis: 28px !important;
    font-size: 28px !important;
    line-height: 1 !important;
    transform: scaleX(-1) scale(1.55) translateY(-1px) !important;
    text-shadow: none !important;
  }
}

@media (max-width: 1320px) and (min-width: 901px) {
  .team-page-shell {
    grid-template-rows: auto 258px minmax(0, 1fr);
    gap: 30px;
  }

  .team-create-page-shell {
    width: min(1080px, 100%);
    gap: 30px;
  }

  .team-top-grid {
    gap: 14px;
  }

  .team-page-heading {
    grid-template-columns: 1fr auto 1fr;
    gap: 10px;
    margin-top: 0;
    font-size: 24px;
  }

  .team-create-panel {
    width: 100%;
    height: min(500px, 100%);
    grid-template-columns: minmax(185px, 0.56fr) minmax(0, 1.44fr);
    gap: 18px;
    padding: 18px 28px 16px;
  }

  .team-create-page-shell .team-create-back-button {
    top: -18px !important;
    left: 0 !important;
  }

  .team-create-hero {
    gap: 8px;
    padding-right: 16px;
  }

  .team-create-badge {
    width: 140px;
    height: 158px;
    margin-bottom: 3px;
  }

  .team-create-badge::before {
    width: 136px;
    height: 22px;
  }

  .team-create-badge .grade-shield {
    width: 128px;
    height: 150px;
  }

  .team-create-hero h2 {
    font-size: 19px;
  }

  .team-create-hero p {
    font-size: 12px;
  }

  .team-create-form {
    gap: 10px;
  }

  .team-create-field {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 5px 9px;
  }

  .team-create-field-icon {
    width: 34px;
    height: 34px;
  }

  .team-create-field-icon img {
    width: 32px;
    height: 32px;
  }

  .team-create-field-copy strong {
    font-size: 14px;
  }

  .team-create-field-copy em {
    font-size: 11px;
  }

  .team-create-input-wrap input {
    height: 42px;
    padding: 0 14px;
    font-size: 14px;
  }

  .team-create-input-icon {
    right: 13px;
  }

  .team-create-info {
    min-height: 48px;
    gap: 8px;
    padding: 8px 11px;
  }

  .team-create-info p {
    font-size: 11px;
  }

  .team-create-submit {
    height: 42px;
    margin-top: 7px;
    font-size: 15px;
  }

  .team-create-note {
    font-size: 10px;
  }

  .team-title-ribbon h1 {
    font-size: 20px;
  }

  .team-profile-body {
    grid-template-columns: 170px minmax(0, 1fr);
    gap: 16px 12px;
  }

  .team-profile-card {
    height: 235px;
    max-height: 235px;
  }

  .team-detail-stack {
    gap: 9px;
  }

  .team-grade-icon,
  .team-grade-icon .grade-shield {
    width: 96px;
    height: 104px;
    --grade-icon-width: 108%;
    --grade-icon-height: 108%;
  }

  .team-grade-emblem strong {
    font-size: 13px;
  }

  .team-grade-kicker {
    font-size: 10px;
  }

  .team-detail-row {
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 14px;
  }

  .team-detail-icon {
    width: 50px;
    height: 50px;
  }

  .team-detail-icon-svg {
    width: 32px;
    height: 32px;
  }

  .team-detail-icon-img {
    width: 48px;
    height: 48px;
  }

  .team-detail-copy,
  .team-detail-row.is-graduation .team-detail-copy {
    min-height: 50px;
    gap: 3px;
    padding: 5px 11px;
  }

  .team-detail-copy span {
    font-size: 11px;
  }

  .team-detail-copy strong {
    font-size: 13px;
  }

  .team-detail-row.is-graduation .team-detail-copy strong {
    font-size: 12px;
  }

  .team-grade-progress {
    grid-template-columns: minmax(0, 1fr) minmax(156px, 0.58fr);
    grid-auto-rows: 50px;
    min-height: 50px;
    gap: 10px;
    margin-top: 0;
    padding: 0;
  }

  .team-grade-progress-head span {
    font-size: 12px;
  }

  .team-grade-progress-head strong {
    font-size: 10px;
  }

  .team-grade-progress-track {
    height: 100%;
  }

  .team-grade-progress-track strong {
    font-size: 11px;
  }

  .team-grade-progress-track > span {
    inset: 5px auto 5px 5px;
    max-width: calc(100% - 10px);
  }

  .team-next-grade-box {
    min-height: 0;
    height: 100%;
    font-size: 11px;
    padding: 0 8px;
  }

  .team-shield.is-large {
    width: 88px;
    height: 108px;
  }

  .team-green-command {
    font-size: 12px;
  }

  .team-summary-panel {
    grid-template-rows: minmax(0, 1fr);
    gap: 0;
    padding: 12px 16px 10px;
  }

  .team-summary-panel h2 {
    font-size: 16px;
    line-height: 1.35;
  }

  .team-summary-card strong {
    font-size: 21px;
    line-height: 1.18;
  }

  .team-detail-copy strong {
    font-size: 13px;
  }

  .team-summary-card {
    min-height: 74px;
    grid-template-columns: 74px minmax(0, 138px);
    gap: 12px;
    padding: 7px 10px;
  }

  .team-summary-icon {
    width: 66px;
    height: 66px;
  }

  .team-summary-icon-svg,
  .team-summary-icon-img,
  .team-medal-icon {
    width: 64px;
    height: 64px;
  }

  .team-summary-card span {
    font-size: 12px;
  }

  .team-danger-command {
    height: 48px;
    font-size: 18px;
  }

  .team-profile-danger-command {
    height: 26px;
    max-width: 134px;
    gap: 0;
    padding: 0;
    font-size: 0;
  }

  .team-profile-danger-command .team-danger-icon {
    display: none;
  }

  .team-danger-icon {
    width: 28px;
    height: 28px;
    flex-basis: 28px;
  }

  .team-danger-command.team-profile-danger-command {
    height: 26px;
    max-width: 134px;
    gap: 0;
    padding: 0;
    font-size: 0;
  }

  .team-danger-command.team-profile-danger-command .team-danger-icon {
    display: none;
  }

  .team-members-head,
  .team-member-row {
    grid-template-columns: 36px 18px minmax(202px, 1.28fr) 98px 92px minmax(126px, 0.84fr) 86px 92px;
    padding: 0 10px;
  }

  .team-members-panel {
    --team-points-shift: -78px;
    --team-total-points-extra-shift: 28px;
    --team-role-shift: -22px;
    --team-role-title-extra-shift: 14px;
    --team-grade-title-left: 344px;
    --team-grade-shift: -22px;
  }

  .team-member-user strong,
  .team-member-points {
    font-size: 14px;
  }

  .team-member-user {
    grid-template-columns: minmax(0, 1fr);
    padding-left: 50px;
  }

  .team-member-photo {
    width: 42px;
    height: 42px;
  }

  .team-remove-member-button {
    width: 96px;
    padding: 0 6px;
  }

  .team-remove-member-button span {
    font-size: 10px;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .home-menu-page-team {
    padding: 64px 14px 24px;
  }

  .home-menu-page-team .home-back-menu-button {
    top: 66px;
    right: auto;
    left: 16px;
    width: min(142px, 42vw);
    height: 43px;
  }

  .home-menu-page-team .team-page-content {
    width: min(420px, 94vw);
    height: auto;
    max-height: calc((100vh - 104px) / var(--lobby-scale));
    max-height: calc((100dvh - 104px) / var(--lobby-scale));
    margin-top: 8px;
    overflow-y: auto;
    padding: 0 4px 18px;
  }

  .team-page-shell {
    height: auto;
    display: grid;
    grid-template-rows: none;
    gap: 12px;
  }

  .team-create-page-shell {
    gap: 30px;
  }

  .team-create-panel {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 18px 14px 16px;
  }

  .home-menu-page-team.is-team-create .home-back-menu-button {
    left: calc((100vw - min(420px, 94vw)) / 2 + 4px) !important;
  }

  .team-create-hero {
    height: auto;
    gap: 8px;
    padding: 0 0 16px;
    border-right: 0;
    border-bottom: 1px solid rgba(0, 217, 151, 0.28);
  }

  .team-create-badge {
    width: 124px;
    height: 140px;
    margin-bottom: 4px;
  }

  .team-create-badge::before {
    width: 120px;
    height: 20px;
  }

  .team-create-badge .grade-shield {
    width: 112px;
    height: 132px;
  }

  .team-create-hero h2 {
    font-size: 20px;
  }

  .team-create-hero p {
    width: min(280px, 100%);
    font-size: 12px;
  }

  .team-create-form {
    gap: 12px;
  }

  .team-create-field {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 6px 9px;
  }

  .team-create-field-icon {
    width: 36px;
    height: 36px;
  }

  .team-create-field-icon img {
    width: 34px;
    height: 34px;
  }

  .team-create-field-copy strong {
    font-size: 13px;
  }

  .team-create-field-copy em {
    font-size: 11px;
  }

  .team-create-input-wrap input {
    height: 46px;
    padding: 0 12px;
    font-size: 13px;
  }

  .team-create-input-icon {
    right: 13px;
    width: 24px;
    height: 24px;
  }

  .team-create-input-icon img {
    width: 24px;
    height: 24px;
  }

  .team-create-input-icon.is-quote {
    font-size: 40px;
  }

  .team-create-info {
    min-height: 0;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 8px;
    padding: 9px;
  }

  .team-create-info span {
    width: 26px;
    height: 26px;
    border-width: 3px;
    font-size: 17px;
  }

  .team-create-info p {
    font-size: 11px;
    line-height: 1.28;
  }

  .team-create-submit {
    width: 100%;
    height: 44px;
    margin-top: 6px;
    font-size: 15px;
  }

  .team-create-note {
    margin-top: -4px;
    font-size: 10px;
    line-height: 1.25;
  }

  .team-top-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .team-profile-panel {
    padding: 14px 12px 12px;
  }

  .team-title-ribbon {
    width: auto;
    height: auto;
    grid-template-columns: minmax(42px, 1fr) auto minmax(42px, 1fr);
    gap: 8px;
    margin-bottom: 10px;
    padding: 0;
  }

  .team-title-ribbon h1 {
    padding-left: 0;
    min-height: 24px;
    font-size: 17px;
  }

  .team-profile-body {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    gap: 14px;
  }

  .team-profile-card {
    grid-template-columns: 1fr;
    width: min(164px, 48vw);
    place-items: center;
    justify-self: center;
    padding: 0;
  }

  .team-grade-icon,
  .team-grade-icon .grade-shield {
    width: 86px;
    height: 96px;
    --grade-icon-width: 106%;
    --grade-icon-height: 106%;
  }

  .team-grade-kicker {
    font-size: 10px;
  }

  .team-grade-emblem strong {
    font-size: 12px;
  }

  .team-grade-progress-head {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .team-grade-progress-head strong {
    text-align: left;
    white-space: normal;
  }

  .team-grade-progress {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: 8px;
    min-height: 0;
  }

  .team-grade-progress-track {
    height: 38px;
  }

  .team-grade-progress-track > span {
    inset: 6px auto 6px 6px;
    max-width: calc(100% - 12px);
  }

  .team-next-grade-box {
    min-height: 34px;
    height: auto;
    font-size: 12px;
  }

  .team-shield.is-large {
    width: 94px;
    height: 116px;
  }

  .team-shield-center {
    width: 24px;
    height: 24px;
  }

  .team-mini-icon {
    width: 17px;
    height: 17px;
  }

  .team-green-command {
    height: 38px;
    gap: 8px;
    font-size: 12px;
  }

  .team-command-icon {
    width: 18px;
    height: 18px;
    flex-basis: 18px;
  }

  .team-detail-stack {
    height: auto;
    grid-column: 1;
    grid-row: auto;
    align-content: start;
    gap: 7px;
  }

  .team-detail-row {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 9px;
  }

  .team-detail-icon {
    width: 42px;
    height: 42px;
  }

  .team-detail-icon-svg {
    width: 30px;
    height: 30px;
  }

  .team-detail-icon-img {
    width: 42px;
    height: 42px;
  }

  .team-detail-copy {
    min-height: 44px;
    gap: 4px;
    padding: 6px 10px;
  }

  .team-detail-copy span {
    font-size: 10px;
  }

  .team-detail-copy strong {
    font-size: 13px;
  }

  .team-detail-value-input {
    height: 18px;
    font-size: 13px;
  }

  .team-summary-panel {
    grid-template-rows: auto;
    gap: 0;
    padding: 14px 12px 12px;
  }

  .team-summary-panel h2 {
    height: auto;
    grid-template-columns: minmax(42px, 1fr) auto minmax(42px, 1fr);
    gap: 8px;
    margin: 0;
    padding: 0;
    font-size: 15px;
  }

  .team-summary-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .team-summary-card {
    min-height: 76px;
    grid-template-columns: 70px minmax(0, 130px);
    gap: 10px;
    padding: 9px 12px;
  }

  .team-summary-icon {
    width: 62px;
    height: 62px;
  }

  .team-summary-icon-svg,
  .team-summary-icon-img,
  .team-medal-icon {
    width: 60px;
    height: 60px;
  }

  .team-medal-icon span {
    width: 28px;
    height: 28px;
  }

  .team-summary-card span {
    font-size: 13px;
  }

  .team-summary-card strong {
    font-size: 23px;
  }

  .team-danger-command {
    height: 50px;
    gap: 10px;
    font-size: 18px;
  }

  .team-profile-danger-command {
    width: min(164px, 48vw);
    justify-self: center;
    height: 28px;
    max-width: 142px;
    gap: 0;
    padding: 0;
    font-size: 0;
  }

  .team-profile-danger-command .team-danger-icon {
    display: none;
  }

  .team-danger-icon {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
  }

  .team-members-panel {
    --team-points-shift: -32px;
    --team-total-points-extra-shift: 14px;
    --team-role-shift: -10px;
    --team-role-title-extra-shift: 8px;
    --team-grade-title-left: 180px;
    --team-grade-shift: -12px;
    height: 380px;
    overflow: hidden;
    grid-template-rows: 36px minmax(0, 1fr);
    padding: 10px;
  }

  .team-members-head,
  .team-member-row {
    min-width: 0;
    grid-template-columns: 28px 12px minmax(104px, 0.76fr) 66px 60px minmax(78px, 0.86fr) 58px 62px;
    padding: 0 6px;
  }

  .team-members-head span {
    font-size: 11px;
  }

  .team-members-body {
    min-width: 0;
  }

  .team-member-row {
    min-height: 52px;
  }

  .team-rank-badge {
    width: auto;
    height: auto;
    border-width: 0;
    font-size: 16px;
  }

  .team-member-user {
    grid-template-columns: minmax(0, 1fr);
    padding-left: 42px;
    gap: 8px;
  }

  .team-member-user .grade-shield {
    width: 30px;
    height: 38px;
  }

  .team-member-photo {
    width: 36px;
    height: 36px;
  }

  .team-member-user strong,
  .team-member-points {
    font-size: 12px;
  }

  .team-contribution {
    grid-template-columns: minmax(36px, 1fr) 30px;
    gap: 4px;
  }

  .team-contribution-track {
    height: 18px;
  }

  .team-contribution strong,
  .team-member-role {
    font-size: 11px;
    min-height: 34px;
  }

  .team-role-crown {
    width: 30px;
    height: 30px;
  }

  .team-remove-member-button {
    width: 68px;
    height: 34px;
    gap: 3px;
    padding: 0 4px;
  }

  .team-remove-icon {
    width: 18px;
    height: 18px;
  }

  .team-empty-panel {
    min-height: 360px;
    padding: 20px;
  }

  .team-empty-panel h1 {
    font-size: 28px;
  }

  .team-empty-panel p {
    font-size: 17px;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .home-menu-page-ranking .home-back-menu-button,
  .home-menu-page-team .home-back-menu-button,
  .home-menu-page-settings .home-back-menu-button {
    top: 66px;
    right: auto;
    left: 16px !important;
    width: min(142px, 42vw);
    height: 43px;
    padding: 0;
  }

  .home-ranking-heading,
  .team-page-heading,
  .home-menu-page-settings .home-page-title {
    grid-template-columns: 1fr auto 1fr;
    gap: 10px;
    margin-top: 0;
    font-size: 24px;
  }

  .home-ranking-panel,
  .team-page-shell,
  .home-menu-page-settings {
    gap: 30px;
  }
}

@media (min-width: 721px) and (max-width: 1320px) {
  .home-menu-page-ranking,
  .home-menu-page-team,
  .home-menu-page-settings {
    gap: 38px;
    padding: 74px 44px 74px;
  }

  .home-menu-page-ranking .home-back-menu-button,
  .home-menu-page-team .home-back-menu-button,
  .home-menu-page-settings .home-back-menu-button {
    top: 56px;
    right: auto;
    left: 44px !important;
    width: 150px;
    height: 45px;
    padding: 0;
  }

  .home-ranking-heading,
  .team-page-heading,
  .home-menu-page-settings .home-page-title {
    grid-template-columns: minmax(92px, 180px) auto minmax(92px, 180px);
    gap: 18px;
    margin: -22px 0 0;
    font-size: 34px;
  }

  .home-menu-page-ranking .home-page-content,
  .home-menu-page-team .team-page-content,
  .home-menu-page-settings .home-page-content {
    width: min(1580px, calc(100vw - 88px));
  }

  .home-ranking-panel,
  .team-page-shell,
  .home-menu-page-settings {
    gap: 38px;
  }

  .team-create-page-shell {
    width: min(1080px, 100%);
    gap: 38px;
  }

  .team-create-page-shell .team-create-back-button {
    top: -18px !important;
    left: 0 !important;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .team-create-page-shell {
    width: 100%;
    gap: 30px;
  }

  .team-create-page-shell .team-create-back-button {
    top: 0 !important;
    left: 0 !important;
  }
}

.team-create-page-shell .team-create-back-button {
  top: -18px !important;
  left: 0 !important;
}

body,
body *,
body *::before,
body *::after,
button,
input,
textarea,
select,
option,
svg,
svg * {
  font-family: Helvetica !important;
}

@media (max-width: 480px) {
  .home-menu-page-team:not(.is-team-create) {
    --team-mobile-top-gap: 24px;
    align-content: stretch;
    grid-template-rows: minmax(0, 1fr) auto;
    gap: 6px;
    padding: var(--team-mobile-top-gap) 0 max(16px, env(safe-area-inset-bottom));
  }

  .home-menu-page-team:not(.is-team-create) .home-back-menu-button {
    position: static;
    order: 2;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 174px;
    height: 50px;
    margin-top: 2px;
    justify-self: center;
  }

  .home-menu-page-team:not(.is-team-create) .home-page-content {
    order: 1;
    width: 100%;
    height: 100%;
    max-height: none;
    margin-top: 0;
    overflow: hidden;
    padding: 0;
  }

  .home-menu-page-team:not(.is-team-create) .team-page-shell {
    width: 100%;
    height: 100%;
    grid-template-rows: auto auto auto;
    align-content: start;
    gap: 8px;
    overflow-y: auto;
    overflow-x: hidden;
    padding-bottom: 8px;
    scrollbar-width: thin;
  }

  .home-menu-page-team:not(.is-team-create) .team-page-heading {
    width: min(350px, calc(100vw - 34px));
    justify-self: center;
    grid-template-columns: minmax(24px, 1fr) auto minmax(24px, 1fr);
    gap: 8px;
    margin: 0;
    font-size: 19px;
  }

  .home-menu-page-team:not(.is-team-create) .team-top-grid,
  .home-menu-page-team:not(.is-team-create) .team-members-panel {
    width: min(540px, calc((100vw / var(--lobby-scale)) - 22px));
    justify-self: center;
  }

  .home-menu-page-team:not(.is-team-create) .team-top-grid {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: calc(var(--team-mobile-top-gap) - 10px);
  }

  .home-menu-page-team:not(.is-team-create) .team-profile-panel,
  .home-menu-page-team:not(.is-team-create) .team-summary-panel,
  .home-menu-page-team:not(.is-team-create) .team-members-panel {
    overflow: hidden;
    padding: 10px 12px;
  }

  .home-menu-page-team:not(.is-team-create) .team-summary-panel {
    min-height: 116px;
  }

  .home-menu-page-team:not(.is-team-create) .team-profile-panel {
    height: auto;
    min-height: 228px;
    grid-template-rows: auto;
    align-items: stretch;
  }

  .home-menu-page-team:not(.is-team-create) .team-profile-body {
    grid-template-columns: 136px minmax(0, 1fr);
    grid-template-rows: auto;
    align-items: stretch;
    gap: 10px;
    min-height: 204px;
  }

  .home-menu-page-team:not(.is-team-create) .team-profile-card {
    grid-column: 1;
    grid-row: 1;
    width: 136px;
    height: 100%;
    min-height: 204px;
    max-height: none;
    justify-self: center;
  }

  .home-menu-page-team:not(.is-team-create) .team-grade-emblem {
    justify-items: center;
    text-align: center;
  }

  .home-menu-page-team:not(.is-team-create) .team-grade-icon,
  .home-menu-page-team:not(.is-team-create) .team-grade-icon .grade-shield {
    width: 74px;
    height: 88px;
  }

  .home-menu-page-team:not(.is-team-create) .team-grade-icon {
    justify-self: center;
    margin-inline: auto;
  }

  .home-menu-page-team:not(.is-team-create) .team-grade-emblem strong {
    font-size: 10.5px;
  }

  .home-menu-page-team:not(.is-team-create) .team-grade-kicker {
    font-size: 8px;
  }

  .home-menu-page-team:not(.is-team-create) .team-profile-danger-command {
    width: 118px;
    max-width: 118px;
    height: 30px;
    gap: 4px;
    justify-self: center;
    margin-inline: auto;
    padding: 0 5px;
    font-size: 6.6px;
  }

  .home-menu-page-team:not(.is-team-create) .team-profile-danger-command .team-danger-icon {
    display: none;
    width: 12px;
    height: 12px;
    flex-basis: 12px;
  }

  .home-menu-page-team:not(.is-team-create) .team-detail-stack {
    grid-column: 2;
    grid-row: 1;
    align-content: stretch;
    gap: 6px;
  }

  .home-menu-page-team:not(.is-team-create) .team-detail-row {
    grid-template-columns: 36px minmax(0, 1fr);
    align-items: stretch;
    gap: 7px;
  }

  .home-menu-page-team:not(.is-team-create) .team-detail-icon,
  .home-menu-page-team:not(.is-team-create) .team-detail-icon-svg,
  .home-menu-page-team:not(.is-team-create) .team-detail-icon-img {
    width: 36px;
    height: 36px;
  }

  .home-menu-page-team:not(.is-team-create) .team-grade-progress-track strong {
    font-size: 9px;
  }

  .home-menu-page-team:not(.is-team-create) .team-detail-copy {
    min-height: 36px;
    gap: 2px;
    padding: 5px 9px;
  }

  .home-menu-page-team:not(.is-team-create) .team-detail-copy span {
    font-size: 7.4px;
  }

  .home-menu-page-team:not(.is-team-create) .team-detail-copy strong {
    font-size: 10px;
  }

  .home-menu-page-team:not(.is-team-create) .team-grade-progress {
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: 6px;
    min-height: 0;
  }

  .home-menu-page-team:not(.is-team-create) .team-grade-progress-head {
    grid-template-columns: 1fr;
    gap: 4px;
  }

  .home-menu-page-team:not(.is-team-create) .team-grade-progress-track {
    height: 30px;
  }

  .home-menu-page-team:not(.is-team-create) .team-next-grade-box {
    min-height: 28px;
    height: auto;
    font-size: 8.4px;
  }

  .home-menu-page-team:not(.is-team-create) .team-summary-grid {
    height: 100%;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: stretch;
    gap: 11px;
  }

  .home-menu-page-team:not(.is-team-create) .team-summary-card {
    height: 100%;
    min-height: 92px;
    grid-template-columns: 1fr;
    justify-content: center;
    justify-items: center;
    gap: 4px;
    padding: 7px 7px;
  }

  .home-menu-page-team:not(.is-team-create) .team-summary-icon,
  .home-menu-page-team:not(.is-team-create) .team-summary-icon-img,
  .home-menu-page-team:not(.is-team-create) .team-summary-icon-svg {
    width: 30px;
    height: 30px;
  }

  .home-menu-page-team:not(.is-team-create) .team-summary-card div {
    max-width: 100%;
    justify-items: center;
    gap: 5px;
    text-align: center;
  }

  .home-menu-page-team:not(.is-team-create) .team-summary-card span {
    max-width: 100%;
    overflow: visible;
    font-size: 6.8px;
    line-height: 1.16;
    text-align: center;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .home-menu-page-team:not(.is-team-create) .team-summary-card strong {
    max-width: 100%;
    overflow: visible;
    font-size: 14px;
    line-height: 1.14;
    text-align: center;
    text-overflow: clip;
    white-space: nowrap;
  }

  .home-menu-page-team:not(.is-team-create) .team-members-panel {
    --team-member-mobile-cols: 20px 28px minmax(86px, 120px) 66px 44px 44px 82px 48px 24px;
    height: auto;
    min-height: 0;
    grid-template-rows: 18px minmax(0, 1fr);
    margin-top: 12px;
    overflow: hidden;
  }

  .home-menu-page-team:not(.is-team-create) .team-members-head {
    min-height: 18px;
    display: grid;
    grid-template-columns: var(--team-member-mobile-cols);
    align-items: center;
    padding: 0 5px;
    column-gap: 4px;
  }

  .home-menu-page-team:not(.is-team-create) .team-members-head::after {
    content: "GRADUAÇÃO";
    position: static;
    grid-column: 4;
    grid-row: 1;
    color: #fff;
    font-size: 6px;
    line-height: 1;
    text-align: left;
    transform: none;
    white-space: nowrap;
  }

  .home-menu-page-team:not(.is-team-create) .team-members-head span {
    min-width: 0;
    overflow: hidden;
    font-size: 6px;
    line-height: 1;
    text-overflow: ellipsis;
    transform: none !important;
    white-space: nowrap;
  }

  .home-menu-page-team:not(.is-team-create) .team-members-head span:nth-child(1) {
    grid-column: 1;
  }

  .home-menu-page-team:not(.is-team-create) .team-members-head span:nth-child(2),
  .home-menu-page-team:not(.is-team-create) .team-members-head span:nth-child(8) {
    display: none;
  }

  .home-menu-page-team:not(.is-team-create) .team-members-head span:nth-child(3) {
    grid-column: 2 / 4;
    padding-left: 4px;
  }

  .home-menu-page-team:not(.is-team-create) .team-members-head span:nth-child(4) {
    grid-column: 5;
  }

  .home-menu-page-team:not(.is-team-create) .team-members-head span:nth-child(5) {
    grid-column: 6;
  }

  .home-menu-page-team:not(.is-team-create) .team-members-head span:nth-child(6) {
    grid-column: 7;
  }

  .home-menu-page-team:not(.is-team-create) .team-members-head span:nth-child(7) {
    grid-column: 8;
  }

  .home-menu-page-team:not(.is-team-create) .team-members-body {
    overflow: visible;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-row {
    min-height: 33px;
    display: grid;
    grid-template-columns: var(--team-member-mobile-cols);
    grid-template-rows: 1fr;
    gap: 0 4px;
    margin-bottom: 3px;
    padding: 0 5px;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-position {
    grid-column: 1;
    grid-row: 1;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-photo-cell {
    grid-column: 2;
    grid-row: 1;
    place-items: center;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-user {
    display: contents;
    padding-left: 0;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-name {
    display: contents;
    min-width: 0;
    overflow: hidden;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-grade {
    grid-column: 4;
    grid-row: 1;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 6px;
    min-width: 0;
    overflow: hidden;
    transform: none;
    justify-self: start;
    align-self: center;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-grade em {
    font-size: 6.5px;
    white-space: nowrap;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-user .grade-shield {
    width: 16px;
    height: 20px;
  }

  .home-menu-page-team:not(.is-team-create) .team-rank-badge {
    font-size: 10px;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-row > .team-member-points:nth-of-type(4) {
    grid-column: 5;
    grid-row: 1;
    transform: none;
    justify-self: start;
    align-self: center;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-row > .team-member-points:nth-of-type(5) {
    grid-column: 6;
    grid-row: 1;
    transform: none;
    justify-self: start;
    align-self: center;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-row > .team-contribution {
    grid-column: 7;
    grid-row: 1;
    width: 80px;
    justify-self: start;
    align-self: center;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-role {
    grid-column: 8;
    grid-row: 1;
    min-height: 20px;
    justify-self: start;
    align-self: center;
    transform: none;
  }

  .home-menu-page-team:not(.is-team-create) .team-remove-member-button {
    grid-column: 9;
    grid-row: 1;
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    justify-self: end;
    gap: 0;
    padding: 0;
    border-radius: 5px;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-row > span:last-child:not([class]) {
    display: none;
  }

  .home-menu-page-team:not(.is-team-create) .team-remove-member-button span {
    display: none;
  }

  .home-menu-page-team:not(.is-team-create) .team-remove-icon {
    width: 12px;
    height: 12px;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-photo {
    width: 22px;
    height: 22px;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-user strong,
  .home-menu-page-team:not(.is-team-create) .team-member-points {
    overflow: hidden;
    font-size: 7px;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .home-menu-page-team:not(.is-team-create) .team-member-user strong {
    grid-column: 3;
    grid-row: 1;
    align-self: center;
  }

  .home-menu-page-team:not(.is-team-create) .team-contribution {
    grid-template-columns: 58px 18px;
    gap: 4px;
    align-items: center;
  }

  .home-menu-page-team:not(.is-team-create) .team-contribution-track {
    height: 7px;
    align-self: center;
  }

  .home-menu-page-team:not(.is-team-create) .team-contribution strong,
  .home-menu-page-team:not(.is-team-create) .team-member-role {
    overflow: hidden;
    font-size: 6px;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .home-menu-page-team:not(.is-team-create) .team-contribution strong {
    position: relative;
    top: 0;
    height: 7px;
    display: flex;
    align-items: center;
    align-self: center;
    justify-self: start;
    transform: none;
    text-align: left;
  }

  .home-menu-page-team:not(.is-team-create) .team-role-crown {
    width: 16px;
    height: 16px;
  }

  .team-confirm-overlay {
    padding: 16px;
  }

  .team-confirm-modal {
    width: min(336px, calc((100vw / var(--lobby-scale)) - 44px));
    min-height: 314px;
    max-height: min(440px, calc((100dvh / var(--lobby-scale)) - 44px));
    grid-template-rows: auto auto auto minmax(92px, 1fr) auto;
    align-content: start;
    padding: 18px 18px 18px;
    border-width: 2px;
    border-radius: 18px;
    overflow: hidden;
  }

  .team-confirm-modal.is-remove-member {
    min-height: 318px;
  }

  .team-confirm-modal::before {
    inset: 6px;
    border-radius: 13px;
  }

  .team-confirm-alert {
    width: 58px;
    height: 58px;
    border-width: 6px;
    font-size: 38px;
  }

  .team-confirm-modal h2 {
    margin: 11px 0 9px;
    font-size: 18px;
    line-height: 1.05;
  }

  .team-confirm-rule {
    margin-bottom: 10px;
  }

  .team-confirm-copy {
    align-content: center;
    gap: 7px;
    min-height: 92px;
    overflow: visible;
    padding: 0 2px;
  }

  .team-confirm-copy p,
  .team-confirm-copy > strong {
    max-width: 100%;
    font-size: 10.5px;
    line-height: 1.22;
  }

  .team-confirm-actions,
  .team-confirm-modal.is-team-invite .team-confirm-actions {
    width: 100%;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    align-self: end;
    gap: 10px;
    margin-top: 12px;
  }

  .team-confirm-modal:is(.is-name-exists, .is-text-blocked, .is-inactivity) .team-confirm-actions,
  .team-confirm-modal.is-team-invite-sent .team-confirm-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .team-confirm-button,
  .team-confirm-modal.is-team-invite .team-confirm-button,
  .team-confirm-modal.is-team-invite-sent .team-confirm-button {
    width: 100%;
    min-width: 0;
    height: 48px;
    gap: 5px;
    padding: 0 7px;
    border-radius: 8px;
    font-size: 11px;
  }

  .team-confirm-button-icon,
  .team-confirm-modal.is-team-invite .team-confirm-button-icon {
    width: 18px;
    height: 18px;
  }

  .team-confirm-button span {
    min-width: 0;
    font-size: inherit;
  }

  .team-invite-overlay {
    padding: max(10px, env(safe-area-inset-top)) 12px max(10px, env(safe-area-inset-bottom));
    overflow-y: auto;
    align-items: center;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite {
    width: min(328px, calc(100vw - 24px));
    min-height: 0;
    max-height: calc(100dvh - 24px);
    grid-template-rows: auto auto auto auto auto;
    align-content: center;
    gap: 0;
    padding: 14px 14px 16px;
    overflow: visible;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-alert {
    width: 44px;
    height: 44px;
    border-width: 5px;
    font-size: 29px;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite h2 {
    margin: 8px 0 7px;
    font-size: 16px;
    line-height: 1;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-rule {
    margin-bottom: 8px;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-copy {
    min-height: 0;
    gap: 6px;
    padding: 0 2px;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-copy p,
  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-copy > strong {
    max-width: 100%;
    font-size: 10.5px;
    line-height: 1.18;
  }

  .team-invite-overlay .team-invite-countdown {
    min-height: 24px;
    margin-top: 9px;
    padding: 0 8px;
    gap: 5px;
  }

  .team-invite-overlay .team-invite-countdown span {
    min-width: 20px;
    font-size: 14px;
  }

  .team-invite-overlay .team-invite-countdown strong {
    font-size: 7.5px;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-actions {
    gap: 8px;
    margin-top: 11px;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-button,
  .team-invite-overlay .team-confirm-modal.is-team-invite-sent .team-confirm-button {
    height: 42px;
    gap: 5px;
    padding: 0 7px;
    font-size: 10.5px;
  }

  .home-menu-page-team.is-team-create {
    --team-create-mobile-top-gap: 34px;
    align-content: stretch;
    grid-template-rows: minmax(0, 1fr);
    gap: 0;
    padding: var(--team-create-mobile-top-gap) 0 max(16px, env(safe-area-inset-bottom));
  }

  .home-menu-page-team.is-team-create .home-back-menu-button {
    position: static;
    order: 3;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 190px;
    height: 58px;
    margin-top: 4px;
    justify-self: center;
  }

  .home-menu-page-team.is-team-create .home-page-content {
    order: 1;
    width: 100%;
    height: 100%;
    max-height: none;
    margin-top: 0;
    overflow: hidden;
    padding: 0;
  }

  .home-menu-page-team.is-team-create .team-create-page-shell {
    width: 100%;
    height: 100%;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 10px;
  }

  .home-menu-page-team.is-team-create .team-page-heading {
    order: 1;
    width: min(350px, calc(100vw - 34px));
    justify-self: center;
    grid-template-columns: minmax(24px, 1fr) auto minmax(24px, 1fr);
    gap: 8px;
    margin: 0;
    font-size: 20px;
  }

  .home-menu-page-team.is-team-create .team-create-panel {
    order: 2;
    width: min(540px, calc((100vw / var(--lobby-scale)) - 22px));
    height: auto;
    min-height: min(600px, 100%);
    max-height: 100%;
    justify-self: center;
    align-self: start;
    margin-top: calc(var(--team-create-mobile-top-gap) - 10px);
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 10px;
    padding: 16px 20px 15px;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: thin;
  }

  .home-menu-page-team.is-team-create .team-create-hero {
    height: auto;
    gap: 6px;
    padding: 0 0 12px;
    border-right: 0;
    border-bottom: 1px solid rgba(0, 217, 151, 0.28);
  }

  .home-menu-page-team.is-team-create .team-create-badge {
    width: 104px;
    height: 118px;
    margin-bottom: 2px;
  }

  .home-menu-page-team.is-team-create .team-create-badge::before {
    width: 100px;
    height: 17px;
    bottom: 1px;
  }

  .home-menu-page-team.is-team-create .team-create-badge .grade-shield {
    width: 94px;
    height: 110px;
  }

  .home-menu-page-team.is-team-create .team-create-hero h2 {
    font-size: 20px;
  }

  .home-menu-page-team.is-team-create .team-create-hero p {
    width: min(270px, 100%);
    font-size: 11px;
    line-height: 1.28;
  }

  .home-menu-page-team.is-team-create .team-create-form {
    gap: 9px;
    align-content: start;
  }

  .home-menu-page-team.is-team-create .team-create-field {
    grid-template-columns: 31px minmax(0, 1fr);
    gap: 4px 8px;
  }

  .home-menu-page-team.is-team-create .team-create-field-icon {
    width: 31px;
    height: 31px;
    border-radius: 7px;
  }

  .home-menu-page-team.is-team-create .team-create-field-icon img {
    width: 29px;
    height: 29px;
  }

  .home-menu-page-team.is-team-create .team-create-field-copy {
    gap: 2px;
  }

  .home-menu-page-team.is-team-create .team-create-field-copy strong {
    font-size: 13px;
  }

  .home-menu-page-team.is-team-create .team-create-field-copy em {
    font-size: 10px;
    line-height: 1.16;
  }

  .home-menu-page-team.is-team-create .team-create-input-wrap input {
    height: 42px;
    padding: 0 12px;
    font-size: 13px;
  }

  .home-menu-page-team.is-team-create .team-create-info {
    min-height: 0;
    grid-template-columns: 25px minmax(0, 1fr);
    gap: 8px;
    padding: 8px 10px;
  }

  .home-menu-page-team.is-team-create .team-create-info span {
    width: 23px;
    height: 23px;
    border-width: 3px;
    font-size: 15px;
  }

  .home-menu-page-team.is-team-create .team-create-info p {
    font-size: 10px;
    line-height: 1.28;
  }

  .home-menu-page-team.is-team-create .team-create-submit {
    width: 100%;
    height: 42px;
    margin-top: 2px;
    font-size: 15px;
  }

  .home-menu-page-team.is-team-create .team-create-note {
    margin-top: -3px;
    font-size: 10px;
    line-height: 1.2;
  }

  .home-menu-page-ranking {
    align-content: stretch;
    grid-template-rows: minmax(0, 1fr) auto;
    gap: 6px;
    padding: 34px 0 max(16px, env(safe-area-inset-bottom));
  }

  .home-menu-page-ranking .home-back-menu-button {
    position: static;
    order: 2;
    top: auto !important;
    left: auto !important;
    bottom: auto !important;
    width: 190px;
    height: 58px;
    margin-top: 4px;
    justify-self: center;
  }

  .home-menu-page-ranking .home-page-content {
    order: 1;
    width: 100%;
    height: 100%;
    max-height: none;
    overflow: hidden;
    padding: 0;
  }

  .home-menu-page-ranking .home-ranking-panel {
    width: 100%;
    height: 100%;
    max-height: none;
    grid-template-rows: auto minmax(0, 1fr);
    gap: 10px;
  }

  .home-menu-page-ranking .home-ranking-heading {
    width: min(330px, calc(100vw - 34px));
    justify-self: center;
    grid-template-columns: minmax(24px, 1fr) auto minmax(24px, 1fr);
    gap: 8px;
    margin: 0;
    font-size: 21px;
  }

  .home-menu-page-ranking .home-ranking-duo {
    width: 100%;
    min-height: 0;
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 100%;
    grid-template-columns: none;
    gap: 0;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 0;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .home-menu-page-ranking .home-ranking-duo::-webkit-scrollbar {
    display: none;
  }

  .home-menu-page-ranking .home-ranking-block {
    width: min(540px, calc((100vw / var(--lobby-scale)) - 22px));
    min-width: min(540px, calc((100vw / var(--lobby-scale)) - 22px));
    height: 100%;
    justify-self: center;
    grid-template-rows: 30px minmax(0, 288px) minmax(214px, 1fr);
    gap: 8px;
    padding: 0 0 6px;
    overflow-y: auto;
    overflow-x: hidden;
    scroll-snap-align: center;
    scroll-snap-stop: always;
    scrollbar-width: thin;
  }

  .home-menu-page-ranking .home-ranking-block-title {
    font-size: 17px;
  }

  .home-menu-page-ranking .home-ranking-podium {
    width: 100%;
  }

  .home-menu-page-ranking .home-ranking-table {
    min-height: 214px;
  }

  .home-menu-page-ranking .home-ranking-results-podium .podium-stage {
    transform: translate(-50%, -50%) scale(0.66);
  }

  .team-hover-members-card {
    width: min(286px, calc(100vw - 34px));
    max-height: min(150px, calc(100dvh - 34px));
    grid-template-rows: 24px 16px minmax(0, 1fr);
    padding: 4px;
  }

  .team-hover-members-head,
  .team-hover-member-row {
    grid-template-columns: 18px minmax(66px, 1fr) minmax(50px, 0.7fr) 38px 32px;
    gap: 3px;
  }

  .team-hover-member-row {
    min-height: 19px;
    padding: 0 3px;
  }

  .team-hover-members-body {
    gap: 1px;
  }

  .team-hover-members-title strong {
    font-size: 8px;
  }

  .team-hover-members-title em,
  .team-hover-members-head,
  .team-hover-player strong,
  .team-hover-grade strong,
  .team-hover-position,
  .team-hover-points,
  .team-hover-role {
    font-size: 6px;
  }

  .team-hover-player img {
    width: 13px;
    height: 13px;
    flex-basis: 13px;
    border-radius: 3px;
  }

  .team-hover-grade .grade-shield {
    width: 13px;
    height: 17px;
  }

  .team-hover-role-crown {
    width: 11px;
    height: 11px;
  }
}

body,
body *:not(input):not(textarea),
body *::before,
body *::after,
button,
input,
textarea,
select,
option,
input::placeholder,
textarea::placeholder,
svg text {
  text-transform: uppercase !important;
}

#app .chat-messages,
#app .chat-messages *,
#app input,
#app textarea,
#app input::placeholder,
#app textarea::placeholder,
#app .preserve-text,
#app .preserve-text *,
#app .preserve-player-name {
  text-transform: none !important;
}

#app .preserve-text,
#app .preserve-text * {
  text-transform: none !important;
}

#app .preserve-player-name {
  text-transform: none !important;
}

#app .allow-uppercase,
#app .allow-uppercase * {
  text-transform: uppercase !important;
}

#app .player-hover-card-frame .preserve-player-name,
#app .mini-player-card .preserve-player-name,
#app .mini-player-summary .preserve-player-name,
#app .team-hover-members-card .preserve-player-name,
.player-hover-card-frame .preserve-player-name,
.mini-player-card .preserve-player-name,
.mini-player-summary .preserve-player-name,
.team-hover-members-card .preserve-player-name,
.team-confirm-modal.preserve-text,
.team-confirm-modal .preserve-text,
.team-confirm-modal .preserve-text *,
.team-confirm-modal h2.preserve-text,
.team-confirm-modal .team-confirm-copy.preserve-text,
.team-confirm-modal .team-confirm-copy.preserve-text p,
.team-confirm-modal .team-confirm-copy.preserve-text strong,
#app .team-detail-copy .preserve-player-name,
#app .team-detail-value-input.preserve-player-name,
#app .team-confirm-modal .preserve-text,
#app .team-confirm-modal .preserve-text *,
#app .team-confirm-modal h2.preserve-text,
#app .team-confirm-modal .team-confirm-copy.preserve-text,
#app .team-confirm-modal .team-confirm-copy.preserve-text p,
#app .team-confirm-modal .team-confirm-copy.preserve-text strong {
  text-transform: none !important;
}

#app .chat-messages p,
#app .chat-messages .chat-message-body {
  font-weight: 400 !important;
}

#app .chat-messages .chat-message-sender,
#app .chat-messages p > strong {
  color: #26bd3d !important;
  font-weight: 1000 !important;
}

#app .chat-messages .admin-message .chat-message-sender,
#app .chat-messages .admin-message > strong {
  color: #ff3038 !important;
}

#app .chat-messages .server-message,
#app .chat-messages .server-message .chat-message-sender,
#app .chat-messages .server-message > strong {
  color: #FFBF00 !important;
}


@media (max-width: 480px) {
  .home-menu-page-settings {
    --settings-mobile-top-gap: 24px;
    align-content: stretch;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 12px;
    padding: var(--settings-mobile-top-gap) 0 max(16px, env(safe-area-inset-bottom));
  }

  .home-menu-page-settings .home-page-title {
    order: 1;
    width: min(350px, calc(100vw - 34px));
    justify-self: center;
    grid-template-columns: minmax(24px, 1fr) auto minmax(24px, 1fr);
    gap: 8px;
    margin: 0;
    font-size: 20px;
  }

  .home-menu-page-settings .home-page-content {
    order: 2;
    width: min(540px, calc((100vw / var(--lobby-scale)) - 22px));
    height: 100%;
    max-height: none;
    justify-self: center;
    margin: 0;
    overflow: hidden;
    padding: 0;
  }

  .home-menu-page-settings .home-settings-grid {
    height: 100%;
    grid-template-columns: 1fr;
    align-content: start;
    gap: 20px;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0 0 8px;
  }

  .home-menu-page-settings .home-settings-panel {
    width: 100%;
    min-height: 0;
    padding: 12px;
    border-width: 2px;
    border-radius: 8px;
    overflow: hidden;
  }

  .home-menu-page-settings .home-back-menu-button {
    position: static;
    order: 3;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 190px;
    height: 58px;
    margin-top: 4px;
    justify-self: center;
  }

  .home-menu-page-settings .home-settings-card-heading {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 12px;
    padding-bottom: 12px;
  }

  .home-menu-page-settings .home-settings-photo-frame {
    width: 76px;
    height: 76px;
  }

  .home-menu-page-settings .home-settings-photo-actions {
    grid-template-columns: repeat(2, minmax(0, 106px));
    gap: 7px;
    margin-top: 0;
  }

  .home-menu-page-settings .home-settings-photo-button {
    min-height: 32px;
    padding: 0 7px;
    font-size: 9px;
  }

  .home-menu-page-settings .home-account-summary div {
    min-height: 50px;
    padding: 8px 10px;
  }

  .home-menu-page-settings .home-account-summary strong {
    font-size: 14px;
  }

  .home-menu-page-settings .home-password-wrap input {
    height: 38px;
    padding: 0 42px 0 12px;
    font-size: 13px;
  }

  .home-menu-page-settings .home-password-submit {
    height: 42px;
    font-size: 14px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-settings-body {
    height: auto;
    grid-template-rows: none;
    gap: 9px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control {
    min-height: 76px;
    padding: 8px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control > span {
    grid-template-columns: 38px minmax(0, 1fr) 54px;
    gap: 8px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control-icon {
    width: 36px;
    height: 36px;
    font-size: 25px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control strong,
  .home-menu-page-settings .home-sound-settings-panel .sound-toggle strong {
    font-size: 13px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control input[type="range"] {
    grid-column: 2 / 4;
    grid-row: 2;
    height: 12px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control output {
    width: 50px;
    height: 28px;
    font-size: 13px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle {
    min-height: 48px;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 9px;
    padding: 7px 9px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle span {
    width: 48px;
    height: 28px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle span::before {
    width: 22px;
    height: 22px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle.is-on span::before {
    transform: translateX(20px);
  }
}

@media (max-width: 480px) {
  .home-menu-page-settings {
    --settings-mobile-panel-width: min(540px, calc((100vw / var(--lobby-scale)) - 22px));
    padding-top: 34px;
    gap: 12px;
  }

  .home-menu-page-settings .home-page-title {
    width: min(330px, calc(100vw - 34px));
    grid-template-columns: minmax(24px, 1fr) auto minmax(24px, 1fr);
    gap: 8px;
    margin: 0 0 2px;
    font-size: 21px;
    line-height: 1.15;
  }

  .home-menu-page-settings .home-page-content {
    width: var(--settings-mobile-panel-width);
  }

  .home-menu-page-settings .home-settings-grid {
    width: var(--settings-mobile-panel-width);
    justify-self: center;
    grid-auto-rows: max-content;
    gap: 14px;
    padding-bottom: 8px;
  }

  .home-menu-page-settings .home-settings-panel {
    width: var(--settings-mobile-panel-width);
    justify-self: center;
    height: auto;
    min-height: max-content;
    padding: 12px;
  }

  .home-menu-page-settings .home-account-settings-panel {
    gap: 10px;
    overflow: visible;
    padding-bottom: 24px;
  }

  .home-menu-page-settings .home-settings-card-heading {
    grid-template-columns: 76px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding-bottom: 12px;
  }

  .home-menu-page-settings .home-settings-account-heading {
    min-height: 76px;
    align-content: space-between;
    gap: 0;
  }

  .home-menu-page-settings .home-settings-photo-frame {
    width: 76px;
    height: 76px;
  }

  .home-menu-page-settings .home-settings-card-heading h2 {
    font-size: 20px;
    line-height: 1.08;
  }

  .home-menu-page-settings .home-settings-photo-actions {
    grid-template-columns: repeat(2, minmax(0, 108px));
    gap: 8px;
  }

  .home-menu-page-settings .home-settings-photo-button {
    min-height: 34px;
    padding: 0 8px;
    font-size: 10px;
  }

  .home-menu-page-settings .home-account-summary {
    gap: 8px;
  }

  .home-menu-page-settings .home-account-summary div {
    min-height: 46px;
    padding: 7px 11px;
  }

  .home-menu-page-settings .home-password-form {
    gap: 7px;
  }

  .home-menu-page-settings .home-password-form h3 {
    margin-bottom: 0;
    font-size: 16px;
  }

  .home-menu-page-settings .home-password-field {
    gap: 3px;
  }

  .home-menu-page-settings .home-password-wrap input {
    height: 34px;
    padding-left: 12px;
    font-size: 13px;
  }

  .home-menu-page-settings .home-password-submit {
    height: 38px;
    font-size: 14px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control {
    min-height: 68px;
    padding: 7px 10px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control > span {
    grid-template-columns: 38px minmax(0, 1fr) 52px;
    align-items: center;
    gap: 10px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control-icon {
    width: 36px;
    height: 36px;
    grid-row: 1 / 3;
    align-self: center;
    justify-self: center;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control-icon::before {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    text-align: center;
    transform: none;
  }

  .home-menu-page-settings .home-sound-settings-panel .music-icon::before {
    transform: translate(1px, 0);
  }

  .home-menu-page-settings .home-sound-settings-panel .effects-icon::before {
    transform: translate(2px, 0);
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-control output {
    width: 50px;
    height: 28px;
    align-self: center;
    font-size: 13px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle {
    min-height: 44px;
    grid-template-columns: 52px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 6px 10px;
  }

  .home-menu-page-settings .home-sound-settings-panel .sound-toggle span {
    align-self: center;
    justify-self: center;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  body:has(.lobby-viewport:not(.game-viewport):not(.home-viewport)) .app-shell {
    width: 100%;
    padding: 0;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport),
  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-scale,
  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-stage,
  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-grid,
  .lobby-mobile-shell {
    width: 100vw;
    height: 100vh;
    height: 100dvh;
    min-height: 0;
    max-height: 100vh;
    max-height: 100dvh;
    overflow: hidden;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-scale {
    display: block;
    zoom: 1;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-stage {
    display: block;
    padding: 0;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .lobby-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(0, 1fr);
    grid-template-areas: none;
    gap: 0;
    align-items: stretch;
  }

  .lobby-viewport:not(.game-viewport):not(.home-viewport) .left-column {
    display: none;
  }

  .lobby-mobile-shell {
    --lobby-mobile-active-left: 18%;
    --lobby-mobile-active-width: 31%;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    background:
      linear-gradient(180deg, rgba(3, 31, 27, 0.98), rgba(5, 16, 17, 0.98)),
      #071816;
  }

  .lobby-mobile-shell[data-active-panel="players"] {
    --lobby-mobile-active-left: 52%;
    --lobby-mobile-active-width: 22%;
  }

  .lobby-mobile-shell[data-active-panel="chat"] {
    --lobby-mobile-active-left: 71%;
    --lobby-mobile-active-width: 9%;
  }

  .lobby-mobile-menu {
    position: relative;
    z-index: 2;
    display: block;
    width: 100%;
    aspect-ratio: 1347 / 217;
    min-height: 58px;
    max-height: 86px;
    overflow: hidden;
    filter: drop-shadow(0 8px 12px rgba(0, 0, 0, 0.46));
  }

  .lobby-mobile-menu::after {
    content: "";
    position: absolute;
    left: var(--lobby-mobile-active-left);
    bottom: 9%;
    width: var(--lobby-mobile-active-width);
    height: 3px;
    border-radius: 999px;
    background: #1dffc4;
    box-shadow: 0 0 10px rgba(29, 255, 196, 0.9), 0 0 18px rgba(29, 255, 196, 0.48);
    pointer-events: none;
    transform: translateX(-50%);
  }

  .lobby-mobile-menu img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: fill;
    user-select: none;
    pointer-events: none;
  }

  .lobby-mobile-menu-hit {
    position: absolute;
    top: 10%;
    bottom: 10%;
    z-index: 3;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-tap-highlight-color: transparent;
  }

  .lobby-mobile-menu-rooms {
    left: 3.2%;
    width: 35.2%;
  }

  .lobby-mobile-menu-players {
    left: 38.4%;
    width: 26.6%;
  }

  .lobby-mobile-menu-chat {
    left: 65%;
    width: 12%;
  }

  .lobby-mobile-menu-back {
    left: 77%;
    width: 20%;
  }

  .lobby-mobile-carousel {
    display: flex;
    width: 100%;
    min-width: 0;
    min-height: 0;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-behavior: auto;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .lobby-mobile-carousel::-webkit-scrollbar {
    display: none;
  }

  .lobby-mobile-carousel > .lobby-mobile-page {
    flex: 0 0 100%;
    width: 100%;
    min-width: 100%;
    height: 100%;
    min-height: 0;
    display: grid;
    padding: 8px 8px max(10px, env(safe-area-inset-bottom));
    overflow: hidden;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  .lobby-mobile-carousel > .rooms-column,
  .lobby-mobile-carousel > .chat-column,
  .lobby-mobile-carousel > .lobby-players-page {
    grid-area: auto;
    height: 100%;
  }

  .lobby-grid .lobby-mobile-carousel > .chat-column {
    height: 100%;
  }

  .lobby-mobile-page > .panel,
  .lobby-mobile-page > .rooms-panel,
  .lobby-mobile-page > .chat-panel,
  .lobby-mobile-page > .online-panel,
  .lobby-players-page > .online-panel {
    height: 100%;
    min-height: 0;
  }

  .lobby-mobile-page .rooms-panel {
    grid-template-rows: auto minmax(0, 1fr) auto;
  }

  .lobby-mobile-page .rooms-title,
  .lobby-mobile-page .panel-title {
    min-height: 40px;
    font-size: 18px;
  }

  .lobby-mobile-page .rooms-legend {
    display: none;
  }

  .lobby-mobile-page .rooms-list {
    padding: 8px;
    gap: 9px;
    overflow-y: auto;
  }

  .lobby-mobile-page .room-row {
    grid-template-columns: minmax(0, 1fr) 92px;
    grid-template-rows: auto auto auto;
    min-height: 92px;
    gap: 5px 8px;
    padding: 9px;
  }

  .lobby-mobile-page .room-name-stat,
  .lobby-mobile-page .room-status {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .lobby-mobile-page .room-status {
    white-space: normal;
  }

  .lobby-mobile-page .room-row button {
    grid-column: 2;
    grid-row: 2 / 4;
    align-self: center;
    justify-self: end;
    width: 88px;
    height: 34px;
  }

  .lobby-mobile-page .room-stat {
    justify-content: flex-start;
    font-size: 12px;
  }

  .lobby-mobile-page .online-strip {
    min-height: 38px;
    grid-template-columns: minmax(0, 1fr) 76px;
    gap: 8px;
    padding: 5px 8px;
    font-size: 13px;
    text-align: left;
  }

  .lobby-mobile-page .online-strip span {
    width: 70px;
    height: 28px;
    justify-self: end;
  }

  .lobby-mobile-page .online-panel-footer {
    display: none;
  }

  .lobby-mobile-page .online-list {
    padding: 8px 10px;
  }

  .lobby-mobile-page .online-row {
    min-height: 54px;
    grid-template-columns: 40px minmax(0, 1fr) 42px 54px;
    gap: 7px;
  }

  .lobby-mobile-page .chat-panel {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
  }

  .lobby-mobile-page .chat-messages {
    height: auto;
    min-height: 0;
    overflow-y: auto;
    padding: 10px 12px 6px;
  }

  .lobby-mobile-page .chat-form {
    grid-template-columns: minmax(0, 1fr) 84px;
    gap: 7px;
    padding: 8px;
  }

  .lobby-mobile-page .chat-form input,
  .lobby-mobile-page .chat-form button {
    height: 38px;
    font-size: 13px;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .lobby-rooms-page {
    padding: 5px 8px max(6px, env(safe-area-inset-bottom));
  }

  .lobby-rooms-page .rooms-panel {
    grid-template-rows: 34px minmax(0, 1fr) 34px;
  }

  .lobby-rooms-page .rooms-title {
    min-height: 34px;
    padding: 0 12px;
    font-size: 17px;
  }

  .lobby-rooms-page .rooms-list {
    gap: 5px;
    padding: 5px 7px;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .lobby-rooms-page .room-row {
    min-height: 58px;
    grid-template-columns: minmax(0, 1fr) 78px;
    grid-template-rows: 20px 17px 17px;
    gap: 0 6px;
    padding: 3px 6px;
    align-items: center;
  }

  .lobby-rooms-page .room-stat {
    gap: 3px;
    font-size: 10.5px;
    line-height: 1;
  }

  .lobby-rooms-page .room-name-stat {
    grid-column: 1;
    grid-row: 1;
    font-size: 12px;
  }

  .lobby-rooms-page .room-status {
    grid-column: 1;
    grid-row: 3;
    width: 112px;
    white-space: nowrap;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(2) {
    grid-column: 1;
    grid-row: 2;
    width: 58px;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(3) {
    grid-column: 1;
    grid-row: 2;
    margin-left: 62px;
    width: 84px;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(5) {
    grid-column: 1;
    grid-row: 3;
    margin-left: 118px;
    width: 58px;
  }

  .lobby-rooms-page .room-stat-icon {
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
  }

  .lobby-rooms-page .room-level-icon {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
  }

  .lobby-rooms-page .room-row button {
    grid-column: 2;
    grid-row: 1 / 4;
    width: 76px;
    height: 28px;
    font-size: 10px;
  }

  .lobby-rooms-page .online-strip {
    min-height: 34px;
    grid-template-columns: minmax(0, 1fr) 58px;
    gap: 6px;
    padding: 4px 7px;
    font-size: 12px;
  }

  .lobby-rooms-page .online-strip span {
    width: 54px;
    height: 25px;
    font-size: 12px;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .lobby-rooms-page .rooms-list {
    gap: 4px;
    padding: 5px 6px;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .lobby-rooms-page .room-row {
    height: 44px;
    min-height: 44px;
    grid-template-columns: minmax(100px, 1fr) 34px 50px 64px 32px 55px;
    grid-template-rows: 1fr;
    column-gap: 3px;
    padding: 0 5px;
    align-items: center;
  }

  .lobby-rooms-page .room-row .room-stat {
    min-width: 0;
    width: auto;
    margin-left: 0;
    gap: 2px;
    justify-content: flex-start;
    overflow: hidden;
    white-space: nowrap;
    font-size: 8.4px;
    line-height: 1;
  }

  .lobby-rooms-page .room-name-stat {
    grid-column: 1;
    grid-row: 1;
    font-size: 8.8px;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(2) {
    grid-column: 2;
    grid-row: 1;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(3) {
    grid-column: 3;
    grid-row: 1;
  }

  .lobby-rooms-page .room-status {
    grid-column: 4;
    grid-row: 1;
    color: #ffe3a1;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(5) {
    grid-column: 5;
    grid-row: 1;
  }

  .lobby-rooms-page .room-level-icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
  }

  .lobby-rooms-page .room-stat-icon {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
  }

  .lobby-rooms-page .room-row button {
    grid-column: 6;
    grid-row: 1;
    width: 55px;
    height: 24px;
    align-self: center;
    justify-self: end;
    font-size: 8.8px;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .lobby-rooms-page .room-row .room-stat:nth-of-type(2),
  .lobby-rooms-page .room-row .room-stat:nth-of-type(3),
  .lobby-rooms-page .room-row .room-stat:nth-of-type(5),
  .lobby-rooms-page .room-status {
    width: auto;
    margin-left: 0;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .lobby-rooms-page .room-row {
    grid-template-columns: minmax(98px, 1fr) 31px 47px 74px 29px 48px;
  }

  .lobby-rooms-page .room-row .room-stat {
    font-size: 8.1px;
  }

  .lobby-rooms-page .room-name-stat {
    font-size: 8.4px;
  }

  .lobby-rooms-page .room-row button {
    width: 48px;
    font-size: 8.2px;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .lobby-mobile-shell {
    padding-top: 18px;
  }

  .lobby-mobile-menu {
    aspect-ratio: 1264 / 292;
    width: 92%;
    max-height: 84px;
    justify-self: center;
    margin-bottom: 10px;
  }

  .lobby-mobile-menu::after {
    display: none;
  }

  .lobby-mobile-menu-hit {
    appearance: none;
    -webkit-appearance: none;
    color: transparent;
    outline: 0;
  }

  .lobby-mobile-menu-active {
    position: absolute;
    inset: 0;
    display: block;
    pointer-events: none;
    z-index: 3;
    filter: none;
    opacity: 0;
    transform: scale(1);
    transition: none;
  }

  .lobby-mobile-menu-active::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: var(--lobby-active-icon-image);
    background-position: center;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    pointer-events: none;
    z-index: 1;
  }

  .lobby-mobile-menu-active.is-active {
    opacity: 1;
  }

  .lobby-mobile-menu-hit.is-active {
    z-index: 4;
    background: transparent;
    box-shadow: none;
  }

  .lobby-mobile-menu-active-rooms {
    --lobby-active-icon-image: url("/assets/mobile-lobby-active-rooms-menugreen.webp");
    transform-origin: 13.1% 49.5%;
  }

  .lobby-mobile-menu-active-players {
    --lobby-active-icon-image: url("/assets/mobile-lobby-active-players-menugreen.webp");
    transform-origin: 39.3% 48.6%;
  }

  .lobby-mobile-menu-active-chat {
    --lobby-active-icon-image: url("/assets/mobile-lobby-active-chat-menugreen.webp");
    transform-origin: 65.4% 48.8%;
  }

  .lobby-mobile-menu-active-back {
    --lobby-active-icon-image: url("/assets/mobile-lobby-active-back-menugreen.webp");
    transform-origin: 91% 50.2%;
  }

  .lobby-mobile-menu-rooms {
    left: 0;
    width: 28.2%;
  }

  .lobby-mobile-menu-players {
    left: 28.2%;
    width: 24.4%;
  }

  .lobby-mobile-menu-chat {
    left: 52.6%;
    width: 26.8%;
  }

  .lobby-mobile-menu-back {
    left: 79.4%;
    width: 20.6%;
  }

  .lobby-rooms-page .rooms-panel {
    grid-template-rows: minmax(0, 1fr);
    border: 0;
    box-shadow: none;
    background: transparent;
  }

  .lobby-rooms-page .rooms-title {
    display: none;
  }

  .lobby-rooms-page .rooms-list {
    border-radius: 8px 8px 0 0;
  }

  .lobby-rooms-page .online-strip {
    display: none;
  }

  .lobby-players-page .panel-title,
  .lobby-chat-page .panel-title {
    display: none;
  }

  .lobby-players-page > .online-panel,
  .lobby-chat-page > .chat-panel {
    border-top: 0;
  }

  .lobby-chat-page .chat-panel {
    grid-template-rows: minmax(0, 1fr) auto;
  }

  .lobby-chat-page .chat-messages {
    grid-row: 1;
  }

  .lobby-chat-page .chat-form {
    grid-row: 2;
    align-self: end;
  }

  .player-hover-card-frame .mini-player-card {
    width: min(218px, calc(100vw - 28px));
    height: min(330px, calc(100dvh - 28px));
    grid-template-rows: 25px 54px 38px minmax(0, 1fr);
    border-radius: 7px;
  }

  .player-hover-card-frame .mini-player-card header {
    height: 24px;
    padding: 0 8px;
    font-size: 11px;
  }

  .player-hover-card-frame .mini-player-main {
    grid-template-columns: 42px minmax(0, 1fr) 31px;
    gap: 5px;
    padding: 6px;
  }

  .player-hover-card-frame .avatar.mini-player-avatar {
    width: 42px;
    height: 42px;
    border-radius: 6px;
    font-size: 14px;
  }

  .player-hover-card-frame .mini-player-summary {
    gap: 4px;
  }

  .player-hover-card-frame .mini-player-summary h2 {
    font-size: 9.6px;
  }

  .player-hover-card-frame .mini-player-summary p {
    font-size: 7.8px;
  }

  .player-hover-card-frame .mini-player-grade .grade-shield {
    width: 29px;
    height: 36px;
  }

  .player-hover-card-frame .mini-player-progress {
    gap: 3px;
    padding: 0 7px 4px;
  }

  .player-hover-card-frame .mini-progress-track {
    height: 16px;
  }

  .player-hover-card-frame .mini-player-progress strong,
  .player-hover-card-frame .mini-next-grade {
    font-size: 7.2px;
  }

  .player-hover-card-frame .mini-next-grade {
    min-height: 16px;
    padding: 0 5px;
  }

  .player-hover-card-frame .mini-player-stats {
    margin: 0 8px 8px;
    padding: 6px 8px 7px;
    grid-template-rows: repeat(6, minmax(22px, 1fr));
    gap: 2px;
  }

  .player-hover-card-frame .mini-stat-row {
    grid-template-columns: 23px minmax(0, 1fr);
    gap: 4px;
    padding: 1px 0;
  }

  .player-hover-card-frame .mini-stat-icon {
    width: 23px;
    height: 23px;
  }

  .player-hover-card-frame .mini-stat-icon img {
    width: 20px;
    height: 20px;
  }

  .player-hover-card-frame .mini-stat-icon.grade-icon .grade-shield {
    width: 20px;
    height: 20px;
    --grade-icon-width: 100%;
    --grade-icon-height: 100%;
  }

  .player-hover-card-frame .mini-team-row {
    min-height: 25px;
  }

  .player-hover-card-frame .mini-team-row .mini-team-grade .grade-shield {
    width: 20px;
    height: 20px;
    --grade-icon-width: 100%;
    --grade-icon-height: 100%;
  }

  .player-hover-card-frame .mini-stat-icon img.mini-team-empty-icon {
    width: 20px;
    height: 20px;
  }

  .player-hover-card-frame .mini-stat-row div {
    gap: 3px;
  }

  .player-hover-card-frame .mini-stat-row strong {
    font-size: 6.4px;
  }

  .player-hover-card-frame .mini-stat-row b {
    font-size: 8px;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .game-viewport .game-scale {
    width: 100% !important;
    height: 100% !important;
    zoom: 1 !important;
  }

  .game-layout.game-desktop-layout {
    display: none !important;
  }

  .game-mobile-shell {
    display: grid !important;
  }

  .game-mobile-info-stack > .info-panel,
  .game-mobile-info-stack > .game-mobile-room-info,
  .game-mobile-info-stack > .legend-box {
    margin-bottom: 0 !important;
    filter: none !important;
    box-shadow: none !important;
  }

  .game-mobile-info-stack > .info-panel::before,
  .game-mobile-info-stack > .info-panel::after,
  .game-mobile-info-stack > .game-mobile-room-info::before,
  .game-mobile-info-stack > .game-mobile-room-info::after,
  .game-mobile-info-stack > .legend-box::before,
  .game-mobile-info-stack > .legend-box::after {
    display: none !important;
    content: none !important;
  }

  .game-mobile-info-stack > .info-panel > .panel-title {
    display: none !important;
  }

  .game-mobile-info-stack > .info-panel > .panel-body {
    min-height: 0 !important;
    align-content: start !important;
    gap: 7px !important;
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }

  .game-mobile-info-stack .grade-progress,
  .game-mobile-info-stack .player-info-stats {
    grid-column: 1 / -1 !important;
  }

  .game-mobile-info-stack .compact-player-info-stats {
    gap: 6px !important;
  }

  .game-mobile-info-stack .compact-player-info-stats div {
    grid-template-rows: 18px auto auto !important;
    min-height: 58px !important;
    padding: 6px 3px !important;
    align-content: center !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    background: rgba(0, 0, 0, 0.28) !important;
    box-shadow: none !important;
  }

  .game-mobile-info-stack .compact-player-info-stats img {
    width: 18px !important;
    height: 18px !important;
  }

  .game-mobile-info-stack .legend-box {
    min-height: 0 !important;
    height: auto !important;
    max-height: max-content !important;
    align-self: start !important;
    align-content: start !important;
    align-items: center !important;
    grid-auto-rows: min-content !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px 7px !important;
    justify-items: stretch !important;
    padding: 8px !important;
    margin-bottom: 0 !important;
    overflow: hidden !important;
    filter: none !important;
    box-shadow: none !important;
  }

  .game-mobile-info-stack .legend-box::before,
  .game-mobile-info-stack .legend-box::after {
    display: none !important;
    content: none !important;
  }

  .game-mobile-info-stack .legend-box div {
    width: 100% !important;
    min-height: 26px !important;
    grid-template-columns: 22px minmax(76px, max-content) !important;
    align-items: center !important;
    justify-content: center !important;
    justify-items: center !important;
    gap: 8px !important;
    text-align: center !important;
  }

  .game-mobile-info-stack .legend-chip {
    width: 20px !important;
    height: 20px !important;
  }

  .game-mobile-info-stack .legend-box strong {
    width: 100% !important;
    font-size: 10.5px !important;
    text-align: left !important;
  }

  .game-mobile-play-stack {
    --game-mobile-board-height: clamp(390px, 50dvh, 480px);
    grid-template-rows: auto var(--game-mobile-board-height) minmax(0, 1fr) !important;
    align-content: start !important;
  }

  .game-mobile-play-stack > .answer-panel:not(.waiting-panel) {
    --answer-columns: 2 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-self: start !important;
    align-content: start !important;
    height: 100% !important;
    gap: 8px !important;
    padding: 8px !important;
    overflow-y: auto !important;
    margin-bottom: 0 !important;
    filter: none !important;
    box-shadow: none !important;
  }

  .game-mobile-players-page > .online-panel,
  .game-mobile-chat-page > .chat-panel,
  .game-mobile-play-stack > .answer-panel,
  .game-mobile-play-stack > .result-table-wrap,
  .game-mobile-play-stack > .final-podium-panel,
  .game-mobile-play-stack > .waiting-panel {
    margin-bottom: 0 !important;
    filter: none !important;
    box-shadow: none !important;
  }

  .game-mobile-players-page > .online-panel::before,
  .game-mobile-players-page > .online-panel::after,
  .game-mobile-chat-page > .chat-panel::before,
  .game-mobile-chat-page > .chat-panel::after,
  .game-mobile-play-stack > .answer-panel::before,
  .game-mobile-play-stack > .answer-panel::after,
  .game-mobile-play-stack > .result-table-wrap::before,
  .game-mobile-play-stack > .result-table-wrap::after,
  .game-mobile-play-stack > .final-podium-panel::before,
  .game-mobile-play-stack > .final-podium-panel::after,
  .game-mobile-play-stack > .waiting-panel::before,
  .game-mobile-play-stack > .waiting-panel::after {
    display: none !important;
    content: none !important;
  }

  .game-mobile-play-stack > .answer-panel:not(.waiting-panel) .answer-card {
    min-width: 0;
    min-height: 68px;
    gap: 0;
    padding: 0;
  }

  .game-mobile-play-stack > .answer-panel:not(.waiting-panel) .answer-card span {
    min-height: 30px;
    padding: 0 5px;
    font-size: 11.5px;
    line-height: 1.05;
  }

  .game-mobile-play-stack > .answer-panel:not(.waiting-panel) .answer-card input {
    height: 30px;
    padding: 0 8px;
    font-size: 12.5px;
  }

  .game-mobile-play-stack > .result-table-wrap {
    --result-row-height: 26px !important;
    min-height: 0 !important;
    height: 100% !important;
    align-self: start !important;
    padding: 3px !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 7px !important;
    background: linear-gradient(135deg, rgba(16, 29, 32, 0.97), rgba(4, 14, 16, 0.97)) !important;
    box-shadow: none !important;
    overflow: hidden !important;
  }

  .game-mobile-play-stack .result-table-scroll {
    display: none !important;
  }

  .game-mobile-play-stack .mobile-result-table {
    min-height: 0;
    height: 100%;
    max-height: none;
    display: grid;
    grid-auto-rows: min-content;
    gap: 3px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: none;
    touch-action: pan-y;
  }

  .game-mobile-play-stack .mobile-result-table::-webkit-scrollbar,
  .game-mobile-play-stack .mobile-result-answers::-webkit-scrollbar {
    display: none;
  }

  .game-mobile-play-stack .mobile-result-head,
  .game-mobile-play-stack .mobile-result-row {
    min-width: 0;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) 17px 17px;
    gap: 1px;
    align-items: center;
  }

  .game-mobile-play-stack .mobile-result-head {
    position: sticky;
    top: 0;
    z-index: 2;
    grid-template-columns: minmax(0, 1fr) 17px 17px;
  }

  .game-mobile-play-stack .mobile-result-head span,
  .game-mobile-play-stack .mobile-result-player,
  .game-mobile-play-stack .mobile-result-points,
  .game-mobile-play-stack .mobile-result-total {
    min-width: 0;
    height: 24px;
    display: grid;
    place-items: center;
    padding: 0;
    border-radius: 3px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: #091718;
    color: #ffffff;
    line-height: 1;
    text-align: center;
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.05);
  }

  .game-mobile-play-stack .mobile-result-head span {
    height: 18px;
    background: #091718;
    color: #dce7de;
    font-size: 6.6px;
    font-weight: 1000;
  }

  .game-mobile-play-stack .mobile-result-head .mobile-result-head-player,
  .game-mobile-play-stack .mobile-result-player {
    border: 0;
    box-shadow: none;
  }

  .game-mobile-play-stack .mobile-result-head .mobile-result-head-player {
    display: none;
  }

  .game-mobile-play-stack .mobile-result-player {
    background: transparent;
  }

  .game-mobile-play-stack .mobile-result-player .avatar.mobile-result-avatar {
    width: 21px;
    height: 21px;
    border-radius: 3px;
    box-shadow: none;
  }

  .game-mobile-play-stack .mobile-result-points,
  .game-mobile-play-stack .mobile-result-total {
    font-size: 6.4px;
    font-weight: 1000;
  }

  .game-mobile-play-stack .mobile-result-answers {
    min-width: 0;
    height: 24px;
    display: grid;
    grid-template-columns: repeat(var(--mobile-result-answer-count, 5), minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    scrollbar-width: none;
  }

  .game-mobile-play-stack .mobile-result-answer {
    min-width: 0;
    height: 24px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    padding: 0 3px;
    border-radius: 3px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: #091718;
  }

  .game-mobile-play-stack .mobile-result-answer .answer-result {
    min-width: 0;
  display: block;
  overflow: hidden;
  font-size: 8px;
  font-weight: 400;
  line-height: 1;
  text-align: center;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-transform: lowercase !important;
  }

  .game-mobile-play-stack .mobile-result-answer.zero,
  .game-mobile-play-stack .mobile-result-answer.five,
  .game-mobile-play-stack .mobile-result-answer.ten,
  .game-mobile-play-stack .mobile-result-answer.fifteen {
    border-color: rgba(255, 255, 255, 0.12);
  }

  .game-mobile-play-stack .result-table {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
    border-spacing: 2px !important;
    font-size: 8px !important;
  }

  .game-mobile-play-stack .result-table th:first-child,
  .game-mobile-play-stack .result-table td:first-child {
    width: 18% !important;
  }

  .game-mobile-play-stack .result-table th:nth-last-child(1),
  .game-mobile-play-stack .result-table td:nth-last-child(1),
  .game-mobile-play-stack .result-table th:nth-last-child(2),
  .game-mobile-play-stack .result-table td:nth-last-child(2) {
    width: 8.5% !important;
  }

  .game-mobile-play-stack .result-table th,
  .game-mobile-play-stack .result-table td {
    height: 26px !important;
    padding: 0 2px !important;
    border-radius: 4px !important;
    font-size: 8px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    text-overflow: ellipsis !important;
  }

  .game-mobile-play-stack .result-table th {
    font-size: 7px !important;
  }

  .game-mobile-play-stack .result-table td strong,
  .game-mobile-play-stack .result-table .answer-result {
    font-size: 8px !important;
    line-height: 1 !important;
  }

  .game-mobile-play-stack .result-player-cell strong {
    max-width: 100%;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .game-mobile-play-stack > .final-podium-panel {
    min-height: 0 !important;
    height: 100% !important;
    padding: 10px 4px 0 !important;
    align-items: start !important;
    align-content: start !important;
    overflow: hidden !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-sparkles,
  .game-mobile-play-stack > .final-podium-panel .podium-fireworks,
  .game-mobile-play-stack > .final-podium-panel .podium-confetti {
    display: block !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-sparkles {
    opacity: 0.28 !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-fireworks {
    opacity: 0.55 !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-fireworks span {
    width: calc(var(--firework-size) * 0.48) !important;
    height: calc(var(--firework-size) * 0.48) !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-confetti i {
    width: calc(var(--size) * 0.58) !important;
    height: calc(var(--size) * 0.95) !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-stage {
    width: 100% !important;
    height: min(245px, 42dvh) !important;
    margin-top: 8px !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: end !important;
    gap: 0 !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-entry {
    min-width: 0 !important;
    transform: none !important;
  }

  .game-mobile-play-stack > .final-podium-panel .avatar.podium-photo {
    width: 44px !important;
    height: 44px !important;
    border-radius: 6px !important;
    font-size: 17px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-entry.first .avatar.podium-photo {
    width: 52px !important;
    height: 52px !important;
    font-size: 20px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-ribbon {
    min-width: 68px !important;
    height: 18px !important;
    margin-top: 2px !important;
    padding: 0 10px !important;
    font-size: 7.6px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-player-card {
    width: 92px !important;
    min-height: 62px !important;
    gap: 3px !important;
    padding: 6px 5px !important;
    margin-top: -1px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-entry.first .podium-player-card {
    width: 104px !important;
    min-height: 70px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-player-card strong {
    font-size: 9px !important;
    line-height: 1.05 !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-grade {
    gap: 3px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-grade .grade-shield {
    width: 18px !important;
    height: 23px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-grade span {
    font-size: 7px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-points {
    gap: 2px !important;
    font-size: 13px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-entry.first .podium-points {
    font-size: 15px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-points small {
    font-size: 7px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-step {
    width: 104px !important;
    height: 38px !important;
    padding-bottom: 2px !important;
    margin-top: 0 !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-step::before {
    top: -12px !important;
    height: 24px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-entry.first .podium-step {
    width: 120px !important;
    height: 50px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-entry.third .podium-step {
    width: 100px !important;
    height: 34px !important;
  }

  .game-mobile-play-stack > .final-podium-panel .podium-step span,
  .game-mobile-play-stack > .final-podium-panel .podium-entry.first .podium-step span,
  .game-mobile-play-stack > .final-podium-panel .podium-entry.third .podium-step span {
    font-size: 28px !important;
  }

  .game-mobile-round-header,
  .game-mobile-round-footer {
    gap: 10px !important;
  }

  .game-mobile-round-footer {
    align-self: end !important;
  }

  .game-mobile-round-footer .stop-box {
    margin-bottom: 0 !important;
    filter: none !important;
    box-shadow: none !important;
  }

  .game-mobile-round-footer .stop-box::before,
  .game-mobile-round-footer .stop-box::after {
    display: none !important;
    content: none !important;
  }

  .game-mobile-round-footer .stop-copy {
    inset: 0 6% 0 30% !important;
    place-content: center !important;
    place-items: center !important;
    gap: 2px !important;
  }

  .game-mobile-round-footer .stop-copy strong {
    font-size: clamp(17px, 5.2vw, 24px) !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    text-overflow: ellipsis !important;
  }

  .game-mobile-round-footer .result-stop .stop-copy strong,
  .game-mobile-round-footer .waiting-stop .stop-copy strong,
  .game-mobile-round-footer .stop-button.is-locked .stop-copy strong {
    font-size: clamp(15px, 4.7vw, 21px) !important;
  }

  .game-mobile-status-line {
    min-height: 30px !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 10px !important;
    border: 1px solid rgba(116, 212, 49, 0.42) !important;
    border-radius: 7px !important;
    background: linear-gradient(180deg, rgba(12, 28, 20, 0.96), rgba(3, 13, 12, 0.96)) !important;
    overflow: hidden !important;
  }

  .game-mobile-status-line .status-state {
    min-height: 0 !important;
    gap: 7px !important;
    font-size: 11px !important;
    line-height: 1 !important;
  }

  .game-mobile-status-line .status-state i {
    width: 8px !important;
    height: 8px !important;
  }

  .game-mobile-status-line .status-state strong {
    font-size: 11px !important;
  }

  .game-mobile-round-timebar {
    position: relative !important;
    width: 100% !important;
    height: clamp(34px, 9vw, 46px) !important;
    overflow: hidden !important;
    isolation: isolate;
  }

  .game-mobile-round-timebar img {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: fill !important;
  }

  .game-mobile-round-label {
    position: absolute !important;
    z-index: 2 !important;
    left: 11.5% !important;
    top: 50% !important;
    max-width: 22% !important;
    font-size: 10px !important;
    transform: translateY(-50%) !important;
  }

  .game-mobile-time-progress {
    position: absolute !important;
    z-index: 1 !important;
    left: 34% !important;
    right: 12% !important;
    top: 41% !important;
    height: 18% !important;
  }

  .game-mobile-time-value {
    position: absolute !important;
    z-index: 2 !important;
    right: 6.5% !important;
    top: 50% !important;
    max-width: 11% !important;
    font-size: 10px !important;
    transform: translateY(-50%) !important;
  }

  .game-mobile-menu-hit,
  .game-mobile-menu-hit.is-active {
    appearance: none !important;
    -webkit-appearance: none !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
  }

  .game-mobile-menu-letter .letter-value {
    width: 100% !important;
    height: var(--slot-height, 58px) !important;
    display: grid !important;
    place-items: center !important;
    overflow: hidden !important;
    line-height: 1 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .game-mobile-menu-letter .letter-value::before,
  .game-mobile-menu-letter .letter-value::after,
  .game-mobile-menu-letter .slot-reel::before,
  .game-mobile-menu-letter .slot-reel::after {
    content: none !important;
    display: none !important;
  }

  .game-mobile-players-count {
    position: absolute !important;
    left: 30.6% !important;
    top: 13% !important;
    z-index: 4 !important;
    min-width: 24px !important;
    height: 24px !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 6px !important;
    border-radius: 999px !important;
    border: 2px solid #71AD29 !important;
    background: #1B1D1C !important;
    color: #ffffff !important;
    font-size: 12px !important;
    font-weight: 1000 !important;
    line-height: 1 !important;
    pointer-events: none !important;
  }

  .game-mobile-chat-page > .chat-panel {
    height: 100% !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    border-top: 0 !important;
  }

  .game-mobile-chat-page .panel-title {
    display: none !important;
  }

  .game-mobile-chat-page .chat-messages {
    grid-row: 1 !important;
    min-height: 0 !important;
  }

  .game-mobile-chat-page .chat-form {
    grid-row: 2 !important;
    align-self: end !important;
    grid-template-columns: minmax(0, 1fr) 92px !important;
    padding: 8px 10px 10px !important;
  }

  .game-mobile-chat-page .chat-form input {
    height: 36px !important;
  }

  .game-mobile-chat-page .chat-form button {
    width: 92px !important;
    height: 36px !important;
    min-height: 36px !important;
    align-self: center !important;
    justify-self: end !important;
    font-size: 12px !important;
  }

  .team-invite-overlay {
    padding: max(10px, env(safe-area-inset-top)) 12px max(10px, env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    align-items: center !important;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite {
    width: min(328px, calc(100vw - 24px)) !important;
    min-height: 0 !important;
    max-height: calc(100dvh - 24px) !important;
    grid-template-rows: auto auto auto auto auto !important;
    align-content: center !important;
    padding: 14px 14px 16px !important;
    overflow: visible !important;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-alert {
    width: 44px !important;
    height: 44px !important;
    border-width: 5px !important;
    font-size: 29px !important;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite h2 {
    margin: 8px 0 7px !important;
    font-size: 16px !important;
    line-height: 1 !important;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-rule {
    margin-bottom: 8px !important;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-copy {
    min-height: 0 !important;
    gap: 6px !important;
    padding: 0 2px !important;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-copy p,
  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-copy > strong {
    max-width: 100% !important;
    font-size: 10.5px !important;
    line-height: 1.18 !important;
  }

  .team-invite-overlay .team-invite-countdown {
    min-height: 24px !important;
    margin-top: 9px !important;
    padding: 0 8px !important;
    gap: 5px !important;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-actions {
    gap: 8px !important;
    margin-top: 11px !important;
  }

  .team-invite-overlay .team-confirm-modal.is-team-invite .team-confirm-button,
  .team-invite-overlay .team-confirm-modal.is-team-invite-sent .team-confirm-button {
    height: 42px !important;
    gap: 5px !important;
    padding: 0 7px !important;
    font-size: 10.5px !important;
  }
}

@media (max-width: 380px) {
  .lobby-rooms-page .rooms-list {
    padding: 5px;
    overflow-x: hidden;
    overflow-y: auto;
  }

  .lobby-rooms-page .room-row {
    box-sizing: border-box;
    width: 100%;
    height: auto;
    min-height: 60px;
    grid-template-columns: minmax(0, 1fr) 62px;
    grid-template-rows: 19px 17px 17px;
    gap: 0 5px;
    padding: 4px 5px;
  }

  .lobby-rooms-page .room-row .room-stat {
    width: auto;
    min-width: 0;
    margin-left: 0;
    gap: 2px;
    font-size: 9px;
    line-height: 1;
    white-space: nowrap;
  }

  .lobby-rooms-page .room-name-stat {
    grid-column: 1;
    grid-row: 1;
    font-size: 9.4px;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(2) {
    grid-column: 1;
    grid-row: 2;
    width: 48px;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(3) {
    grid-column: 1;
    grid-row: 2;
    width: 76px;
    margin-left: 52px;
  }

  .lobby-rooms-page .room-status {
    grid-column: 1;
    grid-row: 3;
    width: 100px;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(5) {
    grid-column: 1;
    grid-row: 3;
    width: 48px;
    margin-left: 104px;
  }

  .lobby-rooms-page .room-stat-icon {
    width: 11px;
    height: 11px;
    flex: 0 0 11px;
  }

  .lobby-rooms-page .room-level-icon {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
  }

  .lobby-rooms-page .room-row button {
    grid-column: 2;
    grid-row: 1 / 4;
    width: 60px;
    height: 28px;
    align-self: center;
    justify-self: end;
    font-size: 8.8px;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .lobby-rooms-page .rooms-panel {
    grid-template-rows: auto minmax(0, 1fr);
  }

  .lobby-mobile-page .rooms-legend,
  .lobby-rooms-page .rooms-legend {
    position: static;
    display: grid !important;
    grid-template-columns: minmax(98px, 1fr) 31px 47px 74px 29px 48px;
    column-gap: 3px;
    min-height: 34px;
    margin: 0 6px 4px;
    padding: 0 5px;
    border-color: rgba(255, 188, 25, 0.44);
    border-radius: 6px 6px 0 0;
    background: linear-gradient(180deg, rgba(45, 65, 78, 0.98), rgba(28, 41, 52, 0.98));
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.18);
    color: #ffe3a1;
    font-size: 7.2px;
  }

  .lobby-rooms-page .rooms-legend span {
    justify-content: center;
    padding-left: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .lobby-rooms-page .rooms-legend span:first-child {
    justify-content: flex-start;
    padding-left: 18px;
  }

  .lobby-rooms-page .rooms-list {
    border-radius: 0 0 8px 8px;
  }
}

@media (max-width: 380px) {
  .lobby-mobile-page .rooms-legend,
  .lobby-rooms-page .rooms-legend {
    grid-template-columns: minmax(92px, 1fr) 30px 36px 64px 42px;
    min-height: 32px;
    margin: 0 5px 4px;
    padding: 0 5px;
    font-size: 6.8px;
  }

  .lobby-rooms-page .rooms-legend span:first-child {
    padding-left: 14px;
  }

  .lobby-rooms-page .rooms-legend span:last-child {
    display: none;
  }
}

@media (max-width: 900px), (max-aspect-ratio: 1/1) {
  .lobby-rooms-page {
    --mobile-room-columns: minmax(76px, 1fr) 28px 28px 72px 44px 52px;
    --mobile-room-gap: 4px;
    --mobile-room-pad-x: 5px;
    --mobile-room-font: 8px;
    --mobile-room-name-font: 8.2px;
    --mobile-room-head-font: 6.8px;
    --mobile-room-button-width: 52px;
  }

  .lobby-mobile-page .rooms-legend,
  .lobby-rooms-page .rooms-legend,
  .lobby-rooms-page .room-row {
    grid-template-columns: var(--mobile-room-columns) !important;
    column-gap: var(--mobile-room-gap) !important;
    padding-left: var(--mobile-room-pad-x) !important;
    padding-right: var(--mobile-room-pad-x) !important;
  }

  .lobby-mobile-page .rooms-legend,
  .lobby-rooms-page .rooms-legend {
    min-height: 32px;
    margin: 0 6px 4px;
    font-size: var(--mobile-room-head-font);
    line-height: 1;
  }

  .lobby-rooms-page .rooms-legend span:first-child {
    padding-left: 18px;
  }

  .lobby-rooms-page .rooms-legend span:last-child {
    display: block;
  }

  .lobby-rooms-page .room-row {
    box-sizing: border-box;
    width: 100%;
    height: 44px;
    min-height: 44px;
    grid-template-rows: 1fr;
  }

  .lobby-rooms-page .room-row .room-stat {
    width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    gap: 2px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: var(--mobile-room-font);
  }

  .lobby-rooms-page .room-name-stat {
    grid-column: 1;
    grid-row: 1;
    font-size: var(--mobile-room-name-font);
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(2) {
    grid-column: 2 !important;
    grid-row: 1 !important;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(3) {
    grid-column: 3 !important;
    grid-row: 1 !important;
  }

  .lobby-rooms-page .room-status {
    grid-column: 4 !important;
    grid-row: 1 !important;
    width: 100% !important;
  }

  .lobby-rooms-page .room-row .room-stat:nth-of-type(5) {
    grid-column: 5 !important;
    grid-row: 1 !important;
    width: 100% !important;
  }

  .lobby-rooms-page .room-stat-icon {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
  }

  .lobby-rooms-page .room-level-icon {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
  }

  .lobby-rooms-page .room-row button {
    grid-column: 6 !important;
    grid-row: 1 !important;
    width: var(--mobile-room-button-width);
    height: 24px;
    align-self: center;
    justify-self: end;
    font-size: 8px;
  }
}

@media (max-width: 350px) {
  .lobby-rooms-page {
    --mobile-room-columns: minmax(70px, 1fr) 25px 25px 64px 40px 47px;
    --mobile-room-gap: 3px;
    --mobile-room-pad-x: 4px;
    --mobile-room-font: 7.2px;
    --mobile-room-name-font: 7px;
    --mobile-room-head-font: 5.8px;
    --mobile-room-button-width: 47px;
  }

  .lobby-mobile-page .rooms-legend,
  .lobby-rooms-page .rooms-legend {
    min-height: 30px;
    margin-left: 5px;
    margin-right: 5px;
  }

  .lobby-rooms-page .rooms-legend span:first-child {
    padding-left: 12px;
  }

  .lobby-rooms-page .room-stat-icon {
    width: 9px;
    height: 9px;
    flex-basis: 9px;
  }

  .lobby-rooms-page .room-level-icon {
    width: 12px;
    height: 12px;
    flex-basis: 12px;
  }

  .lobby-rooms-page .room-row button {
    height: 23px;
    font-size: 7.2px;
  }

  .lobby-rooms-page .room-status {
    font-size: 6.8px;
  }
}

@media (max-width: 380px) {
  .lobby-rooms-page {
    --mobile-room-name-font: 6.2px;
  }

  .lobby-rooms-page .room-name-stat {
    font-size: 6.2px !important;
  }
}

@media (max-width: 330px) {
  .lobby-rooms-page {
    --mobile-room-columns: minmax(80px, 1fr) 23px 23px 58px 34px 43px;
    --mobile-room-gap: 3px;
    --mobile-room-font: 6.8px;
    --mobile-room-name-font: 5.8px;
    --mobile-room-head-font: 5.4px;
    --mobile-room-button-width: 43px;
  }

  .lobby-rooms-page .room-stat-icon {
    width: 8px;
    height: 8px;
    flex-basis: 8px;
  }

  .lobby-rooms-page .room-row button {
    font-size: 6.6px;
  }

  .lobby-rooms-page .room-name-stat {
    font-size: 5.8px !important;
  }

  .lobby-rooms-page .room-status {
    font-size: 6.4px !important;
  }
}

#app .chat-messages {
  overflow-x: hidden !important;
}

#app .chat-messages p,
#app .chat-messages .chat-message-body {
  max-width: 100%;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

@media (max-width: 900px) {
  #app .game-mobile-round-footer .stop-box-action .stop-copy strong {
    font-size: clamp(15px, 4.5vw, 23px) !important;
    line-height: 1.02 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  #app .game-mobile-round-footer .stop-box-blocked .stop-copy {
    gap: 1px !important;
  }

  #app .game-mobile-round-footer .stop-box-blocked .stop-copy strong {
    font-size: clamp(12px, 3.8vw, 18px) !important;
  }

  #app .game-mobile-round-footer .stop-box-blocked .stop-copy span {
    font-size: clamp(10px, 3.2vw, 15px) !important;
    line-height: 1.05 !important;
  }
}

@media (min-width: 768px) and (max-width: 900px), (min-width: 768px) and (max-aspect-ratio: 1/1) {
  #app .game-viewport .game-mobile-info-stack > .info-panel > .panel-title,
  #app .game-viewport .game-mobile-players-page .panel-title,
  #app .game-viewport .game-mobile-chat-page .panel-title,
  #app .game-viewport .game-mobile-info-stack > .game-mobile-room-info::before {
    min-height: 42px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 16px !important;
    color: #fff !important;
    font-size: 20px !important;
    font-weight: 1000 !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.52) !important;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 42%),
      linear-gradient(90deg, #80bf00, #277c00) !important;
  }

  #app .game-viewport .game-mobile-info-stack > .game-mobile-room-info {
    overflow: hidden !important;
    gap: 10px !important;
    padding: 0 10px 16px !important;
  }

  #app .game-viewport .game-mobile-info-stack > .game-mobile-room-info::before {
    content: "INFORMAÇÕES DA SALA" !important;
    margin: 0 -10px 7px !important;
  }

  #app .game-viewport .game-mobile-room-line,
  #app .game-viewport .game-mobile-room-grid > div {
    padding: 9px 8px !important;
    transform: translateY(12px) !important;
  }

  #app .game-viewport .game-mobile-menu-letter,
  #app .game-viewport .game-mobile-round-label,
  #app .game-viewport .game-mobile-time-value {
    border-radius: 6px !important;
    color: #fff !important;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.72) !important;
    background:
      linear-gradient(180deg, rgba(255, 255, 255, 0.22), transparent 42%),
      linear-gradient(90deg, #80bf00, #277c00) !important;
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.18), 0 2px 5px rgba(0, 0, 0, 0.28) !important;
  }
}

@media (min-width: 768px) and (max-width: 1320px), (min-width: 768px) and (max-aspect-ratio: 1/1) {
  #app .game-viewport .game-scale .room-info-card strong,
  #app .game-viewport .game-scale .room-info-card div {
    transform: translateY(12px) !important;
  }
}

@media (max-width: 1320px), (hover: none), (pointer: coarse), (max-aspect-ratio: 1/1) {
  #app .game-viewport .game-scale .room-info-card {
    grid-template-rows: 34px 44px minmax(34px, 1fr) !important;
  }

  #app .game-viewport .game-scale .room-info-card strong {
    min-height: 44px !important;
    padding: 16px 8px 0 !important;
    align-self: start !important;
    transform: none !important;
  }

  #app .game-viewport .game-scale .room-info-card div {
    align-self: start !important;
    padding: 13px 8px 4px !important;
    transform: none !important;
  }
}

@media (max-width: 900px), (hover: none), (pointer: coarse), (max-aspect-ratio: 1/1) {
  #app .game-viewport .game-mobile-info-stack > .game-mobile-room-info {
    gap: 14px !important;
    padding: 0 10px 24px !important;
  }

  #app .game-viewport .game-mobile-info-stack > .game-mobile-room-info::before {
    margin-bottom: 12px !important;
  }

  #app .game-viewport .game-mobile-room-line,
  #app .game-viewport .game-mobile-room-grid > div {
    transform: none !important;
  }
}
