Spaces:
Sleeping
Sleeping
| /* PoolCoach TV (bàn giao 15) — layout nhìn xa 2–3 m, nền tối, chữ to. | |
| Class RIÊNG toàn bộ — trang TV không nạp style.css của app (không mượn | |
| class có event binding; bài học .btn-play 04/08). Đơn vị chữ theo vmin | |
| để cùng một tỉ lệ trên TV 32" lẫn cửa sổ dev nhỏ. */ | |
| * { box-sizing: border-box; margin: 0; padding: 0; } | |
| :root { | |
| --bg: #0b0f13; | |
| --text: #e8edf2; | |
| --muted: #93a1ad; | |
| --green: #17a35a; | |
| --card: #141a21; | |
| --card-b: #2a333d; | |
| } | |
| html, body { height: 100%; } | |
| body { | |
| background: var(--bg); | |
| color: var(--text); | |
| font-family: system-ui, "Segoe UI", sans-serif; | |
| overflow: hidden; | |
| } | |
| .hidden { display: none ; } | |
| .scr { height: 100vh; width: 100vw; } | |
| /* ------------------------------------------------ màn pair / màn chờ */ | |
| #scr-pair, #scr-wait { display: flex; align-items: center; justify-content: center; } | |
| .center-box { text-align: center; } | |
| .brand { | |
| font-size: 6vmin; | |
| font-weight: 650; | |
| color: var(--muted); | |
| margin-bottom: 4vmin; | |
| } | |
| .pair-code { | |
| font-size: 22vmin; | |
| font-weight: 800; | |
| letter-spacing: 2.5vmin; | |
| font-variant-numeric: tabular-nums; | |
| color: var(--text); | |
| text-shadow: 0 0 4vmin rgba(23, 163, 90, .35); | |
| margin-bottom: 4vmin; | |
| } | |
| .wait-ok { | |
| font-size: 9vmin; | |
| font-weight: 700; | |
| color: var(--green); | |
| margin-bottom: 4vmin; | |
| } | |
| .hint { font-size: 3.6vmin; line-height: 1.5; color: var(--muted); } | |
| .hint b { color: var(--text); } | |
| /* --------------------------------------------------- màn cú đánh (bước 4) */ | |
| #scr-shot { | |
| display: grid; | |
| grid-template-columns: 1fr minmax(24vw, 30vw); | |
| gap: 1.5vmin; | |
| padding: 1.5vmin; | |
| } | |
| #tv-table-wrap { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| min-width: 0; | |
| } | |
| .tv-panel { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1.5vmin; | |
| padding: 2vmin; | |
| background: var(--card); | |
| border: 1px solid var(--card-b); | |
| border-radius: 1.5vmin; | |
| overflow: hidden; | |
| } | |
| .tv-describe { | |
| font-size: 2.7vmin; | |
| line-height: 1.45; | |
| white-space: pre-wrap; | |
| } | |
| .tv-viz { display: flex; align-items: center; gap: 2vmin; } | |
| #tv-spin { width: 11vmin; height: 11vmin; flex: none; } | |
| .tv-chips { display: flex; flex-direction: column; gap: 1.2vmin; min-width: 0; } | |
| .tv-chip { | |
| font-size: 3.2vmin; | |
| font-weight: 700; | |
| padding: 1vmin 1.8vmin; | |
| background: #1d242c; | |
| border: 1px solid var(--card-b); | |
| border-radius: 1.2vmin; | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .tv-alts { display: flex; flex-direction: column; gap: 1vmin; margin-top: auto; } | |
| .tv-alt { | |
| font-size: 2.2vmin; | |
| color: var(--muted); | |
| padding: 1vmin 1.4vmin; | |
| border: 1px dashed var(--card-b); | |
| border-radius: 1vmin; | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .tv-alt b { color: var(--text); } | |
| /* ------------------------------------------------------- góc màn hình */ | |
| .tv-corner { | |
| position: fixed; | |
| right: 1.8vmin; | |
| bottom: 1.4vmin; | |
| display: flex; | |
| gap: 2vmin; | |
| font-size: 2.4vmin; | |
| color: var(--muted); | |
| font-variant-numeric: tabular-nums; | |
| } | |
| /* chỗ confidence CV — ĐỂ TRỐNG có chủ đích (chưa có CV, bàn giao sau) */ | |
| .tv-cv { opacity: .35; } | |
| .ws-down { | |
| position: fixed; | |
| left: 50%; | |
| bottom: 3vmin; | |
| transform: translateX(-50%); | |
| padding: 1.4vmin 3vmin; | |
| font-size: 2.8vmin; | |
| color: #ffd9d9; | |
| background: rgba(120, 25, 25, .92); | |
| border-radius: 1.2vmin; | |
| } | |