pokertools-arena 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +8 -0
- package/LICENSE +21 -0
- package/README.md +229 -0
- package/bin/pokertools-arena.mjs +197 -0
- package/dist/.nojekyll +0 -0
- package/dist/app.js +118427 -0
- package/dist/arena-env.js +2 -0
- package/dist/favicon.svg +4 -0
- package/dist/index.html +382 -0
- package/dist/og-image.png +0 -0
- package/dist/og-image.svg +190 -0
- package/dist/pokertools-arena.html +121106 -0
- package/dist/styles.css +2289 -0
- package/docs/architecture/CONTEXT.md +202 -0
- package/docs/diagnostics/SUMMARY.md +102 -0
- package/docs/diagnostics/summary.json +337 -0
- package/docs/legal/THIRD_PARTY_NOTICES.md +15 -0
- package/docs/releases/RELEASE_NOTES.md +171 -0
- package/docs/verification/0.3.x.md +250 -0
- package/package.json +77 -0
- package/src/app.js +2458 -0
- package/src/assets/favicon.svg +4 -0
- package/src/assets/og-image.png +0 -0
- package/src/assets/og-image.svg +190 -0
- package/src/benchmark/scenarios.js +108 -0
- package/src/env/arena-env.js +2 -0
- package/src/index.html +382 -0
- package/src/lib/decision-core.js +1288 -0
- package/src/shims/crypto.cjs +19 -0
- package/src/styles.css +2289 -0
package/dist/styles.css
ADDED
|
@@ -0,0 +1,2289 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
color-scheme: dark;
|
|
3
|
+
--bg: #090b0e;
|
|
4
|
+
--panel: #11151a;
|
|
5
|
+
--panel-2: #171c22;
|
|
6
|
+
--line: rgba(255,255,255,.09);
|
|
7
|
+
--text: #f5f7fa;
|
|
8
|
+
--muted: #8e99a7;
|
|
9
|
+
--accent: #b6ff52;
|
|
10
|
+
--accent-soft: rgba(182,255,82,.12);
|
|
11
|
+
--danger: #ff6b76;
|
|
12
|
+
--gold: #f1c35a;
|
|
13
|
+
--felt: #153c2e;
|
|
14
|
+
--felt-2: #0d2d22;
|
|
15
|
+
--shadow: 0 20px 60px rgba(0,0,0,.34);
|
|
16
|
+
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
17
|
+
}
|
|
18
|
+
* { box-sizing: border-box; }
|
|
19
|
+
body { margin: 0; background: radial-gradient(circle at 45% -10%, #1a232b 0, var(--bg) 42%); color: var(--text); min-height: 100vh; }
|
|
20
|
+
button,input,select { font: inherit; }
|
|
21
|
+
button { cursor: pointer; }
|
|
22
|
+
.app-shell { min-height: 100vh; padding: 18px 22px 24px; }
|
|
23
|
+
.topbar { display:flex; justify-content:space-between; align-items:center; max-width: 1600px; margin:0 auto 16px; }
|
|
24
|
+
.eyebrow { font-size: 11px; letter-spacing:.18em; color:var(--accent); font-weight:800; }
|
|
25
|
+
h1,h2,h3,p { margin:0; }
|
|
26
|
+
h1 { margin-top:3px; font-size:24px; letter-spacing:-.03em; }
|
|
27
|
+
h2 { margin-top:4px; font-size:22px; }
|
|
28
|
+
h3 { font-size:15px; margin-bottom:13px; }
|
|
29
|
+
.topbar-actions { display:flex; align-items:center; gap:8px; }
|
|
30
|
+
.button,.icon-button { border:1px solid var(--line); color:var(--text); background:var(--panel-2); border-radius:10px; padding:9px 13px; transition:.15s ease; }
|
|
31
|
+
.button:hover,.icon-button:hover { transform:translateY(-1px); border-color:rgba(255,255,255,.2); }
|
|
32
|
+
.button.primary { background:var(--accent); color:#10150b; border-color:var(--accent); font-weight:800; }
|
|
33
|
+
.button.danger { color:#ffb8be; border-color:rgba(255,107,118,.25); background:rgba(255,107,118,.09); }
|
|
34
|
+
.button.ghost { background:rgba(255,255,255,.035); }
|
|
35
|
+
.small-button { padding:7px 10px; font-size:12px; }
|
|
36
|
+
.icon-button { width:34px; height:34px; padding:0; font-size:22px; display:grid; place-items:center; }
|
|
37
|
+
.pill { padding:7px 10px; border-radius:999px; border:1px solid var(--line); font-size:12px; }
|
|
38
|
+
.pill.good { color:var(--accent); background:var(--accent-soft); }
|
|
39
|
+
.pill.warn { color:var(--gold); background:rgba(241,195,90,.08); }
|
|
40
|
+
.pill.neutral { color:var(--muted); }
|
|
41
|
+
.workspace { display:grid; grid-template-columns:minmax(680px,1fr) 390px; gap:14px; max-width:1600px; margin:0 auto; }
|
|
42
|
+
.arena-card,.inspector { background:rgba(17,21,26,.84); backdrop-filter:blur(16px); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); overflow:hidden; }
|
|
43
|
+
.arena-card { min-height:calc(100vh - 105px); display:flex; flex-direction:column; }
|
|
44
|
+
.arena-head { height:48px; padding:0 16px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; font-size:12px; }
|
|
45
|
+
.status-dot { width:8px;height:8px;border-radius:50%;display:inline-block;background:#4d5660;margin-right:6px;box-shadow:0 0 0 4px rgba(255,255,255,.02); }
|
|
46
|
+
.status-dot.running { background:var(--accent); box-shadow:0 0 16px rgba(182,255,82,.55); }
|
|
47
|
+
.status-dot.paused { background:var(--gold); }
|
|
48
|
+
.status-dot.error { background:var(--danger); }
|
|
49
|
+
.mono { font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace; }
|
|
50
|
+
.muted { color:var(--muted); }
|
|
51
|
+
.small { font-size:12px; }.tiny { font-size:10px; }
|
|
52
|
+
.poker-table { position:relative; flex:1; min-height:650px; overflow:hidden; }
|
|
53
|
+
.poker-table::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at center, rgba(255,255,255,.04), transparent 58%); pointer-events:none; }
|
|
54
|
+
.felt-ring { position:absolute; left:11%;right:11%;top:13%;bottom:13%;border-radius:49%;background:radial-gradient(ellipse at 50% 42%, #1b5641 0%, var(--felt) 44%, var(--felt-2) 100%); border:12px solid #222930; box-shadow:inset 0 0 70px rgba(0,0,0,.42), 0 26px 80px rgba(0,0,0,.45); }
|
|
55
|
+
.felt-ring::after { content:none; }
|
|
56
|
+
.seats-layer { position:absolute; inset:0; }
|
|
57
|
+
.seat { position:absolute; width:176px; min-height:112px; transform:translate(-50%,-50%); border:1px solid var(--line); background:linear-gradient(180deg, rgba(31,38,45,.97), rgba(14,18,23,.97)); border-radius:14px; padding:10px; box-shadow:0 10px 28px rgba(0,0,0,.32); transition:.18s ease; z-index:3; }
|
|
58
|
+
.seat.active { border-color:rgba(182,255,82,.65); box-shadow:0 0 0 2px rgba(182,255,82,.12),0 12px 32px rgba(0,0,0,.38),0 0 30px rgba(182,255,82,.12); }
|
|
59
|
+
.seat.busted { opacity:.42; filter:saturate(.5); }
|
|
60
|
+
.seat-head { display:flex;justify-content:space-between;gap:8px;align-items:flex-start; }
|
|
61
|
+
.seat-name { font-weight:800;font-size:13px; max-width:115px; overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
|
|
62
|
+
.seat-pos { font-size:9px;color:var(--muted);border:1px solid var(--line);padding:2px 4px;border-radius:5px; }
|
|
63
|
+
.seat-model { font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px; }
|
|
64
|
+
.seat-stack { display:flex;justify-content:space-between;align-items:baseline;margin:7px 0 6px; }
|
|
65
|
+
.seat-stack strong { font-size:16px; }.seat-stack span { color:var(--muted);font-size:10px; }
|
|
66
|
+
.hole-cards,.board { display:flex;gap:5px;align-items:center;justify-content:center; }
|
|
67
|
+
.card { width:35px;height:48px;border-radius:6px;background:#f7f7f2;color:#101214;border:1px solid rgba(0,0,0,.25);display:grid;place-items:center;font-weight:900;font-size:14px;box-shadow:0 4px 10px rgba(0,0,0,.28); }
|
|
68
|
+
.board .card { width:48px;height:66px;font-size:18px;border-radius:8px; }
|
|
69
|
+
.card.red { color:#d83b48; }
|
|
70
|
+
.card.empty { background:rgba(255,255,255,.045);border:1px dashed rgba(255,255,255,.13);box-shadow:none;color:transparent; }
|
|
71
|
+
.last-action { margin-top:6px;font-size:10px;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:12px; }
|
|
72
|
+
.table-center { position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;text-align:center;width:360px; }
|
|
73
|
+
.street-label { font-size:10px;letter-spacing:.15em;color:rgba(255,255,255,.62);font-weight:800;margin-bottom:8px; }
|
|
74
|
+
.pot-block { margin-top:11px; display:flex;gap:7px;justify-content:center;align-items:baseline; }
|
|
75
|
+
.pot-block strong { font-size:19px; }
|
|
76
|
+
.winner-banner { margin:0 14px 14px; padding:14px 16px; border:1px solid rgba(182,255,82,.26); background:rgba(182,255,82,.09); border-radius:12px; color:#dbffae; font-weight:800; }
|
|
77
|
+
.inspector { height:calc(100vh - 105px); min-height:650px; display:flex; flex-direction:column; }
|
|
78
|
+
.tabs { display:flex;border-bottom:1px solid var(--line);padding:7px;gap:5px; }
|
|
79
|
+
.tab { flex:1;border:0;background:transparent;color:var(--muted);padding:8px;border-radius:8px;font-weight:700; }
|
|
80
|
+
.tab.active { background:rgba(255,255,255,.06);color:var(--text); }
|
|
81
|
+
.tab-panel { display:none;min-height:0;flex:1;overflow:auto; }.tab-panel.active{display:flex;flex-direction:column;}
|
|
82
|
+
.panel-block { padding:14px;border-bottom:1px solid var(--line); }.panel-block.grow{flex:1;}
|
|
83
|
+
.panel-title { font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:800;margin-bottom:11px; }
|
|
84
|
+
.empty-state { font-size:12px;color:var(--muted);line-height:1.6;padding:10px 0; }
|
|
85
|
+
.decision-card { border:1px solid var(--line);background:rgba(255,255,255,.025);border-radius:12px;padding:12px; }
|
|
86
|
+
.decision-top { display:flex;justify-content:space-between;gap:10px; }
|
|
87
|
+
.decision-player { font-weight:900;font-size:15px; }.clock-wrap{text-align:right;}.decision-clock{font-size:28px;font-weight:900;font-variant-numeric:tabular-nums;}
|
|
88
|
+
.legal-actions { display:flex;flex-wrap:wrap;gap:5px;margin-top:11px; }.action-chip{font-size:10px;border:1px solid var(--line);padding:5px 7px;border-radius:7px;color:#c6ced8;background:rgba(255,255,255,.025);}
|
|
89
|
+
.decision-feed { display:flex;flex-direction:column;gap:8px; }.decision-item{border-left:2px solid rgba(182,255,82,.45);padding:8px 9px;background:rgba(255,255,255,.025);border-radius:0 8px 8px 0;}.decision-item.error{border-left-color:var(--danger)}
|
|
90
|
+
.decision-item-head{display:flex;justify-content:space-between;gap:8px;font-size:11px}.decision-item-action{font-weight:900}.decision-reason{margin-top:5px;font-size:11px;line-height:1.45;color:#b7c0cb}.decision-meta{margin-top:5px;font-size:9px;color:var(--muted)}
|
|
91
|
+
.event-log { font-size:10px;line-height:1.55;display:flex;flex-direction:column;gap:6px; }.event-row{padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.04)}.event-type{color:var(--accent)}
|
|
92
|
+
.stats-grid { display:flex;flex-direction:column;gap:8px; }.stat-card{border:1px solid var(--line);border-radius:10px;padding:10px}.stat-top{display:flex;justify-content:space-between;gap:8px}.stat-name{font-weight:800}.stat-model{font-size:9px;color:var(--muted)}.stat-values{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:9px}.metric{background:rgba(255,255,255,.025);border-radius:7px;padding:6px}.metric b{display:block;font-size:12px}.metric span{font-size:8px;color:var(--muted);text-transform:uppercase}
|
|
93
|
+
.setup-dialog { width:min(1180px,96vw);height:min(850px,94vh);padding:0;border:1px solid rgba(255,255,255,.13);border-radius:18px;background:#0e1216;color:var(--text);box-shadow:0 30px 100px rgba(0,0,0,.65); }
|
|
94
|
+
.setup-dialog::backdrop { background:rgba(0,0,0,.72);backdrop-filter:blur(5px); }
|
|
95
|
+
.setup-dialog form { height:100%;display:flex;flex-direction:column; }
|
|
96
|
+
.dialog-head,.dialog-footer { display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line); }.dialog-footer{border-top:1px solid var(--line);border-bottom:0;margin-top:auto;gap:15px;}
|
|
97
|
+
.setup-grid { overflow:auto;padding:16px 18px;display:grid;gap:20px; }.setup-section{border:1px solid var(--line);border-radius:12px;padding:14px;background:rgba(255,255,255,.018)}
|
|
98
|
+
.field-grid { display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:9px; }.field-grid label,.player-row label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;display:flex;flex-direction:column;gap:5px;}
|
|
99
|
+
input,select { width:100%;border:1px solid var(--line);background:#10151a;color:var(--text);border-radius:8px;padding:9px;outline:none; }.field-grid input:focus,.player-row input:focus,.player-row select:focus{border-color:rgba(182,255,82,.4)}
|
|
100
|
+
.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.players-editor{display:flex;flex-direction:column;gap:7px}.player-row{display:grid;grid-template-columns:34px 1fr 130px 1.7fr 1fr 34px;gap:8px;align-items:end;padding:8px;border:1px solid rgba(255,255,255,.05);border-radius:10px;background:rgba(255,255,255,.018)}
|
|
101
|
+
.seat-badge{height:35px;border-radius:8px;background:rgba(182,255,82,.09);color:var(--accent);display:grid;place-items:center;font-size:11px;font-weight:900}.setup-error{margin:0 18px 12px;padding:10px 12px;border:1px solid rgba(255,107,118,.25);background:rgba(255,107,118,.08);color:#ffb4ba;border-radius:9px;font-size:12px}
|
|
102
|
+
.hidden{display:none!important}
|
|
103
|
+
@media(max-width:1100px){.workspace{grid-template-columns:1fr}.inspector{height:auto;min-height:500px}.arena-card{min-height:720px}.field-grid{grid-template-columns:repeat(2,1fr)}.player-row{grid-template-columns:34px 1fr 120px 1.4fr}.provider-field{grid-column:2/4}.remove-player{grid-column:4}.poker-table{min-height:680px}}
|
|
104
|
+
@media(max-width:700px){.app-shell{padding:10px}.topbar{align-items:flex-start}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.workspace{display:block}.arena-card{min-height:650px}.inspector{margin-top:10px}.felt-ring{left:4%;right:4%;top:17%;bottom:17%}.seat{width:138px;min-height:98px;padding:8px}.seat-model{display:none}.card{width:28px;height:39px}.table-center{width:250px}.board .card{width:36px;height:50px}.player-row{grid-template-columns:34px 1fr}.player-row>*{grid-column:auto}.model-field,.provider-field{grid-column:1/3}.field-grid{grid-template-columns:1fr 1fr}}
|
|
105
|
+
|
|
106
|
+
/* Browser-only additions */
|
|
107
|
+
.wide-dialog { width:min(1320px,97vw); }
|
|
108
|
+
.connections-editor { display:flex; flex-direction:column; gap:8px; margin-top:10px; }
|
|
109
|
+
.connection-row { display:grid; grid-template-columns:150px 160px minmax(260px,1.5fr) minmax(170px,1fr) minmax(180px,1fr) auto minmax(120px,.7fr) 34px; gap:8px; align-items:end; padding:9px; border:1px solid rgba(255,255,255,.05); border-radius:10px; background:rgba(255,255,255,.018); }
|
|
110
|
+
.connection-row label { font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;display:flex;flex-direction:column;gap:5px; }
|
|
111
|
+
.connection-status { align-self:center; line-height:1.3; overflow-wrap:anywhere; }
|
|
112
|
+
.good-text { color:var(--accent)!important; }
|
|
113
|
+
.bad-text { color:#ff9ca5!important; }
|
|
114
|
+
.setup-note { margin-top:10px; line-height:1.5; }
|
|
115
|
+
.browser-player-row { grid-template-columns:34px 1fr 170px minmax(220px,1.5fr) 145px minmax(150px,.8fr) 34px; }
|
|
116
|
+
@media(max-width:1250px){
|
|
117
|
+
.connection-row{grid-template-columns:150px 150px 1fr 1fr;}
|
|
118
|
+
.connection-headers{grid-column:1/3}.connection-status{grid-column:3/5}.remove-connection{grid-column:4}
|
|
119
|
+
.browser-player-row{grid-template-columns:34px 1fr 160px 1fr}.browser-player-row .provider-field{grid-column:2/4}
|
|
120
|
+
}
|
|
121
|
+
@media(max-width:760px){
|
|
122
|
+
.connection-row{grid-template-columns:1fr 1fr}.connection-url,.connection-headers{grid-column:1/3}.connection-status{grid-column:1/3}.remove-connection{grid-column:2}
|
|
123
|
+
.browser-player-row{grid-template-columns:34px 1fr}.browser-player-row .model-field,.browser-player-row .provider-field{grid-column:1/3}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* pokertools-arena visual system */
|
|
127
|
+
:root{
|
|
128
|
+
--bg:#07090c;--panel:#0e1318;--panel-2:#141a20;--line:rgba(255,255,255,.10);
|
|
129
|
+
--text:#f5f7f9;--muted:#8f9ba8;--accent:#c6ff57;--accent-2:#86e94f;
|
|
130
|
+
--felt:#0d4a37;--felt-2:#082f25;--rail:#20262d;--rail-2:#101419;
|
|
131
|
+
}
|
|
132
|
+
html{background:var(--bg)}
|
|
133
|
+
body{background:
|
|
134
|
+
radial-gradient(circle at 50% -15%,rgba(70,92,107,.28),transparent 38%),
|
|
135
|
+
linear-gradient(180deg,#0a0d11 0%,#07090c 100%);overflow-x:hidden}
|
|
136
|
+
.app-shell{padding:16px 18px 22px}
|
|
137
|
+
.topbar{max-width:1680px;margin-bottom:12px}
|
|
138
|
+
h1{font-size:25px;display:flex;align-items:center;gap:9px;font-weight:850;letter-spacing:-.045em}
|
|
139
|
+
.brand-mark{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;background:linear-gradient(145deg,var(--accent),#8fe22e);color:#0a1306;box-shadow:0 6px 22px rgba(198,255,87,.18);font-size:18px}
|
|
140
|
+
.eyebrow{font-size:10px;letter-spacing:.2em}
|
|
141
|
+
.button{backdrop-filter:blur(12px)}
|
|
142
|
+
.sound-button.active{border-color:rgba(198,255,87,.32);color:var(--accent);background:rgba(198,255,87,.08)}
|
|
143
|
+
.workspace{grid-template-columns:minmax(760px,1fr) 410px;gap:12px;max-width:1680px}
|
|
144
|
+
.arena-card,.inspector{border-radius:20px;border-color:rgba(255,255,255,.085);background:rgba(12,16,20,.88)}
|
|
145
|
+
.arena-card{min-height:calc(100vh - 92px)}
|
|
146
|
+
.arena-head{height:46px;background:linear-gradient(180deg,rgba(255,255,255,.025),transparent)}
|
|
147
|
+
.poker-table{min-height:700px;isolation:isolate;perspective:1200px;background:
|
|
148
|
+
radial-gradient(ellipse at 50% 50%,rgba(23,78,59,.16),transparent 48%),
|
|
149
|
+
linear-gradient(180deg,rgba(255,255,255,.012),transparent)}
|
|
150
|
+
.poker-table::before{background:
|
|
151
|
+
radial-gradient(circle at 50% 48%,rgba(255,255,255,.045),transparent 41%),
|
|
152
|
+
linear-gradient(110deg,transparent 0 38%,rgba(255,255,255,.02) 43%,transparent 48%)}
|
|
153
|
+
.felt-ring{
|
|
154
|
+
left:9%;right:9%;top:10%;bottom:10%;border-radius:50%;
|
|
155
|
+
background:
|
|
156
|
+
radial-gradient(ellipse at 50% 38%,rgba(255,255,255,.055),transparent 43%),
|
|
157
|
+
repeating-radial-gradient(ellipse at 45% 45%,rgba(255,255,255,.010) 0 1px,transparent 1px 5px),
|
|
158
|
+
radial-gradient(ellipse at 50% 52%,#175d45 0%,var(--felt) 42%,var(--felt-2) 100%);
|
|
159
|
+
border:14px solid var(--rail);box-shadow:
|
|
160
|
+
inset 0 0 0 2px rgba(255,255,255,.045),
|
|
161
|
+
inset 0 0 100px rgba(0,0,0,.38),
|
|
162
|
+
0 8px 0 var(--rail-2),0 34px 78px rgba(0,0,0,.52);
|
|
163
|
+
}
|
|
164
|
+
.felt-ring::before{content:"";position:absolute;inset:16px;border:1px solid rgba(255,255,255,.055);border-radius:inherit;pointer-events:none}
|
|
165
|
+
.felt-ring::after{content:""}
|
|
166
|
+
.felt-brand{position:absolute;left:50%;top:59%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;opacity:.115;text-align:center;user-select:none;white-space:nowrap}
|
|
167
|
+
.felt-brand span{font-size:27px;line-height:1}.felt-brand strong{font-size:24px;letter-spacing:-.04em}.felt-brand small{text-transform:uppercase;letter-spacing:.28em;font-size:7px;margin-top:3px}
|
|
168
|
+
.fx-layer{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:hidden}
|
|
169
|
+
.seats-layer{z-index:4}
|
|
170
|
+
.seat{
|
|
171
|
+
width:184px;min-height:124px;padding:10px 11px 9px;border-radius:16px;
|
|
172
|
+
background:linear-gradient(180deg,rgba(29,36,43,.98),rgba(12,16,20,.985));
|
|
173
|
+
border-color:rgba(255,255,255,.105);box-shadow:0 12px 32px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.03);
|
|
174
|
+
transition:border-color .18s ease,box-shadow .18s ease,filter .18s ease,opacity .18s ease;
|
|
175
|
+
}
|
|
176
|
+
.seat::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(120deg,rgba(255,255,255,.035),transparent 32%)}
|
|
177
|
+
.seat.active{border-color:rgba(198,255,87,.67);box-shadow:0 0 0 2px rgba(198,255,87,.10),0 14px 38px rgba(0,0,0,.45),0 0 34px rgba(198,255,87,.12)}
|
|
178
|
+
.seat.active::after{content:"";position:absolute;inset:-5px;border:1px solid rgba(198,255,87,.18);border-radius:20px;animation:activeSeat 1.3s ease-in-out infinite;pointer-events:none}
|
|
179
|
+
@keyframes activeSeat{50%{opacity:.25;transform:scale(1.025)}}
|
|
180
|
+
.seat.busted{opacity:.32;filter:grayscale(.8) saturate(.2)}
|
|
181
|
+
.seat-head{position:relative;z-index:2}.seat-name{font-size:13px;max-width:120px}.seat-model{font-size:8.5px;margin-top:2px}.seat-pos{font-size:8px;background:rgba(255,255,255,.035)}
|
|
182
|
+
.seat-stack{position:relative;z-index:2;margin:7px 0 5px}.seat-stack strong{display:flex;align-items:center;gap:6px;font-size:15px}.seat-stack span{font-size:9px}
|
|
183
|
+
.chip-dot{width:12px;height:12px;border-radius:50%;background:repeating-conic-gradient(#f3f4ec 0 8deg,#db4f59 8deg 17deg);border:2px solid #b62e38;box-shadow:0 2px 5px rgba(0,0,0,.3);flex:0 0 auto}
|
|
184
|
+
.hole-cards{position:relative;z-index:3;gap:4px;min-height:51px}
|
|
185
|
+
.card{
|
|
186
|
+
position:relative;width:37px;height:51px;border-radius:7px;background:linear-gradient(145deg,#fff,#ecece6);color:#11151a;
|
|
187
|
+
border:1px solid rgba(255,255,255,.55);box-shadow:0 5px 12px rgba(0,0,0,.34),inset 0 0 0 1px rgba(0,0,0,.08);display:block;overflow:hidden;
|
|
188
|
+
transform-style:preserve-3d;will-change:transform,opacity;
|
|
189
|
+
}
|
|
190
|
+
.card.red{color:#d52f43}.card.black{color:#151a1f}
|
|
191
|
+
.card-corner{position:absolute;left:4px;top:3px;display:flex;flex-direction:column;align-items:center;line-height:.78;font-style:normal;font-size:9px;font-weight:900}.card-corner b{font-size:10px}.card-corner i{font-style:normal;font-size:8px;margin-top:2px}.card-corner.bottom{left:auto;top:auto;right:4px;bottom:3px;transform:rotate(180deg)}
|
|
192
|
+
.card-suit{position:absolute;inset:0;display:grid;place-items:center;font-size:22px;line-height:1;text-shadow:0 1px rgba(255,255,255,.4)}
|
|
193
|
+
.card.empty{display:grid;place-items:center;background:
|
|
194
|
+
linear-gradient(135deg,rgba(255,255,255,.04),transparent),
|
|
195
|
+
repeating-linear-gradient(45deg,#17232c 0 3px,#101a21 3px 6px);border:1px solid rgba(255,255,255,.09);box-shadow:inset 0 0 0 2px rgba(0,0,0,.16);color:rgba(255,255,255,.12)}
|
|
196
|
+
.card-back-mark{font-size:15px;color:rgba(255,255,255,.15)}
|
|
197
|
+
.board{gap:7px;min-height:70px;perspective:700px}.board .card{width:51px;height:70px;border-radius:9px}.board .card .card-suit{font-size:29px}.board .card .card-corner b{font-size:12px}.board .card .card-corner i{font-size:9px}
|
|
198
|
+
.last-action{position:relative;z-index:2;margin-top:5px;min-height:15px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#aab4bf}
|
|
199
|
+
.last-action.raise,.last-action.bet{color:#ffd96f}.last-action.call{color:#91cfff}.last-action.fold{color:#ff8f99}.last-action.check{color:#a9e894}
|
|
200
|
+
.fold-flash .hole-cards{animation:foldCards .55s ease both}@keyframes foldCards{50%{transform:translateY(-5px) rotate(-5deg);opacity:.45}100%{transform:translateY(8px) rotate(5deg);opacity:.62}}
|
|
201
|
+
.check-flash{animation:checkSeat .45s ease}@keyframes checkSeat{50%{box-shadow:0 0 0 5px rgba(127,214,255,.12),0 14px 38px rgba(0,0,0,.45)}}
|
|
202
|
+
.table-center{width:380px;z-index:3}.street-label{font-size:9px;letter-spacing:.24em;margin-bottom:9px}.pot-block{display:inline-flex;margin-top:12px;padding:6px 10px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(5,15,12,.38);backdrop-filter:blur(8px)}.pot-block strong{font-size:18px;color:#fff}
|
|
203
|
+
.action-toast{position:absolute;left:50%;top:-57px;transform:translateX(-50%);min-width:150px;padding:9px 13px;border-radius:999px;background:rgba(11,15,18,.92);border:1px solid rgba(255,255,255,.12);box-shadow:0 12px 30px rgba(0,0,0,.35);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;animation:toastIn .25s ease both;white-space:nowrap}.action-toast.raise,.action-toast.bet{color:#ffd96f}.action-toast.fold{color:#ff969e}.action-toast.call{color:#8bcaff}.action-toast.check{color:#b7ee9e}@keyframes toastIn{from{opacity:0;transform:translate(-50%,8px) scale(.95)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
|
|
204
|
+
.flying-chip{position:absolute;width:17px;height:17px;border-radius:50%;background:repeating-conic-gradient(#f6f1df 0 11deg,#e44857 11deg 21deg);border:3px solid #be2635;box-shadow:0 3px 8px rgba(0,0,0,.55);will-change:transform,opacity}.flying-chip.chip-1{filter:hue-rotate(110deg)}.flying-chip.chip-2{filter:hue-rotate(220deg)}
|
|
205
|
+
.winner-banner{margin:0 14px 14px;border-radius:13px;text-align:center;background:linear-gradient(90deg,rgba(198,255,87,.07),rgba(198,255,87,.13),rgba(198,255,87,.07));animation:winnerGlow 1.8s ease-in-out infinite alternate}@keyframes winnerGlow{to{box-shadow:0 0 32px rgba(198,255,87,.13)}}
|
|
206
|
+
.inspector{height:calc(100vh - 92px);min-height:700px}.tabs{position:sticky;top:0;z-index:5;background:rgba(14,19,24,.94);backdrop-filter:blur(12px)}
|
|
207
|
+
.decision-card{background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.012))}.decision-clock{font-size:31px}.action-chip{border-radius:999px;padding:6px 8px}.decision-item{transition:transform .15s ease}.decision-item:first-child{background:rgba(198,255,87,.035)}
|
|
208
|
+
|
|
209
|
+
/* Tablet */
|
|
210
|
+
@media(max-width:1180px){
|
|
211
|
+
.workspace{grid-template-columns:1fr}.arena-card{min-height:760px}.poker-table{min-height:710px}.inspector{height:auto;min-height:460px}.tabs{top:0}.felt-ring{left:8%;right:8%}.field-grid{grid-template-columns:repeat(3,1fr)}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/* Mobile spectator mode */
|
|
215
|
+
@media(max-width:720px){
|
|
216
|
+
.app-shell{padding:8px}.topbar{gap:8px;margin-bottom:8px;align-items:flex-start}.topbar>div:first-child{min-width:0}.eyebrow{font-size:7px;letter-spacing:.12em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}h1{font-size:18px;gap:6px}.brand-mark{width:24px;height:24px;border-radius:7px;font-size:13px}.topbar-actions{gap:5px;max-width:48vw}.topbar-actions .button{padding:7px 8px;font-size:10px}.enginePill{display:none}.pill{display:none}
|
|
217
|
+
.arena-card{min-height:618px;border-radius:14px}.arena-head{height:40px;padding:0 10px;font-size:10px}.tournamentMeta{font-size:8px}.poker-table{min-height:565px;height:70vh;max-height:640px}.felt-ring{left:2.5%;right:2.5%;top:15%;bottom:15%;border-width:8px;box-shadow:inset 0 0 55px rgba(0,0,0,.4),0 5px 0 #101419,0 20px 46px rgba(0,0,0,.48)}.felt-ring::before{inset:8px}.felt-brand{top:64%;opacity:.09}.felt-brand strong{font-size:14px}.felt-brand small{font-size:5px;letter-spacing:.18em}.felt-brand span{font-size:17px}
|
|
218
|
+
.seat{width:110px;min-height:82px;padding:6px 7px;border-radius:11px}.seat.active::after{inset:-3px;border-radius:13px}.seat-name{font-size:10px;max-width:76px}.seat-pos{font-size:6px;padding:1px 3px}.seat-model{display:none}.seat-stack{margin:3px 0 2px}.seat-stack strong{font-size:10px;gap:4px}.seat-stack>span{font-size:7px}.chip-dot{width:8px;height:8px;border-width:1px}.hole-cards{gap:2px;min-height:35px}.card{width:24px;height:34px;border-radius:4px}.card-suit{font-size:14px}.card-corner{left:2px;top:2px;font-size:5px}.card-corner b{font-size:6px}.card-corner i{font-size:5px;margin-top:1px}.card-corner.bottom{right:2px;bottom:2px}.last-action{font-size:6px;min-height:8px;margin-top:2px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
219
|
+
.table-center{width:185px}.street-label{font-size:7px;margin-bottom:5px}.board{gap:3px;min-height:48px}.board .card{width:31px;height:44px;border-radius:5px}.board .card .card-suit{font-size:18px}.board .card .card-corner b{font-size:7px}.board .card .card-corner i{font-size:6px}.pot-block{margin-top:7px;padding:4px 7px}.pot-block strong{font-size:12px}.pot-block .muted{font-size:7px}.table-center>.mono{font-size:7px}.action-toast{top:-43px;min-width:110px;max-width:180px;font-size:7px;padding:6px 8px;overflow:hidden;text-overflow:ellipsis}
|
|
220
|
+
.winner-banner{margin:0 8px 8px;padding:10px;font-size:11px}.inspector{margin-top:8px;min-height:390px;border-radius:14px}.tabs{padding:5px}.tab{font-size:10px;padding:7px}.panel-block{padding:10px}.decision-player{font-size:13px}.decision-clock{font-size:24px}.decision-model{font-size:8px}.legal-actions{gap:4px}.action-chip{font-size:8px;padding:5px 6px}.decision-reason{font-size:10px}.decision-meta{font-size:8px}
|
|
221
|
+
.setup-dialog{width:100vw;height:100dvh;max-width:none;max-height:none;border-radius:0;border:0}.dialog-head,.dialog-footer{padding:11px 12px}.dialog-head h2{font-size:18px}.setup-grid{padding:10px;gap:10px}.setup-section{padding:10px}.field-grid{grid-template-columns:1fr 1fr}.connection-row,.browser-player-row{grid-template-columns:1fr 1fr;padding:8px}.connection-url,.connection-headers,.browser-player-row .model-field,.browser-player-row .provider-field{grid-column:1/3}.connection-status{grid-column:1/3}.dialog-footer{flex-direction:column;align-items:stretch}.dialog-footer .button{width:100%}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
@media(max-width:420px){
|
|
225
|
+
.poker-table{min-height:540px;height:68vh}.seat{width:101px}.felt-ring{top:16%;bottom:16%}.table-center{width:170px}.board .card{width:28px;height:40px}.topbar-actions #exportBtn{display:none}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.seat{transition:none!important}}
|
|
229
|
+
.felt-ring::after{content:none!important}
|
|
230
|
+
|
|
231
|
+
/* Lobby-first seat configuration and compact navigation */
|
|
232
|
+
.app-shell{padding:10px 14px 18px}
|
|
233
|
+
.topbar{height:46px;max-width:1680px;margin:0 auto 9px;gap:12px;align-items:center}
|
|
234
|
+
.brandbar{display:flex;align-items:center;gap:8px;min-width:0}
|
|
235
|
+
.brand-copy{min-width:0;line-height:1.05}
|
|
236
|
+
.brand-title{font-size:16px;font-weight:900;letter-spacing:-.035em;white-space:nowrap}
|
|
237
|
+
.brand-subtitle{margin-top:3px;color:var(--muted);font-size:7.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
|
|
238
|
+
.brand-mark{width:28px;height:28px;border-radius:8px;font-size:15px;flex:0 0 auto}
|
|
239
|
+
.topbar-actions{gap:5px;justify-content:flex-end;min-width:0}
|
|
240
|
+
.top-action{min-height:30px;padding:6px 9px;border-radius:8px;display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:800;white-space:nowrap}
|
|
241
|
+
.action-icon{font-size:10px;line-height:1;opacity:.82}
|
|
242
|
+
.compact-pill{padding:5px 8px;font-size:9px;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
|
|
243
|
+
.topbar .button:hover{transform:none;background:rgba(255,255,255,.065)}
|
|
244
|
+
.topbar .button.primary:hover{background:#d0ff73}
|
|
245
|
+
.workspace{max-width:1680px}
|
|
246
|
+
.arena-card{min-height:calc(100vh - 72px)}
|
|
247
|
+
.inspector{height:calc(100vh - 72px)}
|
|
248
|
+
.arena-head{height:40px;padding:0 13px;font-size:10px}
|
|
249
|
+
.arena-status{display:flex;align-items:center;font-weight:800;letter-spacing:.05em}
|
|
250
|
+
|
|
251
|
+
/* Clickable lobby seats */
|
|
252
|
+
.lobby-mode .felt-ring{filter:saturate(.86)}
|
|
253
|
+
.lobby-mode .felt-brand{opacity:.10}
|
|
254
|
+
.lobby-mode .board{opacity:.16;filter:saturate(.2)}
|
|
255
|
+
.lobby-mode .pot-block{background:rgba(4,15,11,.54);border-color:rgba(198,255,87,.13)}
|
|
256
|
+
.lobby-mode .pot-block strong{color:var(--accent)}
|
|
257
|
+
.lobby-seat{appearance:none;text-align:left;color:var(--text);cursor:pointer;overflow:hidden}
|
|
258
|
+
.lobby-seat:hover{opacity:1!important;filter:none!important;transform:translate(-50%,-50%) scale(1.035);border-color:rgba(198,255,87,.48);box-shadow:0 16px 38px rgba(0,0,0,.48),0 0 0 2px rgba(198,255,87,.08),0 0 28px rgba(198,255,87,.08)}
|
|
259
|
+
.lobby-seat:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
|
|
260
|
+
.empty-seat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:100px;background:linear-gradient(180deg,rgba(18,25,30,.68),rgba(10,15,19,.64));border:1px dashed rgba(255,255,255,.16);box-shadow:0 10px 26px rgba(0,0,0,.25);opacity:.72}
|
|
261
|
+
.empty-seat-plus{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;border:1px solid rgba(198,255,87,.26);background:rgba(198,255,87,.06);color:var(--accent);font-size:19px;font-weight:400;line-height:1}
|
|
262
|
+
.empty-seat-number{font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.11em;color:#d5dbe1}
|
|
263
|
+
.empty-seat-copy{font-size:7px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}
|
|
264
|
+
.configured-seat{min-height:106px}
|
|
265
|
+
.configured-seat::after{content:"";position:absolute;inset:auto 11px 0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.45}
|
|
266
|
+
.configured-seat-meta{position:relative;z-index:2;display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}
|
|
267
|
+
.configured-seat-meta span{font-size:7px;text-transform:uppercase;letter-spacing:.08em;padding:3px 5px;border-radius:999px;background:rgba(255,255,255,.045);color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
268
|
+
.lobby-edit-hint{position:relative;z-index:2;margin-top:8px;font-size:8px;color:var(--accent);font-weight:800;text-transform:uppercase;letter-spacing:.08em}
|
|
269
|
+
.seat-summary{align-self:center;padding:5px 8px;border-radius:999px;border:1px solid rgba(198,255,87,.16);background:rgba(198,255,87,.055);color:var(--accent);font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
|
|
270
|
+
|
|
271
|
+
/* Dedicated seat editor */
|
|
272
|
+
.seat-dialog{width:min(650px,94vw);padding:0;border:1px solid rgba(255,255,255,.13);border-radius:18px;background:#0e1216;color:var(--text);box-shadow:0 30px 100px rgba(0,0,0,.7)}
|
|
273
|
+
.seat-dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(6px)}
|
|
274
|
+
.seat-dialog form{display:flex;flex-direction:column;min-height:0}
|
|
275
|
+
.seat-editor-body{padding:16px 18px}
|
|
276
|
+
.seat-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
|
|
277
|
+
.seat-editor-grid label{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;display:flex;flex-direction:column;gap:5px}
|
|
278
|
+
.seat-model-field,.seat-provider-field{grid-column:1/3}
|
|
279
|
+
.seat-editor-grid input:focus,.seat-editor-grid select:focus{border-color:rgba(198,255,87,.42);box-shadow:0 0 0 3px rgba(198,255,87,.05)}
|
|
280
|
+
.seat-editor-hint{margin-top:12px;padding-top:11px;border-top:1px solid rgba(255,255,255,.06);font-size:10px;line-height:1.55;color:var(--muted)}
|
|
281
|
+
.seat-lock-notice{margin-bottom:12px;padding:9px 10px;border:1px solid rgba(241,195,90,.2);border-radius:9px;background:rgba(241,195,90,.06);color:#f2d78d;font-size:10px}
|
|
282
|
+
.seat-editor-footer{margin-top:0}
|
|
283
|
+
.seat-footer-actions{display:flex;gap:7px;margin-left:auto}
|
|
284
|
+
.seat-dialog input:disabled,.seat-dialog select:disabled{opacity:.65;cursor:not-allowed}
|
|
285
|
+
|
|
286
|
+
@media(max-width:1180px){
|
|
287
|
+
.arena-card{min-height:730px}.inspector{height:auto}.poker-table{min-height:680px}
|
|
288
|
+
}
|
|
289
|
+
@media(max-width:760px){
|
|
290
|
+
.app-shell{padding:6px}
|
|
291
|
+
.topbar{height:40px;margin-bottom:6px;gap:6px}
|
|
292
|
+
.brandbar{gap:6px}.brand-mark{width:25px;height:25px;font-size:13px}.brand-title{font-size:13px}.brand-subtitle{display:none}
|
|
293
|
+
.topbar-actions{gap:3px;overflow-x:auto;scrollbar-width:none}.topbar-actions::-webkit-scrollbar{display:none}
|
|
294
|
+
.compact-pill{display:none!important}
|
|
295
|
+
.top-action{min-width:29px;min-height:29px;padding:5px 7px;justify-content:center}
|
|
296
|
+
.top-action .action-label{display:none}.top-action .action-icon{font-size:11px}
|
|
297
|
+
#startTopBtn .action-label,#pauseBtn .action-label,#stopBtn .action-label{display:inline;font-size:9px}
|
|
298
|
+
#startTopBtn,#pauseBtn,#stopBtn{padding-inline:8px}
|
|
299
|
+
.arena-card{min-height:610px}.arena-head{height:35px;padding:0 8px}.tournamentMeta{font-size:7px;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
300
|
+
.poker-table{min-height:560px;height:69vh;max-height:630px}
|
|
301
|
+
.empty-seat{min-height:70px}.empty-seat-plus{width:20px;height:20px;font-size:14px}.empty-seat-number{font-size:6px}.empty-seat-copy{font-size:5px}
|
|
302
|
+
.configured-seat-meta{margin-top:5px}.configured-seat-meta span{font-size:5px;padding:2px 3px}.lobby-edit-hint{font-size:5px;margin-top:4px}
|
|
303
|
+
.seat-dialog{width:calc(100vw - 14px);max-width:none;border-radius:15px}.seat-editor-body{padding:12px}.seat-editor-grid{gap:8px}.seat-dialog .dialog-head,.seat-dialog .dialog-footer{padding:10px 12px}
|
|
304
|
+
}
|
|
305
|
+
@media(max-width:440px){
|
|
306
|
+
.brand-title{font-size:12px}.topbar{gap:4px}.topbar-actions{max-width:72vw}
|
|
307
|
+
.top-action{padding:4px 6px}.seat-editor-grid{grid-template-columns:1fr}.seat-model-field,.seat-provider-field{grid-column:1}.seat-editor-footer{align-items:stretch}.seat-footer-actions{margin-left:0}.seat-footer-actions .button{flex:1}
|
|
308
|
+
.empty-seat{min-height:64px}.empty-seat-plus{width:18px;height:18px}.configured-seat{min-height:76px}
|
|
309
|
+
}
|
|
310
|
+
.button:disabled,.icon-button:disabled{opacity:.42;cursor:not-allowed;transform:none!important}
|
|
311
|
+
|
|
312
|
+
/* Collision-safe perimeter seating -------------------------------------------------
|
|
313
|
+
Seat centers are positioned in JS from their real rendered footprint. These
|
|
314
|
+
rules keep the cards compact enough for the smallest supported phone widths
|
|
315
|
+
while preserving readable hierarchy and generous hit targets. */
|
|
316
|
+
.seats-layer .seat[data-ring-point]{will-change:left,top}
|
|
317
|
+
.lobby-mode .lobby-seat{transition:left .24s ease,top .24s ease,border-color .18s ease,box-shadow .18s ease,filter .18s ease,opacity .18s ease,transform .18s ease}
|
|
318
|
+
@media(max-width:360px){
|
|
319
|
+
.seat{width:92px;min-height:76px;padding:5px 6px}
|
|
320
|
+
.seat-name{max-width:64px;font-size:9px}
|
|
321
|
+
.empty-seat{min-height:58px}
|
|
322
|
+
.empty-seat-plus{width:17px;height:17px;font-size:13px}
|
|
323
|
+
.empty-seat-number{font-size:5.5px}
|
|
324
|
+
.empty-seat-copy{font-size:4.5px}
|
|
325
|
+
.configured-seat{min-height:70px}
|
|
326
|
+
.configured-seat-meta{gap:3px;margin-top:4px}
|
|
327
|
+
.configured-seat-meta span{font-size:4.5px;padding:2px 3px}
|
|
328
|
+
.lobby-edit-hint{font-size:4.5px;margin-top:3px}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/* 0.2.5 — dark precision polish ------------------------------------------------ */
|
|
332
|
+
:root{
|
|
333
|
+
--bg:#08090b;
|
|
334
|
+
--panel:#0d0f12;
|
|
335
|
+
--panel-2:#121519;
|
|
336
|
+
--panel-3:#171a1f;
|
|
337
|
+
--line:rgba(224,232,238,.075);
|
|
338
|
+
--line-strong:rgba(224,232,238,.13);
|
|
339
|
+
--text:#e9edf0;
|
|
340
|
+
--muted:#77818b;
|
|
341
|
+
--accent:#9fb4c5;
|
|
342
|
+
--accent-soft:rgba(159,180,197,.09);
|
|
343
|
+
--success:#72b98a;
|
|
344
|
+
--blue:#6f9fd2;
|
|
345
|
+
--gold:#c5a15c;
|
|
346
|
+
--danger:#c85e69;
|
|
347
|
+
--felt:#0d5339;
|
|
348
|
+
--felt-2:#073524;
|
|
349
|
+
--rail:#1b1e22;
|
|
350
|
+
--rail-2:#0b0d0f;
|
|
351
|
+
--shadow:0 24px 72px rgba(0,0,0,.42);
|
|
352
|
+
}
|
|
353
|
+
html,body{margin:0;width:100%;background:var(--bg)}
|
|
354
|
+
body{
|
|
355
|
+
color:var(--text);
|
|
356
|
+
background:
|
|
357
|
+
radial-gradient(circle at 50% -12%,rgba(67,76,84,.16),transparent 36%),
|
|
358
|
+
linear-gradient(180deg,#0a0b0d 0%,#07080a 100%);
|
|
359
|
+
overflow-x:hidden;
|
|
360
|
+
}
|
|
361
|
+
body:has(dialog[open]){overflow:hidden}
|
|
362
|
+
.button,.icon-button{background:#121519;border-color:var(--line);color:#dce2e7;box-shadow:none}
|
|
363
|
+
.button:hover,.icon-button:hover{border-color:var(--line-strong);background:#171a1f}
|
|
364
|
+
.button.primary{background:#d5dce1;border-color:#d5dce1;color:#0a0c0e;box-shadow:0 4px 14px rgba(0,0,0,.18)}
|
|
365
|
+
.button.primary:hover{background:#e1e6ea!important;border-color:#e1e6ea}
|
|
366
|
+
.button.danger{color:#e79aa1;border-color:rgba(200,94,105,.22);background:rgba(200,94,105,.07)}
|
|
367
|
+
.sound-button.active{border-color:rgba(111,159,210,.26);color:#9bc2ea;background:rgba(111,159,210,.07)}
|
|
368
|
+
.pill.good{color:#9bd2ad;background:rgba(114,185,138,.08);border-color:rgba(114,185,138,.18)}
|
|
369
|
+
.status-dot.running{background:var(--success);box-shadow:0 0 12px rgba(114,185,138,.32)}
|
|
370
|
+
.status-dot.paused{background:var(--gold)}
|
|
371
|
+
.status-dot.error{background:var(--danger)}
|
|
372
|
+
.good-text{color:#92cfa6!important}.bad-text{color:#df8a92!important}
|
|
373
|
+
.brand-mark{background:linear-gradient(145deg,#d2d9de,#8fa2b0);color:#080a0b;box-shadow:0 6px 20px rgba(0,0,0,.24)}
|
|
374
|
+
.eyebrow,.dialog-kicker,.section-label{color:#82909b}
|
|
375
|
+
.arena-card,.inspector{background:rgba(12,14,17,.94);border-color:var(--line);box-shadow:0 18px 56px rgba(0,0,0,.34)}
|
|
376
|
+
.arena-head{background:linear-gradient(180deg,rgba(255,255,255,.018),transparent)}
|
|
377
|
+
.poker-table{background:radial-gradient(ellipse at 50% 52%,rgba(20,78,54,.12),transparent 50%),#0b0d10}
|
|
378
|
+
.felt-ring{
|
|
379
|
+
background:
|
|
380
|
+
radial-gradient(ellipse at 50% 36%,rgba(255,255,255,.045),transparent 43%),
|
|
381
|
+
repeating-radial-gradient(ellipse at 45% 45%,rgba(255,255,255,.008) 0 1px,transparent 1px 5px),
|
|
382
|
+
radial-gradient(ellipse at 50% 52%,#146047 0%,var(--felt) 44%,var(--felt-2) 100%);
|
|
383
|
+
border-color:var(--rail);
|
|
384
|
+
box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),inset 0 0 105px rgba(0,0,0,.42),0 8px 0 var(--rail-2),0 30px 72px rgba(0,0,0,.5)
|
|
385
|
+
}
|
|
386
|
+
.felt-ring::before{border-color:rgba(255,255,255,.045)}
|
|
387
|
+
.felt-brand{opacity:.085}
|
|
388
|
+
.seat{background:linear-gradient(180deg,rgba(25,28,33,.985),rgba(11,13,16,.99));border-color:rgba(232,238,242,.09)}
|
|
389
|
+
.seat.active{border-color:rgba(114,185,138,.46);box-shadow:0 0 0 2px rgba(114,185,138,.07),0 14px 38px rgba(0,0,0,.46),0 0 24px rgba(114,185,138,.07)}
|
|
390
|
+
.seat.active::after{border-color:rgba(114,185,138,.12)}
|
|
391
|
+
.configured-seat::after{background:linear-gradient(90deg,transparent,var(--success),transparent);opacity:.38}
|
|
392
|
+
.lobby-seat:hover{border-color:rgba(159,180,197,.3);box-shadow:0 16px 38px rgba(0,0,0,.48),0 0 0 2px rgba(159,180,197,.045)}
|
|
393
|
+
.empty-seat-plus{border-color:rgba(159,180,197,.2);background:rgba(159,180,197,.055);color:#b8c6d0}
|
|
394
|
+
.lobby-edit-hint{color:#9babb7}
|
|
395
|
+
.seat-summary{border-color:rgba(114,185,138,.16);background:rgba(114,185,138,.055);color:#98cbaa}
|
|
396
|
+
.last-action.raise,.last-action.bet,.action-toast.raise,.action-toast.bet{color:#d8b56d}
|
|
397
|
+
.last-action.call,.action-toast.call{color:#8eb6df}
|
|
398
|
+
.last-action.fold,.action-toast.fold{color:#d87982}
|
|
399
|
+
.last-action.check,.action-toast.check{color:#8fc5a1}
|
|
400
|
+
.decision-item{border-left-color:rgba(111,159,210,.42)}
|
|
401
|
+
.decision-item:first-child{background:rgba(111,159,210,.035)}
|
|
402
|
+
.event-type{color:#94aaba}
|
|
403
|
+
.winner-banner{border-color:rgba(114,185,138,.2);background:rgba(114,185,138,.065);color:#a6d5b5;animation:none}
|
|
404
|
+
|
|
405
|
+
/* True viewport fit on desktop: no accidental 2–20px document overflow. */
|
|
406
|
+
@media(min-width:1181px){
|
|
407
|
+
html,body{height:100%;overflow:hidden}
|
|
408
|
+
.app-shell{height:100dvh;min-height:0;padding:10px 14px;display:flex;flex-direction:column}
|
|
409
|
+
.topbar{flex:0 0 46px;height:46px;margin:0 auto 8px;width:100%}
|
|
410
|
+
.workspace{flex:1;min-height:0;width:100%;height:auto}
|
|
411
|
+
.arena-card,.inspector{height:100%;min-height:0}
|
|
412
|
+
.poker-table{flex:1;min-height:0}
|
|
413
|
+
.tab-panel{min-height:0}
|
|
414
|
+
}
|
|
415
|
+
@media(min-width:1181px) and (max-height:730px){
|
|
416
|
+
.app-shell{padding-top:7px;padding-bottom:7px}
|
|
417
|
+
.topbar{flex-basis:40px;height:40px;margin-bottom:6px}
|
|
418
|
+
.brand-mark{width:25px;height:25px}.brand-title{font-size:14px}.brand-subtitle{display:none}
|
|
419
|
+
.top-action{min-height:28px;padding:5px 8px}
|
|
420
|
+
.arena-head{height:36px}
|
|
421
|
+
.seat{width:164px;min-height:104px;padding:8px 9px}.seat-model{font-size:7.5px}.hole-cards{min-height:45px}.card{width:33px;height:45px}
|
|
422
|
+
.board .card{width:45px;height:62px}.table-center{width:340px}
|
|
423
|
+
}
|
|
424
|
+
@media(max-width:1180px){
|
|
425
|
+
html,body{height:auto;min-height:100%;overflow-y:auto}
|
|
426
|
+
.app-shell{height:auto;min-height:100dvh}
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/* Modal system */
|
|
430
|
+
dialog{color-scheme:dark}
|
|
431
|
+
.setup-dialog,.seat-dialog{
|
|
432
|
+
background:#0b0d10;
|
|
433
|
+
border:1px solid #25292f;
|
|
434
|
+
border-radius:20px;
|
|
435
|
+
box-shadow:0 36px 120px rgba(0,0,0,.72),0 0 0 1px rgba(255,255,255,.018) inset;
|
|
436
|
+
}
|
|
437
|
+
.setup-dialog{width:min(1240px,calc(100vw - 36px));height:min(820px,calc(100dvh - 36px))}
|
|
438
|
+
.seat-dialog{width:min(640px,calc(100vw - 28px));max-height:min(760px,calc(100dvh - 28px))}
|
|
439
|
+
.setup-dialog::backdrop,.seat-dialog::backdrop{background:rgba(2,3,4,.78);backdrop-filter:blur(8px) saturate(.7)}
|
|
440
|
+
.dialog-head{
|
|
441
|
+
flex:0 0 auto;padding:18px 20px 16px;border-bottom:1px solid var(--line);
|
|
442
|
+
background:linear-gradient(180deg,#111419,#0d0f12);gap:18px
|
|
443
|
+
}
|
|
444
|
+
.dialog-title-copy{min-width:0}.dialog-title-copy h2{margin:3px 0 4px;font-size:22px;letter-spacing:-.035em}.dialog-title-copy p{color:var(--muted);font-size:11px;line-height:1.45}
|
|
445
|
+
.dialog-kicker{font-size:8px;font-weight:900;letter-spacing:.17em;text-transform:uppercase}
|
|
446
|
+
.dialog-head-actions{display:flex;align-items:center;gap:9px;flex:0 0 auto}
|
|
447
|
+
.modal-badge{padding:5px 8px;border:1px solid var(--line);border-radius:999px;color:#87929c;background:#0a0c0f;font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
|
|
448
|
+
.seat-badge-modal{color:#93bca1;border-color:rgba(114,185,138,.15);background:rgba(114,185,138,.04)}
|
|
449
|
+
.dialog-head .icon-button{width:31px;height:31px;border-radius:9px;font-size:18px;color:#8d98a2;background:#0b0d10}
|
|
450
|
+
.setup-grid{padding:16px 18px 20px;gap:14px;background:#090b0d}
|
|
451
|
+
.setup-section{padding:15px;border:1px solid var(--line);border-radius:14px;background:#0e1114;box-shadow:0 1px rgba(255,255,255,.015) inset}
|
|
452
|
+
.section-head{align-items:center}.section-head h3{margin:2px 0 4px;font-size:14px;letter-spacing:-.015em}.section-label{font-size:7.5px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
|
|
453
|
+
.connections-editor{gap:9px}
|
|
454
|
+
.connection-row{padding:11px;border:1px solid var(--line);border-radius:12px;background:#0a0c0f}
|
|
455
|
+
.connection-row:hover{border-color:rgba(224,232,238,.11)}
|
|
456
|
+
.field-grid{gap:10px}
|
|
457
|
+
.field-grid label,.connection-row label,.seat-editor-grid label{color:#7c8791;font-size:8px;font-weight:800;letter-spacing:.075em}
|
|
458
|
+
input,select{
|
|
459
|
+
min-height:38px;padding:9px 10px;background:#090b0e;border:1px solid #252a30;border-radius:9px;color:#e4e9ed;
|
|
460
|
+
transition:border-color .14s ease,box-shadow .14s ease,background .14s ease
|
|
461
|
+
}
|
|
462
|
+
input:hover,select:hover{border-color:#30363d;background:#0b0e11}
|
|
463
|
+
input:focus,select:focus,.seat-editor-grid input:focus,.seat-editor-grid select:focus{border-color:#536777;box-shadow:0 0 0 3px rgba(111,159,210,.07);background:#0b0e11}
|
|
464
|
+
input::placeholder{color:#4e5862}
|
|
465
|
+
.setup-note{margin-top:10px;display:flex;gap:8px;align-items:flex-start;padding:9px 10px;border-radius:9px;background:#0a0c0f;border:1px solid rgba(255,255,255,.045);color:#69737d;font-size:9px;line-height:1.5}
|
|
466
|
+
.note-dot{width:6px;height:6px;margin-top:4px;border-radius:50%;background:var(--blue);opacity:.72;flex:0 0 auto}
|
|
467
|
+
.dialog-footer{flex:0 0 auto;padding:12px 18px;border-top:1px solid var(--line);background:#0c0e11}
|
|
468
|
+
.dialog-security{display:flex;align-items:center;gap:8px;color:#6f7983;font-size:9px;line-height:1.35;max-width:720px}.security-dot{width:6px;height:6px;border-radius:50%;background:var(--success);opacity:.75;flex:0 0 auto}
|
|
469
|
+
.dialog-footer .button.primary{min-width:120px}
|
|
470
|
+
.setup-error{border-color:rgba(200,94,105,.18);background:rgba(200,94,105,.06);color:#dc9299}
|
|
471
|
+
|
|
472
|
+
.seat-dialog form{max-height:inherit}
|
|
473
|
+
.seat-editor-body{padding:18px 20px;background:#090b0d;overflow:auto}
|
|
474
|
+
.seat-editor-grid{gap:12px}
|
|
475
|
+
.seat-model-field,.seat-provider-field{grid-column:1/3}
|
|
476
|
+
.model-input-wrap{display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:6px}
|
|
477
|
+
.model-input-wrap input{min-width:0}
|
|
478
|
+
.field-icon-button{width:38px;height:38px;border:1px solid #252a30;border-radius:9px;background:#0d1013;color:#88949e;font-size:16px;cursor:pointer;transition:.14s ease}
|
|
479
|
+
.field-icon-button:hover{background:#14181c;color:#c0c9d0;border-color:#343b43}.field-icon-button:disabled{opacity:.42;cursor:wait}
|
|
480
|
+
.field-help{margin-top:1px;color:#66717b;font-size:8px;line-height:1.35;text-transform:none;letter-spacing:0;font-weight:600;min-height:11px}
|
|
481
|
+
.field-help[data-tone="good"]{color:#7fae8f}.field-help[data-tone="bad"]{color:#c77a82}
|
|
482
|
+
.seat-editor-hint{display:flex;gap:9px;align-items:flex-start;margin-top:15px;padding:11px 12px;border:1px solid rgba(111,159,210,.09);border-radius:10px;background:rgba(111,159,210,.025);font-size:9px;color:#75818b}
|
|
483
|
+
.privacy-mark{color:#7ea8d2;font-size:10px;line-height:1.4}
|
|
484
|
+
.seat-lock-notice{border-color:rgba(197,161,92,.16);background:rgba(197,161,92,.05);color:#c7ad78}
|
|
485
|
+
.seat-editor-footer{background:#0c0e11}
|
|
486
|
+
|
|
487
|
+
@media(max-width:760px){
|
|
488
|
+
.setup-dialog{width:100vw;height:100dvh;max-height:none;border:0;border-radius:0}
|
|
489
|
+
.dialog-head{padding:13px 14px}.dialog-title-copy h2{font-size:19px}.dialog-title-copy p{font-size:9px}.modal-badge{display:none}
|
|
490
|
+
.setup-grid{padding:10px;gap:10px}.setup-section{padding:11px;border-radius:12px}
|
|
491
|
+
.connection-row{padding:9px}.dialog-footer{padding:10px 12px}
|
|
492
|
+
.dialog-security{font-size:8px}
|
|
493
|
+
.seat-dialog{width:calc(100vw - 12px);max-height:calc(100dvh - 12px);border-radius:16px}
|
|
494
|
+
.seat-editor-body{padding:12px}.seat-editor-grid{gap:9px}
|
|
495
|
+
}
|
|
496
|
+
@media(max-width:440px){
|
|
497
|
+
.dialog-head-actions{gap:5px}.seat-editor-grid{grid-template-columns:1fr}.seat-model-field,.seat-provider-field{grid-column:1}
|
|
498
|
+
.seat-footer-actions{width:100%}.seat-editor-footer{gap:8px}.seat-editor-footer>.button{width:100%}
|
|
499
|
+
}
|
|
500
|
+
@media(min-width:761px){
|
|
501
|
+
.setup-dialog{height:auto;max-height:calc(100dvh - 36px)}
|
|
502
|
+
.setup-dialog form{height:auto;max-height:calc(100dvh - 36px)}
|
|
503
|
+
.setup-grid{max-height:calc(100dvh - 180px)}
|
|
504
|
+
}
|
|
505
|
+
@media(min-width:761px){
|
|
506
|
+
.setup-dialog{max-height:min(780px,calc(100dvh - 36px))}
|
|
507
|
+
.setup-dialog form{max-height:min(780px,calc(100dvh - 36px))}
|
|
508
|
+
.setup-grid{max-height:min(620px,calc(100dvh - 180px))}
|
|
509
|
+
}
|
|
510
|
+
@media(min-width:761px){
|
|
511
|
+
.setup-dialog{height:min(720px,calc(100dvh - 36px));max-height:min(720px,calc(100dvh - 36px))}
|
|
512
|
+
.setup-dialog form{height:100%;max-height:100%}
|
|
513
|
+
.setup-grid{max-height:none;min-height:0;flex:1}
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
/* 0.2.6 — reliability telemetry + table hierarchy -------------------------- */
|
|
517
|
+
.winner-banner{
|
|
518
|
+
flex:0 0 auto;
|
|
519
|
+
margin:10px 12px 0;
|
|
520
|
+
min-height:44px;
|
|
521
|
+
padding:9px 13px;
|
|
522
|
+
display:flex;
|
|
523
|
+
align-items:center;
|
|
524
|
+
justify-content:center;
|
|
525
|
+
gap:9px;
|
|
526
|
+
border:1px solid rgba(114,185,138,.18);
|
|
527
|
+
border-radius:11px;
|
|
528
|
+
background:linear-gradient(90deg,rgba(114,185,138,.035),rgba(114,185,138,.09),rgba(114,185,138,.035));
|
|
529
|
+
color:#d8e9de;
|
|
530
|
+
box-shadow:0 8px 26px rgba(0,0,0,.16);
|
|
531
|
+
font-size:12px;
|
|
532
|
+
line-height:1.2;
|
|
533
|
+
letter-spacing:-.01em;
|
|
534
|
+
}
|
|
535
|
+
.winner-icon{font-size:17px;filter:saturate(.75)}
|
|
536
|
+
.winner-line{display:flex;align-items:baseline;justify-content:center;gap:6px;min-width:0;flex-wrap:wrap}
|
|
537
|
+
.winner-line strong{font-size:13px;color:#f0f5f2}
|
|
538
|
+
.winner-line b{font-weight:800;color:#9dcfaf}
|
|
539
|
+
|
|
540
|
+
.table-brand{
|
|
541
|
+
display:inline-flex;
|
|
542
|
+
align-items:center;
|
|
543
|
+
justify-content:center;
|
|
544
|
+
gap:7px;
|
|
545
|
+
margin:0 auto 10px;
|
|
546
|
+
padding:5px 9px;
|
|
547
|
+
border:1px solid rgba(255,255,255,.055);
|
|
548
|
+
border-radius:999px;
|
|
549
|
+
background:rgba(3,18,12,.18);
|
|
550
|
+
color:rgba(238,246,241,.54);
|
|
551
|
+
backdrop-filter:blur(5px);
|
|
552
|
+
user-select:none;
|
|
553
|
+
}
|
|
554
|
+
.table-brand-mark{font-size:13px;color:rgba(157,207,175,.72);line-height:1}
|
|
555
|
+
.table-brand-copy{display:flex;align-items:baseline;gap:7px;white-space:nowrap}
|
|
556
|
+
.table-brand-copy strong{font-size:10px;letter-spacing:-.015em;color:rgba(239,246,242,.65)}
|
|
557
|
+
.table-brand-copy small{font-size:5.5px;font-weight:800;text-transform:uppercase;letter-spacing:.16em;color:rgba(216,227,221,.34)}
|
|
558
|
+
.street-label{margin-top:0}
|
|
559
|
+
|
|
560
|
+
/* Hole cards prioritize the rank in the corner; the large center suit carries suit identity. */
|
|
561
|
+
.hole-cards .card.rank-only-corners{width:39px;height:54px;border-radius:7px}
|
|
562
|
+
.hole-cards .card.rank-only-corners .card-corner{left:4px;top:4px;line-height:1}
|
|
563
|
+
.hole-cards .card.rank-only-corners .card-corner b{font-size:12px;letter-spacing:-.04em}
|
|
564
|
+
.hole-cards .card.rank-only-corners .card-corner.bottom{left:auto;top:auto;right:4px;bottom:4px}
|
|
565
|
+
.hole-cards .card.rank-only-corners .card-suit{font-size:24px}
|
|
566
|
+
|
|
567
|
+
.stat-reliability{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:6px;padding-top:7px;border-top:1px solid var(--line)}
|
|
568
|
+
.stat-reliability span{display:flex;justify-content:space-between;gap:4px;padding:4px 5px;border-radius:6px;background:rgba(255,255,255,.018);color:#717c86;font-size:7px;text-transform:uppercase;letter-spacing:.035em}
|
|
569
|
+
.stat-reliability b{color:#aeb8c0;font-size:8px}
|
|
570
|
+
|
|
571
|
+
@media(max-width:720px){
|
|
572
|
+
.winner-banner{margin:6px 7px 0;min-height:36px;padding:7px 9px;font-size:9px;gap:6px}
|
|
573
|
+
.winner-icon{font-size:13px}.winner-line{gap:4px}.winner-line strong{font-size:10px}
|
|
574
|
+
.table-brand{margin-bottom:6px;padding:3px 6px;gap:4px}.table-brand-mark{font-size:9px}.table-brand-copy{gap:4px}.table-brand-copy strong{font-size:7px}.table-brand-copy small{font-size:4px;letter-spacing:.11em}
|
|
575
|
+
.hole-cards .card.rank-only-corners{width:25px;height:36px}.hole-cards .card.rank-only-corners .card-corner{left:2px;top:2px}.hole-cards .card.rank-only-corners .card-corner b{font-size:7px}.hole-cards .card.rank-only-corners .card-corner.bottom{right:2px;bottom:2px}.hole-cards .card.rank-only-corners .card-suit{font-size:15px}
|
|
576
|
+
.stat-reliability{grid-template-columns:repeat(2,minmax(0,1fr))}
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
/* 0.2.7 — context, table HUD, modal polish, decision sanity suite --------- */
|
|
580
|
+
:root{
|
|
581
|
+
--bg:#07090b;
|
|
582
|
+
--panel:#0d1014;
|
|
583
|
+
--panel-2:#12161b;
|
|
584
|
+
--panel-3:#171c22;
|
|
585
|
+
--line:rgba(232,238,243,.085);
|
|
586
|
+
--line-strong:rgba(232,238,243,.14);
|
|
587
|
+
--text:#eef2f4;
|
|
588
|
+
--muted:#77838d;
|
|
589
|
+
--success:#72b98a;
|
|
590
|
+
--blue:#6f9fd2;
|
|
591
|
+
--amber:#c5a15c;
|
|
592
|
+
--danger:#c85e69;
|
|
593
|
+
--accent:#92c9a4;
|
|
594
|
+
--accent-soft:rgba(114,185,138,.09);
|
|
595
|
+
--felt:#104a36;
|
|
596
|
+
--felt-2:#092d22;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
/* Compact semantic information directly below community cards. */
|
|
600
|
+
.table-hud{
|
|
601
|
+
margin:12px auto 0;
|
|
602
|
+
display:flex;
|
|
603
|
+
justify-content:center;
|
|
604
|
+
align-items:stretch;
|
|
605
|
+
gap:5px;
|
|
606
|
+
max-width:100%;
|
|
607
|
+
flex-wrap:wrap;
|
|
608
|
+
}
|
|
609
|
+
.hud-pill{
|
|
610
|
+
min-width:58px;
|
|
611
|
+
padding:5px 8px 6px;
|
|
612
|
+
display:flex;
|
|
613
|
+
flex-direction:column;
|
|
614
|
+
align-items:center;
|
|
615
|
+
gap:1px;
|
|
616
|
+
border:1px solid rgba(235,242,238,.075);
|
|
617
|
+
border-radius:8px;
|
|
618
|
+
background:rgba(4,18,13,.30);
|
|
619
|
+
box-shadow:0 5px 16px rgba(0,0,0,.10),inset 0 1px rgba(255,255,255,.018);
|
|
620
|
+
backdrop-filter:blur(7px);
|
|
621
|
+
}
|
|
622
|
+
.hud-pill span{font-size:6.5px;font-weight:900;letter-spacing:.13em;color:rgba(222,232,227,.40)}
|
|
623
|
+
.hud-pill strong{font-size:10px;font-weight:850;color:rgba(244,248,246,.84);font-variant-numeric:tabular-nums;white-space:nowrap}
|
|
624
|
+
.hud-pot{border-color:rgba(114,185,138,.13);background:rgba(28,88,62,.18)}
|
|
625
|
+
.hud-pot strong{font-size:14px;color:#e8f4ec}
|
|
626
|
+
.lobby-mode .hud-pill{opacity:.64}.lobby-mode .hud-pot{opacity:1}
|
|
627
|
+
|
|
628
|
+
/* Dark modal system: clear hierarchy, restrained accents, better scanning. */
|
|
629
|
+
.setup-dialog,.seat-dialog,.tests-dialog{
|
|
630
|
+
position:relative;
|
|
631
|
+
overflow:hidden;
|
|
632
|
+
border:1px solid #252a30;
|
|
633
|
+
background:#090b0e;
|
|
634
|
+
box-shadow:0 42px 150px rgba(0,0,0,.78),0 0 0 1px rgba(255,255,255,.018) inset;
|
|
635
|
+
}
|
|
636
|
+
.setup-dialog::before,.seat-dialog::before,.tests-dialog::before{
|
|
637
|
+
content:"";position:absolute;z-index:4;left:0;right:0;top:0;height:2px;
|
|
638
|
+
background:linear-gradient(90deg,transparent,rgba(111,159,210,.50) 27%,rgba(114,185,138,.55) 62%,transparent);
|
|
639
|
+
pointer-events:none;
|
|
640
|
+
}
|
|
641
|
+
.dialog-head{background:linear-gradient(180deg,#111419 0%,#0c0f12 100%);border-bottom-color:#20252b}
|
|
642
|
+
.dialog-head h2{color:#f2f5f7}.dialog-kicker{color:#71808b}
|
|
643
|
+
.dialog-title-copy p{max-width:720px;color:#707c86}
|
|
644
|
+
.setup-section{background:linear-gradient(180deg,#0e1115,#0b0e11);border-color:#20252b}
|
|
645
|
+
.setup-section:hover{border-color:#282e35}
|
|
646
|
+
.dialog-footer{background:#0b0e11;border-top-color:#20252b}
|
|
647
|
+
.seat-editor-body{background:linear-gradient(180deg,#090b0e,#080a0d)}
|
|
648
|
+
.seat-editor-hint{background:rgba(111,159,210,.025);border-color:rgba(111,159,210,.10)}
|
|
649
|
+
|
|
650
|
+
.tests-dialog{
|
|
651
|
+
width:min(1320px,calc(100vw - 32px));
|
|
652
|
+
height:min(850px,calc(100dvh - 32px));
|
|
653
|
+
padding:0;border-radius:20px;color:var(--text);
|
|
654
|
+
}
|
|
655
|
+
.tests-dialog::backdrop{background:rgba(2,3,4,.80);backdrop-filter:blur(8px) saturate(.7)}
|
|
656
|
+
.tests-shell{height:100%;display:flex;flex-direction:column;min-height:0}
|
|
657
|
+
.tests-body{flex:1;min-height:0;overflow:auto;padding:16px 18px 20px;background:#080a0c}
|
|
658
|
+
.tests-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 14px;border:1px solid #20252b;border-radius:12px;background:#0d1014;position:sticky;top:0;z-index:3;box-shadow:0 8px 22px rgba(0,0,0,.22)}
|
|
659
|
+
.tests-copy{display:flex;flex-direction:column;gap:3px}.tests-copy strong{font-size:12px}.tests-copy span{font-size:9px;color:var(--muted);line-height:1.4}
|
|
660
|
+
.tests-status{font-size:9px;line-height:1.5;padding:10px 2px}
|
|
661
|
+
.tests-empty{padding:34px 20px;border:1px dashed #252b31;border-radius:12px;text-align:center;color:#68747e;font-size:11px}
|
|
662
|
+
.tests-summary{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px}.tests-summary span{padding:5px 8px;border:1px solid #20252b;border-radius:999px;background:#0c0f12;color:#77838d;font-size:8px;text-transform:uppercase;letter-spacing:.06em}.tests-summary b{color:#dce3e7;font-size:9px}
|
|
663
|
+
.tests-grid{min-width:860px;border:1px solid #20252b;border-radius:12px;overflow:hidden;background:#0b0e11}
|
|
664
|
+
.tests-grid-head,.tests-grid-row{display:grid;grid-template-columns:minmax(240px,1.35fr) repeat(var(--test-agent-count,3),minmax(180px,1fr))}
|
|
665
|
+
.tests-grid-head{position:sticky;top:61px;z-index:2;background:#11151a;border-bottom:1px solid #252b31}
|
|
666
|
+
.tests-grid-head>div{padding:9px 10px;border-right:1px solid #20252b;color:#7c8790;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.tests-grid-head>div:last-child{border-right:0}.tests-grid-head strong{display:block;color:#dce2e6;font-size:9px;text-transform:none;letter-spacing:0}.tests-grid-head small{display:block;margin-top:2px;color:#65717a;font-size:7px;text-transform:none;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
667
|
+
.tests-grid-row{border-bottom:1px solid #1d2227}.tests-grid-row:last-child{border-bottom:0}.tests-grid-row>div{border-right:1px solid #1d2227}.tests-grid-row>div:last-child{border-right:0}
|
|
668
|
+
.test-spot{padding:10px 11px;background:#0c0f12}.test-spot>span{display:block;color:#63717a;font-size:7px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.test-spot strong{display:block;margin-top:3px;font-size:10px;color:#e1e6e9}.test-spot p{margin-top:4px;color:#6d7982;font-size:8px;line-height:1.4}.test-spot em{display:block;margin-top:5px;color:#829a89;font-size:7px;font-style:normal;font-weight:800}
|
|
669
|
+
.test-cell{padding:9px 10px;min-height:82px;background:#090c0f;color:#75818a;font-size:8px}.test-cell.pass{background:rgba(114,185,138,.035)}.test-cell.fail{background:rgba(200,94,105,.035)}.test-cell.running{display:flex;align-items:center;gap:6px;color:#8c9aa5}.test-cell.pending{display:grid;place-items:center}.test-cell-top{display:flex;justify-content:space-between;gap:6px;align-items:flex-start}.test-cell-top strong{font-size:7px;letter-spacing:.08em;color:#7fbe93}.test-cell.fail .test-cell-top strong,.test-cell.fail>strong{color:#d27d85}.test-cell-top b{font-size:8px;color:#dce2e5;text-align:right}.test-cell>span{display:block;margin-top:3px;color:#5f6b74;font-size:7px}.test-cell p{margin:5px 0 0;color:#7b8790;line-height:1.35;font-size:7.5px}.test-state-dot{width:6px;height:6px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px rgba(111,159,210,.08);animation:testPulse 1s infinite alternate}@keyframes testPulse{to{opacity:.35}}
|
|
670
|
+
.tests-footer{justify-content:space-between}.tests-footer .button{flex:0 0 auto}
|
|
671
|
+
|
|
672
|
+
@media(max-width:720px){
|
|
673
|
+
.table-hud{gap:3px;margin-top:7px;max-width:205px}.hud-pill{min-width:36px;padding:3px 4px 4px;border-radius:6px}.hud-pill span{font-size:4.5px}.hud-pill strong{font-size:7px}.hud-pot strong{font-size:9px}
|
|
674
|
+
.tests-dialog{width:100vw;height:100dvh;max-height:none;border:0;border-radius:0}.tests-body{padding:10px}.tests-toolbar{top:0;padding:10px;align-items:flex-end}.tests-copy span{font-size:8px}.tests-grid{min-width:760px}.tests-grid-head{top:55px}.tests-footer{align-items:stretch}.tests-footer .button{width:100%}
|
|
675
|
+
}
|
|
676
|
+
.poker-profile{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:9px;padding:7px;border:1px solid rgba(114,185,138,.09);border-radius:8px;background:rgba(114,185,138,.025)}
|
|
677
|
+
.poker-profile>div{text-align:center;min-width:0}.poker-profile b{display:block;color:#b9d9c4;font-size:9px;font-variant-numeric:tabular-nums}.poker-profile span{display:block;margin-top:2px;color:#65726b;font-size:6px;font-weight:900;letter-spacing:.07em}
|
|
678
|
+
.seat.all-in:not(.busted){border-color:rgba(197,161,92,.28);box-shadow:0 10px 28px rgba(0,0,0,.32),0 0 24px rgba(197,161,92,.055)}
|
|
679
|
+
.seat.all-in:not(.busted) .last-action{color:#c7ad78}
|
|
680
|
+
@media(max-width:720px){.table-center{width:220px}.table-hud{max-width:220px;flex-wrap:nowrap}.hud-pill{min-width:0;flex:1 1 0;padding-left:3px;padding-right:3px}}
|
|
681
|
+
|
|
682
|
+
/* 0.2.8 — viewport-fit table, lighter rendering, refined felt identity -------- */
|
|
683
|
+
.table-brand{
|
|
684
|
+
margin:0 auto 12px;
|
|
685
|
+
padding:0;
|
|
686
|
+
gap:8px;
|
|
687
|
+
border:0;
|
|
688
|
+
border-radius:0;
|
|
689
|
+
background:transparent;
|
|
690
|
+
backdrop-filter:none;
|
|
691
|
+
color:rgba(231,240,235,.62);
|
|
692
|
+
opacity:.82;
|
|
693
|
+
}
|
|
694
|
+
.table-brand-mark{
|
|
695
|
+
width:22px;height:22px;display:grid;place-items:center;
|
|
696
|
+
border:1px solid rgba(154,203,171,.23);border-radius:7px;
|
|
697
|
+
background:rgba(6,34,23,.34);color:#9bc9aa;font-size:11px;
|
|
698
|
+
box-shadow:inset 0 1px rgba(255,255,255,.025);
|
|
699
|
+
}
|
|
700
|
+
.table-brand-copy{display:grid;gap:1px;text-align:left;line-height:1;align-items:start}
|
|
701
|
+
.table-brand-copy strong{font-size:11px;font-weight:850;letter-spacing:-.025em;color:rgba(240,246,242,.76)}
|
|
702
|
+
.table-brand-copy small{font-size:5.5px;letter-spacing:.18em;color:rgba(215,229,220,.34)}
|
|
703
|
+
|
|
704
|
+
/* Keep paint work local and avoid expensive permanent GPU layers. */
|
|
705
|
+
.poker-table{contain:layout paint style}
|
|
706
|
+
.seat{contain:layout paint style;will-change:auto}
|
|
707
|
+
.card{will-change:auto}
|
|
708
|
+
.tab-panel:not(.active){content-visibility:hidden}
|
|
709
|
+
.fx-layer{contain:strict}
|
|
710
|
+
.flying-chip{will-change:transform,opacity}
|
|
711
|
+
.hud-pill,.table-brand{backdrop-filter:none}
|
|
712
|
+
.seat.active::after{animation:none;opacity:.72}
|
|
713
|
+
|
|
714
|
+
/* A real side-by-side spectator layout on ordinary laptop/tablet widths. */
|
|
715
|
+
@media(min-width:860px){
|
|
716
|
+
html,body{height:100%;overflow:hidden}
|
|
717
|
+
.app-shell{height:100dvh;min-height:0;padding:8px 10px;display:flex;flex-direction:column}
|
|
718
|
+
.topbar{flex:0 0 42px;height:42px;margin:0 auto 7px;width:100%;max-width:1720px}
|
|
719
|
+
.workspace{
|
|
720
|
+
flex:1;min-height:0;width:100%;max-width:1720px;
|
|
721
|
+
grid-template-columns:minmax(0,1fr) clamp(270px,25vw,360px);
|
|
722
|
+
gap:9px;
|
|
723
|
+
}
|
|
724
|
+
.arena-card,.inspector{height:100%;min-height:0;border-radius:16px}
|
|
725
|
+
.arena-card{min-height:0}
|
|
726
|
+
.inspector{min-height:0;height:100%}
|
|
727
|
+
.arena-head{flex:0 0 38px;height:38px}
|
|
728
|
+
.poker-table{flex:1;min-height:0;height:auto;max-height:none}
|
|
729
|
+
.winner-banner{margin:7px 9px 0;min-height:36px;padding:7px 10px}
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
/* Undo the older stack-at-1180 rule: keep the table beside the inspector. */
|
|
733
|
+
@media(min-width:860px) and (max-width:1180px){
|
|
734
|
+
.workspace{grid-template-columns:minmax(0,1fr) clamp(260px,28vw,315px)}
|
|
735
|
+
.arena-card{min-height:0}
|
|
736
|
+
.poker-table{min-height:0;height:auto;max-height:none}
|
|
737
|
+
.inspector{height:100%;min-height:0;margin-top:0}
|
|
738
|
+
.field-grid{grid-template-columns:repeat(3,1fr)}
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
/* Automatic table density keeps every seat inside the visible table. */
|
|
742
|
+
.poker-table[data-density="compact"] .seat{width:154px;min-height:104px;padding:8px 9px;border-radius:13px}
|
|
743
|
+
.poker-table[data-density="compact"] .seat-name{font-size:11px;max-width:100px}
|
|
744
|
+
.poker-table[data-density="compact"] .seat-model{font-size:7.5px}
|
|
745
|
+
.poker-table[data-density="compact"] .seat-stack{margin:5px 0 4px}
|
|
746
|
+
.poker-table[data-density="compact"] .seat-stack strong{font-size:13px}
|
|
747
|
+
.poker-table[data-density="compact"] .hole-cards .card.rank-only-corners{width:33px;height:46px}
|
|
748
|
+
.poker-table[data-density="compact"] .table-center{width:330px}
|
|
749
|
+
.poker-table[data-density="compact"] .board .card{width:45px;height:62px}
|
|
750
|
+
.poker-table[data-density="compact"] .felt-ring{left:7%;right:7%;top:8%;bottom:8%}
|
|
751
|
+
|
|
752
|
+
.poker-table[data-density="tight"] .seat{width:122px;min-height:84px;padding:6px 7px;border-radius:11px}
|
|
753
|
+
.poker-table[data-density="tight"] .seat-name{font-size:9px;max-width:82px}
|
|
754
|
+
.poker-table[data-density="tight"] .seat-model{display:none}
|
|
755
|
+
.poker-table[data-density="tight"] .seat-pos{font-size:6px;padding:1px 3px}
|
|
756
|
+
.poker-table[data-density="tight"] .seat-stack{margin:3px 0 2px}
|
|
757
|
+
.poker-table[data-density="tight"] .seat-stack strong{font-size:10px;gap:4px}
|
|
758
|
+
.poker-table[data-density="tight"] .seat-stack>span{font-size:7px}
|
|
759
|
+
.poker-table[data-density="tight"] .chip-dot{width:8px;height:8px;border-width:1px}
|
|
760
|
+
.poker-table[data-density="tight"] .hole-cards{gap:2px;min-height:35px}
|
|
761
|
+
.poker-table[data-density="tight"] .hole-cards .card.rank-only-corners{width:25px;height:36px;border-radius:5px}
|
|
762
|
+
.poker-table[data-density="tight"] .hole-cards .card.rank-only-corners .card-corner b{font-size:7px}
|
|
763
|
+
.poker-table[data-density="tight"] .hole-cards .card.rank-only-corners .card-suit{font-size:15px}
|
|
764
|
+
.poker-table[data-density="tight"] .last-action{font-size:6px;min-height:8px;margin-top:2px}
|
|
765
|
+
.poker-table[data-density="tight"] .table-center{width:245px}
|
|
766
|
+
.poker-table[data-density="tight"] .table-brand{margin-bottom:7px;gap:5px}
|
|
767
|
+
.poker-table[data-density="tight"] .table-brand-mark{width:17px;height:17px;border-radius:5px;font-size:8px}
|
|
768
|
+
.poker-table[data-density="tight"] .table-brand-copy strong{font-size:8px}
|
|
769
|
+
.poker-table[data-density="tight"] .table-brand-copy small{font-size:4px;letter-spacing:.12em}
|
|
770
|
+
.poker-table[data-density="tight"] .street-label{font-size:7px;margin-bottom:5px}
|
|
771
|
+
.poker-table[data-density="tight"] .board{gap:3px;min-height:48px}
|
|
772
|
+
.poker-table[data-density="tight"] .board .card{width:31px;height:44px;border-radius:5px}
|
|
773
|
+
.poker-table[data-density="tight"] .board .card .card-suit{font-size:18px}
|
|
774
|
+
.poker-table[data-density="tight"] .table-hud{margin-top:7px;gap:3px;max-width:240px;flex-wrap:nowrap}
|
|
775
|
+
.poker-table[data-density="tight"] .hud-pill{min-width:0;flex:1 1 0;padding:3px 4px 4px}
|
|
776
|
+
.poker-table[data-density="tight"] .hud-pill span{font-size:4.5px}
|
|
777
|
+
.poker-table[data-density="tight"] .hud-pill strong{font-size:7px}
|
|
778
|
+
.poker-table[data-density="tight"] .hud-pot strong{font-size:9px}
|
|
779
|
+
.poker-table[data-density="tight"] .felt-ring{left:4%;right:4%;top:7%;bottom:7%;border-width:9px}
|
|
780
|
+
|
|
781
|
+
/* Only genuinely narrow screens stack the inspector below the table. */
|
|
782
|
+
@media(max-width:859px){
|
|
783
|
+
html,body{height:auto;min-height:100%;overflow-y:auto}
|
|
784
|
+
.app-shell{height:auto;min-height:100dvh}
|
|
785
|
+
.workspace{display:block}
|
|
786
|
+
.arena-card{min-height:0;height:auto}
|
|
787
|
+
.poker-table{height:clamp(500px,67dvh,610px);min-height:500px;max-height:610px}
|
|
788
|
+
.inspector{height:auto;min-height:360px;margin-top:8px}
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
@media(max-width:520px){
|
|
792
|
+
.poker-table{height:clamp(470px,64dvh,555px);min-height:470px}
|
|
793
|
+
.table-brand{margin-bottom:6px}
|
|
794
|
+
}
|
|
795
|
+
.arena-card,.inspector,.tabs{backdrop-filter:none}
|
|
796
|
+
@media(min-width:860px) and (max-height:700px){
|
|
797
|
+
.topbar{flex-basis:38px;height:38px;margin-bottom:5px}
|
|
798
|
+
.brand-mark{width:24px;height:24px}.brand-title{font-size:13px}.brand-subtitle{display:none}
|
|
799
|
+
.top-action{min-height:27px;padding:4px 7px}
|
|
800
|
+
.arena-head{flex-basis:34px;height:34px}
|
|
801
|
+
.tabs{padding:4px}.tab{padding:6px;font-size:10px}
|
|
802
|
+
.panel-block{padding:9px}.panel-title{margin-bottom:7px;font-size:9px}
|
|
803
|
+
.decision-clock{font-size:24px}.decision-card{padding:9px}
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
/* 0.2.9 — compact modal system + generic OpenAI-compatible connections ------- */
|
|
807
|
+
:root{
|
|
808
|
+
--ui-1:4px;
|
|
809
|
+
--ui-2:8px;
|
|
810
|
+
--ui-3:12px;
|
|
811
|
+
--ui-4:16px;
|
|
812
|
+
--control-h:34px;
|
|
813
|
+
--radius-sm:8px;
|
|
814
|
+
--radius-md:12px;
|
|
815
|
+
--modal-bg:#0b0d10;
|
|
816
|
+
--modal-surface:#101318;
|
|
817
|
+
--modal-border:rgba(232,238,243,.09);
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
/* Header stays intentionally quiet: game state belongs on the table. */
|
|
821
|
+
.topbar{height:36px;flex-basis:36px;margin-bottom:5px;gap:8px}
|
|
822
|
+
.brandbar{gap:7px}.brand-mark{width:24px;height:24px;border-radius:7px;font-size:12px}.brand-title{font-size:13px;line-height:1}
|
|
823
|
+
.topbar-actions{gap:4px}.top-action{min-height:28px;height:28px;padding:0 8px;border-radius:7px;font-size:9px;gap:4px}.action-icon{font-size:9px}
|
|
824
|
+
|
|
825
|
+
/* Shared controls. */
|
|
826
|
+
.setup-dialog,.seat-dialog,.tests-dialog{overflow:hidden!important;background:var(--modal-bg);border:1px solid var(--modal-border);border-radius:14px;box-shadow:0 28px 90px rgba(0,0,0,.62)}
|
|
827
|
+
.setup-dialog::backdrop,.seat-dialog::backdrop,.tests-dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(3px)}
|
|
828
|
+
.setup-dialog{width:min(760px,calc(100vw - 24px));height:auto;max-height:min(820px,calc(100dvh - 24px));padding:0}
|
|
829
|
+
.seat-dialog{width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px)}
|
|
830
|
+
.tests-dialog{width:min(980px,calc(100vw - 24px));height:min(780px,calc(100dvh - 24px));max-height:calc(100dvh - 24px)}
|
|
831
|
+
.setup-dialog form,.seat-dialog form,.tests-shell{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}
|
|
832
|
+
.dialog-head{min-height:48px;padding:8px 12px;gap:10px;border-bottom:1px solid var(--modal-border);background:#0d1014;flex:0 0 auto}
|
|
833
|
+
.dialog-head h2{margin:0;font-size:15px;line-height:1.1;letter-spacing:-.015em}.dialog-title-row,.section-title-row,.field-label-row{display:flex;align-items:center;gap:6px;min-width:0}
|
|
834
|
+
.dialog-body,.tests-body{min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
|
|
835
|
+
.setup-body{padding:12px;display:grid;gap:12px}.seat-editor-body{padding:12px}.tests-body{padding:12px}
|
|
836
|
+
.dialog-footer{min-height:48px;padding:8px 12px;border-top:1px solid var(--modal-border);border-bottom:0;background:#0d1014;flex:0 0 auto}
|
|
837
|
+
.compact-footer{justify-content:flex-end}.split-footer{justify-content:space-between}.seat-footer-actions{display:flex;gap:6px;margin-left:auto}
|
|
838
|
+
|
|
839
|
+
.button,.icon-button,.field-icon-button,input,select{box-sizing:border-box}
|
|
840
|
+
.button{min-height:var(--control-h);padding:0 12px;border-radius:var(--radius-sm);font-size:10px;font-weight:800;line-height:1;white-space:nowrap}
|
|
841
|
+
.small-button{min-height:30px;height:30px;padding-inline:10px;font-size:9px}
|
|
842
|
+
.icon-button{width:30px;height:30px;min-width:30px;border-radius:var(--radius-sm);display:grid;place-items:center;padding:0}
|
|
843
|
+
input,select{width:100%;min-width:0;height:var(--control-h);padding:0 9px;border-radius:var(--radius-sm);font-size:11px;background:#0a0d10;border:1px solid var(--modal-border);color:var(--text)}
|
|
844
|
+
input:focus,select:focus{outline:none;border-color:rgba(146,201,164,.34);box-shadow:0 0 0 3px rgba(146,201,164,.05)}
|
|
845
|
+
label{min-width:0}
|
|
846
|
+
|
|
847
|
+
/* Information is opt-in instead of permanently occupying the modal. */
|
|
848
|
+
.info-button{position:relative;display:inline-grid;place-items:center;width:18px;height:18px;min-width:18px;padding:0;border:1px solid rgba(232,238,243,.12);border-radius:50%;background:#12161a;color:#7d8992;font:800 10px/1 system-ui;cursor:help;text-transform:none;letter-spacing:0}
|
|
849
|
+
.info-button:hover,.info-button:focus-visible{color:#d8e0e5;border-color:rgba(146,201,164,.32);outline:none}
|
|
850
|
+
/* Tooltips are rendered by app.js as one fixed-position element attached to the
|
|
851
|
+
topmost open <dialog>. `position:fixed` escapes the modal's overflow clipping
|
|
852
|
+
and attaching it inside the dialog keeps it in the dialog's top layer, so the
|
|
853
|
+
whole tooltip is always visible. See showTooltip() in app.js. */
|
|
854
|
+
.ui-tooltip{position:fixed;z-index:2147483646;top:0;left:0;width:max-content;max-width:min(320px,calc(100vw - 16px));padding:8px 10px;border:1px solid #2a3036;border-radius:8px;background:#15191e;color:#b6c0c7;font:500 10px/1.45 system-ui;text-align:left;text-transform:none;letter-spacing:0;box-shadow:0 14px 38px rgba(0,0,0,.5);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease,visibility .12s ease}
|
|
855
|
+
.ui-tooltip.is-visible{opacity:1;visibility:visible}
|
|
856
|
+
.ui-tooltip::before{content:"";position:absolute;left:var(--tip-arrow,50%);width:8px;height:8px;margin-left:-4px;background:#15191e;border:1px solid #2a3036;transform:rotate(45deg);pointer-events:none}
|
|
857
|
+
.ui-tooltip[data-placement="bottom"]::before{top:-5px;border-right:0;border-bottom:0}
|
|
858
|
+
.ui-tooltip[data-placement="top"]::before{bottom:-5px;border-left:0;border-top:0}
|
|
859
|
+
.inline-info{width:16px;height:16px;min-width:16px;font-size:9px}.field-label-row{justify-content:flex-start}
|
|
860
|
+
|
|
861
|
+
.settings-section{min-width:0;border:1px solid var(--modal-border);border-radius:var(--radius-md);background:var(--modal-surface);padding:10px}
|
|
862
|
+
.compact-section-head{margin:0 0 9px;display:flex;justify-content:space-between;align-items:center;gap:8px}.compact-section-head h3{margin:0;font-size:11px;line-height:1.2;color:#dfe5e8}
|
|
863
|
+
.connections-editor{display:grid;gap:8px;margin:0;min-width:0}
|
|
864
|
+
.connection-row{display:block!important;min-width:0;padding:9px;border:1px solid rgba(232,238,243,.07);border-radius:10px;background:#0c0f13;overflow:visible}
|
|
865
|
+
.connection-card-head{display:grid;grid-template-columns:minmax(0,1fr) 180px 30px;gap:8px;align-items:end;min-width:0}
|
|
866
|
+
.connection-main-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(150px,.85fr) auto;gap:8px;align-items:end;margin-top:8px;min-width:0}
|
|
867
|
+
.connection-row label,.field-grid label,.seat-editor-grid label,.connection-advanced label{display:flex;flex-direction:column;gap:5px;min-width:0;color:#7f8a93;font-size:8px;font-weight:800;letter-spacing:.055em;text-transform:uppercase}
|
|
868
|
+
.connection-url,.connection-name,.connection-kind{min-width:0}.connection-status{min-height:0;margin-top:6px;line-height:1.25;overflow-wrap:anywhere}.connection-status:empty{display:none}
|
|
869
|
+
.connection-advanced{margin-top:7px;border-top:1px solid rgba(232,238,243,.06);padding-top:6px}.connection-advanced summary{width:max-content;color:#68747d;font-size:8px;font-weight:800;cursor:pointer;user-select:none}.connection-advanced[open] summary{margin-bottom:7px;color:#9ca7ae}.connection-headers{max-width:100%}
|
|
870
|
+
.tournament-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.seat-summary{padding:4px 7px;font-size:8px}
|
|
871
|
+
.setup-error{margin:0 12px 8px;overflow-wrap:anywhere}
|
|
872
|
+
|
|
873
|
+
.seat-editor-grid{grid-template-columns:1fr 1fr;gap:9px}.seat-model-field,.seat-provider-field{grid-column:1/3}.model-input-wrap{min-width:0}.field-help{display:block;margin-top:1px;color:#66737c;font-size:8px;line-height:1.25;text-transform:none;letter-spacing:0;overflow-wrap:anywhere}.field-help:empty{display:none}.seat-lock-notice{margin:0 0 9px}.seat-editor-hint,.setup-note,.dialog-security,.dialog-kicker,.modal-badge{display:none!important}
|
|
874
|
+
|
|
875
|
+
/* Test results must adapt to modal width rather than create page-level overflow. */
|
|
876
|
+
.tests-toolbar{position:static!important;padding:0 0 10px!important;display:flex;align-items:center;justify-content:space-between;gap:10px;background:transparent!important;border:0!important}.tests-status{min-width:0;font-size:9px;line-height:1.35}.tests-results{min-width:0;overflow:hidden}.tests-grid{min-width:0!important;width:100%}.tests-grid-head,.tests-grid-row{grid-template-columns:minmax(140px,1.2fr) repeat(var(--test-agent-count,3),minmax(105px,1fr))}.test-spot,.test-cell{min-width:0;padding:8px}.test-spot p,.test-cell p{overflow-wrap:anywhere}.tests-summary{flex-wrap:wrap}
|
|
877
|
+
|
|
878
|
+
@media(max-width:760px){
|
|
879
|
+
.topbar{height:34px;flex-basis:34px}.brand-title{font-size:12px}.brand-mark{width:22px;height:22px}.top-action{height:27px;min-height:27px;padding-inline:7px}
|
|
880
|
+
.setup-dialog,.seat-dialog,.tests-dialog{width:calc(100vw - 12px);max-width:none;height:auto;max-height:calc(100dvh - 12px);border-radius:12px}
|
|
881
|
+
.tests-dialog{height:calc(100dvh - 12px)}
|
|
882
|
+
.setup-body,.seat-editor-body,.tests-body{padding:9px}.dialog-head,.dialog-footer{padding:7px 9px;min-height:44px}
|
|
883
|
+
.connection-card-head{grid-template-columns:minmax(0,1fr) minmax(130px,.75fr) 30px}.connection-main-grid{grid-template-columns:minmax(0,1fr) minmax(130px,.8fr)}.connection-main-grid .test-connection{grid-column:2;justify-self:end}
|
|
884
|
+
.tournament-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
|
|
885
|
+
.tests-grid-head,.tests-grid-row{grid-template-columns:minmax(105px,1fr) repeat(var(--test-agent-count,3),minmax(78px,1fr))}.test-spot p,.test-spot em,.test-cell p{display:none}.test-cell{min-height:54px}
|
|
886
|
+
}
|
|
887
|
+
@media(max-width:480px){
|
|
888
|
+
.topbar-actions .action-label{display:none!important}.topbar-actions #startTopBtn .action-label,.topbar-actions #pauseBtn .action-label,.topbar-actions #stopBtn .action-label{display:inline!important}
|
|
889
|
+
.connection-card-head{grid-template-columns:minmax(0,1fr) 30px}.connection-kind{grid-column:1}.connection-card-head .remove-connection{grid-column:2;grid-row:1;align-self:end}.connection-main-grid{grid-template-columns:1fr}.connection-main-grid .test-connection{grid-column:1;justify-self:stretch}
|
|
890
|
+
.seat-editor-grid{grid-template-columns:1fr}.seat-model-field,.seat-provider-field{grid-column:1}.tournament-fields{grid-template-columns:1fr 1fr}
|
|
891
|
+
.tests-grid-head,.tests-grid-row{grid-template-columns:95px repeat(var(--test-agent-count,3),minmax(64px,1fr))}.tests-grid-head small{display:none}.test-cell-top{display:block}.test-cell-top b{display:block;margin-top:2px;text-align:left;font-size:7px}
|
|
892
|
+
}
|
|
893
|
+
/* Let compact settings dialogs size to their content on desktop. */
|
|
894
|
+
.setup-dialog form,.seat-dialog form{height:auto;max-height:calc(100dvh - 24px)}
|
|
895
|
+
.setup-dialog .dialog-body,.seat-dialog .dialog-body{flex:1 1 auto;min-height:0}
|
|
896
|
+
@media(min-width:761px){
|
|
897
|
+
.setup-dialog{max-height:calc(100dvh - 40px)}
|
|
898
|
+
.setup-dialog form{max-height:calc(100dvh - 40px)}
|
|
899
|
+
}
|
|
900
|
+
@media(min-width:761px){
|
|
901
|
+
.setup-dialog{height:fit-content!important;max-height:calc(100dvh - 40px)!important}
|
|
902
|
+
.setup-dialog form{height:auto!important;max-height:calc(100dvh - 40px)!important}
|
|
903
|
+
.setup-dialog .setup-body{flex:0 1 auto}
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
/* 0.2.10 — felt identity + resilient translucent table HUD ------------------- */
|
|
907
|
+
/* The identity is part of the felt, not a floating UI pill. */
|
|
908
|
+
.table-brand{
|
|
909
|
+
display:flex;
|
|
910
|
+
flex-direction:column;
|
|
911
|
+
align-items:center;
|
|
912
|
+
justify-content:center;
|
|
913
|
+
gap:1px;
|
|
914
|
+
margin:0 auto 8px;
|
|
915
|
+
padding:0;
|
|
916
|
+
border:0;
|
|
917
|
+
border-radius:0;
|
|
918
|
+
background:transparent;
|
|
919
|
+
box-shadow:none;
|
|
920
|
+
backdrop-filter:none;
|
|
921
|
+
color:inherit;
|
|
922
|
+
opacity:.62;
|
|
923
|
+
user-select:none;
|
|
924
|
+
pointer-events:none;
|
|
925
|
+
line-height:1;
|
|
926
|
+
}
|
|
927
|
+
.table-brand-mark{
|
|
928
|
+
display:block;
|
|
929
|
+
margin-bottom:2px;
|
|
930
|
+
font-size:17px;
|
|
931
|
+
line-height:1;
|
|
932
|
+
color:rgba(190,223,201,.48);
|
|
933
|
+
filter:drop-shadow(0 1px 4px rgba(0,0,0,.18));
|
|
934
|
+
}
|
|
935
|
+
.table-brand-copy{
|
|
936
|
+
display:flex;
|
|
937
|
+
flex-direction:column;
|
|
938
|
+
align-items:center;
|
|
939
|
+
gap:3px;
|
|
940
|
+
white-space:nowrap;
|
|
941
|
+
text-align:center;
|
|
942
|
+
}
|
|
943
|
+
.table-brand-copy strong{
|
|
944
|
+
font-size:clamp(17px,1.42vw,23px);
|
|
945
|
+
line-height:.96;
|
|
946
|
+
font-weight:900;
|
|
947
|
+
letter-spacing:-.045em;
|
|
948
|
+
color:rgba(241,248,244,.68);
|
|
949
|
+
text-shadow:0 1px 12px rgba(0,0,0,.12);
|
|
950
|
+
}
|
|
951
|
+
.table-brand-copy small{
|
|
952
|
+
font-size:6px;
|
|
953
|
+
line-height:1;
|
|
954
|
+
font-weight:800;
|
|
955
|
+
text-transform:lowercase;
|
|
956
|
+
letter-spacing:.20em;
|
|
957
|
+
color:rgba(224,235,229,.34);
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
/* One quiet translucent strip scales better than five rigid pills. */
|
|
961
|
+
.table-hud{
|
|
962
|
+
width:min(100%,430px);
|
|
963
|
+
max-width:100%;
|
|
964
|
+
margin:10px auto 0;
|
|
965
|
+
padding:3px 4px;
|
|
966
|
+
display:grid;
|
|
967
|
+
grid-template-columns:minmax(0,1.15fr) minmax(0,1.55fr) repeat(3,minmax(0,.85fr));
|
|
968
|
+
align-items:stretch;
|
|
969
|
+
gap:0;
|
|
970
|
+
border:1px solid rgba(226,238,231,.055);
|
|
971
|
+
border-radius:10px;
|
|
972
|
+
background:rgba(3,15,11,.18);
|
|
973
|
+
box-shadow:0 5px 18px rgba(0,0,0,.07);
|
|
974
|
+
opacity:.72;
|
|
975
|
+
transition:opacity .16s ease,border-color .16s ease,background .16s ease;
|
|
976
|
+
overflow:hidden;
|
|
977
|
+
}
|
|
978
|
+
.table-hud:hover{
|
|
979
|
+
opacity:.88;
|
|
980
|
+
border-color:rgba(226,238,231,.075);
|
|
981
|
+
background:rgba(3,15,11,.22);
|
|
982
|
+
}
|
|
983
|
+
.hud-pill{
|
|
984
|
+
min-width:0;
|
|
985
|
+
max-width:100%;
|
|
986
|
+
padding:4px 7px 5px;
|
|
987
|
+
display:flex;
|
|
988
|
+
flex-direction:column;
|
|
989
|
+
align-items:center;
|
|
990
|
+
justify-content:center;
|
|
991
|
+
gap:1px;
|
|
992
|
+
border:0;
|
|
993
|
+
border-right:1px solid rgba(229,239,233,.052);
|
|
994
|
+
border-radius:0;
|
|
995
|
+
background:transparent;
|
|
996
|
+
box-shadow:none;
|
|
997
|
+
backdrop-filter:none;
|
|
998
|
+
overflow:hidden;
|
|
999
|
+
}
|
|
1000
|
+
.hud-pill:last-child{border-right:0}
|
|
1001
|
+
.hud-pill span{
|
|
1002
|
+
max-width:100%;
|
|
1003
|
+
overflow:hidden;
|
|
1004
|
+
text-overflow:ellipsis;
|
|
1005
|
+
white-space:nowrap;
|
|
1006
|
+
font-size:6px;
|
|
1007
|
+
font-weight:850;
|
|
1008
|
+
letter-spacing:.14em;
|
|
1009
|
+
color:rgba(223,234,228,.34);
|
|
1010
|
+
}
|
|
1011
|
+
.hud-pill strong{
|
|
1012
|
+
display:block;
|
|
1013
|
+
width:100%;
|
|
1014
|
+
min-width:0;
|
|
1015
|
+
overflow:hidden;
|
|
1016
|
+
text-overflow:ellipsis;
|
|
1017
|
+
white-space:nowrap;
|
|
1018
|
+
font-size:clamp(8px,.76vw,11px);
|
|
1019
|
+
line-height:1.16;
|
|
1020
|
+
font-weight:820;
|
|
1021
|
+
color:rgba(245,249,247,.66);
|
|
1022
|
+
font-variant-numeric:tabular-nums;
|
|
1023
|
+
letter-spacing:-.025em;
|
|
1024
|
+
}
|
|
1025
|
+
.hud-pot{
|
|
1026
|
+
border-color:transparent;
|
|
1027
|
+
background:linear-gradient(90deg,rgba(70,139,98,.035),rgba(70,139,98,.075));
|
|
1028
|
+
}
|
|
1029
|
+
.hud-pot strong{
|
|
1030
|
+
font-size:clamp(9px,.9vw,13px);
|
|
1031
|
+
color:rgba(230,246,236,.72);
|
|
1032
|
+
}
|
|
1033
|
+
.lobby-mode .table-hud{opacity:.48}
|
|
1034
|
+
.lobby-mode .hud-pot{opacity:1}
|
|
1035
|
+
|
|
1036
|
+
/* Keep the enlarged identity and every metric inside short/tablet layouts. */
|
|
1037
|
+
.poker-table[data-density="compact"] .table-brand{margin-bottom:7px;gap:0}
|
|
1038
|
+
.poker-table[data-density="compact"] .table-brand-mark{font-size:14px;margin-bottom:1px}
|
|
1039
|
+
.poker-table[data-density="compact"] .table-brand-copy strong{font-size:16px}
|
|
1040
|
+
.poker-table[data-density="compact"] .table-brand-copy small{font-size:5px;letter-spacing:.17em}
|
|
1041
|
+
.poker-table[data-density="compact"] .table-hud{width:min(100%,360px);margin-top:8px}
|
|
1042
|
+
|
|
1043
|
+
.poker-table[data-density="tight"] .table-brand{margin-bottom:5px;gap:0}
|
|
1044
|
+
.poker-table[data-density="tight"] .table-brand-mark{width:auto;height:auto;margin:0 0 1px;border:0;background:none;font-size:10px}
|
|
1045
|
+
.poker-table[data-density="tight"] .table-brand-copy{gap:2px}
|
|
1046
|
+
.poker-table[data-density="tight"] .table-brand-copy strong{font-size:11px;letter-spacing:-.04em}
|
|
1047
|
+
.poker-table[data-density="tight"] .table-brand-copy small{font-size:4px;letter-spacing:.13em}
|
|
1048
|
+
.poker-table[data-density="tight"] .table-hud{width:min(100%,245px);margin-top:6px;padding:2px 3px;border-radius:7px}
|
|
1049
|
+
.poker-table[data-density="tight"] .hud-pill{padding:3px 3px 4px}
|
|
1050
|
+
.poker-table[data-density="tight"] .hud-pill span{font-size:4px;letter-spacing:.09em}
|
|
1051
|
+
.poker-table[data-density="tight"] .hud-pill strong{font-size:6.5px}
|
|
1052
|
+
.poker-table[data-density="tight"] .hud-pot strong{font-size:7.5px}
|
|
1053
|
+
|
|
1054
|
+
@media(max-width:720px){
|
|
1055
|
+
.table-brand{margin-bottom:5px;opacity:.58}
|
|
1056
|
+
.table-brand-mark{font-size:10px;margin-bottom:1px}
|
|
1057
|
+
.table-brand-copy{gap:2px}
|
|
1058
|
+
.table-brand-copy strong{font-size:11px}
|
|
1059
|
+
.table-brand-copy small{font-size:4px;letter-spacing:.13em}
|
|
1060
|
+
.table-hud{width:min(100%,220px);margin-top:6px;padding:2px 3px;border-radius:7px;opacity:.68}
|
|
1061
|
+
.hud-pill{min-width:0;padding:3px 3px 4px}
|
|
1062
|
+
.hud-pill span{font-size:4px;letter-spacing:.09em}
|
|
1063
|
+
.hud-pill strong{font-size:6.5px}
|
|
1064
|
+
.hud-pot strong{font-size:7.5px}
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1067
|
+
/* 0.2.10 finishing pass: clearer identity, still quiet enough for the table. */
|
|
1068
|
+
.table-brand-mark{
|
|
1069
|
+
width:auto!important;
|
|
1070
|
+
height:auto!important;
|
|
1071
|
+
min-width:0!important;
|
|
1072
|
+
border:0!important;
|
|
1073
|
+
border-radius:0!important;
|
|
1074
|
+
background:none!important;
|
|
1075
|
+
box-shadow:none!important;
|
|
1076
|
+
padding:0!important;
|
|
1077
|
+
font-size:18px;
|
|
1078
|
+
}
|
|
1079
|
+
.table-brand-copy strong{font-size:clamp(19px,1.55vw,25px)}
|
|
1080
|
+
.table-hud{opacity:.78;background:rgba(3,15,11,.20)}
|
|
1081
|
+
.hud-pill span{color:rgba(223,234,228,.38)}
|
|
1082
|
+
.hud-pill strong{color:rgba(245,249,247,.72)}
|
|
1083
|
+
.hud-pot strong{color:rgba(230,246,236,.78)}
|
|
1084
|
+
.poker-table[data-density="compact"] .table-brand-mark{font-size:15px}
|
|
1085
|
+
.poker-table[data-density="compact"] .table-brand-copy strong{font-size:17px}
|
|
1086
|
+
.poker-table[data-density="tight"] .table-brand-mark{font-size:11px}
|
|
1087
|
+
.poker-table[data-density="tight"] .table-brand-copy strong{font-size:13px}
|
|
1088
|
+
@media(max-width:720px){
|
|
1089
|
+
.table-brand{opacity:.62}
|
|
1090
|
+
.table-brand-mark{font-size:11px}
|
|
1091
|
+
.table-brand-copy strong{font-size:13px}
|
|
1092
|
+
.table-hud{opacity:.74}
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
/* 0.2.11 — in-felt table identity ----------------------------------------- */
|
|
1096
|
+
.table-brand{
|
|
1097
|
+
position:relative;
|
|
1098
|
+
margin:0 auto 10px;
|
|
1099
|
+
padding:0;
|
|
1100
|
+
gap:2px;
|
|
1101
|
+
opacity:.24;
|
|
1102
|
+
mix-blend-mode:screen;
|
|
1103
|
+
filter:saturate(.72);
|
|
1104
|
+
}
|
|
1105
|
+
.table-brand::before{
|
|
1106
|
+
content:"";
|
|
1107
|
+
position:absolute;
|
|
1108
|
+
inset:-14px -26px;
|
|
1109
|
+
z-index:-1;
|
|
1110
|
+
border-radius:999px;
|
|
1111
|
+
background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.015),transparent 70%);
|
|
1112
|
+
pointer-events:none;
|
|
1113
|
+
}
|
|
1114
|
+
.table-brand-mark{
|
|
1115
|
+
font-size:34px!important;
|
|
1116
|
+
line-height:.9;
|
|
1117
|
+
margin:0 0 3px!important;
|
|
1118
|
+
color:rgba(225,239,230,.72)!important;
|
|
1119
|
+
text-shadow:0 1px 0 rgba(255,255,255,.035),0 -1px 0 rgba(0,0,0,.16);
|
|
1120
|
+
}
|
|
1121
|
+
.table-brand-copy{gap:4px}
|
|
1122
|
+
.table-brand-copy strong{
|
|
1123
|
+
font-size:clamp(28px,2vw,38px)!important;
|
|
1124
|
+
line-height:.92;
|
|
1125
|
+
font-weight:920;
|
|
1126
|
+
letter-spacing:-.055em;
|
|
1127
|
+
color:rgba(235,244,239,.74)!important;
|
|
1128
|
+
text-shadow:0 1px 0 rgba(255,255,255,.025),0 -1px 0 rgba(0,0,0,.18),0 0 18px rgba(255,255,255,.02);
|
|
1129
|
+
}
|
|
1130
|
+
.table-brand-copy small{
|
|
1131
|
+
font-size:7px!important;
|
|
1132
|
+
letter-spacing:.31em!important;
|
|
1133
|
+
font-weight:800;
|
|
1134
|
+
color:rgba(224,236,228,.54)!important;
|
|
1135
|
+
}
|
|
1136
|
+
.table-brand-copy::after{
|
|
1137
|
+
content:"";
|
|
1138
|
+
width:132px;
|
|
1139
|
+
height:1px;
|
|
1140
|
+
margin-top:3px;
|
|
1141
|
+
background:linear-gradient(90deg,transparent,rgba(238,247,241,.15),transparent);
|
|
1142
|
+
}
|
|
1143
|
+
.table-hud{
|
|
1144
|
+
opacity:.58!important;
|
|
1145
|
+
background:rgba(3,15,11,.12)!important;
|
|
1146
|
+
border-color:rgba(226,238,231,.04)!important;
|
|
1147
|
+
box-shadow:none!important;
|
|
1148
|
+
}
|
|
1149
|
+
.table-hud:hover{opacity:.72!important;background:rgba(3,15,11,.16)!important}
|
|
1150
|
+
.hud-pill span{color:rgba(223,234,228,.30)!important}
|
|
1151
|
+
.hud-pill strong{color:rgba(245,249,247,.58)!important}
|
|
1152
|
+
.hud-pot strong{color:rgba(230,246,236,.66)!important}
|
|
1153
|
+
|
|
1154
|
+
.poker-table[data-density="compact"] .table-brand{opacity:.22;margin-bottom:8px}
|
|
1155
|
+
.poker-table[data-density="compact"] .table-brand-mark{font-size:24px!important}
|
|
1156
|
+
.poker-table[data-density="compact"] .table-brand-copy strong{font-size:24px!important}
|
|
1157
|
+
.poker-table[data-density="compact"] .table-brand-copy small{font-size:5.5px!important;letter-spacing:.24em!important}
|
|
1158
|
+
.poker-table[data-density="tight"] .table-brand{opacity:.20;margin-bottom:6px}
|
|
1159
|
+
.poker-table[data-density="tight"] .table-brand-mark{font-size:16px!important}
|
|
1160
|
+
.poker-table[data-density="tight"] .table-brand-copy strong{font-size:16px!important}
|
|
1161
|
+
.poker-table[data-density="tight"] .table-brand-copy small{font-size:4.5px!important;letter-spacing:.18em!important}
|
|
1162
|
+
@media(max-width:720px){
|
|
1163
|
+
.table-brand{opacity:.20;margin-bottom:6px}
|
|
1164
|
+
.table-brand-mark{font-size:17px!important}
|
|
1165
|
+
.table-brand-copy strong{font-size:17px!important}
|
|
1166
|
+
.table-brand-copy small{font-size:4.5px!important;letter-spacing:.18em!important}
|
|
1167
|
+
.table-brand-copy::after{width:74px}
|
|
1168
|
+
.table-hud{opacity:.54!important}
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1171
|
+
/* 0.2.12 UI / pause polish overrides */
|
|
1172
|
+
.winner-banner{display:none!important}
|
|
1173
|
+
.table-brand{
|
|
1174
|
+
position:relative;
|
|
1175
|
+
margin-bottom:12px;
|
|
1176
|
+
display:flex;
|
|
1177
|
+
flex-direction:column;
|
|
1178
|
+
align-items:center;
|
|
1179
|
+
gap:2px;
|
|
1180
|
+
opacity:.12;
|
|
1181
|
+
mix-blend-mode:screen;
|
|
1182
|
+
filter:saturate(.55) contrast(.95);
|
|
1183
|
+
text-shadow:0 1px 0 rgba(255,255,255,.03),0 -1px 0 rgba(0,0,0,.12);
|
|
1184
|
+
}
|
|
1185
|
+
.table-brand::before{
|
|
1186
|
+
content:"";
|
|
1187
|
+
position:absolute;
|
|
1188
|
+
inset:-18px -42px;
|
|
1189
|
+
border-radius:999px;
|
|
1190
|
+
background:radial-gradient(circle at 50% 50%, rgba(255,255,255,.02), transparent 70%);
|
|
1191
|
+
pointer-events:none;
|
|
1192
|
+
}
|
|
1193
|
+
.table-brand-mark{
|
|
1194
|
+
width:auto!important;
|
|
1195
|
+
height:auto!important;
|
|
1196
|
+
border:0!important;
|
|
1197
|
+
background:none!important;
|
|
1198
|
+
font-size:clamp(26px,2vw,36px)!important;
|
|
1199
|
+
line-height:1;
|
|
1200
|
+
color:rgba(232,244,236,.44)!important;
|
|
1201
|
+
box-shadow:none!important;
|
|
1202
|
+
}
|
|
1203
|
+
.table-brand-copy{
|
|
1204
|
+
display:flex!important;
|
|
1205
|
+
flex-direction:column;
|
|
1206
|
+
align-items:center;
|
|
1207
|
+
gap:3px;
|
|
1208
|
+
line-height:1;
|
|
1209
|
+
text-align:center!important;
|
|
1210
|
+
}
|
|
1211
|
+
.table-brand-copy strong{
|
|
1212
|
+
font-size:clamp(28px,2.2vw,40px)!important;
|
|
1213
|
+
letter-spacing:-.055em!important;
|
|
1214
|
+
font-weight:900!important;
|
|
1215
|
+
color:rgba(241,246,243,.36)!important;
|
|
1216
|
+
}
|
|
1217
|
+
.table-brand-copy small{
|
|
1218
|
+
font-size:clamp(6px,.55vw,8px)!important;
|
|
1219
|
+
letter-spacing:.34em!important;
|
|
1220
|
+
text-transform:lowercase!important;
|
|
1221
|
+
color:rgba(229,236,232,.28)!important;
|
|
1222
|
+
}
|
|
1223
|
+
.table-brand-copy::after{
|
|
1224
|
+
content:"";
|
|
1225
|
+
display:block;
|
|
1226
|
+
margin-top:5px;
|
|
1227
|
+
width:130px;
|
|
1228
|
+
height:1px;
|
|
1229
|
+
background:linear-gradient(90deg, transparent, rgba(255,255,255,.10), transparent);
|
|
1230
|
+
}
|
|
1231
|
+
.table-hud{background:rgba(7,15,12,.16);border:1px solid rgba(255,255,255,.045);border-radius:14px;padding:0;overflow:hidden}
|
|
1232
|
+
.hud-pill{background:transparent!important;border:0!important;border-right:1px solid rgba(255,255,255,.04)!important;min-width:0}
|
|
1233
|
+
.hud-pill:last-child{border-right:0!important}
|
|
1234
|
+
.hud-pill span{color:rgba(228,235,231,.38)!important}
|
|
1235
|
+
.hud-pill strong{color:rgba(247,250,248,.66)!important;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
|
|
1236
|
+
.decision-panel .empty-state{min-height:112px;display:flex;align-items:center}
|
|
1237
|
+
.decision-card{min-height:112px;display:grid;align-content:start;gap:10px}
|
|
1238
|
+
.legal-actions .action-chip.wide{max-width:100%;border-radius:12px;white-space:normal;line-height:1.35}
|
|
1239
|
+
.legal-actions .action-chip.selected{background:rgba(198,255,87,.08);border-color:rgba(198,255,87,.24);color:#d8f3b4}
|
|
1240
|
+
@media (max-width: 860px){
|
|
1241
|
+
.table-brand{margin-bottom:8px;opacity:.11}
|
|
1242
|
+
.table-brand-mark{font-size:18px!important}
|
|
1243
|
+
.table-brand-copy strong{font-size:18px!important}
|
|
1244
|
+
.table-brand-copy small{font-size:4.8px!important;letter-spacing:.22em!important}
|
|
1245
|
+
.table-brand-copy::after{width:74px}
|
|
1246
|
+
}
|
|
1247
|
+
|
|
1248
|
+
/* 0.2.13 — spectator dashboard polish ------------------------------------ */
|
|
1249
|
+
/* Live seats are slightly denser than lobby seats so cards/actions stay away
|
|
1250
|
+
from the viewport edges while preserving readable stack/model information. */
|
|
1251
|
+
.poker-table:not(.lobby-mode) .seat{
|
|
1252
|
+
width:clamp(142px,11.5vw,170px);
|
|
1253
|
+
min-height:108px;
|
|
1254
|
+
padding:8px 9px 7px;
|
|
1255
|
+
border-radius:14px;
|
|
1256
|
+
}
|
|
1257
|
+
.poker-table:not(.lobby-mode) .seat-name{font-size:12px;max-width:105px}
|
|
1258
|
+
.poker-table:not(.lobby-mode) .seat-model{font-size:8px}
|
|
1259
|
+
.poker-table:not(.lobby-mode) .seat-stack{margin:5px 0 4px}
|
|
1260
|
+
.poker-table:not(.lobby-mode) .seat-stack strong{font-size:14px}
|
|
1261
|
+
.poker-table:not(.lobby-mode) .hole-cards{min-height:47px}
|
|
1262
|
+
.poker-table:not(.lobby-mode) .last-action{min-height:12px;margin-top:3px;font-size:8px}
|
|
1263
|
+
.poker-table[data-density="compact"]:not(.lobby-mode) .seat{width:126px;min-height:94px;padding:7px}
|
|
1264
|
+
.poker-table[data-density="tight"]:not(.lobby-mode) .seat{width:104px;min-height:78px;padding:5px 6px}
|
|
1265
|
+
|
|
1266
|
+
/* Current decision behaves as a stable instrument panel, not a disappearing
|
|
1267
|
+
transient card. */
|
|
1268
|
+
.decision-panel{padding-bottom:12px}
|
|
1269
|
+
.decision-card{
|
|
1270
|
+
min-height:142px;
|
|
1271
|
+
border-color:rgba(255,255,255,.075);
|
|
1272
|
+
background:linear-gradient(180deg,rgba(255,255,255,.026),rgba(255,255,255,.012));
|
|
1273
|
+
box-shadow:inset 0 1px 0 rgba(255,255,255,.015);
|
|
1274
|
+
}
|
|
1275
|
+
.decision-identity{min-width:0;flex:1}
|
|
1276
|
+
.decision-player{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
1277
|
+
.decision-model{margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
1278
|
+
.clock-wrap{min-width:74px}
|
|
1279
|
+
.decision-phase{
|
|
1280
|
+
display:inline-flex;align-items:center;justify-content:center;
|
|
1281
|
+
min-width:54px;height:18px;padding:0 7px;margin-bottom:3px;
|
|
1282
|
+
border:1px solid rgba(255,255,255,.07);border-radius:999px;
|
|
1283
|
+
color:#929da6;background:rgba(255,255,255,.025);
|
|
1284
|
+
font-size:7px;font-weight:900;letter-spacing:.13em;
|
|
1285
|
+
}
|
|
1286
|
+
.decision-phase.thinking{color:#b8d8c2;border-color:rgba(114,185,138,.18);background:rgba(114,185,138,.055)}
|
|
1287
|
+
.decision-phase.paused{color:#d7bd83;border-color:rgba(197,161,92,.20);background:rgba(197,161,92,.06)}
|
|
1288
|
+
.decision-phase.settled{color:#91a0aa}
|
|
1289
|
+
.decision-public-reason{
|
|
1290
|
+
padding:9px 10px;border-left:2px solid rgba(114,185,138,.28);
|
|
1291
|
+
border-radius:0 8px 8px 0;background:rgba(114,185,138,.035);
|
|
1292
|
+
color:#b7c0c7;font-size:10px;line-height:1.45;
|
|
1293
|
+
}
|
|
1294
|
+
.decision-telemetry{display:grid;gap:6px}
|
|
1295
|
+
.probability-strip{display:grid;grid-template-columns:1fr;gap:4px}
|
|
1296
|
+
.probability-item{
|
|
1297
|
+
display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label pct" "bar bar";
|
|
1298
|
+
align-items:center;gap:2px 6px;min-width:0;font-size:8px;color:#7e8992;
|
|
1299
|
+
}
|
|
1300
|
+
.probability-item b{grid-area:label;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#c2ccd3;font-size:8px;font-weight:700}
|
|
1301
|
+
.probability-item em{grid-area:pct;font-style:normal;text-align:right;color:#97a4ad;font-variant-numeric:tabular-nums}
|
|
1302
|
+
.probability-item i{grid-area:bar;position:relative;height:3px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.05)}
|
|
1303
|
+
.probability-item i u{display:block;height:100%;border-radius:999px;background:rgba(114,185,138,.55);text-decoration:none}
|
|
1304
|
+
.decision-facts{display:flex;flex-wrap:wrap;gap:5px}
|
|
1305
|
+
.decision-facts span{padding:3px 5px;border-radius:6px;background:rgba(255,255,255,.022);color:#717e88;font-size:7px;text-transform:uppercase;letter-spacing:.04em}
|
|
1306
|
+
.decision-facts b{color:#aeb9c0;font-size:8px}
|
|
1307
|
+
|
|
1308
|
+
/* Recent decisions: compact reading cards with telemetry below rationale. */
|
|
1309
|
+
.decision-feed{gap:6px}
|
|
1310
|
+
.decision-item{padding:8px 9px;background:rgba(255,255,255,.018);border-left-color:rgba(114,185,138,.28)}
|
|
1311
|
+
.decision-item:first-child{background:rgba(114,185,138,.025)}
|
|
1312
|
+
.decision-item-head{align-items:baseline}
|
|
1313
|
+
.decision-item-action{max-width:54%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
1314
|
+
.decision-reason{color:#aeb8c0;font-size:10px;line-height:1.38;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
|
|
1315
|
+
.decision-item:hover .decision-reason{-webkit-line-clamp:unset}
|
|
1316
|
+
.decision-item-telemetry{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.04)}
|
|
1317
|
+
.decision-item-telemetry .probability-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
|
|
1318
|
+
.decision-item-telemetry .probability-item{display:flex;gap:3px}
|
|
1319
|
+
.decision-item-telemetry .probability-item i{display:none}
|
|
1320
|
+
.decision-item-telemetry .probability-item em{margin-left:auto}
|
|
1321
|
+
.decision-item-telemetry .decision-facts{margin-top:4px}
|
|
1322
|
+
.decision-meta{opacity:.74}
|
|
1323
|
+
|
|
1324
|
+
/* Inspector is visually lighter and gives more space to the actual decision
|
|
1325
|
+
stream than to decorative chrome. */
|
|
1326
|
+
.inspector{background:rgba(10,14,18,.92)}
|
|
1327
|
+
.tabs{padding:5px;gap:3px}
|
|
1328
|
+
.tab{padding:7px 6px;font-size:10px}
|
|
1329
|
+
.panel-block{padding:11px 12px}
|
|
1330
|
+
.panel-title{margin-bottom:8px;font-size:9px;letter-spacing:.14em}
|
|
1331
|
+
|
|
1332
|
+
@media(max-width:1180px) and (min-width:861px){
|
|
1333
|
+
.poker-table:not(.lobby-mode) .seat{width:132px;min-height:96px}
|
|
1334
|
+
.decision-item-telemetry .probability-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
|
|
1335
|
+
}
|
|
1336
|
+
@media(max-width:860px){
|
|
1337
|
+
.decision-card{min-height:132px}
|
|
1338
|
+
.probability-strip{grid-template-columns:1fr 1fr}
|
|
1339
|
+
.decision-item-telemetry .probability-strip{grid-template-columns:1fr 1fr}
|
|
1340
|
+
.poker-table:not(.lobby-mode) .seat{width:102px;min-height:78px}
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
/* 0.2.14 — stable spectator panel, model identities, recording, winner state */
|
|
1344
|
+
.record-button.active{border-color:rgba(237,93,103,.42)!important;background:rgba(237,93,103,.08)!important;color:#ffadb4!important}
|
|
1345
|
+
.record-button.active .action-icon{color:#ff6f7a;filter:drop-shadow(0 0 5px rgba(255,91,104,.32))}
|
|
1346
|
+
|
|
1347
|
+
/* Large watermark printed into the felt: intentionally big, quiet and translucent. */
|
|
1348
|
+
.table-brand{
|
|
1349
|
+
margin-bottom:14px!important;
|
|
1350
|
+
gap:1px!important;
|
|
1351
|
+
opacity:.19!important;
|
|
1352
|
+
mix-blend-mode:screen;
|
|
1353
|
+
filter:saturate(.45) contrast(.92);
|
|
1354
|
+
}
|
|
1355
|
+
.table-brand::before{inset:-24px -62px!important;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.018),transparent 72%)!important}
|
|
1356
|
+
.table-brand-mark{
|
|
1357
|
+
font-size:clamp(34px,3vw,52px)!important;
|
|
1358
|
+
color:rgba(235,246,239,.40)!important;
|
|
1359
|
+
margin-bottom:1px!important;
|
|
1360
|
+
}
|
|
1361
|
+
.table-brand-copy strong{
|
|
1362
|
+
font-size:clamp(36px,3.15vw,54px)!important;
|
|
1363
|
+
line-height:.9!important;
|
|
1364
|
+
color:rgba(241,248,244,.36)!important;
|
|
1365
|
+
letter-spacing:-.06em!important;
|
|
1366
|
+
}
|
|
1367
|
+
.table-brand-copy small{
|
|
1368
|
+
margin-top:4px!important;
|
|
1369
|
+
font-size:clamp(6px,.58vw,9px)!important;
|
|
1370
|
+
color:rgba(231,240,234,.27)!important;
|
|
1371
|
+
letter-spacing:.38em!important;
|
|
1372
|
+
}
|
|
1373
|
+
.table-brand-copy::after{width:160px!important;background:linear-gradient(90deg,transparent,rgba(255,255,255,.085),transparent)!important}
|
|
1374
|
+
|
|
1375
|
+
/* Stable right-side instrument card. Internal areas scroll instead of resizing the panel. */
|
|
1376
|
+
.decision-panel{height:318px;min-height:318px;max-height:318px;display:flex;flex-direction:column;overflow:hidden}
|
|
1377
|
+
.decision-panel>.panel-title{flex:0 0 auto}
|
|
1378
|
+
.decision-card{
|
|
1379
|
+
height:268px!important;
|
|
1380
|
+
min-height:268px!important;
|
|
1381
|
+
max-height:268px!important;
|
|
1382
|
+
overflow:hidden;
|
|
1383
|
+
grid-template-rows:62px minmax(34px,54px) minmax(58px,72px) minmax(42px,60px);
|
|
1384
|
+
align-content:stretch!important;
|
|
1385
|
+
gap:8px!important;
|
|
1386
|
+
}
|
|
1387
|
+
.decision-top{min-height:62px;align-items:start}
|
|
1388
|
+
.decision-identity{min-width:0;padding-top:1px}
|
|
1389
|
+
.decision-player{font-size:16px!important;font-weight:900;letter-spacing:-.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
1390
|
+
.decision-model{font-size:9px!important;line-height:1.2;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-width:250px}
|
|
1391
|
+
.clock-wrap{min-width:82px;text-align:right}
|
|
1392
|
+
.decision-clock{font-size:31px;line-height:1;font-variant-numeric:tabular-nums}
|
|
1393
|
+
.legal-actions{min-height:34px;max-height:54px;overflow:auto;align-content:flex-start;scrollbar-width:thin}
|
|
1394
|
+
.decision-public-reason{min-height:58px;max-height:72px;overflow:auto;scrollbar-width:thin}
|
|
1395
|
+
.decision-telemetry{min-height:42px;max-height:60px;overflow:auto;scrollbar-width:thin}
|
|
1396
|
+
.decision-card.winner-card{border-color:rgba(219,181,92,.24);background:linear-gradient(180deg,rgba(219,181,92,.055),rgba(255,255,255,.012));box-shadow:inset 0 1px 0 rgba(255,226,148,.04)}
|
|
1397
|
+
.decision-phase.winner{color:#e4c675;border-color:rgba(219,181,92,.25);background:rgba(219,181,92,.07)}
|
|
1398
|
+
.winner-action{border-color:rgba(219,181,92,.25)!important;background:rgba(219,181,92,.07)!important;color:#ecd48c!important}
|
|
1399
|
+
.decision-panel .panel-title.winner-title{color:#e4c675}
|
|
1400
|
+
.decision-phase.winner{letter-spacing:.14em}
|
|
1401
|
+
|
|
1402
|
+
/* Finished table communicates the result without adding layout height. */
|
|
1403
|
+
.street-label.winner-street{font-size:11px!important;letter-spacing:.18em!important;color:rgba(235,205,126,.82)!important;text-shadow:0 0 16px rgba(219,181,92,.13)}
|
|
1404
|
+
.seat.winner{opacity:1!important;filter:none!important;border-color:rgba(219,181,92,.48)!important;box-shadow:0 0 0 1px rgba(219,181,92,.09),0 16px 42px rgba(0,0,0,.46),0 0 34px rgba(219,181,92,.10)!important}
|
|
1405
|
+
.seat.winner::after{content:"♛ WINNER";position:absolute;left:50%;top:-17px;transform:translateX(-50%);height:18px;padding:0 8px;display:flex;align-items:center;border-radius:999px;border:1px solid rgba(219,181,92,.24);background:rgba(13,16,17,.92);color:#e2c577;font-size:7px;font-weight:900;letter-spacing:.12em;white-space:nowrap;pointer-events:none;animation:none!important}
|
|
1406
|
+
.last-action.winner{color:#e2c577!important}
|
|
1407
|
+
|
|
1408
|
+
@media(max-width:1180px) and (min-width:861px){
|
|
1409
|
+
.decision-panel{height:298px;min-height:298px;max-height:298px}
|
|
1410
|
+
.decision-card{height:248px!important;min-height:248px!important;max-height:248px!important;grid-template-rows:58px minmax(30px,48px) minmax(52px,64px) minmax(38px,52px)}
|
|
1411
|
+
.table-brand-copy strong{font-size:34px!important}.table-brand-mark{font-size:32px!important}
|
|
1412
|
+
}
|
|
1413
|
+
@media(max-width:860px){
|
|
1414
|
+
.decision-panel{height:auto;min-height:0;max-height:none}
|
|
1415
|
+
.decision-card{height:auto!important;min-height:220px!important;max-height:none!important;grid-template-rows:auto}
|
|
1416
|
+
.table-brand{margin-bottom:8px!important;opacity:.17!important}
|
|
1417
|
+
.table-brand-mark{font-size:22px!important}
|
|
1418
|
+
.table-brand-copy strong{font-size:23px!important}
|
|
1419
|
+
.table-brand-copy small{font-size:5px!important;letter-spacing:.24em!important}
|
|
1420
|
+
.table-brand-copy::after{width:90px!important}
|
|
1421
|
+
}
|
|
1422
|
+
|
|
1423
|
+
/* 0.2.15 — Decision sanity suite clarity */
|
|
1424
|
+
.tests-dialog{width:min(1080px,calc(100vw - 24px));height:min(860px,calc(100dvh - 24px))}
|
|
1425
|
+
.tests-dialog-head{align-items:flex-start}
|
|
1426
|
+
.dialog-subtitle{margin-top:4px;max-width:620px;color:#7f8b94;font-size:9px;line-height:1.4}
|
|
1427
|
+
.tests-body{display:flex;flex-direction:column;gap:12px}
|
|
1428
|
+
.tests-how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
|
|
1429
|
+
.tests-how-step{display:flex;gap:8px;min-width:0;padding:9px 10px;border:1px solid #1d2328;border-radius:10px;background:#0b0e11}
|
|
1430
|
+
.tests-how-step>b{display:grid;place-items:center;width:20px;height:20px;flex:0 0 20px;border-radius:50%;border:1px solid #273038;color:#94a0a8;font-size:8px}
|
|
1431
|
+
.tests-how-step span{min-width:0;display:grid;gap:2px}.tests-how-step strong{font-size:9px;color:#d7dde1}.tests-how-step small{font-size:8px;line-height:1.35;color:#707c85}
|
|
1432
|
+
.tests-participants-section{display:grid;gap:7px}
|
|
1433
|
+
.tests-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0 2px}.tests-section-title>span{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.13em;color:#7f8a93}.tests-section-title small{font-size:8px;color:#59656e}
|
|
1434
|
+
.tests-participants{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:6px}
|
|
1435
|
+
.tests-model-chip{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0;padding:7px 8px;border:1px solid #1e242a;border-radius:9px;background:#0c1013}
|
|
1436
|
+
.tests-model-index{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#151a1f;color:#7f8b94;font:800 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace}
|
|
1437
|
+
.tests-model-copy{min-width:0;display:grid;gap:2px}.tests-model-copy strong{font-size:10px;color:#e0e5e8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tests-model-copy small{font-size:7px;color:#66727b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
1438
|
+
.tests-model-protocol{padding:3px 5px;border-radius:999px;background:rgba(255,255,255,.025);color:#77838c;font-size:6px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
|
|
1439
|
+
.tests-no-models{grid-column:1/-1;padding:12px;border:1px dashed #252c32;border-radius:9px;color:#707c85;font-size:9px}
|
|
1440
|
+
.tests-toolbar{padding:9px 10px!important;border:1px solid #1d2328!important;border-radius:10px!important;background:#0b0e11!important}
|
|
1441
|
+
.tests-run-copy{min-width:0;display:grid;gap:2px}.tests-status{padding:0!important;color:#a9b2b9;font-size:9px!important}.tests-progress-label{font-size:7px;color:#59656e}
|
|
1442
|
+
.tests-progress{height:3px;margin-top:-8px;border-radius:999px;overflow:hidden;background:#151a1f}.tests-progress i{display:block;width:0;height:100%;border-radius:inherit;background:#739a78;transition:width .18s ease}
|
|
1443
|
+
.tests-results{display:grid;gap:10px!important;overflow:visible!important}
|
|
1444
|
+
.tests-empty-explainer{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid #1c2227;border-radius:9px;background:#0a0d10}.tests-empty-explainer strong{font-size:9px;color:#cdd4d8}.tests-empty-explainer span{font-size:8px;color:#68747d;text-align:right}
|
|
1445
|
+
.tests-catalog{display:grid;grid-template-columns:1fr 1fr;gap:5px}
|
|
1446
|
+
.tests-catalog-row{display:flex;align-items:center;gap:8px;min-width:0;padding:7px 8px;border:1px solid #1b2126;border-radius:8px;background:#0a0d10}.tests-catalog-no{flex:0 0 auto;font:800 7px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#59656e}.tests-catalog-main{min-width:0;display:grid;gap:2px}.tests-catalog-main strong{font-size:8px;color:#aeb7bd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tests-catalog-main small{font-size:7px;color:#59656e}
|
|
1447
|
+
.tests-summary-line{display:flex;align-items:end;justify-content:space-between;gap:12px}.tests-summary-line>div:first-child{display:grid;gap:2px}.tests-summary-line strong{font-size:10px;color:#d5dbdf}.tests-summary-line>div:first-child span{font-size:8px;color:#68737c}.tests-summary-pills{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.tests-summary-pills span{padding:4px 6px;border:1px solid #20262b;border-radius:999px;background:#0b0f12;color:#6f7b84;font-size:7px;text-transform:uppercase}.tests-summary-pills b{color:#bcc5ca}
|
|
1448
|
+
.tests-model-summaries{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:6px}.tests-model-summary{padding:9px;border:1px solid #1e2429;border-radius:9px;background:#0b0f12}.tests-model-summary-head{display:flex;justify-content:space-between;gap:8px;align-items:start}.tests-model-summary-head>div{min-width:0;display:grid;gap:2px}.tests-model-summary-head strong{font-size:10px;color:#dce2e5}.tests-model-summary-head small{font-size:7px;color:#65717a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tests-model-summary-head>b{font-size:14px;color:#abb5bb}.tests-score-bar{height:3px;margin:8px 0 7px;border-radius:999px;background:#171c20;overflow:hidden}.tests-score-bar i{display:block;height:100%;border-radius:inherit;background:#6e9875}.tests-model-metrics{display:flex;gap:7px;flex-wrap:wrap}.tests-model-metrics span{font-size:7px;color:#66727b}.tests-model-metrics b{color:#aeb8be}
|
|
1449
|
+
.tests-scenarios{display:grid;gap:7px}.tests-scenario-card{border:1px solid #1d2328;border-radius:10px;background:#0a0d10;overflow:hidden}.tests-scenario-head{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid #181e23}.tests-scenario-number{font:850 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#58646d}.tests-scenario-head>div{min-width:0;display:grid;gap:2px}.tests-scenario-head small{font-size:6px;color:#627079;text-transform:uppercase;letter-spacing:.10em}.tests-scenario-head strong{font-size:10px;color:#d4dade}.tests-expected{padding:3px 6px;border-radius:999px;background:rgba(109,151,116,.06);border:1px solid rgba(109,151,116,.14);color:#8aa790;font-size:7px;white-space:nowrap}.tests-scenario-note{margin:0;padding:7px 10px;color:#707b84;font-size:8px;line-height:1.4;border-bottom:1px solid #181e23}.tests-agent-results{display:grid;grid-template-columns:repeat(var(--test-model-count,3),minmax(0,1fr))}.tests-agent-result{min-width:0;min-height:86px;padding:8px 9px;border-right:1px solid #181e23}.tests-agent-result:last-child{border-right:0}.tests-agent-result-head{display:flex;align-items:center;justify-content:space-between;gap:7px}.tests-agent-result-head strong{min-width:0;font-size:9px;color:#c8d0d5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tests-agent-result-head span{font-size:6px;font-weight:900;letter-spacing:.08em;color:#69757e}.tests-agent-result.pass .tests-agent-result-head span{color:#7fa986}.tests-agent-result.miss .tests-agent-result-head span,.tests-agent-result.error .tests-agent-result-head span{color:#b08383}.tests-agent-result.running .tests-agent-result-head span{color:#a99568}.tests-agent-action{display:grid;gap:2px;margin-top:6px}.tests-agent-action b{font-size:8px;color:#aeb8be}.tests-agent-action small{font-size:7px;color:#59656e}.tests-agent-result>p{margin:6px 0 0;color:#748089;font-size:7.5px;line-height:1.35;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.tests-agent-result> b{display:block;margin-top:6px;font-size:8px;color:#8e9aa2}.test-state-dot{display:inline-block;width:5px;height:5px;margin-right:3px;border-radius:50%;background:#b6a06d;animation:testPulse 1s ease-in-out infinite alternate}@keyframes testPulse{to{opacity:.35}}
|
|
1450
|
+
.tests-footer{align-items:center!important}
|
|
1451
|
+
@media(max-width:760px){
|
|
1452
|
+
.tests-dialog{width:calc(100vw - 10px);height:calc(100dvh - 10px);max-height:calc(100dvh - 10px)}
|
|
1453
|
+
.tests-how{grid-template-columns:1fr}.tests-how-step small{font-size:7.5px}
|
|
1454
|
+
.tests-participants{grid-template-columns:1fr 1fr}.tests-model-chip{grid-template-columns:22px minmax(0,1fr)}.tests-model-protocol{grid-column:2;justify-self:start}
|
|
1455
|
+
.tests-catalog{grid-template-columns:1fr}.tests-empty-explainer{display:grid}.tests-empty-explainer span{text-align:left}
|
|
1456
|
+
.tests-summary-line{align-items:start;display:grid}.tests-summary-pills{justify-content:start}
|
|
1457
|
+
.tests-agent-results{grid-template-columns:1fr!important}.tests-agent-result{min-height:0;border-right:0;border-bottom:1px solid #181e23}.tests-agent-result:last-child{border-bottom:0}
|
|
1458
|
+
.tests-scenario-head{grid-template-columns:24px minmax(0,1fr)}.tests-expected{grid-column:2;justify-self:start}.tests-scenario-note{display:none}
|
|
1459
|
+
}
|
|
1460
|
+
@media(max-width:420px){.tests-participants{grid-template-columns:1fr}.tests-model-summaries{grid-template-columns:1fr}.tests-toolbar{align-items:stretch;flex-direction:column}.tests-toolbar .button{width:100%}}
|
|
1461
|
+
|
|
1462
|
+
/* 0.2.16 — decision history replay + stable action ticker */
|
|
1463
|
+
.arena-head{position:relative;overflow:visible}
|
|
1464
|
+
.arena-head .action-toast{
|
|
1465
|
+
position:absolute!important;
|
|
1466
|
+
left:50%!important;
|
|
1467
|
+
top:50%!important;
|
|
1468
|
+
bottom:auto!important;
|
|
1469
|
+
transform:translate(-50%,-50%)!important;
|
|
1470
|
+
z-index:8;
|
|
1471
|
+
min-width:0!important;
|
|
1472
|
+
max-width:min(44%,420px)!important;
|
|
1473
|
+
padding:5px 10px!important;
|
|
1474
|
+
border-radius:999px!important;
|
|
1475
|
+
background:rgba(16,22,27,.94)!important;
|
|
1476
|
+
border:1px solid rgba(255,255,255,.08)!important;
|
|
1477
|
+
box-shadow:0 5px 18px rgba(0,0,0,.22)!important;
|
|
1478
|
+
font-size:9px!important;
|
|
1479
|
+
line-height:1.1!important;
|
|
1480
|
+
letter-spacing:.02em!important;
|
|
1481
|
+
text-transform:none!important;
|
|
1482
|
+
overflow:hidden;
|
|
1483
|
+
text-overflow:ellipsis;
|
|
1484
|
+
white-space:nowrap;
|
|
1485
|
+
pointer-events:none;
|
|
1486
|
+
animation:arenaTickerIn .18s ease both!important;
|
|
1487
|
+
}
|
|
1488
|
+
@keyframes arenaTickerIn{from{opacity:0;transform:translate(-50%,-44%) scale(.98)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
|
|
1489
|
+
.decision-history-item{
|
|
1490
|
+
appearance:none;width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;
|
|
1491
|
+
border-top:0;border-right:0;border-bottom:0;
|
|
1492
|
+
}
|
|
1493
|
+
.decision-history-item:hover{background:rgba(114,185,138,.055)!important;border-left-color:rgba(138,210,164,.55)}
|
|
1494
|
+
.decision-history-item:focus-visible,.replayable-event:focus-visible{outline:2px solid rgba(130,190,221,.55);outline-offset:2px}
|
|
1495
|
+
.decision-replay-hint{float:right;margin-left:8px;color:rgba(150,199,170,.65);font-family:inherit;font-size:8px;white-space:nowrap}
|
|
1496
|
+
.replayable-event{cursor:pointer;position:relative}
|
|
1497
|
+
.replayable-event:hover{background:rgba(114,185,138,.045)}
|
|
1498
|
+
.event-replay-hint{float:right;color:rgba(150,199,170,.58);font-size:8px}
|
|
1499
|
+
|
|
1500
|
+
.replay-dialog{width:min(900px,calc(100vw - 28px));max-width:900px;max-height:min(820px,calc(100dvh - 28px));padding:0;overflow:hidden}
|
|
1501
|
+
.replay-shell{display:flex;flex-direction:column;max-height:min(820px,calc(100dvh - 28px))}
|
|
1502
|
+
.replay-body{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:14px;overflow:auto;padding:14px}
|
|
1503
|
+
.replay-badge{padding:4px 7px;border:1px solid rgba(255,255,255,.08);border-radius:999px;font:800 8px/1 var(--mono,monospace);letter-spacing:.08em;color:rgba(220,230,224,.62)}
|
|
1504
|
+
.replay-table-wrap{min-width:0}
|
|
1505
|
+
.replay-table{position:relative;min-height:420px;border-radius:48%/38%;overflow:hidden;border:9px solid #171d21;background:radial-gradient(ellipse at center,#12603f 0%,#0d4b33 56%,#093825 100%);box-shadow:inset 0 0 55px rgba(0,0,0,.34),0 16px 38px rgba(0,0,0,.32)}
|
|
1506
|
+
.replay-table::before{content:"";position:absolute;inset:9px;border-radius:inherit;border:1px solid rgba(255,255,255,.055);pointer-events:none}
|
|
1507
|
+
.replay-opponents{position:absolute;left:8%;right:8%;top:8%;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;z-index:2}
|
|
1508
|
+
.replay-opponent{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:126px;max-width:180px;padding:7px 9px;border-radius:10px;background:rgba(10,17,20,.72);border:1px solid rgba(255,255,255,.08);box-shadow:0 6px 15px rgba(0,0,0,.18)}
|
|
1509
|
+
.replay-opponent div,.replay-opponent span{display:grid;gap:2px}.replay-opponent b{font-size:10px}.replay-opponent small{font-size:7px;color:var(--muted)}.replay-opponent>span{text-align:right;font-weight:800;font-size:9px}
|
|
1510
|
+
.replay-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-48%);display:grid;justify-items:center;gap:8px;width:78%;z-index:1}
|
|
1511
|
+
.replay-street{font-size:8px;font-weight:900;letter-spacing:.22em;color:rgba(235,242,238,.58)}
|
|
1512
|
+
.replay-board{gap:5px;min-height:58px}.replay-board .card{width:41px;height:57px}.replay-board .card .card-suit{font-size:23px}.replay-board .card .card-corner b{font-size:9px}.replay-board .card .card-corner i{font-size:7px}
|
|
1513
|
+
.replay-pot{font:850 10px/1 var(--mono,monospace);letter-spacing:.08em;color:rgba(239,246,242,.66);padding:6px 10px;border-radius:999px;background:rgba(5,18,13,.28);border:1px solid rgba(255,255,255,.05)}
|
|
1514
|
+
.replay-hero{position:absolute;left:50%;bottom:7%;transform:translateX(-50%);z-index:3;min-width:190px;padding:9px 10px;border-radius:13px;background:rgba(12,18,21,.88);border:1px solid rgba(151,207,171,.2);box-shadow:0 10px 24px rgba(0,0,0,.28)}
|
|
1515
|
+
.replay-hero-head{display:flex;align-items:start;justify-content:space-between;gap:12px}.replay-hero-head>div,.replay-hero-head>span{display:grid;gap:2px}.replay-hero-head b{font-size:12px}.replay-hero-head small{font-size:7px;color:var(--muted)}.replay-hero-head>span{text-align:right;font-size:10px;font-weight:900}
|
|
1516
|
+
.replay-hero-cards{display:flex;justify-content:center;gap:5px;margin-top:7px}.replay-hero-cards .card{width:39px;height:54px}.replay-hero-cards .card-suit{font-size:22px}
|
|
1517
|
+
.replay-unavailable{font-size:10px;color:var(--muted);text-align:center;max-width:240px}
|
|
1518
|
+
.replay-details{min-width:0;display:flex;flex-direction:column;gap:10px}
|
|
1519
|
+
.replay-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.replay-summary span{display:flex;justify-content:space-between;gap:8px;padding:7px 8px;border-radius:8px;background:rgba(255,255,255,.025);font-size:9px;color:var(--muted)}.replay-summary b{color:var(--text);font-weight:850}
|
|
1520
|
+
.replay-action-block,.replay-reason{padding:10px 11px;border-radius:10px;border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.02)}
|
|
1521
|
+
.replay-action-block{display:grid;gap:4px}.replay-action-block span{font-size:7px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);font-weight:800}.replay-action-block strong{font-size:14px;color:#dfeee4}
|
|
1522
|
+
.replay-reason{font-size:10px;line-height:1.5;color:#b9c6be;border-left:2px solid rgba(114,185,138,.4)}
|
|
1523
|
+
.replay-history,.replay-legal{border-top:1px solid rgba(255,255,255,.055);padding-top:8px}.replay-history summary,.replay-legal summary{cursor:pointer;font-size:9px;font-weight:850;color:rgba(226,235,229,.74);margin-bottom:7px}.replay-history-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.035);font-size:9px}.replay-history-row>span{display:grid;gap:1px}.replay-history-row small{font-size:7px;color:var(--muted)}.replay-history-row strong{text-align:right;font-size:9px}.replay-legal>div{display:flex;flex-wrap:wrap;gap:5px}
|
|
1524
|
+
@media(max-width:760px){
|
|
1525
|
+
.arena-head .action-toast{max-width:45%!important;font-size:7px!important;padding:4px 7px!important}
|
|
1526
|
+
.replay-body{grid-template-columns:1fr}.replay-table{min-height:340px}.replay-opponents{left:5%;right:5%}.replay-opponent{min-width:105px;padding:5px 7px}.replay-center{top:48%}.replay-hero{bottom:5%;min-width:165px}.replay-summary{grid-template-columns:1fr 1fr}
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
|
|
1530
|
+
/* 0.2.17 — unclipped current decision layout
|
|
1531
|
+
The card keeps a stable outer height, but its internal rows are flex-based so
|
|
1532
|
+
legal actions can use all free vertical space instead of being clipped by
|
|
1533
|
+
explicit grid tracks when rationale/telemetry are hidden. */
|
|
1534
|
+
.decision-panel{
|
|
1535
|
+
height:318px;
|
|
1536
|
+
min-height:318px;
|
|
1537
|
+
max-height:318px;
|
|
1538
|
+
overflow:hidden;
|
|
1539
|
+
}
|
|
1540
|
+
.decision-card{
|
|
1541
|
+
display:flex!important;
|
|
1542
|
+
flex-direction:column;
|
|
1543
|
+
height:268px!important;
|
|
1544
|
+
min-height:268px!important;
|
|
1545
|
+
max-height:268px!important;
|
|
1546
|
+
gap:8px!important;
|
|
1547
|
+
overflow:hidden!important;
|
|
1548
|
+
}
|
|
1549
|
+
.decision-top{
|
|
1550
|
+
flex:0 0 62px;
|
|
1551
|
+
min-height:62px;
|
|
1552
|
+
}
|
|
1553
|
+
.legal-actions{
|
|
1554
|
+
flex:1 1 auto;
|
|
1555
|
+
min-height:0!important;
|
|
1556
|
+
max-height:none!important;
|
|
1557
|
+
overflow-x:hidden!important;
|
|
1558
|
+
overflow-y:auto!important;
|
|
1559
|
+
align-content:flex-start;
|
|
1560
|
+
align-items:flex-start;
|
|
1561
|
+
padding:1px 2px 4px 0;
|
|
1562
|
+
scrollbar-gutter:stable;
|
|
1563
|
+
overscroll-behavior:contain;
|
|
1564
|
+
}
|
|
1565
|
+
.legal-actions .action-chip{
|
|
1566
|
+
flex:0 0 auto;
|
|
1567
|
+
max-width:100%;
|
|
1568
|
+
min-height:28px;
|
|
1569
|
+
display:inline-flex;
|
|
1570
|
+
align-items:center;
|
|
1571
|
+
line-height:1.2;
|
|
1572
|
+
white-space:normal;
|
|
1573
|
+
}
|
|
1574
|
+
.decision-public-reason:not(.hidden){
|
|
1575
|
+
flex:0 0 auto;
|
|
1576
|
+
min-height:52px;
|
|
1577
|
+
max-height:68px;
|
|
1578
|
+
overflow:auto;
|
|
1579
|
+
}
|
|
1580
|
+
.decision-telemetry:not(.hidden){
|
|
1581
|
+
flex:0 0 auto;
|
|
1582
|
+
min-height:34px;
|
|
1583
|
+
max-height:52px;
|
|
1584
|
+
overflow:auto;
|
|
1585
|
+
}
|
|
1586
|
+
/* Do not reserve invisible grid rows while the model is thinking. */
|
|
1587
|
+
.decision-public-reason.hidden,.decision-telemetry.hidden{display:none!important}
|
|
1588
|
+
|
|
1589
|
+
@media(max-width:1180px) and (min-width:861px){
|
|
1590
|
+
.decision-panel{height:298px;min-height:298px;max-height:298px}
|
|
1591
|
+
.decision-card{height:248px!important;min-height:248px!important;max-height:248px!important}
|
|
1592
|
+
.decision-top{flex-basis:58px;min-height:58px}
|
|
1593
|
+
}
|
|
1594
|
+
@media(max-width:860px){
|
|
1595
|
+
.decision-panel{height:auto;min-height:0;max-height:none;overflow:visible}
|
|
1596
|
+
.decision-card{height:auto!important;min-height:210px!important;max-height:none!important;overflow:visible!important}
|
|
1597
|
+
.legal-actions{max-height:none!important;overflow:visible!important;scrollbar-gutter:auto}
|
|
1598
|
+
}
|
|
1599
|
+
|
|
1600
|
+
/* 0.2.18 — in-table action ticker for captured game video */
|
|
1601
|
+
.table-brand-stage{
|
|
1602
|
+
position:relative;
|
|
1603
|
+
display:grid;
|
|
1604
|
+
place-items:center;
|
|
1605
|
+
min-height:96px;
|
|
1606
|
+
margin-bottom:8px;
|
|
1607
|
+
pointer-events:none;
|
|
1608
|
+
}
|
|
1609
|
+
.table-brand-stage .table-brand{
|
|
1610
|
+
grid-area:1/1;
|
|
1611
|
+
margin:0!important;
|
|
1612
|
+
transition:opacity .18s ease,transform .18s ease,filter .18s ease;
|
|
1613
|
+
}
|
|
1614
|
+
.table-brand-stage .action-toast{
|
|
1615
|
+
grid-area:1/1;
|
|
1616
|
+
position:relative!important;
|
|
1617
|
+
left:auto!important;
|
|
1618
|
+
top:auto!important;
|
|
1619
|
+
bottom:auto!important;
|
|
1620
|
+
transform:none!important;
|
|
1621
|
+
z-index:8;
|
|
1622
|
+
display:flex;
|
|
1623
|
+
align-items:center;
|
|
1624
|
+
justify-content:center;
|
|
1625
|
+
width:auto;
|
|
1626
|
+
max-width:min(92%,560px)!important;
|
|
1627
|
+
min-width:min(270px,80%)!important;
|
|
1628
|
+
min-height:44px;
|
|
1629
|
+
padding:10px 18px!important;
|
|
1630
|
+
border-radius:999px!important;
|
|
1631
|
+
background:rgba(5,15,12,.48)!important;
|
|
1632
|
+
border:1px solid rgba(255,255,255,.075)!important;
|
|
1633
|
+
box-shadow:0 10px 28px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.025)!important;
|
|
1634
|
+
color:rgba(244,248,245,.88);
|
|
1635
|
+
font-size:clamp(11px,1.08vw,15px)!important;
|
|
1636
|
+
font-weight:850!important;
|
|
1637
|
+
line-height:1.2!important;
|
|
1638
|
+
letter-spacing:-.012em!important;
|
|
1639
|
+
text-transform:none!important;
|
|
1640
|
+
text-align:center;
|
|
1641
|
+
white-space:normal!important;
|
|
1642
|
+
overflow-wrap:anywhere;
|
|
1643
|
+
animation:feltActionIn .2s cubic-bezier(.2,.8,.2,1) both!important;
|
|
1644
|
+
backdrop-filter:blur(5px);
|
|
1645
|
+
}
|
|
1646
|
+
.table-brand-stage .action-toast.hidden{display:none!important}
|
|
1647
|
+
.poker-table.action-message-visible .table-brand-stage .table-brand{
|
|
1648
|
+
opacity:.025!important;
|
|
1649
|
+
transform:scale(.97);
|
|
1650
|
+
filter:blur(.4px) saturate(.45);
|
|
1651
|
+
}
|
|
1652
|
+
.table-brand-stage .action-toast.raise,.table-brand-stage .action-toast.bet{color:rgba(247,215,139,.93);border-color:rgba(218,181,109,.18)!important}
|
|
1653
|
+
.table-brand-stage .action-toast.call{color:rgba(163,201,235,.94);border-color:rgba(142,182,223,.17)!important}
|
|
1654
|
+
.table-brand-stage .action-toast.check{color:rgba(166,217,184,.94);border-color:rgba(143,197,161,.17)!important}
|
|
1655
|
+
.table-brand-stage .action-toast.fold{color:rgba(232,157,163,.92);border-color:rgba(216,121,130,.17)!important}
|
|
1656
|
+
@keyframes feltActionIn{from{opacity:0;transform:translateY(5px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
|
|
1657
|
+
/* Neutralize the old header ticker rules now that the element lives on the felt. */
|
|
1658
|
+
.arena-head .action-toast{display:none!important}
|
|
1659
|
+
@media(max-width:860px){
|
|
1660
|
+
.table-brand-stage{min-height:62px;margin-bottom:5px}
|
|
1661
|
+
.table-brand-stage .action-toast{min-width:0!important;max-width:94%!important;min-height:34px;padding:7px 11px!important;font-size:9px!important;border-radius:12px!important}
|
|
1662
|
+
}
|
|
1663
|
+
.poker-table[data-density="compact"] .table-brand-stage{min-height:70px;margin-bottom:5px}
|
|
1664
|
+
.poker-table[data-density="tight"] .table-brand-stage{min-height:50px;margin-bottom:3px}
|
|
1665
|
+
.poker-table[data-density="tight"] .table-brand-stage .action-toast{min-height:30px;padding:6px 9px!important;font-size:8px!important}
|
|
1666
|
+
|
|
1667
|
+
/* 0.2.19 — replay modal + social sharing */
|
|
1668
|
+
.replay-dialog{
|
|
1669
|
+
width:min(980px,calc(100vw - 24px));
|
|
1670
|
+
max-width:980px;
|
|
1671
|
+
max-height:min(900px,calc(100dvh - 24px));
|
|
1672
|
+
border-color:rgba(255,255,255,.09);
|
|
1673
|
+
background:#0b0f11;
|
|
1674
|
+
box-shadow:0 32px 90px rgba(0,0,0,.68);
|
|
1675
|
+
}
|
|
1676
|
+
.replay-shell{max-height:min(900px,calc(100dvh - 24px));background:linear-gradient(180deg,#0d1214,#090d0f)}
|
|
1677
|
+
.replay-dialog .dialog-head{padding:15px 16px 13px;border-bottom:1px solid rgba(255,255,255,.065);background:linear-gradient(180deg,rgba(255,255,255,.018),transparent)}
|
|
1678
|
+
.replay-dialog .dialog-title-row{gap:9px}
|
|
1679
|
+
.replay-dialog .dialog-title-row h2{font-size:18px;letter-spacing:-.025em}
|
|
1680
|
+
.replay-dialog .dialog-subtitle{margin-top:4px;max-width:620px;font-size:9px;color:rgba(203,214,207,.45)}
|
|
1681
|
+
.replay-badge{background:rgba(126,190,151,.055);border-color:rgba(126,190,151,.14);color:rgba(189,220,201,.68)}
|
|
1682
|
+
.replay-body{grid-template-columns:minmax(0,1.2fr) minmax(310px,.8fr);gap:16px;padding:16px;min-height:0}
|
|
1683
|
+
.replay-table-wrap{min-width:0;padding:7px;border-radius:24px;background:rgba(255,255,255,.018);border:1px solid rgba(255,255,255,.05)}
|
|
1684
|
+
.replay-table{min-height:454px;border-width:10px;border-color:#171d20;box-shadow:inset 0 0 68px rgba(0,0,0,.32),0 18px 42px rgba(0,0,0,.30)}
|
|
1685
|
+
.replay-table::after{content:"pokertools-arena";position:absolute;left:50%;top:39%;transform:translate(-50%,-50%);font-size:26px;font-weight:900;letter-spacing:-.05em;color:rgba(231,242,235,.085);pointer-events:none;white-space:nowrap}
|
|
1686
|
+
.replay-center{top:52%;gap:9px}
|
|
1687
|
+
.replay-street{padding:4px 8px;border-radius:999px;background:rgba(4,15,11,.2);font-size:8px;color:rgba(235,242,238,.7)}
|
|
1688
|
+
.replay-pot{background:rgba(5,18,13,.40);border-color:rgba(255,255,255,.075);font-size:11px}
|
|
1689
|
+
.replay-opponent{background:rgba(8,14,16,.82);border-color:rgba(255,255,255,.075)}
|
|
1690
|
+
.replay-hero{bottom:6%;min-width:218px;padding:10px 12px;border-color:rgba(178,231,112,.20);background:rgba(8,13,15,.92)}
|
|
1691
|
+
.replay-hero-head b{font-size:13px}.replay-hero-head>span{font-size:11px}
|
|
1692
|
+
.replay-details{gap:9px}
|
|
1693
|
+
.replay-summary{gap:5px}
|
|
1694
|
+
.replay-summary span{min-height:34px;align-items:center;padding:7px 9px;border:1px solid rgba(255,255,255,.045);background:rgba(255,255,255,.018);font-size:8px}
|
|
1695
|
+
.replay-action-block{position:relative;padding:12px 13px 13px;border-color:rgba(182,236,111,.17);background:linear-gradient(135deg,rgba(182,236,111,.07),rgba(182,236,111,.025))}
|
|
1696
|
+
.replay-action-block::after{content:"SELECTED";position:absolute;right:11px;top:10px;font:800 7px/1 var(--mono,monospace);letter-spacing:.12em;color:rgba(190,230,145,.44)}
|
|
1697
|
+
.replay-action-block span{font-size:7px}.replay-action-block strong{padding-right:58px;font-size:16px;color:#e2f4ca;line-height:1.2}
|
|
1698
|
+
.replay-reason{position:relative;padding:30px 12px 12px;font-size:10px;line-height:1.55;color:#c3cec7;border-left:0;border-color:rgba(255,255,255,.055);background:rgba(255,255,255,.018)}
|
|
1699
|
+
.replay-reason::before{content:"PUBLIC RATIONALE";position:absolute;left:12px;top:10px;font:800 7px/1 var(--mono,monospace);letter-spacing:.12em;color:rgba(204,217,209,.38)}
|
|
1700
|
+
.replay-history,.replay-legal{padding-top:9px}
|
|
1701
|
+
.replay-history summary,.replay-legal summary{display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none;font-size:9px;color:rgba(226,235,229,.68)}
|
|
1702
|
+
.replay-history summary::-webkit-details-marker,.replay-legal summary::-webkit-details-marker{display:none}
|
|
1703
|
+
.replay-history summary::after,.replay-legal summary::after{content:"+";font-size:13px;color:rgba(216,226,220,.32)}
|
|
1704
|
+
.replay-history[open] summary::after,.replay-legal[open] summary::after{content:"−"}
|
|
1705
|
+
.replay-history-row{padding:7px 2px}
|
|
1706
|
+
.replay-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 16px;border-top:1px solid rgba(255,255,255,.065);background:rgba(7,10,12,.92)}
|
|
1707
|
+
.replay-share-copy{display:grid;gap:3px;min-width:0}.replay-share-copy strong{font-size:10px}.replay-share-copy span{font-size:8px;color:var(--muted);line-height:1.35}
|
|
1708
|
+
.replay-share-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:0 0 auto}.replay-share-actions .button{min-height:29px;padding:5px 9px;font-size:9px}
|
|
1709
|
+
@media(max-width:760px){
|
|
1710
|
+
.replay-dialog{width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}
|
|
1711
|
+
.replay-shell{max-height:calc(100dvh - 12px)}
|
|
1712
|
+
.replay-body{grid-template-columns:1fr;padding:9px;gap:10px}
|
|
1713
|
+
.replay-table{min-height:330px}
|
|
1714
|
+
.replay-table::after{font-size:18px;top:37%}
|
|
1715
|
+
.replay-opponents{top:5%}.replay-opponent{min-width:96px;max-width:135px}
|
|
1716
|
+
.replay-center{top:48%}.replay-hero{bottom:4%;min-width:168px;padding:7px 8px}
|
|
1717
|
+
.replay-summary{grid-template-columns:1fr 1fr}
|
|
1718
|
+
.replay-footer{align-items:stretch;flex-direction:column;padding:9px}
|
|
1719
|
+
.replay-share-actions{display:grid;grid-template-columns:1fr 1fr 1fr}.replay-share-actions .button{width:100%}
|
|
1720
|
+
}
|
|
1721
|
+
@media(max-width:430px){
|
|
1722
|
+
.replay-dialog .dialog-head{padding:11px}.replay-dialog .dialog-title-row h2{font-size:15px}
|
|
1723
|
+
.replay-table{min-height:315px}.replay-board .card{width:36px;height:50px}.replay-board{gap:3px}
|
|
1724
|
+
.replay-share-actions{grid-template-columns:1fr 1fr}.replay-share-actions #saveReplayImage{grid-column:1/-1}
|
|
1725
|
+
}
|
|
1726
|
+
|
|
1727
|
+
/* 0.2.20 — true viewport-fit seating -------------------------------------- */
|
|
1728
|
+
/* The JS layout now chooses density from the actual rendered table rectangle
|
|
1729
|
+
and clamps every real seat rect back inside it. `micro` is the final safety
|
|
1730
|
+
density for short browser windows, embedded views, and split-screen use. */
|
|
1731
|
+
.poker-table[data-density="micro"] .seat{
|
|
1732
|
+
width:88px!important;
|
|
1733
|
+
min-height:64px!important;
|
|
1734
|
+
padding:4px 5px!important;
|
|
1735
|
+
border-radius:9px!important;
|
|
1736
|
+
}
|
|
1737
|
+
.poker-table[data-density="micro"] .seat-name{font-size:8px!important;max-width:62px!important}
|
|
1738
|
+
.poker-table[data-density="micro"] .seat-model{display:none!important}
|
|
1739
|
+
.poker-table[data-density="micro"] .seat-pos{font-size:5px!important;padding:1px 2px!important}
|
|
1740
|
+
.poker-table[data-density="micro"] .seat-stack{margin:2px 0 1px!important}
|
|
1741
|
+
.poker-table[data-density="micro"] .seat-stack strong{font-size:8px!important;gap:3px!important}
|
|
1742
|
+
.poker-table[data-density="micro"] .seat-stack>span{font-size:5.5px!important}
|
|
1743
|
+
.poker-table[data-density="micro"] .chip-dot{width:6px!important;height:6px!important;border-width:1px!important}
|
|
1744
|
+
.poker-table[data-density="micro"] .hole-cards{gap:1px!important;min-height:28px!important}
|
|
1745
|
+
.poker-table[data-density="micro"] .hole-cards .card.rank-only-corners,
|
|
1746
|
+
.poker-table[data-density="micro"] .hole-cards .card{width:20px!important;height:28px!important;border-radius:4px!important}
|
|
1747
|
+
.poker-table[data-density="micro"] .hole-cards .card .card-corner{left:2px!important;top:2px!important}
|
|
1748
|
+
.poker-table[data-density="micro"] .hole-cards .card .card-corner b{font-size:6px!important}
|
|
1749
|
+
.poker-table[data-density="micro"] .hole-cards .card .card-suit{font-size:12px!important}
|
|
1750
|
+
.poker-table[data-density="micro"] .last-action{font-size:5px!important;min-height:6px!important;margin-top:1px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
|
1751
|
+
.poker-table[data-density="micro"] .table-center{width:min(210px,46%)!important}
|
|
1752
|
+
.poker-table[data-density="micro"] .table-brand-stage{min-height:42px!important;margin-bottom:2px!important}
|
|
1753
|
+
.poker-table[data-density="micro"] .table-brand{margin-bottom:3px!important;opacity:.16!important}
|
|
1754
|
+
.poker-table[data-density="micro"] .table-brand-mark{font-size:12px!important}
|
|
1755
|
+
.poker-table[data-density="micro"] .table-brand-copy strong{font-size:12px!important}
|
|
1756
|
+
.poker-table[data-density="micro"] .table-brand-copy small{font-size:3.5px!important;letter-spacing:.13em!important}
|
|
1757
|
+
.poker-table[data-density="micro"] .table-brand-copy::after{width:48px!important;margin-top:2px!important}
|
|
1758
|
+
.poker-table[data-density="micro"] .street-label{font-size:5.5px!important;margin-bottom:3px!important}
|
|
1759
|
+
.poker-table[data-density="micro"] .board{gap:2px!important;min-height:34px!important}
|
|
1760
|
+
.poker-table[data-density="micro"] .board .card{width:23px!important;height:32px!important;border-radius:4px!important}
|
|
1761
|
+
.poker-table[data-density="micro"] .board .card .card-suit{font-size:14px!important}
|
|
1762
|
+
.poker-table[data-density="micro"] .board .card .card-corner b{font-size:6px!important}
|
|
1763
|
+
.poker-table[data-density="micro"] .table-hud{width:min(100%,205px)!important;margin-top:4px!important;border-radius:6px!important}
|
|
1764
|
+
.poker-table[data-density="micro"] .hud-pill{padding:2px 2px 3px!important}
|
|
1765
|
+
.poker-table[data-density="micro"] .hud-pill span{font-size:3.5px!important;letter-spacing:.07em!important}
|
|
1766
|
+
.poker-table[data-density="micro"] .hud-pill strong{font-size:5.5px!important}
|
|
1767
|
+
.poker-table[data-density="micro"] .felt-ring{left:3%!important;right:3%!important;top:5%!important;bottom:5%!important;border-width:7px!important}
|
|
1768
|
+
.poker-table[data-density="micro"] .table-brand-stage .action-toast{min-height:25px!important;padding:4px 7px!important;font-size:6.5px!important;max-width:190px!important}
|
|
1769
|
+
|
|
1770
|
+
/* Very short desktop windows are a legitimate layout, not an error case.
|
|
1771
|
+
Preserve the side-by-side dashboard but spend fewer pixels on chrome. */
|
|
1772
|
+
@media(min-width:860px) and (max-height:560px){
|
|
1773
|
+
.app-shell{padding:4px 6px}
|
|
1774
|
+
.topbar{flex-basis:30px;height:30px;margin-bottom:3px}
|
|
1775
|
+
.brand-mark{width:20px;height:20px}.brand-title{font-size:11px}.brand-subtitle{display:none}
|
|
1776
|
+
.top-action{height:24px;min-height:24px;padding:0 6px;font-size:8px}
|
|
1777
|
+
.arena-head{flex-basis:28px;height:28px;padding-inline:9px}
|
|
1778
|
+
.arena-head,.tournamentMeta{font-size:7px}
|
|
1779
|
+
.tabs{min-height:31px;padding:3px}.tab{padding:4px 5px;font-size:8px}
|
|
1780
|
+
.panel-block{padding:7px}.panel-title{margin-bottom:5px;font-size:8px}
|
|
1781
|
+
.decision-card{min-height:0!important}
|
|
1782
|
+
}
|
|
1783
|
+
|
|
1784
|
+
/* Avoid any legacy min-height winning the cascade in desktop/tablet mode. */
|
|
1785
|
+
@media(min-width:860px){
|
|
1786
|
+
.workspace,.arena-card,.poker-table{min-height:0!important}
|
|
1787
|
+
.poker-table{height:100%!important;max-height:none!important}
|
|
1788
|
+
}
|
|
1789
|
+
|
|
1790
|
+
/* 0.2.21 — visible-table sizing + stable decision instrument ---------------- */
|
|
1791
|
+
/* A flex child cannot also be 100% of its parent when the parent contains the
|
|
1792
|
+
arena header. The old 100% rule made the table extend below the clipped arena
|
|
1793
|
+
card by roughly the header height, so bottom seats were laid out inside an
|
|
1794
|
+
invisible region. Use the remaining flex track instead. */
|
|
1795
|
+
@media(min-width:860px){
|
|
1796
|
+
.arena-card{display:flex;flex-direction:column;min-height:0!important}
|
|
1797
|
+
.poker-table{
|
|
1798
|
+
flex:1 1 0!important;
|
|
1799
|
+
height:0!important;
|
|
1800
|
+
min-height:0!important;
|
|
1801
|
+
max-height:none!important;
|
|
1802
|
+
}
|
|
1803
|
+
}
|
|
1804
|
+
|
|
1805
|
+
/* The live decision panel is an instrument, not a variable-height content card.
|
|
1806
|
+
Every model gets the same slots so switching seats never moves the feed. */
|
|
1807
|
+
.decision-panel{
|
|
1808
|
+
height:292px!important;
|
|
1809
|
+
min-height:292px!important;
|
|
1810
|
+
max-height:292px!important;
|
|
1811
|
+
overflow:hidden!important;
|
|
1812
|
+
padding-bottom:10px!important;
|
|
1813
|
+
}
|
|
1814
|
+
.decision-card{
|
|
1815
|
+
display:grid!important;
|
|
1816
|
+
grid-template-rows:62px 44px 18px minmax(0,1fr)!important;
|
|
1817
|
+
height:242px!important;
|
|
1818
|
+
min-height:242px!important;
|
|
1819
|
+
max-height:242px!important;
|
|
1820
|
+
gap:7px!important;
|
|
1821
|
+
overflow:hidden!important;
|
|
1822
|
+
padding:11px!important;
|
|
1823
|
+
}
|
|
1824
|
+
.decision-top{
|
|
1825
|
+
min-height:0!important;
|
|
1826
|
+
height:62px!important;
|
|
1827
|
+
flex:unset!important;
|
|
1828
|
+
display:grid!important;
|
|
1829
|
+
grid-template-columns:minmax(0,1fr) 86px!important;
|
|
1830
|
+
align-items:start!important;
|
|
1831
|
+
gap:10px!important;
|
|
1832
|
+
}
|
|
1833
|
+
.decision-identity{min-width:0;overflow:hidden}
|
|
1834
|
+
.decision-player{
|
|
1835
|
+
white-space:nowrap;
|
|
1836
|
+
overflow:hidden;
|
|
1837
|
+
text-overflow:ellipsis;
|
|
1838
|
+
line-height:1.05;
|
|
1839
|
+
}
|
|
1840
|
+
.decision-model-line{
|
|
1841
|
+
margin-top:4px;
|
|
1842
|
+
max-width:100%;
|
|
1843
|
+
overflow:hidden;
|
|
1844
|
+
text-overflow:ellipsis;
|
|
1845
|
+
white-space:nowrap;
|
|
1846
|
+
color:var(--muted);
|
|
1847
|
+
font-size:9px;
|
|
1848
|
+
line-height:1.2;
|
|
1849
|
+
}
|
|
1850
|
+
.clock-wrap{min-width:0;width:86px;text-align:right}
|
|
1851
|
+
.decision-clock{line-height:.92;font-variant-numeric:tabular-nums}
|
|
1852
|
+
.decision-phase{white-space:nowrap}
|
|
1853
|
+
.decision-context{
|
|
1854
|
+
height:44px;
|
|
1855
|
+
display:grid;
|
|
1856
|
+
grid-template-columns:repeat(4,minmax(0,1fr));
|
|
1857
|
+
gap:5px;
|
|
1858
|
+
padding:5px;
|
|
1859
|
+
border:1px solid rgba(255,255,255,.055);
|
|
1860
|
+
border-radius:10px;
|
|
1861
|
+
background:rgba(255,255,255,.018);
|
|
1862
|
+
}
|
|
1863
|
+
.decision-context>span{
|
|
1864
|
+
min-width:0;
|
|
1865
|
+
display:grid;
|
|
1866
|
+
align-content:center;
|
|
1867
|
+
gap:2px;
|
|
1868
|
+
padding:0 5px;
|
|
1869
|
+
border-right:1px solid rgba(255,255,255,.045);
|
|
1870
|
+
}
|
|
1871
|
+
.decision-context>span:last-child{border-right:0}
|
|
1872
|
+
.decision-context small{
|
|
1873
|
+
font-size:6px;
|
|
1874
|
+
line-height:1;
|
|
1875
|
+
font-weight:850;
|
|
1876
|
+
letter-spacing:.12em;
|
|
1877
|
+
text-transform:uppercase;
|
|
1878
|
+
color:rgba(210,220,226,.42);
|
|
1879
|
+
}
|
|
1880
|
+
.decision-context b{
|
|
1881
|
+
min-width:0;
|
|
1882
|
+
overflow:hidden;
|
|
1883
|
+
text-overflow:ellipsis;
|
|
1884
|
+
white-space:nowrap;
|
|
1885
|
+
font-size:9px;
|
|
1886
|
+
line-height:1.15;
|
|
1887
|
+
color:rgba(241,246,249,.78);
|
|
1888
|
+
font-weight:850;
|
|
1889
|
+
}
|
|
1890
|
+
.decision-actions-head{
|
|
1891
|
+
height:18px;
|
|
1892
|
+
display:flex;
|
|
1893
|
+
align-items:center;
|
|
1894
|
+
justify-content:space-between;
|
|
1895
|
+
gap:8px;
|
|
1896
|
+
padding:0 1px;
|
|
1897
|
+
font-size:7px;
|
|
1898
|
+
font-weight:850;
|
|
1899
|
+
letter-spacing:.11em;
|
|
1900
|
+
text-transform:uppercase;
|
|
1901
|
+
color:rgba(210,220,226,.48);
|
|
1902
|
+
}
|
|
1903
|
+
.decision-actions-head .mono{
|
|
1904
|
+
max-width:55%;
|
|
1905
|
+
overflow:hidden;
|
|
1906
|
+
text-overflow:ellipsis;
|
|
1907
|
+
white-space:nowrap;
|
|
1908
|
+
font-size:6.5px;
|
|
1909
|
+
letter-spacing:.04em;
|
|
1910
|
+
text-transform:none;
|
|
1911
|
+
font-weight:600;
|
|
1912
|
+
}
|
|
1913
|
+
.decision-card .legal-actions{
|
|
1914
|
+
min-height:0!important;
|
|
1915
|
+
max-height:none!important;
|
|
1916
|
+
overflow-y:auto!important;
|
|
1917
|
+
overflow-x:hidden!important;
|
|
1918
|
+
display:grid!important;
|
|
1919
|
+
grid-template-columns:repeat(2,minmax(0,1fr))!important;
|
|
1920
|
+
grid-auto-rows:min-content;
|
|
1921
|
+
align-content:start!important;
|
|
1922
|
+
gap:5px!important;
|
|
1923
|
+
margin:0!important;
|
|
1924
|
+
padding:1px 3px 3px 0!important;
|
|
1925
|
+
scrollbar-gutter:stable;
|
|
1926
|
+
}
|
|
1927
|
+
.decision-card .legal-actions .action-chip{
|
|
1928
|
+
width:100%;
|
|
1929
|
+
min-width:0;
|
|
1930
|
+
min-height:27px;
|
|
1931
|
+
padding:5px 7px;
|
|
1932
|
+
display:flex;
|
|
1933
|
+
align-items:center;
|
|
1934
|
+
justify-content:flex-start;
|
|
1935
|
+
border-radius:8px;
|
|
1936
|
+
font-size:8px;
|
|
1937
|
+
line-height:1.2;
|
|
1938
|
+
white-space:normal;
|
|
1939
|
+
overflow-wrap:anywhere;
|
|
1940
|
+
}
|
|
1941
|
+
.decision-card .legal-actions .action-chip:only-child{grid-column:1/-1}
|
|
1942
|
+
/* Rationale and Jev/model telemetry belong in Recent decisions. Keeping them
|
|
1943
|
+
out of the live instrument guarantees identical geometry across protocols. */
|
|
1944
|
+
.decision-card .decision-public-reason,
|
|
1945
|
+
.decision-card .decision-telemetry{display:none!important}
|
|
1946
|
+
|
|
1947
|
+
@media(min-width:860px) and (max-height:700px){
|
|
1948
|
+
.decision-panel{height:270px!important;min-height:270px!important;max-height:270px!important}
|
|
1949
|
+
.decision-card{height:222px!important;min-height:222px!important;max-height:222px!important;grid-template-rows:56px 40px 16px minmax(0,1fr)!important;padding:9px!important}
|
|
1950
|
+
.decision-top{height:56px!important;grid-template-columns:minmax(0,1fr) 78px!important}
|
|
1951
|
+
.clock-wrap{width:78px}
|
|
1952
|
+
.decision-context{height:40px;padding:4px}
|
|
1953
|
+
.decision-card .legal-actions .action-chip{min-height:24px;font-size:7px;padding:4px 6px}
|
|
1954
|
+
}
|
|
1955
|
+
|
|
1956
|
+
@media(max-width:859px){
|
|
1957
|
+
.decision-panel{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
|
|
1958
|
+
.decision-card{height:auto!important;min-height:226px!important;max-height:none!important;grid-template-rows:62px 44px 18px auto!important;overflow:visible!important}
|
|
1959
|
+
.decision-card .legal-actions{max-height:180px!important;overflow-y:auto!important}
|
|
1960
|
+
}
|
|
1961
|
+
@media(max-width:430px){
|
|
1962
|
+
.decision-card{padding:9px!important;grid-template-rows:58px 42px 18px auto!important}
|
|
1963
|
+
.decision-top{height:58px!important;grid-template-columns:minmax(0,1fr) 72px!important}
|
|
1964
|
+
.clock-wrap{width:72px}
|
|
1965
|
+
.decision-context{height:42px;gap:3px;padding:4px 3px}
|
|
1966
|
+
.decision-context>span{padding:0 3px}.decision-context small{font-size:5px}.decision-context b{font-size:8px}
|
|
1967
|
+
.decision-card .legal-actions{grid-template-columns:1fr!important;max-height:170px!important}
|
|
1968
|
+
}
|
|
1969
|
+
|
|
1970
|
+
/* 0.2.22 — persistent felt branding + separate in-table action line */
|
|
1971
|
+
.table-brand-stage{
|
|
1972
|
+
display:flex!important;
|
|
1973
|
+
flex-direction:column!important;
|
|
1974
|
+
align-items:center!important;
|
|
1975
|
+
justify-content:flex-start!important;
|
|
1976
|
+
min-height:118px!important;
|
|
1977
|
+
margin-bottom:6px!important;
|
|
1978
|
+
position:relative!important;
|
|
1979
|
+
}
|
|
1980
|
+
.table-brand-stage .table-brand{
|
|
1981
|
+
position:relative!important;
|
|
1982
|
+
z-index:2!important;
|
|
1983
|
+
flex:0 0 auto!important;
|
|
1984
|
+
opacity:.17!important;
|
|
1985
|
+
transform:none!important;
|
|
1986
|
+
filter:saturate(.55) contrast(.95)!important;
|
|
1987
|
+
}
|
|
1988
|
+
.poker-table.action-message-visible .table-brand-stage .table-brand{
|
|
1989
|
+
opacity:.17!important;
|
|
1990
|
+
transform:none!important;
|
|
1991
|
+
filter:saturate(.55) contrast(.95)!important;
|
|
1992
|
+
}
|
|
1993
|
+
.table-brand-stage .action-toast{
|
|
1994
|
+
position:absolute!important;
|
|
1995
|
+
left:50%!important;
|
|
1996
|
+
right:auto!important;
|
|
1997
|
+
top:auto!important;
|
|
1998
|
+
bottom:2px!important;
|
|
1999
|
+
transform:translateX(-50%)!important;
|
|
2000
|
+
z-index:8!important;
|
|
2001
|
+
min-height:34px!important;
|
|
2002
|
+
max-width:min(94%,560px)!important;
|
|
2003
|
+
padding:7px 16px!important;
|
|
2004
|
+
background:rgba(5,15,12,.38)!important;
|
|
2005
|
+
backdrop-filter:blur(4px)!important;
|
|
2006
|
+
box-shadow:0 8px 22px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.02)!important;
|
|
2007
|
+
}
|
|
2008
|
+
@keyframes feltActionIn0222{from{opacity:0;transform:translate(-50%,5px) scale(.985)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
|
|
2009
|
+
.table-brand-stage .action-toast:not(.hidden){animation:feltActionIn0222 .2s cubic-bezier(.2,.8,.2,1) both!important}
|
|
2010
|
+
.poker-table[data-density="compact"] .table-brand-stage{min-height:96px!important}
|
|
2011
|
+
.poker-table[data-density="tight"] .table-brand-stage{min-height:72px!important}
|
|
2012
|
+
.poker-table[data-density="micro"] .table-brand-stage{min-height:56px!important;margin-bottom:1px!important}
|
|
2013
|
+
.poker-table[data-density="micro"] .table-brand-stage .action-toast{min-height:22px!important;bottom:0!important;padding:3px 7px!important;font-size:6px!important;max-width:180px!important}
|
|
2014
|
+
@media(max-width:860px){
|
|
2015
|
+
.table-brand-stage{min-height:76px!important;margin-bottom:3px!important}
|
|
2016
|
+
.table-brand-stage .action-toast{min-height:27px!important;bottom:0!important;padding:4px 9px!important;font-size:7.5px!important;max-width:92%!important}
|
|
2017
|
+
}
|
|
2018
|
+
|
|
2019
|
+
/* Keep the table brand (logo + pokertools-arena + description) legible: do not
|
|
2020
|
+
shrink it heavily on small screens or dense tables. These floors come last so
|
|
2021
|
+
they win over the earlier per-density/per-breakpoint reductions. */
|
|
2022
|
+
@media(max-width:860px){
|
|
2023
|
+
.table-brand-mark{font-size:clamp(22px,6.4vw,30px)!important}
|
|
2024
|
+
.table-brand-copy strong{font-size:clamp(21px,6vw,28px)!important;letter-spacing:-.05em!important}
|
|
2025
|
+
.table-brand-copy small{font-size:clamp(7.5px,1.9vw,9px)!important;letter-spacing:.2em!important}
|
|
2026
|
+
.table-brand-copy::after{width:64px!important}
|
|
2027
|
+
}
|
|
2028
|
+
.poker-table[data-density="micro"] .table-brand-mark,
|
|
2029
|
+
.poker-table[data-density="micro"] .table-brand-copy strong{font-size:clamp(18px,5vw,26px)!important}
|
|
2030
|
+
.poker-table[data-density="micro"] .table-brand-copy small{font-size:clamp(7px,1.6vw,9px)!important;letter-spacing:.18em!important}
|
|
2031
|
+
.poker-table[data-density="tight"] .table-brand-mark,
|
|
2032
|
+
.poker-table[data-density="tight"] .table-brand-copy strong{font-size:clamp(18px,4.6vw,24px)!important}
|
|
2033
|
+
.poker-table[data-density="tight"] .table-brand-copy small{font-size:clamp(7px,1.5vw,9px)!important;letter-spacing:.17em!important}
|
|
2034
|
+
|
|
2035
|
+
/* Polished action status on the felt: a type glyph, a soft tinted wash and a
|
|
2036
|
+
matching glow so Call / Check / Bet / Raise / Fold read as game events. */
|
|
2037
|
+
.table-brand-stage .action-toast{gap:0}
|
|
2038
|
+
.table-brand-stage .action-toast::before{
|
|
2039
|
+
content:"●";
|
|
2040
|
+
display:inline-block;
|
|
2041
|
+
font-size:.62em;
|
|
2042
|
+
line-height:1;
|
|
2043
|
+
margin-right:9px;
|
|
2044
|
+
opacity:.95;
|
|
2045
|
+
transform:translateY(-.02em);
|
|
2046
|
+
}
|
|
2047
|
+
.table-brand-stage .action-toast.raise::before,
|
|
2048
|
+
.table-brand-stage .action-toast.bet::before{content:"▲";font-size:.82em}
|
|
2049
|
+
.table-brand-stage .action-toast.check::before{content:"✓";font-size:.92em}
|
|
2050
|
+
.table-brand-stage .action-toast.fold::before{content:"✕";font-size:.82em}
|
|
2051
|
+
.table-brand-stage .action-toast.raise,
|
|
2052
|
+
.table-brand-stage .action-toast.bet{
|
|
2053
|
+
background:linear-gradient(180deg,rgba(218,181,109,.14),rgba(5,15,12,.52))!important;
|
|
2054
|
+
box-shadow:0 10px 28px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.03),0 0 22px rgba(218,181,109,.12)!important;
|
|
2055
|
+
}
|
|
2056
|
+
.table-brand-stage .action-toast.call{
|
|
2057
|
+
background:linear-gradient(180deg,rgba(142,182,223,.14),rgba(5,15,12,.52))!important;
|
|
2058
|
+
box-shadow:0 10px 28px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.03),0 0 22px rgba(142,182,223,.12)!important;
|
|
2059
|
+
}
|
|
2060
|
+
.table-brand-stage .action-toast.check{
|
|
2061
|
+
background:linear-gradient(180deg,rgba(143,197,161,.14),rgba(5,15,12,.52))!important;
|
|
2062
|
+
box-shadow:0 10px 28px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.03),0 0 22px rgba(143,197,161,.12)!important;
|
|
2063
|
+
}
|
|
2064
|
+
.table-brand-stage .action-toast.fold{
|
|
2065
|
+
background:linear-gradient(180deg,rgba(216,121,130,.14),rgba(5,15,12,.52))!important;
|
|
2066
|
+
box-shadow:0 10px 28px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.03),0 0 22px rgba(216,121,130,.12)!important;
|
|
2067
|
+
}
|
|
2068
|
+
|
|
2069
|
+
/* Responsive suit glyphs -----------------------------------------------------
|
|
2070
|
+
Size the centered suit symbol from the card box itself (container query units)
|
|
2071
|
+
instead of a fixed px per breakpoint, so it scales with the responsive card
|
|
2072
|
+
containers and stays clearly visible at every size. cqmin = the smaller of the
|
|
2073
|
+
card's width/height. The !important flags intentionally override the older
|
|
2074
|
+
per-breakpoint and per-density fixed sizes above. */
|
|
2075
|
+
.card{container-type:size}
|
|
2076
|
+
.card .card-suit{font-size:60cqmin!important}
|
|
2077
|
+
.board .card .card-suit{font-size:57cqmin!important}
|
|
2078
|
+
.poker-table[data-density="micro"] .hole-cards .card .card-suit{font-size:60cqmin!important}
|
|
2079
|
+
.poker-table[data-density="micro"] .board .card .card-suit{font-size:57cqmin!important}
|
|
2080
|
+
|
|
2081
|
+
/* Right-panel status lines: keep them single-line so changing status text never
|
|
2082
|
+
wraps or reflows the fixed decision grid (the grid itself lives above at
|
|
2083
|
+
.decision-card / .decision-top). Full text stays available via title. */
|
|
2084
|
+
.clock-wrap{display:flex;flex-direction:column;align-items:flex-end;overflow:hidden}
|
|
2085
|
+
#decisionClock{white-space:nowrap}
|
|
2086
|
+
#bankClock{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.15}
|
|
2087
|
+
.decision-actions-head #decisionActionLabel{white-space:nowrap}
|
|
2088
|
+
.decision-actions-head #decisionActionHint{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
|
|
2089
|
+
|
|
2090
|
+
/* Winner block: a compact final-standings podium fills the card body so the
|
|
2091
|
+
winner state has no dead space. Rows are sized to fit the fixed grid row. */
|
|
2092
|
+
.legal-actions .winner-podium{width:100%;display:grid;gap:4px;align-content:start}
|
|
2093
|
+
.podium-row{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:6px;min-height:18px;padding:1px 7px;border:1px solid rgba(255,255,255,.05);border-radius:8px;background:rgba(255,255,255,.015)}
|
|
2094
|
+
.podium-row.first{border-color:rgba(219,181,92,.28);background:rgba(219,181,92,.06)}
|
|
2095
|
+
.podium-medal{font-size:11px;line-height:1;text-align:center}
|
|
2096
|
+
.podium-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800;font-size:10px;color:#e6ebee}
|
|
2097
|
+
.podium-meta{font-size:8px;color:#8b97a0;white-space:nowrap;font-variant-numeric:tabular-nums}
|
|
2098
|
+
.podium-row.first .podium-name{color:#f0d79a}
|
|
2099
|
+
.podium-row.first .podium-meta{color:#cdb476}
|
|
2100
|
+
|
|
2101
|
+
/* Turn timer: a depleting border ring on the seat that is on the clock. No
|
|
2102
|
+
numbers, so spectators can read the remaining time at a glance. --turn is set
|
|
2103
|
+
from requestAnimationFrame in startClock (1 = full, 0 = empty). */
|
|
2104
|
+
.seat .seat-turn{
|
|
2105
|
+
position:absolute;inset:0;z-index:1;border-radius:inherit;padding:2px;pointer-events:none;
|
|
2106
|
+
opacity:0;transition:opacity .3s ease;
|
|
2107
|
+
background:conic-gradient(from -90deg, rgba(255,255,255,.05) 0deg calc((1 - var(--turn,1)) * 360deg), var(--ring,rgba(198,255,87,.92)) calc((1 - var(--turn,1)) * 360deg) 360deg);
|
|
2108
|
+
-webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
|
|
2109
|
+
mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
|
|
2110
|
+
-webkit-mask-composite:xor;
|
|
2111
|
+
mask-composite:exclude;
|
|
2112
|
+
}
|
|
2113
|
+
.seat.turn-active .seat-turn{opacity:1}
|
|
2114
|
+
.seat.turn-active.turn-low .seat-turn{--ring:rgba(255,168,74,.95)}
|
|
2115
|
+
.seat.turn-active{border-color:rgba(198,255,87,.28)}
|
|
2116
|
+
.seat.turn-active.turn-low{border-color:rgba(255,168,74,.38)}
|
|
2117
|
+
|
|
2118
|
+
/* Keep the position badge (BTN/SB/BB) inside the seat: let the identity column
|
|
2119
|
+
shrink instead of letting the long model id push the badge out of the card. */
|
|
2120
|
+
.seat-head>div{min-width:0;flex:1 1 auto;overflow:hidden}
|
|
2121
|
+
.seat-pos{flex:0 0 auto;white-space:nowrap}
|
|
2122
|
+
.seat-model{max-width:100%}
|
|
2123
|
+
.seat-name{max-width:100%}
|
|
2124
|
+
|
|
2125
|
+
/* Champion badge: a consistent gold medal with a soft sheen instead of a raw
|
|
2126
|
+
emoji, so the winner mark renders identically on every platform. */
|
|
2127
|
+
.champion-badge{position:relative;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;
|
|
2128
|
+
background:radial-gradient(circle at 50% 30%, rgba(255,231,159,.30), rgba(219,181,92,.10) 60%, rgba(219,181,92,0) 72%);
|
|
2129
|
+
border:1px solid rgba(219,181,92,.55);color:#f2d587;overflow:hidden;vertical-align:middle;
|
|
2130
|
+
box-shadow:inset 0 0 0 1px rgba(255,226,148,.10),0 0 14px rgba(219,181,92,.26);
|
|
2131
|
+
animation:championGlow 3.6s ease-in-out infinite;}
|
|
2132
|
+
.champion-badge svg{width:15px;height:15px;fill:currentColor;filter:drop-shadow(0 1px 0 rgba(0,0,0,.28))}
|
|
2133
|
+
.champion-badge::after{content:"";position:absolute;top:-25%;left:-50%;width:55%;height:150%;transform:rotate(18deg);
|
|
2134
|
+
background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);
|
|
2135
|
+
animation:championSheen 3.6s ease-in-out infinite;}
|
|
2136
|
+
@keyframes championGlow{0%,100%{box-shadow:inset 0 0 0 1px rgba(255,226,148,.10),0 0 12px rgba(219,181,92,.22)}50%{box-shadow:inset 0 0 0 1px rgba(255,226,148,.16),0 0 20px rgba(219,181,92,.42)}}
|
|
2137
|
+
@keyframes championSheen{0%,55%{transform:translateX(-160%) rotate(18deg);opacity:0}70%{opacity:1}100%{transform:translateX(340%) rotate(18deg);opacity:0}}
|
|
2138
|
+
@media (prefers-reduced-motion: reduce){.champion-badge{animation:none}.champion-badge::after{animation:none;opacity:0}}
|
|
2139
|
+
|
|
2140
|
+
/* 0.2.23 — share metadata, repository links, compact model cards ------------- */
|
|
2141
|
+
|
|
2142
|
+
/* The topbar repository control is an anchor styled like the other actions. */
|
|
2143
|
+
a.button{text-decoration:none}
|
|
2144
|
+
.repo-action{color:var(--text)}
|
|
2145
|
+
.repo-icon{width:11px;height:11px;opacity:.82}
|
|
2146
|
+
.repo-action:hover .repo-icon{opacity:1}
|
|
2147
|
+
|
|
2148
|
+
/* Slim project footer with the canonical repository, issues and npm links. */
|
|
2149
|
+
.site-footer{
|
|
2150
|
+
max-width:1680px;
|
|
2151
|
+
margin:12px auto 0;
|
|
2152
|
+
padding:12px 2px 0;
|
|
2153
|
+
display:flex;
|
|
2154
|
+
align-items:center;
|
|
2155
|
+
justify-content:space-between;
|
|
2156
|
+
gap:10px 16px;
|
|
2157
|
+
flex-wrap:wrap;
|
|
2158
|
+
border-top:1px solid rgba(232,238,243,.07);
|
|
2159
|
+
color:var(--muted);
|
|
2160
|
+
font-size:11px;
|
|
2161
|
+
}
|
|
2162
|
+
.site-footer-brand{display:flex;align-items:center;gap:8px;min-width:0;line-height:1.3}
|
|
2163
|
+
.site-footer-mark{display:grid;place-items:center;flex:0 0 auto;width:22px;height:22px;border-radius:7px;background:rgba(143,214,168,.08);border:1px solid rgba(143,214,168,.18);color:#8fd6a8;font-size:12px}
|
|
2164
|
+
.site-footer-sep{opacity:.4}
|
|
2165
|
+
.site-footer-links{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
|
|
2166
|
+
.site-footer-links a{
|
|
2167
|
+
display:inline-flex;align-items:center;gap:6px;
|
|
2168
|
+
padding:6px 11px;border-radius:999px;
|
|
2169
|
+
border:1px solid rgba(232,238,243,.09);
|
|
2170
|
+
background:rgba(255,255,255,.02);
|
|
2171
|
+
color:#aab5bb;text-decoration:none;
|
|
2172
|
+
font-size:10px;font-weight:800;white-space:nowrap;
|
|
2173
|
+
transition:color .15s ease,border-color .15s ease,background .15s ease;
|
|
2174
|
+
}
|
|
2175
|
+
.site-footer-links a:hover{color:#e7f0e9;border-color:rgba(143,214,168,.3);background:rgba(143,214,168,.07)}
|
|
2176
|
+
.site-footer-icon{width:12px;height:12px;flex:0 0 auto;opacity:.85}
|
|
2177
|
+
|
|
2178
|
+
/* Two model stat cards per row whenever the table stacks above the inspector,
|
|
2179
|
+
so the Models tab needs half the vertical scrolling. Inner grids only compact
|
|
2180
|
+
on narrow phones, where each card would otherwise be too tight. */
|
|
2181
|
+
@media(max-width:859px){
|
|
2182
|
+
.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
|
|
2183
|
+
}
|
|
2184
|
+
@media(max-width:720px){
|
|
2185
|
+
.stat-card{padding:8px;border-radius:9px;min-width:0}
|
|
2186
|
+
.stat-top{flex-direction:column;gap:2px}
|
|
2187
|
+
.stat-top>div{min-width:0}
|
|
2188
|
+
.stat-name{font-size:11px;line-height:1.2}
|
|
2189
|
+
.stat-model{font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
|
|
2190
|
+
.stat-card>.stat-top>strong{font-size:12px;line-height:1.2}
|
|
2191
|
+
.poker-profile{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;margin-top:7px;padding:5px}
|
|
2192
|
+
.poker-profile b{font-size:8px}
|
|
2193
|
+
.poker-profile span{font-size:5.5px}
|
|
2194
|
+
.stat-values{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:6px}
|
|
2195
|
+
.metric{padding:5px}
|
|
2196
|
+
.metric b{font-size:10px}
|
|
2197
|
+
.metric span{font-size:6.5px}
|
|
2198
|
+
.stat-reliability{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;margin-top:5px;padding-top:6px}
|
|
2199
|
+
.stat-reliability span{font-size:6.5px;padding:3px 4px}
|
|
2200
|
+
.stat-reliability b{font-size:7.5px}
|
|
2201
|
+
}
|
|
2202
|
+
|
|
2203
|
+
@media(max-width:420px){
|
|
2204
|
+
.stats-grid{gap:5px}
|
|
2205
|
+
.stat-card{padding:7px}
|
|
2206
|
+
.poker-profile{grid-template-columns:repeat(3,minmax(0,1fr))}
|
|
2207
|
+
.stat-reliability span{font-size:6px}
|
|
2208
|
+
}
|
|
2209
|
+
|
|
2210
|
+
/* The desktop layout is a true viewport fit: the table owns the full height.
|
|
2211
|
+
The footer therefore only appears once the layout stacks and can scroll.
|
|
2212
|
+
Desktop repo access stays available through the topbar GitHub action. */
|
|
2213
|
+
@media(min-width:860px){
|
|
2214
|
+
.site-footer{display:none}
|
|
2215
|
+
}
|
|
2216
|
+
@media(max-width:720px){
|
|
2217
|
+
.site-footer{margin-top:9px;padding-top:10px;align-items:flex-start;flex-direction:column;gap:9px}
|
|
2218
|
+
.site-footer-links{width:100%}
|
|
2219
|
+
}
|
|
2220
|
+
|
|
2221
|
+
/* 0.2.23 — Action message above the board -------------------------------------
|
|
2222
|
+
The old badge used five saturated action hues plus a glyph. It now shares the
|
|
2223
|
+
same quiet translucent surface as the table HUD below the board, so a call,
|
|
2224
|
+
bet, check or fold reads as part of the felt instead of a notification badge.
|
|
2225
|
+
The per-type colour rules from earlier versions are intentionally flattened. */
|
|
2226
|
+
.table-brand-stage .action-toast,
|
|
2227
|
+
.poker-table[data-density] .table-brand-stage .action-toast,
|
|
2228
|
+
.table-brand-stage .action-toast.raise,
|
|
2229
|
+
.table-brand-stage .action-toast.bet,
|
|
2230
|
+
.table-brand-stage .action-toast.call,
|
|
2231
|
+
.table-brand-stage .action-toast.check,
|
|
2232
|
+
.table-brand-stage .action-toast.fold{
|
|
2233
|
+
min-height:30px!important;
|
|
2234
|
+
padding:6px 15px!important;
|
|
2235
|
+
border-radius:11px!important;
|
|
2236
|
+
background:rgba(7,15,12,.30)!important;
|
|
2237
|
+
border:1px solid rgba(255,255,255,.05)!important;
|
|
2238
|
+
color:rgba(245,249,247,.66)!important;
|
|
2239
|
+
font-size:11px!important;
|
|
2240
|
+
font-weight:600!important;
|
|
2241
|
+
letter-spacing:.012em!important;
|
|
2242
|
+
text-transform:none!important;
|
|
2243
|
+
text-shadow:0 1px 6px rgba(0,0,0,.18)!important;
|
|
2244
|
+
box-shadow:0 8px 22px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.02)!important;
|
|
2245
|
+
backdrop-filter:blur(3px)!important;
|
|
2246
|
+
}
|
|
2247
|
+
.table-brand-stage .action-toast::before,
|
|
2248
|
+
.table-brand-stage .action-toast.raise::before,
|
|
2249
|
+
.table-brand-stage .action-toast.bet::before,
|
|
2250
|
+
.table-brand-stage .action-toast.call::before,
|
|
2251
|
+
.table-brand-stage .action-toast.check::before,
|
|
2252
|
+
.table-brand-stage .action-toast.fold::before{content:none!important;display:none!important}
|
|
2253
|
+
.poker-table[data-density="compact"] .table-brand-stage .action-toast{font-size:10px!important;min-height:28px!important;padding:5px 13px!important}
|
|
2254
|
+
.poker-table[data-density="tight"] .table-brand-stage .action-toast{font-size:9px!important;min-height:26px!important;padding:5px 11px!important;border-radius:9px!important}
|
|
2255
|
+
.poker-table[data-density="micro"] .table-brand-stage .action-toast{font-size:8px!important;min-height:23px!important;padding:4px 9px!important;border-radius:8px!important}
|
|
2256
|
+
@media(max-width:720px){
|
|
2257
|
+
.poker-table[data-density] .table-brand-stage .action-toast{font-size:9px!important;min-height:26px!important;padding:5px 11px!important;border-radius:9px!important}
|
|
2258
|
+
}
|
|
2259
|
+
|
|
2260
|
+
/* Small screens: a card keeps only its top-left rank and the centred suit. The
|
|
2261
|
+
corner suit glyph and the mirrored bottom-right corner are dropped, so cards
|
|
2262
|
+
stay clean and legible at phone sizes. */
|
|
2263
|
+
@media(max-width:720px){
|
|
2264
|
+
.card .card-corner i{display:none!important}
|
|
2265
|
+
.card .card-corner.bottom{display:none!important}
|
|
2266
|
+
}
|
|
2267
|
+
|
|
2268
|
+
/* 0.2.23 — decision diagnostics + deterministic hand evaluation
|
|
2269
|
+
Spectator-only annotations. The note explicitly separates typed model
|
|
2270
|
+
answers from any fabricated rationale. */
|
|
2271
|
+
.decision-facts-note{margin-top:6px;font-size:10px;line-height:1.4;color:var(--muted,#8aa098);border-left:2px solid rgba(184,236,111,.35);padding-left:8px}
|
|
2272
|
+
.replay-reason-text{margin-bottom:10px;line-height:1.45}
|
|
2273
|
+
.replay-summary span b{white-space:nowrap}
|
|
2274
|
+
|
|
2275
|
+
/* 0.3.0 — hierarchical decision architecture + Strategy/Raw benchmark modes.
|
|
2276
|
+
The two-stage action-family/size contract uses the same instrument geometry
|
|
2277
|
+
for every model; probability telemetry is grouped and translated so raw
|
|
2278
|
+
A0/A1 identifiers are never surfaced to spectators. */
|
|
2279
|
+
.benchmark-advanced{margin-top:10px}
|
|
2280
|
+
.benchmark-advanced summary{cursor:pointer;font-size:12px;color:var(--muted,#8aa098);letter-spacing:.02em}
|
|
2281
|
+
.checkbox-field{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted,#8aa098)}
|
|
2282
|
+
.checkbox-field input{width:auto}
|
|
2283
|
+
.stage-chip{white-space:nowrap}
|
|
2284
|
+
.telemetry-group{margin-top:6px}
|
|
2285
|
+
.telemetry-caption{display:block;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#8aa098);margin-bottom:3px}
|
|
2286
|
+
.decision-facts-note{white-space:normal}
|
|
2287
|
+
|
|
2288
|
+
/* 0.4.0 — methodology, reproducibility and repository-organization release.
|
|
2289
|
+
Browser application source moved under src/; visual behavior is unchanged. */
|