/* One touch-friendly speech bubble beside the nearest performance, with performer quick actions. */
#jam-controls .jam-stack{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:stretch;gap:4px;width:max-content;min-width:132px;max-width:calc(100vw - 16px);pointer-events:none}
#jam-controls .jam-stack[data-side="top"]{flex-direction:column-reverse}
#jam-controls{position:fixed;inset:0;z-index:4;pointer-events:none;overflow:hidden}
#jam-controls[hidden],#jam-controls [hidden]{display:none!important}
#jam-controls .jam-offer{position:relative;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:6px;width:max-content;min-width:132px;max-width:calc(100vw - 16px);height:44px;min-height:44px;margin:0;padding:8px 12px;pointer-events:auto;border:2px solid #9fc8b4;border-radius:0;background:#273831;box-shadow:3px 3px #131b25;color:#f4e8c8;font:12px/18px var(--music-small-pixel-font,monospace);white-space:nowrap;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#jam-controls .jam-offer::after{content:'';position:absolute;top:calc(50% - 4px);left:-6px;width:8px;height:8px;border-left:2px solid #9fc8b4;border-bottom:2px solid #9fc8b4;background:#273831;transform:rotate(45deg);pointer-events:none}
#jam-controls .jam-offer[data-side="left"]::after{left:auto;right:-6px;transform:rotate(225deg)}
#jam-controls .jam-offer img{flex:none;width:16px;height:16px;image-rendering:pixelated}
#jam-controls .jam-offer:disabled{opacity:.75;cursor:not-allowed;border-color:#92968d;background:#30343b}
#jam-controls .jam-offer:disabled::after{border-color:#92968d;background:#30343b}
#jam-controls .jam-offer:focus-visible{outline:2px solid #f3d595;outline-offset:3px}
#jam-controls .jam-offer[data-side="top"]::after{left:calc(50% - 4px);top:auto;bottom:-6px;transform:rotate(-45deg)}
#jam-controls .jam-offer{width:auto}
#jam-controls .jam-actions{display:flex;gap:4px;min-width:0;pointer-events:none}
#jam-controls .jam-action{flex:1 1 0;min-width:0;height:44px;min-height:44px;margin:0;padding:6px 8px;box-sizing:border-box;pointer-events:auto;border:2px solid #9fc8b4;border-radius:0;background:#1f2b27;box-shadow:3px 3px #131b25;color:#f4e8c8;font:11px/16px var(--music-small-pixel-font,monospace)!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#jam-controls .jam-fan{border-color:#e6a2b5;background:#3a2530}
#jam-controls .jam-fan[aria-pressed="true"]{border-color:#9ce9c4;background:#2c4038;color:#c5ecd2}
#jam-controls .jam-action:disabled{opacity:.6;cursor:not-allowed;border-color:#92968d;background:#30343b}
#jam-controls .jam-action:focus-visible{outline:2px solid #f3d595;outline-offset:2px}

/* Compact: one row of three short buttons (합주 · 정보 · 팬), never truncated. */
#jam-controls .jam-stack,#jam-controls .jam-stack[data-side="top"]{flex-direction:row;align-items:stretch;gap:4px;min-width:0}
#jam-controls .jam-offer{min-width:0;height:40px;min-height:40px;padding:6px 10px;white-space:nowrap}
#jam-controls .jam-actions{display:contents}
#jam-controls .jam-actions[hidden]{display:none}
#jam-controls .jam-action{flex:0 0 auto;width:auto;height:40px;min-height:40px;padding:6px 12px;white-space:nowrap;overflow:visible;text-overflow:clip}
