#play { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; align-items: start; }
.tt-card { background: linear-gradient(180deg, var(--hi), transparent 65%), var(--panel2); border: 2px solid var(--line); border-radius: 4px; box-shadow: inset 0 1px 0 var(--hi), 3px 3px 0 var(--edge), 0 12px 26px rgba(0, 0, 0, 0.3); padding: 16px; }
#tetris { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.tt-main { display: flex; gap: 14px; align-items: flex-start; justify-content: center; width: 100%; }
.tt-stage { position: relative; width: min(280px, 62vw); }
.tt-stage canvas { display: block; width: 100%; height: auto; border: 2px solid var(--edge); border-radius: 4px; background: #0b0b12; touch-action: none; }
.tt-ov { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; background: rgba(8, 8, 14, 0.78); color: #fff; border: 0; border-radius: 4px; cursor: pointer; text-align: center; padding: 12px; font: inherit; }
.tt-ov[hidden] { display: none; }
.tt-ov b { font-family: var(--pixel); font-size: 28px; background: linear-gradient(90deg, #1E90FF, #FF3B30, #34C759, #FFD60A, #AF52DE); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tt-ov span { font-size: 14px; color: #cfd2dc; }
.tt-side { display: grid; gap: 8px; width: 96px; }
.tt-box { border: 2px solid var(--line); border-radius: 4px; padding: 6px 8px; text-align: center; background: var(--panel); }
.tt-box small { display: block; font-size: 11px; color: var(--mute); text-transform: uppercase; letter-spacing: 0.06em; }
.tt-box b { font-family: var(--pixel); font-size: 18px; color: var(--accent); word-break: break-all; }
.tt-box canvas { width: 72px; height: 72px; display: block; margin: 4px auto 0; }
.tt-pad { display: none; gap: 6px; flex-wrap: wrap; justify-content: center; }
.tt-pad button { min-width: 56px; min-height: 44px; padding: 8px 10px; border-radius: 4px; border: 2px solid var(--edge); background: var(--panel); color: var(--text); font-family: var(--pixel); touch-action: manipulation; }
@media (pointer: coarse) { .tt-pad { display: flex; } }
.tt-name { display: flex; gap: 8px; width: 100%; max-width: 380px; }
.tt-name input { flex: 1; min-width: 0; background: var(--panel); border: 2px solid var(--line); border-radius: 4px; padding: 10px 12px; color: var(--text); font-size: 16px; }
.tt-name input:disabled { opacity: 0.7; }
.tt-msg { margin: 0; font-size: 13px; color: var(--mute); text-align: center; min-height: 20px; }
.tt-board h2 { margin: 0 0 4px; font-size: 22px; }
.tt-board p { margin: 0 0 12px; font-size: 13px; color: var(--mute); }
#tt-lb { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
#tt-lb li { display: grid; grid-template-columns: 28px 1fr auto; gap: 8px; align-items: center; padding: 8px 10px; border: 2px solid var(--line); border-radius: 4px; background: var(--panel); }
#tt-lb li i { font-style: normal; font-family: var(--pixel); color: var(--mute); }
#tt-lb li:nth-child(1) i { color: #F5B820; } #tt-lb li:nth-child(2) i { color: #c9ced8; } #tt-lb li:nth-child(3) i { color: #d98a4e; }
#tt-lb li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#tt-lb li b { font-family: var(--pixel); color: var(--accent); }
#tt-lb li.me { border-color: var(--accent); }
#tt-lb li.empty { display: block; text-align: center; color: var(--mute); }
@media (max-width: 860px) { #play { grid-template-columns: 1fr; } }
