:root{--room-color:#7c3aed;--domino-bg:#0b0b0f;--domino-panel:#17171d;--domino-line:#34343d;--domino-text:#fff;--domino-muted:#a1a1aa}
.domino-lobby-page,.domino-room-page{background:#09090b;color:var(--domino-text)}
.domino-lobby-shell,.domino-room-shell{width:min(1180px,calc(100% - 28px));margin:22px auto}
.domino-lobby-header,.domino-room-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;background:var(--domino-panel);border:1px solid var(--domino-line);border-radius:22px;padding:24px;margin-bottom:18px}
.domino-lobby-header h1,.domino-room-header h1{margin:4px 0 8px}.domino-lobby-header p,.domino-room-header p{margin:0;color:var(--domino-muted)}.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:#c4b5fd}.back-link{text-decoration:none}.domino-mark,.room-domino-icon{display:grid;grid-template-columns:1fr 1fr;background:#f8fafc;color:#111827;border:5px solid #111827;border-radius:16px;overflow:hidden;min-width:92px;min-height:54px}.domino-mark span,.room-domino-icon span{display:grid;place-items:center;font-weight:900;font-size:1.5rem}.domino-mark span+span,.room-domino-icon span+span{border-left:3px solid #111827}
.domino-room-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.domino-room-card{--room-color:#7c3aed;display:grid;gap:18px;background:linear-gradient(180deg,color-mix(in srgb,var(--room-color) 20%,#17171d),#17171d);border:2px solid var(--room-color);border-radius:22px;padding:20px}.domino-room-card h2{margin:6px 0}.domino-room-card p{margin:0;color:var(--domino-muted)}.domino-room-card .button{background:var(--room-color)}.room-status{display:inline-flex;padding:5px 9px;border-radius:999px;background:#22222a;border:1px solid #383843;text-transform:capitalize;font-size:.75rem}.room-domino-icon{width:108px;border-color:var(--room-color);color:var(--room-color)}.room-domino-icon span+span{border-color:var(--room-color)}.domino-lobby-note{margin-top:18px;background:var(--domino-panel);border:1px solid var(--domino-line);border-radius:18px;padding:18px}.domino-lobby-note h2{margin-top:0}
.domino-room-page{--cw-live-accent:var(--room-color)}.domino-room-header{border-color:var(--room-color);box-shadow:inset 0 5px 0 var(--room-color)}.domino-room-actions{display:flex;gap:8px;flex-wrap:wrap}.domino-room-actions button{background:var(--room-color)}
.domino-score-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}.domino-player-seat{display:flex;align-items:center;gap:10px;background:var(--domino-panel);border:1px solid var(--domino-line);border-radius:16px;padding:12px}.domino-player-seat.active-turn{border-color:var(--room-color);box-shadow:inset 0 0 0 2px var(--room-color)}.domino-player-seat.empty{opacity:.65}.domino-player-avatar,.domino-chat-avatar{width:44px;height:44px;border-radius:50%;background:#27272f;border:2px solid var(--room-color);display:grid;place-items:center;overflow:hidden;flex:0 0 auto;font-weight:800}.domino-player-avatar img,.domino-chat-avatar img{width:100%;height:100%;object-fit:cover}.domino-player-seat strong{display:block}.domino-player-seat p{margin:3px 0 0;color:var(--domino-muted);font-size:.82rem}
.domino-table-wrap{background:#111116;border:1px solid var(--domino-line);border-radius:24px;padding:14px;margin-bottom:16px}.domino-table{min-height:340px;border:8px solid color-mix(in srgb,var(--room-color) 65%,#111);border-radius:999px;background:radial-gradient(circle at center,color-mix(in srgb,var(--room-color) 22%,#13251c),#0e1712 65%);padding:34px 28px;display:grid;grid-template-rows:auto 1fr auto;gap:16px}.domino-turn,.domino-boneyard{justify-self:center;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:8px 13px}.domino-board{display:flex;align-items:center;justify-content:flex-start;gap:5px;overflow-x:auto;padding:16px;min-height:140px}.domino-board>p{margin:auto;color:#d1d5db}
.domino-tile{position:relative;display:grid;grid-template-rows:1fr 3px 1fr;width:58px;height:104px;background:#f8fafc;color:#111827;border:3px solid #111827;border-radius:10px;overflow:visible;flex:0 0 auto;box-shadow:0 3px 8px rgba(0,0,0,.35)}.domino-tile>span{display:grid;place-items:center;font-weight:900;font-size:1.35rem}.domino-tile>i{background:#111827}.domino-hand .domino-tile{width:64px;height:112px}.domino-tile-actions{position:absolute;left:50%;bottom:-42px;transform:translateX(-50%);display:flex;gap:4px;z-index:3}.domino-tile-actions button{padding:6px 8px;border-radius:8px;font-size:.7rem;background:var(--room-color)}
.domino-hand-panel{background:var(--domino-panel);border:1px solid var(--domino-line);border-radius:20px;padding:18px;margin-bottom:16px}.domino-hand-heading{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.domino-hand-heading h2{margin:0 0 4px}.domino-hand-heading p{margin:0;color:var(--domino-muted)}.domino-play-controls{display:flex;gap:8px}.domino-play-controls button{background:var(--room-color)}.domino-hand{display:flex;gap:10px;overflow-x:auto;padding:16px 6px 50px;margin-top:8px;min-height:160px}
.domino-room-bottom{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(340px,1.25fr);gap:16px}.domino-join-card,.domino-chat-card{background:var(--domino-panel);border:1px solid var(--domino-line);border-radius:20px;padding:18px}.domino-join-card h2,.domino-chat-card h2{margin-top:0}.domino-join-card form{display:grid;gap:12px}.domino-join-card label{display:grid;gap:6px}.domino-join-card input,.domino-chat-card input{width:100%;background:#232329;color:#fff;border:1px solid #3a3a42;border-radius:10px;padding:11px}.domino-join-card button,.domino-chat-card button{background:var(--room-color)}.domino-chat-card{display:grid;grid-template-rows:auto minmax(230px,1fr) auto}.domino-chat-messages{overflow:auto;max-height:360px;padding:6px 0}.domino-chat-message{display:flex;gap:10px;margin:0 0 10px}.domino-chat-message strong{color:var(--room-color)}.domino-chat-message p{margin:2px 0 0}.domino-chat-avatar{width:34px;height:34px}.domino-chat-card form{display:grid;grid-template-columns:minmax(100px,150px) 1fr auto;gap:8px}
@media(max-width:900px){.domino-room-grid{grid-template-columns:1fr}.domino-score-row{grid-template-columns:repeat(2,minmax(0,1fr))}.domino-room-bottom{grid-template-columns:1fr}.domino-table{border-radius:40px}.domino-lobby-header,.domino-room-header{flex-direction:column}.domino-room-actions{width:100%}.domino-room-actions button{flex:1}}
@media(max-width:620px){.domino-lobby-shell,.domino-room-shell{width:calc(100% - 14px);margin:7px auto}.domino-lobby-header,.domino-room-header{padding:16px}.domino-score-row{grid-template-columns:1fr 1fr}.domino-player-seat{padding:9px}.domino-player-avatar{width:38px;height:38px}.domino-table-wrap{padding:6px}.domino-table{min-height:300px;padding:24px 10px;border-width:5px}.domino-board{padding:12px 4px}.domino-hand-heading{flex-direction:column}.domino-play-controls{width:100%}.domino-play-controls button{flex:1}.domino-chat-card form{grid-template-columns:1fr auto}.domino-chat-card #domino-chat-name{grid-column:1/-1}.domino-tile{width:50px;height:90px}.domino-hand .domino-tile{width:58px;height:102px}}

/* v0.6.3 spinner board + reliable pointer drag */
.domino-table{grid-template-rows:auto minmax(520px,1fr) auto;padding:24px 22px;gap:14px;border-radius:54px}
.domino-table-status{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.domino-open-ends{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.domino-open-ends span{display:inline-flex;align-items:center;gap:7px;background:rgba(0,0,0,.52);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:6px 9px}
.domino-open-ends b{font-size:.67rem;text-transform:uppercase;letter-spacing:.06em;color:#d1d5db}
.domino-open-ends strong{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#f8fafc;color:#111827;border:2px solid #111827}
.domino-board-scroll{position:relative;overflow:auto;min-height:520px;border:1px dashed rgba(255,255,255,.13);border-radius:28px;background:radial-gradient(circle at center,rgba(255,255,255,.045),rgba(0,0,0,.14));scrollbar-width:thin;overscroll-behavior:contain}
.domino-layout-canvas{position:relative;width:1500px;height:1500px;min-width:1500px;min-height:1500px}
.domino-branch-layer{position:absolute;inset:0}
.domino-spinner{position:absolute;left:750px;top:750px;transform:translate(-50%,-50%);z-index:4;display:grid;place-items:center;min-width:110px;min-height:110px}
.domino-spinner>p{color:#d1d5db;text-align:center}
.domino-board-piece{position:absolute;left:var(--tile-x);top:var(--tile-y);transform:translate(-50%,-50%);z-index:3;display:block}
.domino-board-piece.is-double .domino-piece{box-shadow:0 0 0 3px color-mix(in srgb,var(--room-color) 72%,#fff),0 4px 12px rgba(0,0,0,.46)}
.domino-piece{position:relative;display:grid;background:#fffdf2;color:#080808;border:3px solid #111827;border-radius:10px;overflow:hidden;box-shadow:0 3px 8px rgba(0,0,0,.42);pointer-events:none}
.domino-piece.is-horizontal{grid-template-columns:1fr 3px 1fr;grid-template-rows:1fr;width:76px;height:40px}
.domino-piece.is-vertical{grid-template-columns:1fr;grid-template-rows:1fr 3px 1fr;width:40px;height:76px}
.domino-piece.is-horizontal .domino-divider{width:3px;height:100%}
.domino-piece.is-vertical .domino-divider{width:100%;height:3px}
.domino-divider{display:block;background:#111827}
.domino-face{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:1px;padding:4px;min-width:0;min-height:0}
.pip{display:block;width:7px;height:7px;place-self:center;border-radius:50%;background:transparent}
body[data-domino-pips="black"] .pip.is-on,.domino-face.pip-theme-black .pip.is-on{background:#090909;box-shadow:inset 0 1px 1px rgba(255,255,255,.28)}
body[data-domino-pips="color"] .domino-face[data-value="1"] .pip.is-on,.domino-face.pip-theme-color[data-value="1"] .pip.is-on{background:#ec4899}
body[data-domino-pips="color"] .domino-face[data-value="2"] .pip.is-on,.domino-face.pip-theme-color[data-value="2"] .pip.is-on{background:#3b82f6}
body[data-domino-pips="color"] .domino-face[data-value="3"] .pip.is-on,.domino-face.pip-theme-color[data-value="3"] .pip.is-on{background:#22c55e}
body[data-domino-pips="color"] .domino-face[data-value="4"] .pip.is-on,.domino-face.pip-theme-color[data-value="4"] .pip.is-on{background:#f59e0b}
body[data-domino-pips="color"] .domino-face[data-value="5"] .pip.is-on,.domino-face.pip-theme-color[data-value="5"] .pip.is-on{background:#a855f7}
body[data-domino-pips="color"] .domino-face[data-value="6"] .pip.is-on,.domino-face.pip-theme-color[data-value="6"] .pip.is-on{background:#ef4444}
.domino-spinner .domino-piece.is-vertical{width:52px;height:98px;border-width:4px;border-radius:13px}
.domino-spinner .domino-piece.is-horizontal{width:98px;height:52px;border-width:4px;border-radius:13px}
.domino-spinner .pip{width:9px;height:9px}
.domino-drop-zone{position:absolute;left:var(--drop-x);top:var(--drop-y);transform:translate(-50%,-50%);z-index:8;width:70px;min-height:70px;border:2px dashed rgba(255,255,255,.28);background:rgba(0,0,0,.48);color:#d1d5db;border-radius:16px;padding:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;transition:border-color .15s ease,background .15s ease,transform .15s ease,opacity .15s ease}
.domino-drop-zone span{font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;text-align:center}
.domino-drop-zone strong{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#f8fafc;color:#111827;border:2px solid #111827;font-size:1.05rem}
.domino-drop-zone:disabled{cursor:not-allowed;opacity:.42;filter:none}
.domino-drop-zone.is-valid{opacity:1;border-color:#fef08a;background:rgba(254,240,138,.14);color:#fff;cursor:pointer;box-shadow:0 0 0 3px rgba(254,240,138,.12)}
.domino-drop-zone.is-invalid{opacity:.2;border-color:rgba(255,255,255,.12)}
.domino-drop-zone.is-over{opacity:1;border-style:solid;border-color:#fff;background:color-mix(in srgb,var(--room-color) 68%,#111);transform:translate(-50%,-50%) scale(1.08);box-shadow:0 0 0 5px rgba(255,255,255,.18)}
.domino-table-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
#domino-selection-status{margin:0;color:#e5e7eb;font-size:.88rem}
.domino-boneyard{justify-self:auto;white-space:nowrap}
.domino-legacy-board{position:absolute;left:40px;right:40px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:5px;overflow:auto;padding:24px;border-radius:22px;background:rgba(0,0,0,.16)}
.domino-layout-canvas.is-legacy .domino-spinner,.domino-layout-canvas.is-legacy .domino-branch-layer,.domino-layout-canvas.is-legacy .domino-drop-zone{display:none!important}
.domino-layout-canvas.is-legacy .domino-legacy-board{display:flex!important}
.domino-hand{align-items:flex-end;gap:12px;padding:18px 6px 12px;min-height:164px}
.domino-hand-tile{flex:0 0 auto;display:grid;gap:7px;justify-items:center;background:transparent!important;border:0!important;border-radius:14px;padding:8px!important;color:#fff;filter:none!important;transition:transform .15s ease,background .15s ease,opacity .15s ease,box-shadow .15s ease;user-select:none;-webkit-user-select:none;touch-action:none}
.domino-hand-tile small{font-size:.7rem;color:#d4d4d8;white-space:nowrap}
.domino-hand-tile .domino-piece.is-vertical{width:58px;height:108px;border-width:3px;border-radius:11px}
.domino-hand-tile .domino-face{padding:6px}
.domino-hand-tile .pip{width:10px;height:10px}
.domino-hand-tile.is-playable{cursor:grab;background:color-mix(in srgb,var(--room-color) 16%,transparent)!important;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--room-color) 75%,#fff)}
.domino-hand-tile.is-playable:hover{transform:translateY(-6px)}
.domino-hand-tile.is-playable:active{cursor:grabbing}
.domino-hand-tile.is-unplayable{opacity:.34;cursor:not-allowed}
.domino-hand-tile.is-selected{transform:translateY(-9px);background:color-mix(in srgb,var(--room-color) 38%,#111)!important;box-shadow:0 0 0 3px #fff,0 0 0 7px var(--room-color)}
.domino-hand-tile.is-dragging{opacity:.25;transform:none}
.domino-drag-ghost{position:fixed!important;z-index:99999!important;left:0;top:0;transform:translate(-50%,-50%) rotate(6deg) scale(1.06);pointer-events:none!important;opacity:.96;box-shadow:0 16px 38px rgba(0,0,0,.58)!important}
.domino-pointer-active{user-select:none!important;-webkit-user-select:none!important;cursor:grabbing!important}
.domino-busy .domino-hand-tile,.domino-busy .domino-drop-zone{pointer-events:none}
@media(max-width:760px){
  .domino-table{padding:16px 8px;grid-template-rows:auto minmax(460px,1fr) auto;border-radius:28px}
  .domino-table-status{align-items:flex-start;flex-direction:column}
  .domino-open-ends{justify-content:flex-start}
  .domino-board-scroll{min-height:460px}
  .domino-layout-canvas{transform-origin:top left}
  .domino-table-footer{align-items:flex-start;flex-direction:column}
  .domino-boneyard{align-self:flex-end}
  .domino-hand{padding-bottom:8px}
}

/* v0.6.4 full-width room chat + emoji picker */
.domino-room-bottom{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.domino-join-card,.domino-chat-card{grid-column:1/-1;width:100%}
.domino-chat-card{display:grid;grid-template-rows:auto minmax(260px,1fr) auto;padding:20px}
.domino-chat-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}
.domino-chat-heading h2{margin:0 0 4px}
.domino-chat-heading p{margin:0;color:var(--domino-muted)}
.domino-chat-count{color:var(--domino-muted);font-size:.8rem;white-space:nowrap}
.domino-chat-messages{width:100%;max-height:430px;min-height:260px;padding:12px;background:rgba(0,0,0,.14);border:1px solid var(--domino-line);border-radius:14px}
.domino-chat-message{align-items:flex-start;padding:7px 2px}
.domino-chat-message>div:last-child{min-width:0;max-width:100%}
.domino-chat-message p{overflow-wrap:anywhere;white-space:pre-wrap}
#domino-chat-form{display:grid;grid-template-columns:minmax(130px,190px) minmax(0,1fr);gap:10px;margin-top:12px;align-items:center}
.domino-chat-composer{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;min-width:0}
.domino-chat-composer input{min-width:0}
.domino-emoji-toggle{width:46px;min-width:46px;padding:0;border:1px solid #3a3a42;background:#232329!important;font-size:1.2rem}
.domino-emoji-toggle.is-open{box-shadow:0 0 0 3px color-mix(in srgb,var(--room-color) 35%,transparent)}
.domino-chat-send{min-width:78px}
.domino-emoji-picker[hidden]{display:none}
.domino-emoji-picker{position:absolute;left:0;bottom:calc(100% + 10px);z-index:40;width:min(360px,calc(100vw - 40px));display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:5px;padding:10px;background:#1b1b21;border:1px solid #44444d;border-radius:16px;box-shadow:0 18px 45px rgba(0,0,0,.5)}
.domino-emoji-option{display:grid;place-items:center;aspect-ratio:1/1;min-width:0;padding:4px;background:#27272f!important;border:1px solid transparent;border-radius:9px;font-size:1.25rem}
.domino-emoji-option:hover,.domino-emoji-option:focus-visible{border-color:var(--room-color);background:#34343d!important}
@media(max-width:760px){
  .domino-chat-card{padding:14px}
  .domino-chat-heading{align-items:flex-start;flex-direction:column;gap:4px}
  .domino-chat-messages{min-height:230px;max-height:360px}
  #domino-chat-form{grid-template-columns:1fr}
  .domino-chat-composer{grid-template-columns:auto minmax(0,1fr) auto}
  .domino-emoji-picker{grid-template-columns:repeat(6,minmax(0,1fr));left:0}
}
@media(max-width:420px){
  .domino-chat-composer{grid-template-columns:auto minmax(0,1fr)}
  .domino-chat-send{grid-column:1/-1;width:100%}
  .domino-emoji-picker{grid-template-columns:repeat(5,minmax(0,1fr));width:calc(100vw - 34px)}
}

/* v0.6.5 room-entry board fit and legacy-round repair */
.domino-room-shell{width:min(1480px,calc(100% - 18px));margin:10px auto 24px}
.domino-board-scroll{
  height:clamp(460px,58vh,680px);
  min-height:460px;
  overflow:auto;
  scrollbar-gutter:stable both-edges;
}
.domino-layout-canvas{
  width:100%;
  min-width:700px;
  height:100%;
  min-height:100%;
}
.domino-spinner{left:50%;top:50%}
.domino-layout-canvas.is-legacy{width:100%;min-width:100%;height:100%;min-height:100%}
.domino-layout-canvas.is-legacy .domino-legacy-board{
  left:50%;
  right:auto;
  top:50%;
  width:max-content;
  max-width:calc(100% - 40px);
  transform:translate(-50%,-50%);
  justify-content:center;
  flex-wrap:wrap;
  overflow:visible;
  padding:24px;
}
.domino-layout-canvas.is-legacy .domino-legacy-board .domino-board-piece{
  position:relative;
  left:auto;
  top:auto;
  transform:none;
  display:block;
}
.domino-layout-canvas.is-legacy .domino-legacy-board .domino-piece{pointer-events:none}
@media(max-width:760px){
  .domino-room-shell{width:calc(100% - 8px);margin:4px auto 18px}
  .domino-board-scroll{height:500px;min-height:500px}
  .domino-layout-canvas{min-width:700px}
}

/* v0.6.6 optional Learning Mode and compact corner chat */
.domino-hand-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.domino-learning-controls{display:flex;align-items:center;gap:8px}
.domino-learning-toggle{background:#303038!important;border:1px solid #4a4a55;color:#fff}
.domino-learning-toggle[aria-pressed="true"]{background:color-mix(in srgb,var(--room-color) 72%,#15151a)!important;border-color:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--room-color) 28%,transparent)}
.domino-learning-tip{margin:12px 0 0;padding:12px 14px;border:1px solid color-mix(in srgb,var(--room-color) 55%,#3f3f46);border-radius:12px;background:color-mix(in srgb,var(--room-color) 12%,#18181d);color:#f4f4f5;line-height:1.45}
.domino-hand-tile.is-neutral-play{cursor:grab;opacity:1;background:transparent!important;box-shadow:none}
.domino-hand-tile.is-neutral-play:hover{transform:translateY(-4px);background:rgba(255,255,255,.045)!important}
.domino-hand-tile.is-neutral-play:active{cursor:grabbing}
.domino-hand-tile.is-waiting{opacity:.55;cursor:not-allowed}
body:not(.domino-learning-on) .domino-hand-tile small{display:none}
body:not(.domino-learning-on) .domino-hand-tile{padding-bottom:8px!important}
.domino-drop-zone.is-neutral{opacity:.72;border-color:rgba(255,255,255,.35);background:rgba(0,0,0,.5);color:#f4f4f5;cursor:pointer}
.domino-drop-zone.is-neutral:hover,.domino-drop-zone.is-neutral:focus-visible{opacity:1;border-style:solid;border-color:#fff;background:color-mix(in srgb,var(--room-color) 45%,#111)}

.domino-chat-launcher{position:fixed;right:18px;bottom:18px;z-index:1200;display:flex;align-items:center;gap:9px;padding:12px 16px;border-radius:999px;background:var(--room-color)!important;color:#fff;box-shadow:0 12px 34px rgba(0,0,0,.48)}
.domino-chat-launcher b{display:grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:#fff;color:#111827;font-size:.75rem}
.domino-chat-dock[hidden]{display:none!important}
.domino-chat-dock{position:fixed;right:18px;bottom:18px;z-index:1200;width:min(390px,calc(100vw - 30px));height:min(560px,calc(100vh - 36px));display:block}
.domino-chat-dock .domino-chat-card{grid-column:auto;width:100%;height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:14px;background:#17171d;border:1px solid #454550;border-top:4px solid var(--room-color);border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.58);overflow:visible}
.domino-chat-dock .domino-chat-heading{margin-bottom:8px;align-items:center}
.domino-chat-heading-actions{display:flex;align-items:center;gap:8px}
#domino-chat-close{width:34px;height:34px;min-width:34px;padding:0;border-radius:50%;background:#2f2f37!important;border:1px solid #494954;font-size:1.25rem;line-height:1}
.domino-chat-dock .domino-chat-messages{min-height:0;max-height:none;height:auto;overflow-y:auto;background:#101014}
.domino-chat-dock #domino-chat-form{grid-template-columns:1fr;gap:8px;margin-top:8px}
.domino-chat-dock .domino-chat-composer{grid-template-columns:auto minmax(0,1fr) auto}
.domino-chat-dock .domino-emoji-picker{left:auto;right:0;bottom:calc(100% + 8px);width:min(350px,calc(100vw - 48px));grid-template-columns:repeat(7,minmax(0,1fr))}

@media(max-width:760px){
  .domino-hand-heading{align-items:flex-start;flex-direction:column}
  .domino-hand-actions{width:100%;justify-content:space-between}
  .domino-learning-controls,.domino-play-controls{flex:1}
  .domino-learning-toggle{width:100%}
  .domino-chat-launcher{right:10px;bottom:10px}
  .domino-chat-dock{left:8px;right:8px;bottom:8px;width:auto;height:min(68vh,590px)}
  .domino-chat-dock .domino-chat-card{border-radius:18px;padding:12px}
  .domino-chat-dock .domino-chat-heading{flex-direction:row;align-items:center}
  .domino-chat-dock .domino-emoji-picker{grid-template-columns:repeat(6,minmax(0,1fr));width:calc(100vw - 40px)}
}
@media(max-width:430px){
  .domino-hand-actions{display:grid;grid-template-columns:1fr;gap:8px}
  .domino-play-controls{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .domino-chat-dock .domino-chat-composer{grid-template-columns:auto minmax(0,1fr)}
  .domino-chat-dock .domino-chat-send{grid-column:1/-1;width:100%}
}

/* v0.6.7 neutral branch chooser and dependable play controls */
.domino-table-footer-main{display:grid;gap:9px;min-width:0;flex:1}
.domino-table-footer-main>p{margin:0}
.domino-branch-chooser[hidden]{display:none!important}
.domino-branch-chooser{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.domino-branch-choice{display:inline-flex;align-items:center;gap:8px;min-width:92px;padding:7px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.38);background:rgba(0,0,0,.55)!important;color:#fff}
.domino-branch-choice span{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}
.domino-branch-choice strong{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#fff;color:#111827;font-size:.92rem}
.domino-branch-choice.is-neutral:hover,.domino-branch-choice.is-neutral:focus-visible{border-color:#fff;background:color-mix(in srgb,var(--room-color) 48%,#111)!important}
.domino-branch-choice.is-valid{border-color:#fef08a;background:rgba(254,240,138,.13)!important}
.domino-branch-choice.is-invalid{opacity:.35}
.domino-drop-zone[hidden]{display:none!important}
.domino-drop-zone.is-neutral:not([hidden]){visibility:visible;z-index:30;opacity:.92;border-color:rgba(255,255,255,.62);background:rgba(0,0,0,.68)}
.domino-play-controls button{position:relative;z-index:2;pointer-events:auto}
.domino-busy .domino-play-controls button{pointer-events:none;opacity:.6}
@media(max-width:760px){
  .domino-branch-chooser{width:100%}
  .domino-branch-choice{flex:1 1 calc(50% - 8px);justify-content:center}
}

/* v0.6.8 room-wide green point gain animation */
.domino-player-seat p{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.domino-player-seat p span+span::before{content:'•';margin-right:7px;color:var(--domino-muted)}
.domino-score-balance{color:#22c55e;font-weight:900;font-variant-numeric:tabular-nums}
.domino-player-seat.score-gained{border-color:#22c55e!important;box-shadow:0 0 0 3px rgba(34,197,94,.28),0 0 26px rgba(34,197,94,.28)!important}
.domino-player-seat.score-gained .domino-score-balance{animation:domino-score-pulse 1.2s ease-out}
.domino-point-effects{position:fixed;inset:0;z-index:2500;pointer-events:none;overflow:hidden}
.domino-points-fly{position:fixed;z-index:1;color:#22c55e;font-size:clamp(2rem,5vw,4.8rem);font-weight:1000;line-height:1;text-shadow:0 2px 0 #052e16,0 0 16px rgba(34,197,94,.9),0 0 34px rgba(34,197,94,.55);white-space:nowrap;will-change:transform,opacity}
@keyframes domino-score-pulse{0%{transform:scale(1);color:#22c55e}35%{transform:scale(1.28);color:#86efac}100%{transform:scale(1);color:#22c55e}}
@media(prefers-reduced-motion:reduce){.domino-player-seat.score-gained .domino-score-balance{animation:none}.domino-points-fly{font-size:2.4rem}}


/* v0.6.9 optional top-left room logo */
.domino-room-brand-group{display:flex;align-items:flex-start;gap:24px;min-width:0}.domino-room-brand-group>div:last-child{min-width:0;padding-top:2px}.domino-room-logo{display:flex;align-items:flex-start;justify-content:center;flex:0 0 clamp(124px,var(--domino-logo-width,150px),420px);width:clamp(124px,var(--domino-logo-width,150px),420px);min-width:124px;max-width:min(42vw,420px);min-height:min(var(--domino-logo-height,180px),280px);text-decoration:none;background:transparent!important;border:0!important;box-shadow:none!important}.domino-room-logo img{display:block;width:100%;height:auto;max-height:var(--domino-logo-height,180px);object-fit:contain;object-position:center top;border:0;border-radius:0;background:transparent!important;padding:0;box-shadow:none}
@media(max-width:760px){.domino-room-brand-group{gap:14px}.domino-room-brand-group>div:last-child{padding-top:0}.domino-room-logo{flex-basis:clamp(76px,var(--domino-logo-width,94px),180px);width:clamp(76px,var(--domino-logo-width,94px),180px);min-width:76px;min-height:66px;max-width:34vw}.domino-room-logo img{max-height:min(var(--domino-logo-height,110px),140px)}.domino-room-header{align-items:flex-start}}

/* v0.7.1 reliable score notice and automatic scroll to scorer */
.domino-score-toast{position:fixed;left:50%;top:18px;z-index:3200;display:grid;justify-items:center;gap:2px;transform:translate(-50%,-20px) scale(.92);opacity:0;min-width:150px;padding:12px 18px;border:2px solid #22c55e;border-radius:18px;background:rgba(5,46,22,.96);color:#fff;box-shadow:0 14px 40px rgba(0,0,0,.48),0 0 28px rgba(34,197,94,.38);pointer-events:none;transition:opacity .22s ease,transform .22s ease}
.domino-score-toast.is-visible{opacity:1;transform:translate(-50%,0) scale(1)}
.domino-score-toast strong{font-size:2rem;line-height:1;color:#86efac}.domino-score-toast span{font-size:.78rem;font-weight:800}
.domino-player-seat{scroll-margin-top:18px}


/* v0.7.4 draggable floating player-hand dock */
.domino-hand-launcher[hidden],.domino-hand-dock[hidden]{display:none!important}
.domino-hand-launcher{position:fixed;left:18px;bottom:18px;z-index:1260;display:flex;align-items:center;gap:9px;min-height:48px;padding:10px 14px;border:2px solid rgba(255,255,255,.72);border-radius:999px;background:var(--room-color)!important;color:#fff;box-shadow:0 14px 38px rgba(0,0,0,.56);font-weight:900}
.domino-hand-launcher-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.2);font-size:1.2rem}
.domino-hand-launcher b{display:grid;place-items:center;min-width:27px;height:27px;padding:0 7px;border-radius:999px;background:#fff;color:#111827;font-size:.78rem;font-variant-numeric:tabular-nums}
.domino-hand-launcher.is-my-turn{box-shadow:0 0 0 4px color-mix(in srgb,var(--room-color) 34%,transparent),0 14px 38px rgba(0,0,0,.56);animation:domino-hand-turn-pulse 1.55s ease-in-out infinite}
@keyframes domino-hand-turn-pulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
.domino-hand-dock{position:fixed;left:18px;bottom:78px;z-index:1250;width:min(980px,calc(100vw - 36px));max-height:min(58vh,470px);margin:0;padding:12px 16px 14px;border:1px solid #52525e;border-top:5px solid var(--room-color);border-radius:20px;background:rgba(23,23,29,.98);box-shadow:0 24px 70px rgba(0,0,0,.66);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.domino-hand-dock.is-positioned{right:auto;bottom:auto}
.domino-hand-dock.is-panel-dragging{user-select:none;-webkit-user-select:none;cursor:grabbing;box-shadow:0 28px 80px rgba(0,0,0,.76),0 0 0 2px color-mix(in srgb,var(--room-color) 74%,#fff)}
.domino-hand-dock-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0 0 10px}
.domino-hand-drag-handle{display:flex;align-items:center;justify-content:center;gap:7px;min-height:36px;min-width:142px;margin-right:auto;padding:7px 12px;border:1px dashed #71717a;border-radius:11px;background:#27272f!important;color:#f4f4f5;cursor:grab;touch-action:none;font-size:.82rem;font-weight:900}
.domino-hand-drag-handle:hover,.domino-hand-drag-handle:focus-visible{border-color:var(--room-color);background:#303039!important}
.domino-hand-drag-handle:active{cursor:grabbing}
.domino-hand-drag-handle>span:first-child{font-size:1.02rem;line-height:1;letter-spacing:-1px}
.domino-hand-reset-position,.domino-hand-rotate{min-height:36px;padding:7px 10px;border-radius:10px;background:#303038!important;border:1px solid #555563;color:#fff;font-size:.76rem;white-space:nowrap}.domino-hand-rotate[aria-pressed="true"]{border-color:var(--room-color);background:color-mix(in srgb,var(--room-color) 24%,#303038)!important}
.domino-hand-dock .domino-hand-heading{padding-right:0}
.domino-hand-dock .domino-hand-heading h2{display:flex;align-items:center;gap:7px}
.domino-hand-dock-close{position:static;display:grid;place-items:center;width:36px;height:36px;min-width:36px;padding:0;border-radius:50%;background:#303038!important;border:1px solid #555563;color:#fff;font-size:1.45rem;line-height:1}
.domino-hand-dock .domino-learning-tip{margin-top:10px}
.domino-hand-dock .domino-hand{min-height:138px;margin-top:4px;padding:12px 4px 8px;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;overscroll-behavior-x:contain}
.domino-hand-dock .domino-hand>p{margin:auto;color:var(--domino-muted)}
body.domino-hand-open .domino-chat-launcher{opacity:.82}
body.domino-hand-panel-dragging{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}
@media(max-width:760px){
  .domino-hand-launcher{left:10px;bottom:10px;padding:9px 12px}
  .domino-hand-dock{left:8px;right:8px;bottom:8px;width:auto;max-height:min(64vh,500px);padding:10px 12px 12px;border-radius:18px}
  .domino-hand-dock.is-positioned{right:auto;width:min(680px,calc(100vw - 16px))}
  .domino-hand-dock-toolbar{gap:6px}
  .domino-hand-drag-handle{min-width:0;flex:1;padding:7px 9px}
  .domino-hand-reset-position{padding:7px 8px}
  .domino-hand-dock .domino-hand-heading{padding-right:0}
  .domino-hand-dock .domino-hand-actions{padding-right:0}
  .domino-hand-dock .domino-hand{min-height:128px;padding-top:10px}
}
@media(max-width:430px){
  .domino-hand-launcher>span:nth-child(2){display:none}
  .domino-hand-launcher{gap:6px}
  .domino-hand-dock{max-height:68vh}
  .domino-hand-drag-handle>span:nth-child(2){font-size:0}
  .domino-hand-drag-handle>span:nth-child(2)::after{content:'Move';font-size:.76rem}
  .domino-hand-reset-position{font-size:0}
  .domino-hand-reset-position::after{content:'Reset';font-size:.72rem}
}
@media(prefers-reduced-motion:reduce){.domino-hand-launcher.is-my-turn{animation:none}}


/* v0.7.5 rotatable floating hand */
.domino-hand-dock.is-vertical-hand{width:min(248px,calc(100vw - 16px));max-height:min(82vh,760px)}
.domino-hand-dock.is-vertical-hand .domino-hand-dock-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 40px;grid-template-areas:"drag drag drag" "reset rotate close";align-items:center;gap:7px;width:100%}
.domino-hand-dock.is-vertical-hand .domino-hand-drag-handle{grid-area:drag;display:flex;width:100%;min-width:0;min-height:34px;margin:0;padding:0;border-radius:11px;justify-self:stretch;justify-content:center;overflow:hidden}
.domino-hand-dock.is-vertical-hand .domino-hand-drag-handle>span{display:none!important}
.domino-hand-dock.is-vertical-hand .domino-hand-drag-handle::before{content:"";display:block;width:72px;height:5px;border-radius:999px;background:#a1a1aa;box-shadow:0 0 0 1px rgba(255,255,255,.08)}
.domino-hand-dock.is-vertical-hand .domino-hand-reset-position{grid-area:reset;width:100%;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis}
.domino-hand-dock.is-vertical-hand .domino-hand-rotate{grid-area:rotate;width:100%;min-width:0;margin:0;overflow:hidden;text-overflow:ellipsis}
.domino-hand-dock.is-vertical-hand .domino-hand-dock-close{grid-area:close;justify-self:end}
.domino-hand-dock.is-vertical-hand .domino-hand-heading{flex-direction:column;align-items:stretch;gap:10px}
.domino-hand-dock.is-vertical-hand .domino-hand-actions{display:grid;grid-template-columns:1fr;justify-content:stretch;gap:8px;width:100%}
.domino-hand-dock.is-vertical-hand .domino-learning-controls,.domino-hand-dock.is-vertical-hand .domino-play-controls{width:100%}
.domino-hand-dock.is-vertical-hand .domino-play-controls{display:grid;grid-template-columns:1fr 1fr}
.domino-hand-dock.is-vertical-hand .domino-learning-toggle,.domino-hand-dock.is-vertical-hand .domino-play-controls button{width:100%}
.domino-hand-dock.is-vertical-hand .domino-hand{display:grid;grid-auto-flow:row;justify-content:center;align-content:start;gap:10px;overflow-x:hidden;overflow-y:auto;min-height:0;max-height:none;padding:8px 2px 4px}
.domino-hand-dock.is-vertical-hand .domino-hand-tile{width:100%;justify-items:center;padding:6px!important}
.domino-hand-dock.is-vertical-hand .domino-hand-tile small{white-space:normal;text-align:center}
.domino-hand-dock.is-vertical-hand .domino-hand-tile .domino-piece.is-vertical{width:58px;height:108px;border-width:3px;border-radius:11px}
.domino-hand-dock.is-vertical-hand .domino-hand-tile.is-playable:hover,.domino-hand-dock.is-vertical-hand .domino-hand-tile.is-neutral-play:hover{transform:translateX(4px)}
.domino-hand-dock.is-vertical-hand .domino-hand-tile.is-selected{transform:translateX(7px)}
@media(max-width:760px){.domino-hand-dock.is-vertical-hand{width:min(232px,calc(100vw - 12px));max-height:80vh}.domino-hand-dock.is-vertical-hand .domino-hand{padding-right:2px}}
@media(max-width:430px){.domino-hand-reset-position{font-size:0;padding:7px 8px}.domino-hand-reset-position::after{content:'Reset';font-size:.72rem}.domino-hand-rotate{font-size:0}.domino-hand-rotate::after{content:'Rotate';font-size:.72rem}}


/* v0.7.7 larger reserved logo area and room-title spacing */
.domino-room-brand-group h1{margin-top:2px}

/* v0.7.8 compact room sharing popout */
.domino-room-title-block{min-width:0}
.domino-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.domino-title-row h1{margin:2px 0 0;min-width:0}
.domino-share-wrap{position:relative;display:inline-flex;align-items:center}
.domino-share-toggle{display:inline-flex;align-items:center;gap:4px;min-height:28px;padding:4px 8px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:rgba(255,255,255,.08)!important;color:#fff;font-size:.72rem;font-weight:900;line-height:1;white-space:nowrap}
.domino-share-toggle:hover,.domino-share-toggle:focus-visible,.domino-share-toggle[aria-expanded="true"]{border-color:#fff;background:color-mix(in srgb,var(--room-color) 44%,#16161b)!important}
.domino-share-popover[hidden]{display:none!important}
.domino-share-popover{position:absolute;left:0;top:calc(100% + 8px);z-index:1900;display:grid;gap:7px;width:190px;padding:10px;border:1px solid #52525e;border-radius:13px;background:rgba(23,23,29,.99);box-shadow:0 18px 48px rgba(0,0,0,.62)}
.domino-share-popover strong{font-size:.8rem}
.domino-share-popover button{width:100%;min-height:34px;padding:7px 9px;border-radius:9px;background:#303038!important;border:1px solid #555563;color:#fff;font-size:.76rem;text-align:left}
.domino-share-popover button:hover,.domino-share-popover button:focus-visible{border-color:var(--room-color)}
.domino-share-status{min-height:1.1em;margin:0;color:#86efac;font-size:.7rem}
@media(max-width:520px){.domino-share-toggle span{display:none}.domino-share-toggle{width:30px;height:30px;justify-content:center;padding:0}.domino-share-popover{left:auto;right:0}}

/* v0.7.10 vertical hand toolbar: full-width drag bar above controls */
@media(max-width:430px){
  .domino-hand-dock.is-vertical-hand .domino-hand-reset-position,.domino-hand-dock.is-vertical-hand .domino-hand-rotate{font-size:.72rem;padding:7px 6px}
  .domino-hand-dock.is-vertical-hand .domino-hand-reset-position::after,.domino-hand-dock.is-vertical-hand .domino-hand-rotate::after{content:none}
}


/* v0.7.11 status row alignment */
.domino-table-status{justify-content:flex-start;align-items:center;gap:12px 14px;padding-top:4px;padding-left:4px;padding-right:4px}
.domino-table-status .domino-turn{justify-self:auto;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.domino-table-status .domino-open-ends{justify-content:flex-start;align-items:center;gap:7px;max-width:100%}
@media(min-width:761px){.domino-table-status .domino-open-ends{flex:0 1 auto}}
@media(max-width:760px){.domino-table-status{align-items:flex-start;flex-direction:column;gap:8px}.domino-table-status .domino-open-ends{justify-content:flex-start}}


/* v0.7.12 move status under room title */
.domino-room-title-block{display:grid;gap:8px;min-width:0}
.domino-header-status{margin-top:2px;justify-content:flex-start;align-items:center;gap:10px 14px;flex-wrap:wrap}
.domino-header-status .domino-turn{justify-self:auto;white-space:nowrap;max-width:100%}
.domino-header-status .domino-open-ends{justify-content:flex-start;align-items:center;gap:7px;max-width:100%}
.domino-header-status .domino-open-ends span{background:rgba(0,0,0,.45)}
.domino-table{padding-top:18px}
@media(max-width:900px){.domino-room-header{gap:14px}.domino-header-status{margin-top:4px}}
@media(max-width:620px){.domino-header-status{align-items:flex-start;flex-direction:column;gap:8px}.domino-table{padding-top:14px}}


/* v0.7.13 easier mobile table scrolling */
.domino-board-scroll{
  -webkit-overflow-scrolling:touch;
  touch-action:pan-x pan-y pinch-zoom;
  overscroll-behavior:auto;
  scrollbar-gutter:auto;
  scroll-behavior:auto;
  user-select:none;
  -webkit-user-select:none;
}
@media(pointer:coarse){
  .domino-board-scroll{scrollbar-width:auto}
}
@media(max-width:760px){
  .domino-board-scroll{
    overscroll-behavior-x:auto;
    overscroll-behavior-y:auto;
    scrollbar-gutter:auto;
  }
}


/* v0.7.14 restore full-height table after moving status to header */
.domino-table{
  min-height:clamp(760px,82vh,1040px);
  grid-template-rows:minmax(620px,1fr) auto;
  align-content:stretch;
}
.domino-board-scroll{
  height:100%;
  min-height:620px;
}
.domino-table-footer{
  align-self:end;
  margin-top:auto;
  padding-top:8px;
  padding-bottom:2px;
}
@media(max-width:900px){
  .domino-table{
    min-height:clamp(700px,84vh,920px);
    grid-template-rows:minmax(570px,1fr) auto;
  }
  .domino-board-scroll{height:100%;min-height:570px}
}
@media(max-width:620px){
  .domino-table{
    min-height:max(700px,84svh);
    grid-template-rows:minmax(560px,1fr) auto;
    padding-bottom:16px;
  }
  .domino-board-scroll{height:100%;min-height:560px}
  .domino-table-footer{padding-top:10px;padding-bottom:0}
}


/* v0.7.16 corner-chat inline validation */
.domino-chat-error[hidden]{display:none!important}
.domino-chat-error{margin:0;padding:8px 10px;border:1px solid #7f1d1d;border-radius:10px;background:rgba(127,29,29,.22);color:#fecaca;font-size:.78rem;line-height:1.35}


/* v0.7.49 mobile room header: full-width card with compact logo above controls */
@media(max-width:760px){
  html,body.domino-room-page{max-width:100%;overflow-x:hidden}
  .domino-room-shell{width:100%;max-width:100%;margin:0 auto;padding:7px;box-sizing:border-box;overflow-x:hidden}
  .domino-room-header{display:flex;flex-direction:column;width:100%;max-width:100%;box-sizing:border-box;margin:0 0 14px;padding:14px;border-radius:22px;overflow:visible}
  .domino-room-brand-group{display:grid;grid-template-columns:minmax(0,1fr);justify-items:stretch;width:100%;max-width:100%;min-width:0;gap:8px}
  .domino-room-logo{display:flex;justify-self:center;flex:none;width:68px;min-width:0;max-width:68px;min-height:0;margin:0 auto 2px}
  .domino-room-logo img{width:100%;height:auto;max-height:66px;object-fit:contain;object-position:center}
  .domino-room-title-block{width:100%;max-width:100%;min-width:0;padding:0;text-align:center}
  .domino-room-title-block>.back-link{display:inline-flex;justify-content:center;max-width:100%;margin:0 auto 4px}
  .domino-title-row{display:flex;justify-content:center;align-items:center;width:100%;max-width:100%;gap:8px;min-width:0}
  .domino-title-row h1{max-width:100%;margin:0;text-align:center;font-size:clamp(1.85rem,9vw,2.65rem);line-height:1.08;overflow-wrap:anywhere}
  .domino-share-wrap{flex:0 0 auto}
  #domino-room-message{max-width:100%;text-align:center;overflow-wrap:anywhere}
  .cw-cashapp-domino-room{width:100%;max-width:100%;box-sizing:border-box;margin-left:0!important;margin-right:0!important}
  .domino-header-status{justify-content:center;align-items:center;width:100%;max-width:100%}
  .domino-header-status .domino-open-ends{justify-content:center}
  .domino-room-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:100%;gap:8px;margin-top:2px}
  .domino-room-actions button{width:100%;min-width:0;min-height:54px;padding:10px 8px;font-size:1rem;line-height:1.15;white-space:normal}
  .domino-score-row,.domino-table-wrap,.domino-room-bottom{width:100%;max-width:100%;box-sizing:border-box}
}
@media(max-width:390px){
  .domino-room-shell{padding:5px}
  .domino-room-header{padding:12px 10px}
  .domino-room-logo{width:58px;max-width:58px}
  .domino-room-logo img{max-height:56px}
  .domino-title-row h1{font-size:clamp(1.7rem,8.8vw,2.2rem)}
  .domino-room-actions button{min-height:50px;padding:9px 5px;font-size:.9rem}
}

/* v0.7.51 compact Play the Machine link */
.domino-machine-link{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.06);color:#fff;text-decoration:none;font-size:.82rem;font-weight:800}
.domino-machine-link:hover{background:rgba(255,255,255,.12)}
.domino-machine-mobile-label{display:none}
@media(max-width:760px){
  .domino-machine-link{padding:7px 9px}
  .domino-machine-desktop-label{display:none}
  .domino-machine-mobile-label{display:inline}
}

/* v0.7.68 three-column hand grid + genuinely scrollable table viewport */
.domino-hand-dock.is-vertical-hand{
  width:min(470px,calc(100vw - 24px));
  max-height:min(84vh,820px);
}
.domino-hand-dock.is-vertical-hand .domino-hand{
  display:grid;
  grid-template-columns:repeat(3,minmax(78px,1fr));
  grid-auto-flow:row;
  align-items:start;
  justify-items:center;
  justify-content:stretch;
  gap:12px 10px;
  min-height:0;
  max-height:min(48vh,470px);
  padding:10px 6px 18px;
  overflow-x:hidden;
  overflow-y:auto;
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
}
.domino-hand-dock.is-vertical-hand .domino-hand-tile{
  width:100%;
  min-width:0;
  justify-items:center;
  align-self:start;
  padding:7px 4px!important;
}
.domino-hand-dock.is-vertical-hand .domino-hand-tile.is-playable:hover,
.domino-hand-dock.is-vertical-hand .domino-hand-tile.is-neutral-play:hover{
  transform:translateY(-4px);
}
.domino-hand-dock.is-vertical-hand .domino-hand-tile.is-selected{
  transform:translateY(-6px);
}

.domino-table{
  height:clamp(650px,78vh,920px);
  min-height:0!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  overflow:hidden;
}
.domino-board-scroll{
  width:100%;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  overflow:auto!important;
  scrollbar-gutter:stable both-edges;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.domino-layout-canvas{
  flex:none;
}
body.domino-hand-open .domino-board-scroll{
  scroll-padding:90px;
}

@media(max-width:760px){
  .domino-hand-dock.is-vertical-hand{
    left:6px;
    right:6px;
    width:auto;
    max-height:82vh;
  }
  .domino-hand-dock.is-vertical-hand .domino-hand{
    grid-template-columns:repeat(2,minmax(82px,1fr));
    max-height:min(46vh,430px);
    gap:10px 8px;
    padding:8px 4px 16px;
  }
  .domino-table{
    height:max(620px,74svh);
  }
}

/* v0.7.68 fixed three-column desktop hand + stable double-click layout */
#domino-hand-rotate{display:none!important}
@media(min-width:761px){
  .domino-hand-dock,
  .domino-hand-dock.is-vertical-hand,
  .domino-hand-dock.is-positioned{
    width:min(530px,calc(100vw - 28px))!important;
    max-height:calc(100vh - 24px)!important;
    overflow-y:auto!important;
  }
  .domino-hand-dock .domino-hand,
  .domino-hand-dock.is-vertical-hand .domino-hand{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-auto-flow:row!important;
    align-content:start!important;
    align-items:start!important;
    justify-items:center!important;
    gap:8px 10px!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    padding:8px 4px 10px!important;
  }
  .domino-hand-dock .domino-hand-tile,
  .domino-hand-dock.is-vertical-hand .domino-hand-tile{
    width:100%!important;
    min-width:0!important;
    padding:4px!important;
    justify-items:center!important;
  }
  .domino-hand-dock .domino-hand-tile .domino-piece.is-vertical,
  .domino-hand-dock .domino-hand-tile .domino-piece.is-horizontal{
    grid-template-columns:1fr!important;
    grid-template-rows:1fr 3px 1fr!important;
    width:48px!important;
    height:88px!important;
    border-width:3px!important;
    border-radius:10px!important;
  }
  .domino-hand-dock .domino-hand-tile .domino-piece.is-vertical .domino-divider,
  .domino-hand-dock .domino-hand-tile .domino-piece.is-horizontal .domino-divider{
    width:100%!important;
    height:3px!important;
  }
  .domino-hand-dock .domino-hand-tile .domino-face{padding:5px!important}
  .domino-hand-dock .domino-hand-tile .pip{width:8px!important;height:8px!important}
}
@media(max-width:760px){
  .domino-hand-dock,
  .domino-hand-dock.is-vertical-hand{
    width:min(360px,calc(100vw - 12px))!important;
    max-height:82vh!important;
    overflow-y:auto!important;
  }
  .domino-hand-dock .domino-hand,
  .domino-hand-dock.is-vertical-hand .domino-hand{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-flow:row!important;
    gap:8px!important;
    max-height:min(46vh,430px)!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    padding:8px 4px 14px!important;
  }
  .domino-hand-dock .domino-hand-tile .domino-piece.is-vertical,
  .domino-hand-dock .domino-hand-tile .domino-piece.is-horizontal{
    grid-template-columns:1fr!important;
    grid-template-rows:1fr 3px 1fr!important;
    width:44px!important;
    height:82px!important;
  }
  .domino-hand-dock .domino-hand-tile .domino-piece.is-vertical .domino-divider,
  .domino-hand-dock .domino-hand-tile .domino-piece.is-horizontal .domino-divider{
    width:100%!important;
    height:3px!important;
  }
}
