.multiplayer-settings, .multiplayer-join { display: grid; gap: 12px; margin: 18px 0; } .multiplayer-settings label, .multiplayer-join label, .multiplayer-lobby > label { font-weight: 650; } .multiplayer-settings input, .multiplayer-settings select, .multiplayer-join input, .multiplayer-invite input { width: 100%; min-height: 44px; border: 1px solid var(--line, #35404c); border-radius: 10px; padding: 10px 12px; color: inherit; background: var(--panel, #1a222c); font: inherit; } .multiplayer-settings select { max-width: 160px; } .multiplayer-header { display: flex; align-items: center; justify-content: space-between; padding: 24px 5%; gap: 20px; border-bottom: 1px solid var(--line, #35404c); } .multiplayer-lobby { max-width: 1000px; min-height: 70vh; } .multiplayer-lobby .eyebrow, .multiplayer-lobby .lead { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; } .multiplayer-join { max-width: 480px; } .multiplayer-invite { display: flex; gap: 10px; margin: 12px 0 28px; } .multiplayer-invite input { min-width: 0; } .multiplayer-invite .button { white-space: nowrap; flex-shrink: 0; } .multiplayer-roster { list-style: none; padding: 0; margin: 16px 0 24px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .multiplayer-roster li { display: flex; align-items: center; justify-content: space-between; padding: 16px; border: 1px solid var(--line, #35404c); border-radius: 12px; gap: 12px; overflow-wrap: anywhere; } .multiplayer-roster li > span { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .multiplayer-avatar { width: 28px; height: 28px; } .multiplayer-table-wrap { overflow-x: auto; margin: 28px 0; } .multiplayer-final { min-width: 650px; width: 100%; } .multiplayer-final caption { text-align: left; font-weight: 650; margin-bottom: 16px; } .multiplayer-final .multiplayer-you { background: #8dce6614; } .multiplayer-final-avatar { width: 24px; height: 24px; display: inline-block; vertical-align: middle; margin-right: 6px; } .multiplayer-scoreboard { position: absolute; z-index: 20; left: 80px; top: 100px; width: 245px; padding: 12px 16px; border-radius: 12px; background: rgba(26, 34, 44, 0.96); color: var(--text); box-shadow: 0 6px 24px #0002; max-height: calc(100dvh - 190px); overflow: auto; } .multiplayer-scoreboard summary { cursor: pointer; font-weight: 650; } .multiplayer-scoreboard summary svg { display: inline-block; vertical-align: middle; margin-right: 4px; } .multiplayer-scoreboard ul { list-style: none; margin: 12px 0; padding: 0; } .multiplayer-scoreboard li { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; } .multiplayer-scoreboard li > span { flex: 1; min-width: 0; } .multiplayer-scoreboard .multiplayer-avatar { width: 26px; height: 26px; } .multiplayer-scoreboard li small { display: block; font-size: 11px; opacity: 0.7; } .multiplayer-network, .multiplayer-waiting { position: fixed; z-index: 50; bottom: 18px; left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100% - 32px); border-radius: 10px; background: var(--panel); color: var(--text); box-shadow: 0 6px 24px #0003; padding: 12px 18px; text-align: center; } .multiplayer-network { z-index: 100; top: 80px; bottom: auto; border: 1px solid #aa5040; } .multiplayer-round-result { max-height: calc(100dvh - 100px); overflow-y: auto; } .multiplayer-round-scores { padding: 0; margin: 12px 0 20px; list-style: none; text-align: left; } .multiplayer-round-scores li { display: flex; justify-content: space-between; gap: 16px; padding: 7px 0; border-bottom: 1px solid var(--line); overflow-wrap: anywhere; } @media (max-width: 640px) { .multiplayer-header { padding: 18px 5%; } .multiplayer-roster { grid-template-columns: 1fr; } .multiplayer-invite { flex-wrap: wrap; } .multiplayer-scoreboard { top: 130px; left: 64px; width: min(220px, calc(100% - 80px)); } .multiplayer-waiting { bottom: 96px; } .multiplayer-game .game-header > .report-content { display: none; } .multiplayer-round-result { max-height: calc(100dvh - 48px); } } .start-panel .tabs button { display: inline-flex; align-items: center; gap: 8px; } .room-chat { position: fixed; bottom: max(20px, env(safe-area-inset-bottom)); left: max(20px, env(safe-area-inset-left)); z-index: 70; width: min(350px, calc(100vw - 40px)); color: var(--text); } .room-chat-toggle { background: var(--panel, #1a222c); box-shadow: 0 4px 18px #0005; min-height: 44px; } .room-chat-unread { border-radius: 50%; min-width: 22px; padding: 2px 5px; background: var(--accent, #8dce66); color: #172210; font: 12px sans-serif; } .room-chat section { position: absolute; bottom: calc(100% + 8px); width: 100%; border: 1px solid var(--line, #35404c); border-radius: 12px; background: var(--panel, #1a222c); box-shadow: 0 8px 32px #0006; overflow: hidden; } .room-chat:not(.room-chat-playing) { position: static; width: 90%; max-width: 900px; margin: 0 auto 40px; } .room-chat:not(.room-chat-playing) section { position: static; margin-top: 8px; } .room-chat-heading { display: flex; align-items: center; justify-content: space-between; padding: 6px 12px; border-bottom: 1px solid var(--line); } .room-chat-heading button { display: grid; place-items: center; width: 44px; height: 44px; background: transparent; border: 0; color: inherit; cursor: pointer; } .room-chat-log { height: min(260px, 30dvh); overflow-y: auto; overscroll-behavior: contain; padding: 12px; } .room-chat-log p { margin: 0 0 14px; overflow-wrap: anywhere; font-size: 14px; } .room-chat-log strong, .room-chat-log p > span { display: block; } .room-chat-log strong { font-size: 12px; margin-bottom: 3px; } .room-chat-mine strong { color: var(--accent, #8dce66); } .room-chat form { display: flex; gap: 8px; padding: 10px; border-top: 1px solid var(--line); } .room-chat input { flex: 1; min-width: 0; min-height: 44px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg, #131b24); color: inherit; font: inherit; font-size: 16px; } .room-chat form .button { padding: 10px 12px; } .room-chat .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .room-chat .error-message { margin: 0; padding: 0 12px 10px; font-size: 13px; } @media (max-width: 700px) { .room-chat { left: max(10px, env(safe-area-inset-left)); width: min(350px, calc(100vw - 20px)); } .room-chat-playing { bottom: calc(max(10px, env(safe-area-inset-bottom)) + 68px); } .room-chat-playing section { max-height: calc(100dvh - 220px); overflow-y: auto; } }