.lobby-panel { border: var(--border); background: var(--color-bg-raised); padding: 1.25rem 1.5rem; margin: 1.5rem 0; max-width: 640px; } .lobby-panel__row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem; flex-wrap: wrap; } .prompt-inline { color: var(--color-accent-dim); } .lobby-panel input { background: var(--color-bg); border: 1px solid var(--color-accent-dim); color: var(--color-fg); font-family: var(--font-mono); padding: 0.3rem 0.5rem; } .lobby-panel button { background: transparent; border: 1px solid var(--color-accent-dim); color: var(--color-accent); font-family: var(--font-mono); padding: 0.35rem 0.75rem; cursor: pointer; } .lobby-panel button:hover:not(:disabled) { border-color: var(--color-accent); box-shadow: 0 0 6px var(--color-accent-dim); } .lobby-panel button:disabled { opacity: 0.4; cursor: not-allowed; } .lobby-error { color: var(--color-silver); border-left: 2px solid var(--color-accent-dim); padding-left: 0.6rem; margin: 0 0 1rem; } .room-list, .room-players { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; } .room-list__item { display: flex; align-items: center; gap: 0.75rem; border-bottom: var(--border); padding-bottom: 0.5rem; } .room-list__name { flex: 1; } .room-list__count, .room-list__state { color: var(--color-silver); font-size: 0.85rem; } .room-list__empty { color: var(--color-silver); } .room-players li::before { content: '- '; color: var(--color-accent-dim); } #tanks-canvas-container { position: relative; max-width: 900px; margin: 1.5rem 0; } .battle-layout { display: flex; align-items: flex-start; gap: 1.5rem; flex-wrap: wrap; } #battle-canvas-slot canvas { border: var(--border); background: var(--color-bg); display: block; } /* --- блок управления справа от поля --- */ .battle-controls { display: flex; flex-direction: column; align-items: center; gap: 1.25rem; padding-top: 0.5rem; max-width: 180px; } .battle-controls__hint { color: var(--color-silver); font-size: 0.8rem; text-align: center; margin: 0; } .dpad { display: grid; grid-template-columns: repeat(3, 44px); grid-template-rows: repeat(2, 44px); gap: 4px; } .dpad button { background: var(--color-bg-raised); border: 1px solid var(--color-accent-dim); color: var(--color-accent); font-family: var(--font-mono); font-size: 1.1rem; cursor: pointer; user-select: none; touch-action: none; } .dpad button:active { background: var(--color-accent-dim); color: var(--color-bg); } .dpad__up { grid-column: 2; grid-row: 1; } .dpad__left { grid-column: 1; grid-row: 2; } .dpad__right { grid-column: 3; grid-row: 2; } .dpad__down { grid-column: 2; grid-row: 2; } .fire-btn { background: var(--color-bg-raised); border: 1px solid var(--color-accent); color: var(--color-accent); font-family: var(--font-mono); text-transform: uppercase; letter-spacing: 0.08em; padding: 0.75rem 1.5rem; cursor: pointer; user-select: none; touch-action: none; } .fire-btn:active { background: var(--color-accent); color: var(--color-bg); } /* --- экран победы/поражения --- */ #battle-result-overlay { display: none; position: absolute; inset: 0; align-items: center; justify-content: center; background: rgba(10, 14, 12, 0.9); z-index: 5; } .battle-result { text-align: center; padding: 2rem; border: var(--border); background: var(--color-bg-raised); } .battle-result h2 { font-size: 3rem; margin: 0 0 1rem; letter-spacing: 0.05em; } .battle-result--win h2 { color: var(--color-accent); text-shadow: 0 0 16px var(--color-accent-dim); } .battle-result--lose h2 { color: var(--color-silver); } .battle-result--draw h2 { color: var(--color-silver); } .battle-result p { color: var(--color-fg); margin: 0 0 1.5rem; } .battle-result__actions { display: flex; gap: 1rem; justify-content: center; } .battle-result__actions button { background: transparent; border: 1px solid var(--color-accent-dim); color: var(--color-accent); font-family: var(--font-mono); padding: 0.5rem 1.25rem; cursor: pointer; } .battle-result__actions button:hover { border-color: var(--color-accent); box-shadow: 0 0 6px var(--color-accent-dim); }